aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-03 10:56:18 +0000
committer(no author) <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-03 10:56:18 +0000
commit5ab74c583256d5db351d03b829772b31b81018d4 (patch)
tree4fb30d2050fcbb93aa0f3ad0dde6432594fbc7f2
parent964944fc854c1dd723f7b8150d0deac634aabdbb (diff)
This commit was manufactured by cvs2svn to create taggcc_3_3_6_release
'gcc_3_3_6_release'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tags/gcc_3_3_6_release@99150 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog255
-rw-r--r--MAINTAINERS58
-rw-r--r--Makefile.def2
-rw-r--r--Makefile.in154
-rw-r--r--Makefile.tpl150
-rw-r--r--README.SCO27
-rw-r--r--boehm-gc/ChangeLog133
-rw-r--r--boehm-gc/Makefile.am9
-rw-r--r--boehm-gc/Makefile.in66
-rw-r--r--boehm-gc/alloc.c5
-rwxr-xr-xboehm-gc/configure248
-rw-r--r--boehm-gc/configure.host26
-rw-r--r--boehm-gc/configure.in22
-rw-r--r--boehm-gc/dyn_load.c68
-rw-r--r--boehm-gc/include/Makefile.am2
-rw-r--r--boehm-gc/include/Makefile.in39
-rw-r--r--boehm-gc/include/private/gc_priv.h13
-rw-r--r--boehm-gc/include/private/gcconfig.h32
-rw-r--r--boehm-gc/mark_rts.c40
-rw-r--r--boehm-gc/misc.c10
-rw-r--r--boehm-gc/os_dep.c9
-rw-r--r--boehm-gc/win32_threads.c4
-rw-r--r--config-ml.in12
-rwxr-xr-xconfig.guess163
-rw-r--r--config.if15
-rwxr-xr-xconfig.sub98
-rw-r--r--config/ChangeLog44
-rw-r--r--config/mh-sco2
-rwxr-xr-xconfigure6
-rw-r--r--configure.in14
-rw-r--r--contrib/ChangeLog92
-rwxr-xr-xcontrib/gcc_build12
-rwxr-xr-xcontrib/gcc_update10
-rwxr-xr-xcontrib/gennews3
-rw-r--r--contrib/regression/ChangeLog44
-rwxr-xr-xcontrib/test_installed13
-rwxr-xr-xcontrib/test_summary1
-rwxr-xr-xcontrib/texi2pod.pl7
-rw-r--r--fastjar/ChangeLog85
-rw-r--r--fastjar/Makefile.am9
-rw-r--r--fastjar/Makefile.in64
-rw-r--r--fastjar/README3
-rw-r--r--fastjar/acinclude.m43
-rw-r--r--fastjar/aclocal.m43
-rwxr-xr-xfastjar/configure10
-rw-r--r--fastjar/dostime.c2
-rw-r--r--fastjar/fastjar.texi53
-rw-r--r--fastjar/jargrep.c6
-rw-r--r--fastjar/jartool.c20
-rw-r--r--gcc/ChangeLog8332
-rw-r--r--gcc/Makefile.in448
-rw-r--r--gcc/ONEWS98
-rw-r--r--gcc/aclocal.m4427
-rw-r--r--gcc/ada/5iosinte.ads27
-rw-r--r--gcc/ada/5rosinte.ads1
-rw-r--r--gcc/ada/5rtpopsp.adb266
-rw-r--r--gcc/ada/ChangeLog149
-rw-r--r--gcc/ada/Make-lang.in381
-rw-r--r--gcc/ada/Makefile.adalib4
-rw-r--r--gcc/ada/Makefile.in83
-rw-r--r--gcc/ada/a-except.adb2
-rw-r--r--gcc/ada/adafinal.c (renamed from gcc/ada/final.c)2
-rw-r--r--gcc/ada/adaint.h4
-rw-r--r--gcc/ada/gnat_rm.texi60
-rw-r--r--gcc/ada/gnat_ug.texi71
-rw-r--r--gcc/ada/gnat_ug_unx.texi38
-rw-r--r--gcc/ada/gnat_ug_vms.texi38
-rw-r--r--gcc/ada/gnat_ug_vxw.texi38
-rw-r--r--gcc/ada/gnat_ug_wnt.texi38
-rw-r--r--gcc/ada/init.c16
-rw-r--r--gcc/ada/link.c2
-rw-r--r--gcc/ada/raise.c46
-rw-r--r--gcc/ada/utils2.c2
-rw-r--r--gcc/alias.c197
-rw-r--r--gcc/basic-block.h12
-rw-r--r--gcc/bb-reorder.c45
-rw-r--r--gcc/bitmap.c52
-rw-r--r--gcc/bitmap.h62
-rw-r--r--gcc/builtin-attrs.def18
-rw-r--r--gcc/builtin-types.def19
-rw-r--r--gcc/builtins.c331
-rw-r--r--gcc/builtins.def121
-rw-r--r--gcc/c-common.c92
-rw-r--r--gcc/c-decl.c243
-rw-r--r--gcc/c-lex.c6
-rw-r--r--gcc/c-objc-common.c33
-rw-r--r--gcc/c-opts.c24
-rw-r--r--gcc/c-parse.in4
-rw-r--r--gcc/c-pragma.c25
-rw-r--r--gcc/c-semantics.c5
-rw-r--r--gcc/c-tree.h2
-rw-r--r--gcc/c-typeck.c155
-rw-r--r--gcc/caller-save.c2
-rw-r--r--gcc/calls.c195
-rw-r--r--gcc/cfg.c55
-rw-r--r--gcc/cfganal.c21
-rw-r--r--gcc/cfgbuild.c5
-rw-r--r--gcc/cfgcleanup.c74
-rw-r--r--gcc/cfglayout.c42
-rw-r--r--gcc/cfgloop.c17
-rw-r--r--gcc/cfgrtl.c120
-rw-r--r--gcc/collect2.c46
-rw-r--r--gcc/combine.c567
-rw-r--r--gcc/config.gcc191
-rw-r--r--gcc/config.in49
-rw-r--r--gcc/config/alpha/alpha-protos.h2
-rw-r--r--gcc/config/alpha/alpha.c110
-rw-r--r--gcc/config/alpha/alpha.h41
-rw-r--r--gcc/config/alpha/alpha.md415
-rw-r--r--gcc/config/alpha/freebsd.h7
-rw-r--r--gcc/config/alpha/linux-elf.h7
-rw-r--r--gcc/config/alpha/linux.h13
-rw-r--r--gcc/config/alpha/osf.h34
-rw-r--r--gcc/config/alpha/osf5.h9
-rw-r--r--gcc/config/alpha/qrnnd.asm4
-rw-r--r--gcc/config/alpha/t-crtfm3
-rw-r--r--gcc/config/alpha/t-osf46
-rw-r--r--gcc/config/arc/t-arc22
-rw-r--r--gcc/config/arm/arm.c127
-rw-r--r--gcc/config/arm/arm.h47
-rw-r--r--gcc/config/arm/arm.md59
-rw-r--r--gcc/config/arm/elf.h10
-rw-r--r--gcc/config/arm/linux-elf.h5
-rw-r--r--gcc/config/arm/t-netbsd6
-rw-r--r--gcc/config/avr/avr.md4
-rw-r--r--gcc/config/avr/t-avr2
-rw-r--r--gcc/config/c4x/c4x.c2
-rw-r--r--gcc/config/c4x/c4x.h45
-rw-r--r--gcc/config/c4x/t-c4x2
-rw-r--r--gcc/config/cris/aout.h26
-rw-r--r--gcc/config/cris/cris.c81
-rw-r--r--gcc/config/cris/cris.h92
-rw-r--r--gcc/config/cris/cris.md363
-rw-r--r--gcc/config/cris/linux.h30
-rw-r--r--gcc/config/cris/mulsi3.asm7
-rw-r--r--gcc/config/darwin.c63
-rw-r--r--gcc/config/darwin.h21
-rw-r--r--gcc/config/fp-bit.c275
-rw-r--r--gcc/config/fp-bit.h172
-rw-r--r--gcc/config/freebsd-spec.h63
-rw-r--r--gcc/config/freebsd.h5
-rw-r--r--gcc/config/h8300/h8300-protos.h5
-rw-r--r--gcc/config/h8300/h8300.c72
-rw-r--r--gcc/config/h8300/h8300.h7
-rw-r--r--gcc/config/h8300/h8300.md138
-rw-r--r--gcc/config/h8300/lib1funcs.asm8
-rw-r--r--gcc/config/h8300/t-rtems7
-rw-r--r--gcc/config/i370/i370.md8
-rw-r--r--gcc/config/i386/cygwin.h22
-rw-r--r--gcc/config/i386/djgpp.h2
-rw-r--r--gcc/config/i386/emmintrin.h1499
-rw-r--r--gcc/config/i386/freebsd-aout.h12
-rw-r--r--gcc/config/i386/freebsd.h31
-rw-r--r--gcc/config/i386/freebsd64.h14
-rw-r--r--gcc/config/i386/gthr-win32.c2
-rw-r--r--gcc/config/i386/i386-protos.h6
-rw-r--r--gcc/config/i386/i386.c969
-rw-r--r--gcc/config/i386/i386.h94
-rw-r--r--gcc/config/i386/i386.md1563
-rw-r--r--gcc/config/i386/linux.h7
-rw-r--r--gcc/config/i386/linux64.h26
-rw-r--r--gcc/config/i386/mingw32.h5
-rw-r--r--gcc/config/i386/mmintrin.h375
-rw-r--r--gcc/config/i386/pmmintrin.h132
-rw-r--r--gcc/config/i386/sco5.h738
-rw-r--r--gcc/config/i386/scodbx.h84
-rw-r--r--gcc/config/i386/sol2.h4
-rw-r--r--gcc/config/i386/t-sco524
-rw-r--r--gcc/config/i386/t-sco5gas23
-rw-r--r--gcc/config/i386/winnt.c194
-rw-r--r--gcc/config/i386/xm-dgux.h4
-rw-r--r--gcc/config/i386/xm-sun.h21
-rw-r--r--gcc/config/i386/xm-sysv3.h3
-rw-r--r--gcc/config/i386/xmmintrin.h1541
-rw-r--r--gcc/config/ia64/aix.h8
-rw-r--r--gcc/config/ia64/crtbegin.asm3
-rw-r--r--gcc/config/ia64/crtend.asm15
-rw-r--r--gcc/config/ia64/hpux.h39
-rw-r--r--gcc/config/ia64/ia64-c.c1
-rw-r--r--gcc/config/ia64/ia64-protos.h8
-rw-r--r--gcc/config/ia64/ia64.c731
-rw-r--r--gcc/config/ia64/ia64.h153
-rw-r--r--gcc/config/ia64/ia64.md272
-rw-r--r--gcc/config/ia64/ia64intrin.h8
-rw-r--r--gcc/config/ia64/libgcc-ia64.ver3
-rw-r--r--gcc/config/ia64/linux.h68
-rw-r--r--gcc/config/ia64/t-hpux8
-rw-r--r--gcc/config/ia64/t-ia643
-rw-r--r--gcc/config/ia64/unwind-ia64.c68
-rw-r--r--gcc/config/interix.h13
-rw-r--r--gcc/config/ip2k/ip2k.c111
-rw-r--r--gcc/config/ip2k/ip2k.h14
-rw-r--r--gcc/config/linux.h5
-rw-r--r--gcc/config/m32r/m32r-protos.h11
-rw-r--r--gcc/config/m32r/m32r.c42
-rw-r--r--gcc/config/m32r/m32r.h11
-rw-r--r--gcc/config/m32r/m32r.md20
-rw-r--r--gcc/config/m68hc11/larith.asm298
-rw-r--r--gcc/config/m68hc11/m68hc11-protos.h22
-rw-r--r--gcc/config/m68hc11/m68hc11.c323
-rw-r--r--gcc/config/m68hc11/m68hc11.h81
-rw-r--r--gcc/config/m68hc11/m68hc11.md611
-rw-r--r--gcc/config/m68hc11/m68hc12.h16
-rw-r--r--gcc/config/m68hc11/t-m68hc11-gas12
-rw-r--r--gcc/config/m68k/coff.h19
-rw-r--r--gcc/config/m68k/linux.h24
-rw-r--r--gcc/config/m68k/m68k.c27
-rw-r--r--gcc/config/m68k/m68k.md51
-rw-r--r--gcc/config/m68k/m68kelf.h19
-rw-r--r--gcc/config/m68k/mot3300.h19
-rw-r--r--gcc/config/m68k/netbsd-elf.h23
-rw-r--r--gcc/config/m68k/pbb.h19
-rw-r--r--gcc/config/m68k/t-crtstuff6
-rw-r--r--gcc/config/m68k/t-m68kbare2
-rw-r--r--gcc/config/m68k/t-rtems6
-rw-r--r--gcc/config/mcore/mcore-protos.h3
-rw-r--r--gcc/config/mcore/mcore.c172
-rw-r--r--gcc/config/mcore/mcore.h5
-rw-r--r--gcc/config/mcore/mcore.md237
-rw-r--r--gcc/config/mips/_tilib.c156
-rw-r--r--gcc/config/mips/dbxmdebug.h6
-rw-r--r--gcc/config/mips/iris5gas.h5
-rw-r--r--gcc/config/mips/iris6-o32.h4
-rw-r--r--gcc/config/mips/iris6.h11
-rw-r--r--gcc/config/mips/linux.h9
-rw-r--r--gcc/config/mips/mips-protos.h17
-rw-r--r--gcc/config/mips/mips.c163
-rw-r--r--gcc/config/mips/mips.h112
-rw-r--r--gcc/config/mips/mips.md42
-rw-r--r--gcc/config/mips/rtems.h3
-rw-r--r--gcc/config/mips/t-iris5-68
-rw-r--r--gcc/config/mips/t-iris613
-rw-r--r--gcc/config/mips/t-rtems5
-rw-r--r--gcc/config/mn10300/mn10300-protos.h5
-rw-r--r--gcc/config/mn10300/mn10300.c50
-rw-r--r--gcc/config/mn10300/mn10300.md44
-rw-r--r--gcc/config/netbsd.h6
-rw-r--r--gcc/config/pa/milli64.S2
-rw-r--r--gcc/config/pa/pa-hpux.h16
-rw-r--r--gcc/config/pa/pa-hpux10.h15
-rw-r--r--gcc/config/pa/pa-hpux11.h49
-rw-r--r--gcc/config/pa/pa-protos.h10
-rw-r--r--gcc/config/pa/pa.c713
-rw-r--r--gcc/config/pa/pa.h286
-rw-r--r--gcc/config/pa/pa.md1526
-rw-r--r--gcc/config/pa/pa32-linux.h2
-rw-r--r--gcc/config/pa/pa32-regs.h2
-rw-r--r--gcc/config/pa/pa64-hpux.h238
-rw-r--r--gcc/config/pa/pa64-regs.h14
-rw-r--r--gcc/config/pa/rtems.h5
-rw-r--r--gcc/config/pa/som.h53
-rw-r--r--gcc/config/pa/t-hpux-shlib6
-rw-r--r--gcc/config/rs6000/altivec.h28
-rw-r--r--gcc/config/rs6000/altivec.md65
-rw-r--r--gcc/config/rs6000/darwin-tramp.asm2
-rw-r--r--gcc/config/rs6000/darwin.h4
-rw-r--r--gcc/config/rs6000/freebsd.h8
-rw-r--r--gcc/config/rs6000/linux.h65
-rw-r--r--gcc/config/rs6000/linux64.h24
-rw-r--r--gcc/config/rs6000/ppc64-fp.c146
-rw-r--r--gcc/config/rs6000/rs6000-protos.h2
-rw-r--r--gcc/config/rs6000/rs6000.c212
-rw-r--r--gcc/config/rs6000/rs6000.h77
-rw-r--r--gcc/config/rs6000/rs6000.md133
-rw-r--r--gcc/config/rs6000/rtems.h5
-rw-r--r--gcc/config/rs6000/spe.h353
-rw-r--r--gcc/config/rs6000/sysv4.h56
-rw-r--r--gcc/config/rs6000/t-aix432
-rw-r--r--gcc/config/rs6000/t-aix522
-rw-r--r--gcc/config/rs6000/t-linux643
-rw-r--r--gcc/config/rs6000/t-rtems86
-rw-r--r--gcc/config/rtems.h18
-rw-r--r--gcc/config/s390/linux.h6
-rw-r--r--gcc/config/s390/s390-protos.h14
-rw-r--r--gcc/config/s390/s390.c1011
-rw-r--r--gcc/config/s390/s390.h60
-rw-r--r--gcc/config/s390/s390.md748
-rw-r--r--gcc/config/sh/libgcc-glibc.ver21
-rw-r--r--gcc/config/sh/libgcc-std.ver196
-rw-r--r--gcc/config/sh/linux.h17
-rw-r--r--gcc/config/sh/netbsd-elf.h2
-rw-r--r--gcc/config/sh/rtems.h15
-rw-r--r--gcc/config/sh/rtemself.h15
-rw-r--r--gcc/config/sh/sh-protos.h9
-rw-r--r--gcc/config/sh/sh.c206
-rw-r--r--gcc/config/sh/sh.h34
-rw-r--r--gcc/config/sh/sh.md36
-rw-r--r--gcc/config/sh/t-linux30
-rw-r--r--gcc/config/sol2.h7
-rw-r--r--gcc/config/sparc/freebsd.h13
-rw-r--r--gcc/config/sparc/linux.h14
-rw-r--r--gcc/config/sparc/linux64.h14
-rw-r--r--gcc/config/sparc/sol2-bi.h23
-rw-r--r--gcc/config/sparc/sol2-c1.asm4
-rw-r--r--gcc/config/sparc/sol2-gld-bi.h9
-rw-r--r--gcc/config/sparc/sol2.h6
-rw-r--r--gcc/config/sparc/sparc-protos.h1
-rw-r--r--gcc/config/sparc/sparc.c347
-rw-r--r--gcc/config/sparc/sparc.h79
-rw-r--r--gcc/config/sparc/sparc.md300
-rw-r--r--gcc/config/sparc/t-elf4
-rw-r--r--gcc/config/sparc/t-linux0
-rw-r--r--gcc/config/t-darwin4
-rw-r--r--gcc/config/t-gnu2
-rw-r--r--gcc/config/t-libunwind6
-rw-r--r--gcc/config/t-linux2
-rw-r--r--gcc/config/t-linux-gnulibc12
-rw-r--r--gcc/config/t-netbsd4
-rw-r--r--gcc/config/t-slibgcc-elf-ver8
-rw-r--r--gcc/config/t-slibgcc-sld8
-rw-r--r--gcc/config/v850/v850.h2
-rw-r--r--gcc/config/vax/vax.c17
-rw-r--r--gcc/config/vax/vax.h5
-rw-r--r--gcc/config/vax/vax.md105
-rw-r--r--gcc/config/xtensa/linux.h14
-rw-r--r--gcc/config/xtensa/xtensa-protos.h9
-rw-r--r--gcc/config/xtensa/xtensa.c320
-rw-r--r--gcc/config/xtensa/xtensa.h65
-rw-r--r--gcc/config/xtensa/xtensa.md43
-rwxr-xr-xgcc/configure1682
-rw-r--r--gcc/configure.in280
-rw-r--r--gcc/convert.c22
-rw-r--r--gcc/cp/ChangeLog2092
-rw-r--r--gcc/cp/Make-lang.in78
-rw-r--r--gcc/cp/call.c1188
-rw-r--r--gcc/cp/cfns.gperf108
-rw-r--r--gcc/cp/cfns.h560
-rw-r--r--gcc/cp/class.c309
-rw-r--r--gcc/cp/config-lang.in2
-rw-r--r--gcc/cp/cp-lang.c16
-rw-r--r--gcc/cp/cp-tree.def13
-rw-r--r--gcc/cp/cp-tree.h255
-rw-r--r--gcc/cp/cvt.c116
-rw-r--r--gcc/cp/decl.c2001
-rw-r--r--gcc/cp/decl.h6
-rw-r--r--gcc/cp/decl2.c753
-rw-r--r--gcc/cp/dump.c8
-rw-r--r--gcc/cp/error.c63
-rw-r--r--gcc/cp/except.c15
-rw-r--r--gcc/cp/expr.c2
-rw-r--r--gcc/cp/friend.c35
-rw-r--r--gcc/cp/g++spec.c2
-rw-r--r--gcc/cp/init.c196
-rw-r--r--gcc/cp/lang-options.h4
-rw-r--r--gcc/cp/lang-specs.h8
-rw-r--r--gcc/cp/lex.c19
-rw-r--r--gcc/cp/mangle.c177
-rw-r--r--gcc/cp/method.c7
-rw-r--r--gcc/cp/operators.def7
-rw-r--r--gcc/cp/optimize.c4
-rw-r--r--gcc/cp/parse.y190
-rw-r--r--gcc/cp/pt.c635
-rw-r--r--gcc/cp/ptree.c18
-rw-r--r--gcc/cp/rtti.c14
-rw-r--r--gcc/cp/search.c510
-rw-r--r--gcc/cp/semantics.c65
-rw-r--r--gcc/cp/spew.c19
-rw-r--r--gcc/cp/tree.c143
-rw-r--r--gcc/cp/typeck.c445
-rw-r--r--gcc/cp/typeck2.c149
-rw-r--r--gcc/cppdefault.c28
-rw-r--r--gcc/cppdefault.h14
-rw-r--r--gcc/cppexp.c2
-rw-r--r--gcc/cpphash.h7
-rw-r--r--gcc/cppinit.c64
-rw-r--r--gcc/cpplib.c26
-rw-r--r--gcc/cpplib.h4
-rw-r--r--gcc/cppmacro.c12
-rw-r--r--gcc/cppmain.c2
-rw-r--r--gcc/cppspec.c22
-rw-r--r--gcc/cpptrad.c10
-rw-r--r--gcc/cse.c411
-rw-r--r--gcc/cselib.c45
-rw-r--r--gcc/cselib.h3
-rw-r--r--gcc/dbxout.c11
-rw-r--r--gcc/df.c14
-rw-r--r--gcc/diagnostic.c14
-rw-r--r--gcc/diagnostic.h5
-rw-r--r--gcc/doc/bugreport.texi312
-rw-r--r--gcc/doc/c-tree.texi16
-rw-r--r--gcc/doc/collect2.texi4
-rw-r--r--gcc/doc/contrib.texi210
-rw-r--r--gcc/doc/cpp.texi52
-rw-r--r--gcc/doc/cppopts.texi23
-rw-r--r--gcc/doc/extend.texi492
-rw-r--r--gcc/doc/fragments.texi31
-rw-r--r--gcc/doc/gcc.texi61
-rw-r--r--gcc/doc/gccint.texi56
-rw-r--r--gcc/doc/gcov.texi26
-rw-r--r--gcc/doc/gty.texi8
-rw-r--r--gcc/doc/headerdirs.texi17
-rw-r--r--gcc/doc/include/fdl.texi223
-rw-r--r--gcc/doc/include/gcc-common.texi7
-rw-r--r--gcc/doc/include/gpl.texi9
-rw-r--r--gcc/doc/include/texinfo.tex2512
-rw-r--r--gcc/doc/install.texi677
-rw-r--r--gcc/doc/invoke.texi1875
-rw-r--r--gcc/doc/makefile.texi14
-rw-r--r--gcc/doc/md.texi137
-rw-r--r--gcc/doc/objc.texi3
-rw-r--r--gcc/doc/passes.texi18
-rw-r--r--gcc/doc/portability.texi11
-rw-r--r--gcc/doc/rtl.texi81
-rw-r--r--gcc/doc/service.texi8
-rw-r--r--gcc/doc/sourcebuild.texi249
-rw-r--r--gcc/doc/standards.texi4
-rw-r--r--gcc/doc/tm.texi142
-rw-r--r--gcc/doc/trouble.texi81
-rw-r--r--gcc/doc/vms.texi225
-rw-r--r--gcc/dwarf2asm.h28
-rw-r--r--gcc/dwarf2out.c392
-rw-r--r--gcc/emit-rtl.c410
-rw-r--r--gcc/except.c187
-rw-r--r--gcc/except.h10
-rw-r--r--gcc/explow.c29
-rw-r--r--gcc/expmed.c26
-rw-r--r--gcc/expr.c523
-rw-r--r--gcc/expr.h18
-rw-r--r--gcc/f/ChangeLog248
-rw-r--r--gcc/f/Make-lang.in62
-rw-r--r--gcc/f/README7
-rw-r--r--gcc/f/bugs.texi5
-rw-r--r--gcc/f/com.c108
-rw-r--r--gcc/f/com.h2
-rw-r--r--gcc/f/data.c31
-rw-r--r--gcc/f/expr.c18
-rw-r--r--gcc/f/ffe.texi2
-rw-r--r--gcc/f/g77.texi492
-rw-r--r--gcc/f/g77spec.c25
-rw-r--r--gcc/f/intdoc.in25
-rw-r--r--gcc/f/intdoc.texi23
-rw-r--r--gcc/f/invoke.texi10
-rw-r--r--gcc/f/lang-specs.h2
-rw-r--r--gcc/f/news.texi25
-rw-r--r--gcc/f/root.texi11
-rw-r--r--gcc/f/sta.c4
-rw-r--r--gcc/f/stc.c15
-rw-r--r--gcc/f/ste.c22
-rw-r--r--gcc/f/target.h3
-rw-r--r--gcc/final.c6
-rw-r--r--gcc/fixinc/check.tpl2
-rw-r--r--gcc/fixinc/fixfixes.c66
-rw-r--r--gcc/fixinc/fixincl.x1063
-rw-r--r--gcc/fixinc/gnu-regex.c2
-rw-r--r--gcc/fixinc/inclhack.def545
-rwxr-xr-xgcc/fixinc/mkfixinc.sh2
-rw-r--r--gcc/fixinc/tests/base/Xm/Traversal.h2
-rw-r--r--gcc/fixinc/tests/base/ansi/string.h22
-rw-r--r--gcc/fixinc/tests/base/assert.h12
-rw-r--r--gcc/fixinc/tests/base/ctype.h65
-rw-r--r--gcc/fixinc/tests/base/internal/math_core.h30
-rw-r--r--gcc/fixinc/tests/base/internal/sgimacros.h17
-rw-r--r--gcc/fixinc/tests/base/internal/wchar_core.h15
-rw-r--r--gcc/fixinc/tests/base/math.h27
-rw-r--r--gcc/fixinc/tests/base/obstack.h14
-rw-r--r--gcc/fixinc/tests/base/pthread.h30
-rw-r--r--gcc/fixinc/tests/base/rpc/xdr.h10
-rw-r--r--gcc/fixinc/tests/base/stdio.h13
-rw-r--r--gcc/fixinc/tests/base/stdlib.h6
-rw-r--r--gcc/fixinc/tests/base/string.h13
-rw-r--r--gcc/fixinc/tests/base/strings.h6
-rw-r--r--gcc/fixinc/tests/base/sys/byteorder.h4
-rw-r--r--gcc/fixinc/tests/base/sys/mman.h6
-rw-r--r--gcc/fixinc/tests/base/sys/regset.h16
-rw-r--r--gcc/fixinc/tests/base/sys/socket.h19
-rw-r--r--gcc/fixinc/tests/base/sys/stat.h9
-rw-r--r--gcc/fixinc/tests/base/time.h6
-rw-r--r--gcc/flags.h5
-rw-r--r--gcc/flow.c85
-rw-r--r--gcc/fold-const.c270
-rw-r--r--gcc/function.c231
-rw-r--r--gcc/function.h7
-rw-r--r--gcc/gbl-ctors.h7
-rw-r--r--gcc/gcc.c239
-rw-r--r--gcc/gcc.h22
-rwxr-xr-xgcc/gccbug.in2
-rw-r--r--gcc/gcov-io.h8
-rw-r--r--gcc/gcse.c193
-rw-r--r--gcc/gdbinit.in4
-rw-r--r--gcc/gengtype-lex.l5
-rw-r--r--gcc/gengtype-yacc.y10
-rw-r--r--gcc/ggc-common.c83
-rw-r--r--gcc/ggc-page.c264
-rw-r--r--gcc/ggc.h5
-rw-r--r--gcc/global.c19
-rw-r--r--gcc/gthr-rtems.h3
-rw-r--r--gcc/haifa-sched.c234
-rw-r--r--gcc/hard-reg-set.h4
-rw-r--r--gcc/hashtable.c6
-rw-r--r--gcc/hashtable.h3
-rw-r--r--gcc/hooks.c10
-rw-r--r--gcc/hooks.h3
-rw-r--r--gcc/ifcvt.c104
-rw-r--r--gcc/integrate.c19
-rw-r--r--gcc/intl/ChangeLog40
-rw-r--r--gcc/java/ChangeLog303
-rw-r--r--gcc/java/Make-lang.in162
-rw-r--r--gcc/java/builtins.c8
-rw-r--r--gcc/java/class.c15
-rw-r--r--gcc/java/decl.c8
-rw-r--r--gcc/java/expr.c49
-rw-r--r--gcc/java/gcj.texi122
-rw-r--r--gcc/java/gjavah.c107
-rw-r--r--gcc/java/javaop.h68
-rw-r--r--gcc/java/jcf-dump.c85
-rw-r--r--gcc/java/jcf-io.c26
-rw-r--r--gcc/java/jcf-parse.c10
-rw-r--r--gcc/java/jcf-path.c14
-rw-r--r--gcc/java/jcf-write.c72
-rw-r--r--gcc/java/jcf.h30
-rw-r--r--gcc/java/jv-scan.c4
-rw-r--r--gcc/java/lang.c17
-rw-r--r--gcc/java/lex.c37
-rw-r--r--gcc/java/parse.y246
-rw-r--r--gcc/java/win32-host.c85
-rw-r--r--gcc/jump.c85
-rw-r--r--gcc/langhooks-def.h9
-rw-r--r--gcc/langhooks.c39
-rw-r--r--gcc/langhooks.h7
-rw-r--r--gcc/libgcc-std.ver20
-rw-r--r--gcc/libgcc2.h8
-rw-r--r--gcc/loop.c176
-rw-r--r--gcc/loop.h10
-rw-r--r--gcc/mklibgcc.in50
-rw-r--r--gcc/mkmap-symver.awk16
-rw-r--r--gcc/objc/lang-specs.h8
-rw-r--r--gcc/objc/objc-act.c17
-rw-r--r--gcc/optabs.c165
-rw-r--r--gcc/params.def48
-rw-r--r--gcc/params.h4
-rw-r--r--gcc/po/ChangeLog107
-rw-r--r--gcc/po/be.po21041
-rw-r--r--gcc/po/ca.po20826
-rw-r--r--gcc/po/da.po26298
-rw-r--r--gcc/po/de.po20833
-rw-r--r--gcc/po/el.po17853
-rw-r--r--gcc/po/es.po14211
-rw-r--r--gcc/po/fr.po15155
-rw-r--r--gcc/po/gcc.pot11542
-rw-r--r--gcc/po/ja.po18596
-rw-r--r--gcc/po/nl.po17149
-rw-r--r--gcc/po/rw.po23854
-rw-r--r--gcc/po/sv.po22657
-rw-r--r--gcc/po/tr.po13866
-rw-r--r--gcc/predict.c48
-rw-r--r--gcc/print-rtl.c4
-rw-r--r--gcc/print-tree.c4
-rw-r--r--gcc/ra-colorize.c5
-rw-r--r--gcc/real.c45
-rw-r--r--gcc/real.h1
-rw-r--r--gcc/recog.c193
-rw-r--r--gcc/reg-stack.c169
-rw-r--r--gcc/regclass.c225
-rw-r--r--gcc/regmove.c10
-rw-r--r--gcc/regs.h5
-rw-r--r--gcc/reload.c213
-rw-r--r--gcc/reload1.c174
-rw-r--r--gcc/reorg.c14
-rw-r--r--gcc/resource.c23
-rw-r--r--gcc/resource.h3
-rw-r--r--gcc/rtl.c29
-rw-r--r--gcc/rtl.def14
-rw-r--r--gcc/rtl.h29
-rw-r--r--gcc/rtlanal.c86
-rw-r--r--gcc/sbitmap.c60
-rw-r--r--gcc/sbitmap.h3
-rw-r--r--gcc/scan-decls.c10
-rw-r--r--gcc/sched-deps.c52
-rw-r--r--gcc/sched-ebb.c33
-rw-r--r--gcc/sched-int.h9
-rw-r--r--gcc/sched-rgn.c16
-rw-r--r--gcc/simplify-rtx.c79
-rw-r--r--gcc/stmt.c150
-rw-r--r--gcc/stor-layout.c44
-rw-r--r--gcc/system.h8
-rw-r--r--gcc/target-def.h8
-rw-r--r--gcc/target.h19
-rw-r--r--gcc/testsuite/ChangeLog3115
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield11.C14
-rw-r--r--gcc/testsuite/g++.dg/abi/bitfield12.C5
-rw-r--r--gcc/testsuite/g++.dg/abi/dcast1.C29
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle4.C2
-rw-r--r--gcc/testsuite/g++.dg/conversion/op2.C14
-rw-r--r--gcc/testsuite/g++.dg/cpp/c++_cmd_1.C12
-rw-r--r--gcc/testsuite/g++.dg/cpp/c++_cmd_1.h6
-rw-r--r--gcc/testsuite/g++.dg/debug/debug8.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/cleanup1.C417
-rw-r--r--gcc/testsuite/g++.dg/eh/cond2.C19
-rw-r--r--gcc/testsuite/g++.dg/eh/delayslot1.C47
-rw-r--r--gcc/testsuite/g++.dg/eh/forced1.C81
-rw-r--r--gcc/testsuite/g++.dg/eh/forced2.C51
-rw-r--r--gcc/testsuite/g++.dg/eh/forced3.C56
-rw-r--r--gcc/testsuite/g++.dg/eh/forced4.C50
-rw-r--r--gcc/testsuite/g++.dg/eh/ia64-1.C59
-rw-r--r--gcc/testsuite/g++.dg/eh/spec7.C35
-rw-r--r--gcc/testsuite/g++.dg/expr/anew1.C28
-rw-r--r--gcc/testsuite/g++.dg/expr/anew2.C28
-rw-r--r--gcc/testsuite/g++.dg/expr/anew3.C33
-rw-r--r--gcc/testsuite/g++.dg/expr/anew4.C45
-rw-r--r--gcc/testsuite/g++.dg/expr/cast1.C3
-rw-r--r--gcc/testsuite/g++.dg/expr/comma1.C21
-rw-r--r--gcc/testsuite/g++.dg/expr/cond5.C3
-rw-r--r--gcc/testsuite/g++.dg/expr/dtor1.C7
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast1.C5
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast2.C7
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast3.C24
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast4.C11
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast5.C17
-rw-r--r--gcc/testsuite/g++.dg/ext/anon-struct4.C3
-rw-r--r--gcc/testsuite/g++.dg/ext/array1.C14
-rw-r--r--gcc/testsuite/g++.dg/ext/attrib8.C10
-rw-r--r--gcc/testsuite/g++.dg/ext/desig1.C24
-rw-r--r--gcc/testsuite/g++.dg/ext/dllexport1.C23
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport1.C31
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport10.C16
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport2.C29
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport3.C25
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport4.C6
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport5.C28
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport6.C30
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport7.C33
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport8.C29
-rw-r--r--gcc/testsuite/g++.dg/ext/dllimport9.C23
-rw-r--r--gcc/testsuite/g++.dg/ext/max.C6
-rw-r--r--gcc/testsuite/g++.dg/ext/typeof3.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/typeof4.C13
-rw-r--r--gcc/testsuite/g++.dg/ext/typeof5.C17
-rw-r--r--gcc/testsuite/g++.dg/inherit/access4.C8
-rw-r--r--gcc/testsuite/g++.dg/inherit/access5.C4
-rw-r--r--gcc/testsuite/g++.dg/inherit/conv1.C23
-rw-r--r--gcc/testsuite/g++.dg/inherit/error1.C10
-rw-r--r--gcc/testsuite/g++.dg/inherit/operator2.C22
-rw-r--r--gcc/testsuite/g++.dg/inherit/thunk1.C2
-rw-r--r--gcc/testsuite/g++.dg/init/addr-const1.C38
-rw-r--r--gcc/testsuite/g++.dg/init/array10.C6
-rw-r--r--gcc/testsuite/g++.dg/init/array11.C28
-rw-r--r--gcc/testsuite/g++.dg/init/array15.C46
-rw-r--r--gcc/testsuite/g++.dg/init/array16.C106
-rw-r--r--gcc/testsuite/g++.dg/init/assign1.C30
-rw-r--r--gcc/testsuite/g++.dg/init/attrib1.C10
-rw-r--r--gcc/testsuite/g++.dg/init/ctor2.C34
-rw-r--r--gcc/testsuite/g++.dg/init/ctor3.C6
-rw-r--r--gcc/testsuite/g++.dg/init/enum1.C10
-rw-r--r--gcc/testsuite/g++.dg/init/enum2.C8
-rw-r--r--gcc/testsuite/g++.dg/init/error1.C7
-rw-r--r--gcc/testsuite/g++.dg/init/goto1.C23
-rw-r--r--gcc/testsuite/g++.dg/init/new1.C20
-rw-r--r--gcc/testsuite/g++.dg/init/new4.C1
-rw-r--r--gcc/testsuite/g++.dg/init/new5.C18
-rw-r--r--gcc/testsuite/g++.dg/init/new6.C8
-rw-r--r--gcc/testsuite/g++.dg/init/new7.C7
-rw-r--r--gcc/testsuite/g++.dg/init/new9.C22
-rw-r--r--gcc/testsuite/g++.dg/init/ref1.C5
-rw-r--r--gcc/testsuite/g++.dg/init/ref10.C14
-rw-r--r--gcc/testsuite/g++.dg/init/ref11.C13
-rw-r--r--gcc/testsuite/g++.dg/init/ref2.C10
-rw-r--r--gcc/testsuite/g++.dg/init/ref3.C12
-rw-r--r--gcc/testsuite/g++.dg/init/ref5.C12
-rw-r--r--gcc/testsuite/g++.dg/init/ref6.C12
-rw-r--r--gcc/testsuite/g++.dg/init/ref7.C9
-rw-r--r--gcc/testsuite/g++.dg/init/ref8.C10
-rw-r--r--gcc/testsuite/g++.dg/init/ref9.C36
-rw-r--r--gcc/testsuite/g++.dg/init/static1.C4
-rw-r--r--gcc/testsuite/g++.dg/init/static2.C25
-rw-r--r--gcc/testsuite/g++.dg/init/struct1.C6
-rw-r--r--gcc/testsuite/g++.dg/init/union1.C5
-rw-r--r--gcc/testsuite/g++.dg/lookup/class-member-2.C7
-rw-r--r--gcc/testsuite/g++.dg/lookup/decl1.C32
-rw-r--r--gcc/testsuite/g++.dg/lookup/decl2.C27
-rw-r--r--gcc/testsuite/g++.dg/lookup/enum1.C9
-rw-r--r--gcc/testsuite/g++.dg/lookup/enum2.C5
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend1.C15
-rw-r--r--gcc/testsuite/g++.dg/lookup/koenig2.C15
-rw-r--r--gcc/testsuite/g++.dg/lookup/ns1.C19
-rw-r--r--gcc/testsuite/g++.dg/lookup/scoped1.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/scoped3.C23
-rw-r--r--gcc/testsuite/g++.dg/lookup/scoped6.C17
-rw-r--r--gcc/testsuite/g++.dg/lookup/struct-hack1.C38
-rw-r--r--gcc/testsuite/g++.dg/lookup/template1.C31
-rw-r--r--gcc/testsuite/g++.dg/lookup/using2.C4
-rw-r--r--gcc/testsuite/g++.dg/lookup/using3.C11
-rw-r--r--gcc/testsuite/g++.dg/lookup/using9.C30
-rw-r--r--gcc/testsuite/g++.dg/opt/cfg1.C36
-rw-r--r--gcc/testsuite/g++.dg/opt/cfg2.C38
-rw-r--r--gcc/testsuite/g++.dg/opt/cfg3.C61
-rw-r--r--gcc/testsuite/g++.dg/opt/cond1.C24
-rw-r--r--gcc/testsuite/g++.dg/opt/const3.C44
-rw-r--r--gcc/testsuite/g++.dg/opt/emptyunion.C13
-rw-r--r--gcc/testsuite/g++.dg/opt/expect1.C17
-rw-r--r--gcc/testsuite/g++.dg/opt/expect2.C11
-rw-r--r--gcc/testsuite/g++.dg/opt/float1.C21
-rw-r--r--gcc/testsuite/g++.dg/opt/inline4.C13
-rw-r--r--gcc/testsuite/g++.dg/opt/inline6.C14
-rw-r--r--gcc/testsuite/g++.dg/opt/longbranch2.C62
-rw-r--r--gcc/testsuite/g++.dg/opt/max1.C29
-rw-r--r--gcc/testsuite/g++.dg/opt/noreturn-1.C87
-rw-r--r--gcc/testsuite/g++.dg/opt/nrv7.C13
-rw-r--r--gcc/testsuite/g++.dg/opt/operator1.C10
-rw-r--r--gcc/testsuite/g++.dg/opt/pr15054.C36
-rw-r--r--gcc/testsuite/g++.dg/opt/ptrmem1.C12
-rw-r--r--gcc/testsuite/g++.dg/opt/ptrmem2.C12
-rw-r--r--gcc/testsuite/g++.dg/opt/reg-stack2.C34
-rw-r--r--gcc/testsuite/g++.dg/opt/reg-stack3.C21
-rw-r--r--gcc/testsuite/g++.dg/opt/reg-stack4.C29
-rw-r--r--gcc/testsuite/g++.dg/opt/stack1.C135
-rw-r--r--gcc/testsuite/g++.dg/opt/strength-reduce.C51
-rw-r--r--gcc/testsuite/g++.dg/opt/unroll1.C420
-rw-r--r--gcc/testsuite/g++.dg/opt/vtgc1.C136
-rw-r--r--gcc/testsuite/g++.dg/other/bitfield1.C9
-rw-r--r--gcc/testsuite/g++.dg/other/complex1.C28
-rw-r--r--gcc/testsuite/g++.dg/other/crash-2.C13
-rw-r--r--gcc/testsuite/g++.dg/other/do1.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error5.C13
-rw-r--r--gcc/testsuite/g++.dg/other/error6.C19
-rw-r--r--gcc/testsuite/g++.dg/other/packed1.C7
-rw-r--r--gcc/testsuite/g++.dg/other/pragma-ep-1.C2
-rw-r--r--gcc/testsuite/g++.dg/other/profile1.C51
-rw-r--r--gcc/testsuite/g++.dg/other/struct-va_list.C8
-rw-r--r--gcc/testsuite/g++.dg/other/switch1.C20
-rw-r--r--gcc/testsuite/g++.dg/overload/builtin2.C8
-rw-r--r--gcc/testsuite/g++.dg/overload/builtin3.C10
-rw-r--r--gcc/testsuite/g++.dg/overload/operator1.C34
-rw-r--r--gcc/testsuite/g++.dg/overload/template1.C12
-rw-r--r--gcc/testsuite/g++.dg/parse/angle-bracket.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/class1.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/conv_op1.C30
-rw-r--r--gcc/testsuite/g++.dg/parse/crash2.C7
-rw-r--r--gcc/testsuite/g++.dg/parse/crash3.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/crash4.C12
-rw-r--r--gcc/testsuite/g++.dg/parse/crash6.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/crash7.C19
-rw-r--r--gcc/testsuite/g++.dg/parse/elab1.C9
-rw-r--r--gcc/testsuite/g++.dg/parse/error7.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/init1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/namespace1.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/namespace8.C6
-rw-r--r--gcc/testsuite/g++.dg/parse/namespace9.C8
-rw-r--r--gcc/testsuite/g++.dg/parse/octal1.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/parameter-declaration-1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/ptrmem1.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/template12.C10
-rw-r--r--gcc/testsuite/g++.dg/parse/template8.C16
-rw-r--r--gcc/testsuite/g++.dg/parse/typedef1.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/varmod1.C7
-rw-r--r--gcc/testsuite/g++.dg/rtti/dyncast1.C23
-rw-r--r--gcc/testsuite/g++.dg/rtti/typeid2.C15
-rw-r--r--gcc/testsuite/g++.dg/rtti/typeid3.C11
-rw-r--r--gcc/testsuite/g++.dg/rtti/typeid4.C26
-rw-r--r--gcc/testsuite/g++.dg/template/access10.C16
-rw-r--r--gcc/testsuite/g++.dg/template/access12.C13
-rw-r--r--gcc/testsuite/g++.dg/template/access13.C16
-rw-r--r--gcc/testsuite/g++.dg/template/access7.C18
-rw-r--r--gcc/testsuite/g++.dg/template/alignof1.C13
-rw-r--r--gcc/testsuite/g++.dg/template/anon1.C21
-rw-r--r--gcc/testsuite/g++.dg/template/conv5.C22
-rw-r--r--gcc/testsuite/g++.dg/template/conv6.C24
-rw-r--r--gcc/testsuite/g++.dg/template/conv7.C12
-rw-r--r--gcc/testsuite/g++.dg/template/conv8.C12
-rw-r--r--gcc/testsuite/g++.dg/template/crash11.C9
-rw-r--r--gcc/testsuite/g++.dg/template/crash8.C20
-rw-r--r--gcc/testsuite/g++.dg/template/crash9.C12
-rw-r--r--gcc/testsuite/g++.dg/template/defarg2.C10
-rw-r--r--gcc/testsuite/g++.dg/template/defarg4.C14
-rw-r--r--gcc/testsuite/g++.dg/template/explicit1.C17
-rw-r--r--gcc/testsuite/g++.dg/template/friend10.C45
-rw-r--r--gcc/testsuite/g++.dg/template/friend12.C24
-rw-r--r--gcc/testsuite/g++.dg/template/friend13.C21
-rw-r--r--gcc/testsuite/g++.dg/template/friend14.C20
-rw-r--r--gcc/testsuite/g++.dg/template/friend15.C19
-rw-r--r--gcc/testsuite/g++.dg/template/friend16.C16
-rw-r--r--gcc/testsuite/g++.dg/template/friend17.C12
-rw-r--r--gcc/testsuite/g++.dg/template/friend18.C19
-rw-r--r--gcc/testsuite/g++.dg/template/friend20.C15
-rw-r--r--gcc/testsuite/g++.dg/template/friend25.C14
-rw-r--r--gcc/testsuite/g++.dg/template/friend9.C18
-rw-r--r--gcc/testsuite/g++.dg/template/func1.C13
-rw-r--r--gcc/testsuite/g++.dg/template/inline1.C20
-rw-r--r--gcc/testsuite/g++.dg/template/instantiate4.C13
-rw-r--r--gcc/testsuite/g++.dg/template/instantiate6.C15
-rw-r--r--gcc/testsuite/g++.dg/template/local3.C14
-rw-r--r--gcc/testsuite/g++.dg/template/lookup1.C17
-rw-r--r--gcc/testsuite/g++.dg/template/member.C56
-rw-r--r--gcc/testsuite/g++.dg/template/member3.C19
-rw-r--r--gcc/testsuite/g++.dg/template/memclass1.C18
-rw-r--r--gcc/testsuite/g++.dg/template/nested2.C9
-rw-r--r--gcc/testsuite/g++.dg/template/nontype2.C11
-rw-r--r--gcc/testsuite/g++.dg/template/nontype4.C14
-rw-r--r--gcc/testsuite/g++.dg/template/nontype5.C14
-rw-r--r--gcc/testsuite/g++.dg/template/ntp2.C16
-rw-r--r--gcc/testsuite/g++.dg/template/op1.C12
-rw-r--r--gcc/testsuite/g++.dg/template/partial2.C14
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem4.C20
-rw-r--r--gcc/testsuite/g++.dg/template/ptrmem6.C43
-rw-r--r--gcc/testsuite/g++.dg/template/recurse.C2
-rw-r--r--gcc/testsuite/g++.dg/template/scope2.C34
-rw-r--r--gcc/testsuite/g++.dg/template/sizeof6.C13
-rw-r--r--gcc/testsuite/g++.dg/template/spec10.C27
-rw-r--r--gcc/testsuite/g++.dg/template/spec11.C20
-rw-r--r--gcc/testsuite/g++.dg/template/spec12.C18
-rw-r--r--gcc/testsuite/g++.dg/template/spec7.C27
-rw-r--r--gcc/testsuite/g++.dg/template/spec8.C11
-rw-r--r--gcc/testsuite/g++.dg/template/spec9.C21
-rw-r--r--gcc/testsuite/g++.dg/template/static3.C25
-rw-r--r--gcc/testsuite/g++.dg/template/static4.C7
-rw-r--r--gcc/testsuite/g++.dg/template/ttp10.C21
-rw-r--r--gcc/testsuite/g++.dg/template/ttp3.C2
-rw-r--r--gcc/testsuite/g++.dg/template/type2.C16
-rw-r--r--gcc/testsuite/g++.dg/template/typename3.C2
-rw-r--r--gcc/testsuite/g++.dg/template/unify4.C18
-rw-r--r--gcc/testsuite/g++.dg/tls/init-2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Winline-1.C10
-rw-r--r--gcc/testsuite/g++.dg/warn/Winline-2.C11
-rw-r--r--gcc/testsuite/g++.dg/warn/Winline-4.C17
-rw-r--r--gcc/testsuite/g++.dg/warn/Woverloaded-1.C17
-rw-r--r--gcc/testsuite/g++.dg/warn/Wshadow-2.C10
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-3.C11
-rw-r--r--gcc/testsuite/g++.dg/warn/compare1.C10
-rw-r--r--gcc/testsuite/g++.dg/warn/conv2.C3
-rw-r--r--gcc/testsuite/g++.dg/warn/conversion-function-1.C8
-rw-r--r--gcc/testsuite/g++.dg/warn/ctor-init-1.C9
-rw-r--r--gcc/testsuite/g++.dg/warn/format3.C12
-rw-r--r--gcc/testsuite/g++.dg/warn/implicit-typename1.C17
-rw-r--r--gcc/testsuite/g++.dg/warn/implicit-typename2.C12
-rw-r--r--gcc/testsuite/g++.dg/warn/implicit-typename3.C12
-rw-r--r--gcc/testsuite/g++.dg/warn/incomplete1.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/inline1.C23
-rw-r--r--gcc/testsuite/g++.dg/warn/pedantic1.C11
-rw-r--r--gcc/testsuite/g++.dg/warn/weak1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.benjamin/16077.C3
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/crash64.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.eh/spec6.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ext/attrib5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ext/pretty2.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/access8.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/conversion5.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/synth10.C6
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/warning9.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.martin/pmf1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/eh33.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/eh50.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/err1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/net31.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p8786.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/virt2.C22
-rw-r--r--gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog40
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/builtins10.C7
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/conv7.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/decl5.C20
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/lookup24.C25
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overcnv2.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overload14.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/deduct5.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/instantiate12.C10
-rw-r--r--gcc/testsuite/g++.old-deja/g++.robertl/eb42.C19
-rw-r--r--gcc/testsuite/g77.dg/12632.f6
-rw-r--r--gcc/testsuite/g77.dg/pr9258.f18
-rw-r--r--gcc/testsuite/g77.f-torture/compile/13060.f13
-rw-r--r--gcc/testsuite/g77.f-torture/compile/20030326-1.f14
-rw-r--r--gcc/testsuite/g77.f-torture/execute/10197.f15
-rw-r--r--gcc/testsuite/g77.f-torture/execute/13037.f58
-rw-r--r--gcc/testsuite/g77.f-torture/execute/1832.f8
-rw-r--r--gcc/testsuite/g77.f-torture/execute/select.f173
-rw-r--r--gcc/testsuite/g77.f-torture/noncompile/9263.f7
-rw-r--r--gcc/testsuite/g77.f-torture/noncompile/select_no_compile.f10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20000804-1.x3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20001205-1.x3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20001226-1.x2
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010518-2.x8
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20020312-1.x6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20020604-1.x4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021015-1.c12
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021015-2.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021123-1.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021123-2.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021123-3.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20021123-4.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030110-1.c39
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030125-1.c24
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030206-1.c14
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030219-1.c6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030305-1.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030314-1.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030330-1.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030405-1.c58
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030418-1.c16
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030604-1.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030625-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030703-1.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030821-1.c24
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20030907-1.c25
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031002-1.c9
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031011-1.c21
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031031-1.c36
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031031-2.c36
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031220-1.c21
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20031231-1.c51
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20040304-1.c45
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/920501-12.x6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/920501-4.x6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/920520-1.x3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/961203-1.x3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/980506-1.x3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/981223-1.x16
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr13889.c7
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/simd-5.x37
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20011126-1.c38
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20020227-1.x40
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20020720-1.x16
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20021024-1.c43
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20021219-1.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030109-1.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030120-1.c50
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030120-2.c19
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030218-1.c25
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030221-1.c17
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030224-2.c28
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030307-1.c26
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030313-1.c68
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030316-1.c12
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030613-1.c62
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030714-1.c193
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030715-1.c35
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20030907-1.c22
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20031020-1.c23
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20031201-1.c76
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20031215-1.c38
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040218-1.c37
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040302-1.c24
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040307-1.c25
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040313-1.c17
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040331-1.c12
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050124-1.c41
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/960312-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/builtin-constant.x11
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr15296.c73
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr16790-1.c41
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/restrict-1.c30
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/va-arg-23.c26
-rw-r--r--gcc/testsuite/gcc.dg/20001013-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/20001101-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/20001102-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/20011029-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/20020313-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/20020430-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/20020503-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/20030120-1.c10
-rw-r--r--gcc/testsuite/gcc.dg/20030123-1.c17
-rw-r--r--gcc/testsuite/gcc.dg/20030129-1.c37
-rw-r--r--gcc/testsuite/gcc.dg/20030204-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/20030213-1.c37
-rw-r--r--gcc/testsuite/gcc.dg/20030225-1.c103
-rw-r--r--gcc/testsuite/gcc.dg/20030309-1.c42
-rw-r--r--gcc/testsuite/gcc.dg/20030321-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/20030323-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/20030324-1.c39
-rw-r--r--gcc/testsuite/gcc.dg/20030331-2.c10
-rw-r--r--gcc/testsuite/gcc.dg/20030414-1.c39
-rw-r--r--gcc/testsuite/gcc.dg/20030625-1.c9
-rw-r--r--gcc/testsuite/gcc.dg/20030627-1.c20
-rw-r--r--gcc/testsuite/gcc.dg/20030702-1.c10
-rw-r--r--gcc/testsuite/gcc.dg/20030708-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/20030711-1.c25
-rw-r--r--gcc/testsuite/gcc.dg/20030717-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/20030721-1.c41
-rw-r--r--gcc/testsuite/gcc.dg/20030815-1.c26
-rw-r--r--gcc/testsuite/gcc.dg/20030926-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/20031002-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/20031009-1.c19
-rw-r--r--gcc/testsuite/gcc.dg/20031108-1.c35
-rw-r--r--gcc/testsuite/gcc.dg/20031201-2.c41
-rw-r--r--gcc/testsuite/gcc.dg/20031202-1.c44
-rw-r--r--gcc/testsuite/gcc.dg/20040112-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/20040127-1.c24
-rw-r--r--gcc/testsuite/gcc.dg/20040127-2.c32
-rw-r--r--gcc/testsuite/gcc.dg/20040306-1.c22
-rw-r--r--gcc/testsuite/gcc.dg/20040311-2.c36
-rw-r--r--gcc/testsuite/gcc.dg/20040322-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/Wunreachable-6.c18
-rw-r--r--gcc/testsuite/gcc.dg/Wunreachable-7.c18
-rw-r--r--gcc/testsuite/gcc.dg/altivec-10.c86
-rw-r--r--gcc/testsuite/gcc.dg/asm-7.c28
-rw-r--r--gcc/testsuite/gcc.dg/asm-names.c15
-rw-r--r--gcc/testsuite/gcc.dg/asmreg-1.c73
-rw-r--r--gcc/testsuite/gcc.dg/attr-invalid.c4
-rw-r--r--gcc/testsuite/gcc.dg/builtin-apply1.c9
-rw-r--r--gcc/testsuite/gcc.dg/c90-array-lval-6.c16
-rw-r--r--gcc/testsuite/gcc.dg/c90-restrict-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/c99-array-lval-6.c15
-rw-r--r--gcc/testsuite/gcc.dg/c99-bool-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/c99-func-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-1.c36
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-2.c22
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-3.c45
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-4.c39
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-5.c50
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-6.c14
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-7.c22
-rw-r--r--gcc/testsuite/gcc.dg/compare7.c10
-rw-r--r--gcc/testsuite/gcc.dg/const-1.c56
-rw-r--r--gcc/testsuite/gcc.dg/cpp/19990413-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c29
-rw-r--r--gcc/testsuite/gcc.dg/cpp/Wunused.c5
-rw-r--r--gcc/testsuite/gcc.dg/cpp/digraph2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/direct2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/inc/foo.h1
-rw-r--r--gcc/testsuite/gcc.dg/cpp/include3.c7
-rw-r--r--gcc/testsuite/gcc.dg/cpp/paste4.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/redef3.c21
-rw-r--r--gcc/testsuite/gcc.dg/cpp/separate-1.c15
-rw-r--r--gcc/testsuite/gcc.dg/cpp/spacing1.c19
-rw-r--r--gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c10
-rw-r--r--gcc/testsuite/gcc.dg/darwin-abi-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/darwin-ld-5.c4
-rw-r--r--gcc/testsuite/gcc.dg/decl-2.c10
-rw-r--r--gcc/testsuite/gcc.dg/decl-3.c5
-rw-r--r--gcc/testsuite/gcc.dg/format/attr-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/gnu89-init-3.c18
-rw-r--r--gcc/testsuite/gcc.dg/h8300-stack-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/i386-call-1.c39
-rw-r--r--gcc/testsuite/gcc.dg/i386-loop-1.c105
-rw-r--r--gcc/testsuite/gcc.dg/i386-loop-2.c80
-rw-r--r--gcc/testsuite/gcc.dg/i386-loop-3.c76
-rw-r--r--gcc/testsuite/gcc.dg/i386-mmx-3.c17
-rw-r--r--gcc/testsuite/gcc.dg/i386-signbit-1.c28
-rw-r--r--gcc/testsuite/gcc.dg/i386-signbit-2.c28
-rw-r--r--gcc/testsuite/gcc.dg/i386-signbit-3.c32
-rw-r--r--gcc/testsuite/gcc.dg/i386-sse-4.c27
-rw-r--r--gcc/testsuite/gcc.dg/i386-ssetype-1.c29
-rw-r--r--gcc/testsuite/gcc.dg/i386-ssetype-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/i386-ssetype-3.c28
-rw-r--r--gcc/testsuite/gcc.dg/i386-ssetype-5.c27
-rw-r--r--gcc/testsuite/gcc.dg/i386-volatile-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/ia64-sync-3.c74
-rw-r--r--gcc/testsuite/gcc.dg/ia64-sync-4.c21
-rw-r--r--gcc/testsuite/gcc.dg/inline-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/inline-5.c13
-rw-r--r--gcc/testsuite/gcc.dg/loop-4.c25
-rw-r--r--gcc/testsuite/gcc.dg/loop-6.c25
-rw-r--r--gcc/testsuite/gcc.dg/nest.c1
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/20030818-1.c3
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/920721-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/930622-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/940112-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/950921-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/951123-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/971104-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/990416-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/init-4.c3
-rw-r--r--gcc/testsuite/gcc.dg/noreturn-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/noreturn-7.c42
-rw-r--r--gcc/testsuite/gcc.dg/null-pointer-1.c20
-rw-r--r--gcc/testsuite/gcc.dg/old-style-asm-1.c27
-rw-r--r--gcc/testsuite/gcc.dg/overflow-1.c25
-rw-r--r--gcc/testsuite/gcc.dg/ppc-stackalign-1.c34
-rw-r--r--gcc/testsuite/gcc.dg/pr14289-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr14289-2.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr14289-3.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr14765-1.c11
-rw-r--r--gcc/testsuite/gcc.dg/pr9771-1.c43
-rw-r--r--gcc/testsuite/gcc.dg/pragma-ep-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/return-type-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/return-type-3.c14
-rw-r--r--gcc/testsuite/gcc.dg/short-compare-1.c21
-rw-r--r--gcc/testsuite/gcc.dg/short-compare-2.c22
-rw-r--r--gcc/testsuite/gcc.dg/sibcall-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/sparc-constant-1.c12
-rw-r--r--gcc/testsuite/gcc.dg/sparc-dwarf2.c31
-rw-r--r--gcc/testsuite/gcc.dg/sparc-ret.c9
-rw-r--r--gcc/testsuite/gcc.dg/sparc-trap-1.c20
-rw-r--r--gcc/testsuite/gcc.dg/special/ecos.exp4
-rw-r--r--gcc/testsuite/gcc.dg/struct-ret-libc.c16
-rw-r--r--gcc/testsuite/gcc.dg/tls/alias-1.c21
-rw-r--r--gcc/testsuite/gcc.dg/torture/cris-volatile-1.c72
-rw-r--r--gcc/testsuite/gcc.dg/torture/dg-torture.exp7
-rw-r--r--gcc/testsuite/gcc.dg/trampoline-1.c50
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp10.c25
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp2.c5
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp4.c5
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp5.c12
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp6.c150
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp7.c49
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp8.c39
-rw-r--r--gcc/testsuite/gcc.dg/ultrasp9.c39
-rw-r--r--gcc/testsuite/gcc.dg/uninit-C.c20
-rw-r--r--gcc/testsuite/gcc.dg/unused-4.c2
-rw-r--r--gcc/testsuite/gcc.misc-tests/linkage.exp5
-rw-r--r--gcc/testsuite/lib/g++.exp2
-rw-r--r--gcc/testsuite/lib/g77.exp2
-rw-r--r--gcc/testsuite/lib/gcc.exp2
-rw-r--r--gcc/testsuite/lib/objc.exp2
-rw-r--r--gcc/testsuite/lib/profopt.exp6
-rw-r--r--gcc/testsuite/lib/scanasm.exp16
-rw-r--r--gcc/testsuite/objc.dg/naming-1.m2
-rw-r--r--gcc/testsuite/objc.dg/naming-2.m2
-rw-r--r--gcc/testsuite/objc.dg/private-1.m59
-rw-r--r--gcc/testsuite/objc.dg/private-2.m54
-rw-r--r--gcc/testsuite/objc.dg/proto-lossage-3.m25
-rw-r--r--gcc/testsuite/treelang/ChangeLog40
-rw-r--r--gcc/timevar.c7
-rw-r--r--gcc/timevar.def3
-rw-r--r--gcc/timevar.h3
-rw-r--r--gcc/tlink.c16
-rw-r--r--gcc/toplev.c195
-rw-r--r--gcc/tree-inline.c107
-rw-r--r--gcc/tree.c98
-rw-r--r--gcc/tree.h24
-rw-r--r--gcc/treelang/ChangeLog80
-rw-r--r--gcc/treelang/Make-lang.in67
-rw-r--r--gcc/treelang/treelang.texi89
-rw-r--r--gcc/tsystem.h8
-rw-r--r--gcc/unroll.c94
-rw-r--r--gcc/unwind-c.c186
-rw-r--r--gcc/unwind-dw2-fde-darwin.c20
-rw-r--r--gcc/unwind-dw2-fde.h4
-rw-r--r--gcc/unwind-dw2.c112
-rw-r--r--gcc/unwind-libunwind.c187
-rw-r--r--gcc/unwind-pe.h4
-rw-r--r--gcc/unwind-sjlj.c10
-rw-r--r--gcc/unwind.h28
-rw-r--r--gcc/unwind.inc65
-rw-r--r--gcc/varasm.c126
-rw-r--r--gcc/version.c4
-rw-r--r--include/ChangeLog85
-rw-r--r--include/ansidecl.h30
-rw-r--r--include/demangle.h8
-rw-r--r--include/libiberty.h8
-rw-r--r--include/obstack.h40
-rw-r--r--libf2c/ChangeLog87
-rw-r--r--libf2c/Makefile.in29
-rw-r--r--libf2c/aclocal.m45
-rwxr-xr-xlibf2c/configure248
-rw-r--r--libf2c/configure.in4
-rwxr-xr-xlibf2c/libI77/configure165
-rw-r--r--libf2c/libI77/configure.in6
-rw-r--r--libf2c/libI77/iio.c2
-rw-r--r--libf2c/libI77/open.c5
-rwxr-xr-xlibf2c/libU77/configure165
-rw-r--r--libf2c/libU77/configure.in6
-rw-r--r--libffi/ChangeLog145
-rw-r--r--libffi/ChangeLog.libgcj13
-rw-r--r--libffi/Makefile.am9
-rw-r--r--libffi/Makefile.in155
-rw-r--r--libffi/README10
-rwxr-xr-xlibffi/configure412
-rw-r--r--libffi/configure.in37
-rw-r--r--libffi/fficonfig.h.in46
-rw-r--r--libffi/include/Makefile.in8
-rw-r--r--libffi/include/ffi.h.in27
-rw-r--r--libffi/src/ffitest.c260
-rw-r--r--libffi/src/powerpc/aix_closure.S37
-rw-r--r--libffi/src/powerpc/darwin.S89
-rw-r--r--libffi/src/powerpc/darwin_closure.S117
-rw-r--r--libffi/src/powerpc/ffi.c37
-rw-r--r--libffi/src/powerpc/ffi_darwin.c46
-rw-r--r--libffi/src/powerpc/ppc_closure.S194
-rw-r--r--libffi/src/sparc/ffi.c106
-rw-r--r--libffi/src/sparc/v8.S93
-rw-r--r--libffi/src/sparc/v9.S110
-rw-r--r--libffi/src/x86/ffi.c45
-rw-r--r--libffi/src/x86/ffi64.c139
-rw-r--r--libffi/src/x86/unix64.S138
-rw-r--r--libiberty/ChangeLog228
-rw-r--r--libiberty/Makefile.in31
-rw-r--r--libiberty/acconfig.h3
-rw-r--r--libiberty/aclocal.m429
-rw-r--r--libiberty/config.in60
-rwxr-xr-xlibiberty/configure473
-rw-r--r--libiberty/configure.in29
-rw-r--r--libiberty/cp-demangle.c2
-rw-r--r--libiberty/cplus-dem.c9
-rw-r--r--libiberty/functions.texi35
-rw-r--r--libiberty/getopt.c6
-rw-r--r--libiberty/hashtab.c10
-rw-r--r--libiberty/libiberty.texi4
-rw-r--r--libiberty/lrealpath.c128
-rw-r--r--libiberty/make-relative-prefix.c55
-rw-r--r--libiberty/physmem.c305
-rw-r--r--libiberty/regex.c2
-rw-r--r--libiberty/testsuite/test-demangle.c2
-rw-r--r--libiberty/vsprintf.c6
-rw-r--r--libjava/ChangeLog1797
-rw-r--r--libjava/Makefile.am201
-rw-r--r--libjava/Makefile.in340
-rw-r--r--libjava/acinclude.m424
-rw-r--r--libjava/aclocal.m447
-rw-r--r--libjava/boehm.cc2
-rwxr-xr-xlibjava/configure605
-rw-r--r--libjava/configure.host11
-rw-r--r--libjava/configure.in39
-rw-r--r--libjava/defineclass.cc2
-rw-r--r--libjava/gcj/Makefile.in5
-rw-r--r--libjava/gcj/javaprims.h21
-rw-r--r--libjava/gnu/awt/j2d/DirectRasterGraphics.java5
-rw-r--r--libjava/gnu/awt/j2d/Graphics2DImpl.java5
-rw-r--r--libjava/gnu/awt/j2d/IntegerGraphicsState.java18
-rw-r--r--libjava/gnu/awt/xlib/XGraphics.java8
-rw-r--r--libjava/gnu/awt/xlib/XGraphicsConfiguration.java37
-rw-r--r--libjava/gnu/awt/xlib/XToolkit.java4
-rw-r--r--libjava/gnu/gcj/convert/Output_EUCJIS.java7
-rw-r--r--libjava/gnu/gcj/convert/Output_SJIS.java7
-rw-r--r--libjava/gnu/gcj/convert/Output_UTF8.java9
-rw-r--r--libjava/gnu/gcj/convert/UnicodeToBytes.java13
-rw-r--r--libjava/gnu/gcj/convert/natIconv.cc3
-rw-r--r--libjava/gnu/gcj/protocol/http/Connection.java59
-rw-r--r--libjava/gnu/gcj/runtime/FirstThread.java2
-rw-r--r--libjava/gnu/gcj/runtime/NameFinder.java22
-rw-r--r--libjava/gnu/gcj/runtime/SharedLibLoader.java4
-rw-r--r--libjava/gnu/gcj/runtime/StackTrace.java1
-rw-r--r--libjava/gnu/gcj/runtime/natNameFinder.cc33
-rw-r--r--libjava/gnu/gcj/runtime/natSharedLibLoader.cc4
-rw-r--r--libjava/gnu/gcj/runtime/natStackTrace.cc10
-rw-r--r--libjava/gnu/gcj/xlib/GC.java4
-rw-r--r--libjava/gnu/gcj/xlib/natGC.cc24
-rw-r--r--libjava/gnu/java/nio/ByteBufferImpl.java388
-rw-r--r--libjava/gnu/java/nio/CharBufferImpl.java148
-rw-r--r--libjava/gnu/java/nio/DoubleBufferImpl.java120
-rw-r--r--libjava/gnu/java/nio/FileChannelImpl.java181
-rw-r--r--libjava/gnu/java/nio/FileLockImpl.java63
-rw-r--r--libjava/gnu/java/nio/FloatBufferImpl.java114
-rw-r--r--libjava/gnu/java/nio/IntBufferImpl.java118
-rw-r--r--libjava/gnu/java/nio/LongBufferImpl.java116
-rw-r--r--libjava/gnu/java/nio/SelectorProviderImpl.java6
-rw-r--r--libjava/gnu/java/nio/ServerSocketChannelImpl.java10
-rw-r--r--libjava/gnu/java/nio/ShortBufferImpl.java126
-rw-r--r--libjava/gnu/java/nio/natByteBufferImpl.cc10
-rw-r--r--libjava/gnu/java/nio/natCharBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natDoubleBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natFileChannelImpl.cc53
-rw-r--r--libjava/gnu/java/nio/natFloatBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natIntBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natLongBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natServerSocketChannelImpl.cc77
-rw-r--r--libjava/gnu/java/nio/natShortBufferImpl.cc112
-rw-r--r--libjava/gnu/java/nio/natSocketChannelImpl.cc92
-rw-r--r--libjava/gnu/java/rmi/server/UnicastRemoteCall.java2
-rw-r--r--libjava/gnu/java/rmi/server/UnicastServerRef.java4
-rw-r--r--libjava/gnu/java/security/provider/SHA1PRNG.java32
-rw-r--r--libjava/include/Makefile.in5
-rw-r--r--libjava/include/config.h.in2
-rw-r--r--libjava/include/dwarf2-signal.h3
-rw-r--r--libjava/include/i386-signal.h27
-rw-r--r--libjava/include/java-interp.h4
-rw-r--r--libjava/include/jvm.h18
-rw-r--r--libjava/include/posix.h28
-rw-r--r--libjava/include/powerpc-signal.h87
-rw-r--r--libjava/include/win32-threads.h58
-rw-r--r--libjava/include/win32.h31
-rw-r--r--libjava/include/x86_64-signal.h96
-rw-r--r--libjava/java/awt/AlphaComposite.java24
-rw-r--r--libjava/java/awt/BasicStroke.java58
-rw-r--r--libjava/java/awt/BufferCapabilities.java5
-rw-r--r--libjava/java/awt/Button.java13
-rw-r--r--libjava/java/awt/CardLayout.java47
-rw-r--r--libjava/java/awt/CheckboxMenuItem.java12
-rw-r--r--libjava/java/awt/Choice.java34
-rw-r--r--libjava/java/awt/Component.java33
-rw-r--r--libjava/java/awt/Container.java511
-rw-r--r--libjava/java/awt/Cursor.java14
-rw-r--r--libjava/java/awt/DisplayMode.java16
-rw-r--r--libjava/java/awt/EventQueue.java30
-rw-r--r--libjava/java/awt/FileDialog.java12
-rw-r--r--libjava/java/awt/Graphics2D.java3
-rw-r--r--libjava/java/awt/Label.java13
-rw-r--r--libjava/java/awt/List.java13
-rw-r--r--libjava/java/awt/Menu.java9
-rw-r--r--libjava/java/awt/MenuBar.java4
-rw-r--r--libjava/java/awt/MenuComponent.java4
-rw-r--r--libjava/java/awt/PopupMenu.java9
-rw-r--r--libjava/java/awt/ScrollPane.java11
-rw-r--r--libjava/java/awt/Scrollbar.java19
-rw-r--r--libjava/java/awt/TextArea.java13
-rw-r--r--libjava/java/awt/TextComponent.java8
-rw-r--r--libjava/java/awt/TextField.java13
-rw-r--r--libjava/java/awt/Toolkit.java64
-rw-r--r--libjava/java/awt/Window.java95
-rw-r--r--libjava/java/awt/color/CMMException.java2
-rw-r--r--libjava/java/awt/color/ColorSpace.java9
-rw-r--r--libjava/java/awt/color/ICC_ColorSpace.java33
-rw-r--r--libjava/java/awt/color/ICC_Profile.java2
-rw-r--r--libjava/java/awt/color/ProfileDataException.java2
-rw-r--r--libjava/java/awt/datatransfer/Clipboard.java4
-rw-r--r--libjava/java/awt/datatransfer/DataFlavor.java17
-rw-r--r--libjava/java/awt/datatransfer/FlavorMap.java65
-rw-r--r--libjava/java/awt/datatransfer/SystemFlavorMap.java241
-rw-r--r--libjava/java/awt/dnd/DragGestureEvent.java27
-rw-r--r--libjava/java/awt/dnd/DragGestureRecognizer.java6
-rw-r--r--libjava/java/awt/dnd/DragSource.java46
-rw-r--r--libjava/java/awt/dnd/DropTarget.java9
-rw-r--r--libjava/java/awt/event/WindowEvent.java2
-rw-r--r--libjava/java/awt/geom/Dimension2D.java5
-rw-r--r--libjava/java/awt/geom/GeneralPath.java4
-rw-r--r--libjava/java/awt/geom/Line2D.java4
-rw-r--r--libjava/java/awt/geom/PathIterator.java4
-rw-r--r--libjava/java/awt/geom/QuadCurve2D.java4
-rw-r--r--libjava/java/awt/im/InputContext.java3
-rw-r--r--libjava/java/awt/im/InputMethodHighlight.java2
-rw-r--r--libjava/java/awt/image/ColorModel.java22
-rw-r--r--libjava/java/awt/image/ImageFilter.java13
-rw-r--r--libjava/java/beans/PropertyDescriptor.java566
-rw-r--r--libjava/java/io/BufferedOutputStream.java8
-rw-r--r--libjava/java/io/File.java154
-rw-r--r--libjava/java/io/FileDescriptor.java4
-rw-r--r--libjava/java/io/FileInputStream.java6
-rw-r--r--libjava/java/io/InputStreamReader.java7
-rw-r--r--libjava/java/io/ObjectInputStream.java1444
-rw-r--r--libjava/java/io/ObjectOutputStream.java998
-rw-r--r--libjava/java/io/ObjectStreamClass.java145
-rw-r--r--libjava/java/io/ObjectStreamField.java23
-rw-r--r--libjava/java/io/OutputStreamWriter.java16
-rw-r--r--libjava/java/io/PipedOutputStream.java8
-rw-r--r--libjava/java/io/PipedWriter.java6
-rw-r--r--libjava/java/io/PrintStream.java6
-rw-r--r--libjava/java/io/StringWriter.java4
-rw-r--r--libjava/java/io/VMObjectStreamClass.java50
-rw-r--r--libjava/java/io/natFileDescriptorPosix.cc58
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc19
-rw-r--r--libjava/java/io/natFilePosix.cc20
-rw-r--r--libjava/java/io/natFileWin32.cc168
-rw-r--r--libjava/java/io/natObjectInputStream.cc13
-rw-r--r--libjava/java/io/natObjectOutputStream.cc33
-rw-r--r--libjava/java/io/natVMObjectStreamClass.cc23
-rw-r--r--libjava/java/lang/Class.h10
-rw-r--r--libjava/java/lang/ClassLoader.java18
-rw-r--r--libjava/java/lang/StringBuffer.java39
-rw-r--r--libjava/java/lang/System.java45
-rw-r--r--libjava/java/lang/Win32Process.java52
-rw-r--r--libjava/java/lang/natClass.cc81
-rw-r--r--libjava/java/lang/natClassLoader.cc75
-rw-r--r--libjava/java/lang/natObject.cc5
-rw-r--r--libjava/java/lang/natRuntime.cc46
-rw-r--r--libjava/java/lang/natString.cc12
-rw-r--r--libjava/java/lang/natSystem.cc5
-rw-r--r--libjava/java/lang/natWin32Process.cc295
-rw-r--r--libjava/java/lang/reflect/Modifier.java13
-rw-r--r--libjava/java/lang/reflect/natMethod.cc47
-rw-r--r--libjava/java/math/BigDecimal.java69
-rw-r--r--libjava/java/math/BigInteger.java328
-rw-r--r--libjava/java/net/DatagramSocket.java628
-rw-r--r--libjava/java/net/HttpURLConnection.java58
-rw-r--r--libjava/java/net/InetSocketAddress.java5
-rw-r--r--libjava/java/net/MulticastSocket.java23
-rw-r--r--libjava/java/net/NetPermission.java3
-rw-r--r--libjava/java/net/NetworkInterface.java19
-rw-r--r--libjava/java/net/ServerSocket.java18
-rw-r--r--libjava/java/net/Socket.java60
-rw-r--r--libjava/java/net/SocketAddress.java3
-rw-r--r--libjava/java/net/SocketImpl.java7
-rw-r--r--libjava/java/net/SocketPermission.java112
-rw-r--r--libjava/java/net/URLClassLoader.java33
-rw-r--r--libjava/java/net/URLDecoder.java6
-rw-r--r--libjava/java/net/URLStreamHandler.java35
-rw-r--r--libjava/java/nio/Buffer.java32
-rw-r--r--libjava/java/nio/ByteBuffer.java545
-rw-r--r--libjava/java/nio/CharBuffer.java246
-rw-r--r--libjava/java/nio/DoubleBuffer.java78
-rw-r--r--libjava/java/nio/FloatBuffer.java80
-rw-r--r--libjava/java/nio/IntBuffer.java79
-rw-r--r--libjava/java/nio/LongBuffer.java79
-rw-r--r--libjava/java/nio/MappedByteBuffer.java23
-rw-r--r--libjava/java/nio/ShortBuffer.java79
-rw-r--r--libjava/java/nio/channels/Channels.java130
-rw-r--r--libjava/java/nio/channels/DatagramChannel.java22
-rw-r--r--libjava/java/nio/channels/FileChannel.java243
-rw-r--r--libjava/java/nio/channels/FileLock.java137
-rw-r--r--libjava/java/nio/channels/Pipe.java3
-rw-r--r--libjava/java/nio/channels/SelectableChannel.java4
-rw-r--r--libjava/java/nio/channels/SelectionKey.java8
-rw-r--r--libjava/java/nio/channels/ServerSocketChannel.java2
-rw-r--r--libjava/java/nio/channels/SocketChannel.java17
-rw-r--r--libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java2
-rw-r--r--libjava/java/nio/channels/spi/AbstractSelectableChannel.java8
-rw-r--r--libjava/java/nio/channels/spi/SelectorProvider.java20
-rw-r--r--libjava/java/nio/charset/Charset.java5
-rw-r--r--libjava/java/nio/charset/CharsetEncoder.java5
-rw-r--r--libjava/java/nio/charset/IllegalCharsetNameException.java13
-rw-r--r--libjava/java/nio/charset/UnsupportedCharsetException.java13
-rw-r--r--libjava/java/rmi/server/RMIClassLoader.java2
-rw-r--r--libjava/java/rmi/server/RMIClassLoaderSpi.java64
-rw-r--r--libjava/java/rmi/server/UnicastRemoteObject.java4
-rw-r--r--libjava/java/security/SecureRandom.java8
-rw-r--r--libjava/java/security/Security.java67
-rw-r--r--libjava/java/sql/Timestamp.java34
-rw-r--r--libjava/java/util/Properties.java94
-rw-r--r--libjava/java/util/TreeMap.java6
-rw-r--r--libjava/java/util/jar/JarFile.java24
-rw-r--r--libjava/java/util/natResourceBundle.cc20
-rw-r--r--libjava/java/util/natTimeZone.cc5
-rw-r--r--libjava/java/util/zip/InflaterInputStream.java4
-rw-r--r--libjava/java/util/zip/ZipEntry.java10
-rw-r--r--libjava/java/util/zip/ZipFile.java186
-rw-r--r--libjava/java/util/zip/ZipInputStream.java4
-rw-r--r--libjava/javax/naming/InitialContext.java22
-rw-r--r--libjava/javax/naming/spi/NamingManager.java4
-rw-r--r--libjava/javax/sql/ConnectionEvent.java13
-rw-r--r--libjava/jni.cc94
-rw-r--r--libjava/libgcj.spec.in2
-rw-r--r--libjava/libltdl/ChangeLog40
-rw-r--r--libjava/libtool-version2
-rw-r--r--libjava/mauve-libgcj13
-rw-r--r--libjava/org/xml/sax/AttributeList.java384
-rw-r--r--libjava/org/xml/sax/Attributes.java495
-rw-r--r--libjava/org/xml/sax/ContentHandler.java782
-rw-r--r--libjava/org/xml/sax/DTDHandler.java225
-rw-r--r--libjava/org/xml/sax/DocumentHandler.java462
-rw-r--r--libjava/org/xml/sax/EntityResolver.java229
-rw-r--r--libjava/org/xml/sax/ErrorHandler.java248
-rw-r--r--libjava/org/xml/sax/HandlerBase.java738
-rw-r--r--libjava/org/xml/sax/InputSource.java657
-rw-r--r--libjava/org/xml/sax/Locator.java262
-rw-r--r--libjava/org/xml/sax/Parser.java416
-rw-r--r--libjava/org/xml/sax/SAXException.java297
-rw-r--r--libjava/org/xml/sax/SAXNotRecognizedException.java99
-rw-r--r--libjava/org/xml/sax/SAXNotSupportedException.java99
-rw-r--r--libjava/org/xml/sax/SAXParseException.java534
-rw-r--r--libjava/org/xml/sax/XMLFilter.java132
-rw-r--r--libjava/org/xml/sax/XMLReader.java813
-rw-r--r--libjava/org/xml/sax/ext/DeclHandler.java274
-rw-r--r--libjava/org/xml/sax/ext/LexicalHandler.java373
-rw-r--r--libjava/org/xml/sax/ext/package.html49
-rw-r--r--libjava/org/xml/sax/helpers/AttributeListImpl.java622
-rw-r--r--libjava/org/xml/sax/helpers/AttributesImpl.java1226
-rw-r--r--libjava/org/xml/sax/helpers/DefaultHandler.java915
-rw-r--r--libjava/org/xml/sax/helpers/LocatorImpl.java426
-rw-r--r--libjava/org/xml/sax/helpers/NamespaceSupport.java1459
-rw-r--r--libjava/org/xml/sax/helpers/NewInstance.java80
-rw-r--r--libjava/org/xml/sax/helpers/ParserAdapter.java2034
-rw-r--r--libjava/org/xml/sax/helpers/ParserFactory.java258
-rw-r--r--libjava/org/xml/sax/helpers/XMLFilterImpl.java1483
-rw-r--r--libjava/org/xml/sax/helpers/XMLReaderAdapter.java1065
-rw-r--r--libjava/org/xml/sax/helpers/XMLReaderFactory.java339
-rw-r--r--libjava/org/xml/sax/helpers/package.html13
-rw-r--r--libjava/org/xml/sax/package.html164
-rw-r--r--libjava/posix-threads.cc5
-rw-r--r--libjava/posix.cc23
-rw-r--r--libjava/prims.cc75
-rw-r--r--libjava/resolve.cc95
-rw-r--r--libjava/testsuite/ChangeLog185
-rw-r--r--libjava/testsuite/Makefile.in5
-rw-r--r--libjava/testsuite/lib/libjava.exp22
-rw-r--r--libjava/testsuite/libjava.compile/consthrow.java6
-rw-r--r--libjava/testsuite/libjava.compile/consthrow.xfail2
-rw-r--r--libjava/testsuite/libjava.compile/pr10459.java10
-rw-r--r--libjava/testsuite/libjava.compile/pr10459_2.java10
-rw-r--r--libjava/testsuite/libjava.compile/pr8712.java7
-rw-r--r--libjava/testsuite/libjava.compile/pr8955.java13
-rw-r--r--libjava/testsuite/libjava.jacks/jacks.exp7
-rw-r--r--libjava/testsuite/libjava.jacks/jacks.xfail127
-rw-r--r--libjava/testsuite/libjava.jni/calls.c8
-rw-r--r--libjava/testsuite/libjava.jni/calls.java6
-rw-r--r--libjava/testsuite/libjava.jni/field.c2
-rw-r--r--libjava/testsuite/libjava.jni/final_method.c2
-rw-r--r--libjava/testsuite/libjava.jni/findclass.c2
-rw-r--r--libjava/testsuite/libjava.jni/invoke.c2
-rw-r--r--libjava/testsuite/libjava.jni/martin.c3
-rw-r--r--libjava/testsuite/libjava.jni/noclass.c2
-rw-r--r--libjava/testsuite/libjava.jni/overload.c4
-rw-r--r--libjava/testsuite/libjava.jni/register.c2
-rw-r--r--libjava/testsuite/libjava.jni/simple_int.c2
-rw-r--r--libjava/testsuite/libjava.jni/throwit.c2
-rw-r--r--libjava/testsuite/libjava.jni/virtual.c2
-rw-r--r--libjava/testsuite/libjava.lang/PR8866.java22
-rw-r--r--libjava/testsuite/libjava.lang/Throw_2.java2
-rw-r--r--libjava/testsuite/libjava.lang/Throw_2.out2
-rw-r--r--libjava/testsuite/libjava.lang/assign.java19
-rw-r--r--libjava/testsuite/libjava.lang/assign.out0
-rw-r--r--libjava/testsuite/libjava.lang/initfield.java20
-rw-r--r--libjava/testsuite/libjava.lang/initfield.out1
-rw-r--r--libjava/testsuite/libjava.lang/pr8823.xfail1
-rw-r--r--libjava/testsuite/libjava.lang/pr8945.java9
-rw-r--r--libjava/testsuite/libjava.lang/pr8945.out1
-rw-r--r--libjava/testsuite/libjava.lang/verify.java20
-rw-r--r--libjava/testsuite/libjava.lang/verify.out0
-rw-r--r--libjava/testsuite/libjava.mauve/mauve.exp47
-rw-r--r--libjava/testsuite/libjava.mauve/xfails86
-rw-r--r--libjava/verify.cc174
-rw-r--r--libjava/win32-threads.cc101
-rw-r--r--libjava/win32.cc61
-rw-r--r--libobjc/ChangeLog103
-rw-r--r--libobjc/Makefile.in13
-rw-r--r--libobjc/Protocol.m22
-rw-r--r--libobjc/aclocal.m45
-rwxr-xr-xlibobjc/configure251
-rw-r--r--libobjc/configure.in4
-rw-r--r--libobjc/objc/hash.h6
-rw-r--r--libstdc++-v3/ChangeLog2113
-rw-r--r--libstdc++-v3/Makefile.am53
-rw-r--r--libstdc++-v3/Makefile.in70
-rw-r--r--libstdc++-v3/acconfig.h9
-rw-r--r--libstdc++-v3/acinclude.m4254
-rw-r--r--libstdc++-v3/aclocal.m4248
-rw-r--r--libstdc++-v3/config.h.in15
-rw-r--r--libstdc++-v3/config/abi/alpha-freebsd5/baseline_symbols.txt3073
-rw-r--r--libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt (renamed from libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt)0
-rw-r--r--libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt3071
-rw-r--r--libstdc++-v3/config/abi/i386-freebsd4/baseline_symbols.txt (renamed from libstdc++-v3/config/abi/i386-unknown-freebsd4/baseline_symbols.txt)35
-rw-r--r--libstdc++-v3/config/abi/i386-freebsd5/baseline_symbols.txt3073
-rw-r--r--libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt (renamed from libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt)27
-rw-r--r--libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt (renamed from libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt)0
-rw-r--r--libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt3071
-rw-r--r--libstdc++-v3/config/abi/sparc-freebsd5/baseline_symbols.txt3073
-rw-r--r--libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt3205
-rw-r--r--libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt (renamed from libstdc++-v3/config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt)36
-rw-r--r--libstdc++-v3/config/cpu/generic/atomicity.h25
-rw-r--r--libstdc++-v3/config/cpu/hppa/atomicity.h26
-rw-r--r--libstdc++-v3/config/cpu/i386/atomicity.h75
-rw-r--r--libstdc++-v3/config/cpu/i486/atomicity.h14
-rw-r--r--libstdc++-v3/config/cpu/m68k/atomicity.h73
-rw-r--r--libstdc++-v3/config/cpu/mips/atomicity.h4
-rw-r--r--libstdc++-v3/config/cpu/sparc/atomicity.h6
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.cc196
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.h3
-rw-r--r--libstdc++-v3/config/io/c_io_libio_codecvt.c8
-rw-r--r--libstdc++-v3/config/linker-map.gnu250
-rw-r--r--libstdc++-v3/config/locale/generic/c_locale.h17
-rw-r--r--libstdc++-v3/config/locale/generic/codecvt_members.cc1
-rw-r--r--libstdc++-v3/config/locale/generic/ctype_members.cc32
-rw-r--r--libstdc++-v3/config/locale/generic/messages_members.h25
-rw-r--r--libstdc++-v3/config/locale/generic/time_members.cc2
-rw-r--r--libstdc++-v3/config/locale/generic/time_members.h61
-rw-r--r--libstdc++-v3/config/locale/gnu/c_locale.cc4
-rw-r--r--libstdc++-v3/config/locale/gnu/c_locale.h13
-rw-r--r--libstdc++-v3/config/locale/gnu/codecvt_members.cc8
-rw-r--r--libstdc++-v3/config/locale/gnu/collate_members.cc2
-rw-r--r--libstdc++-v3/config/locale/gnu/ctype_members.cc41
-rw-r--r--libstdc++-v3/config/locale/gnu/messages_members.cc2
-rw-r--r--libstdc++-v3/config/locale/gnu/messages_members.h52
-rw-r--r--libstdc++-v3/config/locale/gnu/monetary_members.cc193
-rw-r--r--libstdc++-v3/config/locale/gnu/numeric_members.cc2
-rw-r--r--libstdc++-v3/config/locale/gnu/time_members.cc2
-rw-r--r--libstdc++-v3/config/locale/gnu/time_members.h68
-rw-r--r--libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h26
-rw-r--r--libstdc++-v3/config/os/aix/atomicity.h4
-rw-r--r--libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h72
-rw-r--r--libstdc++-v3/config/os/bsd/freebsd/os_defines.h7
-rw-r--r--libstdc++-v3/config/os/generic/ctype_inline.h144
-rw-r--r--libstdc++-v3/config/os/hpux/ctype_inline.h30
-rw-r--r--libstdc++-v3/config/os/hpux/ctype_noninline.h2
-rw-r--r--libstdc++-v3/config/os/hpux/os_defines.h14
-rwxr-xr-xlibstdc++-v3/configure3755
-rw-r--r--libstdc++-v3/configure.in45
-rw-r--r--libstdc++-v3/configure.target85
-rw-r--r--libstdc++-v3/docs/doxygen/Intro.317
-rw-r--r--libstdc++-v3/docs/doxygen/TODO7
-rwxr-xr-xlibstdc++-v3/docs/doxygen/filter13
-rw-r--r--libstdc++-v3/docs/doxygen/filter.sed26
-rw-r--r--libstdc++-v3/docs/doxygen/mainpage.html15
-rw-r--r--libstdc++-v3/docs/doxygen/run_doxygen63
-rw-r--r--libstdc++-v3/docs/doxygen/tables.html4
-rw-r--r--libstdc++-v3/docs/doxygen/user.cfg.in191
-rw-r--r--libstdc++-v3/docs/html/17_intro/BUGS5
-rw-r--r--libstdc++-v3/docs/html/17_intro/CHECKLIST102
-rw-r--r--libstdc++-v3/docs/html/17_intro/contribute.html39
-rw-r--r--libstdc++-v3/docs/html/17_intro/howto.html8
-rw-r--r--libstdc++-v3/docs/html/17_intro/porting.html904
-rw-r--r--libstdc++-v3/docs/html/17_intro/porting.texi77
-rw-r--r--libstdc++-v3/docs/html/18_support/howto.html4
-rw-r--r--libstdc++-v3/docs/html/19_diagnostics/howto.html8
-rw-r--r--libstdc++-v3/docs/html/20_util/howto.html10
-rw-r--r--libstdc++-v3/docs/html/27_io/howto.html70
-rw-r--r--libstdc++-v3/docs/html/Makefile4
-rw-r--r--libstdc++-v3/docs/html/configopts.html75
-rw-r--r--libstdc++-v3/docs/html/debug.html220
-rw-r--r--libstdc++-v3/docs/html/documentation.html49
-rw-r--r--libstdc++-v3/docs/html/explanations.html16
-rw-r--r--libstdc++-v3/docs/html/ext/howto.html99
-rw-r--r--libstdc++-v3/docs/html/ext/sgiexts.html4
-rw-r--r--libstdc++-v3/docs/html/faq/index.html259
-rw-r--r--libstdc++-v3/docs/html/faq/index.txt500
-rw-r--r--libstdc++-v3/docs/html/install.html90
-rw-r--r--libstdc++-v3/docs/html/test.html599
-rw-r--r--libstdc++-v3/include/Makefile.am200
-rw-r--r--libstdc++-v3/include/Makefile.in222
-rw-r--r--libstdc++-v3/include/backward/iterator.h29
-rw-r--r--libstdc++-v3/include/bits/basic_ios.h33
-rw-r--r--libstdc++-v3/include/bits/basic_ios.tcc119
-rw-r--r--libstdc++-v3/include/bits/basic_string.h96
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc136
-rw-r--r--libstdc++-v3/include/bits/boost_concept_check.h26
-rw-r--r--libstdc++-v3/include/bits/c++config25
-rw-r--r--libstdc++-v3/include/bits/codecvt.h29
-rw-r--r--libstdc++-v3/include/bits/concept_check.h3
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc222
-rw-r--r--libstdc++-v3/include/bits/ios_base.h25
-rw-r--r--libstdc++-v3/include/bits/istream.tcc794
-rw-r--r--libstdc++-v3/include/bits/list.tcc68
-rw-r--r--libstdc++-v3/include/bits/locale_classes.h422
-rw-r--r--libstdc++-v3/include/bits/locale_facets.h321
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc1083
-rw-r--r--libstdc++-v3/include/bits/localefwd.h330
-rw-r--r--libstdc++-v3/include/bits/ostream.tcc524
-rw-r--r--libstdc++-v3/include/bits/sstream.tcc2
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h8
-rw-r--r--libstdc++-v3/include/bits/stl_alloc.h40
-rw-r--r--libstdc++-v3/include/bits/stl_iterator.h7
-rw-r--r--libstdc++-v3/include/bits/stl_list.h4
-rw-r--r--libstdc++-v3/include/bits/stl_multiset.h8
-rw-r--r--libstdc++-v3/include/bits/stl_set.h8
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h4
-rw-r--r--libstdc++-v3/include/bits/streambuf.tcc78
-rw-r--r--libstdc++-v3/include/bits/streambuf_iterator.h36
-rw-r--r--libstdc++-v3/include/bits/valarray_meta.h4
-rw-r--r--libstdc++-v3/include/c_std/std_cmath.h127
-rw-r--r--libstdc++-v3/include/c_std/std_cstdio.h15
-rw-r--r--libstdc++-v3/include/c_std/std_cstdlib.h26
-rw-r--r--libstdc++-v3/include/c_std/std_cwchar.h16
-rw-r--r--libstdc++-v3/include/ext/enc_filebuf.h19
-rw-r--r--libstdc++-v3/include/ext/hash_set16
-rw-r--r--libstdc++-v3/include/ext/stdio_filebuf.h13
-rw-r--r--libstdc++-v3/include/std/std_bitset.h51
-rw-r--r--libstdc++-v3/include/std/std_complex.h16
-rw-r--r--libstdc++-v3/include/std/std_fstream.h39
-rw-r--r--libstdc++-v3/include/std/std_iomanip.h5
-rw-r--r--libstdc++-v3/include/std/std_iosfwd.h7
-rw-r--r--libstdc++-v3/include/std/std_istream.h21
-rw-r--r--libstdc++-v3/include/std/std_limits.h16
-rw-r--r--libstdc++-v3/include/std/std_locale.h7
-rw-r--r--libstdc++-v3/include/std/std_ostream.h20
-rw-r--r--libstdc++-v3/include/std/std_sstream.h4
-rw-r--r--libstdc++-v3/include/std/std_streambuf.h28
-rw-r--r--libstdc++-v3/libio/ChangeLog44
-rw-r--r--libstdc++-v3/libio/Makefile.am2
-rw-r--r--libstdc++-v3/libio/Makefile.in66
-rw-r--r--libstdc++-v3/libio/_G_config.h25
-rw-r--r--libstdc++-v3/libio/iolibio.h25
-rw-r--r--libstdc++-v3/libmath/Makefile.in14
-rw-r--r--libstdc++-v3/libmath/stubs.c8
-rw-r--r--libstdc++-v3/libsupc++/Makefile.am12
-rw-r--r--libstdc++-v3/libsupc++/Makefile.in25
-rw-r--r--libstdc++-v3/libsupc++/cxxabi.h4
-rw-r--r--libstdc++-v3/libsupc++/eh_catch.cc45
-rw-r--r--libstdc++-v3/libsupc++/eh_personality.cc98
-rw-r--r--libstdc++-v3/libsupc++/eh_throw.cc13
-rw-r--r--libstdc++-v3/libsupc++/tinfo.cc7
-rw-r--r--libstdc++-v3/libsupc++/tinfo.h28
-rw-r--r--libstdc++-v3/po/Makefile.in14
-rw-r--r--libstdc++-v3/po/string_literals.cc9
-rw-r--r--libstdc++-v3/src/Makefile.am101
-rw-r--r--libstdc++-v3/src/Makefile.in118
-rw-r--r--libstdc++-v3/src/codecvt.cc40
-rw-r--r--libstdc++-v3/src/concept-inst.cc3
-rw-r--r--libstdc++-v3/src/fstream.cc29
-rw-r--r--libstdc++-v3/src/globals.cc26
-rw-r--r--libstdc++-v3/src/ios.cc27
-rw-r--r--libstdc++-v3/src/locale-inst.cc130
-rw-r--r--libstdc++-v3/src/locale.cc47
-rw-r--r--libstdc++-v3/src/localename.cc237
-rw-r--r--libstdc++-v3/src/misc-inst.cc18
-rw-r--r--libstdc++-v3/src/strstream.cc4
-rw-r--r--libstdc++-v3/src/wstring-inst.cc34
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/numeric_limits.cc21
-rw-r--r--libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc4
-rw-r--r--libstdc++-v3/testsuite/21_strings/insert.cc4
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc13
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put_members_char.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc32
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_put_members_char.cc4
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/bitset_members.cc18
-rw-r--r--libstdc++-v3/testsuite/23_containers/bitset_shift.cc16
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque_ctor.cc92
-rw-r--r--libstdc++-v3/testsuite/23_containers/list_modifiers.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/map_operators.cc6
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_capacity.cc57
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_ctor.cc280
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_resize.cc57
-rw-r--r--libstdc++-v3/testsuite/26_numerics/c99_classification_macros_c.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/c_math_dynamic.cc58
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/pow.C14
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex_value.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/valarray_name_lookup.cc4
-rw-r--r--libstdc++-v3/testsuite/26_numerics/valarray_operators.cc67
-rw-r--r--libstdc++-v3/testsuite/27_io/filebuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/filebuf_members.cc107
-rw-r--r--libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc308
-rw-r--r--libstdc++-v3/testsuite/27_io/fstream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/ios_base_storage.cc71
-rw-r--r--libstdc++-v3/testsuite/27_io/istream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_exception.cc68
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc611
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc134
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc71
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc70
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc83
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc169
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc93
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc72
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc154
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc73
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc94
-rw-r--r--libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc88
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream_exception.cc66
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream_fail.cc53
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc26
-rw-r--r--libstdc++-v3/testsuite/27_io/ostream_sentry.cc70
-rw-r--r--libstdc++-v3/testsuite/27_io/streambuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/streambuf_members.cc162
-rw-r--r--libstdc++-v3/testsuite/27_io/stringbuf.cc5
-rw-r--r--libstdc++-v3/testsuite/27_io/stringbuf_members.cc29
-rw-r--r--libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc25
-rw-r--r--libstdc++-v3/testsuite/27_io/stringstream.cc23
-rw-r--r--libstdc++-v3/testsuite/Makefile.am78
-rw-r--r--libstdc++-v3/testsuite/Makefile.in107
-rw-r--r--libstdc++-v3/testsuite/abi_check.cc149
-rw-r--r--libstdc++-v3/testsuite/ext/stdio_filebuf.cc36
-rw-r--r--libstdc++-v3/testsuite/ext/stdio_filebuf_2.cc61
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp66
-rw-r--r--libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp14
-rw-r--r--libstdc++-v3/testsuite/testsuite_allocator.cc15
-rw-r--r--libstdc++-v3/testsuite/testsuite_allocator.h152
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.cc114
-rw-r--r--libstdc++-v3/testsuite/testsuite_hooks.h345
-rw-r--r--libstdc++-v3/testsuite/thread/pthread1.cc6
-rw-r--r--libstdc++-v3/testsuite/thread/pthread2.cc6
-rw-r--r--libstdc++-v3/testsuite/thread/pthread3.cc6
-rw-r--r--libstdc++-v3/testsuite/thread/pthread4.cc27
-rw-r--r--libstdc++-v3/testsuite/thread/pthread5.cc6
-rw-r--r--libstdc++-v3/testsuite/thread/pthread6.cc6
-rwxr-xr-xlibstdc++-v3/testsuite_flags.in4
-rw-r--r--libtool.m418
-rw-r--r--ltcf-cxx.sh29
-rw-r--r--ltcf-gcj.sh6
-rwxr-xr-xltconfig16
-rw-r--r--maintainer-scripts/ChangeLog69
-rwxr-xr-xmaintainer-scripts/gcc_release51
-rw-r--r--zlib/ChangeLog42
-rw-r--r--zlib/ChangeLog.gcj27
-rw-r--r--zlib/Makefile.am9
-rw-r--r--zlib/Makefile.in8
-rw-r--r--zlib/README3
-rwxr-xr-xzlib/configure310
-rw-r--r--zlib/configure.in19
1739 files changed, 295667 insertions, 115570 deletions
diff --git a/ChangeLog b/ChangeLog
index a67a388084c..5e518077693 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,258 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-10-06 Josef Zlomek <josef.zlomek@email.cz>
+
+ * MAINTAINERS: Update my e-mail address.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-07-30 Matthias Klose <doko@debian.org>
+
+ * configure: Add missing 'action' argument to trap.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR bootstrap/15120
+ * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
+ * */configure: Rebuilt.
+
+2004-03-05 David Edelsohn <edelsohn@gnu.org>
+
+ * ltconfig: Disable building static libraries if building shared
+ libraries on AIX 5L.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-01-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * MAINTAINERS: Remove entries without email address.
+
+2004-01-10 Richard Sandiford <rsandifo@redhat.com>
+
+ * MAINTAINERS: Add myself as a MIPS maintainer.
+
+2004-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * MAINTAINERS: Move myself from 'Write After Approval' to
+ 'CPU Port Maintainers' section as SPARC maintainer.
+
+2004-01-02 Roger Sayle <roger@eyesopen.com>
+
+ * configure.in (ia64*-*-hpux*): Disable building java libraries.
+
+2003-10-21 Matt Thomas <matt@3am-software.com>
+
+ * MAINTAINERS: Add myself as a vax port maintainer.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * libtool.m4 (LD): Correct powerpc64 host match.
+
+2003-08-30 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * MAINTAINERS: Update my e-mail address.
+
+2003-08-20 Bernardo Innocenti <bernie@develer.com>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2003-08-15 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
+2003-08-08 Kean Johnston <jkj@sco.com>
+
+ * configure.in (sco3.2v5*): Enable building of libgcj
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-03 Richard Stallman <rms@gnu.org>
+ Eben Moglen <moglen@columbia.edu>
+
+ * README.SCO: New file.
+
+2003-07-13 Kazu Hirata <kazu@cs.umass.edu>
+
+ * MAINTAINERS: Alphabetize.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.tpl: Fix typos in the last change.
+ * Makefile.in: Regenerated.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config-ml.in: Replace PWD with PWD_COMMAND.
+ * Makefile.tpl: Likewise.
+ * Makefile.in: Regenerated.
+
+2003-06-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in: Don't pass --with-stabs for mips*-sgi-irix6*o32.
+
+2003-06-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * MAINTAINERS (Write After Approval): Remove Andrew Haley.
+
+2003-05-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config-ml.in: Propagate INSTALL variables.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * MAINTAINERS: Remove duplicate entries in Write After Approval.
+
+2003-05-03 Chris Demetriou <cgd@broadcom.com>
+
+ Merge from mainline:
+ 2003-05-02 Chris Demetriou <cgd@broadcom.com>
+ * Makefile.tpl: Require "makeinfo" from texinfo 4.2 or later.
+ * Makefile.in: Regenerate.
+
+2003-04-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * Makefile.tpl (MAKEINFOFLAGS): Use --no-split instead of
+ --split-size.
+ * Makefile.in: Regenerate.
+
+2003-04-25 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * Makefile.tpl (MAKEINFOFLAGS): Default to --split-size=5000000.
+ * Makefile.in: Regenerate.
+
+2003-04-08 Joel Sherrill <joel@oarcorp.com>
+
+ * MAINTAINERS: Add my email address.
+
+2003-04-03 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ Backport from mainline.
+
+ 2003-03-10 Ben Elliston <bje@wasabisystems.com>
+
+ * MAINTAINERS: Update my mail address.
+
+2003-03-09 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * configure.in (gxx_include_dir): Fix typo.
+
+2003-02-21 Zack Weinberg <zack@codesourcery.com>
+
+ * MAINTAINERS: Copy from HEAD.
+
+2003-02-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
+ * ltconfig: Handle it.
+ * ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
+ auto-detecting it.
+
+2003-02-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever
+ it is used as argument to $CC.
+ * ltcf-gcj.sh: Likewise.
+
+2003-02-18 Jason Merrill <jason@redhat.com>
+
+ * Makefile.tpl (check-c++): Allow parallelism.
+
+2003-02-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * MAINTAINERS: Remove John Carr (who never actually had access to
+ gcc.gnu.org).
+
+2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * MAINTAINERS: Add myself to write-after-approval list.
+
+2003-02-06 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * MAINTAINERS: Remove duplicate entry for Bernd Schmidt from Write
+ After Approval.
+
+2003-01-30 Roger Sayle <roger@eyesopen.com>
+
+ * config.guess: Updated to 2003-01-30's version.
+ * config.sub: Updated to 2003-01-28's version.
+
+2003-01-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * config.if: If gcc_version is already set, just use it. Don't set
+ gcc_version_trigger if it's already set, otherwise set it to
+ gcc/version.c, but only if the file exists. If it is not set and
+ gcc/version.c does not exist, try to extract the version number from
+ $CC.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.tpl (BASE_FLAGS_TO_PASS): Also pass DESTDIR.
+ (install-info, dir.info): Prepend $(DESTDIR) to $(infodir).
+ * Makefile.in: Regenerate.
+
+2003-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * MAINTAINERS: Move myself from GNATS-only-accounts to
+ write-after-approval.
+
+2002-12-31 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.def (target_modules) [libffi]: Allow installation.
+
+2002-12-13 Jason Merrill <jason@redhat.com>
+
+ * Makefile.tpl (check-gcc-c++): Renamed from check-c++. Don't run
+ library tests.
+ (check-c++): Just depend on it and check-target-libstdc++-v3.
+ * Makefile.in: Regenerate.
+
+2002-12-12 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.tpl (configure-target-rda): Depend on $(ALL_GCC_C).
+ * Makefile.in: Rebuilt.
+
+2002-12-25 Svein E. Seldal <Svein.Seldal@solidas.com>
+
+ * config.sub: Import from master repository
+ * config.guess: Ditto
+
2002-12-13 Jason Merrill <jason@redhat.com>
* Makefile.in (check-gcc-c++): Renamed from check-c++. Don't run
diff --git a/MAINTAINERS b/MAINTAINERS
index 8d7db8812c8..fe5da1e704f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -20,18 +20,18 @@ Maintainers
Blanket Write Privs.
-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
Michael Meissner meissner@redhat.com
+Jason Merrill jason@redhat.com
David S. Miller davem@redhat.com
Mark Mitchell mark@codesourcery.com
Bernd Schmidt bernds@redhat.com
-Jim Wilson wilson@redhat.com
+Zack Weinberg zack@codesourcery.com
+Jim Wilson wilson@tuliptree.org
CPU Port Maintainers (CPU alphabetical order)
@@ -50,8 +50,8 @@ 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
-ia64 port Jim Wilson wilson@redhat.com
+i960 port Jim Wilson wilson@tuliptree.org
+ia64 port Jim Wilson wilson@tuliptree.org
ip2k port Denis Chertykov denisc@overta.ru
m32r port Nick Clifton nickc@redhat.com
m32r port Michael Meissner meissner@redhat.com
@@ -60,6 +60,7 @@ m68k port (?) Jeff Law law@redhat.com
m68k-motorola-sysv port Philippe De Muyter phdm@macqel.be
mcore port Nick Clifton nickc@redhat.com
mips port Eric Christopher echristo@redhat.com
+mips port Richard Sandiford rsandifo@redhat.com
mmix port Hans-Peter Nilsson hp@bitrange.com
mn10200 port Jeff Law law@redhat.com
mn10300 port Jeff Law law@redhat.com
@@ -74,9 +75,11 @@ sh port Alexandre Oliva aoliva@redhat.com
sparc port Richard Henderson rth@redhat.com
sparc port David S. Miller davem@redhat.com
sparc port Jakub Jelinek jakub@redhat.com
+sparc port Eric Botcazou ebotcazou@libertysurf.fr
v850 port Nick Clifton nickc@redhat.com
v850 port Michael Meissner meissner@redhat.com
vax port Dave Anglin dave.anglin@nrc.ca
+vax port Matt Thomas matt@3am-software.com
x86-64 port Jan Hubicka jh@suse.cz
xstormy16 port Geoffrey Keating geoffk@geoffk.org
xtensa port Bob Wilson bob.wilson@acm.org
@@ -111,14 +114,14 @@ mercury Fergus Henderson fjh@cs.mu.oz.au
objective-c Stan Shebs shebs@apple.com
objective-c Ovidiu Predescu ovidiu@cup.hp.com
alias analysis John Carr jfc@mit.edu
-loop unrolling Jim Wilson wilson@redhat.com
+loop unrolling Jim Wilson wilson@tuliptree.org
loop discovery Michael Hayes m.hayes@elec.canterbury.ac.nz
-scheduler (+ haifa) Jim Wilson wilson@redhat.com
+scheduler (+ haifa) Jim Wilson wilson@tuliptree.org
scheduler (+ haifa) Michael Meissner meissner@redhat.com
scheduler (+ haifa) Jeff Law law@redhat.com
reorg Jeff Law law@redhat.com
caller-save.c Jeff Law law@redhat.com
-debugging code Jim Wilson wilson@redhat.com
+debugging code Jim Wilson wilson@tuliptree.org
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
@@ -132,7 +135,7 @@ fixincludes Bruce Korb bkorb@gnu.org
gcse.c Jeff Law law@redhat.com
global opt framework Jeff Law law@redhat.com
jump.c David S. Miller davem@redhat.com
-web pages Gerald Pfeifer pfeifer@dbai.tuwien.ac.at
+web pages Gerald Pfeifer gerald@pfeifer.com
web pages Janis Johnson janis187@us.ibm.com
config.sub/config.guess Ben Elliston config-patches@gnu.org
basic block reordering Jason Eckhardt jle@rice.edu
@@ -144,10 +147,10 @@ DJGPP DJ Delorie dj@delorie.com
libiberty DJ Delorie dj@redhat.com
build machinery (*.in) DJ Delorie dj@redhat.com
build machinery (*.in) Alexandre Oliva aoliva@redhat.com
-docs co-maintainer Gerald Pfeifer pfeifer@dbai.tuwien.ac.at
+docs co-maintainer Gerald Pfeifer gerald@pfeifer.com
docs co-maintainer Joseph Myers jsm28@cam.ac.uk
Pico-Java port Steve Chamberlain sac@transmeta.com
-RTEMS Ports Joel Sherrill
+RTEMS Ports Joel Sherrill joel@oarcorp.com
VxWorks ports Zack Weinberg zack@codesourcery.com
VxWorks ports Nathan Sidwell nathan@codesourcery.com
predict.def Jan Hubicka jh@suse.cz
@@ -165,33 +168,31 @@ 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
+Laurynas Biveinis laurynas.biveinis@mif.vu.lt
Eric Blake ericb@gcc.gnu.org
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
+Christian Cornelssen ccorn@cs.tu-berlin.de
Chris Demetriou cgd@broadcom.com
-*Paul Eggert eggert@twinsun.com
Steve Ellcey sje@cup.hp.com
-Ben Elliston bje@redhat.com
+Ben Elliston bje@wasabisystems.com
Marc Espie espie@cvs.openbsd.org
-Doug Evans devans@transmeta.com
+Doug Evans dje@transmeta.com
Kaveh Ghazi ghazi@caip.rutgers.edu
Matthew Gingell gingell@gnat.com
Anthony Green green@redhat.com
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
+Bernardo Innocenti bernie@develer.com
Andreas Jaeger aj@suse.de
-Jakub Jelinek jakub@redhat.com
+Fariborz Jahanian fjahanian@apple.com
Dale Johannesen dalej@apple.com
Klaus Kaempf kkaempf@progis.de
Brendan Kehoe brendan@zen.org
@@ -203,19 +204,17 @@ Matt Kraai kraai@alumni.cmu.edu
Ziemowit Laski zlaski@apple.com
Marc Lehmann pcg@goof.com
Alan Lehotsky apl@alum.mit.edu
-Warren Levy warrenl@cruzio.com
Kriang Lerdsuwanakij lerdsuwa@users.sourceforge.net
+Warren Levy warrenl@cruzio.com
Don Lindsay dlindsay@redhat.com
Dave Love d.love@dl.ac.uk
Martin v. Löwis loewis@informatik.hu-berlin.de
-*HJ Lu hjl@lucon.org
+HJ Lu hjl@lucon.org
Andrew Macleod amacleod@redhat.com
Vladimir Makarov vmakarov@redhat.com
-Michael Matz matz@suse.de
Greg McGary gkm@gnu.org
Adam Megacz adam@xwt.org
Alan Modra amodra@bigpond.net.au
-Toon Moene toon@moene.indiv.nluug.nl
Catherine Moore clm@redhat.com
Adam Nemet anemet@lnxw.com
Nathanael Nerode neroden@gcc.gnu.org
@@ -227,22 +226,21 @@ 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
+Andrew Pinski pinskia@physics.uc.edu
Sebastian Pop s.pop@laposte.net
Clinton Popetz cpopetz@cpopetz.com
Ken Raeburn raeburn@redhat.com
Rolf Rasmussen rolfwr@gcc.gnu.org
+Volker Reichelt reichelt@igpm.rwth-aachen.de
Tom Rix trix@redhat.com
Craig Rodrigues rodrigc@gcc.gnu.org
Gavin Romig-Koch gavin@redhat.com
Ira Ruben ira@apple.com
Douglas Rupp rupp@gnat.com
Alex Samuel samuel@codesourcery.com
-Richard Sandiford rsandifo@redhat.com
Roger Sayle roger@eyesopen.com
-Bernd Schmidt bernds@redhat.com
Andreas Schwab schwab@suse.de
Svein Seldal svein.seldal@solidas.com
-Stan Shebs shebs@apple.com
Nathan Sidwell nathan@codesourcery.com
Franz Sirl franz.sirl-kernel@lauterbach.com
Danny Smith dannysmith@users.sourceforge.net
@@ -253,21 +251,17 @@ Mike Stump mrs@apple.com
Jeff Sturm jsturm@gcc.gnu.org
Ian Taylor ian@zembu.com
Michael Tiemann tiemann@redhat.com
-Philipp Thomas pthomas@suse.de
Kresten Krab Thorup krab@gcc.gnu.org
+Andreas Tobler andreast@gcc.gnu.org
Jonathan Wakely redi@gcc.gnu.org
Krister Walfridsson cato@df.lth.se
John Wehle john@feith.com
Florian Weimer fw@deneb.enyo.de
Mark Wielaard mark@gcc.gnu.org
+Josef Zlomek josef.zlomek@email.cz
GNATS only accounts
Wolfgang Bangerth bangerth bangerth@ticam.utexas.edu
James Dennett jdennett jdennett@acm.org
Christian Ehrhardt cae ehrhardt@mathematik.uni-ulm.de
-Volker Reichelt reichelt reichelt@igpm.rwth-aachen.de
-
-Peter Bienstman(?)
-Benjamin Chelf(?)
-Mark Galassi(?)
diff --git a/Makefile.def b/Makefile.def
index ae4b2e6fa0b..72df449baef 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -72,7 +72,7 @@ target_modules = { module= libgloss; no_check=true; };
target_modules = { module= libiberty; };
target_modules = { module= gperf; };
target_modules = { module= examples; no_check=true; no_install=true; };
-target_modules = { module= libffi; no_install=true; };
+target_modules = { module= libffi; };
target_modules = { module= libjava; };
target_modules = { module= zlib; };
target_modules = { module= boehm-gc; };
diff --git a/Makefile.in b/Makefile.in
index 0c5606e5715..806407cb074 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -69,7 +69,9 @@ SHELL = @config_shell@
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
-PWD = $${PWDCMD-pwd}
+# Don't use PWD since it is a common shell environment variable and we
+# don't want to corrupt it.
+PWD_COMMAND = $${PWDCMD-pwd}
# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
# cygwin host.
@@ -151,18 +153,19 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
then echo $$r/m4/m4 ; \
else echo ${DEFAULT_M4} ; fi`
-# For an installed makeinfo, we require it to be from texinfo 4 or
+# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the "missing" dummy.
MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
then echo $$r/texinfo/makeinfo/makeinfo ; \
else if (makeinfo --version \
- | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
# This just becomes part of the MAKEINFO definition passed down to
# sub-makes. It lets flags be given on the command line while still
# using the makeinfo from the object tree.
-MAKEINFOFLAGS =
+# (Default to avoid splitting info files.)
+MAKEINFOFLAGS = --no-split
EXPECT = `if [ -f $$r/expect/expect ] ; \
then echo $$r/expect/expect ; \
@@ -367,6 +370,7 @@ BASE_FLAGS_TO_PASS = \
"CXXFLAGS=$(CXXFLAGS)" \
"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
+ "DESTDIR=$(DESTDIR)" \
"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
@@ -761,7 +765,7 @@ ALL_TARGET_MODULES = \
all-target-zlib \
all-target-boehm-gc \
all-target-qthreads \
- all-target-rda
+ all-target-rda
# This is a list of the configure targets for all of the modules which
# are compiled using the target tools.
@@ -781,7 +785,7 @@ CONFIGURE_TARGET_MODULES = \
configure-target-zlib \
configure-target-boehm-gc \
configure-target-qthreads \
- configure-target-rda
+ configure-target-rda
# This is a list of the check targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
@@ -798,7 +802,7 @@ CHECK_TARGET_MODULES = \
check-target-zlib \
check-target-boehm-gc \
check-target-qthreads \
- check-target-rda
+ check-target-rda
# This is a list of the install targets for all of the modules which are
# compiled using $(TARGET_FLAGS_TO_PASS).
@@ -812,11 +816,12 @@ INSTALL_TARGET_MODULES = \
install-target-libgloss \
install-target-libiberty \
install-target-gperf \
+ install-target-libffi \
install-target-libjava \
install-target-zlib \
install-target-boehm-gc \
install-target-qthreads \
- install-target-rda
+ install-target-rda
# This is a list of the targets for which we can do a clean-{target}.
CLEAN_MODULES = \
@@ -879,7 +884,7 @@ CLEAN_MODULES = \
clean-uudecode \
clean-wdiff \
clean-zip \
- clean-zlib
+ clean-zlib
# All of the target modules that can be cleaned
CLEAN_TARGET_MODULES = \
@@ -897,7 +902,7 @@ CLEAN_TARGET_MODULES = \
clean-target-zlib \
clean-target-boehm-gc \
clean-target-qthreads \
- clean-target-rda
+ clean-target-rda
# All of the x11 modules that can be cleaned
CLEAN_X11_MODULES = \
@@ -937,8 +942,8 @@ DO_X = \
.PHONY: $(DO_X)
$(DO_X):
@target=`echo $@ | sed -e 's/^do-//'`; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for i in $(SUBDIRS) -dummy-; do \
if [ -f ./$$i/Makefile ]; then \
@@ -964,8 +969,8 @@ $(DO_X):
else true; fi; \
done
@target=`echo $@ | sed -e 's/^do-//'`; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for i in $(TARGET_CONFIGDIRS) -dummy-; do \
if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
@@ -995,9 +1000,9 @@ dvi: do-dvi
do-info: all-texinfo
install-info: do-install-info dir.info
- s=`cd $(srcdir); ${PWD}`; export s; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
if [ -f dir.info ] ; then \
- $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
+ $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \
else true ; fi
local-clean:
@@ -1030,8 +1035,8 @@ realclean: maintainer-clean
$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc:
@dir=`echo $@ | sed -e 's/clean-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \
else \
@@ -1043,8 +1048,8 @@ $(CLEAN_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/clean-target-//'`; \
rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \
else \
@@ -1117,7 +1122,7 @@ vault-install:
.PHONY: install.all
install.all: install-no-fixedincludes
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}` ; export r ; \
+ r=`${PWD_COMMAND}` ; export r ; \
$(SET_LIB_PATH) \
(cd ./gcc; \
$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
@@ -1147,8 +1152,8 @@ gcc-no-fixedincludes:
cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
touch gcc/stmp-fixinc gcc/include/fixed; \
rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
(cd ./gcc; \
$(MAKE) $(GCC_FLAGS_TO_PASS) install); \
@@ -1162,8 +1167,8 @@ gcc-no-fixedincludes:
$(ALL_BUILD_MODULES):
dir=`echo $@ | sed -e 's/all-build-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
(cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
else \
true; \
@@ -1181,8 +1186,8 @@ $(CONFIGURE_BUILD_MODULES):
elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
if [ -d $(srcdir)/$${dir} ]; then \
[ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
@@ -1262,8 +1267,8 @@ $(CONFIGURE_BUILD_MODULES):
$(ALL_MODULES):
@dir=`echo $@ | sed -e 's/all-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
else \
@@ -1279,8 +1284,8 @@ $(NATIVE_CHECK_MODULES):
@if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
else \
@@ -1291,8 +1296,8 @@ $(NATIVE_CHECK_MODULES):
$(CROSS_CHECK_MODULES):
@dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
else \
@@ -1305,8 +1310,8 @@ $(CROSS_CHECK_MODULES):
$(INSTALL_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
else \
@@ -1319,7 +1324,7 @@ $(INSTALL_MODULES): installdirs
$(CONFIGURE_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/configure-target-//'`; \
if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \
- r=`${PWD}`; export r; \
+ r=`${PWD_COMMAND}`; export r; \
$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \
if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \
if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \
@@ -1343,8 +1348,8 @@ $(CONFIGURE_TARGET_MODULES):
elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
if [ -d $(srcdir)/$${dir} ]; then \
[ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -1425,8 +1430,8 @@ $(CONFIGURE_TARGET_MODULES):
$(ALL_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/all-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
@@ -1440,8 +1445,8 @@ $(ALL_TARGET_MODULES):
$(CHECK_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/check-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
@@ -1456,8 +1461,8 @@ $(CHECK_TARGET_MODULES):
$(INSTALL_TARGET_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
@@ -1471,8 +1476,8 @@ $(INSTALL_TARGET_MODULES): installdirs
$(ALL_X11_MODULES):
@dir=`echo $@ | sed -e 's/all-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
@@ -1486,8 +1491,8 @@ $(ALL_X11_MODULES):
$(CHECK_X11_MODULES):
@dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
@@ -1501,8 +1506,8 @@ $(CHECK_X11_MODULES):
$(INSTALL_X11_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
@@ -1514,8 +1519,8 @@ $(INSTALL_X11_MODULES): installdirs
.PHONY: all-gcc
all-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
else \
@@ -1534,13 +1539,13 @@ all-gcc:
#
.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
case "$@" in \
*bootstrap4-lean ) \
msg="Comparing stage3 and stage4 of the compiler"; \
@@ -1555,21 +1560,21 @@ bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean b
$(SET_LIB_PATH) \
echo "$$msg"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building the C and C++ compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
@@ -1578,8 +1583,8 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
.PHONY: check-gcc
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
else \
@@ -1589,8 +1594,8 @@ check-gcc:
.PHONY: check-gcc-c++
check-gcc-c++:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
else \
@@ -1598,13 +1603,14 @@ check-gcc-c++:
fi
.PHONY: check-c++
-check-c++: check-target-libstdc++-v3 check-gcc-c++
+check-c++:
+ $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok
.PHONY: install-gcc
install-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
else \
@@ -1614,8 +1620,8 @@ install-gcc:
.PHONY: install-gcc-cross
install-gcc-cross:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
else \
@@ -1628,8 +1634,8 @@ install-gcc-cross:
install-dosrel: installdirs info
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
else \
@@ -1784,7 +1790,7 @@ installdirs: mkinstalldirs
dir.info: do-install-info
if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
- $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
+ $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
mv -f dir.info.new dir.info ; \
else true ; \
fi
diff --git a/Makefile.tpl b/Makefile.tpl
index 7428f412451..1cbfe45f6c5 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -72,7 +72,9 @@ SHELL = @config_shell@
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
-PWD = $${PWDCMD-pwd}
+# Don't use PWD since it is a common shell environment variable and we
+# don't want to corrupt it.
+PWD_COMMAND = $${PWDCMD-pwd}
# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
# cygwin host.
@@ -154,18 +156,19 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
then echo $$r/m4/m4 ; \
else echo ${DEFAULT_M4} ; fi`
-# For an installed makeinfo, we require it to be from texinfo 4 or
+# For an installed makeinfo, we require it to be from texinfo 4.2 or
# higher, else we use the "missing" dummy.
MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
then echo $$r/texinfo/makeinfo/makeinfo ; \
else if (makeinfo --version \
- | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
+ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
# This just becomes part of the MAKEINFO definition passed down to
# sub-makes. It lets flags be given on the command line while still
# using the makeinfo from the object tree.
-MAKEINFOFLAGS =
+# (Default to avoid splitting info files.)
+MAKEINFOFLAGS = --no-split
EXPECT = `if [ -f $$r/expect/expect ] ; \
then echo $$r/expect/expect ; \
@@ -370,6 +373,7 @@ BASE_FLAGS_TO_PASS = \
"CXXFLAGS=$(CXXFLAGS)" \
"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
+ "DESTDIR=$(DESTDIR)" \
"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
@@ -678,8 +682,8 @@ DO_X = \
.PHONY: $(DO_X)
$(DO_X):
@target=`echo $@ | sed -e 's/^do-//'`; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for i in $(SUBDIRS) -dummy-; do \
if [ -f ./$$i/Makefile ]; then \
@@ -705,8 +709,8 @@ $(DO_X):
else true; fi; \
done
@target=`echo $@ | sed -e 's/^do-//'`; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
for i in $(TARGET_CONFIGDIRS) -dummy-; do \
if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
@@ -736,9 +740,9 @@ dvi: do-dvi
do-info: all-texinfo
install-info: do-install-info dir.info
- s=`cd $(srcdir); ${PWD}`; export s; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
if [ -f dir.info ] ; then \
- $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
+ $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \
else true ; fi
local-clean:
@@ -771,8 +775,8 @@ realclean: maintainer-clean
$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc:
@dir=`echo $@ | sed -e 's/clean-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \
else \
@@ -784,8 +788,8 @@ $(CLEAN_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/clean-target-//'`; \
rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \
else \
@@ -858,7 +862,7 @@ vault-install:
.PHONY: install.all
install.all: install-no-fixedincludes
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}` ; export r ; \
+ r=`${PWD_COMMAND}` ; export r ; \
$(SET_LIB_PATH) \
(cd ./gcc; \
$(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
@@ -888,8 +892,8 @@ gcc-no-fixedincludes:
cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
touch gcc/stmp-fixinc gcc/include/fixed; \
rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
(cd ./gcc; \
$(MAKE) $(GCC_FLAGS_TO_PASS) install); \
@@ -903,8 +907,8 @@ gcc-no-fixedincludes:
$(ALL_BUILD_MODULES):
dir=`echo $@ | sed -e 's/all-build-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
(cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
else \
true; \
@@ -922,8 +926,8 @@ $(CONFIGURE_BUILD_MODULES):
elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
if [ -d $(srcdir)/$${dir} ]; then \
[ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
@@ -1003,8 +1007,8 @@ $(CONFIGURE_BUILD_MODULES):
$(ALL_MODULES):
@dir=`echo $@ | sed -e 's/all-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
else \
@@ -1020,8 +1024,8 @@ $(NATIVE_CHECK_MODULES):
@if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
else \
@@ -1032,8 +1036,8 @@ $(NATIVE_CHECK_MODULES):
$(CROSS_CHECK_MODULES):
@dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
else \
@@ -1046,8 +1050,8 @@ $(CROSS_CHECK_MODULES):
$(INSTALL_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
else \
@@ -1060,7 +1064,7 @@ $(INSTALL_MODULES): installdirs
$(CONFIGURE_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/configure-target-//'`; \
if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \
- r=`${PWD}`; export r; \
+ r=`${PWD_COMMAND}`; export r; \
$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \
if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \
if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \
@@ -1084,8 +1088,8 @@ $(CONFIGURE_TARGET_MODULES):
elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
if [ -d $(srcdir)/$${dir} ]; then \
[ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
AR="$(AR_FOR_TARGET)"; export AR; \
AS="$(AS_FOR_TARGET)"; export AS; \
@@ -1166,8 +1170,8 @@ $(CONFIGURE_TARGET_MODULES):
$(ALL_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/all-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
@@ -1181,8 +1185,8 @@ $(ALL_TARGET_MODULES):
$(CHECK_TARGET_MODULES):
@dir=`echo $@ | sed -e 's/check-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
@@ -1197,8 +1201,8 @@ $(CHECK_TARGET_MODULES):
$(INSTALL_TARGET_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-target-//'`; \
if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $(TARGET_SUBDIR)/$${dir}; \
$(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
@@ -1212,8 +1216,8 @@ $(INSTALL_TARGET_MODULES): installdirs
$(ALL_X11_MODULES):
@dir=`echo $@ | sed -e 's/all-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
@@ -1227,8 +1231,8 @@ $(ALL_X11_MODULES):
$(CHECK_X11_MODULES):
@dir=`echo $@ | sed -e 's/check-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
@@ -1242,8 +1246,8 @@ $(CHECK_X11_MODULES):
$(INSTALL_X11_MODULES): installdirs
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; \
$(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
@@ -1255,8 +1259,8 @@ $(INSTALL_X11_MODULES): installdirs
.PHONY: all-gcc
all-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
else \
@@ -1275,13 +1279,13 @@ all-gcc:
#
.PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Bootstrapping the compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
case "$@" in \
*bootstrap4-lean ) \
msg="Comparing stage3 and stage4 of the compiler"; \
@@ -1296,21 +1300,21 @@ bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean b
$(SET_LIB_PATH) \
echo "$$msg"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
.PHONY: cross
cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
echo "Building the C and C++ compiler"; \
cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
- @r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}` ; export s; \
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \
$(SET_LIB_PATH) \
echo "Building runtime libraries"; \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
@@ -1319,31 +1323,34 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
.PHONY: check-gcc
check-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
else \
true; \
fi
-.PHONY: check-c++
-check-c++:
+.PHONY: check-gcc-c++
+check-gcc-c++:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
- $(MAKE) check-target-libstdc++-v3; \
else \
true; \
- fi
+ fi
+
+.PHONY: check-c++
+check-c++:
+ $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok
.PHONY: install-gcc
install-gcc:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
else \
@@ -1353,8 +1360,8 @@ install-gcc:
.PHONY: install-gcc-cross
install-gcc-cross:
@if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
else \
@@ -1367,8 +1374,8 @@ install-gcc-cross:
install-dosrel: installdirs info
@dir=`echo $@ | sed -e 's/install-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
- r=`${PWD}`; export r; \
- s=`cd $(srcdir); ${PWD}`; export s; \
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(SET_LIB_PATH) \
(cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
else \
@@ -1466,6 +1473,7 @@ all-textutils:
all-time:
all-tix: all-tcl all-tk
all-wdiff:
+configure-target-rda: $(ALL_GCC_C)
configure-target-winsup: $(ALL_GCC_C)
all-target-winsup: all-target-libiberty all-target-libtermcap
all-uudecode: all-libiberty
@@ -1507,7 +1515,7 @@ installdirs: mkinstalldirs
dir.info: do-install-info
if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
- $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
+ $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
mv -f dir.info.new dir.info ; \
else true ; \
fi
diff --git a/README.SCO b/README.SCO
new file mode 100644
index 00000000000..f86b82b689c
--- /dev/null
+++ b/README.SCO
@@ -0,0 +1,27 @@
+As all users of GCC will know, SCO has recently made claims concerning
+alleged copyright infringement by recent versions of the operating
+system kernel called Linux. SCO has made irresponsible public
+statements about this supposed copyright infringement without
+releasing any evidence of the infringement, and has demanded that
+users of Linux, the kernel most often used with the GNU system, pay
+for a license. This license is incompatible with the GPL, and in the
+opinion of the Free Software Foundation such a demand unquestionably
+violates the GNU General Public License under which the kernel is
+distributed.
+
+We have been urged to drop support for SCO Unix from this release of
+GCC, as a protest against this irresponsible aggression against free
+software and GNU/Linux. However, the direct effect of this action
+would fall on users of GCC rather than on SCO. For the moment, we
+have decided not to take that action. The Free Software Foundation's
+overriding goal is to protect the freedom of the free software
+community, including developers and users, but we also want to serve
+users. Protecting the community from an attack sometimes requires
+steps that will inconvenience some in the community. Such a step is
+not yet necessary, in our view, but we cannot indefinitely continue to
+ignore the aggression against our community taken by a party that has
+long profited from the commercial distribution of our programs. We
+urge users of SCO Unix to make clear to SCO their disapproval of the
+company's aggression against the free software community. We will
+have a further announcement concerning continuing support of SCO Unix
+by GCC before our next release.
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 21d304df594..3ff4a72f6c0 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,136 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-04-17 David S. Miller <davem@davemloft.net>
+
+ * include/private/gcconfig.h (sparc-linux): Use LINUX_STACKBOTTOM.
+ * os_dep.c (GC_linux_stack_base): Check for bug present in some
+ Sparc glibc variants where __libc_stack_end is erroneously set
+ to "1". Fallback to procfs code in that case.
+
+2005-04-11 Richard Henderson <rth@redhat.com>
+
+ * include/private/gcconfig.h (alpha-linux): Use LINUX_STACKBOTTOM.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * include/private/gcconfig.h (PREFETCH): Use __builtin_prefetch
+ for gcc >= 3.0.
+ (PREFETCH_FOR_WRITE): Likewise.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-12-21 Roger Sayle <roger@eyesopen.com>
+
+ * configure.host: Backport/synchronize from mainline.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in: Remove wildcard from Solaris 8-9/Intel and Solaris
+ 2.3/SPARC, there are no micro versions.
+ Treat Solaris 10 and up alike.
+ * configure: Regenerate.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-28 Mohan Embar <gnustuff@thisiscool.com>
+
+ * configure.in: define GC_DLL under mingw if --enable-shared
+ * configure: rebuilt
+ * win32_threads.c: add #ifdef GC_DLL around DllMain
+
+2003-04-09 Tom Tromey <tromey@redhat.com>
+
+ * include/private/gcconfig.h (LINUX_STACKBOTTOM): Define for
+ POWERPC.
+ (STACK_GRAN, HEURISTIC1): Don't define for POWERPC.
+
+2003-03-04 Hans Boehm <Hans.Boehm@hp.com>
+ * include/private/gcconfig.h (GC_data_start): declare when needed.
+ * include/private/gc_priv.h: Include gcconfig.h after ptr_t
+ declaration.
+
+2003-03-03 Hans Boehm <Hans.Boehm@hp.com>
+ * mark_rts.c (GC_cond_register_dynamic_libraries): add.
+ (GC_push_roots): explicitly mark free list headers, register
+ dynamic libraries only if !REGISTER_LIBRARIES_EARLY.
+ * alloc.c (GC_stopped_mark): Conditionally call
+ GC_cond_register_dynamic_libraries().
+ (GC_collect_a_little_inner, GC_try_to_collect_inner): Check GC_dont_gc.
+ * dyn_load.c (GC_register_main_static_data): define.
+ (GC_register_dyn_libraries (Linux /proc, Linux ELF versions)):
+ no longer skip main data. Register main data for static executable.
+ * misc.c (GC_REGISTER_MAIN_STATIC_DATA): define.
+ (GC_init_inner): Make main data registration conditional.
+ * include/private/gc_priv.h (GC_register_main_static_data): declare.
+ * include/private/gcconfig.h (REGISTER_LIBRARIES_EARLY): define
+ for LINUX.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-11 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * include/private/gcconfig.h: undefine MPROTECT_VDB for MACOSX
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
+ Remove USE_LIBDIR conditional.
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
+ * Makefile.in, configure: Rebuilt.
+
+2002-12-31 Tom Tromey <tromey@redhat.com>
+
+ For PR libgcj/8933:
+ * include/Makefile.in: Rebuilt.
+ * include/Makefile.am (noinst_HEADERS): Renamed from
+ include_HEADERS.
+
2002-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* ltconfig (osf[345]): Append $major to soname_spec.
diff --git a/boehm-gc/Makefile.am b/boehm-gc/Makefile.am
index 960cc606fbb..4c22a0f3dac 100644
--- a/boehm-gc/Makefile.am
+++ b/boehm-gc/Makefile.am
@@ -16,15 +16,6 @@ MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
diff --git a/boehm-gc/Makefile.in b/boehm-gc/Makefile.in
index ab8a7d1c915..edecc834988 100644
--- a/boehm-gc/Makefile.in
+++ b/boehm-gc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4a from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -46,10 +46,9 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
@@ -94,6 +93,8 @@ addobjs = @addobjs@
gc_basedir = @gc_basedir@
mkinstalldirs = @mkinstalldirs@
target_all = @target_all@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
AUTOMAKE_OPTIONS = cygnus
@@ -106,16 +107,21 @@ MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias)
noinst_LTLIBRARIES = libgcjgc.la libgcjgc_convenience.la
-GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c backgraph.c win32_threads.c
+GC_SOURCES = allchblk.c alloc.c blacklst.c checksums.c dbg_mlc.c \
+dyn_load.c finalize.c gc_dlopen.c gcj_mlc.c headers.c irix_threads.c \
+linux_threads.c malloc.c mallocx.c mark.c mark_rts.c misc.c new_hblk.c \
+obj_map.c os_dep.c pcr_interface.c ptr_chck.c real_malloc.c reclaim.c \
+solaris_pthreads.c solaris_threads.c specific.c stubborn.c typd_mlc.c \
+backgraph.c win32_threads.c
-EXTRA_GC_SOURCES = alpha_mach_dep.s mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
+EXTRA_GC_SOURCES = alpha_mach_dep.s \
+mips_sgi_mach_dep.S mips_ultrix_mach_dep.s powerpc_macosx_mach_dep.s \
+rs6000_mach_dep.s sparc_mach_dep.S sparc_netbsd_mach_dep.s \
+sparc_sunos4_mach_dep.s ia64_save_regs_in_stack.s
libgcjgc_la_SOURCES = $(GC_SOURCES)
@@ -147,14 +153,52 @@ TESTS = gctest
all_objs = @addobjs@ $(libgcjgc_la_OBJECTS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(MY_CFLAGS) $(GC_CFLAGS)
LINK = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(MY_CFLAGS) $(LDFLAGS) -o $@
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "EXPECT=$(EXPECT)" "RUNTEST=$(RUNTEST)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "prefix=$(prefix)" "tooldir=$(tooldir)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "NM=$(NM)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "DESTDIR=$(DESTDIR)"
+AM_MAKEFLAGS = \
+ "AR_FLAGS=$(AR_FLAGS)" \
+ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+ "CFLAGS=$(CFLAGS)" \
+ "CXXFLAGS=$(CXXFLAGS)" \
+ "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
+ "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_DATA=$(INSTALL_DATA)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
+ "LDFLAGS=$(LDFLAGS)" \
+ "LIBCFLAGS=$(LIBCFLAGS)" \
+ "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+ "MAKE=$(MAKE)" \
+ "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
+ "PICFLAG=$(PICFLAG)" \
+ "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
+ "SHELL=$(SHELL)" \
+ "EXPECT=$(EXPECT)" \
+ "RUNTEST=$(RUNTEST)" \
+ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+ "exec_prefix=$(exec_prefix)" \
+ "infodir=$(infodir)" \
+ "libdir=$(libdir)" \
+ "prefix=$(prefix)" \
+ "tooldir=$(tooldir)" \
+ "AR=$(AR)" \
+ "AS=$(AS)" \
+ "CC=$(CC)" \
+ "CXX=$(CXX)" \
+ "LD=$(LD)" \
+ "LIBCFLAGS=$(LIBCFLAGS)" \
+ "NM=$(NM)" \
+ "PICFLAG=$(PICFLAG)" \
+ "RANLIB=$(RANLIB)" \
+ "DESTDIR=$(DESTDIR)"
CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
@@ -485,7 +529,7 @@ uninstall: uninstall-recursive
all-am: Makefile $(LTLIBRARIES)
all-redirect: all-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
installdirs-am:
diff --git a/boehm-gc/alloc.c b/boehm-gc/alloc.c
index 8a413b275f8..f2e5af05720 100644
--- a/boehm-gc/alloc.c
+++ b/boehm-gc/alloc.c
@@ -306,6 +306,7 @@ void GC_maybe_gc()
GC_bool GC_try_to_collect_inner(stop_func)
GC_stop_func stop_func;
{
+ if (GC_dont_gc) return FALSE;
if (GC_incremental && GC_collection_in_progress()) {
# ifdef CONDPRINT
if (GC_print_stats) {
@@ -386,6 +387,7 @@ int n;
{
register int i;
+ if (GC_dont_gc) return;
if (GC_incremental && GC_collection_in_progress()) {
for (i = GC_deficit; i < GC_RATE*n; i++) {
if (GC_mark_some((ptr_t)0)) {
@@ -446,6 +448,9 @@ GC_stop_func stop_func;
CLOCK_TYPE start_time, current_time;
# endif
+# if defined(REGISTER_LIBRARIES_EARLY)
+ GC_cond_register_dynamic_libraries();
+# endif
STOP_WORLD();
# ifdef PRINTTIMES
GET_TIME(start_time);
diff --git a/boehm-gc/configure b/boehm-gc/configure
index f6b2277188c..c0e262a83b7 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -61,7 +61,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -176,7 +175,6 @@ Configuration:
--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
@@ -347,11 +345,6 @@ EOF
-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=*)
@@ -517,16 +510,12 @@ fi
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
+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
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -604,7 +593,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# 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:608: checking for a BSD compatible install" >&5
+echo "configure:597: 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
@@ -657,7 +646,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:661: checking whether build environment is sane" >&5
+echo "configure:650: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -714,7 +703,7 @@ test "$program_suffix" != NONE &&
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:718: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:707: 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
@@ -747,12 +736,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:751: checking for Cygwin environment" >&5
+echo "configure:740: 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 <<EOF
-#line 756 "configure"
+#line 745 "configure"
#include "confdefs.h"
int main() {
@@ -763,7 +752,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -780,19 +769,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:784: checking for mingw32 environment" >&5
+echo "configure:773: 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 <<EOF
-#line 789 "configure"
+#line 778 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -903,7 +892,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:907: checking host system type" >&5
+echo "configure:896: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -924,7 +913,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:928: checking target system type" >&5
+echo "configure:917: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -942,7 +931,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:946: checking build system type" >&5
+echo "configure:935: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -982,7 +971,7 @@ fi
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:986: checking for working aclocal" >&5
+echo "configure:975: 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.
@@ -995,7 +984,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:999: checking for working autoconf" >&5
+echo "configure:988: 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.
@@ -1008,7 +997,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:1012: checking for working automake" >&5
+echo "configure:1001: 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.
@@ -1021,7 +1010,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1025: checking for working autoheader" >&5
+echo "configure:1014: 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.
@@ -1034,7 +1023,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1038: checking for working makeinfo" >&5
+echo "configure:1027: 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.
@@ -1060,7 +1049,7 @@ fi
# 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:1064: checking for $ac_word" >&5
+echo "configure:1053: 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
@@ -1090,7 +1079,7 @@ if test -z "$CC"; then
# 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:1094: checking for $ac_word" >&5
+echo "configure:1083: 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
@@ -1139,7 +1128,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1143: checking whether we are using GNU C" >&5
+echo "configure:1132: 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
@@ -1148,7 +1137,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1141: \"$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
@@ -1163,7 +1152,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1167: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1156: 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
@@ -1200,7 +1189,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1204: checking for $ac_word" >&5
+echo "configure:1193: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1233,7 +1222,7 @@ test -n "$CXX" || CXX="gcc"
test -z "$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:1237: checking whether we are using GNU C++" >&5
+echo "configure:1226: 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
@@ -1242,7 +1231,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1235: \"$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
@@ -1257,7 +1246,7 @@ if test $ac_cv_prog_gxx = yes; then
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1261: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1250: 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
@@ -1290,7 +1279,7 @@ fi
# NEWLIB_CONFIGURE, which doesn't work because that means that it will
# be run before AC_CANONICAL_HOST.
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1294: checking build system type" >&5
+echo "configure:1283: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -1311,7 +1300,7 @@ echo "$ac_t""$build" 1>&6
# 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:1315: checking for $ac_word" >&5
+echo "configure:1304: 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
@@ -1343,7 +1332,7 @@ fi
# 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:1347: checking for $ac_word" >&5
+echo "configure:1336: 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
@@ -1375,7 +1364,7 @@ fi
# 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:1379: checking for $ac_word" >&5
+echo "configure:1368: 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
@@ -1407,7 +1396,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1411: checking for $ac_word" >&5
+echo "configure:1400: 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
@@ -1452,7 +1441,7 @@ fi
# 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:1456: checking for a BSD compatible install" >&5
+echo "configure:1445: 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
@@ -1506,7 +1495,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1510: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:1499: 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"
@@ -1544,7 +1533,7 @@ if false; then
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1548: checking for executable suffix" >&5
+echo "configure:1537: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1554,10 +1543,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1676,7 +1665,7 @@ ac_prog=ld
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:1680: checking for ld used by GCC" >&5
+echo "configure:1669: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1706,10 +1695,10 @@ echo "configure:1680: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1710: checking for GNU ld" >&5
+echo "configure:1699: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1713: checking for non-GNU ld" >&5
+echo "configure:1702: 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
@@ -1744,7 +1733,7 @@ else
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:1748: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1737: 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
@@ -1761,7 +1750,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1765: checking for $LD option to reload object files" >&5
+echo "configure:1754: 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
@@ -1773,7 +1762,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1777: checking for BSD-compatible nm" >&5
+echo "configure:1766: 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
@@ -1811,7 +1800,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1815: checking whether ln -s works" >&5
+echo "configure:1804: 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
@@ -1832,7 +1821,7 @@ else
fi
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1836: checking how to recognise dependant libraries" >&5
+echo "configure:1825: 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
@@ -1942,7 +1931,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -2005,13 +1994,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:2009: checking for object suffix" >&5
+echo "configure:1998: 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:2015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -2035,7 +2024,7 @@ case $deplibs_check_method in
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:2039: checking for ${ac_tool_prefix}file" >&5
+echo "configure:2028: 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
@@ -2097,7 +2086,7 @@ fi
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:2101: checking for file" >&5
+echo "configure:2090: 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
@@ -2168,7 +2157,7 @@ esac
# 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:2172: checking for $ac_word" >&5
+echo "configure:2161: 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
@@ -2200,7 +2189,7 @@ if test -n "$ac_tool_prefix"; then
# 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:2204: checking for $ac_word" >&5
+echo "configure:2193: 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
@@ -2235,7 +2224,7 @@ fi
# 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:2239: checking for $ac_word" >&5
+echo "configure:2228: 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
@@ -2267,7 +2256,7 @@ if test -n "$ac_tool_prefix"; then
# 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:2271: checking for $ac_word" >&5
+echo "configure:2260: 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
@@ -2334,8 +2323,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2338 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2327 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2347,6 +2349,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2354,7 +2357,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2367,12 +2370,54 @@ ia64-*-hpux*)
rm -rf conftest*
;;
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2376: checking whether the C compiler needs -belf" >&5
+echo "configure:2421: checking whether the C compiler needs -belf" >&5
if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2385,14 +2430,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2389 "configure"
+#line 2434 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2422,7 +2467,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
esac
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2426: checking how to run the C++ preprocessor" >&5
+echo "configure:2471: checking how to run the C++ preprocessor" >&5
if test -z "$CXXCPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2435,12 +2480,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 2439 "configure"
+#line 2484 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2489: \"$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
:
@@ -2587,7 +2632,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:2591: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:2636: 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"
@@ -2620,7 +2665,7 @@ if false; then
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:2624: checking for executable suffix" >&5
+echo "configure:2669: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2630,10 +2675,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:2634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:2679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -2653,7 +2698,7 @@ ac_exeext=$EXEEXT
fi
echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
-echo "configure:2657: checking for thread model used by GCC" >&5
+echo "configure:2702: checking for thread model used by GCC" >&5
THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
if test -z "$THREADS"; then
THREADS=no
@@ -2773,6 +2818,12 @@ EOF
#define NO_GETENV 1
EOF
+ if test $enable_shared = yes; then
+ cat >> confdefs.h <<\EOF
+#define GC_DLL 1
+EOF
+
+ fi
;;
decosf1 | irix | mach | os2 | solaris | dce | vxworks)
{ echo "configure: error: thread package $THREADS not yet supported" 1>&2; exit 1; }
@@ -2784,7 +2835,7 @@ esac
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:2788: checking for dlopen in -ldl" >&5
+echo "configure:2839: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2792,7 +2843,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2796 "configure"
+#line 2847 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2803,7 +2854,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:2807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2858: \"$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
@@ -2891,7 +2942,7 @@ fi
alpha*-*-*)
machdep="alpha_mach_dep.lo"
;;
- i?86-*-solaris2.[89]*)
+ i?86-*-solaris2.[89] | i?86-*-solaris2.1?)
cat >> confdefs.h <<\EOF
#define SOLARIS25_PROC_VDB_BUG_FIXED 1
EOF
@@ -2920,7 +2971,7 @@ EOF
EOF
;;
- sparc-sun-solaris2.3*)
+ sparc-sun-solaris2.3)
machdep="sparc_mach_dep.lo"
cat >> confdefs.h <<\EOF
#define SUNOS53_SHARED_LIB 1
@@ -3038,15 +3089,17 @@ EOF
fi
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
fi
+toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
+
+
if test "${multilib}" = "yes"; then
multilib_arg="--enable-multilib"
@@ -3249,8 +3302,8 @@ s%@INCLUDES@%$INCLUDES%g
s%@CXXINCLUDES@%$CXXINCLUDES%g
s%@addobjs@%$addobjs%g
s%@MY_CFLAGS@%$MY_CFLAGS%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
+s%@toolexecdir@%$toolexecdir%g
+s%@toolexeclibdir@%$toolexeclibdir%g
CEOF
EOF
@@ -3361,6 +3414,7 @@ ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
gc_basedir=${gc_basedir}
CC="${CC}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
DEFS="$DEFS"
EOF
diff --git a/boehm-gc/configure.host b/boehm-gc/configure.host
index da2b5b31a0e..a98a0a7cb30 100644
--- a/boehm-gc/configure.host
+++ b/boehm-gc/configure.host
@@ -14,20 +14,28 @@
# host The configuration host
# host_cpu The configuration host CPU
# target_optspace --enable-target-optspace ("yes", "no", "")
+# GCC should be "yes" if using gcc
# It sets the following shell variables:
# gc_cflags Special CFLAGS to use when building
+gc_cflags=""
+
# We should set -fexceptions if we are using gcc and might be used
# inside something like gcj. This is the zeroth approximation:
-case "$host" in
- *-*-linux* )
- gc_cflags=-fexceptions
- ;;
- *-*-hpux* )
- gc_cflags=+ESdbgasm
- ;;
-esac
+if test :"$GCC": = :yes: ; then
+ gc_cflags="${gc_cflags} -fexceptions"
+else
+ case "$host" in
+ hppa*-*-hpux* )
+ if test :$GCC: != :"yes": ; then
+ gc_cflags="${gc_flags} +ESdbgasm"
+ fi
+ # :TODO: actaully we should check using Autoconf if
+ # the compiler supports this option.
+ ;;
+ esac
+fi
case "${target_optspace}:${host}" in
yes:*)
@@ -46,7 +54,7 @@ esac
case "${host}" in
mips-tx39-*|mipstx39-unknown-*)
- boehm_gc_cflags="${boehm_gc_cflags} -G 0"
+ gc_cflags="${gc_cflags} -G 0"
;;
*)
;;
diff --git a/boehm-gc/configure.in b/boehm-gc/configure.in
index d34b723de07..caef479ff15 100644
--- a/boehm-gc/configure.in
+++ b/boehm-gc/configure.in
@@ -1,4 +1,4 @@
-# Copyright (c) 1999, 2000, 2001, 2002 by Red Hat, Inc. All rights reserved.
+# Copyright (c) 1999, 2000, 2001, 2002, 2003 by Red Hat, Inc. All rights reserved.
#
# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
# OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
@@ -116,6 +116,9 @@ case "$THREADS" in
win32)
AC_DEFINE(GC_WIN32_THREADS)
AC_DEFINE(NO_GETENV)
+ if test $enable_shared = yes; then
+ AC_DEFINE(GC_DLL)
+ fi
;;
decosf1 | irix | mach | os2 | solaris | dce | vxworks)
AC_MSG_ERROR(thread package $THREADS not yet supported)
@@ -171,7 +174,7 @@ case "$host" in
alpha*-*-*)
machdep="alpha_mach_dep.lo"
;;
- i?86-*-solaris2.[[89]]*)
+ i?86-*-solaris2.[[89]] | i?86-*-solaris2.1?)
AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED)
;;
mipstx39-*-elf*)
@@ -188,7 +191,7 @@ case "$host" in
machdep="mips_sgi_mach_dep.lo"
AC_DEFINE(NO_EXECUTE_PERMISSION)
;;
- sparc-sun-solaris2.3*)
+ sparc-sun-solaris2.3)
machdep="sparc_mach_dep.lo"
AC_DEFINE(SUNOS53_SHARED_LIB)
;;
@@ -267,7 +270,17 @@ AC_ARG_ENABLE(full-debug,
esac ]
fi)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
+fi
+toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
+AC_SUBST(toolexecdir)
+AC_SUBST(toolexeclibdir)
if test "${multilib}" = "yes"; then
multilib_arg="--enable-multilib"
@@ -291,5 +304,6 @@ ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
gc_basedir=${gc_basedir}
CC="${CC}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
DEFS="$DEFS"
)
diff --git a/boehm-gc/dyn_load.c b/boehm-gc/dyn_load.c
index d3ef572be68..71ad5fb1d78 100644
--- a/boehm-gc/dyn_load.c
+++ b/boehm-gc/dyn_load.c
@@ -355,10 +355,6 @@ void GC_register_dynamic_libraries()
/* Stack mapping; discard */
continue;
}
- if (start <= datastart && end > datastart && maj_dev != 0) {
- /* Main data segment; discard */
- continue;
- }
# ifdef THREADS
if (GC_segment_is_thread_stack(start, end)) continue;
# endif
@@ -384,6 +380,13 @@ void GC_register_dynamic_libraries()
}
}
+/* We now take care of the main data segment ourselves: */
+GC_bool GC_register_main_static_data()
+{
+ return FALSE;
+}
+
+# define HAVE_REGISTER_MAIN_STATIC_DATA
//
// parse_map_entry parses an entry from /proc/self/maps so we can
// locate all writable data segments that belong to shared libraries.
@@ -469,13 +472,6 @@ static int GC_register_dynlib_callback(info, size, ptr)
+ sizeof (info->dlpi_phnum))
return -1;
- /* Skip the first object - it is the main program. */
- if (*(int *)ptr == 0)
- {
- *(int *)ptr = 1;
- return 0;
- }
-
p = info->dlpi_phdr;
for( i = 0; i < (int)(info->dlpi_phnum); ((i++),(p++)) ) {
switch( p->p_type ) {
@@ -491,6 +487,7 @@ static int GC_register_dynlib_callback(info, size, ptr)
}
}
+ * (int *)ptr = 1; /* Signal that we were called */
return 0;
}
@@ -500,16 +497,31 @@ static int GC_register_dynlib_callback(info, size, ptr)
GC_bool GC_register_dynamic_libraries_dl_iterate_phdr()
{
- int tmp = 0;
-
if (dl_iterate_phdr) {
- dl_iterate_phdr(GC_register_dynlib_callback, &tmp);
+ int did_something = 0;
+ dl_iterate_phdr(GC_register_dynlib_callback, &did_something);
+ if (!did_something) {
+ /* dl_iterate_phdr may forget the static data segment in */
+ /* statically linked executables. */
+ GC_add_roots_inner(DATASTART, (char *)(DATAEND), TRUE);
+# if defined(DATASTART2)
+ GC_add_roots_inner(DATASTART2, (char *)(DATAEND2), TRUE);
+# endif
+ }
return TRUE;
} else {
return FALSE;
}
}
+/* Do we need to separately register the main static data segment? */
+GC_bool GC_register_main_static_data()
+{
+ return (dl_iterate_phdr == 0);
+}
+
+#define HAVE_REGISTER_MAIN_STATIC_DATA
+
# else /* !LINUX || version(glibc) < 2.2.4 */
/* Dynamic loading code for Linux running ELF. Somewhat tested on
@@ -775,10 +787,23 @@ void GC_register_dynamic_libraries()
}
# endif
-# ifndef MSWINCE
+# ifdef MSWINCE
+ /* Do we need to separately register the main static data segment? */
+ GC_bool GC_register_main_static_data()
+ {
+ return FALSE;
+ }
+# else /* win32 */
extern GC_bool GC_no_win32_dlls;
-# endif
+
+ GC_bool GC_register_main_static_data()
+ {
+ return GC_no_win32_dlls;
+ }
+# endif /* win32 */
+# define HAVE_REGISTER_MAIN_STATIC_DATA
+
void GC_register_dynamic_libraries()
{
MEMORY_BASIC_INFORMATION buf;
@@ -1079,4 +1104,15 @@ void GC_register_dynamic_libraries(){}
int GC_no_dynamic_loading;
#endif /* !PCR */
+
#endif /* !DYNAMIC_LOADING */
+
+#ifndef HAVE_REGISTER_MAIN_STATIC_DATA
+
+/* Do we need to separately register the main static data segment? */
+GC_bool GC_register_main_static_data()
+{
+ return TRUE;
+}
+#endif /* HAVE_REGISTER_MAIN_STATIC_DATA */
+
diff --git a/boehm-gc/include/Makefile.am b/boehm-gc/include/Makefile.am
index 7a7654567ca..381ae76b8fe 100644
--- a/boehm-gc/include/Makefile.am
+++ b/boehm-gc/include/Makefile.am
@@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = foreign
-include_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
+noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
gc_pthread_redirects.h gc_cpp.h
diff --git a/boehm-gc/include/Makefile.in b/boehm-gc/include/Makefile.in
index 611f5651839..65bd34e2e33 100644
--- a/boehm-gc/include/Makefile.in
+++ b/boehm-gc/include/Makefile.in
@@ -96,11 +96,11 @@ target_all = @target_all@
AUTOMAKE_OPTIONS = foreign
-include_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
+noinst_HEADERS = gc.h gc_backptr.h gc_local_alloc.h \
gc_pthread_redirects.h gc_cpp.h
CONFIG_CLEAN_FILES =
-HEADERS = $(include_HEADERS)
+HEADERS = $(noinst_HEADERS)
DIST_COMMON = Makefile.am Makefile.in
@@ -119,21 +119,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
@@ -191,20 +176,19 @@ install-info: install-info-am
install-exec-am:
install-exec: install-exec-am
-install-data-am: install-includeHEADERS
+install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
-uninstall-am: uninstall-includeHEADERS
+uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(HEADERS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(includedir)
mostlyclean-generic:
@@ -236,14 +220,13 @@ maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
maintainer-clean: maintainer-clean-am
-.PHONY: uninstall-includeHEADERS install-includeHEADERS tags \
-mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir 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
+.PHONY: tags mostlyclean-tags distclean-tags clean-tags \
+maintainer-clean-tags distdir 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 --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h
index 5465c78b6e4..b09c4840945 100644
--- a/boehm-gc/include/private/gc_priv.h
+++ b/boehm-gc/include/private/gc_priv.h
@@ -44,10 +44,6 @@
# include "../gc_mark.h"
# endif
-# ifndef GCCONFIG_H
-# include "gcconfig.h"
-# endif
-
typedef GC_word word;
typedef GC_signed_word signed_word;
@@ -60,6 +56,10 @@ typedef char * ptr_t; /* A generic pointer to which we can add */
/* Preferably identical to caddr_t, if it */
/* exists. */
+# ifndef GCCONFIG_H
+# include "gcconfig.h"
+# endif
+
# ifndef HEADERS_H
# include "gc_hdrs.h"
# endif
@@ -1462,6 +1462,11 @@ GC_bool GC_is_tmp_root GC_PROTO((ptr_t p));
# endif
void GC_register_dynamic_libraries GC_PROTO((void));
/* Add dynamic library data sections to the root set. */
+
+GC_bool GC_register_main_static_data GC_PROTO((void));
+ /* We need to register the main data segment. Returns */
+ /* TRUE unless this is done implicitly as part of */
+ /* dynamic library registration. */
/* Machine dependent startup routines */
ptr_t GC_get_stack_base GC_PROTO((void)); /* Cold end of stack */
diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h
index 33d80d2c8ba..19825caf63d 100644
--- a/boehm-gc/include/private/gcconfig.h
+++ b/boehm-gc/include/private/gcconfig.h
@@ -669,10 +669,8 @@
# define ALIGNMENT 4 /* Guess. Can someone verify? */
/* This was 2, but that didn't sound right. */
# define OS_TYPE "LINUX"
-# define HEURISTIC1
# define DYNAMIC_LOADING
-# undef STACK_GRAN
-# define STACK_GRAN 0x10000000
+# define LINUX_STACKBOTTOM
/* Stack usually starts at 0x80000000 */
# define LINUX_DATA_START
extern int _end[];
@@ -685,7 +683,7 @@
# define DATASTART ((ptr_t) get_etext())
# define STACKBOTTOM ((ptr_t) 0xc0000000)
# define DATAEND /* not needed */
-# define MPROTECT_VDB
+# undef MPROTECT_VDB
# include <unistd.h>
# define GETPAGESIZE() getpagesize()
# endif
@@ -823,12 +821,11 @@
# define SVR4
# ifdef __arch64__
/* libc_stack_end is not set reliably for sparc64 */
-# define STACKBOTTOM ((ptr_t) 0x80000000000)
# define DATASTART (ptr_t)GC_SysVGetDataStart(0x100000, _etext)
# else
-# define LINUX_STACKBOTTOM
# define DATASTART (ptr_t)GC_SysVGetDataStart(0x10000, _etext)
# endif
+# define LINUX_STACKBOTTOM
# endif
# ifdef OPENBSD
# define OS_TYPE "OPENBSD"
@@ -1389,7 +1386,7 @@
# ifdef LINUX
# define OS_TYPE "LINUX"
# define CPP_WORDSZ 64
-# define STACKBOTTOM ((ptr_t) 0x120000000)
+# define LINUX_STACKBOTTOM
# ifdef __ELF__
# define SEARCH_FOR_DATA_START
# define DATASTART GC_data_start
@@ -1669,10 +1666,10 @@
extern int etext[];
# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff))
# endif
-# define PREFETCH(x) \
- __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x)))
-# define PREFETCH_FOR_WRITE(x) \
- __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x)))
+# if defined(__GNUC__) && __GNUC__ >= 3
+# define PREFETCH(x) __builtin_prefetch ((x), 0, 0)
+# define PREFETCH_FOR_WRITE(x) __builtin_prefetch ((x), 1)
+# endif
# endif
# endif
@@ -1801,6 +1798,19 @@
# define CACHE_LINE_SIZE 32 /* Wild guess */
# endif
+# ifdef LINUX
+# define REGISTER_LIBRARIES_EARLY
+ /* We sometimes use dl_iterate_phdr, which may acquire an internal */
+ /* lock. This isn't safe after the world has stopped. So we must */
+ /* call GC_register_dynamic_libraries before stopping the world. */
+ /* For performance reasons, this may be beneficial on other */
+ /* platforms as well, though it should be avoided in win32. */
+# endif /* LINUX */
+
+# if defined(SEARCH_FOR_DATA_START) && defined(GC_PRIVATE_H)
+ extern ptr_t GC_data_start;
+# endif
+
# ifndef CLEAR_DOUBLE
# define CLEAR_DOUBLE(x) \
((word*)x)[0] = 0; \
diff --git a/boehm-gc/mark_rts.c b/boehm-gc/mark_rts.c
index 628cba289ac..f663dcd55c3 100644
--- a/boehm-gc/mark_rts.c
+++ b/boehm-gc/mark_rts.c
@@ -506,6 +506,17 @@ void GC_push_gc_structures GC_PROTO((void))
void GC_mark_thread_local_free_lists();
#endif
+void GC_cond_register_dynamic_libraries()
+{
+# if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(MSWINCE) \
+ || defined(PCR)) && !defined(SRC_M3)
+ GC_remove_tmp_roots();
+ if (!GC_no_dls) GC_register_dynamic_libraries();
+# else
+ GC_no_dls = TRUE;
+# endif
+}
+
/*
* Call the mark routines (GC_tl_push for a single pointer, GC_push_conditional
* on groups of pointers) on every top level accessible pointer.
@@ -519,19 +530,20 @@ void GC_push_roots(all, cold_gc_frame)
GC_bool all;
ptr_t cold_gc_frame;
{
- register int i;
+ int i;
+ int kind;
/*
* Next push static data. This must happen early on, since it's
* not robust against mark stack overflow.
*/
- /* Reregister dynamic libraries, in case one got added. */
-# if (defined(DYNAMIC_LOADING) || defined(MSWIN32) || defined(MSWINCE) \
- || defined(PCR)) && !defined(SRC_M3)
- GC_remove_tmp_roots();
- if (!GC_no_dls) GC_register_dynamic_libraries();
-# else
- GC_no_dls = TRUE;
+ /* Reregister dynamic libraries, in case one got added. */
+ /* There is some argument for doing this as late as possible, */
+ /* especially on win32, where it can change asynchronously. */
+ /* In those cases, we do it here. But on other platforms, it's */
+ /* not safe with the world stopped, so we do it earlier. */
+# if !defined(REGISTER_LIBRARIES_EARLY)
+ GC_cond_register_dynamic_libraries();
# endif
/* Mark everything in static data areas */
@@ -541,6 +553,18 @@ ptr_t cold_gc_frame;
GC_static_roots[i].r_end, all);
}
+ /* Mark all free list header blocks, if those were allocated from */
+ /* the garbage collected heap. This makes sure they don't */
+ /* disappear if we are not marking from static data. It also */
+ /* saves us the trouble of scanning them, and possibly that of */
+ /* marking the freelists. */
+ for (kind = 0; kind < GC_n_kinds; kind++) {
+ GC_PTR base = GC_base(GC_obj_kinds[kind].ok_freelist);
+ if (0 != base) {
+ GC_set_mark_bit(base);
+ }
+ }
+
/* Mark from GC internal roots if those might otherwise have */
/* been excluded. */
if (GC_no_dls || roots_were_cleared) {
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
index f6079732fbf..8f83ff3ab53 100644
--- a/boehm-gc/misc.c
+++ b/boehm-gc/misc.c
@@ -75,6 +75,14 @@
#undef STACKBASE
#endif
+/* Dont unnecessarily call GC_register_main_static_data() in case */
+/* dyn_load.c isn't linked in. */
+#ifdef DYNAMIC_LOADING
+# define GC_REGISTER_MAIN_STATIC_DATA() GC_register_main_static_data()
+#else
+# define GC_REGISTER_MAIN_STATIC_DATA() TRUE
+#endif
+
GC_FAR struct _GC_arrays GC_arrays /* = { 0 } */;
@@ -619,7 +627,7 @@ void GC_init_inner()
/* Add initial guess of root sets. Do this first, since sbrk(0) */
/* might be used. */
- GC_register_data_segments();
+ if (GC_REGISTER_MAIN_STATIC_DATA()) GC_register_data_segments();
GC_init_headers();
GC_bl_init();
GC_mark_init();
diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c
index 82386ec4fba..e129a7ad5a5 100644
--- a/boehm-gc/os_dep.c
+++ b/boehm-gc/os_dep.c
@@ -710,7 +710,16 @@ ptr_t GC_get_stack_base()
/* First try the easy way. This should work for glibc 2.2 */
if (0 != &__libc_stack_end) {
+# ifdef SPARC
+ /* Older versions of glibc for 64-bit Sparc do not set
+ * this variable correctly, it gets set to either zero
+ * or one.
+ */
+ if (__libc_stack_end != (ptr_t) (unsigned long)0x1)
+ return __libc_stack_end;
+# else
return __libc_stack_end;
+# endif
}
f = open("/proc/self/stat", O_RDONLY);
if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
diff --git a/boehm-gc/win32_threads.c b/boehm-gc/win32_threads.c
index 9987fc6426f..954b18d7018 100644
--- a/boehm-gc/win32_threads.c
+++ b/boehm-gc/win32_threads.c
@@ -527,6 +527,8 @@ DWORD WINAPI main_thread_start(LPVOID arg)
LONG WINAPI GC_write_fault_handler(struct _EXCEPTION_POINTERS *exc_info);
+#ifdef GC_DLL
+
/*
* This isn't generally safe, since DllMain is not premptible.
* If another thread holds the lock while this runs we're in trouble.
@@ -635,6 +637,8 @@ BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
return TRUE;
}
+# endif /* GC_DLL */
+
# endif /* !MSWINCE */
#endif /* GC_WIN32_THREADS */
diff --git a/config-ml.in b/config-ml.in
index d19a79703b6..c1c1eb4dfbd 100644
--- a/config-ml.in
+++ b/config-ml.in
@@ -511,7 +511,7 @@ multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ]
cat > Multi.tem <<\EOF
-PWD=$${PWDCMD-pwd}
+PWD_COMMAND=$${PWDCMD-pwd}
# FIXME: There should be an @-sign in front of the `if'.
# Leave out until this is tested a bit more.
@@ -519,8 +519,8 @@ multi-do:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
- rootpre=`${PWD}`/; export rootpre; \
- srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \
+ rootpre=`${PWD_COMMAND}`/; export rootpre; \
+ srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \
lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \
compiler="$(CC)"; \
for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
@@ -540,6 +540,10 @@ multi-do:
LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
LDFLAGS="$(LDFLAGS) $${flags}" \
DESTDIR="$(DESTDIR)" \
+ INSTALL="$(INSTALL)" \
+ INSTALL_DATA="$(INSTALL_DATA)" \
+ INSTALL_PROGRAM="$(INSTALL_PROGRAM)" \
+ INSTALL_SCRIPT="$(INSTALL_SCRIPT)" \
$(DO)); then \
true; \
else \
@@ -557,7 +561,7 @@ multi-clean:
if [ -z "$(MULTIDIRS)" ]; then \
true; \
else \
- lib=`${PWD} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
+ lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
for dir in Makefile $(MULTIDIRS); do \
if [ -f ../$${dir}/$${lib}/Makefile ]; then \
if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \
diff --git a/config.guess b/config.guess
index 9b1384be4b1..4fc21ecc3aa 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2002-11-30'
+timestamp='2003-01-30'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -98,14 +98,17 @@ trap 'exit 1' 1 2 15
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
-# This shell variable is my proudest work .. or something. --bje
+# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
-(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
- || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
-dummy=$tmpdir/dummy ;
-files="$dummy.c $dummy.o $dummy.rel $dummy" ;
-trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
@@ -113,15 +116,13 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
- rm -f $files ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;
-unset files'
+esac ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -234,70 +235,54 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
+ *:MicroBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
+ exit 0 ;;
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- eval $set_cc_for_build
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
- if test "$?" = 0 ; then
- case `$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- 3-1307)
- UNAME_MACHINE="alphaev7"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy && rmdir $tmpdir
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
@@ -450,8 +435,7 @@ EOF
EOF
$CC_FOR_BUILD -o $dummy $dummy.c \
&& $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
+ && exit 0
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Motorola:PowerMAX_OS:*:*)
@@ -535,8 +519,7 @@ EOF
exit(0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
@@ -635,10 +618,20 @@ EOF
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
- rm -f $dummy.c $dummy && rmdir $tmpdir
+ test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
ia64:HP-UX:*:*)
@@ -672,8 +665,7 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -731,15 +723,15 @@ EOF
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
@@ -767,7 +759,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c && rmdir $tmpdir
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
exit 0 ;;
i*:CYGWIN*:*)
@@ -832,7 +823,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- rm -f $dummy.c && rmdir $tmpdir
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
mips64:Linux:*:*)
@@ -852,7 +842,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- rm -f $dummy.c && rmdir $tmpdir
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
@@ -948,7 +937,6 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c && rmdir $tmpdir
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
@@ -1146,7 +1134,11 @@ EOF
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
+ case `uname -p` in
+ *86) UNAME_PROCESSOR=i686 ;;
+ powerpc) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
@@ -1320,8 +1312,7 @@ main ()
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
-rm -f $dummy.c $dummy && rmdir $tmpdir
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
# Apollos put the system type in the environment.
diff --git a/config.if b/config.if
index aa35a3f8140..c38b59c841e 100644
--- a/config.if
+++ b/config.if
@@ -22,9 +22,18 @@ fi
# Set libstdcxx_incdir.
# This is the same as gcc/configure.in and libstdc++-v3/acinclude.m4.
-gcc_version_trigger=${if_topsrcdir}/gcc/version.c
-gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*"\([^"]*\)".*/\1/'`
-gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
+if test -z "$gcc_version"; then
+ if test -z "${gcc_version_trigger}" \
+ && test -f ${if_topsrcdir}/gcc/version.c; then
+ gcc_version_trigger=${if_topsrcdir}/gcc/version.c
+ fi
+ if test -f "${gcc_version_trigger}"; then
+ gcc_version_full=`grep version_string "${gcc_version_trigger}" | sed -e 's/.*"\([^"]*\)".*/\1/'`
+ else
+ gcc_version_full=`$CC -v 2>&1 | sed -n 's/^gcc version //p'`
+ fi
+ gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
+fi
libstdcxx_incdir=c++/${gcc_version}
# The trickiest part is libc_interface.
diff --git a/config.sub b/config.sub
index 60338429828..2ab7f25694c 100755
--- a/config.sub
+++ b/config.sub
@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-timestamp='2002-08-20'
+timestamp='2003-01-28'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -118,7 +118,7 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -229,7 +229,7 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | c4x | clipper \
+ | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
@@ -239,23 +239,25 @@ case $basic_machine in
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
- | mips64vr | mips64vrel \
+ | mips64vr | mips64vrel \
| mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | msp430 \
| ns16k | ns32k \
| openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
| strongarm \
@@ -294,7 +296,7 @@ case $basic_machine in
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
| clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
@@ -309,27 +311,29 @@ case $basic_machine in
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
+ | mips64vr-* | mips64vrel-* \
| mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39 | mipstx39el \
- | none-* | np1-* | ns16k-* | ns32k-* \
+ | mipstx39-* | mipstx39el-* \
+ | msp430-* \
+ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
+ | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
@@ -716,6 +720,10 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ nv1)
+ basic_machine=nv1-cray
+ os=-unicosmp
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -749,7 +757,7 @@ case $basic_machine in
pbb)
basic_machine=m68k-tti
;;
- pc532 | pc532-*)
+ pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
@@ -776,22 +784,22 @@ case $basic_machine in
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
- ;;
+ ;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
- ;;
+ ;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
- ;;
+ ;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
- ;;
+ ;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
@@ -893,7 +901,7 @@ case $basic_machine in
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
- sv1)
+ sv1)
basic_machine=sv1-cray
os=-unicos
;;
@@ -901,10 +909,6 @@ case $basic_machine in
basic_machine=i386-sequent
os=-dynix
;;
- t3d)
- basic_machine=alpha-cray
- os=-unicos
- ;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
@@ -913,6 +917,10 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
+ tic4x | c4x*)
+ basic_machine=tic4x-unknown
+ os=-coff
+ ;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
@@ -951,8 +959,8 @@ case $basic_machine in
os=-vms
;;
vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
+ basic_machine=f301-fujitsu
+ ;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
@@ -973,11 +981,7 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
+ xps | xps100)
basic_machine=xps100-honeywell
;;
ymp)
@@ -1023,7 +1027,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sh64)
@@ -1032,7 +1036,7 @@ case $basic_machine in
sparc | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
- cydra)
+ cydra)
basic_machine=cydra-cydrome
;;
orion)
@@ -1047,10 +1051,6 @@ case $basic_machine in
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
@@ -1113,11 +1113,12 @@ case $os in
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -microbsd*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1129,8 +1130,10 @@ case $os in
;;
esac
;;
+ -nto-qnx*)
+ ;;
-nto*)
- os=-nto-qnx
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
@@ -1182,7 +1185,7 @@ case $os in
os=-rtmk-nova
;;
-ns2 )
- os=-nextstep2
+ os=-nextstep2
;;
-nsk*)
os=-nsk
@@ -1221,8 +1224,11 @@ case $os in
-xenix)
os=-xenix
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
;;
-none)
;;
@@ -1259,7 +1265,7 @@ case $basic_machine in
pdp10-*)
os=-tops20
;;
- pdp11-*)
+ pdp11-*)
os=-none
;;
*-dec | vax-*)
@@ -1352,19 +1358,19 @@ case $basic_machine in
*-next)
os=-nextstep3
;;
- *-gould)
+ *-gould)
os=-sysv
;;
- *-highlevel)
+ *-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
- *-sgi)
+ *-sgi)
os=-irix
;;
- *-siemens)
+ *-siemens)
os=-sysv4
;;
*-masscomp)
diff --git a/config/ChangeLog b/config/ChangeLog
index 3f985d32a07..4dfd34de381 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,47 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-11-10 Stan Shebs <shebs@apple.com>
Retire common MPW configury bits.
diff --git a/config/mh-sco b/config/mh-sco
index 574b92aa71d..eac60ed4a2e 100644
--- a/config/mh-sco
+++ b/config/mh-sco
@@ -2,4 +2,4 @@ RANLIB = true
# You may need this if you don't have bison.
# BISON = yacc -Sm10400
-X11_EXTRA_LIBS = -lsocket -lm -lintl -lmalloc
+X11_EXTRA_LIBS = -lsocket
diff --git a/configure b/configure
index d055bd8c18f..38ef982eb4b 100755
--- a/configure
+++ b/configure
@@ -89,7 +89,7 @@ subdirs=
target_alias=NOTARGET
target_makefile_frag=
undefs=NOUNDEFS
-version="$Revision: 1.48 $"
+version="$Revision: 1.49 $"
x11=default
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
@@ -697,7 +697,7 @@ fi
if test -f skip-this-dir; then
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
# and reset the trap handler.
- trap 0
+ trap '' 0
rm -rf Makefile* ${tmpdir}
# Execute the final clean-up actions
${config_shell} skip-this-dir
@@ -1596,7 +1596,7 @@ fi
# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
# and reset the trap handler.
rm -rf ${tmpdir}
-trap 0
+trap '' 0
exit 0
diff --git a/configure.in b/configure.in
index 6397aa6c350..c72233efe77 100644
--- a/configure.in
+++ b/configure.in
@@ -14,8 +14,8 @@
## For more information on these two systems, check out the documentation
## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-# 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -416,7 +416,7 @@ case "${target}" in
;;
ia64*-**-hpux*)
# No gdb or ld support yet.
- noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
+ noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
;;
i[3456]86-*-coff | i[3456]86-*-elf)
noconfigdirs="$noconfigdirs ${libgcj}"
@@ -473,7 +473,7 @@ case "${target}" in
i[3456]86-*-sco3.2v5*)
# The linker does not yet know about weak symbols in COFF,
# and is not configured to handle mixed ELF and COFF.
- noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs ld target-libgloss"
;;
i[3456]86-*-sco*)
noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
@@ -1236,10 +1236,6 @@ esac
# Default to using --with-stabs for certain targets.
if test x${with_stabs} = x ; then
case "${target}" in
- mips*-*-irix6*o32)
- with_stabs=yes;
- withoptions="${withoptions} --with-stabs"
- ;;
mips*-*-irix6*)
;;
mips*-*-* | alpha*-*-osf*)
@@ -1415,7 +1411,7 @@ if test x${gxx_include_dir} = x; then
gxx_include_dir='${libsubdir}/include/c++'
else
. ${srcdir}/config.if
- gxx_include_dir='${prefix}/include/${libstdcxx_incdir}'
+ gxx_include_dir='${prefix}/include/'${libstdcxx_incdir}
fi
else
gxx_include_dir=${gxx_include_dir}
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index a8adeb3439a..653f60b3ae5 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,95 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-08-26 Matthias Klose <doko@debian.org>
+
+ * texi2pod.pl: keep references of the form @ref{...}, print them bold.
+
+2003-08-26 Matthias Klose <doko@debian.org>
+
+ * test_summary: Include baseline used for libstdc++-v3 abi check
+ in test summary.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-12-10 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_update (files_and_dependencies): Correct typo in the filename
+ gnat_ug_wnt.texi.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-16 Mark Mitchell <mark@codesourcery.com>
+
+ * gennews (files): Add GCC 3.3 files.
+
+2003-08-21 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_build: Fix handling of -t option. Add -x option.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-06-13 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * gcc_update (files_and_dependencies): Add
+ gcc/testsuite/gcc.dg/cpp/_Pragma3.c depends on
+ gcc/testsuite/gcc.dg/cpp/mi1c.h.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-12 Matthias Klose <doko@debian.org>
+
+ * test_installed: Add options to run objc tests.
+ In generated site.exp, initialize rootme, CFLAGS, CXXFLAGS.
+
+2003-01-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc_update (files_and_dependencies): Add gcc/cp/cfns.h depends
+ on gcc/cp/cfns.gperf and gcc/java/keyword.h depends on
+ gcc/java/keyword.gperf
+
+2002-12-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_update (files_and_dependencies): Add gcc/intl/plural.c as
+ depending on gcc/intl/plural.y.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * texi2pod.pl: Skip contents of @copying.
+
2002-10-21 Richard Henderson <rth@redhat.com>
* paranoia.cc (real_c_float::image): Accomodate size of
diff --git a/contrib/gcc_build b/contrib/gcc_build
index 4d0eea30b6b..416835c2ccc 100755
--- a/contrib/gcc_build
+++ b/contrib/gcc_build
@@ -66,6 +66,7 @@ gcc_build [-c configure_options]
[-u username]
[-p protocol]
[-t tarfile]
+ [-x make_check_options]
[bootstrap]
[build]
[checkout]
@@ -174,7 +175,7 @@ test_gcc() {
changedir ${OBJDIR}
echo "Running tests... This will take a while."
- ${MAKE} -k check
+ eval \${MAKE} -k ${MAKE_CHECK_OPTIONS} check
${DESTINATION}/contrib/test_summary
}
@@ -231,8 +232,10 @@ TARFILE="${HOME}/dev/gcc.tgz"
CONFIGURE_OPTIONS=
# The `make' program.
MAKE=${MAKE:-make}
-# Options to pass to make.
+# Options to pass to "make bootstrap".
MAKE_BOOTSTRAP_OPTIONS=
+# Options to pass to "make check".
+MAKE_CHECK_OPTIONS=
# Modes of operation
BOOTSTRAP=0
@@ -248,14 +251,15 @@ UPDATE=0
########################################################################
# Parse the options.
-while getopts "c:d:m:o:p:t:u:" ARG; do
+while getopts "c:d:m:o:p:t:u:x:" ARG; do
case $ARG in
c) CONFIGURE_OPTIONS="${OPTARG}";;
d) DESTINATION="${OPTARG}";;
m) MAKE_BOOTSTRAP_OPTIONS="${OPTARG}";;
o) OBJDIR="${OPTARG}";;
p) CVS_PROTOCOL="${OPTARG}";;
- t) CVS_TARGFILE="${OPTARG}";;
+ t) TARFILE="${OPTARG}";;
+ x) MAKE_CHECK_OPTIONS="${OPTARG}";;
u) CVS_USERNAME="${OPTARG}";;
\?) usage;;
esac
diff --git a/contrib/gcc_update b/contrib/gcc_update
index d00fd43c6b6..92ffb007e6f 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -29,7 +29,7 @@
# contrib/gcc_update --list
#
#
-# (C) 1998, 1999, 2000, 2001 Free Software Foundation
+# (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, August 1998.
#
# This script is Free Software, and it can be copied, distributed and
@@ -69,8 +69,11 @@ gcc/configure: gcc/configure.in
gcc/cstamp-h.in: gcc/configure.in gcc/acconfig.h
gcc/config.in: gcc/cstamp-h.in
gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
+gcc/intl/plural.c: gcc/intl/plural.y
# And then, language-specific files
gcc/f/intdoc.texi: gcc/f/intdoc.in gcc/f/intdoc.c gcc/f/intrin.h gcc/f/intrin.def
+gcc/cp/cfns.h: gcc/cp/cfns.gperf
+gcc/java/keyword.h: gcc/java/keyword.gperf
gcc/ada/treeprs.ads: gcc/ada/treeprs.adt gcc/ada/sinfo.ads gcc/ada/xtreeprs.adb
gcc/ada/einfo.h: gcc/ada/einfo.ads gcc/ada/einfo.adb gcc/ada/xeinfo.adb
gcc/ada/sinfo.h: gcc/ada/sinfo.ads gcc/ada/xsinfo.adb
@@ -79,7 +82,10 @@ gcc/ada/nmake.ads: gcc/ada/sinfo.ads gcc/ada/nmake.adt gcc/ada/xnmake.adb
gcc/ada/gnat_ug_unx.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
gcc/ada/gnat_ug_vms.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
gcc/ada/gnat_ug_vxw.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
-gcc/ada/gnat_ug_w32.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
+gcc/ada/gnat_ug_wnt.texi: gcc/ada/gnat_ug.texi gcc/ada/xgnatug.adb gcc/ada/ug_words
+# testsuite
+# Without this, _Pragma3.c can have a false negative.
+gcc/testsuite/gcc.dg/cpp/_Pragma3.c: gcc/testsuite/gcc.dg/cpp/mi1c.h
# And libraries, at last
libf2c/configure: libf2c/configure.in
libf2c/libF77/configure: libf2c/libF77/configure.in
diff --git a/contrib/gennews b/contrib/gennews
index 3db519d3e57..2dcb3442df2 100755
--- a/contrib/gennews
+++ b/contrib/gennews
@@ -22,7 +22,8 @@
# Boston, MA 02111-1307, USA.
website=http://gcc.gnu.org/
-files="gcc-3.2/index.html gcc-3.2/changes.html
+files="gcc-3.3/index.html gcc-3.3/changes.html
+ gcc-3.2/index.html gcc-3.2/changes.html
gcc-3.1/index.html gcc-3.1/changes.html
gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html
gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html
diff --git a/contrib/regression/ChangeLog b/contrib/regression/ChangeLog
index b7759bc96b7..89d05083be9 100644
--- a/contrib/regression/ChangeLog
+++ b/contrib/regression/ChangeLog
@@ -1,3 +1,47 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-10-22 Geoffrey Keating <geoffk@apple.com>
* btest-gcc.sh: Add gdb.sum to TESTLOGS only when GDB testsuite is run.
diff --git a/contrib/test_installed b/contrib/test_installed
index b4c32835d9c..54afa245e31 100755
--- a/contrib/test_installed
+++ b/contrib/test_installed
@@ -1,6 +1,6 @@
#! /bin/sh
-# (C) 1998, 2000, 2002 Free Software Foundation
+# (C) 1998, 2000, 2002, 2003 Free Software Foundation
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
# This script is Free Software, and it can be copied, distributed and
@@ -54,12 +54,13 @@ while true; do
--without-gcc) GCC_UNDER_TEST=no; shift;;
--without-g++) GXX_UNDER_TEST=no; shift;;
--without-g77) G77_UNDER_TEST=no; shift;;
+ --without-objc) OBJC_UNDER_TEST=no; shift;;
--tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
--help) cat <<\EOF
-Runs the testsuite for an installed version of gcc/g++/g77
-Copyright (C) 1998 Free Software Foundation
+Runs the testsuite for an installed version of gcc/g++/g77/objc
+Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation
by Alexandre Oliva <oliva@dcc.unicamp.br>
Supported arguments:
@@ -77,6 +78,7 @@ Supported arguments:
--without-gcc do not run gcc testsuite
--without-g++ do not run g++ testsuite
--without-g77 do not run g77 testsuite
+--without-objc do not run objc testsuite
--tmpdir=/some/dir create temporaries and leave failed programs
at specified directory [.]
@@ -100,15 +102,20 @@ if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
fi
cat >site.exp <<EOF
+set rootme "."
set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
+set CFLAGS ""
+set CXXFLAGS ""
set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
set G77_UNDER_TEST "${G77_UNDER_TEST-${prefix}${prefix+/bin/}g77}"
+set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
EOF
test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
test x"${G77_UNDER_TEST}" = x"no" || runtest --tool g77 ${1+"$@"}
+test x"${OBJC_UNDER_TEST}" = x"no" || runtest --tool objc ${1+"$@"}
exit 0
diff --git a/contrib/test_summary b/contrib/test_summary
index 5b9cdc8f39e..427a4614a4a 100755
--- a/contrib/test_summary
+++ b/contrib/test_summary
@@ -116,6 +116,7 @@ $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", ver
/\===.*Summary/ { print ""; print; blanks=1; }
/tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; }
/^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { print; }
+/^using:/ { print ""; print; print ""; }
# dumpall != 0 && /^X?(PASS|FAIL|UNTESTED)|^testcase/ { dumpall=0; }
# dumpall != 0 { print; }
# /^FAIL/ { dumpall=1; }
diff --git a/contrib/texi2pod.pl b/contrib/texi2pod.pl
index e5560f303de..75722755076 100755
--- a/contrib/texi2pod.pl
+++ b/contrib/texi2pod.pl
@@ -138,7 +138,7 @@ while(<$inf>) {
# Ignore @end foo, where foo is not an operation which may
# cause us to skip, if we are presently skipping.
my $ended = $1;
- next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex)$/;
+ next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex|copying)$/;
die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
@@ -178,7 +178,7 @@ while(<$inf>) {
next;
};
- /^\@(ignore|menu|iftex)\b/ and do {
+ /^\@(ignore|menu|iftex|copying)\b/ and do {
push @endwstack, $endw;
push @skstack, $skipping;
$endw = $1;
@@ -345,6 +345,9 @@ sub postprocess
s/\@w\{([^\}]*)\}/S<$1>/g;
s/\@(?:dmn|math)\{([^\}]*)\}/$1/g;
+ # keep references of the form @ref{...}, print them bold
+ s/\@(?:ref)\{([^\}]*)\}/B<$1>/g;
+
# Cross references are thrown away, as are @noindent and @refill.
# (@noindent is impossible in .pod, and @refill is unnecessary.)
# @* is also impossible in .pod; we discard it and any newline that
diff --git a/fastjar/ChangeLog b/fastjar/ChangeLog
index 34a5bdcccbf..c9ce162f75d 100644
--- a/fastjar/ChangeLog
+++ b/fastjar/ChangeLog
@@ -1,3 +1,88 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-07-27 Jones Desougi <jones@ingate.com>
+ Kelley Cook <kcook@gcc.gnu.org>
+
+ PR bootstrap/15194
+ * acinclude.m4 (gcc_AC_COMPILE_CHECK_SIZEOF): Return 0 when type
+ doesn't exist.
+ * aclocal.m4: Regenerate.
+ * configure: Regenearate.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-13 Matthias Klose <doko@debian.org>
+
+ * fastjar.texi: License manual under the GPL.
+ * Makefile.am: Remove reference to fdl.texi
+ * Makefile.in: Regenerate
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * README: Note that FastJar is not part of GCC.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * fastjar.texi: Remove @ at start of file.
+
+2003-03-10 Mohan Embar <gnustuff@thisiscool.com>
+
+ * dostime.c: add #include <stddef.h> for definition of NULL
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * fastjar.texi: Update to GFDL 1.2.
+
+2003-01-31 Daiki Ueno <ueno@unixuser.org>
+
+ * jartool.c (extract_jar): Don't lseek to skip extra fields.
+ (consume): If the stream is seekable, do lseek.
+
+2003-01-28 Ranjit Mathew <rmathew@hotmail.com>
+
+ * jargrep.c: Include xregex.h from libiberty instead of
+ system regex.h for better portability.
+
+2003-01-21 Ranjit Mathew <rmathew@hotmail.com>
+
+ * jartool.c (list_jar): Terminate the 'ascii_date' buffer
+ with a '\0' to guard against the case where the formatted
+ time string is more than the size allowed by the buffer.
+
+2002-12-30 DJ Delorie <dj@redhat.com>
+
+ * Makefile.am (jar.1, grepjar.1): Protect against
+ texi2pod/pod2man failing.
+ * Makefile.in: Regenerated.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * fastjar.texi: Include Cover Texts in man page.
+
2002-12-04 Jakub Jelinek <jakub@redhat.com>
* fastjar.texi (jar @direntry, grepjar @direntry): Add (fastjar).
diff --git a/fastjar/Makefile.am b/fastjar/Makefile.am
index 39a57c40d22..fa31b9235fb 100644
--- a/fastjar/Makefile.am
+++ b/fastjar/Makefile.am
@@ -62,7 +62,6 @@ TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
info_TEXINFOS = fastjar.texi
fastjar_TEXINFOS = \
../gcc/doc/include/gcc-common.texi \
- ../gcc/doc/include/fdl.texi \
../gcc/doc/include/gpl.texi
man_MANS = jar.1 grepjar.1
EXTRA_DIST = $(man_MANS)
@@ -85,14 +84,14 @@ POD2MAN = pod2man --center="GNU" --release="gcc-@gcc_version@"
$(srcdir)/jar.1: $(srcdir)/fastjar.texi
-$(TEXI2POD) -D jar < $(srcdir)/fastjar.texi > fastjar.pod
- ($(POD2MAN) --section=1 fastjar.pod > jar.1.T$$$$ && \
+ -($(POD2MAN) --section=1 fastjar.pod > jar.1.T$$$$ && \
mv -f jar.1.T$$$$ $(srcdir)/jar.1) || \
(rm -f jar.1.T$$$$ && exit 1)
- rm -f fastjar.pod
+ -rm -f fastjar.pod
$(srcdir)/grepjar.1: $(srcdir)/fastjar.texi
-$(TEXI2POD) -D grepjar < $(srcdir)/fastjar.texi > grepjar.pod
- ($(POD2MAN) --section=1 grepjar.pod > grepjar.1.T$$$$ && \
+ -($(POD2MAN) --section=1 grepjar.pod > grepjar.1.T$$$$ && \
mv -f grepjar.1.T$$$$ $(srcdir)/grepjar.1) || \
(rm -f grepjar.1.T$$$$ && exit 1)
- rm -f grepjar.pod
+ -rm -f grepjar.pod
diff --git a/fastjar/Makefile.in b/fastjar/Makefile.in
index 4b6675000fe..b79a3ade06e 100644
--- a/fastjar/Makefile.in
+++ b/fastjar/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -80,40 +80,7 @@ AUTOMAKE_OPTIONS = no-dependencies
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
- "AR_FLAGS=$(AR_FLAGS)" \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS=$(CFLAGS)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
- "JC1FLAGS=$(JC1FLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
- "MAKE=$(MAKE)" \
- "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
- "PICFLAG=$(PICFLAG)" \
- "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
- "SHELL=$(SHELL)" \
- "exec_prefix=$(exec_prefix)" \
- "infodir=$(infodir)" \
- "libdir=$(libdir)" \
- "prefix=$(prefix)" \
- "AR=$(AR)" \
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
- "PICFLAG=$(PICFLAG)" \
- "RANLIB=$(RANLIB)" \
- "DESTDIR=$(DESTDIR)"
+AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "JC1FLAGS=$(JC1FLAGS)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "prefix=$(prefix)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "NM=$(NM)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "DESTDIR=$(DESTDIR)"
INCLUDES = -I. -I$(top_srcdir) $(ZINCS) -I$(top_srcdir)/../include
@@ -121,14 +88,12 @@ INCLUDES = -I. -I$(top_srcdir) $(ZINCS) -I$(top_srcdir)/../include
LIBIBERTY = ../libiberty/libiberty.a
bin_PROGRAMS = jar grepjar
-jar_SOURCES = jartool.c dostime.c compress.c pushback.c jartool.h \
-zipfile.h dostime.h compress.h pushback.h
+jar_SOURCES = jartool.c dostime.c compress.c pushback.c jartool.h zipfile.h dostime.h compress.h pushback.h
jar_LDADD = $(ZLIBS) $(LIBIBERTY)
jar_DEPENDENCIES = $(ZDEPS) $(LIBIBERTY)
-grepjar_SOURCES = jargrep.c dostime.c compress.c pushback.c jartool.h \
-zipfile.h dostime.h compress.h pushback.h
+grepjar_SOURCES = jargrep.c dostime.c compress.c pushback.c jartool.h zipfile.h dostime.h compress.h pushback.h
grepjar_LDADD = $(ZLIBS) $(LIBIBERTY)
grepjar_DEPENDENCIES = $(ZDEPS) $(LIBIBERTY)
@@ -137,10 +102,7 @@ AM_CFLAGS = @fastjar_warn_cflags@
TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
info_TEXINFOS = fastjar.texi
-fastjar_TEXINFOS = \
- ../gcc/doc/include/gcc-common.texi \
- ../gcc/doc/include/fdl.texi \
- ../gcc/doc/include/gpl.texi
+fastjar_TEXINFOS = ../gcc/doc/include/gcc-common.texi ../gcc/doc/include/gpl.texi
man_MANS = jar.1 grepjar.1
EXTRA_DIST = $(man_MANS)
@@ -185,7 +147,7 @@ missing mkinstalldirs
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = gtar
+TAR = tar
GZIP_ENV = --best
SOURCES = $(jar_SOURCES) $(grepjar_SOURCES)
OBJECTS = $(jar_OBJECTS) $(grepjar_OBJECTS)
@@ -369,7 +331,7 @@ uninstall-info:
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
- test -z "$ii" \
+ test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
@@ -464,7 +426,7 @@ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP)
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
+ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP))
mostlyclean-tags:
@@ -614,17 +576,17 @@ fastjar.info: fastjar.texi $(fastjar_TEXINFOS)
$(srcdir)/jar.1: $(srcdir)/fastjar.texi
-$(TEXI2POD) -D jar < $(srcdir)/fastjar.texi > fastjar.pod
- ($(POD2MAN) --section=1 fastjar.pod > jar.1.T$$$$ && \
+ -($(POD2MAN) --section=1 fastjar.pod > jar.1.T$$$$ && \
mv -f jar.1.T$$$$ $(srcdir)/jar.1) || \
(rm -f jar.1.T$$$$ && exit 1)
- rm -f fastjar.pod
+ -rm -f fastjar.pod
$(srcdir)/grepjar.1: $(srcdir)/fastjar.texi
-$(TEXI2POD) -D grepjar < $(srcdir)/fastjar.texi > grepjar.pod
- ($(POD2MAN) --section=1 grepjar.pod > grepjar.1.T$$$$ && \
+ -($(POD2MAN) --section=1 grepjar.pod > grepjar.1.T$$$$ && \
mv -f grepjar.1.T$$$$ $(srcdir)/grepjar.1) || \
(rm -f grepjar.1.T$$$$ && exit 1)
- rm -f grepjar.pod
+ -rm -f grepjar.pod
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/fastjar/README b/fastjar/README
index d3f87a8b860..a16a501829d 100644
--- a/fastjar/README
+++ b/fastjar/README
@@ -1,3 +1,6 @@
+This directory contains the FastJar package, which is not part of GCC but
+shipped with GCC as convenience.
+
=======
FastJar 0.90
diff --git a/fastjar/acinclude.m4 b/fastjar/acinclude.m4
index 0a45d735bd2..6feb733f7ac 100644
--- a/fastjar/acinclude.m4
+++ b/fastjar/acinclude.m4
@@ -1,6 +1,7 @@
dnl Host type sizes probe.
dnl By Kaveh R. Ghazi. One typo fixed since.
+dnl Modified to return a size of 0 if type doesn't exist
dnl
AC_DEFUN([gcc_AC_COMPILE_CHECK_SIZEOF],
[changequote(<<, >>)dnl
@@ -20,7 +21,7 @@ $2
done
])
if test x$AC_CV_NAME = x ; then
- AC_MSG_ERROR([cannot determine a size for $1])
+ AC_CV_NAME=0
fi
AC_MSG_RESULT($AC_CV_NAME)
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
diff --git a/fastjar/aclocal.m4 b/fastjar/aclocal.m4
index 5a9b493923f..3832bfba6f3 100644
--- a/fastjar/aclocal.m4
+++ b/fastjar/aclocal.m4
@@ -13,6 +13,7 @@ dnl PARTICULAR PURPOSE.
dnl Host type sizes probe.
dnl By Kaveh R. Ghazi. One typo fixed since.
+dnl Modified to return a size of 0 if type doesn't exist
dnl
AC_DEFUN([gcc_AC_COMPILE_CHECK_SIZEOF],
[changequote(<<, >>)dnl
@@ -32,7 +33,7 @@ $2
done
])
if test x$AC_CV_NAME = x ; then
- AC_MSG_ERROR([cannot determine a size for $1])
+ AC_CV_NAME=0
fi
AC_MSG_RESULT($AC_CV_NAME)
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
diff --git a/fastjar/configure b/fastjar/configure
index 4cc1b926a70..90a247412d8 100755
--- a/fastjar/configure
+++ b/fastjar/configure
@@ -1876,7 +1876,7 @@ done
fi
if test x$ac_cv_sizeof_char = x ; then
- { echo "configure: error: cannot determine a size for char" 1>&2; exit 1; }
+ ac_cv_sizeof_char=0
fi
echo "$ac_t""$ac_cv_sizeof_char" 1>&6
cat >> confdefs.h <<EOF
@@ -1915,7 +1915,7 @@ done
fi
if test x$ac_cv_sizeof_short = x ; then
- { echo "configure: error: cannot determine a size for short" 1>&2; exit 1; }
+ ac_cv_sizeof_short=0
fi
echo "$ac_t""$ac_cv_sizeof_short" 1>&6
cat >> confdefs.h <<EOF
@@ -1954,7 +1954,7 @@ done
fi
if test x$ac_cv_sizeof_int = x ; then
- { echo "configure: error: cannot determine a size for int" 1>&2; exit 1; }
+ ac_cv_sizeof_int=0
fi
echo "$ac_t""$ac_cv_sizeof_int" 1>&6
cat >> confdefs.h <<EOF
@@ -1993,7 +1993,7 @@ done
fi
if test x$ac_cv_sizeof_long = x ; then
- { echo "configure: error: cannot determine a size for long" 1>&2; exit 1; }
+ ac_cv_sizeof_long=0
fi
echo "$ac_t""$ac_cv_sizeof_long" 1>&6
cat >> confdefs.h <<EOF
@@ -2032,7 +2032,7 @@ done
fi
if test x$ac_cv_sizeof_long_long = x ; then
- { echo "configure: error: cannot determine a size for long long" 1>&2; exit 1; }
+ ac_cv_sizeof_long_long=0
fi
echo "$ac_t""$ac_cv_sizeof_long_long" 1>&6
cat >> confdefs.h <<EOF
diff --git a/fastjar/dostime.c b/fastjar/dostime.c
index 5117a82014e..b202705bec3 100644
--- a/fastjar/dostime.c
+++ b/fastjar/dostime.c
@@ -21,6 +21,8 @@
#include <time.h>
+#include <stddef.h>
+
#include "dostime.h"
/*
diff --git a/fastjar/fastjar.texi b/fastjar/fastjar.texi
index f51cb99e730..e033da8b400 100644
--- a/fastjar/fastjar.texi
+++ b/fastjar/fastjar.texi
@@ -1,4 +1,4 @@
-@\input texinfo @c -*-texinfo-*-
+\input texinfo @c -*-texinfo-*-
@setfilename fastjar.info
@settitle Guide to GNU jar utilites
@@ -32,32 +32,19 @@
@end format
@c man begin COPYRIGHT
-Copyright (C) @value{copyrights-fastjar} Free Software Foundation, Inc.
+Copyright (C) @value{copyrights-fastjar} Matthias Klose
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the
+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. A copy of the license is included in the
@c man end
-section entitled
-``GNU Free Documentation License''.
+section entitled ``GNU General Public License''.
@ignore
@c man begin COPYRIGHT
-man page gfdl(7).
+man page gpl(7).
@c man end
@end ignore
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
@end ifinfo
@titlepage
@@ -66,7 +53,7 @@ man page gfdl(7).
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} @value{copyrights-gcj} Free Software Foundation, Inc.
+Copyright @copyright{} @value{copyrights-gcj} Matthias Klose
@sp 2
For the @value{which-gcj} Version*
@sp 1
@@ -75,22 +62,10 @@ Published by the Free Software Foundation @*
Boston, MA 02111-1307, USA@*
@sp 1
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+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. A copy of the license is included in the
+section entitled ``GNU General Public License''.
@end titlepage
@contents
@page
@@ -105,8 +80,6 @@ This manual describes how to use @command{jar} and @command{grepjar}.
* Invoking jar:: Options supported by @command{jar}
* Invoking grepjar:: Options supported by @command{grepjar}
* Copying:: The GNU General Public License
-* GNU Free Documentation License::
- How you can share and copy this manual
@end menu
@node Invoking jar
@@ -257,6 +230,4 @@ Print version number, then exit.
@include gpl.texi
-@include fdl.texi
-
@bye
diff --git a/fastjar/jargrep.c b/fastjar/jargrep.c
index 1a9ee91be5d..9e0e4914ed9 100644
--- a/fastjar/jargrep.c
+++ b/fastjar/jargrep.c
@@ -1,6 +1,6 @@
/*
jargrep.c - main functions for jargrep utility
- Copyright (C) 2002 Free Software Foundation
+ Copyright (C) 2002, 2003 Free Software Foundation
Copyright (C) 1999, 2000 Bryan Burns
Copyright (C) 2000 Cory Hollingsworth
@@ -105,7 +105,6 @@ will test some other platforms later.
#include "config.h"
#include <stdio.h>
#include <unistd.h>
-#include <regex.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
@@ -115,6 +114,9 @@ will test some other platforms later.
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+
+#include "xregex.h"
+
#include "jargrep.h"
#include "jartool.h"
#include "pushback.h"
diff --git a/fastjar/jartool.c b/fastjar/jartool.c
index 7cc06aaad5b..615cc401834 100644
--- a/fastjar/jartool.c
+++ b/fastjar/jartool.c
@@ -1471,9 +1471,6 @@ int extract_jar(int fd, char **files, int file_num){
}
if(method == 8 || flags & 0x0008){
- if(seekable)
- lseek(fd, eflen, SEEK_CUR);
- else
consume(&pbf, eflen);
inflate_file(&pbf, f_fd, &ze);
@@ -1508,9 +1505,6 @@ int extract_jar(int fd, char **files, int file_num){
#endif
}
- if(seekable)
- lseek(fd, eflen, SEEK_CUR);
- else
consume(&pbf, eflen);
}
@@ -1571,7 +1565,7 @@ int list_jar(int fd, char **files, int file_num){
int i, j;
time_t tdate;
struct tm *s_tm;
- char ascii_date[30];
+ char ascii_date[31];
zipentry ze;
#ifdef DEBUG
@@ -1662,6 +1656,7 @@ int list_jar(int fd, char **files, int file_num){
tdate = dos2unixtime(mdate);
s_tm = localtime(&tdate);
strftime(ascii_date, 30, "%a %b %d %H:%M:%S %Z %Y", s_tm);
+ ascii_date[30] = '\0';
}
if(filename_len < fnlen + 1){
@@ -1781,6 +1776,7 @@ int list_jar(int fd, char **files, int file_num){
tdate = dos2unixtime(mdate);
s_tm = localtime(&tdate);
strftime(ascii_date, 30, "%a %b %d %H:%M:%S %Z %Y", s_tm);
+ ascii_date[30] = '\0';
}
if(filename_len < fnlen + 1){
@@ -1854,6 +1850,14 @@ int consume(pb_file *pbf, int amt){
printf("Consuming %d bytes\n", amt);
#endif
+ if (seekable){
+ if (amt <= (int)pbf->buff_amt)
+ pb_read(pbf, buff, amt);
+ else {
+ lseek(pbf->fd, amt - pbf->buff_amt, SEEK_CUR);
+ pb_read(pbf, buff, pbf->buff_amt); /* clear pbf */
+ }
+ } else
while(tc < amt){
rdamt = pb_read(pbf, buff, ((amt - tc) < RDSZ ? (amt - tc) : RDSZ));
#ifdef DEBUG
@@ -1863,7 +1867,7 @@ int consume(pb_file *pbf, int amt){
}
#ifdef DEBUG
- printf("%d bytes consumed\n", tc);
+ printf("%d bytes consumed\n", amt);
#endif
return 0;
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1036a4fc88..2a40ea41cd6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,8069 @@
-Fri Dec 13 21:07:18 2002 Alexandre Oliva <aoliva@redhat.com>
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-05-01 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/19579
+ Backport from mainline
+ 2005-01-26 Jakub Jelinek <jakub@redhat.com>
+ * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
+ both A and B, see if they don't clobber registers the other expr uses.
+
+2005-04-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR 14884
+ * Apply:
+ 2004-03-25 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
+ rpc_xdr_lvalue_cast_b): New fixes.
+ * fixinc/tests/base/rpc/xdr.h: Add new tests.
+
+2005-04-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * Apply:
+ 2004-10-21 Aldy Hernandez <aldyh@redhat.com>
+
+ PR target/18004.
+ * expmed.c (store_bit_field): Pass original 'value' before
+ recursing.
+
+2005-04-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/invoke.texi (SPARC options): Document that -mapp-regs
+ is turned off by default on Solaris.
+
+2005-04-06 James E. Wilson <wilson@specifixinc.com>
+
+ PR target/20670
+ * unwind-ia64.c (uw_intall_context): Add missing load of r27.
+
+2005-04-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * doc/invoke.texi (-Wsynth): Remove documentation.
+
+2005-03-28 James E Wilson <wilson@specifixinc.com>
+
+ PR target/20286.
+ * config/ia64/ia64.c (ia64_encode_section_info): Only abort if encoding
+ or symbol_str[1] is 's'.
+
+2005-02-23 Michael Beach <michaelb@ieee.org>
+
+ PR target/20159
+ * config/sparc/t-elf (startup files): Assemble with CPP.
+
+2005-02-11 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
+
+ PR middle-end/19697
+ 2005-01-30 Roger Sayle <roger@eyesopen.com>
+ * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
+ constant as the second operand and a register as the third.
+
+2005-01-29 Alan Modra <amodra@bigpond.net.au>
+
+ * unwind-dw2.c (execute_stack_op): Add missing cases for
+ DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
+
+2005-01-28 Stephane Carrez <stcarrez@nerim.fr>
+
+ PR target/15384
+ * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
+ configuration part of dp-bit.c to be lost.
+
+2005-01-27 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/17771
+ Backport from mainline:
+ * config/s390/s390.md ("reload_outti"): Remove predicate for
+ output operand. Abort if operand is not a MEM.
+ ("reload_outdi", "reload_outdf"): Likewise.
+
+2005-01-22 Roger Sayle <roger@eyesopen.com>
+
+ PR target/18402
+ Backport from mainline
+ 2003-02-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR optimization/8555
+ * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
+ instead of aborting.
+
+2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
+
+2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/17115
+ * tree-inline.c (expand_call_inline): Do not warn for functions
+ marked with attribute noinline.
+
+2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/19296
+ * combine.c (simplify_comparison): Rewrite the condition under
+ which a non-paradoxical SUBREG of a PLUS can be lifted when
+ compared against a constant.
+
+2004-01-14 David Mosberger <davidm@hpl.hp.com>
+ James E Wilson <wilson@specifixinc.com>
+
+ PR target/18987
+ * config/ia64/ia64.c (process_set): For alloc insn, only call
+ process_epilogue is !frame_pointer_needed.
+
+ PR target/13158
+ * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
+ sibcall alloc instruction.
+ (process_set): Handle sibcall alloc instruction.
+
+2005-01-13 David O'Brien <obrien@FreeBSD.org>
+
+ Backport from mainline:
+ * config/freebsd-spec.h: Use KSE pthread lib for -pthread.
+
+2005-01-08 Sergey M. Samoylov <ssamoylov@dev.rtsoft.ru>
+
+ Backport:
+ 2004-02-12 Richard Sandiford <rsandifo@redhat.com>
+ PR bootstrap/13617
+ * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
+ (mips_declare_object): Make variadic.
+ * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
+ mips_output_aligned_decl_common.
+ * config/mips/mips.c (mips_output_aligned_decl_common): New function.
+ (mips_declare_object): Make variadic.
+
+2005-01-08 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/17565
+ * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
+
+2004-12-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * vax.c (vax_address_cost, vax_rtx_cost): Correct casts.
+ (vax_rtx_cost): Handle small offsets for both PLUS and MINUS.
+
+2004-12-27 Steven Bosscher <stevenb@suse.de>
+ John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ rtl-optimization/12863
+ * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
+ * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
+ that the case is in range, to make sure the casesi insn is always
+ in range and never falls through.
+ (casesi1): Add comment to explain why casesi never falls through.
+ Remove the unnamed special case casesi pattern.
+
+2004-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/17643
+ * config/pa/pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Return false when
+ TARGET_PORTABLE_RUNTIME is true.
+
+2004-12-25 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/19147
+ * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
+
+2004-12-21 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/14765
+ * c-parse.in (compstmt_primary_start): Set last_expr_type to
+ NULL_TREE.
+
+2004-12-19 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19068
+ * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
+ and op1 are all registers (or constants) before expanding the RTL
+ comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
+
+2004-12-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/18882
+ * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
+ when passed -2 as 'align'.
+ (put_var_into_stack): Adjust calls to put_reg_into_stack.
+ When passed a CONCAT, instruct put_reg_into_stack to use
+ a consecutive stack slot for the second part.
+ (put_reg_into_stack): Remove 'promoted_mode' parameter, add
+ 'consecutive_p' parameter. Retrieve the register mode from 'reg'.
+ When consecutive_p is true, instruct assign_stack_local_1 to use
+ BITS_PER_UNIT alignment.
+ (put_addressof_into_stack): Adjust call to put_reg_into_stack.
+
+2004-12-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/18590
+ * function.c (fixup_var_refs_insns_with_hash): Do not invoke
+ fixup_var_refs_insn on insns marked as deleted.
+
+2004-12-15 Richard Henderson <rth@redhat.com>
+
+ PR target/19005
+ * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
+ optimize_size.
+ (swapqi_1): Rename from swapqi. Enable only for no partial reg
+ stall and optimize_size.
+ (swapqi_2): New.
+ (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
+ (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
+
+2004-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/18730
+ * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
+ the first/last insn is a sequence, return the first/last insn of the
+ sequence.
+
+2004-12-12 Richard Henderson <rth@redhat.com>
+
+ PR target/18932
+ * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
+ and compare_operator to propagate the input CC mode to the output.
+ * config/i386/i386.c (flags_reg_operand, compare_operator): New.
+ * config/i386/i386.h (PREDICATE_CODES): Add them.
+ * config/i386/i386-protos.h: Update.
+
+2004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR rtl-optimization/16536
+ Backport from mainline:
+ 2004-06-25 Mark Mitchell <mark@codesourcery.com>
+ * alias.c (get_alias_set): Adjust setting of
+ DECL_POINTER_ALIAS_SET for pointers to aggregates.
+
+2004-12-09 Richard Henderson <rth@redhat.com>
+
+ PR target/17025
+ * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
+ (test_qi_1, andqi_2): Do not promote to simode.
+
+2004-12-07 David Mosberger <davidm@hpl.hp.com>
+
+ PR target/18443
+ * config/ia64/ia64.c (ia64_assemble_integer): Add support for
+ emitting unaligned pointer-sized integers.
+
+2004-12-05 Richard Henderson <rth@redhat.com>
+
+ PR target/18841
+ * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
+ (builtin_setjmp_receiver_er_sl_1): Use it.
+ (builtin_setjmp_receiver_er_1): Likewise.
+ (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
+ (builtin_setjmp_receiver): Don't split for explicit relocs until
+ after reload.
+ (exception_receiver): Likewise.
+
+2004-12-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ 2003-10-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+ Backport from mainline
+ * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Blacklist ultrix*.
+ * configure: Rebuilt.
+
+2004-12-03 Richard Henderson <rth@redhat.com>
+
+ 2004-09-24 Richard Henderson <rth@redhat.com>
+ PR rtl-opt/17503
+ * regclass.c (subregs_of_mode): Turn into an htab. Make static.
+ (som_hash, som_eq): New.
+ (init_subregs_of_mode, record_subregs_of_mode): New.
+ (cannot_change_mode_set_regs): Rewrite for htab implementation.
+ (invalid_mode_change_p): Likewise.
+ * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
+ * flow.c (mark_used_regs): Likewise.
+ (life_analysis): Use init_subregs_of_mode.
+ * regs.h (subregs_of_mode): Remove.
+ * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
+
+2004-12-03 Roger Sayle <roger@eyesopen.com>
+
+ PR target/9908
+ * config/i386/i386.md (*call_value_1): Correct Intel assembler
+ syntax by using %A1 instead of %*%1.
+
+2004-12-01 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/12817
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
+
+2004-11-29 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/9771
+ * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
+ conditional compilation in init_reg_sets_1.
+ (init_reg_sets_1): Let global_regs[i] take priority over the frame
+ (but not stack) pointer exceptions to regs_invalidated_by_call.
+ (globalize_reg): Globalizing a fixed register may need to update
+ regs_invalidated_by_call.
+
+2004-11-27 Falk Hueffner <falk@debian.org>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/18577
+ * unroll.c (unroll_loop): Test both REGNO_LAST_UID and
+ REGNO_LAST_NOTE_UID to decide whether a pseudo is local
+ to the loop.
+
+2004-11-27 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/12769
+ * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
+ from rs6000_default_long_calls for libcalls.
+
+2004-11-25 Richard Henderson <rth@redhat.com>
+
+ PR c++/6764
+ * reload1.c (set_initial_eh_label_offset): New.
+ (set_initial_label_offsets): Use it.
+
+2004-11-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR rtl-optimization/14838
+ * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
+ note.
+ (get_last_nonnote_insn): Don't assume last insn is a note.
+
+2004-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * doc/install.texi (*-*-solaris2*): Update with info about kernel
+ patches to solve spurious testsuite failures.
+
+2004-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/14454
+ * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
+ sparc_can_output_mi_thunk.
+ (sparc_output_mi_thunk): Simplify handling of delta offset. Add
+ handling of vcall offset.
+ (sparc_can_output_mi_thunk): New predicate.
+ * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
+ (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
+ (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
+
+ * config/sparc/sparc.md (movdi): Remove redundant test.
+
+2004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (*-*-solaris2*): Fix marker for URL.
+
+2004-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/16007
+ * doc/install.texi (*-*-solaris2*): Mention potential problem
+ with Sun assembler + GNU linker and C++ programs.
+ Document status of binutils 2.15 release.
+
+2004-09-30 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/qrnnd.asm: Mark for noexecstack.
+
+2004-09-30 Richard Henderson <rth@redhat.com>
+
+ * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
+ * doc/tm.texi (DWARF_ZERO_REG): New.
+
+ * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
+ alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
+ * config/alpha/alpha.h (DWARF_ZERO_REG): New.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-09-20 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/17363
+ Backport from mainline
+ 2003-07-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR bootstrap/11593
+ * sched-rgn.c (find_rgns): Initialize current_edge correctly.
+
+2004-09-17 James E Wilson <wilson@specifixinc.com>
+
+ PR target/17455
+ * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
+ if current_function_decl is a sibcall.
+
+2004-09-13 Richard Henderson <rth@redhat.com>
+
+ PR inline-asm/6806
+ * cselib.c (cselib_invalidate_rtx): Export. Remove unused args.
+ (cselib_invalidate_rtx_note_stores): New.
+ (cselib_record_sets, cselib_process_insn): Update to match.
+ * cselib.h (cselib_invalidate_rtx): Declare.
+ * reload1.c (reload_cse_simplify): Invalidate asm clobbers.
+
+2004-08-29 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * doc/trouble.texi (C++ misunderstandings): Fix example code.
+
+2004-08-26 Richard Henderson <rth@redhat.com>
+
+ PR target/15718
+ * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
+ modes.
+
+2004-08-26 Matthias Klose <doko@debian.org>
+
+ * doc/invoke.texi: Remove duplicate -fbranch-probabilities entry.
+
+2004-08-14 Roger Sayle <roger@eyesopen.com>
+
+ * fixinc/tests/base/obstack.h: Backport from mainline.
+
+2004-08-14 Roger Sayle <roger@eyesopen.com>
+ David Billinghurst <David.Billinghurst@riotinto.com>
+
+ PR libgfortran/15930
+ * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
+ * fixinc/fixincl.x: Regenerate.
+ * fixinc/tests/base/internal/math_core.h: New file
+
+2004-08-08 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/16790
+ * fold-const.c (expand_muldiv_1) <NOP_EXPR>: Disallow local
+ truncations, not just global truncations.
+
+2004-08-02 Ulrich Weigand <uweigand@de.ibm.com>
+
+ Backport from mainline:
+ 2003-07-11 Jakub Jelinek <jakub@redhat.com>
+ * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists,
+ then fall back to cmpstrM.
+ * builtins.c (expand_builtin_memcmp): Likewise.
+ * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to...
+ (s390_expand_cmpmem): ... this.
+ * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64,
+ cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed
+ from cmpstr* patterns. Rename call to s390_expand_cmpstr
+ to s390_expand_cmpmem.
+ * config/s390/s390.c (s390_expand_cmpstr): Rename to...
+ (s390_expand_cmpstr): ... this. Rename cmpstr* instructions
+ to cmpmem*.
+ * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from
+ cmpstr* patterns.
+ * doc/md.texi (cmpstrM): Describe as String compare insn, not
+ Block compare insn.
+ (cmpmemM): Add.
+
+2004-07-25 Andreas Jaeger <aj@suse.de>
+
+ Backport from mainline:
+ * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
+
+2004-07-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/13250
+ Backport from mainline:
+ * config/sh/sh.md (rotlsi3): Use emit_move_insn.
+
+ PR target/15647
+ Backport from mainline:
+ * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
+ libgcc-std.ver.
+ * config/sh/libgcc-std.ver: New file.
+
+2004-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/15202
+ * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
+ register to general register for DI, SI, HI and QI modes. Remove
+ move to shift amount register in DF mode.
+
+ PR rtl-optimization/14782
+ * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
+ the address checks for secondary reloads for loads from and stores
+ to floating-point registers.
+ * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
+ in the address check. Move work around for ELF32 targets to
+ GO_IF_LEGITIMATE_ADDRESS.
+ (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
+ correctly aligned for DImode loads and stores. Don't allow long
+ SFmode displacements on ELF32.
+
+2004-07-25 Matthias Klose <doko@debian.org>
+
+ Backport:
+ PR rtl-optimization/14700
+
+ 2004-06-24 Eric Christopher <echristo@redhat.com>
+
+ * combine.c (distribute_notes): Don't delete sets to
+ global register variables.
+
+ 2004-06-29 Zack Weinberg <zack@codesourcery.com>
+
+ * combine.c (distribute_notes): Don't look at global_regs for
+ pseudos.
+
+2004-07-23 James E Wilson <wilson@specifixinc.com>
+
+ PR target/16559
+ * ia64.c (ia64_expand_load_address): For CONST, replace
+ gen_load_symptr call with recursive call.
+
+2004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+ 2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/13926
+ * config/sparc/sparc-protos.h (output_ubranch): New prototype.
+ * config/sparc/sparc.c (output_ubranch): New function.
+ * config/sparc/sparc.md (jump pattern): Use it.
+
+2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/16494
+ * config/sparc/sparc.c (output_cbranch): Properly guard
+ the code handling far branches with TARGET_V9.
+ * config/sparc/sparc.md (length attribute): Document the
+ side-effect of having a length greater or equal to 3.
+
+2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Lloyd Parkes <lloyd@must-have-coffee.gen.nz>
+
+ PR target/15186
+ * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
+ /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
+
+2004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Martin Sebor <sebor@roguewave.com>
+
+ PR target/12602
+ * doc/invoke.texi (SPARC options): Document -threads
+ and -pthreads on Solaris.
+
+2004-07-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
+ (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
+ (ASM_CPU_SPEC): Likewise
+ * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
+ (ASM_CPU_SPEC): Handle -mcpu=ultrasparc3.
+
+2004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (output_indirect_call): Only use %r2 as the link register in
+ indirect calls with the long PA 2.0 pc-relative branch.
+
+ PR target/16459
+ * pa.c (output_indirect_call): Use %r2 as the link register when
+ calling $$dyncall with a pc-relative branch.
+
+2004-07-07 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/ia64.md: Define new attribute "empty".
+ (prologue_use, nop_x, insn_group_barrier): Set it.
+
+ * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
+ skip over "empty" insns.
+
+2004-07-04 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
+
+2004-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
+ when generating PIC code.
+
+2004-06-28 Josef Zlomek <zlomekj@suse.cz>
+
+ PR c/15549
+ Backport from mainline
+ 2003-08-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11946
+ * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
+ NOP_EXPR) when necessary.
+
+2004-06-17 Ian Lance Taylor <ian@wasabisystems.com>
+
+ PR middle-end/16038
+ Backport from mainline:
+ Fri Apr 4 17:43:52 2003 Olivier Hainque <hainque@act-europe.fr>
+
+ * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
+ use of default attributes to agree MEM_ALIGN macro.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/15693
+ * config/sparc/sparc.c (compare_operand): New predicate.
+ * config/sparc/sparc.h (PREDICATE_CODES): Add it.
+ * config/sparc/sparc.md (cmpsi expander): Use it. If the first
+ operand is a ZERO_EXTRACT and the second operand is not zero,
+ force the former to a register.
+ (cmpdi expander): Likewise.
+
+2004-05-29 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/13653
+ * loop.c (loop_givs_rescan): When reducing a non-replaceable giv,
+ clear the RTX_UNCHANGING_P flag.
+
+2004-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR bootstrap/14671
+ * alias.c (init_alias_analysis): Allocate alias_invariant array with
+ ggc_alloc_cleared instead of xrealloc.
+ (end_alias_analysis): Don't free alias_invariant.
+
+2004-05-27 Richard Henderson <rth@redhat.com>
+
+ Backport from mainline:
+ 2004-01-19 Richard Henderson <rth@redhat.com>
+ * alpha.md (UNSPEC_NT_LDA): Renumber.
+ (UNSPEC_CVTLQ, cvtlq): New.
+ (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
+ (extendsidi2_fix): Remove.
+ (extendsidi2 splitter): Use cvtlq.
+ (extendsidi2 fp peepholes): Remove.
+ (cvtql): Use SFmode instead of SImode.
+ (fix_trunc?fsi): Update to match.
+ (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
+ (movsi): Rename from movsi_nofix, remove f alternatives.
+ (movsi_nt_vms): Similarly.
+ (movsi_fix, movsi_nt_vms_fix): Remove.
+
+2004-05-26 Hans-Peter Nilsson <hp@axis.com>
+
+ PR optimization/15296
+ * reorg.c (fill_simple_delay_slots): Use next_real_insn when
+ getting last consecutive label at a branch.
+ (relax_delay_slots): Similar, near top of loop.
+
+2004-05-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from mainline
+
+ PR target/15301
+ PR target/15302
+ 2004-05-17 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (construct_container): Do not produce BLKmode registers.
+ (classify_argument): Properly compute alignment of complex types.
+
+2004-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11841
+ * loop.h (REGNO_LAST_NOTE_LUID): New macro.
+ * unroll.c (unroll_loop): Take into account notes when deciding
+ whether a pseudo is local to the loop.
+
+2004-05-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
+ PR middle-end/15054
+ * expr.c (expand_expr_real): Do not call preserve_temp_slots
+ on a TARGET_EXPR temp.
+ * function.c (assign_stack_temp_for_type): Set 'keep' flag for
+ TARGET_EXPR temp slots.
+
+2004-05-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/15130
+ * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
+ * config/sh/sh.c (output_stack_adjust): Generate a special
+ push/pop sequence when failing to get a temporary register for
+ non SHmedia epilogue.
+ (sh_expand_epilogue): Add an argument to show whether it's for
+ sibcall or not. Take the sibcall epilogue into account.
+ (sh_need_epilogue): Call sh_expand_epilogue with 0.
+ * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
+ with 1.
+ (epilogue): Call sh_expand_epilogue with 0.
+
+2004-05-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alias.c (set_reg_known_value, set_reg_known_equiv_p):
+ Prototype.
+ (get_reg_known_value, set_reg_known_value,
+ get_reg_known_equiv_p, set_reg_known_equiv_p): Use traditional
+ style function definitions.
+ (set_reg_known_equiv_p): Change parameter from bool to int.
+
+ Backport:
+
+ 2003-06-13 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE.
+ * unwind-pe.h (size_of_encoded_value): Do not define if
+ NO_SIZE_OF_ENCODED_VALUE is defined.
+
+ 2003-10-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
+ appropriate.
+
+ 2003-05-07 Richard Henderson <rth@redhat.com>
+
+ * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
+ not _Unwind_Word.
+
+2004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
+ problems with earlier versions of the GNU compiler.
+
+2004-05-07 Steven Bosscher <stevenb@suse.de>
+
+ PR opt/14749
+ * expr.c (do_jump): If TREE_CONSTANT_OVERFLOW is set, don't
+ trust integer_zerop. Just expand both branches.
+
+2004-04-29 Matthias Klose <doko@debian.org>
+
+ Backport:
+
+ 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/14235
+ * expr.c (convert_move): Copy the source to a new pseudo
+ when converting from a sub-word source to a larger-than-word
+ register which conflicts with the source.
+
+2004-04-29 Jakub Jelinek <jakub@redhat.com>
+
+ * config/sparc/sparc.h (FLOATDITF2_LIBCALL, FIX_TRUNCTFDI2_LIBCALL,
+ FIXUNS_TRUNCTFDI2_LIBCALL): Define.
+ (INIT_TARGET_OPTABS): If DITF_CONVERSION_LIBFUNCS, initialize
+ DI <-> TF libfuncs for TARGET_ARCH32.
+ (DITF_CONVERSION_LIBFUNCS): Define to 0.
+ * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+ * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+ * config.gcc (sparc-*-linux*): Revert 2004-03-25 change.
+ * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
+ * config/sparc/t-linux: Removed.
+
+2004-04-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/15084
+ * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
+ and renamed to movdi_insv_1_rex64.
+ (insv): Support SImode for 32bit and DImode for 64bit.
+
+2004-04-24 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/14671
+ * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
+ (reg_known_value, reg_known_value_size): Likewise; make static.
+ (reg_known_equiv_p): Make static.
+ (clear_reg_alias_info): Update for new indexing.
+ (get_reg_known_value, set_reg_known_value): New.
+ (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
+ (canon_rtx): Use them.
+ (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
+ Don't play queer offsetting games with reg_known_value and
+ reg_known_equiv_p.
+ (end_alias_analysis): Don't free reg_known_value.
+ * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
+ * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
+ (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
+ functions instead.
+
+2004-04-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
+
+ * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
+ SAR register. Fix comment.
+ (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
+ (%cr11).
+
+2004-04-14 Zack Weinberg <zack@codesourcery.com>
+
+ PR 14936
+ Backport from mainline:
+ 2004-03-12 Matt Austern <austern@apple.com>
+
+ * varasm.c (make_decl_one_only): Don't use DECL_COMMON if
+ we're compiling for a SUPPORTS_ONE_ONLY target.
+
+2004-04-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR debug/14919
+
+ From gcc-3_2-rhl8-branch:
+ 2003-02-04 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir attribute
+ even if input file name is absolute, but one of the includes
+ is relative.
+
+2004-04-06 Devang Patel <dpatel@apple.com>
+
+ PR 14467
+ * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
+
+2004-03-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * expr.c (store_constructor): Use gen_int_mode to correctly
+ sign-extend CONST_INT value.
+
+2004-04-01 Alan Modra <amodra@bigpond.net.au>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
+ -lgcc --as-needed -lgcc_s --no-as-needed by default.
+ * configure.in (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
+ * configure: Rebuilt.
+ * config.in: Rebuilt.
+ * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
+ (stage2-start, stage3-start, stage4-start): Likewise.
+ (stageprofile-start, stagefeedback-start): Likewise.
+
+2004-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/14755
+ * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
+ "bitfld++ == const" to "++bitfld == const + incr" transformations.
+
+2004-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/14069
+ * c-decl.c (finish_struct): Change type of incorrect flexible array
+ field into error_mark_node.
+
+ Backport from mainline:
+ 2003-04-07 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * c-typeck.c (output_init_element): Check for type == error_mark_node.
+
+2004-04-01 Alan Modra <amodra@bigpond.net.au>
+
+ * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
+
+2004-03-30 Matthias Klose <doko@debian.org>
+
+ Backport:
+
+ 2004-01-14 Richard Earnshaw <rearnsha@arm.com>
+
+ PR bootstrap/12527
+ * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
+ Move linux-gas.h and linux-elf.h before aout.h.
+ * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
+ * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
+
+ 2003-05-15 Philip Blundell <philb@gnu.org>
+
+ * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
+ All uses updated.
+ (arm_tune_xscale): New variable.
+ (arm_override_options): Set it.
+ (arm_adjust_cost): Use it in place of arm_arch_xscale.
+ (arm_gen_load_multiple): Likewise.
+ (arm_gen_store_multiple): Likewise.
+ * config/arm/arm.md (is_xscale): Likewise.
+ * config/arm/arm.h (arm_tune_xscale): Declare.
+
+ 2003-04-28 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
+
+2004-03-29 Matthias Klose <doko@debian.org>
+
+ 2003-09-17 Daniel Jacobowitz <drow@mvista.com>
+
+ * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc.
+
+2004-03-29 Matthias Klose <doko@debian.org>
+
+ Backport:
+ 2004-01-15 Andreas Schwab <schwab@suse.de>
+
+ PR bootstrap/13562
+ * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
+ status for NOTB/NOTW/NEGW methods.
+
+2004-03-29 Aldy Hernandez <aldyh@redhat.com>
+
+ PR 14219
+ * c-typeck.c (build_binary_op): Do not allow comparisons of
+ vectors.
+
+2004-03-27 Matthias Klose <doko@debian.org>
+
+ PR target/11716
+ Michael Eager <eager@mvista.com>
+
+ * config/mips/mips.md: Limit the maximum length of a short branch to
+ 64K instead of 128K.
+
+2004-03-26 Richard Henderson <rth@redhat.com>
+
+ PR 11527
+ * c-typeck.c (pop_init_level): Emit pending init elements earlier
+ rather than later.
+
+2004-03-26 Jan Hubicka <jh@suse.cz>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ PR Target/14723
+ * config.gcc: Add support --with-cpu=nocona.
+
+ * config/i386/i386.c (override_options): Add support for
+ Prescott and Nocona.
+
+ * doc/invoke.texi: Extend documentation of -mcpu/-march for new
+ CPUs.
+
+2004-03-25 Jakub Jelinek <jakub@redhat.com>
+
+ * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
+ * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
+ * config/sparc/t-linux: New file.
+
+2004-03-24 Kelley Cook <kcook@gcc.gnu.org>
+
+ Backport:
+ 2004-03-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR bootstrap/14356
+ * gcc.c (process_command): Remove const-qualification from argv.
+ (main): Likewise.
+
+2004-03-24 Alexandre Oliva <aoliva@redhat.com>
+
+ PR preprocessor/14438
+ * cpplib.c (do_pragma): Remove line_change call after pragma
+ handler.
+
+2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
+
+ BackPort:
+ 2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR debug/11231
+ * dbxout.c (dbxout_type_fields): Return if any item is error_mark_node or the
+ type is error_mark_node.
+
+2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/14470
+ * expr.c (mark_queue): New function.
+ (emit_insns_enqueued_after_mark): New function replacing
+ emit_queue. Clear the body of emitted queued insns.
+ (emit_queue): Call emit_insns_enqueued_after_mark.
+ (store_expr): Mark the increment queue on entry. Emit
+ only the incrementations queued when expanding the source.
+
+2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ PR target/14260
+ * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
+
+2004-03-21 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
+ "foo++ == const" into "++foo == const+incr".
+
+2004-03-21 Roger Sayle <roger@eyesopen.com>
+
+ PR target/13889
+ * cse.c (fold_rtx): Avoid substituting constants into unary
+ conversion operations.
+
+2004-03-17 Ian Lance Taylor <ian@wasabisystems.com>
+
+ Backport:
+ 2003-11-08 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
+ expressions as lvalues.
+ * doc/extend.texi: Document that all extended lvalues are now
+ deprecated.
+
+ 2003-11-05 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
+ conditional expressions as lvalues.
+
+ 2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
+ deprecation of casts as lvalues.
+ * fixinc/inclhack.def (obstack_lvalue_cast): New fix.
+ * fixinc/fixincl.x: Regenerate.
+
+2004-03-15 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/14535
+ * except.c (collect_one_action_chain): Record action for cleanup
+ outer of exception spec.
+
+2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
+
+ * doc/install.texi: Note status of -fnew-ra.
+
+2004-03-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/14533
+ * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
+ other than 100.
+
+2004-03-13 Alan Modra <amodra@bigpond.net.au>
+
+ PR debug/11983
+ * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
+ dw_val_class_vec. Replace use throughout file.
+ (dw_float_const): Delete.
+ (dw_vec_const): New.
+ (dw_val_struct_union): Rename val_float to val_vec. Replace use
+ throughout file.
+ (add_AT_vec): Rename from add_AT_float. Add elt_size param.
+ (same_dw_val_p): Adjust vec comparison. Use memcmp.
+ (size_of_die): Adjust dw_val_class_vec sizing.
+ (output_die): Output dw_val_class_vec.
+ (insert_int, extract_int, insert_float): New functions.
+ (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
+ Handle CONST_VECTOR.
+ (add_location_or_const_value_attribute): Handle CONST_VECTOR.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+ PR middle-end/14470
+ * expr.c (store_expr): Call emit_queue before generating the move
+ from the temporary to the original target. Protect the temporary
+ from emit_queue.
+
+2004-03-10 James E Wilson <wilson@specifixinc.com>
+
+ PR target/13877
+ * unroll.c (unroll_loop): If precondition loop, clear the initial_value
+ field in loop_info.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
+ PR driver/13577
+ * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
+ options.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Endorse:
+ 2004-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+ PR optimization/13472
+ * reload1.c (reload): Don't record unchanging memory locations.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport
+ 2004-02-27 Mark Mitchell <mark@codesourcery.com>
+ PR middle-end/13448
+ * c-tree.h (readonly_warning): Rename to ...
+ (readonly_error): ... this.
+ * c-typeck.c (build_unary_op): Adjust accordingly.
+ (readonly_warning): Rename to ...
+ (readonly_error): ... this and issue errors, not warnings.
+ (build_modify_expr): Call readonly_error, not readonly_warning.
+ (c_expand_asm_operands): Likewise.
+ * tree-inline.c (optimize_inline_calls): Do not inline
+ functions after errors have occurred.
+
+2004-03-12 Philip Blundell <philb@gnu.org>
+
+ PR target/10730
+ Backport from trunk:
+ 2003-05-15 Philip Blundell <philb@gnu.org>
+ * config/arm/arm.c (adjacent_mem_locations): Reject offsets
+ involving invalid constants.
+
+2004-03-12 Philip Blundell <philb@gnu.org>
+
+ PR target/14558
+ Backport from trunk:
+ 2004-02-25 Richard Earnshaw <rearnsha@arm.com>
+ * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): For QImode the range of
+ an offset is -4095...+4095 inclusive.
+
+2004-03-11 Richard Henderson <rth@redhat.com>
+
+ PR target/14539
+ * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
+
+2004-03-10 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/14289
+ * c-typeck.c (c_mark_addressable): A register variable should
+ be considered global if its not automatic, i.e. TREE_PUBLIC,
+ TREE_STATIC or DECL_EXTERNAL.
+ * function.c (put_var_into_stack): Call abort when placing a
+ hard register into the stack, if x_parm_reg_stack_loc is NULL.
+
+2004-03-10 Andrew Haley <aph@redhat.com>
+
+ PR optimization/14381
+ * function.c (expand_function_end): Emit a blockage insn before
+ the epilogue when -fnon-call-exceptions is used.
+
+2004-03-10 Joel Sherrill <joel@oarcorp.com>
+
+ PR target/14480
+ * config.gcc (powerpc*-*-rtems*): Use rs6000/t-rtems.
+
+2004-03-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
+ for little endian.
+ ("ashrdi3_no_power"): Disable for little endian.
+ (ashrdi3): Same.
+
+2004-03-07 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
+ (TARGET_LONG_DOUBLE_128): New.
+ (TARGET_SWITCHES): Add long-double-{128,64}.
+ (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
+ (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
+ (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
+ (WIDEST_HARDWARE_FP_SIZE): New.
+ (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
+ * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
+ if TARGET_VAX_FLOAT.
+ * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
+ (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
+
+2004-03-08 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14471
+ * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
+ and -mno-mul-bug-workaround.
+ * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
+ ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
+ ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
+ Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
+ * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
+ sure mulu.d is not last on cache-line.
+ * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
+ into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
+ (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
+ (TARGET_SWITCHES): New options -mmul-bug-workaround and
+ -mno-mul-bug-workaround.
+ (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
+ (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
+ * config/cris/cris.c (cris_operand_extend_operator): Clarify
+ relation to MULT in head comment.
+ (cris_op_str): Abort for MULT.
+ (cris_print_operand) <case '!'>: New case.
+
+2004-03-06 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
+
+2004-03-05 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("load_multiple", "*load_multiple_di",
+ "*load_multiple_si"): Allow only if reload_completed.
+ ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
+ Likewise.
+
+2004-03-05 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_expand_movstr): Clobber double-word
+ register before initializing high and low parts separately.
+ (s390_expand_clrstr): Likewise.
+ (s390_expand_cmpstr): Likewise.
+
+2004-03-05 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR optimization/12147
+ * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
+ RELOAD_FOR_OPADDR_ADDR.
+ (reload_reg_reaches_end_p): A RELOAD_FOR_OTHER_ADDRESS register
+ might be reused as RELOAD_FOR_OPADDR_ADDR register.
+
+2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
+
+ PR target/1532
+ Backport from mainline:
+
+ 2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
+
+ * cse.c (cse_change_cc_mode_insns): Stop at any instruction
+ which modifies NEWREG.
+ (cse_condition_code_reg): Update the mode of CC_REG in
+ CC_SRC_INSN on our own.
+
+ 2004-02-11 Richard Henderson <rth@redhat.com>
+
+ * flow.c (insn_dead_p): A clobber of a dead hard register is a
+ dead insn after reload.
+
+ 2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * cse.c (cse_cc_succs): Change the mode of the source expression
+ as soon as decide we need a new mode. Don't permit changing modes
+ if we found a match in a successor block.
+ (cse_condition_code_reg): Save original mode of source expression
+ so that we know whether we have to change the mode in other
+ insns.
+
+ 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * cse.c: (cse_cc_succs) Fix comparison warning.
+
+ 2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * cse.c: Include "target.h".
+ (cse_change_cc_mode): New static function.
+ (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
+ (cse_condition_code_reg): New function.
+ (default_cc_modes_compatible): New function.
+ * rtl.h (cse_condition_code_reg): Declare.
+ (default_cc_modes_compatible): Declare.
+ * toplev.c (rest_of_compilation): Call cse_condition_code_reg.
+ * target.h (struct gcc_target): Add fixed_condition_code_regs and
+ cc_modes_compatible.
+ * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
+ (TARGET_CC_MODES_COMPATIBLE): Define.
+ (TARGET_INITIALIZER): Add new initializers.
+ * targhooks.c (default_cc_modes_compatible): Declare.
+ * hooks.c (hook_bool_intp_intp_false): New function.
+ * hooks.h (hook_bool_intp_intp_false): Declare.
+ * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
+ (TARGET_CC_MODES_COMPATIBLE): Define.
+ (ix86_fixed_condition_code_regs): New static function.
+ (ix86_cc_modes_compatible): Likewise.
+ * doc/gccint.texi: Add copyright 2004.
+ * doc/tm.texi (Condition Code): Document new hooks.
+ * Makefile.in (cse.o): Depend upon $(TARGET_H).
+
+ PR inline-asm/6162
+ * reload.c (find_reloads): Only support one pair of commutative
+ operands.
+
+2004-03-02 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/11767
+ * optabs.c (prepare_cmp_insn): Force trapping memories to registers
+ before the compare, if flag_non_call_exceptions.
+
+2004-03-02 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/14327
+ * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
+ emitting the label, not after.
+
+2004-03-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * cppinit.c (init_standard_includes): Check that sysroot
+ string is not empty.
+
+2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from 3.4.0:
+ 2004-02-29 Mark Mitchell <mark@codesourcery.com>
+ PR debug/14328
+ * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
+ constants as signed values.
+
+ 2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
+ PR optimization/11864
+ * reload1.c (reload_cse_simplify_operands): Don't remove
+ implicit extension from LOAD_EXTEND_OP.
+
+2004-02-29 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14346
+ * config/cris/cris.c (cris_asm_output_mi_thunk): For PIC, prepend
+ TAB to jumping "add.d" insn. Avoid PLT indirection by equating a
+ local symbol and jumping through it.
+
+2004-02-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline:
+ 2004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+ PR target/10904
+ PR target/13058
+ * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
+ Forbid mode changes from SImode for lower FP regs if ARCH64.
+
+2004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, TRAMPOLINE_CODE_SIZE,
+ MIN_CACHELINE_SIZE, INITIALIZE_TRAMPOLINE): Backport fixes from 3.5.
+ * pa.md (anddi3, dcacheflush, icacheflush): Likewise.
+
+ * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
+
+2004-02-27 Ian Lance Taylor <ian@wasabisystems.com>
+
+ PR optimization/7871
+ * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
+ from or to call insns.
+
+2004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/7871
+ * flow.c (propagate_one_insn): Interpret calls as setting global
+ registers, not merely clobbering them.
+
+2004-02-26 Richard Earnshaw <rearnsha@arm.com>
+ Daniel Jacobowitz <drow@mvista.com>
+
+ PR target/14302
+ * arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS): Don't check the mode
+ size for minipool references.
+
+2004-02-25 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/14166
+ * arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Only allow constant pool
+ references from SImode.
+ * arm.md (thumb_movhi_insn): Don't allow minipool references.
+
+2004-02-24 Bob Wilson <bob.wilson@acm.org>
+
+ Backport from mainline (changes to xtensa_expand_prologue go into
+ xtensa_reorg instead; remove irrelevant portions of the patch)
+
+ 2004-02-09 Bob Wilson <bob.wilson@acm.org>:
+
+ * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
+ (init_cumulative_args): Likewise.
+ (a7_overlap_mentioned_p): Delete prototype.
+ * config/xtensa/xtensa.c (struct machine_function): Replace
+ incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
+ Add set_frame_ptr_insn field.
+ (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
+ (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
+ if the operand is an argument in a7. If so, copy a7 to a new pseudo
+ at the function entry and replace the operand with the pseudo.
+ (init_cumulative_args): Remove unused arguments. Add new "incoming"
+ argument and record this flag in CUMULATIVE_ARGS.
+ (function_arg): Remove result_mode and special-case code to handle
+ arguments in a7. Instead, set need_a7_copy flag when there is an
+ incoming argument in a7.
+ (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
+ and use the value recorded in cfun->machine->set_frame_ptr_insn.
+ (xtensa_builtin_saveregs): Check for negative gp_left value. Set
+ need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
+ special-case code.
+ (a7_overlap_mentioned_p): Delete.
+ * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
+ (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
+ arguments to init_cumulative_args and pass "incoming" flag instead.
+ (BLOCK_REG_PADDING): Delete.
+ * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
+ checks for reload_in_progress and reload_completed. Update calls to
+ xtensa_copy_incoming_a7.
+ (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
+ to call xtensa_copy_incoming_a7.
+
+2004-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
+ by default.
+
+2004-02-22 James E Wilson <wilson@specifixinc.com>
+
+ PR target/13918
+ * sched-ebb.c (ebb_sched_info): Disable use of cselib.
+
+2004-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14209
+ * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
+ constraints to not match postincrement. Adjust the predicate to
+ exclude a volatile memory reference.
+ ("*andsi_clear"): Tweak constraints to not match postincrement.
+ Adjust the predicate to exclude a volatile memory reference.
+ ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed".
+ ("*andhi_clear_unsigned"): Remove, non-matching pattern.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-02-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/14113
+ Backport from mainline:
+
+ 2004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.md (call followed by jump define_peephole's):
+ Delete.
+
+2004-02-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * doc/invoke.texi: Mention SSE2 and SSE3.
+
+ * config/i386/i386.h: Deprecate -mpni/-mno-pni.
+
+2004-02-06 Kelley Cook <kcook@gcc.gnu.org>
+
+ * config/i386/i386.c: Rename pni to sse3.
+ * config/i386/i386.h: Likewise.
+ * config/i386/i386.md: Likewise.
+ * config/i386/pmmintrin.h: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+
+2004-02-03 Wolfgang Bangerth <bangerth@dealii.org>
+
+ PR other/14003
+ * doc/invoke.texi (x86 options): Fix spelling/wording.
+
+2004-02-01 Geoffrey Keating <geoffk@apple.com>
+
+ PR bootstrap/13960
+ * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Accept
+ lo_sum addresses on Darwin.
+
+2004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c: Update copyright.
+ * config/sparc/sparc.h: Likewise.
+ * config/sparc/sparc.md: Likewise.
+
+2004-01-29 Roger Sayle <roger@eyesopen.com>
+
+ PR java/13824
+ * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
+ as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
+ recursion.
+
+2004-01-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ * doc/invoke.texi: Remove the pni option from -mfpmath=.
+
+2004-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+
+ 2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR optimization/12440
+ * loop.c: Include ggc.h.
+ (loop_optimize): Run garbage collector between optimization of loops.
+ * Makefile.in (loop.o): Add GGC_H dependency.
+
+2004-01-24 Matthias Klose <doko@debian.org>
+
+ * objc/objc-act.c (is_public): Fix typo in message.
+
+2004-01-23 Richard Henderson <rth@redhat.com>
+
+ PR opt/12941
+ * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
+ (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
+ if SHIFT_COUNT_TRUNCATED is set.
+
+2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * doc/invoke.texi (Optimize Options): Note that --param arguments
+ are subject to change without notice.
+
+2004-01-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * reload.c (can_reload_into): Add prototype and K&R style function
+ declaration.
+
+2004-01-21 Andreas Jaeger <aj@suse.de>
+ Michael Matz <matz@suse.de>
+
+ * doc/extend.texi (Extended Asm): Clarify memory clobber.
+
+2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ PR target/13073
+ * config/h8300/t-rtems (h8300-*-rtems*): New.
+ * config.gcc: Use config/h8300/t-rtems.
+
+2004-01-20 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+
+ 2004-01-10 Jan Hubicka <jh@suse.cz>
+ PR opt/12826
+ * loop.c (insert_loop_mem): Prefer VOLATILE memory references to be
+ stored.
+
+2004-01-16 Jan Hubicka <jh@suse.cz>
+
+ PR opt/13608
+ * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
+
+2004-01-16 Segher Boessenkool <boessen@de.ibm.com>
+
+ PR target/11793
+ * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle
+ vectors.
+
+2004-01-16 Jan Hubicka <jh@suse.cz>
+
+ PR opt/11350
+ * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
+ after reload.
+ * cfgrtl.c (try_redirect_by_replacing_branch): Likewise.
+
+2004-01-15 J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR optimization/10392
+ * reload.c (can_reload_into): New function.
+ (push_reload): Use it.
+
+2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR target/9365
+ * sh.c (gen_block_redirect): Add special handling of RETURN.
+ (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
+ far branch target (i.e. it's a return).
+
+2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
+
+ * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
+ Calculate always vrsave_mask if TARGET_ALTIVEC.
+ (rs6000_emit_prologue): Emit code for vrsave
+ only if TARGET_ALTIVEC_VRSAVE.
+ (rs6000_emit_epilogue): Likewise.
+
+2003-01-14 Nicola Pero <n.pero@mi.flashnet.it>
+
+ PR objc/7993
+ * objc-act.c (is_private): Do not emit the 'instance variable %s
+ is declared private' error.
+ (is_public): Emit the error after calling is_private.
+ (lookup_objc_ivar): If the instance variable is private, return 0
+ - the instance variable is invisible here.
+
+2004-01-12 Marc Espie <espie@openbsd.org>
+
+ * system.h: handle YYBYACC like YYBISON.
+
+2004-01-12 Matthias Klose <doko@debian.org>
+
+ Backport from mainline
+
+ 2003-12-08 Stuart Hastings <stuart@apple.com>
+ * config/i386/i386.md: Typo in split of fp-valued if_then_else.
+
+2004-01-12 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/11397
+ * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
+
+2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR target/13585
+ * sh-protos.h (check_use_sfunc_addr): Declare.
+ * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
+ * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
+
+2004-01-12 Matthias Klose <doko@debian.org>
+
+ Backport from mainline
+
+ 2004-01-11 Richard Henderson <rth@redhat.com>
+ PR opt/12441
+ Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
+ * i386.c (aligned_operand): Be prepared for SUBREGed registers.
+ (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
+ (ix86_address_cost): Be prepared for SUBREGed registers.
+ (legitimate_address_p): Accept SUBREGed registers.
+
+2004-01-11 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_encode_section_info): Use 'I'
+ for TLS_MODEL_INITIAL_EXEC.
+ (tls_symbolic_operand_1): Update to match.
+ (tls_symbolic_operand_type): Likewise.
+
+2004-01-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/13392
+ * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
+ to drop through label. Don't fall back to SCC even when conditional
+ jump has not been found.
+
+2004-01-09 Jeff Bailey <jbailey@nisa.net>
+
+ PR target/12561
+ * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
+
+2004-01-09 Richard Henderson <rth@redhat.com>
+
+ * recog.c (constrain_operands): Validate mem operands.
+
+2004-01-02 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ PR target/13069
+ Backport the following from mainline:
+
+ 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
+ * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
+ CPP_PREDEFINES.
+ * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
+ CPP_PREDEFINES.
+
+ 2003-09-27 Kelley Cook <kcook@gcc.gnu.org>
+ * config/sh/rtemself.h, config/sh/rtems.h: GNU CC -> GCC.
+
+2004-01-02 Roger Sayle <roger@eyesopen.com>
+
+ * tree.h (integer_nonzerop): Use PARAMS macro with prototype.
+ * tree.c (integer_nonzerop): Use K&R style function declaration.
+
+2004-01-02 Andreas Schwab <schwab@suse.de>
+
+ * doc/c-tree.texi: Fix @item vs. @itemx.
+ * doc/cpp.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+
+2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
+
+ * doc/install.texi (Specific): Mention x86_64.
+
+2004-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR optimization/13521
+ Backport from mainline:
+ 2003-03-22 Richard Henderson <rth@redhat.com>
+
+ * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
+ after reload.
+
+2003-12-31 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/12632
+ * tree.c (integer_nonzerop): New predicate for nonzero integers.
+ * tree.h (integer_nonzerop): Add function prototype.
+ * fold-const.c (fold) <COND_EXPR>: Don't fold a constant condition,
+ if we'd replace a COND_EXPR of non-void type by one of its operands
+ of void type.
+
+2003-12-31 Kazu Hirata <kazu@cs.umass.edu>
+
+ Backport from mainline:
+
+ 2003-09-12 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/13373
+ * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
+ (mcore_secondary_reload_class): Declare.
+ (mcore_output_inline_const_forced): Remove.
+ * config/mcore/mcore.md (movsi): Remove the code that forced
+ non-inlineable constants into a register if the target was r15
+ or the stack pointer. Remove constant restrictions from the main
+ define_insn. Remove r <- I, r <- M and r <- N alternatives in favor
+ of an r <- P alternative. Remove fallback define_insn for reload.
+ (movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload
+ define_insn. Use mcore_output_move in the remaining define_insn.
+ Adjust condition and constraints in the way as for movsi.
+ (movdi): Always split unacceptable constants into two. Use
+ simplify_gen_subreg instead of operand_subword{,_force}.
+ * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
+ (mcore_output_move): Support HImode and QImode moves as well.
+ (mcore_m15_operand_p): New function.
+ (mcore_reload_class): Use it to detect cases where LRW_REGS are better.
+ (mcore_secondary_reload_class): New function.
+ * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
+ terms of mcore_secondary_reload_class.
+
+2003-12-31 Zack Weinberg <zack@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_va_arg): Pass pointer for
+ variable-sized type through convert_memory_address.
+ (ia64_in_small_data_p): Always return false for FUNCTION_DECLs.
+
+2003-12-24 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR bootstrap/13068
+ Backport from mainline:
+ 2003-05-09 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * mklibgcc.in: Remove extra quotes.
+ 2003-05-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * mklibgcc.in: Use mkinstalldirs when installing multilib
+ directories.
+
+2003-12-24 Roger Sayle <roger@eyesopen.com>
+
+ Backport from mainline:
+
+ 2003-09-18 Mark Mitchell <mark@codesourcery.com>
+ * explow.c (convert_memory_address): Define even when
+ POINTERS_EXTEND_UNSIGNED is not defined. Do nothing if the address
+ is already in the right mode.
+
+2003-12-23 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/13475
+ Backport from mainline:
+ 2003-06-19 Aldy Hernandez <aldyh@redhat.com>
+
+ * expr.c (const_vector_from_tree): Initialize remaining
+ elements to 0.
+
+2003-12-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR target/11576
+ * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
+ HIGH on all variants.
+
+2003-12-23 Matthias Klose <doko@debian.org>
+
+ * config/mips/linux.h (LIB_SPEC): Use -lpthread when
+ -pthread was specified.
+
+2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/13394
+ * toplev.c (rest_of_compilation): Move call to
+ check_function_return_warnings right after the sibcall
+ optimization pass.
+
+2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/13382
+ * c-typeck.c (convert_for_assignment): When converting from
+ integral type to pointer type, always call convert.
+
+2003-12-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR target/11271
+ * reload.c: Revert last backport from mainline. It breaks s390.
+
+2003-12-21 Roger Sayle <roger@eyesopen.com>
+
+ * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32
+ when compiling in ILP32 mode.
+
+2003-12-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline:
+ 2003-10-31 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/11271
+ * reload.c (find_reloads_address): Handle any register in
+ (PLUS (PLUS (REG) (REG)) (CONST_INT).
+
+2003-12-21 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/13400
+ * ifcvt.c (noce_process_if_block): Disable unconditional write
+ optimizations if we could introduce a store to trapping memory
+ that wasn't present previously.
+
+2003-12-20 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/13031
+ * gcse.c (cprop_jump): Backport code clean-up and bug-fix
+ from mainline [2003-05-20 Sayle, Hirata and Rennecke patch].
+ (cprop_insn): Don't attemp further substitutions if the
+ current instruction has been deleted.
+ (local_cprop_pass): Likewise.
+
+2003-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/13239
+ * builtins.c (expand_builtin_expect_jump): Update
+ TREE_VALUE (arglist) if unsave_expr_now langhook
+ created a new tree.
+
+2003-12-18 Mark Mitchell <mark@codesourcery.com>
+
+ * config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ...
+ (LINK_ARCH32_SPEC_BASE): ... this new macro.
+ * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of
+ ...
+ (LINK_ARCH64_SPEC_BASE): ... this new macro.
+ * config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro.
+ (LINK_ARCH64_SPEC): Likewise.
+
+2003-12-17 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/11992
+ * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction
+ instead of CLCL.
+ ("*cmpmem_long_31"): Likewise.
+
+2003-12-16 Zack Weinberg <zack@codesourcery.com>
+
+ Backport the following patches from mainline.
+
+ 2003-12-05 Mark Mitchell <mark@codesourcery.com>
+
+ * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define.
+
+ 2003-12-01 James E Wilson <wilson@specifixinc.com>
+
+ * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not
+ GR_ARG_FIRST.
+
+ 2003-10-21 Zack Weinberg <zack@codesourcery.com>
+
+ * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode.
+ * config/ia64/ia64.c (ia64_expand_fetch_and_op,
+ ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is
+ DImode. Use convert_move to load ar.ccv.
+ (ia64_expand_compare_and_swap): Likewise.
+ If expand_expr doesn't put 'old' and 'new' in the proper
+ modes, run them through convert_to_mode.
+
+ 2003-10-14 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_expand_call): Force function address
+ to DImode.
+ * config/ia64/ia64.md (call_gp): Put DImode on operand 0.
+
+ 2003-06-11 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.md (call_gp): Fix memory mode.
+
+ 2003-05-14 Eric Christopher <echristo@redhat.com>
+
+ * combine.c: Fix header comments.
+ (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate
+ to all calls and prototype.
+
+2003-12-16 David O'Brien <obrien@FreeBSD.org>
+
+ * config/alpha/freebsd.h (FBSD_TARGET_CPU_CPP_BUILTINS): Add __LP64__.
+ * config/sparc/freebsd.h (FBSD_TARGET_CPU_CPP_BUILTINS): Likewise.
+ * config/i386/freebsd64.h (FBSD_TARGET_CPU_CPP_BUILTINS): Conditionally
+ add __LP64__.
+
+2003-12-16 Hartmut Penner <hpenner@de.ibm.com>
+
+ * altivec.h (vec_cmple, vec_all_numeric): Fix typo.
+ * testsuite/gcc.dg/altivec-10.c: Test for above.
+
+2003-12-15 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR target/13122
+ * config/h8300/h8300.md (pushqi1_h8300hs_normal): New.
+ (pushqi1): Call gen_pushqi1_h8300hs_normal in normal mode.
+ (pushhi1_h8300hs_normal): New.
+ (pushhi1): Call gen_pushqi1_h8300hs_normal in normal mode.
+
+ * config/h8300/h8300.h (LINK_SPEC): Support normal mode.
+ * config/h8300/h8300.c (asm_file_start): Correctly output
+ an architecture directive.
+ * config/h8300/lib1funcs.asm: Correctly specify an
+ architecture directive.
+
+2003-12-12 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/13037
+ * loop.c (update_giv_derive): Ignore redundant sets of a biv when
+ calculating how to derive a giv from a biv.
+
+2003-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K.
+ (MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and
+ br_loc[7]. Update comment.
+ (MD_HANDLE_UNWABI): Define.
+ * config/ia64/unwind-ia64.c (struct unw_state_record): Add
+ unwabi field.
+ (struct _Unwind_Context): Increase br_loc array size to 8 entries.
+ (desc_abi): Set unwabi.
+ (uw_update_reg_address): Allow br up to 7.
+ (uw_update_context): Invoke MD_HANDLE_UNWABI if defined.
+ (uw_install_context): Load b1..b5 from correct locations.
+ Fix insn loading ar.fpsr.
+ * doc/tm.texi: Document MD_HANDLE_UNWABI.
+
+2003-12-12 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/13256
+ Backport from mainline:
+ * resource.h (enum mark_resource_type): Remove member MARK_DEST.
+ The only user changed as follows:
+ * resource.c (mark_set_resources) <case SET>: Always recurse for
+ SET_SRC (x).
+ <case SIGN_EXTRACT, case ZERO_EXTRACT>: Always recurse on
+ operands.
+ <case STRICT_LOW_PART>: Delete, deferring to default code.
+
+ PR target/12598
+ Backport from mainline:
+ * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1)
+ (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12):
+ Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM.
+ ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20)
+ (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27)
+ (define_split "*mov_sidesi_mem"+28, +29, +30): Use
+ replace_equiv_address, not gen_rtx_MEM.
+ * config/cris/cris.c (cris_mem_op): New match_operator function.
+ (cris_notice_update_cc): Use replace_equiv_address, not
+ gen_rtx_MEM.
+ * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op.
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/13318
+ * loop.c (express_from): Protect integer division from overflow.
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/13060
+ * function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a
+ replacement already exists. Fix again the whole insn if that fails.
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12965
+ * caller-save.c (save_call_clobbered_regs): Do not save/restore
+ registers around no-return calls.
+
+2003-12-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * emit-rtl.c (copy_rtx_if_shared_1): Fix warning.
+
+2003-12-10 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ Backport from mainline (fixes unreported regression):
+ * cpptrad.c (_cpp_scan_out_logical_line): Improve test for
+ whether directive begins at the beginning of a line.
+
+2003-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/13354
+ * config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA
+ manually if one can do that with only one instruction.
+
+2003-12-09 Kelley Cook <kelleycook@wideopenwest.com>
+
+ 2003-06-04 Kelley Cook <kelleycook@wideopenwest.com>
+ PR optimization/4490
+ * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
+
+2003-12-08 David Edelsohn <edelsohn@gnu.org>
+ Graham Reed <greed@pobox.com>
+
+ PR target/13150
+ * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT.
+ (GCC_UNDEF_SYMBOL): Same.
+
+2003-12-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/10060
+ * emit-rtl.c (copy_rtx_if_shared): Split out into ...
+ (copy_rtx_if_shared_1): here and optimize the last one
+ in the sequence into tail-recursion.
+ (reset_used_flags): Optimize the last one
+ in the sequence into tail-recursion.
+
+2003-12-07 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't
+ set SECTION_WRITE on TARGET_RELOCATABLE.
+
+2003-12-05 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR driver/13211
+ * gcc.c (execute) Increment execution_count when returning
+ early because verbose_only_flag is true.
+
+2003-12-05 Stuart Menefy <stuart.menefy@st.com>
+ J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR target/13302
+ * sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type).
+
+2003-12-04 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/11322
+ * config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define.
+
+ PR target/12467
+ * config/rs6000/altivec.md (altivec_vmsummbm): Fix typo.
+
+2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (stmp-fixinc): Don't bail out if SYSTEM_HEADER_DIR
+ does not exist and it's the default sys-include directory.
+
+2003-12-03 Mark Mitchell <mark@codesourcery.com>
+
+ * config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false.
+ * config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if
+ HAVE_AS_TLS is true.
+ * config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it.
+
+2003-12-03 James E Wilson <wilson@specifixinc.com>
+
+ 2003-11-29 James E Wilson <wilson@specifixinc.com>
+ * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
+ instead of in shared_name.
+
+2003-12-03 David Mosberger <davidm@hpl.hp.com>
+
+ 2003-11-20 David Mosberger <davidm@hpl.hp.com>
+ * config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
+ (SHLIB_LC): Define.
+ * unwind-libunwind.c (_Unwind_GetCFA): Implement.
+ (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
+
+2003-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ * expr.c (store_constructor): Only set RTX_UNCHANGING_P for
+ read-only field if cleared is 0.
+
+2003-12-03 Kean Johnston <jkj@sco.com>
+
+ PR 12969
+ * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Revert the
+ change I made on 2003-08-11 that removes the mach lines.
+ Restore them to the same list thats in the head, as per
+ Nathanael Nerode's changes.
+ * fixinc/fixincl.x: Regenerated
+ * fixinc/tests/base/ansi/string.h: Fix test case
+
+2003-12-03 James E Wilson <wilson@specifixinc.com>
+
+ 2003-12-01 James E Wilson <wilson@specifixinc.com>
+ PR target/8407
+ * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call
+ gen_rtx_REG to create new reg with argument mode.
+
+2003-12-03 Josef Zlomek <zlomekj@suse.cz>
+
+ Backport from mainline
+
+ 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/10239
+ * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all
+ REG_LABEL notes.
+
+ 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/11640
+ * cfgrtl.c (try_redirect_by_replacing_jump): Move jump
+ immediatelly before BARRIER.
+
+2003-12-01 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ Backport from mainline
+
+ 2002-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux.
+ to tmake_file.
+ * config/sh/libgcc-glibc.ver: New file.
+
+ Backport from mainline
+
+ 2003-10-08 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
+ libgcc_s.so.
+ (SHLIB_INSTALL): Likewise.
+
+2003-12-01 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/11634
+ * recog.c (split_insn): Factor test of INSN_P and handling of
+ set_noop_p out of here into the two callers.
+ (split_all_insns): Add INSN_P test and set_noop_p handling here.
+ If deleting a no-op set after reload that has a REG_UNUSED note,
+ mark the basic block as changed and recalculate life information.
+ (split_all_insns_noflow): Add INSN_P test and set_noop_p handling
+ here.
+
+2003-12-01 Zack Weinberg <zack@codesourcery.com>
+
+ PR 12505
+ * configure.in: Check for system-provided 'uchar' type.
+ * configure, config.in: Regenerate.
+ * cpphash.h: Only typedef 'uchar' if the system doesn't.
+
+2003-12-01 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * unroll.c (find_splittable_givs): Add missing extend_value_for_giv.
+
+2003-12-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-11-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/13041
+ * final.c (frame_pointer_needed): Fix comment.
+ * reload1.c (reload): Decrease alignment of the frame
+ pointer if it was used for register allocation.
+
+2003-12-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-11-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/12900
+ * reg-stack (move_for_stack_reg): New prototype. Return
+ whether a control flow insn was deleted.
+ (subst_stack_regs_pat): Likewise, using the information provided
+ by move_for_stack_reg.
+ (subst_stack_regs): Likewise, using the information provided
+ by subst_stack_regs_pat.
+ (convert_regs_1): Record whether a control flow insn was deleted,
+ using the information provided by subst_stack_regs. Purge dead
+ edges only if a control flow insn was deleted.
+
+2003-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * doc/c-tree.texi (Function Bodies): Update HANDLER documentation.
+
+2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths.
+
+2003-11-19 Alan Modra <amodra@bigpond.net.au>
+
+ Backport 2003-03-26 Alan Modra <amodra@bigpond.net.au>
+ * cppinit.c (init_standard_includes): Add both "translated" and
+ non-translated header paths.
+
+2003-11-18 Gerald Pfeifer <gerald@pfeifer.com>
+
+ Fix links in online manuals.
+ * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info.
+
+2003-11-17 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/invoke.texi (Warning Options): Simplify and clarify the
+ description of -Wnonnull.
+
+2003-11-14 Matthias Klose <doko@debian.org>
+
+ Backport from mainline
+
+ 2003-06-04 Jakub Jelinek <jakub@redhat.com>
+
+ * function.c (trampolines_created): New variable.
+ (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
+ * function.h (trampolines_created): Add.
+ * config/s390/linux.h (ASM_FILE_END): Define.
+ * config/alpha/linux-elf.h (ASM_FILE_END): Define.
+ * config/m68k/linux.h (ASM_FILE_END): Define.
+ * config/rs6000/linux.h (ASM_FILE_END): Define.
+ * config/rs6000/linux64.h (ASM_FILE_END): Define.
+ * config/sparc/linux.h (ASM_FILE_END): Define.
+ * config/sparc/linux64.h (ASM_FILE_END): Define.
+ * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
+ * config/i386/linux.h (SUBTARGET_FILE_END): Define.
+ * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
+
+ 2003-06-05 Jakub Jelinek <jakub@redhat.com>
+
+ * mklibgcc.in: Propagate .note.GNU-stack section if needed into
+ the .hidden assembly stubs.
+
+2003-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12926
+ * expr.c (expand_assignment) [COMPONENT_REF]: Don't put
+ the UNCHANGING_RTX_P flag on memory references to read-only
+ components that are not addressable.
+
+2003-11-12 Alexey Starovoytov <alexey.starovoytov@sun.com>
+
+ PR optimization/12953
+ * c-objc-common.c (inline_forbidden_p): Added check for BUILT_IN
+ before switch by FUNCTION_CODE.
+
+2003-11-10 Waldek Hebisch <hebisch@math.uni.wroc.pl>
+
+ PR target/12865
+ * config/sparc/sparc.c (sparc_initialize_trampoline): Call
+ __enable_execute_stack only after writing onto the stack.
+ (sparc64_initialize_trampoline): Likewise.
+
+2003-11-08 Roger Sayle <roger@eyesopen.com>
+
+ Backport from mainline
+ PR optimization/10467, PR optimization/11741
+ * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
+ appropriate set to match the code in hash_scan_insn.
+
+2003-11-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * cppinit.c (init_standard_includes): Updated.
+
+ * Makefile.in (fixinc.sh): Updated.
+
+ Backport from 3.4-branch
+
+ 2003-07-16 Daniel Jacobowitz <drow@mvista.com>
+
+ * gcc.c (STANDARD_STARTFILE_PREFIX): Remove unnecessary definition.
+ (main): Remove unnecessary case. Only use standard_startfile_prefix
+ if native.
+
+ 2003-04-11 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
+ mkfixinc.sh.
+ * fixinc/mkfixinc.sh (defs): Add LIBERTY.
+ * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
+ build != host sysrooted builds.
+ * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
+ TARGET_SYSTEM_ROOT even on sysrooted natives.
+ * configure: Rebuilt.
+
+ 2003-03-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * configure.in: Don't always define TARGET_SYSTEM_ROOT.
+ * configure: Regenerated.
+ * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
+
+ 2003-01-16 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (PREPROCESSOR_DEFINES): Add
+ @TARGET_SYSTEM_ROOT_DEFINE@.
+ * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
+ is specified or if building a cross compiler.
+ (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
+ if the sysroot is under $exec_prefix.
+ * configure: Regenerated.
+ * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
+ defined.
+ (struct default_include): Add add_sysroot field.
+ (cpp_SYSROOT): Declare.
+ * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
+ field.
+ (cpp_SYSROOT): New variable.
+ * cppinit.c (cpp_create_reader): Initialize
+ CPP_OPTION (pfile, sysroot).
+ (init_standard_includes): Handle add_sysroot. Do not
+ add unrelocated copies of relocated directories.
+ (COMMAND_LINE_OPTIONS): Add -isysroot.
+ (cpp_handle_option): Handle -isysroot.
+ * cpplib.h (struct cpp_options): Add sysroot member.
+ * gcc.c (The Specs Language): Update description of %I.
+ (target_system_root_changed): New variable.
+ (process_command): Conditionalize make_relative_prefix call
+ on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set
+ target_system_root_changed.
+ (do_spec_1): Add -isysroot to %I.
+ * doc/invoke.texi (Spec Files): Update description of %I.
+ * doc/install.texi (--with-sysroot): Update comment about
+ relocation.
+
+ 2002-10-19 Alexandre Oliva <aoliva@redhat.com>
+ Angela Marie Thomas <angela@releasedominatrix.com>
+ Brendan Kehoe <brendan@zen.org>
+ Nick Clifton <nickc@redhat.com>
+ Andrew Haley <aph@redhat.com>
+
+ * configure.in (--with-sysroot): New. Don't inhibit libc if
+ given. AC_SUBST TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE
+ and CROSS_SYSTEM_HEADER_DIR.
+ * configure: Rebuilt.
+ * Makefile.in (CROSS_SYSTEM_HEADER_DIR): Set in configure.
+ (TARGET_SYSTEM_ROOT): New.
+ (DRIVER_DEFINES): Define CROSS_INCLUDE_DIR from
+ CROSS_SYSTEM_HEADER_DIR.
+ (install-gcc-tooldir): New target.
+ (stmp-fixinc): Do not create $(libsubdir), but rather bail out
+ of SYSTEM_HEADER_DIR does not exist.
+ (deduced.h, stmp-fixproto): Quote SYSTEM_HEADER_DIR properly.
+ (install-mkheaders): Likewise.
+ * gcc.c (target_system_root): New variable.
+ (add_sysrooted_prefix): New function.
+ (process_command): Recompute run-time target_system_root from
+ gcc_exec_prefix, keeping it unchanged if the relocated sysroot
+ does not exist.
+ (do_spec_1): Process 'R' spec.
+ (main): Add md_exec_prefix to exec_prefixes regardless of
+ startfile_prefix_spec. Use add_sysrooted_prefix for
+ startfile_prefixes, and don't skip the default ones when cross
+ compiling with sysroot enabled. Removed unused case of
+ non-absolute standard_startfile_prefix.
+ * config/interix.h: Remove the only potential, yet disabled,
+ occurrence of non-absolute (empty) standard_startfile_prefix.
+ * config/sh/linux.h (LIB_SPEC): Add -rpath-link in non-static
+ linking.
+ * config/mips/linux.h (LIB_SPEC): Define as in sh/linux.h.
+ * doc/install.texi (--with-sysroot): Document.
+ (--with-headers, --with-libs): Deprecate.
+
+2003-11-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Declare.
+ * config/s390/s390.c (s390_output_dwarf_dtprel): New function.
+ * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
+
+2003-11-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_function_arg_pass_by_reference): Return
+ true for all arguments larger than 8 bytes, as well as for all vector
+ type arguments.
+ * config/s390/s390.h (RETURN_IN_MEMORY): Likewise for return values.
+
+2003-11-05 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/10339
+ * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
+ directly instead of unsafely transforming call into a memcmp.
+ (expand_builtin_strncmp): Likewise.
+
+2003-11-03 Alexander Kabaev <ak03@gte.com>
+
+ * real.c (encode_ieee_single): Ensure proper promotion.
+
+2003-11-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from 3.4-branch
+
+ 2003-07-13 Andreas Jaeger <aj@suse.de>
+
+ * config.gcc: Add pmmintrin.h for x86_64-*-*.
+
+ 2003-06-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add pmmintrin.h for i[34567]86-*-*.
+
+ * config/i386/i386.c (override_options): Turn on MASK_SSE2
+ for -mpni.
+ (bdesc_2arg): Add PNI builtins with 2 args.
+ (bdesc_1arg): Add PNI builtins with 1 arg.
+ (ix86_init_mmx_sse_builtins): Handle PNI builtins.
+ (ix86_expand_builtin): Likewise.
+
+ * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A,
+ MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT,
+ MASK_TLS_DIRECT_SEG_REFS): Renumbered.
+ (TARGET_PNI): New.
+ (TARGET_SWITCHES): Add -mpni and -mno-pni.
+ (TARGET_CPU_CPP_BUILTINS): Defined __PNI__ for PNI.
+ (ix86_builtins): Add PNI builtins.
+ (config/i386/i386.md): Add PNI patterns.
+
+ * config/i386/pmmintrin.h: New file.
+
+ * config/i386/i386.c (override_options): Turn on MASK_SSE for
+ -msse2.
+ (MASK_SSE1): Removed.
+ (MASK_SSE164): Removed.
+ (MASK_SSE264): Removed.
+ (bdesc_2arg): Replace MASK_SSE1 with MASK_SSE. Replace
+ MASK_SSE164 with MASK_SSE | MASK_64BIT. Replace MASK_SSE264
+ with MASK_SSE2 | MASK_64BIT.
+ (bdesc_1arg): Likewise.
+ (ix86_init_mmx_sse_builtins): Likewise.
+
+ * config/i386/i386.h (TARGET_SSE): Remove MASK_SSE2.
+
+ 2003-06-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * doc/extend.texi: Document new builtin functions for Intel
+ Prescott New Intrunctions.
+
+ * doc/invoke.texi: Document new command-line options, -mpni and
+ -mno-pni, for Intel Prescott New Intrunctions.
+
+ 2003-06-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
+ and x86_64-*-*.
+
+ * config/i386/mmintrin.h: Update version and add alternate
+ intrinsic names.
+ * config/i386/xmmintrin.h: Likewise.
+
+ * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
+ intrinsics to ...
+ * config/i386/emmintrin.h: Here. New file.
+
+2003-11-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from 3.4-branch
+ 2003-04-25 H.J. Lu <hjl@gnu.org>
+
+ * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
+ for return mode.
+ (ia64_expand_builtin): Set rmode to SImode for
+ IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
+ IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
+ IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
+ for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
+
+ 2003-04-24 H.J. Lu <hjl@gnu.org>
+
+ * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
+ for __sync_bool_compare_and_swap_di for int return type.
+
+ * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
+ Change return type to int.
+ (__sync_bool_compare_and_swap): Likewise.
+
+2003-11-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner,
+ and Andrew Pinski.
+
+2003-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list.
+ Merge two substitutions.
+ * fixinc/fixincl.x: Regenerate.
+ Fixes PR bootstrap/12666.
+
+2003-10-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR target/11598
+ PR libgcj/10610
+ * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro.
+
+2003-10-27 Falk Hueffner <falk@debian.org>
+
+ PR target/12654
+ * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do
+ comparison against constant by adjusting the argument except for
+ EQ and NE.
+
+2003-10-26 Ottavio Campana <ottavio@campana.vi.it>
+
+ PR target/12690
+ * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment.
+
+2003-10-25 Bruce Korb <bkorb@gnu.org>
+
+ * gcc/fixinc/tests/base/ansi/string.h:
+ This fixes a result from a broken sed or a hand-edited output file.
+ The '__GNUC__' wrappers were misplaced.
+
+2003-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/12712
+ * reg-stack.c (convert_regs_1): Create an arbitrary input stack
+ if the block has no predecessors.
+ (convert_regs_2): Document the problem with successors whose
+ only predecessor is the block to be processed.
+ (convert_regs): Don't create the arbitrary input stack here.
+
+2003-10-22 David Taylor <dtaylor@emc.com>
+
+ PR debug/12500
+ * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P.
+
+2003-10-20 Zack Weinberg <zack@codesourcery.com>
+
+ * fixinc/inclhack.def (hpux11_snprintf): New edit.
+ * fixinc/fixincl.x: Regenerate.
+ * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf.
+
+2003-05-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle
+ .save XX, r0.
+
+2003-10-19 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/include/gcc-common.texi: Bump version number.
+ * version.c (version_string): Reset to prerelease format.
+
+2003-10-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/extend.texi: Fix typos.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-14 Jason Merrill <jason@redhat.com>
+
+ PR c/11885
+ * stor-layout.c (update_alignment_for_field): Packed non-bit-fields
+ get byte alignment.
+
+2003-10-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * fixinc/inclhack.def (alpha_pthread_gcc): New fix.
+ * fixinc/fixincl.x: Regenerate.
+ * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New
+ testcase.
+ Fixes PR bootstrap/9330.
+
+2003-10-14 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR target/11087
+ Backport from gcc-3_3-rhl-branch and mainline.
+
+ 2003-07-17 Jakub Jelinek <jakub@redhat.com>
+
+ * loop.c (basic_induction_var): Check if convert_modes
+ emitted any instructions. Remove them and return 0 if so.
+
+2003-10-13 Matt Kraai <kraai@alumni.cmu.edu>
+
+ PR target/11949
+ Backport from mainline:
+
+ 2003-05-05 Aldy Hernandez <aldyh@redhat.com>
+
+ * testsuite/gcc.c-torture/compile/simd-6.c: New.
+ * c-typeck.c (digest_init): Handle arrays of vector constants.
+
+2003-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12544
+ * function.c (put_var_into_stack): Don't generate ADDRESSOFs
+ for DECL_NONLOCAL decls.
+
+2003-10-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12510
+ Backport from mainline:
+
+ 2003-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ * toplev.c (rest_of_compilation): Call split_all_insns before
+ regstack if optimizing but not scheduling after reload.
+
+2003-10-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * fixinc/inclhack.def (stdio_va_list): Removed _ap fix.
+ (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21
+ introduced some multi-line prototypes.
+ * fixinc/fixincl.x: Regenerate.
+ Fixes PR libf2c/12263.
+
+2003-10-08 Timo Kokkonen <tjko@iki.fi>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR bootstrap/12490
+ * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
+ to define the size of the extern_C_braces array. Set it to 200.
+ (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
+
+2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12215
+ * cse.c (cse_set_around_loop): Emit the move at the beginning
+ of the next basic block for trapping sets.
+
+2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11637
+ * combine.c (adjust_for_new_dest): New function to adjust the
+ notes and LOG_LINKS when the dest of an insn has changed.
+ (try_combine): Use it when deleting the first insn of a two-insn
+ parallel or splitting a two-load parallel.
+
+2003-10-04 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
+ identical to m68hc12 as far as libraries are concerned.
+
+2003-10-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/12446
+ * c-typeck.c (convert_for_assignment): Issue an error for
+ array to pointer assignment after default conversion.
+ (digest_init): Likewise.
+
+2003-10-03 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/extend.texi (Function Attributes): Fix title of GNU C
+ Preprocessor manual.
+ (C++ Extensions): Fix reference to "Predefined Macros" in the
+ GNU C Preprocessor manual.
+
+2003-10-03 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR/11883
+ * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
+
+2003-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/12180
+ * c-objc-common.c (inline_forbidden_p): Do not permit inlining of
+ functions containing calls to __builtin_next_arg.
+
+2003-10-02 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/12292
+ * combine.c (make_field_assignment): Check whether rtx's code
+ is CONST_INT before using INTVAL.
+
+2003-10-02 Josef Zlomek <zlomekj@suse.cz>
+
+ Waldek Hebisch <hebisch@math.uni.wroc.pl>
+ PR/12072
+ * varasm.c (compare_constant): Fix thinko.
+
+2003-10-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist.
+ * configure: Rebuilt.
+
+2003-10-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * aclocal.m4: Add ultrix* to /dev/zero blacklist.
+ * configure: Rebuilt.
+
+2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
+ Solaris 7-9.
+
+ * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
+ wildcards which explicitly match micro versions.
+ * fixinc/fixincl.x: Regenerate.
+
+2003-10-01 Richard Henderson <rth@redhat.com>
+
+ * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor
+ DWARF_ALT_FRAME_RETURN_COLUMN.
+ * unwind-dw2.c (dwarf_reg_size_table): Expand by one.
+ (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column.
+ (uw_frame_state_for): Return end-of-stack for null return address.
+
+ * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return.
+ (alpha_expand_prologue): Store a zero for it.
+ (alpha_expand_epilogue): Don't reload it.
+ * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New.
+ * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64
+ for the sigframe return address.
+
+2003-10-01 Nick Clifton <nickc@redhat.com>
+
+ * Import this patch from mainline:
+
+ 2003-02-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * collect2.c (pexecute_pid): Rename to pid.
+ (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
+ pid.
+
+2003-09-23 David S. Miller <davem@redhat.com>
+
+ * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
+ before redefining.
+ * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
+
+2003-10-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11753
+ * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to
+ the length in the non-V9 case.
+
+2003-09-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/12340
+ * loop.h (struct induction): Document the new semantics
+ of the 'same' field for bivs.
+ * unroll.c (biv_total_increment): Don't count the same
+ biv increment several times.
+ (loop_iterations) [GENERAL_INDUCT]: Likewise.
+
+2003-09-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR bootstrap/12358
+ * pa.c (output_bvb): Fix typo.
+
+2003-09-24 Alexandre Oliva <aoliva@redhat.com>
+
+ * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
+ code path that calls a handler.
+
+2003-09-23 Geoffrey Keating <geoffk@apple.com>
+
+ * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
+
+ * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
+ pass zero-size arrays by reference.
+ (rs6000_va_arg): Likewise.
+
+2003-09-22 Joel Sherrill <joel@oarcorp.com>
+
+ * combine.c, config/mips/t-elf, config/c4x/rtems.h: Revert patches
+ which should not have been committed with other RTEMS changes.
+
+2003-09-22 Olivier Hainque <hainque@act-europe.fr>
+
+ PR target/9786
+ * reg-stack.c (convert_regs_1): Purge possible dead eh edges
+ after potential deletion of trapping insn. Avoids later ICE
+ from call to fixup_abnormal_edges.
+ (convert_regs_2): Stack the current block successors before
+ processing this block, that is, before the potential deletion of
+ dead edges by convert_regs_1, because these edges have been used
+ to initialize the predecessors count.
+
+2003-09-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/12301
+ * reorg.c (stop_search_p): Return 1 for insns that can
+ throw internally.
+
+2003-09-19 Joel Sherrill <joel@oarcorp.com>
+
+ * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to
+ 68881.
+
+2003-09-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * config/m68k/t-rtems (m68k-*-rtems*): New.
+ * config.gcc: Use config/m68k/t-rtems.
+
+2003-09-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * config/mips/t-rtems: New.
+ * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems.
+
+2003-09-19 T. Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/12166
+ * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1.
+
+2003-09-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR target/11184
+ * builtins.c (expand_builtin_apply): Use convert_memory_address
+ before returning the value.
+
+2003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (gcc_cv_as_hidden): Only disable if no GNU ld
+ detected.
+ * configure: Regenerate.
+ Fixes PR target/12248.
+
+2003-09-17 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_expand_mov): Do gen_movdi_er_maybe_g
+ always during initial code generation.
+ * config/alpha/alpha.md (movdi_er_maybe_g): Don't conditionalize
+ on flag_inline_functions.
+
+2003-09-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11646
+ * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
+ EDGE_ABNORMAL flag for EH edges.
+ * toplev.c (rest_of_compilation): Delete unreachable blocks
+ if dead edges were purged after the first CSE pass.
+
+2003-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+ * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
+
+2003-09-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
+
+2003-09-14 Alexandre Oliva <aoliva@redhat.com>
+
+ * cppmain.c (cb_line_change): Revert 2003-08-04's change.
+ * c-lex.c (cb_line_change): Skip line changing whenever
+ cppmain.c would.
+
+2003-09-11 Alexandre Oliva <aoliva@redhat.com>
+
+ PR fortran/11522
+ * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
+ for ultimate origin even if block is abstract.
+
+2003-09-10 Martin Husemann <martin@duskware.de>
+
+ PR target/11965
+ * config/sparc/sparc.c (sparc_v8plus_shift): Protect against
+ constants greater than 63.
+ * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect
+ against constants greater than 31.
+ (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against
+ constants greater than 63.
+
+2003-09-09 Richard Henderson <rth@redhat.com>
+
+ PR target/12224:
+ * config/ia64/ia64.c (ia64_expand_move): Properly truncate
+ result when op0 is SImode.
+
+2003-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
+ assembler supports Sun syntax for cmov.
+ * configure: Regenerate.
+ * config.in: Li{ewise.
+ * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
+ HAVE_AS_IX86_CMOV_SUN_SYNTAX.
+ * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
+ Fixes PR target/12101.
+
+2003-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (gcc_cv_as_hidden): Disable unless using GNU ld.
+ * configure: Regenerate.
+
+2003-09-08 Mark Mitchell <mark@codesourcery.com>
+
+ * mklibgcc.in (libcc.a): Depend on stmp-dirs.
+ (libgov.a): Likewise.
+ (libgcc_eh.a): Likewise.
+
+2003-09-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/11689
+ * config/i386/i386.c (memory_address_length): Fix computation when
+ the base is esp or ebp.
+
+2003-09-07 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11852
+ * varasm.c (initializer_constant_valid_p): Correct logic for
+ CONSTRUCTORs.
+
+Sun Sep 7 14:53:36 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
+
+2003-09-07 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ PR optimization/11662
+ Backport from mainline:
+
+ 2003-07-10 Denis Chertykov <denisc@overta.ru>
+ Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * combine.c (gen_binary): Handle the CLOBBER rtx and
+ don't build a binary operation with it.
+
+Sat Sep 6 23:16:35 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
+
+ PR target/12070
+ * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
+
+ PR opt/12082
+ * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
+
+2003-09-06 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR c/9862
+ * c-decl.c (c_expand_body): Move return warning from here...
+ (finish_function): ...to here.
+
+2003-09-05 Jan Hubicka <jh@suse.cz>
+
+ PR target/8869
+ * expr.c (convert_modes): Deal properly with integer to vector
+ constant conversion.
+
+2003-09-05 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c/10962
+ * c-decl.c (field_decl_cmp): Add back function.
+ (finish_struct): Sort fields if number greater than 15
+ and no anymous structs/unions.
+
+2003-09-04 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
+ * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
+ * unwind.h (_Unwind_GetBSP): New prototype.
+ * libgcc-std.ver: Add empty GCC_3.3.2 version.
+ * mkmap-symver.awk: For symbol versions with no exported symbols,
+ don't put anything into version script, just change all symbol
+ versions which inherit from it to inherit from its ancestor.
+
+2003-09-02 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+ This is a fix for PR 10988:
+ * m32r.c (m32r_print_operand): Correct comment.
+ (m32r_expand_block_move): Correct the handling of leftover/small
+ blocks.
+ (m32r_block_small_immediate_operand): New predicate.
+ * m32r.md (movstrsi_small_internal): New pattern.
+ * m32r.h (PREDICATE_CODES): Add m32r_block_small_immediate_operand.
+ * m32r-protos.h: Add prototype for m32r_block_small_immediate_operand.
+
+2003-08-25 Richard Henderson <rth@redhat.com>
+
+ * config/i386.i386.c (ix86_return_in_memory): Reformat. Return true
+ for 16-byte vector modes if sse not enabled; warn for abi change.
+ (ix86_value_regno): Only return xmm0 for 16-byte vector types.
+
+2003-08-25 Zack Weinberg <zack@codesourcery.com>
+
+ * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove
+ commented-out logic to use DCE threads (if present), add
+ support for POSIX threads.
+ * config/ia64/hpux.h: Define CPP_SPEC to set appropriate
+ #defines for -pthread. Add -lpthread to LIB_SPEC when
+ -pthread. In both cases take -mt as a synonym for -pthread
+ for acc compatibility.
+ Define GTHREAD_USE_WEAK to 0.
+ * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC.
+ Remove old logic for DCE threads from LIB_SPEC.
+ * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0.
+
+2003-08-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
+
+2003-08-23 Jakub Jelinek <jakub@redhat.com>
+
+ * c-decl.c (pushdecl): Only put decls which finish_struct will do
+ something about onto incomplete chain.
+ (finish_struct): If not removing type from incomplete
+ list, update prev.
+
+2003-08-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * cppmain.c (cb_line_change): Don't skip line changing while
+ parsing macro arguments in the top-level context.
+
+2003-08-22 Mark Mitchell <mark@codesourcery.com>
+
+ * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
+
+ * config/ia64/ia64.c (ia64_output_mi_thunk): Support ILP32 mode.
+
+2003-08-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR target/11805
+ * config/h8300/h8300.md (two anonymous patterns): Remove.
+
+2003-08-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * stmt.c (expand_asm_operands): Avoid string concatenation.
+ * tree.c (default_flag_random_seed): Avoid ISO C definition.
+ * varasm.c (output_constant_def): Delete unused variable.
+
+2003-08-18 Matt Kraai <kraai@alumni.cmu.edu>
+
+ PR c/11207
+ * c-typeck.c (set_init_index): Check for negative index.
+
+2003-08-14 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c (version_string): Use "prerelease" not "experimental".
+
+2003-08-11 James E Wilson <wilson@tuliptree.org>
+
+ PR optimization/11319
+ PR target/10021
+ * alias.c (find_base_value, case REG): Return 0 not src if no base
+ found.
+
+2003-08-11 Kean Johnston <jkj@sco.com>
+
+ * fixinc/inclhack.def (sco_math): Updated test text and select trigger
+ according to bkorb's review.
+ * fixinc/inclhack.def (sco_regset): Ditto.
+ * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Remove all mach
+ lines so that this file is unconditionally replaced.
+ * fixinc/inclhack.def (sco_string): Use ansi/string.h as the first file
+ to check so that the Ultrix string.h check doesnt overwrite the test
+ case with its replacement text.
+ * fixinc/fixincl.x: Regenerated
+ * fixinc/tests/base/math.h: Updated sco_math result text
+ * fixinc/tests/base/ansi/string.h: New file.
+ * fixinc/tests/base/sys/regset.h: Compacted result text to fewer lines.
+
+2003-08-11 Dale Johannesen <dalej@apple.com>
+ * config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable handling of
+ decrement-and-branch farther away than 32 bits.
+
+2003-08-10 Zack Weinberg <zack@codesourcery.com>
+
+ Backport the following changes from mainline:
+
+ 2003-05-08 David Mosberger <davidm@hpl.hp.com>
+
+ * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
+
+ 2003-04-03 Richard Henderson <rth@redhat.com>
+
+ * unwind-libunwind.c (_Unwind_GetCFA): New.
+
+ 2003-03-27 David Mosberger <davidm@hpl.hp.com>
+
+ * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
+ v0.9 API change: replace read of UNW_REG_HANDLER with
+ unw_get_proc_info().
+ (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
+ with unw_get_proc_info().
+ (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
+ unw_get_proc_info().
+
+ 2003-03-13 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * unwind-libunwind.c: Replace "GNU CC" with "GCC".
+
+ 2002-10-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * config/t-libunwind: Mention unwind-sjlj.c.
+ * unwind-libunwind.c: Change #ifdef __USING_LIBUNWIND_EXCEPTIONS__
+ to #ifndef __USING_SJLJ_EXCEPTIONS__.
+
+ * configure.in: Move sjlj-exceptions and --enable-libunwind-exceptions
+ before inclusion of config.gcc, but after configuring the compiler etc.
+ Determine default value for --enable-libunwind-exceptions based on
+ whether the host has a libunwind library (not guaranteed to be correct,
+ but it's a reasonable first guess and can always be overridden with an
+ explicit --enable/disable-libunwind-exceptions.
+ * config.gcc: For target ia64*-*-linux*, mention t-libunwind as a
+ tmake_file when $use_libunwind_exceptions is enabled.
+ * Makefile.in: Update comment: LIB2ADDEH is updated not just by
+ ia64 (e.g., config/t-linux also updates it).
+ * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS]: Mention -lunwind
+ along with the shared version of libgcc since the latter requires
+ the former.
+
+ * unwind-libunwind.c: New file.
+ * config/t-libunwind: Ditto.
+
+2003-08-10 Richard Henderson <rth@redhat.com>
+
+ PR target/11693
+ * config/ia64/ia64.c (ia64_emit_nops): Skip L slots when
+ padding before inline assembly.
+
+2003-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR c++/11712
+ * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define
+ __STDC_EXT__ when using C++ dialect.
+
+2003-08-08 Kean Johnston <jkj@sco.com>
+
+ PR target/9877
+ PR target/8336
+ * config.gcc (sco3.2v5*): Use elfos.h and dbxelf.h in tm_file;
+ Eliminate need for t-sco5gas target fragment.
+ No longer build crt{begin,end}S.o, that were used for COFF support.
+ * tlink.c (recompile_files): Add missing = in putenv() calls.
+ * unwind-dw2.c (_Unwind_GetCFA): Correct return cast.
+ * config/i386/sco5.h: Major overhaul to remove all COFF support
+ * config/i386/t-sco5: Multilib for PIC support
+ * config/i386/t-sco5gas: Remove
+ * config/i386/i386.c: Check value as well as presence of
+ SUPPORTS_ONE_ONLY
+ * doc/install.texi: Update for modern SCO instructions
+ * fixinc/check.tpl: Allow user to specify diff program for make check
+ * fixinc/inclhack.def: Fix several SCO header files, namely string.h,
+ math.h, sys/byteorder.h and sys/regset.h.
+ * fixinc/fixincl.x: Regenerate
+ * fixinc/tests/base/math.h: Update
+ * fixinc/tests/base/sys/byteorder.h: Update
+ * fixinc/tests/base/string.h: Added
+ * fixinc/tests/base/sys/regset.h: Added
+ * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
+
+2003-08-08 Roger Sayle <roger@eyesopen.com>
+
+ PR c/11370
+ * calls.c (emit_call_1): Don't bother popping the arguments off of
+ the stack after a noreturn function call; The adjustment is dead.
+ (expand_call): Likewise.
+
+2003-08-08 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
+
+ * config.gcc: Do not override sh/t-linux with sh/t-le.
+
+2003-08-08 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
+ (LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee
+ when -mieee-fp set and -shared not set.
+
+2003-08-08 Richard Henderson <rth@redhat.com>
+
+ PR target/11535
+ * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove
+ RETURN_ADDRESS_POINTER_REGNUM.
+ (ia64_expand_prologue): Don't frob it.
+ (ia64_output_function_epilogue): Likewise.
+ (ia64_return_addr_rtx): New.
+ (ia64_split_return_addr_rtx): New.
+ * config/ia64/ia64-protos.h: Update.
+ * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement.
+ (RETURN_ADDRESS_POINTER_REGNUM): Remove.
+ (GENERAL_REGNO_P): Don't check it.
+ (AR_*_REGNUM): Renumber.
+ (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM.
+ (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise.
+ (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise.
+ (ELIMINABLE_REGS, REGISTER_NAMES): Likewise.
+ (RETURN_ADDR_RTX): Use ia64_return_addr_rtx.
+ * config/ia64/ia64.md (UNSPEC_RET_ADDR): New.
+ (movdi_ret_addr): New.
+
+2003-08-03 Geoffrey Keating <geoffk@apple.com>
+
+ PR 11709
+ * varasm.c (output_constant_def_contents): Use
+ ASM_DECLARE_CONSTANT_NAME if defined.
+ * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME.
+ * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized
+ objects get at least one byte to prevent assembler problems.
+ (ASM_DECLARE_CONSTANT_NAME): New.
+
+2003-08-07 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c (version_string): Reset to prerelease.
+ * doc/include/gcc-common.texi: Update version.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-03 Neil Booth <neil@daikokuya.co.uk>
+
+ PR preprocessor/11534
+ * cppexp.c (parse_defined): Warn only if -pedantic.
+
+2003-08-03 Mark Mitchell <mark@codesourcery.com>
+
+ * Makefile.in (ORDINARY_FLAGS_TO_PASS): Pass AR.
+
+ * Makefile.in (STAGE2_FLAGS_TO_PASS): Pass AR_FOR_TARGET and
+ RANLIB_FOR_TARGET.
+ (stage1_build): Likewise.
+
+2003-08-03 Jan Hubicka <jh@suse.cz>
+
+ PR 10510
+ * config/pa/pa.h (MAYBE_FP_REG_CLASS_P): New.
+ (SECONDARY_MEMORY_NEEDED): Use it.
+
+2003-08-01 Geoffrey Keating <geoffk@apple.com>
+
+ PR 11709 (partial fix)
+ * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
+ insert a label at the end of an function under Mach-O.
+
+ PR 11313
+ * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME
+ when it's not needed.
+
+2003-07-29 Richard Henderson <rth@redhat.com>
+
+ PR target/10681
+
+ 2003-06-27 J"orn Rennecke <joern.rennecke@superh.com>
+ * flow.c (propagate_one_insn): Use proper test for a register
+ being part of the return value.
+
+ 2003-06-26 Richard Henderson <rth@redhat.com>
+ * flow.c (propagate_one_insn): Preserve live-at-end registers
+ across tail calls.
+
+ 2003-06-26 Richard Henderson <rth@redhat.com>
+ * config/ia64/ia64.c (ia64_expand_call): Don't add ar.pfs for sibcalls.
+ (ia64_split_call): Only load descriptor for GP register inputs.
+ (ia64_expand_epilogue): Check current_frame_info.mask not
+ current_function_is_leaf to restore ar.pfs.
+
+2003-07-26 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Testing): Adjust required versions of DejaGnu.
+
+2003-07-24 Aldy Hernandez <aldyh@redhat.com>
+
+ Backport the folling patch.
+
+ 2003-04-01 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/8878
+ * expr.c (expand_expr): Handle VECTOR_CST.
+ (const_vector_from_tree): New.
+
+ * varasm.c (output_constant): Handle VECTOR_CST.
+
+ * c-typeck.c (digest_init): Build a vector constant from a
+ VECTOR_TYPE.
+
+2003-07-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/11607 and PR target/11516
+ * pa.md (extzv, extv, insv): Revert latter half of last patch.
+
+2003-07-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/10679
+ * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS.
+
+2003-07-22 Bob Wilson <bob.wilson@acm.org>
+
+ * unwind-c.c (PERSONALITY_FUNCTION): Delete duplicate define.
+
+2003-07-23 Dave Fluri <dave.fluri@onlink.net>
+
+ * doc/extend.texi: Fixes to spelling, grammar, and diction.
+
+2003-07-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR optimization/11599
+ * config/ia64/ia64.md (prefetch): Support predicate.
+
+2003-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11536
+ * unroll.c (loop_iterations): Do not replace a register holding
+ the final value by its equivalent before the loop if it is not
+ invariant.
+
+2003-07-21 Ben Elliston <bje@wasabisystems.com>
+
+ * doc/invoke.texi (V850 Options): Spelling fixes.
+
+2003-07-21 Lisa M. Goldstein <opus@gnu.org>
+
+ * doc/invoke.texi: Fixes to style, grammar and diction.
+
+2003-07-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/11279
+ * dwarf2out.c (gen_enumeration_type_die): Remember that
+ enumerators can be unsigned.
+
+2003-07-19 Kelley Cook <kelleycook@wideopenwest.com>
+
+ * c-tree.texi: Backport changes from mainline.
+ * c-tree.texi: Ditto.
+ * collect2.texi: Ditto.
+ * cpp.texi: Ditto.
+ * cppopts.texi: Ditto.
+ * extend.texi: Ditto.
+ * fragments.texi: Ditto.
+ * headerdirs.texi: Ditto.
+ * install.texi: Ditto.
+ * invoke.texi: Ditto.
+ * md.texi: Ditto.
+ * portability.texi: Ditto.
+ * rtl.texi: Ditto.
+ * sourcebuild.texi: Ditto.
+ * trouble.texi: Ditto.
+
+2003-07-19 Kelley Cook <kelleycook@wideopenwest.com>
+
+ PR optimization/4490
+ * doc/invoke.texi (m96bit-long-double, m128bit-long-double): Reword
+ documentation to accurately reflect what these options do.
+
+2003-07-18 Richard Henderson <rth@redhat.com>
+ David S. Miller <davem@redhat.com>
+
+ PR target/11556
+ * optabs.c (prepare_operand): Fail gracefully instead of abort
+ if the predicate doesn't satisfy.
+ (gen_cond_trap): Allow prepare_operand to fail.
+ Pass correct opnum argument to prepare_operand.
+
+2003-07-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11083
+ * toplev.c (rest_of_compilation): Delete unreachable blocks
+ if dead edges were purged after the addressof pass.
+
+2003-07-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/11557
+ * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK
+ unless we know which function is being called.
+
+2003-07-17 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ PR bootstrap/11043
+ * config/arc/t-arc: Replace bogus references to "x-crtinit.o",
+ "x-crtfini.o" with "crtinit.o", "crtfini.o".
+
+2003-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR other/11466
+ * doc/invoke.texi (SPARC Options): Document "-mlittle-endian"
+ and its restrictions for the SPARC64 port.
+
+ Backport from mainline:
+ 2003-06-13 Florian Weimer <fw@deneb.enyo.de>
+
+ * doc/invoke.texi (SPARC Options): Document "-mimpure-text".
+
+2003-07-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Phil Edwards <phil@jaj.com>
+
+ * doc/install.texi (*-*-solaris2*): Document the step-by-step
+ procedure to bootstrap and install.
+ Document the preference for the legacy Sun tools in /usr/bin
+ over the POSIX tools in /usr/xpg4/bin for the build process.
+
+2003-07-16 Richard Henderson <rth@redhat.com>
+
+ PR target/10907
+ * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end
+ even with !TARGET_CONST_GP.
+ (ia64_function_ok_for_sibcall): Reject non-local functions.
+
+2003-07-15 Geoffrey Keating <geoffk@apple.com>
+
+ * config/darwin.c (machopic_select_section): Use decl_readonly_section
+ to do most of the work.
+
+2003-07-15 David S. Miller <davem@redhat.com>
+
+ * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only
+ emit nop if the last real insn is CALL_INSN.
+
+2003-07-15 Loren James Rittle <ljrittle@acm.org>
+
+ * config/i386/freebsd.h (SET_ASM_OP): Remove.
+ (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case.
+ (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER
+ MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace.
+
+2003-07-15 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/11473
+ * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of
+ base classes.
+
+2003-07-15 James A. Morrison <ja2morri@student.math.uwaterloo.ca>
+
+ * doc/include/texinfo.tex: Upgrade to texinfo 4.6.
+
+2003-07-15 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11320
+ * sched-int.h (struct deps) [reg_conditional_sets]: New field.
+ (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
+ * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
+ current_sched_info->compute_jump_reg_dependencies. Record which
+ registers are used and which registers are set by the jump.
+ Clear deps->reg_conditional_sets after a barrier.
+ Set deps->reg_conditional_sets if the insn is a COND_EXEC.
+ Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
+ (init_deps): Initialize reg_conditional_sets.
+ (free_deps): Clear reg_conditional_sets.
+ * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
+ Mark registers live on entry of the fallthrough block and conditionally
+ set as set by the jump. Mark registers live on entry of non-fallthrough
+ blocks as used by the jump.
+ * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
+ Mark new parameters as unused.
+
+2003-07-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/11098
+ * integrate.c (copy_decl_for_inlining): Do not mark copied decls
+ as DECL_ABSTRACT.
+
+2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR optimization/11440
+ * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or
+ SIGN_EXTRACT SETs.
+
+2003-07-13 Aaron W. LaFramboise <awlaframboise@aol.com>
+
+ * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1.
+
+2003-07-13 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/11059
+ * expr.c (can_store_by_pieces): Return true if length is zero.
+ (store_by_pieces): Do nothing if length is zero.
+ (clear_by_pieces): Do nothing if length is zero.
+ (clear_storage): Do nothing if length is zero.
+ (store_constructor): Simplify code when size is zero, or the
+ target has already been cleared. This avoids emitting a
+ blockage instruction when initializing empty structures.
+
+2003-07-13 Richard Henderson <rth@redhat.com>
+
+ * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0,
+ __gcc_personality_v0.
+
+2003-07-11 Dara Hazeghi <dhazeghi@yahoo.com>
+
+ PR optimization/10877
+ * doc/install.tex: Update required binutils for i?86-*-linux*
+
+2003-07-11 Ben Elliston <bje@redhat.com>
+
+ PR c++/1607
+ * doc/extend.texi (Function Attributes): Document the effect of
+ the C++ "this" parameter on the counting of arguments for the
+ "format" and "format_arg" attributes.
+
+2003-07-11 Danny Smith <dannysmith@users.sourceforge.net>
+
+ Backport from mainline.
+
+ 2003-05-13 Richard Henderson <rth@redhat.com>
+
+ * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if
+ the old decl had instantiated DECL_RTL.
+
+ 2003-05-21 Danny Smith <dannysmitx@users.sourceforge.net>
+
+ PR c++/9738
+ * config/i386/winnt.c (i386_pe_encode_section_info): Enable
+ even if not first.
+
+ 2003-07-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR c++/5287, PR c++/7910, PR c++/11021
+ * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add
+ dllimport attribute if function is defined at declaration, but
+ report error instead. Likewise for dllimport'd variable
+ definitions. Set implicit TREE_PUBLIC for dllimport'd variables
+ declared within functions, Report error if dllimport or dllexport
+ symbol is not global.
+ (i386_pe_dllimport_p): Ignore dllimport attribute of functions
+ if defined after declaration or if inlined. Don't allow definition
+ of static data members of C++ classes. Don't dllimport virtual
+ methods.
+ (i386_pe_mark_dllexport): Warn about inconsistent dll attributes.
+ (i386_pe_mark_dllimport): Remove unnecessary checks.
+ (i386_pe_encode_section_info): Warn if the dllimport attribute
+ and symbol prefix have been instantiated and then overridden.
+
+ * doc/extend.texi: Document dllimport and dllexport attributes.
+
+2003-07-10 James E Wilson <wilson@tuliptree.org>
+
+ PR optimization/9745
+ * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before
+ loop_insn_emit_before.
+ (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
+
+2003-07-10 Dara Hazeghi <dhazeghi@yahoo.com>
+
+ PR bootstrap/10758
+ * doc/install.texi: Document requirements for ia64-*-hpux* target.
+
+2003-07-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10032
+ * doc/invoke.texi (C++ Dialect Options): Change documentation of
+ -fpermissive.
+
+2003-07-10 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * doc/invoke.texi: Fix misspelling of "@item".
+
+2003-07-09 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * doc/install.texi (Configuration): Document the valgrind option
+ to --enable-checking.
+
+2003-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR Target/11453
+ * pa.md: Disparage all mtsar constraints.
+ (extzv, extv, insv): Don't fail on length of {32|64}.
+
+2003-07-08 James E Wilson <wilson@tuliptree.org>
+
+ PR target/10021
+ * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF,
+ loop over new variable t2 instead of t.
+
+2003-07-08 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define
+ as .file/.loc directives are incompatible with linker relaxation.
+
+2003-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/11420
+ * config/i386/i386.c (ix86_check_movabs): New function.
+ * config/i386/i386-protos.h (ix86_check_movabs): New prototype.
+ * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative.
+ (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions.
+
+ * config/i386/i386.md (movdi_1_rex64): Set Y<-m alternative's type
+ to ssemov.
+
+2003-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and
+ REG_EQUIV notes as well.
+
+2003-07-07 Dale Johannesen <dalej@apple.com>
+
+ PR 10900
+ * config/rs6000/darwin-tramp.asm: Fix trampolines.
+
+2003-07-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR optimization/11368
+ * doc/invoke.texi (-falign-functions): Document that
+ when n is zero then a machine-dependent default is used.
+ (-falign-labels): Document that when n is zero then a
+ machine-dependent default is used and that -falign-labels =1
+ is equivalent to -fno-align-labels.
+ (-falign-loops): Likewise.
+ (-falign-jumps): Likewise.
+
+2003-07-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11198
+ * alias.c (objects_must_conflict_p): Return 1 if the types have
+ the same alias set, not if the alias sets only conflict.
+
+2003-07-06 Matthias Klose <doko@debian.org>
+
+ Backport from mainline:
+
+ 2003-07-04 Zack Weinberg <zack@codesourcery.com>
+
+ * doc/extend.texi: Delete entire section on multiline strings.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in: Replace PWD with PWD_COMMAND.
+
+2003-07-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11304
+ Backport from mainline:
+
+ 2003-04-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
+
+2003-07-03 Roger Sayle <roger@eyesopen.com>
+
+ PR target/10700
+ * fold-const.c (extract_muldiv_1): There's nothing that can be done
+ if the expression is a SAVE_EXPR.
+
+2003-07-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11381
+ * simplify-rtx.c (simplify_relational_operation): Check that
+ two equal operands have no side-effects before simplifying
+ the comparison.
+
+2003-07-01 Zack Weinberg <zack@codesourcery.com>
+
+ PR 2873
+ * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
+ expressions to prevent triggering on recent curses.h,
+ linux/nls.h, or X11/Xlib.h.
+ (stdio_va_list): Add _G_va_list to bypass pattern.
+ (strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
+ * fixinc/fixincl.x: Regenerate.
+
+2003-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5
+ <internal/stdio_core.h> too.
+ (stdio_va_list): Apply to IRIX 6.5 <internal/stdio_core.h> and
+ <internal/wchar_core.h> too.
+ Substitute va_list uses in inline definition.
+ * fixinc/fixincl.x: Regenerate.
+
+2003-07-01 Richard Henderson <rth@redhat.com>
+ (blame to: Loren James Rittle <ljrittle@acm.org>)
+
+ * real.h (ieee_extended_intel_96_round_53_format): New.
+ * real.c (ieee_extended_intel_96_round_53_format): New.
+ * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Use it
+ for XFmode and TFmode.
+
+2003-07-01 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/contrib.texi: Fix typos.
+ * doc/sourcebuild.texi: Likewise.
+
+2003-06-27 Gunther Nikl <gni@gecko.de>
+
+ PR target/11014
+ * config/m68k/m68k.c (m68k_output_mi_thunk): Use correct assembly
+ syntax for MIT / MOTOROLA.
+
+2003-06-27 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define.
+ * config/s390/s390.c (s390_secondary_output_reload_class): New function.
+ * config/s390/s390-protos.h (s390_secondary_output_reload_class):
+ Declare it.
+ * config/s390/s390.md ("reload_outti", "reload_outdi",
+ "reload_outdf"): New expanders.
+
+ * config/s390/s390.md ("movti" + splitters): Handle non-offsettable
+ memory operands as source.
+ ("movdi" + splitters): Likewise.
+ ("movdf" + splitters): Likewise.
+ * config/s390/s390.c (s390_split_ok_p): New function.
+ * config/s390/s390-protos.h (s390_split_ok_p): Declare it.
+
+2003-06-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/mips/mips.md (trap): Use break 0 when !TARGET_GAS.
+
+ * config/mips/iris6-o32.h (MIPS_ISA_DEFAULT): Remove.
+ (MIPS_CPU_STRING_DEFAULT): Redefine to mips2.
+
+ * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
+ !TARGET_IRIX6]: Define as NULL.
+
+ * config/mips/iris5gas.h (MDEBUG_ASM_SPEC): Override to match
+ DWARF 2 default.
+
+ * config/mips/dbxmdebug.h: New file.
+ * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it with
+ gas and --with-stabs.
+
+2003-06-27 Andreas Schwab <schwab@suse.de>
+
+ * config.gcc (m68k-*-linux*): Don't override extra_parts and
+ gnu_ld, use the generic *-*-linux* settings instead.
+
+2003-06-26 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/11054
+ * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
+ and SIGN_EXTRACT.
+
+2003-06-25 Zack Weinberg <zack@codesourcery.com>
+
+ PR bootstrap/3163
+ * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
+ (gcc_AC_FUNC_MMAP_BLACKLIST): New.
+ * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
+ and AC_CHECK_FUNCS lists, respectively. Use
+ gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
+ AC_FUNC_MMAP_FILE.
+ * configure, config.in: Regenerate.
+
+ * ggc-page.c (init_gcc): Call fatal_io_error, not abort,
+ if opening /dev/zero fails.
+
+2003-06-25 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (expand_builtin_strcpy): Construct new argument list
+ manually instead of using chainon to modify the original arglist.
+ (expand_builtin_strcmp): Likewise.
+
+2003-06-25 David O'Brien <obrien@FreeBSD.org>
+
+ * config/i386/i386.h (builtin_define): Remove duplicate __amd64
+ and __amd64__.
+
+2003-06-25 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+
+ * config/sh/sh.c (sh_register_move_cost):
+ Add case for moving between MAC_REGS.
+
+2003-06-24 Jerry Quinn <jlquinn@optonline.net>
+
+ PR other/11280
+ * gcc/doc/invoke.texi (Optimization Options): Remove -Os from
+ -freorder-functions description.
+
+2003-06-25 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/11084
+ * config/mips/mips.c (mips_expand_prologue): Fix setting of regno
+ for the end of a variable argument list.
+
+2003-06-25 Josef Zlomek <zlomekj@suse.cz>
+
+ * dwarf2out.c (gen_field_die): Return if type of decl is error mark.
+
+2003-06-24 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ PR target/11260
+ * config/alpha/alpha.md (sqrtdf2): Fix operand substitution.
+
+2003-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ * builtins.c (expand_builtin_strcpy): Don't evaluate side-effects in
+ src twice.
+
+2003-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ * config/s390/s390.c (s390_output_mi_thunk): Avoid .plt in -m31
+ mode, as it requires pic register loaded.
+
+2003-06-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/extend.texi: Fix typos.
+ * doc/md.texi: Likewise.
+
+2003-06-23 Roger Sayle <roger@eyesopen.com>
+ Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Add a note on testing and
+ remove duplicates from testers list.
+
+2003-06-23 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/invoke.texi: Document dump options, dT and dW.
+
+2003-06-23 Andreas Schwab <schwab@suse.de>
+
+ * doc/invoke.texi: Remove leading `-' from options in index.
+
+2003-06-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/invoke.texi: Document dump, .cfg.
+
+2003-06-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/invoke.texi: Alphabetize dump options.
+
+2003-06-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/invoke.texi: Remove a duplicate -dk.
+
+2003-06-22 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/rtl.texi: Fix the @findex for pre_modify.
+
+Sat Jun 21 13:37:52 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_va_arg): Fix allocation of temporary slot.
+
+2003-06-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Use Windows instead of Win32.
+
+ Update Andreas Jaeger's entry.
+
+ Merge the two entries of Kaveh Ghazi, David Edelsohn, and
+ Loren J. Rittle.
+
+2003-06-20 Geoffrey Keating <geoffk@apple.com>
+
+ PR c++/9393
+ * doc/invoke.texi (Debugging Options): Document -frandom-seed.
+ * configure.in: Check for gettimeofday.
+ * tree.c (flag_random_seed): Define.
+ (default_flag_random_seed): New.
+ (append_random_chars): Use flag_random_seed rather than trying
+ to acquire randomness here.
+ * tree.h (default_flag_random_seed): Declare.
+ * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
+ descriptions.
+ (decode_f_option): Handle -frandom-seed.
+ (print_switch_values): Call default_flag_random_seed.
+ * flags.h (flag_random_seed): Declare.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2003-06-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10888
+ * tree-inline.c (expand_call_inline): Do not warn about failing to
+ inline functions declared in system headers.
+ * doc/invoke.texi (-Winline): Expand on documentation.
+
+2003-06-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (gcc_cv_as_gstabs_flag): Disable if assembler warns.
+ * configure: Regenerate.
+ Fixes PR driver/9362.
+
+2003-06-19 Vladimir Makarov <vmakarov@redhat.com>
+
+ * haifa-sched.c (max_isse): Backport from the mainline.
+ (choice_entry): New structure.
+ (choice_stack, cycle_issued_insns, max_lookahead_tries,
+ cached_first_cycle_multipass_dfa_lookahead, cached_issue_rate):
+ New variables.
+ (choose_ready): Calculate max_lookahead_tries. Initiate
+ ready_try.
+ (schedule_block): Allocate/deallocate choice_stack. Change
+ cycle_issued_insns value as necessary.
+ (sched_init): Check cached_issue_rate.
+
+2003-06-20 Daniel Egger <degger@fhm.edu>
+ Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Building): Correct and improve statement
+ about parallel builds.
+
+2003-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (--with-gnu-as): Mention SPARC/Solaris and
+ SPARC64/Solaris as platforms where --with-gnu-as makes a difference.
+ (--with-as): Add @anchor.
+ (--with-gnu-ld): Fix typo.
+ (--with-ld): Add @uref to --with-as.
+
+2003-06-19 Kazu Hirata <kazu@cs.umass.edu>
+
+ * flow.c (initialize_uninitialized_subregs): Use
+ emit_move_insn instead of emitting a hardcoded move.
+
+2003-06-19 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (init_cumulative_args): Limit CALL_LIBCALL
+ to ABI_V4.
+
+2003-06-19 DJ Delorie <dj@redhat.com>
+
+ PR preprocessor/11022
+ * cppmacro.c (warn_of_redefinition): Handle cases where the two
+ definitions have different numbers of tokens.
+
+2003-06-18 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/unwind-ia64.c (_Unwind_GetCFA): New.
+ (_Unwind_FindEnclosingFunction): Implement.
+
+2003-06-18 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * config/rs6000/rs6000.c (init_cumulative_args): Add and handle LIBCALL
+ argument.
+ (function_arg): Handle CALL_LIBCALL flag.
+ * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
+ prototype.
+ * config/rs6000/rs6000.h (CALL_LIBCALL): New macro.
+ (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
+ (INIT_CUMULATIVE_ARGS): Add LIBCALL argument.
+ (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
+
+2003-06-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/10929
+ * tree-inline.c (expand_call_inline): Don't warn about failing to
+ inline a function which was made inline by -finline-functions.
+
+2003-06-17 Ranjit Mathew <rmathew@hotmail.com>
+
+ * install.texi (Testing): Add information on how to run Java
+ runtime tests separately.
+
+2003-06-17 Christopher Faylor <cgf@redhat.com>
+
+ * doc/install.texi: Add msvc rebuild caveat.
+
+2003-06-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/contrib.texi: Replace Hitachi with Renesas.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+
+2003-06-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Partly revert
+ 2003-01-23 patch. Corrected to handle kernels with changed ucontext.
+
+ * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Error on invalid
+ -msdata=eabi usages.
+
+2003-06-14 Richard Earnshaw <rearnsha@arm.com>
+
+ PR optimization/10842
+ From trunk:
+ 2003-01-20 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.md (sibcall_epilogue): Add an
+ UNSPEC_PROLOGUE_USE to prevent the link register from being
+ considered dead.
+
+ 2003-02-02 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.md (sibcall_epilogue): Set the "conds" to "clob".
+ (epilogue_insns): Likewise.
+
+2003-06-14 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/11183
+ * arm.c (output_move_double): Pass SImode to adjust_address.
+
+2003-06-13 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/install.texi (m32r-*-elf): Change company to Renesas.
+
+2003-06-13 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (output_call_mem): If the address references the link-register
+ use an instruction sequence that avoids early-clobbering IP.
+ (eliminate_lr2ip): Delete.
+
+2003-06-12 Richard Henderson <rth@redhat.com>
+
+ PR target/11089
+ * config/i386/i386.md (sse_movaps): Use an expander to force
+ one operand to be a register.
+ (sse_movups): Likewise.
+
+2003-06-12 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/10557
+ * rtlanal.c (subreg_offset_representable_p): Relax subreg check.
+
+2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ PR target/10142
+ * config/sparc/sparc.c (function_arg_record_value_parms): Add
+ new 'stack' field.
+ (function_arg_record_value_1): Set 'stack' to 1 if we run out of
+ integer slots for an integer field.
+ (function_arg_record_value_3): Shift vector index.
+ (function_arg_record_value_2): Likewise.
+ (function_arg_record_value): Initialize 'stack' to 0.
+ Set 'stack' to 1 if we run out of integer slots for an integer field.
+ Generate (parallel [(expr_list (nil) ...) ...]) if 'stack' is set to 1.
+
+2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/10955
+ * unroll.c (unroll_loop): Fix off-by-one bug.
+
+2003-06-12 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/10475
+ * expmed.c (emit_store_flag): Use simplify_gen_subreg directly
+ for extracting sub-words.
+
+2003-06-12 Richard Henderson <rth@redhat.com>
+
+ PR target/7594
+ * config/m68k/m68k.md (zero_extendhisi2): Use gen_lowpart_SUBREG.
+ (zero_extendqihi2, zero_extendqisi2): Likewise.
+
+2003-06-12 Richard Henderson <rth@redhat.com>
+
+ PR inline-asm/4823
+ * reg-stack.c (any_malformed_asm): New.
+ (check_asm_stack_operands): Set it.
+ (convert_regs_1): Check it before aborting.
+
+2003-06-12 Jakub Jelinek <jakub@redhat.com>
+
+ * c-decl.c (c_expand_body): Save input_filename and lineno,
+ set it before tree inlining and restore before return.
+
+2003-06-12 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR
+ to initialize GOT register.
+
+2003-06-12 Jakub Jelinek <jakub@redhat.com>
+
+ * c-opts.c (complain_wrong_lang): Add on argument.
+ Print no- switch if on is false.
+ (c_common_decode_option): Adjust caller.
+
+2003-06-11 Richard Henderson <rth@redhat.com>
+
+ * stmt.c (expand_asm_operands): Don't warn for memories with
+ queued addresses.
+
+2003-06-11 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR target/8787
+ * config/i386/djgpp.h (ASM_FILE_START): emit `.intel_syntax'
+ if -masm=intel.
+
+2003-06-10 Andrew Haley <aph@redhat.com>
+
+ * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
+ (LANG_HOOKS_DECLS): Add LANG_HOOKS_DECL_OK_FOR_SIBCALL.
+ (lhd_decl_ok_for_sibcall): New.
+ * langhooks.c (lhd_decl_ok_for_sibcall): New.
+ * langhooks.h (lang_hooks_for_decls.ok_for_sibcall): New field.
+ * calls.c (expand_call): Check lang_hook before generating a
+ sibcall.
+
+2003-06-09 Richard Henderson <rth@redhat.com>
+
+ 2003-05-11 Ulrich Weigand <uweigand@de.ibm.com>
+ * except.c (EH_RETURN_STACKADJ_RTX): Do not define.
+ (EH_RETURN_HANDLER_RTX): Likewise.
+ (expand_builtin_eh_return): Do not copy stack adjustment
+ if EH_RETURN_STACKADJ_RTX is not defined.
+ (expand_eh_return): Likewise. Also, do not pass stack
+ adjustment as argument to the eh_return pattern.
+ * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just
+ because EH_RETURN_STACKADJ_RTX is not defined.
+ * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX
+ is not defined, treat stack pointer like a regular register.
+ (uw_init_context_1): Set up fake initial stack pointer register.
+ (uw_install_context_1): Do not compute stack adjustment if
+ EH_RETURN_STACKADJ_RTX is not defined.
+
+ * config/i386/i386.md ("eh_return"): Remove first argument.
+ * config/mips/mips.md ("eh_return"): Likewise.
+ * config/rs6000/rs6000.md ("eh_return"): Likewise.
+ * config/sh/sh.md ("eh_return"): Likewise.
+
+ * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove.
+
+2003-06-08 Richard Henderson <rth@redhat.com>
+
+ * stmt.c (expand_asm_operands): Re-word warning.
+
+2003-06-08 Richard Henderson <rth@redhat.com>
+
+ * expr.h (EXPAND_MEMORY): New.
+ * expr.c (expand_expr): Check it.
+ * stmt.c (expand_asm_operands): Provide it when the constraint
+ requires a memory. Warn for memory input constraints without
+ a memory operand.
+
+2003-06-07 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (cb_register_builtins): Define __EXCEPTIONS for C also.
+
+2003-06-07 Kelley Cook <kelleycook@wideopenwest.com>
+
+ * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in
+ section names.
+ * configure: Regenerate.
+
+2003-06-07 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define.
+
+2003-06-06 James E Wilson <wilson@tuliptree.org>
+
+ PR inline-asm/10890
+ * reload1.c (merge_assigned_reloads): Abort only if two reloads have
+ different in fields.
+
+2003-06-06 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/11052
+ * ifcvt.c (noce_process_if_block): Fail if the destination has
+ side-effects.
+
+2003-06-06 Dan Kegel <dank@kegel.com>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/10331
+ * config/sh/t-linux (STMP_FIXPROTO): Define.
+
+ PR target/11096
+ * config/sh/linux.h (CPLUSPLUS_CPP_SPEC): Redefine so to include
+ -D_GNU_SOURCE.
+
+2003-06-05 David Miller <davem@redhat.com>
+ Richard Henderson <rth@redhat.com>
+
+ * optabs.c (HAVE_conditional_trap): Provide default.
+ (gen_conditional_trap): Likewise.
+ (init_optabs): Merge init_traps.
+ (gen_cond_trap): Use prepare_operand. Restructure and avoid ifdef.
+
+2003-06-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/md.texi (Machine Constraints): Correct the meaning of
+ constraints related to floating-point registers on SPARC.
+
+2003-06-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/10663
+ * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
+ assembler and linker output to /dev/null.
+ Use a 'sed' construct instead of 'grep -A1'.
+ * configure: Regenerate.
+
+2003-06-04 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (*-ibm-aix*): Native as and ld required
+ to bootstrap on AIX 5L.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (handle_cleanup_attribute): New.
+ (c_common_attributes): Add it.
+ * c-decl.c (finish_decl): Honor the cleanup attribute.
+ * doc/extend.texi (Variable Attributes): Document it.
+
+ * unwind-c.c: New file.
+ * Makefile.in (LIB2ADDEH): Add it.
+ * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
+ config/ia64/t-ia64: Likewise.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11018
+ * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
+ consistently to decide whether the scratch register is really
+ required.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/10876
+ * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
+ new 'O' constraint for constant 4096.
+ (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
+ * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
+ Do not transform into MINUS insn for constant 4096.
+ (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
+ for constant 4096 as third operand.
+ (addsi3 expander): Remove.
+ (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
+ new alternative for constant 4096 as third operand.
+ (subdi3 expander): Do not transform into PLUS insn for constant 4096.
+ (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
+ operand.
+ (subsi3 expander): Remove.
+ (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
+ constant 4096 as third operand.
+ * doc/md.texi (Machine Constraints): Document new 'O' constraint for
+ the SPARC port.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ * unwind.inc (_Unwind_Resume_or_Rethrow): Fix return type.
+ * unwind.h (_Unwind_Resume_or_Rethrow): Update.
+ (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
+
+2003-06-03 Douglas B Rupp <rupp@gnat.com>
+
+ * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
+ * doc/gcc.texi: Remove vms.texi section.
+ * doc/vms.texi: Remove obsolete file.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ PR target/10673
+ * config/i386/i386.c (ix86_split_long_move): Fix base register
+ mode for XFmode splits for TARGET_64BIT.
+
+2003-06-02 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+ * gcc/config.gcc Add support multilib parts for m32rx processor.
+
+2003-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/11044
+ * config/i386/i386.md (length attribute): Set length to 4
+ for instructions of type "fcmp".
+
+2003-06-01 Josef Zlomek <zlomekj@suse.cz>
+
+ * rtl.def (CONST_DOUBLE): Update comment.
+
+2003-06-01 Seth Arnold <sarnold@wirex.com>
+ Aldy Hernandez <aldyh@redhat.com>
+
+ PR10871
+ * config/rs6000/rs6000.c (rs6000_stack_info): Do not add
+ vrsave_size twice.
+
+2003-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi (mips-sgi-irix5): Add missing
+ HTML <hr> marker.
+
+2003-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/md.texi (Machine Constraints): Document
+ missing SPARC constraints.
+
+2003-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/md.texi (Automaton pipeline description): Use
+ "type" instead of "cpu" as the attribute in the examples.
+
+2003-05-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move
+ -mdebug/-no-mdebug switches ...
+ (MDEBUG_ASM_SPEC): ... here.
+ Use only with gas.
+ (EXTRA_SPECS): Initialize mdebug_asm_spec.
+ (CONSTANT_ADDRESS_P): Allow native IRIX 6 O32 assembler.
+
+2003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * diagnostic.h (output_verbatim): Remove printf attribute.
+ (verbatim): Likewise.
+ * diagnostic.c (output_pointer): New function.
+ (output_format): Use it. Handle %p format specifier.
+
+2003-05-27 Denis Chertykov <denisc@overta.ru>
+
+ * cselib.c (cselib_invalidate_regno): Abort if hardreg have a
+ VOIDmode.
+ * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in
+ call of cselib_invalidate_regno.
+
+2003-05-25 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Update Kean Johnston.
+
+Fri May 23 21:19:31 CEST 2003 Jan Hubicka <jh@suse.cz>
+ Andreas Jaeger <aj@suse.de>
+
+ * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__;
+ do not use assertion.
+
+Fri May 23 20:55:39 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (sse_loadss, sse_loadss_1, sse2_loadsd, sse2_loadsd_1):
+ Rewrite
+
+2003-05-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*.
+ Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*.
+
+2003-05-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR bootstrap/10805
+ * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap
+ failure with Sun assembler 5.0 Alpha 03/27/98.
+
+2003-03-21 Loren James Rittle <ljrittle@acm.org>
+
+ * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9
+ -D__sparc__ to match system compiler convention.
+
+2003-05-20 Kevin Ryde <user42@zip.com.au>
+ Wolfgang Bangerth <bangerth@dealii.org>
+
+ PR c/10355
+ * doc/extend.texi: Put a warning into the documentation
+ of attribute regparm.
+
+2003-05-20 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
+ ("*iorsi3_oi"): Likewise.
+
+2003-05-19 John David Anglin <dave.anglin@nrc-gnrc.gc.ca>
+
+ * pa/milli64.S ($$mulI): Fix typo.
+
+2003-05-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * hashtable.h (struct ht_identifier): Add new field "hash_value".
+ * hashtable.c (ht_lookup): Use it.
+ (ht_expand): Likewise. Avoid doing the same computation twice.
+ * tree.h (IDENTIFIER_HASH_VALUE): New macro.
+
+2003-05-19 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.c (use_return_insn): Do not use a single return
+ instruction for interrupt handlers which have to create a stack
+ frame.
+ (arm_expand_prologue): Do not pre-bias the return address of
+ interrupt handlers which create a stack frame.
+
+2003-05-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-05-10 Alexander Aganichev <aaganichev@yandex.ru>
+
+ * config/i386/i386.h (MODES_TIEABLE_P): Fix typo.
+
+2003-05-16 Wolfgang Bangerth <bangerth@dealii.org>
+
+ * doc/bugreport.texi: Remove most of the preface of the
+ bugs section.
+
+2003-05-16 Nick Clifton <nickc@redhat.com>
+
+ * config/mcore/mcore.md (jump): Use emit_jump_insn to generate the
+ jump insn.
+
+2003-05-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
+ as a C only option.
+
+2003-05-15 Wolfgang Bangerth <bangerth@dealii.org>
+
+ * doc/bugreport.texi: Remove most of the bug reporting
+ instructions and merge them into bugs.html.
+
+2003-05-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * sparc.c (print_operand): Fix uninitialized warning.
+
+2003-05-14 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c: Reset to prerelease format.
+ * doc/include/gcc-common.texi: Update version number.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR other/10745
+ * configure.in: Correct detection of GNU ld version number.
+ * configure: Regenerated.
+
+2003-05-08 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.c (gen_block_redirect, split_branches): Use
+ CODE_FOR_jump_compact instead of CODE_FOR_jump
+
+2003-05-06 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/linux.h: Fix typo.
+
+2003-05-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR other/10650
+ * unwind-dw2.c (uw_update_context_1): Don't set sp as cfa on s390.
+ (uw_init_context_1): Set initial sp to outer cfa on s390.
+
+2003-05-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR other/10658
+ * gcc.c (process_command): Update copyright date.
+
+2003-05-06 Bruce Korb <bkorb@gnu.org>
+
+ * inclhack.def: fix up whitespace differences from mainline.
+ mark fix tests that fail on BSD systems (like mainline).
+ Fixup the solaris_mutex_init test to cope with Sol. 2.6 (like mainline).
+ Removed unused SONY commentary (its obsolete anyway).
+ (svr4_mach_defines): remove i860 machine from comment (like mainline).
+ * gcc/fixinc/tests/base/pthread.h: solaris_mutex_init fix tests
+ * gcc/fixinc/tests/base/testing.h: remove ^M chars from some mistake
+ * gcc/fixinc/tests/base/Xm/Traversal.h: accommodate BSD's sed
+ * gcc/fixinc/tests/base/sys/stat.h: accommodate BSD's sed
+ * gcc/fixinc/fixincl.x: regenerated
+
+2003-05-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * doc/install.texi (mips-*-*): Add note about libstdc++.
+
+2003-05-05 Mark Mitchell <mark@codesourcery.com>
+ Kean Johnston <jkj@sco.com>
+
+ * toplev.c (check_global_declarations): Do not warn about unused
+ static consts.
+
+2003-05-05 Richard Henderson <rth@redhat.com>
+
+ * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
+ <BUILT_IN_DWARF_SP_COLUMN>: New.
+ * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
+ (BUILT_IN_DWARF_SP_COLUMN): New.
+ * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
+ (expand_builtin_dwarf_sp_column): New.
+ * except.h: Update to match.
+ * unwind-dw2.c (execute_stack_op): Correct stack push typo.
+ (execute_cfa_program): Record location expression address
+ before extracting length.
+ (uw_update_context_1): Install old CFA into stack pointer column.
+ (uw_init_context_1): Set cfa_reg to stack pointer column.
+
+2003-05-05 David O'Brien <obrien@FreeBSD.org>
+
+ * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
+ other FreeBSD ports.
+ (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
+
+2003-05-05 Jason Merrill <jason@redhat.com>
+
+ * stor-layout.c (update_alignment_for_field): Set DECL_ALIGN for
+ the field.
+
+2003-05-02 Zack Weinberg <zack@codesourcery.com>
+
+ PR c/10604
+ * c-opts.c (c_common_decode_option <OPT_Wall>): Set
+ warn_sign_compare for C++ only.
+ * doc/invoke.texi: Clarify documentation of -Wsign-compare.
+
+2003-05-03 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+ Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
+ Hernandez, and Kazu Hirata.
+
+2003-05-02 Richard Henderson <rth@redhat.com>
+
+ PR c++/10570
+ * except.c: Revert 04-01 and 04-02 forced-unwind changes.
+ * flags.h, toplev.c, doc/invoke.texi: Likewise.
+
+ * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
+ * unwind.inc (_Unwind_DeleteException): Check for null
+ exception_cleanup.
+
+ * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
+ * unwind.inc (_Unwind_Resume_or_Rethrow): New.
+ * unwind.h: Declare them.
+ * libgcc-std.ver (GCC_3.3): Export them.
+
+2003-05-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree-inline.c (find_alloca_call):
+ Use walk_tree_without_duplicates, instead of walk_tree.
+ (find_builtin_longjmp_call): Ditto.
+ * c-objc-common.c (c_cannot_inline_fn): Ditto.
+
+2003-05-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Add Daniel Berlin.
+
+2003-05-01 Rodney Brown <rbrown64@csc.com.au>
+
+ * rtl.h (subreg_offset_representable_p): Prototype.
+
+2003-05-01 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/9974
+ * gcse.c (reg_killed_on_edge): New function to test whether the
+ given reg is overwritten by any instruction queued on an edge.
+ (bypass_block): Ignore substitutions killed on incoming edges.
+ Don't bypass outgoing edges that have queued instructions.
+
+2003-04-30 Andreas Schwab <schwab@suse.de>
+
+ * doc/extend.texi (Other Builtins): Enclose multiple word data
+ type in braces for @deftypefn.
+
+2003-04-29 Jason Merrill <jason@redhat.com>
+
+ PR middle-end/10336
+ * jump.c (never_reached_warning): Really stop looking if we reach
+ the beginning of the function.
+
+Tue Apr 29 21:07:00 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * cse.c (count_reg_usage): Revert my previous patch.
+
+2003-04-29 Alexander Kabaev <kan@FreeBSD.ORG>
+
+ bootstrap/10452
+ * gengtype-yacc.y: Improve portability.
+
+2003-04-29 Zack Weinberg <zack@codesourcery.com>
+
+ * config.gcc: Install obsolete target list for GCC 3.3.
+ * doc/install.texi: Mention in specific-target instructions
+ that certain configurations are deprecated.
+
+2003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
+ * gcc.c (display_help): Likewise.
+ * toplev.c (f_options): Likewise.
+ * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
+ * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
+ * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
+ * config/s390/s390.h (TARGET_SWITCHES): Likewise.
+ * config/v850/v850.h (TARGET_SWITCHES): Likewise.
+
+2003-04-29 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
+ Update copyright.
+ * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a, for
+ -mno-cygwin case.
+
+2003-04-29 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * varasm.c (default_assemble_visibility): Use assemble_name.
+
+2003-04-29 David O'Brien <obrien@FreeBSD.org>
+
+ * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
+ * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
+ (SIZE_TYPE): New macro.
+ * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
+ (SET_ASM_OP): New macro.
+ (HANDLE_SYSV_PRAGMA): New macro.
+ (ASM_WEAKEN_LABEL): New macro.
+
+2003-04-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10180
+ * tree-inline.c (expand_call_inline): Call push_srcloc when
+ encountering EXPR_WITH_FILE_LOCATION. Honor warn_inline.
+
+2003-04-28 Mike Stump <mrs@apple.com>
+
+ * gdbinit.in: Update to reflect new identifier structure.
+
+2003-04-28 Richard Henderson <rth@redhat.com>
+
+ * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
+ * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
+ integral constant mult operand.
+ (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
+ (const_smulsi3_highpart_v8plus): Likewise.
+ (const_smulsi3_highpart): Likewise.
+ (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
+ (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
+ (const_umulsi3_highpart_v8plus): Likewise.
+ (const_umulsi3_highpart): Likewise.
+
+2003-04-28 David O'Brien <obrien@FreeBSD.org>
+
+ * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
+
+Mon Apr 28 09:54:56 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ PR c/10308
+ * reload.c (find_reloads_address_1): Reload plus at the place of
+ index register.
+
+2003-04-26 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
+ to clobber ar.pfs and ar.unat.
+ (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
+ fix test for spilling ar.pfs to the stack.
+
+2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
+
+ * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
+
+2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
+
+ * doc/extend.texi (Function Attributes): Document "near" and "far"
+ for 68HC11 and 68HC12.
+
+2003-04-25 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
+ addition of __PIC__ and __pic__ macros.
+ * config/xtensa/xtensa.h: Clean up indentation.
+
+2003-04-25 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
+ _GNU_SOURCE. Add definitions of __PIC__ and __pic__.
+ (SUBTARGET_CPP_SPEC): Define.
+ (LIB_SPEC): Delete.
+ * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
+ * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
+ * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
+ Define.
+ (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
+ (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
+
+2003-04-25 Richard Henderson <rth@redhat.com>
+
+ PR opt/10315
+ * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
+ checks during reload; use validize_mem instead of adjust_address.
+
+Fri Apr 25 15:43:23 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * emit-rtl.c (subreg_hard_regno): Check that register is
+ representable.
+ * reload.c (reload_inner_reg_of_subreg): When register is not
+ representable, reload the whole thing.
+ (find_reloads): Likewsie.
+ * rtlanal.c (subreg_representable_p): New function.
+
+Sun Apr 20 18:23:18 CEST 2003 Richard Henderson <rth@redhat.com>
+
+ (backported to 3.3 by Jan Hubicka)
+
+ * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
+ (builtin_setjmp_receiver): Delay call to ia64_reload_gp
+ until after reload.
+
+ * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
+
+ * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
+ (ia64_gp_save_reg): Remove.
+ (struct ia64_frame_info): Move to the beginning of the file;
+ add reg_save_gp.
+ (ia64_expand_call): Rearrange for new call patterns.
+ (ia64_reload_gp): New.
+ (ia64_split_call): New.
+ (ia64_compute_frame_size): Allocate reg_save_gp.
+ (ia64_expand_prologue): Save reg_save_gp.
+ (ia64_expand_epilogue): Don't restore gp.
+ (ia64_hard_regno_rename_ok): Remove R4 hack.
+ (ia64_function_ok_for_sibcall): New.
+ (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
+ call try_split on sibcall pattern.
+ * config/ia64/ia64-protos.h: Update.
+ * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
+ Rename from nopic versions. Confiscate 2nd argument to call as
+ a marker.
+ (call_pic, call_value_pic, sibcall_pic): Remove.
+ (call_gp, call_value_gp, sibcall_gp): New.
+ (builtin_setjmp_setup): Remove.
+ (builtin_setjmp_receiver): Call ia64_reload_gp.
+
+2003-04-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR opt/8705
+ * gcse.c (try_replace_reg): On a successful substitution of a constant
+ into a single set, try to simplify the source of the set.
+ * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
+ constant source.
+
+2003-04-24 Alexander Kabaev <kan@FreeBSD.ORG>
+
+ bootstrap/10453
+ * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
+ const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
+ where they might be not present. Use their _sp64 equivalent
+ instead.
+
+2003-04-23 Richard Henderson <rth@redhat.com>
+
+ PR opt/8300
+ * toplev.c (rest_of_compilation): Delay no_new_pseudos until
+ after initialize_uninitialized_subregs; update reg info assuming
+ new pseudos were created.
+
+2003-04-23 Olivier Hainque <hainque@act-europe.fr>
+
+ * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
+
+2003-04-23 James A Morrison <ja2morri@uwaterloo.ca>
+
+ * invoke.texi: Eliminate extra white-space caused by @gccoptlist{
+ on its own line.
+ Ensure there are two spaces between each pair of options and add
+ @gol where appropriate.
+
+2003-04-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
+
+2003-04-22 Devang Patel <dpatel@apple.com>
+
+ * cpptrad.c (_cpp_replacement_text_len): Add check for macro parameter count.
+ (_cpp_copy_replacement_text): Same.
+
+2003-04-22 Richard Henderson <rth@redhat.com>
+
+ PR 8866
+ * rtl.h (MEM_NOTRAP_P): New.
+ (MEM_COPY_ATTRIBUTES): Copy it.
+ * rtlanal.c (may_trap_p): Check it.
+ * expr.c (do_tablejump): Set it.
+
+ * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
+
+2003-04-22 David Turner <novalis@gnu.org>
+
+ * gbl-ctors.h: Add special license exception.
+ * libgcc2.h: Likewise.
+ * tsystem.h: Likewise.
+ * gcov-io.h: Likewise.
+
+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * Makefile.in (calls.o): Depend on except.h.
+ * calls.c: Include except.h.
+ (emit_call_1): Call note_eh_region_may_contain_throw if
+ appropriate.
+ * except.c (eh_region): Add may_contain_throw.
+ (expand_eh_region_end_cleanup): Do not include handler code when
+ it cannot be reached.
+ (note_eh_region_may_contain_throw): New function.
+ * except.h (note_eh_region_may_contain_throw): New function.
+
+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
+ changes.
+
+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * config/i386/winnt.c (i386_pe_}ark_dllimport): Make the new RTL
+ have the same form as the old RTL.
+
+2003-04-18 Mark Mitchell <mark@codesourcery.com>
+
+ * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
+ for orphaned jump tables.
+
+2003-04-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR/8705
+ * pa.md (movccfp): New expander.
+ (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
+ Reverse fcmp conditions.
+
+2003-04-20 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
+ of operand 1 correctly.
+
+2003-04-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * cfgrtl.c (try_redirect_by_replacing_jump): Remove unused variables.
+ * flow.c (life_analysis): Fix warning.
+
+2003-04-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
+ Add Segher Boessenkool.
+
+2003-04-18 Alexander Sotirov <sluncho@mirizma.org>
+
+ PR c/9177
+ * c-decl.c (c_expand_body): Don't garbage collect the function
+ body if we are going to dump it later.
+
+2003-04-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/7675
+ * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
+ on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
+ nested functions if they refer to declarations from parent functions.
+ * stmt.c (expand_decl): Don't put automatic variables in registers
+ if the DECL_NONLOCAL flag is set.
+
+2003-04-17 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Test Suites): Document support for testing
+ binary compatibility (moved from testsuite/README.compat).
+
+2003-04-17 Simon Law <sfllaw@engmail.uwaterloo.ca>
+
+ * doc/include/gpl.texi: Fix double-spacing after "MA" to match
+ the one provided by the FSF.
+
+2003-04-17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Binaries): Update URL and list of platforms
+ provided by ftp.thewrittenword.com.
+
+2003-04-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/invoke.texi (inline-limit): Fix pasto.
+
+2003-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR middle-end/8866
+ * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
+ jumptables.
+
+2003-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR/10271
+ * pa-protos.h (function_arg): Remove last argument.
+ * pa.c (function_arg): Likewise. Use CUMULATIVE_ARGS struct instead.
+ * pa.h (struct hppa_args): Add member incoming.
+ (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
+ member incoming.
+ (FUNCTION_ARG): Revise call to function_arg.
+ (FUNCTION_INCOMING_ARG): Delete.
+
+2003-04-15 J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR target/9594:
+ * sh.c (barrier_align): Also recognize stuff_delay_slot as
+ an indicator that a barrier was created by branch splitting.
+
+ merge from mainline:
+
+ 2003-03-05 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
+ for align_jumps is 4.
+
+ (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
+ use GENERAL_REGS.
+
+ 2003-03-03 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
+ and align_jumps if not set.
+ Force align_jumps to be at least 2.
+ When relaxing, force align_functions to be at least the maximum of
+ align_loops, align_jumps and 4.
+ * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
+ (sh_loop_align): Honour align_loops_log.
+
+ * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
+ to check for indirect_jump_scratch.
+ (indirect_jump_scratch): Add second set.
+ * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
+ when looking for indirect_jump_scratch.
+ Extract scratch register taking new structure of indirect_jump_scratch
+ into account.
+ (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
+
+2003-04-15 James A. Morrison <ja2morri@uwaterloo.ca>
+
+ * invoke.texi (Spec Files): Wrap if-exists-else example.
+ (MCore): Remove duplicate @itemx entries and @opindex entries.
+
+2003-04-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * unwind.inc (_Unwind_Backtrace): New function.
+ * unwind.h (_Unwind_Backtrace): Declare it.
+ * libgcc-std.ver (_Unwind_Backtrace): Export it.
+
+2003-04-15 Jason Merrill <jason@redhat.com>
+
+ PR middle-end/10336, c++/10401
+ * jump.c (never_reached_warning): Also stop looking if we reach the
+ beginning of the function.
+
+2003-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/10338
+ PR bootstrap/10198
+ PR bootstrap/10140
+ * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
+
+2003-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
+ instead of TOC_REGISTER in epilogue in
+ current_function_calls_eh_return functions.
+
+2003-04-14 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/10377
+ * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
+ ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
+ ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
+ ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
+ ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
+ ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
+ ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
+ ("*extopqihi_swap_side", "*extopqisi_swap_side")
+ ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
+ When next to constraint R, replace constraint i with n.
+
+Mon Apr 14 16:14:37 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ PR opt/10024
+ * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
+
+2003-04-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * doc/contrib.texi (Contributors): Correct my entry.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11-protos.h
+ (m68hc11_eq_compare_operator): Declare
+ * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
+ * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
+ (d_register_operand): Check the operand mode.
+ (hard_addr_reg_operand): Likewise.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
+ pattern for dbcc/ibcc generation for 68HC12.
+ ("doloop_end"): New pattern.
+ ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
+ ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
+ ("m68hc12_dbcc_dec_qi"): New pattern.
+ ("m68hc12_dbcc_inc_qi"): New pattern.
+ (split): Add split for the above when we can't use dbcc/ibcc due to
+ reloading.
+ (peephole2): Add peephole2 to generate the above when possible.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
+ mode of operand 0.
+ (peephole2 optimize const load): Likewise for operand 2.
+ ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
+ clobbers CC_REGNUM.
+ ("*rotrhi3_with_carry"): Likewise.
+ (ashift:DI 1 split): Update pattern to create the above rotate.
+ (lshiftrt:DI 1 split): Likewise.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
+ ("tstqi_z_used" split): Use it.
+ ("cmphi_z_used"): Likewise.
+ ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
+ ("cmpqi_z_used"): Likewise.
+
+2003-04-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7910
+ * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
+ recognize -mnorelax.
+ (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
+ (REG_CLASS_NAMES): Add its name.
+ (REG_CLASS_CONTENTS): Define its content.
+
+2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
+ parameters so that offsets are valid for far definition.
+ (__mulsi3): Likewise and use ret to return.
+ (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
+
+2003-04-11 Geoffrey Keating <geoffk@apple.com>
+
+ * doc/extend.texi (Empty Structures): New.
+
+2003-04-11 Richard Henderson <rth@redhat.com>
+
+ PR c++/10202
+ * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
+ not COMPLETE_TYPE_P for re-invoking layout_decl.
+
+2003-04-11 Simon Law <sfllaw@engmail.uwaterloo.ca>
+
+ * doc/bugreport.texi: Fix paragraph breaking between sections
+ in preparation for TeXinfo's paragraph indentation fixes.
+ * doc/extend.texi: Ditto.
+ * doc/invoke.texi: Ditto.
+ * doc/objc.texi: Ditto.
+ * doc/gcov.texi: Wrap 'gcov' in @command{}.
+ * doc/invoke.texi (Darwin Options): Add a preamble.
+
+2003-04-11 Richard Henderson <rth@redhat.com>
+
+ PR c/10201
+ * expr.c (expand_expr): Move DECL_RTL frobbing ...
+ * stor-layout.c (layout_decl): ... here.
+
+2003-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * doc/install.texi (hppa): Update links for HP-UX patches. Revise
+ notes on linker selection and configuration for 64-bit HP-UX port.
+ * doc/invoke.texi (hppa): Remove hppa text from description for
+ -ffunction-sections and -fdata-sections. Document -static, -nolibdld
+ and -threads options.
+
+ * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
+ libc.a on libdld.sl when -static is specified and -nolibdld is not
+ specified.
+ * pa64-hpux.h (LIB_SPEC): Likewise.
+ * pa-hpux11.h (LIB_SPEC): Likewise.
+ (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
+ is not specified.
+
+2003-04-08 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * doc/extend.texi (Template Instantiation): Refer to ISO standard,
+ not Working Paper.
+ * doc/invoke.texi (C++ Dialect Options): Same.
+
+Fri Apr 11 00:12:14 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ PR inline-asm/8803
+ * function.c (instantate_virtual_regs): Verify that all ASM statements
+ match after the virutal regs instantiation.
+
+2003-04-10 Steve Ellcey <sje@cup.hp.com>
+
+ * ia64-protos.h (addp4_optimize_ok): New.
+ * ia64.c (addp4_optimize_ok): New.
+ * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
+ (*ptr_extend_plus_2): Ditto.
+
+2003-04-10 Steve Ellcey <sje@cup.hp.com>
+
+ * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
+ not with convert_memory_address.
+ (store_constructor): Ditto, and same for copy_size_rtx.
+ (expand_expr): Ditto.
+
+2003-04-10 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (larl_operand): Do not allow symbols
+ marked with '@'.
+ (s390_encode_section_info): Mark symbols with forced 1-byte
+ alignment with '@'.
+ (s390_strip_name_encoding): Strip '@'.
+ (legitimize_pic_address): Handle symbols that are not valid
+ LARL operands in 64-bit mode.
+
+2003-04-10 Andrew Haley <aph@redhat.com>
+
+ * tree-inline.c (inlinable_function_p): Disable inlining for
+ synchronized methods.
+
+2003-04-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/fp-bit.c (unpack_d): Handle pair of doubles with
+ different signs correctly.
+
+2003-04-08 Richard Henderson <rth@redhat.com>
+
+ PR target/9886
+ * config/ia64/ia64.md (cmovdi_internal): Use 'n' not 'i' constraints.
+ (cmovsi_internal): Likewise.
+
+2003-04-07 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * doc/install.texi: Use @command and @samp for single- and
+ multi-word commands respectively.
+ * doc/makefile.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+
+2003-04-07 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+ Richard Henderson <rth@redhat.com>
+
+ PR c/9516
+ * expr.c (safe_from_p): Rearrange to avoid deep recursion in
+ favour of looping and tail recursion for TREE_LIST and binops.
+
+2003-04-07 Glen Nakamura <glen@imodulo.com>
+
+ PR opt/8634
+ * explow.c (maybe_set_unchanging): Don't flag non-static const
+ aggregate type initializers with RTX_UNCHANGING_P.
+
+2003-04-07 Richard Henderson <rth@redhat.com>
+
+ PR opt/8634
+ * function.c (purge_addressof_1): Don't try arithmetics for
+ unchanging memories.
+
+2003-04-07 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (Test Suites): Document testing support for
+ gcov and profile-directed optimizations; describe gcc.misc-tests.
+
+2003-04-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/rtl.texi (Comparison operations): Update to
+ record the allowed comparison modes.
+
+Mon Apr 7 22:13:38 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ PR target/10077
+ * i386.md (movsi_1): Fix SSEMOV alternative.
+
+Mon Apr 7 15:56:30 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ PR opt/10024
+ Revert Zack's change
+ * cfglayout.c (cfg_layout_redirect_edge):
+ Redirect any branch edges unified with the fallthru one.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Do not special
+ case fallthru edges when called via cfglayout.c
+
+2003-04-07 James A Morrison <ja2morri@student.math.uwaterloo.ca>
+
+ * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
+
+2003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (set_save_expr_context): Prototype.
+
+2003-04-05 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.h (RTX_COSTS): Halve Power multiply costs.
+ * config/rs6000/rs6000.md: Correct Power4 multiply latency.
+
+2003-04-05 Zack Weinberg <zack@codesourcery.com>
+
+ PR optimization/10024
+ * cfgrtl.c (force_nonfallthru_and_redirect): If e is the edge
+ we want, use it.
+
+2003-04-05 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ PR bootstrap/10267
+ * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
+ for configuring.
+
+2003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (set_save_expr_context): Use traditional-style function
+ definition.
+
+2003-04-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Add entries for Wolfgang
+ Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
+ Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
+ Danny Smith, and Ulrich Weigand.
+ Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
+ entry.
+
+2003-04-04 Zack Weinberg <zack@codesourcery.com>
+
+ PR bootstrap/10216
+ * configure.in: Check whether it is necessary to link against
+ libm to use ldexp.
+ * configure: Regenerate.
+ * Makefile.in: Add LDEXP_LIB substitution variable.
+
+2003-04-03 Jason Merrill <jason@redhat.com>
+
+ PR c/10175
+ * jump.c (never_reached_warning): Revert patch of 2002-11-02.
+ Look backwards for a line note.
+
+2003-04-02 Mike Stump <mrs@apple.com>
+
+ * doc/extend.texi (PowerPC AltiVec Built-in Functions): Split up
+ some to avoid faulting makeinfo --html.
+
+2003-04-02 Richard Henderson <rth@redhat.com>
+
+ * libgcc-std.ver (_Unwind_GetCFA): New.
+ * unwind-dw2.c (_Unwind_GetCFA): New.
+ * unwind-sjlj.c (_Unwind_GetCFA): New.
+ * unwind.h: Declare it.
+
+2003-04-02 Mike Stump <mrs@apple.com>
+
+ * doc/install.texi (Specific): Update pointers to apple.com.
+
+2003-04-01 Jan Hubicka <jh@suse.cz>
+
+ PR inline-asm/8088
+ * i386.c (ix86_hard_regno_mode_ok): Return 0 for MMX/SSE registers
+ when MMX/SSE is not available.
+
+2003-04-02 Richard Henderson <rth@redhat.com>
+
+ * except.c (sjlj_find_directly_reachable_regions): Recognize when
+ must-not-throw region has been deleted.
+
+2003-04-02 Richard Henderson <rth@redhat.com>
+
+ * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
+ optimization when flag_exceptions not enabled.
+
+2003-04-01 Richard Henderson <rth@redhat.com>
+
+ * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
+ notes for nothrow calls if flag_forced_unwind_exceptions.
+ (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
+ (sjlj_find_directly_reachable_regions): Likewise.
+ (reachable_handlers): Likewise.
+ (can_throw_external): Likewise.
+ (collect_one_action_chain): Record cleanups after catch-all and
+ must-not-throw if flag_forced_unwind_exceptions.
+ * flags.h (flag_forced_unwind_exceptions): Declare.
+ * toplev.c (flag_forced_unwind_exceptions): New.
+ (lang_independent_options): Add it.
+ * doc/invoke.texi: Add it.
+
+2003-04-01 Geoffrey Keating <geoffk@apple.com>
+
+ * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
+ (live_image_destructor): Reset image to initial state.
+ (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
+
+2003-04-01 Dale Johannesen <dalej@apple.com>
+
+ * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
+ (Zdenek Dvorak's fix from 3.4 branch)
+
+2003-04-01 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_fixup_clobbered_return_reg):
+ Do nothing if __builtin_return_address was not used.
+
+2003-04-01 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (function_arg_pass_by_reference):
+ Return true for variable sized types.
+ (rs6000_va_arg): Handle variable sized types passed by reference
+ on non-SVR4 ABI.
+
+2003-03-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c/9936
+ * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
+ variably-sized arrays in parameters.
+ (set_save_expr_context): New function.
+ (c_expand_body): Use it, via walk_tree.
+
+2003-03-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
+
+2003-03-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
+ notes as they are boggus.
+ (m68hc11_gen_movqi): Likewise.
+
+2003-03-31 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
+ save the soft registers after the frame pointer so that gdb can unwind
+ the frame more easily.
+ (expand_epilogue): Likewise in opposite order; allow to use X register
+ as scratch if the return value is by reference.
+
+2003-03-31 Jason Merrill <jason@redhat.com>
+
+ PR java/10145
+ * stor-layout.c (update_alignment_for_field): Respect
+ DECL_USER_ALIGN for zero-length bitfields, too.
+ * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
+ fields.
+
+2003-03-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR other/6955
+ * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
+ * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
+
+2003-03-30 Richard Henderson <rth@redhat.com>
+
+ PR c/10083
+ * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
+ don't zero_extend const inputs.
+
+2003-03-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
+ Uniformly use bugfix instead of bug fix.
+
+2003-03-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ PR doc/895
+ * ONEWS: Remove those items that already appear in the EGCS
+ release notes on our web pages.
+
+2003-03-29 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
+ TARGET_HARD_FLOAT. Reformat.
+ (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
+
+2003-03-29 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
+ set up before any trapping memory access if flag_non_call_exceptions.
+
+2003-03-29 Alan Modra <amodra@bigpond.net.au>
+
+ * reload1.c (reload_as_needed): Allow a USE in asm reloads.
+
+ * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
+
+2003-03-28 Loren James Rittle <ljrittle@acm.org>
+
+ * doc/install.texi (*-*-freebsd*): Update with known status.
+
+2003-03-28 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("literal_pool_31"): Output pool anchor
+ label even if pool empty when generating PIC.
+ ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
+
+2003-03-28 Kazu Hirata <kazu@cs.umass.edu>,
+ Dhananjay Deshpande <dhananjayd@kpit.com>
+
+ PR target/10205
+ * config/h8300/h8300.c (h8300_initial_elimination_offset):
+ Correct the offset computation when TARGET_NORMAL.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/10067
+ * config/sparc/sparc.md (jump pattern): Correct order
+ when issuing the annuling marker.
+
+2003-03-28 Alan Modra <amodra@bigpond.net.au>
+
+ * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
+ (replace_loop_mems): Add "written" param. Remove invalid REG_EQUAL
+ notes after hoisting.
+ (load_mems): Adjust replace_loop_mems call.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/8281
+ * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
+ (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Richard Henderson <rth@redhat.com>
+
+ PR target/10114 and PR target/10084
+ * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
+
+2003-03-27 Olivier Hainque <hainque@act-europe.fr>
+
+ PR ada/9953
+ * ada/Makefile.in (gnatlib configuration for HPUX): Split
+ the general section for HPUX into specific sections for
+ HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
+ 11 case.
+
+2003-03-26 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
+ registers used for global asm variables.
+ (s390_frame_info, s390_arg_frame_offset): Likewise.
+ (s390_emit_prologue, s390_emit_epilogue): Likewise.
+
+2003-03-26 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/contrib.texi (Contributors): Update Janis Johnson.
+
+2003-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
+ (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
+ zero extend old to it.
+ * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
+ operand.
+
+2003-03-26 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/7784
+ * reload.c (find_reloads_address): Handle
+ (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
+ all base registers.
+
+2003-03-25 Marcelo Abreu <mmabreu@inf.ufrgs.br>
+
+ PR other/10203
+ * version.c: Reference the GCC web site in the URL.
+
+2003-03-25 Jan Hubicka <jh@suse.cz>
+
+ PR opt/10056
+ * cfglayout.c (fixup_reorder_chain): Fix dealing with the conditional
+ jump jumping to the next instruction.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
+ * cfg.c (unchecked_make_edge): New.
+ * basic-block.h (unchecked_make_edge): Declare.
+
+2003-03-25 Jason Merrill <jason@redhat.com>
+
+ PR optimization/10171
+ * unroll.c (unroll_loop): Don't delete the jump at the end unless
+ we also delete a jump at the beginning.
+
+2003-03-25 Stephane Carrez <stcarrez@nerim.fr>
+
+ * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
+ contributor.
+
+2003-03-25 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/passes.texi (Passes): Properly document that we do not
+ perform jump2 any longer; remove command-line option -dJ.
+
+2003-03-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/8746
+ * config/i386/i386.md (and promoting splitters): Disable HImode to
+ SImode promoting when the sign bit matters and is not preserved, or
+ when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
+ for size.
+
+2003-03-24 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
+ _return_far
+ (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
+ (MULTILIB_EXCEPTIONS): Likewise.
+ * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
+ by calling some board support routine.
+ ("call_value"): Likewise.
+ ("*return_void"): Likewise for return.
+ ("*return_16bit"): Likewise.
+ ("*return_32bit"): Likewise.
+ * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
+ for 68HC11 too.
+ (DWARF2_ADDR_SIZE): Use 4 so that addresses can
+ * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
+ -mlong-calls for 68HC11.
+ * config/m68hc11/larith.asm (declare_near): New macro.
+ (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
+ (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
+ (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
+ (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
+ (__mulhi32): Likewise.
+ (ret): Update macro for 68HC11.
+ (__far_trampoline): Implement for 68HC11.
+ (__call_a16, __call_a32, __return_void, __return_16): New support
+ routines for 68HC11 memory bank switching calling support.
+ (__return_32): Likewise.
+
+2003-03-21 Glen Nakamura <glen@imodulo.com>
+
+ PR opt/10087
+ * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
+ while incrementing giv.
+ (record_biv): Check for duplicate biv locations and
+ set (struct induction *) v->same if found.
+
+2003-03-24 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/install.texi (Testing): Mention test result links from build
+ status pages.
+
+2003-03-24 Mark Mitchell <mark@codesourcery.com>
+
+ * function.c (put_var_into_stack): Change bool parameter to int.
+ (gen_mem_addressof): Likewise.
+ * rtl.h (gen_mem_addressof): Likewise.
+ * tree.h (put_var_into_stack): Likewise.
+ * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
+ gen_mem_addressof or put_var_into_stack.
+ * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
+
+2003-03-24 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/ia64.c (spill_tfmode_operand): Adjust calls to
+ gen_mem_addressof.
+
+2003-03-24 Jakub Jelinek <jakub@redhat.com>
+
+ * expr.c (do_jump): Handle UNSAVE_EXPR specially.
+
+2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/10072
+ * combine.c (simplify_if_then_else): Check that the mode
+ has MODE_INT class before applying the (OP Z (mult COND C2))
+ transformation.
+
+2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/9414
+ * config/sparc/sparc.md (widening peepholes): Use
+ widen_memory_access instead of change_address.
+
+2003-03-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7086
+ * c-typeck.c (c_mark_addressable): Adjust calls to
+ put_var_into_stack.
+ * expr.c (expand_expr): Likewise.
+ * function.c (put_var_into_stack): Add rescan parameter. Do not
+ call fixup_var_refs when rescan is false.
+ (gen_mem_addressof): Likewise.
+ (assign_parms): Adjust calls to put_var_into_stack.
+ (setjmp_protect): Likewise.
+ (setjmp_protect_args): Likewise.
+ * rtl.h (gen_mem_addressof): Change prototype.
+ * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
+ * tree.h (put_var_into_stack): Change prototype.
+
+2003-03-23 Arpad Beszedes <beszedes@cc.u-szeged.hu>
+
+ PR middle-end/9967
+ * builtins.c (expand_builtin_fputs): When optimizing for size,
+ don't transform fputs into fwrite.
+
+2003-03-24 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
+ globalize_label.
+
+ Merge from mainline.
+ 2003-01-13 Andreas Schwab <schwab@suse.de>
+ * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
+ directive.
+
+2003-03-23 Glen Nakamura <glen@imodulo.com>
+
+ PR c/8224
+ * fold-const.c (extract_muldiv_1): Don't pass through type conversions
+ when signedness changes for division or modulus.
+
+2003-03-23 Richard Henderson <rth@redhat.com>
+
+ * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
+ before flow2.
+ * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
+
+2003-03-23 Richard Henderson <rth@redhat.com>
+
+ PR opt/10116
+ * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
+ from then_bb or else_bb after flow2.
+ * jump.c (tablejump_p): New.
+ * rtl.h: Declare it.
+
+2003-03-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (output_cbranch): Fix typo in comment.
+
+2003-03-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
+ conditional branch to the following instruction. Use next_real_insn
+ instead of next_active_insn.
+ (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
+ instead of next_active_insn.
+
+2003-03-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o' instead
+ of 'm' constraint in forced-split alternatives.
+ ("*adddi3_31", "*subdi3_31"): Likewise. Also, pass 0 instead of 1 as
+ VALIDATE_ADDRESS parameter to operand_subword.
+
+2003-03-22 Svein E. Seldal <Svein.Seldal@solidas.com>
+
+ * config/c4x/t-c4x (MULTILIB_MATCHES): Make gcc recognize a c33 as
+ a c30 instead of a c40 processor.
+
+2003-03-21 Richard Henderson <rth@redhat.com>
+
+ PR opt/2001
+ * bb-reorder.c (maybe_duplicate_computed_goto_succ): New.
+ (make_reorder_chain_1): Call it.
+
+ * function.h (struct function): Add computed_goto_common_label,
+ computed_goto_common_reg.
+ * function.c (free_after_compilation): Zap them.
+ * stmt.c (expand_computed_goto): Use them to produce one
+ indirect branch per function.
+
+2003-03-22 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
+
+2003-03-22 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
+ writing .interrupt command.
+ * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
+ if it's a far or near function.
+ ("call_value"): Likewise.
+ * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
+ near attributes.
+ (m68hc11_handle_fntype_attribute): Accept attributes on methods.
+ (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
+ (m68hc11_initial_elimination_offset): Set current_function_far
+ according to attributes.
+ (expand_prologue): Likewise.
+ (trap_handler_symbol): New global to keep track of trap handlers.
+ (m68hc11_encode_section_info): Mark symbol as far if needed; set
+ trap symbol.
+ (m68hc11_is_far_symbol): New function.
+ (m68hc11_is_trap_symbol): New function.
+ * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
+ (m68hc11_is_trap_symbol): Declare.
+
+2003-03-21 Jan Hubicka <jh@suse.cz>
+
+ PR inline-asm/7916
+
+ * function.c (instantiate_virtual_regs_lossage): New function.
+ (instantiate_virtual_regs_1): Use it.
+ (instantiate_virtual_regs): Do not continue in substition when insn has
+ been deleted.
+
+2003-03-21 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.h: Do not include fixdfdi.h on s390x.
+ (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
+ (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
+
+2003-03-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR doc-bug/9813
+ * doc/extend.texi: Move misplaced paragraph about underscores in
+ variables in macros.
+
+2003-03-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/invoke.texi: Fix table environment.
+
+2003-03-21 Richard Earnshaw <rearnsha@arm.com>
+
+ * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
+ information.
+
+2003-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Richard Henderson <rth@redhat.com>
+
+ PR optimization/8366
+ * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
+ (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
+ PIC+SYMBOLIC_CONST in other modes than Pmode.
+ (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
+ the form PIC+SYMBOLIC_CONST as mode dependent.
+
+2003-03-20 Richard Henderson <rth@redhat.com>
+
+ * fold-const.c (extract_muldiv_1): Revert changing order of
+ operands in case MULT_EXPR of 2003-02-16 patch.
+
+2003-03-20 Richard Henderson <rth@redhat.com>
+
+ PR c/8602
+ * integrate.c (output_inline_function): Reset input_filename
+ and lineno from the decl before rest_of_compilation.
+
+2003-03-20 Richard Earnshaw <rearnsha@arm.com>
+
+ PR 10066
+ * arm.md (UNSPEC_PIC_BASE): New constant.
+ (pic_add_dot_plus_four): Wrap with unspec.
+ (pic_add_dot_plus_eight): Likewise.
+
+2003-03-19 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_preferred_reload_class): Do not
+ force constants to the pool unless necessary.
+ (s390_decompose_address): Prefer to use pointer as base,
+ not index register.
+ * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
+ Q alternative.
+ ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
+ "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
+ ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
+ "*zero_extendqisi2_31", "*zero_extendqihi2_31",
+ "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
+
+2003-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
+ rs6000_maybe_dead if !fromprolog.
+
+2003-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * ifcvt.c (dead_or_predicable): Fail if there are any references
+ to tablejump in merge_bb other than the final JUMP_INSN.
+
+2003-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * stmt.c (expand_start_case): Call emit_queue ().
+
+2003-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR 10062
+ * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
+ * pa-protos.h (output_lbranch): New prototype.
+ * pa.c (compute_frame_size): Change size of the frame marker on the
+ 64-bit ports to 48 bytes.
+ (pa_output_function_prologue): Document why SAVE_SP is set.
+ (hppa_expand_prologue): Save previous stack pointer into frame marker
+ on targets which use the hpux unwind library.
+ (output_cbranch): Use output_lbranch.
+ (output_lbranch): New function to output long unconditional branches.
+ * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
+ (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
+ 64-bit ports.
+ * pa.md (jump): Use output_lbranch.
+ (allocate_stack): New expander for dynamic stack allocation.
+
+2003-03-18 Alexandre Oliva <aoliva@redhat.com>
+
+ * toplev.c (independent_decode_option): Return success for --help,
+ --target-help and --version.
+
+2003-03-19 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/10073
+ * combine.c (force_to_mode <NOT>): Use gen_int_mode.
+
+2003-03-18 Andreas Schwab <schwab@suse.de>
+
+ PR target/7248
+ * config/m68k/m68k.md (iordi3): Fix setting low half to -1. From
+ martin@blom.org.
+
+2003-03-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/10091
+ * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
+ an unaligned member of TREE_ADDRESSABLE type.
+
+2003-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * dwarf2asm.h: Delete obsolete comment.
+ (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
+ dw2_asm_output_pcrel, dw2_asm_output_addr,
+ dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
+ dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
+ dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
+ dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
+
+2003-03-17 Steve Ellcey <sje@cup.hp.com>
+
+ * stmt.c (tail_recursion_args): Call promote_mode to set
+ unsignedp flag correctly before calling convert_move.
+
+2003-03-17 Dave Love <fx@gnu.org>
+ Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
+ __arch64__ to match Compaq cc.
+
+2003-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+
+ * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
+ argument to 0 for redirect_jump.
+
+2003-03-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8805
+ * except.c (eh_region_u_cleanup): Add prev_try.
+ (expand_eh_region_end_cleanup): Set it.
+ (reachable_handlers): Use it to skip over cleanup blocks.
+
+2003-03-16 Richard Henderson <rth@redhat.com>
+
+ PR opt/6798
+ * cfgcleanup.c: Include params.h.
+ (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES. Fix test for
+ too many outgoing edges from a block.
+ * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
+ * params.def (max-crossjump-edges): New.
+ * doc/invoke.texi: Document it.
+
+2003-03-16 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
+ optimize_size as well.
+
+2003-03-16 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
+ for D register to specify the low part of it, aka B.
+ (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
+ the register if we are loading 1 or -1 to it; avoid using temp
+ register when moving X/Y to Y/X.
+ (m68hc11_gen_movqi): Likewise.
+ (m68hc11_check_z_replacement): Fix last insn setting for compare case.
+
+2003-03-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/9016
+ * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
+ into the constant pool.
+
+2003-03-16 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ PR target/9164
+ * tree.c (get_narrower): For extensions with unchanged bit number,
+ return the unsignedness of the outer mode.
+
+2003-03-16 Roger Sayle <roger@eyesopen.com>
+
+ * c-typeck.c (build_component_ref): Turn "for" into "do .. while"
+ to avoid "may be used uninitialized" warning on ia64-hpux.
+ * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
+
+2003-03-16 Neil Booth <neil@daikokuya.co.uk>
+
+ * cppinit.c: Remove support of -A-.
+ * doc/cppopts.texi: Remove documentation of -A-.
+
+2003-03-15 Richard Henderson <rth@redhat.com>
+
+ 2003-01-14 Richard Henderson <rth@redhat.com>
+ * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
+ for force_const_mem.
+
+2003-03-15 Richard Henderson <rth@redhat.com>
+
+ PR target/9700
+ * config/alpha/alpha.c (alpha_va_start): Account for
+ current_function_pretend_args_size in the AP offset.
+
+2003-03-15 Jason Merrill <jason@redhat.com>
+
+ PR debug/6387
+ * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
+ function DIEs at toplevel.
+ (decls_for_scope): At -g1, don't descend into subblocks.
+
+2003-03-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * varasm.c (struct rtx_const): Change type of un.addr member
+ to struct holding an additional 'symbol' member.
+ (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
+ with equal string addresses as equal.
+ (simplify_subtraction): Adapt to struct rtx_const change.
+
+2003-03-15 Glen Nakamura <glen@imodulo.com>
+
+ * reload1.c (choose_reload_regs): Use && instead of ||
+ with REG_CANNOT_CHANGE_MODE_P condition.
+
+2003-03-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+
+ PR optimization/9387
+ * function.c (thread_prologue_and_epilogue_insns): Use redirect jump
+ for conditional returns.
+
+2003-03-14 Jason Merrill <jason@redhat.com>
+
+ PR optimization/6871
+ * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
+
+2003-03-12 Andrew Lewycky <andrew@mxc.ca>
+
+ PR c++/7050
+ * expr.c (store_expr): Don't attempt to store void-typed trees,
+ just evaluate them for side effects.
+
+2003-03-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/8396
+ * tree-inline.c (initialize_inlined_parameters): Make sure the value
+ of read-only constant arguments is passed with the right type.
+
+2003-03-14 Andreas Jaeger <aj@suse.de>
+ Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
+
+ * linux64.h (TARGET_OS_CPP_BUILTINS): Define _LP64 and __LP64__ in
+ 64-bit mode.
+
+2003-03-13 Mike Stump <mrs@apple.com>
+
+ * ggc-page.c (struct page_entry): Remove varray.h header.
+ Add index_by_depth field.
+ Remove save_in_use_p field.
+ (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
+ by_depth_max, by_depth, and save_in_use fields.
+ (INITIAL_PTE_COUNT): Add.
+ (save_in_use_p_i): Add.
+ (save_in_use_p): Add.
+ (adjust_depth): Add.
+ (push_depth): Add.
+ (push_by_depth): Add.
+ (prefetch): Add.
+ (free_page): Add support for and use faster data structures.
+ (ggc_alloc): Likewise.
+ (init_ggc): Likewise.
+ (ggc_recalculate_in_use_p): Likewise.
+ (ggc_pop_context): Likewise.
+ (clear_marks): Likewise.
+ * Makefile.in (ggc-page.o): Remove varray.h.
+
+2003-03-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (pa_init_builtins): Fix warning.
+
+2003-03-12 Richard Henderson <rth@redhat.com>
+
+ PR opt/8178
+ * config/i386/i386.md (ffssi2): Tighten op1 predicate to
+ the requirements of the output insns.
+
+2003-03-12 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
+ (ASM_OUTPUT_XDATA_SHORT): Remove.
+ (ASM_OUTPUT_XDATA_INT): Remove.
+ (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
+ (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
+ (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
+ (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
+
+2003-03-12 Andrew Lewycky <andrew@mxc.ca>
+
+ PR c++/7050
+ * expr.c (store_expr): Don't attempt to store void-typed trees,
+ just evaluate them for side effects.
+
+2003-03-12 Bob Wilson <bob.wilson@acm.org>
+
+ Backport from mainline:
+ 2003-03-12 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
+ to detect carry.
+ (subdi3): Reorder emitted instructions.
+
+2003-03-12 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
+
+2003-03-12 Daniel Jacobowitz <drow@mvista.com>
+
+ Fix PR target/9797 and PR c/9853.
+ * stmt.c (expand_decl_init): Call push_temp_slots () and
+ pop_temp_slots ().
+
+2003-03-12 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure.in (rlim_t): Define to long if no valid definition
+ found in sys/resource.h.
+ * config.in, configure: Regenerate.
+
+2003-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/9928
+ * c-decl.c (duplicate_decls): Discard the initializer of the new decl
+ only if it is a VAR_DECL.
+
+2003-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/9888
+ * config/i386/i386.md (jcc_1): Fix range.
+ (jcc_2): Likewise.
+ (jump): LIkewise.
+ (doloop_end_internal): Likewise.
+
+2003-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/9888
+ * config/i386/i386.md (movsi_1): Remove special alternatives
+ for %eax register.
+ (movhi_1): Likewise.
+ * config/i386/i386.c (memory_address_length): Do not use
+ short displacement when there is no base.
+ (ix86_attr_length_address_default): Handle LEA instructions.
+
+2003-03-11 Loren James Rittle <ljrittle@acm.org>
+
+ (per-port preprocessor fix, concurrent to Neil's cppinit.c fix)
+ * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
+ (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
+ (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
+ * config/freebsd.h (CPP_PREDEFINES): Remove.
+ (TARGET_OS_CPP_BUILTINS): New.
+ * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
+ instead of TARGET_OS_CPP_BUILTINS.
+ * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
+
+2003-03-11 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR bootstrap/9994
+ Backport from mainline:
+
+ 2003-02-18 Roger Sayle <roger@eyesopen.com>
+
+ * sbitmap.c (sbitmap_resize): New function.
+ * sbitmap.h (sbitmap_resize): Prototype here.
+ * recog.c (split_all_insns): Use sbitmap_resize.
+
+ Mon Feb 17 16:16:54 CET 2003 Jan Hubicka <jh@suse.cz>
+
+ * recog.c (split_all_insns): Fix memory overflow.
+
+ 2003-02-15 Richard Henderson <rth@redhat.com>
+
+ * recog.c (split_all_insns): Include new blocks in life update;
+ do a global life update.
+
+2003-03-11 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/cris/cris.md: Remove lingering EGCS reference.
+ ("*extopqihi_side_biap"): For HI operation, match
+ cris_additive_operand_extend_operator, not
+ cris_operand_extend_operator. Adjust condition.
+ ("*extopqihi_side", "*extopqihi"): Ditto.
+ ("*extopqisi_side_biap"): Correct operand numbers in condition.
+ ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
+ ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
+ ("*extophisi_swap"): Ditto.
+ ("*extopqihi_swap_side_biap"): For HI operation, match a simple
+ PLUS, not cris_operand_extend_operator. Adjust condition and
+ output template.
+ ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
+ * config/cris/cris.h (PREDICATE_CODES): Add
+ cris_additive_operand_extend_operator.
+ * config/cris/cris.c (cris_additive_operand_extend_operator):
+ New predicate.
+
+ * config/cris/aout.h (ENDFILE_SPEC): Undef.
+ (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
+ (TARGET_OS_CPP_BUILTINS): New macro.
+ (HAVE_GAS_HIDDEN): Undef.
+ * config/cris/cris.h: Remove EGCS references.
+ (CPP_SPEC): Remove "-$".
+ (INIT_CUMULATIVE_ARGS): Correct comment.
+ * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
+ (TARGET_OS_CPP_BUILTINS): New macro.
+ (CPP_PREDEFINES): Don't define. Move old definitions and...
+ (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
+ (TARGET_CPU_CPP_BUILTINS): New macro.
+ * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
+ definitions and the optional __PIC__, __pic__ and
+ __NO_UNDERSCORES__ definitions to...
+ (TARGET_OS_CPP_BUILTINS): New macro.
+
+2003-03-10 Devang Patel <dpatel@apple.com>
+
+ PR c++/9394
+ * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
+ (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
+ * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
+ (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
+ * cppspec.c (DEFAULT_SWTICH_TAKES_ARG): Remove.
+ (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
+
+2003-03-10 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
+ * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
+ Declare.
+ * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
+ for reg rename optimization to avoid using Z and Y registers.
+
+2003-03-10 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
+ when adding to X and Y since leax/leay are fast.
+ ("*addhi3"): Accept 'I' constraint when adding to address register.
+ ("rotlhi3"): Operand 1 must be a register_operand.
+ (peephole2): New peephole to optimize some adds.
+ * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
+ to represent -2 .. 2 small integer range.
+
+2003-03-10 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
+ each 16-bit rotation.
+
+2003-03-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/spe.h: Merge from mainline.
+
+2003-03-10 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (rest_of_compilation): Revert the previous patch.
+
+2003-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/9986
+ * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
+ after the common builtins.
+ * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
+ * pa.c (TARGET_INIT_BUILTINS): Define.
+ (pa_init_builtins): New function.
+
+ * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
+ space has been allocated for the outgoing arguments, set the arg
+ pointer for a call emitted after virtuals have been instantiated
+ using the stack pointer offset, otherwise abort.
+
+2003-03-06 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (rest_of_compilation): Defer RTL compilation only when
+ RTL inlining is done.
+
+ * i386.c (ix86_expand_vector_move): Do not crash when offloading
+ to memory in PIC mode.
+
+2003-03-08 Neil Booth <neil@daikokuya.co.uk>
+
+ * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
+
+2003-03-08 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/7796
+ * unroll.c (calculate_giv_inc): Handle constants being
+ loaded with LSHIFTRT.
+
+2003-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/8726
+ Backport patch from mainline:
+
+ 2003-01-08 Dale Johannesen <dalej@apple.com>
+
+ * function.c (assign_parms): Don't set pretend_args_size if
+ REG_PARM_STACK_SPACE.
+
+2003-03-06 Kurt Garloff <garloff@suse.de>
+ Geoffrey Keating <geoffk@apple.com>
+ Dale Johannesen <dalej@apple.com>
+ * params.def: Introduce parameter max-inline-insns-rtl for
+ a separate limit for the RTL inliner.
+ * params.h: Likewise.
+ * integrate.c (function_cannot_inline_p): Use it.
+ * toplev.c (decode_f_option): Set multiple parameters
+ controlling inlining with -finline-limit.
+ * params.def: Fix orthographic and typographic errors.
+ * doc/invoke.texi: Document parameters controlling inlining
+ and the way -finline-limit sets multiple of them.
+ * tree.h (struct tree_decl): Introduce inlined_function_flag,
+ recording whether the function became eligible for inlining
+ by a compiler flag rather than the declaration.
+ Provide DID_INLINE_FUNC macro to access it.
+ * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
+ * cp/decl.c (grokfndecl): Likewise.
+ * toplev.c (rest_of_compilation): Likewise.
+ * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
+ * print-tree.c (print_node): Report it.
+ * params.def: Introduce new max-inline-insns-auto limit.
+ * params.h: Likewise.
+ * tree-inline.c (inlinable_function_p): Apply it to functions
+ with DID_INLINE_FUNC set.
+ * toplev.c (decode_f_option): Initialize it from -finline-limit
+ value.
+ * doc/invoke.texi: Document new parameter.
+
+2003-03-06 Michael Matz <matz@suse.de>
+
+ * i386/i386.c (ix86_save_reg): Also test
+ current_function_uses_const_pool.
+
+2003-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
+ (epilogue): Don't generate return_external_pic when emitting PA 2.0
+ code.
+
+2003-03-05 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
+ according to va_arg type.
+ (EXPAND_BUILTIN_VA_ARG): Remove.
+ * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
+ * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
+
+2003-03-05 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (rest_of_compilation): Do duplicate loop headers when
+ optimizing for size.
+
+2003-03-05 Michael Matz <matz@suse.de>
+
+ * unwind.h: Add the GPL exception.
+ * Makefile.in (USER_H): Add unwind.h.
+
+2003-03-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/9799
+ * c-typeck.c (push_init_level): Add sanity check.
+
+2003-03-04 Steve Ellcey <sje@cup.hp.com>
+
+ * expr.c (convert_modes): Check for legal hard register.
+
+2003-03-04 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
+ offset without frame pointer.
+
+2003-03-04 Steve Ellcey <sje@cup.hp.com>
+
+ * expr.c (expand_expr): Call promote_mode to set unsignedp.
+
+2003-03-04 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/9367
+ * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
+ (BT_FN_INT_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_CONST_STRING_VAR,
+ BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
+ BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
+ * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
+ ATTR_NONNULL_3): Also include the nothrow attribute.
+ (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
+ vsnprintf, vscanf, vsscanf): Don't define attributes here.
+ * builtins.def (putchar, puts): Make full C89 built-ins.
+ (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
+ vsscanf, vsnprintf, vsprintf): New built-ins.
+ * c-common.c (c_common_nodes_and_builtins): Handle new macro
+ DEF_FUNCTION_TYPE_VAR_3.
+
+ * doc/extend.texi: Document these new built-in functions.
+
+2003-03-04 Jan Hubicka <jh@suse.cz>
+
+ * calls.c (rtx_for_function_call): Take the address as an argument
+ (expand_call): Do not modify the expression.
+
+2003-03-04 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
+ global register variables.
+
+2003-03-03 Richard Henderson <rth@redhat.com>
+
+ * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
+ * config.in, configure: Rebuild.
+ * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
+ * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
+ paired ldtoffx and ldxmov annotations.
+ (load_symptr_internal1): Remove.
+ (load_symptr_high, load_symptr_low): New.
+ * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
+
+2003-03-03 Jason Merrill <jason@redhat.com>
+
+ * calls.c (compute_argument_addresses): Give the new MEMs a
+ minimum alignment of PARM_BOUNDARY.
+
+2003-03-03 Geoffrey Keating <geoffk@apple.com>
+
+ * doc/install.texi (Specific): Update entry for powerpc-darwin.
+
+2003-03-03 Jan Hubicka <jh@suse.cz>
+ * toplev.c (rest_of_compilation): Avoid cfg_cleanup calls when not
+ optimizing.
+
+2003-02-28 Jan Hubicka <jh@suse.cz>
+
+ * combine.c (gen_lowpart_for_combine): Update handling of subregs_of_mode
+ * flow.c (life_analysis, mark_used_regs): Likewise.
+ * regclass.c (subregs_of_mode): Turn into single bitmap.
+ (cannot_change-mode_set_regs, invalid_mode_change_p): Update
+ dealing with subregs_of_mode
+ * regs.h (subregs_of_mode): Update prototype.
+
+2003-02-28 Jan Hubicka <jh@suse.cz>
+
+ * toplev.c (rest_of_compilation): Rearrange insn splitting
+ * reg-stack.c (reg_to_stack): Do not split insns.
+
+2003-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
+ warnings.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
+ min/max instructions by default as may result in reload errors.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
+ avoid reload problems; define split for it.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
+ * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
+ * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
+ * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
+ rotatert and rotate.
+ ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
+ ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
+ ("*rotrhi3_addr"): New split for shift insns on address register.
+ ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
+ * config/m68hc11/larith.asm (___rotlhi3): New asm function.
+ (___rotrhi3): Likewise.
+ * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
+
+2003-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
+
+2003-03-02 Ashif Harji <asharji@uwaterloo.ca>
+
+ * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
+ an external cpp during compilation.
+ (option_map): Likewise.
+ * objc/lang-specs.h (default_compilers): Similarly.
+ * doc/invoke.texi: Document -no-integrated-cpp flag.
+
+2003-03-01 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
+ POSIX thread support by default.
+
+2003-03-01 Roger Sayle <roger@eyesopen.com>
+
+ PR bootstrap/7389.
+ * basic-block.h (flow_bb_inside_loop_p): Correct prototype.
+
+2003-02-28 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config/netbsd.h: Update copyright years.
+ (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
+ -pthread is specified on the command line.
+
+2003-02-28 Bob Wilson <bob.wilson@acm.org>
+
+ Backport following patch:
+
+ 2003-02-28 Bob Wilson <bob.wilson@acm.org>
+ * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
+
+2003-02-27 Joel Sherrill <joel@OARcorp.com>
+
+ PR 9638/other
+ * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
+ this constant defaults to 1.
+
+2003-02-28 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md: Disable the movstrsi define_split.
+
+2003-02-28 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
+ #ifndef __mips16.
+
+2003-02-27 Geert Bosch <bosch@gnat.com>
+
+ * toplev.c (print_version): Add indentation for GGC heuristics and
+ output after printing version information.
+
+2003-02-27 James E Wilson <wilson@tuliptree.org>
+
+ PR bootstrap/9255
+ * combine.c (simplify_comparison): Require integral mode when
+ permuting SUBREG with AND.
+
+2003-02-27 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
+
+2003-02-27 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.md: Add TI constant splitter.
+
+2003-02-26 Jan Hubicka <jh@suse.cz>
+
+ * expr.c (emit_group_store): Fix crash when converting single
+ register into complex register.
+
+2003-02-26 Michael Matz <matz@suse.de>
+
+ * ra-colorize.c (merge_moves): Fix list handling.
+
+2003-02-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
+ is 8 * STACK_BOUNDARY.
+ * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
+
+2003-02-26 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/9681
+ * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
+
+2003-02-25 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (function_arg): Pass variable sized
+ structures correctly on the stack.
+
+2003-02-25 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR target/9732
+ * config/rs6000/rs6000.c (first_reg_to_save): Handle
+ PIC_OFFSET_TABLE_REGNUM for -fPIC too.
+ (rs6000_emit_prologue): Likewise.
+ (rs6000_emit_epilogue): Likewise.
+ * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
+ PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
+
+2003-02-25 Richard Henderson <rth@redhat.com>
+
+ * real.c (real_to_integer2): Force overflow result only for
+ unsigned overflow.
+
+2003-02-25 Jan Hubicka <jh@suse.cz>
+
+ PR target/8343
+ * m68k.md (umulsidi, mulsidi expanders): Use register operand.
+
+2003-02-24 Svein E. Seldal <Svein.Seldal@solidas.com>
+
+ * config/c4x/c4x.h (ASM_FILE_START): Added support for the c33
+ processor.
+
+2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
+ ISO C99 and C++.
+
+ * fixinc/inclhack.def (irix___restrict): Don't change __restrict
+ for C++ on IRIX 6.5.1[89].
+ * fixinc/tests/base/internal/sgimacros.h: New file.
+
+ * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
+ * fixinc/tests/base/internal/wchar_core.h: New file.
+
+ * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
+ socklen_t definition.
+ * fixinc/fixincl.x: Regenerate.
+ * fixinc/tests/base/sys/socket.h: New file.
+ Fixes PR libgcj/9652.
+
+2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
+ __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
+ * doc/extend.texi (Tru64 Pragmas): Reflect this.
+
+ * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
+ extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
+ * fixinc/fixincl.x: Regenerate.
+ * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
+ testcase.
+ Fixes PR c/5059, c/6126, other/9671.
+
+2003-02-24 Alan Modra <amodra@bigpond.net.au>
+
+ PR 9297, PR 9722
+ * calls.c (store_one_arg): Revert 1999-02-16 change. Revert
+ 2000-12-17 change. Pass EXPAND_STACK_PARM to expand_expr.
+ * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
+ (enum block_op_methods): Reorder for better store_expr optimization.
+ * expr.c (store_expr): Test bit 1 of "want_value" for call param
+ stores, test bit 0 for original want_value meaning. Pass
+ BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set. Adjust
+ recursive calls, and calls to expand_param.
+ (expand_expr): Handle EXPAND_STACK_PARM modifier. When cse
+ expected, set target to 0 rather than to subtarget. Formatting.
+
+2003-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
+ new default behavior.
+ * ggc-common.c: Include sys/resource.h.
+ (ggc_rlimit_bound): New function.
+ (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
+ defaults to account for rlimits.
+
+2003-02-22 Jan Hubicka <jh@suse.cz>
+
+ * config/linux.h (TARGET_HAS_F_SETLKW): Define.
+ * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
+
+2003-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * regmove.c (optimize_reg_copy_1): Do not replace a hard register
+ in an asm.
+
+2003-02-22 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (builtin_description): Add __builtin_ia32_paddq and
+ __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
+ and __builtin_ia32_psubq128.
+ * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
+ * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
+ (mmx_adddi3, mmx_subdi3): New.
+ * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
+ * xmmintrin.h (_mm_movepi64_pi64): New.
+ (_mm_add_epi64, _mm_sub_epi64): fix.
+ (_mm_mul_pu16): Rename to...
+ (_mm_mul_su32): ... this one.
+
+ * i386.c (def_builtin): Special case 64bit builtins.
+ (MASK_SSE164, MASK_SSE264): New constants.
+ (builtin_description): Add 64bit builtins.
+ (ix86_init_mmx_sse_builtins): Likewise.
+ * i386.h (enum ix86_builtins): Likewise.
+ * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
+ sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
+ (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
+ * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
+ * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
+ _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
+ _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
+
+ * builtins.c (expand_builtin_expect): Do not predict
+ flag_guess_branch_prob is not set.
+ * c-semantics.c (expand_stmt): Likewise.
+ * predict.c (predict_insn): Likewise.
+ * stmt.c (expand_continue_loop): Likewise.
+ * toplev.c (rest_of_compilation): Do not call
+ note_prediction_to_br_prob and note_prediction_to_br_prob
+ when not optimizing.
+
+ * basic-block.h (tidy_fallthru_edges): Kill.
+ * cfgrtl.c (tidy_fallthru_edges): Kill.
+ * cfgbuild.c (find_basic_blocks): Do not call tidy_fallthru_edges.
+ * cfgcleanup.c (delete_unreachable_blocks): Likewise.
+
+2003-02-22 Steven Bosscher <s.bosscher@student.tudelft.nl>
+
+ PR other/3782
+ * toplev.c (process_options): If flag_detailed_statistics is set,
+ then set time_report as well.
+
+ PR c/8828
+ * jump.c (never_reached_warning): Don't fall through BARRRIER
+ insns. Update comments to reflect what the function really does.
+
+2003-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
+ documentation.
+ * ggc-common.c: Include params.h
+ (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
+ init_ggc_heuristics): New functions.
+ * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
+ init_ggc_heuristics): Prototype.
+ * toplev.c (print_version): Output GGC heuristics.
+ (parse_options_and_default_flags): Call init_ggc_heuristics.
+
+2003-02-21 Jan Hubicka <jh@suse.cz>
+
+ * cfgrtl.c (commit_edge_insertions): Call
+ find_many_sub_basic_block only when some code has been emitted.
+ (commit_edge_insertions_watch_calls): Bring into sync with
+ commit_edge_insertions
+
+2003-02-21 Zack Weinberg <zack@codesourcery.com>
+
+ * cpphash.h (struct lexer_state): Add directive_wants_padding.
+ * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
+ for directives of type INCL.
+ (glue_header_name, parse_include): Use get_token_no_padding.
+ * cppmacro.c (replace_args): If directive_wants_padding,
+ provide padding tokens.
+
+2003-02-21 Jan Hubicka <jh@suse.cz>
+
+ * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
+ (commit_edge_insertions): Call find_many_sub_basic_blocks
+
+ * reg-stack.c (convert_regs): Cleax aux for blocks.
+
+2003-02-21 Glen Nakamura <glen@imodulo.com>
+
+ PR optimization/8613
+ * builtins.c (expand_builtin): Emit postincrements before expanding
+ builtin functions.
+
+2003-02-21 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR fortran/9038
+ * c-opts.c (sanitize_cpp_opts): Add Fortran front end
+ options to be ignored.
+ (c_common_decode_option): Ignore them when preprocessing.
+
+2003-02-21 Ben Elliston <bje@redhat.com>
+
+ PR other/5634
+ * doc/install.texi (Configuration): Explain using $HOME instead of
+ the ~ metacharacter when referring to home directories.
+
+2003-02-20 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (arm_reload_in_hi): Ensure that the scratch register does
+ not overlap the final result register.
+
+2003-02-20 Josef Zlomek <zlomekj@suse.cz>
+
+ * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
+ * rtl.c (reg_note_name): Likewise.
+ * rtl.h (enum reg_note): Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+
+2003-01-30 Richard Henderson <rth@redhat.com>
+
+ * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
+
+2003-02-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * expr.c (expand_expr): Use gen_int_mode for the argument
+ to gen_rtx_MULT.
+
+2003-02-19 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (cosxf2): Fix conditional.
+
+2003-02-18 Matt Austern <austern@apple.com>
+ * toplev.c, langhooks.c, langhooks-def.h: Move
+ write_global_declarations from toplev.c to langhooks.c.
+
+2003-02-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (general_operand_src): Always check
+ MODE.
+ (general_operand_dst): Likewise.
+
+2003-02-18 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (handle_used_attribute): Accept static data too.
+
+2003-02-18 Jim Wilson <wilson@redhat.com>
+
+ * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
+ instruction in output template.
+ (bsp_value): Change output template from string to C code, add %,
+ before actual instruction.
+ (flushrs): Mark as not predicable.
+
+2003-02-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
+ insn length.
+ (extendqisi2): Likewise.
+ (*extendhisi2_h8300): Likewise.
+
+2003-02-18 Matt Austern <austern@apple.com>
+
+ * langhooks.h, langhooks-def.h: introduce new langhook,
+ final_write_globals, with write_global_declarations as default.
+ * toplev.c: Move invocation of wrapup_global_declarations from
+ compile_file to new function, write_global_declarations. Change
+ compile_file to use final_write_globals hook. Change
+ wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
+ conditional.
+
+2003-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md: Correct and enhance comment.
+
+2003-02-16 Kai Henningsen <kaih@khms.westfalen.de>
+ Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Specific): Fix link for m68k-att-sysv.
+ (Binaries): Ditto for Sinix/Reliant Unix.
+
+2003-02-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
+ * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
+ * config/i386/i386.c (function_arg_pass_by_reference): New.
+ (ix86_va_arg): Support arguments passed by reference.
+
+2003-02-16 Arend Bayer <arend.bayer@web.de>
+ Richard Henderson <rth@redhat.com>
+
+ PR c/8068
+ * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
+ rearrange mult arguments for less recursion.
+ (extract_muldiv): New. Prevent runaway recursion.
+
+2003-02-16 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
+ MASK_ALIGN_DOUBLE.
+
+2003-02-15 Adam Nemet <anemet@lnxw.com>
+
+ PR opt/2391
+ * combine.c: Fix spelling in comment.
+ (cached_nonzero_bits): New function.
+ (cached_num_sign_bit_copies): New function.
+ (nonzero_bits_with_known): New macro.
+ (num_sign_bit_copies_with_known): New macro.
+ (nonzero_bits1): Rename from nonzero_bits. Add three new
+ arguments. Change calls from nonzero_bits to
+ nonzero_bits_with_known.
+ (num_sign_bit_copies1): Rename from num_sign_bit_copies. Add
+ three new arguments. Change calls from num_sign_bit_copies to
+ num_sign_bit_copies_with_known.
+ (nonzero_bits): New macro.
+ (num_sign_bit_copies): New macro.
+ (update_table_tick): Don't traverse identical subexpression more
+ than once.
+ (get_last_value_validate): Likewise.
+
+2003-02-15 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ PR optimization/7702
+ * reload1.c (reload_cse_simplify_set): Honor
+ CANNOT_CHANGE_MODE_CLASS.
+
+2003-02-15 Jan Hubicka <jh@suse.cz>
+
+ PR optimization/9258, PR fortran/7681
+ * global.c (struct allocno): Add no_stack_reg.
+ (global_conflicts): Set it.
+ (find_reg): Use it.
+
+2003-02-14 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
+ function.
+ * config/mn10300/mn10300-protos.h: Declare it.
+ * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
+ attribute cc of instructions that may use clr.
+
+2003-02-13 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
+
+ * inclhack.def (hpux_long_double): Tighten select and add bypass
+ regexp.
+ * fixincl.x: Rebuilt.
+
+2003-01-30 Richard Henderson <rth@redhat.com>
+
+ * ggc-page.c (G.context_depth_allocations): New.
+ (G.context_depth_collections): New.
+ (alloc_page): Set G.context_depth_allocations.
+ (ggc_collect): Set G.context_depth_collections.
+ (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
+ (ggc_pop_context): Early exit for no allocations or collections.
+
+2003-01-25 Segher Boessenkool <segher@koffie.nl>
+
+ * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
+ type for bitmaps. Use unsigned long.
+ (nBITMAP_WORD_BITS): New macro.
+ (BITMAP_WORD_BITS): New macro.
+ (rest of file): Use it.
+ * bitmap.c: Use it.
+
+2003-02-13 Josef Zlomek <zlomekj@suse.cz>
+
+ * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
+ edge and block ends with a jump insn it must be simple jump.
+
+2003-02-13 Robert Lipe <robertlipe@usa.net>
+ Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Specific): Update three SCO-related URLs.
+
+2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
+
+ * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
+ * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
+
+2003-02-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
+
+2003-02-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/9100
+ Backport patch from mainline:
+
+ 2003-01-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9264
+ * c-lex.c (c_lex): Set the token value to error_mark_node for
+ invalid numeric constants.
+
+2003-02-11 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (ahi?v*3): Set third operand type to TImode.
+ * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
+
+ * i386.c (contains_128bit_aligned_vector_p): New function
+ (ix86_function_arg_boundary): Properly align vector modes.
+
+2003-02-11 Bob Wilson <bob.wilson@acm.org>
+
+ Backport following patch:
+
+ 2003-02-11 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
+ * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
+ as a SET pattern.
+
+2003-02-11 Jan Hubicka <jh@suse.cz>
+
+ * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
+ integer mode.
+
+ * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
+ Change code so they are arithmetic expressions now.
+ * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
+ simplify_ternary_operation): Deal with VEC_* expressions.
+
+2003-02-11 Richard Henderson <rth@redhat.com>
+
+ 2003-01-15 Richard Henderson <rth@redhat.com>
+ * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
+ also check that GP is being used.
+ (alpha_find_lo_sum_using_gp): New.
+ (alpha_does_function_need_gp): Use get_attr_usegp.
+ * config/alpha/alpha-protos.h: Update.
+ * config/alpha/alpha.md (attr usegp): New. Annotate patterns
+ as needed.
+
+2003-02-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
+ hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
+ * fixincl.x: Rebuilt.
+ * tests/base/stdlib.h: Update.
+ * tests/base/ctype.h: New file.
+
+2003-02-11 Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/ppc64-fp.c: New file.
+ * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
+
+2003-02-11 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ PR optimization/9651
+ * rtlanal.c (may_trap_p): Handle FIX.
+
+2003-02-11 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (choose_function_section): Choose sections correctly.
+
+2003-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * reload1.c (first_label_num): New.
+ (reload): Index offsets_known_at and offsets_at using difference of
+ label number and first label number. Don't use offset pointers.
+ (set_label_offsets, set_initial_label_offsets): Likewise.
+
+2003-02-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ PR c/7741
+ * c-decl.c (duplicate_decls): Discard the initializer of the
+ new decl when the types are conflicting.
+
+2003-02-09 Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+ * doc/install.texi: Squeeze and streamline section on
+ testing and regression checking.
+
+2003-02-07 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config/t-netbsd (USER_H): Revert previous change.
+
+2003-02-07 Richard Henderson <rth@redhat.com>
+
+ PR 9226
+ * gcse.c (local_cprop_find_used_regs): New.
+ (local_cprop_pass): Use it.
+
+2003-02-07 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (sse2_nandv2di3): Fix.
+
+ * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
+
+2003-02-07 Andrey Petrov <petrov@netbsd.org>
+
+ * optabs.c (expand_float): Search wider integer modes first.
+
+2003-02-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
+ target_cpu_default.
+ * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
+ if not MASK_NO_SPACE_REGS.
+ (output_call): Adjust return pointer, don't load new space register
+ into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
+ (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
+ TARGET_NO_SPACE_REGS is true.
+ * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
+ conditions.
+ (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
+ (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
+ true. Use bve when TARGET_64BIT is true.
+
+2003-02-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Richard Henderson <rth@redhat.com>
+
+ PR c/9530
+ * config/i386/i386.h (FUNCTION_OK_FOR_SIBCALL): Forbid sibcalls
+ from functions that return a float to functions that don't.
+
+2003-02-04 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * reload.c (find_reloads): Do not use the mode specified in the insn
+ pattern as reload mode for address operands. Do not generate optional
+ reloads for operands where a mandatory reload was already pushed.
+
+2003-02-04 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (movti_rex64): Fix constraint.
+
+2003-02-04 Rodney Brown <rbrown64@csc.com.au>
+
+ * config/i386/i386.c (x86_function_profiler): Fix typo in format.
+
+2003-01-23 Mike Stump <mrs@apple.com>
+
+ * regclass.c (init_reg_autoinc): New function.
+ (regclass): Move initialization of forbidden_inc_dec_class from
+ here...
+ (init_regs): to here. Avoids reinitialization for each function,
+ saving compilation time.
+
+2003-02-04 Phil Edwards <pme@gcc.gnu.org>
+
+ * doc/install.texi (*-*-linux-gnu): Mention glibc requirements
+ for recent libstdc++. Remove formatting cruft.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
+ doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
+ * doc/install.texi: Update copyright dates. Update to GFDL 1.2.
+
+2003-02-03 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
+ coprocessor registers before floating-point registers.
+ * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
+ to account for a previously removed register.
+ (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
+ Delete unused macros.
+
+2003-02-03 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_expand_store_builtin): Always force op1 to register.
+ (mov*_internal): Fix predicates; require one of operands to not be memory.
+ (SSE?MMX move expanders): Fix predicates; force one of operands to register.
+ (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
+ (movups/movupd/movdqu patterns): Force one of operands to not be memory.
+
+2003-02-03 Jan Hubicka <jh@suse.cz>
+
+ * regclass.c (cannot_change_mode_set_regs): Correct argument order.
+
+2003-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * mips/_tilib.c: Don't include tsystem.h. Don't define
+ LIBGCC2_WORDS_BIG_ENDIAN.
+
+2003-02-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
+
+2003-02-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa-protos.h (attr_length_millicode_call): Remove second argument.
+ (attr_length_indirect_call, attr_length_indirect_call,
+ attr_length_save_restore_dltp): New prototypes.
+ * pa.c (attr_length_millicode_call): Remove second argument. Check
+ INSN_ADDRESSES_SET_P in distance calculation.
+ (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
+ INSN_ADDRESSES.
+ (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
+ (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
+ Call attr_length_call directly.
+ (attr_length_indirect_call, output_indirect_call,
+ attr_length_save_restore_dltp): New functions.
+ * pa.md (attr_length_millicode_call): Drop second argument from all
+ patterns.
+ (return_internal_pic): Delete.
+ (return_external_pic): Remove use of PIC register and pic operand and
+ flag checks.
+ (epilogue): Use return_internal for both normal and pic code.
+ (call, call_value): Emit new 32-bit pic patterns for symref and
+ indirect calls. Remove uses for arg pointer and pic register.
+ (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
+ call_reg_pic_post_reload, call_val_symref_pic,
+ call_val_symref_pic_post_reload, call_val_reg_pic,
+ call_val_reg_pic_post_reload): New pre and post reload insn patterns.
+ Implement define_split and define_peephole2 patterns for pre reload
+ patterns.
+ (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
+ call_value_internal_reg_64bit): Shorten names.
+ (all call patterns): Explicitly indicate registers used and clobbered.
+ Use attr_length_indirect_call and attr_length_save_restore_dltp for
+ attribute length calculation. Move code generation for indirect calls
+ to output_indirect_call.
+ (sibcall, sibcall_value): Don't restore PIC register.
+ (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
+ register retore.
+
+2003-02-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Testing): Simplify and compress instructions
+ concerning Dejagnu.
+
+2003-02-01 Daniel Jacobowitz <drow@mvista.com>
+
+ * dwarf2out.c (gen_type_die): Check for typedefs before calling
+ for TYPE_MAIN_VARIANT.
+
+2003-02-01 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * reload.c: Revert 2003-01-31 change.
+
+2003-02-01 Jan Hubicka <jh@suse.cz>
+
+ PR c/9506
+ * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
+
+2003-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
+ updating of total_code_bytes from prologue to epilogue.
+
+2003-01-31 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * regclass.c (record_reg_classes): Fix incorrect argument
+ to EXTRA_ADDRESS_CONSTRAINT macro.
+
+2003-01-31 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * reload.c (find_reloads): Do not use the mode specified in the insn
+ pattern as reload mode for address operands. Do not generate optional
+ reloads for operands where a mandatory reload was already pushed.
+ Generate optional reloads only in the final pass though find_reloads.
+ (have_replacement_p): New function.
+
+2003-01-31 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Testing): Remove a reference to our obsolete
+ /testresults web pages and strip redundant information concerning
+ test results.
+ (Binaries): Refer to Microsoft Windows instead of listing all
+ possible variants.
+
+2003-02-01 Jan Hubicka <jh@suse.cz>
+
+ * loop.c (emit_prefetch_instructions): Do conversion at right place in
+ RTL chain.
+
+ * combine.c (simplify_set): Reverse order of ragumetns to
+ REG_CANNOT_CHANGE_MODE_P
+ * df.c (df_def_record_1): Likewise.
+ * recog.c (register_operand): Likewise.
+ * simplify-rtx.c (simplify_subreg): Likewise.
+ * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
+ CANNOT_CHANGE_MODE_CLASS.
+ * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
+ Likewise.
+ * reload.c (push_reload): Likewise.
+ * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
+ * mips.c (mips_cannot_change_mode_class): Update.
+ * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
+ * sh.c (sh_cannot_change_mode_class): Update.
+ * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
+ * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
+
+2003-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
+ duplicated code.
+
+2003-01-30 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (arm_compute_initial_elimination_offset): If optimizing for
+ size, the link register is always saved if any other register is
+ saved.
+
+2003-01-30 Jerry Quinn <jlquinn@optonline.net>
+
+ * gcc/doc/invoke.texi (Optimization Options): Group together
+ optional and experimental flags. Move trapv and bounds-check
+ out of this section. Group floating point flags together.
+ (Code Gen Options): Move trapv and bounds-check to here.
+
+2003-01-30 Jerry Quinn <jlquinn@optonline.net>
+
+ * gcc/doc/invoke.texi (Optimization Options): List -O levels
+ for each optimization flag.
+
+2003-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ PR target/9316
+ * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
+ * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
+ * config/rs6000/t-rtems: New file. multilib variants to match OS.
+ * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
+ rs6000/t-ppcgas so we get the desired multilibs.
+
+2003-01-30 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/fp-bit.h (__make_dp): Declare if TMODES.
+
+2003-01-29 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
+ * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
+
+2003-01-29 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
+ from ia64_aix_select_rtx_section.
+ (ia64_rwreloc_select_section): Simlarly; use default*_1 function
+ instead of saving and restoring flag_pic.
+ (ia64_rwreloc_unique_section): Similarly.
+ * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
+ TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
+ * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
+ TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
+
+2003-01-29 Joel Sherrill <joel@OARcorp.com>
+
+ PR bootstrap/9296
+ * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT. Apparently no code
+ depended on it being defined until now.
+
+2003-01-29 Joel Sherrill <joel@OARcorp.com>
+
+ PR target/9295
+ * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
+ RTEMS code knows which C++ initialization style the toolset
+ configuration is using.
+
+2003-01-29 Joel Sherrill <joel@OARcorp.com>
+
+ PR bootstrap/9293
+ * config/m68k/t-crtstuff: Replace spaces with tabs, add
+ $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
+
+2003-01-29 Joel Sherrill <joel@OARcorp.com>
+
+ PR bootstrap/9292
+ * config.gcc (hppa1.1-rtems): Did not include t-rtems nor enable
+ RTEMS threads.
+ * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
+
+2003-01-25 Andrew Haley <aph@redhat.com>
+
+ * tree-inline.c (walk_tree): Add CHAR_TYPE.
+
+2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * doc/install.texi: Add documentation for installation into
+ tooldirs and with DESTDIR.
+
+2003-01-28 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
+ register.
+ * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
+ * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
+
+2003-01-28 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (movti_string): Remove clobber.
+ * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
+ generate PARALLEL with clobber for TARGET_POWER.
+
+2003-01-28 Richard Henderson <rth@redhat.com>
+
+ * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
+ in no-else-block case. Add commentary.
+
+2003-01-28 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
+ (UNITS_PER_FPVALUE): Defined as the width of a long double, or
+ zero if no hardware floating point.
+ (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
+ (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
+ (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
+ (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
+ (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
+ * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
+ * config/mips/mips.c (override_options): Use it.
+ (mips_arg_info): Pass TFmode values in even FP registers on N32
+ and N64.
+ (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
+ (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
+ (mips_va_arg): Use UNITS_PER_HWFPVALUE. Impose additional
+ even-register-like alignment to 128-bit arguments.
+ (save_restore_insns): Use UNITS_PER_HWFPVALUE.
+ (mips_function_value): Likewise. Return TFmode in $f0 and $f2
+ on N32 or N64.
+ * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
+ * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
+ (TPBIT): Set to tp-bit.c.
+ (tp-bit.c): Create out of fp-bit.c.
+
+2003-01-27 Gabriel Dos_Reis <gdosreis@sophia.inria.fr>
+
+ * c-parse.in: Remove '%expect 32' directive when in objc mode.
+
+2003-01-27 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
+
+2003-01-27 Richard Earnshaw <rearnsha@arm.com>
+
+ PR optimization/9090
+ * function.c (purge_addressof_1): After pushing an addressed register
+ onto the stack, simplify the result.
+
+2003-01-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/extend.texi: Fix typo.
+
+2003-01-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/cppopts.texi: Fix typo.
+ * doc/objc.texi: Likewise.
+ * doc/passes.texi: Likewise.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * real.c (ibm_extended_format): Add 53 to minimum exponent.
+ (encode_ibm_extended): Adjust.
+
+2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/gccint.texi: Update the copyright.
+
+2003-01-26 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/cpp.texi: Fix typos.
+ * doc/extend.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
+ (install-cpp, installdirs, install-common)
+ (install-driver, install-info, install-man)
+ (install-headers, install-include-dir, install-headers-tar)
+ (install-headers-cpio, install-headers-cp, install-mkheaders)
+ (install-collect2, uninstall): Prepend $(DESTDIR) to
+ destination paths in all (un)installation commands.
+ (install-driver): Rewrite $(LN) commands to support DESTDIR
+ with "ln" as well as with "ln -s".
+ (installdirs): Simply use mkinstalldirs.
+ (install-libgcc, install-multilib): Also pass DESTDIR.
+ * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
+ installation destination variable ldir.
+ * config/alpha/t-osf4 (SHLIB_INSTALL): Prepend $$(DESTDIR)
+ to $$(slibdir) in the installation commands.
+ * config/arm/t-netbsd (SHLIB_INSTALL): Likewise.
+ * config/ia64/t-hpux (SHLIB_INSTALL): Likewise.
+ * config/mips/t-iris5-6 (SHLIB_INSTALL): Likewise.
+ * config/pa/t-hpux-shlib (SHLIB_INSTALL): Likewise.
+ * config/rs6000/t-aix43 (SHLIB_INSTALL): Likewise.
+ * config/rs6000/t-aix52 (SHLIB_INSTALL): Likewise.
+ * config/t-slibgcc-elf-ver (SHLIB_INSTALL): Likewise.
+ * config/t-slibgcc-sld (SHLIB_INSTALL): Likewise.
+ * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
+ $(libsubdir) in the installation commands.
+
+2003-01-26 Alexandre Oliva <aoliva@redhat.com>
+
+ * fp-bit.h: Define macros for TFmode floating-point constants
+ in IBM-extended TFmode types.
+ (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
+ widths.
+ * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
+ TFmode type.
+
+ * config/fp-bit.h: Define macros for TFmode floating-point
+ constants in IEEE quad TFmode type. Declare functions according
+ to L_ macros.
+ (TMODES): Define if __LDBL_MANT_DIG__ is 113.
+ (TFtype, TItype, UTItype): Define if TMODES is defined.
+ (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
+ (F_T_BITOFF, D_T_BITOFF): Define.
+ (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
+ guaranteed to be wide enough.
+ * config/fp-bit.c: Check for L_ macros for tf functions.
+ (__thenan_tf): New.
+ (nan): Adjust.
+ (pack_d, unpack_d): Support IEEE 854 quad type.
+ (_fpmul_parts): Support TFmode. Compute exponent adjustment
+ from FRAC_NBITS, FRAC_BITS and NGARDS.
+ (usi_to_float): Cast constants to be shifted to fractype
+ instead of assuming long long is wide enough.
+ (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
+
+ * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
+ (DBBIT_FUNCS): Added _df_to_tf.
+ (TPBIT_FUNCS): New.
+ (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
+ (LIBGCC_DEPS): Added TPBIT.
+ * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
+
+ * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
+ been able to move the result to target.
+
+ * expr.c (emit_group_store): Initialize dst with CONST0_RTX
+ for the appropriate mode.
+
+ * calls.c (emit_library_call_value_1): Handle return values
+ in a PARALLEL.
+
+ * rtl.c (get_mode_alignment): Moved to...
+ * stor-layout.c: ... here.
+
+ * print-rtl.c (print_rtx): Don't print MEM details in
+ GENERATOR_FILEs.
+
+2003-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+
+ * df.c (df_uses_record): Handle CC0.
+
+2003-01-25 Jan Hubicka <jh@suse.cz>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR opt/8492
+ * gcse.c (one_cprop_pass): Delete unreachable blocks.
+
+2003-01-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * reload.c (maybe_memory_address_p): New function.
+ (find_reloads_address): Use it instead of memory_address_p.
+
+2003-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * final.c (shorten_branches): Align the address of code label
+ when computing initial lengths and addresses.
+
+2003-01-25 Richard Henderson <rth@redhat.com>
+
+ 2002-02-19 Robert Lipe <robertlipe@usa.net>
+ * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
+
+2003-01-23 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
+ __do_global_ctors_aux hidden global and don't put it in
+ .init_array.
+ * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
+ instead so that it comes first.
+
+2003-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
+
+ * config/c4x/c4x.h (ASM_SPEC): Fix for new gas format.
+
+2003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * calls.c (fix_unsafe_tree): Prototype.
+ * loop.c (loop_invariant_p): Avoid signed/unsigned warning.
+
+2003-01-24 Richard Henderson <rth@redhat.com>
+
+ PR optimization/4382
+ * tree-inline.c (find_builtin_longjmp_call_1): New.
+ (find_builtin_longjmp_call): New.
+ (inlinable_function_p): Use it.
+
+2003-01-24 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
+ * configure: Regenerate.
+
+ * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
+ (tls_symbolic_reference_mentioned_p): Add prototype.
+ (s390_tls_get_offset): Add prototype.
+ (emit_pic_move): Remove prototype, replace by ...
+ (emit_symbolic_move): .. this new prototype.
+
+ * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
+ (tls_model_chars): New global variable.
+ (s390_encode_section_info): Encode TLS model.
+ Use targetm.binds_local_p to check for local symbols.
+ (s390_strip_name_encoding): New function.
+ (TARGET_STRIP_NAME_ENCODING): Define.
+
+ (get_thread_pointer): New function.
+ (legitimize_tls_address): New function.
+ (legitimize_address): Call it.
+ (emit_pic_move): Remove, replace by ...
+ (emit_symbolic_move): ... this new function.
+
+ (larl_operand): Handle TLS operands.
+ (legitimate_constant_p): Likewise.
+ (s390_decompose_address): Likewise.
+ (s390_cannot_force_const_mem): New function.
+ (TARGET_CANNOT_FORCE_CONST_MEM): Define.
+
+ (s390_output_symbolic_const): Handle TLS unspecs.
+ (print_operand): New code 'J'.
+ (machine_function): Add struct member 'some_ld_name'.
+ (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
+
+ (enum s390_builtin): New type.
+ (code_for_builtin_64, code_for_builtin_31): New global variables.
+ (s390_init_builtins, s390_expand_builtin): New functions.
+ (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
+
+ * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
+ (ASM_OUTPUT_LABELREF): Define.
+ (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
+
+ * config/s390/s390.md: Define TLS UNSPEC constants.
+ ("movdi", "movsi"): Handle TLS operands.
+ ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
+ ("*tls_load_64", "*tls_load_31"): New insns.
+ ("call_value_tls", "call_value_tls_exp"): New expanders.
+ ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
+ "bas_tls_64", "bas_tls_31"): New insns.
+
+2003-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/passes.texi: Fix typo.
+2003-02-01 Jan Hubicka <jh@suse.cz>
+
+ * loop.c (emit_prefetch_instructions): Do conversion at right place in
+ RTL chain.
+
+ * combine.c (simplify_set): Reverse order of ragumetns to
+ REG_CANNOT_CHANGE_MODE_P
+ * df.c (df_def_record_1): Likewise.
+ * recog.c (register_operand): Likewise.
+ * simplify-rtx.c (simplify_subreg): Likewise.
+ * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
+ CANNOT_CHANGE_MODE_CLASS.
+ * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
+ Likewise.
+ * reload.c (push_reload): Likewise.
+ * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
+ * mips.c (mips_cannot_change_mode_class): Update.
+ * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
+ * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
+ * sh.c (sh_cannot_change_mode_class): Update.
+ * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
+ * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
+
+2003-01-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * timevar.def (TV_NAME_LOOKUP, TV_OVERLOAD,
+ TV_TEMPLATE_INSTANTIATION): New timevar_id eumerations.
+ * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
+ * timevar.c (timevar_pop): Be verbose when aborting. Include
+ "toplev.h".
+
+2003-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * doc/bugreport.texi: Use @command instead of @code for commands.
+ * doc/collect2.texi: Likewise.
+ * doc/headerdirs.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/standards.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/trouble.texi: Likewise.
+
+2003-01-23 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR java/6748
+ * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
+ regs->nip. Fix rt_sigreturn frame layout. Add support for newer
+ kernels.
+
+2003-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR other/7341
+ * invoke.texi (ftest-coverage): Fix broken cross-reference.
+ Change @code to @command for gcov command.
+
+ * gcc.texi: Adjust title of gcov section.
+ Adjust copyright.
+ * gcov.texi: Likewise.
+
+2003-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR other/7448
+ * doc/passes.texi (fssa-ccp): Remove misplaced line.
+
+2003-01-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
+ introduced by last change.
+
+2003-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.in: Make --disable-checking the default.
+ * configure: Regenerate.
+
+2003-01-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390-protos.h (preferred_la_operand_p):
+ Remove second parameter.
+ * config/s390/s390.c (preferred_la_operand_p): Likewise.
+ * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
+ (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
+ * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
+ Add peepholes to transform ADD to LOAD ADDRESS.
+
+2003-01-20 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (SSE cmov splitter): Handle memory operand in operand 5.
+
+2003-01-21 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ PR opt/7507
+ * calls.c (fix_unsafe_tree): Split out from ...
+ (expand_call): ... here. Use it on the function address too.
+
+2003-01-20 Richard Henderson <rth@redhat.com>
+
+ PR opt/7154
+ * stmt.c (expand_asm_operands): Validize memory operands.
+
+2003-01-20 Richard Henderson <rth@redhat.com>
+
+ PR opt/8848
+ * ifcvt.c (noce_process_if_block): Correct arguments to
+ modified_between_p for no-else-block case.
+
+2003-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
+ is not a scalar int mode.
+
+2003-01-20 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (notice_update_cc): Don't assume that
+ recog_data.operands[0] is always associated with cc0.
+
+2003-01-19 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
+ z_reg, z_reg_qi): Declare static and GTY().
+ (da_reg): Remove.
+ (create_regs_rtx): Don't create da_reg.
+ ("gt-m68hc11.h"): Include for GTY roots.
+ (m68hc11_autoinc_compatible_p): Remove.
+ (autoinc_mode): Declare prototype.
+ (m68hc11_make_autoinc_notes): Likewise.
+ * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
+ and GTY() here.
+ (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
+ (m68hc11_soft_tmp_reg): Likewise.
+ * config/m68hc11/m68hc11-protos.h: Remove above declarations.
+
+2003-01-18 Roger Sayle <roger@eyesopen.com>
+
+ * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
+
+2003-01-10 Geoffrey Keating <geoffk@apple.com>
+
+ * varasm.c (struct constant_descriptor_rtx): Remove unused
+ `label' field.
+
+ * ggc-page.c (ggc_collect): Avoid overflow computing
+ min_expand.
+
+2002-12-20 Geoffrey Keating <geoffk@apple.com>
+
+ * integrate.c (output_inline_function): Don't hold private
+ pointers to 'struct function' over GC calls.
+
+2003-01-17 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/mips/mips.h: Don't use #elif. Reported by Kaveh
+ R. Ghazi.
+
+2003-01-16 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
+ instead of rotldi3_mextr.
+
+2003-01-16 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
+ 68HC12 pre/post inc/dec side effects.
+
+2003-01-16 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (MASK_M6812): Define.
+
+2003-01-16 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hs11/m68hc11.c (expand_prologue): Use push/pop to
+ allocate 4-bytes of locals on 68HC11.
+ (expand_epilogue): Likewise.
+ (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
+
+2003-01-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
+ ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
+ * pa.h (TARGET_SOM_SDEF): Define.
+ * pa-hpux11.h (TARGET_SOM_SDEF): Define.
+
+2003-01-15 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
+ and -mshort-double to the assembler to specify the ABI.
+ (LINK_SPEC): Likewise.
+ (CPP_SPEC): Pass HCS12 specific define.
+ (MASK_M68S12): New define.
+ (TARGET_M68S12): Likewise.
+ (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
+ (TARGET_VERSION): Update.
+ * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
+ (LINK_SPEC): Update.
+ (ASM_SPEC): Update.
+ * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
+ * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
+
+2003-01-15 John David Anglin <dave.anglin@nrc.gc.ca>
+
+ * gengtype-lex.l (malloc, realloc): Move defines after include of
+ system.h.
+
+2003-01-15 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
+ the return code.
+
+2003-01-15 Josef Zlomek <zlomekj@suse.cz>
+
+ * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
+ flag before setting it.
+
+2003-01-15 Josef Zlomek <zlomekj@suse.cz>
+
+ Segher Boessenkool <segher@koffie.nl>
+
+ * predict.c (real_inv_br_prob_base): New variable.
+ (propagate_freq): Use multiply by reciprocal instead of
+ division. Don't divide by 1.0 at all.
+ (estimate_bb_frequencies): Similar.
+
+2003-01-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
+ * configure: Rebuilt.
+
+ * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
+ to set $gp before the call.
+
+2003-01-10 Andrew Haley <aph@redhat.com>
+
+ * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
+ registers to be in correct order. Add rip.
+
+2003-01-14 Denis Chertykov <denisc@overta.ru>
+
+ * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
+ (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
+
+ * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
+ attributes.
+ (TARGET_ATTRIBUTE_TABLE): New macro.
+ (valid_machine_type_attribute): Remove.
+ (valid_machine_decl_attribute): Remove.
+ (ip2k_handle_progmem_attribute): New function.
+ (ip2k_handle_fndecl_attribute): New function.
+
+2003-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/8870, PR target/9195
+
+ Backport from mainline:
+
+ 2003-01-10 Richard Henderson <rth@redhat.com>
+
+ * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
+ not INTEGRAL_MODE_P when widening extensions.
+
+2003-01-13 Alexandre Oliva <aoliva@redhat.com>
+
+ * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
+ ${ac_tool_prefix} to ADAC or CC. Protect them from word
+ splitting.
+ * configure: Rebuilt.
+
+2003-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * unwind-dw2-fde.h (last_fde): Mark parameter with __attribute__
+ ((__unused__)).
+
+2003-01-12 Alan Modra <amodra@bigpond.net.au>
+
+ * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
+
+2003-01-11 Jan Hubicka <jh@suse.cz>
+
+ PR target/9068
+ * i386.c (output_fp_compare): Fix typo
+
+2003-01-10 Josef Zlomek <zlomekj@suse.cz>
+
+ * jump.c (next_nonnote_insn_in_loop): New function.
+ (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
+ next_nonnote_insn.
+ (duplicate_loop_exit_test). Likewise.
+
+2003-01-08 Jan Hubicka <jh@suse.cz>
+
+ PR target/8213
+ * i386.c (ix86_expand_int_movcc): Fix RTL sharing problem.
+
+2003-01-09 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
+ length.
+ (*extzv_1_r_h8300hs): Likewise.
+ (*extzv_1_r_inv_h8300): Likewise.
+ (*extzv_1_r_inv_h8300hs): Likewise.
+
+2003-01-09 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
+
+ * Makefile.in (optabs.o): Add dependency on basic-block.h.
+ * basic-block.h (control_flow_insn_p): Fuction was exported.
+ * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
+ * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
+ notes only when the region is contained in a single basic block.
+
+2003-01-09 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
+
+ * Makefile.in (PARTITION_H): New.
+ (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
+ * basic-block.h: Include hard-reg-set.h.
+
+2003-01-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR inline-asm/8832
+ * tree.h (expand_asm): New prototype.
+ * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
+ to do so.
+ * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
+ down to expand_asm.
+ * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
+ * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
+ (volatile_refs_p) [ASM_INPUT]: Likewise.
+ (side_effects_p) [ASM_INPUT]: Likewise.
+
+2003-01-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR c/8032
+ * c-typeck.c (process_init_element) [RECORD_TYPE]: For
+ an empty element, do not advance the pointer to unfilled
+ fields if there are pending initializers.
+
+2003-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
+ non-optimizing compile.
+ (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
+ compile.
+
+2003-01-09 Andreas Jaeger <aj@suse.de>
+
+ * unwind-dw2-fde.h (last_fde): Revert last patch.
+
+2003-01-08 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR optimization/8750
+ * config/i386/i386.c (ix86_expand_prologue): Don't allow
+ scheduling pass to move insns across __alloca call.
+
+2003-01-08 Jeff Sturm <jsturm@one-point.com>
+
+ PR target/9210
+ * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
+ Set SYMBOL_REF_FLAG on local data sym_ref.
+
+2003-01-08 Jan Hubicka <jh@suse.cz>
+
+ PR target/8322
+ * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
+ * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
+
+ PR target/7782
+ * reload1.c (delete_output_reload): Avoid repeated attempts
+ to delete insn.
+
+ * cselib.c (cselib_current_insn_in_libcall): New static variable.
+ (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
+ we are inside libcall.
+ * cselib.h (elt_loc_list): Add in_libcall.
+ * gcse.c (do_local_cprop): Do not copy propagate using insns
+ in libcalls.
+
+2003-01-07 Janis Johnson <janis187@us.ibm.com>
+
+ PR other/8947
+ * doc/invoke.texi (-malign-double): Explain that the option breaks
+ binary compatibility.
+
+2003-01-07 Richard Henderson <rth@redhat.com>
+
+ * alias.c (find_base_value): Only use new_reg_base_value shortcut
+ if the register is set once.
+
+2003-01-07 Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
+
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins):
+ __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
+ * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
+
+2003-01-07 Benjamin Kosnik <bkoz@redhat.com>
+ Sunil Davasam <sunil.k.davasam@intel.com>
+
+ PR libstdc++/9076
+ * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
+ DW_CFA_same_value, read next and ignore.
+
+2003-01-07 Richard Henderson <rth@redhat.com>
+
+ * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
+
+2003-01-06 Aldy Hernandez <aldyh@redhat.com>
+
+ Segher Boessenkool <segher@koffie.nl>
+
+ * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
+ (alt_reg_names): Ditto, fix formatting.
+ * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
+
+2003-01-06 Bruce Korb <bkorb@gnu.org>
+
+ * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
+ of *both* the file name and the fix name.
+
+2003-01-06 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
+ properly when changing "local-ness".
+ * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
+
+2003-01-05 Andreas Jaeger <aj@suse.de>
+
+ * unwind-dw2-fde.h (last_fde): Add unused attribute for obj.
+
+2003-01-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa64-hpux.h (JCR_SECTION_NAME): Define.
+ (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
+ USE_EH_FRAME_REGISTRY when defining.
+
+2003-01-04 John David Anglin <dave.anglin@nrc.ca>
+
+ * config.gcc (hppa*64*-*-hpux11*): Define extra_parts. Don't use
+ collect2.
+ * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
+ (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
+ * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
+ GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
+ GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
+ (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
+ elfos.h.
+ (EH_FRAME_IN_DATA_SECTION): Delete define.
+ (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
+ (STARTFILE_SPEC): Use crtbegin.o.
+ (ENDFILE_SPEC): Use crtend.o.
+ (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
+ SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
+ PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
+ DTOR_LIST_BEGIN): Define.
+ * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
+ (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
+ * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
+
+2003-01-02 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.md (movdf_internal2): Fix constraints.
+
+2003-01-03 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Configuration): Fix markup for reference to
+ gcc/config.gcc.
+
+2003-01-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (stack_pointer_operand): New.
+ (const_int_gt_2_operand): Likewise.
+ (const_int_ge_8_operand): Likewise.
+ * config/h8300/h8300.md (a splitter): Likewise.
+ (a peephole2): Likewise.
+ * config/h8300/h8300-protos.h: Add prototypes for the new
+ functions above.
+
+2003-01-02 Neil Booth <neil@daikokuya.co.uk>
+
+ * gccbug.in: Update for new categories.
+
+2002-12-31 Tom Tromey <tromey@redhat.com>
+
+ * doc/install.texi (Testing): Fixed typo.
+
+2002-12-31 Jerry Quinn <jlquinn@optonline.net>
+
+ * gcc/doc/invoke.texi (Optimization Options): Clean up -O flag
+ descriptions.
+
+2002-12-31 Jerry Quinn <jlquinn@optonline.net>
+
+ * gcc/doc/invoke.texi (Optimization Options): List the options
+ enabled by each -O flag.
+
+2002-12-31 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Define.
+
+2002-12-31 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Configuration): Explicitly refer
+ gcc/config.gcc for a list of cpu models.
+
+2002-12-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/gcc.texi, doc/gccint.texi: Update last modification dates.
+
+2002-12-30 Tom Tromey <tromey@redhat.com>
+
+ * doc/install.texi (Testing): Mention Jacks.
+
+2002-12-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/service.texi: Uncomment and update FAQ link.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/cpp.texi, doc/gcc.texi, doc/gccint.texi, doc/install.texi:
+ Use @copying.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * configure.in: Increase makeinfo version requirement to 4.[2-9].
+ * configure: Regenerate.
+ * doc/install.texi: Update Texinfo version requirement.
+
+2002-12-27 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/include/texinfo.tex: Update to version 2002-12-26.16.
+
+2002-12-26 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/standards.texi, doc/invoke.texi: Point to 3.3 version of
+ c99status.html.
+
+2002-12-26 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.h (IDENT_ASM_OP): End with a tab.
+
+2002-12-23 Larin Hennessy <larin@science.oregonstate.edu>
+
+ * doc/install.texi: Remove i386-*-isc, i860-*-bsd,
+ m68k-altos-sysv, m68k-isi-bsd, m68k-sony-bsd entries.
+ * doc/invoke.texi: Remove AMD 29K, ARM RISC/iX, Clipper, Convex,
+ DG/UX entries.
+ * doc/md.texi: Remove AMD 29K entries.
+ * doc/trouble.texi: Remove Alliant, DG/UX, Iris 4.0.5F, GAS
+ 1.38.1, NewsOS, RT PC, WE32K entries.
+
+2002-12-23 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/8763
+ * config/rs6000/altivec.md (mulv4sf3): Rewrite to add -0.0 vector.
+ (altivec_vspltisw_v4sf): Name pattern.
+ (altivec_vslw_v4sf): New pattern.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/include/gcc-common.texi: Clear DEVELOPMENT.
+
+2002-12-23 David Edelsohn <edelsohn@gnu.org>
+
+ PR middle-end/8784
+ * expr.c (expand_assignment): Apply special treatment to
+ ARRAY_TYPE.
+
+2002-12-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (zero_extendqisi2): Correct the
+ length.
+
+2002-12-19 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add support for -dynamic.
+ (CPP_SPEC): Define __STATIC__ and __DYNAMIC__ depending on -dynamic.
+ (LINK_SPEC): Pass -dynamic to linker.
+ * config/rs6000/darwin.h: Reject conflicting -static and -dynamic.
+
+2002-12-19 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (pushqi_h8300): Don't push the stack
+ pointer.
+ (pushqi_h8300hs): Likewise.
+ (pushhi_h8300): Likewise.
+ (pushhi_h8300hs): Likewise.
+
+2002-12-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/8988
+ * loop.c (maybe_eliminate_biv): Kill REG_EQUAL notes mentioning
+ the biv when eliminating.
+
+2002-12-19 Aldy Hernandez <aldyh@redhat.com>
+
+ PR 8553
+ * config/rs6000/altivec.md ("absv8hi2"): Add & to clobbered
+ registers.
+ ("absv16qi2"): Same.
+ ("absv4si2"): Same.
+ ("absv4sf2"): Same.
+ ("altivec_abss_v16qi"): Same.
+ ("altivec_abss_v8hi"): Same.
+ ("altivec_abss_v4si"): Same.
+
+2002-12-19 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly",
+ "*tstqiCCT", "*tstqiCCT_cconly"): New insns.
+
+2002-12-18 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/altivec.h (vec_cmplt macro): Reverse arguments in
+ macro.
+ (vec_cmplt C++ functions): Reverse arguments.
+
+2002-12-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/c-tree.texi: Restore deliberate spelling mistakes.
+
+2002-12-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/c-tree.texi: Fix typos and follow spelling conventions.
+ * doc/cpp.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/rtl.texi: Likewise.
+ * doc/sourcebuild.texi: Likewise.
+ * doc/tm.texi: Likewise.
+
+2002-12-17 Jerry Quinn <jlquinn@optonline.net>
+
+ * doc/invoke.texi: Minor spelling and grammar fixes.
+
+2002-12-16 Mark Mitchell <mark@codesourcery.com>
+
+ * version.c (version_string): Mark as prerelease.
+
+2002-12-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa.c (output_millicode_call): Correct typo.
+ (output_call): Likewise.
+
+2002-12-13 Alexandre Oliva <aoliva@redhat.com>
* config/mn10300/mn10300.c (print_operand) <case N>: Check
operand's range. Print value directly, without aid from
@@ -11,7 +8076,7 @@ Fri Dec 13 21:07:18 2002 Alexandre Oliva <aoliva@redhat.com>
bclr. Use %U for immediate operands of bset and bclr.
(iorqi3): New expand, with insns for AM33 and mn10300.
-Fri Dec 13 16:02:27 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-13 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_register_operand): New function.
(prepare_move_operands): Use it.
@@ -88,7 +8153,7 @@ Fri Dec 13 16:02:27 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/h8300/h8300.md (*addhi_h8300): Add a new alternative.
(*addhi_h8300hs): Likewise.
-Thu Dec 12 16:24:59 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-12 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (reg_class_from_letter): No longer const. Add 'e' entry.
(sh_register_move_cost): Add clause for SImode fp-fp moves.
@@ -140,12 +8205,12 @@ Thu Dec 12 16:24:59 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped
name to globalize_label or assemble_name.
-Wed Dec 11 20:15:19 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-11 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (REG_CLASS_HAS_GENERAL_REG): Only true for SIBCALL_REGS
if not TARGET_SHMEDIA.
-Wed Dec 11 19:05:05 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-11 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (REG_CLASS_HAS_FP_REG): New.
(REGISTER_MOVE_COST) Use it. Put body into a function and
@@ -156,7 +8221,7 @@ Wed Dec 11 19:05:05 2002 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_expand_builtin): Abort for unexpected nop values.
(sh_adjust_cost): Always return a value.
-Wed Dec 11 18:39:52 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-11 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (REG_CLASS_HAS_GENERAL_REG): New.
(REGISTER_MOVE_COST): Use it.
@@ -191,7 +8256,7 @@ Wed Dec 11 18:39:52 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/darwin.h(LINK_SPEC): Add darwin specific linker options.
* doc/invoke.texi: Add new "Darwin Options" section.
-
+
2002-12-10 Jim Wilson <wilson@redhat.com>
* rs6000.h (RETURN_IN_MEMORY): If ABI_V4, then TFmode is returned in
@@ -236,7 +8301,7 @@ Wed Dec 11 18:39:52 2002 J"orn Rennecke <joern.rennecke@superh.com>
(TARGET_CANNOT_FORCE_CONST_MEM): New.
(ix86_expand_move): Remove de-const-pooling hack.
-Mon Dec 9 21:33:38 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-12-09 Jan Hubicka <jh@suse.cz>
* toplev.c (dump_file): Fix order to match reality.
@@ -268,13 +8333,13 @@ Mon Dec 9 21:33:38 CET 2002 Jan Hubicka <jh@suse.cz>
* stmt.c (expand_return): Ditto.
* expr.c (move_block_from_reg): Ditto.
(copy_blkmode_from_reg): Ditto.
- * expmed.c (store_bit_field): Ditto.
+ * expmed.c (store_bit_field): Ditto.
2002-12-09 Svein E. Seldal <Svein.Seldal@solidas.com>
* config.gcc: Added tic4x-* target as an alias to c4x-*
-Sun Dec 8 14:57:39 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-12-08 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_expand_int_movcc): Use force_operand instead of
constructing insn directly.
@@ -302,16 +8367,16 @@ Sun Dec 8 14:57:39 CET 2002 Jan Hubicka <jh@suse.cz>
* gcc/config/sh/sh.md : Add define_expand "push_fpscr", "pop_fpscr".
(fpu_switch): Add alternative to push fpscr. Enable for TARGET_SH3E.
-Fri Dec 6 19:36:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-06 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (dump_table): DImode pool constants need only 32 bit alignment.
DFmode alignment depends on TARGET_FMOVD && TARGET_ALIGN_DOUBLE.
-Fri Dec 6 19:17:49 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-06 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (movdi_i): Name. Remove inappropriate comment.
-Fri Dec 6 15:44:46 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-06 J"orn Rennecke <joern.rennecke@superh.com>
Merged from basic improvements branch (excerpt):
2002-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
@@ -413,7 +8478,7 @@ Fri Dec 6 15:44:46 2002 J"orn Rennecke <joern.rennecke@superh.com>
* c-semantics (genrtl_scope_stmt): Do not output inlined
nested functions that contain no code.
-Wed Dec 4 15:20:54 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-12-04 Jan Hubicka <jh@suse.cz>
* cfgrtl.c (force_nonfallthru_and_redirect): Allow abnormal edge
to be forced into nonfallthru.
@@ -424,7 +8489,7 @@ Wed Dec 4 15:20:54 CET 2002 Jan Hubicka <jh@suse.cz>
2002-12-03 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/spe.md (*movv1di_const0): New pattern.
+ * config/rs6000/spe.md (*movv1di_const0): New pattern.
2002-12-03 Richard Henderson <rth@redhat.com>
@@ -469,11 +8534,11 @@ Wed Dec 4 15:20:54 CET 2002 Jan Hubicka <jh@suse.cz>
flex or bison programs not found, instead of invoking "false".
* configure: Rebuilt.
-Mon Dec 2 20:28:48 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-12-02 Jan Hubicka <jh@suse.cz>
* unroll.c (copy_loop_body): Copy CONST_OR_PURE_CALL_P.
-Mon Dec 2 19:42:52 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-12-02 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_expand_int_movcc): Avoid overflow.
@@ -485,7 +8550,7 @@ Mon Dec 2 19:42:52 CET 2002 Jan Hubicka <jh@suse.cz>
(h8300_output_function_prologue): Likewise.
(h8300_output_function_epilogue): Likewise.
-Mon Dec 2 14:43:22 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-12-02 J"orn Rennecke <joern.rennecke@superh.com>
* expmed.c (store_bit_field): Use int_mode_for_mode to find
corresponding mode of non-integer mode, unless it is VOIDmode.
@@ -529,7 +8594,7 @@ Mon Dec 2 14:43:22 2002 J"orn Rennecke <joern.rennecke@superh.com>
* c-format.c (T_ST): Use size_type_node, not c_size_type_node.
* tree.h (TI_SIZE_TYPE): New enumeral.
(size_type_node): Likewise.
-
+
2002-11-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
* cfg.c (dump_flow_info): Use max_reg_num () to determine the largest
@@ -652,7 +8717,7 @@ Mon Dec 2 14:43:22 2002 J"orn Rennecke <joern.rennecke@superh.com>
(END): Exit if no symbols seen.
(output): Fix map syntax error if no globals for the version.
-Wed Nov 27 14:45:46 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-27 Jan Hubicka <jh@suse.cz>
* builtins.def (DEF_C99_BUILTIN): Fix.
@@ -990,7 +9055,7 @@ Wed Nov 27 14:45:46 CET 2002 Jan Hubicka <jh@suse.cz>
(xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7.
* config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto.
-Thu Nov 21 23:52:04 CET 2002 Jan Hubicka <jH@suse.cz>
+2002-11-21 Jan Hubicka <jH@suse.cz>
* i386-protos.h (x86_64_sign_extended_value): Fix prototype.
* i386.c (x86_64_general_operand, x86_64_szext_general_operand,
@@ -1106,7 +9171,7 @@ Thu Nov 21 23:52:04 CET 2002 Jan Hubicka <jH@suse.cz>
(ggc_realloc): Update valgrind annotations.
* ggc-page.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
- (alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to
+ (alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to
valgrind-annotate memory.
2002-11-20 Ulrich Weigand <uweigand@de.ibm.com>
@@ -1179,7 +9244,7 @@ Thu Nov 21 23:52:04 CET 2002 Jan Hubicka <jH@suse.cz>
(MULTILIB_EXCEPTIONS): Don't turn on -mn on H8/300.
* doc/invoke.texi (gccoptlist): Describe the new switch -mn.
-Tue Nov 19 23:50:56 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-19 Jan Hubicka <jh@suse.cz>
* i386.md (length_immediate): Do not refer to insn address.
(jcc*, jmp patterns): Compute length explicitly.
@@ -1270,12 +9335,12 @@ Tue Nov 19 23:50:56 CET 2002 Jan Hubicka <jh@suse.cz>
Add a new one in its place, which hopefully works.
(skip_rest_of_line): Change test for bottom-of-context-stack.
-Mon Nov 18 21:29:03 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-18 Jan Hubicka <jh@suse.cz>
* i386.md (addqi_1_slp): Fix output template.
(subqi_1_slp): Fix type.
-Sun Nov 17 00:01:28 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-17 Jan Hubicka <jh@suse.cz>
* calls.c (alloca_call_p): New global function.
* tree.h (alloca_call_p): New.
@@ -1377,7 +9442,7 @@ Sun Nov 17 00:01:28 CET 2002 Jan Hubicka <jh@suse.cz>
* optabs.c: Fix formatting.
-Sat Nov 16 02:06:02 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-16 Jan Hubicka <jh@suse.cz>
* athlon.md, k6.md, pentium.md, ppro.md: Handle shift1, rotate1
* i386.md (attribute type): Add type shift1 and rotate1.
@@ -1402,7 +9467,7 @@ Sat Nov 16 02:06:02 CET 2002 Jan Hubicka <jh@suse.cz>
* config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
-Fri Nov 15 14:54:19 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-15 Jan Hubicka <jh@suse.cz>
* i386-protos.h (x86_function_profiler): New function
* i386.h (MCOUNT_NAME): New.
@@ -1542,7 +9607,7 @@ Fri Nov 15 14:54:19 CET 2002 Jan Hubicka <jh@suse.cz>
* doc/contrib.texi: Merge in the list from the libstdc++ web pages.
-Mon Nov 11 12:06:08 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-11 Jan Hubicka <jh@suse.cz>
* i386.c (construct_container): Fix handling of SSE_CLASS.
@@ -1577,7 +9642,7 @@ Mon Nov 11 12:06:08 CET 2002 Jan Hubicka <jh@suse.cz>
* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define
__ABICALLS__ if TARGET_ABICALLS.
-Sun Nov 10 18:49:21 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-10 Jan Hubicka <jh@suse.cz>
* i386.h (MIN_UNITS_PER_WORD): Define to 8 for x86-64 libgcc.
@@ -1654,7 +9719,7 @@ Sun Nov 10 18:49:21 CET 2002 Jan Hubicka <jh@suse.cz>
* config/h8300/h8300.md (two anonymous test insns): New.
-Fri Nov 8 11:20:19 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-08 Jan Hubicka <jh@suse.cz>
* jump.c (mark_jump_label): Handle subregs of label_refs.
@@ -1699,11 +9764,11 @@ Fri Nov 8 11:20:19 CET 2002 Jan Hubicka <jh@suse.cz>
* arm/elf.h (TYPE_OPERAND_FMT): Prefix type with %.
-Thu Nov 7 15:50:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-11-07 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (DWARF_FRAME_RETURN_COLUMN): Use DWARF_FRAME_REGNUM.
-Thu Nov 7 11:18:01 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-07 Jan Hubicka <jh@suse.cz>
* reg-stack.c (compensate_edge): Fix sanity check.
@@ -1981,7 +10046,7 @@ Thu Nov 7 11:18:01 CET 2002 Jan Hubicka <jh@suse.cz>
* arm.c (use_return_insn): Don't use a return insn if there are
saved integer regs, but LR is not one of them.
-Fri Nov 1 10:33:15 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-01 Jan Hubicka <jh@suse.cz>
* expr.c (emit_move_insn): Use SCALAR_FLOAT_MODE_P
* machmode.h (SCALAR_FLOAT_MODE_P): New macro.
@@ -2012,7 +10077,7 @@ Thu Oct 31 Dale Johannesen <dalej@apple.com>
* config/rs6000/darwin.h: Enable -falign-xxx options.
-Thu Oct 31 18:08:00 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-10-31 Jan Hubicka <jh@suse.cz>
* i386.c (override_options): Set defaults for flag_omit_frame_pointer,
flag_asynchronous_unwind_tables, flag_pcc_struct_return.
@@ -2022,11 +10087,11 @@ Thu Oct 31 18:08:00 CET 2002 Jan Hubicka <jh@suse.cz>
(ix86_frame_pointer_required): Frame pointer is always required when
profiling.
-Thu Oct 31 16:09:44 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-10-31 Jan Hubicka <jh@suse.cz>
* i386.md (negdf2_ifs_rex64): Don't allow GPR operand.
-Thu Oct 31 12:45:55 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-31 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (binary_logical_operator): Declare.
* sh.c (binary_logical_operator): New function.
@@ -2127,7 +10192,7 @@ Thu Oct 31 12:45:55 2002 J"orn Rennecke <joern.rennecke@superh.com>
* Makefile.in (gnucompare*): Only record bad comparisons
if there really was a bad comparison.
-Tue Oct 29 19:32:16 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-10-29 Jan Hubicka <jh@suse.cz>
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H'
* i386.md (movsf*, movdf*): Use 'C' instead of 'H'
@@ -2174,7 +10239,7 @@ Tue Oct 29 19:32:16 CET 2002 Jan Hubicka <jh@suse.cz>
* reload1.c (update_eliminables): Unconditionally check if
frame_pointer_needed has changed.
-Tue Oct 29 15:37:39 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-10-29 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Reorganize way reg_scan is called
before final pass.
@@ -2231,7 +10296,7 @@ Tue Oct 29 15:37:39 CET 2002 Jan Hubicka <jh@suse.cz>
* reload1.c (reload): Fix a comment typo.
-Sun Oct 27 10:15:24 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-10-27 Jan Hubicka <jh@suse.cz>
* linux64.h (DEFAULT_PCC_STRUCT_RETURN): Define.
@@ -2275,7 +10340,7 @@ Sun Oct 27 10:15:24 CET 2002 Jan Hubicka <jh@suse.cz>
Fixes gcc.dg/warn-1.c.
* c-typeck.c (warn_for_assignment): Don't print argument number, if zero.
-Sat Oct 26 01:44:46 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-26 Jan Hubicka <jh@suse.cz>
* toplev.c (dump_file_index): Add DFI_ce3.
(dump_file_info): Likewise.
@@ -2492,7 +10557,7 @@ Sat Oct 26 01:44:46 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok.
-Wed Oct 23 01:52:36 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-23 Jan Hubicka <jh@suse.cz>
PR other/8289
* xmmintrin.h: Add const to the argument of loads.
@@ -2552,7 +10617,7 @@ Wed Oct 23 01:52:36 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/vax/vax-protos.h: Update.
* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.
-Wed Oct 23 00:33:11 CEST 2002 Jan Hubicka <jh@suse,cz>
+2002-10-23 Jan Hubicka <jh@suse,cz>
* i386.c (standard_sse_constant_p): Accept vector and integer zeros too.
* i386.h (EXTRA_CONSTRAINT): Recognize 'C'
@@ -2568,7 +10633,7 @@ Wed Oct 23 00:33:11 CEST 2002 Jan Hubicka <jh@suse,cz>
("blockage"): Add length attribute.
("lit"): Likewise.
-Tue Oct 22 23:51:34 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-22 Jan Hubicka <jh@suse.cz>
* i386.md: FIx typo.
(sse2_cvtsi2sd, sse2_pslrdq): Fix template.
@@ -2592,7 +10657,7 @@ Tue Oct 22 23:51:34 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/s390/t-linux: Remove.
* config/s390/s390.h: Include fixdfdi.h when building libgcc2.
-Tue Oct 22 19:07:03 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-22 Jan Hubicka <jh@suse.cz>
* i386.c (builtin_description): Add IX86_BUILTIN_PUNPCKHQDQ128.
(ix86_expand_builtin): Fix MASKMOVDQU expasion.
@@ -2643,7 +10708,7 @@ Tue Oct 22 19:07:03 CEST 2002 Jan Hubicka <jh@suse.cz>
using IN_RANGE.
(TINY_CONSTANT_ADDRESS_P): Likewise.
-Tue Oct 22 00:04:20 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-22 Jan Hubicka <jh@suse.cz>
* i386.c (builtin_description): Add punpcklqdq and movdq2q
(ix86_init_mmx_sse_builtins): Add v2di_ftype_void, di_ftype_v2di,
@@ -2886,7 +10951,7 @@ Tue Oct 22 00:04:20 CEST 2002 Jan Hubicka <jh@suse.cz>
* real.c (do_add): Fix 0+0 sign corner case.
(do_divide): Fix Inf/0 corner case.
-Sun Oct 20 00:31:31 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-20 Jan Hubicka <jh@suse.cz>
* i386.c (classify_argument): Pass MMX arguments in memory
(ix86_expand_builtin): Expand proper address mode for cflush.
@@ -2910,7 +10975,7 @@ Sun Oct 20 00:31:31 CEST 2002 Jan Hubicka <jh@suse.cz>
* dependence.c : Removed.
* Makefile.in : Remove dependence.o.
-Sat Oct 19 10:46:52 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-19 Jan Hubicka <jh@suse.cz>
* mmintrin.h (__m64): typedef it to v2si.
(_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16,
@@ -3053,7 +11118,7 @@ Sat Oct 19 10:46:52 CEST 2002 Jan Hubicka <jh@suse.cz>
tramp, not addr, to pass the trampoline address to
__enable_execute_stack.
-Thu Oct 17 18:40:47 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-17 Jan Hubicka <jh@suse.cz>
* mmintrin.h: Guard by __MMX__
* xmmintrin.h: Guard by __SSE__
@@ -3064,7 +11129,7 @@ Thu Oct 17 18:40:47 CEST 2002 Jan Hubicka <jh@suse.cz>
(_mm_set*_?d): New functions.
(_mm_store*_?d): New functions.
-Wed Oct 16 15:01:29 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-16 Jan Hubicka <jh@suse.cz>
Really commit patch announced at Oct 14
PR c/7344
@@ -3145,7 +11210,7 @@ Wed Oct 16 15:01:29 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok.
-Tue Oct 15 22:08:35 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-15 Jan Hubicka <jh@suse.cz>
* expr.c (do_tablejump): Fix typo in my previous commit.
@@ -3196,7 +11261,7 @@ Tue Oct 15 22:08:35 CEST 2002 Jan Hubicka <jh@suse.cz>
s390.h (s390_pool_overflow): Likewise.
s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow.
-Tue Oct 15 16:51:04 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-15 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (movv8qi_i+2): Don't split if source is -1.
@@ -3210,7 +11275,7 @@ Tue Oct 15 16:51:04 2002 J"orn Rennecke <joern.rennecke@superh.com>
* loop.c (loop_regs_scan): Mark registers used for function
argument passing as MAY_NOT_OPTIMIZE.
-Mon Oct 14 20:33:12 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-14 Jan Hubicka <jh@suse.cz>
* i386.md (movv2di_internal): New pattern.
(movv2df_internal, movv8hi_internal, movv16qi_internal): Fix predicate.
@@ -3300,7 +11365,7 @@ Mon Oct 14 20:33:12 CEST 2002 Jan Hubicka <jh@suse.cz>
* stmt.c: Fix typo in comment.
-Mon Oct 14 11:35:49 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-14 J"orn Rennecke <joern.rennecke@superh.com>
* c-common.c (c_common_type_for_mode): Add V2HImode case.
* tree.c (build_common_tree_nodes_2): Initialize
@@ -3372,7 +11437,7 @@ Mon Oct 14 11:35:49 2002 J"orn Rennecke <joern.rennecke@superh.com>
* tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH to
ensure value is promoted before doing subtraction.
-Fri Oct 11 22:22:38 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-11 Jan Hubicka <jh@suse.cz>
* calls.c (expand_call): Simplify noreturn call.
@@ -3385,12 +11450,12 @@ Fri Oct 11 22:22:38 CEST 2002 Jan Hubicka <jh@suse.cz>
* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.
-Fri Oct 11 12:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-11 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI
register for mperm_w operation.
-Fri Oct 11 10:56:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-11 J"orn Rennecke <joern.rennecke@superh.com>
* emit-rtl.c (gen_lowpart_common): When asked to make a vector from
an integer, use simplify_gen_subreg.
@@ -3440,13 +11505,13 @@ Fri Oct 11 10:56:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config.gcc (rs6000-ibm-aix5.1.*): New entry.
(rs6000-ibm-aix[56789].*): Default to AIX 5.2.
-Thu Oct 10 19:37:54 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-10 Jan Hubicka <jh@suse.cz>
PR target/5610
* invoke.texi (-msse-math): Kill
(-msse): Add note to mfpmath=sse.
-Thu Oct 10 17:08:30 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-10 Jan Hubicka <jh@suse.cz>
PR target/7723
* i386.c (ix86_expand_vector_move): Do not generate const0->mem moves.
@@ -3505,7 +11570,7 @@ Thu Oct 10 17:08:30 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Call
prologue_epilogue_contains instead of using REG_MAYBE_DEAD notes.
-Wed Oct 9 15:54:49 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-09 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (ffssi2): Fix emitted code.
@@ -3587,7 +11652,7 @@ Wed Oct 9 15:54:49 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/s390/s390.md ("*doloop_si_long"): Add missing operand.
("*doloop_di_long"): Likewise.
-Tue Oct 8 16:50:10 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-08 Jan Hubicka <jh@suse.cz>
* print-rtl.c (print_rtx): Increase buffer size for real numbers.
@@ -3725,7 +11790,7 @@ Tue Oct 8 16:50:10 CEST 2002 Jan Hubicka <jh@suse.cz>
* fixinc/fixincl.x: regenerate
* fixinc/tests/base/stdlib.h: accommodate new fix test
-Sat Oct 5 19:42:45 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-05 Jan Hubicka <jh@suse.cz>
* c-common.c (cb_register_builtins): Use really_no_inline.
@@ -3842,11 +11907,11 @@ Sat Oct 5 19:42:45 CEST 2002 Jan Hubicka <jh@suse.cz>
on gnu-ld and MASK_GNU_LD.
(SUBTARGET_SWITCHES): New gnu-ld & hp-ld flags.
-Thu Oct 3 23:35:51 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-03 Jan Hubicka <jh@suse.cz>
* i386.c (athlon_cost): Fix the move costs.
-Thu Oct 3 23:20:58 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-03 Jan Hubicka <jh@suse.cz>
* final.c (final): Use symbol name as function name for profiling.
* profile.c (get_exec_counts): Likewise.
@@ -3912,11 +11977,11 @@ Thu Oct 3 23:20:58 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set.
(SHLIB_SLIBDIR_SUFFIXES): Remove.
-Thu Oct 3 21:42:20 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-03 Jan Hubicka <jh@suse.cz>
* predict.c (choose_function_section): Avoid choice for linkonce functions.
-Thu Oct 3 15:15:00 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-03 Jan Hubicka <jh@suse.cz>
* i386.md (lea to mul peep2): Fix condition.
@@ -3949,7 +12014,7 @@ Thu Oct 3 15:15:00 CEST 2002 Jan Hubicka <jh@suse.cz>
* tree.h (enum ptrmemfunc_vbit_where_t): Move definition to
here from cp/cp-tree.h.
-Wed Oct 2 17:01:36 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-02 Jan Hubicka <jh@suse.cz>
* i386.c (print_operand_address): Use RIP addressing for offsetted
label refs too.
@@ -4122,7 +12187,7 @@ Wed Oct 2 17:01:36 CEST 2002 Jan Hubicka <jh@suse.cz>
* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
there is a '*' prefix in NAME.
-Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-09-30 Jan Hubicka <jh@suse.cz>
* reload.c (push_reload): Handle subregs and secondary memory.
* reload1.c (gen_reload): Likewise.
@@ -4137,7 +12202,7 @@ Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka <jh@suse.cz>
(layout_type): Pass it.
* tree.h (finish_record_layout): Update prototype.
-Mon Sep 30 14:57:18 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-09-30 Jan Hubicka <jh@suse.cz>
* i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__.
@@ -4676,11 +12741,11 @@ Mon Sep 30 14:57:18 CEST 2002 Jan Hubicka <jh@suse.cz>
* loop.c: Likewise.
* loop.h: Likewise.
-Tue Aug 27 22:26:35 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* i386.h (BIGGEST_FIELD_ALIGNMENT): Set proper default for x86_64.
-Tue Aug 27 20:07:01 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* i386.c (overwrite_options): Set -mpreferred-stack-boundary to 128
for -Os/TARGET_64BIT too.
@@ -5180,7 +13245,7 @@ Tue Aug 27 20:07:01 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/ia64/elf.h: Remove CPP_PREDEFINES.
-Tue Sep 17 13:58:04 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-17 Nicola Pero <n.pero@mi.flashnet.it>
Fix PR/7014 and related objc bugs:
* c-typeck.c (comp_target_types): Added a reflexive argument.
@@ -5201,7 +13266,7 @@ Tue Sep 17 13:58:04 2002 Nicola Pero <n.pero@mi.flashnet.it>
unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.
-Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-17 Nicola Pero <n.pero@mi.flashnet.it>
* doc/objc.texi (Constant string objects): Extended documentation
to make clear that the constant string class ivar layout is
@@ -6257,7 +14322,7 @@ Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
of protocol qualifiers.
(objc_is_id): New.
-Fri Sep 6 13:10:08 2002 Jeffrey A Law (law@redhat.com)
+2002-09-06 Jeffrey A Law (law@redhat.com)
* pentium.md (pentium-firstvboth): Fix typo.
@@ -6271,7 +14336,7 @@ Fri Sep 6 13:10:08 2002 Jeffrey A Law (law@redhat.com)
(h8300_init_once): Update shift_alg_{qi,hi,si} to use more
space efficient algorithms when optimize for codesize.
-Fri Sep 6 16:35:32 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-06 Nicola Pero <n.pero@mi.flashnet.it>
Fix PR/1727 and long-standing failing testcase
objc/formal-protocol-6.m.
@@ -6282,7 +14347,7 @@ Fri Sep 6 16:35:32 2002 Nicola Pero <n.pero@mi.flashnet.it>
(get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used
instead of TREE_CHAIN.
-Fri Sep 6 16:17:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-06 Nicola Pero <n.pero@mi.flashnet.it>
* objc/objc-act.c (dump_interface): Enlarged the char * buffer to
10k. Fixed category dumping - print out category names with the
@@ -6381,7 +14446,7 @@ Fri Sep 6 16:17:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
* config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and
-fPIC equivalent on Darwin.
-Thu Sep 5 16:27:47 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-09-05 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_expand_builtin): Return early if encountering an
error_mark for a type.
@@ -6435,7 +14500,7 @@ Thu Sep 5 16:27:47 2002 J"orn Rennecke <joern.rennecke@superh.com>
* varasm.c (struct rtx_const, decode_rtx_const):
Make veclo and vechi fields not share storage.
-Thu Sep 5 00:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-09-05 J"orn Rennecke <joern.rennecke@superh.com>
* loop.c (scan_loop): Don't mark separate insns out of a libcall
for moving.
@@ -6520,7 +14585,7 @@ Thu Sep 5 00:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
* pa.c (function_arg): Fix handling of modes wider than one word for
TARGET_64BIT.
-Wed Sep 4 18:48:10 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-09-04 J"orn Rennecke <joern.rennecke@superh.com>
* combine.c (make_compound_operation): Don't generate zero / sign
extensions in floating point modes.
@@ -6590,7 +14655,7 @@ Wed Sep 4 18:48:10 2002 J"orn Rennecke <joern.rennecke@superh.com>
* doc/install-old.texi: Don't mention enquire.
* doc/sourcebuild.texi: Update float.h description.
-Wed Sep 4 11:22:14 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-09-04 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract.
@@ -6726,7 +14791,7 @@ Wed Sep 4 11:22:14 2002 J"orn Rennecke <joern.rennecke@superh.com>
(print_operand_address): Likewise.
(print_operand): Likewise.
-Tue Sep 3 11:32:14 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-03 Nicola Pero <n.pero@mi.flashnet.it>
PR objc/5956:
* objc/objc-act.c (build_typed_selector_reference): Fix typo which
@@ -6809,7 +14874,7 @@ Tue Sep 3 11:32:14 2002 Nicola Pero <n.pero@mi.flashnet.it>
* diagnostic.c (fancy_abort): Don't repeat "internal error".
* toplev.c (crash_signal): Likewise.
-Fri Aug 30 00:33:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-08-30 Nicola Pero <n.pero@mi.flashnet.it>
* doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation.
* doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector):
@@ -6996,7 +15061,7 @@ Fri Aug 30 00:33:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
(-Wctor-dtor-privacy): Mention that it is enabled by default.
(-Wnon-virtual-dtor): Mention that it is enabled by -Wall.
-Wed Aug 28 15:35:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-28 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler
if it is ever live.
@@ -7028,7 +15093,7 @@ Wed Aug 28 15:35:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
(c_common_decode_option): Handle it.
* doc/invoke.texi: Document -Wabi.
-Tue Aug 27 23:03:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-08-27 Nicola Pero <n.pero@mi.flashnet.it>
* c-common.c (warn_undeclared_selector): New variable.
* c-common.h (warn_undeclared_selector): Idem.
@@ -7052,29 +15117,29 @@ Tue Aug 27 23:03:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
* config/v850/v850.md: Add patterns for v850e instructions.
* doc/invoke.texi: Document new v850e command line switches.
-Tue Aug 27 18:30:47 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-27 J"orn Rennecke <joern.rennecke@superh.com>
Aldy Hernandez <aldyh at redhat dot com>
* doc/tm.texi: Applied numerous fixes to the automaton based
scheduler descrition.
-Tue Aug 27 19:51:05 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* i386.c (classify_argument): Handle variable sized objects.
-Tue Aug 27 19:18:16 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_expand_int_movcc): Fix RTL sharing problem
-Tue Aug 27 18:01:45 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* libgcc2.c (__bb_exit_func): Properly write the summarized statistics.
-Tue Aug 27 18:00:11 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-27 Jan Hubicka <jh@suse.cz>
* i386.c (classify_argument): Properly compute word size of the analyzed object.
-Tue Aug 27 14:39:09 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-27 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
mac_gp ftrc_s and cwb. Add / Adjust definitions in individual insn
@@ -7135,7 +15200,7 @@ Tue Aug 27 14:39:09 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define.
-Tue Aug 27 13:53:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-27 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (MAX_FIXED_MODE_SIZE): Define.
@@ -7977,7 +16042,7 @@ Tue Aug 27 13:53:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
* c-opts.c (c_common_init_options): Extra braces needed.
-Tue Aug 13 17:40:25 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-13 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_init_builtins): Add PARAMS to declaration.
(sh_media_init_builtins, sh_expand_builtin): Likewise.
@@ -8057,7 +16122,7 @@ Tue Aug 13 17:40:25 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles
which can change CC0.
-Tue Aug 13 14:49:20 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-08-13 J"orn Rennecke <joern.rennecke@superh.com>
* gcse.c (adjust_libcall_notes): New function.
(do_local_cprop): Use it. Add fourth parameter. Changed caller.
@@ -8177,7 +16242,7 @@ Tue Aug 13 14:49:20 2002 J"orn Rennecke <joern.rennecke@superh.com>
macro controlling use.
(TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
-Mon Aug 12 12:48:20 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-12 Jan Hubicka <jh@suse.cz>
* i386.md (tablejump): Sign extend the operand.
* i386.c (classify_argument): Fix missed case from previous patch.
@@ -8305,7 +16370,7 @@ Mon Aug 12 12:48:20 CEST 2002 Jan Hubicka <jh@suse.cz>
* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
(cpp_handle_option): Similarly. Don't handle filenames.
-Sun Aug 11 14:43:17 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-11 Jan Hubicka <jh@suse.cz>
* i386.c (classify_argument): Fix computing of field's offsets.
@@ -8338,7 +16403,7 @@ Sun Aug 11 14:43:17 CEST 2002 Jan Hubicka <jh@suse.cz>
-std=gnu++98.
* objc/lang-specs.h: Remove -ansi.
-Sat Aug 10 19:59:43 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-08-10 Jan Hubicka <jh@suse.cz>
Graham Stott
* cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff
@@ -9312,7 +17377,7 @@ cp:
* config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.
-Tue Jul 30 18:31:31 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-30 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (cond_delay_slot): New attribute.
(cbranch delay): Use it for anulled-true case.
@@ -9321,7 +17386,7 @@ Tue Jul 30 18:31:31 2002 J"orn Rennecke <joern.rennecke@superh.com>
delay slot insn.
(gen_far_branch): Emit stuff_delay_slot pattern.
-Tue Jul 30 11:21:44 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-30 J"orn Rennecke <joern.rennecke@superh.com>
* unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.
@@ -9694,7 +17759,7 @@ Tue Jul 30 11:21:44 2002 J"orn Rennecke <joern.rennecke@superh.com>
vectors are split into two registers.
(function_arg): Same.
-Thu Jul 26 23:00:13 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-26 J"orn Rennecke <joern.rennecke@superh.com>
* pa.md (extv): Check predicates before emitting extv_32.
@@ -9766,7 +17831,7 @@ Thu Jul 26 23:00:13 2002 J"orn Rennecke <joern.rennecke@superh.com>
(output_compiler_stub): Remove unused locals.
(output_call): Always initialize line number.
-Thu Jul 25 20:34:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-25 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
* sh.md (truncdiqi2, movqi_media): Likewise.
@@ -9782,7 +17847,7 @@ Thu Jul 25 20:34:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
HAVE_TARGET_EXECUTABLE_SUFFIX.
-Thu Jul 25 18:57:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-25 J"orn Rennecke <joern.rennecke@superh.com>
* rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
SIZE, EXPR and OFFSET.
@@ -9844,7 +17909,7 @@ Thu Jul 25 18:57:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
(tablejump_mips162): Likewise.
-Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-25 J"orn Rennecke <joern.rennecke@superh.com>
* simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
int_mode_for_mode.
@@ -10066,12 +18131,12 @@ Thu Jul 25 10:23:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
* config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.
-Wed Jul 24 17:59:12 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-24 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Dump loops before clobbering
the structure.
-Wed Jul 24 17:23:16 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-24 Jan Hubicka <jh@suse.cz>
* rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.
@@ -10162,7 +18227,7 @@ Wed Jul 24 17:23:16 CEST 2002 Jan Hubicka <jh@suse.cz>
(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
* doc/tm.texi: Remove documentation.
-Tue Jul 23 21:49:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-23 J"orn Rennecke <joern.rennecke@superh.com>
* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
(constrain_operands): Likewise.
@@ -10254,7 +18319,7 @@ Tue Jul 23 21:49:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
* recog.h (validate_repalce_src_group): New.
(num_changes_pending): Likewise.
-Tue Jul 23 12:16:58 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-23 J"orn Rennecke <joern.rennecke@superh.com>
* calls.c (emit_library_call_value_1): If
FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
@@ -10329,7 +18394,7 @@ Tue Jul 23 12:16:58 2002 J"orn Rennecke <joern.rennecke@superh.com>
* ra-debug.c (dump_static_insn_cost): Avoid string concatenation.
-Mon Jul 22 15:27:25 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-22 J"orn Rennecke <joern.rennecke@superh.com>
* rtlanal.c (subreg_regno_offset): Return correct offset for
big endian paradoxical subregs.
@@ -10436,7 +18501,7 @@ Mon Jul 22 15:27:25 2002 J"orn Rennecke <joern.rennecke@superh.com>
* c-typeck.c (SAVE_SPELLING_DEPTH): Remove.
-Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-21 Jan Hubicka <jh@suse.cz>
* gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
do_local_cprop.
@@ -10491,7 +18556,7 @@ Sun Jul 21 21:36:41 CEST 2002 Jan Hubicka <jh@suse.cz>
IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
these macros.
-Sun Jul 21 00:54:54 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-21 Jan Hubicka <jh@suse.cz>
* gcse.c: Include cselib.h
(constptop_register): Break out from ...
@@ -10616,7 +18681,7 @@ Sun Jul 21 00:54:54 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.
-Thu Jul 18 19:39:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-18 J"orn Rennecke <joern.rennecke@superh.com>
* sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
(sh_expand_binop_v2sf): Likewise.
@@ -10658,7 +18723,7 @@ Thu Jul 18 19:39:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
* ifcvt.c (noce_get_condition): Make certain that the condition
is valid at JUMP.
-Thu Jul 18 13:44:51 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-18 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (barrier_align, push): Shut up compiler warnings.
(initial_elimination_offset,sh_media_init_builtins): Likewise.
@@ -10671,7 +18736,7 @@ Thu Jul 18 13:44:51 2002 J"orn Rennecke <joern.rennecke@superh.com>
(STARTFILE_SPEC): Remove hardcoded library paths.
(ENDFILE_SPEC): Likewise.
-Thu Jul 18 09:38:59 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-18 Jan Hubicka <jh@suse.cz>
* gcse.c (hoist_expr_reaches_here_p): Stop once expr_bb is reached.
@@ -10712,7 +18777,7 @@ Thu Jul 18 09:38:59 CEST 2002 Jan Hubicka <jh@suse.cz>
Remove all references to SCCS_DIRECTIVE.
* doc/cpp.texi, doc/tm.texi: Update.
-Wed Jul 17 19:23:32 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-17 J"orn Rennecke <joern.rennecke@superh.com>
* regrename.c (maybe_mode_change): New function.
(find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.
@@ -10737,7 +18802,7 @@ Wed Jul 17 19:23:32 2002 J"orn Rennecke <joern.rennecke@superh.com>
* cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
* cpptrad.c (recursive_macro): Similarly.
-Wed Jul 17 17:08:06 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-17 J"orn Rennecke <joern.rennecke@superh.com>
* config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
SHmedia code.
@@ -10891,16 +18956,16 @@ Wed Jul 17 17:08:06 2002 J"orn Rennecke <joern.rennecke@superh.com>
(machopic_stub_name): Ditto.
* config/darwin-protos.h: Ditto for the prototypes.
-Wed Jul 17 00:22:39 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-17 Jan Hubicka <jh@suse.cz>
* m68hc11.c (m68hc11_reorg): Do not rebuild CFG.
-Wed Jul 17 00:20:48 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-17 Jan Hubicka <jh@suse.cz>
* i386.md (prefetch): Fix for 64bit mode.
(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
-Wed Jul 17 00:19:20 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-17 Jan Hubicka <jh@suse.cz>
* i386.h (MACHINE_DEPENDENT_REORG): New macro.
* i386.c (x86_machine_dependent_reorg): New function.
@@ -10926,7 +18991,7 @@ Wed Jul 17 00:19:20 CEST 2002 Jan Hubicka <jh@suse.cz>
argument from all implementations of EXPAND_BUILTIN_VA_START
and all uses of std_expand_builtin_va_start.
-Tue Jul 16 19:32:58 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-16 J"orn Rennecke <joern.rennecke@superh.com>
* regrename.c (copy_value): Don't record high part copies.
@@ -11003,7 +19068,7 @@ Tue Jul 16 19:32:58 2002 J"orn Rennecke <joern.rennecke@superh.com>
* Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
depend on reload.h, insn-config.h.
-Tue Jul 16 11:57:45 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-16 J"orn Rennecke <joern.rennecke@superh.com>
* expr.c (emit_move_insn_1): Handle arbitrary moves that are
the same size as a word.
@@ -11011,7 +19076,7 @@ Tue Jul 16 11:57:45 2002 J"orn Rennecke <joern.rennecke@superh.com>
* regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
BYTES_BIG_ENDIAN into account.
-Tue Jul 16 12:22:44 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-16 Jan Hubicka <jh@suse.cz>
* i386.md (prefetch): Fix for 64bit mode.
(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.
@@ -11233,14 +19298,14 @@ Tue Jul 16 12:22:44 CEST 2002 Jan Hubicka <jh@suse.cz>
* config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
usage on 64-bit hosts, return value was truncated to 32 bits.
-Fri Jul 12 00:49:36 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-12 J"orn Rennecke <joern.rennecke@superh.com>
* simplify-rtx.c (simplify_subreg): Handle floating point
CONST_DOUBLEs. When an integer subreg of a smaller mode than
the element mode is requested, compute a subreg with an
integer mode of the same size as the element mode first.
-Thu Jul 11 22:02:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-11 J"orn Rennecke <joern.rennecke@superh.com>
* combine.c (try_combine): When converting a paradoxical subreg
to an extension, take LOAD_EXTEND_OP into account.
@@ -11292,7 +19357,7 @@ Thu Jul 11 22:02:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
* c-decl.c (duplicate_decls): Preserve the noreturn attribute on
non-ANSI builtin functions.
-Thu Jul 11 11:31:12 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-11 J"orn Rennecke <joern.rennecke@superh.com>
* rtl.h (gen_rtx_CONST_VECTOR): Declare.
* gengenrtl.c (special_rtx): Check for CONST_VECTOR.
@@ -11425,12 +19490,12 @@ Thu Jul 11 11:31:12 2002 J"orn Rennecke <joern.rennecke@superh.com>
* doc/invoke.texi (Debugging Options): Mention that -gdwarf is
deprecated.
-Wed Jul 10 19:50:03 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-10 J"orn Rennecke <joern.rennecke@superh.com>
* combine.c (gen_lowpart_for_combine): Handle vector modes.
Supply non-VOID mode to simplify_gen_subreg.
-Wed Jul 10 18:48:55 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-07-10 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_init_mmx_sse_builtins): Fix thinko.
@@ -11442,7 +19507,7 @@ Wed Jul 10 18:48:55 CEST 2002 Jan Hubicka <jh@suse.cz>
* mn10200.c (expand_epilogue): Fix test to determine which scratch
register to use.
-Wed Jul 10 16:06:00 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-10 J"orn Rennecke <joern.rennecke@superh.com>
* cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
Get mode from dest.
@@ -11499,7 +19564,7 @@ Wed Jul 10 16:06:00 2002 J"orn Rennecke <joern.rennecke@superh.com>
quoting of <> in #include.
* doc/cpp.texi: Update.
-Tue Jul 9 22:37:44 2002 Stephen Clarke <stephen.clarke@superh.com>
+2002-07-09 Stephen Clarke <stephen.clarke@superh.com>
J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
@@ -11528,7 +19593,7 @@ Tue Jul 9 22:37:44 2002 Stephen Clarke <stephen.clarke@superh.com>
(movsi_media, movsi_media_nofpu, movdi_media): Use new types.
(movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.
-Tue Jul 9 21:39:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-09 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
* sh.c (general_extend_operand, inqhi_operand): New functions.
@@ -11626,7 +19691,7 @@ Tue Jul 9 21:39:50 2002 J"orn Rennecke <joern.rennecke@superh.com>
(toplev_main): ...from here. Pass flag for back end init
suppression.
-Sun Jul 7 20:38:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-07 J"orn Rennecke <joern.rennecke@superh.com>
* sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
(PREDICATE_CODES): Add entries for equality_comparison_operator,
@@ -11772,12 +19837,12 @@ Sun Jul 7 20:38:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
* ggc.h (ggc_add_root): Document as obsolete.
-Thu Jul 4 07:58:01 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-04 J"orn Rennecke <joern.rennecke@superh.com>
* sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
(mshflo_w): Likewise.
-Thu Jul 4 07:36:29 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-04 J"orn Rennecke <joern.rennecke@superh.com>
* simplify-rtx.c (simplify_subreg): Reduce problem of finding
vector mode subregs of constants to finding integer mode
@@ -11841,7 +19906,7 @@ Thu Jul 4 07:36:29 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.
-Wed Jul 3 10:24:16 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-03 J"orn Rennecke <joern.rennecke@superh.com>
* optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
than UNITS_PER_WORD, unless this is little endian and the first unit
@@ -11912,7 +19977,7 @@ Wed Jul 3 10:24:16 2002 J"orn Rennecke <joern.rennecke@superh.com>
(lookup_objc_ivar): Test objc_method_context instead of
objc_receiver_context.
-Tue Jul 2 18:45:45 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-02 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (print_operand, case 'N'): Allow zero vector.
(arith_reg_or_0_operand): Likewise.
@@ -12008,7 +20073,7 @@ Tue Jul 2 18:45:45 2002 J"orn Rennecke <joern.rennecke@superh.com>
* README.Portability (Function prototypes): Document new
variable-argument function macros.
-Mon Jul 1 19:55:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-01 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (langhooks.h): Include.
(sh_init_builtins, sh_media_init_builtins): New functions.
@@ -12076,3 +20141,4 @@ Mon Jul 1 19:55:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
* mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.
See ChangeLog.7 for earlier changes.
+
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index e1fb947e4ed..4d10ffbd7b5 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1,6 +1,6 @@
# Makefile for GNU C compiler.
# Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
-# 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -132,7 +132,9 @@ SHELL = @SHELL@
# the environment to account for automounters. The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
-PWD = $${PWDCMD-pwd}
+# Don't use PWD since it is a common shell environment variable and we
+# don't want to corrupt it.
+PWD_COMMAND = $${PWDCMD-pwd}
# on sysV, define this as cp.
INSTALL = @INSTALL@
# Some systems may be missing symbolic links, regular links, or both.
@@ -181,6 +183,7 @@ USER_H = $(srcdir)/ginclude/float.h \
$(srcdir)/ginclude/stdbool.h \
$(srcdir)/ginclude/stddef.h \
$(srcdir)/ginclude/varargs.h \
+ $(srcdir)/unwind.h \
$(EXTRA_HEADERS)
# The GCC to use for compiling libgcc.a and crt*.o.
@@ -254,11 +257,12 @@ HASHTAB_H = $(srcdir)/../include/hashtab.h
OBSTACK_H = $(srcdir)/../include/obstack.h
SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h
FIBHEAP_H = $(srcdir)/../include/fibheap.h
+PARTITION_H = $(srcdir)/../include/partition.h
# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
NATIVE_SYSTEM_HEADER_DIR = /usr/include
# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
-CROSS_SYSTEM_HEADER_DIR = $(build_tooldir)/sys-include
+CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
# autoconf sets SYSTEM_HEADER_DIR to one of the above.
SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
@@ -270,6 +274,10 @@ STMP_FIXINC = @STMP_FIXINC@
# Test to see whether <limits.h> exists in the system header files.
LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
+# Directory for prefix to system directories, for
+# each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
+TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
+
target=@target@
target_alias=@target_alias@
xmake_file=@dep_host_xmake_file@
@@ -397,9 +405,9 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
-finhibit-size-directive -fno-inline-functions -fno-exceptions \
-fno-zero-initialized-in-bss
-# Additional sources to handle exceptions; overridden on ia64.
+# Additional sources to handle exceptions; overridden by targets as needed.
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
- $(srcdir)/unwind-sjlj.c
+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
# nm flags to list global symbols in libgcc object files.
@@ -569,7 +577,8 @@ RTL_H = $(RTL_BASE_H) genrtl.h
PARAMS_H = params.h params.def
TREE_H = tree.h tree.def $(MACHMODE_H) tree-check.h version.h builtins.def \
location.h
-BASIC_BLOCK_H = basic-block.h bitmap.h sbitmap.h varray.h
+BASIC_BLOCK_H = basic-block.h bitmap.h sbitmap.h varray.h $(PARTITION_H) \
+ hard-reg-set.h
DEMANGLE_H = $(srcdir)/../include/demangle.h
RECOG_H = recog.h
EXPR_H = expr.h
@@ -631,6 +640,9 @@ LIBS = $(INTLLIBS) @LIBS@ $(LIBIBERTY)
# Any system libraries needed just for GNAT.
SYSLIBS = @GNAT_LIBEXC@
+# Libs needed (at present) just for jcf-dump.
+LDEXP_LIB = @LDEXP_LIB@
+
# Likewise, for use in the tools that must run on this machine
# even if we are cross-building GCC.
HOST_LIBS = $(BUILD_LIBIBERTY)
@@ -674,6 +686,7 @@ LANG_STAGESTUFF = @all_stagestuff@
# subdirectories.
# ??? The choices here will need some experimenting with.
ORDINARY_FLAGS_TO_PASS = \
+ "AR=$(AR)" \
"AR_FLAGS_FOR_TARGET=$(AR_FLAGS_FOR_TARGET)" \
"AR_CREATE_FOR_TARGET=$(AR_CREATE_FOR_TARGET)" \
"AR_EXTRACT_FOR_TARGET=$(AR_EXTRACT_FOR_TARGET)" \
@@ -681,6 +694,7 @@ ORDINARY_FLAGS_TO_PASS = \
"BISON=$(BISON)" \
"BISONFLAGS=$(BISONFLAGS)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
+ "DESTDIR=$(DESTDIR)" \
"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
"LDFLAGS=$(LDFLAGS)" \
"FLEX=$(FLEX)" \
@@ -796,12 +810,17 @@ LIB2FUNCS_ST = _eprintf _bb __gcc_bcmp
FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \
_fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \
_lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \
- _sf_to_df _thenan_sf _sf_to_usi _usi_to_sf
+ _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf
DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \
_fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \
_lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \
- _df_to_sf _thenan_df _df_to_usi _usi_to_df
+ _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df
+
+TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \
+ _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \
+ _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \
+ _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf
# These might cause a divide overflow trap and so are compiled with
# unwinder info.
@@ -1021,6 +1040,8 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext
LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \
DPBIT='$(DPBIT)' \
DPBIT_FUNCS='$(DPBIT_FUNCS)' \
+ TPBIT='$(TPBIT)' \
+ TPBIT_FUNCS='$(TPBIT_FUNCS)' \
MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
SHLIB_LINK='$(SHLIB_LINK)' \
@@ -1040,8 +1061,9 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext
LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) stmp-int-hdrs $(STMP_FIXPROTO) \
libgcc.mk $(srcdir)/libgcc2.c $(TCONFIG_H) \
$(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \
- tsystem.h $(FPBIT) $(DPBIT) $(LIB2ADD) $(LIB2ADD_ST) $(LIB2ADDEH) \
- $(LIB2ADDEHDEP) $(EXTRA_PARTS) $(srcdir)/config/$(LIB1ASMSRC)
+ tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
+ $(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \
+ $(srcdir)/config/$(LIB1ASMSRC)
libgcc.a: $(LIBGCC_DEPS)
$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
@@ -1185,7 +1207,7 @@ $(srcdir)/c-parse.y: c-parse.in
c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) $(C_TREE_H) \
$(GGC_H) $(TARGET_H) flags.h function.h output.h $(EXPR_H) \
debug.h toplev.h intl.h $(TM_P_H) tree-inline.h $(TIMEVAR_H) c-pragma.h \
- gt-c-decl.h
+ gt-c-decl.h libfuncs.h except.h
c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \
$(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H)
c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(C_TREE_H) \
@@ -1232,7 +1254,7 @@ tlink.o: tlink.c $(DEMANGLE_H) $(HASHTAB_H) $(CONFIG_H) $(SYSTEM_H) \
c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \
$(C_COMMON_H) flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \
$(EXPR_H) $(TM_P_H) builtin-types.def builtin-attrs.def $(TARGET_H) \
- diagnostic.h except.h gt-c-common.h real.h langhooks.h
+ diagnostic.h except.h gt-c-common.h real.h langhooks.h c-tree.h
c-pretty-print.o : c-pretty-print.c c-pretty-print.h pretty-print.h \
$(C_COMMON_H) $(CONFIG_H) $(SYSTEM_H) real.h
@@ -1264,6 +1286,7 @@ DRIVER_DEFINES = \
-DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \
-DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \
-DTOOLDIR_BASE_PREFIX=\"$(unlibsubdir)/../\" \
+ @TARGET_SYSTEM_ROOT_DEFINE@ \
$(VALGRIND_DRIVER_DEFINES) \
`test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
`test "X$${SHLIB_MULTILIB}" = "X" || echo "-DNO_SHARED_LIBGCC_MULTILIB"`
@@ -1341,7 +1364,7 @@ ggc-simple.o: ggc-simple.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
$(GGC_H) varray.h $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H)
ggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
- toplev.h $(GGC_H) varray.h $(TIMEVAR_H) $(TM_P_H)
+ toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H)
stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(OBSTACK_H) \
flags.h toplev.h $(GGC_H)
@@ -1437,7 +1460,8 @@ builtins.o : builtins.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
except.h $(TM_P_H) $(PREDICT_H) libfuncs.h real.h langhooks.h
calls.o : calls.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
$(EXPR_H) langhooks.h $(TARGET_H) \
- libfuncs.h $(REGS_H) toplev.h output.h function.h $(TIMEVAR_H) $(TM_P_H)
+ libfuncs.h $(REGS_H) toplev.h output.h function.h $(TIMEVAR_H) $(TM_P_H) \
+ except.h
expmed.o : expmed.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(EXPR_H) $(OPTABS_H) $(RECOG_H) real.h \
toplev.h $(TM_P_H) langhooks.h
@@ -1446,7 +1470,7 @@ explow.o : explow.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
toplev.h function.h ggc.h $(TM_P_H) gt-explow.h
optabs.o : optabs.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(EXPR_H) $(OPTABS_H) libfuncs.h $(RECOG_H) reload.h \
- toplev.h $(GGC_H) real.h $(TM_P_H) except.h gt-optabs.h
+ toplev.h $(GGC_H) real.h $(TM_P_H) except.h gt-optabs.h $(BASIC_BLOCK_H)
dbxout.o : dbxout.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(RTL_H) flags.h \
$(REGS_H) debug.h $(TM_P_H) $(TARGET_H) function.h langhooks.h \
insn-config.h reload.h gstab.h xcoffout.h output.h dbxout.h toplev.h
@@ -1489,7 +1513,7 @@ cselib.o : cselib.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) \
output.h function.h cselib.h $(GGC_H) $(TM_P_H) gt-cselib.h
cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \
real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h \
- $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H)
+ $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) $(TARGET_H)
gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h \
flags.h real.h insn-config.h ggc.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \
function.h output.h toplev.h $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h
@@ -1521,7 +1545,7 @@ profile.o : profile.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h \
loop.o : loop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(LOOP_H) \
insn-config.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) \
real.h $(PREDICT_H) $(BASIC_BLOCK_H) function.h \
- toplev.h varray.h except.h cselib.h $(OPTABS_H) $(TM_P_H)
+ toplev.h varray.h except.h cselib.h $(OPTABS_H) $(TM_P_H) $(GGC_H)
doloop.o : doloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(LOOP_H) \
$(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) toplev.h
unroll.o : unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h function.h \
@@ -1543,7 +1567,7 @@ cfgbuild.o : cfgbuild.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h insn-config.h \
function.h except.h $(GGC_H)
cfgcleanup.o : cfgcleanup.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TIMEVAR_H)\
$(BASIC_BLOCK_H) hard-reg-set.h output.h flags.h $(RECOG_H) toplev.h \
- $(GGC_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H)
+ $(GGC_H) insn-config.h cselib.h $(TARGET_H) $(TM_P_H) $(PARAMS_H)
cfgloop.o : cfgloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) \
$(BASIC_BLOCK_H) hard-reg-set.h
dominance.o : dominance.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) hard-reg-set.h \
@@ -2178,8 +2202,9 @@ PREPROCESSOR_DEFINES = \
-DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
- -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
- -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\"
+ -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
+ -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
+ @TARGET_SYSTEM_ROOT_DEFINE@
LIBCPP_OBJS = cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o cpptrad.o \
cpphash.o cpperror.o cppinit.o cppdefault.o cppmain.o \
@@ -2337,20 +2362,31 @@ fixinc.sh: $(FIXINCSRCDIR)/mkfixinc.sh $(FIXINCSRCDIR)/fixincl.c \
$(FIXINCSRCDIR)/procopen.c $(FIXINCSRCDIR)/gnu-regex.c \
$(FIXINCSRCDIR)/server.c $(FIXINCSRCDIR)/gnu-regex.h \
$(FIXINCSRCDIR)/server.h $(FIXINCSRCDIR)/inclhack.def specs.ready
- (MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc && ${PWD}` ; \
+ (MAKE="$(MAKE)"; srcdir=`cd $(srcdir)/fixinc && ${PWD_COMMAND}` ; \
CC="$(HOST_CC)"; CFLAGS="$(HOST_CFLAGS)"; LDFLAGS="$(HOST_LDFLAGS)"; \
- WARN_CFLAGS="$(WARN_CFLAGS)"; \
- export MAKE srcdir CC CFLAGS LDFLAGS WARN_CFLAGS; cd ./fixinc && \
+ WARN_CFLAGS="$(WARN_CFLAGS)"; LIBERTY=`pwd`/"$(BUILD_LIBIBERTY)"; \
+ export MAKE srcdir CC CFLAGS LDFLAGS WARN_CFLAGS LIBERTY; \
+ cd ./fixinc && \
$(SHELL) $${srcdir}/mkfixinc.sh $(build_canonical) $(target))
+.PHONY: install-gcc-tooldir
+install-gcc-tooldir:
+ $(SHELL) ${srcdir}/mkinstalldirs $(gcc_tooldir)
+
# Build fixed copies of system files.
stmp-fixinc: fixinc.sh gsyslimits.h
+ @if test ! -d ${SYSTEM_HEADER_DIR}; then \
+ echo The directory that should contain system headers does not exist: >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
+ if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
+ then sleep 1; else exit 1; fi; \
+ fi
rm -rf include; mkdir include
-chmod a+rx include
- (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD}`; \
+ (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \
SHELL='$(SHELL)' ;\
export TARGET_MACHINE srcdir SHELL ; \
- $(SHELL) ./fixinc.sh `${PWD}`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); \
+ $(SHELL) ./fixinc.sh `${PWD_COMMAND}`/include $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS); \
rm -f include/syslimits.h; \
if [ -f include/limits.h ]; then \
mv include/limits.h include/syslimits.h; \
@@ -2358,20 +2394,6 @@ stmp-fixinc: fixinc.sh gsyslimits.h
cp $(srcdir)/gsyslimits.h include/syslimits.h; \
fi; \
chmod a+r include/syslimits.h)
-# If $(SYSTEM_HEADER_DIR) is $(build_tooldir)/sys-include, and
-# that directory exists, then make sure that $(libsubdir) exists.
-# This is because cpp is compiled to find $(gcc_tooldir)/include via
-# $(libsubdir)/$(unlibsubdir), which will only work if $(libsubdir)
-# exists.
-# ??? Better would be to use -isystem $(build_tooldir)/sys-include,
-# but fixincludes does not take such arguments.
- if [ "$(SYSTEM_HEADER_DIR)" = "$(build_tooldir)/sys-include" ] \
- && [ -d $(build_tooldir)/sys-include ]; then \
- if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; fi; \
- if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib; fi; \
- if [ -d $(libdir)/gcc-lib/$(target_alias) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias) ; fi; \
- if [ -d $(libdir)/gcc-lib/$(target_alias)/$(version) ] ; then true ; else mkdir $(libdir)/gcc-lib/$(target_alias)/$(version) ; fi; \
- else true; fi
$(STAMP) stmp-fixinc
# Files related to the fixproto script.
@@ -2380,7 +2402,7 @@ stmp-fixinc: fixinc.sh gsyslimits.h
# libiberty.a.
deduced.h: $(GCC_PASSES) $(srcdir)/scan-types.sh stmp-int-hdrs
- if [ -d $(SYSTEM_HEADER_DIR) ]; \
+ if [ -d "$(SYSTEM_HEADER_DIR)" ]; \
then \
CC="$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -I. -I$(srcdir) -isystem include -isystem ${SYSTEM_HEADER_DIR}"; \
export CC; \
@@ -2446,7 +2468,7 @@ stmp-fixproto: fixhdr.ready fixproto stmp-int-hdrs
FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"; export FIXPROTO_DEFINES; \
mkinstalldirs="$(SHELL) $(srcdir)/mkinstalldirs"; \
export mkinstalldirs; \
- if [ -d $(SYSTEM_HEADER_DIR) ] ; then \
+ if [ -d "$(SYSTEM_HEADER_DIR)" ]; then \
$(SHELL) ${srcdir}/fixproto include include $(SYSTEM_HEADER_DIR); \
if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \
else true; fi; \
@@ -2469,7 +2491,7 @@ TEXI_GCC_FILES = $(docdir)/gcc.texi $(docdir)/include/gcc-common.texi \
$(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)/contribute.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
@@ -2522,7 +2544,7 @@ gccint.dvi: $(TEXI_GCCINT_FILES)
$(TEXI2DVI) -I $(docdir) -I $(docdir)/include $(docdir)/gccint.texi
gccinstall.dvi: $(TEXI_GCCINSTALL_FILES)
- s=`cd $(srcdir); ${PWD}`; export s; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(TEXI2DVI) -I $$s/doc -I $$s/doc/include -o $@ $$s/doc/install.texi
cppinternals.dvi: $(TEXI_CPPINT_FILES)
@@ -2739,173 +2761,163 @@ install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
# Handle cpp installation.
install-cpp: cpp$(exeext)
-if [ -f gcc-cross$(exeext) ] ; then \
- rm -f $(bindir)/$(CPP_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(CPP_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(bindir)/$(CPP_CROSS_NAME)$(exeext); \
if [ x$(cpp_install_dir) != x ]; then \
- rm -f $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
else true; fi; \
else \
- rm -f $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext); \
if [ x$(cpp_install_dir) != x ]; then \
- rm -f $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
else true; fi; \
fi
# Create the installation directories.
+# $(libdir)/gcc-lib/include isn't currently searched by cpp.
installdirs:
- -if [ -d $(prefix) ] ; then true ; else mkdir $(prefix) ; chmod a+rx $(prefix) ; fi
- -if [ -d $(exec_prefix) ] ; then true ; else mkdir $(exec_prefix) ; chmod a+rx $(exec_prefix) ; fi
- -if [ -d $(libdir) ] ; then true ; else mkdir $(libdir) ; chmod a+rx $(libdir) ; fi
- -if [ -d $(libdir)/gcc-lib ] ; then true ; else mkdir $(libdir)/gcc-lib ; chmod a+rx $(libdir)/gcc-lib ; fi
-# This dir isn't currently searched by cpp.
-# -if [ -d $(libdir)/gcc-lib/include ] ; then true ; else mkdir $(libdir)/gcc-lib/include ; chmod a+rx $(libdir)/gcc-lib/include ; fi
- -fdir= ; for dir in `echo $(libsubdir) | tr '/' ' '`; do \
- fdir=$${fdir}/$${dir}; \
- if [ -d $${fdir} ] ; then true ; else mkdir $${fdir}; chmod a+rx $${fdir}; fi ; \
- done
- -if [ -d $(bindir) ] ; then true ; else mkdir $(bindir) ; chmod a+rx $(bindir) ; fi
- -if [ -d $(includedir) ] ; then true ; else mkdir $(includedir) ; chmod a+rx $(includedir) ; fi
- -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi
- -if [ -d $(slibdir) ] ; then true ; else mkdir $(slibdir) ; chmod a+rx $(slibdir) ; fi
-# We don't use mkdir -p to create the parents of man1dir,
-# because some systems don't support it.
-# Instead, we use this technique to create the immediate parent of man1dir.
- -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \
- if [ -d $$parent ] ; then true ; else mkdir $$parent ; chmod a+rx $$parent ; fi
- -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; chmod a+rx $(man1dir) ; fi
- -if [ -d $(man7dir) ] ; then true ; else mkdir $(man7dir) ; chmod a+rx $(man7dir) ; fi
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(libsubdir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(bindir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(includedir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(infodir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(slibdir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(man1dir)
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(man7dir)
# Install the compiler executables built during cross compilation.
install-common: native $(EXTRA_PARTS) lang.install-common
for file in $(COMPILERS); do \
if [ -f $$file ] ; then \
- rm -f $(libsubdir)/$$file; \
- $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \
+ rm -f $(DESTDIR)$(libsubdir)/$$file; \
+ $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libsubdir)/$$file; \
else true; \
fi; \
done
for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) ..; do \
if [ x"$$file" != x.. ]; then \
- rm -f $(libsubdir)/$$file; \
- $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \
+ rm -f $(DESTDIR)$(libsubdir)/$$file; \
+ $(INSTALL_PROGRAM) $$file $(DESTDIR)$(libsubdir)/$$file; \
else true; fi; \
done
for file in $(EXTRA_PARTS) ..; do \
if [ x"$$file" != x.. ]; then \
- rm -f $(libsubdir)/$$file; \
- $(INSTALL_DATA) $$file $(libsubdir)/$$file; \
- chmod a-x $(libsubdir)/$$file; \
+ rm -f $(DESTDIR)$(libsubdir)/$$file; \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(libsubdir)/$$file; \
+ chmod a-x $(DESTDIR)$(libsubdir)/$$file; \
else true; fi; \
done
# Don't mess with specs if it doesn't exist yet.
-if [ -f specs ] ; then \
- rm -f $(libsubdir)/specs; \
- $(INSTALL_DATA) specs $(libsubdir)/specs; \
- chmod a-x $(libsubdir)/specs; \
+ rm -f $(DESTDIR)$(libsubdir)/specs; \
+ $(INSTALL_DATA) specs $(DESTDIR)$(libsubdir)/specs; \
+ chmod a-x $(DESTDIR)$(libsubdir)/specs; \
fi
# Install protoize if it was compiled.
-if [ -f protoize$(exeext) ]; \
then \
if [ -f gcc-cross$(exeext) ] ; then \
- rm -f $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) protoize$(exeext) $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \
- rm -f $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) unprotoize$(exeext) $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) protoize$(exeext) $(DESTDIR)$(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) unprotoize$(exeext) $(DESTDIR)$(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext); \
else \
- rm -f $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) protoize$(exeext) $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) unprotoize$(exeext) $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) protoize$(exeext) $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) unprotoize$(exeext) $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext); \
fi ; \
- rm -f $(libsubdir)/SYSCALLS.c.X; \
- $(INSTALL_DATA) SYSCALLS.c.X $(libsubdir)/SYSCALLS.c.X; \
- chmod a-x $(libsubdir)/SYSCALLS.c.X; \
+ rm -f $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
+ $(INSTALL_DATA) SYSCALLS.c.X $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
+ chmod a-x $(DESTDIR)$(libsubdir)/SYSCALLS.c.X; \
fi
# Install gcov if it was compiled.
-if [ -f gcov$(exeext) ]; \
then \
- rm -f $(bindir)/gcov$(exeext); \
- $(INSTALL_PROGRAM) gcov$(exeext) $(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/gcov$(exeext); \
+ $(INSTALL_PROGRAM) gcov$(exeext) $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext); \
fi
- $(INSTALL_SCRIPT) gccbug $(bindir)/$(GCCBUG_INSTALL_NAME)
+ $(INSTALL_SCRIPT) gccbug $(DESTDIR)$(bindir)/$(GCCBUG_INSTALL_NAME)
# Install the driver program as $(target_alias)-gcc,
# $(target-alias)-gcc-$(version)
# and also as either gcc (if native) or $(gcc_tooldir)/bin/gcc.
install-driver: installdirs xgcc$(exeext)
-if [ -f gcc-cross$(exeext) ] ; then \
- rm -f $(bindir)/$(GCC_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) gcc-cross$(exeext) $(bindir)/$(GCC_CROSS_NAME)$(exeext); \
- rm -f $(bindir)/$(target_alias)-gcc-$(version); \
- $(LN) $(bindir)/$(GCC_CROSS_NAME)$(exeext) $(bindir)/$(target_alias)-gcc-$(version) ; \
- if [ -d $(gcc_tooldir)/bin/. ] ; then \
- rm -f $(gcc_tooldir)/bin/gcc$(exeext); \
- $(INSTALL_PROGRAM) gcc-cross$(exeext) $(gcc_tooldir)/bin/gcc$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(GCC_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) gcc-cross$(exeext) $(DESTDIR)$(bindir)/$(GCC_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(target_alias)-gcc-$(version); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GCC_CROSS_NAME)$(exeext) $(target_alias)-gcc-$(version) ); \
+ if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
+ $(INSTALL_PROGRAM) gcc-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/gcc$(exeext); \
else true; fi; \
else \
- rm -f $(bindir)/$(GCC_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) xgcc$(exeext) $(bindir)/$(GCC_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(target_alias)-gcc-$(version); \
- $(LN) $(bindir)/$(GCC_INSTALL_NAME)$(exeext) $(bindir)/$(target_alias)-gcc-$(version) ; \
- rm -f $(bindir)/$(target_alias)-gcc-tmp$(exeext); \
- $(LN) $(bindir)/$(GCC_INSTALL_NAME)$(exeext) $(bindir)/$(target_alias)-gcc-tmp$(exeext); \
- mv $(bindir)/$(target_alias)-gcc-tmp$(exeext) $(bindir)/$(GCC_TARGET_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(target_alias)-gcc-$(version); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_alias)-gcc-$(version) ); \
+ rm -f $(DESTDIR)$(bindir)/$(target_alias)-gcc-tmp$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_alias)-gcc-tmp$(exeext) && \
+ mv -f $(target_alias)-gcc-tmp$(exeext) $(GCC_TARGET_INSTALL_NAME)$(exeext) ); \
fi
# Install the info files.
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info: doc installdirs lang.install-info
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- -rm -f $(infodir)/cppinternals.info* $(infodir)/gccint.info*
+ -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
+ -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
if [ -f $(docdir)/gcc.info ]; then \
for f in $(docdir)/cpp.info* $(docdir)/gcc.info* \
$(docdir)/cppinternals.info* $(docdir)/gccint.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
- $(INSTALL_DATA) $$f $(infodir)/$$realfile; \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
done; \
else true; fi
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- if [ -f $(infodir)/dir ] ; then \
+ if [ -f $(DESTDIR)$(infodir)/dir ] ; then \
for f in cpp.info gcc.info gccint.info cppinternals.info; do \
- if [ -f $(infodir)/$$f ]; then \
- install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
+ if [ -f $(DESTDIR)$(infodir)/$$f ]; then \
+ install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/$$f; \
else true; fi; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
- -chmod a-x $(infodir)/cppinternals.info* $(infodir)/gccint.info*
+ -chmod a-x $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
+ -chmod a-x $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
# Install the man pages.
install-man: installdirs $(GENERATED_MANPAGES) lang.install-man
-if [ -f gcc-cross$(exeext) ] ; then \
- rm -f $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
- $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(docdir)/gcc.1 $(DESTDIR)$(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(GCC_CROSS_NAME)$(man1ext); \
else \
- rm -f $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
- $(INSTALL_DATA) $(docdir)/gcc.1 $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(docdir)/gcc.1 $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext); \
fi
- -rm -f $(man1dir)/cpp$(man1ext)
- -$(INSTALL_DATA) $(docdir)/cpp.1 $(man1dir)/cpp$(man1ext)
- -chmod a-x $(man1dir)/cpp$(man1ext)
- -rm -f $(man1dir)/gcov$(man1ext)
- -$(INSTALL_DATA) $(docdir)/gcov.1 $(man1dir)/gcov$(man1ext)
- -chmod a-x $(man1dir)/gcov$(man1ext)
- -rm -f $(man7dir)/fsf-funding$(man7ext)
- -$(INSTALL_DATA) $(docdir)/fsf-funding.7 $(man7dir)/fsf-funding$(man7ext)
- -chmod a-x $(man7dir)/fsf-funding$(man7ext)
- -rm -f $(man7dir)/gfdl$(man7ext)
- -$(INSTALL_DATA) $(docdir)/gfdl.7 $(man7dir)/gfdl$(man7ext)
- -chmod a-x $(man7dir)/gfdl$(man7ext)
- -rm -f $(man7dir)/gpl$(man7ext)
- -$(INSTALL_DATA) $(docdir)/gpl.7 $(man7dir)/gpl$(man7ext)
- -chmod a-x $(man7dir)/gpl$(man7ext)
+ -rm -f $(DESTDIR)$(man1dir)/cpp$(man1ext)
+ -$(INSTALL_DATA) $(docdir)/cpp.1 $(DESTDIR)$(man1dir)/cpp$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/cpp$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/gcov$(man1ext)
+ -$(INSTALL_DATA) $(docdir)/gcov.1 $(DESTDIR)$(man1dir)/gcov$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/gcov$(man1ext)
+ -rm -f $(DESTDIR)$(man7dir)/fsf-funding$(man7ext)
+ -$(INSTALL_DATA) $(docdir)/fsf-funding.7 $(DESTDIR)$(man7dir)/fsf-funding$(man7ext)
+ -chmod a-x $(DESTDIR)$(man7dir)/fsf-funding$(man7ext)
+ -rm -f $(DESTDIR)$(man7dir)/gfdl$(man7ext)
+ -$(INSTALL_DATA) $(docdir)/gfdl.7 $(DESTDIR)$(man7dir)/gfdl$(man7ext)
+ -chmod a-x $(DESTDIR)$(man7dir)/gfdl$(man7ext)
+ -rm -f $(DESTDIR)$(man7dir)/gpl$(man7ext)
+ -$(INSTALL_DATA) $(docdir)/gpl.7 $(DESTDIR)$(man7dir)/gpl$(man7ext)
+ -chmod a-x $(DESTDIR)$(man7dir)/gpl$(man7ext)
# Install the library.
install-libgcc: libgcc.mk libgcc.a installdirs
@@ -2929,6 +2941,7 @@ install-libgcc: libgcc.mk libgcc.a installdirs
MAKEOVERRIDES= \
INSTALL_DATA="$(INSTALL_DATA)" \
RANLIB_FOR_TARGET="$$r_f_t" \
+ DESTDIR="$(DESTDIR)" \
libsubdir="$(libsubdir)" \
slibdir="$(slibdir)" \
-f libgcc.mk install
@@ -2955,6 +2968,7 @@ install-multilib: stmp-multilib installdirs
MAKEOVERRIDES= \
INSTALL_DATA="$(INSTALL_DATA)" \
RANLIB_FOR_TARGET="$$r_f_t" \
+ DESTDIR="$(DESTDIR)" \
libsubdir="$(libsubdir)" \
slibdir="$(slibdir)" \
-f libgcc.mk install
@@ -2964,23 +2978,23 @@ install-headers: $(INSTALL_HEADERS_DIR)
# Fix symlinks to absolute paths in the installed include directory to
# point to the installed directory, not the build directory.
# Don't need to use LN_S here since we really do need ln -s and no substitutes.
- -files=`cd $(libsubdir)/include; find . -type l -print 2>/dev/null`; \
+ -files=`cd $(DESTDIR)$(libsubdir)/include; find . -type l -print 2>/dev/null`; \
if [ $$? -eq 0 ]; then \
- dir=`cd include; ${PWD}`; \
+ dir=`cd include; ${PWD_COMMAND}`; \
for i in $$files; do \
- dest=`ls -ld $(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
+ dest=`ls -ld $(DESTDIR)$(libsubdir)/include/$$i | sed -n 's/.*-> //p'`; \
if expr "$$dest" : "$$dir.*" > /dev/null; then \
- rm -f $(libsubdir)/include/$$i; \
- ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(libsubdir)/include/$$i; \
+ rm -f $(DESTDIR)$(libsubdir)/include/$$i; \
+ ln -s `echo $$i | sed "s|/[^/]*|/..|g" | sed 's|/..$$||'``echo "$$dest" | sed "s|$$dir||"` $(DESTDIR)$(libsubdir)/include/$$i; \
fi; \
done; \
fi
# Create or recreate the gcc private include file directory.
install-include-dir: installdirs
- -rm -rf $(libsubdir)/include
- mkdir $(libsubdir)/include
- -chmod a+rx $(libsubdir)/include
+ -rm -rf $(DESTDIR)$(libsubdir)/include
+ mkdir $(DESTDIR)$(libsubdir)/include
+ -chmod a+rx $(DESTDIR)$(libsubdir)/include
# Install the include directory using tar.
install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
@@ -2988,8 +3002,8 @@ install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
# Unless a full pathname is provided, some shells would print the new CWD,
# found in CDPATH, corrupting the output. We could just redirect the
# output of `cd', but some shells lose on redirection within `()'s
- (cd `${PWD}`/include ; \
- tar -cf - .; exit 0) | (cd $(libsubdir)/include; tar xpf - )
+ (cd `${PWD_COMMAND}`/include ; \
+ tar -cf - .; exit 0) | (cd $(DESTDIR)$(libsubdir)/include; tar xpf - )
# /bin/sh on some systems returns the status of the first tar,
# and that can lose with GNU tar which always writes a full block.
# So use `exit 0' to ignore its exit status.
@@ -2997,79 +3011,79 @@ install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
# Install the include directory using cpio.
install-headers-cpio: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
# See discussion about the use of `pwd` above
- cd `${PWD}`/include ; \
- find . -print | cpio -pdum $(libsubdir)/include
+ cd `${PWD_COMMAND}`/include ; \
+ find . -print | cpio -pdum $(DESTDIR)$(libsubdir)/include
# Install the include directory using cp.
install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
- cp -p -r include $(libsubdir)
+ cp -p -r include $(DESTDIR)$(libsubdir)
itoolsdir = $(libsubdir)/install-tools
# Don't install the headers. Instead, install appropriate scripts
# and supporting files for fixincludes to be run later.
install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \
mkheaders xlimits.h
- -rm -rf $(itoolsdir)
- $(SHELL) $(srcdir)/mkinstalldirs $(itoolsdir)/include
+ -rm -rf $(DESTDIR)$(itoolsdir)
+ $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(itoolsdir)/include
for file in $(USER_H); do \
realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
$(INSTALL_DATA) $$file \
- $(itoolsdir)/include/$$realfile ; \
+ $(DESTDIR)$(itoolsdir)/include/$$realfile ; \
done
- $(INSTALL_DATA) xlimits.h $(itoolsdir)/include/limits.h
+ $(INSTALL_DATA) xlimits.h $(DESTDIR)$(itoolsdir)/include/limits.h
if [ x$(STMP_FIXINC) != x ] ; then \
$(INSTALL_DATA) $(srcdir)/README-fixinc \
- $(itoolsdir)/include/README ; \
- $(INSTALL_PROGRAM) fixinc.sh $(itoolsdir)/fixinc.sh ; \
- $(INSTALL_PROGRAM) fixinc/fixincl $(itoolsdir)/fixincl ; \
- $(INSTALL_DATA) $(srcdir)/gsyslimits.h $(itoolsdir)/gsyslimits.h ; \
+ $(DESTDIR)$(itoolsdir)/include/README ; \
+ $(INSTALL_PROGRAM) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh ; \
+ $(INSTALL_PROGRAM) fixinc/fixincl $(DESTDIR)$(itoolsdir)/fixincl ; \
+ $(INSTALL_DATA) $(srcdir)/gsyslimits.h $(DESTDIR)$(itoolsdir)/gsyslimits.h ; \
else :; fi
if [ x$(STMP_FIXPROTO) != x ] ; then \
$(INSTALL_PROGRAM) $(srcdir)/mkinstalldirs \
- $(itoolsdir)/mkinstalldirs ; \
- $(INSTALL_PROGRAM) $(srcdir)/fixproto $(itoolsdir)/fixproto ; \
+ $(DESTDIR)$(itoolsdir)/mkinstalldirs ; \
+ $(INSTALL_PROGRAM) $(srcdir)/fixproto $(DESTDIR)$(itoolsdir)/fixproto ; \
$(INSTALL_PROGRAM) fix-header$(build_exeext) \
- $(itoolsdir)/fix-header$(build_exeext) ; \
+ $(DESTDIR)$(itoolsdir)/fix-header$(build_exeext) ; \
else :; fi
- $(INSTALL_PROGRAM) mkheaders $(itoolsdir)/mkheaders
- echo 'SYSTEM_HEADER_DIR="$(SYSTEM_HEADER_DIR)"' \
- > $(itoolsdir)/mkheaders.conf
+ $(INSTALL_PROGRAM) mkheaders $(DESTDIR)$(itoolsdir)/mkheaders
+ echo 'SYSTEM_HEADER_DIR="'"$(SYSTEM_HEADER_DIR)"'"' \
+ > $(DESTDIR)$(itoolsdir)/mkheaders.conf
echo 'OTHER_FIXINCLUDES_DIRS="$(OTHER_FIXINCLUDES_DIRS)"' \
- >> $(itoolsdir)/mkheaders.conf
+ >> $(DESTDIR)$(itoolsdir)/mkheaders.conf
echo 'FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"' \
- >> $(itoolsdir)/mkheaders.conf
- echo 'STMP_FIXPROTO="$(STMP_FIXPROTO)"' >> $(itoolsdir)/mkheaders.conf
- echo 'STMP_FIXINC="$(STMP_FIXINC)"' >> $(itoolsdir)/mkheaders.conf
+ >> $(DESTDIR)$(itoolsdir)/mkheaders.conf
+ echo 'STMP_FIXPROTO="$(STMP_FIXPROTO)"' >> $(DESTDIR)$(itoolsdir)/mkheaders.conf
+ echo 'STMP_FIXINC="$(STMP_FIXINC)"' >> $(DESTDIR)$(itoolsdir)/mkheaders.conf
# Use this target to install the program `collect2' under the name `collect2'.
install-collect2: collect2 installdirs
- $(INSTALL_PROGRAM) collect2$(exeext) $(libsubdir)/collect2$(exeext)
+ $(INSTALL_PROGRAM) collect2$(exeext) $(DESTDIR)$(libsubdir)/collect2$(exeext)
# Install the driver program as $(libsubdir)/gcc for collect2.
- $(INSTALL_PROGRAM) xgcc$(exeext) $(libsubdir)/gcc$(exeext)
+ $(INSTALL_PROGRAM) xgcc$(exeext) $(DESTDIR)$(libsubdir)/gcc$(exeext)
# Cancel installation by deleting the installed files.
uninstall: intl.uninstall lang.uninstall
- -rm -rf $(libsubdir)
- -rm -rf $(bindir)/$(GCC_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(GCC_CROSS_NAME)$(exeext)
- -rm -f $(bindir)/$(CPP_INSTALL_NAME)$(exeext)
- -rm -f $(bindir)/$(CPP_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(libsubdir)
+ -rm -rf $(DESTDIR)$(bindir)/$(GCC_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(GCC_CROSS_NAME)$(exeext)
+ -rm -f $(DESTDIR)$(bindir)/$(CPP_INSTALL_NAME)$(exeext)
+ -rm -f $(DESTDIR)$(bindir)/$(CPP_CROSS_NAME)$(exeext)
-if [ x$(cpp_install_dir) != x ]; then \
- rm -f $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
- rm -f $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \
else true; fi
- -rm -rf $(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext)
- -rm -rf $(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext)
- -rm -rf $(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
- -rm -rf $(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
- -rm -rf $(man1dir)/$(GCC_CROSS_NAME)$(man1ext)
- -rm -rf $(man1dir)/cpp$(man1ext)
- -rm -rf $(man1dir)/protoize$(man1ext)
- -rm -rf $(man1dir)/unprotoize$(man1ext)
- -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info*
- -rm -f $(infodir)/cppinternals.info* $(infodir)/gccint.info*
+ -rm -rf $(DESTDIR)$(bindir)/$(PROTOIZE_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(PROTOIZE_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(UNPROTOIZE_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(UNPROTOIZE_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(GCC_CROSS_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/protoize$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/unprotoize$(man1ext)
+ -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
+ -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
#
# These targets are for the dejagnu testsuites. The file site.exp
# contains global variables that all the testsuites will use.
@@ -3085,8 +3099,8 @@ site.exp: ./config.status Makefile
@echo "## these variables are automatically generated by make ##" > ./tmp0
@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
@echo "# add them to the last section" >> ./tmp0
- @echo "set rootme \"`${PWD}`\"" >> ./tmp0
- @echo "set srcdir \"`cd ${srcdir}; ${PWD}`\"" >> ./tmp0
+ @echo "set rootme \"`${PWD_COMMAND}`\"" >> ./tmp0
+ @echo "set srcdir \"`cd ${srcdir}; ${PWD_COMMAND}`\"" >> ./tmp0
@echo "set host_triplet $(host_canonical)" >> ./tmp0
@echo "set build_triplet $(build_canonical)" >> ./tmp0
@echo "set target_triplet $(target)" >> ./tmp0
@@ -3162,52 +3176,52 @@ $(TESTSUITEDIR)/site.exp: site.exp
sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)|' < site.exp > $@
check-g++: $(TESTSUITEDIR)/site.exp
- -(rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -(rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd $(TESTSUITEDIR); \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool g++ $(RUNTESTFLAGS))
check-gcc: $(TESTSUITEDIR)/site.exp
- -(rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -(rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd $(TESTSUITEDIR); \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool gcc $(RUNTESTFLAGS))
check-g77: $(TESTSUITEDIR)/site.exp
- -(rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -(rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd $(TESTSUITEDIR); \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool g77 $(RUNTESTFLAGS))
check-objc: $(TESTSUITEDIR)/site.exp
- -(rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -(rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd $(TESTSUITEDIR); \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool objc $(RUNTESTFLAGS))
check-consistency: testsuite/site.exp
- -rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool consistency $(RUNTESTFLAGS)
@@ -3307,6 +3321,8 @@ VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*`
# the context of the stage_x rule.
STAGE2_FLAGS_TO_PASS = \
ADAC="\$$(CC)" \
+ AR_FOR_TARGET="$(AR_FOR_TARGET)" \
+ RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \
CFLAGS="$(BOOT_CFLAGS)" \
LDFLAGS="$(BOOT_LDFLAGS)" \
WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
@@ -3322,7 +3338,9 @@ STAGE2_FLAGS_TO_PASS = \
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
# overrideable (for a bootstrap build stage1 also builds gcc.info).
stage1_build:
- $(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
+ $(MAKE) AR_FOR_TARGET="$(AR_FOR_TARGET)" \
+ RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \
+ CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
CFLAGS="$(STAGE1_CFLAGS)" MAKEINFO="$(MAKEINFO)" \
MAKEINFOFLAGS="$(MAKEINFOFLAGS)" COVERAGE_FLAGS=
$(STAMP) stage1_build
@@ -3542,7 +3560,7 @@ stage1-start:
-if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage1/libgcc.a stage1/libgcc_eh.a
+ -rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcc_s*$(SHLIB_EXT)
-cp libgcc.a stage1
-if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage1/libgcc.a; \
@@ -3551,6 +3569,7 @@ stage1-start:
if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \
else true; fi; fi
+ -cp libgcc_s*$(SHLIB_EXT) stage1/
-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
cp stage1/$${f} . ; \
else true; \
@@ -3571,7 +3590,7 @@ stage2-start:
-if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage2/libgcc.a stage2/libgcc_eh.a
+ -rm -f stage2/libgcc.a stage2/libgcc_eh.a stage2/libgcc_s*$(SHLIB_EXT)
-cp libgcc.a stage2
-if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage2/libgcc.a; \
@@ -3580,6 +3599,7 @@ stage2-start:
if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \
else true; fi; fi
+ -cp libgcc_s*$(SHLIB_EXT) stage2/
-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
cp stage2/$${f} . ; \
else true; \
@@ -3600,7 +3620,7 @@ stage3-start:
-if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage3/libgcc.a stage3/libgcc_eh.a
+ -rm -f stage3/libgcc.a stage3/libgcc_eh.a stage3/libgcc_s*$(SHLIB_EXT)
-cp libgcc.a stage3
-if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage3/libgcc.a; \
@@ -3609,6 +3629,7 @@ stage3-start:
if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \
else true; fi; fi
+ -cp libgcc_s*$(SHLIB_EXT) stage3/
-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
cp stage3/$${f} . ; \
else true; \
@@ -3629,7 +3650,7 @@ stage4-start:
-if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage4/libgcc.a stage4/libgcc_eh.a
+ -rm -f stage4/libgcc.a stage4/libgcc_eh.a stage4/libgcc_s*$(SHLIB_EXT)
-cp libgcc.a stage4
-if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage4/libgcc.a; \
@@ -3638,6 +3659,7 @@ stage4-start:
if $(RANLIB_TEST_FOR_TARGET) ; then \
$(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \
else true; fi; fi
+ -cp libgcc_s*$(SHLIB_EXT) stage4/
-for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
cp stage4/$${f} . ; \
else true; \
diff --git a/gcc/ONEWS b/gcc/ONEWS
index 4d4b54b65c1..f4b358102ee 100644
--- a/gcc/ONEWS
+++ b/gcc/ONEWS
@@ -1,112 +1,28 @@
This file contains information about GCC releases up to GCC 2.8.1, and
-some information about EGCS releases. For more details of changes in
-EGCS releases, and details of changes in GCC 2.95 and more recent
-releases, see the release notes on the GCC web site and the file NEWS
-which contains the most relevant parts of those release notes in text
-form.
+a tiny bit of information on EGCS.
-Noteworthy changes in GCC for EGCS 1.1.
----------------------------------------
-
-The compiler now implements global common subexpression elimination (gcse) as
-well as global constant/copy propagation. (link to gcse page).
-
-More major improvements have been made to the alias analysis code. A new
-option to allow front-ends to provide alias information to the optimizers
-has also been added (-fstrict-aliasing). -fstrict-aliasing is off by default
-now, but will be enabled by default in the future. (link to alias page)
-
-Major changes continue in the exception handling support. This release
-includes some changes to reduce static overhead for exception handling. It
-also includes some major changes to the setjmp/longjmp based EH mechanism to
-make it less pessimistic. And finally, major infrastructure improvements
-to the dwarf2 EH mechanism have been made to make our EH support extensible.
-
-We have fixed the infamous security problems with temporary files.
-
-The "regmove" optimization pass has been nearly completely rewritten. It now
-uses much more information about the target to determine profitability of
-transformations.
+For details of changes in EGCS releases and GCC 2.95 and later releases,
+see the release notes on the GCC web site or the file NEWS which contains
+the most relevant parts of those release notes in text form.
-The compiler now recomputes register usage information immediately before
-register allocation. Previously such information was only not kept up to
-date after instruction combination which led to poor register allocation
-choices by our priority based register allocator.
-
-The register reloading phase of the compiler has been improved to better
-optimize spill code. This primarily helps targets which generate lots of
-spills (like the x86 ports and many register poor embedded ports).
-
-A few changes in the heuristics used by the register allocator and scheduler
-have been made which can significantly improve performance for certain
-applications.
-
-The compiler's branch shortening algorithms have been significantly improved
-to work better on targets which align jump targets.
+Changes in GCC for EGCS (that are not listed in the web release notes)
+---------------------------------------------------------------------
The compiler now supports the "ADDRESSOF" optimization which can significantly
reduce the overhead for certain inline calls (and inline calls in general).
-The compiler now supports a code size optimization switch (-Os). When enabled
-the compiler will prefer optimizations which improve code size over those
-which improve code speed.
-
-The compiler has been improved to completely eliminate library calls which
-compute constant values. This is particularly useful on machines which
-do not have integer mul/div or floating point support on-chip.
-
-GCC now supports a "--help" option to print detailed help information.
-
-cpplib has been greatly improved. It is probably usable for some sites now
-(major missing feature is trigraphs).
-
-Memory footprint for the compiler has been significantly reduced for certain
-pathalogical cases.
-
-Build time improvements for targets which support lots of sched parameters
-(alpha and mips primarily).
-
Compile time for certain programs using large constant initializers has been
improved (affects glibc significantly).
-Plus an incredible number of infrastructure changes, warning fixes, bugfixes
-and local optimizations.
-
Various improvements have been made to better support cross compilations. They
are still not easy, but they are improving.
-Target specific NEWS
-
- Sparc: Now includes V8 plus and V9 support, lots of tuning for Ultrasparcs
- and uses the Haifa scheduler by default.
-
- Alpha: EV6 tuned, optimized expansion of memcpy/bzero.
-
- x86: Data in the static store is aligned per Intel recommendations. Jump
- targets are aligned per Intel recommendations. Improved epilogue
- sequences for Pentium chips. Backend improvements which should help
- register allocation on all x86 variants. Support for PPro conditional
- move instructions has been fixed and enabled. Random changes
- throughout the port to make generated code more Pentium friendly.
- Improved support for 64bit integer operations.
- Unixware 7, a System V Release 5 target is now supported.
- SCO OpenServer targets can support GAS. See gcc/INSTALL for details.
-
- RS6000/PowerPC: Includes AIX4.3 support as well as PowerPC64 support.
- Haifa instruction scheduling is enabled by default now.
-
- MIPS: Multiply/Multiply-Add support has been largely rewritten to generate
- more efficient code. Includes mips16 support.
-
- M68K: Various micro-optimizations and Coldfire fixes.
+Target-specific changes:
M32r: Major improvements to this port.
Arm: Includes Thumb and super interworking support.
-EGCS includes all gcc2 changes up to and including the June 9, 1998 snapshot.
-
-
Noteworthy changes in GCC version 2.8.1
---------------------------------------
diff --git a/gcc/aclocal.m4 b/gcc/aclocal.m4
index 0cec464e2aa..1d378619a3b 100644
--- a/gcc/aclocal.m4
+++ b/gcc/aclocal.m4
@@ -306,10 +306,7 @@ procedure conftest is begin null; end conftest;
EOF
gcc_cv_prog_adac=no
# Have to do ac_tool_prefix and user overrides by hand.
-user_adac=$ADAC
-user_cc=$CC
-for cand in ${ac_tool_prefix}$user_adac $user_adac \
- ${ac_tool_prefix}$user_cc $user_cc \
+for cand in ${ADAC+"$ADAC"} ${CC+"$CC"} \
${ac_tool_prefix}gcc gcc \
${ac_tool_prefix}cc cc \
${ac_tool_prefix}gnatgcc gnatgcc \
@@ -399,357 +396,93 @@ fi
AC_SUBST($1)dnl
])
-# Check whether mmap can map an arbitrary page from /dev/zero or with
-# MAP_ANONYMOUS, without MAP_FIXED.
-AC_DEFUN([AC_FUNC_MMAP_ANYWHERE],
-[AC_CHECK_FUNCS(getpagesize)
-# The test program for the next two tests is the same except for one
-# set of ifdefs.
-changequote({{{,}}})dnl
-{{{cat >ct-mmap.inc <<'EOF'
-#include <sys/types.h>
+# mmap(2) blacklisting. Some platforms provide the mmap library routine
+# but don't support all of the features we need from it.
+AC_DEFUN([gcc_AC_FUNC_MMAP_BLACKLIST],
+[if test $ac_cv_header_sys_mman_h != yes \
+ || test $ac_cv_func_mmap != yes; then
+ gcc_cv_func_mmap_file=no
+ gcc_cv_func_mmap_dev_zero=no
+ gcc_cv_func_mmap_anon=no
+else
+ AC_CACHE_CHECK([whether read-only mmap of a plain file works],
+ gcc_cv_func_mmap_file,
+ [# Add a system to this blacklist if
+ # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
+ # memory area containing the same data that you'd get if you applied
+ # read() to the same fd. The only system known to have a problem here
+ # is VMS, where text files have record structure.
+ case "$host_os" in
+ vms* | ultrix*)
+ gcc_cv_func_mmap_file=no ;;
+ *)
+ gcc_cv_func_mmap_file=yes;;
+ esac])
+ AC_CACHE_CHECK([whether mmap from /dev/zero works],
+ gcc_cv_func_mmap_dev_zero,
+ [# Add a system to this blacklist if it has mmap() but /dev/zero
+ # does not exist, or if mmapping /dev/zero does not give anonymous
+ # zeroed pages with both the following properties:
+ # 1. If you map N consecutive pages in with one call, and then
+ # unmap any subset of those pages, the pages that were not
+ # explicitly unmapped remain accessible.
+ # 2. If you map two adjacent blocks of memory and then unmap them
+ # both at once, they must both go away.
+ # Systems known to be in this category are Windows (all variants),
+ # VMS, and Darwin.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
+ gcc_cv_func_mmap_dev_zero=no ;;
+ *)
+ gcc_cv_func_mmap_dev_zero=yes;;
+ esac])
+
+ # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
+ AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon,
+ [AC_TRY_COMPILE(
+[#include <sys/types.h>
#include <sys/mman.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <setjmp.h>
-#include <stdio.h>
-
-#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
-# define MAP_ANONYMOUS MAP_ANON
-#endif
-
-/* This mess was copied from the GNU getpagesize.h. */
-#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
-
-/* Assume that all systems that can run configure have sys/param.h. */
-# ifndef HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-#ifndef MAP_FAILED
-# define MAP_FAILED -1
-#endif
-
-#undef perror_exit
-#define perror_exit(str, val) \
- do { perror(str); exit(val); } while (0)
+#include <unistd.h>
-/* Some versions of cygwin mmap require that munmap is called with the
- same parameters as mmap. GCC expects that this is not the case.
- Test for various forms of this problem. Warning - icky signal games. */
-
-static sigset_t unblock_sigsegv;
-static jmp_buf r;
-static size_t pg;
-static int devzero;
-
-static char *
-anonmap (size)
- size_t size;
-{
-#ifdef USE_MAP_ANON
- return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-#else
- return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE, devzero, 0);
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
#endif
-}
-
-static void
-sigsegv (unused)
- int unused;
-{
- sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
- longjmp (r, 1);
-}
-
-/* Basic functionality test. */
-void
-test_0 ()
-{
- char *x = anonmap (pg);
- if (x == (char *) MAP_FAILED)
- perror_exit("test 0 mmap", 2);
-
- *(int *)x += 1;
-
- if (munmap(x, pg) < 0)
- perror_exit("test 0 munmap", 3);
-}
-
-/* 1. If we map a 2-page region and unmap its second page, the first page
- must remain. */
-static void
-test_1 ()
-{
- char *x = anonmap (pg * 2);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 1 mmap", 4);
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 1 fault", 5);
-
- x[0] = 1;
- x[pg] = 1;
-
- if (munmap (x + pg, pg) < 0)
- perror_exit ("test 1 munmap 1", 6);
- x[0] = 2;
-
- if (setjmp (r) == 0)
- {
- x[pg] = 1;
- perror_exit ("test 1 no fault", 7);
- }
- if (munmap (x, pg) < 0)
- perror_exit ("test 1 munmap 2", 8);
-}
-
-/* 2. If we map a 2-page region and unmap its first page, the second
- page must remain. */
-static void
-test_2 ()
-{
- char *x = anonmap (pg * 2);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 2 mmap", 9);
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 2 fault", 10);
-
- x[0] = 1;
- x[pg] = 1;
-
- if (munmap (x, pg) < 0)
- perror_exit ("test 2 munmap 1", 11);
-
- x[pg] = 2;
-
- if (setjmp (r) == 0)
- {
- x[0] = 1;
- perror_exit ("test 2 no fault", 12);
- }
-
- if (munmap (x+pg, pg) < 0)
- perror_exit ("test 2 munmap 2", 13);
-}
-
-/* 3. If we map two adjacent 1-page regions and unmap them both with
- one munmap, both must go away.
-
- Getting two adjacent 1-page regions with two mmap calls is slightly
- tricky. All OS's tested skip over already-allocated blocks; therefore
- we have been careful to unmap all allocated regions in previous tests.
- HP/UX allocates pages backward in memory. No OS has yet been observed
- to be so perverse as to leave unmapped space between consecutive calls
- to mmap. */
-
-static void
-test_3 ()
-{
- char *x, *y, *z;
-
- x = anonmap (pg);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 3 mmap 1", 14);
- y = anonmap (pg);
- if (y == (char *)MAP_FAILED)
- perror_exit ("test 3 mmap 2", 15);
-
- if (y != x + pg)
- {
- if (y == x - pg)
- z = y, y = x, x = z;
- else
- {
- fprintf (stderr, "test 3 nonconsecutive pages - %lx, %lx\n",
- (unsigned long)x, (unsigned long)y);
- exit (16);
- }
- }
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 3 fault", 17);
-
- x[0] = 1;
- y[0] = 1;
-
- if (munmap (x, pg*2) < 0)
- perror_exit ("test 3 munmap", 18);
-
- if (setjmp (r) == 0)
- {
- x[0] = 1;
- perror_exit ("test 3 no fault 1", 19);
- }
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r) == 0)
- {
- y[0] = 1;
- perror_exit ("test 3 no fault 2", 20);
- }
-}
-
-int
-main ()
-{
- sigemptyset (&unblock_sigsegv);
- sigaddset (&unblock_sigsegv, SIGSEGV);
- pg = getpagesize ();
-#ifndef USE_MAP_ANON
- devzero = open ("/dev/zero", O_RDWR);
- if (devzero < 0)
- perror_exit ("open /dev/zero", 1);
-#endif
-
- test_0();
- test_1();
- test_2();
- test_3();
-
- exit(0);
-}
-EOF}}}
-changequote([,])dnl
-
-AC_CACHE_CHECK(for working mmap from /dev/zero,
- ac_cv_func_mmap_dev_zero,
-[AC_TRY_RUN(
- [#include "ct-mmap.inc"],
- ac_cv_func_mmap_dev_zero=yes,
- [if test $? -lt 4
- then ac_cv_func_mmap_dev_zero=no
- else ac_cv_func_mmap_dev_zero=buggy
- fi],
- # When cross-building, assume that this works, unless we know it
- # doesn't. Of course, we have no way of knowing if there even is a /dev/zero
- # on the host, let alone whether mmap will work on it.
- [case "$host_os" in
- cygwin* | win32 | pe | mingw* ) ac_cv_func_mmap_dev_zero=buggy ;;
- darwin* ) ac_cv_func_mmap_dev_zero=no ;;
- * ) ac_cv_func_mmap_dev_zero=yes ;;
- esac])
-])
-if test $ac_cv_func_mmap_dev_zero = yes; then
- AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
- [Define if mmap can get us zeroed pages from /dev/zero.])
-fi
-
-AC_CACHE_CHECK([for working mmap with MAP_ANON(YMOUS)],
- ac_cv_func_mmap_anon,
-[AC_TRY_RUN(
- [#define USE_MAP_ANON
-#include "ct-mmap.inc"],
- ac_cv_func_mmap_anon=yes,
- [if test $? -lt 4
- then ac_cv_func_mmap_anon=no
- else ac_cv_func_mmap_anon=buggy
- fi],
- # Unlike /dev/zero, it is not safe to assume MAP_ANON(YMOUS) works
- # just because it's there. Some SCO Un*xen define it but don't implement it.
- [case "$host_os" in
- darwin* ) ac_cv_func_mmap_anon=yes ;;
- * ) ac_cv_func_mmap_anon=no ;;
- esac])
-])
-if test $ac_cv_func_mmap_anon = yes; then
- AC_DEFINE(HAVE_MMAP_ANON, 1,
- [Define if mmap can get us zeroed pages using MAP_ANON(YMOUS).])
+],
+[int n = MAP_ANONYMOUS;],
+ gcc_cv_decl_map_anon=yes,
+ gcc_cv_decl_map_anon=no)])
+
+ if test $gcc_cv_decl_map_anon = no; then
+ gcc_cv_func_mmap_anon=no
+ else
+ AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
+ gcc_cv_func_mmap_anon,
+ [# Add a system to this blacklist if it has mmap() and MAP_ANON or
+ # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
+ # doesn't give anonymous zeroed pages with the same properties listed
+ # above for use of /dev/zero.
+ # Systems known to be in this category are Windows, VMS, and SCO Unix.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | sco* | udk* )
+ gcc_cv_func_mmap_anon=no ;;
+ *)
+ gcc_cv_func_mmap_anon=yes;;
+ esac])
+ fi
fi
-rm -f ct-mmap.inc
-])
-
-# Check whether mmap can map a plain file, without MAP_FIXED.
-AC_DEFUN([AC_FUNC_MMAP_FILE],
-[AC_CACHE_CHECK(for working mmap of a file, ac_cv_func_mmap_file,
-[# Create a file one thousand bytes long.
-for i in 1 2 3 4 5 6 7 8 9 0
-do for j in 1 2 3 4 5 6 7 8 9 0
-do echo $i $j xxxxx
-done
-done > conftestdata$$
-
-AC_TRY_RUN([
-/* Test by Zack Weinberg. Modified from MMAP_ANYWHERE test by
- Richard Henderson and Alexandre Oliva.
- Check whether read-only mmap of a plain file works. */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-int main()
-{
- char *x;
- int fd;
- struct stat st;
-
- fd = open("conftestdata$$", O_RDONLY);
- if (fd < 0)
- exit(1);
-
- if (fstat (fd, &st))
- exit(2);
-
- x = (char*)mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
- if (x == (char *) -1)
- exit(3);
-
- if (x[0] != '1' || x[1] != ' ' || x[2] != '1' || x[3] != ' ')
- exit(4);
-
- if (munmap(x, st.st_size) < 0)
- exit(5);
-
- exit(0);
-}], ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no,
- [case "$host_os" in
- darwin* ) ac_cv_func_mmap_file=yes ;;
- * ) ac_cv_func_mmap_file=no ;;
- esac])])
-if test $ac_cv_func_mmap_file = yes; then
+if test $gcc_cv_func_mmap_file = yes; then
AC_DEFINE(HAVE_MMAP_FILE, 1,
[Define if read-only mmap of a plain file works.])
fi
+if test $gcc_cv_func_mmap_dev_zero = yes; then
+ AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
+ [Define if mmap of /dev/zero works.])
+fi
+if test $gcc_cv_func_mmap_anon = yes; then
+ AC_DEFINE(HAVE_MMAP_ANON, 1,
+ [Define if mmap with MAP_ANON(YMOUS) works.])
+fi
])
dnl Locate a program and check that its version is acceptable.
diff --git a/gcc/ada/5iosinte.ads b/gcc/ada/5iosinte.ads
index ea5e6a9928f..e5bb265a46e 100644
--- a/gcc/ada/5iosinte.ads
+++ b/gcc/ada/5iosinte.ads
@@ -444,11 +444,8 @@ package System.OS_Interface is
private
- type sigset_t is array (0 .. 31) of unsigned_long;
+ type sigset_t is array (0 .. 127) of unsigned_char;
pragma Convention (C, sigset_t);
- for sigset_t'Size use 1024;
- -- This is for GNU libc version 2 but should be backward compatible with
- -- other libc where sigset_t is smaller.
type pid_t is new int;
@@ -477,7 +474,7 @@ private
stackaddr : System.Address;
stacksize : size_t;
end record;
- pragma Convention (C_Pass_By_Copy, pthread_attr_t);
+ pragma Convention (C, pthread_attr_t);
type pthread_condattr_t is record
dummy : int;
@@ -491,24 +488,28 @@ private
type pthread_t is new unsigned_long;
- type struct_pthread_queue is record
- head : System.Address;
- tail : System.Address;
+ type struct_pthread_fast_lock is record
+ status : long;
+ spinlock : int;
end record;
- pragma Convention (C, struct_pthread_queue);
+ pragma Convention (C, struct_pthread_fast_lock);
type pthread_mutex_t is record
- m_spinlock : int;
+ m_reserved : int;
m_count : int;
m_owner : System.Address;
m_kind : int;
- m_waiting : struct_pthread_queue;
+ m_lock : struct_pthread_fast_lock;
end record;
pragma Convention (C, pthread_mutex_t);
+ type pthread_cond_padding_t is array (0 .. 35) of unsigned_char;
+ pragma Convention (C, pthread_cond_padding_t);
+
type pthread_cond_t is record
- c_spinlock : int;
- c_waiting : struct_pthread_queue;
+ c_lock : struct_pthread_fast_lock;
+ c_waiting : System.Address;
+ c_padding : pthread_cond_padding_t;
end record;
pragma Convention (C, pthread_cond_t);
diff --git a/gcc/ada/5rosinte.ads b/gcc/ada/5rosinte.ads
index e15c01e82d4..3442fa13c44 100644
--- a/gcc/ada/5rosinte.ads
+++ b/gcc/ada/5rosinte.ads
@@ -106,6 +106,7 @@ package System.OS_Interface is
SIGTERM : constant := 15; -- software termination signal from kill
SIGUSR1 : constant := 16; -- user defined signal 1
SIGUSR2 : constant := 17; -- user defined signal 2
+ SIGXCPU : constant := 0; -- XCPU
SIGADAABORT : constant := SIGABRT;
diff --git a/gcc/ada/5rtpopsp.adb b/gcc/ada/5rtpopsp.adb
new file mode 100644
index 00000000000..a1f15975793
--- /dev/null
+++ b/gcc/ada/5rtpopsp.adb
@@ -0,0 +1,266 @@
+------------------------------------------------------------------------------
+-- --
+-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
+-- --
+-- S Y S T E M . T A S K _ P R I M I T I V E S . O P E R A T I O N S . --
+-- S P E C I F I C --
+-- --
+-- B o d y --
+-- --
+-- $Revision: 1.7 $
+-- --
+-- Copyright (C) 1991-1999, Florida State University --
+-- --
+-- GNARL is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 2, or (at your option) any later ver- --
+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- --
+-- OUT 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 distributed with GNARL; see file COPYING. If not, write --
+-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
+-- MA 02111-1307, USA. --
+-- --
+-- As a special exception, if other files instantiate generics from this --
+-- unit, or you link this unit with other files to produce an executable, --
+-- this unit 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 Public License. --
+-- --
+-- GNARL was developed by the GNARL team at Florida State University. It is --
+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida --
+-- State University (http://www.gnat.com). --
+-- --
+------------------------------------------------------------------------------
+
+-- This is a POSIX version of this package where foreign threads are
+-- recognized.
+-- Currently, DEC Unix, SCO UnixWare 7 and RTEMS use this version.
+
+with System.Soft_Links;
+-- used to initialize TSD for a C thread, in function Self
+
+separate (System.Task_Primitives.Operations)
+package body Specific is
+
+ ------------------
+ -- Local Data --
+ ------------------
+
+ -- The followings are logically constants, but need to be initialized
+ -- at run time.
+
+ -- The following gives the Ada run-time direct access to a variable
+ -- context switched by RTEMS at the lowest level.
+
+ RTEMS_Ada_Self : System.Address;
+ pragma Import (C, RTEMS_Ada_Self, "rtems_ada_self");
+
+ -- The following are used to allow the Self function to
+ -- automatically generate ATCB's for C threads that happen to call
+ -- Ada procedure, which in turn happen to call the Ada runtime system.
+
+ type Fake_ATCB;
+ type Fake_ATCB_Ptr is access Fake_ATCB;
+ type Fake_ATCB is record
+ Stack_Base : Interfaces.C.unsigned := 0;
+ -- A value of zero indicates the node is not in use.
+ Next : Fake_ATCB_Ptr;
+ Real_ATCB : aliased Ada_Task_Control_Block (0);
+ end record;
+
+ Fake_ATCB_List : Fake_ATCB_Ptr;
+ -- A linear linked list.
+ -- The list is protected by All_Tasks_L;
+ -- Nodes are added to this list from the front.
+ -- Once a node is added to this list, it is never removed.
+
+ Fake_Task_Elaborated : aliased Boolean := True;
+ -- Used to identified fake tasks (i.e., non-Ada Threads).
+
+ Next_Fake_ATCB : Fake_ATCB_Ptr;
+ -- Used to allocate one Fake_ATCB in advance. See comment in New_Fake_ATCB
+
+ -----------------------
+ -- Local Subprograms --
+ -----------------------
+
+ ---------------------------------
+ -- Support for New_Fake_ATCB --
+ ---------------------------------
+
+ function New_Fake_ATCB return Task_ID;
+ -- Allocate and Initialize a new ATCB. This code can safely be called from
+ -- a foreign thread, as it doesn't access implicitely or explicitely
+ -- "self" before having initialized the new ATCB.
+
+ -------------------
+ -- New_Fake_ATCB --
+ -------------------
+
+ function New_Fake_ATCB return Task_ID is
+ Self_ID : Task_ID;
+ P, Q : Fake_ATCB_Ptr;
+ Succeeded : Boolean;
+
+ begin
+ -- This section is ticklish.
+ -- We dare not call anything that might require an ATCB, until
+ -- we have the new ATCB in place.
+
+ Write_Lock (All_Tasks_L'Access);
+ Q := null;
+ P := Fake_ATCB_List;
+
+ while P /= null loop
+ if P.Stack_Base = 0 then
+ Q := P;
+ end if;
+
+ P := P.Next;
+ end loop;
+
+ if Q = null then
+
+ -- Create a new ATCB with zero entries.
+
+ Self_ID := Next_Fake_ATCB.Real_ATCB'Access;
+ Next_Fake_ATCB.Stack_Base := 1;
+ Next_Fake_ATCB.Next := Fake_ATCB_List;
+ Fake_ATCB_List := Next_Fake_ATCB;
+ Next_Fake_ATCB := null;
+
+ else
+ -- Reuse an existing fake ATCB.
+
+ Self_ID := Q.Real_ATCB'Access;
+ Q.Stack_Base := 1;
+ end if;
+
+ -- Record this as the Task_ID for the current thread.
+
+ Self_ID.Common.LL.Thread := pthread_self;
+
+ RTEMS_Ada_Self := To_Address (Self_ID);
+
+ -- Do the standard initializations
+
+ System.Tasking.Initialize_ATCB
+ (Self_ID, null, Null_Address, Null_Task, Fake_Task_Elaborated'Access,
+ System.Priority'First, Task_Info.Unspecified_Task_Info, 0, Self_ID,
+ Succeeded);
+ pragma Assert (Succeeded);
+
+ -- Finally, it is safe to use an allocator in this thread.
+
+ if Next_Fake_ATCB = null then
+ Next_Fake_ATCB := new Fake_ATCB;
+ end if;
+
+ Self_ID.Common.State := Runnable;
+ Self_ID.Awake_Count := 1;
+
+ -- Since this is not an ordinary Ada task, we will start out undeferred
+
+ Self_ID.Deferral_Level := 0;
+
+ System.Soft_Links.Create_TSD (Self_ID.Common.Compiler_Data);
+
+ -- ????
+ -- The following call is commented out to avoid dependence on
+ -- the System.Tasking.Initialization package.
+ -- It seems that if we want Ada.Task_Attributes to work correctly
+ -- for C threads we will need to raise the visibility of this soft
+ -- link to System.Soft_Links.
+ -- We are putting that off until this new functionality is otherwise
+ -- stable.
+ -- System.Tasking.Initialization.Initialize_Attributes_Link.all (T);
+
+ for J in Known_Tasks'Range loop
+ if Known_Tasks (J) = null then
+ Known_Tasks (J) := Self_ID;
+ Self_ID.Known_Tasks_Index := J;
+ exit;
+ end if;
+ end loop;
+
+ -- Must not unlock until Next_ATCB is again allocated.
+
+ Unlock (All_Tasks_L'Access);
+ return Self_ID;
+ end New_Fake_ATCB;
+
+ ----------------
+ -- Initialize --
+ ----------------
+
+ procedure Initialize (Environment_Task : Task_ID) is
+
+ begin
+ RTEMS_Ada_Self := To_Address (Environment_Task);
+
+ -- Create a free ATCB for use on the Fake_ATCB_List.
+
+ Next_Fake_ATCB := new Fake_ATCB;
+ end Initialize;
+
+ ---------
+ -- Set --
+ ---------
+
+ procedure Set (Self_Id : Task_ID) is
+
+ begin
+ RTEMS_Ada_Self := To_Address (Self_Id);
+ end Set;
+
+ ----------
+ -- Self --
+ ----------
+
+ -- To make Ada tasks and C threads interoperate better, we have
+ -- added some functionality to Self. Suppose a C main program
+ -- (with threads) calls an Ada procedure and the Ada procedure
+ -- calls the tasking runtime system. Eventually, a call will be
+ -- made to self. Since the call is not coming from an Ada task,
+ -- there will be no corresponding ATCB.
+
+ -- (The entire Ada run-time system may not have been elaborated,
+ -- either, but that is a different problem, that we will need to
+ -- solve another way.)
+
+ -- What we do in Self is to catch references that do not come
+ -- from recognized Ada tasks, and create an ATCB for the calling
+ -- thread.
+
+ -- The new ATCB will be "detached" from the normal Ada task
+ -- master hierarchy, much like the existing implicitly created
+ -- signal-server tasks.
+
+ -- We will also use such points to poll for disappearance of the
+ -- threads associated with any implicit ATCBs that we created
+ -- earlier, and take the opportunity to recover them.
+
+ -- A nasty problem here is the limitations of the compilation
+ -- order dependency, and in particular the GNARL/GNULLI layering.
+ -- To initialize an ATCB we need to assume System.Tasking has
+ -- been elaborated.
+
+ function Self return Task_ID is
+ Result : System.Address;
+
+ begin
+ Result := RTEMS_Ada_Self;
+
+ -- If the key value is Null, then it is a non-Ada task.
+
+ if Result = System.Null_Address then
+ return New_Fake_ATCB;
+ end if;
+
+ return To_Task_ID (Result);
+ end Self;
+
+end Specific;
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e5d0586de54..1f3dd01e421 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,152 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Make-lang.in: Replace PWD with PWD_COMMAND.
+ * Makefile.adalib: Likewise.
+ * Makefile.in: Likewise.
+
+2003-05-22 Geert Bosch <bosch@gnat.com>
+
+ PR ada/6399
+ * gnat_rm.texi : Remove reference to Ada Core Technologies.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-30 Laurent Guerby <guerby@acm.org>
+
+ PR ada/10546
+ * 5iosinte.ads: Increase pthread_cond_t size to match recent
+ LinuxThread and NPTL version.
+
+2003-03-31 Geert Bosch <bosch@gnat.com>
+
+ PR ada/10020
+ * link.c : Fix misspelled "const" keyword
+
+2003-03-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7086
+ * utils2.c: Adjust calls to put_var_into_stack.
+
+2003-03-05 Olivier Hainque <hainque@gnat.com>
+
+ PR ada/9961
+ * raise.c : (__gnat_Unwind_RaiseException): Add prototype to avoid
+ warning, and fix return type for the IN_RTS && !SJLJ case.
+
+2003-03-04 Olivier Hainque <hainque@act-europe.fr>
+
+ PR ada/9911
+ * a-except.adb (Unwind_RaiseException): Import a GNAT specific
+ wrapper, which name remains constant whatever underlying GCC
+ scheme.
+
+ * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
+ the stable interface needed for a-except.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
+ * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
+ gnat_ug_wnt.texi: Regenerate.
+
+2003-01-29 Laurent Guerby <guerby@acm.org>
+
+ PR ada/8344
+ * final.c: rename to adafinal.c to avoid file name conflicts with
+ gcc file.
+ * Makefile.in: match previous change.
+ * Make-lang.in: match previous change.
+
+2003-01-29 Joel Sherrill <joel@OARcorp.com>
+
+ * 5rosinte.ads: Add SIGXCPU.
+ * 5rtpopsp.adb: New file.
+ * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
+ * Makefile.in: Recognize more RTEMS targets and add the RTEMS
+ specific file 5rtpopsp.adb.
+ * adaint.h: Add include of <stdio.h> when target is RTEMS. This
+ is likely needed for all newlib targets.
+ * init.c: Add RTEMS specific version of __gnat_initialize().
+
+2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
+ be created if necessary.
+ (ada.install-common): Let $(DESTDIR)$(bindir) be created
+ if necessary. Remove erroneous and redundant gnatchop
+ installation commands. Test for gnatdll before attempting
+ to install it.
+ (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
+ and gnatdll from all plausible locations.
+ (cross-gnattools, ada.install-common): Use initial tab
+ instead of spaces in continuation lines.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (ada.install-info, ada.install-common)
+ (ada.uninstall): Prepend $(DESTDIR) to the destination
+ directory in all (un)installation commands.
+ * Makefile.in (install-gnatlib, install-rts): Ditto.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gnat_rm.texi, gnat_ug.texi: Use @copying.
+ * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
+ gnat_ug_wnt.texi: Regenerate.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
+ only.
+ * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
+ $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
+ $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
+ ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
+ ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
+ $(srcdir)/doc/include/gcc-common.texi.
+
2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
* adaint.c (__gnat_tmp_name): Better, but good enough for now,
solution to buffer overflow bug on GNU/Linux.
diff --git a/gcc/ada/Make-lang.in b/gcc/ada/Make-lang.in
index 6669eb4c64f..27842034ca0 100644
--- a/gcc/ada/Make-lang.in
+++ b/gcc/ada/Make-lang.in
@@ -170,7 +170,7 @@ GNATBIND_OBJS = \
ada/s-stoele.o ada/s-imgenu.o ada/s-strops.o ada/s-soflin.o ada/s-wchcon.o \
ada/s-wchjis.o ada/sdefault.o ada/switch.o ada/switch-b.o ada/stylesw.o \
ada/validsw.o ada/system.o ada/table.o ada/tree_io.o ada/types.o \
- ada/widechar.o ada/raise.o ada/exit.o ada/argv.o ada/init.o ada/final.o \
+ ada/widechar.o ada/raise.o ada/exit.o ada/argv.o ada/init.o ada/adafinal.o \
ada/s-wchcnv.o ada/s-exctab.o ada/a-except.o ada/s-memory.o ada/s-traceb.o \
ada/tracebak.o ada/s-mastop.o ada/s-except.o ada/s-secsta.o ada/atree.o \
ada/scans.o ada/einfo.o ada/sinfo.o ada/scn.o ada/sinput.o ada/sinput-l.o \
@@ -230,11 +230,11 @@ cross-gnattools: force
$(MAKE) -C ada $(FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS)\
ADA_INCLUDES="-I$(RTS_DIR)adainclude -I$(RTS_DIR)adalib" \
GNATMAKE="gnatmake" \
- GNATBIND="gnatbind" \
- GNATLINK="gnatlink" \
- LIBGNAT="" \
+ GNATBIND="gnatbind" \
+ GNATLINK="gnatlink" \
+ LIBGNAT="" \
gnattools1-re gnattools2
-
+
rts-none: force
$(MAKE) -C ada $(FLAGS_TO_PASS) GNATMAKE=../gnatmake rts-none
@@ -366,23 +366,23 @@ $(srcdir)/ada/gnat_ug_wnt.texi : ada/doctools/xgnatug \
ada/doctools/xgnatug wnt $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words $(srcdir)/ada/gnat_ug_wnt.texi
$(srcdir)/ada/gnat_ug_unx.info : $(srcdir)/ada/gnat_ug_unx.texi \
- $(srcdir)/doc/include/fdl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
cd $(srcdir) && $(MAKEINFO) -I doc/include -I ada -o ada/gnat_ug_unx.info ada/gnat_ug_unx.texi
$(srcdir)/ada/gnat_ug_vms.info : $(srcdir)/ada/gnat_ug_vms.texi \
- $(srcdir)/doc/include/fdl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
cd $(srcdir) && $(MAKEINFO) -I doc/include -I ada -o ada/gnat_ug_vms.info ada/gnat_ug_vms.texi
$(srcdir)/ada/gnat_ug_vxw.info : $(srcdir)/ada/gnat_ug_vxw.texi \
- $(srcdir)/doc/include/fdl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
cd $(srcdir) && $(MAKEINFO) -I doc/include -I ada -o ada/gnat_ug_vxw.info ada/gnat_ug_vxw.texi
$(srcdir)/ada/gnat_ug_wnt.info : $(srcdir)/ada/gnat_ug_wnt.texi \
- $(srcdir)/doc/include/fdl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
cd $(srcdir) && $(MAKEINFO) -I doc/include -I ada -o ada/gnat_ug_wnt.info ada/gnat_ug_wnt.texi
$(srcdir)/ada/gnat_rm.info : $(srcdir)/ada/gnat_rm.texi \
- $(srcdir)/doc/include/fdl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
cd $(srcdir) && $(MAKEINFO) -I doc/include -I ada -o ada/gnat_rm.info ada/gnat_rm.texi
$(srcdir)/ada/gnat-style.info : $(srcdir)/ada/gnat-style.texi \
@@ -394,59 +394,60 @@ ada.info: $(srcdir)/ada/gnat_ug_vms.info $(srcdir)/ada/gnat_ug_wnt.info \
$(srcdir)/ada/gnat_rm.info $(srcdir)/ada/gnat-style.info
ada.install-info:
- -rm -f $(infodir)/gnat_ug_*.info*
- -rm -f $(infodir)/gnat_rm.info*
- -rm -f $(infodir)/gnat-style.info*
+ -rm -f $(DESTDIR)$(infodir)/gnat_ug_*.info*
+ -rm -f $(DESTDIR)$(infodir)/gnat_rm.info*
+ -rm -f $(DESTDIR)$(infodir)/gnat-style.info*
+ $(MKDIR) $(DESTDIR)$(infodir)
if [ -f $(srcdir)/ada/gnat_ug_unx.info ]; then \
for f in $(srcdir)/ada/gnat_ug_*.info* \
$(srcdir)/ada/gnat_rm.info* \
$(srcdir)/ada/gnat-style.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
- $(INSTALL_DATA) $$f $(infodir)/$$realfile; \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
done; \
else true; fi
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- if [ -f $(infodir)/dir ] ; then \
+ if [ -f $(DESTDIR)$(infodir)/dir ] ; then \
for f in gnat_ug_vms.info gnat_ug_wnt.info gnat_ug_unx.info \
gnat_ug_vxw.info gnat_rm.info gnat-style.info; do \
- if [ -f $(infodir)/$$f ]; then \
- install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
+ if [ -f $(DESTDIR)$(infodir)/$$f ]; then \
+ install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/$$f; \
else true; fi; \
done; \
else true; fi; \
else true; fi;
- -chmod a-x $(infodir)/gnat_ug_vms.info* $(infodir)/gnat_ug_wnt.info*
- -chmod a-x $(infodir)/gnat_ug_unx.info* $(infodir)/gnat_ug_vxw.info*
- -chmod a-x $(infodir)/gnat_rm.info* $(infodir)/gnat-style.info*
+ -chmod a-x $(DESTDIR)$(infodir)/gnat_ug_vms.info* $(DESTDIR)$(infodir)/gnat_ug_wnt.info*
+ -chmod a-x $(DESTDIR)$(infodir)/gnat_ug_unx.info* $(DESTDIR)$(infodir)/gnat_ug_vxw.info*
+ -chmod a-x $(DESTDIR)$(infodir)/gnat_rm.info* $(DESTDIR)$(infodir)/gnat-style.info*
ada/gnat_ug_unx.dvi : $(srcdir)/ada/gnat_ug_unx.texi \
- $(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat_ug_unx.dvi $$s/ada/gnat_ug_unx.texi
ada/gnat_ug_vms.dvi : $(srcdir)/ada/gnat_ug_vms.texi \
- $(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat_ug_vms.dvi $$s/ada/gnat_ug_vms.texi
ada/gnat_ug_vxw.dvi : $(srcdir)/ada/gnat_ug_vxw.texi \
- $(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat_ug_vxw.dvi $$s/ada/gnat_ug_vxw.texi
ada/gnat_ug_wnt.dvi : $(srcdir)/ada/gnat_ug_wnt.texi \
- $(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat_ug_wnt.dvi $$s/ada/gnat_ug_wnt.texi
ada/gnat_rm.dvi : $(srcdir)/ada/gnat_rm.texi \
- $(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat_rm.dvi $$s/ada/gnat_rm.texi
ada/gnat-style.dvi : $(srcdir)/ada/gnat-style.texi \
$(srcdir)/doc/include/fdl.texi
- s=`cd $(srcdir); ${PWD}`; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; \
cd ada && $(TEXI2DVI) -c -I $$s/doc/include -o gnat-style.dvi $$s/ada/gnat-style.texi
ada.dvi: ada/gnat_ug_vms.dvi ada/gnat_ug_wnt.dvi \
@@ -465,222 +466,201 @@ ada.install-normal:
# likewise for gnatf, gnatchop, and gnatlink, gnatkr, gnatmake, gnat,
# gnatprep, gnatbl, gnatls, gnatxref, gnatfind
ada.install-common:
+ $(MKDIR) $(DESTDIR)$(bindir)
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatbind-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatbind$(exeext); \
- $(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(bindir)/$(target_alias)-gnatbind$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatbind$(exeext); \
- $(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(tooldir)/bin/gnatbind$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatbind$(exeext); \
+ $(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatbind$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext); \
+ $(INSTALL_PROGRAM) gnatbind-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatbind$(exeext); \
- $(INSTALL_PROGRAM) gnatbind$(exeext) $(bindir)/gnatbind$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatbind$(exeext); \
+ $(INSTALL_PROGRAM) gnatbind$(exeext) $(DESTDIR)$(bindir)/gnatbind$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatbl-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatbl$(exeext); \
- $(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(bindir)/$(target_alias)-gnatbl$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatbl$(exeext); \
- $(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(tooldir)/bin/gnatbl$(exeext); \
- fi; \
- else \
- $(RM) $(bindir)/gnatbl$(exeext); \
- $(INSTALL_PROGRAM) gnatbl$(exeext) $(bindir)/gnatbl$(exeext); \
- fi ; \
- fi
- -if [ -f gnat1$(exeext) ] ; \
- then \
- if [ -f gnatchop-cross$(shext) ] ; \
- then \
- $(RM) $(bindir)/$(target_alias)-gnatchop$(shext); \
- $(INSTALL_PROGRAM) $(srcdir)/ada/gnatchop$(shext) $(bindir)/$(target_alias)-gnatchop$(shext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatchop$(shext); \
- $(INSTALL_PROGRAM) gnatchop$(shext) $(tooldir)/bin/gnatchop$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatbl$(exeext); \
+ $(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatbl$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatbl$(exeext); \
+ $(INSTALL_PROGRAM) gnatbl-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatbl$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatchop$(shext); \
- $(INSTALL_PROGRAM) $(srcdir)/ada/gnatchop$(shext) $(bindir)/gnatchop$(shext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatbl$(exeext); \
+ $(INSTALL_PROGRAM) gnatbl$(exeext) $(DESTDIR)$(bindir)/gnatbl$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatchop-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatchop$(exeext); \
- $(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(bindir)/$(target_alias)-gnatchop$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatchop$(exeext); \
- $(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(tooldir)/bin/gnatchop$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatchop$(exeext); \
+ $(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatchop$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext); \
+ $(INSTALL_PROGRAM) gnatchop-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatchop$(exeext); \
- $(INSTALL_PROGRAM) gnatchop$(exeext) $(bindir)/gnatchop$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatchop$(exeext); \
+ $(INSTALL_PROGRAM) gnatchop$(exeext) $(DESTDIR)$(bindir)/gnatchop$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnat-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnat$(exeext); \
- $(INSTALL_PROGRAM) gnat-cross$(exeext) $(bindir)/$(target_alias)-gnat$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnat$(exeext); \
- $(INSTALL_PROGRAM) gnat-cross$(exeext) $(tooldir)/bin/gnat$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnat$(exeext); \
+ $(INSTALL_PROGRAM) gnat-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnat$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnat$(exeext); \
+ $(INSTALL_PROGRAM) gnat-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnat$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnat$(exeext); \
- $(INSTALL_PROGRAM) gnat$(exeext) $(bindir)/gnat$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnat$(exeext); \
+ $(INSTALL_PROGRAM) gnat$(exeext) $(DESTDIR)$(bindir)/gnat$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatkr-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatkr$(exeext); \
- $(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(bindir)/$(target_alias)-gnatkr$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatkr$(exeext); \
- $(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(tooldir)/bin/gnatkr$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatkr$(exeext); \
+ $(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatkr$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext); \
+ $(INSTALL_PROGRAM) gnatkr-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatkr$(exeext); \
- $(INSTALL_PROGRAM) gnatkr$(exeext) $(bindir)/gnatkr$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatkr$(exeext); \
+ $(INSTALL_PROGRAM) gnatkr$(exeext) $(DESTDIR)$(bindir)/gnatkr$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatlink-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatlink$(exeext); \
- $(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(bindir)/$(target_alias)-gnatlink$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatlink$(exeext); \
- $(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(tooldir)/bin/gnatlink$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatlink$(exeext); \
+ $(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatlink$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext); \
+ $(INSTALL_PROGRAM) gnatlink-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatlink$(exeext); \
- $(INSTALL_PROGRAM) gnatlink$(exeext) $(bindir)/gnatlink$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatlink$(exeext); \
+ $(INSTALL_PROGRAM) gnatlink$(exeext) $(DESTDIR)$(bindir)/gnatlink$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatls-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatls$(exeext); \
- $(INSTALL_PROGRAM) gnatls-cross$(exeext) $(bindir)/$(target_alias)-gnatls$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatls$(exeext); \
- $(INSTALL_PROGRAM) gnatls-cross$(exeext) $(tooldir)/bin/gnatls$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatls$(exeext); \
+ $(INSTALL_PROGRAM) gnatls-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatls$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatls$(exeext); \
+ $(INSTALL_PROGRAM) gnatls-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatls$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatls$(exeext); \
- $(INSTALL_PROGRAM) gnatls$(exeext) $(bindir)/gnatls$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatls$(exeext); \
+ $(INSTALL_PROGRAM) gnatls$(exeext) $(DESTDIR)$(bindir)/gnatls$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatmake-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatmake$(exeext); \
- $(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(bindir)/$(target_alias)-gnatmake$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatmake$(exeext); \
- $(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(tooldir)/bin/gnatmake$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatmake$(exeext); \
+ $(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatmake$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext); \
+ $(INSTALL_PROGRAM) gnatmake-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatmake$(exeext); \
- $(INSTALL_PROGRAM) gnatmake$(exeext) $(bindir)/gnatmake$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatmake$(exeext); \
+ $(INSTALL_PROGRAM) gnatmake$(exeext) $(DESTDIR)$(bindir)/gnatmake$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatmem-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatmem$(exeext); \
- $(INSTALL_PROGRAM) gnatmem-cross$(exeext) $(bindir)/$(target_alias)-gnatmem$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatmem$(exeext); \
+ $(INSTALL_PROGRAM) gnatmem-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatmem$(exeext); \
else \
- $(RM) $(bindir)/gnatmem$(exeext); \
- $(INSTALL_PROGRAM) gnatmem$(exeext) $(bindir)/gnatmem$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatmem$(exeext); \
+ $(INSTALL_PROGRAM) gnatmem$(exeext) $(DESTDIR)$(bindir)/gnatmem$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatname-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatname$(exeext); \
- $(INSTALL_PROGRAM) gnatname-cross$(exeext) $(bindir)/$(target_alias)-gnatname$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatname$(exeext); \
+ $(INSTALL_PROGRAM) gnatname-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatname$(exeext); \
else \
- $(RM) $(bindir)/gnatname$(exeext); \
- $(INSTALL_PROGRAM) gnatname$(exeext) $(bindir)/gnatname$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatname$(exeext); \
+ $(INSTALL_PROGRAM) gnatname$(exeext) $(DESTDIR)$(bindir)/gnatname$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatprep-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatprep$(exeext); \
- $(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(bindir)/$(target_alias)-gnatprep$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatprep$(exeext); \
- $(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(tooldir)/bin/gnatprep$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatprep$(exeext); \
+ $(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatprep$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext); \
+ $(INSTALL_PROGRAM) gnatprep-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatprep$(exeext); \
- $(INSTALL_PROGRAM) gnatprep$(exeext) $(bindir)/gnatprep$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatprep$(exeext); \
+ $(INSTALL_PROGRAM) gnatprep$(exeext) $(DESTDIR)$(bindir)/gnatprep$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatpsta-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatpsta$(exeext); \
- $(INSTALL_PROGRAM) gnatpsta-cross$(exeext) $(bindir)/$(target_alias)-gnatpsta$(exeext); \
- if [ -d $(tooldir)/bin/. ] ; then \
- rm -f $(tooldir)/bin/gnatpsta$(exeext); \
- $(INSTALL_PROGRAM) gnatpsta-cross$(exeext) $(tooldir)/bin/gnatpsta$(exeext); \
- fi; \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatpsta$(exeext); \
+ $(INSTALL_PROGRAM) gnatpsta-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatpsta$(exeext); \
+ if [ -d $(DESTDIR)$(tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(tooldir)/bin/gnatpsta$(exeext); \
+ $(INSTALL_PROGRAM) gnatpsta-cross$(exeext) $(DESTDIR)$(tooldir)/bin/gnatpsta$(exeext); \
+ fi; \
else \
- $(RM) $(bindir)/gnatpsta$(exeext); \
- $(INSTALL_PROGRAM) gnatpsta$(exeext) $(bindir)/gnatpsta$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatpsta$(exeext); \
+ $(INSTALL_PROGRAM) gnatpsta$(exeext) $(DESTDIR)$(bindir)/gnatpsta$(exeext); \
fi ; \
fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatxref-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatxref$(exeext); \
- $(INSTALL_PROGRAM) gnatxref-cross$(exeext) $(bindir)/$(target_alias)-gnatxref$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatxref$(exeext); \
+ $(INSTALL_PROGRAM) gnatxref-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatxref$(exeext); \
else \
- $(RM) $(bindir)/gnatxref$(exeext); \
- $(INSTALL_PROGRAM) gnatxref$(exeext) $(bindir)/gnatxref$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatxref$(exeext); \
+ $(INSTALL_PROGRAM) gnatxref$(exeext) $(DESTDIR)$(bindir)/gnatxref$(exeext); \
fi ; \
- fi
+ fi
-if [ -f gnat1$(exeext) ] ; \
then \
if [ -f gnatfind-cross$(exeext) ] ; \
then \
- $(RM) $(bindir)/$(target_alias)-gnatfind$(exeext); \
- $(INSTALL_PROGRAM) gnatfind-cross$(exeext) $(bindir)/$(target_alias)-gnatfind$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatfind$(exeext); \
+ $(INSTALL_PROGRAM) gnatfind-cross$(exeext) $(DESTDIR)$(bindir)/$(target_alias)-gnatfind$(exeext); \
else \
- $(RM) $(bindir)/gnatfind$(exeext); \
- $(INSTALL_PROGRAM) gnatfind$(exeext) $(bindir)/gnatfind$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatfind$(exeext); \
+ $(INSTALL_PROGRAM) gnatfind$(exeext) $(DESTDIR)$(bindir)/gnatfind$(exeext); \
fi ; \
fi
- -if [ -f gnat1$(exeext) ] ; \
- then \
- if [ -f gnatchop$(exeext) ] ; \
- then \
- $(RM) $(bindir)/gnatchop$(exeext); \
- $(INSTALL_PROGRAM) gnatchop$(exeext) $(bindir)/gnatchop$(exeext); \
- fi ; \
#
# Gnatlbr is only used on VMS.
#
@@ -688,8 +668,8 @@ ada.install-common:
then \
if [ -f gnatlbr$(exeext) ] ; \
then \
- $(RM) $(bindir)/gnatlbr$(exeext); \
- $(INSTALL_PROGRAM) gnatlbr$(exeext) $(bindir)/gnatlbr$(exeext); \
+ $(RM) $(DESTDIR)$(bindir)/gnatlbr$(exeext); \
+ $(INSTALL_PROGRAM) gnatlbr$(exeext) $(DESTDIR)$(bindir)/gnatlbr$(exeext); \
fi ; \
fi
#
@@ -697,8 +677,11 @@ ada.install-common:
#
-if [ -f gnat1$(exeext) ] ; \
then \
- $(RM) $(bindir)/gnatdll$(exeext); \
- $(INSTALL_PROGRAM) gnatdll$(exeext) $(bindir)/gnatdll$(exeext); \
+ if [ -f gnatdll$(exeext) ] ; \
+ then \
+ $(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
+ $(INSTALL_PROGRAM) gnatdll$(exeext) $(DESTDIR)$(bindir)/gnatdll$(exeext); \
+ fi ; \
fi
#
# Finally, install the library
@@ -715,46 +698,54 @@ ada.install-info:
ada.install-man:
ada.uninstall:
- -$(RM) $(bindir)/gnatbind$(exeext)
- -$(RM) $(bindir)/gnatbl$(exeext)
- -$(RM) $(bindir)/gnatchop$(exeext)
- -$(RM) $(bindir)/gnat$(exeext)
- -$(RM) $(bindir)/gnatdll$(exeext)
- -$(RM) $(bindir)/gnatkr$(exeext)
- -$(RM) $(bindir)/gnatlink$(exeext)
- -$(RM) $(bindir)/gnatls$(exeext)
- -$(RM) $(bindir)/gnatmake$(exeext)
- -$(RM) $(bindir)/gnatmem$(exeext)
- -$(RM) $(bindir)/gnatname$(exeext)
- -$(RM) $(bindir)/gnatprep$(exeext)
- -$(RM) $(bindir)/gnatpsta$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatbind$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatbl$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatchop$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnat$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatkr(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatlink$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatls$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatmake$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatmem$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatname$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatprep$(exeext)
- -$(RM) $(bindir)/$(target_alias)-gnatpsta$(exeext)
- -$(RM) $(tooldir)/bin/gnatbind$(exeext)
- -$(RM) $(tooldir)/bin/gnatbl$(exeext)
- -$(RM) $(tooldir)/bin/gnatchop$(exeext)
- -$(RM) $(tooldir)/bin/gnat$(exeext)
- -$(RM) $(tooldir)/bin/gnatdll$(exeext)
- -$(RM) $(tooldir)/bin/gnatkr$(exeext)
- -$(RM) $(tooldir)/bin/gnatlink$(exeext)
- -$(RM) $(tooldir)/bin/gnatls$(exeext)
- -$(RM) $(tooldir)/bin/gnatmake$(exeext)
- -$(RM) $(tooldir)/bin/gnatmem$(exeext)
- -$(RM) $(tooldir)/bin/gnatname$(exeext)
- -$(RM) $(tooldir)/bin/gnatprep$(exeext)
- -$(RM) $(tooldir)/bin/gnatpsta$(exeext)
-# Gnatlbr and Gnatchop are only used on VMS
- -$(RM) $(bindir)/gnatlbr$(exeext) $(bindir)/gnatchop$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatbind$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatbl$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatchop$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnat$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatfind$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatdll$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatkr$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatlbr$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatlink$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatls$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatmake$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatmem$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatname$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatprep$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatpsta$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/gnatxref$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatbind$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatbl$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatchop$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnat$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatfind$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatdll$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatkr(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatlbr$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatlink$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatls$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatmake$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatmem$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatname$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatprep$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatpsta$(exeext)
+ -$(RM) $(DESTDIR)$(bindir)/$(target_alias)-gnatxref$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatbind$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatbl$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatchop$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnat$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatfind$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatdll$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatkr$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatlbr$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatlink$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatls$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatmake$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatmem$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatname$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatprep$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatpsta$(exeext)
+ -$(RM) $(DESTDIR)$(tooldir)/bin/gnatxref$(exeext)
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
@@ -978,7 +969,7 @@ ada/adaint.o : ada/adaint.c $(CONFIG_H) $(SYSTEM_H) ada/adaint.h
ada/argv.o : ada/argv.c $(CONFIG_H) $(SYSTEM_H) ada/adaint.h
ada/cstreams.o : ada/cstreams.c $(CONFIG_H) $(SYSTEM_H) ada/adaint.h
ada/exit.o : ada/exit.c $(CONFIG_H) $(SYSTEM_H) ada/adaint.h
-ada/final.o : ada/final.c $(CONFIG_H) $(SYSTEM_H) ada/raise.h
+ada/adafinal.o : ada/adafinal.c $(CONFIG_H) $(SYSTEM_H) ada/raise.h
ada/link.o : ada/link.c
ada/cio.o : ada/cio.c $(CONFIG_H) $(SYSTEM_H) ada/adaint.h
diff --git a/gcc/ada/Makefile.adalib b/gcc/ada/Makefile.adalib
index 3ac2561e61e..873d2ff8c5f 100644
--- a/gcc/ada/Makefile.adalib
+++ b/gcc/ada/Makefile.adalib
@@ -42,11 +42,11 @@
# updating the value of the environment variable ADA_OBJECTS_PATH
SHELL=sh
-PWD=$${PWDCMD-pwd}
+PWD_COMMAND=$${PWDCMD-pwd}
CC = gcc
AR = ar
-GNAT_ROOT = $(shell cd $(ROOT);${PWD})/
+GNAT_ROOT = $(shell cd $(ROOT);${PWD_COMMAND})/
target = $(shell $(CC) -dumpmachine)
version = $(shell $(CC) -dumpversion)
ADA_INCLUDE_PATH = $(GNAT_ROOT)lib/gcc-lib/$(target)/$(version)/adainclude/
diff --git a/gcc/ada/Makefile.in b/gcc/ada/Makefile.in
index e4e6bb2e508..f7105529cf6 100644
--- a/gcc/ada/Makefile.in
+++ b/gcc/ada/Makefile.in
@@ -115,7 +115,7 @@ RANLIB = ranlib
# Test to use to see whether ranlib exists on the system.
RANLIB_TEST = [ -f /usr/bin/ranlib -o -f /bin/ranlib ]
SHELL = @SHELL@
-PWD = $${PWDCMD-pwd}
+PWD_COMMAND = $${PWDCMD-pwd}
# How to copy preserving the date
INSTALL_DATA_DATE = cp -p
MAKEINFO = makeinfo
@@ -187,10 +187,10 @@ host_canonical=@host_canonical@
srcdir = @srcdir@
VPATH = @srcdir@
-fsrcdir := $(shell cd $(srcdir);${PWD})
-fsrcpfx := $(shell cd $(srcdir);${PWD})/
-fcurdir := $(shell ${PWD})
-fcurpfx := $(shell ${PWD})/
+fsrcdir := $(shell cd $(srcdir);${PWD_COMMAND})
+fsrcpfx := $(shell cd $(srcdir);${PWD_COMMAND})/
+fcurdir := $(shell ${PWD_COMMAND})
+fcurpfx := $(shell ${PWD_COMMAND})/
# Top build directory, relative to here.
top_builddir = ..
@@ -750,7 +750,25 @@ ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),)
LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
endif
-ifeq ($(strip $(filter-out hppa% hp hpux%,$(targ))),)
+ifeq ($(strip $(filter-out hppa% hp hpux10%,$(targ))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-excpol.adb<4wexcpol.adb \
+ a-intnam.ads<4hintnam.ads \
+ s-inmaop.adb<7sinmaop.adb \
+ s-interr.adb<5ginterr.adb \
+ s-intman.adb<7sintman.adb \
+ s-osinte.adb<5hosinte.adb \
+ s-osinte.ads<5hosinte.ads \
+ s-parame.ads<5hparame.ads \
+ s-osprim.adb<7sosprim.adb \
+ s-taprop.adb<5htaprop.adb \
+ s-taspri.ads<5htaspri.ads \
+ s-tpopsp.adb<7stpopsp.adb \
+ g-soccon.ads<3hsoccon.ads \
+ system.ads<5hsystem.ads
+endif
+
+ifeq ($(strip $(filter-out hppa% hp hpux11%,$(targ))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<4hintnam.ads \
s-inmaop.adb<7sinmaop.adb \
@@ -766,7 +784,7 @@ ifeq ($(strip $(filter-out hppa% hp hpux%,$(targ))),)
g-soccon.ads<3hsoccon.ads \
system.ads<5hsystem.ads
- TGT_LIB = /usr/lib/libcl.a -lpthread
+ TGT_LIB = /usr/lib/libcl.a
THREADSLIB = -lpthread -lc_r
SYMLIB = -laddr2line -lbfd $(INTLLIBS)
soext = .sl
@@ -789,6 +807,7 @@ ifeq ($(strip $(filter-out hppa% hp hpux%,$(targ))),)
g-soccon.ads<3hsoccon.ads \
system.ads<5hsystem.ads
+ TGT_LIB =
THREADSLIB = -lcma
endif
endif
@@ -875,7 +894,7 @@ ifeq ($(strip $(filter-out lynxos,$(osys))),)
endif
endif
-ifeq ($(strip $(filter-out rtems,$(osys))),)
+ifeq ($(strip $(filter-out rtems rtemself rtemsaout rtemscoff,$(osys))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<4rintnam.ads \
s-inmaop.adb<7sinmaop.adb \
@@ -886,7 +905,7 @@ ifeq ($(strip $(filter-out rtems,$(osys))),)
s-parame.adb<5rparame.adb \
s-taprop.adb<7staprop.adb \
s-taspri.ads<7staspri.ads \
- s-tpopsp.adb<5atpopsp.adb
+ s-tpopsp.adb<5rtpopsp.adb
endif
ifeq ($(strip $(filter-out go32 msdos,$(osys))),)
@@ -1021,10 +1040,10 @@ endif
LIBGNAT_SRCS = ada.h adaint.c adaint.h argv.c cio.c cstreams.c \
errno.c exit.c cal.c \
raise.h raise.c sysdep.c types.h aux-io.c init.c \
- final.c tracebak.c expect.c mkdir.c $(EXTRA_LIBGNAT_SRCS)
+ adafinal.c tracebak.c expect.c mkdir.c $(EXTRA_LIBGNAT_SRCS)
LIBGNAT_OBJS = adaint.o argv.o cio.o cstreams.o errno.o exit.o \
- raise.o sysdep.o aux-io.o init.o cal.o final.o \
+ raise.o sysdep.o aux-io.o init.o cal.o adafinal.o \
tracebak.o expect.o mkdir.o $(EXTRA_LIBGNAT_OBJS)
# NOTE ??? - when the -I option for compiling Ada code is made to work,
@@ -1711,38 +1730,38 @@ install-gnatlib: ../stamp-gnatlib
# Create the directory before deleting it, in case the directory is
# a list of directories (as it may be on VMS). This ensures we are
# deleting the right one.
- -$(MKDIR) $(ADA_RTL_OBJ_DIR)
- -$(MKDIR) $(ADA_INCLUDE_DIR)
- $(RMDIR) $(ADA_RTL_OBJ_DIR)
- $(RMDIR) $(ADA_INCLUDE_DIR)
- -$(MKDIR) $(ADA_RTL_OBJ_DIR)
- -$(MKDIR) $(ADA_INCLUDE_DIR)
- -$(INSTALL_DATA) ada/rts/Makefile.adalib $(ADA_RTL_OBJ_DIR)
+ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+ $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+ $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
+ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
+ -$(INSTALL_DATA) ada/rts/Makefile.adalib $(DESTDIR)$(ADA_RTL_OBJ_DIR)
for file in ada/rts/*.ali; do \
- $(INSTALL_DATA) $$file $(ADA_RTL_OBJ_DIR); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
-for file in ada/rts/*$(arext);do \
- $(INSTALL_DATA) $$file $(ADA_RTL_OBJ_DIR); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
ifeq ($(strip $(filter-out alpha% dec vms% openvms% alphavms%,$(targ))),)
-for file in ada/rts/lib*$(soext);do \
- $(INSTALL_DATA) $$file $(ADA_RTL_OBJ_DIR); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
else
-for file in ada/rts/lib*-**$(soext);do \
- $(INSTALL_DATA) $$file $(ADA_RTL_OBJ_DIR); \
+ $(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
endif
- -$(LN_S) $(ADA_RTL_OBJ_DIR)/libgnat-*$(soext) \
- $(ADA_RTL_OBJ_DIR)/libgnat$(soext)
- -$(LN_S) $(ADA_RTL_OBJ_DIR)/libgnarl-*$(soext) \
- $(ADA_RTL_OBJ_DIR)/libgnarl$(soext)
+ -( cd $(DESTDIR)$(ADA_RTL_OBJ_DIR) && \
+ $(LN_S) libgnat-*$(soext) libgnat$(soext) )
+ -( cd $(DESTDIR)$(ADA_RTL_OBJ_DIR) && \
+ $(LN_S) libgnarl-*$(soext) libgnarl$(soext) )
# This copy must be done preserving the date on the original file.
for file in ada/rts/*.adb ada/rts/*.ads; do \
- $(INSTALL_DATA_DATE) $$file $(ADA_INCLUDE_DIR); \
+ $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
done
- cd $(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
- cd $(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
+ cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
+ cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
../stamp-gnatlib2:
$(RM) rts/s-*.ali
@@ -1854,7 +1873,7 @@ prepare-rts:
endif
install-rts: force
- $(CP) -r rts-$(RTS_NAME) $(libsubdir)/
+ $(CP) -r rts-$(RTS_NAME) $(DESTDIR)$(libsubdir)/
rts-none: force
$(MAKE) $(FLAGS_TO_PASS) prepare-rts \
@@ -2088,7 +2107,7 @@ deftarg.o : deftarg.c
errno.o : errno.c
exit.o : raise.h exit.c
expect.o : expect.c
-final.o : raise.h final.c
+adafinal.o : raise.h adafinal.c
gmem.o : gmem.c
link.o : link.c
mkdir.o : mkdir.c
@@ -2131,7 +2150,7 @@ force:
# Gnatlbr is only used on VMS
-GNATLBR_RTL_C_OBJS = adaint.o argv.o cio.o cstreams.o exit.o final.o init.o \
+GNATLBR_RTL_C_OBJS = adaint.o argv.o cio.o cstreams.o exit.o adafinal.o init.o \
raise.o sysdep.o tracebak.o
GNATLBR_C_OBJS = $(GNATLBR_RTL_C_OBJS)
diff --git a/gcc/ada/a-except.adb b/gcc/ada/a-except.adb
index e18d0e8fa53..979f11e41c9 100644
--- a/gcc/ada/a-except.adb
+++ b/gcc/ada/a-except.adb
@@ -199,7 +199,7 @@ package body Ada.Exceptions is
function Unwind_RaiseException
(E : access GNAT_GCC_Exception)
return Unwind_Reason_Code;
- pragma Import (C, Unwind_RaiseException, "_Unwind_RaiseException");
+ pragma Import (C, Unwind_RaiseException, "__gnat_Unwind_RaiseException");
-----------------------
-- Local Subprograms --
diff --git a/gcc/ada/final.c b/gcc/ada/adafinal.c
index 2074b6f4c8b..06e1f462a46 100644
--- a/gcc/ada/final.c
+++ b/gcc/ada/adafinal.c
@@ -2,7 +2,7 @@
* *
* GNAT COMPILER COMPONENTS *
* *
- * F I N A L *
+ * A D A F I N A L *
* *
* *
* C Implementation File *
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
index 2b5f01a7427..59389c60726 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
@@ -31,6 +31,10 @@
* *
****************************************************************************/
+#if defined(__rtems__)
+#include <stdio.h>
+#endif
+
#include <dirent.h>
extern int __gnat_max_path_len;
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index d1df13cc409..aafa6095592 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -8,9 +8,9 @@
@c o
@c G N A T _ RM o
@c o
-@c $Revision: 1.3.8.1 $
+@c $Revision: 1.8.18.3 $
@c o
-@c Copyright (C) 1995-2002 Free Software Foundation o
+@c Copyright (C) 1995-2003 Free Software Foundation o
@c o
@c o
@c GNAT is maintained by Ada Core Technologies Inc (http://www.gnat.com). o
@@ -22,37 +22,37 @@
@setchapternewpage odd
@syncodeindex fn cp
+@include gcc-common.texi
+
@dircategory GNU Ada tools
@direntry
* GNAT Reference Manual: (gnat_rm). Reference Manual for GNU Ada tools.
@end direntry
-@titlepage
-
-
-@title GNAT Reference Manual
-@subtitle GNAT, The GNU Ada 95 Compiler
-@ifset vxworks
-@title Version 3.16w
-@end ifset
-@ifclear vxworks
-@subtitle Version 3.16w
-@end ifclear
-@author Ada Core Technologies, Inc.
-
-@page
-@vskip 0pt plus 1filll
-
+@copying
Copyright @copyright{} 1995-2001, Free Software Foundation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
+under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with the Invariant Sections being ``GNU Free Documentation License'', with the
Front-Cover Texts being ``GNAT Reference Manual'', and with no Back-Cover Texts.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
+@end copying
+
+@titlepage
+
+
+@title GNAT Reference Manual
+@subtitle GNAT, The GNU Ada 95 Compiler
+@subtitle GNAT Version for GCC @value{version-GCC}
+@author Ada Core Technologies, Inc.
+
+@page
+@vskip 0pt plus 1filll
+@insertcopying
@end titlepage
@ifnottex
@@ -64,25 +64,11 @@ GNAT Reference Manual
GNAT, The GNU Ada 95 Compiler
-@ifset vxworks
-Version 3.16w
-@end ifset
-@ifclear vxworks
-Version 3.16w
-@end ifclear
+GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-
-Copyright @copyright{} 1995-2001, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being ``GNAT Reference Manual'', and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
@@ -11184,8 +11170,8 @@ of the length corresponding to the @code{@var{type}'Size} value in Ada.
@noindent
The interface to C++ makes use of the following pragmas, which are
primarily intended to be constructed automatically using a binding generator
-tool, although it is possible to construct them by hand. Ada Core
-Technologies does not currently supply a suitable binding generator tool.
+tool, although it is possible to construct them by hand. No suitable binding
+generator tool is supplied with GNAT though.
Using these pragmas it is possible to achieve complete
inter-operability between Ada tagged types and C class definitions.
diff --git a/gcc/ada/gnat_ug.texi b/gcc/ada/gnat_ug.texi
index 784adb45dd1..b0657fcb6e0 100644
--- a/gcc/ada/gnat_ug.texi
+++ b/gcc/ada/gnat_ug.texi
@@ -78,6 +78,31 @@
@syncodeindex fn cp
@c %**end of header
+@copying
+Copyright @copyright{} 1995-2002, Free Software Foundation
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation;
+with the Invariant Sections being ``GNU Free Documentation License'', with the
+Front-Cover Texts being
+@ifset vms
+``GNAT User's Guide for OpenVMS Alpha'',
+@end ifset
+@ifset wnt
+``GNAT User's Guide for Windows NT'',
+@end ifset
+@ifset unx
+``GNAT User's Guide for Unix Platforms'',
+@end ifset
+@ifset vxworks
+``GNAT User's Guide for Cross Platforms'',
+@end ifset
+and with no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+
@titlepage
@ifset vms
@@ -108,28 +133,7 @@
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-@ifset vms
-``GNAT User's Guide for OpenVMS Alpha'',
-@end ifset
-@ifset wnt
-``GNAT User's Guide for Windows NT'',
-@end ifset
-@ifset unx
-``GNAT User's Guide for Unix Platforms'',
-@end ifset
-@ifset vxworks
-``GNAT User's Guide for Cross Platforms'',
-@end ifset
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@end titlepage
@@ -159,28 +163,7 @@ GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-@ifset vms
-``GNAT User's Guide for OpenVMS Alpha'',
-@end ifset
-@ifset wnt
-``GNAT User's Guide for Windows NT'',
-@end ifset
-@ifset unx
-``GNAT User's Guide for Unix Platforms'',
-@end ifset
-@ifset vxworks
-``GNAT User's Guide for Cross Platforms'',
-@end ifset
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
* About This Guide::
diff --git a/gcc/ada/gnat_ug_unx.texi b/gcc/ada/gnat_ug_unx.texi
index 2aae3d87ea6..45e09632934 100644
--- a/gcc/ada/gnat_ug_unx.texi
+++ b/gcc/ada/gnat_ug_unx.texi
@@ -64,6 +64,20 @@
@syncodeindex fn cp
@c %**end of header
+@copying
+Copyright @copyright{} 1995-2002, Free Software Foundation
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation;
+with the Invariant Sections being ``GNU Free Documentation License'', with the
+Front-Cover Texts being
+``GNAT User's Guide for Unix Platforms'',
+and with no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+
@titlepage
@@ -80,17 +94,7 @@
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Unix Platforms'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@end titlepage
@@ -109,17 +113,7 @@ GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Unix Platforms'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
* About This Guide::
diff --git a/gcc/ada/gnat_ug_vms.texi b/gcc/ada/gnat_ug_vms.texi
index 647e0e30aed..60c5b4d9922 100644
--- a/gcc/ada/gnat_ug_vms.texi
+++ b/gcc/ada/gnat_ug_vms.texi
@@ -64,6 +64,20 @@
@syncodeindex fn cp
@c %**end of header
+@copying
+Copyright @copyright{} 1995-2002, Free Software Foundation
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation;
+with the Invariant Sections being ``GNU Free Documentation License'', with the
+Front-Cover Texts being
+``GNAT User's Guide for OpenVMS Alpha'',
+and with no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+
@titlepage
@title GNAT User's Guide
@@ -80,17 +94,7 @@
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for OpenVMS Alpha'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@end titlepage
@@ -109,17 +113,7 @@ GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for OpenVMS Alpha'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
* About This Guide::
diff --git a/gcc/ada/gnat_ug_vxw.texi b/gcc/ada/gnat_ug_vxw.texi
index 5c7ac9300e6..2f962051aab 100644
--- a/gcc/ada/gnat_ug_vxw.texi
+++ b/gcc/ada/gnat_ug_vxw.texi
@@ -64,6 +64,20 @@
@syncodeindex fn cp
@c %**end of header
+@copying
+Copyright @copyright{} 1995-2002, Free Software Foundation
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation;
+with the Invariant Sections being ``GNU Free Documentation License'', with the
+Front-Cover Texts being
+``GNAT User's Guide for Cross Platforms'',
+and with no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+
@titlepage
@@ -80,17 +94,7 @@
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Cross Platforms'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@end titlepage
@@ -109,17 +113,7 @@ GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Cross Platforms'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
* About This Guide::
diff --git a/gcc/ada/gnat_ug_wnt.texi b/gcc/ada/gnat_ug_wnt.texi
index 102823d5377..04b18c61e23 100644
--- a/gcc/ada/gnat_ug_wnt.texi
+++ b/gcc/ada/gnat_ug_wnt.texi
@@ -64,6 +64,20 @@
@syncodeindex fn cp
@c %**end of header
+@copying
+Copyright @copyright{} 1995-2002, Free Software Foundation
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2
+or any later version published by the Free Software Foundation;
+with the Invariant Sections being ``GNU Free Documentation License'', with the
+Front-Cover Texts being
+``GNAT User's Guide for Windows NT'',
+and with no Back-Cover Texts.
+A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end copying
+
@titlepage
@@ -80,17 +94,7 @@
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Windows NT'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@end titlepage
@@ -109,17 +113,7 @@ GNAT Version for GCC @value{version-GCC}
Ada Core Technologies, Inc.
-Copyright @copyright{} 1995-2002, Free Software Foundation
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being ``GNU Free Documentation License'', with the
-Front-Cover Texts being
-``GNAT User's Guide for Windows NT'',
-and with no Back-Cover Texts.
-A copy of the license is included in the section entitled ``GNU
-Free Documentation License''.
+@insertcopying
@menu
* About This Guide::
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index 04b7aea05aa..105df0d3264 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -1635,6 +1635,22 @@ __gnat_initialize ()
#endif
}
+/***************************************/
+/* __gnat_initialize (RTEMS version) */
+/***************************************/
+
+#elif defined(__rtems__)
+
+extern void __gnat_install_handler ();
+
+/* For RTEMS, each bsp will provide a custom __gnat_install_handler (). */
+
+void
+__gnat_initialize ()
+{
+ __gnat_install_handler ();
+}
+
#else
/* For all other versions of GNAT, the initialize routine and handler
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
index 36fd17ab126..6cdbc9f1880 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -132,7 +132,7 @@ const char *object_library_extension = ".a";
const char *object_file_option = "-Wl,-f,";
const char *run_path_option = "";
int link_max = 15000;
-cnonst unsigned char objlist_file_supported = 1;
+const unsigned char objlist_file_supported = 1;
char shared_libgnat_default = STATIC;
unsigned char using_gnu_linker = 0;
const char *object_library_extension = ".a";
diff --git a/gcc/ada/raise.c b/gcc/ada/raise.c
index 087448a4d50..a9841740d88 100644
--- a/gcc/ada/raise.c
+++ b/gcc/ada/raise.c
@@ -88,10 +88,20 @@ __gnat_unhandled_terminate ()
}
/* Below is the code related to the integration of the GCC mechanism for
- exception handling. */
+ exception handling. Still work in progress. */
#include "unwind.h"
+/* If the underlying GCC scheme for exception handling is SJLJ, the standard
+ propagation routine (_Unwind_RaiseException) is actually renamed using a
+ #define directive (see unwing-sjlj.c). We need a consistently named
+ interface to import from a-except, so stubs are defined here, at the end
+ of this file. */
+
+_Unwind_Reason_Code
+__gnat_Unwind_RaiseException PARAMS ((struct _Unwind_Exception *));
+
+
/* Exception Handling personality routine for Ada.
??? It is currently inspired from the one for C++, needs cleanups and
@@ -597,21 +607,45 @@ __gnat_eh_personality (version, actions, exception_class, ue_header, context)
}
-#else /* IN_RTS - For eh personality routine */
+/* Stubs for the libgcc unwinding interface, to be imported by a-except. */
+
+#ifdef __USING_SJLJ_EXCEPTIONS__
+
+_Unwind_Reason_Code
+__gnat_Unwind_RaiseException (e)
+ struct _Unwind_Exception *e;
+{
+ return _Unwind_SjLj_RaiseException (e);
+}
+
+#else
+/* __USING_SJLJ_EXCEPTIONS__ not defined */
+
+_Unwind_Reason_Code
+__gnat_Unwind_RaiseException (e)
+ struct _Unwind_Exception *e;
+{
+ return _Unwind_RaiseException (e);
+}
+
+#endif
+
+#else
+/* IN_RTS not defined */
/* The calls to the GCC runtime interface for exception raising are currently
issued from a-except.adb, which is used by both the runtime library and
the compiler. As the compiler binary is not linked against the GCC runtime
library, we need a stub for this interface in the compiler case. */
+/* Since we don't link the compiler with a host libgcc, we should not be
+ using the GCC eh mechanism for the compiler and so expect this function
+ never to be called. */
_Unwind_Reason_Code
-_Unwind_RaiseException (e)
+__gnat_Unwind_RaiseException (e)
struct _Unwind_Exception *e ATTRIBUTE_UNUSED;
{
- /* Since we don't link the compiler with a host libgcc, we should not be
- using the GCC eh mechanism for the compiler and so expect this function
- never to be called. */
abort ();
}
diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c
index 4d4cb60ac91..7786c8f7236 100644
--- a/gcc/ada/utils2.c
+++ b/gcc/ada/utils2.c
@@ -2036,7 +2036,7 @@ gnat_mark_addressable (expr_node)
case VAR_DECL:
case PARM_DECL:
case RESULT_DECL:
- put_var_into_stack (expr_node);
+ put_var_into_stack (expr_node, /*rescan=*/true);
TREE_ADDRESSABLE (expr_node) = 1;
return true;
diff --git a/gcc/alias.c b/gcc/alias.c
index 45e868ca963..75ac89d065b 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1,5 +1,6 @@
/* Alias analysis for GNU C
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Contributed by John Carr (jfc@mit.edu).
This file is part of GCC.
@@ -109,6 +110,8 @@ static tree decl_for_component_ref PARAMS ((tree));
static rtx adjust_offset_for_component_ref PARAMS ((tree, rtx));
static int nonoverlapping_memrefs_p PARAMS ((rtx, rtx));
static int write_dependence_p PARAMS ((rtx, rtx, int));
+static void set_reg_known_value PARAMS ((unsigned int, rtx));
+static void set_reg_known_equiv_p PARAMS ((unsigned int, int));
static int nonlocal_mentioned_p_1 PARAMS ((rtx *, void *));
static int nonlocal_mentioned_p PARAMS ((rtx));
@@ -172,16 +175,16 @@ static GTY (()) rtx static_reg_base_value[FIRST_PSEUDO_REGISTER];
Because this array contains only pseudo registers it has no effect
after reload. */
-static rtx *alias_invariant;
+static GTY((length("alias_invariant_size"))) rtx *alias_invariant;
+unsigned GTY(()) int alias_invariant_size;
/* Vector indexed by N giving the initial (unchanging) value known for
- pseudo-register N. This array is initialized in
- init_alias_analysis, and does not change until end_alias_analysis
- is called. */
-rtx *reg_known_value;
+ pseudo-register N. This array is initialized in init_alias_analysis,
+ and does not change until end_alias_analysis is called. */
+static GTY((length("reg_known_value_size"))) rtx *reg_known_value;
/* Indicates number of valid entries in reg_known_value. */
-static unsigned int reg_known_value_size;
+static GTY(()) unsigned int reg_known_value_size;
/* Vector recording for each reg_known_value whether it is due to a
REG_EQUIV note. Future passes (viz., reload) may replace the
@@ -195,7 +198,7 @@ static unsigned int reg_known_value_size;
REG_EQUIV notes. One could argue that the REG_EQUIV notes are
wrong, but solving the problem in the scheduler will likely give
better code, so we do it here. */
-char *reg_known_equiv_p;
+static bool *reg_known_equiv_p;
/* True when scanning insns from the start of the rtl to the
NOTE_INSN_FUNCTION_BEG note. */
@@ -322,6 +325,8 @@ int
objects_must_conflict_p (t1, t2)
tree t1, t2;
{
+ HOST_WIDE_INT set1, set2;
+
/* If neither has a type specified, we don't know if they'll conflict
because we may be using them to store objects of various types, for
example the argument and local variables areas of inlined functions. */
@@ -342,15 +347,15 @@ objects_must_conflict_p (t1, t2)
|| (t1 != 0 && TYPE_VOLATILE (t1) && t2 != 0 && TYPE_VOLATILE (t2)))
return 1;
- /* If one is aggregate and the other is scalar then they may not
- conflict. */
- if ((t1 != 0 && AGGREGATE_TYPE_P (t1))
- != (t2 != 0 && AGGREGATE_TYPE_P (t2)))
- return 0;
+ set1 = t1 ? get_alias_set (t1) : 0;
+ set2 = t2 ? get_alias_set (t2) : 0;
- /* Otherwise they conflict only if the alias sets conflict. */
- return alias_sets_conflict_p (t1 ? get_alias_set (t1) : 0,
- t2 ? get_alias_set (t2) : 0);
+ /* Otherwise they conflict if they have no alias set or the same. We
+ can't simply use alias_sets_conflict_p here, because we must make
+ sure that every subtype of t1 will conflict with every subtype of
+ t2 for which a pair of subobjects of these respective subtypes
+ overlaps on the stack. */
+ return set1 == 0 || set2 == 0 || set1 == set2;
}
/* T is an expression with pointer type. Find the DECL on which this
@@ -503,6 +508,8 @@ get_alias_set (t)
/* If we haven't computed the actual alias set, do it now. */
if (DECL_POINTER_ALIAS_SET (decl) == -2)
{
+ tree pointed_to_type = TREE_TYPE (TREE_TYPE (decl));
+
/* No two restricted pointers can point at the same thing.
However, a restricted pointer can point at the same thing
as an unrestricted pointer, if that unrestricted pointer
@@ -511,11 +518,22 @@ get_alias_set (t)
alias set for the type pointed to by the type of the
decl. */
HOST_WIDE_INT pointed_to_alias_set
- = get_alias_set (TREE_TYPE (TREE_TYPE (decl)));
+ = get_alias_set (pointed_to_type);
if (pointed_to_alias_set == 0)
/* It's not legal to make a subset of alias set zero. */
- ;
+ DECL_POINTER_ALIAS_SET (decl) = 0;
+ else if (AGGREGATE_TYPE_P (pointed_to_type))
+ /* For an aggregate, we must treat the restricted
+ pointer the same as an ordinary pointer. If we
+ were to make the type pointed to by the
+ restricted pointer a subset of the pointed-to
+ type, then we would believe that other subsets
+ of the pointed-to type (such as fields of that
+ type) do not conflict with the type pointed to
+ by the restricted pointer. */
+ DECL_POINTER_ALIAS_SET (decl)
+ = pointed_to_alias_set;
else
{
DECL_POINTER_ALIAS_SET (decl) = new_alias_set ();
@@ -785,14 +803,15 @@ find_base_value (src)
{
/* If we're inside init_alias_analysis, use new_reg_base_value
to reduce the number of relaxation iterations. */
- if (new_reg_base_value && new_reg_base_value[regno])
+ if (new_reg_base_value && new_reg_base_value[regno]
+ && REG_N_SETS (regno) == 1)
return new_reg_base_value[regno];
if (reg_base_value[regno])
return reg_base_value[regno];
}
- return src;
+ return 0;
case MEM:
/* Check for an argument passed in memory. Only record in the
@@ -1025,7 +1044,7 @@ record_base_value (regno, val, invariant)
if (regno >= reg_base_value_size)
return;
- if (invariant && alias_invariant)
+ if (invariant && alias_invariant && regno < alias_invariant_size)
alias_invariant[regno] = val;
if (GET_CODE (val) == REG)
@@ -1050,10 +1069,76 @@ clear_reg_alias_info (reg)
{
unsigned int regno = REGNO (reg);
- if (regno < reg_known_value_size && regno >= FIRST_PSEUDO_REGISTER)
- reg_known_value[regno] = reg;
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ {
+ regno -= FIRST_PSEUDO_REGISTER;
+ if (regno < reg_known_value_size)
+ {
+ reg_known_value[regno] = reg;
+ reg_known_equiv_p[regno] = false;
+ }
+ }
+}
+
+/* If a value is known for REGNO, return it. */
+
+rtx
+get_reg_known_value (regno)
+ unsigned int regno;
+{
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ {
+ regno -= FIRST_PSEUDO_REGISTER;
+ if (regno < reg_known_value_size)
+ return reg_known_value[regno];
+ }
+ return NULL;
+}
+
+/* Set it. */
+
+static void
+set_reg_known_value (regno, val)
+ unsigned int regno;
+ rtx val;
+{
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ {
+ regno -= FIRST_PSEUDO_REGISTER;
+ if (regno < reg_known_value_size)
+ reg_known_value[regno] = val;
+ }
+}
+
+/* Similarly for reg_known_equiv_p. */
+
+bool
+get_reg_known_equiv_p (regno)
+ unsigned int regno;
+{
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ {
+ regno -= FIRST_PSEUDO_REGISTER;
+ if (regno < reg_known_value_size)
+ return reg_known_equiv_p[regno];
+ }
+ return false;
}
+static void
+set_reg_known_equiv_p (regno, val)
+ unsigned int regno;
+ int val;
+{
+ if (regno >= FIRST_PSEUDO_REGISTER)
+ {
+ regno -= FIRST_PSEUDO_REGISTER;
+ if (regno < reg_known_value_size)
+ reg_known_equiv_p[regno] = val;
+ }
+}
+
+
/* Returns a canonical version of X, from the point of view alias
analysis. (For example, if X is a MEM whose address is a register,
and the register has a known value (say a SYMBOL_REF), then a MEM
@@ -1064,11 +1149,16 @@ canon_rtx (x)
rtx x;
{
/* Recursively look for equivalences. */
- if (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER
- && REGNO (x) < reg_known_value_size)
- return reg_known_value[REGNO (x)] == x
- ? x : canon_rtx (reg_known_value[REGNO (x)]);
- else if (GET_CODE (x) == PLUS)
+ if (GET_CODE (x) == REG && REGNO (x) >= FIRST_PSEUDO_REGISTER)
+ {
+ rtx t = get_reg_known_value (REGNO (x));
+ if (t == x)
+ return x;
+ if (t)
+ return canon_rtx (t);
+ }
+
+ if (GET_CODE (x) == PLUS)
{
rtx x0 = canon_rtx (XEXP (x, 0));
rtx x1 = canon_rtx (XEXP (x, 1));
@@ -2694,14 +2784,9 @@ init_alias_analysis ()
unsigned int ui;
rtx insn;
- reg_known_value_size = maxreg;
-
- reg_known_value
- = (rtx *) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (rtx))
- - FIRST_PSEUDO_REGISTER;
- reg_known_equiv_p
- = (char*) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (char))
- - FIRST_PSEUDO_REGISTER;
+ reg_known_value_size = maxreg - FIRST_PSEUDO_REGISTER;
+ reg_known_value = ggc_calloc (reg_known_value_size, sizeof (rtx));
+ reg_known_equiv_p = xcalloc (reg_known_value_size, sizeof (bool));
/* Overallocate reg_base_value to allow some growth during loop
optimization. Loop unrolling can create a large number of
@@ -2714,10 +2799,9 @@ init_alias_analysis ()
reg_seen = (char *) xmalloc (reg_base_value_size);
if (! reload_completed && flag_unroll_loops)
{
- /* ??? Why are we realloc'ing if we're just going to zero it? */
- alias_invariant = (rtx *)xrealloc (alias_invariant,
- reg_base_value_size * sizeof (rtx));
- memset ((char *)alias_invariant, 0, reg_base_value_size * sizeof (rtx));
+ alias_invariant = (rtx *) ggc_alloc_cleared (reg_base_value_size
+ * sizeof (rtx));
+ alias_invariant_size = reg_base_value_size;
}
/* The basic idea is that each pass through this loop will use the
@@ -2806,6 +2890,7 @@ init_alias_analysis ()
{
unsigned int regno = REGNO (SET_DEST (set));
rtx src = SET_SRC (set);
+ rtx t;
if (REG_NOTES (insn) != 0
&& (((note = find_reg_note (insn, REG_EQUAL, 0)) != 0
@@ -2813,29 +2898,28 @@ init_alias_analysis ()
|| (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0)
&& GET_CODE (XEXP (note, 0)) != EXPR_LIST
&& ! rtx_varies_p (XEXP (note, 0), 1)
- && ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0)))
+ && ! reg_overlap_mentioned_p (SET_DEST (set),
+ XEXP (note, 0)))
{
- reg_known_value[regno] = XEXP (note, 0);
- reg_known_equiv_p[regno] = REG_NOTE_KIND (note) == REG_EQUIV;
+ set_reg_known_value (regno, XEXP (note, 0));
+ set_reg_known_equiv_p (regno,
+ REG_NOTE_KIND (note) == REG_EQUIV);
}
else if (REG_N_SETS (regno) == 1
&& GET_CODE (src) == PLUS
&& GET_CODE (XEXP (src, 0)) == REG
- && REGNO (XEXP (src, 0)) >= FIRST_PSEUDO_REGISTER
- && (reg_known_value[REGNO (XEXP (src, 0))])
+ && (t = get_reg_known_value (REGNO (XEXP (src, 0))))
&& GET_CODE (XEXP (src, 1)) == CONST_INT)
{
- rtx op0 = XEXP (src, 0);
- op0 = reg_known_value[REGNO (op0)];
- reg_known_value[regno]
- = plus_constant (op0, INTVAL (XEXP (src, 1)));
- reg_known_equiv_p[regno] = 0;
+ t = plus_constant (t, INTVAL (XEXP (src, 1)));
+ set_reg_known_value (regno, t);
+ set_reg_known_equiv_p (regno, 0);
}
else if (REG_N_SETS (regno) == 1
&& ! rtx_varies_p (src, 1))
{
- reg_known_value[regno] = src;
- reg_known_equiv_p[regno] = 0;
+ set_reg_known_value (regno, src);
+ set_reg_known_equiv_p (regno, 0);
}
}
}
@@ -2859,9 +2943,9 @@ init_alias_analysis ()
while (changed && ++pass < MAX_ALIAS_LOOP_PASSES);
/* Fill in the remaining entries. */
- for (i = FIRST_PSEUDO_REGISTER; i < maxreg; i++)
+ for (i = 0; i < (int)reg_known_value_size; i++)
if (reg_known_value[i] == 0)
- reg_known_value[i] = regno_reg_rtx[i];
+ reg_known_value[i] = regno_reg_rtx[i + FIRST_PSEUDO_REGISTER];
/* Simplify the reg_base_value array so that no register refers to
another register, except to special registers indirectly through
@@ -2904,17 +2988,16 @@ init_alias_analysis ()
void
end_alias_analysis ()
{
- free (reg_known_value + FIRST_PSEUDO_REGISTER);
reg_known_value = 0;
reg_known_value_size = 0;
- free (reg_known_equiv_p + FIRST_PSEUDO_REGISTER);
+ free (reg_known_equiv_p);
reg_known_equiv_p = 0;
reg_base_value = 0;
reg_base_value_size = 0;
if (alias_invariant)
{
- free (alias_invariant);
alias_invariant = 0;
+ alias_invariant_size = 0;
}
}
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 10c895408f2..1829fdebed2 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -1,5 +1,5 @@
/* Define control and data flow tables, and regsets.
- Copyright (C) 1987, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1987, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GCC.
@@ -26,6 +26,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "sbitmap.h"
#include "varray.h"
#include "partition.h"
+#include "hard-reg-set.h"
/* Head of register set linked list. */
typedef bitmap_head regset_head;
@@ -335,6 +336,8 @@ extern void connect_infinite_loops_to_exit PARAMS ((void));
extern int flow_call_edges_add PARAMS ((sbitmap));
extern edge cached_make_edge PARAMS ((sbitmap *, basic_block,
basic_block, int));
+extern edge unchecked_make_edge PARAMS ((basic_block,
+ basic_block, int));
extern edge make_edge PARAMS ((basic_block,
basic_block, int));
extern edge make_single_succ_edge PARAMS ((basic_block,
@@ -748,8 +751,10 @@ extern void free_aux_for_edges PARAMS ((void));
it being unused. */
extern void verify_flow_info PARAMS ((void));
extern bool flow_loop_outside_edge_p PARAMS ((const struct loop *, edge));
-extern bool flow_loop_nested_p PARAMS ((const struct loop *, const struct loop *));
-extern bool flow_bb_inside_loop_p PARAMS ((const struct loop *, basic_block));
+extern bool flow_loop_nested_p PARAMS ((const struct loop *,
+ const struct loop *));
+extern bool flow_bb_inside_loop_p PARAMS ((const struct loop *,
+ const basic_block));
extern basic_block *get_loop_body PARAMS ((const struct loop *));
extern int dfs_enumerate_from PARAMS ((basic_block, int,
bool (*)(basic_block, void *),
@@ -799,6 +804,7 @@ extern void fixup_abnormal_edges PARAMS ((void));
extern bool can_hoist_insn_p PARAMS ((rtx, rtx, regset));
extern rtx hoist_insn_after PARAMS ((rtx, rtx, rtx, rtx));
extern rtx hoist_insn_to_edge PARAMS ((rtx, edge, rtx, rtx));
+extern bool control_flow_insn_p PARAMS ((rtx));
/* In dominance.c */
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 24c41e51ced..857e0fbc6ec 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -89,11 +89,13 @@
#include "flags.h"
#include "output.h"
#include "cfglayout.h"
+#include "function.h"
#include "target.h"
/* Local function prototypes. */
static void make_reorder_chain PARAMS ((void));
static basic_block make_reorder_chain_1 PARAMS ((basic_block, basic_block));
+static basic_block maybe_duplicate_computed_goto_succ PARAMS ((basic_block));
/* Compute an ordering for a subgraph beginning with block BB. Record the
ordering in RBI()->index and chained through RBI()->next. */
@@ -130,6 +132,45 @@ make_reorder_chain ()
RBI (prev)->next = NULL;
}
+/* If the successor is our artificial computed_jump block, duplicate it. */
+
+static inline basic_block
+maybe_duplicate_computed_goto_succ (bb)
+ basic_block bb;
+{
+ edge e;
+ basic_block next;
+
+ /* Note that we can't rely on computed_goto_common_label still being in
+ the instruction stream -- cfgloop.c likes to munge things about. But
+ we can still use it's non-null-ness to avoid a fruitless search. */
+ if (!cfun->computed_goto_common_label)
+ return NULL;
+
+ /* Only want to duplicate when coming from a simple branch. */
+ e = bb->succ;
+ if (!e || e->succ_next)
+ return NULL;
+
+ /* Only duplicate if we've already layed out this block once. */
+ next = e->dest;
+ if (!RBI (next)->visited)
+ return NULL;
+
+ /* See if the block contains only a computed branch. */
+ if ((next->head == next->end
+ || next_active_insn (next->head) == next->end)
+ && computed_jump_p (next->end))
+ {
+ if (rtl_dump_file)
+ fprintf (rtl_dump_file, "Duplicating block %d after %d\n",
+ next->index, bb->index);
+ return cfg_layout_duplicate_bb (next, e);
+ }
+
+ return NULL;
+}
+
/* A helper function for make_reorder_chain.
We do not follow EH edges, or non-fallthru edges to noreturn blocks.
@@ -206,6 +247,10 @@ make_reorder_chain_1 (bb, prev)
next = ((taken && e_taken) ? e_taken : e_fall)->dest;
}
+ /* If the successor is our artificial computed_jump block, duplicate it. */
+ else
+ next = maybe_duplicate_computed_goto_succ (bb);
+
/* In the absence of a prediction, disturb things as little as possible
by selecting the old "next" block from the list of successors. If
there had been a fallthru edge, that will be the one. */
diff --git a/gcc/bitmap.c b/gcc/bitmap.c
index e2b58c0e0c8..917e87bb023 100644
--- a/gcc/bitmap.c
+++ b/gcc/bitmap.c
@@ -1,5 +1,6 @@
/* Functions to support general ended bitmaps.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -330,7 +331,7 @@ bitmap_find_bit (head, bit)
unsigned int bit;
{
bitmap_element *element;
- unsigned HOST_WIDE_INT indx = bit / BITMAP_ELEMENT_ALL_BITS;
+ unsigned int indx = bit / BITMAP_ELEMENT_ALL_BITS;
if (head->current == 0
|| head->indx == indx)
@@ -369,10 +370,9 @@ bitmap_clear_bit (head, bit)
if (ptr != 0)
{
- unsigned bit_num = bit % (unsigned) HOST_BITS_PER_WIDE_INT;
- unsigned word_num = ((bit / (unsigned) HOST_BITS_PER_WIDE_INT)
- % BITMAP_ELEMENT_WORDS);
- ptr->bits[word_num] &= ~ (((unsigned HOST_WIDE_INT) 1) << bit_num);
+ unsigned bit_num = bit % BITMAP_WORD_BITS;
+ unsigned word_num = bit / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS;
+ ptr->bits[word_num] &= ~ (((BITMAP_WORD) 1) << bit_num);
/* If we cleared the entire word, free up the element */
if (bitmap_element_zerop (ptr))
@@ -388,10 +388,9 @@ bitmap_set_bit (head, bit)
int bit;
{
bitmap_element *ptr = bitmap_find_bit (head, bit);
- unsigned word_num
- = ((bit / (unsigned) HOST_BITS_PER_WIDE_INT) % BITMAP_ELEMENT_WORDS);
- unsigned bit_num = bit % (unsigned) HOST_BITS_PER_WIDE_INT;
- unsigned HOST_WIDE_INT bit_val = ((unsigned HOST_WIDE_INT) 1) << bit_num;
+ unsigned word_num = bit / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS;
+ unsigned bit_num = bit % BITMAP_WORD_BITS;
+ BITMAP_WORD bit_val = ((BITMAP_WORD) 1) << bit_num;
if (ptr == 0)
{
@@ -419,9 +418,8 @@ bitmap_bit_p (head, bit)
if (ptr == 0)
return 0;
- bit_num = bit % (unsigned) HOST_BITS_PER_WIDE_INT;
- word_num
- = ((bit / (unsigned) HOST_BITS_PER_WIDE_INT) % BITMAP_ELEMENT_WORDS);
+ bit_num = bit % BITMAP_WORD_BITS;
+ word_num = bit / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS;
return (ptr->bits[word_num] >> bit_num) & 1;
}
@@ -434,7 +432,7 @@ bitmap_first_set_bit (a)
bitmap a;
{
bitmap_element *ptr = a->first;
- unsigned HOST_WIDE_INT word;
+ BITMAP_WORD word;
unsigned word_num, bit_num;
if (ptr == NULL)
@@ -456,10 +454,10 @@ bitmap_first_set_bit (a)
bit_num = 0;
word = word & -word;
-#if HOST_BITS_PER_WIDE_INT > 64
+#if nBITMAP_WORD_BITS > 64
#error "Fill out the table."
#endif
-#if HOST_BITS_PER_WIDE_INT > 32
+#if nBITMAP_WORD_BITS > 32
if ((word & 0xffffffff) == 0)
word >>= 32, bit_num += 32;
#endif
@@ -475,7 +473,7 @@ bitmap_first_set_bit (a)
bit_num += 1;
return (ptr->indx * BITMAP_ELEMENT_ALL_BITS
- + word_num * HOST_BITS_PER_WIDE_INT
+ + word_num * BITMAP_WORD_BITS
+ bit_num);
}
@@ -487,7 +485,7 @@ bitmap_last_set_bit (a)
bitmap a;
{
bitmap_element *ptr = a->first;
- unsigned HOST_WIDE_INT word;
+ BITMAP_WORD word;
unsigned word_num, bit_num;
if (ptr == NULL)
@@ -509,11 +507,11 @@ bitmap_last_set_bit (a)
/* Binary search for the last set bit. */
bit_num = 0;
-#if HOST_BITS_PER_WIDE_INT > 64
+#if nBITMAP_WORD_BITS > 64
#error "Fill out the table."
#endif
-#if HOST_BITS_PER_WIDE_INT > 32
- if (word & ~ (unsigned HOST_WIDE_INT) 0xffffffff)
+#if nBITMAP_WORD_BITS > 32
+ if (word & ~(BITMAP_WORD)0xffffffff)
word >>= 32, bit_num += 32;
#endif
if (word & 0xffff0000)
@@ -528,7 +526,7 @@ bitmap_last_set_bit (a)
bit_num += 1;
return (ptr->indx * BITMAP_ELEMENT_ALL_BITS
- + word_num * HOST_BITS_PER_WIDE_INT
+ + word_num * BITMAP_WORD_BITS
+ bit_num);
}
@@ -558,7 +556,7 @@ bitmap_operation (to, from1, from2, operation)
#if BITMAP_ELEMENT_WORDS == 2
#define DOIT(OP) \
do { \
- unsigned HOST_WIDE_INT t0, t1, f10, f11, f20, f21; \
+ BITMAP_WORD t0, t1, f10, f11, f20, f21; \
f10 = from1_tmp->bits[0]; \
f20 = from2_tmp->bits[0]; \
t0 = f10 OP f20; \
@@ -573,7 +571,7 @@ bitmap_operation (to, from1, from2, operation)
#else
#define DOIT(OP) \
do { \
- unsigned HOST_WIDE_INT t, f1, f2; \
+ BITMAP_WORD t, f1, f2; \
int i; \
for (i = 0; i < BITMAP_ELEMENT_WORDS; ++i) \
{ \
@@ -785,7 +783,7 @@ debug_bitmap_file (file, head)
for (ptr = head->first; ptr; ptr = ptr->next)
{
- int i, j, col = 26;
+ unsigned int i, j, col = 26;
fprintf (file, "\t");
fprintf (file, HOST_PTR_PRINTF, (PTR) ptr);
@@ -796,7 +794,7 @@ debug_bitmap_file (file, head)
fprintf (file, " indx = %u\n\t\tbits = {", ptr->indx);
for (i = 0; i < BITMAP_ELEMENT_WORDS; i++)
- for (j = 0; j < HOST_BITS_PER_WIDE_INT; j++)
+ for (j = 0; j < BITMAP_WORD_BITS; j++)
if ((ptr->bits[i] >> j) & 1)
{
if (col > 70)
@@ -806,7 +804,7 @@ debug_bitmap_file (file, head)
}
fprintf (file, " %u", (ptr->indx * BITMAP_ELEMENT_ALL_BITS
- + i * HOST_BITS_PER_WIDE_INT + j));
+ + i * BITMAP_WORD_BITS + j));
col += 4;
}
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index ed402990f11..85f8239cce7 100644
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -1,5 +1,5 @@
/* Functions to support general ended bitmaps.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GCC.
@@ -22,10 +22,18 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifndef GCC_BITMAP_H
#define GCC_BITMAP_H
+/* Fundamental storage type for bitmap. */
+
+/* typedef unsigned HOST_WIDE_INT BITMAP_WORD; */
+/* #define nBITMAP_WORD_BITS HOST_BITS_PER_WIDE_INT */
+typedef unsigned long BITMAP_WORD;
+#define nBITMAP_WORD_BITS (CHAR_BIT * SIZEOF_LONG)
+#define BITMAP_WORD_BITS (unsigned) nBITMAP_WORD_BITS
+
/* Number of words to use for each element in the linked list. */
#ifndef BITMAP_ELEMENT_WORDS
-#define BITMAP_ELEMENT_WORDS 2
+#define BITMAP_ELEMENT_WORDS ((128 + nBITMAP_WORD_BITS - 1) / nBITMAP_WORD_BITS)
#endif
/* Number of bits in each actual element of a bitmap. We get slightly better
@@ -33,7 +41,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
bits is unsigned, assuming it is a power of 2. */
#define BITMAP_ELEMENT_ALL_BITS \
- ((unsigned) (BITMAP_ELEMENT_WORDS * HOST_BITS_PER_WIDE_INT))
+ ((unsigned) (BITMAP_ELEMENT_WORDS * BITMAP_WORD_BITS))
/* Bitmap set element. We use a linked list to hold only the bits that
are set. This allows for use to grow the bitset dynamically without
@@ -45,7 +53,7 @@ typedef struct bitmap_element_def GTY(())
struct bitmap_element_def *next; /* Next element. */
struct bitmap_element_def *prev; /* Previous element. */
unsigned int indx; /* regno/BITMAP_ELEMENT_ALL_BITS. */
- unsigned HOST_WIDE_INT bits[BITMAP_ELEMENT_WORDS]; /* Bits that are set. */
+ BITMAP_WORD bits[BITMAP_ELEMENT_WORDS]; /* Bits that are set. */
} bitmap_element;
/* Head of bitmap linked list. */
@@ -162,9 +170,8 @@ do { \
do { \
bitmap_element *ptr_ = (BITMAP)->first; \
unsigned int indx_ = (MIN) / BITMAP_ELEMENT_ALL_BITS; \
- unsigned bit_num_ = (MIN) % ((unsigned) HOST_BITS_PER_WIDE_INT); \
- unsigned word_num_ = (((MIN) / ((unsigned) HOST_BITS_PER_WIDE_INT)) \
- % BITMAP_ELEMENT_WORDS); \
+ unsigned bit_num_ = (MIN) % BITMAP_WORD_BITS; \
+ unsigned word_num_ = (MIN) / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS; \
\
\
/* Find the block the minimum bit is in. */ \
@@ -181,20 +188,19 @@ do { \
{ \
for (; word_num_ < BITMAP_ELEMENT_WORDS; word_num_++) \
{ \
- unsigned HOST_WIDE_INT word_ = ptr_->bits[word_num_]; \
+ BITMAP_WORD word_ = ptr_->bits[word_num_]; \
\
if (word_ != 0) \
{ \
- for (; bit_num_ < HOST_BITS_PER_WIDE_INT; bit_num_++) \
+ for (; bit_num_ < BITMAP_WORD_BITS; bit_num_++) \
{ \
- unsigned HOST_WIDE_INT mask_ \
- = ((unsigned HOST_WIDE_INT) 1) << bit_num_; \
+ BITMAP_WORD mask_ = ((BITMAP_WORD) 1) << bit_num_; \
\
if ((word_ & mask_) != 0) \
{ \
word_ &= ~ mask_; \
(BITNUM) = (ptr_->indx * BITMAP_ELEMENT_ALL_BITS \
- + word_num_ * HOST_BITS_PER_WIDE_INT \
+ + word_num_ * BITMAP_WORD_BITS \
+ bit_num_); \
CODE; \
\
@@ -220,9 +226,8 @@ do { \
bitmap_element *ptr1_ = (BITMAP1)->first; \
bitmap_element *ptr2_ = (BITMAP2)->first; \
unsigned int indx_ = (MIN) / BITMAP_ELEMENT_ALL_BITS; \
- unsigned bit_num_ = (MIN) % ((unsigned) HOST_BITS_PER_WIDE_INT); \
- unsigned word_num_ = (((MIN) / ((unsigned) HOST_BITS_PER_WIDE_INT)) \
- % BITMAP_ELEMENT_WORDS); \
+ unsigned bit_num_ = (MIN) % BITMAP_WORD_BITS; \
+ unsigned word_num_ = (MIN) / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS; \
\
/* Find the block the minimum bit is in in the first bitmap. */ \
while (ptr1_ != 0 && ptr1_->indx < indx_) \
@@ -248,20 +253,19 @@ do { \
\
for (; word_num_ < BITMAP_ELEMENT_WORDS; word_num_++) \
{ \
- unsigned HOST_WIDE_INT word_ = (ptr1_->bits[word_num_] \
- & ~ tmp2_->bits[word_num_]); \
+ BITMAP_WORD word_ = (ptr1_->bits[word_num_] \
+ & ~ tmp2_->bits[word_num_]); \
if (word_ != 0) \
{ \
- for (; bit_num_ < HOST_BITS_PER_WIDE_INT; bit_num_++) \
+ for (; bit_num_ < BITMAP_WORD_BITS; bit_num_++) \
{ \
- unsigned HOST_WIDE_INT mask_ \
- = ((unsigned HOST_WIDE_INT)1) << bit_num_; \
+ BITMAP_WORD mask_ = ((BITMAP_WORD) 1) << bit_num_; \
\
if ((word_ & mask_) != 0) \
{ \
word_ &= ~ mask_; \
(BITNUM) = (ptr1_->indx * BITMAP_ELEMENT_ALL_BITS \
- + word_num_ * HOST_BITS_PER_WIDE_INT \
+ + word_num_ * BITMAP_WORD_BITS \
+ bit_num_); \
\
CODE; \
@@ -287,9 +291,8 @@ do { \
bitmap_element *ptr1_ = (BITMAP1)->first; \
bitmap_element *ptr2_ = (BITMAP2)->first; \
unsigned int indx_ = (MIN) / BITMAP_ELEMENT_ALL_BITS; \
- unsigned bit_num_ = (MIN) % ((unsigned) HOST_BITS_PER_WIDE_INT); \
- unsigned word_num_ = (((MIN) / ((unsigned) HOST_BITS_PER_WIDE_INT)) \
- % BITMAP_ELEMENT_WORDS); \
+ unsigned bit_num_ = (MIN) % BITMAP_WORD_BITS; \
+ unsigned word_num_ = (MIN) / BITMAP_WORD_BITS % BITMAP_ELEMENT_WORDS; \
\
/* Find the block the minimum bit is in in the first bitmap. */ \
while (ptr1_ != 0 && ptr1_->indx < indx_) \
@@ -321,20 +324,19 @@ do { \
\
for (; word_num_ < BITMAP_ELEMENT_WORDS; word_num_++) \
{ \
- unsigned HOST_WIDE_INT word_ = (ptr1_->bits[word_num_] \
- & ptr2_->bits[word_num_]); \
+ BITMAP_WORD word_ = (ptr1_->bits[word_num_] \
+ & ptr2_->bits[word_num_]); \
if (word_ != 0) \
{ \
- for (; bit_num_ < HOST_BITS_PER_WIDE_INT; bit_num_++) \
+ for (; bit_num_ < BITMAP_WORD_BITS; bit_num_++) \
{ \
- unsigned HOST_WIDE_INT mask_ \
- = ((unsigned HOST_WIDE_INT)1) << bit_num_; \
+ BITMAP_WORD mask_ = ((BITMAP_WORD) 1) << bit_num_; \
\
if ((word_ & mask_) != 0) \
{ \
word_ &= ~ mask_; \
(BITNUM) = (ptr1_->indx * BITMAP_ELEMENT_ALL_BITS \
- + word_num_ * HOST_BITS_PER_WIDE_INT \
+ + word_num_ * BITMAP_WORD_BITS \
+ bit_num_); \
\
CODE; \
diff --git a/gcc/builtin-attrs.def b/gcc/builtin-attrs.def
index b307151d508..7bdbd628086 100644
--- a/gcc/builtin-attrs.def
+++ b/gcc/builtin-attrs.def
@@ -102,9 +102,12 @@ DEF_ATTR_TREE_LIST (ATTR_NORETURN_NOTHROW_LIST, ATTR_NORETURN, \
DEF_ATTR_TREE_LIST (ATTR_MALLOC_NOTHROW_LIST, ATTR_MALLOC, \
ATTR_NULL, ATTR_NOTHROW_LIST)
-DEF_ATTR_TREE_LIST (ATTR_NONNULL_1, ATTR_NONNULL, ATTR_LIST_1, ATTR_NULL)
-DEF_ATTR_TREE_LIST (ATTR_NONNULL_2, ATTR_NONNULL, ATTR_LIST_2, ATTR_NULL)
-DEF_ATTR_TREE_LIST (ATTR_NONNULL_3, ATTR_NONNULL, ATTR_LIST_3, ATTR_NULL)
+DEF_ATTR_TREE_LIST (ATTR_NONNULL_1, ATTR_NONNULL, ATTR_LIST_1, \
+ ATTR_NOTHROW_LIST)
+DEF_ATTR_TREE_LIST (ATTR_NONNULL_2, ATTR_NONNULL, ATTR_LIST_2, \
+ ATTR_NOTHROW_LIST)
+DEF_ATTR_TREE_LIST (ATTR_NONNULL_3, ATTR_NONNULL, ATTR_LIST_3, \
+ ATTR_NOTHROW_LIST)
/* Construct a tree for a format attribute. */
#define DEF_FORMAT_ATTRIBUTE(TYPE, FA, VALUES) \
@@ -149,13 +152,8 @@ DEF_FORMAT_ARG_ATTRIBUTE(2)
/* Functions from ISO/IEC 9899:1990. */
#define DEF_C89_ATTR(NAME, ATTRS) DEF_FN_ATTR_IDENT (NAME, ATTRS, flag_hosted)
-DEF_C89_ATTR (sprintf, ATTR_FORMAT_PRINTF_2_3)
-DEF_C89_ATTR (scanf, ATTR_FORMAT_SCANF_1_2)
DEF_C89_ATTR (fscanf, ATTR_FORMAT_SCANF_2_3)
-DEF_C89_ATTR (sscanf, ATTR_FORMAT_SCANF_2_3)
-DEF_C89_ATTR (vprintf, ATTR_FORMAT_PRINTF_1_0)
DEF_C89_ATTR (vfprintf, ATTR_FORMAT_PRINTF_2_0)
-DEF_C89_ATTR (vsprintf, ATTR_FORMAT_PRINTF_2_0)
DEF_C89_ATTR (strftime, ATTR_FORMAT_STRFTIME_3_0)
#undef DEF_C89_ATTR
@@ -164,11 +162,7 @@ DEF_C89_ATTR (strftime, ATTR_FORMAT_STRFTIME_3_0)
DEF_FN_ATTR_IDENT (NAME, ATTRS, \
(flag_hosted \
&& (flag_isoc99 || flag_noniso_default_format_attributes)))
-DEF_C99_ATTR (snprintf, ATTR_FORMAT_PRINTF_3_4)
-DEF_C99_ATTR (vsnprintf, ATTR_FORMAT_PRINTF_3_0)
-DEF_C99_ATTR (vscanf, ATTR_FORMAT_SCANF_1_0)
DEF_C99_ATTR (vfscanf, ATTR_FORMAT_SCANF_2_0)
-DEF_C99_ATTR (vsscanf, ATTR_FORMAT_SCANF_2_0)
#undef DEF_C99_ATTR
/* Functions not in any version of ISO C. */
diff --git a/gcc/builtin-types.def b/gcc/builtin-types.def
index 23b4336c2b3..d5c39b4b825 100644
--- a/gcc/builtin-types.def
+++ b/gcc/builtin-types.def
@@ -40,6 +40,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
DEF_FUNCTION_TYPE_VAR_0 (ENUM, RETURN)
DEF_FUNCTION_TYPE_VAR_1 (ENUM, RETURN, ARG1)
DEF_FUNCTION_TYPE_VAR_2 (ENUM, RETURN, ARG1, ARG2)
+ DEF_FUNCTION_TYPE_VAR_3 (ENUM, RETURN, ARG1, ARG2, ARG3)
Similar, but for function types that take variable arguments.
For example:
@@ -147,6 +148,8 @@ DEF_FUNCTION_TYPE_2 (BT_FN_INT_PTR_CONST_STRING,
BT_INT, BT_PTR, BT_CONST_STRING)
DEF_FUNCTION_TYPE_2 (BT_FN_VOID_PTR_SIZE,
BT_VOID, BT_PTR, BT_SIZE)
+DEF_FUNCTION_TYPE_2 (BT_FN_INT_CONST_STRING_VALIST_ARG,
+ BT_INT, BT_CONST_STRING, BT_VALIST_ARG)
DEF_FUNCTION_TYPE_3 (BT_FN_STRING_STRING_CONST_STRING_SIZE,
BT_STRING, BT_STRING, BT_CONST_STRING, BT_SIZE)
@@ -158,10 +161,17 @@ DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_PTR_CONST_PTR_SIZE,
BT_INT, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE)
DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_INT_SIZE,
BT_PTR, BT_PTR, BT_INT, BT_SIZE)
-DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT, BT_VOID, BT_PTR, BT_INT, BT_INT)
+DEF_FUNCTION_TYPE_3 (BT_FN_VOID_PTR_INT_INT,
+ BT_VOID, BT_PTR, BT_INT, BT_INT)
+DEF_FUNCTION_TYPE_3 (BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
+ BT_INT, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG)
+DEF_FUNCTION_TYPE_3 (BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
+ BT_INT, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG)
DEF_FUNCTION_TYPE_4 (BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR,
BT_SIZE, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_PTR)
+DEF_FUNCTION_TYPE_4 (BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
+ BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG)
DEF_FUNCTION_TYPE_VAR_0 (BT_FN_VOID_VAR, BT_VOID)
DEF_FUNCTION_TYPE_VAR_0 (BT_FN_INT_VAR, BT_INT)
@@ -176,6 +186,13 @@ DEF_FUNCTION_TYPE_VAR_1 (BT_FN_INT_CONST_STRING_VAR,
DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_PTR_CONST_STRING_VAR,
BT_INT, BT_PTR, BT_CONST_STRING)
+DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_STRING_CONST_STRING_VAR,
+ BT_INT, BT_STRING, BT_CONST_STRING)
+DEF_FUNCTION_TYPE_VAR_2 (BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
+ BT_INT, BT_CONST_STRING, BT_CONST_STRING)
+
+DEF_FUNCTION_TYPE_VAR_3 (BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
+ BT_INT, BT_STRING, BT_SIZE, BT_CONST_STRING)
DEF_POINTER_TYPE (BT_PTR_FN_VOID_VAR, BT_FN_VOID_VAR)
DEF_FUNCTION_TYPE_3 (BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE,
diff --git a/gcc/builtins.c b/gcc/builtins.c
index aa0cfaf8dd1..bfc7e4065ed 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -1344,7 +1344,12 @@ expand_builtin_apply (function, arguments, argsize)
OK_DEFER_POP;
/* Return the address of the result block. */
- return copy_addr_to_reg (XEXP (result, 0));
+ result = copy_addr_to_reg (XEXP (result, 0));
+#ifdef POINTERS_EXTEND_UNSIGNED
+ if (GET_MODE (result) != ptr_mode)
+ result = convert_memory_address (ptr_mode, result);
+#endif
+ return result;
}
/* Perform an untyped return. */
@@ -2030,7 +2035,7 @@ expand_builtin_strcpy (exp, target, mode)
enum machine_mode mode;
{
tree arglist = TREE_OPERAND (exp, 1);
- tree fn, len;
+ tree fn, len, src, dst;
if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
return 0;
@@ -2039,12 +2044,16 @@ expand_builtin_strcpy (exp, target, mode)
if (!fn)
return 0;
- len = c_strlen (TREE_VALUE (TREE_CHAIN (arglist)));
- if (len == 0)
+ src = TREE_VALUE (TREE_CHAIN (arglist));
+ len = c_strlen (src);
+ if (len == 0 || TREE_SIDE_EFFECTS (len))
return 0;
+ dst = TREE_VALUE (arglist);
len = size_binop (PLUS_EXPR, len, ssize_int (1));
- chainon (arglist, build_tree_list (NULL_TREE, len));
+ arglist = build_tree_list (NULL_TREE, len);
+ arglist = tree_cons (NULL_TREE, src, arglist);
+ arglist = tree_cons (NULL_TREE, dst, arglist);
return expand_expr (build_function_call_expr (fn, arglist),
target, mode, EXPAND_NORMAL);
}
@@ -2344,7 +2353,7 @@ expand_builtin_bzero (exp)
return result;
}
-/* Expand expression EXP, which is a call to the memcmp or the strcmp builtin.
+/* Expand expression EXP, which is a call to the memcmp built-in function.
ARGLIST is the argument list for this call. Return 0 if we failed and the
caller should emit a normal call, otherwise try to get the result in
TARGET, if convenient (and in mode MODE, if that's convenient). */
@@ -2409,7 +2418,7 @@ expand_builtin_memcmp (exp, arglist, target, mode)
return expand_expr (result, target, mode, EXPAND_NORMAL);
}
-#ifdef HAVE_cmpstrsi
+#if defined HAVE_cmpmemsi || defined HAVE_cmpstrsi
{
rtx arg1_rtx, arg2_rtx, arg3_rtx;
rtx result;
@@ -2419,8 +2428,19 @@ expand_builtin_memcmp (exp, arglist, target, mode)
= get_pointer_alignment (arg1, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
int arg2_align
= get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
- enum machine_mode insn_mode
- = insn_data[(int) CODE_FOR_cmpstrsi].operand[0].mode;
+ enum machine_mode insn_mode;
+
+#ifdef HAVE_cmpmemsi
+ if (HAVE_cmpmemsi)
+ insn_mode = insn_data[(int) CODE_FOR_cmpmemsi].operand[0].mode;
+ else
+#endif
+#ifdef HAVE_cmpstrsi
+ if (HAVE_cmpstrsi)
+ insn_mode = insn_data[(int) CODE_FOR_cmpstrsi].operand[0].mode;
+ else
+#endif
+ return 0;
/* If we don't have POINTER_TYPE, call the function. */
if (arg1_align == 0 || arg2_align == 0)
@@ -2436,11 +2456,19 @@ expand_builtin_memcmp (exp, arglist, target, mode)
arg1_rtx = get_memory_rtx (arg1);
arg2_rtx = get_memory_rtx (arg2);
arg3_rtx = expand_expr (len, NULL_RTX, VOIDmode, 0);
- if (!HAVE_cmpstrsi)
- insn = NULL_RTX;
+#ifdef HAVE_cmpmemsi
+ if (HAVE_cmpmemsi)
+ insn = gen_cmpmemsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
+ GEN_INT (MIN (arg1_align, arg2_align)));
else
+#endif
+#ifdef HAVE_cmpstrsi
+ if (HAVE_cmpstrsi)
insn = gen_cmpstrsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
GEN_INT (MIN (arg1_align, arg2_align)));
+ else
+#endif
+ abort ();
if (insn)
emit_insn (insn);
@@ -2481,7 +2509,7 @@ expand_builtin_strcmp (exp, target, mode)
enum machine_mode mode;
{
tree arglist = TREE_OPERAND (exp, 1);
- tree arg1, arg2, len, len2, fn;
+ tree arg1, arg2;
const char *p1, *p2;
if (!validate_arglist (arglist, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
@@ -2517,49 +2545,89 @@ expand_builtin_strcmp (exp, target, mode)
return expand_expr (result, target, mode, EXPAND_NORMAL);
}
- len = c_strlen (arg1);
- len2 = c_strlen (arg2);
-
- if (len)
- len = size_binop (PLUS_EXPR, ssize_int (1), len);
+#ifdef HAVE_cmpstrsi
+ if (HAVE_cmpstrsi)
+ {
+ tree len, len1, len2;
+ rtx arg1_rtx, arg2_rtx, arg3_rtx;
+ rtx result, insn;
+
+ int arg1_align
+ = get_pointer_alignment (arg1, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
+ int arg2_align
+ = get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
+ enum machine_mode insn_mode
+ = insn_data[(int) CODE_FOR_cmpstrsi].operand[0].mode;
+
+ len1 = c_strlen (arg1);
+ len2 = c_strlen (arg2);
+
+ if (len1)
+ len1 = size_binop (PLUS_EXPR, ssize_int (1), len1);
+ if (len2)
+ len2 = size_binop (PLUS_EXPR, ssize_int (1), len2);
+
+ /* If we don't have a constant length for the first, use the length
+ of the second, if we know it. We don't require a constant for
+ this case; some cost analysis could be done if both are available
+ but neither is constant. For now, assume they're equally cheap
+ unless one has side effects. If both strings have constant lengths,
+ use the smaller. */
+
+ if (!len1)
+ len = len2;
+ else if (!len2)
+ len = len1;
+ else if (TREE_SIDE_EFFECTS (len1))
+ len = len2;
+ else if (TREE_SIDE_EFFECTS (len2))
+ len = len1;
+ else if (TREE_CODE (len1) != INTEGER_CST)
+ len = len2;
+ else if (TREE_CODE (len2) != INTEGER_CST)
+ len = len1;
+ else if (tree_int_cst_lt (len1, len2))
+ len = len1;
+ else
+ len = len2;
- if (len2)
- len2 = size_binop (PLUS_EXPR, ssize_int (1), len2);
+ /* If both arguments have side effects, we cannot optimize. */
+ if (!len || TREE_SIDE_EFFECTS (len))
+ return 0;
- /* If we don't have a constant length for the first, use the length
- of the second, if we know it. We don't require a constant for
- this case; some cost analysis could be done if both are available
- but neither is constant. For now, assume they're equally cheap
- unless one has side effects.
+ /* If we don't have POINTER_TYPE, call the function. */
+ if (arg1_align == 0 || arg2_align == 0)
+ return 0;
- If both strings have constant lengths, use the smaller. This
- could arise if optimization results in strcpy being called with
- two fixed strings, or if the code was machine-generated. We should
- add some code to the `memcmp' handler below to deal with such
- situations, someday. */
+ /* Make a place to write the result of the instruction. */
+ result = target;
+ if (! (result != 0
+ && GET_CODE (result) == REG
+ && GET_MODE (result) == insn_mode
+ && REGNO (result) >= FIRST_PSEUDO_REGISTER))
+ result = gen_reg_rtx (insn_mode);
- if (!len || TREE_CODE (len) != INTEGER_CST)
- {
- if (len2 && !TREE_SIDE_EFFECTS (len2))
- len = len2;
- else if (len == 0)
+ arg1_rtx = get_memory_rtx (arg1);
+ arg2_rtx = get_memory_rtx (arg2);
+ arg3_rtx = expand_expr (len, NULL_RTX, VOIDmode, 0);
+ insn = gen_cmpstrsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
+ GEN_INT (MIN (arg1_align, arg2_align)));
+ if (!insn)
return 0;
- }
- else if (len2 && TREE_CODE (len2) == INTEGER_CST
- && tree_int_cst_lt (len2, len))
- len = len2;
-
- /* If both arguments have side effects, we cannot optimize. */
- if (TREE_SIDE_EFFECTS (len))
- return 0;
- fn = built_in_decls[BUILT_IN_MEMCMP];
- if (!fn)
- return 0;
+ emit_insn (insn);
- chainon (arglist, build_tree_list (NULL_TREE, len));
- return expand_expr (build_function_call_expr (fn, arglist),
- target, mode, EXPAND_NORMAL);
+ /* Return the value in the proper mode for this function. */
+ mode = TYPE_MODE (TREE_TYPE (exp));
+ if (GET_MODE (result) == mode)
+ return result;
+ if (target == 0)
+ return convert_to_mode (mode, result, 0);
+ convert_move (target, result, 0);
+ return target;
+ }
+#endif
+ return 0;
}
/* Expand expression EXP, which is a call to the strncmp builtin. Return 0
@@ -2573,7 +2641,6 @@ expand_builtin_strncmp (exp, target, mode)
enum machine_mode mode;
{
tree arglist = TREE_OPERAND (exp, 1);
- tree fn, newarglist, len = 0;
tree arg1, arg2, arg3;
const char *p1, *p2;
@@ -2627,41 +2694,94 @@ expand_builtin_strncmp (exp, target, mode)
}
/* If c_strlen can determine an expression for one of the string
- lengths, and it doesn't have side effects, then call
- expand_builtin_memcmp() using length MIN(strlen(string)+1, arg3). */
-
- /* Perhaps one of the strings is really constant, if so prefer
- that constant length over the other string's length. */
- if (p1)
- len = c_strlen (arg1);
- else if (p2)
- len = c_strlen (arg2);
-
- /* If we still don't have a len, try either string arg as long
- as they don't have side effects. */
- if (!len && !TREE_SIDE_EFFECTS (arg1))
- len = c_strlen (arg1);
- if (!len && !TREE_SIDE_EFFECTS (arg2))
- len = c_strlen (arg2);
- /* If we still don't have a length, punt. */
- if (!len)
- return 0;
+ lengths, and it doesn't have side effects, then emit cmpstrsi
+ using length MIN(strlen(string)+1, arg3). */
+#ifdef HAVE_cmpstrsi
+ if (HAVE_cmpstrsi)
+ {
+ tree len, len1, len2;
+ rtx arg1_rtx, arg2_rtx, arg3_rtx;
+ rtx result, insn;
+
+ int arg1_align
+ = get_pointer_alignment (arg1, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
+ int arg2_align
+ = get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
+ enum machine_mode insn_mode
+ = insn_data[(int) CODE_FOR_cmpstrsi].operand[0].mode;
+
+ len1 = c_strlen (arg1);
+ len2 = c_strlen (arg2);
+
+ if (len1)
+ len1 = size_binop (PLUS_EXPR, ssize_int (1), len1);
+ if (len2)
+ len2 = size_binop (PLUS_EXPR, ssize_int (1), len2);
+
+ /* If we don't have a constant length for the first, use the length
+ of the second, if we know it. We don't require a constant for
+ this case; some cost analysis could be done if both are available
+ but neither is constant. For now, assume they're equally cheap,
+ unless one has side effects. If both strings have constant lengths,
+ use the smaller. */
+
+ if (!len1)
+ len = len2;
+ else if (!len2)
+ len = len1;
+ else if (TREE_SIDE_EFFECTS (len1))
+ len = len2;
+ else if (TREE_SIDE_EFFECTS (len2))
+ len = len1;
+ else if (TREE_CODE (len1) != INTEGER_CST)
+ len = len2;
+ else if (TREE_CODE (len2) != INTEGER_CST)
+ len = len1;
+ else if (tree_int_cst_lt (len1, len2))
+ len = len1;
+ else
+ len = len2;
- fn = built_in_decls[BUILT_IN_MEMCMP];
- if (!fn)
- return 0;
+ /* If both arguments have side effects, we cannot optimize. */
+ if (!len || TREE_SIDE_EFFECTS (len))
+ return 0;
- /* Add one to the string length. */
- len = fold (size_binop (PLUS_EXPR, len, ssize_int (1)));
+ /* The actual new length parameter is MIN(len,arg3). */
+ len = fold (build (MIN_EXPR, TREE_TYPE (len), len, arg3));
- /* The actual new length parameter is MIN(len,arg3). */
- len = fold (build (MIN_EXPR, TREE_TYPE (len), len, arg3));
+ /* If we don't have POINTER_TYPE, call the function. */
+ if (arg1_align == 0 || arg2_align == 0)
+ return 0;
- newarglist = build_tree_list (NULL_TREE, len);
- newarglist = tree_cons (NULL_TREE, arg2, newarglist);
- newarglist = tree_cons (NULL_TREE, arg1, newarglist);
- return expand_expr (build_function_call_expr (fn, newarglist),
- target, mode, EXPAND_NORMAL);
+ /* Make a place to write the result of the instruction. */
+ result = target;
+ if (! (result != 0
+ && GET_CODE (result) == REG
+ && GET_MODE (result) == insn_mode
+ && REGNO (result) >= FIRST_PSEUDO_REGISTER))
+ result = gen_reg_rtx (insn_mode);
+
+ arg1_rtx = get_memory_rtx (arg1);
+ arg2_rtx = get_memory_rtx (arg2);
+ arg3_rtx = expand_expr (len, NULL_RTX, VOIDmode, 0);
+ insn = gen_cmpstrsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
+ GEN_INT (MIN (arg1_align, arg2_align)));
+ if (!insn)
+ return 0;
+
+ emit_insn (insn);
+
+ /* Return the value in the proper mode for this function. */
+ mode = TYPE_MODE (TREE_TYPE (exp));
+ if (GET_MODE (result) == mode)
+ return result;
+ if (target == 0)
+ return convert_to_mode (mode, result, 0);
+ convert_move (target, result, 0);
+ return target;
+ }
+#endif
+ return 0;
}
/* Expand expression EXP, which is a call to the strcat builtin.
@@ -3472,8 +3592,12 @@ expand_builtin_fputs (arglist, ignore, unlocked)
/* FALLTHROUGH */
case 1: /* length is greater than 1, call fwrite. */
{
- tree string_arg = TREE_VALUE (arglist);
+ tree string_arg;
+ /* If optimizing for size keep fputs. */
+ if (optimize_size)
+ return 0;
+ string_arg = TREE_VALUE (arglist);
/* New argument list transforming fputs(string, stream) to
fwrite(string, 1, len, stream). */
arglist = build_tree_list (NULL_TREE, TREE_VALUE (TREE_CHAIN (arglist)));
@@ -3519,7 +3643,7 @@ expand_builtin_expect (arglist, target)
target = expand_expr (exp, target, VOIDmode, EXPAND_NORMAL);
/* Don't bother with expected value notes for integral constants. */
- if (GET_CODE (target) != CONST_INT)
+ if (flag_guess_branch_prob && GET_CODE (target) != CONST_INT)
{
/* We do need to force this into a register so that we can be
moderately sure to be able to correctly interpret the branch
@@ -3558,31 +3682,25 @@ expand_builtin_expect_jump (exp, if_false_label, if_true_label)
if (TREE_CODE (TREE_TYPE (arg1)) == INTEGER_TYPE
&& (integer_zerop (arg1) || integer_onep (arg1)))
{
- int num_jumps = 0;
- rtx insn;
-
- /* If we fail to locate an appropriate conditional jump, we'll
- fall back to normal evaluation. Ensure that the expression
- can be re-evaluated. */
- switch (unsafe_for_reeval (arg0))
- {
- case 0: /* Safe. */
- break;
-
- case 1: /* Mildly unsafe. */
- arg0 = unsave_expr (arg0);
- break;
-
- case 2: /* Wildly unsafe. */
- return NULL_RTX;
- }
+ rtx insn, drop_through_label;
/* Expand the jump insns. */
start_sequence ();
do_jump (arg0, if_false_label, if_true_label);
ret = get_insns ();
+
+ drop_through_label = get_last_insn ();
+ if (drop_through_label && GET_CODE (drop_through_label) == NOTE)
+ drop_through_label = prev_nonnote_insn (drop_through_label);
+ if (drop_through_label && GET_CODE (drop_through_label) != CODE_LABEL)
+ drop_through_label = NULL_RTX;
end_sequence ();
+ if (! if_true_label)
+ if_true_label = drop_through_label;
+ if (! if_false_label)
+ if_false_label = drop_through_label;
+
/* Now that the __builtin_expect has been validated, go through and add
the expect's to each of the conditional jumps. If we run into an
error, just give up and generate the 'safe' code of doing a SCC
@@ -3644,18 +3762,12 @@ expand_builtin_expect_jump (exp, if_false_label, if_true_label)
else if (label != if_true_label)
goto do_next_insn;
- num_jumps++;
predict_insn_def (insn, PRED_BUILTIN_EXPECT, taken);
}
do_next_insn:
insn = next;
}
-
- /* If no jumps were modified, fail and do __builtin_expect the normal
- way. */
- if (num_jumps == 0)
- ret = NULL_RTX;
}
return ret;
@@ -3691,6 +3803,9 @@ expand_builtin (exp, target, subtarget, mode, ignore)
tree arglist = TREE_OPERAND (exp, 1);
enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);
+ /* Perform postincrements before expanding builtin functions.  */
+ emit_queue ();
+
if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD)
return (*targetm.expand_builtin) (exp, target, subtarget, mode, ignore);
@@ -4037,8 +4152,8 @@ expand_builtin (exp, target, subtarget, mode, ignore)
case BUILT_IN_DWARF_CFA:
return virtual_cfa_rtx;
#ifdef DWARF2_UNWIND_INFO
- case BUILT_IN_DWARF_FP_REGNUM:
- return expand_builtin_dwarf_fp_regnum ();
+ case BUILT_IN_DWARF_SP_COLUMN:
+ return expand_builtin_dwarf_sp_column ();
case BUILT_IN_INIT_DWARF_REG_SIZES:
expand_builtin_init_dwarf_reg_sizes (TREE_VALUE (arglist));
return const0_rtx;
diff --git a/gcc/builtins.def b/gcc/builtins.def
index c214128efe7..c208b751629 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -112,9 +112,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Like DEF_LIB_BUILTIN, except that the function is only a part of
the standard in C99 or above. */
#undef DEF_C99_BUILTIN
-#define DEF_C99_BUILTIN(ENUM, NAME, TYPE) \
+#define DEF_C99_BUILTIN(ENUM, NAME, TYPE, ATTRS) \
DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, TYPE, TYPE, \
- true, true, !flag_isoc99, ATTR_NOTHROW_LIST)
+ true, true, !flag_isoc99, ATTRS)
/* Like DEF_LIB_BUILTIN, except that the function is expanded in the
front-end. */
@@ -171,37 +171,48 @@ DEF_LIB_ALWAYS_BUILTIN(BUILT_IN_FABSL,
DEF_C99_BUILTIN(BUILT_IN_LLABS,
"__builtin_llabs",
- BT_FN_LONGLONG_LONGLONG)
+ BT_FN_LONGLONG_LONGLONG,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_IMAXABS,
"__builtin_imaxabs",
- BT_FN_INTMAX_INTMAX)
+ BT_FN_INTMAX_INTMAX,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJ,
"__builtin_conj",
- BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJF,
"__builtin_conjf",
- BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT)
+ BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CONJL,
"__builtin_conjl",
- BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREAL,
"__builtin_creal",
- BT_FN_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREALF,
"__builtin_crealf",
- BT_FN_FLOAT_COMPLEX_FLOAT)
+ BT_FN_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CREALL,
"__builtin_creall",
- BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAG,
"__builtin_cimag",
- BT_FN_DOUBLE_COMPLEX_DOUBLE)
+ BT_FN_DOUBLE_COMPLEX_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAGF,
"__builtin_cimagf",
- BT_FN_FLOAT_COMPLEX_FLOAT)
+ BT_FN_FLOAT_COMPLEX_FLOAT,
+ ATTR_NOTHROW_LIST)
DEF_C99_BUILTIN(BUILT_IN_CIMAGL,
"__builtin_cimagl",
- BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE)
+ BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE,
+ ATTR_NOTHROW_LIST)
DEF_UNUSED_BUILTIN(BUILT_IN_DIV)
DEF_UNUSED_BUILTIN(BUILT_IN_LDIV)
@@ -514,27 +525,69 @@ DEF_GCC_BUILTIN(BUILT_IN_PREFETCH,
BT_FN_VOID_CONST_PTR_VAR,
ATTR_NULL)
-/* Stdio builtins. */
-DEF_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR,
- "__builtin_putchar",
- BT_FN_INT_INT,
- ATTR_NOTHROW_LIST)
-DEF_FALLBACK_BUILTIN(BUILT_IN_PUTS,
- "__builtin_puts",
- BT_FN_INT_CONST_STRING,
- ATTR_NOTHROW_LIST)
+/* stdio.h builtins (without FILE *). */
+
DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF,
"__builtin_printf",
BT_FN_INT_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_1_2)
-DEF_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
- "__builtin_fputc",
- BT_FN_INT_INT_PTR,
- ATTR_NOTHROW_LIST)
+DEF_LIB_BUILTIN(BUILT_IN_PUTCHAR,
+ "__builtin_putchar",
+ BT_FN_INT_INT,
+ ATTR_NOTHROW_LIST)
+DEF_LIB_BUILTIN(BUILT_IN_PUTS,
+ "__builtin_puts",
+ BT_FN_INT_CONST_STRING,
+ ATTR_NOTHROW_LIST)
+DEF_C99_BUILTIN(BUILT_IN_SNPRINTF,
+ "__builtin_snprintf",
+ BT_FN_INT_STRING_SIZE_CONST_STRING_VAR,
+ ATTR_FORMAT_PRINTF_3_4)
+DEF_LIB_BUILTIN(BUILT_IN_SPRINTF,
+ "__builtin_sprintf",
+ BT_FN_INT_STRING_CONST_STRING_VAR,
+ ATTR_FORMAT_PRINTF_2_3)
+DEF_LIB_BUILTIN(BUILT_IN_SCANF,
+ "__builtin_scanf",
+ BT_FN_INT_CONST_STRING_VAR,
+ ATTR_FORMAT_SCANF_1_2)
+DEF_LIB_BUILTIN(BUILT_IN_SSCANF,
+ "__builtin_sscanf",
+ BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
+ ATTR_FORMAT_SCANF_2_3)
+DEF_LIB_BUILTIN(BUILT_IN_VPRINTF,
+ "__builtin_vprintf",
+ BT_FN_INT_CONST_STRING_VALIST_ARG,
+ ATTR_FORMAT_PRINTF_1_0)
+DEF_C99_BUILTIN(BUILT_IN_VSCANF,
+ "__builtin_vscanf",
+ BT_FN_INT_CONST_STRING_VALIST_ARG,
+ ATTR_FORMAT_SCANF_1_0)
+DEF_C99_BUILTIN(BUILT_IN_VSSCANF,
+ "__builtin_vsscanf",
+ BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
+ ATTR_FORMAT_SCANF_2_0)
+DEF_C99_BUILTIN(BUILT_IN_VSNPRINTF,
+ "__builtin_vsnprintf",
+ BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
+ ATTR_FORMAT_PRINTF_3_0)
+DEF_LIB_BUILTIN(BUILT_IN_VSPRINTF,
+ "__builtin_vsprintf",
+ BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
+ ATTR_FORMAT_PRINTF_2_0)
+
+
+/* stdio.h builtins (with FILE *). */
+
/* Declare the __builtin_ style with arguments and the regular style
without them. We rely on stdio.h to supply the arguments for the
regular style declaration since we had to use void* instead of
FILE* in the __builtin_ prototype supplied here. */
+
+DEF_FALLBACK_BUILTIN(BUILT_IN_FPUTC,
+ "__builtin_fputc",
+ BT_FN_INT_INT_PTR,
+ ATTR_NOTHROW_LIST)
DEF_BUILTIN (BUILT_IN_FPUTS,
"__builtin_fputs",
BUILT_IN_NORMAL,
@@ -550,7 +603,7 @@ DEF_FRONT_END_LIB_BUILTIN(BUILT_IN_FPRINTF,
BT_FN_INT_PTR_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_2_3)
-/* Stdio unlocked builtins. */
+/* stdio unlocked builtins (without FILE *). */
DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_PUTCHAR_UNLOCKED,
"__builtin_putchar_unlocked",
@@ -562,13 +615,17 @@ DEF_EXT_FRONT_END_LIB_BUILTIN(BUILT_IN_PRINTF_UNLOCKED,
"__builtin_printf_unlocked",
BT_FN_INT_CONST_STRING_VAR,
ATTR_FORMAT_PRINTF_1_2)
-DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
- "__builtin_fputc_unlocked",
- BT_FN_INT_INT_PTR)
+
+/* stdio unlocked builtins (with FILE *). */
+
/* Declare the __builtin_ style with arguments and the regular style
without them. We rely on stdio.h to supply the arguments for the
regular style declaration since we had to use void* instead of
FILE* in the __builtin_ prototype supplied here. */
+
+DEF_EXT_FALLBACK_BUILTIN(BUILT_IN_FPUTC_UNLOCKED,
+ "__builtin_fputc_unlocked",
+ BT_FN_INT_INT_PTR)
DEF_BUILTIN (BUILT_IN_FPUTS_UNLOCKED,
"__builtin_fputs_unlocked",
BUILT_IN_NORMAL,
@@ -618,8 +675,8 @@ DEF_GCC_BUILTIN(BUILT_IN_DWARF_CFA,
"__builtin_dwarf_cfa",
BT_FN_PTR,
ATTR_NULL)
-DEF_GCC_BUILTIN(BUILT_IN_DWARF_FP_REGNUM,
- "__builtin_dwarf_fp_regnum",
+DEF_GCC_BUILTIN(BUILT_IN_DWARF_SP_COLUMN,
+ "__builtin_dwarf_sp_column",
BT_FN_UNSIGNED,
ATTR_NULL)
DEF_GCC_BUILTIN(BUILT_IN_INIT_DWARF_REG_SIZES,
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 76f79274861..b40a35aecb5 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -39,6 +39,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "langhooks.h"
#include "except.h" /* For USING_SJLJ_EXCEPTIONS. */
#include "tree-inline.h"
+#include "c-tree.h"
cpp_reader *parse_in; /* Declared in c-pragma.h. */
@@ -768,6 +769,8 @@ static tree handle_nonnull_attribute PARAMS ((tree *, tree, tree, int,
bool *));
static tree handle_nothrow_attribute PARAMS ((tree *, tree, tree, int,
bool *));
+static tree handle_cleanup_attribute PARAMS ((tree *, tree, tree, int,
+ bool *));
static tree vector_size_helper PARAMS ((tree, tree));
static void check_function_nonnull PARAMS ((tree, tree));
@@ -856,6 +859,8 @@ const struct attribute_spec c_common_attribute_table[] =
{ "nothrow", 0, 0, true, false, false,
handle_nothrow_attribute },
{ "may_alias", 0, 0, false, true, false, NULL },
+ { "cleanup", 1, 1, true, false, false,
+ handle_cleanup_attribute },
{ NULL, 0, 0, false, false, false, NULL }
};
@@ -3185,6 +3190,7 @@ c_common_nodes_and_builtins ()
#define DEF_FUNCTION_TYPE_VAR_0(NAME, RETURN) NAME,
#define DEF_FUNCTION_TYPE_VAR_1(NAME, RETURN, ARG1) NAME,
#define DEF_FUNCTION_TYPE_VAR_2(NAME, RETURN, ARG1, ARG2) NAME,
+#define DEF_FUNCTION_TYPE_VAR_3(NAME, RETURN, ARG1, ARG2, ARG3) NAME,
#define DEF_POINTER_TYPE(NAME, TYPE) NAME,
#include "builtin-types.def"
#undef DEF_PRIMITIVE_TYPE
@@ -3196,6 +3202,7 @@ c_common_nodes_and_builtins ()
#undef DEF_FUNCTION_TYPE_VAR_0
#undef DEF_FUNCTION_TYPE_VAR_1
#undef DEF_FUNCTION_TYPE_VAR_2
+#undef DEF_FUNCTION_TYPE_VAR_3
#undef DEF_POINTER_TYPE
BT_LAST
};
@@ -3390,8 +3397,6 @@ c_common_nodes_and_builtins ()
= build_pointer_type (build_qualified_type
(char_type_node, TYPE_QUAL_CONST));
- (*targetm.init_builtins) ();
-
/* This is special for C++ so functions can be overloaded. */
wchar_type_node = get_identifier (MODIFIED_WCHAR_TYPE);
wchar_type_node = TREE_TYPE (identifier_global_value (wchar_type_node));
@@ -3515,6 +3520,19 @@ c_common_nodes_and_builtins ()
tree_cons (NULL_TREE, \
builtin_types[(int) ARG2], \
NULL_TREE)));
+
+#define DEF_FUNCTION_TYPE_VAR_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
+ builtin_types[(int) ENUM] \
+ = build_function_type \
+ (builtin_types[(int) RETURN], \
+ tree_cons (NULL_TREE, \
+ builtin_types[(int) ARG1], \
+ tree_cons (NULL_TREE, \
+ builtin_types[(int) ARG2], \
+ tree_cons (NULL_TREE, \
+ builtin_types[(int) ARG3], \
+ NULL_TREE))));
+
#define DEF_POINTER_TYPE(ENUM, TYPE) \
builtin_types[(int) ENUM] \
= build_pointer_type (builtin_types[(int) TYPE]);
@@ -3526,6 +3544,8 @@ c_common_nodes_and_builtins ()
#undef DEF_FUNCTION_TYPE_4
#undef DEF_FUNCTION_TYPE_VAR_0
#undef DEF_FUNCTION_TYPE_VAR_1
+#undef DEF_FUNCTION_TYPE_VAR_2
+#undef DEF_FUNCTION_TYPE_VAR_3
#undef DEF_POINTER_TYPE
if (!c_attrs_initialized)
@@ -3563,6 +3583,8 @@ c_common_nodes_and_builtins ()
#include "builtins.def"
#undef DEF_BUILTIN
+ (*targetm.init_builtins) ();
+
main_identifier_node = get_identifier ("main");
}
@@ -4894,11 +4916,11 @@ cb_register_builtins (pfile)
cpp_define (pfile, "__GXX_WEAK__=1");
else
cpp_define (pfile, "__GXX_WEAK__=0");
- if (flag_exceptions)
- cpp_define (pfile, "__EXCEPTIONS");
if (warn_deprecated)
cpp_define (pfile, "__DEPRECATED");
}
+ if (flag_exceptions)
+ cpp_define (pfile, "__EXCEPTIONS");
/* represents the C++ ABI version, always defined so it can be used while
preprocessing C and assembler. */
@@ -5383,16 +5405,19 @@ handle_always_inline_attribute (node, name, args, flags, no_add_attrs)
struct attribute_spec.handler. */
static tree
-handle_used_attribute (node, name, args, flags, no_add_attrs)
- tree *node;
+handle_used_attribute (pnode, name, args, flags, no_add_attrs)
+ tree *pnode;
tree name;
tree args ATTRIBUTE_UNUSED;
int flags ATTRIBUTE_UNUSED;
bool *no_add_attrs;
{
- if (TREE_CODE (*node) == FUNCTION_DECL)
- TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (*node))
- = TREE_USED (*node) = 1;
+ tree node = *pnode;
+
+ if (TREE_CODE (node) == FUNCTION_DECL
+ || (TREE_CODE (node) == VAR_DECL && TREE_STATIC (node)))
+ TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (node))
+ = TREE_USED (node) = 1;
else
{
warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
@@ -6055,6 +6080,55 @@ handle_pure_attribute (node, name, args, flags, no_add_attrs)
return NULL_TREE;
}
+/* Handle a "cleanup" attribute; arguments as in
+ struct attribute_spec.handler. */
+
+static tree
+handle_cleanup_attribute (node, name, args, flags, no_add_attrs)
+ tree *node;
+ tree name;
+ tree args;
+ int flags ATTRIBUTE_UNUSED;
+ bool *no_add_attrs;
+{
+ tree decl = *node;
+ tree cleanup_id, cleanup_decl;
+
+ /* ??? Could perhaps support cleanups on TREE_STATIC, much like we do
+ for global destructors in C++. This requires infrastructure that
+ we don't have generically at the moment. It's also not a feature
+ we'd be missing too much, since we do have attribute constructor. */
+ if (TREE_CODE (decl) != VAR_DECL || TREE_STATIC (decl))
+ {
+ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
+ *no_add_attrs = true;
+ return NULL_TREE;
+ }
+
+ /* Verify that the argument is a function in scope. */
+ /* ??? We could support pointers to functions here as well, if
+ that was considered desirable. */
+ cleanup_id = TREE_VALUE (args);
+ if (TREE_CODE (cleanup_id) != IDENTIFIER_NODE)
+ {
+ error ("cleanup arg not an identifier");
+ *no_add_attrs = true;
+ return NULL_TREE;
+ }
+ cleanup_decl = lookup_name (cleanup_id);
+ if (!cleanup_decl || TREE_CODE (cleanup_decl) != FUNCTION_DECL)
+ {
+ error ("cleanup arg not a function");
+ *no_add_attrs = true;
+ return NULL_TREE;
+ }
+
+ /* That the function has proper type is checked with the
+ eventual call to build_function_call. */
+
+ return NULL_TREE;
+}
+
/* Handle a "deprecated" attribute; arguments as in
struct attribute_spec.handler. */
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index bb7d881ba80..543a67480ab 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -46,6 +46,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "timevar.h"
#include "c-common.h"
#include "c-pragma.h"
+#include "libfuncs.h"
+#include "except.h"
/* In grokdeclarator, distinguish syntactic contexts of declarators. */
enum decl_context
@@ -283,6 +285,8 @@ static tree c_make_fname_decl PARAMS ((tree, int));
static void c_expand_body PARAMS ((tree, int, int));
static void warn_if_shadowing PARAMS ((tree, tree));
static bool flexible_array_type_p PARAMS ((tree));
+static int field_decl_cmp PARAMS ((const PTR, const PTR));
+static tree set_save_expr_context PARAMS ((tree *, int *, void *));
/* States indicating how grokdeclarator() should handle declspecs marked
with __attribute__((deprecated)). An object declared as
@@ -1138,6 +1142,13 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
}
}
error_with_decl (olddecl, "previous declaration of `%s'");
+
+ /* This is safer because the initializer might contain references
+ to variables that were declared between olddecl and newdecl. This
+ will make the initializer invalid for olddecl in case it gets
+ assigned to olddecl below. */
+ if (TREE_CODE (newdecl) == VAR_DECL)
+ DECL_INITIAL (newdecl) = 0;
}
/* TLS cannot follow non-TLS declaration. */
else if (TREE_CODE (olddecl) == VAR_DECL && TREE_CODE (newdecl) == VAR_DECL
@@ -1568,6 +1579,15 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
Update OLDDECL to be the same. */
DECL_ATTRIBUTES (olddecl) = DECL_ATTRIBUTES (newdecl);
+ /* If OLDDECL had its DECL_RTL instantiated, re-invoke make_decl_rtl
+ so that encode_section_info has a chance to look at the new decl
+ flags and attributes. */
+ if (DECL_RTL_SET_P (olddecl)
+ && (TREE_CODE (olddecl) == FUNCTION_DECL
+ || (TREE_CODE (olddecl) == VAR_DECL
+ && TREE_STATIC (olddecl))))
+ make_decl_rtl (olddecl, NULL);
+
return 1;
}
@@ -1992,8 +2012,10 @@ pushdecl (x)
while (TREE_CODE (element) == ARRAY_TYPE)
element = TREE_TYPE (element);
- if (TREE_CODE (element) == RECORD_TYPE
- || TREE_CODE (element) == UNION_TYPE)
+ if ((TREE_CODE (element) == RECORD_TYPE
+ || TREE_CODE (element) == UNION_TYPE)
+ && (TREE_CODE (x) != TYPE_DECL
+ || TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE))
b->incomplete_list = tree_cons (NULL_TREE, x, b->incomplete_list);
}
}
@@ -3160,6 +3182,41 @@ finish_decl (decl, init, asmspec_tree)
computing them in the following function definition. */
if (current_binding_level == global_binding_level)
get_pending_sizes ();
+
+ /* Install a cleanup (aka destructor) if one was given. */
+ if (TREE_CODE (decl) == VAR_DECL && !TREE_STATIC (decl))
+ {
+ tree attr = lookup_attribute ("cleanup", DECL_ATTRIBUTES (decl));
+ if (attr)
+ {
+ static bool eh_initialized_p;
+
+ tree cleanup_id = TREE_VALUE (TREE_VALUE (attr));
+ tree cleanup_decl = lookup_name (cleanup_id);
+ tree cleanup;
+
+ /* Build "cleanup(&decl)" for the destructor. */
+ cleanup = build_unary_op (ADDR_EXPR, decl, 0);
+ cleanup = build_tree_list (NULL_TREE, cleanup);
+ cleanup = build_function_call (cleanup_decl, cleanup);
+
+ /* Don't warn about decl unused; the cleanup uses it. */
+ TREE_USED (decl) = 1;
+
+ /* Initialize EH, if we've been told to do so. */
+ if (flag_exceptions && !eh_initialized_p)
+ {
+ eh_initialized_p = true;
+ eh_personality_libfunc
+ = init_one_libfunc (USING_SJLJ_EXCEPTIONS
+ ? "__gcc_personality_sj0"
+ : "__gcc_personality_v0");
+ using_eh_for_cleanups ();
+ }
+
+ add_stmt (build_stmt (CLEANUP_STMT, decl, cleanup));
+ }
+ }
}
/* Given a parsed parameter declaration,
@@ -4065,7 +4122,20 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
}
if (size_varies)
- itype = variable_size (itype);
+ {
+ /* We must be able to distinguish the
+ SAVE_EXPR_CONTEXT for the variably-sized type
+ so that we can set it correctly in
+ set_save_expr_context. The convention is
+ that all SAVE_EXPRs that need to be reset
+ have NULL_TREE for their SAVE_EXPR_CONTEXT. */
+ tree cfd = current_function_decl;
+ if (decl_context == PARM)
+ current_function_decl = NULL_TREE;
+ itype = variable_size (itype);
+ if (decl_context == PARM)
+ current_function_decl = cfd;
+ }
itype = build_index_type (itype);
}
}
@@ -4544,6 +4614,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
needed, and let dwarf2 know that the function is inlinable. */
else if (flag_inline_trees == 2 && initialized)
{
+ if (!DECL_INLINE (decl))
+ DID_INLINE_FUNC (decl) = 1;
DECL_INLINE (decl) = 1;
DECL_DECLARED_INLINE_P (decl) = 0;
}
@@ -5045,6 +5117,28 @@ grokfield (filename, line, declarator, declspecs, width)
return value;
}
+/* Function to help qsort sort FIELD_DECLs by name order. */
+
+
+static int
+field_decl_cmp (xp, yp)
+ const PTR xp;
+ const PTR yp;
+{
+ tree *x = (tree *)xp, *y = (tree *)yp;
+
+ if (DECL_NAME (*x) == DECL_NAME (*y))
+ return 0;
+ if (DECL_NAME (*x) == NULL)
+ return -1;
+ if (DECL_NAME (*y) == NULL)
+ return 1;
+ if (DECL_NAME (*x) < DECL_NAME (*y))
+ return -1;
+ return 1;
+}
+
+
/* Fill in the fields of a RECORD_TYPE or UNION_TYPE node, T.
FIELDLIST is a chain of FIELD_DECL nodes for the fields.
ATTRIBUTES are attributes to be applied to the structure. */
@@ -5217,18 +5311,6 @@ finish_struct (t, fieldlist, attributes)
}
}
- else if (TREE_TYPE (x) != error_mark_node)
- {
- unsigned int min_align = (DECL_PACKED (x) ? BITS_PER_UNIT
- : TYPE_ALIGN (TREE_TYPE (x)));
-
- /* Non-bit-fields are aligned for their type, except packed
- fields which require only BITS_PER_UNIT alignment. */
- DECL_ALIGN (x) = MAX (DECL_ALIGN (x), min_align);
- if (! DECL_PACKED (x))
- DECL_USER_ALIGN (x) |= TYPE_USER_ALIGN (TREE_TYPE (x));
- }
-
DECL_INITIAL (x) = 0;
/* Detect flexible array member in an invalid context. */
@@ -5238,12 +5320,21 @@ finish_struct (t, fieldlist, attributes)
&& TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (x))) == NULL_TREE)
{
if (TREE_CODE (t) == UNION_TYPE)
- error_with_decl (x, "flexible array member in union");
+ {
+ error_with_decl (x, "flexible array member in union");
+ TREE_TYPE (x) = error_mark_node;
+ }
else if (TREE_CHAIN (x) != NULL_TREE)
- error_with_decl (x, "flexible array member not at end of struct");
+ {
+ error_with_decl (x, "flexible array member not at end of struct");
+ TREE_TYPE (x) = error_mark_node;
+ }
else if (! saw_named_field)
- error_with_decl (x, "flexible array member in otherwise empty struct");
- }
+ {
+ error_with_decl (x, "flexible array member in otherwise empty struct");
+ TREE_TYPE (x) = error_mark_node;
+ }
+ }
if (pedantic && TREE_CODE (t) == RECORD_TYPE
&& flexible_array_type_p (TREE_TYPE (x)))
@@ -5301,6 +5392,53 @@ finish_struct (t, fieldlist, attributes)
TYPE_FIELDS (t) = fieldlist;
+ /* If there are lots of fields, sort so we can look through them fast.
+ We arbitrarily consider 16 or more elts to be "a lot". */
+
+ {
+ int len = 0;
+
+ for (x = fieldlist; x; x = TREE_CHAIN (x))
+ {
+ if (len > 15 || DECL_NAME (x) == NULL)
+ break;
+ len += 1;
+ }
+
+ if (len > 15)
+ {
+ tree *field_array;
+ char *space;
+
+ len += list_length (x);
+
+ /* Use the same allocation policy here that make_node uses, to
+ ensure that this lives as long as the rest of the struct decl.
+ All decls in an inline function need to be saved. */
+
+ space = ggc_alloc (sizeof (struct lang_type) + len * sizeof (tree));
+
+ len = 0;
+ field_array = &(((struct lang_type *) space)->elts[0]);
+ for (x = fieldlist; x; x = TREE_CHAIN (x))
+ {
+ field_array[len++] = x;
+
+ /* if there is anonymous struct or unoin break out of the loop */
+ if (DECL_NAME (x) == NULL)
+ break;
+ }
+ /* found no anonymous struct/union add the TYPE_LANG_SPECIFIC. */
+ if (x == NULL)
+ {
+ TYPE_LANG_SPECIFIC (t) = (struct lang_type *) space;
+ TYPE_LANG_SPECIFIC (t)->len = len;
+ field_array = &TYPE_LANG_SPECIFIC (t)->elts[0];
+ qsort (field_array, len, sizeof (tree), field_decl_cmp);
+ }
+ }
+ }
+
for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x))
{
TYPE_FIELDS (x) = TYPE_FIELDS (t);
@@ -5334,7 +5472,8 @@ finish_struct (t, fieldlist, attributes)
&& TREE_CODE (decl) != TYPE_DECL)
{
layout_decl (decl, 0);
- /* This is a no-op in c-lang.c or something real in objc-act.c. */
+ /* This is a no-op in c-lang.c or something real in
+ objc-act.c. */
if (flag_objc)
objc_check_decl (decl);
rest_of_decl_compilation (decl, NULL, toplevel, 0);
@@ -5370,7 +5509,11 @@ finish_struct (t, fieldlist, attributes)
else
current_binding_level->incomplete_list = TREE_CHAIN (x);
}
+ else
+ prev = x;
}
+ else
+ prev = x;
}
}
@@ -6383,6 +6526,13 @@ finish_function (nested, can_defer_p)
&& DECL_INLINE (fndecl))
warning ("no return statement in function returning non-void");
+ /* With just -W, complain only if function returns both with
+ and without a value. */
+ if (extra_warnings
+ && current_function_returns_value
+ && current_function_returns_null)
+ warning ("this function may return with or without a value");
+
/* Clear out memory we no longer need. */
free_after_parsing (cfun);
/* Since we never call rest_of_compilation, we never clear
@@ -6417,6 +6567,26 @@ c_expand_deferred_function (fndecl)
}
}
+/* Called to move the SAVE_EXPRs for parameter declarations in a
+ nested function into the nested function. DATA is really the
+ nested FUNCTION_DECL. */
+
+static tree
+set_save_expr_context (tp, walk_subtrees, data)
+ tree *tp;
+ int *walk_subtrees;
+ void *data;
+{
+ if (TREE_CODE (*tp) == SAVE_EXPR && !SAVE_EXPR_CONTEXT (*tp))
+ SAVE_EXPR_CONTEXT (*tp) = (tree) data;
+ /* Do not walk back into the SAVE_EXPR_CONTEXT; that will cause
+ circularity. */
+ else if (DECL_P (*tp))
+ *walk_subtrees = 0;
+
+ return NULL_TREE;
+}
+
/* Generate the RTL for the body of FNDECL. If NESTED_P is nonzero,
then we are already in the process of generating RTL for another
function. If can_defer_p is zero, we won't attempt to defer the
@@ -6428,12 +6598,19 @@ c_expand_body (fndecl, nested_p, can_defer_p)
int nested_p, can_defer_p;
{
int uninlinable = 1;
+ int saved_lineno;
+ const char *saved_input_filename;
/* There's no reason to do any of the work here if we're only doing
semantic analysis; this code just generates RTL. */
if (flag_syntax_only)
return;
+ saved_lineno = lineno;
+ saved_input_filename = input_filename;
+ lineno = DECL_SOURCE_LINE (fndecl);
+ input_filename = DECL_SOURCE_FILE (fndecl);
+
if (flag_inline_trees)
{
/* First, cache whether the current function is inlinable. Some
@@ -6451,6 +6628,8 @@ c_expand_body (fndecl, nested_p, can_defer_p)
/* Let the back-end know that this function exists. */
(*debug_hooks->deferred_inline_function) (fndecl);
timevar_pop (TV_INTEGRATION);
+ lineno = saved_lineno;
+ input_filename = saved_input_filename;
return;
}
@@ -6472,7 +6651,6 @@ c_expand_body (fndecl, nested_p, can_defer_p)
/* Initialize the RTL code for the function. */
current_function_decl = fndecl;
- input_filename = DECL_SOURCE_FILE (fndecl);
init_function_start (fndecl, input_filename, DECL_SOURCE_LINE (fndecl));
/* This function is being processed in whole-function mode. */
@@ -6488,6 +6666,15 @@ c_expand_body (fndecl, nested_p, can_defer_p)
/* Set up parameters and prepare for return, for the function. */
expand_function_start (fndecl, 0);
+ /* If the function has a variably modified type, there may be
+ SAVE_EXPRs in the parameter types. Their context must be set to
+ refer to this function; they cannot be expanded in the containing
+ function. */
+ if (decl_function_context (fndecl)
+ && variably_modified_type_p (TREE_TYPE (fndecl)))
+ walk_tree (&TREE_TYPE (fndecl), set_save_expr_context, fndecl,
+ NULL);
+
/* If this function is `main', emit a call to `__main'
to run global initializers, etc. */
if (DECL_NAME (fndecl)
@@ -6497,7 +6684,9 @@ c_expand_body (fndecl, nested_p, can_defer_p)
/* Generate the RTL for this function. */
expand_stmt (DECL_SAVED_TREE (fndecl));
- if (uninlinable)
+
+ /* Keep the function body if it's needed for inlining or dumping. */
+ if (uninlinable && !dump_enabled_p (TDI_all))
{
/* Allow the body of the function to be garbage collected. */
DECL_SAVED_TREE (fndecl) = NULL_TREE;
@@ -6528,13 +6717,6 @@ c_expand_body (fndecl, nested_p, can_defer_p)
if (nested_p)
ggc_pop_context ();
- /* With just -W, complain only if function returns both with
- and without a value. */
- if (extra_warnings
- && current_function_returns_value
- && current_function_returns_null)
- warning ("this function may return with or without a value");
-
/* If requested, warn about function definitions where the function will
return a value (usually of some struct or union type) which itself will
take up a lot of stack space. */
@@ -6598,6 +6780,9 @@ c_expand_body (fndecl, nested_p, can_defer_p)
/* Return to the enclosing function. */
pop_function_context ();
timevar_pop (TV_EXPAND);
+
+ lineno = saved_lineno;
+ input_filename = saved_input_filename;
}
/* Check the declarations given in a for-loop for satisfying the C99
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index f2e9d5d1629..c852e311cb9 100644
--- a/gcc/c-lex.c
+++ b/gcc/c-lex.c
@@ -245,8 +245,11 @@ static void
cb_line_change (pfile, token, parsing_args)
cpp_reader *pfile ATTRIBUTE_UNUSED;
const cpp_token *token;
- int parsing_args ATTRIBUTE_UNUSED;
+ int parsing_args;
{
+ if (token->type == CPP_EOF || parsing_args)
+ return;
+
src_lineno = SOURCE_LINE (map, token->line);
}
@@ -706,6 +709,7 @@ c_lex (value)
{
case CPP_N_INVALID:
/* cpplib has issued an error. */
+ *value = error_mark_node;
break;
case CPP_N_INTEGER:
diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c
index 2d67b8f21c0..34a1d157591 100644
--- a/gcc/c-objc-common.c
+++ b/gcc/c-objc-common.c
@@ -88,22 +88,20 @@ inline_forbidden_p (nodep, walk_subtrees, fn)
if (setjmp_call_p (t))
return node;
- switch (DECL_FUNCTION_CODE (t))
- {
- /* We cannot inline functions that take a variable number of
- arguments. */
- case BUILT_IN_VA_START:
- case BUILT_IN_STDARG_START:
-#if 0
- /* Functions that need information about the address of the
- caller can't (shouldn't?) be inlined. */
- case BUILT_IN_RETURN_ADDRESS:
-#endif
- return node;
-
- default:
- break;
- }
+ if (DECL_BUILT_IN (t))
+ switch (DECL_FUNCTION_CODE (t))
+ {
+ /* We cannot inline functions that take a variable number of
+ arguments. */
+ case BUILT_IN_VA_START:
+ case BUILT_IN_STDARG_START:
+ case BUILT_IN_NEXT_ARG:
+ case BUILT_IN_VA_END:
+ return node;
+
+ default:
+ break;
+ }
break;
@@ -213,7 +211,8 @@ c_cannot_inline_tree_fn (fnp)
return 0;
}
- if (walk_tree (&DECL_SAVED_TREE (fn), inline_forbidden_p, fn, NULL))
+ if (walk_tree_without_duplicates
+ (&DECL_SAVED_TREE (fn), inline_forbidden_p, fn))
goto cannot_inline;
return 0;
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index b8e5fe52bb4..77a468ab184 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -56,7 +56,7 @@ static size_t deferred_count, deferred_size;
static void missing_arg PARAMS ((size_t));
static size_t find_opt PARAMS ((const char *, int));
static void set_Wimplicit PARAMS ((int));
-static void complain_wrong_lang PARAMS ((size_t));
+static void complain_wrong_lang PARAMS ((size_t, int));
static void write_langs PARAMS ((char *, int));
static void print_help PARAMS ((void));
static void handle_OPT_d PARAMS ((const char *));
@@ -208,6 +208,8 @@ static void sanitize_cpp_opts PARAMS ((void));
OPT("fenforce-eh-specs", CL_CXX, OPT_fenforce_eh_specs) \
OPT("fenum-int-equiv", CL_CXX, OPT_fenum_int_equiv) \
OPT("fexternal-templates", CL_CXX, OPT_fexternal_templates) \
+ OPT("ffixed-form", CL_C, OPT_ffixed_form) \
+ OPT("ffixed-line-length-", CL_C | CL_JOINED, OPT_ffixed_line_length) \
OPT("ffor-scope", CL_CXX, OPT_ffor_scope) \
OPT("ffreestanding", CL_C, OPT_ffreestanding) \
OPT("fgnu-keywords", CL_CXX, OPT_fgnu_keywords) \
@@ -612,7 +614,7 @@ c_common_decode_option (argc, argv)
after the call to find_opt, and return argc. */
if (!(cl_options[opt_index].flags & lang_flag))
{
- complain_wrong_lang (opt_index);
+ complain_wrong_lang (opt_index, on);
goto done;
}
@@ -697,7 +699,8 @@ c_common_decode_option (argc, argv)
warn_parentheses = on;
warn_return_type = on;
warn_sequence_point = on; /* Was C only. */
- warn_sign_compare = on; /* Was C++ only. */
+ if (c_language == clk_cplusplus)
+ warn_sign_compare = on;
warn_switch = on;
warn_strict_aliasing = on;
@@ -1127,6 +1130,13 @@ c_common_decode_option (argc, argv)
flag_external_templates = on;
goto cp_deprecated;
+ case OPT_ffixed_form:
+ case OPT_ffixed_line_length:
+ /* Fortran front end options ignored when preprocessing only. */
+ if (flag_preprocess_only)
+ result = -1;
+ break;
+
case OPT_ffor_scope:
flag_new_for_scope = on;
break;
@@ -1693,16 +1703,18 @@ write_langs (buf, flags)
/* Complain that switch OPT_INDEX does not apply to this front end. */
static void
-complain_wrong_lang (opt_index)
+complain_wrong_lang (opt_index, on)
size_t opt_index;
+ int on;
{
char ok_langs[60], bad_langs[60];
int ok_flags = cl_options[opt_index].flags;
write_langs (ok_langs, ok_flags);
write_langs (bad_langs, ~ok_flags);
- warning ("\"-%s\" is valid for %s but not for %s",
- cl_options[opt_index].opt_text, ok_langs, bad_langs);
+ warning ("\"-%c%s%s\" is valid for %s but not for %s",
+ cl_options[opt_index].opt_text[0], on ? "" : "no-",
+ cl_options[opt_index].opt_text + 1, ok_langs, bad_langs);
}
/* Handle --help output. */
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index eab176a62f7..2912541a206 100644
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -28,9 +28,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* To whomever it may concern: I have heard that such a thing was once
written by AT&T, but I have never seen it. */
-ifobjc
-%expect 32 /* shift/reduce conflicts, and 1 reduce/reduce conflict. */
-end ifobjc
ifc
%expect 10 /* shift/reduce conflicts, and no reduce/reduce conflicts. */
end ifc
@@ -2180,6 +2177,7 @@ compstmt_primary_start:
push_label_level ();
compstmt_count++;
$$ = add_stmt (build_stmt (COMPOUND_STMT, last_tree));
+ last_expr_type = NULL_TREE;
}
;
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c
index 4c43baa9b0d..819e6965bd6 100644
--- a/gcc/c-pragma.c
+++ b/gcc/c-pragma.c
@@ -288,15 +288,22 @@ maybe_apply_pragma_weak (decl)
{
tree *p, t, id;
- /* Copied from the check in set_decl_assembler_name. */
- if (TREE_CODE (decl) == FUNCTION_DECL
- || (TREE_CODE (decl) == VAR_DECL
- && (TREE_STATIC (decl)
- || DECL_EXTERNAL (decl)
- || TREE_PUBLIC (decl))))
- id = DECL_ASSEMBLER_NAME (decl);
- else
+ /* Avoid asking for DECL_ASSEMBLER_NAME when it's not needed. */
+
+ /* No weak symbols pending, take the short-cut. */
+ if (!pending_weaks)
+ return;
+ /* If it's not visible outside this file, it doesn't matter whether
+ it's weak. */
+ if (!DECL_EXTERNAL (decl) && !TREE_PUBLIC (decl))
return;
+ /* If it's not a function or a variable, it can't be weak.
+ FIXME: what kinds of things are visible outside this file but
+ aren't functions or variables? Should this be an abort() instead? */
+ if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL)
+ return;
+
+ id = DECL_ASSEMBLER_NAME (decl);
for (p = &pending_weaks; (t = *p) ; p = &TREE_CHAIN (t))
if (id == TREE_PURPOSE (t))
@@ -447,7 +454,7 @@ maybe_apply_renaming_pragma (decl, asmname)
{
const char *oldasmname = IDENTIFIER_POINTER (oldname) + 1;
if (asmname && strcmp (TREE_STRING_POINTER (asmname), oldasmname) != 0)
- warning ("asm declaration conficts with previous rename");
+ warning ("asm declaration conflicts with previous rename");
asmname = build_string (strlen (oldasmname), oldasmname);
}
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c
index 994b4625da5..8559fa17a75 100644
--- a/gcc/c-semantics.c
+++ b/gcc/c-semantics.c
@@ -729,7 +729,7 @@ genrtl_asm_stmt (cv_qualifier, string, output_operands,
emit_line_note (input_filename, lineno);
if (asm_input_p)
- expand_asm (string);
+ expand_asm (string, cv_qualifier != NULL_TREE);
else
c_expand_asm_operands (string, output_operands, input_operands,
clobbers, cv_qualifier != NULL_TREE,
@@ -838,7 +838,8 @@ expand_stmt (t)
case GOTO_STMT:
/* Emit information for branch prediction. */
if (!GOTO_FAKE_P (t)
- && TREE_CODE (GOTO_DESTINATION (t)) == LABEL_DECL)
+ && TREE_CODE (GOTO_DESTINATION (t)) == LABEL_DECL
+ && flag_guess_branch_prob)
{
rtx note = emit_note (NULL, NOTE_INSN_PREDICTION);
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index 159c235224e..1e7b3cc061a 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -270,7 +270,7 @@ extern tree build_external_ref PARAMS ((tree, int));
extern tree parser_build_binary_op PARAMS ((enum tree_code,
tree, tree));
extern int c_tree_expr_nonnegative_p PARAMS ((tree));
-extern void readonly_warning PARAMS ((tree, const char *));
+extern void readonly_error PARAMS ((tree, const char *));
extern tree build_conditional_expr PARAMS ((tree, tree, tree));
extern tree build_compound_expr PARAMS ((tree));
extern tree c_cast_expr PARAMS ((tree, tree));
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index c63344d6682..12faaa7115c 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -1144,7 +1144,7 @@ build_component_ref (datum, component)
end does it - by giving the anonymous entities each a
separate name and type, and then have build_component_ref
recursively call itself. We can't do that here. */
- for (; field; field = TREE_CHAIN (field))
+ do
{
tree subdatum = TREE_VALUE (field);
@@ -1161,7 +1161,10 @@ build_component_ref (datum, component)
warn_deprecated_use (subdatum);
datum = ref;
+
+ field = TREE_CHAIN (field);
}
+ while (field);
return ref;
}
@@ -1455,6 +1458,17 @@ build_external_ref (id, fun)
ref = DECL_INITIAL (ref);
TREE_CONSTANT (ref) = 1;
}
+ else if (current_function_decl != 0
+ && DECL_CONTEXT (current_function_decl) != 0
+ && (TREE_CODE (ref) == VAR_DECL
+ || TREE_CODE (ref) == PARM_DECL
+ || TREE_CODE (ref) == FUNCTION_DECL))
+ {
+ tree context = decl_function_context (ref);
+
+ if (context != 0 && context != current_function_decl)
+ DECL_NONLOCAL (ref) = 1;
+ }
return ref;
}
@@ -2140,11 +2154,9 @@ build_binary_op (code, orig_op0, orig_op1, convert_p)
but don't convert the args to int! */
build_type = integer_type_node;
if ((code0 == INTEGER_TYPE || code0 == REAL_TYPE
- || code0 == COMPLEX_TYPE
- || code0 == VECTOR_TYPE)
+ || code0 == COMPLEX_TYPE)
&& (code1 == INTEGER_TYPE || code1 == REAL_TYPE
- || code1 == COMPLEX_TYPE
- || code1 == VECTOR_TYPE))
+ || code1 == COMPLEX_TYPE))
short_compare = 1;
else if (code0 == POINTER_TYPE && code1 == POINTER_TYPE)
{
@@ -2954,10 +2966,10 @@ build_unary_op (code, xarg, flag)
/* Report a read-only lvalue. */
if (TREE_READONLY (arg))
- readonly_warning (arg,
- ((code == PREINCREMENT_EXPR
- || code == POSTINCREMENT_EXPR)
- ? "increment" : "decrement"));
+ readonly_error (arg,
+ ((code == PREINCREMENT_EXPR
+ || code == POSTINCREMENT_EXPR)
+ ? "increment" : "decrement"));
if (TREE_CODE (TREE_TYPE (arg)) == BOOLEAN_TYPE)
val = boolean_increment (code, arg);
@@ -3220,41 +3232,40 @@ static void
pedantic_lvalue_warning (code)
enum tree_code code;
{
- if (pedantic)
- switch (code)
- {
- case COND_EXPR:
- pedwarn ("ISO C forbids use of conditional expressions as lvalues");
- break;
- case COMPOUND_EXPR:
- pedwarn ("ISO C forbids use of compound expressions as lvalues");
- break;
- default:
- pedwarn ("ISO C forbids use of cast expressions as lvalues");
- break;
- }
+ switch (code)
+ {
+ case COND_EXPR:
+ pedwarn ("use of conditional expressions as lvalues is deprecated");
+ break;
+ case COMPOUND_EXPR:
+ pedwarn ("use of compound expressions as lvalues is deprecated");
+ break;
+ default:
+ pedwarn ("use of cast expressions as lvalues is deprecated");
+ break;
+ }
}
/* Warn about storing in something that is `const'. */
void
-readonly_warning (arg, msgid)
+readonly_error (arg, msgid)
tree arg;
const char *msgid;
{
if (TREE_CODE (arg) == COMPONENT_REF)
{
if (TYPE_READONLY (TREE_TYPE (TREE_OPERAND (arg, 0))))
- readonly_warning (TREE_OPERAND (arg, 0), msgid);
+ readonly_error (TREE_OPERAND (arg, 0), msgid);
else
- pedwarn ("%s of read-only member `%s'", _(msgid),
- IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (arg, 1))));
+ error ("%s of read-only member `%s'", _(msgid),
+ IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (arg, 1))));
}
else if (TREE_CODE (arg) == VAR_DECL)
- pedwarn ("%s of read-only variable `%s'", _(msgid),
- IDENTIFIER_POINTER (DECL_NAME (arg)));
+ error ("%s of read-only variable `%s'", _(msgid),
+ IDENTIFIER_POINTER (DECL_NAME (arg)));
else
- pedwarn ("%s of read-only location", _(msgid));
+ error ("%s of read-only location", _(msgid));
}
/* Mark EXP saying that we need to be able to take the
@@ -3299,7 +3310,7 @@ c_mark_addressable (exp)
if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x)
&& DECL_NONLOCAL (x))
{
- if (TREE_PUBLIC (x))
+ if (TREE_PUBLIC (x) || TREE_STATIC (x) || DECL_EXTERNAL (x))
{
error ("global register variable `%s' used in nested function",
IDENTIFIER_POINTER (DECL_NAME (x)));
@@ -3310,7 +3321,7 @@ c_mark_addressable (exp)
}
else if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x))
{
- if (TREE_PUBLIC (x))
+ if (TREE_PUBLIC (x) || TREE_STATIC (x) || DECL_EXTERNAL (x))
{
error ("address of global register variable `%s' requested",
IDENTIFIER_POINTER (DECL_NAME (x)));
@@ -3331,7 +3342,7 @@ c_mark_addressable (exp)
pedwarn ("address of register variable `%s' requested",
IDENTIFIER_POINTER (DECL_NAME (x)));
}
- put_var_into_stack (x);
+ put_var_into_stack (x, /*rescan=*/true);
/* drops in */
case FUNCTION_DECL:
@@ -3941,7 +3952,7 @@ build_modify_expr (lhs, modifycode, rhs)
|| ((TREE_CODE (lhstype) == RECORD_TYPE
|| TREE_CODE (lhstype) == UNION_TYPE)
&& C_TYPE_FIELDS_READONLY (lhstype)))
- readonly_warning (lhs, "assignment");
+ readonly_error (lhs, "assignment");
/* If storing into a structure or union member,
it has probably been given type `int'.
@@ -4233,6 +4244,11 @@ convert_for_assignment (type, rhs, errtype, fundecl, funname, parmnum)
errtype, funname, parmnum);
return convert (type, rhs);
}
+ else if (codel == POINTER_TYPE && coder == ARRAY_TYPE)
+ {
+ error ("invalid use of non-lvalue array");
+ return error_mark_node;
+ }
else if (codel == POINTER_TYPE && coder == INTEGER_TYPE)
{
/* An explicit constant 0 can convert to a pointer,
@@ -4244,12 +4260,10 @@ convert_for_assignment (type, rhs, errtype, fundecl, funname, parmnum)
&& TREE_CODE (TREE_TYPE (rhs)) == INTEGER_TYPE
&& TREE_CODE (TREE_OPERAND (rhs, 0)) == INTEGER_CST
&& integer_zerop (TREE_OPERAND (rhs, 0))))
- {
warn_for_assignment ("%s makes pointer from integer without a cast",
errtype, funname, parmnum);
- return convert (type, rhs);
- }
- return null_pointer_node;
+
+ return convert (type, rhs);
}
else if (codel == INTEGER_TYPE && coder == POINTER_TYPE)
{
@@ -4745,6 +4759,20 @@ digest_init (type, init, require_constant)
return inside_init;
}
}
+ /* Build a VECTOR_CST from a *constant* vector constructor. If the
+ vector constructor is not constant (e.g. {1,2,3,foo()}) then punt
+ below and handle as a constructor. */
+ if (code == VECTOR_TYPE
+ && comptypes (TREE_TYPE (inside_init), type)
+ && TREE_CONSTANT (inside_init))
+ {
+ if (TREE_CODE (inside_init) == VECTOR_CST
+ && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
+ TYPE_MAIN_VARIANT (type)))
+ return inside_init;
+ else
+ return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
+ }
/* Any type can be initialized
from an expression of the same type, optionally with braces. */
@@ -4763,8 +4791,16 @@ digest_init (type, init, require_constant)
TREE_TYPE (type)))))
{
if (code == POINTER_TYPE)
- inside_init = default_function_array_conversion (inside_init);
+ {
+ inside_init = default_function_array_conversion (inside_init);
+ if (TREE_CODE (TREE_TYPE (inside_init)) == ARRAY_TYPE)
+ {
+ error_init ("invalid use of non-lvalue array");
+ return error_mark_node;
+ }
+ }
+
if (require_constant && !flag_isoc99
&& TREE_CODE (inside_init) == COMPOUND_LITERAL_EXPR)
{
@@ -5266,6 +5302,7 @@ push_init_level (implicit)
&& constructor_fields == 0)
process_init_element (pop_init_level (1));
else if (TREE_CODE (constructor_type) == ARRAY_TYPE
+ && constructor_max_index
&& tree_int_cst_lt (constructor_max_index, constructor_index))
process_init_element (pop_init_level (1));
else
@@ -5460,6 +5497,10 @@ pop_init_level (implicit)
abort ();
}
+ /* Now output all pending elements. */
+ constructor_incremental = 1;
+ output_pending_init_elements (1);
+
p = constructor_stack;
/* Error for initializing a flexible array member, or a zero-length
@@ -5514,10 +5555,6 @@ pop_init_level (implicit)
}
}
- /* Now output all pending elements. */
- constructor_incremental = 1;
- output_pending_init_elements (1);
-
/* Pad out the end of the structure. */
if (p->replacement_value)
/* If this closes a superfluous brace pair,
@@ -5719,6 +5756,8 @@ set_init_index (first, last)
error_init ("nonconstant array index in initializer");
else if (TREE_CODE (constructor_type) != ARRAY_TYPE)
error_init ("array index in non-array initializer");
+ else if (tree_int_cst_sgn (first) == -1)
+ error_init ("array index in initializer exceeds array bounds");
else if (constructor_max_index
&& tree_int_cst_lt (constructor_max_index, first))
error_init ("array index in initializer exceeds array bounds");
@@ -6202,6 +6241,11 @@ output_init_element (value, type, field, pending)
tree value, type, field;
int pending;
{
+ if (type == error_mark_node)
+ {
+ constructor_erroneous = 1;
+ return;
+ }
if (TREE_CODE (TREE_TYPE (value)) == FUNCTION_TYPE
|| (TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE
&& !(TREE_CODE (value) == STRING_CST
@@ -6618,13 +6662,18 @@ process_init_element (value)
bit_position (constructor_fields),
DECL_SIZE (constructor_fields));
- constructor_unfilled_fields = TREE_CHAIN (constructor_fields);
- /* Skip any nameless bit fields. */
- while (constructor_unfilled_fields != 0
- && DECL_C_BIT_FIELD (constructor_unfilled_fields)
- && DECL_NAME (constructor_unfilled_fields) == 0)
- constructor_unfilled_fields =
- TREE_CHAIN (constructor_unfilled_fields);
+ /* If the current field was the first one not yet written out,
+ it isn't now, so update. */
+ if (constructor_unfilled_fields == constructor_fields)
+ {
+ constructor_unfilled_fields = TREE_CHAIN (constructor_fields);
+ /* Skip any nameless bit fields. */
+ while (constructor_unfilled_fields != 0
+ && DECL_C_BIT_FIELD (constructor_unfilled_fields)
+ && DECL_NAME (constructor_unfilled_fields) == 0)
+ constructor_unfilled_fields =
+ TREE_CHAIN (constructor_unfilled_fields);
+ }
}
constructor_fields = TREE_CHAIN (constructor_fields);
@@ -6857,9 +6906,9 @@ simple_asm_stmt (expr)
{
tree stmt;
- stmt = add_stmt (build_stmt (ASM_STMT, NULL_TREE, expr,
- NULL_TREE, NULL_TREE,
- NULL_TREE));
+ /* Simple asm statements are treated as volatile. */
+ stmt = add_stmt (build_stmt (ASM_STMT, ridpointers[(int) RID_VOLATILE],
+ expr, NULL_TREE, NULL_TREE, NULL_TREE));
ASM_INPUT_P (stmt) = 1;
return stmt;
}
@@ -6990,7 +7039,7 @@ c_expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
|| ((TREE_CODE (type) == RECORD_TYPE
|| TREE_CODE (type) == UNION_TYPE)
&& C_TYPE_FIELDS_READONLY (type)))
- readonly_warning (o[i], "modification by `asm'");
+ readonly_error (o[i], "modification by `asm'");
}
}
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index b7e3ceac7b5..bca2dd57adc 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -407,7 +407,7 @@ save_call_clobbered_regs ()
regno += insert_restore (chain, 1, regno, MOVE_MAX_WORDS, save_mode);
}
- if (code == CALL_INSN)
+ if (code == CALL_INSN && ! find_reg_note (insn, REG_NORETURN, NULL))
{
int regno;
HARD_REG_SET hard_regs_to_save;
diff --git a/gcc/calls.c b/gcc/calls.c
index 41725b57769..675674ec7f5 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1,6 +1,6 @@
/* Convert function calls to rtl insns, for GNU C compiler.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -35,6 +35,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "sbitmap.h"
#include "langhooks.h"
#include "target.h"
+#include "except.h"
#if !defined FUNCTION_OK_FOR_SIBCALL
#define FUNCTION_OK_FOR_SIBCALL(DECL) 1
@@ -227,6 +228,7 @@ static int check_sibcall_argument_overlap PARAMS ((rtx, struct arg_data *));
static int combine_pending_stack_adjustment_and_call
PARAMS ((int, struct args_size *, int));
+static tree fix_unsafe_tree PARAMS ((tree));
#ifdef REG_PARM_STACK_SPACE
static rtx save_fixed_argument_area PARAMS ((int, rtx, int *, int *));
@@ -616,6 +618,8 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
if (ecf_flags & ECF_NOTHROW)
REG_NOTES (call_insn) = gen_rtx_EXPR_LIST (REG_EH_REGION, const0_rtx,
REG_NOTES (call_insn));
+ else
+ note_eh_region_may_contain_throw ();
if (ecf_flags & ECF_NORETURN)
REG_NOTES (call_insn) = gen_rtx_EXPR_LIST (REG_NORETURN, const0_rtx,
@@ -637,6 +641,10 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size,
if the context of the call as a whole permits. */
inhibit_defer_pop = old_inhibit_defer_pop;
+ /* Don't bother cleaning up after a noreturn function. */
+ if (ecf_flags & (ECF_NORETURN | ECF_LONGJMP))
+ return;
+
if (n_popped > 0)
{
if (!already_popped)
@@ -839,10 +847,13 @@ flags_from_decl_or_type (exp)
if (TREE_NOTHROW (exp))
flags |= ECF_NOTHROW;
+
+ if (TREE_READONLY (exp) && ! TREE_THIS_VOLATILE (exp))
+ flags |= ECF_LIBCALL_BLOCK;
}
if (TREE_READONLY (exp) && ! TREE_THIS_VOLATILE (exp))
- flags |= ECF_CONST | ECF_LIBCALL_BLOCK;
+ flags |= ECF_CONST;
if (TREE_THIS_VOLATILE (exp))
flags |= ECF_NORETURN;
@@ -1662,6 +1673,7 @@ compute_argument_addresses (args, argblock, num_actuals)
addr = plus_constant (addr, arg_offset);
args[i].stack = gen_rtx_MEM (args[i].mode, addr);
+ set_mem_align (args[i].stack, PARM_BOUNDARY);
set_mem_attributes (args[i].stack,
TREE_TYPE (args[i].tree_value), 1);
@@ -1672,6 +1684,7 @@ compute_argument_addresses (args, argblock, num_actuals)
addr = plus_constant (addr, arg_offset);
args[i].stack_slot = gen_rtx_MEM (args[i].mode, addr);
+ set_mem_align (args[i].stack_slot, PARM_BOUNDARY);
set_mem_attributes (args[i].stack_slot,
TREE_TYPE (args[i].tree_value), 1);
@@ -1691,12 +1704,12 @@ compute_argument_addresses (args, argblock, num_actuals)
FNDECL is the tree node for the target function. For an indirect call
FNDECL will be NULL_TREE.
- EXP is the CALL_EXPR for this call. */
+ ADDR is the operand 0 of CALL_EXPR for this call. */
static rtx
-rtx_for_function_call (fndecl, exp)
+rtx_for_function_call (fndecl, addr)
tree fndecl;
- tree exp;
+ tree addr;
{
rtx funexp;
@@ -1720,7 +1733,7 @@ rtx_for_function_call (fndecl, exp)
rtx funaddr;
push_temp_slots ();
funaddr = funexp
- = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, VOIDmode, 0);
+ = expand_expr (addr, NULL_RTX, VOIDmode, 0);
pop_temp_slots (); /* FUNEXP can't be BLKmode. */
emit_queue ();
}
@@ -2081,6 +2094,35 @@ check_sibcall_argument_overlap (insn, arg)
return insn != NULL_RTX;
}
+static tree
+fix_unsafe_tree (t)
+ tree t;
+{
+ switch (unsafe_for_reeval (t))
+ {
+ case 0: /* Safe. */
+ break;
+
+ case 1: /* Mildly unsafe. */
+ t = unsave_expr (t);
+ break;
+
+ case 2: /* Wildly unsafe. */
+ {
+ tree var = build_decl (VAR_DECL, NULL_TREE,
+ TREE_TYPE (t));
+ SET_DECL_RTL (var,
+ expand_expr (t, NULL_RTX, VOIDmode, EXPAND_NORMAL));
+ t = var;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+ return t;
+}
+
/* Generate all the code for a function call
and return an rtx for its value.
Store the value in TARGET (specified as an rtx) if convenient.
@@ -2192,6 +2234,7 @@ expand_call (exp, target, ignore)
int old_stack_allocated;
rtx call_fusage;
tree p = TREE_OPERAND (exp, 0);
+ tree addr = TREE_OPERAND (exp, 0);
int i;
/* The alignment of the stack, in bits. */
HOST_WIDE_INT preferred_stack_boundary;
@@ -2313,7 +2356,7 @@ expand_call (exp, target, ignore)
preferred_stack_boundary = PREFERRED_STACK_BOUNDARY;
/* Operand 0 is a pointer-to-function; get the type of the function. */
- funtype = TREE_TYPE (TREE_OPERAND (exp, 0));
+ funtype = TREE_TYPE (addr);
if (! POINTER_TYPE_P (funtype))
abort ();
funtype = TREE_TYPE (funtype);
@@ -2450,8 +2493,8 @@ expand_call (exp, target, ignore)
/* Tail recursion fails, when we are not dealing with recursive calls. */
if (!try_tail_recursion
- || TREE_CODE (TREE_OPERAND (exp, 0)) != ADDR_EXPR
- || TREE_OPERAND (TREE_OPERAND (exp, 0), 0) != current_function_decl)
+ || TREE_CODE (addr) != ADDR_EXPR
+ || TREE_OPERAND (addr, 0) != current_function_decl)
try_tail_recursion = 0;
/* Rest of purposes for tail call optimizations to fail. */
@@ -2482,10 +2525,11 @@ expand_call (exp, target, ignore)
|| args_size.constant > current_function_args_size
/* If the callee pops its own arguments, then it must pop exactly
the same number of arguments as the current function. */
- || RETURN_POPS_ARGS (fndecl, funtype, args_size.constant)
- != RETURN_POPS_ARGS (current_function_decl,
- TREE_TYPE (current_function_decl),
- current_function_args_size))
+ || (RETURN_POPS_ARGS (fndecl, funtype, args_size.constant)
+ != RETURN_POPS_ARGS (current_function_decl,
+ TREE_TYPE (current_function_decl),
+ current_function_args_size))
+ || !(*lang_hooks.decls.ok_for_sibcall) (fndecl))
try_tail_call = 0;
if (try_tail_call || try_tail_recursion)
@@ -2522,35 +2566,16 @@ expand_call (exp, target, ignore)
for (; i != end; i += inc)
{
- switch (unsafe_for_reeval (args[i].tree_value))
- {
- case 0: /* Safe. */
- break;
-
- case 1: /* Mildly unsafe. */
- args[i].tree_value = unsave_expr (args[i].tree_value);
- break;
-
- case 2: /* Wildly unsafe. */
- {
- tree var = build_decl (VAR_DECL, NULL_TREE,
- TREE_TYPE (args[i].tree_value));
- SET_DECL_RTL (var,
- expand_expr (args[i].tree_value, NULL_RTX,
- VOIDmode, EXPAND_NORMAL));
- args[i].tree_value = var;
- }
- break;
-
- default:
- abort ();
- }
+ args[i].tree_value = fix_unsafe_tree (args[i].tree_value);
/* We need to build actparms for optimize_tail_recursion. We can
safely trash away TREE_PURPOSE, since it is unused by this
function. */
if (try_tail_recursion)
actparms = tree_cons (NULL_TREE, args[i].tree_value, actparms);
}
+ /* Do the same for the function address if it is an expression. */
+ if (!fndecl)
+ addr = fix_unsafe_tree (addr);
/* Expanding one of those dangerous arguments could have added
cleanups, but otherwise give it a whirl. */
if (any_pending_cleanups (1))
@@ -2944,7 +2969,7 @@ expand_call (exp, target, ignore)
be deferred during the evaluation of the arguments. */
NO_DEFER_POP;
- funexp = rtx_for_function_call (fndecl, exp);
+ funexp = rtx_for_function_call (fndecl, addr);
/* Figure out the register where the value, if any, will come back. */
valreg = 0;
@@ -3080,6 +3105,7 @@ expand_call (exp, target, ignore)
/* Verify that we've deallocated all the stack we used. */
if (pass
+ && ! (flags & (ECF_NORETURN | ECF_LONGJMP))
&& old_stack_allocated != stack_pointer_delta - pending_stack_adjust)
abort ();
@@ -3173,6 +3199,10 @@ expand_call (exp, target, ignore)
}
emit_barrier_after (last);
+
+ /* Stack adjustments after a noreturn call are dead code. */
+ stack_pointer_delta = old_stack_allocated;
+ pending_stack_adjust = 0;
}
if (flags & ECF_LONGJMP)
@@ -3996,9 +4026,23 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
(save_mode,
plus_constant (argblock,
argvec[argnum].offset.constant)));
- argvec[argnum].save_area = gen_reg_rtx (save_mode);
+ if (save_mode == BLKmode)
+ {
+ argvec[argnum].save_area
+ = assign_stack_temp (BLKmode,
+ argvec[argnum].size.constant, 0);
+
+ emit_block_move (validize_mem (argvec[argnum].save_area),
+ stack_area,
+ GEN_INT (argvec[argnum].size.constant),
+ BLOCK_OP_CALL_PARM);
+ }
+ else
+ {
+ argvec[argnum].save_area = gen_reg_rtx (save_mode);
- emit_move_insn (argvec[argnum].save_area, stack_area);
+ emit_move_insn (argvec[argnum].save_area, stack_area);
+ }
}
}
@@ -4131,7 +4175,7 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
{
rtx insns;
- if (valreg == 0 || GET_CODE (valreg) == PARALLEL)
+ if (valreg == 0)
{
insns = get_insns ();
end_sequence ();
@@ -4140,9 +4184,18 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
else
{
rtx note = 0;
- rtx temp = gen_reg_rtx (GET_MODE (valreg));
+ rtx temp;
int i;
+ if (GET_CODE (valreg) == PARALLEL)
+ {
+ temp = gen_reg_rtx (outmode);
+ emit_group_store (temp, valreg, outmode);
+ valreg = temp;
+ }
+
+ temp = gen_reg_rtx (GET_MODE (valreg));
+
/* Construct an "equal form" for the value which mentions all the
arguments in order as well as the function name. */
for (i = 0; i < nargs; i++)
@@ -4176,6 +4229,12 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
if (value != mem_value)
emit_move_insn (value, mem_value);
}
+ else if (GET_CODE (valreg) == PARALLEL)
+ {
+ if (value == 0)
+ value = gen_reg_rtx (outmode);
+ emit_group_store (value, valreg, outmode);
+ }
else if (value != 0)
emit_move_insn (value, valreg);
else
@@ -4223,7 +4282,13 @@ emit_library_call_value_1 (retval, orgfun, value, fn_type, outmode, nargs, p)
plus_constant (argblock,
argvec[count].offset.constant)));
- emit_move_insn (stack_area, argvec[count].save_area);
+ if (save_mode == BLKmode)
+ emit_block_move (stack_area,
+ validize_mem (argvec[count].save_area),
+ GEN_INT (argvec[count].size.constant),
+ BLOCK_OP_CALL_PARM);
+ else
+ emit_move_insn (stack_area, argvec[count].save_area);
}
highest_outgoing_arg_in_use = initial_highest_arg_in_use;
@@ -4394,13 +4459,6 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
}
}
}
- /* 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,
@@ -4453,7 +4511,7 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
(partial
|| TYPE_MODE (TREE_TYPE (pval)) != arg->mode)
? NULL_RTX : arg->stack,
- VOIDmode, 0);
+ VOIDmode, EXPAND_STACK_PARM);
/* If we are promoting object (or for any other reason) the mode
doesn't agree, convert the mode. */
@@ -4596,37 +4654,6 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
}
}
- /* Special handling is required if part of the parameter lies in the
- register parameter area. The argument may be copied into the stack
- slot using memcpy(), but the original contents of the register
- parameter area will be restored after the memcpy() call.
-
- To ensure that the part that lies in the register parameter area
- is copied correctly, we emit a separate push for that part. This
- push should be small enough to avoid a call to memcpy(). */
-#ifndef STACK_PARMS_IN_REG_PARM_AREA
- if (arg->reg && arg->pass_on_stack)
-#else
- if (1)
-#endif
- {
- if (arg->offset.constant < reg_parm_stack_space && arg->offset.var)
- error ("variable offset is passed partially in stack and in reg");
- else if (arg->offset.constant < reg_parm_stack_space && arg->size.var)
- error ("variable size is passed partially in stack and in reg");
- else if (arg->offset.constant < reg_parm_stack_space
- && ((arg->offset.constant + arg->size.constant)
- > reg_parm_stack_space))
- {
- rtx size_rtx1 = GEN_INT (reg_parm_stack_space - arg->offset.constant);
- emit_push_insn (arg->value, arg->mode, TREE_TYPE (pval), size_rtx1,
- parm_align, partial, reg, excess, argblock,
- ARGS_SIZE_RTX (arg->offset), reg_parm_stack_space,
- ARGS_SIZE_RTX (arg->alignment_pad));
- }
- }
-
-
emit_push_insn (arg->value, arg->mode, TREE_TYPE (pval), size_rtx,
parm_align, partial, reg, excess, argblock,
ARGS_SIZE_RTX (arg->offset), reg_parm_stack_space,
@@ -4644,6 +4671,12 @@ store_one_arg (arg, argblock, flags, variable_size, reg_parm_stack_space)
arg->value = arg->stack_slot;
}
+ /* Mark all slots this store used. */
+ 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 --git a/gcc/cfg.c b/gcc/cfg.c
index 9dc69d88348..2d115809608 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -288,6 +288,40 @@ expunge_block (b)
first_deleted_block = (basic_block) b;
}
+/* Create an edge connecting SRC and DEST with flags FLAGS. Return newly
+ created edge. Use this only if you are sure that this edge can't
+ possibly already exist. */
+
+edge
+unchecked_make_edge (src, dst, flags)
+ basic_block src, dst;
+ int flags;
+{
+ edge e;
+
+ if (first_deleted_edge)
+ {
+ e = first_deleted_edge;
+ first_deleted_edge = e->succ_next;
+ }
+ else
+ {
+ e = (edge) obstack_alloc (&flow_obstack, sizeof *e);
+ memset (e, 0, sizeof *e);
+ }
+ n_edges++;
+
+ e->succ_next = src->succ;
+ e->pred_next = dst->pred;
+ e->src = src;
+ e->dest = dst;
+ e->flags = flags;
+
+ src->succ = e;
+ dst->pred = e;
+
+ return e;
+}
/* Create an edge connecting SRC and DST with FLAGS optionally using
edge cache CACHE. Return the new edge, NULL if already exist. */
@@ -328,26 +362,7 @@ cached_make_edge (edge_cache, src, dst, flags)
break;
}
- if (first_deleted_edge)
- {
- e = first_deleted_edge;
- first_deleted_edge = e->succ_next;
- }
- else
- {
- e = (edge) obstack_alloc (&flow_obstack, sizeof *e);
- memset (e, 0, sizeof *e);
- }
- n_edges++;
-
- e->succ_next = src->succ;
- e->pred_next = dst->pred;
- e->src = src;
- e->dest = dst;
- e->flags = flags;
-
- src->succ = e;
- dst->pred = e;
+ e = unchecked_make_edge (src, dst, flags);
if (use_edge_cache)
SET_BIT (edge_cache[src->index], dst->index);
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index 7aeef93accd..3831c5f4768 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -1,6 +1,6 @@
/* Control flow graph analysis code for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -223,10 +223,14 @@ set_edge_can_fallthru_flag ()
{
edge e;
- /* The FALLTHRU edge is also CAN_FALLTHRU edge. */
for (e = bb->succ; e; e = e->succ_next)
- if (e->flags & EDGE_FALLTHRU)
- e->flags |= EDGE_CAN_FALLTHRU;
+ {
+ e->flags &= ~EDGE_CAN_FALLTHRU;
+
+ /* The FALLTHRU edge is also CAN_FALLTHRU edge. */
+ if (e->flags & EDGE_FALLTHRU)
+ e->flags |= EDGE_CAN_FALLTHRU;
+ }
/* If the BB ends with an invertable condjump all (2) edges are
CAN_FALLTHRU edges. */
@@ -320,10 +324,11 @@ flow_call_edges_add (blocks)
for (e = bb->succ; e; e = e->succ_next)
if (e->dest == EXIT_BLOCK_PTR)
- break;
-
- insert_insn_on_edge (gen_rtx_USE (VOIDmode, const0_rtx), e);
- commit_edge_insertions ();
+ {
+ insert_insn_on_edge (gen_rtx_USE (VOIDmode, const0_rtx), e);
+ commit_edge_insertions ();
+ break;
+ }
}
}
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index 9ac758b2809..795ae1719dc 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -1,6 +1,6 @@
/* Control flow graph building code for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -57,7 +57,6 @@ static void make_eh_edge PARAMS ((sbitmap *, basic_block, rtx));
static void find_bb_boundaries PARAMS ((basic_block));
static void compute_outgoing_frequencies PARAMS ((basic_block));
static bool inside_basic_block_p PARAMS ((rtx));
-static bool control_flow_insn_p PARAMS ((rtx));
/* Return true if insn is something that should be contained inside basic
block. */
@@ -95,7 +94,7 @@ inside_basic_block_p (insn)
/* Return true if INSN may cause control flow transfer, so it should be last in
the basic block. */
-static bool
+bool
control_flow_insn_p (insn)
rtx insn;
{
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 67ddfa90b89..5f5d13645f6 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -43,6 +43,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "recog.h"
#include "toplev.h"
#include "cselib.h"
+#include "params.h"
#include "tm_p.h"
#include "target.h"
@@ -124,6 +125,8 @@ try_simplify_condjump (cbranch_block)
basic_block jump_block, jump_dest_block, cbranch_dest_block;
edge cbranch_jump_edge, cbranch_fallthru_edge;
rtx cbranch_insn;
+ rtx insn, next;
+ rtx end;
/* Verify that there are exactly two successors. */
if (!cbranch_block->succ
@@ -176,6 +179,26 @@ try_simplify_condjump (cbranch_block)
cbranch_fallthru_edge->flags &= ~EDGE_FALLTHRU;
update_br_prob_note (cbranch_block);
+ end = jump_block->end;
+ /* Deleting a block may produce unreachable code warning even when we are
+ not deleting anything live. Supress it by moving all the line number
+ notes out of the block. */
+ for (insn = jump_block->head; insn != NEXT_INSN (jump_block->end);
+ insn = next)
+ {
+ next = NEXT_INSN (insn);
+ if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0)
+ {
+ if (insn == jump_block->end)
+ {
+ jump_block->end = PREV_INSN (insn);
+ if (insn == end)
+ break;
+ }
+ reorder_insns_nobb (insn, insn, end);
+ end = insn;
+ }
+ }
/* Delete the block with the unconditional jump, and clean up the mess. */
flow_delete_block (jump_block);
tidy_fallthru_edge (cbranch_jump_edge, cbranch_block, cbranch_dest_block);
@@ -499,7 +522,7 @@ try_forward_edges (mode, b)
For fallthru forwarders, the LOOP_BEG note must appear between
the header of block and CODE_LABEL of the loop, for non forwarders
it must appear before the JUMP_INSN. */
- if (mode & CLEANUP_PRE_LOOP)
+ if ((mode & CLEANUP_PRE_LOOP) && optimize)
{
rtx insn = (target->succ->flags & EDGE_FALLTHRU
? target->head : prev_nonnote_insn (target->end));
@@ -951,7 +974,15 @@ insns_match_p (mode, i1, i2)
#endif
if (reload_completed
- ? ! rtx_renumbered_equal_p (p1, p2) : ! rtx_equal_p (p1, p2))
+ ? rtx_renumbered_equal_p (p1, p2) : rtx_equal_p (p1, p2))
+ return true;
+
+ /* Do not do EQUIV substitution after reload. First, we're undoing the
+ work of reload_cse. Second, we may be undoing the work of the post-
+ reload splitting pass. */
+ /* ??? Possibly add a new phase switch variable that can be used by
+ targets to disallow the troublesome insns after splitting. */
+ if (!reload_completed)
{
/* The following code helps take care of G++ cleanups. */
rtx equiv1 = find_reg_equal_equiv_note (i1);
@@ -978,11 +1009,9 @@ insns_match_p (mode, i1, i2)
return true;
}
}
-
- return false;
}
- return true;
+ return false;
}
/* Look through the insns at the end of BB1 and BB2 and find the longest
@@ -1027,10 +1056,10 @@ flow_find_cross_jump (mode, bb1, bb2, f1, f2)
while (true)
{
/* Ignore notes. */
- while (!active_insn_p (i1) && i1 != bb1->head)
+ while (!INSN_P (i1) && i1 != bb1->head)
i1 = PREV_INSN (i1);
- while (!active_insn_p (i2) && i2 != bb2->head)
+ while (!INSN_P (i2) && i2 != bb2->head)
i2 = PREV_INSN (i2);
if (i1 == bb1->head || i2 == bb2->head)
@@ -1039,8 +1068,8 @@ flow_find_cross_jump (mode, bb1, bb2, f1, f2)
if (!insns_match_p (mode, i1, i2))
break;
- /* Don't begin a cross-jump with a USE or CLOBBER insn. */
- if (active_insn_p (i1))
+ /* Don't begin a cross-jump with a NOTE insn. */
+ if (INSN_P (i1))
{
/* If the merged insns have different REG_EQUAL notes, then
remove them. */
@@ -1079,13 +1108,13 @@ flow_find_cross_jump (mode, bb1, bb2, f1, f2)
Two, it keeps line number notes as matched as may be. */
if (ninsns)
{
- while (last1 != bb1->head && !active_insn_p (PREV_INSN (last1)))
+ while (last1 != bb1->head && !INSN_P (PREV_INSN (last1)))
last1 = PREV_INSN (last1);
if (last1 != bb1->head && GET_CODE (PREV_INSN (last1)) == CODE_LABEL)
last1 = PREV_INSN (last1);
- while (last2 != bb2->head && !active_insn_p (PREV_INSN (last2)))
+ while (last2 != bb2->head && !INSN_P (PREV_INSN (last2)))
last2 = PREV_INSN (last2);
if (last2 != bb2->head && GET_CODE (PREV_INSN (last2)) == CODE_LABEL)
@@ -1117,9 +1146,11 @@ outgoing_edges_match (mode, bb1, bb2)
/* If BB1 has only one successor, we may be looking at either an
unconditional jump, or a fake edge to exit. */
if (bb1->succ && !bb1->succ->succ_next
- && !(bb1->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)))
+ && (bb1->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0
+ && (GET_CODE (bb1->end) != JUMP_INSN || simplejump_p (bb1->end)))
return (bb2->succ && !bb2->succ->succ_next
- && (bb2->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0);
+ && (bb2->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0
+ && (GET_CODE (bb2->end) != JUMP_INSN || simplejump_p (bb2->end)));
/* Match conditional jumps - this may get tricky when fallthru and branch
edges are crossed. */
@@ -1471,7 +1502,7 @@ try_crossjump_bb (mode, bb)
{
edge e, e2, nexte2, nexte, fallthru;
bool changed;
- int n = 0;
+ int n = 0, max;
/* Nothing to do if there is not at least two incoming edges. */
if (!bb->pred || !bb->pred->pred_next)
@@ -1480,11 +1511,13 @@ try_crossjump_bb (mode, bb)
/* It is always cheapest to redirect a block that ends in a branch to
a block that falls through into BB, as that adds no branches to the
program. We'll try that combination first. */
- for (fallthru = bb->pred; fallthru; fallthru = fallthru->pred_next, n++)
+ fallthru = NULL;
+ max = PARAM_VALUE (PARAM_MAX_CROSSJUMP_EDGES);
+ for (e = bb->pred; e ; e = e->pred_next, n++)
{
- if (fallthru->flags & EDGE_FALLTHRU)
- break;
- if (n > 100)
+ if (e->flags & EDGE_FALLTHRU)
+ fallthru = e;
+ if (n > max)
return false;
}
@@ -1671,7 +1704,9 @@ try_optimize_cfg (mode)
/* If the jump insn has side effects,
we can't kill the edge. */
&& (GET_CODE (b->end) != JUMP_INSN
- || simplejump_p (b->end))
+ || (reload_completed
+ ? simplejump_p (b->end)
+ : onlyjump_p (b->end)))
&& merge_blocks (s, b, c, mode))
changed_here = true;
@@ -1799,6 +1834,7 @@ cleanup_cfg (mode)
break;
}
else if (!(mode & (CLEANUP_NO_INSN_DEL | CLEANUP_PRE_SIBCALL))
+ && (mode & CLEANUP_EXPENSIVE)
&& !reload_completed)
{
if (!delete_trivially_dead_insns (get_insns(), max_reg_num ()))
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 3214e808886..ca5f4751a41 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -460,11 +460,44 @@ fixup_reorder_chain ()
&& e_fall->dest == EXIT_BLOCK_PTR))
continue;
+ if (!e_taken)
+ e_taken = e_fall;
+
+ /* The degenerated case of conditional jump jumping to the next
+ instruction can happen on target having jumps with side
+ effects.
+
+ Create temporarily the duplicated edge representing branch.
+ It will get unidentified by force_nonfallthru_and_redirect
+ that would otherwise get confused by fallthru edge not pointing
+ to the next basic block. */
+ if (!e_taken)
+ {
+ rtx note;
+ edge e_fake;
+
+ e_fake = unchecked_make_edge (bb, e_fall->dest, 0);
+
+ note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX);
+ if (note)
+ {
+ int prob = INTVAL (XEXP (note, 0));
+
+ e_fake->probability = prob;
+ e_fake->count = e_fall->count * prob / REG_BR_PROB_BASE;
+ e_fall->probability -= e_fall->probability;
+ e_fall->count -= e_fake->count;
+ if (e_fall->probability < 0)
+ e_fall->probability = 0;
+ if (e_fall->count < 0)
+ e_fall->count = 0;
+ }
+ }
/* There is one special case: if *neither* block is next,
such as happens at the very end of a function, then we'll
need to add a new unconditional jump. Choose the taken
edge based on known or assumed probability. */
- if (RBI (bb)->next != e_taken->dest)
+ else if (RBI (bb)->next != e_taken->dest)
{
rtx note = find_reg_note (bb_end_insn, REG_BR_PROB, 0);
@@ -836,6 +869,13 @@ cfg_layout_redirect_edge (e, dest)
src->next_bb = NULL;
if (e->flags & EDGE_FALLTHRU)
{
+ /* Redirect any branch edges unified with the fallthru one. */
+ if (GET_CODE (src->end) == JUMP_INSN
+ && JUMP_LABEL (src->end) == e->dest->head)
+ {
+ if (!redirect_jump (src->end, block_label (dest), 0))
+ abort ();
+ }
/* In case we are redirecting fallthru edge to the branch edge
of conditional jump, remove it. */
if (src->succ->succ_next
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 0a2829f5c18..c8f7603535d 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -804,19 +804,20 @@ flow_loops_find (loops, flags)
header->loop_depth = 0;
+ /* If we have an abnormal predecessor, do not consider the
+ loop (not worth the problems). */
+ for (e = header->pred; e; e = e->pred_next)
+ if (e->flags & EDGE_ABNORMAL)
+ break;
+ if (e)
+ continue;
+
for (e = header->pred; e; e = e->pred_next)
{
basic_block latch = e->src;
if (e->flags & EDGE_ABNORMAL)
- {
- if (more_latches)
- {
- RESET_BIT (headers, header->index);
- num_loops--;
- }
- break;
- }
+ abort ();
/* Look for back edges where a predecessor is dominated
by this block. A natural loop has a single entry
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index c8ad0984e00..ce2890243a9 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -148,9 +148,15 @@ delete_insn (insn)
LABEL_NUSES (JUMP_LABEL (insn))--;
/* Also if deleting an insn that references a label. */
- else if ((note = find_reg_note (insn, REG_LABEL, NULL_RTX)) != NULL_RTX
- && GET_CODE (XEXP (note, 0)) == CODE_LABEL)
- LABEL_NUSES (XEXP (note, 0))--;
+ else
+ {
+ while ((note = find_reg_note (insn, REG_LABEL, NULL_RTX)) != NULL_RTX
+ && GET_CODE (XEXP (note, 0)) == CODE_LABEL)
+ {
+ LABEL_NUSES (XEXP (note, 0))--;
+ remove_note (insn, note);
+ }
+ }
if (GET_CODE (insn) == JUMP_INSN
&& (GET_CODE (PATTERN (insn)) == ADDR_VEC
@@ -764,6 +770,30 @@ try_redirect_by_replacing_jump (e, target)
barrier = next_nonnote_insn (src->end);
if (!barrier || GET_CODE (barrier) != BARRIER)
emit_barrier_after (src->end);
+ else
+ {
+ if (barrier != NEXT_INSN (src->end))
+ {
+ /* Move the jump before barrier so that the notes
+ which originally were or were created before jump table are
+ inside the basic block. */
+ rtx new_insn = src->end;
+ rtx tmp;
+
+ for (tmp = NEXT_INSN (src->end); tmp != barrier;
+ tmp = NEXT_INSN (tmp))
+ set_block_for_insn (tmp, src);
+
+ NEXT_INSN (PREV_INSN (new_insn)) = NEXT_INSN (new_insn);
+ PREV_INSN (NEXT_INSN (new_insn)) = PREV_INSN (new_insn);
+
+ NEXT_INSN (new_insn) = barrier;
+ NEXT_INSN (PREV_INSN (barrier)) = new_insn;
+
+ PREV_INSN (new_insn) = PREV_INSN (barrier);
+ PREV_INSN (barrier) = new_insn;
+ }
+ }
}
/* Keep only one edge out and set proper flags. */
@@ -938,6 +968,37 @@ force_nonfallthru_and_redirect (e, target)
edge new_edge;
int abnormal_edge_flags = 0;
+ /* In the case the last instruction is conditional jump to the next
+ instruction, first redirect the jump itself and then continue
+ by creating an basic block afterwards to redirect fallthru edge. */
+ if (e->src != ENTRY_BLOCK_PTR && e->dest != EXIT_BLOCK_PTR
+ && any_condjump_p (e->src->end)
+ /* When called from cfglayout, fallthru edges do not
+ neccessarily go to the next block. */
+ && e->src->next_bb == e->dest
+ && JUMP_LABEL (e->src->end) == e->dest->head)
+ {
+ rtx note;
+ edge b = unchecked_make_edge (e->src, target, 0);
+
+ if (!redirect_jump (e->src->end, block_label (target), 0))
+ abort ();
+ note = find_reg_note (e->src->end, REG_BR_PROB, NULL_RTX);
+ if (note)
+ {
+ int prob = INTVAL (XEXP (note, 0));
+
+ b->probability = prob;
+ b->count = e->count * prob / REG_BR_PROB_BASE;
+ e->probability -= e->probability;
+ e->count -= b->count;
+ if (e->probability < 0)
+ e->probability = 0;
+ if (e->count < 0)
+ e->count = 0;
+ }
+ }
+
if (e->flags & EDGE_ABNORMAL)
{
/* Irritating special case - fallthru edge to the same block as abnormal
@@ -1448,7 +1509,8 @@ commit_one_edge_insertion (e, watch_calls)
else if (GET_CODE (last) == JUMP_INSN)
abort ();
- find_sub_basic_blocks (bb);
+ /* Mark the basic block for find_sub_basic_blocks. */
+ bb->aux = &bb->aux;
}
/* Update the CFG for all queued instructions. */
@@ -1457,6 +1519,8 @@ void
commit_edge_insertions ()
{
basic_block bb;
+ sbitmap blocks;
+ bool changed = false;
#ifdef ENABLE_CHECKING
verify_flow_info ();
@@ -1470,9 +1534,26 @@ commit_edge_insertions ()
{
next = e->succ_next;
if (e->insns)
- commit_one_edge_insertion (e, false);
+ {
+ changed = true;
+ commit_one_edge_insertion (e, false);
+ }
}
}
+
+ if (!changed)
+ return;
+
+ blocks = sbitmap_alloc (last_basic_block);
+ sbitmap_zero (blocks);
+ FOR_EACH_BB (bb)
+ if (bb->aux)
+ {
+ SET_BIT (blocks, bb->index);
+ bb->aux = NULL;
+ }
+ find_many_sub_basic_blocks (blocks);
+ sbitmap_free (blocks);
}
/* Update the CFG for all queued instructions, taking special care of inserting
@@ -1482,6 +1563,8 @@ void
commit_edge_insertions_watch_calls ()
{
basic_block bb;
+ sbitmap blocks;
+ bool changed = false;
#ifdef ENABLE_CHECKING
verify_flow_info ();
@@ -1495,9 +1578,26 @@ commit_edge_insertions_watch_calls ()
{
next = e->succ_next;
if (e->insns)
- commit_one_edge_insertion (e, true);
+ {
+ changed = true;
+ commit_one_edge_insertion (e, true);
+ }
}
}
+
+ if (!changed)
+ return;
+
+ blocks = sbitmap_alloc (last_basic_block);
+ sbitmap_zero (blocks);
+ FOR_EACH_BB (bb)
+ if (bb->aux)
+ {
+ SET_BIT (blocks, bb->index);
+ bb->aux = NULL;
+ }
+ find_many_sub_basic_blocks (blocks);
+ sbitmap_free (blocks);
}
/* Print out one basic block with live information at start and end. */
@@ -2191,8 +2291,12 @@ purge_dead_edges (bb)
continue;
else if ((e->flags & EDGE_EH) && can_throw_internal (insn))
/* Keep the edges that correspond to exceptions thrown by
- this instruction. */
- continue;
+ this instruction and rematerialize the EDGE_ABNORMAL flag
+ we just cleared above. */
+ {
+ e->flags |= EDGE_ABNORMAL;
+ continue;
+ }
/* We do not need this edge. */
bb->flags |= BB_DIRTY;
diff --git a/gcc/collect2.c b/gcc/collect2.c
index c26838427d7..c901179ffeb 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -234,7 +234,7 @@ struct obstack temporary_obstack;
char * temporary_firstobj;
/* Holds the return value of pexecute. */
-int pexecute_pid;
+int pid;
/* Structure to hold all the directories in which to search for files to
execute. */
@@ -1499,7 +1499,7 @@ collect_wait (prog)
{
int status;
- pwait (pexecute_pid, &status, 0);
+ pwait (pid, &status, 0);
if (status)
{
if (WIFSIGNALED (status))
@@ -1507,7 +1507,7 @@ collect_wait (prog)
int sig = WTERMSIG (status);
error ("%s terminated with signal %d [%s]%s",
prog, sig, strsignal(sig),
- status & 0200 ? "" : ", core dumped");
+ WCOREDUMP(status) ? ", core dumped" : "");
collect_exit (FATAL_EXIT_CODE);
}
@@ -1588,9 +1588,9 @@ collect_execute (prog, argv, redir)
dup2 (redir_handle, STDERR_FILENO);
}
- pexecute_pid = pexecute (argv[0], argv, argv[0], NULL,
- &errmsg_fmt, &errmsg_arg,
- (PEXECUTE_FIRST | PEXECUTE_LAST | PEXECUTE_SEARCH));
+ pid = pexecute (argv[0], argv, argv[0], NULL,
+ &errmsg_fmt, &errmsg_arg,
+ (PEXECUTE_FIRST | PEXECUTE_LAST | PEXECUTE_SEARCH));
if (redir)
{
@@ -1602,7 +1602,7 @@ collect_execute (prog, argv, redir)
close (redir_handle);
}
- if (pexecute_pid == -1)
+ if (pid == -1)
fatal_perror (errmsg_fmt, errmsg_arg);
}
@@ -2069,7 +2069,6 @@ scan_prog_file (prog_name, which_pass)
void (*quit_handler) PARAMS ((int));
char *real_nm_argv[4];
const char **nm_argv = (const char **) real_nm_argv;
- int pid;
int argc = 0;
int pipe_fd[2];
char *p, buf[1024];
@@ -2514,7 +2513,6 @@ scan_libraries (prog_name)
void (*quit_handler) PARAMS ((int));
char *real_ldd_argv[4];
const char **ldd_argv = (const char **) real_ldd_argv;
- int pid;
int argc = 0;
int pipe_fd[2];
char buf[1024];
@@ -2647,7 +2645,7 @@ scan_libraries (prog_name)
#ifdef OBJECT_FORMAT_COFF
-#if defined(EXTENDED_COFF)
+#if defined (EXTENDED_COFF)
# define GCC_SYMBOLS(X) (SYMHEADER(X).isymMax + SYMHEADER(X).iextMax)
# define GCC_SYMENT SYMR
@@ -2660,14 +2658,26 @@ scan_libraries (prog_name)
# define GCC_SYMBOLS(X) (HEADER(ldptr).f_nsyms)
# define GCC_SYMENT SYMENT
-# define GCC_OK_SYMBOL(X) \
- (((X).n_sclass == C_EXT) && \
- ((X).n_scnum > N_UNDEF) && \
- (aix64_flag \
- || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
- || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
-# define GCC_UNDEF_SYMBOL(X) \
- (((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
+# if defined (C_WEAKEXT)
+# define GCC_OK_SYMBOL(X) \
+ (((X).n_sclass == C_EXT || (X).n_sclass == C_WEAKEXT) && \
+ ((X).n_scnum > N_UNDEF) && \
+ (aix64_flag \
+ || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
+ || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
+# define GCC_UNDEF_SYMBOL(X) \
+ (((X).n_sclass == C_EXT || (X).n_sclass == C_WEAKEXT) && \
+ ((X).n_scnum == N_UNDEF))
+# else
+# define GCC_OK_SYMBOL(X) \
+ (((X).n_sclass == C_EXT) && \
+ ((X).n_scnum > N_UNDEF) && \
+ (aix64_flag \
+ || (((X).n_type & N_TMASK) == (DT_NON << N_BTSHFT) \
+ || ((X).n_type & N_TMASK) == (DT_FCN << N_BTSHFT))))
+# define GCC_UNDEF_SYMBOL(X) \
+ (((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
+# endif
# define GCC_SYMINC(X) ((X).n_numaux+1)
# define GCC_SYMZERO(X) 0
diff --git a/gcc/combine.c b/gcc/combine.c
index 4d24807e486..ff18634ec6d 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1,6 +1,6 @@
/* Optimize by combining instructions for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -53,10 +53,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
flow.c aren't completely updated:
- reg_live_length is not updated
- - reg_n_refs is not adjusted in the rare case when a register is
- no longer required in a computation
- - there are extremely rare cases (see distribute_regnotes) when a
- REG_DEAD note is lost
- a LOG_LINKS entry that refers to an insn with multiple SETs may be
removed because there is no way to know which register it was
linking
@@ -91,6 +87,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "real.h"
#include "toplev.h"
+#ifndef SHIFT_COUNT_TRUNCATED
+#define SHIFT_COUNT_TRUNCATED 0
+#endif
+
/* It is not safe to use ordinary gen_lowpart in combine.
Use gen_lowpart_for_combine instead. See comments there. */
#define gen_lowpart dont_use_gen_lowpart_you_dummy
@@ -137,6 +137,12 @@ static int max_uid_cuid;
#define UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD(val) \
(((unsigned HOST_WIDE_INT) (val) << (BITS_PER_WORD - 1)) << 1)
+#define nonzero_bits(X, M) \
+ cached_nonzero_bits (X, M, NULL_RTX, VOIDmode, 0)
+
+#define num_sign_bit_copies(X, M) \
+ cached_num_sign_bit_copies (X, M, NULL_RTX, VOIDmode, 0)
+
/* Maximum register number, which is the size of the tables below. */
static unsigned int combine_max_regno;
@@ -202,7 +208,7 @@ static sbitmap refresh_blocks;
static int need_refresh;
/* The next group of arrays allows the recording of the last value assigned
- to (hard or pseudo) register n. We use this information to see if a
+ to (hard or pseudo) register n. We use this information to see if an
operation being processed is redundant given a prior operation performed
on the register. For example, an `and' with a constant is redundant if
all the zero bits are already known to be turned off.
@@ -375,8 +381,20 @@ static rtx make_field_assignment PARAMS ((rtx));
static rtx apply_distributive_law PARAMS ((rtx));
static rtx simplify_and_const_int PARAMS ((rtx, enum machine_mode, rtx,
unsigned HOST_WIDE_INT));
-static unsigned HOST_WIDE_INT nonzero_bits PARAMS ((rtx, enum machine_mode));
-static unsigned int num_sign_bit_copies PARAMS ((rtx, enum machine_mode));
+static unsigned HOST_WIDE_INT cached_nonzero_bits
+ PARAMS ((rtx, enum machine_mode, rtx,
+ enum machine_mode,
+ unsigned HOST_WIDE_INT));
+static unsigned HOST_WIDE_INT nonzero_bits1
+ PARAMS ((rtx, enum machine_mode, rtx,
+ enum machine_mode,
+ unsigned HOST_WIDE_INT));
+static unsigned int cached_num_sign_bit_copies
+ PARAMS ((rtx, enum machine_mode, rtx,
+ enum machine_mode, unsigned int));
+static unsigned int num_sign_bit_copies1
+ PARAMS ((rtx, enum machine_mode, rtx,
+ enum machine_mode, unsigned int));
static int merge_outer_ops PARAMS ((enum rtx_code *, HOST_WIDE_INT *,
enum rtx_code, HOST_WIDE_INT,
enum machine_mode, int *));
@@ -399,13 +417,14 @@ static void reg_dead_at_p_1 PARAMS ((rtx, rtx, void *));
static int reg_dead_at_p PARAMS ((rtx, rtx));
static void move_deaths PARAMS ((rtx, rtx, int, rtx, rtx *));
static int reg_bitfield_target_p PARAMS ((rtx, rtx));
-static void distribute_notes PARAMS ((rtx, rtx, rtx, rtx, rtx, rtx));
+static void distribute_notes PARAMS ((rtx, rtx, rtx, rtx));
static void distribute_links PARAMS ((rtx));
static void mark_used_regs_combine PARAMS ((rtx));
static int insn_cuid PARAMS ((rtx));
static void record_promoted_value PARAMS ((rtx, rtx));
static rtx reversed_comparison PARAMS ((rtx, enum machine_mode, rtx, rtx));
static enum rtx_code combine_reversed_comparison_code PARAMS ((rtx));
+static void adjust_for_new_dest PARAMS ((rtx));
/* Substitute NEWVAL, an rtx expression, into INTO, a place in some
insn. The substitution can be undone by undo_all. If INTO is already
@@ -1484,6 +1503,34 @@ cant_combine_insn_p (insn)
return 0;
}
+/* Adjust INSN after we made a change to its destination.
+
+ Changing the destination can invalidate notes that say something about
+ the results of the insn and a LOG_LINK pointing to the insn. */
+
+static void
+adjust_for_new_dest (insn)
+ rtx insn;
+{
+ rtx *loc;
+
+ /* For notes, be conservative and simply remove them. */
+ loc = &REG_NOTES (insn);
+ while (*loc)
+ {
+ enum reg_note kind = REG_NOTE_KIND (*loc);
+ if (kind == REG_EQUAL || kind == REG_EQUIV)
+ *loc = XEXP (*loc, 1);
+ else
+ loc = &XEXP (*loc, 1);
+ }
+
+ /* The new insn will have a destination that was previously the destination
+ of an insn just above it. Call distribute_links to make a LOG_LINK from
+ the next use of that destination. */
+ distribute_links (gen_rtx_INSN_LIST (VOIDmode, insn, NULL_RTX));
+}
+
/* Try to combine the insns I1 and I2 into I3.
Here I1 and I2 appear earlier than I3.
I1 can be zero; then we combine just I2 into I3.
@@ -2106,6 +2153,14 @@ try_combine (i3, i2, i1, new_direct_jump_p)
{
newpat = XVECEXP (newpat, 0, 1);
insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
+
+ if (insn_code_number >= 0)
+ {
+ /* If we will be able to accept this, we have made a change to the
+ destination of I3. This requires us to do a few adjustments. */
+ PATTERN (i3) = newpat;
+ adjust_for_new_dest (i3);
+ }
}
/* If we were combining three insns and the result is a simple SET
@@ -2376,16 +2431,9 @@ try_combine (i3, i2, i1, new_direct_jump_p)
rtx link;
/* If we will be able to accept this, we have made a change to the
- destination of I3. This can invalidate a LOG_LINKS pointing
- to I3. No other part of combine.c makes such a transformation.
-
- The new I3 will have a destination that was previously the
- destination of I1 or I2 and which was used in i2 or I3. Call
- distribute_links to make a LOG_LINK from the next use of
- that destination. */
-
+ destination of I3. This requires us to do a few adjustments. */
PATTERN (i3) = newpat;
- distribute_links (gen_rtx_INSN_LIST (VOIDmode, i3, NULL_RTX));
+ adjust_for_new_dest (i3);
/* I3 now uses what used to be its destination and which is
now I2's destination. That means we need a LOG_LINK from
@@ -2514,7 +2562,7 @@ try_combine (i3, i2, i1, new_direct_jump_p)
REG_N_DEATHS (REGNO (XEXP (note, 0)))++;
distribute_notes (new_other_notes, undobuf.other_insn,
- undobuf.other_insn, NULL_RTX, NULL_RTX, NULL_RTX);
+ undobuf.other_insn, NULL_RTX);
}
#ifdef HAVE_cc0
/* If I2 is the setter CC0 and I3 is the user CC0 then check whether
@@ -2538,15 +2586,6 @@ try_combine (i3, i2, i1, new_direct_jump_p)
rtx i3links, i2links, i1links = 0;
rtx midnotes = 0;
unsigned int regno;
- /* Compute which registers we expect to eliminate. newi2pat may be setting
- either i3dest or i2dest, so we must check it. Also, i1dest may be the
- same as i3dest, in which case newi2pat may be setting i1dest. */
- rtx elim_i2 = ((newi2pat && reg_set_p (i2dest, newi2pat))
- || i2dest_in_i2src || i2dest_in_i1src
- ? 0 : i2dest);
- rtx elim_i1 = (i1 == 0 || i1dest_in_i1src
- || (newi2pat && reg_set_p (i1dest, newi2pat))
- ? 0 : i1dest);
/* Get the old REG_NOTES and LOG_LINKS from all our insns and
clear them. */
@@ -2677,17 +2716,13 @@ try_combine (i3, i2, i1, new_direct_jump_p)
/* Distribute all the LOG_LINKS and REG_NOTES from I1, I2, and I3. */
if (i3notes)
- distribute_notes (i3notes, i3, i3, newi2pat ? i2 : NULL_RTX,
- elim_i2, elim_i1);
+ distribute_notes (i3notes, i3, i3, newi2pat ? i2 : NULL_RTX);
if (i2notes)
- distribute_notes (i2notes, i2, i3, newi2pat ? i2 : NULL_RTX,
- elim_i2, elim_i1);
+ distribute_notes (i2notes, i2, i3, newi2pat ? i2 : NULL_RTX);
if (i1notes)
- distribute_notes (i1notes, i1, i3, newi2pat ? i2 : NULL_RTX,
- elim_i2, elim_i1);
+ distribute_notes (i1notes, i1, i3, newi2pat ? i2 : NULL_RTX);
if (midnotes)
- distribute_notes (midnotes, NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
- elim_i2, elim_i1);
+ distribute_notes (midnotes, NULL_RTX, i3, newi2pat ? i2 : NULL_RTX);
/* Distribute any notes added to I2 or I3 by recog_for_combine. We
know these are REG_UNUSED and want them to go to the desired insn,
@@ -2700,7 +2735,7 @@ try_combine (i3, i2, i1, new_direct_jump_p)
if (GET_CODE (XEXP (temp, 0)) == REG)
REG_N_DEATHS (REGNO (XEXP (temp, 0)))++;
- distribute_notes (new_i2_notes, i2, i2, NULL_RTX, NULL_RTX, NULL_RTX);
+ distribute_notes (new_i2_notes, i2, i2, NULL_RTX);
}
if (new_i3_notes)
@@ -2709,7 +2744,7 @@ try_combine (i3, i2, i1, new_direct_jump_p)
if (GET_CODE (XEXP (temp, 0)) == REG)
REG_N_DEATHS (REGNO (XEXP (temp, 0)))++;
- distribute_notes (new_i3_notes, i3, i3, NULL_RTX, NULL_RTX, NULL_RTX);
+ distribute_notes (new_i3_notes, i3, i3, NULL_RTX);
}
/* If I3DEST was used in I3SRC, it really died in I3. We may need to
@@ -2727,12 +2762,11 @@ try_combine (i3, i2, i1, new_direct_jump_p)
if (newi2pat && reg_set_p (i3dest_killed, newi2pat))
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i3dest_killed,
NULL_RTX),
- NULL_RTX, i2, NULL_RTX, elim_i2, elim_i1);
+ NULL_RTX, i2, NULL_RTX);
else
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i3dest_killed,
NULL_RTX),
- NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
- elim_i2, elim_i1);
+ NULL_RTX, i3, newi2pat ? i2 : NULL_RTX);
}
if (i2dest_in_i2src)
@@ -2742,11 +2776,10 @@ try_combine (i3, i2, i1, new_direct_jump_p)
if (newi2pat && reg_set_p (i2dest, newi2pat))
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i2dest, NULL_RTX),
- NULL_RTX, i2, NULL_RTX, NULL_RTX, NULL_RTX);
+ NULL_RTX, i2, NULL_RTX);
else
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i2dest, NULL_RTX),
- NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
- NULL_RTX, NULL_RTX);
+ NULL_RTX, i3, newi2pat ? i2 : NULL_RTX);
}
if (i1dest_in_i1src)
@@ -2756,11 +2789,10 @@ try_combine (i3, i2, i1, new_direct_jump_p)
if (newi2pat && reg_set_p (i1dest, newi2pat))
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i1dest, NULL_RTX),
- NULL_RTX, i2, NULL_RTX, NULL_RTX, NULL_RTX);
+ NULL_RTX, i2, NULL_RTX);
else
distribute_notes (gen_rtx_EXPR_LIST (REG_DEAD, i1dest, NULL_RTX),
- NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
- NULL_RTX, NULL_RTX);
+ NULL_RTX, i3, newi2pat ? i2 : NULL_RTX);
}
distribute_links (i3links);
@@ -4663,7 +4695,6 @@ combine_simplify_rtx (x, op0_mode, last, in_dest)
return simplify_shift_const (x, code, mode, XEXP (x, 0),
INTVAL (XEXP (x, 1)));
-#ifdef SHIFT_COUNT_TRUNCATED
else if (SHIFT_COUNT_TRUNCATED && GET_CODE (XEXP (x, 1)) != REG)
SUBST (XEXP (x, 1),
force_to_mode (XEXP (x, 1), GET_MODE (XEXP (x, 1)),
@@ -4671,8 +4702,6 @@ combine_simplify_rtx (x, op0_mode, last, in_dest)
<< exact_log2 (GET_MODE_BITSIZE (GET_MODE (x))))
- 1,
NULL_RTX, 0));
-#endif
-
break;
case VEC_SELECT:
@@ -4914,7 +4943,9 @@ simplify_if_then_else (x)
neither 1 or -1, but it isn't worth checking for. */
if ((STORE_FLAG_VALUE == 1 || STORE_FLAG_VALUE == -1)
- && comparison_p && mode != VOIDmode && ! side_effects_p (x))
+ && comparison_p
+ && GET_MODE_CLASS (mode) == MODE_INT
+ && ! side_effects_p (x))
{
rtx t = make_compound_operation (true_rtx, SET);
rtx f = make_compound_operation (false_rtx, SET);
@@ -5256,8 +5287,8 @@ simplify_set (x)
#ifdef CANNOT_CHANGE_MODE_CLASS
&& ! (GET_CODE (dest) == REG && REGNO (dest) < FIRST_PSEUDO_REGISTER
&& REG_CANNOT_CHANGE_MODE_P (REGNO (dest),
- GET_MODE (src),
- GET_MODE (SUBREG_REG (src))))
+ GET_MODE (SUBREG_REG (src)),
+ GET_MODE (src)))
#endif
&& (GET_CODE (dest) == REG
|| (GET_CODE (dest) == SUBREG
@@ -6734,7 +6765,7 @@ make_compound_operation (x, in_code)
|| (GET_MODE_SIZE (mode) >
GET_MODE_SIZE (GET_MODE (XEXP (tem, 0)))))
{
- if (! INTEGRAL_MODE_P (mode))
+ if (! SCALAR_INT_MODE_P (mode))
break;
tem = gen_rtx_fmt_e (GET_CODE (tem), mode, XEXP (tem, 0));
}
@@ -7303,7 +7334,8 @@ force_to_mode (x, mode, mask, reg, just_select)
< GET_MODE_BITSIZE (GET_MODE (x)))
&& INTVAL (XEXP (XEXP (x, 0), 1)) < HOST_BITS_PER_WIDE_INT)
{
- temp = GEN_INT (mask << INTVAL (XEXP (XEXP (x, 0), 1)));
+ temp = gen_int_mode (mask << INTVAL (XEXP (XEXP (x, 0), 1)),
+ GET_MODE (x));
temp = gen_binary (XOR, GET_MODE (x), XEXP (XEXP (x, 0), 0), temp);
x = gen_binary (LSHIFTRT, GET_MODE (x), temp, XEXP (XEXP (x, 0), 1));
@@ -7791,6 +7823,7 @@ make_field_assignment (x)
&& (GET_MODE_SIZE (GET_MODE (XEXP (src, 0)))
< GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (src, 0)))))
&& GET_CODE (SUBREG_REG (XEXP (src, 0))) == ROTATE
+ && GET_CODE (XEXP (SUBREG_REG (XEXP (src, 0)), 0)) == CONST_INT
&& INTVAL (XEXP (SUBREG_REG (XEXP (src, 0)), 0)) == -2
&& rtx_equal_for_field_assignment_p (dest, XEXP (src, 1)))
{
@@ -8120,12 +8153,62 @@ simplify_and_const_int (x, mode, varop, constop)
return x;
}
+#define nonzero_bits_with_known(X, MODE) \
+ cached_nonzero_bits (X, MODE, known_x, known_mode, known_ret)
+
+/* The function cached_nonzero_bits is a wrapper around nonzero_bits1.
+ It avoids exponential behavior in nonzero_bits1 when X has
+ identical subexpressions on the first or the second level. */
+
+static unsigned HOST_WIDE_INT
+cached_nonzero_bits (x, mode, known_x, known_mode, known_ret)
+ rtx x;
+ enum machine_mode mode;
+ rtx known_x;
+ enum machine_mode known_mode;
+ unsigned HOST_WIDE_INT known_ret;
+{
+ if (x == known_x && mode == known_mode)
+ return known_ret;
+
+ /* Try to find identical subexpressions. If found call
+ nonzero_bits1 on X with the subexpressions as KNOWN_X and the
+ precomputed value for the subexpression as KNOWN_RET. */
+
+ if (GET_RTX_CLASS (GET_CODE (x)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x)) == 'c')
+ {
+ rtx x0 = XEXP (x, 0);
+ rtx x1 = XEXP (x, 1);
+
+ /* Check the first level. */
+ if (x0 == x1)
+ return nonzero_bits1 (x, mode, x0, mode,
+ nonzero_bits_with_known (x0, mode));
+
+ /* Check the second level. */
+ if ((GET_RTX_CLASS (GET_CODE (x0)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x0)) == 'c')
+ && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
+ return nonzero_bits1 (x, mode, x1, mode,
+ nonzero_bits_with_known (x1, mode));
+
+ if ((GET_RTX_CLASS (GET_CODE (x1)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x1)) == 'c')
+ && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1)))
+ return nonzero_bits1 (x, mode, x0, mode,
+ nonzero_bits_with_known (x0, mode));
+ }
+
+ return nonzero_bits1 (x, mode, known_x, known_mode, known_ret);
+}
+
/* We let num_sign_bit_copies recur into nonzero_bits as that is useful.
We don't let nonzero_bits recur into num_sign_bit_copies, because that
is less useful. We can't allow both, because that results in exponential
run time recursion. There is a nullstone testcase that triggered
this. This macro avoids accidental uses of num_sign_bit_copies. */
-#define num_sign_bit_copies()
+#define cached_num_sign_bit_copies()
/* Given an expression, X, compute which bits in X can be nonzero.
We don't care about bits outside of those defined in MODE.
@@ -8134,9 +8217,12 @@ simplify_and_const_int (x, mode, varop, constop)
a shift, AND, or zero_extract, we can do better. */
static unsigned HOST_WIDE_INT
-nonzero_bits (x, mode)
+nonzero_bits1 (x, mode, known_x, known_mode, known_ret)
rtx x;
enum machine_mode mode;
+ rtx known_x;
+ enum machine_mode known_mode;
+ unsigned HOST_WIDE_INT known_ret;
{
unsigned HOST_WIDE_INT nonzero = GET_MODE_MASK (mode);
unsigned HOST_WIDE_INT inner_nz;
@@ -8174,7 +8260,7 @@ nonzero_bits (x, mode)
&& GET_MODE_BITSIZE (GET_MODE (x)) <= HOST_BITS_PER_WIDE_INT
&& GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (GET_MODE (x)))
{
- nonzero &= nonzero_bits (x, GET_MODE (x));
+ nonzero &= nonzero_bits_with_known (x, GET_MODE (x));
nonzero |= GET_MODE_MASK (mode) & ~GET_MODE_MASK (GET_MODE (x));
return nonzero;
}
@@ -8256,7 +8342,7 @@ nonzero_bits (x, mode)
| ((HOST_WIDE_INT) (-1)
<< GET_MODE_BITSIZE (GET_MODE (x))));
#endif
- return nonzero_bits (tem, mode) & nonzero;
+ return nonzero_bits_with_known (tem, mode) & nonzero;
}
else if (nonzero_sign_valid && reg_nonzero_bits[REGNO (x)])
{
@@ -8331,11 +8417,12 @@ nonzero_bits (x, mode)
break;
case TRUNCATE:
- nonzero &= (nonzero_bits (XEXP (x, 0), mode) & GET_MODE_MASK (mode));
+ nonzero &= (nonzero_bits_with_known (XEXP (x, 0), mode)
+ & GET_MODE_MASK (mode));
break;
case ZERO_EXTEND:
- nonzero &= nonzero_bits (XEXP (x, 0), mode);
+ nonzero &= nonzero_bits_with_known (XEXP (x, 0), mode);
if (GET_MODE (XEXP (x, 0)) != VOIDmode)
nonzero &= GET_MODE_MASK (GET_MODE (XEXP (x, 0)));
break;
@@ -8344,7 +8431,7 @@ nonzero_bits (x, mode)
/* If the sign bit is known clear, this is the same as ZERO_EXTEND.
Otherwise, show all the bits in the outer mode but not the inner
may be nonzero. */
- inner_nz = nonzero_bits (XEXP (x, 0), mode);
+ inner_nz = nonzero_bits_with_known (XEXP (x, 0), mode);
if (GET_MODE (XEXP (x, 0)) != VOIDmode)
{
inner_nz &= GET_MODE_MASK (GET_MODE (XEXP (x, 0)));
@@ -8359,19 +8446,21 @@ nonzero_bits (x, mode)
break;
case AND:
- nonzero &= (nonzero_bits (XEXP (x, 0), mode)
- & nonzero_bits (XEXP (x, 1), mode));
+ nonzero &= (nonzero_bits_with_known (XEXP (x, 0), mode)
+ & nonzero_bits_with_known (XEXP (x, 1), mode));
break;
case XOR: case IOR:
case UMIN: case UMAX: case SMIN: case SMAX:
{
- unsigned HOST_WIDE_INT nonzero0 = nonzero_bits (XEXP (x, 0), mode);
+ unsigned HOST_WIDE_INT nonzero0 =
+ nonzero_bits_with_known (XEXP (x, 0), mode);
/* Don't call nonzero_bits for the second time if it cannot change
anything. */
if ((nonzero & nonzero0) != nonzero)
- nonzero &= (nonzero0 | nonzero_bits (XEXP (x, 1), mode));
+ nonzero &= (nonzero0
+ | nonzero_bits_with_known (XEXP (x, 1), mode));
}
break;
@@ -8384,8 +8473,10 @@ nonzero_bits (x, mode)
computing the width (position of the highest-order nonzero bit)
and the number of low-order zero bits for each value. */
{
- unsigned HOST_WIDE_INT nz0 = nonzero_bits (XEXP (x, 0), mode);
- unsigned HOST_WIDE_INT nz1 = nonzero_bits (XEXP (x, 1), mode);
+ unsigned HOST_WIDE_INT nz0 =
+ nonzero_bits_with_known (XEXP (x, 0), mode);
+ unsigned HOST_WIDE_INT nz1 =
+ nonzero_bits_with_known (XEXP (x, 1), mode);
int width0 = floor_log2 (nz0) + 1;
int width1 = floor_log2 (nz1) + 1;
int low0 = floor_log2 (nz0 & -nz0);
@@ -8469,7 +8560,7 @@ nonzero_bits (x, mode)
if (SUBREG_PROMOTED_VAR_P (x) && SUBREG_PROMOTED_UNSIGNED_P (x) > 0)
nonzero = (GET_MODE_MASK (GET_MODE (x))
- & nonzero_bits (SUBREG_REG (x), GET_MODE (x)));
+ & nonzero_bits_with_known (SUBREG_REG (x), GET_MODE (x)));
/* If the inner mode is a single word for both the host and target
machines, we can compute this from which bits of the inner
@@ -8478,7 +8569,7 @@ nonzero_bits (x, mode)
&& (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x)))
<= HOST_BITS_PER_WIDE_INT))
{
- nonzero &= nonzero_bits (SUBREG_REG (x), mode);
+ nonzero &= nonzero_bits_with_known (SUBREG_REG (x), mode);
#if defined (WORD_REGISTER_OPERATIONS) && defined (LOAD_EXTEND_OP)
/* If this is a typical RISC machine, we only have to worry
@@ -8521,7 +8612,8 @@ nonzero_bits (x, mode)
unsigned int width = GET_MODE_BITSIZE (inner_mode);
int count = INTVAL (XEXP (x, 1));
unsigned HOST_WIDE_INT mode_mask = GET_MODE_MASK (inner_mode);
- unsigned HOST_WIDE_INT op_nonzero = nonzero_bits (XEXP (x, 0), mode);
+ unsigned HOST_WIDE_INT op_nonzero =
+ nonzero_bits_with_known (XEXP (x, 0), mode);
unsigned HOST_WIDE_INT inner = op_nonzero & mode_mask;
unsigned HOST_WIDE_INT outer = 0;
@@ -8556,8 +8648,8 @@ nonzero_bits (x, mode)
break;
case IF_THEN_ELSE:
- nonzero &= (nonzero_bits (XEXP (x, 1), mode)
- | nonzero_bits (XEXP (x, 2), mode));
+ nonzero &= (nonzero_bits_with_known (XEXP (x, 1), mode)
+ | nonzero_bits_with_known (XEXP (x, 2), mode));
break;
default:
@@ -8568,17 +8660,74 @@ nonzero_bits (x, mode)
}
/* See the macro definition above. */
-#undef num_sign_bit_copies
+#undef cached_num_sign_bit_copies
+#define num_sign_bit_copies_with_known(X, M) \
+ cached_num_sign_bit_copies (X, M, known_x, known_mode, known_ret)
+
+/* The function cached_num_sign_bit_copies is a wrapper around
+ num_sign_bit_copies1. It avoids exponential behavior in
+ num_sign_bit_copies1 when X has identical subexpressions on the
+ first or the second level. */
+
+static unsigned int
+cached_num_sign_bit_copies (x, mode, known_x, known_mode, known_ret)
+ rtx x;
+ enum machine_mode mode;
+ rtx known_x;
+ enum machine_mode known_mode;
+ unsigned int known_ret;
+{
+ if (x == known_x && mode == known_mode)
+ return known_ret;
+
+ /* Try to find identical subexpressions. If found call
+ num_sign_bit_copies1 on X with the subexpressions as KNOWN_X and
+ the precomputed value for the subexpression as KNOWN_RET. */
+
+ if (GET_RTX_CLASS (GET_CODE (x)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x)) == 'c')
+ {
+ rtx x0 = XEXP (x, 0);
+ rtx x1 = XEXP (x, 1);
+
+ /* Check the first level. */
+ if (x0 == x1)
+ return
+ num_sign_bit_copies1 (x, mode, x0, mode,
+ num_sign_bit_copies_with_known (x0, mode));
+
+ /* Check the second level. */
+ if ((GET_RTX_CLASS (GET_CODE (x0)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x0)) == 'c')
+ && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
+ return
+ num_sign_bit_copies1 (x, mode, x1, mode,
+ num_sign_bit_copies_with_known (x1, mode));
+
+ if ((GET_RTX_CLASS (GET_CODE (x1)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x1)) == 'c')
+ && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1)))
+ return
+ num_sign_bit_copies1 (x, mode, x0, mode,
+ num_sign_bit_copies_with_known (x0, mode));
+ }
+
+ return num_sign_bit_copies1 (x, mode, known_x, known_mode, known_ret);
+}
+
/* Return the number of bits at the high-order end of X that are known to
be equal to the sign bit. X will be used in mode MODE; if MODE is
VOIDmode, X will be used in its own mode. The returned value will always
be between 1 and the number of bits in MODE. */
static unsigned int
-num_sign_bit_copies (x, mode)
+num_sign_bit_copies1 (x, mode, known_x, known_mode, known_ret)
rtx x;
enum machine_mode mode;
+ rtx known_x;
+ enum machine_mode known_mode;
+ unsigned int known_ret;
{
enum rtx_code code = GET_CODE (x);
unsigned int bitwidth;
@@ -8601,7 +8750,7 @@ num_sign_bit_copies (x, mode)
/* For a smaller object, just ignore the high bits. */
if (bitwidth < GET_MODE_BITSIZE (GET_MODE (x)))
{
- num0 = num_sign_bit_copies (x, GET_MODE (x));
+ num0 = num_sign_bit_copies_with_known (x, GET_MODE (x));
return MAX (1,
num0 - (int) (GET_MODE_BITSIZE (GET_MODE (x)) - bitwidth));
}
@@ -8650,7 +8799,7 @@ num_sign_bit_copies (x, mode)
tem = get_last_value (x);
if (tem != 0)
- return num_sign_bit_copies (tem, mode);
+ return num_sign_bit_copies_with_known (tem, mode);
if (nonzero_sign_valid && reg_sign_bit_copies[REGNO (x)] != 0
&& GET_MODE_BITSIZE (GET_MODE (x)) == bitwidth)
@@ -8683,7 +8832,7 @@ num_sign_bit_copies (x, mode)
if (SUBREG_PROMOTED_VAR_P (x) && ! SUBREG_PROMOTED_UNSIGNED_P (x))
{
- num0 = num_sign_bit_copies (SUBREG_REG (x), mode);
+ num0 = num_sign_bit_copies_with_known (SUBREG_REG (x), mode);
return MAX ((int) bitwidth
- (int) GET_MODE_BITSIZE (GET_MODE (x)) + 1,
num0);
@@ -8692,7 +8841,7 @@ num_sign_bit_copies (x, mode)
/* For a smaller object, just ignore the high bits. */
if (bitwidth <= GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x))))
{
- num0 = num_sign_bit_copies (SUBREG_REG (x), VOIDmode);
+ num0 = num_sign_bit_copies_with_known (SUBREG_REG (x), VOIDmode);
return MAX (1, (num0
- (int) (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x)))
- bitwidth)));
@@ -8714,7 +8863,7 @@ num_sign_bit_copies (x, mode)
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))
&& LOAD_EXTEND_OP (GET_MODE (SUBREG_REG (x))) == SIGN_EXTEND
&& GET_CODE (SUBREG_REG (x)) == MEM)
- return num_sign_bit_copies (SUBREG_REG (x), mode);
+ return num_sign_bit_copies_with_known (SUBREG_REG (x), mode);
#endif
#endif
break;
@@ -8726,16 +8875,16 @@ num_sign_bit_copies (x, mode)
case SIGN_EXTEND:
return (bitwidth - GET_MODE_BITSIZE (GET_MODE (XEXP (x, 0)))
- + num_sign_bit_copies (XEXP (x, 0), VOIDmode));
+ + num_sign_bit_copies_with_known (XEXP (x, 0), VOIDmode));
case TRUNCATE:
/* For a smaller object, just ignore the high bits. */
- num0 = num_sign_bit_copies (XEXP (x, 0), VOIDmode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), VOIDmode);
return MAX (1, (num0 - (int) (GET_MODE_BITSIZE (GET_MODE (XEXP (x, 0)))
- bitwidth)));
case NOT:
- return num_sign_bit_copies (XEXP (x, 0), mode);
+ return num_sign_bit_copies_with_known (XEXP (x, 0), mode);
case ROTATE: case ROTATERT:
/* If we are rotating left by a number of bits less than the number
@@ -8745,7 +8894,7 @@ num_sign_bit_copies (x, mode)
&& INTVAL (XEXP (x, 1)) >= 0
&& INTVAL (XEXP (x, 1)) < (int) bitwidth)
{
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
return MAX (1, num0 - (code == ROTATE ? INTVAL (XEXP (x, 1))
: (int) bitwidth - INTVAL (XEXP (x, 1))));
}
@@ -8756,7 +8905,7 @@ num_sign_bit_copies (x, mode)
is known to be positive, the number of sign bit copies is the
same as that of the input. Finally, if the input has just one bit
that might be nonzero, all the bits are copies of the sign bit. */
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
if (bitwidth > HOST_BITS_PER_WIDE_INT)
return num0 > 1 ? num0 - 1 : 1;
@@ -8774,8 +8923,8 @@ num_sign_bit_copies (x, mode)
case SMIN: case SMAX: case UMIN: case UMAX:
/* Logical operations will preserve the number of sign-bit copies.
MIN and MAX operations always return one of the operands. */
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
- num1 = num_sign_bit_copies (XEXP (x, 1), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
+ num1 = num_sign_bit_copies_with_known (XEXP (x, 1), mode);
return MIN (num0, num1);
case PLUS: case MINUS:
@@ -8793,8 +8942,8 @@ num_sign_bit_copies (x, mode)
: bitwidth - floor_log2 (nonzero) - 1);
}
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
- num1 = num_sign_bit_copies (XEXP (x, 1), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
+ num1 = num_sign_bit_copies_with_known (XEXP (x, 1), mode);
result = MAX (1, MIN (num0, num1) - 1);
#ifdef POINTERS_EXTEND_UNSIGNED
@@ -8816,8 +8965,8 @@ num_sign_bit_copies (x, mode)
to be positive, we must allow for an additional bit since negating
a negative number can remove one sign bit copy. */
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
- num1 = num_sign_bit_copies (XEXP (x, 1), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
+ num1 = num_sign_bit_copies_with_known (XEXP (x, 1), mode);
result = bitwidth - (bitwidth - num0) - (bitwidth - num1);
if (result > 0
@@ -8840,17 +8989,17 @@ num_sign_bit_copies (x, mode)
& ((HOST_WIDE_INT) 1 << (bitwidth - 1))) != 0)
return 1;
else
- return num_sign_bit_copies (XEXP (x, 0), mode);
+ return num_sign_bit_copies_with_known (XEXP (x, 0), mode);
case UMOD:
/* The result must be <= the second operand. */
- return num_sign_bit_copies (XEXP (x, 1), mode);
+ return num_sign_bit_copies_with_known (XEXP (x, 1), mode);
case DIV:
/* Similar to unsigned division, except that we have to worry about
the case where the divisor is negative, in which case we have
to add 1. */
- result = num_sign_bit_copies (XEXP (x, 0), mode);
+ result = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
if (result > 1
&& (bitwidth > HOST_BITS_PER_WIDE_INT
|| (nonzero_bits (XEXP (x, 1), mode)
@@ -8860,7 +9009,7 @@ num_sign_bit_copies (x, mode)
return result;
case MOD:
- result = num_sign_bit_copies (XEXP (x, 1), mode);
+ result = num_sign_bit_copies_with_known (XEXP (x, 1), mode);
if (result > 1
&& (bitwidth > HOST_BITS_PER_WIDE_INT
|| (nonzero_bits (XEXP (x, 1), mode)
@@ -8872,7 +9021,7 @@ num_sign_bit_copies (x, mode)
case ASHIFTRT:
/* Shifts by a constant add to the number of bits equal to the
sign bit. */
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
if (GET_CODE (XEXP (x, 1)) == CONST_INT
&& INTVAL (XEXP (x, 1)) > 0)
num0 = MIN ((int) bitwidth, num0 + INTVAL (XEXP (x, 1)));
@@ -8886,12 +9035,12 @@ num_sign_bit_copies (x, mode)
|| INTVAL (XEXP (x, 1)) >= (int) bitwidth)
return 1;
- num0 = num_sign_bit_copies (XEXP (x, 0), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 0), mode);
return MAX (1, num0 - INTVAL (XEXP (x, 1)));
case IF_THEN_ELSE:
- num0 = num_sign_bit_copies (XEXP (x, 1), mode);
- num1 = num_sign_bit_copies (XEXP (x, 2), mode);
+ num0 = num_sign_bit_copies_with_known (XEXP (x, 1), mode);
+ num1 = num_sign_bit_copies_with_known (XEXP (x, 2), mode);
return MIN (num0, num1);
case EQ: case NE: case GE: case GT: case LE: case LT:
@@ -9123,10 +9272,8 @@ simplify_shift_const (x, code, result_mode, varop, orig_count)
/* Make sure and truncate the "natural" shift on the way in. We don't
want to do this inside the loop as it makes it more difficult to
combine shifts. */
-#ifdef SHIFT_COUNT_TRUNCATED
if (SHIFT_COUNT_TRUNCATED)
orig_count &= GET_MODE_BITSIZE (mode) - 1;
-#endif
/* If we were given an invalid count, don't do anything except exactly
what was requested. */
@@ -9991,12 +10138,8 @@ gen_lowpart_for_combine (mode, x)
result = gen_lowpart_common (mode, x);
#ifdef CANNOT_CHANGE_MODE_CLASS
- if (result != 0
- && GET_CODE (result) == SUBREG
- && GET_CODE (SUBREG_REG (result)) == REG
- && REGNO (SUBREG_REG (result)) >= FIRST_PSEUDO_REGISTER)
- SET_REGNO_REG_SET (&subregs_of_mode[GET_MODE (result)],
- REGNO (SUBREG_REG (result)));
+ if (result != 0 && GET_CODE (result) == SUBREG)
+ record_subregs_of_mode (result);
#endif
if (result)
@@ -10071,6 +10214,11 @@ gen_binary (code, mode, op0, op1)
rtx result;
rtx tem;
+ if (GET_CODE (op0) == CLOBBER)
+ return op0;
+ else if (GET_CODE (op1) == CLOBBER)
+ return op1;
+
if (GET_RTX_CLASS (code) == 'c'
&& swap_commutative_operands_p (op0, op1))
tem = op0, op0 = op1, op1 = tem;
@@ -10510,8 +10658,10 @@ simplify_comparison (code, pop0, pop1)
a constant that has only a single bit set and are comparing it
with zero, we can convert this into an equality comparison
between the position and the location of the single bit. */
-
- if (GET_CODE (XEXP (op0, 0)) == CONST_INT
+ /* Except we can't if SHIFT_COUNT_TRUNCATED is set, since we might
+ have already reduced the shift count modulo the word size. */
+ if (!SHIFT_COUNT_TRUNCATED
+ && GET_CODE (XEXP (op0, 0)) == CONST_INT
&& XEXP (op0, 1) == const1_rtx
&& equality_comparison_p && const_op == 0
&& (i = exact_log2 (INTVAL (XEXP (op0, 0)))) >= 0)
@@ -10663,34 +10813,61 @@ simplify_comparison (code, pop0, pop1)
break;
case SUBREG:
- /* Check for the case where we are comparing A - C1 with C2,
- both constants are smaller than 1/2 the maximum positive
- value in MODE, and the comparison is equality or unsigned.
- In that case, if A is either zero-extended to MODE or has
- sufficient sign bits so that the high-order bit in MODE
- is a copy of the sign in the inner mode, we can prove that it is
- safe to do the operation in the wider mode. This simplifies
- many range checks. */
+ /* Check for the case where we are comparing A - C1 with C2, that is
+
+ (subreg:MODE (plus (A) (-C1))) op (C2)
+
+ with C1 a constant, and try to lift the SUBREG, i.e. to do the
+ comparison in the wider mode. One of the following two conditions
+ must be true in order for this to be valid:
+
+ 1. The mode extension results in the same bit pattern being added
+ on both sides and the comparison is equality or unsigned. As
+ C2 has been truncated to fit in MODE, the pattern can only be
+ all 0s or all 1s.
+
+ 2. The mode extension results in the sign bit being copied on
+ each side.
+
+ The difficulty here is that we have predicates for A but not for
+ (A - C1) so we need to check that C1 is within proper bounds so
+ as to perturbate A as little as possible. */
if (mode_width <= HOST_BITS_PER_WIDE_INT
&& subreg_lowpart_p (op0)
+ && GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))) > mode_width
&& GET_CODE (SUBREG_REG (op0)) == PLUS
- && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT
- && INTVAL (XEXP (SUBREG_REG (op0), 1)) < 0
- && (-INTVAL (XEXP (SUBREG_REG (op0), 1))
- < (HOST_WIDE_INT) (GET_MODE_MASK (mode) / 2))
- && (unsigned HOST_WIDE_INT) const_op < GET_MODE_MASK (mode) / 2
- && (0 == (nonzero_bits (XEXP (SUBREG_REG (op0), 0),
- GET_MODE (SUBREG_REG (op0)))
- & ~GET_MODE_MASK (mode))
- || (num_sign_bit_copies (XEXP (SUBREG_REG (op0), 0),
- GET_MODE (SUBREG_REG (op0)))
- > (unsigned int)
- (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0)))
- - GET_MODE_BITSIZE (mode)))))
- {
- op0 = SUBREG_REG (op0);
- continue;
+ && GET_CODE (XEXP (SUBREG_REG (op0), 1)) == CONST_INT)
+ {
+ enum machine_mode inner_mode = GET_MODE (SUBREG_REG (op0));
+ rtx a = XEXP (SUBREG_REG (op0), 0);
+ HOST_WIDE_INT c1 = -INTVAL (XEXP (SUBREG_REG (op0), 1));
+
+ if ((c1 > 0
+ && (unsigned HOST_WIDE_INT) c1
+ < (unsigned HOST_WIDE_INT) 1 << (mode_width - 1)
+ && (equality_comparison_p || unsigned_comparison_p)
+ /* (A - C1) zero-extends if it is positive and sign-extends
+ if it is negative, C2 both zero- and sign-extends. */
+ && ((0 == (nonzero_bits (a, inner_mode)
+ & ~GET_MODE_MASK (mode))
+ && const_op >= 0)
+ /* (A - C1) sign-extends if it is positive and 1-extends
+ if it is negative, C2 both sign- and 1-extends. */
+ || (num_sign_bit_copies (a, inner_mode)
+ > (unsigned int) (GET_MODE_BITSIZE (inner_mode)
+ - mode_width)
+ && const_op < 0)))
+ || ((unsigned HOST_WIDE_INT) c1
+ < (unsigned HOST_WIDE_INT) 1 << (mode_width - 2)
+ /* (A - C1) always sign-extends, like C2. */
+ && num_sign_bit_copies (a, inner_mode)
+ > (unsigned int) (GET_MODE_BITSIZE (inner_mode)
+ - mode_width - 1)))
+ {
+ op0 = SUBREG_REG (op0);
+ continue;
+ }
}
/* If the inner mode is narrower and we are extracting the low part,
@@ -10926,6 +11103,9 @@ simplify_comparison (code, pop0, pop1)
represents the low part, permute the SUBREG and the AND and
try again. */
if (GET_CODE (XEXP (op0, 0)) == SUBREG
+ /* Require an integral mode, to avoid creating something like
+ (AND:SF ...). */
+ && SCALAR_INT_MODE_P (GET_MODE (SUBREG_REG (XEXP (op0, 0))))
&& (0
#ifdef WORD_REGISTER_OPERATIONS
|| ((mode_width
@@ -11343,7 +11523,45 @@ update_table_tick (x)
/* Note that we can't have an "E" in values stored; see
get_last_value_validate. */
if (fmt[i] == 'e')
- update_table_tick (XEXP (x, i));
+ {
+ /* Check for identical subexpressions. If x contains
+ identical subexpression we only have to traverse one of
+ them. */
+ if (i == 0
+ && (GET_RTX_CLASS (code) == '2'
+ || GET_RTX_CLASS (code) == 'c'))
+ {
+ /* Note that at this point x1 has already been
+ processed. */
+ rtx x0 = XEXP (x, 0);
+ rtx x1 = XEXP (x, 1);
+
+ /* If x0 and x1 are identical then there is no need to
+ process x0. */
+ if (x0 == x1)
+ break;
+
+ /* If x0 is identical to a subexpression of x1 then while
+ processing x1, x0 has already been processed. Thus we
+ are done with x. */
+ if ((GET_RTX_CLASS (GET_CODE (x1)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x1)) == 'c')
+ && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1)))
+ break;
+
+ /* If x1 is identical to a subexpression of x0 then we
+ still have to process the rest of x0. */
+ if ((GET_RTX_CLASS (GET_CODE (x0)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x0)) == 'c')
+ && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
+ {
+ update_table_tick (XEXP (x0, x1 == XEXP (x0, 0) ? 1 : 0));
+ break;
+ }
+ }
+
+ update_table_tick (XEXP (x, i));
+ }
}
/* Record that REG is set to VALUE in insn INSN. If VALUE is zero, we
@@ -11696,11 +11914,52 @@ get_last_value_validate (loc, insn, tick, replace)
}
for (i = 0; i < len; i++)
- if ((fmt[i] == 'e'
- && get_last_value_validate (&XEXP (x, i), insn, tick, replace) == 0)
- /* Don't bother with these. They shouldn't occur anyway. */
- || fmt[i] == 'E')
- return 0;
+ {
+ if (fmt[i] == 'e')
+ {
+ /* Check for identical subexpressions. If x contains
+ identical subexpression we only have to traverse one of
+ them. */
+ if (i == 1
+ && (GET_RTX_CLASS (GET_CODE (x)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x)) == 'c'))
+ {
+ /* Note that at this point x0 has already been checked
+ and found valid. */
+ rtx x0 = XEXP (x, 0);
+ rtx x1 = XEXP (x, 1);
+
+ /* If x0 and x1 are identical then x is also valid. */
+ if (x0 == x1)
+ return 1;
+
+ /* If x1 is identical to a subexpression of x0 then
+ while checking x0, x1 has already been checked. Thus
+ it is valid and so as x. */
+ if ((GET_RTX_CLASS (GET_CODE (x0)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x0)) == 'c')
+ && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1)))
+ return 1;
+
+ /* If x0 is identical to a subexpression of x1 then x is
+ valid iff the rest of x1 is valid. */
+ if ((GET_RTX_CLASS (GET_CODE (x1)) == '2'
+ || GET_RTX_CLASS (GET_CODE (x1)) == 'c')
+ && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1)))
+ return
+ get_last_value_validate (&XEXP (x1,
+ x0 == XEXP (x1, 0) ? 1 : 0),
+ insn, tick, replace);
+ }
+
+ if (get_last_value_validate (&XEXP (x, i), insn, tick,
+ replace) == 0)
+ return 0;
+ }
+ /* Don't bother with these. They shouldn't occur anyway. */
+ else if (fmt[i] == 'E')
+ return 0;
+ }
/* If we haven't found a reason for it to be invalid, it is valid. */
return 1;
@@ -12276,19 +12535,14 @@ reg_bitfield_target_p (x, body)
as appropriate. I3 and I2 are the insns resulting from the combination
insns including FROM (I2 may be zero).
- ELIM_I2 and ELIM_I1 are either zero or registers that we know will
- not need REG_DEAD notes because they are being substituted for. This
- saves searching in the most common cases.
-
Each note in the list is either ignored or placed on some insns, depending
on the type of note. */
static void
-distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
+distribute_notes (notes, from_insn, i3, i2)
rtx notes;
rtx from_insn;
rtx i3, i2;
- rtx elim_i2, elim_i1;
{
rtx note, next_note;
rtx tem;
@@ -12308,7 +12562,6 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
{
case REG_BR_PROB:
case REG_BR_PRED:
- case REG_EXEC_COUNT:
/* Doesn't matter much where we put this, as long as it's somewhere.
It is preferable to keep these notes on branches, which is most
likely to be i3. */
@@ -12350,6 +12603,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
abort ();
break;
+ case REG_ALWAYS_RETURN:
case REG_NORETURN:
case REG_SETJMP:
/* These notes must remain with the call. It should not be
@@ -12551,10 +12805,6 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
&& reg_referenced_p (XEXP (note, 0), PATTERN (i2)))
place = i2;
- if (rtx_equal_p (XEXP (note, 0), elim_i2)
- || rtx_equal_p (XEXP (note, 0), elim_i1))
- break;
-
if (place == 0)
{
basic_block bb = this_basic_block;
@@ -12570,8 +12820,11 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
/* If the register is being set at TEM, see if that is all
TEM is doing. If so, delete TEM. Otherwise, make this
- into a REG_UNUSED note instead. */
- if (reg_set_p (XEXP (note, 0), PATTERN (tem)))
+ into a REG_UNUSED note instead. Don't delete sets to
+ global register vars. */
+ if ((REGNO (XEXP (note, 0)) >= FIRST_PSEUDO_REGISTER
+ || !global_regs[REGNO (XEXP (note, 0))])
+ && reg_set_p (XEXP (note, 0), PATTERN (tem)))
{
rtx set = single_set (tem);
rtx inner_dest = 0;
@@ -12612,7 +12865,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
PATTERN (tem) = pc_rtx;
distribute_notes (REG_NOTES (tem), tem, tem,
- NULL_RTX, NULL_RTX, NULL_RTX);
+ NULL_RTX);
distribute_links (LOG_LINKS (tem));
PUT_CODE (tem, NOTE);
@@ -12627,7 +12880,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
distribute_notes (REG_NOTES (cc0_setter),
cc0_setter, cc0_setter,
- NULL_RTX, NULL_RTX, NULL_RTX);
+ NULL_RTX);
distribute_links (LOG_LINKS (cc0_setter));
PUT_CODE (cc0_setter, NOTE);
@@ -12781,7 +13034,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
= gen_rtx_EXPR_LIST (REG_DEAD, piece, NULL_RTX);
distribute_notes (new_note, place, place,
- NULL_RTX, NULL_RTX, NULL_RTX);
+ NULL_RTX);
}
else if (! refers_to_regno_p (i, i + 1,
PATTERN (place), 0)
@@ -12851,8 +13104,8 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
}
/* Similarly to above, distribute the LOG_LINKS that used to be present on
- I3, I2, and I1 to new locations. This is also called in one case to
- add a link pointing at I3 when I3's destination is changed. */
+ I3, I2, and I1 to new locations. This is also called to add a link
+ pointing at I3 when I3's destination is changed. */
static void
distribute_links (links)
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 3e889ae2280..7b242e9e759 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1,5 +1,5 @@
# GCC build-, host- and target-specific configuration file.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -212,14 +212,62 @@ target_gtfiles=
# Obsolete configurations.
case $machine in
- m88k-*-aout* \
- | m88k-*-openbsd* \
- | m88k-*-sysv4* \
- | mips-sni-sysv4 \
- | mn10200-*-* \
- | ns32k-*-openbsd* \
- | romp-*-openbsd* \
- | vax-*-vms* \
+ m88k-*-* \
+ | mn10200-*-* \
+ | romp-*-* \
+ | alpha*-*-interix* \
+ | alpha*-*-linux*libc1* \
+ | alpha*-*-linux*ecoff* \
+ | arm*-*-aout* \
+ | arm*-*-conix* \
+ | arm*-*-oabi \
+ | strongarm-*-coff* \
+ | hppa1.0-*-osf* \
+ | hppa1.0-*-bsd* \
+ | hppa1.[01]-*-hpux[789]* \
+ | hppa*-*-hiux* \
+ | hppa*-*-lites* \
+ | i?86-*-win32 \
+ | m68000-hp-bsd* \
+ | m68000-sun-sunos* \
+ | m68000-att-sysv* \
+ | m68k-atari-sysv* \
+ | m68k-motorola-sysv* \
+ | m68k-ncr-sysv* \
+ | m68k-plexus-sysv* \
+ | m68k-tti-* \
+ | m68k-crds-unos* \
+ | m68k-cbm-sysv* \
+ | m68k-ccur-rtu* \
+ | m68k-hp-bsd* \
+ | m68k-sun-mach* \
+ | m68k-sun-sunos* \
+ | m68k-*-linux*aout* \
+ | m68k-*-linux*libc1* \
+ | m68k-*-psos* \
+ | mips*-*-ecoff* \
+ | mips-sni-sysv4 \
+ | mips64orion-*-rtems* \
+ | ns32k-*-openbsd* \
+ | powerpc*-*-sysv* \
+ | powerpc*-*-linux*libc1* \
+ | rs6000-ibm-aix[123]* \
+ | rs6000-bull-bosx \
+ | rs6000-*-mach* \
+ | sparc-*-aout* \
+ | sparc-*-netbsd*aout* \
+ | sparc-*-bsd* \
+ | sparc-*-chorusos* \
+ | sparc-*-linux*aout* \
+ | sparc-*-linux*libc1* \
+ | sparc-*-lynxos* \
+ | sparc-hal-solaris2* \
+ | sparc-*-sunos[34]* \
+ | sparclet-*-aout* \
+ | sparclite-*-aout* \
+ | sparc86x-*-aout* \
+ | v850-*-rtems* \
+ | vax-*-vms* \
)
if test "x$enable_obsolete" != xyes; then
echo "*** Configuration $machine is obsolete." >&2
@@ -250,11 +298,11 @@ xscale-*-*)
;;
i[34567]86-*-*)
cpu_type=i386
- extra_headers="mmintrin.h xmmintrin.h"
+ extra_headers="mmintrin.h xmmintrin.h emmintrin.h pmmintrin.h"
;;
x86_64-*-*)
cpu_type=i386
- extra_headers="mmintrin.h xmmintrin.h"
+ extra_headers="mmintrin.h xmmintrin.h emmintrin.h pmmintrin.h"
;;
ia64-*-*)
extra_headers=ia64intrin.h
@@ -367,7 +415,18 @@ case $machine in
xm_defines=POSIX
gas=yes
gnu_ld=yes
+
+ # NetBSD 2.0 and later get POSIX threads enabled by default.
+ # Allow them to be explicitly enabled on any other version.
case x${enable_threads} in
+ x)
+ case $machine in
+ *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
+ thread_file='posix'
+ tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
+ ;;
+ esac
+ ;;
xyes | xposix)
thread_file='posix'
tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
@@ -639,7 +698,7 @@ arm*-*-netbsd*)
use_collect2=yes
;;
arm*-*-linux*) # ARM GNU/Linux with ELF
- tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
+ tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
gnu_ld=yes
@@ -733,7 +792,7 @@ frv-*-elf)
;;
h8300-*-rtems*)
xm_defines=POSIX
- tmake_file="h8300/t-h8300 t-rtems"
+ tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems"
tm_file="h8300/h8300.h h8300/rtems.h rtems.h"
if test x$enable_threads = xyes; then
thread_file='rtems'
@@ -753,7 +812,7 @@ hppa*64*-*-linux* | parisc*64*-*-linux*)
gas=yes gnu_ld=yes
;;
hppa*-*-linux* | parisc*-*-linux*)
- target_cpu_default="MASK_PA_11"
+ target_cpu_default="MASK_PA_11 | MASK_NO_SPACE_REGS"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \
pa/pa32-regs.h pa/pa32-linux.h"
tmake_file="t-slibgcc-elf-ver t-linux pa/t-linux"
@@ -779,8 +838,11 @@ hppa1.1-*-rtems*)
xm_defines=POSIX
target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT)"
tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h pa/rtems.h rtems.h"
- tmake_file="pa/t-bsd pa/t-pro"
+ tmake_file="pa/t-bsd pa/t-pro t-rtems"
xmake_file="pa/x-ada"
+ if test x$enable_threads = xyes; then
+ thread_file='rtems'
+ fi
;;
hppa1.0-*-osf*)
tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-osf.h"
@@ -894,20 +956,17 @@ hppa*64*-*-hpux11*)
tmake_file="pa/t-pa64 pa/t-pa-hpux"
xmake_file="pa/x-ada"
target_cpu_default="(MASK_PA_11|MASK_PA_20|MASK_GAS)"
-
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
if test x$gnu_ld = xyes
then
target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
fi
-# if [ x$enable_threads = x ]; then
-# enable_threads=$have_pthread_h
-# fi
-# if [ x$enable_threads = xyes ]; then
-# thread_file='dce'
-# tmake_file="${tmake_file} pa/t-dce-thr"
-# fi
+ case x${enable_threads} in
+ xyes | xposix )
+ thread_file=posix
+ ;;
+ esac
install_headers_dir=install-headers-cpio
- use_collect2=yes
;;
hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
target_cpu_default="MASK_PA_11"
@@ -915,13 +974,11 @@ hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
xm_defines=POSIX
tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
xmake_file="pa/x-ada"
-# if test x$enable_threads = x; then
-# enable_threads=$have_pthread_h
-# fi
-# if test x$enable_threads = xyes; then
-# thread_file='dce'
-# tmake_file="${tmake_file} pa/t-dce-thr"
-# fi
+ case x${enable_threads} in
+ xyes | xposix )
+ thread_file=posix
+ ;;
+ esac
install_headers_dir=install-headers-cpio
use_collect2=yes
;;
@@ -930,13 +987,11 @@ hppa1.0-*-hpux11*)
xm_defines=POSIX
tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
xmake_file="pa/x-ada"
-# if test x$enable_threads = x; then
-# enable_threads=$have_pthread_h
-# fi
-# if test x$enable_threads = xyes; then
-# thread_file='dce'
-# tmake_file="${tmake_file} pa/t-dce-thr"
-# fi
+ case x${enable_threads} in
+ xyes | xposix )
+ thread_file=posix
+ ;;
+ esac
install_headers_dir=install-headers-cpio
use_collect2=yes
;;
@@ -1183,15 +1238,13 @@ i[34567]86-*-rtems*)
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/unix.h i386/att.h i386/sco5.h"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sco5.h"
if test x$gas = xyes
then
tm_file="usegas.h ${tm_file}"
- tmake_file=i386/t-sco5gas
- else
- tmake_file=i386/t-sco5
fi
- extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ tmake_file=i386/t-sco5
+ extra_parts="crtbegin.o crtend.o"
;;
i[34567]86-*-solaris2*)
xm_defines="POSIX SMALL_ARG_MAX"
@@ -1425,14 +1478,19 @@ ia64*-*-linux*)
tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc"
target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+ if test x"$use_libunwind_exceptions" = xyes; then
+ tmake_file="$tmake_file t-libunwind"
+ fi
;;
ia64*-*-hpux*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h ia64/hpux_longdouble.h"
tmake_file="ia64/t-ia64 ia64/t-hpux"
target_cpu_default="MASK_GNU_AS"
- if test x$enable_threads = xyes; then
- thread_file='posix'
- fi
+ case x$enable_threads in
+ xyes | xposix )
+ thread_file=posix
+ ;;
+ esac
use_collect2=no
c_target_objs="ia64-c.o"
cxx_target_objs="ia64-c.o"
@@ -1441,7 +1499,7 @@ ip2k-*-elf)
;;
m32r-*-elf*)
tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
- extra_parts="crtinit.o crtfini.o"
+ extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o"
;;
# m68hc11 and m68hc12 share the same machine description.
m68hc11-*-*|m6811-*-*)
@@ -1679,8 +1737,6 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux
# aka the GNU/Linux C library 6.
tm_file=m68k/linux.h
tmake_file="t-slibgcc-elf-ver t-linux m68k/t-linux"
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
- gnu_ld=yes
;;
m68k-*-psos*)
tmake_file=m68k/t-m68kbare
@@ -1692,7 +1748,7 @@ m68k-*-rtemscoff*) # would otherwise be caught by m68k-*-rtems*
;;
m68k-*-rtems*)
xm_defines=POSIX
- tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff"
+ tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems"
tm_file="m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h"
extra_parts="crtbegin.o crtend.o"
if test x$enable_threads = xyes; then
@@ -1727,7 +1783,7 @@ mips-sgi-irix6*o32) # SGI System V.4., IRIX 6, O32 ABI
tm_file="mips/iris5.h mips/iris5gas.h mips/iris6-o32-gas.h"
if test x$stabs = xyes
then
- tm_file="${tm_file} dbx.h"
+ tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
fi
tmake_file=mips/t-iris5-gas
else
@@ -1801,7 +1857,7 @@ mips-sgi-irix5*) # SGI System V.4., IRIX 5
tm_file="mips/iris5.h mips/iris5gas.h"
if test x$stabs = xyes
then
- tm_file="${tm_file} dbx.h"
+ tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
fi
tmake_file=mips/t-iris5-gas
else
@@ -1909,7 +1965,7 @@ mips64orion-*-rtems*)
mips*-*-rtems*)
xm_defines=POSIX
tm_file="${tm_file} mips/elf.h mips/rtems.h rtems.h"
- tmake_file="mips/t-elf t-rtems"
+ tmake_file="mips/t-elf t-rtems mips/t-rtems"
if test x$enable_threads = xyes; then
thread_file='rtems'
fi
@@ -2055,7 +2111,7 @@ powerpc-*-eabi*)
powerpc-*-rtems*)
xm_defines=POSIX
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h"
- tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
+ tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
if test x$enable_threads = xyes; then
thread_file='rtems'
fi
@@ -2249,7 +2305,7 @@ sh-*-rtems*)
fi
;;
sh-*-linux* | sh[2346lbe]*-*-linux*)
- tmake_file="sh/t-sh sh/t-elf sh/t-linux"
+ tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
case $machine in
sh*be-*-* | sh*eb-*-*) ;;
*)
@@ -2257,6 +2313,7 @@ sh-*-linux* | sh[2346lbe]*-*-linux*)
tmake_file="${tmake_file} sh/t-le"
;;
esac
+ tmake_file="${tmake_file} sh/t-linux"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h"
gas=yes gnu_ld=yes
case $machine in
@@ -2466,7 +2523,7 @@ sparc-*-solaris2*)
tm_file="${tm_file} sparc/sol26-sld.h"
fi
;;
- *-*-solaris2.[789])
+ *-*-solaris2.[789] | *-*-solaris2.1[0-9])
tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h"
if test x$gnu_ld = xyes; then
tm_file="${tm_file} sparc/sol2-gld-bi.h"
@@ -2703,7 +2760,7 @@ xtensa-*-elf*)
;;
xtensa-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h xtensa/linux.h"
- tmake_file="t-linux xtensa/t-xtensa"
+ tmake_file="t-slibgcc-elf-ver t-linux xtensa/t-xtensa"
;;
*)
echo "*** Configuration $machine not supported" 1>&2
@@ -2770,7 +2827,25 @@ x86_64-*-*)
# We should have hammer chip here, but it does not exist yet and
# thus it is not supported. Athlon_SSE is probably equivalent feature
# wise to hammer from our point of view except for 64bit mode.
- target_cpu_default2=TARGET_CPU_DEFAULT_athlon_sse
+ case "x$with_cpu" in
+ x)
+ target_cpu_default2=TARGET_CPU_DEFAULT_athlon_sse
+ ;;
+ xnocona)
+ target_cpu_default2=TARGET_CPU_DEFAULT_pentium4
+ ;;
+ xyes|xno)
+ echo "--with-cpu must be passed a value" 1>&2
+ exit 1
+ ;;
+ *)
+ if test x$pass2done = xyes
+ then
+ echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
+ exit 1
+ fi
+ ;;
+ esac
;;
alpha*-*-*)
case $machine in
diff --git a/gcc/config.in b/gcc/config.in
index d26ddfe23d8..748e7afb1f6 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -141,15 +141,15 @@
/* Define if you have the getgid function. */
#undef HAVE_GETGID
-/* Define if you have the getpagesize function. */
-#undef HAVE_GETPAGESIZE
-
/* Define if you have the getrlimit function. */
#undef HAVE_GETRLIMIT
/* Define if you have the getrusage function. */
#undef HAVE_GETRUSAGE
+/* Define if you have the gettimeofday function. */
+#undef HAVE_GETTIMEOFDAY
+
/* Define if you have the getuid function. */
#undef HAVE_GETUID
@@ -162,6 +162,9 @@
/* Define if you have the mempcpy function. */
#undef HAVE_MEMPCPY
+/* Define if you have the mmap function. */
+#undef HAVE_MMAP
+
/* Define if you have the munmap function. */
#undef HAVE_MUNMAP
@@ -252,6 +255,9 @@
/* Define if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
+/* Define if you have the <sys/mman.h> header file. */
+#undef HAVE_SYS_MMAN_H
+
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
@@ -387,15 +393,15 @@
/* Define if printf supports %p. */
#undef HAVE_PRINTF_PTR
-/* Define if mmap can get us zeroed pages from /dev/zero. */
+/* Define if read-only mmap of a plain file works. */
+#undef HAVE_MMAP_FILE
+
+/* Define if mmap of /dev/zero works. */
#undef HAVE_MMAP_DEV_ZERO
-/* Define if mmap can get us zeroed pages using MAP_ANON(YMOUS). */
+/* Define if mmap with MAP_ANON(YMOUS) works. */
#undef HAVE_MMAP_ANON
-/* Define if read-only mmap of a plain file works. */
-#undef HAVE_MMAP_FILE
-
/* Define if you have the iconv() function. */
#undef HAVE_ICONV
@@ -477,6 +483,9 @@
/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_GETRUSAGE
+/* Define to `long' if <sys/resource.h> doesn't define. */
+#undef rlim_t
+
/* Define to 1 if we found this declaration otherwise define to 0. */
#undef HAVE_DECL_TIMES
@@ -486,12 +495,21 @@
/* Define if <time.h> defines clock_t. */
#undef HAVE_CLOCK_T
+/* Define if <sys/types.h> provides uchar. */
+#undef HAVE_UCHAR
+
/* Define .init_array/.fini_array sections are available and working. */
#undef HAVE_INITFINI_ARRAY
/* Define if host mkdir takes a single argument. */
#undef MKDIR_TAKES_ONE_ARG
+/* Define 0/1 to force the choice for exception handling model. */
+#undef CONFIG_SJLJ_EXCEPTIONS
+
+/* Define if gcc should use -lunwind. */
+#undef USE_LIBUNWIND_EXCEPTIONS
+
/* Define to the name of a file containing a list of extra machine modes
for this architecture. */
#undef EXTRA_MODES_FILE
@@ -573,9 +591,15 @@
/* Define if your assembler supports offsetable %lo(). */
#undef HAVE_AS_OFFSETABLE_LO10
+/* Define if your assembler supports the Sun syntax for cmov. */
+#undef HAVE_AS_IX86_CMOV_SUN_SYNTAX
+
/* Define true if the assembler supports '.long foo@GOTOFF'. */
#undef HAVE_AS_GOTOFF_IN_DATA
+/* Define if your assembler supports ltoffx and ldxmov relocations. */
+#undef HAVE_AS_LTOFFX_LDXMOV_RELOCS
+
/* Define if your assembler supports dwarf2 .file/.loc directives,
and preserves file table indices exactly as given. */
#undef HAVE_AS_DWARF2_DEBUG_LINE
@@ -593,15 +617,12 @@
/* Define if your linker supports --eh-frame-hdr option. */
#undef HAVE_LD_EH_FRAME_HDR
+/* Define if your linker supports --as-needed and --no-as-needed options. */
+#undef HAVE_LD_AS_NEEDED
+
/* Define if your MIPS libgloss linker scripts consistently include STARTUP directives. */
#undef HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES
-/* Define 0/1 to force the choice for exception handling model. */
-#undef CONFIG_SJLJ_EXCEPTIONS
-
-/* Define if gcc should use -lunwind. */
-#undef USE_LIBUNWIND_EXCEPTIONS
-
/* Bison unconditionally undefines `const' if neither `__STDC__' nor
__cplusplus are defined. That's a problem since we use `const' in
diff --git a/gcc/config/alpha/alpha-protos.h b/gcc/config/alpha/alpha-protos.h
index 71079eff7e8..fe4943bfeb8 100644
--- a/gcc/config/alpha/alpha-protos.h
+++ b/gcc/config/alpha/alpha-protos.h
@@ -142,6 +142,8 @@ extern rtx function_arg PARAMS ((CUMULATIVE_ARGS, enum machine_mode,
extern void alpha_start_function PARAMS ((FILE *, const char *, tree));
extern void alpha_end_function PARAMS ((FILE *, const char *, tree));
+extern int alpha_find_lo_sum_using_gp PARAMS ((rtx));
+
#ifdef REAL_VALUE_TYPE
extern int check_float_value PARAMS ((enum machine_mode,
REAL_VALUE_TYPE *, int));
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index d6a9f6bc661..e5ee7d8b0e5 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on the DEC Alpha.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
@@ -148,7 +148,7 @@ static rtx alpha_expand_builtin
PARAMS ((tree, rtx, rtx, enum machine_mode, int));
static void alpha_sa_mask
PARAMS ((unsigned long *imaskP, unsigned long *fmaskP));
-static int find_lo_sum
+static int find_lo_sum_using_gp
PARAMS ((rtx *, void *));
static int alpha_does_function_need_gp
PARAMS ((void));
@@ -501,6 +501,9 @@ override_options ()
warning ("trap mode not supported for VAX floats");
alpha_fptm = ALPHA_FPTM_SU;
}
+ if (target_flags_explicit & MASK_LONG_DOUBLE_128)
+ warning ("128-bit long double not supported for VAX floats");
+ target_flags &= ~MASK_LONG_DOUBLE_128;
}
{
@@ -1205,9 +1208,12 @@ tls_symbolic_operand_1 (op, mode, size, unspec)
else
return 0;
- letter = (unspec == UNSPEC_DTPREL ? 'D' : 'T');
-
- return str[1] == letter;
+ if (unspec == UNSPEC_DTPREL)
+ return str[1] == 'D';
+ else if (str[1] == 'I')
+ return size == 64;
+ else
+ return str[1] == 'T';
}
/* Return true if OP is valid for 16-bit DTP relative relocations. */
@@ -1762,7 +1768,7 @@ tls_symbolic_operand_type (symbol)
attribute visibility next time. At least we don't crash... */
if (str[1] == 'G' || str[1] == 'D')
return TLS_MODEL_GLOBAL_DYNAMIC;
- if (str[1] == 'T')
+ if (str[1] == 'I' || str[1] == 'T')
return TLS_MODEL_INITIAL_EXEC;
}
else if (str[0] == '@')
@@ -1776,6 +1782,8 @@ tls_symbolic_operand_type (symbol)
else
return TLS_MODEL_GLOBAL_DYNAMIC;
}
+ if (str[1] == 'I')
+ return TLS_MODEL_INITIAL_EXEC;
if (str[1] == 'T')
{
/* 64-bit local exec is the same as initial exec except without
@@ -1817,6 +1825,10 @@ alpha_in_small_data_p (exp)
if (TREE_CODE (exp) == STRING_CST)
return false;
+ /* Functions are never in the small data area. Duh. */
+ if (TREE_CODE (exp) == FUNCTION_DECL)
+ return false;
+
if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
@@ -1901,6 +1913,8 @@ alpha_encode_section_info (decl, first)
encoding = 'D';
break;
case TLS_MODEL_INITIAL_EXEC:
+ encoding = 'I';
+ break;
case TLS_MODEL_LOCAL_EXEC:
encoding = 'T';
break;
@@ -1920,18 +1934,22 @@ alpha_encode_section_info (decl, first)
{
char *newstr;
size_t len;
+ char want_prefix = (is_local ? '@' : '%');
+ char other_prefix = (is_local ? '%' : '@');
- if (symbol_str[0] == (is_local ? '@' : '%'))
+ if (symbol_str[0] == want_prefix)
{
if (symbol_str[1] == encoding)
return;
symbol_str += 2;
}
+ else if (symbol_str[0] == other_prefix)
+ symbol_str += 2;
len = strlen (symbol_str) + 1;
newstr = alloca (len + 2);
- newstr[0] = (is_local ? '@' : '%');
+ newstr[0] = want_prefix;
newstr[1] = encoding;
memcpy (newstr + 2, symbol_str, len);
@@ -2945,12 +2963,8 @@ alpha_expand_mov (mode, operands)
compiled at the end of compilation. In the meantime, someone can
re-encode-section-info on some symbol changing it e.g. from global
to local-not-small. If this happens, we'd have emitted a plain
- load rather than a high+losum load and not recognize the insn.
-
- So if rtl inlining is in effect, we delay the global/not-global
- decision until rest_of_compilation by wrapping it in an
- UNSPEC_SYMBOL. */
- if (TARGET_EXPLICIT_RELOCS && flag_inline_functions
+ load rather than a high+losum load and not recognize the insn. */
+ if (TARGET_EXPLICIT_RELOCS
&& rtx_equal_function_value_matters
&& global_symbolic_operand (operands[1], mode))
{
@@ -3011,7 +3025,7 @@ alpha_expand_mov (mode, operands)
}
/* Otherwise we've nothing left but to drop the thing to memory. */
- operands[1] = force_const_mem (DImode, operands[1]);
+ operands[1] = force_const_mem (mode, operands[1]);
if (reload_in_progress)
{
emit_move_insn (operands[0], XEXP (operands[1], 0));
@@ -3332,10 +3346,10 @@ alpha_emit_conditional_branch (code)
if (op1 == const0_rtx)
cmp_code = NIL, branch_code = code;
- /* We want to use cmpcc/bcc when we can, since there is a zero delay
- bypass between logicals and br/cmov on EV5. But we don't want to
- force valid immediate constants into registers needlessly. */
- else if (GET_CODE (op1) == CONST_INT)
+ /* If the constants doesn't fit into an immediate, but can
+ be generated by lda/ldah, we adjust the argument and
+ compare against zero, so we can use beq/bne directly. */
+ else if (GET_CODE (op1) == CONST_INT && (code == EQ || code == NE))
{
HOST_WIDE_INT v = INTVAL (op1), n = -v;
@@ -5385,7 +5399,7 @@ alpha_gp_save_rtx ()
{
rtx r = get_hard_reg_initial_val (DImode, 29);
if (GET_CODE (r) != MEM)
- r = gen_mem_addressof (r, NULL_TREE);
+ r = gen_mem_addressof (r, NULL_TREE, /*rescan=*/true);
return r;
}
@@ -6241,12 +6255,15 @@ alpha_va_start (valist, nextarg)
If no integer registers need be stored, then we must subtract 48
in order to account for the integer arg registers which are counted
- in argsize above, but which are not actually stored on the stack. */
+ in argsize above, but which are not actually stored on the stack.
+ Must further be careful here about structures straddling the last
+ integer argument register; that futzes with pretend_args_size,
+ which changes the meaning of AP. */
if (NUM_ARGS <= 6)
offset = TARGET_ABI_OPEN_VMS ? UNITS_PER_WORD : 6 * UNITS_PER_WORD;
else
- offset = -6 * UNITS_PER_WORD;
+ offset = -6 * UNITS_PER_WORD + current_function_pretend_args_size;
if (TARGET_ABI_OPEN_VMS)
{
@@ -6741,14 +6758,16 @@ alpha_sa_mask (imaskP, fmaskP)
/* We need to restore these for the handler. */
if (current_function_calls_eh_return)
- for (i = 0; ; ++i)
- {
- unsigned regno = EH_RETURN_DATA_REGNO (i);
- if (regno == INVALID_REGNUM)
- break;
- imask |= 1L << regno;
- }
-
+ {
+ for (i = 0; ; ++i)
+ {
+ unsigned regno = EH_RETURN_DATA_REGNO (i);
+ if (regno == INVALID_REGNUM)
+ break;
+ imask |= 1L << regno;
+ }
+ }
+
/* If any register spilled, then spill the return address also. */
/* ??? This is required by the Digital stack unwind specification
and isn't needed if we're doing Dwarf2 unwinding. */
@@ -6890,11 +6909,18 @@ const struct attribute_spec vms_attribute_table[] =
#endif
static int
-find_lo_sum (px, data)
+find_lo_sum_using_gp (px, data)
rtx *px;
void *data ATTRIBUTE_UNUSED;
{
- return GET_CODE (*px) == LO_SUM;
+ return GET_CODE (*px) == LO_SUM && XEXP (*px, 0) == pic_offset_table_rtx;
+}
+
+int
+alpha_find_lo_sum_using_gp (insn)
+ rtx insn;
+{
+ return for_each_rtx (&PATTERN (insn), find_lo_sum_using_gp, NULL) > 0;
}
static int
@@ -6923,15 +6949,9 @@ alpha_does_function_need_gp ()
for (; insn; insn = NEXT_INSN (insn))
if (INSN_P (insn)
&& GET_CODE (PATTERN (insn)) != USE
- && GET_CODE (PATTERN (insn)) != CLOBBER)
- {
- enum attr_type type = get_attr_type (insn);
- if (type == TYPE_LDSYM || type == TYPE_JSR)
- return 1;
- if (TARGET_EXPLICIT_RELOCS
- && for_each_rtx (&PATTERN (insn), find_lo_sum, NULL) > 0)
- return 1;
- }
+ && GET_CODE (PATTERN (insn)) != CLOBBER
+ && get_attr_usegp (insn))
+ return 1;
return 0;
}
@@ -7202,7 +7222,7 @@ alpha_expand_prologue ()
}
/* Now save any other registers required to be saved. */
- for (i = 0; i < 32; i++)
+ for (i = 0; i < 31; i++)
if (imask & (1L << i))
{
mem = gen_rtx_MEM (DImode, plus_constant (sa_reg, reg_offset));
@@ -7211,7 +7231,7 @@ alpha_expand_prologue ()
reg_offset += 8;
}
- for (i = 0; i < 32; i++)
+ for (i = 0; i < 31; i++)
if (fmask & (1L << i))
{
mem = gen_rtx_MEM (DFmode, plus_constant (sa_reg, reg_offset));
@@ -7617,7 +7637,7 @@ alpha_expand_epilogue ()
reg_offset += 8;
imask &= ~(1L << REG_RA);
- for (i = 0; i < 32; ++i)
+ for (i = 0; i < 31; ++i)
if (imask & (1L << i))
{
if (i == HARD_FRAME_POINTER_REGNUM && fp_is_frame_pointer)
@@ -7631,7 +7651,7 @@ alpha_expand_epilogue ()
reg_offset += 8;
}
- for (i = 0; i < 32; ++i)
+ for (i = 0; i < 31; ++i)
if (fmask & (1L << i))
{
mem = gen_rtx_MEM (DFmode, plus_constant(sa_reg, reg_offset));
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 9e39a40395b..62e9f7bbf53 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -67,6 +67,8 @@ Boston, MA 02111-1307, USA. */
builtin_define ("_IEEE_FP"); \
if (TARGET_IEEE_WITH_INEXACT) \
builtin_define ("_IEEE_FP_INEXACT"); \
+ if (TARGET_LONG_DOUBLE_128) \
+ builtin_define ("__LONG_DOUBLE_128__"); \
\
/* Macros dependent on the C dialect. */ \
SUBTARGET_LANGUAGE_CPP_BUILTINS(); \
@@ -222,6 +224,11 @@ extern int alpha_tls_size;
#define MASK_TLS_KERNEL (1 << 14)
#define TARGET_TLS_KERNEL (target_flags & MASK_TLS_KERNEL)
+/* This means use IEEE quad-format for long double. Assumes the
+ presence of the GEM support library routines. */
+#define MASK_LONG_DOUBLE_128 (1 << 16)
+#define TARGET_LONG_DOUBLE_128 (target_flags & MASK_LONG_DOUBLE_128)
+
/* This means that the processor is an EV5, EV56, or PCA56.
Unlike alpha_cpu this is not affected by -mtune= setting. */
#define MASK_CPU_EV5 (1 << 28)
@@ -254,7 +261,7 @@ extern int alpha_tls_size;
#define TARGET_CAN_FAULT_IN_PROLOGUE 0
#endif
#ifndef TARGET_HAS_XFLOATING_LIBS
-#define TARGET_HAS_XFLOATING_LIBS 0
+#define TARGET_HAS_XFLOATING_LIBS TARGET_LONG_DOUBLE_128
#endif
#ifndef TARGET_PROFILING_NEEDS_GP
#define TARGET_PROFILING_NEEDS_GP 0
@@ -312,6 +319,10 @@ extern int alpha_tls_size;
N_("Emit 32-bit relocations to the small data areas")}, \
{"tls-kernel", MASK_TLS_KERNEL, \
N_("Emit rdval instead of rduniq for thread pointer")}, \
+ {"long-double-128", MASK_LONG_DOUBLE_128, \
+ N_("Use 128-bit long double")}, \
+ {"long-double-64", -MASK_LONG_DOUBLE_128, \
+ N_("Use 64-bit long double")}, \
{"", TARGET_DEFAULT | TARGET_CPU_DEFAULT \
| TARGET_DEFAULT_EXPLICIT_RELOCS, ""} }
@@ -421,7 +432,18 @@ extern const char *alpha_tls_size_string; /* For -mtls-size= */
#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
-#define LONG_DOUBLE_TYPE_SIZE 64
+#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64)
+
+/* Define this to set long double type size to use in libgcc2.c, which can
+ not depend on target_flags. */
+#ifdef __LONG_DOUBLE_128__
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
+#else
+#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+#endif
+
+/* Work around target_flags dependency in ada/targtyps.c. */
+#define WIDEST_HARDWARE_FP_SIZE 64
#define WCHAR_TYPE "unsigned int"
#define WCHAR_TYPE_SIZE 32
@@ -482,7 +504,7 @@ extern const char *alpha_tls_size_string; /* For -mtls-size= */
#define PARM_BOUNDARY 64
/* Boundary (in *bits*) on which stack pointer should be aligned. */
-#define STACK_BOUNDARY 64
+#define STACK_BOUNDARY 128
/* Allocation boundary (in *bits*) for the code of a function. */
#define FUNCTION_BOUNDARY 32
@@ -620,12 +642,12 @@ extern const char *alpha_tls_size_string; /* For -mtls-size= */
/* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
On Alpha, the integer registers can hold any mode. The floating-point
- registers can hold 32-bit and 64-bit integers as well, but not 16-bit
- or 8-bit values. */
+ registers can hold 64-bit integers as well, but not smaller values. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
((REGNO) >= 32 && (REGNO) <= 62 \
- ? GET_MODE_UNIT_SIZE (MODE) == 8 || GET_MODE_UNIT_SIZE (MODE) == 4 \
+ ? (MODE) == SFmode || (MODE) == DFmode || (MODE) == DImode \
+ || (MODE) == SCmode || (MODE) == DCmode \
: 1)
/* Value is 1 if MODE is a supported vector mode. */
@@ -859,8 +881,9 @@ enum reg_class {
/* Return the class of registers that cannot change mode from FROM to TO. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) ? FLOAT_REGS : NO_REGS)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (FLOAT_REGS, CLASS) : 0)
/* Define the cost of moving between registers of various classes. Moving
between FLOAT_REGS and anything else except float regs is expensive.
@@ -1275,6 +1298,8 @@ do { \
/* Before the prologue, RA lives in $26. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, 26)
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (26)
+#define DWARF_ALT_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (64)
+#define DWARF_ZERO_REG 31
/* Describe how we implement __builtin_eh_return. */
#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + 16 : INVALID_REGNUM)
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index c878366b846..0aec34370d3 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -1,6 +1,6 @@
;; Machine description for DEC Alpha for GNU C compiler
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
;;
;; This file is part of GNU CC.
@@ -30,7 +30,7 @@
(UNSPEC_INSXH 2)
(UNSPEC_MSKXH 3)
(UNSPEC_CVTQL 4)
- (UNSPEC_NT_LDA 5)
+ (UNSPEC_CVTLQ 5)
(UNSPEC_UMK_LAUM 6)
(UNSPEC_UMK_LALM 7)
(UNSPEC_UMK_LAL 8)
@@ -58,6 +58,9 @@
(UNSPEC_PERR 26)
(UNSPEC_CTLZ 27)
(UNSPEC_CTPOP 28)
+
+ ;; Legacy
+ (UNSPEC_NT_LDA 29)
])
;; UNSPEC_VOLATILE:
@@ -77,6 +80,7 @@
(UNSPECV_PLDGP2 11) ; prologue ldgp
(UNSPECV_SET_TP 12)
(UNSPECV_RPCC 13)
+ (UNSPECV_SETJMPR_ER 14) ; builtin_setjmp_receiver fragment
])
;; Where necessary, the suffixes _le and _be are used to distinguish between
@@ -142,6 +146,18 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(define_attr "length" ""
(const_int 4))
+
+;; The USEGP attribute marks instructions that have relocations that use
+;; the GP.
+
+(define_attr "usegp" "no,yes"
+ (cond [(eq_attr "type" "ldsym,jsr")
+ (const_string "yes")
+ (eq_attr "type" "ild,fld,ist,fst")
+ (symbol_ref "alpha_find_lo_sum_using_gp(insn)")
+ ]
+ (const_string "no")))
+
;; Include scheduling descriptions.
@@ -165,41 +181,36 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
""
"")
-(define_insn "*extendsidi2_nofix"
- [(set (match_operand:DI 0 "register_operand" "=r,r,*f,?*f")
- (sign_extend:DI
- (match_operand:SI 1 "nonimmediate_operand" "r,m,*f,m")))]
- "! TARGET_FIX"
- "@
- addl $31,%1,%0
- ldl %0,%1
- cvtlq %1,%0
- lds %0,%1\;cvtlq %0,%0"
- [(set_attr "type" "iadd,ild,fadd,fld")
- (set_attr "length" "*,*,*,8")])
+(define_insn "*cvtlq"
+ [(set (match_operand:DI 0 "register_operand" "=f")
+ (unspec:DI [(match_operand:SF 1 "reg_or_0_operand" "fG")]
+ UNSPEC_CVTLQ))]
+ ""
+ "cvtlq %1,%0"
+ [(set_attr "type" "fadd")])
-(define_insn "*extendsidi2_fix"
- [(set (match_operand:DI 0 "register_operand" "=r,r,r,?*f,?*f")
+(define_insn "*extendsidi2_1"
+ [(set (match_operand:DI 0 "register_operand" "=r,r,!*f")
(sign_extend:DI
- (match_operand:SI 1 "nonimmediate_operand" "r,m,*f,*f,m")))]
- "TARGET_FIX"
+ (match_operand:SI 1 "nonimmediate_operand" "r,m,m")))]
+ ""
"@
addl $31,%1,%0
ldl %0,%1
- ftois %1,%0
- cvtlq %1,%0
lds %0,%1\;cvtlq %0,%0"
- [(set_attr "type" "iadd,ild,ftoi,fadd,fld")
- (set_attr "length" "*,*,*,*,8")])
+ [(set_attr "type" "iadd,ild,fld")
+ (set_attr "length" "*,*,8")])
-;; Due to issues with CLASS_CANNOT_CHANGE_SIZE, we cannot use a subreg here.
(define_split
[(set (match_operand:DI 0 "hard_fp_register_operand" "")
(sign_extend:DI (match_operand:SI 1 "memory_operand" "")))]
"reload_completed"
[(set (match_dup 2) (match_dup 1))
- (set (match_dup 0) (sign_extend:DI (match_dup 2)))]
- "operands[2] = gen_rtx_REG (SImode, REGNO (operands[0]));")
+ (set (match_dup 0) (unspec:DI [(match_dup 2)] UNSPEC_CVTLQ))]
+{
+ operands[1] = adjust_address (operands[1], SFmode, 0);
+ operands[2] = gen_rtx_REG (SFmode, REGNO (operands[0]));
+})
;; Optimize sign-extension of SImode loads. This shows up in the wake of
;; reload when converting fp->int.
@@ -215,28 +226,6 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(sign_extend:DI (match_dup 1)))]
"")
-(define_peephole2
- [(set (match_operand:SI 0 "hard_int_register_operand" "")
- (match_operand:SI 1 "hard_fp_register_operand" ""))
- (set (match_operand:DI 2 "hard_int_register_operand" "")
- (sign_extend:DI (match_dup 0)))]
- "TARGET_FIX
- && (true_regnum (operands[0]) == true_regnum (operands[2])
- || peep2_reg_dead_p (2, operands[0]))"
- [(set (match_dup 2)
- (sign_extend:DI (match_dup 1)))]
- "")
-
-(define_peephole2
- [(set (match_operand:DI 0 "hard_fp_register_operand" "")
- (sign_extend:DI (match_operand:SI 1 "hard_fp_register_operand" "")))
- (set (match_operand:DI 2 "hard_int_register_operand" "")
- (match_dup 0))]
- "TARGET_FIX && peep2_reg_dead_p (2, operands[0])"
- [(set (match_dup 2)
- (sign_extend:DI (match_dup 1)))]
- "")
-
;; Don't say we have addsi3 if optimizing. This generates better code. We
;; have the anonymous addsi3 pattern below in case combine wants to make it.
(define_expand "addsi3"
@@ -402,7 +391,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(plus:DI (match_operand:DI 1 "register_operand" "r")
(high:DI (match_operand:DI 2 "local_symbolic_operand" ""))))]
"TARGET_EXPLICIT_RELOCS"
- "ldah %0,%2(%1)\t\t!gprelhigh")
+ "ldah %0,%2(%1)\t\t!gprelhigh"
+ [(set_attr "usegp" "yes")])
(define_split
[(set (match_operand:DI 0 "register_operand" "")
@@ -737,17 +727,31 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
"mulqv %r1,%2,%0"
[(set_attr "type" "imul")])
-(define_insn "umuldi3_highpart"
+(define_expand "umuldi3_highpart"
+ [(set (match_operand:DI 0 "register_operand" "")
+ (truncate:DI
+ (lshiftrt:TI
+ (mult:TI (zero_extend:TI
+ (match_operand:DI 1 "register_operand" ""))
+ (match_operand:DI 2 "reg_or_8bit_operand" ""))
+ (const_int 64))))]
+ ""
+{
+ if (REG_P (operands[2]))
+ operands[2] = gen_rtx_ZERO_EXTEND (TImode, operands[2]);
+})
+
+(define_insn "*umuldi3_highpart_reg"
[(set (match_operand:DI 0 "register_operand" "=r")
(truncate:DI
(lshiftrt:TI
(mult:TI (zero_extend:TI
- (match_operand:DI 1 "reg_or_0_operand" "%rJ"))
+ (match_operand:DI 1 "register_operand" "r"))
(zero_extend:TI
- (match_operand:DI 2 "reg_or_8bit_operand" "rI")))
+ (match_operand:DI 2 "register_operand" "r")))
(const_int 64))))]
""
- "umulh %r1,%2,%0"
+ "umulh %1,%2,%0"
[(set_attr "type" "imul")
(set_attr "opsize" "udi")])
@@ -2278,8 +2282,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
;; processing, it is cheaper to do the truncation in the int regs.
(define_insn "*cvtql"
- [(set (match_operand:SI 0 "register_operand" "=f")
- (unspec:SI [(match_operand:DI 1 "reg_or_0_operand" "fG")]
+ [(set (match_operand:SF 0 "register_operand" "=f")
+ (unspec:SF [(match_operand:DI 1 "reg_or_0_operand" "fG")]
UNSPEC_CVTQL))]
"TARGET_FP"
"cvtql%/ %R1,%0"
@@ -2291,14 +2295,16 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
[(set (match_operand:SI 0 "memory_operand" "=m")
(subreg:SI (fix:DI (match_operand:DF 1 "reg_or_0_operand" "fG")) 0))
(clobber (match_scratch:DI 2 "=&f"))
- (clobber (match_scratch:SI 3 "=&f"))]
+ (clobber (match_scratch:SF 3 "=&f"))]
"TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
"#"
"&& reload_completed"
[(set (match_dup 2) (fix:DI (match_dup 1)))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ""
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 5) (match_dup 3))]
+{
+ operands[5] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2310,10 +2316,12 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
"#"
"&& reload_completed"
[(set (match_dup 2) (fix:DI (match_dup 1)))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ;; Due to REG_CANNOT_CHANGE_SIZE issues, we cannot simply use SUBREG.
- "operands[3] = gen_rtx_REG (SImode, REGNO (operands[2]));"
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 4) (match_dup 3))]
+{
+ operands[3] = gen_rtx_REG (SFmode, REGNO (operands[2]));
+ operands[4] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2344,14 +2352,16 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(subreg:SI (fix:DI (float_extend:DF
(match_operand:SF 1 "reg_or_0_operand" "fG"))) 0))
(clobber (match_scratch:DI 2 "=&f"))
- (clobber (match_scratch:SI 3 "=&f"))]
+ (clobber (match_scratch:SF 3 "=&f"))]
"TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
"#"
"&& reload_completed"
[(set (match_dup 2) (fix:DI (float_extend:DF (match_dup 1))))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ""
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 4) (match_dup 3))]
+{
+ operands[4] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2364,10 +2374,12 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
"#"
"&& reload_completed"
[(set (match_dup 2) (fix:DI (float_extend:DF (match_dup 1))))
- (set (match_dup 3) (unspec:SI [(match_dup 2)] UNSPEC_CVTQL))
- (set (match_dup 0) (match_dup 3))]
- ;; Due to REG_CANNOT_CHANGE_SIZE issues, we cannot simply use SUBREG.
- "operands[3] = gen_rtx_REG (SImode, REGNO (operands[2]));"
+ (set (match_dup 3) (unspec:SF [(match_dup 2)] UNSPEC_CVTQL))
+ (set (match_dup 4) (match_dup 3))]
+{
+ operands[3] = gen_rtx_REG (SFmode, REGNO (operands[2]));
+ operands[4] = adjust_address (operands[0], SFmode, 0);
+}
[(set_attr "type" "fadd")
(set_attr "trap" "yes")])
@@ -2419,6 +2431,35 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(set_attr "round_suffix" "normal")
(set_attr "trap_suffix" "sui")])
+(define_insn_and_split "*floatsisf2_ieee"
+ [(set (match_operand:SF 0 "register_operand" "=&f")
+ (float:SF (match_operand:SI 1 "memory_operand" "m")))
+ (clobber (match_scratch:DI 2 "=&f"))
+ (clobber (match_scratch:SF 3 "=&f"))]
+ "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 3) (match_dup 1))
+ (set (match_dup 2) (unspec:DI [(match_dup 3)] UNSPEC_CVTLQ))
+ (set (match_dup 0) (float:SF (match_dup 2)))]
+{
+ operands[1] = adjust_address (operands[1], SFmode, 0);
+})
+
+(define_insn_and_split "*floatsisf2"
+ [(set (match_operand:SF 0 "register_operand" "=f")
+ (float:SF (match_operand:SI 1 "memory_operand" "m")))]
+ "TARGET_FP"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 0) (match_dup 1))
+ (set (match_dup 2) (unspec:DI [(match_dup 0)] UNSPEC_CVTLQ))
+ (set (match_dup 0) (float:SF (match_dup 2)))]
+{
+ operands[1] = adjust_address (operands[1], SFmode, 0);
+ operands[2] = gen_rtx_REG (DImode, REGNO (operands[0]));
+})
+
(define_insn "*floatdidf_ieee"
[(set (match_operand:DF 0 "register_operand" "=&f")
(float:DF (match_operand:DI 1 "reg_no_subreg_operand" "f")))]
@@ -2439,6 +2480,36 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
(set_attr "round_suffix" "normal")
(set_attr "trap_suffix" "sui")])
+(define_insn_and_split "*floatsidf2_ieee"
+ [(set (match_operand:DF 0 "register_operand" "=&f")
+ (float:DF (match_operand:SI 1 "memory_operand" "m")))
+ (clobber (match_scratch:DI 2 "=&f"))
+ (clobber (match_scratch:SF 3 "=&f"))]
+ "TARGET_FP && alpha_fptm >= ALPHA_FPTM_SU"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 3) (match_dup 1))
+ (set (match_dup 2) (unspec:DI [(match_dup 3)] UNSPEC_CVTLQ))
+ (set (match_dup 0) (float:DF (match_dup 2)))]
+{
+ operands[1] = adjust_address (operands[1], SFmode, 0);
+})
+
+(define_insn_and_split "*floatsidf2"
+ [(set (match_operand:DF 0 "register_operand" "=f")
+ (float:DF (match_operand:SI 1 "memory_operand" "m")))]
+ "TARGET_FP"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 3) (match_dup 1))
+ (set (match_dup 2) (unspec:DI [(match_dup 3)] UNSPEC_CVTLQ))
+ (set (match_dup 0) (float:DF (match_dup 2)))]
+{
+ operands[1] = adjust_address (operands[1], SFmode, 0);
+ operands[2] = gen_rtx_REG (DImode, REGNO (operands[0]));
+ operands[3] = gen_rtx_REG (SFmode, REGNO (operands[0]));
+})
+
(define_expand "floatditf2"
[(use (match_operand:TF 0 "register_operand" ""))
(use (match_operand:DI 1 "general_operand" ""))]
@@ -2849,7 +2920,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (match_operand:DF 1 "reg_or_0_operand" "fG")))]
"TARGET_FP && TARGET_FIX"
- "sqrt%-%/ %1,%0"
+ "sqrt%-%/ %R1,%0"
[(set_attr "type" "fsqrt")
(set_attr "trap" "yes")
(set_attr "round_suffix" "normal")
@@ -5059,10 +5130,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
operands[1] = force_reg (TFmode, operands[1]);
})
-(define_insn "*movsi_nofix"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,m,*f,*f,m")
- (match_operand:SI 1 "input_operand" "rJ,K,L,m,rJ,*fJ,m,*f"))]
- "(TARGET_ABI_OSF || TARGET_ABI_UNICOSMK) && ! TARGET_FIX
+(define_insn "*movsi"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,m")
+ (match_operand:SI 1 "input_operand" "rJ,K,L,m,rJ"))]
+ "(TARGET_ABI_OSF || TARGET_ABI_UNICOSMK)
&& (register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))"
"@
@@ -5070,55 +5141,13 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
lda %0,%1($31)
ldah %0,%h1($31)
ldl %0,%1
- stl %r1,%0
- cpys %R1,%R1,%0
- ld%, %0,%1
- st%, %R1,%0"
- [(set_attr "type" "ilog,iadd,iadd,ild,ist,fcpys,fld,fst")])
-
-(define_insn "*movsi_fix"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,m,*f,*f,m,r,*f")
- (match_operand:SI 1 "input_operand" "rJ,K,L,m,rJ,*fJ,m,*f,*f,r"))]
- "TARGET_ABI_OSF && TARGET_FIX
- && (register_operand (operands[0], SImode)
- || reg_or_0_operand (operands[1], SImode))"
- "@
- bis $31,%r1,%0
- lda %0,%1($31)
- ldah %0,%h1($31)
- ldl %0,%1
- stl %r1,%0
- cpys %R1,%R1,%0
- ld%, %0,%1
- st%, %R1,%0
- ftois %1,%0
- itofs %1,%0"
- [(set_attr "type" "ilog,iadd,iadd,ild,ist,fcpys,fld,fst,ftoi,itof")])
-
-(define_insn "*movsi_nt_vms_nofix"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,m,*f,*f,m")
- (match_operand:SI 1 "input_operand" "rJ,K,L,s,m,rJ,*fJ,m,*f"))]
- "(TARGET_ABI_WINDOWS_NT || TARGET_ABI_OPEN_VMS)
- && !TARGET_FIX
- && (register_operand (operands[0], SImode)
- || reg_or_0_operand (operands[1], SImode))"
- "@
- bis $31,%1,%0
- lda %0,%1
- ldah %0,%h1
- lda %0,%1
- ldl %0,%1
- stl %r1,%0
- cpys %R1,%R1,%0
- ld%, %0,%1
- st%, %R1,%0"
- [(set_attr "type" "ilog,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst")])
+ stl %r1,%0"
+ [(set_attr "type" "ilog,iadd,iadd,ild,ist")])
-(define_insn "*movsi_nt_vms_fix"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,m,*f,*f,m,r,*f")
- (match_operand:SI 1 "input_operand" "rJ,K,L,s,m,rJ,*fJ,m,*f,*f,r"))]
+(define_insn "*movsi_nt_vms"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,r,m")
+ (match_operand:SI 1 "input_operand" "rJ,K,L,s,m,rJ"))]
"(TARGET_ABI_WINDOWS_NT || TARGET_ABI_OPEN_VMS)
- && TARGET_FIX
&& (register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))"
"@
@@ -5127,13 +5156,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
ldah %0,%h1
lda %0,%1
ldl %0,%1
- stl %r1,%0
- cpys %R1,%R1,%0
- ld%, %0,%1
- st%, %R1,%0
- ftois %1,%0
- itofs %1,%0"
- [(set_attr "type" "ilog,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst,ftoi,itof")])
+ stl %r1,%0"
+ [(set_attr "type" "ilog,iadd,iadd,ldsym,ild,ist")])
(define_insn "*movhi_nobwx"
[(set (match_operand:HI 0 "register_operand" "=r,r")
@@ -5305,7 +5329,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
return "lda %0,%2(%1)\t\t!gprel";
else
return "lda %0,%2(%1)\t\t!gprellow";
-})
+}
+ [(set_attr "usegp" "yes")])
(define_split
[(set (match_operand:DI 0 "register_operand" "")
@@ -5331,10 +5356,12 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
[(match_dup 0)]
"operands[0] = split_small_symbolic_operand (operands[0]);")
+;; Accepts any symbolic, not just global, since function calls that
+;; don't go via bsr still use !literal in hopes of linker relaxation.
(define_insn "movdi_er_high_g"
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(match_operand:DI 1 "register_operand" "r")
- (match_operand:DI 2 "global_symbolic_operand" "")
+ (match_operand:DI 2 "symbolic_operand" "")
(match_operand 3 "const_int_operand" "")]
UNSPEC_LITERAL))]
"TARGET_EXPLICIT_RELOCS"
@@ -5369,7 +5396,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(match_operand:DI 1 "symbolic_operand" "")]
UNSPEC_SYMBOL))]
- "TARGET_EXPLICIT_RELOCS && flag_inline_functions"
+ "TARGET_EXPLICIT_RELOCS"
"#"
""
[(set (match_dup 0) (match_dup 1))]
@@ -5425,7 +5452,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
UNSPEC_DTPREL))]
"HAVE_AS_TLS"
"ldq %0,%2(%1)\t\t!gotdtprel"
- [(set_attr "type" "ild")])
+ [(set_attr "type" "ild")
+ (set_attr "usegp" "yes")])
(define_split
[(set (match_operand:DI 0 "register_operand" "")
@@ -5446,7 +5474,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
UNSPEC_TPREL))]
"HAVE_AS_TLS"
"ldq %0,%2(%1)\t\t!gottprel"
- [(set_attr "type" "ild")])
+ [(set_attr "type" "ild")
+ (set_attr "usegp" "yes")])
(define_split
[(set (match_operand:DI 0 "register_operand" "")
@@ -5477,7 +5506,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
fmov %R1,%0
ldt %0,%1
stt %R1,%0"
- [(set_attr "type" "ilog,iadd,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst")])
+ [(set_attr "type" "ilog,iadd,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst")
+ (set_attr "usegp" "*,*,*,yes,*,*,*,*,*,*")])
;; The 'U' constraint matches symbolic operands on Unicos/Mk. Those should
;; have been split up by the rules above but we shouldn't reject the
@@ -5524,7 +5554,8 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
stt %R1,%0
ftoit %1,%0
itoft %1,%0"
- [(set_attr "type" "ilog,iadd,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst,ftoi,itof")])
+ [(set_attr "type" "ilog,iadd,iadd,iadd,ldsym,ild,ist,fcpys,fld,fst,ftoi,itof")
+ (set_attr "usegp" "*,*,*,yes,*,*,*,*,*,*,*,*")])
(define_insn "*movdi_fix"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,r,r,r,m,*f,*f,Q,r,*f")
@@ -6734,70 +6765,44 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
"jmp $31,(%0),0"
[(set_attr "type" "ibr")])
-(define_insn "*builtin_setjmp_receiver_er_sl_1"
- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]
- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF && TARGET_AS_CAN_SUBTRACT_LABELS"
- "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:")
-
-(define_insn "*builtin_setjmp_receiver_er_1"
- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]
- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
- "br $27,$LSJ%=\n$LSJ%=:"
- [(set_attr "type" "ibr")])
-
-(define_split
- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]
- "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF
- && prev_nonnote_insn (insn) == operands[0]"
- [(const_int 0)]
- "
-{
- emit_note (NULL, NOTE_INSN_DELETED);
- DONE;
-}")
-
-(define_insn "*builtin_setjmp_receiver_1"
+(define_expand "builtin_setjmp_receiver"
[(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]
"TARGET_ABI_OSF"
- "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)"
- [(set_attr "length" "12")
- (set_attr "type" "multi")])
+ "")
-(define_expand "builtin_setjmp_receiver_er"
- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)
+(define_insn_and_split "*builtin_setjmp_receiver_1"
+ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR)]
+ "TARGET_ABI_OSF"
+{
+ if (TARGET_EXPLICIT_RELOCS)
+ return "#";
+ else
+ return "br $27,$LSJ%=\n$LSJ%=:\;ldgp $29,0($27)";
+}
+ "&& TARGET_EXPLICIT_RELOCS && reload_completed"
+ [(unspec_volatile [(match_dup 0)] UNSPECV_SETJMPR_ER)
(set (match_dup 1)
(unspec_volatile:DI [(match_dup 2) (match_dup 3)] UNSPECV_LDGP1))
(set (match_dup 1)
(unspec:DI [(match_dup 1) (match_dup 3)] UNSPEC_LDGP2))]
- ""
{
operands[1] = pic_offset_table_rtx;
operands[2] = gen_rtx_REG (Pmode, 27);
operands[3] = GEN_INT (alpha_next_sequence_number++);
-})
+}
+ [(set_attr "length" "12")
+ (set_attr "type" "multi")])
-(define_expand "builtin_setjmp_receiver"
- [(unspec_volatile [(label_ref (match_operand 0 "" ""))] UNSPECV_SETJMPR)]
- "TARGET_ABI_OSF"
-{
- if (TARGET_EXPLICIT_RELOCS)
- {
- emit_insn (gen_builtin_setjmp_receiver_er (operands[0]));
- DONE;
- }
-})
+(define_insn "*builtin_setjmp_receiver_er_sl_1"
+ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]
+ "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS && TARGET_AS_CAN_SUBTRACT_LABELS"
+ "lda $27,$LSJ%=-%l0($27)\n$LSJ%=:")
-(define_expand "exception_receiver_er"
- [(set (match_dup 0)
- (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1))
- (set (match_dup 0)
- (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))]
- ""
-{
- operands[0] = pic_offset_table_rtx;
- operands[1] = gen_rtx_REG (Pmode, 26);
- operands[2] = GEN_INT (alpha_next_sequence_number++);
-})
+(define_insn "*builtin_setjmp_receiver_er_1"
+ [(unspec_volatile [(match_operand 0 "" "")] UNSPECV_SETJMPR_ER)]
+ "TARGET_ABI_OSF && TARGET_EXPLICIT_RELOCS"
+ "br $27,$LSJ%=\n$LSJ%=:"
+ [(set_attr "type" "ibr")])
(define_expand "exception_receiver"
[(unspec_volatile [(match_dup 0)] UNSPECV_EHR)]
@@ -6805,28 +6810,38 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
{
if (TARGET_LD_BUGGY_LDGP)
operands[0] = alpha_gp_save_rtx ();
- else if (TARGET_EXPLICIT_RELOCS)
- {
- emit_insn (gen_exception_receiver_er ());
- DONE;
- }
else
operands[0] = const0_rtx;
})
-(define_insn "*exception_receiver_1"
- [(unspec_volatile [(const_int 0)] UNSPECV_EHR)]
- "! TARGET_LD_BUGGY_LDGP"
- "ldgp $29,0($26)"
- [(set_attr "length" "8")
- (set_attr "type" "multi")])
-
(define_insn "*exception_receiver_2"
[(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] UNSPECV_EHR)]
- "TARGET_LD_BUGGY_LDGP"
+ "TARGET_ABI_OSF && TARGET_LD_BUGGY_LDGP"
"ldq $29,%0"
[(set_attr "type" "ild")])
+(define_insn_and_split "*exception_receiver_1"
+ [(unspec_volatile [(const_int 0)] UNSPECV_EHR)]
+ "TARGET_ABI_OSF"
+{
+ if (TARGET_EXPLICIT_RELOCS)
+ return "ldah $29,0($26)\t\t!gpdisp!%*\;lda $29,0($29)\t\t!gpdisp!%*";
+ else
+ return "ldgp $29,0($26)";
+}
+ "&& TARGET_EXPLICIT_RELOCS && reload_completed"
+ [(set (match_dup 0)
+ (unspec_volatile:DI [(match_dup 1) (match_dup 2)] UNSPECV_LDGP1))
+ (set (match_dup 0)
+ (unspec:DI [(match_dup 0) (match_dup 2)] UNSPEC_LDGP2))]
+{
+ operands[0] = pic_offset_table_rtx;
+ operands[1] = gen_rtx_REG (Pmode, 26);
+ operands[2] = GEN_INT (alpha_next_sequence_number++);
+}
+ [(set_attr "length" "8")
+ (set_attr "type" "multi")])
+
(define_expand "nonlocal_goto_receiver"
[(unspec_volatile [(const_int 0)] UNSPECV_BLOCKAGE)
(set (reg:DI 27) (mem:DI (reg:DI 29)))
diff --git a/gcc/config/alpha/freebsd.h b/gcc/config/alpha/freebsd.h
index 0ec96885527..149ce065822 100644
--- a/gcc/config/alpha/freebsd.h
+++ b/gcc/config/alpha/freebsd.h
@@ -20,13 +20,16 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the dealing with
+/* Provide a FBSD_TARGET_CPU_CPP_BUILTINS and CPP_SPEC appropriate for
+ FreeBSD/alpha. Besides the dealing with
the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must
deal with the Alpha's FP issues. */
-#define TARGET_OS_CPP_BUILTINS() \
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
do \
{ \
+ builtin_define ("__LP64__"); \
if (flag_pic) \
{ \
builtin_define ("__PIC__"); \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
index 49f518137e1..72cd2b75ca0 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -47,3 +47,10 @@ Boston, MA 02111-1307, USA. */
#define LIB_SPEC \
"%{pthread:-lpthread }%{shared:-lc}%{!shared:%{profile:-lc_p}%{!profile:-lc}} "
#endif
+
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index 28ff3208422..3a2940cc307 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -59,6 +59,11 @@ Boston, MA 02111-1307, USA. */
/* Define this so that all GNU/Linux targets handle the same pragmas. */
#define HANDLE_PRAGMA_PACK_PUSH_POP
+#define TARGET_HAS_F_SETLKW
+
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
@@ -76,6 +81,8 @@ Boston, MA 02111-1307, USA. */
if (pc_[0] != 0x47fe0410 /* mov $30,$16 */ \
|| pc_[2] != 0x00000083 /* callsys */) \
break; \
+ if ((CONTEXT)->cfa == 0) \
+ break; \
if (pc_[1] == 0x201f0067) /* lda $0,NR_sigreturn */ \
sc_ = (CONTEXT)->cfa; \
else if (pc_[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */ \
@@ -104,8 +111,8 @@ Boston, MA 02111-1307, USA. */
(FS)->regs.reg[i_+32].loc.offset \
= (long)&sc_->sc_fpregs[i_] - new_cfa_; \
} \
- (FS)->regs.reg[31].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[31].loc.offset = (long)&sc_->sc_pc - new_cfa_; \
- (FS)->retaddr_column = 31; \
+ (FS)->regs.reg[64].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[64].loc.offset = (long)&sc_->sc_pc - new_cfa_; \
+ (FS)->retaddr_column = 64; \
goto SUCCESS; \
} while (0)
diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h
index 9fbe2b56a07..2be2a424d35 100644
--- a/gcc/config/alpha/osf.h
+++ b/gcc/config/alpha/osf.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for DEC Alpha on OSF/1.
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
@@ -32,21 +32,23 @@ Boston, MA 02111-1307, USA. */
/* Names to predefine in the preprocessor for this target machine. */
-#define TARGET_OS_CPP_BUILTINS() \
- do { \
- builtin_define_std ("unix"); \
- builtin_define_std ("SYSTYPE_BSD"); \
- builtin_define ("_SYSTYPE_BSD"); \
- builtin_define ("__osf__"); \
- builtin_define ("_LONGLONG"); \
- builtin_define ("__EXTERN_PREFIX"); \
- builtin_assert ("system=unix"); \
- builtin_assert ("system=xpg4"); \
- /* Tru64 UNIX V5 has a 16 byte long \
- double type and requires __X_FLOAT \
- to be defined for <math.h>. */ \
- if (LONG_DOUBLE_TYPE_SIZE == 128) \
- builtin_define ("__X_FLOAT"); \
+#define TARGET_OS_CPP_BUILTINS() \
+ do { \
+ builtin_define_std ("unix"); \
+ builtin_define_std ("SYSTYPE_BSD"); \
+ builtin_define ("_SYSTYPE_BSD"); \
+ builtin_define ("__osf__"); \
+ builtin_define ("__digital__"); \
+ builtin_define ("__arch64__"); \
+ builtin_define ("_LONGLONG"); \
+ builtin_define ("__PRAGMA_EXTERN_PREFIX"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=xpg4"); \
+ /* Tru64 UNIX V5 has a 16 byte long \
+ double type and requires __X_FLOAT \
+ to be defined for <math.h>. */ \
+ if (LONG_DOUBLE_TYPE_SIZE == 128) \
+ builtin_define ("__X_FLOAT"); \
} while (0)
/* Accept DEC C flags for multithreaded programs. We use _PTHREAD_USE_D4
diff --git a/gcc/config/alpha/osf5.h b/gcc/config/alpha/osf5.h
index e483124691e..61cc8e27243 100644
--- a/gcc/config/alpha/osf5.h
+++ b/gcc/config/alpha/osf5.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for DEC Alpha on Tru64 5.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -19,11 +19,8 @@
Boston, MA 02111-1307, USA. */
/* Tru64 5.1 uses IEEE QUAD format. */
-/* ??? However, since there is no support for VAX H_floating, we must
- drop back to a 64-bit long double to avoid a crash looking for the
- format associated with TFmode. */
-#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE (TARGET_FLOAT_VAX ? 64 : 128)
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT MASK_FP | MASK_FPREGS | MASK_LONG_DOUBLE_128
/* In Tru64 UNIX V5.1, Compaq introduced a new assembler
(/usr/lib/cmplrs/cc/adu) which currently (versions between 3.04.29 and
diff --git a/gcc/config/alpha/qrnnd.asm b/gcc/config/alpha/qrnnd.asm
index d6373ec1bff..da9c4bc8338 100644
--- a/gcc/config/alpha/qrnnd.asm
+++ b/gcc/config/alpha/qrnnd.asm
@@ -26,6 +26,10 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
+#ifdef __ELF__
+.section .note.GNU-stack,""
+#endif
+
.set noreorder
.set noat
diff --git a/gcc/config/alpha/t-crtfm b/gcc/config/alpha/t-crtfm
index 7076b517861..5ca8c3f747d 100644
--- a/gcc/config/alpha/t-crtfm
+++ b/gcc/config/alpha/t-crtfm
@@ -1,4 +1,5 @@
EXTRA_PARTS += crtfastmath.o
crtfastmath.o: $(srcdir)/config/alpha/crtfastmath.c $(GCC_PASSES)
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtfastmath.o $(srcdir)/config/alpha/crtfastmath.c
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -frandom-seed=gcc-crtfastmath -c \
+ -o crtfastmath.o $(srcdir)/config/alpha/crtfastmath.c
diff --git a/gcc/config/alpha/t-osf4 b/gcc/config/alpha/t-osf4
index e9c451b9c04..0525d617662 100644
--- a/gcc/config/alpha/t-osf4
+++ b/gcc/config/alpha/t-osf4
@@ -17,6 +17,6 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
$(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)/$(SHLIB_NAME); \
- $(LN_S) $(SHLIB_SONAME) $$(slibdir)/$(SHLIB_NAME)
+SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME); \
+ $(LN_S) $(SHLIB_SONAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME)
diff --git a/gcc/config/arc/t-arc b/gcc/config/arc/t-arc
index 688603b5d31..9f949f6c438 100644
--- a/gcc/config/arc/t-arc
+++ b/gcc/config/arc/t-arc
@@ -26,15 +26,15 @@ fp-bit.c: $(srcdir)/config/fp-bit.c
# .init/.fini section routines
-x-crtinit.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
+crtinit.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
-DCRT_INIT -finhibit-size-directive -fno-inline-functions \
- -g0 -c $(srcdir)/config/arc/initfini.c -o $(dir)/crtinit.o
+ -g0 -c $(srcdir)/config/arc/initfini.c -o crtinit.o
-x-crtfini.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
+crtfini.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
-DCRT_FINI -finhibit-size-directive -fno-inline-functions \
- -g0 -c $(srcdir)/config/arc/initfini.c -o $(dir)/crtfini.o
+ -g0 -c $(srcdir)/config/arc/initfini.c -o crtfini.o
MULTILIB_OPTIONS = EB
MULTILIB_DIRNAMES = be
@@ -54,7 +54,7 @@ stmp-multilib-arc: stmp-multilib
BUILD_PREFIX="$(BUILD_PREFIX)" BUILD_PREFIX_1="$(BUILD_PREFIX_1)" \
GCC_CFLAGS="$(GCC_CFLAGS) $${flags}" \
INCLUDES="$(INCLUDES)" CRTSTUFF_T_CFLAGS=$(CRTSTUFF_T_CFLAGS) \
- dir="$${dir}" x-crtinit.o x-crtfini.o; \
+ dir="$${dir}" crtinit.o crtfini.o; \
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
done
touch stmp-multilib-arc
@@ -62,10 +62,10 @@ stmp-multilib-arc: stmp-multilib
install-multilib-arc: install-multilib
for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
dir=`echo $$i | sed -e 's/;.*$$//'`; \
- rm -f $(libsubdir)/$${dir}/crtinit.o; \
- $(INSTALL_DATA) $${dir}/crtinit.o $(libsubdir)/$${dir}/crtinit.o; \
- chmod a-x $(libsubdir)/$${dir}/crtinit.o; \
- rm -f $(libsubdir)/$${dir}/crtfini.o; \
- $(INSTALL_DATA) $${dir}/crtfini.o $(libsubdir)/$${dir}/crtfini.o; \
- chmod a-x $(libsubdir)/$${dir}/crtfini.o; \
+ rm -f $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
+ $(INSTALL_DATA) $${dir}/crtinit.o $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
+ chmod a-x $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
+ rm -f $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
+ $(INSTALL_DATA) $${dir}/crtfini.o $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
+ chmod a-x $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
done
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a6203c3fbe3..9a70ab39fb1 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -67,7 +67,6 @@ static void arm_add_gc_roots PARAMS ((void));
static int arm_gen_constant PARAMS ((enum rtx_code, Mmode, Hint, rtx, rtx, int, int));
static unsigned bit_count PARAMS ((Ulong));
static int const_ok_for_op PARAMS ((Hint, enum rtx_code));
-static int eliminate_lr2ip PARAMS ((rtx *));
static rtx emit_multi_reg_push PARAMS ((int));
static rtx emit_sfm PARAMS ((int, int));
#ifndef AOF_ASSEMBLER
@@ -276,7 +275,10 @@ int arm_ld_sched = 0;
int arm_is_strong = 0;
/* Nonzero if this chip is an XScale. */
-int arm_is_xscale = 0;
+int arm_arch_xscale = 0;
+
+/* Nonzero if tuning for XScale */
+int arm_tune_xscale = 0;
/* Nonzero if this chip is an ARM6 or an ARM7. */
int arm_is_6_or_7 = 0;
@@ -685,13 +687,14 @@ arm_override_options ()
arm_arch4 = (insn_flags & FL_ARCH4) != 0;
arm_arch5 = (insn_flags & FL_ARCH5) != 0;
arm_arch5e = (insn_flags & FL_ARCH5E) != 0;
- arm_is_xscale = (insn_flags & FL_XSCALE) != 0;
+ arm_arch_xscale = (insn_flags & FL_XSCALE) != 0;
arm_ld_sched = (tune_flags & FL_LDSCHED) != 0;
arm_is_strong = (tune_flags & FL_STRONG) != 0;
thumb_code = (TARGET_ARM == 0);
arm_is_6_or_7 = (((tune_flags & (FL_MODE26 | FL_MODE32))
&& !(tune_flags & FL_ARCH4))) != 0;
+ arm_tune_xscale = (tune_flags & FL_XSCALE) != 0;
/* Default value for floating point code... if no co-processor
bus, then schedule for emulated floating point. Otherwise,
@@ -763,7 +766,7 @@ arm_override_options ()
if (optimize_size || (tune_flags & FL_LDSCHED))
arm_constant_limit = 1;
- if (arm_is_xscale)
+ if (arm_arch_xscale)
arm_constant_limit = 2;
/* If optimizing for size, bump the number of instructions that we
@@ -921,6 +924,10 @@ use_return_insn (iscond)
consideration. */
if (func_type & (ARM_FT_VOLATILE | ARM_FT_NAKED))
return 0;
+
+ /* So do interrupt functions that use the frame pointer. */
+ if (IS_INTERRUPT (func_type) && frame_pointer_needed)
+ return 0;
/* As do variadic functions. */
if (current_function_pretend_args_size
@@ -2944,7 +2951,7 @@ arm_adjust_cost (insn, link, dep, cost)
/* Some true dependencies can have a higher cost depending
on precisely how certain input operands are used. */
- if (arm_is_xscale
+ if (arm_tune_xscale
&& REG_NOTE_KIND (link) == 0
&& recog_memoized (insn) < 0
&& recog_memoized (dep) < 0)
@@ -3775,6 +3782,12 @@ adjacent_mem_locations (a, b)
else
reg1 = REGNO (XEXP (b, 0));
+ /* Don't accept any offset that will require multiple instructions to handle,
+ since this would cause the arith_adjacentmem pattern to output an overlong
+ sequence. */
+ if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
+ return 0;
+
return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
}
return 0;
@@ -4385,7 +4398,7 @@ arm_gen_load_multiple (base_regno, count, from, up, write_back, unchanging_p,
As a compromise, we use ldr for counts of 1 or 2 regs, and ldm
for counts of 3 or 4 regs. */
- if (arm_is_xscale && count <= 2 && ! optimize_size)
+ if (arm_tune_xscale && count <= 2 && ! optimize_size)
{
rtx seq;
@@ -4452,7 +4465,7 @@ arm_gen_store_multiple (base_regno, count, to, up, write_back, unchanging_p,
/* See arm_gen_load_multiple for discussion of
the pros/cons of ldm/stm usage for XScale. */
- if (arm_is_xscale && count <= 2 && ! optimize_size)
+ if (arm_tune_xscale && count <= 2 && ! optimize_size)
{
rtx seq;
@@ -5053,7 +5066,14 @@ arm_reload_in_hi (operands)
}
}
- scratch = gen_rtx_REG (SImode, REGNO (operands[2]));
+ /* Operands[2] may overlap operands[0] (though it won't overlap
+ operands[1]), that's why we asked for a DImode reg -- so we can
+ use the bit that does not overlap. */
+ if (REGNO (operands[2]) == REGNO (operands[0]))
+ scratch = gen_rtx_REG (SImode, REGNO (operands[2]) + 1);
+ else
+ scratch = gen_rtx_REG (SImode, REGNO (operands[2]));
+
emit_insn (gen_zero_extendqisi2 (scratch,
gen_rtx_MEM (QImode,
plus_constant (base,
@@ -6419,57 +6439,27 @@ output_call (operands)
return "";
}
-static int
-eliminate_lr2ip (x)
- rtx * x;
-{
- int something_changed = 0;
- rtx x0 = * x;
- int code = GET_CODE (x0);
- int i, j;
- const char * fmt;
-
- switch (code)
- {
- case REG:
- if (REGNO (x0) == LR_REGNUM)
- {
- *x = gen_rtx_REG (SImode, IP_REGNUM);
- return 1;
- }
- return 0;
- default:
- /* Scan through the sub-elements and change any references there. */
- fmt = GET_RTX_FORMAT (code);
-
- for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
- if (fmt[i] == 'e')
- something_changed |= eliminate_lr2ip (&XEXP (x0, i));
- else if (fmt[i] == 'E')
- for (j = 0; j < XVECLEN (x0, i); j++)
- something_changed |= eliminate_lr2ip (&XVECEXP (x0, i, j));
-
- return something_changed;
- }
-}
-
/* Output a 'call' insn that is a reference in memory. */
const char *
output_call_mem (operands)
rtx * operands;
{
- operands[0] = copy_rtx (operands[0]); /* Be ultra careful. */
- /* Handle calls using lr by using ip (which may be clobbered in subr anyway). */
- if (eliminate_lr2ip (&operands[0]))
- output_asm_insn ("mov%?\t%|ip, %|lr", operands);
-
if (TARGET_INTERWORK)
{
output_asm_insn ("ldr%?\t%|ip, %0", operands);
output_asm_insn ("mov%?\t%|lr, %|pc", operands);
output_asm_insn ("bx%?\t%|ip", operands);
}
+ else if (regno_use_in (LR_REGNUM, operands[0]))
+ {
+ /* LR is used in the memory address. We load the address in the
+ first instruction. It's safe to use IP as the target of the
+ load since the call will kill it anyway. */
+ output_asm_insn ("ldr%?\t%|ip, %0", operands);
+ output_asm_insn ("mov%?\t%|lr, %|pc", operands);
+ output_asm_insn ("mov%?\t%|pc, %|ip", operands);
+ }
else
{
output_asm_insn ("mov%?\t%|lr, %|pc", operands);
@@ -6763,7 +6753,7 @@ output_move_double (operands)
}
else
{
- otherops[1] = adjust_address (operands[1], VOIDmode, 4);
+ otherops[1] = adjust_address (operands[1], SImode, 4);
/* Take care of overlapping base/data reg. */
if (reg_mentioned_p (operands[0], operands[1]))
{
@@ -6829,7 +6819,7 @@ output_move_double (operands)
/* Fall through */
default:
- otherops[0] = adjust_address (operands[0], VOIDmode, 4);
+ otherops[0] = adjust_address (operands[0], SImode, 4);
otherops[1] = gen_rtx_REG (SImode, 1 + REGNO (operands[1]));
output_asm_insn ("str%?\t%1, %0", operands);
output_asm_insn ("str%?\t%1, %0", otherops);
@@ -7710,7 +7700,7 @@ arm_output_epilogue (really_return)
if (IS_INTERRUPT (func_type))
/* Interrupt handlers will have pushed the
IP onto the stack, so restore it now. */
- print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, 1 << IP_REGNUM);
+ print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, 1 << IP_REGNUM);
}
else
{
@@ -7841,7 +7831,7 @@ arm_output_epilogue (really_return)
default:
if (frame_pointer_needed)
- /* If we used the frame pointer then the return adddress
+ /* If we used the frame pointer then the return address
will have been loaded off the stack directly into the
PC, so there is no need to issue a MOV instruction
here. */
@@ -8149,10 +8139,14 @@ arm_compute_initial_elimination_offset (from, to)
reg_mask = reg_mask & ~ (reg_mask & - reg_mask);
}
- if (regs_ever_live[LR_REGNUM]
- /* If a stack frame is going to be created, the LR will
- be saved as part of that, so we do not need to allow
- for it here. */
+ if ((regs_ever_live[LR_REGNUM]
+ /* If optimizing for size, then we save the link register if
+ any other integer register is saved. This gives a smaller
+ return sequence. */
+ || (optimize_size && call_saved_registers > 0))
+ /* But if a stack frame is going to be created, the LR will
+ be saved as part of that, so we do not need to allow for
+ it here. */
&& ! frame_pointer_needed)
call_saved_registers += 4;
@@ -8456,18 +8450,19 @@ arm_expand_prologue ()
RTX_FRAME_RELATED_P (insn) = 1;
}
- /* If this is an interrupt service routine, and the link register is
- going to be pushed, subtracting four now will mean that the
- function return can be done with a single instruction. */
+ /* If this is an interrupt service routine, and the link register
+ is going to be pushed, and we are not creating a stack frame,
+ (which would involve an extra push of IP and a pop in the epilogue)
+ subtracting four from LR now will mean that the function return
+ can be done with a single instruction. */
if ((func_type == ARM_FT_ISR || func_type == ARM_FT_FIQ)
- && (live_regs_mask & (1 << LR_REGNUM)) != 0)
- {
- emit_insn (gen_rtx_SET (SImode,
- gen_rtx_REG (SImode, LR_REGNUM),
- gen_rtx_PLUS (SImode,
- gen_rtx_REG (SImode, LR_REGNUM),
- GEN_INT (-4))));
- }
+ && (live_regs_mask & (1 << LR_REGNUM)) != 0
+ && ! frame_pointer_needed)
+ emit_insn (gen_rtx_SET (SImode,
+ gen_rtx_REG (SImode, LR_REGNUM),
+ gen_rtx_PLUS (SImode,
+ gen_rtx_REG (SImode, LR_REGNUM),
+ GEN_INT (-4))));
if (live_regs_mask)
{
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index eda2d47feff..039960cddff 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for ARM.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002 Free Software Foundation, Inc.
+ 2001, 2002, 2004 Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rearnsha@arm.com)
@@ -571,7 +571,10 @@ extern int thumb_code;
extern int arm_is_strong;
/* Nonzero if this chip is an XScale. */
-extern int arm_is_xscale;
+extern int arm_arch_xscale;
+
+/* Nonzero if tuning for XScale */
+extern int arm_tune_xscale;
/* Nonzero if this chip is an ARM6 or an ARM7. */
extern int arm_is_6_or_7;
@@ -703,7 +706,7 @@ extern int arm_is_6_or_7;
#define BIGGEST_ALIGNMENT 32
/* Make strings word-aligned so strcpy from constants will be faster. */
-#define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_is_xscale ? 1 : 2)
+#define CONSTANT_ALIGNMENT_FACTOR (TARGET_THUMB || ! arm_arch_xscale ? 1 : 2)
#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
((TREE_CODE (EXP) == STRING_CST \
@@ -1770,13 +1773,19 @@ typedef struct
/* Emit RTL insns to initialize the variable parts of a trampoline.
FNADDR is an RTX for the address of the function's pure code.
CXT is an RTX for the static chain value for the function. */
-#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
-{ \
- emit_move_insn \
- (gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 8 : 16)), CXT); \
- emit_move_insn \
- (gen_rtx_MEM (SImode, plus_constant (TRAMP, TARGET_ARM ? 12 : 20)), FNADDR); \
+#ifndef INITIALIZE_TRAMPOLINE
+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
+{ \
+ emit_move_insn (gen_rtx_MEM (SImode, \
+ plus_constant (TRAMP, \
+ TARGET_ARM ? 8 : 16)), \
+ CXT); \
+ emit_move_insn (gen_rtx_MEM (SImode, \
+ plus_constant (TRAMP, \
+ TARGET_ARM ? 12 : 20)), \
+ FNADDR); \
}
+#endif
/* Addressing modes, and classification of registers for them. */
@@ -2003,10 +2012,17 @@ typedef struct
&& INTVAL (op) <= 31) \
goto LABEL; \
} \
- /* NASTY: Since this limits the addressing of unsigned \
- byte loads. */ \
- range = ((MODE) == HImode || (MODE) == QImode) \
- ? (arm_arch4 ? 256 : 4095) : 4096; \
+ /* XXX For ARM v4 we may be doing a sign-extend operation \
+ during the load, but that has a restricted addressing \
+ range and we are unable to tell here whether that is the \
+ case. To be safe we restrict all loads to that \
+ range. */ \
+ if (arm_arch4) \
+ range = (mode == HImode || mode == QImode) ? 256 : 4096; \
+ else if (mode == HImode) \
+ range = 4095; \
+ else \
+ range = 4096; \
if (code == CONST_INT && INTVAL (INDEX) < range \
&& INTVAL (INDEX) > -range) \
goto LABEL; \
@@ -2029,7 +2045,7 @@ typedef struct
&& GET_CODE (XEXP (X, 0)) == REG \
&& ARM_REG_OK_FOR_BASE_P (XEXP (X, 0))) \
goto LABEL; \
- else if (GET_MODE_SIZE (MODE) >= 4 && reload_completed \
+ else if (reload_completed \
&& (GET_CODE (X) == LABEL_REF \
|| (GET_CODE (X) == CONST \
&& GET_CODE (XEXP ((X), 0)) == PLUS \
@@ -2180,6 +2196,7 @@ typedef struct
goto WIN; \
} \
else if (GET_MODE_CLASS (MODE) != MODE_FLOAT \
+ && GET_MODE_SIZE (mode) == 4 \
&& GET_CODE (X) == SYMBOL_REF \
&& CONSTANT_POOL_ADDRESS_P (X) \
&& ! (flag_pic \
@@ -2322,7 +2339,7 @@ typedef struct
#define MOVE_MAX 4
#undef MOVE_RATIO
-#define MOVE_RATIO (arm_is_xscale ? 4 : 2)
+#define MOVE_RATIO (arm_arch_xscale ? 4 : 2)
/* Define if operations between registers always perform the operation
on the full register even if a narrower mode is specified. */
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 82fafa3f7fa..b6f5d644212 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -1,6 +1,6 @@
;;- Machine description for ARM for GNU compiler
;; Copyright 1991, 1993, 1994, 1995, 1996, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002 Free Software Foundation, Inc.
+;; 2001, 2002, 2004 Free Software Foundation, Inc.
;; Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
;; and Martin Simmons (@harleqn.co.uk).
;; More major hacks by Richard Earnshaw (rearnsha@arm.com).
@@ -59,7 +59,11 @@
(UNSPEC_PIC_SYM 3) ; A symbol that has been treated properly for pic
; usage, that is, we will add the pic_register
; value to it before trying to dereference it.
- (UNSPEC_PRLG_STK 4) ; A special barrier that prevents frame accesses
+ (UNSPEC_PIC_BASE 4) ; Adding the PC value to the offset to the
+ ; GLOBAL_OFFSET_TABLE. The operation is fully
+ ; described by the RTL but must be wrapped to
+ ; prevent combine from trying to rip it apart.
+ (UNSPEC_PRLG_STK 5) ; A special barrier that prevents frame accesses
; being scheduled before the stack adjustment insn.
(UNSPEC_CLZ 5) ; `clz' instruction, count leading zeros (SImode):
; operand 0 is the result,
@@ -116,7 +120,7 @@
;; Operand number of an input operand that is shifted. Zero if the
;; given instruction does not shift one of its input operands.
-(define_attr "is_xscale" "no,yes" (const (symbol_ref "arm_is_xscale")))
+(define_attr "is_xscale" "no,yes" (const (symbol_ref "arm_tune_xscale")))
(define_attr "shift" "" (const_int 0))
; Floating Point Unit. If we only have floating point emulation, then there
@@ -1181,7 +1185,7 @@
(const_int 0)))
(set (match_operand:SI 0 "s_register_operand" "=&r,&r")
(mult:SI (match_dup 2) (match_dup 1)))]
- "TARGET_ARM && !arm_is_xscale"
+ "TARGET_ARM && !arm_arch_xscale"
"mul%?s\\t%0, %2, %1"
[(set_attr "conds" "set")
(set_attr "type" "mult")]
@@ -1194,7 +1198,7 @@
(match_operand:SI 1 "s_register_operand" "%?r,0"))
(const_int 0)))
(clobber (match_scratch:SI 0 "=&r,&r"))]
- "TARGET_ARM && !arm_is_xscale"
+ "TARGET_ARM && !arm_arch_xscale"
"mul%?s\\t%0, %2, %1"
[(set_attr "conds" "set")
(set_attr "type" "mult")]
@@ -1225,7 +1229,7 @@
(set (match_operand:SI 0 "s_register_operand" "=&r,&r,&r,&r")
(plus:SI (mult:SI (match_dup 2) (match_dup 1))
(match_dup 3)))]
- "TARGET_ARM && !arm_is_xscale"
+ "TARGET_ARM && !arm_arch_xscale"
"mla%?s\\t%0, %2, %1, %3"
[(set_attr "conds" "set")
(set_attr "type" "mult")]
@@ -1240,7 +1244,7 @@
(match_operand:SI 3 "s_register_operand" "?r,r,0,0"))
(const_int 0)))
(clobber (match_scratch:SI 0 "=&r,&r,&r,&r"))]
- "TARGET_ARM && !arm_is_xscale"
+ "TARGET_ARM && !arm_arch_xscale"
"mla%?s\\t%0, %2, %1, %3"
[(set_attr "conds" "set")
(set_attr "type" "mult")]
@@ -1334,7 +1338,7 @@
(match_operand:HI 1 "s_register_operand" "%r"))
(sign_extend:SI
(match_operand:HI 2 "s_register_operand" "r"))))]
- "TARGET_ARM && arm_is_xscale"
+ "TARGET_ARM && arm_arch_xscale"
"smulbb%?\\t%0, %1, %2"
[(set_attr "type" "mult")]
)
@@ -1346,7 +1350,7 @@
(match_operand:HI 2 "s_register_operand" "%r"))
(sign_extend:SI
(match_operand:HI 3 "s_register_operand" "r")))))]
- "TARGET_ARM && arm_is_xscale"
+ "TARGET_ARM && arm_arch_xscale"
"smlabb%?\\t%0, %2, %3, %1"
[(set_attr "type" "mult")]
)
@@ -1359,7 +1363,7 @@
(match_operand:HI 2 "s_register_operand" "%r"))
(sign_extend:DI
(match_operand:HI 3 "s_register_operand" "r")))))]
- "TARGET_ARM && arm_is_xscale"
+ "TARGET_ARM && arm_arch_xscale"
"smlalbb%?\\t%Q0, %R0, %2, %3"
[(set_attr "type" "mult")])
@@ -4202,7 +4206,9 @@
(define_insn "pic_add_dot_plus_four"
[(set (match_operand:SI 0 "register_operand" "+r")
- (plus:SI (match_dup 0) (const (plus:SI (pc) (const_int 4)))))
+ (unspec:SI [(plus:SI (match_dup 0)
+ (const (plus:SI (pc) (const_int 4))))]
+ UNSPEC_PIC_BASE))
(use (label_ref (match_operand 1 "" "")))]
"TARGET_THUMB && flag_pic"
"*
@@ -4215,7 +4221,9 @@
(define_insn "pic_add_dot_plus_eight"
[(set (match_operand:SI 0 "register_operand" "+r")
- (plus:SI (match_dup 0) (const (plus:SI (pc) (const_int 8)))))
+ (unspec:SI [(plus:SI (match_dup 0)
+ (const (plus:SI (pc) (const_int 8))))]
+ UNSPEC_PIC_BASE))
(use (label_ref (match_operand 1 "" "")))]
"TARGET_ARM && flag_pic"
"*
@@ -4577,8 +4585,8 @@
)
(define_insn "*thumb_movhi_insn"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=l,l, m,*r,*h,l")
- (match_operand:HI 1 "general_operand" "l,mn,l,*h,*r,I"))]
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=l,l,m,*r,*h,l")
+ (match_operand:HI 1 "general_operand" "l,m,l,*h,*r,I"))]
"TARGET_THUMB
&& ( register_operand (operands[0], HImode)
|| register_operand (operands[1], HImode))"
@@ -4610,8 +4618,7 @@
return \"ldrh %0, %1\";
}"
[(set_attr "length" "2,4,2,2,2,2")
- (set_attr "type" "*,load,store1,*,*,*")
- (set_attr "pool_range" "*,64,*,*,*,*")]
+ (set_attr "type" "*,load,store1,*,*,*")]
)
@@ -8681,8 +8688,14 @@
"
)
+;; Note - although unspec_volatile's USE all hard registers,
+;; USEs are ignored after relaod has completed. Thus we need
+;; to add an unspec of the link register to ensure that flow
+;; does not think that it is unused by the sibcall branch that
+;; will replace the standard function epilogue.
(define_insn "sibcall_epilogue"
- [(unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)]
+ [(parallel [(unspec:SI [(reg:SI LR_REGNUM)] UNSPEC_PROLOGUE_USE)
+ (unspec_volatile [(return)] VUNSPEC_EPILOGUE)])]
"TARGET_ARM"
"*
if (USE_RETURN_INSN (FALSE))
@@ -8691,7 +8704,11 @@
"
;; Length is absolute worst case
[(set_attr "length" "44")
- (set_attr "type" "block")]
+ (set_attr "type" "block")
+ ;; We don't clobber the conditions, but the potential length of this
+ ;; operation is sufficient to make conditionalizing the sequence
+ ;; unlikely to be profitable.
+ (set_attr "conds" "clob")]
)
(define_insn "*epilogue_insns"
@@ -8705,7 +8722,11 @@
"
; Length is absolute worst case
[(set_attr "length" "44")
- (set_attr "type" "block")]
+ (set_attr "type" "block")
+ ;; We don't clobber the conditions, but the potential length of this
+ ;; operation is sufficient to make conditionalizing the sequence
+ ;; unlikely to be profitable.
+ (set_attr "conds" "clob")]
)
(define_expand "eh_epilogue"
diff --git a/gcc/config/arm/elf.h b/gcc/config/arm/elf.h
index 0ad23f8f5d0..79fd170e5cb 100644
--- a/gcc/config/arm/elf.h
+++ b/gcc/config/arm/elf.h
@@ -152,16 +152,6 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_ASM_NAMED_SECTION
#define TARGET_ASM_NAMED_SECTION arm_elf_asm_named_section
-#undef ASM_OUTPUT_ALIGNED_COMMON
-#define ASM_OUTPUT_ALIGNED_COMMON(STREAM, NAME, SIZE, ALIGN) \
- do \
- { \
- fprintf (STREAM, "\t.comm\t"); \
- assemble_name (STREAM, NAME); \
- fprintf (STREAM, ", %d, %d\n", SIZE, ALIGN); \
- } \
- while (0)
-
/* For PIC code we need to explicitly specify (PLT) and (GOT) relocs. */
#define NEED_PLT_RELOC flag_pic
#define NEED_GOT_RELOC flag_pic
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index c6d14e769f1..c63bbc1d5ad 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -34,6 +34,8 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_DEFAULT
#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
+
#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
#undef MULTILIB_DEFAULTS
@@ -123,3 +125,6 @@ Boston, MA 02111-1307, USA. */
#undef CC1_SPEC
#define CC1_SPEC "%{profile:-p}"
+
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
diff --git a/gcc/config/arm/t-netbsd b/gcc/config/arm/t-netbsd
index 511b0151116..76e431bfb11 100644
--- a/gcc/config/arm/t-netbsd
+++ b/gcc/config/arm/t-netbsd
@@ -16,9 +16,9 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
$(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)/$(SHLIB_NAME); \
- $(LN_S) $(SHLIB_SONAME) $$(slibdir)/$(SHLIB_NAME)
+SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME); \
+ $(LN_S) $(SHLIB_SONAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME)
# Don't build enquire
ENQUIRE=
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index dd51f0e7240..86ab6c72829 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -1637,8 +1637,8 @@
[(set (cc0)
(compare (sign_extend:HI
(match_operand:QI 0 "register_operand" "d"))
- (match_operand:HI 1 "immediate_operand" "M")))]
- ""
+ (match_operand:HI 1 "const_int_operand" "n")))]
+ "INTVAL (operands[1]) >= -128 && INTVAL (operands[1]) <= 127"
"cpi %0,lo8(%1)"
[(set_attr "cc" "compare")
(set_attr "length" "1")])
diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr
index 9df673e3f17..91a089912c9 100644
--- a/gcc/config/avr/t-avr
+++ b/gcc/config/avr/t-avr
@@ -47,7 +47,7 @@ MULTILIB_DIRNAMES = avr2 avr3 avr4 avr5
# The many avr2 matches are not listed here - this is the default.
MULTILIB_MATCHES = \
mmcu?avr3=mmcu?atmega103 mmcu?avr3=mmcu?atmega603 \
- mmcu?avr3=mmcu?at43usb320 mmcu?avr3=at43usb355 \
+ mmcu?avr3=mmcu?at43usb320 mmcu?avr3=mmcu?at43usb355 \
mmcu?avr3=mmcu?at76c711 \
mmcu?avr4=mmcu?atmega8515 mmcu?avr4=mmcu?atmega8535 \
mmcu?avr4=mmcu?atmega8 \
diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c
index 354ac76d1fa..b3d53d5e223 100644
--- a/gcc/config/c4x/c4x.c
+++ b/gcc/config/c4x/c4x.c
@@ -5017,7 +5017,7 @@ c4x_expand_builtin (exp, target, subtarget, mode, ignore)
break;
arg0 = TREE_VALUE (arglist);
if (TREE_CODE (arg0) == VAR_DECL || TREE_CODE (arg0) == PARM_DECL)
- put_var_into_stack (arg0);
+ put_var_into_stack (arg0, /*rescan=*/true);
r0 = expand_expr (arg0, NULL_RTX, QFmode, 0);
r0 = protect_from_queue (r0, 0);
if (register_operand (r0, QFmode))
diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h
index 94cca09b597..fa2f3d7c8c5 100644
--- a/gcc/config/c4x/c4x.h
+++ b/gcc/config/c4x/c4x.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler. TMS320C[34]x
- Copyright (C) 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003 Free Software Foundation, Inc.
Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
and Herman Ten Brugge (Haj.Ten.Brugge@net.HCC.nl).
@@ -22,10 +22,10 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#include "hwint.h"
-
/* RUN-TIME TARGET SPECIFICATION. */
+#include "hwint.h"
+
#define C4x 1
#define TARGET_CPU_CPP_BUILTINS() \
@@ -93,23 +93,21 @@
#define ASM_SPEC "\
%{!mcpu=30:%{!mcpu=31:%{!mcpu=32:%{!mcpu=33:%{!mcpu=40:%{!mcpu=44:\
-%{!m30:%{!m40:-m40}}}}}}}} \
-%{mcpu=30:-m30} \
-%{mcpu=31:-m31} \
-%{mcpu=32:-m32} \
-%{mcpu=33:-m33} \
-%{mcpu=40:-m40} \
-%{mcpu=44:-m44} \
-%{m30:-m30} \
-%{m31:-m31} \
-%{m32:-m32} \
-%{m33:-m33} \
-%{m40:-m40} \
-%{m44:-m44} \
-%{mmemparm:-p} %{mregparm:-r} \
-%{!mmemparm:%{!mregparm:-r}} \
-%{mbig:-b} %{msmall:-s} \
-%{!msmall:%{!mbig:-b}}"
+%{!m30:%{!m31:%{!m32:%{!m33:%{!m40:%{!m44:-m40}}}}}}}}}}}} \
+%{mcpu=30} \
+%{mcpu=31} \
+%{mcpu=32} \
+%{mcpu=33} \
+%{mcpu=40} \
+%{mcpu=44} \
+%{m30} \
+%{m31} \
+%{m32} \
+%{m33} \
+%{m40} \
+%{m44} \
+%{mmemparm} %{mregparm} %{!mmemparm:%{!mregparm:-mregparm}} \
+%{mbig} %{msmall} %{!msmall:%{!mbig:-mbig}}"
/* Define linker options. */
@@ -153,7 +151,7 @@
#define C30_FLAG 0x0100000 /* Emit C30 code. */
#define C31_FLAG 0x0200000 /* Emit C31 code. */
#define C32_FLAG 0x0400000 /* Emit C32 code. */
-#define C33_FLAG 0x0400000 /* Emit C33 code. */
+#define C33_FLAG 0x0800000 /* Emit C33 code. */
#define C40_FLAG 0x1000000 /* Emit C40 code. */
#define C44_FLAG 0x2000000 /* Emit C44 code. */
@@ -239,7 +237,7 @@
{ "no-force", -FORCE_FLAG, \
N_("Allow RTL generation to emit invalid 3 operand insns") }, \
{ "loop-unsigned", LOOP_UNSIGNED_FLAG, \
- N_("Allow unsigned interation counts for RPTB/DB") }, \
+ N_("Allow unsigned iteration counts for RPTB/DB") }, \
{ "no-loop-unsigned", -LOOP_UNSIGNED_FLAG, \
N_("Disallow unsigned iteration counts for RPTB/DB") }, \
{ "preserve-float", PRESERVE_FLOAT_FLAG, \
@@ -1675,6 +1673,7 @@ fini_section () \
if (TARGET_C30) dspversion = 30; \
if (TARGET_C31) dspversion = 31; \
if (TARGET_C32) dspversion = 32; \
+ if (TARGET_C33) dspversion = 33; \
if (TARGET_C40) dspversion = 40; \
if (TARGET_C44) dspversion = 44; \
fprintf (FILE, "\t.version\t%d\n", dspversion); \
diff --git a/gcc/config/c4x/t-c4x b/gcc/config/c4x/t-c4x
index d1a83fb4231..45bcdeb6aee 100644
--- a/gcc/config/c4x/t-c4x
+++ b/gcc/config/c4x/t-c4x
@@ -13,7 +13,7 @@ c4x-c.o: $(srcdir)/config/c4x/c4x-c.c $(CONFIG_H) $(SYSTEM_H) cpplib.h \
MULTILIB_OPTIONS = m30 msmall mmemparm
MULTILIB_DIRNAMES = c3x small mem
-MULTILIB_MATCHES = m30=mcpu?30 m30=mcpu?31 m30=mcpu?32 m30=m31 m30=m32
+MULTILIB_MATCHES = m30=mcpu?30 m30=mcpu?31 m30=mcpu?32 m30=mcpu?33 m30=m31 m30=m32 m30=m33
MULTILIB_EXCEPTIONS =
MULTILIB_EXTRA_OPTS =
LIBGCC = stmp-multilib
diff --git a/gcc/config/cris/aout.h b/gcc/config/cris/aout.h
index dabee83a73b..277fd363e1b 100644
--- a/gcc/config/cris/aout.h
+++ b/gcc/config/cris/aout.h
@@ -48,6 +48,9 @@ Boston, MA 02111-1307, USA. */
%{!sim:%{pg:gcrt0.o%s}\
%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}}}"
+/* Override cris.h define. */
+#undef ENDFILE_SPEC
+
/* Which library to get. The only difference from the default is to get
libsc.a if -sim is given to the driver. Repeat -lc -lsysX
{X=sim,linux}, because libsysX needs (at least) errno from libc, and
@@ -64,8 +67,7 @@ Boston, MA 02111-1307, USA. */
#undef CRIS_CPP_SUBTARGET_SPEC
#define CRIS_CPP_SUBTARGET_SPEC \
- "-D__AOUT__\
- %{melinux:-D__gnu_linux__ -D__linux__ -D__unix__ -D__elinux__ -D__uclinux__\
+ "%{melinux:-D__gnu_linux__ -D__linux__ -D__unix__ -D__elinux__ -D__uclinux__\
%{!nostdinc:\
%{!mbest-lib-options:%{isystem*}}\
-isystem elinux/include%s\
@@ -118,6 +120,19 @@ Boston, MA 02111-1307, USA. */
#undef CRIS_SUBTARGET_DEFAULT
#define CRIS_SUBTARGET_DEFAULT 0
+
+/* Node: Run-time Target */
+
+/* For the cris-*-aout subtarget. */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__AOUT__"); \
+ } \
+ while (0)
+
+
/* Node: Storage Layout */
/* We can align to 16 bits (only) with CRIS a.out. */
@@ -343,6 +358,13 @@ Boston, MA 02111-1307, USA. */
} \
while (0)
+/* The configure machinery invokes the assembler without options, which is
+ not how gcc invokes it. Without options, the multi-target assembler
+ will probably be found, which is ELF by default. To counter that, we
+ need to override ELF auto-host.h config stuff which we know collides
+ with a.out. */
+#undef HAVE_GAS_HIDDEN
+
/* Node: Alignment Output */
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 2eb864f065c..2e2970e23a1 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -1,5 +1,5 @@
/* Definitions for GCC. Part of the machine description for CRIS.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
@@ -312,7 +312,10 @@ cris_commutative_orth_op (x, mode)
|| code == IOR || code == AND || code == UMIN));
}
-/* Check if MODE is same as mode for X, and X is PLUS or MINUS or UMIN. */
+/* Check if MODE is same as mode for X, and X is PLUS or MINUS or UMIN.
+ By the name, you might think we should include MULT. We don't because
+ it doesn't accept the same addressing modes as the others (ony
+ registers) and there's also the problem of handling TARGET_MUL_BUG. */
int
cris_operand_extend_operator (x, mode)
@@ -328,6 +331,22 @@ cris_operand_extend_operator (x, mode)
&& (code == PLUS || code == MINUS || code == UMIN));
}
+/* Check if MODE is same as mode for X, and X is PLUS or MINUS. */
+
+int
+cris_additive_operand_extend_operator (x, mode)
+ rtx x;
+ enum machine_mode mode;
+{
+ enum rtx_code code = GET_CODE (x);
+
+ if (mode == VOIDmode)
+ mode = GET_MODE (x);
+
+ return (GET_MODE (x) == mode
+ && (code == PLUS || code == MINUS));
+}
+
/* Check to see if MODE is same as mode for X, and X is SIGN_EXTEND or
ZERO_EXTEND. */
@@ -361,6 +380,19 @@ cris_plus_or_bound_operator (x, mode)
(GET_MODE (x) == mode && (code == UMIN || code == PLUS));
}
+/* Used as an operator to get a handle on a already-known-valid MEM rtx:es
+ (no need to validate the address), where some address expression parts
+ have their own match_operand. */
+
+int
+cris_mem_op (rtx x, enum machine_mode mode)
+{
+ if (mode == VOIDmode)
+ mode = GET_MODE (x);
+
+ return GET_MODE (x) == mode && GET_CODE (x) == MEM;
+}
+
/* Since with -fPIC, not all symbols are valid PIC symbols or indeed
general_operands, we have to have a predicate that matches it for the
"movsi" expander. */
@@ -467,7 +499,11 @@ cris_op_str (x)
break;
case MULT:
- return "mul";
+ /* This function is for retrieving a part of an instruction name for
+ an operator, for immediate output. If that ever happens for
+ MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure
+ we notice. */
+ abort ();
break;
case DIV:
@@ -1372,6 +1408,23 @@ cris_print_operand (file, x, code)
fputs ("\n\tnop", file);
return;
+ case '!':
+ /* Output directive for alignment padded with "nop" insns.
+ Optimizing for size, it's plain 4-byte alignment, otherwise we
+ align the section to a cache-line (32 bytes) and skip at max 2
+ bytes, i.e. we skip if it's the last insn on a cache-line. The
+ latter is faster by a small amount (for two test-programs 99.6%
+ and 99.9%) and larger by a small amount (ditto 100.1% and
+ 100.2%). This is supposed to be the simplest yet performance-
+ wise least intrusive way to make sure the immediately following
+ (supposed) muls/mulu insn isn't located at the end of a
+ cache-line. */
+ if (TARGET_MUL_BUG)
+ fputs (optimize_size
+ ? ".p2alignw 2,0x050f\n\t"
+ : ".p2alignw 5,0x050f,2\n\t", file);
+ return;
+
case 'H':
/* Print high (most significant) part of something. */
switch (GET_CODE (operand))
@@ -1978,8 +2031,8 @@ cris_notice_update_cc (exp, insn)
value1=rz and value2=[rx] */
cc_status.value1 = XEXP (XVECEXP (exp, 0, 0), 0);
cc_status.value2
- = gen_rtx_MEM (GET_MODE (XEXP (XVECEXP (exp, 0, 0), 0)),
- XEXP (XVECEXP (exp, 0, 1), 0));
+ = replace_equiv_address (XEXP (XVECEXP (exp, 0, 0), 1),
+ XEXP (XVECEXP (exp, 0, 1), 0));
cc_status.flags = 0;
/* Huh? A side-effect cannot change the destination
@@ -2606,10 +2659,24 @@ cris_asm_output_mi_thunk (stream, thunkdecl, delta, vcall_offset, funcdecl)
{
const char *name = XSTR (XEXP (DECL_RTL (funcdecl), 0), 0);
+ /* We have no other relative (to either PC or GOT) reloc than one
+ that requests a PLT entry. Since we don't set up the GOT
+ register, the jump absolutely must not be redirected through a
+ PLT entry. We manage anyway by going through a local symbol.
+ This depends on the assembler to not short-circuit equalities
+ set by the ".set" directive (at least not for PIC relocs) and
+ on the linker to direct R_CRIS_32_PLT_PCREL relocs *directly*
+ to the symbol for local symbols, instead of through a PLT
+ entry. */
name = (* targetm.strip_name_encoding) (name);
- fprintf (stream, "add.d ");
+ fprintf (stream, "\tadd.d ");
assemble_name (stream, name);
- fprintf (stream, "%s,$pc\n", CRIS_PLT_PCOFFSET_SUFFIX);
+ fprintf (stream, "..xth%s,$pc\n", CRIS_PLT_PCOFFSET_SUFFIX);
+ fprintf (stream, "\t.set ");
+ assemble_name (stream, name);
+ fprintf (stream, "..xth,");
+ assemble_name (stream, name);
+ fprintf (stream, "\n");
}
else
{
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 4aa88466c80..10ae4aa3587 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -1,5 +1,5 @@
/* Definitions for GCC. Part of the machine description for CRIS.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
@@ -115,18 +115,8 @@ extern const char *cris_elinux_stacksize_str;
/* Also provide canonical vN definitions when user specifies an alias.
Note that -melf overrides -maout. */
-/* The `-$' is here mostly due to the integrated preprocessor not
- handling the builtin expansion of "#define __REGISTER_PREFIX__ $"
- gracefully. This is slightly redundant although not incorrect.
- We're quite alone defining REGISTER_PREFIX as "$" so it's unlikely
- someone will fight for us. This year in the mountains.
- Note that for -melinux and -mlinux, command-line -isystem options are
- emitted both before and after the synthesized one. We can't remove all
- of them: a %{<isystem} will only remove the first one and %{<isystem*}
- will not do TRT. Those extra occurrences are harmless anyway. */
#define CPP_SPEC \
- "-$ -D__CRIS_ABI_version=2\
- %{mtune=*:-D__tune_%* %{mtune=v*:-D__CRIS_arch_tune=%*}}\
+ "%{mtune=*:-D__tune_%* %{mtune=v*:-D__CRIS_arch_tune=%*}}\
%{mtune=etrax4:-D__tune_v3 -D__CRIS_arch_tune=3}\
%{mtune=etrax100:-D__tune_v8 -D__CRIS_arch_tune=8}\
%{mtune=svinto:-D__tune_v8 -D__CRIS_arch_tune=8}\
@@ -150,8 +140,7 @@ extern const char *cris_elinux_stacksize_str;
/* For the cris-*-elf subtarget. */
#define CRIS_CPP_SUBTARGET_SPEC \
- "-D__ELF__\
- %{mbest-lib-options:\
+ "%{mbest-lib-options:\
%{!moverride-best-lib-options:\
%{!march=*:%{!metrax*:%{!mcpu=*:-D__tune_v10 -D__CRIS_arch_tune=10}}}}}"
@@ -181,9 +170,17 @@ extern const char *cris_elinux_stacksize_str;
%{!melinux:%{!maout|melf:%{!fno-vtable-gc:-fvtable-gc}}}}}". */
#define CC1PLUS_SPEC ""
+#ifdef HAVE_AS_MUL_BUG_ABORT_OPTION
+#define MAYBE_AS_NO_MUL_BUG_ABORT \
+ "%{mno-mul-bug-workaround:-no-mul-bug-abort} "
+#else
+#define MAYBE_AS_NO_MUL_BUG_ABORT
+#endif
+
/* Override previous definitions (linux.h). */
#undef ASM_SPEC
#define ASM_SPEC \
+ MAYBE_AS_NO_MUL_BUG_ABORT \
"%{v:-v}\
%(asm_subtarget)"
@@ -255,8 +252,23 @@ extern const char *cris_elinux_stacksize_str;
/* Node: Run-time Target */
-/* Only keep the non-varying ones here. */
-#define CPP_PREDEFINES "-Dcris -DCRIS -DGNU_CRIS"
+#define TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define_std ("cris"); \
+ builtin_define_std ("CRIS"); \
+ builtin_define_std ("GNU_CRIS"); \
+ builtin_define ("__CRIS_ABI_version=2"); \
+ } \
+ while (0)
+
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__ELF__"); \
+ } \
+ while (0)
+
/* This needs to be at least 32 bits. */
extern int target_flags;
@@ -327,8 +339,34 @@ extern int target_flags;
#define TARGET_MASK_AVOID_GOTPLT 8192
#define TARGET_AVOID_GOTPLT (target_flags & TARGET_MASK_AVOID_GOTPLT)
+/* Whether or not to work around multiplication instruction hardware bug
+ when generating code for models where it may be present. From the
+ trouble report for Etrax 100 LX: "A multiply operation may cause
+ incorrect cache behaviour under some specific circumstances. The
+ problem can occur if the instruction following the multiply instruction
+ causes a cache miss, and multiply operand 1 (source operand) bits
+ [31:27] matches the logical mapping of the mode register address
+ (0xb0....), and bits [9:2] of operand 1 matches the TLB register
+ address (0x258-0x25f). There is such a mapping in kernel mode or when
+ the MMU is off. Normally there is no such mapping in user mode, and
+ the problem will therefore probably not occur in Linux user mode
+ programs."
+
+ We have no sure-fire way to know from within GCC that we're compiling a
+ user program. For example, -fpic/PIC is used in libgcc which is linked
+ into the kernel. However, the workaround option -mno-mul-bug can be
+ safely used per-package when compiling programs. The same goes for
+ general user-only libraries such as glibc, since there's no user-space
+ driver-like program that gets a mapping of I/O registers (all on the
+ same page, including the TLB registers). */
+#define TARGET_MASK_MUL_BUG 16384
+#define TARGET_MUL_BUG (target_flags & TARGET_MASK_MUL_BUG)
+
#define TARGET_SWITCHES \
{ \
+ {"mul-bug-workaround", TARGET_MASK_MUL_BUG, \
+ N_("Work around bug in multiplication instruction")}, \
+ {"no-mul-bug-workaround", -TARGET_MASK_MUL_BUG, ""}, \
/* No "no-etrax" as it does not really imply any model. \
On the other hand, "etrax" implies the common (and large) \
subset matching all models. */ \
@@ -406,7 +444,7 @@ extern int target_flags;
# define TARGET_DEFAULT \
(TARGET_MASK_SIDE_EFFECT_PREFIXES + TARGET_MASK_STACK_ALIGN \
+ TARGET_MASK_CONST_ALIGN + TARGET_MASK_DATA_ALIGN \
- + TARGET_MASK_PROLOGUE_EPILOGUE)
+ + TARGET_MASK_PROLOGUE_EPILOGUE + TARGET_MASK_MUL_BUG)
#endif
/* For the cris-*-elf subtarget. */
@@ -956,9 +994,8 @@ enum reg_class {NO_REGS, ALL_REGS, LIM_REG_CLASSES};
struct cum_args {int regs;};
/* The regs member is an integer, the number of arguments got into
- registers so far, and lib is nonzero if init_cumulative_args was
- found to generate a call to a library function. */
-#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT) \
+ registers so far. */
+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT) \
((CUM).regs = 0)
#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
@@ -1246,8 +1283,7 @@ struct cum_args {int regs;};
FIXME: Check and adjust for gcc-2.9x. */
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {}
-/* Functionality import from EGCS.
- Kludge to solve Axis-990219: Work around imperfection in
+/* Kludge to solve Axis-990219: Work around imperfection in
reload_load_address1:
(plus (sign_extend (mem:qi (reg))) (reg))
should be reloaded as (plus (reg) (reg)), not
@@ -1255,9 +1291,8 @@ struct cum_args {int regs;};
There are no checks that reload_load_address_1 "reloads"
addresses correctly, so invalidness is not caught or
corrected.
- When the right thing happens, the "something_reloaded" kludge can
- be removed. The right thing does not appear to happen for
- EGCS CVS as of this date (above). */
+ When the right thing happens in reload, the kludge can
+ be removed; still not as of 2003-02-27. */
#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, IND_LEVELS, WIN) \
do \
@@ -1621,7 +1656,8 @@ call_ ## FUNC (void) \
cris_print_operand (FILE, X, CODE)
/* For delay-slot handling. */
-#define PRINT_OPERAND_PUNCT_VALID_P(CODE) (CODE == '#')
+#define PRINT_OPERAND_PUNCT_VALID_P(CODE) \
+ ((CODE) == '#' || (CODE) == '!')
#define PRINT_OPERAND_ADDRESS(FILE, ADDR) \
cris_print_operand_address (FILE, ADDR)
@@ -1733,10 +1769,14 @@ call_ ## FUNC (void) \
{PLUS, IOR, AND, UMIN}}, \
{"cris_operand_extend_operator", \
{PLUS, MINUS, UMIN}}, \
+ {"cris_additive_operand_extend_operator", \
+ {PLUS, MINUS}}, \
{"cris_extend_operator", \
{ZERO_EXTEND, SIGN_EXTEND}}, \
{"cris_plus_or_bound_operator", \
{PLUS, UMIN}}, \
+ {"cris_mem_op", \
+ {MEM}}, \
{"cris_bdap_operand", \
{SUBREG, REG, LABEL_REF, SYMBOL_REF, MEM, CONST_INT, \
CONST_DOUBLE, CONST, SIGN_EXTEND}}, \
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index 1683192189c..4a9b6c8b13c 100644
--- a/gcc/config/cris/cris.md
+++ b/gcc/config/cris/cris.md
@@ -1,5 +1,5 @@
;; GCC machine description for CRIS cpu cores.
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Axis Communications.
;; This file is part of GCC.
@@ -34,7 +34,7 @@
;; gcc-2.7.2 (and problably not on gcc-2.8.1), relating to that when a
;; constant is substituted into an operand, the actual mode must be
;; deduced from the pattern. There is reasonable hope that that has been
-;; fixed in egcs post 1.1.1, so FIXME: try again.
+;; fixed, so FIXME: try again.
;; You will notice that three-operand alternatives ("=r", "r", "!To")
;; are marked with a "!" constraint modifier to avoid being reloaded
@@ -496,7 +496,7 @@
[(set (match_operand:QI 0 "register_operand" "=r,r,r")
(mem:QI
(plus:SI (match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri"))))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn"))))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -519,7 +519,7 @@
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
(mem:HI
(plus:SI (match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri"))))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn"))))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -542,7 +542,7 @@
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
(mem:SI
(plus:SI (match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri"))))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn"))))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -640,10 +640,12 @@
(define_split
[(parallel
- [(set (mem (plus:SI
- (mult:SI (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "const_int_operand" ""))
- (match_operand:SI 2 "register_operand" "")))
+ [(set (match_operator
+ 6 "cris_mem_op"
+ [(plus:SI
+ (mult:SI (match_operand:SI 0 "register_operand" "")
+ (match_operand:SI 1 "const_int_operand" ""))
+ (match_operand:SI 2 "register_operand" ""))])
(match_operand 3 "register_operand" ""))
(set (match_operand:SI 4 "register_operand" "")
(plus:SI (mult:SI (match_dup 0)
@@ -657,11 +659,12 @@
(match_dup 1))
(match_dup 4)))]
"operands[5]
- = gen_rtx_MEM (GET_MODE (operands[3]),
- gen_rtx_PLUS (SImode,
- gen_rtx_MULT (SImode,
- operands[0], operands[1]),
- operands[2]));")
+ = replace_equiv_address (operands[6],
+ gen_rtx_PLUS (SImode,
+ gen_rtx_MULT (SImode,
+ operands[0],
+ operands[1]),
+ operands[2]));")
;; move.s rx,[ry=rz+i]
;; FIXME: These could have anonymous mode for operand 2.
@@ -671,7 +674,7 @@
(define_insn "*mov_sideqi_mem"
[(set (mem:QI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r>Rn,r,>Rn")))
(match_operand:QI 2 "register_operand" "r,r,r,r"))
(set (match_operand:SI 3 "register_operand" "=*0,!2,r,r")
(plus:SI (match_dup 0)
@@ -696,7 +699,7 @@
(define_insn "*mov_sidehi_mem"
[(set (mem:HI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r>Rn,r,>Rn")))
(match_operand:HI 2 "register_operand" "r,r,r,r"))
(set (match_operand:SI 3 "register_operand" "=*0,!2,r,r")
(plus:SI (match_dup 0)
@@ -721,7 +724,7 @@
(define_insn "*mov_sidesi_mem"
[(set (mem:SI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r>Rn,r,>Rn")))
(match_operand:SI 2 "register_operand" "r,r,r,r"))
(set (match_operand:SI 3 "register_operand" "=*0,!2,r,r")
(plus:SI (match_dup 0)
@@ -747,9 +750,11 @@
(define_split
[(parallel
- [(set (mem (plus:SI
- (match_operand:SI 0 "cris_bdap_operand" "")
- (match_operand:SI 1 "cris_bdap_operand" "")))
+ [(set (match_operator
+ 4 "cris_mem_op"
+ [(plus:SI
+ (match_operand:SI 0 "cris_bdap_operand" "")
+ (match_operand:SI 1 "cris_bdap_operand" ""))])
(match_operand 2 "register_operand" ""))
(set (match_operand:SI 3 "register_operand" "")
(plus:SI (match_dup 0) (match_dup 1)))])]
@@ -757,9 +762,7 @@
[(set (match_dup 4) (match_dup 2))
(set (match_dup 3) (match_dup 0))
(set (match_dup 3) (plus:SI (match_dup 3) (match_dup 1)))]
- "operands[4]
- = gen_rtx_MEM (GET_MODE (operands[2]),
- gen_rtx_PLUS (SImode, operands[0], operands[1]));")
+ "")
;; Clear memory side-effect patterns. It is hard to get to the mode if
;; the MEM was anonymous, so there will be one for each mode.
@@ -786,7 +789,7 @@
(define_insn "*clear_sidesi"
[(set (mem:SI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r,>Rn")))
(const_int 0))
(set (match_operand:SI 2 "register_operand" "=*0,r,r")
(plus:SI (match_dup 0)
@@ -826,7 +829,7 @@
(define_insn "*clear_sidehi"
[(set (mem:HI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r,>Rn")))
(const_int 0))
(set (match_operand:SI 2 "register_operand" "=*0,r,r")
(plus:SI (match_dup 0)
@@ -866,7 +869,7 @@
(define_insn "*clear_sideqi"
[(set (mem:QI
(plus:SI (match_operand:SI 0 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 1 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 1 "cris_bdap_operand" "r>Rn,r,>Rn")))
(const_int 0))
(set (match_operand:SI 2 "register_operand" "=*0,r,r")
(plus:SI (match_dup 0)
@@ -1127,7 +1130,7 @@
4 "cris_extend_operator"
[(mem:QI (plus:SI
(match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -1152,7 +1155,7 @@
4 "cris_extend_operator"
[(mem:QI (plus:SI
(match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -1177,7 +1180,7 @@
4 "cris_extend_operator"
[(mem:HI (plus:SI
(match_operand:SI 1 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 2 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 2 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 3 "register_operand" "=*1,r,r")
(plus:SI (match_dup 1)
(match_dup 2)))]
@@ -1473,7 +1476,7 @@
[(match_operand:QI 1 "register_operand" "0,0,0")
(mem:QI (plus:SI
(match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
(match_dup 3)))]
@@ -1499,7 +1502,7 @@
[(match_operand:HI 1 "register_operand" "0,0,0")
(mem:HI (plus:SI
(match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
(match_dup 3)))]
@@ -1525,7 +1528,7 @@
[(match_operand:SI 1 "register_operand" "0,0,0")
(mem:SI (plus:SI
(match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))]))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
(match_dup 3)))]
@@ -1624,7 +1627,7 @@
5 "cris_commutative_orth_op"
[(mem:QI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))
(match_operand:QI 1 "register_operand" "0,0,0")]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -1650,7 +1653,7 @@
5 "cris_commutative_orth_op"
[(mem:HI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))
(match_operand:HI 1 "register_operand" "0,0,0")]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -1676,7 +1679,7 @@
5 "cris_commutative_orth_op"
[(mem:SI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))
(match_operand:SI 1 "register_operand" "0,0,0")]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -1886,7 +1889,7 @@
(define_insn "*extopqihi_side_biap"
[(set (match_operand:HI 0 "register_operand" "=r,r")
(match_operator:HI
- 6 "cris_operand_extend_operator"
+ 6 "cris_additive_operand_extend_operator"
[(match_operand:HI 1 "register_operand" "0,0")
(match_operator:HI
7 "cris_extend_operator"
@@ -1898,8 +1901,7 @@
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[5]) != UMIN || GET_CODE (operands[7]) == ZERO_EXTEND)
- && cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
+ "cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
%x6%e7.%m7 [%5=%4+%2%T3],%0")
@@ -1921,7 +1923,7 @@
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[5]) != UMIN || GET_CODE (operands[7]) == ZERO_EXTEND)
+ "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[7]) == ZERO_EXTEND)
&& cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
@@ -1944,7 +1946,7 @@
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[5]) != UMIN || GET_CODE (operands[7]) == ZERO_EXTEND)
+ "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[7]) == ZERO_EXTEND)
&& cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
@@ -1959,19 +1961,18 @@
(define_insn "*extopqihi_side"
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
(match_operator:HI
- 5 "cris_operand_extend_operator"
+ 5 "cris_additive_operand_extend_operator"
[(match_operand:HI 1 "register_operand" "0,0,0")
(match_operator:HI
6 "cris_extend_operator"
[(mem:QI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")
))])]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
(match_dup 3)))]
- "(GET_CODE (operands[5]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
- && cris_side_effect_mode_ok (PLUS, operands, 4, 2, 3, -1, 0)"
+ "cris_side_effect_mode_ok (PLUS, operands, 4, 2, 3, -1, 0)"
"*
{
if (which_alternative == 0
@@ -1995,7 +1996,7 @@
6 "cris_extend_operator"
[(mem:QI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")
))])]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -2026,7 +2027,7 @@
6 "cris_extend_operator"
[(mem:HI
(plus:SI (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")
))])]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -2053,28 +2054,25 @@
;; QImode to HImode
;; FIXME: GCC should widen.
-;; FIXME: These could have anonymous mode for operand 0.
(define_insn "*extopqihi_swap_side_biap"
[(set (match_operand:HI 0 "register_operand" "=r,r")
- (match_operator:HI
- 7 "cris_plus_or_bound_operator"
- [(match_operator:HI
- 6 "cris_extend_operator"
- [(mem:QI (plus:SI
- (mult:SI (match_operand:SI 2 "register_operand" "r,r")
- (match_operand:SI 3 "const_int_operand" "n,n"))
- (match_operand:SI 4 "register_operand" "r,r")))])
- (match_operand:HI 1 "register_operand" "0,0")]))
+ (plus:HI
+ (match_operator:HI
+ 6 "cris_extend_operator"
+ [(mem:QI (plus:SI
+ (mult:SI (match_operand:SI 2 "register_operand" "r,r")
+ (match_operand:SI 3 "const_int_operand" "n,n"))
+ (match_operand:SI 4 "register_operand" "r,r")))])
+ (match_operand:HI 1 "register_operand" "0,0")))
(set (match_operand:SI 5 "register_operand" "=*4,r")
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
- && cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
+ "cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
- %x7%e6.%m6 [%5=%4+%2%T3],%0")
+ add%e6.b [%5=%4+%2%T3],%0")
;; QImode to SImode
@@ -2093,7 +2091,7 @@
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
+ "(GET_CODE (operands[7]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
&& cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
@@ -2115,7 +2113,7 @@
(plus:SI (mult:SI (match_dup 2)
(match_dup 3))
(match_dup 4)))]
- "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
+ "(GET_CODE (operands[7]) != UMIN || GET_CODE (operands[6]) == ZERO_EXTEND)
&& cris_side_effect_mode_ok (MULT, operands, 5, 4, 2, 3, 0)"
"@
#
@@ -2129,19 +2127,17 @@
(define_insn "*extopqihi_swap_side"
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
- (match_operator:HI
- 6 "cris_plus_or_bound_operator"
- [(match_operator:HI
- 5 "cris_extend_operator"
- [(mem:QI (plus:SI
- (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))])
- (match_operand:HI 1 "register_operand" "0,0,0")]))
+ (plus:HI
+ (match_operator:HI
+ 5 "cris_extend_operator"
+ [(mem:QI (plus:SI
+ (match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))])
+ (match_operand:HI 1 "register_operand" "0,0,0")))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
(match_dup 3)))]
- "(GET_CODE (operands[6]) != UMIN || GET_CODE (operands[5]) == ZERO_EXTEND)
- && cris_side_effect_mode_ok (PLUS, operands, 4, 2, 3, -1, 0)"
+ "cris_side_effect_mode_ok (PLUS, operands, 4, 2, 3, -1, 0)"
"*
{
if (which_alternative == 0
@@ -2151,7 +2147,7 @@
|| CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'N')
|| CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'J')))
return \"#\";
- return \"%x6%e5.%m5 [%4=%2%S3],%0\";
+ return \"add%e5.b [%4=%2%S3],%0\";
}")
;; QImode to SImode
@@ -2164,7 +2160,7 @@
5 "cris_extend_operator"
[(mem:QI (plus:SI
(match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))])
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))])
(match_operand:SI 1 "register_operand" "0,0,0")]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -2193,7 +2189,7 @@
5 "cris_extend_operator"
[(mem:HI (plus:SI
(match_operand:SI 2 "cris_bdap_operand" "%r,r,r")
- (match_operand:SI 3 "cris_bdap_operand" "r>Ri,r,>Ri")))])
+ (match_operand:SI 3 "cris_bdap_operand" "r>Rn,r,>Rn")))])
(match_operand:SI 1 "register_operand" "0,0,0")]))
(set (match_operand:SI 4 "register_operand" "=*2,r,r")
(plus:SI (match_dup 2)
@@ -2221,13 +2217,12 @@
(define_insn "*extopqihi"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
(match_operator:HI
- 3 "cris_operand_extend_operator"
+ 3 "cris_additive_operand_extend_operator"
[(match_operand:HI 1 "register_operand" "0,0,0,r")
(match_operator:HI
4 "cris_extend_operator"
[(match_operand:QI 2 "nonimmediate_operand" "r,Q>,m,!To")])]))]
- "(GET_CODE (operands[3]) != UMIN || GET_CODE (operands[4]) == ZERO_EXTEND)
- && GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
+ "GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
&& (operands[1] != frame_pointer_rtx || GET_CODE (operands[3]) != PLUS)"
"@
%x3%e4.%m4 %2,%0
@@ -2285,20 +2280,17 @@
(define_insn "*extopqihi_swap"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r")
- (match_operator:HI
- 4 "cris_plus_or_bound_operator"
- [(match_operator:HI
- 3 "cris_extend_operator"
- [(match_operand:QI 2 "nonimmediate_operand" "r,Q>,m,!To")])
- (match_operand:HI 1 "register_operand" "0,0,0,r")]))]
- "(GET_CODE (operands[3]) != UMIN || GET_CODE (operands[4]) == ZERO_EXTEND)
- && GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
- && operands[1] != frame_pointer_rtx"
+ (plus:HI
+ (match_operator:HI
+ 3 "cris_extend_operator"
+ [(match_operand:QI 2 "nonimmediate_operand" "r,Q>,m,!To")])
+ (match_operand:HI 1 "register_operand" "0,0,0,r")))]
+ "operands[1] != frame_pointer_rtx"
"@
- %x4%e3.%m3 %2,%0
- %x4%e3.%m3 %2,%0
- %x4%e3.%m3 %2,%0
- %x4%e3.%m3 %2,%1,%0"
+ add%e3.b %2,%0
+ add%e3.b %2,%0
+ add%e3.b %2,%0
+ add%e3.b %2,%1,%0"
[(set_attr "slottable" "yes,yes,no,no")
(set_attr "cc" "clobber")])
@@ -2312,8 +2304,7 @@
3 "cris_extend_operator"
[(match_operand:QI 2 "nonimmediate_operand" "r,Q>,m,!To")])
(match_operand:SI 1 "register_operand" "0,0,0,r")]))]
- "(GET_CODE (operands[3]) != UMIN || GET_CODE (operands[4]) == ZERO_EXTEND)
- && GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
+ "(GET_CODE (operands[4]) != UMIN || GET_CODE (operands[3]) == ZERO_EXTEND)
&& operands[1] != frame_pointer_rtx"
"@
%x4%e3.%m3 %2,%0
@@ -2332,8 +2323,7 @@
3 "cris_extend_operator"
[(match_operand:HI 2 "nonimmediate_operand" "r,Q>,m,!To")])
(match_operand:SI 1 "register_operand" "0,0,0,r")]))]
- "(GET_CODE (operands[3]) != UMIN || GET_CODE (operands[4]) == ZERO_EXTEND)
- && GET_MODE_SIZE (GET_MODE (operands[0])) <= UNITS_PER_WORD
+ "(GET_CODE (operands[4]) != UMIN || GET_CODE (operands[3]) == ZERO_EXTEND)
&& operands[1] != frame_pointer_rtx"
"@
%x4%e3.%m3 %2,%0
@@ -2478,8 +2468,11 @@
(zero_extend:SI (match_operand:HI 1 "register_operand" "0"))
(zero_extend:SI (match_operand:HI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "mulu.w %2,%0"
- [(set_attr "slottable" "yes")
+ "%!mulu.w %2,%0"
+ [(set (attr "slottable")
+ (if_then_else (ne (symbol_ref "TARGET_MUL_BUG") (const_int 0))
+ (const_string "no")
+ (const_string "yes")))
;; Just N unusable here, but let's be safe.
(set_attr "cc" "clobber")])
@@ -2489,8 +2482,11 @@
(zero_extend:HI (match_operand:QI 1 "register_operand" "0"))
(zero_extend:HI (match_operand:QI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "mulu.b %2,%0"
- [(set_attr "slottable" "yes")
+ "%!mulu.b %2,%0"
+ [(set (attr "slottable")
+ (if_then_else (ne (symbol_ref "TARGET_MUL_BUG") (const_int 0))
+ (const_string "no")
+ (const_string "yes")))
;; Not exactly sure, but let's be safe.
(set_attr "cc" "clobber")])
@@ -2505,8 +2501,11 @@
(mult:SI (match_operand:SI 1 "register_operand" "0")
(match_operand:SI 2 "register_operand" "r")))]
"TARGET_HAS_MUL_INSNS"
- "muls.d %2,%0"
- [(set_attr "slottable" "yes")
+ "%!muls.d %2,%0"
+ [(set (attr "slottable")
+ (if_then_else (ne (symbol_ref "TARGET_MUL_BUG") (const_int 0))
+ (const_string "no")
+ (const_string "yes")))
;; Just N unusable here, but let's be safe.
(set_attr "cc" "clobber")])
@@ -2520,8 +2519,11 @@
(sign_extend:HI (match_operand:QI 1 "register_operand" "0"))
(sign_extend:HI (match_operand:QI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "muls.b %2,%0"
- [(set_attr "slottable" "yes")
+ "%!muls.b %2,%0"
+ [(set (attr "slottable")
+ (if_then_else (ne (symbol_ref "TARGET_MUL_BUG") (const_int 0))
+ (const_string "no")
+ (const_string "yes")))
(set_attr "cc" "clobber")])
(define_insn "mulhisi3"
@@ -2530,8 +2532,11 @@
(sign_extend:SI (match_operand:HI 1 "register_operand" "0"))
(sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "muls.w %2,%0"
- [(set_attr "slottable" "yes")
+ "%!muls.w %2,%0"
+ [(set (attr "slottable")
+ (if_then_else (ne (symbol_ref "TARGET_MUL_BUG") (const_int 0))
+ (const_string "no")
+ (const_string "yes")))
;; Just N unusable here, but let's be safe.
(set_attr "cc" "clobber")])
@@ -2547,7 +2552,7 @@
(sign_extend:DI (match_operand:SI 1 "register_operand" "0"))
(sign_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "muls.d %2,%M0\;move $mof,%H0")
+ "%!muls.d %2,%M0\;move $mof,%H0")
(define_insn "umulsidi3"
[(set (match_operand:DI 0 "register_operand" "=r")
@@ -2555,7 +2560,7 @@
(zero_extend:DI (match_operand:SI 1 "register_operand" "0"))
(zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))]
"TARGET_HAS_MUL_INSNS"
- "mulu.d %2,%M0\;move $mof,%H0")
+ "%!mulu.d %2,%M0\;move $mof,%H0")
;; This pattern would probably not be needed if we add "mof" in its own
;; register class (and open a can of worms about /not/ pairing it with a
@@ -2574,7 +2579,7 @@
(const_int 32))))
(clobber (match_scratch:SI 3 "=X,1,1"))]
"TARGET_HAS_MUL_INSNS"
- "muls.d %2,%1\;move $mof,%0"
+ "%!muls.d %2,%1\;move $mof,%0"
[(set_attr "cc" "clobber")])
(define_insn "umulsi3_highpart"
@@ -2587,7 +2592,7 @@
(const_int 32))))
(clobber (match_scratch:SI 3 "=X,1,1"))]
"TARGET_HAS_MUL_INSNS"
- "mulu.d %2,%1\;move $mof,%0"
+ "%!mulu.d %2,%1\;move $mof,%0"
[(set_attr "cc" "clobber")])
;; Divide and modulus instructions. CRIS only has a step instruction.
@@ -2692,17 +2697,19 @@
(define_insn "*andsi_movu"
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
- (and:SI (match_operand:SI 1 "nonimmediate_operand" "%r,Q>,m")
+ (and:SI (match_operand:SI 1 "nonimmediate_operand" "%r,Q,To")
(match_operand:SI 2 "const_int_operand" "n,n,n")))]
- "INTVAL (operands[2]) == 255 || INTVAL (operands[2]) == 65535"
+ "(INTVAL (operands[2]) == 255 || INTVAL (operands[2]) == 65535)
+ && (GET_CODE (operands[1]) != MEM || ! MEM_VOLATILE_P (operands[1]))"
"movu.%z2 %1,%0"
[(set_attr "slottable" "yes,yes,no")])
(define_insn "*andsi_clear"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,Q>,Q>,m,m")
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,Q,Q,To,To")
(and:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,0,0,0,0")
(match_operand:SI 2 "const_int_operand" "P,n,P,n,P,n")))]
- "INTVAL (operands[2]) == -65536 || INTVAL (operands[2]) == -256"
+ "(INTVAL (operands[2]) == -65536 || INTVAL (operands[2]) == -256)
+ && (GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0]))"
"@
cLear.b %0
cLear.w %0
@@ -2780,27 +2787,17 @@
(define_insn "*andhi_movu"
[(set (match_operand:HI 0 "register_operand" "=r,r,r")
- (and:HI (match_operand:HI 1 "nonimmediate_operand" "r,Q>,m")
+ (and:HI (match_operand:HI 1 "nonimmediate_operand" "r,Q,To")
(const_int 255)))]
- ""
+ "GET_CODE (operands[1]) != MEM || ! MEM_VOLATILE_P (operands[1])"
"mOvu.b %1,%0"
[(set_attr "slottable" "yes,yes,no")])
-(define_insn "*andhi_clear_signed"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q>,m")
+(define_insn "*andhi_clear"
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q,To")
(and:HI (match_operand:HI 1 "nonimmediate_operand" "0,0,0")
(const_int -256)))]
- ""
- "cLear.b %0"
- [(set_attr "slottable" "yes,yes,no")
- (set_attr "cc" "none")])
-
-;; FIXME: Either this or the pattern above should be redundant.
-(define_insn "*andhi_clear_unsigned"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=r,Q>,m")
- (and:HI (match_operand:HI 1 "nonimmediate_operand" "0,0,0")
- (const_int 65280)))]
- ""
+ "GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0])"
"cLear.b %0"
[(set_attr "slottable" "yes,yes,no")
(set_attr "cc" "none")])
@@ -3846,7 +3843,7 @@
else
abort ();
- operands[0] = gen_rtx_MEM (GET_MODE (operands[0]), op0);
+ operands[0] = replace_equiv_address (operands[0], op0);
}
}
}")
@@ -3911,7 +3908,7 @@
else
abort ();
- operands[1] = gen_rtx_MEM (GET_MODE (operands[1]), op1);
+ operands[1] = replace_equiv_address (operands[1], op1);
}
}
}")
@@ -4214,10 +4211,12 @@
(define_split
[(parallel
[(set (match_operand 0 "register_operand" "")
- (mem (plus:SI
- (mult:SI (match_operand:SI 1 "register_operand" "")
- (match_operand:SI 2 "const_int_operand" ""))
- (match_operand:SI 3 "register_operand" ""))))
+ (match_operator
+ 6 "cris_mem_op"
+ [(plus:SI
+ (mult:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "const_int_operand" ""))
+ (match_operand:SI 3 "register_operand" ""))]))
(set (match_operand:SI 4 "register_operand" "")
(plus:SI (mult:SI (match_dup 1)
(match_dup 2))
@@ -4227,16 +4226,17 @@
[(set (match_dup 4) (plus:SI (mult:SI (match_dup 1) (match_dup 2))
(match_dup 3)))
(set (match_dup 0) (match_dup 5))]
- "operands[5] = gen_rtx_MEM (GET_MODE (operands[0]), operands[3]);")
+ "operands[5] = replace_equiv_address (operands[6], operands[3]);")
;; move.S1 [rx=rx+i],ry
(define_split
[(parallel
[(set (match_operand 0 "register_operand" "")
- (mem
- (plus:SI (match_operand:SI 1 "cris_bdap_operand" "")
- (match_operand:SI 2 "cris_bdap_operand" ""))))
+ (match_operator
+ 5 "cris_mem_op"
+ [(plus:SI (match_operand:SI 1 "cris_bdap_operand" "")
+ (match_operand:SI 2 "cris_bdap_operand" ""))]))
(set (match_operand:SI 3 "register_operand" "")
(plus:SI (match_dup 1)
(match_dup 2)))])]
@@ -4244,17 +4244,19 @@
|| rtx_equal_p (operands[3], operands[2]))"
[(set (match_dup 3) (plus:SI (match_dup 1) (match_dup 2)))
(set (match_dup 0) (match_dup 4))]
- "operands[4] = gen_rtx_MEM (GET_MODE (operands[0]), operands[3]);")
+ "operands[4] = replace_equiv_address (operands[5], operands[3]);")
;; move.S1 ry,[rx=rx+rz.S2]
(define_split
[(parallel
- [(set (mem (plus:SI
- (mult:SI (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "const_int_operand" ""))
- (match_operand:SI 2 "register_operand" "")))
- (match_operand 3 "register_operand" ""))
+ [(set (match_operator
+ 6 "cris_mem_op"
+ [(plus:SI
+ (mult:SI (match_operand:SI 0 "register_operand" "")
+ (match_operand:SI 1 "const_int_operand" ""))
+ (match_operand:SI 2 "register_operand" ""))])
+ (match_operand 3 "register_operand" ""))
(set (match_operand:SI 4 "register_operand" "")
(plus:SI (mult:SI (match_dup 0)
(match_dup 1))
@@ -4264,16 +4266,17 @@
[(set (match_dup 4) (plus:SI (mult:SI (match_dup 0) (match_dup 1))
(match_dup 2)))
(set (match_dup 5) (match_dup 3))]
- "operands[5] = gen_rtx_MEM (GET_MODE (operands[3]), operands[4]);")
+ "operands[5] = replace_equiv_address (operands[6], operands[4]);")
;; move.S1 ry,[rx=rx+i]
(define_split
[(parallel
- [(set (mem
- (plus:SI (match_operand:SI 0 "cris_bdap_operand" "")
- (match_operand:SI 1 "cris_bdap_operand" "")))
- (match_operand 2 "register_operand" ""))
+ [(set (match_operator
+ 6 "cris_mem_op"
+ [(plus:SI (match_operand:SI 0 "cris_bdap_operand" "")
+ (match_operand:SI 1 "cris_bdap_operand" ""))])
+ (match_operand 2 "register_operand" ""))
(set (match_operand:SI 3 "register_operand" "")
(plus:SI (match_dup 0)
(match_dup 1)))])]
@@ -4281,7 +4284,7 @@
|| rtx_equal_p (operands[3], operands[1]))"
[(set (match_dup 3) (plus:SI (match_dup 0) (match_dup 1)))
(set (match_dup 5) (match_dup 2))]
- "operands[5] = gen_rtx_MEM (GET_MODE (operands[2]), operands[3]);")
+ "operands[5] = replace_equiv_address (operands[6], operands[3]);")
;; clear.d [rx=rx+rz.S2]
@@ -4415,8 +4418,7 @@
[(set (match_dup 4) (plus:SI (mult:SI (match_dup 1) (match_dup 2))
(match_dup 3)))
(set (match_dup 0) (match_op_dup 5 [(match_dup 6)]))]
- "operands[6] = gen_rtx_MEM (GET_MODE (XEXP (operands[5],0)),
- operands[4]);")
+ "operands[6] = replace_equiv_address (XEXP (operands[5], 0), operands[4]);")
;; mov(s|u).S1 [rx=rx+i],ry
@@ -4435,8 +4437,7 @@
|| rtx_equal_p (operands[2], operands[3]))"
[(set (match_dup 3) (plus:SI (match_dup 1) (match_dup 2)))
(set (match_dup 0) (match_op_dup 4 [(match_dup 5)]))]
- "operands[5] = gen_rtx_MEM (GET_MODE (XEXP (operands[4], 0)),
- operands[3]);")
+ "operands[5] = replace_equiv_address (XEXP (operands[4], 0), operands[3]);")
;; op.S1 [rx=rx+i],ry
@@ -4456,7 +4457,7 @@
|| rtx_equal_p (operands[4], operands[3]))"
[(set (match_dup 4) (plus:SI (match_dup 2) (match_dup 3)))
(set (match_dup 0) (match_op_dup 5 [(match_dup 1) (match_dup 6)]))]
- "operands[6] = gen_rtx_MEM (GET_MODE (operands[0]), operands[4]);")
+ "operands[6] = replace_equiv_address (XEXP (operands[5], 1), operands[4]);")
;; op.S1 [rx=rx+rz.S2],ry
@@ -4480,7 +4481,7 @@
[(set (match_dup 5) (plus:SI (mult:SI (match_dup 2) (match_dup 3))
(match_dup 4)))
(set (match_dup 0) (match_op_dup 6 [(match_dup 1) (match_dup 7)]))]
- "operands[7] = gen_rtx_MEM (GET_MODE (operands[0]), operands[5]);")
+ "operands[7] = replace_equiv_address (XEXP (operands[6], 1), operands[5]);")
;; op.S1 [rx=rx+rz.S2],ry (swapped)
@@ -4504,7 +4505,7 @@
[(set (match_dup 5) (plus:SI (mult:SI (match_dup 2) (match_dup 3))
(match_dup 4)))
(set (match_dup 0) (match_op_dup 6 [(match_dup 7) (match_dup 1)]))]
- "operands[7] = gen_rtx_MEM (GET_MODE (operands[0]), operands[5]);")
+ "operands[7] = replace_equiv_address (XEXP (operands[6], 0), operands[5]);")
;; op.S1 [rx=rx+i],ry (swapped)
@@ -4524,7 +4525,7 @@
|| rtx_equal_p (operands[4], operands[3]))"
[(set (match_dup 4) (plus:SI (match_dup 2) (match_dup 3)))
(set (match_dup 0) (match_op_dup 5 [(match_dup 6) (match_dup 1)]))]
- "operands[6] = gen_rtx_MEM (GET_MODE (operands[0]), operands[4]);")
+ "operands[6] = replace_equiv_address (XEXP (operands[5], 0), operands[4]);")
;; op(s|u).S1 [rx=rx+rz.S2],ry
@@ -4551,8 +4552,8 @@
(match_dup 4)))
(set (match_dup 0) (match_op_dup 6 [(match_dup 1) (match_dup 8)]))]
"operands[8] = gen_rtx (GET_CODE (operands[7]), GET_MODE (operands[7]),
- gen_rtx_MEM (GET_MODE (XEXP (operands[7], 0)),
- operands[5]));")
+ replace_equiv_address (XEXP (operands[7], 0),
+ operands[5]));")
;; op(s|u).S1 [rx=rx+i],ry
@@ -4576,8 +4577,8 @@
[(set (match_dup 4) (plus:SI (match_dup 2) (match_dup 3)))
(set (match_dup 0) (match_op_dup 5 [(match_dup 1) (match_dup 7)]))]
"operands[7] = gen_rtx (GET_CODE (operands[6]), GET_MODE (operands[6]),
- gen_rtx_MEM (GET_MODE (XEXP (operands[6], 0)),
- operands[4]));")
+ replace_equiv_address (XEXP (operands[6], 0),
+ operands[4]));")
;; op(s|u).S1 [rx=rx+rz.S2],ry (swapped, plus or bound)
@@ -4603,8 +4604,8 @@
(match_dup 4)))
(set (match_dup 0) (match_op_dup 6 [(match_dup 8) (match_dup 1)]))]
"operands[8] = gen_rtx (GET_CODE (operands[6]), GET_MODE (operands[6]),
- gen_rtx_MEM (GET_MODE (XEXP (operands[6], 0)),
- operands[5]));")
+ replace_equiv_address (XEXP (operands[6], 0),
+ operands[5]));")
;; op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)
@@ -4627,8 +4628,8 @@
[(set (match_dup 4) (plus:SI (match_dup 2) (match_dup 3)))
(set (match_dup 0) (match_op_dup 6 [(match_dup 7) (match_dup 1)]))]
"operands[7] = gen_rtx (GET_CODE (operands[5]), GET_MODE (operands[5]),
- gen_rtx_MEM (GET_MODE (XEXP (operands[5], 0)),
- operands[4]));")
+ replace_equiv_address (XEXP (operands[5], 0),
+ operands[4]));")
;; Splits for addressing prefixes that have no side-effects, so we can
;; fill a delay slot. Never split if we lose something, though.
@@ -4656,7 +4657,7 @@
[(set (match_dup 2) (match_dup 4))
(set (match_dup 0) (match_dup 3))]
"operands[2] = gen_rtx_REG (Pmode, REGNO (operands[0]));
- operands[3] = gen_rtx_MEM (GET_MODE (operands[0]), operands[2]);
+ operands[3] = replace_equiv_address (operands[1], operands[2]);
operands[4] = XEXP (operands[1], 0);")
;; As the above, but MOVS and MOVU.
@@ -4674,7 +4675,7 @@
[(set (match_dup 2) (match_dup 5))
(set (match_dup 0) (match_op_dup 4 [(match_dup 3)]))]
"operands[2] = gen_rtx_REG (Pmode, REGNO (operands[0]));
- operands[3] = gen_rtx_MEM (GET_MODE (XEXP (operands[4], 0)), operands[2]);
+ operands[3] = replace_equiv_address (XEXP (operands[4], 0), operands[2]);
operands[5] = XEXP (operands[1], 0);")
;; Various peephole optimizations.
@@ -4854,10 +4855,10 @@
(define_peephole
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
- (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Ri,r,>Ri"))
+ (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Rn,r,>Rn"))
(set (match_dup 0)
- (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Ri,r")
- (match_operand:SI 3 "cris_bdap_biap_operand" "r>Ri,r,0,0")))
+ (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Rn,r")
+ (match_operand:SI 3 "cris_bdap_biap_operand" "r>Rn,r,0,0")))
(set (match_operand 4 "register_operand" "=r,r,r,r")
(mem (match_dup 0)))]
"(rtx_equal_p (operands[2], operands[0])
@@ -4882,10 +4883,10 @@
(define_peephole
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
- (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Ri,r,>Ri"))
+ (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Rn,r,>Rn"))
(set (match_dup 0)
- (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Ri,r")
- (match_operand:SI 3 "cris_bdap_biap_operand" "r>Ri,r,0,0")))
+ (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Rn,r")
+ (match_operand:SI 3 "cris_bdap_biap_operand" "r>Rn,r,0,0")))
(set (mem (match_dup 0))
(match_operand 4 "register_operand" "=r,r,r,r"))]
"(rtx_equal_p (operands[2], operands[0])
@@ -4912,10 +4913,10 @@
(define_peephole
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
- (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Ri,r,>Ri"))
+ (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Rn,r,>Rn"))
(set (match_dup 0)
- (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Ri,r")
- (match_operand:SI 3 "cris_bdap_biap_operand" "r>Ri,r,0,0")))
+ (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Rn,r")
+ (match_operand:SI 3 "cris_bdap_biap_operand" "r>Rn,r,0,0")))
(set (match_operand 4 "register_operand" "=r,r,r,r")
(match_operator 5 "cris_orthogonal_operator"
[(match_dup 3)
@@ -4942,10 +4943,10 @@
(define_peephole
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r")
- (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Ri,r,>Ri"))
+ (match_operand:SI 1 "cris_bdap_biap_operand" "r,>Rn,r,>Rn"))
(set (match_dup 0)
- (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Ri,r")
- (match_operand:SI 3 "cris_bdap_biap_operand" "r>Ri,r,0,0")))
+ (plus:SI (match_operand:SI 2 "cris_bdap_biap_operand" "0,0,r>Rn,r")
+ (match_operand:SI 3 "cris_bdap_biap_operand" "r>Rn,r,0,0")))
(set (match_operand 4 "register_operand" "=r,r,r,r")
(match_operator 5 "cris_commutative_orth_op"
[(mem (match_dup 0))
@@ -5014,8 +5015,8 @@
(define_peephole
[(set (match_operand 0 "register_operand" "=r,r,r,r")
(mem (plus:SI
- (match_operand:SI 1 "cris_bdap_biap_operand" "r,r>Ri,r,r>Ri")
- (match_operand:SI 2 "cris_bdap_biap_operand" "r>Ri,r,r>Ri,r"))))
+ (match_operand:SI 1 "cris_bdap_biap_operand" "r,r>Rn,r,r>Rn")
+ (match_operand:SI 2 "cris_bdap_biap_operand" "r>Rn,r,r>Rn,r"))))
(set (match_dup 0)
(match_operator 5 "cris_commutative_orth_op"
[(match_operand 3 "register_operand" "0,0,r,r")
diff --git a/gcc/config/cris/linux.h b/gcc/config/cris/linux.h
index 546f38101b9..a3014416e16 100644
--- a/gcc/config/cris/linux.h
+++ b/gcc/config/cris/linux.h
@@ -1,5 +1,5 @@
/* Definitions for GCC. Part of the machine description for CRIS.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
@@ -47,10 +47,7 @@ Boston, MA 02111-1307, USA. */
#undef CRIS_CPP_SUBTARGET_SPEC
#define CRIS_CPP_SUBTARGET_SPEC \
- "-D__gnu_linux__ -D__linux__ -D__unix__ -D__ELF__\
- %{pthread:-D_REENTRANT}\
- %{fPIC|fpic: -D__PIC__ -D__pic__}\
- %{!fleading-underscore:-fno-leading-underscore -D__NO_UNDERSCORES__}\
+ "%{pthread:-D_REENTRANT}\
%{!march=*:%{!cpu=*:-D__arch_v10 -D__CRIS_arch_version=10}}\
%{!ansi:%{!std=*:%{!undef:-Dlinux -Dunix}\
-Asystem(unix) -Asystem(posix) -Acpu(cris) -Amachine(cris)}}"
@@ -99,6 +96,29 @@ Boston, MA 02111-1307, USA. */
%{!r:%{O2|O3: --gc-sections}}"
+/* Node: Run-time Target */
+
+/* For the cris-*-linux* subtarget. */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ extern int flag_leading_underscore; \
+ builtin_define ("__gnu_linux__"); \
+ builtin_define ("__linux__"); \
+ builtin_define ("__unix__"); \
+ builtin_define ("__ELF__"); \
+ if (flag_pic) \
+ { \
+ builtin_define ("__PIC__"); \
+ builtin_define ("__pic__"); \
+ } \
+ if (flag_leading_underscore <= 0) \
+ builtin_define ("__NO_UNDERSCORES__"); \
+ } \
+ while (0)
+
+
/* Node: Sections */
/* GNU/Linux has crti and crtn and does not need the
diff --git a/gcc/config/cris/mulsi3.asm b/gcc/config/cris/mulsi3.asm
index 3c482e7f2a9..69d9dedd966 100644
--- a/gcc/config/cris/mulsi3.asm
+++ b/gcc/config/cris/mulsi3.asm
@@ -82,8 +82,13 @@
.type ___Mul,@function
___Mul:
#if defined (__CRIS_arch_version) && __CRIS_arch_version >= 10
- ret
+;; Can't have the mulu.d last on a cache-line (in the delay-slot of the
+;; "ret"), due to hardware bug. See documentation for -mmul-bug-workaround.
+;; Not worthwhile to conditionalize here.
+ .p2alignw 2,0x050f
mulu.d $r11,$r10
+ ret
+ nop
#else
move.d $r10,$r12
move.d $r11,$r9
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 3722950f634..8efd8cd2612 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1091,18 +1091,21 @@ machopic_select_section (exp, reloc, align)
int reloc;
unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED;
{
- if (TREE_CODE (exp) == STRING_CST)
- {
- if (flag_writable_strings)
- data_section ();
- else if (TREE_STRING_LENGTH (exp) !=
- strlen (TREE_STRING_POINTER (exp)) + 1)
- readonly_data_section ();
- else
- cstring_section ();
- }
- else if (TREE_CODE (exp) == INTEGER_CST
- || TREE_CODE (exp) == REAL_CST)
+ void (*base_function)(void);
+
+ if (decl_readonly_section (exp, reloc))
+ base_function = readonly_data_section;
+ else if (TREE_READONLY (exp) || TREE_CONSTANT (exp))
+ base_function = const_data_section;
+ else
+ base_function = data_section;
+
+ if (TREE_CODE (exp) == STRING_CST
+ && TREE_STRING_LENGTH (exp) == strlen (TREE_STRING_POINTER (exp)) + 1
+ && ! flag_writable_strings)
+ cstring_section ();
+ else if ((TREE_CODE (exp) == INTEGER_CST || TREE_CODE (exp) == REAL_CST)
+ && flag_merge_constants)
{
tree size = TYPE_SIZE (TREE_TYPE (exp));
@@ -1115,7 +1118,7 @@ machopic_select_section (exp, reloc, align)
TREE_INT_CST_HIGH (size) == 0)
literal8_section ();
else
- readonly_data_section ();
+ base_function ();
}
else if (TREE_CODE (exp) == CONSTRUCTOR
&& TREE_TYPE (exp)
@@ -1129,15 +1132,8 @@ machopic_select_section (exp, reloc, align)
objc_constant_string_object_section ();
else if (!strcmp (IDENTIFIER_POINTER (name), "NXConstantString"))
objc_string_object_section ();
- else if (TREE_READONLY (exp) || TREE_CONSTANT (exp))
- {
- if (TREE_SIDE_EFFECTS (exp) || (flag_pic && reloc))
- const_data_section ();
- else
- readonly_data_section ();
- }
- else
- data_section ();
+ else
+ base_function ();
}
else if (TREE_CODE (exp) == VAR_DECL &&
DECL_NAME (exp) &&
@@ -1191,26 +1187,11 @@ machopic_select_section (exp, reloc, align)
objc_cat_cls_meth_section ();
else if (!strncmp (name, "_OBJC_PROTOCOL_", 15))
objc_protocol_section ();
- else if ((TREE_READONLY (exp) || TREE_CONSTANT (exp))
- && !TREE_SIDE_EFFECTS (exp))
- {
- if (flag_pic && reloc)
- const_data_section ();
- else
- readonly_data_section ();
- }
- else
- data_section ();
- }
- else if (TREE_READONLY (exp) || TREE_CONSTANT (exp))
- {
- if (TREE_SIDE_EFFECTS (exp) || (flag_pic && reloc))
- const_data_section ();
- else
- readonly_data_section ();
+ else
+ base_function ();
}
- else
- data_section ();
+ else
+ base_function ();
}
/* This can be called with address expressions as "rtx".
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 7997a46e7a5..ca57bc3e3b3 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -100,7 +100,6 @@ Boston, MA 02111-1307, USA. */
name, that also takes an argument, needs to be modified so the
prefix is different, otherwise a '*' after the shorter option will
match with the longer one. */
-/* Ignore -dynamic for now */
#define TARGET_OPTION_TRANSLATE_TABLE \
{ "-all_load", "-Zall_load" }, \
{ "-allowable_client", "-Zallowable_client" }, \
@@ -111,7 +110,7 @@ Boston, MA 02111-1307, USA. */
{ "-weak_reference_mismatches", "-Zweak_reference_mismatches" }, \
{ "-dependency-file", "-MF" }, \
{ "-dylib_file", "-Zdylib_file" }, \
- { "-dynamic", " " }, \
+ { "-dynamic", "-Zdynamic" }, \
{ "-dynamiclib", "-Zdynamiclib" }, \
{ "-exported_symbols_list", "-Zexported_symbols_list" }, \
{ "-seg_addr_table_filename", "-Zseg_addr_table_filename" }, \
@@ -174,7 +173,7 @@ Boston, MA 02111-1307, USA. */
/* Machine dependent cpp options. */
#undef CPP_SPEC
-#define CPP_SPEC "%{static:-D__STATIC__}%{!static:-D__DYNAMIC__}"
+#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}"
/* This is mostly a clone of the standard LINK_COMMAND_SPEC, plus
precomp, libtool, and fat build additions. Also we
@@ -193,7 +192,7 @@ Boston, MA 02111-1307, USA. */
%{!Zdynamiclib:%{!A:%{!nostdlib:%{!nostartfiles:%S}}}} \
%{L*} %(link_libgcc) %o %{!nostdlib:%{!nodefaultlibs:%G %L}} \
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} \
- %{!--help:%{!no-c++filt|c++filt:| c++filt3 }} }}}}}}}}"
+ %{!--help:%{!no-c++filt|c++filt:| c++filt }} }}}}}}}}"
/* Please keep the random linker options in alphabetical order (modulo
'Z' and 'no' prefixes). Options that can only go to one of libtool
@@ -234,6 +233,7 @@ Boston, MA 02111-1307, USA. */
%{Zbind_at_load:-bind_at_load} \
%{Zarch_errors_fatal:-arch_errors_fatal} \
%{Zdylib_file*:-dylib_file %*} \
+ %{Zdynamic:-dynamic}\
%{Zexported_symbols_list*:-exported_symbols_list %*} \
%{Zflat_namespace:-flat_namespace} \
%{headerpad_max_install_names*} \
@@ -380,6 +380,10 @@ do { text_section (); \
|| DECL_INITIAL (DECL)) \
(* targetm.encode_section_info) (DECL, false); \
ASM_OUTPUT_LABEL (FILE, xname); \
+ /* Darwin doesn't support zero-size objects, so give them a \
+ byte. */ \
+ if (tree_low_cst (DECL_SIZE_UNIT (DECL), 1) == 0) \
+ assemble_zeros (1); \
} while (0)
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
@@ -401,6 +405,15 @@ do { text_section (); \
machopic_output_possible_stub_label (FILE, xname); \
} while (0)
+#define ASM_DECLARE_CONSTANT_NAME(FILE, NAME, EXP, SIZE) \
+ do { \
+ ASM_OUTPUT_LABEL (FILE, NAME); \
+ /* Darwin doesn't support zero-size objects, so give them a \
+ byte. */ \
+ if ((SIZE) == 0) \
+ assemble_zeros (1); \
+ } while (0)
+
/* Wrap new method names in quotes so the assembler doesn't gag.
Make Objective-C internal symbols local. */
diff --git a/gcc/config/fp-bit.c b/gcc/config/fp-bit.c
index 7ec20ecf9f2..e609760c59c 100644
--- a/gcc/config/fp-bit.c
+++ b/gcc/config/fp-bit.c
@@ -1,6 +1,6 @@
/* This is a software floating point library which can be used
for targets without hardware floating point.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
@@ -130,6 +130,10 @@ void __lttf2 (void) { abort(); }
const fp_number_type __thenan_sf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
#elif defined L_thenan_df
const fp_number_type __thenan_df = { CLASS_SNAN, 0, 0, {(fractype) 0} };
+#elif defined L_thenan_tf
+const fp_number_type __thenan_tf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
+#elif defined TFLOAT
+extern const fp_number_type __thenan_tf;
#elif defined FLOAT
extern const fp_number_type __thenan_sf;
#else
@@ -141,7 +145,9 @@ static fp_number_type *
nan (void)
{
/* Discard the const qualifier... */
-#ifdef FLOAT
+#ifdef TFLOAT
+ return (fp_number_type *) (& __thenan_tf);
+#elif defined FLOAT
return (fp_number_type *) (& __thenan_sf);
#else
return (fp_number_type *) (& __thenan_df);
@@ -180,7 +186,7 @@ flip_sign ( fp_number_type * x)
extern FLO_type pack_d ( fp_number_type * );
-#if defined(L_pack_df) || defined(L_pack_sf)
+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
FLO_type
pack_d ( fp_number_type * src)
{
@@ -316,24 +322,92 @@ pack_d ( fp_number_type * src)
dst.bits.exp = exp;
dst.bits.sign = sign;
#else
+# if defined TFLOAT && defined HALFFRACBITS
+ {
+ halffractype high, low;
+
+ high = (fraction >> (FRACBITS - HALFFRACBITS));
+ high &= (((fractype)1) << HALFFRACBITS) - 1;
+ high |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << HALFFRACBITS;
+ high |= ((fractype) (sign & 1)) << (HALFFRACBITS | EXPBITS);
+
+ low = (halffractype)fraction &
+ ((((halffractype)1) << (FRACBITS - HALFFRACBITS)) - 1);
+
+ if (exp == EXPMAX || exp == 0 || low == 0)
+ low = 0;
+ else
+ {
+ exp -= HALFFRACBITS + 1;
+
+ while (exp > 0
+ && low < ((halffractype)1 << HALFFRACBITS))
+ {
+ low <<= 1;
+ exp--;
+ }
+
+ if (exp <= 0)
+ {
+ halffractype roundmsb, round;
+
+ exp = -exp + 1;
+
+ roundmsb = (1 << (exp - 1));
+ round = low & ((roundmsb << 1) - 1);
+
+ low >>= exp;
+ exp = 0;
+
+ if (round > roundmsb || (round == roundmsb && (low & 1)))
+ {
+ low++;
+ if (low >= ((halffractype)1 << HALFFRACBITS))
+ /* We don't shift left, since it has just become the
+ smallest normal number, whose implicit 1 bit is
+ now indicated by the non-zero exponent. */
+ exp++;
+ }
+ }
+
+ low &= ((halffractype)1 << HALFFRACBITS) - 1;
+ low |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << HALFFRACBITS;
+ low |= ((fractype) (sign & 1)) << (HALFFRACBITS | EXPBITS);
+ }
+
+ dst.value_raw = (((fractype) high) << HALFSHIFT) | low;
+ }
+# else
dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
+# endif
#endif
#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
+#ifdef TFLOAT
+ {
+ qrtrfractype tmp1 = dst.words[0];
+ qrtrfractype tmp2 = dst.words[1];
+ dst.words[0] = dst.words[3];
+ dst.words[1] = dst.words[2];
+ dst.words[2] = tmp2;
+ dst.words[3] = tmp1;
+ }
+#else
{
halffractype tmp = dst.words[0];
dst.words[0] = dst.words[1];
dst.words[1] = tmp;
}
#endif
+#endif
return dst.value;
}
#endif
-#if defined(L_unpack_df) || defined(L_unpack_sf)
+#if defined(L_unpack_df) || defined(L_unpack_sf) || defined(L_unpack_tf)
void
unpack_d (FLO_union_type * src, fp_number_type * dst)
{
@@ -347,8 +421,15 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
FLO_union_type swapped;
+#ifdef TFLOAT
+ swapped.words[0] = src->words[3];
+ swapped.words[1] = src->words[2];
+ swapped.words[2] = src->words[1];
+ swapped.words[3] = src->words[0];
+#else
swapped.words[0] = src->words[1];
swapped.words[1] = src->words[0];
+#endif
src = &swapped;
#endif
@@ -357,9 +438,46 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
exp = src->bits.exp;
sign = src->bits.sign;
#else
- fraction = src->value_raw & ((((fractype)1) << FRACBITS) - (fractype)1);
+# if defined TFLOAT && defined HALFFRACBITS
+ {
+ halffractype high, low;
+
+ high = src->value_raw >> HALFSHIFT;
+ low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
+
+ fraction = high & ((((fractype)1) << HALFFRACBITS) - 1);
+ fraction <<= FRACBITS - HALFFRACBITS;
+ exp = ((int)(high >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
+ sign = ((int)(high >> (((HALFFRACBITS + EXPBITS))))) & 1;
+
+ if (exp != EXPMAX && exp != 0 && low != 0)
+ {
+ int lowexp = ((int)(low >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
+ int lowsign = ((int)(low >> (((HALFFRACBITS + EXPBITS))))) & 1;
+ int shift;
+ fractype xlow;
+
+ xlow = low & ((((fractype)1) << HALFFRACBITS) - 1);
+ if (lowexp)
+ xlow |= (((halffractype)1) << HALFFRACBITS);
+ else
+ lowexp = 1;
+ shift = (FRACBITS - HALFFRACBITS) - (exp - lowexp);
+ if (shift > 0)
+ xlow <<= shift;
+ else if (shift < 0)
+ xlow >>= -shift;
+ if (sign == lowsign)
+ fraction += xlow;
+ else
+ fraction -= xlow;
+ }
+ }
+# else
+ fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
+# endif
#endif
dst->sign = sign;
@@ -427,7 +545,7 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
}
#endif /* L_unpack_df || L_unpack_sf */
-#if defined(L_addsub_sf) || defined(L_addsub_df)
+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
static fp_number_type *
_fpadd_parts (fp_number_type * a,
fp_number_type * b,
@@ -611,7 +729,7 @@ sub (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_addsub_sf || L_addsub_df */
-#if defined(L_mul_sf) || defined(L_mul_df)
+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
static inline __attribute__ ((__always_inline__)) fp_number_type *
_fpmul_parts ( fp_number_type * a,
fp_number_type * b,
@@ -660,7 +778,7 @@ _fpmul_parts ( fp_number_type * a,
/* Calculate the mantissa by multiplying both numbers to get a
twice-as-wide number. */
{
-#if defined(NO_DI_MODE)
+#if defined(NO_DI_MODE) || defined(TFLOAT)
{
fractype x = a->fraction.ll;
fractype ylow = b->fraction.ll;
@@ -723,13 +841,9 @@ _fpmul_parts ( fp_number_type * a,
#endif
}
- tmp->normal_exp = a->normal_exp + b->normal_exp;
+ tmp->normal_exp = a->normal_exp + b->normal_exp
+ + FRAC_NBITS - (FRACBITS + NGARDS);
tmp->sign = a->sign != b->sign;
-#ifdef FLOAT
- tmp->normal_exp += 2; /* ??????????????? */
-#else
- tmp->normal_exp += 4; /* ??????????????? */
-#endif
while (high >= IMPLICIT_2)
{
tmp->normal_exp++;
@@ -803,7 +917,7 @@ multiply (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_mul_sf || L_mul_df */
-#if defined(L_div_sf) || defined(L_div_df)
+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
static inline __attribute__ ((__always_inline__)) fp_number_type *
_fpdiv_parts (fp_number_type * a,
fp_number_type * b)
@@ -913,7 +1027,8 @@ divide (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_div_sf || L_div_df */
-#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df)
+#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df) \
+ || defined(L_fpcmp_parts_tf)
/* according to the demo, fpcmp returns a comparison with 0... thus
a<b -> -1
a==b -> 0
@@ -998,7 +1113,7 @@ __fpcmp_parts (fp_number_type * a, fp_number_type * b)
}
#endif
-#if defined(L_compare_sf) || defined(L_compare_df)
+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compoare_tf)
CMPtype
compare (FLO_type arg_a, FLO_type arg_b)
{
@@ -1020,7 +1135,7 @@ compare (FLO_type arg_a, FLO_type arg_b)
/* These should be optimized for their specific tasks someday. */
-#if defined(L_eq_sf) || defined(L_eq_df)
+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
CMPtype
_eq_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1041,7 +1156,7 @@ _eq_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_eq_sf || L_eq_df */
-#if defined(L_ne_sf) || defined(L_ne_df)
+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
CMPtype
_ne_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1062,7 +1177,7 @@ _ne_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_ne_sf || L_ne_df */
-#if defined(L_gt_sf) || defined(L_gt_df)
+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
CMPtype
_gt_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1083,7 +1198,7 @@ _gt_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_gt_sf || L_gt_df */
-#if defined(L_ge_sf) || defined(L_ge_df)
+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
CMPtype
_ge_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1103,7 +1218,7 @@ _ge_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_ge_sf || L_ge_df */
-#if defined(L_lt_sf) || defined(L_lt_df)
+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
CMPtype
_lt_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1124,7 +1239,7 @@ _lt_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_lt_sf || L_lt_df */
-#if defined(L_le_sf) || defined(L_le_df)
+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
CMPtype
_le_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1147,7 +1262,7 @@ _le_f2 (FLO_type arg_a, FLO_type arg_b)
#endif /* ! US_SOFTWARE_GOFAST */
-#if defined(L_unord_sf) || defined(L_unord_df)
+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
CMPtype
_unord_f2 (FLO_type arg_a, FLO_type arg_b)
{
@@ -1165,7 +1280,7 @@ _unord_f2 (FLO_type arg_a, FLO_type arg_b)
}
#endif /* L_unord_sf || L_unord_df */
-#if defined(L_si_to_sf) || defined(L_si_to_df)
+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
FLO_type
si_to_float (SItype arg_a)
{
@@ -1193,7 +1308,7 @@ si_to_float (SItype arg_a)
else
in.fraction.ll = arg_a;
- while (in.fraction.ll < (1LL << (FRACBITS + NGARDS)))
+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
{
in.fraction.ll <<= 1;
in.normal_exp -= 1;
@@ -1203,7 +1318,7 @@ si_to_float (SItype arg_a)
}
#endif /* L_si_to_sf || L_si_to_df */
-#if defined(L_usi_to_sf) || defined(L_usi_to_df)
+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
FLO_type
usi_to_float (USItype arg_a)
{
@@ -1220,12 +1335,12 @@ usi_to_float (USItype arg_a)
in.normal_exp = FRACBITS + NGARDS;
in.fraction.ll = arg_a;
- while (in.fraction.ll > (1LL << (FRACBITS + NGARDS)))
+ while (in.fraction.ll > ((fractype)1 << (FRACBITS + NGARDS)))
{
in.fraction.ll >>= 1;
in.normal_exp += 1;
}
- while (in.fraction.ll < (1LL << (FRACBITS + NGARDS)))
+ while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
{
in.fraction.ll <<= 1;
in.normal_exp -= 1;
@@ -1235,7 +1350,7 @@ usi_to_float (USItype arg_a)
}
#endif
-#if defined(L_sf_to_si) || defined(L_df_to_si)
+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
SItype
float_to_si (FLO_type arg_a)
{
@@ -1263,8 +1378,8 @@ float_to_si (FLO_type arg_a)
}
#endif /* L_sf_to_si || L_df_to_si */
-#if defined(L_sf_to_usi) || defined(L_df_to_usi)
-#ifdef US_SOFTWARE_GOFAST
+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
+#if defined US_SOFTWARE_GOFAST || defined(L_tf_to_usi)
/* While libgcc2.c defines its own __fixunssfsi and __fixunsdfsi routines,
we also define them for GOFAST because the ones in libgcc2.c have the
wrong names and I'd rather define these here and keep GOFAST CYG-LOC's
@@ -1303,7 +1418,7 @@ float_to_usi (FLO_type arg_a)
#endif /* US_SOFTWARE_GOFAST */
#endif /* L_sf_to_usi || L_df_to_usi */
-#if defined(L_negate_sf) || defined(L_negate_df)
+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
FLO_type
negate (FLO_type arg_a)
{
@@ -1359,6 +1474,21 @@ sf_to_df (SFtype arg_a)
}
#endif /* L_sf_to_df */
+#if defined(L_sf_to_tf) && defined(TMODES)
+TFtype
+sf_to_tf (SFtype arg_a)
+{
+ fp_number_type in;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &in);
+
+ return __make_tp (in.class, in.sign, in.normal_exp,
+ ((UTItype) in.fraction.ll) << F_T_BITOFF);
+}
+#endif /* L_sf_to_df */
+
#endif /* ! FLOAT_ONLY */
#endif /* FLOAT */
@@ -1402,5 +1532,84 @@ df_to_sf (DFtype arg_a)
}
#endif /* L_df_to_sf */
+#if defined(L_df_to_tf) && defined(TMODES) \
+ && !defined(FLOAT) && !defined(TFLOAT)
+TFtype
+df_to_tf (DFtype arg_a)
+{
+ fp_number_type in;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &in);
+
+ return __make_tp (in.class, in.sign, in.normal_exp,
+ ((UTItype) in.fraction.ll) << D_T_BITOFF);
+}
+#endif /* L_sf_to_df */
+
+#ifdef TFLOAT
+#if defined(L_make_tf)
+TFtype
+__make_tp(fp_class_type class,
+ unsigned int sign,
+ int exp,
+ UTItype frac)
+{
+ fp_number_type in;
+
+ in.class = class;
+ in.sign = sign;
+ in.normal_exp = exp;
+ in.fraction.ll = frac;
+ return pack_d (&in);
+}
+#endif /* L_make_tf */
+
+#if defined(L_tf_to_df)
+DFtype
+tf_to_df (TFtype arg_a)
+{
+ fp_number_type in;
+ UDItype sffrac;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &in);
+
+ sffrac = in.fraction.ll >> D_T_BITOFF;
+
+ /* We set the lowest guard bit in SFFRAC if we discarded any non
+ zero bits. */
+ if ((in.fraction.ll & (((UTItype) 1 << D_T_BITOFF) - 1)) != 0)
+ sffrac |= 1;
+
+ return __make_dp (in.class, in.sign, in.normal_exp, sffrac);
+}
+#endif /* L_tf_to_df */
+
+#if defined(L_tf_to_sf)
+SFtype
+tf_to_sf (TFtype arg_a)
+{
+ fp_number_type in;
+ USItype sffrac;
+ FLO_union_type au;
+
+ au.value = arg_a;
+ unpack_d (&au, &in);
+
+ sffrac = in.fraction.ll >> F_T_BITOFF;
+
+ /* We set the lowest guard bit in SFFRAC if we discarded any non
+ zero bits. */
+ if ((in.fraction.ll & (((UTItype) 1 << F_T_BITOFF) - 1)) != 0)
+ sffrac |= 1;
+
+ return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
+}
+#endif /* L_tf_to_sf */
+#endif /* TFLOAT */
+
#endif /* ! FLOAT */
#endif /* !EXTENDED_FLOAT_STUBS */
diff --git a/gcc/config/fp-bit.h b/gcc/config/fp-bit.h
index 03e2ff60993..0e8509eedf9 100644
--- a/gcc/config/fp-bit.h
+++ b/gcc/config/fp-bit.h
@@ -1,5 +1,5 @@
/* Header file for fp-bit.c. */
-/* Copyright (C) 2000
+/* Copyright (C) 2000, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -87,12 +87,22 @@ Boston, MA 02111-1307, USA. */
#endif
#endif /* ! FINE_GRAINED_LIBRARIES */
+#if __LDBL_MANT_DIG__ == 113 || __LDBL_MANT_DIG__ == 106
+# define TMODES
+#endif
+
typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));
+#ifdef TMODES
+typedef float TFtype __attribute__ ((mode (TF)));
+#endif
typedef int HItype __attribute__ ((mode (HI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef int DItype __attribute__ ((mode (DI)));
+#ifdef TMODES
+typedef int TItype __attribute__ ((mode (TI)));
+#endif
/* The type of the result of a fp compare */
#ifndef CMPtype
@@ -102,16 +112,68 @@ typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
+#ifdef TMODES
+typedef unsigned int UTItype __attribute__ ((mode (TI)));
+#endif
#define MAX_USI_INT (~(USItype)0)
#define MAX_SI_INT ((SItype) (MAX_USI_INT >> 1))
#define BITS_PER_SI (4 * BITS_PER_UNIT)
+#ifdef TMODES
+#define MAX_UDI_INT (~(UDItype)0)
+#define MAX_DI_INT ((DItype) (MAX_UDI_INT >> 1))
+#define BITS_PER_DI (8 * BITS_PER_UNIT)
+#endif
#ifdef FLOAT_ONLY
#define NO_DI_MODE
#endif
-#ifdef FLOAT
+#ifdef TFLOAT
+# ifndef TMODES
+# error "TFLOAT requires long double to have 113 bits of mantissa"
+# endif
+
+# define PREFIXFPDP tp
+# define PREFIXSFDF tf
+# define NGARDS 10L /* Is this right? */
+# define GARDROUND 0x1ff
+# define GARDMASK 0x3ff
+# define GARDMSB 0x200
+# define FRAC_NBITS 128
+
+# if __LDBL_MANT_DIG__ == 113 /* IEEE quad */
+# define EXPBITS 15
+# define EXPBIAS 16383
+# define EXPMAX (0x7fff)
+# define QUIET_NAN ((TItype)0x8 << 108)
+# define FRACHIGH ((TItype)0x8 << 124)
+# define FRACHIGH2 ((TItype)0xc << 124)
+# define FRACBITS 112
+# endif
+
+# if __LDBL_MANT_DIG__ == 106 /* IBM extended (double+double) */
+# define EXPBITS 11
+# define EXPBIAS 1023
+# define EXPMAX (0x7ff)
+# define QUIET_NAN ((TItype)0x8 << (48 + 64))
+# define FRACHIGH ((TItype)0x8 << 124)
+# define FRACHIGH2 ((TItype)0xc << 124)
+# define FRACBITS 105
+# define HALFFRACBITS 52
+# define HALFSHIFT 64
+# endif
+
+# define pack_d __pack_t
+# define unpack_d __unpack_t
+# define __fpcmp_parts __fpcmp_parts_t
+ typedef UTItype fractype;
+ typedef UDItype halffractype;
+ typedef USItype qrtrfractype;
+#define qrtrfractype qrtrfractype
+ typedef TFtype FLO_type;
+ typedef TItype intfrac;
+#elif defined FLOAT
# define NGARDS 7L
# define GARDROUND 0x3f
# define GARDMASK 0x7f
@@ -157,7 +219,9 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
#endif /* FLOAT */
#ifdef US_SOFTWARE_GOFAST
-# ifdef FLOAT
+# ifdef TFLOAT
+# error "GOFAST TFmode not supported"
+# elif defined FLOAT
# define add fpadd
# define sub fpsub
# define multiply fpmul
@@ -170,8 +234,8 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
# define float_to_usi fptoui
# define negate __negsf2
# define sf_to_df fptodp
-# define dptofp dptofp
-#else
+# define sf_to_tf __extendsftf2
+# else
# define add dpadd
# define sub dpsub
# define multiply dpmul
@@ -184,9 +248,30 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
# define float_to_usi dptoul
# define negate __negdf2
# define df_to_sf dptofp
+# define df_to_tf __extenddftf2
# endif /* FLOAT */
#else
-# ifdef FLOAT
+# ifdef TFLOAT
+# define add __addtf3
+# define sub __subtf3
+# define multiply __multf3
+# define divide __divtf3
+# define compare __cmptf2
+# define _eq_f2 __eqtf2
+# define _ne_f2 __netf2
+# define _gt_f2 __gttf2
+# define _ge_f2 __getf2
+# define _lt_f2 __lttf2
+# define _le_f2 __letf2
+# define _unord_f2 __unordtf2
+# define usi_to_float __floatunsitf
+# define si_to_float __floatsitf
+# define float_to_si __fixtfsi
+# define float_to_usi __fixunstfsi
+# define negate __negtf2
+# define tf_to_sf __trunctfsf2
+# define tf_to_df __trunctfdf2
+# elif defined FLOAT
# define add __addsf3
# define sub __subsf3
# define multiply __mulsf3
@@ -205,7 +290,8 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
# define float_to_usi __fixunssfsi
# define negate __negsf2
# define sf_to_df __extendsfdf2
-#else
+# define sf_to_tf __extendsftf2
+# else
# define add __adddf3
# define sub __subdf3
# define multiply __muldf3
@@ -224,6 +310,7 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
# define float_to_usi __fixunsdfsi
# define negate __negdf2
# define df_to_sf __truncdfsf2
+# define df_to_tf __extenddftf2
# endif /* FLOAT */
#endif /* US_SOFTWARE_GOFAST */
@@ -241,10 +328,15 @@ typedef unsigned int UDItype __attribute__ ((mode (DI)));
*/
#define F_D_BITOFF (52+8-(23+7))
+#ifdef TMODES
+# define F_T_BITOFF (__LDBL_MANT_DIG__-1+10-(23+7))
+# define D_T_BITOFF (__LDBL_MANT_DIG__-1+10-(52+8))
+#endif
+
#define NORMAL_EXPMIN (-(EXPBIAS)+1)
-#define IMPLICIT_1 (1LL<<(FRACBITS+NGARDS))
-#define IMPLICIT_2 (1LL<<(FRACBITS+1+NGARDS))
+#define IMPLICIT_1 ((fractype)1<<(FRACBITS+NGARDS))
+#define IMPLICIT_2 ((fractype)1<<(FRACBITS+1+NGARDS))
/* common types */
@@ -282,7 +374,11 @@ typedef union
fractype value_raw;
#ifndef FLOAT
+# ifdef qrtrfractype
+ qrtrfractype qwords[4];
+# else
halffractype words[2];
+# endif
#endif
#ifdef FLOAT_BIT_ORDER_MISMATCH
@@ -317,82 +413,82 @@ FLO_union_type;
/* Prototypes */
-#if defined(L_pack_df) || defined(L_pack_sf)
+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
extern FLO_type pack_d (fp_number_type *);
#endif
extern void unpack_d (FLO_union_type *, fp_number_type *);
-#if defined(L_addsub_sf) || defined(L_addsub_df)
+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
extern FLO_type add (FLO_type, FLO_type);
extern FLO_type sub (FLO_type, FLO_type);
#endif
-#if defined(L_mul_sf) || defined(L_mul_df)
+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
extern FLO_type multiply (FLO_type, FLO_type);
#endif
-#if defined(L_div_sf) || defined(L_div_df)
+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
extern FLO_type divide (FLO_type, FLO_type);
#endif
extern int __fpcmp_parts (fp_number_type *, fp_number_type *);
-#if defined(L_compare_sf) || defined(L_compare_df)
+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compare_tf)
extern CMPtype compare (FLO_type, FLO_type);
#endif
#ifndef US_SOFTWARE_GOFAST
-#if defined(L_eq_sf) || defined(L_eq_df)
+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
extern CMPtype _eq_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_ne_sf) || defined(L_ne_df)
+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
extern CMPtype _ne_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_gt_sf) || defined(L_gt_df)
+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
extern CMPtype _gt_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_ge_sf) || defined(L_ge_df)
+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
extern CMPtype _ge_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_lt_sf) || defined(L_lt_df)
+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
extern CMPtype _lt_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_le_sf) || defined(L_le_df)
+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
extern CMPtype _le_f2 (FLO_type, FLO_type);
#endif
-#if defined(L_unord_sf) || defined(L_unord_df)
+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
extern CMPtype _unord_f2 (FLO_type, FLO_type);
#endif
#endif /* ! US_SOFTWARE_GOFAST */
-#if defined(L_si_to_sf) || defined(L_si_to_df)
+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
extern FLO_type si_to_float (SItype);
#endif
-#if defined(L_sf_to_si) || defined(L_df_to_si)
+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
extern SItype float_to_si (FLO_type);
#endif
-#if defined(L_sf_to_usi) || defined(L_df_to_usi)
-#ifdef US_SOFTWARE_GOFAST
+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
+#if defined(US_SOFTWARE_GOFAST) || defined(L_tf_to_usi)
extern USItype float_to_usi (FLO_type);
#endif
#endif
-#if defined(L_usi_to_sf) || defined(L_usi_to_df)
+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
extern FLO_type usi_to_float (USItype);
#endif
-#if defined(L_negate_sf) || defined(L_negate_df)
+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
extern FLO_type negate (FLO_type);
#endif
@@ -405,6 +501,9 @@ extern DFtype __make_dp (fp_class_type, unsigned int, int, UDItype);
#if defined(L_sf_to_df)
extern DFtype sf_to_df (SFtype);
#endif
+#if defined(L_sf_to_tf) && defined(TMODES)
+extern TFtype sf_to_tf (SFtype);
+#endif
#endif /* ! FLOAT_ONLY */
#endif /* FLOAT */
@@ -416,6 +515,25 @@ extern DFtype __make_dp (fp_class_type, unsigned int, int, UDItype);
#if defined(L_df_to_sf)
extern SFtype df_to_sf (DFtype);
#endif
+#if defined(L_df_to_tf) && defined(TMODES)
+extern TFtype df_to_tf (DFtype);
+#endif
#endif /* ! FLOAT */
+#ifdef TMODES
+extern DFtype __make_dp (fp_class_type, unsigned int, int, UDItype);
+extern TFtype __make_tp (fp_class_type, unsigned int, int, UTItype);
+#ifdef TFLOAT
+#if defined(L_tf_to_sf)
+extern SFtype tf_to_sf (TFtype);
+#endif
+#if defined(L_tf_to_df)
+extern DFtype tf_to_df (TFtype);
+#endif
+#if defined(L_di_to_tf)
+extern TFtype di_to_df (DItype);
+#endif
+#endif /* TFLOAT */
+#endif /* TMODES */
+
#endif /* ! GCC_FP_BIT_H */
diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
index 3fc4dcc7a41..2248698e544 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -48,30 +48,31 @@ Boston, MA 02111-1307, USA. */
|| !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \
|| !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker"))
-#if FBSD_MAJOR == 6
-#define FBSD_CPP_PREDEFINES \
- "-D__FreeBSD__=6 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
-#endif
-
-#if FBSD_MAJOR == 5
-#define FBSD_CPP_PREDEFINES \
- "-D__FreeBSD__=5 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
-#endif
-
-#if FBSD_MAJOR == 4
-#define FBSD_CPP_PREDEFINES \
- "-D__FreeBSD__=4 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
-#endif
-
-#if FBSD_MAJOR == 3
-#define FBSD_CPP_PREDEFINES \
- "-D__FreeBSD__=3 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
-#endif
-
-#ifndef FBSD_CPP_PREDEFINES
-#define FBSD_CPP_PREDEFINES \
- "-D__FreeBSD__ -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
-#endif
+#define FBSD_TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ if (FBSD_MAJOR == 6) \
+ builtin_define ("__FreeBSD__=6"); \
+ else if (FBSD_MAJOR == 5) \
+ builtin_define ("__FreeBSD__=5"); \
+ else if (FBSD_MAJOR == 4) \
+ builtin_define ("__FreeBSD__=4"); \
+ else if (FBSD_MAJOR == 3) \
+ builtin_define ("__FreeBSD__=3"); \
+ else \
+ builtin_define ("__FreeBSD__"); \
+ builtin_define_std ("unix"); \
+ builtin_define ("__ELF__"); \
+ builtin_define ("__KPRINTF_ATTRIBUTE__"); \
+ builtin_assert ("system=unix"); \
+ builtin_assert ("system=bsd"); \
+ builtin_assert ("system=FreeBSD"); \
+ FBSD_TARGET_CPU_CPP_BUILTINS(); \
+ } \
+ while (0)
+
+/* Define the default FreeBSD-specific per-CPU hook code. */
+#define FBSD_TARGET_CPU_CPP_BUILTINS() do {} while (0)
/* Provide a CPP_SPEC appropriate for FreeBSD. We just deal with the GCC
option `-posix', and PIC issues. */
@@ -129,13 +130,7 @@ is built with the --enable-threads configure-time option.} \
%{pg: -lc_p} \
}"
#else
-#if FBSD_MAJOR >= 5
-#define FBSD_LIB_SPEC " \
- %{!shared: \
- %{!pg: %{pthread:-lc_r} -lc} \
- %{pg: %{pthread:-lc_r_p} -lc_p} \
- }"
-#else
+#if FBSD_MAJOR < 5
#define FBSD_LIB_SPEC " \
%{!shared: \
%{!pg: \
@@ -145,5 +140,11 @@ is built with the --enable-threads configure-time option.} \
%{!pthread:-lc_p} \
%{pthread:-lc_r_p}} \
}"
+#else
+#define FBSD_LIB_SPEC " \
+ %{!shared: \
+ %{!pg: %{pthread:-lpthread} -lc} \
+ %{pg: %{pthread:-lpthread_p} -lc_p} \
+ }"
#endif
#endif
diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h
index 285f5bf85f9..f71bd8b42d5 100644
--- a/gcc/config/freebsd.h
+++ b/gcc/config/freebsd.h
@@ -42,7 +42,10 @@ Boston, MA 02111-1307, USA. */
#define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR))
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES FBSD_CPP_PREDEFINES
+/* Obsolete, do not define it. */
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS()
#undef CPP_SPEC
#define CPP_SPEC FBSD_CPP_SPEC
diff --git a/gcc/config/h8300/h8300-protos.h b/gcc/config/h8300/h8300-protos.h
index aac56220393..5d77e426236 100644
--- a/gcc/config/h8300/h8300-protos.h
+++ b/gcc/config/h8300/h8300-protos.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
Hitachi H8/300 version generating coff
- Copyright (C) 2000 Free SoftwareFoundation, Inc.
+ Copyright (C) 2000, 2002, 2003 Free SoftwareFoundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
@@ -59,6 +59,9 @@ extern int small_call_insn_operand PARAMS ((rtx, enum machine_mode));
extern int jump_address_operand PARAMS ((rtx, enum machine_mode));
extern int bit_operand PARAMS ((rtx, enum machine_mode));
extern int bit_memory_operand PARAMS ((rtx, enum machine_mode));
+extern int stack_pointer_operand PARAMS ((rtx, enum machine_mode));
+extern int const_int_gt_2_operand PARAMS ((rtx, enum machine_mode));
+extern int const_int_ge_8_operand PARAMS ((rtx, enum machine_mode));
extern int bit_operator PARAMS ((rtx, enum machine_mode));
extern int nshift_operator PARAMS ((rtx, enum machine_mode));
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index eac88bde469..47ee80aa985 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for Hitachi H8/300.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002 Free Software Foundation, Inc.
+ 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com),
Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
@@ -757,9 +757,9 @@ asm_file_start (file)
else if (optimize)
fprintf (file, "; -O%d\n", optimize);
if (TARGET_H8300H)
- fprintf (file, "\n\t.h8300h\n");
+ fprintf (file, TARGET_NORMAL_MODE ? "\n\t.h8300hn\n" : "\n\t.h8300h\n");
else if (TARGET_H8300S)
- fprintf (file, "\n\t.h8300s\n");
+ fprintf (file, TARGET_NORMAL_MODE ? "\n\t.h8300sn\n" : "\n\t.h8300s\n");
else
fprintf (file, "\n\n");
output_file_directive (file, main_input_filename);
@@ -782,7 +782,9 @@ general_operand_src (op, mode)
rtx op;
enum machine_mode mode;
{
- if (GET_CODE (op) == MEM && GET_CODE (XEXP (op, 0)) == POST_INC)
+ if (GET_MODE (op) == mode
+ && GET_CODE (op) == MEM
+ && GET_CODE (XEXP (op, 0)) == POST_INC)
return 1;
return general_operand (op, mode);
}
@@ -795,7 +797,9 @@ general_operand_dst (op, mode)
rtx op;
enum machine_mode mode;
{
- if (GET_CODE (op) == MEM && GET_CODE (XEXP (op, 0)) == PRE_DEC)
+ if (GET_MODE (op) == mode
+ && GET_CODE (op) == MEM
+ && GET_CODE (XEXP (op, 0)) == PRE_DEC)
return 1;
return general_operand (op, mode);
}
@@ -1700,9 +1704,11 @@ h8300_initial_elimination_offset (from, to)
int from, to;
{
int offset = 0;
+ /* The number of bytes that the return address takes on the stack. */
+ int pc_size = POINTER_SIZE / BITS_PER_UNIT;
if (from == ARG_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
- offset = UNITS_PER_WORD + frame_pointer_needed * UNITS_PER_WORD;
+ offset = pc_size + frame_pointer_needed * UNITS_PER_WORD;
else if (from == RETURN_ADDRESS_POINTER_REGNUM && to == FRAME_POINTER_REGNUM)
offset = frame_pointer_needed * UNITS_PER_WORD;
else
@@ -1719,12 +1725,10 @@ h8300_initial_elimination_offset (from, to)
offset += round_frame_size (get_frame_size ());
if (from == ARG_POINTER_REGNUM && to == STACK_POINTER_REGNUM)
- offset += UNITS_PER_WORD; /* Skip saved PC */
+ /* Skip saved PC. */
+ offset += pc_size;
}
- if ((TARGET_H8300H || TARGET_H8300S) && TARGET_NORMAL_MODE)
- offset -= 2;
-
return offset;
}
@@ -1755,6 +1759,8 @@ notice_update_cc (body, insn)
rtx body;
rtx insn;
{
+ rtx set;
+
switch (get_attr_cc (insn))
{
case CC_NONE:
@@ -1777,7 +1783,10 @@ notice_update_cc (body, insn)
that's ok because alter_cond will change tests to use EQ/NE. */
CC_STATUS_INIT;
cc_status.flags |= CC_OVERFLOW_UNUSABLE | CC_NO_CARRY;
- cc_status.value1 = recog_data.operand[0];
+ set = single_set (insn);
+ cc_status.value1 = SET_SRC (set);
+ if (SET_DEST (set) != cc0_rtx)
+ cc_status.value2 = SET_DEST (set);
break;
case CC_SET_ZNV:
@@ -1786,9 +1795,10 @@ notice_update_cc (body, insn)
alter_cond will change tests to use EQ/NE. */
CC_STATUS_INIT;
cc_status.flags |= CC_NO_CARRY;
- cc_status.value1 = recog_data.operand[0];
- if (GET_CODE (body) == SET && REG_P (SET_SRC (body)))
- cc_status.value2 = SET_SRC (body);
+ set = single_set (insn);
+ cc_status.value1 = SET_SRC (set);
+ if (SET_DEST (set) != cc0_rtx)
+ cc_status.value2 = SET_DEST (set);
break;
case CC_COMPARE:
@@ -1804,6 +1814,40 @@ notice_update_cc (body, insn)
}
}
+/* Return nonzero if X is a stack pointer. */
+
+int
+stack_pointer_operand (x, mode)
+ rtx x;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return x == stack_pointer_rtx;
+}
+
+/* Return nonzero if X is a constant whose absolute value is greater
+ than 2. */
+
+int
+const_int_gt_2_operand (x, mode)
+ rtx x;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return (GET_CODE (x) == CONST_INT
+ && abs (INTVAL (x)) > 2);
+}
+
+/* Return nonzero if X is a constant whose absolute value is no
+ smaller than 8. */
+
+int
+const_int_ge_8_operand (x, mode)
+ rtx x;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return (GET_CODE (x) == CONST_INT
+ && abs (INTVAL (x)) >= 8);
+}
+
/* Recognize valid operators for bit instructions. */
int
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index 21f3eeb689b..1d02830ad4e 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -70,7 +70,7 @@ extern const char * const *h8_reg_names;
} \
while (0)
-#define LINK_SPEC "%{mh:-m h8300h} %{ms:-m h8300s}"
+#define LINK_SPEC "%{mh:%{mn:-m h8300hn}} %{mh:%{!mn:-m h8300h}} %{ms:%{mn:-m h8300sn}} %{ms:%{!mn:-m h8300s}}"
#define LIB_SPEC "%{mrelax:-relax} %{g:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
@@ -792,8 +792,7 @@ struct cum_arg
/* We handle signed and unsigned offsets here. */ \
&& INTVAL (X) > (TARGET_H8300 ? -0x10000 : -0x1000000) \
&& INTVAL (X) < (TARGET_H8300 ? 0x10000 : 0x1000000)) \
- || ((GET_CODE (X) == HIGH || GET_CODE (X) == CONST) \
- && TARGET_H8300))
+ || (GET_CODE (X) == HIGH || GET_CODE (X) == CONST))
/* Nonzero if the constant value X is a legitimate general operand.
It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
@@ -1074,7 +1073,7 @@ struct cum_arg
#define ASM_APP_OFF "; #NO_APP\n"
#define FILE_ASM_OP "\t.file\n"
-#define IDENT_ASM_OP "\t.ident\n"
+#define IDENT_ASM_OP "\t.ident\t"
/* The assembler op to get a word, 2 bytes for the H8/300, 4 for H8/300H. */
#define ASM_WORD_OP \
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index de6edc9b4d2..07229b4f95f 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -1,6 +1,6 @@
;; GCC machine description for Hitachi H8/300
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002 Free Software Foundation, Inc.
+;; 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Steve Chamberlain (sac@cygnus.com),
;; Jim Wilson (wilson@cygnus.com), and Doug Evans (dje@cygnus.com).
@@ -117,7 +117,8 @@
(plus:HI (reg:HI SP_REG) (const_int -2)))
(set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -1)))
(match_operand:QI 0 "register_operand" "r"))])]
- "TARGET_H8300"
+ "TARGET_H8300
+ && REGNO (operands[0]) != SP_REG"
"mov.w\\t%T0,@-r7"
[(set_attr "length" "2")
(set_attr "cc" "clobber")])
@@ -127,7 +128,19 @@
(plus:SI (reg:SI SP_REG) (const_int -4)))
(set (mem:QI (plus:SI (reg:SI SP_REG) (const_int -3)))
(match_operand:QI 0 "register_operand" "r"))])]
- "TARGET_H8300H || TARGET_H8300S"
+ "(TARGET_H8300H || TARGET_H8300S)
+ && REGNO (operands[0]) != SP_REG"
+ "mov.l\\t%S0,@-er7"
+ [(set_attr "length" "4")
+ (set_attr "cc" "clobber")])
+
+(define_insn "pushqi1_h8300hs_normal"
+ [(parallel [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -3)))
+ (match_operand:QI 0 "register_operand" "r"))])]
+ "(TARGET_H8300H || TARGET_H8300S)
+ && operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
[(set_attr "length" "4")
(set_attr "cc" "clobber")])
@@ -139,8 +152,10 @@
{
if (TARGET_H8300)
emit_insn (gen_pushqi1_h8300 (operands[0]));
- else
+ else if (!TARGET_NORMAL_MODE)
emit_insn (gen_pushqi1_h8300hs (operands[0]));
+ else
+ emit_insn (gen_pushqi1_h8300hs_normal (operands[0]));
DONE;
}")
@@ -209,7 +224,8 @@
(define_expand "pushhi1_h8300"
[(set (mem:HI (pre_dec:HI (reg:HI SP_REG)))
(match_operand:HI 0 "register_operand" ""))]
- "TARGET_H8300"
+ "TARGET_H8300
+ && REGNO (operands[0]) != SP_REG"
"")
(define_insn "pushhi1_h8300hs"
@@ -217,7 +233,19 @@
(plus:SI (reg:SI SP_REG) (const_int -4)))
(set (mem:HI (plus:SI (reg:SI SP_REG) (const_int -2)))
(match_operand:HI 0 "register_operand" "r"))])]
- "TARGET_H8300H || TARGET_H8300S"
+ "(TARGET_H8300H || TARGET_H8300S)
+ && REGNO (operands[0]) != SP_REG"
+ "mov.l\\t%S0,@-er7"
+ [(set_attr "length" "4")
+ (set_attr "cc" "clobber")])
+
+(define_insn "pushhi1_h8300hs_normal"
+ [(parallel [(set (reg:HI SP_REG)
+ (plus:HI (reg:HI SP_REG) (const_int -4)))
+ (set (mem:HI (plus:HI (reg:HI SP_REG) (const_int -2)))
+ (match_operand:HI 0 "register_operand" "r"))])]
+ "(TARGET_H8300H || TARGET_H8300S)
+ && operands[0] != stack_pointer_rtx"
"mov.l\\t%S0,@-er7"
[(set_attr "length" "4")
(set_attr "cc" "clobber")])
@@ -229,8 +257,10 @@
{
if (TARGET_H8300)
emit_insn (gen_pushhi1_h8300 (operands[0]));
- else
+ else if (!TARGET_NORMAL_MODE)
emit_insn (gen_pushhi1_h8300hs (operands[0]));
+ else
+ emit_insn (gen_pushhi1_h8300hs_normal (operands[0]));
DONE;
}")
@@ -617,43 +647,6 @@
[(set_attr "length" "2")
(set_attr "cc" "set_zn")])
-(define_insn ""
- [(set (cc0)
- (and:HI (match_operand:HI 0 "register_operand" "r")
- (match_operand:HI 1 "single_one_operand" "n")))]
- ""
- "*
-{
- operands[1] = GEN_INT (INTVAL (operands[1]) & 0xffff);
- if (INTVAL (operands[1]) > 128)
- {
- operands[1] = GEN_INT (INTVAL (operands[1]) >> 8);
- return \"btst\\t%V1,%t0\";
- }
- return \"btst\\t%V1,%s0\";
-}"
- [(set_attr "length" "2")
- (set_attr "cc" "set_zn")])
-
-(define_insn ""
- [(set (cc0)
- (and:SI (match_operand:SI 0 "register_operand" "r")
- (match_operand:SI 1 "single_one_operand" "n")))]
- "(TARGET_H8300H || TARGET_H8300S)
- && (INTVAL (operands[1]) & 0xffff) != 0"
- "*
-{
- operands[1] = GEN_INT (INTVAL (operands[1]) & 0xffff);
- if (INTVAL (operands[1]) > 128)
- {
- operands[1] = GEN_INT (INTVAL (operands[1]) >> 8);
- return \"btst\\t%V1,%x0\";
- }
- return \"btst\\t%V1,%w0\";
-}"
- [(set_attr "length" "2")
- (set_attr "cc" "set_zn")])
-
(define_insn "tstqi"
[(set (cc0) (match_operand:QI 0 "register_operand" "r"))]
""
@@ -776,6 +769,35 @@
[(set_attr "length" "2,2,2,4,2")
(set_attr "cc" "none_0hit,none_0hit,clobber,clobber,set_zn")])
+;; This splitter is very important to make the stack adjustment
+;; interrupt-safe. The combination of add.b and addx is unsafe!
+;;
+;; We apply this split after the peephole2 pass so that we won't end
+;; up creating too many adds/subs when a scratch register is
+;; available, which is actually a common case because stack unrolling
+;; tends to happen immediately after a function call.
+
+(define_split
+ [(set (match_operand:HI 0 "stack_pointer_operand" "")
+ (plus:HI (match_dup 0)
+ (match_operand 1 "const_int_gt_2_operand" "")))]
+ "TARGET_H8300 && flow2_completed"
+ [(const_int 0)]
+ "split_adds_subs (HImode, operands); DONE;")
+
+(define_peephole2
+ [(match_scratch:HI 2 "r")
+ (set (match_operand:HI 0 "stack_pointer_operand" "")
+ (plus:HI (match_dup 0)
+ (match_operand:HI 1 "const_int_ge_8_operand" "")))]
+ "TARGET_H8300"
+ [(set (match_dup 2)
+ (match_dup 1))
+ (set (match_dup 0)
+ (plus:HI (match_dup 0)
+ (match_dup 2)))]
+ "")
+
(define_insn "*addhi3_h8300hs"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r")
(plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0")
@@ -1800,7 +1822,7 @@
"@
mov.b #0,%x0\;sub.w %e0,%e0
mov.b %R1,%w0\;mov.b #0,%x0\;sub.w %e0,%e0"
- [(set_attr "length" "4,6")
+ [(set_attr "length" "4,8")
(set_attr "cc" "clobber,clobber")])
(define_expand "zero_extendhisi2"
@@ -1810,7 +1832,7 @@
"")
;; %e prints the high part of a CONST_INT, not the low part. Arggh.
-(define_insn ""
+(define_insn "*zero_extendhisi2_h8300"
[(set (match_operand:SI 0 "register_operand" "=r,r,r")
(zero_extend:SI (match_operand:HI 1 "general_operand_src" "0,i,g>")))]
"TARGET_H8300"
@@ -1818,7 +1840,7 @@
sub.w %e0,%e0
mov.w %f1,%f0\;sub.w %e0,%e0
mov.w %e1,%f0\;sub.w %e0,%e0"
- [(set_attr "length" "2,4,4")
+ [(set_attr "length" "2,4,6")
(set_attr "cc" "clobber,clobber,clobber")])
(define_insn ""
@@ -1862,7 +1884,7 @@
"@
bld #7,%w0\;subx %x0,%x0\;subx %y0,%y0\;subx %z0,%z0
mov.b %R1,%w0\;bld #7,%w0\;subx %x0,%x0\;subx %y0,%y0\;subx %z0,%z0"
- [(set_attr "length" "8,10")
+ [(set_attr "length" "8,12")
(set_attr "cc" "clobber,clobber")])
(define_expand "extendhisi2"
@@ -1871,14 +1893,14 @@
""
"")
-(define_insn ""
+(define_insn "*extendhisi2_h8300"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(sign_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))]
"TARGET_H8300"
"@
bld #7,%x0\;subx %y0,%y0\;subx %z0,%z0
mov.w %T1,%f0\;bld #7,%x0\;subx %y0,%y0\;subx %z0,%z0"
- [(set_attr "length" "6,8")
+ [(set_attr "length" "6,10")
(set_attr "cc" "clobber,clobber")])
(define_insn ""
@@ -2112,7 +2134,7 @@
;; Normal loads with a 32bit destination.
;;
-(define_insn ""
+(define_insn "*extzv_1_r_h8300"
[(set (match_operand:SI 0 "register_operand" "=&r")
(zero_extract:SI (match_operand:HI 1 "register_operand" "r")
(const_int 1)
@@ -2121,9 +2143,9 @@
&& INTVAL (operands[2]) < 16"
"* return output_simode_bld (0, operands);"
[(set_attr "cc" "clobber")
- (set_attr "length" "6")])
+ (set_attr "length" "8")])
-(define_insn ""
+(define_insn "*extzv_1_r_h8300hs"
[(set (match_operand:SI 0 "register_operand" "=r")
(zero_extract:SI (match_operand:SI 1 "register_operand" "r")
(const_int 1)
@@ -2132,13 +2154,13 @@
&& INTVAL (operands[2]) < 16"
"* return output_simode_bld (0, operands);"
[(set_attr "cc" "clobber")
- (set_attr "length" "6")])
+ (set_attr "length" "8")])
;;
;; Inverted loads with a 32bit destination.
;;
-(define_insn ""
+(define_insn "*extzv_1_r_inv_h8300"
[(set (match_operand:SI 0 "register_operand" "=&r")
(zero_extract:SI (xor:HI (match_operand:HI 1 "register_operand" "r")
(match_operand:HI 3 "const_int_operand" "n"))
@@ -2149,9 +2171,9 @@
&& (1 << INTVAL (operands[2])) == INTVAL (operands[3])"
"* return output_simode_bld (1, operands);"
[(set_attr "cc" "clobber")
- (set_attr "length" "6")])
+ (set_attr "length" "8")])
-(define_insn ""
+(define_insn "*extzv_1_r_inv_h8300hs"
[(set (match_operand:SI 0 "register_operand" "=r")
(zero_extract:SI (xor:SI (match_operand:SI 1 "register_operand" "r")
(match_operand 3 "const_int_operand" "n"))
@@ -2162,7 +2184,7 @@
&& (1 << INTVAL (operands[2])) == INTVAL (operands[3])"
"* return output_simode_bld (1, operands);"
[(set_attr "cc" "clobber")
- (set_attr "length" "6")])
+ (set_attr "length" "8")])
(define_expand "insv"
[(set (zero_extract:HI (match_operand:HI 0 "general_operand" "")
diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm
index 2f62572f225..dc22e54d60e 100644
--- a/gcc/config/h8300/lib1funcs.asm
+++ b/gcc/config/h8300/lib1funcs.asm
@@ -96,12 +96,20 @@ Boston, MA 02111-1307, USA. */
#endif
#ifdef __H8300H__
+#ifdef __NORMAL_MODE__
+ .h8300hn
+#else
.h8300h
#endif
+#endif
#ifdef __H8300S__
+#ifdef __NORMAL_MODE__
+ .h8300sn
+#else
.h8300s
#endif
+#endif
#ifdef L_cmpsi2
#ifdef __H8300__
diff --git a/gcc/config/h8300/t-rtems b/gcc/config/h8300/t-rtems
new file mode 100644
index 00000000000..104ee2366f1
--- /dev/null
+++ b/gcc/config/h8300/t-rtems
@@ -0,0 +1,7 @@
+# Custom multilibs for RTEMS
+
+# -mn is not applicable to RTEMS (-mn implies 16bit void*)
+
+MULTILIB_OPTIONS = mh/ms mint32
+MULTILIB_DIRNAMES = h8300h h8300s int32
+MULTILIB_EXCEPTIONS = mint32
diff --git a/gcc/config/i370/i370.md b/gcc/config/i370/i370.md
index 9564cb3001e..26ca0f3d513 100644
--- a/gcc/config/i370/i370.md
+++ b/gcc/config/i370/i370.md
@@ -474,10 +474,10 @@ check_label_emit ();
)
;
-; cmpstrsi instruction pattern(s).
+; cmpmemsi instruction pattern(s).
;
-(define_expand "cmpstrsi"
+(define_expand "cmpmemsi"
[(set (match_operand:SI 0 "general_operand" "")
(compare (match_operand:BLK 1 "general_operand" "")
(match_operand:BLK 2 "general_operand" "")))
@@ -545,7 +545,7 @@ check_label_emit ();
emit_move_insn (gen_rtx_SUBREG (SImode, reg2, GET_MODE_SIZE (SImode)), len);
/* Compare! */
- emit_insn (gen_cmpstrsi_1 (result, reg1, reg2));
+ emit_insn (gen_cmpmemsi_1 (result, reg1, reg2));
}
DONE;
}")
@@ -569,7 +569,7 @@ check_label_emit ();
; Compare a block that is larger than 255 bytes in length.
-(define_insn "cmpstrsi_1"
+(define_insn "cmpmemsi_1"
[(set (match_operand:SI 0 "register_operand" "+d")
(compare
(mem:BLK (subreg:SI (match_operand:DI 1 "register_operand" "+d") 0))
diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h
index f630d1f8450..03e372e04fa 100644
--- a/gcc/config/i386/cygwin.h
+++ b/gcc/config/i386/cygwin.h
@@ -1,6 +1,6 @@
/* Operating system specific defines to be used when targeting GCC for
hosting on Windows32, using a Unix style C library and tools.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -134,7 +134,8 @@ Boston, MA 02111-1307, USA. */
by calling the init function from the prologue. */
#undef LIBGCC_SPEC
-#define LIBGCC_SPEC "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc %{mno-cygwin:-lmoldname -lmsvcrt}"
+#define LIBGCC_SPEC "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} \
+ -lgcc %{mno-cygwin:-lmoldname -lmingwex -lmsvcrt}"
/* This macro defines names of additional specifications to put in the specs
that can be used in various specifications like CC1_SPEC. Its definition
@@ -306,11 +307,13 @@ do { \
#define CHECK_STACK_LIMIT 4000
/* By default, target has a 80387, uses IEEE compatible arithmetic,
- and returns float values in the 387 and needs stack probes */
-#undef TARGET_SUBTARGET_DEFAULT
+ returns float values in the 387 and needs stack probes.
+ We also align doubles to 64-bits for MSVC default compatibility. */
+#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT \
- (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_STACK_PROBE)
+ (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_STACK_PROBE \
+ | MASK_ALIGN_DOUBLE)
/* This is how to output an assembler line
that says to advance the location counter
@@ -397,6 +400,15 @@ extern void i386_pe_unique_section PARAMS ((TREE, int));
const0_rtx)); \
}
+/* Java Native Interface (JNI) methods on Win32 are invoked using the
+ stdcall calling convention. */
+#undef MODIFY_JNI_METHOD_CALL
+#define MODIFY_JNI_METHOD_CALL(MDECL) \
+ build_type_attribute_variant ((MDECL), \
+ build_tree_list (get_identifier ("stdcall"), \
+ NULL))
+
+
/* External function declarations. */
extern void i386_pe_record_external_function PARAMS ((const char *));
diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h
index a271aa47cde..67807804501 100644
--- a/gcc/config/i386/djgpp.h
+++ b/gcc/config/i386/djgpp.h
@@ -136,6 +136,8 @@ Boston, MA 02111-1307, USA. */
#undef ASM_FILE_START
#define ASM_FILE_START(FILE) \
do { \
+ if (ix86_asm_dialect == ASM_INTEL) \
+ fputs ("\t.intel_syntax\n", FILE); \
output_file_directive (FILE, main_input_filename); \
} while (0)
diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
new file mode 100644
index 00000000000..7007fc5864a
--- /dev/null
+++ b/gcc/config/i386/emmintrin.h
@@ -0,0 +1,1499 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header 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. */
+
+/* Implemented from the specification included in the Intel C++ Compiler
+ User Guide and Reference, version 8.0. */
+
+#ifndef _EMMINTRIN_H_INCLUDED
+#define _EMMINTRIN_H_INCLUDED
+
+#ifdef __SSE2__
+#include <xmmintrin.h>
+
+/* SSE2 */
+typedef int __v2df __attribute__ ((mode (V2DF)));
+typedef int __v2di __attribute__ ((mode (V2DI)));
+typedef int __v4si __attribute__ ((mode (V4SI)));
+typedef int __v8hi __attribute__ ((mode (V8HI)));
+typedef int __v16qi __attribute__ ((mode (V16QI)));
+
+/* Create a selector for use with the SHUFPD instruction. */
+#define _MM_SHUFFLE2(fp1,fp0) \
+ (((fp1) << 1) | (fp0))
+
+#define __m128i __v2di
+#define __m128d __v2df
+
+/* Create a vector with element 0 as *P and the rest zero. */
+static __inline __m128d
+_mm_load_sd (double const *__P)
+{
+ return (__m128d) __builtin_ia32_loadsd (__P);
+}
+
+/* Create a vector with all two elements equal to *P. */
+static __inline __m128d
+_mm_load1_pd (double const *__P)
+{
+ __v2df __tmp = __builtin_ia32_loadsd (__P);
+ return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,0));
+}
+
+static __inline __m128d
+_mm_load_pd1 (double const *__P)
+{
+ return _mm_load1_pd (__P);
+}
+
+/* Load two DPFP values from P. The address must be 16-byte aligned. */
+static __inline __m128d
+_mm_load_pd (double const *__P)
+{
+ return (__m128d) __builtin_ia32_loadapd (__P);
+}
+
+/* Load two DPFP values from P. The address need not be 16-byte aligned. */
+static __inline __m128d
+_mm_loadu_pd (double const *__P)
+{
+ return (__m128d) __builtin_ia32_loadupd (__P);
+}
+
+/* Load two DPFP values in reverse order. The address must be aligned. */
+static __inline __m128d
+_mm_loadr_pd (double const *__P)
+{
+ __v2df __tmp = __builtin_ia32_loadapd (__P);
+ return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,1));
+}
+
+/* Create a vector with element 0 as F and the rest zero. */
+static __inline __m128d
+_mm_set_sd (double __F)
+{
+ return (__m128d) __builtin_ia32_loadsd (&__F);
+}
+
+/* Create a vector with all two elements equal to F. */
+static __inline __m128d
+_mm_set1_pd (double __F)
+{
+ __v2df __tmp = __builtin_ia32_loadsd (&__F);
+ return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,0));
+}
+
+static __inline __m128d
+_mm_set_pd1 (double __F)
+{
+ return _mm_set1_pd (__F);
+}
+
+/* Create the vector [Z Y]. */
+static __inline __m128d
+_mm_set_pd (double __Z, double __Y)
+{
+ union {
+ double __a[2];
+ __m128d __v;
+ } __u;
+
+ __u.__a[0] = __Y;
+ __u.__a[1] = __Z;
+
+ return __u.__v;
+}
+
+/* Create the vector [Y Z]. */
+static __inline __m128d
+_mm_setr_pd (double __Z, double __Y)
+{
+ return _mm_set_pd (__Y, __Z);
+}
+
+/* Create a vector of zeros. */
+static __inline __m128d
+_mm_setzero_pd (void)
+{
+ return (__m128d) __builtin_ia32_setzeropd ();
+}
+
+/* Stores the lower DPFP value. */
+static __inline void
+_mm_store_sd (double *__P, __m128d __A)
+{
+ __builtin_ia32_storesd (__P, (__v2df)__A);
+}
+
+/* Store the lower DPFP value acrosd two words. */
+static __inline void
+_mm_store1_pd (double *__P, __m128d __A)
+{
+ __v2df __va = (__v2df)__A;
+ __v2df __tmp = __builtin_ia32_shufpd (__va, __va, _MM_SHUFFLE2 (0,0));
+ __builtin_ia32_storeapd (__P, __tmp);
+}
+
+static __inline void
+_mm_store_pd1 (double *__P, __m128d __A)
+{
+ _mm_store1_pd (__P, __A);
+}
+
+/* Store two DPFP values. The address must be 16-byte aligned. */
+static __inline void
+_mm_store_pd (double *__P, __m128d __A)
+{
+ __builtin_ia32_storeapd (__P, (__v2df)__A);
+}
+
+/* Store two DPFP values. The address need not be 16-byte aligned. */
+static __inline void
+_mm_storeu_pd (double *__P, __m128d __A)
+{
+ __builtin_ia32_storeupd (__P, (__v2df)__A);
+}
+
+/* Store two DPFP values in reverse order. The address must be aligned. */
+static __inline void
+_mm_storer_pd (double *__P, __m128d __A)
+{
+ __v2df __va = (__v2df)__A;
+ __v2df __tmp = __builtin_ia32_shufpd (__va, __va, _MM_SHUFFLE2 (0,1));
+ __builtin_ia32_storeapd (__P, __tmp);
+}
+
+/* Sets the low DPFP value of A from the low value of B. */
+static __inline __m128d
+_mm_move_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
+}
+
+
+static __inline __m128d
+_mm_add_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_addpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_add_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_addsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_sub_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_subpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_sub_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_subsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_mul_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_mulpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_mul_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_mulsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_div_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_divpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_div_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_divsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_sqrt_pd (__m128d __A)
+{
+ return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
+}
+
+/* Return pair {sqrt (A[0), B[1]}. */
+static __inline __m128d
+_mm_sqrt_sd (__m128d __A, __m128d __B)
+{
+ __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
+ return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__tmp);
+}
+
+static __inline __m128d
+_mm_min_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_minpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_min_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_max_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_maxpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_max_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_and_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_andpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_andnot_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_andnpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_or_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_orpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_xor_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_xorpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpeq_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpeqpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmplt_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpltpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmple_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmplepd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpgt_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpgtpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpge_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpgepd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpneq_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpneqpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpnlt_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpnltpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpnle_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpnlepd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpngt_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpngtpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpnge_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpngepd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpord_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpordpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpunord_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpunordpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpeq_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpeqsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmplt_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpltsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmple_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmplesd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpgt_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
+ (__v2df)
+ __builtin_ia32_cmpltsd ((__v2df) __B,
+ (__v2df)
+ __A));
+}
+
+static __inline __m128d
+_mm_cmpge_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
+ (__v2df)
+ __builtin_ia32_cmplesd ((__v2df) __B,
+ (__v2df)
+ __A));
+}
+
+static __inline __m128d
+_mm_cmpneq_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpneqsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpnlt_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpnltsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpnle_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpnlesd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpngt_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
+ (__v2df)
+ __builtin_ia32_cmpnltsd ((__v2df) __B,
+ (__v2df)
+ __A));
+}
+
+static __inline __m128d
+_mm_cmpnge_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
+ (__v2df)
+ __builtin_ia32_cmpnlesd ((__v2df) __B,
+ (__v2df)
+ __A));
+}
+
+static __inline __m128d
+_mm_cmpord_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpordsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_cmpunord_sd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_cmpunordsd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comieq_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdeq ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comilt_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdlt ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comile_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdle ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comigt_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdgt ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comige_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdge ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_comineq_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_comisdneq ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomieq_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdeq ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomilt_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomile_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomigt_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomige_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_ucomineq_sd (__m128d __A, __m128d __B)
+{
+ return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B);
+}
+
+/* Create a vector with element 0 as *P and the rest zero. */
+
+static __inline __m128i
+_mm_load_si128 (__m128i const *__P)
+{
+ return (__m128i) __builtin_ia32_loaddqa ((char const *)__P);
+}
+
+static __inline __m128i
+_mm_loadu_si128 (__m128i const *__P)
+{
+ return (__m128i) __builtin_ia32_loaddqu ((char const *)__P);
+}
+
+static __inline __m128i
+_mm_loadl_epi64 (__m128i const *__P)
+{
+ return (__m128i) __builtin_ia32_movq2dq (*(unsigned long long *)__P);
+}
+
+static __inline void
+_mm_store_si128 (__m128i *__P, __m128i __B)
+{
+ __builtin_ia32_storedqa ((char *)__P, (__v16qi)__B);
+}
+
+static __inline void
+_mm_storeu_si128 (__m128i *__P, __m128i __B)
+{
+ __builtin_ia32_storedqu ((char *)__P, (__v16qi)__B);
+}
+
+static __inline void
+_mm_storel_epi64 (__m128i *__P, __m128i __B)
+{
+ *(long long *)__P = __builtin_ia32_movdq2q ((__v2di)__B);
+}
+
+static __inline __m64
+_mm_movepi64_pi64 (__m128i __B)
+{
+ return (__m64) __builtin_ia32_movdq2q ((__v2di)__B);
+}
+
+static __inline __m128i
+_mm_move_epi64 (__m128i __A)
+{
+ return (__m128i) __builtin_ia32_movq ((__v2di)__A);
+}
+
+/* Create a vector of zeros. */
+static __inline __m128i
+_mm_setzero_si128 (void)
+{
+ return (__m128i) __builtin_ia32_setzero128 ();
+}
+
+static __inline __m128i
+_mm_set_epi64 (__m64 __A, __m64 __B)
+{
+ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
+ __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B);
+ return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp2, __tmp);
+}
+
+/* Create the vector [Z Y X W]. */
+static __inline __m128i
+_mm_set_epi32 (int __Z, int __Y, int __X, int __W)
+{
+ union {
+ int __a[4];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __W;
+ __u.__a[1] = __X;
+ __u.__a[2] = __Y;
+ __u.__a[3] = __Z;
+
+ return __u.__v;
+}
+
+#ifdef __x86_64__
+/* Create the vector [Z Y]. */
+static __inline __m128i
+_mm_set_epi64x (long long __Z, long long __Y)
+{
+ union {
+ long __a[2];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __Y;
+ __u.__a[1] = __Z;
+
+ return __u.__v;
+}
+#endif
+
+/* Create the vector [S T U V Z Y X W]. */
+static __inline __m128i
+_mm_set_epi16 (short __Z, short __Y, short __X, short __W,
+ short __V, short __U, short __T, short __S)
+{
+ union {
+ short __a[8];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __S;
+ __u.__a[1] = __T;
+ __u.__a[2] = __U;
+ __u.__a[3] = __V;
+ __u.__a[4] = __W;
+ __u.__a[5] = __X;
+ __u.__a[6] = __Y;
+ __u.__a[7] = __Z;
+
+ return __u.__v;
+}
+
+/* Create the vector [S T U V Z Y X W]. */
+static __inline __m128i
+_mm_set_epi8 (char __Z, char __Y, char __X, char __W,
+ char __V, char __U, char __T, char __S,
+ char __Z1, char __Y1, char __X1, char __W1,
+ char __V1, char __U1, char __T1, char __S1)
+{
+ union {
+ char __a[16];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __S1;
+ __u.__a[1] = __T1;
+ __u.__a[2] = __U1;
+ __u.__a[3] = __V1;
+ __u.__a[4] = __W1;
+ __u.__a[5] = __X1;
+ __u.__a[6] = __Y1;
+ __u.__a[7] = __Z1;
+ __u.__a[8] = __S;
+ __u.__a[9] = __T;
+ __u.__a[10] = __U;
+ __u.__a[11] = __V;
+ __u.__a[12] = __W;
+ __u.__a[13] = __X;
+ __u.__a[14] = __Y;
+ __u.__a[15] = __Z;
+
+ return __u.__v;
+}
+
+static __inline __m128i
+_mm_set1_epi64 (__m64 __A)
+{
+ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
+ return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp);
+}
+
+static __inline __m128i
+_mm_set1_epi32 (int __A)
+{
+ __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__A);
+ return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
+}
+
+#ifdef __x86_64__
+static __inline __m128i
+_mm_set1_epi64x (long long __A)
+{
+ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
+ return (__m128i) __builtin_ia32_shufpd ((__v2df)__tmp, (__v2df)__tmp, _MM_SHUFFLE2 (0,0));
+}
+#endif
+
+static __inline __m128i
+_mm_set1_epi16 (short __A)
+{
+ int __Acopy = (unsigned short)__A;
+ __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy);
+ __tmp = (__v4si)__builtin_ia32_punpcklwd128 ((__v8hi)__tmp, (__v8hi)__tmp);
+ return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
+}
+
+static __inline __m128i
+_mm_set1_epi8 (char __A)
+{
+ int __Acopy = (unsigned char)__A;
+ __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy);
+ __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp);
+ __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp);
+ return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
+}
+
+static __inline __m128i
+_mm_setr_epi64 (__m64 __A, __m64 __B)
+{
+ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
+ __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B);
+ return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp2);
+}
+
+/* Create the vector [Z Y X W]. */
+static __inline __m128i
+_mm_setr_epi32 (int __W, int __X, int __Y, int __Z)
+{
+ union {
+ int __a[4];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __W;
+ __u.__a[1] = __X;
+ __u.__a[2] = __Y;
+ __u.__a[3] = __Z;
+
+ return __u.__v;
+}
+/* Create the vector [S T U V Z Y X W]. */
+static __inline __m128i
+_mm_setr_epi16 (short __S, short __T, short __U, short __V,
+ short __W, short __X, short __Y, short __Z)
+{
+ union {
+ short __a[8];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __S;
+ __u.__a[1] = __T;
+ __u.__a[2] = __U;
+ __u.__a[3] = __V;
+ __u.__a[4] = __W;
+ __u.__a[5] = __X;
+ __u.__a[6] = __Y;
+ __u.__a[7] = __Z;
+
+ return __u.__v;
+}
+
+/* Create the vector [S T U V Z Y X W]. */
+static __inline __m128i
+_mm_setr_epi8 (char __S1, char __T1, char __U1, char __V1,
+ char __W1, char __X1, char __Y1, char __Z1,
+ char __S, char __T, char __U, char __V,
+ char __W, char __X, char __Y, char __Z)
+{
+ union {
+ char __a[16];
+ __m128i __v;
+ } __u;
+
+ __u.__a[0] = __S1;
+ __u.__a[1] = __T1;
+ __u.__a[2] = __U1;
+ __u.__a[3] = __V1;
+ __u.__a[4] = __W1;
+ __u.__a[5] = __X1;
+ __u.__a[6] = __Y1;
+ __u.__a[7] = __Z1;
+ __u.__a[8] = __S;
+ __u.__a[9] = __T;
+ __u.__a[10] = __U;
+ __u.__a[11] = __V;
+ __u.__a[12] = __W;
+ __u.__a[13] = __X;
+ __u.__a[14] = __Y;
+ __u.__a[15] = __Z;
+
+ return __u.__v;
+}
+
+static __inline __m128d
+_mm_cvtepi32_pd (__m128i __A)
+{
+ return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A);
+}
+
+static __inline __m128
+_mm_cvtepi32_ps (__m128i __A)
+{
+ return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A);
+}
+
+static __inline __m128i
+_mm_cvtpd_epi32 (__m128d __A)
+{
+ return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A);
+}
+
+static __inline __m64
+_mm_cvtpd_pi32 (__m128d __A)
+{
+ return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A);
+}
+
+static __inline __m128
+_mm_cvtpd_ps (__m128d __A)
+{
+ return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A);
+}
+
+static __inline __m128i
+_mm_cvttpd_epi32 (__m128d __A)
+{
+ return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A);
+}
+
+static __inline __m64
+_mm_cvttpd_pi32 (__m128d __A)
+{
+ return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A);
+}
+
+static __inline __m128d
+_mm_cvtpi32_pd (__m64 __A)
+{
+ return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A);
+}
+
+static __inline __m128i
+_mm_cvtps_epi32 (__m128 __A)
+{
+ return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A);
+}
+
+static __inline __m128i
+_mm_cvttps_epi32 (__m128 __A)
+{
+ return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A);
+}
+
+static __inline __m128d
+_mm_cvtps_pd (__m128 __A)
+{
+ return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A);
+}
+
+static __inline int
+_mm_cvtsd_si32 (__m128d __A)
+{
+ return __builtin_ia32_cvtsd2si ((__v2df) __A);
+}
+
+#ifdef __x86_64__
+static __inline long long
+_mm_cvtsd_si64x (__m128d __A)
+{
+ return __builtin_ia32_cvtsd2si64 ((__v2df) __A);
+}
+#endif
+
+static __inline int
+_mm_cvttsd_si32 (__m128d __A)
+{
+ return __builtin_ia32_cvttsd2si ((__v2df) __A);
+}
+
+#ifdef __x86_64__
+static __inline long long
+_mm_cvttsd_si64x (__m128d __A)
+{
+ return __builtin_ia32_cvttsd2si64 ((__v2df) __A);
+}
+#endif
+
+static __inline __m128
+_mm_cvtsd_ss (__m128 __A, __m128d __B)
+{
+ return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B);
+}
+
+static __inline __m128d
+_mm_cvtsi32_sd (__m128d __A, int __B)
+{
+ return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
+}
+
+#ifdef __x86_64__
+static __inline __m128d
+_mm_cvtsi64x_sd (__m128d __A, long long __B)
+{
+ return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
+}
+#endif
+
+static __inline __m128d
+_mm_cvtss_sd (__m128d __A, __m128 __B)
+{
+ return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
+}
+
+#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))
+
+static __inline __m128d
+_mm_unpackhi_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_unpacklo_pd (__m128d __A, __m128d __B)
+{
+ return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_loadh_pd (__m128d __A, double const *__B)
+{
+ return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, (__v2si *)__B);
+}
+
+static __inline void
+_mm_storeh_pd (double *__A, __m128d __B)
+{
+ __builtin_ia32_storehpd ((__v2si *)__A, (__v2df)__B);
+}
+
+static __inline __m128d
+_mm_loadl_pd (__m128d __A, double const *__B)
+{
+ return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, (__v2si *)__B);
+}
+
+static __inline void
+_mm_storel_pd (double *__A, __m128d __B)
+{
+ __builtin_ia32_storelpd ((__v2si *)__A, (__v2df)__B);
+}
+
+static __inline int
+_mm_movemask_pd (__m128d __A)
+{
+ return __builtin_ia32_movmskpd ((__v2df)__A);
+}
+
+static __inline __m128i
+_mm_packs_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_packs_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_packus_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_unpackhi_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_unpackhi_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_unpackhi_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpckhdq128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_unpackhi_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpckhqdq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_unpacklo_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_unpacklo_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpcklwd128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_unpacklo_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpckldq128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_unpacklo_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_punpcklqdq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_add_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_add_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_add_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddd128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_add_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_adds_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddsb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_adds_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddsw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_adds_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddusb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_adds_epu16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_sub_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_sub_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_sub_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubd128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_sub_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_subs_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_subs_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_subs_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_subs_epu16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_madd_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_mulhi_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_mullo_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmullw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m64
+_mm_mul_su32 (__m64 __A, __m64 __B)
+{
+ return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B);
+}
+
+static __inline __m128i
+_mm_mul_epu32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_sll_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psllw128 ((__v8hi)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_sll_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pslld128 ((__v4si)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_sll_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psllq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_sra_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psraw128 ((__v8hi)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_sra_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psrad128 ((__v4si)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_srl_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psrlw128 ((__v8hi)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_srl_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psrld128 ((__v4si)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_srl_epi64 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psrlq128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_slli_epi16 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B);
+}
+
+static __inline __m128i
+_mm_slli_epi32 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B);
+}
+
+static __inline __m128i
+_mm_slli_epi64 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);
+}
+
+static __inline __m128i
+_mm_srai_epi16 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B);
+}
+
+static __inline __m128i
+_mm_srai_epi32 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);
+}
+
+#if 0
+static __m128i __attribute__((__always_inline__))
+_mm_srli_si128 (__m128i __A, const int __B)
+{
+ return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))
+}
+
+static __m128i __attribute__((__always_inline__))
+_mm_srli_si128 (__m128i __A, const int __B)
+{
+ return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))
+}
+#endif
+#define _mm_srli_si128(__A, __B) ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))
+#define _mm_slli_si128(__A, __B) ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))
+
+static __inline __m128i
+_mm_srli_epi16 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B);
+}
+
+static __inline __m128i
+_mm_srli_epi32 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B);
+}
+
+static __inline __m128i
+_mm_srli_epi64 (__m128i __A, int __B)
+{
+ return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);
+}
+
+static __inline __m128i
+_mm_and_si128 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_andnot_si128 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_or_si128 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_xor_si128 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pxor128 ((__v2di)__A, (__v2di)__B);
+}
+
+static __inline __m128i
+_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpeqb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_cmpeq_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpeqw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_cmpeq_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpeqd128 ((__v4si)__A, (__v4si)__B);
+}
+
+static __inline __m128i
+_mm_cmplt_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__B, (__v16qi)__A);
+}
+
+static __inline __m128i
+_mm_cmplt_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__B, (__v8hi)__A);
+}
+
+static __inline __m128i
+_mm_cmplt_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__B, (__v4si)__A);
+}
+
+static __inline __m128i
+_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_cmpgt_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_cmpgt_epi32 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__A, (__v4si)__B);
+}
+
+#define _mm_extract_epi16(__A, __B) __builtin_ia32_pextrw128 ((__v8hi)__A, __B)
+
+#define _mm_insert_epi16(__A, __B, __C) ((__m128i)__builtin_ia32_pinsrw128 ((__v8hi)__A, __B, __C))
+
+static __inline __m128i
+_mm_max_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_max_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_min_epi16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_min_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline int
+_mm_movemask_epi8 (__m128i __A)
+{
+ return __builtin_ia32_pmovmskb128 ((__v16qi)__A);
+}
+
+static __inline __m128i
+_mm_mulhi_epu16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)__A, __B))
+#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)__A, __B))
+#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)__A, __B))
+
+static __inline void
+_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
+{
+ __builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C);
+}
+
+static __inline __m128i
+_mm_avg_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline __m128i
+_mm_avg_epu16 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B);
+}
+
+static __inline __m128i
+_mm_sad_epu8 (__m128i __A, __m128i __B)
+{
+ return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B);
+}
+
+static __inline void
+_mm_stream_si32 (int *__A, int __B)
+{
+ __builtin_ia32_movnti (__A, __B);
+}
+
+static __inline void
+_mm_stream_si128 (__m128i *__A, __m128i __B)
+{
+ __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);
+}
+
+static __inline void
+_mm_stream_pd (double *__A, __m128d __B)
+{
+ __builtin_ia32_movntpd (__A, (__v2df)__B);
+}
+
+static __inline __m128i
+_mm_movpi64_epi64 (__m64 __A)
+{
+ return (__m128i)__builtin_ia32_movq2dq ((unsigned long long)__A);
+}
+
+static __inline void
+_mm_clflush (void const *__A)
+{
+ return __builtin_ia32_clflush (__A);
+}
+
+static __inline void
+_mm_lfence (void)
+{
+ __builtin_ia32_lfence ();
+}
+
+static __inline void
+_mm_mfence (void)
+{
+ __builtin_ia32_mfence ();
+}
+
+static __inline __m128i
+_mm_cvtsi32_si128 (int __A)
+{
+ return (__m128i) __builtin_ia32_loadd (&__A);
+}
+
+#ifdef __x86_64__
+static __inline __m128i
+_mm_cvtsi64x_si128 (long long __A)
+{
+ return (__m128i) __builtin_ia32_movq2dq (__A);
+}
+#endif
+
+static __inline int
+_mm_cvtsi128_si32 (__m128i __A)
+{
+ int __tmp;
+ __builtin_ia32_stored (&__tmp, (__v4si)__A);
+ return __tmp;
+}
+
+#ifdef __x86_64__
+static __inline long long
+_mm_cvtsi128_si64x (__m128i __A)
+{
+ return __builtin_ia32_movdq2q ((__v2di)__A);
+}
+#endif
+
+#endif /* __SSE2__ */
+
+#endif /* _EMMINTRIN_H_INCLUDED */
diff --git a/gcc/config/i386/freebsd-aout.h b/gcc/config/i386/freebsd-aout.h
index a2b616e700b..85e2703f42c 100644
--- a/gcc/config/i386/freebsd-aout.h
+++ b/gcc/config/i386/freebsd-aout.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler for Intel 80386
running FreeBSD.
- Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2002
+ Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
Contributed by Poul-Henning Kamp <phk@login.dkuug.dk>
Continued development by David O'Brien <obrien@NUXI.org>
@@ -94,6 +94,9 @@ Boston, MA 02111-1307, USA. */
/* Profiling routines, partially copied from i386/osfrose.h. */
+/* Tell final.c that we don't need a label passed to mcount. */
+#define NO_PROFILE_COUNTERS 1
+
#undef MCOUNT_NAME
#define MCOUNT_NAME "mcount"
#undef PROFILE_COUNT_REGISTER
@@ -112,6 +115,7 @@ Boston, MA 02111-1307, USA. */
#define TYPE_ASM_OP "\t.type\t"
#define SIZE_ASM_OP "\t.size\t"
+#define SET_ASM_OP "\t.set\t"
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
@@ -121,6 +125,12 @@ Boston, MA 02111-1307, USA. */
#define TYPE_OPERAND_FMT "@%s"
+#define HANDLE_SYSV_PRAGMA 1
+
+#define ASM_WEAKEN_LABEL(FILE,NAME) \
+ do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
+ fputc ('\n', FILE); } while (0)
+
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
index e0160b1e048..92f7fceb79a 100644
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -26,19 +26,16 @@ Boston, MA 02111-1307, USA. */
#define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD/ELF)");
/* Override the default comment-starter of "/". */
-#undef ASM_COMMENT_START
+#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
-#undef ASM_APP_ON
+#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
-#undef ASM_APP_OFF
+#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
-#undef SET_ASM_OP
-#define SET_ASM_OP "\t.set\t"
-
-#undef DBX_REGISTER_NUMBER
+#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
@@ -47,18 +44,18 @@ Boston, MA 02111-1307, USA. */
/* Tell final.c that we don't need a label passed to mcount. */
-#undef MCOUNT_NAME
+#undef MCOUNT_NAME
#define MCOUNT_NAME ".mcount"
/* Make gcc agree with <machine/ansi.h>. */
-#undef SIZE_TYPE
+#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
-#undef PTRDIFF_TYPE
+#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
-#undef WCHAR_TYPE_SIZE
+#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
@@ -132,3 +129,15 @@ Boston, MA 02111-1307, USA. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
+
+/* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the
+ compiler get the contents of <float.h> and std::numeric_limits correct. */
+#define SUBTARGET_OVERRIDE_OPTIONS \
+ do { \
+ if (!TARGET_64BIT) { \
+ real_format_for_mode[XFmode - QFmode] \
+ = &ieee_extended_intel_96_round_53_format; \
+ real_format_for_mode[TFmode - QFmode] \
+ = &ieee_extended_intel_96_round_53_format; \
+ } \
+ } while (0)
diff --git a/gcc/config/i386/freebsd64.h b/gcc/config/i386/freebsd64.h
index 699f4c4d344..4a660341b07 100644
--- a/gcc/config/i386/freebsd64.h
+++ b/gcc/config/i386/freebsd64.h
@@ -23,14 +23,24 @@ Boston, MA 02111-1307, USA. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (FreeBSD/x86-64 ELF)");
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ if (TARGET_64BIT) \
+ { \
+ builtin_define ("__LP64__"); \
+ } \
+ } \
+ while (0)
+
/* Provide a LINK_SPEC appropriate for the FreeBSD/x86-64 ELF target.
This is a copy of LINK_SPEC from <i386/freebsd.h> tweaked for
the x86-64 target. */
#undef LINK_SPEC
#define LINK_SPEC "\
- %{!m32:-m elf_x86_64} \
- %{m32:-m elf_i386} \
+ %{m32:-m elf_i386_fbsd} \
%{Wl,*:%*} \
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
diff --git a/gcc/config/i386/gthr-win32.c b/gcc/config/i386/gthr-win32.c
index 06dc2045d24..5510f108ca4 100644
--- a/gcc/config/i386/gthr-win32.c
+++ b/gcc/config/i386/gthr-win32.c
@@ -32,7 +32,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifndef __GTHREAD_HIDE_WIN32API
-# define __GTHREAD_HIDE_WIN32API
+# define __GTHREAD_HIDE_WIN32API 1
#endif
#include <gthr-win32.h>
#include <windows.h>
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index 4afdf668bd8..53b56016956 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -88,6 +88,8 @@ extern int memory_displacement_operand PARAMS ((rtx, enum machine_mode));
extern int cmpsi_operand PARAMS ((rtx, enum machine_mode));
extern int long_memory_operand PARAMS ((rtx, enum machine_mode));
extern int aligned_operand PARAMS ((rtx, enum machine_mode));
+extern int compare_operator PARAMS ((rtx, enum machine_mode));
+extern int flags_reg_operand PARAMS ((rtx, enum machine_mode));
extern enum machine_mode ix86_cc_mode PARAMS ((enum rtx_code, rtx, rtx));
extern int ix86_expand_movstr PARAMS ((rtx, rtx, rtx, rtx));
@@ -146,6 +148,7 @@ extern void ix86_split_ashrdi PARAMS ((rtx *, rtx));
extern void ix86_split_lshrdi PARAMS ((rtx *, rtx));
extern int ix86_address_cost PARAMS ((rtx));
extern rtx ix86_find_base_term PARAMS ((rtx));
+extern int ix86_check_movabs PARAMS ((rtx, int));
extern rtx assign_386_stack_local PARAMS ((enum machine_mode, int));
extern int ix86_attr_length_immediate_default PARAMS ((rtx, int));
@@ -190,6 +193,9 @@ extern void x86_function_profiler PARAMS ((FILE *, int));
#ifdef TREE_CODE
extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx));
extern rtx function_arg PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
+extern int function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS *,
+ enum machine_mode,
+ tree, int));
extern void function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode,
tree, int));
extern rtx ix86_function_value PARAMS ((tree));
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 42f6d93d3c3..1f93ce68f59 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on IA-32.
Copyright (C) 1988, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -720,6 +720,10 @@ static rtx maybe_get_pool_constant PARAMS ((rtx));
static rtx ix86_expand_int_compare PARAMS ((enum rtx_code, rtx, rtx));
static enum rtx_code ix86_prepare_fp_compare_args PARAMS ((enum rtx_code,
rtx *, rtx *));
+static bool ix86_fixed_condition_code_regs PARAMS ((unsigned int *,
+ unsigned int *));
+static enum machine_mode ix86_cc_modes_compatible PARAMS ((enum machine_mode,
+ enum machine_mode));
static rtx get_thread_pointer PARAMS ((void));
static void get_pc_thunk_name PARAMS ((char [32], unsigned int));
static rtx gen_push PARAMS ((rtx));
@@ -799,6 +803,7 @@ const struct attribute_spec ix86_attribute_table[];
static tree ix86_handle_cdecl_attribute PARAMS ((tree *, tree, tree, int, bool *));
static tree ix86_handle_regparm_attribute PARAMS ((tree *, tree, tree, int, bool *));
static int ix86_value_regno PARAMS ((enum machine_mode));
+static bool contains_128bit_aligned_vector_p PARAMS ((tree));
#if defined (DO_GLOBAL_CTORS_BODY) && defined (HAS_INIT_SECTION)
static void ix86_svr3_asm_out_constructor PARAMS ((rtx, int));
@@ -909,8 +914,19 @@ static enum x86_64_reg_class merge_classes PARAMS ((enum x86_64_reg_class,
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK x86_can_output_mi_thunk
+#undef TARGET_FIXED_CONDITION_CODE_REGS
+#define TARGET_FIXED_CONDITION_CODE_REGS ix86_fixed_condition_code_regs
+#undef TARGET_CC_MODES_COMPATIBLE
+#define TARGET_CC_MODES_COMPATIBLE ix86_cc_modes_compatible
+
struct gcc_target targetm = TARGET_INITIALIZER;
+/* The svr4 ABI for the i386 says that records and unions are returned
+ in memory. */
+#ifndef DEFAULT_PCC_STRUCT_RETURN
+#define DEFAULT_PCC_STRUCT_RETURN 1
+#endif
+
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
`OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -959,9 +975,10 @@ override_options ()
{
PTA_SSE = 1,
PTA_SSE2 = 2,
- PTA_MMX = 4,
- PTA_PREFETCH_SSE = 8,
- PTA_3DNOW = 16,
+ PTA_SSE3 = 4,
+ PTA_MMX = 8,
+ PTA_PREFETCH_SSE = 16,
+ PTA_3DNOW = 32,
PTA_3DNOW_A = 64
} flags;
}
@@ -979,8 +996,12 @@ override_options ()
{"pentiumpro", PROCESSOR_PENTIUMPRO, 0},
{"pentium2", PROCESSOR_PENTIUMPRO, PTA_MMX},
{"pentium3", PROCESSOR_PENTIUMPRO, PTA_MMX | PTA_SSE | PTA_PREFETCH_SSE},
- {"pentium4", PROCESSOR_PENTIUM4, PTA_SSE | PTA_SSE2 |
- PTA_MMX | PTA_PREFETCH_SSE},
+ {"pentium4", PROCESSOR_PENTIUM4, PTA_SSE | PTA_SSE2
+ | PTA_MMX | PTA_PREFETCH_SSE},
+ {"prescott", PROCESSOR_PENTIUM4, PTA_SSE | PTA_SSE2 | PTA_SSE3
+ | PTA_MMX | PTA_PREFETCH_SSE},
+ {"nocona", PROCESSOR_PENTIUM4, PTA_SSE | PTA_SSE2 | PTA_SSE3
+ | PTA_MMX | PTA_PREFETCH_SSE},
{"k6", PROCESSOR_K6, PTA_MMX},
{"k6-2", PROCESSOR_K6, PTA_MMX | PTA_3DNOW},
{"k6-3", PROCESSOR_K6, PTA_MMX | PTA_3DNOW},
@@ -988,6 +1009,7 @@ override_options ()
| PTA_3DNOW_A},
{"athlon-tbird", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE
| PTA_3DNOW | PTA_3DNOW_A},
+ {"x86-64", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_SSE},
{"athlon-4", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
| PTA_3DNOW_A | PTA_SSE},
{"athlon-xp", PROCESSOR_ATHLON, PTA_MMX | PTA_PREFETCH_SSE | PTA_3DNOW
@@ -1021,7 +1043,7 @@ override_options ()
if (flag_asynchronous_unwind_tables == 2)
flag_asynchronous_unwind_tables = 0;
if (flag_pcc_struct_return == 2)
- flag_pcc_struct_return = 1;
+ flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
}
#ifdef SUBTARGET_OVERRIDE_OPTIONS
@@ -1033,7 +1055,7 @@ override_options ()
if (!ix86_cpu_string)
ix86_cpu_string = cpu_names [TARGET_CPU_DEFAULT];
if (!ix86_arch_string)
- ix86_arch_string = TARGET_64BIT ? "athlon-4" : "i386";
+ ix86_arch_string = TARGET_64BIT ? "x86-64" : "i386";
if (ix86_cmodel_string != 0)
{
@@ -1097,6 +1119,9 @@ override_options ()
if (processor_alias_table[i].flags & PTA_SSE2
&& !(target_flags_explicit & MASK_SSE2))
target_flags |= MASK_SSE2;
+ if (processor_alias_table[i].flags & PTA_SSE3
+ && !(target_flags_explicit & MASK_SSE3))
+ target_flags |= MASK_SSE3;
if (processor_alias_table[i].flags & PTA_PREFETCH_SSE)
x86_prefetch_sse = true;
break;
@@ -1250,6 +1275,14 @@ override_options ()
if (x86_arch_always_fancy_math_387 & (1 << ix86_arch))
target_flags &= ~MASK_NO_FANCY_MATH_387;
+ /* Turn on SSE2 builtins for -msse3. */
+ if (TARGET_SSE3)
+ target_flags |= MASK_SSE2;
+
+ /* Turn on SSE builtins for -msse2. */
+ if (TARGET_SSE2)
+ target_flags |= MASK_SSE;
+
if (TARGET_64BIT)
{
if (TARGET_ALIGN_DOUBLE)
@@ -1881,6 +1914,8 @@ classify_argument (mode, type, classes, bit_offset)
mode_alignment = 128;
else if (mode == XCmode)
mode_alignment = 256;
+ if (COMPLEX_MODE_P (mode))
+ mode_alignment /= 2;
/* Misaligned fields are always returned in memory. */
if (bit_offset % mode_alignment)
return 0;
@@ -2062,7 +2097,8 @@ construct_container (mode, type, in_return, nintregs, nsseregs, intreg, sse_regn
default:
abort ();
}
- if (n == 2 && class[0] == X86_64_SSE_CLASS && class[1] == X86_64_SSEUP_CLASS)
+ if (n == 2 && class[0] == X86_64_SSE_CLASS && class[1] == X86_64_SSEUP_CLASS
+ && mode != BLKmode)
return gen_rtx_REG (mode, SSE_REGNO (sse_regno));
if (n == 2
&& class[0] == X86_64_X87_CLASS && class[1] == X86_64_X87UP_CLASS)
@@ -2074,7 +2110,8 @@ construct_container (mode, type, in_return, nintregs, nsseregs, intreg, sse_regn
return gen_rtx_REG (mode, intreg[0]);
if (n == 4
&& class[0] == X86_64_X87_CLASS && class[1] == X86_64_X87UP_CLASS
- && class[2] == X86_64_X87_CLASS && class[3] == X86_64_X87UP_CLASS)
+ && class[2] == X86_64_X87_CLASS && class[3] == X86_64_X87UP_CLASS
+ && mode != BLKmode)
return gen_rtx_REG (TCmode, FIRST_STACK_REG);
/* Otherwise figure out the entries of the PARALLEL. */
@@ -2252,6 +2289,9 @@ function_arg (cum, mode, type, named)
break;
case BLKmode:
+ if (bytes < 0)
+ break;
+ /* FALLTHRU */
case DImode:
case SImode:
case HImode:
@@ -2282,6 +2322,90 @@ function_arg (cum, mode, type, named)
return ret;
}
+/* Return true when TYPE should be 128bit aligned for 32bit argument passing
+ ABI */
+static bool
+contains_128bit_aligned_vector_p (type)
+ tree type;
+{
+ enum machine_mode mode = TYPE_MODE (type);
+ if (SSE_REG_MODE_P (mode)
+ && (!TYPE_USER_ALIGN (type) || TYPE_ALIGN (type) > 128))
+ return true;
+ if (TYPE_ALIGN (type) < 128)
+ return false;
+
+ if (AGGREGATE_TYPE_P (type))
+ {
+ /* Walk the agregates recursivly. */
+ if (TREE_CODE (type) == RECORD_TYPE
+ || TREE_CODE (type) == UNION_TYPE
+ || TREE_CODE (type) == QUAL_UNION_TYPE)
+ {
+ tree field;
+
+ if (TYPE_BINFO (type) != NULL
+ && TYPE_BINFO_BASETYPES (type) != NULL)
+ {
+ tree bases = TYPE_BINFO_BASETYPES (type);
+ int n_bases = TREE_VEC_LENGTH (bases);
+ int i;
+
+ for (i = 0; i < n_bases; ++i)
+ {
+ tree binfo = TREE_VEC_ELT (bases, i);
+ tree type = BINFO_TYPE (binfo);
+
+ if (contains_128bit_aligned_vector_p (type))
+ return true;
+ }
+ }
+ /* And now merge the fields of structure. */
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ {
+ if (TREE_CODE (field) == FIELD_DECL
+ && contains_128bit_aligned_vector_p (TREE_TYPE (field)))
+ return true;
+ }
+ }
+ /* Just for use if some languages passes arrays by value. */
+ else if (TREE_CODE (type) == ARRAY_TYPE)
+ {
+ if (contains_128bit_aligned_vector_p (TREE_TYPE (type)))
+ return true;
+ }
+ else
+ abort ();
+ }
+ return false;
+}
+
+/* A C expression that indicates when an argument must be passed by
+ reference. If nonzero for an argument, a copy of that argument is
+ made in memory and a pointer to the argument is passed instead of
+ the argument itself. The pointer is passed in whatever way is
+ appropriate for passing a pointer to that type. */
+
+int
+function_arg_pass_by_reference (cum, mode, type, named)
+ CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+ tree type;
+ int named ATTRIBUTE_UNUSED;
+{
+ if (!TARGET_64BIT)
+ return 0;
+
+ if (type && int_size_in_bytes (type) == -1)
+ {
+ if (TARGET_DEBUG_ARG)
+ fprintf (stderr, "function_arg_pass_by_reference\n");
+ return 1;
+ }
+
+ return 0;
+}
+
/* Gives the alignment boundary, in bits, of an argument with the specified mode
and type. */
@@ -2291,14 +2415,34 @@ ix86_function_arg_boundary (mode, type)
tree type;
{
int align;
- if (!TARGET_64BIT)
- return PARM_BOUNDARY;
if (type)
align = TYPE_ALIGN (type);
else
align = GET_MODE_ALIGNMENT (mode);
if (align < PARM_BOUNDARY)
align = PARM_BOUNDARY;
+ if (!TARGET_64BIT)
+ {
+ /* i386 ABI defines all arguments to be 4 byte aligned. We have to
+ make an exception for SSE modes since these require 128bit
+ alignment.
+
+ The handling here differs from field_alignment. ICC aligns MMX
+ arguments to 4 byte boundaries, while structure fields are aligned
+ to 8 byte boundaries. */
+ if (!type)
+ {
+ if (!SSE_REG_MODE_P (mode))
+ align = PARM_BOUNDARY;
+ }
+ else
+ {
+ if (!contains_128bit_aligned_vector_p (type))
+ align = PARM_BOUNDARY;
+ }
+ if (align != PARM_BOUNDARY && !TARGET_SSE)
+ abort();
+ }
if (align > 128)
align = 128;
return align;
@@ -2349,23 +2493,55 @@ int
ix86_return_in_memory (type)
tree type;
{
- int needed_intregs, needed_sseregs;
+ int needed_intregs, needed_sseregs, size;
+ enum machine_mode mode = TYPE_MODE (type);
+
if (TARGET_64BIT)
+ return !examine_argument (mode, type, 1, &needed_intregs, &needed_sseregs);
+
+ if (mode == BLKmode)
+ return 1;
+
+ size = int_size_in_bytes (type);
+
+ if (VECTOR_MODE_P (mode) || mode == TImode)
{
- return !examine_argument (TYPE_MODE (type), type, 1,
- &needed_intregs, &needed_sseregs);
- }
- else
- {
- if (TYPE_MODE (type) == BLKmode
- || (VECTOR_MODE_P (TYPE_MODE (type))
- && int_size_in_bytes (type) == 8)
- || (int_size_in_bytes (type) > 12 && TYPE_MODE (type) != TImode
- && TYPE_MODE (type) != TFmode
- && !VECTOR_MODE_P (TYPE_MODE (type))))
+ /* User-created vectors small enough to fit in EAX. */
+ if (size < 8)
+ return 0;
+
+ /* MMX/3dNow values are returned on the stack, since we've
+ got to EMMS/FEMMS before returning. */
+ if (size == 8)
return 1;
- return 0;
+
+ /* SSE values are returned in XMM0. */
+ /* ??? Except when it doesn't exist? We have a choice of
+ either (1) being abi incompatible with a -march switch,
+ or (2) generating an error here. Given no good solution,
+ I think the safest thing is one warning. The user won't
+ be able to use -Werror, but... */
+ if (size == 16)
+ {
+ static bool warned;
+
+ if (TARGET_SSE)
+ return 0;
+
+ if (!warned)
+ {
+ warned = true;
+ warning ("SSE vector return without SSE enabled changes the ABI");
+ }
+ return 1;
+ }
}
+
+ if (mode == TFmode)
+ return 0;
+ if (size > 12)
+ return 1;
+ return 0;
}
/* Define how to find the value returned by a library function
@@ -2400,10 +2576,14 @@ static int
ix86_value_regno (mode)
enum machine_mode mode;
{
+ /* Floating point return values in %st(0). */
if (GET_MODE_CLASS (mode) == MODE_FLOAT && TARGET_FLOAT_RETURNS_IN_80387)
return FIRST_FLOAT_REG;
- if (mode == TImode || VECTOR_MODE_P (mode))
+ /* 16-byte vector modes in %xmm0. See ix86_return_in_memory for where
+ we prevent this case when sse is not available. */
+ if (mode == TImode || (VECTOR_MODE_P (mode) && GET_MODE_SIZE (mode) == 16))
return FIRST_SSE_REG;
+ /* Everything else in %eax. */
return 0;
}
@@ -2488,6 +2668,8 @@ ix86_setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl)
/* Indicate to allocate space on the stack for varargs save area. */
ix86_save_varrargs_registers = 1;
+ cfun->stack_alignment_needed = 128;
+
fntype = TREE_TYPE (current_function_decl);
stdarg_p = (TYPE_ARG_TYPES (fntype) != 0
&& (TREE_VALUE (tree_last (TYPE_ARG_TYPES (fntype)))
@@ -2637,6 +2819,7 @@ ix86_va_arg (valist, type)
rtx lab_false, lab_over = NULL_RTX;
rtx addr_rtx, r;
rtx container;
+ int indirect_p = 0;
/* Only 64bit target needs something special. */
if (!TARGET_64BIT)
@@ -2656,6 +2839,13 @@ ix86_va_arg (valist, type)
sav = build (COMPONENT_REF, TREE_TYPE (f_sav), valist, f_sav);
size = int_size_in_bytes (type);
+ if (size == -1)
+ {
+ /* Passed by reference. */
+ indirect_p = 1;
+ type = build_pointer_type (type);
+ size = int_size_in_bytes (type);
+ }
rsize = (size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
container = construct_container (TYPE_MODE (type), type, 0,
@@ -2760,10 +2950,12 @@ ix86_va_arg (valist, type)
{
int i;
rtx mem;
+ rtx x;
/* Never use the memory itself, as it has the alias set. */
- addr_rtx = XEXP (assign_temp (type, 0, 1, 0), 0);
- mem = gen_rtx_MEM (BLKmode, addr_rtx);
+ x = XEXP (assign_temp (type, 0, 1, 0), 0);
+ mem = gen_rtx_MEM (BLKmode, x);
+ force_operand (x, addr_rtx);
set_mem_alias_set (mem, get_varargs_alias_set ());
set_mem_align (mem, BITS_PER_UNIT);
@@ -2846,6 +3038,13 @@ ix86_va_arg (valist, type)
if (container)
emit_label (lab_over);
+ if (indirect_p)
+ {
+ r = gen_rtx_MEM (Pmode, addr_rtx);
+ set_mem_alias_set (r, get_varargs_alias_set ());
+ emit_move_insn (addr_rtx, r);
+ }
+
return addr_rtx;
}
@@ -2945,6 +3144,29 @@ x86_64_movabs_operand (op, mode)
return 0;
}
+/* Return nonzero if OPNUM's MEM should be matched
+ in movabs* patterns. */
+
+int
+ix86_check_movabs (insn, opnum)
+ rtx insn;
+ int opnum;
+{
+ rtx set, mem;
+
+ set = PATTERN (insn);
+ if (GET_CODE (set) == PARALLEL)
+ set = XVECEXP (set, 0, 0);
+ if (GET_CODE (set) != SET)
+ abort ();
+ mem = XEXP (set, opnum);
+ while (GET_CODE (mem) == SUBREG)
+ mem = SUBREG_REG (mem);
+ if (GET_CODE (mem) != MEM)
+ abort ();
+ return (volatile_ok || !MEM_VOLATILE_P (mem));
+}
+
/* Return nonzero if OP is nonmemory operand representable on x86_64. */
int
@@ -3387,6 +3609,20 @@ q_regs_operand (op, mode)
return ANY_QI_REG_P (op);
}
+/* Return true if op is an flags register. */
+
+int
+flags_reg_operand (op, mode)
+ register rtx op;
+ enum machine_mode mode;
+{
+ if (mode != VOIDmode && GET_MODE (op) != mode)
+ return 0;
+ return (GET_CODE (op) == REG
+ && REGNO (op) == FLAGS_REG
+ && GET_MODE (op) != VOIDmode);
+}
+
/* Return true if op is a NON_Q_REGS class register. */
int
@@ -3401,6 +3637,19 @@ non_q_regs_operand (op, mode)
return NON_QI_REG_P (op);
}
+/* Return 1 when OP is operand acceptable for standard SSE move. */
+int
+vector_move_operand (op, mode)
+ rtx op;
+ enum machine_mode mode;
+{
+ if (nonimmediate_operand (op, mode))
+ return 1;
+ if (GET_MODE (op) != mode && mode != VOIDmode)
+ return 0;
+ return (op == CONST0_RTX (GET_MODE (op)));
+}
+
/* Return 1 if OP is a comparison that can be used in the CMPSS/CMPPS
insns. */
int
@@ -3712,11 +3961,6 @@ aligned_operand (op, mode)
if (! ix86_decompose_address (op, &parts))
abort ();
- if (parts.base && GET_CODE (parts.base) == SUBREG)
- parts.base = SUBREG_REG (parts.base);
- if (parts.index && GET_CODE (parts.index) == SUBREG)
- parts.index = SUBREG_REG (parts.index);
-
/* Look for some component that isn't known to be aligned. */
if (parts.index)
{
@@ -3739,6 +3983,14 @@ aligned_operand (op, mode)
/* Didn't find one -- this must be an aligned address. */
return 1;
}
+
+int
+compare_operator (op, mode)
+ rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return GET_CODE (op) == COMPARE;
+}
/* Return true if the constant is something that can be loaded with
a special instruction. Only handle 0.0 and 1.0; others are less
@@ -4061,7 +4313,7 @@ ix86_setup_frame_addresses ()
cfun->machine->accesses_prev_frame = 1;
}
-#if defined(HAVE_GAS_HIDDEN) && defined(SUPPORTS_ONE_ONLY)
+#if defined(HAVE_GAS_HIDDEN) && (defined(SUPPORTS_ONE_ONLY) && SUPPORTS_ONE_ONLY)
# define USE_HIDDEN_LINKONCE 1
#else
# define USE_HIDDEN_LINKONCE 0
@@ -4133,6 +4385,10 @@ ix86_asm_file_end (file)
output_asm_insn ("mov{l}\t{%1, %0|%0, %1}", xops);
output_asm_insn ("ret", xops);
}
+
+#ifdef SUBTARGET_FILE_END
+ SUBTARGET_FILE_END (file);
+#endif
}
/* Emit code for the SET_GOT patterns. */
@@ -4225,7 +4481,8 @@ ix86_save_reg (regno, maybe_eh_return)
&& regno == REAL_PIC_OFFSET_TABLE_REGNUM
&& (regs_ever_live[REAL_PIC_OFFSET_TABLE_REGNUM]
|| current_function_profile
- || current_function_calls_eh_return))
+ || current_function_calls_eh_return
+ || current_function_uses_const_pool))
{
if (ix86_select_alt_pic_regnum () != INVALID_REGNUM)
return 0;
@@ -4354,8 +4611,12 @@ ix86_compute_frame_layout (frame)
offset += size;
/* Add outgoing arguments area. Can be skipped if we eliminated
- all the function calls as dead code. */
- if (ACCUMULATE_OUTGOING_ARGS && !current_function_is_leaf)
+ all the function calls as dead code.
+ Skipping is however impossible when function calls alloca. Alloca
+ expander assumes that last current_function_outgoing_args_size
+ of stack frame are unused. */
+ if (ACCUMULATE_OUTGOING_ARGS
+ && (!current_function_is_leaf || current_function_calls_alloca))
{
offset += current_function_outgoing_args_size;
frame->outgoing_arguments_size = current_function_outgoing_args_size;
@@ -4516,6 +4777,10 @@ ix86_expand_prologue ()
CALL_INSN_FUNCTION_USAGE (insn)
= gen_rtx_EXPR_LIST (VOIDmode, gen_rtx_USE (VOIDmode, arg0),
CALL_INSN_FUNCTION_USAGE (insn));
+
+ /* Don't allow scheduling pass to move insns across __alloca
+ call. */
+ emit_insn (gen_blockage (const0_rtx));
}
if (use_mov)
{
@@ -4778,7 +5043,7 @@ ix86_decompose_address (addr, out)
rtx scale_rtx = NULL_RTX;
int retval = 1;
- if (REG_P (addr) || GET_CODE (addr) == SUBREG)
+ if (GET_CODE (addr) == REG || GET_CODE (addr) == SUBREG)
base = addr;
else if (GET_CODE (addr) == PLUS)
{
@@ -4905,11 +5170,6 @@ ix86_address_cost (x)
if (!ix86_decompose_address (x, &parts))
abort ();
- if (parts.base && GET_CODE (parts.base) == SUBREG)
- parts.base = SUBREG_REG (parts.base);
- if (parts.index && GET_CODE (parts.index) == SUBREG)
- parts.index = SUBREG_REG (parts.index);
-
/* More complex memory references are better. */
if (parts.disp && parts.disp != const0_rtx)
cost--;
@@ -5282,15 +5542,9 @@ legitimate_address_p (mode, addr, strict)
if (base)
{
- rtx reg;
reason_rtx = base;
- if (GET_CODE (base) == SUBREG)
- reg = SUBREG_REG (base);
- else
- reg = base;
-
- if (GET_CODE (reg) != REG)
+ if (GET_CODE (base) != REG)
{
reason = "base is not a register";
goto report_error;
@@ -5302,8 +5556,8 @@ legitimate_address_p (mode, addr, strict)
goto report_error;
}
- if ((strict && ! REG_OK_FOR_BASE_STRICT_P (reg))
- || (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (reg)))
+ if ((strict && ! REG_OK_FOR_BASE_STRICT_P (base))
+ || (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (base)))
{
reason = "base is not valid";
goto report_error;
@@ -5318,15 +5572,9 @@ legitimate_address_p (mode, addr, strict)
if (index)
{
- rtx reg;
reason_rtx = index;
- if (GET_CODE (index) == SUBREG)
- reg = SUBREG_REG (index);
- else
- reg = index;
-
- if (GET_CODE (reg) != REG)
+ if (GET_CODE (index) != REG)
{
reason = "index is not a register";
goto report_error;
@@ -5338,8 +5586,8 @@ legitimate_address_p (mode, addr, strict)
goto report_error;
}
- if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (reg))
- || (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (reg)))
+ if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (index))
+ || (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (index)))
{
reason = "index is not valid";
goto report_error;
@@ -6527,8 +6775,8 @@ get_some_local_dynamic_name_1 (px, data)
C -- print opcode suffix for set/cmov insn.
c -- like C, but print reversed condition
F,f -- likewise, but for floating-point.
- O -- if CMOV_SUN_AS_SYNTAX, expand to "w.", "l." or "q.", otherwise
- nothing
+ O -- if HAVE_AS_IX86_CMOV_SUN_SYNTAX, expand to "w.", "l." or "q.",
+ otherwise nothing
R -- print the prefix for register names.
z -- print the opcode suffix for the size of the current operand.
* -- print a star (in certain assembler syntax)
@@ -6732,7 +6980,7 @@ print_operand (file, x, code)
}
return;
case 'O':
-#ifdef CMOV_SUN_AS_SYNTAX
+#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
{
switch (GET_MODE (x))
@@ -6752,7 +7000,7 @@ print_operand (file, x, code)
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 0, 0, file);
return;
case 'F':
-#ifdef CMOV_SUN_AS_SYNTAX
+#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
#endif
@@ -6771,7 +7019,7 @@ print_operand (file, x, code)
put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 1, 0, file);
return;
case 'f':
-#ifdef CMOV_SUN_AS_SYNTAX
+#ifdef HAVE_AS_IX86_CMOV_SUN_SYNTAX
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('.', file);
#endif
@@ -7484,12 +7732,12 @@ output_fp_compare (insn, operands, eflags_p, unordered_p)
if (unordered_p)
return "ucomiss\t{%1, %0|%0, %1}";
else
- return "comiss\t{%1, %0|%0, %y}";
+ return "comiss\t{%1, %0|%0, %1}";
else
if (unordered_p)
return "ucomisd\t{%1, %0|%0, %1}";
else
- return "comisd\t{%1, %0|%0, %y}";
+ return "comisd\t{%1, %0|%0, %1}";
}
if (! STACK_TOP_P (cmp_op0))
@@ -7777,9 +8025,17 @@ ix86_expand_move (mode, operands)
if (strict)
;
- else if (GET_CODE (op1) == CONST_DOUBLE
- && register_operand (op0, mode))
- op1 = validize_mem (force_const_mem (mode, op1));
+ else if (GET_CODE (op1) == CONST_DOUBLE)
+ {
+ op1 = validize_mem (force_const_mem (mode, op1));
+ if (!register_operand (op0, mode))
+ {
+ rtx temp = gen_reg_rtx (mode);
+ emit_insn (gen_rtx_SET (VOIDmode, temp, op1));
+ emit_move_insn (op0, temp);
+ return;
+ }
+ }
}
}
@@ -7799,8 +8055,12 @@ ix86_expand_vector_move (mode, operands)
to handle some of them more efficiently. */
if ((reload_in_progress | reload_completed) == 0
&& register_operand (operands[0], mode)
- && CONSTANT_P (operands[1]))
- operands[1] = force_const_mem (mode, operands[1]);
+ && CONSTANT_P (operands[1]) && operands[1] != CONST0_RTX (mode))
+ {
+ operands[1] = force_const_mem (mode, operands[1]);
+ emit_move_insn (operands[0], operands[1]);
+ return;
+ }
/* Make operand1 a register if it isn't already. */
if (!no_new_pseudos
@@ -8150,6 +8410,68 @@ ix86_cc_mode (code, op0, op1)
}
}
+/* Return the fixed registers used for condition codes. */
+
+static bool
+ix86_fixed_condition_code_regs (p1, p2)
+ unsigned int *p1;
+ unsigned int *p2;
+{
+ *p1 = FLAGS_REG;
+ *p2 = FPSR_REG;
+ return true;
+}
+
+/* If two condition code modes are compatible, return a condition code
+ mode which is compatible with both. Otherwise, return
+ VOIDmode. */
+
+static enum machine_mode
+ix86_cc_modes_compatible (m1, m2)
+ enum machine_mode m1;
+ enum machine_mode m2;
+{
+ if (m1 == m2)
+ return m1;
+
+ if (GET_MODE_CLASS (m1) != MODE_CC || GET_MODE_CLASS (m2) != MODE_CC)
+ return VOIDmode;
+
+ if ((m1 == CCGCmode && m2 == CCGOCmode)
+ || (m1 == CCGOCmode && m2 == CCGCmode))
+ return CCGCmode;
+
+ switch (m1)
+ {
+ default:
+ abort ();
+
+ case CCmode:
+ case CCGCmode:
+ case CCGOCmode:
+ case CCNOmode:
+ case CCZmode:
+ switch (m2)
+ {
+ default:
+ return VOIDmode;
+
+ case CCmode:
+ case CCGCmode:
+ case CCGOCmode:
+ case CCNOmode:
+ case CCZmode:
+ return CCmode;
+ }
+
+ case CCFPmode:
+ case CCFPUmode:
+ /* These are only compatible with themselves, which we already
+ checked above. */
+ return VOIDmode;
+ }
+}
+
/* Return true if we should use an FCOMI instruction for this fp comparison. */
int
@@ -9219,11 +9541,11 @@ ix86_expand_int_movcc (operands)
/* On x86_64 the lea instruction operates on Pmode, so we need
to get arithmetics done in proper mode to match. */
if (diff == 1)
- tmp = out;
+ tmp = copy_rtx (out);
else
{
rtx out1;
- out1 = out;
+ out1 = copy_rtx (out);
tmp = gen_rtx_MULT (mode, out1, GEN_INT (diff & ~1));
nops++;
if (diff & 1)
@@ -9241,9 +9563,9 @@ ix86_expand_int_movcc (operands)
&& (GET_CODE (tmp) != SUBREG || SUBREG_REG (tmp) != out))
{
if (nops == 1)
- out = force_operand (tmp, out);
+ out = force_operand (tmp, copy_rtx (out));
else
- emit_insn (gen_rtx_SET (VOIDmode, out, tmp));
+ emit_insn (gen_rtx_SET (VOIDmode, copy_rtx (out), copy_rtx (tmp)));
}
if (out != operands[0])
emit_move_insn (operands[0], copy_rtx (out));
@@ -9822,15 +10144,24 @@ ix86_split_long_move (operands)
Do an lea to the last part and use only one colliding move. */
else if (collisions > 1)
{
+ rtx base;
+
collisions = 1;
- emit_insn (gen_rtx_SET (VOIDmode, part[0][nparts - 1],
- XEXP (part[1][0], 0)));
- part[1][0] = change_address (part[1][0],
- TARGET_64BIT ? DImode : SImode,
- part[0][nparts - 1]);
- part[1][1] = adjust_address (part[1][0], VOIDmode, UNITS_PER_WORD);
+
+ base = part[0][nparts - 1];
+
+ /* Handle the case when the last part isn't valid for lea.
+ Happens in 64-bit mode storing the 12-byte XFmode. */
+ if (GET_MODE (base) != Pmode)
+ base = gen_rtx_REG (Pmode, REGNO (base));
+
+ emit_insn (gen_rtx_SET (VOIDmode, base, XEXP (part[1][0], 0)));
+ part[1][0] = replace_equiv_address (part[1][0], base);
+ part[1][1] = replace_equiv_address (part[1][1],
+ plus_constant (base, UNITS_PER_WORD));
if (nparts == 3)
- part[1][2] = adjust_address (part[1][0], VOIDmode, 8);
+ part[1][2] = replace_equiv_address (part[1][2],
+ plus_constant (base, 8));
}
}
@@ -10952,10 +11283,15 @@ memory_address_length (addr)
disp = parts.disp;
len = 0;
+ /* Rule of thumb:
+ - esp as the base always wants an index,
+ - ebp as the base always wants a displacement. */
+
/* Register Indirect. */
if (base && !index && !disp)
{
- /* Special cases: ebp and esp need the two-byte modrm form. */
+ /* esp (for its index) and ebp (for its displacement) need
+ the two-byte modrm form. */
if (addr == stack_pointer_rtx
|| addr == arg_pointer_rtx
|| addr == frame_pointer_rtx
@@ -10973,14 +11309,22 @@ memory_address_length (addr)
if (disp)
{
if (GET_CODE (disp) == CONST_INT
- && CONST_OK_FOR_LETTER_P (INTVAL (disp), 'K'))
+ && CONST_OK_FOR_LETTER_P (INTVAL (disp), 'K')
+ && base)
len = 1;
else
len = 4;
}
+ /* ebp always wants a displacement. */
+ else if (base == hard_frame_pointer_rtx)
+ len = 1;
- /* An index requires the two-byte modrm form. */
- if (index)
+ /* An index requires the two-byte modrm form... */
+ if (index
+ /* ...like esp, which always wants an index. */
+ || base == stack_pointer_rtx
+ || base == arg_pointer_rtx
+ || base == frame_pointer_rtx)
len += 1;
}
@@ -11036,6 +11380,26 @@ ix86_attr_length_address_default (insn)
rtx insn;
{
int i;
+
+ if (get_attr_type (insn) == TYPE_LEA)
+ {
+ rtx set = PATTERN (insn);
+ if (GET_CODE (set) == SET)
+ ;
+ else if (GET_CODE (set) == PARALLEL
+ && GET_CODE (XVECEXP (set, 0, 0)) == SET)
+ set = XVECEXP (set, 0, 0);
+ else
+ {
+#ifdef ENABLE_CHECKING
+ abort ();
+#endif
+ return 0;
+ }
+
+ return memory_address_length (SET_SRC (set));
+ }
+
extract_insn_cached (insn);
for (i = recog_data.n_operands - 1; i >= 0; --i)
if (GET_CODE (recog_data.operand[i]) == MEM)
@@ -11834,7 +12198,8 @@ x86_initialize_trampoline (tramp, fnaddr, cxt)
#define def_builtin(MASK, NAME, TYPE, CODE) \
do { \
- if ((MASK) & target_flags) \
+ if ((MASK) & target_flags \
+ && (!((MASK) & MASK_64BIT) || TARGET_64BIT)) \
builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, \
NULL, NULL_TREE); \
} while (0)
@@ -11849,23 +12214,20 @@ struct builtin_description
const unsigned int flag;
};
-/* Used for builtins that are enabled both by -msse and -msse2. */
-#define MASK_SSE1 (MASK_SSE | MASK_SSE2)
-
static const struct builtin_description bdesc_comi[] =
{
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comieq", IX86_BUILTIN_COMIEQSS, UNEQ, 0 },
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comilt", IX86_BUILTIN_COMILTSS, UNLT, 0 },
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comile", IX86_BUILTIN_COMILESS, UNLE, 0 },
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comigt", IX86_BUILTIN_COMIGTSS, GT, 0 },
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comige", IX86_BUILTIN_COMIGESS, GE, 0 },
- { MASK_SSE1, CODE_FOR_sse_comi, "__builtin_ia32_comineq", IX86_BUILTIN_COMINEQSS, LTGT, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomieq", IX86_BUILTIN_UCOMIEQSS, UNEQ, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomilt", IX86_BUILTIN_UCOMILTSS, UNLT, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomile", IX86_BUILTIN_UCOMILESS, UNLE, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomigt", IX86_BUILTIN_UCOMIGTSS, GT, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomige", IX86_BUILTIN_UCOMIGESS, GE, 0 },
- { MASK_SSE1, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomineq", IX86_BUILTIN_UCOMINEQSS, LTGT, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comieq", IX86_BUILTIN_COMIEQSS, UNEQ, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comilt", IX86_BUILTIN_COMILTSS, UNLT, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comile", IX86_BUILTIN_COMILESS, UNLE, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comigt", IX86_BUILTIN_COMIGTSS, GT, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comige", IX86_BUILTIN_COMIGESS, GE, 0 },
+ { MASK_SSE, CODE_FOR_sse_comi, "__builtin_ia32_comineq", IX86_BUILTIN_COMINEQSS, LTGT, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomieq", IX86_BUILTIN_UCOMIEQSS, UNEQ, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomilt", IX86_BUILTIN_UCOMILTSS, UNLT, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomile", IX86_BUILTIN_UCOMILESS, UNLE, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomigt", IX86_BUILTIN_UCOMIGTSS, GT, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomige", IX86_BUILTIN_UCOMIGESS, GE, 0 },
+ { MASK_SSE, CODE_FOR_sse_ucomi, "__builtin_ia32_ucomineq", IX86_BUILTIN_UCOMINEQSS, LTGT, 0 },
{ MASK_SSE2, CODE_FOR_sse2_comi, "__builtin_ia32_comisdeq", IX86_BUILTIN_COMIEQSD, UNEQ, 0 },
{ MASK_SSE2, CODE_FOR_sse2_comi, "__builtin_ia32_comisdlt", IX86_BUILTIN_COMILTSD, UNLT, 0 },
{ MASK_SSE2, CODE_FOR_sse2_comi, "__builtin_ia32_comisdle", IX86_BUILTIN_COMILESD, UNLE, 0 },
@@ -11883,59 +12245,61 @@ static const struct builtin_description bdesc_comi[] =
static const struct builtin_description bdesc_2arg[] =
{
/* SSE */
- { MASK_SSE1, CODE_FOR_addv4sf3, "__builtin_ia32_addps", IX86_BUILTIN_ADDPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_subv4sf3, "__builtin_ia32_subps", IX86_BUILTIN_SUBPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_mulv4sf3, "__builtin_ia32_mulps", IX86_BUILTIN_MULPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_divv4sf3, "__builtin_ia32_divps", IX86_BUILTIN_DIVPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmaddv4sf3, "__builtin_ia32_addss", IX86_BUILTIN_ADDSS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmsubv4sf3, "__builtin_ia32_subss", IX86_BUILTIN_SUBSS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmmulv4sf3, "__builtin_ia32_mulss", IX86_BUILTIN_MULSS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmdivv4sf3, "__builtin_ia32_divss", IX86_BUILTIN_DIVSS, 0, 0 },
-
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpeqps", IX86_BUILTIN_CMPEQPS, EQ, 0 },
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpltps", IX86_BUILTIN_CMPLTPS, LT, 0 },
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpleps", IX86_BUILTIN_CMPLEPS, LE, 0 },
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpgtps", IX86_BUILTIN_CMPGTPS, LT, 1 },
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpgeps", IX86_BUILTIN_CMPGEPS, LE, 1 },
- { MASK_SSE1, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpunordps", IX86_BUILTIN_CMPUNORDPS, UNORDERED, 0 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpneqps", IX86_BUILTIN_CMPNEQPS, EQ, 0 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpnltps", IX86_BUILTIN_CMPNLTPS, LT, 0 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpnleps", IX86_BUILTIN_CMPNLEPS, LE, 0 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpngtps", IX86_BUILTIN_CMPNGTPS, LT, 1 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpngeps", IX86_BUILTIN_CMPNGEPS, LE, 1 },
- { MASK_SSE1, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpordps", IX86_BUILTIN_CMPORDPS, UNORDERED, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpeqss", IX86_BUILTIN_CMPEQSS, EQ, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpltss", IX86_BUILTIN_CMPLTSS, LT, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpless", IX86_BUILTIN_CMPLESS, LE, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskcmpv4sf3, "__builtin_ia32_cmpunordss", IX86_BUILTIN_CMPUNORDSS, UNORDERED, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpneqss", IX86_BUILTIN_CMPNEQSS, EQ, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnltss", IX86_BUILTIN_CMPNLTSS, LT, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpnless", IX86_BUILTIN_CMPNLESS, LE, 0 },
- { MASK_SSE1, CODE_FOR_vmmaskncmpv4sf3, "__builtin_ia32_cmpordss", IX86_BUILTIN_CMPORDSS, UNORDERED, 0 },
-
- { MASK_SSE1, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_smaxv4sf3, "__builtin_ia32_maxps", IX86_BUILTIN_MAXPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmsminv4sf3, "__builtin_ia32_minss", IX86_BUILTIN_MINSS, 0, 0 },
- { MASK_SSE1, CODE_FOR_vmsmaxv4sf3, "__builtin_ia32_maxss", IX86_BUILTIN_MAXSS, 0, 0 },
-
- { MASK_SSE1, CODE_FOR_sse_andv4sf3, "__builtin_ia32_andps", IX86_BUILTIN_ANDPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_nandv4sf3, "__builtin_ia32_andnps", IX86_BUILTIN_ANDNPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_iorv4sf3, "__builtin_ia32_orps", IX86_BUILTIN_ORPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_xorv4sf3, "__builtin_ia32_xorps", IX86_BUILTIN_XORPS, 0, 0 },
-
- { MASK_SSE1, CODE_FOR_sse_movss, "__builtin_ia32_movss", IX86_BUILTIN_MOVSS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_movhlps, "__builtin_ia32_movhlps", IX86_BUILTIN_MOVHLPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_movlhps, "__builtin_ia32_movlhps", IX86_BUILTIN_MOVLHPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_unpckhps, "__builtin_ia32_unpckhps", IX86_BUILTIN_UNPCKHPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_unpcklps, "__builtin_ia32_unpcklps", IX86_BUILTIN_UNPCKLPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_addv4sf3, "__builtin_ia32_addps", IX86_BUILTIN_ADDPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_subv4sf3, "__builtin_ia32_subps", IX86_BUILTIN_SUBPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_mulv4sf3, "__builtin_ia32_mulps", IX86_BUILTIN_MULPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_divv4sf3, "__builtin_ia32_divps", IX86_BUILTIN_DIVPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmaddv4sf3, "__builtin_ia32_addss", IX86_BUILTIN_ADDSS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmsubv4sf3, "__builtin_ia32_subss", IX86_BUILTIN_SUBSS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmmulv4sf3, "__builtin_ia32_mulss", IX86_BUILTIN_MULSS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmdivv4sf3, "__builtin_ia32_divss", IX86_BUILTIN_DIVSS, 0, 0 },
+
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpeqps", IX86_BUILTIN_CMPEQPS, EQ, 0 },
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpltps", IX86_BUILTIN_CMPLTPS, LT, 0 },
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpleps", IX86_BUILTIN_CMPLEPS, LE, 0 },
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpgtps", IX86_BUILTIN_CMPGTPS, LT, 1 },
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpgeps", IX86_BUILTIN_CMPGEPS, LE, 1 },
+ { MASK_SSE, CODE_FOR_maskcmpv4sf3, "__builtin_ia32_cmpunordps", IX86_BUILTIN_CMPUNORDPS, UNORDERED, 0 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpneqps", IX86_BUILTIN_CMPNEQPS, EQ, 0 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpnltps", IX86_BUILTIN_CMPNLTPS, LT, 0 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpnleps", IX86_BUILTIN_CMPNLEPS, LE, 0 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpngtps", IX86_BUILTIN_CMPNGTPS, LT, 1 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpngeps", IX86_BUILTIN_CMPNGEPS, LE, 1 },
+ { MASK_SSE, CODE_FOR_maskncmpv4sf3, "__builtin_ia32_cmpordps", IX86_BUILTIN_CMPORDPS, UNORDERED, 0 },
+ { 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_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_cmpordss", IX86_BUILTIN_CMPORDSS, UNORDERED, 0 },
+
+ { MASK_SSE, CODE_FOR_sminv4sf3, "__builtin_ia32_minps", IX86_BUILTIN_MINPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_smaxv4sf3, "__builtin_ia32_maxps", IX86_BUILTIN_MAXPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmsminv4sf3, "__builtin_ia32_minss", IX86_BUILTIN_MINSS, 0, 0 },
+ { MASK_SSE, CODE_FOR_vmsmaxv4sf3, "__builtin_ia32_maxss", IX86_BUILTIN_MAXSS, 0, 0 },
+
+ { MASK_SSE, CODE_FOR_sse_andv4sf3, "__builtin_ia32_andps", IX86_BUILTIN_ANDPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_nandv4sf3, "__builtin_ia32_andnps", IX86_BUILTIN_ANDNPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_iorv4sf3, "__builtin_ia32_orps", IX86_BUILTIN_ORPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_xorv4sf3, "__builtin_ia32_xorps", IX86_BUILTIN_XORPS, 0, 0 },
+
+ { MASK_SSE, CODE_FOR_sse_movss, "__builtin_ia32_movss", IX86_BUILTIN_MOVSS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_movhlps, "__builtin_ia32_movhlps", IX86_BUILTIN_MOVHLPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_movlhps, "__builtin_ia32_movlhps", IX86_BUILTIN_MOVLHPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_unpckhps, "__builtin_ia32_unpckhps", IX86_BUILTIN_UNPCKHPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_unpcklps, "__builtin_ia32_unpcklps", IX86_BUILTIN_UNPCKLPS, 0, 0 },
/* MMX */
{ MASK_MMX, CODE_FOR_addv8qi3, "__builtin_ia32_paddb", IX86_BUILTIN_PADDB, 0, 0 },
{ MASK_MMX, CODE_FOR_addv4hi3, "__builtin_ia32_paddw", IX86_BUILTIN_PADDW, 0, 0 },
{ MASK_MMX, CODE_FOR_addv2si3, "__builtin_ia32_paddd", IX86_BUILTIN_PADDD, 0, 0 },
+ { MASK_MMX, CODE_FOR_mmx_adddi3, "__builtin_ia32_paddq", IX86_BUILTIN_PADDQ, 0, 0 },
{ MASK_MMX, CODE_FOR_subv8qi3, "__builtin_ia32_psubb", IX86_BUILTIN_PSUBB, 0, 0 },
{ MASK_MMX, CODE_FOR_subv4hi3, "__builtin_ia32_psubw", IX86_BUILTIN_PSUBW, 0, 0 },
{ MASK_MMX, CODE_FOR_subv2si3, "__builtin_ia32_psubd", IX86_BUILTIN_PSUBD, 0, 0 },
+ { MASK_MMX, CODE_FOR_mmx_subdi3, "__builtin_ia32_psubq", IX86_BUILTIN_PSUBQ, 0, 0 },
{ MASK_MMX, CODE_FOR_ssaddv8qi3, "__builtin_ia32_paddsb", IX86_BUILTIN_PADDSB, 0, 0 },
{ MASK_MMX, CODE_FOR_ssaddv4hi3, "__builtin_ia32_paddsw", IX86_BUILTIN_PADDSW, 0, 0 },
@@ -11948,15 +12312,15 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_MMX, CODE_FOR_mulv4hi3, "__builtin_ia32_pmullw", IX86_BUILTIN_PMULLW, 0, 0 },
{ MASK_MMX, CODE_FOR_smulv4hi3_highpart, "__builtin_ia32_pmulhw", IX86_BUILTIN_PMULHW, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_umulv4hi3_highpart, "__builtin_ia32_pmulhuw", IX86_BUILTIN_PMULHUW, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_umulv4hi3_highpart, "__builtin_ia32_pmulhuw", IX86_BUILTIN_PMULHUW, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_anddi3, "__builtin_ia32_pand", IX86_BUILTIN_PAND, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_nanddi3, "__builtin_ia32_pandn", IX86_BUILTIN_PANDN, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_iordi3, "__builtin_ia32_por", IX86_BUILTIN_POR, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_xordi3, "__builtin_ia32_pxor", IX86_BUILTIN_PXOR, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_mmx_uavgv8qi3, "__builtin_ia32_pavgb", IX86_BUILTIN_PAVGB, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_mmx_uavgv4hi3, "__builtin_ia32_pavgw", IX86_BUILTIN_PAVGW, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_mmx_uavgv8qi3, "__builtin_ia32_pavgb", IX86_BUILTIN_PAVGB, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_mmx_uavgv4hi3, "__builtin_ia32_pavgw", IX86_BUILTIN_PAVGW, 0, 0 },
{ MASK_MMX, CODE_FOR_eqv8qi3, "__builtin_ia32_pcmpeqb", IX86_BUILTIN_PCMPEQB, 0, 0 },
{ MASK_MMX, CODE_FOR_eqv4hi3, "__builtin_ia32_pcmpeqw", IX86_BUILTIN_PCMPEQW, 0, 0 },
@@ -11965,10 +12329,10 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_MMX, CODE_FOR_gtv4hi3, "__builtin_ia32_pcmpgtw", IX86_BUILTIN_PCMPGTW, 0, 0 },
{ MASK_MMX, CODE_FOR_gtv2si3, "__builtin_ia32_pcmpgtd", IX86_BUILTIN_PCMPGTD, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_umaxv8qi3, "__builtin_ia32_pmaxub", IX86_BUILTIN_PMAXUB, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_smaxv4hi3, "__builtin_ia32_pmaxsw", IX86_BUILTIN_PMAXSW, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_uminv8qi3, "__builtin_ia32_pminub", IX86_BUILTIN_PMINUB, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_sminv4hi3, "__builtin_ia32_pminsw", IX86_BUILTIN_PMINSW, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_umaxv8qi3, "__builtin_ia32_pmaxub", IX86_BUILTIN_PMAXUB, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_smaxv4hi3, "__builtin_ia32_pmaxsw", IX86_BUILTIN_PMAXSW, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_uminv8qi3, "__builtin_ia32_pminub", IX86_BUILTIN_PMINUB, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_sminv4hi3, "__builtin_ia32_pminsw", IX86_BUILTIN_PMINSW, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_punpckhbw, "__builtin_ia32_punpckhbw", IX86_BUILTIN_PUNPCKHBW, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_punpckhwd, "__builtin_ia32_punpckhwd", IX86_BUILTIN_PUNPCKHWD, 0, 0 },
@@ -11982,8 +12346,9 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_MMX, CODE_FOR_mmx_packssdw, 0, IX86_BUILTIN_PACKSSDW, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_packuswb, 0, IX86_BUILTIN_PACKUSWB, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvtpi2ps, 0, IX86_BUILTIN_CVTPI2PS, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvtsi2ss, 0, IX86_BUILTIN_CVTSI2SS, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvtpi2ps, 0, IX86_BUILTIN_CVTPI2PS, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvtsi2ss, 0, IX86_BUILTIN_CVTSI2SS, 0, 0 },
+ { MASK_SSE | MASK_64BIT, CODE_FOR_cvtsi2ssq, 0, IX86_BUILTIN_CVTSI642SS, 0, 0 },
{ MASK_MMX, CODE_FOR_ashlv4hi3, 0, IX86_BUILTIN_PSLLW, 0, 0 },
{ MASK_MMX, CODE_FOR_ashlv4hi3, 0, IX86_BUILTIN_PSLLWI, 0, 0 },
@@ -12004,7 +12369,7 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_MMX, CODE_FOR_ashrv2si3, 0, IX86_BUILTIN_PSRAD, 0, 0 },
{ MASK_MMX, CODE_FOR_ashrv2si3, 0, IX86_BUILTIN_PSRADI, 0, 0 },
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_mmx_psadbw, 0, IX86_BUILTIN_PSADBW, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_mmx_psadbw, 0, IX86_BUILTIN_PSADBW, 0, 0 },
{ MASK_MMX, CODE_FOR_mmx_pmaddwd, 0, IX86_BUILTIN_PMADDWD, 0, 0 },
/* SSE2 */
@@ -12056,11 +12421,11 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_SSE2, CODE_FOR_addv16qi3, "__builtin_ia32_paddb128", IX86_BUILTIN_PADDB128, 0, 0 },
{ MASK_SSE2, CODE_FOR_addv8hi3, "__builtin_ia32_paddw128", IX86_BUILTIN_PADDW128, 0, 0 },
{ MASK_SSE2, CODE_FOR_addv4si3, "__builtin_ia32_paddd128", IX86_BUILTIN_PADDD128, 0, 0 },
- { MASK_SSE2, CODE_FOR_addv4si3, "__builtin_ia32_paddq128", IX86_BUILTIN_PADDQ128, 0, 0 },
+ { MASK_SSE2, CODE_FOR_addv2di3, "__builtin_ia32_paddq128", IX86_BUILTIN_PADDQ128, 0, 0 },
{ MASK_SSE2, CODE_FOR_subv16qi3, "__builtin_ia32_psubb128", IX86_BUILTIN_PSUBB128, 0, 0 },
{ MASK_SSE2, CODE_FOR_subv8hi3, "__builtin_ia32_psubw128", IX86_BUILTIN_PSUBW128, 0, 0 },
{ MASK_SSE2, CODE_FOR_subv4si3, "__builtin_ia32_psubd128", IX86_BUILTIN_PSUBD128, 0, 0 },
- { MASK_SSE2, CODE_FOR_subv4si3, "__builtin_ia32_psubq128", IX86_BUILTIN_PSUBQ128, 0, 0 },
+ { MASK_SSE2, CODE_FOR_subv2di3, "__builtin_ia32_psubq128", IX86_BUILTIN_PSUBQ128, 0, 0 },
{ MASK_MMX, CODE_FOR_ssaddv16qi3, "__builtin_ia32_paddsb128", IX86_BUILTIN_PADDSB128, 0, 0 },
{ MASK_MMX, CODE_FOR_ssaddv8hi3, "__builtin_ia32_paddsw128", IX86_BUILTIN_PADDSW128, 0, 0 },
@@ -12134,23 +12499,34 @@ static const struct builtin_description bdesc_2arg[] =
{ MASK_SSE2, CODE_FOR_sse2_pmaddwd, 0, IX86_BUILTIN_PMADDWD128, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvtsi2sd, 0, IX86_BUILTIN_CVTSI2SD, 0, 0 },
+ { MASK_SSE2 | MASK_64BIT, CODE_FOR_cvtsi2sdq, 0, IX86_BUILTIN_CVTSI642SD, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvtsd2ss, 0, IX86_BUILTIN_CVTSD2SS, 0, 0 },
- { MASK_SSE2, CODE_FOR_cvtss2sd, 0, IX86_BUILTIN_CVTSS2SD, 0, 0 }
+ { MASK_SSE2, CODE_FOR_cvtss2sd, 0, IX86_BUILTIN_CVTSS2SD, 0, 0 },
+
+ /* SSE3 MMX */
+ { MASK_SSE3, CODE_FOR_addsubv4sf3, "__builtin_ia32_addsubps", IX86_BUILTIN_ADDSUBPS, 0, 0 },
+ { MASK_SSE3, CODE_FOR_addsubv2df3, "__builtin_ia32_addsubpd", IX86_BUILTIN_ADDSUBPD, 0, 0 },
+ { MASK_SSE3, CODE_FOR_haddv4sf3, "__builtin_ia32_haddps", IX86_BUILTIN_HADDPS, 0, 0 },
+ { MASK_SSE3, CODE_FOR_haddv2df3, "__builtin_ia32_haddpd", IX86_BUILTIN_HADDPD, 0, 0 },
+ { MASK_SSE3, CODE_FOR_hsubv4sf3, "__builtin_ia32_hsubps", IX86_BUILTIN_HSUBPS, 0, 0 },
+ { MASK_SSE3, CODE_FOR_hsubv2df3, "__builtin_ia32_hsubpd", IX86_BUILTIN_HSUBPD, 0, 0 }
};
static const struct builtin_description bdesc_1arg[] =
{
- { MASK_SSE1 | MASK_3DNOW_A, CODE_FOR_mmx_pmovmskb, 0, IX86_BUILTIN_PMOVMSKB, 0, 0 },
- { MASK_SSE1, CODE_FOR_sse_movmskps, 0, IX86_BUILTIN_MOVMSKPS, 0, 0 },
+ { MASK_SSE | MASK_3DNOW_A, CODE_FOR_mmx_pmovmskb, 0, IX86_BUILTIN_PMOVMSKB, 0, 0 },
+ { MASK_SSE, CODE_FOR_sse_movmskps, 0, IX86_BUILTIN_MOVMSKPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_sqrtv4sf2, 0, IX86_BUILTIN_SQRTPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_rsqrtv4sf2, 0, IX86_BUILTIN_RSQRTPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_rcpv4sf2, 0, IX86_BUILTIN_RCPPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_sqrtv4sf2, 0, IX86_BUILTIN_SQRTPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_rsqrtv4sf2, 0, IX86_BUILTIN_RSQRTPS, 0, 0 },
+ { MASK_SSE, CODE_FOR_rcpv4sf2, 0, IX86_BUILTIN_RCPPS, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvtps2pi, 0, IX86_BUILTIN_CVTPS2PI, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvtss2si, 0, IX86_BUILTIN_CVTSS2SI, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvttps2pi, 0, IX86_BUILTIN_CVTTPS2PI, 0, 0 },
- { MASK_SSE1, CODE_FOR_cvttss2si, 0, IX86_BUILTIN_CVTTSS2SI, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvtps2pi, 0, IX86_BUILTIN_CVTPS2PI, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvtss2si, 0, IX86_BUILTIN_CVTSS2SI, 0, 0 },
+ { MASK_SSE | MASK_64BIT, CODE_FOR_cvtss2siq, 0, IX86_BUILTIN_CVTSS2SI64, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvttps2pi, 0, IX86_BUILTIN_CVTTPS2PI, 0, 0 },
+ { MASK_SSE, CODE_FOR_cvttss2si, 0, IX86_BUILTIN_CVTTSS2SI, 0, 0 },
+ { MASK_SSE | MASK_64BIT, CODE_FOR_cvttss2siq, 0, IX86_BUILTIN_CVTTSS2SI64, 0, 0 },
{ MASK_SSE2, CODE_FOR_sse2_pmovmskb, 0, IX86_BUILTIN_PMOVMSKB128, 0, 0 },
{ MASK_SSE2, CODE_FOR_sse2_movmskpd, 0, IX86_BUILTIN_MOVMSKPD, 0, 0 },
@@ -12172,12 +12548,19 @@ static const struct builtin_description bdesc_1arg[] =
{ MASK_SSE2, CODE_FOR_cvtsd2si, 0, IX86_BUILTIN_CVTSD2SI, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvttsd2si, 0, IX86_BUILTIN_CVTTSD2SI, 0, 0 },
+ { MASK_SSE2 | MASK_64BIT, CODE_FOR_cvtsd2siq, 0, IX86_BUILTIN_CVTSD2SI64, 0, 0 },
+ { MASK_SSE2 | MASK_64BIT, CODE_FOR_cvttsd2siq, 0, IX86_BUILTIN_CVTTSD2SI64, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvtps2dq, 0, IX86_BUILTIN_CVTPS2DQ, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvtps2pd, 0, IX86_BUILTIN_CVTPS2PD, 0, 0 },
{ MASK_SSE2, CODE_FOR_cvttps2dq, 0, IX86_BUILTIN_CVTTPS2DQ, 0, 0 },
- { MASK_SSE2, CODE_FOR_sse2_movq, 0, IX86_BUILTIN_MOVQ, 0, 0 }
+ { MASK_SSE2, CODE_FOR_sse2_movq, 0, IX86_BUILTIN_MOVQ, 0, 0 },
+
+ /* SSE3 */
+ { MASK_SSE3, CODE_FOR_movshdup, 0, IX86_BUILTIN_MOVSHDUP, 0, 0 },
+ { MASK_SSE3, CODE_FOR_movsldup, 0, IX86_BUILTIN_MOVSLDUP, 0, 0 },
+ { MASK_SSE3, CODE_FOR_movddup, 0, IX86_BUILTIN_MOVDDUP, 0, 0 }
};
void
@@ -12197,7 +12580,11 @@ ix86_init_mmx_sse_builtins ()
size_t i;
tree pchar_type_node = build_pointer_type (char_type_node);
+ tree pcchar_type_node = build_pointer_type (
+ build_type_variant (char_type_node, 1, 0));
tree pfloat_type_node = build_pointer_type (float_type_node);
+ tree pcfloat_type_node = build_pointer_type (
+ build_type_variant (float_type_node, 1, 0));
tree pv2si_type_node = build_pointer_type (V2SI_type_node);
tree pv2di_type_node = build_pointer_type (V2DI_type_node);
tree pdi_type_node = build_pointer_type (long_long_unsigned_type_node);
@@ -12213,11 +12600,18 @@ ix86_init_mmx_sse_builtins ()
tree int_ftype_v4sf
= build_function_type_list (integer_type_node,
V4SF_type_node, NULL_TREE);
+ tree int64_ftype_v4sf
+ = build_function_type_list (long_long_integer_type_node,
+ V4SF_type_node, NULL_TREE);
tree int_ftype_v8qi
= build_function_type_list (integer_type_node, V8QI_type_node, NULL_TREE);
tree v4sf_ftype_v4sf_int
= build_function_type_list (V4SF_type_node,
V4SF_type_node, integer_type_node, NULL_TREE);
+ tree v4sf_ftype_v4sf_int64
+ = build_function_type_list (V4SF_type_node,
+ V4SF_type_node, long_long_integer_type_node,
+ NULL_TREE);
tree v4sf_ftype_v4sf_v2si
= build_function_type_list (V4SF_type_node,
V4SF_type_node, V2SI_type_node, NULL_TREE);
@@ -12257,6 +12651,13 @@ ix86_init_mmx_sse_builtins ()
= build_function_type (void_type_node, void_list_node);
tree void_ftype_unsigned
= build_function_type_list (void_type_node, unsigned_type_node, NULL_TREE);
+ tree void_ftype_unsigned_unsigned
+ = build_function_type_list (void_type_node, unsigned_type_node,
+ unsigned_type_node, NULL_TREE);
+ tree void_ftype_pcvoid_unsigned_unsigned
+ = build_function_type_list (void_type_node, const_ptr_type_node,
+ unsigned_type_node, unsigned_type_node,
+ NULL_TREE);
tree unsigned_ftype_void
= build_function_type (unsigned_type_node, void_list_node);
tree di_ftype_void
@@ -12270,8 +12671,8 @@ ix86_init_mmx_sse_builtins ()
= build_function_type_list (void_type_node,
V8QI_type_node, V8QI_type_node,
pchar_type_node, NULL_TREE);
- tree v4sf_ftype_pfloat
- = build_function_type_list (V4SF_type_node, pfloat_type_node, NULL_TREE);
+ tree v4sf_ftype_pcfloat
+ = build_function_type_list (V4SF_type_node, pcfloat_type_node, NULL_TREE);
/* @@@ the type is bogus */
tree v4sf_ftype_v4sf_pv2si
= build_function_type_list (V4SF_type_node,
@@ -12326,7 +12727,11 @@ ix86_init_mmx_sse_builtins ()
= build_function_type_list (V2SI_type_node,
V2SF_type_node, V2SF_type_node, NULL_TREE);
tree pint_type_node = build_pointer_type (integer_type_node);
+ tree pcint_type_node = build_pointer_type (
+ build_type_variant (integer_type_node, 1, 0));
tree pdouble_type_node = build_pointer_type (double_type_node);
+ tree pcdouble_type_node = build_pointer_type (
+ build_type_variant (double_type_node, 1, 0));
tree int_ftype_v2df_v2df
= build_function_type_list (integer_type_node,
V2DF_type_node, V2DF_type_node, NULL_TREE);
@@ -12338,8 +12743,8 @@ ix86_init_mmx_sse_builtins ()
tree ti_ftype_ti_ti
= build_function_type_list (intTI_type_node,
intTI_type_node, intTI_type_node, NULL_TREE);
- tree void_ftype_pvoid
- = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
+ tree void_ftype_pcvoid
+ = build_function_type_list (void_type_node, const_ptr_type_node, NULL_TREE);
tree v2di_ftype_di
= build_function_type_list (V2DI_type_node,
long_long_unsigned_type_node, NULL_TREE);
@@ -12364,9 +12769,16 @@ ix86_init_mmx_sse_builtins ()
= build_function_type_list (V2DF_type_node, V4SF_type_node, NULL_TREE);
tree int_ftype_v2df
= build_function_type_list (integer_type_node, V2DF_type_node, NULL_TREE);
+ tree int64_ftype_v2df
+ = build_function_type_list (long_long_integer_type_node,
+ V2DF_type_node, NULL_TREE);
tree v2df_ftype_v2df_int
= build_function_type_list (V2DF_type_node,
V2DF_type_node, integer_type_node, NULL_TREE);
+ tree v2df_ftype_v2df_int64
+ = build_function_type_list (V2DF_type_node,
+ V2DF_type_node, long_long_integer_type_node,
+ NULL_TREE);
tree v4sf_ftype_v4sf_v2df
= build_function_type_list (V4SF_type_node,
V4SF_type_node, V2DF_type_node, NULL_TREE);
@@ -12394,8 +12806,8 @@ ix86_init_mmx_sse_builtins ()
= build_function_type_list (void_type_node,
V16QI_type_node, V16QI_type_node,
pchar_type_node, NULL_TREE);
- tree v2df_ftype_pdouble
- = build_function_type_list (V2DF_type_node, pdouble_type_node, NULL_TREE);
+ tree v2df_ftype_pcdouble
+ = build_function_type_list (V2DF_type_node, pcdouble_type_node, NULL_TREE);
tree v2df_ftype_v2df_v2df
= build_function_type_list (V2DF_type_node,
V2DF_type_node, V2DF_type_node, NULL_TREE);
@@ -12454,16 +12866,16 @@ ix86_init_mmx_sse_builtins ()
V16QI_type_node, V16QI_type_node, NULL_TREE);
tree int_ftype_v16qi
= build_function_type_list (integer_type_node, V16QI_type_node, NULL_TREE);
- tree v16qi_ftype_pchar
- = build_function_type_list (V16QI_type_node, pchar_type_node, NULL_TREE);
+ tree v16qi_ftype_pcchar
+ = build_function_type_list (V16QI_type_node, pcchar_type_node, NULL_TREE);
tree void_ftype_pchar_v16qi
= build_function_type_list (void_type_node,
pchar_type_node, V16QI_type_node, NULL_TREE);
- tree v4si_ftype_pchar
- = build_function_type_list (V4SI_type_node, pchar_type_node, NULL_TREE);
- tree void_ftype_pchar_v4si
+ tree v4si_ftype_pcint
+ = build_function_type_list (V4SI_type_node, pcint_type_node, NULL_TREE);
+ tree void_ftype_pcint_v4si
= build_function_type_list (void_type_node,
- pchar_type_node, V4SI_type_node, NULL_TREE);
+ pcint_type_node, V4SI_type_node, NULL_TREE);
tree v2di_ftype_v2di
= build_function_type_list (V2DI_type_node, V2DI_type_node, NULL_TREE);
@@ -12539,8 +12951,6 @@ ix86_init_mmx_sse_builtins ()
/* Add the remaining MMX insns with somewhat more complicated types. */
def_builtin (MASK_MMX, "__builtin_ia32_mmx_zero", di_ftype_void, IX86_BUILTIN_MMX_ZERO);
def_builtin (MASK_MMX, "__builtin_ia32_emms", void_ftype_void, IX86_BUILTIN_EMMS);
- def_builtin (MASK_MMX, "__builtin_ia32_ldmxcsr", void_ftype_unsigned, IX86_BUILTIN_LDMXCSR);
- def_builtin (MASK_MMX, "__builtin_ia32_stmxcsr", unsigned_ftype_void, IX86_BUILTIN_STMXCSR);
def_builtin (MASK_MMX, "__builtin_ia32_psllw", v4hi_ftype_v4hi_di, IX86_BUILTIN_PSLLW);
def_builtin (MASK_MMX, "__builtin_ia32_pslld", v2si_ftype_v2si_di, IX86_BUILTIN_PSLLD);
def_builtin (MASK_MMX, "__builtin_ia32_psllq", di_ftype_di_di, IX86_BUILTIN_PSLLQ);
@@ -12566,47 +12976,52 @@ ix86_init_mmx_sse_builtins ()
def_builtin (MASK_MMX, "__builtin_ia32_packssdw", v4hi_ftype_v2si_v2si, IX86_BUILTIN_PACKSSDW);
def_builtin (MASK_MMX, "__builtin_ia32_packuswb", v8qi_ftype_v4hi_v4hi, IX86_BUILTIN_PACKUSWB);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvtpi2ps", v4sf_ftype_v4sf_v2si, IX86_BUILTIN_CVTPI2PS);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvtps2pi", v2si_ftype_v4sf, IX86_BUILTIN_CVTPS2PI);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvtsi2ss", v4sf_ftype_v4sf_int, IX86_BUILTIN_CVTSI2SS);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvtss2si", int_ftype_v4sf, IX86_BUILTIN_CVTSS2SI);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvttps2pi", v2si_ftype_v4sf, IX86_BUILTIN_CVTTPS2PI);
- def_builtin (MASK_SSE1, "__builtin_ia32_cvttss2si", int_ftype_v4sf, IX86_BUILTIN_CVTTSS2SI);
-
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_pextrw", int_ftype_v4hi_int, IX86_BUILTIN_PEXTRW);
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_pinsrw", v4hi_ftype_v4hi_int_int, IX86_BUILTIN_PINSRW);
-
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_maskmovq", void_ftype_v8qi_v8qi_pchar, IX86_BUILTIN_MASKMOVQ);
-
- def_builtin (MASK_SSE1, "__builtin_ia32_loadaps", v4sf_ftype_pfloat, IX86_BUILTIN_LOADAPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_loadups", v4sf_ftype_pfloat, IX86_BUILTIN_LOADUPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_loadss", v4sf_ftype_pfloat, IX86_BUILTIN_LOADSS);
- def_builtin (MASK_SSE1, "__builtin_ia32_storeaps", void_ftype_pfloat_v4sf, IX86_BUILTIN_STOREAPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_storeups", void_ftype_pfloat_v4sf, IX86_BUILTIN_STOREUPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_storess", void_ftype_pfloat_v4sf, IX86_BUILTIN_STORESS);
-
- def_builtin (MASK_SSE1, "__builtin_ia32_loadhps", v4sf_ftype_v4sf_pv2si, IX86_BUILTIN_LOADHPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_loadlps", v4sf_ftype_v4sf_pv2si, IX86_BUILTIN_LOADLPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_storehps", void_ftype_pv2si_v4sf, IX86_BUILTIN_STOREHPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_storelps", void_ftype_pv2si_v4sf, IX86_BUILTIN_STORELPS);
-
- def_builtin (MASK_SSE1, "__builtin_ia32_movmskps", int_ftype_v4sf, IX86_BUILTIN_MOVMSKPS);
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_pmovmskb", int_ftype_v8qi, IX86_BUILTIN_PMOVMSKB);
- def_builtin (MASK_SSE1, "__builtin_ia32_movntps", void_ftype_pfloat_v4sf, IX86_BUILTIN_MOVNTPS);
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_movntq", void_ftype_pdi_di, IX86_BUILTIN_MOVNTQ);
-
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_sfence", void_ftype_void, IX86_BUILTIN_SFENCE);
-
- def_builtin (MASK_SSE1 | MASK_3DNOW_A, "__builtin_ia32_psadbw", di_ftype_v8qi_v8qi, IX86_BUILTIN_PSADBW);
-
- def_builtin (MASK_SSE1, "__builtin_ia32_rcpps", v4sf_ftype_v4sf, IX86_BUILTIN_RCPPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_rcpss", v4sf_ftype_v4sf, IX86_BUILTIN_RCPSS);
- def_builtin (MASK_SSE1, "__builtin_ia32_rsqrtps", v4sf_ftype_v4sf, IX86_BUILTIN_RSQRTPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_rsqrtss", v4sf_ftype_v4sf, IX86_BUILTIN_RSQRTSS);
- def_builtin (MASK_SSE1, "__builtin_ia32_sqrtps", v4sf_ftype_v4sf, IX86_BUILTIN_SQRTPS);
- def_builtin (MASK_SSE1, "__builtin_ia32_sqrtss", v4sf_ftype_v4sf, IX86_BUILTIN_SQRTSS);
-
- def_builtin (MASK_SSE1, "__builtin_ia32_shufps", v4sf_ftype_v4sf_v4sf_int, IX86_BUILTIN_SHUFPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_ldmxcsr", void_ftype_unsigned, IX86_BUILTIN_LDMXCSR);
+ def_builtin (MASK_SSE, "__builtin_ia32_stmxcsr", unsigned_ftype_void, IX86_BUILTIN_STMXCSR);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvtpi2ps", v4sf_ftype_v4sf_v2si, IX86_BUILTIN_CVTPI2PS);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvtps2pi", v2si_ftype_v4sf, IX86_BUILTIN_CVTPS2PI);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvtsi2ss", v4sf_ftype_v4sf_int, IX86_BUILTIN_CVTSI2SS);
+ def_builtin (MASK_SSE | MASK_64BIT, "__builtin_ia32_cvtsi642ss", v4sf_ftype_v4sf_int64, IX86_BUILTIN_CVTSI642SS);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvtss2si", int_ftype_v4sf, IX86_BUILTIN_CVTSS2SI);
+ def_builtin (MASK_SSE | MASK_64BIT, "__builtin_ia32_cvtss2si64", int64_ftype_v4sf, IX86_BUILTIN_CVTSS2SI64);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvttps2pi", v2si_ftype_v4sf, IX86_BUILTIN_CVTTPS2PI);
+ def_builtin (MASK_SSE, "__builtin_ia32_cvttss2si", int_ftype_v4sf, IX86_BUILTIN_CVTTSS2SI);
+ def_builtin (MASK_SSE | MASK_64BIT, "__builtin_ia32_cvttss2si64", int64_ftype_v4sf, IX86_BUILTIN_CVTTSS2SI64);
+
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_pextrw", int_ftype_v4hi_int, IX86_BUILTIN_PEXTRW);
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_pinsrw", v4hi_ftype_v4hi_int_int, IX86_BUILTIN_PINSRW);
+
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_maskmovq", void_ftype_v8qi_v8qi_pchar, IX86_BUILTIN_MASKMOVQ);
+
+ def_builtin (MASK_SSE, "__builtin_ia32_loadaps", v4sf_ftype_pcfloat, IX86_BUILTIN_LOADAPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_loadups", v4sf_ftype_pcfloat, IX86_BUILTIN_LOADUPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_loadss", v4sf_ftype_pcfloat, IX86_BUILTIN_LOADSS);
+ def_builtin (MASK_SSE, "__builtin_ia32_storeaps", void_ftype_pfloat_v4sf, IX86_BUILTIN_STOREAPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_storeups", void_ftype_pfloat_v4sf, IX86_BUILTIN_STOREUPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_storess", void_ftype_pfloat_v4sf, IX86_BUILTIN_STORESS);
+
+ def_builtin (MASK_SSE, "__builtin_ia32_loadhps", v4sf_ftype_v4sf_pv2si, IX86_BUILTIN_LOADHPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_loadlps", v4sf_ftype_v4sf_pv2si, IX86_BUILTIN_LOADLPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_storehps", void_ftype_pv2si_v4sf, IX86_BUILTIN_STOREHPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_storelps", void_ftype_pv2si_v4sf, IX86_BUILTIN_STORELPS);
+
+ def_builtin (MASK_SSE, "__builtin_ia32_movmskps", int_ftype_v4sf, IX86_BUILTIN_MOVMSKPS);
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_pmovmskb", int_ftype_v8qi, IX86_BUILTIN_PMOVMSKB);
+ def_builtin (MASK_SSE, "__builtin_ia32_movntps", void_ftype_pfloat_v4sf, IX86_BUILTIN_MOVNTPS);
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_movntq", void_ftype_pdi_di, IX86_BUILTIN_MOVNTQ);
+
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_sfence", void_ftype_void, IX86_BUILTIN_SFENCE);
+
+ def_builtin (MASK_SSE | MASK_3DNOW_A, "__builtin_ia32_psadbw", di_ftype_v8qi_v8qi, IX86_BUILTIN_PSADBW);
+
+ def_builtin (MASK_SSE, "__builtin_ia32_rcpps", v4sf_ftype_v4sf, IX86_BUILTIN_RCPPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_rcpss", v4sf_ftype_v4sf, IX86_BUILTIN_RCPSS);
+ def_builtin (MASK_SSE, "__builtin_ia32_rsqrtps", v4sf_ftype_v4sf, IX86_BUILTIN_RSQRTPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_rsqrtss", v4sf_ftype_v4sf, IX86_BUILTIN_RSQRTSS);
+ def_builtin (MASK_SSE, "__builtin_ia32_sqrtps", v4sf_ftype_v4sf, IX86_BUILTIN_SQRTPS);
+ def_builtin (MASK_SSE, "__builtin_ia32_sqrtss", v4sf_ftype_v4sf, IX86_BUILTIN_SQRTSS);
+
+ def_builtin (MASK_SSE, "__builtin_ia32_shufps", v4sf_ftype_v4sf_v4sf_int, IX86_BUILTIN_SHUFPS);
/* Original 3DNow! */
def_builtin (MASK_3DNOW, "__builtin_ia32_femms", void_ftype_void, IX86_BUILTIN_FEMMS);
@@ -12638,7 +13053,7 @@ ix86_init_mmx_sse_builtins ()
def_builtin (MASK_3DNOW_A, "__builtin_ia32_pswapdsf", v2sf_ftype_v2sf, IX86_BUILTIN_PSWAPDSF);
def_builtin (MASK_3DNOW_A, "__builtin_ia32_pswapdsi", v2si_ftype_v2si, IX86_BUILTIN_PSWAPDSI);
- def_builtin (MASK_SSE1, "__builtin_ia32_setzerops", v4sf_ftype_void, IX86_BUILTIN_SSE_ZERO);
+ def_builtin (MASK_SSE, "__builtin_ia32_setzerops", v4sf_ftype_void, IX86_BUILTIN_SSE_ZERO);
/* SSE2 */
def_builtin (MASK_SSE2, "__builtin_ia32_pextrw128", int_ftype_v8hi_int, IX86_BUILTIN_PEXTRW128);
@@ -12648,9 +13063,9 @@ ix86_init_mmx_sse_builtins ()
def_builtin (MASK_SSE2, "__builtin_ia32_movq2dq", v2di_ftype_di, IX86_BUILTIN_MOVQ2DQ);
def_builtin (MASK_SSE2, "__builtin_ia32_movdq2q", di_ftype_v2di, IX86_BUILTIN_MOVDQ2Q);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadapd", v2df_ftype_pdouble, IX86_BUILTIN_LOADAPD);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadupd", v2df_ftype_pdouble, IX86_BUILTIN_LOADUPD);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadsd", v2df_ftype_pdouble, IX86_BUILTIN_LOADSD);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadapd", v2df_ftype_pcdouble, IX86_BUILTIN_LOADAPD);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadupd", v2df_ftype_pcdouble, IX86_BUILTIN_LOADUPD);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadsd", v2df_ftype_pcdouble, IX86_BUILTIN_LOADSD);
def_builtin (MASK_SSE2, "__builtin_ia32_storeapd", void_ftype_pdouble_v2df, IX86_BUILTIN_STOREAPD);
def_builtin (MASK_SSE2, "__builtin_ia32_storeupd", void_ftype_pdouble_v2df, IX86_BUILTIN_STOREUPD);
def_builtin (MASK_SSE2, "__builtin_ia32_storesd", void_ftype_pdouble_v2df, IX86_BUILTIN_STORESD);
@@ -12689,36 +13104,39 @@ ix86_init_mmx_sse_builtins ()
def_builtin (MASK_SSE2, "__builtin_ia32_cvtsd2si", int_ftype_v2df, IX86_BUILTIN_CVTSD2SI);
def_builtin (MASK_SSE2, "__builtin_ia32_cvttsd2si", int_ftype_v2df, IX86_BUILTIN_CVTTSD2SI);
+ def_builtin (MASK_SSE2 | MASK_64BIT, "__builtin_ia32_cvtsd2si64", int64_ftype_v2df, IX86_BUILTIN_CVTSD2SI64);
+ def_builtin (MASK_SSE2 | MASK_64BIT, "__builtin_ia32_cvttsd2si64", int64_ftype_v2df, IX86_BUILTIN_CVTTSD2SI64);
def_builtin (MASK_SSE2, "__builtin_ia32_cvtps2dq", v4si_ftype_v4sf, IX86_BUILTIN_CVTPS2DQ);
def_builtin (MASK_SSE2, "__builtin_ia32_cvtps2pd", v2df_ftype_v4sf, IX86_BUILTIN_CVTPS2PD);
def_builtin (MASK_SSE2, "__builtin_ia32_cvttps2dq", v4si_ftype_v4sf, IX86_BUILTIN_CVTTPS2DQ);
def_builtin (MASK_SSE2, "__builtin_ia32_cvtsi2sd", v2df_ftype_v2df_int, IX86_BUILTIN_CVTSI2SD);
+ def_builtin (MASK_SSE2 | MASK_64BIT, "__builtin_ia32_cvtsi642sd", v2df_ftype_v2df_int64, IX86_BUILTIN_CVTSI642SD);
def_builtin (MASK_SSE2, "__builtin_ia32_cvtsd2ss", v4sf_ftype_v4sf_v2df, IX86_BUILTIN_CVTSD2SS);
def_builtin (MASK_SSE2, "__builtin_ia32_cvtss2sd", v2df_ftype_v2df_v4sf, IX86_BUILTIN_CVTSS2SD);
def_builtin (MASK_SSE2, "__builtin_ia32_setpd1", v2df_ftype_double, IX86_BUILTIN_SETPD1);
def_builtin (MASK_SSE2, "__builtin_ia32_setpd", v2df_ftype_double_double, IX86_BUILTIN_SETPD);
def_builtin (MASK_SSE2, "__builtin_ia32_setzeropd", ti_ftype_void, IX86_BUILTIN_CLRPD);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadpd1", v2df_ftype_pdouble, IX86_BUILTIN_LOADPD1);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadrpd", v2df_ftype_pdouble, IX86_BUILTIN_LOADRPD);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadpd1", v2df_ftype_pcdouble, IX86_BUILTIN_LOADPD1);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadrpd", v2df_ftype_pcdouble, IX86_BUILTIN_LOADRPD);
def_builtin (MASK_SSE2, "__builtin_ia32_storepd1", void_ftype_pdouble_v2df, IX86_BUILTIN_STOREPD1);
def_builtin (MASK_SSE2, "__builtin_ia32_storerpd", void_ftype_pdouble_v2df, IX86_BUILTIN_STORERPD);
- def_builtin (MASK_SSE2, "__builtin_ia32_clflush", void_ftype_pvoid, IX86_BUILTIN_CLFLUSH);
+ def_builtin (MASK_SSE2, "__builtin_ia32_clflush", void_ftype_pcvoid, IX86_BUILTIN_CLFLUSH);
def_builtin (MASK_SSE2, "__builtin_ia32_lfence", void_ftype_void, IX86_BUILTIN_LFENCE);
def_builtin (MASK_SSE2, "__builtin_ia32_mfence", void_ftype_void, IX86_BUILTIN_MFENCE);
- def_builtin (MASK_SSE2, "__builtin_ia32_loaddqa", v16qi_ftype_pchar, IX86_BUILTIN_LOADDQA);
- def_builtin (MASK_SSE2, "__builtin_ia32_loaddqu", v16qi_ftype_pchar, IX86_BUILTIN_LOADDQU);
- def_builtin (MASK_SSE2, "__builtin_ia32_loadd", v4si_ftype_pchar, IX86_BUILTIN_LOADD);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loaddqa", v16qi_ftype_pcchar, IX86_BUILTIN_LOADDQA);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loaddqu", v16qi_ftype_pcchar, IX86_BUILTIN_LOADDQU);
+ def_builtin (MASK_SSE2, "__builtin_ia32_loadd", v4si_ftype_pcint, IX86_BUILTIN_LOADD);
def_builtin (MASK_SSE2, "__builtin_ia32_storedqa", void_ftype_pchar_v16qi, IX86_BUILTIN_STOREDQA);
def_builtin (MASK_SSE2, "__builtin_ia32_storedqu", void_ftype_pchar_v16qi, IX86_BUILTIN_STOREDQU);
- def_builtin (MASK_SSE2, "__builtin_ia32_stored", void_ftype_pchar_v4si, IX86_BUILTIN_STORED);
+ def_builtin (MASK_SSE2, "__builtin_ia32_stored", void_ftype_pcint_v4si, IX86_BUILTIN_STORED);
def_builtin (MASK_SSE2, "__builtin_ia32_movq", v2di_ftype_v2di, IX86_BUILTIN_MOVQ);
- def_builtin (MASK_SSE1, "__builtin_ia32_setzero128", v2di_ftype_void, IX86_BUILTIN_CLRTI);
+ def_builtin (MASK_SSE, "__builtin_ia32_setzero128", v2di_ftype_void, IX86_BUILTIN_CLRTI);
def_builtin (MASK_SSE2, "__builtin_ia32_psllw128", v8hi_ftype_v8hi_v2di, IX86_BUILTIN_PSLLW128);
def_builtin (MASK_SSE2, "__builtin_ia32_pslld128", v4si_ftype_v4si_v2di, IX86_BUILTIN_PSLLD128);
@@ -12745,6 +13163,26 @@ ix86_init_mmx_sse_builtins ()
def_builtin (MASK_SSE2, "__builtin_ia32_psradi128", v4si_ftype_v4si_int, IX86_BUILTIN_PSRADI128);
def_builtin (MASK_SSE2, "__builtin_ia32_pmaddwd128", v4si_ftype_v8hi_v8hi, IX86_BUILTIN_PMADDWD128);
+
+ /* Prescott New Instructions. */
+ def_builtin (MASK_SSE3, "__builtin_ia32_monitor",
+ void_ftype_pcvoid_unsigned_unsigned,
+ IX86_BUILTIN_MONITOR);
+ def_builtin (MASK_SSE3, "__builtin_ia32_mwait",
+ void_ftype_unsigned_unsigned,
+ IX86_BUILTIN_MWAIT);
+ def_builtin (MASK_SSE3, "__builtin_ia32_movshdup",
+ v4sf_ftype_v4sf,
+ IX86_BUILTIN_MOVSHDUP);
+ def_builtin (MASK_SSE3, "__builtin_ia32_movsldup",
+ v4sf_ftype_v4sf,
+ IX86_BUILTIN_MOVSLDUP);
+ def_builtin (MASK_SSE3, "__builtin_ia32_lddqu",
+ v16qi_ftype_pcchar, IX86_BUILTIN_LDDQU);
+ def_builtin (MASK_SSE3, "__builtin_ia32_loadddup",
+ v2df_ftype_pcdouble, IX86_BUILTIN_LOADDDUP);
+ def_builtin (MASK_SSE3, "__builtin_ia32_movddup",
+ v2df_ftype_v2df, IX86_BUILTIN_MOVDDUP);
}
/* Errors in the source file can cause expand_expr to return const0_rtx
@@ -12795,6 +13233,13 @@ ix86_expand_binop_builtin (icode, arglist, target)
|| ! (*insn_data[icode].operand[0].predicate) (target, tmode))
target = gen_reg_rtx (tmode);
+ if (GET_MODE (op1) == SImode && mode1 == TImode)
+ {
+ rtx x = gen_reg_rtx (V4SImode);
+ emit_insn (gen_sse2_loadd (x, op1));
+ op1 = gen_lowpart (TImode, x);
+ }
+
/* In case the insn wants input operands in modes different from
the result, abort. */
if (GET_MODE (op0) != mode0 || GET_MODE (op1) != mode1)
@@ -12837,9 +13282,7 @@ ix86_expand_store_builtin (icode, arglist)
op1 = safe_vector_operand (op1, mode1);
op0 = gen_rtx_MEM (mode0, copy_to_mode_reg (Pmode, op0));
-
- if (! (*insn_data[icode].operand[1].predicate) (op1, mode1))
- op1 = copy_to_mode_reg (mode1, op1);
+ op1 = copy_to_mode_reg (mode1, op1);
pat = GEN_FCN (icode) (op0, op1);
if (pat)
@@ -13548,6 +13991,41 @@ ix86_expand_builtin (exp, target, subtarget, mode, ignore)
case IX86_BUILTIN_STORED:
return ix86_expand_store_builtin (CODE_FOR_sse2_stored, arglist);
+ case IX86_BUILTIN_MONITOR:
+ arg0 = TREE_VALUE (arglist);
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0);
+ if (!REG_P (op0))
+ op0 = copy_to_mode_reg (SImode, op0);
+ if (!REG_P (op1))
+ op1 = copy_to_mode_reg (SImode, op1);
+ if (!REG_P (op2))
+ op2 = copy_to_mode_reg (SImode, op2);
+ emit_insn (gen_monitor (op0, op1, op2));
+ return 0;
+
+ case IX86_BUILTIN_MWAIT:
+ arg0 = TREE_VALUE (arglist);
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0);
+ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0);
+ if (!REG_P (op0))
+ op0 = copy_to_mode_reg (SImode, op0);
+ if (!REG_P (op1))
+ op1 = copy_to_mode_reg (SImode, op1);
+ emit_insn (gen_mwait (op0, op1));
+ return 0;
+
+ case IX86_BUILTIN_LOADDDUP:
+ return ix86_expand_unop_builtin (CODE_FOR_loadddup, arglist, target, 1);
+
+ case IX86_BUILTIN_LDDQU:
+ return ix86_expand_unop_builtin (CODE_FOR_lddqu, arglist, target,
+ 1);
+
default:
break;
}
@@ -13828,9 +14306,10 @@ ix86_hard_regno_mode_ok (regno, mode)
if (FP_REGNO_P (regno))
return VALID_FP_MODE_P (mode);
if (SSE_REGNO_P (regno))
- return VALID_SSE_REG_MODE (mode);
+ return (TARGET_SSE ? VALID_SSE_REG_MODE (mode) : 0);
if (MMX_REGNO_P (regno))
- return VALID_MMX_REG_MODE (mode) || VALID_MMX_REG_MODE_3DNOW (mode);
+ return (TARGET_MMX
+ ? VALID_MMX_REG_MODE (mode) || VALID_MMX_REG_MODE_3DNOW (mode) : 0);
/* We handle both integer and floats in the general purpose registers.
In future we should be able to handle vector modes as well. */
if (!VALID_INT_MODE_P (mode) && !VALID_FP_MODE_P (mode))
@@ -14299,7 +14778,7 @@ x86_function_profiler (file, labelno)
else
{
#ifndef NO_PROFILE_COUNTERS
- fprintf (file, "\tmovl\t$%sP%d,%%$s\n", LPREFIX, labelno,
+ fprintf (file, "\tmovl\t$%sP%d,%%%s\n", LPREFIX, labelno,
PROFILE_COUNT_REGISTER);
#endif
fprintf (file, "\tcall\t%s\n", MCOUNT_NAME);
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 493a2b5bf9c..3806a080779 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -114,10 +114,11 @@ extern int target_flags;
#define MASK_MMX 0x00002000 /* Support MMX regs/builtins */
#define MASK_SSE 0x00004000 /* Support SSE regs/builtins */
#define MASK_SSE2 0x00008000 /* Support SSE2 regs/builtins */
-#define MASK_3DNOW 0x00010000 /* Support 3Dnow builtins */
-#define MASK_3DNOW_A 0x00020000 /* Support Athlon 3Dnow builtins */
-#define MASK_128BIT_LONG_DOUBLE 0x00040000 /* long double size is 128bit */
-#define MASK_64BIT 0x00080000 /* Produce 64bit code */
+#define MASK_SSE3 0x00010000 /* Support SSE3 builtins */
+#define MASK_3DNOW 0x00020000 /* Support 3Dnow builtins */
+#define MASK_3DNOW_A 0x00040000 /* Support Athlon 3Dnow builtins */
+#define MASK_128BIT_LONG_DOUBLE 0x00080000 /* long double size is 128bit */
+#define MASK_64BIT 0x00100000 /* Produce 64bit code */
/* Unused: 0x03f0000 */
@@ -271,8 +272,9 @@ extern int x86_prefetch_sse;
#define ASSEMBLER_DIALECT (ix86_asm_dialect)
-#define TARGET_SSE ((target_flags & (MASK_SSE | MASK_SSE2)) != 0)
+#define TARGET_SSE ((target_flags & MASK_SSE) != 0)
#define TARGET_SSE2 ((target_flags & MASK_SSE2) != 0)
+#define TARGET_SSE3 ((target_flags & MASK_SSE3) != 0)
#define TARGET_SSE_MATH ((ix86_fpmath & FPMATH_SSE) != 0)
#define TARGET_MIX_SSE_I387 ((ix86_fpmath & FPMATH_SSE) \
&& (ix86_fpmath & FPMATH_387))
@@ -300,6 +302,8 @@ extern int x86_prefetch_sse;
{ "486", 0, "" /*Deprecated.*/}, \
{ "pentium", 0, "" /*Deprecated.*/}, \
{ "pentiumpro", 0, "" /*Deprecated.*/}, \
+ { "pni", 0, "" /*Deprecated.*/}, \
+ { "no-pni", 0, "" /*Deprecated.*/}, \
{ "intel-syntax", 0, "" /*Deprecated.*/}, \
{ "no-intel-syntax", 0, "" /*Deprecated.*/}, \
{ "rtd", MASK_RTD, \
@@ -366,6 +370,10 @@ extern int x86_prefetch_sse;
N_("Support MMX, SSE and SSE2 built-in functions and code generation") }, \
{ "no-sse2", -MASK_SSE2, \
N_("Do not support MMX, SSE and SSE2 built-in functions and code generation") }, \
+ { "sse3", MASK_SSE3, \
+ N_("Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation") }, \
+ { "no-sse3", -MASK_SSE3, \
+ N_("Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation") }, \
{ "128bit-long-double", MASK_128BIT_LONG_DOUBLE, \
N_("sizeof(long double) is 16") }, \
{ "96bit-long-double", -MASK_128BIT_LONG_DOUBLE, \
@@ -469,6 +477,10 @@ extern int x86_prefetch_sse;
%n`-mpentium' is deprecated. Use `-march=pentium' or `-mcpu=pentium' instead.\n} \
%{mpentiumpro:-mcpu=pentiumpro \
%n`-mpentiumpro' is deprecated. Use `-march=pentiumpro' or `-mcpu=pentiumpro' instead.\n}} \
+%{mpni:-msse3 \
+%n`-mpni' is deprecated. Use `-msse3' instead.\n} \
+%{mno-pni:-mno-sse3 \
+%n`-mno-pni' is deprecated. Use `-mno-sse3' instead.\n} \
%{mintel-syntax:-masm=intel \
%n`-mintel-syntax' is deprecated. Use `-masm=intel' instead.\n} \
%{mno-intel-syntax:-masm=att \
@@ -487,9 +499,10 @@ extern int x86_prefetch_sse;
if (TARGET_64BIT) \
{ \
builtin_assert ("cpu=x86_64"); \
- builtin_assert ("machine=x86_64"); \
builtin_define ("__x86_64"); \
builtin_define ("__x86_64__"); \
+ builtin_define ("__amd64"); \
+ builtin_define ("__amd64__"); \
} \
else \
{ \
@@ -553,6 +566,11 @@ extern int x86_prefetch_sse;
builtin_define ("__SSE__"); \
if (TARGET_SSE2) \
builtin_define ("__SSE2__"); \
+ if (TARGET_SSE3) \
+ { \
+ builtin_define ("__SSE3__"); \
+ builtin_define ("__PNI__"); \
+ } \
if (TARGET_SSE_MATH && TARGET_SSE) \
builtin_define ("__SSE_MATH__"); \
if (TARGET_SSE_MATH && TARGET_SSE2) \
@@ -1047,7 +1065,7 @@ do { \
&& (TARGET_64BIT || !TARGET_PARTIAL_REG_STALL)) \
|| ((MODE1) == DImode && TARGET_64BIT)) \
&& ((MODE2) == HImode || (MODE2) == SImode \
- || ((MODE1) == QImode \
+ || ((MODE2) == QImode \
&& (TARGET_64BIT || !TARGET_PARTIAL_REG_STALL)) \
|| ((MODE2) == DImode && TARGET_64BIT))))
@@ -1522,6 +1540,20 @@ enum reg_class
|| ((CLASS) == SIREG) \
|| ((CLASS) == DIREG))
+/* Return a class of registers that cannot change FROM mode to TO mode.
+
+ x87 registers can't do subreg as all values are reformated to extended
+ precision. XMM registers does not support with nonzero offsets equal
+ to 4, 8 and 12 otherwise valid for integer registers. Since we can't
+ determine these, prohibit all nonparadoxical subregs changing size. */
+
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_SIZE (TO) < GET_MODE_SIZE (FROM) \
+ ? reg_classes_intersect_p (FLOAT_SSE_REGS, (CLASS)) \
+ || MAYBE_MMX_CLASS_P (CLASS) \
+ : GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (FLOAT_REGS, (CLASS)) : 0)
+
/* A C statement that adds to CLOBBERS any hard regs the port wishes
to automatically clobber for all asms.
@@ -1716,17 +1748,28 @@ typedef struct ix86_args {
#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0
+/* A C expression that indicates when an argument must be passed by
+ reference. If nonzero for an argument, a copy of that argument is
+ made in memory and a pointer to the argument is passed instead of
+ the argument itself. The pointer is passed in whatever way is
+ appropriate for passing a pointer to that type. */
+
+#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \
+ function_arg_pass_by_reference(&CUM, MODE, TYPE, NAMED)
+
/* If PIC, we cannot make sibling calls to global functions
because the PLT requires %ebx live.
- If we are returning floats on the register stack, we cannot make
- sibling calls to functions that return floats. (The stack adjust
- instruction will wind up after the sibcall jump, and not be executed.) */
+ If we are returning floats on the 80387 register stack, we cannot
+ make a sibcall from a function that doesn't return a float to a
+ function that does or, conversely, from a function that does return
+ a float to a function that doesn't; the necessary stack adjustment
+ would not be executed. */
#define FUNCTION_OK_FOR_SIBCALL(DECL) \
((DECL) \
&& (! flag_pic || ! TREE_PUBLIC (DECL)) \
&& (! TARGET_FLOAT_RETURNS_IN_80387 \
- || ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
- || FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl))))))
+ || (FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
+ == FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl)))))))
/* Perform any needed actions needed for a function that is receiving a
variable number of arguments.
@@ -2068,9 +2111,12 @@ enum ix86_builtins
IX86_BUILTIN_CVTPI2PS,
IX86_BUILTIN_CVTPS2PI,
IX86_BUILTIN_CVTSI2SS,
+ IX86_BUILTIN_CVTSI642SS,
IX86_BUILTIN_CVTSS2SI,
+ IX86_BUILTIN_CVTSS2SI64,
IX86_BUILTIN_CVTTPS2PI,
IX86_BUILTIN_CVTTSS2SI,
+ IX86_BUILTIN_CVTTSS2SI64,
IX86_BUILTIN_MAXPS,
IX86_BUILTIN_MAXSS,
@@ -2116,6 +2162,7 @@ enum ix86_builtins
IX86_BUILTIN_PADDB,
IX86_BUILTIN_PADDW,
IX86_BUILTIN_PADDD,
+ IX86_BUILTIN_PADDQ,
IX86_BUILTIN_PADDSB,
IX86_BUILTIN_PADDSW,
IX86_BUILTIN_PADDUSB,
@@ -2123,6 +2170,7 @@ enum ix86_builtins
IX86_BUILTIN_PSUBB,
IX86_BUILTIN_PSUBW,
IX86_BUILTIN_PSUBD,
+ IX86_BUILTIN_PSUBQ,
IX86_BUILTIN_PSUBSB,
IX86_BUILTIN_PSUBSW,
IX86_BUILTIN_PSUBUSB,
@@ -2327,11 +2375,14 @@ enum ix86_builtins
IX86_BUILTIN_CVTPI2PD,
IX86_BUILTIN_CVTSI2SD,
+ IX86_BUILTIN_CVTSI642SD,
IX86_BUILTIN_CVTSD2SI,
+ IX86_BUILTIN_CVTSD2SI64,
IX86_BUILTIN_CVTSD2SS,
IX86_BUILTIN_CVTSS2SD,
IX86_BUILTIN_CVTTSD2SI,
+ IX86_BUILTIN_CVTTSD2SI64,
IX86_BUILTIN_CVTPS2DQ,
IX86_BUILTIN_CVTPS2PD,
@@ -2446,6 +2497,22 @@ enum ix86_builtins
IX86_BUILTIN_MFENCE,
IX86_BUILTIN_LFENCE,
+ /* Prescott New Instructions. */
+ IX86_BUILTIN_ADDSUBPS,
+ IX86_BUILTIN_HADDPS,
+ IX86_BUILTIN_HSUBPS,
+ IX86_BUILTIN_MOVSHDUP,
+ IX86_BUILTIN_MOVSLDUP,
+ IX86_BUILTIN_ADDSUBPD,
+ IX86_BUILTIN_HADDPD,
+ IX86_BUILTIN_HSUBPD,
+ IX86_BUILTIN_LOADDDUP,
+ IX86_BUILTIN_MOVDDUP,
+ IX86_BUILTIN_LDDQU,
+
+ IX86_BUILTIN_MONITOR,
+ IX86_BUILTIN_MWAIT,
+
IX86_BUILTIN_MAX
};
@@ -3252,6 +3319,7 @@ do { \
SYMBOL_REF, LABEL_REF, SUBREG, REG, MEM}}, \
{"nonmemory_no_elim_operand", {CONST_INT, REG, SUBREG}}, \
{"index_register_operand", {SUBREG, REG}}, \
+ {"flags_reg_operand", {REG}}, \
{"q_regs_operand", {SUBREG, REG}}, \
{"non_q_regs_operand", {SUBREG, REG}}, \
{"fcmov_comparison_operator", {EQ, NE, LTU, GTU, LEU, GEU, UNORDERED, \
@@ -3286,6 +3354,8 @@ do { \
{"register_and_not_any_fp_reg_operand", {REG}}, \
{"fp_register_operand", {REG}}, \
{"register_and_not_fp_reg_operand", {REG}}, \
+ {"vector_move_operand", {CONST_VECTOR, SUBREG, REG, MEM}}, \
+ {"compare_operator", {COMPARE}},
/* A list of predicates that do special things with modes, and so
should not elicit warnings for VOIDmode match_operand. */
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index befbfe49569..50328260450 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1,5 +1,6 @@
;; GCC machine description for IA-32 and x86-64.
-;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+;; 2001, 2002, 2003
;; Free Software Foundation, Inc.
;; Mostly by William Schelter.
;; x86_64 support added by Jan Hubicka
@@ -109,6 +110,13 @@
(UNSPEC_MFENCE 59)
(UNSPEC_LFENCE 60)
(UNSPEC_PSADBW 61)
+ (UNSPEC_ADDSUB 71)
+ (UNSPEC_HADD 72)
+ (UNSPEC_HSUB 73)
+ (UNSPEC_MOVSHDUP 74)
+ (UNSPEC_MOVSLDUP 75)
+ (UNSPEC_LDQQU 76)
+ (UNSPEC_MOVDDUP 77)
])
(define_constants
@@ -119,6 +127,8 @@
(UNSPECV_STMXCSR 40)
(UNSPECV_FEMMS 46)
(UNSPECV_CLFLUSH 57)
+ (UNSPECV_MONITOR 69)
+ (UNSPECV_MWAIT 70)
])
;; Insns whose names begin with "x86_" are emitted by gen_FOO calls
@@ -267,6 +277,8 @@
(define_attr "length" ""
(cond [(eq_attr "type" "other,multi,fistp")
(const_int 16)
+ (eq_attr "type" "fcmp")
+ (const_int 4)
(eq_attr "unit" "i387")
(plus (const_int 2)
(plus (attr "prefix_data16")
@@ -680,7 +692,7 @@
[(set (reg:CC 17)
(compare:CC (match_operand:XF 0 "cmp_fp_expander_operand" "")
(match_operand:XF 1 "cmp_fp_expander_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
ix86_compare_op0 = operands[0];
ix86_compare_op1 = operands[1];
@@ -808,7 +820,7 @@
(compare:CCFP
(match_operand:XF 0 "register_operand" "f")
(match_operand:XF 1 "register_operand" "f")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_fp_compare (insn, operands, 0, 0);"
[(set_attr "type" "fcmp")
(set_attr "mode" "XF")])
@@ -830,7 +842,7 @@
(match_operand:XF 1 "register_operand" "f")
(match_operand:XF 2 "register_operand" "f"))]
UNSPEC_FNSTSW))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_fp_compare (insn, operands, 2, 0);"
[(set_attr "type" "multi")
(set_attr "mode" "XF")])
@@ -1099,25 +1111,20 @@
(set_attr "mode" "SI")
(set_attr "length_immediate" "1")])
-; The first alternative is used only to compute proper length of instruction.
-; Reload's algorithm does not take into account the cost of spill instructions
-; needed to free register in given class, so avoid it from choosing the first
-; alternative when eax is not available.
-
(define_insn "*movsi_1"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=*?a,r,*?a,m,!*y,!rm,!*y,!*Y,!rm,!*Y")
- (match_operand:SI 1 "general_operand" "im,rinm,rinm,rin,rm,*y,*y,rm,*Y,*Y"))]
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,m,!*y,!rm,!*y,!*Y,!*Y,!rm")
+ (match_operand:SI 1 "general_operand" "rinm,rin,rm,*y,*y,*Y,rm,*Y"))]
"GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
{
switch (get_attr_type (insn))
{
case TYPE_SSEMOV:
- if (get_attr_mode (insn) == TImode)
+ if (get_attr_mode (insn) == MODE_TI)
return "movdqa\t{%1, %0|%0, %1}";
return "movd\t{%1, %0|%0, %1}";
case TYPE_MMXMOV:
- if (get_attr_mode (insn) == DImode)
+ if (get_attr_mode (insn) == MODE_DI)
return "movq\t{%1, %0|%0, %1}";
return "movd\t{%1, %0|%0, %1}";
@@ -1131,40 +1138,38 @@
}
}
[(set (attr "type")
- (cond [(eq_attr "alternative" "4,5,6")
+ (cond [(eq_attr "alternative" "2,3,4")
(const_string "mmxmov")
- (eq_attr "alternative" "7,8,9")
+ (eq_attr "alternative" "5,6,7")
(const_string "ssemov")
(and (ne (symbol_ref "flag_pic") (const_int 0))
(match_operand:SI 1 "symbolic_operand" ""))
(const_string "lea")
]
(const_string "imov")))
- (set_attr "modrm" "0,*,0,*,*,*,*,*,*,*")
- (set_attr "mode" "SI,SI,SI,SI,SI,SI,DI,TI,SI,SI")])
+ (set_attr "mode" "SI,SI,SI,SI,DI,TI,SI,SI")])
;; Stores and loads of ax to arbitary constant address.
;; We fake an second form of instruction to force reload to load address
;; into register when rax is not available
(define_insn "*movabssi_1_rex64"
- [(set (mem:SI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r"))
- (match_operand:SI 1 "nonmemory_operand" "a,er,i"))]
- "TARGET_64BIT"
+ [(set (mem:SI (match_operand:DI 0 "x86_64_movabs_operand" "i,r"))
+ (match_operand:SI 1 "nonmemory_operand" "a,er"))]
+ "TARGET_64BIT && ix86_check_movabs (insn, 0)"
"@
movabs{l}\t{%1, %P0|%P0, %1}
- mov{l}\t{%1, %a0|%a0, %1}
- movabs{l}\t{%1, %a0|%a0, %1}"
+ mov{l}\t{%1, %a0|%a0, %1}"
[(set_attr "type" "imov")
- (set_attr "modrm" "0,*,*")
- (set_attr "length_address" "8,0,0")
- (set_attr "length_immediate" "0,*,*")
+ (set_attr "modrm" "0,*")
+ (set_attr "length_address" "8,0")
+ (set_attr "length_immediate" "0,*")
(set_attr "memory" "store")
(set_attr "mode" "SI")])
(define_insn "*movabssi_2_rex64"
[(set (match_operand:SI 0 "register_operand" "=a,r")
(mem:SI (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))]
- "TARGET_64BIT"
+ "TARGET_64BIT && ix86_check_movabs (insn, 1)"
"@
movabs{l}\t{%P1, %0|%0, %P1}
mov{l}\t{%a1, %0|%0, %a1}"
@@ -1183,10 +1188,9 @@
""
"xchg{l}\t%1, %0"
[(set_attr "type" "imov")
+ (set_attr "mode" "SI")
(set_attr "pent_pair" "np")
(set_attr "athlon_decode" "vector")
- (set_attr "mode" "SI")
- (set_attr "modrm" "0")
(set_attr "ppro_uops" "few")])
(define_expand "movhi"
@@ -1214,14 +1218,9 @@
[(set_attr "type" "push")
(set_attr "mode" "QI")])
-; The first alternative is used only to compute proper length of instruction.
-; Reload's algorithm does not take into account the cost of spill instructions
-; needed to free register in given class, so avoid it from choosing the first
-; alternative when eax is not available.
-
(define_insn "*movhi_1"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=*?a,r,r,*?a,r,m")
- (match_operand:HI 1 "general_operand" "i,r,rn,rm,rm,rn"))]
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,m")
+ (match_operand:HI 1 "general_operand" "r,rn,rm,rn"))]
"GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
{
switch (get_attr_type (insn))
@@ -1238,59 +1237,57 @@
}
}
[(set (attr "type")
- (cond [(and (eq_attr "alternative" "0,1")
+ (cond [(and (eq_attr "alternative" "0")
(ior (eq (symbol_ref "TARGET_PARTIAL_REG_STALL")
(const_int 0))
(eq (symbol_ref "TARGET_HIMODE_MATH")
(const_int 0))))
(const_string "imov")
- (and (eq_attr "alternative" "2,3,4")
+ (and (eq_attr "alternative" "1,2")
(match_operand:HI 1 "aligned_operand" ""))
(const_string "imov")
(and (ne (symbol_ref "TARGET_MOVX")
(const_int 0))
- (eq_attr "alternative" "0,1,3,4"))
+ (eq_attr "alternative" "0,2"))
(const_string "imovx")
]
(const_string "imov")))
(set (attr "mode")
(cond [(eq_attr "type" "imovx")
(const_string "SI")
- (and (eq_attr "alternative" "2,3,4")
+ (and (eq_attr "alternative" "1,2")
(match_operand:HI 1 "aligned_operand" ""))
(const_string "SI")
- (and (eq_attr "alternative" "0,1")
+ (and (eq_attr "alternative" "0")
(ior (eq (symbol_ref "TARGET_PARTIAL_REG_STALL")
(const_int 0))
(eq (symbol_ref "TARGET_HIMODE_MATH")
(const_int 0))))
(const_string "SI")
]
- (const_string "HI")))
- (set_attr "modrm" "0,*,*,0,*,*")])
+ (const_string "HI")))])
;; Stores and loads of ax to arbitary constant address.
;; We fake an second form of instruction to force reload to load address
;; into register when rax is not available
(define_insn "*movabshi_1_rex64"
- [(set (mem:HI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r"))
- (match_operand:HI 1 "nonmemory_operand" "a,er,i"))]
- "TARGET_64BIT"
+ [(set (mem:HI (match_operand:DI 0 "x86_64_movabs_operand" "i,r"))
+ (match_operand:HI 1 "nonmemory_operand" "a,er"))]
+ "TARGET_64BIT && ix86_check_movabs (insn, 0)"
"@
movabs{w}\t{%1, %P0|%P0, %1}
- mov{w}\t{%1, %a0|%a0, %1}
- movabs{w}\t{%1, %a0|%a0, %1}"
+ mov{w}\t{%1, %a0|%a0, %1}"
[(set_attr "type" "imov")
- (set_attr "modrm" "0,*,*")
- (set_attr "length_address" "8,0,0")
- (set_attr "length_immediate" "0,*,*")
+ (set_attr "modrm" "0,*")
+ (set_attr "length_address" "8,0")
+ (set_attr "length_immediate" "0,*")
(set_attr "memory" "store")
(set_attr "mode" "HI")])
(define_insn "*movabshi_2_rex64"
[(set (match_operand:HI 0 "register_operand" "=a,r")
(mem:HI (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))]
- "TARGET_64BIT"
+ "TARGET_64BIT && ix86_check_movabs (insn, 1)"
"@
movabs{w}\t{%P1, %0|%0, %P1}
mov{w}\t{%a1, %0|%0, %a1}"
@@ -1306,12 +1303,12 @@
(match_operand:HI 1 "register_operand" "+r"))
(set (match_dup 1)
(match_dup 0))]
- "TARGET_PARTIAL_REG_STALL"
- "xchg{w}\t%1, %0"
+ "!TARGET_PARTIAL_REG_STALL || optimize_size"
+ "xchg{l}\t%k1, %k0"
[(set_attr "type" "imov")
+ (set_attr "mode" "SI")
(set_attr "pent_pair" "np")
- (set_attr "mode" "HI")
- (set_attr "modrm" "0")
+ (set_attr "athlon_decode" "vector")
(set_attr "ppro_uops" "few")])
(define_insn "*swaphi_2"
@@ -1319,12 +1316,12 @@
(match_operand:HI 1 "register_operand" "+r"))
(set (match_dup 1)
(match_dup 0))]
- "! TARGET_PARTIAL_REG_STALL"
- "xchg{l}\t%k1, %k0"
+ "TARGET_PARTIAL_REG_STALL"
+ "xchg{w}\t%1, %0"
[(set_attr "type" "imov")
+ (set_attr "mode" "HI")
(set_attr "pent_pair" "np")
- (set_attr "mode" "SI")
- (set_attr "modrm" "0")
+ (set_attr "athlon_decode" "vector")
(set_attr "ppro_uops" "few")])
(define_expand "movstricthi"
@@ -1472,23 +1469,36 @@
DONE;
})
-(define_insn "*swapqi"
+(define_insn "*swapqi_1"
[(set (match_operand:QI 0 "register_operand" "+r")
(match_operand:QI 1 "register_operand" "+r"))
(set (match_dup 1)
(match_dup 0))]
- ""
- "xchg{b}\t%1, %0"
+ "!TARGET_PARTIAL_REG_STALL || optimize_size"
+ "xchg{l}\t%k1, %k0"
[(set_attr "type" "imov")
+ (set_attr "mode" "SI")
(set_attr "pent_pair" "np")
+ (set_attr "athlon_decode" "vector")
+ (set_attr "ppro_uops" "few")])
+
+(define_insn "*swapqi_2"
+ [(set (match_operand:QI 0 "register_operand" "+q")
+ (match_operand:QI 1 "register_operand" "+q"))
+ (set (match_dup 1)
+ (match_dup 0))]
+ "TARGET_PARTIAL_REG_STALL"
+ "xchg{b}\t%1, %0"
+ [(set_attr "type" "imov")
(set_attr "mode" "QI")
- (set_attr "modrm" "0")
+ (set_attr "pent_pair" "np")
+ (set_attr "athlon_decode" "vector")
(set_attr "ppro_uops" "few")])
(define_expand "movstrictqi"
[(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" ""))
(match_operand:QI 1 "general_operand" ""))]
- "! TARGET_PARTIAL_REG_STALL"
+ "! TARGET_PARTIAL_REG_STALL || optimize_size"
{
/* Don't generate memory->memory moves, go through a register. */
if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
@@ -1498,7 +1508,7 @@
(define_insn "*movstrictqi_1"
[(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q"))
(match_operand:QI 1 "general_operand" "*qn,m"))]
- "! TARGET_PARTIAL_REG_STALL
+ "(! TARGET_PARTIAL_REG_STALL || optimize_size)
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
"mov{b}\t{%1, %0|%0, %1}"
[(set_attr "type" "imov")
@@ -1592,24 +1602,23 @@
;; We fake an second form of instruction to force reload to load address
;; into register when rax is not available
(define_insn "*movabsqi_1_rex64"
- [(set (mem:QI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r"))
- (match_operand:QI 1 "nonmemory_operand" "a,er,i"))]
- "TARGET_64BIT"
+ [(set (mem:QI (match_operand:DI 0 "x86_64_movabs_operand" "i,r"))
+ (match_operand:QI 1 "nonmemory_operand" "a,er"))]
+ "TARGET_64BIT && ix86_check_movabs (insn, 0)"
"@
movabs{b}\t{%1, %P0|%P0, %1}
- mov{b}\t{%1, %a0|%a0, %1}
- movabs{b}\t{%1, %a0|%a0, %1}"
+ mov{b}\t{%1, %a0|%a0, %1}"
[(set_attr "type" "imov")
- (set_attr "modrm" "0,*,*")
- (set_attr "length_address" "8,0,0")
- (set_attr "length_immediate" "0,*,*")
+ (set_attr "modrm" "0,*")
+ (set_attr "length_address" "8,0")
+ (set_attr "length_immediate" "0,*")
(set_attr "memory" "store")
(set_attr "mode" "QI")])
(define_insn "*movabsqi_2_rex64"
[(set (match_operand:QI 0 "register_operand" "=a,r")
(mem:QI (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))]
- "TARGET_64BIT"
+ "TARGET_64BIT && ix86_check_movabs (insn, 1)"
"@
movabs{b}\t{%P1, %0|%0, %P1}
mov{b}\t{%a1, %0|%0, %a1}"
@@ -1693,11 +1702,11 @@
[(set_attr "type" "imov")
(set_attr "mode" "QI")])
-(define_insn "*movsi_insv_1_rex64"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "+Q")
+(define_insn "movdi_insv_1_rex64"
+ [(set (zero_extract:DI (match_operand 0 "ext_register_operand" "+Q")
(const_int 8)
(const_int 8))
- (match_operand:SI 1 "nonmemory_operand" "Qn"))]
+ (match_operand:DI 1 "nonmemory_operand" "Qn"))]
"TARGET_64BIT"
"mov{b}\t{%b1, %h0|%h0, %b1}"
[(set_attr "type" "imov")
@@ -1904,7 +1913,7 @@
[(set (attr "type")
(cond [(eq_attr "alternative" "5,6")
(const_string "mmxmov")
- (eq_attr "alternative" "7,8")
+ (eq_attr "alternative" "7,8,9")
(const_string "ssemov")
(eq_attr "alternative" "4")
(const_string "multi")
@@ -1921,24 +1930,23 @@
;; We fake an second form of instruction to force reload to load address
;; into register when rax is not available
(define_insn "*movabsdi_1_rex64"
- [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r,r"))
- (match_operand:DI 1 "nonmemory_operand" "a,er,i"))]
- "TARGET_64BIT"
+ [(set (mem:DI (match_operand:DI 0 "x86_64_movabs_operand" "i,r"))
+ (match_operand:DI 1 "nonmemory_operand" "a,er"))]
+ "TARGET_64BIT && ix86_check_movabs (insn, 0)"
"@
movabs{q}\t{%1, %P0|%P0, %1}
- mov{q}\t{%1, %a0|%a0, %1}
- movabs{q}\t{%1, %a0|%a0, %1}"
+ mov{q}\t{%1, %a0|%a0, %1}"
[(set_attr "type" "imov")
- (set_attr "modrm" "0,*,*")
- (set_attr "length_address" "8,0,0")
- (set_attr "length_immediate" "0,*,*")
+ (set_attr "modrm" "0,*")
+ (set_attr "length_address" "8,0")
+ (set_attr "length_immediate" "0,*")
(set_attr "memory" "store")
(set_attr "mode" "DI")])
(define_insn "*movabsdi_2_rex64"
[(set (match_operand:DI 0 "register_operand" "=a,r")
(mem:DI (match_operand:DI 1 "x86_64_movabs_operand" "i,r")))]
- "TARGET_64BIT"
+ "TARGET_64BIT && ix86_check_movabs (insn, 1)"
"@
movabs{q}\t{%P1, %0|%0, %P1}
mov{q}\t{%a1, %0|%0, %a1}"
@@ -1991,13 +1999,11 @@
"TARGET_64BIT"
"xchg{q}\t%1, %0"
[(set_attr "type" "imov")
+ (set_attr "mode" "DI")
(set_attr "pent_pair" "np")
(set_attr "athlon_decode" "vector")
- (set_attr "mode" "DI")
- (set_attr "modrm" "0")
(set_attr "ppro_uops" "few")])
-
(define_expand "movsf"
[(set (match_operand:SF 0 "nonimmediate_operand" "")
(match_operand:SF 1 "general_operand" ""))]
@@ -2430,7 +2436,7 @@
(define_expand "movxf"
[(set (match_operand:XF 0 "nonimmediate_operand" "")
(match_operand:XF 1 "general_operand" ""))]
- "!TARGET_64BIT"
+ "!TARGET_128BIT_LONG_DOUBLE"
"ix86_expand_move (XFmode, operands); DONE;")
(define_expand "movtf"
@@ -2449,7 +2455,7 @@
(define_insn "*pushxf_nointeger"
[(set (match_operand:XF 0 "push_operand" "=X,X,X")
(match_operand:XF 1 "general_no_elim_operand" "f,Fo,*r"))]
- "!TARGET_64BIT && optimize_size"
+ "!TARGET_128BIT_LONG_DOUBLE && optimize_size"
{
switch (which_alternative)
{
@@ -2505,7 +2511,7 @@
(define_insn "*pushxf_integer"
[(set (match_operand:XF 0 "push_operand" "=<,<")
(match_operand:XF 1 "general_no_elim_operand" "f#r,ro#f"))]
- "!TARGET_64BIT && !optimize_size"
+ "!TARGET_128BIT_LONG_DOUBLE && !optimize_size"
{
switch (which_alternative)
{
@@ -2576,7 +2582,7 @@
(define_split
[(set (match_operand:XF 0 "push_operand" "")
(match_operand:XF 1 "any_fp_register_operand" ""))]
- "!TARGET_64BIT"
+ "!TARGET_128BIT_LONG_DOUBLE"
[(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -12)))
(set (mem:XF (reg:SI 7)) (match_dup 1))])
@@ -2598,7 +2604,7 @@
(define_insn "*movxf_nointeger"
[(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,f,*r,o")
(match_operand:XF 1 "general_operand" "fm,f,G,*roF,F*r"))]
- "!TARGET_64BIT
+ "!TARGET_128BIT_LONG_DOUBLE
&& optimize_size
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
&& (reload_in_progress || reload_completed
@@ -2692,7 +2698,7 @@
(define_insn "*movxf_integer"
[(set (match_operand:XF 0 "nonimmediate_operand" "=f#r,m,f#r,r#f,o")
(match_operand:XF 1 "general_operand" "fm#r,f#r,G,roF#f,Fr#f"))]
- "!TARGET_64BIT
+ "!TARGET_128BIT_LONG_DOUBLE
&& !optimize_size
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
&& (reload_in_progress || reload_completed
@@ -3363,7 +3369,7 @@
(define_split
[(set (match_operand:XF 0 "push_operand" "")
(float_extend:XF (match_operand:SF 1 "fp_register_operand" "")))]
- "!TARGET_64BIT"
+ "!TARGET_128BIT_LONG_DOUBLE"
[(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -12)))
(set (mem:XF (reg:SI 7)) (float_extend:XF (match_dup 1)))])
@@ -3396,7 +3402,7 @@
(define_split
[(set (match_operand:XF 0 "push_operand" "")
(float_extend:XF (match_operand:DF 1 "fp_register_operand" "")))]
- "!TARGET_64BIT"
+ "!TARGET_128BIT_LONG_DOUBLE"
[(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -12)))
(set (mem:DF (reg:SI 7)) (float_extend:XF (match_dup 1)))])
@@ -3478,7 +3484,7 @@
(define_expand "extendsfxf2"
[(set (match_operand:XF 0 "nonimmediate_operand" "")
(float_extend:XF (match_operand:SF 1 "general_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
/* ??? Needed for compress_float_constant since all fp constants
are LEGITIMATE_CONSTANT_P. */
@@ -3491,7 +3497,7 @@
(define_insn "*extendsfxf2_1"
[(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
(float_extend:XF (match_operand:SF 1 "nonimmediate_operand" "fm,f")))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
{
switch (which_alternative)
@@ -3568,7 +3574,7 @@
(define_expand "extenddfxf2"
[(set (match_operand:XF 0 "nonimmediate_operand" "")
(float_extend:XF (match_operand:DF 1 "general_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
/* ??? Needed for compress_float_constant since all fp constants
are LEGITIMATE_CONSTANT_P. */
@@ -3581,7 +3587,7 @@
(define_insn "*extenddfxf2_1"
[(set (match_operand:XF 0 "nonimmediate_operand" "=f,m")
(float_extend:XF (match_operand:DF 1 "nonimmediate_operand" "fm,f")))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
{
switch (which_alternative)
@@ -3801,7 +3807,7 @@
(float_truncate:SF
(match_operand:XF 1 "register_operand" "")))
(clobber (match_dup 2))])]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"operands[2] = assign_386_stack_local (SFmode, 0);")
(define_insn "*truncxfsf2_1"
@@ -3809,7 +3815,7 @@
(float_truncate:SF
(match_operand:XF 1 "register_operand" "f,f,f,f")))
(clobber (match_operand:SF 2 "memory_operand" "=X,m,m,m"))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
switch (which_alternative)
{
@@ -3829,7 +3835,7 @@
[(set (match_operand:SF 0 "memory_operand" "=m")
(float_truncate:SF
(match_operand:XF 1 "register_operand" "f")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
if (find_regno_note (insn, REG_DEAD, REGNO (operands[1])))
return "fstp%z0\t%y0";
@@ -3926,7 +3932,7 @@
(float_truncate:DF
(match_operand:XF 1 "register_operand" "")))
(clobber (match_dup 2))])]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"operands[2] = assign_386_stack_local (DFmode, 0);")
(define_insn "*truncxfdf2_1"
@@ -3934,7 +3940,7 @@
(float_truncate:DF
(match_operand:XF 1 "register_operand" "f,f,f,f")))
(clobber (match_operand:DF 2 "memory_operand" "=X,m,m,m"))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
switch (which_alternative)
{
@@ -3955,7 +3961,7 @@
[(set (match_operand:DF 0 "memory_operand" "=m")
(float_truncate:DF
(match_operand:XF 1 "register_operand" "f")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
{
if (find_regno_note (insn, REG_DEAD, REGNO (operands[1])))
return "fstp%z0\t%y0";
@@ -4055,7 +4061,7 @@
(define_expand "fix_truncxfdi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "")
(fix:DI (match_operand:XF 1 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "fix_trunctfdi2"
@@ -4194,7 +4200,7 @@
(define_expand "fix_truncxfsi2"
[(set (match_operand:SI 0 "nonimmediate_operand" "")
(fix:SI (match_operand:XF 1 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "fix_trunctfsi2"
@@ -4327,7 +4333,7 @@
(define_expand "fix_truncxfhi2"
[(set (match_operand:HI 0 "nonimmediate_operand" "")
(fix:HI (match_operand:XF 1 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "fix_trunctfhi2"
@@ -4605,7 +4611,7 @@
(define_insn "floathixf2"
[(set (match_operand:XF 0 "register_operand" "=f,f")
(float:XF (match_operand:HI 1 "nonimmediate_operand" "m,r")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"@
fild%z1\t%1
#"
@@ -4627,7 +4633,7 @@
(define_insn "floatsixf2"
[(set (match_operand:XF 0 "register_operand" "=f,f")
(float:XF (match_operand:SI 1 "nonimmediate_operand" "m,r")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"@
fild%z1\t%1
#"
@@ -4649,7 +4655,7 @@
(define_insn "floatdixf2"
[(set (match_operand:XF 0 "register_operand" "=f,f")
(float:XF (match_operand:DI 1 "nonimmediate_operand" "m,r")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"@
fild%z1\t%1
#"
@@ -6315,7 +6321,7 @@
[(set (match_operand:XF 0 "register_operand" "")
(plus:XF (match_operand:XF 1 "register_operand" "")
(match_operand:XF 2 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "addtf3"
@@ -6643,7 +6649,7 @@
[(set (match_operand:XF 0 "register_operand" "")
(minus:XF (match_operand:XF 1 "register_operand" "")
(match_operand:XF 2 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "subtf3"
@@ -7102,7 +7108,7 @@
[(set (match_operand:XF 0 "register_operand" "")
(mult:XF (match_operand:XF 1 "register_operand" "")
(match_operand:XF 2 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "multf3"
@@ -7156,7 +7162,7 @@
[(set (match_operand:XF 0 "register_operand" "")
(div:XF (match_operand:XF 1 "register_operand" "")
(match_operand:XF 2 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"")
(define_expand "divtf3"
@@ -7563,17 +7569,21 @@
""
"")
-(define_insn "*testqi_1"
+(define_insn "*testqi_1_maybe_si"
[(set (reg 17)
- (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r")
- (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n"))
- (const_int 0)))]
- "ix86_match_ccmode (insn, CCNOmode)"
+ (compare
+ (and:QI
+ (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r")
+ (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n"))
+ (const_int 0)))]
+ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
+ && ix86_match_ccmode (insn,
+ GET_CODE (operands[1]) == CONST_INT
+ && INTVAL (operands[1]) >= 0 ? CCNOmode : CCZmode)"
{
if (which_alternative == 3)
{
- if (GET_CODE (operands[1]) == CONST_INT
- && (INTVAL (operands[1]) & 0xffffff00))
+ if (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) < 0)
operands[1] = GEN_INT (INTVAL (operands[1]) & 0xff);
return "test{l}\t{%1, %k0|%k0, %1}";
}
@@ -7584,6 +7594,18 @@
(set_attr "mode" "QI,QI,QI,SI")
(set_attr "pent_pair" "uv,np,uv,np")])
+(define_insn "*testqi_1"
+ [(set (reg 17)
+ (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm")
+ (match_operand:QI 1 "nonmemory_operand" "n,n,qn"))
+ (const_int 0)))]
+ "ix86_match_ccmode (insn, CCNOmode)"
+ "test{b}\t{%1, %0|%0, %1}"
+ [(set_attr "type" "test")
+ (set_attr "modrm" "0,1,1")
+ (set_attr "mode" "QI")
+ (set_attr "pent_pair" "uv,np,uv")])
+
(define_expand "testqi_ext_ccno_0"
[(set (reg:CCNO 17)
(compare:CCNO
@@ -7701,51 +7723,53 @@
"#")
(define_split
- [(set (reg 17)
- (compare (zero_extract
- (match_operand 0 "nonimmediate_operand" "")
- (match_operand 1 "const_int_operand" "")
- (match_operand 2 "const_int_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(zero_extract
+ (match_operand 2 "nonimmediate_operand" "")
+ (match_operand 3 "const_int_operand" "")
+ (match_operand 4 "const_int_operand" ""))
+ (const_int 0)]))]
"ix86_match_ccmode (insn, CCNOmode)"
- [(set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))]
+ [(set (match_dup 0) (match_op_dup 1 [(match_dup 2) (const_int 0)]))]
{
- HOST_WIDE_INT len = INTVAL (operands[1]);
- HOST_WIDE_INT pos = INTVAL (operands[2]);
+ rtx val = operands[2];
+ HOST_WIDE_INT len = INTVAL (operands[3]);
+ HOST_WIDE_INT pos = INTVAL (operands[4]);
HOST_WIDE_INT mask;
enum machine_mode mode, submode;
- mode = GET_MODE (operands[0]);
- if (GET_CODE (operands[0]) == MEM)
+ mode = GET_MODE (val);
+ if (GET_CODE (val) == MEM)
{
/* ??? Combine likes to put non-volatile mem extractions in QImode
no matter the size of the test. So find a mode that works. */
- if (! MEM_VOLATILE_P (operands[0]))
+ if (! MEM_VOLATILE_P (val))
{
mode = smallest_mode_for_size (pos + len, MODE_INT);
- operands[0] = adjust_address (operands[0], mode, 0);
+ val = adjust_address (val, mode, 0);
}
}
- else if (GET_CODE (operands[0]) == SUBREG
- && (submode = GET_MODE (SUBREG_REG (operands[0])),
+ else if (GET_CODE (val) == SUBREG
+ && (submode = GET_MODE (SUBREG_REG (val)),
GET_MODE_BITSIZE (mode) > GET_MODE_BITSIZE (submode))
&& pos + len <= GET_MODE_BITSIZE (submode))
{
/* Narrow a paradoxical subreg to prevent partial register stalls. */
mode = submode;
- operands[0] = SUBREG_REG (operands[0]);
+ val = SUBREG_REG (val);
}
else if (mode == HImode && pos + len <= 8)
{
/* Small HImode tests can be converted to QImode. */
mode = QImode;
- operands[0] = gen_lowpart (QImode, operands[0]);
+ val = gen_lowpart (QImode, val);
}
mask = ((HOST_WIDE_INT)1 << (pos + len)) - 1;
mask &= ~(((HOST_WIDE_INT)1 << pos) - 1);
- operands[3] = gen_rtx_AND (mode, operands[0], gen_int_mode (mask, mode));
+ operands[2] = gen_rtx_AND (mode, val, gen_int_mode (mask, mode));
})
;; Convert HImode/SImode test instructions with immediate to QImode ones.
@@ -7754,46 +7778,44 @@
;; Do the converison only post-reload to avoid limiting of the register class
;; to QI regs.
(define_split
- [(set (reg 17)
- (compare
- (and (match_operand 0 "register_operand" "")
- (match_operand 1 "const_int_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and (match_operand 2 "register_operand" "")
+ (match_operand 3 "const_int_operand" ""))
+ (const_int 0)]))]
"reload_completed
- && QI_REG_P (operands[0])
+ && QI_REG_P (operands[2])
+ && GET_MODE (operands[2]) != QImode
&& ((ix86_match_ccmode (insn, CCZmode)
- && !(INTVAL (operands[1]) & ~(255 << 8)))
+ && !(INTVAL (operands[3]) & ~(255 << 8)))
|| (ix86_match_ccmode (insn, CCNOmode)
- && !(INTVAL (operands[1]) & ~(127 << 8))))
- && GET_MODE (operands[0]) != QImode"
- [(set (reg:CCNO 17)
- (compare:CCNO
- (and:SI (zero_extract:SI (match_dup 0) (const_int 8) (const_int 8))
- (match_dup 1))
- (const_int 0)))]
- "operands[0] = gen_lowpart (SImode, operands[0]);
- operands[1] = gen_int_mode (INTVAL (operands[1]) >> 8, SImode);")
+ && !(INTVAL (operands[3]) & ~(127 << 8))))"
+ [(set (match_dup 0)
+ (match_op_dup 1
+ [(and:SI (zero_extract:SI (match_dup 2) (const_int 8) (const_int 8))
+ (match_dup 3))
+ (const_int 0)]))]
+ "operands[2] = gen_lowpart (SImode, operands[2]);
+ operands[3] = gen_int_mode (INTVAL (operands[3]) >> 8, SImode);")
(define_split
- [(set (reg 17)
- (compare
- (and (match_operand 0 "nonimmediate_operand" "")
- (match_operand 1 "const_int_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and (match_operand 2 "nonimmediate_operand" "")
+ (match_operand 3 "const_int_operand" ""))
+ (const_int 0)]))]
"reload_completed
- && (!REG_P (operands[0]) || ANY_QI_REG_P (operands[0]))
+ && GET_MODE (operands[2]) != QImode
+ && (!REG_P (operands[2]) || ANY_QI_REG_P (operands[2]))
&& ((ix86_match_ccmode (insn, CCZmode)
- && !(INTVAL (operands[1]) & ~255))
+ && !(INTVAL (operands[3]) & ~255))
|| (ix86_match_ccmode (insn, CCNOmode)
- && !(INTVAL (operands[1]) & ~127)))
- && GET_MODE (operands[0]) != QImode"
- [(set (reg:CCNO 17)
- (compare:CCNO
- (and:QI (match_dup 0)
- (match_dup 1))
- (const_int 0)))]
- "operands[0] = gen_lowpart (QImode, operands[0]);
- operands[1] = gen_lowpart (QImode, operands[1]);")
+ && !(INTVAL (operands[3]) & ~127)))"
+ [(set (match_dup 0)
+ (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3))
+ (const_int 0)]))]
+ "operands[2] = gen_lowpart (QImode, operands[2]);
+ operands[3] = gen_lowpart (QImode, operands[3]);")
;; %%% This used to optimize known byte-wide and operations to memory,
@@ -8070,7 +8092,7 @@
[(set_attr "type" "alu1")
(set_attr "mode" "QI")])
-(define_insn "*andqi_2"
+(define_insn "*andqi_2_maybe_si"
[(set (reg 17)
(compare (and:QI
(match_operand:QI 1 "nonimmediate_operand" "%0,0,0")
@@ -8078,13 +8100,14 @@
(const_int 0)))
(set (match_operand:QI 0 "nonimmediate_operand" "=q,qm,*r")
(and:QI (match_dup 1) (match_dup 2)))]
- "ix86_match_ccmode (insn, CCNOmode)
- && ix86_binary_operator_ok (AND, QImode, operands)"
+ "ix86_binary_operator_ok (AND, QImode, operands)
+ && ix86_match_ccmode (insn,
+ GET_CODE (operands[2]) == CONST_INT
+ && INTVAL (operands[2]) >= 0 ? CCNOmode : CCZmode)"
{
if (which_alternative == 2)
{
- if (GET_CODE (operands[2]) == CONST_INT
- && (INTVAL (operands[2]) & 0xffffff00))
+ if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) < 0)
operands[2] = GEN_INT (INTVAL (operands[2]) & 0xff);
return "and{l}\t{%2, %k0|%k0, %2}";
}
@@ -8093,6 +8116,20 @@
[(set_attr "type" "alu")
(set_attr "mode" "QI,QI,SI")])
+(define_insn "*andqi_2"
+ [(set (reg 17)
+ (compare (and:QI
+ (match_operand:QI 1 "nonimmediate_operand" "%0,0")
+ (match_operand:QI 2 "general_operand" "qim,qi"))
+ (const_int 0)))
+ (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm")
+ (and:QI (match_dup 1) (match_dup 2)))]
+ "ix86_match_ccmode (insn, CCNOmode)
+ && ix86_binary_operator_ok (AND, QImode, operands)"
+ "and{b}\t{%2, %0|%0, %2}"
+ [(set_attr "type" "alu")
+ (set_attr "mode" "QI")])
+
(define_insn "*andqi_2_slp"
[(set (reg 17)
(compare (and:QI
@@ -9550,7 +9587,7 @@
[(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
(neg:XF (match_operand:XF 1 "nonimmediate_operand" "")))
(clobber (reg:CC 17))])]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"ix86_expand_unary_operator (NEG, XFmode, operands); DONE;")
(define_expand "negtf2"
@@ -9567,7 +9604,7 @@
[(set (match_operand:XF 0 "nonimmediate_operand" "=f#r,rm#f")
(neg:XF (match_operand:XF 1 "nonimmediate_operand" "0,0")))
(clobber (reg:CC 17))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& ix86_unary_operator_ok (NEG, XFmode, operands)"
"#")
@@ -9655,7 +9692,7 @@
(define_insn "*negxf2_1"
[(set (match_operand:XF 0 "register_operand" "=f")
(neg:XF (match_operand:XF 1 "register_operand" "0")))]
- "!TARGET_64BIT && TARGET_80387 && reload_completed"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && reload_completed"
"fchs"
[(set_attr "type" "fsgn")
(set_attr "mode" "XF")
@@ -9665,7 +9702,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(neg:XF (float_extend:XF
(match_operand:DF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"fchs"
[(set_attr "type" "fsgn")
(set_attr "mode" "XF")
@@ -9675,7 +9712,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(neg:XF (float_extend:XF
(match_operand:SF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"fchs"
[(set_attr "type" "fsgn")
(set_attr "mode" "XF")
@@ -9977,7 +10014,7 @@
[(parallel [(set (match_operand:XF 0 "nonimmediate_operand" "")
(neg:XF (match_operand:XF 1 "nonimmediate_operand" "")))
(clobber (reg:CC 17))])]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"ix86_expand_unary_operator (ABS, XFmode, operands); DONE;")
(define_expand "abstf2"
@@ -9994,7 +10031,7 @@
[(set (match_operand:XF 0 "nonimmediate_operand" "=f#r,rm#f")
(abs:XF (match_operand:XF 1 "nonimmediate_operand" "0,0")))
(clobber (reg:CC 17))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& ix86_unary_operator_ok (ABS, XFmode, operands)"
"#")
@@ -10073,7 +10110,7 @@
(define_insn "*absxf2_1"
[(set (match_operand:XF 0 "register_operand" "=f")
(abs:XF (match_operand:XF 1 "register_operand" "0")))]
- "!TARGET_64BIT && TARGET_80387 && reload_completed"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && reload_completed"
"fabs"
[(set_attr "type" "fsgn")
(set_attr "mode" "DF")])
@@ -10082,7 +10119,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(abs:XF (float_extend:XF
(match_operand:DF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"fabs"
[(set_attr "type" "fsgn")
(set_attr "mode" "XF")])
@@ -10091,7 +10128,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(abs:XF (float_extend:XF
(match_operand:SF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"fabs"
[(set_attr "type" "fsgn")
(set_attr "mode" "XF")])
@@ -10151,17 +10188,19 @@
(set_attr "mode" "DI")])
(define_split
- [(set (reg 17)
- (compare (not:DI (match_operand:DI 1 "nonimmediate_operand" ""))
- (const_int 0)))
- (set (match_operand:DI 0 "nonimmediate_operand" "")
- (not:DI (match_dup 1)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(not:DI (match_operand:DI 3 "nonimmediate_operand" ""))
+ (const_int 0)]))
+ (set (match_operand:DI 1 "nonimmediate_operand" "")
+ (not:DI (match_dup 3)))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (xor:DI (match_dup 1) (const_int -1))
- (const_int 0)))
- (set (match_dup 0)
- (xor:DI (match_dup 1) (const_int -1)))])]
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2
+ [(xor:DI (match_dup 3) (const_int -1))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (xor:DI (match_dup 3) (const_int -1)))])]
"")
(define_expand "one_cmplsi2"
@@ -10200,17 +10239,18 @@
(set_attr "mode" "SI")])
(define_split
- [(set (reg 17)
- (compare (not:SI (match_operand:SI 1 "nonimmediate_operand" ""))
- (const_int 0)))
- (set (match_operand:SI 0 "nonimmediate_operand" "")
- (not:SI (match_dup 1)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(not:SI (match_operand:SI 3 "nonimmediate_operand" ""))
+ (const_int 0)]))
+ (set (match_operand:SI 1 "nonimmediate_operand" "")
+ (not:SI (match_dup 3)))]
"ix86_match_ccmode (insn, CCNOmode)"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (xor:SI (match_dup 1) (const_int -1))
- (const_int 0)))
- (set (match_dup 0)
- (xor:SI (match_dup 1) (const_int -1)))])]
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (xor:SI (match_dup 3) (const_int -1)))])]
"")
;; ??? Currently never generated - xor is used instead.
@@ -10227,17 +10267,18 @@
(set_attr "mode" "SI")])
(define_split
- [(set (reg 17)
- (compare (not:SI (match_operand:SI 1 "register_operand" ""))
- (const_int 0)))
- (set (match_operand:DI 0 "register_operand" "")
- (zero_extend:DI (not:SI (match_dup 1))))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(not:SI (match_operand:SI 3 "register_operand" ""))
+ (const_int 0)]))
+ (set (match_operand:DI 1 "register_operand" "")
+ (zero_extend:DI (not:SI (match_dup 3))))]
"ix86_match_ccmode (insn, CCNOmode)"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (xor:SI (match_dup 1) (const_int -1))
- (const_int 0)))
- (set (match_dup 0)
- (zero_extend:DI (xor:SI (match_dup 1) (const_int -1))))])]
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2 [(xor:SI (match_dup 3) (const_int -1))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (zero_extend:DI (xor:SI (match_dup 3) (const_int -1))))])]
"")
(define_expand "one_cmplhi2"
@@ -10267,17 +10308,18 @@
(set_attr "mode" "HI")])
(define_split
- [(set (reg 17)
- (compare (not:HI (match_operand:HI 1 "nonimmediate_operand" ""))
- (const_int 0)))
- (set (match_operand:HI 0 "nonimmediate_operand" "")
- (not:HI (match_dup 1)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(not:HI (match_operand:HI 3 "nonimmediate_operand" ""))
+ (const_int 0)]))
+ (set (match_operand:HI 1 "nonimmediate_operand" "")
+ (not:HI (match_dup 3)))]
"ix86_match_ccmode (insn, CCNOmode)"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (xor:HI (match_dup 1) (const_int -1))
- (const_int 0)))
- (set (match_dup 0)
- (xor:HI (match_dup 1) (const_int -1)))])]
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2 [(xor:HI (match_dup 3) (const_int -1))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (xor:HI (match_dup 3) (const_int -1)))])]
"")
;; %%% Potential partial reg stall on alternative 1. What to do?
@@ -10310,17 +10352,18 @@
(set_attr "mode" "QI")])
(define_split
- [(set (reg 17)
- (compare (not:QI (match_operand:QI 1 "nonimmediate_operand" ""))
- (const_int 0)))
- (set (match_operand:QI 0 "nonimmediate_operand" "")
- (not:QI (match_dup 1)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(not:QI (match_operand:QI 3 "nonimmediate_operand" ""))
+ (const_int 0)]))
+ (set (match_operand:QI 1 "nonimmediate_operand" "")
+ (not:QI (match_dup 3)))]
"ix86_match_ccmode (insn, CCNOmode)"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (xor:QI (match_dup 1) (const_int -1))
- (const_int 0)))
- (set (match_dup 0)
- (xor:QI (match_dup 1) (const_int -1)))])]
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2 [(xor:QI (match_dup 3) (const_int -1))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (xor:QI (match_dup 3) (const_int -1)))])]
"")
;; Arithmetic shift instructions
@@ -12426,10 +12469,10 @@
})
(define_expand "insv"
- [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "")
- (match_operand:SI 1 "immediate_operand" "")
- (match_operand:SI 2 "immediate_operand" ""))
- (match_operand:SI 3 "register_operand" ""))]
+ [(set (zero_extract (match_operand 0 "ext_register_operand" "")
+ (match_operand 1 "immediate_operand" "")
+ (match_operand 2 "immediate_operand" ""))
+ (match_operand 3 "register_operand" ""))]
""
{
/* Handle extractions from %ah et al. */
@@ -12440,6 +12483,13 @@
matches the predicate, so check it again here. */
if (! register_operand (operands[0], VOIDmode))
FAIL;
+
+ if (TARGET_64BIT)
+ emit_insn (gen_movdi_insv_1_rex64 (operands[0], operands[3]));
+ else
+ emit_insn (gen_movsi_insv_1 (operands[0], operands[3]));
+
+ DONE;
})
;; %%% bts, btr, btc, bt.
@@ -12839,9 +12889,9 @@
(set_attr "modrm" "0")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
- (const_int -128))
+ (const_int -126))
(lt (minus (match_dup 0) (pc))
- (const_int 124)))
+ (const_int 128)))
(const_int 2)
(const_int 6)))])
@@ -12857,9 +12907,9 @@
(set_attr "modrm" "0")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
- (const_int -128))
+ (const_int -126))
(lt (minus (match_dup 0) (pc))
- (const_int 124)))
+ (const_int 128)))
(const_int 2)
(const_int 6)))])
@@ -13124,9 +13174,9 @@
[(set_attr "type" "ibr")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
- (const_int -128))
+ (const_int -126))
(lt (minus (match_dup 0) (pc))
- (const_int 124)))
+ (const_int 128)))
(const_int 2)
(const_int 5)))
(set_attr "modrm" "0")])
@@ -13250,9 +13300,9 @@
(set (attr "length")
(if_then_else (and (eq_attr "alternative" "0")
(and (ge (minus (match_dup 0) (pc))
- (const_int -128))
+ (const_int -126))
(lt (minus (match_dup 0) (pc))
- (const_int 124))))
+ (const_int 128))))
(const_int 2)
(const_int 16)))
;; We don't know the type before shorten branches. Optimistically expect
@@ -13616,11 +13666,10 @@
"ix86_expand_epilogue (0); DONE;")
(define_expand "eh_return"
- [(use (match_operand 0 "register_operand" ""))
- (use (match_operand 1 "register_operand" ""))]
+ [(use (match_operand 0 "register_operand" ""))]
""
{
- rtx tmp, sa = operands[0], ra = operands[1];
+ rtx tmp, sa = EH_RETURN_STACKADJ_RTX, ra = operands[0];
/* Tricky bit: we write the address of the handler to which we will
be returning into someone else's stack frame, one word below the
@@ -13682,7 +13731,7 @@
(define_expand "ffssi2"
[(set (match_operand:SI 0 "nonimmediate_operand" "")
- (ffs:SI (match_operand:SI 1 "general_operand" "")))]
+ (ffs:SI (match_operand:SI 1 "nonimmediate_operand" "")))]
""
{
rtx out = gen_reg_rtx (SImode), tmp = gen_reg_rtx (SImode);
@@ -14059,7 +14108,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(match_operand:XF 1 "register_operand" "%0")
(match_operand:XF 2 "register_operand" "f")]))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& GET_RTX_CLASS (GET_CODE (operands[3])) == 'c'"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
@@ -14317,7 +14366,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(match_operand:XF 1 "register_operand" "0,f")
(match_operand:XF 2 "register_operand" "f,0")]))]
- "!TARGET_64BIT && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387
&& GET_RTX_CLASS (GET_CODE (operands[3])) != 'c'"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
@@ -14351,7 +14400,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(float:XF (match_operand:SI 1 "nonimmediate_operand" "m,?r"))
(match_operand:XF 2 "register_operand" "0,0")]))]
- "!TARGET_64BIT && TARGET_80387 && TARGET_USE_FIOP"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && TARGET_USE_FIOP"
"* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14387,7 +14436,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(match_operand:XF 1 "register_operand" "0,0")
(float:XF (match_operand:SI 2 "nonimmediate_operand" "m,?r"))]))]
- "!TARGET_64BIT && TARGET_80387 && TARGET_USE_FIOP"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && TARGET_USE_FIOP"
"* return which_alternative ? \"#\" : output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14423,7 +14472,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(float_extend:XF (match_operand:SF 1 "nonimmediate_operand" "fm,0"))
(match_operand:XF 2 "register_operand" "0,f")]))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14456,7 +14505,7 @@
[(match_operand:XF 1 "register_operand" "0,f")
(float_extend:XF
(match_operand:SF 2 "nonimmediate_operand" "fm,0"))]))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14489,7 +14538,7 @@
(match_operator:XF 3 "binary_fp_operator"
[(float_extend:XF (match_operand:DF 1 "nonimmediate_operand" "fm,0"))
(match_operand:XF 2 "register_operand" "0,f")]))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14522,7 +14571,7 @@
[(match_operand:XF 1 "register_operand" "0,f")
(float_extend:XF
(match_operand:DF 2 "nonimmediate_operand" "fm,0"))]))]
- "!TARGET_64BIT && TARGET_80387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387"
"* return output_387_binary_op (insn, operands);"
[(set (attr "type")
(cond [(match_operand:XF 3 "mult_operator" "")
@@ -14687,7 +14736,7 @@
(define_insn "sqrtxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (match_operand:XF 1 "register_operand" "0")))]
- "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
&& (TARGET_IEEE_FP || flag_unsafe_math_optimizations) "
"fsqrt"
[(set_attr "type" "fpspc")
@@ -14708,7 +14757,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:DF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "XF")
@@ -14728,7 +14777,7 @@
[(set (match_operand:XF 0 "register_operand" "=f")
(sqrt:XF (float_extend:XF
(match_operand:SF 1 "register_operand" "0"))))]
- "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && !TARGET_NO_FANCY_MATH_387"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "XF")
@@ -14776,7 +14825,7 @@
(define_insn "sinxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")] UNSPEC_SIN))]
- "!TARGET_64BIT && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_80387 && !TARGET_NO_FANCY_MATH_387
&& flag_unsafe_math_optimizations"
"fsin"
[(set_attr "type" "fpspc")
@@ -14823,7 +14872,7 @@
(define_insn "cosxf2"
[(set (match_operand:XF 0 "register_operand" "=f")
(unspec:XF [(match_operand:XF 1 "register_operand" "0")] UNSPEC_COS))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387
+ "!TARGET_128BIT_LONG_DOUBLE && ! TARGET_NO_FANCY_MATH_387 && TARGET_80387
&& flag_unsafe_math_optimizations"
"fcos"
[(set_attr "type" "fpspc")
@@ -16056,7 +16105,7 @@
(if_then_else:XF (match_operand 1 "comparison_operator" "")
(match_operand:XF 2 "register_operand" "")
(match_operand:XF 3 "register_operand" "")))]
- "!TARGET_64BIT && TARGET_CMOVE"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_CMOVE"
"if (! ix86_expand_fp_movcc (operands)) FAIL; DONE;")
(define_expand "movtfcc"
@@ -16073,7 +16122,7 @@
[(reg 17) (const_int 0)])
(match_operand:XF 2 "register_operand" "f,0")
(match_operand:XF 3 "register_operand" "0,f")))]
- "!TARGET_64BIT && TARGET_CMOVE"
+ "!TARGET_128BIT_LONG_DOUBLE && TARGET_CMOVE"
"@
fcmov%F1\t{%2, %0|%0, %2}
fcmov%f1\t{%3, %0|%0, %3}"
@@ -16241,7 +16290,7 @@
&& operands_match_p (operands[2], operands[3])))"
[(set (reg:CCFP 17)
(compare:CCFP (match_dup 2)
- (match_dup 2)))
+ (match_dup 1)))
(set (match_dup 0)
(if_then_else:DF (ge (reg:CCFP 17) (const_int 0))
(match_dup 1)
@@ -16637,10 +16686,12 @@
(set (subreg:TI (match_dup 0) 0) (ior:TI (subreg:TI (match_dup 6) 0)
(subreg:TI (match_dup 7) 0)))]
{
- /* If op2 == op3, op3 will be clobbered before it is used.
- This should be optimized out though. */
+ /* If op2 == op3, op3 would be clobbered before it is used. */
if (operands_match_p (operands[2], operands[3]))
- abort ();
+ {
+ emit_move_insn (operands[0], operands[2]);
+ DONE;
+ }
PUT_MODE (operands[1], GET_MODE (operands[0]));
if (operands_match_p (operands[0], operands[4]))
operands[6] = operands[4], operands[7] = operands[2];
@@ -16734,7 +16785,7 @@
(define_split
[(set (match_operand 0 "register_operand" "")
(if_then_else (match_operator 1 "comparison_operator"
- [(match_operand 4 "register_operand" "")
+ [(match_operand 4 "nonimmediate_operand" "")
(match_operand 5 "nonimmediate_operand" "")])
(match_operand 2 "nonmemory_operand" "")
(match_operand 3 "nonmemory_operand" "")))]
@@ -16746,13 +16797,16 @@
(subreg:TI (match_dup 7) 0)))]
{
PUT_MODE (operands[1], GET_MODE (operands[0]));
- if (!sse_comparison_operator (operands[1], VOIDmode))
+ if (!sse_comparison_operator (operands[1], VOIDmode)
+ || !rtx_equal_p (operands[0], operands[4]))
{
rtx tmp = operands[5];
operands[5] = operands[4];
operands[4] = tmp;
PUT_CODE (operands[1], swap_condition (GET_CODE (operands[1])));
}
+ if (!rtx_equal_p (operands[0], operands[4]))
+ abort ();
if (const0_operand (operands[2], GET_MODE (operands[0])))
{
operands[7] = operands[3];
@@ -16853,51 +16907,61 @@
operands[2] = gen_lowpart (SImode, operands[2]);
PUT_MODE (operands[3], SImode);")
+; Promote the QImode tests, as i386 has encoding of the AND
+; instruction with 32-bit sign-extended immediate and thus the
+; instruction size is unchanged, except in the %eax case for
+; which it is increased by one byte, hence the ! optimize_size.
(define_split
- [(set (reg 17)
- (compare (and (match_operand 1 "aligned_operand" "")
- (match_operand 2 "const_int_operand" ""))
- (const_int 0)))
- (set (match_operand 0 "register_operand" "")
- (and (match_dup 1) (match_dup 2)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 2 "compare_operator"
+ [(and (match_operand 3 "aligned_operand" "")
+ (match_operand 4 "const_int_operand" ""))
+ (const_int 0)]))
+ (set (match_operand 1 "register_operand" "")
+ (and (match_dup 3) (match_dup 4)))]
"! TARGET_PARTIAL_REG_STALL && reload_completed
- && ix86_match_ccmode (insn, CCNOmode)
- && (GET_MODE (operands[0]) == HImode
- || (GET_MODE (operands[0]) == QImode
- /* Ensure that the operand will remain sign extended immediate. */
- && INTVAL (operands[2]) >= 0
- && (TARGET_PROMOTE_QImode || optimize_size)))"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO (and:SI (match_dup 1) (match_dup 2))
- (const_int 0)))
- (set (match_dup 0)
- (and:SI (match_dup 1) (match_dup 2)))])]
- "operands[2]
- = gen_int_mode (INTVAL (operands[2])
- & GET_MODE_MASK (GET_MODE (operands[0])),
- SImode);
- operands[0] = gen_lowpart (SImode, operands[0]);
- operands[1] = gen_lowpart (SImode, operands[1]);")
+ /* Ensure that the operand will remain sign-extended immediate. */
+ && ix86_match_ccmode (insn, INTVAL (operands[4]) >= 0 ? CCNOmode : CCZmode)
+ && ! optimize_size
+ && ((GET_MODE (operands[1]) == HImode && ! TARGET_FAST_PREFIX)
+ || (GET_MODE (operands[1]) == QImode && TARGET_PROMOTE_QImode))"
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 2 [(and:SI (match_dup 3) (match_dup 4))
+ (const_int 0)]))
+ (set (match_dup 1)
+ (and:SI (match_dup 3) (match_dup 4)))])]
+{
+ operands[4]
+ = gen_int_mode (INTVAL (operands[4])
+ & GET_MODE_MASK (GET_MODE (operands[1])), SImode);
+ operands[1] = gen_lowpart (SImode, operands[1]);
+ operands[3] = gen_lowpart (SImode, operands[3]);
+})
-; Don't promote the QImode tests, as i386 don't have encoding of
-; the test instruction with 32bit sign extended immediate and thus
-; the code grows.
+; Don't promote the QImode tests, as i386 doesn't have encoding of
+; the TEST instruction with 32-bit sign-extended immediate and thus
+; the instruction size would at least double, which is not what we
+; want even with ! optimize_size.
(define_split
- [(set (reg 17)
- (compare (and (match_operand:HI 0 "aligned_operand" "")
- (match_operand:HI 1 "const_int_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and (match_operand:HI 2 "aligned_operand" "")
+ (match_operand:HI 3 "const_int_operand" ""))
+ (const_int 0)]))]
"! TARGET_PARTIAL_REG_STALL && reload_completed
- && ix86_match_ccmode (insn, CCNOmode)
- && GET_MODE (operands[0]) == HImode"
- [(set (reg:CCNO 17)
- (compare:CCNO (and:SI (match_dup 0) (match_dup 1))
- (const_int 0)))]
- "operands[1]
- = gen_int_mode (INTVAL (operands[1])
- & GET_MODE_MASK (GET_MODE (operands[0])),
- SImode);
- operands[0] = gen_lowpart (SImode, operands[0]);")
+ /* Ensure that the operand will remain sign-extended immediate. */
+ && ix86_match_ccmode (insn, INTVAL (operands[3]) >= 0 ? CCNOmode : CCZmode)
+ && ! TARGET_FAST_PREFIX
+ && ! optimize_size"
+ [(set (match_dup 0)
+ (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3))
+ (const_int 0)]))]
+{
+ operands[3]
+ = gen_int_mode (INTVAL (operands[3])
+ & GET_MODE_MASK (GET_MODE (operands[2])), SImode);
+ operands[2] = gen_lowpart (SImode, operands[2]);
+})
(define_split
[(set (match_operand 0 "register_operand" "")
@@ -17070,13 +17134,14 @@
;; Don't compare memory with zero, load and use a test instead.
(define_peephole2
- [(set (reg 17)
- (compare (match_operand:SI 0 "memory_operand" "")
- (const_int 0)))
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(match_operand:SI 2 "memory_operand" "")
+ (const_int 0)]))
(match_scratch:SI 3 "r")]
"ix86_match_ccmode (insn, CCNOmode) && ! optimize_size"
- [(set (match_dup 3) (match_dup 0))
- (set (reg:CCNO 17) (compare:CCNO (match_dup 3) (const_int 0)))]
+ [(set (match_dup 3) (match_dup 2))
+ (set (match_dup 0) (match_op_dup 1 [(match_dup 3) (const_int 0)]))]
"")
;; NOT is not pairable on Pentium, while XOR is, but one byte longer.
@@ -17140,77 +17205,77 @@
;; versions if we're concerned about partial register stalls.
(define_peephole2
- [(set (reg 17)
- (compare (and:SI (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "immediate_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and:SI (match_operand:SI 2 "register_operand" "")
+ (match_operand:SI 3 "immediate_operand" ""))
+ (const_int 0)]))]
"ix86_match_ccmode (insn, CCNOmode)
- && (true_regnum (operands[0]) != 0
- || (GET_CODE (operands[1]) == CONST_INT
- && CONST_OK_FOR_LETTER_P (INTVAL (operands[1]), 'K')))
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
+ && (true_regnum (operands[2]) != 0
+ || (GET_CODE (operands[3]) == CONST_INT
+ && CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'K')))
+ && peep2_reg_dead_p (1, operands[2])"
[(parallel
- [(set (reg:CCNO 17)
- (compare:CCNO (and:SI (match_dup 0)
- (match_dup 1))
- (const_int 0)))
- (set (match_dup 0)
- (and:SI (match_dup 0) (match_dup 1)))])]
+ [(set (match_dup 0)
+ (match_op_dup 1 [(and:SI (match_dup 2) (match_dup 3))
+ (const_int 0)]))
+ (set (match_dup 2)
+ (and:SI (match_dup 2) (match_dup 3)))])]
"")
;; We don't need to handle HImode case, because it will be promoted to SImode
;; on ! TARGET_PARTIAL_REG_STALL
(define_peephole2
- [(set (reg 17)
- (compare (and:QI (match_operand:QI 0 "register_operand" "")
- (match_operand:QI 1 "immediate_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and:QI (match_operand:QI 2 "register_operand" "")
+ (match_operand:QI 3 "immediate_operand" ""))
+ (const_int 0)]))]
"! TARGET_PARTIAL_REG_STALL
&& ix86_match_ccmode (insn, CCNOmode)
- && true_regnum (operands[0]) != 0
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
+ && true_regnum (operands[2]) != 0
+ && peep2_reg_dead_p (1, operands[2])"
[(parallel
- [(set (reg:CCNO 17)
- (compare:CCNO (and:QI (match_dup 0)
- (match_dup 1))
- (const_int 0)))
- (set (match_dup 0)
- (and:QI (match_dup 0) (match_dup 1)))])]
+ [(set (match_dup 0)
+ (match_op_dup 1 [(and:QI (match_dup 2) (match_dup 3))
+ (const_int 0)]))
+ (set (match_dup 2)
+ (and:QI (match_dup 2) (match_dup 3)))])]
"")
(define_peephole2
- [(set (reg 17)
- (compare
- (and:SI
- (zero_extract:SI
- (match_operand 0 "ext_register_operand" "")
- (const_int 8)
- (const_int 8))
- (match_operand 1 "const_int_operand" ""))
- (const_int 0)))]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(and:SI
+ (zero_extract:SI
+ (match_operand 2 "ext_register_operand" "")
+ (const_int 8)
+ (const_int 8))
+ (match_operand 3 "const_int_operand" ""))
+ (const_int 0)]))]
"! TARGET_PARTIAL_REG_STALL
&& ix86_match_ccmode (insn, CCNOmode)
- && true_regnum (operands[0]) != 0
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCNO 17)
- (compare:CCNO
- (and:SI
- (zero_extract:SI
- (match_dup 0)
- (const_int 8)
- (const_int 8))
- (match_dup 1))
- (const_int 0)))
- (set (zero_extract:SI (match_dup 0)
+ && true_regnum (operands[2]) != 0
+ && peep2_reg_dead_p (1, operands[2])"
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 1
+ [(and:SI
+ (zero_extract:SI
+ (match_dup 2)
+ (const_int 8)
+ (const_int 8))
+ (match_dup 3))
+ (const_int 0)]))
+ (set (zero_extract:SI (match_dup 2)
(const_int 8)
(const_int 8))
(and:SI
(zero_extract:SI
- (match_dup 0)
+ (match_dup 2)
(const_int 8)
(const_int 8))
- (match_dup 1)))])]
+ (match_dup 3)))])]
"")
;; Don't do logical operations with memory inputs.
@@ -17512,66 +17577,20 @@
"")
;; Convert compares with 1 to shorter inc/dec operations when CF is not
-;; required and register dies.
+;; required and register dies. Similarly for 128 to plus -128.
(define_peephole2
- [(set (reg 17)
- (compare (match_operand:SI 0 "register_operand" "")
- (match_operand:SI 1 "incdec_operand" "")))]
- "ix86_match_ccmode (insn, CCGCmode)
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCGC 17)
- (compare:CCGC (match_dup 0)
- (match_dup 1)))
- (clobber (match_dup 0))])]
- "")
-
-(define_peephole2
- [(set (reg 17)
- (compare (match_operand:HI 0 "register_operand" "")
- (match_operand:HI 1 "incdec_operand" "")))]
- "ix86_match_ccmode (insn, CCGCmode)
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCGC 17)
- (compare:CCGC (match_dup 0)
- (match_dup 1)))
- (clobber (match_dup 0))])]
- "")
-
-(define_peephole2
- [(set (reg 17)
- (compare (match_operand:QI 0 "register_operand" "")
- (match_operand:QI 1 "incdec_operand" "")))]
- "ix86_match_ccmode (insn, CCGCmode)
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCGC 17)
- (compare:CCGC (match_dup 0)
- (match_dup 1)))
- (clobber (match_dup 0))])]
- "")
-
-;; Convert compares with 128 to shorter add -128
-(define_peephole2
- [(set (reg 17)
- (compare (match_operand:SI 0 "register_operand" "")
- (const_int 128)))]
- "ix86_match_ccmode (insn, CCGCmode)
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCGC 17)
- (compare:CCGC (match_dup 0)
- (const_int 128)))
- (clobber (match_dup 0))])]
- "")
-
-(define_peephole2
- [(set (reg 17)
- (compare (match_operand:HI 0 "register_operand" "")
- (const_int 128)))]
- "ix86_match_ccmode (insn, CCGCmode)
- && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))"
- [(parallel [(set (reg:CCGC 17)
- (compare:CCGC (match_dup 0)
- (const_int 128)))
- (clobber (match_dup 0))])]
+ [(set (match_operand 0 "flags_reg_operand" "")
+ (match_operator 1 "compare_operator"
+ [(match_operand 2 "register_operand" "")
+ (match_operand 3 "const_int_operand" "")]))]
+ "(INTVAL (operands[3]) == -1
+ || INTVAL (operands[3]) == 1
+ || INTVAL (operands[3]) == 128)
+ && ix86_match_ccmode (insn, CCGCmode)
+ && peep2_reg_dead_p (1, operands[2])"
+ [(parallel [(set (match_dup 0)
+ (match_op_dup 1 [(match_dup 2) (match_dup 3)]))
+ (clobber (match_dup 2))])]
"")
(define_peephole2
@@ -17769,9 +17788,9 @@
return "call\t%P1";
}
if (SIBLING_CALL_P (insn))
- return "jmp\t%*%1";
+ return "jmp\t%A1";
else
- return "call\t%*%1";
+ return "call\t%A1";
}
[(set_attr "type" "callv")])
@@ -17848,67 +17867,92 @@
;; Moves for SSE/MMX regs.
(define_insn "movv4sf_internal"
- [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,m")
- (match_operand:V4SF 1 "nonimmediate_operand" "xm,x"))]
+ [(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V4SF 1 "vector_move_operand" "C,xm,x"))]
"TARGET_SSE"
;; @@@ let's try to use movaps here.
- "movaps\t{%1, %0|%0, %1}"
+ "@
+ xorps\t%0, %0
+ movaps\t{%1, %0|%0, %1}
+ movaps\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF")])
(define_insn "movv4si_internal"
- [(set (match_operand:V4SI 0 "nonimmediate_operand" "=x,m")
- (match_operand:V4SI 1 "nonimmediate_operand" "xm,x"))]
+ [(set (match_operand:V4SI 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V4SI 1 "vector_move_operand" "C,xm,x"))]
"TARGET_SSE"
;; @@@ let's try to use movaps here.
- "movaps\t{%1, %0|%0, %1}"
+ "@
+ xorps\t%0, %0
+ movaps\t{%1, %0|%0, %1}
+ movaps\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF")])
(define_insn "movv2di_internal"
- [(set (match_operand:V2DI 0 "nonimmediate_operand" "=x,m")
- (match_operand:V2DI 1 "nonimmediate_operand" "xm,x"))]
+ [(set (match_operand:V2DI 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V2DI 1 "vector_move_operand" "C,xm,x"))]
"TARGET_SSE"
;; @@@ let's try to use movaps here.
- "movdqa\t{%1, %0|%0, %1}"
+ "@
+ pxor\t%0, %0
+ movdqa\t{%1, %0|%0, %1}
+ movdqa\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF")])
(define_insn "movv8qi_internal"
- [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,m")
- (match_operand:V8QI 1 "nonimmediate_operand" "ym,y"))]
- "TARGET_MMX"
- "movq\t{%1, %0|%0, %1}"
+ [(set (match_operand:V8QI 0 "nonimmediate_operand" "=y,y,m")
+ (match_operand:V8QI 1 "vector_move_operand" "C,ym,y"))]
+ "TARGET_MMX
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ pxor\t%0, %0
+ movq\t{%1, %0|%0, %1}
+ movq\t{%1, %0|%0, %1}"
[(set_attr "type" "mmxmov")
(set_attr "mode" "DI")])
(define_insn "movv4hi_internal"
- [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,m")
- (match_operand:V4HI 1 "nonimmediate_operand" "ym,y"))]
- "TARGET_MMX"
- "movq\t{%1, %0|%0, %1}"
+ [(set (match_operand:V4HI 0 "nonimmediate_operand" "=y,y,m")
+ (match_operand:V4HI 1 "vector_move_operand" "C,ym,y"))]
+ "TARGET_MMX
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ pxor\t%0, %0
+ movq\t{%1, %0|%0, %1}
+ movq\t{%1, %0|%0, %1}"
[(set_attr "type" "mmxmov")
(set_attr "mode" "DI")])
(define_insn "movv2si_internal"
- [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,m")
- (match_operand:V2SI 1 "nonimmediate_operand" "ym,y"))]
- "TARGET_MMX"
- "movq\t{%1, %0|%0, %1}"
+ [(set (match_operand:V2SI 0 "nonimmediate_operand" "=y,y,m")
+ (match_operand:V2SI 1 "vector_move_operand" "C,ym,y"))]
+ "TARGET_MMX
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ pxor\t%0, %0
+ movq\t{%1, %0|%0, %1}
+ movq\t{%1, %0|%0, %1}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
(define_insn "movv2sf_internal"
- [(set (match_operand:V2SF 0 "nonimmediate_operand" "=y,m")
- (match_operand:V2SF 1 "nonimmediate_operand" "ym,y"))]
- "TARGET_3DNOW"
- "movq\\t{%1, %0|%0, %1}"
+ [(set (match_operand:V2SF 0 "nonimmediate_operand" "=y,y,m")
+ (match_operand:V2SF 1 "vector_move_operand" "C,ym,y"))]
+ "TARGET_3DNOW
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ pxor\t%0, %0
+ movq\t{%1, %0|%0, %1}
+ movq\t{%1, %0|%0, %1}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
(define_expand "movti"
- [(set (match_operand:TI 0 "general_operand" "")
- (match_operand:TI 1 "general_operand" ""))]
+ [(set (match_operand:TI 0 "nonimmediate_operand" "")
+ (match_operand:TI 1 "nonimmediate_operand" ""))]
"TARGET_SSE || TARGET_64BIT"
{
if (TARGET_64BIT)
@@ -17919,35 +17963,44 @@
})
(define_insn "movv2df_internal"
- [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,m")
- (match_operand:V2DF 1 "nonimmediate_operand" "xm,x"))]
- "TARGET_SSE2"
- ;; @@@ let's try to use movaps here.
- "movapd\t{%1, %0|%0, %1}"
+ [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V2DF 1 "vector_move_operand" "C,xm,x"))]
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ xorpd\t%0, %0
+ movapd\t{%1, %0|%0, %1}
+ movapd\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V2DF")])
(define_insn "movv8hi_internal"
- [(set (match_operand:V8HI 0 "nonimmediate_operand" "=x,m")
- (match_operand:V8HI 1 "nonimmediate_operand" "xm,x"))]
- "TARGET_SSE2"
- ;; @@@ let's try to use movaps here.
- "movaps\t{%1, %0|%0, %1}"
+ [(set (match_operand:V8HI 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V8HI 1 "vector_move_operand" "C,xm,x"))]
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ xorps\t%0, %0
+ movaps\t{%1, %0|%0, %1}
+ movaps\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF")])
(define_insn "movv16qi_internal"
- [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
- (match_operand:V16QI 1 "nonimmediate_operand" "xm,x"))]
- "TARGET_SSE2"
- ;; @@@ let's try to use movaps here.
- "movaps\t{%1, %0|%0, %1}"
+ [(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,x,m")
+ (match_operand:V16QI 1 "vector_move_operand" "C,xm,x"))]
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "@
+ xorps\t%0, %0
+ movaps\t{%1, %0|%0, %1}
+ movaps\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V4SF")])
(define_expand "movv2df"
- [(set (match_operand:V2DF 0 "general_operand" "")
- (match_operand:V2DF 1 "general_operand" ""))]
+ [(set (match_operand:V2DF 0 "nonimmediate_operand" "")
+ (match_operand:V2DF 1 "nonimmediate_operand" ""))]
"TARGET_SSE2"
{
ix86_expand_vector_move (V2DFmode, operands);
@@ -17955,8 +18008,8 @@
})
(define_expand "movv8hi"
- [(set (match_operand:V8HI 0 "general_operand" "")
- (match_operand:V8HI 1 "general_operand" ""))]
+ [(set (match_operand:V8HI 0 "nonimmediate_operand" "")
+ (match_operand:V8HI 1 "nonimmediate_operand" ""))]
"TARGET_SSE2"
{
ix86_expand_vector_move (V8HImode, operands);
@@ -17964,8 +18017,8 @@
})
(define_expand "movv16qi"
- [(set (match_operand:V16QI 0 "general_operand" "")
- (match_operand:V16QI 1 "general_operand" ""))]
+ [(set (match_operand:V16QI 0 "nonimmediate_operand" "")
+ (match_operand:V16QI 1 "nonimmediate_operand" ""))]
"TARGET_SSE2"
{
ix86_expand_vector_move (V16QImode, operands);
@@ -17973,8 +18026,8 @@
})
(define_expand "movv4sf"
- [(set (match_operand:V4SF 0 "general_operand" "")
- (match_operand:V4SF 1 "general_operand" ""))]
+ [(set (match_operand:V4SF 0 "nonimmediate_operand" "")
+ (match_operand:V4SF 1 "nonimmediate_operand" ""))]
"TARGET_SSE"
{
ix86_expand_vector_move (V4SFmode, operands);
@@ -17982,8 +18035,8 @@
})
(define_expand "movv4si"
- [(set (match_operand:V4SI 0 "general_operand" "")
- (match_operand:V4SI 1 "general_operand" ""))]
+ [(set (match_operand:V4SI 0 "nonimmediate_operand" "")
+ (match_operand:V4SI 1 "nonimmediate_operand" ""))]
"TARGET_SSE"
{
ix86_expand_vector_move (V4SImode, operands);
@@ -17991,8 +18044,8 @@
})
(define_expand "movv2di"
- [(set (match_operand:V2DI 0 "general_operand" "")
- (match_operand:V2DI 1 "general_operand" ""))]
+ [(set (match_operand:V2DI 0 "nonimmediate_operand" "")
+ (match_operand:V2DI 1 "nonimmediate_operand" ""))]
"TARGET_SSE"
{
ix86_expand_vector_move (V2DImode, operands);
@@ -18000,8 +18053,8 @@
})
(define_expand "movv2si"
- [(set (match_operand:V2SI 0 "general_operand" "")
- (match_operand:V2SI 1 "general_operand" ""))]
+ [(set (match_operand:V2SI 0 "nonimmediate_operand" "")
+ (match_operand:V2SI 1 "nonimmediate_operand" ""))]
"TARGET_MMX"
{
ix86_expand_vector_move (V2SImode, operands);
@@ -18009,8 +18062,8 @@
})
(define_expand "movv4hi"
- [(set (match_operand:V4HI 0 "general_operand" "")
- (match_operand:V4HI 1 "general_operand" ""))]
+ [(set (match_operand:V4HI 0 "nonimmediate_operand" "")
+ (match_operand:V4HI 1 "nonimmediate_operand" ""))]
"TARGET_MMX"
{
ix86_expand_vector_move (V4HImode, operands);
@@ -18018,8 +18071,8 @@
})
(define_expand "movv8qi"
- [(set (match_operand:V8QI 0 "general_operand" "")
- (match_operand:V8QI 1 "general_operand" ""))]
+ [(set (match_operand:V8QI 0 "nonimmediate_operand" "")
+ (match_operand:V8QI 1 "nonimmediate_operand" ""))]
"TARGET_MMX"
{
ix86_expand_vector_move (V8QImode, operands);
@@ -18027,14 +18080,97 @@
})
(define_expand "movv2sf"
- [(set (match_operand:V2SF 0 "general_operand" "")
- (match_operand:V2SF 1 "general_operand" ""))]
+ [(set (match_operand:V2SF 0 "nonimmediate_operand" "")
+ (match_operand:V2SF 1 "nonimmediate_operand" ""))]
"TARGET_3DNOW"
{
ix86_expand_vector_move (V2SFmode, operands);
DONE;
})
+(define_insn "*pushv2df"
+ [(set (match_operand:V2DF 0 "push_operand" "=<")
+ (match_operand:V2DF 1 "register_operand" "x"))]
+ "TARGET_SSE"
+ "#")
+
+(define_insn "*pushv2di"
+ [(set (match_operand:V2DI 0 "push_operand" "=<")
+ (match_operand:V2DI 1 "register_operand" "x"))]
+ "TARGET_SSE2"
+ "#")
+
+(define_insn "*pushv8hi"
+ [(set (match_operand:V8HI 0 "push_operand" "=<")
+ (match_operand:V8HI 1 "register_operand" "x"))]
+ "TARGET_SSE2"
+ "#")
+
+(define_insn "*pushv16qi"
+ [(set (match_operand:V16QI 0 "push_operand" "=<")
+ (match_operand:V16QI 1 "register_operand" "x"))]
+ "TARGET_SSE2"
+ "#")
+
+(define_insn "*pushv4sf"
+ [(set (match_operand:V4SF 0 "push_operand" "=<")
+ (match_operand:V4SF 1 "register_operand" "x"))]
+ "TARGET_SSE"
+ "#")
+
+(define_insn "*pushv4si"
+ [(set (match_operand:V4SI 0 "push_operand" "=<")
+ (match_operand:V4SI 1 "register_operand" "x"))]
+ "TARGET_SSE2"
+ "#")
+
+(define_insn "*pushv2si"
+ [(set (match_operand:V2SI 0 "push_operand" "=<")
+ (match_operand:V2SI 1 "register_operand" "y"))]
+ "TARGET_MMX"
+ "#")
+
+(define_insn "*pushv4hi"
+ [(set (match_operand:V4HI 0 "push_operand" "=<")
+ (match_operand:V4HI 1 "register_operand" "y"))]
+ "TARGET_MMX"
+ "#")
+
+(define_insn "*pushv8qi"
+ [(set (match_operand:V8QI 0 "push_operand" "=<")
+ (match_operand:V8QI 1 "register_operand" "y"))]
+ "TARGET_MMX"
+ "#")
+
+(define_insn "*pushv2sf"
+ [(set (match_operand:V2SF 0 "push_operand" "=<")
+ (match_operand:V2SF 1 "register_operand" "y"))]
+ "TARGET_3DNOW"
+ "#")
+
+(define_split
+ [(set (match_operand 0 "push_operand" "")
+ (match_operand 1 "register_operand" ""))]
+ "!TARGET_64BIT && reload_completed
+ && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))"
+ [(set (reg:SI 7) (plus:SI (reg:SI 7) (match_dup 3)))
+ (set (match_dup 2) (match_dup 1))]
+ "operands[2] = change_address (operands[0], GET_MODE (operands[0]),
+ stack_pointer_rtx);
+ operands[3] = GEN_INT (-GET_MODE_SIZE (GET_MODE (operands[0])));")
+
+(define_split
+ [(set (match_operand 0 "push_operand" "")
+ (match_operand 1 "register_operand" ""))]
+ "TARGET_64BIT && reload_completed
+ && (SSE_REG_P (operands[1]) || MMX_REG_P (operands[1]))"
+ [(set (reg:DI 7) (plus:DI (reg:DI 7) (match_dup 3)))
+ (set (match_dup 2) (match_dup 1))]
+ "operands[2] = change_address (operands[0], GET_MODE (operands[0]),
+ stack_pointer_rtx);
+ operands[3] = GEN_INT (-GET_MODE_SIZE (GET_MODE (operands[0])));")
+
+
(define_insn_and_split "*pushti"
[(set (match_operand:TI 0 "push_operand" "=<")
(match_operand:TI 1 "nonmemory_operand" "x"))]
@@ -18158,8 +18294,9 @@
(define_insn "movti_internal"
[(set (match_operand:TI 0 "nonimmediate_operand" "=x,x,m")
- (match_operand:TI 1 "general_operand" "C,xm,x"))]
- "TARGET_SSE && !TARGET_64BIT"
+ (match_operand:TI 1 "vector_move_operand" "C,xm,x"))]
+ "TARGET_SSE && !TARGET_64BIT
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
"@
xorps\t%0, %0
movaps\t{%1, %0|%0, %1}
@@ -18169,7 +18306,7 @@
(define_insn "*movti_rex64"
[(set (match_operand:TI 0 "nonimmediate_operand" "=r,o,x,mx,x")
- (match_operand:TI 1 "general_operand" "riFo,riF,O,x,m"))]
+ (match_operand:TI 1 "general_operand" "riFo,riF,C,x,m"))]
"TARGET_64BIT
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
"@
@@ -18191,29 +18328,56 @@
;; These two patterns are useful for specifying exactly whether to use
;; movaps or movups
-(define_insn "sse_movaps"
+(define_expand "sse_movaps"
+ [(set (match_operand:V4SF 0 "nonimmediate_operand" "")
+ (unspec:V4SF [(match_operand:V4SF 1 "nonimmediate_operand" "")]
+ UNSPEC_MOVA))]
+ "TARGET_SSE"
+{
+ if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
+ {
+ rtx tmp = gen_reg_rtx (V4SFmode);
+ emit_insn (gen_sse_movaps (tmp, operands[1]));
+ emit_move_insn (operands[0], tmp);
+ DONE;
+ }
+})
+
+(define_insn "*sse_movaps_1"
[(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,m")
(unspec:V4SF [(match_operand:V4SF 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVA))]
- "TARGET_SSE"
- "@
- movaps\t{%1, %0|%0, %1}
- movaps\t{%1, %0|%0, %1}"
+ "TARGET_SSE
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movaps\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov,ssemov")
(set_attr "mode" "V4SF")])
-(define_insn "sse_movups"
+(define_expand "sse_movups"
+ [(set (match_operand:V4SF 0 "nonimmediate_operand" "")
+ (unspec:V4SF [(match_operand:V4SF 1 "nonimmediate_operand" "")]
+ UNSPEC_MOVU))]
+ "TARGET_SSE"
+{
+ if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
+ {
+ rtx tmp = gen_reg_rtx (V4SFmode);
+ emit_insn (gen_sse_movups (tmp, operands[1]));
+ emit_move_insn (operands[0], tmp);
+ DONE;
+ }
+})
+
+(define_insn "*sse_movups_1"
[(set (match_operand:V4SF 0 "nonimmediate_operand" "=x,m")
(unspec:V4SF [(match_operand:V4SF 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVU))]
- "TARGET_SSE"
- "@
- movups\t{%1, %0|%0, %1}
- movups\t{%1, %0|%0, %1}"
+ "TARGET_SSE
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movups\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt,ssecvt")
(set_attr "mode" "V4SF")])
-
;; SSE Strange Moves.
(define_insn "sse_movmskps"
@@ -18329,11 +18493,21 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "V4SF")])
-(define_insn "sse_loadss"
+(define_expand "sse_loadss"
+ [(match_operand:V4SF 0 "register_operand" "")
+ (match_operand:SF 1 "memory_operand" "")]
+ "TARGET_SSE"
+{
+ emit_insn (gen_sse_loadss_1 (operands[0], operands[1],
+ CONST0_RTX (V4SFmode)));
+ DONE;
+})
+
+(define_insn "sse_loadss_1"
[(set (match_operand:V4SF 0 "register_operand" "=x")
(vec_merge:V4SF
- (match_operand:V4SF 1 "memory_operand" "m")
- (vec_duplicate:V4SF (float:SF (const_int 0)))
+ (vec_duplicate:V4SF (match_operand:SF 1 "memory_operand" "m"))
+ (match_operand:V4SF 2 "const0_operand" "X")
(const_int 1)))]
"TARGET_SSE"
"movss\t{%1, %0|%0, %1}"
@@ -18804,7 +18978,7 @@
(define_insn "sse2_nandv2di3"
[(set (match_operand:V2DI 0 "register_operand" "=x")
- (and:V2DI (not:V2DI (match_operand:V2DI 1 "nonimmediate_operand" "%0"))
+ (and:V2DI (not:V2DI (match_operand:V2DI 1 "nonimmediate_operand" "0"))
(match_operand:V2DI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2
&& (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)"
@@ -18908,7 +19082,7 @@
(match_operator:V4SI 3 "sse_comparison_operator"
[(match_operand:V4SF 1 "register_operand" "0")
(match_operand:V4SF 2 "register_operand" "x")])
- (match_dup 1)
+ (subreg:V4SI (match_dup 1) 0)
(const_int 1)))]
"TARGET_SSE"
"cmp%D3ss\t{%2, %0|%0, %2}"
@@ -19093,6 +19267,19 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "SF")])
+(define_insn "cvtsi2ssq"
+ [(set (match_operand:V4SF 0 "register_operand" "=x,x")
+ (vec_merge:V4SF
+ (match_operand:V4SF 1 "register_operand" "0,0")
+ (vec_duplicate:V4SF
+ (float:SF (match_operand:DI 2 "nonimmediate_operand" "r,rm")))
+ (const_int 14)))]
+ "TARGET_SSE && TARGET_64BIT"
+ "cvtsi2ssq\t{%2, %0|%0, %2}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "athlon_decode" "vector,vector")
+ (set_attr "mode" "SF")])
+
(define_insn "cvtss2si"
[(set (match_operand:SI 0 "register_operand" "=r")
(vec_select:SI
@@ -19103,6 +19290,17 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "SF")])
+(define_insn "cvtss2siq"
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (vec_select:DI
+ (fix:V4DI (match_operand:V4SF 1 "nonimmediate_operand" "x,m"))
+ (parallel [(const_int 0)])))]
+ "TARGET_SSE"
+ "cvtss2siq\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "athlon_decode" "vector,vector")
+ (set_attr "mode" "SF")])
+
(define_insn "cvttss2si"
[(set (match_operand:SI 0 "register_operand" "=r")
(vec_select:SI
@@ -19114,6 +19312,18 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "SF")])
+(define_insn "cvttss2siq"
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (vec_select:DI
+ (unspec:V4DI [(match_operand:V4SF 1 "nonimmediate_operand" "x,xm")]
+ UNSPEC_FIX)
+ (parallel [(const_int 0)])))]
+ "TARGET_SSE && TARGET_64BIT"
+ "cvttss2siq\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "SF")
+ (set_attr "athlon_decode" "vector,vector")])
+
;; MMX insns
@@ -19121,7 +19331,7 @@
(define_insn "addv8qi3"
[(set (match_operand:V8QI 0 "register_operand" "=y")
- (plus:V8QI (match_operand:V8QI 1 "register_operand" "0")
+ (plus:V8QI (match_operand:V8QI 1 "register_operand" "%0")
(match_operand:V8QI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddb\t{%2, %0|%0, %2}"
@@ -19130,7 +19340,7 @@
(define_insn "addv4hi3"
[(set (match_operand:V4HI 0 "register_operand" "=y")
- (plus:V4HI (match_operand:V4HI 1 "register_operand" "0")
+ (plus:V4HI (match_operand:V4HI 1 "register_operand" "%0")
(match_operand:V4HI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddw\t{%2, %0|%0, %2}"
@@ -19139,16 +19349,27 @@
(define_insn "addv2si3"
[(set (match_operand:V2SI 0 "register_operand" "=y")
- (plus:V2SI (match_operand:V2SI 1 "register_operand" "0")
+ (plus:V2SI (match_operand:V2SI 1 "register_operand" "%0")
(match_operand:V2SI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddd\t{%2, %0|%0, %2}"
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")])
+(define_insn "mmx_adddi3"
+ [(set (match_operand:DI 0 "register_operand" "=y")
+ (unspec:DI
+ [(plus:DI (match_operand:DI 1 "register_operand" "%0")
+ (match_operand:DI 2 "nonimmediate_operand" "ym"))]
+ UNSPEC_NOP))]
+ "TARGET_MMX"
+ "paddq\t{%2, %0|%0, %2}"
+ [(set_attr "type" "mmxadd")
+ (set_attr "mode" "DI")])
+
(define_insn "ssaddv8qi3"
[(set (match_operand:V8QI 0 "register_operand" "=y")
- (ss_plus:V8QI (match_operand:V8QI 1 "register_operand" "0")
+ (ss_plus:V8QI (match_operand:V8QI 1 "register_operand" "%0")
(match_operand:V8QI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddsb\t{%2, %0|%0, %2}"
@@ -19157,7 +19378,7 @@
(define_insn "ssaddv4hi3"
[(set (match_operand:V4HI 0 "register_operand" "=y")
- (ss_plus:V4HI (match_operand:V4HI 1 "register_operand" "0")
+ (ss_plus:V4HI (match_operand:V4HI 1 "register_operand" "%0")
(match_operand:V4HI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddsw\t{%2, %0|%0, %2}"
@@ -19166,7 +19387,7 @@
(define_insn "usaddv8qi3"
[(set (match_operand:V8QI 0 "register_operand" "=y")
- (us_plus:V8QI (match_operand:V8QI 1 "register_operand" "0")
+ (us_plus:V8QI (match_operand:V8QI 1 "register_operand" "%0")
(match_operand:V8QI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddusb\t{%2, %0|%0, %2}"
@@ -19175,7 +19396,7 @@
(define_insn "usaddv4hi3"
[(set (match_operand:V4HI 0 "register_operand" "=y")
- (us_plus:V4HI (match_operand:V4HI 1 "register_operand" "0")
+ (us_plus:V4HI (match_operand:V4HI 1 "register_operand" "%0")
(match_operand:V4HI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX"
"paddusw\t{%2, %0|%0, %2}"
@@ -19209,6 +19430,17 @@
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")])
+(define_insn "mmx_subdi3"
+ [(set (match_operand:DI 0 "register_operand" "=y")
+ (unspec:DI
+ [(minus:DI (match_operand:DI 1 "register_operand" "0")
+ (match_operand:DI 2 "nonimmediate_operand" "ym"))]
+ UNSPEC_NOP))]
+ "TARGET_MMX"
+ "psubq\t{%2, %0|%0, %2}"
+ [(set_attr "type" "mmxadd")
+ (set_attr "mode" "DI")])
+
(define_insn "sssubv8qi3"
[(set (match_operand:V8QI 0 "register_operand" "=y")
(ss_minus:V8QI (match_operand:V8QI 1 "register_operand" "0")
@@ -19312,7 +19544,7 @@
(define_insn "mmx_iordi3"
[(set (match_operand:DI 0 "register_operand" "=y")
(unspec:DI
- [(ior:DI (match_operand:DI 1 "register_operand" "0")
+ [(ior:DI (match_operand:DI 1 "register_operand" "%0")
(match_operand:DI 2 "nonimmediate_operand" "ym"))]
UNSPEC_NOP))]
"TARGET_MMX"
@@ -19323,7 +19555,7 @@
(define_insn "mmx_xordi3"
[(set (match_operand:DI 0 "register_operand" "=y")
(unspec:DI
- [(xor:DI (match_operand:DI 1 "register_operand" "0")
+ [(xor:DI (match_operand:DI 1 "register_operand" "%0")
(match_operand:DI 2 "nonimmediate_operand" "ym"))]
UNSPEC_NOP))]
"TARGET_MMX"
@@ -19346,7 +19578,7 @@
(define_insn "mmx_anddi3"
[(set (match_operand:DI 0 "register_operand" "=y")
(unspec:DI
- [(and:DI (match_operand:DI 1 "register_operand" "0")
+ [(and:DI (match_operand:DI 1 "register_operand" "%0")
(match_operand:DI 2 "nonimmediate_operand" "ym"))]
UNSPEC_NOP))]
"TARGET_MMX"
@@ -19805,17 +20037,17 @@
(define_insn "ldmxcsr"
[(unspec_volatile [(match_operand:SI 0 "memory_operand" "m")]
UNSPECV_LDMXCSR)]
- "TARGET_MMX"
+ "TARGET_SSE"
"ldmxcsr\t%0"
- [(set_attr "type" "mmx")
+ [(set_attr "type" "sse")
(set_attr "memory" "load")])
(define_insn "stmxcsr"
[(set (match_operand:SI 0 "memory_operand" "=m")
(unspec_volatile:SI [(const_int 0)] UNSPECV_STMXCSR))]
- "TARGET_MMX"
+ "TARGET_SSE"
"stmxcsr\t%0"
- [(set_attr "type" "mmx")
+ [(set_attr "type" "sse")
(set_attr "memory" "store")])
(define_expand "sfence"
@@ -20471,7 +20703,7 @@
(match_operator:V2DI 3 "sse_comparison_operator"
[(match_operand:V2DF 1 "register_operand" "0")
(match_operand:V2DF 2 "nonimmediate_operand" "x")])
- (match_dup 1)
+ (subreg:V2DI (match_dup 1) 0)
(const_int 1)))]
"TARGET_SSE2"
"cmp%D3sd\t{%2, %0|%0, %2}"
@@ -20692,6 +20924,15 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "SI")])
+(define_insn "cvtsd2siq"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (fix:DI (vec_select:DF (match_operand:V2DF 1 "register_operand" "xm")
+ (parallel [(const_int 0)]))))]
+ "TARGET_SSE2 && TARGET_64BIT"
+ "cvtsd2siq\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "SI")])
+
(define_insn "cvttsd2si"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI [(vec_select:DF (match_operand:V2DF 1 "register_operand" "xm")
@@ -20701,6 +20942,16 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "SI")])
+(define_insn "cvttsd2siq"
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (unspec:DI [(vec_select:DF (match_operand:V2DF 1 "register_operand" "x,xm")
+ (parallel [(const_int 0)]))] UNSPEC_FIX))]
+ "TARGET_SSE2 && TARGET_64BIT"
+ "cvttsd2siq\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "DI")
+ (set_attr "athlon_decode" "vector,vector")])
+
(define_insn "cvtsi2sd"
[(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_merge:V2DF (match_operand:V2DF 1 "register_operand" "0")
@@ -20713,6 +20964,19 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "DF")])
+(define_insn "cvtsi2sdq"
+ [(set (match_operand:V2DF 0 "register_operand" "=x,x")
+ (vec_merge:V2DF (match_operand:V2DF 1 "register_operand" "0,0")
+ (vec_duplicate:V2DF
+ (float:DF
+ (match_operand:DI 2 "nonimmediate_operand" "r,rm")))
+ (const_int 2)))]
+ "TARGET_SSE2 && TARGET_64BIT"
+ "cvtsi2sdq\t{%2, %0|%0, %2}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "DF")
+ (set_attr "athlon_decode" "vector,direct")])
+
;; Conversions between SF and DF
(define_insn "cvtsd2ss"
@@ -20770,7 +21034,7 @@
(define_insn "addv16qi3"
[(set (match_operand:V16QI 0 "register_operand" "=x")
- (plus:V16QI (match_operand:V16QI 1 "register_operand" "0")
+ (plus:V16QI (match_operand:V16QI 1 "register_operand" "%0")
(match_operand:V16QI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddb\t{%2, %0|%0, %2}"
@@ -20779,7 +21043,7 @@
(define_insn "addv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
- (plus:V8HI (match_operand:V8HI 1 "register_operand" "0")
+ (plus:V8HI (match_operand:V8HI 1 "register_operand" "%0")
(match_operand:V8HI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddw\t{%2, %0|%0, %2}"
@@ -20788,7 +21052,7 @@
(define_insn "addv4si3"
[(set (match_operand:V4SI 0 "register_operand" "=x")
- (plus:V4SI (match_operand:V4SI 1 "register_operand" "0")
+ (plus:V4SI (match_operand:V4SI 1 "register_operand" "%0")
(match_operand:V4SI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddd\t{%2, %0|%0, %2}"
@@ -20797,7 +21061,7 @@
(define_insn "addv2di3"
[(set (match_operand:V2DI 0 "register_operand" "=x")
- (plus:V2DI (match_operand:V2DI 1 "register_operand" "0")
+ (plus:V2DI (match_operand:V2DI 1 "register_operand" "%0")
(match_operand:V2DI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddq\t{%2, %0|%0, %2}"
@@ -20806,7 +21070,7 @@
(define_insn "ssaddv16qi3"
[(set (match_operand:V16QI 0 "register_operand" "=x")
- (ss_plus:V16QI (match_operand:V16QI 1 "register_operand" "0")
+ (ss_plus:V16QI (match_operand:V16QI 1 "register_operand" "%0")
(match_operand:V16QI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddsb\t{%2, %0|%0, %2}"
@@ -20815,7 +21079,7 @@
(define_insn "ssaddv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
- (ss_plus:V8HI (match_operand:V8HI 1 "register_operand" "0")
+ (ss_plus:V8HI (match_operand:V8HI 1 "register_operand" "%0")
(match_operand:V8HI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddsw\t{%2, %0|%0, %2}"
@@ -20824,7 +21088,7 @@
(define_insn "usaddv16qi3"
[(set (match_operand:V16QI 0 "register_operand" "=x")
- (us_plus:V16QI (match_operand:V16QI 1 "register_operand" "0")
+ (us_plus:V16QI (match_operand:V16QI 1 "register_operand" "%0")
(match_operand:V16QI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddusb\t{%2, %0|%0, %2}"
@@ -20833,7 +21097,7 @@
(define_insn "usaddv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
- (us_plus:V8HI (match_operand:V8HI 1 "register_operand" "0")
+ (us_plus:V8HI (match_operand:V8HI 1 "register_operand" "%0")
(match_operand:V8HI 2 "nonimmediate_operand" "xm")))]
"TARGET_SSE2"
"paddusw\t{%2, %0|%0, %2}"
@@ -21069,7 +21333,8 @@
[(set (match_operand:V8HI 0 "register_operand" "=x")
(vec_merge:V8HI (match_operand:V8HI 1 "register_operand" "0")
(vec_duplicate:V8HI
- (match_operand:SI 2 "nonimmediate_operand" "rm"))
+ (truncate:HI
+ (match_operand:SI 2 "nonimmediate_operand" "rm")))
(match_operand:SI 3 "immediate_operand" "i")))]
"TARGET_SSE2"
"pinsrw\t{%3, %2, %0|%0, %2, %3}"
@@ -21218,7 +21483,7 @@
(define_insn "ashrv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
(ashiftrt:V8HI (match_operand:V8HI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psraw\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21227,7 +21492,7 @@
(define_insn "ashrv4si3"
[(set (match_operand:V4SI 0 "register_operand" "=x")
(ashiftrt:V4SI (match_operand:V4SI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psrad\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21236,7 +21501,7 @@
(define_insn "lshrv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
(lshiftrt:V8HI (match_operand:V8HI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psrlw\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21245,7 +21510,7 @@
(define_insn "lshrv4si3"
[(set (match_operand:V4SI 0 "register_operand" "=x")
(lshiftrt:V4SI (match_operand:V4SI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psrld\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21254,7 +21519,7 @@
(define_insn "lshrv2di3"
[(set (match_operand:V2DI 0 "register_operand" "=x")
(lshiftrt:V2DI (match_operand:V2DI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psrlq\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21263,7 +21528,7 @@
(define_insn "ashlv8hi3"
[(set (match_operand:V8HI 0 "register_operand" "=x")
(ashift:V8HI (match_operand:V8HI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psllw\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21272,7 +21537,7 @@
(define_insn "ashlv4si3"
[(set (match_operand:V4SI 0 "register_operand" "=x")
(ashift:V4SI (match_operand:V4SI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"pslld\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21281,7 +21546,7 @@
(define_insn "ashlv2di3"
[(set (match_operand:V2DI 0 "register_operand" "=x")
(ashift:V2DI (match_operand:V2DI 1 "register_operand" "0")
- (match_operand:SI 2 "nonmemory_operand" "xi")))]
+ (match_operand:TI 2 "nonmemory_operand" "xi")))]
"TARGET_SSE2"
"psllq\t{%2, %0|%0, %2}"
[(set_attr "type" "sseishft")
@@ -21595,45 +21860,41 @@
(define_insn "sse2_movapd"
[(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,m")
- (unspec:V2DF [(match_operand:V2DF 1 "general_operand" "xm,x")]
+ (unspec:V2DF [(match_operand:V2DF 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVA))]
- "TARGET_SSE2"
- "@
- movapd\t{%1, %0|%0, %1}
- movapd\t{%1, %0|%0, %1}"
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movapd\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "V2DF")])
(define_insn "sse2_movupd"
[(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,m")
- (unspec:V2DF [(match_operand:V2DF 1 "general_operand" "xm,x")]
+ (unspec:V2DF [(match_operand:V2DF 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVU))]
- "TARGET_SSE2"
- "@
- movupd\t{%1, %0|%0, %1}
- movupd\t{%1, %0|%0, %1}"
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movupd\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt")
(set_attr "mode" "V2DF")])
(define_insn "sse2_movdqa"
[(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
- (unspec:V16QI [(match_operand:V16QI 1 "general_operand" "xm,x")]
+ (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVA))]
- "TARGET_SSE2"
- "@
- movdqa\t{%1, %0|%0, %1}
- movdqa\t{%1, %0|%0, %1}"
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movdqa\t{%1, %0|%0, %1}"
[(set_attr "type" "ssemov")
(set_attr "mode" "TI")])
(define_insn "sse2_movdqu"
[(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
- (unspec:V16QI [(match_operand:V16QI 1 "general_operand" "xm,x")]
+ (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVU))]
- "TARGET_SSE2"
- "@
- movdqu\t{%1, %0|%0, %1}
- movdqu\t{%1, %0|%0, %1}"
+ "TARGET_SSE2
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
+ "movdqu\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt")
(set_attr "mode" "TI")])
@@ -21641,24 +21902,48 @@
[(set (match_operand:DI 0 "nonimmediate_operand" "=m,y")
(vec_select:DI (match_operand:V2DI 1 "register_operand" "x,x")
(parallel [(const_int 0)])))]
- "TARGET_SSE2"
+ "TARGET_SSE2 && !TARGET_64BIT"
"@
movq\t{%1, %0|%0, %1}
movdq2q\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt")
(set_attr "mode" "TI")])
+(define_insn "sse2_movdq2q_rex64"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=m,y,r")
+ (vec_select:DI (match_operand:V2DI 1 "register_operand" "x,x,x")
+ (parallel [(const_int 0)])))]
+ "TARGET_SSE2 && TARGET_64BIT"
+ "@
+ movq\t{%1, %0|%0, %1}
+ movdq2q\t{%1, %0|%0, %1}
+ movd\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "TI")])
+
(define_insn "sse2_movq2dq"
[(set (match_operand:V2DI 0 "register_operand" "=x,?x")
(vec_concat:V2DI (match_operand:DI 1 "nonimmediate_operand" "m,y")
(const_int 0)))]
- "TARGET_SSE2"
+ "TARGET_SSE2 && !TARGET_64BIT"
"@
movq\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1}"
[(set_attr "type" "ssecvt,ssemov")
(set_attr "mode" "TI")])
+(define_insn "sse2_movq2dq_rex64"
+ [(set (match_operand:V2DI 0 "register_operand" "=x,?x,?x")
+ (vec_concat:V2DI (match_operand:DI 1 "nonimmediate_operand" "m,y,r")
+ (const_int 0)))]
+ "TARGET_SSE2 && TARGET_64BIT"
+ "@
+ movq\t{%1, %0|%0, %1}
+ movq2dq\t{%1, %0|%0, %1}
+ movd\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt,ssemov,ssecvt")
+ (set_attr "mode" "TI")])
+
(define_insn "sse2_movq"
[(set (match_operand:V2DI 0 "register_operand" "=x")
(vec_concat:V2DI (vec_select:DI
@@ -21673,7 +21958,7 @@
(define_insn "sse2_loadd"
[(set (match_operand:V4SI 0 "register_operand" "=x")
(vec_merge:V4SI
- (vec_duplicate:V4HI (match_operand:SI 1 "nonimmediate_operand" "mr"))
+ (vec_duplicate:V4SI (match_operand:SI 1 "nonimmediate_operand" "mr"))
(const_vector:V4SI [(const_int 0)
(const_int 0)
(const_int 0)
@@ -21716,11 +22001,21 @@
[(set_attr "type" "ssecvt")
(set_attr "mode" "V2DF")])
-(define_insn "sse2_loadsd"
+(define_expand "sse2_loadsd"
+ [(match_operand:V2DF 0 "register_operand" "")
+ (match_operand:DF 1 "memory_operand" "")]
+ "TARGET_SSE2"
+{
+ emit_insn (gen_sse2_loadsd_1 (operands[0], operands[1],
+ CONST0_RTX (V2DFmode)));
+ DONE;
+})
+
+(define_insn "sse2_loadsd_1"
[(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_merge:V2DF
- (match_operand:DF 1 "memory_operand" "m")
- (vec_duplicate:DF (float:DF (const_int 0)))
+ (vec_duplicate:V2DF (match_operand:DF 1 "memory_operand" "m"))
+ (match_operand:V2DF 2 "const0_operand" "X")
(const_int 1)))]
"TARGET_SSE2"
"movsd\t{%1, %0|%0, %1}"
@@ -21801,3 +22096,129 @@
"lfence"
[(set_attr "type" "sse")
(set_attr "memory" "unknown")])
+
+;; SSE3
+
+(define_insn "mwait"
+ [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
+ (match_operand:SI 1 "register_operand" "c")]
+ UNSPECV_MWAIT)]
+ "TARGET_SSE3"
+ "mwait\t%0, %1"
+ [(set_attr "length" "3")])
+
+(define_insn "monitor"
+ [(unspec_volatile [(match_operand:SI 0 "register_operand" "a")
+ (match_operand:SI 1 "register_operand" "c")
+ (match_operand:SI 2 "register_operand" "d")]
+ UNSPECV_MONITOR)]
+ "TARGET_SSE3"
+ "monitor\t%0, %1, %2"
+ [(set_attr "length" "3")])
+
+;; SSE3 arithmetic
+
+(define_insn "addsubv4sf3"
+ [(set (match_operand:V4SF 0 "register_operand" "=x")
+ (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "0")
+ (match_operand:V4SF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_ADDSUB))]
+ "TARGET_SSE3"
+ "addsubps\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V4SF")])
+
+(define_insn "addsubv2df3"
+ [(set (match_operand:V2DF 0 "register_operand" "=x")
+ (unspec:V2DF [(match_operand:V2DF 1 "register_operand" "0")
+ (match_operand:V2DF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_ADDSUB))]
+ "TARGET_SSE3"
+ "addsubpd\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V2DF")])
+
+(define_insn "haddv4sf3"
+ [(set (match_operand:V4SF 0 "register_operand" "=x")
+ (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "0")
+ (match_operand:V4SF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_HADD))]
+ "TARGET_SSE3"
+ "haddps\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V4SF")])
+
+(define_insn "haddv2df3"
+ [(set (match_operand:V2DF 0 "register_operand" "=x")
+ (unspec:V2DF [(match_operand:V2DF 1 "register_operand" "0")
+ (match_operand:V2DF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_HADD))]
+ "TARGET_SSE3"
+ "haddpd\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V2DF")])
+
+(define_insn "hsubv4sf3"
+ [(set (match_operand:V4SF 0 "register_operand" "=x")
+ (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "0")
+ (match_operand:V4SF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_HSUB))]
+ "TARGET_SSE3"
+ "hsubps\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V4SF")])
+
+(define_insn "hsubv2df3"
+ [(set (match_operand:V2DF 0 "register_operand" "=x")
+ (unspec:V2DF [(match_operand:V2DF 1 "register_operand" "0")
+ (match_operand:V2DF 2 "nonimmediate_operand" "xm")]
+ UNSPEC_HSUB))]
+ "TARGET_SSE3"
+ "hsubpd\t{%2, %0|%0, %2}"
+ [(set_attr "type" "sseadd")
+ (set_attr "mode" "V2DF")])
+
+(define_insn "movshdup"
+ [(set (match_operand:V4SF 0 "register_operand" "=x")
+ (unspec:V4SF
+ [(match_operand:V4SF 1 "nonimmediate_operand" "xm")] UNSPEC_MOVSHDUP))]
+ "TARGET_SSE3"
+ "movshdup\t{%1, %0|%0, %1}"
+ [(set_attr "type" "sse")
+ (set_attr "mode" "V4SF")])
+
+(define_insn "movsldup"
+ [(set (match_operand:V4SF 0 "register_operand" "=x")
+ (unspec:V4SF
+ [(match_operand:V4SF 1 "nonimmediate_operand" "xm")] UNSPEC_MOVSLDUP))]
+ "TARGET_SSE3"
+ "movsldup\t{%1, %0|%0, %1}"
+ [(set_attr "type" "sse")
+ (set_attr "mode" "V4SF")])
+
+(define_insn "lddqu"
+ [(set (match_operand:V16QI 0 "register_operand" "=x")
+ (unspec:V16QI [(match_operand:V16QI 1 "memory_operand" "m")]
+ UNSPEC_LDQQU))]
+ "TARGET_SSE3"
+ "lddqu\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "TI")])
+
+(define_insn "loadddup"
+ [(set (match_operand:V2DF 0 "register_operand" "=x")
+ (vec_duplicate:V2DF (match_operand:DF 1 "memory_operand" "m")))]
+ "TARGET_SSE3"
+ "movddup\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "DF")])
+
+(define_insn "movddup"
+ [(set (match_operand:V2DF 0 "register_operand" "=x")
+ (vec_duplicate:V2DF
+ (vec_select:DF (match_operand:V2DF 1 "register_operand" "x")
+ (parallel [(const_int 0)]))))]
+ "TARGET_SSE3"
+ "movddup\t{%1, %0|%0, %1}"
+ [(set_attr "type" "ssecvt")
+ (set_attr "mode" "DF")])
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
index 6b553cd4cb5..48c77d9c2a6 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -220,6 +220,13 @@ Boston, MA 02111-1307, USA. */
: "=d"(BASE))
#endif
+#define SUBTARGET_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
index ae346e6d518..fbfaa589984 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -1,5 +1,5 @@
/* Definitions for AMD x86-64 running Linux-based GNU systems with ELF format.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Jan Hubicka <jh@suse.cz>, based on linux.h.
This file is part of GNU CC.
@@ -36,6 +36,11 @@ Boston, MA 02111-1307, USA. */
builtin_define ("__PIC__"); \
builtin_define ("__pic__"); \
} \
+ if (TARGET_64BIT) \
+ { \
+ builtin_define ("__LP64__"); \
+ builtin_define ("_LP64"); \
+ } \
} \
while (0)
@@ -79,6 +84,13 @@ Boston, MA 02111-1307, USA. */
#define MULTILIB_DEFAULTS { "m64" }
+#define SUBTARGET_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs.
Don't use this at all if inhibit_libc is used. */
@@ -116,17 +128,17 @@ Boston, MA 02111-1307, USA. */
(FS)->regs.reg[0].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[0].loc.offset = (long)&sc_->rax - new_cfa_; \
(FS)->regs.reg[1].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[1].loc.offset = (long)&sc_->rbx - new_cfa_; \
+ (FS)->regs.reg[1].loc.offset = (long)&sc_->rdx - new_cfa_; \
(FS)->regs.reg[2].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[2].loc.offset = (long)&sc_->rcx - new_cfa_; \
(FS)->regs.reg[3].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[3].loc.offset = (long)&sc_->rdx - new_cfa_; \
+ (FS)->regs.reg[3].loc.offset = (long)&sc_->rbx - new_cfa_; \
(FS)->regs.reg[4].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[4].loc.offset = (long)&sc_->rbp - new_cfa_; \
+ (FS)->regs.reg[4].loc.offset = (long)&sc_->rsi - new_cfa_; \
(FS)->regs.reg[5].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[5].loc.offset = (long)&sc_->rsi - new_cfa_; \
+ (FS)->regs.reg[5].loc.offset = (long)&sc_->rdi - new_cfa_; \
(FS)->regs.reg[6].how = REG_SAVED_OFFSET; \
- (FS)->regs.reg[6].loc.offset = (long)&sc_->rdi - new_cfa_; \
+ (FS)->regs.reg[6].loc.offset = (long)&sc_->rbp - new_cfa_; \
(FS)->regs.reg[8].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[8].loc.offset = (long)&sc_->r8 - new_cfa_; \
(FS)->regs.reg[9].how = REG_SAVED_OFFSET; \
@@ -143,6 +155,8 @@ Boston, MA 02111-1307, USA. */
(FS)->regs.reg[14].loc.offset = (long)&sc_->r14 - new_cfa_; \
(FS)->regs.reg[15].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[15].loc.offset = (long)&sc_->r15 - new_cfa_; \
+ (FS)->regs.reg[16].how = REG_SAVED_OFFSET; \
+ (FS)->regs.reg[16].loc.offset = (long)&sc_->rip - new_cfa_; \
(FS)->retaddr_column = 16; \
goto SUCCESS; \
} while (0)
diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
index e7c5e8b6bcc..7f62fbd5624 100644
--- a/gcc/config/i386/mingw32.h
+++ b/gcc/config/i386/mingw32.h
@@ -1,6 +1,7 @@
/* Operating system specific defines to be used when targeting GCC for
hosting on Windows32, using GNU tools and the Windows32 API Library.
- Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -89,7 +90,7 @@ Boston, MA 02111-1307, USA. */
/* Include in the mingw32 libraries with libgcc */
#undef LIBGCC_SPEC
#define LIBGCC_SPEC \
- "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lmoldname -lmsvcrt"
+ "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \
diff --git a/gcc/config/i386/mmintrin.h b/gcc/config/i386/mmintrin.h
index 52e5195fbaf..00e77e454a4 100644
--- a/gcc/config/i386/mmintrin.h
+++ b/gcc/config/i386/mmintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -25,7 +25,7 @@
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
- User Guide and Reference, version 5.0. */
+ User Guide and Reference, version 8.0. */
#ifndef _MMINTRIN_H_INCLUDED
#define _MMINTRIN_H_INCLUDED
@@ -48,6 +48,12 @@ _mm_empty (void)
__builtin_ia32_emms ();
}
+static __inline void
+_m_empty (void)
+{
+ _mm_empty ();
+}
+
/* Convert I to a __m64 object. The integer is zero-extended to 64-bits. */
static __inline __m64
_mm_cvtsi32_si64 (int __i)
@@ -56,6 +62,28 @@ _mm_cvtsi32_si64 (int __i)
return (__m64) __tmp;
}
+static __inline __m64
+_m_from_int (int __i)
+{
+ return _mm_cvtsi32_si64 (__i);
+}
+
+#ifdef __x86_64__
+/* Convert I to a __m64 object. */
+static __inline __m64
+_mm_cvtsi64x_si64 (long long __i)
+{
+ return (__m64) __i;
+}
+
+/* Convert I to a __m64 object. */
+static __inline __m64
+_mm_set_pi64x (long long __i)
+{
+ return (__m64) __i;
+}
+#endif
+
/* Convert the lower 32 bits of the __m64 object into an integer. */
static __inline int
_mm_cvtsi64_si32 (__m64 __i)
@@ -64,6 +92,21 @@ _mm_cvtsi64_si32 (__m64 __i)
return __tmp;
}
+static __inline int
+_m_to_int (__m64 __i)
+{
+ return _mm_cvtsi64_si32 (__i);
+}
+
+#ifdef __x86_64__
+/* Convert the lower 32 bits of the __m64 object into an integer. */
+static __inline long long
+_mm_cvtsi64_si64x (__m64 __i)
+{
+ return (long long)__i;
+}
+#endif
+
/* Pack the four 16-bit values from M1 into the lower four 8-bit values of
the result, and the four 16-bit values from M2 into the upper four 8-bit
values of the result, all with signed saturation. */
@@ -73,6 +116,12 @@ _mm_packs_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_packsswb (__m64 __m1, __m64 __m2)
+{
+ return _mm_packs_pi16 (__m1, __m2);
+}
+
/* Pack the two 32-bit values from M1 in to the lower two 16-bit values of
the result, and the two 32-bit values from M2 into the upper two 16-bit
values of the result, all with signed saturation. */
@@ -82,6 +131,12 @@ _mm_packs_pi32 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_packssdw (__m64 __m1, __m64 __m2)
+{
+ return _mm_packs_pi32 (__m1, __m2);
+}
+
/* Pack the four 16-bit values from M1 into the lower four 8-bit values of
the result, and the four 16-bit values from M2 into the upper four 8-bit
values of the result, all with unsigned saturation. */
@@ -91,6 +146,12 @@ _mm_packs_pu16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_packuswb (__m64 __m1, __m64 __m2)
+{
+ return _mm_packs_pu16 (__m1, __m2);
+}
+
/* Interleave the four 8-bit values from the high half of M1 with the four
8-bit values from the high half of M2. */
static __inline __m64
@@ -99,6 +160,12 @@ _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_punpckhbw (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpackhi_pi8 (__m1, __m2);
+}
+
/* Interleave the two 16-bit values from the high half of M1 with the two
16-bit values from the high half of M2. */
static __inline __m64
@@ -107,6 +174,12 @@ _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_punpckhwd (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpackhi_pi16 (__m1, __m2);
+}
+
/* Interleave the 32-bit value from the high half of M1 with the 32-bit
value from the high half of M2. */
static __inline __m64
@@ -115,6 +188,12 @@ _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_punpckhdq (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpackhi_pi32 (__m1, __m2);
+}
+
/* Interleave the four 8-bit values from the low half of M1 with the four
8-bit values from the low half of M2. */
static __inline __m64
@@ -123,6 +202,12 @@ _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_punpcklbw (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpacklo_pi8 (__m1, __m2);
+}
+
/* Interleave the two 16-bit values from the low half of M1 with the two
16-bit values from the low half of M2. */
static __inline __m64
@@ -131,6 +216,12 @@ _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpcklwd ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_punpcklwd (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpacklo_pi16 (__m1, __m2);
+}
+
/* Interleave the 32-bit value from the low half of M1 with the 32-bit
value from the low half of M2. */
static __inline __m64
@@ -139,6 +230,12 @@ _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_punpckldq ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_punpckldq (__m64 __m1, __m64 __m2)
+{
+ return _mm_unpacklo_pi32 (__m1, __m2);
+}
+
/* Add the 8-bit values in M1 to the 8-bit values in M2. */
static __inline __m64
_mm_add_pi8 (__m64 __m1, __m64 __m2)
@@ -146,6 +243,12 @@ _mm_add_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_paddb (__m64 __m1, __m64 __m2)
+{
+ return _mm_add_pi8 (__m1, __m2);
+}
+
/* Add the 16-bit values in M1 to the 16-bit values in M2. */
static __inline __m64
_mm_add_pi16 (__m64 __m1, __m64 __m2)
@@ -153,6 +256,12 @@ _mm_add_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_paddw (__m64 __m1, __m64 __m2)
+{
+ return _mm_add_pi16 (__m1, __m2);
+}
+
/* Add the 32-bit values in M1 to the 32-bit values in M2. */
static __inline __m64
_mm_add_pi32 (__m64 __m1, __m64 __m2)
@@ -160,6 +269,19 @@ _mm_add_pi32 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_paddd (__m64 __m1, __m64 __m2)
+{
+ return _mm_add_pi32 (__m1, __m2);
+}
+
+/* Add the 64-bit values in M1 to the 64-bit values in M2. */
+static __inline __m64
+_mm_add_si64 (__m64 __m1, __m64 __m2)
+{
+ return (__m64) __builtin_ia32_paddq ((long long)__m1, (long long)__m2);
+}
+
/* Add the 8-bit values in M1 to the 8-bit values in M2 using signed
saturated arithmetic. */
static __inline __m64
@@ -168,6 +290,12 @@ _mm_adds_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddsb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_paddsb (__m64 __m1, __m64 __m2)
+{
+ return _mm_adds_pi8 (__m1, __m2);
+}
+
/* Add the 16-bit values in M1 to the 16-bit values in M2 using signed
saturated arithmetic. */
static __inline __m64
@@ -176,6 +304,12 @@ _mm_adds_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddsw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_paddsw (__m64 __m1, __m64 __m2)
+{
+ return _mm_adds_pi16 (__m1, __m2);
+}
+
/* Add the 8-bit values in M1 to the 8-bit values in M2 using unsigned
saturated arithmetic. */
static __inline __m64
@@ -184,6 +318,12 @@ _mm_adds_pu8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddusb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_paddusb (__m64 __m1, __m64 __m2)
+{
+ return _mm_adds_pu8 (__m1, __m2);
+}
+
/* Add the 16-bit values in M1 to the 16-bit values in M2 using unsigned
saturated arithmetic. */
static __inline __m64
@@ -192,6 +332,12 @@ _mm_adds_pu16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_paddusw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_paddusw (__m64 __m1, __m64 __m2)
+{
+ return _mm_adds_pu16 (__m1, __m2);
+}
+
/* Subtract the 8-bit values in M2 from the 8-bit values in M1. */
static __inline __m64
_mm_sub_pi8 (__m64 __m1, __m64 __m2)
@@ -199,6 +345,12 @@ _mm_sub_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_psubb (__m64 __m1, __m64 __m2)
+{
+ return _mm_sub_pi8 (__m1, __m2);
+}
+
/* Subtract the 16-bit values in M2 from the 16-bit values in M1. */
static __inline __m64
_mm_sub_pi16 (__m64 __m1, __m64 __m2)
@@ -206,6 +358,12 @@ _mm_sub_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_psubw (__m64 __m1, __m64 __m2)
+{
+ return _mm_sub_pi16 (__m1, __m2);
+}
+
/* Subtract the 32-bit values in M2 from the 32-bit values in M1. */
static __inline __m64
_mm_sub_pi32 (__m64 __m1, __m64 __m2)
@@ -213,6 +371,19 @@ _mm_sub_pi32 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubd ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_psubd (__m64 __m1, __m64 __m2)
+{
+ return _mm_sub_pi32 (__m1, __m2);
+}
+
+/* Add the 64-bit values in M1 to the 64-bit values in M2. */
+static __inline __m64
+_mm_sub_si64 (__m64 __m1, __m64 __m2)
+{
+ return (__m64) __builtin_ia32_psubq ((long long)__m1, (long long)__m2);
+}
+
/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using signed
saturating arithmetic. */
static __inline __m64
@@ -221,6 +392,12 @@ _mm_subs_pi8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubsb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_psubsb (__m64 __m1, __m64 __m2)
+{
+ return _mm_subs_pi8 (__m1, __m2);
+}
+
/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
signed saturating arithmetic. */
static __inline __m64
@@ -229,6 +406,12 @@ _mm_subs_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubsw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_psubsw (__m64 __m1, __m64 __m2)
+{
+ return _mm_subs_pi16 (__m1, __m2);
+}
+
/* Subtract the 8-bit values in M2 from the 8-bit values in M1 using
unsigned saturating arithmetic. */
static __inline __m64
@@ -237,6 +420,12 @@ _mm_subs_pu8 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubusb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_psubusb (__m64 __m1, __m64 __m2)
+{
+ return _mm_subs_pu8 (__m1, __m2);
+}
+
/* Subtract the 16-bit values in M2 from the 16-bit values in M1 using
unsigned saturating arithmetic. */
static __inline __m64
@@ -245,6 +434,12 @@ _mm_subs_pu16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_psubusw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_psubusw (__m64 __m1, __m64 __m2)
+{
+ return _mm_subs_pu16 (__m1, __m2);
+}
+
/* Multiply four 16-bit values in M1 by four 16-bit values in M2 producing
four 32-bit intermediate results, which are then summed by pairs to
produce two 32-bit results. */
@@ -254,6 +449,12 @@ _mm_madd_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_pmaddwd ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_pmaddwd (__m64 __m1, __m64 __m2)
+{
+ return _mm_madd_pi16 (__m1, __m2);
+}
+
/* Multiply four signed 16-bit values in M1 by four signed 16-bit values in
M2 and produce the high 16 bits of the 32-bit results. */
static __inline __m64
@@ -262,6 +463,12 @@ _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_pmulhw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_pmulhw (__m64 __m1, __m64 __m2)
+{
+ return _mm_mulhi_pi16 (__m1, __m2);
+}
+
/* Multiply four 16-bit values in M1 by four 16-bit values in M2 and produce
the low 16 bits of the results. */
static __inline __m64
@@ -270,6 +477,12 @@ _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_pmullw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_pmullw (__m64 __m1, __m64 __m2)
+{
+ return _mm_mullo_pi16 (__m1, __m2);
+}
+
/* Shift four 16-bit values in M left by COUNT. */
static __inline __m64
_mm_sll_pi16 (__m64 __m, __m64 __count)
@@ -278,11 +491,23 @@ _mm_sll_pi16 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psllw (__m64 __m, __m64 __count)
+{
+ return _mm_sll_pi16 (__m, __count);
+}
+
+static __inline __m64
_mm_slli_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psllw ((__v4hi)__m, __count);
}
+static __inline __m64
+_m_psllwi (__m64 __m, int __count)
+{
+ return _mm_slli_pi16 (__m, __count);
+}
+
/* Shift two 32-bit values in M left by COUNT. */
static __inline __m64
_mm_sll_pi32 (__m64 __m, __m64 __count)
@@ -291,11 +516,23 @@ _mm_sll_pi32 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_pslld (__m64 __m, __m64 __count)
+{
+ return _mm_sll_pi32 (__m, __count);
+}
+
+static __inline __m64
_mm_slli_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_pslld ((__v2si)__m, __count);
}
+static __inline __m64
+_m_pslldi (__m64 __m, int __count)
+{
+ return _mm_slli_pi32 (__m, __count);
+}
+
/* Shift the 64-bit value in M left by COUNT. */
static __inline __m64
_mm_sll_si64 (__m64 __m, __m64 __count)
@@ -304,11 +541,23 @@ _mm_sll_si64 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psllq (__m64 __m, __m64 __count)
+{
+ return _mm_sll_si64 (__m, __count);
+}
+
+static __inline __m64
_mm_slli_si64 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psllq ((long long)__m, (long long)__count);
}
+static __inline __m64
+_m_psllqi (__m64 __m, int __count)
+{
+ return _mm_slli_si64 (__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)
@@ -317,11 +566,23 @@ _mm_sra_pi16 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psraw (__m64 __m, __m64 __count)
+{
+ return _mm_sra_pi16 (__m, __count);
+}
+
+static __inline __m64
_mm_srai_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psraw ((__v4hi)__m, __count);
}
+static __inline __m64
+_m_psrawi (__m64 __m, int __count)
+{
+ return _mm_srai_pi16 (__m, __count);
+}
+
/* Shift two 32-bit values in M right by COUNT; shift in the sign bit. */
static __inline __m64
_mm_sra_pi32 (__m64 __m, __m64 __count)
@@ -330,11 +591,23 @@ _mm_sra_pi32 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psrad (__m64 __m, __m64 __count)
+{
+ return _mm_sra_pi32 (__m, __count);
+}
+
+static __inline __m64
_mm_srai_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrad ((__v2si)__m, __count);
}
+static __inline __m64
+_m_psradi (__m64 __m, int __count)
+{
+ return _mm_srai_pi32 (__m, __count);
+}
+
/* Shift four 16-bit values in M right by COUNT; shift in zeros. */
static __inline __m64
_mm_srl_pi16 (__m64 __m, __m64 __count)
@@ -343,11 +616,23 @@ _mm_srl_pi16 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psrlw (__m64 __m, __m64 __count)
+{
+ return _mm_srl_pi16 (__m, __count);
+}
+
+static __inline __m64
_mm_srli_pi16 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrlw ((__v4hi)__m, __count);
}
+static __inline __m64
+_m_psrlwi (__m64 __m, int __count)
+{
+ return _mm_srli_pi16 (__m, __count);
+}
+
/* Shift two 32-bit values in M right by COUNT; shift in zeros. */
static __inline __m64
_mm_srl_pi32 (__m64 __m, __m64 __count)
@@ -356,11 +641,23 @@ _mm_srl_pi32 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psrld (__m64 __m, __m64 __count)
+{
+ return _mm_srl_pi32 (__m, __count);
+}
+
+static __inline __m64
_mm_srli_pi32 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrld ((__v2si)__m, __count);
}
+static __inline __m64
+_m_psrldi (__m64 __m, int __count)
+{
+ return _mm_srli_pi32 (__m, __count);
+}
+
/* Shift the 64-bit value in M left by COUNT; shift in zeros. */
static __inline __m64
_mm_srl_si64 (__m64 __m, __m64 __count)
@@ -369,11 +666,23 @@ _mm_srl_si64 (__m64 __m, __m64 __count)
}
static __inline __m64
+_m_psrlq (__m64 __m, __m64 __count)
+{
+ return _mm_srl_si64 (__m, __count);
+}
+
+static __inline __m64
_mm_srli_si64 (__m64 __m, int __count)
{
return (__m64) __builtin_ia32_psrlq ((long long)__m, (long long)__count);
}
+static __inline __m64
+_m_psrlqi (__m64 __m, int __count)
+{
+ return _mm_srli_si64 (__m, __count);
+}
+
/* Bit-wise AND the 64-bit values in M1 and M2. */
static __inline __m64
_mm_and_si64 (__m64 __m1, __m64 __m2)
@@ -381,6 +690,12 @@ _mm_and_si64 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_pand ((long long)__m1, (long long)__m2);
}
+static __inline __m64
+_m_pand (__m64 __m1, __m64 __m2)
+{
+ return _mm_and_si64 (__m1, __m2);
+}
+
/* Bit-wise complement the 64-bit value in M1 and bit-wise AND it with the
64-bit value in M2. */
static __inline __m64
@@ -389,6 +704,12 @@ _mm_andnot_si64 (__m64 __m1, __m64 __m2)
return (__m64) __builtin_ia32_pandn ((long long)__m1, (long long)__m2);
}
+static __inline __m64
+_m_pandn (__m64 __m1, __m64 __m2)
+{
+ return _mm_andnot_si64 (__m1, __m2);
+}
+
/* Bit-wise inclusive OR the 64-bit values in M1 and M2. */
static __inline __m64
_mm_or_si64 (__m64 __m1, __m64 __m2)
@@ -396,6 +717,12 @@ _mm_or_si64 (__m64 __m1, __m64 __m2)
return (__m64)__builtin_ia32_por ((long long)__m1, (long long)__m2);
}
+static __inline __m64
+_m_por (__m64 __m1, __m64 __m2)
+{
+ return _mm_or_si64 (__m1, __m2);
+}
+
/* Bit-wise exclusive OR the 64-bit values in M1 and M2. */
static __inline __m64
_mm_xor_si64 (__m64 __m1, __m64 __m2)
@@ -403,6 +730,12 @@ _mm_xor_si64 (__m64 __m1, __m64 __m2)
return (__m64)__builtin_ia32_pxor ((long long)__m1, (long long)__m2);
}
+static __inline __m64
+_m_pxor (__m64 __m1, __m64 __m2)
+{
+ return _mm_xor_si64 (__m1, __m2);
+}
+
/* Compare eight 8-bit values. The result of the comparison is 0xFF if the
test is true and zero if false. */
static __inline __m64
@@ -412,11 +745,23 @@ _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
}
static __inline __m64
+_m_pcmpeqb (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpeq_pi8 (__m1, __m2);
+}
+
+static __inline __m64
_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtb ((__v8qi)__m1, (__v8qi)__m2);
}
+static __inline __m64
+_m_pcmpgtb (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpgt_pi8 (__m1, __m2);
+}
+
/* Compare four 16-bit values. The result of the comparison is 0xFFFF if
the test is true and zero if false. */
static __inline __m64
@@ -426,11 +771,23 @@ _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
}
static __inline __m64
+_m_pcmpeqw (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpeq_pi16 (__m1, __m2);
+}
+
+static __inline __m64
_mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtw ((__v4hi)__m1, (__v4hi)__m2);
}
+static __inline __m64
+_m_pcmpgtw (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpgt_pi16 (__m1, __m2);
+}
+
/* Compare two 32-bit values. The result of the comparison is 0xFFFFFFFF if
the test is true and zero if false. */
static __inline __m64
@@ -440,11 +797,23 @@ _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
}
static __inline __m64
+_m_pcmpeqd (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpeq_pi32 (__m1, __m2);
+}
+
+static __inline __m64
_mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
{
return (__m64) __builtin_ia32_pcmpgtd ((__v2si)__m1, (__v2si)__m2);
}
+static __inline __m64
+_m_pcmpgtd (__m64 __m1, __m64 __m2)
+{
+ return _mm_cmpgt_pi32 (__m1, __m2);
+}
+
/* Creates a 64-bit zero. */
static __inline __m64
_mm_setzero_si64 (void)
@@ -535,7 +904,7 @@ _mm_set1_pi16 (short __w)
return _mm_set1_pi32 (__i);
}
-/* Creates a vector of four 16-bit values, all elements containing B. */
+/* Creates a vector of eight 8-bit values, all elements containing B. */
static __inline __m64
_mm_set1_pi8 (char __b)
{
diff --git a/gcc/config/i386/pmmintrin.h b/gcc/config/i386/pmmintrin.h
new file mode 100644
index 00000000000..f42076bb9c1
--- /dev/null
+++ b/gcc/config/i386/pmmintrin.h
@@ -0,0 +1,132 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU CC.
+
+ GNU CC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU CC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU CC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header 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. */
+
+/* Implemented from the specification included in the Intel C++ Compiler
+ User Guide and Reference, version 8.0. */
+
+#ifndef _PMMINTRIN_H_INCLUDED
+#define _PMMINTRIN_H_INCLUDED
+
+#ifdef __SSE3__
+#include <xmmintrin.h>
+#include <emmintrin.h>
+
+/* Additional bits in the MXCSR. */
+#define _MM_DENORMALS_ZERO_MASK 0x0040
+#define _MM_DENORMALS_ZERO_ON 0x0040
+#define _MM_DENORMALS_ZERO_OFF 0x0000
+
+#define _MM_SET_DENORMALS_ZERO_MODE(mode) \
+ _mm_setcsr ((_mm_getcsr () & ~_MM_DENORMALS_ZERO_MASK) | (mode))
+#define _MM_GET_DENORMALS_ZERO_MODE() \
+ (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK)
+
+static __inline __m128
+_mm_addsub_ps (__m128 __X, __m128 __Y)
+{
+ return (__m128) __builtin_ia32_addsubps ((__v4sf)__X, (__v4sf)__Y);
+}
+
+static __inline __m128
+_mm_hadd_ps (__m128 __X, __m128 __Y)
+{
+ return (__m128) __builtin_ia32_haddps ((__v4sf)__X, (__v4sf)__Y);
+}
+
+static __inline __m128
+_mm_hsub_ps (__m128 __X, __m128 __Y)
+{
+ return (__m128) __builtin_ia32_hsubps ((__v4sf)__X, (__v4sf)__Y);
+}
+
+static __inline __m128
+_mm_movehdup_ps (__m128 __X)
+{
+ return (__m128) __builtin_ia32_movshdup ((__v4sf)__X);
+}
+
+static __inline __m128
+_mm_moveldup_ps (__m128 __X)
+{
+ return (__m128) __builtin_ia32_movsldup ((__v4sf)__X);
+}
+
+static __inline __m128d
+_mm_addsub_pd (__m128d __X, __m128d __Y)
+{
+ return (__m128d) __builtin_ia32_addsubpd ((__v2df)__X, (__v2df)__Y);
+}
+
+static __inline __m128d
+_mm_hadd_pd (__m128d __X, __m128d __Y)
+{
+ return (__m128d) __builtin_ia32_haddpd ((__v2df)__X, (__v2df)__Y);
+}
+
+static __inline __m128d
+_mm_hsub_pd (__m128d __X, __m128d __Y)
+{
+ return (__m128d) __builtin_ia32_hsubpd ((__v2df)__X, (__v2df)__Y);
+}
+
+static __inline __m128d
+_mm_loaddup_pd (double const *__P)
+{
+ return (__m128d) __builtin_ia32_loadddup (__P);
+}
+
+static __inline __m128d
+_mm_movedup_pd (__m128d __X)
+{
+ return (__m128d) __builtin_ia32_movddup ((__v2df)__X);
+}
+
+static __inline __m128i
+_mm_lddqu_si128 (__m128i const *__P)
+{
+ return (__m128i) __builtin_ia32_lddqu ((char const *)__P);
+}
+
+#if 0
+static __inline void
+_mm_monitor (void const * __P, unsigned int __E, unsigned int __H)
+{
+ __builtin_ia32_monitor (__P, __E, __H);
+}
+
+static __inline void
+_mm_mwait (unsigned int __E, unsigned int __H)
+{
+ __builtin_ia32_mwait (__E, __H);
+}
+#else
+#define _mm_monitor(P, E, H) __builtin_ia32_monitor ((P), (E), (H))
+#define _mm_mwait(E, H) __builtin_ia32_mwait ((E), (H))
+#endif
+
+#endif /* __SSE3__ */
+
+#endif /* _PMMINTRIN_H_INCLUDED */
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 815e45771d6..2a28e5459f3 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -1,7 +1,7 @@
/* Definitions for Intel 386 running SCO Unix System V 3.2 Version 5.
- Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2002
+ Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
- Contributed by Kean Johnston (hug@netcom.com)
+ Contributed by Kean Johnston (jkj@sco.com)
This file is part of GNU CC.
@@ -20,230 +20,36 @@ 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. */
+#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (i386, SCO OpenServer 5 Syntax)");
-#undef LPREFIX
-#define LPREFIX ".L"
-
-#undef ALIGN_ASM_OP
-#define ALIGN_ASM_OP "\t.align\t"
-
-#undef ASCII_DATA_ASM_OP
-#define ASCII_DATA_ASM_OP "\t.ascii\t"
-
-#undef IDENT_ASM_OP
-#define IDENT_ASM_OP "\t.ident\t"
-
-#undef COMMON_ASM_OP
-#define COMMON_ASM_OP "\t.comm\t"
-
-#undef SET_ASM_OP
-#define SET_ASM_OP "\t.set\t"
-
-#undef LOCAL_ASM_OP
-#define LOCAL_ASM_OP "\t.local\t"
-
-#undef ASM_SHORT
-#define ASM_SHORT "\t.value\t"
-
-#undef ASM_LONG
-#define ASM_LONG "\t.long\t"
+/* The native link editor does not support linkonce stuff */
+#define SUPPORTS_ONE_ONLY 0
#undef ASM_QUAD
-#undef TYPE_ASM_OP
-#define TYPE_ASM_OP "\t.type\t"
-
-#undef SIZE_ASM_OP
-#define SIZE_ASM_OP "\t.size\t"
-
-#undef STRING_ASM_OP
-#define STRING_ASM_OP "\t.string\t"
-
-#undef SKIP_ASM_OP
-#define SKIP_ASM_OP "\t.zero\t"
-
#undef GLOBAL_ASM_OP
#define GLOBAL_ASM_OP "\t.globl\t"
-#undef EH_FRAME_SECTION_ASM_OP
-#define EH_FRAME_SECTION_NAME_COFF ".ehfram"
-#define EH_FRAME_SECTION_NAME_ELF ".eh_frame"
-#define EH_FRAME_SECTION_NAME \
- ((TARGET_ELF) ? EH_FRAME_SECTION_NAME_ELF : EH_FRAME_SECTION_NAME_COFF)
-
-/* Avoid problems (long sectino names, forward assembler refs) with DWARF
- exception unwinding when we're generating COFF */
-#define DWARF2_UNWIND_INFO \
- ((TARGET_ELF) ? 1 : 0 )
-
-#undef READONLY_DATA_SECTION_ASM_OP
-#define READONLY_DATA_SECTION_ASM_OP_COFF "\t.section\t.rodata, \"x\""
-#define READONLY_DATA_SECTION_ASM_OP_ELF "\t.section\t.rodata"
-#define READONLY_DATA_SECTION_ASM_OP \
- ((TARGET_ELF) \
- ? READONLY_DATA_SECTION_ASM_OP_ELF \
- : READONLY_DATA_SECTION_ASM_OP_COFF)
-
-#undef INIT_SECTION_ASM_OP
-#define INIT_SECTION_ASM_OP_ELF "\t.section\t.init"
-/* Rename these for COFF because crt1.o will try to run them. */
-#define INIT_SECTION_ASM_OP_COFF "\t.section\t.ctor ,\"x\""
-#define INIT_SECTION_ASM_OP \
- ((TARGET_ELF) ? INIT_SECTION_ASM_OP_ELF : INIT_SECTION_ASM_OP_COFF)
-
-#undef CTORS_SECTION_ASM_OP
-#define CTORS_SECTION_ASM_OP_ELF "\t.section\t.ctors,\"aw\""
-#define CTORS_SECTION_ASM_OP_COFF INIT_SECTION_ASM_OP_COFF
-#define CTORS_SECTION_ASM_OP \
- ((TARGET_ELF) ? CTORS_SECTION_ASM_OP_ELF : CTORS_SECTION_ASM_OP_COFF)
-
-#undef DTORS_SECTION_ASM_OP
-#define DTORS_SECTION_ASM_OP_ELF "\t.section\t.dtors, \"aw\""
-#define DTORS_SECTION_ASM_OP_COFF FINI_SECTION_ASM_OP_COFF
-#define DTORS_SECTION_ASM_OP \
- ((TARGET_ELF) ? DTORS_SECTION_ASM_OP_ELF : DTORS_SECTION_ASM_OP_COFF)
-
-#undef FINI_SECTION_ASM_OP
-#define FINI_SECTION_ASM_OP_ELF "\t.section\t.fini"
-#define FINI_SECTION_ASM_OP_COFF "\t.section\t.dtor, \"x\""
-#define FINI_SECTION_ASM_OP \
- ((TARGET_ELF) ? FINI_SECTION_ASM_OP_ELF : FINI_SECTION_ASM_OP_COFF)
-
#undef BSS_SECTION_ASM_OP
-#define BSS_SECTION_ASM_OP "\t.data"
-
-#undef TEXT_SECTION_ASM_OP
-#define TEXT_SECTION_ASM_OP "\t.text"
-
-#undef DATA_SECTION_ASM_OP
-#define DATA_SECTION_ASM_OP "\t.data"
-
-#undef TYPE_OPERAND_FMT
-#define TYPE_OPERAND_FMT "@%s"
-
-#undef APPLY_RESULT_SIZE
-#define APPLY_RESULT_SIZE \
-(TARGET_ELF) ? size : 116
-
-#ifndef ASM_DECLARE_RESULT
-#define ASM_DECLARE_RESULT(FILE, RESULT)
-#endif
-
-#define SCO_DEFAULT_ASM_COFF(FILE,NAME) \
-do { \
- ASM_OUTPUT_LABEL (FILE, NAME); \
- } while (0)
-
-#undef ASM_DECLARE_FUNCTION_NAME
-#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
- do { \
- if (TARGET_ELF) { \
- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
- ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
- ASM_OUTPUT_LABEL (FILE, NAME); \
- } else \
- SCO_DEFAULT_ASM_COFF(FILE, NAME); \
-} while (0)
-
-#undef ASM_DECLARE_FUNCTION_SIZE
-#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
- do { \
- if (TARGET_ELF && !flag_inhibit_size_directive) \
- ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
- } while (0)
-
-#undef ASM_DECLARE_OBJECT_NAME
-#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
- do { \
- if (TARGET_ELF) { \
- HOST_WIDE_INT size; \
- \
- ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
- \
- size_directive_output = 0; \
- if (!flag_inhibit_size_directive \
- && (DECL) && DECL_SIZE (DECL)) \
- { \
- size_directive_output = 1; \
- size = int_size_in_bytes (TREE_TYPE (DECL)); \
- ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
- } \
- \
- ASM_OUTPUT_LABEL (FILE, NAME); \
- } else \
- SCO_DEFAULT_ASM_COFF(FILE, NAME); \
- } while (0)
+#define BSS_SECTION_ASM_OP "\t.section\t.bss, \"aw\", @nobits"
+
+/*
+ * NOTE: We really do want CTORS_SECTION_ASM_OP and DTORS_SECTION_ASM_OP.
+ * Here's the reason why. If we dont define them, and we dont define them
+ * to always emit to the same section, the default is to emit to "named"
+ * ctors and dtors sections. This would be great if we could use GNU ld,
+ * but we can't. The native linker could possibly be trained to coalesce
+ * named ctors sections, but that hasn't been done either. So if we don't
+ * define these, many C++ ctors and dtors dont get run, because they never
+ * wind up in the ctors/dtors arrays.
+ */
+#define CTORS_SECTION_ASM_OP "\t.section\t.ctors, \"aw\""
+#define DTORS_SECTION_ASM_OP "\t.section\t.dtors, \"aw\""
-#undef ASM_FILE_START_1
-#define ASM_FILE_START_1(FILE)
-
-#undef ASM_FILE_START
-#define ASM_FILE_START(FILE) \
-do { \
- output_file_directive((FILE),main_input_filename); \
- fprintf ((FILE), "\t.version\t\"01.01\"\n"); \
-} while (0)
-
-#undef ASM_FINISH_DECLARE_OBJECT
-#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END) \
-do { \
- if (TARGET_ELF) { \
- const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
- HOST_WIDE_INT size; \
- if (!flag_inhibit_size_directive && DECL_SIZE (DECL) \
- && ! AT_END && TOP_LEVEL \
- && DECL_INITIAL (DECL) == error_mark_node \
- && !size_directive_output) \
- { \
- size_directive_output = 1; \
- size = int_size_in_bytes (TREE_TYPE (DECL)); \
- ASM_OUTPUT_SIZE_DIRECTIVE (FILE, name, size); \
- } \
- } \
-} while (0)
-
-#undef ASM_GENERATE_INTERNAL_LABEL
-#define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
-do { \
- if (TARGET_ELF) \
- sprintf (LABEL, "*.%s%ld", (PREFIX), (long)(NUM)); \
- else \
- sprintf (LABEL, ".%s%ld", (PREFIX), (long)(NUM)); \
-} while (0)
-
-#undef ASM_OUTPUT_ALIGNED_COMMON
-#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
-do { \
- fprintf ((FILE), "%s", COMMON_ASM_OP); \
- assemble_name ((FILE), (NAME)); \
- if (TARGET_ELF) \
- fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
- else \
- fprintf ((FILE), ",%u\n", (SIZE)); \
-} while (0)
-
-#undef ASM_OUTPUT_ALIGNED_LOCAL
-#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
-do { \
- if (TARGET_ELF) { \
- fprintf ((FILE), "%s", LOCAL_ASM_OP); \
- assemble_name ((FILE), (NAME)); \
- fprintf ((FILE), "\n"); \
- ASM_OUTPUT_ALIGNED_COMMON (FILE, NAME, SIZE, ALIGN); \
- } else { \
- int align = exact_log2 (ALIGN); \
- if (align > 2) align = 2; \
- if (TARGET_SVR3_SHLIB) \
- data_section (); \
- else \
- bss_section (); \
- ASM_OUTPUT_ALIGN ((FILE), align == -1 ? 2 : align); \
- fprintf ((FILE), "%s\t", "\t.lcomm"); \
- assemble_name ((FILE), (NAME)); \
- fprintf ((FILE), ",%u\n", (SIZE)); \
- } \
-} while (0)
+#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
+#undef X86_FILE_START_VERSION_DIRECTIVE
+#define X86_FILE_START_VERSION_DIRECTIVE true
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
@@ -251,248 +57,23 @@ do { \
Try to use asm_output_aligned_bss to implement this macro. */
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
-asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
-
-#undef ESCAPES
-#define ESCAPES \
-"\1\1\1\1\1\1\1\1btn\1fr\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
-\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\
-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\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\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"
-
-#undef STRING_LIMIT
-#define STRING_LIMIT ((unsigned) 256)
-
-#undef ASM_OUTPUT_LIMITED_STRING
-#define ASM_OUTPUT_LIMITED_STRING(FILE, STR) \
- do \
- { \
- register const unsigned char *_limited_str = \
- (const unsigned char *) (STR); \
- register unsigned ch; \
- fprintf ((FILE), "%s\"", STRING_ASM_OP); \
- for (; (ch = *_limited_str); _limited_str++) \
- { \
- register int escape; \
- switch (escape = ESCAPES[ch]) \
- { \
- case 0: \
- putc (ch, (FILE)); \
- break; \
- case 1: \
- fprintf ((FILE), "\\%03o", ch); \
- break; \
- default: \
- putc ('\\', (FILE)); \
- putc (escape, (FILE)); \
- break; \
- } \
- } \
- fprintf ((FILE), "\"\n"); \
- } \
- while (0)
-
-
-#undef ASM_OUTPUT_ASCII
-#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH) \
-do { \
- register const unsigned char *_ascii_bytes = \
- (const unsigned char *) (STR); \
- register const unsigned char *limit = _ascii_bytes + (LENGTH); \
- register unsigned bytes_in_chunk = 0; \
- for (; _ascii_bytes < limit; _ascii_bytes++) \
- { \
- register unsigned const char *p; \
- if (bytes_in_chunk >= 64) \
- { \
- fputc ('\n', (FILE)); \
- bytes_in_chunk = 0; \
- } \
- for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
- continue; \
- if (p < limit && (p - _ascii_bytes) <= (long) STRING_LIMIT) \
- { \
- if (bytes_in_chunk > 0) \
- { \
- fputc ('\n', (FILE)); \
- bytes_in_chunk = 0; \
- } \
- ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes); \
- _ascii_bytes = p; \
- } \
- else \
- { \
- if (bytes_in_chunk == 0) \
- fputs ("\t.byte\t", (FILE)); \
- else \
- fputc (',', (FILE)); \
- fprintf ((FILE), "0x%02x", *_ascii_bytes); \
- bytes_in_chunk += 5; \
- } \
- } \
- if (bytes_in_chunk > 0) \
- fprintf ((FILE), "\n"); \
-} while (0)
-
-#undef ASM_OUTPUT_CASE_LABEL
-#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,JUMPTABLE) \
-do { \
- if (TARGET_ELF) \
- ASM_OUTPUT_ALIGN ((FILE), 2); \
- ASM_OUTPUT_INTERNAL_LABEL((FILE),(PREFIX),(NUM)); \
-} while (0)
-
-#undef ASM_OUTPUT_IDENT
-#define ASM_OUTPUT_IDENT(FILE, NAME) \
- fprintf (FILE, "%s\"%s\"\n", IDENT_ASM_OP, NAME);
-
-#undef ASM_OUTPUT_EXTERNAL_LIBCALL
-#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
- if (TARGET_ELF) (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0))
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
- fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
-
-/* The prefix to add to user-visible assembler symbols. */
-
-#undef USER_LABEL_PREFIX
-#define USER_LABEL_PREFIX ""
-
-/*
- * We rename 'gcc_except_table' to the shorter name in preparation
- * for the day when we're ready to do DWARF2 eh unwinding under COFF.
- */
-/* #define EXCEPTION_SECTION() named_section (NULL, ".gccexc", 1) */
-
-/* Switch into a generic section. */
-#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
-
-#undef ASM_OUTPUT_SKIP
-#define ASM_OUTPUT_SKIP(FILE,SIZE) \
-do { \
- if (TARGET_ELF) \
- fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE)); \
- else \
- fprintf ((FILE), "%s.,.+%u\n", SET_ASM_OP, (SIZE)); \
-} while (0)
-
-
-#undef CTOR_LIST_BEGIN
-#define CTOR_LIST_BEGIN \
-do { \
- asm (CTORS_SECTION_ASM_OP); \
- if (TARGET_ELF) \
- STATIC func_ptr __CTOR_LIST__[1] = { (func_ptr) (-1) }; \
- else \
- asm ("pushl $0"); \
-} while (0)
-
-#undef CTOR_LIST_END
-#define CTOR_LIST_END \
-do { \
- if (TARGET_ELF) { \
- asm (CTORS_SECTION_ASM_OP); \
- STATIC func_ptr __CTOR_LIST__[1] = { (func_ptr) (0) }; \
- } else { \
- CTOR_LIST_BEGIN; \
- } \
-} while (0)
-
-#undef DBX_BLOCKS_FUNCTION_RELATIVE
-#define DBX_BLOCKS_FUNCTION_RELATIVE 1
-
-#undef DBX_FUNCTION_FIRST
-#define DBX_FUNCTION_FIRST 1
+ asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
#undef DBX_REGISTER_NUMBER
-#define DBX_REGISTER_NUMBER(n) \
- ((TARGET_ELF) ? svr4_dbx_register_map[n] : dbx_register_map[n])
+#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
-#define DWARF2_DEBUGGING_INFO 1
-#define DWARF_DEBUGGING_INFO 1
-#define SDB_DEBUGGING_INFO 1
-#define DBX_DEBUGGING_INFO 1
+#define DWARF2_DEBUGGING_INFO 1
+#define DWARF_DEBUGGING_INFO 1
+#define DBX_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE \
- ((TARGET_ELF) ? DWARF2_DEBUG: SDB_DEBUG)
-
-#undef EXTRA_SECTIONS
-#define EXTRA_SECTIONS in_init, in_fini
-
-#undef EXTRA_SECTION_FUNCTIONS
-#define EXTRA_SECTION_FUNCTIONS \
- INIT_SECTION_FUNCTION \
- FINI_SECTION_FUNCTION
-
-#undef FINI_SECTION_FUNCTION
-#define FINI_SECTION_FUNCTION \
-void \
-fini_section () \
-{ \
- if ((!TARGET_ELF) && in_section != in_fini) \
- { \
- fprintf (asm_out_file, "%s\n", FINI_SECTION_ASM_OP); \
- in_section = in_fini; \
- } \
-}
-
-#undef INIT_SECTION_FUNCTION
-#define INIT_SECTION_FUNCTION \
-void \
-init_section () \
-{ \
- if ((!TARGET_ELF) && in_section != in_init) \
- { \
- fprintf (asm_out_file, "%s\n", INIT_SECTION_ASM_OP); \
- in_section = in_init; \
- } \
-}
-
-#undef SUBTARGET_FRAME_POINTER_REQUIRED
-#define SUBTARGET_FRAME_POINTER_REQUIRED \
- ((TARGET_ELF) ? 0 : \
- (current_function_calls_setjmp || current_function_calls_longjmp))
-
-#undef LOCAL_LABEL_PREFIX
-#define LOCAL_LABEL_PREFIX \
- ((TARGET_ELF) ? "" : ".")
-
-#undef MD_EXEC_PREFIX
-#undef MD_STARTFILE_PREFIX
-#define MD_EXEC_PREFIX "/usr/ccs/bin/"
-#define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
-
-#undef NON_SAVING_SETJMP
-#define NON_SAVING_SETJMP \
- ((TARGET_ELF) ? 0 : \
- (current_function_calls_setjmp && current_function_calls_longjmp))
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+
+#undef DWARF2_UNWIND_INFO
+#define DWARF2_UNWIND_INFO 1
#undef NO_IMPLICIT_EXTERN_C
-#define NO_IMPLICIT_EXTERN_C 1
-
-/* JKJ FIXME - examine the ramifications of RETURN_IN_MEMORY and
- RETURN_POPS_ARGS */
-
-#undef RETURN_POPS_ARGS
-#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
- ((TARGET_ELF) ? \
- (ix86_return_pops_args (FUNDECL, FUNTYPE, SIZE)) : \
- (((FUNDECL) && (TREE_CODE (FUNDECL) == IDENTIFIER_NODE)) ? 0 \
- : (TARGET_RTD \
- && (TYPE_ARG_TYPES (FUNTYPE) == 0 \
- || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
- == void_type_node))) ? (SIZE) \
- : 0))
-
-/* ??? Ignore coff. */
-#undef TARGET_ASM_SELECT_SECTION
-#define TARGET_ASM_SELECT_SECTION default_elf_select_section
+#define NO_IMPLICIT_EXTERN_C 1
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
@@ -511,17 +92,6 @@ init_section () \
#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
-#define HANDLE_SYSV_PRAGMA 1
-
-/* Though OpenServer supports .weak in COFF, we don't use it.
- * G++ will frequently emit a symol as .weak and then (in the same .s
- * file) declare it global. The COFF assembler finds this unamusing.
- */
-#define SUPPORTS_WEAK (TARGET_ELF)
-#define ASM_WEAKEN_LABEL(FILE,NAME) \
- do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
- fputc ('\n', FILE); } while (0)
-
/*
* Define sizes and types
*/
@@ -529,12 +99,14 @@ init_section () \
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
#undef WCHAR_TYPE_SIZE
+#undef WINT_TYPE
#undef LONG_DOUBLE_TYPE_SIZE
-#define LONG_DOUBLE_TYPE_SIZE 96
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#define WCHAR_TYPE "long int"
#define WCHAR_TYPE_SIZE BITS_PER_WORD
+#define WINT_TYPE "long int"
+#define LONG_DOUBLE_TYPE_SIZE 96
/*
* New for multilib support. Set the default switches for multilib,
@@ -548,7 +120,7 @@ init_section () \
With SCO Open Server 5.0, you now get the linker and assembler free,
so that is what these specs are targeted for. These utilities are
very argument sensitive: a space in the wrong place breaks everything.
- So RMS, please forgive this mess. It works.
+ So please forgive this mess. It works.
Parameters which can be passed to gcc, and their SCO equivalents:
GCC Parameter SCO Equivalent
@@ -564,77 +136,109 @@ init_section () \
does.
SCO also allows you to compile, link and generate either ELF or COFF
- binaries. With gcc, unlike the SCO compiler, the default is ELF.
- Specify -mcoff to gcc to produce COFF binaries. -fpic will get the
- assembler and linker to produce PIC code.
+ binaries. With gcc, we now only support ELF mode.
+
+ GCC also requires that the user has installed OSS646, the Execution
+ Environment Update, or is running release 5.0.7 or later. This has
+ many fixes to the ELF link editor and assembler, and a considerably
+ improved libc and RTLD.
+
+ In terms of tool usage, we want to use the standard link editor always,
+ and either the GNU assembler or the native assembler. With OSS646 the
+ native assembler has grown up quite a bit. Some of the specs below
+ assume that /usr/gnu is the prefix for the GNU tools, because thats
+ where the SCO provided ones go. This is especially important for
+ include and library search path ordering. We want to look in /usr/gnu
+ first, becuase frequently people are linking against -lintl, and they
+ MEAN to link with gettext. What they get is the SCO intl library. Its
+ a REAL pity that GNU gettext chose that name; perhaps in a future
+ version they can be persuaded to change it to -lgnuintl and have a
+ link so that -lintl will work for other systems. The same goes for
+ header files. We want /usr/gnu/include searched for before the system
+ header files. Hence the -isystem /usr/gnu/include in the CPP_SPEC.
+ We get /usr/gnu/lib first by virtue of the MD_STARTFILE_PREFIX below.
*/
+#define MD_STARTFILE_PREFIX "/usr/gnu/lib/"
+#define MD_STARTFILE_PREFIX_1 "/usr/ccs/lib/"
+
+#if USE_GAS
+# define MD_EXEC_PREFIX "/usr/gnu/bin/"
+#else
+# define MD_EXEC_PREFIX "/usr/ccs/bin/elf/"
+#endif
+
+/* Always use the system linker, please. */
+#ifndef DEFAULT_LINKER
+# define DEFAULT_LINKER "/usr/ccs/bin/elf/ld"
+#endif
+
/* Set up assembler flags for PIC and ELF compilations */
#undef ASM_SPEC
#if USE_GAS
- /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c
- * Undef MD_EXEC_PREFIX because we don't know where GAS is, but it's not
- * likely in /usr/ccs/bin/
- */
-#undef MD_EXEC_PREFIX
+ /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c */
#else
-
#define ASM_SPEC \
- "-b %{!mcoff:elf}%{mcoff:coff \
- %{static:%e-static not valid with -mcoff} \
- %{shared:%e-shared not valid with -mcoff} \
- %{symbolic:%e-symbolic not valid with -mcoff}} \
- %{Ym,*} %{Yd,*} %{Wa,*:%*} \
- %{!mcoff:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}}"
+ "%{Ym,*} %{Yd,*} %{Wa,*:%*} \
+ -E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}"
#endif
-/* Use crt1.o as a startup file and crtn.o as a closing file. */
+/*
+ * Use crti.o for shared objects, crt1.o for normal executables. Make sure
+ * to recognize both -G and -shared as a valid way of introducing shared
+ * library generation. This is important for backwards compatibility.
+ */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
- "%{shared: %{!mcoff: crti.o%s}} \
- %{!shared:\
+ "%{pg:%e-pg not supported on this platform} \
+ %{p:%{pp:%e-p and -pp specified - pick one}} \
+ %{!shared:\
%{!symbolic: \
- %{pg:gcrt.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}}} \
+ %{!G: \
+ %{pp:pcrt1elf.o%s}%{p:mcrt1.o%s}%{!p:%{!pp:crt1.o%s}}}}} \
+ crti.o%s \
%{ansi:values-Xc.o%s} \
%{!ansi: \
- %{Xa:values-Xa.o%s} \
- %{!Xa:%{Xc:values-Xc.o%s} \
- %{!Xc:%{Xk:values-Xk.o%s} \
- %{!Xk:%{Xt:values-Xt.o%s} \
- %{!Xt:values-Xa.o%s}}}}} \
- %{mcoff:crtbeginS.o%s} %{!mcoff:crtbegin.o%s}"
+ %{traditional:values-Xt.o%s} \
+ %{!traditional: \
+ %{Xa:values-Xa.o%s} \
+ %{!Xa:%{Xc:values-Xc.o%s} \
+ %{!Xc:%{Xk:values-Xk.o%s} \
+ %{!Xk:%{Xt:values-Xt.o%s} \
+ %{!Xt:values-Xa.o%s}}}}}} \
+ crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
- "%{!mcoff:crtend.o%s} \
- %{mcoff:crtendS.o%s} \
- %{pg:gcrtn.o%s}%{!pg:crtn.o%s}"
-
-#define TARGET_OS_CPP_BUILTINS() \
- do \
- { \
- builtin_define ("__unix"); \
- builtin_define ("_SCO_DS"); \
- builtin_define ("_M_I386"); \
- builtin_define ("_M_XENIX"); \
- builtin_define ("_M_UNIX"); \
- builtin_assert ("system=svr3"); \
- if (flag_iso) \
- cpp_define (pfile, "_STRICT_ANSI"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
- } \
+ "crtend.o%s crtn.o%s"
+
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__unix"); \
+ builtin_define ("_SCO_DS"); \
+ builtin_define ("_SCO_DS_LL"); \
+ builtin_define ("_SCO_ELF"); \
+ builtin_define ("_M_I386"); \
+ builtin_define ("_M_XENIX"); \
+ builtin_define ("_M_UNIX"); \
+ builtin_assert ("system=svr3"); \
+ if (flag_iso) \
+ cpp_define (pfile, "_STRICT_ANSI"); \
+ if (flag_pic) \
+ { \
+ builtin_define ("__PIC__"); \
+ builtin_define ("__pic__"); \
+ } \
+ } \
while (0)
#undef CPP_SPEC
#define CPP_SPEC "\
- %{fpic:%{mcoff:%e-fpic is not valid with -mcoff}} \
- %{fPIC:%{mcoff:%e-fPIC is not valid with -mcoff}} \
+ -isystem /usr/gnu/include \
+ %{pthread:-D_REENTRANT} \
%{!Xods30:-D_STRICT_NAMES} \
%{!ansi:%{!posix:%{!Xods30:-D_SCO_XPG_VERS=4}}} \
%{ansi:-isystem include/ansi%s -isystem /usr/include/ansi} \
@@ -652,8 +256,6 @@ init_section () \
-DM_BITFIELDS -DM_SYS5 -DM_SYSV -DM_INTERNAT -DM_SYSIII \
-DM_WORDSWAP}}}} \
%{scointl:-DM_INTERNAT -D_M_INTERNAT} \
- %{!mcoff:-D_SCO_ELF} \
- %{mcoff:-D_M_COFF -D_SCO_COFF} \
%{Xa:-D_SCO_C_DIALECT=1} \
%{!Xa:%{Xc:-D_SCO_C_DIALECT=3} \
%{!Xc:%{Xk:-D_SCO_C_DIALECT=4} \
@@ -662,109 +264,38 @@ init_section () \
#undef LINK_SPEC
#define LINK_SPEC \
- "-b %{!mcoff:elf}%{mcoff:coff \
- %{static:%e-static not valid with -mcoff} \
- %{shared:%e-shared not valid with -mcoff} \
- %{symbolic:%e-symbolic not valid with -mcoff} \
- %{fpic:%e-fpic not valid with -mcoff} \
- %{fPIC:%e-fPIC not valid with -mcoff}} \
- -R%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},%{mcoff:COFF}%{!mcoff:ELF} \
- %{Wl,*%*} %{YP,*} %{YL,*} %{YU,*} \
+ "%{!shared:%{!symbolic:%{!G:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF}}} \
+ %{Wl,*:%*} %{YP,*} %{YL,*} %{YU,*} \
%{!YP,*:%{p:-YP,/usr/ccs/libp:/lib/libp:/usr/lib/libp:/usr/ccs/lib:/lib:/usr/lib} \
%{!p:-YP,/usr/ccs/lib:/lib:/usr/lib}} \
- %{h*} %{static:-dn -Bstatic} %{shared:-G -dy %{!z*:-z text}} \
- %{symbolic:-Bsymbolic -G -dy %{!z*:-z text}} %{z*} %{R*} %{Y*} \
- %{G:-G} %{!mcoff:%{Qn:} %{!Qy:-Qn}}"
-
-/* The SCO COFF linker gets confused on the difference between "-ofoo"
- and "-o foo". So we just always force a single space. */
-
-#define SWITCHES_NEED_SPACES "o"
+ %{h*} %{static:-dn -Bstatic %{G:%e-G and -static are mutually exclusive}} \
+ %{shared:%{!G:-G}} %{G:%{!shared:-G}} %{shared:%{G:-G}} \
+ %{shared:-dy %{symbolic:-Bsymbolic -G} %{z*}} %{R*} %{Y*} \
+ %{Qn:} %{!Qy:-Qn} -z alt_resolve"
/* Library spec. If we are not building a shared library, provide the
standard libraries, as per the SCO compiler. */
#undef LIB_SPEC
#define LIB_SPEC \
- "%{shared:pic/libgcc.a%s}%{!shared:%{!symbolic:-lcrypt -lgen -lc}}"
+ "%{shared:%{!G:pic/libgcc.a%s}} \
+ %{G:%{!shared:pic/libgcc.a%s}} \
+ %{shared:%{G:pic/libgcc.a%s}} \
+ %{p:%{!pp:-lelfprof -lelf}} %{pp:%{!p:-lelfprof -lelf}} \
+ %{!shared:%{!symbolic:%{!G:-lcrypt -lgen -lc %{pthread:-lpthread}}}}"
#undef LIBGCC_SPEC
#define LIBGCC_SPEC \
- "%{!shared:-lgcc}"
+ "%{!shared:%{!G:-lgcc}}"
-#define MASK_COFF 010000000000 /* Mask for elf generation */
-#define TARGET_ELF (1) /* (!(target_flags & MASK_COFF)) */
+/* Here for legacy support only so we still accept -melf flag */
+#define MASK_COFF 010000000000 /* Mask for COFF generation */
+#define TARGET_ELF (1)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{ "elf", -MASK_COFF, N_("Generate ELF output") },
-#define NO_DOLLAR_IN_LABEL
-
-/* Implicit library calls should use memcpy, not bcopy, etc. They are
- faster on OpenServer libraries. */
-
-#define TARGET_MEM_FUNCTIONS
-
-/* Biggest alignment supported by the object file format of this
- machine. Use this macro to limit the alignment which can be
- specified using the `__attribute__ ((aligned (N)))' construct. If
- not defined, the default value is `BIGGEST_ALIGNMENT'. */
-
-#define MAX_OFILE_ALIGNMENT (32768*8)
-
-/* Define the `__builtin_va_list' type for the ABI. On OpenServer, this
- type is `char *'. */
-#undef BUILD_VA_LIST_TYPE
-#define BUILD_VA_LIST_TYPE(VALIST) \
- (VALIST) = build_pointer_type (char_type_node)
-
-
-/*
-Here comes some major hackery to get the crt stuff to compile properly.
-Since we can (and do) compile for both COFF and ELF environments, we
-set things up accordingly, based on the pre-processor defines for ELF
-and COFF. This is insane, but then I guess having one compiler with a
-single back-end supporting two vastly different file format types is
-a little insane too. But it is not impossible and we get a useful
-compiler at the end of the day. Onward we go ...
-*/
-
-#if defined(CRT_BEGIN) || defined(CRT_END) || defined(IN_LIBGCC2)
-# undef OBJECT_FORMAT_ELF
-# undef INIT_SECTION_ASM_OP
-# undef FINI_SECTION_ASM_OP
-# undef CTORS_SECTION_ASM_OP
-# undef DTORS_SECTION_ASM_OP
-# undef EH_FRAME_SECTION_NAME
-# undef CTOR_LIST_BEGIN
-# undef CTOR_LIST_END
-# undef DO_GLOBAL_CTORS_BODY
-
-# if defined (_SCO_ELF)
-# define OBJECT_FORMAT_ELF
-# define INIT_SECTION_ASM_OP INIT_SECTION_ASM_OP_ELF
-# define FINI_SECTION_ASM_OP FINI_SECTION_ASM_OP_ELF
-# define DTORS_SECTION_ASM_OP DTORS_SECTION_ASM_OP_ELF
-# define CTORS_SECTION_ASM_OP CTORS_SECTION_ASM_OP_ELF
-# define EH_FRAME_SECTION_NAME EH_FRAME_SECTION_NAME_ELF
-# else /* ! _SCO_ELF */
-# define INIT_SECTION_ASM_OP INIT_SECTION_ASM_OP_COFF
-# define FINI_SECTION_ASM_OP FINI_SECTION_ASM_OP_COFF
-# define DTORS_SECTION_ASM_OP DTORS_SECTION_ASM_OP_COFF
-# define CTORS_SECTION_ASM_OP CTORS_SECTION_ASM_OP_COFF
-# define EH_FRAME_SECTION_NAME EH_FRAME_SECTION_NAME_COFF
-# define CTOR_LIST_BEGIN asm (INIT_SECTION_ASM_OP); asm ("pushl $0")
-# define CTOR_LIST_END CTOR_LIST_BEGIN
-# define DO_GLOBAL_CTORS_BODY \
-do { \
- func_ptr *p, *beg = alloca(0); \
- for (p = beg; *p;) \
- (*p++) (); \
-} while (0)
-# endif /* ! _SCO_ELF */
-#endif /* CRT_BEGIN !! CRT_END */
-
/* Handle special EH pointer encodings. Absolute, pc-relative, and
indirect are handled automatically. */
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
@@ -798,10 +329,3 @@ do { \
: "=d"(BASE))
#endif
-/* 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) \
- (flag_pic ? (GLOBAL ? DW_EH_PE_indirect : 0) | DW_EH_PE_datarel \
- : DW_EH_PE_absptr)
diff --git a/gcc/config/i386/scodbx.h b/gcc/config/i386/scodbx.h
deleted file mode 100644
index 7da93053256..00000000000
--- a/gcc/config/i386/scodbx.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Definitions for Intel 386 running SCO Unix System V,
- using dbx-in-coff encapsulation.
- Copyright (C) 1992, 1995, 1996, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#include "i386/svr3dbx.h"
-
-/* Overridden defines for SCO systems from sco.h. */
-
-/* By default, target has a 80387, uses IEEE compatible arithmetic,
- and returns float values in the 387, ie,
- (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
-
- SCO's software emulation of a 387 fails to handle the `fucomp'
- opcode. fucomp is only used when generating IEEE compliant code.
- So don't make TARGET_IEEE_FP default for SCO. */
-
-#undef TARGET_SUBTARGET_DEFAULT
-#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_FLOAT_RETURNS)
-
-/* Use crt1.o as a startup file and crtn.o as a closing file. */
-
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC \
- "%{!r:%{!z:svr3.ifile%s}%{z:svr3z.ifile%s}}\
- %{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}"
-
-/* Library spec, including SCO international language support. */
-
-#undef LIB_SPEC
-#define LIB_SPEC \
- "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc"
-
-/* Specify predefined symbols in preprocessor. */
-
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Dunix -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem=svr3"
-
-#undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %{scointl:-DM_INTERNAT}"
-
-/* This spec is used for telling cpp whether char is signed or not. */
-
-#undef SIGNED_CHAR_SPEC
-#if DEFAULT_SIGNED_CHAR
-#define SIGNED_CHAR_SPEC \
- "%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
-#else
-#define SIGNED_CHAR_SPEC \
- "%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
-#endif
-
-/* caller has to pop the extra argument passed to functions that return
- structures. */
-
-#undef RETURN_POPS_ARGS
-#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \
- ((FUNDECL) && TREE_CODE (FUNDECL) == IDENTIFIER_NODE ? 0 \
- : (TARGET_RTD \
- && (TYPE_ARG_TYPES (FUNTYPE) == 0 \
- || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
- == void_type_node))) ? (SIZE) \
- : 0)
-/* On other 386 systems, the last line looks like this:
- : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0) */
-
-/* Handle #pragma pack. */
-#define HANDLE_SYSV_PRAGMA
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index fb5a184d65b..9089a1dce6c 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -1,5 +1,5 @@
/* Target definitions for GNU compiler for Intel 80386 running Solaris 2
- Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Fred Fish (fnf@cygnus.com).
@@ -20,8 +20,6 @@ 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. */
-#define CMOV_SUN_AS_SYNTAX 1
-
/* The Solaris 2.0 x86 linker botches alignment of code sections.
It tries to align to a 16 byte boundary by padding with 0x00000090
ints, rather than 0x90 bytes (nop). This generates trash in the
diff --git a/gcc/config/i386/t-sco5 b/gcc/config/i386/t-sco5
index d0c457ef345..f92a62430cc 100644
--- a/gcc/config/i386/t-sco5
+++ b/gcc/config/i386/t-sco5
@@ -1,18 +1,16 @@
-# We need to use -fPIC when we are using gcc to compile the routines in
-# crtstuff.c. This is only really needed when we are going to use gcc/g++
-# to produce a shared library, but since we don't know ahead of time when
-# we will be doing that, we just always use -fPIC when compiling the
-# routines in crtstuff.c. Likewise for libgcc2.c. This is less painful
-# than multilibbing everything with PIC and PIC-not variants.
-
-# The pushl in CTOR initialization interferes with frame pointer elimination.
-
+# We multilib libgcc for -fPIC, to get real PIC code in it.
+# NOTE: We must use -fPIC on crt{begi,end}.o else we get an RTLD error
+# "cant set protections on segment of length blah at 0x8048000".
CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
-TARGET_LIBGCC2_CFLAGS = -fPIC
-crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
- sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s
- $(GCC_FOR_TARGET) -c -o crti.o crti.s
+MULTILIB_OPTIONS = fPIC
+MULTILIB_DIRNAMES = pic
+MUTLILIB_EXCEPTIONS =
+MULTILIB_MATCHES = fPIC=fpic
+MULTILIB_EXTRA_OPTS =
+
+LIBGCC=stmp-multilib
+INSTALL_LIBGCC=install-multilib
# See all the declarations.
FIXPROTO_DEFINES = -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=2
diff --git a/gcc/config/i386/t-sco5gas b/gcc/config/i386/t-sco5gas
deleted file mode 100644
index 2d0b48a6292..00000000000
--- a/gcc/config/i386/t-sco5gas
+++ /dev/null
@@ -1,23 +0,0 @@
-# The pushl in CTOR initialization interferes with frame pointer elimination.
-CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
-CRTSTUFF_T_CFLAGS_S = -mcoff -fno-omit-frame-pointer
-
-#
-# I am still a little unsure of the multilib architecture. The following
-# 4 lines are based on advice from meissner@cygnus.com.
-#
-MULTILIB_OPTIONS = fPIC
-MULTILIB_DIRNAMES = pic
-MULTILIB_EXCEPTIONS = *fPIC*
-MULTILIB_MATCHES = fPIC=fpic
-MULTILIB_EXTRA_OPTS =
-
-LIBGCC=stmp-multilib
-INSTALL_LIBGCC=install-multilib
-
-crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
- sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s
- $(GCC_FOR_TARGET) -c -o crti.o crti.s
-
-# See all the declarations.
-FIXPROTO_DEFINES = -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=2
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 00b3dfd0442..01493a2d3cf 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -1,24 +1,24 @@
/* Subroutines for insn-output.c for Windows NT.
Contributed by Douglas Rupp (drupp@cs.washington.edu)
- Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
-This file is part of GNU CC.
+This file is part of GCC.
-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.
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
-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.
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
#include "config.h"
#include "system.h"
@@ -54,16 +54,18 @@ void i386_pe_mark_dllimport PARAMS ((tree));
/* Handle a "dllimport" or "dllexport" attribute;
arguments as in struct attribute_spec.handler. */
tree
-ix86_handle_dll_attribute (node, name, args, flags, no_add_attrs)
- tree *node;
+ix86_handle_dll_attribute (pnode, name, args, flags, no_add_attrs)
+ tree * pnode;
tree name;
tree args;
int flags;
bool *no_add_attrs;
{
+ tree node = *pnode;
+
/* These attributes may apply to structure and union types being created,
but otherwise should pass to the declaration involved. */
- if (!DECL_P (*node))
+ if (!DECL_P (node))
{
if (flags & ((int) ATTR_FLAG_DECL_NEXT | (int) ATTR_FLAG_FUNCTION_NEXT
| (int) ATTR_FLAG_ARRAY_NEXT))
@@ -71,20 +73,56 @@ ix86_handle_dll_attribute (node, name, args, flags, no_add_attrs)
*no_add_attrs = true;
return tree_cons (name, args, NULL_TREE);
}
- if (TREE_CODE (*node) != RECORD_TYPE && TREE_CODE (*node) != UNION_TYPE)
+ if (TREE_CODE (node) != RECORD_TYPE && TREE_CODE (node) != UNION_TYPE)
{
warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
*no_add_attrs = true;
}
+
+ return NULL_TREE;
+ }
+
+ /* Report error on dllimport ambiguities seen now before they cause
+ any damage. */
+ else if (is_attribute_p ("dllimport", name))
+ {
+ /* Like MS, treat definition of dllimported variables and
+ non-inlined functions on declaration as syntax errors.
+ We allow the attribute for function definitions if declared
+ inline, but just ignore it in i386_pe_dllimport_p. */
+ if (TREE_CODE (node) == FUNCTION_DECL && DECL_INITIAL (node)
+ && !DECL_INLINE (node))
+ {
+ error_with_decl (node, "function `%s' definition is marked dllimport.");
+ *no_add_attrs = true;
+ }
+
+ else if (TREE_CODE (node) == VAR_DECL)
+ {
+ if (DECL_INITIAL (node))
+ {
+ error_with_decl (node,"variable `%s' definition is marked dllimport.");
+ *no_add_attrs = true;
+ }
+
+ /* `extern' needn't be specified with dllimport.
+ Specify `extern' now and hope for the best. Sigh. */
+ DECL_EXTERNAL (node) = 1;
+ /* Also, implicitly give dllimport'd variables declared within
+ a function global scope, unless declared static. */
+ if (current_function_decl != NULL_TREE && !TREE_STATIC (node))
+ TREE_PUBLIC (node) = 1;
+ }
}
- /* `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))
+ /* Report error if symbol is not accessible at global scope. */
+ if (!TREE_PUBLIC (node)
+ && (TREE_CODE (node) == VAR_DECL
+ || TREE_CODE (node) == FUNCTION_DECL))
{
- DECL_EXTERNAL (*node) = 1;
- TREE_PUBLIC (*node) = 1;
+ error_with_decl (node, "external linkage required for symbol '%s' because of '%s' attribute.",
+ IDENTIFIER_POINTER (name));
+ *no_add_attrs = true;
}
return NULL_TREE;
@@ -169,6 +207,7 @@ i386_pe_dllimport_p (decl)
tree decl;
{
tree imp;
+ int context_imp = 0;
if (TREE_CODE (decl) == FUNCTION_DECL
&& TARGET_NOP_FUN_DLLIMPORT)
@@ -177,17 +216,62 @@ i386_pe_dllimport_p (decl)
if (TREE_CODE (decl) != VAR_DECL
&& TREE_CODE (decl) != FUNCTION_DECL)
return 0;
+
imp = lookup_attribute ("dllimport", DECL_ATTRIBUTES (decl));
- if (imp)
- return 1;
/* Class members get the dllimport status of their class. */
- if (associated_type (decl))
+ if (!imp && associated_type (decl))
{
imp = lookup_attribute ("dllimport",
TYPE_ATTRIBUTES (associated_type (decl)));
if (imp)
- return 1;
+ context_imp = 1;
+ }
+
+ if (imp)
+ {
+ /* Don't mark defined functions as dllimport. If the definition
+ itself was marked with dllimport, than ix86_handle_dll_attribute
+ reports an error. This handles the case when the definition
+ overrides an earlier declaration. */
+ if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INITIAL (decl)
+ && !DECL_INLINE (decl))
+ {
+ /* Don't warn about artificial methods. */
+ if (!DECL_ARTIFICIAL (decl))
+ warning_with_decl (decl,"function '%s' is defined after prior declaration as dllimport: attribute ignored.");
+ return 0;
+ }
+
+ /* We ignore the dllimport attribute for inline member functions.
+ This differs from MSVC behaviour which treats it like GNUC
+ 'extern inline' extension. */
+ else if (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))
+ {
+ if (extra_warnings)
+ warning_with_decl (decl, "inline function '%s' is declared as dllimport: attribute ignored.");
+ return 0;
+ }
+
+ /* Don't allow definitions of static data members in dllimport class,
+ Just ignore attribute for vtable data. */
+ else if (TREE_CODE (decl) == VAR_DECL
+ && TREE_STATIC (decl) && TREE_PUBLIC (decl)
+ && !DECL_EXTERNAL (decl) && context_imp)
+ {
+ if (!DECL_VIRTUAL_P (decl))
+ error_with_decl (decl, "definition of static data member '%s' of dllimport'd class.");
+ return 0;
+ }
+
+ /* Since we can't treat a pointer to a dllimport'd symbol as a
+ constant address, we turn off the attribute on C++ virtual
+ methods to allow creation of vtables using thunks. */
+ else if (TREE_CODE (TREE_TYPE (decl)) == METHOD_TYPE
+ && (DECL_VIRTUAL_P (decl)))
+ return 0;
+
+ return 1;
}
return 0;
@@ -234,7 +318,12 @@ i386_pe_mark_dllexport (decl)
else
abort ();
if (i386_pe_dllimport_name_p (oldname))
- oldname += 9;
+ {
+ warning_with_decl (decl,"inconsistent dll linkage for '%s': dllexport assumed.");
+ /* Remove DLL_IMPORT_PREFIX. */
+ oldname += 9;
+ DECL_NON_ADDR_CONST_P (decl) = 0;
+ }
else if (i386_pe_dllexport_name_p (oldname))
return; /* already done */
@@ -278,39 +367,13 @@ i386_pe_mark_dllimport (decl)
}
else if (i386_pe_dllimport_name_p (oldname))
{
- /* Already done, but force correct linkage since the redeclaration
- might have omitted explicit extern. Sigh. */
- if (TREE_CODE (decl) == VAR_DECL
- /* ??? Is this test for vtables needed? */
- && !DECL_VIRTUAL_P (decl))
+ /* Already done, but do a sanity check to prevent assembler errors. */
+ if (!DECL_EXTERNAL (decl) || !TREE_PUBLIC (decl))
{
- DECL_EXTERNAL (decl) = 1;
- TREE_PUBLIC (decl) = 1;
+ error_with_decl (decl, "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage.");
+ abort();
}
- return;
- }
-
- /* ??? One can well ask why we're making these checks here,
- and that would be a good question. */
-
- /* Imported variables can't be initialized. Note that C++ classes
- are marked initial, so we need to check. */
- if (TREE_CODE (decl) == VAR_DECL
- && !DECL_VIRTUAL_P (decl)
- && (DECL_INITIAL (decl)
- && ! TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (decl))))
- {
- error_with_decl (decl, "initialized variable `%s' is marked dllimport");
- return;
- }
- /* Nor can they be static. */
- if (TREE_CODE (decl) == VAR_DECL
- /* ??? Is this test for vtables needed? */
- && !DECL_VIRTUAL_P (decl)
- && 0 /*???*/)
- {
- error_with_decl (decl, "static variable `%s' is marked dllimport");
- return;
+ return;
}
newname = alloca (strlen (oldname) + 11);
@@ -372,11 +435,8 @@ gen_stdcall_suffix (decl)
void
i386_pe_encode_section_info (decl, first)
tree decl;
- int first;
+ int first ATTRIBUTE_UNUSED;
{
- if (!first)
- return;
-
/* This bit is copied from i386.h. */
if (optimize > 0 && TREE_CONSTANT (decl)
&& (!flag_writable_strings || TREE_CODE (decl) != STRING_CST))
@@ -393,7 +453,8 @@ i386_pe_encode_section_info (decl, first)
gen_rtx (SYMBOL_REF, Pmode, gen_stdcall_suffix (decl));
/* Mark the decl so we can tell from the rtl whether the object is
- dllexport'd or dllimport'd. */
+ dllexport'd or dllimport'd. This also handles dllexport/dllimport
+ override semantics. */
if (i386_pe_dllexport_p (decl))
i386_pe_mark_dllexport (decl);
@@ -415,6 +476,10 @@ i386_pe_encode_section_info (decl, first)
tree idp = get_identifier (oldname + 9);
rtx newrtl = gen_rtx (SYMBOL_REF, Pmode, IDENTIFIER_POINTER (idp));
+ warning_with_decl (decl, "'%s' %s after being referenced with dllimport linkage.",
+ (DECL_INITIAL (decl) || !DECL_EXTERNAL (decl))
+ ? "defined locally" : "redeclared without dllimport attribute");
+
XEXP (DECL_RTL (decl), 0) = newrtl;
DECL_NON_ADDR_CONST_P (decl) = 0;
@@ -698,4 +763,3 @@ i386_pe_asm_file_end (file)
}
}
}
-
diff --git a/gcc/config/i386/xm-dgux.h b/gcc/config/i386/xm-dgux.h
deleted file mode 100644
index 881c5c7be9d..00000000000
--- a/gcc/config/i386/xm-dgux.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Configuration for GCC for Intel i386 running DG/ux */
-
-/* looks just like sysv4 for now */
-#include "xm-svr4.h"
diff --git a/gcc/config/i386/xm-sun.h b/gcc/config/i386/xm-sun.h
deleted file mode 100644
index 6c0f0a25630..00000000000
--- a/gcc/config/i386/xm-sun.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Configuration for GNU C-compiler for Intel 80386 running SunOS 4.0.
- Copyright (C) 1988, 1997 Free Software Foundation, Inc.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#define USG
diff --git a/gcc/config/i386/xm-sysv3.h b/gcc/config/i386/xm-sysv3.h
deleted file mode 100644
index 9a655443ff5..00000000000
--- a/gcc/config/i386/xm-sysv3.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Configuration for GCC for Intel i386 running System V Release 3. */
-
-#include "xm-svr3.h"
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index 4136e901795..1829ab04b6b 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -25,7 +25,7 @@
Public License. */
/* Implemented from the specification included in the Intel C++ Compiler
- User Guide and Reference, version 5.0. */
+ User Guide and Reference, version 8.0. */
#ifndef _XMMINTRIN_H_INCLUDED
#define _XMMINTRIN_H_INCLUDED
@@ -475,6 +475,22 @@ _mm_cvtss_si32 (__m128 __A)
return __builtin_ia32_cvtss2si ((__v4sf) __A);
}
+static __inline int
+_mm_cvt_ss2si (__m128 __A)
+{
+ return _mm_cvtss_si32 (__A);
+}
+
+#ifdef __x86_64__
+/* Convert the lower SPFP value to a 32-bit integer according to the current
+ rounding mode. */
+static __inline long long
+_mm_cvtss_si64x (__m128 __A)
+{
+ return __builtin_ia32_cvtss2si64 ((__v4sf) __A);
+}
+#endif
+
/* Convert the two lower SPFP values to 32-bit integers according to the
current rounding mode. Return the integers in packed form. */
static __inline __m64
@@ -483,6 +499,12 @@ _mm_cvtps_pi32 (__m128 __A)
return (__m64) __builtin_ia32_cvtps2pi ((__v4sf) __A);
}
+static __inline __m64
+_mm_cvt_ps2pi (__m128 __A)
+{
+ return _mm_cvtps_pi32 (__A);
+}
+
/* Truncate the lower SPFP value to a 32-bit integer. */
static __inline int
_mm_cvttss_si32 (__m128 __A)
@@ -490,6 +512,21 @@ _mm_cvttss_si32 (__m128 __A)
return __builtin_ia32_cvttss2si ((__v4sf) __A);
}
+static __inline int
+_mm_cvtt_ss2si (__m128 __A)
+{
+ return _mm_cvttss_si32 (__A);
+}
+
+#ifdef __x86_64__
+/* Truncate the lower SPFP value to a 32-bit integer. */
+static __inline long long
+_mm_cvttss_si64x (__m128 __A)
+{
+ return __builtin_ia32_cvttss2si64 ((__v4sf) __A);
+}
+#endif
+
/* Truncate the two lower SPFP values to 32-bit integers. Return the
integers in packed form. */
static __inline __m64
@@ -498,6 +535,12 @@ _mm_cvttps_pi32 (__m128 __A)
return (__m64) __builtin_ia32_cvttps2pi ((__v4sf) __A);
}
+static __inline __m64
+_mm_cvtt_ps2pi (__m128 __A)
+{
+ return _mm_cvttps_pi32 (__A);
+}
+
/* Convert B to a SPFP value and insert it as element zero in A. */
static __inline __m128
_mm_cvtsi32_ss (__m128 __A, int __B)
@@ -505,6 +548,21 @@ _mm_cvtsi32_ss (__m128 __A, int __B)
return (__m128) __builtin_ia32_cvtsi2ss ((__v4sf) __A, __B);
}
+static __inline __m128
+_mm_cvt_si2ss (__m128 __A, int __B)
+{
+ return _mm_cvtsi32_ss (__A, __B);
+}
+
+#ifdef __x86_64__
+/* Convert B to a SPFP value and insert it as element zero in A. */
+static __inline __m128
+_mm_cvtsi64x_ss (__m128 __A, long long __B)
+{
+ return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B);
+}
+#endif
+
/* Convert the two 32-bit values in B to SPFP form and insert them
as the two lower elements in A. */
static __inline __m128
@@ -513,6 +571,12 @@ _mm_cvtpi32_ps (__m128 __A, __m64 __B)
return (__m128) __builtin_ia32_cvtpi2ps ((__v4sf) __A, (__v2si)__B);
}
+static __inline __m128
+_mm_cvt_pi2ps (__m128 __A, __m64 __B)
+{
+ return _mm_cvtpi32_ps (__A, __B);
+}
+
/* Convert the four signed 16-bit values in A to SPFP form. */
static __inline __m128
_mm_cvtpi16_ps (__m64 __A)
@@ -914,9 +978,16 @@ _mm_extract_pi16 (__m64 __A, int __N)
{
return __builtin_ia32_pextrw ((__v4hi)__A, __N);
}
+
+static __inline int
+_m_pextrw (__m64 __A, int __N)
+{
+ return _mm_extract_pi16 (__A, __N);
+}
#else
#define _mm_extract_pi16(A, N) \
__builtin_ia32_pextrw ((__v4hi)(A), (N))
+#define _m_pextrw(A, N) _mm_extract_pi16((A), (N))
#endif
/* Inserts word D into one of four words of A. The selector N must be
@@ -927,9 +998,16 @@ _mm_insert_pi16 (__m64 __A, int __D, int __N)
{
return (__m64)__builtin_ia32_pinsrw ((__v4hi)__A, __D, __N);
}
+
+static __inline __m64
+_m_pinsrw (__m64 __A, int __D, int __N)
+{
+ return _mm_insert_pi16 (__A, __D, __N);
+}
#else
#define _mm_insert_pi16(A, D, N) \
((__m64) __builtin_ia32_pinsrw ((__v4hi)(A), (D), (N)))
+#define _m_pinsrw(A, D, N) _mm_insert_pi16((A), (D), (N))
#endif
/* Compute the element-wise maximum of signed 16-bit values. */
@@ -939,6 +1017,12 @@ _mm_max_pi16 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pmaxsw ((__v4hi)__A, (__v4hi)__B);
}
+static __inline __m64
+_m_pmaxsw (__m64 __A, __m64 __B)
+{
+ return _mm_max_pi16 (__A, __B);
+}
+
/* Compute the element-wise maximum of unsigned 8-bit values. */
static __inline __m64
_mm_max_pu8 (__m64 __A, __m64 __B)
@@ -946,6 +1030,12 @@ _mm_max_pu8 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pmaxub ((__v8qi)__A, (__v8qi)__B);
}
+static __inline __m64
+_m_pmaxub (__m64 __A, __m64 __B)
+{
+ return _mm_max_pu8 (__A, __B);
+}
+
/* Compute the element-wise minimum of signed 16-bit values. */
static __inline __m64
_mm_min_pi16 (__m64 __A, __m64 __B)
@@ -953,6 +1043,12 @@ _mm_min_pi16 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pminsw ((__v4hi)__A, (__v4hi)__B);
}
+static __inline __m64
+_m_pminsw (__m64 __A, __m64 __B)
+{
+ return _mm_min_pi16 (__A, __B);
+}
+
/* Compute the element-wise minimum of unsigned 8-bit values. */
static __inline __m64
_mm_min_pu8 (__m64 __A, __m64 __B)
@@ -960,6 +1056,12 @@ _mm_min_pu8 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pminub ((__v8qi)__A, (__v8qi)__B);
}
+static __inline __m64
+_m_pminub (__m64 __A, __m64 __B)
+{
+ return _mm_min_pu8 (__A, __B);
+}
+
/* Create an 8-bit mask of the signs of 8-bit values. */
static __inline int
_mm_movemask_pi8 (__m64 __A)
@@ -967,6 +1069,12 @@ _mm_movemask_pi8 (__m64 __A)
return __builtin_ia32_pmovmskb ((__v8qi)__A);
}
+static __inline int
+_m_pmovmskb (__m64 __A)
+{
+ return _mm_movemask_pi8 (__A);
+}
+
/* Multiply four unsigned 16-bit values in A by four unsigned 16-bit values
in B and produce the high 16 bits of the 32-bit results. */
static __inline __m64
@@ -975,6 +1083,12 @@ _mm_mulhi_pu16 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pmulhuw ((__v4hi)__A, (__v4hi)__B);
}
+static __inline __m64
+_m_pmulhuw (__m64 __A, __m64 __B)
+{
+ return _mm_mulhi_pu16 (__A, __B);
+}
+
/* Return a combination of the four 16-bit values in A. The selector
must be an immediate. */
#if 0
@@ -983,9 +1097,16 @@ _mm_shuffle_pi16 (__m64 __A, int __N)
{
return (__m64) __builtin_ia32_pshufw ((__v4hi)__A, __N);
}
+
+static __inline __m64
+_m_pshufw (__m64 __A, int __N)
+{
+ return _mm_shuffle_pi16 (__A, __N);
+}
#else
#define _mm_shuffle_pi16(A, N) \
((__m64) __builtin_ia32_pshufw ((__v4hi)(A), (N)))
+#define _m_pshufw(A, N) _mm_shuffle_pi16 ((A), (N))
#endif
/* Conditionally store byte elements of A into P. The high bit of each
@@ -997,6 +1118,12 @@ _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P)
__builtin_ia32_maskmovq ((__v8qi)__A, (__v8qi)__N, __P);
}
+static __inline void
+_m_maskmovq (__m64 __A, __m64 __N, char *__P)
+{
+ _mm_maskmove_si64 (__A, __N, __P);
+}
+
/* Compute the rounded averages of the unsigned 8-bit values in A and B. */
static __inline __m64
_mm_avg_pu8 (__m64 __A, __m64 __B)
@@ -1004,6 +1131,12 @@ _mm_avg_pu8 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pavgb ((__v8qi)__A, (__v8qi)__B);
}
+static __inline __m64
+_m_pavgb (__m64 __A, __m64 __B)
+{
+ return _mm_avg_pu8 (__A, __B);
+}
+
/* Compute the rounded averages of the unsigned 16-bit values in A and B. */
static __inline __m64
_mm_avg_pu16 (__m64 __A, __m64 __B)
@@ -1011,6 +1144,12 @@ _mm_avg_pu16 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_pavgw ((__v4hi)__A, (__v4hi)__B);
}
+static __inline __m64
+_m_pavgw (__m64 __A, __m64 __B)
+{
+ return _mm_avg_pu16 (__A, __B);
+}
+
/* Compute the sum of the absolute differences of the unsigned 8-bit
values in A and B. Return the value in the lower 16-bit word; the
upper words are cleared. */
@@ -1020,6 +1159,12 @@ _mm_sad_pu8 (__m64 __A, __m64 __B)
return (__m64) __builtin_ia32_psadbw ((__v8qi)__A, (__v8qi)__B);
}
+static __inline __m64
+_m_psadbw (__m64 __A, __m64 __B)
+{
+ return _mm_sad_pu8 (__A, __B);
+}
+
/* Loads one cache line from address P to a location "closer" to the
processor. The selector I specifies the type of prefetch operation. */
#if 0
@@ -1078,1396 +1223,8 @@ do { \
(row3) = __builtin_ia32_shufps (__t2, __t3, 0xDD); \
} while (0)
-#ifdef __SSE2__
-/* SSE2 */
-typedef int __v2df __attribute__ ((mode (V2DF)));
-typedef int __v2di __attribute__ ((mode (V2DI)));
-typedef int __v4si __attribute__ ((mode (V4SI)));
-typedef int __v8hi __attribute__ ((mode (V8HI)));
-typedef int __v16qi __attribute__ ((mode (V16QI)));
-
-/* Create a selector for use with the SHUFPD instruction. */
-#define _MM_SHUFFLE2(fp1,fp0) \
- (((fp1) << 1) | (fp0))
-
-#define __m128i __v2di
-#define __m128d __v2df
-
-/* Create a vector with element 0 as *P and the rest zero. */
-static __inline __m128d
-_mm_load_sd (double const *__P)
-{
- return (__m128d) __builtin_ia32_loadsd (__P);
-}
-
-/* Create a vector with all two elements equal to *P. */
-static __inline __m128d
-_mm_load1_pd (double const *__P)
-{
- __v2df __tmp = __builtin_ia32_loadsd (__P);
- return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,0));
-}
-
-static __inline __m128d
-_mm_load_pd1 (double const *__P)
-{
- return _mm_load1_pd (__P);
-}
-
-/* Load two DPFP values from P. The addresd must be 16-byte aligned. */
-static __inline __m128d
-_mm_load_pd (double const *__P)
-{
- return (__m128d) __builtin_ia32_loadapd (__P);
-}
-
-/* Load two DPFP values from P. The addresd need not be 16-byte aligned. */
-static __inline __m128d
-_mm_loadu_pd (double const *__P)
-{
- return (__m128d) __builtin_ia32_loadupd (__P);
-}
-
-/* Load two DPFP values in reverse order. The addresd must be aligned. */
-static __inline __m128d
-_mm_loadr_pd (double const *__P)
-{
- __v2df __tmp = __builtin_ia32_loadapd (__P);
- return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,1));
-}
-
-/* Create a vector with element 0 as F and the rest zero. */
-static __inline __m128d
-_mm_set_sd (double __F)
-{
- return (__m128d) __builtin_ia32_loadsd (&__F);
-}
-
-/* Create a vector with all two elements equal to F. */
-static __inline __m128d
-_mm_set1_pd (double __F)
-{
- __v2df __tmp = __builtin_ia32_loadsd (&__F);
- return (__m128d) __builtin_ia32_shufpd (__tmp, __tmp, _MM_SHUFFLE2 (0,0));
-}
-
-static __inline __m128d
-_mm_set_pd1 (double __F)
-{
- return _mm_set1_pd (__F);
-}
-
-/* Create the vector [Z Y]. */
-static __inline __m128d
-_mm_set_pd (double __Z, double __Y)
-{
- union {
- double __a[2];
- __m128d __v;
- } __u;
-
- __u.__a[0] = __Y;
- __u.__a[1] = __Z;
-
- return __u.__v;
-}
-
-/* Create the vector [Y Z]. */
-static __inline __m128d
-_mm_setr_pd (double __Z, double __Y)
-{
- return _mm_set_pd (__Y, __Z);
-}
-
-/* Create a vector of zeros. */
-static __inline __m128d
-_mm_setzero_pd (void)
-{
- return (__m128d) __builtin_ia32_setzeropd ();
-}
-
-/* Stores the lower DPFP value. */
-static __inline void
-_mm_store_sd (double *__P, __m128d __A)
-{
- __builtin_ia32_storesd (__P, (__v2df)__A);
-}
-
-/* Store the lower DPFP value acrosd two words. */
-static __inline void
-_mm_store1_pd (double *__P, __m128d __A)
-{
- __v2df __va = (__v2df)__A;
- __v2df __tmp = __builtin_ia32_shufpd (__va, __va, _MM_SHUFFLE2 (0,0));
- __builtin_ia32_storeapd (__P, __tmp);
-}
-
-static __inline void
-_mm_store_pd1 (double *__P, __m128d __A)
-{
- _mm_store1_pd (__P, __A);
-}
-
-/* Store two DPFP values. The addresd must be 16-byte aligned. */
-static __inline void
-_mm_store_pd (double *__P, __m128d __A)
-{
- __builtin_ia32_storeapd (__P, (__v2df)__A);
-}
-
-/* Store two DPFP values. The addresd need not be 16-byte aligned. */
-static __inline void
-_mm_storeu_pd (double *__P, __m128d __A)
-{
- __builtin_ia32_storeupd (__P, (__v2df)__A);
-}
-
-/* Store two DPFP values in reverse order. The addresd must be aligned. */
-static __inline void
-_mm_storer_pd (double *__P, __m128d __A)
-{
- __v2df __va = (__v2df)__A;
- __v2df __tmp = __builtin_ia32_shufpd (__va, __va, _MM_SHUFFLE2 (0,1));
- __builtin_ia32_storeapd (__P, __tmp);
-}
-
-/* Sets the low DPFP value of A from the low value of B. */
-static __inline __m128d
-_mm_move_sd (__m128d __A, __m128d __B)
-{
- return (__m128d) __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
-}
-
-
-static __inline __m128d
-_mm_add_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_addpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_add_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_addsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_sub_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_subpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_sub_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_subsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_mul_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_mulpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_mul_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_mulsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_div_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_divpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_div_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_divsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_sqrt_pd (__m128d __A)
-{
- return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
-}
-
-/* Return pair {sqrt (A[0), B[1]}. */
-static __inline __m128d
-_mm_sqrt_sd (__m128d __A, __m128d __B)
-{
- __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
- return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__tmp);
-}
-
-static __inline __m128d
-_mm_min_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_minpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_min_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_max_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_maxpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_max_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_and_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_andpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_andnot_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_andnpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_or_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_orpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_xor_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_xorpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpeq_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpeqpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmplt_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpltpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmple_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmplepd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpgt_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpgtpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpge_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpgepd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpneq_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpneqpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpnlt_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpnltpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpnle_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpnlepd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpngt_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpngtpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpnge_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpngepd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpord_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpordpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpunord_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpunordpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpeq_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpeqsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmplt_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpltsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmple_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmplesd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpgt_sd (__m128d __A, __m128d __B)
-{
- return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
- (__v2df)
- __builtin_ia32_cmpltsd ((__v2df) __B,
- (__v2df)
- __A));
-}
-
-static __inline __m128d
-_mm_cmpge_sd (__m128d __A, __m128d __B)
-{
- return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
- (__v2df)
- __builtin_ia32_cmplesd ((__v2df) __B,
- (__v2df)
- __A));
-}
-
-static __inline __m128d
-_mm_cmpneq_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpneqsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpnlt_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpnltsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpnle_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpnlesd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpngt_sd (__m128d __A, __m128d __B)
-{
- return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
- (__v2df)
- __builtin_ia32_cmpnltsd ((__v2df) __B,
- (__v2df)
- __A));
-}
-
-static __inline __m128d
-_mm_cmpnge_sd (__m128d __A, __m128d __B)
-{
- return (__m128d) __builtin_ia32_movsd ((__v2df) __A,
- (__v2df)
- __builtin_ia32_cmpnlesd ((__v2df) __B,
- (__v2df)
- __A));
-}
-
-static __inline __m128d
-_mm_cmpord_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpordsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_cmpunord_sd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_cmpunordsd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comieq_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdeq ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comilt_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdlt ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comile_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdle ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comigt_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdgt ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comige_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdge ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_comineq_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_comisdneq ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomieq_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdeq ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomilt_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomile_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomigt_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomige_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_ucomineq_sd (__m128d __A, __m128d __B)
-{
- return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B);
-}
-
-/* Create a vector with element 0 as *P and the rest zero. */
-
-static __inline __m128i
-_mm_load_si128 (__m128i const *__P)
-{
- return (__m128i) __builtin_ia32_loaddqa (__P);
-}
-
-static __inline __m128i
-_mm_loadu_si128 (__m128i const *__P)
-{
- return (__m128i) __builtin_ia32_loaddqu (__P);
-}
-
-static __inline __m128i
-_mm_loadl_epi64 (__m128i const *__P)
-{
- return (__m128i) __builtin_ia32_movq2dq (*(unsigned long long *)__P);
-}
-
-static __inline void
-_mm_store_si128 (__m128i *__P, __m128i __B)
-{
- __builtin_ia32_storedqa (__P, (__v16qi)__B);
-}
-
-static __inline void
-_mm_storeu_si128 (__m128i *__P, __m128i __B)
-{
- __builtin_ia32_storedqu (__P, (__v16qi)__B);
-}
-
-static __inline void
-_mm_storel_epi64 (__m128i *__P, __m128i __B)
-{
- *(long long *)__P = __builtin_ia32_movdq2q ((__v2di)__B);
-}
-
-static __inline __m128i
-_mm_move_epi64 (__m128i __A)
-{
- return (__m128i) __builtin_ia32_movq ((__v2di)__A);
-}
-
-/* Create a vector of zeros. */
-static __inline __m128i
-_mm_setzero_si128 (void)
-{
- return (__m128i) __builtin_ia32_setzero128 ();
-}
-
-static __inline __m128i
-_mm_set_epi64 (__m64 __A, __m64 __B)
-{
- __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
- __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B);
- return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp2, __tmp);
-}
-
-/* Create the vector [Z Y X W]. */
-static __inline __m128i
-_mm_set_epi32 (int __Z, int __Y, int __X, int __W)
-{
- union {
- int __a[4];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __W;
- __u.__a[1] = __X;
- __u.__a[2] = __Y;
- __u.__a[3] = __Z;
-
- return __u.__v;
-}
-/* Create the vector [S T U V Z Y X W]. */
-static __inline __m128i
-_mm_set_epi16 (short __Z, short __Y, short __X, short __W,
- short __V, short __U, short __T, short __S)
-{
- union {
- short __a[8];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __S;
- __u.__a[1] = __T;
- __u.__a[2] = __U;
- __u.__a[3] = __V;
- __u.__a[4] = __W;
- __u.__a[5] = __X;
- __u.__a[6] = __Y;
- __u.__a[7] = __Z;
-
- return __u.__v;
-}
-
-/* Create the vector [S T U V Z Y X W]. */
-static __inline __m128i
-_mm_set_epi8 (char __Z, char __Y, char __X, char __W,
- char __V, char __U, char __T, char __S,
- char __Z1, char __Y1, char __X1, char __W1,
- char __V1, char __U1, char __T1, char __S1)
-{
- union {
- char __a[16];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __S1;
- __u.__a[1] = __T1;
- __u.__a[2] = __U1;
- __u.__a[3] = __V1;
- __u.__a[4] = __W1;
- __u.__a[5] = __X1;
- __u.__a[6] = __Y1;
- __u.__a[7] = __Z1;
- __u.__a[8] = __S;
- __u.__a[9] = __T;
- __u.__a[10] = __U;
- __u.__a[11] = __V;
- __u.__a[12] = __W;
- __u.__a[13] = __X;
- __u.__a[14] = __Y;
- __u.__a[15] = __Z;
-
- return __u.__v;
-}
-
-static __inline __m128i
-_mm_set1_epi64 (__m64 __A)
-{
- __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
- return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp);
-}
-
-static __inline __m128i
-_mm_set1_epi32 (int __A)
-{
- __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__A);
- return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
-}
-
-static __inline __m128i
-_mm_set1_epi16 (short __A)
-{
- int __Acopy = (unsigned short)__A;
- __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy);
- __tmp = (__v4si)__builtin_ia32_punpcklwd128 ((__v8hi)__tmp, (__v8hi)__tmp);
- return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
-}
-
-static __inline __m128i
-_mm_set1_epi8 (char __A)
-{
- int __Acopy = (unsigned char)__A;
- __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy);
- __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp);
- __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp);
- return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));
-}
-
-static __inline __m128i
-_mm_setr_epi64 (__m64 __A, __m64 __B)
-{
- __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A);
- __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B);
- return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp2);
-}
-
-/* Create the vector [Z Y X W]. */
-static __inline __m128i
-_mm_setr_epi32 (int __W, int __X, int __Y, int __Z)
-{
- union {
- int __a[4];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __W;
- __u.__a[1] = __X;
- __u.__a[2] = __Y;
- __u.__a[3] = __Z;
-
- return __u.__v;
-}
-/* Create the vector [S T U V Z Y X W]. */
-static __inline __m128i
-_mm_setr_epi16 (short __S, short __T, short __U, short __V,
- short __W, short __X, short __Y, short __Z)
-{
- union {
- short __a[8];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __S;
- __u.__a[1] = __T;
- __u.__a[2] = __U;
- __u.__a[3] = __V;
- __u.__a[4] = __W;
- __u.__a[5] = __X;
- __u.__a[6] = __Y;
- __u.__a[7] = __Z;
-
- return __u.__v;
-}
-
-/* Create the vector [S T U V Z Y X W]. */
-static __inline __m128i
-_mm_setr_epi8 (char __S1, char __T1, char __U1, char __V1,
- char __W1, char __X1, char __Y1, char __Z1,
- char __S, char __T, char __U, char __V,
- char __W, char __X, char __Y, char __Z)
-{
- union {
- char __a[16];
- __m128i __v;
- } __u;
-
- __u.__a[0] = __S1;
- __u.__a[1] = __T1;
- __u.__a[2] = __U1;
- __u.__a[3] = __V1;
- __u.__a[4] = __W1;
- __u.__a[5] = __X1;
- __u.__a[6] = __Y1;
- __u.__a[7] = __Z1;
- __u.__a[8] = __S;
- __u.__a[9] = __T;
- __u.__a[10] = __U;
- __u.__a[11] = __V;
- __u.__a[12] = __W;
- __u.__a[13] = __X;
- __u.__a[14] = __Y;
- __u.__a[15] = __Z;
-
- return __u.__v;
-}
-
-static __inline __m128d
-_mm_cvtepi32_pd (__m128i __A)
-{
- return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A);
-}
-
-static __inline __m128
-_mm_cvtepi32_ps (__m128i __A)
-{
- return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A);
-}
-
-static __inline __m128i
-_mm_cvtpd_epi32 (__m128d __A)
-{
- return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A);
-}
-
-static __inline __m64
-_mm_cvtpd_pi32 (__m128d __A)
-{
- return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A);
-}
-
-static __inline __m128
-_mm_cvtpd_ps (__m128d __A)
-{
- return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A);
-}
-
-static __inline __m128i
-_mm_cvttpd_epi32 (__m128d __A)
-{
- return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A);
-}
-
-static __inline __m64
-_mm_cvttpd_pi32 (__m128d __A)
-{
- return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A);
-}
-
-static __inline __m128d
-_mm_cvtpi32_pd (__m64 __A)
-{
- return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A);
-}
-
-static __inline __m128i
-_mm_cvtps_epi32 (__m128 __A)
-{
- return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A);
-}
-
-static __inline __m128i
-_mm_cvttps_epi32 (__m128 __A)
-{
- return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A);
-}
-
-static __inline __m128d
-_mm_cvtps_pd (__m128 __A)
-{
- return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A);
-}
-
-static __inline int
-_mm_cvtsd_si32 (__m128d __A)
-{
- return __builtin_ia32_cvtsd2si ((__v2df) __A);
-}
-
-static __inline int
-_mm_cvttsd_si32 (__m128d __A)
-{
- return __builtin_ia32_cvttsd2si ((__v2df) __A);
-}
-
-static __inline __m128
-_mm_cvtsd_ss (__m128 __A, __m128d __B)
-{
- return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B);
-}
-
-static __inline __m128d
-_mm_cvtsi32_sd (__m128d __A, int __B)
-{
- return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
-}
-
-static __inline __m128d
-_mm_cvtss_sd (__m128d __A, __m128 __B)
-{
- return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
-}
-
-#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))
-
-static __inline __m128d
-_mm_unpackhi_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_unpacklo_pd (__m128d __A, __m128d __B)
-{
- return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_loadh_pd (__m128d __A, double const *__B)
-{
- return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, (__v2si *)__B);
-}
-
-static __inline void
-_mm_storeh_pd (double *__A, __m128d __B)
-{
- __builtin_ia32_storehpd ((__v2si *)__A, (__v2df)__B);
-}
-
-static __inline __m128d
-_mm_loadl_pd (__m128d __A, double const *__B)
-{
- return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, (__v2si *)__B);
-}
-
-static __inline void
-_mm_storel_pd (double *__A, __m128d __B)
-{
- __builtin_ia32_storelpd ((__v2si *)__A, (__v2df)__B);
-}
-
-static __inline int
-_mm_movemask_pd (__m128d __A)
-{
- return __builtin_ia32_movmskpd ((__v2df)__A);
-}
-
-static __inline __m128i
-_mm_packs_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_packs_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_packus_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_unpackhi_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_unpackhi_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_unpackhi_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpckhdq128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_unpackhi_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpckhqdq128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_unpacklo_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpcklbw128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_unpacklo_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpcklwd128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_unpacklo_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpckldq128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_unpacklo_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_punpcklqdq128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_add_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_add_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_add_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddd128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_add_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddq128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_adds_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddsb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_adds_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddsw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_adds_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddusb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_adds_epu16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_sub_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_sub_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_sub_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubd128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_sub_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubq128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_subs_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_subs_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_subs_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_subs_epu16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_madd_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_mulhi_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_mullo_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmullw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m64
-_mm_mul_pu16 (__m64 __A, __m64 __B)
-{
- return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B);
-}
-
-static __inline __m128i
-_mm_mul_epu32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_sll_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psllw128 ((__v8hi)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_sll_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pslld128 ((__v4si)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_sll_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psllq128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_sra_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psraw128 ((__v8hi)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_sra_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psrad128 ((__v4si)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_srl_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psrlw128 ((__v8hi)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_srl_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psrld128 ((__v4si)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_srl_epi64 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psrlq128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_slli_epi16 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B);
-}
-
-static __inline __m128i
-_mm_slli_epi32 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B);
-}
-
-static __inline __m128i
-_mm_slli_epi64 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);
-}
-
-static __inline __m128i
-_mm_srai_epi16 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B);
-}
-
-static __inline __m128i
-_mm_srai_epi32 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);
-}
-
-#if 0
-static __m128i __attribute__((__always_inline__))
-_mm_srli_si128 (__m128i __A, const int __B)
-{
- return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))
-}
-
-static __m128i __attribute__((__always_inline__))
-_mm_srli_si128 (__m128i __A, const int __B)
-{
- return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))
-}
-#endif
-#define _mm_srli_si128(__A, __B) ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))
-#define _mm_slli_si128(__A, __B) ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))
-
-static __inline __m128i
-_mm_srli_epi16 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B);
-}
-
-static __inline __m128i
-_mm_srli_epi32 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B);
-}
-
-static __inline __m128i
-_mm_srli_epi64 (__m128i __A, int __B)
-{
- return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);
-}
-
-static __inline __m128i
-_mm_and_si128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_andnot_si128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_or_si128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_xor_si128 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pxor128 ((__v2di)__A, (__v2di)__B);
-}
-
-static __inline __m128i
-_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpeqb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_cmpeq_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpeqw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_cmpeq_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpeqd128 ((__v4si)__A, (__v4si)__B);
-}
-
-static __inline __m128i
-_mm_cmplt_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__B, (__v16qi)__A);
-}
-
-static __inline __m128i
-_mm_cmplt_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__B, (__v8hi)__A);
-}
-
-static __inline __m128i
-_mm_cmplt_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__B, (__v4si)__A);
-}
-
-static __inline __m128i
-_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_cmpgt_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_cmpgt_epi32 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__A, (__v4si)__B);
-}
-
-#define _mm_extract_epi16(__A, __B) __builtin_ia32_pextrw128 ((__v8hi)__A, __B)
-
-#define _mm_insert_epi16(__A, __B, __C) ((__m128i)__builtin_ia32_pinsrw128 ((__v8hi)__A, __B, __C))
-
-static __inline __m128i
-_mm_max_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_max_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_min_epi16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_min_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline int
-_mm_movemask_epi8 (__m128i __A)
-{
- return __builtin_ia32_pmovmskb128 ((__v16qi)__A);
-}
-
-static __inline __m128i
-_mm_mulhi_epu16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)__A, __B))
-#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)__A, __B))
-#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)__A, __B))
-
-static __inline void
-_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
-{
- __builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C);
-}
-
-static __inline __m128i
-_mm_avg_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline __m128i
-_mm_avg_epu16 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B);
-}
-
-static __inline __m128i
-_mm_sad_epu8 (__m128i __A, __m128i __B)
-{
- return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B);
-}
-
-static __inline void
-_mm_stream_si32 (int *__A, int __B)
-{
- __builtin_ia32_movnti (__A, __B);
-}
-
-static __inline void
-_mm_stream_si128 (__m128i *__A, __m128i __B)
-{
- __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);
-}
-
-static __inline void
-_mm_stream_pd (double *__A, __m128d __B)
-{
- __builtin_ia32_movntpd (__A, (__v2df)__B);
-}
-
-static __inline __m128i
-_mm_movpi64_epi64 (__m64 __A)
-{
- return (__m128i)__builtin_ia32_movq2dq ((unsigned long long)__A);
-}
-
-static __inline void
-_mm_clflush (void const *__A)
-{
- return __builtin_ia32_clflush (__A);
-}
-
-static __inline void
-_mm_lfence (void)
-{
- __builtin_ia32_lfence ();
-}
-
-static __inline void
-_mm_mfence (void)
-{
- __builtin_ia32_mfence ();
-}
-
-static __inline __m128i
-_mm_cvtsi32_si128 (int __A)
-{
- return (__m128i) __builtin_ia32_loadd (&__A);
-}
-
-static __inline int
-_mm_cvtsi128_si32 (__m128i __A)
-{
- int __tmp;
- __builtin_ia32_stored (&__tmp, (__v4si)__A);
- return __tmp;
-}
-
-#endif /* __SSE2__ */
+/* For backward source compatibility. */
+#include <emmintrin.h>
#endif /* __SSE__ */
#endif /* _XMMINTRIN_H_INCLUDED */
diff --git a/gcc/config/ia64/aix.h b/gcc/config/ia64/aix.h
index c9dca9c4f12..5eb2334cb6a 100644
--- a/gcc/config/ia64/aix.h
+++ b/gcc/config/ia64/aix.h
@@ -134,12 +134,14 @@ do { \
#define STANDARD_STARTFILE_PREFIX "/usr/lib/ia64l64/"
#endif
+/* It is illegal to have relocations in shared segments on AIX.
+ Pretend flag_pic is always set. */
#undef TARGET_ASM_SELECT_SECTION
-#define TARGET_ASM_SELECT_SECTION ia64_aix_select_section
+#define TARGET_ASM_SELECT_SECTION ia64_rwreloc_select_section
#undef TARGET_ASM_UNIQUE_SECTION
-#define TARGET_ASM_UNIQUE_SECTION ia64_aix_unique_section
+#define TARGET_ASM_UNIQUE_SECTION ia64_rwreloc_unique_section
#undef TARGET_ASM_SELECT_RTX_SECTION
-#define TARGET_ASM_SELECT_RTX_SECTION ia64_aix_select_rtx_section
+#define TARGET_ASM_SELECT_RTX_SECTION ia64_rwreloc_select_rtx_section
/* Override ia64/sysv4.h setting with that used by AIX5. */
#undef WCHAR_TYPE
diff --git a/gcc/config/ia64/crtbegin.asm b/gcc/config/ia64/crtbegin.asm
index 75ffc3d906c..cb49e10bc56 100644
--- a/gcc/config/ia64/crtbegin.asm
+++ b/gcc/config/ia64/crtbegin.asm
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
The GNU C Library is free software; you can redistribute it and/or
@@ -61,6 +61,7 @@ __dso_handle:
.section .init_array,"a","progbits"
data8 @fptr(__do_jv_register_classes)
+ data8 @fptr(__do_global_ctors_aux)
#else /* !HAVE_INITFINI_ARRAY */
/*
diff --git a/gcc/config/ia64/crtend.asm b/gcc/config/ia64/crtend.asm
index 17c3be41d89..303f30cbce8 100644
--- a/gcc/config/ia64/crtend.asm
+++ b/gcc/config/ia64/crtend.asm
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
The GNU C Library is free software; you can redistribute it and/or
@@ -33,12 +33,7 @@ __DTOR_END__:
__JCR_END__:
data8 0
-#ifdef HAVE_INITFINI_ARRAY
-
-.section .init_array,"a","progbits"
- data8 @fptr(__do_global_ctors_aux)
-
-#else /* !HAVE_INITFINI_ARRAY */
+#ifndef HAVE_INITFINI_ARRAY
/*
* Fragment of the ELF _init routine that invokes our dtor cleanup.
*
@@ -71,6 +66,12 @@ __JCR_END__:
.text
.align 16
+#ifdef HAVE_INITFINI_ARRAY
+ /* This is referenced from crtbegin.o. */
+ .globl __do_global_ctors_aux#
+ .type __do_global_ctors_aux#,@function
+ .hidden __do_global_ctors_aux#
+#endif
.proc __do_global_ctors_aux#
__do_global_ctors_aux:
/*
diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h
index 1e6f699835b..ab41f458f41 100644
--- a/gcc/config/ia64/hpux.h
+++ b/gcc/config/ia64/hpux.h
@@ -47,8 +47,17 @@ do { \
builtin_define("_HPUX_SOURCE"); \
builtin_define("__STDC_EXT__"); \
} \
+ if (TARGET_ILP32) \
+ builtin_define("_ILP32"); \
} while (0)
+#undef CPP_SPEC
+#define CPP_SPEC \
+ "%{mt|pthread:-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L}"
+/* aCC defines also -DRWSTD_MULTI_THREAD, -DRW_MULTI_THREAD. These
+ affect only aCC's C++ library (Rogue Wave-derived) which we do not
+ use, and they violate the user's name space. */
+
#undef ASM_EXTRA_SPEC
#define ASM_EXTRA_SPEC "%{milp32:-milp32} %{mlp64:-mlp64}"
@@ -57,12 +66,6 @@ do { \
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "%{!shared:%{static:crt0%O%s}}"
-#ifndef CROSS_COMPILE
-#define STARTFILE_PREFIX_SPEC \
- "%{mlp64: /usr/ccs/lib/hpux64/} \
- %{!mlp64: /usr/ccs/lib/hpux32/}"
-#endif
-
#undef LINK_SPEC
#define LINK_SPEC \
"+Accept TypeMismatch \
@@ -74,6 +77,7 @@ do { \
#undef LIB_SPEC
#define LIB_SPEC \
"%{!shared: \
+ %{mt|pthread:-lpthread} \
%{p:%{!mlp64:-L/usr/lib/hpux32/libp} \
%{mlp64:-L/usr/lib/hpux64/libp} -lprof} \
%{pg:%{!mlp64:-L/usr/lib/hpux32/libp} \
@@ -140,6 +144,10 @@ do { \
#undef TARGET_HPUX_LD
#define TARGET_HPUX_LD 1
+/* The HPUX dynamic linker objects to weak symbols with no
+ definitions, so do not use them in gthr-posix.h. */
+#define GTHREAD_USE_WEAK 0
+
/* Put out the needed function declarations at the end. */
#define ASM_FILE_END(STREAM) ia64_hpux_asm_file_end(STREAM)
@@ -150,6 +158,10 @@ do { \
#undef DTORS_SECTION_ASM_OP
#define DTORS_SECTION_ASM_OP "\t.section\t.fini_array,\t\"aw\",\"fini_array\""
+/* The init_array/fini_array technique does not permit the use of
+ initialization priorities. */
+#define SUPPORTS_INIT_PRIORITY 0
+
#undef READONLY_DATA_SECTION_ASM_OP
#define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rodata,\t\"a\",\t\"progbits\""
@@ -167,3 +179,18 @@ do { \
#undef TEXT_SECTION_ASM_OP
#define TEXT_SECTION_ASM_OP "\t.section\t.text,\t\"ax\",\t\"progbits\""
+
+/* It is illegal to have relocations in shared segments on HPUX.
+ Pretend flag_pic is always set. */
+#undef TARGET_ASM_SELECT_SECTION
+#define TARGET_ASM_SELECT_SECTION ia64_rwreloc_select_section
+#undef TARGET_ASM_UNIQUE_SECTION
+#define TARGET_ASM_UNIQUE_SECTION ia64_rwreloc_unique_section
+#undef TARGET_ASM_SELECT_RTX_SECTION
+#define TARGET_ASM_SELECT_RTX_SECTION ia64_rwreloc_select_rtx_section
+#undef TARGET_SECTION_TYPE_FLAGS
+#define TARGET_SECTION_TYPE_FLAGS ia64_rwreloc_section_type_flags
+
+/* HP-UX does not support thread-local storage. */
+#undef TARGET_HAVE_TLS
+#define TARGET_HAVE_TLS false
diff --git a/gcc/config/ia64/ia64-c.c b/gcc/config/ia64/ia64-c.c
index c19a5860532..e44c80b25a5 100644
--- a/gcc/config/ia64/ia64-c.c
+++ b/gcc/config/ia64/ia64-c.c
@@ -26,6 +26,7 @@ Boston, MA 02111-1307, USA. */
#include "c-common.h"
#include "c-pragma.h"
#include "toplev.h"
+#include "tm_p.h"
static void ia64_hpux_add_pragma_builtin PARAMS ((tree func));
diff --git a/gcc/config/ia64/ia64-protos.h b/gcc/config/ia64/ia64-protos.h
index 36af17aa70a..f25bb02133d 100644
--- a/gcc/config/ia64/ia64-protos.h
+++ b/gcc/config/ia64/ia64-protos.h
@@ -72,12 +72,14 @@ extern int basereg_operand PARAMS((rtx, enum machine_mode));
extern rtx ia64_expand_move PARAMS ((rtx, rtx));
extern int ia64_move_ok PARAMS((rtx, rtx));
+extern int addp4_optimize_ok PARAMS((rtx, rtx));
extern int ia64_depz_field_mask PARAMS((rtx, rtx));
-extern rtx ia64_gp_save_reg PARAMS((int));
extern rtx ia64_split_timode PARAMS((rtx[], rtx, rtx));
extern rtx spill_tfmode_operand PARAMS((rtx, int));
extern rtx ia64_expand_compare PARAMS((enum rtx_code, enum machine_mode));
extern void ia64_expand_call PARAMS((rtx, rtx, rtx, int));
+extern void ia64_split_call PARAMS((rtx, rtx, rtx, rtx, rtx, int, int));
+extern void ia64_reload_gp PARAMS((void));
extern HOST_WIDE_INT ia64_initial_elimination_offset PARAMS((int, int));
extern void ia64_expand_prologue PARAMS((void));
@@ -131,6 +133,10 @@ extern void emit_safe_across_calls PARAMS((FILE *));
extern void ia64_init_builtins PARAMS((void));
extern void ia64_override_options PARAMS((void));
extern int ia64_dbx_register_number PARAMS((int));
+extern bool ia64_function_ok_for_sibcall PARAMS ((tree));
+
+extern rtx ia64_return_addr_rtx PARAMS ((HOST_WIDE_INT, rtx));
+extern void ia64_split_return_addr_rtx PARAMS ((rtx));
#ifdef SDATA_SECTION_ASM_OP
extern void sdata_section PARAMS ((void));
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 10f06665999..a01ff182b24 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by James E. Wilson <wilson@cygnus.com> and
David Mosberger <davidm@hpl.hp.com>.
@@ -45,6 +45,7 @@ Boston, MA 02111-1307, USA. */
#include "target.h"
#include "target-def.h"
#include "tm_p.h"
+#include "langhooks.h"
/* This is used for communication between ASM_OUTPUT_LABEL and
ASM_OUTPUT_LABELREF. */
@@ -109,6 +110,39 @@ static int ia64_flag_schedule_insns2;
sections. */
unsigned int ia64_section_threshold;
+
+/* Structure to be filled in by ia64_compute_frame_size with register
+ save masks and offsets for the current function. */
+
+struct ia64_frame_info
+{
+ HOST_WIDE_INT total_size; /* size of the stack frame, not including
+ the caller's scratch area. */
+ HOST_WIDE_INT spill_cfa_off; /* top of the reg spill area from the cfa. */
+ HOST_WIDE_INT spill_size; /* size of the gr/br/fr spill area. */
+ HOST_WIDE_INT extra_spill_size; /* size of spill area for others. */
+ HARD_REG_SET mask; /* mask of saved registers. */
+ unsigned int gr_used_mask; /* mask of registers in use as gr spill
+ registers or long-term scratches. */
+ int n_spilled; /* number of spilled registers. */
+ int reg_fp; /* register for fp. */
+ int reg_save_b0; /* save register for b0. */
+ int reg_save_pr; /* save register for prs. */
+ int reg_save_ar_pfs; /* save register for ar.pfs. */
+ int reg_save_ar_unat; /* save register for ar.unat. */
+ int reg_save_ar_lc; /* save register for ar.lc. */
+ int reg_save_gp; /* save register for gp. */
+ int n_input_regs; /* number of input registers used. */
+ int n_local_regs; /* number of local registers used. */
+ int n_output_regs; /* number of output registers used. */
+ int n_rotate_regs; /* number of rotating registers used. */
+
+ char need_regstk; /* true if a .regstk directive needed. */
+ char initialized; /* true if the data is finalized. */
+};
+
+/* Current frame information calculated by ia64_compute_frame_size. */
+static struct ia64_frame_info current_frame_info;
static rtx gen_tls_get_addr PARAMS ((void));
static rtx gen_thread_pointer PARAMS ((void));
@@ -141,8 +175,9 @@ static rtx ia64_expand_fetch_and_op PARAMS ((optab, enum machine_mode,
tree, rtx));
static rtx ia64_expand_op_and_fetch PARAMS ((optab, enum machine_mode,
tree, rtx));
-static rtx ia64_expand_compare_and_swap PARAMS ((enum machine_mode, int,
- tree, rtx));
+static rtx ia64_expand_compare_and_swap PARAMS ((enum machine_mode,
+ enum machine_mode,
+ int, tree, rtx));
static rtx ia64_expand_lock_test_and_set PARAMS ((enum machine_mode,
tree, rtx));
static rtx ia64_expand_lock_release PARAMS ((enum machine_mode, tree, rtx));
@@ -166,13 +201,16 @@ static void ia64_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
static void ia64_select_rtx_section PARAMS ((enum machine_mode, rtx,
unsigned HOST_WIDE_INT));
-static void ia64_aix_select_section PARAMS ((tree, int,
- unsigned HOST_WIDE_INT))
+static void ia64_rwreloc_select_section PARAMS ((tree, int,
+ unsigned HOST_WIDE_INT))
ATTRIBUTE_UNUSED;
-static void ia64_aix_unique_section PARAMS ((tree, int))
+static void ia64_rwreloc_unique_section PARAMS ((tree, int))
ATTRIBUTE_UNUSED;
-static void ia64_aix_select_rtx_section PARAMS ((enum machine_mode, rtx,
- unsigned HOST_WIDE_INT))
+static void ia64_rwreloc_select_rtx_section PARAMS ((enum machine_mode, rtx,
+ unsigned HOST_WIDE_INT))
+ ATTRIBUTE_UNUSED;
+static unsigned int ia64_rwreloc_section_type_flags
+ PARAMS ((tree, const char *, int))
ATTRIBUTE_UNUSED;
static void ia64_hpux_add_extern_decl PARAMS ((const char *name))
@@ -242,11 +280,6 @@ static const struct attribute_spec ia64_attribute_table[] =
#undef TARGET_SCHED_REORDER2
#define TARGET_SCHED_REORDER2 ia64_sched_reorder2
-#ifdef HAVE_AS_TLS
-#undef TARGET_HAVE_TLS
-#define TARGET_HAVE_TLS true
-#endif
-
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK ia64_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
@@ -974,6 +1007,21 @@ ia64_move_ok (dst, src)
return GET_CODE (src) == CONST_DOUBLE && CONST_DOUBLE_OK_FOR_G (src);
}
+/* Return 0 if we are doing C++ code. This optimization fails with
+ C++ because of GNAT c++/6685. */
+
+int
+addp4_optimize_ok (op1, op2)
+ rtx op1, op2;
+{
+
+ if (!strcmp (lang_hooks.name, "GNU C++"))
+ return 0;
+
+ return (basereg_operand (op1, GET_MODE(op1)) !=
+ basereg_operand (op2, GET_MODE(op2)));
+}
+
/* Check if OP is a mask suitible for use with SHIFT in a dep.z instruction.
Return the length of the field, or <= 0 on failure. */
@@ -1038,8 +1086,7 @@ ia64_expand_load_address (dest, src, scratch)
if (! scratch)
scratch = no_new_pseudos ? subtarget : gen_reg_rtx (DImode);
- emit_insn (gen_load_symptr (subtarget, plus_constant (sym, hi),
- scratch));
+ ia64_expand_load_address (subtarget, plus_constant (sym, hi), scratch);
emit_insn (gen_adddi3 (temp, subtarget, GEN_INT (lo)));
}
else
@@ -1102,6 +1149,7 @@ ia64_expand_move (op0, op1)
if ((tls_kind = tls_symbolic_operand (op1, Pmode)))
{
rtx tga_op1, tga_op2, tga_ret, tga_eqv, tmp, insns;
+ rtx orig_op0 = op0;
switch (tls_kind)
{
@@ -1125,8 +1173,10 @@ ia64_expand_move (op0, op1)
insns = get_insns ();
end_sequence ();
+ if (GET_MODE (op0) != Pmode)
+ op0 = tga_ret;
emit_libcall_block (insns, op0, tga_ret, op1);
- return NULL_RTX;
+ break;
case TLS_MODEL_LOCAL_DYNAMIC:
/* ??? This isn't the completely proper way to do local-dynamic
@@ -1154,20 +1204,15 @@ ia64_expand_move (op0, op1)
tmp = gen_reg_rtx (Pmode);
emit_libcall_block (insns, tmp, tga_ret, tga_eqv);
- if (register_operand (op0, Pmode))
- tga_ret = op0;
- else
- tga_ret = gen_reg_rtx (Pmode);
+ if (!register_operand (op0, Pmode))
+ op0 = gen_reg_rtx (Pmode);
if (TARGET_TLS64)
{
- emit_insn (gen_load_dtprel (tga_ret, op1));
- emit_insn (gen_adddi3 (tga_ret, tmp, tga_ret));
+ emit_insn (gen_load_dtprel (op0, op1));
+ emit_insn (gen_adddi3 (op0, tmp, op0));
}
else
- emit_insn (gen_add_dtprel (tga_ret, tmp, op1));
- if (tga_ret == op0)
- return NULL_RTX;
- op1 = tga_ret;
+ emit_insn (gen_add_dtprel (op0, tmp, op1));
break;
case TLS_MODEL_INITIAL_EXEC:
@@ -1177,35 +1222,32 @@ ia64_expand_move (op0, op1)
RTX_UNCHANGING_P (tmp) = 1;
tmp = force_reg (Pmode, tmp);
- if (register_operand (op0, Pmode))
- op1 = op0;
- else
- op1 = gen_reg_rtx (Pmode);
- emit_insn (gen_adddi3 (op1, tmp, gen_thread_pointer ()));
- if (op1 == op0)
- return NULL_RTX;
+ if (!register_operand (op0, Pmode))
+ op0 = gen_reg_rtx (Pmode);
+ emit_insn (gen_adddi3 (op0, tmp, gen_thread_pointer ()));
break;
case TLS_MODEL_LOCAL_EXEC:
- if (register_operand (op0, Pmode))
- tmp = op0;
- else
- tmp = gen_reg_rtx (Pmode);
+ if (!register_operand (op0, Pmode))
+ op0 = gen_reg_rtx (Pmode);
if (TARGET_TLS64)
{
- emit_insn (gen_load_tprel (tmp, op1));
- emit_insn (gen_adddi3 (tmp, gen_thread_pointer (), tmp));
+ emit_insn (gen_load_tprel (op0, op1));
+ emit_insn (gen_adddi3 (op0, gen_thread_pointer (), op0));
}
else
- emit_insn (gen_add_tprel (tmp, gen_thread_pointer (), op1));
- if (tmp == op0)
- return NULL_RTX;
- op1 = tmp;
+ emit_insn (gen_add_tprel (op0, gen_thread_pointer (), op1));
break;
default:
abort ();
}
+
+ if (orig_op0 == op0)
+ return NULL_RTX;
+ if (GET_MODE (orig_op0) == Pmode)
+ return op0;
+ return gen_lowpart (GET_MODE (orig_op0), op0);
}
else if (!TARGET_NO_PIC &&
(symbolic_operand (op1, Pmode) ||
@@ -1246,46 +1288,6 @@ ia64_expand_move (op0, op1)
return op1;
}
-rtx
-ia64_gp_save_reg (setjmp_p)
- int setjmp_p;
-{
- rtx save = cfun->machine->ia64_gp_save;
-
- if (save != NULL)
- {
- /* We can't save GP in a pseudo if we are calling setjmp, because
- pseudos won't be restored by longjmp. For now, we save it in r4. */
- /* ??? It would be more efficient to save this directly into a stack
- slot. Unfortunately, the stack slot address gets cse'd across
- the setjmp call because the NOTE_INSN_SETJMP note is in the wrong
- place. */
-
- /* ??? Get the barf bag, Virginia. We've got to replace this thing
- in place, since this rtx is used in exception handling receivers.
- Moreover, we must get this rtx out of regno_reg_rtx or reload
- will do the wrong thing. */
- unsigned int old_regno = REGNO (save);
- if (setjmp_p && old_regno != GR_REG (4))
- {
- REGNO (save) = GR_REG (4);
- regno_reg_rtx[old_regno] = gen_rtx_raw_REG (DImode, old_regno);
- }
- }
- else
- {
- if (setjmp_p)
- save = gen_rtx_REG (DImode, GR_REG (4));
- else if (! optimize)
- save = gen_rtx_REG (DImode, LOC_REG (0));
- else
- save = gen_reg_rtx (DImode);
- cfun->machine->ia64_gp_save = save;
- }
-
- return save;
-}
-
/* Split a post-reload TImode reference into two DImode components. */
rtx
@@ -1371,12 +1373,12 @@ spill_tfmode_operand (in, force)
&& GET_MODE (SUBREG_REG (in)) == TImode
&& GET_CODE (SUBREG_REG (in)) == REG)
{
- rtx mem = gen_mem_addressof (SUBREG_REG (in), NULL_TREE);
+ rtx mem = gen_mem_addressof (SUBREG_REG (in), NULL_TREE, true);
return gen_rtx_MEM (TFmode, copy_to_reg (XEXP (mem, 0)));
}
else if (force && GET_CODE (in) == REG)
{
- rtx mem = gen_mem_addressof (in, NULL_TREE);
+ rtx mem = gen_mem_addressof (in, NULL_TREE, true);
return gen_rtx_MEM (TFmode, copy_to_reg (XEXP (mem, 0)));
}
else if (GET_CODE (in) == MEM
@@ -1418,72 +1420,148 @@ ia64_expand_compare (code, mode)
}
/* Emit the appropriate sequence for a call. */
-
void
ia64_expand_call (retval, addr, nextarg, sibcall_p)
rtx retval;
rtx addr;
- rtx nextarg;
+ rtx nextarg ATTRIBUTE_UNUSED;
int sibcall_p;
{
- rtx insn, b0, pfs, gp_save, narg_rtx, dest;
- bool indirect_p;
- int narg;
+ rtx insn, b0;
addr = XEXP (addr, 0);
+ addr = convert_memory_address (DImode, addr);
b0 = gen_rtx_REG (DImode, R_BR (0));
- pfs = gen_rtx_REG (DImode, AR_PFS_REGNUM);
-
- if (! nextarg)
- narg = 0;
- else if (IN_REGNO_P (REGNO (nextarg)))
- narg = REGNO (nextarg) - IN_REG (0);
- else
- narg = REGNO (nextarg) - OUT_REG (0);
- narg_rtx = GEN_INT (narg);
+ /* ??? Should do this for functions known to bind local too. */
if (TARGET_NO_PIC || TARGET_AUTO_PIC)
{
if (sibcall_p)
- insn = gen_sibcall_nopic (addr, narg_rtx, b0, pfs);
+ insn = gen_sibcall_nogp (addr);
else if (! retval)
- insn = gen_call_nopic (addr, narg_rtx, b0);
+ insn = gen_call_nogp (addr, b0);
else
- insn = gen_call_value_nopic (retval, addr, narg_rtx, b0);
- emit_call_insn (insn);
- return;
+ insn = gen_call_value_nogp (retval, addr, b0);
+ insn = emit_call_insn (insn);
+ }
+ else
+ {
+ if (sibcall_p)
+ insn = gen_sibcall_gp (addr);
+ else if (! retval)
+ insn = gen_call_gp (addr, b0);
+ else
+ insn = gen_call_value_gp (retval, addr, b0);
+ insn = emit_call_insn (insn);
+
+ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
}
- indirect_p = ! symbolic_operand (addr, VOIDmode);
+ if (sibcall_p)
+ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), b0);
+}
+void
+ia64_reload_gp ()
+{
+ rtx tmp;
- if (sibcall_p || (TARGET_CONST_GP && !indirect_p))
- gp_save = NULL_RTX;
+ if (current_frame_info.reg_save_gp)
+ tmp = gen_rtx_REG (DImode, current_frame_info.reg_save_gp);
else
- gp_save = ia64_gp_save_reg (setjmp_operand (addr, VOIDmode));
+ {
+ HOST_WIDE_INT offset;
- if (gp_save)
- emit_move_insn (gp_save, pic_offset_table_rtx);
+ offset = (current_frame_info.spill_cfa_off
+ + current_frame_info.spill_size);
+ if (frame_pointer_needed)
+ {
+ tmp = hard_frame_pointer_rtx;
+ offset = -offset;
+ }
+ else
+ {
+ tmp = stack_pointer_rtx;
+ offset = current_frame_info.total_size - offset;
+ }
- /* If this is an indirect call, then we have the address of a descriptor. */
- if (indirect_p)
- {
- dest = force_reg (DImode, gen_rtx_MEM (DImode, addr));
- emit_move_insn (pic_offset_table_rtx,
- gen_rtx_MEM (DImode, plus_constant (addr, 8)));
+ if (CONST_OK_FOR_I (offset))
+ emit_insn (gen_adddi3 (pic_offset_table_rtx,
+ tmp, GEN_INT (offset)));
+ else
+ {
+ emit_move_insn (pic_offset_table_rtx, GEN_INT (offset));
+ emit_insn (gen_adddi3 (pic_offset_table_rtx,
+ pic_offset_table_rtx, tmp));
+ }
+
+ tmp = gen_rtx_MEM (DImode, pic_offset_table_rtx);
+ }
+
+ emit_move_insn (pic_offset_table_rtx, tmp);
+}
+
+void
+ia64_split_call (retval, addr, retaddr, scratch_r, scratch_b,
+ noreturn_p, sibcall_p)
+ rtx retval, addr, retaddr, scratch_r, scratch_b;
+ int noreturn_p, sibcall_p;
+{
+ rtx insn;
+ bool is_desc = false;
+
+ /* If we find we're calling through a register, then we're actually
+ calling through a descriptor, so load up the values. */
+ if (REG_P (addr) && GR_REGNO_P (REGNO (addr)))
+ {
+ rtx tmp;
+ bool addr_dead_p;
+
+ /* ??? We are currently constrained to *not* use peep2, because
+ we can legitimiately change the global lifetime of the GP
+ (in the form of killing where previously live). This is
+ because a call through a descriptor doesn't use the previous
+ value of the GP, while a direct call does, and we do not
+ commit to either form until the split here.
+
+ That said, this means that we lack precise life info for
+ whether ADDR is dead after this call. This is not terribly
+ important, since we can fix things up essentially for free
+ with the POST_DEC below, but it's nice to not use it when we
+ can immediately tell it's not necessary. */
+ addr_dead_p = ((noreturn_p || sibcall_p
+ || TEST_HARD_REG_BIT (regs_invalidated_by_call,
+ REGNO (addr)))
+ && !FUNCTION_ARG_REGNO_P (REGNO (addr)));
+
+ /* Load the code address into scratch_b. */
+ tmp = gen_rtx_POST_INC (Pmode, addr);
+ tmp = gen_rtx_MEM (Pmode, tmp);
+ emit_move_insn (scratch_r, tmp);
+ emit_move_insn (scratch_b, scratch_r);
+
+ /* Load the GP address. If ADDR is not dead here, then we must
+ revert the change made above via the POST_INCREMENT. */
+ if (!addr_dead_p)
+ tmp = gen_rtx_POST_DEC (Pmode, addr);
+ else
+ tmp = addr;
+ tmp = gen_rtx_MEM (Pmode, tmp);
+ emit_move_insn (pic_offset_table_rtx, tmp);
+
+ is_desc = true;
+ addr = scratch_b;
}
- else
- dest = addr;
if (sibcall_p)
- insn = gen_sibcall_pic (dest, narg_rtx, b0, pfs);
- else if (! retval)
- insn = gen_call_pic (dest, narg_rtx, b0);
+ insn = gen_sibcall_nogp (addr);
+ else if (retval)
+ insn = gen_call_value_nogp (retval, addr, retaddr);
else
- insn = gen_call_value_pic (retval, dest, narg_rtx, b0);
+ insn = gen_call_nogp (addr, retaddr);
emit_call_insn (insn);
- if (gp_save)
- emit_move_insn (pic_offset_table_rtx, gp_save);
+ if ((!TARGET_CONST_GP || is_desc) && !noreturn_p && !sibcall_p)
+ ia64_reload_gp ();
}
/* Begin the assembly file. */
@@ -1522,39 +1600,6 @@ emit_safe_across_calls (f)
fputc ('\n', f);
}
-
-/* Structure to be filled in by ia64_compute_frame_size with register
- save masks and offsets for the current function. */
-
-struct ia64_frame_info
-{
- HOST_WIDE_INT total_size; /* size of the stack frame, not including
- the caller's scratch area. */
- HOST_WIDE_INT spill_cfa_off; /* top of the reg spill area from the cfa. */
- HOST_WIDE_INT spill_size; /* size of the gr/br/fr spill area. */
- HOST_WIDE_INT extra_spill_size; /* size of spill area for others. */
- HARD_REG_SET mask; /* mask of saved registers. */
- unsigned int gr_used_mask; /* mask of registers in use as gr spill
- registers or long-term scratches. */
- int n_spilled; /* number of spilled registers. */
- int reg_fp; /* register for fp. */
- int reg_save_b0; /* save register for b0. */
- int reg_save_pr; /* save register for prs. */
- int reg_save_ar_pfs; /* save register for ar.pfs. */
- int reg_save_ar_unat; /* save register for ar.unat. */
- int reg_save_ar_lc; /* save register for ar.lc. */
- int n_input_regs; /* number of input registers used. */
- int n_local_regs; /* number of local registers used. */
- int n_output_regs; /* number of output registers used. */
- int n_rotate_regs; /* number of rotating registers used. */
-
- char need_regstk; /* true if a .regstk directive needed. */
- char initialized; /* true if the data is finalized. */
-};
-
-/* Current frame information calculated by ia64_compute_frame_size. */
-static struct ia64_frame_info current_frame_info;
-
/* Helper function for ia64_compute_frame_size: find an appropriate general
register to spill some special register to. SPECIAL_SPILL_MASK contains
bits in GR0 to GR31 that have already been allocated by this routine.
@@ -1796,6 +1841,17 @@ ia64_compute_frame_size (size)
extra_spill_size += 8;
n_spilled += 1;
}
+
+ /* Similarly for gp. Note that if we're calling setjmp, the stacked
+ registers are clobbered, so we fall back to the stack. */
+ current_frame_info.reg_save_gp
+ = (current_function_calls_setjmp ? 0 : find_gr_spill (1));
+ if (current_frame_info.reg_save_gp == 0)
+ {
+ SET_HARD_REG_BIT (mask, GR_REG (1));
+ spill_size += 8;
+ n_spilled += 1;
+ }
}
else
{
@@ -1805,6 +1861,17 @@ ia64_compute_frame_size (size)
spill_size += 8;
n_spilled += 1;
}
+
+ if (regs_ever_live[AR_PFS_REGNUM])
+ {
+ SET_HARD_REG_BIT (mask, AR_PFS_REGNUM);
+ current_frame_info.reg_save_ar_pfs = find_gr_spill (1);
+ if (current_frame_info.reg_save_ar_pfs == 0)
+ {
+ extra_spill_size += 8;
+ n_spilled += 1;
+ }
+ }
}
/* Unwind descriptor hackery: things are most efficient if we allocate
@@ -1843,8 +1910,10 @@ ia64_compute_frame_size (size)
}
/* If we're forced to use st8.spill, we're forced to save and restore
- ar.unat as well. */
- if (spilled_gr_p || cfun->machine->n_varargs)
+ ar.unat as well. The check for existing liveness allows inline asm
+ to touch ar.unat. */
+ if (spilled_gr_p || cfun->machine->n_varargs
+ || regs_ever_live[AR_UNAT_REGNUM])
{
regs_ever_live[AR_UNAT_REGNUM] = 1;
SET_HARD_REG_BIT (mask, AR_UNAT_REGNUM);
@@ -1937,10 +2006,6 @@ ia64_initial_elimination_offset (from, to)
abort ();
break;
- case RETURN_ADDRESS_POINTER_REGNUM:
- offset = 0;
- break;
-
default:
abort ();
}
@@ -2291,21 +2356,11 @@ ia64_expand_prologue ()
reg_names[current_frame_info.reg_fp] = tmp;
}
- /* Fix up the return address placeholder. */
- /* ??? We can fail if __builtin_return_address is used, and we didn't
- allocate a register in which to save b0. I can't think of a way to
- eliminate RETURN_ADDRESS_POINTER_REGNUM to a local register and
- then be sure that I got the right one. Further, reload doesn't seem
- to care if an eliminable register isn't used, and "eliminates" it
- anyway. */
- if (regs_ever_live[RETURN_ADDRESS_POINTER_REGNUM]
- && current_frame_info.reg_save_b0 != 0)
- XINT (return_address_pointer_rtx, 0) = current_frame_info.reg_save_b0;
-
/* We don't need an alloc instruction if we've used no outputs or locals. */
if (current_frame_info.n_local_regs == 0
&& current_frame_info.n_output_regs == 0
- && current_frame_info.n_input_regs <= current_function_args_info.int_regs)
+ && current_frame_info.n_input_regs <= current_function_args_info.int_regs
+ && !TEST_HARD_REG_BIT (current_frame_info.mask, AR_PFS_REGNUM))
{
/* If there is no alloc, but there are input registers used, then we
need a .regstk directive. */
@@ -2467,8 +2522,8 @@ ia64_expand_prologue ()
/* The alloc insn already copied ar.pfs into a general register. The
only thing we have to do now is copy that register to a stack slot
if we'd not allocated a local register for the job. */
- if (current_frame_info.reg_save_ar_pfs == 0
- && ! current_function_is_leaf)
+ if (TEST_HARD_REG_BIT (current_frame_info.mask, AR_PFS_REGNUM)
+ && current_frame_info.reg_save_ar_pfs == 0)
{
reg = gen_rtx_REG (DImode, AR_PFS_REGNUM);
do_spill (gen_movdi_x, ar_pfs_save_reg, cfa_off, reg);
@@ -2499,6 +2554,19 @@ ia64_expand_prologue ()
}
}
+ if (current_frame_info.reg_save_gp)
+ {
+ insn = emit_move_insn (gen_rtx_REG (DImode,
+ current_frame_info.reg_save_gp),
+ pic_offset_table_rtx);
+ /* We don't know for sure yet if this is actually needed, since
+ we've not split the PIC call patterns. If all of the calls
+ are indirect, and not followed by any uses of the gp, then
+ this save is dead. Allow it to go away. */
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, const0_rtx, REG_NOTES (insn));
+ }
+
/* We should now be at the base of the gr/br/fr spill area. */
if (cfa_off != (current_frame_info.spill_cfa_off
+ current_frame_info.spill_size))
@@ -2650,7 +2718,7 @@ ia64_expand_epilogue (sibcall_p)
reg = gen_rtx_REG (DImode, AR_PFS_REGNUM);
emit_move_insn (reg, alt_reg);
}
- else if (! current_function_is_leaf)
+ else if (TEST_HARD_REG_BIT (current_frame_info.mask, AR_PFS_REGNUM))
{
alt_regno = next_scratch_gr_reg ();
alt_reg = gen_rtx_REG (DImode, alt_regno);
@@ -2680,8 +2748,13 @@ ia64_expand_epilogue (sibcall_p)
+ current_frame_info.spill_size))
abort ();
+ /* The GP may be stored on the stack in the prologue, but it's
+ never restored in the epilogue. Skip the stack slot. */
+ if (TEST_HARD_REG_BIT (current_frame_info.mask, GR_REG (1)))
+ cfa_off -= 8;
+
/* Restore all general registers. */
- for (regno = GR_REG (1); regno <= GR_REG (31); ++regno)
+ for (regno = GR_REG (2); regno <= GR_REG (31); ++regno)
if (TEST_HARD_REG_BIT (current_frame_info.mask, regno))
{
reg = gen_rtx_REG (DImode, regno);
@@ -2811,10 +2884,13 @@ ia64_expand_epilogue (sibcall_p)
preserve those input registers used as arguments to the sibling call.
It is unclear how to compute that number here. */
if (current_frame_info.n_input_regs != 0)
- emit_insn (gen_alloc (gen_rtx_REG (DImode, fp),
- GEN_INT (0), GEN_INT (0),
- GEN_INT (current_frame_info.n_input_regs),
- GEN_INT (0)));
+ {
+ rtx n_inputs = GEN_INT (current_frame_info.n_input_regs);
+ insn = emit_insn (gen_alloc (gen_rtx_REG (DImode, fp),
+ const0_rtx, const0_rtx,
+ n_inputs, const0_rtx));
+ RTX_FRAME_RELATED_P (insn) = 1;
+ }
}
}
@@ -2839,6 +2915,72 @@ ia64_direct_return ()
return 0;
}
+/* Return the magic cookie that we use to hold the return address
+ during early compilation. */
+
+rtx
+ia64_return_addr_rtx (count, frame)
+ HOST_WIDE_INT count;
+ rtx frame ATTRIBUTE_UNUSED;
+{
+ if (count != 0)
+ return NULL;
+ return gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx), UNSPEC_RET_ADDR);
+}
+
+/* Split this value after reload, now that we know where the return
+ address is saved. */
+
+void
+ia64_split_return_addr_rtx (dest)
+ rtx dest;
+{
+ rtx src;
+
+ if (TEST_HARD_REG_BIT (current_frame_info.mask, BR_REG (0)))
+ {
+ if (current_frame_info.reg_save_b0 != 0)
+ src = gen_rtx_REG (DImode, current_frame_info.reg_save_b0);
+ else
+ {
+ HOST_WIDE_INT off;
+ unsigned int regno;
+
+ /* Compute offset from CFA for BR0. */
+ /* ??? Must be kept in sync with ia64_expand_prologue. */
+ off = (current_frame_info.spill_cfa_off
+ + current_frame_info.spill_size);
+ for (regno = GR_REG (1); regno <= GR_REG (31); ++regno)
+ if (TEST_HARD_REG_BIT (current_frame_info.mask, regno))
+ off -= 8;
+
+ /* Convert CFA offset to a register based offset. */
+ if (frame_pointer_needed)
+ src = hard_frame_pointer_rtx;
+ else
+ {
+ src = stack_pointer_rtx;
+ off += current_frame_info.total_size;
+ }
+
+ /* Load address into scratch register. */
+ if (CONST_OK_FOR_I (off))
+ emit_insn (gen_adddi3 (dest, src, GEN_INT (off)));
+ else
+ {
+ emit_move_insn (dest, GEN_INT (off));
+ emit_insn (gen_adddi3 (dest, src, dest));
+ }
+
+ src = gen_rtx_MEM (Pmode, dest);
+ }
+ }
+ else
+ src = gen_rtx_REG (DImode, BR_REG (0));
+
+ emit_move_insn (dest, src);
+}
+
int
ia64_hard_regno_rename_ok (from, to)
int from;
@@ -2869,10 +3011,6 @@ ia64_hard_regno_rename_ok (from, to)
if (PR_REGNO_P (from) && PR_REGNO_P (to))
return (from & 1) == (to & 1);
- /* Reg 4 contains the saved gp; we can't reliably rename this. */
- if (from == GR_REG (4) && current_function_calls_setjmp)
- return 0;
-
return 1;
}
@@ -2886,15 +3024,16 @@ ia64_assemble_integer (x, size, aligned_p)
int aligned_p;
{
if (size == (TARGET_ILP32 ? 4 : 8)
- && aligned_p
&& !(TARGET_NO_PIC || TARGET_AUTO_PIC)
&& GET_CODE (x) == SYMBOL_REF
&& SYMBOL_REF_FLAG (x))
{
- if (TARGET_ILP32)
- fputs ("\tdata4\t@fptr(", asm_out_file);
- else
- fputs ("\tdata8\t@fptr(", asm_out_file);
+ static const char * const directive[2][2] = {
+ /* 64-bit pointer */ /* 32-bit pointer */
+ { "\tdata8.ua\t@fptr(", "\tdata4.ua\t@fptr("}, /* unaligned */
+ { "\tdata8\t@fptr(", "\tdata4\t@fptr("} /* aligned */
+ };
+ fputs (directive[aligned_p != 0][TARGET_ILP32 != 0], asm_out_file);
output_addr_const (asm_out_file, x);
fputs (")\n", asm_out_file);
return true;
@@ -2992,9 +3131,6 @@ ia64_output_function_epilogue (file, size)
{
int i;
- /* Reset from the function's potential modifications. */
- XINT (return_address_pointer_rtx, 0) = RETURN_ADDRESS_POINTER_REGNUM;
-
if (current_frame_info.reg_fp)
{
const char *tmp = reg_names[HARD_FRAME_POINTER_REGNUM];
@@ -3297,9 +3433,10 @@ ia64_function_arg (cum, mode, type, named, incoming)
? 1 : GET_MODE_SIZE (gr_mode) / UNITS_PER_WORD;
}
- /* If we ended up using just one location, just return that one loc. */
+ /* If we ended up using just one location, just return that one loc, but
+ change the mode back to the argument mode. */
if (i == 1)
- return XEXP (loc[0], 0);
+ return gen_rtx_REG (mode, REGNO (XEXP (loc[0], 0)));
else
return gen_rtx_PARALLEL (mode, gen_rtvec_v (i, loc));
}
@@ -3514,8 +3651,12 @@ ia64_va_arg (valist, type)
/* Variable sized types are passed by reference. */
if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
{
- rtx addr = std_expand_builtin_va_arg (valist, build_pointer_type (type));
- return gen_rtx_MEM (ptr_mode, force_reg (Pmode, addr));
+ rtx addr = force_reg (ptr_mode,
+ std_expand_builtin_va_arg (valist, build_pointer_type (type)));
+#ifdef POINTERS_EXTEND_UNSIGNED
+ addr = convert_memory_address (Pmode, addr);
+#endif
+ return gen_rtx_MEM (ptr_mode, addr);
}
/* Arguments with alignment larger than 8 bytes start at the next even
@@ -4082,7 +4223,6 @@ ia64_secondary_reload_class (class, mode, x)
return NO_REGS;
}
-
/* Emit text to declare externally defined variables and functions, because
the Intel assembler does not support undefined externals. */
@@ -5621,7 +5761,9 @@ ia64_adjust_cost (insn, link, dep_insn, cost)
addr = XVECEXP (addr, 0, 0);
while (GET_CODE (addr) == SUBREG || GET_CODE (addr) == ZERO_EXTEND)
addr = XEXP (addr, 0);
- if (GET_CODE (addr) == MEM)
+
+ /* Note that LO_SUM is used for GOT loads. */
+ if (GET_CODE (addr) == MEM || GET_CODE (addr) == LO_SUM)
addr = XEXP (addr, 0);
else
addr = 0;
@@ -6966,7 +7108,8 @@ ia64_emit_nops ()
{
while (bundle_pos < 3)
{
- emit_insn_before (gen_nop_type (b->t[bundle_pos]), insn);
+ if (b->t[bundle_pos] != TYPE_L)
+ emit_insn_before (gen_nop_type (b->t[bundle_pos]), insn);
bundle_pos++;
}
continue;
@@ -7035,11 +7178,12 @@ ia64_reorg (insns)
insn = get_last_insn ();
if (! INSN_P (insn))
insn = prev_active_insn (insn);
- if (GET_CODE (insn) == INSN
- && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
- && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
- {
- saw_stop = 1;
+ /* Skip over insns that expand to nothing. */
+ while (GET_CODE (insn) == INSN && get_attr_empty (insn) == EMPTY_YES)
+ {
+ if (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
+ && XINT (PATTERN (insn), 1) == UNSPECV_INSN_GROUP_BARRIER)
+ saw_stop = 1;
insn = prev_active_insn (insn);
}
if (GET_CODE (insn) == CALL_INSN)
@@ -7064,12 +7208,11 @@ ia64_epilogue_uses (regno)
switch (regno)
{
case R_GR (1):
- /* When a function makes a call through a function descriptor, we
- will write a (potentially) new value to "gp". After returning
- from such a call, we need to make sure the function restores the
- original gp-value, even if the function itself does not use the
- gp anymore. */
- return (TARGET_CONST_GP && !(TARGET_AUTO_PIC || TARGET_NO_PIC));
+ /* With a call to a function in another module, we will write a new
+ value to "gp". After returning from such a call, we need to make
+ sure the function restores the original gp-value, even if the
+ function itself does not use the gp anymore. */
+ return !(TARGET_AUTO_PIC || TARGET_NO_PIC);
case IN_REG (0): case IN_REG (1): case IN_REG (2): case IN_REG (3):
case IN_REG (4): case IN_REG (5): case IN_REG (6): case IN_REG (7):
@@ -7149,6 +7292,10 @@ ia64_in_small_data_p (exp)
if (TARGET_NO_SDATA)
return false;
+ /* Functions are never small data. */
+ if (TREE_CODE (exp) == FUNCTION_DECL)
+ return false;
+
if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
@@ -7213,7 +7360,8 @@ ia64_encode_section_info (decl, first)
if (encoding == symbol_str[1])
return;
/* ??? Sdata became thread or thread becaome not thread. Lose. */
- abort ();
+ if (encoding == 's' || symbol_str[1] == 's')
+ abort ();
}
len = strlen (symbol_str);
@@ -7243,6 +7391,24 @@ ia64_strip_name_encoding (str)
str++;
return str;
}
+
+/* True if it is OK to do sibling call optimization for the specified
+ call expression EXP. DECL will be the called function, or NULL if
+ this is an indirect call. */
+bool
+ia64_function_ok_for_sibcall (decl)
+ tree decl;
+{
+ /* We can't perform a sibcall if the current function has the syscall_linkage
+ attribute. */
+ if (lookup_attribute ("syscall_linkage",
+ TYPE_ATTRIBUTES (TREE_TYPE (current_function_decl))))
+ return false;
+
+ /* We must always return with our current GP. This means we can
+ only sibcall to functions defined in the current module. */
+ return decl && (*targetm.binds_local_p) (decl);
+}
/* Output assembly directives for prologue regions. */
@@ -7290,13 +7456,24 @@ process_set (asm_out_file, pat)
{
dest_regno = REGNO (dest);
- /* If this isn't the final destination for ar.pfs, the alloc
- shouldn't have been marked frame related. */
- if (dest_regno != current_frame_info.reg_save_ar_pfs)
- abort ();
-
- fprintf (asm_out_file, "\t.save ar.pfs, r%d\n",
- ia64_dbx_register_number (dest_regno));
+ /* If this is the final destination for ar.pfs, then this must
+ be the alloc in the prologue. */
+ if (dest_regno == current_frame_info.reg_save_ar_pfs)
+ fprintf (asm_out_file, "\t.save ar.pfs, r%d\n",
+ ia64_dbx_register_number (dest_regno));
+ else
+ {
+ /* This must be an alloc before a sibcall. We must drop the
+ old frame info. The easiest way to drop the old frame
+ info is to ensure we had a ".restore sp" directive
+ followed by a new prologue. If the procedure doesn't
+ have a memory-stack frame, we'll issue a dummy ".restore
+ sp" now. */
+ if (current_frame_info.total_size == 0 && !frame_pointer_needed)
+ /* if haven't done process_epilogue() yet, do it now */
+ process_epilogue ();
+ fprintf (asm_out_file, "\t.prologue\n");
+ }
return 1;
}
@@ -7561,11 +7738,16 @@ ia64_init_builtins ()
psi_type_node, integer_type_node,
integer_type_node, NULL_TREE);
- /* __sync_val_compare_and_swap_di, __sync_bool_compare_and_swap_di */
+ /* __sync_val_compare_and_swap_di */
tree di_ftype_pdi_di_di
= build_function_type_list (long_integer_type_node,
pdi_type_node, long_integer_type_node,
long_integer_type_node, NULL_TREE);
+ /* __sync_bool_compare_and_swap_di */
+ tree si_ftype_pdi_di_di
+ = build_function_type_list (integer_type_node,
+ pdi_type_node, long_integer_type_node,
+ long_integer_type_node, NULL_TREE);
/* __sync_synchronize */
tree void_ftype_void
= build_function_type (void_type_node, void_list_node);
@@ -7598,7 +7780,7 @@ ia64_init_builtins ()
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI);
def_builtin ("__sync_bool_compare_and_swap_si", si_ftype_psi_si_si,
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI);
- def_builtin ("__sync_bool_compare_and_swap_di", di_ftype_pdi_di_di,
+ def_builtin ("__sync_bool_compare_and_swap_di", si_ftype_pdi_di_di,
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI);
def_builtin ("__sync_synchronize", void_ftype_void,
@@ -7729,13 +7911,14 @@ ia64_expand_fetch_and_op (binoptab, mode, arglist, target)
}
tmp = gen_reg_rtx (mode);
- ccv = gen_rtx_REG (mode, AR_CCV_REGNUM);
+ /* ar.ccv must always be loaded with a zero-extended DImode value. */
+ ccv = gen_rtx_REG (DImode, AR_CCV_REGNUM);
emit_move_insn (tmp, mem);
label = gen_label_rtx ();
emit_label (label);
emit_move_insn (ret, tmp);
- emit_move_insn (ccv, tmp);
+ convert_move (ccv, tmp, /*unsignedp=*/1);
/* Perform the specific operation. Special case NAND by noticing
one_cmpl_optab instead. */
@@ -7764,7 +7947,7 @@ ia64_expand_fetch_and_op (binoptab, mode, arglist, target)
do {
old = tmp;
ar.ccv = tmp;
- ret = tmp + value;
+ ret = tmp <op> value;
cmpxchgsz.acq tmp = [ptr], ret
} while (tmp != old)
*/
@@ -7798,14 +7981,15 @@ ia64_expand_op_and_fetch (binoptab, mode, arglist, target)
emit_insn (gen_mf ());
tmp = gen_reg_rtx (mode);
old = gen_reg_rtx (mode);
- ccv = gen_rtx_REG (mode, AR_CCV_REGNUM);
+ /* ar.ccv must always be loaded with a zero-extended DImode value. */
+ ccv = gen_rtx_REG (DImode, AR_CCV_REGNUM);
emit_move_insn (tmp, mem);
label = gen_label_rtx ();
emit_label (label);
emit_move_insn (old, tmp);
- emit_move_insn (ccv, tmp);
+ convert_move (ccv, tmp, /*unsignedp=*/1);
/* Perform the specific operation. Special case NAND by noticing
one_cmpl_optab instead. */
@@ -7838,7 +8022,8 @@ ia64_expand_op_and_fetch (binoptab, mode, arglist, target)
*/
static rtx
-ia64_expand_compare_and_swap (mode, boolp, arglist, target)
+ia64_expand_compare_and_swap (rmode, mode, boolp, arglist, target)
+ enum machine_mode rmode;
enum machine_mode mode;
int boolp;
tree arglist;
@@ -7857,6 +8042,11 @@ ia64_expand_compare_and_swap (mode, boolp, arglist, target)
mem = gen_rtx_MEM (mode, force_reg (ptr_mode, mem));
MEM_VOLATILE_P (mem) = 1;
+ if (GET_MODE (old) != mode)
+ old = convert_to_mode (mode, old, /*unsignedp=*/1);
+ if (GET_MODE (new) != mode)
+ new = convert_to_mode (mode, new, /*unsignedp=*/1);
+
if (! register_operand (old, mode))
old = copy_to_mode_reg (mode, old);
if (! register_operand (new, mode))
@@ -7867,8 +8057,8 @@ ia64_expand_compare_and_swap (mode, boolp, arglist, target)
else
tmp = gen_reg_rtx (mode);
- ccv = gen_rtx_REG (mode, AR_CCV_REGNUM);
- emit_move_insn (ccv, old);
+ ccv = gen_rtx_REG (DImode, AR_CCV_REGNUM);
+ convert_move (ccv, old, /*unsignedp=*/1);
emit_insn (gen_mf ());
if (mode == SImode)
insn = gen_cmpxchg_acq_si (tmp, mem, new, ccv);
@@ -7879,7 +8069,7 @@ ia64_expand_compare_and_swap (mode, boolp, arglist, target)
if (boolp)
{
if (! target)
- target = gen_reg_rtx (mode);
+ target = gen_reg_rtx (rmode);
return emit_store_flag_force (target, EQ, tmp, old, mode, 1, 1);
}
else
@@ -7954,11 +8144,16 @@ ia64_expand_builtin (exp, target, subtarget, mode, ignore)
tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
tree arglist = TREE_OPERAND (exp, 1);
+ enum machine_mode rmode = VOIDmode;
switch (fcode)
{
case IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI:
case IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI:
+ mode = SImode;
+ rmode = SImode;
+ break;
+
case IA64_BUILTIN_LOCK_TEST_AND_SET_SI:
case IA64_BUILTIN_LOCK_RELEASE_SI:
case IA64_BUILTIN_FETCH_AND_ADD_SI:
@@ -7977,7 +8172,15 @@ ia64_expand_builtin (exp, target, subtarget, mode, ignore)
break;
case IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI:
+ mode = DImode;
+ rmode = SImode;
+ break;
+
case IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI:
+ mode = DImode;
+ rmode = DImode;
+ break;
+
case IA64_BUILTIN_LOCK_TEST_AND_SET_DI:
case IA64_BUILTIN_LOCK_RELEASE_DI:
case IA64_BUILTIN_FETCH_AND_ADD_DI:
@@ -8003,11 +8206,13 @@ ia64_expand_builtin (exp, target, subtarget, mode, ignore)
{
case IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI:
case IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI:
- return ia64_expand_compare_and_swap (mode, 1, arglist, target);
+ return ia64_expand_compare_and_swap (rmode, mode, 1, arglist,
+ target);
case IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI:
case IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI:
- return ia64_expand_compare_and_swap (mode, 0, arglist, target);
+ return ia64_expand_compare_and_swap (rmode, mode, 0, arglist,
+ target);
case IA64_BUILTIN_SYNCHRONIZE:
emit_insn (gen_mf ());
@@ -8180,34 +8385,28 @@ ia64_select_rtx_section (mode, x, align)
default_elf_select_rtx_section (mode, x, align);
}
-/* It is illegal to have relocations in shared segments on AIX.
+/* It is illegal to have relocations in shared segments on AIX and HPUX.
Pretend flag_pic is always set. */
static void
-ia64_aix_select_section (exp, reloc, align)
+ia64_rwreloc_select_section (exp, reloc, align)
tree exp;
int reloc;
unsigned HOST_WIDE_INT align;
{
- int save_pic = flag_pic;
- flag_pic = 1;
- default_elf_select_section (exp, reloc, align);
- flag_pic = save_pic;
+ default_elf_select_section_1 (exp, reloc, align, true);
}
static void
-ia64_aix_unique_section (decl, reloc)
+ia64_rwreloc_unique_section (decl, reloc)
tree decl;
int reloc;
{
- int save_pic = flag_pic;
- flag_pic = 1;
- default_unique_section (decl, reloc);
- flag_pic = save_pic;
+ default_unique_section_1 (decl, reloc, true);
}
static void
-ia64_aix_select_rtx_section (mode, x, align)
+ia64_rwreloc_select_rtx_section (mode, x, align)
enum machine_mode mode;
rtx x;
unsigned HOST_WIDE_INT align;
@@ -8218,6 +8417,16 @@ ia64_aix_select_rtx_section (mode, x, align)
flag_pic = save_pic;
}
+static unsigned int
+ia64_rwreloc_section_type_flags (decl, name, reloc)
+ tree decl;
+ const char *name;
+ int reloc;
+{
+ return default_section_type_flags_1 (decl, name, reloc, true);
+}
+
+
/* Output the assembler code for a thunk function. THUNK_DECL is the
declaration for the thunk function itself, FUNCTION is the decl for
the target function. DELTA is an immediate constant offset to be
@@ -8234,6 +8443,9 @@ ia64_output_mi_thunk (file, thunk, delta, vcall_offset, function)
{
rtx this, insn, funexp;
+ reload_completed = 1;
+ no_new_pseudos = 1;
+
/* Set things up as ia64_expand_prologue might. */
last_scratch_gr_reg = 15;
@@ -8249,6 +8461,9 @@ ia64_output_mi_thunk (file, thunk, delta, vcall_offset, function)
emit_note (NULL, NOTE_INSN_PROLOGUE_END);
this = gen_rtx_REG (Pmode, IN_REG (0));
+ if (TARGET_ILP32)
+ emit_insn (gen_ptr_extend (this,
+ gen_rtx_REG (ptr_mode, IN_REG (0))));
/* Apply the constant offset, if required. */
if (delta)
@@ -8270,7 +8485,14 @@ ia64_output_mi_thunk (file, thunk, delta, vcall_offset, function)
rtx vcall_offset_rtx = GEN_INT (vcall_offset);
rtx tmp = gen_rtx_REG (Pmode, 2);
- emit_move_insn (tmp, gen_rtx_MEM (Pmode, this));
+ if (TARGET_ILP32)
+ {
+ rtx t = gen_rtx_REG (ptr_mode, 2);
+ emit_move_insn (t, gen_rtx_MEM (ptr_mode, this));
+ emit_insn (gen_ptr_extend (tmp, t));
+ }
+ else
+ emit_move_insn (tmp, gen_rtx_MEM (Pmode, this));
if (!CONST_OK_FOR_J (vcall_offset))
{
@@ -8280,7 +8502,11 @@ ia64_output_mi_thunk (file, thunk, delta, vcall_offset, function)
}
emit_insn (gen_adddi3 (tmp, tmp, vcall_offset_rtx));
- emit_move_insn (tmp, gen_rtx_MEM (Pmode, tmp));
+ if (TARGET_ILP32)
+ emit_move_insn (gen_rtx_REG (ptr_mode, 2),
+ gen_rtx_MEM (ptr_mode, tmp));
+ else
+ emit_move_insn (tmp, gen_rtx_MEM (Pmode, tmp));
emit_insn (gen_adddi3 (this, this, tmp));
}
@@ -8296,18 +8522,27 @@ ia64_output_mi_thunk (file, thunk, delta, vcall_offset, function)
ia64_expand_call (NULL_RTX, funexp, NULL_RTX, 1);
insn = get_last_insn ();
SIBLING_CALL_P (insn) = 1;
+
+ /* Code generation for calls relies on splitting. */
+ reload_completed = 1;
+ try_split (PATTERN (insn), insn, 0);
+
emit_barrier ();
/* Run just enough of rest_of_compilation to get the insns emitted.
There's not really enough bulk here to make other passes such as
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
+
insn = get_insns ();
emit_all_insn_group_barriers (NULL, insn);
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1, 0);
final_end_function ();
+
+ reload_completed = 0;
+ no_new_pseudos = 0;
}
#include "gt-ia64.h"
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 59f60d05bfa..2a3e409e1b2 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -133,6 +133,15 @@ extern int target_flags;
#define TARGET_DWARF2_ASM (target_flags & MASK_DWARF2_ASM)
+/* If the assembler supports thread-local storage, assume that the
+ system does as well. If a particular target system has an
+ assembler that supports TLS -- but the rest of the system does not
+ support TLS -- that system should explicit define TARGET_HAVE_TLS
+ to false in its own configuration file. */
+#if !defined(TARGET_HAVE_TLS) && defined(HAVE_AS_TLS)
+#define TARGET_HAVE_TLS true
+#endif
+
extern int ia64_tls_size;
#define TARGET_TLS14 (ia64_tls_size == 14)
#define TARGET_TLS22 (ia64_tls_size == 22)
@@ -140,6 +149,10 @@ extern int ia64_tls_size;
#define TARGET_HPUX_LD 0
+#ifndef HAVE_AS_LTOFFX_LDXMOV_RELOCS
+#define HAVE_AS_LTOFFX_LDXMOV_RELOCS 0
+#endif
+
/* This macro defines names of command options to set and clear bits in
`target_flags'. Its definition is an initializer with a subgrouping for
each command option. */
@@ -432,7 +445,7 @@ while (0)
64 predicate registers, 8 branch registers, one frame pointer,
and several "application" registers. */
-#define FIRST_PSEUDO_REGISTER 335
+#define FIRST_PSEUDO_REGISTER 334
/* Ranges for the various kinds of registers. */
#define ADDL_REGNO_P(REGNO) ((unsigned HOST_WIDE_INT) (REGNO) <= 3)
@@ -441,9 +454,7 @@ while (0)
#define PR_REGNO_P(REGNO) ((REGNO) >= 256 && (REGNO) <= 319)
#define BR_REGNO_P(REGNO) ((REGNO) >= 320 && (REGNO) <= 327)
#define GENERAL_REGNO_P(REGNO) \
- (GR_REGNO_P (REGNO) \
- || (REGNO) == FRAME_POINTER_REGNUM \
- || (REGNO) == RETURN_ADDRESS_POINTER_REGNUM)
+ (GR_REGNO_P (REGNO) || (REGNO) == FRAME_POINTER_REGNUM)
#define GR_REG(REGNO) ((REGNO) + 0)
#define FR_REG(REGNO) ((REGNO) + 128)
@@ -453,11 +464,11 @@ while (0)
#define IN_REG(REGNO) ((REGNO) + 112)
#define LOC_REG(REGNO) ((REGNO) + 32)
-#define AR_CCV_REGNUM 330
-#define AR_UNAT_REGNUM 331
-#define AR_PFS_REGNUM 332
-#define AR_LC_REGNUM 333
-#define AR_EC_REGNUM 334
+#define AR_CCV_REGNUM 329
+#define AR_UNAT_REGNUM 330
+#define AR_PFS_REGNUM 331
+#define AR_LC_REGNUM 332
+#define AR_EC_REGNUM 333
#define IN_REGNO_P(REGNO) ((REGNO) >= IN_REG (0) && (REGNO) <= IN_REG (7))
#define LOC_REGNO_P(REGNO) ((REGNO) >= LOC_REG (0) && (REGNO) <= LOC_REG (79))
@@ -520,8 +531,8 @@ while (0)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
/* Branch registers. */ \
0, 0, 0, 0, 0, 0, 0, 0, \
- /*FP RA CCV UNAT PFS LC EC */ \
- 1, 1, 1, 1, 1, 0, 1 \
+ /*FP CCV UNAT PFS LC EC */ \
+ 1, 1, 1, 1, 0, 1 \
}
/* Like `FIXED_REGISTERS' but has 1 for each register that is clobbered
@@ -555,8 +566,8 @@ while (0)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
/* Branch registers. */ \
1, 0, 0, 0, 0, 0, 1, 1, \
- /*FP RA CCV UNAT PFS LC EC */ \
- 1, 1, 1, 1, 1, 0, 1 \
+ /*FP CCV UNAT PFS LC EC */ \
+ 1, 1, 1, 1, 0, 1 \
}
/* Like `CALL_USED_REGISTERS' but used to overcome a historical
@@ -593,8 +604,8 @@ while (0)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
/* Branch registers. */ \
1, 0, 0, 0, 0, 0, 1, 1, \
- /*FP RA CCV UNAT PFS LC EC */ \
- 0, 0, 1, 0, 1, 0, 0 \
+ /*FP CCV UNAT PFS LC EC */ \
+ 0, 1, 0, 1, 0, 0 \
}
@@ -740,7 +751,7 @@ while (0)
/* Special branch registers. */ \
R_BR (0), \
/* Other fixed registers. */ \
- FRAME_POINTER_REGNUM, RETURN_ADDRESS_POINTER_REGNUM, \
+ FRAME_POINTER_REGNUM, \
AR_CCV_REGNUM, AR_UNAT_REGNUM, AR_PFS_REGNUM, AR_LC_REGNUM, \
AR_EC_REGNUM \
}
@@ -869,11 +880,11 @@ enum reg_class
/* AR_M_REGS. */ \
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x0C00 }, \
+ 0x00000000, 0x00000000, 0x0600 }, \
/* AR_I_REGS. */ \
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x7000 }, \
+ 0x00000000, 0x00000000, 0x3800 }, \
/* ADDL_REGS. */ \
{ 0x0000000F, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
@@ -881,7 +892,7 @@ enum reg_class
/* GR_REGS. */ \
{ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x0300 }, \
+ 0x00000000, 0x00000000, 0x0100 }, \
/* FR_REGS. */ \
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
@@ -889,15 +900,15 @@ enum reg_class
/* GR_AND_BR_REGS. */ \
{ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x03FF }, \
+ 0x00000000, 0x00000000, 0x01FF }, \
/* GR_AND_FR_REGS. */ \
{ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
- 0x00000000, 0x00000000, 0x0300 }, \
+ 0x00000000, 0x00000000, 0x0100 }, \
/* ALL_REGS. */ \
{ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, \
- 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFF }, \
+ 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFF }, \
}
/* A C expression whose value is a register class containing hard register
@@ -1011,8 +1022,9 @@ enum reg_class
/* In FP regs, we can't change FP values to integer values and vice
versa, but we can change e.g. DImode to SImode. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- (GET_MODE_CLASS (FROM) != GET_MODE_CLASS (TO) ? FR_REGS : NO_REGS)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_CLASS (FROM) != GET_MODE_CLASS (TO) \
+ ? reg_classes_intersect_p (CLASS, FR_REGS) : 0)
/* A C expression that defines the machine-dependent operand constraint
letters (`I', `J', `K', .. 'P') that specify particular ranges of
@@ -1114,7 +1126,7 @@ enum reg_class
DYNAMIC_CHAIN_ADDRESS and SETUP_FRAME_ADDRESS (for the reg stack flush). */
#define RETURN_ADDR_RTX(COUNT, FRAME) \
- ((COUNT) == 0 ? return_address_pointer_rtx : const0_rtx)
+ ia64_return_addr_rtx (COUNT, FRAME)
/* A C expression whose value is RTL representing the location of the incoming
return address at the beginning of any function, before the prologue. This
@@ -1175,13 +1187,6 @@ enum reg_class
REGNO_POINTER_ALIGN (ARG_POINTER_REGNUM) = 64; \
} while (0)
-/* The register number for the return address register. For IA-64, this
- is not actually a pointer as the name suggests, but that's a name that
- gen_rtx_REG already takes care to keep unique. We modify
- return_address_pointer_rtx in ia64_expand_prologue to reference the
- final output regnum. */
-#define RETURN_ADDRESS_POINTER_REGNUM 329
-
/* Register numbers used for passing a function's static chain pointer. */
/* ??? The ABI sez the static chain should be passed as a normal parameter. */
#define STATIC_CHAIN_REGNUM 15
@@ -1205,7 +1210,6 @@ enum reg_class
{ARG_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}, \
- {RETURN_ADDRESS_POINTER_REGNUM, BR_REG (0)}, \
}
/* A C expression that returns nonzero if the compiler is allowed to try to
@@ -1285,6 +1289,13 @@ enum reg_class
#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \
ia64_function_arg_pass_by_reference (&CUM, MODE, TYPE, NAMED)
+/* Nonzero if we do not know how to pass TYPE solely in registers. */
+
+#define MUST_PASS_IN_STACK(MODE, TYPE) \
+ ((TYPE) != 0 \
+ && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \
+ || TREE_ADDRESSABLE (TYPE)))
+
/* A C type for declaring a variable that is used as the first argument of
`FUNCTION_ARG' and other related values. For some target machines, the type
`int' suffices and can hold the number of bytes of argument so far. */
@@ -1349,7 +1360,7 @@ do { \
On many machines, no registers can be used for this purpose since all
function arguments are pushed on the stack. */
#define FUNCTION_ARG_REGNO_P(REGNO) \
-(((REGNO) >= GR_ARG_FIRST && (REGNO) < (GR_ARG_FIRST + MAX_ARGUMENT_SLOTS)) \
+(((REGNO) >= AR_ARG_FIRST && (REGNO) < (AR_ARG_FIRST + MAX_ARGUMENT_SLOTS)) \
|| ((REGNO) >= FR_ARG_FIRST && (REGNO) < (FR_ARG_FIRST + MAX_ARGUMENT_SLOTS)))
/* Implement `va_arg'. */
@@ -1808,61 +1819,6 @@ do { \
#define ASM_APP_OFF "#NO_APP\n"
-/* Output of Data. */
-
-/* This is how to output an assembler line defining a `char' constant
- to an xdata segment. */
-
-#define ASM_OUTPUT_XDATA_CHAR(FILE, SECTION, VALUE) \
-do { \
- fprintf (FILE, "\t.xdata1\t\"%s\", ", SECTION); \
- output_addr_const (FILE, (VALUE)); \
- fprintf (FILE, "\n"); \
-} while (0)
-
-/* This is how to output an assembler line defining a `short' constant
- to an xdata segment. */
-
-#define ASM_OUTPUT_XDATA_SHORT(FILE, SECTION, VALUE) \
-do { \
- fprintf (FILE, "\t.xdata2\t\"%s\", ", SECTION); \
- output_addr_const (FILE, (VALUE)); \
- fprintf (FILE, "\n"); \
-} while (0)
-
-/* This is how to output an assembler line defining an `int' constant
- to an xdata segment. We also handle symbol output here. */
-
-/* ??? For ILP32, also need to handle function addresses here. */
-
-#define ASM_OUTPUT_XDATA_INT(FILE, SECTION, VALUE) \
-do { \
- fprintf (FILE, "\t.xdata4\t\"%s\", ", SECTION); \
- output_addr_const (FILE, (VALUE)); \
- fprintf (FILE, "\n"); \
-} while (0)
-
-/* This is how to output an assembler line defining a `long' constant
- to an xdata segment. We also handle symbol output here. */
-
-#define ASM_OUTPUT_XDATA_DOUBLE_INT(FILE, SECTION, VALUE) \
-do { \
- int need_closing_paren = 0; \
- fprintf (FILE, "\t.xdata8\t\"%s\", ", SECTION); \
- if (!(TARGET_NO_PIC || TARGET_AUTO_PIC) \
- && GET_CODE (VALUE) == SYMBOL_REF) \
- { \
- fprintf (FILE, SYMBOL_REF_FLAG (VALUE) ? "@fptr(" : "@segrel("); \
- need_closing_paren = 1; \
- } \
- output_addr_const (FILE, VALUE); \
- if (need_closing_paren) \
- fprintf (FILE, ")"); \
- fprintf (FILE, "\n"); \
-} while (0)
-
-
-
/* Output of Uninitialized Variables. */
/* This is all handled by svr4.h. */
@@ -1984,8 +1940,8 @@ do { \
"p60", "p61", "p62", "p63", \
/* Branch registers. */ \
"b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", \
- /* Frame pointer. Return address. */ \
- "sfp", "retaddr", "ar.ccv", "ar.unat", "ar.pfs", "ar.lc", "ar.ec", \
+ /* Frame pointer. Application registers. */ \
+ "sfp", "ar.ccv", "ar.unat", "ar.pfs", "ar.lc", "ar.ec", \
}
/* If defined, a C initializer for an array of structures containing a name and
@@ -2132,8 +2088,13 @@ do { \
/* ??? Depends on the pointer size. */
-#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \
- fprintf (STREAM, "\tdata8 @pcrel(.L%d)\n", VALUE)
+#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \
+ do { \
+ if (TARGET_ILP32) \
+ fprintf (STREAM, "\tdata4 @pcrel(.L%d)\n", VALUE); \
+ else \
+ fprintf (STREAM, "\tdata8 @pcrel(.L%d)\n", VALUE); \
+ } while (0)
/* This is how to output an element of a case-vector that is absolute.
(Ia64 does not use such vectors, but we must define this macro anyway.) */
@@ -2152,7 +2113,8 @@ do { \
true if the symbol may be affected by dynamic relocations. */
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
(((CODE) == 1 ? DW_EH_PE_textrel : DW_EH_PE_datarel) \
- | ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_udata8)
+ | ((GLOBAL) ? DW_EH_PE_indirect : 0) \
+ | (TARGET_ILP32 ? DW_EH_PE_udata4 : DW_EH_PE_udata8))
/* Handle special EH pointer encodings. Absolute, pc-relative, and
indirect are handled automatically. */
@@ -2322,7 +2284,7 @@ do { \
/* An alias for a machine mode name. This is the machine mode that elements of
a jump-table should have. */
-#define CASE_VECTOR_MODE Pmode
+#define CASE_VECTOR_MODE ptr_mode
/* Define as C expression which evaluates to nonzero if the tablejump
instruction expects the table to contain offsets from the address of the
@@ -2494,4 +2456,5 @@ enum fetchop_code {
#undef PROFILE_BEFORE_PROLOGUE
#define PROFILE_BEFORE_PROLOGUE 1
+#define FUNCTION_OK_FOR_SIBCALL(DECL) ia64_function_ok_for_sibcall (DECL)
/* End of ia64.h */
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index c2275494c25..2dfef5d730d 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -73,6 +73,7 @@
(UNSPEC_BUNDLE_SELECTOR 23)
(UNSPEC_ADDP4 24)
(UNSPEC_PROLOGUE_USE 25)
+ (UNSPEC_RET_ADDR 26)
])
(define_constants
@@ -83,6 +84,7 @@
(UNSPECV_SET_BSP 4)
(UNSPECV_PSAC_ALL 5) ; pred.safe_across_calls
(UNSPECV_PSAC_NORMAL 6)
+ (UNSPECV_SETJMP_RECEIVER 7)
])
;; ::::::::::::::::::::
@@ -145,6 +147,10 @@
(define_attr "predicable" "no,yes" (const_string "yes"))
+;; Empty. True iff this insn does not generate any code.
+
+(define_attr "empty" "no,yes" (const_string "no"))
+
;; ::::::::::::::::::::
;; ::
@@ -415,6 +421,25 @@
DONE;
})
+;; This is used as a placeholder for the return address during early
+;; compilation. We won't know where we've placed this until during
+;; reload, at which point it can wind up in b0, a general register,
+;; or memory. The only safe destination under these conditions is a
+;; general register.
+
+(define_insn_and_split "*movdi_ret_addr"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (unspec:DI [(const_int 0)] UNSPEC_RET_ADDR))]
+ ""
+ "#"
+ "reload_completed"
+ [(const_int 0)]
+{
+ ia64_split_return_addr_rtx (operands[0]);
+ DONE;
+}
+ [(set_attr "itanium_class" "ialu")])
+
(define_insn "*movdi_internal"
[(set (match_operand:DI 0 "destination_operand"
"=r,r,r,r, m, r,*f,*f,*f, Q, r,*b, r,*e, r,*d, r,*c")
@@ -506,22 +531,41 @@
(define_expand "load_symptr"
[(set (match_operand:DI 2 "register_operand" "")
- (plus:DI (match_dup 4) (match_operand:DI 1 "got_symbolic_operand" "")))
- (set (match_operand:DI 0 "register_operand" "") (match_dup 3))]
+ (plus:DI (high:DI (match_operand:DI 1 "got_symbolic_operand" ""))
+ (match_dup 3)))
+ (set (match_operand:DI 0 "register_operand" "")
+ (lo_sum:DI (match_dup 2) (match_dup 1)))]
""
{
- operands[3] = gen_rtx_MEM (DImode, operands[2]);
- operands[4] = pic_offset_table_rtx;
- RTX_UNCHANGING_P (operands[3]) = 1;
+ operands[3] = pic_offset_table_rtx;
})
-(define_insn "*load_symptr_internal1"
+(define_insn "*load_symptr_high"
[(set (match_operand:DI 0 "register_operand" "=r")
- (plus:DI (reg:DI 1) (match_operand 1 "got_symbolic_operand" "s")))]
+ (plus:DI (high:DI (match_operand 1 "got_symbolic_operand" "s"))
+ (match_operand:DI 2 "register_operand" "a")))]
""
- "addl %0 = @ltoff(%1), gp"
+{
+ if (HAVE_AS_LTOFFX_LDXMOV_RELOCS)
+ return "%,addl %0 = @ltoffx(%1), %2";
+ else
+ return "%,addl %0 = @ltoff(%1), %2";
+}
[(set_attr "itanium_class" "ialu")])
+(define_insn "*load_symptr_low"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (lo_sum:DI (match_operand:DI 1 "register_operand" "r")
+ (match_operand 2 "got_symbolic_operand" "s")))]
+ ""
+{
+ if (HAVE_AS_LTOFFX_LDXMOV_RELOCS)
+ return "%,ld8.mov %0 = [%1], %2";
+ else
+ return "%,ld8 %0 = [%1]";
+}
+ [(set_attr "itanium_class" "ld")])
+
(define_insn "load_ltoff_dtpmod"
[(set (match_operand:DI 0 "register_operand" "=r")
(plus:DI (reg:DI 1)
@@ -1034,7 +1078,7 @@
[(set (match_operand:DF 0 "register_operand" "=f")
(float:DF (match_operand:DI 1 "register_operand" "f")))]
"!INTEL_EXTENDED_IEEE_FORMAT"
- "fcvt.xf %0 = %1\;;;\;fnorm.d %0 = %0"
+ "fcvt.xf %0 = %1\;;;\;%,fnorm.d %0 = %0"
[(set_attr "itanium_class" "fcvtfx")])
;; ??? Suboptimal. This should be split somehow.
@@ -1042,7 +1086,7 @@
[(set (match_operand:SF 0 "register_operand" "=f")
(float:SF (match_operand:DI 1 "register_operand" "f")))]
"!INTEL_EXTENDED_IEEE_FORMAT"
- "fcvt.xf %0 = %1\;;;\;fnorm.s %0 = %0"
+ "fcvt.xf %0 = %1\;;;\;%,fnorm.s %0 = %0"
[(set_attr "itanium_class" "fcvtfx")])
(define_insn "fix_truncsfdi2"
@@ -4424,9 +4468,9 @@
"c,c,c,c,c,c,c,c,c,c,c,c,c,c,c")
(const_int 0)])
(match_operand:DI 2 "move_operand"
- "rim, *f, *b,*d*e,rim,rim, rim,*f,*b,*d*e,rO,*f,rOQ,rO, rK")
+ "rnm, *f, *b,*d*e,rnm,rnm, rnm,*f,*b,*d*e,rO,*f,rOQ,rO, rK")
(match_operand:DI 3 "move_operand"
- "rim,rim,rim, rim, *f, *b,*d*e,*f,*b,*d*e,rO,*f,rOQ,rO, rK")))]
+ "rnm,rnm,rnm, rnm, *f, *b,*d*e,*f,*b,*d*e,rO,*f,rOQ,rO, rK")))]
"ia64_move_ok (operands[0], operands[2])
&& ia64_move_ok (operands[0], operands[3])"
{ abort (); }
@@ -4530,9 +4574,9 @@
[(match_operand:BI 1 "register_operand" "c,c,c,c,c,c,c,c,c")
(const_int 0)])
(match_operand:SI 2 "move_operand"
- "0,0,0,rim*f,rO,rO,rim*f,rO,rO")
+ "0,0,0,rnm*f,rO,rO,rnm*f,rO,rO")
(match_operand:SI 3 "move_operand"
- "rim*f,rO,rO,0,0,0,rim*f,rO,rO")))]
+ "rnm*f,rO,rO,0,0,0,rnm*f,rO,rO")))]
"ia64_move_ok (operands[0], operands[2])
&& ia64_move_ok (operands[0], operands[3])"
{ abort (); }
@@ -4663,7 +4707,7 @@
(use (match_operand 3 "" ""))]
""
{
- ia64_expand_call (NULL_RTX, operands[0], operands[2], 0);
+ ia64_expand_call (NULL_RTX, operands[0], operands[2], false);
DONE;
})
@@ -4674,7 +4718,7 @@
(use (match_operand 3 "" ""))]
""
{
- ia64_expand_call (NULL_RTX, operands[0], operands[2], 1);
+ ia64_expand_call (NULL_RTX, operands[0], operands[2], true);
DONE;
})
@@ -4693,7 +4737,7 @@
(use (match_operand 4 "" ""))]
""
{
- ia64_expand_call (operands[0], operands[1], operands[3], 0);
+ ia64_expand_call (operands[0], operands[1], operands[3], false);
DONE;
})
@@ -4705,7 +4749,7 @@
(use (match_operand 4 "" ""))]
""
{
- ia64_expand_call (operands[0], operands[1], operands[3], 1);
+ ia64_expand_call (operands[0], operands[1], operands[3], true);
DONE;
})
@@ -4737,59 +4781,125 @@
DONE;
})
-(define_insn "call_nopic"
- [(call (mem:DI (match_operand:DI 0 "call_operand" "b,i"))
- (match_operand 1 "" ""))
- (clobber (match_operand:DI 2 "register_operand" "=b,b"))]
+(define_insn "call_nogp"
+ [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,i"))
+ (const_int 0))
+ (clobber (match_operand:DI 1 "register_operand" "=b,b"))]
""
- "br.call%+.many %2 = %0"
+ "br.call%+.many %1 = %0"
[(set_attr "itanium_class" "br,scall")])
-(define_insn "call_value_nopic"
+(define_insn "call_value_nogp"
[(set (match_operand 0 "" "")
- (call (mem:DI (match_operand:DI 1 "call_operand" "b,i"))
- (match_operand 2 "" "")))
- (clobber (match_operand:DI 3 "register_operand" "=b,b"))]
+ (call (mem:DI (match_operand:DI 1 "call_operand" "?b,i"))
+ (const_int 0)))
+ (clobber (match_operand:DI 2 "register_operand" "=b,b"))]
""
- "br.call%+.many %3 = %1"
+ "br.call%+.many %2 = %1"
[(set_attr "itanium_class" "br,scall")])
-(define_insn "sibcall_nopic"
- [(call (mem:DI (match_operand:DI 0 "call_operand" "b,i"))
- (match_operand 1 "" ""))
- (use (match_operand:DI 2 "register_operand" "=b,b"))
- (use (match_operand:DI 3 "ar_pfs_reg_operand" ""))]
+(define_insn "sibcall_nogp"
+ [(call (mem:DI (match_operand:DI 0 "call_operand" "?b,i"))
+ (const_int 0))]
""
"br%+.many %0"
[(set_attr "itanium_class" "br,scall")])
-(define_insn "call_pic"
- [(call (mem (match_operand 0 "call_operand" "b,i"))
- (match_operand 1 "" ""))
- (use (unspec [(reg:DI 1)] UNSPEC_PIC_CALL))
- (clobber (match_operand:DI 2 "register_operand" "=b,b"))]
+(define_insn "call_gp"
+ [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,i"))
+ (const_int 1))
+ (clobber (match_operand:DI 1 "register_operand" "=b,b"))
+ (clobber (match_scratch:DI 2 "=&r,X"))
+ (clobber (match_scratch:DI 3 "=b,X"))]
""
- "br.call%+.many %2 = %0"
+ "#"
[(set_attr "itanium_class" "br,scall")])
-(define_insn "call_value_pic"
+;; Irritatingly, we don't have access to INSN within the split body.
+;; See commentary in ia64_split_call as to why these aren't peep2.
+(define_split
+ [(call (mem (match_operand 0 "call_operand" ""))
+ (const_int 1))
+ (clobber (match_operand:DI 1 "register_operand" ""))
+ (clobber (match_scratch:DI 2 ""))
+ (clobber (match_scratch:DI 3 ""))]
+ "reload_completed && find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(const_int 0)]
+{
+ ia64_split_call (NULL_RTX, operands[0], operands[1], operands[2],
+ operands[3], true, false);
+ DONE;
+})
+
+(define_split
+ [(call (mem (match_operand 0 "call_operand" ""))
+ (const_int 1))
+ (clobber (match_operand:DI 1 "register_operand" ""))
+ (clobber (match_scratch:DI 2 ""))
+ (clobber (match_scratch:DI 3 ""))]
+ "reload_completed"
+ [(const_int 0)]
+{
+ ia64_split_call (NULL_RTX, operands[0], operands[1], operands[2],
+ operands[3], false, false);
+ DONE;
+})
+
+(define_insn "call_value_gp"
[(set (match_operand 0 "" "")
- (call (mem:DI (match_operand:DI 1 "call_operand" "b,i"))
- (match_operand 2 "" "")))
- (use (unspec [(reg:DI 1)] UNSPEC_PIC_CALL))
- (clobber (match_operand:DI 3 "register_operand" "=b,b"))]
+ (call (mem:DI (match_operand:DI 1 "call_operand" "?r,i"))
+ (const_int 1)))
+ (clobber (match_operand:DI 2 "register_operand" "=b,b"))
+ (clobber (match_scratch:DI 3 "=&r,X"))
+ (clobber (match_scratch:DI 4 "=b,X"))]
""
- "br.call%+.many %3 = %1"
+ "#"
[(set_attr "itanium_class" "br,scall")])
-(define_insn "sibcall_pic"
- [(call (mem:DI (match_operand:DI 0 "call_operand" "bi"))
- (match_operand 1 "" ""))
- (use (unspec [(reg:DI 1)] UNSPEC_PIC_CALL))
- (use (match_operand:DI 2 "register_operand" "=b"))
- (use (match_operand:DI 3 "ar_pfs_reg_operand" ""))]
+(define_split
+ [(set (match_operand 0 "" "")
+ (call (mem:DI (match_operand:DI 1 "call_operand" ""))
+ (const_int 1)))
+ (clobber (match_operand:DI 2 "register_operand" ""))
+ (clobber (match_scratch:DI 3 ""))
+ (clobber (match_scratch:DI 4 ""))]
+ "reload_completed && find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(const_int 0)]
+{
+ ia64_split_call (operands[0], operands[1], operands[2], operands[3],
+ operands[4], true, false);
+ DONE;
+})
+
+(define_split
+ [(set (match_operand 0 "" "")
+ (call (mem:DI (match_operand:DI 1 "call_operand" ""))
+ (const_int 1)))
+ (clobber (match_operand:DI 2 "register_operand" ""))
+ (clobber (match_scratch:DI 3 ""))
+ (clobber (match_scratch:DI 4 ""))]
+ "reload_completed"
+ [(const_int 0)]
+{
+ ia64_split_call (operands[0], operands[1], operands[2], operands[3],
+ operands[4], false, false);
+ DONE;
+})
+
+(define_insn_and_split "sibcall_gp"
+ [(call (mem:DI (match_operand:DI 0 "call_operand" "?r,i"))
+ (const_int 1))
+ (clobber (match_scratch:DI 1 "=&r,X"))
+ (clobber (match_scratch:DI 2 "=b,X"))]
""
- "br%+.many %0"
+ "#"
+ "reload_completed"
+ [(const_int 0)]
+{
+ ia64_split_call (NULL_RTX, operands[0], NULL_RTX, operands[1],
+ operands[2], true, true);
+ DONE;
+}
[(set_attr "itanium_class" "br")])
(define_insn "return_internal"
@@ -4956,7 +5066,8 @@
""
""
[(set_attr "itanium_class" "ignore")
- (set_attr "predicable" "no")])
+ (set_attr "predicable" "no")
+ (set_attr "empty" "yes")])
;; Allocate a new register frame.
@@ -5040,7 +5151,10 @@
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] UNSPEC_BSP_VALUE))]
""
- ";;\;mov %0 = ar.bsp"
+ "*
+{
+ return \";;\;%,mov %0 = ar.bsp\";
+}"
[(set_attr "itanium_class" "frar_i")])
(define_insn "set_bsp"
@@ -5073,7 +5187,8 @@
[(unspec [(const_int 0)] UNSPEC_FLUSHRS)]
""
";;\;flushrs\;;;"
- [(set_attr "itanium_class" "rse_m")])
+ [(set_attr "itanium_class" "rse_m")
+ (set_attr "predicable" "no")])
;; ::::::::::::::::::::
;; ::
@@ -5119,7 +5234,8 @@
[(const_int 5)]
""
""
- [(set_attr "itanium_class" "nop_x")])
+ [(set_attr "itanium_class" "nop_x")
+ (set_attr "empty" "yes")])
(define_insn "bundle_selector"
[(unspec [(match_operand 0 "const_int_operand" "")] UNSPEC_BUNDLE_SELECTOR)]
@@ -5143,7 +5259,8 @@
""
";;"
[(set_attr "itanium_class" "stop_bit")
- (set_attr "predicable" "no")])
+ (set_attr "predicable" "no")
+ (set_attr "empty" "yes")])
(define_expand "trap"
[(trap_if (const_int 1) (const_int 0))]
@@ -5190,16 +5307,16 @@
{
static const char * const alt[2][4] = {
{
- "lfetch.nta [%0]",
- "lfetch.nt1 [%0]",
- "lfetch.nt2 [%0]",
- "lfetch [%0]"
+ "%,lfetch.nta [%0]",
+ "%,lfetch.nt1 [%0]",
+ "%,lfetch.nt2 [%0]",
+ "%,lfetch [%0]"
},
{
- "lfetch.excl.nta [%0]",
- "lfetch.excl.nt1 [%0]",
- "lfetch.excl.nt2 [%0]",
- "lfetch.excl [%0]"
+ "%,lfetch.excl.nta [%0]",
+ "%,lfetch.excl.nt1 [%0]",
+ "%,lfetch.excl.nt2 [%0]",
+ "%,lfetch.excl [%0]"
}
};
int i = (INTVAL (operands[1]));
@@ -5243,21 +5360,14 @@
DONE;
})
-;; The rest of the setjmp processing happens with the nonlocal_goto expander.
-;; ??? This is not tested.
-(define_expand "builtin_setjmp_setup"
- [(use (match_operand:DI 0 "" ""))]
- ""
-{
- emit_move_insn (ia64_gp_save_reg (0), gen_rtx_REG (DImode, GR_REG (1)));
- DONE;
-})
-
-(define_expand "builtin_setjmp_receiver"
- [(use (match_operand:DI 0 "" ""))]
+(define_insn_and_split "builtin_setjmp_receiver"
+ [(unspec_volatile [(match_operand:DI 0 "" "")] UNSPECV_SETJMP_RECEIVER)]
""
+ "#"
+ "reload_completed"
+ [(const_int 0)]
{
- emit_move_insn (gen_rtx_REG (DImode, GR_REG (1)), ia64_gp_save_reg (0));
+ ia64_reload_gp ();
DONE;
})
@@ -5348,7 +5458,7 @@
(set (match_operand:SI 1 "not_postinc_memory_operand" "+S")
(unspec:SI [(match_dup 1)
(match_operand:SI 2 "gr_register_operand" "r")
- (match_operand:SI 3 "ar_ccv_reg_operand" "")]
+ (match_operand:DI 3 "ar_ccv_reg_operand" "")]
UNSPEC_CMPXCHG_ACQ))]
""
"cmpxchg4.acq %0 = %1, %2, %3"
@@ -5438,7 +5548,7 @@
[(plus:SI (match_operand:SI 1 "basereg_operand" "r")
(match_operand:SI 2 "gr_reg_or_14bit_operand" "rI"))]
UNSPEC_ADDP4))]
- ""
+ "addp4_optimize_ok (operands[1], operands[2])"
"addp4 %0 = %2, %1"
[(set_attr "itanium_class" "ialu")])
@@ -5448,6 +5558,6 @@
[(plus:SI (match_operand:SI 1 "gr_register_operand" "r")
(match_operand:SI 2 "basereg_operand" "r"))]
UNSPEC_ADDP4))]
- ""
+ "addp4_optimize_ok (operands[1], operands[2])"
"addp4 %0 = %1, %2"
[(set_attr "itanium_class" "ialu")])
diff --git a/gcc/config/ia64/ia64intrin.h b/gcc/config/ia64/ia64intrin.h
index c7bbd33e133..262dc20e4d0 100644
--- a/gcc/config/ia64/ia64intrin.h
+++ b/gcc/config/ia64/ia64intrin.h
@@ -19,13 +19,11 @@ extern long __sync_val_compare_and_swap_di (long *, long, long);
__sync_val_compare_and_swap_di((long *)(PTR),(long)(OLD),(long)(NEW)))
extern int __sync_bool_compare_and_swap_si (int *, int, int);
-extern long __sync_bool_compare_and_swap_di (long *, long, long);
+extern int __sync_bool_compare_and_swap_di (long *, long, long);
#define __sync_bool_compare_and_swap(PTR, OLD, NEW) \
((sizeof (*(PTR)) == sizeof(int)) \
- ? (__typeof__(*(PTR))) \
- __sync_bool_compare_and_swap_si((int *)(PTR),(int)(OLD),(int)(NEW)) \
- : (__typeof__(*(PTR))) \
- __sync_bool_compare_and_swap_di((long *)(PTR),(long)(OLD),(long)(NEW)))
+ ? __sync_bool_compare_and_swap_si((int *)(PTR),(int)(OLD),(int)(NEW)) \
+ : __sync_bool_compare_and_swap_di((long *)(PTR),(long)(OLD),(long)(NEW)))
extern void __sync_lock_release_si (int *);
extern void __sync_lock_release_di (long *);
diff --git a/gcc/config/ia64/libgcc-ia64.ver b/gcc/config/ia64/libgcc-ia64.ver
index 2ffb6936864..cd769907df0 100644
--- a/gcc/config/ia64/libgcc-ia64.ver
+++ b/gcc/config/ia64/libgcc-ia64.ver
@@ -7,3 +7,6 @@ GCC_3.0 {
__ia64_trampoline
__ia64_backtrace
}
+GCC_3.3.2 {
+ _Unwind_GetBSP
+}
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
index e1d60f7d8c4..fe5b55896d3 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -63,7 +63,7 @@ do { \
#include <sys/ucontext.h>
#define IA64_GATE_AREA_START 0xa000000000000100LL
-#define IA64_GATE_AREA_END 0xa000000000020000LL
+#define IA64_GATE_AREA_END 0xa000000000030000LL
#define MD_FALLBACK_FRAME_STATE_FOR(CONTEXT, FS, SUCCESS) \
if ((CONTEXT)->rp >= IA64_GATE_AREA_START \
@@ -90,10 +90,13 @@ do { \
(CONTEXT)->ireg[i_ - 2].loc = &sc_->sc_gr[i_]; \
} \
\
+ (CONTEXT)->fpsr_loc = &(sc_->sc_ar_fpsr); \
(CONTEXT)->pfs_loc = &(sc_->sc_ar_pfs); \
(CONTEXT)->lc_loc = &(sc_->sc_ar_lc); \
(CONTEXT)->unat_loc = &(sc_->sc_ar_unat); \
(CONTEXT)->br_loc[0] = &(sc_->sc_br[0]); \
+ (CONTEXT)->br_loc[6] = &(sc_->sc_br[6]); \
+ (CONTEXT)->br_loc[7] = &(sc_->sc_br[7]); \
(CONTEXT)->bsp = sc_->sc_ar_bsp; \
(CONTEXT)->pr = sc_->sc_pr; \
(CONTEXT)->psp = sc_->sc_gr[12]; \
@@ -102,11 +105,10 @@ do { \
other than what we adjust for below. */ \
(FS) -> no_reg_stack_frame = 1; \
\
- /* Don't touch the branch registers o.t. b0. The kernel doesn't \
- pass the preserved branch registers in the sigcontext but \
- leaves them intact, so there's no need to do anything \
- with them here. */ \
- \
+ /* Don't touch the branch registers o.t. b0, b6 and b7. \
+ The kernel doesn't pass the preserved branch registers \
+ in the sigcontext but leaves them intact, so there's no \
+ need to do anything with them here. */ \
{ \
unsigned long sof = sc_->sc_cfm & 0x7f; \
(CONTEXT)->bsp = (unsigned long) \
@@ -120,4 +122,58 @@ do { \
\
goto SUCCESS; \
}
+
+#define MD_HANDLE_UNWABI(CONTEXT, FS) \
+ if ((FS)->unwabi == ((3 << 8) | 's') \
+ || (FS)->unwabi == ((0 << 8) | 's')) \
+ { \
+ struct sigframe { \
+ char scratch[16]; \
+ unsigned long sig_number; \
+ struct siginfo *info; \
+ struct sigcontext *sc; \
+ } *frame_ = (struct sigframe *)(CONTEXT)->psp; \
+ struct sigcontext *sc_ = frame_->sc; \
+ \
+ /* Restore scratch registers in case the unwinder needs to \
+ refer to a value stored in one of them. */ \
+ { \
+ int i_; \
+ \
+ for (i_ = 2; i_ < 4; i_++) \
+ (CONTEXT)->ireg[i_ - 2].loc = &sc_->sc_gr[i_]; \
+ for (i_ = 8; i_ < 12; i_++) \
+ (CONTEXT)->ireg[i_ - 2].loc = &sc_->sc_gr[i_]; \
+ for (i_ = 14; i_ < 32; i_++) \
+ (CONTEXT)->ireg[i_ - 2].loc = &sc_->sc_gr[i_]; \
+ } \
+ \
+ (CONTEXT)->pfs_loc = &(sc_->sc_ar_pfs); \
+ (CONTEXT)->lc_loc = &(sc_->sc_ar_lc); \
+ (CONTEXT)->unat_loc = &(sc_->sc_ar_unat); \
+ (CONTEXT)->br_loc[0] = &(sc_->sc_br[0]); \
+ (CONTEXT)->br_loc[6] = &(sc_->sc_br[6]); \
+ (CONTEXT)->br_loc[7] = &(sc_->sc_br[7]); \
+ (CONTEXT)->bsp = sc_->sc_ar_bsp; \
+ (CONTEXT)->pr = sc_->sc_pr; \
+ (CONTEXT)->gp = sc_->sc_gr[1]; \
+ /* Signal frame doesn't have an associated reg. stack frame \
+ other than what we adjust for below. */ \
+ (FS) -> no_reg_stack_frame = 1; \
+ \
+ /* Don't touch the branch registers o.t. b0, b6 and b7. \
+ The kernel doesn't pass the preserved branch registers \
+ in the sigcontext but leaves them intact, so there's no \
+ need to do anything with them here. */ \
+ { \
+ unsigned long sof = sc_->sc_cfm & 0x7f; \
+ (CONTEXT)->bsp = (unsigned long) \
+ ia64_rse_skip_regs ((unsigned long *)(sc_->sc_ar_bsp), -sof); \
+ } \
+ \
+ /* pfs_loc already set above. Without this pfs_loc would point \
+ incorrectly to sc_cfm instead of sc_ar_pfs. */ \
+ (FS)->curr.reg[UNW_REG_PFS].where = UNW_WHERE_NONE; \
+ }
+
#endif /* IN_LIBGCC2 */
diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux
index d8201f9d5e1..7b42fe519a2 100644
--- a/gcc/config/ia64/t-hpux
+++ b/gcc/config/ia64/t-hpux
@@ -40,9 +40,9 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
$(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
- rm -f $$(slibdir)/@shlib_base_name@.so; \
- $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so; \
- chmod +x $$(slibdir)/@shlib_base_name@.so
+SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so.0; \
+ rm -f $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so; \
+ $(LN_S) @shlib_base_name@.so.0 $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so; \
+ chmod +x $$(DESTDIR)$$(slibdir)/@shlib_base_name@.so
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64
index 0cfd9483879..7c63b31e628 100644
--- a/gcc/config/ia64/t-ia64
+++ b/gcc/config/ia64/t-ia64
@@ -40,7 +40,8 @@ crtfastmath.o: $(srcdir)/config/ia64/crtfastmath.c $(GCC_PASSES)
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtfastmath.o \
$(srcdir)/config/ia64/crtfastmath.c
-LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c
+LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \
+ $(srcdir)/unwind-c.c
ia64-c.o: $(srcdir)/config/ia64/ia64-c.c $(CONFIG_H) $(SYSTEM_H) \
$(TREE_H) $(CPPLIB_H) $(C_COMMON_H) c-pragma.h toplev.h
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index b3ba9333bcc..e8e2fc05959 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -155,6 +155,7 @@ typedef struct unw_state_record
unsigned char gr_save_loc; /* next general register to use for saving */
unsigned char return_link_reg; /* branch register for return link */
+ unsigned short unwabi;
struct unw_labeled_state *labeled_states; /* list of all labeled states */
struct unw_reg_state curr; /* current state */
@@ -219,7 +220,7 @@ struct _Unwind_Context
} nat;
} ireg[32 - 2]; /* Indexed by <register number> - 2 */
- unsigned long *br_loc[7];
+ unsigned long *br_loc[8];
void *fr_loc[32 - 2];
/* ??? We initially point pri_unat_loc here. The entire NAT bit
@@ -619,11 +620,11 @@ desc_prologue (int body, unw_word rlen, unsigned char mask,
*/
static inline void
-desc_abi (unsigned char abi __attribute__((unused)),
- unsigned char context __attribute__((unused)),
- struct unw_state_record *sr __attribute__((unused)))
+desc_abi (unsigned char abi,
+ unsigned char context,
+ struct unw_state_record *sr)
{
- /* Anything to do? */
+ sr->unwabi = (abi << 8) | context;
}
static inline void
@@ -1645,7 +1646,32 @@ _Unwind_GetRegionStart (struct _Unwind_Context *context)
void *
_Unwind_FindEnclosingFunction (void *pc)
{
- return NULL;
+ struct unw_table_entry *ent;
+ unsigned long segment_base, gp;
+
+ ent = _Unwind_FindTableEntry (pc, &segment_base, &gp);
+ if (ent == NULL)
+ return NULL;
+ else
+ return (void *)(segment_base + ent->start_offset);
+}
+
+/* Get the value of the CFA as saved in CONTEXT. In GCC/Dwarf2 parlance,
+ the CFA is the value of the stack pointer on entry; In IA-64 unwind
+ parlance, this is the PSP. */
+
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *context)
+{
+ return (_Unwind_Ptr) context->psp;
+}
+
+/* Get the value of the Backing Store Pointer as saved in CONTEXT. */
+
+_Unwind_Word
+_Unwind_GetBSP (struct _Unwind_Context *context)
+{
+ return (_Unwind_Ptr) context->bsp;
}
@@ -1769,6 +1795,11 @@ uw_update_reg_address (struct _Unwind_Context *context,
addr = ia64_rse_skip_regs ((unsigned long *) context->bsp, rval - 32);
else if (rval >= 2)
addr = context->ireg[rval - 2].loc;
+ else if (rval == 0)
+ {
+ static const unsigned long dummy;
+ addr = (void *) &dummy;
+ }
else
abort ();
break;
@@ -1782,9 +1813,9 @@ uw_update_reg_address (struct _Unwind_Context *context,
case UNW_WHERE_BR:
/* Note that while RVAL can only be 1-5 from normal descriptors,
- we can want to look at B0 due to having manually unwound a
+ we can want to look at B0, B6 and B7 due to having manually unwound a
signal frame. */
- if (rval <= 5)
+ if (rval < 8)
addr = context->br_loc[rval];
else
abort ();
@@ -1820,6 +1851,11 @@ uw_update_reg_address (struct _Unwind_Context *context,
context->ireg[regno - UNW_REG_R2].nat
= context->ireg[rval - 2].nat;
}
+ else if (rval == 0)
+ {
+ context->ireg[regno - UNW_REG_R2].nat.type = UNW_NAT_NONE;
+ context->ireg[regno - UNW_REG_R2].nat.off = 0;
+ }
else
abort ();
break;
@@ -1893,6 +1929,10 @@ uw_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs)
{
long i;
+#ifdef MD_HANDLE_UNWABI
+ MD_HANDLE_UNWABI (context, fs);
+#endif
+
context->sp = context->psp;
/* First, set PSP. Subsequent instructions may depend on this value. */
@@ -2044,22 +2084,22 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
";; \n\t"
"(p6) ld8.fill r4 = [%1] \n\t"
"(p7) ld8.fill r5 = [r20] \n\t"
- "add r21 = uc_br_loc + 8, %0 \n\t"
+ "add r21 = uc_br_loc + 16, %0 \n\t"
"adds %1 = 16, %1 \n\t"
"adds r20 = 16, r20 \n\t"
";; \n\t"
"(p8) ld8.fill r6 = [%1] \n\t"
"(p9) ld8.fill r7 = [r20] \n\t"
- "add r20 = uc_br_loc, %0 \n\t"
+ "add r20 = uc_br_loc + 8, %0 \n\t"
";; \n\t"
/* Load up call-saved branch registers. */
"ld8 r22 = [r20], 16 \n\t"
"ld8 r23 = [r21], 16 \n\t"
";; \n\t"
"ld8 r24 = [r20], 16 \n\t"
- "ld8 r25 = [r21], uc_fr_loc - (uc_br_loc + 24)\n\t"
+ "ld8 r25 = [r21], uc_fr_loc - (uc_br_loc + 32)\n\t"
";; \n\t"
- "ld8 r26 = [r20], uc_fr_loc + 8 - (uc_br_loc + 32)\n\t"
+ "ld8 r26 = [r20], uc_fr_loc + 8 - (uc_br_loc + 40)\n\t"
"ld8 r27 = [r21], 24 \n\t"
"cmp.ne p6, p0 = r0, r22 \n\t"
";; \n\t"
@@ -2136,6 +2176,8 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
"(p6) ldf.fill f22 = [r28] \n\t"
"cmp.ne p7, p0 = r0, r29 \n\t"
";; \n\t"
+ "ld8 r27 = [r20], 8 \n\t"
+ ";; \n\t"
"ld8 r28 = [r20], 8 \n\t"
"(p7) ldf.fill f23 = [r29] \n\t"
"cmp.ne p6, p0 = r0, r22 \n\t"
@@ -2207,7 +2249,7 @@ uw_install_context (struct _Unwind_Context *current __attribute__((unused)),
"(p9) mov.i ar.lc = r29 \n\t"
";; \n\t"
"mov.m r25 = ar.rsc \n\t"
- "(p6) mov.i ar.fpsr = r30 \n\t"
+ "(p6) mov.m ar.fpsr = r30 \n\t"
";; \n\t"
"and r25 = 0x1c, r25 \n\t"
"mov b0 = r26 \n\t"
diff --git a/gcc/config/interix.h b/gcc/config/interix.h
index 8d9f58f8b5b..d04e5477dd7 100644
--- a/gcc/config/interix.h
+++ b/gcc/config/interix.h
@@ -70,19 +70,6 @@ for windows/multi thread */
&& strcmp (STR, "Tbss"))
-#if 0
-/* don't do this until we can sort out the default path issues. MK */
-#undef STANDARD_EXEC_PREFIX
-#define STANDARD_EXEC_PREFIX ""
-
-#undef STANDARD_STARTFILE_PREFIX
-#define STANDARD_STARTFILE_PREFIX ""
-
-#undef TOOLDIR_BASE_PREFIX
-#define TOOLDIR_BASE_PREFIX ""
-
-#endif /* 0 */
-
#define STDC_0_IN_SYSTEM_HEADERS 1
#define HANDLE_SYSV_PRAGMA 1
diff --git a/gcc/config/ip2k/ip2k.c b/gcc/config/ip2k/ip2k.c
index c0a643ae1d1..fa543205fc9 100644
--- a/gcc/config/ip2k/ip2k.c
+++ b/gcc/config/ip2k/ip2k.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on Ubicom IP2022
Communications Controller.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Red Hat, Inc and Ubicom, Inc.
This file is part of GNU CC.
@@ -72,6 +72,11 @@ static void mdr_try_wreg_elim PARAMS ((rtx));
static int ip2k_check_can_adjust_stack_ref PARAMS ((rtx, int));
static void ip2k_adjust_stack_ref PARAMS ((rtx *, int));
static int ip2k_xexp_not_uses_reg_for_mem PARAMS ((rtx, unsigned int));
+static tree ip2k_handle_progmem_attribute PARAMS ((tree *, tree, tree, int,
+ bool *));
+static tree ip2k_handle_fndecl_attribute PARAMS ((tree *, tree, tree, int,
+ bool *));
+const struct attribute_spec ip2k_attribute_table[];
/* Initialize the GCC target structure. */
@@ -90,6 +95,9 @@ static int ip2k_xexp_not_uses_reg_for_mem PARAMS ((rtx, unsigned int));
#undef TARGET_ENCODE_SECTION_INFO
#define TARGET_ENCODE_SECTION_INFO encode_section_info
+#undef TARGET_ATTRIBUTE_TABLE
+#define TARGET_ATTRIBUTE_TABLE ip2k_attribute_table
+
struct gcc_target targetm = TARGET_INITIALIZER;
/* Commands in the functions prologues in the compiled file. */
@@ -3143,51 +3151,82 @@ class_likely_spilled_p(c)
|| c == PTR_REGS);
}
-/* Only `progmem' attribute valid for type. */
+/* Valid attributes:
+ progmem - put data to program memory;
+ naked - don't generate function prologue/epilogue and `ret' command.
-int
-valid_machine_type_attribute(type, attributes, identifier, args)
- tree type ATTRIBUTE_UNUSED;
- tree attributes ATTRIBUTE_UNUSED;
- tree identifier;
- tree args ATTRIBUTE_UNUSED;
-{
- return is_attribute_p ("progmem", identifier);
-}
+ Only `progmem' attribute valid for type. */
-/* If IDENTIFIER with arguments ARGS is a valid machine specific
- attribute for DECL return 1.
- Valid attributes:
- progmem - put data to program memory;
- naked - don't generate function prologue/epilogue and `ret' command. */
+const struct attribute_spec ip2k_attribute_table[] =
+{
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
+ { "progmem", 0, 0, false, false, false, ip2k_handle_progmem_attribute },
+ { "naked", 0, 0, true, false, false, ip2k_handle_fndecl_attribute },
+ { NULL, 0, 0, false, false, false, NULL }
+};
-int
-valid_machine_decl_attribute (decl, attributes, attr, args)
- tree decl;
- tree attributes ATTRIBUTE_UNUSED;
- tree attr;
+/* Handle a "progmem" attribute; arguments as in
+ struct attribute_spec.handler. */
+static tree
+ip2k_handle_progmem_attribute (node, name, args, flags, no_add_attrs)
+ tree *node;
+ tree name;
tree args ATTRIBUTE_UNUSED;
+ int flags ATTRIBUTE_UNUSED;
+ bool *no_add_attrs;
{
- if (is_attribute_p ("naked", attr))
- return TREE_CODE (decl) == FUNCTION_DECL;
-
- if (is_attribute_p ("progmem", attr)
- && (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
+ if (DECL_P (*node))
{
- /* Data stored in program RAM or FLASH must be word aligned or
- it won't be directly addressable. */
- if (DECL_ALIGN (decl) < FUNCTION_BOUNDARY)
- DECL_ALIGN (decl) = FUNCTION_BOUNDARY;
+ if (TREE_CODE (*node) == TYPE_DECL)
+ {
+ /* This is really a decl attribute, not a type attribute,
+ but try to handle it for GCC 3.0 backwards compatibility. */
+
+ tree type = TREE_TYPE (*node);
+ tree attr = tree_cons (name, args, TYPE_ATTRIBUTES (type));
+ tree newtype = build_type_attribute_variant (type, attr);
- if (DECL_INITIAL (decl) == NULL_TREE)
+ TYPE_MAIN_VARIANT (newtype) = TYPE_MAIN_VARIANT (type);
+ TREE_TYPE (*node) = newtype;
+ *no_add_attrs = true;
+ }
+ else if (TREE_STATIC (*node) || DECL_EXTERNAL (*node))
{
- warning ("Only initialized variables can be placed into "
- "program memory area.");
- return 0;
+ if (DECL_INITIAL (*node) == NULL_TREE && !DECL_EXTERNAL (*node))
+ {
+ warning ("only initialized variables can be placed into "
+ "program memory area");
+ *no_add_attrs = true;
+ }
+ }
+ else
+ {
+ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
+ *no_add_attrs = true;
}
- return 1;
}
- return 0;
+
+ return NULL_TREE;
+}
+
+/* Handle an attribute requiring a FUNCTION_DECL; arguments as in
+ struct attribute_spec.handler. */
+static tree
+ip2k_handle_fndecl_attribute (node, name, args, flags, no_add_attrs)
+ tree *node;
+ tree name;
+ tree args ATTRIBUTE_UNUSED;
+ int flags ATTRIBUTE_UNUSED;
+ bool *no_add_attrs;
+{
+ if (TREE_CODE (*node) != FUNCTION_DECL)
+ {
+ warning ("`%s' attribute only applies to functions",
+ IDENTIFIER_POINTER (name));
+ *no_add_attrs = true;
+ }
+
+ return NULL_TREE;
}
/* Encode section information about tree DECL. */
diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h
index 00be9c4408d..af148904dd9 100644
--- a/gcc/config/ip2k/ip2k.h
+++ b/gcc/config/ip2k/ip2k.h
@@ -1,7 +1,7 @@
/* Definitions of target machine for GNU compiler,
For Ubicom IP2022 Communications Controller
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Red Hat, Inc and Ubicom, Inc.
This file is part of GNU CC.
@@ -2349,18 +2349,6 @@ do { \
of arguments that the function accepts. Some people think a larger
threshold should be used on RISC machines. */
-#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
- valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
-/* If defined, a C expression whose value is nonzero if IDENTIFIER
- with arguments ARGS is a valid machine specific attribute for DECL.
- The attributes in ATTRIBUTES have previously been assigned to DECL. */
-
-#define VALID_MACHINE_TYPE_ATTRIBUTE(TYPE, ATTRIBUTES, IDENTIFIER, ARGS) \
- valid_machine_type_attribute(TYPE, ATTRIBUTES, IDENTIFIER, ARGS)
-/* If defined, a C expression whose value is nonzero if IDENTIFIER
- with arguments ARGS is a valid machine specific attribute for TYPE.
- The attributes in ATTRIBUTES have previously been assigned to TYPE. */
-
#define DOLLARS_IN_IDENTIFIERS 0
/* Define this macro to control use of the character `$' in identifier
names. 0 means `$' is not allowed by default; 1 means it is
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
index 2b1e50f3bde..297fa92f746 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -108,5 +108,10 @@ Boston, MA 02111-1307, USA. */
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
/* Define this so we can compile MS code for use with WINE. */
#define HANDLE_PRAGMA_PACK_PUSH_POP
+
+#define TARGET_HAS_F_SETLKW
diff --git a/gcc/config/m32r/m32r-protos.h b/gcc/config/m32r/m32r-protos.h
index 1a73aa014b4..cfcbda4c945 100644
--- a/gcc/config/m32r/m32r-protos.h
+++ b/gcc/config/m32r/m32r-protos.h
@@ -1,20 +1,20 @@
/* Prototypes for m32r.c functions used in the md file & elsewhere.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-This file is part of GNU CC.
+This file is part of GCC.
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
+along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -83,6 +83,7 @@ extern int large_insn_p PARAMS ((rtx, Mmode));
extern int conditional_move_operand PARAMS ((rtx, Mmode));
extern int carry_compare_operand PARAMS ((rtx, Mmode));
extern int m32r_block_immediate_operand PARAMS ((rtx, Mmode));
+extern int m32r_block_small_immediate_operand PARAMS ((rtx, Mmode));
extern int extend_operand PARAMS ((rtx, Mmode));
extern int reg_or_eq_int16_operand PARAMS ((rtx, Mmode));
extern int int8_operand PARAMS ((rtx, Mmode));
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 5903277c8c2..76d6210c960 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -1,21 +1,21 @@
/* Subroutines used for code generation on the Mitsubishi M32R cpu.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
-This file is part of GNU CC.
+This file is part of GCC.
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
+along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -2248,7 +2248,7 @@ m32r_print_operand (file, x, code)
switch (code)
{
/* The 's' and 'p' codes are used by output_block_move() to
- indicate post-increment 's'tores and 'p're-increment loads. */
+ indicate pre-increment 's'tores and 'p'ost-increment loads. */
case 's':
if (GET_CODE (x) == REG)
fprintf (file, "@+%s", reg_names [REGNO (x)]);
@@ -2833,7 +2833,21 @@ m32r_expand_block_move (operands)
}
if (leftover)
- emit_insn (gen_movstrsi_internal (dst_reg, src_reg, GEN_INT (leftover)));
+ {
+ HOST_WIDE_INT bytes = leftover;
+
+ leftover = bytes % 4;
+ bytes -= leftover;
+
+ if (bytes)
+ {
+ emit_insn (gen_movstrsi_internal (dst_reg, src_reg, GEN_INT (bytes)));
+ emit_insn (gen_addsi3 (dst_reg, dst_reg, GEN_INT (4)));
+ }
+
+ if (leftover)
+ emit_insn (gen_movstrsi_small_internal (dst_reg, src_reg, GEN_INT (leftover)));
+ }
}
@@ -2963,6 +2977,7 @@ m32r_output_block_move (insn, operands)
/* Return true if op is an integer constant, less than or equal to
MAX_MOVE_BYTES. */
+
int
m32r_block_immediate_operand (op, mode)
rtx op;
@@ -2975,3 +2990,16 @@ m32r_block_immediate_operand (op, mode)
return 1;
}
+
+int
+m32r_block_small_immediate_operand (op, mode)
+ rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ if (GET_CODE (op) != CONST_INT
+ || INTVAL (op) > 4
+ || INTVAL (op) <= 0)
+ return 0;
+
+ return 1;
+}
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index f5513b8449f..c5cd6b0dfc6 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -1,21 +1,21 @@
/* Definitions of target machine for GNU compiler, Mitsubishi M32R cpu.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
-This file is part of GNU CC.
+This file is part of GCC.
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
+along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -1970,6 +1970,7 @@ enum m32r_function_type
{ "extend_operand", { REG, SUBREG, MEM }}, \
{ "small_insn_p", { INSN, CALL_INSN, JUMP_INSN }}, \
{ "m32r_block_immediate_operand",{ CONST_INT }}, \
+{ "m32r_block_small_immediate_operand",{ CONST_INT }}, \
{ "large_insn_p", { INSN, CALL_INSN, JUMP_INSN }}, \
{ "seth_add3_operand", { SYMBOL_REF, LABEL_REF, CONST }},
diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md
index 83976a8737d..7d565bfebac 100644
--- a/gcc/config/m32r/m32r.md
+++ b/gcc/config/m32r/m32r.md
@@ -1,20 +1,20 @@
;; Machine description of the Mitsubishi M32R cpu for GNU C compiler
-;; Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2003 Free Software Foundation, Inc.
-;; This file is part of GNU CC.
+;; This file is part of GCC.
-;; GNU CC is free software; you can redistribute it and/or modify
+;; GCC is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
-;; GNU CC is distributed in the hope that it will be useful,
+;; GCC is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU CC; see the file COPYING. If not, write to
+;; along with GCC; see the file COPYING. If not, write to
;; the Free Software Foundation, 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
@@ -1238,6 +1238,16 @@
[(set_attr "type" "int2,int4")
(set_attr "length" "2,4")])
+(define_insn "movstrsi_small_internal"
+ [(set (mem:BLK (match_operand:SI 0 "register_operand" "r")) ;; destination
+ (mem:BLK (match_operand:SI 1 "register_operand" "r"))) ;; source
+ (use (match_operand:SI 2 "m32r_block_small_immediate_operand" "J"));; # bytes to move
+ (clobber (match_scratch:SI 3 "=&r")) ;; temp 1
+ (clobber (match_scratch:SI 4 "=&r"))] ;; temp 2
+ ""
+ "* m32r_output_block_move (insn, operands); return \"\"; "
+ [(set_attr "type" "store8")
+ (set_attr "length" "20")]) ;; Maximum
;; reg == small constant comparisons are best handled by putting the result
;; of the comparison in a tmp reg and then using beqz/bnez.
diff --git a/gcc/config/m68hc11/larith.asm b/gcc/config/m68hc11/larith.asm
index 80b88174737..78b5885dac2 100644
--- a/gcc/config/m68hc11/larith.asm
+++ b/gcc/config/m68hc11/larith.asm
@@ -1,5 +1,5 @@
/* libgcc routines for M68HC11 & M68HC12.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -41,11 +41,22 @@ Boston, MA 02111-1307, USA. */
.mode mlong
#endif
-#if defined(__USE_RTC__) && defined(mc68hc12)
+ .macro declare_near name
+ .globl \name
+ .type \name,@function
+ .size \name,.Lend-\name
+\name:
+ .endm
+
+#if defined(__USE_RTC__)
# define ARG(N) N+1
.macro ret
+#if defined(mc68hc12)
rtc
+#else
+ jmp __return_32
+#endif
.endm
.macro declare name
@@ -181,10 +192,10 @@ REG(_.d32)
;; Specific initialization for 68hc11 before the main.
;; Nothing special for a generic routine; Just enable interrupts.
;;
- declare __premain
+ declare_near __premain
clra
tap ; Clear both I and X.
- ret
+ rts
#endif
#ifdef L__exit
@@ -278,8 +289,8 @@ Done:
#else
xgdy
tsx
- ldd 4,x
- ldx 2,x ; SRC = X, DST = Y
+ ldd ARG(4),x
+ ldx ARG(2),x ; SRC = X, DST = Y
cpd #0
beq End
pshy
@@ -299,7 +310,7 @@ L1:
puly ; Restore Y to return the DST
End:
xgdy
- rts
+ ret
#endif
#endif
@@ -349,99 +360,97 @@ L0:
pulx ; Restore X to return the DST
End:
xgdx
- rts
+ ret
#endif
#endif
#ifdef L_adddi3
- declare ___adddi3
+ declare ___adddi3
tsx
xgdy
ldd ARG(8),x ; Add LSB
addd ARG(16),x
- std ARG(6),y ; Save (carry preserved)
+ std 6,y ; Save (carry preserved)
ldd ARG(6),x
adcb ARG(15),x
adca ARG(14),x
- std ARG(4),y
+ std 4,y
ldd ARG(4),x
adcb ARG(13),x
adca ARG(12),x
- std ARG(2),y
+ std 2,y
ldd ARG(2),x
adcb ARG(11),x ; Add MSB
adca ARG(10),x
- std ARG(0),y
+ std 0,y
xgdy
ret
#endif
#ifdef L_subdi3
- declare ___subdi3
+ declare ___subdi3
tsx
xgdy
ldd ARG(8),x ; Subtract LSB
subd ARG(16),x
- std ARG(6),y ; Save, borrow preserved
+ std 6,y ; Save, borrow preserved
ldd ARG(6),x
sbcb ARG(15),x
sbca ARG(14),x
- std ARG(4),y
+ std 4,y
ldd ARG(4),x
sbcb ARG(13),x
sbca ARG(12),x
- std ARG(2),y
+ std 2,y
ldd ARG(2),x ; Subtract MSB
sbcb ARG(11),x
sbca ARG(10),x
- std ARG(0),y
+ std 0,y
xgdy ;
ret
#endif
#ifdef L_notdi2
- declare ___notdi2
+ declare ___notdi2
tsy
xgdx
ldd ARG(8),y
coma
comb
- std ARG(6),x
+ std 6,x
ldd ARG(6),y
coma
comb
- std ARG(4),x
+ std 4,x
ldd ARG(4),y
coma
comb
- std ARG(2),x
+ std 2,x
ldd ARG(2),y
coma
comb
- std ARG(0),x
+ std 0,x
xgdx
ret
#endif
#ifdef L_negsi2
- .sect .text
- .globl ___negsi2
+ declare_near ___negsi2
-___negsi2:
comb
coma
xgdx
@@ -456,10 +465,8 @@ done:
#endif
#ifdef L_one_cmplsi2
- .sect .text
- .globl ___one_cmplsi2
+ declare_near ___one_cmplsi2
-___one_cmplsi2:
comb
coma
xgdx
@@ -470,10 +477,8 @@ ___one_cmplsi2:
#endif
#ifdef L_ashlsi3
- .sect .text
- .globl ___ashlsi3
+ declare_near ___ashlsi3
-___ashlsi3:
xgdy
clra
andb #0x1f
@@ -492,10 +497,8 @@ Return:
#endif
#ifdef L_ashrsi3
- .sect .text
- .globl ___ashrsi3
+ declare_near ___ashrsi3
-___ashrsi3:
xgdy
clra
andb #0x1f
@@ -515,10 +518,8 @@ Return:
#endif
#ifdef L_lshrsi3
- .sect .text
- .globl ___lshrsi3
+ declare_near ___lshrsi3
-___lshrsi3:
xgdy
clra
andb #0x1f
@@ -537,10 +538,8 @@ Return:
#endif
#ifdef L_lshrhi3
- .sect .text
- .globl ___lshrhi3
+ declare_near ___lshrhi3
-___lshrhi3:
cpx #16
bge Return_zero
cpx #0
@@ -558,10 +557,8 @@ Return_zero:
#endif
#ifdef L_lshlhi3
- .sect .text
- .globl ___lshlhi3
+ declare_near ___lshlhi3
-___lshlhi3:
cpx #16
bge Return_zero
cpx #0
@@ -578,11 +575,48 @@ Return_zero:
rts
#endif
+#ifdef L_rotrhi3
+ declare_near ___rotrhi3
+
+___rotrhi3:
+ xgdx
+ clra
+ andb #0x0f
+ xgdx
+ beq Return
+Loop:
+ tap
+ rorb
+ rora
+ dex
+ bne Loop
+Return:
+ rts
+#endif
+
+#ifdef L_rotlhi3
+ declare_near ___rotlhi3
+
+___rotlhi3:
+ xgdx
+ clra
+ andb #0x0f
+ xgdx
+ beq Return
+Loop:
+ asrb
+ rolb
+ rola
+ rolb
+ dex
+ bne Loop
+Return:
+ rts
+#endif
+
#ifdef L_ashrhi3
- .sect .text
- .globl ___ashrhi3
+ declare_near ___ashrhi3
-___ashrhi3:
cpx #16
bge Return_minus_1_or_zero
cpx #0
@@ -605,10 +639,8 @@ Return_zero:
#endif
#ifdef L_ashrqi3
- .sect .text
- .globl ___ashrqi3
+ declare_near ___ashrqi3
-___ashrqi3:
cmpa #8
bge Return_minus_1_or_zero
tsta
@@ -630,10 +662,8 @@ Return_zero:
#endif
#ifdef L_lshlqi3
- .sect .text
- .globl ___lshlqi3
+ declare_near ___lshlqi3
-___lshlqi3:
cmpa #8
bge Return_zero
tsta
@@ -653,8 +683,7 @@ Return_zero:
#ifndef mc68hc12
/* 68HC12 signed divisions are generated inline (idivs). */
- .sect .text
- .globl __divmodhi4
+ declare_near __divmodhi4
;
;; D = numerator
@@ -663,7 +692,6 @@ Return_zero:
;; Result: D = D / X
;; X = D % X
;;
-__divmodhi4:
tsta
bpl Numerator_pos
comb ; D = -D <=> D = (~D) + 1
@@ -721,8 +749,7 @@ Numerator_neg_denominator_pos:
#endif
#ifdef L_mulqi3
- .sect .text
- .globl __mulqi3
+ declare_near ___mulqi3
;
; short __mulqi3(signed char a, signed char b);
@@ -732,7 +759,6 @@ Numerator_neg_denominator_pos:
;
; returns the signed result of A * B in register D.
;
-__mulqi3:
tsta
bmi A_neg
tstb
@@ -759,8 +785,7 @@ AB_neg:
#endif
#ifdef L_mulhi3
- .sect .text
- .globl ___mulhi3
+ declare_near ___mulhi3
;
;
@@ -769,7 +794,6 @@ AB_neg:
; a = register D
; b = register X
;
-___mulhi3:
#ifdef mc68hc12
pshx ; Preserve X
exg x,y
@@ -805,24 +829,6 @@ ___mulhi3:
; ---
; 91 cycles
#else
- stx _.tmp ; (4/5)
- pshb ; (3)
- ldab _.tmp+1 ; (3/4)
- mul ; (10) B.high * A.low
- xgdx ; (3)
- pulb ; (4)
- stab _.tmp ; (3/4)
- mul ; (10) B.low * A.high
- abx ; (3)
- ldd _.tmp ; (4/5)
- mul ; (10) B.low * A.low
- stx _.tmp ; (4)
- adda _.tmp+1 ; (4/5)
- rts ; (5) 20/26 bytes
- ; ---
- ; 70/76 cycles
-
-#ifdef OLD_MUL
stx *_.tmp ; (4)
pshb ; (3)
ldab *_.tmp+1 ; (3)
@@ -843,7 +849,6 @@ ___mulhi3:
#endif
#endif
#endif
-#endif
#ifdef L_mulhi32
@@ -879,13 +884,13 @@ ___mulhi3:
; <A-low> 1,x
; <A-high> 0,x
;
- declare __mulhi32
+ declare_near __mulhi32
#ifdef mc68hc12
- ldy ARG(2),sp
+ ldy 2,sp
emul
exg x,y
- ret
+ rts
#else
pshx ; Room for temp value
pshb
@@ -961,8 +966,8 @@ Ret:
exg d,y
ret
#else
-B_low = 8
-B_high = 6
+B_low = ARG(8)
+B_high = ARG(6)
A_low = 0
A_high = 2
pshx
@@ -1010,7 +1015,7 @@ Return:
ins
ins
ins
- rts
+ ret
;
;
; A_low_zero_non_optimized:
@@ -1187,7 +1192,7 @@ dtors_done:
#ifdef L_far_tramp
#ifdef mc68hc12
- .sect .text
+ .sect .tramp,"ax",@progbits
.globl __far_trampoline
;; This is a trampoline used by the linker to invoke a function
@@ -1216,6 +1221,123 @@ __far_trampoline:
; (whose memory bank is mapped due to the
; call to the trampoline).
#endif
+
+#ifdef mc68hc11
+ .sect .tramp,"ax",@progbits
+ .globl __far_trampoline
+
+;; Trampoline generated by gcc for 68HC11:
+;;
+;; pshb
+;; ldab #%page(func)
+;; ldy #%addr(func)
+;; jmp __far_trampoline
+;;
+__far_trampoline:
+ psha ; (2) Save function parameter (high)
+ ;; <Read current page in A>
+ psha ; (2)
+ ;; <Set currenge page from B>
+ pshx ; (4)
+ tsx ; (3)
+ ldab 4,x ; (4) Restore function parameter (low)
+ ldaa 2,x ; (4) Get saved page number
+ staa 4,x ; (4) Save it below return PC
+ pulx ; (5)
+ pula ; (3)
+ pula ; (3) Restore function parameter (high)
+ jmp 0,y ; (4)
+#endif
+#endif
+
+#ifdef L_call_far
+#ifdef mc68hc11
+ .sect .tramp,"ax",@progbits
+ .globl __call_a16
+ .globl __call_a32
+;;
+;; The call methods are used for 68HC11 to support memory bank switching.
+;; Every far call is redirected to these call methods. Its purpose is to:
+;;
+;; 1/ Save the current page on the stack (1 byte to follow 68HC12 call frame)
+;; 2/ Install the new page
+;; 3/ Jump to the real function
+;;
+;; The page switching (get/save) is board dependent. The default provided
+;; here does nothing (just create the appropriate call frame).
+;;
+;; Call sequence (10 bytes, 13 cycles):
+;;
+;; ldx #page ; (3)
+;; ldy #func ; (4)
+;; jsr __call_a16 ; (6)
+;;
+;; Call trampoline (11 bytes, 19 cycles):
+;;
+__call_a16:
+ ;; xgdx ; (3)
+ ;; <Read current page in A> ; (3) ldaa _current_page
+ psha ; (2)
+ ;; <Set current page from B> ; (4) staa _current_page
+ ;; xgdx ; (3)
+ jmp 0,y ; (4)
+
+;;
+;; Call sequence (10 bytes, 14 cycles):
+;;
+;; pshb ; (2)
+;; ldab #page ; (2)
+;; ldy #func ; (4)
+;; jsr __call_a32 ; (6)
+;;
+;; Call trampoline (87 bytes, 57 cycles):
+;;
+__call_a32:
+ pshx ; (4)
+ psha ; (2)
+ ;; <Read current page in A> ; (3) ldaa _current_page
+ psha ; (2)
+ ;; <Set current page from B> ; (4) staa _current_page
+ tsx ; (3)
+ ldab 6,x ; (4) Restore function parameter
+ ldaa 5,x ; (4) Move PC return at good place
+ staa 6,x ; (4)
+ ldaa 4,x ; (4)
+ staa 5,x ; (4)
+ pula ; (3)
+ staa 4,x ; (4)
+ pula ; (3)
+ pulx ; (5)
+ jmp 0,y ; (4)
+#endif
+#endif
+
+#ifdef L_return_far
+#ifdef mc68hc11
+ .sect .tramp,"ax",@progbits
+ .globl __return_void
+ .globl __return_16
+ .globl __return_32
+
+__return_void:
+ ;; pulb
+ ;; <Set current page from B> (Board specific)
+ ;; rts
+__return_16:
+ ;; xgdx
+ ;; pulb
+ ;; <Set current page from B> (Board specific)
+ ;; xgdx
+ ;; rts
+__return_32:
+ ;; xgdy
+ ;; pulb
+ ;; <Set current page from B> (Board specific)
+ ;; xgdy
+ ;; rts
+ ins
+ rts
+#endif
#endif
.Lend:
;-----------------------------------------
diff --git a/gcc/config/m68hc11/m68hc11-protos.h b/gcc/config/m68hc11/m68hc11-protos.h
index c4a3fef0429..f10c3d08658 100644
--- a/gcc/config/m68hc11/m68hc11-protos.h
+++ b/gcc/config/m68hc11/m68hc11-protos.h
@@ -1,5 +1,5 @@
/* Prototypes for exported functions defined in m68hc11.c
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GNU CC.
@@ -24,6 +24,7 @@ extern int m68hc11_override_options PARAMS((void));
extern int m68hc11_optimization_options PARAMS((int,int));
extern void m68hc11_conditional_register_usage PARAMS((void));
extern int hard_regno_mode_ok PARAMS((int, enum machine_mode));
+extern int m68hc11_hard_regno_rename_ok PARAMS((int, int));
extern int m68hc11_total_frame_size PARAMS((void));
extern int m68hc11_initial_frame_pointer_offset PARAMS((void));
@@ -42,18 +43,6 @@ extern void m68hc11_function_arg_advance PARAMS((CUMULATIVE_ARGS*,
#endif
#ifdef RTX_CODE
-extern rtx m68hc11_compare_op0;
-extern rtx m68hc11_compare_op1;
-extern GTY(()) rtx m68hc11_soft_tmp_reg;
-extern GTY(()) rtx ix_reg;
-extern GTY(()) rtx iy_reg;
-extern GTY(()) rtx d_reg;
-extern GTY(()) rtx da_reg;
-extern GTY(()) rtx stack_push_word;
-extern GTY(()) rtx stack_pop_word;
-extern GTY(()) rtx z_reg;
-extern GTY(()) rtx z_reg_qi;
-
extern void m68hc11_initialize_trampoline PARAMS((rtx, rtx, rtx));
extern rtx m68hc11_expand_compare_and_branch PARAMS((enum rtx_code,
@@ -132,7 +121,9 @@ extern int arith_src_operand PARAMS((rtx, enum machine_mode));
extern int m68hc11_logical_operator PARAMS((rtx, enum machine_mode));
extern int m68hc11_arith_operator PARAMS((rtx, enum machine_mode));
extern int m68hc11_non_shift_operator PARAMS((rtx, enum machine_mode));
+extern int m68hc11_shift_operator PARAMS((rtx, enum machine_mode));
extern int m68hc11_unary_operator PARAMS((rtx, enum machine_mode));
+extern int m68hc11_eq_compare_operator PARAMS((rtx, enum machine_mode));
extern int non_push_operand PARAMS((rtx, enum machine_mode));
extern int hard_reg_operand PARAMS((rtx, enum machine_mode));
extern int soft_reg_operand PARAMS((rtx, enum machine_mode));
@@ -152,10 +143,11 @@ extern int m68hc11_function_arg_pass_by_reference PARAMS((const CUMULATIVE_ARGS*
int));
extern int m68hc11_function_arg_padding PARAMS((enum machine_mode, tree));
-extern rtx m68hc11_va_arg PARAMS((tree,tree));
-
extern void m68hc11_function_epilogue PARAMS((FILE*,int));
+extern int m68hc11_is_far_symbol PARAMS((rtx));
+extern int m68hc11_is_trap_symbol PARAMS((rtx));
+
#endif /* TREE_CODE */
extern HOST_WIDE_INT m68hc11_min_offset;
diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c
index ac16b527a97..eae5cc3091a 100644
--- a/gcc/config/m68hc11/m68hc11.c
+++ b/gcc/config/m68hc11/m68hc11.c
@@ -1,5 +1,5 @@
/* Subroutines for code generation on Motorola 68HC11 and 68HC12.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GNU CC.
@@ -64,9 +64,10 @@ static int go_if_legitimate_address_internal PARAMS((rtx, enum machine_mode,
int));
static int register_indirect_p PARAMS((rtx, enum machine_mode, int));
static rtx m68hc11_expand_compare PARAMS((enum rtx_code, rtx, rtx));
-static int m68hc11_autoinc_compatible_p PARAMS ((rtx, rtx));
static int must_parenthesize PARAMS ((rtx));
static int m68hc11_shift_cost PARAMS ((enum machine_mode, rtx, int));
+static int autoinc_mode PARAMS ((rtx));
+static int m68hc11_make_autoinc_notes PARAMS ((rtx*, void*));
static int m68hc11_auto_inc_p PARAMS ((rtx));
static tree m68hc11_handle_fntype_attribute PARAMS ((tree *, tree, tree, int, bool *));
const struct attribute_spec m68hc11_attribute_table[];
@@ -79,8 +80,6 @@ static void m68hc11_asm_out_constructor PARAMS ((rtx, int));
static void m68hc11_asm_out_destructor PARAMS ((rtx, int));
static void m68hc11_encode_section_info PARAMS((tree, int));
-rtx m68hc11_soft_tmp_reg;
-
/* Must be set to 1 to produce debug messages. */
int debug_m6811 = 0;
@@ -89,11 +88,12 @@ extern FILE *asm_out_file;
rtx ix_reg;
rtx iy_reg;
rtx d_reg;
-rtx da_reg;
-rtx stack_push_word;
-rtx stack_pop_word;
+rtx m68hc11_soft_tmp_reg;
+static GTY(()) rtx stack_push_word;
+static GTY(()) rtx stack_pop_word;
+static GTY(()) rtx z_reg;
+static GTY(()) rtx z_reg_qi;
static int regs_inited = 0;
-rtx z_reg;
/* Set to 1 by expand_prologue() when the function is an interrupt handler. */
int current_function_interrupt;
@@ -284,7 +284,7 @@ m68hc11_override_options ()
m68hc11_sp_correction = 0;
m68hc11_tmp_regs_class = TMP_REGS;
target_flags &= ~MASK_M6811;
- target_flags |= MASK_NO_DIRECT_MODE | MASK_MIN_MAX;
+ target_flags |= MASK_NO_DIRECT_MODE;
if (m68hc11_soft_reg_count == 0)
m68hc11_soft_reg_count = "0";
@@ -335,7 +335,6 @@ create_regs_rtx ()
ix_reg = gen_rtx (REG, HImode, HARD_X_REGNUM);
iy_reg = gen_rtx (REG, HImode, HARD_Y_REGNUM);
d_reg = gen_rtx (REG, HImode, HARD_D_REGNUM);
- da_reg = gen_rtx (REG, QImode, HARD_A_REGNUM);
m68hc11_soft_tmp_reg = gen_rtx (REG, HImode, SOFT_TMP_REGNUM);
stack_push_word = gen_rtx (MEM, HImode,
@@ -385,6 +384,23 @@ hard_regno_mode_ok (regno, mode)
}
}
+int
+m68hc11_hard_regno_rename_ok (reg1, reg2)
+ int reg1, reg2;
+{
+ /* Don't accept renaming to Z register. We will replace it to
+ X,Y or D during machine reorg pass. */
+ if (reg2 == HARD_Z_REGNUM)
+ return 0;
+
+ /* Don't accept renaming D,X to Y register as the code will be bigger. */
+ if (TARGET_M6811 && reg2 == HARD_Y_REGNUM
+ && (D_REGNO_P (reg1) || X_REGNO_P (reg1)))
+ return 0;
+
+ return 1;
+}
+
enum reg_class
preferred_reload_class (operand, class)
rtx operand;
@@ -1000,6 +1016,9 @@ d_register_operand (operand, mode)
rtx operand;
enum machine_mode mode ATTRIBUTE_UNUSED;
{
+ if (GET_MODE (operand) != mode && mode != VOIDmode)
+ return 0;
+
if (GET_CODE (operand) == SUBREG)
operand = XEXP (operand, 0);
@@ -1014,6 +1033,9 @@ hard_addr_reg_operand (operand, mode)
rtx operand;
enum machine_mode mode ATTRIBUTE_UNUSED;
{
+ if (GET_MODE (operand) != mode && mode != VOIDmode)
+ return 0;
+
if (GET_CODE (operand) == SUBREG)
operand = XEXP (operand, 0);
@@ -1026,8 +1048,11 @@ hard_addr_reg_operand (operand, mode)
int
hard_reg_operand (operand, mode)
rtx operand;
- enum machine_mode mode ATTRIBUTE_UNUSED;
+ enum machine_mode mode;
{
+ if (GET_MODE (operand) != mode && mode != VOIDmode)
+ return 0;
+
if (GET_CODE (operand) == SUBREG)
operand = XEXP (operand, 0);
@@ -1103,6 +1128,14 @@ symbolic_memory_operand (op, mode)
}
int
+m68hc11_eq_compare_operator (op, mode)
+ register rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return GET_CODE (op) == EQ || GET_CODE (op) == NE;
+}
+
+int
m68hc11_logical_operator (op, mode)
register rtx op;
enum machine_mode mode ATTRIBUTE_UNUSED;
@@ -1131,6 +1164,16 @@ m68hc11_non_shift_operator (op, mode)
|| GET_CODE (op) == PLUS || GET_CODE (op) == MINUS;
}
+/* Return true if op is a shift operator. */
+int
+m68hc11_shift_operator (op, mode)
+ register rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return GET_CODE (op) == ROTATE || GET_CODE (op) == ROTATERT
+ || GET_CODE (op) == LSHIFTRT || GET_CODE (op) == ASHIFT
+ || GET_CODE (op) == ASHIFTRT;
+}
int
m68hc11_unary_operator (op, mode)
@@ -1196,9 +1239,16 @@ const struct attribute_spec m68hc11_attribute_table[] =
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
{ "interrupt", 0, 0, false, true, true, m68hc11_handle_fntype_attribute },
{ "trap", 0, 0, false, true, true, m68hc11_handle_fntype_attribute },
+ { "far", 0, 0, false, true, true, m68hc11_handle_fntype_attribute },
+ { "near", 0, 0, false, true, true, m68hc11_handle_fntype_attribute },
{ NULL, 0, 0, false, false, false, NULL }
};
+/* Keep track of the symbol which has a `trap' attribute and which uses
+ the `swi' calling convention. Since there is only one trap, we only
+ record one such symbol. If there are several, a warning is reported. */
+static rtx trap_handler_symbol = 0;
+
/* Handle an attribute requiring a FUNCTION_TYPE, FIELD_DECL or TYPE_DECL;
arguments as in struct attribute_spec.handler. */
static tree
@@ -1210,6 +1260,7 @@ m68hc11_handle_fntype_attribute (node, name, args, flags, no_add_attrs)
bool *no_add_attrs;
{
if (TREE_CODE (*node) != FUNCTION_TYPE
+ && TREE_CODE (*node) != METHOD_TYPE
&& TREE_CODE (*node) != FIELD_DECL
&& TREE_CODE (*node) != TYPE_DECL)
{
@@ -1232,16 +1283,56 @@ m68hc11_encode_section_info (decl, first)
{
tree func_attr;
int trap_handler;
+ int is_far = 0;
rtx rtl;
-
+
if (TREE_CODE (decl) != FUNCTION_DECL)
return;
rtl = DECL_RTL (decl);
func_attr = TYPE_ATTRIBUTES (TREE_TYPE (decl));
+
+
+ if (lookup_attribute ("far", func_attr) != NULL_TREE)
+ is_far = 1;
+ else if (lookup_attribute ("near", func_attr) == NULL_TREE)
+ is_far = TARGET_LONG_CALLS != 0;
+
trap_handler = lookup_attribute ("trap", func_attr) != NULL_TREE;
- SYMBOL_REF_FLAG (XEXP (rtl, 0)) = trap_handler;
+ if (trap_handler && is_far)
+ {
+ warning ("`trap' and `far' attributes are not compatible, ignoring `far'");
+ trap_handler = 0;
+ }
+ if (trap_handler)
+ {
+ if (trap_handler_symbol != 0)
+ warning ("`trap' attribute is already used");
+ else
+ trap_handler_symbol = XEXP (rtl, 0);
+ }
+ SYMBOL_REF_FLAG (XEXP (rtl, 0)) = is_far;
+}
+
+int
+m68hc11_is_far_symbol (sym)
+ rtx sym;
+{
+ if (GET_CODE (sym) == MEM)
+ sym = XEXP (sym, 0);
+
+ return SYMBOL_REF_FLAG (sym);
+}
+
+int
+m68hc11_is_trap_symbol (sym)
+ rtx sym;
+{
+ if (GET_CODE (sym) == MEM)
+ sym = XEXP (sym, 0);
+
+ return trap_handler_symbol != 0 && rtx_equal_p (trap_handler_symbol, sym);
}
@@ -1281,6 +1372,14 @@ m68hc11_initial_elimination_offset (from, to)
/* For a trap handler, we must take into account the registers which
are pushed on the stack during the trap (except the PC). */
func_attr = TYPE_ATTRIBUTES (TREE_TYPE (current_function_decl));
+
+ if (lookup_attribute ("far", func_attr) != 0)
+ current_function_far = 1;
+ else if (lookup_attribute ("near", func_attr) != 0)
+ current_function_far = 0;
+ else
+ current_function_far = TARGET_LONG_CALLS != 0;
+
trap_handler = lookup_attribute ("trap", func_attr) != NULL_TREE;
if (trap_handler && from == ARG_POINTER_REGNUM)
size = 7;
@@ -1452,51 +1551,6 @@ m68hc11_function_arg (cum, mode, type, named)
return NULL_RTX;
}
-rtx
-m68hc11_va_arg (valist, type)
- tree valist;
- tree type;
-{
- tree addr_tree, t;
- HOST_WIDE_INT align;
- HOST_WIDE_INT rounded_size;
- rtx addr;
- int pad_direction;
-
- /* Compute the rounded size of the type. */
- align = PARM_BOUNDARY / BITS_PER_UNIT;
- rounded_size = (((int_size_in_bytes (type) + align - 1) / align) * align);
-
- /* Get AP. */
- addr_tree = valist;
- pad_direction = m68hc11_function_arg_padding (TYPE_MODE (type), type);
-
- if (pad_direction == downward)
- {
- /* Small args are padded downward. */
-
- HOST_WIDE_INT adj;
- adj = TREE_INT_CST_LOW (TYPE_SIZE (type)) / BITS_PER_UNIT;
- if (rounded_size > align)
- adj = rounded_size;
-
- addr_tree = build (PLUS_EXPR, TREE_TYPE (addr_tree), addr_tree,
- build_int_2 (rounded_size - adj, 0));
- }
-
- addr = expand_expr (addr_tree, NULL_RTX, Pmode, EXPAND_NORMAL);
- addr = copy_to_reg (addr);
-
- /* Compute new value for AP. */
- t = build (MODIFY_EXPR, TREE_TYPE (valist), valist,
- build (PLUS_EXPR, TREE_TYPE (valist), valist,
- build_int_2 (rounded_size, 0)));
- TREE_SIDE_EFFECTS (t) = 1;
- expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
-
- return addr;
-}
-
/* If defined, a C expression which determines whether, and in which direction,
to pad out an argument with extra space. The value should be of type
`enum direction': either `upward' to pad above the argument,
@@ -1620,6 +1674,12 @@ expand_prologue ()
current_function_interrupt = lookup_attribute ("interrupt",
func_attr) != NULL_TREE;
current_function_trap = lookup_attribute ("trap", func_attr) != NULL_TREE;
+ if (lookup_attribute ("far", func_attr) != NULL_TREE)
+ current_function_far = 1;
+ else if (lookup_attribute ("near", func_attr) != NULL_TREE)
+ current_function_far = 0;
+ else
+ current_function_far = TARGET_LONG_CALLS != 0;
/* Get the scratch register to build the frame and push registers.
If the first argument is a 32-bit quantity, the D+X registers
@@ -1630,6 +1690,10 @@ expand_prologue ()
else
scratch = ix_reg;
+ /* Save current stack frame. */
+ if (frame_pointer_needed)
+ emit_move_after_reload (stack_push_word, hard_frame_pointer_rtx, scratch);
+
/* For an interrupt handler, we must preserve _.tmp, _.z and _.xy.
Other soft registers in page0 need not to be saved because they
will be restored by C functions. For a trap handler, we don't
@@ -1644,17 +1708,13 @@ expand_prologue ()
scratch);
}
- /* Save current stack frame. */
- if (frame_pointer_needed)
- emit_move_after_reload (stack_push_word, hard_frame_pointer_rtx, scratch);
-
/* Allocate local variables. */
if (TARGET_M6812 && (size > 4 || size == 3))
{
emit_insn (gen_addhi3 (stack_pointer_rtx,
stack_pointer_rtx, GEN_INT (-size)));
}
- else if (size > 8)
+ else if ((!optimize_size && size > 8) || (optimize_size && size > 10))
{
rtx insn;
@@ -1721,7 +1781,7 @@ expand_epilogue ()
else
return_size = GET_MODE_SIZE (GET_MODE (current_function_return_rtx));
- if (return_size > HARD_REG_SIZE)
+ if (return_size > HARD_REG_SIZE && return_size <= 2 * HARD_REG_SIZE)
scratch = iy_reg;
else
scratch = ix_reg;
@@ -1742,7 +1802,7 @@ expand_epilogue ()
emit_insn (gen_addhi3 (stack_pointer_rtx,
stack_pointer_rtx, GEN_INT (size)));
}
- else if (size > 8)
+ else if ((!optimize_size && size > 8) || (optimize_size && size > 10))
{
rtx insn;
@@ -1768,10 +1828,6 @@ expand_epilogue ()
stack_pointer_rtx, GEN_INT (1)));
}
- /* Restore previous frame pointer. */
- if (frame_pointer_needed)
- emit_move_after_reload (hard_frame_pointer_rtx, stack_pop_word, scratch);
-
/* For an interrupt handler, restore ZTMP, ZREG and XYREG. */
if (current_function_interrupt)
{
@@ -1782,6 +1838,10 @@ expand_epilogue ()
emit_move_after_reload (m68hc11_soft_tmp_reg, stack_pop_word, scratch);
}
+ /* Restore previous frame pointer. */
+ if (frame_pointer_needed)
+ emit_move_after_reload (hard_frame_pointer_rtx, stack_pop_word, scratch);
+
/* If the trap handler returns some value, copy the value
in D, X onto the stack so that the rti will pop the return value
correctly. */
@@ -2163,6 +2223,10 @@ print_operand (file, op, letter)
asm_print_register (file, REGNO (op));
fprintf (file, "+1");
}
+ else if (letter == 'b' && D_REG_P (op))
+ {
+ asm_print_register (file, HARD_B_REGNUM);
+ }
else
{
asm_print_register (file, REGNO (op));
@@ -3214,6 +3278,17 @@ m68hc11_gen_movhi (insn, operands)
{
if (SP_REG_P (operands[0]))
output_asm_insn ("lds\t%1", operands);
+ else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */
+ && !D_REG_P (operands[0])
+ && GET_CODE (operands[1]) == CONST_INT
+ && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)
+ && find_reg_note (insn, REG_WAS_0, 0))
+ {
+ if (INTVAL (operands[1]) == 1)
+ output_asm_insn ("in%0", operands);
+ else
+ output_asm_insn ("de%0", operands);
+ }
else
output_asm_insn ("ld%0\t%1", operands);
}
@@ -3379,11 +3454,17 @@ m68hc11_gen_movhi (insn, operands)
output_asm_insn ("xgdx", operands);
CC_STATUS_INIT;
}
- else
+ else if (!optimize_size)
{
output_asm_insn ("sty\t%t1", operands);
output_asm_insn ("ldx\t%t1", operands);
}
+ else
+ {
+ CC_STATUS_INIT;
+ output_asm_insn ("pshy", operands);
+ output_asm_insn ("pulx", operands);
+ }
}
else if (SP_REG_P (operands[1]))
{
@@ -3391,6 +3472,16 @@ m68hc11_gen_movhi (insn, operands)
cc_status = cc_prev_status;
output_asm_insn ("tsx", operands);
}
+ else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */
+ && GET_CODE (operands[1]) == CONST_INT
+ && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)
+ && find_reg_note (insn, REG_WAS_0, 0))
+ {
+ if (INTVAL (operands[1]) == 1)
+ output_asm_insn ("in%0", operands);
+ else
+ output_asm_insn ("de%0", operands);
+ }
else
{
output_asm_insn ("ldx\t%1", operands);
@@ -3421,11 +3512,17 @@ m68hc11_gen_movhi (insn, operands)
output_asm_insn ("xgdy", operands);
CC_STATUS_INIT;
}
- else
+ else if (!optimize_size)
{
output_asm_insn ("stx\t%t1", operands);
output_asm_insn ("ldy\t%t1", operands);
}
+ else
+ {
+ CC_STATUS_INIT;
+ output_asm_insn ("pshx", operands);
+ output_asm_insn ("puly", operands);
+ }
}
else if (SP_REG_P (operands[1]))
{
@@ -3433,7 +3530,17 @@ m68hc11_gen_movhi (insn, operands)
cc_status = cc_prev_status;
output_asm_insn ("tsy", operands);
}
- else
+ else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */
+ && GET_CODE (operands[1]) == CONST_INT
+ && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)
+ && find_reg_note (insn, REG_WAS_0, 0))
+ {
+ if (INTVAL (operands[1]) == 1)
+ output_asm_insn ("in%0", operands);
+ else
+ output_asm_insn ("de%0", operands);
+ }
+ else
{
output_asm_insn ("ldy\t%1", operands);
}
@@ -3673,6 +3780,16 @@ m68hc11_gen_movqi (insn, operands)
output_asm_insn ("ldab\t%T0", operands);
}
}
+ else if (0 /* REG_WAS_0 note is boggus; don't rely on it. */
+ && GET_CODE (operands[1]) == CONST_INT
+ && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)
+ && find_reg_note (insn, REG_WAS_0, 0))
+ {
+ if (INTVAL (operands[1]) == 1)
+ output_asm_insn ("inc%b0", operands);
+ else
+ output_asm_insn ("dec%b0", operands);
+ }
else if (!DB_REG_P (operands[1]) && !D_REG_P (operands[1])
&& !DA_REG_P (operands[1]))
{
@@ -3881,15 +3998,15 @@ m68hc11_gen_rotate (code, insn, operands)
if (val > 0)
{
- /* Set the carry to bit-15, but don't change D yet. */
- if (GET_MODE (operands[0]) != QImode)
- {
- output_asm_insn ("asra", operands);
- output_asm_insn ("rola", operands);
- }
-
while (--val >= 0)
{
+ /* Set the carry to bit-15, but don't change D yet. */
+ if (GET_MODE (operands[0]) != QImode)
+ {
+ output_asm_insn ("asra", operands);
+ output_asm_insn ("rola", operands);
+ }
+
/* Rotate B first to move the carry to bit-0. */
if (D_REG_P (operands[0]))
output_asm_insn ("rolb", operands);
@@ -3900,14 +4017,12 @@ m68hc11_gen_rotate (code, insn, operands)
}
else
{
- /* Set the carry to bit-8 of D. */
- if (val != 0 && GET_MODE (operands[0]) != QImode)
- {
- output_asm_insn ("tap", operands);
- }
-
while (++val <= 0)
{
+ /* Set the carry to bit-8 of D. */
+ if (GET_MODE (operands[0]) != QImode)
+ output_asm_insn ("tap", operands);
+
/* Rotate B first to move the carry to bit-7. */
if (D_REG_P (operands[0]))
output_asm_insn ("rorb", operands);
@@ -4103,8 +4218,6 @@ struct replace_info
int z_loaded_with_sp;
};
-rtx z_reg_qi;
-
static int m68hc11_check_z_replacement PARAMS ((rtx, struct replace_info *));
static void m68hc11_find_z_replacement PARAMS ((rtx, struct replace_info *));
static void m68hc11_z_replacement PARAMS ((rtx));
@@ -4204,7 +4317,7 @@ m68hc11_check_z_replacement (insn, info)
info->need_save_z = 0;
info->found_call = 1;
info->regno = SOFT_Z_REGNUM;
- info->last = insn;
+ info->last = NEXT_INSN (insn);
}
return 0;
}
@@ -4338,7 +4451,13 @@ m68hc11_check_z_replacement (insn, info)
info->z_died = 1;
info->need_save_z = 0;
}
- else
+ else if (TARGET_M6812 && side_effects_p (src))
+ {
+ info->last = 0;
+ info->must_restore_reg = 0;
+ return 0;
+ }
+ else
{
info->save_before_last = 1;
}
@@ -4415,7 +4534,13 @@ m68hc11_check_z_replacement (insn, info)
info->z_died = 1;
info->need_save_z = 0;
}
- else
+ else if (TARGET_M6812 && side_effects_p (src))
+ {
+ info->last = 0;
+ info->must_restore_reg = 0;
+ return 0;
+ }
+ else
{
info->save_before_last = 1;
}
@@ -5058,6 +5183,12 @@ m68hc11_reorg (first)
int split_done = 0;
rtx insn;
+ compute_bb_for_insn ();
+
+ /* ??? update_life_info_in_dirty_blocks fails to terminate during
+ non-optimizing bootstrap.
+
+ update_life_info (NULL, UPDATE_LIFE_GLOBAL_RM_NOTES, PROP_DEATH_NOTES); */
z_replacement_completed = 0;
z_reg = gen_rtx (REG, HImode, HARD_Z_REGNUM);
@@ -5073,9 +5204,6 @@ m68hc11_reorg (first)
z_replacement_completed = 1;
m68hc11_reassign_regs (first);
- if (optimize)
- compute_bb_for_insn ();
-
/* After some splitting, there are some oportunities for CSE pass.
This happens quite often when 32-bit or above patterns are split. */
if (optimize > 0 && split_done)
@@ -5174,7 +5302,7 @@ m68hc11_memory_move_cost (mode, class, in)
else
{
if (GET_MODE_SIZE (mode) <= 2)
- return COSTS_N_INSNS (2);
+ return COSTS_N_INSNS (3);
else
return COSTS_N_INSNS (4);
}
@@ -5506,7 +5634,10 @@ m68hc11_asm_file_start (out, main_file)
const char *main_file;
{
fprintf (out, ";;;-----------------------------------------\n");
- fprintf (out, ";;; Start MC68HC11 gcc assembly output\n");
+ fprintf (out, ";;; Start %s gcc assembly output\n",
+ TARGET_M6811
+ ? "MC68HC11"
+ : TARGET_M68S12 ? "MC68HCS12" : "MC68HC12");
fprintf (out, ";;; gcc compiler %s\n", version_string);
print_options (out);
fprintf (out, ";;;-----------------------------------------\n");
@@ -5536,3 +5667,5 @@ m68hc11_asm_out_destructor (symbol, priority)
default_dtor_section_asm_out_destructor (symbol, priority);
fprintf (asm_out_file, "\t.globl\t__do_global_dtors\n");
}
+
+#include "gt-m68hc11.h"
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index bdd3fe198f9..ee1f5213eac 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
Motorola 68HC11 and 68HC12.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GNU CC.
@@ -43,13 +43,22 @@ Note:
/* Compile and assemble for a 68hc11 unless there is a -m68hc12 option. */
#ifndef ASM_SPEC
-#define ASM_SPEC "%{m68hc12:-m68hc12}%{!m68hc12:-m68hc11}"
+#define ASM_SPEC \
+"%{m68hc12:-m68hc12}" \
+"%{m68hcs12:-m68hcs12}" \
+"%{!m68hc12:%{!m68hcs12:-m68hc11}} " \
+"%{mshort:-mshort}%{!mshort:-mlong} " \
+"%{fshort-double:-mshort-double}%{!fshort-double:-mlong-double}"
#endif
/* We need to tell the linker the target elf format. Just pass an
emulation option. This can be overriden by -Wl option of gcc. */
#ifndef LINK_SPEC
-#define LINK_SPEC "%{m68hc12:-m m68hc12elf}%{!m68hc12:-m m68hc11elf} %{mrelax:-relax}"
+#define LINK_SPEC \
+"%{m68hc12:-m m68hc12elf}" \
+"%{m68hcs12:-m m68hc12elf}" \
+"%{!m68hc12:%{!m68hcs12:-m m68hc11elf}} " \
+"%{!mnorelax:%{!m68hc12:%{!m68hcs12:-relax}}}"
#endif
#ifndef LIB_SPEC
@@ -65,7 +74,8 @@ Note:
"%{mshort:-D__HAVE_SHORT_INT__ -D__INT__=16}\
%{!mshort:-D__INT__=32}\
%{m68hc12:-Dmc6812 -DMC6812 -Dmc68hc12}\
- %{!m68hc12:-Dmc6811 -DMC6811 -Dmc68hc11}\
+ %{m68hcs12:-Dmc6812 -DMC6812 -Dmc68hcs12}\
+ %{!m68hc12:%{!m68hcs12:-Dmc6811 -DMC6811 -Dmc68hc11}}\
%{fshort-double:-D__HAVE_SHORT_DOUBLE__}\
%{mlong-calls:-D__USE_RTC__}"
#endif
@@ -119,14 +129,16 @@ extern short *reg_renumber; /* def in local_alloc.c */
#define MASK_AUTO_INC_DEC 0004
#define MASK_M6811 0010
#define MASK_M6812 0020
-#define MASK_NO_DIRECT_MODE 0040
-#define MASK_MIN_MAX 0100
-#define MASK_LONG_CALLS 0200
+#define MASK_M68S12 0040
+#define MASK_NO_DIRECT_MODE 0100
+#define MASK_MIN_MAX 0200
+#define MASK_LONG_CALLS 0400
#define TARGET_OP_TIME (optimize && optimize_size == 0)
#define TARGET_SHORT (target_flags & MASK_SHORT)
#define TARGET_M6811 (target_flags & MASK_M6811)
#define TARGET_M6812 (target_flags & MASK_M6812)
+#define TARGET_M68S12 (target_flags & MASK_M68S12)
#define TARGET_AUTO_INC_DEC (target_flags & MASK_AUTO_INC_DEC)
#define TARGET_MIN_MAX (target_flags & MASK_MIN_MAX)
#define TARGET_NO_DIRECT_MODE (target_flags & MASK_NO_DIRECT_MODE)
@@ -164,9 +176,9 @@ extern short *reg_renumber; /* def in local_alloc.c */
N_("Auto pre/post decrement increment allowed")}, \
{ "noauto-incdec", - MASK_AUTO_INC_DEC, \
N_("Auto pre/post decrement increment not allowed")}, \
- { "inmax", MASK_MIN_MAX, \
+ { "inmax", MASK_MIN_MAX, \
N_("Min/max instructions allowed")}, \
- { "nominmax", MASK_MIN_MAX, \
+ { "nominmax", - MASK_MIN_MAX, \
N_("Min/max instructions not allowed")}, \
{ "long-calls", MASK_LONG_CALLS, \
N_("Use call and rtc for function calls and returns")}, \
@@ -174,14 +186,20 @@ extern short *reg_renumber; /* def in local_alloc.c */
N_("Use jsr and rts for function calls and returns")}, \
{ "relax", MASK_NO_DIRECT_MODE, \
N_("Do not use direct addressing mode for soft registers")},\
+ { "norelax", -MASK_NO_DIRECT_MODE, \
+ N_("Use direct addressing mode for soft registers")}, \
{ "68hc11", MASK_M6811, \
N_("Compile for a 68HC11")}, \
{ "68hc12", MASK_M6812, \
N_("Compile for a 68HC12")}, \
+ { "68hcs12", MASK_M6812 | MASK_M68S12, \
+ N_("Compile for a 68HCS12")}, \
{ "6811", MASK_M6811, \
N_("Compile for a 68HC11")}, \
{ "6812", MASK_M6812, \
N_("Compile for a 68HC12")}, \
+ { "68S12", MASK_M6812 | MASK_M68S12, \
+ N_("Compile for a 68HCS12")}, \
{ "", TARGET_DEFAULT, 0 }}
/* This macro is similar to `TARGET_SWITCHES' but defines names of
@@ -214,7 +232,7 @@ extern const char *m68hc11_soft_reg_count;
#endif
/* Print subsidiary information on the compiler version in use. */
-#define TARGET_VERSION fprintf (stderr, " (MC68HC11/MC68HC12)")
+#define TARGET_VERSION fprintf (stderr, " (MC68HC11/MC68HC12/MC68HCS12)")
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
@@ -555,6 +573,7 @@ enum reg_class
D_OR_S_REGS, /* 16-bit soft register or D register */
X_OR_S_REGS, /* 16-bit soft register or X register */
Y_OR_S_REGS, /* 16-bit soft register or Y register */
+ Z_OR_S_REGS, /* 16-bit soft register or Z register */
SP_OR_S_REGS, /* 16-bit soft register or SP register */
D_OR_X_OR_S_REGS, /* 16-bit soft register or D or X register */
D_OR_Y_OR_S_REGS, /* 16-bit soft register or D or Y register */
@@ -601,6 +620,7 @@ enum reg_class
"D_OR_S_REGS", \
"X_OR_S_REGS", \
"Y_OR_S_REGS", \
+ "Z_OR_S_REGS", \
"SP_OR_S_REGS", \
"D_OR_X_OR_S_REGS", \
"D_OR_Y_OR_S_REGS", \
@@ -669,6 +689,7 @@ enum reg_class
/* D_OR_S_REGS */ { 0xFFFFDE02, 0x00007FFF }, /* D _.D */ \
/* X_OR_S_REGS */ { 0xFFFFDE01, 0x00007FFF }, /* X _.D */ \
/* Y_OR_S_REGS */ { 0xFFFFDE04, 0x00007FFF }, /* Y _.D */ \
+/* Z_OR_S_REGS */ { 0xFFFFDF00, 0x00007FFF }, /* Z _.D */ \
/* SP_OR_S_REGS */ { 0xFFFFDE08, 0x00007FFF }, /* SP _.D */ \
/* D_OR_X_OR_S_REGS */ { 0xFFFFDE03, 0x00007FFF }, /* D X _.D */ \
/* D_OR_Y_OR_S_REGS */ { 0xFFFFDE06, 0x00007FFF }, /* D Y _.D */ \
@@ -780,6 +801,12 @@ extern enum reg_class m68hc11_tmp_regs_class;
#define SMALL_REGISTER_CLASSES 1
+/* A C expression that is nonzero if hard register number REGNO2 can be
+ considered for use as a rename register for REGNO1 */
+
+#define HARD_REGNO_RENAME_OK(REGNO1,REGNO2) \
+ m68hc11_hard_regno_rename_ok ((REGNO1), (REGNO2))
+
/* A C expression whose value is nonzero if pseudos that have been
assigned to registers of class CLASS would likely be spilled
because registers of CLASS are needed for spill registers.
@@ -835,6 +862,7 @@ extern enum reg_class m68hc11_tmp_regs_class;
(C) == 'L' ? ((VALUE) >= -65536 && (VALUE) <= 65535) : \
(C) == 'M' ? ((VALUE) & 0x0ffffL) == 0 : \
(C) == 'N' ? ((VALUE) == 1 || (VALUE) == -1) : \
+ (C) == 'I' ? ((VALUE) >= -2 && (VALUE) <= 2) : \
(C) == 'O' ? (VALUE) == 16 : \
(C) == 'P' ? ((VALUE) <= 2 && (VALUE) >= -8) : 0)
@@ -1031,6 +1059,10 @@ typedef struct m68hc11_args
#define FUNCTION_ARG_PADDING(MODE, TYPE) \
m68hc11_function_arg_padding ((MODE), (TYPE))
+#undef PAD_VARARGS_DOWN
+#define PAD_VARARGS_DOWN \
+ (m68hc11_function_arg_padding (TYPE_MODE (type), type) == downward)
+
/* A C expression that indicates when it is the called function's
responsibility to make a copy of arguments passed by invisible
reference. Normally, the caller makes a copy and passes the
@@ -1077,10 +1109,6 @@ typedef struct m68hc11_args
caller saving results in spill failure. */
#define CALLER_SAVE_PROFITABLE(REFS,CALLS) 0
-/* Implement `va_arg'. */
-#define EXPAND_BUILTIN_VA_ARG(valist, type) \
- m68hc11_va_arg (valist, type)
-
/* For an arg passed partly in registers and partly in memory,
this is the number of registers used.
For args passed entirely in registers or entirely in memory, zero.
@@ -1578,7 +1606,7 @@ do { \
fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
putc ('\n', FILE); \
\
- if (TARGET_M6812 && current_function_far) \
+ if (current_function_far) \
{ \
fprintf (FILE, "\t.far\t"); \
assemble_name (FILE, NAME); \
@@ -1589,7 +1617,7 @@ do { \
{ \
fprintf (FILE, "\t.interrupt\t"); \
assemble_name (FILE, NAME); \
- putc ('\b', FILE); \
+ putc ('\n', FILE); \
} \
ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
ASM_OUTPUT_LABEL(FILE, NAME); \
@@ -1668,6 +1696,18 @@ do { \
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+/* For the support of memory banks we need addresses that indicate
+ the page number. */
+#define DWARF2_ADDR_SIZE 4
+
+/* SCz 2003-07-08: Don't use as dwarf2 .file/.loc directives because
+ the linker is doing relaxation and it does not adjust the debug_line
+ sections when it shrinks the code. This results in invalid addresses
+ when debugging. This does not bless too much the HC11/HC12 as most
+ applications are embedded and small, hence a reasonable debug info.
+ This problem is known for binutils 2.13, 2.14 and mainline. */
+#undef HAVE_AS_DWARF2_DEBUG_LINE
+
/* The prefix for local labels. You should be able to define this as
an empty string, or any arbitrary string (such as ".", ".L%", etc)
without having to make any other changes to account for the specific
@@ -1694,6 +1734,8 @@ do { \
ROTATE, ROTATERT }}, \
{"m68hc11_non_shift_operator", {AND, IOR, XOR, PLUS, MINUS}}, \
{"m68hc11_unary_operator", {NEG, NOT, SIGN_EXTEND, ZERO_EXTEND}}, \
+{"m68hc11_shift_operator", {ASHIFT, ASHIFTRT, LSHIFTRT, ROTATE, ROTATERT}},\
+{"m68hc11_eq_compare_operator", {EQ, NE}}, \
{"non_push_operand", {SUBREG, REG, MEM}}, \
{"reg_or_some_mem_operand", {SUBREG, REG, MEM}}, \
{"tst_operand", {SUBREG, REG, MEM}}, \
@@ -1751,3 +1793,10 @@ extern int z_replacement_completed;
extern int current_function_interrupt;
extern int current_function_trap;
extern int current_function_far;
+
+extern GTY(()) rtx m68hc11_compare_op0;
+extern GTY(()) rtx m68hc11_compare_op1;
+extern GTY(()) rtx m68hc11_soft_tmp_reg;
+extern GTY(()) rtx ix_reg;
+extern GTY(()) rtx iy_reg;
+extern GTY(()) rtx d_reg;
diff --git a/gcc/config/m68hc11/m68hc11.md b/gcc/config/m68hc11/m68hc11.md
index a71e4f3f0f5..b986e6503e2 100644
--- a/gcc/config/m68hc11/m68hc11.md
+++ b/gcc/config/m68hc11/m68hc11.md
@@ -1,5 +1,5 @@
;;- Machine description file for Motorola 68HC11 and 68HC12.
-;;- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;;- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;;- Contributed by Stephane Carrez (stcarrez@nerim.fr)
;; This file is part of GNU CC.
@@ -143,6 +143,7 @@
(A_REGNUM 5) ; A (high part of D)
(B_REGNUM 6) ; B (low part of D)
(CC_REGNUM 7) ; Condition code register
+ (SOFT_Z_REGNUM 11) ; Z soft register
])
;;--------------------------------------------------------------------
@@ -258,7 +259,7 @@
[(set (cc0)
(match_operand:QI 0 "tst_operand" ""))
(use (match_operand:HI 1 "hard_reg_operand" ""))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
"z_replacement_completed == 2"
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 1))
(set (match_dup 1) (match_dup 2))
@@ -365,7 +366,7 @@
(compare (match_operand:HI 0 "tst_operand" "dxy,m")
(match_operand:HI 1 "cmp_operand" "m,dxy")))
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
""
"#")
@@ -374,7 +375,7 @@
(compare (match_operand:HI 0 "tst_operand" "")
(match_operand:HI 1 "cmp_operand" "")))
(use (match_operand:HI 2 "hard_reg_operand" ""))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
"z_replacement_completed == 2"
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
(set (match_dup 2) (match_dup 3))
@@ -444,7 +445,7 @@
[(set (cc0)
(and:QI (match_operand:QI 0 "tst_operand" "")
(match_operand:QI 1 "hard_addr_reg_operand" "")))]
- "z_replacement_completed == 2 && GET_MODE (operands[0]) == QImode"
+ "z_replacement_completed == 2"
[(set (match_dup 3) (match_dup 2))
(set (cc0) (and:QI (match_dup 0) (match_dup 4)))]
"operands[2] = gen_rtx (REG, HImode, REGNO (operands[1]));
@@ -456,7 +457,7 @@
(and:QI (match_operand:QI 0 "tst_operand" "d,m")
(match_operand:QI 1 "cmp_operand" "m,d")))
(use (match_operand:HI 2 "hard_reg_operand" "xy,xy"))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
""
"#")
@@ -465,12 +466,12 @@
(and:QI (match_operand:QI 0 "tst_operand" "")
(match_operand:QI 1 "cmp_operand" "")))
(use (match_operand:HI 2 "hard_reg_operand" ""))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
"z_replacement_completed == 2"
- [(set (mem:HI (pre_dec:HI (reg:HI 3))) (match_dup 2))
+ [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
(set (match_dup 2) (match_dup 3))
(set (cc0) (and:QI (match_dup 0) (match_dup 1)))
- (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI 3))))]
+ (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI SP_REGNUM))))]
"operands[3] = gen_rtx (REG, HImode, SOFT_Z_REGNUM);")
(define_insn "bitcmphi"
@@ -546,7 +547,7 @@
(compare (match_operand:QI 0 "tst_operand" "dxy,m")
(match_operand:QI 1 "cmp_operand" "m,dxy")))
(use (match_operand:HI 2 "hard_reg_operand" "dxy,dxy"))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
""
"#")
@@ -555,7 +556,7 @@
(compare (match_operand:QI 0 "tst_operand" "")
(match_operand:QI 1 "cmp_operand" "")))
(use (match_operand:HI 2 "hard_reg_operand" ""))
- (use (reg:HI 11))]
+ (use (reg:HI SOFT_Z_REGNUM))]
"z_replacement_completed == 2"
[(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
(set (match_dup 2) (match_dup 3))
@@ -620,7 +621,7 @@
;; because there is no memory->memory moves. It must be defined with
;; earlyclobber (&) so that it does not appear in the source or destination
;; address. Providing patterns for movdi/movdf allows GCC to generate
-;; better code. [Until now, the scratch register is limited to D becuse
+;; better code. [Until now, the scratch register is limited to D because
;; otherwise we can run out of registers in the A_REGS class for reload].
;;
;; For 68HC12, the scratch register is not necessary. To use the same
@@ -2089,9 +2090,9 @@
}")
(define_insn "*addhi3_68hc12"
- [(set (match_operand:HI 0 "register_operand" "=xy,d,xy*z*w,xy*z*w,xy*z")
+ [(set (match_operand:HI 0 "register_operand" "=xyd,d,xy*z*w,xy*z*w,xy*z")
(plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,xy*zw,0")
- (match_operand:HI 2 "general_operand" "N,im*A*wu,id,id,!mu*A")))]
+ (match_operand:HI 2 "general_operand" "i,m*A*wu,id,id,!mu*A")))]
"TARGET_M6812"
"*
{
@@ -2278,9 +2279,9 @@
}")
(define_insn "*addhi3"
- [(set (match_operand:HI 0 "hard_reg_operand" "=A,d,!A,d*A,!d*A")
- (plus:HI (match_operand:HI 1 "general_operand" "%0,0,0,0,0")
- (match_operand:HI 2 "general_operand" "N,i,I,mi*A*d,!u*d*w")))]
+ [(set (match_operand:HI 0 "hard_reg_operand" "=A,dA,d,!A,d*A,!d*A")
+ (plus:HI (match_operand:HI 1 "general_operand" "%0,0,0,0,0,0")
+ (match_operand:HI 2 "general_operand" "N,I,i,I,mi*A*d,!u*d*w")))]
"TARGET_M6811"
"*
{
@@ -2894,12 +2895,15 @@
}")
(define_insn "mulqi3"
- [(set (match_operand:QI 0 "register_operand" "=d")
- (mult:QI (match_operand:QI 1 "nonimmediate_operand" "dum")
- (match_operand:QI 2 "nonimmediate_operand" "dum")))]
+ [(set (match_operand:QI 0 "register_operand" "=d,*x,*y")
+ (mult:QI (match_operand:QI 1 "nonimmediate_operand" "%dum,0,0")
+ (match_operand:QI 2 "general_operand" "dium,*xium,*yium")))]
""
"*
{
+ if (A_REG_P (operands[0]))
+ return \"#\";
+
if (D_REG_P (operands[1]) && D_REG_P (operands[2]))
{
output_asm_insn (\"tba\", operands);
@@ -2925,6 +2929,28 @@
return \"mul\";
}")
+(define_split
+ [(set (match_operand:QI 0 "hard_addr_reg_operand" "")
+ (mult:QI (match_operand:QI 1 "general_operand" "")
+ (match_operand:QI 2 "general_operand" "")))]
+ "z_replacement_completed == 2"
+ [(parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+ (set (match_dup 3) (reg:HI D_REGNUM))])
+ (set (reg:QI D_REGNUM) (mult:QI (match_dup 5) (match_dup 6)))
+ (parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+ (set (match_dup 3) (reg:HI D_REGNUM))])]
+ "
+ operands[3] = gen_rtx (REG, HImode, REGNO (operands[0]));
+ if (A_REG_P (operands[1]))
+ operands[5] = gen_rtx (REG, QImode, HARD_D_REGNUM);
+ else
+ operands[5] = operands[1];
+ if (A_REG_P (operands[2]))
+ operands[6] = gen_rtx (REG, QImode, HARD_D_REGNUM);
+ else
+ operands[6] = operands[2];
+ ")
+
(define_insn "mulqihi3"
[(set (match_operand:HI 0 "register_operand" "=d,d")
(mult:HI (sign_extend:HI
@@ -4446,15 +4472,21 @@
(set (match_dup 4) (match_dup 2))
(set (match_dup 2) (match_dup 5))
- (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2)
+ (rotate:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 6) (match_dup 2))
(set (match_dup 2) (match_dup 7))
- (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2)
+ (rotate:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 8) (match_dup 2))
(set (match_dup 2) (match_dup 9))
- (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2)
+ (rotate:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 10) (match_dup 2))]
"operands[3] = m68hc11_gen_lowpart (SImode, operands[1]);
operands[5] = m68hc11_gen_highpart (HImode, operands[3]);
@@ -4757,13 +4789,16 @@
(define_insn "*ashlhi3_2"
- [(set (match_operand:HI 0 "register_operand" "=d")
- (ashift:HI (match_operand:HI 1 "register_operand" "0")
- (match_operand:HI 2 "register_operand" "+x")))
+ [(set (match_operand:HI 0 "register_operand" "=d,*x")
+ (ashift:HI (match_operand:HI 1 "register_operand" "0,0")
+ (match_operand:HI 2 "register_operand" "+x,+d")))
(clobber (match_dup 2))]
""
"*
{
+ if (A_REG_P (operands[0]))
+ return \"#\";
+
CC_STATUS_INIT;
return \"bsr\\t___lshlhi3\";
}")
@@ -5046,21 +5081,17 @@
}")
(define_insn "*ashrhi3"
- [(set (match_operand:HI 0 "register_operand" "=d,x")
+ [(set (match_operand:HI 0 "register_operand" "=d,*x")
(ashiftrt:HI (match_operand:HI 1 "register_operand" "0,0")
(match_operand:HI 2 "register_operand" "+x,+d")))
(clobber (match_dup 2))]
""
"*
{
- CC_STATUS_INIT;
- if (D_REG_P (operands[2]))
- output_asm_insn (\"xgd%0\", operands);
+ if (A_REG_P (operands[0]))
+ return \"#\";
output_asm_insn (\"bsr\\t___ashrhi3\", operands);
- if (D_REG_P (operands[2]))
- output_asm_insn (\"xgd%0\", operands);
-
return \"\";
}")
@@ -5310,15 +5341,18 @@
(set (match_dup 4) (match_dup 2))
(set (match_dup 2) (match_dup 5))
- (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 6) (match_dup 2))
(set (match_dup 2) (match_dup 7))
- (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 8) (match_dup 2))
(set (match_dup 2) (match_dup 9))
- (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+ (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))])
(set (match_dup 10) (match_dup 2))]
"operands[3] = m68hc11_gen_highpart (SImode, operands[1]);
operands[5] = m68hc11_gen_lowpart (HImode, operands[3]);
@@ -5594,22 +5628,17 @@
}")
(define_insn "*lshrhi3"
- [(set (match_operand:HI 0 "register_operand" "=d,x")
+ [(set (match_operand:HI 0 "register_operand" "=d,*x")
(lshiftrt:HI (match_operand:HI 1 "register_operand" "0,0")
(match_operand:HI 2 "register_operand" "+x,+d")))
(clobber (match_dup 2))]
""
"*
{
- CC_STATUS_INIT;
- if (D_REG_P (operands[2]))
- output_asm_insn (\"xgd%0\", operands);
-
- output_asm_insn (\"bsr\\t___lshrhi3\", operands);
- if (D_REG_P (operands[2]))
- output_asm_insn (\"xgd%0\", operands);
+ if (A_REG_P (operands[0]))
+ return \"#\";
- return \"\";
+ return \"bsr\\t___lshrhi3\";
}")
(define_expand "lshrqi3"
@@ -5750,7 +5779,8 @@
(define_insn "*rotlhi3_with_carry"
[(set (match_operand:HI 0 "register_operand" "=d")
(rotate:HI (match_operand:HI 1 "register_operand" "0")
- (reg:HI CC_REGNUM)))]
+ (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))]
""
"*
{
@@ -5761,7 +5791,8 @@
(define_insn "*rotrhi3_with_carry"
[(set (match_operand:HI 0 "register_operand" "=d")
(rotatert:HI (match_operand:HI 1 "register_operand" "0")
- (reg:HI CC_REGNUM)))]
+ (const_int 1)))
+ (clobber (reg:HI CC_REGNUM))]
""
"*
{
@@ -5780,7 +5811,41 @@
return \"\";
}")
-(define_insn "rotlhi3"
+(define_insn "rotrqi3"
+ [(set (match_operand:QI 0 "register_operand" "=d,!q")
+ (rotatert:QI (match_operand:QI 1 "register_operand" "0,0")
+ (match_operand:QI 2 "const_int_operand" "i,i")))]
+ ""
+ "*
+{
+ m68hc11_gen_rotate (ROTATERT, insn, operands);
+ return \"\";
+}")
+
+(define_expand "rotlhi3"
+ [(set (match_operand:HI 0 "register_operand" "")
+ (rotate:HI (match_operand:HI 1 "register_operand" "")
+ (match_operand:HI 2 "general_operand" "")))]
+ ""
+ "
+{
+ if (GET_CODE (operands[2]) != CONST_INT)
+ {
+ rtx scratch = gen_reg_rtx (HImode);
+ operand1 = force_reg (HImode, operand1);
+
+ emit_move_insn (scratch, operands[2]);
+ emit_insn (gen_rtx (PARALLEL, VOIDmode,
+ gen_rtvec (2, gen_rtx (SET, VOIDmode,
+ operand0,
+ gen_rtx_ROTATE (HImode,
+ operand1, scratch)),
+ gen_rtx (CLOBBER, VOIDmode, scratch))));
+ DONE;
+ }
+}")
+
+(define_insn "rotlhi3_const"
[(set (match_operand:HI 0 "register_operand" "=d")
(rotate:HI (match_operand:HI 1 "register_operand" "0")
(match_operand:HI 2 "const_int_operand" "i")))]
@@ -5791,18 +5856,44 @@
return \"\";
}")
-(define_insn "rotrqi3"
- [(set (match_operand:QI 0 "register_operand" "=d,!q")
- (rotatert:QI (match_operand:QI 1 "register_operand" "0,0")
- (match_operand:QI 2 "const_int_operand" "i,i")))]
+(define_insn "*rotlhi3"
+ [(set (match_operand:HI 0 "register_operand" "=d,*x")
+ (rotate:HI (match_operand:HI 1 "register_operand" "0,0")
+ (match_operand:HI 2 "general_operand" "+x,+d")))
+ (clobber (match_dup 2))]
""
"*
{
- m68hc11_gen_rotate (ROTATERT, insn, operands);
- return \"\";
+ if (A_REG_P (operands[0]))
+ return \"#\";
+
+ return \"bsr\\t___rotlhi3\";
}")
-(define_insn "rotrhi3"
+(define_expand "rotrhi3"
+ [(set (match_operand:HI 0 "register_operand" "")
+ (rotatert:HI (match_operand:HI 1 "general_operand" "")
+ (match_operand:HI 2 "general_operand" "")))]
+ ""
+ "
+{
+ if (GET_CODE (operands[2]) != CONST_INT)
+ {
+ rtx scratch = gen_reg_rtx (HImode);
+ operand1 = force_reg (HImode, operand1);
+
+ emit_move_insn (scratch, operands[2]);
+ emit_insn (gen_rtx (PARALLEL, VOIDmode,
+ gen_rtvec (2, gen_rtx (SET, VOIDmode,
+ operand0,
+ gen_rtx_ROTATERT (HImode,
+ operand1, scratch)),
+ gen_rtx (CLOBBER, VOIDmode, scratch))));
+ DONE;
+ }
+}")
+
+(define_insn "rotrhi3_const"
[(set (match_operand:HI 0 "register_operand" "=d")
(rotatert:HI (match_operand:HI 1 "register_operand" "0")
(match_operand:HI 2 "const_int_operand" "i")))]
@@ -5813,6 +5904,242 @@
return \"\";
}")
+(define_insn "*rotrhi3"
+ [(set (match_operand:HI 0 "register_operand" "=d,*x")
+ (rotatert:HI (match_operand:HI 1 "register_operand" "0,0")
+ (match_operand:HI 2 "general_operand" "+x,+d")))
+ (clobber (match_dup 2))]
+ ""
+ "*
+{
+ if (A_REG_P (operands[0]))
+ return \"#\";
+
+ return \"bsr\\t___rotrhi3\";
+}")
+
+;; Split a shift operation on an address register in a shift
+;; on D_REGNUM.
+(define_split /* "*rotrhi3_addr" */
+ [(set (match_operand:HI 0 "hard_addr_reg_operand" "")
+ (match_operator:HI 3 "m68hc11_shift_operator"
+ [(match_operand:HI 1 "register_operand" "")
+ (match_operand:HI 2 "register_operand" "")]))
+ (clobber (match_dup 2))]
+ "z_replacement_completed == 2"
+ [(parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+ (set (match_dup 0) (reg:HI D_REGNUM))])
+ (parallel [(set (reg:HI D_REGNUM)
+ (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 0)]))
+ (clobber (match_dup 0))])
+ (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+ (set (match_dup 0) (reg:HI D_REGNUM))])]
+ "")
+
+;;--------------------------------------------------------------------
+;;- 68HC12 Decrement/Increment and branch
+;;--------------------------------------------------------------------
+;; These patterns are used by loop optimization as well as peephole2
+;; They must handle reloading themselves and the scratch register
+;; is used for that. Even if we accept memory operand, we must not
+;; accept them on the predicate because it might create too many reloads.
+;; (specially on HC12 due to its auto-incdec addressing modes).
+;;
+(define_expand "decrement_and_branch_until_zero"
+ [(parallel [(set (pc)
+ (if_then_else
+ (ne (plus:HI (match_operand:HI 0 "register_operand" "")
+ (const_int 0))
+ (const_int 1))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:HI (match_dup 0)
+ (const_int -1)))
+ (clobber (match_scratch:HI 2 ""))])]
+ "TARGET_M6812"
+ "")
+
+(define_expand "doloop_end"
+ [(use (match_operand 0 "" "")) ; loop pseudo
+ (use (match_operand 1 "" "")) ; iterations; zero if unknown
+ (use (match_operand 2 "" "")) ; max iterations
+ (use (match_operand 3 "" "")) ; loop level
+ (use (match_operand 4 "" ""))] ; label
+ "TARGET_M6812"
+ "
+{
+ /* Reject non-constant loops as it generates bigger code due to
+ the handling of the loop register. We can do better by using
+ the peephole2 dbcc/ibcc patterns. */
+ if (INTVAL (operands[1]) == 0)
+ {
+ FAIL;
+ }
+ if (GET_MODE (operands[0]) == HImode)
+ {
+ emit_jump_insn (gen_m68hc12_dbcc_dec_hi (operands[0],
+ gen_rtx (NE, HImode),
+ operands[4]));
+ DONE;
+ }
+ if (GET_MODE (operands[0]) == QImode)
+ {
+ emit_jump_insn (gen_m68hc12_dbcc_dec_qi (operands[0],
+ gen_rtx (NE, QImode),
+ operands[4]));
+ DONE;
+ }
+
+ FAIL;
+}")
+
+;; Decrement-and-branch insns.
+(define_insn "m68hc12_dbcc_dec_hi"
+ [(set (pc)
+ (if_then_else
+ (match_operator 1 "m68hc11_eq_compare_operator"
+ [(match_operand:HI 0 "register_operand" "+dxy,m*u*z")
+ (const_int 1)])
+ (label_ref (match_operand 2 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:HI (match_dup 0) (const_int -1)))
+ (clobber (match_scratch:HI 3 "=X,dxy"))]
+ "TARGET_M6812"
+ "*
+{
+ if (!H_REG_P (operands[0]))
+ return \"#\";
+
+ CC_STATUS_INIT;
+ if (GET_CODE (operands[1]) == EQ)
+ return \"dbeq\\t%0,%l2\";
+ else
+ return \"dbne\\t%0,%l2\";
+}")
+
+;; Decrement-and-branch insns.
+(define_insn "m68hc12_dbcc_inc_hi"
+ [(set (pc)
+ (if_then_else
+ (match_operator 1 "m68hc11_eq_compare_operator"
+ [(match_operand:HI 0 "register_operand" "+dxy,m*u*z")
+ (const_int -1)])
+ (label_ref (match_operand 2 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:HI (match_dup 0) (const_int 1)))
+ (clobber (match_scratch:HI 3 "=X,dxy"))]
+ "TARGET_M6812"
+ "*
+{
+ if (!H_REG_P (operands[0]))
+ return \"#\";
+
+ CC_STATUS_INIT;
+ if (GET_CODE (operands[1]) == EQ)
+ return \"ibeq\\t%0,%l2\";
+ else
+ return \"ibeq\\t%0,%l2\";
+}")
+
+;; Decrement-and-branch (QImode).
+(define_insn "m68hc12_dbcc_dec_qi"
+ [(set (pc)
+ (if_then_else
+ (match_operator 1 "m68hc11_eq_compare_operator"
+ [(match_operand:QI 0 "register_operand" "+d,m*u*A")
+ (const_int 1)])
+ (label_ref (match_operand 2 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:QI (match_dup 0) (const_int -1)))
+ (clobber (match_scratch:QI 3 "=X,d"))]
+ "TARGET_M6812"
+ "*
+{
+ if (!D_REG_P (operands[0]))
+ return \"#\";
+
+ CC_STATUS_INIT;
+ if (GET_CODE (operands[1]) == EQ)
+ return \"dbeq\\tb,%l2\";
+ else
+ return \"dbne\\tb,%l2\";
+}")
+
+;; Increment-and-branch (QImode).
+(define_insn "m68hc12_dbcc_inc_qi"
+ [(set (pc)
+ (if_then_else
+ (match_operator 1 "m68hc11_eq_compare_operator"
+ [(match_operand:QI 0 "register_operand" "+d,m*u*A")
+ (const_int -1)])
+ (label_ref (match_operand 2 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:QI (match_dup 0) (const_int 1)))
+ (clobber (match_scratch:QI 3 "=X,d"))]
+ "TARGET_M6812"
+ "*
+{
+ if (!D_REG_P (operands[0]))
+ return \"#\";
+
+ CC_STATUS_INIT;
+ if (GET_CODE (operands[1]) == EQ)
+ return \"ibeq\\tb,%l2\";
+ else
+ return \"ibeq\\tb,%l2\";
+}")
+
+;; Split the above to handle the case where operand 0 is in memory
+;; (a register that couldn't get a hard register)
+(define_split
+ [(set (pc)
+ (if_then_else
+ (match_operator 3 "m68hc11_eq_compare_operator"
+ [(match_operand:HI 0 "general_operand" "")
+ (match_operand:HI 1 "const_int_operand" "")])
+ (label_ref (match_operand 4 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:HI (match_dup 0) (match_operand 2 "const_int_operand" "")))
+ (clobber (match_operand:HI 5 "hard_reg_operand" ""))]
+ "TARGET_M6812 && reload_completed"
+ [(set (match_dup 5) (match_dup 0))
+ (set (match_dup 5) (plus:HI (match_dup 5) (match_dup 2)))
+ (set (match_dup 0) (match_dup 5))
+ (set (pc)
+ (if_then_else (match_op_dup 3
+ [(match_dup 5) (const_int 0)])
+ (label_ref (match_dup 4)) (pc)))]
+ "")
+
+;; Split the above to handle the case where operand 0 is in memory
+;; (a register that couldn't get a hard register)
+(define_split
+ [(set (pc)
+ (if_then_else
+ (match_operator 3 "m68hc11_eq_compare_operator"
+ [(match_operand:QI 0 "general_operand" "")
+ (match_operand:QI 1 "const_int_operand" "")])
+ (label_ref (match_operand 4 "" ""))
+ (pc)))
+ (set (match_dup 0)
+ (plus:QI (match_dup 0) (match_operand 2 "const_int_operand" "")))
+ (clobber (match_operand:QI 5 "hard_reg_operand" ""))]
+ "TARGET_M6812 && reload_completed"
+ [(set (match_dup 5) (match_dup 0))
+ (set (match_dup 5) (plus:QI (match_dup 5) (match_dup 2)))
+ (set (match_dup 0) (match_dup 5))
+ (set (pc)
+ (if_then_else (match_op_dup 3
+ [(match_dup 5) (const_int 0)])
+ (label_ref (match_dup 4)) (pc)))]
+ "")
+
;;--------------------------------------------------------------------
;;- Jumps and transfers
;;--------------------------------------------------------------------
@@ -6279,14 +6606,27 @@
""
"*
{
- int far_call = current_function_far;
-
if (GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
{
- if (SYMBOL_REF_FLAG (XEXP (operands[0], 0)) == 1)
+ if (m68hc11_is_far_symbol (operands[0]))
+ {
+ if (TARGET_M6812)
+ {
+ output_asm_insn (\"call\\t%0\", operands);
+ return \"\";
+ }
+ else
+ {
+ output_asm_insn (\"pshb\", operands);
+ output_asm_insn (\"ldab\\t#%%page(%0)\", operands);
+ output_asm_insn (\"ldy\\t#%%addr(%0)\", operands);
+ return \"jsr\\t__call_a32\";
+ }
+ }
+ if (m68hc11_is_trap_symbol (operands[0]))
return \"swi\";
else
- return far_call ? \"call\\t%0\" : \"bsr\\t%0\";
+ return \"bsr\\t%0\";
}
else
{
@@ -6301,14 +6641,27 @@
""
"*
{
- int far_call = current_function_far;
-
if (GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
{
- if (SYMBOL_REF_FLAG (XEXP (operands[1], 0)) == 1)
+ if (m68hc11_is_far_symbol (operands[1]))
+ {
+ if (TARGET_M6812)
+ {
+ output_asm_insn (\"call\\t%1\", operands);
+ return \"\";
+ }
+ else
+ {
+ output_asm_insn (\"pshb\", operands);
+ output_asm_insn (\"ldab\\t#%%page(%1)\", operands);
+ output_asm_insn (\"ldy\\t#%%addr(%1)\", operands);
+ return \"jsr\\t__call_a32\";
+ }
+ }
+ if (m68hc11_is_trap_symbol (operands[1]))
return \"swi\";
else
- return far_call ? \"call\\t%1\" : \"bsr\\t%1\";
+ return \"bsr\\t%1\";
}
else
{
@@ -6393,18 +6746,18 @@
if (ret_size && ret_size <= 2)
{
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (2, gen_rtx_RETURN (VOIDmode),
- gen_rtx_USE (VOIDmode,
- gen_rtx_REG (HImode, 1)))));
+ emit_jump_insn (gen_rtx (PARALLEL, VOIDmode,
+ gen_rtvec (2, gen_rtx_RETURN (VOIDmode),
+ gen_rtx_USE (VOIDmode,
+ gen_rtx_REG (HImode, 1)))));
DONE;
}
if (ret_size)
{
- emit_insn (gen_rtx (PARALLEL, VOIDmode,
- gen_rtvec (2, gen_rtx_RETURN (VOIDmode),
- gen_rtx_USE (VOIDmode,
- gen_rtx_REG (SImode, 0)))));
+ emit_jump_insn (gen_rtx (PARALLEL, VOIDmode,
+ gen_rtvec (2, gen_rtx_RETURN (VOIDmode),
+ gen_rtx_USE (VOIDmode,
+ gen_rtx_REG (SImode, 0)))));
DONE;
}
}")
@@ -6422,7 +6775,25 @@
return \"\";
if (current_function_interrupt || current_function_trap)
return \"rti\";
- return current_function_far ? \"rtc\" : \"rts\";
+ else if (!current_function_far)
+ return \"rts\";
+ else if (TARGET_M6812)
+ return \"rtc\";
+ else
+ {
+ int ret_size = 0;
+
+ if (current_function_return_rtx)
+ ret_size = GET_MODE_SIZE (GET_MODE (current_function_return_rtx));
+
+ if (ret_size == 0)
+ return \"jmp\\t__return_void\";
+ if (ret_size <= 2)
+ return \"jmp\\t__return_16\";
+ if (ret_size <= 4)
+ return \"jmp\\t__return_32\";
+ return \"jmp\\t__return_16\";
+ }
}")
(define_insn "*return_16bit"
@@ -6439,7 +6810,12 @@
return \"\";
if (current_function_interrupt || current_function_trap)
return \"rti\";
- return current_function_far ? \"rtc\" : \"rts\";
+ else if (!current_function_far)
+ return \"rts\";
+ else if (TARGET_M6812)
+ return \"rtc\";
+ else
+ return \"jmp\\t__return_16\";
}")
(define_insn "*return_32bit"
@@ -6456,7 +6832,12 @@
return \"\";
if (current_function_interrupt || current_function_trap)
return \"rti\";
- return current_function_far ? \"rtc\" : \"rts\";
+ else if (!current_function_far)
+ return \"rts\";
+ else if (TARGET_M6812)
+ return \"rtc\";
+ else
+ return \"jmp\\t__return_32\";
}")
(define_insn "indirect_jump"
@@ -6488,6 +6869,62 @@
;;- Peepholes
;;--------------------------------------------------------------------
+;;--------------------------------------------------------------------
+;;- 68HC12 dbcc/ibcc peepholes
+;;--------------------------------------------------------------------
+;;
+;; Replace: "addd #-1; bne L1" into "dbne d,L1"
+;; "addd #-1; beq L1" into "dbeq d,L1"
+;; "addd #1; bne L1" into "ibne d,L1"
+;; "addd #1; beq L1" into "ibeq d,L1"
+;;
+(define_peephole2
+ [(set (match_operand:HI 0 "hard_reg_operand" "")
+ (plus:HI (match_dup 0)
+ (match_operand:HI 1 "const_int_operand" "")))
+ (set (pc)
+ (if_then_else (match_operator 2 "m68hc11_eq_compare_operator"
+ [(match_dup 0)
+ (const_int 0)])
+ (label_ref (match_operand 3 "" "")) (pc)))]
+ "TARGET_M6812 && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)"
+ [(parallel [
+ (set (pc) (if_then_else (match_op_dup 2 [(match_dup 0) (match_dup 5)])
+ (label_ref (match_dup 3)) (pc)))
+ (set (match_dup 0) (plus:HI (match_dup 0) (match_dup 1)))
+ (clobber (match_dup 4))])]
+ "operands[4] = gen_rtx_SCRATCH(HImode);
+ operands[5] = GEN_INT (-INTVAL (operands[1]));")
+
+
+;;
+;; Replace: "addb #-1; bne L1" into "dbne b,L1"
+;; "addb #-1; beq L1" into "dbeq b,L1"
+;;
+(define_peephole2
+ [(set (match_operand:QI 0 "hard_reg_operand" "")
+ (plus:QI (match_dup 0)
+ (match_operand:QI 1 "const_int_operand" "")))
+ (set (pc)
+ (if_then_else (match_operator 2 "m68hc11_eq_compare_operator"
+ [(match_dup 0)
+ (const_int 0)])
+ (label_ref (match_operand 3 "" "")) (pc)))]
+ "TARGET_M6812 && D_REG_P (operands[0])
+ && (INTVAL (operands[1]) == 1 || INTVAL (operands[1]) == -1)"
+ [(parallel [
+ (set (pc) (if_then_else (match_op_dup 2 [(match_dup 0) (match_dup 5)])
+ (label_ref (match_dup 3)) (pc)))
+ (set (match_dup 0) (plus:QI (match_dup 0) (match_dup 1)))
+ (clobber (match_dup 4))])]
+ "operands[4] = gen_rtx_SCRATCH(QImode);
+ operands[5] = GEN_INT (-INTVAL (operands[1]));")
+
+
+;;--------------------------------------------------------------------
+;;- Move peephole2
+;;--------------------------------------------------------------------
+
;;
;; Replace "leas 2,sp" with a "pulx" or a "puly".
;; On 68HC12, this is one cycle slower but one byte smaller.
@@ -6547,8 +6984,7 @@
(set (match_operand:HI 2 "hard_reg_operand" "")
(match_dup 1))]
"(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2]))
- && !reg_mentioned_p (operands[2], operands[0])
- && GET_MODE (operands[2]) == HImode"
+ && !reg_mentioned_p (operands[2], operands[0])"
[(set (match_dup 2) (match_dup 1))
(set (match_dup 0) (match_dup 2))]
"")
@@ -6673,6 +7109,29 @@
"")
;;
+;; Replace a "ldd <mem>; addd #N; std <mem>" into a
+;; "ldx <mem>; leax; stx <mem>" if we have a free X/Y register
+;; and the constant is small.
+;;
+(define_peephole2
+ [(set (match_operand:HI 0 "hard_reg_operand" "")
+ (match_operand:HI 1 "general_operand" ""))
+ (set (match_dup 0) (plus:HI (match_dup 0)
+ (match_operand:HI 2 "const_int_operand" "")))
+ (set (match_operand:HI 3 "nonimmediate_operand" "")
+ (match_dup 0))
+ (match_scratch:HI 4 "xy")]
+ "D_REG_P (operands[0])
+ && (TARGET_M6812
+ || (INTVAL (operands[2]) >= -2 && INTVAL (operands[2]) <= 2))
+ && peep2_reg_dead_p (3, operands[0])"
+ [(set (match_dup 4) (match_dup 1))
+ (set (match_dup 4) (plus:HI (match_dup 4) (match_dup 2)))
+ (set (match_dup 3) (match_dup 4))]
+ "if (reg_mentioned_p (operands[4], operands[1])) FAIL;
+ if (reg_mentioned_p (operands[4], operands[3])) FAIL;")
+
+;;
;; This peephole catches the address computations generated by the reload
;; pass.
(define_peephole
diff --git a/gcc/config/m68hc11/m68hc12.h b/gcc/config/m68hc11/m68hc12.h
index ba56c172993..f98a0d0761f 100644
--- a/gcc/config/m68hc11/m68hc12.h
+++ b/gcc/config/m68hc11/m68hc12.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for m68hc12.
- Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
- Contributed by Stephane Carrez (stcarrez@worldnet.fr).
+ Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ Contributed by Stephane Carrez (stcarrez@nerim.fr).
This file is part of GNU CC.
@@ -20,18 +20,26 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Compile and assemble for a 68hc12 unless there is a -m68hc11 option. */
-#define ASM_SPEC "%{m68hc11:-m68hc11}%{!m68hc11:-m68hc12}"
+#define ASM_SPEC \
+"%{m68hc11:-m68hc11}" \
+"%{m68hcs12:-m68hcs12}" \
+"%{!m68hc11:%{!m68hcs12:-m68hc12}}"
#define LIB_SPEC ""
#define CC1_SPEC ""
/* We need to tell the linker the target elf format. Just pass an
emulation option. This can be overriden by -Wl option of gcc. */
-#define LINK_SPEC "%{m68hc11:-m m68hc11elf}%{!m68hc11:-m m68hc12elf}"
+#define LINK_SPEC \
+"%{m68hc11:-m m68hc11elf}" \
+"%{m68hcs12:-m m68hc12elf}" \
+"%{!m68hc11:%{!m68hcs12:-m m68hc11elf}} %{mrelax:-relax}"
#define CPP_SPEC \
"%{mshort:-D__HAVE_SHORT_INT__ -D__INT__=16}\
%{!mshort:-D__INT__=32}\
%{m68hc11:-Dmc6811 -DMC6811 -Dmc68hc11}\
+ %{!m68hc11:%{!m68hc12:-Dmc6812 -DMC6812 -Dmc68hc12}}\
+ %{m68hcs12:-Dmc6812 -DMC6812 -Dmc68hcs12}\
%{!m68hc11:-Dmc6812 -DMC6812 -Dmc68hc12}\
%{fshort-double:-D__HAVE_SHORT_DOUBLE__}"
diff --git a/gcc/config/m68hc11/t-m68hc11-gas b/gcc/config/m68hc11/t-m68hc11-gas
index 1833fd56dc3..387a4cbe3d5 100644
--- a/gcc/config/m68hc11/t-m68hc11-gas
+++ b/gcc/config/m68hc11/t-m68hc11-gas
@@ -23,9 +23,9 @@ LIB1ASMFUNCS = _mulsi3 \
_regs_min _regs_frame _regs_d1_2 \
_regs_d3_4 _regs_d5_6 _regs_d7_8 _regs_d9_16 _regs_d17_32 \
_premain __exit _abort _cleanup \
- _adddi3 _subdi3 _notdi2 \
+ _adddi3 _subdi3 _notdi2 _rotlhi3 _rotrhi3 \
_ashrhi3 _lshrhi3 _lshlhi3 _ashrqi3 _lshlqi3 _map_data _init_bss \
- _ctor _dtor __far_trampoline
+ _ctor _dtor _far_tramp _call_far _return_far
TARGET_LIBGCC2_CFLAGS = -DUSE_GAS -DIN_GCC
@@ -37,10 +37,10 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/udivmodsi4.c \
LIBGCC2_DEBUG_CFLAGS =-g
LIBGCC2_CFLAGS = -Os -mrelax $(LIBGCC2_INCLUDES) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2
-MULTILIB_OPTIONS = m68hc11/m68hc12 mshort fshort-double mlong-calls
+MULTILIB_OPTIONS = m68hc11/m68hc12 mshort fshort-double
MULTILIB_DIRNAMES =
-MULTILIB_MATCHES = m68hc11=m6811 m68hc12=m6812
-MULTILIB_EXCEPTIONS = -mnoshort -mno68hc11 -mnolong-calls
+MULTILIB_MATCHES = m68hc11=m6811 m68hc12=m6812 m68hc12=m68hcs12
+MULTILIB_EXCEPTIONS = -mnoshort -mno68hc11
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
@@ -53,7 +53,7 @@ DPBIT = dp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define SMALL_MACHINE' >> dp-bit.c
echo '#define CMPtype HItype' >> dp-bit.c
- echo '#ifdef __LITTLE_ENDIAN__' > dp-bit.c
+ echo '#ifdef __LITTLE_ENDIAN__' >> dp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >>dp-bit.c
echo '#endif' >> dp-bit.c
cat $(srcdir)/config/fp-bit.c >> dp-bit.c
diff --git a/gcc/config/m68k/coff.h b/gcc/config/m68k/coff.h
index 88720d78157..13cb4ae5c55 100644
--- a/gcc/config/m68k/coff.h
+++ b/gcc/config/m68k/coff.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
m68k series COFF object files and debugging, version.
- Copyright (C) 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -55,12 +55,17 @@ Boston, MA 02111-1307, USA. */
/* config/m68k.md has an explicit reference to the program counter,
prefix this by the register prefix. */
-#define ASM_RETURN_CASE_JUMP \
- do { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
- else \
- return "jmp %%pc@(2,%0:w)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
} while (0)
/* Here are the new register names. */
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
index bf80cea9f9c..b82c10c5db3 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
@@ -194,12 +194,17 @@ Boston, MA 02111-1307, USA. */
/* Use the default action for outputting the case label. */
#undef ASM_OUTPUT_CASE_LABEL
-#define ASM_RETURN_CASE_JUMP \
- do { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
- else \
- return "jmp %%pc@(2,%0:w)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
} while (0)
/* This is how to output an assembler line that says to advance the
@@ -354,3 +359,10 @@ do { \
: "d" (_beg), "d" (_len) \
: "%d0", "%d2", "%d3"); \
}
+
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 0407dd6b8db..8c19b5e7bd4 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Motorola 68000 family.
- Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -461,7 +461,7 @@ m68k_output_function_prologue (stream, size)
}
if (dwarf2out_do_frame ())
{
- cfa_store_offset += fsize;
+ cfa_store_offset += fsize + 4;
cfa_offset = cfa_store_offset;
dwarf2out_def_cfa ("", STACK_POINTER_REGNUM, cfa_offset);
}
@@ -1737,6 +1737,7 @@ output_move_const_into_data_reg (operands)
return "moveq %1,%0";
#endif
case NOTB :
+ CC_STATUS_INIT;
operands[1] = GEN_INT (i ^ 0xff);
#if defined (MOTOROLA) && !defined (CRDS)
return "moveq%.l %1,%0\n\tnot%.b %0";
@@ -1744,6 +1745,7 @@ output_move_const_into_data_reg (operands)
return "moveq %1,%0\n\tnot%.b %0";
#endif
case NOTW :
+ CC_STATUS_INIT;
operands[1] = GEN_INT (i ^ 0xffff);
#if defined (MOTOROLA) && !defined (CRDS)
return "moveq%.l %1,%0\n\tnot%.w %0";
@@ -1751,6 +1753,7 @@ output_move_const_into_data_reg (operands)
return "moveq %1,%0\n\tnot%.w %0";
#endif
case NEGW :
+ CC_STATUS_INIT;
#if defined (MOTOROLA) && !defined (CRDS)
return "moveq%.l %#-128,%0\n\tneg%.w %0";
#else
@@ -3868,14 +3871,30 @@ m68k_output_mi_thunk (file, thunk, delta, vcall_offset, function)
const char *fmt;
if (delta > 0 && delta <= 8)
+#ifdef MOTOROLA
asm_fprintf (file, "\taddq.l %I%d,4(%Rsp)\n", (int) delta);
+#else
+ asm_fprintf (file, "\taddql %I%d,%Rsp@(4)\n", (int) delta);
+#endif
else if (delta < 0 && delta >= -8)
+#ifdef MOTOROLA
asm_fprintf (file, "\tsubq.l %I%d,4(%Rsp)\n", (int) -delta);
+#else
+ asm_fprintf (file, "\tsubql %I%d,%Rsp@(4)\n", (int) -delta);
+#endif
else
{
+#ifdef MOTOROLA
asm_fprintf (file, "\tadd.l %I");
+#else
+ asm_fprintf (file, "\taddl %I");
+#endif
fprintf (file, HOST_WIDE_INT_PRINT_DEC, delta);
+#ifdef MOTOROLA
asm_fprintf (file, ",4(%Rsp)\n");
+#else
+ asm_fprintf (file, ",%Rsp@(4)\n");
+#endif
}
xops[0] = DECL_RTL (function);
@@ -3901,7 +3920,7 @@ m68k_output_mi_thunk (file, thunk, delta, vcall_offset, function)
#ifdef USE_GAS
fmt = "bra.l %0";
#else
- fmt = "jbra %0,a1";
+ fmt = "jra %0,a1";
#endif
#endif
}
@@ -3915,7 +3934,7 @@ m68k_output_mi_thunk (file, thunk, delta, vcall_offset, function)
fmt = "jmp %0";
#endif
#else
- fmt = "jbra %0";
+ fmt = "jra %0";
#endif
}
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 969e5dc3099..3451b9ec8bd 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -1,5 +1,5 @@
;;- Machine description for GNU compiler, Motorola 68000 Version
-;; Copyright (C) 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
+;; Copyright (C) 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
;; Free Software Foundation, Inc.
;; This file is part of GNU CC.
@@ -1588,7 +1588,7 @@
"
{
operands[1] = make_safe_from (operands[1], operands[0]);
- operands[2] = gen_lowpart (HImode, operands[0]);
+ operands[2] = gen_lowpart_SUBREG (HImode, operands[0]);
}")
(define_expand "zero_extendqihi2"
@@ -1600,7 +1600,7 @@
"
{
operands[1] = make_safe_from (operands[1], operands[0]);
- operands[2] = gen_lowpart (QImode, operands[0]);
+ operands[2] = gen_lowpart_SUBREG (QImode, operands[0]);
}")
(define_expand "zero_extendqisi2"
@@ -1612,7 +1612,7 @@
"
{
operands[1] = make_safe_from (operands[1], operands[0]);
- operands[2] = gen_lowpart (QImode, operands[0]);
+ operands[2] = gen_lowpart_SUBREG (QImode, operands[0]);
}")
;; Patterns to recognize zero-extend insns produced by the combiner.
@@ -3122,7 +3122,7 @@
[(parallel
[(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
(mult:SI (match_operand:SI 1 "register_operand" "")
- (match_operand:SI 2 "nonimmediate_operand" "")))
+ (match_operand:SI 2 "register_operand" "")))
(set (subreg:SI (match_dup 0) 0)
(truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
(zero_extend:DI (match_dup 2)))
@@ -3161,7 +3161,7 @@
[(parallel
[(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4)
(mult:SI (match_operand:SI 1 "register_operand" "")
- (match_operand:SI 2 "nonimmediate_operand" "")))
+ (match_operand:SI 2 "register_operand" "")))
(set (subreg:SI (match_dup 0) 0)
(truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
(sign_extend:DI (match_dup 2)))
@@ -3862,7 +3862,7 @@
case -1 :
/* FIXME : a scratch register would be welcome here if operand[0]
is not a register */
- output_asm_insn (\"move%.l %#-1,%R0\", operands);
+ output_asm_insn (\"move%.l %#-1,%0\", operands);
break;
default :
{
@@ -6973,17 +6973,33 @@
#ifdef SGS
#ifdef ASM_OUTPUT_CASE_LABEL
if (TARGET_5200)
- return \"ext%.l %0\;jmp 6(%%pc,%0.l)\";
+ {
+ if (ADDRESS_REG_P (operands[0]))
+ return \"jmp 6(%%pc,%0.l)\";
+ else
+ return \"ext%.l %0\;jmp 6(%%pc,%0.l)\";
+ }
else
return \"jmp 6(%%pc,%0.w)\";
#else
if (TARGET_5200)
{
+ if (ADDRESS_REG_P (operands[0]))
+ {
#ifdef CRDS
- return \"ext%.l %0\;jmp 2(pc,%0.l)\";
+ return \"jmp 2(pc,%0.l)\";
#else
- return \"extl %0\;jmp 2(%%pc,%0.l)\";
+ return \"jmp 2(%%pc,%0.l)\";
#endif /* end !CRDS */
+ }
+ else
+ {
+#ifdef CRDS
+ return \"ext%.l %0\;jmp 2(pc,%0.l)\";
+#else
+ return \"extl %0\;jmp 2(%%pc,%0.l)\";
+#endif /* end !CRDS */
+ }
}
else
{
@@ -6997,11 +7013,22 @@
#else /* not SGS */
if (TARGET_5200)
{
+ if (ADDRESS_REG_P (operands[0]))
+ {
#ifdef MOTOROLA
- return \"ext%.l %0\;jmp (2,pc,%0.l)\";
+ return \"jmp (2,pc,%0.l)\";
#else
- return \"extl %0\;jmp pc@(2,%0:l)\";
+ return \"jmp pc@(2,%0:l)\";
#endif
+ }
+ else
+ {
+#ifdef MOTOROLA
+ return \"ext%.l %0\;jmp (2,pc,%0.l)\";
+#else
+ return \"extl %0\;jmp pc@(2,%0:l)\";
+#endif
+ }
}
else
{
diff --git a/gcc/config/m68k/m68kelf.h b/gcc/config/m68k/m68kelf.h
index 7866a239209..e5145c9d70c 100644
--- a/gcc/config/m68k/m68kelf.h
+++ b/gcc/config/m68k/m68kelf.h
@@ -1,7 +1,7 @@
/* m68kelf support, derived from m68kv4.h */
/* Target definitions for GNU compiler for mc680x0 running System V.4
- Copyright (C) 1991, 1993, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1993, 2000, 2002 Free Software Foundation, Inc.
Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com).
@@ -73,12 +73,17 @@ Boston, MA 02111-1307, USA. */
/* config/m68k.md has an explicit reference to the program counter,
prefix this by the register prefix. */
-#define ASM_RETURN_CASE_JUMP \
- do { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
- else \
- return "jmp %%pc@(2,%0:w)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
} while (0)
/* How to refer to registers in assembler output.
diff --git a/gcc/config/m68k/mot3300.h b/gcc/config/m68k/mot3300.h
index fb7dffa8fc7..e035148ebdc 100644
--- a/gcc/config/m68k/mot3300.h
+++ b/gcc/config/m68k/mot3300.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
SysV68 Motorola 3300 Delta Series.
- Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+ Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
Free Software Foundation, Inc.
Contributed by Abramo and Roberto Bagnara (bagnara@dipisa.di.unipi.it)
based on Alex Crain's 3B1 definitions.
@@ -437,12 +437,17 @@ Boston, MA 02111-1307, USA. */
#define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
asm_fprintf (file, "12(%Rpc,%s.", regname)
-#define ASM_RETURN_CASE_JUMP \
- do { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp 8(%%pc,%0.l)"; \
- else \
- return "jmp 8(%%pc,%0.w)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp 8(%%pc,%0.l)"; \
+ else \
+ return "ext%.l %0\n\tjmp 8(%%pc,%0.l)"; \
+ } \
+ else \
+ return "jmp 8(%%pc,%0.w)"; \
} while (0)
#else /* USE_GAS */
diff --git a/gcc/config/m68k/netbsd-elf.h b/gcc/config/m68k/netbsd-elf.h
index f9576da2905..342de6e4d91 100644
--- a/gcc/config/m68k/netbsd-elf.h
+++ b/gcc/config/m68k/netbsd-elf.h
@@ -11,7 +11,7 @@ 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 1, or (at your option)
+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,
@@ -215,15 +215,18 @@ while (0)
/* Use the default action for outputting the case label. */
#undef ASM_OUTPUT_CASE_LABEL
-#define ASM_RETURN_CASE_JUMP \
-do \
- { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
- else \
- return "jmp %%pc@(2,%0:w)"; \
- } \
-while (0)
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
+ } while (0)
/* This is how to output an assembler line that says to advance the
diff --git a/gcc/config/m68k/pbb.h b/gcc/config/m68k/pbb.h
index 6eef2acaf47..68c8d09ead5 100644
--- a/gcc/config/m68k/pbb.h
+++ b/gcc/config/m68k/pbb.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler.
Citicorp/TTI Unicom PBB version (using GAS with a %-register prefix)
- Copyright (C) 1987, 1988, 1990, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1990, 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -109,12 +109,17 @@ Boston, MA 02111-1307, USA. */
&& ! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode)) \
asm_fprintf (FILE, "\tmovl %Rd0,%Ra0\n"); }
-#define ASM_RETURN_CASE_JUMP \
- do { \
- if (TARGET_5200) \
- return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
- else \
- return "jmp %%pc@(2,%0:w)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
} while (0)
/* Although the gas we use can create .ctor and .dtor sections from N_SETT
diff --git a/gcc/config/m68k/t-crtstuff b/gcc/config/m68k/t-crtstuff
index b05764de726..a8bdb502d66 100644
--- a/gcc/config/m68k/t-crtstuff
+++ b/gcc/config/m68k/t-crtstuff
@@ -1,8 +1,10 @@
+EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crti.o crtn.o
+
# 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
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -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
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $(T)crtn.o $(srcdir)/config/m68k/crtn.s
diff --git a/gcc/config/m68k/t-m68kbare b/gcc/config/m68k/t-m68kbare
index d9651d1b75b..8bb4b948c35 100644
--- a/gcc/config/m68k/t-m68kbare
+++ b/gcc/config/m68k/t-m68kbare
@@ -15,7 +15,7 @@ xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c
MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68040/m68060 m68881/msoft-float
MULTILIB_DIRNAMES =
MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020
-MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68681 m68060/m68681
+MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
diff --git a/gcc/config/m68k/t-rtems b/gcc/config/m68k/t-rtems
new file mode 100644
index 00000000000..d0e50e22ea9
--- /dev/null
+++ b/gcc/config/m68k/t-rtems
@@ -0,0 +1,6 @@
+# Custom multilibs for RTEMS
+
+MULTILIB_OPTIONS = m68000/m68020/m5200/mcpu32/m68030/m68040/m68060 m68881/msoft-float
+MULTILIB_DIRNAMES =
+MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 mcpu32=m68332 m68020=mc68020 m68030=mc68030
+MULTILIB_EXCEPTIONS = m68000/msoft-float m5200/m68881 m5200/msoft-float mcpu32/m68881 mcpu32/msoft-float m68040/m68881 m68060/m68881
diff --git a/gcc/config/mcore/mcore-protos.h b/gcc/config/mcore/mcore-protos.h
index 9910c3a5ec0..fdf52207b93 100644
--- a/gcc/config/mcore/mcore-protos.h
+++ b/gcc/config/mcore/mcore-protos.h
@@ -69,6 +69,8 @@ extern void mcore_print_operand_address PARAMS ((FILE *, rtx));
extern void mcore_print_operand PARAMS ((FILE *, rtx, int));
extern rtx mcore_gen_compare_reg PARAMS ((RTX_CODE));
extern int mcore_symbolic_address_p PARAMS ((rtx));
+extern bool mcore_r15_operand_p PARAMS ((rtx));
+extern enum reg_class mcore_secondary_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx));
extern enum reg_class mcore_reload_class PARAMS ((rtx, enum reg_class));
extern int mcore_is_same_reg PARAMS ((rtx, rtx));
extern int mcore_arith_S_operand PARAMS ((rtx));
@@ -76,7 +78,6 @@ extern int mcore_arith_S_operand PARAMS ((rtx));
#ifdef HAVE_MACHINE_MODES
extern const char * mcore_output_move PARAMS ((rtx, rtx *, enum machine_mode));
extern const char * mcore_output_movedouble PARAMS ((rtx *, enum machine_mode));
-extern const char * mcore_output_inline_const_forced PARAMS ((rtx, rtx *, enum machine_mode));
extern int mcore_arith_reg_operand PARAMS ((rtx, enum machine_mode));
extern int mcore_general_movsrc_operand PARAMS ((rtx, enum machine_mode));
extern int mcore_general_movdst_operand PARAMS ((rtx, enum machine_mode));
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index 7068ca696e1..473dec418d3 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -1213,7 +1213,17 @@ mcore_output_move (insn, operands, mode)
if (GET_CODE (XEXP (src, 0)) == LABEL_REF)
return "lrw\t%0,[%1]"; /* a-R */
else
- return "ldw\t%0,%1"; /* r-m */
+ switch (GET_MODE (src)) /* r-m */
+ {
+ case SImode:
+ return "ldw\t%0,%1";
+ case HImode:
+ return "ld.h\t%0,%1";
+ case QImode:
+ return "ld.b\t%0,%1";
+ default:
+ abort ();
+ }
}
else if (GET_CODE (src) == CONST_INT)
{
@@ -1234,100 +1244,21 @@ mcore_output_move (insn, operands, mode)
return "lrw\t%0, %1"; /* Into the literal pool. */
}
else if (GET_CODE (dst) == MEM) /* m-r */
- return "stw\t%1,%0";
+ switch (GET_MODE (dst))
+ {
+ case SImode:
+ return "stw\t%1,%0";
+ case HImode:
+ return "st.h\t%1,%0";
+ case QImode:
+ return "st.b\t%1,%0";
+ default:
+ abort ();
+ }
abort ();
}
-/* Outputs a constant inline -- regardless of the cost.
- Useful for things where we've gotten into trouble and think we'd
- be doing an lrw into r15 (forbidden). This lets us get out of
- that pickle even after register allocation. */
-
-const char *
-mcore_output_inline_const_forced (insn, operands, mode)
- rtx insn ATTRIBUTE_UNUSED;
- rtx operands[];
- enum machine_mode mode ATTRIBUTE_UNUSED;
-{
- unsigned long value = INTVAL (operands[1]);
- unsigned long ovalue = value;
- struct piece
- {
- int low;
- int shift;
- }
- part[6];
- int i;
-
- if (mcore_const_ok_for_inline (value))
- return output_inline_const (SImode, operands);
-
- for (i = 0; (unsigned) i < ARRAY_SIZE (part); i++)
- {
- part[i].shift = 0;
- part[i].low = (value & 0x1F);
- value -= part[i].low;
-
- if (mcore_const_ok_for_inline (value))
- break;
- else
- {
- value >>= 5;
- part[i].shift = 5;
-
- while ((value & 1) == 0)
- {
- part[i].shift++;
- value >>= 1;
- }
-
- if (mcore_const_ok_for_inline (value))
- break;
- }
- }
-
- /* 5 bits per iteration, a maximum of 5 times == 25 bits and leaves
- 7 bits left in the constant -- which we know we can cover with
- a movi. The final value can't be zero otherwise we'd have stopped
- in the previous iteration. */
- if (value == 0 || ! mcore_const_ok_for_inline (value))
- abort ();
-
- /* Now, work our way backwards emitting the constant. */
-
- /* Emit the value that remains -- it will be nonzero. */
- operands[1] = GEN_INT (value);
- output_asm_insn (output_inline_const (SImode, operands), operands);
-
- while (i >= 0)
- {
- /* Shift anything we've already loaded. */
- if (part[i].shift)
- {
- operands[2] = GEN_INT (part[i].shift);
- output_asm_insn ("lsli %0,%2", operands);
- value <<= part[i].shift;
- }
-
- /* Add anything we need into the low 5 bits. */
- if (part[i].low != 0)
- {
- operands[2] = GEN_INT (part[i].low);
- output_asm_insn ("addi %0,%2", operands);
- value += part[i].low;
- }
-
- i--;
- }
-
- if (value != ovalue) /* sanity */
- abort ();
-
- /* We've output all the instructions. */
- return "";
-}
-
/* Return a sequence of instructions to perform DI or DF move.
Since the MCORE cannot move a DI or DF in one instruction, we have
to take care when we see overlapping source and dest registers. */
@@ -3009,36 +2940,53 @@ mcore_dependent_reorg (first)
}
-/* Return the reg_class to use when reloading the rtx X into the class
- CLASS. */
+/* Return true if X is something that can be moved directly into r15. */
-/* If the input is (PLUS REG CONSTANT) representing a stack slot address,
- then we want to restrict the class to LRW_REGS since that ensures that
- will be able to safely load the constant.
+bool
+mcore_r15_operand_p (x)
+ rtx x;
+{
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+ return mcore_const_ok_for_inline (INTVAL (x));
- If the input is a constant that should be loaded with mvir1, then use
- ONLYR1_REGS.
+ case REG:
+ case SUBREG:
+ case MEM:
+ return 1;
+
+ default:
+ return 0;
+ }
+}
+
+/* Implement SECONDARY_RELOAD_CLASS. If CLASS contains r15, and we can't
+ directly move X into it, use r1-r14 as a temporary. */
+enum reg_class
+mcore_secondary_reload_class (class, mode, x)
+ enum reg_class class;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+ rtx x;
+{
+ if (TEST_HARD_REG_BIT (reg_class_contents[class], 15)
+ && !mcore_r15_operand_p (x))
+ return LRW_REGS;
+ return NO_REGS;
+}
- ??? We don't handle the case where we have (PLUS REG CONSTANT) and
- the constant should be loaded with mvir1, because that can lead to cases
- where an instruction needs two ONLYR1_REGS reloads. */
+/* Return the reg_class to use when reloading the rtx X into the class
+ CLASS. If X is too complex to move directly into r15, prefer to
+ use LRW_REGS instead. */
enum reg_class
mcore_reload_class (x, class)
rtx x;
enum reg_class class;
{
- enum reg_class new_class;
-
- if (class == GENERAL_REGS && CONSTANT_P (x)
- && (GET_CODE (x) != CONST_INT
- || ( ! CONST_OK_FOR_I (INTVAL (x))
- && ! CONST_OK_FOR_M (INTVAL (x))
- && ! CONST_OK_FOR_N (INTVAL (x)))))
- new_class = LRW_REGS;
- else
- new_class = class;
+ if (reg_class_subset_p (LRW_REGS, class) && !mcore_r15_operand_p (x))
+ return LRW_REGS;
- return new_class;
+ return class;
}
/* Tell me if a pair of reg/subreg rtx's actually refer to the same
diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h
index 7bce37cd227..4e729972f31 100644
--- a/gcc/config/mcore/mcore.h
+++ b/gcc/config/mcore/mcore.h
@@ -137,7 +137,7 @@ extern int target_flags;
{"relax-immediates", RELAX_IMM_BIT, \
"" }, \
{"no-relax-immediates", - RELAX_IMM_BIT, \
- N_("Do not arbitary sized immediates in bit operations") }, \
+ N_("Do not arbitrary sized immediates in bit operations") }, \
{"wide-bitfields", W_FIELD_BIT, \
N_("Always treat bit-field as int-sized") }, \
{"no-wide-bitfields", - W_FIELD_BIT, \
@@ -610,7 +610,8 @@ extern const enum reg_class reg_class_from_letter[];
/* Return the register class of a scratch register needed to copy IN into
or out of a register in CLASS in MODE. If it can be done directly,
NO_REGS is returned. */
-#define SECONDARY_RELOAD_CLASS(CLASS, MODE, X) NO_REGS
+#define SECONDARY_RELOAD_CLASS(CLASS, MODE, X) \
+ mcore_secondary_reload_class (CLASS, MODE, X)
/* Return the maximum number of consecutive registers
needed to represent mode MODE in a register of class CLASS.
diff --git a/gcc/config/mcore/mcore.md b/gcc/config/mcore/mcore.md
index 7e74a98e061..6d121f01f4c 100644
--- a/gcc/config/mcore/mcore.md
+++ b/gcc/config/mcore/mcore.md
@@ -150,7 +150,7 @@
;; ; This is done to allow bit field masks to fold together in combine.
;; ; The reload phase will force the immediate into a register at the
;; ; very end. This helps in some cases, but hurts in others: we'd
-;; ; really like to cse these immediates. However, there is an phase
+;; ; really like to cse these immediates. However, there is a phase
;; ; ordering problem here. cse picks up individual masks and cse's
;; ; those, but not folded masks (cse happens before combine). It's
;; ; not clear what the best solution is because we really want cse
@@ -1226,101 +1226,20 @@
{
if (GET_CODE (operands[0]) == MEM)
operands[1] = force_reg (SImode, operands[1]);
- else if (CONSTANT_P (operands[1])
- && (GET_CODE (operands[1]) != CONST_INT
- || ( ! CONST_OK_FOR_I (INTVAL (operands[1]))
- && ! CONST_OK_FOR_M (INTVAL (operands[1]))
- && ! CONST_OK_FOR_N (INTVAL (operands[1]))
- && (! TARGET_HARDLIT ||
- ! mcore_const_ok_for_inline (INTVAL (operands[1])))))
- && ! reload_completed
- && ! reload_in_progress
- && GET_CODE (operands[0]) == REG
- && REGNO (operands[0]) < FIRST_PSEUDO_REGISTER
- && (REGNO (operands[0]) == STACK_POINTER_REGNUM
- || REGNO (operands[0]) == LK_REG))
- operands[1] = force_reg (SImode, operands[1]);
}")
-;;; Must put a/i before r/r so that it will be preferred when the dest is
-;;; a hard register. Must put a/R before r/m.
-;;; DO WE NEED a/i ANYMORE?
-
(define_insn ""
- [(set (match_operand:SI 0 "mcore_general_movdst_operand" "=r,r,r,a,r,r,a,r,m")
- (match_operand:SI 1 "mcore_general_movsrc_operand" "I,M,N,i,r,c,R,m,r"))]
+ [(set (match_operand:SI 0 "mcore_general_movdst_operand" "=r,r,a,r,a,r,m")
+ (match_operand:SI 1 "mcore_general_movsrc_operand" "r,P,i,c,R,m,r"))]
"(register_operand (operands[0], SImode)
- || register_operand (operands[1], SImode))
- && ! (CONSTANT_P (operands[1])
- && (GET_CODE (operands[1]) != CONST_INT
- || ( ! CONST_OK_FOR_I (INTVAL (operands[1]))
- && ! CONST_OK_FOR_M (INTVAL (operands[1]))
- && ! CONST_OK_FOR_N (INTVAL (operands[1]))))
- && GET_CODE (operands[0]) == REG
- && REGNO (operands[0]) < FIRST_PSEUDO_REGISTER
- && (REGNO (operands[0]) == STACK_POINTER_REGNUM
- || REGNO (operands[0]) == LK_REG))"
+ || register_operand (operands[1], SImode))"
"* return mcore_output_move (insn, operands, SImode);"
- [(set_attr "type" "move,move,move,move,move,move,load,load,store")])
+ [(set_attr "type" "move,move,move,move,load,load,store")])
-;; This is to work around a bug in reload.
-(define_insn ""
- [(set (match_operand:SI 0 "register_operand" "=r")
- (match_operand:SI 1 "immediate_operand" "i"))]
- "((reload_in_progress || reload_completed)
- && CONSTANT_P (operands[1])
- && GET_CODE (operands[1]) == CONST_INT
- && ! CONST_OK_FOR_I (INTVAL (operands[1]))
- && ! CONST_OK_FOR_M (INTVAL (operands[1]))
- && ! CONST_OK_FOR_N (INTVAL (operands[1]))
- && GET_CODE (operands[0]) == REG
- && REGNO (operands[0]) == LK_REG)"
- "* return mcore_output_inline_const_forced (insn, operands, SImode);"
- [(set_attr "type" "load")])
-
-;; (define_expand "reload_insi"
-;; [(parallel [(match_operand:SI 0 "register_operand" "=r")
-;; (match_operand:SI 1 "general_operand" "")
-;; (match_operand:DI 2 "register_operand" "=&r")])]
-;; ""
-;; "
-;; {
-;; if (CONSTANT_P (operands[1])
-;; && GET_CODE (operands[1]) == CONST_INT
-;; && ! CONST_OK_FOR_I (INTVAL (operands[1]))
-;; && ! CONST_OK_FOR_M (INTVAL (operands[1]))
-;; && ! CONST_OK_FOR_N (INTVAL (operands[1]))
-;; && GET_CODE (operands[0]) == REG
-;; && (REGNO (operands[0]) == STACK_POINTER_REGNUM
-;; || REGNO (operands[0]) == LK_REG))
-;; {
-;; rtx tmp;
-;;
-;; if ( REGNO (operands[2]) == REGNO (operands[0])
-;; || REGNO (operands[2]) == STACK_POINTER_REGNUM
-;; || REGNO (operands[2]) == LK_REG)
-;; tmp = gen_rtx_REG (SImode, REGNO (operands[2]) + 1);
-;; else
-;; tmp = gen_rtx_REG (SImode, REGNO (operands[2]));
-;;
-;; emit_insn (gen_movsi (tmp, operands[1]));
-;; emit_insn (gen_movsi (operands[0], tmp));
-;; DONE;
-;; }
-;; emit_insn (gen_movsi (operands[0], operands[1]));
-;; DONE;
-;; }"
-;; )
-
-
-
;;
;; HImode
;;
-;;; ??? This isn't guaranteed to work. It should be more like the SImode
-;;; patterns.
-
(define_expand "movhi"
[(set (match_operand:HI 0 "general_operand" "")
(match_operand:HI 1 "general_operand" ""))]
@@ -1338,73 +1257,17 @@
{
rtx reg = gen_reg_rtx (SImode);
emit_insn (gen_movsi (reg, operands[1]));
- operands[1] = gen_rtx (SUBREG, HImode, reg, 0);
+ operands[1] = gen_lowpart (HImode, reg);
}
}")
(define_insn ""
- [(set (match_operand:HI 0 "mcore_general_movdst_operand" "=r,r,r,r,r,r,m")
- (match_operand:HI 1 "mcore_general_movsrc_operand" "r,I,M,N,c,m,r"))]
+ [(set (match_operand:HI 0 "mcore_general_movdst_operand" "=r,r,a,r,r,m")
+ (match_operand:HI 1 "mcore_general_movsrc_operand" "r,P,i,c,m,r"))]
"(register_operand (operands[0], HImode)
- || register_operand (operands[1], HImode))
- && (GET_CODE (operands[1]) != CONST_INT
- || CONST_OK_FOR_M (INTVAL (operands[1]))
- || CONST_OK_FOR_N (INTVAL (operands[1]))
- || CONST_OK_FOR_I (INTVAL (operands[1])))"
- "@
- mov %0,%1
- movi %0,%1
- bgeni %0,%P1
- bmaski %0,%N1
- mvc %0
- ld.h %0,%1
- st.h %1,%0"
- [(set_attr "type" "move,move,move,move,move,load,store")])
-
-;; Like movhi, but the const_int source can't be synthesized in
-;; a single-instruction. Fall back to the same things that
-;; are done for movsi in such cases. Presumes that we can
-;; modify any parts of the register that we wish.
-
-(define_insn ""
- [(set (match_operand:HI 0 "mcore_general_movdst_operand" "=r,a")
- (match_operand:HI 1 "const_int_operand" "P,i"))]
- "GET_CODE (operands[1]) == CONST_INT
- && INTVAL (operands[1]) > 127 && INTVAL (operands[1]) < 65536"
- "*
-{
- if (GET_CODE (operands[0])== REG && REGNO (operands[0]) == 15
- && !mcore_const_ok_for_inline (INTVAL (operands[1])))
- {
- /* mcore_output_move would generate lrw r15 -- a forbidden combo */
- return mcore_output_inline_const_forced (insn, operands, SImode);
- }
- else
- return mcore_output_move (insn, operands, SImode);
-}"
- [(set_attr "type" "move")])
-
-
-;; if we're still looking around for things to use, here's a last
-;; ditch effort that just calls the move. We only let this happen
-;; if we're in the reload pass.
-;;
-(define_insn ""
- [(set (match_operand:HI 0 "mcore_general_movdst_operand" "=r,a")
- (match_operand:HI 1 "const_int_operand" "P,i"))]
- "reload_in_progress || reload_completed"
- "*
-{
- if (GET_CODE (operands[0])== REG && REGNO (operands[0]) == 15
- && !mcore_const_ok_for_inline (INTVAL (operands[1])))
- {
- /* mcore_output_move would generate lrw r15 -- a forbidden combo */
- return mcore_output_inline_const_forced (insn, operands, SImode);
- }
- else
- return mcore_output_move (insn, operands, HImode);
-}"
- [(set_attr "type" "move")])
+ || register_operand (operands[1], HImode))"
+ "* return mcore_output_move (insn, operands, HImode);"
+ [(set_attr "type" "move,move,move,move,load,store")])
;;
;; QImode
@@ -1427,67 +1290,18 @@
{
rtx reg = gen_reg_rtx (SImode);
emit_insn (gen_movsi (reg, operands[1]));
- operands[1] = gen_rtx (SUBREG, QImode, reg, 0);
+ operands[1] = gen_lowpart (QImode, reg);
}
}")
(define_insn ""
- [(set (match_operand:QI 0 "mcore_general_movdst_operand" "=r,r,r,r,r,r,m")
- (match_operand:QI 1 "mcore_general_movsrc_operand" "r,I,M,N,c,m,r"))]
+ [(set (match_operand:QI 0 "mcore_general_movdst_operand" "=r,r,a,r,r,m")
+ (match_operand:QI 1 "mcore_general_movsrc_operand" "r,P,i,c,m,r"))]
"(register_operand (operands[0], QImode)
- || register_operand (operands[1], QImode))
- && (GET_CODE (operands[1]) != CONST_INT
- || CONST_OK_FOR_M (INTVAL (operands[1]))
- || CONST_OK_FOR_N (INTVAL (operands[1]))
- || CONST_OK_FOR_I (INTVAL (operands[1])))"
- "@
- mov %0,%1
- movi %0,%1
- bgeni %0,%P1
- bmaski %0,%N1
- mvc %0
- ld.b %0,%1
- st.b %1,%0"
- [(set_attr "type" "move,move,move,move,move,load,store")])
-
-;; cover the case where the constant is 128..255; this isn't handled
-;; in the above case. We could if we wanted to mess with adding a
-;; new constraint class like M,N,I.
-(define_insn ""
- [(set (match_operand:QI 0 "mcore_general_movdst_operand" "=r")
- (match_operand:QI 1 "const_int_operand" ""))]
- "GET_CODE (operands[1]) == CONST_INT
- && INTVAL (operands[1]) > 127 && INTVAL (operands[1]) < 256"
- "*
-{
- /* have a constant in range 128..255; have to do 2 insns; we can
- * do this with a movi followed by a bseti
- */
- operands[2] = GEN_INT (INTVAL (operands[1]) & 0x7f);
- return \"movi\\t%0,%2\;bseti\\t%0,7\";
-}"
- [(set_attr "type" "move")])
+ || register_operand (operands[1], QImode))"
+ "* return mcore_output_move (insn, operands, QImode);"
+ [(set_attr "type" "move,move,move,move,load,store")])
-;; if we're still looking around for things to use, here's a last
-;; ditch effort that just calls the move. We only let this happen
-;; if we're in the reload pass.
-;;
-(define_insn ""
- [(set (match_operand:QI 0 "mcore_general_movdst_operand" "=r,a")
- (match_operand:QI 1 "const_int_operand" "P,i"))]
- "(reload_in_progress || reload_completed)"
- "*
-{
- if (GET_CODE (operands[0])== REG && REGNO (operands[0]) == 15
- && ! mcore_const_ok_for_inline (INTVAL (operands[1])))
- {
- /* mcore_output_move would generate lrw r15 -- a forbidden combo */
- return mcore_output_inline_const_forced (insn, operands, SImode);
- }
- else
- return mcore_output_move (insn, operands, QImode);
-}"
- [(set_attr "type" "move")])
;; DImode
@@ -1502,15 +1316,12 @@
else if (GET_CODE (operands[1]) == CONST_INT
&& ! CONST_OK_FOR_I (INTVAL (operands[1]))
&& ! CONST_OK_FOR_M (INTVAL (operands[1]))
- && ! CONST_OK_FOR_N (INTVAL (operands[1]))
- && ! reload_completed
- && ! reload_in_progress
- && GET_CODE (operands[0]) == REG)
+ && ! CONST_OK_FOR_N (INTVAL (operands[1])))
{
- emit_move_insn (operand_subword (operands[0], 0, 1, DImode),
- operand_subword_force (operands[1], 0, DImode));
- emit_move_insn (operand_subword (operands[0], 1, 1, DImode),
- operand_subword_force (operands[1], 1, DImode));
+ int i;
+ for (i = 0; i < UNITS_PER_WORD * 2; i += UNITS_PER_WORD)
+ emit_move_insn (simplify_gen_subreg (SImode, operands[0], DImode, i),
+ simplify_gen_subreg (SImode, operands[1], DImode, i));
DONE;
}
}")
@@ -1896,7 +1707,7 @@
""
"
{
- emit_insn (gen_jump_real (operand0));
+ emit_jump_insn (gen_jump_real (operand0));
DONE;
}
")
@@ -3319,7 +3130,7 @@
""
"*
{
- int op0 = REGNO (operands[0]);
+ unsigned int op0 = REGNO (operands[0]);
if (GET_CODE (operands[3]) == REG)
{
diff --git a/gcc/config/mips/_tilib.c b/gcc/config/mips/_tilib.c
new file mode 100644
index 00000000000..7c13560b1f0
--- /dev/null
+++ b/gcc/config/mips/_tilib.c
@@ -0,0 +1,156 @@
+/* A few TImode functions needed for TFmode emulated arithmetic.
+ Copyright 2002, 2003 Free Software Foundation, Inc.
+ Contributed by Alexandre Oliva <aoliva@redhat.com>
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+#include "tconfig.h"
+
+#if _MIPS_SIM == 2 /* N32 */ || _MIPS_SIM == 3 /* 64 */
+
+typedef int TItype __attribute__ ((mode (TI)));
+typedef int DItype __attribute__ ((mode (DI)));
+typedef int SItype __attribute__ ((mode (SI)));
+
+typedef unsigned int UDItype __attribute__ ((mode (DI)));
+
+typedef union
+{
+ struct TIstruct {
+#if LIBGCC2_WORDS_BIG_ENDIAN
+ DItype high, low;
+#else
+ DItype low, high;
+#endif
+ } s;
+ TItype ll;
+} TIunion;
+
+TItype __negti2 (TItype);
+TItype __ashlti3 (TItype, int);
+#if 0
+TItype __ashrti3 (TItype, int);
+#endif
+TItype __lshrti3 (TItype, int);
+
+TItype
+__negti2 (TItype u)
+{
+ TIunion w;
+ TIunion uu;
+
+ uu.ll = u;
+
+ w.s.low = -uu.s.low;
+ w.s.high = -uu.s.high - ((UDItype) w.s.low > 0);
+
+ return w.ll;
+}
+
+TItype
+__ashlti3 (TItype u, int b)
+{
+ TIunion w;
+ int bm;
+ TIunion uu;
+
+ if (b == 0)
+ return u;
+
+ uu.ll = u;
+
+ bm = (sizeof (DItype) * BITS_PER_UNIT) - b;
+ if (bm <= 0)
+ {
+ w.s.low = 0;
+ w.s.high = (UDItype) uu.s.low << -bm;
+ }
+ else
+ {
+ UDItype carries = (UDItype) uu.s.low >> bm;
+
+ w.s.low = (UDItype) uu.s.low << b;
+ w.s.high = ((UDItype) uu.s.high << b) | carries;
+ }
+
+ return w.ll;
+}
+
+#if 0
+TItype
+__ashrti3 (TItype u, int b)
+{
+ TIunion w;
+ int bm;
+ TIunion uu;
+
+ if (b == 0)
+ return u;
+
+ uu.ll = u;
+
+ bm = (sizeof (DItype) * BITS_PER_UNIT) - b;
+ if (bm <= 0)
+ {
+ /* w.s.high = 1..1 or 0..0 */
+ w.s.high = uu.s.high >> (sizeof (DItype) * BITS_PER_UNIT - 1);
+ w.s.low = uu.s.high >> -bm;
+ }
+ else
+ {
+ UDItype carries = (UDItype) uu.s.high << bm;
+
+ w.s.high = uu.s.high >> b;
+ w.s.low = ((UDItype) uu.s.low >> b) | carries;
+ }
+
+ return w.ll;
+}
+#endif
+
+TItype
+__lshrti3 (TItype u, int b)
+{
+ TIunion w;
+ int bm;
+ TIunion uu;
+
+ if (b == 0)
+ return u;
+
+ uu.ll = u;
+
+ bm = (sizeof (DItype) * BITS_PER_UNIT) - b;
+ if (bm <= 0)
+ {
+ w.s.high = 0;
+ w.s.low = (UDItype) uu.s.high >> -bm;
+ }
+ else
+ {
+ UDItype carries = (UDItype) uu.s.high << bm;
+
+ w.s.high = (UDItype) uu.s.high >> b;
+ w.s.low = ((UDItype) uu.s.low >> b) | carries;
+ }
+
+ return w.ll;
+}
+
+#endif /* N32 or N64 */
diff --git a/gcc/config/mips/dbxmdebug.h b/gcc/config/mips/dbxmdebug.h
new file mode 100644
index 00000000000..230e2ea6450
--- /dev/null
+++ b/gcc/config/mips/dbxmdebug.h
@@ -0,0 +1,6 @@
+/* Definitions of target machine for GNU compiler, for MIPS running IRIX 5
+ or IRIX 6 (O32 ABI) using the GNU assembler with stabs-in-mdebug. */
+
+/* Override iris5gas.h version again to retain mips.h default. */
+#undef MDEBUG_ASM_SPEC
+#define MDEBUG_ASM_SPEC "%{!gdwarf*:-mdebug} %{gdwarf*:-no-mdebug}"
diff --git a/gcc/config/mips/iris5gas.h b/gcc/config/mips/iris5gas.h
index 7ba65656893..d25652554e0 100644
--- a/gcc/config/mips/iris5gas.h
+++ b/gcc/config/mips/iris5gas.h
@@ -11,6 +11,11 @@
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 1
+/* Override mips.h version to match DWARF 2 default. */
+#undef MDEBUG_ASM_SPEC
+#define MDEBUG_ASM_SPEC "%{gstabs*|gcoff*:-mdebug} \
+%{!gstabs*:%{!gcoff*:-no-mdebug}}"
+
/* Override iris5.h version to invoke [cd]tors and register eh frame
information. */
#undef LINK_SPEC
diff --git a/gcc/config/mips/iris6-o32.h b/gcc/config/mips/iris6-o32.h
index 3ef2fe40d67..20a66946966 100644
--- a/gcc/config/mips/iris6-o32.h
+++ b/gcc/config/mips/iris6-o32.h
@@ -2,8 +2,8 @@
(O32 ABI). */
/* The O32 ABI on IRIX 6 defaults to the mips2 ISA. */
-#undef MIPS_ISA_DEFAULT
-#define MIPS_ISA_DEFAULT 2
+#undef MIPS_CPU_STRING_DEFAULT
+#define MIPS_CPU_STRING_DEFAULT "mips2"
/* Specify wchar_t and wint_t types. */
#undef WCHAR_TYPE
diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h
index ddfea8f1473..7336f6c5eeb 100644
--- a/gcc/config/mips/iris6.h
+++ b/gcc/config/mips/iris6.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Iris version 6.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -125,6 +125,13 @@ Boston, MA 02111-1307, USA. */
if (!ISA_MIPS1 && !ISA_MIPS2) \
builtin_define ("_COMPILER_VERSION=601"); \
\
+ /* IRIX 6.5.18 and above provide many ISO C99 \
+ features protected by the __c99 macro. \
+ libstdc++ v3 needs them as well. */ \
+ if ((c_language == clk_c && flag_isoc99) \
+ || c_language == clk_cplusplus) \
+ builtin_define ("__c99"); \
+ \
if (c_language == clk_cplusplus) \
{ \
builtin_define ("__EXTENSIONS__"); \
@@ -509,3 +516,5 @@ do { \
%{shared:-hidden_symbol __do_global_ctors,__do_global_ctors_1,__do_global_dtors} \
-_SYSTYPE_SVR4 -woff 131 \
%{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
+
+#define MIPS_TFMODE_FORMAT ibm_extended_format
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index d25cd51ddcc..a0b9f2f1116 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -127,7 +127,7 @@ void FN () \
builtin_define_std ("linux"); \
builtin_assert ("system=linux"); \
/* The GNU C++ standard library requires this. */ \
- if (c_language = clk_cplusplus) \
+ if (c_language == clk_cplusplus) \
builtin_define ("_GNU_SOURCE"); \
\
if (mips_abi == ABI_N32) \
@@ -252,3 +252,10 @@ void FN () \
/* The current Linux binutils uses MIPS_STABS_ELF and doesn't support
COFF. */
#undef SDB_DEBUGGING_INFO
+
+#undef LIB_SPEC
+#define LIB_SPEC "\
+%{shared: -lc} \
+%{!static:-rpath-link %R/lib:%R/usr/lib} \
+%{!shared: %{pthread:-lpthread} \
+ %{profile:-lc_p} %{!profile: -lc}}"
diff --git a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h
index d92f7e573b3..f5cc947014b 100644
--- a/gcc/config/mips/mips-protos.h
+++ b/gcc/config/mips/mips-protos.h
@@ -1,6 +1,6 @@
/* Prototypes of target machine for GNU compiler. MIPS version.
Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
Contributed by A. Lichnewsky (lich@inria.inria.fr).
Changed by Michael Meissner (meissner@osf.org).
64 bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and
@@ -36,9 +36,13 @@ extern void iris6_asm_output_align PARAMS ((FILE *, unsigned));
extern const char * current_section_name PARAMS ((void));
extern unsigned int current_section_flags PARAMS ((void));
extern int mips_can_use_return_insn PARAMS ((void));
-extern void mips_declare_object PARAMS ((FILE *, const char *,
- const char *,
- const char *, int));
+extern void mips_output_aligned_decl_common
+ PARAMS ((FILE *, tree, const char *,
+ unsigned HOST_WIDE_INT,
+ unsigned int));
+extern void mips_declare_object
+ PARAMS ((FILE *, const char *, const char *,
+ const char *, ...));
extern void mips_expand_epilogue PARAMS ((void));
extern void mips_expand_prologue PARAMS ((void));
extern void mips_output_filename PARAMS ((FILE *, const char *));
@@ -122,8 +126,9 @@ extern int mips_adjust_insn_length PARAMS ((rtx, int));
extern enum reg_class mips_secondary_reload_class PARAMS ((enum reg_class,
enum machine_mode,
rtx, int));
-extern enum reg_class mips_cannot_change_mode_class
- PARAMS ((enum machine_mode, enum machine_mode));
+extern bool mips_cannot_change_mode_class
+ PARAMS ((enum machine_mode, enum machine_mode,
+ enum reg_class));
extern int mips_class_max_nregs PARAMS ((enum reg_class,
enum machine_mode));
extern int mips_register_move_cost PARAMS ((enum machine_mode,
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 2dcf69d3f43..cfc304a6cc2 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for MIPS
Copyright (C) 1989, 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
Contributed by A. Lichnewsky, lich@inria.inria.fr.
Changes by Michael Meissner, meissner@osf.org.
64 bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and
@@ -644,8 +644,10 @@ const struct mips_cpu_info mips_cpu_info_table[] = {
#define TARGET_ASM_UNALIGNED_HI_OP "\t.align 0\n\t.half\t"
#undef TARGET_ASM_UNALIGNED_SI_OP
#define TARGET_ASM_UNALIGNED_SI_OP "\t.align 0\n\t.word\t"
+/* The IRIX 6 O32 assembler gives an error for `align 0; .dword', contrary
+ to the documentation, so disable it. */
#undef TARGET_ASM_UNALIGNED_DI_OP
-#define TARGET_ASM_UNALIGNED_DI_OP "\t.align 0\n\t.dword\t"
+#define TARGET_ASM_UNALIGNED_DI_OP NULL
#endif
#undef TARGET_ASM_FUNCTION_PROLOGUE
@@ -4321,9 +4323,11 @@ mips_arg_info (cum, mode, type, named, info)
is a double, but $f14 if it is a single. Otherwise, on a
32-bit double-float machine, each FP argument must start in a
new register pair. */
- even_reg_p = ((mips_abi == ABI_O64 && mode == SFmode) || FP_INC > 1);
+ even_reg_p = (GET_MODE_SIZE (mode) > UNITS_PER_HWFPVALUE
+ || (mips_abi == ABI_O64 && mode == SFmode)
+ || FP_INC > 1);
}
- else if (!TARGET_64BIT)
+ else if (!TARGET_64BIT || LONG_DOUBLE_TYPE_SIZE == 128)
{
if (GET_MODE_CLASS (mode) == MODE_INT
|| GET_MODE_CLASS (mode) == MODE_FLOAT)
@@ -4635,7 +4639,7 @@ mips_setup_incoming_varargs (cum, mode, type, no_rtl)
rtx ptr = plus_constant (virtual_incoming_args_rtx, off);
emit_move_insn (gen_rtx_MEM (mode, ptr),
gen_rtx_REG (mode, FP_ARG_FIRST + i));
- off += UNITS_PER_FPVALUE;
+ off += UNITS_PER_HWFPVALUE;
}
}
}
@@ -4712,6 +4716,15 @@ mips_va_start (valist, nextarg)
{
const CUMULATIVE_ARGS *cum = &current_function_args_info;
+ /* ARG_POINTER_REGNUM is initialized to STACK_POINTER_BOUNDARY, but
+ since the stack is aligned for a pair of argument-passing slots,
+ and the beginning of a variable argument list may be an odd slot,
+ we have to decrease its alignment. */
+ if (cfun && cfun->emit->regno_pointer_align)
+ while (((current_function_pretend_args_size * BITS_PER_UNIT)
+ & (REGNO_POINTER_ALIGN (ARG_POINTER_REGNUM) - 1)) != 0)
+ REGNO_POINTER_ALIGN (ARG_POINTER_REGNUM) /= 2;
+
if (mips_abi == ABI_EABI)
{
int gpr_save_area_size;
@@ -4909,9 +4922,9 @@ mips_va_arg (valist, type)
off = build (COMPONENT_REF, TREE_TYPE (f_foff), valist, f_foff);
/* When floating-point registers are saved to the stack,
- each one will take up UNITS_PER_FPVALUE bytes, regardless
+ each one will take up UNITS_PER_HWFPVALUE bytes, regardless
of the float's precision. */
- rsize = UNITS_PER_FPVALUE;
+ rsize = UNITS_PER_HWFPVALUE;
}
else
{
@@ -4930,7 +4943,7 @@ mips_va_arg (valist, type)
bytes (= PARM_BOUNDARY bits). RSIZE can sometimes be smaller
than that, such as in the combination -mgp64 -msingle-float
-fshort-double. Doubles passed in registers will then take
- up UNITS_PER_FPVALUE bytes, but those passed on the stack
+ up UNITS_PER_HWFPVALUE bytes, but those passed on the stack
take up UNITS_PER_WORD bytes. */
osize = MAX (rsize, UNITS_PER_WORD);
@@ -5007,7 +5020,10 @@ mips_va_arg (valist, type)
that alignments <= UNITS_PER_WORD are preserved by the va_arg
increment mechanism. */
- if (TARGET_64BIT)
+ if ((mips_abi == ABI_N32 || mips_abi == ABI_64)
+ && TYPE_ALIGN (type) > 64)
+ align = 16;
+ else if (TARGET_64BIT)
align = 8;
else if (TYPE_ALIGN (type) > 32)
align = 8;
@@ -5365,6 +5381,10 @@ override_options ()
else
mips16 = 0;
+#ifdef MIPS_TFMODE_FORMAT
+ real_format_for_mode[TFmode - QFmode] = &MIPS_TFMODE_FORMAT;
+#endif
+
mips_print_operand_punct['?'] = 1;
mips_print_operand_punct['#'] = 1;
mips_print_operand_punct['&'] = 1;
@@ -6542,26 +6562,84 @@ copy_file_data (to, from)
fatal_io_error ("can't close temp file");
}
-/* Emit either a label, .comm, or .lcomm directive, and mark that the symbol
- is used, so that we don't emit an .extern for it in mips_asm_file_end. */
+/* Implement ASM_OUTPUT_ALIGNED_DECL_COMMON. This is usually the same as
+ the elfos.h version, but we also need to handle -muninit-const-in-rodata
+ and the limitations of the SGI o32 assembler. */
void
-mips_declare_object (stream, name, init_string, final_string, size)
+mips_output_aligned_decl_common (stream, decl, name, size, align)
FILE *stream;
+ tree decl;
const char *name;
- const char *init_string;
- const char *final_string;
- int size;
+ unsigned HOST_WIDE_INT size;
+ unsigned int align;
+{
+ const char *format;
+
+ /* If the target wants uninitialized const declarations in
+ .rdata then don't put them in .comm. */
+ if (TARGET_EMBEDDED_DATA && TARGET_UNINIT_CONST_IN_RODATA
+ && TREE_CODE (decl) == VAR_DECL && TREE_READONLY (decl)
+ && (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node))
+ {
+ if (TREE_PUBLIC (decl) && DECL_NAME (decl))
+ targetm.asm_out.globalize_label (stream, name);
+
+ readonly_data_section ();
+ ASM_OUTPUT_ALIGN (stream, floor_log2 (align / BITS_PER_UNIT));
+
+ format = ACONCAT ((":\n\t.space\t", HOST_WIDE_INT_PRINT_UNSIGNED,
+ "\n", NULL));
+ mips_declare_object (stream, name, "", format, size);
+ }
+#ifdef TARGET_IRIX6
+ /* The SGI o32 assembler doesn't accept an alignment, so round up
+ the size instead. */
+ else if (mips_abi == ABI_32 && !TARGET_GAS)
+ {
+ size += (align / BITS_PER_UNIT) - 1;
+ size -= size % (align / BITS_PER_UNIT);
+ format = ACONCAT ((",", HOST_WIDE_INT_PRINT_UNSIGNED, "\n", NULL));
+ mips_declare_object (stream, name, "\n\t.comm\t", format, size);
+ }
+#endif
+ else
+ {
+ format = ACONCAT ((",", HOST_WIDE_INT_PRINT_UNSIGNED, ",%u\n", NULL));
+ mips_declare_object (stream, name, "\n\t.comm\t", format,
+ size, align / BITS_PER_UNIT);
+ }
+}
+
+/* Emit either a label, .comm, or .lcomm directive. When using assembler
+ macros, mark the symbol as written so that mips_file_end won't emit an
+ .extern for it. STREAM is the output file, NAME is the name of the
+ symbol, INIT_STRING is the string that should be written before the
+ symbol and FINAL_STRING is the string that shoulbe written after it.
+ FINAL_STRING is a printf() format that consumes the remaining arguments. */
+
+void
+mips_declare_object VPARAMS ((FILE *stream, const char *name,
+ const char *init_string,
+ const char *final_string, ...))
{
- fputs (init_string, stream); /* "", "\t.comm\t", or "\t.lcomm\t" */
+ VA_OPEN (ap, final_string);
+ VA_FIXEDARG (ap, FILE *, stream);
+ VA_FIXEDARG (ap, const char *, name);
+ VA_FIXEDARG (ap, const char *, init_string);
+ VA_FIXEDARG (ap, const char *, final_string);
+
+ fputs (init_string, stream);
assemble_name (stream, name);
- fprintf (stream, final_string, size); /* ":\n", ",%u\n", ",%u\n" */
+ vfprintf (stream, final_string, ap);
if (TARGET_GP_OPT)
{
tree name_tree = get_identifier (name);
TREE_ASM_WRITTEN (name_tree) = 1;
}
+
+ VA_CLOSE (ap);
}
/* Return the bytes needed to compute the frame pointer from the current
@@ -7085,7 +7163,7 @@ save_restore_insns (store_p, large_reg, large_offset)
/* Pick which pointer to use as a base register. */
fp_offset = cfun->machine->frame.fp_sp_offset;
end_offset = fp_offset - (cfun->machine->frame.fp_reg_size
- - UNITS_PER_FPVALUE);
+ - UNITS_PER_HWFPVALUE);
if (fp_offset < 0 || end_offset < 0)
internal_error
@@ -7140,7 +7218,7 @@ save_restore_insns (store_p, large_reg, large_offset)
else
emit_move_insn (reg_rtx, mem_rtx);
- fp_offset -= UNITS_PER_FPVALUE;
+ fp_offset -= UNITS_PER_HWFPVALUE;
}
}
}
@@ -7437,20 +7515,7 @@ mips_expand_prologue ()
break;
}
else
- {
- int words;
-
- if (GET_CODE (entry_parm) != REG)
- abort ();
-
- /* passed in a register, so will get homed automatically */
- if (GET_MODE (entry_parm) == BLKmode)
- words = (int_size_in_bytes (passed_type) + 3) / 4;
- else
- words = (GET_MODE_SIZE (GET_MODE (entry_parm)) + 3) / 4;
-
- regno = REGNO (entry_parm) + words - 1;
- }
+ regno = GP_ARG_FIRST + args_so_far.num_gprs;
}
else
{
@@ -8271,11 +8336,26 @@ mips_function_value (valtype, func, mode)
}
mclass = GET_MODE_CLASS (mode);
- if (mclass == MODE_FLOAT && GET_MODE_SIZE (mode) <= UNITS_PER_FPVALUE)
+ if (mclass == MODE_FLOAT && GET_MODE_SIZE (mode) <= UNITS_PER_HWFPVALUE)
reg = FP_RETURN;
+ else if (mclass == MODE_FLOAT && mode == TFmode)
+ /* long doubles are really split between f0 and f2, not f1. Eek.
+ Use DImode for each component, since GCC wants integer modes
+ for subregs. */
+ return gen_rtx_PARALLEL
+ (VOIDmode,
+ gen_rtvec (2,
+ gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_REG (DImode, FP_RETURN),
+ GEN_INT (0)),
+ gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_REG (DImode, FP_RETURN + 2),
+ GEN_INT (GET_MODE_SIZE (mode) / 2))));
+
+
else if (mclass == MODE_COMPLEX_FLOAT
- && GET_MODE_SIZE (mode) <= UNITS_PER_FPVALUE * 2)
+ && GET_MODE_SIZE (mode) <= UNITS_PER_HWFPVALUE * 2)
{
enum machine_mode cmode = GET_MODE_INNER (mode);
@@ -8416,19 +8496,20 @@ function_arg_pass_by_reference (cum, mode, type, named)
We can't allow 64-bit float registers to change from a 32-bit
mode to a 64-bit mode. */
-enum reg_class
-mips_cannot_change_mode_class (from, to)
+bool
+mips_cannot_change_mode_class (from, to, class)
enum machine_mode from, to;
+ enum reg_class class;
{
if (GET_MODE_SIZE (from) != GET_MODE_SIZE (to))
{
if (TARGET_BIG_ENDIAN)
- return FP_REGS;
+ return reg_classes_intersect_p (FP_REGS, class);
if (TARGET_FLOAT64)
- return HI_AND_FP_REGS;
- return HI_REG;
+ return reg_classes_intersect_p (HI_AND_FP_REGS, class);
+ return reg_classes_intersect_p (HI_REG, class);
}
- return NO_REGS;
+ return false;
}
/* This function returns the register class required for a secondary
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 3b784c8883d..ad05be588c3 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler. MIPS version.
Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
Contributed by A. Lichnewsky (lich@inria.inria.fr).
Changed by Michael Meissner (meissner@osf.org).
64 bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and
@@ -1048,9 +1048,18 @@ extern int mips_abi;
%{gstabs:-g} %{gstabs0:-g0} %{gstabs1:-g1} %{gstabs2:-g2} %{gstabs3:-g3} \
%{gstabs+:-g} %{gstabs+0:-g0} %{gstabs+1:-g1} %{gstabs+2:-g2} %{gstabs+3:-g3} \
%{gcoff:-g} %{gcoff0:-g0} %{gcoff1:-g1} %{gcoff2:-g2} %{gcoff3:-g3} \
-%{!gdwarf*:-mdebug} %{gdwarf*:-no-mdebug}"
+%(mdebug_asm_spec)"
#endif
+/* Beginning with gas 2.13, -mdebug must be passed to correctly handle COFF
+ and stabs debugging info. */
+#if ((TARGET_CPU_DEFAULT | TARGET_DEFAULT) & MASK_GAS) != 0
+/* GAS */
+#define MDEBUG_ASM_SPEC "%{!gdwarf*:-mdebug} %{gdwarf*:-no-mdebug}"
+#else /* not GAS */
+#define MDEBUG_ASM_SPEC ""
+#endif /* not GAS */
+
/* SUBTARGET_ASM_SPEC is always passed to the assembler. It may be
overridden by subtargets. */
@@ -1178,6 +1187,7 @@ extern int mips_abi;
{ "subtarget_mips_as_asm_spec", SUBTARGET_MIPS_AS_ASM_SPEC }, \
{ "subtarget_asm_optimizing_spec", SUBTARGET_ASM_OPTIMIZING_SPEC }, \
{ "subtarget_asm_debugging_spec", SUBTARGET_ASM_DEBUGGING_SPEC }, \
+ { "mdebug_asm_spec", MDEBUG_ASM_SPEC }, \
{ "subtarget_asm_spec", SUBTARGET_ASM_SPEC }, \
{ "asm_abi_default_spec", ASM_ABI_DEFAULT_SPEC }, \
{ "endian_spec", ENDIAN_SPEC }, \
@@ -1487,8 +1497,14 @@ do { \
the next available register. */
#define FP_INC (TARGET_FLOAT64 || TARGET_SINGLE_FLOAT ? 1 : 2)
-/* The largest size of value that can be held in floating-point registers. */
-#define UNITS_PER_FPVALUE (TARGET_SOFT_FLOAT ? 0 : FP_INC * UNITS_PER_FPREG)
+/* The largest size of value that can be held in floating-point
+ registers and moved with a single instruction. */
+#define UNITS_PER_HWFPVALUE (TARGET_SOFT_FLOAT ? 0 : FP_INC * UNITS_PER_FPREG)
+
+/* The largest size of value that can be held in floating-point
+ registers. */
+#define UNITS_PER_FPVALUE \
+ (TARGET_SOFT_FLOAT ? 0 : (LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT))
/* The number of bytes in a double. */
#define UNITS_PER_DOUBLE (TYPE_PRECISION (double_type_node) / BITS_PER_UNIT)
@@ -1535,7 +1551,21 @@ do { \
/* A C expression for the size in bits of the type `long double' on
the target machine. If you don't define this, the default is two
words. */
-#define LONG_DOUBLE_TYPE_SIZE 64
+#define LONG_DOUBLE_TYPE_SIZE \
+ (mips_abi == ABI_N32 || mips_abi == ABI_64 ? 128 : 64)
+
+/* long double is not a fixed mode, but the idea is that, if we
+ support long double, we also want a 128-bit integer type. */
+#define MAX_FIXED_MODE_SIZE LONG_DOUBLE_TYPE_SIZE
+
+#ifdef IN_LIBGCC2
+#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \
+ || (defined _ABI64 && _MIPS_SIM == _ABI64)
+# define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128
+# else
+# define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
+# endif
+#endif
/* Width in bits of a pointer.
See also the macro `Pmode' defined below. */
@@ -1562,7 +1592,7 @@ do { \
#define STRUCTURE_SIZE_BOUNDARY 8
/* There is no point aligning anything to a rounder boundary than this. */
-#define BIGGEST_ALIGNMENT 64
+#define BIGGEST_ALIGNMENT LONG_DOUBLE_TYPE_SIZE
/* Set this nonzero if move instructions will actually fail to work
when given unaligned data. */
@@ -2326,8 +2356,8 @@ extern enum reg_class mips_char_to_class[256];
#define CLASS_MAX_NREGS(CLASS, MODE) mips_class_max_nregs (CLASS, MODE)
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- mips_cannot_change_mode_class (FROM, TO)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ mips_cannot_change_mode_class (FROM, TO, CLASS)
/* Stack layout; function entry, exit and calling. */
@@ -2624,7 +2654,9 @@ extern enum reg_class mips_char_to_class[256];
On the MIPS, R2 R3 and F0 F2 are the only register thus used.
Currently, R2 and F0 are only implemented here (C has no complex type) */
-#define FUNCTION_VALUE_REGNO_P(N) ((N) == GP_RETURN || (N) == FP_RETURN)
+#define FUNCTION_VALUE_REGNO_P(N) ((N) == GP_RETURN || (N) == FP_RETURN \
+ || (LONG_DOUBLE_TYPE_SIZE == 128 && FP_RETURN != GP_RETURN \
+ && (N) == FP_RETURN + 2))
/* 1 if N is a possible register number for function argument passing.
We have no FP argument registers when soft-float. When FP registers
@@ -3072,17 +3104,15 @@ typedef struct mips_args {
assembler would use $at as a temp to load in the large offset. In this
case $at is already in use. We convert such problem addresses to
`la $5,s;sw $4,70000($5)' via LEGITIMIZE_ADDRESS. */
-/* ??? SGI Irix 6 assembler fails for CONST address, so reject them
- when !TARGET_GAS. */
+/* ??? SGI IRIX 6 N32/N64 assembler fails for CONST address, so reject them
+ when !TARGET_GAS or ABI_32. */
/* We should be rejecting everything but const addresses. */
#define CONSTANT_ADDRESS_P(X) \
(GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF \
|| GET_CODE (X) == CONST_INT || GET_CODE (X) == HIGH \
|| (GET_CODE (X) == CONST \
&& ! (flag_pic && pic_address_needs_scratch (X)) \
- && (TARGET_GAS) \
- && (mips_abi != ABI_N32 \
- && mips_abi != ABI_64)))
+ && (TARGET_GAS || mips_abi == ABI_32)))
/* Define this, so that when PIC, reload won't try to reload invalid
@@ -4296,28 +4326,7 @@ while (0)
/* This says how to define a global common symbol. */
-#define ASM_OUTPUT_ALIGNED_DECL_COMMON(STREAM, DECL, NAME, SIZE, ALIGN) \
- do { \
- /* If the target wants uninitialized const declarations in \
- .rdata then don't put them in .comm */ \
- if (TARGET_EMBEDDED_DATA && TARGET_UNINIT_CONST_IN_RODATA \
- && TREE_CODE (DECL) == VAR_DECL && TREE_READONLY (DECL) \
- && (DECL_INITIAL (DECL) == 0 \
- || DECL_INITIAL (DECL) == error_mark_node)) \
- { \
- if (TREE_PUBLIC (DECL) && DECL_NAME (DECL)) \
- (*targetm.asm_out.globalize_label) (STREAM, NAME); \
- \
- readonly_data_section (); \
- ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \
- mips_declare_object (STREAM, NAME, "", ":\n\t.space\t%u\n", \
- (SIZE)); \
- } \
- else \
- mips_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", \
- (SIZE)); \
- } while (0)
-
+#define ASM_OUTPUT_ALIGNED_DECL_COMMON mips_output_aligned_decl_common
/* This says how to define a local common symbol (ie, not visible to
linker). */
@@ -4663,3 +4672,34 @@ while (0)
/* Generate calls to memcpy, etc., not bcopy, etc. */
#define TARGET_MEM_FUNCTIONS
+
+#ifndef __mips16
+/* Since the bits of the _init and _fini function is spread across
+ many object files, each potentially with its own GP, we must assume
+ we need to load our GP. We don't preserve $gp or $ra, since each
+ init/fini chunk is supposed to initialize $gp, and crti/crtn
+ already take care of preserving $ra and, when appropriate, $gp. */
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
+ asm (SECTION_OP "\n\
+ .set noreorder\n\
+ bal 1f\n\
+ nop\n\
+1: .cpload $31\n\
+ .set reorder\n\
+ jal " USER_LABEL_PREFIX #FUNC "\n\
+ " TEXT_SECTION_ASM_OP);
+#endif /* Switch to #elif when we're no longer limited by K&R C. */
+#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \
+ || (defined _ABI64 && _MIPS_SIM == _ABI64)
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
+ asm (SECTION_OP "\n\
+ .set noreorder\n\
+ bal 1f\n\
+ nop\n\
+1: .set reorder\n\
+ .cpsetup $31, $2, 1b\n\
+ jal " USER_LABEL_PREFIX #FUNC "\n\
+ " TEXT_SECTION_ASM_OP);
+#endif
+#endif
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index cc6cda53dba..10087f7fb1e 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -1,6 +1,6 @@
;; Mips.md Machine Description for MIPS based processors
;; Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
;; Contributed by A. Lichnewsky, lich@inria.inria.fr
;; Changes by Michael Meissner, meissner@osf.org
;; 64 bit r4000 support by Ian Lance Taylor, ian@cygnus.com, and
@@ -104,7 +104,7 @@
(define_attr "length" ""
(cond [(eq_attr "type" "branch")
(cond [(lt (abs (minus (match_dup 1) (plus (pc) (const_int 4))))
- (const_int 131072))
+ (const_int 65536))
(const_int 4)
(ne (symbol_ref "flag_pic && ! TARGET_EMBEDDED_PIC")
(const_int 0))
@@ -163,7 +163,8 @@
;; Describe a user's asm statement.
(define_asm_attributes
- [(set_attr "type" "multi")])
+ [(set_attr "type" "multi")
+ (set_attr "can_delay" "no")])
;; whether or not generating calls to position independent functions
(define_attr "abicalls" "no,yes"
@@ -559,7 +560,8 @@
{
if (ISA_HAS_COND_TRAP)
return \"teq\\t$0,$0\";
- else if (TARGET_MIPS16)
+ /* The IRIX 6 O32 assembler requires the first break operand. */
+ else if (TARGET_MIPS16 || ! TARGET_GAS)
return \"break 0\";
else
return \"break\";
@@ -6413,16 +6415,16 @@ move\\t%0,%z4\\n\\
}")
(define_insn "movdf_internal1"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,f,R,To,*f,*d,*d,*d,*d,*R,*T")
- (match_operand:DF 1 "general_operand" "f,R,To,fG,fG,*d,*f,*d*G,*R,*T,*d,*d"))]
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,f,f,R,To,*f,*d,*d,*d,*d,*R,*T")
+ (match_operand:DF 1 "general_operand" "f,G,R,To,fG,fG,*d,*f,*d*G,*R,*T,*d,*d"))]
"TARGET_HARD_FLOAT && !(TARGET_FLOAT64 && !TARGET_64BIT)
&& TARGET_DOUBLE_FLOAT
&& (register_operand (operands[0], DFmode)
|| nonmemory_operand (operands[1], DFmode))"
"* return mips_move_2words (operands, insn); "
- [(set_attr "type" "move,load,load,store,store,xfer,xfer,move,load,load,store,store")
- (set_attr "mode" "DF")
- (set_attr "length" "4,8,16,8,16,8,8,8,8,16,8,16")])
+ [(set_attr "type" "move,move,load,load,store,store,xfer,xfer,move,load,load,store,store")
+ (set_attr "mode" "DF")
+ (set_attr "length" "4,8,8,16,8,16,8,8,8,8,16,8,16")])
(define_insn "movdf_internal1a"
[(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,R,R,To,To,*d,*d,*To,*R,*d")
@@ -6550,6 +6552,12 @@ move\\t%0,%z4\\n\\
;; fill a delay slot. This also prevents a bug in delayed branches
;; from showing up, which reuses one of the registers in our clobbers.
+;; ??? Disabled because it doesn't preserve alias information for
+;; operands 0 and 1. Also, the rtl for the second insn doesn't mention
+;; that it uses the registers clobbered by the first.
+;;
+;; It would probably be better to split the block into individual
+;; instructions instead.
(define_split
[(set (mem:BLK (match_operand:SI 0 "register_operand" ""))
(mem:BLK (match_operand:SI 1 "register_operand" "")))
@@ -6561,7 +6569,7 @@ move\\t%0,%z4\\n\\
(use (match_operand:SI 3 "small_int" ""))
(use (const_int 0))]
- "reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 0"
+ "reload_completed && 0 && INTVAL (operands[2]) > 0"
;; All but the last move
[(parallel [(set (mem:BLK (match_dup 0))
@@ -9618,7 +9626,7 @@ move\\t%0,%z4\\n\\
(const_int 0))
(lt (abs (minus (match_dup 0)
(plus (pc) (const_int 4))))
- (const_int 131072)))
+ (const_int 65536)))
(const_int 4) (const_int 16)))])
;; We need a different insn for the mips16, because a mips16 branch
@@ -10063,21 +10071,19 @@ ld\\t%2,%1-%S1(%2)\;daddu\\t%2,%2,$31\\n\\t%*j\\t%2"
;; This is used in compiling the unwind routines.
(define_expand "eh_return"
- [(use (match_operand 0 "general_operand" ""))
- (use (match_operand 1 "general_operand" ""))]
+ [(use (match_operand 0 "general_operand" ""))]
""
"
{
enum machine_mode gpr_mode = TARGET_64BIT ? DImode : SImode;
- if (GET_MODE (operands[1]) != gpr_mode)
- operands[1] = convert_to_mode (gpr_mode, operands[1], 0);
+ if (GET_MODE (operands[0]) != gpr_mode)
+ operands[0] = convert_to_mode (gpr_mode, operands[0], 0);
if (TARGET_64BIT)
- emit_insn (gen_eh_set_lr_di (operands[1]));
+ emit_insn (gen_eh_set_lr_di (operands[0]));
else
- emit_insn (gen_eh_set_lr_si (operands[1]));
+ emit_insn (gen_eh_set_lr_si (operands[0]));
- emit_move_insn (EH_RETURN_STACKADJ_RTX, operands[0]);
DONE;
}")
diff --git a/gcc/config/mips/rtems.h b/gcc/config/mips/rtems.h
index ae27293e8ad..5573bcd5c53 100644
--- a/gcc/config/mips/rtems.h
+++ b/gcc/config/mips/rtems.h
@@ -1,5 +1,5 @@
/* Definitions for rtems targeting a MIPS using ELF.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GNU CC.
@@ -24,5 +24,6 @@ Boston, MA 02111-1307, USA. */
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__rtems__"); \
+ builtin_define ("__USE_INIT_FINI__"); \
builtin_assert ("system=rtems"); \
} while (0)
diff --git a/gcc/config/mips/t-iris5-6 b/gcc/config/mips/t-iris5-6
index d0440bc5ca1..4321b526c41 100644
--- a/gcc/config/mips/t-iris5-6
+++ b/gcc/config/mips/t-iris5-6
@@ -20,11 +20,11 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
- $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
$(INSTALL_DATA) $(SHLIB_NAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/mips/t-iris6 b/gcc/config/mips/t-iris6
index 1d61c244bf1..a1be0b9c9ed 100644
--- a/gcc/config/mips/t-iris6
+++ b/gcc/config/mips/t-iris6
@@ -18,3 +18,16 @@ CRTSTUFF_T_CFLAGS=-g1
# This is only needed in the static libgcc as a band-aid until gcc correctly
# implements the N32/N64 ABI structure passing conventions
LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/mips/irix6-libc-compat.c
+
+LIB2FUNCS_EXTRA = $(srcdir)/config/mips/_tilib.c
+
+TPBIT = tp-bit.c
+
+tp-bit.c: $(srcdir)/config/fp-bit.c
+ echo '#ifdef __MIPSEL__' > tp-bit.c
+ echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c
+ echo '#endif' >> tp-bit.c
+ echo '#if __LDBL_MANT_DIG__ == 106' >> tp-bit.c
+ echo '# define TFLOAT' >> tp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> tp-bit.c
+ echo '#endif' >> tp-bit.c
diff --git a/gcc/config/mips/t-rtems b/gcc/config/mips/t-rtems
new file mode 100644
index 00000000000..bd7b7adf467
--- /dev/null
+++ b/gcc/config/mips/t-rtems
@@ -0,0 +1,5 @@
+# Custom multilibs for RTEMS
+
+MULTILIB_OPTIONS = mips1/mips3 msoft-float/msingle-float EL/EB
+MULTILIB_DIRNAMES = mips1 mips3 soft-float single el eb
+MULTILIB_MATCHES = msingle-float=m4650
diff --git a/gcc/config/mn10300/mn10300-protos.h b/gcc/config/mn10300/mn10300-protos.h
index d5a1c4426c6..537a22d707d 100644
--- a/gcc/config/mn10300/mn10300-protos.h
+++ b/gcc/config/mn10300/mn10300-protos.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Matsushita MN10300 series
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2003 Free Software Foundation, Inc.
Contributed by Jeff Law (law@cygnus.com).
This file is part of GNU CC.
@@ -42,6 +42,8 @@ extern int impossible_plus_operand PARAMS ((rtx, enum machine_mode));
extern int const_8bit_operand PARAMS ((rtx, enum machine_mode));
extern int mn10300_address_cost PARAMS ((rtx, int *));
+
+extern bool mn10300_wide_const_load_uses_clr PARAMS ((rtx operands[2]));
#endif /* RTX_CODE */
#ifdef TREE_CODE
@@ -59,4 +61,3 @@ extern void expand_epilogue PARAMS ((void));
extern int initial_offset PARAMS ((int, int));
extern int can_use_return_insn PARAMS ((void));
extern int mask_ok_for_mem_btst PARAMS ((int, int));
-
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 3bad60b7475..c580457a2b5 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Matsushita MN10300 series
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Jeff Law (law@cygnus.com).
@@ -1322,3 +1322,51 @@ mn10300_address_cost (x, unsig)
}
}
+
+/* Check whether a constant used to initialize a DImode or DFmode can
+ use a clr instruction. The code here must be kept in sync with
+ movdf and movdi. */
+
+bool
+mn10300_wide_const_load_uses_clr (operands)
+ rtx operands[2];
+{
+ long val[2];
+
+ if (GET_CODE (operands[0]) != REG
+ || REGNO_REG_CLASS (REGNO (operands[0])) != DATA_REGS)
+ return false;
+
+ switch (GET_CODE (operands[1]))
+ {
+ case CONST_INT:
+ {
+ rtx low, high;
+ split_double (operands[1], &low, &high);
+ val[0] = INTVAL (low);
+ val[1] = INTVAL (high);
+ }
+ break;
+
+ case CONST_DOUBLE:
+ if (GET_MODE (operands[1]) == DFmode)
+ {
+ REAL_VALUE_TYPE rv;
+
+ REAL_VALUE_FROM_CONST_DOUBLE (rv, operands[1]);
+ REAL_VALUE_TO_TARGET_DOUBLE (rv, val);
+ }
+ else if (GET_MODE (operands[1]) == VOIDmode
+ || GET_MODE (operands[1]) == DImode)
+ {
+ val[0] = CONST_DOUBLE_LOW (operands[1]);
+ val[1] = CONST_DOUBLE_HIGH (operands[1]);
+ }
+ break;
+
+ default:
+ return false;
+ }
+
+ return val[0] == 0 || val[1] == 0;
+}
diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index 770f7c5428e..f889aa61cdd 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -1,5 +1,5 @@
;; GCC machine description for Matsushita MN10300
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
;; Free Software Foundation, Inc.
;; Contributed by Jeff Law (law@cygnus.com).
@@ -520,7 +520,26 @@
abort ();
}
}"
- [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")])
+ [(set (attr "cc")
+ (cond
+ [
+ (lt (symbol_ref "which_alternative") (const_int 2)
+ ) (const_string "none")
+ (eq (symbol_ref "which_alternative") (const_int 2)
+ ) (const_string "clobber")
+ (eq (symbol_ref "which_alternative") (const_int 3)
+ ) (if_then_else
+ (ne (symbol_ref "rtx_equal_p (operands[0], operands[1])")
+ (const_int 0)) (const_string "clobber")
+ (const_string "none_0hit"))
+ (ior (eq (symbol_ref "which_alternative") (const_int 8))
+ (eq (symbol_ref "which_alternative") (const_int 9))
+ ) (if_then_else
+ (ne (symbol_ref "mn10300_wide_const_load_uses_clr
+ (operands)")
+ (const_int 0)) (const_string "clobber")
+ (const_string "none_0hit"))
+ ] (const_string "none_0hit")))])
(define_expand "movdf"
[(set (match_operand:DF 0 "general_operand" "")
@@ -670,7 +689,26 @@
abort ();
}
}"
- [(set_attr "cc" "none,none,clobber,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit,none_0hit")])
+ [(set (attr "cc")
+ (cond
+ [
+ (lt (symbol_ref "which_alternative") (const_int 2)
+ ) (const_string "none")
+ (eq (symbol_ref "which_alternative") (const_int 2)
+ ) (const_string "clobber")
+ (eq (symbol_ref "which_alternative") (const_int 3)
+ ) (if_then_else
+ (ne (symbol_ref "rtx_equal_p (operands[0], operands[1])")
+ (const_int 0)) (const_string "clobber")
+ (const_string "none_0hit"))
+ (ior (eq (symbol_ref "which_alternative") (const_int 8))
+ (eq (symbol_ref "which_alternative") (const_int 9))
+ ) (if_then_else
+ (ne (symbol_ref "mn10300_wide_const_load_uses_clr
+ (operands)")
+ (const_int 0)) (const_string "clobber")
+ (const_string "none_0hit"))
+ ] (const_string "none_0hit")))])
diff --git a/gcc/config/netbsd.h b/gcc/config/netbsd.h
index 43ff80ae686..04413899621 100644
--- a/gcc/config/netbsd.h
+++ b/gcc/config/netbsd.h
@@ -1,5 +1,5 @@
/* Base configuration file for all NetBSD targets.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -38,7 +38,9 @@ Boston, MA 02111-1307, USA. */
while (0)
/* CPP_SPEC parts common to all NetBSD targets. */
-#define NETBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
+#define NETBSD_CPP_SPEC \
+ "%{posix:-D_POSIX_SOURCE} \
+ %{pthread:-D_REENTRANT -D_PTHREADS}"
/* NETBSD_NATIVE is defined when gcc is integrated into the NetBSD
source tree so it can be configured appropriately without using
diff --git a/gcc/config/pa/milli64.S b/gcc/config/pa/milli64.S
index 2190a36e2c9..99d2d2e12a3 100644
--- a/gcc/config/pa/milli64.S
+++ b/gcc/config/pa/milli64.S
@@ -1776,7 +1776,7 @@ DISCUSSION:
.align 16
.proc
.callinfo millicode
- .export $$mulI, millicode
+ .export $$mulI,millicode
GSYM($$mulI)
combt,<<= a1,a0,LREF(l4) /* swap args if unsigned a1>a0 */
copy 0,r /* zero out the result */
diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h
index b9d563e09be..f16f30167c0 100644
--- a/gcc/config/pa/pa-hpux.h
+++ b/gcc/config/pa/pa-hpux.h
@@ -28,6 +28,12 @@ Boston, MA 02111-1307, USA. */
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
+/* GCC always defines __STDC__. HP C++ compilers don't define it. This
+ causes trouble when sys/stdsyms.h is included. As a work around,
+ we define __STDC_EXT__. A similar situation exists with respect to
+ the definition of __cplusplus. We define _INCLUDE_LONGLONG
+ to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
+ support). */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -46,6 +52,7 @@ Boston, MA 02111-1307, USA. */
{ \
builtin_define ("_HPUX_SOURCE"); \
builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDC_EXT__"); \
} \
else if (!flag_iso) \
{ \
@@ -96,3 +103,12 @@ Boston, MA 02111-1307, USA. */
/* hpux8 and later have C++ compatible include files, so do not
pretend they are `extern "C"'. */
#define NO_IMPLICIT_EXTERN_C
+
+/* hpux11 and earlier don't have fputc_unlocked, so we must inhibit the
+ transformation of fputs_unlocked and fprintf_unlocked to fputc_unlocked. */
+#define DONT_HAVE_FPUTC_UNLOCKED
+
+/* We want the entry value of SP saved in the frame marker for
+ compatibility with the HP-UX unwind library. */
+#undef TARGET_HPUX_UNWIND_LIBRARY
+#define TARGET_HPUX_UNWIND_LIBRARY 1
diff --git a/gcc/config/pa/pa-hpux10.h b/gcc/config/pa/pa-hpux10.h
index 0354543e3d0..22f57be9d80 100644
--- a/gcc/config/pa/pa-hpux10.h
+++ b/gcc/config/pa/pa-hpux10.h
@@ -20,6 +20,12 @@ 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. */
+/* GCC always defines __STDC__. HP C++ compilers don't define it. This
+ causes trouble when sys/stdsyms.h is included. As a work around,
+ we define __STDC_EXT__. A similar situation exists with respect to
+ the definition of __cplusplus. We define _INCLUDE_LONGLONG
+ to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
+ support). */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -36,6 +42,7 @@ Boston, MA 02111-1307, USA. */
{ \
builtin_define ("_HPUX_SOURCE"); \
builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDC_EXT__"); \
} \
else if (!flag_iso) \
{ \
@@ -82,10 +89,12 @@ Boston, MA 02111-1307, USA. */
#define LIB_SPEC \
"%{!shared:\
%{!p:%{!pg:\
- %{!threads:-lc}\
+ %{!threads:-lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}\
%{threads:-lcma -lc_r}}}\
- %{p: -L/lib/libp/ -lc}\
- %{pg: -L/lib/libp/ -lc}}"
+ %{p: -L/lib/libp/ -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}\
+ %{pg: -L/lib/libp/ -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}"
#undef THREAD_MODEL_SPEC
#define THREAD_MODEL_SPEC "%{!threads:single}%{threads:dce}"
diff --git a/gcc/config/pa/pa-hpux11.h b/gcc/config/pa/pa-hpux11.h
index 0bc7f1010a5..db1684164f7 100644
--- a/gcc/config/pa/pa-hpux11.h
+++ b/gcc/config/pa/pa-hpux11.h
@@ -18,6 +18,12 @@ 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. */
+/* GCC always defines __STDC__. HP C++ compilers don't define it. This
+ causes trouble when sys/stdsyms.h is included. As a work around,
+ we define __STDC_EXT__. A similar situation exists with respect to
+ the definition of __cplusplus. We define _INCLUDE_LONGLONG
+ to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
+ support). */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
@@ -34,6 +40,7 @@ Boston, MA 02111-1307, USA. */
{ \
builtin_define ("_HPUX_SOURCE"); \
builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDC_EXT__"); \
} \
else \
{ \
@@ -67,26 +74,34 @@ Boston, MA 02111-1307, USA. */
} \
while (0)
+#undef CPP_SPEC
+#define CPP_SPEC \
+ "%{mt|pthread:-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L}"
+/* aCC defines also -DRWSTD_MULTI_THREAD, -DRW_MULTI_THREAD. These
+ affect only aCC's C++ library (Rogue Wave-derived) which we do not
+ use, and they violate the user's name space. */
+
/* We can debug dynamically linked executables on hpux11; we also
want dereferencing of a NULL pointer to cause a SEGV. */
#undef LINK_SPEC
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & 1)
#define LINK_SPEC \
- "%{!mpa-risc-1-0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }} -z %{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{shared:-b}"
+ "%{!mpa-risc-1-0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }} -z\
+ %{mlinker-opt:-O} %{!shared:-u main -u __gcc_plt_call}\
+ %{static:-a archive} %{shared:-b}"
#else
#define LINK_SPEC \
- "-z %{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{shared:-b}"
+ "-z %{mlinker-opt:-O} %{!shared:-u main -u __gcc_plt_call}\
+ %{static:-a archive} %{shared:-b}"
#endif
-/* Like the default, except no -lg. */
+/* hpux 11 has posix threads. */
#undef LIB_SPEC
#define LIB_SPEC \
"%{!shared:\
- %{!p:%{!pg:\
- %{!threads:-lc}\
- %{threads:-lcma -lc_r}}}\
- %{p: -L/lib/libp/ -lc}\
- %{pg: -L/lib/libp/ -lc}}"
+ %{mt|pthread:-lpthread} \
+ %{p|pg:-L/usr/lib/libp} -lc \
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}"
/* Under hpux11, the normal location of the `ld' and `as' programs is the
/usr/ccs/bin directory. */
@@ -117,3 +132,21 @@ Boston, MA 02111-1307, USA. */
#define SIZE_TYPE "long unsigned int"
#define PTRDIFF_TYPE "long int"
+
+/* HP-UX 11.0 and above provides initialization and finalization function
+ support from linker command line. We don't need to invoke __main to run
+ constructors. We also don't need chatr to determine the dependencies of
+ dynamically linked executables and shared libraries. */
+#undef LDD_SUFFIX
+#undef PARSE_LDD_OUTPUT
+#undef HAS_INIT_SECTION
+#define HAS_INIT_SECTION 1
+#undef LD_INIT_SWITCH
+#define LD_INIT_SWITCH "+init"
+#undef LD_FINI_SWITCH
+#define LD_FINI_SWITCH "+fini"
+
+/* The HP-UX 11.X SOM linker (ld32) can successfully link shared libraries
+ with secondary definition (weak) symbols. */
+#undef TARGET_SOM_SDEF
+#define TARGET_SOM_SDEF 1
diff --git a/gcc/config/pa/pa-protos.h b/gcc/config/pa/pa-protos.h
index 8ea36f3a44e..626ac1a7682 100644
--- a/gcc/config/pa/pa-protos.h
+++ b/gcc/config/pa/pa-protos.h
@@ -1,5 +1,5 @@
/* Prototypes for pa.c functions used in the md file & elsewhere.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -44,6 +44,7 @@ extern const char *output_move_double PARAMS ((rtx *));
extern const char *output_fp_move_double PARAMS ((rtx *));
extern const char *output_block_move PARAMS ((rtx *, int));
extern const char *output_cbranch PARAMS ((rtx *, int, int, int, rtx));
+extern const char *output_lbranch PARAMS ((rtx, rtx));
extern const char *output_bb PARAMS ((rtx *, int, int, int, rtx, int));
extern const char *output_bvb PARAMS ((rtx *, int, int, int, rtx, int));
extern const char *output_dbra PARAMS ((rtx *, rtx, int));
@@ -51,6 +52,7 @@ extern const char *output_movb PARAMS ((rtx *, rtx, int, int));
extern const char *output_parallel_movb PARAMS ((rtx *, int));
extern const char *output_parallel_addb PARAMS ((rtx *, int));
extern const char *output_call PARAMS ((rtx, rtx, int));
+extern const char *output_indirect_call PARAMS ((rtx, rtx));
extern const char *output_millicode_call PARAMS ((rtx, rtx));
extern const char *output_mul_insn PARAMS ((int, rtx));
extern const char *output_div_insn PARAMS ((rtx *, int, rtx));
@@ -105,8 +107,10 @@ extern int jump_in_call_delay PARAMS ((rtx));
extern enum reg_class secondary_reload_class PARAMS ((enum reg_class,
enum machine_mode, rtx));
extern int hppa_fpstore_bypass_p PARAMS ((rtx, rtx));
-extern int attr_length_millicode_call PARAMS ((rtx, int));
+extern int attr_length_millicode_call PARAMS ((rtx));
extern int attr_length_call PARAMS ((rtx, int));
+extern int attr_length_indirect_call PARAMS ((rtx));
+extern int attr_length_save_restore_dltp PARAMS ((rtx));
/* Declare functions defined in pa.c and used in templates. */
@@ -157,7 +161,7 @@ extern int cmpib_comparison_operator PARAMS ((rtx, enum machine_mode));
extern int reloc_needed PARAMS ((tree));
#ifdef RTX_CODE
extern rtx function_arg PARAMS ((CUMULATIVE_ARGS *, enum machine_mode,
- tree, int, int));
+ tree, int));
extern rtx function_value PARAMS ((tree, tree));
#endif
extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *,
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 0d5f111a41a..32f7f1b2c6c 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1,6 +1,6 @@
/* Subroutines for insn-output.c for HPPA.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002 Free Software Foundation, Inc.
+ 2002, 2003 Free Software Foundation, Inc.
Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c
This file is part of GNU CC.
@@ -121,6 +121,11 @@ static void pa_globalize_label PARAMS ((FILE *, const char *))
ATTRIBUTE_UNUSED;
static void pa_asm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
HOST_WIDE_INT, tree));
+#if !defined(USE_COLLECT2)
+static void pa_asm_out_constructor PARAMS ((rtx, int));
+static void pa_asm_out_destructor PARAMS ((rtx, int));
+#endif
+static void pa_init_builtins PARAMS ((void));
static void copy_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED;
static int length_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED;
static struct deferred_plabel *get_plabel PARAMS ((const char *))
@@ -203,6 +208,16 @@ static size_t n_deferred_plabels = 0;
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
+#if !defined(USE_COLLECT2)
+#undef TARGET_ASM_CONSTRUCTOR
+#define TARGET_ASM_CONSTRUCTOR pa_asm_out_constructor
+#undef TARGET_ASM_DESTRUCTOR
+#define TARGET_ASM_DESTRUCTOR pa_asm_out_destructor
+#endif
+
+#undef TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS pa_init_builtins
+
struct gcc_target targetm = TARGET_INITIALIZER;
void
@@ -314,6 +329,14 @@ override_options ()
}
}
+static void
+pa_init_builtins ()
+{
+#ifdef DONT_HAVE_FPUTC_UNLOCKED
+ built_in_decls[(int) BUILT_IN_FPUTC_UNLOCKED] = NULL_TREE;
+#endif
+}
+
/* Return nonzero only if OP is a register of mode MODE,
or CONST0_RTX. */
int
@@ -1378,14 +1401,17 @@ emit_move_sequence (operands, mode, scratch_reg)
operand1 = gen_rtx_MEM (GET_MODE (operand1), tem);
/* Handle secondary reloads for loads/stores of FP registers from
- REG+D addresses where D does not fit in 5 bits, including
+ REG+D addresses where D does not fit in 5 or 14 bits, including
(subreg (mem (addr))) cases. */
if (fp_reg_operand (operand0, mode)
&& ((GET_CODE (operand1) == MEM
- && ! memory_address_p (DFmode, XEXP (operand1, 0)))
+ && !memory_address_p ((GET_MODE_SIZE (mode) == 4 ? SFmode : DFmode),
+ XEXP (operand1, 0)))
|| ((GET_CODE (operand1) == SUBREG
&& GET_CODE (XEXP (operand1, 0)) == MEM
- && !memory_address_p (DFmode, XEXP (XEXP (operand1, 0), 0)))))
+ && !memory_address_p ((GET_MODE_SIZE (mode) == 4
+ ? SFmode : DFmode),
+ XEXP (XEXP (operand1, 0), 0)))))
&& scratch_reg)
{
if (GET_CODE (operand1) == SUBREG)
@@ -1414,10 +1440,14 @@ emit_move_sequence (operands, mode, scratch_reg)
}
else if (fp_reg_operand (operand1, mode)
&& ((GET_CODE (operand0) == MEM
- && ! memory_address_p (DFmode, XEXP (operand0, 0)))
+ && !memory_address_p ((GET_MODE_SIZE (mode) == 4
+ ? SFmode : DFmode),
+ XEXP (operand0, 0)))
|| ((GET_CODE (operand0) == SUBREG)
&& GET_CODE (XEXP (operand0, 0)) == MEM
- && !memory_address_p (DFmode, XEXP (XEXP (operand0, 0), 0))))
+ && !memory_address_p ((GET_MODE_SIZE (mode) == 4
+ ? SFmode : DFmode),
+ XEXP (XEXP (operand0, 0), 0))))
&& scratch_reg)
{
if (GET_CODE (operand0) == SUBREG)
@@ -1683,6 +1713,7 @@ emit_move_sequence (operands, mode, scratch_reg)
operands[1] = force_const_mem (mode, operand1);
operands[1] = legitimize_pic_address (XEXP (operands[1], 0),
mode, temp);
+ operands[1] = gen_rtx_MEM (mode, operands[1]);
emit_move_sequence (operands, mode, temp);
}
else
@@ -3132,12 +3163,13 @@ compute_frame_size (size, fregs_live)
fsize += current_function_outgoing_args_size;
/* Allocate space for the fixed frame marker. This space must be
- allocated for any function that makes calls or otherwise allocates
+ allocated for any function that makes calls or allocates
stack space. */
if (!current_function_is_leaf || fsize)
- fsize += TARGET_64BIT ? 16 : 32;
+ fsize += TARGET_64BIT ? 48 : 32;
- return (fsize + STACK_BOUNDARY - 1) & ~(STACK_BOUNDARY - 1);
+ return ((fsize + PREFERRED_STACK_BOUNDARY / 8 - 1)
+ & ~(PREFERRED_STACK_BOUNDARY / 8 - 1));
}
/* Generate the assembly code for function entry. FILE is a stdio
@@ -3177,6 +3209,15 @@ pa_output_function_prologue (file, size)
else
fputs (",NO_CALLS", file);
+ /* The SAVE_SP flag is used to indicate that register %r3 is stored
+ at the beginning of the frame and that it is used as the frame
+ pointer for the frame. We do this because our current frame
+ layout doesn't conform to that specified in the the HP runtime
+ documentation and we need a way to indicate to programs such as
+ GDB where %r3 is saved. The SAVE_SP flag was chosen because it
+ isn't used by HP compilers but is supported by the assembler.
+ However, SAVE_SP is supposed to indicate that the previous stack
+ pointer has been saved in the frame marker. */
if (frame_pointer_needed)
fputs (",SAVE_SP", file);
@@ -3196,26 +3237,6 @@ pa_output_function_prologue (file, size)
fputs ("\n\t.ENTRY\n", file);
- /* If we're using GAS and SOM, and not using the portable runtime model,
- or function sections, then we don't need to accumulate the total number
- of code bytes. */
- if ((TARGET_GAS && TARGET_SOM && ! TARGET_PORTABLE_RUNTIME)
- || flag_function_sections)
- total_code_bytes = 0;
- else if (INSN_ADDRESSES_SET_P ())
- {
- unsigned long old_total = total_code_bytes;
-
- total_code_bytes += INSN_ADDRESSES (INSN_UID (get_last_nonnote_insn ()));
- total_code_bytes += FUNCTION_BOUNDARY / BITS_PER_UNIT;
-
- /* Be prepared to handle overflows. */
- if (old_total > total_code_bytes)
- total_code_bytes = -1;
- }
- else
- total_code_bytes = -1;
-
remove_useless_addtr_insns (get_insns (), 0);
}
@@ -3297,11 +3318,32 @@ hppa_expand_prologue ()
adjust2, 1);
}
- /* Prevent register spills from being scheduled before the
- stack pointer is raised. Necessary as we will be storing
- registers using the frame pointer as a base register, and
- we happen to set fp before raising sp. */
- emit_insn (gen_blockage ());
+ /* We set SAVE_SP in frames that need a frame pointer. Thus,
+ we need to store the previous stack pointer (frame pointer)
+ into the frame marker on targets that use the HP unwind
+ library. This allows the HP unwind library to be used to
+ unwind GCC frames. However, we are not fully compatible
+ with the HP library because our frame layout differs from
+ that specified in the HP runtime specification.
+
+ We don't want a frame note on this instruction as the frame
+ marker moves during dynamic stack allocation.
+
+ This instruction also serves as a blockage to prevent
+ register spills from being scheduled before the stack
+ pointer is raised. This is necessary as we store
+ registers using the frame pointer as a base register,
+ and the frame pointer is set before sp is raised. */
+ if (TARGET_HPUX_UNWIND_LIBRARY)
+ {
+ rtx addr = gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (TARGET_64BIT ? -8 : -4));
+
+ emit_move_insn (gen_rtx_MEM (word_mode, addr),
+ frame_pointer_rtx);
+ }
+ else
+ emit_insn (gen_blockage ());
}
/* no frame pointer needed. */
else
@@ -3537,6 +3579,7 @@ pa_output_function_epilogue (file, size)
FILE *file;
HOST_WIDE_INT size ATTRIBUTE_UNUSED;
{
+ int last_address = 0;
rtx insn = get_last_insn ();
/* hppa_expand_epilogue does the dirty work now. We just need
@@ -3559,9 +3602,36 @@ pa_output_function_epilogue (file, size)
/* If insn is a CALL_INSN, then it must be a call to a volatile
function (otherwise there would be epilogue insns). */
if (insn && GET_CODE (insn) == CALL_INSN)
- fputs ("\tnop\n", file);
+ {
+ fputs ("\tnop\n", file);
+ last_address += 4;
+ }
fputs ("\t.EXIT\n\t.PROCEND\n", file);
+
+ /* Finally, update the total number of code bytes output so far. */
+ if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM)
+ && !flag_function_sections)
+ {
+ if (INSN_ADDRESSES_SET_P ())
+ {
+ unsigned long old_total = total_code_bytes;
+
+ insn = get_last_nonnote_insn ();
+ last_address += INSN_ADDRESSES (INSN_UID (insn));
+ if (INSN_P (insn))
+ last_address += insn_default_length (insn);
+
+ total_code_bytes += last_address;
+ total_code_bytes += FUNCTION_BOUNDARY / BITS_PER_UNIT;
+
+ /* Be prepared to handle overflows. */
+ if (old_total > total_code_bytes)
+ total_code_bytes = -1;
+ }
+ else
+ total_code_bytes = -1;
+ }
}
void
@@ -4784,7 +4854,9 @@ output_deferred_plabels (file)
/* Now output the deferred plabels. */
for (i = 0; i < n_deferred_plabels; i++)
{
- ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (deferred_plabels[i].internal_label));
+ rtx label = deferred_plabels[i].internal_label;
+
+ ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (label));
assemble_integer (gen_rtx_SYMBOL_REF (Pmode, deferred_plabels[i].name),
TARGET_64BIT ? 8 : 4, TARGET_64BIT ? 64 : 32, 1);
}
@@ -5370,14 +5442,19 @@ output_cbranch (operands, nullify, length, negated, insn)
{
static char buf[100];
int useskip = 0;
+ rtx xoperands[5];
- /* A conditional branch to the following instruction (eg the delay slot) is
- asking for a disaster. This can happen when not optimizing.
-
- In such cases it is safe to emit nothing. */
+ /* A conditional branch to the following instruction (eg the delay slot)
+ is asking for a disaster. This can happen when not optimizing and
+ when jump optimization fails.
- if (next_active_insn (JUMP_LABEL (insn)) == next_active_insn (insn))
- return "";
+ While it is usually safe to emit nothing, this can fail if the
+ preceding instruction is a nullified branch with an empty delay
+ slot and the same branch target as this branch. We could check
+ for this but jump optimization should eliminate nop jumps. It
+ is always safe to emit a nop. */
+ if (next_real_insn (JUMP_LABEL (insn)) == next_real_insn (insn))
+ return "nop";
/* If this is a long branch with its delay slot unfilled, set `nullify'
as it can nullify the delay slot and save a nop. */
@@ -5475,98 +5552,182 @@ output_cbranch (operands, nullify, length, negated, insn)
break;
case 20:
- /* Very long branch. Right now we only handle these when not
- optimizing. See "jump" pattern in pa.md for details. */
- if (optimize)
- abort ();
+ case 28:
+ xoperands[0] = operands[0];
+ xoperands[1] = operands[1];
+ xoperands[2] = operands[2];
+ xoperands[3] = operands[3];
+
+ /* The reversed conditional branch must branch over one additional
+ instruction if the delay slot is filled. If the delay slot
+ is empty, the instruction after the reversed condition branch
+ must be nullified. */
+ nullify = dbr_sequence_length () == 0;
+ xoperands[4] = nullify ? GEN_INT (length) : GEN_INT (length + 4);
/* Create a reversed conditional branch which branches around
the following insns. */
- if (negated)
- strcpy (buf, "{com%I2b,%S3,n %2,%r1,.+20|cmp%I2b,%S3,n %2,%r1,.+20}");
+ if (GET_MODE (operands[1]) != DImode)
+ {
+ if (nullify)
+ {
+ if (negated)
+ strcpy (buf,
+ "{com%I2b,%S3,n %2,%r1,.+%4|cmp%I2b,%S3,n %2,%r1,.+%4}");
+ else
+ strcpy (buf,
+ "{com%I2b,%B3,n %2,%r1,.+%4|cmp%I2b,%B3,n %2,%r1,.+%4}");
+ }
+ else
+ {
+ if (negated)
+ strcpy (buf,
+ "{com%I2b,%S3 %2,%r1,.+%4|cmp%I2b,%S3 %2,%r1,.+%4}");
+ else
+ strcpy (buf,
+ "{com%I2b,%B3 %2,%r1,.+%4|cmp%I2b,%B3 %2,%r1,.+%4}");
+ }
+ }
else
- strcpy (buf, "{com%I2b,%B3,n %2,%r1,.+20|cmp%I2b,%B3,n %2,%r1,.+20}");
- if (GET_MODE (operands[1]) == DImode)
{
- if (negated)
- strcpy (buf,
- "{com%I2b,*%S3,n %2,%r1,.+20|cmp%I2b,*%S3,n %2,%r1,.+20}");
+ if (nullify)
+ {
+ if (negated)
+ strcpy (buf,
+ "{com%I2b,*%S3,n %2,%r1,.+%4|cmp%I2b,*%S3,n %2,%r1,.+%4}");
+ else
+ strcpy (buf,
+ "{com%I2b,*%B3,n %2,%r1,.+%4|cmp%I2b,*%B3,n %2,%r1,.+%4}");
+ }
else
- strcpy (buf,
- "{com%I2b,*%B3,n %2,%r1,.+20|cmp%I2b,*%B3,n %2,%r1,.+20}");
+ {
+ if (negated)
+ strcpy (buf,
+ "{com%I2b,*%S3 %2,%r1,.+%4|cmp%I2b,*%S3 %2,%r1,.+%4}");
+ else
+ strcpy (buf,
+ "{com%I2b,*%B3 %2,%r1,.+%4|cmp%I2b,*%B3 %2,%r1,.+%4}");
+ }
}
- output_asm_insn (buf, operands);
- /* Output an insn to save %r1. */
- output_asm_insn ("stw %%r1,-16(%%r30)", operands);
+ output_asm_insn (buf, xoperands);
+ return output_lbranch (operands[0], insn);
- /* Now output a very long branch to the original target. */
- output_asm_insn ("ldil L'%l0,%%r1\n\tbe R'%l0(%%sr4,%%r1)", operands);
+ default:
+ abort ();
+ }
+ return buf;
+}
- /* Now restore the value of %r1 in the delay slot. We're not
- optimizing so we know nothing else can be in the delay slot. */
- return "ldw -16(%%r30),%%r1";
+/* This routine handles long unconditional branches that exceed the
+ maximum range of a simple branch instruction. */
- case 28:
- /* Very long branch when generating PIC code. Right now we only
- handle these when not optimizing. See "jump" pattern in pa.md
- for details. */
- if (optimize)
- abort ();
+const char *
+output_lbranch (dest, insn)
+ rtx dest, insn;
+{
+ rtx xoperands[2];
+
+ xoperands[0] = dest;
- /* Create a reversed conditional branch which branches around
- the following insns. */
- if (negated)
- strcpy (buf, "{com%I2b,%S3,n %2,%r1,.+28|cmp%I2b,%S3,n %2,%r1,.+28}");
- else
- strcpy (buf, "{com%I2b,%B3,n %2,%r1,.+28|cmp%I2b,%B3,n %2,%r1,.+28}");
- if (GET_MODE (operands[1]) == DImode)
- {
- if (negated)
- strcpy (buf, "{com%I2b,*%S3,n %2,%r1,.+28|cmp%I2b,*%S3,n %2,%r1,.+28}");
- else
- strcpy (buf, "{com%I2b,*%B3,n %2,%r1,.+28|cmp%I2b,*%B3,n %2,%r1,.+28}");
- }
- output_asm_insn (buf, operands);
+ /* First, free up the delay slot. */
+ if (dbr_sequence_length () != 0)
+ {
+ /* We can't handle a jump in the delay slot. */
+ if (GET_CODE (NEXT_INSN (insn)) == JUMP_INSN)
+ abort ();
- /* Output an insn to save %r1. */
- output_asm_insn ("stw %%r1,-16(%%r30)", operands);
+ final_scan_insn (NEXT_INSN (insn), asm_out_file,
+ optimize, 0, 0);
+
+ /* Now delete the delay insn. */
+ PUT_CODE (NEXT_INSN (insn), NOTE);
+ NOTE_LINE_NUMBER (NEXT_INSN (insn)) = NOTE_INSN_DELETED;
+ NOTE_SOURCE_FILE (NEXT_INSN (insn)) = 0;
+ }
+
+ /* Output an insn to save %r1. The runtime documentation doesn't
+ specify whether the "Clean Up" slot in the callers frame can
+ be clobbered by the callee. It isn't copied by HP's builtin
+ alloca, so this suggests that it can be clobbered if necessary.
+ The "Static Link" location is copied by HP builtin alloca, so
+ we avoid using it. Using the cleanup slot might be a problem
+ if we have to interoperate with languages that pass cleanup
+ information. However, it should be possible to handle these
+ situations with GCC's asm feature.
+
+ The "Current RP" slot is reserved for the called procedure, so
+ we try to use it when we don't have a frame of our own. It's
+ rather unlikely that we won't have a frame when we need to emit
+ a very long branch.
+
+ Really the way to go long term is a register scavenger; goto
+ the target of the jump and find a register which we can use
+ as a scratch to hold the value in %r1. Then, we wouldn't have
+ to free up the delay slot or clobber a slot that may be needed
+ for other purposes. */
+ if (TARGET_64BIT)
+ {
+ if (actual_fsize == 0 && !regs_ever_live[2])
+ /* Use the return pointer slot in the frame marker. */
+ output_asm_insn ("std %%r1,-16(%%r30)", xoperands);
+ else
+ /* Use the slot at -40 in the frame marker since HP builtin
+ alloca doesn't copy it. */
+ output_asm_insn ("std %%r1,-40(%%r30)", xoperands);
+ }
+ else
+ {
+ if (actual_fsize == 0 && !regs_ever_live[2])
+ /* Use the return pointer slot in the frame marker. */
+ output_asm_insn ("stw %%r1,-20(%%r30)", xoperands);
+ else
+ /* Use the "Clean Up" slot in the frame marker. In GCC,
+ the only other use of this location is for copying a
+ floating point double argument from a floating-point
+ register to two general registers. The copy is done
+ as an "atomic" operation when outputing a call, so it
+ won't interfere with our using the location here. */
+ output_asm_insn ("stw %%r1,-12(%%r30)", xoperands);
+ }
- /* Now output a very long PIC branch to the original target. */
+ if (flag_pic)
+ {
+ output_asm_insn ("{bl|b,l} .+8,%%r1", xoperands);
+ if (TARGET_SOM || !TARGET_GAS)
{
- rtx xoperands[5];
-
- xoperands[0] = operands[0];
- xoperands[1] = operands[1];
- xoperands[2] = operands[2];
- xoperands[3] = operands[3];
-
- output_asm_insn ("{bl|b,l} .+8,%%r1", xoperands);
- if (TARGET_SOM || !TARGET_GAS)
- {
- xoperands[4] = gen_label_rtx ();
- output_asm_insn ("addil L'%l0-%l4,%%r1", xoperands);
- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
- CODE_LABEL_NUMBER (xoperands[4]));
- output_asm_insn ("ldo R'%l0-%l4(%%r1),%%r1", xoperands);
- }
- else
- {
- output_asm_insn ("addil L'%l0-$PIC_pcrel$0+4,%%r1", xoperands);
- output_asm_insn ("ldo R'%l0-$PIC_pcrel$0+8(%%r1),%%r1",
- xoperands);
- }
- output_asm_insn ("bv %%r0(%%r1)", xoperands);
+ xoperands[1] = gen_label_rtx ();
+ output_asm_insn ("addil L'%l0-%l1,%%r1", xoperands);
+ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
+ CODE_LABEL_NUMBER (xoperands[1]));
+ output_asm_insn ("ldo R'%l0-%l1(%%r1),%%r1", xoperands);
}
+ else
+ {
+ output_asm_insn ("addil L'%l0-$PIC_pcrel$0+4,%%r1", xoperands);
+ output_asm_insn ("ldo R'%l0-$PIC_pcrel$0+8(%%r1),%%r1", xoperands);
+ }
+ output_asm_insn ("bv %%r0(%%r1)", xoperands);
+ }
+ else
+ /* Now output a very long branch to the original target. */
+ output_asm_insn ("ldil L'%l0,%%r1\n\tbe R'%l0(%%sr4,%%r1)", xoperands);
- /* Now restore the value of %r1 in the delay slot. We're not
- optimizing so we know nothing else can be in the delay slot. */
- return "ldw -16(%%r30),%%r1";
-
- default:
- abort ();
+ /* Now restore the value of %r1 in the delay slot. */
+ if (TARGET_64BIT)
+ {
+ if (actual_fsize == 0 && !regs_ever_live[2])
+ return "ldd -16(%%r30),%%r1";
+ else
+ return "ldd -40(%%r30),%%r1";
+ }
+ else
+ {
+ if (actual_fsize == 0 && !regs_ever_live[2])
+ return "ldw -20(%%r30),%%r1";
+ else
+ return "ldw -12(%%r30),%%r1";
}
- return buf;
}
/* This routine handles all the branch-on-bit conditional branch sequences we
@@ -5589,8 +5750,8 @@ output_bb (operands, nullify, length, negated, insn, which)
is only used when optimizing; jump optimization should eliminate the
jump. But be prepared just in case. */
- if (next_active_insn (JUMP_LABEL (insn)) == next_active_insn (insn))
- return "";
+ if (next_real_insn (JUMP_LABEL (insn)) == next_real_insn (insn))
+ return "nop";
/* If this is a long branch with its delay slot unfilled, set `nullify'
as it can nullify the delay slot and save a nop. */
@@ -5737,8 +5898,8 @@ output_bvb (operands, nullify, length, negated, insn, which)
is only used when optimizing; jump optimization should eliminate the
jump. But be prepared just in case. */
- if (next_active_insn (JUMP_LABEL (insn)) == next_active_insn (insn))
- return "";
+ if (next_real_insn (JUMP_LABEL (insn)) == next_real_insn (insn))
+ return "nop";
/* If this is a long branch with its delay slot unfilled, set `nullify'
as it can nullify the delay slot and save a nop. */
@@ -5772,7 +5933,7 @@ output_bvb (operands, nullify, length, negated, insn, which)
else
strcpy (buf, "{bvb,|bb,}");
if (useskip && GET_MODE (operands[0]) == DImode)
- strcpy (buf, "extrd,s,*}");
+ strcpy (buf, "extrd,s,*");
else if (GET_MODE (operands[0]) == DImode)
strcpy (buf, "bb,*");
if ((which == 0 && negated)
@@ -5878,7 +6039,7 @@ output_dbra (operands, insn, which_alternative)
/* A conditional branch to the following instruction (eg the delay slot) is
asking for a disaster. Be prepared! */
- if (next_active_insn (JUMP_LABEL (insn)) == next_active_insn (insn))
+ if (next_real_insn (JUMP_LABEL (insn)) == next_real_insn (insn))
{
if (which_alternative == 0)
return "ldo %1(%0),%0";
@@ -5985,7 +6146,7 @@ output_movb (operands, insn, which_alternative, reverse_comparison)
/* A conditional branch to the following instruction (eg the delay slot) is
asking for a disaster. Be prepared! */
- if (next_active_insn (JUMP_LABEL (insn)) == next_active_insn (insn))
+ if (next_real_insn (JUMP_LABEL (insn)) == next_real_insn (insn))
{
if (which_alternative == 0)
return "copy %1,%0";
@@ -6161,37 +6322,42 @@ length_fp_args (insn)
return length;
}
-/* We include the delay slot in the returned length as it is better to
+/* Return the attribute length for the millicode call instruction INSN.
+ The length must match the code generated by output_millicode_call.
+ We include the delay slot in the returned length as it is better to
over estimate the length than to under estimate it. */
int
-attr_length_millicode_call (insn, length)
+attr_length_millicode_call (insn)
rtx insn;
- int length;
{
- unsigned long distance = total_code_bytes + INSN_ADDRESSES (INSN_UID (insn));
+ unsigned long distance = -1;
- if (distance < total_code_bytes)
- distance = -1;
+ if (INSN_ADDRESSES_SET_P ())
+ {
+ distance = (total_code_bytes + insn_current_reference_address (insn));
+ if (distance < total_code_bytes)
+ distance = -1;
+ }
if (TARGET_64BIT)
{
if (!TARGET_LONG_CALLS && distance < 7600000)
- return length + 8;
+ return 8;
- return length + 20;
+ return 20;
}
else if (TARGET_PORTABLE_RUNTIME)
- return length + 24;
+ return 24;
else
{
if (!TARGET_LONG_CALLS && distance < 240000)
- return length + 8;
+ return 8;
if (TARGET_LONG_ABS_CALL && !flag_pic)
- return length + 12;
+ return 12;
- return length + 24;
+ return 24;
}
}
@@ -6321,16 +6487,22 @@ output_millicode_call (insn, call_dest)
/* See if the return address can be adjusted. Use the containing
sequence insn's address. */
- seq_insn = NEXT_INSN (PREV_INSN (XVECEXP (final_sequence, 0, 0)));
- distance = (INSN_ADDRESSES (INSN_UID (JUMP_LABEL (NEXT_INSN (insn))))
- - INSN_ADDRESSES (INSN_UID (seq_insn)) - 8);
-
- if (VAL_14_BITS_P (distance))
+ if (INSN_ADDRESSES_SET_P ())
{
- xoperands[1] = gen_label_rtx ();
- output_asm_insn ("ldo %0-%1(%2),%2", xoperands);
- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
- CODE_LABEL_NUMBER (xoperands[3]));
+ seq_insn = NEXT_INSN (PREV_INSN (XVECEXP (final_sequence, 0, 0)));
+ distance = (INSN_ADDRESSES (INSN_UID (JUMP_LABEL (NEXT_INSN (insn))))
+ - INSN_ADDRESSES (INSN_UID (seq_insn)) - 8);
+
+ if (VAL_14_BITS_P (distance))
+ {
+ xoperands[1] = gen_label_rtx ();
+ output_asm_insn ("ldo %0-%1(%2),%2", xoperands);
+ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
+ CODE_LABEL_NUMBER (xoperands[1]));
+ }
+ else
+ /* ??? This branch may not reach its target. */
+ output_asm_insn ("nop\n\tb,n %0", xoperands);
}
else
/* ??? This branch may not reach its target. */
@@ -6344,18 +6516,25 @@ output_millicode_call (insn, call_dest)
return "";
}
-/* We include the delay slot in the returned length as it is better to
- over estimate the length than to under estimate it. */
+/* Return the attribute length of the call instruction INSN. The SIBCALL
+ flag indicates whether INSN is a regular call or a sibling call. The
+ length must match the code generated by output_call. We include the delay
+ slot in the returned length as it is better to over estimate the length
+ than to under estimate it. */
int
attr_length_call (insn, sibcall)
rtx insn;
int sibcall;
{
- unsigned long distance = total_code_bytes + INSN_ADDRESSES (INSN_UID (insn));
+ unsigned long distance = -1;
- if (distance < total_code_bytes)
- distance = -1;
+ if (INSN_ADDRESSES_SET_P ())
+ {
+ distance = (total_code_bytes + insn_current_reference_address (insn));
+ if (distance < total_code_bytes)
+ distance = -1;
+ }
if (TARGET_64BIT)
{
@@ -6396,10 +6575,13 @@ attr_length_call (insn, sibcall)
if (TARGET_PA_20)
return (length + 32);
+ if (!TARGET_NO_SPACE_REGS)
+ length += 8;
+
if (!sibcall)
length += 8;
- return (length + 40);
+ return (length + 32);
}
}
}
@@ -6417,7 +6599,6 @@ output_call (insn, call_dest, sibcall)
{
int delay_insn_deleted = 0;
int delay_slot_filled = 0;
- int attr_length = get_attr_length (insn);
int seq_length = dbr_sequence_length ();
rtx xoperands[2];
@@ -6425,9 +6606,7 @@ output_call (insn, call_dest, sibcall)
/* Handle the common case where we're sure that the branch will reach
the beginning of the $CODE$ subspace. */
- if (!TARGET_LONG_CALLS
- && ((seq_length == 0 && attr_length == 12)
- || (seq_length != 0 && attr_length == 8)))
+ if (!TARGET_LONG_CALLS && attr_length_call (insn, sibcall) == 8)
{
xoperands[1] = gen_rtx_REG (word_mode, sibcall ? 0 : 2);
output_asm_insn ("{bl|b,l} %0,%1", xoperands);
@@ -6597,7 +6776,10 @@ output_call (insn, call_dest, sibcall)
if (!sibcall && !TARGET_PA_20)
{
output_asm_insn ("{bl|b,l} .+8,%%r2", xoperands);
- output_asm_insn ("addi 16,%%r2,%%r2", xoperands);
+ if (TARGET_NO_SPACE_REGS)
+ output_asm_insn ("addi 8,%%r2,%%r2", xoperands);
+ else
+ output_asm_insn ("addi 16,%%r2,%%r2", xoperands);
}
}
@@ -6619,14 +6801,23 @@ output_call (insn, call_dest, sibcall)
}
else
{
- output_asm_insn ("ldsid (%%r1),%%r31\n\tmtsp %%r31,%%sr0",
- xoperands);
+ if (!TARGET_NO_SPACE_REGS)
+ output_asm_insn ("ldsid (%%r1),%%r31\n\tmtsp %%r31,%%sr0",
+ xoperands);
if (sibcall)
- output_asm_insn ("be 0(%%sr0,%%r1)", xoperands);
+ {
+ if (TARGET_NO_SPACE_REGS)
+ output_asm_insn ("be 0(%%sr4,%%r1)", xoperands);
+ else
+ output_asm_insn ("be 0(%%sr0,%%r1)", xoperands);
+ }
else
{
- output_asm_insn ("ble 0(%%sr0,%%r1)", xoperands);
+ if (TARGET_NO_SPACE_REGS)
+ output_asm_insn ("ble 0(%%sr4,%%r1)", xoperands);
+ else
+ output_asm_insn ("ble 0(%%sr0,%%r1)", xoperands);
if (indirect_call)
output_asm_insn ("stw %%r31,-24(%%sp)", xoperands);
@@ -6655,7 +6846,7 @@ output_call (insn, call_dest, sibcall)
/* This call has an unconditional jump in its delay slot. */
xoperands[0] = XEXP (PATTERN (NEXT_INSN (insn)), 1);
- if (!delay_slot_filled)
+ if (!delay_slot_filled && INSN_ADDRESSES_SET_P ())
{
/* See if the return address can be adjusted. Use the containing
sequence insn's address. */
@@ -6668,7 +6859,7 @@ output_call (insn, call_dest, sibcall)
xoperands[1] = gen_label_rtx ();
output_asm_insn ("ldo %0-%1(%%r2),%%r2", xoperands);
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
- CODE_LABEL_NUMBER (xoperands[3]));
+ CODE_LABEL_NUMBER (xoperands[1]));
}
else
/* ??? This branch may not reach its target. */
@@ -6686,6 +6877,122 @@ output_call (insn, call_dest, sibcall)
return "";
}
+/* Return the attribute length of the indirect call instruction INSN.
+ The length must match the code generated by output_indirect call.
+ The returned length includes the delay slot. Currently, the delay
+ slot of an indirect call sequence is not exposed and it is used by
+ the sequence itself. */
+
+int
+attr_length_indirect_call (insn)
+ rtx insn;
+{
+ unsigned long distance = -1;
+
+ if (INSN_ADDRESSES_SET_P ())
+ {
+ distance = (total_code_bytes + insn_current_reference_address (insn));
+ if (distance < total_code_bytes)
+ distance = -1;
+ }
+
+ if (TARGET_64BIT)
+ return 12;
+
+ if (TARGET_FAST_INDIRECT_CALLS
+ || (!TARGET_PORTABLE_RUNTIME
+ && ((TARGET_PA_20 && distance < 7600000) || distance < 240000)))
+ return 8;
+
+ if (flag_pic)
+ return 24;
+
+ if (TARGET_PORTABLE_RUNTIME)
+ return 20;
+
+ /* Out of reach, can use ble. */
+ return 12;
+}
+
+const char *
+output_indirect_call (insn, call_dest)
+ rtx insn;
+ rtx call_dest;
+{
+ rtx xoperands[1];
+
+ if (TARGET_64BIT)
+ {
+ xoperands[0] = call_dest;
+ output_asm_insn ("ldd 16(%0),%%r2", xoperands);
+ output_asm_insn ("bve,l (%%r2),%%r2\n\tldd 24(%0),%%r27", xoperands);
+ return "";
+ }
+
+ /* First the special case for kernels, level 0 systems, etc. */
+ if (TARGET_FAST_INDIRECT_CALLS)
+ return "ble 0(%%sr4,%%r22)\n\tcopy %%r31,%%r2";
+
+ /* Now the normal case -- we can reach $$dyncall directly or
+ we're sure that we can get there via a long-branch stub.
+
+ No need to check target flags as the length uniquely identifies
+ the remaining cases. */
+ if (attr_length_indirect_call (insn) == 8)
+ {
+ /* The HP linker substitutes a BLE for millicode calls using
+ the short PIC PCREL form. Thus, we must use %r31 as the
+ link register when generating PA 1.x code. */
+ if (TARGET_PA_20)
+ return ".CALL\tARGW0=GR\n\tb,l $$dyncall,%%r2\n\tcopy %%r2,%%r31";
+ else
+ return ".CALL\tARGW0=GR\n\tbl $$dyncall,%%r31\n\tcopy %%r31,%%r2";
+ }
+
+ /* Long millicode call, but we are not generating PIC or portable runtime
+ code. */
+ if (attr_length_indirect_call (insn) == 12)
+ return ".CALL\tARGW0=GR\n\tldil L'$$dyncall,%%r2\n\tble R'$$dyncall(%%sr4,%%r2)\n\tcopy %%r31,%%r2";
+
+ /* Long millicode call for portable runtime. */
+ if (attr_length_indirect_call (insn) == 20)
+ return "ldil L'$$dyncall,%%r31\n\tldo R'$$dyncall(%%r31),%%r31\n\tblr %%r0,%%r2\n\tbv,n %%r0(%%r31)\n\tnop";
+
+ /* We need a long PIC call to $$dyncall. */
+ xoperands[0] = NULL_RTX;
+ output_asm_insn ("{bl|b,l} .+8,%%r1", xoperands);
+ if (TARGET_SOM || !TARGET_GAS)
+ {
+ xoperands[0] = gen_label_rtx ();
+ output_asm_insn ("addil L'$$dyncall-%0,%%r1", xoperands);
+ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
+ CODE_LABEL_NUMBER (xoperands[0]));
+ output_asm_insn ("ldo R'$$dyncall-%0(%%r1),%%r1", xoperands);
+ }
+ else
+ {
+ output_asm_insn ("addil L'$$dyncall-$PIC_pcrel$0+4,%%r1", xoperands);
+ output_asm_insn ("ldo R'$$dyncall-$PIC_pcrel$0+8(%%r1),%%r1",
+ xoperands);
+ }
+ output_asm_insn ("blr %%r0,%%r2", xoperands);
+ output_asm_insn ("bv,n %%r0(%%r1)\n\tnop", xoperands);
+ return "";
+}
+
+/* Return the total length of the save and restore instructions needed for
+ the data linkage table pointer (i.e., the PIC register) across the call instruction INSN. No-return calls do not require a save and restore. In addition, we may be able to avoid the save and restore for calls within the same translation unit. */
+
+int
+attr_length_save_restore_dltp (insn)
+ rtx insn;
+{
+ if (find_reg_note (insn, REG_NORETURN, NULL_RTX))
+ return 0;
+
+ return 8;
+}
+
/* In HPUX 8.0's shared library scheme, special relocations are needed
for function labels if they might be passed to a function
in a shared library (because shared libraries don't live in code
@@ -6782,7 +7089,7 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
pa_output_function_prologue (file, 0);
if (VAL_14_BITS_P (delta))
{
- if (! TARGET_64BIT && ! TARGET_PORTABLE_RUNTIME && flag_pic)
+ if (!TARGET_64BIT && !TARGET_PORTABLE_RUNTIME && flag_pic)
{
fprintf (file, "\taddil LT'%s,%%r19\n", lab);
fprintf (file, "\tldw RT'%s(%%r1),%%r22\n", lab);
@@ -6791,8 +7098,14 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
fprintf (file, "\tdepi 0,31,2,%%r22\n");
fprintf (file, "\tldw 4(%%sr0,%%r22),%%r19\n");
fprintf (file, "\tldw 0(%%sr0,%%r22),%%r22\n");
- fprintf (file, "\tldsid (%%sr0,%%r22),%%r1\n\tmtsp %%r1,%%sr0\n");
- fprintf (file, "\tbe 0(%%sr0,%%r22)\n\tldo ");
+ if (TARGET_NO_SPACE_REGS)
+ fprintf (file, "\tbe 0(%%sr4,%%r22)\n\tldo ");
+ else
+ {
+ fprintf (file, "\tldsid (%%sr0,%%r22),%%r1\n");
+ fprintf (file, "\tmtsp %%r1,%%sr0\n");
+ fprintf (file, "\tbe 0(%%sr0,%%r22)\n\tldo ");
+ }
fprintf (file, HOST_WIDE_INT_PRINT_DEC, delta);
fprintf (file, "(%%r26),%%r26\n");
}
@@ -6805,7 +7118,7 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
}
else
{
- if (! TARGET_64BIT && ! TARGET_PORTABLE_RUNTIME && flag_pic)
+ if (!TARGET_64BIT && !TARGET_PORTABLE_RUNTIME && flag_pic)
{
fprintf (file, "\taddil L'");
fprintf (file, HOST_WIDE_INT_PRINT_DEC, delta);
@@ -6819,8 +7132,14 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
fprintf (file, "\tdepi 0,31,2,%%r22\n");
fprintf (file, "\tldw 4(%%sr0,%%r22),%%r19\n");
fprintf (file, "\tldw 0(%%sr0,%%r22),%%r22\n");
- fprintf (file, "\tldsid (%%sr0,%%r22),%%r1\n\tmtsp %%r1,%%sr0\n");
- fprintf (file, "\tbe,n 0(%%sr0,%%r22)\n");
+ if (TARGET_NO_SPACE_REGS)
+ fprintf (file, "\tbe 0(%%sr4,%%r22)");
+ else
+ {
+ fprintf (file, "\tldsid (%%sr0,%%r22),%%r1\n");
+ fprintf (file, "\tmtsp %%r1,%%sr0\n");
+ fprintf (file, "\tbe,n 0(%%sr0,%%r22)\n");
+ }
}
else
{
@@ -6903,6 +7222,46 @@ fmpyaddoperands (operands)
return 1;
}
+#if !defined(USE_COLLECT2)
+static void
+pa_asm_out_constructor (symbol, priority)
+ rtx symbol;
+ int priority;
+{
+ if (!function_label_operand (symbol, VOIDmode))
+ hppa_encode_label (symbol);
+
+#ifdef CTORS_SECTION_ASM_OP
+ default_ctor_section_asm_out_constructor (symbol, priority);
+#else
+# ifdef TARGET_ASM_NAMED_SECTION
+ default_named_section_asm_out_constructor (symbol, priority);
+# else
+ default_stabs_asm_out_constructor (symbol, priority);
+# endif
+#endif
+}
+
+static void
+pa_asm_out_destructor (symbol, priority)
+ rtx symbol;
+ int priority;
+{
+ if (!function_label_operand (symbol, VOIDmode))
+ hppa_encode_label (symbol);
+
+#ifdef DTORS_SECTION_ASM_OP
+ default_dtor_section_asm_out_destructor (symbol, priority);
+#else
+# ifdef TARGET_ASM_NAMED_SECTION
+ default_named_section_asm_out_destructor (symbol, priority);
+# else
+ default_stabs_asm_out_destructor (symbol, priority);
+# endif
+#endif
+}
+#endif
+
/* Returns 1 if the 6 operands specified in OPERANDS are suitable for
use in fmpysub instructions. */
int
@@ -7080,9 +7439,9 @@ jump_in_call_delay (insn)
if (PREV_INSN (insn)
&& PREV_INSN (PREV_INSN (insn))
- && GET_CODE (next_active_insn (PREV_INSN (PREV_INSN (insn)))) == INSN)
+ && GET_CODE (next_real_insn (PREV_INSN (PREV_INSN (insn)))) == INSN)
{
- rtx test_insn = next_active_insn (PREV_INSN (PREV_INSN (insn)));
+ rtx test_insn = next_real_insn (PREV_INSN (PREV_INSN (insn)));
return (GET_CODE (PATTERN (test_insn)) == SEQUENCE
&& XVECEXP (PATTERN (test_insn), 0, 1) == insn);
@@ -7737,12 +8096,11 @@ function_value (valtype, func)
??? We might want to restructure this so that it looks more like other
ports. */
rtx
-function_arg (cum, mode, type, named, incoming)
+function_arg (cum, mode, type, named)
CUMULATIVE_ARGS *cum;
enum machine_mode mode;
tree type;
int named ATTRIBUTE_UNUSED;
- int incoming;
{
int max_arg_words = (TARGET_64BIT ? 8 : 4);
int alignment = 0;
@@ -7884,7 +8242,7 @@ function_arg (cum, mode, type, named, incoming)
if (((TARGET_PORTABLE_RUNTIME || TARGET_64BIT || TARGET_ELF32)
/* If we are doing soft-float with portable runtime, then there
is no need to worry about FP regs. */
- && ! TARGET_SOFT_FLOAT
+ && !TARGET_SOFT_FLOAT
/* The parameter must be some kind of float, else we can just
pass it in integer registers. */
&& FLOAT_MODE_P (mode)
@@ -7893,14 +8251,15 @@ function_arg (cum, mode, type, named, incoming)
/* libcalls do not need to pass items in both FP and general
registers. */
&& type != NULL_TREE
- /* All this hair applies to outgoing args only. */
- && ! incoming)
+ /* All this hair applies to "outgoing" args only. This includes
+ sibcall arguments setup with FUNCTION_INCOMING_ARG. */
+ && !cum->incoming)
/* Also pass outgoing floating arguments in both registers in indirect
calls with the 32 bit ABI and the HP assembler since there is no
way to the specify argument locations in static functions. */
- || (! TARGET_64BIT
- && ! TARGET_GAS
- && ! incoming
+ || (!TARGET_64BIT
+ && !TARGET_GAS
+ && !cum->incoming
&& cum->indirect
&& FLOAT_MODE_P (mode)))
{
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 860b7590d98..9686b9ec731 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -206,6 +206,20 @@ extern int target_flags;
not for external calls. */
#define TARGET_LONG_PIC_PCREL_CALL 0
+/* Define to a C expression evaluating to true to use SOM secondary
+ definition symbols for weak support. Linker support for secondary
+ definition symbols is buggy prior to HP-UX 11.X. */
+#define TARGET_SOM_SDEF 0
+
+/* Define to a C expression evaluating to true to save the entry value
+ of SP in the current frame marker. This is normally unnecessary.
+ However, the HP-UX unwind library looks at the SAVE_SP callinfo flag.
+ HP compilers don't use this flag but it is supported by the assembler.
+ We set this flag to indicate that register %r3 has been saved at the
+ start of the frame. Thus, when the HP unwind library is used, we
+ need to generate additional code to save SP into the frame marker. */
+#define TARGET_HPUX_UNWIND_LIBRARY 0
+
/* Macro to define tables used to set the flags. This is a
list in braces of target switches with each switch being
{ "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
@@ -456,11 +470,12 @@ do { \
/* Boundary (in *bits*) on which stack pointer is always aligned;
certain optimizations in combine depend on this.
- GCC for the PA always rounds its stacks to a 8 * STACK_BOUNDARY
- boundary, but that happens late in the compilation process. */
+ The HP-UX runtime documents mandate 64-byte and 16-byte alignment for
+ the stack on the 32 and 64-bit ports, respectively. However, we
+ are only guaranteed that the stack is aligned to BIGGEST_ALIGNMENT
+ in main. Thus, we treat the former as the preferred alignment. */
#define STACK_BOUNDARY BIGGEST_ALIGNMENT
-
-#define PREFERRED_STACK_BOUNDARY (8 * STACK_BOUNDARY)
+#define PREFERRED_STACK_BOUNDARY (TARGET_64BIT ? 128 : 512)
/* Allocation boundary (in *bits*) for the code of a function. */
#define FUNCTION_BOUNDARY BITS_PER_WORD
@@ -642,10 +657,14 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void));
&& REGNO (IN) < FIRST_PSEUDO_REGISTER) \
? NO_REGS : secondary_reload_class (CLASS, MODE, IN))
+#define MAYBE_FP_REG_CLASS_P(CLASS) \
+ reg_classes_intersect_p ((CLASS), FP_REGS)
+
/* On the PA it is not possible to directly move data between
GENERAL_REGS and FP_REGS. */
-#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
- (FP_REG_CLASS_P (CLASS1) != FP_REG_CLASS_P (CLASS2))
+#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
+ (MAYBE_FP_REG_CLASS_P (CLASS1) != FP_REG_CLASS_P (CLASS2) \
+ || MAYBE_FP_REG_CLASS_P (CLASS2) != FP_REG_CLASS_P (CLASS1))
/* Return the stack location to use for secondary memory needed reloads. */
#define SECONDARY_MEMORY_NEEDED_RTX(MODE) \
@@ -706,9 +725,13 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void));
/* The weird HPPA calling conventions require a minimum of 48 bytes on
the stack: 16 bytes for register saves, and 32 bytes for magic.
This is the difference between the logical top of stack and the
- actual sp. */
+ actual sp.
+
+ On the 64-bit port, the HP C compiler allocates a 48-byte frame
+ marker, although the runtime documentation only describes a 16
+ byte marker. For compatibility, we allocate 48 bytes. */
#define STACK_POINTER_OFFSET \
- (TARGET_64BIT ? -(current_function_outgoing_args_size + 16): -32)
+ (TARGET_64BIT ? -(current_function_outgoing_args_size + 48): -32)
#define STACK_DYNAMIC_OFFSET(FNDECL) \
(TARGET_64BIT \
@@ -751,12 +774,21 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void));
and about the args processed so far, enough to enable macros
such as FUNCTION_ARG to determine where the next arg should go.
- On the HP-PA, this is a single integer, which is a number of words
+ On the HP-PA, the WORDS field holds the number of words
of arguments scanned so far (including the invisible argument,
- if any, which holds the structure-value-address).
- Thus 4 or more means all following args should go on the stack. */
+ if any, which holds the structure-value-address). Thus, 4 or
+ more means all following args should go on the stack.
+
+ The INCOMING field tracks whether this is an "incoming" or
+ "outgoing" argument.
+
+ The INDIRECT field indicates whether this is is an indirect
+ call or not.
+
+ The NARGS_PROTOTYPE field indicates that an argument does not
+ have a prototype when it less than or equal to 0. */
-struct hppa_args {int words, nargs_prototype, indirect; };
+struct hppa_args {int words, nargs_prototype, incoming, indirect; };
#define CUMULATIVE_ARGS struct hppa_args
@@ -766,6 +798,7 @@ struct hppa_args {int words, nargs_prototype, indirect; };
#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
(CUM).words = 0, \
+ (CUM).incoming = 0, \
(CUM).indirect = INDIRECT, \
(CUM).nargs_prototype = (FNTYPE && TYPE_ARG_TYPES (FNTYPE) \
? (list_length (TYPE_ARG_TYPES (FNTYPE)) - 1 \
@@ -780,6 +813,7 @@ struct hppa_args {int words, nargs_prototype, indirect; };
#define INIT_CUMULATIVE_INCOMING_ARGS(CUM,FNTYPE,IGNORE) \
(CUM).words = 0, \
+ (CUM).incoming = 1, \
(CUM).indirect = 0, \
(CUM).nargs_prototype = 1000
@@ -855,7 +889,7 @@ struct hppa_args {int words, nargs_prototype, indirect; };
tempted to try and simply it, but I worry about breaking something. */
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
- function_arg (&CUM, MODE, TYPE, NAMED, 0)
+ function_arg (&CUM, MODE, TYPE, NAMED)
/* Nonzero if we do not know how to pass TYPE solely in registers. */
#define MUST_PASS_IN_STACK(MODE,TYPE) \
@@ -863,9 +897,6 @@ struct hppa_args {int words, nargs_prototype, indirect; };
&& (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \
|| TREE_ADDRESSABLE (TYPE)))
-#define FUNCTION_INCOMING_ARG(CUM, MODE, TYPE, NAMED) \
- function_arg (&CUM, MODE, TYPE, NAMED, 1)
-
/* For an arg passed partly in registers and partly in memory,
this is the number of registers used.
For args passed entirely in registers or entirely in memory, zero. */
@@ -960,7 +991,7 @@ extern int may_call_alloca;
#define TRAMPOLINE_TEMPLATE(FILE) \
{ \
- if (! TARGET_64BIT) \
+ if (!TARGET_64BIT) \
{ \
fputs ("\tldw 36(%r22),%r21\n", FILE); \
fputs ("\tbb,>=,n %r21,30,.+16\n", FILE); \
@@ -970,10 +1001,20 @@ extern int may_call_alloca;
fputs ("\tdepwi 0,31,2,%r21\n", FILE); \
fputs ("\tldw 4(%r21),%r19\n", FILE); \
fputs ("\tldw 0(%r21),%r21\n", FILE); \
- fputs ("\tldsid (%r21),%r1\n", FILE); \
- fputs ("\tmtsp %r1,%sr0\n", FILE); \
- fputs ("\tbe 0(%sr0,%r21)\n", FILE); \
- fputs ("\tldw 40(%r22),%r29\n", FILE); \
+ if (TARGET_PA_20) \
+ { \
+ fputs ("\tbve (%r21)\n", FILE); \
+ fputs ("\tldw 40(%r22),%r29\n", FILE); \
+ fputs ("\t.word 0\n", FILE); \
+ fputs ("\t.word 0\n", FILE); \
+ } \
+ else \
+ { \
+ fputs ("\tldsid (%r21),%r1\n", FILE); \
+ fputs ("\tmtsp %r1,%sr0\n", FILE); \
+ fputs ("\tbe 0(%sr0,%r21)\n", FILE); \
+ fputs ("\tldw 40(%r22),%r29\n", FILE); \
+ } \
fputs ("\t.word 0\n", FILE); \
fputs ("\t.word 0\n", FILE); \
fputs ("\t.word 0\n", FILE); \
@@ -996,16 +1037,21 @@ extern int may_call_alloca;
} \
}
-/* Length in units of the trampoline for entering a nested function.
+/* Length in units of the trampoline for entering a nested function. */
- Flush the cache entries corresponding to the first and last addresses
- of the trampoline. This is necessary as the trampoline may cross two
- cache lines.
+#define TRAMPOLINE_SIZE (TARGET_64BIT ? 72 : 52)
- If the code part of the trampoline ever grows to > 32 bytes, then it
- will become necessary to hack on the cacheflush pattern in pa.md. */
+/* Length in units of the trampoline instruction code. */
-#define TRAMPOLINE_SIZE (TARGET_64BIT ? 72 : 52)
+#define TRAMPOLINE_CODE_SIZE (TARGET_64BIT ? 24 : (TARGET_PA_20 ? 32 : 40))
+
+/* Minimum length of a cache line. A length of 16 will work on all
+ PA-RISC processors. All PA 1.1 processors have a cache line of
+ 32 bytes. Most but not all PA 2.0 processors have a cache line
+ of 64 bytes. As cache flushes are expensive and we don't support
+ PA 1.0, we use a minimum length of 32. */
+
+#define MIN_CACHELINE_SIZE 32
/* Emit RTL insns to initialize the variable parts of a trampoline.
FNADDR is an RTX for the address of the function's pure code.
@@ -1015,55 +1061,85 @@ extern int may_call_alloca;
Move the static chain value to trampoline template at offset 40.
Move the trampoline address to trampoline template at offset 44.
Move r19 to trampoline template at offset 48. The latter two
- words create a plabel for the indirect call to the trampoline. */
+ words create a plabel for the indirect call to the trampoline.
+
+ A similar sequence is used for the 64-bit port but the plabel is
+ at the beginning of the trampoline.
+
+ Finally, the cache entries for the trampoline code are flushed.
+ This is necessary to ensure that the trampoline instruction sequence
+ is written to memory prior to any attempts at prefetching the code
+ sequence. */
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
{ \
- if (! TARGET_64BIT) \
+ rtx start_addr = gen_reg_rtx (Pmode); \
+ rtx end_addr = gen_reg_rtx (Pmode); \
+ rtx line_length = gen_reg_rtx (Pmode); \
+ rtx tmp; \
+ \
+ if (!TARGET_64BIT) \
{ \
- rtx start_addr, end_addr; \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 36)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), (FNADDR)); \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 40)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), (CXT)); \
\
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 36)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (FNADDR)); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 40)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (CXT)); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 44)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (TRAMP)); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 48)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), \
+ /* Create a fat pointer for the trampoline. */ \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 44)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), (TRAMP)); \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 48)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), \
gen_rtx_REG (Pmode, 19)); \
+ \
/* fdc and fic only use registers for the address to flush, \
- they do not accept integer displacements. */ \
- start_addr = force_reg (Pmode, (TRAMP)); \
- end_addr = force_reg (Pmode, plus_constant ((TRAMP), 32)); \
- emit_insn (gen_dcacheflush (start_addr, end_addr)); \
- end_addr = force_reg (Pmode, plus_constant (start_addr, 32)); \
- emit_insn (gen_icacheflush (start_addr, end_addr, start_addr, \
- gen_reg_rtx (Pmode), gen_reg_rtx (Pmode)));\
+ they do not accept integer displacements. We align the \
+ start and end addresses to the beginning of their respective \
+ cache lines to minimize the number of lines flushed. */ \
+ tmp = force_reg (Pmode, (TRAMP)); \
+ emit_insn (gen_andsi3 (start_addr, tmp, \
+ GEN_INT (-MIN_CACHELINE_SIZE))); \
+ tmp = force_reg (Pmode, \
+ plus_constant (tmp, TRAMPOLINE_CODE_SIZE - 1)); \
+ emit_insn (gen_andsi3 (end_addr, tmp, \
+ GEN_INT (-MIN_CACHELINE_SIZE))); \
+ emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE)); \
+ emit_insn (gen_dcacheflush (start_addr, end_addr, line_length)); \
+ emit_insn (gen_icacheflush (start_addr, end_addr, line_length, \
+ gen_reg_rtx (Pmode), \
+ gen_reg_rtx (Pmode))); \
} \
else \
{ \
- rtx start_addr, end_addr; \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 56)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), (FNADDR)); \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 64)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), (CXT)); \
\
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 56)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (FNADDR)); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 64)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), (CXT)); \
/* Create a fat pointer for the trampoline. */ \
- end_addr = force_reg (Pmode, plus_constant ((TRAMP), 32)); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 16)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), end_addr); \
- end_addr = gen_rtx_REG (Pmode, 27); \
- start_addr = memory_address (Pmode, plus_constant ((TRAMP), 24)); \
- emit_move_insn (gen_rtx_MEM (Pmode, start_addr), end_addr); \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 16)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), \
+ force_reg (Pmode, plus_constant ((TRAMP), 32))); \
+ tmp = memory_address (Pmode, plus_constant ((TRAMP), 24)); \
+ emit_move_insn (gen_rtx_MEM (Pmode, tmp), \
+ gen_rtx_REG (Pmode, 27)); \
+ \
/* fdc and fic only use registers for the address to flush, \
- they do not accept integer displacements. */ \
- start_addr = force_reg (Pmode, (TRAMP)); \
- end_addr = force_reg (Pmode, plus_constant ((TRAMP), 32)); \
- emit_insn (gen_dcacheflush (start_addr, end_addr)); \
- end_addr = force_reg (Pmode, plus_constant (start_addr, 32)); \
- emit_insn (gen_icacheflush (start_addr, end_addr, start_addr, \
- gen_reg_rtx (Pmode), gen_reg_rtx (Pmode)));\
+ they do not accept integer displacements. We align the \
+ start and end addresses to the beginning of their respective \
+ cache lines to minimize the number of lines flushed. */ \
+ tmp = force_reg (Pmode, plus_constant ((TRAMP), 32)); \
+ emit_insn (gen_anddi3 (start_addr, tmp, \
+ GEN_INT (-MIN_CACHELINE_SIZE))); \
+ tmp = force_reg (Pmode, \
+ plus_constant (tmp, TRAMPOLINE_CODE_SIZE - 1)); \
+ emit_insn (gen_anddi3 (end_addr, tmp, \
+ GEN_INT (-MIN_CACHELINE_SIZE))); \
+ emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE)); \
+ emit_insn (gen_dcacheflush (start_addr, end_addr, line_length)); \
+ emit_insn (gen_icacheflush (start_addr, end_addr, line_length, \
+ gen_reg_rtx (Pmode), \
+ gen_reg_rtx (Pmode))); \
} \
}
@@ -1188,7 +1264,7 @@ extern int may_call_alloca;
`S' is the constant 31.
- `T' is for fp loads and stores. */
+ `T' is for floating-point loads and stores. */
#define EXTRA_CONSTRAINT(OP, C) \
((C) == 'Q' ? \
(IS_RELOADING_PSEUDO_P (OP) \
@@ -1207,22 +1283,24 @@ extern int may_call_alloca;
&& (move_operand (OP, GET_MODE (OP)) \
|| memory_address_p (GET_MODE (OP), XEXP (OP, 0))\
|| reload_in_progress)) \
- : ((C) == 'T' ? \
- (GET_CODE (OP) == MEM \
- /* Using DFmode forces only short displacements \
- to be recognized as valid in reg+d addresses. \
- However, this is not necessary for PA2.0 since\
- it has long FP loads/stores. \
- \
- FIXME: the ELF32 linker clobbers the LSB of \
- the FP register number in {fldw,fstw} insns. \
- Thus, we only allow long FP loads/stores on \
- TARGET_64BIT. */ \
- && memory_address_p ((TARGET_PA_20 \
- && !TARGET_ELF32 \
- ? GET_MODE (OP) \
- : DFmode), \
- XEXP (OP, 0)) \
+ : ((C) == 'T' ? \
+ (GET_CODE (OP) == MEM \
+ /* Floating-point loads and stores are used to load \
+ integer values as well as floating-point values. \
+ They don't have the same set of REG+D address modes \
+ as integer loads and stores. PA 1.x supports only \
+ short displacements. PA 2.0 supports long displacements \
+ but the base register needs to be aligned. \
+ \
+ The checks in GO_IF_LEGITIMATE_ADDRESS for SFmode and \
+ DFmode test the validity of an address for use in a \
+ floating point load or store. So, we use SFmode/DFmode \
+ to see if the address is valid for a floating-point \
+ load/store operation. */ \
+ && memory_address_p ((GET_MODE_SIZE (GET_MODE (OP)) == 4 \
+ ? SFmode \
+ : DFmode), \
+ XEXP (OP, 0)) \
&& !(GET_CODE (XEXP (OP, 0)) == LO_SUM \
&& GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \
&& REG_OK_FOR_BASE_P (XEXP (XEXP (OP, 0), 0))\
@@ -1322,17 +1400,36 @@ extern int may_call_alloca;
&& REG_OK_FOR_BASE_P (XEXP (X, 1))) \
base = XEXP (X, 1), index = XEXP (X, 0); \
if (base != 0) \
- if (GET_CODE (index) == CONST_INT \
- && ((INT_14_BITS (index) \
- && (TARGET_SOFT_FLOAT \
- || (TARGET_PA_20 \
- && ((MODE == SFmode \
- && (INTVAL (index) % 4) == 0)\
- || (MODE == DFmode \
- && (INTVAL (index) % 8) == 0)))\
- || ((MODE) != SFmode && (MODE) != DFmode))) \
- || INT_5_BITS (index))) \
- goto ADDR; \
+ if (GET_CODE (index) == CONST_INT \
+ && ((INT_14_BITS (index) \
+ && (((MODE) != DImode \
+ && (MODE) != SFmode \
+ && (MODE) != DFmode) \
+ /* The base register for DImode loads and stores \
+ with long displacements must be aligned because \
+ the lower three bits in the displacement are \
+ assumed to be zero. */ \
+ || ((MODE) == DImode \
+ && (!TARGET_64BIT \
+ || (INTVAL (index) % 8) == 0)) \
+ /* Similarly, the base register for SFmode/DFmode \
+ loads and stores with long displacements must \
+ be aligned. \
+ \
+ FIXME: the ELF32 linker clobbers the LSB of \
+ the FP register number in PA 2.0 floating-point \
+ insns with long displacements. This is because \
+ R_PARISC_DPREL14WR and other relocations like \
+ it are not supported. For now, we reject long \
+ displacements on this target. */ \
+ || (((MODE) == SFmode || (MODE) == DFmode) \
+ && (TARGET_SOFT_FLOAT \
+ || (TARGET_PA_20 \
+ && !TARGET_ELF32 \
+ && (INTVAL (index) \
+ % GET_MODE_SIZE (MODE)) == 0))))) \
+ || INT_5_BITS (index))) \
+ goto ADDR; \
if (! TARGET_SOFT_FLOAT \
&& ! TARGET_DISABLE_INDEXING \
&& base \
@@ -1435,6 +1532,11 @@ do { \
else \
newoffset = offset & ~mask; \
\
+ /* Ensure that long displacements are aligned. */ \
+ if (!VAL_5_BITS_P (newoffset) \
+ && GET_MODE_CLASS (MODE) == MODE_FLOAT) \
+ newoffset &= ~(GET_MODE_SIZE (MODE) -1); \
+ \
if (newoffset != 0 \
&& VAL_14_BITS_P (newoffset)) \
{ \
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 640196b067d..e0160031710 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -1,6 +1,6 @@
;;- Machine description for HP PA-RISC architecture for GNU C compiler
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-;; 2002 Free Software Foundation, Inc.
+;; 2002, 2003 Free Software Foundation, Inc.
;; Contributed by the Center for Software Science at the University
;; of Utah.
@@ -625,23 +625,37 @@
[(set_attr "length" "4")
(set_attr "type" "fpcc")])
-;; The following two patterns are optimization placeholders. In almost
+;; Provide a means to emit the movccfp0 and movccfp1 optimization
+;; placeholders. This is necessary in rare situations when a
+;; placeholder is re-emitted (see PR 8705).
+
+(define_expand "movccfp"
+ [(set (reg:CCFP 0)
+ (match_operand 0 "const_int_operand" ""))]
+ "! TARGET_SOFT_FLOAT"
+ "
+{
+ if ((unsigned HOST_WIDE_INT) INTVAL (operands[0]) > 1)
+ FAIL;
+}")
+
+;; The following patterns are optimization placeholders. In almost
;; all cases, the user of the condition code will be simplified and the
;; original condition code setting insn should be eliminated.
-(define_insn "*setccfp0"
+(define_insn "*movccfp0"
[(set (reg:CCFP 0)
(const_int 0))]
"! TARGET_SOFT_FLOAT"
- "fcmp,dbl,!= %%fr0,%%fr0"
+ "fcmp,dbl,= %%fr0,%%fr0"
[(set_attr "length" "4")
(set_attr "type" "fpcc")])
-(define_insn "*setccfp1"
+(define_insn "*movccfp1"
[(set (reg:CCFP 0)
(const_int 1))]
"! TARGET_SOFT_FLOAT"
- "fcmp,dbl,= %%fr0,%%fr0"
+ "fcmp,dbl,!= %%fr0,%%fr0"
[(set_attr "length" "4")
(set_attr "type" "fpcc")])
@@ -2250,9 +2264,9 @@
(define_insn ""
[(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand"
- "=r,r,r,r,r,r,Q,*q,!f,f,*TR")
+ "=r,r,r,r,r,r,Q,!*q,!r,!f,f,*TR")
(match_operand:SI 1 "move_operand"
- "A,r,J,N,K,RQ,rM,rM,!fM,*RT,f"))]
+ "A,r,J,N,K,RQ,rM,!rM,!*q,!fM,*RT,f"))]
"(register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))
&& ! TARGET_SOFT_FLOAT"
@@ -2265,18 +2279,19 @@
ldw%M1 %1,%0
stw%M0 %r1,%0
mtsar %r1
+ {mfctl|mfctl,w} %%sar,%0
fcpy,sgl %f1,%0
fldw%F1 %1,%0
fstw%F0 %1,%0"
- [(set_attr "type" "load,move,move,move,shift,load,store,move,fpalu,fpload,fpstore")
+ [(set_attr "type" "load,move,move,move,shift,load,store,move,move,fpalu,fpload,fpstore")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:SI 0 "reg_or_nonsymb_mem_operand"
- "=r,r,r,r,r,r,Q,*q")
+ "=r,r,r,r,r,r,Q,!*q,!r")
(match_operand:SI 1 "move_operand"
- "A,r,J,N,K,RQ,rM,rM"))]
+ "A,r,J,N,K,RQ,rM,!rM,!*q"))]
"(register_operand (operands[0], SImode)
|| reg_or_0_operand (operands[1], SImode))
&& TARGET_SOFT_FLOAT"
@@ -2288,10 +2303,11 @@
{zdepi|depwi,z} %Z1,%0
ldw%M1 %1,%0
stw%M0 %r1,%0
- mtsar %r1"
- [(set_attr "type" "load,move,move,move,move,load,store,move")
+ mtsar %r1
+ {mfctl|mfctl,w} %%sar,%0"
+ [(set_attr "type" "load,move,move,move,move,load,store,move,move")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
@@ -2685,8 +2701,10 @@
}")
(define_insn ""
- [(set (match_operand:HI 0 "reg_or_nonsymb_mem_operand" "=r,r,r,r,r,Q,*q,!*f")
- (match_operand:HI 1 "move_operand" "r,J,N,K,RQ,rM,rM,!*fM"))]
+ [(set (match_operand:HI 0 "reg_or_nonsymb_mem_operand"
+ "=r,r,r,r,r,Q,!*q,!r,!*f")
+ (match_operand:HI 1 "move_operand"
+ "r,J,N,K,RQ,rM,!rM,!*q,!*fM"))]
"register_operand (operands[0], HImode)
|| reg_or_0_operand (operands[1], HImode)"
"@
@@ -2697,10 +2715,11 @@
ldh%M1 %1,%0
sth%M0 %r1,%0
mtsar %r1
+ {mfctl|mfctl,w} %sar,%0
fcpy,sgl %f1,%0"
- [(set_attr "type" "move,move,move,shift,load,store,move,fpalu")
+ [(set_attr "type" "move,move,move,shift,load,store,move,move,fpalu")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r")
@@ -2800,8 +2819,10 @@
}")
(define_insn ""
- [(set (match_operand:QI 0 "reg_or_nonsymb_mem_operand" "=r,r,r,r,r,Q,*q,!*f")
- (match_operand:QI 1 "move_operand" "r,J,N,K,RQ,rM,rM,!*fM"))]
+ [(set (match_operand:QI 0 "reg_or_nonsymb_mem_operand"
+ "=r,r,r,r,r,Q,!*q,!r,!*f")
+ (match_operand:QI 1 "move_operand"
+ "r,J,N,K,RQ,rM,!rM,!*q,!*fM"))]
"register_operand (operands[0], QImode)
|| reg_or_0_operand (operands[1], QImode)"
"@
@@ -2812,10 +2833,11 @@
ldb%M1 %1,%0
stb%M0 %r1,%0
mtsar %r1
+ {mfctl|mfctl,w} %%sar,%0
fcpy,sgl %f1,%0"
- [(set_attr "type" "move,move,move,shift,load,store,move,fpalu")
+ [(set_attr "type" "move,move,move,shift,load,store,move,move,fpalu")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:QI 0 "register_operand" "=r")
@@ -3123,9 +3145,9 @@
(define_insn ""
[(set (match_operand:DF 0 "reg_or_nonsymb_mem_operand"
- "=r,r,r,r,r,Q,*q,!f,f,*TR")
+ "=r,r,r,r,r,Q,!f,f,*TR")
(match_operand:DF 1 "move_operand"
- "r,J,N,K,RQ,rM,rM,!fM,*RT,f"))]
+ "r,J,N,K,RQ,rM,!fM,*RT,f"))]
"(register_operand (operands[0], DFmode)
|| reg_or_0_operand (operands[1], DFmode))
&& ! TARGET_SOFT_FLOAT && TARGET_64BIT"
@@ -3136,13 +3158,12 @@
depdi,z %z1,%0
ldd%M1 %1,%0
std%M0 %r1,%0
- mtsar %r1
fcpy,dbl %f1,%0
fldd%F1 %1,%0
fstd%F0 %1,%0"
- [(set_attr "type" "move,move,move,shift,load,store,move,fpalu,fpload,fpstore")
+ [(set_attr "type" "move,move,move,shift,load,store,fpalu,fpload,fpstore")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:DF 0 "register_operand" "=fx")
@@ -3282,9 +3303,9 @@
(define_insn ""
[(set (match_operand:DI 0 "reg_or_nonsymb_mem_operand"
- "=r,r,r,r,r,r,Q,*q,!f,f,*TR")
+ "=r,r,r,r,r,r,Q,!*q,!r,!f,f,*TR")
(match_operand:DI 1 "move_operand"
- "A,r,J,N,K,RQ,rM,rM,!fM,*RT,f"))]
+ "A,r,J,N,K,RQ,rM,!rM,!*q,!fM,*RT,f"))]
"(register_operand (operands[0], DImode)
|| reg_or_0_operand (operands[1], DImode))
&& ! TARGET_SOFT_FLOAT && TARGET_64BIT"
@@ -3297,12 +3318,13 @@
ldd%M1 %1,%0
std%M0 %r1,%0
mtsar %r1
+ {mfctl|mfctl,w} %%sar,%0
fcpy,dbl %f1,%0
fldd%F1 %1,%0
fstd%F0 %1,%0"
- [(set_attr "type" "load,move,move,move,shift,load,store,move,fpalu,fpload,fpstore")
+ [(set_attr "type" "load,move,move,move,shift,load,store,move,move,fpalu,fpload,fpstore")
(set_attr "pa_combine_type" "addmove")
- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4")])
+ (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")])
(define_insn ""
[(set (match_operand:DI 0 "reg_or_nonsymb_mem_operand"
@@ -3978,9 +4000,9 @@
(set_attr "length" "8")])
(define_insn ""
- [(set (match_operand:DI 0 "register_operand" "=r,r,q")
- (minus:DI (match_operand:DI 1 "arith11_operand" "r,I,U")
- (match_operand:DI 2 "register_operand" "r,r,r")))]
+ [(set (match_operand:DI 0 "register_operand" "=r,r,!q")
+ (minus:DI (match_operand:DI 1 "arith11_operand" "r,I,!U")
+ (match_operand:DI 2 "register_operand" "r,r,!r")))]
"TARGET_64BIT"
"@
sub %1,%2,%0
@@ -4008,9 +4030,9 @@
(set_attr "length" "4,4")])
(define_insn ""
- [(set (match_operand:SI 0 "register_operand" "=r,r,q")
- (minus:SI (match_operand:SI 1 "arith11_operand" "r,I,S")
- (match_operand:SI 2 "register_operand" "r,r,r")))]
+ [(set (match_operand:SI 0 "register_operand" "=r,r,!q")
+ (minus:SI (match_operand:SI 1 "arith11_operand" "r,I,!S")
+ (match_operand:SI 2 "register_operand" "r,r,!r")))]
"TARGET_PA_20"
"@
sub %1,%2,%0
@@ -4086,7 +4108,7 @@
"!TARGET_64BIT"
"* return output_mul_insn (0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_insn ""
[(set (reg:SI 29) (mult:SI (reg:SI 26) (reg:SI 25)))
@@ -4097,7 +4119,7 @@
"TARGET_64BIT"
"* return output_mul_insn (0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_expand "muldi3"
[(set (match_operand:DI 0 "register_operand" "")
@@ -4135,7 +4157,7 @@
emit_insn (gen_umulsidi3 (cross_product2, op2l, op1r));
/* Emit a multiply for the low sub-word. */
- emit_insn (gen_umulsidi3 (low_product, op2r, op1r));
+ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r)));
/* Sum the cross products and shift them into proper position. */
emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2));
@@ -4188,7 +4210,7 @@
"*
return output_div_insn (operands, 0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_insn ""
[(set (reg:SI 29)
@@ -4202,7 +4224,7 @@
"*
return output_div_insn (operands, 0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_expand "udivsi3"
[(set (reg:SI 26) (match_operand:SI 1 "move_operand" ""))
@@ -4245,7 +4267,7 @@
"*
return output_div_insn (operands, 1, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_insn ""
[(set (reg:SI 29)
@@ -4259,7 +4281,7 @@
"*
return output_div_insn (operands, 1, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_expand "modsi3"
[(set (reg:SI 26) (match_operand:SI 1 "move_operand" ""))
@@ -4298,7 +4320,7 @@
"*
return output_mod_insn (0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_insn ""
[(set (reg:SI 29) (mod:SI (reg:SI 26) (reg:SI 25)))
@@ -4311,7 +4333,7 @@
"*
return output_mod_insn (0, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_expand "umodsi3"
[(set (reg:SI 26) (match_operand:SI 1 "move_operand" ""))
@@ -4350,7 +4372,7 @@
"*
return output_mod_insn (1, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
(define_insn ""
[(set (reg:SI 29) (umod:SI (reg:SI 26) (reg:SI 25)))
@@ -4363,7 +4385,7 @@
"*
return output_mod_insn (1, insn);"
[(set_attr "type" "milli")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 0)"))])
+ (set (attr "length") (symbol_ref "attr_length_millicode_call (insn)"))])
;;- and instructions
;; We define DImode `and` so with DImode `not` we can get
@@ -4371,14 +4393,13 @@
(define_expand "anddi3"
[(set (match_operand:DI 0 "register_operand" "")
- (and:DI (match_operand:DI 1 "arith_double_operand" "")
+ (and:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "arith_double_operand" "")))]
""
"
{
- if (! register_operand (operands[1], DImode)
- || ! register_operand (operands[2], DImode))
- /* Let GCC break this into word-at-a-time operations. */
+ /* Both operands must be register operands. */
+ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
FAIL;
}")
@@ -4440,14 +4461,13 @@
(define_expand "iordi3"
[(set (match_operand:DI 0 "register_operand" "")
- (ior:DI (match_operand:DI 1 "arith_double_operand" "")
+ (ior:DI (match_operand:DI 1 "register_operand" "")
(match_operand:DI 2 "arith_double_operand" "")))]
""
"
{
- if (! register_operand (operands[1], DImode)
- || ! register_operand (operands[2], DImode))
- /* Let GCC break this into word-at-a-time operations. */
+ /* Both operands must be register operands. */
+ if (!TARGET_64BIT && !register_operand (operands[2], DImode))
FAIL;
}")
@@ -5614,23 +5634,7 @@
[(return)
(use (reg:SI 2))
(const_int 1)]
- "! flag_pic"
- "*
-{
- if (TARGET_PA_20)
- return \"bve%* (%%r2)\";
- return \"bv%* %%r0(%%r2)\";
-}"
- [(set_attr "type" "branch")
- (set_attr "length" "4")])
-
-;; Use the PIC register to ensure it's restored after a
-;; call in PIC mode.
-(define_insn "return_internal_pic"
- [(return)
- (use (match_operand 0 "register_operand" "r"))
- (use (reg:SI 2))]
- "flag_pic && true_regnum (operands[0]) == PIC_OFFSET_TABLE_REGNUM"
+ ""
"*
{
if (TARGET_PA_20)
@@ -5640,17 +5644,14 @@
[(set_attr "type" "branch")
(set_attr "length" "4")])
-;; Use the PIC register to ensure it's restored after a
-;; call in PIC mode. This is used for eh returns which
-;; bypass the return stub.
+;; This is used for eh returns which bypass the return stub.
(define_insn "return_external_pic"
[(return)
- (use (match_operand 0 "register_operand" "r"))
- (use (reg:SI 2))
- (clobber (reg:SI 1))]
- "flag_pic
- && current_function_calls_eh_return
- && true_regnum (operands[0]) == PIC_OFFSET_TABLE_REGNUM"
+ (clobber (reg:SI 1))
+ (use (reg:SI 2))]
+ "!TARGET_NO_SPACE_REGS
+ && !TARGET_PA_20
+ && flag_pic && current_function_calls_eh_return"
"ldsid (%%sr0,%%r2),%%r1\;mtsp %%r1,%%sr0\;be%* 0(%%sr0,%%r2)"
[(set_attr "type" "branch")
(set_attr "length" "12")])
@@ -5683,20 +5684,18 @@
rtx x;
hppa_expand_epilogue ();
- if (flag_pic)
- {
- rtx pic = gen_rtx_REG (word_mode, PIC_OFFSET_TABLE_REGNUM);
- /* EH returns bypass the normal return stub. Thus, we must do an
- interspace branch to return from functions that call eh_return.
- This is only a problem for returns from shared code. */
- if (current_function_calls_eh_return)
- x = gen_return_external_pic (pic);
- else
- x = gen_return_internal_pic (pic);
- }
+ /* EH returns bypass the normal return stub. Thus, we must do an
+ interspace branch to return from functions that call eh_return.
+ This is only a problem for returns from shared code on ports
+ using space registers. */
+ if (!TARGET_NO_SPACE_REGS
+ && !TARGET_PA_20
+ && flag_pic && current_function_calls_eh_return)
+ x = gen_return_external_pic ();
else
x = gen_return_internal ();
+
emit_jump_insn (x);
}
DONE;
@@ -5742,8 +5741,6 @@
""
"*
{
- extern int optimize;
-
if (GET_MODE (insn) == SImode)
return \"b %l0%#\";
@@ -5752,61 +5749,7 @@
&& get_attr_length (insn) != 16)
return \"b%* %l0\";
- /* An unconditional branch which can not reach its target.
-
- We need to be able to use %r1 as a scratch register; however,
- we can never be sure whether or not it's got a live value in
- it. Therefore, we must restore its original value after the
- jump.
-
- To make matters worse, we don't have a stack slot which we
- can always clobber. sp-12/sp-16 shouldn't ever have a live
- value during a non-optimizing compilation, so we use those
- slots for now. We don't support very long branches when
- optimizing -- they should be quite rare when optimizing.
-
- Really the way to go long term is a register scavenger; goto
- the target of the jump and find a register which we can use
- as a scratch to hold the value in %r1. */
-
- /* We don't know how to register scavenge yet. */
- if (optimize)
- abort ();
-
- /* First store %r1 into the stack. */
- output_asm_insn (\"stw %%r1,-16(%%r30)\", operands);
-
- /* Now load the target address into %r1 and do an indirect jump
- to the value specified in %r1. Be careful to generate PIC
- code as needed. */
- if (flag_pic)
- {
- rtx xoperands[2];
- xoperands[0] = operands[0];
- if (TARGET_SOM || ! TARGET_GAS)
- {
- xoperands[1] = gen_label_rtx ();
-
- output_asm_insn (\"{bl|b,l} .+8,%%r1\\n\\taddil L'%l0-%l1,%%r1\",
- xoperands);
- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
- CODE_LABEL_NUMBER (xoperands[1]));
- output_asm_insn (\"ldo R'%l0-%l1(%%r1),%%r1\", xoperands);
- }
- else
- {
- output_asm_insn (\"{bl|b,l} .+8,%%r1\", xoperands);
- output_asm_insn (\"addil L'%l0-$PIC_pcrel$0+4,%%r1\", xoperands);
- output_asm_insn (\"ldo R'%l0-$PIC_pcrel$0+8(%%r1),%%r1\", xoperands);
- }
- output_asm_insn (\"bv %%r0(%%r1)\", xoperands);
- }
- else
- output_asm_insn (\"ldil L'%l0,%%r1\\n\\tbe R'%l0(%%sr4,%%r1)\", operands);;
-
- /* And restore the value of %r1 in the delay slot. We're not optimizing,
- so we know nothing else can be in the delay slot. */
- return \"ldw -16(%%r30),%%r1\";
+ return output_lbranch (operands[0], insn);
}"
[(set_attr "type" "uncond_branch")
(set_attr "pa_combine_type" "uncond_branch")
@@ -5901,8 +5844,8 @@
""
"
{
- rtx op;
- rtx call_insn;
+ rtx op, call_insn;
+ rtx nb = operands[1];
if (TARGET_PORTABLE_RUNTIME)
op = force_reg (SImode, XEXP (operands[0], 0));
@@ -5910,51 +5853,127 @@
op = XEXP (operands[0], 0);
if (TARGET_64BIT)
- emit_move_insn (arg_pointer_rtx,
- gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
- GEN_INT (64)));
+ {
+ if (!virtuals_instantiated)
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
+ GEN_INT (64)));
+ else
+ {
+ /* The loop pass can generate new libcalls after the virtual
+ registers are instantiated when fpregs are disabled because
+ the only method that we have for doing DImode multiplication
+ is with a libcall. This could be trouble if we haven't
+ allocated enough space for the outgoing arguments. */
+ if (INTVAL (nb) > current_function_outgoing_args_size)
+ abort ();
+
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (STACK_POINTER_OFFSET + 64)));
+ }
+ }
/* Use two different patterns for calls to explicitly named functions
and calls through function pointers. This is necessary as these two
types of calls use different calling conventions, and CSE might try
to change the named call into an indirect call in some cases (using
- two patterns keeps CSE from performing this optimization). */
- if (GET_CODE (op) == SYMBOL_REF)
- call_insn = emit_call_insn (gen_call_internal_symref (op, operands[1]));
- else if (TARGET_64BIT)
+ two patterns keeps CSE from performing this optimization).
+
+ We now use even more call patterns as there was a subtle bug in
+ attempting to restore the pic register after a call using a simple
+ move insn. During reload, a instruction involving a pseudo register
+ with no explicit dependence on the PIC register can be converted
+ to an equivalent load from memory using the PIC register. If we
+ emit a simple move to restore the PIC register in the initial rtl
+ generation, then it can potentially be repositioned during scheduling.
+ and an instruction that eventually uses the PIC register may end up
+ between the call and the PIC register restore.
+
+ This only worked because there is a post call group of instructions
+ that are scheduled with the call. These instructions are included
+ in the same basic block as the call. However, calls can throw in
+ C++ code and a basic block has to terminate at the call if the call
+ can throw. This results in the PIC register restore being scheduled
+ independently from the call. So, we now hide the save and restore
+ of the PIC register in the call pattern until after reload. Then,
+ we split the moves out. A small side benefit is that we now don't
+ need to have a use of the PIC register in the return pattern and
+ the final save/restore operation is not needed.
+
+ I elected to just clobber %r4 in the PIC patterns and use it instead
+ of trying to force hppa_pic_save_rtx () to a callee saved register.
+ This might have required a new register class and constraint. It
+ was also simpler to just handle the restore from a register than a
+ generic pseudo. */
+ if (TARGET_64BIT)
{
- rtx tmpreg = force_reg (word_mode, op);
- call_insn = emit_call_insn (gen_call_internal_reg_64bit (tmpreg,
- operands[1]));
+ if (GET_CODE (op) == SYMBOL_REF)
+ call_insn = emit_call_insn (gen_call_symref_64bit (op, nb));
+ else
+ {
+ op = force_reg (word_mode, op);
+ call_insn = emit_call_insn (gen_call_reg_64bit (op, nb));
+ }
}
else
{
- rtx tmpreg = gen_rtx_REG (word_mode, 22);
- emit_move_insn (tmpreg, force_reg (word_mode, op));
- call_insn = emit_call_insn (gen_call_internal_reg (operands[1]));
- }
-
- if (TARGET_64BIT)
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), arg_pointer_rtx);
-
- if (flag_pic)
- {
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
+ if (GET_CODE (op) == SYMBOL_REF)
+ {
+ if (flag_pic)
+ call_insn = emit_call_insn (gen_call_symref_pic (op, nb));
+ else
+ call_insn = emit_call_insn (gen_call_symref (op, nb));
+ }
+ else
+ {
+ rtx tmpreg = gen_rtx_REG (word_mode, 22);
- /* After each call we must restore the PIC register, even if it
- doesn't appear to be used. */
- emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
+ emit_move_insn (tmpreg, force_reg (word_mode, op));
+ if (flag_pic)
+ call_insn = emit_call_insn (gen_call_reg_pic (nb));
+ else
+ call_insn = emit_call_insn (gen_call_reg (nb));
+ }
}
+
DONE;
}")
-(define_insn "call_internal_symref"
+;; We use function calls to set the attribute length of calls and millicode
+;; calls. This is necessary because of the large variety of call sequences.
+;; Implementing the calculation in rtl is difficult as well as ugly. As
+;; we need the same calculation in several places, maintenance becomes a
+;; nightmare.
+;;
+;; However, this has a subtle impact on branch shortening. When the
+;; expression used to set the length attribute of an instruction depends
+;; on a relative address (e.g., pc or a branch address), genattrtab
+;; notes that the insn's length is variable, and attempts to determine a
+;; worst-case default length and code to compute an insn's current length.
+
+;; The use of a function call hides the variable dependence of our calls
+;; and millicode calls. The result is genattrtab doesn't treat the operation
+;; as variable and it only generates code for the default case using our
+;; function call. Because of this, calls and millicode calls have a fixed
+;; length in the branch shortening pass, and some branches will use a longer
+;; code sequence than necessary. However, the length of any given call
+;; will still reflect its final code location and it may be shorter than
+;; the initial length estimate.
+
+;; It's possible to trick genattrtab by adding an expression involving `pc'
+;; in the set. However, when genattrtab hits a function call in its attempt
+;; to compute the default length, it marks the result as unknown and sets
+;; the default result to MAX_INT ;-( One possible fix that would allow
+;; calls to participate in branch shortening would be to make the call to ;; insn_default_length a target option. Then, we could massage unknown ;; results. Another fix might be to change genattrtab so that it just does ;; the call in the variable case as it already does for the fixed case.
+
+(define_insn "call_symref"
[(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" "i"))
(clobber (reg:SI 1))
(clobber (reg:SI 2))
(use (const_int 0))]
- "! TARGET_PORTABLE_RUNTIME"
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
"*
{
output_arg_descriptor (insn);
@@ -5963,102 +5982,356 @@
[(set_attr "type" "call")
(set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
-(define_insn "call_internal_reg_64bit"
- [(call (mem:SI (match_operand:DI 0 "register_operand" "r"))
+(define_insn "call_symref_pic"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" "i"))
+ (clobber (reg:SI 1))
(clobber (reg:SI 2))
- (use (const_int 1))]
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[0], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_call (insn, 0)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:SI 4) (reg:SI 19))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))])
+ (set (reg:SI 19) (reg:SI 4))]
+ "")
+
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT && reload_completed"
+ [(parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "")
+
+(define_insn "*call_symref_pic_post_reload"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[0], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
+
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_symref_64bit"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))]
"TARGET_64BIT"
"*
{
- /* ??? Needs more work. Length computation, split into multiple insns,
- expose delay slot. */
- return \"ldd 16(%0),%%r2\;bve,l (%%r2),%%r2\;ldd 24(%0),%%r27\";
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[0], 0);
}"
- [(set_attr "type" "dyncall")
- (set (attr "length") (const_int 12))])
+ [(set_attr "type" "call")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_call (insn, 0)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:DI 4) (reg:DI 27))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])
+ (set (reg:DI 27) (reg:DI 4))]
+ "")
-(define_insn "call_internal_reg"
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "TARGET_64BIT && reload_completed"
+ [(parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "")
+
+(define_insn "*call_symref_64bit_post_reload"
+ [(call (mem:SI (match_operand 0 "call_operand_address" ""))
+ (match_operand 1 "" "i"))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))]
+ "TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[0], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
+
+(define_insn "call_reg"
[(call (mem:SI (reg:SI 22))
(match_operand 0 "" "i"))
(clobber (reg:SI 1))
(clobber (reg:SI 2))
(use (const_int 1))]
- ""
+ "!TARGET_64BIT"
"*
{
- rtx xoperands[2];
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
- /* First the special case for kernels, level 0 systems, etc. */
- if (TARGET_FAST_INDIRECT_CALLS)
- return \"ble 0(%%sr4,%%r22)\;copy %%r31,%%r2\";
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_reg_pic"
+ [(call (mem:SI (reg:SI 22))
+ (match_operand 0 "" "i"))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))]
+ "!TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_indirect_call (insn)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(call (mem:SI (reg:SI 22))
+ (match_operand 0 "" ""))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "!TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:SI 4) (reg:SI 19))
+ (parallel [(call (mem:SI (reg:SI 22))
+ (match_dup 0))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))])
+ (set (reg:SI 19) (reg:SI 4))]
+ "")
- /* Now the normal case -- we can reach $$dyncall directly or
- we're sure that we can get there via a long-branch stub.
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(call (mem:SI (reg:SI 22))
+ (match_operand 0 "" ""))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "!TARGET_64BIT && reload_completed"
+ [(parallel [(call (mem:SI (reg:SI 22))
+ (match_dup 0))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "")
- No need to check target flags as the length uniquely identifies
- the remaining cases. */
- if (get_attr_length (insn) == 8)
- return \".CALL\\tARGW0=GR\;{bl|b,l} $$dyncall,%%r31\;copy %%r31,%%r2\";
+(define_insn "*call_reg_pic_post_reload"
+ [(call (mem:SI (reg:SI 22))
+ (match_operand 0 "" "i"))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))]
+ "!TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
- /* Long millicode call, but we are not generating PIC or portable runtime
- code. */
- if (get_attr_length (insn) == 12)
- return \".CALL\\tARGW0=GR\;ldil L%%$$dyncall,%%r2\;ble R%%$$dyncall(%%sr4,%%r2)\;copy %%r31,%%r2\";
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_reg_64bit"
+ [(call (mem:SI (match_operand:DI 0 "register_operand" "r"))
+ (match_operand 1 "" "i"))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))]
+ "TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, operands[0]);
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_indirect_call (insn)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(call (mem:SI (match_operand 0 "register_operand" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:DI 4) (reg:DI 27))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])
+ (set (reg:DI 27) (reg:DI 4))]
+ "")
- /* Long millicode call for portable runtime. */
- if (get_attr_length (insn) == 20)
- return \"ldil L%%$$dyncall,%%r31\;ldo R%%$$dyncall(%%r31),%%r31\;blr %%r0,%%r2\;bv,n %%r0(%%r31)\;nop\";
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(call (mem:SI (match_operand 0 "register_operand" ""))
+ (match_operand 1 "" ""))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "TARGET_64BIT && reload_completed"
+ [(parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "")
- /* If we're generating PIC code. */
- xoperands[0] = operands[0];
- if (TARGET_SOM || ! TARGET_GAS)
- xoperands[1] = gen_label_rtx ();
- output_asm_insn (\"{bl|b,l} .+8,%%r1\", xoperands);
- if (TARGET_SOM || ! TARGET_GAS)
- {
- output_asm_insn (\"addil L%%$$dyncall-%1,%%r1\", xoperands);
- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
- CODE_LABEL_NUMBER (xoperands[1]));
- output_asm_insn (\"ldo R%%$$dyncall-%1(%%r1),%%r1\", xoperands);
- }
- else
- {
- output_asm_insn (\"addil L%%$$dyncall-$PIC_pcrel$0+4,%%r1\", xoperands);
- output_asm_insn (\"ldo R%%$$dyncall-$PIC_pcrel$0+8(%%r1),%%r1\",
- xoperands);
- }
- output_asm_insn (\"blr %%r0,%%r2\", xoperands);
- output_asm_insn (\"bv,n %%r0(%%r1)\\n\\tnop\", xoperands);
- return \"\";
+(define_insn "*call_reg_64bit_post_reload"
+ [(call (mem:SI (match_operand:DI 0 "register_operand" "r"))
+ (match_operand 1 "" "i"))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))]
+ "TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, operands[0]);
}"
[(set_attr "type" "dyncall")
- (set (attr "length")
- (cond [
-;; First FAST_INDIRECT_CALLS
- (ne (symbol_ref "TARGET_FAST_INDIRECT_CALLS")
- (const_int 0))
- (const_int 8)
-
-;; Target (or stub) within reach
- (and (lt (plus (symbol_ref "total_code_bytes") (pc))
- (const_int 240000))
- (eq (symbol_ref "TARGET_PORTABLE_RUNTIME")
- (const_int 0)))
- (const_int 8)
-
-;; Out of reach PIC
- (ne (symbol_ref "flag_pic")
- (const_int 0))
- (const_int 24)
-
-;; Out of reach PORTABLE_RUNTIME
- (ne (symbol_ref "TARGET_PORTABLE_RUNTIME")
- (const_int 0))
- (const_int 20)]
-
-;; Out of reach, can use ble
- (const_int 12)))])
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
(define_expand "call_value"
[(parallel [(set (match_operand 0 "" "")
@@ -6068,67 +6341,111 @@
""
"
{
- rtx op;
- rtx call_insn;
+ rtx op, call_insn;
+ rtx dst = operands[0];
+ rtx nb = operands[2];
if (TARGET_PORTABLE_RUNTIME)
- op = force_reg (word_mode, XEXP (operands[1], 0));
+ op = force_reg (SImode, XEXP (operands[1], 0));
else
op = XEXP (operands[1], 0);
if (TARGET_64BIT)
- emit_move_insn (arg_pointer_rtx,
- gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
- GEN_INT (64)));
+ {
+ if (!virtuals_instantiated)
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
+ GEN_INT (64)));
+ else
+ {
+ /* The loop pass can generate new libcalls after the virtual
+ registers are instantiated when fpregs are disabled because
+ the only method that we have for doing DImode multiplication
+ is with a libcall. This could be trouble if we haven't
+ allocated enough space for the outgoing arguments. */
+ if (INTVAL (nb) > current_function_outgoing_args_size)
+ abort ();
+
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (STACK_POINTER_OFFSET + 64)));
+ }
+ }
/* Use two different patterns for calls to explicitly named functions
and calls through function pointers. This is necessary as these two
types of calls use different calling conventions, and CSE might try
to change the named call into an indirect call in some cases (using
- two patterns keeps CSE from performing this optimization). */
- if (GET_CODE (op) == SYMBOL_REF)
- call_insn = emit_call_insn (gen_call_value_internal_symref (operands[0],
- op,
- operands[2]));
- else if (TARGET_64BIT)
+ two patterns keeps CSE from performing this optimization).
+
+ We now use even more call patterns as there was a subtle bug in
+ attempting to restore the pic register after a call using a simple
+ move insn. During reload, a instruction involving a pseudo register
+ with no explicit dependence on the PIC register can be converted
+ to an equivalent load from memory using the PIC register. If we
+ emit a simple move to restore the PIC register in the initial rtl
+ generation, then it can potentially be repositioned during scheduling.
+ and an instruction that eventually uses the PIC register may end up
+ between the call and the PIC register restore.
+
+ This only worked because there is a post call group of instructions
+ that are scheduled with the call. These instructions are included
+ in the same basic block as the call. However, calls can throw in
+ C++ code and a basic block has to terminate at the call if the call
+ can throw. This results in the PIC register restore being scheduled
+ independently from the call. So, we now hide the save and restore
+ of the PIC register in the call pattern until after reload. Then,
+ we split the moves out. A small side benefit is that we now don't
+ need to have a use of the PIC register in the return pattern and
+ the final save/restore operation is not needed.
+
+ I elected to just clobber %r4 in the PIC patterns and use it instead
+ of trying to force hppa_pic_save_rtx () to a callee saved register.
+ This might have required a new register class and constraint. It
+ was also simpler to just handle the restore from a register than a
+ generic pseudo. */
+ if (TARGET_64BIT)
{
- rtx tmpreg = force_reg (word_mode, op);
- call_insn
- = emit_call_insn (gen_call_value_internal_reg_64bit (operands[0],
- tmpreg,
- operands[2]));
+ if (GET_CODE (op) == SYMBOL_REF)
+ call_insn = emit_call_insn (gen_call_val_symref_64bit (dst, op, nb));
+ else
+ {
+ op = force_reg (word_mode, op);
+ call_insn = emit_call_insn (gen_call_val_reg_64bit (dst, op, nb));
+ }
}
else
{
- rtx tmpreg = gen_rtx_REG (word_mode, 22);
- emit_move_insn (tmpreg, force_reg (word_mode, op));
- call_insn = emit_call_insn (gen_call_value_internal_reg (operands[0],
- operands[2]));
- }
-
- if (TARGET_64BIT)
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), arg_pointer_rtx);
-
- if (flag_pic)
- {
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
+ if (GET_CODE (op) == SYMBOL_REF)
+ {
+ if (flag_pic)
+ call_insn = emit_call_insn (gen_call_val_symref_pic (dst, op, nb));
+ else
+ call_insn = emit_call_insn (gen_call_val_symref (dst, op, nb));
+ }
+ else
+ {
+ rtx tmpreg = gen_rtx_REG (word_mode, 22);
- /* After each call we must restore the PIC register, even if it
- doesn't appear to be used. */
- emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
+ emit_move_insn (tmpreg, force_reg (word_mode, op));
+ if (flag_pic)
+ call_insn = emit_call_insn (gen_call_val_reg_pic (dst, nb));
+ else
+ call_insn = emit_call_insn (gen_call_val_reg (dst, nb));
+ }
}
+
DONE;
}")
-(define_insn "call_value_internal_symref"
+(define_insn "call_val_symref"
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand 1 "call_operand_address" ""))
(match_operand 2 "" "i")))
(clobber (reg:SI 1))
(clobber (reg:SI 2))
(use (const_int 0))]
- ;;- Don't use operand 1 for most machines.
- "! TARGET_PORTABLE_RUNTIME"
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
"*
{
output_arg_descriptor (insn);
@@ -6137,104 +6454,380 @@
[(set_attr "type" "call")
(set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
-(define_insn "call_value_internal_reg_64bit"
+(define_insn "call_val_symref_pic"
[(set (match_operand 0 "" "")
- (call (mem:SI (match_operand:DI 1 "register_operand" "r"))
- (match_operand 2 "" "i")))
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "i")))
+ (clobber (reg:SI 1))
(clobber (reg:SI 2))
- (use (const_int 1))]
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[1], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_call (insn, 0)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:SI 4) (reg:SI 19))
+ (parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))])
+ (set (reg:SI 19) (reg:SI 4))]
+ "")
+
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT && reload_completed"
+ [(parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))])]
+ "")
+
+(define_insn "*call_val_symref_pic_post_reload"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "i")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 0))]
+ "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[1], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
+
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_val_symref_64bit"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "i")))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))]
"TARGET_64BIT"
"*
{
- /* ??? Needs more work. Length computation, split into multiple insns,
- expose delay slot. */
- return \"ldd 16(%1),%%r2\;bve,l (%%r2),%%r2\;ldd 24(%1),%%r27\";
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[1], 0);
}"
- [(set_attr "type" "dyncall")
- (set (attr "length") (const_int 12))])
+ [(set_attr "type" "call")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_call (insn, 0)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:DI 4) (reg:DI 27))
+ (parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])
+ (set (reg:DI 27) (reg:DI 4))]
+ "")
-(define_insn "call_value_internal_reg"
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "TARGET_64BIT && reload_completed"
+ [(parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))])]
+ "")
+
+(define_insn "*call_val_symref_64bit_post_reload"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand 1 "call_operand_address" ""))
+ (match_operand 2 "" "i")))
+ (clobber (reg:DI 1))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 0))]
+ "TARGET_64BIT"
+ "*
+{
+ output_arg_descriptor (insn);
+ return output_call (insn, operands[1], 0);
+}"
+ [(set_attr "type" "call")
+ (set (attr "length") (symbol_ref "attr_length_call (insn, 0)"))])
+
+(define_insn "call_val_reg"
[(set (match_operand 0 "" "")
(call (mem:SI (reg:SI 22))
(match_operand 1 "" "i")))
(clobber (reg:SI 1))
(clobber (reg:SI 2))
(use (const_int 1))]
- ""
+ "!TARGET_64BIT"
"*
{
- rtx xoperands[2];
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
- /* First the special case for kernels, level 0 systems, etc. */
- if (TARGET_FAST_INDIRECT_CALLS)
- return \"ble 0(%%sr4,%%r22)\;copy %%r31,%%r2\";
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_val_reg_pic"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (reg:SI 22))
+ (match_operand 1 "" "i")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))]
+ "!TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_indirect_call (insn)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (reg:SI 22))
+ (match_operand 1 "" "")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "!TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:SI 4) (reg:SI 19))
+ (parallel [(set (match_dup 0)
+ (call (mem:SI (reg:SI 22))
+ (match_dup 1)))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))])
+ (set (reg:SI 19) (reg:SI 4))]
+ "")
- /* Now the normal case -- we can reach $$dyncall directly or
- we're sure that we can get there via a long-branch stub.
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (reg:SI 22))
+ (match_operand 1 "" "")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (clobber (reg:SI 4))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "!TARGET_64BIT && reload_completed"
+ [(parallel [(set (match_dup 0)
+ (call (mem:SI (reg:SI 22))
+ (match_dup 1)))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))])]
+ "")
- No need to check target flags as the length uniquely identifies
- the remaining cases. */
- if (get_attr_length (insn) == 8)
- return \".CALL\\tARGW0=GR\;{bl|b,l} $$dyncall,%%r31\;copy %%r31,%%r2\";
+(define_insn "*call_val_reg_pic_post_reload"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (reg:SI 22))
+ (match_operand 1 "" "i")))
+ (clobber (reg:SI 1))
+ (clobber (reg:SI 2))
+ (use (reg:SI 19))
+ (use (const_int 1))]
+ "!TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, gen_rtx_REG (word_mode, 22));
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
- /* Long millicode call, but we are not generating PIC or portable runtime
- code. */
- if (get_attr_length (insn) == 12)
- return \".CALL\\tARGW0=GR\;ldil L%%$$dyncall,%%r2\;ble R%%$$dyncall(%%sr4,%%r2)\;copy %%r31,%%r2\";
+;; This pattern is split if it is necessary to save and restore the
+;; PIC register.
+(define_insn "call_val_reg_64bit"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" "r"))
+ (match_operand 2 "" "i")))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))]
+ "TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, operands[1]);
+}"
+ [(set_attr "type" "dyncall")
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_indirect_call (insn)")
+ (symbol_ref "attr_length_save_restore_dltp (insn)")))])
+
+;; Split out the PIC register save and restore after reload. This is
+;; done only if the function returns. As the split is done after reload,
+;; there are some situations in which we unnecessarily save and restore
+;; %r4. This happens when there is a single call and the PIC register
+;; is "dead" after the call. This isn't easy to fix as the usage of
+;; the PIC register isn't completely determined until the reload pass.
+(define_split
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "TARGET_64BIT
+ && reload_completed
+ && !find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+ [(set (reg:DI 4) (reg:DI 27))
+ (parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])
+ (set (reg:DI 27) (reg:DI 4))]
+ "")
- /* Long millicode call for portable runtime. */
- if (get_attr_length (insn) == 20)
- return \"ldil L%%$$dyncall,%%r31\;ldo R%%$$dyncall(%%r31),%%r31\;blr %%r0,%%r2\;bv,n %%r0(%%r31)\;nop\";
+;; Remove the clobber of register 4 when optimizing. This has to be
+;; done with a peephole optimization rather than a split because the
+;; split sequence for a call must be longer than one instruction.
+(define_peephole2
+ [(parallel [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" ""))
+ (match_operand 2 "" "")))
+ (clobber (reg:DI 2))
+ (clobber (reg:DI 4))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "TARGET_64BIT && reload_completed"
+ [(parallel [(set (match_dup 0)
+ (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))])]
+ "")
- /* If we're generating PIC code. */
- xoperands[0] = operands[1];
- if (TARGET_SOM || ! TARGET_GAS)
- xoperands[1] = gen_label_rtx ();
- output_asm_insn (\"{bl|b,l} .+8,%%r1\", xoperands);
- if (TARGET_SOM || ! TARGET_GAS)
- {
- output_asm_insn (\"addil L%%$$dyncall-%1,%%r1\", xoperands);
- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
- CODE_LABEL_NUMBER (xoperands[1]));
- output_asm_insn (\"ldo R%%$$dyncall-%1(%%r1),%%r1\", xoperands);
- }
- else
- {
- output_asm_insn (\"addil L%%$$dyncall-$PIC_pcrel$0+4,%%r1\", xoperands);
- output_asm_insn (\"ldo R%%$$dyncall-$PIC_pcrel$0+8(%%r1),%%r1\",
- xoperands);
- }
- output_asm_insn (\"blr %%r0,%%r2\", xoperands);
- output_asm_insn (\"bv,n %%r0(%%r1)\\n\\tnop\", xoperands);
- return \"\";
+(define_insn "*call_val_reg_64bit_post_reload"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" "r"))
+ (match_operand 2 "" "i")))
+ (clobber (reg:DI 2))
+ (use (reg:DI 27))
+ (use (reg:DI 29))
+ (use (const_int 1))]
+ "TARGET_64BIT"
+ "*
+{
+ return output_indirect_call (insn, operands[1]);
}"
[(set_attr "type" "dyncall")
- (set (attr "length")
- (cond [
-;; First FAST_INDIRECT_CALLS
- (ne (symbol_ref "TARGET_FAST_INDIRECT_CALLS")
- (const_int 0))
- (const_int 8)
-
-;; Target (or stub) within reach
- (and (lt (plus (symbol_ref "total_code_bytes") (pc))
- (const_int 240000))
- (eq (symbol_ref "TARGET_PORTABLE_RUNTIME")
- (const_int 0)))
- (const_int 8)
-
-;; Out of reach PIC
- (ne (symbol_ref "flag_pic")
- (const_int 0))
- (const_int 24)
-
-;; Out of reach PORTABLE_RUNTIME
- (ne (symbol_ref "TARGET_PORTABLE_RUNTIME")
- (const_int 0))
- (const_int 20)]
-
-;; Out of reach, can use ble
- (const_int 12)))])
+ (set (attr "length") (symbol_ref "attr_length_indirect_call (insn)"))])
;; Call subroutine returning any type.
@@ -6271,15 +6864,32 @@
"!TARGET_PORTABLE_RUNTIME"
"
{
- rtx op;
- rtx call_insn;
+ rtx op, call_insn;
+ rtx nb = operands[1];
op = XEXP (operands[0], 0);
if (TARGET_64BIT)
- emit_move_insn (arg_pointer_rtx,
- gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
- GEN_INT (64)));
+ {
+ if (!virtuals_instantiated)
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
+ GEN_INT (64)));
+ else
+ {
+ /* The loop pass can generate new libcalls after the virtual
+ registers are instantiated when fpregs are disabled because
+ the only method that we have for doing DImode multiplication
+ is with a libcall. This could be trouble if we haven't
+ allocated enough space for the outgoing arguments. */
+ if (INTVAL (nb) > current_function_outgoing_args_size)
+ abort ();
+
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (STACK_POINTER_OFFSET + 64)));
+ }
+ }
/* Indirect sibling calls are not allowed. */
if (TARGET_64BIT)
@@ -6292,14 +6902,10 @@
if (TARGET_64BIT)
use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), arg_pointer_rtx);
+ /* We don't have to restore the PIC register. */
if (flag_pic)
- {
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
+ use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
- /* After each call we must restore the PIC register, even if it
- doesn't appear to be used. */
- emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
- }
DONE;
}")
@@ -6321,9 +6927,8 @@
(define_insn "sibcall_internal_symref_64bit"
[(call (mem:SI (match_operand 0 "call_operand_address" ""))
(match_operand 1 "" "i"))
- (clobber (reg:SI 1))
- (clobber (reg:SI 27))
- (use (reg:SI 2))
+ (clobber (reg:DI 1))
+ (use (reg:DI 2))
(use (const_int 0))]
"TARGET_64BIT"
"*
@@ -6341,15 +6946,32 @@
"!TARGET_PORTABLE_RUNTIME"
"
{
- rtx op;
- rtx call_insn;
+ rtx op, call_insn;
+ rtx nb = operands[1];
op = XEXP (operands[1], 0);
if (TARGET_64BIT)
- emit_move_insn (arg_pointer_rtx,
- gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
- GEN_INT (64)));
+ {
+ if (!virtuals_instantiated)
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, virtual_outgoing_args_rtx,
+ GEN_INT (64)));
+ else
+ {
+ /* The loop pass can generate new libcalls after the virtual
+ registers are instantiated when fpregs are disabled because
+ the only method that we have for doing DImode multiplication
+ is with a libcall. This could be trouble if we haven't
+ allocated enough space for the outgoing arguments. */
+ if (INTVAL (nb) > current_function_outgoing_args_size)
+ abort ();
+
+ emit_move_insn (arg_pointer_rtx,
+ gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (STACK_POINTER_OFFSET + 64)));
+ }
+ }
/* Indirect sibling calls are not allowed. */
if (TARGET_64BIT)
@@ -6364,14 +6986,10 @@
if (TARGET_64BIT)
use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), arg_pointer_rtx);
+ /* We don't have to restore the PIC register. */
if (flag_pic)
- {
- use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
+ use_reg (&CALL_INSN_FUNCTION_USAGE (call_insn), pic_offset_table_rtx);
- /* After each call we must restore the PIC register, even if it
- doesn't appear to be used. */
- emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
- }
DONE;
}")
@@ -6395,9 +7013,8 @@
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand 1 "call_operand_address" ""))
(match_operand 2 "" "i")))
- (clobber (reg:SI 1))
- (clobber (reg:SI 27))
- (use (reg:SI 2))
+ (clobber (reg:DI 1))
+ (use (reg:DI 2))
(use (const_int 0))]
"TARGET_64BIT"
"*
@@ -6447,7 +7064,8 @@
;;; EH does longjmp's from and within the data section. Thus,
;;; an interspace branch is required for the longjmp implementation.
-;;; Registers r1 and r2 are used as scratch registers for the jump.
+;;; Registers r1 and r2 are used as scratch registers for the jump
+;;; when necessary.
(define_expand "interspace_jump"
[(parallel
[(set (pc) (match_operand 0 "pmode_register_operand" "a"))
@@ -6461,6 +7079,22 @@
(define_insn ""
[(set (pc) (match_operand 0 "pmode_register_operand" "a"))
(clobber (reg:SI 2))]
+ "TARGET_PA_20 && !TARGET_64BIT"
+ "bve%* (%0)"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn ""
+ [(set (pc) (match_operand 0 "pmode_register_operand" "a"))
+ (clobber (reg:SI 2))]
+ "TARGET_NO_SPACE_REGS && !TARGET_64BIT"
+ "be%* 0(%%sr4,%0)"
+ [(set_attr "type" "branch")
+ (set_attr "length" "4")])
+
+(define_insn ""
+ [(set (pc) (match_operand 0 "pmode_register_operand" "a"))
+ (clobber (reg:SI 2))]
"!TARGET_64BIT"
"ldsid (%%sr0,%0),%%r2\; mtsp %%r2,%%sr0\; be%* 0(%%sr0,%0)"
[(set_attr "type" "branch")
@@ -6470,9 +7104,9 @@
[(set (pc) (match_operand 0 "pmode_register_operand" "a"))
(clobber (reg:DI 2))]
"TARGET_64BIT"
- "ldsid (%%sr0,%0),%%r2\; mtsp %%r2,%%sr0\; be%* 0(%%sr0,%0)"
+ "bve%* (%0)"
[(set_attr "type" "branch")
- (set_attr "length" "12")])
+ (set_attr "length" "4")])
(define_expand "builtin_longjmp"
[(unspec_volatile [(match_operand 0 "register_operand" "r")] 3)]
@@ -6523,6 +7157,10 @@
""
"
{
+ /* PA extraction insns don't support zero length bitfields. */
+ if (INTVAL (operands[2]) == 0)
+ FAIL;
+
if (TARGET_64BIT)
emit_insn (gen_extzv_64 (operands[0], operands[1],
operands[2], operands[3]));
@@ -6585,6 +7223,10 @@
""
"
{
+ /* PA extraction insns don't support zero length bitfields. */
+ if (INTVAL (operands[2]) == 0)
+ FAIL;
+
if (TARGET_64BIT)
emit_insn (gen_extv_64 (operands[0], operands[1],
operands[2], operands[3]));
@@ -7133,29 +7775,58 @@
return \"\";
}")
-;; Flush the I and D cache line found at the address in operand 0.
+;; Flush the I and D cache lines from the start address (operand0)
+;; to the end address (operand1). No lines are flushed if the end
+;; address is less than the start address (unsigned).
+;;
+;; Because the range of memory flushed is variable and the size of
+;; a MEM can only be a CONST_INT, the patterns specify that they
+;; perform an unspecified volatile operation on all memory.
+;;
+;; The address range for an icache flush must lie within a single
+;; space on targets with non-equivalent space registers.
+;;
;; This is used by the trampoline code for nested functions.
-;; So long as the trampoline itself is less than 32 bytes this
-;; is sufficient.
-
+;;
+;; Operand 0 contains the start address.
+;; Operand 1 contains the end address.
+;; Operand 2 contains the line length to use.
+;; Operands 3 and 4 (icacheflush) are clobbered scratch registers.
(define_insn "dcacheflush"
- [(unspec_volatile [(const_int 1)] 0)
- (use (mem:SI (match_operand 0 "pmode_register_operand" "r")))
- (use (mem:SI (match_operand 1 "pmode_register_operand" "r")))]
+ [(const_int 1)
+ (unspec_volatile [(mem:BLK (scratch))] 0)
+ (use (match_operand 0 "pmode_register_operand" "r"))
+ (use (match_operand 1 "pmode_register_operand" "r"))
+ (use (match_operand 2 "pmode_register_operand" "r"))
+ (clobber (match_scratch 3 "=&0"))]
""
- "fdc 0(%0)\;fdc 0(%1)\;sync"
+ "*
+{
+ if (TARGET_64BIT)
+ return \"cmpb,*<<=,n %3,%1,.\;fdc,m %2(%3)\;sync\";
+ else
+ return \"cmpb,<<=,n %3,%1,.\;fdc,m %2(%3)\;sync\";
+}"
[(set_attr "type" "multi")
(set_attr "length" "12")])
(define_insn "icacheflush"
- [(unspec_volatile [(const_int 2)] 0)
- (use (mem:SI (match_operand 0 "pmode_register_operand" "r")))
- (use (mem:SI (match_operand 1 "pmode_register_operand" "r")))
+ [(const_int 2)
+ (unspec_volatile [(mem:BLK (scratch))] 0)
+ (use (match_operand 0 "pmode_register_operand" "r"))
+ (use (match_operand 1 "pmode_register_operand" "r"))
(use (match_operand 2 "pmode_register_operand" "r"))
(clobber (match_operand 3 "pmode_register_operand" "=&r"))
- (clobber (match_operand 4 "pmode_register_operand" "=&r"))]
+ (clobber (match_operand 4 "pmode_register_operand" "=&r"))
+ (clobber (match_scratch 5 "=&0"))]
""
- "mfsp %%sr0,%4\;ldsid (%2),%3\;mtsp %3,%%sr0\;fic 0(%%sr0,%0)\;fic 0(%%sr0,%1)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop"
+ "*
+{
+ if (TARGET_64BIT)
+ return \"mfsp %%sr0,%4\;ldsid (%5),%3\;mtsp %3,%%sr0\;cmpb,*<<=,n %5,%1,.\;fic,m %2(%%sr0,%5)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
+ else
+ return \"mfsp %%sr0,%4\;ldsid (%5),%3\;mtsp %3,%%sr0\;cmpb,<<=,n %5,%1,.\;fic,m %2(%%sr0,%5)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
+}"
[(set_attr "type" "multi")
(set_attr "length" "52")])
@@ -7340,7 +8011,9 @@
\"$$sh_func_adrs\"));
}"
[(set_attr "type" "multi")
- (set (attr "length") (symbol_ref "attr_length_millicode_call (insn, 20)"))])
+ (set (attr "length")
+ (plus (symbol_ref "attr_length_millicode_call (insn)")
+ (const_int 20)))])
;; On the PA, the PIC register is call clobbered, so it must
;; be saved & restored around calls by the caller. If the call
@@ -7361,6 +8034,7 @@
/* Restore the PIC register using hppa_pic_save_rtx (). The
PIC register is not saved in the frame in 64-bit ABI. */
emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
+ emit_insn (gen_blockage ());
DONE;
}")
@@ -7375,5 +8049,41 @@
a stack slot. The only registers that are valid after a
builtin_longjmp are the stack and frame pointers. */
emit_move_insn (pic_offset_table_rtx, hppa_pic_save_rtx ());
+ emit_insn (gen_blockage ());
+ DONE;
+}")
+
+;; Allocate new stack space and update the saved stack pointer in the
+;; frame marker. The HP C compilers also copy additional words in the
+;; frame marker. The 64-bit compiler copies words at -48, -32 and -24.
+;; The 32-bit compiler copies the word at -16 (Static Link). We
+;; currently don't copy these values.
+;;
+;; Since the copy of the frame marker can't be done atomically, I
+;; suspect that using it for unwind purposes may be somewhat unreliable.
+;; The HP compilers appear to raise the stack and copy the frame
+;; marker in a strict instruction sequence. This suggests that the
+;; unwind library may check for an alloca sequence when ALLOCA_FRAME
+;; is set in the callinfo data. We currently don't set ALLOCA_FRAME
+;; as GAS doesn't support it, or try to keep the instructions emitted
+;; here in strict sequence.
+(define_expand "allocate_stack"
+ [(match_operand 0 "" "")
+ (match_operand 1 "" "")]
+ ""
+ "
+{
+ /* Since the stack grows upward, we need to store virtual_stack_dynamic_rtx
+ in operand 0 before adjusting the stack. */
+ emit_move_insn (operands[0], virtual_stack_dynamic_rtx);
+ anti_adjust_stack (operands[1]);
+ if (TARGET_HPUX_UNWIND_LIBRARY)
+ {
+ rtx dst = gen_rtx_MEM (word_mode,
+ gen_rtx_PLUS (word_mode, stack_pointer_rtx,
+ GEN_INT (TARGET_64BIT ? -8 : -4)));
+
+ emit_move_insn (dst, frame_pointer_rtx);
+ }
DONE;
}")
diff --git a/gcc/config/pa/pa32-linux.h b/gcc/config/pa/pa32-linux.h
index e8bc78322ee..9a668acb0d9 100644
--- a/gcc/config/pa/pa32-linux.h
+++ b/gcc/config/pa/pa32-linux.h
@@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */
pointer into the frame. This target does not need multiple
subspace stubs, so we allow sibcalls to all functions. */
#undef FUNCTION_OK_FOR_SIBCALL
-#define FUNCTION_OK_FOR_SIBCALL(DECL) 1
+#define FUNCTION_OK_FOR_SIBCALL(DECL) (!TARGET_PORTABLE_RUNTIME)
/* The libcall __canonicalize_funcptr_for_compare is referenced in
crtend.o and the reference isn't resolved in objects that don't
diff --git a/gcc/config/pa/pa32-regs.h b/gcc/config/pa/pa32-regs.h
index f5c6aaa615c..ac23a69173a 100644
--- a/gcc/config/pa/pa32-regs.h
+++ b/gcc/config/pa/pa32-regs.h
@@ -259,7 +259,6 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS,
: (REGNO) < 32 ? GENERAL_REGS \
: (REGNO) < 56 ? FP_REGS \
: (REGNO) < 88 ? FPUPPER_REGS \
- : (REGNO) < 88 ? FPUPPER_REGS \
: SHIFT_REGS)
/* Get reg_class from a letter such as appears in the machine description. */
@@ -267,7 +266,6 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS,
#define REG_CLASS_FROM_LETTER(C) \
((C) == 'f' ? FP_REGS : \
(C) == 'y' ? FPUPPER_REGS : \
- (C) == 'y' ? FPUPPER_REGS : \
(C) == 'x' ? FP_REGS : \
(C) == 'q' ? SHIFT_REGS : \
(C) == 'a' ? R1_REGS : \
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h
index aa7dac75382..91830af19b6 100644
--- a/gcc/config/pa/pa64-hpux.h
+++ b/gcc/config/pa/pa64-hpux.h
@@ -43,14 +43,35 @@ Boston, MA 02111-1307, USA. */
"%{!mgnu-ld:+Accept TypeMismatch} -E %{mlinker-opt:-O} %{!shared:-u main} %{static:-a archive} %{shared:%{mgnu-ld:-shared}%{!mgnu-ld:-b}}"
#endif
-/* Like the default, except no -lg. */
+/* Profiling support is only provided in libc.a. However, libprof and
+ libgprof are only available in shared form on HP-UX 11.00. We use
+ the shared form if we are using the GNU linker or an archive form
+ isn't available. We also usually need to link with libdld and it's
+ only available in shared form. */
#undef LIB_SPEC
+#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GNU_LD)
+#define LIB_SPEC \
+ "%{!shared:\
+ %{!p:%{!pg: -lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ %{p:%{!pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
+ -lprof %{static:-a archive} -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ %{pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
+ -lgprof %{static:-a archive} -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ /usr/lib/pa20_64/milli.a"
+#else
#define LIB_SPEC \
"%{!shared:\
- %{!p:\
- %{!pg: %{!threads:-lc} %{threads:-lcma -lc_r}}\
- %{pg: -L/usr/lib/pa20_64/libp/ -lgprof -lc}}\
- %{p: -L/usr/lib/pa20_64/libp/ -lprof -lc}} /usr/lib/pa20_64/milli.a"
+ %{!p:%{!pg: -lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ %{p:%{!pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
+ -lprof %{static:-a archive} -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ %{pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
+ -lgprof %{static:-a archive} -lc\
+ %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\
+ /usr/lib/pa20_64/milli.a"
+#endif
/* Under hpux11, the normal location of the `ld' and `as' programs is the
/usr/ccs/bin directory. */
@@ -112,6 +133,13 @@ do { \
#define DATA_SECTION_ASM_OP "\t.data"
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
+#define JCR_SECTION_NAME ".jcr"
+
+#define HP_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init"
+#define GNU_INIT_ARRAY_SECTION_ASM_OP "\t.section\t.init_array"
+#define HP_FINI_ARRAY_SECTION_ASM_OP "\t.section\t.fini"
+#define GNU_FINI_ARRAY_SECTION_ASM_OP "\t.section\t.fini_array"
+
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do { \
@@ -224,58 +252,182 @@ do { \
} while (0)
#undef TEXT_SECTION_ASM_OP
-#define TEXT_SECTION_ASM_OP "\t.SUBSPA $CODE$\n"
+#define TEXT_SECTION_ASM_OP "\t.SUBSPA $CODE$\n"
#undef READONLY_DATA_SECTION_ASM_OP
-#define READONLY_DATA_SECTION_ASM_OP "\t.SUBSPA $LIT$\n"
+#define READONLY_DATA_SECTION_ASM_OP "\t.SUBSPA $LIT$\n"
#undef DATA_SECTION_ASM_OP
-#define DATA_SECTION_ASM_OP "\t.SUBSPA $DATA$\n"
+#define DATA_SECTION_ASM_OP "\t.SUBSPA $DATA$\n"
#undef BSS_SECTION_ASM_OP
-#define BSS_SECTION_ASM_OP "\t.SUBSPA $BSS$\n"
+#define BSS_SECTION_ASM_OP "\t.SUBSPA $BSS$\n"
+
+/* We provide explicit defines for CTORS_SECTION_ASM_OP and
+ DTORS_SECTION_ASM_OP since we don't yet have support for
+ named sections with the HP assembler. */
+#undef CTORS_SECTION_ASM_OP
+#define CTORS_SECTION_ASM_OP "\t.SUBSPA \\.ctors,QUAD=1,ALIGN=8,ACCESS=31"
+#undef DTORS_SECTION_ASM_OP
+#define DTORS_SECTION_ASM_OP "\t.SUBSPA \\.dtors,QUAD=1,ALIGN=8,ACCESS=31"
+
+#define HP_INIT_ARRAY_SECTION_ASM_OP \
+ "\t.SUBSPA \\.init,QUAD=1,ALIGN=8,ACCESS=31"
+#define GNU_INIT_ARRAY_SECTION_ASM_OP \
+ "\t.SUBSPA \\.init_array,QUAD=1,ALIGN=8,ACCESS=31"
+#define HP_FINI_ARRAY_SECTION_ASM_OP \
+ "\t.SUBSPA \\.fini,QUAD=1,ALIGN=8,ACCESS=31"
+#define GNU_FINI_ARRAY_SECTION_ASM_OP \
+ "\t.SUBSPA \\.fini_array,QUAD=1,ALIGN=8,ACCESS=31"
#endif /* USING_ELFOS_H */
-/* For the time being, we aren't using init sections. `P' relocations
- are currently used for function references. However, P relocations are
- treated as data references and data references are bound by dld.sl
- immediately at program startup. This causes an abort due to undefined
- weak symbols in crtbegin.o (e.g., __register_frame_info). Possibly
- Q relocations might avoid this problem but the GNU assembler doesn't
- support them. */
+/* The following defines, used to run constructors and destructors with
+ the SOM linker under HP-UX 11, are not needed. */
+#undef HAS_INIT_SECTION
+#undef LD_INIT_SWITCH
+#undef LD_FINI_SWITCH
+
+/* The following STARTFILE_SPEC and ENDFILE_SPEC defines provide the
+ magic needed to run initializers and finalizers. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+ "%{!shared: %{!symbolic: crt0.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}"
+
+/* Since HP uses the .init and .fini sections for array initializers
+ and finalizers, we need different defines for INIT_SECTION_ASM_OP
+ and FINI_SECTION_ASM_OP. With the implementation adopted below,
+ the sections are not actually used. However, we still must provide
+ defines to select the proper code path. */
#undef INIT_SECTION_ASM_OP
+#define INIT_SECTION_ASM_OP
#undef FINI_SECTION_ASM_OP
+#define FINI_SECTION_ASM_OP
+
+/* We are using array initializers and don't want calls in the INIT
+ and FINI sections. */
+#undef CRT_CALL_STATIC_FUNCTION
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC)
+
+/* The init_priority attribute is not supported with HP ld. This could be
+ supported if collect2 was used with LD_INIT_SWITCH. Unfortunately, this
+ approach doesn't work with GNU ld since HP-UX doesn't support DT_INIT,
+ and therefore the -init and -fini GNU ld switches. */
+#undef SUPPORTS_INIT_PRIORITY
+#define SUPPORTS_INIT_PRIORITY (TARGET_GNU_LD ? 1 : 0)
+
+/* We use DTOR_LIST_BEGIN to carry a bunch of hacks to allow us to use
+ the init and fini array sections with both the HP and GNU linkers.
+ The linkers setup the required dynamic entries in the dynamic segment
+ and the dynamic linker does the calls. This approach avoids using
+ collect2.
+
+ The first hack is to implement __do_global_ctors_aux in crtbegin as
+ it needs to be the first entry in the init array so that it is called
+ last. HP got the order of the init array backwards. The DT_INIT_ARRAY
+ is supposed to be executed in the same order as the addresses appear in
+ the array. DT_FINI_ARRAY is supposed to be executed in the opposite
+ order.
+
+ The second hack is stubs for __cxa_finalize and _Jv_RegisterClasses.
+ The HP implementation of undefined weak symbols is broken. The linker
+ and dynamic loader both search for undefined weak symbols contrary the
+ generic System V ABI. An undefined weak symbol should resolve to a
+ value of 0 rather than causing an error. The prototypes for
+ __cxa_finalize and _Jv_RegisterClasses in crtstuff.c are weak when
+ weak is supported (GNU as), so in theory a strong define should override
+ the stub functions provided here.
+
+ The final hack is a set of plabels to implement the effect of
+ CRT_CALL_STATIC_FUNCTION. HP-UX 11 only supports DI_INIT_ARRAY and
+ DT_FINI_ARRAY and they put the arrays in .init and .fini, rather than
+ in .init_array and .fini_array. The standard defines for .init and
+ .fini have the execute flag set. So, the assembler has to be hacked
+ to munge the standard flags for these sections to make them agree
+ with what the HP linker expects. With the GNU linker, we need to
+ used the .init_array and .fini_array sections. So, we set up for
+ both just in case. Once we have built the table, the linker does
+ the rest of the work.
+
+ The order is significant. Placing __do_global_ctors_aux first in
+ the list, results in it being called last. User specified initializers,
+ either using the linker +init command or a plabel, run before the
+ initializers specified here. */
+
+/* We need a __cxa_finalize stub if CRTSTUFFS_O is defined. */
+#ifdef CRTSTUFFS_O
+#define PA_CXA_FINALIZE_STUB \
+extern void __cxa_finalize (void *) TARGET_ATTRIBUTE_WEAK; \
+void \
+__cxa_finalize (void *p __attribute__((unused))) {}
+#else
+#define PA_CXA_FINALIZE_STUB
+#endif
-#define EH_FRAME_IN_DATA_SECTION 1
+/* We need a _Jv_RegisterClasses stub if JCR_SECTION_NAME is defined. */
+#ifdef JCR_SECTION_NAME
+#define PA_JV_REGISTERCLASSES_STUB \
+void \
+_Jv_RegisterClasses (void *p __attribute__((unused))) {}
+#else
+#define PA_JV_REGISTERCLASSES_STUB
+#endif
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC ""
+/* We need to add frame_dummy to the initializer list if EH_FRAME_SECTION_NAME
+ or JCR_SECTION_NAME is defined. */
+#if defined(EH_FRAME_SECTION_NAME) || defined(JCR_SECTION_NAME)
+#define PA_INIT_FRAME_DUMMY_ASM_OP ".dword P%frame_dummy"
+#else
+#define PA_INIT_FRAME_DUMMY_ASM_OP ""
+#endif
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC "%{!shared: %{!symbolic: crt0.o%s}}"
-
-/* Since we are not yet using .init and .fini sections, we need to
- explicitly arrange to run the global constructors and destructors.
- We could use ldd for this but it depends on LD_LIBRARY_PATH being
- correctly set. So, we use the ld init and fini switches. However,
- we need to support different switches for the GNU and HP linkers.
- We can't check TARGET_GNU_LD in collect2, so we need a different
- test. The +Accept switch is always the first switch when we are
- using the HP linker (see define for LINK_SPEC). Checking for it
- is a somewhat fragile as it depends on internal details of the
- collect2 program but it is better than testing ld_file_name.
-
- FIXME: The GNU linker is broken. The -init/-fini switches don't
- work and ldd can't determine the dynamic dependences of executables
- linked with GNU ld. The init and fini routines are not executed
- although DT_INIT and DT_FINI appear ok. As a result, defining
- LD_INIT_SWITCH and LD_FINI_SWITCH causes more harm than good when
- using GNU ld. However, the definitions appear to work fine with
- the HP linker. */
-#if 0
-#define LD_INIT_SWITCH (strcmp ("+Accept", ld2_argv[1]) ? "-init" : "+init")
-#define LD_FINI_SWITCH (strcmp ("+Accept", ld2_argv[1]) ? "-fini" : "+fini")
+#define PA_INIT_FINI_HACK \
+static void __attribute__((used)) \
+__do_global_ctors_aux (void) \
+{ \
+ func_ptr *p = __CTOR_LIST__; \
+ while (*(p + 1)) \
+ p++; \
+ for (; *p != (func_ptr) -1; p--) \
+ (*p) (); \
+} \
+ \
+PA_CXA_FINALIZE_STUB \
+PA_JV_REGISTERCLASSES_STUB \
+ \
+asm (HP_INIT_ARRAY_SECTION_ASM_OP); \
+asm (".dword P%__do_global_ctors_aux"); \
+asm (PA_INIT_FRAME_DUMMY_ASM_OP); \
+asm (GNU_INIT_ARRAY_SECTION_ASM_OP); \
+asm (".dword P%__do_global_ctors_aux"); \
+asm (PA_INIT_FRAME_DUMMY_ASM_OP); \
+asm (HP_FINI_ARRAY_SECTION_ASM_OP); \
+asm (".dword P%__do_global_dtors_aux"); \
+asm (GNU_FINI_ARRAY_SECTION_ASM_OP); \
+asm (".dword P%__do_global_dtors_aux")
+
+/* The following two variants of DTOR_LIST_BEGIN are identical to those
+ in crtstuff.c except for the addition of the above init-fini hack. */
+#ifdef DTORS_SECTION_ASM_OP
+#define DTOR_LIST_BEGIN \
+asm (DTORS_SECTION_ASM_OP); \
+STATIC func_ptr __DTOR_LIST__[1] \
+ __attribute__ ((aligned(sizeof(func_ptr)))) \
+ = { (func_ptr) (-1) }; \
+PA_INIT_FINI_HACK
+#else
+#define DTOR_LIST_BEGIN \
+STATIC func_ptr __DTOR_LIST__[1] \
+ __attribute__ ((section(".dtors"), aligned(sizeof(func_ptr)))) \
+ = { (func_ptr) (-1) }; \
+PA_INIT_FINI_HACK
#endif
/* If using HP ld do not call pxdb. Use size as a program that does nothing
and returns 0. /bin/true cannot be used because it is a script without
an interpreter. */
#define INIT_ENVIRONMENT "LD_PXDB=/usr/ccs/bin/size"
+
+/* The HPUX dynamic linker objects to weak symbols with no
+ definitions, so do not use them in gthr-posix.h. */
+#define GTHREAD_USE_WEAK 0
diff --git a/gcc/config/pa/pa64-regs.h b/gcc/config/pa/pa64-regs.h
index 2d0ebe3d172..6d7c2787bc2 100644
--- a/gcc/config/pa/pa64-regs.h
+++ b/gcc/config/pa/pa64-regs.h
@@ -169,13 +169,11 @@ Boston, MA 02111-1307, USA. */
Registers 0 - 31 remain unchanged.
- Registers 32 - 60 are mapped to 72, 74, 76 ...
-
- Register 88 is mapped to 32. */
+ Registers 32 - 59 are mapped to 72, 74, 76 ...
+ Register 60 is mapped to 32. */
#define DBX_REGISTER_NUMBER(REGNO) \
- ((REGNO) <= 31 ? (REGNO) : \
- ((REGNO) > 31 && (REGNO) <= 60 ? (REGNO - 32) * 2 + 72 : 32))
+ ((REGNO) <= 31 ? (REGNO) : ((REGNO) < 60 ? (REGNO - 32) * 2 + 72 : 32))
/* We must not use the DBX register numbers for the DWARF 2 CFA column
numbers because that maps to numbers beyond FIRST_PSEUDO_REGISTER.
@@ -240,9 +238,9 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS,
we inhibit changes from SImode unless they are to a mode that is
identical in size. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
((FROM) == SImode && GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
- ? FP_REGS : NO_REGS)
+ ? reg_classes_intersect_p (CLASS, FP_REGS) : 0)
/* Return the class number of the smallest class containing
reg number REGNO. This could be a conditional expression
@@ -292,7 +290,7 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS,
"%fr28", "%fr29", "%fr30", "%fr31", "SAR"}
#define ADDITIONAL_REGISTER_NAMES \
- {{"%cr11",88}}
+ {{"%cr11",60}}
#define FP_SAVED_REG_LAST 49
#define FP_SAVED_REG_FIRST 40
diff --git a/gcc/config/pa/rtems.h b/gcc/config/pa/rtems.h
index b03b5c802c3..c71ac6e8441 100644
--- a/gcc/config/pa/rtems.h
+++ b/gcc/config/pa/rtems.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for PRO.
- Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GNU CC.
@@ -35,3 +35,6 @@ Boston, MA 02111-1307, USA. */
builtin_assert ("system=rtems"); \
} \
while (0)
+
+#undef LIB_SPEC
+#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p: -lc}%{pg: -lc} -N"
diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h
index 98c66fbfe37..7609fdbe176 100644
--- a/gcc/config/pa/som.h
+++ b/gcc/config/pa/som.h
@@ -362,10 +362,6 @@ do { \
/* The .align directive in the HP assembler allows up to a 32 alignment. */
#define MAX_OFILE_ALIGNMENT 32768
-/* SOM does not support the init_priority C++ attribute. */
-#undef SUPPORTS_INIT_PRIORITY
-#define SUPPORTS_INIT_PRIORITY 0
-
/* The SOM linker hardcodes paths into binaries. As a result, dotdots
must be removed from library prefixes to prevent binaries from depending
on the location of the GCC tool directory. The downside is GCC
@@ -375,3 +371,52 @@ do { \
/* Aggregates with a single float or double field should be passed and
returned in the general registers. */
#define MEMBER_TYPE_FORCES_BLK(FIELD, MODE) (MODE==SFmode || MODE==DFmode)
+
+/* If GAS supports weak, we can support weak when we have working linker
+ support for secondary definitions and are generating code for GAS. */
+#ifdef HAVE_GAS_WEAK
+#define SUPPORTS_WEAK (TARGET_SOM_SDEF && TARGET_GAS)
+#else
+#define SUPPORTS_WEAK 0
+#endif
+
+/* We can support one only if we support weak. */
+#define SUPPORTS_ONE_ONLY SUPPORTS_WEAK
+
+/* Use weak (secondary definitions) to make one only declarations. */
+#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
+
+/* This is how we tell the assembler that a symbol is weak. The SOM
+ weak implementation uses the secondary definition (sdef) flag.
+
+ The behavior of sdef symbols is similar to ELF weak symbols in that
+ multiple definitions can occur without incurring a link error.
+ However, they differ in the following ways:
+ 1) Undefined sdef symbols are not allowed.
+ 2) The linker searches for undefined sdef symbols and will load an
+ archive library member to resolve an undefined sdef symbol.
+ 3) The exported symbol from a shared library is a primary symbol
+ rather than a sdef symbol. Thus, more care is needed in the
+ ordering of libraries.
+
+ It appears that the linker discards extra copies of "weak" functions
+ when linking shared libraries, independent of whether or not they
+ are in their own section. In linking final executables, -Wl,-O can
+ be used to remove dead procedures. Thus, support for named sections
+ is not needed and in previous testing caused problems with various
+ HP tools. */
+#define ASM_WEAKEN_LABEL(FILE,NAME) \
+ do { fputs ("\t.weak\t", FILE); \
+ assemble_name (FILE, NAME); \
+ fputc ('\n', FILE); \
+ if (! FUNCTION_NAME_P (NAME)) \
+ { \
+ fputs ("\t.EXPORT ", FILE); \
+ assemble_name (FILE, NAME); \
+ fputs (",DATA\n", FILE); \
+ } \
+ } while (0)
+
+/* We can't handle weak aliases, and therefore can't support pragma weak.
+ Suppress the use of pragma weak in gthr-dce.h and gthr-posix.h. */
+#define GTHREAD_USE_WEAK 0
diff --git a/gcc/config/pa/t-hpux-shlib b/gcc/config/pa/t-hpux-shlib
index 52c3fd90c4f..1c924497c0b 100644
--- a/gcc/config/pa/t-hpux-shlib
+++ b/gcc/config/pa/t-hpux-shlib
@@ -13,7 +13,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = $(INSTALL_DATA) -m 555 $(SHLIB_NAME) \
- $$(slibdir)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)/$(SHLIB_NAME); \
- $(LN_S) $(SHLIB_SONAME) $$(slibdir)/$(SHLIB_NAME)
+ $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME); \
+ $(LN_S) $(SHLIB_SONAME) $$(DESTDIR)$$(slibdir)/$(SHLIB_NAME)
diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h
index f1387c0c898..64fe392fa54 100644
--- a/gcc/config/rs6000/altivec.h
+++ b/gcc/config/rs6000/altivec.h
@@ -1094,7 +1094,7 @@ vec_vcmpgtub (vector unsigned char a1, vector unsigned char a2)
inline vector signed int
vec_cmple (vector float a1, vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a1, (vector float) a2);
+ return (vector signed int) __builtin_altivec_vcmpgefp ((vector float) a2, (vector float) a1);
}
/* vec_cmplt */
@@ -1102,43 +1102,43 @@ vec_cmple (vector float a1, vector float a2)
inline vector signed char
vec_cmplt (vector unsigned char a1, vector unsigned char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a1, (vector signed char) a2);
+ return (vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) a2, (vector signed char) a1);
}
inline vector signed char
vec_cmplt (vector signed char a1, vector signed char a2)
{
- return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a1, (vector signed char) a2);
+ return (vector signed char) __builtin_altivec_vcmpgtsb ((vector signed char) a2, (vector signed char) a1);
}
inline vector signed short
vec_cmplt (vector unsigned short a1, vector unsigned short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a1, (vector signed short) a2);
+ return (vector signed short) __builtin_altivec_vcmpgtuh ((vector signed short) a2, (vector signed short) a1);
}
inline vector signed short
vec_cmplt (vector signed short a1, vector signed short a2)
{
- return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a1, (vector signed short) a2);
+ return (vector signed short) __builtin_altivec_vcmpgtsh ((vector signed short) a2, (vector signed short) a1);
}
inline vector signed int
vec_cmplt (vector unsigned int a1, vector unsigned int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a1, (vector signed int) a2);
+ return (vector signed int) __builtin_altivec_vcmpgtuw ((vector signed int) a2, (vector signed int) a1);
}
inline vector signed int
vec_cmplt (vector signed int a1, vector signed int a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a1, (vector signed int) a2);
+ return (vector signed int) __builtin_altivec_vcmpgtsw ((vector signed int) a2, (vector signed int) a1);
}
inline vector signed int
vec_cmplt (vector float a1, vector float a2)
{
- return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a1, (vector float) a2);
+ return (vector signed int) __builtin_altivec_vcmpgtfp ((vector float) a2, (vector float) a1);
}
/* vec_ctf */
@@ -1198,7 +1198,7 @@ vec_dss (const char a1)
/* vec_dssall */
inline void
-vec_dssall ()
+vec_dssall (void)
{
__builtin_altivec_dssall ();
}
@@ -2419,7 +2419,7 @@ vec_vmrglb (vector unsigned char a1, vector unsigned char a2)
/* vec_mfvscr */
inline vector unsigned short
-vec_mfvscr ()
+vec_mfvscr (void)
{
return (vector unsigned short) __builtin_altivec_mfvscr ();
}
@@ -5526,7 +5526,7 @@ vec_all_nlt (vector float a1, vector float a2)
inline int
vec_all_numeric (vector float a1)
{
- return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1);
+ return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a1);
}
/* vec_any_eq */
@@ -6521,9 +6521,9 @@ __ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
__altivec_link_error_invalid_argument ())
-#define vec_cmple(a1, a2) __builtin_altivec_vcmpgefp ((a1), (a2))
+#define vec_cmple(a1, a2) __builtin_altivec_vcmpgefp ((a2), (a1))
-#define vec_cmplt(a1, a2) \
+#define vec_cmplt(a2, a1) \
__ch (__bin_args_eq (vector unsigned char, (a1), vector unsigned char, (a2)), \
((vector signed char) __builtin_altivec_vcmpgtub ((vector signed char) (a1), (vector signed char) (a2))), \
__ch (__bin_args_eq (vector signed char, (a1), vector signed char, (a2)), \
@@ -8343,7 +8343,7 @@ __ch (__bin_args_eq (vector float, (a1), vector float, (a2)), \
#define vec_all_nlt(a1, a2) __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1))
-#define vec_all_numeric(a1) __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (a1), (a1))
+#define vec_all_numeric(a1) __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1))
#define vec_any_eq(a1, a2) \
__ch (__bin_args_eq (vector signed char, (a1), vector unsigned char, (a2)), \
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index 3d20ff48e23..25a8a7531e3 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -490,18 +490,27 @@
"vmaddfp %0,%1,%2,%3"
[(set_attr "type" "vecfloat")])
-;; The unspec here is a vec splat of 0. We do multiply as a fused
-;; multiply-add with an add of a 0 vector.
+;; We do multiply as a fused multiply-add with an add of a -0.0 vector.
(define_expand "mulv4sf3"
- [(set (match_dup 3) (unspec:V4SF [(const_int 0)] 142))
- (set (match_operand:V4SF 0 "register_operand" "=v")
- (plus:V4SF (mult:V4SF (match_operand:V4SF 1 "register_operand" "v")
- (match_operand:V4SF 2 "register_operand" "v"))
- (match_dup 3)))]
+ [(use (match_operand:V4SF 0 "register_operand" ""))
+ (use (match_operand:V4SF 1 "register_operand" ""))
+ (use (match_operand:V4SF 2 "register_operand" ""))]
"TARGET_ALTIVEC && TARGET_FUSED_MADD"
"
-{ operands[3] = gen_reg_rtx (V4SFmode); }")
+{
+ rtx neg0;
+
+ /* Generate [-0.0, -0.0, -0.0, -0.0]. */
+ neg0 = gen_reg_rtx (V4SFmode);
+ emit_insn (gen_altivec_vspltisw_v4sf (neg0, GEN_INT (-1)));
+ emit_insn (gen_altivec_vslw_v4sf (neg0, neg0, neg0));
+
+ /* Use the multiply-add. */
+ emit_insn (gen_altivec_vmaddfp (operands[0], operands[1], operands[2],
+ neg0));
+ DONE;
+}")
;; Fused multiply subtract
(define_insn "altivec_vnmsubfp"
@@ -529,7 +538,7 @@
(match_operand:V16QI 2 "register_operand" "v")
(match_operand:V4SI 3 "register_operand" "v")] 66))]
"TARGET_ALTIVEC"
- "vmsumubm %0, %1, %2, %3"
+ "vmsummbm %0, %1, %2, %3"
[(set_attr "type" "veccomplex")])
(define_insn "altivec_vmsumuhm"
@@ -1043,6 +1052,14 @@
"vslw %0,%1,%2"
[(set_attr "type" "vecsimple")])
+(define_insn "altivec_vslw_v4sf"
+ [(set (match_operand:V4SF 0 "register_operand" "=v")
+ (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "v")
+ (match_operand:V4SF 2 "register_operand" "v")] 109))]
+ "TARGET_ALTIVEC"
+ "vslw %0,%1,%2"
+ [(set_attr "type" "vecsimple")])
+
(define_insn "altivec_vsl"
[(set (match_operand:V4SI 0 "register_operand" "=v")
(unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")
@@ -1316,7 +1333,7 @@
"vspltisw %0, %1"
[(set_attr "type" "vecsimple")])
-(define_insn ""
+(define_insn "altivec_vspltisw_v4sf"
[(set (match_operand:V4SF 0 "register_operand" "=v")
(unspec:V4SF [(match_operand:QI 1 "immediate_operand" "i")] 142))]
"TARGET_ALTIVEC"
@@ -1830,8 +1847,8 @@
(define_insn "absv16qi2"
[(set (match_operand:V16QI 0 "register_operand" "=v")
(abs:V16QI (match_operand:V16QI 1 "register_operand" "v")))
- (clobber (match_scratch:V16QI 2 "=v"))
- (clobber (match_scratch:V16QI 3 "=v"))]
+ (clobber (match_scratch:V16QI 2 "=&v"))
+ (clobber (match_scratch:V16QI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsububm %3,%2,%1\;vmaxsb %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1840,8 +1857,8 @@
(define_insn "absv8hi2"
[(set (match_operand:V8HI 0 "register_operand" "=v")
(abs:V8HI (match_operand:V8HI 1 "register_operand" "v")))
- (clobber (match_scratch:V8HI 2 "=v"))
- (clobber (match_scratch:V8HI 3 "=v"))]
+ (clobber (match_scratch:V8HI 2 "=&v"))
+ (clobber (match_scratch:V8HI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsubuhm %3,%2,%1\;vmaxsh %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1850,8 +1867,8 @@
(define_insn "absv4si2"
[(set (match_operand:V4SI 0 "register_operand" "=v")
(abs:V4SI (match_operand:V4SI 1 "register_operand" "v")))
- (clobber (match_scratch:V4SI 2 "=v"))
- (clobber (match_scratch:V4SI 3 "=v"))]
+ (clobber (match_scratch:V4SI 2 "=&v"))
+ (clobber (match_scratch:V4SI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsubuwm %3,%2,%1\;vmaxsw %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1860,8 +1877,8 @@
(define_insn "absv4sf2"
[(set (match_operand:V4SF 0 "register_operand" "=v")
(abs:V4SF (match_operand:V4SF 1 "register_operand" "v")))
- (clobber (match_scratch:V4SF 2 "=v"))
- (clobber (match_scratch:V4SF 3 "=v"))]
+ (clobber (match_scratch:V4SF 2 "=&v"))
+ (clobber (match_scratch:V4SF 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisw %2, -1\;vslw %3,%2,%2\;vandc %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1870,8 +1887,8 @@
(define_insn "altivec_abss_v16qi"
[(set (match_operand:V16QI 0 "register_operand" "=v")
(unspec:V16QI [(match_operand:V16QI 1 "register_operand" "v")] 210))
- (clobber (match_scratch:V16QI 2 "=v"))
- (clobber (match_scratch:V16QI 3 "=v"))]
+ (clobber (match_scratch:V16QI 2 "=&v"))
+ (clobber (match_scratch:V16QI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsubsbs %3,%2,%1\;vmaxsb %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1880,8 +1897,8 @@
(define_insn "altivec_abss_v8hi"
[(set (match_operand:V8HI 0 "register_operand" "=v")
(unspec:V8HI [(match_operand:V8HI 1 "register_operand" "v")] 211))
- (clobber (match_scratch:V8HI 2 "=v"))
- (clobber (match_scratch:V8HI 3 "=v"))]
+ (clobber (match_scratch:V8HI 2 "=&v"))
+ (clobber (match_scratch:V8HI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsubshs %3,%2,%1\;vmaxsh %0,%1,%3"
[(set_attr "type" "altivec")
@@ -1890,8 +1907,8 @@
(define_insn "altivec_abss_v4si"
[(set (match_operand:V4SI 0 "register_operand" "=v")
(unspec:V4SI [(match_operand:V4SI 1 "register_operand" "v")] 212))
- (clobber (match_scratch:V4SI 2 "=v"))
- (clobber (match_scratch:V4SI 3 "=v"))]
+ (clobber (match_scratch:V4SI 2 "=&v"))
+ (clobber (match_scratch:V4SI 3 "=&v"))]
"TARGET_ALTIVEC"
"vspltisb %2,0\;vsubsws %3,%2,%1\;vmaxsw %0,%1,%3"
[(set_attr "type" "altivec")
diff --git a/gcc/config/rs6000/darwin-tramp.asm b/gcc/config/rs6000/darwin-tramp.asm
index 02c7be67e6f..22ce80a1080 100644
--- a/gcc/config/rs6000/darwin-tramp.asm
+++ b/gcc/config/rs6000/darwin-tramp.asm
@@ -64,7 +64,7 @@ ___trampoline_setup:
bcl 20,31,LCF0 /* load up __trampoline_initial into r7 */
LCF0:
mflr r11
- addi r7,r11,ha16(LTRAMP-LCF0)
+ addis r7,r11,ha16(LTRAMP-LCF0)
lwz r7,lo16(LTRAMP-LCF0)(r7)
subi r7,r7,4
li r8,trampoline_size /* verify trampoline big enough */
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 73041a28775..b3468f2b66b 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -58,7 +58,9 @@ Boston, MA 02111-1307, USA. */
/* We want -fPIC by default, unless we're using -static to compile for
the kernel or some such. */
-#define CC1_SPEC "%{!static:-fPIC}"
+#define CC1_SPEC "\
+%{static: %{Zdynamic: %e conflicting code gen style switches are used}}\
+%{!static:-fPIC}"
/* Make both r2 and r3 available for allocation. */
#define FIXED_R2 0
diff --git a/gcc/config/rs6000/freebsd.h b/gcc/config/rs6000/freebsd.h
index e4b6482798e..699d2adbda8 100644
--- a/gcc/config/rs6000/freebsd.h
+++ b/gcc/config/rs6000/freebsd.h
@@ -38,6 +38,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_freebsd)"
+/* XXX: This is wrong for many platforms in sysv4.h.
+ We should work on getting that defination fixed. */
+#undef LINK_SHLIB_SPEC
+#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
+
/************************[ Target stuff ]***********************************/
@@ -45,6 +50,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c,
c-common.c, and config/<arch>/<arch>.h. */
+#undef SIZE_TYPE
+#define SIZE_TYPE "unsigned int"
+
/* rs6000.h gets this wrong for FreeBSD. We use the GCC defaults instead. */
#undef WCHAR_TYPE
diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
index 1711354da76..ba70ec18224 100644
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -1,7 +1,7 @@
/* Definitions of target machine for GNU compiler,
for PowerPC machines running Linux.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation,
- Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
Contributed by Michael Meissner (meissner@cygnus.com).
This file is part of GNU CC.
@@ -48,6 +48,9 @@ Boston, MA 02111-1307, USA. */
#undef LINK_SHLIB_SPEC
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
#undef LIB_DEFAULT_SPEC
#define LIB_DEFAULT_SPEC "%(lib_linux)"
@@ -79,12 +82,30 @@ Boston, MA 02111-1307, USA. */
#undef DRAFT_V4_STRUCT_RET
#define DRAFT_V4_STRUCT_RET 1
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
#ifdef IN_LIBGCC2
#include <signal.h>
-#include <sys/ucontext.h>
+
+/* During the 2.5 kernel series the kernel ucontext was changed, but
+ the new layout is compatible with the old one, so we just define
+ and use the old one here for simplicity and compatibility. */
+
+struct kernel_old_ucontext {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ struct sigcontext_struct uc_mcontext;
+ sigset_t uc_sigmask;
+};
enum { SIGNAL_FRAMESIZE = 64 };
#endif
@@ -96,12 +117,34 @@ enum { SIGNAL_FRAMESIZE = 64 };
long new_cfa_; \
int i_; \
\
- /* li r0, 0x7777; sc (rt_sigreturn) */ \
- /* li r0, 0x6666; sc (sigreturn) */ \
- if (((*(unsigned int *) (pc_+0) == 0x38007777) \
- || (*(unsigned int *) (pc_+0) == 0x38006666)) \
- && (*(unsigned int *) (pc_+4) == 0x44000002)) \
- sc_ = (CONTEXT)->cfa + SIGNAL_FRAMESIZE; \
+ /* li r0, 0x7777; sc (sigreturn old) */ \
+ /* li r0, 0x0077; sc (sigreturn new) */ \
+ /* li r0, 0x6666; sc (rt_sigreturn old) */ \
+ /* li r0, 0x00AC; sc (rt_sigreturn new) */ \
+ if (*(unsigned int *) (pc_+4) != 0x44000002) \
+ break; \
+ if (*(unsigned int *) (pc_+0) == 0x38007777 \
+ || *(unsigned int *) (pc_+0) == 0x38000077) \
+ { \
+ struct sigframe { \
+ char gap[SIGNAL_FRAMESIZE]; \
+ struct sigcontext sigctx; \
+ } *rt_ = (CONTEXT)->cfa; \
+ sc_ = &rt_->sigctx; \
+ } \
+ else if (*(unsigned int *) (pc_+0) == 0x38006666 \
+ || *(unsigned int *) (pc_+0) == 0x380000AC) \
+ { \
+ struct rt_sigframe { \
+ char gap[SIGNAL_FRAMESIZE]; \
+ unsigned long _unused[2]; \
+ struct siginfo *pinfo; \
+ void *puc; \
+ struct siginfo info; \
+ struct kernel_old_ucontext uc; \
+ } *rt_ = (CONTEXT)->cfa; \
+ sc_ = &rt_->uc.uc_mcontext; \
+ } \
else \
break; \
\
@@ -122,10 +165,6 @@ enum { SIGNAL_FRAMESIZE = 64 };
(FS)->regs.reg[LINK_REGISTER_REGNUM].loc.offset \
= (long)&(sc_->regs->link) - new_cfa_; \
\
- /* The unwinder expects the IP to point to the following insn, \
- whereas the kernel returns the address of the actual \
- faulting insn. */ \
- sc_->regs->nip += 4; \
(FS)->regs.reg[CR0_REGNO].how = REG_SAVED_OFFSET; \
(FS)->regs.reg[CR0_REGNO].loc.offset \
= (long)&(sc_->regs->nip) - new_cfa_; \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 73fd5beed3d..599c6929a8e 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -137,6 +137,9 @@ Boston, MA 02111-1307, USA. */
#undef LINK_SHLIB_SPEC
#define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
#undef LIB_DEFAULT_SPEC
#define LIB_DEFAULT_SPEC "%(lib_linux)"
@@ -207,6 +210,18 @@ Boston, MA 02111-1307, USA. */
#undef RS6000_MCOUNT
#define RS6000_MCOUNT "_mcount"
+#ifdef __powerpc64__
+/* _init and _fini functions are built from bits spread across many
+ object files, each potentially with a different TOC pointer. For
+ that reason, place a nop after the call so that the linker can
+ restore the TOC pointer if a TOC adjusting call stub is needed. */
+#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
+ asm (SECTION_OP "\n" \
+" bl ." #FUNC "\n" \
+" nop\n" \
+" .previous");
+#endif
+
/* FP save and restore routines. */
#undef SAVE_FP_PREFIX
#define SAVE_FP_PREFIX "._savef"
@@ -373,3 +388,12 @@ while (0)
#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)
+
+#define ASM_FILE_END(FILE) \
+ do { \
+ if (! TARGET_64BIT) \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
diff --git a/gcc/config/rs6000/ppc64-fp.c b/gcc/config/rs6000/ppc64-fp.c
new file mode 100644
index 00000000000..3f6d7cd1bb0
--- /dev/null
+++ b/gcc/config/rs6000/ppc64-fp.c
@@ -0,0 +1,146 @@
+/* Functions needed for soft-float on powerpc64-linux, copied from
+ libgcc2.c with macros expanded to force the use of specific types.
+
+ Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#if defined(__powerpc64__)
+#include "fp-bit.h"
+
+extern DItype __fixdfdi (DFtype);
+extern DItype __fixsfdi (SFtype);
+extern USItype __fixunsdfsi (DFtype);
+extern USItype __fixunssfsi (SFtype);
+extern DFtype __floatdidf (DItype);
+extern SFtype __floatdisf (DItype);
+
+static DItype local_fixunssfdi (SFtype);
+static DItype local_fixunsdfdi (DFtype);
+
+DItype
+__fixdfdi (DFtype a)
+{
+ if (a < 0)
+ return - local_fixunsdfdi (-a);
+ return local_fixunsdfdi (a);
+}
+
+DItype
+__fixsfdi (SFtype a)
+{
+ if (a < 0)
+ return - local_fixunssfdi (-a);
+ return local_fixunssfdi (a);
+}
+
+USItype
+__fixunsdfsi (DFtype a)
+{
+ if (a >= - (DFtype) (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1))
+ return (SItype) (a + (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1))
+ - (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1);
+ return (SItype) a;
+}
+
+USItype
+__fixunssfsi (SFtype a)
+{
+ if (a >= - (SFtype) (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1))
+ return (SItype) (a + (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1))
+ - (- ((SItype)(((USItype)1 << ((4 * 8) - 1)) - 1)) - 1);
+ return (SItype) a;
+}
+
+DFtype
+__floatdidf (DItype u)
+{
+ DFtype d;
+
+ d = (SItype) (u >> (sizeof (SItype) * 8));
+ d *= (((UDItype) 1) << ((sizeof (SItype) * 8) / 2));
+ d *= (((UDItype) 1) << ((sizeof (SItype) * 8) / 2));
+ d += (USItype) (u & ((((UDItype) 1) << (sizeof (SItype) * 8)) - 1));
+
+ return d;
+}
+
+SFtype
+__floatdisf (DItype u)
+{
+ DFtype f;
+
+ if (53 < (sizeof (DItype) * 8)
+ && 53 > ((sizeof (DItype) * 8) - 53 + 24))
+ {
+ if (! (- ((DItype) 1 << 53) < u
+ && u < ((DItype) 1 << 53)))
+ {
+ if ((UDItype) u & (((UDItype) 1 << ((sizeof (DItype) * 8) - 53)) - 1))
+ {
+ u &= ~ (((UDItype) 1 << ((sizeof (DItype) * 8) - 53)) - 1);
+ u |= ((UDItype) 1 << ((sizeof (DItype) * 8) - 53));
+ }
+ }
+ }
+ f = (SItype) (u >> (sizeof (SItype) * 8));
+ f *= (((UDItype) 1) << ((sizeof (SItype) * 8) / 2));
+ f *= (((UDItype) 1) << ((sizeof (SItype) * 8) / 2));
+ f += (USItype) (u & ((((UDItype) 1) << (sizeof (SItype) * 8)) - 1));
+
+ return (SFtype) f;
+}
+
+/* This version is needed to prevent recursion; fixunsdfdi in libgcc
+ calls fixdfdi, which in turn calls calls fixunsdfdi. */
+
+static DItype
+local_fixunsdfdi (DFtype a)
+{
+ USItype hi, lo;
+
+ hi = a / (((UDItype) 1) << (sizeof (SItype) * 8));
+ lo = (a - ((DFtype) hi) * (((UDItype) 1) << (sizeof (SItype) * 8)));
+ return ((UDItype) hi << (sizeof (SItype) * 8)) | lo;
+}
+
+/* This version is needed to prevent recursion; fixunssfdi in libgcc
+ calls fixsfdi, which in turn calls calls fixunssfdi. */
+
+static DItype
+local_fixunssfdi (SFtype original_a)
+{
+ DFtype a = original_a;
+ USItype hi, lo;
+
+ hi = a / (((UDItype) 1) << (sizeof (SItype) * 8));
+ lo = (a - ((DFtype) hi) * (((UDItype) 1) << (sizeof (SItype) * 8)));
+ return ((UDItype) hi << (sizeof (SItype) * 8)) | lo;
+}
+
+#endif /* __powerpc64__ */
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h
index a7ec02b03e2..4d6daa533e7 100644
--- a/gcc/config/rs6000/rs6000-protos.h
+++ b/gcc/config/rs6000/rs6000-protos.h
@@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */
#ifdef RTX_CODE
#ifdef TREE_CODE
-extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx, int));
+extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx, int, int));
extern void rs6000_va_start PARAMS ((tree, rtx));
#endif /* TREE_CODE */
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 5c0ef2f6f30..009e1e7d700 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1,6 +1,6 @@
/* Subroutines used for code generation on IBM RS/6000.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
@@ -150,7 +150,8 @@ static int rs6000_sr_alias_set;
/* Call distance, overridden by -mlongcall and #pragma longcall(1).
The only place that looks at this is rs6000_set_default_type_attributes;
everywhere else should rely on the presence or absence of a longcall
- attribute on the function declaration. */
+ attribute on the function declaration. Exception: init_cumulative_args
+ looks at it too, for libcalls. */
int rs6000_default_long_calls;
const char *rs6000_longcall_switch;
@@ -284,7 +285,9 @@ char rs6000_reg_names[][8] =
"8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20", "21", "22", "23",
"24", "25", "26", "27", "28", "29", "30", "31",
- "vrsave"
+ "vrsave", "vscr",
+ /* SPE registers. */
+ "spe_acc", "spefscr"
};
#ifdef TARGET_REGNAMES
@@ -301,12 +304,14 @@ static const char alt_reg_names[][8] =
"mq", "lr", "ctr", "ap",
"%cr0", "%cr1", "%cr2", "%cr3", "%cr4", "%cr5", "%cr6", "%cr7",
"xer",
- /* AltiVec registers. */
+ /* AltiVec registers. */
"%v0", "%v1", "%v2", "%v3", "%v4", "%v5", "%v6", "%v7",
- "%v8", "%v9", "%v10", "%v11", "%v12", "%v13", "%v14", "%v15",
- "%v16", "%v17", "%v18", "%v19", "%v20", "%v21", "%v22", "%v23",
- "%v24", "%v25", "%v26", "%v27", "%v28", "%v29", "%v30", "%v31",
- "vrsave"
+ "%v8", "%v9", "%v10", "%v11", "%v12", "%v13", "%v14", "%v15",
+ "%v16", "%v17", "%v18", "%v19", "%v20", "%v21", "%v22", "%v23",
+ "%v24", "%v25", "%v26", "%v27", "%v28", "%v29", "%v30", "%v31",
+ "vrsave", "vscr",
+ /* SPE registers. */
+ "spe_acc", "spefscr"
};
#endif
@@ -2636,16 +2641,15 @@ rs6000_emit_move (dest, source, mode)
}
}
- /* Handle the case where reload calls us with an invalid address;
- and the case of CONSTANT_P_RTX. */
- if (!ALTIVEC_VECTOR_MODE (mode)
+ /* Handle the case where reload calls us with an invalid address. */
+ if (reload_in_progress && mode == Pmode
&& (! general_operand (operands[1], mode)
- || ! nonimmediate_operand (operands[0], mode)
- || GET_CODE (operands[1]) == CONSTANT_P_RTX))
- {
- emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
- return;
- }
+ || ! nonimmediate_operand (operands[0], mode)))
+ goto emit_set;
+
+ /* Handle the case of CONSTANT_P_RTX. */
+ if (GET_CODE (operands[1]) == CONSTANT_P_RTX)
+ goto emit_set;
/* FIXME: In the long term, this switch statement should go away
and be replaced by a sequence of tests based on things like
@@ -2841,6 +2845,16 @@ rs6000_emit_move (dest, source, mode)
operands[1]
= replace_equiv_address (operands[1],
copy_addr_to_reg (XEXP (operands[1], 0)));
+ if (TARGET_POWER)
+ {
+ emit_insn (gen_rtx_PARALLEL (VOIDmode,
+ gen_rtvec (2,
+ gen_rtx_SET (VOIDmode,
+ operands[0], operands[1]),
+ gen_rtx_CLOBBER (VOIDmode,
+ gen_rtx_SCRATCH (SImode)))));
+ return;
+ }
break;
default:
@@ -2850,13 +2864,11 @@ rs6000_emit_move (dest, source, mode)
/* Above, we may have called force_const_mem which may have returned
an invalid address. If we can, fix this up; otherwise, reload will
have to deal with it. */
- if (GET_CODE (operands[1]) == MEM
- && ! memory_address_p (mode, XEXP (operands[1], 0))
- && ! reload_in_progress)
- operands[1] = adjust_address (operands[1], mode, 0);
+ if (GET_CODE (operands[1]) == MEM && ! reload_in_progress)
+ operands[1] = validize_mem (operands[1]);
+ emit_set:
emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1]));
- return;
}
/* Initialize a variable CUM of type CUMULATIVE_ARGS
@@ -2867,11 +2879,12 @@ rs6000_emit_move (dest, source, mode)
so we never return a PARALLEL. */
void
-init_cumulative_args (cum, fntype, libname, incoming)
+init_cumulative_args (cum, fntype, libname, incoming, libcall)
CUMULATIVE_ARGS *cum;
tree fntype;
rtx libname ATTRIBUTE_UNUSED;
int incoming;
+ int libcall;
{
static CUMULATIVE_ARGS zero_cumulative;
@@ -2880,7 +2893,8 @@ init_cumulative_args (cum, fntype, libname, incoming)
cum->fregno = FP_ARG_MIN_REG;
cum->vregno = ALTIVEC_ARG_MIN_REG;
cum->prototype = (fntype && TYPE_ARG_TYPES (fntype));
- cum->call_cookie = CALL_NORMAL;
+ cum->call_cookie = ((DEFAULT_ABI == ABI_V4 && libcall)
+ ? CALL_LIBCALL : CALL_NORMAL);
cum->sysv_gregno = GP_ARG_MIN_REG;
if (incoming)
@@ -2897,10 +2911,11 @@ init_cumulative_args (cum, fntype, libname, incoming)
cum->orig_nargs = cum->nargs_prototype;
/* Check for a longcall attribute. */
- if (fntype
- && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype))
- && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype)))
- cum->call_cookie = CALL_LONG;
+ if ((!fntype && rs6000_default_long_calls)
+ || (fntype
+ && lookup_attribute ("longcall", TYPE_ATTRIBUTES (fntype))
+ && !lookup_attribute ("shortcall", TYPE_ATTRIBUTES (fntype))))
+ cum->call_cookie |= CALL_LONG;
if (TARGET_DEBUG_ARG)
{
@@ -3088,7 +3103,7 @@ function_arg_advance (cum, mode, type, named)
If this is floating-point and no prototype is specified, we use
both an FP and integer register (or possibly FP reg and stack). Library
- functions (when TYPE is zero) always have the proper types for args,
+ functions (when CALL_LIBCALL is set) always have the proper types for args,
so we can pass the FP value just in one register. emit_library_function
doesn't support PARALLEL anyway. */
@@ -3109,7 +3124,8 @@ function_arg (cum, mode, type, named)
{
if (abi == ABI_V4
&& cum->nargs_prototype < 0
- && type && (cum->prototype || TARGET_NO_PROTOTYPE))
+ && (cum->call_cookie & CALL_LIBCALL) == 0
+ && (cum->prototype || TARGET_NO_PROTOTYPE))
{
/* For the SPE, we need to crxor CR6 always. */
if (TARGET_SPE_ABI)
@@ -3275,7 +3291,10 @@ function_arg_partial_nregs (cum, mode, type, named)
the argument itself. The pointer is passed in whatever way is
appropriate for passing a pointer to that type.
- Under V.4, structures and unions are passed by reference. */
+ Under V.4, structures and unions are passed by reference.
+
+ As an extension to all ABIs, variable sized types are passed by
+ reference. */
int
function_arg_pass_by_reference (cum, mode, type, named)
@@ -3293,8 +3312,7 @@ function_arg_pass_by_reference (cum, mode, type, named)
return 1;
}
-
- return 0;
+ return type && int_size_in_bytes (type) < 0;
}
/* Perform any needed actions needed for a function that is receiving a
@@ -3533,7 +3551,28 @@ rs6000_va_arg (valist, type)
rtx lab_false, lab_over, addr_rtx, r;
if (DEFAULT_ABI != ABI_V4)
- return std_expand_builtin_va_arg (valist, type);
+ {
+ /* Variable sized types are passed by reference. */
+ if (int_size_in_bytes (type) < 0)
+ {
+ u = build_pointer_type (type);
+
+ /* Args grow upward. */
+ t = build (POSTINCREMENT_EXPR, TREE_TYPE (valist), valist,
+ build_int_2 (POINTER_SIZE / BITS_PER_UNIT, 0));
+ TREE_SIDE_EFFECTS (t) = 1;
+
+ t = build1 (NOP_EXPR, build_pointer_type (u), t);
+ TREE_SIDE_EFFECTS (t) = 1;
+
+ t = build1 (INDIRECT_REF, u, t);
+ TREE_SIDE_EFFECTS (t) = 1;
+
+ return expand_expr (t, NULL_RTX, VOIDmode, EXPAND_NORMAL);
+ }
+ else
+ return std_expand_builtin_va_arg (valist, type);
+ }
f_gpr = TYPE_FIELDS (TREE_TYPE (va_list_type_node));
f_fpr = TREE_CHAIN (f_gpr);
@@ -8837,7 +8876,7 @@ first_reg_to_save ()
if (regs_ever_live[first_reg]
&& (! call_used_regs[first_reg]
|| (first_reg == RS6000_PIC_OFFSET_TABLE_REGNUM
- && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1)
+ && ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
|| (DEFAULT_ABI == ABI_DARWIN && flag_pic)))))
break;
@@ -9153,16 +9192,15 @@ rs6000_stack_info ()
else
info_ptr->spe_gp_size = 0;
- if (TARGET_ALTIVEC_ABI && TARGET_ALTIVEC_VRSAVE)
- {
- info_ptr->vrsave_mask = compute_vrsave_mask ();
- info_ptr->vrsave_size = info_ptr->vrsave_mask ? 4 : 0;
- }
+ if (TARGET_ALTIVEC_ABI)
+ info_ptr->vrsave_mask = compute_vrsave_mask ();
else
- {
- info_ptr->vrsave_mask = 0;
- info_ptr->vrsave_size = 0;
- }
+ info_ptr->vrsave_mask = 0;
+
+ if (TARGET_ALTIVEC_VRSAVE && info_ptr->vrsave_mask)
+ info_ptr->vrsave_size = 4;
+ else
+ info_ptr->vrsave_size = 0;
/* Calculate the offsets. */
switch (abi)
@@ -9265,7 +9303,6 @@ rs6000_stack_info ()
+ ehrd_size
+ info_ptr->cr_size
+ info_ptr->lr_size
- + info_ptr->vrsave_size
+ info_ptr->toc_size,
(TARGET_ALTIVEC_ABI || ABI_DARWIN)
? 16 : 8);
@@ -9609,7 +9646,7 @@ void
rs6000_emit_load_toc_table (fromprolog)
int fromprolog;
{
- rtx dest;
+ rtx dest, insn;
dest = gen_rtx_REG (Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM);
if (TARGET_ELF && DEFAULT_ABI == ABI_V4 && flag_pic == 1)
@@ -9617,8 +9654,12 @@ rs6000_emit_load_toc_table (fromprolog)
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));
+ insn = emit_insn (gen_load_toc_v4_pic_si (temp));
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
+ insn = emit_move_insn (dest, temp);
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
}
else if (TARGET_ELF && DEFAULT_ABI != ABI_AIX && flag_pic == 2)
{
@@ -9665,14 +9706,13 @@ rs6000_emit_load_toc_table (fromprolog)
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)));
+ emit_insn (gen_load_toc_v4_PIC_1b (tempLR, symF, tocsym));
+ emit_move_insn (dest, tempLR);
+ emit_move_insn (temp0, gen_rtx_MEM (Pmode, dest));
}
- rs6000_maybe_dead (emit_insn (gen_addsi3 (dest, temp0, dest)));
+ insn = emit_insn (gen_addsi3 (dest, temp0, dest));
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
}
else if (TARGET_ELF && !TARGET_AIX && flag_pic == 0 && TARGET_MINIMAL_TOC)
{
@@ -9682,15 +9722,21 @@ rs6000_emit_load_toc_table (fromprolog)
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)));
+ insn = emit_insn (gen_elf_high (dest, realsym));
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
+ insn = emit_insn (gen_elf_low (dest, dest, realsym));
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
}
else if (DEFAULT_ABI == ABI_AIX)
{
if (TARGET_32BIT)
- rs6000_maybe_dead (emit_insn (gen_load_toc_aix_si (dest)));
+ insn = emit_insn (gen_load_toc_aix_si (dest));
else
- rs6000_maybe_dead (emit_insn (gen_load_toc_aix_di (dest)));
+ insn = emit_insn (gen_load_toc_aix_di (dest));
+ if (fromprolog)
+ rs6000_maybe_dead (insn);
}
else
abort ();
@@ -10306,13 +10352,16 @@ rs6000_emit_prologue ()
used in this function, and do the corresponding magic in the
epilogue. */
- if (TARGET_ALTIVEC && info->vrsave_mask != 0)
+ if (TARGET_ALTIVEC && TARGET_ALTIVEC_VRSAVE
+ && info->vrsave_mask != 0)
{
rtx reg, mem, vrsave;
int offset;
- /* Get VRSAVE onto a GPR. */
- reg = gen_rtx_REG (SImode, 12);
+ /* Get VRSAVE onto a GPR. Note that ABI_V4 might be using r12
+ as frame_reg_rtx and r11 as the static chain pointer for
+ nested functions. */
+ reg = gen_rtx_REG (SImode, 0);
vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO);
if (TARGET_MACHO)
emit_insn (gen_get_vrsave_internal (reg));
@@ -10423,7 +10472,7 @@ rs6000_emit_prologue ()
if ((regs_ever_live[info->first_gp_reg_save+i]
&& ! call_used_regs[info->first_gp_reg_save+i])
|| (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
- && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1)
+ && ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
|| (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
{
rtx addr, reg, mem;
@@ -10747,7 +10796,8 @@ rs6000_emit_epilogue (sibcall)
}
/* Restore VRSAVE if needed. */
- if (TARGET_ALTIVEC_ABI && info->vrsave_mask != 0)
+ if (TARGET_ALTIVEC_ABI && TARGET_ALTIVEC_VRSAVE
+ && info->vrsave_mask != 0)
{
rtx addr, mem, reg;
@@ -10839,7 +10889,7 @@ rs6000_emit_epilogue (sibcall)
if ((regs_ever_live[info->first_gp_reg_save+i]
&& ! call_used_regs[info->first_gp_reg_save+i])
|| (i+info->first_gp_reg_save == RS6000_PIC_OFFSET_TABLE_REGNUM
- && ((DEFAULT_ABI == ABI_V4 && flag_pic == 1)
+ && ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
|| (DEFAULT_ABI == ABI_DARWIN && flag_pic))))
{
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
@@ -11065,6 +11115,23 @@ rs6000_output_function_epilogue (file, size)
}
}
+#if TARGET_OBJECT_FORMAT == OBJECT_MACHO
+ /* Mach-O doesn't support labels at the end of objects, so if
+ it looks like we might want one, insert a NOP. */
+ {
+ rtx insn = get_last_insn ();
+ while (insn
+ && NOTE_P (insn)
+ && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED_LABEL)
+ insn = PREV_INSN (insn);
+ if (insn
+ && (LABEL_P (insn)
+ || (NOTE_P (insn)
+ && NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL)))
+ fputs ("\tnop\n", file);
+ }
+#endif
+
/* Output a traceback table here. See /usr/include/sys/debug.h for info
on its format.
@@ -12617,11 +12684,15 @@ rs6000_elf_encode_section_info (decl, first)
&& DEFAULT_ABI == ABI_V4
&& TREE_CODE (decl) == VAR_DECL)
{
+ rtx sym_ref = XEXP (DECL_RTL (decl), 0);
int size = int_size_in_bytes (TREE_TYPE (decl));
tree section_name = DECL_SECTION_NAME (decl);
const char *name = (char *)0;
int len = 0;
+ if ((*targetm.binds_local_p) (decl))
+ SYMBOL_REF_FLAG (sym_ref) = 1;
+
if (section_name)
{
if (TREE_CODE (section_name) == STRING_CST)
@@ -12648,7 +12719,6 @@ rs6000_elf_encode_section_info (decl, first)
|| (len == sizeof (".PPC.EMB.sbss0") - 1
&& strcmp (name, ".PPC.EMB.sbss0") == 0))))
{
- rtx sym_ref = XEXP (DECL_RTL (decl), 0);
size_t len = strlen (XSTR (sym_ref, 0));
char *str = alloca (len + 2);
@@ -13073,14 +13143,8 @@ rs6000_elf_section_type_flags (decl, name, reloc)
const char *name;
int reloc;
{
- unsigned int flags
- = default_section_type_flags_1 (decl, name, reloc,
- flag_pic || DEFAULT_ABI == ABI_AIX);
-
- if (TARGET_RELOCATABLE)
- flags |= SECTION_WRITE;
-
- return flags;
+ return default_section_type_flags_1 (decl, name, reloc,
+ flag_pic || DEFAULT_ABI == ABI_AIX);
}
/* Record an element in the table of global constructors. SYMBOL is
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index e5e9e27cce9..65cd1600ea2 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for IBM RS/6000.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
@@ -611,6 +611,9 @@ extern int rs6000_default_long_calls;
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
#endif
+/* Work around rs6000_long_double_type_size dependency in ada/targtyps.c. */
+#define WIDEST_HARDWARE_FP_SIZE 64
+
/* Width in bits of a pointer.
See also the macro `Pmode' defined below. */
#define POINTER_SIZE (TARGET_32BIT ? 32 : 64)
@@ -997,6 +1000,10 @@ extern int rs6000_default_long_calls;
= call_really_used_regs[i] = 1; \
if (DEFAULT_ABI == ABI_V4 \
&& PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM \
+ && flag_pic == 2) \
+ fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] = 1; \
+ if (DEFAULT_ABI == ABI_V4 \
+ && PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM \
&& flag_pic == 1) \
fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] \
= call_used_regs[RS6000_PIC_OFFSET_TABLE_REGNUM] \
@@ -1337,10 +1344,12 @@ enum reg_class
/* Return a class of registers that cannot change FROM mode to TO mode. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) ? FLOAT_REGS \
- : (SPE_VECTOR_MODE (FROM) + SPE_VECTOR_MODE (TO)) == 1 ? GENERAL_REGS \
- : NO_REGS)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (FLOAT_REGS, CLASS) \
+ : (SPE_VECTOR_MODE (FROM) + SPE_VECTOR_MODE (TO)) == 1 \
+ ? reg_classes_intersect_p (GENERAL_REGS, CLASS) \
+ : 0)
/* Stack layout; function entry, exit and calling. */
@@ -1607,25 +1616,26 @@ typedef struct rs6000_stack {
#define CALL_V4_CLEAR_FP_ARGS 0x00000002 /* V.4, no FP args passed */
#define CALL_V4_SET_FP_ARGS 0x00000004 /* V.4, FP args were passed */
#define CALL_LONG 0x00000008 /* always call indirect */
+#define CALL_LIBCALL 0x00000010 /* libcall */
/* 1 if N is a possible register number for a function value
as seen by the caller.
On RS/6000, this is r3, fp1, and v2 (for AltiVec). */
-#define FUNCTION_VALUE_REGNO_P(N) ((N) == GP_ARG_RETURN \
- || ((N) == FP_ARG_RETURN) \
- || (TARGET_ALTIVEC && \
- (N) == ALTIVEC_ARG_RETURN))
+#define FUNCTION_VALUE_REGNO_P(N) \
+ ((N) == GP_ARG_RETURN \
+ || ((N) == FP_ARG_RETURN && TARGET_HARD_FLOAT) \
+ || ((N) == ALTIVEC_ARG_RETURN && TARGET_ALTIVEC))
/* 1 if N is a possible register number for function argument passing.
On RS/6000, these are r3-r10 and fp1-fp13.
On AltiVec, v2 - v13 are used for passing vectors. */
#define FUNCTION_ARG_REGNO_P(N) \
- (((unsigned)((N) - GP_ARG_MIN_REG) < (unsigned)(GP_ARG_NUM_REG)) \
- || (TARGET_ALTIVEC && \
- (unsigned)((N) - ALTIVEC_ARG_MIN_REG) < (unsigned)(ALTIVEC_ARG_NUM_REG)) \
- || ((unsigned)((N) - FP_ARG_MIN_REG) < (unsigned)(FP_ARG_NUM_REG)))
-
+ ((unsigned) (N) - GP_ARG_MIN_REG < GP_ARG_NUM_REG \
+ || ((unsigned) (N) - ALTIVEC_ARG_MIN_REG < ALTIVEC_ARG_NUM_REG \
+ && TARGET_ALTIVEC) \
+ || ((unsigned) (N) - FP_ARG_MIN_REG < FP_ARG_NUM_REG \
+ && TARGET_HARD_FLOAT))
/* A C structure for machine-specific, per-function data.
This is added to the cfun structure. */
@@ -1680,13 +1690,18 @@ typedef struct rs6000_args
For a library call, FNTYPE is 0. */
#define INIT_CUMULATIVE_ARGS(CUM,FNTYPE,LIBNAME,INDIRECT) \
- init_cumulative_args (&CUM, FNTYPE, LIBNAME, FALSE)
+ init_cumulative_args (&CUM, FNTYPE, LIBNAME, FALSE, FALSE)
/* Similar, but when scanning the definition of a procedure. We always
set NARGS_PROTOTYPE large so we never return an EXPR_LIST. */
#define INIT_CUMULATIVE_INCOMING_ARGS(CUM,FNTYPE,LIBNAME) \
- init_cumulative_args (&CUM, FNTYPE, LIBNAME, TRUE)
+ init_cumulative_args (&CUM, FNTYPE, LIBNAME, TRUE, FALSE)
+
+/* Like INIT_CUMULATIVE_ARGS' but only used for outgoing libcalls. */
+
+#define INIT_CUMULATIVE_LIBCALL_ARGS(CUM, MODE, LIBNAME) \
+ init_cumulative_args (&CUM, NULL_TREE, LIBNAME, FALSE, TRUE)
/* Update the data in CUM to advance over an argument
of mode MODE and data type TYPE.
@@ -1832,7 +1847,7 @@ typedef struct rs6000_args
|| (TARGET_ALTIVEC && (REGNO) == VRSAVE_REGNO) \
|| (current_function_calls_eh_return \
&& TARGET_AIX \
- && (REGNO) == TOC_REGISTER))
+ && (REGNO) == 2))
/* TRAMPOLINE_TEMPLATE deleted */
@@ -1978,9 +1993,11 @@ typedef struct rs6000_args
acceptable. */
#define LEGITIMATE_CONSTANT_P(X) \
- (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode \
- || (TARGET_POWERPC64 && GET_MODE (X) == DImode) \
- || easy_fp_constant (X, GET_MODE (X)))
+ ((GET_CODE (X) != CONST_VECTOR \
+ || zero_constant (X, GET_MODE (X))) \
+ && (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode \
+ || (TARGET_POWERPC64 && GET_MODE (X) == DImode) \
+ || easy_fp_constant (X, GET_MODE (X))))
/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
and check its validity for a certain class.
@@ -2093,8 +2110,8 @@ typedef struct rs6000_args
(GET_CODE (X) == REG && INT_REG_OK_FOR_BASE_P (X, (STRICT)))
#define LEGITIMATE_LO_SUM_ADDRESS_P(MODE, X, STRICT) \
- (TARGET_ELF \
- && ! flag_pic && ! TARGET_TOC \
+ (((TARGET_ELF && ! flag_pic) || TARGET_MACHO) \
+ && ! TARGET_TOC \
&& GET_MODE_NUNITS (MODE) == 1 \
&& (GET_MODE_BITSIZE (MODE) <= 32 \
|| (TARGET_HARD_FLOAT && TARGET_FPRS && (MODE) == DFmode)) \
@@ -2382,12 +2399,16 @@ do { \
return COSTS_N_INSNS (4); \
case PROCESSOR_PPC620: \
case PROCESSOR_PPC630: \
- case PROCESSOR_POWER4: \
return (GET_CODE (XEXP (X, 1)) != CONST_INT \
? GET_MODE (XEXP (X, 1)) != DImode \
? COSTS_N_INSNS (5) : COSTS_N_INSNS (7) \
: INTVAL (XEXP (X, 1)) >= -256 && INTVAL (XEXP (X, 1)) <= 255 \
? COSTS_N_INSNS (3) : COSTS_N_INSNS (4)); \
+ case PROCESSOR_POWER4: \
+ return (GET_CODE (XEXP (X, 1)) != CONST_INT \
+ ? GET_MODE (XEXP (X, 1)) != DImode \
+ ? COSTS_N_INSNS (3) : COSTS_N_INSNS (4) \
+ : COSTS_N_INSNS (2)); \
} \
case DIV: \
case MOD: \
@@ -2723,8 +2744,8 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
#define DEBUG_REGISTER_NAMES \
{ \
- "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
- "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \
+ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", \
"r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31", \
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
@@ -2733,13 +2754,13 @@ extern char rs6000_reg_names[][8]; /* register names (0 vs. %r0). */
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
"mq", "lr", "ctr", "ap", \
"cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", \
- "xer", \
+ "xer", \
"v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", \
"v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15", \
"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", \
"v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31", \
- "vrsave", "vscr" \
- , "spe_acc", "spefscr" \
+ "vrsave", "vscr", \
+ "spe_acc", "spefscr" \
}
/* Table of additional register names to use in user input. */
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index a031a295e9b..591703fe137 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -1,6 +1,6 @@
;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
;; This file is part of GNU CC.
@@ -772,17 +772,17 @@
2 1)
(define_function_unit "iu2" 2 0
- (and (eq_attr "type" "imul,lmul")
+ (and (eq_attr "type" "lmul")
(eq_attr "cpu" "power4"))
7 6)
(define_function_unit "iu2" 2 0
- (and (eq_attr "type" "imul2")
+ (and (eq_attr "type" "imul")
(eq_attr "cpu" "power4"))
5 4)
(define_function_unit "iu2" 2 0
- (and (eq_attr "type" "imul3")
+ (and (eq_attr "type" "imul2,imul3")
(eq_attr "cpu" "power4"))
4 3)
@@ -3124,61 +3124,6 @@
}"
[(set_attr "length" "8")])
-(define_insn_and_split "*andsi3_internal7"
- [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
- (compare:CC (and:SI (match_operand:SI 0 "gpc_reg_operand" "r,r")
- (match_operand:SI 1 "mask_operand_wrap" "i,i"))
- (const_int 0)))
- (clobber (match_scratch:SI 3 "=r,r"))]
- "TARGET_POWERPC64"
- "#"
- "TARGET_POWERPC64"
- [(parallel [(set (match_dup 2)
- (compare:CC (and:SI (rotate:SI (match_dup 0) (match_dup 4))
- (match_dup 5))
- (const_int 0)))
- (clobber (match_dup 3))])]
- "
-{
- int mb = extract_MB (operands[1]);
- int me = extract_ME (operands[1]);
- operands[4] = GEN_INT (me + 1);
- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb)));
-}"
- [(set_attr "type" "delayed_compare,compare")
- (set_attr "length" "4,8")])
-
-(define_insn_and_split "*andsi3_internal8"
- [(set (match_operand:CC 3 "cc_reg_operand" "=x,??y")
- (compare:CC (and:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
- (match_operand:SI 2 "mask_operand_wrap" "i,i"))
- (const_int 0)))
- (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
- (and:SI (match_dup 1)
- (match_dup 2)))]
- "TARGET_POWERPC64"
- "#"
- "TARGET_POWERPC64"
- [(parallel [(set (match_dup 3)
- (compare:CC (and:SI (rotate:SI (match_dup 1) (match_dup 4))
- (match_dup 5))
- (const_int 0)))
- (set (match_dup 0)
- (and:SI (rotate:SI (match_dup 1) (match_dup 4))
- (match_dup 5)))])
- (set (match_dup 0)
- (rotate:SI (match_dup 0) (match_dup 6)))]
- "
-{
- int mb = extract_MB (operands[2]);
- int me = extract_ME (operands[2]);
- operands[4] = GEN_INT (me + 1);
- operands[6] = GEN_INT (32 - (me + 1));
- operands[5] = GEN_INT (~((HOST_WIDE_INT) -1 << (33 + me - mb)));
-}"
- [(set_attr "type" "delayed_compare,compare")
- (set_attr "length" "8,12")])
-
(define_expand "iorsi3"
[(set (match_operand:SI 0 "gpc_reg_operand" "")
(ior:SI (match_operand:SI 1 "gpc_reg_operand" "")
@@ -6350,7 +6295,7 @@
[(set (match_operand:DI 0 "gpc_reg_operand" "=&r,&r")
(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "const_int_operand" "M,i")))]
- "TARGET_32BIT && !TARGET_POWER"
+ "TARGET_32BIT && !TARGET_POWER && WORDS_BIG_ENDIAN"
"@
{srai|srawi} %0,%1,31\;{srai|srawi} %L0,%1,%h2
{sri|srwi} %L0,%L1,%h2\;insrwi %L0,%1,%h2,0\;{srai|srawi} %0,%1,%h2"
@@ -7564,7 +7509,7 @@
[(set (match_operand:DI 0 "gpc_reg_operand" "")
(ashiftrt:DI (match_operand:DI 1 "gpc_reg_operand" "")
(match_operand:SI 2 "reg_or_cint_operand" "")))]
- ""
+ "WORDS_BIG_ENDIAN"
"
{
if (TARGET_POWERPC64)
@@ -7574,7 +7519,8 @@
emit_insn (gen_ashrdi3_power (operands[0], operands[1], operands[2]));
DONE;
}
- else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT)
+ else if (TARGET_32BIT && GET_CODE (operands[2]) == CONST_INT
+ && WORDS_BIG_ENDIAN)
{
emit_insn (gen_ashrdi3_no_power (operands[0], operands[1], operands[2]));
DONE;
@@ -9133,6 +9079,32 @@
operands[5] = GEN_INT (CONST_DOUBLE_LOW (operands[1]));
}")
+(define_split
+ [(set (match_operand:TI 0 "gpc_reg_operand" "")
+ (match_operand:TI 1 "const_double_operand" ""))]
+ "TARGET_POWERPC64"
+ [(set (match_dup 2) (match_dup 4))
+ (set (match_dup 3) (match_dup 5))]
+ "
+{
+ operands[2] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN == 0,
+ TImode);
+ operands[3] = operand_subword_force (operands[0], WORDS_BIG_ENDIAN != 0,
+ TImode);
+ if (GET_CODE (operands[1]) == CONST_DOUBLE)
+ {
+ operands[4] = GEN_INT (CONST_DOUBLE_HIGH (operands[1]));
+ operands[5] = GEN_INT (CONST_DOUBLE_LOW (operands[1]));
+ }
+ else if (GET_CODE (operands[1]) == CONST_INT)
+ {
+ operands[4] = GEN_INT (- (INTVAL (operands[1]) < 0));
+ operands[5] = operands[1];
+ }
+ else
+ FAIL;
+}")
+
(define_insn "*movdi_internal64"
[(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,r,?f,f,m,r,*h,*h")
(match_operand:DI 1 "input_operand" "r,m,r,I,L,nF,R,f,m,f,*h,r,0"))]
@@ -9313,8 +9285,7 @@
(define_insn "*movti_string"
[(set (match_operand:TI 0 "reg_or_mem_operand" "=Q,m,????r,????r,????r")
- (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m"))
- (clobber (match_scratch:SI 2 "X,X,X,X,X"))]
+ (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m"))]
"TARGET_STRING && ! TARGET_POWER && ! TARGET_POWERPC64
&& (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))"
"*
@@ -14283,7 +14254,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrsi_internal2"
[(set (pc)
@@ -14307,7 +14278,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal1"
[(set (pc)
@@ -14331,7 +14302,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal2"
[(set (pc)
@@ -14355,7 +14326,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
;; Similar, but we can use GE since we have a REG_NONNEG.
@@ -14381,7 +14352,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrsi_internal4"
[(set (pc)
@@ -14405,7 +14376,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal3"
[(set (pc)
@@ -14429,7 +14400,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal4"
[(set (pc)
@@ -14453,7 +14424,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
;; Similar but use EQ
@@ -14479,7 +14450,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrsi_internal6"
[(set (pc)
@@ -14503,7 +14474,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal5"
[(set (pc)
@@ -14527,7 +14498,7 @@
return \"{bdn|bdnz} $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
(define_insn "*ctrdi_internal6"
[(set (pc)
@@ -14551,7 +14522,7 @@
return \"bdz $+8\;b %l0\";
}"
[(set_attr "type" "branch")
- (set_attr "length" "4,12,16")])
+ (set_attr "length" "*,12,16")])
;; Now the splitters if we could not allocate the CTR register
@@ -14850,19 +14821,17 @@
; This is used in compiling the unwind routines.
(define_expand "eh_return"
- [(use (match_operand 0 "general_operand" ""))
- (use (match_operand 1 "general_operand" ""))]
+ [(use (match_operand 0 "general_operand" ""))]
""
"
{
#if TARGET_AIX
- rs6000_emit_eh_toc_restore (operands[0]);
+ rs6000_emit_eh_toc_restore (EH_RETURN_STACKADJ_RTX);
#endif
if (TARGET_32BIT)
- emit_insn (gen_eh_set_lr_si (operands[1]));
+ emit_insn (gen_eh_set_lr_si (operands[0]));
else
- emit_insn (gen_eh_set_lr_di (operands[1]));
- emit_move_insn (EH_RETURN_STACKADJ_RTX, operands[0]);
+ emit_insn (gen_eh_set_lr_di (operands[0]));
DONE;
}")
diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h
index 072d86c4ca2..7e7584604e9 100644
--- a/gcc/config/rs6000/rtems.h
+++ b/gcc/config/rs6000/rtems.h
@@ -1,5 +1,5 @@
/* Definitions for rtems targeting a PowerPC using elf.
- Copyright (C) 1996, 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GNU CC.
@@ -32,3 +32,6 @@ Boston, MA 02111-1307, USA. */
builtin_assert ("machine=powerpc"); \
} \
while (0)
+
+#undef CPP_OS_DEFAULT_SPEC
+#define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
diff --git a/gcc/config/rs6000/spe.h b/gcc/config/rs6000/spe.h
index 48d5b28b6b9..b15dac5a38b 100644
--- a/gcc/config/rs6000/spe.h
+++ b/gcc/config/rs6000/spe.h
@@ -1,5 +1,5 @@
/* PowerPC E500 user include file.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Aldy Hernandez (aldyh@redhat.com).
This file is part of GNU CC.
@@ -42,10 +42,9 @@ typedef short __vector __ev64_s16__;
typedef unsigned short __vector __ev64_u16__;
typedef int __vector __ev64_s32__;
typedef unsigned __vector __ev64_u32__;
-typedef long long __ev64_s64__;
-typedef unsigned long long __ev64_u64__;
+typedef long long __vector __ev64_s64__;
+typedef unsigned long long __vector __ev64_u64__;
typedef float __vector __ev64_fs__;
-
typedef int __vector __ev64_opaque__;
#define __v2si __ev64_opaque__
@@ -54,7 +53,11 @@ typedef int __vector __ev64_opaque__;
#define __ev_addw(a,b) __builtin_spe_evaddw((__v2si) (a), (__v2si) (b))
#define __ev_addiw(a,b) __builtin_spe_evaddiw ((__v2si) (a), (b))
#define __ev_subfw(a,b) __builtin_spe_evsubfw ((__v2si) (a), (__v2si) (b))
-#define __ev_subifw(a,b) __builtin_spe_evsubifw ((__v2si) (a), (b))
+#define __ev_subw(a,b) __builtin_spe_evsubfw ((__v2si) (b), (__v2si) (a))
+/* ??? The spe_evsubifw pattern accepts operands reversed, so we need to also
+ reverse them here between the intrinsic and the builtin function. */
+#define __ev_subifw(a,b) __builtin_spe_evsubifw ((__v2si) (b), (a))
+#define __ev_subiw(a,b) __builtin_spe_evsubifw ((__v2si) (a), (b))
#define __ev_abs(a) __builtin_spe_evabs ((__v2si) (a))
#define __ev_neg(a) __builtin_spe_evneg ((__v2si) (a))
#define __ev_extsb(a) __builtin_spe_evextsb ((__v2si) (a))
@@ -124,9 +127,9 @@ typedef int __vector __ev64_opaque__;
#define __ev_stwwox(a,b,c) __builtin_spe_evstwwox ((__v2si)(a), (b), (c))
#define __ev_stwhex(a,b,c) __builtin_spe_evstwhex ((__v2si)(a), (b), (c))
#define __ev_stwhox(a,b,c) __builtin_spe_evstwhox ((__v2si)(a), (b), (c))
-#define __ev_stdd(a,b,c) __builtin_spe_evstdd ((__v2si)(a), (b), (c))
-#define __ev_stdw(a,b,c) __builtin_spe_evstdw ((__v2si)(a), (b), (c))
-#define __ev_stdh(a,b,c) __builtin_spe_evstdh ((__v2si)(a), (b), (c))
+#define __ev_stdd(a,b,c) __builtin_spe_evstdd ((__v2si)(a), (void *)(b), (c))
+#define __ev_stdw(a,b,c) __builtin_spe_evstdw ((__v2si)(a), (void *)(b), (c))
+#define __ev_stdh(a,b,c) __builtin_spe_evstdh ((__v2si)(a), (void *)(b), (c))
#define __ev_stwwe(a,b,c) __builtin_spe_evstwwe ((__v2si)(a), (b), (c))
#define __ev_stwwo(a,b,c) __builtin_spe_evstwwo ((__v2si)(a), (b), (c))
#define __ev_stwhe(a,b,c) __builtin_spe_evstwhe ((__v2si)(a), (b), (c))
@@ -224,24 +227,16 @@ typedef int __vector __ev64_opaque__;
#define __ev_mwhumf __ev_mwhumi
#define __ev_mwhumfa __ev_mwhumia
-#define __ev_mwlssf(a, b) __builtin_spe_evmwlssf ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlsmf(a, b) __builtin_spe_evmwlsmf ((__v2si) (a), (__v2si) (b))
#define __ev_mwlumi(a, b) __builtin_spe_evmwlumi ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlssfa(a, b) __builtin_spe_evmwlssfa ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlsmfa(a, b) __builtin_spe_evmwlsmfa ((__v2si) (a), (__v2si) (b))
#define __ev_mwlumia(a, b) __builtin_spe_evmwlumia ((__v2si) (a), (__v2si) (b))
#define __ev_mwlumiaaw(a, b) __builtin_spe_evmwlumiaaw ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlssfaaw(a, b) __builtin_spe_evmwlssfaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlssiaaw(a, b) __builtin_spe_evmwlssiaaw ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlsmfaaw(a, b) __builtin_spe_evmwlsmfaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlsmiaaw(a, b) __builtin_spe_evmwlsmiaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlusiaaw(a, b) __builtin_spe_evmwlusiaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlusiaaw(a, b) __builtin_spe_evmwlusiaaw ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlssfanw(a, b) __builtin_spe_evmwlssfanw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlssianw(a, b) __builtin_spe_evmwlssianw ((__v2si) (a), (__v2si) (b))
-#define __ev_mwlsmfanw(a, b) __builtin_spe_evmwlsmfanw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlsmianw(a, b) __builtin_spe_evmwlsmianw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlusianw(a, b) __builtin_spe_evmwlusianw ((__v2si) (a), (__v2si) (b))
#define __ev_mwlumianw(a, b) __builtin_spe_evmwlumianw ((__v2si) (a), (__v2si) (b))
@@ -294,26 +289,26 @@ typedef int __vector __ev64_opaque__;
/* Floating Point SIMD Instructions */
-/* These all return V2SF, but we need to cast them to V2SI because the SPE
- expect all functions to be __ev64_opaque__. */
-
-#define __ev_fsabs(a) ((__v2si) __builtin_spe_evfsabs ((__v2sf) a))
-#define __ev_fsnabs(a) ((__v2si) __builtin_spe_evfsnabs ((__v2sf) a))
-#define __ev_fsneg(a) ((__v2si) __builtin_spe_evfsneg ((__v2sf) a))
-#define __ev_fsadd(a, b) ((__v2si) __builtin_spe_evfsadd ((__v2sf) a, (__v2sf) b))
-#define __ev_fssub(a, b) ((__v2si) __builtin_spe_evfssub ((__v2sf) a, (__v2sf) b))
-#define __ev_fsmul(a, b) ((__v2si) __builtin_spe_evfsmul ((__v2sf) a, (__v2sf) b))
-#define __ev_fsdiv(a, b) ((__v2si) __builtin_spe_evfsdiv ((__v2sf) a, (__v2sf) b))
-#define __ev_fscfui(a) ((__v2si) __builtin_spe_evfscfui ((__v2si) a))
-#define __ev_fscfsi(a) ((__v2si) __builtin_spe_evfscfsi ((__v2sf) a))
-#define __ev_fscfuf(a) ((__v2si) __builtin_spe_evfscfuf ((__v2sf) a))
-#define __ev_fscfsf(a) ((__v2si) __builtin_spe_evfscfsf ((__v2sf) a))
-#define __ev_fsctui(a) ((__v2si) __builtin_spe_evfsctui ((__v2sf) a))
-#define __ev_fsctsi(a) ((__v2si) __builtin_spe_evfsctsi ((__v2sf) a))
-#define __ev_fsctuf(a) ((__v2si) __builtin_spe_evfsctuf ((__v2sf) a))
-#define __ev_fsctsf(a) ((__v2si) __builtin_spe_evfsctsf ((__v2sf) a))
-#define __ev_fsctuiz(a) ((__v2si) __builtin_spe_evfsctuiz ((__v2sf) a))
-#define __ev_fsctsiz(a) ((__v2si) __builtin_spe_evfsctsiz ((__v2sf) a))
+/* These all return V2SF, but we need to cast them to V2SI
+ because the SPE expect all functions to be __ev64_opaque__. */
+
+#define __ev_fsabs(a) ((__v2si) __builtin_spe_evfsabs ((__v2sf) (a)))
+#define __ev_fsnabs(a) ((__v2si) __builtin_spe_evfsnabs ((__v2sf) (a)))
+#define __ev_fsneg(a) ((__v2si) __builtin_spe_evfsneg ((__v2sf) (a)))
+#define __ev_fsadd(a, b) ((__v2si) __builtin_spe_evfsadd ((__v2sf) (a), (__v2sf) (b)))
+#define __ev_fssub(a, b) ((__v2si) __builtin_spe_evfssub ((__v2sf) (a), (__v2sf) (b)))
+#define __ev_fsmul(a, b) ((__v2si) __builtin_spe_evfsmul ((__v2sf) (a), (__v2sf) b))
+#define __ev_fsdiv(a, b) ((__v2si) __builtin_spe_evfsdiv ((__v2sf) (a), (__v2sf) b))
+#define __ev_fscfui(a) ((__v2si) __builtin_spe_evfscfui ((__v2si) (a)))
+#define __ev_fscfsi(a) ((__v2si) __builtin_spe_evfscfsi ((__v2sf) (a)))
+#define __ev_fscfuf(a) ((__v2si) __builtin_spe_evfscfuf ((__v2sf) (a)))
+#define __ev_fscfsf(a) ((__v2si) __builtin_spe_evfscfsf ((__v2sf) (a)))
+#define __ev_fsctui(a) ((__v2si) __builtin_spe_evfsctui ((__v2sf) (a)))
+#define __ev_fsctsi(a) ((__v2si) __builtin_spe_evfsctsi ((__v2sf) (a)))
+#define __ev_fsctuf(a) ((__v2si) __builtin_spe_evfsctuf ((__v2sf) (a)))
+#define __ev_fsctsf(a) ((__v2si) __builtin_spe_evfsctsf ((__v2sf) (a)))
+#define __ev_fsctuiz(a) ((__v2si) __builtin_spe_evfsctuiz ((__v2sf) (a)))
+#define __ev_fsctsiz(a) ((__v2si) __builtin_spe_evfsctsiz ((__v2sf) (a)))
/* NOT SUPPORTED IN FIRST e500, support via two instructions: */
@@ -332,7 +327,6 @@ typedef int __vector __ev64_opaque__;
#define __ev_mwhgsmfan(a, b) __internal_ev_mwhgsmfan ((__v2si) (a), (__v2si) (b))
#define __ev_mwhgsmian(a, b) __internal_ev_mwhgsmian ((__v2si) (a), (__v2si) (b))
#define __ev_mwhgumian(a, b) __internal_ev_mwhgumian ((__v2si) (a), (__v2si) (b))
-
#define __ev_mwhssiaaw(a, b) __internal_ev_mwhssiaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwhssfaaw(a, b) __internal_ev_mwhssfaaw ((__v2si) (a), (__v2si) (b))
#define __ev_mwhsmfaaw(a, b) __internal_ev_mwhsmfaaw ((__v2si) (a), (__v2si) (b))
@@ -352,7 +346,7 @@ __internal_ev_mwhssfaaw (__ev64_opaque__ a, __ev64_opaque__ b)
__ev64_opaque__ t;
t = __ev_mwhssf (a, b);
- return __ev_addssiaaw(t);
+ return __ev_addssiaaw (t);
}
static inline __ev64_opaque__
@@ -360,7 +354,7 @@ __internal_ev_mwhssiaaw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmi (a,b);
+ t = __ev_mwhsmi (a, b);
return __ev_addssiaaw (t);
}
@@ -369,7 +363,7 @@ __internal_ev_mwhsmfaaw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmf (a,b);
+ t = __ev_mwhsmf (a, b);
return __ev_addsmiaaw (t);
}
@@ -378,7 +372,7 @@ __internal_ev_mwhsmiaaw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmi (a,b);
+ t = __ev_mwhsmi (a, b);
return __ev_addsmiaaw (t);
}
@@ -387,7 +381,7 @@ __internal_ev_mwhusiaaw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhumi (a,b);
+ t = __ev_mwhumi (a, b);
return __ev_addusiaaw (t);
}
@@ -396,7 +390,7 @@ __internal_ev_mwhumiaaw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhumi (a,b);
+ t = __ev_mwhumi (a, b);
return __ev_addumiaaw (t);
}
@@ -405,7 +399,7 @@ __internal_ev_mwhssfanw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhssf (a,b);
+ t = __ev_mwhssf (a, b);
return __ev_subfssiaaw (t);
}
@@ -414,7 +408,7 @@ __internal_ev_mwhssianw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmi (a,b);
+ t = __ev_mwhsmi (a, b);
return __ev_subfssiaaw (t);
}
@@ -423,7 +417,7 @@ __internal_ev_mwhsmfanw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmf (a,b);
+ t = __ev_mwhsmf (a, b);
return __ev_subfsmiaaw (t);
}
@@ -432,7 +426,7 @@ __internal_ev_mwhsmianw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhsmi (a,b);
+ t = __ev_mwhsmi (a, b);
return __ev_subfsmiaaw (t);
}
@@ -441,7 +435,7 @@ __internal_ev_mwhusianw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhumi (a,b);
+ t = __ev_mwhumi (a, b);
return __ev_subfusiaaw (t);
}
@@ -450,7 +444,7 @@ __internal_ev_mwhumianw (__ev64_opaque__ a, __ev64_opaque__ b)
{
__ev64_opaque__ t;
- t = __ev_mwhumi (a,b);
+ t = __ev_mwhumi (a, b);
return __ev_subfumiaaw (t);
}
@@ -619,7 +613,7 @@ __ev_create_sfix32_fs (float a, float b)
__ev64_opaque__ ev;
ev = (__ev64_opaque__) __ev_create_fs (a, b);
- return (__ev64_opaque__) __builtin_spe_evfsctsf (ev);
+ return (__ev64_opaque__) __builtin_spe_evfsctsf ((__v2sf) ev);
}
static inline __ev64_opaque__
@@ -628,7 +622,7 @@ __ev_create_ufix32_fs (float a, float b)
__ev64_opaque__ ev;
ev = (__ev64_opaque__) __ev_create_fs (a, b);
- return (__ev64_opaque__) __builtin_spe_evfsctuf (ev);
+ return (__ev64_opaque__) __builtin_spe_evfsctuf ((__v2sf) ev);
}
static inline __ev64_opaque__
@@ -657,17 +651,26 @@ __ev_create_u64 (uint64_t a)
return u.v;
}
-#define __ev_convert_u64(a) ((uint64_t) (a))
-#define __ev_convert_s64(a) ((int64_t) (a))
+static inline uint64_t
+__ev_convert_u64 (__ev64_opaque__ a)
+{
+ return (uint64_t) a;
+}
+
+static inline int64_t
+__ev_convert_s64 (__ev64_opaque__ a)
+{
+ return (int64_t) a;
+}
/* __ev_get_* functions. */
-#define __ev_get_upper_u32(a) __ev_get_u32_internal ((__ev64_opaque__) a, 0)
-#define __ev_get_lower_u32(a) __ev_get_u32_internal ((__ev64_opaque__) a, 1)
-#define __ev_get_upper_s32(a) __ev_get_s32_internal ((__ev64_opaque__) a, 0)
-#define __ev_get_lower_s32(a) __ev_get_s32_internal ((__ev64_opaque__) a, 1)
-#define __ev_get_upper_fs(a) __ev_get_fs_internal ((__ev64_opaque__) a, 0)
-#define __ev_get_lower_fs(a) __ev_get_fs_internal ((__ev64_opaque__) a, 1)
+#define __ev_get_upper_u32(a) __ev_get_u32_internal ((__ev64_opaque__) (a), 0)
+#define __ev_get_lower_u32(a) __ev_get_u32_internal ((__ev64_opaque__) (a), 1)
+#define __ev_get_upper_s32(a) __ev_get_s32_internal ((__ev64_opaque__) (a), 0)
+#define __ev_get_lower_s32(a) __ev_get_s32_internal ((__ev64_opaque__) (a), 1)
+#define __ev_get_upper_fs(a) __ev_get_fs_internal ((__ev64_opaque__) (a), 0)
+#define __ev_get_lower_fs(a) __ev_get_fs_internal ((__ev64_opaque__) (a), 1)
#define __ev_get_upper_ufix32_u32(a) __ev_get_upper_u32(a)
#define __ev_get_lower_ufix32_u32(a) __ev_get_lower_u32(a)
#define __ev_get_upper_sfix32_s32(a) __ev_get_upper_s32(a)
@@ -677,11 +680,11 @@ __ev_create_u64 (uint64_t a)
#define __ev_get_upper_ufix32_fs(a) __ev_get_ufix32_fs (a, 0)
#define __ev_get_lower_ufix32_fs(a) __ev_get_ufix32_fs (a, 1)
-#define __ev_get_u32(a, b) __ev_get_u32_internal ((__ev64_opaque__) a, b)
-#define __ev_get_s32(a, b) __ev_get_s32_internal ((__ev64_opaque__) a, b)
-#define __ev_get_fs(a, b) __ev_get_fs_internal ((__ev64_opaque__) a, b)
-#define __ev_get_u16(a, b) __ev_get_u16_internal ((__ev64_opaque__) a, b)
-#define __ev_get_s16(a, b) __ev_get_s16_internal ((__ev64_opaque__) a, b)
+#define __ev_get_u32(a, b) __ev_get_u32_internal ((__ev64_opaque__) (a), b)
+#define __ev_get_s32(a, b) __ev_get_s32_internal ((__ev64_opaque__) (a), b)
+#define __ev_get_fs(a, b) __ev_get_fs_internal ((__ev64_opaque__) (a), b)
+#define __ev_get_u16(a, b) __ev_get_u16_internal ((__ev64_opaque__) (a), b)
+#define __ev_get_s16(a, b) __ev_get_s16_internal ((__ev64_opaque__) (a), b)
#define __ev_get_ufix32_u32(a, b) __ev_get_u32 (a, b)
#define __ev_get_sfix32_s32(a, b) __ev_get_s32 (a, b)
@@ -732,8 +735,8 @@ __ev_get_sfix32_fs_internal (__ev64_opaque__ a, uint32_t pos)
{
__ev64_fs__ v;
- v = __builtin_spe_evfscfsf (a);
- return __ev_get_fs_internal (v, pos);
+ v = __builtin_spe_evfscfsf ((__v2sf) a);
+ return __ev_get_fs_internal ((__ev64_opaque__) v, pos);
}
static inline float
@@ -741,8 +744,8 @@ __ev_get_ufix32_fs_internal (__ev64_opaque__ a, uint32_t pos)
{
__ev64_fs__ v;
- v = __builtin_spe_evfscfuf (a);
- return __ev_get_fs_internal (v, pos);
+ v = __builtin_spe_evfscfuf ((__v2sf) a);
+ return __ev_get_fs_internal ((__ev64_opaque__) v, pos);
}
static inline uint16_t
@@ -785,7 +788,7 @@ __ev_get_s16_internal (__ev64_opaque__ a, uint32_t pos)
#define __ev_set_sfix32_fs(a, b, c) __ev_set_sfix32_fs_internal ((__ev64_opaque__) (a), b, c)
#define __ev_set_ufix32_fs(a, b, c) __ev_set_ufix32_fs_internal ((__ev64_opaque__) (a), b, c)
-#define __ev_set_upper_u32(a, b) __ev_set_u32(a, b, 0)
+#define __ev_set_upper_u32(a, b) __ev_set_u32 (a, b, 0)
#define __ev_set_lower_u32(a, b) __ev_set_u32 (a, b, 1)
#define __ev_set_upper_s32(a, b) __ev_set_s32 (a, b, 0)
#define __ev_set_lower_s32(a, b) __ev_set_s32 (a, b, 1)
@@ -821,7 +824,7 @@ __ev_set_acc_s64 (int64_t a)
}
static inline __ev64_opaque__
-__ev_set_u32_internal (__ev64_opaque__ a, uint32_t b, uint32_t pos )
+__ev_set_u32_internal (__ev64_opaque__ a, uint32_t b, uint32_t pos)
{
union
{
@@ -835,7 +838,7 @@ __ev_set_u32_internal (__ev64_opaque__ a, uint32_t b, uint32_t pos )
}
static inline __ev64_opaque__
-__ev_set_s32_internal (__ev64_opaque__ a, int32_t b, uint32_t pos )
+__ev_set_s32_internal (__ev64_opaque__ a, int32_t b, uint32_t pos)
{
union
{
@@ -849,7 +852,7 @@ __ev_set_s32_internal (__ev64_opaque__ a, int32_t b, uint32_t pos )
}
static inline __ev64_opaque__
-__ev_set_fs_internal (__ev64_opaque__ a, float b, uint32_t pos )
+__ev_set_fs_internal (__ev64_opaque__ a, float b, uint32_t pos)
{
union
{
@@ -895,7 +898,7 @@ __ev_set_ufix32_fs_internal (__ev64_opaque__ a, float b, uint32_t pos)
}
static inline __ev64_opaque__
-__ev_set_u16_internal (__ev64_opaque__ a, uint16_t b, uint32_t pos )
+__ev_set_u16_internal (__ev64_opaque__ a, uint16_t b, uint32_t pos)
{
union
{
@@ -909,7 +912,7 @@ __ev_set_u16_internal (__ev64_opaque__ a, uint16_t b, uint32_t pos )
}
static inline __ev64_opaque__
-__ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos )
+__ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos)
{
union
{
@@ -929,136 +932,70 @@ __ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos )
#define __pred_upper 2
#define __pred_lower 3
-#define __ev_any_gts(a, b) \
- __builtin_spe_evcmpgts (__pred_any, (__v2si)(a), (__v2si)(b))
-#define __ev_all_gts(a, b) \
- __builtin_spe_evcmpgts (__pred_all, (__v2si)(a), (__v2si)(b))
-#define __ev_upper_gts(a, b) \
- __builtin_spe_evcmpgts (__pred_upper, (__v2si)(a), (__v2si)(b))
-#define __ev_lower_gts(a, b) \
- __builtin_spe_evcmpgts (__pred_lower, (__v2si)(a), (__v2si)(b))
-#define __ev_select_gts(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_gts ((__v2si)(a), (__v2si)(b), \
- (__v2si)(c), (__v2si)(d)))
-
-#define __ev_any_gtu(a, b) \
- __builtin_spe_evcmpgtu (__pred_any, (__v2si)(a), (__v2si)(b))
-#define __ev_all_gtu(a, b) \
- __builtin_spe_evcmpgtu (__pred_all, (__v2si)(a), (__v2si)(b))
-#define __ev_upper_gtu(a, b) \
- __builtin_spe_evcmpgtu (__pred_upper, (__v2si)(a), (__v2si)(b))
-#define __ev_lower_gtu(a, b) \
- __builtin_spe_evcmpgtu (__pred_lower, (__v2si)(a), (__v2si)(b))
-#define __ev_select_gtu(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_gtu ((__v2si)(a), (__v2si)(b), \
- (__v2si)(c), (__v2si)(d)))
-
-#define __ev_any_lts(a, b) \
- __builtin_spe_evcmplts (__pred_any, (__v2si)(a), (__v2si)(b))
-#define __ev_all_lts(a, b) \
- __builtin_spe_evcmplts (__pred_all, (__v2si)(a), (__v2si)(b))
-#define __ev_upper_lts(a, b) \
- __builtin_spe_evcmplts (__pred_upper, (__v2si)(a), (__v2si)(b))
-#define __ev_lower_lts(a, b) \
- __builtin_spe_evcmplts (__pred_lower, (__v2si)(a), (__v2si)(b))
-#define __ev_select_lts(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_lts ((__v2si)(a), (__v2si)(b), \
- (__v2si)(c), (__v2si)(d)))
-
-#define __ev_any_ltu(a, b) \
- __builtin_spe_evcmpltu (__pred_any, (__v2si)(a), (__v2si)(b))
-#define __ev_all_ltu(a, b) \
- __builtin_spe_evcmpltu (__pred_all, (__v2si)(a), (__v2si)(b))
-#define __ev_upper_ltu(a, b) \
- __builtin_spe_evcmpltu (__pred_upper, (__v2si)(a), (__v2si)(b))
-#define __ev_lower_ltu(a, b) \
- __builtin_spe_evcmpltu (__pred_lower, (__v2si)(a), (__v2si)(b))
-#define __ev_select_ltu(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_ltu ((__v2si)(a), (__v2si)(b), \
- (__v2si)(c), (__v2si)(d)))
-#define __ev_any_eq(a, b) \
- __builtin_spe_evcmpeq (__pred_any, (__v2si)(a), (__v2si)(b))
-#define __ev_all_eq(a, b) \
- __builtin_spe_evcmpeq (__pred_all, (__v2si)(a), (__v2si)(b))
-#define __ev_upper_eq(a, b) \
- __builtin_spe_evcmpeq (__pred_upper, (__v2si)(a), (__v2si)(b))
-#define __ev_lower_eq(a, b) \
- __builtin_spe_evcmpeq (__pred_lower, (__v2si)(a), (__v2si)(b))
-#define __ev_select_eq(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_eq ((__v2si)(a), (__v2si)(b), \
- (__v2si)(c), (__v2si)(d)))
-
-#define __ev_any_fs_gt(a, b) \
- __builtin_spe_evfscmpgt (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_gt(a, b) \
- __builtin_spe_evfscmpgt (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_gt(a, b) \
- __builtin_spe_evfscmpgt (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_gt(a, b) \
- __builtin_spe_evfscmpgt (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_gt(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fsgt ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
-
-#define __ev_any_fs_lt(a, b) \
- __builtin_spe_evfscmplt (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_lt(a, b) \
- __builtin_spe_evfscmplt (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_lt(a, b) \
- __builtin_spe_evfscmplt (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_lt(a, b) \
- __builtin_spe_evfscmplt (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_lt(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fslt ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
-
-#define __ev_any_fs_eq(a, b) \
- __builtin_spe_evfscmpeq (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_eq(a, b) \
- __builtin_spe_evfscmpeq (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_eq(a, b) \
- __builtin_spe_evfscmpeq (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_eq(a, b) \
- __builtin_spe_evfscmpeq (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_eq(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fseq ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
-
-#define __ev_any_fs_tst_gt(a, b) \
- __builtin_spe_evfststgt (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_tst_gt(a, b) \
- __builtin_spe_evfststgt (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_tst_gt(a, b) \
- __builtin_spe_evfststgt (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_tst_gt(a, b) \
- __builtin_spe_evfststgt (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_tst_gt(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fststgt ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
-
-#define __ev_any_fs_tst_lt(a, b) \
- __builtin_spe_evfststlt (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_tst_lt(a, b) \
- __builtin_spe_evfststlt (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_tst_lt(a, b) \
- __builtin_spe_evfststlt (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_tst_lt(a, b) \
- __builtin_spe_evfststlt (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_tst_lt(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fststlt ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
-
-#define __ev_any_fs_tst_eq(a, b) \
- __builtin_spe_evfststeq (__pred_any, (__v2sf)(a), (__v2sf)(b))
-#define __ev_all_fs_tst_eq(a, b) \
- __builtin_spe_evfststeq (__pred_all, (__v2sf)(a), (__v2sf)(b))
-#define __ev_upper_fs_tst_eq(a, b) \
- __builtin_spe_evfststeq (__pred_upper, (__v2sf)(a), (__v2sf)(b))
-#define __ev_lower_fs_tst_eq(a, b) \
- __builtin_spe_evfststeq (__pred_lower, (__v2sf)(a), (__v2sf)(b))
-#define __ev_select_fs_tst_eq(a, b, c, d) \
- ((__v2si) __builtin_spe_evsel_fststeq ((__v2sf)(a), (__v2sf)(b), \
- (__v2sf)(c), (__v2sf)(d)))
+#define __ev_any_gts(a, b) __builtin_spe_evcmpgts (__pred_any, (__v2si) (a), (__v2si) (b))
+#define __ev_all_gts(a, b) __builtin_spe_evcmpgts (__pred_all, (__v2si) (a), (__v2si) (b))
+#define __ev_upper_gts(a, b) __builtin_spe_evcmpgts (__pred_upper, (__v2si) (a), (__v2si) (b))
+#define __ev_lower_gts(a, b) __builtin_spe_evcmpgts (__pred_lower, (__v2si) (a), (__v2si) (b))
+#define __ev_select_gts(a, b, c, d) ((__v2si) __builtin_spe_evsel_gts ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))
+
+#define __ev_any_gtu(a, b) __builtin_spe_evcmpgtu (__pred_any, (__v2si) (a), (__v2si) (b))
+#define __ev_all_gtu(a, b) __builtin_spe_evcmpgtu (__pred_all, (__v2si) (a), (__v2si) (b))
+#define __ev_upper_gtu(a, b) __builtin_spe_evcmpgtu (__pred_upper, (__v2si) (a), (__v2si) (b))
+#define __ev_lower_gtu(a, b) __builtin_spe_evcmpgtu (__pred_lower, (__v2si) (a), (__v2si) (b))
+#define __ev_select_gtu(a, b, c, d) ((__v2si) __builtin_spe_evsel_gtu ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))
+
+#define __ev_any_lts(a, b) __builtin_spe_evcmplts (__pred_any, (__v2si) (a), (__v2si) (b))
+#define __ev_all_lts(a, b) __builtin_spe_evcmplts (__pred_all, (__v2si) (a), (__v2si) (b))
+#define __ev_upper_lts(a, b) __builtin_spe_evcmplts (__pred_upper, (__v2si) (a), (__v2si) (b))
+#define __ev_lower_lts(a, b) __builtin_spe_evcmplts (__pred_lower, (__v2si) (a), (__v2si) (b))
+#define __ev_select_lts(a, b, c, d) ((__v2si) __builtin_spe_evsel_lts ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))
+
+#define __ev_any_ltu(a, b) __builtin_spe_evcmpltu (__pred_any, (__v2si) (a), (__v2si) (b))
+#define __ev_all_ltu(a, b) __builtin_spe_evcmpltu (__pred_all, (__v2si) (a), (__v2si) (b))
+#define __ev_upper_ltu(a, b) __builtin_spe_evcmpltu (__pred_upper, (__v2si) (a), (__v2si) (b))
+#define __ev_lower_ltu(a, b) __builtin_spe_evcmpltu (__pred_lower, (__v2si) (a), (__v2si) (b))
+#define __ev_select_ltu(a, b, c, d) ((__v2si) __builtin_spe_evsel_ltu ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))
+#define __ev_any_eq(a, b) __builtin_spe_evcmpeq (__pred_any, (__v2si) (a), (__v2si) (b))
+#define __ev_all_eq(a, b) __builtin_spe_evcmpeq (__pred_all, (__v2si) (a), (__v2si) (b))
+#define __ev_upper_eq(a, b) __builtin_spe_evcmpeq (__pred_upper, (__v2si) (a), (__v2si) (b))
+#define __ev_lower_eq(a, b) __builtin_spe_evcmpeq (__pred_lower, (__v2si) (a), (__v2si) (b))
+#define __ev_select_eq(a, b, c, d) ((__v2si) __builtin_spe_evsel_eq ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))
+
+#define __ev_any_fs_gt(a, b) __builtin_spe_evfscmpgt (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_gt(a, b) __builtin_spe_evfscmpgt (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_gt(a, b) __builtin_spe_evfscmpgt (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_gt(a, b) __builtin_spe_evfscmpgt (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_gt(a, b, c, d) ((__v2si) __builtin_spe_evsel_fsgt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
+
+#define __ev_any_fs_lt(a, b) __builtin_spe_evfscmplt (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_lt(a, b) __builtin_spe_evfscmplt (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_lt(a, b) __builtin_spe_evfscmplt (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_lt(a, b) __builtin_spe_evfscmplt (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_lt(a, b, c, d) ((__v2si) __builtin_spe_evsel_fslt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
+
+#define __ev_any_fs_eq(a, b) __builtin_spe_evfscmpeq (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_eq(a, b) __builtin_spe_evfscmpeq (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_eq(a, b) __builtin_spe_evfscmpeq (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_eq(a, b) __builtin_spe_evfscmpeq (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_eq(a, b, c, d) ((__v2si) __builtin_spe_evsel_fseq ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
+
+#define __ev_any_fs_tst_gt(a, b) __builtin_spe_evfststgt (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_tst_gt(a, b) __builtin_spe_evfststgt (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_tst_gt(a, b) __builtin_spe_evfststgt (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_tst_gt(a, b) __builtin_spe_evfststgt (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_tst_gt(a, b, c, d) ((__v2si) __builtin_spe_evsel_fststgt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
+
+#define __ev_any_fs_tst_lt(a, b) __builtin_spe_evfststlt (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_tst_lt(a, b) __builtin_spe_evfststlt (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_tst_lt(a, b) __builtin_spe_evfststlt (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_tst_lt(a, b) __builtin_spe_evfststlt (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_tst_lt(a, b, c, d) ((__v2si) __builtin_spe_evsel_fststlt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
+
+#define __ev_any_fs_tst_eq(a, b) __builtin_spe_evfststeq (__pred_any, (__v2sf) (a), (__v2sf) (b))
+#define __ev_all_fs_tst_eq(a, b) __builtin_spe_evfststeq (__pred_all, (__v2sf) (a), (__v2sf) (b))
+#define __ev_upper_fs_tst_eq(a, b) __builtin_spe_evfststeq (__pred_upper, (__v2sf) (a), (__v2sf) (b))
+#define __ev_lower_fs_tst_eq(a, b) __builtin_spe_evfststeq (__pred_lower, (__v2sf) (a), (__v2sf) (b))
+#define __ev_select_fs_tst_eq(a, b, c, d) ((__v2si) __builtin_spe_evsel_fststeq ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))
/* SPEFSCR accesor functions. */
@@ -1070,7 +1007,7 @@ __ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos )
#define __SPEFSCR_FDBZH 0x04000000
#define __SPEFSCR_FUNFH 0x02000000
#define __SPEFSCR_FOVFH 0x01000000
-/* 2 unused bits */
+/* 2 unused bits. */
#define __SPEFSCR_FINXS 0x00200000
#define __SPEFSCR_FINVS 0x00100000
#define __SPEFSCR_FDBZS 0x00080000
@@ -1085,7 +1022,7 @@ __ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos )
#define __SPEFSCR_FDBZ 0x00000400
#define __SPEFSCR_FUNF 0x00000200
#define __SPEFSCR_FOVF 0x00000100
-/* 1 unused bit */
+/* 1 unused bit. */
#define __SPEFSCR_FINXE 0x00000040
#define __SPEFSCR_FINVE 0x00000020
#define __SPEFSCR_FDBZE 0x00000010
@@ -1144,8 +1081,8 @@ __ev_clr_spefscr_field (int mask)
rnd = 0 (nearest)
rnd = 1 (zero)
rnd = 2 (+inf)
- rnd = 3 (-inf)
-*/
+ rnd = 3 (-inf). */
+
static inline void
__ev_set_spefscr_frmc (int rnd)
{
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index 68fa73f7997..d10d8443b15 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -1,5 +1,5 @@
/* Target definitions for GNU compiler for PowerPC running System V.4
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -257,7 +257,8 @@ do { \
rs6000_sdata_name); \
} \
\
- if (rs6000_sdata != SDATA_NONE && DEFAULT_ABI != ABI_V4) \
+ if ((rs6000_sdata != SDATA_NONE && DEFAULT_ABI != ABI_V4) \
+ || (rs6000_sdata == SDATA_EABI && !TARGET_EABI)) \
{ \
rs6000_sdata = SDATA_NONE; \
error ("-msdata=%s and -mcall-%s are incompatible", \
@@ -328,7 +329,7 @@ do { \
/* Define this to set the endianness to use in libgcc2.c, which can
not depend on target_flags. */
-#if !defined(_LITTLE_ENDIAN) && !defined(__sun__)
+#if !defined(__LITTLE_ENDIAN__) && !defined(__sun__)
#define LIBGCC2_WORDS_BIG_ENDIAN 1
#else
#define LIBGCC2_WORDS_BIG_ENDIAN 0
@@ -382,6 +383,21 @@ do { \
#undef STACK_BOUNDARY
#define STACK_BOUNDARY (TARGET_ALTIVEC_ABI ? 128 : 64)
+/* Define this macro if you wish to preserve a certain alignment for
+ the stack pointer, greater than what the hardware enforces. The
+ definition is a C expression for the desired alignment (measured
+ in bits). This macro must evaluate to a value equal to or larger
+ than STACK_BOUNDARY.
+ For the SYSV ABI and variants the alignment of the stack pointer
+ is usually controlled manually in rs6000.c. However, to maintain
+ alignment across alloca () in all circumstances,
+ PREFERRED_STACK_BOUNDARY needs to be set as well.
+ This has the additional advantage of allowing a bigger maximum
+ alignment of user objects on the stack. */
+
+#undef PREFERRED_STACK_BOUNDARY
+#define PREFERRED_STACK_BOUNDARY 128
+
/* Real stack boundary as mandated by the appropriate ABI. */
#define ABI_STACK_BOUNDARY ((TARGET_EABI && !TARGET_ALTIVEC_ABI) ? 64 : 128)
@@ -683,12 +699,12 @@ do { \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \
} \
+ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
} while (0)
/* Describe how to emit uninitialized external linkage items. */
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
do { \
- (*targetm.asm_out.globalize_label) (FILE, NAME); \
ASM_OUTPUT_ALIGNED_LOCAL (FILE, NAME, SIZE, ALIGN); \
} while (0)
@@ -1094,7 +1110,7 @@ do { \
/* FreeBSD support. */
#define CPP_OS_FREEBSD_SPEC "\
- -D__PPC__ -D__ppc__ -D__PowerPC__ -D__powerpc__ \
+ -D__ELF__ -D__PPC__ -D__ppc__ -D__PowerPC__ -D__powerpc__ \
-Acpu=powerpc -Amachine=powerpc"
#define STARTFILE_FREEBSD_SPEC FBSD_STARTFILE_SPEC
@@ -1103,7 +1119,17 @@ do { \
#define LINK_START_FREEBSD_SPEC ""
#define LINK_OS_FREEBSD_SPEC "\
- %{symbolic:-Bsymbolic}"
+ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
+ %{Wl,*:%*} \
+ %{v:-V} \
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
+ %{shared:-Bshareable %{h*} %{soname*}} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic: -export-dynamic} \
+ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
+ %{static:-Bstatic}} \
+ %{symbolic:-Bsymbolic}"
/* GNU/Linux support. */
#ifdef USE_GNULIBC_1
@@ -1111,7 +1137,7 @@ do { \
%{!mnewlib: -lc }"
#else
#define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \
-%{!mnewlib: %{shared:-lc} %{!shared: %{pthread:-lpthread } \
+%{!mnewlib: %{pthread:-lpthread} %{shared:-lc} %{!shared: \
%{profile:-lc_p} %{!profile:-lc}}}"
#endif
@@ -1205,6 +1231,21 @@ ncrtn.o%s"
#define CPP_OS_NETBSD_SPEC "\
-D__powerpc__ -D__NetBSD__ -D__ELF__ -D__KPRINTF_ATTRIBUTE__"
+/* RTEMS support. */
+
+#define CPP_OS_RTEMS_SPEC "\
+%{!mcpu*: %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\
+%{mcpu=403: %{!Dppc*: %{!Dmpc*: -Dppc403} } } \
+%{mcpu=505: %{!Dppc*: %{!Dmpc*: -Dmpc505} } } \
+%{mcpu=601: %{!Dppc*: %{!Dmpc*: -Dppc601} } } \
+%{mcpu=602: %{!Dppc*: %{!Dmpc*: -Dppc602} } } \
+%{mcpu=603: %{!Dppc*: %{!Dmpc*: -Dppc603} } } \
+%{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \
+%{mcpu=604: %{!Dppc*: %{!Dmpc*: -Dmpc604} } } \
+%{mcpu=750: %{!Dppc*: %{!Dmpc*: -Dmpc750} } } \
+%{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \
+%{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } }"
+
/* VxWorks support. */
/* VxWorks does all the library stuff itself. */
#define LIB_VXWORKS_SPEC ""
@@ -1343,6 +1384,7 @@ ncrtn.o%s"
{ "cpp_os_gnu", CPP_OS_GNU_SPEC }, \
{ "cpp_os_linux", CPP_OS_LINUX_SPEC }, \
{ "cpp_os_netbsd", CPP_OS_NETBSD_SPEC }, \
+ { "cpp_os_rtems", CPP_OS_RTEMS_SPEC }, \
{ "cpp_os_vxworks", CPP_OS_VXWORKS_SPEC }, \
{ "cpp_os_windiss", CPP_OS_WINDISS_SPEC }, \
{ "cpp_os_default", CPP_OS_DEFAULT_SPEC },
diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43
index 1acccf64d10..a716209e9bc 100644
--- a/gcc/config/rs6000/t-aix43
+++ b/gcc/config/rs6000/t-aix43
@@ -55,7 +55,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
rm -f @multilib_dir@/shr.o
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(slibdir)/
+SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/rs6000/t-aix52 b/gcc/config/rs6000/t-aix52
index 97e1e079508..bddcdb11490 100644
--- a/gcc/config/rs6000/t-aix52
+++ b/gcc/config/rs6000/t-aix52
@@ -36,7 +36,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
rm -f @multilib_dir@/shr.o
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(slibdir)/
+SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.a $$(DESTDIR)$$(slibdir)/
SHLIB_LIBS = -lc `case @shlib_base_name@ in *pthread*) echo -lpthread ;; esac`
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
index 48b61505bf1..af7b44bd70b 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -5,6 +5,9 @@ TARGET_LIBGCC2_CFLAGS =
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
crtsavres.o
+# These functions are needed for soft-float on powerpc64-linux.
+LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c
+
# ld provides these functions as needed.
crtsavres.S:
echo >crtsavres.S
diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
new file mode 100644
index 00000000000..364a22d2278
--- /dev/null
+++ b/gcc/config/rs6000/t-rtems
@@ -0,0 +1,86 @@
+# Multilibs for powerpc RTEMS targets.
+
+MULTILIB_OPTIONS = \
+mcpu=403/mcpu=505/mcpu=601/mcpu=602/mcpu=603/mcpu=603e/mcpu=604/mcpu=750/mcpu=821/mcpu=860 \
+Dmpc509/Dmpc8260 \
+D_OLD_EXCEPTIONS \
+msoft-float
+
+MULTILIB_DIRNAMES = \
+m403 m505 m601 m602 m603 m603e m604 m750 m821 m860 \
+mpc509 \
+mpc8260 \
+roe \
+nof
+
+MULTILIB_EXTRA_OPTS = mrelocatable-lib mno-eabi mstrict-align
+
+# MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT}
+MULTILIB_MATCHES = ${MULTILIB_MATCHES_ENDIAN} \
+ ${MULTILIB_MATCHES_SYSV} \
+ mcpu?505/Dmpc505=mcpu?505/Dmpc509
+
+#
+# RTEMS old/new-exceptions handling
+#
+# old-exception processing is depredicated, therefore
+#
+# * Cpu-variants supporting new exception processing are build
+# with new exception processing only
+# * Cpu-variants not having been ported to new exception processing are
+# build with old and new exception processing
+#
+
+# Cpu-variants supporting new exception processing only
+MULTILIB_NEW_EXCEPTIONS_ONLY = \
+*mcpu=604*/*D_OLD_EXCEPTIONS* \
+*mcpu=750*/*D_OLD_EXCEPTIONS* \
+*mcpu=821*/*D_OLD_EXCEPTIONS* \
+*Dmpc8260*/*D_OLD_EXCEPTIONS* \
+*mcpu=860*/*D_OLD_EXCEPTIONS*
+
+# Soft-float only, default implies msoft-float
+# NOTE: Must match with MULTILIB_MATCHES_FLOAT and MULTILIB_MATCHES
+MULTILIB_SOFTFLOAT_ONLY = \
+mcpu=403/*msoft-float* \
+mcpu=821/*msoft-float* \
+mcpu=860/*msoft-float*
+
+# Hard-float only, take out msoft-float
+MULTILIB_HARDFLOAT_ONLY = \
+mcpu=505/*msoft-float*
+
+MULTILIB_EXCEPTIONS =
+
+# Disallow -D_OLD_EXCEPTIONS without other options
+MULTILIB_EXCEPTIONS += D_OLD_EXCEPTIONS*
+
+# Disallow -Dppc and -Dmpc without other options
+MULTILIB_EXCEPTIONS += Dppc* Dmpc*
+
+MULTILIB_EXCEPTIONS += \
+${MULTILIB_NEW_EXCEPTIONS_ONLY} \
+${MULTILIB_SOFTFLOAT_ONLY} \
+${MULTILIB_HARDFLOAT_ONLY}
+
+# Special rules
+# Take out all variants we don't want
+MULTILIB_EXCEPTIONS += mcpu=403/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=403/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=505/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=505/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=601/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=601/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=602/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=602/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=603/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=603/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=603e/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=604/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=604/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=750/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=750/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=821/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=821/Dmpc8260*
+MULTILIB_EXCEPTIONS += mcpu=860/Dmpc509*
+MULTILIB_EXCEPTIONS += mcpu=860/Dmpc8260*
diff --git a/gcc/config/rtems.h b/gcc/config/rtems.h
index a3f9ba301b4..a40e474ee8d 100644
--- a/gcc/config/rtems.h
+++ b/gcc/config/rtems.h
@@ -1,7 +1,7 @@
/* Configuration common to all targets running RTEMS.
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
-This file is part of GNU CC.
+This file is part of GCC.
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
@@ -35,3 +35,17 @@ Boston, MA 02111-1307, USA. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC ""
+
+/*
+ * Some targets do not set up LIB_SPECS, override it, here.
+ */
+#define STD_LIB_SPEC \
+ "%{!shared:%{g*:-lg} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}}"
+
+#undef LIB_SPEC
+#define LIB_SPEC "%{!qrtems: " STD_LIB_SPEC "} " \
+"%{!nostdlib: %{qrtems: --start-group \
+ %{!qrtems_debug: -lrtemsbsp -lrtemscpu} \
+ %{qrtems_debug: -lrtemsbsp_g -lrtemscpu_g} \
+ -lc -lgcc --end-group %{!qnolinkcmds: -T linkcmds%s}}}"
+
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index cbb771099dc..cf0b37ec1b8 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -122,6 +122,12 @@ Boston, MA 02111-1307, USA. */
{ "link_arch31", LINK_ARCH31_SPEC }, \
{ "link_arch64", LINK_ARCH64_SPEC }, \
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
diff --git a/gcc/config/s390/s390-protos.h b/gcc/config/s390/s390-protos.h
index deecef6b969..f11adc23878 100644
--- a/gcc/config/s390/s390-protos.h
+++ b/gcc/config/s390/s390-protos.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390.
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com)
This file is part of GNU CC.
@@ -43,13 +43,17 @@ extern int s390_single_hi PARAMS ((rtx, enum machine_mode, int));
extern int s390_extract_hi PARAMS ((rtx, enum machine_mode, int));
extern int s390_single_qi PARAMS ((rtx, enum machine_mode, int));
extern int s390_extract_qi PARAMS ((rtx, enum machine_mode, int));
+extern bool s390_split_ok_p PARAMS ((rtx, rtx, enum machine_mode, int));
+extern int tls_symbolic_operand PARAMS ((rtx));
extern int s390_match_ccmode PARAMS ((rtx, enum machine_mode));
extern enum machine_mode s390_tm_ccmode PARAMS ((rtx, rtx, int));
extern enum machine_mode s390_select_ccmode PARAMS ((enum rtx_code, rtx, rtx));
extern int symbolic_reference_mentioned_p PARAMS ((rtx));
+extern int tls_symbolic_reference_mentioned_p PARAMS ((rtx));
+extern rtx s390_tls_get_offset PARAMS ((void));
extern int legitimate_la_operand_p PARAMS ((rtx));
-extern int preferred_la_operand_p PARAMS ((rtx, int));
+extern int preferred_la_operand_p PARAMS ((rtx));
extern int legitimate_pic_operand_p PARAMS ((rtx));
extern int legitimate_constant_p PARAMS ((rtx));
extern int legitimate_reload_constant_p PARAMS ((rtx));
@@ -58,13 +62,14 @@ extern rtx legitimize_pic_address PARAMS ((rtx, rtx));
extern rtx legitimize_address PARAMS ((rtx, rtx, enum machine_mode));
extern enum reg_class s390_preferred_reload_class PARAMS ((rtx, enum reg_class));
extern enum reg_class s390_secondary_input_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx));
+extern enum reg_class s390_secondary_output_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx));
extern int s390_plus_operand PARAMS ((rtx, enum machine_mode));
extern void s390_expand_plus_operand PARAMS ((rtx, rtx, rtx));
-extern void emit_pic_move PARAMS ((rtx *, enum machine_mode));
+extern void emit_symbolic_move PARAMS ((rtx *));
extern void s390_load_address PARAMS ((rtx, rtx));
extern void s390_expand_movstr PARAMS ((rtx, rtx, rtx));
extern void s390_expand_clrstr PARAMS ((rtx, rtx));
-extern void s390_expand_cmpstr PARAMS ((rtx, rtx, rtx, rtx));
+extern void s390_expand_cmpmem PARAMS ((rtx, rtx, rtx, rtx));
extern rtx s390_return_addr_rtx PARAMS ((int, rtx));
extern void s390_output_symbolic_const PARAMS ((FILE *, rtx));
@@ -74,6 +79,7 @@ extern void s390_output_constant_pool PARAMS ((rtx, rtx));
extern void s390_trampoline_template PARAMS ((FILE *));
extern void s390_initialize_trampoline PARAMS ((rtx, rtx, rtx));
extern rtx s390_gen_rtx_const_DI PARAMS ((int, int));
+extern void s390_output_dwarf_dtprel PARAMS ((FILE *, int, rtx));
extern rtx s390_simplify_dwarf_addr PARAMS ((rtx));
extern void s390_machine_dependent_reorg PARAMS ((rtx));
#endif /* RTX_CODE */
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 3f6ec452b1c..6ef79c92fc3 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -1,5 +1,5 @@
/* Subroutines used for code generation on IBM S/390 and zSeries
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
@@ -54,6 +54,11 @@ static int s390_adjust_priority PARAMS ((rtx, int));
static void s390_select_rtx_section PARAMS ((enum machine_mode, rtx,
unsigned HOST_WIDE_INT));
static void s390_encode_section_info PARAMS ((tree, int));
+static const char *s390_strip_name_encoding PARAMS ((const char *));
+static bool s390_cannot_force_const_mem PARAMS ((rtx));
+static void s390_init_builtins PARAMS ((void));
+static rtx s390_expand_builtin PARAMS ((tree, rtx, rtx,
+ enum machine_mode, int));
static void s390_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
HOST_WIDE_INT, tree));
@@ -81,6 +86,20 @@ static void s390_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
#undef TARGET_ENCODE_SECTION_INFO
#define TARGET_ENCODE_SECTION_INFO s390_encode_section_info
+#undef TARGET_STRIP_NAME_ENCODING
+#define TARGET_STRIP_NAME_ENCODING s390_strip_name_encoding
+
+#ifdef HAVE_AS_TLS
+#undef TARGET_HAVE_TLS
+#define TARGET_HAVE_TLS true
+#endif
+#undef TARGET_CANNOT_FORCE_CONST_MEM
+#define TARGET_CANNOT_FORCE_CONST_MEM s390_cannot_force_const_mem
+
+#undef TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS s390_init_builtins
+#undef TARGET_EXPAND_BUILTIN
+#define TARGET_EXPAND_BUILTIN s390_expand_builtin
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK s390_output_mi_thunk
@@ -98,6 +117,9 @@ static int s390_sr_alias_set = 0;
emitted. */
rtx s390_compare_op0, s390_compare_op1;
+/* The encoding characters for the four TLS models present in ELF. */
+static char const tls_model_chars[] = " GLil";
+
/* Structure used to hold the components of a S/390 memory
address. A legitimate address on S/390 is of the general
form
@@ -132,6 +154,9 @@ struct machine_function GTY(())
/* Size of stack frame. */
HOST_WIDE_INT frame_size;
+
+ /* Some local-dynamic TLS symbol name. */
+ const char *some_ld_name;
};
static int s390_match_ccmode_set PARAMS ((rtx, enum machine_mode));
@@ -140,6 +165,10 @@ static const char *s390_branch_condition_mnemonic PARAMS ((rtx, int));
static int check_mode PARAMS ((rtx, enum machine_mode *));
static int general_s_operand PARAMS ((rtx, enum machine_mode, int));
static int s390_decompose_address PARAMS ((rtx, struct s390_address *));
+static rtx get_thread_pointer PARAMS ((void));
+static rtx legitimize_tls_address PARAMS ((rtx, rtx));
+static const char *get_some_local_dynamic_name PARAMS ((void));
+static int get_some_local_dynamic_name_1 PARAMS ((rtx *, void *));
static int reg_used_in_mem_p PARAMS ((int, rtx));
static int addr_generation_dependency_p PARAMS ((rtx, rtx));
static int s390_split_branches PARAMS ((rtx, bool *));
@@ -805,6 +834,42 @@ s390_extract_qi (op, mode, part)
abort ();
}
+/* Check whether we can (and want to) split a double-word
+ move in mode MODE from SRC to DST into two single-word
+ moves, moving the subword FIRST_SUBWORD first. */
+
+bool
+s390_split_ok_p (dst, src, mode, first_subword)
+ rtx dst;
+ rtx src;
+ enum machine_mode mode;
+ int first_subword;
+{
+ /* Floating point registers cannot be split. */
+ if (FP_REG_P (src) || FP_REG_P (dst))
+ return false;
+
+ /* We don't need to split if operands are directly accessable. */
+ if (s_operand (src, mode) || s_operand (dst, mode))
+ return false;
+
+ /* Non-offsettable memory references cannot be split. */
+ if ((GET_CODE (src) == MEM && !offsettable_memref_p (src))
+ || (GET_CODE (dst) == MEM && !offsettable_memref_p (dst)))
+ return false;
+
+ /* Moving the first subword must not clobber a register
+ needed to move the second subword. */
+ if (register_operand (dst, mode))
+ {
+ rtx subreg = operand_subword (dst, first_subword, 0, mode);
+ if (reg_overlap_mentioned_p (subreg, src))
+ return false;
+ }
+
+ return true;
+}
+
/* Change optimizations to be performed, depending on the
optimization level.
@@ -910,6 +975,8 @@ larl_operand (op, mode)
if (GET_CODE (op) == LABEL_REF)
return 1;
if (GET_CODE (op) == SYMBOL_REF
+ && XSTR (op, 0)[0] != '@'
+ && !tls_symbolic_operand (op)
&& (!flag_pic || SYMBOL_REF_FLAG (op)
|| CONSTANT_POOL_ADDRESS_P (op)))
return 1;
@@ -932,17 +999,23 @@ larl_operand (op, mode)
if (GET_CODE (op) == LABEL_REF)
return 1;
if (GET_CODE (op) == SYMBOL_REF
+ && XSTR (op, 0)[0] != '@'
+ && !tls_symbolic_operand (op)
&& (!flag_pic || SYMBOL_REF_FLAG (op)
|| CONSTANT_POOL_ADDRESS_P (op)))
return 1;
- /* Now we must have a @GOTENT offset or @PLT stub. */
+ /* Now we must have a @GOTENT offset or @PLT stub
+ or an @INDNTPOFF TLS offset. */
if (GET_CODE (op) == UNSPEC
&& XINT (op, 1) == 111)
return 1;
if (GET_CODE (op) == UNSPEC
&& XINT (op, 1) == 113)
return 1;
+ if (GET_CODE (op) == UNSPEC
+ && XINT (op, 1) == UNSPEC_INDNTPOFF)
+ return 1;
return 0;
}
@@ -1091,6 +1164,23 @@ bras_sym_operand (op, mode)
return 0;
}
+/* If OP is a SYMBOL_REF of a thread-local symbol, return its TLS mode,
+ otherwise return 0. */
+
+int
+tls_symbolic_operand (op)
+ register rtx op;
+{
+ const char *symbol_str;
+
+ if (GET_CODE (op) != SYMBOL_REF)
+ return 0;
+ symbol_str = XSTR (op, 0);
+
+ if (symbol_str[0] != '%')
+ return 0;
+ return strchr (tls_model_chars, symbol_str[1]) - tls_model_chars;
+}
/* Return true if OP is a load multiple operation. It is known to be a
PARALLEL and the first section will be tested.
@@ -1250,6 +1340,37 @@ symbolic_reference_mentioned_p (op)
return 0;
}
+/* Return true if OP contains a reference to a thread-local symbol. */
+
+int
+tls_symbolic_reference_mentioned_p (op)
+ rtx op;
+{
+ register const char *fmt;
+ register int i;
+
+ if (GET_CODE (op) == SYMBOL_REF)
+ return tls_symbolic_operand (op);
+
+ fmt = GET_RTX_FORMAT (GET_CODE (op));
+ for (i = GET_RTX_LENGTH (GET_CODE (op)) - 1; i >= 0; i--)
+ {
+ if (fmt[i] == 'E')
+ {
+ register int j;
+
+ for (j = XVECLEN (op, i) - 1; j >= 0; j--)
+ if (tls_symbolic_reference_mentioned_p (XVECEXP (op, i, j)))
+ return 1;
+ }
+
+ else if (fmt[i] == 'e' && tls_symbolic_reference_mentioned_p (XEXP (op, i)))
+ return 1;
+ }
+
+ return 0;
+}
+
/* Return true if OP is a legitimate general operand when
generating PIC code. It is given that flag_pic is on
@@ -1264,7 +1385,7 @@ legitimate_pic_operand_p (op)
return 1;
/* Reject everything else; must be handled
- via emit_pic_move. */
+ via emit_symbolic_move. */
return 0;
}
@@ -1279,22 +1400,87 @@ legitimate_constant_p (op)
if (!SYMBOLIC_CONST (op))
return 1;
+ /* Accept immediate LARL operands. */
+ if (TARGET_64BIT && larl_operand (op, VOIDmode))
+ return 1;
+
+ /* Thread-local symbols are never legal constants. This is
+ so that emit_call knows that computing such addresses
+ might require a function call. */
+ if (TLS_SYMBOLIC_CONST (op))
+ return 0;
+
/* In the PIC case, symbolic constants must *not* be
forced into the literal pool. We accept them here,
- so that they will be handled by emit_pic_move. */
+ so that they will be handled by emit_symbolic_move. */
if (flag_pic)
return 1;
- /* Even in the non-PIC case, we can accept immediate
- LARL operands here. */
- if (TARGET_64BIT)
- return larl_operand (op, VOIDmode);
-
/* All remaining non-PIC symbolic constants are
forced into the literal pool. */
return 0;
}
+/* Determine if it's legal to put X into the constant pool. This
+ is not possible if X contains the address of a symbol that is
+ not constant (TLS) or not known at final link time (PIC). */
+
+static bool
+s390_cannot_force_const_mem (x)
+ rtx x;
+{
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+ case CONST_DOUBLE:
+ /* Accept all non-symbolic constants. */
+ return false;
+
+ case LABEL_REF:
+ /* Labels are OK iff we are non-PIC. */
+ return flag_pic != 0;
+
+ case SYMBOL_REF:
+ /* 'Naked' TLS symbol references are never OK,
+ non-TLS symbols are OK iff we are non-PIC. */
+ if (tls_symbolic_operand (x))
+ return true;
+ else
+ return flag_pic != 0;
+
+ case CONST:
+ return s390_cannot_force_const_mem (XEXP (x, 0));
+ case PLUS:
+ case MINUS:
+ return s390_cannot_force_const_mem (XEXP (x, 0))
+ || s390_cannot_force_const_mem (XEXP (x, 1));
+
+ case UNSPEC:
+ switch (XINT (x, 1))
+ {
+ /* Only lt-relative or GOT-relative UNSPECs are OK. */
+ case 100:
+ case 104:
+ case 112:
+ case 114:
+ case UNSPEC_TLSGD:
+ case UNSPEC_TLSLDM:
+ case UNSPEC_NTPOFF:
+ case UNSPEC_DTPOFF:
+ case UNSPEC_GOTNTPOFF:
+ case UNSPEC_INDNTPOFF:
+ return false;
+
+ default:
+ return true;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+}
+
/* Returns true if the constant value OP is a legitimate general
operand during and after reload. The difference to
legitimate_constant_p is that this function will not accept
@@ -1341,23 +1527,14 @@ s390_preferred_reload_class (op, class)
switch (GET_CODE (op))
{
/* Constants we cannot reload must be forced into the
- literal pool. For constants we *could* handle directly,
- it might still be preferable to put them in the pool and
- use a memory-to-memory instruction.
-
- However, try to avoid needlessly allocating a literal
- pool in a routine that wouldn't otherwise need any.
- Heuristically, we assume that 64-bit leaf functions
- typically don't need a literal pool, all others do. */
+ literal pool. */
+
case CONST_DOUBLE:
case CONST_INT:
- if (!legitimate_reload_constant_p (op))
- return NO_REGS;
-
- if (TARGET_64BIT && current_function_is_leaf)
+ if (legitimate_reload_constant_p (op))
return class;
-
- return NO_REGS;
+ else
+ return NO_REGS;
/* If a symbolic constant or a PLUS is reloaded,
it is most likely being used as an address, so
@@ -1397,6 +1574,29 @@ s390_secondary_input_reload_class (class, mode, in)
return NO_REGS;
}
+/* Return the register class of a scratch register needed to
+ store a register of class CLASS in MODE into OUT:
+
+ We need a temporary when storing a double-word to a
+ non-offsettable memory address. */
+
+enum reg_class
+s390_secondary_output_reload_class (class, mode, out)
+ enum reg_class class;
+ enum machine_mode mode;
+ rtx out;
+{
+ if ((TARGET_64BIT ? mode == TImode
+ : (mode == DImode || mode == DFmode))
+ && reg_classes_intersect_p (GENERAL_REGS, class)
+ && GET_CODE (out) == MEM
+ && !offsettable_memref_p (out)
+ && !s_operand (out, VOIDmode))
+ return ADDR_REGS;
+
+ return NO_REGS;
+}
+
/* Return true if OP is a PLUS that is not a legitimate
operand for the LA instruction.
OP is the current operation.
@@ -1546,6 +1746,22 @@ s390_decompose_address (addr, out)
disp = addr; /* displacement */
+ /* Prefer to use pointer as base, not index. */
+ if (base && indx)
+ {
+ int base_ptr = GET_CODE (base) == UNSPEC
+ || (REG_P (base) && REG_POINTER (base));
+ int indx_ptr = GET_CODE (indx) == UNSPEC
+ || (REG_P (indx) && REG_POINTER (indx));
+
+ if (!base_ptr && indx_ptr)
+ {
+ rtx tmp = base;
+ base = indx;
+ indx = tmp;
+ }
+ }
+
/* Validate base register. */
if (base)
{
@@ -1624,10 +1840,11 @@ s390_decompose_address (addr, out)
}
/* In the small-PIC case, the linker converts @GOT12
- offsets to possible displacements. */
+ and @GOTNTPOFF offsets to possible displacements. */
else if (GET_CODE (disp) == CONST
&& GET_CODE (XEXP (disp, 0)) == UNSPEC
- && XINT (XEXP (disp, 0), 1) == 110)
+ && (XINT (XEXP (disp, 0), 1) == 110
+ || XINT (XEXP (disp, 0), 1) == UNSPEC_GOTNTPOFF))
{
if (flag_pic != 1)
return FALSE;
@@ -1677,12 +1894,6 @@ s390_decompose_address (addr, out)
|| !CONSTANT_POOL_ADDRESS_P (disp))
return FALSE;
- /* In 64-bit PIC mode we cannot accept symbolic
- constants in the constant pool. */
- if (TARGET_64BIT && flag_pic
- && SYMBOLIC_CONST (get_pool_constant (disp)))
- return FALSE;
-
/* If we have an offset, make sure it does not
exceed the size of the constant pool entry. */
if (offset && offset >= GET_MODE_SIZE (get_pool_mode (disp)))
@@ -1773,14 +1984,11 @@ legitimate_la_operand_p (op)
}
/* Return 1 if OP is a valid operand for the LA instruction,
- and we prefer to use LA over addition to compute it.
- If STRICT is true, only accept operands that will never
- change to something we cannot recognize as preferred. */
+ and we prefer to use LA over addition to compute it. */
int
-preferred_la_operand_p (op, strict)
+preferred_la_operand_p (op)
register rtx op;
- int strict;
{
struct s390_address addr;
if (!s390_decompose_address (op, &addr))
@@ -1792,10 +2000,9 @@ preferred_la_operand_p (op, strict)
if (addr.pointer)
return TRUE;
- if (!strict)
- if ((addr.base && REG_P (addr.base) && REG_POINTER (addr.base))
- || (addr.indx && REG_P (addr.indx) && REG_POINTER (addr.indx)))
- return TRUE;
+ if ((addr.base && REG_P (addr.base) && REG_POINTER (addr.base))
+ || (addr.indx && REG_P (addr.indx) && REG_POINTER (addr.indx)))
+ return TRUE;
return FALSE;
}
@@ -1848,7 +2055,7 @@ legitimize_pic_address (orig, reg)
|| CONSTANT_POOL_ADDRESS_P (addr))))
{
/* This is a local symbol. */
- if (TARGET_64BIT)
+ if (TARGET_64BIT && larl_operand (addr, VOIDmode))
{
/* Access local symbols PC-relative via LARL.
This is the same as in the non-PIC case, so it is
@@ -1860,9 +2067,9 @@ legitimize_pic_address (orig, reg)
rtx temp = reg? reg : gen_reg_rtx (Pmode);
- addr = gen_rtx_UNSPEC (SImode, gen_rtvec (1, addr), 100);
- addr = gen_rtx_CONST (SImode, addr);
- addr = force_const_mem (SImode, addr);
+ addr = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), 100);
+ addr = gen_rtx_CONST (Pmode, addr);
+ addr = force_const_mem (Pmode, addr);
emit_move_insn (temp, addr);
base = gen_rtx_REG (Pmode, BASE_REGISTER);
@@ -1923,9 +2130,9 @@ legitimize_pic_address (orig, reg)
if (reload_in_progress || reload_completed)
regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
- addr = gen_rtx_UNSPEC (SImode, gen_rtvec (1, addr), 112);
- addr = gen_rtx_CONST (SImode, addr);
- addr = force_const_mem (SImode, addr);
+ addr = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), 112);
+ addr = gen_rtx_CONST (Pmode, addr);
+ addr = force_const_mem (Pmode, addr);
emit_move_insn (temp, addr);
new = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, temp);
@@ -1951,7 +2158,7 @@ legitimize_pic_address (orig, reg)
case 100:
case 112:
case 114:
- new = force_const_mem (SImode, orig);
+ new = force_const_mem (Pmode, orig);
break;
/* @GOTENT is OK as is. */
@@ -1966,9 +2173,9 @@ legitimize_pic_address (orig, reg)
rtx temp = reg? reg : gen_reg_rtx (Pmode);
addr = XVECEXP (addr, 0, 0);
- addr = gen_rtx_UNSPEC (SImode, gen_rtvec (1, addr), 114);
- addr = gen_rtx_CONST (SImode, addr);
- addr = force_const_mem (SImode, addr);
+ addr = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), 114);
+ addr = gen_rtx_CONST (Pmode, addr);
+ addr = force_const_mem (Pmode, addr);
emit_move_insn (temp, addr);
base = gen_rtx_REG (Pmode, BASE_REGISTER);
@@ -2002,7 +2209,7 @@ legitimize_pic_address (orig, reg)
|| CONSTANT_POOL_ADDRESS_P (op0))))
&& GET_CODE (op1) == CONST_INT)
{
- if (TARGET_64BIT)
+ if (TARGET_64BIT && larl_operand (op0, VOIDmode))
{
if (INTVAL (op1) & 1)
{
@@ -2039,10 +2246,10 @@ legitimize_pic_address (orig, reg)
rtx temp = reg? reg : gen_reg_rtx (Pmode);
- addr = gen_rtx_UNSPEC (SImode, gen_rtvec (1, op0), 100);
- addr = gen_rtx_PLUS (SImode, addr, op1);
- addr = gen_rtx_CONST (SImode, addr);
- addr = force_const_mem (SImode, addr);
+ addr = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op0), 100);
+ addr = gen_rtx_PLUS (Pmode, addr, op1);
+ addr = gen_rtx_CONST (Pmode, addr);
+ addr = force_const_mem (Pmode, addr);
emit_move_insn (temp, addr);
base = gen_rtx_REG (Pmode, BASE_REGISTER);
@@ -2061,14 +2268,13 @@ legitimize_pic_address (orig, reg)
that was pulled out of the literal pool. Force it back in. */
else if (GET_CODE (op0) == UNSPEC
- && GET_CODE (op1) == CONST_INT)
+ && GET_CODE (op1) == CONST_INT
+ && XINT (op0, 1) == 100)
{
if (XVECLEN (op0, 0) != 1)
abort ();
- if (XINT (op0, 1) != 100)
- abort ();
- new = force_const_mem (SImode, orig);
+ new = force_const_mem (Pmode, orig);
}
/* Otherwise, compute the sum. */
@@ -2098,18 +2304,237 @@ legitimize_pic_address (orig, reg)
return new;
}
+/* Load the thread pointer into a register. */
+
+static rtx
+get_thread_pointer ()
+{
+ rtx tp;
+
+ tp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx), UNSPEC_TP);
+ tp = force_reg (Pmode, tp);
+ mark_reg_pointer (tp, BITS_PER_WORD);
+
+ return tp;
+}
+
+/* Construct the SYMBOL_REF for the tls_get_offset function. */
+
+static GTY(()) rtx s390_tls_symbol;
+rtx
+s390_tls_get_offset ()
+{
+ if (!s390_tls_symbol)
+ s390_tls_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tls_get_offset");
+
+ return s390_tls_symbol;
+}
+
+/* ADDR contains a thread-local SYMBOL_REF. Generate code to compute
+ this (thread-local) address. REG may be used as temporary. */
+
+static rtx
+legitimize_tls_address (addr, reg)
+ rtx addr;
+ rtx reg;
+{
+ rtx new, tls_call, temp, base, r2, insn;
+
+ if (GET_CODE (addr) == SYMBOL_REF)
+ switch (tls_symbolic_operand (addr))
+ {
+ case TLS_MODEL_GLOBAL_DYNAMIC:
+ start_sequence ();
+ r2 = gen_rtx_REG (Pmode, 2);
+ tls_call = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_TLSGD);
+ new = gen_rtx_CONST (Pmode, tls_call);
+ new = force_const_mem (Pmode, new);
+ emit_move_insn (r2, new);
+ emit_call_insn (gen_call_value_tls (r2, tls_call));
+ insn = get_insns ();
+ end_sequence ();
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_NTPOFF);
+ temp = gen_reg_rtx (Pmode);
+ emit_libcall_block (insn, temp, r2, new);
+
+ new = gen_rtx_PLUS (Pmode, get_thread_pointer (), temp);
+ if (reg != 0)
+ {
+ s390_load_address (reg, new);
+ new = reg;
+ }
+ break;
+
+ case TLS_MODEL_LOCAL_DYNAMIC:
+ start_sequence ();
+ r2 = gen_rtx_REG (Pmode, 2);
+ tls_call = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx), UNSPEC_TLSLDM);
+ new = gen_rtx_CONST (Pmode, tls_call);
+ new = force_const_mem (Pmode, new);
+ emit_move_insn (r2, new);
+ emit_call_insn (gen_call_value_tls (r2, tls_call));
+ insn = get_insns ();
+ end_sequence ();
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx), UNSPEC_TLSLDM_NTPOFF);
+ temp = gen_reg_rtx (Pmode);
+ emit_libcall_block (insn, temp, r2, new);
+
+ new = gen_rtx_PLUS (Pmode, get_thread_pointer (), temp);
+ base = gen_reg_rtx (Pmode);
+ s390_load_address (base, new);
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_DTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ new = force_const_mem (Pmode, new);
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+
+ new = gen_rtx_PLUS (Pmode, base, temp);
+ if (reg != 0)
+ {
+ s390_load_address (reg, new);
+ new = reg;
+ }
+ break;
+
+ case TLS_MODEL_INITIAL_EXEC:
+ if (flag_pic == 1)
+ {
+ /* Assume GOT offset < 4k. This is handled the same way
+ in both 31- and 64-bit code. */
+
+ if (reload_in_progress || reload_completed)
+ regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOTNTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ new = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, new);
+ new = gen_rtx_MEM (Pmode, new);
+ RTX_UNCHANGING_P (new) = 1;
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+ }
+ else if (TARGET_64BIT)
+ {
+ /* If the GOT offset might be >= 4k, we determine the position
+ of the GOT entry via a PC-relative LARL. */
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_INDNTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+
+ new = gen_rtx_MEM (Pmode, temp);
+ RTX_UNCHANGING_P (new) = 1;
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+ }
+ else if (flag_pic)
+ {
+ /* If the GOT offset might be >= 4k, we have to load it
+ from the literal pool. */
+
+ if (reload_in_progress || reload_completed)
+ regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_GOTNTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ new = force_const_mem (Pmode, new);
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+
+ new = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, temp);
+ new = gen_rtx_MEM (Pmode, new);
+ RTX_UNCHANGING_P (new) = 1;
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, new, addr), UNSPEC_TLS_LOAD);
+ temp = gen_reg_rtx (Pmode);
+ emit_insn (gen_rtx_SET (Pmode, temp, new));
+ }
+ else
+ {
+ /* In position-dependent code, load the absolute address of
+ the GOT entry from the literal pool. */
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_INDNTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ new = force_const_mem (Pmode, new);
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+
+ new = temp;
+ new = gen_rtx_MEM (Pmode, new);
+ RTX_UNCHANGING_P (new) = 1;
+
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, new, addr), UNSPEC_TLS_LOAD);
+ temp = gen_reg_rtx (Pmode);
+ emit_insn (gen_rtx_SET (Pmode, temp, new));
+ }
+
+ new = gen_rtx_PLUS (Pmode, get_thread_pointer (), temp);
+ if (reg != 0)
+ {
+ s390_load_address (reg, new);
+ new = reg;
+ }
+ break;
+
+ case TLS_MODEL_LOCAL_EXEC:
+ new = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), UNSPEC_NTPOFF);
+ new = gen_rtx_CONST (Pmode, new);
+ new = force_const_mem (Pmode, new);
+ temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, new);
+
+ new = gen_rtx_PLUS (Pmode, get_thread_pointer (), temp);
+ if (reg != 0)
+ {
+ s390_load_address (reg, new);
+ new = reg;
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ else if (GET_CODE (addr) == CONST && GET_CODE (XEXP (addr, 0)) == UNSPEC)
+ {
+ switch (XINT (XEXP (addr, 0), 1))
+ {
+ case UNSPEC_INDNTPOFF:
+ if (TARGET_64BIT)
+ new = addr;
+ else
+ abort ();
+ break;
+
+ default:
+ abort ();
+ }
+ }
+
+ else
+ abort (); /* for now ... */
+
+ return new;
+}
+
/* Emit insns to move operands[1] into operands[0]. */
void
-emit_pic_move (operands, mode)
+emit_symbolic_move (operands)
rtx *operands;
- enum machine_mode mode ATTRIBUTE_UNUSED;
{
rtx temp = no_new_pseudos ? operands[0] : gen_reg_rtx (Pmode);
- if (GET_CODE (operands[0]) == MEM && SYMBOLIC_CONST (operands[1]))
+ if (GET_CODE (operands[0]) == MEM)
operands[1] = force_reg (Pmode, operands[1]);
- else
+ else if (TLS_SYMBOLIC_CONST (operands[1]))
+ operands[1] = legitimize_tls_address (operands[1], temp);
+ else if (flag_pic)
operands[1] = legitimize_pic_address (operands[1], temp);
}
@@ -2132,7 +2557,14 @@ legitimize_address (x, oldx, mode)
{
rtx constant_term = const0_rtx;
- if (flag_pic)
+ if (TLS_SYMBOLIC_CONST (x))
+ {
+ x = legitimize_tls_address (x, 0);
+
+ if (legitimate_address_p (mode, x, FALSE))
+ return x;
+ }
+ else if (flag_pic)
{
if (SYMBOLIC_CONST (x)
|| (GET_CODE (x) == PLUS
@@ -2227,6 +2659,9 @@ s390_expand_movstr (dst, src, len)
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (dst, 0), NULL_RTX));
emit_move_insn (gen_highpart (single_mode, reg1),
@@ -2323,6 +2758,9 @@ s390_expand_clrstr (dst, len)
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (dst, 0), NULL_RTX));
convert_move (gen_lowpart (single_mode, reg0), len, 1);
@@ -2392,16 +2830,16 @@ s390_expand_clrstr (dst, len)
and return the result in TARGET. */
void
-s390_expand_cmpstr (target, op0, op1, len)
+s390_expand_cmpmem (target, op0, op1, len)
rtx target;
rtx op0;
rtx op1;
rtx len;
{
rtx (*gen_short) PARAMS ((rtx, rtx, rtx)) =
- TARGET_64BIT ? gen_cmpstr_short_64 : gen_cmpstr_short_31;
+ TARGET_64BIT ? gen_cmpmem_short_64 : gen_cmpmem_short_31;
rtx (*gen_long) PARAMS ((rtx, rtx, rtx, rtx)) =
- TARGET_64BIT ? gen_cmpstr_long_64 : gen_cmpstr_long_31;
+ TARGET_64BIT ? gen_cmpmem_long_64 : gen_cmpmem_long_31;
rtx (*gen_result) PARAMS ((rtx)) =
GET_MODE (target) == DImode ? gen_cmpint_di : gen_cmpint_si;
@@ -2420,13 +2858,16 @@ s390_expand_cmpstr (target, op0, op1, len)
emit_move_insn (target, const0_rtx);
}
- else if (TARGET_MVCLE)
+ else /* if (TARGET_MVCLE) */
{
enum machine_mode double_mode = TARGET_64BIT ? TImode : DImode;
enum machine_mode single_mode = TARGET_64BIT ? DImode : SImode;
rtx reg0 = gen_reg_rtx (double_mode);
rtx reg1 = gen_reg_rtx (double_mode);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg0));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1));
+
emit_move_insn (gen_highpart (single_mode, reg0),
force_operand (XEXP (op0, 0), NULL_RTX));
emit_move_insn (gen_highpart (single_mode, reg1),
@@ -2439,6 +2880,9 @@ s390_expand_cmpstr (target, op0, op1, len)
emit_insn ((*gen_result) (target));
}
+#if 0
+ /* Deactivate for now as profile code cannot cope with
+ CC being live across basic block boundaries. */
else
{
rtx addr0, addr1, count, blocks, temp;
@@ -2504,6 +2948,31 @@ s390_expand_cmpstr (target, op0, op1, len)
emit_insn ((*gen_result) (target));
}
+#endif
+}
+
+/* This is called from dwarf2out.c via ASM_OUTPUT_DWARF_DTPREL.
+ We need to emit DTP-relative relocations. */
+
+void
+s390_output_dwarf_dtprel (file, size, x)
+ FILE *file;
+ int size;
+ rtx x;
+{
+ switch (size)
+ {
+ case 4:
+ fputs ("\t.long\t", file);
+ break;
+ case 8:
+ fputs ("\t.quad\t", file);
+ break;
+ default:
+ abort ();
+ }
+ output_addr_const (file, x);
+ fputs ("@DTPOFF", file);
}
/* In the name of slightly smaller debug output, and to cater to
@@ -2544,6 +3013,48 @@ s390_simplify_dwarf_addr (orig_x)
return orig_x;
}
+/* Locate some local-dynamic symbol still in use by this function
+ so that we can print its name in local-dynamic base patterns. */
+
+static const char *
+get_some_local_dynamic_name ()
+{
+ rtx insn;
+
+ if (cfun->machine->some_ld_name)
+ return cfun->machine->some_ld_name;
+
+ for (insn = get_insns (); insn ; insn = NEXT_INSN (insn))
+ if (INSN_P (insn)
+ && for_each_rtx (&PATTERN (insn), get_some_local_dynamic_name_1, 0))
+ return cfun->machine->some_ld_name;
+
+ abort ();
+}
+
+static int
+get_some_local_dynamic_name_1 (px, data)
+ rtx *px;
+ void *data ATTRIBUTE_UNUSED;
+{
+ rtx x = *px;
+
+ if (GET_CODE (x) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P (x))
+ {
+ x = get_pool_constant (x);
+ return for_each_rtx (&x, get_some_local_dynamic_name_1, 0);
+ }
+
+ if (GET_CODE (x) == SYMBOL_REF
+ && tls_symbolic_operand (x) == TLS_MODEL_LOCAL_DYNAMIC)
+ {
+ cfun->machine->some_ld_name = XSTR (x, 0);
+ return 1;
+ }
+
+ return 0;
+}
+
/* Output symbolic constant X in assembler syntax to
stdio stream FILE. */
@@ -2616,6 +3127,30 @@ s390_output_symbolic_const (file, x)
fprintf (file, "@PLT-");
s390_output_symbolic_const (file, cfun->machine->literal_pool_label);
break;
+ case UNSPEC_TLSGD:
+ s390_output_symbolic_const (file, XVECEXP (x, 0, 0));
+ fprintf (file, "@TLSGD");
+ break;
+ case UNSPEC_TLSLDM:
+ assemble_name (file, get_some_local_dynamic_name ());
+ fprintf (file, "@TLSLDM");
+ break;
+ case UNSPEC_DTPOFF:
+ s390_output_symbolic_const (file, XVECEXP (x, 0, 0));
+ fprintf (file, "@DTPOFF");
+ break;
+ case UNSPEC_NTPOFF:
+ s390_output_symbolic_const (file, XVECEXP (x, 0, 0));
+ fprintf (file, "@NTPOFF");
+ break;
+ case UNSPEC_GOTNTPOFF:
+ s390_output_symbolic_const (file, XVECEXP (x, 0, 0));
+ fprintf (file, "@GOTNTPOFF");
+ break;
+ case UNSPEC_INDNTPOFF:
+ s390_output_symbolic_const (file, XVECEXP (x, 0, 0));
+ fprintf (file, "@INDNTPOFF");
+ break;
default:
output_operand_lossage ("invalid UNSPEC as operand (2)");
break;
@@ -2661,6 +3196,7 @@ print_operand_address (file, addr)
'C': print opcode suffix for branch condition.
'D': print opcode suffix for inverse branch condition.
+ 'J': print tls_load/tls_gdcall/tls_ldcall suffix
'O': print only the displacement of a memory reference.
'R': print only the base register of a memory reference.
'N': print the second word of a DImode operand.
@@ -2686,6 +3222,26 @@ print_operand (file, x, code)
fprintf (file, s390_branch_condition_mnemonic (x, TRUE));
return;
+ case 'J':
+ if (GET_CODE (x) == SYMBOL_REF)
+ {
+ fprintf (file, "%s", ":tls_load:");
+ output_addr_const (file, x);
+ }
+ else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_TLSGD)
+ {
+ fprintf (file, "%s", ":tls_gdcall:");
+ output_addr_const (file, XVECEXP (x, 0, 0));
+ }
+ else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_TLSLDM)
+ {
+ fprintf (file, "%s", ":tls_ldcall:");
+ assemble_name (file, get_some_local_dynamic_name ());
+ }
+ else
+ abort ();
+ return;
+
case 'O':
{
struct s390_address ad;
@@ -4126,11 +4682,21 @@ s390_optimize_prolog (temp_regno)
for (i = 6; i < 16; i++)
if (regs_ever_live[i])
- break;
+ if (!global_regs[i]
+ || i == STACK_POINTER_REGNUM
+ || i == RETURN_REGNUM
+ || i == BASE_REGISTER
+ || (flag_pic && i == (int)PIC_OFFSET_TABLE_REGNUM))
+ break;
for (j = 15; j > i; j--)
if (regs_ever_live[j])
- break;
+ if (!global_regs[j]
+ || j == STACK_POINTER_REGNUM
+ || j == RETURN_REGNUM
+ || j == BASE_REGISTER
+ || (flag_pic && j == (int)PIC_OFFSET_TABLE_REGNUM))
+ break;
if (i == 16)
{
@@ -4242,6 +4808,12 @@ s390_fixup_clobbered_return_reg (return_reg)
bool replacement_done = 0;
rtx insn;
+ /* If we never called __builtin_return_address, register 14
+ might have been used as temp during the prolog; we do
+ not want to touch those uses. */
+ if (!has_hard_reg_initial_val (Pmode, REGNO (return_reg)))
+ return false;
+
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{
rtx reg, off, new_insn;
@@ -4424,7 +4996,7 @@ s390_frame_info ()
cfun->machine->save_fprs_p = 0;
if (TARGET_64BIT)
for (i = 24; i < 32; i++)
- if (regs_ever_live[i])
+ if (regs_ever_live[i] && !global_regs[i])
{
cfun->machine->save_fprs_p = 1;
break;
@@ -4448,8 +5020,11 @@ s390_frame_info ()
prolog/epilog code is modified again. */
for (i = 0; i < 16; i++)
- gprs_ever_live[i] = regs_ever_live[i];
+ gprs_ever_live[i] = regs_ever_live[i] && !global_regs[i];
+ if (flag_pic)
+ gprs_ever_live[PIC_OFFSET_TABLE_REGNUM] =
+ regs_ever_live[PIC_OFFSET_TABLE_REGNUM];
gprs_ever_live[BASE_REGISTER] = 1;
gprs_ever_live[RETURN_REGNUM] = 1;
gprs_ever_live[STACK_POINTER_REGNUM] = cfun->machine->frame_size > 0;
@@ -4486,7 +5061,7 @@ s390_arg_frame_offset ()
save_fprs_p = 0;
if (TARGET_64BIT)
for (i = 24; i < 32; i++)
- if (regs_ever_live[i])
+ if (regs_ever_live[i] && !global_regs[i])
{
save_fprs_p = 1;
break;
@@ -4715,12 +5290,12 @@ s390_emit_prologue ()
if (!TARGET_64BIT)
{
/* Save fpr 4 and 6. */
- if (regs_ever_live[18])
+ if (regs_ever_live[18] && !global_regs[18])
{
insn = save_fpr (stack_pointer_rtx, STACK_POINTER_OFFSET - 16, 18);
RTX_FRAME_RELATED_P (insn) = 1;
}
- if (regs_ever_live[19])
+ if (regs_ever_live[19] && !global_regs[19])
{
insn = save_fpr (stack_pointer_rtx, STACK_POINTER_OFFSET - 8, 19);
RTX_FRAME_RELATED_P (insn) = 1;
@@ -4763,6 +5338,16 @@ s390_emit_prologue ()
set_mem_alias_set (addr, s390_sr_alias_set);
insn = emit_insn (gen_move_insn (addr, temp_reg));
}
+
+ /* If we support asynchronous exceptions (e.g. for Java),
+ we need to make sure the backchain pointer is set up
+ before any possibly trapping memory access. */
+
+ if (TARGET_BACKCHAIN && flag_non_call_exceptions)
+ {
+ addr = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode));
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, addr));
+ }
}
/* Save fprs 8 - 15 (64 bit ABI). */
@@ -4772,7 +5357,7 @@ s390_emit_prologue ()
insn = emit_insn (gen_add2_insn (temp_reg, GEN_INT(-64)));
for (i = 24; i < 32; i++)
- if (regs_ever_live[i])
+ if (regs_ever_live[i] && !global_regs[i])
{
rtx addr = plus_constant (stack_pointer_rtx,
cfun->machine->frame_size - 64 + (i-24)*8);
@@ -4823,8 +5408,10 @@ s390_emit_prologue ()
REG_NOTES(insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, NULL_RTX,
REG_NOTES (insn));
- insn = emit_insn (gen_add2_insn (pic_offset_table_rtx,
- gen_rtx_REG (Pmode, BASE_REGISTER)));
+ got_symbol = gen_rtx_REG (Pmode, BASE_REGISTER);
+ got_symbol = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, got_symbol), 101);
+ got_symbol = gen_rtx_PLUS (Pmode, got_symbol, pic_offset_table_rtx);
+ insn = emit_move_insn (pic_offset_table_rtx, got_symbol);
REG_NOTES(insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD, NULL_RTX,
REG_NOTES (insn));
}
@@ -4870,14 +5457,14 @@ s390_emit_epilogue ()
}
else
{
- if (regs_ever_live[18])
+ if (regs_ever_live[18] && !global_regs[18])
{
if (area_bottom > STACK_POINTER_OFFSET - 16)
area_bottom = STACK_POINTER_OFFSET - 16;
if (area_top < STACK_POINTER_OFFSET - 8)
area_top = STACK_POINTER_OFFSET - 8;
}
- if (regs_ever_live[19])
+ if (regs_ever_live[19] && !global_regs[19])
{
if (area_bottom > STACK_POINTER_OFFSET - 8)
area_bottom = STACK_POINTER_OFFSET - 8;
@@ -5039,6 +5626,8 @@ s390_function_arg_pass_by_reference (mode, type)
tree type;
{
int size = s390_function_arg_size (mode, type);
+ if (size > 8)
+ return 1;
if (type)
{
@@ -5046,7 +5635,8 @@ s390_function_arg_pass_by_reference (mode, type)
size != 1 && size != 2 && size != 4 && size != 8)
return 1;
- if (TREE_CODE (type) == COMPLEX_TYPE)
+ if (TREE_CODE (type) == COMPLEX_TYPE
+ || TREE_CODE (type) == VECTOR_TYPE)
return 1;
}
return 0;
@@ -5447,6 +6037,134 @@ s390_va_arg (valist, type)
}
+/* Builtins. */
+
+enum s390_builtin
+{
+ S390_BUILTIN_THREAD_POINTER,
+ S390_BUILTIN_SET_THREAD_POINTER,
+
+ S390_BUILTIN_max
+};
+
+static unsigned int const code_for_builtin_64[S390_BUILTIN_max] = {
+ CODE_FOR_get_tp_64,
+ CODE_FOR_set_tp_64
+};
+
+static unsigned int const code_for_builtin_31[S390_BUILTIN_max] = {
+ CODE_FOR_get_tp_31,
+ CODE_FOR_set_tp_31
+};
+
+static void
+s390_init_builtins ()
+{
+ tree ftype;
+
+ ftype = build_function_type (ptr_type_node, void_list_node);
+ builtin_function ("__builtin_thread_pointer", ftype,
+ S390_BUILTIN_THREAD_POINTER, BUILT_IN_MD,
+ NULL, NULL_TREE);
+
+ ftype = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
+ builtin_function ("__builtin_set_thread_pointer", ftype,
+ S390_BUILTIN_SET_THREAD_POINTER, BUILT_IN_MD,
+ NULL, NULL_TREE);
+}
+
+/* Expand an expression EXP that calls a built-in function,
+ with result going to TARGET if that's convenient
+ (and in mode MODE if that's convenient).
+ SUBTARGET may be used as the target for computing one of EXP's operands.
+ IGNORE is nonzero if the value is to be ignored. */
+
+static rtx
+s390_expand_builtin (exp, target, subtarget, mode, ignore)
+ tree exp;
+ rtx target;
+ rtx subtarget ATTRIBUTE_UNUSED;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+ int ignore ATTRIBUTE_UNUSED;
+{
+#define MAX_ARGS 2
+
+ unsigned int const *code_for_builtin =
+ TARGET_64BIT ? code_for_builtin_64 : code_for_builtin_31;
+
+ tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
+ unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
+ tree arglist = TREE_OPERAND (exp, 1);
+ enum insn_code icode;
+ rtx op[MAX_ARGS], pat;
+ int arity;
+ bool nonvoid;
+
+ if (fcode >= S390_BUILTIN_max)
+ internal_error ("bad builtin fcode");
+ icode = code_for_builtin[fcode];
+ if (icode == 0)
+ internal_error ("bad builtin fcode");
+
+ nonvoid = TREE_TYPE (TREE_TYPE (fndecl)) != void_type_node;
+
+ for (arglist = TREE_OPERAND (exp, 1), arity = 0;
+ arglist;
+ arglist = TREE_CHAIN (arglist), arity++)
+ {
+ const struct insn_operand_data *insn_op;
+
+ tree arg = TREE_VALUE (arglist);
+ if (arg == error_mark_node)
+ return NULL_RTX;
+ if (arity > MAX_ARGS)
+ return NULL_RTX;
+
+ insn_op = &insn_data[icode].operand[arity + nonvoid];
+
+ op[arity] = expand_expr (arg, NULL_RTX, insn_op->mode, 0);
+
+ if (!(*insn_op->predicate) (op[arity], insn_op->mode))
+ op[arity] = copy_to_mode_reg (insn_op->mode, op[arity]);
+ }
+
+ if (nonvoid)
+ {
+ enum machine_mode tmode = insn_data[icode].operand[0].mode;
+ if (!target
+ || GET_MODE (target) != tmode
+ || !(*insn_data[icode].operand[0].predicate) (target, tmode))
+ target = gen_reg_rtx (tmode);
+ }
+
+ switch (arity)
+ {
+ case 0:
+ pat = GEN_FCN (icode) (target);
+ break;
+ case 1:
+ if (nonvoid)
+ pat = GEN_FCN (icode) (target, op[0]);
+ else
+ pat = GEN_FCN (icode) (op[0]);
+ break;
+ case 2:
+ pat = GEN_FCN (icode) (target, op[0], op[1]);
+ break;
+ default:
+ abort ();
+ }
+ if (!pat)
+ return NULL_RTX;
+ emit_insn (pat);
+
+ if (nonvoid)
+ return target;
+ else
+ return const0_rtx;
+}
+
+
/* Output assembly code for the trampoline template to
stdio stream FILE.
@@ -5606,28 +6324,104 @@ s390_select_rtx_section (mode, x, align)
function_section (current_function_decl);
}
-/* If using PIC, mark a SYMBOL_REF for a non-global symbol so that we
- may access it directly in the GOT. */
+/* Encode symbol attributes (local vs. global, tls model) of a SYMBOL_REF
+ into its name and SYMBOL_REF_FLAG. */
static void
s390_encode_section_info (decl, first)
tree decl;
int first ATTRIBUTE_UNUSED;
{
+ bool local_p = (*targetm.binds_local_p) (decl);
+ rtx rtl, symbol;
+
+ rtl = DECL_P (decl) ? DECL_RTL (decl) : TREE_CST_RTL (decl);
+ if (GET_CODE (rtl) != MEM)
+ return;
+ symbol = XEXP (rtl, 0);
+ if (GET_CODE (symbol) != SYMBOL_REF)
+ return;
+
+ /* When using PIC, SYMBOL_REF_FLAG marks non-global symbols
+ that can be accessed directly. */
if (flag_pic)
+ SYMBOL_REF_FLAG (symbol) = local_p;
+
+ /* Encode thread-local data with %[GLil] for "global dynamic",
+ "local dynamic", "initial exec" or "local exec" TLS models,
+ respectively. */
+
+ if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
{
- rtx rtl = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd'
- ? TREE_CST_RTL (decl) : DECL_RTL (decl));
+ const char *symbol_str = XSTR (symbol, 0);
+ char *newstr;
+ size_t len;
+ enum tls_model kind = decl_tls_model (decl);
- if (GET_CODE (rtl) == MEM)
+ if (!flag_pic)
{
- SYMBOL_REF_FLAG (XEXP (rtl, 0))
- = (TREE_CODE_CLASS (TREE_CODE (decl)) != 'd'
- || ! TREE_PUBLIC (decl));
+ /* We don't allow non-pic code for shared libraries,
+ so don't generate GD/LD TLS models for non-pic code. */
+ switch (kind)
+ {
+ case TLS_MODEL_GLOBAL_DYNAMIC:
+ kind = TLS_MODEL_INITIAL_EXEC; break;
+ case TLS_MODEL_LOCAL_DYNAMIC:
+ kind = TLS_MODEL_LOCAL_EXEC; break;
+ default:
+ break;
+ }
}
+
+ if (symbol_str[0] == '%')
+ {
+ if (symbol_str[1] == tls_model_chars[kind])
+ return;
+ symbol_str += 2;
+ }
+ len = strlen (symbol_str) + 1;
+ newstr = alloca (len + 2);
+
+ newstr[0] = '%';
+ newstr[1] = tls_model_chars[kind];
+ memcpy (newstr + 2, symbol_str, len);
+
+ XSTR (symbol, 0) = ggc_alloc_string (newstr, len + 2 - 1);
+ }
+
+ /* If a variable has a forced alignment to < 2 bytes, mark it
+ with '@' to prevent it from being used as LARL operand. */
+
+ else if (TREE_CODE (decl) == VAR_DECL
+ && DECL_USER_ALIGN (decl) && DECL_ALIGN (decl) < 16
+ && XSTR (symbol, 0)[0] != '@')
+ {
+ const char *symbol_str = XSTR (symbol, 0);
+ size_t len = strlen (symbol_str) + 1;
+ char *newstr = alloca (len + 1);
+
+ newstr[0] = '@';
+ memcpy (newstr + 1, symbol_str, len);
+
+ XSTR (symbol, 0) = ggc_alloc_string (newstr, len + 1 - 1);
}
}
+/* Undo the above when printing symbol names. */
+
+static const char *
+s390_strip_name_encoding (str)
+ const char *str;
+{
+ if (str[0] == '%')
+ str += 2;
+ if (str[0] == '@')
+ str += 1;
+ if (str[0] == '*')
+ str += 1;
+ return str;
+}
+
/* Output thunk to FILE that implements a C++ virtual function call (with
multiple inheritance) to FUNCTION. The thunk adjusts the this pointer
by DELTA, and unless VCALL_OFFSET is zero, applies an additional adjustment
@@ -5642,13 +6436,16 @@ s390_output_mi_thunk (file, thunk, delta, vcall_offset, function)
HOST_WIDE_INT vcall_offset;
tree function;
{
- rtx op[9];
+ rtx op[10];
+ int nonlocal = 0;
/* Operand 0 is the target function. */
op[0] = XEXP (DECL_RTL (function), 0);
if (flag_pic && !SYMBOL_REF_FLAG (op[0]))
{
- op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]), 113);
+ nonlocal = 1;
+ op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]),
+ TARGET_64BIT ? 113 : flag_pic == 2 ? 112 : 110);
op[0] = gen_rtx_CONST (Pmode, op[0]);
}
@@ -5673,6 +6470,9 @@ s390_output_mi_thunk (file, thunk, delta, vcall_offset, function)
op[7] = NULL_RTX;
op[8] = NULL_RTX;
+ /* Operand 9 can be used for temporary register. */
+ op[9] = NULL_RTX;
+
/* Generate code. */
if (TARGET_64BIT)
{
@@ -5798,14 +6598,39 @@ s390_output_mi_thunk (file, thunk, delta, vcall_offset, function)
/* Jump to target. */
op[8] = gen_label_rtx ();
+
if (!flag_pic)
output_asm_insn ("l\t%4,%8-%5(%4)", op);
- else
+ else if (!nonlocal)
output_asm_insn ("a\t%4,%8-%5(%4)", op);
+ /* We cannot call through .plt, since .plt requires %r12 loaded. */
+ else if (flag_pic == 1)
+ {
+ output_asm_insn ("a\t%4,%8-%5(%4)", op);
+ output_asm_insn ("l\t%4,%0(%4)", op);
+ }
+ else if (flag_pic == 2)
+ {
+ op[9] = gen_rtx_REG (Pmode, 0);
+ output_asm_insn ("l\t%9,%8-4-%5(%4)", op);
+ output_asm_insn ("a\t%4,%8-%5(%4)", op);
+ output_asm_insn ("ar\t%4,%9", op);
+ output_asm_insn ("l\t%4,0(%4)", op);
+ }
+
output_asm_insn ("br\t%4", op);
/* Output literal pool. */
output_asm_insn (".align\t4", op);
+
+ if (nonlocal && flag_pic == 2)
+ output_asm_insn (".long\t%0", op);
+ if (nonlocal)
+ {
+ op[0] = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_");
+ SYMBOL_REF_FLAG (op[0]) = 1;
+ }
+
ASM_OUTPUT_INTERNAL_LABEL (file, "L", CODE_LABEL_NUMBER (op[8]));
if (!flag_pic)
output_asm_insn (".long\t%0", op);
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index 23721588c0f..36a51e479cb 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM S/390
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Hartmut Penner (hpenner@de.ibm.com) and
Ulrich Weigand (uweigand@de.ibm.com).
This file is part of GNU CC.
@@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */
/* Override the __fixdfdi etc. routines when building libgcc2.
??? This should be done in a cleaner way ... */
-#ifdef IN_LIBGCC2
+#if defined (IN_LIBGCC2) && !defined (__s390x__)
#include <s390/fixdfdi.h>
#endif
@@ -69,7 +69,7 @@ extern int target_flags;
{ "soft-float", -1, N_("Don't use hardware fp")}, \
{ "backchain", 2, N_("Set backchain")}, \
{ "no-backchain", -2, N_("Don't set backchain (faster, but debug harder")}, \
- { "small-exec", 4, N_("Use bras for execucable < 64k")}, \
+ { "small-exec", 4, N_("Use bras for executable < 64k")}, \
{ "no-small-exec",-4, N_("Don't use bras")}, \
{ "debug", 8, N_("Additional debug prints")}, \
{ "no-debug", -8, N_("Don't print additional debug prints")}, \
@@ -94,6 +94,17 @@ extern int target_flags;
#define CAN_DEBUG_WITHOUT_FP
+/* In libgcc2, determine target settings as compile-time constants. */
+#ifdef IN_LIBGCC2
+#undef TARGET_64BIT
+#ifdef __s390x__
+#define TARGET_64BIT 1
+#else
+#define TARGET_64BIT 0
+#endif
+#endif
+
+
/* Target machine storage layout. */
/* Everything is big-endian. */
@@ -103,7 +114,9 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4)
+#ifndef IN_LIBGCC2
#define MIN_UNITS_PER_WORD 4
+#endif
#define MAX_BITS_PER_WORD 64
/* Function arguments and return values are promoted to word size. */
@@ -195,11 +208,13 @@ if (INTEGRAL_MODE_P (MODE) && \
#define ADDR_REGNO_P(N) ((N) >= 1 && (N) < 16)
#define FP_REGNO_P(N) ((N) >= 16 && (N) < (TARGET_IEEE_FLOAT? 32 : 20))
#define CC_REGNO_P(N) ((N) == 33)
+#define FRAME_REGNO_P(N) ((N) == 32 || (N) == 34)
#define GENERAL_REG_P(X) (REG_P (X) && GENERAL_REGNO_P (REGNO (X)))
#define ADDR_REG_P(X) (REG_P (X) && ADDR_REGNO_P (REGNO (X)))
#define FP_REG_P(X) (REG_P (X) && FP_REGNO_P (REGNO (X)))
#define CC_REG_P(X) (REG_P (X) && CC_REGNO_P (REGNO (X)))
+#define FRAME_REG_P(X) (REG_P (X) && FRAME_REGNO_P (REGNO (X)))
#define BASE_REGISTER 13
#define RETURN_REGNUM 14
@@ -314,6 +329,8 @@ do \
(HARD_REGNO_NREGS(REGNO, MODE) == 1 || !((REGNO) & 1)) : \
CC_REGNO_P(REGNO)? \
GET_MODE_CLASS (MODE) == MODE_CC : \
+ FRAME_REGNO_P(REGNO)? \
+ (enum machine_mode) (MODE) == Pmode : \
0)
#define MODES_TIEABLE_P(MODE1, MODE2) \
@@ -330,8 +347,9 @@ do \
/* If a 4-byte value is loaded into a FPR, it is placed into the
*upper* half of the register, not the lower. Therefore, we
cannot use SUBREGs to switch between modes in FP registers. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) ? FP_REGS : NO_REGS)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (FP_REGS, CLASS) : 0)
/* Register classes. */
@@ -402,6 +420,11 @@ extern const enum reg_class regclass_map[FIRST_PSEUDO_REGISTER];
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, IN) \
s390_secondary_input_reload_class ((CLASS), (MODE), (IN))
+/* We need a secondary reload when storing a double-word
+ to a non-offsettable memory address. */
+#define SECONDARY_OUTPUT_RELOAD_CLASS(CLASS, MODE, OUT) \
+ s390_secondary_output_reload_class ((CLASS), (MODE), (OUT))
+
/* We need secondary memory to move data between GPRs and FPRs. */
#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
((CLASS1) != (CLASS2) && ((CLASS1) == FP_REGS || (CLASS2) == FP_REGS))
@@ -492,7 +515,6 @@ extern int current_function_outgoing_args_size;
/* Describe how we implement __builtin_eh_return. */
#define EH_RETURN_DATA_REGNO(N) ((N) < 4 ? (N) + 6 : INVALID_REGNUM)
-#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, 10)
#define EH_RETURN_HANDLER_RTX \
gen_rtx_MEM (Pmode, plus_constant (arg_pointer_rtx, \
TARGET_64BIT? -48 : -40))
@@ -617,8 +639,11 @@ CUMULATIVE_ARGS;
a scalar value cannot be returned in registers. */
#define RETURN_IN_MEMORY(type) \
(TYPE_MODE (type) == BLKmode || \
+ GET_MODE_SIZE (TYPE_MODE (type)) > 8 || \
GET_MODE_CLASS (TYPE_MODE (type)) == MODE_COMPLEX_INT || \
- GET_MODE_CLASS (TYPE_MODE (type)) == MODE_COMPLEX_FLOAT)
+ GET_MODE_CLASS (TYPE_MODE (type)) == MODE_COMPLEX_FLOAT || \
+ GET_MODE_CLASS (TYPE_MODE (type)) == MODE_VECTOR_INT || \
+ GET_MODE_CLASS (TYPE_MODE (type)) == MODE_VECTOR_FLOAT)
/* Structure value address is passed as invisible first argument (gpr 2). */
#define STRUCT_VALUE 0
@@ -749,6 +774,10 @@ CUMULATIVE_ARGS;
|| GET_CODE (X) == LABEL_REF \
|| (GET_CODE (X) == CONST && symbolic_reference_mentioned_p (X)))
+#define TLS_SYMBOLIC_CONST(X) \
+((GET_CODE (X) == SYMBOL_REF && tls_symbolic_operand (X)) \
+ || (GET_CODE (X) == CONST && tls_symbolic_reference_mentioned_p (X)))
+
/* Condition codes. */
@@ -926,6 +955,10 @@ extern int flag_pic;
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
fprintf ((FILE), "\t.set\t.,.+%u\n", (SIZE))
+/* Output a reference to a user-level label named NAME. */
+#define ASM_OUTPUT_LABELREF(FILE, NAME) \
+ asm_fprintf ((FILE), "%U%s", (*targetm.strip_name_encoding) (NAME))
+
/* Store in OUTPUT a string (made with alloca) containing
an assembler-name for a local static variable named NAME.
LABELNO is an integer which is different for each call. */
@@ -950,6 +983,12 @@ extern int flag_pic;
"%ap", "%cc", "%fp" \
}
+/* Emit a dtp-relative reference to a TLS variable. */
+#ifdef HAVE_AS_TLS
+#define ASM_OUTPUT_DWARF_DTPREL(FILE, SIZE, X) \
+ s390_output_dwarf_dtprel (FILE, SIZE, X)
+#endif
+
/* Print operand X (an rtx) in assembler syntax to file FILE. */
#define PRINT_OPERAND(FILE, X, CODE) print_operand (FILE, X, CODE)
#define PRINT_OPERAND_ADDRESS(FILE, ADDR) print_operand_address (FILE, ADDR)
@@ -1014,10 +1053,9 @@ extern int s390_nr_constants;
\
case MODE_INT: \
case MODE_PARTIAL_INT: \
- if (flag_pic \
- && (GET_CODE (EXP) == CONST \
- || GET_CODE (EXP) == SYMBOL_REF \
- || GET_CODE (EXP) == LABEL_REF )) \
+ if (GET_CODE (EXP) == CONST \
+ || GET_CODE (EXP) == SYMBOL_REF \
+ || GET_CODE (EXP) == LABEL_REF) \
{ \
fputs (integer_asm_op (UNITS_PER_WORD, TRUE), FILE); \
s390_output_symbolic_const (FILE, EXP); \
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 197aa67ebcb..3bc1356f0d5 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -1,5 +1,5 @@
;;- Machine description for GNU compiler -- S/390 / zSeries version.
-;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Hartmut Penner (hpenner@de.ibm.com) and
;; Ulrich Weigand (uweigand@de.ibm.com).
;; This file is part of GNU CC.
@@ -44,6 +44,34 @@
;; s_operand -- Matches a valid S operand in a RS, SI or SS type instruction.
;;
+;;
+;; UNSPEC usage
+;;
+
+(define_constants
+ [; TLS relocation specifiers
+ (UNSPEC_TLSGD 500)
+ (UNSPEC_TLSLDM 501)
+ (UNSPEC_NTPOFF 502)
+ (UNSPEC_DTPOFF 503)
+ (UNSPEC_GOTNTPOFF 504)
+ (UNSPEC_INDNTPOFF 505)
+
+ ; TLS support
+ (UNSPEC_TP 510)
+ (UNSPEC_TLSLDM_NTPOFF 511)
+ (UNSPEC_TLS_LOAD 512)
+ ])
+
+;;
+;; UNSPEC_VOLATILE usage
+;;
+
+(define_constants
+ [; TLS support
+ (UNSPECV_SET_TP 500)
+ ])
+
;; Define an insn type attribute. This is used in function unit delay
;; computations.
@@ -500,6 +528,31 @@
"ltr\\t%0,%0"
[(set_attr "op_type" "RR")])
+(define_insn "*tsthiCCT"
+ [(set (reg 33)
+ (compare (match_operand:HI 0 "nonimmediate_operand" "?Q,d")
+ (match_operand:HI 1 "const0_operand" "")))
+ (set (match_operand:HI 2 "register_operand" "=d,0")
+ (match_dup 0))]
+ "s390_match_ccmode(insn, CCTmode)"
+ "@
+ icm\\t%2,3,%0
+ tml\\t%0,65535"
+ [(set_attr "op_type" "RS,RI")
+ (set_attr "atype" "mem,reg")])
+
+(define_insn "*tsthiCCT_cconly"
+ [(set (reg 33)
+ (compare (match_operand:HI 0 "nonimmediate_operand" "Q,d")
+ (match_operand:HI 1 "const0_operand" "")))
+ (clobber (match_scratch:HI 2 "=d,X"))]
+ "s390_match_ccmode(insn, CCTmode)"
+ "@
+ icm\\t%2,3,%0
+ tml\\t%0,65535"
+ [(set_attr "op_type" "RS,RI")
+ (set_attr "atype" "mem,reg")])
+
(define_insn "*tsthi"
[(set (reg 33)
(compare (match_operand:HI 0 "s_operand" "Q")
@@ -521,6 +574,30 @@
[(set_attr "op_type" "RS")
(set_attr "atype" "mem")])
+(define_insn "*tstqiCCT"
+ [(set (reg 33)
+ (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")
+ (match_operand:QI 1 "const0_operand" "")))
+ (set (match_operand:QI 2 "register_operand" "=d,0")
+ (match_dup 0))]
+ "s390_match_ccmode(insn, CCTmode)"
+ "@
+ icm\\t%2,1,%0
+ tml\\t%0,255"
+ [(set_attr "op_type" "RS,RI")
+ (set_attr "atype" "mem,reg")])
+
+(define_insn "*tstqiCCT_cconly"
+ [(set (reg 33)
+ (compare (match_operand:QI 0 "nonimmediate_operand" "?Q,d")
+ (match_operand:QI 1 "const0_operand" "")))]
+ "s390_match_ccmode(insn, CCTmode)"
+ "@
+ cli\\t%0,0
+ tml\\t%0,255"
+ [(set_attr "op_type" "SI,RI")
+ (set_attr "atype" "mem,reg")])
+
(define_insn "*tstqi"
[(set (reg 33)
(compare (match_operand:QI 0 "s_operand" "Q")
@@ -780,7 +857,7 @@
;
(define_insn "movti"
- [(set (match_operand:TI 0 "nonimmediate_operand" "=d,Q,d,m,Q")
+ [(set (match_operand:TI 0 "nonimmediate_operand" "=d,Q,d,o,Q")
(match_operand:TI 1 "general_operand" "Q,d,dKm,d,Q"))]
"TARGET_64BIT"
"@
@@ -796,36 +873,29 @@
[(set (match_operand:TI 0 "nonimmediate_operand" "")
(match_operand:TI 1 "general_operand" ""))]
"TARGET_64BIT && reload_completed
- && !s_operand (operands[0], VOIDmode)
- && !s_operand (operands[1], VOIDmode)
- && (register_operand (operands[0], VOIDmode)
- || register_operand (operands[1], VOIDmode))
- && (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, TImode),
- operands[1])
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 1, 0, TImode),
- operands[1]))"
+ && s390_split_ok_p (operands[0], operands[1], TImode, 0)"
[(set (match_dup 2) (match_dup 4))
(set (match_dup 3) (match_dup 5))]
- "
{
- if (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, TImode),
- operands[1]))
- {
- operands[2] = operand_subword (operands[0], 0, 0, TImode);
- operands[3] = operand_subword (operands[0], 1, 0, TImode);
- operands[4] = operand_subword (operands[1], 0, 0, TImode);
- operands[5] = operand_subword (operands[1], 1, 0, TImode);
- }
- else
- {
- operands[2] = operand_subword (operands[0], 1, 0, TImode);
- operands[3] = operand_subword (operands[0], 0, 0, TImode);
- operands[4] = operand_subword (operands[1], 1, 0, TImode);
- operands[5] = operand_subword (operands[1], 0, 0, TImode);
- }
-}")
+ operands[2] = operand_subword (operands[0], 0, 0, TImode);
+ operands[3] = operand_subword (operands[0], 1, 0, TImode);
+ operands[4] = operand_subword (operands[1], 0, 0, TImode);
+ operands[5] = operand_subword (operands[1], 1, 0, TImode);
+})
+
+(define_split
+ [(set (match_operand:TI 0 "nonimmediate_operand" "")
+ (match_operand:TI 1 "general_operand" ""))]
+ "TARGET_64BIT && reload_completed
+ && s390_split_ok_p (operands[0], operands[1], TImode, 1)"
+ [(set (match_dup 2) (match_dup 4))
+ (set (match_dup 3) (match_dup 5))]
+{
+ operands[2] = operand_subword (operands[0], 1, 0, TImode);
+ operands[3] = operand_subword (operands[0], 0, 0, TImode);
+ operands[4] = operand_subword (operands[1], 1, 0, TImode);
+ operands[5] = operand_subword (operands[1], 0, 0, TImode);
+})
(define_split
[(set (match_operand:TI 0 "register_operand" "")
@@ -833,29 +903,39 @@
"TARGET_64BIT && reload_completed
&& !s_operand (operands[1], VOIDmode)"
[(set (match_dup 0) (match_dup 1))]
- "
{
rtx addr = operand_subword (operands[0], 1, 0, TImode);
s390_load_address (addr, XEXP (operands[1], 0));
operands[1] = replace_equiv_address (operands[1], addr);
-}")
+})
+
+(define_expand "reload_outti"
+ [(parallel [(match_operand:TI 0 "" "")
+ (match_operand:TI 1 "register_operand" "d")
+ (match_operand:DI 2 "register_operand" "=&a")])]
+ "TARGET_64BIT"
+{
+ if (GET_CODE (operands[0]) != MEM)
+ abort ();
+ s390_load_address (operands[2], XEXP (operands[0], 0));
+ operands[0] = replace_equiv_address (operands[0], operands[2]);
+ emit_move_insn (operands[0], operands[1]);
+ DONE;
+})
;
; movdi instruction pattern(s).
;
-;; If generating PIC code and operands[1] is a symbolic CONST, emit a
-;; move to get the address of the symbolic object from the GOT.
-
(define_expand "movdi"
[(set (match_operand:DI 0 "general_operand" "")
(match_operand:DI 1 "general_operand" ""))]
""
"
{
- /* Handle PIC symbolic constants. */
- if (TARGET_64BIT && flag_pic && SYMBOLIC_CONST (operands[1]))
- emit_pic_move (operands, DImode);
+ /* Handle symbolic constants. */
+ if (TARGET_64BIT && SYMBOLIC_CONST (operands[1]))
+ emit_symbolic_move (operands);
/* During and after reload, we need to force constants
to the literal pool ourselves, if necessary. */
@@ -910,8 +990,8 @@
(set_attr "type" "la")])
(define_insn "*movdi_64"
- [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m,Q")
- (match_operand:DI 1 "general_operand" "d,m,d,*f,m,*f,Q"))]
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m,?Q")
+ (match_operand:DI 1 "general_operand" "d,m,d,*f,m,*f,?Q"))]
"TARGET_64BIT"
"@
lgr\\t%0,%1
@@ -925,7 +1005,7 @@
(set_attr "atype" "reg,mem,mem,reg,mem,mem,mem")])
(define_insn "*movdi_31"
- [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,m,!*f,!*f,!m,Q")
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=d,Q,d,o,!*f,!*f,!m,Q")
(match_operand:DI 1 "general_operand" "Q,d,dKm,d,*f,m,*f,Q"))]
"!TARGET_64BIT"
"@
@@ -944,53 +1024,56 @@
[(set (match_operand:DI 0 "nonimmediate_operand" "")
(match_operand:DI 1 "general_operand" ""))]
"!TARGET_64BIT && reload_completed
- && !FP_REG_P (operands[0])
- && !FP_REG_P (operands[1])
- && !s_operand (operands[0], VOIDmode)
- && !s_operand (operands[1], VOIDmode)
- && (register_operand (operands[0], VOIDmode)
- || register_operand (operands[1], VOIDmode))
- && (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, DImode),
- operands[1])
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 1, 0, DImode),
- operands[1]))"
+ && s390_split_ok_p (operands[0], operands[1], DImode, 0)"
[(set (match_dup 2) (match_dup 4))
(set (match_dup 3) (match_dup 5))]
- "
{
- if (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, DImode),
- operands[1]))
- {
- operands[2] = operand_subword (operands[0], 0, 0, DImode);
- operands[3] = operand_subword (operands[0], 1, 0, DImode);
- operands[4] = operand_subword (operands[1], 0, 0, DImode);
- operands[5] = operand_subword (operands[1], 1, 0, DImode);
- }
- else
- {
- operands[2] = operand_subword (operands[0], 1, 0, DImode);
- operands[3] = operand_subword (operands[0], 0, 0, DImode);
- operands[4] = operand_subword (operands[1], 1, 0, DImode);
- operands[5] = operand_subword (operands[1], 0, 0, DImode);
- }
-}")
+ operands[2] = operand_subword (operands[0], 0, 0, DImode);
+ operands[3] = operand_subword (operands[0], 1, 0, DImode);
+ operands[4] = operand_subword (operands[1], 0, 0, DImode);
+ operands[5] = operand_subword (operands[1], 1, 0, DImode);
+})
+
+(define_split
+ [(set (match_operand:DI 0 "nonimmediate_operand" "")
+ (match_operand:DI 1 "general_operand" ""))]
+ "!TARGET_64BIT && reload_completed
+ && s390_split_ok_p (operands[0], operands[1], DImode, 1)"
+ [(set (match_dup 2) (match_dup 4))
+ (set (match_dup 3) (match_dup 5))]
+{
+ operands[2] = operand_subword (operands[0], 1, 0, DImode);
+ operands[3] = operand_subword (operands[0], 0, 0, DImode);
+ operands[4] = operand_subword (operands[1], 1, 0, DImode);
+ operands[5] = operand_subword (operands[1], 0, 0, DImode);
+})
(define_split
[(set (match_operand:DI 0 "register_operand" "")
(match_operand:DI 1 "memory_operand" ""))]
"!TARGET_64BIT && reload_completed
&& !FP_REG_P (operands[0])
- && !FP_REG_P (operands[1])
&& !s_operand (operands[1], VOIDmode)"
[(set (match_dup 0) (match_dup 1))]
- "
{
rtx addr = operand_subword (operands[0], 1, 0, DImode);
s390_load_address (addr, XEXP (operands[1], 0));
operands[1] = replace_equiv_address (operands[1], addr);
-}")
+})
+
+(define_expand "reload_outdi"
+ [(parallel [(match_operand:DI 0 "" "")
+ (match_operand:DI 1 "register_operand" "d")
+ (match_operand:SI 2 "register_operand" "=&a")])]
+ "!TARGET_64BIT"
+{
+ if (GET_CODE (operands[0]) != MEM)
+ abort ();
+ s390_load_address (operands[2], XEXP (operands[0], 0));
+ operands[0] = replace_equiv_address (operands[0], operands[2]);
+ emit_move_insn (operands[0], operands[1]);
+ DONE;
+})
(define_peephole2
[(set (match_operand:DI 0 "register_operand" "")
@@ -1008,18 +1091,15 @@
; movsi instruction pattern(s).
;
-;; If generating PIC code and operands[1] is a symbolic CONST, emit a
-;; move to get the address of the symbolic object from the GOT.
-
(define_expand "movsi"
[(set (match_operand:SI 0 "general_operand" "")
(match_operand:SI 1 "general_operand" ""))]
""
"
{
- /* Handle PIC symbolic constants. */
- if (!TARGET_64BIT && flag_pic && SYMBOLIC_CONST (operands[1]))
- emit_pic_move (operands, SImode);
+ /* Handle symbolic constants. */
+ if (!TARGET_64BIT && SYMBOLIC_CONST (operands[1]))
+ emit_symbolic_move (operands);
/* expr.c tries to load an effective address using
force_reg. This fails because we don't have a
@@ -1072,8 +1152,8 @@
[(set_attr "op_type" "RI")])
(define_insn "*movsi"
- [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m,Q")
- (match_operand:SI 1 "general_operand" "d,m,d,*f,m,*f,Q"))]
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,m,!*f,!*f,!m,?Q")
+ (match_operand:SI 1 "general_operand" "d,m,d,*f,m,*f,?Q"))]
""
"@
lr\\t%0,%1
@@ -1102,8 +1182,8 @@
;
(define_insn "movhi"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,m,Q")
- (match_operand:HI 1 "general_operand" "d,n,m,d,Q"))]
+ [(set (match_operand:HI 0 "nonimmediate_operand" "=d,d,d,m,?Q")
+ (match_operand:HI 1 "general_operand" "d,n,m,d,?Q"))]
""
"@
lr\\t%0,%1
@@ -1129,8 +1209,8 @@
;
(define_insn "movqi_64"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,m,Q,Q")
- (match_operand:QI 1 "general_operand" "d,n,m,d,n,Q"))]
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,m,Q,?Q")
+ (match_operand:QI 1 "general_operand" "d,n,m,d,n,?Q"))]
"TARGET_64BIT"
"@
lr\\t%0,%1
@@ -1144,8 +1224,8 @@
(define_insn "movqi"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,m,Q,Q")
- (match_operand:QI 1 "general_operand" "d,n,m,d,n,Q"))]
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=d,d,d,m,Q,?Q")
+ (match_operand:QI 1 "general_operand" "d,n,m,d,n,?Q"))]
""
"@
lr\\t%0,%1
@@ -1226,8 +1306,8 @@
}")
(define_insn "*movdf_64"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,m,d,d,m,Q")
- (match_operand:DF 1 "general_operand" "f,m,f,d,m,d,Q"))]
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,m,d,d,m,?Q")
+ (match_operand:DF 1 "general_operand" "f,m,f,d,m,d,?Q"))]
"TARGET_64BIT"
"@
ldr\\t%0,%1
@@ -1241,7 +1321,7 @@
(set_attr "atype" "reg,mem,mem,reg,mem,mem,mem")])
(define_insn "*movdf_31"
- [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,m,d,Q,d,m,Q")
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,m,d,Q,d,o,Q")
(match_operand:DF 1 "general_operand" "f,m,f,Q,d,dKm,d,Q"))]
"!TARGET_64BIT"
"@
@@ -1260,53 +1340,56 @@
[(set (match_operand:DF 0 "nonimmediate_operand" "")
(match_operand:DF 1 "general_operand" ""))]
"!TARGET_64BIT && reload_completed
- && !FP_REG_P (operands[0])
- && !FP_REG_P (operands[1])
- && !s_operand (operands[0], VOIDmode)
- && !s_operand (operands[1], VOIDmode)
- && (register_operand (operands[0], VOIDmode)
- || register_operand (operands[1], VOIDmode))
- && (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, DFmode),
- operands[1])
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 1, 0, DFmode),
- operands[1]))"
+ && s390_split_ok_p (operands[0], operands[1], DFmode, 0)"
[(set (match_dup 2) (match_dup 4))
(set (match_dup 3) (match_dup 5))]
- "
{
- if (!register_operand (operands[0], VOIDmode)
- || !reg_overlap_mentioned_p (operand_subword (operands[0], 0, 0, DFmode),
- operands[1]))
- {
- operands[2] = operand_subword (operands[0], 0, 0, DFmode);
- operands[3] = operand_subword (operands[0], 1, 0, DFmode);
- operands[4] = operand_subword (operands[1], 0, 0, DFmode);
- operands[5] = operand_subword (operands[1], 1, 0, DFmode);
- }
- else
- {
- operands[2] = operand_subword (operands[0], 1, 0, DFmode);
- operands[3] = operand_subword (operands[0], 0, 0, DFmode);
- operands[4] = operand_subword (operands[1], 1, 0, DFmode);
- operands[5] = operand_subword (operands[1], 0, 0, DFmode);
- }
-}")
+ operands[2] = operand_subword (operands[0], 0, 0, DFmode);
+ operands[3] = operand_subword (operands[0], 1, 0, DFmode);
+ operands[4] = operand_subword (operands[1], 0, 0, DFmode);
+ operands[5] = operand_subword (operands[1], 1, 0, DFmode);
+})
+
+(define_split
+ [(set (match_operand:DF 0 "nonimmediate_operand" "")
+ (match_operand:DF 1 "general_operand" ""))]
+ "!TARGET_64BIT && reload_completed
+ && s390_split_ok_p (operands[0], operands[1], DFmode, 1)"
+ [(set (match_dup 2) (match_dup 4))
+ (set (match_dup 3) (match_dup 5))]
+{
+ operands[2] = operand_subword (operands[0], 1, 0, DFmode);
+ operands[3] = operand_subword (operands[0], 0, 0, DFmode);
+ operands[4] = operand_subword (operands[1], 1, 0, DFmode);
+ operands[5] = operand_subword (operands[1], 0, 0, DFmode);
+})
(define_split
[(set (match_operand:DF 0 "register_operand" "")
(match_operand:DF 1 "memory_operand" ""))]
"!TARGET_64BIT && reload_completed
&& !FP_REG_P (operands[0])
- && !FP_REG_P (operands[1])
&& !s_operand (operands[1], VOIDmode)"
[(set (match_dup 0) (match_dup 1))]
- "
{
rtx addr = operand_subword (operands[0], 1, 0, DFmode);
s390_load_address (addr, XEXP (operands[1], 0));
operands[1] = replace_equiv_address (operands[1], addr);
-}")
+})
+
+(define_expand "reload_outdf"
+ [(parallel [(match_operand:DF 0 "" "")
+ (match_operand:DF 1 "register_operand" "d")
+ (match_operand:SI 2 "register_operand" "=&a")])]
+ "!TARGET_64BIT"
+{
+ if (GET_CODE (operands[0]) != MEM)
+ abort ();
+ s390_load_address (operands[2], XEXP (operands[0], 0));
+ operands[0] = replace_equiv_address (operands[0], operands[2]);
+ emit_move_insn (operands[0], operands[1]);
+ DONE;
+})
;
; movsf instruction pattern(s).
@@ -1326,8 +1409,8 @@
}")
(define_insn "*movsf"
- [(set (match_operand:SF 0 "nonimmediate_operand" "=f,f,m,d,d,m,Q")
- (match_operand:SF 1 "general_operand" "f,m,f,d,m,d,Q"))]
+ [(set (match_operand:SF 0 "nonimmediate_operand" "=f,f,m,d,d,m,?Q")
+ (match_operand:SF 1 "general_operand" "f,m,f,d,m,d,?Q"))]
""
"@
ler\\t%0,%1
@@ -1343,12 +1426,16 @@
;
; load_multiple pattern(s).
;
+; ??? Due to reload problems with replacing registers inside match_parallel
+; we currently support load_multiple/store_multiple only after reload.
+;
+
(define_expand "load_multiple"
[(match_par_dup 3 [(set (match_operand 0 "" "")
(match_operand 1 "" ""))
(use (match_operand 2 "" ""))])]
- ""
+ "reload_completed"
"
{
int regno;
@@ -1408,7 +1495,7 @@
[(match_parallel 0 "load_multiple_operation"
[(set (match_operand:DI 1 "register_operand" "=r")
(match_operand:DI 2 "s_operand" "Q"))])]
- ""
+ "reload_completed"
"*
{
int words = XVECLEN (operands[0], 0);
@@ -1427,7 +1514,7 @@
[(match_parallel 0 "load_multiple_operation"
[(set (match_operand:SI 1 "register_operand" "=r")
(match_operand:SI 2 "s_operand" "Q"))])]
- ""
+ "reload_completed"
"*
{
int words = XVECLEN (operands[0], 0);
@@ -1450,7 +1537,7 @@
[(match_par_dup 3 [(set (match_operand 0 "" "")
(match_operand 1 "" ""))
(use (match_operand 2 "" ""))])]
- ""
+ "reload_completed"
"
{
int regno;
@@ -1512,7 +1599,7 @@
[(match_parallel 0 "store_multiple_operation"
[(set (match_operand:DI 1 "s_operand" "=Q")
(match_operand:DI 2 "register_operand" "r"))])]
- ""
+ "reload_completed"
"*
{
int words = XVECLEN (operands[0], 0);
@@ -1532,7 +1619,7 @@
[(match_parallel 0 "store_multiple_operation"
[(set (match_operand:SI 1 "s_operand" "=Q")
(match_operand:SI 2 "register_operand" "r"))])]
- ""
+ "reload_completed"
"*
{
int words = XVECLEN (operands[0], 0);
@@ -1782,33 +1869,33 @@
(set_attr "length" "8")])
;
-; cmpstrM instruction pattern(s).
+; cmpmemM instruction pattern(s).
;
-(define_expand "cmpstrdi"
+(define_expand "cmpmemdi"
[(set (match_operand:DI 0 "register_operand" "")
(compare:DI (match_operand:BLK 1 "memory_operand" "")
(match_operand:BLK 2 "memory_operand" "") ) )
(use (match_operand:DI 3 "general_operand" ""))
(use (match_operand:DI 4 "" ""))]
"TARGET_64BIT"
- "s390_expand_cmpstr (operands[0], operands[1],
+ "s390_expand_cmpmem (operands[0], operands[1],
operands[2], operands[3]); DONE;")
-(define_expand "cmpstrsi"
+(define_expand "cmpmemsi"
[(set (match_operand:SI 0 "register_operand" "")
(compare:SI (match_operand:BLK 1 "memory_operand" "")
(match_operand:BLK 2 "memory_operand" "") ) )
(use (match_operand:SI 3 "general_operand" ""))
(use (match_operand:SI 4 "" ""))]
""
- "s390_expand_cmpstr (operands[0], operands[1],
+ "s390_expand_cmpmem (operands[0], operands[1],
operands[2], operands[3]); DONE;")
; Compare a block that is up to 256 bytes in length.
; The block length is taken as (operands[2] % 256) + 1.
-(define_insn "cmpstr_short_64"
+(define_insn "cmpmem_short_64"
[(set (reg:CCS 33)
(compare:CCS (match_operand:BLK 0 "memory_operand" "=Q,Q")
(match_operand:BLK 1 "memory_operand" "Q,Q")))
@@ -1836,7 +1923,7 @@
(set_attr "atype" "mem,mem")
(set_attr "length" "*,14")])
-(define_insn "cmpstr_short_31"
+(define_insn "cmpmem_short_31"
[(set (reg:CCS 33)
(compare:CCS (match_operand:BLK 0 "memory_operand" "=Q,Q")
(match_operand:BLK 1 "memory_operand" "Q,Q")))
@@ -1866,7 +1953,7 @@
; Compare a block of arbitrary length.
-(define_insn "cmpstr_long_64"
+(define_insn "cmpmem_long_64"
[(clobber (match_operand:TI 0 "register_operand" "=d"))
(clobber (match_operand:TI 1 "register_operand" "=d"))
(set (reg:CCS 33)
@@ -1875,12 +1962,13 @@
(use (match_dup 2))
(use (match_dup 3))]
"TARGET_64BIT"
- "clcl\\t%0,%1"
- [(set_attr "op_type" "RR")
+ "clcle\\t%0,%1,0\;jo\\t.-4"
+ [(set_attr "op_type" "NN")
(set_attr "atype" "mem")
- (set_attr "type" "vs")])
+ (set_attr "type" "vs")
+ (set_attr "length" "8")])
-(define_insn "cmpstr_long_31"
+(define_insn "cmpmem_long_31"
[(clobber (match_operand:DI 0 "register_operand" "=d"))
(clobber (match_operand:DI 1 "register_operand" "=d"))
(set (reg:CCS 33)
@@ -1889,10 +1977,11 @@
(use (match_dup 2))
(use (match_dup 3))]
"!TARGET_64BIT"
- "clcl\\t%0,%1"
- [(set_attr "op_type" "RR")
+ "clcle\\t%0,%1,0\;jo\\t.-4"
+ [(set_attr "op_type" "NN")
(set_attr "atype" "mem")
- (set_attr "type" "vs")])
+ (set_attr "type" "vs")
+ (set_attr "length" "8")])
; Convert condition code to integer in range (-1, 0, 1)
@@ -1920,13 +2009,13 @@
"*
{
output_asm_insn (\"lghi\\t%0,1\", operands);
- output_asm_insn (\"jh\\t.+12\", operands);
- output_asm_insn (\"jl\\t.+6\", operands);
+ output_asm_insn (\"jh\\t.+16\", operands);
+ output_asm_insn (\"jl\\t.+8\", operands);
output_asm_insn (\"sgr\\t%0,%0\", operands);
return \"lcgr\\t%0,%0\";
}"
[(set_attr "op_type" "NN")
- (set_attr "length" "22")
+ (set_attr "length" "20")
(set_attr "atype" "reg")
(set_attr "type" "other")])
@@ -1990,8 +2079,7 @@
operands[2] = GEN_INT (32 - INTVAL (operands[2]));
operands[1] = change_address (operands[1], QImode, 0);
}"
- [(set_attr "type" "o2")
- (set_attr "atype" "mem")])
+ [(set_attr "atype" "mem")])
(define_insn_and_split "*extracthi"
[(set (match_operand:SI 0 "register_operand" "=d")
@@ -2012,8 +2100,7 @@
operands[2] = GEN_INT (32 - INTVAL (operands[2]));
operands[1] = change_address (operands[1], HImode, 0);
}"
- [(set_attr "type" "o2")
- (set_attr "atype" "mem")])
+ [(set_attr "atype" "mem")])
;
; extendsidi2 instruction pattern(s).
@@ -2315,8 +2402,7 @@
[(set (strict_low_part (match_dup 2)) (match_dup 1))
(clobber (reg:CC 33))])]
"operands[2] = gen_lowpart (HImode, operands[0]);"
- [(set_attr "type" "o2")
- (set_attr "atype" "mem")])
+ [(set_attr "atype" "mem")])
;
; zero_extendqisi2 instruction pattern(s).
@@ -2351,8 +2437,7 @@
[(set (match_dup 0) (const_int 0))
(set (strict_low_part (match_dup 2)) (match_dup 1))]
"operands[2] = gen_lowpart (QImode, operands[0]);"
- [(set_attr "type" "o2")
- (set_attr "atype" "mem")])
+ [(set_attr "atype" "mem")])
;
; zero_extendqihi2 instruction pattern(s).
@@ -2387,8 +2472,7 @@
[(set (match_dup 0) (const_int 0))
(set (strict_low_part (match_dup 2)) (match_dup 1))]
"operands[2] = gen_lowpart (QImode, operands[0]);"
- [(set_attr "type" "o2")
- (set_attr "atype" "mem")])
+ [(set_attr "atype" "mem")])
;
@@ -2837,25 +2921,6 @@
; adddi3 instruction pattern(s).
;
-(define_insn "*la_64_cc"
- [(set (match_operand:DI 0 "register_operand" "=d")
- (match_operand:QI 1 "address_operand" "p"))
- (clobber (reg:CC 33))]
- "TARGET_64BIT
- && preferred_la_operand_p (operands[1], 1)"
- "#"
- [(set_attr "op_type" "RX")
- (set_attr "atype" "mem")
- (set_attr "type" "la")])
-
-(define_split
- [(set (match_operand:DI 0 "register_operand" "")
- (match_operand:QI 1 "address_operand" ""))
- (clobber (reg:CC 33))]
- "TARGET_64BIT && reload_completed
- && preferred_la_operand_p (operands[1], 0)"
- [(set (match_dup 0) (match_dup 1))])
-
(define_insn "*adddi3_sign"
[(set (match_operand:DI 0 "register_operand" "=d,d")
(plus:DI (sign_extend:DI (match_operand:SI 2 "general_operand" "d,m"))
@@ -2976,7 +3041,7 @@
(define_insn_and_split "*adddi3_31"
[(set (match_operand:DI 0 "register_operand" "=&d")
(plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0")
- (match_operand:DI 2 "general_operand" "dm") ) )
+ (match_operand:DI 2 "general_operand" "do") ) )
(clobber (reg:CC 33))]
"!TARGET_64BIT"
"#"
@@ -2997,15 +3062,14 @@
[(set (match_dup 3) (plus:SI (match_dup 3) (const_int 1)))
(clobber (reg:CC 33))])
(match_dup 9)]
- "operands[3] = operand_subword (operands[0], 0, 1, DImode);
- operands[4] = operand_subword (operands[1], 0, 1, DImode);
- operands[5] = operand_subword (operands[2], 0, 1, DImode);
- operands[6] = operand_subword (operands[0], 1, 1, DImode);
- operands[7] = operand_subword (operands[1], 1, 1, DImode);
- operands[8] = operand_subword (operands[2], 1, 1, DImode);
+ "operands[3] = operand_subword (operands[0], 0, 0, DImode);
+ operands[4] = operand_subword (operands[1], 0, 0, DImode);
+ operands[5] = operand_subword (operands[2], 0, 0, DImode);
+ operands[6] = operand_subword (operands[0], 1, 0, DImode);
+ operands[7] = operand_subword (operands[1], 1, 0, DImode);
+ operands[8] = operand_subword (operands[2], 1, 0, DImode);
operands[9] = gen_label_rtx ();"
- [(set_attr "op_type" "NN")
- (set_attr "type" "o3")])
+ [(set_attr "op_type" "NN")])
(define_expand "adddi3"
[(parallel
@@ -3025,6 +3089,32 @@
(set_attr "atype" "mem")
(set_attr "type" "la")])
+(define_peephole2
+ [(parallel
+ [(set (match_operand:DI 0 "register_operand" "")
+ (match_operand:QI 1 "address_operand" ""))
+ (clobber (reg:CC 33))])]
+ "TARGET_64BIT
+ && strict_memory_address_p (VOIDmode, operands[1])
+ && preferred_la_operand_p (operands[1])"
+ [(set (match_dup 0) (match_dup 1))]
+ "")
+
+(define_peephole2
+ [(set (match_operand:DI 0 "register_operand" "")
+ (match_operand:DI 1 "register_operand" ""))
+ (parallel
+ [(set (match_dup 0)
+ (plus:DI (match_dup 0)
+ (match_operand:DI 2 "nonmemory_operand" "")))
+ (clobber (reg:CC 33))])]
+ "TARGET_64BIT
+ && !reg_overlap_mentioned_p (operands[0], operands[2])
+ && strict_memory_address_p (VOIDmode, gen_rtx_PLUS (DImode, operands[1], operands[2]))
+ && preferred_la_operand_p (gen_rtx_PLUS (DImode, operands[1], operands[2]))"
+ [(set (match_dup 0) (plus:DI (match_dup 1) (match_dup 2)))]
+ "")
+
(define_expand "reload_indi"
[(parallel [(match_operand:DI 0 "register_operand" "=a")
(match_operand:DI 1 "s390_plus_operand" "")
@@ -3041,25 +3131,6 @@
; addsi3 instruction pattern(s).
;
-(define_insn "*la_31_cc"
- [(set (match_operand:SI 0 "register_operand" "=d")
- (match_operand:QI 1 "address_operand" "p"))
- (clobber (reg:CC 33))]
- "!TARGET_64BIT
- && preferred_la_operand_p (operands[1], 1)"
- "#"
- [(set_attr "op_type" "RX")
- (set_attr "atype" "mem")
- (set_attr "type" "la")])
-
-(define_split
- [(set (match_operand:SI 0 "register_operand" "")
- (match_operand:QI 1 "address_operand" ""))
- (clobber (reg:CC 33))]
- "!TARGET_64BIT && reload_completed
- && preferred_la_operand_p (operands[1], 0)"
- [(set (match_dup 0) (match_dup 1))])
-
(define_insn "*addsi3_imm_cc"
[(set (reg 33)
(compare (plus:SI (match_operand:SI 1 "nonimmediate_operand" "0")
@@ -3208,6 +3279,32 @@
(set_attr "atype" "mem")
(set_attr "type" "la")])
+(define_peephole2
+ [(parallel
+ [(set (match_operand:SI 0 "register_operand" "")
+ (match_operand:QI 1 "address_operand" ""))
+ (clobber (reg:CC 33))])]
+ "!TARGET_64BIT
+ && strict_memory_address_p (VOIDmode, operands[1])
+ && preferred_la_operand_p (operands[1])"
+ [(set (match_dup 0) (match_dup 1))]
+ "")
+
+(define_peephole2
+ [(set (match_operand:SI 0 "register_operand" "")
+ (match_operand:SI 1 "register_operand" ""))
+ (parallel
+ [(set (match_dup 0)
+ (plus:SI (match_dup 0)
+ (match_operand:SI 2 "nonmemory_operand" "")))
+ (clobber (reg:CC 33))])]
+ "!TARGET_64BIT
+ && !reg_overlap_mentioned_p (operands[0], operands[2])
+ && strict_memory_address_p (VOIDmode, gen_rtx_PLUS (SImode, operands[1], operands[2]))
+ && preferred_la_operand_p (gen_rtx_PLUS (SImode, operands[1], operands[2]))"
+ [(set (match_dup 0) (plus:DI (match_dup 1) (match_dup 2)))]
+ "")
+
(define_insn "*la_31_and"
[(set (match_operand:SI 0 "register_operand" "=d")
(and:SI (match_operand:QI 1 "address_operand" "p")
@@ -3431,7 +3528,7 @@
(define_insn_and_split "*subdi3_31"
[(set (match_operand:DI 0 "register_operand" "=&d")
(minus:DI (match_operand:DI 1 "register_operand" "0")
- (match_operand:DI 2 "general_operand" "dm") ) )
+ (match_operand:DI 2 "general_operand" "do") ) )
(clobber (reg:CC 33))]
"!TARGET_64BIT"
"#"
@@ -3452,15 +3549,14 @@
[(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))
(clobber (reg:CC 33))])
(match_dup 9)]
- "operands[3] = operand_subword (operands[0], 0, 1, DImode);
- operands[4] = operand_subword (operands[1], 0, 1, DImode);
- operands[5] = operand_subword (operands[2], 0, 1, DImode);
- operands[6] = operand_subword (operands[0], 1, 1, DImode);
- operands[7] = operand_subword (operands[1], 1, 1, DImode);
- operands[8] = operand_subword (operands[2], 1, 1, DImode);
+ "operands[3] = operand_subword (operands[0], 0, 0, DImode);
+ operands[4] = operand_subword (operands[1], 0, 0, DImode);
+ operands[5] = operand_subword (operands[2], 0, 0, DImode);
+ operands[6] = operand_subword (operands[0], 1, 0, DImode);
+ operands[7] = operand_subword (operands[1], 1, 0, DImode);
+ operands[8] = operand_subword (operands[2], 1, 0, DImode);
operands[9] = gen_label_rtx ();"
- [(set_attr "op_type" "NN")
- (set_attr "type" "o3")])
+ [(set_attr "op_type" "NN")])
(define_expand "subdi3"
[(parallel
@@ -4591,7 +4687,7 @@
(define_insn "*iordi3_oi"
[(set (match_operand:DI 0 "register_operand" "=d")
- (ior:DI (match_operand:DI 1 "nonimmediate_operand" "%0")
+ (ior:DI (match_operand:DI 1 "nonimmediate_operand" "0")
(match_operand:DI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], DImode, 0) >= 0"
@@ -4677,7 +4773,7 @@
(define_insn "*iorsi3_oi"
[(set (match_operand:SI 0 "register_operand" "=d")
- (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0")
+ (ior:SI (match_operand:SI 1 "nonimmediate_operand" "0")
(match_operand:SI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], SImode, 0) >= 0"
@@ -6452,6 +6548,192 @@
(set_attr "type" "jsr")
(set_attr "atype" "mem")])
+;;
+;;- Thread-local storage support.
+;;
+
+(define_insn "get_tp_64"
+ [(set (match_operand:DI 0 "nonimmediate_operand" "=??d,Q")
+ (unspec:DI [(const_int 0)] UNSPEC_TP))]
+ "TARGET_64BIT"
+ "@
+ ear\\t%0,%%a0\;sllg\\t%0,%0,32\;ear\\t%0,%%a1
+ stam\\t%%a0,%%a1,%0"
+ [(set_attr "op_type" "NN,RS")
+ (set_attr "atype" "reg,mem")
+ (set_attr "type" "o3,*")
+ (set_attr "length" "14,*")])
+
+(define_insn "get_tp_31"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=d,Q")
+ (unspec:SI [(const_int 0)] UNSPEC_TP))]
+ "!TARGET_64BIT"
+ "@
+ ear\\t%0,%%a0
+ stam\\t%%a0,%%a0,%0"
+ [(set_attr "op_type" "RRE,RS")
+ (set_attr "atype" "reg,mem")])
+
+(define_insn "set_tp_64"
+ [(unspec_volatile [(match_operand:DI 0 "general_operand" "??d,Q")] UNSPECV_SET_TP)
+ (clobber (match_scratch:SI 1 "=d,X"))]
+ "TARGET_64BIT"
+ "@
+ sar\\t%%a1,%0\;srlg\\t%1,%0,32\;sar\\t%%a0,%1
+ lam\\t%%a0,%%a1,%0"
+ [(set_attr "op_type" "NN,RS")
+ (set_attr "atype" "reg,mem")
+ (set_attr "type" "o3,*")
+ (set_attr "length" "14,*")])
+
+(define_insn "set_tp_31"
+ [(unspec_volatile [(match_operand:SI 0 "general_operand" "d,Q")] UNSPECV_SET_TP)]
+ "!TARGET_64BIT"
+ "@
+ sar\\t%%a0,%0
+ lam\\t%%a0,%%a0,%0"
+ [(set_attr "op_type" "RRE,RS")
+ (set_attr "atype" "reg,mem")])
+
+(define_insn "*tls_load_64"
+ [(set (match_operand:DI 0 "register_operand" "=d")
+ (unspec:DI [(match_operand:DI 1 "memory_operand" "m")
+ (match_operand:DI 2 "" "")]
+ UNSPEC_TLS_LOAD))]
+ "TARGET_64BIT"
+ "lg\\t%0,%1%J2"
+ [(set_attr "op_type" "RXE")
+ (set_attr "atype" "mem")])
+
+(define_insn "*tls_load_31"
+ [(set (match_operand:SI 0 "register_operand" "=d")
+ (unspec:SI [(match_operand:SI 1 "memory_operand" "m")
+ (match_operand:SI 2 "" "")]
+ UNSPEC_TLS_LOAD))]
+ "!TARGET_64BIT"
+ "l\\t%0,%1%J2"
+ [(set_attr "op_type" "RX")
+ (set_attr "atype" "mem")])
+
+(define_expand "call_value_tls"
+ [(set (match_operand 0 "" "")
+ (call (const_int 0) (const_int 0)))
+ (use (match_operand 1 "" ""))]
+ ""
+ "
+{
+ rtx insn, sym;
+
+ if (!flag_pic)
+ abort ();
+
+ sym = s390_tls_get_offset ();
+ sym = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, sym), 113);
+ sym = gen_rtx_CONST (Pmode, sym);
+
+ /* Unless we can use the bras(l) insn, force the
+ routine address into a register. */
+ if (!TARGET_SMALL_EXEC && !TARGET_64BIT)
+ {
+ rtx target = gen_reg_rtx (Pmode);
+ emit_move_insn (target, sym);
+ sym = target;
+ }
+
+ sym = gen_rtx_MEM (QImode, sym);
+
+ /* Emit insn. */
+ insn = emit_call_insn (
+ gen_call_value_tls_exp (operands[0], sym, const0_rtx,
+ gen_rtx_REG (Pmode, RETURN_REGNUM),
+ operands[1]));
+
+ /* The calling convention of __tls_get_offset uses the
+ GOT register implicitly. */
+ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
+ use_reg (&CALL_INSN_FUNCTION_USAGE (insn), operands[0]);
+ CONST_OR_PURE_CALL_P (insn) = 1;
+
+ DONE;
+}")
+
+(define_expand "call_value_tls_exp"
+ [(parallel [(set (match_operand 0 "" "")
+ (call (match_operand 1 "" "")
+ (match_operand 2 "" "")))
+ (clobber (match_operand 3 "" ""))
+ (use (match_operand 4 "" ""))])]
+ ""
+ "")
+
+(define_insn "brasl_tls"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:DI 1 "bras_sym_operand" "X"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:DI 3 "register_operand" "=r"))
+ (use (match_operand:DI 4 "" ""))]
+ "TARGET_64BIT"
+ "brasl\\t%3,%1%J4"
+ [(set_attr "op_type" "RIL")
+ (set_attr "type" "jsr")])
+
+(define_insn "bras_tls"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:SI 1 "bras_sym_operand" "X"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:SI 3 "register_operand" "=r"))
+ (use (match_operand:SI 4 "" ""))]
+ "TARGET_SMALL_EXEC"
+ "bras\\t%3,%1%J4"
+ [(set_attr "op_type" "RI")
+ (set_attr "type" "jsr")])
+
+(define_insn "basr_tls_64"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:DI 1 "register_operand" "a"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:DI 3 "register_operand" "=r"))
+ (use (match_operand:DI 4 "" ""))]
+ "TARGET_64BIT"
+ "basr\\t%3,%1%J4"
+ [(set_attr "op_type" "RR")
+ (set_attr "type" "jsr")])
+
+(define_insn "basr_tls_31"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:SI 1 "register_operand" "a"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:SI 3 "register_operand" "=r"))
+ (use (match_operand:SI 4 "" ""))]
+ "!TARGET_64BIT"
+ "basr\\t%3,%1%J4"
+ [(set_attr "op_type" "RR")
+ (set_attr "type" "jsr")
+ (set_attr "atype" "mem")])
+
+(define_insn "bas_tls_64"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:QI 1 "address_operand" "p"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:DI 3 "register_operand" "=r"))
+ (use (match_operand:DI 4 "" ""))]
+ "TARGET_64BIT"
+ "bas\\t%3,%a1%J4"
+ [(set_attr "op_type" "RX")
+ (set_attr "type" "jsr")
+ (set_attr "atype" "mem")])
+
+(define_insn "bas_tls_31"
+ [(set (match_operand 0 "register_operand" "=df")
+ (call (mem:QI (match_operand:QI 1 "address_operand" "p"))
+ (match_operand:SI 2 "const_int_operand" "n")))
+ (clobber (match_operand:SI 3 "register_operand" "=r"))
+ (use (match_operand:SI 4 "" ""))]
+ "!TARGET_64BIT"
+ "bas\\t%3,%a1%J4"
+ [(set_attr "op_type" "RX")
+ (set_attr "type" "jsr")
+ (set_attr "atype" "mem")])
;;
;;- Miscellaneous instructions.
@@ -6820,14 +7102,21 @@
(label_ref (match_operand 1 "" "")))
(use (label_ref (match_operand 2 "" "")))]
""
- "*
{
- if (s390_nr_constants) {
- output_asm_insn (\"bras\\t%0,%2\", operands);
- s390_output_constant_pool (operands[1], operands[2]);
- }
- return \"\";
-}"
+ if (s390_nr_constants)
+ {
+ output_asm_insn ("bras\\t%0,%2", operands);
+ s390_output_constant_pool (operands[1], operands[2]);
+ }
+ else if (flag_pic)
+ {
+ /* We need the anchor label in any case. */
+ ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
+ CODE_LABEL_NUMBER (operands[1]));
+ }
+
+ return "";
+}
[(set_attr "op_type" "NN")
(set_attr "type" "la")])
@@ -6837,13 +7126,14 @@
(label_ref (match_operand 1 "" "")))
(use (label_ref (match_operand 2 "" "")))]
""
- "*
{
- if (s390_nr_constants) {
- output_asm_insn (\"larl\\t%0,%1\", operands);
- s390_output_constant_pool (operands[1], operands[2]);
- }
- return \"\";
-}"
+ if (s390_nr_constants)
+ {
+ output_asm_insn ("larl\\t%0,%1", operands);
+ s390_output_constant_pool (operands[1], operands[2]);
+ }
+
+ return "";
+}
[(set_attr "op_type" "NN")
(set_attr "type" "la")])
diff --git a/gcc/config/sh/libgcc-glibc.ver b/gcc/config/sh/libgcc-glibc.ver
new file mode 100644
index 00000000000..734d3d6bfe1
--- /dev/null
+++ b/gcc/config/sh/libgcc-glibc.ver
@@ -0,0 +1,21 @@
+# In order to work around the very problems that force us to now generally
+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
+# By now choosing the same version tags for these specific routines, we
+# maintain enough binary compatibility to allow future versions of glibc
+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
+
+# Note that we cannot use the default libgcc-glibc.ver file on sh,
+# because GLIBC_2.0 does not exist on this architecture, as the first
+# ever glibc release on the platform was GLIBC_2.2.
+
+%inherit GCC_3.0 GLIBC_2.2
+GLIBC_2.2 {
+ __register_frame
+ __register_frame_table
+ __deregister_frame
+ __register_frame_info
+ __deregister_frame_info
+ __frame_state_for
+ __register_frame_info_table
+}
+
diff --git a/gcc/config/sh/libgcc-std.ver b/gcc/config/sh/libgcc-std.ver
new file mode 100644
index 00000000000..2862b8d1933
--- /dev/null
+++ b/gcc/config/sh/libgcc-std.ver
@@ -0,0 +1,196 @@
+GCC_3.0 {
+ # libgcc1 integer symbols
+ __absvsi2
+ __addvsi3
+ # __ashlsi3
+ # __ashrsi3
+ __divsi3
+ # __lshrsi3
+ __modsi3
+ __mulsi3
+ __mulvsi3
+ __negvsi2
+ __subvsi3
+ # __udivsi3
+ __umodsi3
+
+ # libgcc1 floating point symbols
+ __addsf3
+ __adddf3
+ __addxf3
+ __addtf3
+ __divsf3
+ __divdf3
+ __divxf3
+ __divtf3
+ __eqsf2
+ __eqdf2
+ __eqxf2
+ __eqtf2
+ __extenddfxf2
+ __extenddftf2
+ __extendsfdf2
+ __extendsfxf2
+ __extendsftf2
+ __fixsfsi
+ __fixdfsi
+ __fixxfsi
+ __fixtfsi
+ __floatsisf
+ __floatsidf
+ __floatsixf
+ __floatsitf
+ __gesf2
+ __gedf2
+ __gexf2
+ __getf2
+ __gtsf2
+ __gtdf2
+ __gtxf2
+ __gttf2
+ __lesf2
+ __ledf2
+ __lexf2
+ __letf2
+ __ltsf2
+ __ltdf2
+ __ltxf2
+ __lttf2
+ __mulsf3
+ __muldf3
+ __mulxf3
+ __multf3
+ __negsf2
+ __negdf2
+ __negxf2
+ __negtf2
+ __nesf2
+ __nedf2
+ __nexf2
+ __netf2
+ __subsf3
+ __subdf3
+ __subxf3
+ __subtf3
+ __truncdfsf2
+ __truncxfsf2
+ __trunctfsf2
+ __truncxfdf2
+ __trunctfdf2
+
+ # libgcc2 DImode arithmetic (for 32-bit targets).
+ __absvdi2
+ __addvdi3
+ __ashldi3
+ __ashrdi3
+ __cmpdi2
+ __divdi3
+ __ffsdi2
+ __fixdfdi
+ __fixsfdi
+ __fixtfdi
+ __fixxfdi
+ __fixunsdfdi
+ __fixunsdfsi
+ __fixunssfsi
+ __fixunssfdi
+ __fixunstfdi
+ __fixunstfsi
+ __fixunsxfdi
+ __fixunsxfsi
+ __floatdidf
+ __floatdisf
+ __floatdixf
+ __floatditf
+ __lshrdi3
+ __moddi3
+ __muldi3
+ __mulvdi3
+ __negdi2
+ __negvdi2
+ __subvdi3
+ __ucmpdi2
+ __udivdi3
+ __udivmoddi4
+ __umoddi3
+
+ # libgcc2 TImode arithmetic (for 64-bit targets).
+ __ashlti3
+ __ashrti3
+ __cmpti2
+ __divti3
+ __ffsti2
+ __fixdfti
+ __fixsfti
+ __fixtfti
+ __fixxfti
+ __lshrti3
+ __modti3
+ __multi3
+ __negti2
+ __ucmpti2
+ __udivmodti4
+ __udivti3
+ __umodti3
+ __fixunsdfti
+ __fixunssfti
+ __fixunstfti
+ __fixunsxfti
+ __floattidf
+ __floattisf
+ __floattixf
+ __floattitf
+
+ # Used to deal with trampoline initialization on some platforms
+ __clear_cache
+
+ # EH symbols
+ _Unwind_DeleteException
+ _Unwind_Find_FDE
+ _Unwind_ForcedUnwind
+ _Unwind_GetGR
+ _Unwind_GetIP
+ _Unwind_GetLanguageSpecificData
+ _Unwind_GetRegionStart
+ _Unwind_GetTextRelBase
+ _Unwind_GetDataRelBase
+ _Unwind_RaiseException
+ _Unwind_Resume
+ _Unwind_SetGR
+ _Unwind_SetIP
+ __deregister_frame
+ __deregister_frame_info
+ __deregister_frame_info_bases
+ __register_frame
+ __register_frame_info
+ __register_frame_info_bases
+ __register_frame_info_table
+ __register_frame_info_table_bases
+ __register_frame_table
+
+ # SjLj EH symbols
+ _Unwind_SjLj_Register
+ _Unwind_SjLj_Unregister
+ _Unwind_SjLj_RaiseException
+ _Unwind_SjLj_ForcedUnwind
+ _Unwind_SjLj_Resume
+}
+
+%inherit GCC_3.3 GCC_3.0
+GCC_3.3 {
+ _Unwind_FindEnclosingFunction
+ _Unwind_GetCFA
+ _Unwind_Backtrace
+ _Unwind_Resume_or_Rethrow
+ _Unwind_SjLj_Resume_or_Rethrow
+}
+
+%inherit GCC_3.3.1 GCC_3.3
+GCC_3.3.1 {
+ __gcc_personality_sj0
+ __gcc_personality_v0
+}
+
+%inherit GCC_3.3.2 GCC_3.3.1
+GCC_3.3.2 {
+}
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index 1a3948386fc..f5a83172d85 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -48,14 +48,20 @@ do { \
"%{shared:-shared} \
%{!static: \
%{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
- %{!rpath:-rpath /lib}} \
+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
%{static:-static}"
+/* The GNU C++ standard library requires that these macros be defined. */
+#undef CPLUSPLUS_CPP_SPEC
+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
+
#undef LIB_SPEC
#define LIB_SPEC \
- "%{shared: -lc} \
- %{!shared: %{pthread:-lthread} \
+ "%{pthread:-lpthread} \
+ %{shared: -lc} \
+ %{!static:-rpath-link %R/lib:%R/usr/lib} \
+ %{!shared: \
+ %{mieee-fp:-lieee} \
%{profile:-lc_p} %{!profile: -lc}}"
#undef STARTFILE_SPEC
@@ -65,3 +71,6 @@ do { \
%{!p:%{profile:gcrt1.o%s} \
%{!profile:crt1.o%s}}}} \
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
diff --git a/gcc/config/sh/netbsd-elf.h b/gcc/config/sh/netbsd-elf.h
index 513b39f4704..b263a2c9f65 100644
--- a/gcc/config/sh/netbsd-elf.h
+++ b/gcc/config/sh/netbsd-elf.h
@@ -95,6 +95,8 @@ Boston, MA 02111-1307, USA. */
#define TARGET_DEFAULT \
(TARGET_CPU_DEFAULT | USERMODE_BIT | TARGET_ENDIAN_DEFAULT)
+/* Define because we use the label and we do not need them. */
+#define NO_PROFILE_COUNTERS
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(STREAM,LABELNO) \
diff --git a/gcc/config/sh/rtems.h b/gcc/config/sh/rtems.h
index b52ef7216ec..707be7204a9 100644
--- a/gcc/config/sh/rtems.h
+++ b/gcc/config/sh/rtems.h
@@ -2,25 +2,26 @@
Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
-This file is part of GNU CC.
+This file is part of GCC.
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
+along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Specify predefined symbols in preprocessor. */
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-D__sh__ -D__rtems__ \
- -Asystem=rtems -Acpu=sh -Amachine=sh"
+#define TARGET_OS_CPP_BUILTINS() do { \
+ builtin_define( "__rtems__" ); \
+ builtin_assert( "system=rtems" ); \
+} while (0)
diff --git a/gcc/config/sh/rtemself.h b/gcc/config/sh/rtemself.h
index 6177c810dd1..1a846ccab46 100644
--- a/gcc/config/sh/rtemself.h
+++ b/gcc/config/sh/rtemself.h
@@ -2,25 +2,26 @@
Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
-This file is part of GNU CC.
+This file is part of GCC.
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
+along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Specify predefined symbols in preprocessor. */
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-D__sh__ -D__ELF__ -D__rtems__ \
- -Asystem=rtems -Acpu=sh -Amachine=sh"
+#define TARGET_OS_CPP_BUILTINS() do { \
+ builtin_define( "__rtems__" ); \
+ builtin_assert( "system=rtems" ); \
+} while (0)
diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h
index 4135b334af1..197b97d9243 100644
--- a/gcc/config/sh/sh-protos.h
+++ b/gcc/config/sh/sh-protos.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler for Hitachi / SuperH SH.
- Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2004
Free Software Foundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com).
Improved by Jim Wilson (wilson@cygnus.com).
@@ -118,7 +118,7 @@ extern struct rtx_def *get_fpscr_rtx PARAMS ((void));
extern void output_file_start PARAMS ((FILE *));
extern int sh_media_register_for_return PARAMS ((void));
extern void sh_expand_prologue PARAMS ((void));
-extern void sh_expand_epilogue PARAMS ((void));
+extern void sh_expand_epilogue PARAMS ((bool));
extern int sh_need_epilogue PARAMS ((void));
extern int initial_elimination_offset PARAMS ((int, int));
extern int fldi_ok PARAMS ((void));
@@ -126,11 +126,12 @@ extern int sh_pr_n_sets PARAMS ((void));
extern int sh_hard_regno_rename_ok PARAMS ((unsigned int, unsigned int));
extern int sh_cfun_interrupt_handler_p PARAMS ((void));
extern void sh_initialize_trampoline PARAMS ((rtx, rtx, rtx));
-extern enum reg_class sh_cannot_change_mode_class
- PARAMS ((enum machine_mode, enum machine_mode));
+extern bool sh_cannot_change_mode_class
+ PARAMS ((enum machine_mode, enum machine_mode, enum reg_class));
extern void sh_mark_label PARAMS ((rtx, int));
extern int sh_register_move_cost
PARAMS ((enum machine_mode mode, enum reg_class, enum reg_class));
+extern int check_use_sfunc_addr (rtx, rtx);
#ifdef HARD_CONST
extern void fpscr_set_from_mem PARAMS ((int, HARD_REG_SET));
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 75c9d263bfa..e0cbbca88d5 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -1,6 +1,6 @@
/* Output routines for GCC for Hitachi / SuperH SH.
- Copyright (C) 1993, 1994, 1995, 1997, 1997, 1998, 1999, 2000, 2001, 2002
- Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1997, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2004 Free Software Foundation, Inc.
Contributed by Steve Chamberlain (sac@cygnus.com).
Improved by Jim Wilson (wilson@cygnus.com).
@@ -953,6 +953,7 @@ output_far_jump (insn, op)
const char *jump;
int far;
int offset = branch_dest (insn) - INSN_ADDRESSES (INSN_UID (insn));
+ rtx prev;
this.lab = gen_label_rtx ();
@@ -977,10 +978,10 @@ output_far_jump (insn, op)
jump = "mov.l %O0,%1; jmp @%1";
}
/* If we have a scratch register available, use it. */
- if (GET_CODE (PREV_INSN (insn)) == INSN
- && INSN_CODE (PREV_INSN (insn)) == CODE_FOR_indirect_jump_scratch)
+ if (GET_CODE ((prev = prev_nonnote_insn (insn))) == INSN
+ && INSN_CODE (prev) == CODE_FOR_indirect_jump_scratch)
{
- this.reg = SET_DEST (PATTERN (PREV_INSN (insn)));
+ this.reg = SET_DEST (XVECEXP (PATTERN (prev), 0, 0));
if (REGNO (this.reg) == R0_REG && flag_pic && ! TARGET_SH2)
jump = "mov.l r1,@-r15; mova %O0,r0; mov.l @r0,r1; add r1,r0; mov.l @r15+,r1; jmp @%1";
output_asm_insn (jump, &this.lab);
@@ -2728,7 +2729,7 @@ find_barrier (num_mova, mova, from)
{
if (num_mova)
num_mova--;
- if (barrier_align (next_real_insn (from)) == CACHE_LOG)
+ if (barrier_align (next_real_insn (from)) == align_jumps_log)
{
/* We have just passed the barrier in front of the
ADDR_DIFF_VEC, which is stored in found_barrier. Since
@@ -3064,6 +3065,14 @@ gen_block_redirect (jump, addr, need_block)
else if (recog_memoized (prev) == CODE_FOR_block_branch_redirect)
need_block = 0;
}
+ if (GET_CODE (PATTERN (jump)) == RETURN)
+ {
+ if (! need_block)
+ return prev;
+ /* Reorg even does nasty things with return insns that cause branches
+ to go out of range - see find_end_label and callers. */
+ return emit_insn_before (gen_block_branch_redirect (GEN_INT (0)) , jump);
+ }
/* We can't use JUMP_LABEL here because it might be undefined
when not optimizing. */
dest = XEXP (SET_SRC (PATTERN (jump)), 0);
@@ -3142,7 +3151,7 @@ gen_block_redirect (jump, addr, need_block)
rtx next = next_active_insn (next_active_insn (dest));
if (next && GET_CODE (next) == JUMP_INSN
&& GET_CODE (PATTERN (next)) == SET
- && recog_memoized (next) == CODE_FOR_jump)
+ && recog_memoized (next) == CODE_FOR_jump_compact)
{
dest = JUMP_LABEL (next);
if (dest
@@ -3166,6 +3175,13 @@ gen_block_redirect (jump, addr, need_block)
rtx insn = emit_insn_before (gen_indirect_jump_scratch
(reg, GEN_INT (INSN_UID (JUMP_LABEL (jump))))
, jump);
+ /* ??? We would like this to have the scope of the jump, but that
+ scope will change when a delay slot insn of an inner scope is added.
+ Hence, after delay slot scheduling, we'll have to expect
+ NOTE_INSN_BLOCK_END notes between the indirect_jump_scratch and
+ the jump. */
+
+ INSN_SCOPE (insn) = INSN_SCOPE (jump);
INSN_CODE (insn) = CODE_FOR_indirect_jump_scratch;
return insn;
}
@@ -3225,11 +3241,16 @@ gen_far_branch (bp)
JUMP_LABEL (jump) = bp->far_label;
if (! invert_jump (insn, label, 1))
abort ();
- (emit_insn_after
- (gen_stuff_delay_slot
- (GEN_INT (INSN_UID (XEXP (SET_SRC (PATTERN (jump)), 0))),
- GEN_INT (recog_memoized (insn) == CODE_FOR_branch_false)),
- insn));
+ /* If we are branching around a jump (rather than a return), prevent
+ reorg from using an insn from the jump target as the delay slot insn -
+ when reorg did this, it pessimized code (we rather hide the delay slot)
+ and it could cause branches to go out of range. */
+ if (bp->far_label)
+ (emit_insn_after
+ (gen_stuff_delay_slot
+ (GEN_INT (INSN_UID (XEXP (SET_SRC (PATTERN (jump)), 0))),
+ GEN_INT (recog_memoized (insn) == CODE_FOR_branch_false)),
+ insn));
/* Prevent reorg from undoing our splits. */
gen_block_redirect (jump, bp->address += 2, 2);
}
@@ -3308,14 +3329,14 @@ barrier_align (barrier_or_label)
return ((TARGET_SMALLCODE
|| ((unsigned) XVECLEN (pat, 1) * GET_MODE_SIZE (GET_MODE (pat))
<= (unsigned)1 << (CACHE_LOG - 2)))
- ? 1 << TARGET_SHMEDIA : CACHE_LOG);
+ ? 1 << TARGET_SHMEDIA : align_jumps_log);
}
if (TARGET_SMALLCODE)
return 0;
if (! TARGET_SH2 || ! optimize)
- return CACHE_LOG;
+ return align_jumps_log;
/* When fixing up pcloads, a constant table might be inserted just before
the basic block that ends with the barrier. Thus, we can't trust the
@@ -3380,7 +3401,8 @@ barrier_align (barrier_or_label)
|| (x = (NEXT_INSN (NEXT_INSN (PREV_INSN (prev)))),
(INSN_P (x)
&& (INSN_CODE (x) == CODE_FOR_block_branch_redirect
- || INSN_CODE (x) == CODE_FOR_indirect_jump_scratch))))
+ || INSN_CODE (x) == CODE_FOR_indirect_jump_scratch
+ || INSN_CODE (x) == CODE_FOR_stuff_delay_slot))))
{
rtx pat = PATTERN (prev);
if (GET_CODE (pat) == PARALLEL)
@@ -3391,7 +3413,7 @@ barrier_align (barrier_or_label)
}
}
- return CACHE_LOG;
+ return align_jumps_log;
}
/* If we are inside a phony loop, almost any kind of label can turn up as the
@@ -3416,10 +3438,7 @@ sh_loop_align (label)
|| recog_memoized (next) == CODE_FOR_consttable_2)
return 0;
- if (TARGET_SH5)
- return 3;
-
- return 2;
+ return align_loops_log;
}
/* Exported to toplev.c.
@@ -4027,7 +4046,7 @@ split_branches (first)
|| ((beyond = next_active_insn (beyond))
&& GET_CODE (beyond) == JUMP_INSN))
&& GET_CODE (PATTERN (beyond)) == SET
- && recog_memoized (beyond) == CODE_FOR_jump
+ && recog_memoized (beyond) == CODE_FOR_jump_compact
&& ((INSN_ADDRESSES
(INSN_UID (XEXP (SET_SRC (PATTERN (beyond)), 0)))
- INSN_ADDRESSES (INSN_UID (insn)) + (unsigned) 252)
@@ -4041,7 +4060,7 @@ split_branches (first)
if ((GET_CODE (next) == JUMP_INSN
|| GET_CODE (next = next_active_insn (next)) == JUMP_INSN)
&& GET_CODE (PATTERN (next)) == SET
- && recog_memoized (next) == CODE_FOR_jump
+ && recog_memoized (next) == CODE_FOR_jump_compact
&& ((INSN_ADDRESSES
(INSN_UID (XEXP (SET_SRC (PATTERN (next)), 0)))
- INSN_ADDRESSES (INSN_UID (insn)) + (unsigned) 252)
@@ -4130,9 +4149,6 @@ split_branches (first)
If relaxing, output the label and pseudo-ops used to link together
calls and the instruction which set the registers. */
-/* ??? This is unnecessary, and probably should be deleted. This makes
- the insn_addresses declaration above unnecessary. */
-
/* ??? The addresses printed by this routine for insns are nonsense for
insns which are inside of a sequence where none of the inner insns have
variable length. This is because the second pass of shorten_branches
@@ -4261,7 +4277,55 @@ output_stack_adjust (size, reg, temp, emit_fn)
register to MACL. However, there is currently no need
to handle this case, so just abort when we see it. */
if (temp < 0)
- abort ();
+ {
+ /* If we reached here, the most likely case is the (sibcall)
+ epilogue for non SHmedia. Put a special push/pop sequence
+ for such case as the last resort. This looks lengthy but
+ would not be problem because it seems to be very rare. */
+ if (! TARGET_SHMEDIA && (emit_fn != frame_insn))
+ {
+ rtx adj_reg, tmp_reg, mem;
+
+ /* ??? There is still the slight possibility that r4 or r5
+ have been reserved as fixed registers or assigned as
+ global registers, and they change during an interrupt.
+ There are possible ways to handle this:
+ - If we are adjusting the frame pointer (r14), we can do
+ with a single temp register and an ordinary push / pop
+ on the stack.
+ - Grab any call-used or call-saved registers (i.e. not
+ fixed or globals) for the temps we need. We might
+ also grab r14 if we are adjusting the stack pointer.
+ If we can't find enough available registers, issue
+ a diagnostic and abort - the user must have reserved
+ way too many registers.
+ But since all this is rather unlikely to happen and
+ would require extra testing, we just abort if r4 / r5
+ are not available. */
+ if (fixed_regs[4] || fixed_regs[5]
+ || global_regs[4] || global_regs[5])
+ abort ();
+
+ adj_reg = gen_rtx_REG (GET_MODE (reg), 4);
+ tmp_reg = gen_rtx_REG (GET_MODE (reg), 5);
+ emit_move_insn (gen_rtx_MEM (Pmode, reg), adj_reg);
+ emit_insn (GEN_MOV (adj_reg, GEN_INT (size)));
+ emit_insn (GEN_ADD3 (adj_reg, adj_reg, reg));
+ mem = gen_rtx_MEM (Pmode, gen_rtx_PRE_DEC (Pmode, adj_reg));
+ emit_move_insn (mem, tmp_reg);
+ emit_move_insn (tmp_reg, gen_rtx_MEM (Pmode, reg));
+ mem = gen_rtx_MEM (Pmode, gen_rtx_PRE_DEC (Pmode, adj_reg));
+ emit_move_insn (mem, tmp_reg);
+ emit_move_insn (reg, adj_reg);
+ mem = gen_rtx_MEM (Pmode, gen_rtx_POST_INC (Pmode, reg));
+ emit_move_insn (adj_reg, mem);
+ mem = gen_rtx_MEM (Pmode, gen_rtx_POST_INC (Pmode, reg));
+ emit_move_insn (tmp_reg, mem);
+ return;
+ }
+ else
+ abort ();
+ }
const_reg = gen_rtx_REG (GET_MODE (reg), temp);
/* If SIZE is negative, subtract the positive value.
@@ -4827,7 +4891,7 @@ sh_expand_prologue ()
}
void
-sh_expand_epilogue ()
+sh_expand_epilogue (bool sibcall_p)
{
HOST_WIDE_INT live_regs_mask[(FIRST_PSEUDO_REGISTER + 31) / 32];
int d, i;
@@ -4835,9 +4899,22 @@ sh_expand_epilogue ()
int save_flags = target_flags;
int frame_size;
+ int temp;
calc_live_regs (&d, live_regs_mask);
+ if (! sibcall_p)
+ temp = 7;
+ else if (TARGET_SHMEDIA)
+ temp = 1;
+ else
+ {
+ for (i = FIRST_GENERAL_REG; i <= LAST_GENERAL_REG; i++)
+ if (TEST_HARD_REG_BIT (live_regs_mask, i))
+ break;
+ temp = (i <= LAST_GENERAL_REG) ? i : -1;
+ }
+
if (TARGET_SH5 && d % (STACK_BOUNDARY / BITS_PER_UNIT))
d_rounding = ((STACK_BOUNDARY / BITS_PER_UNIT)
- d % (STACK_BOUNDARY / BITS_PER_UNIT));
@@ -4846,7 +4923,7 @@ sh_expand_epilogue ()
if (frame_pointer_needed)
{
- output_stack_adjust (frame_size, frame_pointer_rtx, 7, emit_insn);
+ output_stack_adjust (frame_size, frame_pointer_rtx, temp, emit_insn);
/* We must avoid moving the stack pointer adjustment past code
which reads from the local frame, else an interrupt could
@@ -4862,7 +4939,7 @@ sh_expand_epilogue ()
occur after the SP adjustment and clobber data in the local
frame. */
emit_insn (gen_blockage ());
- output_stack_adjust (frame_size, stack_pointer_rtx, 7, emit_insn);
+ output_stack_adjust (frame_size, stack_pointer_rtx, temp, emit_insn);
}
if (SHMEDIA_REGS_STACK_ADJUST ())
@@ -5038,7 +5115,7 @@ sh_expand_epilogue ()
output_stack_adjust (extra_push + current_function_pretend_args_size
+ d + d_rounding
+ current_function_args_info.stack_regs * 8,
- stack_pointer_rtx, 7, emit_insn);
+ stack_pointer_rtx, (sibcall_p ? -1 : temp), emit_insn);
/* Switch back to the normal stack if necessary. */
if (sp_switch)
@@ -5062,7 +5139,7 @@ sh_need_epilogue ()
rtx epilogue;
start_sequence ();
- sh_expand_epilogue ();
+ sh_expand_epilogue (0);
epilogue = get_insns ();
end_sequence ();
sh_need_epilogue_known = (epilogue == NULL ? -1 : 1);
@@ -5235,7 +5312,7 @@ sh_build_va_list ()
if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
return ptr_type_node;
- record = make_node (RECORD_TYPE);
+ record = (*lang_hooks.types.make_type) (RECORD_TYPE);
f_next_o = build_decl (FIELD_DECL, get_identifier ("__va_next_o"),
ptr_type_node);
@@ -7355,14 +7432,14 @@ sh_initialize_trampoline (tramp, fnaddr, cxt)
emit_insn (gen_mshflo_w_x (gen_rtx_SUBREG (V4HImode, quad0, 0),
gen_rtx_SUBREG (V2HImode, fnaddr, 0),
movishori));
- emit_insn (gen_rotldi3_mextr (quad0, quad0,
+ emit_insn (gen_rotrdi3_mextr (quad0, quad0,
GEN_INT (TARGET_LITTLE_ENDIAN ? 24 : 56)));
emit_insn (gen_ashldi3_media (quad0, quad0, GEN_INT (2)));
emit_move_insn (gen_rtx_MEM (DImode, tramp), quad0);
emit_insn (gen_mshflo_w_x (gen_rtx_SUBREG (V4HImode, cxtload, 0),
gen_rtx_SUBREG (V2HImode, cxt, 0),
movishori));
- emit_insn (gen_rotldi3_mextr (cxtload, cxtload,
+ emit_insn (gen_rotrdi3_mextr (cxtload, cxtload,
GEN_INT (TARGET_LITTLE_ENDIAN ? 24 : 56)));
emit_insn (gen_ashldi3_media (cxtload, cxtload, GEN_INT (2)));
if (TARGET_LITTLE_ENDIAN)
@@ -7740,24 +7817,25 @@ sh_expand_binop_v2sf (code, op0, op1, op2)
/* Return the class of registers for which a mode change from FROM to TO
is invalid. */
-enum reg_class
-sh_cannot_change_mode_class (from, to)
+bool
+sh_cannot_change_mode_class (from, to, class)
enum machine_mode from, to;
+ enum reg_class class;
{
if (GET_MODE_SIZE (from) != GET_MODE_SIZE (to))
{
if (TARGET_LITTLE_ENDIAN)
{
if (GET_MODE_SIZE (to) < 8 || GET_MODE_SIZE (from) < 8)
- return DF_REGS;
+ return reg_classes_intersect_p (DF_REGS, class);
}
else
{
if (GET_MODE_SIZE (from) < 8)
- return DF_HI_REGS;
+ return reg_classes_intersect_p (DF_HI_REGS, class);
}
}
- return NO_REGS;
+ return 0;
}
@@ -7797,6 +7875,9 @@ sh_register_move_cost (mode, srcclass, dstclass)
if (dstclass == T_REGS || dstclass == PR_REGS)
return 10;
+ if (dstclass == MAC_REGS && srcclass == MAC_REGS)
+ return 4;
+
if (mode == SImode && ! TARGET_SHMEDIA && TARGET_FMOVD
&& REGCLASS_HAS_FP_REG (srcclass)
&& REGCLASS_HAS_FP_REG (dstclass))
@@ -7850,4 +7931,51 @@ sh_register_operand (op, mode)
return register_operand (op, mode);
}
+/* INSN is an sfunc; return the rtx that describes the address used. */
+static rtx
+extract_sfunc_addr (rtx insn)
+{
+ rtx pattern, part = NULL_RTX;
+ int len, i;
+
+ pattern = PATTERN (insn);
+ len = XVECLEN (pattern, 0);
+ for (i = 0; i < len; i++)
+ {
+ part = XVECEXP (pattern, 0, i);
+ if (GET_CODE (part) == USE && GET_MODE (XEXP (part, 0)) == Pmode
+ && GENERAL_REGISTER_P (true_regnum (XEXP (part, 0))))
+ return XEXP (part, 0);
+ }
+ if (GET_CODE (XVECEXP (pattern, 0, 0)) == UNSPEC_VOLATILE)
+ return XVECEXP (XVECEXP (pattern, 0, 0), 0, 1);
+ abort ();
+}
+
+/* Verify that the register in use_sfunc_addr still agrees with the address
+ used in the sfunc. This prevents fill_slots_from_thread from changing
+ use_sfunc_addr.
+ INSN is the use_sfunc_addr instruction, and REG is the register it
+ guards. */
+int
+check_use_sfunc_addr (rtx insn, rtx reg)
+{
+ /* Search for the sfunc. It should really come right after INSN. */
+ while ((insn = NEXT_INSN (insn)))
+ {
+ if (GET_CODE (insn) == CODE_LABEL || GET_CODE (insn) == JUMP_INSN)
+ break;
+ if (! INSN_P (insn))
+ continue;
+
+ if (GET_CODE (PATTERN (insn)) == SEQUENCE)
+ insn = XVECEXP (PATTERN (insn), 0, 0);
+ if (GET_CODE (PATTERN (insn)) != PARALLEL
+ || get_attr_type (insn) != TYPE_SFUNC)
+ continue;
+ return rtx_equal_p (extract_sfunc_addr (insn), reg);
+ }
+ abort ();
+}
+
#include "gt-sh.h"
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 57ebbb311af..14667794e20 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -475,6 +475,13 @@ do { \
to the pressure on R0. */ \
flag_schedule_insns = 0; \
\
+ if (align_loops == 0) \
+ align_loops = 1 << (TARGET_SH5 ? 3 : 2); \
+ if (align_jumps == 0) \
+ align_jumps = 1 << CACHE_LOG; \
+ else if (align_jumps < (TARGET_SHMEDIA ? 4 : 2)) \
+ align_jumps = TARGET_SHMEDIA ? 4 : 2; \
+ \
/* Allocation boundary (in *bytes*) for the code of a function. \
SH1: 32 bit alignment is faster, because instructions are always \
fetched as a pair from a longword boundary. \
@@ -482,6 +489,20 @@ do { \
if (align_functions == 0) \
align_functions \
= TARGET_SMALLCODE ? FUNCTION_BOUNDARY/8 : (1 << CACHE_LOG); \
+ /* The linker relaxation code breaks when a function contains \
+ alignments that are larger than that at the start of a \
+ compilation unit. */ \
+ if (TARGET_RELAX) \
+ { \
+ int min_align \
+ = align_loops > align_jumps ? align_loops : align_jumps; \
+ \
+ /* Also take possible .long constants / mova tables int account. */\
+ if (min_align < 4) \
+ min_align = 4; \
+ if (align_functions < min_align) \
+ align_functions = min_align; \
+ } \
} while (0)
/* Target machine storage layout. */
@@ -1346,8 +1367,9 @@ extern enum reg_class reg_class_from_letter[];
? R0_REGS \
: (CLASS == FPUL_REGS \
&& ((GET_CODE (X) == REG \
- && (REGNO (X) == MACL_REG || REGNO (X) == MACH_REG \
- || REGNO (X) == T_REG)))) \
+ && (REGNO (X) == MACL_REG || REGNO (X) == MACH_REG \
+ || REGNO (X) == T_REG)) \
+ || GET_CODE (X) == PLUS)) \
? GENERAL_REGS \
: CLASS == FPUL_REGS && immediate_operand ((X), (MODE)) \
? (GET_CODE (X) == CONST_INT && CONST_OK_FOR_I (INTVAL (X)) \
@@ -1377,8 +1399,8 @@ extern enum reg_class reg_class_from_letter[];
/* ??? We need to renumber the internal numbers for the frnn registers
when in little endian in order to allow mode size changes. */
-#define CANNOT_CHANGE_MODE_CLASS(FROM, TO) \
- sh_cannot_change_mode_class (FROM, TO)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ sh_cannot_change_mode_class (FROM, TO, CLASS)
/* Stack layout; function entry, exit and calling. */
@@ -2574,7 +2596,7 @@ while (0)
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */
-#define CASE_VECTOR_MODE (TARGET_BIGTABLE ? SImode : HImode)
+#define CASE_VECTOR_MODE ((! optimize || TARGET_BIGTABLE) ? SImode : HImode)
#define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY) \
((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 127 \
@@ -3047,7 +3069,7 @@ while (0)
/* Output an absolute table element. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE) \
- if (TARGET_BIGTABLE) \
+ if (! optimize || TARGET_BIGTABLE) \
asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); \
else \
asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE));
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 4dbda27e4b9..75d9fd8beb7 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1,6 +1,6 @@
;;- Machine description for Hitachi / SuperH SH.
-;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2004 Free Software Foundation, Inc.
;; Contributed by Steve Chamberlain (sac@cygnus.com).
;; Improved by Jim Wilson (wilson@cygnus.com).
@@ -383,9 +383,9 @@
(eq_attr "type" "jump")
(cond [(eq_attr "med_branch_p" "yes")
(const_int 2)
- (and (eq (symbol_ref "GET_CODE (PREV_INSN (insn))")
+ (and (eq (symbol_ref "GET_CODE (prev_nonnote_insn (insn))")
(symbol_ref "INSN"))
- (eq (symbol_ref "INSN_CODE (PREV_INSN (insn))")
+ (eq (symbol_ref "INSN_CODE (prev_nonnote_insn (insn))")
(symbol_ref "code_for_indirect_jump_scratch")))
(if_then_else (eq_attr "braf_branch_p" "yes")
(const_int 6)
@@ -1220,7 +1220,7 @@
(define_insn "use_sfunc_addr"
[(set (reg:SI PR_REG)
(unspec:SI [(match_operand:SI 0 "register_operand" "r")] UNSPEC_SFUNC))]
- "TARGET_SH1"
+ "TARGET_SH1 && check_use_sfunc_addr (insn, operands[0])"
""
[(set_attr "length" "0")])
@@ -2174,7 +2174,7 @@
parts[0] = gen_reg_rtx (SImode);
parts[1] = gen_reg_rtx (SImode);
emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
- parts[choice-1] = operands[1];
+ emit_move_insn (parts[choice-1], operands[1]);
emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
@@ -5024,9 +5024,14 @@
;; This one has the additional purpose to record a possible scratch register
;; for the following branch.
+;; ??? Unfortunately, just setting the scratch register is not good enough,
+;; because the insn then might be deemed dead and deleted. And we can't
+;; make the use in the jump insn explicit because that would disable
+;; delay slot scheduling from the target.
(define_insn "indirect_jump_scratch"
[(set (match_operand:SI 0 "register_operand" "=r")
- (unspec:SI [(match_operand 1 "const_int_operand" "")] UNSPEC_BBR))]
+ (unspec:SI [(match_operand 1 "const_int_operand" "")] UNSPEC_BBR))
+ (set (pc) (unspec [(const_int 0)] UNSPEC_BBR))]
"TARGET_SH1"
""
[(set_attr "length" "0")])
@@ -5464,6 +5469,19 @@
[(set_attr "type" "jump")
(set_attr "needs_delay_slot" "yes")])
+;; ??? It would be much saner to explicitly use the scratch register
+;; in the jump insn, and have indirect_jump_scratch only set it,
+;; but fill_simple_delay_slots would refuse to do delay slot filling
+;; from the target then, as it uses simplejump_p.
+;;(define_insn "jump_compact_far"
+;; [(set (pc)
+;; (label_ref (match_operand 0 "" "")))
+;; (use (match_operand 1 "register_operand" "r")]
+;; "TARGET_SH1"
+;; "* return output_far_jump(insn, operands[0], operands[1]);"
+;; [(set_attr "type" "jump")
+;; (set_attr "needs_delay_slot" "yes")])
+
(define_insn "jump_media"
[(set (pc)
(match_operand:DI 0 "target_operand" "b"))]
@@ -6396,7 +6414,7 @@
""
"
{
- sh_expand_epilogue ();
+ sh_expand_epilogue (1);
if (TARGET_SHCOMPACT)
{
rtx insn, set;
@@ -7140,7 +7158,7 @@
""
"
{
- sh_expand_epilogue ();
+ sh_expand_epilogue (0);
emit_jump_insn (gen_return ());
DONE;
}")
diff --git a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux
index 2fc932cdc7f..3dd63fc7ea9 100644
--- a/gcc/config/sh/t-linux
+++ b/gcc/config/sh/t-linux
@@ -1,3 +1,6 @@
+# Don't run fixproto
+STMP_FIXPROTO =
+
TARGET_LIBGCC2_CFLAGS = -fpic
LIB1ASMFUNCS_CACHE = _ic_invalidate
@@ -9,3 +12,30 @@ MULTILIB_MATCHES =
MULTILIB_EXCEPTIONS=
EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
+
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used. Also use sh specific
+# libgcc-std.ver to avoid to export some lib1func routines which
+# shoud not be called via PLT.
+SHLIB_MAPFILES = $(srcdir)/config/sh/libgcc-std.ver \
+ $(srcdir)/config/sh/libgcc-glibc.ver
+
+# Override SHLIB_LINK and SHLIB_INSTALL to use linker script
+# libgcc_s.so.
+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+ -Wl,--soname=$(SHLIB_SONAME) \
+ -Wl,--version-script=$(SHLIB_MAP) \
+ -o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_SOLINK) && \
+ (echo "/* GNU ld script"; \
+ echo " Use the shared library, but some functions are only in"; \
+ echo " the static library. */"; \
+ echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
+ ) > $(SHLIB_SOLINK)
+SHLIB_INSTALL = \
+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $(INSTALL_DATA) $(SHLIB_NAME) \
+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
+ $(INSTALL_DATA) $(SHLIB_SOLINK) \
+ $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
index c5980fbe168..4b3ffb8c017 100644
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -114,8 +114,8 @@ Boston, MA 02111-1307, USA. */
#undef STARTFILE_ARCH_SPEC
#define STARTFILE_ARCH_SPEC STARTFILE_ARCH32_SPEC
-#undef LINK_ARCH32_SPEC
-#define LINK_ARCH32_SPEC \
+#undef LINK_ARCH32_SPEC_BASE
+#define LINK_ARCH32_SPEC_BASE \
"%{G:-G} \
%{YP,*} \
%{R*} \
@@ -127,6 +127,9 @@ Boston, MA 02111-1307, USA. */
%{!YP,*:%{p|pg:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \
%{!p:%{!pg:-Y P,/usr/ccs/lib:/usr/lib}}}}"
+#undef LINK_ARCH32_SPEC
+#define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
+
#undef LINK_ARCH_SPEC
#define LINK_ARCH_SPEC LINK_ARCH32_SPEC
diff --git a/gcc/config/sparc/freebsd.h b/gcc/config/sparc/freebsd.h
index 02cc7a1dfae..21f3da2183f 100644
--- a/gcc/config/sparc/freebsd.h
+++ b/gcc/config/sparc/freebsd.h
@@ -22,11 +22,20 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
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__"
+#define CPP_CPU64_DEFAULT_SPEC \
+ "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__sparc__ -D__arch64__"
+
+#undef FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_define ("__LP64__"); \
+ } \
+ while (0)
/* Because we include sparc/sysv4.h. */
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES FBSD_CPP_PREDEFINES
+/* Do not define it here, we now use TARGET_OS_CPP_BUILTINS. */
#define LINK_SPEC "%(link_arch) \
%{!mno-relax:%{!r:-relax}} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index ea16b7eed5d..78ab2a9975c 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -245,6 +245,9 @@ do { \
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64
#endif
+#undef DITF_CONVERSION_LIBFUNCS
+#define DITF_CONVERSION_LIBFUNCS 1
+
#if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR)
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif
@@ -256,6 +259,17 @@ do { \
#undef CTORS_SECTION_ASM_OP
#undef DTORS_SECTION_ASM_OP
+#undef LINK_GCC_C_SEQUENCE_SPEC
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index 8fd3a1ff0df..a3fee41bccf 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -308,6 +308,9 @@ do { \
/* #define DWARF_OFFSET_SIZE PTR_SIZE */
+#undef DITF_CONVERSION_LIBFUNCS
+#define DITF_CONVERSION_LIBFUNCS 1
+
#if defined(HAVE_LD_EH_FRAME_HDR)
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif
@@ -319,6 +322,17 @@ do { \
#undef CTORS_SECTION_ASM_OP
#undef DTORS_SECTION_ASM_OP
+#undef LINK_GCC_C_SEQUENCE_SPEC
+#define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
+#define ASM_FILE_END(FILE) \
+ do { \
+ named_section_flags (".note.GNU-stack", \
+ SECTION_DEBUG \
+ | (trampolines_created ? SECTION_CODE : 0)); \
+ } while (0)
+
/* Do code reading to identify a signal frame, and set the frame
state data appropriately. See unwind-dw2.c for the structs. */
diff --git a/gcc/config/sparc/sol2-bi.h b/gcc/config/sparc/sol2-bi.h
index 3f9416daaa0..576899f6881 100644
--- a/gcc/config/sparc/sol2-bi.h
+++ b/gcc/config/sparc/sol2-bi.h
@@ -18,6 +18,7 @@
#undef ASM_CPU32_DEFAULT_SPEC
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus"
#endif
+
#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
#undef CPP_CPU64_DEFAULT_SPEC
#define CPP_CPU64_DEFAULT_SPEC ""
@@ -27,6 +28,15 @@
#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "a"
#endif
+#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
+#undef CPP_CPU64_DEFAULT_SPEC
+#define CPP_CPU64_DEFAULT_SPEC ""
+#undef ASM_CPU32_DEFAULT_SPEC
+#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
+#undef ASM_CPU64_DEFAULT_SPEC
+#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG "b"
+#endif
+
#if DEFAULT_ARCH32_P
#define DEF_ARCH32_SPEC(__str) "%{!m64:" __str "}"
#define DEF_ARCH64_SPEC(__str) "%{m64:" __str "}"
@@ -45,15 +55,16 @@
%{mcpu=sparclite|mcpu-f930|mcpu=f934:-D__sparclite__} \
%{mcpu=v8:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
%{mcpu=supersparc:-D__supersparc__ " DEF_ARCH32_SPEC("-D__sparcv8") "} \
-%{mcpu=v9|mcpu=ultrasparc:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
+%{mcpu=v9|mcpu=ultrasparc|mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-D__sparcv8") "} \
%{!mcpu*:%{!mcypress:%{!msparclite:%{!mf930:%{!mf934:%{!mv8:%{!msupersparc:%(cpp_cpu_default)}}}}}}} \
"
#undef ASM_CPU_SPEC
#define ASM_CPU_SPEC "\
-%{mcpu=ultrasparc:" DEF_ARCH32_SPEC("-xarch=v8plusa") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "a") "} \
%{mcpu=v9:" DEF_ARCH32_SPEC("-xarch=v8plus") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "} \
-%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "}}} \
+%{mcpu=ultrasparc:" DEF_ARCH32_SPEC("-xarch=v8plusa") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "a") "} \
+%{mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC(AS_SPARC64_FLAG "b") "} \
+%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC(AS_SPARC64_FLAG) "}}}} \
%{!mcpu*:%(asm_cpu_default)} \
"
@@ -135,7 +146,7 @@
* This should be the same as in sol2.h, except with "/sparcv9"
* appended to the paths and /usr/ccs/lib is no longer necessary
*/
-#define LINK_ARCH64_SPEC \
+#define LINK_ARCH64_SPEC_BASE \
"%{mcmodel=medlow:-M /usr/lib/ld/sparcv9/map.below4G} \
%{G:-G} \
%{YP,*} \
@@ -143,11 +154,13 @@
%{compat-bsd: \
%{!YP,*:%{p|pg:-Y P,/usr/ucblib/sparcv9:/usr/lib/libp/sparcv9:/usr/lib/sparcv9} \
%{!p:%{!pg:-Y P,/usr/ucblib/sparcv9:/usr/lib/sparcv9}}} \
- -R /usr/ucblib} \
+ -R /usr/ucblib/sparcv9} \
%{!compat-bsd: \
%{!YP,*:%{p|pg:-Y P,/usr/lib/libp/sparcv9:/usr/lib/sparcv9} \
%{!p:%{!pg:-Y P,/usr/lib/sparcv9}}}}"
+#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
+
#undef LINK_ARCH_SPEC
#define LINK_ARCH_SPEC "\
%{m32:%(link_arch32)} \
diff --git a/gcc/config/sparc/sol2-c1.asm b/gcc/config/sparc/sol2-c1.asm
index 894a8c34c08..a1cc68d6756 100644
--- a/gcc/config/sparc/sol2-c1.asm
+++ b/gcc/config/sparc/sol2-c1.asm
@@ -92,6 +92,10 @@ _start:
! access those data anyway. Instead, go straight to main:
mov %l0, %o0 ! argc
mov %l1, %o1 ! argv
+#ifdef GCRT1
+ setn(___Argv, %o4, %o3)
+ stn %o1, [%o3] ! *___Argv
+#endif
! Skip argc words past argv, to env:
sll %l0, CPTRSHIFT, %o2
add %o2, CPTRSIZE, %o2
diff --git a/gcc/config/sparc/sol2-gld-bi.h b/gcc/config/sparc/sol2-gld-bi.h
index 81a1ff2395d..0beae306f17 100644
--- a/gcc/config/sparc/sol2-gld-bi.h
+++ b/gcc/config/sparc/sol2-gld-bi.h
@@ -1,9 +1,18 @@
/* Definitions of target machine for GNU compiler, for bi-arch SPARC
running Solaris 2 using the GNU linker. */
+#undef LINK_ARCH32_SPEC
+#define LINK_ARCH32_SPEC \
+ LINK_ARCH32_SPEC_BASE "%{!static: -rpath-link %R/usr/lib}"
+
+#undef LINK_ARCH64_SPEC
+#define LINK_ARCH64_SPEC \
+ LINK_ARCH64_SPEC_BASE "%{!static: -rpath-link %R/usr/lib/sparcv9}"
+
#undef LINK_ARCH_SPEC
#define LINK_ARCH_SPEC "\
%{m32:-m elf32_sparc %(link_arch32)} \
%{m64:-m elf64_sparc %(link_arch64)} \
%{!m32:%{!m64:%(link_arch_default)}} \
"
+
diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h
index 3026e405f61..00654038d07 100644
--- a/gcc/config/sparc/sol2.h
+++ b/gcc/config/sparc/sol2.h
@@ -39,11 +39,17 @@ Boston, MA 02111-1307, USA. */
#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusa"
#endif
+#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
+#undef ASM_CPU_DEFAULT_SPEC
+#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusb"
+#endif
+
#undef ASM_CPU_SPEC
#define ASM_CPU_SPEC "\
%{mcpu=v8plus:-xarch=v8plus} \
%{mcpu=v9:-xarch=v8plus} \
%{mcpu=ultrasparc:-xarch=v8plusa} \
+%{mcpu=ultrasparc3:-xarch=v8plusb} \
%{!mcpu*:%(asm_cpu_default)} \
"
diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h
index 0aa6e58f7da..8f7c9872ec2 100644
--- a/gcc/config/sparc/sparc-protos.h
+++ b/gcc/config/sparc/sparc-protos.h
@@ -88,6 +88,7 @@ extern void sparc_emit_set_const64 PARAMS ((rtx, rtx));
extern void sparc_emit_set_symbolic_const64 PARAMS ((rtx, rtx, rtx));
extern int sparc_splitdi_legitimate PARAMS ((rtx, rtx));
extern int sparc_absnegfloat_split_legitimate PARAMS ((rtx, rtx));
+extern const char *output_ubranch PARAMS ((rtx, int, rtx));
extern char *output_cbranch PARAMS ((rtx, rtx, int, int, int, int, rtx));
extern const char *output_sibcall PARAMS ((rtx, rtx));
extern char *output_v9branch PARAMS ((rtx, rtx, int, int, int, int, int,
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 9f608c352eb..4c627091302 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -1,8 +1,8 @@
/* Subroutines for insn-output.c for Sun SPARC.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
- 64 bit SPARC V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
+ 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
This file is part of GNU CC.
@@ -178,6 +178,8 @@ static void emit_hard_tfmode_operation PARAMS ((enum rtx_code, rtx *));
static void sparc_encode_section_info PARAMS ((tree, int));
static void sparc_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
HOST_WIDE_INT, tree));
+static bool sparc_can_output_mi_thunk PARAMS ((tree, HOST_WIDE_INT,
+ HOST_WIDE_INT, tree));
/* Option handling. */
@@ -244,7 +246,7 @@ enum processor_type sparc_cpu;
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK sparc_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK sparc_can_output_mi_thunk
struct gcc_target targetm = TARGET_INITIALIZER;
@@ -1357,6 +1359,34 @@ input_operand (op, mode)
return 0;
}
+/* Return 1 if OP is valid for the lhs of a compare insn. */
+
+int
+compare_operand (op, mode)
+ rtx op;
+ enum machine_mode mode;
+{
+ if (GET_CODE (op) == ZERO_EXTRACT)
+ return (register_operand (XEXP (op, 0), mode)
+ && small_int_or_double (XEXP (op, 1), mode)
+ && small_int_or_double (XEXP (op, 2), mode)
+ /* This matches cmp_zero_extract. */
+ && ((mode == SImode
+ && ((GET_CODE (XEXP (op, 2)) == CONST_INT
+ && INTVAL (XEXP (op, 2)) > 19)
+ || (GET_CODE (XEXP (op, 2)) == CONST_DOUBLE
+ && CONST_DOUBLE_LOW (XEXP (op, 2)) > 19)))
+ /* This matches cmp_zero_extract_sp64. */
+ || (mode == DImode
+ && TARGET_ARCH64
+ && ((GET_CODE (XEXP (op, 2)) == CONST_INT
+ && INTVAL (XEXP (op, 2)) > 51)
+ || (GET_CODE (XEXP (op, 2)) == CONST_DOUBLE
+ && CONST_DOUBLE_LOW (XEXP (op, 2)) > 51)))));
+ else
+ return register_operand (op, mode);
+}
+
/* We know it can't be done in one insn when we get here,
the movsi expander guarentees this. */
@@ -3393,7 +3423,7 @@ mem_min_alignment (mem, desired)
/* Vectors to keep interesting information about registers where it can easily
- be got. We use to use the actual mode value as the bit number, but there
+ be got. We used to use the actual mode value as the bit number, but there
are more than 32 modes now. Instead we use two tables: one indexed by
hard register number, and one indexed by mode. */
@@ -4037,11 +4067,19 @@ sparc_nonflat_function_epilogue (file, size, leaf_function)
of a function were call foo; dslot; this can make the return
PC of foo (ie. address of call instruction plus 8) point to
the first instruction in the next function. */
- rtx insn;
-
- fputs("\tnop\n", file);
+ rtx insn, last_real_insn;
insn = get_last_insn ();
+
+ last_real_insn = prev_real_insn (insn);
+ if (last_real_insn
+ && GET_CODE (last_real_insn) == INSN
+ && GET_CODE (PATTERN (last_real_insn)) == SEQUENCE)
+ last_real_insn = XVECEXP (PATTERN (last_real_insn), 0, 0);
+
+ if (last_real_insn && GET_CODE (last_real_insn) == CALL_INSN)
+ fputs("\tnop\n", file);
+
if (GET_CODE (insn) == NOTE)
insn = prev_nonnote_insn (insn);
if (insn && GET_CODE (insn) == BARRIER)
@@ -4522,10 +4560,13 @@ function_arg_slotno (cum, mode, type, named, incoming_p, pregno, ppadding)
struct function_arg_record_value_parms
{
- rtx ret;
- int slotno, named, regbase;
- unsigned int nregs;
- int intoffset;
+ rtx ret; /* return expression being built. */
+ int slotno; /* slot number of the argument. */
+ int named; /* whether the argument is named. */
+ int regbase; /* regno of the base register. */
+ int stack; /* 1 if part of the argument is on the stack. */
+ int intoffset; /* offset of the pending integer field. */
+ unsigned int nregs; /* number of words passed in registers. */
};
static void function_arg_record_value_3
@@ -4600,8 +4641,13 @@ function_arg_record_value_1 (type, startbitpos, parms)
this_slotno = parms->slotno + parms->intoffset
/ BITS_PER_WORD;
- intslots = MIN (intslots, SPARC_INT_ARG_MAX - this_slotno);
- intslots = MAX (intslots, 0);
+ if (intslots > 0 && intslots > SPARC_INT_ARG_MAX - this_slotno)
+ {
+ intslots = MAX (0, SPARC_INT_ARG_MAX - this_slotno);
+ /* We need to pass this field on the stack. */
+ parms->stack = 1;
+ }
+
parms->nregs += intslots;
parms->intoffset = -1;
}
@@ -4666,7 +4712,7 @@ function_arg_record_value_3 (bitpos, parms)
{
regno = parms->regbase + this_slotno;
reg = gen_rtx_REG (mode, regno);
- XVECEXP (parms->ret, 0, parms->nregs)
+ XVECEXP (parms->ret, 0, parms->stack + parms->nregs)
= gen_rtx_EXPR_LIST (VOIDmode, reg, GEN_INT (intoffset));
this_slotno += 1;
@@ -4739,7 +4785,7 @@ function_arg_record_value_2 (type, startbitpos, parms)
default: break;
}
reg = gen_rtx_REG (mode, regno);
- XVECEXP (parms->ret, 0, parms->nregs)
+ XVECEXP (parms->ret, 0, parms->stack + parms->nregs)
= gen_rtx_EXPR_LIST (VOIDmode, reg,
GEN_INT (bitpos / BITS_PER_UNIT));
parms->nregs += 1;
@@ -4747,7 +4793,7 @@ function_arg_record_value_2 (type, startbitpos, parms)
{
regno += GET_MODE_SIZE (mode) / 4;
reg = gen_rtx_REG (mode, regno);
- XVECEXP (parms->ret, 0, parms->nregs)
+ XVECEXP (parms->ret, 0, parms->stack + parms->nregs)
= gen_rtx_EXPR_LIST (VOIDmode, reg,
GEN_INT ((bitpos + GET_MODE_BITSIZE (mode))
/ BITS_PER_UNIT));
@@ -4764,8 +4810,19 @@ function_arg_record_value_2 (type, startbitpos, parms)
}
/* Used by function_arg and function_value to implement the complex
- SPARC64 structure calling conventions. */
+ conventions of the 64-bit ABI for passing and returning structures.
+ Return an expression valid as a return value for the two macros
+ FUNCTION_ARG and FUNCTION_VALUE.
+ TYPE is the data type of the argument (as a tree).
+ This is null for libcalls where that information may
+ not be available.
+ MODE is the argument's machine mode.
+ SLOTNO is the index number of the argument's slot in the parameter array.
+ NAMED is nonzero if this argument is a named parameter
+ (otherwise it is an extra parameter matching an ellipsis).
+ REGBASE is the regno of the base register for the parameter array. */
+
static rtx
function_arg_record_value (type, mode, slotno, named, regbase)
tree type;
@@ -4780,6 +4837,7 @@ function_arg_record_value (type, mode, slotno, named, regbase)
parms.slotno = slotno;
parms.named = named;
parms.regbase = regbase;
+ parms.stack = 0;
/* Compute how many registers we need. */
parms.nregs = 0;
@@ -4796,8 +4854,12 @@ function_arg_record_value (type, mode, slotno, named, regbase)
intslots = (endbit - startbit) / BITS_PER_WORD;
this_slotno = slotno + parms.intoffset / BITS_PER_WORD;
- intslots = MIN (intslots, SPARC_INT_ARG_MAX - this_slotno);
- intslots = MAX (intslots, 0);
+ if (intslots > 0 && intslots > SPARC_INT_ARG_MAX - this_slotno)
+ {
+ intslots = MAX (0, SPARC_INT_ARG_MAX - this_slotno);
+ /* We need to pass this field on the stack. */
+ parms.stack = 1;
+ }
parms.nregs += intslots;
}
@@ -4827,7 +4889,17 @@ function_arg_record_value (type, mode, slotno, named, regbase)
if (nregs == 0)
abort ();
- parms.ret = gen_rtx_PARALLEL (mode, rtvec_alloc (nregs));
+ parms.ret = gen_rtx_PARALLEL (mode, rtvec_alloc (parms.stack + nregs));
+
+ /* If at least one field must be passed on the stack, generate
+ (parallel [(expr_list (nil) ...) ...]) so that all fields will
+ also be passed on the stack. We can't do much better because the
+ semantics of FUNCTION_ARG_PARTIAL_NREGS doesn't handle the case
+ of structures for which the fields passed exclusively in registers
+ are not at the beginning of the structure. */
+ if (parms.stack)
+ XVECEXP (parms.ret, 0, 0)
+ = gen_rtx_EXPR_LIST (VOIDmode, NULL_RTX, const0_rtx);
/* Fill in the entries. */
parms.nregs = 0;
@@ -5372,18 +5444,80 @@ sparc_va_arg (valist, type)
return addr_rtx;
}
+/* Return the string to output an unconditional branch to LABEL, which is
+ the operand number of the label.
+
+ DEST is the destination insn (i.e. the label), INSN is the source. */
+
+const char *
+output_ubranch (dest, label, insn)
+ rtx dest;
+ int label;
+ rtx insn;
+{
+ static char string[64];
+ bool noop = false;
+ char *p;
+
+ /* TurboSPARC is reported to have problems with
+ with
+ foo: b,a foo
+ i.e. an empty loop with the annul bit set. The workaround is to use
+ foo: b foo; nop
+ instead. */
+
+ if (! TARGET_V9 && flag_delayed_branch
+ && (INSN_ADDRESSES (INSN_UID (dest))
+ == INSN_ADDRESSES (INSN_UID (insn))))
+ {
+ strcpy (string, "b\t");
+ noop = true;
+ }
+ else
+ {
+ bool v9_form = false;
+
+ if (TARGET_V9 && INSN_ADDRESSES_SET_P ())
+ {
+ int delta = (INSN_ADDRESSES (INSN_UID (dest))
+ - INSN_ADDRESSES (INSN_UID (insn)));
+ /* Leave some instructions for "slop". */
+ if (delta >= -260000 && delta < 260000)
+ v9_form = true;
+ }
+
+ if (v9_form)
+ strcpy (string, "ba%*,pt\t%%xcc, ");
+ else
+ strcpy (string, "b%*\t");
+ }
+
+ p = strchr (string, '\0');
+ *p++ = '%';
+ *p++ = 'l';
+ *p++ = '0' + label;
+ *p++ = '%';
+ if (noop)
+ *p++ = '#';
+ else
+ *p++ = '(';
+ *p = '\0';
+
+ return string;
+}
+
/* Return the string to output a conditional branch to LABEL, which is
the operand number of the label. OP is the conditional expression.
XEXP (OP, 0) is assumed to be a condition code register (integer or
floating point) and its mode specifies what kind of comparison we made.
+ DEST is the destination insn (i.e. the label), INSN is the source.
+
REVERSED is nonzero if we should reverse the sense of the comparison.
ANNUL is nonzero if we should generate an annulling branch.
- NOOP is nonzero if we have to follow this branch by a noop.
-
- INSN, if set, is the insn. */
+ NOOP is nonzero if we have to follow this branch by a noop. */
char *
output_cbranch (op, dest, label, reversed, annul, noop, insn)
@@ -5421,7 +5555,7 @@ output_cbranch (op, dest, label, reversed, annul, noop, insn)
nop
ba .LC29 */
- far = get_attr_length (insn) >= 3;
+ far = TARGET_V9 && (get_attr_length (insn) >= 3);
if (reversed ^ far)
{
/* Reversal of FP compares takes care -- an ordered compare
@@ -5551,9 +5685,7 @@ output_cbranch (op, dest, label, reversed, annul, noop, insn)
spaces -= 2;
}
- if (! TARGET_V9)
- labelno = "";
- else
+ if (TARGET_V9)
{
rtx note;
int v8 = 0;
@@ -5603,6 +5735,9 @@ output_cbranch (op, dest, label, reversed, annul, noop, insn)
spaces -= 3;
}
}
+ else
+ labelno = "";
+
if (spaces > 0)
*p++ = '\t';
else
@@ -5810,6 +5945,8 @@ sparc_emit_floatunsdi (operands)
operand number of the reg. OP is the conditional expression. The mode
of REG says what kind of comparison we made.
+ DEST is the destination insn (i.e. the label), INSN is the source.
+
REVERSED is nonzero if we should reverse the sense of the comparison.
ANNUL is nonzero if we should generate an annulling branch.
@@ -6464,6 +6601,24 @@ print_operand (file, x, code)
output_address (XEXP (x, 0));
return;
+ case 's':
+ {
+ /* Print a sign-extended 32-bit value. */
+ HOST_WIDE_INT i;
+ if (GET_CODE(x) == CONST_INT)
+ i = INTVAL (x);
+ else if (GET_CODE(x) == CONST_DOUBLE)
+ i = CONST_DOUBLE_LOW (x);
+ else
+ {
+ output_operand_lossage ("invalid %%s operand");
+ return;
+ }
+ i = trunc_int_for_mode (i, SImode);
+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, i);
+ return;
+ }
+
case 0:
/* Do nothing special. */
break;
@@ -6707,7 +6862,7 @@ void
sparc_initialize_trampoline (tramp, fnaddr, cxt)
rtx tramp, fnaddr, cxt;
{
- /* SPARC 32 bit trampoline:
+ /* SPARC 32-bit trampoline:
sethi %hi(fn), %g1
sethi %hi(static), %g2
@@ -6717,10 +6872,6 @@ sparc_initialize_trampoline (tramp, fnaddr, cxt)
SETHI i,r = 00rr rrr1 00ii iiii iiii iiii iiii iiii
JMPL r+i,d = 10dd ddd1 1100 0rrr rr1i iiii iiii iiii
*/
-#ifdef TRANSFER_FROM_TRAMPOLINE
- emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"),
- LCT_NORMAL, VOIDmode, 1, tramp, Pmode);
-#endif
emit_move_insn
(gen_rtx_MEM (SImode, plus_constant (tramp, 0)),
@@ -6759,9 +6910,17 @@ sparc_initialize_trampoline (tramp, fnaddr, cxt)
&& sparc_cpu != PROCESSOR_ULTRASPARC3)
emit_insn (gen_flush (validize_mem (gen_rtx_MEM (SImode,
plus_constant (tramp, 8)))));
+
+ /* Call __enable_execute_stack after writing onto the stack to make sure
+ the stack address is accessible. */
+#ifdef TRANSFER_FROM_TRAMPOLINE
+ emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"),
+ LCT_NORMAL, VOIDmode, 1, tramp, Pmode);
+#endif
+
}
-/* The 64 bit version is simpler because it makes more sense to load the
+/* The 64-bit version is simpler because it makes more sense to load the
values as "immediate" data out of the trampoline. It's also easier since
we can read the PC without clobbering a register. */
@@ -6769,12 +6928,8 @@ void
sparc64_initialize_trampoline (tramp, fnaddr, cxt)
rtx tramp, fnaddr, cxt;
{
-#ifdef TRANSFER_FROM_TRAMPOLINE
- emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"),
- LCT_NORMAL, VOIDmode, 1, tramp, Pmode);
-#endif
+ /* SPARC 64-bit trampoline:
- /*
rd %pc, %g1
ldx [%g1+24], %g5
jmp %g5
@@ -6797,6 +6952,13 @@ sparc64_initialize_trampoline (tramp, fnaddr, cxt)
if (sparc_cpu != PROCESSOR_ULTRASPARC
&& sparc_cpu != PROCESSOR_ULTRASPARC3)
emit_insn (gen_flushdi (validize_mem (gen_rtx_MEM (DImode, plus_constant (tramp, 8)))));
+
+ /* Call __enable_execute_stack after writing onto the stack to make sure
+ the stack address is accessible. */
+#ifdef TRANSFER_FROM_TRAMPOLINE
+ emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__enable_execute_stack"),
+ LCT_NORMAL, VOIDmode, 1, tramp, Pmode);
+#endif
}
/* Subroutines to support a flat (single) register window calling
@@ -7953,6 +8115,8 @@ sparc_check_64 (x, insn)
return 0;
}
+/* Returns assembly code to perform a DImode shift using
+ a 64-bit global or out register on SPARC-V8+. */
char *
sparc_v8plus_shift (operands, insn, opcode)
rtx *operands;
@@ -7961,8 +8125,15 @@ sparc_v8plus_shift (operands, insn, opcode)
{
static char asm_code[60];
- if (GET_CODE (operands[3]) == SCRATCH)
+ /* The scratch register is only required when the destination
+ register is not a 64-bit global or out register. */
+ if (which_alternative != 2)
operands[3] = operands[0];
+
+ /* We can only shift by constants <= 63. */
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x3f);
+
if (GET_CODE (operands[1]) == CONST_INT)
{
output_asm_insn ("mov\t%1, %3", operands);
@@ -7976,6 +8147,7 @@ sparc_v8plus_shift (operands, insn, opcode)
}
strcpy(asm_code, opcode);
+
if (which_alternative != 2)
return strcat (asm_code, "\t%0, %2, %L0\n\tsrlx\t%L0, 32, %H0");
else
@@ -8452,18 +8624,21 @@ sparc_encode_section_info (decl, first)
SYMBOL_REF_FLAG (XEXP (DECL_RTL (decl), 0)) = 1;
}
-/* Output code to add DELTA to the first argument, and then jump to FUNCTION.
- Used for C++ multiple inheritance. */
+/* Output the assembler code for a thunk function. THUNK_DECL is the
+ declaration for the thunk function itself, FUNCTION is the decl for
+ the target function. DELTA is an immediate constant offset to be
+ added to THIS. If VCALL_OFFSET is nonzero, the word at address
+ (*THIS + VCALL_OFFSET) should be additionally added to THIS. */
static void
sparc_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
FILE *file;
tree thunk_fndecl ATTRIBUTE_UNUSED;
HOST_WIDE_INT delta;
- HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED;
+ HOST_WIDE_INT vcall_offset;
tree function;
{
- rtx this, insn, funexp, delta_rtx, tmp;
+ rtx this, insn, funexp;
reload_completed = 1;
no_new_pseudos = 1;
@@ -8480,19 +8655,73 @@ sparc_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
/* Add DELTA. When possible use a plain add, otherwise load it into
a register first. */
- delta_rtx = GEN_INT (delta);
- if (!SPARC_SIMM13_P (delta))
+ if (delta)
+ {
+ rtx delta_rtx = GEN_INT (delta);
+
+ if (! SPARC_SIMM13_P (delta))
+ {
+ rtx scratch = gen_rtx_REG (Pmode, 1);
+ emit_move_insn (scratch, delta_rtx);
+ delta_rtx = scratch;
+ }
+
+ /* THIS += DELTA. */
+ emit_insn (gen_add2_insn (this, delta_rtx));
+ }
+
+ /* Add the word at address (*THIS + VCALL_OFFSET). */
+ if (vcall_offset)
{
+ rtx vcall_offset_rtx = GEN_INT (vcall_offset);
rtx scratch = gen_rtx_REG (Pmode, 1);
- if (TARGET_ARCH64)
- sparc_emit_set_const64 (scratch, delta_rtx);
+
+ if (vcall_offset >= 0)
+ abort ();
+
+ /* SCRATCH = *THIS. */
+ emit_move_insn (scratch, gen_rtx_MEM (Pmode, this));
+
+ /* Prepare for adding VCALL_OFFSET. The difficulty is that we
+ may not have any available scratch register at this point. */
+ if (SPARC_SIMM13_P (vcall_offset))
+ ;
+ /* This is the case if ARCH64 (unless -ffixed-g5 is passed). */
+ else if (! fixed_regs[5]
+ /* The below sequence is made up of at least 2 insns,
+ while the default method may need only one. */
+ && vcall_offset < -8192)
+ {
+ rtx scratch2 = gen_rtx_REG (Pmode, 5);
+ emit_move_insn (scratch2, vcall_offset_rtx);
+ vcall_offset_rtx = scratch2;
+ }
else
- sparc_emit_set_const32 (scratch, delta_rtx);
- delta_rtx = scratch;
- }
+ {
+ rtx increment = GEN_INT (-4096);
+
+ /* VCALL_OFFSET is a negative number whose typical range can be
+ estimated as -32768..0 in 32-bit mode. In almost all cases
+ it is therefore cheaper to emit multiple add insns than
+ spilling and loading the constant into a register (at least
+ 6 insns). */
+ while (! SPARC_SIMM13_P (vcall_offset))
+ {
+ emit_insn (gen_add2_insn (scratch, increment));
+ vcall_offset += 4096;
+ }
+ vcall_offset_rtx = GEN_INT (vcall_offset); /* cannot be 0 */
+ }
+
+ /* SCRATCH = *(*THIS + VCALL_OFFSET). */
+ emit_move_insn (scratch, gen_rtx_MEM (Pmode,
+ gen_rtx_PLUS (Pmode,
+ scratch,
+ vcall_offset_rtx)));
- tmp = gen_rtx_PLUS (Pmode, this, delta_rtx);
- emit_insn (gen_rtx_SET (VOIDmode, this, tmp));
+ /* THIS += *(*THIS + VCALL_OFFSET). */
+ emit_insn (gen_add2_insn (this, scratch));
+ }
/* Generate a tail call to the target function. */
if (! TREE_USED (function))
@@ -8520,4 +8749,18 @@ sparc_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
no_new_pseudos = 0;
}
+/* Return true if sparc_output_mi_thunk would be able to output the
+ assembler code for the thunk function specified by the arguments
+ it is passed, and false otherwise. */
+static bool
+sparc_can_output_mi_thunk (thunk_fndecl, delta, vcall_offset, function)
+ tree thunk_fndecl ATTRIBUTE_UNUSED;
+ HOST_WIDE_INT delta ATTRIBUTE_UNUSED;
+ HOST_WIDE_INT vcall_offset;
+ tree function ATTRIBUTE_UNUSED;
+{
+ /* Bound the loop used in the default method above. */
+ return (vcall_offset >= -32768 || ! fixed_regs[5]);
+}
+
#include "gt-sparc.h"
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 4dcff9105f0..9f5911c13ae 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1,8 +1,8 @@
/* Definitions of target machine for GNU compiler, for Sun SPARC.
Copyright (C) 1987, 1988, 1989, 1992, 1994, 1995, 1996, 1997, 1998, 1999
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
- 64 bit SPARC V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
+ 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
This file is part of GNU CC.
@@ -1233,6 +1233,20 @@ enum reg_class { NO_REGS, FPCC_REGS, I64_REGS, GENERAL_REGS, FP_REGS,
{-1, -1, -1, 0x20}, /* GENERAL_OR_EXTRA_FP_REGS */ \
{-1, -1, -1, 0x3f}} /* ALL_REGS */
+/* Defines invalid mode changes. Borrowed from pa64-regs.h.
+
+ SImode loads to floating-point registers are not zero-extended.
+ The definition for LOAD_EXTEND_OP specifies that integer loads
+ narrower than BITS_PER_WORD will be zero-extended. As a result,
+ we inhibit changes from SImode unless they are to a mode that is
+ identical in size. */
+
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (TARGET_ARCH64 \
+ && (FROM) == SImode \
+ && GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (CLASS, FP_REGS) : 0)
+
/* The same information, inverted:
Return the class number of the smallest class containing
reg number REGNO. This could be a conditional expression
@@ -1366,7 +1380,8 @@ extern char leaf_reg_remap[];
`K' is used for constants which can be loaded with a single sethi insn.
`L' is used for the range of constants supported by the movcc insns.
`M' is used for the range of constants supported by the movrcc insns.
- `N' is like K, but for constants wider than 32 bits. */
+ `N' is like K, but for constants wider than 32 bits.
+ `O' is used for the range which is just 4096. */
#define SPARC_SIMM10_P(X) ((unsigned HOST_WIDE_INT) (X) + 0x200 < 0x400)
#define SPARC_SIMM11_P(X) ((unsigned HOST_WIDE_INT) (X) + 0x400 < 0x800)
@@ -1390,6 +1405,7 @@ extern char leaf_reg_remap[];
: (C) == 'L' ? SPARC_SIMM11_P (VALUE) \
: (C) == 'M' ? SPARC_SIMM10_P (VALUE) \
: (C) == 'N' ? SPARC_SETHI_P (VALUE) \
+ : (C) == 'O' ? (VALUE) == 4096 \
: 0)
/* Similar, but for floating constants, and defining letters G and H.
@@ -1398,6 +1414,7 @@ extern char leaf_reg_remap[];
#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \
((C) == 'G' ? fp_zero_operand (VALUE, GET_MODE (VALUE)) \
: (C) == 'H' ? arith_double_operand (VALUE, DImode) \
+ : (C) == 'O' ? arith_double_4096_operand (VALUE, DImode) \
: 0)
/* Given an rtx X being reloaded into a reg required to be
@@ -2205,6 +2222,8 @@ do { \
If you change this, execute "rm explow.o recog.o reload.o". */
+#define SYMBOLIC_CONST(X) symbolic_operand (X, VOIDmode)
+
#define RTX_OK_FOR_BASE_P(X) \
((GET_CODE (X) == REG && REG_OK_FOR_BASE_P (X)) \
|| (GET_CODE (X) == SUBREG \
@@ -2238,6 +2257,8 @@ do { \
&& GET_CODE (op1) != REG \
&& GET_CODE (op1) != LO_SUM \
&& GET_CODE (op1) != MEM \
+ && (! SYMBOLIC_CONST (op1) \
+ || MODE == Pmode) \
&& (GET_CODE (op1) != CONST_INT \
|| SMALL_INT (op1))) \
goto ADDR; \
@@ -2325,6 +2346,34 @@ do { \
else if (GET_CODE (X) == CONST_INT && SMALL_INT (X)) \
goto ADDR; \
}
+
+/* Go to LABEL if ADDR (a legitimate address expression)
+ has an effect that depends on the machine mode it is used for.
+
+ In PIC mode,
+
+ (mem:HI [%l7+a])
+
+ is not equivalent to
+
+ (mem:QI [%l7+a]) (mem:QI [%l7+a+1])
+
+ because [%l7+a+1] is interpreted as the address of (a+1). */
+
+#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
+{ \
+ if (flag_pic == 1) \
+ { \
+ if (GET_CODE (ADDR) == PLUS) \
+ { \
+ rtx op0 = XEXP (ADDR, 0); \
+ rtx op1 = XEXP (ADDR, 1); \
+ if (op0 == pic_offset_table_rtx \
+ && SYMBOLIC_CONST (op1)) \
+ goto LABEL; \
+ } \
+ } \
+}
/* Try machine-dependent ways of modifying an illegitimate address
to be legitimate. If we find one, return the new, valid address.
@@ -2402,12 +2451,6 @@ do { \
} \
/* ??? 64-bit reloads. */ \
} while (0)
-
-/* Go to LABEL if ADDR (a legitimate address expression)
- has an effect that depends on the machine mode it is used for.
- On the SPARC this is never true. */
-
-#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL)
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */
@@ -2543,10 +2586,18 @@ do { \
#define LTTF2_LIBCALL "_Q_flt"
#define LETF2_LIBCALL "_Q_fle"
+/* These functions were added in SCD 2.3, so not necessarily all targets
+ support them. */
+#define FLOATDITF2_LIBCALL "_Q_lltoq"
+#define FIX_TRUNCTFDI2_LIBCALL "_Q_qtoll"
+#define FIXUNS_TRUNCTFDI2_LIBCALL "_Q_qtoull"
+
+#define DITF_CONVERSION_LIBFUNCS 0
+
/* Assume by default that the _Qp_* 64-bit libcalls are implemented such
that the inputs are fully consumed before the output memory is clobbered. */
-#define TARGET_BUGGY_QP_LIB 0
+#define TARGET_BUGGY_QP_LIB 0
/* We can define the TFmode sqrt optab only if TARGET_FPU. This is because
with soft-float, the SFmode and DFmode sqrt instructions will be absent,
@@ -2580,6 +2631,13 @@ do { \
fixtfsi_libfunc = init_one_libfunc (FIX_TRUNCTFSI2_LIBCALL); \
fixunstfsi_libfunc \
= init_one_libfunc (FIXUNS_TRUNCTFSI2_LIBCALL); \
+ if (DITF_CONVERSION_LIBFUNCS) \
+ { \
+ floatditf_libfunc = init_one_libfunc (FLOATDITF2_LIBCALL); \
+ fixtfdi_libfunc = init_one_libfunc (FIX_TRUNCTFDI2_LIBCALL);\
+ fixunstfdi_libfunc \
+ = init_one_libfunc (FIXUNS_TRUNCTFDI2_LIBCALL); \
+ } \
if (TARGET_FPU) \
sqrt_optab->handlers[(int) TFmode].libfunc \
= init_one_libfunc ("_Q_sqrt"); \
@@ -3001,6 +3059,7 @@ do { \
{"uns_arith_operand", {SUBREG, REG, CONST_INT}}, \
{"clobbered_register", {REG}}, \
{"input_operand", {SUBREG, REG, CONST_INT, MEM, CONST}}, \
+{"compare_operand", {SUBREG, REG, ZERO_EXTRACT}}, \
{"const64_operand", {CONST_INT, CONST_DOUBLE}}, \
{"const64_high_operand", {CONST_INT, CONST_DOUBLE}},
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 4024290d436..3c566f1c0a8 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -1,8 +1,8 @@
;; Machine description for SPARC chip for GNU C compiler
;; Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
;; Contributed by Michael Tiemann (tiemann@cygnus.com)
-;; 64 bit SPARC V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
+;; 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
;; at Cygnus Support.
;; This file is part of GNU CC.
@@ -120,6 +120,8 @@
(symbol_ref "TARGET_FLAT != 0"))
;; Length (in # of insns).
+;; Beware that setting a length greater or equal to 3 for conditional branches
+;; has a side-effect (see output_cbranch and output_v9branch).
(define_attr "length" ""
(cond [(eq_attr "type" "uncond_branch,call,sibcall")
(if_then_else (eq_attr "empty_delay_slot" "true")
@@ -148,8 +150,12 @@
(eq_attr "branch_type" "fcc")
(if_then_else (match_operand 0 "fcc0_reg_operand" "")
(if_then_else (eq_attr "empty_delay_slot" "true")
- (const_int 2)
- (const_int 1))
+ (if_then_else (eq (symbol_ref "TARGET_V9") (const_int 0))
+ (const_int 3)
+ (const_int 2))
+ (if_then_else (eq (symbol_ref "TARGET_V9") (const_int 0))
+ (const_int 2)
+ (const_int 1)))
(if_then_else (lt (pc) (match_dup 2))
(if_then_else (lt (minus (match_dup 2) (pc)) (const_int 260000))
(if_then_else (eq_attr "empty_delay_slot" "true")
@@ -286,10 +292,13 @@
(define_expand "cmpsi"
[(set (reg:CC 100)
- (compare:CC (match_operand:SI 0 "register_operand" "")
+ (compare:CC (match_operand:SI 0 "compare_operand" "")
(match_operand:SI 1 "arith_operand" "")))]
""
{
+ if (GET_CODE (operands[0]) == ZERO_EXTRACT && operands[1] != const0_rtx)
+ operands[0] = force_reg (SImode, operands[0]);
+
sparc_compare_op0 = operands[0];
sparc_compare_op1 = operands[1];
DONE;
@@ -297,10 +306,13 @@
(define_expand "cmpdi"
[(set (reg:CCX 100)
- (compare:CCX (match_operand:DI 0 "register_operand" "")
+ (compare:CCX (match_operand:DI 0 "compare_operand" "")
(match_operand:DI 1 "arith_double_operand" "")))]
"TARGET_ARCH64"
{
+ if (GET_CODE (operands[0]) == ZERO_EXTRACT && operands[1] != const0_rtx)
+ operands[0] = force_reg (DImode, operands[0]);
+
sparc_compare_op0 = operands[0];
sparc_compare_op1 = operands[1];
DONE;
@@ -2036,7 +2048,6 @@
if (! CONSTANT_P (operands[1]) || input_operand (operands[1], DImode))
;
else if (TARGET_ARCH64
- && CONSTANT_P (operands[1])
&& GET_CODE (operands[1]) != HIGH
&& GET_CODE (operands[1]) != LO_SUM)
{
@@ -2062,9 +2073,9 @@
(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")
+ "=T,o,T,U,o,r,r,r,?T,?f,?f,?o,?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"))]
+ " J,J,U,T,r,o,i,r, f, T, o, f, e, W, e"))]
"! TARGET_ARCH64 && TARGET_V9
&& (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
"@
@@ -2080,13 +2091,12 @@
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,*,*")])
+ [(set_attr "type" "store,store,store,load,*,*,*,*,fpstore,fpload,*,*,fpmove,fpload,fpstore")
+ (set_attr "length" "*,2,*,*,2,2,2,2,*,*,2,2,*,*,*")
+ (set_attr "fptype" "*,*,*,*,*,*,*,*,*,*,*,*,double,*,*")])
(define_insn "*movdi_insn_sp32"
[(set (match_operand:DI 0 "nonimmediate_operand"
@@ -2425,7 +2435,14 @@
(define_split
[(set (match_operand:DI 0 "register_operand" "")
(match_operand:DI 1 "register_operand" ""))]
- "! TARGET_ARCH64 && reload_completed"
+ "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))]
{
rtx set_dest = operands[0];
@@ -4742,13 +4759,11 @@
;;- arithmetic instructions
(define_expand "adddi3"
- [(set (match_operand:DI 0 "register_operand" "=r")
- (plus:DI (match_operand:DI 1 "arith_double_operand" "%r")
- (match_operand:DI 2 "arith_double_add_operand" "rHI")))]
+ [(set (match_operand:DI 0 "register_operand" "")
+ (plus:DI (match_operand:DI 1 "register_operand" "")
+ (match_operand:DI 2 "arith_double_add_operand" "")))]
""
{
- HOST_WIDE_INT i;
-
if (! TARGET_ARCH64)
{
emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2,
@@ -4759,21 +4774,6 @@
gen_rtx_REG (CCmode, SPARC_ICC_REG)))));
DONE;
}
- if (arith_double_4096_operand(operands[2], DImode))
- {
- switch (GET_CODE (operands[1]))
- {
- case CONST_INT: i = INTVAL (operands[1]); break;
- case CONST_DOUBLE: i = CONST_DOUBLE_LOW (operands[1]); break;
- default:
- emit_insn (gen_rtx_SET (VOIDmode, operands[0],
- gen_rtx_MINUS (DImode, operands[1],
- GEN_INT(-4096))));
- DONE;
- }
- emit_insn (gen_movdi (operands[0], GEN_INT (i + 4096)));
- DONE;
- }
})
(define_insn_and_split "adddi3_insn_sp32"
@@ -4939,40 +4939,24 @@
[(set_attr "length" "2")])
(define_insn "*adddi3_sp64"
- [(set (match_operand:DI 0 "register_operand" "=r")
- (plus:DI (match_operand:DI 1 "arith_double_operand" "%r")
- (match_operand:DI 2 "arith_double_operand" "rHI")))]
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (plus:DI (match_operand:DI 1 "register_operand" "%r,r")
+ (match_operand:DI 2 "arith_double_add_operand" "rHI,O")))]
"TARGET_ARCH64"
- "add\t%1, %2, %0")
-
-(define_expand "addsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,d")
- (plus:SI (match_operand:SI 1 "arith_operand" "%r,d")
- (match_operand:SI 2 "arith_add_operand" "rI,d")))]
- ""
-{
- if (arith_4096_operand(operands[2], SImode))
- {
- if (GET_CODE (operands[1]) == CONST_INT)
- emit_insn (gen_movsi (operands[0],
- GEN_INT (INTVAL (operands[1]) + 4096)));
- else
- emit_insn (gen_rtx_SET (VOIDmode, operands[0],
- gen_rtx_MINUS (SImode, operands[1],
- GEN_INT(-4096))));
- DONE;
- }
-})
+ "@
+ add\t%1, %2, %0
+ sub\t%1, -%2, %0")
-(define_insn "*addsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,d")
- (plus:SI (match_operand:SI 1 "arith_operand" "%r,d")
- (match_operand:SI 2 "arith_operand" "rI,d")))]
+(define_insn "addsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,d")
+ (plus:SI (match_operand:SI 1 "register_operand" "%r,r,d")
+ (match_operand:SI 2 "arith_add_operand" "rI,O,d")))]
""
"@
add\t%1, %2, %0
+ sub\t%1, -%2, %0
fpadd32s\t%1, %2, %0"
- [(set_attr "type" "*,fp")])
+ [(set_attr "type" "*,*,fp")])
(define_insn "*cmp_cc_plus"
[(set (reg:CC_NOOV 100)
@@ -5015,9 +4999,9 @@
[(set_attr "type" "compare")])
(define_expand "subdi3"
- [(set (match_operand:DI 0 "register_operand" "=r")
- (minus:DI (match_operand:DI 1 "register_operand" "r")
- (match_operand:DI 2 "arith_double_add_operand" "rHI")))]
+ [(set (match_operand:DI 0 "register_operand" "")
+ (minus:DI (match_operand:DI 1 "register_operand" "")
+ (match_operand:DI 2 "arith_double_add_operand" "")))]
""
{
if (! TARGET_ARCH64)
@@ -5030,13 +5014,6 @@
gen_rtx_REG (CCmode, SPARC_ICC_REG)))));
DONE;
}
- if (arith_double_4096_operand(operands[2], DImode))
- {
- emit_insn (gen_rtx_SET (VOIDmode, operands[0],
- gen_rtx_PLUS (DImode, operands[1],
- GEN_INT(-4096))));
- DONE;
- }
})
(define_insn_and_split "*subdi3_sp32"
@@ -5118,36 +5095,24 @@
[(set_attr "length" "2")])
(define_insn "*subdi3_sp64"
- [(set (match_operand:DI 0 "register_operand" "=r")
- (minus:DI (match_operand:DI 1 "register_operand" "r")
- (match_operand:DI 2 "arith_double_operand" "rHI")))]
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
+ (minus:DI (match_operand:DI 1 "register_operand" "r,r")
+ (match_operand:DI 2 "arith_double_add_operand" "rHI,O")))]
"TARGET_ARCH64"
- "sub\t%1, %2, %0")
-
-(define_expand "subsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,d")
- (minus:SI (match_operand:SI 1 "register_operand" "r,d")
- (match_operand:SI 2 "arith_add_operand" "rI,d")))]
- ""
-{
- if (arith_4096_operand(operands[2], SImode))
- {
- emit_insn (gen_rtx_SET (VOIDmode, operands[0],
- gen_rtx_PLUS (SImode, operands[1],
- GEN_INT(-4096))));
- DONE;
- }
-})
+ "@
+ sub\t%1, %2, %0
+ add\t%1, -%2, %0")
-(define_insn "*subsi3"
- [(set (match_operand:SI 0 "register_operand" "=r,d")
- (minus:SI (match_operand:SI 1 "register_operand" "r,d")
- (match_operand:SI 2 "arith_operand" "rI,d")))]
+(define_insn "subsi3"
+ [(set (match_operand:SI 0 "register_operand" "=r,r,d")
+ (minus:SI (match_operand:SI 1 "register_operand" "r,r,d")
+ (match_operand:SI 2 "arith_add_operand" "rI,O,d")))]
""
"@
sub\t%1, %2, %0
+ add\t%1, -%2, %0
fpsub32s\t%1, %2, %0"
- [(set_attr "type" "*,fp")])
+ [(set_attr "type" "*,*,fp")])
(define_insn "*cmp_minus_cc"
[(set (reg:CC_NOOV 100)
@@ -5283,9 +5248,12 @@
if (TARGET_V8PLUS)
emit_insn (gen_const_mulsidi3_v8plus (operands[0], operands[1],
operands[2]));
- else
+ else if (TARGET_ARCH32)
emit_insn (gen_const_mulsidi3_sp32 (operands[0], operands[1],
operands[2]));
+ else
+ emit_insn (gen_const_mulsidi3_sp64 (operands[0], operands[1],
+ operands[2]));
DONE;
}
if (TARGET_V8PLUS)
@@ -5314,7 +5282,7 @@
(define_insn "const_mulsidi3_v8plus"
[(set (match_operand:DI 0 "register_operand" "=h,r")
(mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r,r"))
- (match_operand:SI 2 "small_int" "I,I")))
+ (match_operand:DI 2 "small_int" "I,I")))
(clobber (match_scratch:SI 3 "=X,&h"))]
"TARGET_V8PLUS"
"@
@@ -5355,7 +5323,7 @@
(define_insn "const_mulsidi3_sp32"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "small_int" "I")))]
+ (match_operand:DI 2 "small_int" "I")))]
"TARGET_HARD_MUL32"
{
return TARGET_SPARCLET
@@ -5372,7 +5340,7 @@
(define_insn "const_mulsidi3_sp64"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "small_int" "I")))]
+ (match_operand:DI 2 "small_int" "I")))]
"TARGET_DEPRECATED_V8_INSNS && TARGET_ARCH64"
"smul\t%1, %2, %0"
[(set_attr "type" "imul")])
@@ -5444,7 +5412,7 @@
[(set (match_operand:SI 0 "register_operand" "=h,r")
(truncate:SI
(lshiftrt:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r,r"))
- (match_operand 2 "small_int" "i,i"))
+ (match_operand:DI 2 "small_int" "i,i"))
(match_operand:SI 3 "const_int_operand" "i,i"))))
(clobber (match_scratch:SI 4 "=X,&h"))]
"TARGET_V8PLUS"
@@ -5471,7 +5439,7 @@
[(set (match_operand:SI 0 "register_operand" "=r")
(truncate:SI
(lshiftrt:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "register_operand" "r"))
+ (match_operand:DI 2 "small_int" "i"))
(const_int 32))))]
"TARGET_HARD_MUL32"
"smul\t%1, %2, %%g0\n\trd\t%%y, %0"
@@ -5489,9 +5457,12 @@
if (TARGET_V8PLUS)
emit_insn (gen_const_umulsidi3_v8plus (operands[0], operands[1],
operands[2]));
- else
+ else if (TARGET_ARCH32)
emit_insn (gen_const_umulsidi3_sp32 (operands[0], operands[1],
operands[2]));
+ else
+ emit_insn (gen_const_umulsidi3_sp64 (operands[0], operands[1],
+ operands[2]));
DONE;
}
if (TARGET_V8PLUS)
@@ -5546,12 +5517,12 @@
(define_insn "const_umulsidi3_sp32"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "uns_small_int" "")))]
+ (match_operand:DI 2 "uns_small_int" "")))]
"TARGET_HARD_MUL32"
{
return TARGET_SPARCLET
- ? "umuld\t%1, %2, %L0"
- : "umul\t%1, %2, %L0\n\trd\t%%y, %H0";
+ ? "umuld\t%1, %s2, %L0"
+ : "umul\t%1, %s2, %L0\n\trd\t%%y, %H0";
}
[(set (attr "type")
(if_then_else (eq_attr "isa" "sparclet")
@@ -5563,21 +5534,21 @@
(define_insn "const_umulsidi3_sp64"
[(set (match_operand:DI 0 "register_operand" "=r")
(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "uns_small_int" "")))]
+ (match_operand:DI 2 "uns_small_int" "")))]
"TARGET_DEPRECATED_V8_INSNS && TARGET_ARCH64"
- "umul\t%1, %2, %0"
+ "umul\t%1, %s2, %0"
[(set_attr "type" "imul")])
;; XXX
(define_insn "const_umulsidi3_v8plus"
[(set (match_operand:DI 0 "register_operand" "=h,r")
(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r,r"))
- (match_operand:SI 2 "uns_small_int" "")))
+ (match_operand:DI 2 "uns_small_int" "")))
(clobber (match_scratch:SI 3 "=X,h"))]
"TARGET_V8PLUS"
"@
- umul\t%1, %2, %L0\n\tsrlx\t%L0, 32, %H0
- umul\t%1, %2, %3\n\tsrlx\t%3, 32, %H0\n\tmov\t%3, %L0"
+ umul\t%1, %s2, %L0\n\tsrlx\t%L0, 32, %H0
+ umul\t%1, %s2, %3\n\tsrlx\t%3, 32, %H0\n\tmov\t%3, %L0"
[(set_attr "type" "multi")
(set_attr "length" "2,3")])
@@ -5630,13 +5601,13 @@
[(set (match_operand:SI 0 "register_operand" "=h,r")
(truncate:SI
(lshiftrt:DI (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r,r"))
- (match_operand:SI 2 "uns_small_int" ""))
+ (match_operand:DI 2 "uns_small_int" ""))
(match_operand:SI 3 "const_int_operand" "i,i"))))
(clobber (match_scratch:SI 4 "=X,h"))]
"TARGET_V8PLUS"
"@
- umul\t%1, %2, %0\n\tsrlx\t%0, %3, %0
- umul\t%1, %2, %4\n\tsrlx\t%4, %3, %0"
+ umul\t%1, %s2, %0\n\tsrlx\t%0, %3, %0
+ umul\t%1, %s2, %4\n\tsrlx\t%4, %3, %0"
[(set_attr "type" "multi")
(set_attr "length" "2")])
@@ -5657,10 +5628,10 @@
[(set (match_operand:SI 0 "register_operand" "=r")
(truncate:SI
(lshiftrt:DI (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "r"))
- (match_operand:SI 2 "uns_small_int" ""))
+ (match_operand:DI 2 "uns_small_int" ""))
(const_int 32))))]
"TARGET_HARD_MUL32"
- "umul\t%1, %2, %%g0\n\trd\t%%y, %0"
+ "umul\t%1, %s2, %%g0\n\trd\t%%y, %0"
[(set_attr "type" "multi")
(set_attr "length" "2")])
@@ -6921,6 +6892,8 @@
{
if (operands[2] == const1_rtx)
return "add\t%1, %1, %0";
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);
return "sll\t%1, %2, %0";
}
[(set (attr "type")
@@ -6950,6 +6923,8 @@
{
if (operands[2] == const1_rtx)
return "add\t%1, %1, %0";
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x3f);
return "sllx\t%1, %2, %0";
}
[(set (attr "type")
@@ -7009,7 +6984,11 @@
(ashiftrt:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "arith_operand" "rI")))]
""
- "sra\t%1, %2, %0"
+ {
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);
+ return "sra\t%1, %2, %0";
+ }
[(set_attr "type" "shift")])
(define_insn "*ashrsi3_extend"
@@ -7056,12 +7035,17 @@
}
})
-(define_insn ""
+(define_insn "*ashrdi3_sp64"
[(set (match_operand:DI 0 "register_operand" "=r")
(ashiftrt:DI (match_operand:DI 1 "register_operand" "r")
(match_operand:SI 2 "arith_operand" "rI")))]
"TARGET_ARCH64"
- "srax\t%1, %2, %0"
+
+ {
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x3f);
+ return "srax\t%1, %2, %0";
+ }
[(set_attr "type" "shift")])
;; XXX
@@ -7080,7 +7064,11 @@
(lshiftrt:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "arith_operand" "rI")))]
""
- "srl\t%1, %2, %0"
+ {
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);
+ return "srl\t%1, %2, %0";
+ }
[(set_attr "type" "shift")])
;; This handles the case where
@@ -7137,12 +7125,16 @@
}
})
-(define_insn ""
+(define_insn "*lshrdi3_sp64"
[(set (match_operand:DI 0 "register_operand" "=r")
(lshiftrt:DI (match_operand:DI 1 "register_operand" "r")
(match_operand:SI 2 "arith_operand" "rI")))]
"TARGET_ARCH64"
- "srlx\t%1, %2, %0"
+ {
+ if (GET_CODE (operands[2]) == CONST_INT)
+ operands[2] = GEN_INT (INTVAL (operands[2]) & 0x3f);
+ return "srlx\t%1, %2, %0";
+ }
[(set_attr "type" "shift")])
;; XXX
@@ -7227,27 +7219,10 @@
[(set_attr "type" "shift")])
;; Unconditional and other jump instructions
-;; On the SPARC, by setting the annul bit on an unconditional branch, the
-;; following insn is never executed. This saves us a nop. Dbx does not
-;; handle such branches though, so we only use them when optimizing.
(define_insn "jump"
[(set (pc) (label_ref (match_operand 0 "" "")))]
""
-{
- /* TurboSPARC is reported to have problems with
- with
- foo: b,a foo
- i.e. an empty loop with the annul bit set. The workaround is to use
- foo: b foo; nop
- instead. */
-
- if (! TARGET_V9 && flag_delayed_branch
- && (INSN_ADDRESSES (INSN_UID (operands[0]))
- == INSN_ADDRESSES (INSN_UID (insn))))
- return "b\t%l0%#";
- else
- return TARGET_V9 ? "ba,pt%*\t%%xcc, %l0%(" : "b%*\t%l0%(";
-}
+ "* return output_ubranch (operands[0], 0, insn);"
[(set_attr "type" "uncond_branch")])
(define_expand "tablejump"
@@ -7949,7 +7924,7 @@
&& mems_ok_for_ldd_peep (operands[0], operands[1], NULL_RTX)"
[(set (match_dup 0)
(const_int 0))]
- "operands[0] = change_address (operands[0], DImode, NULL);")
+ "operands[0] = widen_memory_access (operands[0], DImode, 0);")
(define_peephole2
[(set (match_operand:SI 0 "memory_operand" "")
@@ -7960,7 +7935,7 @@
&& mems_ok_for_ldd_peep (operands[1], operands[0], NULL_RTX)"
[(set (match_dup 1)
(const_int 0))]
- "operands[1] = change_address (operands[1], DImode, NULL);")
+ "operands[1] = widen_memory_access (operands[1], DImode, 0);")
(define_peephole2
[(set (match_operand:SI 0 "register_operand" "")
@@ -7971,7 +7946,7 @@
&& mems_ok_for_ldd_peep (operands[1], operands[3], operands[0])"
[(set (match_dup 0)
(match_dup 1))]
- "operands[1] = change_address (operands[1], DImode, NULL);
+ "operands[1] = widen_memory_access (operands[1], DImode, 0);
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));")
(define_peephole2
@@ -7983,7 +7958,7 @@
&& mems_ok_for_ldd_peep (operands[0], operands[2], NULL_RTX)"
[(set (match_dup 0)
(match_dup 1))]
- "operands[0] = change_address (operands[0], DImode, NULL);
+ "operands[0] = widen_memory_access (operands[0], DImode, 0);
operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));")
(define_peephole2
@@ -7995,7 +7970,7 @@
&& mems_ok_for_ldd_peep (operands[1], operands[3], operands[0])"
[(set (match_dup 0)
(match_dup 1))]
- "operands[1] = change_address (operands[1], DFmode, NULL);
+ "operands[1] = widen_memory_access (operands[1], DFmode, 0);
operands[0] = gen_rtx_REG (DFmode, REGNO (operands[0]));")
(define_peephole2
@@ -8007,7 +7982,7 @@
&& mems_ok_for_ldd_peep (operands[0], operands[2], NULL_RTX)"
[(set (match_dup 0)
(match_dup 1))]
- "operands[0] = change_address (operands[0], DFmode, NULL);
+ "operands[0] = widen_memory_access (operands[0], DFmode, 0);
operands[1] = gen_rtx_REG (DFmode, REGNO (operands[1]));")
(define_peephole2
@@ -8019,7 +7994,7 @@
&& mems_ok_for_ldd_peep (operands[3], operands[1], operands[0])"
[(set (match_dup 2)
(match_dup 3))]
- "operands[3] = change_address (operands[3], DImode, NULL);
+ "operands[3] = widen_memory_access (operands[3], DImode, 0);
operands[2] = gen_rtx_REG (DImode, REGNO (operands[2]));")
(define_peephole2
@@ -8031,7 +8006,7 @@
&& mems_ok_for_ldd_peep (operands[2], operands[0], NULL_RTX)"
[(set (match_dup 2)
(match_dup 3))]
- "operands[2] = change_address (operands[2], DImode, NULL);
+ "operands[2] = widen_memory_access (operands[2], DImode, 0);
operands[3] = gen_rtx_REG (DImode, REGNO (operands[3]));
")
@@ -8044,7 +8019,7 @@
&& mems_ok_for_ldd_peep (operands[3], operands[1], operands[0])"
[(set (match_dup 2)
(match_dup 3))]
- "operands[3] = change_address (operands[3], DFmode, NULL);
+ "operands[3] = widen_memory_access (operands[3], DFmode, 0);
operands[2] = gen_rtx_REG (DFmode, REGNO (operands[2]));")
(define_peephole2
@@ -8056,7 +8031,7 @@
&& mems_ok_for_ldd_peep (operands[2], operands[0], NULL_RTX)"
[(set (match_dup 2)
(match_dup 3))]
- "operands[2] = change_address (operands[2], DFmode, NULL);
+ "operands[2] = widen_memory_access (operands[2], DFmode, 0);
operands[3] = gen_rtx_REG (DFmode, REGNO (operands[3]));")
;; Optimize the case of following a reg-reg move with a test
@@ -8254,31 +8229,6 @@
[(set_attr "type" "multi")
(set_attr "length" "2")])
-;; Now peepholes to do a call followed by a jump.
-
-(define_peephole
- [(parallel [(set (match_operand 0 "" "")
- (call (mem:SI (match_operand:SI 1 "call_operand_address" "ps"))
- (match_operand 2 "" "")))
- (clobber (reg:SI 15))])
- (set (pc) (label_ref (match_operand 3 "" "")))]
- "short_branch (INSN_UID (insn), INSN_UID (operands[3]))
- && (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))
- && sparc_cpu != PROCESSOR_ULTRASPARC
- && sparc_cpu != PROCESSOR_ULTRASPARC3"
- "call\t%a1, %2\n\tadd\t%%o7, (%l3-.-4), %%o7")
-
-(define_peephole
- [(parallel [(call (mem:SI (match_operand:SI 0 "call_operand_address" "ps"))
- (match_operand 1 "" ""))
- (clobber (reg:SI 15))])
- (set (pc) (label_ref (match_operand 2 "" "")))]
- "short_branch (INSN_UID (insn), INSN_UID (operands[2]))
- && (USING_SJLJ_EXCEPTIONS || ! can_throw_internal (ins1))
- && sparc_cpu != PROCESSOR_ULTRASPARC
- && sparc_cpu != PROCESSOR_ULTRASPARC3"
- "call\t%a0, %1\n\tadd\t%%o7, (%l2-.-4), %%o7")
-
;; ??? UltraSPARC-III note: A memory operation loading into the floating point register
;; ??? file, if it hits the prefetch cache, has a chance to dual-issue with other memory
;; ??? operations. With DFA we might be able to model this, but it requires a lot of
diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf
index 027940b10e4..6868736a178 100644
--- a/gcc/config/sparc/t-elf
+++ b/gcc/config/sparc/t-elf
@@ -24,6 +24,6 @@ INSTALL_LIBGCC = install-multilib
# Assemble startup files.
crti.o: $(srcdir)/config/sparc/sol2-ci.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crti.o -x assembler $(srcdir)/config/sparc/sol2-ci.asm
+ $(GCC_FOR_TARGET) -c -o crti.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-ci.asm
crtn.o: $(srcdir)/config/sparc/sol2-cn.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crtn.o -x assembler $(srcdir)/config/sparc/sol2-cn.asm
+ $(GCC_FOR_TARGET) -c -o crtn.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-cn.asm
diff --git a/gcc/config/sparc/t-linux b/gcc/config/sparc/t-linux
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/gcc/config/sparc/t-linux
diff --git a/gcc/config/t-darwin b/gcc/config/t-darwin
index aca59ba4f30..c823fa5d7a4 100644
--- a/gcc/config/t-darwin
+++ b/gcc/config/t-darwin
@@ -12,11 +12,11 @@ gt-darwin.h : s-gtype ; @true
# Explain how to build crt2.o
$(T)crt2$(objext): $(srcdir)/config/darwin-crt2.c $(GCC_PASSES) \
- $(TCONFIG_H) tsystem.h
+ $(TCONFIG_H) stmp-int-hdrs tsystem.h
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) \
-c $(srcdir)/config/darwin-crt2.c -o $(T)crt2$(objext)
# Use unwind-dw2-fde-darwin
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-darwin.c \
- $(srcdir)/unwind-sjlj.c
+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
diff --git a/gcc/config/t-gnu b/gcc/config/t-gnu
index 59481ee3635..7be5d00a718 100644
--- a/gcc/config/t-gnu
+++ b/gcc/config/t-gnu
@@ -1,2 +1,2 @@
# In GNU, "/usr" is a four-letter word.
-SYSTEM_HEADER_DIR = /include
+NATIVE_SYSTEM_HEADER_DIR = /include
diff --git a/gcc/config/t-libunwind b/gcc/config/t-libunwind
new file mode 100644
index 00000000000..53ba327a316
--- /dev/null
+++ b/gcc/config/t-libunwind
@@ -0,0 +1,6 @@
+# Override the default value from t-slibgcc-elf-ver and mention -lunwind
+# so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for
+# libunwind.
+SHLIB_LC = -lunwind -lc
+LIB2ADDEH = $(srcdir)/unwind-libunwind.c $(srcdir)/unwind-sjlj.c \
+ $(srcdir)/unwind-c.c
diff --git a/gcc/config/t-linux b/gcc/config/t-linux
index 3c73561fd26..61bce29c245 100644
--- a/gcc/config/t-linux
+++ b/gcc/config/t-linux
@@ -12,5 +12,5 @@ SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
# Use unwind-dw2-fde-glibc
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
- $(srcdir)/unwind-sjlj.c
+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
diff --git a/gcc/config/t-linux-gnulibc1 b/gcc/config/t-linux-gnulibc1
index 56a471579ed..52effd5ca2f 100644
--- a/gcc/config/t-linux-gnulibc1
+++ b/gcc/config/t-linux-gnulibc1
@@ -3,5 +3,5 @@ T_CFLAGS = -DUSE_GNULIBC_1
# Use unwind-dw2-fde
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
- $(srcdir)/unwind-sjlj.c
+ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
diff --git a/gcc/config/t-netbsd b/gcc/config/t-netbsd
index 919543ad427..fa2a4886320 100644
--- a/gcc/config/t-netbsd
+++ b/gcc/config/t-netbsd
@@ -1,9 +1,5 @@
# Don't run fixproto
STMP_FIXPROTO =
-# We don't want the base GCC user headers, but we do want
-# any extras a target might specify.
-USER_H = $(EXTRA_HEADERS)
-
# Always build crtstuff with PIC.
CRTSTUFF_T_CFLAGS = -fPIC
diff --git a/gcc/config/t-slibgcc-elf-ver b/gcc/config/t-slibgcc-elf-ver
index c02ff9d6b7c..a176b10fa0a 100644
--- a/gcc/config/t-slibgcc-elf-ver
+++ b/gcc/config/t-slibgcc-elf-ver
@@ -19,11 +19,11 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
- $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
$(INSTALL_DATA) $(SHLIB_NAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/t-slibgcc-sld b/gcc/config/t-slibgcc-sld
index c11a5721966..6bdd521da1b 100644
--- a/gcc/config/t-slibgcc-sld
+++ b/gcc/config/t-slibgcc-sld
@@ -17,11 +17,11 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
# $(slibdir) double quoted to protect it from expansion while building
# libgcc.mk. We want this delayed until actual install time.
SHLIB_INSTALL = \
- $$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
+ $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
$(INSTALL_DATA) $(SHLIB_NAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
- rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
+ rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
$(LN_S) $(SHLIB_SONAME) \
- $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index b04b59ef690..551c3843af1 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -186,7 +186,7 @@ extern int target_flags;
{ "no-app-regs", MASK_NO_APP_REGS, \
N_("Do not use registers r2 and r5") }, \
{ "strict-align", MASK_STRICT_ALIGN, \
- N_("Enfore strict alignment") }, \
+ N_("Enforce strict alignment") }, \
{ "no-strict-align", -MASK_STRICT_ALIGN, "" }, \
{ "big-switch", MASK_BIG_SWITCH, \
N_("Use 4 byte entries in switch tables") },\
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index 7db62115683..9672cc656cc 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -462,7 +462,7 @@ vax_address_cost (addr)
case CONST_INT:
/* byte offsets cost nothing (on a VAX 2, they cost 1 cycle) */
if (offset == 0)
- offset = (unsigned)(INTVAL(addr)+128) > 256;
+ offset = (unsigned HOST_WIDE_INT)(INTVAL(addr)+128) > 256;
break;
case CONST:
case SYMBOL_REF:
@@ -595,13 +595,13 @@ vax_rtx_cost (x)
fmt = "e"; /* all constant rotate counts are short */
break;
case PLUS:
- /* Check for small negative integer operand: subl2 can be used with
- a short positive constant instead. */
- if (GET_CODE (XEXP (x, 1)) == CONST_INT)
- if ((unsigned)(INTVAL (XEXP (x, 1)) + 63) < 127)
- fmt = "e";
case MINUS:
c = (mode == DFmode) ? 13 : 8; /* 6/8 on VAX 9000, 16/15 on VAX 2 */
+ /* Small integer operands can use subl2 and addl2. */
+ if ((GET_CODE (XEXP (x, 1)) == CONST_INT)
+ && (unsigned HOST_WIDE_INT)(INTVAL (XEXP (x, 1)) + 63) < 127)
+ fmt = "e";
+ break;
case IOR:
case XOR:
c = 3;
@@ -611,7 +611,7 @@ vax_rtx_cost (x)
c = 3;
if (GET_CODE (XEXP (x, 0)) == CONST_INT)
{
- if ((unsigned)~INTVAL (XEXP (x, 0)) > 63)
+ if ((unsigned HOST_WIDE_INT)~INTVAL (XEXP (x, 0)) > 63)
c = 4;
fmt = "e";
i = 1;
@@ -665,7 +665,8 @@ vax_rtx_cost (x)
switch (code)
{
case CONST_INT:
- if ((unsigned)INTVAL (op) > 63 && GET_MODE (x) != QImode)
+ if ((unsigned HOST_WIDE_INT)INTVAL (op) > 63
+ && GET_MODE (x) != QImode)
c += 1; /* 2 on VAX 2 */
break;
case CONST:
diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h
index 47a0f034e69..41090f96ab3 100644
--- a/gcc/config/vax/vax.h
+++ b/gcc/config/vax/vax.h
@@ -800,11 +800,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
Do not define this if the table should contain absolute addresses. */
#define CASE_VECTOR_PC_RELATIVE 1
-/* Define this if the case instruction drops through after the table
- when the index is out of range. Don't define it if the case insn
- jumps to the default label instead. */
-#define CASE_DROPS_THROUGH
-
/* Indicate that jump tables go in the text section. This is
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md
index 1a163ad7763..7ae159c816d 100644
--- a/gcc/config/vax/vax.md
+++ b/gcc/config/vax/vax.md
@@ -1969,68 +1969,63 @@
"jmp (%0)")
;; This is here to accept 5 arguments (as passed by expand_end_case)
-;; and pass the first 4 along to the casesi1 pattern that really does the work.
+;; and pass the first 4 along to the casesi1 pattern that really does
+;; the actual casesi work. We emit a jump here to the default label
+;; _before_ the casesi so that we can be sure that the casesi never
+;; drops through.
+;; This is suboptimal perhaps, but so is much of the rest of this
+;; machine description. For what it's worth, HPPA uses the same trick.
+;;
+;; operand 0 is index
+;; operand 1 is the minimum bound (a const_int)
+;; operand 2 is the maximum bound - minimum bound + 1 (also a const_int)
+;; operand 3 is CODE_LABEL for the table;
+;; operand 4 is the CODE_LABEL to go to if index out of range (ie. default).
+;;
+;; We emit:
+;; i = index - minimum_bound
+;; if (i > (maximum_bound - minimum_bound + 1) goto default;
+;; casesi (i, 0, table);
+;;
(define_expand "casesi"
- [(match_operand:SI 0 "general_operand" "") ; index
- (match_operand:SI 1 "general_operand" "") ; lower
- (match_operand:SI 2 "general_operand" "") ; upper-lower
- (match_operand 3 "" "") ; table label
- (match_operand 4 "" "")] ; default label
+ [(match_operand:SI 0 "general_operand" "")
+ (match_operand:SI 1 "general_operand" "")
+ (match_operand:SI 2 "general_operand" "")
+ (match_operand 3 "" "")
+ (match_operand 4 "" "")]
""
{
- emit_jump_insn (gen_casesi1 (operands[0], operands[1],
- operands[2], operands[3]));
+ /* i = index - minimum_bound;
+ But only if the lower bound is not already zero. */
+ if (operands[1] != const0_rtx)
+ {
+ rtx index = gen_reg_rtx (SImode);
+ emit_insn (gen_addsi3 (index,
+ operands[0],
+ GEN_INT (-INTVAL (operands[1]))));
+ operands[0] = index;
+ }
+
+ /* if (i > (maximum_bound - minimum_bound + 1) goto default; */
+ emit_insn (gen_cmpsi (operands[0], operands[2]));
+ emit_jump_insn (gen_bgtu (operands[4]));
+
+ /* casesi (i, 0, table); */
+ emit_jump_insn (gen_casesi1 (operands[0], operands[2], operands[3]));
DONE;
})
+;; This insn is a bit of a lier. It actually falls through if no case
+;; matches. But, we prevent that from ever happening by emiting a jump
+;; before this, see the define_expand above.
(define_insn "casesi1"
- [(set (pc)
- (if_then_else
- (leu (minus:SI (match_operand:SI 0 "general_operand" "g")
- (match_operand:SI 1 "general_operand" "g"))
- (match_operand:SI 2 "general_operand" "g"))
- (plus:SI (sign_extend:SI
- (mem:HI (plus:SI (mult:SI (minus:SI (match_dup 0)
- (match_dup 1))
- (const_int 2))
- (pc))))
- (label_ref:SI (match_operand 3 "" "")))
- (pc)))]
- ""
- "casel %0,%1,%2")
-
-;; This can arise by simplification when operand 1 is a constant int.
-(define_insn ""
- [(set (pc)
- (if_then_else
- (leu (plus:SI (match_operand:SI 0 "general_operand" "g")
- (match_operand:SI 1 "const_int_operand" "n"))
- (match_operand:SI 2 "general_operand" "g"))
- (plus:SI (sign_extend:SI
- (mem:HI (plus:SI (mult:SI (plus:SI (match_dup 0)
- (match_dup 1))
- (const_int 2))
- (pc))))
- (label_ref:SI (match_operand 3 "" "")))
- (pc)))]
- ""
- "*
-{
- operands[1] = GEN_INT (-INTVAL (operands[1]));
- return \"casel %0,%1,%2\";
-}")
-
-;; This can arise by simplification when the base for the case insn is zero.
-(define_insn ""
- [(set (pc)
- (if_then_else (leu (match_operand:SI 0 "general_operand" "g")
- (match_operand:SI 1 "general_operand" "g"))
- (plus:SI (sign_extend:SI
- (mem:HI (plus:SI (mult:SI (match_dup 0)
- (const_int 2))
- (pc))))
- (label_ref:SI (match_operand 2 "" "")))
- (pc)))]
+ [(match_operand:SI 1 "const_int_operand" "n")
+ (set (pc)
+ (plus:SI (sign_extend:SI
+ (mem:HI (plus:SI (mult:SI (match_operand:SI 0 "general_operand" "g")
+ (const_int 2))
+ (pc))))
+ (label_ref:SI (match_operand 2 "" ""))))]
""
"casel %0,$0,%1")
diff --git a/gcc/config/xtensa/linux.h b/gcc/config/xtensa/linux.h
index 8f10577312e..1930bac0b53 100644
--- a/gcc/config/xtensa/linux.h
+++ b/gcc/config/xtensa/linux.h
@@ -1,6 +1,6 @@
/* Xtensa Linux configuration.
Derived from the configuration for GCC for Intel i386 running Linux.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -26,11 +26,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
builtin_define ("__ELF__"); \
builtin_define ("__gnu_linux__"); \
builtin_assert ("system=posix"); \
- /* The GNU C++ standard library requires this. */ \
- if (c_language == clk_cplusplus) \
- builtin_define ("_GNU_SOURCE"); \
} while (0)
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (Xtensa GNU/Linux with ELF)", stderr);
@@ -45,12 +45,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#undef ASM_FINAL_SPEC
-#undef LIB_SPEC
-#define LIB_SPEC \
- "%{shared: -lc} \
- %{!shared: %{pthread:-lpthread} \
- %{profile:-lc_p} %{!profile: -lc}}"
-
#undef LINK_SPEC
#define LINK_SPEC \
"%{shared:-shared} \
diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h
index 195d71da642..ec689792dae 100644
--- a/gcc/config/xtensa/xtensa-protos.h
+++ b/gcc/config/xtensa/xtensa-protos.h
@@ -1,5 +1,5 @@
/* Prototypes of target machine for GNU compiler for Xtensa.
- Copyright 2001,2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
@@ -70,14 +70,14 @@ extern int xtensa_expand_conditional_move PARAMS ((rtx *, int));
extern int xtensa_expand_scc PARAMS ((rtx *));
extern int xtensa_expand_block_move PARAMS ((rtx *));
extern int xtensa_emit_move_sequence PARAMS ((rtx *, enum machine_mode));
-extern bool xtensa_copy_incoming_a7 PARAMS ((rtx *, enum machine_mode));
+extern rtx xtensa_copy_incoming_a7 PARAMS ((rtx));
extern void xtensa_emit_block_move PARAMS ((rtx *, rtx *, int));
extern void xtensa_expand_nonlocal_goto PARAMS ((rtx *));
extern void xtensa_emit_loop_end PARAMS ((rtx, rtx *));
extern char * xtensa_emit_call PARAMS ((int, rtx *));
#ifdef TREE_CODE
-extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx));
+extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, int));
extern void xtensa_va_start PARAMS ((tree, rtx));
extern rtx xtensa_va_arg PARAMS ((tree, tree));
#endif /* TREE_CODE */
@@ -93,7 +93,6 @@ 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));
#endif /* RTX_CODE */
#ifdef TREE_CODE
@@ -109,8 +108,6 @@ extern int xtensa_mem_offset PARAMS ((unsigned, enum machine_mode));
extern void xtensa_setup_frame_addresses PARAMS ((void));
extern int xtensa_dbx_register_number PARAMS ((int));
extern void override_options PARAMS ((void));
-extern void xtensa_declare_object
- PARAMS ((FILE *, char *, char *, char *, int));
extern long compute_frame_size PARAMS ((int));
extern int xtensa_frame_pointer_required PARAMS ((void));
extern void xtensa_function_prologue PARAMS ((FILE *, int));
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index babb5b06a51..426aa328be2 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Tensilica's Xtensa architecture.
- Copyright 2001,2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
@@ -90,7 +90,9 @@ const char *xtensa_st_opcodes[(int) MAX_MACHINE_MODE];
struct machine_function GTY(())
{
int accesses_prev_frame;
- bool incoming_a7_copied;
+ bool need_a7_copy;
+ bool vararg_a7;
+ rtx set_frame_ptr_insn;
};
/* Vector, indexed by hard register number, which contains 1 for a
@@ -1276,8 +1278,7 @@ xtensa_emit_move_sequence (operands, mode)
if (!xtensa_valid_move (mode, operands))
operands[1] = force_reg (mode, operands[1]);
- if (xtensa_copy_incoming_a7 (operands, mode))
- return 1;
+ operands[1] = xtensa_copy_incoming_a7 (operands[1]);
}
/* During reload we don't want to emit (subreg:X (mem:Y)) since that
@@ -1309,71 +1310,115 @@ fixup_subreg_mem (x)
}
-/* Check if this move is copying an incoming argument in a7. If so,
- emit the move, followed by the special "set_frame_ptr"
- unspec_volatile insn, at the very beginning of the function. This
- is necessary because the register allocator will ignore conflicts
- with a7 and may assign some other pseudo to a7. If that pseudo was
- assigned prior to this move, it would clobber the incoming argument
- in a7. By copying the argument out of a7 as the very first thing,
- and then immediately following that with an unspec_volatile to keep
- the scheduler away, we should avoid any problems. */
+/* Check if an incoming argument in a7 is expected to be used soon and
+ if OPND is a register or register pair that includes a7. If so,
+ create a new pseudo and copy a7 into that pseudo at the very
+ beginning of the function, followed by the special "set_frame_ptr"
+ unspec_volatile insn. The return value is either the original
+ operand, if it is not a7, or the new pseudo containing a copy of
+ the incoming argument. This is necessary because the register
+ allocator will ignore conflicts with a7 and may either assign some
+ other pseudo to a7 or use a7 as the hard_frame_pointer, clobbering
+ the incoming argument in a7. By copying the argument out of a7 as
+ the very first thing, and then immediately following that with an
+ unspec_volatile to keep the scheduler away, we should avoid any
+ problems. Putting the set_frame_ptr insn at the beginning, with
+ only the a7 copy before it, also makes it easier for the prologue
+ expander to initialize the frame pointer after the a7 copy and to
+ fix up the a7 copy to use the stack pointer instead of the frame
+ pointer. */
-bool
-xtensa_copy_incoming_a7 (operands, mode)
- rtx *operands;
- enum machine_mode mode;
+rtx
+xtensa_copy_incoming_a7 (opnd)
+ rtx opnd;
{
- if (a7_overlap_mentioned_p (operands[1])
- && !cfun->machine->incoming_a7_copied)
+ rtx entry_insns = 0;
+ rtx reg, tmp;
+ enum machine_mode mode;
+
+ if (!cfun->machine->need_a7_copy)
+ return opnd;
+
+ /* This function should never be called again once a7 has been copied. */
+ if (cfun->machine->set_frame_ptr_insn)
+ abort ();
+
+ mode = GET_MODE (opnd);
+
+ /* The operand using a7 may come in a later instruction, so just return
+ the original operand if it doesn't use a7. */
+ reg = opnd;
+ if (GET_CODE (reg) == SUBREG)
{
- rtx mov;
- switch (mode)
- {
- case DFmode:
- mov = gen_movdf_internal (operands[0], operands[1]);
- break;
- case SFmode:
- mov = gen_movsf_internal (operands[0], operands[1]);
- break;
- case DImode:
- mov = gen_movdi_internal (operands[0], operands[1]);
- break;
- case SImode:
- mov = gen_movsi_internal (operands[0], operands[1]);
- break;
- case HImode:
- mov = gen_movhi_internal (operands[0], operands[1]);
- break;
- case QImode:
- mov = gen_movqi_internal (operands[0], operands[1]);
- break;
- default:
- abort ();
- }
+ if (SUBREG_BYTE (reg) != 0)
+ abort ();
+ reg = SUBREG_REG (reg);
+ }
+ if (GET_CODE (reg) != REG
+ || REGNO (reg) > A7_REG
+ || REGNO (reg) + HARD_REGNO_NREGS (A7_REG, mode) <= A7_REG)
+ return opnd;
- /* Insert the instructions before any other argument copies.
- (The set_frame_ptr insn comes _after_ the move, so push it
- out first.) */
- push_topmost_sequence ();
- emit_insn_after (gen_set_frame_ptr (), get_insns ());
- emit_insn_after (mov, get_insns ());
- pop_topmost_sequence ();
+ /* 1-word args will always be in a7; 2-word args in a6/a7. */
+ if (REGNO (reg) + HARD_REGNO_NREGS (A7_REG, mode) - 1 != A7_REG)
+ abort ();
- /* Ideally the incoming argument in a7 would only be copied
- once, since propagating a7 into the body of a function
- will almost certainly lead to errors. However, there is
- at least one harmless case (in GCSE) where the original
- copy from a7 is changed to copy into a new pseudo. Thus,
- we use a flag to only do this special treatment for the
- first copy of a7. */
+ cfun->machine->need_a7_copy = false;
- cfun->machine->incoming_a7_copied = true;
+ /* Copy a7 to a new pseudo at the function entry. Use gen_raw_REG to
+ create the REG for a7 so that hard_frame_pointer_rtx is not used. */
- return 1;
+ push_to_sequence (entry_insns);
+ tmp = gen_reg_rtx (mode);
+
+ switch (mode)
+ {
+ case DFmode:
+ case DImode:
+ emit_insn (gen_movsi_internal (gen_rtx_SUBREG (SImode, tmp, 0),
+ gen_rtx_REG (SImode, A7_REG - 1)));
+ emit_insn (gen_movsi_internal (gen_rtx_SUBREG (SImode, tmp, 4),
+ gen_raw_REG (SImode, A7_REG)));
+ break;
+ case SFmode:
+ emit_insn (gen_movsf_internal (tmp, gen_raw_REG (mode, A7_REG)));
+ break;
+ case SImode:
+ emit_insn (gen_movsi_internal (tmp, gen_raw_REG (mode, A7_REG)));
+ break;
+ case HImode:
+ emit_insn (gen_movhi_internal (tmp, gen_raw_REG (mode, A7_REG)));
+ break;
+ case QImode:
+ emit_insn (gen_movqi_internal (tmp, gen_raw_REG (mode, A7_REG)));
+ break;
+ default:
+ abort ();
}
- return 0;
+ cfun->machine->set_frame_ptr_insn = emit_insn (gen_set_frame_ptr ());
+ entry_insns = get_insns ();
+ end_sequence ();
+
+ if (cfun->machine->vararg_a7)
+ {
+ /* This is called from within builtin_savereg, so we're already
+ inside a start_sequence that will be placed at the start of
+ the function. */
+ emit_insn (entry_insns);
+ }
+ else
+ {
+ /* Put entry_insns after the NOTE that starts the function. If
+ this is inside a start_sequence, make the outer-level insn
+ chain current, so the code is placed at the start of the
+ function. */
+ push_topmost_sequence ();
+ emit_insn_after (entry_insns, get_insns ());
+ pop_topmost_sequence ();
+ }
+
+ return tmp;
}
@@ -1721,12 +1766,12 @@ xtensa_dbx_register_number (regno)
/* Initialize CUMULATIVE_ARGS for a function. */
void
-init_cumulative_args (cum, fntype, libname)
+init_cumulative_args (cum, incoming)
CUMULATIVE_ARGS *cum; /* argument info to initialize */
- tree fntype ATTRIBUTE_UNUSED; /* tree ptr for function decl */
- rtx libname ATTRIBUTE_UNUSED; /* SYMBOL_REF of library name or 0 */
+ int incoming;
{
cum->arg_words = 0;
+ cum->incoming = incoming;
}
/* Advance the argument to the next argument position. */
@@ -1767,7 +1812,6 @@ function_arg (cum, mode, type, incoming_p)
int regbase, words, max;
int *arg_words;
int regno;
- enum machine_mode result_mode;
arg_words = &cum->arg_words;
regbase = (incoming_p ? GP_ARG_FIRST : GP_OUTGOING_ARG_FIRST);
@@ -1784,33 +1828,11 @@ function_arg (cum, mode, type, incoming_p)
return (rtx)0;
regno = regbase + *arg_words;
- result_mode = (mode == BLKmode ? TYPE_MODE (type) : mode);
-
- /* We need to make sure that references to a7 are represented with
- rtx that is not equal to hard_frame_pointer_rtx. For BLKmode and
- modes bigger than 2 words (because we only have patterns for
- modes of 2 words or smaller), we can't control the expansion
- unless we explicitly list the individual registers in a PARALLEL. */
-
- if ((mode == BLKmode || words > 2)
- && regno < A7_REG
- && regno + words > A7_REG)
- {
- rtx result;
- int n;
- result = gen_rtx_PARALLEL (result_mode, rtvec_alloc (words));
- for (n = 0; n < words; n++)
- {
- XVECEXP (result, 0, n) =
- gen_rtx_EXPR_LIST (VOIDmode,
- gen_raw_REG (SImode, regno + n),
- GEN_INT (n * UNITS_PER_WORD));
- }
- return result;
- }
+ if (cum->incoming && regno <= A7_REG && regno + words > A7_REG)
+ cfun->machine->need_a7_copy = true;
- return gen_raw_REG (result_mode, regno);
+ return gen_rtx_REG (mode, regno);
}
@@ -2082,22 +2104,6 @@ print_operand_address (file, addr)
}
-/* Emit either a label, .comm, or .lcomm directive. */
-
-void
-xtensa_declare_object (file, name, init_string, final_string, size)
- FILE *file;
- char *name;
- char *init_string;
- char *final_string;
- int size;
-{
- fputs (init_string, file); /* "", "\t.comm\t", or "\t.lcomm\t" */
- assemble_name (file, name);
- fprintf (file, final_string, size); /* ":\n", ",%u\n", ",%u\n" */
-}
-
-
void
xtensa_output_literal (file, x, mode, labelno)
FILE *file;
@@ -2203,8 +2209,6 @@ void
xtensa_reorg (first)
rtx first;
{
- rtx insn, set_frame_ptr_insn = 0;
-
unsigned long tsize = compute_frame_size (get_frame_size ());
if (tsize < (1 << (12+3)))
frame_size_const = 0;
@@ -2220,33 +2224,15 @@ xtensa_reorg (first)
if (!frame_pointer_needed)
return;
- /* Search all instructions, looking for the insn that sets up the
- frame pointer. This search will fail if the function does not
- have an incoming argument in $a7, but in that case, we can just
- set up the frame pointer at the very beginning of the
- function. */
-
- for (insn = first; insn; insn = NEXT_INSN (insn))
+ if (cfun->machine->set_frame_ptr_insn)
{
- rtx pat;
-
- if (!INSN_P (insn))
- continue;
+ rtx insn;
- pat = PATTERN (insn);
- if (GET_CODE (pat) == UNSPEC_VOLATILE
- && (XINT (pat, 1) == UNSPECV_SET_FP))
- {
- set_frame_ptr_insn = insn;
- break;
- }
- }
-
- if (set_frame_ptr_insn)
- {
/* for all instructions prior to set_frame_ptr_insn, replace
hard_frame_pointer references with stack_pointer */
- for (insn = first; insn != set_frame_ptr_insn; insn = NEXT_INSN (insn))
+ for (insn = first;
+ insn != cfun->machine->set_frame_ptr_insn;
+ insn = NEXT_INSN (insn))
{
if (INSN_P (insn))
PATTERN (insn) = replace_rtx (copy_rtx (PATTERN (insn)),
@@ -2394,9 +2380,8 @@ xtensa_builtin_saveregs ()
rtx gp_regs, dest;
int arg_words = current_function_arg_words;
int gp_left = MAX_ARGS_IN_REGISTERS - arg_words;
- int i;
- if (gp_left == 0)
+ if (gp_left <= 0)
return const0_rtx;
/* allocate the general-purpose register space */
@@ -2409,15 +2394,10 @@ xtensa_builtin_saveregs ()
plus_constant (XEXP (gp_regs, 0),
arg_words * UNITS_PER_WORD));
- /* Note: Don't use move_block_from_reg() here because the incoming
- argument in a7 cannot be represented by hard_frame_pointer_rtx.
- Instead, call gen_raw_REG() directly so that we get a distinct
- instance of (REG:SI 7). */
- for (i = 0; i < gp_left; i++)
- {
- emit_move_insn (operand_subword (dest, i, 1, BLKmode),
- gen_raw_REG (SImode, GP_ARG_FIRST + arg_words + i));
- }
+ cfun->machine->need_a7_copy = true;
+ cfun->machine->vararg_a7 = true;
+ move_block_from_reg (GP_ARG_FIRST + arg_words, dest, gp_left,
+ gp_left * UNITS_PER_WORD);
return XEXP (gp_regs, 0);
}
@@ -2718,6 +2698,10 @@ order_regs_for_local_alloc ()
for (i = 0; i < num_arg_regs; i++)
reg_alloc_order[nxt++] = GP_ARG_FIRST + i;
+ /* list the coprocessor registers in order */
+ for (i = 0; i < BR_REG_NUM; i++)
+ reg_alloc_order[nxt++] = BR_REG_FIRST + i;
+
/* list the FP registers in order for now */
for (i = 0; i < 16; i++)
reg_alloc_order[nxt++] = FP_REG_FIRST + i;
@@ -2728,65 +2712,11 @@ order_regs_for_local_alloc ()
reg_alloc_order[nxt++] = 16; /* pseudo frame pointer */
reg_alloc_order[nxt++] = 17; /* pseudo arg pointer */
- /* list the coprocessor registers in order */
- for (i = 0; i < BR_REG_NUM; i++)
- reg_alloc_order[nxt++] = BR_REG_FIRST + i;
-
reg_alloc_order[nxt++] = ACC_REG_FIRST; /* MAC16 accumulator */
}
}
-/* A customized version of reg_overlap_mentioned_p that only looks for
- references to a7 (as opposed to hard_frame_pointer_rtx). */
-
-int
-a7_overlap_mentioned_p (x)
- rtx x;
-{
- int i, j;
- unsigned int x_regno;
- const char *fmt;
-
- if (GET_CODE (x) == REG)
- {
- x_regno = REGNO (x);
- return (x != hard_frame_pointer_rtx
- && x_regno < A7_REG + 1
- && x_regno + HARD_REGNO_NREGS (A7_REG, GET_MODE (x)) > A7_REG);
- }
-
- if (GET_CODE (x) == SUBREG
- && GET_CODE (SUBREG_REG (x)) == REG
- && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER)
- {
- x_regno = subreg_regno (x);
- return (SUBREG_REG (x) != hard_frame_pointer_rtx
- && x_regno < A7_REG + 1
- && x_regno + HARD_REGNO_NREGS (A7_REG, GET_MODE (x)) > A7_REG);
- }
-
- /* X does not match, so try its subexpressions. */
- fmt = GET_RTX_FORMAT (GET_CODE (x));
- for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--)
- {
- if (fmt[i] == 'e')
- {
- if (a7_overlap_mentioned_p (XEXP (x, i)))
- return 1;
- }
- else if (fmt[i] == 'E')
- {
- for (j = XVECLEN (x, i) - 1; j >=0; j--)
- if (a7_overlap_mentioned_p (XVECEXP (x, i, j)))
- return 1;
- }
- }
-
- return 0;
-}
-
-
/* Some Xtensa targets support multiple bss sections. If the section
name ends with ".bss", add SECTION_BSS to the flags. */
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index c495ef11af2..6e80e163527 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -1,5 +1,5 @@
/* Definitions of Tensilica's Xtensa target machine for GNU compiler.
- Copyright 2001,2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
This file is part of GCC.
@@ -208,6 +208,15 @@ extern unsigned xtensa_current_frame_size;
} \
} while (0)
+#define CPP_SPEC " %(subtarget_cpp_spec) "
+
+#ifndef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC ""
+#endif
+
+#define EXTRA_SPECS \
+ { "subtarget_cpp_spec", SUBTARGET_CPP_SPEC },
+
/* Define this to set the endianness to use in libgcc2.c, which can
not depend on target_flags. */
#define LIBGCC2_WORDS_BIG_ENDIAN XCHAL_HAVE_BE
@@ -345,7 +354,6 @@ extern unsigned xtensa_current_frame_size;
0 - 15 AR[0] - AR[15]
16 FRAME_POINTER (fake = initial sp)
17 ARG_POINTER (fake = initial sp + framesize)
- 18 LOOP_COUNT (loop count special register)
18 BR[0] for floating-point CC
19 - 34 FR[0] - FR[15]
35 MAC16 accumulator */
@@ -394,10 +402,11 @@ extern unsigned xtensa_current_frame_size;
have been exhausted. */
#define REG_ALLOC_ORDER \
-{ 8, 9, 10, 11, 12, 13, 14, 15, 7, 6, 5, 4, 3, 2, 19, \
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, \
+{ 8, 9, 10, 11, 12, 13, 14, 15, 7, 6, 5, 4, 3, 2, \
+ 18, \
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, \
0, 1, 16, 17, \
- 36, \
+ 35, \
}
#define ORDER_REGS_FOR_LOCAL_ALLOC order_regs_for_local_alloc ()
@@ -424,11 +433,6 @@ extern int leaf_function;
#define GP_REG_LAST 17
#define GP_REG_NUM (GP_REG_LAST - GP_REG_FIRST + 1)
-/* Special registers */
-#define SPEC_REG_FIRST 18
-#define SPEC_REG_LAST 18
-#define SPEC_REG_NUM (SPEC_REG_LAST - SPEC_REG_FIRST + 1)
-
/* Coprocessor registers */
#define BR_REG_FIRST 18
#define BR_REG_LAST 18
@@ -473,9 +477,6 @@ extern char xtensa_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER];
== (GET_MODE_CLASS (MODE2) == MODE_FLOAT || \
GET_MODE_CLASS (MODE2) == MODE_COMPLEX_FLOAT))
-/* Register to use for LCOUNT special register. */
-#define COUNT_REGISTER_REGNUM (SPEC_REG_FIRST + 0)
-
/* Register to use for pushing function arguments. */
#define STACK_POINTER_REGNUM (GP_REG_FIRST + 1)
@@ -852,23 +853,21 @@ extern enum reg_class xtensa_char_to_class[256];
#define FUNCTION_ARG_REGNO_P(N) \
((N) >= GP_OUTGOING_ARG_FIRST && (N) <= GP_OUTGOING_ARG_LAST)
-/* Define a data type for recording info about an argument list
- during the scan of that argument list. This data type should
- hold all necessary information about the function itself
- and about the args processed so far, enough to enable macros
- such as FUNCTION_ARG to determine where the next arg should go. */
-typedef struct xtensa_args {
- int arg_words; /* # total words the arguments take */
+/* Record the number of argument words seen so far, along with a flag to
+ indicate whether these are incoming arguments. (FUNCTION_INCOMING_ARG
+ is used for both incoming and outgoing args, so a separate flag is
+ needed. */
+typedef struct xtensa_args
+{
+ int arg_words;
+ int incoming;
} CUMULATIVE_ARGS;
-/* Initialize a variable CUM of type CUMULATIVE_ARGS
- for a call to a function whose data type is FNTYPE.
- For a library call, FNTYPE is 0. */
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT) \
- init_cumulative_args (&CUM, FNTYPE, LIBNAME)
+ init_cumulative_args (&CUM, 0)
#define INIT_CUMULATIVE_INCOMING_ARGS(CUM, FNTYPE, LIBNAME) \
- init_cumulative_args (&CUM, FNTYPE, LIBNAME)
+ init_cumulative_args (&CUM, 1)
/* Update the data in CUM to advance over an argument
of mode MODE and data type TYPE.
@@ -1539,14 +1538,9 @@ typedef struct xtensa_args {
/* Globalizing directive for a label. */
#define GLOBAL_ASM_OP "\t.global\t"
-/* This says how to define a global common symbol. */
-#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \
- xtensa_declare_object (STREAM, NAME, "\n\t.comm\t", ",%u\n", (SIZE))
-
-/* This says how to define a local common symbol (ie, not visible to
- linker). */
-#define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED) \
- xtensa_declare_object (STREAM, NAME, "\n\t.lcomm\t", ",%u\n", (SIZE))
+/* Declare an uninitialized external linkage data object. */
+#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
+ asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
/* This is how to output an element of a case-vector that is absolute. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
@@ -1592,8 +1586,9 @@ typedef struct xtensa_args {
/* Define the strings to put out for each section in the object file. */
-#define TEXT_SECTION_ASM_OP "\t.text" /* instructions */
-#define DATA_SECTION_ASM_OP "\t.data" /* large data */
+#define TEXT_SECTION_ASM_OP "\t.text"
+#define DATA_SECTION_ASM_OP "\t.data"
+#define BSS_SECTION_ASM_OP "\t.section\t.bss"
/* Define output to appear before the constant pool. If the function
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index 5db5c0ca487..92a25a17521 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -1,5 +1,5 @@
;; GCC machine description for Tensilica's Xtensa architecture.
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
;; Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
;; This file is part of GCC.
@@ -97,6 +97,7 @@
""
"
{
+ rtx srclo;
rtx dstlo = gen_lowpart (SImode, operands[0]);
rtx src1lo = gen_lowpart (SImode, operands[1]);
rtx src2lo = gen_lowpart (SImode, operands[2]);
@@ -105,9 +106,21 @@
rtx src1hi = gen_highpart (SImode, operands[1]);
rtx src2hi = gen_highpart (SImode, operands[2]);
+ /* Either source can be used for overflow checking, as long as it's
+ not clobbered by the first addition. */
+ if (!rtx_equal_p (dstlo, src1lo))
+ srclo = src1lo;
+ else if (!rtx_equal_p (dstlo, src2lo))
+ srclo = src2lo;
+ else
+ {
+ srclo = gen_reg_rtx (SImode);
+ emit_move_insn (srclo, src1lo);
+ }
+
emit_insn (gen_addsi3 (dstlo, src1lo, src2lo));
emit_insn (gen_addsi3 (dsthi, src1hi, src2hi));
- emit_insn (gen_adddi_carry (dsthi, dstlo, src2lo));
+ emit_insn (gen_adddi_carry (dsthi, dstlo, srclo));
DONE;
}")
@@ -209,9 +222,9 @@
rtx src1hi = gen_highpart (SImode, operands[1]);
rtx src2hi = gen_highpart (SImode, operands[2]);
- emit_insn (gen_subsi3 (dstlo, src1lo, src2lo));
emit_insn (gen_subsi3 (dsthi, src1hi, src2hi));
emit_insn (gen_subdi_carry (dsthi, src1lo, src2lo));
+ emit_insn (gen_subsi3 (dstlo, src1lo, src2lo));
DONE;
}")
@@ -929,8 +942,7 @@
&& !register_operand (operands[1], DImode))
operands[1] = force_reg (DImode, operands[1]);
- if (xtensa_copy_incoming_a7 (operands, DImode))
- DONE;
+ operands[1] = xtensa_copy_incoming_a7 (operands[1]);
}
}")
@@ -1103,8 +1115,7 @@
&& constantpool_mem_p (operands[1]))))
operands[1] = force_reg (SFmode, operands[1]);
- if (xtensa_copy_incoming_a7 (operands, SFmode))
- DONE;
+ operands[1] = xtensa_copy_incoming_a7 (operands[1]);
}
}")
@@ -1185,8 +1196,7 @@
&& !register_operand (operands[1], DFmode))
operands[1] = force_reg (DFmode, operands[1]);
- if (xtensa_copy_incoming_a7 (operands, DFmode))
- DONE;
+ operands[1] = xtensa_copy_incoming_a7 (operands[1]);
}
}")
@@ -1289,7 +1299,16 @@
;; ....................
;;
-(define_insn "ashlsi3"
+(define_expand "ashlsi3"
+ [(set (match_operand:SI 0 "register_operand" "")
+ (ashift:SI (match_operand:SI 1 "register_operand" "")
+ (match_operand:SI 2 "arith_operand" "")))]
+ ""
+{
+ operands[1] = xtensa_copy_incoming_a7 (operands[1]);
+})
+
+(define_insn "ashlsi3_internal"
[(set (match_operand:SI 0 "register_operand" "=a,a")
(ashift:SI (match_operand:SI 1 "register_operand" "r,r")
(match_operand:SI 2 "arith_operand" "J,r")))]
@@ -2387,7 +2406,7 @@
;; to set up the frame pointer.
(define_insn "set_frame_ptr"
- [(unspec_volatile [(const_int 0)] UNSPECV_SET_FP)]
+ [(set (reg:SI A7_REG) (unspec_volatile [(const_int 0)] UNSPECV_SET_FP))]
""
"*
{
@@ -2401,7 +2420,7 @@
;; Post-reload splitter to remove fp assignment when it's not needed.
(define_split
- [(unspec_volatile [(const_int 0)] UNSPECV_SET_FP)]
+ [(set (reg:SI A7_REG) (unspec_volatile [(const_int 0)] UNSPECV_SET_FP))]
"reload_completed && !frame_pointer_needed"
[(unspec [(const_int 0)] UNSPEC_NOP)]
"")
diff --git a/gcc/configure b/gcc/configure
index 7c20fad4b86..fc53e886743 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -29,6 +29,8 @@ ac_help="$ac_help
--with-gxx-include-dir=DIR
specifies directory to put g++ header files"
ac_help="$ac_help
+ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR."
+ac_help="$ac_help
--enable-multilib enable library support for multiple ABIs"
ac_help="$ac_help
--enable-checking[=LIST]
@@ -66,6 +68,11 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-initfini-array use .init_array/.fini_array sections"
ac_help="$ac_help
+ --enable-sjlj-exceptions
+ arrange to use setjmp/longjmp exception handling"
+ac_help="$ac_help
+ --enable-libunwind-exceptions force use libunwind for exceptions"
+ac_help="$ac_help
--enable-nls use Native Language Support (default)"
ac_help="$ac_help
--with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib"
@@ -91,11 +98,6 @@ ac_help="$ac_help
enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer"
ac_help="$ac_help
- --enable-sjlj-exceptions
- arrange to use setjmp/longjmp exception handling"
-ac_help="$ac_help
- --enable-libunwind-exceptions force use libunwind for exceptions"
-ac_help="$ac_help
--enable-version-specific-runtime-libs
specify that runtime libraries should be
installed in a compiler-specific directory"
@@ -627,7 +629,7 @@ copy=cp
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6
-echo "configure:631: checking LIBRARY_PATH variable" >&5
+echo "configure:633: checking LIBRARY_PATH variable" >&5
case ${LIBRARY_PATH} in
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
library_path_setting="contains current directory"
@@ -652,7 +654,7 @@ fi
# - two terminals occur directly after each other
# - the path contains an element with a dot in it
echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6
-echo "configure:656: checking GCC_EXEC_PREFIX variable" >&5
+echo "configure:658: checking GCC_EXEC_PREFIX variable" >&5
case ${GCC_EXEC_PREFIX} in
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
gcc_exec_prefix_setting="contains current directory"
@@ -791,6 +793,47 @@ if test x${gcc_gxx_include_dir} = x; then
fi
fi
+# Check whether --with-sysroot or --without-sysroot was given.
+if test "${with_sysroot+set}" = set; then
+ withval="$with_sysroot"
+
+ case ${with_sysroot} in
+ yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
+ *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
+ esac
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+ test_prefix=/usr/local
+ else
+ test_prefix=$prefix
+ fi
+ else
+ test_prefix=$exec_prefix
+ fi
+ case ${TARGET_SYSTEM_ROOT} in
+ "${test_prefix}"|"${test_prefix}/"*|\
+ '${exec_prefix}'|'${exec_prefix}/'*)
+ t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
+ TARGET_SYSTEM_ROOT_DEFINE="$t"
+ ;;
+ esac
+
+else
+
+ TARGET_SYSTEM_ROOT=
+ TARGET_SYSTEM_ROOT_DEFINE=
+ CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
+
+fi
+
+
+
+
+
# Determine the host, build, and target systems
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
@@ -839,7 +882,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:843: checking host system type" >&5
+echo "configure:886: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -860,7 +903,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:864: checking target system type" >&5
+echo "configure:907: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -878,7 +921,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:882: checking build system type" >&5
+echo "configure:925: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -926,7 +969,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
# 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
+echo "configure:973: 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,7 +999,7 @@ if test -z "$CC"; then
# 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
+echo "configure:1003: 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
@@ -1007,7 +1050,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1011: checking for $ac_word" >&5
+echo "configure:1054: 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
@@ -1039,7 +1082,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1043: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1086: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1050,12 +1093,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 1054 "configure"
+#line 1097 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -1081,12 +1124,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1128: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1090: checking whether we are using GNU C" >&5
+echo "configure:1133: 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
@@ -1095,7 +1138,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1142: \"$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
@@ -1114,7 +1157,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1118: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1161: 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
@@ -1147,10 +1190,10 @@ fi
if test "x$CC" != xcc; then
echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6
-echo "configure:1151: checking whether $CC and cc understand -c and -o together" >&5
+echo "configure:1194: checking whether $CC and cc understand -c and -o together" >&5
else
echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6
-echo "configure:1154: checking whether cc understands -c and -o together" >&5
+echo "configure:1197: checking whether cc understands -c and -o together" >&5
fi
set dummy $CC; ac_cc="`echo $2 |
sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
@@ -1162,16 +1205,16 @@ else
# We do the test twice because some compilers refuse to overwrite an
# existing .o file with -o, though they will create one.
ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5'
-if { (eval echo configure:1166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
- test -f conftest.o && { (eval echo configure:1167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+if { (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+ test -f conftest.o && { (eval echo configure:1210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
then
eval ac_cv_prog_cc_${ac_cc}_c_o=yes
if test "x$CC" != xcc; then
# Test first that cc exists at all.
- if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
ac_try='cc -c conftest.c -o conftest.o 1>&5'
- if { (eval echo configure:1174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
- test -f conftest.o && { (eval echo configure:1175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+ if { (eval echo configure:1217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+ test -f conftest.o && { (eval echo configure:1218: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
then
# cc works too.
:
@@ -1217,7 +1260,7 @@ fi
# Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args.
set dummy ${ac_tool_prefix}gnatbind; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1221: checking for $ac_word" >&5
+echo "configure:1264: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1249,7 +1292,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "gnatbind", so it can be a program name with args.
set dummy gnatbind; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1253: checking for $ac_word" >&5
+echo "configure:1296: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1282,7 +1325,7 @@ fi
fi
echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6
-echo "configure:1286: checking for compiler driver that understands Ada" >&5
+echo "configure:1329: checking for compiler driver that understands Ada" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1291,10 +1334,7 @@ procedure conftest is begin null; end conftest;
EOF
gcc_cv_prog_adac=no
# Have to do ac_tool_prefix and user overrides by hand.
-user_adac=$ADAC
-user_cc=$CC
-for cand in ${ac_tool_prefix}$user_adac $user_adac \
- ${ac_tool_prefix}$user_cc $user_cc \
+for cand in ${ADAC+"$ADAC"} ${CC+"$CC"} \
${ac_tool_prefix}gcc gcc \
${ac_tool_prefix}cc cc \
${ac_tool_prefix}gnatgcc gnatgcc \
@@ -1327,21 +1367,21 @@ fi
echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6
-echo "configure:1331: checking whether ${CC-cc} accepts -Wno-long-long" >&5
+echo "configure:1371: checking whether ${CC-cc} accepts -Wno-long-long" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
save_CFLAGS="$CFLAGS"
CFLAGS="-Wno-long-long"
cat > conftest.$ac_ext <<EOF
-#line 1338 "configure"
+#line 1378 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_prog_cc_no_long_long=yes
else
@@ -1358,7 +1398,7 @@ echo "$ac_t""$ac_cv_prog_cc_no_long_long" 1>&6
if test x$have_gnat != xno ; then
echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6
-echo "configure:1362: checking whether ${ADAC} accepts -Wno-long-long" >&5
+echo "configure:1402: checking whether ${ADAC} accepts -Wno-long-long" >&5
if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1386,7 +1426,7 @@ fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1390: checking how to run the C preprocessor" >&5
+echo "configure:1430: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1401,13 +1441,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1405 "configure"
+#line 1445 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1451: \"$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
:
@@ -1418,13 +1458,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1422 "configure"
+#line 1462 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1468: \"$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
:
@@ -1435,13 +1475,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1439 "configure"
+#line 1479 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1445: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1485: \"$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
:
@@ -1466,21 +1506,21 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1470: checking for inline" >&5
+echo "configure:1510: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 1477 "configure"
+#line 1517 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:1484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -1506,19 +1546,19 @@ EOF
esac
echo $ac_n "checking for volatile""... $ac_c" 1>&6
-echo "configure:1510: checking for volatile" >&5
+echo "configure:1550: checking for volatile" >&5
if eval "test \"`echo '$''{'gcc_cv_c_volatile'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1515 "configure"
+#line 1555 "configure"
#include "confdefs.h"
int main() {
volatile int foo;
; return 0; }
EOF
-if { (eval echo configure:1522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_c_volatile=yes
else
@@ -1540,7 +1580,7 @@ fi
echo $ac_n "checking for long double""... $ac_c" 1>&6
-echo "configure:1544: checking for long double" >&5
+echo "configure:1584: checking for long double" >&5
if eval "test \"`echo '$''{'gcc_cv_c_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1548,7 +1588,7 @@ else
gcc_cv_c_long_double=yes
else
cat > conftest.$ac_ext <<EOF
-#line 1552 "configure"
+#line 1592 "configure"
#include "confdefs.h"
int main() {
@@ -1558,7 +1598,7 @@ long double foo = 0.0;
switch (0) case 0: case (sizeof(long double) >= sizeof(double)):;
; return 0; }
EOF
-if { (eval echo configure:1562: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_c_long_double=yes
else
@@ -1580,19 +1620,19 @@ EOF
fi
echo $ac_n "checking for long long int""... $ac_c" 1>&6
-echo "configure:1584: checking for long long int" >&5
+echo "configure:1624: checking for long long int" >&5
if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1589 "configure"
+#line 1629 "configure"
#include "confdefs.h"
int main() {
long long int i;
; return 0; }
EOF
-if { (eval echo configure:1596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_long_long=yes
else
@@ -1612,19 +1652,19 @@ EOF
fi
echo $ac_n "checking for __int64""... $ac_c" 1>&6
-echo "configure:1616: checking for __int64" >&5
+echo "configure:1656: checking for __int64" >&5
if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1621 "configure"
+#line 1661 "configure"
#include "confdefs.h"
int main() {
__int64 i;
; return 0; }
EOF
-if { (eval echo configure:1628: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1668: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c___int64=yes
else
@@ -1645,19 +1685,19 @@ EOF
fi
echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6
-echo "configure:1649: checking for built-in _Bool" >&5
+echo "configure:1689: checking for built-in _Bool" >&5
if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1654 "configure"
+#line 1694 "configure"
#include "confdefs.h"
int main() {
_Bool foo;
; return 0; }
EOF
-if { (eval echo configure:1661: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_c__bool=yes
else
@@ -1681,13 +1721,13 @@ fi
# sizeof(char) is 1 by definition.
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:1685: checking size of short" >&5
+echo "configure:1725: checking size of short" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 1691 "configure"
+#line 1731 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -1697,7 +1737,7 @@ int main() {
switch (0) case 0: case (sizeof (short) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:1701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_short=$ac_size
else
@@ -1720,13 +1760,13 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:1724: checking size of int" >&5
+echo "configure:1764: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 1730 "configure"
+#line 1770 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -1736,7 +1776,7 @@ int main() {
switch (0) case 0: case (sizeof (int) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:1740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_int=$ac_size
else
@@ -1759,13 +1799,13 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:1763: checking size of long" >&5
+echo "configure:1803: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 1769 "configure"
+#line 1809 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -1775,7 +1815,7 @@ int main() {
switch (0) case 0: case (sizeof (long) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:1779: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_long=$ac_size
else
@@ -1799,13 +1839,13 @@ EOF
if test $ac_cv_c_long_long = yes; then
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:1803: checking size of long long" >&5
+echo "configure:1843: checking size of long long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 1809 "configure"
+#line 1849 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -1815,7 +1855,7 @@ int main() {
switch (0) case 0: case (sizeof (long long) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:1819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_long_long=$ac_size
else
@@ -1840,13 +1880,13 @@ EOF
fi
if test $ac_cv_c___int64 = yes; then
echo $ac_n "checking size of __int64""... $ac_c" 1>&6
-echo "configure:1844: checking size of __int64" >&5
+echo "configure:1884: checking size of __int64" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 1850 "configure"
+#line 1890 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -1856,7 +1896,7 @@ int main() {
switch (0) case 0: case (sizeof (__int64) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:1860: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof___int64=$ac_size
else
@@ -1881,12 +1921,12 @@ EOF
fi
echo $ac_n "checking execution character set""... $ac_c" 1>&6
-echo "configure:1885: checking execution character set" >&5
+echo "configure:1925: checking execution character set" >&5
if eval "test \"`echo '$''{'ac_cv_c_charset'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1890 "configure"
+#line 1930 "configure"
#include "confdefs.h"
#if '\n' == 0x0A && ' ' == 0x20 && '0' == 0x30 \
&& 'A' == 0x41 && 'a' == 0x61 && '!' == 0x21
@@ -1902,7 +1942,7 @@ rm -f conftest*
if test x${ac_cv_c_charset+set} != xset; then
cat > conftest.$ac_ext <<EOF
-#line 1906 "configure"
+#line 1946 "configure"
#include "confdefs.h"
#if '\n' == 0x15 && ' ' == 0x40 && '0' == 0xF0 \
&& 'A' == 0xC1 && 'a' == 0x81 && '!' == 0x5A
@@ -1985,9 +2025,6 @@ no) ;;
;;
esac
-else
- # Enable some checks by default for development versions of GCC
-ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;
fi
nocommon_flag=""
@@ -2036,17 +2073,17 @@ if test x$ac_checking_valgrind != x ; then
# GCC relies on making annotations so we must have both.
ac_safe=`echo "valgrind.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for valgrind.h""... $ac_c" 1>&6
-echo "configure:2040: checking for valgrind.h" >&5
+echo "configure:2077: checking for valgrind.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
-#line 2045 "configure"
+#line 2082 "configure"
#include "confdefs.h"
#include <valgrind.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2087: \"$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*
@@ -2071,7 +2108,7 @@ fi
# Extract the first word of "valgrind", so it can be a program name with args.
set dummy valgrind; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2075: checking for $ac_word" >&5
+echo "configure:2112: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_valgrind_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2274,7 +2311,7 @@ esac
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:2278: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:2315: 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
@@ -2302,7 +2339,7 @@ fi
echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6
-echo "configure:2306: checking whether a default assembler was specified" >&5
+echo "configure:2343: checking whether a default assembler was specified" >&5
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
if test x"$gas_flag" = x"no"; then
echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6
@@ -2314,7 +2351,7 @@ else
fi
echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6
-echo "configure:2318: checking whether a default linker was specified" >&5
+echo "configure:2355: checking whether a default linker was specified" >&5
if test x"${DEFAULT_LINKER+set}" = x"set"; then
if test x"$gnu_ld_flag" = x"no"; then
echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6
@@ -2326,12 +2363,12 @@ else
fi
echo $ac_n "checking for GNU C library""... $ac_c" 1>&6
-echo "configure:2330: checking for GNU C library" >&5
+echo "configure:2367: checking for GNU C library" >&5
if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2335 "configure"
+#line 2372 "configure"
#include "confdefs.h"
#include <features.h>
int main() {
@@ -2341,7 +2378,7 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:2345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_glibc=yes
else
@@ -2362,12 +2399,12 @@ EOF
fi
# Find some useful tools
-for ac_prog in gawk mawk nawk awk
+for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2371: checking for $ac_word" >&5
+echo "configure:2408: 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
@@ -2397,7 +2434,7 @@ test -n "$AWK" && break
done
echo $ac_n "checking whether ln works""... $ac_c" 1>&6
-echo "configure:2401: checking whether ln works" >&5
+echo "configure:2438: checking whether ln works" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2429,7 +2466,7 @@ else
fi
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:2433: checking whether ln -s works" >&5
+echo "configure:2470: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2463,7 +2500,7 @@ fi
# 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:2467: checking for $ac_word" >&5
+echo "configure:2504: 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
@@ -2501,7 +2538,7 @@ fi
# 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:2505: checking for a BSD compatible install" >&5
+echo "configure:2542: 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
@@ -2552,12 +2589,12 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2556: checking for ANSI C header files" >&5
+echo "configure:2593: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2561 "configure"
+#line 2598 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2565,7 +2602,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2606: \"$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*
@@ -2582,7 +2619,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2586 "configure"
+#line 2623 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2600,7 +2637,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2604 "configure"
+#line 2641 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2621,7 +2658,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2625 "configure"
+#line 2662 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2632,7 +2669,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2656,12 +2693,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2660: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2697: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2665 "configure"
+#line 2702 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -2670,7 +2707,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:2674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -2691,19 +2728,19 @@ EOF
fi
echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6
-echo "configure:2695: checking for working stdbool.h" >&5
+echo "configure:2732: checking for working stdbool.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2700 "configure"
+#line 2737 "configure"
#include "confdefs.h"
#include <stdbool.h>
int main() {
bool foo = false;
; return 0; }
EOF
-if { (eval echo configure:2707: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2744: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_stdbool_h=yes
else
@@ -2724,12 +2761,12 @@ EOF
fi
echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6
-echo "configure:2728: checking whether string.h and strings.h may both be included" >&5
+echo "configure:2765: checking whether string.h and strings.h may both be included" >&5
if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2733 "configure"
+#line 2770 "configure"
#include "confdefs.h"
#include <string.h>
#include <strings.h>
@@ -2737,7 +2774,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:2741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_header_string=yes
else
@@ -2758,12 +2795,12 @@ EOF
fi
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:2762: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:2799: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2767 "configure"
+#line 2804 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -2779,7 +2816,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:2783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@@ -2800,23 +2837,23 @@ EOF
fi
for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h \
- fcntl.h unistd.h sys/file.h sys/time.h \
+ fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2810: checking for $ac_hdr" >&5
+echo "configure:2847: 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
-#line 2815 "configure"
+#line 2852 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2820: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2846,17 +2883,17 @@ done
# Check for thread headers.
ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for thread.h""... $ac_c" 1>&6
-echo "configure:2850: checking for thread.h" >&5
+echo "configure:2887: checking for thread.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2855 "configure"
+#line 2892 "configure"
#include "confdefs.h"
#include <thread.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2897: \"$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*
@@ -2880,17 +2917,17 @@ fi
ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for pthread.h""... $ac_c" 1>&6
-echo "configure:2884: checking for pthread.h" >&5
+echo "configure:2921: checking for pthread.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2889 "configure"
+#line 2926 "configure"
#include "confdefs.h"
#include <pthread.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2894: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2931: \"$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*
@@ -2915,12 +2952,12 @@ fi
# These tests can't be done till we know if we have limits.h.
echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6
-echo "configure:2919: checking for CHAR_BIT" >&5
+echo "configure:2956: checking for CHAR_BIT" >&5
if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2924 "configure"
+#line 2961 "configure"
#include "confdefs.h"
#ifdef HAVE_LIMITS_H
#include <limits.h>
@@ -2945,7 +2982,7 @@ fi
echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6
if test $gcc_cv_decl_char_bit = no; then
echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6
-echo "configure:2949: checking number of bits in a byte" >&5
+echo "configure:2986: checking number of bits in a byte" >&5
if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2953,7 +2990,7 @@ else
gcc_cv_c_nbby=
while test $i -lt 65; do
cat > conftest.$ac_ext <<EOF
-#line 2957 "configure"
+#line 2994 "configure"
#include "confdefs.h"
int main() {
@@ -2963,7 +3000,7 @@ switch(0) {
; }
; return 0; }
EOF
-if { (eval echo configure:2967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_c_nbby=$i; break
else
@@ -2988,7 +3025,7 @@ EOF
fi
fi
echo $ac_n "checking byte ordering""... $ac_c" 1>&6
-echo "configure:2992: checking byte ordering" >&5
+echo "configure:3029: checking byte ordering" >&5
if eval "test \"`echo '$''{'ac_cv_c_compile_endian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3002,7 +3039,7 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 3006 "configure"
+#line 3043 "configure"
#include "confdefs.h"
#ifdef HAVE_LIMITS_H
@@ -3022,7 +3059,7 @@ cat > conftest.$ac_ext <<EOF
'X', '\n'
};
EOF
-if { (eval echo configure:3026: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
od -c conftest.o |
sed 's/^[0-7]*[ ]*/ /
s/\*/./g
@@ -3061,7 +3098,7 @@ EOF
fi
echo $ac_n "checking floating point format""... $ac_c" 1>&6
-echo "configure:3065: checking floating point format" >&5
+echo "configure:3102: checking floating point format" >&5
if eval "test \"`echo '$''{'ac_cv_c_float_format'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3074,7 +3111,7 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 3078 "configure"
+#line 3115 "configure"
#include "confdefs.h"
/* This will not work unless sizeof(double) == 8. */
extern char sizeof_double_must_be_8 [sizeof(double) == 8 ? 1 : -1];
@@ -3096,7 +3133,7 @@ struct possibility table [] =
C(-5.22995989424860458374e+10) /* IBMHEXFP - s/390 format, EBCDIC */
};
EOF
-if { (eval echo configure:3100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
od -c conftest.o |
sed 's/^[0-7]*[ ]*/ /
s/\*/./g
@@ -3185,7 +3222,7 @@ fi
# Extract the first word of "mktemp", so it can be a program name with args.
set dummy mktemp; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3189: checking for $ac_word" >&5
+echo "configure:3226: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3224,7 +3261,7 @@ else
# Extract the first word of "makeinfo", so it can be a program name with args.
set dummy makeinfo; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3228: checking for $ac_word" >&5
+echo "configure:3265: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3253,16 +3290,16 @@ fi
if test -n "$MAKEINFO"; then
# Found it, now check the version.
echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6
-echo "configure:3257: checking for modern makeinfo" >&5
+echo "configure:3294: checking for modern makeinfo" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_prog_version=`$MAKEINFO --version 2>&1 |
sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
- echo "configure:3263: version of makeinfo is $ac_prog_version" >&5
+ echo "configure:3300: version of makeinfo is $ac_prog_version" >&5
case $ac_prog_version in
'') gcc_cv_prog_makeinfo_modern=no;;
- 4.[1-9]*)
+ 4.[2-9]*)
gcc_cv_prog_makeinfo_modern=yes;;
*) gcc_cv_prog_makeinfo_modern=no;;
esac
@@ -3287,7 +3324,7 @@ fi
# Is pod2man recent enough to regenerate manpages?
echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6
-echo "configure:3291: checking for recent Pod::Man" >&5
+echo "configure:3328: checking for recent Pod::Man" >&5
if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
echo "$ac_t""yes" 1>&6
GENERATED_MANPAGES=generated-manpages
@@ -3303,7 +3340,7 @@ else
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3307: checking for $ac_word" >&5
+echo "configure:3344: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3340,7 +3377,7 @@ else
# Extract the first word of "bison", so it can be a program name with args.
set dummy bison; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3344: checking for $ac_word" >&5
+echo "configure:3381: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3372,7 +3409,7 @@ fi
# These libraries may be used by collect2.
# We may need a special search path to get them linked.
echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6
-echo "configure:3376: checking for collect2 libraries" >&5
+echo "configure:3413: checking for collect2 libraries" >&5
if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3383,7 +3420,7 @@ for libs in '' -lld -lmld \
do
LIBS="$libs"
cat > conftest.$ac_ext <<EOF
-#line 3387 "configure"
+#line 3424 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3394,7 +3431,7 @@ int main() {
ldopen()
; return 0; }
EOF
-if { (eval echo configure:3398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gcc_cv_collect2_libs="$libs"; break
else
@@ -3420,14 +3457,14 @@ save_LIBS="$LIBS"
LIBS=
echo $ac_n "checking for library containing exc_resume""... $ac_c" 1>&6
-echo "configure:3424: checking for library containing exc_resume" >&5
+echo "configure:3461: checking for library containing exc_resume" >&5
if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_exc_resume="no"
cat > conftest.$ac_ext <<EOF
-#line 3431 "configure"
+#line 3468 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3438,7 +3475,7 @@ int main() {
exc_resume()
; return 0; }
EOF
-if { (eval echo configure:3442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_exc_resume="none required"
else
@@ -3449,7 +3486,7 @@ rm -f conftest*
test "$ac_cv_search_exc_resume" = "no" && for i in exc; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3453 "configure"
+#line 3490 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3460,7 +3497,7 @@ int main() {
exc_resume()
; return 0; }
EOF
-if { (eval echo configure:3464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_exc_resume="-l$i"
break
@@ -3484,17 +3521,87 @@ GNAT_LIBEXC="$LIBS"
LIBS="$save_LIBS"
+# Some systems put ldexp and frexp in libm instead of libc; assume
+# they're both in the same place. jcf-dump needs them.
+save_LIBS="$LIBS"
+LIBS=
+
+echo $ac_n "checking for library containing ldexp""... $ac_c" 1>&6
+echo "configure:3531: checking for library containing ldexp" >&5
+if eval "test \"`echo '$''{'ac_cv_search_ldexp'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_ldexp="no"
+cat > conftest.$ac_ext <<EOF
+#line 3538 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char ldexp();
+
+int main() {
+ldexp()
+; return 0; }
+EOF
+if { (eval echo configure:3549: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_ldexp="none required"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+test "$ac_cv_search_ldexp" = "no" && for i in m; do
+LIBS="-l$i $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3560 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char ldexp();
+
+int main() {
+ldexp()
+; return 0; }
+EOF
+if { (eval echo configure:3571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_search_ldexp="-l$i"
+break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_ldexp" 1>&6
+if test "$ac_cv_search_ldexp" != "no"; then
+ test "$ac_cv_search_ldexp" = "none required" || LIBS="$ac_cv_search_ldexp $LIBS"
+
+else :
+
+fi
+LDEXP_LIB="$LIBS"
+LIBS="$save_LIBS"
+
+
# See if the stage1 system preprocessor understands the ANSI C
# preprocessor stringification operator. (Used by symcat.h.)
echo $ac_n "checking for preprocessor stringizing operator""... $ac_c" 1>&6
-echo "configure:3493: checking for preprocessor stringizing operator" >&5
+echo "configure:3600: checking for preprocessor stringizing operator" >&5
if eval "test \"`echo '$''{'ac_cv_c_stringize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3498 "configure"
+#line 3605 "configure"
#include "confdefs.h"
#define x(y) #y
@@ -3527,12 +3634,12 @@ echo "$ac_t""${ac_cv_c_stringize}" 1>&6
# Use <inttypes.h> only if it exists,
# doesn't clash with <sys/types.h>, and declares intmax_t.
echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6
-echo "configure:3531: checking for inttypes.h" >&5
+echo "configure:3638: checking for inttypes.h" >&5
if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3536 "configure"
+#line 3643 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <inttypes.h>
@@ -3540,7 +3647,7 @@ int main() {
intmax_t i = -1;
; return 0; }
EOF
-if { (eval echo configure:3544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_header_inttypes_h=yes
else
@@ -3564,15 +3671,15 @@ fi
for ac_func in times clock dup2 kill getrlimit setrlimit atoll atoq \
sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
- scandir alphasort
+ scandir alphasort gettimeofday mmap
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3571: checking for $ac_func" >&5
+echo "configure:3678: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3576 "configure"
+#line 3683 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3595,7 +3702,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3621,12 +3728,12 @@ done
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3625: checking for ssize_t" >&5
+echo "configure:3732: checking for ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3630 "configure"
+#line 3737 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3657,12 +3764,12 @@ fi
# Try to determine the array type of the second argument of getgroups
# for the target system (int or gid_t).
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3661: checking for uid_t in sys/types.h" >&5
+echo "configure:3768: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3666 "configure"
+#line 3773 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -3691,7 +3798,7 @@ EOF
fi
echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:3695: checking type of array argument to getgroups" >&5
+echo "configure:3802: checking type of array argument to getgroups" >&5
if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3699,7 +3806,7 @@ else
ac_cv_type_getgroups=cross
else
cat > conftest.$ac_ext <<EOF
-#line 3703 "configure"
+#line 3810 "configure"
#include "confdefs.h"
/* Thanks to Mike Rendell for this test. */
@@ -3724,7 +3831,7 @@ main()
}
EOF
-if { (eval echo configure:3728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_type_getgroups=gid_t
else
@@ -3738,7 +3845,7 @@ fi
if test $ac_cv_type_getgroups = cross; then
cat > conftest.$ac_ext <<EOF
-#line 3742 "configure"
+#line 3849 "configure"
#include "confdefs.h"
#include <unistd.h>
EOF
@@ -3779,7 +3886,7 @@ fi
echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6
-echo "configure:3783: checking whether the printf functions support %p" >&5
+echo "configure:3890: checking whether the printf functions support %p" >&5
if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3787,7 +3894,7 @@ else
gcc_cv_func_printf_ptr=no
else
cat > conftest.$ac_ext <<EOF
-#line 3791 "configure"
+#line 3898 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -3800,7 +3907,7 @@ int main()
return (p != q);
}
EOF
-if { (eval echo configure:3804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
gcc_cv_func_printf_ptr=yes
else
@@ -3823,6 +3930,135 @@ EOF
fi
+if test $ac_cv_header_sys_mman_h != yes \
+ || test $ac_cv_func_mmap != yes; then
+ gcc_cv_func_mmap_file=no
+ gcc_cv_func_mmap_dev_zero=no
+ gcc_cv_func_mmap_anon=no
+else
+ echo $ac_n "checking whether read-only mmap of a plain file works""... $ac_c" 1>&6
+echo "configure:3941: checking whether read-only mmap of a plain file works" >&5
+if eval "test \"`echo '$''{'gcc_cv_func_mmap_file'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # Add a system to this blacklist if
+ # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
+ # memory area containing the same data that you'd get if you applied
+ # read() to the same fd. The only system known to have a problem here
+ # is VMS, where text files have record structure.
+ case "$host_os" in
+ vms* | ultrix*)
+ gcc_cv_func_mmap_file=no ;;
+ *)
+ gcc_cv_func_mmap_file=yes;;
+ esac
+fi
+
+echo "$ac_t""$gcc_cv_func_mmap_file" 1>&6
+ echo $ac_n "checking whether mmap from /dev/zero works""... $ac_c" 1>&6
+echo "configure:3960: checking whether mmap from /dev/zero works" >&5
+if eval "test \"`echo '$''{'gcc_cv_func_mmap_dev_zero'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # Add a system to this blacklist if it has mmap() but /dev/zero
+ # does not exist, or if mmapping /dev/zero does not give anonymous
+ # zeroed pages with both the following properties:
+ # 1. If you map N consecutive pages in with one call, and then
+ # unmap any subset of those pages, the pages that were not
+ # explicitly unmapped remain accessible.
+ # 2. If you map two adjacent blocks of memory and then unmap them
+ # both at once, they must both go away.
+ # Systems known to be in this category are Windows (all variants),
+ # VMS, and Darwin.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
+ gcc_cv_func_mmap_dev_zero=no ;;
+ *)
+ gcc_cv_func_mmap_dev_zero=yes;;
+ esac
+fi
+
+echo "$ac_t""$gcc_cv_func_mmap_dev_zero" 1>&6
+
+ # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
+ echo $ac_n "checking for MAP_ANON(YMOUS)""... $ac_c" 1>&6
+echo "configure:3986: checking for MAP_ANON(YMOUS)" >&5
+if eval "test \"`echo '$''{'gcc_cv_decl_map_anon'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3991 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS MAP_ANON
+#endif
+
+int main() {
+int n = MAP_ANONYMOUS;
+; return 0; }
+EOF
+if { (eval echo configure:4005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ gcc_cv_decl_map_anon=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ gcc_cv_decl_map_anon=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gcc_cv_decl_map_anon" 1>&6
+
+ if test $gcc_cv_decl_map_anon = no; then
+ gcc_cv_func_mmap_anon=no
+ else
+ echo $ac_n "checking whether mmap with MAP_ANON(YMOUS) works""... $ac_c" 1>&6
+echo "configure:4023: checking whether mmap with MAP_ANON(YMOUS) works" >&5
+if eval "test \"`echo '$''{'gcc_cv_func_mmap_anon'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # Add a system to this blacklist if it has mmap() and MAP_ANON or
+ # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
+ # doesn't give anonymous zeroed pages with the same properties listed
+ # above for use of /dev/zero.
+ # Systems known to be in this category are Windows, VMS, and SCO Unix.
+ case "$host_os" in
+ vms* | cygwin* | pe | mingw* | sco* | udk* )
+ gcc_cv_func_mmap_anon=no ;;
+ *)
+ gcc_cv_func_mmap_anon=yes;;
+ esac
+fi
+
+echo "$ac_t""$gcc_cv_func_mmap_anon" 1>&6
+ fi
+fi
+
+if test $gcc_cv_func_mmap_file = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP_FILE 1
+EOF
+
+fi
+if test $gcc_cv_func_mmap_dev_zero = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP_DEV_ZERO 1
+EOF
+
+fi
+if test $gcc_cv_func_mmap_anon = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_MMAP_ANON 1
+EOF
+
+fi
+
case "${host}" in
*-*-uwin*)
@@ -3838,12 +4074,12 @@ case "${host}" in
;;
esac
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3842: checking for pid_t" >&5
+echo "configure:4078: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3847 "configure"
+#line 4083 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3872,17 +4108,17 @@ fi
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:3876: checking for vfork.h" >&5
+echo "configure:4112: checking for vfork.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3881 "configure"
+#line 4117 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4122: \"$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*
@@ -3907,18 +4143,18 @@ else
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:3911: checking for working vfork" >&5
+echo "configure:4147: checking for working vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:3917: checking for vfork" >&5
+echo "configure:4153: checking for vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3922 "configure"
+#line 4158 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vfork(); below. */
@@ -3941,7 +4177,7 @@ vfork();
; return 0; }
EOF
-if { (eval echo configure:3945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vfork=yes"
else
@@ -3963,7 +4199,7 @@ fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
else
cat > conftest.$ac_ext <<EOF
-#line 3967 "configure"
+#line 4203 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
@@ -4058,7 +4294,7 @@ main() {
}
}
EOF
-if { (eval echo configure:4062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_vfork_works=yes
else
@@ -4080,477 +4316,6 @@ EOF
fi
-for ac_func in getpagesize
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4087: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4092 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-# The test program for the next two tests is the same except for one
-# set of ifdefs.
-cat >ct-mmap.inc <<'EOF'
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <setjmp.h>
-#include <stdio.h>
-
-#if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
-# define MAP_ANONYMOUS MAP_ANON
-#endif
-
-/* This mess was copied from the GNU getpagesize.h. */
-#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
-
-/* Assume that all systems that can run configure have sys/param.h. */
-# ifndef HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-#ifndef MAP_FAILED
-# define MAP_FAILED -1
-#endif
-
-#undef perror_exit
-#define perror_exit(str, val) \
- do { perror(str); exit(val); } while (0)
-
-/* Some versions of cygwin mmap require that munmap is called with the
- same parameters as mmap. GCC expects that this is not the case.
- Test for various forms of this problem. Warning - icky signal games. */
-
-static sigset_t unblock_sigsegv;
-static jmp_buf r;
-static size_t pg;
-static int devzero;
-
-static char *
-anonmap (size)
- size_t size;
-{
-#ifdef USE_MAP_ANON
- return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-#else
- return (char *) mmap (0, size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE, devzero, 0);
-#endif
-}
-
-static void
-sigsegv (unused)
- int unused;
-{
- sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
- longjmp (r, 1);
-}
-
-/* Basic functionality test. */
-void
-test_0 ()
-{
- char *x = anonmap (pg);
- if (x == (char *) MAP_FAILED)
- perror_exit("test 0 mmap", 2);
-
- *(int *)x += 1;
-
- if (munmap(x, pg) < 0)
- perror_exit("test 0 munmap", 3);
-}
-
-/* 1. If we map a 2-page region and unmap its second page, the first page
- must remain. */
-static void
-test_1 ()
-{
- char *x = anonmap (pg * 2);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 1 mmap", 4);
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 1 fault", 5);
-
- x[0] = 1;
- x[pg] = 1;
-
- if (munmap (x + pg, pg) < 0)
- perror_exit ("test 1 munmap 1", 6);
- x[0] = 2;
-
- if (setjmp (r) == 0)
- {
- x[pg] = 1;
- perror_exit ("test 1 no fault", 7);
- }
- if (munmap (x, pg) < 0)
- perror_exit ("test 1 munmap 2", 8);
-}
-
-/* 2. If we map a 2-page region and unmap its first page, the second
- page must remain. */
-static void
-test_2 ()
-{
- char *x = anonmap (pg * 2);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 2 mmap", 9);
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 2 fault", 10);
-
- x[0] = 1;
- x[pg] = 1;
-
- if (munmap (x, pg) < 0)
- perror_exit ("test 2 munmap 1", 11);
-
- x[pg] = 2;
-
- if (setjmp (r) == 0)
- {
- x[0] = 1;
- perror_exit ("test 2 no fault", 12);
- }
-
- if (munmap (x+pg, pg) < 0)
- perror_exit ("test 2 munmap 2", 13);
-}
-
-/* 3. If we map two adjacent 1-page regions and unmap them both with
- one munmap, both must go away.
-
- Getting two adjacent 1-page regions with two mmap calls is slightly
- tricky. All OS's tested skip over already-allocated blocks; therefore
- we have been careful to unmap all allocated regions in previous tests.
- HP/UX allocates pages backward in memory. No OS has yet been observed
- to be so perverse as to leave unmapped space between consecutive calls
- to mmap. */
-
-static void
-test_3 ()
-{
- char *x, *y, *z;
-
- x = anonmap (pg);
- if (x == (char *)MAP_FAILED)
- perror_exit ("test 3 mmap 1", 14);
- y = anonmap (pg);
- if (y == (char *)MAP_FAILED)
- perror_exit ("test 3 mmap 2", 15);
-
- if (y != x + pg)
- {
- if (y == x - pg)
- z = y, y = x, x = z;
- else
- {
- fprintf (stderr, "test 3 nonconsecutive pages - %lx, %lx\n",
- (unsigned long)x, (unsigned long)y);
- exit (16);
- }
- }
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r))
- perror_exit ("test 3 fault", 17);
-
- x[0] = 1;
- y[0] = 1;
-
- if (munmap (x, pg*2) < 0)
- perror_exit ("test 3 munmap", 18);
-
- if (setjmp (r) == 0)
- {
- x[0] = 1;
- perror_exit ("test 3 no fault 1", 19);
- }
-
- signal (SIGSEGV, sigsegv);
- if (setjmp (r) == 0)
- {
- y[0] = 1;
- perror_exit ("test 3 no fault 2", 20);
- }
-}
-
-int
-main ()
-{
- sigemptyset (&unblock_sigsegv);
- sigaddset (&unblock_sigsegv, SIGSEGV);
- pg = getpagesize ();
-#ifndef USE_MAP_ANON
- devzero = open ("/dev/zero", O_RDWR);
- if (devzero < 0)
- perror_exit ("open /dev/zero", 1);
-#endif
-
- test_0();
- test_1();
- test_2();
- test_3();
-
- exit(0);
-}
-EOF
-
-echo $ac_n "checking for working mmap from /dev/zero""... $ac_c" 1>&6
-echo "configure:4386: checking for working mmap from /dev/zero" >&5
-if eval "test \"`echo '$''{'ac_cv_func_mmap_dev_zero'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- # When cross-building, assume that this works, unless we know it
- # doesn't. Of course, we have no way of knowing if there even is a /dev/zero
- # on the host, let alone whether mmap will work on it.
- case "$host_os" in
- cygwin* | win32 | pe | mingw* ) ac_cv_func_mmap_dev_zero=buggy ;;
- darwin* ) ac_cv_func_mmap_dev_zero=no ;;
- * ) ac_cv_func_mmap_dev_zero=yes ;;
- esac
-else
- cat > conftest.$ac_ext <<EOF
-#line 4401 "configure"
-#include "confdefs.h"
-#include "ct-mmap.inc"
-EOF
-if { (eval echo configure:4405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_mmap_dev_zero=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- if test $? -lt 4
- then ac_cv_func_mmap_dev_zero=no
- else ac_cv_func_mmap_dev_zero=buggy
- fi
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$ac_cv_func_mmap_dev_zero" 1>&6
-if test $ac_cv_func_mmap_dev_zero = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_MMAP_DEV_ZERO 1
-EOF
-
-fi
-
-echo $ac_n "checking for working mmap with MAP_ANON(YMOUS)""... $ac_c" 1>&6
-echo "configure:4432: checking for working mmap with MAP_ANON(YMOUS)" >&5
-if eval "test \"`echo '$''{'ac_cv_func_mmap_anon'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- # Unlike /dev/zero, it is not safe to assume MAP_ANON(YMOUS) works
- # just because it's there. Some SCO Un*xen define it but don't implement it.
- case "$host_os" in
- darwin* ) ac_cv_func_mmap_anon=yes ;;
- * ) ac_cv_func_mmap_anon=no ;;
- esac
-else
- cat > conftest.$ac_ext <<EOF
-#line 4445 "configure"
-#include "confdefs.h"
-#define USE_MAP_ANON
-#include "ct-mmap.inc"
-EOF
-if { (eval echo configure:4450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_mmap_anon=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- if test $? -lt 4
- then ac_cv_func_mmap_anon=no
- else ac_cv_func_mmap_anon=buggy
- fi
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$ac_cv_func_mmap_anon" 1>&6
-if test $ac_cv_func_mmap_anon = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_MMAP_ANON 1
-EOF
-
-fi
-rm -f ct-mmap.inc
-
-echo $ac_n "checking for working mmap of a file""... $ac_c" 1>&6
-echo "configure:4478: checking for working mmap of a file" >&5
-if eval "test \"`echo '$''{'ac_cv_func_mmap_file'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # Create a file one thousand bytes long.
-for i in 1 2 3 4 5 6 7 8 9 0
-do for j in 1 2 3 4 5 6 7 8 9 0
-do echo $i $j xxxxx
-done
-done > conftestdata$$
-
-if test "$cross_compiling" = yes; then
- case "$host_os" in
- darwin* ) ac_cv_func_mmap_file=yes ;;
- * ) ac_cv_func_mmap_file=no ;;
- esac
-else
- cat > conftest.$ac_ext <<EOF
-#line 4496 "configure"
-#include "confdefs.h"
-
-/* Test by Zack Weinberg. Modified from MMAP_ANYWHERE test by
- Richard Henderson and Alexandre Oliva.
- Check whether read-only mmap of a plain file works. */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-int main()
-{
- char *x;
- int fd;
- struct stat st;
-
- fd = open("conftestdata$$", O_RDONLY);
- if (fd < 0)
- exit(1);
-
- if (fstat (fd, &st))
- exit(2);
-
- x = (char*)mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
- if (x == (char *) -1)
- exit(3);
-
- if (x[0] != '1' || x[1] != ' ' || x[2] != '1' || x[3] != ' ')
- exit(4);
-
- if (munmap(x, st.st_size) < 0)
- exit(5);
-
- exit(0);
-}
-EOF
-if { (eval echo configure:4533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_mmap_file=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_mmap_file=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_mmap_file" 1>&6
-if test $ac_cv_func_mmap_file = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_MMAP_FILE 1
-EOF
-
-fi
-
@@ -4568,7 +4333,7 @@ fi
echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:4572: checking for iconv" >&5
+echo "configure:4337: checking for iconv" >&5
if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4576,7 +4341,7 @@ else
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
cat > conftest.$ac_ext <<EOF
-#line 4580 "configure"
+#line 4345 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -4586,7 +4351,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:4590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_func_iconv=yes
else
@@ -4598,7 +4363,7 @@ rm -f conftest*
am_save_LIBS="$LIBS"
LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
cat > conftest.$ac_ext <<EOF
-#line 4602 "configure"
+#line 4367 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -4608,7 +4373,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:4612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_lib_iconv=yes
am_cv_func_iconv=yes
@@ -4629,13 +4394,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
EOF
echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:4633: checking for iconv declaration" >&5
+echo "configure:4398: checking for iconv declaration" >&5
if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4639 "configure"
+#line 4404 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -4654,7 +4419,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_proto_iconv_arg1=""
else
@@ -4692,12 +4457,12 @@ for ac_func in getenv atol sbrk abort atof getcwd getwd \
do
ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4696: checking whether $ac_func is declared" >&5
+echo "configure:4461: checking whether $ac_func is declared" >&5
if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4701 "configure"
+#line 4466 "configure"
#include "confdefs.h"
#undef $ac_tr_decl
#define $ac_tr_decl 1
@@ -4711,7 +4476,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
#endif
; return 0; }
EOF
-if { (eval echo configure:4715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "gcc_cv_have_decl_$ac_func=yes"
else
@@ -4813,12 +4578,12 @@ for ac_func in getrlimit setrlimit getrusage
do
ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4817: checking whether $ac_func is declared" >&5
+echo "configure:4582: checking whether $ac_func is declared" >&5
if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4822 "configure"
+#line 4587 "configure"
#include "confdefs.h"
#undef $ac_tr_decl
#define $ac_tr_decl 1
@@ -4836,7 +4601,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
#endif
; return 0; }
EOF
-if { (eval echo configure:4840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4605: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "gcc_cv_have_decl_$ac_func=yes"
else
@@ -4874,16 +4639,43 @@ EOF
fi
+cat > conftest.$ac_ext <<EOF
+#line 4644 "configure"
+#include "confdefs.h"
+
+#include "ansidecl.h"
+#include "system.h"
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
+
+int main() {
+rlim_t l = 0;
+; return 0; }
+EOF
+if { (eval echo configure:4657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cat >> confdefs.h <<\EOF
+#define rlim_t long
+EOF
+
+fi
+rm -f conftest*
+
for ac_func in times
do
ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4882: checking whether $ac_func is declared" >&5
+echo "configure:4674: checking whether $ac_func is declared" >&5
if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4887 "configure"
+#line 4679 "configure"
#include "confdefs.h"
#undef $ac_tr_decl
#define $ac_tr_decl 1
@@ -4901,7 +4693,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
#endif
; return 0; }
EOF
-if { (eval echo configure:4905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "gcc_cv_have_decl_$ac_func=yes"
else
@@ -4935,13 +4727,13 @@ fi
# More time-related stuff.
echo $ac_n "checking for struct tms""... $ac_c" 1>&6
-echo "configure:4939: checking for struct tms" >&5
+echo "configure:4731: checking for struct tms" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tms'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4945 "configure"
+#line 4737 "configure"
#include "confdefs.h"
#include "ansidecl.h"
@@ -4954,7 +4746,7 @@ int main() {
struct tms tms;
; return 0; }
EOF
-if { (eval echo configure:4958: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tms=yes
else
@@ -4977,13 +4769,13 @@ fi
# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
# revisit after autoconf 2.50.
echo $ac_n "checking for clock_t""... $ac_c" 1>&6
-echo "configure:4981: checking for clock_t" >&5
+echo "configure:4773: checking for clock_t" >&5
if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4987 "configure"
+#line 4779 "configure"
#include "confdefs.h"
#include "ansidecl.h"
@@ -4993,7 +4785,7 @@ int main() {
clock_t x;
; return 0; }
EOF
-if { (eval echo configure:4997: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4789: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_type_clock_t=yes
else
@@ -5013,13 +4805,50 @@ EOF
fi
+echo $ac_n "checking for uchar""... $ac_c" 1>&6
+echo "configure:4810: checking for uchar" >&5
+if eval "test \"`echo '$''{'gcc_cv_type_uchar'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4815 "configure"
+#include "confdefs.h"
+
+#include "ansidecl.h"
+#include "system.h"
+
+int main() {
+if ((uchar *)0) return 0;
+ if (sizeof(uchar)) return 0;
+; return 0; }
+EOF
+if { (eval echo configure:4826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_uchar=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_type_uchar=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gcc_cv_type_uchar" 1>&6
+if test $ac_cv_type_uchar = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_UCHAR 1
+EOF
+
+fi
+
# Check whether --enable-initfini-array or --disable-initfini-array was given.
if test "${enable_initfini_array+set}" = set; then
enableval="$enable_initfini_array"
gcc_cv_initfinit_array=$enableval
else
echo $ac_n "checking for .preinit_array/.init_array/.fini_array support""... $ac_c" 1>&6
-echo "configure:5023: checking for .preinit_array/.init_array/.fini_array support" >&5
+echo "configure:4852: checking for .preinit_array/.init_array/.fini_array support" >&5
if eval "test \"`echo '$''{'gcc_cv_initfinit_array'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5029,7 +4858,7 @@ int main (void) { return x; }
int foo (void) { x = 0; }
int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
EOF
- if { ac_try='${CC-cc} -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD'; { (eval echo configure:5033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+ if { ac_try='${CC-cc} -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD'; { (eval echo configure:4862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then
if ./conftest; then
gcc_cv_initfinit_array=yes
@@ -5058,12 +4887,12 @@ CFLAGS="$saved_CFLAGS"
# mkdir takes a single argument on some systems.
echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6
-echo "configure:5062: checking if mkdir takes one argument" >&5
+echo "configure:4891: checking if mkdir takes one argument" >&5
if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5067 "configure"
+#line 4896 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -5080,7 +4909,7 @@ int main() {
mkdir ("foo", 0);
; return 0; }
EOF
-if { (eval echo configure:5084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
gcc_cv_mkdir_takes_one_arg=no
else
@@ -5107,6 +4936,71 @@ objext='.o'
+# With Setjmp/Longjmp based exception handling.
+# Check whether --enable-sjlj-exceptions or --disable-sjlj-exceptions was given.
+if test "${enable_sjlj_exceptions+set}" = set; then
+ enableval="$enable_sjlj_exceptions"
+ sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
+cat >> confdefs.h <<EOF
+#define CONFIG_SJLJ_EXCEPTIONS $sjlj
+EOF
+
+fi
+
+
+echo $ac_n "checking for main in -lunwind""... $ac_c" 1>&6
+echo "configure:4953: checking for main in -lunwind" >&5
+ac_lib_var=`echo unwind'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lunwind $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4961 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:4968: \"$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
+ 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
+ use_libunwind_default=yes
+else
+ echo "$ac_t""no" 1>&6
+use_libunwind_default=no
+fi
+
+# Use libunwind based exception handling.
+# Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given.
+if test "${enable_libunwind_exceptions+set}" = set; then
+ enableval="$enable_libunwind_exceptions"
+ use_libunwind_exceptions=$enableval
+else
+ use_libunwind_exceptions=$use_libunwind_default
+fi
+
+if test x"$use_libunwind_exceptions" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define USE_LIBUNWIND_EXCEPTIONS 1
+EOF
+
+fi
+
target_gtfiles=
build_xm_file=
build_xm_defines=
@@ -5348,14 +5242,14 @@ fi
echo $ac_n "checking for library containing strerror""... $ac_c" 1>&6
-echo "configure:5352: checking for library containing strerror" >&5
+echo "configure:5246: checking for library containing strerror" >&5
if eval "test \"`echo '$''{'ac_cv_search_strerror'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_strerror="no"
cat > conftest.$ac_ext <<EOF
-#line 5359 "configure"
+#line 5253 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5366,7 +5260,7 @@ int main() {
strerror()
; return 0; }
EOF
-if { (eval echo configure:5370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_strerror="none required"
else
@@ -5377,7 +5271,7 @@ rm -f conftest*
test "$ac_cv_search_strerror" = "no" && for i in cposix; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5381 "configure"
+#line 5275 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5388,7 +5282,7 @@ int main() {
strerror()
; return 0; }
EOF
-if { (eval echo configure:5392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_strerror="-l$i"
break
@@ -5411,12 +5305,12 @@ fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:5415: checking for working const" >&5
+echo "configure:5309: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5420 "configure"
+#line 5314 "configure"
#include "confdefs.h"
int main() {
@@ -5465,7 +5359,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:5469: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -5486,12 +5380,12 @@ EOF
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:5490: checking for off_t" >&5
+echo "configure:5384: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5495 "configure"
+#line 5389 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -5519,12 +5413,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:5523: checking for size_t" >&5
+echo "configure:5417: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5528 "configure"
+#line 5422 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -5554,19 +5448,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:5558: checking for working alloca.h" >&5
+echo "configure:5452: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5563 "configure"
+#line 5457 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:5570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -5587,12 +5481,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:5591: checking for alloca" >&5
+echo "configure:5485: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5596 "configure"
+#line 5490 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -5620,7 +5514,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:5624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -5652,12 +5546,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:5656: checking whether alloca needs Cray hooks" >&5
+echo "configure:5550: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5661 "configure"
+#line 5555 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -5682,12 +5576,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5686: checking for $ac_func" >&5
+echo "configure:5580: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5691 "configure"
+#line 5585 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5710,7 +5604,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5737,7 +5631,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:5741: checking stack direction for C alloca" >&5
+echo "configure:5635: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5745,7 +5639,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 5749 "configure"
+#line 5643 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -5764,7 +5658,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:5768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -5787,12 +5681,12 @@ fi
echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
-echo "configure:5791: checking whether we are using the GNU C Library 2.1 or newer" >&5
+echo "configure:5685: checking whether we are using the GNU C Library 2.1 or newer" >&5
if eval "test \"`echo '$''{'ac_cv_gnu_library_2_1'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5796 "configure"
+#line 5690 "configure"
#include "confdefs.h"
#include <features.h>
@@ -5828,17 +5722,17 @@ stdlib.h string.h unistd.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5832: checking for $ac_hdr" >&5
+echo "configure:5726: 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
-#line 5837 "configure"
+#line 5731 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5842: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5736: \"$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*
@@ -5869,12 +5763,12 @@ getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
strdup strtoul tsearch __argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5873: checking for $ac_func" >&5
+echo "configure:5767: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5878 "configure"
+#line 5772 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5897,7 +5791,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5938,7 +5832,7 @@ fi
echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:5942: checking for iconv" >&5
+echo "configure:5836: checking for iconv" >&5
if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5946,7 +5840,7 @@ else
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
cat > conftest.$ac_ext <<EOF
-#line 5950 "configure"
+#line 5844 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -5956,7 +5850,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:5960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_func_iconv=yes
else
@@ -5968,7 +5862,7 @@ rm -f conftest*
am_save_LIBS="$LIBS"
LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
cat > conftest.$ac_ext <<EOF
-#line 5972 "configure"
+#line 5866 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -5978,7 +5872,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:5982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_lib_iconv=yes
am_cv_func_iconv=yes
@@ -5999,13 +5893,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
EOF
echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:6003: checking for iconv declaration" >&5
+echo "configure:5897: checking for iconv declaration" >&5
if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6009 "configure"
+#line 5903 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -6024,7 +5918,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:6028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_proto_iconv_arg1=""
else
@@ -6053,19 +5947,19 @@ EOF
echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
-echo "configure:6057: checking for nl_langinfo and CODESET" >&5
+echo "configure:5951: checking for nl_langinfo and CODESET" >&5
if eval "test \"`echo '$''{'am_cv_langinfo_codeset'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6062 "configure"
+#line 5956 "configure"
#include "confdefs.h"
#include <langinfo.h>
int main() {
char* cs = nl_langinfo(CODESET);
; return 0; }
EOF
-if { (eval echo configure:6069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_langinfo_codeset=yes
else
@@ -6088,19 +5982,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:6092: checking for LC_MESSAGES" >&5
+echo "configure:5986: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6097 "configure"
+#line 5991 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:6104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -6121,7 +6015,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:6125: checking whether NLS is requested" >&5
+echo "configure:6019: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@@ -6144,7 +6038,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:6148: checking whether included gettext is requested" >&5
+echo "configure:6042: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -6164,17 +6058,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:6168: checking for libintl.h" >&5
+echo "configure:6062: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6173 "configure"
+#line 6067 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6178: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6072: \"$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*
@@ -6195,12 +6089,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
EOF
echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6
-echo "configure:6199: checking for GNU gettext in libc" >&5
+echo "configure:6093: checking for GNU gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6204 "configure"
+#line 6098 "configure"
#include "confdefs.h"
#include <libintl.h>
extern int _nl_msg_cat_cntr;
@@ -6209,7 +6103,7 @@ bindtextdomain ("", "");
return (int) gettext ("") + _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:6213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gnugettext1_libc=yes
else
@@ -6225,14 +6119,14 @@ echo "$ac_t""$gt_cv_func_gnugettext1_libc" 1>&6
if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
echo $ac_n "checking for GNU gettext in libintl""... $ac_c" 1>&6
-echo "configure:6229: checking for GNU gettext in libintl" >&5
+echo "configure:6123: checking for GNU gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
gt_save_LIBS="$LIBS"
LIBS="$LIBS -lintl $LIBICONV"
cat > conftest.$ac_ext <<EOF
-#line 6236 "configure"
+#line 6130 "configure"
#include "confdefs.h"
#include <libintl.h>
extern int _nl_msg_cat_cntr;
@@ -6241,7 +6135,7 @@ bindtextdomain ("", "");
return (int) gettext ("") + _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:6245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gnugettext1_libintl=yes
else
@@ -6274,12 +6168,12 @@ EOF
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6278: checking for $ac_func" >&5
+echo "configure:6172: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6283 "configure"
+#line 6177 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6302,7 +6196,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6331,7 +6225,7 @@ done
# 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:6335: checking for $ac_word" >&5
+echo "configure:6229: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6365,7 +6259,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6369: checking for $ac_word" >&5
+echo "configure:6263: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6402,7 +6296,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6406: checking for $ac_word" >&5
+echo "configure:6300: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6452,7 +6346,7 @@ fi
# 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:6456: checking for $ac_word" >&5
+echo "configure:6350: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6486,7 +6380,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6490: checking for $ac_word" >&5
+echo "configure:6384: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6522,7 +6416,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6526: checking for $ac_word" >&5
+echo "configure:6420: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6594,7 +6488,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6598: checking for $ac_word" >&5
+echo "configure:6492: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6627,7 +6521,7 @@ done
ac_verc_fail=yes
else
echo $ac_n "checking version of bison""... $ac_c" 1>&6
-echo "configure:6631: checking version of bison" >&5
+echo "configure:6525: checking version of bison" >&5
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -6672,7 +6566,7 @@ EOF
if test "x$CATOBJEXT" != x; then
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:6676: checking for catalogs to be installed" >&5
+echo "configure:6570: checking for catalogs to be installed" >&5
# Look for .po and .gmo files in the source directory.
CATALOGS=
XLINGUAS=
@@ -6730,7 +6624,7 @@ fi
case $host_os in
win32 | pe | cygwin* | mingw32* | uwin*)
echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6
-echo "configure:6734: checking whether windows registry support is requested" >&5
+echo "configure:6628: checking whether windows registry support is requested" >&5
if test "x$enable_win32_registry" != xno; then
cat >> confdefs.h <<\EOF
#define ENABLE_WIN32_REGISTRY 1
@@ -6739,14 +6633,14 @@ EOF
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6
-echo "configure:6743: checking for library containing RegOpenKeyExA" >&5
+echo "configure:6637: checking for library containing RegOpenKeyExA" >&5
if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_func_search_save_LIBS="$LIBS"
ac_cv_search_RegOpenKeyExA="no"
cat > conftest.$ac_ext <<EOF
-#line 6750 "configure"
+#line 6644 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -6757,7 +6651,7 @@ int main() {
RegOpenKeyExA()
; return 0; }
EOF
-if { (eval echo configure:6761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_RegOpenKeyExA="none required"
else
@@ -6768,7 +6662,7 @@ rm -f conftest*
test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do
LIBS="-l$i $ac_func_search_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6772 "configure"
+#line 6666 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -6779,7 +6673,7 @@ int main() {
RegOpenKeyExA()
; return 0; }
EOF
-if { (eval echo configure:6783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_search_RegOpenKeyExA="-l$i"
break
@@ -6821,7 +6715,7 @@ esac
if test "x$enable_win32_registry" != xno; then
echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6
-echo "configure:6825: checking registry key on windows hosts" >&5
+echo "configure:6719: checking registry key on windows hosts" >&5
cat >> confdefs.h <<EOF
#define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key"
EOF
@@ -6947,6 +6841,9 @@ then
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
+elif test "x$TARGET_SYSTEM_ROOT" != x; then
+ # This is just $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)
+ SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
fi
# If this is a cross-compiler that does not
@@ -6957,12 +6854,9 @@ fi
# This prevents libgcc2 from containing any code which requires libc
# support.
inhibit_libc=
-if test x$host != x$target && test x$with_headers = x; then
+if { test x$host != x$target && test "x$with_headers" = x &&
+ test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; then
inhibit_libc=-Dinhibit_libc
-else
- if test x$with_newlib = xyes; then
- inhibit_libc=-Dinhibit_libc
- fi
fi
@@ -6989,8 +6883,10 @@ then
HOST_CC='$(CC_FOR_BUILD)'
HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
- STMP_FIXINC=
- STMP_FIXPROTO=
+ if test "x$TARGET_SYSTEM_ROOT" = x; then
+ STMP_FIXINC=
+ STMP_FIXPROTO=
+ fi
fi
# Expand extra_headers to include complete path.
@@ -7035,7 +6931,7 @@ fi
# Figure out what assembler we will be using.
echo $ac_n "checking what assembler to use""... $ac_c" 1>&6
-echo "configure:7039: checking what assembler to use" >&5
+echo "configure:6935: checking what assembler to use" >&5
gcc_cv_as=
gcc_cv_gas_major_version=
gcc_cv_gas_minor_version=
@@ -7129,7 +7025,7 @@ fi
# Figure out what linker we will be using.
echo $ac_n "checking what linker to use""... $ac_c" 1>&6
-echo "configure:7133: checking what linker to use" >&5
+echo "configure:7029: checking what linker to use" >&5
gcc_cv_ld=
gcc_cv_gld_major_version=
gcc_cv_gld_minor_version=
@@ -7222,7 +7118,7 @@ fi
# Figure out what nm we will be using.
echo $ac_n "checking what nm to use""... $ac_c" 1>&6
-echo "configure:7226: checking what nm to use" >&5
+echo "configure:7122: checking what nm to use" >&5
if test -x nm$host_exeext; then
gcc_cv_nm=./nm$host_exeext
elif test "x$program_prefix" != xNONE; then
@@ -7234,7 +7130,7 @@ echo "$ac_t""$gcc_cv_nm" 1>&6
# Figure out what objdump we will be using.
echo $ac_n "checking what objdump to use""... $ac_c" 1>&6
-echo "configure:7238: checking what objdump to use" >&5
+echo "configure:7134: checking what objdump to use" >&5
if test -x objdump$host_exeext; then
gcc_cv_objdump=./objdump$host_exeext
elif test "x$program_prefix" != xNONE; then
@@ -7246,7 +7142,7 @@ echo "$ac_t""$gcc_cv_objdump" 1>&6
# Figure out what assembler alignment features are present.
echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6
-echo "configure:7250: checking assembler alignment features" >&5
+echo "configure:7146: checking assembler alignment features" >&5
gcc_cv_as_alignment_features=none
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
# Gas version 2.6 and later support for .balign and .p2align.
@@ -7294,7 +7190,7 @@ fi
echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6
echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6
-echo "configure:7298: checking assembler subsection support" >&5
+echo "configure:7194: checking assembler subsection support" >&5
gcc_cv_as_subsections=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -7334,7 +7230,7 @@ fi
echo "$ac_t""$gcc_cv_as_subsections" 1>&6
echo $ac_n "checking assembler weak support""... $ac_c" 1>&6
-echo "configure:7338: checking assembler weak support" >&5
+echo "configure:7234: checking assembler weak support" >&5
gcc_cv_as_weak=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 2 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -7357,7 +7253,7 @@ fi
echo "$ac_t""$gcc_cv_as_weak" 1>&6
echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6
-echo "configure:7361: checking assembler hidden support" >&5
+echo "configure:7257: checking assembler hidden support" >&5
gcc_cv_as_hidden=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 \
@@ -7383,8 +7279,8 @@ elif test x$gcc_cv_as != x; then
# the date string after the version number.
ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
if echo "$ld_ver" | grep GNU > /dev/null; then
- ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'`
- ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
+ ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\)\([ ].*\|\)$,\1,p'`
+ ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
if test 0"$ld_date" -lt 20020404; then
if test -n "$ld_date"; then
# If there was date string, but was earlier than 2002-04-04, fail
@@ -7407,6 +7303,9 @@ elif test x$gcc_cv_as != x; then
fi
fi
fi
+ else
+ # non-GNU linkers don't seem to support .hidden yet
+ gcc_cv_as_hidden=no
fi
fi
if test x"$gcc_cv_as_hidden" = xyes; then
@@ -7417,19 +7316,10 @@ EOF
fi
echo "$ac_t""$gcc_cv_as_hidden" 1>&6
libgcc_visibility=$gcc_cv_as_hidden
-case "$target" in
- mips-sgi-irix6*o32)
- if test x"$gnu_ld_flag" = x"no"; then
- # Even if using gas with .hidden support, the resulting object files
- # cannot be linked with the IRIX 6 O32 linker.
- libgcc_visibility=no
- fi
- ;;
-esac
echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6
-echo "configure:7433: checking assembler leb128 support" >&5
+echo "configure:7323: checking assembler leb128 support" >&5
gcc_cv_as_leb128=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 11 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -7474,7 +7364,7 @@ fi
echo "$ac_t""$gcc_cv_as_leb128" 1>&6
echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6
-echo "configure:7478: checking assembler eh_frame optimization" >&5
+echo "configure:7368: checking assembler eh_frame optimization" >&5
gcc_cv_as_eh_frame=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -7555,7 +7445,7 @@ fi
echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6
echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6
-echo "configure:7559: checking assembler section merging support" >&5
+echo "configure:7449: checking assembler section merging support" >&5
gcc_cv_as_shf_merge=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
@@ -7578,7 +7468,7 @@ fi
echo "$ac_t""$gcc_cv_as_shf_merge" 1>&6
echo $ac_n "checking assembler thread-local storage support""... $ac_c" 1>&6
-echo "configure:7582: checking assembler thread-local storage support" >&5
+echo "configure:7472: checking assembler thread-local storage support" >&5
gcc_cv_as_tls=no
conftest_s=
tls_first_major=
@@ -7656,6 +7546,41 @@ foo: data8 25
tls_first_major=2
tls_first_minor=13
;;
+ s390-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+foo: .long 25
+ .text
+ .long foo@TLSGD
+ .long foo@TLSLDM
+ .long foo@DTPOFF
+ .long foo@NTPOFF
+ .long foo@GOTNTPOFF
+ .long foo@INDNTPOFF
+ l %r1,foo@GOTNTPOFF(%r12)
+ l %r1,0(%r1):tls_load:foo
+ bas %r14,0(%r1,%r13):tls_gdcall:foo
+ bas %r14,0(%r1,%r13):tls_ldcall:foo'
+ tls_first_major=2
+ tls_first_minor=14
+ ;;
+ s390x-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+foo: .long 25
+ .text
+ .quad foo@TLSGD
+ .quad foo@TLSLDM
+ .quad foo@DTPOFF
+ .quad foo@NTPOFF
+ .quad foo@GOTNTPOFF
+ lg %r1,foo@GOTNTPOFF(%r12)
+ larl %r1,foo@INDNTPOFF
+ brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
+ brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
+ tls_first_major=2
+ tls_first_minor=14
+ ;;
esac
if test -z "$tls_first_major"; then
:
@@ -7686,7 +7611,7 @@ case "$target" in
# All TARGET_ABI_OSF targets.
alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6
-echo "configure:7690: checking assembler supports explicit relocations" >&5
+echo "configure:7615: checking assembler supports explicit relocations" >&5
if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7736,7 +7661,7 @@ EOF
;;
sparc*-*-*)
echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
-echo "configure:7740: checking assembler .register pseudo-op support" >&5
+echo "configure:7665: checking assembler .register pseudo-op support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7764,7 +7689,7 @@ EOF
fi
echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6
-echo "configure:7768: checking assembler supports -relax" >&5
+echo "configure:7693: checking assembler supports -relax" >&5
if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7792,7 +7717,7 @@ EOF
fi
echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6
-echo "configure:7796: checking assembler and linker support unaligned pc related relocs" >&5
+echo "configure:7721: checking assembler and linker support unaligned pc related relocs" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7819,7 +7744,7 @@ EOF
fi
echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6
-echo "configure:7823: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5
+echo "configure:7748: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5
if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7859,7 +7784,7 @@ EOF
fi
echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
-echo "configure:7863: checking for assembler offsetable %lo() support" >&5
+echo "configure:7788: 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
@@ -7898,7 +7823,7 @@ EOF
i[34567]86-*-* | x86_64-*-*)
echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
-echo "configure:7902: checking assembler instructions" >&5
+echo "configure:7827: checking assembler instructions" >&5
gcc_cv_as_instructions=
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -7924,8 +7849,26 @@ EOF
fi
echo "$ac_t""$gcc_cv_as_instructions" 1>&6
+ echo $ac_n "checking cmov syntax""... $ac_c" 1>&6
+echo "configure:7854: checking cmov syntax" >&5
+ gcc_cv_as_ix86_cmov_sun_syntax=no
+ if test x$gcc_cv_as != x; then
+ echo 'cmovl.l %edx, %eax' > conftest.s
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_ix86_cmov_sun_syntax=yes
+ fi
+ rm -f conftest.s conftest.o
+ fi
+ if test "x$gcc_cv_as_ix86_cmov_sun_syntax" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_AS_IX86_CMOV_SUN_SYNTAX 1
+EOF
+
+ fi
+ echo "$ac_t""$gcc_cv_as_ix86_cmov_sun_syntax" 1>&6
+
echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6
-echo "configure:7929: checking assembler GOTOFF in data directives" >&5
+echo "configure:7872: checking assembler GOTOFF in data directives" >&5
gcc_cv_as_gotoff_in_data=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
then
@@ -7952,10 +7895,52 @@ EOF
echo "$ac_t""$gcc_cv_as_gotoff_in_data" 1>&6
;;
+
+ ia64*-*-*)
+ echo $ac_n "checking assembler supports ltoffx and ldxmov""... $ac_c" 1>&6
+echo "configure:7902: checking assembler supports ltoffx and ldxmov" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_ltoffx_ldxmov_relocs'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ gcc_cv_as_ltoffx_ldxmov_relocs=unknown
+ if test x$gcc_cv_gas_major_version != x \
+ -a x$gcc_cv_gas_minor_version != x
+ then
+ if test "$gcc_cv_gas_major_version" -eq 2 \
+ -a "$gcc_cv_gas_minor_version" -ge 14 \
+ -o "$gcc_cv_gas_major_version" -gt 2; then
+ gcc_cv_as_ltoffx_ldxmov_relocs=yes
+ fi
+ elif test x$gcc_cv_as != x; then
+ cat > conftest.s << 'EOF'
+ .text
+ addl r15 = @ltoffx(x#), gp
+ ;;
+ ld8.mov r16 = [r15], x#
+EOF
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_ltoffx_ldxmov_relocs=yes
+ else
+ gcc_cv_as_ltoffx_ldxmov_relocs=no
+ fi
+ rm -f conftest.s conftest.o
+ fi
+
+fi
+
+echo "$ac_t""$gcc_cv_as_ltoffx_ldxmov_relocs" 1>&6
+ if test "x$gcc_cv_as_ltoffx_ldxmov_relocs" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_AS_LTOFFX_LDXMOV_RELOCS 1
+EOF
+
+ fi
+ ;;
esac
echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6
-echo "configure:7959: checking assembler dwarf2 debug_line support" >&5
+echo "configure:7944: checking assembler dwarf2 debug_line support" >&5
gcc_cv_as_dwarf2_debug_line=no
# ??? Not all targets support dwarf2 debug_line, even within a version
# of gas. Moreover, we need to emit a valid instruction to trigger any
@@ -8012,7 +7997,7 @@ fi
echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6
-echo "configure:8016: checking assembler --gdwarf2 support" >&5
+echo "configure:8001: checking assembler --gdwarf2 support" >&5
gcc_cv_as_gdwarf2_flag=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
then
@@ -8041,7 +8026,7 @@ fi
echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6
echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6
-echo "configure:8045: checking assembler --gstabs support" >&5
+echo "configure:8030: checking assembler --gstabs support" >&5
gcc_cv_as_gstabs_flag=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x;
then
@@ -8057,6 +8042,13 @@ elif test x$gcc_cv_as != x -a x"$insn" != x ; then
# ??? This fails with non-gnu grep.
if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
gcc_cv_as_gstabs_flag="yes"
+ # The native Solaris 9/Intel assembler doesn't understand --gstabs
+ # and warns about it, but still exits successfully. So check for
+ # this.
+ if $gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | \
+ grep -i warning > /dev/null ; then
+ gcc_cv_as_gstabs_flag="no"
+ fi
fi
rm -f conftest.s conftest.o
fi
@@ -8069,25 +8061,25 @@ fi
echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6
echo $ac_n "checking linker read-only and read-write section mixing""... $ac_c" 1>&6
-echo "configure:8073: checking linker read-only and read-write section mixing" >&5
+echo "configure:8065: checking linker read-only and read-write section mixing" >&5
gcc_cv_ld_ro_rw_mix=unknown
if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
gcc_cv_ld_ro_rw_mix=read-write
fi
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
- echo '.section "myfoosect", "a"' > conftest1.s
- echo '.section "myfoosect", "aw"' > conftest2.s
+ echo '.section myfoosect, "a"' > conftest1.s
+ echo '.section myfoosect, "aw"' > conftest2.s
echo '.byte 1' >> conftest2.s
- echo '.section "myfoosect", "a"' > conftest3.s
+ echo '.section myfoosect, "a"' > conftest3.s
echo '.byte 0' >> conftest3.s
- if $gcc_cv_as -o conftest1.o conftest1.s \
- && $gcc_cv_as -o conftest2.o conftest2.s \
- && $gcc_cv_as -o conftest3.o conftest3.s \
+ if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
+ && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
+ && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
&& $gcc_cv_ld -shared -o conftest1.so conftest1.o \
- conftest2.o conftest3.o; then
+ conftest2.o conftest3.o > /dev/null 2>&1; then
gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
- | grep -A1 myfoosect`
+ | sed -e '/myfoosect/!d' -e N`
if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
gcc_cv_ld_ro_rw_mix=read-only
@@ -8107,7 +8099,7 @@ fi
echo "$ac_t""$gcc_cv_ld_ro_rw_mix" 1>&6
echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6
-echo "configure:8111: checking linker PT_GNU_EH_FRAME support" >&5
+echo "configure:8103: checking linker PT_GNU_EH_FRAME support" >&5
gcc_cv_ld_eh_frame_hdr=no
if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
@@ -8127,11 +8119,32 @@ EOF
fi
echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6
+echo $ac_n "checking linker --as-needed support""... $ac_c" 1>&6
+echo "configure:8124: checking linker --as-needed support" >&5
+gcc_cv_ld_as_needed=no
+if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
+ gcc_cv_ld_as_needed=yes
+ fi
+elif test x$gcc_cv_ld != x; then
+ # Check if linker supports --as-needed and --no-as-needed options
+ if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
+ gcc_cv_ld_as_needed=yes
+ fi
+fi
+if test x"$gcc_cv_ld_as_needed" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LD_AS_NEEDED 1
+EOF
+
+fi
+echo "$ac_t""$gcc_cv_ld_as_needed" 1>&6
+
# Miscellaneous target-specific checks.
case "$target" in
mips*-*-*)
echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6
-echo "configure:8135: checking whether libgloss uses STARTUP directives consistently" >&5
+echo "configure:8148: checking whether libgloss uses STARTUP directives consistently" >&5
gcc_cv_mips_libgloss_startup=no
gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
if test "x$exec_prefix" = xNONE; then
@@ -8160,7 +8173,8 @@ EOF
;;
esac
-if test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
+if test x$with_sysroot = x && test x$host = x$target \
+ && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
cat >> confdefs.h <<EOF
#define PREFIX_INCLUDE_DIR "$prefix/include"
EOF
@@ -8335,7 +8349,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:8339: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:8353: 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"
@@ -8353,34 +8367,6 @@ else
MAINT='#'
fi
-# With Setjmp/Longjmp based exception handling.
-# Check whether --enable-sjlj-exceptions or --disable-sjlj-exceptions was given.
-if test "${enable_sjlj_exceptions+set}" = set; then
- enableval="$enable_sjlj_exceptions"
- sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
-cat >> confdefs.h <<EOF
-#define CONFIG_SJLJ_EXCEPTIONS $sjlj
-EOF
-
-fi
-
-
-# Use libunwind based exception handling.
-# Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given.
-if test "${enable_libunwind_exceptions+set}" = set; then
- enableval="$enable_libunwind_exceptions"
- use_libunwind_exceptions=$enableval
-else
- use_libunwind_exceptions=no
-fi
-
-if test x"$use_libunwind_exceptions" = xyes; then
- cat >> confdefs.h <<\EOF
-#define USE_LIBUNWIND_EXCEPTIONS 1
-EOF
-
-fi
-
# Make empty files to contain the specs and options for each language.
# Then add #include lines to for a compiler that has specs and/or options.
@@ -8844,6 +8830,9 @@ s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
+s%@TARGET_SYSTEM_ROOT@%$TARGET_SYSTEM_ROOT%g
+s%@TARGET_SYSTEM_ROOT_DEFINE@%$TARGET_SYSTEM_ROOT_DEFINE%g
+s%@CROSS_SYSTEM_HEADER_DIR@%$CROSS_SYSTEM_HEADER_DIR%g
s%@host@%$host%g
s%@host_alias@%$host_alias%g
s%@host_cpu@%$host_cpu%g
@@ -8891,6 +8880,7 @@ s%@FLEX@%$FLEX%g
s%@BISON@%$BISON%g
s%@COLLECT2_LIBS@%$COLLECT2_LIBS%g
s%@GNAT_LIBEXC@%$GNAT_LIBEXC%g
+s%@LDEXP_LIB@%$LDEXP_LIB%g
s%@TARGET_GETGROUPS_T@%$TARGET_GETGROUPS_T%g
s%@LIBICONV@%$LIBICONV%g
s%@gcc_cv_initfinit_array@%$gcc_cv_initfinit_array%g
diff --git a/gcc/configure.in b/gcc/configure.in
index c0afb232296..d3f0484020b 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -1,7 +1,8 @@
# configure.in for GCC
# Process this file with autoconf to generate a configuration script.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
#This file is part of GCC.
@@ -176,6 +177,42 @@ changequote([, ])dnl
fi
fi
+AC_ARG_WITH(sysroot,
+[ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
+[
+ case ${with_sysroot} in
+ yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
+ *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
+ esac
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+ test_prefix=/usr/local
+ else
+ test_prefix=$prefix
+ fi
+ else
+ test_prefix=$exec_prefix
+ fi
+ case ${TARGET_SYSTEM_ROOT} in
+ "${test_prefix}"|"${test_prefix}/"*|\
+ '${exec_prefix}'|'${exec_prefix}/'*)
+ t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
+ TARGET_SYSTEM_ROOT_DEFINE="$t"
+ ;;
+ esac
+], [
+ TARGET_SYSTEM_ROOT=
+ TARGET_SYSTEM_ROOT_DEFINE=
+ CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
+])
+AC_SUBST(TARGET_SYSTEM_ROOT)
+AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
+AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
+
# Determine the host, build, and target systems
AC_CANONICAL_SYSTEM
@@ -300,8 +337,7 @@ no) ;;
;;
esac
],
-# Enable some checks by default for development versions of GCC
-[ac_checking=1; ac_tree_checking=1; ac_gc_checking=1; ac_rtlflag_checking=1;])
+[])
nocommon_flag=""
if test x$ac_checking != x ; then
AC_DEFINE(ENABLE_CHECKING, 1,
@@ -547,7 +583,7 @@ gcc_AC_HEADER_STDBOOL
gcc_AC_HEADER_STRING
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
- fcntl.h unistd.h sys/file.h sys/time.h \
+ fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h)
@@ -573,7 +609,7 @@ else
# that we can use it.
gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
[GNU texinfo.* \([0-9][0-9.]*\)],
- [4.[1-9]*])
+ [4.[2-9]*])
fi
if test $gcc_cv_prog_makeinfo_modern = no; then
@@ -641,6 +677,15 @@ GNAT_LIBEXC="$LIBS"
LIBS="$save_LIBS"
AC_SUBST(GNAT_LIBEXC)
+# Some systems put ldexp and frexp in libm instead of libc; assume
+# they're both in the same place. jcf-dump needs them.
+save_LIBS="$LIBS"
+LIBS=
+AC_SEARCH_LIBS(ldexp, m)
+LDEXP_LIB="$LIBS"
+LIBS="$save_LIBS"
+AC_SUBST(LDEXP_LIB)
+
# See if the stage1 system preprocessor understands the ANSI C
# preprocessor stringification operator. (Used by symcat.h.)
AC_C_STRINGIZE
@@ -667,7 +712,7 @@ dnl gcc_AC_C_ENUM_BF_UNSIGNED
AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
- scandir alphasort)
+ scandir alphasort gettimeofday mmap)
AC_CHECK_TYPE(ssize_t, int)
@@ -692,6 +737,7 @@ fi
AC_SUBST(TARGET_GETGROUPS_T)
gcc_AC_FUNC_PRINTF_PTR
+gcc_AC_FUNC_MMAP_BLACKLIST
case "${host}" in
*-*-uwin*)
@@ -707,8 +753,6 @@ case "${host}" in
;;
esac
AC_FUNC_VFORK
-AC_FUNC_MMAP_ANYWHERE
-AC_FUNC_MMAP_FILE
AM_ICONV
@@ -730,6 +774,15 @@ gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
#endif
])
+AC_TRY_COMPILE([
+#include "ansidecl.h"
+#include "system.h"
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
+],[rlim_t l = 0;],,[AC_DEFINE([rlim_t],[long],
+[Define to \`long' if <sys/resource.h> doesn't define.])])
+
gcc_AC_CHECK_DECLS(times, , ,[
#include "ansidecl.h"
#include "system.h"
@@ -764,6 +817,19 @@ if test $gcc_cv_type_clock_t = yes; then
[Define if <time.h> defines clock_t.])
fi
+AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
+[AC_TRY_COMPILE([
+#include "ansidecl.h"
+#include "system.h"
+],
+[if ((uchar *)0) return 0;
+ if (sizeof(uchar)) return 0;],
+ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
+if test $ac_cv_type_uchar = yes; then
+ AC_DEFINE(HAVE_UCHAR, 1,
+ [Define if <sys/types.h> provides uchar.])
+fi
+
AC_ARG_ENABLE(initfini-array,
[ --enable-initfini-array use .init_array/.fini_array sections],
gcc_cv_initfinit_array=$enableval, [gcc_AC_INITFINI_ARRAY])
@@ -780,6 +846,25 @@ objext='.o'
AC_SUBST(manext)
AC_SUBST(objext)
+# With Setjmp/Longjmp based exception handling.
+AC_ARG_ENABLE(sjlj-exceptions,
+[ --enable-sjlj-exceptions
+ arrange to use setjmp/longjmp exception handling],
+[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
+ [Define 0/1 to force the choice for exception handling model.])])
+
+AC_CHECK_LIB(unwind, main, use_libunwind_default=yes, use_libunwind_default=no)
+# Use libunwind based exception handling.
+AC_ARG_ENABLE(libunwind-exceptions,
+[ --enable-libunwind-exceptions force use libunwind for exceptions],
+use_libunwind_exceptions=$enableval,
+use_libunwind_exceptions=$use_libunwind_default)
+if test x"$use_libunwind_exceptions" = xyes; then
+ AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
+ [Define if gcc should use -lunwind.])
+fi
+
target_gtfiles=
build_xm_file=
build_xm_defines=
@@ -1178,6 +1263,9 @@ then
| powerpc*-*-*,powerpc64*-*-*)
CROSS="$CROSS -DNATIVE_CROSS" ;;
esac
+elif test "x$TARGET_SYSTEM_ROOT" != x; then
+ # This is just $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)
+ SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
fi
# If this is a cross-compiler that does not
@@ -1188,12 +1276,9 @@ fi
# This prevents libgcc2 from containing any code which requires libc
# support.
inhibit_libc=
-if [test x$host != x$target] && [test x$with_headers = x]; then
+if { test x$host != x$target && test "x$with_headers" = x &&
+ test "x$with_sysroot" = x ; } || test x$with_newlib = xyes ; then
inhibit_libc=-Dinhibit_libc
-else
- if [test x$with_newlib = xyes]; then
- inhibit_libc=-Dinhibit_libc
- fi
fi
AC_SUBST(inhibit_libc)
@@ -1220,8 +1305,10 @@ then
HOST_CC='$(CC_FOR_BUILD)'
HOST_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD) $(XCFLAGS)'
- STMP_FIXINC=
- STMP_FIXPROTO=
+ if test "x$TARGET_SYSTEM_ROOT" = x; then
+ STMP_FIXINC=
+ STMP_FIXPROTO=
+ fi
fi
# Expand extra_headers to include complete path.
@@ -1599,8 +1686,8 @@ elif test x$gcc_cv_as != x; then
ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
if echo "$ld_ver" | grep GNU > /dev/null; then
changequote(,)dnl
- ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ ].*\|\)$,\1,p'`
- ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
+ ld_vers=`echo $ld_ver | sed -n 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\)\([ ].*\|\)$,\1,p'`
+ ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
if test 0"$ld_date" -lt 20020404; then
if test -n "$ld_date"; then
# If there was date string, but was earlier than 2002-04-04, fail
@@ -1624,6 +1711,9 @@ changequote(,)dnl
fi
fi
changequote([,])dnl
+ else
+ # non-GNU linkers don't seem to support .hidden yet
+ gcc_cv_as_hidden=no
fi
fi
if test x"$gcc_cv_as_hidden" = xyes; then
@@ -1632,15 +1722,6 @@ if test x"$gcc_cv_as_hidden" = xyes; then
fi
AC_MSG_RESULT($gcc_cv_as_hidden)
libgcc_visibility=$gcc_cv_as_hidden
-case "$target" in
- mips-sgi-irix6*o32)
- if test x"$gnu_ld_flag" = x"no"; then
- # Even if using gas with .hidden support, the resulting object files
- # cannot be linked with the IRIX 6 O32 linker.
- libgcc_visibility=no
- fi
- ;;
-esac
AC_SUBST(libgcc_visibility)
AC_MSG_CHECKING(assembler leb128 support)
@@ -1865,6 +1946,41 @@ foo: data8 25
tls_first_major=2
tls_first_minor=13
;;
+ s390-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+foo: .long 25
+ .text
+ .long foo@TLSGD
+ .long foo@TLSLDM
+ .long foo@DTPOFF
+ .long foo@NTPOFF
+ .long foo@GOTNTPOFF
+ .long foo@INDNTPOFF
+ l %r1,foo@GOTNTPOFF(%r12)
+ l %r1,0(%r1):tls_load:foo
+ bas %r14,0(%r1,%r13):tls_gdcall:foo
+ bas %r14,0(%r1,%r13):tls_ldcall:foo'
+ tls_first_major=2
+ tls_first_minor=14
+ ;;
+ s390x-*-*)
+ conftest_s='
+ .section ".tdata","awT",@progbits
+foo: .long 25
+ .text
+ .quad foo@TLSGD
+ .quad foo@TLSLDM
+ .quad foo@DTPOFF
+ .quad foo@NTPOFF
+ .quad foo@GOTNTPOFF
+ lg %r1,foo@GOTNTPOFF(%r12)
+ larl %r1,foo@INDNTPOFF
+ brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
+ brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
+ tls_first_major=2
+ tls_first_minor=14
+ ;;
esac
if test -z "$tls_first_major"; then
:
@@ -2075,6 +2191,21 @@ changequote([,])dnl
fi
AC_MSG_RESULT($gcc_cv_as_instructions)
+ AC_MSG_CHECKING(cmov syntax)
+ gcc_cv_as_ix86_cmov_sun_syntax=no
+ if test x$gcc_cv_as != x; then
+ echo 'cmovl.l %edx, %eax' > conftest.s
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_ix86_cmov_sun_syntax=yes
+ fi
+ rm -f conftest.s conftest.o
+ fi
+ if test "x$gcc_cv_as_ix86_cmov_sun_syntax" = xyes; then
+ AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
+ [Define if your assembler supports the Sun syntax for cmov.])
+ fi
+ AC_MSG_RESULT($gcc_cv_as_ix86_cmov_sun_syntax)
+
AC_MSG_CHECKING(assembler GOTOFF in data directives)
gcc_cv_as_gotoff_in_data=no
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x
@@ -2101,6 +2232,41 @@ EOF
[Define true if the assembler supports '.long foo@GOTOFF'.])
AC_MSG_RESULT($gcc_cv_as_gotoff_in_data)
;;
+
+ ia64*-*-*)
+ AC_CACHE_CHECK([assembler supports ltoffx and ldxmov],
+ gcc_cv_as_ltoffx_ldxmov_relocs, [
+ gcc_cv_as_ltoffx_ldxmov_relocs=unknown
+ if test x$gcc_cv_gas_major_version != x \
+ -a x$gcc_cv_gas_minor_version != x
+ then
+ if test "$gcc_cv_gas_major_version" -eq 2 \
+ -a "$gcc_cv_gas_minor_version" -ge 14 \
+ -o "$gcc_cv_gas_major_version" -gt 2; then
+ gcc_cv_as_ltoffx_ldxmov_relocs=yes
+ fi
+ elif test x$gcc_cv_as != x; then
+ cat > conftest.s << 'EOF'
+changequote(,)dnl
+ .text
+ addl r15 = @ltoffx(x#), gp
+ ;;
+ ld8.mov r16 = [r15], x#
+EOF
+changequote([,])dnl
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_ltoffx_ldxmov_relocs=yes
+ else
+ gcc_cv_as_ltoffx_ldxmov_relocs=no
+ fi
+ rm -f conftest.s conftest.o
+ fi
+ ])
+ if test "x$gcc_cv_as_ltoffx_ldxmov_relocs" = xyes; then
+ AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
+ [Define if your assembler supports ltoffx and ldxmov relocations.])
+ fi
+ ;;
esac
AC_MSG_CHECKING(assembler dwarf2 debug_line support)
@@ -2200,6 +2366,13 @@ elif test x$gcc_cv_as != x -a x"$insn" != x ; then
# ??? This fails with non-gnu grep.
if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
gcc_cv_as_gstabs_flag="yes"
+ # The native Solaris 9/Intel assembler doesn't understand --gstabs
+ # and warns about it, but still exits successfully. So check for
+ # this.
+ if $gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | \
+ grep -i warning > /dev/null ; then
+ gcc_cv_as_gstabs_flag="no"
+ fi
fi
rm -f conftest.s conftest.o
fi
@@ -2216,18 +2389,18 @@ if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
gcc_cv_ld_ro_rw_mix=read-write
fi
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
- echo '.section "myfoosect", "a"' > conftest1.s
- echo '.section "myfoosect", "aw"' > conftest2.s
+ echo '.section myfoosect, "a"' > conftest1.s
+ echo '.section myfoosect, "aw"' > conftest2.s
echo '.byte 1' >> conftest2.s
- echo '.section "myfoosect", "a"' > conftest3.s
+ echo '.section myfoosect, "a"' > conftest3.s
echo '.byte 0' >> conftest3.s
- if $gcc_cv_as -o conftest1.o conftest1.s \
- && $gcc_cv_as -o conftest2.o conftest2.s \
- && $gcc_cv_as -o conftest3.o conftest3.s \
+ if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
+ && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
+ && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
&& $gcc_cv_ld -shared -o conftest1.so conftest1.o \
- conftest2.o conftest3.o; then
+ conftest2.o conftest3.o > /dev/null 2>&1; then
gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
- | grep -A1 myfoosect`
+ | sed -e '/myfoosect/!d' -e N`
if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
gcc_cv_ld_ro_rw_mix=read-only
@@ -2265,6 +2438,24 @@ if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
fi
AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
+AC_MSG_CHECKING(linker --as-needed support)
+gcc_cv_ld_as_needed=no
+if test x$gcc_cv_gld_major_version != x -a x$gcc_cv_gld_minor_version != x; then
+ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 && grep 'EMUL = elf' ../ld/Makefile > /dev/null; then
+ gcc_cv_ld_as_needed=yes
+ fi
+elif test x$gcc_cv_ld != x; then
+ # Check if linker supports --as-needed and --no-as-needed options
+ if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
+ gcc_cv_ld_as_needed=yes
+ fi
+fi
+if test x"$gcc_cv_ld_as_needed" = xyes; then
+ AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
+[Define if your linker supports --as-needed and --no-as-needed options.])
+fi
+AC_MSG_RESULT($gcc_cv_ld_as_needed)
+
# Miscellaneous target-specific checks.
case "$target" in
mips*-*-*)
@@ -2295,7 +2486,8 @@ case "$target" in
;;
esac
-if test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
+if test x$with_sysroot = x && test x$host = x$target \
+ && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include")
fi
@@ -2483,24 +2675,6 @@ else
fi
AC_SUBST(MAINT)dnl
-# With Setjmp/Longjmp based exception handling.
-AC_ARG_ENABLE(sjlj-exceptions,
-[ --enable-sjlj-exceptions
- arrange to use setjmp/longjmp exception handling],
-[sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
-AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
- [Define 0/1 to force the choice for exception handling model.])])
-
-# Use libunwind based exception handling.
-AC_ARG_ENABLE(libunwind-exceptions,
-[ --enable-libunwind-exceptions force use libunwind for exceptions],
-use_libunwind_exceptions=$enableval,
-use_libunwind_exceptions=no)
-if test x"$use_libunwind_exceptions" = xyes; then
- AC_DEFINE(USE_LIBUNWIND_EXCEPTIONS, 1,
- [Define if gcc should use -lunwind.])
-fi
-
# Make empty files to contain the specs and options for each language.
# Then add #include lines to for a compiler that has specs and/or options.
diff --git a/gcc/convert.c b/gcc/convert.c
index e440e35f575..aa0d0fb4140 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -182,7 +182,27 @@ convert_to_integer (type, expr)
we are truncating EXPR. */
else if (outprec >= inprec)
- return build1 (NOP_EXPR, type, expr);
+ {
+ enum tree_code code;
+
+ /* If the precision of the EXPR's type is K bits and the
+ destination mode has more bits, and the sign is changing,
+ it is not safe to use a NOP_EXPR. For example, suppose
+ that EXPR's type is a 3-bit unsigned integer type, the
+ TYPE is a 3-bit signed integer type, and the machine mode
+ for the types is 8-bit QImode. In that case, the
+ conversion necessitates an explicit sign-extension. In
+ the signed-to-unsigned case the high-order bits have to
+ be cleared. */
+ if (TREE_UNSIGNED (type) != TREE_UNSIGNED (TREE_TYPE (expr))
+ && (TYPE_PRECISION (TREE_TYPE (expr))
+ != GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (expr)))))
+ code = CONVERT_EXPR;
+ else
+ code = NOP_EXPR;
+
+ return build1 (code, type, expr);
+ }
/* If TYPE is an enumeral type or a type with a precision less
than the number of bits in its mode, do the conversion to the
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 096b906a633..d65dc139514 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,7 +1,2077 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-04-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * call.c (build_new_op): Remove check for warn_synth.
+
+2004-12-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/17456
+ * cvt.c (convert_to_void): Set expr to void_zero_node after
+ overload failure.
+
+2004-12-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/16806
+ * error.c (dump_expr) [BASELINK]: Use dump_expr.
+
+2004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/17868
+ * error.c (dump_expr): Add missing case for RDIV_EXPR.
+
+2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16681
+ * init.c (build_zero_init): Build a RANGE_EXPR for an array
+ initializer.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-09-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ * decl.c (reshape_init): Remove unused variable.
+
+2004-09-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14179
+ * decl.c (reshape_init): Extract array handling into...
+ (reshape_init_array): New function. Use integers instead of trees
+ for indices.
+
+2004-09-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/15857
+ Backport from gcc-3_4-branch
+ 2004-08-24 Jason Merrill <jason@redhat.com>
+ PR c++/15461
+ * semantics.c (nullify_returns_r): Replace a DECL_STMT
+ for the NRV with an INIT_EXPR.
+
+2004-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/16175
+ * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
+ cv qualifier.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline:
+ 2004-03-18 Mark Mitchell <mark@codesourcery.com>
+ * call.c (build_conditional_expr): Do not call force_rvalue for
+ operands of void_type when the conditional expression itself has
+ void type.
+
+2004-05-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Make-lang.in (cp/init.o): Depend on diagnostic.h.
+ * except.c (do_free_exception): Prototype.
+ * init.c: Include "diagnostic.h".
+
+2004-05-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ Backport:
+ 2004-04-01 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14810
+ * decl.c (maybe_push_cleanup_level): Robustify.
+
+2004-05-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from gcc-3_4-branch
+ 2004-03-30 Mark Mitchell <mark@codesourcery.com>
+ Jakub Jelinek <jakub@redhat.com>
+ PR c++/14763
+ * pt.c (tsubst_default_argument): Clear current_function_decl.
+ * decl2.c (mark_used): Don't segfault if cfun != NULL but
+ current_function_decl == NULL.
+
+2004-05-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from gcc-3_4-branch:
+ 2004-03-30 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14724
+ * decl.c (start_decl_1): Do not decide whether or not to create a
+ new cleanup level until after the type has been completed.
+
+2004-04-01 Richard Henderson <rth@redhat.com>
+
+ PR c++/14804
+ * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
+ * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
+
+2003-03-17 Matt Austern <austern@apple.com>
+
+ Backport:
+ PR debug/14079
+ * decl.c (add_decl_to_level): Add extern variables, as well
+ as static, to static_decls array.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-11 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14476
+ * decl.c (xref_tag): Do not create dummy ENUMERAL_TYPEs.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-08 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14401
+ * class.c (check_field_decls): Complain about non-static data
+ members of reference type in unions. Propagate
+ CLASSTYPE_REF_FIELDS_NEED_INIT and
+ CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
+ data members.
+ * init.c (perform_member_init): Complain about members with const
+ type that are not explicitly initialized.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-03-09 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14230
+ * call.c (initialize_reference): Handle initializers that are
+ class-member access expressions applies to rvalues.
+
+2004-03-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-01-12 Richard Henderson <rth@redhat.com>
+ PR opt/10776
+ * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
+ (store_init_value): Use it.
+ * decl.c (check_initializer): Expect full initialization code
+ from store_init_value.
+ * init.c (expand_aggr_init_1): Likewise.
+ * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
+
+2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14409
+ * pt.c (determine_specialization): For member templates, match also
+ constness.
+
+2004-03-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport:
+ 2004-02-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9941
+ * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
+ linkage for the typeinfo name string.
+
+2004-02-24 Jason Merrill <jason@redhat.com>
+
+ PR c++/13944
+ * except.c (do_free_exception): Remove #if 0 wrapper.
+ (build_throw): Use it if we elide a copy into the exception object.
+
+2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (current_binding_level): Define as an lvalue.
+
+2004-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13635
+ * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
+ has full set of arguments.
+
+2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14250
+ * cvt.c (build_expr_type_conversion): Type must be complete before
+ looking up for conversions.
+
+2004-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (reshape_init): Convert array designator to sizetype.
+
+2004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-02-13 Mark Mitchell <mark@codesourcery.com>
+ PR c++/14083
+ * call.c (build_conditional_expr): Call force_rvalue on the
+ non-void operand in the case that one result is a throw-expression
+ and the other is not.
+
+2004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+ PR c++/14033
+ * decl.c (require_complete_types_for_parms): Do not insert
+ error_mark_node in the parameter list.
+
+2004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-02-04 Mark Mitchell <mark@codesourcery.com>
+ PR c++/13932
+ * call.c (convert_like_real): Use "converting" rather than
+ "argument" as the descriptive keyword to
+ dubious_conversion_warnings.
+ * typeck.c (convert_for_assignment): Do not call
+ dubious_conversion_warnings.
+
+2004-02-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-02-02 Mark Mitchell <mark@codesourcery.com>
+ PR c++/13907
+ * call.c (convert_class_to_reference): Keep better track of
+ pedantically invalid user-defined conversions.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13086
+ * init.c (build_delete): Emit a more informative error message in
+ case of an incomplete type, and on the correct source line.
+
+2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13683
+ * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
+ a sizeof expression.block
+
+2004-01-29 Aldy Hernandez <aldyh@redhat.com>
+
+ Backport:
+
+ 2004-01-17 Fred Fish <fnf@intrinsity.com>
+
+ PR c++/11895
+ * cp/decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
+ except don't call array_type_nelts() with a VECTOR_TYPE.
+
+2004-01-29 Aldy Hernandez <aldyh@redhat.com>
+
+ Backport:
+ 2003-06-03 Jason Merrill <jason@redhat.com>
+
+ * cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.
+
+ * cp/decl.c (reshape_init): Handle vectors.
+
+ * testsuite/g++.dg/init/array10.C: New.
+
+2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13797
+ * pt.c (instantiate_class_template): Add an error_mark_node
+ check.
+ (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
+
+ Backport from mainline
+ 2003-05-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10555, c++/10576
+ * pt.c (lookup_template_class): Handle class template with
+ multiple levels of parameters when one of the levels contain
+ errors.
+
+2004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-01-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13574
+ * decl.c (compute_array_index_type): Fix grammar in comment.
+ * init.c (build_zero_init): Handle zero-sized arrays correctly.
+
+2004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-01-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13478
+ * call.c (initialize_reference): Pass -1 for inner parameter to
+ convert_like_real.
+
+2004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-01-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13057
+ * class.c (build_clone): Copy type attributes from the original
+ function to the clone.
+
+2004-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2003-12-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13009
+ * call.c (build_special_member_call): Do not assume that we have a
+ pointer to the complete object in an assignment operator.
+
+2004-01-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13289
+ * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
+ calling regenerate_decl_from_template.
+
+2004-01-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline
+ 2004-01-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12816
+ * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
+ references as constant.
+
+2004-01-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/13544
+ * decl.c (build_enumerator): Set DECL_CONTEXT after the enumerator
+ has been pushed.
+ (pushdecl): Don't use DECL_NAMESPACE_SCOPE_P to test whether a
+ decl has a namespace-scope; that isn't really what it means.
+
+2004-01-02 Matthias Klose <doko@debian.org>
+
+ Backport from mainline:
+ 2003-12-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13081
+ * decl.c (duplicate_decls): Preserve inline-ness when redeclaring
+ a function template.
+
+2003-12-20 Andrew Pinski <pinskia@physics.uc.edu>
+
+ Backport from mainline:
+ 2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/13507
+ * decl.c (duplicate_decls): Use build_type_attribute_variant to
+ merge attributes.
+
+2003-12-30 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/13445
+ * pt.c (instantiate_class_template): Push to class's scope before
+ tsubsting base.
+
+2003-12-28 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/13070
+ * decl.c (duplicate_decls): When setting the type of an anticipated
+ declaration, merge the existing type attributes.
+
+2003-12-27 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ Backport from mainline:
+ 2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/2294
+ * decl.c (push_overloaded_decl): always construct an OVERLOAD
+ if the declaration comes from an using declaration.
+
+2003-12-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline:
+ 2003-12-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12696
+ * decl.c (reshape_init): Recover quickly from errors.
+
+2003-12-26 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Backport from mainline:
+ 2003-12-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR C++/12862
+ * decl.c (pushdecl): Look up all namespace-scope entities in their
+ corresponding namespace.
+
+2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c++/5050
+ * tree.c (cp_start_inlining): Remove.
+ (cp_end_inlining): Remove.
+ * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define.
+ (LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define.
+ * cp-tree.h (cp_start_inlining): Do not declare.
+ (cp_end_inlining): Do not declare.
+
+2003-12-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11554
+ * init.c (sort_mem_initializers): Add warning.
+
+2003-12-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/13371
+ * typeck.c (build_modify_expr): Stabilize lhs if we're narrowing.
+
+2003-12-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/12253
+ * init.c (build_vec_init): Initialization of an element from
+ an initializer list is also a full-expression.
+
+2003-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13262
+ * pt.c (instantiate_decl): Wrap push_nested_class and
+ pop_nested_class around cp_finish_decl call for static member
+ variable.
+
+2003-12-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13323
+ * class.c (same_signature_p): Handle conversion operators
+ correctly.
+ (check_for_override): Likewise.
+
+2003-11-14 Bernardo Innocenti <bernie@develer.com>
+
+ Backport from 3.4-branch.
+
+ 2003-06-25 Giovanni Bajo <giovannibajo@libero.it>
+
+ PR c++/2094
+ * pt.c (unify): Add support for PTRMEM_CST and
+ FIELD_DECL unification.
+
+2003-11-08 Bernardo Innocenti <bernie@develer.com>
+
+ Backport from 3.4-branch.
+
+ 2003-10-08 Giovanni Bajo <giovannibajo@libero.it>
+
+ * cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
+ * error.c (dump_function_decl): Use it to skip the dump of the
+ arguments.
+ (dump_expr): When dumping a declaration found within an
+ expression, always set TFF_NO_FUNCTION_ARGUMENTS
+ in the flags.
+
+2003-10-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/12726
+ * tree.c (build_target_expr_with_type): Don't call force_rvalue
+ for CONSTRUCTORs.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/12369
+ * decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
+ is a member of other class.
+ * friend.c (do_friend): Don't build TEMPLATE_DECL if friend
+ is a specialization of function template.
+
+2003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/7939
+ * typeck.c (comptypes): Don't ICE when its first argument is
+ error_mark_node.
+ (compparms): Reverse the arguments of same_type_p.
+
+2003-10-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/11878
+ * tree.c (build_target_expr_with_type): Call force_rvalue for
+ classes with non-trivial copy ctors.
+
+ PR c++/11063
+ * typeck.c (build_modify_expr): Call convert rather than abort.
+
+2003-10-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10147
+ * call.c (initialize_reference): Tweak error message.
+
+ PR c++/12337
+ * init.c (build_new_1): Make sure that the expression returned is
+ not an lvalue.
+
+ PR c++/12344, c++/12236, c++/8656
+ * decl.c (start_function): Do not ignore attributes embedded in a
+ function declarator.
+
+2003-10-04 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/11409
+ * class.c (resolve_address_of_overloaded_function): When building
+ list of matching non-template function decls, ignore anticipated
+ declarations of undeclared or shadowed GCC builtins.
+
+2003-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12486
+ * typeck.c (finish_class_member_access_expr): Issue diagnostic
+ on erroneous use of qualified name.
+
+2003-07-09 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (break_out_calls): Remove declaration.
+ * tree.c (break_out_calls): Remove.
+ * typeck.c (build_modify_expr): Avoid invalid sharing of trees.
+
+2003-09-18 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (resolve_address_of_overloaded_function): Replace
+ complain parameter with flags parameter.
+ (instantiate_type): Adjust accordingly.
+
+2003-09-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11991
+ * typeck2.c (incomplete_type_diagnostic): Robustify.
+
+ PR c++/12266
+ * cp-tree.h (tsubst_flags_t): Add tf_conv.
+ * class.c (standard_conversion): Pass tf_conv to
+ instantiate_type.
+ (resolve_address_of_overloaded_function): Do not call mark_used
+ when just checking conversions.
+
+2003-09-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/3907
+ * cp-tree.h (innermost_scope_is_class_p): New function.
+ * class.c (maybe_note_name_used_in_class): Refine test for whether
+ or not we are in a class scope.
+ * decl.c (innermost_scope_is_class_p): Define.
+
+2003-09-14 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
+ an bit-field whose width exceeds that of its type.
+
+2003-09-09 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR c++/11595
+ * decl.c (define_label): Remove unreachable timevar pop.
+ Always return the decl, even if the definition is invalid.
+
+2003-09-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11786
+ * decl2.c (add_function): Do not complain about seeing the same
+ non-function twice.
+
+2003-09-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/5296
+ * pt.c (try_one_overload): Add addr_p parameter.
+ (resolve_overloaded_unification): Pass it.
+
+2003-09-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/12181
+ * typeck.c (build_modify_expr): Don't always stabilize the lhs and
+ rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs.
+
+2003-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11867
+ * call.c (standard_conversion): Improve comments.
+ (perform_direct_initialization): Make sure we return an expression
+ of the correct type.
+ * typeck.c (build_static_cast): Check for ambiguity and
+ accessibility when performing conversions.
+
+2003-09-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12163
+ * call.c (perform_direct_initialization): Correct logic for
+ direct-initialization of a class type.
+
+ PR c++/12146
+ * pt.c (lookup_template_function): Robustify.
+
+2003-09-04 Mark Mitchell <mark@codesourcery.com>
+
+ Revert this patch:
+ * class.c (include_empty_classes): Correct logic for ABI version 1.
+
+2003-09-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12053
+ * class.c (include_empty_classes): Correct logic for ABI version 1.
+
+2003-09-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12114
+ * cp-tree.h (initialize_reference): Change prototype.
+ * call.c (initialize_reference): Add cleanup parameter.
+ * decl.c (grok_reference_init): Likewise.
+ (check_initializer): Likewise.
+ (cp_finish_decl): Insert a CLEANUP_STMT if necessary.
+ (duplicate_decls): When replacing an anticipated builtin, do not
+ honor TREE_NOTHROW.
+ * typeck.c (convert_for_initialization): Correct call to
+ initialize_reference.
+
+2003-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11928
+ * search.c (add_conversions): Avoid adding two conversion
+ operators for the same type.
+
+2003-08-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cp-tree.h (build_function_call_real): Remove unused parameter.
+ * typeck.c (build_function_call_real): Likewise. Caller changed.
+ * decl.c (binding_table_reverse_maybe_remap): Initialize variable.
+
+2003-08-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/5293
+ * call.c (initialize_reference): Improve diagnostic.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11713
+ * search.c (setup_class_bindings): Handle conversion operators
+ specially.
+
+2003-07-24 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/10796
+ * decl.c (finish_enum): Make sure the underlying integer type has
+ the same precision as some full integer type. Reverts part
+ 2003-06-27's patch that didn't play any role in fixing the PR.
+
+2003-07-24 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (convert_to_base_statically): Declare.
+ * call.c (build_special_member_call): Convert INSTANCE to the base
+ type.
+ * class.c (convert_to_base_statically): New method.
+ * init.c (construct_virtual_base): Use it.
+ * method.c (do_build_assign_ref): Fix typo in comment.
+
+2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11513
+ * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope.
+
+2003-07-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11645
+ * cp-tree.h (accessible_base_p): Declare.
+ * call.c (build_over_call): Use it.
+ * search.c (accessible_base_p): New function, split out from ...
+ (lookup_base): ... here.
+
+2003-07-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/11282
+ * decl.c: (reshape_init): Always advance *INITP.
+
+2003-07-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11546
+ * pt.c (lookup_template_class): Treat TYPE_DECLs as TEMPLATE_DECLs
+ where appropriate.
+
+2003-07-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7053
+ * pt.c (unregister_specialization): Rename to ...
+ (reregister_specialization): ... this.
+ (tsubst_friend_function): Use it.
+ (regenerate_decl_from_template): Likewise.
+
+2003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11154
+ * pt.c (more_specialized_class): Add full_args parameter.
+ (most_specialized_class): Adjust calls to more_specialized_class.
+ * cp-tree.h (more_specialized_class): Adjust declaration.
+
+2003-07-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11503
+ * cp-tree.h (DECL_SELF_REFERENCE_P): New macro.
+ (SET_DECL_SELF_REFERENCE_P): Likewise.
+ * class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P.
+ * pt.c (tsubst_decl): Copy it.
+ * search.c (lookup_base): Use DECL_SELF_REFERENCE_P.
+
+2003-07-11 Danny Smith <dannysmith@users.sourceforge.net>
+
+ Backport from mainline.
+
+ 2003-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR c++/9738
+ * decl.c (duplicate_decls): Re-invoke make_decl_rtl
+ if the old decl had instantiated DECL_RTL.
+ (Based on Richard Henderson 2003-05-13 patch to c-decl.c).
+
+2003-07-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8164
+ * decl.c (duplicate_decls): Avoid mangling names unnecessarily.
+
+2003-07-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10558
+ * parse.y (class_template_ok_as_expr): New variable.
+ (template_arg_1): New non-terminal.
+ (primary): Issue errors about uses of class templates as
+ expressions.
+
+2003-07-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10032
+ * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are
+ still errors.
+
+ PR c++/10527
+ * error.c (decl_to_string): Do not print default argument
+ expressions.
+
+2003-07-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10849
+ * decl2.c (handle_class_head_apparent_template): New function.
+ * cp-tree.h (handle_class_head_apparent_template): Add declaration.
+ * parse.y (class_head_defn): Use it.
+ * search.c (type_access_control): Revert my 2003-05-25 change.
+
+2003-07-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11236
+ * cvt.c (convert_to_void): Treat an overloaded function like
+ "((void) 0)" after issuing a diagnostic.
+
+ PR c++/11345
+ * search.c (lookup_base_r): Remove is_non_public and
+ within_current_scope parameters. Remove other dead code.
+ (lookup_base): Adjust call to lookup_base_r.
+ (adjust_result_of_qualified_name_lookup): Improve comment.
+ * semantics.c (finish_call_expr): Use maybe_dummy_object.
+
+2003-07-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11431
+ * typeck.c (build_static_cast): Check for reference conversions
+ earlier.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/6949
+ * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local
+ classes.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ * call.c (resolve_scoped_fn_name): Return error_mark_node for
+ erroneous cases.
+
+ PR c++/11137
+ * decl2.c (generate_ctor_or_dtor_function): Tolerate a
+ non-existant ssdf_decls array.
+ (finish_file): Call generator_ctor_or_dtor_function when there are
+ static constructors or destructors and no other static
+ initializations.
+
+ PR c++/11149
+ * call.c (resolve_scoped_fn_name): Check that the qualifying scope
+ is a class type.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9559
+ * decl2.c (grokfield): Do not build NOP_EXPRs around the
+ error_mark_node.
+
+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ * mangle.c (write_expression): Exit gracefully when trying to
+ mangle a CALL_EXPR.
+
+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ PR c++/11106
+ * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a
+ USING_DECL, instead of print_tree_identifier.
+
+2003-06-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10468
+ * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly.
+
+ PR c++/10796
+ * decl.c (finish_enum): Implement DR377.
+
+ * decl.c (cp_finish_decl): Don't make variables with reference
+ type readonly while they are being initialized.
+
+2003-06-26 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11332
+ * typeck.c (build_static_cast): Avoid returning expressions with
+ reference type.
+
+2003-06-25 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10990
+ * search.c (lookup_base_r): Rely on accessible_p, rather than
+ trying to emulate that logic here.
+
+ PR c++/10931
+ * call.c (convert_like): Pass issue_conversion_warnings.
+ (convert_like_with_context): Likewise.
+ (convert_like_real): Add issue_conversion_warnings parameter.
+ (perform_direct_initialization_if_possible): New function.
+ * cp-tree.h (perform_direct_initialization_if_possible): Declare it.
+ * typeck.c (check_for_casting_away_constness): New function.
+ (build_static_cast): Rewrite.
+
+2003-06-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/5754
+ * parse.y (structsp): Improve error handling of invalid nested
+ template classes.
+
+2003-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ * mangle.c: Include ggc.h, gt-cp-mangle.h.
+ (mangle_conv_op_name_for_type): Use htab_create_ggc instead of
+ htab_create.
+ * config-lang.in (gtfiles): Add cp/mangle.c.
+ * Make-lang.in (gt-cp-mangle.h): Depend on s-gtype.
+ (cp/mangle.o): Depend on gt-cp-mangle.h.
+
+2003-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ * mangle.c (hash_type): val is the TREE_LIST itself, not a pointer
+ to it.
+
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/10784
+ * call.c (joust): Warn about choosing conversion sequence only if
+ -Wconversion.
+
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/10864
+ * call.c (op_error): Tidy.
+ * error.c (dump_expr): Properly format 'T()' when T is an
+ aggregate type.
+
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/10915
+ * decl.c (grok_op_properties): Warn possible confusing conversion
+ only if -Wconversion.
+
+2003-06-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10845
+ * pt.c (try_class_unification): Correct handling of member class
+ templates.
+
+2003-06-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10939
+ * Make-lang.in (decl.o): Depend on input.h.
+ * decl.c (input.h): Include it.
+ (cp_finish_decl): Revert previous change:
+ 2003-06-19 Mark Mitchell <mark@codesourcery.com>
+ * decl.c (cp_finish_decl): Remove support for RESULT_DECLs.
+ Don't check building_stmt_tree.
+ * pt.c (tsubst_decl): Do not try to substitute into non-dependent
+ functions.
+
+ PR c++/9649
+ * cp-tree.h (pushdecl_class_level): Change prototype.
+ (push_class_level_binding): Likewise.
+ * decl.c (add_binding): Reject duplicate static data members.
+ (pushdecl_class_level): Return a value indicating whether or not
+ the binding was valid.
+ (push_class_level_binding): Likewise.
+ * semantics.c (finish_member_declaration): Don't keep invalid
+ declarations.
+
+2003-06-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11041
+ * call.c (initialize_reference): Do not use cp_finish_decl to emit
+ temporary variables.
+ * cp-tree.h (static_aggregates): Declare.
+ (pushdecl_top_level_and_finish): Likewise.
+ * decl.c (pushdecl_top_level_1): New function.
+ (pushdecl_top_level): Use it.
+ (pushdecl_top_level_and_finish): New function.
+ (initialize_local_var): Remove redundant code.
+ (cp_finish_decl): Remove support for RESULT_DECLs. Don't check
+ building_stmt_tree.
+ * decl.h (static_aggregates): Remove.
+ * decl2.c (get_guard): Use pushdecl_top_level_and_finish.
+ * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
+ (tinfo_base_init): Likewise.
+
+2003-06-19 Matt Austern <austern@apple.com>
+
+ PR c++/11228
+ * init.c (build_zero_init): Assert that number of array elements
+ is an integer constant.
+ (build_default_init) Don't use build_zero_init for arrays with
+ variable number of elements.
+
+2003-06-17 Mark Mitchell <mark@codesourcery.com>
+
+ * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
+ string again.
+
+2003-06-17 Mark Mitchell <mark@codesourcery.com>
+
+ * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
+ string.
+
+2003-06-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/10929
+ * decl.c (grokfndecl): Don't mark a function inline for
+ -finline-functions if it isn't defined.
+
+2003-06-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10712
+ * class.c (handle_using_decl): Robustify.
+
+ PR c++/11105
+ * cp-tree.h (DECL_CONV_FN_TYPE): New method.
+ * decl.c (lookup_name_real): Backport conversion operator code
+ from mainline.
+ * mangle.c (struct globals): Remove internal_mangling_p.
+ (write_unqualified_name): Use DECL_CONV_FN_TYPE.
+ (write_template_parm): Don't write out the level number.
+ (conv_type_names): New variable.
+ (hash_type): New function.
+ (compare_type): Likewise.
+ (mangle_conv_op_name_for_type): Don't try to mangle conversion
+ operator names.
+ * search.c (lookup_conversion_operator): New function.
+ (lookup_fnfields_1): Use it.
+
+2003-06-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10635
+ * typeck.c (build_c_cast): Check that the destination type is
+ complete.
+
+2003-06-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/10968
+ * pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
+
+2003-06-09 Zack Weinberg <zack@codesourcery.com>
+
+ PR 8861
+ * mangle.c (write_real_cst): New function. Implement
+ ABI-compliant mangling of floating-point literals when
+ -fabi-version>=2; provide backward compatibility with 3.3 when
+ -fabi-version=1 (with warning). Clarify commentary.
+ (write_template_arg_literal): Use write_real_cst.
+
+2003-06-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11039
+ * decl2.c (handle_class_head): Remove implicitness in typename
+ appeared as elaborated type specifier in declaration.
+
+2003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10940
+ * pt.c (check_explicit_specialization): Check for 'static'
+ earlier.
+
+2003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10956
+ * pt.c (instantiate_decl): Don't use full template arguments if
+ we are dealing with specializations.
+
+2003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (ENABLE_CHECKING_SCOPES): New macro.
+ (binding_depth): Unconditionally define.
+ (is_class_level): Likewise.
+ (indent): Likewise. Take an indenting parameter.
+ (push_binding_level): Remove conditional definittion.
+ (pop_binding_level): Likewise.
+ (suspend_binding_level): Likewise.
+ (resume_binding_level): Likewise.
+ (pushlevel): Likewise.
+ (pushlevel_class): Likewise.
+ (poplevel_class): Likewise.
+ (pop_everything): Likewise.
+
+2003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (global_scope_p): New macro.
+ (pop_binding_level): Use it.
+ (suspend_binding_level): Likewise.
+ (global_bindings_p): Likewise.
+ (print_other_binding_stack): Likewise.
+ (print_binding_stack): Likewise.
+ (maybe_push_to_top_level): Likewise.
+ (pushdecl_namespace_level): Likewise.
+ (start_decl): Likewise.
+ (cp_finish_decl): Likewise.
+ (start_function): Likewise.
+ (cxx_init_decl_processing): Don't refer to global_binding_level.
+ (global_binding_level): Remove.
+
+2003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10849
+ * search.c (type_access_control): Don't check access when
+ processing_specialization.
+
+2003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10682
+ * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
+ check for implicitly created typedef to an enum.
+
+2003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (free_binding_entry): Fix thinko.
+
+2003-05-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * cp-tree.h (struct binding_entry_s): New datatype.
+ (binding_table): Declare.
+ (binding_entry): Likewise.
+ (bt_foreach_proc): Likewise.
+ (binding_table_foreach): Likewise.
+ (binding_table_find): Likewise.
+ (cxx_remember_type_decls): Likewise.
+ (CLASSTYPE_TAGS): Remove.
+ (CLASSTYPE_NESTED_UDTS): New macro.
+ (struct lang_type_class): Remove tags field. Add nested_types.
+ * decl.c (ENTRY_INDEX): New macro.
+ (free_binding_entry): New free list.
+ (binding_entry_make): New function.
+ (binding_entry_free): Likewise.
+ (struct binding_table_s): New datatype.
+ (SCOPE_DEFAULT_HT_SIZE): New macro.
+ (CLASS_SCOPE_HT_SIZE): Likewise.
+ (NAMESPACE_ORDINARY_HT_SIZE): Likewise.
+ (NAMESPACE_STD_HT_SIZE): Likewise.
+ (GLOBAL_SCOPE_HT_SIZE): Likewise.
+ (binding_table_construct): New function.
+ (binding_table_free): Likewise.
+ (binding_table_new): Likewise.
+ (binding_table_expand): Likewise.
+ (binding_table_insert): Likewise.
+ (binding_table_find): Likewise.
+ (binding_table_find_anon_type): Likewise.
+ (binding_table_reverse_maybe_remap): Likewise.
+ (binding_table_remove_anonymous_types): Likewise.
+ (binding_table_foreach): Likewise.
+ (struct cp_binding_level): Remove tags field. Add type_decls.
+ (pop_binding_level): Free binding_entries if possible.
+ (kept_level_p): Tidy.
+ (poplevel): Remove unused variable tags.
+ (bt_print_entry): New function.
+ (print_binding_level): Use it.
+ (push_namespace): Construct binding table.
+ (maybe_process_template_type_declaration): Tidy.
+ (pushtag): Likewise.
+ (clear_anon_tags): Likewise.
+ (cxx_remember_type_decls): New function.
+ (lookup_tag): Tidy.
+ (lookup_tag_reverse): Likewise.
+ (cxx_init_decl_processing): Construct binding_table for the global
+ scope.
+ (store_parm_decls): Remove pointless code.
+ (gettags): Remove.
+ (storetags): Likewise.
+ * class.c (unreverse_member_declarations): Don't touch
+ CLASSTYPE_TAGS.
+ (pushclass): Remember CLASSTYPE_NESTED_UTDS.
+ * pt.c (instantiate_class_template): Remove reference to
+ CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS.
+ (bt_instantiate_type_proc): New function.
+ (do_type_instantiation): Use it.
+ * search.c (lookup_field_r): Use binding_table_find.
+ * semantics.c (begin_class_definition): Remove reference to
+ CLASSTYPE_TAGS. Nullify CLASSTYPE_NESTED_UTDS.
+
+2003-05-15 Jason Merrill <jason@redhat.com>
+
+ PR c++/5388
+ * call.c (conditional_conversion): Don't consider implicit
+ conversions if T2 is a base of T1.
+ * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
+ (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
+
+ PR c++/10661
+ * pt.c (instantiate_class_template): Also instantiate our
+ enclosing class.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-02 Richard Henderson <rth@redhat.com>
+
+ PR c++/10570
+ * cfns.gperf: Comment out POSIX thread cancellation points,
+ plus abort and raise.
+ * cfns.h: Regenerate.
+
+2003-05-01 Mark Mitchell <mark@codesourcery.com>
+
+ * decl2.c (comdat_linkage): Don't externalize explicit
+ instantiations.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10551
+ * pt.c (mark_decl_instantiated): Defer all explicit instantiations
+ that have not yet been written out.
+
+ PR c++/10549
+ * class.c (layout_class_type): Mark overlong bitfields as having
+ the maximum size permitted by their type, after layout.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10527
+ * error.c (dump_expr): Correctly handling of NEW_EXPR.4
+
+2003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * lang-options.h: Fix typo.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10515
+ * cp-tree.h (lookup_field_1): Declare it.
+ * search.c (lookup_field_1): Make it public.
+ * decl.c (reshape_init): Handle designated initializers.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (maybe_commonize_var): Further tweak support for systems
+ without weak symbols.
+
+2003-04-27 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (maybe_commonize_var): Fix thinko in last patch.
+
+ PR c++/10506
+ * method.c (use_thunk): Decrement immediate_size_expand.
+
+ PR c++/10503
+ * cp-tree.h (DECL_VAR_MARKED_P): New macro.
+ (DECL_MAYBE_TEMPLATE): Remove.
+ * class.c (fixed_type_or_null): Avoid infinite recursion.
+
+2003-04-27 Mark Mitchell <mark@codesourcery.com>
+
+ * decl.c (maybe_commonize_var): Make the code match the comments.
+ * pt.c (instantiate_decl): Move call to import_export_decl.
+
+2003-04-25 Mark Mitchell <mark@codesourcery.com>
+
+ * decl2.c (finish_file): Don't call import_export_decl for
+ functions that are not defined.
+ (handle_class_head): Robustify.
+ * pt.c (instantiate_decl): Do not call cp_finish_decl for
+ variables that are not defined.
+
+2003-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10471
+ * call.c (build_cxx_call): Robustify.
+
+2003-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10451
+ * decl.c (grokdeclarator): Correct logic for "mutable" errors.
+
+2003-04-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10446
+ * search.c (lookup_fnfields_1): Handle empty slots in the method
+ vector.
+
+2003-04-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10428
+ * decl.c (check_elaborated_type_specifier): New function, split
+ out from ...
+ (xref_tag): ... here. Use the new function in more places.
+
+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * call.c (build_over_call): Use build_cxx_call.
+ (build_cxx_call): New method, split out of build_over_call.
+ * cp-tree.h (language_function): Add can_throw.
+ (build_cxx_call): Declare it.
+ * decl.c (finish_function): If a function does not contain any
+ calls to functions that can throw an exception, indicate that
+ fact.
+ * decl2.c (mark_used): Do not defer the instantiation of
+ functions, if the current function does not throw.
+ * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
+ * pt.c (instantiate_decl): Make sure import_export_decl is called
+ before emitting things.
+ * rtti.c (throw_bad_cast): Use build_cxx_call.
+ (build_dynamic_cast_1): Likewise.
+ * typeck.c (build_function_call): Likewise.
+
+2003-04-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9881
+ * typeck.c (build_unary_op): Fold all COMPONENT_REF addr
+ expressions. Reverts my 2002-08-08 patch.
+
+2003-04-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10405
+ * search.c (lookup_field_1): Final scan goes backwards for
+ types, forwards for non-types.
+
+2003-04-15 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (mark_used): Don't instantiate anything if
+ skip_evaluation.
+
+2003-04-15 Mark Mitchell <mark@codesourcery.com>
+
+ * init.c (build_new_1): Use nullexp instead of null_node to avoid
+ unwanted macro expansion.
+
+2003-04-14 Ziemowit Laski <zlaski@apple.com>
+
+ * tree.c (build_cplus_array_type_1): Do not call
+ uses_template_parms() on a NULL index_type.
+
+2003-04-14 Andreas Schwab <schwab@suse.de>
+
+ * init.c (build_new_1): Test use_cookie instead of cookie_size to
+ avoid code-gen bug on ia64.
+
+2003-04-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10300
+ * init.c (build_new_1): Correct logic for checking whether the
+ return value from the allocation function was zero.
+
+2003-03-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10278
+ * spew.c (yyerror): Avoid crashing at all costs.
+
+2003-03-31 Jason Merrill <jason@redhat.com>
+
+ PR java/10145
+ * class.c (check_field_decl): Don't set DECL_ALIGN.
+
+2003-03-30 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7647
+ * search.c (lookup_field_1): Add want_type parameter.
+ (lookup_field_r): Adjust call to lookup_field_1.
+
+2003-03-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/10245
+ * cvt.c (force_rvalue): New fn.
+ * call.c (build_conditional_expr): Use it.
+ * cp-tree.h: Declare it.
+
+2003-03-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10047
+ * decl2.c (finish_file): Don't warn about explicitly instantiated
+ inline decls.
+
+2003-03-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10158
+ * spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for
+ members.
+ * pt.c (instantiate_decl): Only reduce the template args for
+ friends that are not defined in class.
+
+2003-03-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9898, PR c++/383, DR 322
+ * pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look
+ through reference types on both PARM and ARG.
+
+ PR c++/10199
+ * call.c (build_method_call): Deal with LOOKUP_EXPR.
+ * semantics.c (finish_object_call_expr): Use build_method_call
+ when in a template decl.
+
+2003-03-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7086
+ * semantics.c (genrtl_named_return_value): Adjust calls to
+ put_var_into_stack.
+ * typeck.c (cxx_mark_addressable): Likewise.
+
+2003-03-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/6412
+ * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
+ friends.
+ * cp/pt.c (instantiate_class_template): Fix formatting.
+
+2003-03-19 Jason Merrill <jason@redhat.com>
+
+ PR c++/8316, c++/9315, c++/10136
+ * call.c (joust): Improve wording.
+
+2003-03-18 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/10031
+ * decl.c (duplicate_decls): Use the new type when prototyping
+ anticipated decls, even when the types match. This defines the
+ exception list for the built-in function.
+
+2003-03-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/10091
+ * typeck.c (build_class_member_access_expr): Compare
+ TYPE_MAIN_VARIANTs.
+
+ * decl.c (finish_function): Don't skip a block.
+
+ PR c++/9993
+ * decl.c (finish_function): Only allow the NRVO to use variables
+ declared at function scope.
+
+2003-03-17 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9629
+ * cp-tree.h (struct language_function): Add in_base_initializer.
+ (in_base_initializer): define it.
+ (expand_member_init): Remove INIT param.
+ * init.c (expand_member_init): Remove INIT param, return the member.
+ (emit_mem_initializers): Set in_base_initializer.
+ * class.c (build_base_path): Check in_base_initializer.
+ * parse.y (begin_member_init): New reduction.
+ (member_init): Use it.
+ * pt.c (tsubst_initializer_list): Set in_base_initializer.
+
+2003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/6440
+ * pt.c (maybe_process_partial_specialization): Handle
+ member class template when enclosing class template is
+ explicit specialized.
+ (most_general_template): Stop looking when DECL is already
+ specialized.
+
+2003-03-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/9420
+ * search.c (lookup_conversions): Call complete_type here.
+ * call.c (implicit_conversion): Not here.
+
+2003-03-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/9336
+ * decl2.c (lookup_arg_dependent): Handle error_mark_node.
+
+2003-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ * decl2.c (do_nonmember_using_decl): Correct handling of
+ simultaneous type/non-type bindings.
+
+2003-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ * call.c (initialize_reference): Remove bogus assertion.
+ * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
+
+2003-03-12 Andrew Lewycky <andrew@mxc.ca>
+
+ PR c++/7050
+ * expr.c (cxx_expand_expr): Return const0_rtx for throw
+ expressions.
+
+2003-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9474
+ * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
+ to merge old and new declarations.
+
+2003-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9924
+ * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
+
+2003-03-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/9820
+ * search.c (lookup_member): Fix handling of functions in a class
+ being defined.
+
+2003-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8700
+ * call.c (print_z_candidates): Avoid printing duplicates.
+
+2003-03-11 Jason Merrill <jason@redhat.com>
+
+ PR c++/8660
+ * decl2.c (check_classfn): A member template only matches a
+ member template.
+
+2003-03-10 Devang Patel <dpatel@apple.com>
+
+ PR c++/9394
+ * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG.
+
+2003-03-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/9798
+ * decl.c (push_using_directive): Push before recursing.
+
+ PR c++/9868
+ * call.c (resolve_scoped_fn_name): Handle the case of a function
+ pointer member.
+ * init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME.
+
+ * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
+ argument in the pointer-to-member case.
+
+2003-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9373
+ * cp-lang.c (cxx_get_alias_set): Use alias set zero for
+ pointers to member functions.
+
+ PR c++/8534
+ * decl.c (build_ptrmemfunc_type): Do not allow default arugments
+ in pointer-to-member-function types.
+
+2003-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9912
+ * cp-tree.h (is_ancestor): New function.
+ * decl2.c (is_namespace_ancestor): Rename to ...
+ (is_ancestor): ... this.
+ (namespace_ancestor): Use it.
+ (set_decl_namespace): Likewise.
+ (handle_class_head): Check for invalid class definitions.
+
+2003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ Compile-time improvement: 2/n.
+ * cp-tree.h (struct cxx_binding): New datatype;
+ (struct lang_identifier): Use it.
+ (LOCAL_BINDING_P): Adjust definition.
+ (INHERITED_VALUE_BINDING_P): Likewise.
+ (BINDING_SCOPE): Likewise.
+ (BINDING_HAS_LEVEL_P): Likewise.
+ (BINDING_VALUE): Likewise.
+ (BINDING_TYPE): Likewise.
+ (IDENTIFIER_VALUE): Likewise.
+ (struct tree_binding): Remove.
+ (TS_CP_BINDING): Likewise.
+ ((union lang_tree_node): Remove field "binding".
+ (cxx_binding_clear): New macro.
+ (binding_for_name): Adjust return type.
+ (qualified_lookup_using_namespace): Adjust prototype.
+ (lookup_using_namespace): Adjust prototype.
+ (cxx_scope_find_binding_for_name): Declare.
+ * cp-tree.def: Remove CPLUS_BINDING definition.
+ * parse.y (parse_scoped_id): Don't type-abuse of 'id'. Allocate
+ temporary cxx_binding on stack. Simplify.
+ * decl.c (push_binding): Adjust local variable type.
+ (add_binding): Likewise.
+ (push_class_binding): Likewise.
+ (pop_binding): Likewise.
+ (poplevel): Likewise.
+ (poplevel_class): Likewise.
+ (free_bindings): Adjust type.
+ (find_binding): Adjust return type, add a third parameter. Remove
+ non-useful assertion now that we use static typing.
+ (cxx_scope_find_binding_for_name): New function.
+ (binding_for_name): Use it. Adjust local variable type. Simplify.
+ (namespace_binding): Simplify.
+ (set_namespace_binding): Likewise.
+ (set_identifier_type_value_with_scope): Adjust local variable type.
+ (lookup_tag): Don't type-abuse of local variable 'old'.
+ (lookup_namespace_name): Likewise. Allocate binding on stack.
+ (select_decl): Adjust prototype.
+ (unqualified_namespace_lookup): Allocate binding on stack.
+ Don't type-abuse of local variable 'val'.
+ (lookup_name_real): Likewise.
+ (maybe_inject_for_scope_var): Adjust local variable type.
+ (cp_tree_node_structure): Remove CPLUS_BINDING case label.
+ (namespace_binding): Adjust logic, simplify.
+ (BINDING_LEVEL): Adjust definition.
+ (push_class_level_binding): Adjust local variable type.
+ (struct cxx_saved_binding): Adjust field 'binding' type.
+ * decl2.c (ambiguous_decl): Adjust prototype.
+ (lookup_using_namespace): Adjust local variable type.
+ (qualified_lookup_using_namespace): Catch type error and correct
+ ensueing logic error.
+ (do_nonmember_using_decl): Adjust local variable type. Allocate
+ temporary cxx_binding on stack.
+ (do_toplevel_using_decl): Adjust local variable type.
+ * ptree.c (cxx_print_cxx_binding): New function.
+ (cxx_print_identifier): Use it.
+ (cxx_print_xnode): Delete CPLUS_BINDING case label.
+
+2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9970
+ * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
+ functions.
+
+2003-03-07 Matt Austern <austern@apple.com>
+
+ * cp-tree.h (struct lang_type_class): add field for key method
+ (cp_global_trees): rename dynamic_classes to keyed_classes
+ (key_method): add definition
+ * class.c (finish_struct_1): compute class's key method, and add
+ the class to keyed_classes list if there is no key method.
+ * decl.c (finish_function): add class to keyed_classes list if we
+ see a definition of the class's key method.
+ * pt.c (instantiate_class_template): add template specialization
+ of a dynamic class to keyed_classes list.
+ * decl2.c (key_method): remove
+ (finish_file): iterate only through keyed_classes list when
+ deciding whether to emit vtables, remove class from its list after
+ we do the emission.
+
+2003-03-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9809
+ * call.c (add_function_candidate): Skip builtin fuctions that have
+ not yet been declared.
+
+2003-03-07 Mark Mitchell <mark@codesourcery.com>
+
+ * call.c (reference_binding): Remove REF_IS_VAR parameter.
+ (implicit_conversion): Adjust call to reference_binding.
+ (make_temporary_var_for_ref_to_type): Add TYPE parameter.
+ (initialize_reference): Adjust handling for references bound to
+ rvalues.
+ * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
+ prototype.
+ (real_non_cast_lvalue_p): New method.
+ * cvt.c (build_up_reference): Adjust use of
+ make_temporary_var_for_ref_to_temp.
+ * tree.c (real_non_cast_lvalue_p): New method.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ * call.c (merge_conversion_sequences): New function.
+ (build_conv): Set ICS_USER_FLAG for USER_CONVs.
+ (convert_class_to_reference): Correct handling of second
+ standard conversion sequence in a user-defined conversion
+ sequence.
+ (build_user_type_conversion_1): Use merge_conversion_sequences.
+ * cp-tree.def: Add comments for CONV nodes.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9965
+ * call.c (reference_binding): Add ref_is_var parameter.
+ (implicit_conversion): Adjust call to reference_binding.
+ (initialize_reference): Likewise.
+
+ PR c++/9400
+ * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
+ PARM_DECLs.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9791
+ * class.c (get_basefndecls): Use lookup_fnfields_1.
+
+2003-03-02 Matt Austern <austern@apple.com>
+
+ * decl.c (cp_binding_level): Add static_decls varray member.
+ (add_decl_to_level): Add static/inline namespace scope
+ declarations to static_decls array.
+ (wrapup_global_for_namespace): Pass static_decls only, instead of
+ all decls, to wrapup_global_declarations/check_global_declarations.
+ (push_namespace): Initialize static_decls for ordinary namespaces.
+ (cxx_init_decl_processing): Initialize static_decls for global
+ namespace.
+
+2003-03-05 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (end_of_class): Correct thinko.
+
+2003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * cp-tree.h (cxx_saved_binding): Declare.
+ (struct saved_scope): Adjust type of field 'old_binding'.
+ * decl.c (cxx_saved_binding_make): New macro.
+ (struct cxx_saved_binding): Define.
+ (store_bindings): Adjust prototype. Use cxx_saved_binding to save
+ C++ bindings.
+ (maybe_push_to_top_level): Adjust local variable type.
+ (pop_from_top_level): Likewise.
+
+2003-03-03 Jason Merrill <jason@redhat.com>
+
+ * decl.c (finish_enum): Do set the type in a template. Simplify.
+ * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
+
+2003-03-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9878
+ * call.c (convert_class_to_reference): Correct conversion
+ sequences.
+ (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
+ (implicit_conversion): Adjust call to reference_binding.
+ (add_candidate): Change type of candidates parameter.
+ (add_function_candidate): Likewise.
+ (add_conv_candidate): Likewise.
+ (build_builtin_candidate): Likewise.
+ (add_builtin_candidate): Likewise.
+ (add_builtin_candidates): Likewise.
+ (add_template_candidate_real): Likewise.
+ (add_template_candidate): Likewise.
+ (add_template_conv_candidate): Likewise.
+ (build_user_type_conversion_1): Adjust accordingly.
+ (build_object_call): Likewise.
+ (build_conditional_expr): Likewise.
+ (add_candidates): Likewise.
+ (build_new_op): Likewise.
+ (convert_like_real): Use USER_CONV_CAND. Use build_nop.
+ (build_new_method_call): Adjust calls to add_function_candidate.
+ (make_temporary_var_for_ref_to_temp): New function.
+ (initialize_reference): Add decl parameter.
+ * class.c (build_rtti_vtbl_entries): Use build_address and
+ build_nop.
+ * cp-tree.h (initialize_reference): Change prototype.
+ (make_temporary_var_for_ref_to_temp): New function.
+ (build_type_conversion): Change prototype.
+ (build_address): New function.
+ (build_nop): Likewise.
+ * cvt.c (cp_convert_to_pointer): Adjust call to
+ build_type_conversion. Avoid indicating redundant NOP_EXPRs.
+ Use build_nop.
+ (convert_to_pointer_force): Use build_nop.
+ (build_up_reference): Use make_temporary_var_for_ref_to_temp.
+ (convert_to_reference): Adjust call to build_type_conversion.
+ (ocp_convert): Likewise.
+ (build_type_conversion): Remove for_sure parameter.
+ * decl.c (grok_reference_init): Use initialize_reference.
+ * typeck.c (build_address): New function.
+ (build_nop): Likewise.
+ (build_unary_op): Use them.
+ (build_ptrmemfunc): Tidy slightly.
+ (convert_for_initialization): Adjust call to
+ initialize_reference.
+ * typeck2.c (store_init_value): Remove #if 0'd code.
+
+2003-03-02 Ashif Harji <asharji@uwaterloo.ca>
+
+ * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
+ invoke an external cpp during compilation.
+
+2003-02-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9892
+ * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
+ instantiating it.
+
+2003-02-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9879
+ * cp-tree.h (build_zero_init): Add parameter.
+ * decl.c (cp_finish_decl): Adjust call.
+ * init.c (build_zero_init): Add nelts parameter. Adjust recursive
+ calls.
+ (build_default_init): Add nelts parameter. Adjust calls to
+ build_zero_init.
+ (build_new_1): Adjust call to build_default_init.
+ * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
+
+2003-02-27 Devang Patel <dpatel@apple.com>
+
+ * decl.c (finish_enum): Merge two 'for' loops. Copy value node if required.
+ Postpone enum setting for template decls.
+ (build_enumerator): Delay copying value node until finish_enum (). Remove
+ #if 0'ed code.
+ * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
+ (tsubst_copy): Add check for enum type.
+
+
+2003-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9829
+ * decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument
+ is a NAMESPACE_DECL.
+
+2003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (add_binding): Time TV_NAME_LOOKUP.
+ (push_class_binding): Likewise.
+ (set_namespace_binding): Likewise.
+
+2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9602
+ * typeck2.c (abstract_virtuals_error): Don't check when we
+ are processing a template.
+
+2003-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/7982
+ * decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE.
+
+2003-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9749
+ * decl.c (grokdeclarator): Do not allow parameters with variably
+ modified types.
+
+ PR c++/9727
+ * decl2.c (push_scope): Don't pushclass for non-class types.
+ (pop_scope): Don't popclass either.
+
+ PR c++/8906
+ * decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P.
+ * decl2.c (handle_class_head): Check it.
+
+ PR c++/8724
+ * call.c (build_method_call): Make sure that the type destroyed in
+ an explicit destructor call is complete.
+
+2003-02-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9729
+ * mangle.c (mangle_conv_op_name_for_type): Issue an error message
+ when the G++ 3.2 ABI prevents correct compilation.
+
+2003-02-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9704
+ * class.c (layout_class_type): In the 3.2 ABI, take into account
+ trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
+
+2003-02-18 Matt Austern <austern@apple.com>
+
+ * cp/cp-lang.c: Change lang hooks so that final_write_globals does
+ nothing for C++.
+ * cp/decl.c (wrapup_globals_for_namespace): Remove special
+ handling of global namespace.
+
+2003-02-18 Jason Merrill <jason@redhat.com>
+
+ PR c++/9623
+ * decl.c (reshape_init): Don't mess with initializer labels.
+
+2003-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9459
+ * error.c (dump_type_prefix): Handle TYPEOF_TYPE.
+ (dump_type_suffix): Likewise.
+
+2003-02-17 Michael Elizabeth Chastain <mec@shout.net>
+
+ PR debug/9717
+ * class.c (build_base_field): Mark fields for base classes with
+ DECL_IGNORED_P.
+
+2003-02-13 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * decl.c: (define_label): Fix warning for return 0 instead of NULL.
+
+2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * Make-lang.in (cp/decl2.o): Add dependency on timevar.h
+ * decl2.c: Include "timevar.h".
+ (namespace_ancestor): Time name lookup.
+ (add_using_namespace): Likewise.
+ (lookup_using_namespace): Likewise.
+ (qualified_lookup_using_namespace): Likewise.
+ (decl_namespace): Likewise.
+ (lookup_arg_dependent): Likewise.
+ * lex.c (do_identifier): Likewise.
+ (do_scoped_id): Likewise.
+ * pt.c (lookup_template_class): Likewise.
+
+2003-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP.
+
+2003-02-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c: Include "timevar.h".
+ (poplevel): Time name lookup.
+ (find_binding): Likewise.
+ (push_namespace): Likewise.
+ (pop_nested_namespace): Likewise.
+ (store_bindings): Likewise.
+ (maybe_push_to_top_level): Likewise.
+ (pop_from_top_level): Likewise.
+ (push_local_name): Likewise.
+ (pushtag): Likewise.
+ (pushdecl): Likewise.
+ (pushdecl_with_scope): Likewise.
+ (pushdecl_namespace_level): Likewise.
+ (pushdecl_top_level): Likewise.
+ (pushdecl_class_level): Likewise.
+ (push_class_level_binding): Likewise.
+ (push_using_decl): Likewise.
+ (push_using_directive): Likewise.
+ (push_overloaded_decl): Likewise.
+ (lookup_label): Likewise.
+ (define_label): Likewise.
+ (lookup_tag): Likewise.
+ (lookup_tag_reverse): Likewise.
+ (lookup_namespace_name): Likewise.
+ (select_decl): Likewise.
+ (unqualified_namespace_lookup): Likewise.
+ (lookup_name_real): Likewise.
+ (lookup_name_current_level): Likewise.
+ (lookup_type_current_level): Likewise.
+ (maybe_inject_for_scope_var): Likewise.
+ (xref_tag): Likewise.
+
+ * Make-lang.in (cp/decl.o): Add dependency on timevar.h
+
+2003-02-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7129
+ * operators.def: Add <?= and >?=.
+
+2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8849
+ * error.c (dump_expr): Handle BASELINK.
+ * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
+
+2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9453
+ * friend.c (is_friend): Always accept when SUPPLICANT is still
+ a TEMPLATE_DECL.
+ * pt.c (push_access_scope_real): Call push_to_top_level for
+ function in namespace scope.
+ (push_access_scope): Remove ARGS argument, all caller adjusted.
+ (pop_access_scope): Call pop_from_top_level for function in
+ namespace scope.
+ (regenerate_decl_from_template): Use push_access_scope_real.
+
+2003-01-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9437
+ * pt.c (unify): Don't unify '*T' with 'U C::*'.
+
+2003-01-27 Jeffrey D. Oldham <oldham@codesourcery.com>
+
+ PR c++/47
+ * cp-tree.h (lookup_nested_field): Add declaration.
+ * decl.c (lookup_name_real): Call lookup_nested_field.
+ * search.c (lookup_nested_field): Add function.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (c++.install-common, c++.install-man)
+ (c++.uninstall): Prepend $(DESTDIR) to destination paths in
+ all (un)installation commands.
+ (c++.install-common): Rewrite $(LN) commands to support
+ DESTDIR with "ln" as well as with "ln -s".
+
+2003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * decl2.c (check_classfn): Fix uninitialized warning.
+
+2003-01-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9328
+ * error.c (dump_decl): For an OVERLOAD, just print the name of the
+ function; it doesn't make sense to try to print its type.
+ * semantics.c (finish_typeof): Issue errors about invalid uses.
+
+2003-01-22 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/9386, PR/8801
+ 2002-12-27 Mark Mitchell <mark@codesourcery.com>
+ * typeck.c (build_class_member_access_expr): Fix anonymous union
+ handling.
+
+2003-01-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/9167, c++/9358
+ * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
+
+2003-01-17 Jason Merrill <jason@redhat.com>
+
+ PR c++/9342
+ * call.c (build_conditional_expr): Always do lvalue-rvalue
+ conversion.
+
+2003-01-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/8564
+ * init.c (build_vec_init): Re-add maxindex parm.
+ (perform_member_init, build_aggr_init): Pass it.
+ (build_new_1): Pass it. Use an incomplete array type for full_type.
+ * typeck.c (build_modify_expr): Pass it.
+ * cp-tree.h: Adjust.
+
+2003-01-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/8748
+ * class.c (build_base_path): Take the address before calling save_expr.
+
+ * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
+ all the ambiguous conversions are bad.
+
+ * class.c (maybe_warn_about_overly_private_class): Don't stop
+ searching when we find a nonprivate method.
+
+2003-01-09 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
+
+2003-01-09 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
+
+2003-01-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9030
+ * decl.c (make_typename_type): Check access only when tf_error.
+ (make_unbound_class_template): Likewise.
+ * pt.c (saved_access_scope): New variable.
+ (push_access_scope_real): New function.
+ (push_access_scope): Likewise.
+ (pop_access_scope): Likewise.
+ (tsubst_default_argument): Use them.
+ (instantiate_template): Likewise.
+ (regenerate_decl_from_template): Likewise.
+ (instantiate_decl): Likewise.
+ (get_mostly_instantiated_function_type): Likewise.
+
+2003-01-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9165
+ * decl2.c (build_cleanup): Mark the object as used.
+
+2003-01-03 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/45, c++/3784
+ * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
+ the same too.
+
+2002-12-30 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9054
+ * class.c (layout_class_type): Set DECL_CONTEXT of type for base.
+ * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
+
+2002-12-26 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/4803
+ * decl2.c (mark_used): Defer inline functions.
+ (finish_file): Merge deferred_fns loops. Check all used
+ inline functions have a definition.
+ * method.c (make_thunk): Thunks are not inline.
+
+ PR c++/5116, c++/764
+ * call.c (build_new_op): Make sure template class operands are
+ instantiated.
+
+2002-12-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR C++/7964
+ * cp-tree.h (resolve_scoped_fn_name): Prototype.
+ * call.c (resolve_scoped_fn_name): New function. Deal with
+ more template expansion. Broken out of ...
+ * parse.y (parse_finish_call_expr): ... here. Call it.
+ * decl2.c (build_expr_from_tree, CALL_EXPR): Use
+ resolve_scoped_fn_name and build_call_from_tree.
+
+ PR c++/9053
+ * decl.c (duplicate_decls): Templates may be disambiguated by
+ return type.
+
+ PR c++/8702
+ * decl2.c (check_classfn): Use lookup_fnfield_1. List all
+ conversion operators on failure.
+
+2002-12-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/8572
+ * cp-tree.h (grokoptypename): Add SCOPE parameter.
+ * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
+ if in a template scope.
+ * parse.y (unoperator): Return the scope.
+ (operator_name): Adjust grokoptypename call.
+
+2002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
+ * decl.c (make_unbound_class_template): Adjust. Check for tf_error.
+ * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8099
+ * friend.c (make_friend_class): Allow partial specialization
+ when declaration is not a template friend.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/3663
+ * pt.c (lookup_template_class): Copy TREE_PRIVATE and
+ TREE_PROTECTED to created decl nodes.
+
+2002-12-18 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (build_base_field): Do not set DECL_PACKED on the
+ FIELD_DECL.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ * parse.y (bad_parm): Add missing argument to error function call.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8442
+ * decl2.c (handle_class_head): Verify if the looked up name is a
+ type or template.
+ * pt.c (convert_template_argument): Fix type or template template
+ parameter decision logic.
+
2002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR C++/8031
- * cvt.c (convert_to_pointer_force): Don't try comparing against
+ * cvt.c (convert_to_pointer_force): Don't try comparing against
erronous type.
2002-12-13 Geoffrey Keating <geoffk@apple.com>
@@ -17,10 +2087,10 @@
2002-12-10 Matt Austern <austern@apple.com>
* cp-tree.h: get rid of needs_virtual_reinit bit.
-
+
2002-12-09 Mark Mitchell <mark@codesourcery.com>
- * NEWS: Document removal of in-class initialization extension for
+ * NEWS: Document removal of in-class initialization extension for
static data members of non-arithmetic, non-enumeration type.
* decl.c (check_static_variable_definition): Do not allow that
extension.
@@ -40,7 +2110,7 @@
PR C++/8799
* error.c (dump_expr): Don't ever try to dump a non-existent
- expression.
+ expression.
2002-12-03 Jason Merrill <jason@redhat.com>
@@ -51,7 +2121,7 @@
PR c++/8461, c++/8625
* call.c (convert_for_arg_passing): Don't mess with error_mark_node.
(cp_convert_parm_for_inlining): Remove.
- * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
+ * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
Remove.
* cp-tree.h (ADDR_IS_INVISIREF): Remove.
* except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
@@ -73,7 +2143,7 @@
PR c++/8615
* error.c (dump_expr): Handle character constants with
TREE_OVERFLOW set.
-
+
2002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
DR 180
@@ -85,7 +2155,7 @@
PR c++/5919
* pt.c (unify): Use variably_modified_type_p to test validity of
template argument types.
-
+
PR c++/8727
* cp-tree.h (lang_type_class): Add typeinfo_var.
(CLASSTYPE_TYPEINFO_VAR): New macro.
@@ -111,7 +2181,7 @@
(check_initializer): Validate the type of the initialized
variable, even if the initializer is absent.
* typeck.c (cp_type_quals): Deal gracefully with erroneous types.
-
+
PR c++/8214
* typeck.c (convert_for_assignment): Do not use
decl_constant_value on the operand.
@@ -124,7 +2194,7 @@
* parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
anonymous structs.
-
+
2002-11-29 Mark Mitchell <mark@codesourcery.com>
* class.c (walk_subobject_offsets): Recur on binfos as well as on
@@ -133,7 +2203,7 @@
base class.
(layout_empty_base): Likewise.
(build_base_field): Likewise.
-
+
2002-11-27 Mark Mitchell <mark@codesourcery.com>
* class.c (build_base_field): Make sure we get the canonical base
@@ -158,7 +2228,7 @@
(build_base_field): Record offsets of empty bases in primary
virtual bases.
(layout_class_type): Record offsets of empty bases in fields.
-
+
* search.c (is_subobject_of_p_1): Fix thinko.
(lookup_field_queue_p): Likewise.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 42656e7933d..e6640554ea8 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -116,7 +116,7 @@ $(srcdir)/cp/parse.c: $(srcdir)/cp/parse.y
gtype-cp.h gt-cp-call.h gt-cp-decl.h gt-cp-decl2.h : s-gtype; @true
gt-cp-parse.h gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h : s-gtype; @true
-gt-cp-tree.h : s-gtype; @true
+gt-cp-tree.h gt-cp-mangle.h : s-gtype; @true
#
# Build hooks:
@@ -142,27 +142,32 @@ c++.install-normal:
c++.install-common: installdirs
-if [ -f cc1plus$(exeext) ] ; then \
if [ -f g++-cross$(exeext) ] ; then \
- rm -f $(bindir)/$(GXX_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) g++-cross$(exeext) $(bindir)/$(GXX_CROSS_NAME)$(exeext); \
- chmod a+x $(bindir)/$(GXX_CROSS_NAME)$(exeext); \
- rm -f $(bindir)/$(CXX_CROSS_NAME)$(exeext); \
- $(LN) $(bindir)/$(GXX_CROSS_NAME)$(exeext) $(bindir)/$(CXX_CROSS_NAME)$(exeext); \
- if [ -d $(gcc_tooldir)/bin/. ] ; then \
- rm -f $(gcc_tooldir)/bin/g++$(exeext); \
- $(INSTALL_PROGRAM) g++-cross$(exeext) $(gcc_tooldir)/bin/g++$(exeext); \
- rm -f $(gcc_tooldir)/bin/c++$(exeext); \
- $(LN) $(gcc_tooldir)/bin/g++$(exeext) $(gcc_tooldir)/bin/c++$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) g++-cross$(exeext) $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(CXX_CROSS_NAME)$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GXX_CROSS_NAME)$(exeext) $(CXX_CROSS_NAME)$(exeext) ); \
+ if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
+ rm -f $(DESTDIR)$(gcc_tooldir)/bin/g++$(exeext); \
+ $(INSTALL_PROGRAM) g++-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/g++$(exeext); \
+ rm -f $(DESTDIR)$(gcc_tooldir)/bin/c++$(exeext); \
+ ( cd $(DESTDIR)$(gcc_tooldir)/bin && \
+ $(LN) g++$(exeext) c++$(exeext) ); \
else true; fi; \
else \
- rm -f $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) g++$(exeext) $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
- chmod a+x $(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(CXX_INSTALL_NAME)$(exeext); \
- $(LN) $(bindir)/$(GXX_INSTALL_NAME)$(exeext) $(bindir)/$(CXX_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \
- $(LN) $(bindir)/$(GXX_INSTALL_NAME)$(exeext) $(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \
- $(LN) $(bindir)/$(CXX_INSTALL_NAME)$(exeext) $(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) g++$(exeext) $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GXX_INSTALL_NAME)$(exeext) $(CXX_INSTALL_NAME)$(exeext) ); \
+ rm -f $(DESTDIR)$(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(GXX_INSTALL_NAME)$(exeext) $(GXX_TARGET_INSTALL_NAME)$(exeext) ); \
+ rm -f $(DESTDIR)$(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(CXX_INSTALL_NAME)$(exeext) $(CXX_TARGET_INSTALL_NAME)$(exeext) ); \
fi ; \
fi
@@ -171,23 +176,23 @@ c++.install-info:
c++.install-man: installdirs $(srcdir)/cp/g++.1
-if [ -f cc1plus$(exeext) ] ; then \
if [ -f g++-cross$(exeext) ] ; then \
- rm -f $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext); \
else \
- rm -f $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/cp/g++.1 $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext); \
fi; \
else true; fi
c++.uninstall:
- -rm -rf $(bindir)/$(CXX_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(CXX_CROSS_NAME)$(exeext)
- -rm -rf $(bindir)/$(GXX_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(GXX_CROSS_NAME)$(exeext)
- -rm -rf $(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
- -rm -rf $(man1dir)/$(GXX_CROSS_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(CXX_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(GXX_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(GXX_CROSS_NAME)$(man1ext)
#
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
@@ -232,9 +237,10 @@ cp/cp-lang.o: cp/cp-lang.c $(CXX_TREE_H) toplev.h langhooks.h $(LANGHOOKS_DEF_H)
cp/decl.o: cp/decl.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h stack.h \
output.h $(EXPR_H) except.h toplev.h $(HASHTAB_H) $(GGC_H) $(RTL_H) \
cp/operators.def $(TM_P_H) tree-inline.h diagnostic.h c-pragma.h \
- debug.h gt-cp-decl.h gtype-cp.h
+ debug.h gt-cp-decl.h gtype-cp.h timevar.h input.h
cp/decl2.o: cp/decl2.c $(CXX_TREE_H) flags.h cp/lex.h cp/decl.h $(EXPR_H) \
- output.h except.h toplev.h $(GGC_H) $(RTL_H) c-common.h gt-cp-decl2.h
+ output.h except.h toplev.h $(GGC_H) $(RTL_H) c-common.h gt-cp-decl2.h \
+ timevar.h
cp/typeck2.o: cp/typeck2.c $(CXX_TREE_H) flags.h toplev.h output.h $(TM_P_H) \
diagnostic.h
cp/typeck.o: cp/typeck.c $(CXX_TREE_H) flags.h $(RTL_H) $(EXPR_H) toplev.h \
@@ -244,7 +250,7 @@ cp/call.o: cp/call.c $(CXX_TREE_H) flags.h toplev.h $(RTL_H) $(EXPR_H) \
$(GGC_H) diagnostic.h gt-cp-call.h
cp/friend.o: cp/friend.c $(CXX_TREE_H) flags.h $(RTL_H) toplev.h $(EXPR_H)
cp/init.o: cp/init.c $(CXX_TREE_H) flags.h $(RTL_H) $(EXPR_H) toplev.h \
- $(GGC_H) except.h
+ diagnostic.h $(GGC_H) except.h
cp/method.o: cp/method.c $(CXX_TREE_H) toplev.h $(GGC_H) $(RTL_H) $(EXPR_H) \
$(TM_P_H) $(TARGET_H)
cp/cvt.o: cp/cvt.c $(CXX_TREE_H) cp/decl.h flags.h toplev.h convert.h
@@ -269,7 +275,7 @@ cp/semantics.o: cp/semantics.c $(CXX_TREE_H) cp/lex.h except.h toplev.h \
cp/dump.o: cp/dump.c $(CXX_TREE_H) tree-dump.h
cp/optimize.o: cp/optimize.c $(CXX_TREE_H) rtl.h integrate.h insn-config.h \
input.h $(PARAMS_H) debug.h tree-inline.h
-cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h real.h
+cp/mangle.o: cp/mangle.c $(CXX_TREE_H) toplev.h real.h gt-cp-mangle.h $(TM_P_H)
cp/parse.o: cp/parse.c $(CXX_TREE_H) flags.h cp/lex.h except.h output.h \
cp/decl.h $(SYSTEM_H) toplev.h $(GGC_H) gt-cp-parse.h
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 072fbe64515..2cb233c091e 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -1,6 +1,6 @@
/* Functions related to invoking methods and overloaded functions.
- Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2003,
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com) and
modified by Brendan Kehoe (brendan@cygnus.com).
@@ -45,11 +45,13 @@ static int joust PARAMS ((struct z_candidate *, struct z_candidate *, int));
static int compare_ics PARAMS ((tree, tree));
static tree build_over_call PARAMS ((struct z_candidate *, tree, int));
static tree build_java_interface_fn_ref PARAMS ((tree, tree));
-#define convert_like(CONV, EXPR) \
- convert_like_real ((CONV), (EXPR), NULL_TREE, 0, 0)
-#define convert_like_with_context(CONV, EXPR, FN, ARGNO) \
- convert_like_real ((CONV), (EXPR), (FN), (ARGNO), 0)
-static tree convert_like_real PARAMS ((tree, tree, tree, int, int));
+#define convert_like(CONV, EXPR) \
+ convert_like_real ((CONV), (EXPR), NULL_TREE, 0, 0, \
+ /*issue_conversion_warnings=*/true)
+#define convert_like_with_context(CONV, EXPR, FN, ARGNO) \
+ convert_like_real ((CONV), (EXPR), (FN), (ARGNO), 0, \
+ /*issue_conversion_warnings=*/true)
+static tree convert_like_real (tree, tree, tree, int, int, bool);
static void op_error PARAMS ((enum tree_code, enum tree_code, tree, tree,
tree, const char *));
static tree build_object_call PARAMS ((tree, tree));
@@ -62,37 +64,37 @@ static struct z_candidate * splice_viable PARAMS ((struct z_candidate *));
static int any_viable PARAMS ((struct z_candidate *));
static int any_strictly_viable PARAMS ((struct z_candidate *));
static struct z_candidate * add_template_candidate
- PARAMS ((struct z_candidate *, tree, tree, tree, tree, tree,
+ PARAMS ((struct z_candidate **, tree, tree, tree, tree, tree,
tree, tree, int, unification_kind_t));
static struct z_candidate * add_template_candidate_real
- PARAMS ((struct z_candidate *, tree, tree, tree, tree, tree,
+ PARAMS ((struct z_candidate **, tree, tree, tree, tree, tree,
tree, tree, int, tree, unification_kind_t));
static struct z_candidate * add_template_conv_candidate
- PARAMS ((struct z_candidate *, tree, tree, tree, tree, tree, tree));
-static struct z_candidate * add_builtin_candidates
- PARAMS ((struct z_candidate *, enum tree_code, enum tree_code,
+ PARAMS ((struct z_candidate **, tree, tree, tree, tree, tree, tree));
+static void add_builtin_candidates
+ PARAMS ((struct z_candidate **, enum tree_code, enum tree_code,
tree, tree *, int));
-static struct z_candidate * add_builtin_candidate
- PARAMS ((struct z_candidate *, enum tree_code, enum tree_code,
+static void add_builtin_candidate
+ PARAMS ((struct z_candidate **, enum tree_code, enum tree_code,
tree, tree, tree, tree *, tree *, int));
static int is_complete PARAMS ((tree));
-static struct z_candidate * build_builtin_candidate
- PARAMS ((struct z_candidate *, tree, tree, tree, tree *, tree *,
+static void build_builtin_candidate
+ PARAMS ((struct z_candidate **, tree, tree, tree, tree *, tree *,
int));
static struct z_candidate * add_conv_candidate
- PARAMS ((struct z_candidate *, tree, tree, tree, tree, tree));
+ PARAMS ((struct z_candidate **, tree, tree, tree, tree, tree));
static struct z_candidate * add_function_candidate
- (struct z_candidate *, tree, tree, tree, tree, tree, int);
+ (struct z_candidate **, tree, tree, tree, tree, tree, int);
static tree implicit_conversion PARAMS ((tree, tree, tree, int));
static tree standard_conversion PARAMS ((tree, tree, tree));
-static tree reference_binding PARAMS ((tree, tree, tree, int));
+static tree reference_binding (tree, tree, tree, int);
static tree non_reference PARAMS ((tree));
static tree build_conv PARAMS ((enum tree_code, tree, tree));
static int is_subseq PARAMS ((tree, tree));
static tree maybe_handle_ref_bind PARAMS ((tree*));
static void maybe_handle_implicit_object PARAMS ((tree*));
static struct z_candidate *add_candidate
- (struct z_candidate *, tree, tree, tree, tree, int);
+ (struct z_candidate **, tree, tree, tree, tree, int);
static tree source_type PARAMS ((tree));
static void add_warning PARAMS ((struct z_candidate *, struct z_candidate *));
static int reference_related_p PARAMS ((tree, tree));
@@ -102,6 +104,7 @@ static tree direct_reference_binding PARAMS ((tree, tree));
static int promoted_arithmetic_type_p PARAMS ((tree));
static tree conditional_conversion PARAMS ((tree, tree));
static tree call_builtin_trap PARAMS ((void));
+static tree merge_conversion_sequences (tree, tree);
tree
build_vfield_ref (datum, type)
@@ -519,7 +522,12 @@ build_method_call (instance, name, parms, basetype_path, flags)
("destructor name `~%T' does not match type `%T' of expression",
TREE_OPERAND (name, 0), object_type);
- if (! TYPE_HAS_DESTRUCTOR (complete_type (object_type)))
+ /* The destructor type must be complete. */
+ object_type = complete_type_or_else (object_type, NULL_TREE);
+ if (!object_type || object_type == error_mark_node)
+ return error_mark_node;
+
+ if (! TYPE_HAS_DESTRUCTOR (object_type))
return cp_convert (void_type_node, instance);
instance = default_conversion (instance);
instance_ptr = build_unary_op (ADDR_EXPR, instance, 0);
@@ -545,6 +553,8 @@ build_method_call (instance, name, parms, basetype_path, flags)
}
if (TREE_CODE (name) == OVERLOAD)
name = DECL_NAME (get_first_fn (name));
+ else if (TREE_CODE (name) == LOOKUP_EXPR)
+ name = TREE_OPERAND (name, 0);
else if (DECL_P (name))
name = DECL_NAME (name);
if (has_template_args)
@@ -695,7 +705,7 @@ build_conv (code, type, from)
break;
}
ICS_STD_RANK (t) = rank;
- ICS_USER_FLAG (t) = ICS_USER_FLAG (from);
+ ICS_USER_FLAG (t) = (code == USER_CONV || ICS_USER_FLAG (from));
ICS_BAD_FLAG (t) = ICS_BAD_FLAG (from);
return t;
}
@@ -746,7 +756,7 @@ standard_conversion (to, from, expr)
if ((TYPE_PTRFN_P (to) || TYPE_PTRMEMFUNC_P (to))
&& expr && type_unknown_p (expr))
{
- expr = instantiate_type (to, expr, tf_none);
+ expr = instantiate_type (to, expr, tf_conv);
if (expr == error_mark_node)
return NULL_TREE;
from = TREE_TYPE (expr);
@@ -847,16 +857,25 @@ standard_conversion (to, from, expr)
}
}
else if (IS_AGGR_TYPE (TREE_TYPE (from))
- && IS_AGGR_TYPE (TREE_TYPE (to)))
+ && IS_AGGR_TYPE (TREE_TYPE (to))
+ /* [conv.ptr]
+
+ An rvalue of type "pointer to cv D," where D is a
+ class type, can be converted to an rvalue of type
+ "pointer to cv B," where B is a base class (clause
+ _class.derived_) of D. If B is an inaccessible
+ (clause _class.access_) or ambiguous
+ (_class.member.lookup_) base class of D, a program
+ that necessitates this conversion is ill-formed. */
+ /* Therefore, we use DERIVED_FROM_P, and not
+ ACESSIBLY_UNIQUELY_DERIVED_FROM_P, in this test. */
+ && DERIVED_FROM_P (TREE_TYPE (to), TREE_TYPE (from)))
{
- if (DERIVED_FROM_P (TREE_TYPE (to), TREE_TYPE (from)))
- {
- from =
- cp_build_qualified_type (TREE_TYPE (to),
- cp_type_quals (TREE_TYPE (from)));
- from = build_pointer_type (from);
- conv = build_conv (PTR_CONV, from, conv);
- }
+ from =
+ cp_build_qualified_type (TREE_TYPE (to),
+ cp_type_quals (TREE_TYPE (from)));
+ from = build_pointer_type (from);
+ conv = build_conv (PTR_CONV, from, conv);
}
if (same_type_p (from, to))
@@ -987,9 +1006,14 @@ convert_class_to_reference (t, s, expr)
tree conversions;
tree arglist;
tree conv;
+ tree reference_type;
struct z_candidate *candidates;
struct z_candidate *cand;
+ conversions = lookup_conversions (s);
+ if (!conversions)
+ return NULL_TREE;
+
/* [over.match.ref]
Assuming that "cv1 T" is the underlying type of the reference
@@ -1015,10 +1039,10 @@ convert_class_to_reference (t, s, expr)
arglist = build_int_2 (0, 0);
TREE_TYPE (arglist) = build_pointer_type (s);
arglist = build_tree_list (NULL_TREE, arglist);
-
- for (conversions = lookup_conversions (s);
- conversions;
- conversions = TREE_CHAIN (conversions))
+
+ reference_type = build_reference_type (t);
+
+ while (conversions)
{
tree fns = TREE_VALUE (conversions);
@@ -1026,44 +1050,62 @@ convert_class_to_reference (t, s, expr)
{
tree f = OVL_CURRENT (fns);
tree t2 = TREE_TYPE (TREE_TYPE (f));
- struct z_candidate *old_candidates = candidates;
+
+ cand = NULL;
/* If this is a template function, try to get an exact
match. */
if (TREE_CODE (f) == TEMPLATE_DECL)
{
- candidates
- = add_template_candidate (candidates,
- f, s,
- NULL_TREE,
- arglist,
- build_reference_type (t),
- TYPE_BINFO (s),
- TREE_PURPOSE (conversions),
- LOOKUP_NORMAL,
- DEDUCE_CONV);
+ cand = add_template_candidate (&candidates,
+ f, s,
+ NULL_TREE,
+ arglist,
+ reference_type,
+ TYPE_BINFO (s),
+ TREE_PURPOSE (conversions),
+ LOOKUP_NORMAL,
+ DEDUCE_CONV);
- if (candidates != old_candidates)
+ if (cand)
{
/* Now, see if the conversion function really returns
an lvalue of the appropriate type. From the
point of view of unification, simply returning an
rvalue of the right type is good enough. */
- f = candidates->fn;
+ f = cand->fn;
t2 = TREE_TYPE (TREE_TYPE (f));
if (TREE_CODE (t2) != REFERENCE_TYPE
|| !reference_compatible_p (t, TREE_TYPE (t2)))
- candidates = candidates->next;
+ {
+ candidates = candidates->next;
+ cand = NULL;
+ }
}
}
else if (TREE_CODE (t2) == REFERENCE_TYPE
&& reference_compatible_p (t, TREE_TYPE (t2)))
- candidates
- = add_function_candidate (candidates, f, s, arglist,
- TYPE_BINFO (s),
- TREE_PURPOSE (conversions),
- LOOKUP_NORMAL);
+ cand = add_function_candidate (&candidates, f, s, arglist,
+ TYPE_BINFO (s),
+ TREE_PURPOSE (conversions),
+ LOOKUP_NORMAL);
+
+ if (cand)
+ {
+ /* Build a standard conversion sequence indicating the
+ binding from the reference type returned by the
+ function to the desired REFERENCE_TYPE. */
+ cand->second_conv
+ = (direct_reference_binding
+ (reference_type,
+ build1 (IDENTITY_CONV,
+ TREE_TYPE (TREE_TYPE (TREE_TYPE (cand->fn))),
+ NULL_TREE)));
+ ICS_BAD_FLAG (cand->second_conv)
+ |= ICS_BAD_FLAG (TREE_VEC_ELT (cand->convs, 0));
+ }
}
+ conversions = TREE_CHAIN (conversions);
}
/* If none of the conversion functions worked out, let our caller
@@ -1076,16 +1118,21 @@ convert_class_to_reference (t, s, expr)
if (!cand)
return NULL_TREE;
- conv = build1 (IDENTITY_CONV, s, expr);
- conv = build_conv (USER_CONV, TREE_TYPE (TREE_TYPE (cand->fn)),
- conv);
+ /* Build a user-defined conversion sequence representing the
+ conversion. */
+ conv = build_conv (USER_CONV,
+ TREE_TYPE (TREE_TYPE (cand->fn)),
+ build1 (IDENTITY_CONV, TREE_TYPE (expr), expr));
TREE_OPERAND (conv, 1) = build_zc_wrapper (cand);
- ICS_USER_FLAG (conv) = 1;
+
+ /* Merge it with the standard conversion sequence from the
+ conversion function's return type to the desired type. */
+ cand->second_conv = merge_conversion_sequences (conv, cand->second_conv);
+
if (cand->viable == -1)
ICS_BAD_FLAG (conv) = 1;
- cand->second_conv = conv;
- return conv;
+ return cand->second_conv;
}
/* A reference of the indicated TYPE is being bound directly to the
@@ -1097,7 +1144,13 @@ direct_reference_binding (type, conv)
tree type;
tree conv;
{
- tree t = TREE_TYPE (type);
+ tree t;
+
+ my_friendly_assert (TREE_CODE (type) == REFERENCE_TYPE, 20030306);
+ my_friendly_assert (TREE_CODE (TREE_TYPE (conv)) != REFERENCE_TYPE,
+ 20030306);
+
+ t = TREE_TYPE (type);
/* [over.ics.rank]
@@ -1134,9 +1187,7 @@ direct_reference_binding (type, conv)
the conversion returned. */
static tree
-reference_binding (rto, rfrom, expr, flags)
- tree rto, rfrom, expr;
- int flags;
+reference_binding (tree rto, tree rfrom, tree expr, int flags)
{
tree conv = NULL_TREE;
tree to = TREE_TYPE (rto);
@@ -1214,7 +1265,7 @@ reference_binding (rto, rfrom, expr, flags)
in the second case. */
conv = convert_class_to_reference (to, from, expr);
if (conv)
- return direct_reference_binding (rto, conv);
+ return conv;
}
/* From this point on, we conceptually need temporaries, even if we
@@ -1248,11 +1299,13 @@ reference_binding (rto, rfrom, expr, flags)
-- The reference is bound to the object represented by the rvalue
or to a sub-object within that object.
- In this case, the implicit conversion sequence is supposed to be
- same as we would obtain by generating a temporary. Fortunately,
- if the types are reference compatible, then this is either an
- identity conversion or the derived-to-base conversion, just as
- for direct binding. */
+ -- ...
+
+ We use the first alternative. The implicit conversion sequence
+ is supposed to be same as we would obtain by generating a
+ temporary. Fortunately, if the types are reference compatible,
+ then this is either an identity conversion or the derived-to-base
+ conversion, just as for direct binding. */
if (CLASS_TYPE_P (from) && compatible_p)
{
conv = build1 (IDENTITY_CONV, from, expr);
@@ -1292,7 +1345,6 @@ implicit_conversion (to, from, expr, flags)
int flags;
{
tree conv;
- struct z_candidate *cand;
/* Resolve expressions like `A::p' that we thought might become
pointers-to-members. */
@@ -1306,11 +1358,6 @@ implicit_conversion (to, from, expr, flags)
|| expr == error_mark_node)
return NULL_TREE;
- /* Make sure both the FROM and TO types are complete so that
- user-defined conversions are available. */
- complete_type (from);
- complete_type (to);
-
if (TREE_CODE (to) == REFERENCE_TYPE)
conv = reference_binding (to, from, expr, flags);
else
@@ -1323,6 +1370,8 @@ implicit_conversion (to, from, expr, flags)
|| IS_AGGR_TYPE (to))
&& (flags & LOOKUP_NO_CONVERSION) == 0)
{
+ struct z_candidate *cand;
+
cand = build_user_type_conversion_1
(to, expr, LOOKUP_ONLYCONVERTING);
if (cand)
@@ -1340,7 +1389,7 @@ implicit_conversion (to, from, expr, flags)
functions. */
static struct z_candidate *
-add_candidate (struct z_candidate *candidates,
+add_candidate (struct z_candidate **candidates,
tree fn, tree convs, tree access_path, tree
conversion_path, int viable)
{
@@ -1352,7 +1401,8 @@ add_candidate (struct z_candidate *candidates,
cand->access_path = access_path;
cand->conversion_path = conversion_path;
cand->viable = viable;
- cand->next = candidates;
+ cand->next = *candidates;
+ *candidates = cand;
return cand;
}
@@ -1365,7 +1415,7 @@ add_candidate (struct z_candidate *candidates,
comes from for purposes of overload resolution. */
static struct z_candidate *
-add_function_candidate (struct z_candidate *candidates,
+add_function_candidate (struct z_candidate **candidates,
tree fn, tree ctype, tree arglist,
tree access_path, tree conversion_path,
int flags)
@@ -1376,6 +1426,11 @@ add_function_candidate (struct z_candidate *candidates,
tree parmnode, argnode;
int viable = 1;
+ /* Built-in functions that haven't been declared don't really
+ exist. */
+ if (DECL_ANTICIPATED (fn))
+ return NULL;
+
/* The `this', `in_chrg' and VTT arguments to constructors are not
considered in overload resolution. */
if (DECL_CONSTRUCTOR_P (fn))
@@ -1498,7 +1553,7 @@ add_function_candidate (struct z_candidate *candidates,
static struct z_candidate *
add_conv_candidate (candidates, fn, obj, arglist, access_path,
conversion_path)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
tree fn, obj, arglist;
tree access_path;
tree conversion_path;
@@ -1519,8 +1574,8 @@ add_conv_candidate (candidates, fn, obj, arglist, access_path,
flags = LOOKUP_NORMAL;
/* Don't bother looking up the same type twice. */
- if (candidates && candidates->fn == totype)
- return candidates;
+ if (*candidates && (*candidates)->fn == totype)
+ return NULL;
for (i = 0; i < len; ++i)
{
@@ -1565,10 +1620,10 @@ add_conv_candidate (candidates, fn, obj, arglist, access_path,
conversion_path, viable);
}
-static struct z_candidate *
+static void
build_builtin_candidate (candidates, fnname, type1, type2,
args, argtypes, flags)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
tree fnname, type1, type2, *args, *argtypes;
int flags;
@@ -1611,10 +1666,10 @@ build_builtin_candidate (candidates, fnname, type1, type2,
viable = 0;
}
- return add_candidate (candidates, fnname, convs,
- /*access_path=*/NULL_TREE,
- /*conversion_path=*/NULL_TREE,
- viable);
+ add_candidate (candidates, fnname, convs,
+ /*access_path=*/NULL_TREE,
+ /*conversion_path=*/NULL_TREE,
+ viable);
}
static int
@@ -1652,10 +1707,10 @@ promoted_arithmetic_type_p (type)
of which TYPE1 and TYPE2 are, we add both candidates
CODE (TYPE1, TYPE1) and CODE (TYPE2, TYPE2). */
-static struct z_candidate *
+static void
add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
args, argtypes, flags)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
enum tree_code code, code2;
tree fnname, type1, type2, *args, *argtypes;
int flags;
@@ -1695,7 +1750,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case POSTDECREMENT_EXPR:
case PREDECREMENT_EXPR:
if (TREE_CODE (type1) == BOOLEAN_TYPE)
- return candidates;
+ return;
case POSTINCREMENT_EXPR:
case PREINCREMENT_EXPR:
if (ARITHMETIC_TYPE_P (type1) || TYPE_PTROB_P (type1))
@@ -1703,7 +1758,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
type1 = build_reference_type (type1);
break;
}
- return candidates;
+ return;
/* 7 For every cv-qualified or cv-unqualified complete object type T, there
exist candidate operator functions of the form
@@ -1719,7 +1774,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
&& (TYPE_PTROB_P (type1)
|| TREE_CODE (TREE_TYPE (type1)) == FUNCTION_TYPE))
break;
- return candidates;
+ return;
/* 9 For every type T, there exist candidate operator functions of the form
T* operator+(T*);
@@ -1736,7 +1791,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case NEGATE_EXPR:
if (ARITHMETIC_TYPE_P (type1))
break;
- return candidates;
+ return;
/* 11For every promoted integral type T, there exist candidate operator
functions of the form
@@ -1745,7 +1800,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case BIT_NOT_EXPR:
if (INTEGRAL_TYPE_P (type1))
break;
- return candidates;
+ return;
/* 12For every quintuple C1, C2, T, CV1, CV2), where C2 is a class type, C1
is the same type as C2 or is a derived class of C2, T is a complete
@@ -1768,7 +1823,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
|| is_complete (TREE_TYPE (TREE_TYPE (type2)))))
break;
}
- return candidates;
+ return;
/* 13For every pair of promoted arithmetic types L and R, there exist can-
didate operator functions of the form
@@ -1824,7 +1879,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case TRUNC_DIV_EXPR:
if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
break;
- return candidates;
+ return;
case EQ_EXPR:
case NE_EXPR:
@@ -1866,7 +1921,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
type1 = type2;
break;
}
- return candidates;
+ return;
case PLUS_EXPR:
if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
@@ -1882,7 +1937,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
type2 = ptrdiff_type_node;
break;
}
- return candidates;
+ return;
/* 18For every pair of promoted integral types L and R, there exist candi-
date operator functions of the form
@@ -1903,7 +1958,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case RSHIFT_EXPR:
if (INTEGRAL_TYPE_P (type1) && INTEGRAL_TYPE_P (type2))
break;
- return candidates;
+ return;
/* 19For every triple L, VQ, R), where L is an arithmetic or enumeration
type, VQ is either volatile or empty, and R is a promoted arithmetic
@@ -1955,7 +2010,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case TRUNC_DIV_EXPR:
if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
break;
- return candidates;
+ return;
case TRUNC_MOD_EXPR:
case BIT_AND_EXPR:
@@ -1965,7 +2020,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
case RSHIFT_EXPR:
if (INTEGRAL_TYPE_P (type1) && INTEGRAL_TYPE_P (type2))
break;
- return candidates;
+ return;
case NOP_EXPR:
if (ARITHMETIC_TYPE_P (type1) && ARITHMETIC_TYPE_P (type2))
@@ -1980,7 +2035,7 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
type2 = type1;
break;
}
- return candidates;
+ return;
default:
abort ();
@@ -2015,16 +2070,13 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
|| !(TREE_CODE (type2) == POINTER_TYPE
|| TYPE_PTRMEM_P (type2)
|| TYPE_PTRMEMFUNC_P (type2)))
- return candidates;
+ return;
/* We don't check that the two types are the same; the logic
below will actually create two candidates; one in which both
parameter types are TYPE1, and one in which both parameter
types are TYPE2. */
- break;
-
- /* These arguments do not make for a valid overloaded operator. */
- return candidates;
+ break;
default:
abort ();
@@ -2041,13 +2093,14 @@ add_builtin_candidate (candidates, code, code2, fnname, type1, type2,
|| IS_AGGR_TYPE (type1)
|| TREE_CODE (type1) == ENUMERAL_TYPE))
{
- candidates = build_builtin_candidate
+ build_builtin_candidate
(candidates, fnname, type1, type1, args, argtypes, flags);
- return build_builtin_candidate
+ build_builtin_candidate
(candidates, fnname, type2, type2, args, argtypes, flags);
+ return;
}
- return build_builtin_candidate
+ build_builtin_candidate
(candidates, fnname, type1, type2, args, argtypes, flags);
}
@@ -2075,9 +2128,9 @@ type_decays_to (type)
other cases which the standard disallows. add_builtin_candidate will
filter out the invalid set. */
-static struct z_candidate *
+static void
add_builtin_candidates (candidates, code, code2, fnname, args, flags)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
enum tree_code code, code2;
tree fnname, *args;
int flags;
@@ -2120,20 +2173,22 @@ add_builtin_candidates (candidates, code, code2, fnname, args, flags)
bool operator||(bool, bool); */
case TRUTH_NOT_EXPR:
- return build_builtin_candidate
+ build_builtin_candidate
(candidates, fnname, boolean_type_node,
NULL_TREE, args, argtypes, flags);
+ return;
case TRUTH_ORIF_EXPR:
case TRUTH_ANDIF_EXPR:
- return build_builtin_candidate
+ build_builtin_candidate
(candidates, fnname, boolean_type_node,
boolean_type_node, args, argtypes, flags);
+ return;
case ADDR_EXPR:
case COMPOUND_EXPR:
case COMPONENT_REF:
- return candidates;
+ return;
case COND_EXPR:
case EQ_EXPR:
@@ -2160,7 +2215,7 @@ add_builtin_candidates (candidates, code, code2, fnname, args, flags)
tree convs;
if (i == 0 && code == MODIFY_EXPR && code2 == NOP_EXPR)
- return candidates;
+ return;
convs = lookup_conversions (argtypes[i]);
@@ -2175,7 +2230,7 @@ add_builtin_candidates (candidates, code, code2, fnname, args, flags)
}
else if (! convs)
- return candidates;
+ return;
for (; convs; convs = TREE_CHAIN (convs))
{
@@ -2227,16 +2282,16 @@ add_builtin_candidates (candidates, code, code2, fnname, args, flags)
{
if (types[1])
for (type = types[1]; type; type = TREE_CHAIN (type))
- candidates = add_builtin_candidate
+ add_builtin_candidate
(candidates, code, code2, fnname, TREE_VALUE (types[0]),
TREE_VALUE (type), args, argtypes, flags);
else
- candidates = add_builtin_candidate
+ add_builtin_candidate
(candidates, code, code2, fnname, TREE_VALUE (types[0]),
NULL_TREE, args, argtypes, flags);
}
- return candidates;
+ return;
}
@@ -2254,7 +2309,7 @@ static struct z_candidate*
add_template_candidate_real (candidates, tmpl, ctype, explicit_targs,
arglist, return_type, access_path,
conversion_path, flags, obj, strict)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
tree tmpl, ctype, explicit_targs, arglist, return_type;
tree access_path;
tree conversion_path;
@@ -2284,11 +2339,11 @@ add_template_candidate_real (candidates, tmpl, ctype, explicit_targs,
return_type, strict, -1);
if (i != 0)
- return candidates;
+ return NULL;
fn = instantiate_template (tmpl, targs);
if (fn == error_mark_node)
- return candidates;
+ return NULL;
/* In [class.copy]:
@@ -2317,7 +2372,7 @@ add_template_candidate_real (candidates, tmpl, ctype, explicit_targs,
tree arg_types = FUNCTION_FIRST_USER_PARMTYPE (fn);
if (arg_types && same_type_p (TYPE_MAIN_VARIANT (TREE_VALUE (arg_types)),
ctype))
- return candidates;
+ return NULL;
}
if (obj != NULL_TREE)
@@ -2358,7 +2413,7 @@ static struct z_candidate *
add_template_candidate (candidates, tmpl, ctype, explicit_targs,
arglist, return_type, access_path,
conversion_path, flags, strict)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
tree tmpl, ctype, explicit_targs, arglist, return_type;
tree access_path;
tree conversion_path;
@@ -2376,7 +2431,7 @@ add_template_candidate (candidates, tmpl, ctype, explicit_targs,
static struct z_candidate *
add_template_conv_candidate (candidates, tmpl, obj, arglist, return_type,
access_path, conversion_path)
- struct z_candidate *candidates;
+ struct z_candidate **candidates;
tree tmpl, obj, arglist, return_type;
tree access_path;
tree conversion_path;
@@ -2433,11 +2488,51 @@ build_this (obj)
return build_unary_op (ADDR_EXPR, obj, 0);
}
+/* Returns true iff functions are equivalent. Equivalent functions are
+ not '==' only if one is a function-local extern function or if
+ both are extern "C". */
+
+static inline int
+equal_functions (fn1, fn2)
+ tree fn1;
+ tree fn2;
+{
+ if (DECL_LOCAL_FUNCTION_P (fn1) || DECL_LOCAL_FUNCTION_P (fn2)
+ || DECL_EXTERN_C_FUNCTION_P (fn1))
+ return decls_match (fn1, fn2);
+ return fn1 == fn2;
+}
+
static void
-print_z_candidates (candidates)
- struct z_candidate *candidates;
+print_z_candidates (struct z_candidate *candidates)
{
- const char *str = "candidates are:";
+ const char *str;
+ struct z_candidate *cand1;
+ struct z_candidate **cand2;
+
+ /* There may be duplicates in the set of candidates. We put off
+ checking this condition as long as possible, since we have no way
+ to eliminate duplicates from a set of functions in less than n^2
+ time. Now we are about to emit an error message, so it is more
+ permissible to go slowly. */
+ for (cand1 = candidates; cand1; cand1 = cand1->next)
+ {
+ tree fn = cand1->fn;
+ /* Skip builtin candidates and conversion functions. */
+ if (TREE_CODE (fn) != FUNCTION_DECL)
+ continue;
+ cand2 = &cand1->next;
+ while (*cand2)
+ {
+ if (TREE_CODE ((*cand2)->fn) == FUNCTION_DECL
+ && equal_functions (fn, (*cand2)->fn))
+ *cand2 = (*cand2)->next;
+ else
+ cand2 = &(*cand2)->next;
+ }
+ }
+
+ str = "candidates are:";
for (; candidates; candidates = candidates->next)
{
if (TREE_CODE (candidates->fn) == IDENTIFIER_NODE)
@@ -2464,6 +2559,35 @@ print_z_candidates (candidates)
}
}
+/* USER_SEQ is a user-defined conversion sequence, beginning with a
+ USER_CONV. STD_SEQ is the standard conversion sequence applied to
+ the result of the conversion function to convert it to the final
+ desired type. Merge the the two sequences into a single sequence,
+ and return the merged sequence. */
+
+static tree
+merge_conversion_sequences (tree user_seq, tree std_seq)
+{
+ tree *t;
+
+ my_friendly_assert (TREE_CODE (user_seq) == USER_CONV,
+ 20030306);
+
+ /* Find the end of the second conversion sequence. */
+ t = &(std_seq);
+ while (TREE_CODE (*t) != IDENTITY_CONV)
+ t = &TREE_OPERAND (*t, 0);
+
+ /* Replace the identity conversion with the user conversion
+ sequence. */
+ *t = user_seq;
+
+ /* The entire sequence is a user-conversion sequence. */
+ ICS_USER_FLAG (std_seq) = 1;
+
+ return std_seq;
+}
+
/* Returns the best overload candidate to perform the requested
conversion. This function is used for three the overloading situations
described in [over.match.copy], [over.match.conv], and [over.match.ref].
@@ -2477,9 +2601,8 @@ build_user_type_conversion_1 (totype, expr, flags)
{
struct z_candidate *candidates, *cand;
tree fromtype = TREE_TYPE (expr);
- tree ctors = NULL_TREE, convs = NULL_TREE, *p;
+ tree ctors = NULL_TREE, convs = NULL_TREE;
tree args = NULL_TREE;
- tree templates = NULL_TREE;
/* We represent conversion within a hierarchy using RVALUE_CONV and
BASE_CONV, as specified by [over.best.ics]; these become plain
@@ -2521,24 +2644,20 @@ build_user_type_conversion_1 (totype, expr, flags)
continue;
if (TREE_CODE (ctor) == TEMPLATE_DECL)
- {
- templates = tree_cons (NULL_TREE, ctor, templates);
- candidates =
- add_template_candidate (candidates, ctor, totype,
- NULL_TREE, args, NULL_TREE,
- TYPE_BINFO (totype),
- TYPE_BINFO (totype),
- flags,
- DEDUCE_CALL);
- }
+ cand = add_template_candidate (&candidates, ctor, totype,
+ NULL_TREE, args, NULL_TREE,
+ TYPE_BINFO (totype),
+ TYPE_BINFO (totype),
+ flags,
+ DEDUCE_CALL);
else
- candidates = add_function_candidate (candidates, ctor, totype,
- args, TYPE_BINFO (totype),
- TYPE_BINFO (totype),
- flags);
+ cand = add_function_candidate (&candidates, ctor, totype,
+ args, TYPE_BINFO (totype),
+ TYPE_BINFO (totype),
+ flags);
- if (candidates)
- candidates->second_conv = build1 (IDENTITY_CONV, totype, NULL_TREE);
+ if (cand)
+ cand->second_conv = build1 (IDENTITY_CONV, totype, NULL_TREE);
}
if (convs)
@@ -2560,7 +2679,6 @@ build_user_type_conversion_1 (totype, expr, flags)
for (fns = TREE_VALUE (convs); fns; fns = OVL_NEXT (fns))
{
tree fn = OVL_CURRENT (fns);
- struct z_candidate *old_candidates = candidates;
/* [over.match.funcs] For conversion functions, the function
is considered to be a member of the class of the implicit
@@ -2570,34 +2688,31 @@ build_user_type_conversion_1 (totype, expr, flags)
So we pass fromtype as CTYPE to add_*_candidate. */
if (TREE_CODE (fn) == TEMPLATE_DECL)
- {
- templates = tree_cons (NULL_TREE, fn, templates);
- candidates =
- add_template_candidate (candidates, fn, fromtype, NULL_TREE,
- args, totype, TYPE_BINFO (fromtype),
- conversion_path,
- flags,
- DEDUCE_CONV);
- }
+ cand = add_template_candidate (&candidates, fn, fromtype, NULL_TREE,
+ args, totype,
+ TYPE_BINFO (fromtype),
+ conversion_path,
+ flags,
+ DEDUCE_CONV);
else
- candidates = add_function_candidate (candidates, fn, fromtype,
- args,
- TYPE_BINFO (fromtype),
- conversion_path,
- flags);
+ cand = add_function_candidate (&candidates, fn, fromtype,
+ args,
+ TYPE_BINFO (fromtype),
+ conversion_path,
+ flags);
- if (candidates != old_candidates)
+ if (cand)
{
tree ics = implicit_conversion
- (totype, TREE_TYPE (TREE_TYPE (candidates->fn)),
+ (totype, TREE_TYPE (TREE_TYPE (cand->fn)),
0, convflags);
- candidates->second_conv = ics;
+ cand->second_conv = ics;
if (ics == NULL_TREE)
- candidates->viable = 0;
- else if (candidates->viable == 1 && ICS_BAD_FLAG (ics))
- candidates->viable = -1;
+ cand->viable = 0;
+ else if (cand->viable == 1 && ICS_BAD_FLAG (ics))
+ cand->viable = -1;
}
}
}
@@ -2620,24 +2735,29 @@ build_user_type_conversion_1 (totype, expr, flags)
cand = candidates; /* any one will do */
cand->second_conv = build1 (AMBIG_CONV, totype, expr);
ICS_USER_FLAG (cand->second_conv) = 1;
- /* Don't set ICS_BAD_FLAG; an ambiguous conversion is no worse than
- another user-defined conversion. */
+ if (!any_strictly_viable (candidates))
+ ICS_BAD_FLAG (cand->second_conv) = 1;
+ /* If there are viable candidates, don't set ICS_BAD_FLAG; an
+ ambiguous conversion is no worse than another user-defined
+ conversion. */
return cand;
}
- for (p = &(cand->second_conv); TREE_CODE (*p) != IDENTITY_CONV; )
- p = &(TREE_OPERAND (*p, 0));
-
- *p = build
+ /* Build the user conversion sequence. */
+ convs = build_conv
(USER_CONV,
(DECL_CONSTRUCTOR_P (cand->fn)
? totype : non_reference (TREE_TYPE (TREE_TYPE (cand->fn)))),
- expr, build_zc_wrapper (cand));
-
- ICS_USER_FLAG (cand->second_conv) = ICS_USER_FLAG (*p) = 1;
+ build1 (IDENTITY_CONV, TREE_TYPE (expr), expr));
+ TREE_OPERAND (convs, 1) = build_zc_wrapper (cand);
+
+ /* Combine it with the second conversion sequence. */
+ cand->second_conv = merge_conversion_sequences (convs,
+ cand->second_conv);
+
if (cand->viable == -1)
- ICS_BAD_FLAG (cand->second_conv) = ICS_BAD_FLAG (*p) = 1;
+ ICS_BAD_FLAG (cand->second_conv) = 1;
return cand;
}
@@ -2659,6 +2779,78 @@ build_user_type_conversion (totype, expr, flags)
return NULL_TREE;
}
+/* Find the possibly overloaded set of functions corresponding to a
+ call of the form SCOPE::NAME (...). NAME might be a
+ TEMPLATE_ID_EXPR, OVERLOAD, _DECL, IDENTIFIER_NODE or LOOKUP_EXPR. */
+
+tree
+resolve_scoped_fn_name (tree scope, tree name)
+{
+ tree fn;
+ tree template_args = NULL_TREE;
+ bool is_template_id = TREE_CODE (name) == TEMPLATE_ID_EXPR;
+
+ if (is_template_id)
+ {
+ template_args = TREE_OPERAND (name, 1);
+ name = TREE_OPERAND (name, 0);
+ }
+ if (TREE_CODE (name) == OVERLOAD)
+ name = DECL_NAME (get_first_fn (name));
+ else if (TREE_CODE (name) == LOOKUP_EXPR)
+ name = TREE_OPERAND (name, 0);
+
+ if (TREE_CODE (scope) == NAMESPACE_DECL)
+ fn = lookup_namespace_name (scope, name);
+ else if (!CLASS_TYPE_P (scope))
+ {
+ error ("`%T' is not a class type", scope);
+ return error_mark_node;
+ }
+ else
+ {
+ if (!TYPE_BEING_DEFINED (scope)
+ && !COMPLETE_TYPE_P (complete_type (scope)))
+ {
+ error ("incomplete type '%T' cannot be used to name a scope",
+ scope);
+ return error_mark_node;
+ }
+
+ if (BASELINK_P (name))
+ fn = name;
+ else
+ fn = lookup_member (scope, name, /*protect=*/1, /*prefer_type=*/0);
+ if (fn && current_class_type)
+ fn = (adjust_result_of_qualified_name_lookup
+ (fn, scope, current_class_type));
+
+ /* It might be the name of a function pointer member. */
+ if (fn && TREE_CODE (fn) == FIELD_DECL)
+ fn = resolve_offset_ref (build_offset_ref (scope, fn));
+ }
+
+ if (!fn)
+ {
+ error ("'%D' has no member named '%E'", scope, name);
+ return error_mark_node;
+ }
+ if (is_template_id)
+ {
+ tree fns = fn;
+
+ if (BASELINK_P (fn))
+ fns = BASELINK_FUNCTIONS (fns);
+ fns = build_nt (TEMPLATE_ID_EXPR, fns, template_args);
+ if (BASELINK_P (fn))
+ BASELINK_FUNCTIONS (fn) = fns;
+ else
+ fn = fns;
+ }
+
+ return fn;
+}
+
/* Do any initial processing on the arguments to a function call. */
static tree
@@ -2716,7 +2908,6 @@ build_new_function_call (fn, args)
|| TREE_CODE (fn) == TEMPLATE_DECL)
{
tree t1;
- tree templates = NULL_TREE;
args = resolve_args (args);
@@ -2728,17 +2919,14 @@ build_new_function_call (fn, args)
tree t = OVL_CURRENT (t1);
if (TREE_CODE (t) == TEMPLATE_DECL)
- {
- templates = tree_cons (NULL_TREE, t, templates);
- candidates = add_template_candidate
- (candidates, t, NULL_TREE, explicit_targs, args,
- NULL_TREE,
- /*access_path=*/NULL_TREE, /*conversion_path=*/NULL_TREE,
- LOOKUP_NORMAL, DEDUCE_CALL);
- }
+ add_template_candidate
+ (&candidates, t, NULL_TREE, explicit_targs, args,
+ NULL_TREE,
+ /*access_path=*/NULL_TREE, /*conversion_path=*/NULL_TREE,
+ LOOKUP_NORMAL, DEDUCE_CALL);
else if (! template_only)
- candidates = add_function_candidate
- (candidates, t, NULL_TREE, args, /*access_path=*/NULL_TREE,
+ add_function_candidate
+ (&candidates, t, NULL_TREE, args, /*access_path=*/NULL_TREE,
/*conversion_path=*/NULL_TREE, LOOKUP_NORMAL);
}
@@ -2806,17 +2994,14 @@ build_object_call (obj, args)
{
tree fn = OVL_CURRENT (fns);
if (TREE_CODE (fn) == TEMPLATE_DECL)
- {
- candidates
- = add_template_candidate (candidates, fn, base, NULL_TREE,
- mem_args, NULL_TREE,
- TYPE_BINFO (type),
- TYPE_BINFO (type),
- LOOKUP_NORMAL, DEDUCE_CALL);
- }
+ add_template_candidate (&candidates, fn, base, NULL_TREE,
+ mem_args, NULL_TREE,
+ TYPE_BINFO (type),
+ TYPE_BINFO (type),
+ LOOKUP_NORMAL, DEDUCE_CALL);
else
- candidates = add_function_candidate
- (candidates, fn, base, mem_args, TYPE_BINFO (type),
+ add_function_candidate
+ (&candidates, fn, base, mem_args, TYPE_BINFO (type),
TYPE_BINFO (type), LOOKUP_NORMAL);
}
}
@@ -2839,16 +3024,14 @@ build_object_call (obj, args)
{
tree fn = OVL_CURRENT (fns);
if (TREE_CODE (fn) == TEMPLATE_DECL)
- {
- candidates = (add_template_conv_candidate
- (candidates, fn, obj, args, totype,
- /*access_path=*/NULL_TREE,
- /*conversion_path=*/NULL_TREE));
- }
+ add_template_conv_candidate
+ (&candidates, fn, obj, args, totype,
+ /*access_path=*/NULL_TREE,
+ /*conversion_path=*/NULL_TREE);
else
- candidates = add_conv_candidate (candidates, fn, obj, args,
- /*conversion_path=*/NULL_TREE,
- /*access_path=*/NULL_TREE);
+ add_conv_candidate (&candidates, fn, obj, args,
+ /*conversion_path=*/NULL_TREE,
+ /*access_path=*/NULL_TREE);
}
}
@@ -2899,23 +3082,27 @@ op_error (code, code2, arg1, arg2, arg3, problem)
switch (code)
{
case COND_EXPR:
- error ("%s for `%T ? %T : %T' operator", problem,
- error_type (arg1), error_type (arg2), error_type (arg3));
+ error ("%s for ternary 'operator?:' in '%E ? %E : %E'",
+ problem, arg1, arg2, arg3);
break;
+
case POSTINCREMENT_EXPR:
case POSTDECREMENT_EXPR:
- error ("%s for `%T %s' operator", problem, error_type (arg1), opname);
+ error ("%s for 'operator%s' in '%E%s'", problem, opname, arg1, opname);
break;
+
case ARRAY_REF:
- error ("%s for `%T [%T]' operator", problem,
- error_type (arg1), error_type (arg2));
+ error ("%s for 'operator[]' in '%E[%E]'", problem, arg1, arg2);
break;
+
default:
if (arg2)
- error ("%s for `%T %s %T' operator", problem,
- error_type (arg1), opname, error_type (arg2));
+ error ("%s for 'operator%s' in '%E %s %E'",
+ problem, opname, arg1, opname, arg2);
else
- error ("%s for `%s %T' operator", problem, opname, error_type (arg1));
+ error ("%s for 'operator%s' in '%s%E'",
+ problem, opname, opname, arg1);
+ break;
}
}
@@ -2930,6 +3117,7 @@ conditional_conversion (e1, e2)
tree t1 = non_reference (TREE_TYPE (e1));
tree t2 = non_reference (TREE_TYPE (e2));
tree conv;
+ bool good_base;
/* [expr.cond]
@@ -2958,10 +3146,9 @@ conditional_conversion (e1, e2)
changed to an rvalue of type T2 that still refers to the original
source class object (or the appropriate subobject thereof). */
if (CLASS_TYPE_P (t1) && CLASS_TYPE_P (t2)
- && same_or_base_type_p (TYPE_MAIN_VARIANT (t2),
- TYPE_MAIN_VARIANT (t1)))
+ && ((good_base = DERIVED_FROM_P (t2, t1)) || DERIVED_FROM_P (t1, t2)))
{
- if (at_least_as_qualified_p (t2, t1))
+ if (good_base && at_least_as_qualified_p (t2, t1))
{
conv = build1 (IDENTITY_CONV, t1, e1);
if (!same_type_p (TYPE_MAIN_VARIANT (t1),
@@ -2972,13 +3159,13 @@ conditional_conversion (e1, e2)
else
return NULL_TREE;
}
+ else
+ /* [expr.cond]
- /* [expr.cond]
-
- E1 can be converted to match E2 if E1 can be implicitly converted
- to the type that expression E2 would have if E2 were converted to
- an rvalue (or the type it has, if E2 is an rvalue). */
- return implicit_conversion (t2, t1, e1, LOOKUP_NORMAL);
+ Otherwise: E1 can be converted to match E2 if E1 can be implicitly
+ converted to the type that expression E2 would have if E2 were
+ converted to an rvalue (or the type it has, if E2 is an rvalue). */
+ return implicit_conversion (t2, t1, e1, LOOKUP_NORMAL);
}
/* Implement [expr.cond]. ARG1, ARG2, and ARG3 are the three
@@ -3055,11 +3242,27 @@ build_conditional_expr (arg1, arg2, arg3)
type of the other and is an rvalue.
--Both the second and the third operands have type void; the
- result is of type void and is an rvalue. */
- if ((TREE_CODE (arg2) == THROW_EXPR)
- ^ (TREE_CODE (arg3) == THROW_EXPR))
- result_type = ((TREE_CODE (arg2) == THROW_EXPR)
- ? arg3_type : arg2_type);
+ result is of type void and is an rvalue.
+
+ We must avoid calling force_rvalue for expressions of type
+ "void" because it will complain that their value is being
+ used. */
+ if (TREE_CODE (arg2) == THROW_EXPR
+ && TREE_CODE (arg3) != THROW_EXPR)
+ {
+ if (!VOID_TYPE_P (arg3_type))
+ arg3 = force_rvalue (arg3);
+ arg3_type = TREE_TYPE (arg3);
+ result_type = arg3_type;
+ }
+ else if (TREE_CODE (arg2) != THROW_EXPR
+ && TREE_CODE (arg3) == THROW_EXPR)
+ {
+ if (!VOID_TYPE_P (arg2_type))
+ arg2 = force_rvalue (arg2);
+ arg2_type = TREE_TYPE (arg2);
+ result_type = arg2_type;
+ }
else if (VOID_TYPE_P (arg2_type) && VOID_TYPE_P (arg3_type))
result_type = void_type_node;
else
@@ -3156,12 +3359,12 @@ build_conditional_expr (arg1, arg2, arg3)
args[0] = arg2;
args[1] = arg3;
args[2] = arg1;
- candidates = add_builtin_candidates (candidates,
- COND_EXPR,
- NOP_EXPR,
- ansi_opname (COND_EXPR),
- args,
- LOOKUP_NORMAL);
+ add_builtin_candidates (&candidates,
+ COND_EXPR,
+ NOP_EXPR,
+ ansi_opname (COND_EXPR),
+ args,
+ LOOKUP_NORMAL);
/* [expr.cond]
@@ -3209,18 +3412,10 @@ build_conditional_expr (arg1, arg2, arg3)
We use ocp_convert rather than build_user_type_conversion because the
latter returns NULL_TREE on failure, while the former gives an error. */
- if (IS_AGGR_TYPE (TREE_TYPE (arg2)) && real_lvalue_p (arg2))
- arg2 = ocp_convert (TREE_TYPE (arg2), arg2,
- CONV_IMPLICIT|CONV_FORCE_TEMP, LOOKUP_NORMAL);
- else
- arg2 = decay_conversion (arg2);
+ arg2 = force_rvalue (arg2);
arg2_type = TREE_TYPE (arg2);
- if (IS_AGGR_TYPE (TREE_TYPE (arg3)) && real_lvalue_p (arg3))
- arg3 = ocp_convert (TREE_TYPE (arg3), arg3,
- CONV_IMPLICIT|CONV_FORCE_TEMP, LOOKUP_NORMAL);
- else
- arg3 = decay_conversion (arg3);
+ arg3 = force_rvalue (arg3);
arg3_type = TREE_TYPE (arg3);
if (arg2 == error_mark_node || arg3 == error_mark_node)
@@ -3326,7 +3521,6 @@ build_new_op (code, flags, arg1, arg2, arg3)
struct z_candidate *candidates = 0, *cand;
tree fns, mem_arglist = NULL_TREE, arglist, fnname;
enum tree_code code2 = NOP_EXPR;
- tree templates = NULL_TREE;
tree conv;
bool viable_candidates;
@@ -3355,6 +3549,10 @@ build_new_op (code, flags, arg1, arg2, arg3)
if (TREE_CODE (arg1) == OFFSET_REF)
arg1 = resolve_offset_ref (arg1);
arg1 = convert_from_reference (arg1);
+ if (CLASS_TYPE_P (TREE_TYPE (arg1))
+ && CLASSTYPE_TEMPLATE_INSTANTIATION (TREE_TYPE (arg1)))
+ /* Make sure the template type is instantiated now. */
+ instantiate_class_template (TYPE_MAIN_VARIANT (TREE_TYPE (arg1)));
switch (code)
{
@@ -3377,12 +3575,18 @@ build_new_op (code, flags, arg1, arg2, arg3)
if (TREE_CODE (arg2) == OFFSET_REF)
arg2 = resolve_offset_ref (arg2);
arg2 = convert_from_reference (arg2);
+ if (CLASS_TYPE_P (TREE_TYPE (arg2))
+ && CLASSTYPE_TEMPLATE_INSTANTIATION (TREE_TYPE (arg2)))
+ instantiate_class_template (TYPE_MAIN_VARIANT (TREE_TYPE (arg2)));
}
if (arg3)
{
if (TREE_CODE (arg3) == OFFSET_REF)
arg3 = resolve_offset_ref (arg3);
arg3 = convert_from_reference (arg3);
+ if (CLASS_TYPE_P (TREE_TYPE (arg3))
+ && CLASSTYPE_TEMPLATE_INSTANTIATION (TREE_TYPE (arg3)))
+ instantiate_class_template (TYPE_MAIN_VARIANT (TREE_TYPE (arg3)));
}
if (code == COND_EXPR)
@@ -3416,21 +3620,17 @@ build_new_op (code, flags, arg1, arg2, arg3)
{
tree fn = OVL_CURRENT (fns);
if (TREE_CODE (fn) == TEMPLATE_DECL)
- {
- templates = tree_cons (NULL_TREE, fn, templates);
- candidates
- = add_template_candidate (candidates, fn, NULL_TREE, NULL_TREE,
- arglist, TREE_TYPE (fnname),
- /*access_path=*/NULL_TREE,
- /*conversion_path=*/NULL_TREE,
- flags, DEDUCE_CALL);
- }
+ add_template_candidate (&candidates, fn, NULL_TREE, NULL_TREE,
+ arglist, TREE_TYPE (fnname),
+ /*access_path=*/NULL_TREE,
+ /*conversion_path=*/NULL_TREE,
+ flags, DEDUCE_CALL);
else
- candidates = add_function_candidate (candidates, fn, NULL_TREE,
- arglist,
- /*access_path=*/NULL_TREE,
- /*conversion_path=*/NULL_TREE,
- flags);
+ add_function_candidate (&candidates, fn, NULL_TREE,
+ arglist,
+ /*access_path=*/NULL_TREE,
+ /*conversion_path=*/NULL_TREE,
+ flags);
}
if (IS_AGGR_TYPE (TREE_TYPE (arg1)))
@@ -3459,20 +3659,16 @@ build_new_op (code, flags, arg1, arg2, arg3)
this_arglist = arglist;
if (TREE_CODE (fn) == TEMPLATE_DECL)
- {
- /* A member template. */
- templates = tree_cons (NULL_TREE, fn, templates);
- candidates
- = add_template_candidate (candidates, fn,
- BINFO_TYPE (conversion_path),
- NULL_TREE,
- this_arglist, TREE_TYPE (fnname),
- access_path, conversion_path,
- flags, DEDUCE_CALL);
- }
+ /* A member template. */
+ add_template_candidate (&candidates, fn,
+ BINFO_TYPE (conversion_path),
+ NULL_TREE,
+ this_arglist, TREE_TYPE (fnname),
+ access_path, conversion_path,
+ flags, DEDUCE_CALL);
else
- candidates = add_function_candidate
- (candidates, fn, BINFO_TYPE (conversion_path), this_arglist,
+ add_function_candidate
+ (&candidates, fn, BINFO_TYPE (conversion_path), this_arglist,
access_path, conversion_path, flags);
}
}
@@ -3497,8 +3693,7 @@ build_new_op (code, flags, arg1, arg2, arg3)
args[2] = NULL_TREE;
}
- candidates = add_builtin_candidates
- (candidates, code, code2, fnname, args, flags);
+ add_builtin_candidates (&candidates, code, code2, fnname, args, flags);
}
switch (code)
@@ -3567,28 +3762,11 @@ build_new_op (code, flags, arg1, arg2, arg3)
}
if (TREE_CODE (cand->fn) == FUNCTION_DECL)
- {
- extern int warn_synth;
- if (warn_synth
- && fnname == ansi_assopname (NOP_EXPR)
- && DECL_ARTIFICIAL (cand->fn)
- && candidates->next
- && ! candidates->next->next)
- {
- warning ("using synthesized `%#D' for copy assignment",
- cand->fn);
- cp_warning_at (" where cfront would use `%#D'",
- cand == candidates
- ? candidates->next->fn
- : candidates->fn);
- }
-
- return build_over_call
- (cand,
- TREE_CODE (TREE_TYPE (cand->fn)) == METHOD_TYPE
- ? mem_arglist : arglist,
- LOOKUP_NORMAL);
- }
+ return build_over_call
+ (cand,
+ TREE_CODE (TREE_TYPE (cand->fn)) == METHOD_TYPE
+ ? mem_arglist : arglist,
+ LOOKUP_NORMAL);
/* Check for comparison of different enum types. */
switch (code)
@@ -3874,18 +4052,17 @@ enforce_access (basetype_path, decl)
return 1;
}
-/* Perform the conversions in CONVS on the expression EXPR.
- FN and ARGNUM are used for diagnostics. ARGNUM is zero based, -1
+/* Perform the conversions in CONVS on the expression EXPR. FN and
+ ARGNUM are used for diagnostics. ARGNUM is zero based, -1
indicates the `this' argument of a method. INNER is nonzero when
being called to continue a conversion chain. It is negative when a
- reference binding will be applied, positive otherwise. */
+ reference binding will be applied, positive otherwise. If
+ ISSUE_CONVERSION_WARNINGS is true, warnings about suspicious
+ conversions will be emitted if appropriate. */
static tree
-convert_like_real (convs, expr, fn, argnum, inner)
- tree convs, expr;
- tree fn;
- int argnum;
- int inner;
+convert_like_real (tree convs, tree expr, tree fn, int argnum, int inner,
+ bool issue_conversion_warnings)
{
int savew, savee;
@@ -3901,11 +4078,13 @@ convert_like_real (convs, expr, fn, argnum, inner)
{
if (TREE_CODE (t) == USER_CONV || !ICS_BAD_FLAG (t))
{
- expr = convert_like_real (t, expr, fn, argnum, 1);
+ expr = convert_like_real (t, expr, fn, argnum, 1,
+ /*issue_conversion_warnings=*/false);
break;
}
else if (TREE_CODE (t) == AMBIG_CONV)
- return convert_like_real (t, expr, fn, argnum, 1);
+ return convert_like_real (t, expr, fn, argnum, 1,
+ /*issue_conversion_warnings=*/false);
else if (TREE_CODE (t) == IDENTITY_CONV)
break;
}
@@ -3915,15 +4094,14 @@ convert_like_real (convs, expr, fn, argnum, inner)
return cp_convert (totype, expr);
}
- if (!inner)
+ if (issue_conversion_warnings)
expr = dubious_conversion_warnings
- (totype, expr, "argument", fn, argnum);
+ (totype, expr, "converting", fn, argnum);
switch (TREE_CODE (convs))
{
case USER_CONV:
{
- struct z_candidate *cand
- = WRAPPER_ZC (TREE_OPERAND (convs, 1));
+ struct z_candidate *cand = USER_CONV_CAND (convs);
tree convfn = cand->fn;
tree args;
@@ -4008,7 +4186,8 @@ convert_like_real (convs, expr, fn, argnum, inner)
};
expr = convert_like_real (TREE_OPERAND (convs, 0), expr, fn, argnum,
- TREE_CODE (convs) == REF_BIND ? -1 : 1);
+ TREE_CODE (convs) == REF_BIND ? -1 : 1,
+ /*issue_conversion_warnings=*/false);
if (expr == error_mark_node)
return error_mark_node;
@@ -4079,9 +4258,7 @@ convert_like_real (convs, expr, fn, argnum, inner)
expr = cp_convert (build_pointer_type (TREE_TYPE (ref_type)),
expr);
/* Convert the pointer to the desired reference type. */
- expr = build1 (NOP_EXPR, ref_type, expr);
-
- return expr;
+ return build_nop (ref_type, expr);
}
case LVALUE_CONV:
@@ -4134,14 +4311,18 @@ convert_arg_to_ellipsis (arg)
arg = require_complete_type (arg);
- if (arg != error_mark_node && ! pod_type_p (TREE_TYPE (arg)))
+ if (arg != error_mark_node
+ && !pod_type_p (TREE_TYPE (arg)))
{
/* Undefined behavior [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. */
- warning ("cannot pass objects of non-POD type `%#T' through `...'; \
-call will abort at runtime",
- TREE_TYPE (arg));
+ try to do that.
+ If the call appears in the context of a sizeof expression,
+ there is no need to emit a warning, since the expression won't be
+ evaluated. We keep the builtin_trap just as a safety check. */
+ if (!skip_evaluation)
+ warning ("cannot pass objects of non-POD type `%#T' through `...'; "
+ "call will abort at runtime", TREE_TYPE (arg));
arg = call_builtin_trap ();
}
@@ -4362,12 +4543,17 @@ build_over_call (cand, args, flags)
TREE_VALUE (arg),
cand->conversion_path,
1);
+ /* Check that the base class is accessible. */
+ if (!accessible_base_p (TREE_TYPE (argtype),
+ BINFO_TYPE (cand->conversion_path)))
+ error ("`%T' is not an accessible base of `%T'",
+ BINFO_TYPE (cand->conversion_path),
+ TREE_TYPE (argtype));
/* If fn was found by a using declaration, the conversion path
will be to the derived class, not the base declaring fn. We
must convert from derived to base. */
base_binfo = lookup_base (TREE_TYPE (TREE_TYPE (converted_arg)),
TREE_TYPE (parmtype), ba_ignore, NULL);
-
converted_arg = build_base_path (PLUS_EXPR, converted_arg,
base_binfo, 1);
@@ -4515,10 +4701,22 @@ build_over_call (cand, args, flags)
else
fn = build_addr_func (fn);
+ return build_cxx_call (fn, args, converted_args);
+}
+
+/* Build and return a call to FN, using the the CONVERTED_ARGS. ARGS
+ gives the original form of the arguments. This function performs
+ no overload resolution, conversion, or other high-level
+ operations. */
+
+tree
+build_cxx_call(tree fn, tree args, tree converted_args)
+{
+ tree fndecl;
+
/* Recognize certain built-in functions so we can make tree-codes
other than CALL_EXPR. We do this when it enables fold-const.c
to do something useful. */
-
if (TREE_CODE (fn) == ADDR_EXPR
&& TREE_CODE (TREE_OPERAND (fn, 0)) == FUNCTION_DECL
&& DECL_BUILT_IN (TREE_OPERAND (fn, 0)))
@@ -4529,14 +4727,26 @@ build_over_call (cand, args, flags)
return exp;
}
- /* Some built-in function calls will be evaluated at
- compile-time in fold (). */
- fn = fold (build_call (fn, converted_args));
+ fn = build_call (fn, converted_args);
+
+ /* If this call might throw an exception, note that fact. */
+ fndecl = get_callee_fndecl (fn);
+ if ((!fndecl || !TREE_NOTHROW (fndecl))
+ && at_function_scope_p ()
+ && cfun)
+ cp_function_chain->can_throw = 1;
+
+ /* Some built-in function calls will be evaluated at compile-time in
+ fold (). */
+ fn = fold (fn);
+
if (VOID_TYPE_P (TREE_TYPE (fn)))
return fn;
+
fn = require_complete_type (fn);
if (fn == error_mark_node)
return error_mark_node;
+
if (IS_AGGR_TYPE (TREE_TYPE (fn)))
fn = build_cplus_new (TREE_TYPE (fn), fn);
return convert_from_reference (fn);
@@ -4668,11 +4878,32 @@ build_special_member_call (tree instance, tree name, tree args,
TREE_TYPE (instance) = build_pointer_type (class_type);
instance = build1 (INDIRECT_REF, class_type, instance);
}
- else if (name == complete_dtor_identifier
- || name == base_dtor_identifier
- || name == deleting_dtor_identifier)
- my_friendly_assert (args == NULL_TREE, 20020712);
+ else
+ {
+ if (name == complete_dtor_identifier
+ || name == base_dtor_identifier
+ || name == deleting_dtor_identifier)
+ my_friendly_assert (args == NULL_TREE, 20020712);
+ /* Convert to the base class, if necessary. */
+ if (!same_type_ignoring_top_level_qualifiers_p
+ (TREE_TYPE (instance), BINFO_TYPE (binfo)))
+ {
+ if (name != ansi_assopname (NOP_EXPR))
+ /* For constructors and destructors, either the base is
+ non-virtual, or it is virtual but we are doing the
+ conversion from a constructor or destructor for the
+ complete object. In either case, we can convert
+ statically. */
+ instance = convert_to_base_statically (instance, binfo);
+ else
+ /* However, for assignment operators, we must convert
+ dynamically if the base is virtual. */
+ instance = build_base_path (PLUS_EXPR, instance,
+ binfo, /*nonnull=*/1);
+ }
+ }
+
my_friendly_assert (instance != NULL_TREE, 20020712);
/* Resolve the name. */
@@ -4710,7 +4941,9 @@ build_special_member_call (tree instance, tree name, tree args,
args = tree_cons (NULL_TREE, sub_vtt, args);
}
- return build_new_method_call (instance, fns, args, binfo, flags);
+ return build_new_method_call (instance, fns, args,
+ TYPE_BINFO (BINFO_TYPE (binfo)),
+ flags);
}
/* Build a call to "INSTANCE.FN (ARGS)". */
@@ -4727,7 +4960,6 @@ build_new_method_call (tree instance, tree fns, tree args,
tree mem_args = NULL_TREE, instance_ptr;
tree name, pretty_name;
tree user_args;
- tree templates = NULL_TREE;
tree call;
int template_only = 0;
@@ -4830,26 +5062,22 @@ build_new_method_call (tree instance, tree fns, tree args,
this_arglist = args;
if (TREE_CODE (t) == TEMPLATE_DECL)
- {
- /* A member template. */
- templates = tree_cons (NULL_TREE, t, templates);
- candidates =
- add_template_candidate (candidates, t,
- class_type,
- explicit_targs,
- this_arglist, optype,
- access_binfo,
- conversion_path,
- flags,
- DEDUCE_CALL);
- }
+ /* A member template. */
+ add_template_candidate (&candidates, t,
+ class_type,
+ explicit_targs,
+ this_arglist, optype,
+ access_binfo,
+ conversion_path,
+ flags,
+ DEDUCE_CALL);
else if (! template_only)
- candidates = add_function_candidate (candidates, t,
- class_type,
- this_arglist,
- access_binfo,
- conversion_path,
- flags);
+ add_function_candidate (&candidates, t,
+ class_type,
+ this_arglist,
+ access_binfo,
+ conversion_path,
+ flags);
}
}
@@ -5401,21 +5629,6 @@ add_warning (winner, loser)
winner->warnings);
}
-/* Returns true iff functions are equivalent. Equivalent functions are
- not '==' only if one is a function-local extern function or if
- both are extern "C". */
-
-static inline int
-equal_functions (fn1, fn2)
- tree fn1;
- tree fn2;
-{
- if (DECL_LOCAL_FUNCTION_P (fn1) || DECL_LOCAL_FUNCTION_P (fn2)
- || DECL_EXTERN_C_FUNCTION_P (fn1))
- return decls_match (fn1, fn2);
- return fn1 == fn2;
-}
-
/* Compare two candidates for overloading as described in
[over.match.best]. Return values:
@@ -5550,7 +5763,7 @@ joust (cand1, cand2, warn)
&& TREE_CODE (convn) == QUAL_CONV)
/* Don't complain about `operator char *()' beating
`operator const char *() const'. */;
- else if (warn)
+ else if (warn && warn_conversion)
{
tree source = source_type (TREE_VEC_ELT (w->convs, 0));
if (! DECL_CONSTRUCTOR_P (w->fn))
@@ -5679,11 +5892,9 @@ tweak:
if (winner)
{
if (warn)
- {
- pedwarn ("choosing `%D' over `%D'", w->fn, l->fn);
- pedwarn (
-" because worst conversion for the former is better than worst conversion for the latter");
- }
+ pedwarn ("ISO C++ says that `%D' and `%D' are ambiguous \
+even though the worst conversion for the former is better than the worst \
+conversion for the latter", w->fn, l->fn);
else
add_warning (w, l);
return winner;
@@ -5805,24 +6016,243 @@ perform_implicit_conversion (type, expr)
return convert_like (conv, expr);
}
-/* Convert EXPR to the indicated reference TYPE, in a way suitable for
- initializing a variable of that TYPE. Return the converted
- expression. */
+/* Convert EXPR to TYPE (as a direct-initialization) if that is
+ permitted. If the conversion is valid, the converted expression is
+ returned. Otherwise, NULL_TREE is returned, except in the case
+ that TYPE is a class type; in that case, an error is issued. */
+
+tree
+perform_direct_initialization_if_possible (tree type, tree expr)
+{
+ tree conv;
+
+ if (type == error_mark_node || error_operand_p (expr))
+ return error_mark_node;
+ /* [dcl.init]
+
+ If the destination type is a (possibly cv-qualified) class type:
+
+ -- If the initialization is direct-initialization ...,
+ constructors are considered. ... If no constructor applies, or
+ the overload resolution is ambiguous, the initialization is
+ ill-formed. */
+ if (CLASS_TYPE_P (type))
+ {
+ expr = build_special_member_call (NULL_TREE, complete_ctor_identifier,
+ build_tree_list (NULL_TREE, expr),
+ TYPE_BINFO (type),
+ LOOKUP_NORMAL);
+ return build_cplus_new (type, expr);
+ }
+ conv = implicit_conversion (type, TREE_TYPE (expr), expr,
+ LOOKUP_NORMAL);
+ if (!conv || ICS_BAD_FLAG (conv))
+ return NULL_TREE;
+ return convert_like_real (conv, expr, NULL_TREE, 0, 0,
+ /*issue_conversion_warnings=*/false);
+}
+
+/* DECL is a VAR_DECL whose type is a REFERENCE_TYPE. The reference
+ is being bound to a temporary. Create and return a new VAR_DECL
+ with the indicated TYPE; this variable will store the value to
+ which the reference is bound. */
+
+tree
+make_temporary_var_for_ref_to_temp (tree decl, tree type)
+{
+ tree var;
+
+ /* Create the variable. */
+ var = build_decl (VAR_DECL, NULL_TREE, type);
+ DECL_ARTIFICIAL (var) = 1;
+ TREE_USED (var) = 1;
+
+ /* Register the variable. */
+ if (TREE_STATIC (decl))
+ {
+ /* Namespace-scope or local static; give it a mangled name. */
+ tree name;
+
+ TREE_STATIC (var) = 1;
+ name = mangle_ref_init_variable (decl);
+ DECL_NAME (var) = name;
+ SET_DECL_ASSEMBLER_NAME (var, name);
+ var = pushdecl_top_level (var);
+ }
+ else
+ {
+ /* Create a new cleanup level if necessary. */
+ maybe_push_cleanup_level (type);
+ /* Don't push unnamed temps. Do set DECL_CONTEXT, though. */
+ DECL_CONTEXT (var) = current_function_decl;
+ }
+
+ return var;
+}
+
+ /* Convert EXPR to the indicated reference TYPE, in a way suitable
+ for initializing a variable of that TYPE. If DECL is non-NULL,
+ it is the VAR_DECL being initialized with the EXPR. (In that
+ case, the type of DECL will be TYPE.) If DECL is non-NULL, then
+ CLEANUP must also be non-NULL, and with *CLEANUP initialized to
+ NULL. Upon return, if *CLEANUP is no longer NULL, it will be a
+ CLEANUP_STMT that should be inserted after the returned
+ expression is used to initialize DECL.
+
+ Return the converted expression. */
tree
-initialize_reference (type, expr)
+initialize_reference (type, expr, decl, cleanup)
tree type;
tree expr;
+ tree decl;
+ tree *cleanup;
{
tree conv;
+ if (type == error_mark_node || error_operand_p (expr))
+ return error_mark_node;
+
conv = reference_binding (type, TREE_TYPE (expr), expr, LOOKUP_NORMAL);
if (!conv || ICS_BAD_FLAG (conv))
{
- error ("could not convert `%E' to `%T'", expr, type);
+ if (!(TYPE_QUALS (TREE_TYPE (type)) & TYPE_QUAL_CONST)
+ && !real_lvalue_p (expr))
+ error ("invalid initialization of non-const reference of "
+ "type '%T' from a temporary of type '%T'",
+ type, TREE_TYPE (expr));
+ else
+ error ("invalid initialization of reference of type "
+ "'%T' from expression of type '%T'", type,
+ TREE_TYPE (expr));
return error_mark_node;
}
+ /* If DECL is non-NULL, then this special rule applies:
+
+ [class.temporary]
+
+ The temporary to which the reference is bound or the temporary
+ that is the complete object to which the reference is bound
+ persists for the lifetime of the reference.
+
+ The temporaries created during the evaluation of the expression
+ initializing the reference, except the temporary to which the
+ reference is bound, are destroyed at the end of the
+ full-expression in which they are created.
+
+ In that case, we store the converted expression into a new
+ VAR_DECL in a new scope.
+
+ However, we want to be careful not to create temporaries when
+ they are not required. For example, given:
+
+ struct B {};
+ struct D : public B {};
+ D f();
+ const B& b = f();
+
+ there is no need to copy the return value from "f"; we can just
+ extend its lifetime. Similarly, given:
+
+ struct S {};
+ struct T { operator S(); };
+ T t;
+ const S& s = t;
+
+ we can extend the lifetime of the return value of the conversion
+ operator. */
+ my_friendly_assert (TREE_CODE (conv) == REF_BIND, 20030302);
+ if (decl)
+ {
+ tree var;
+ tree base_conv_type;
+
+ /* Skip over the REF_BIND. */
+ conv = TREE_OPERAND (conv, 0);
+ /* If the next conversion is a BASE_CONV, skip that too -- but
+ remember that the conversion was required. */
+ if (TREE_CODE (conv) == BASE_CONV && !NEED_TEMPORARY_P (conv))
+ {
+ base_conv_type = TREE_TYPE (conv);
+ conv = TREE_OPERAND (conv, 0);
+ }
+ else
+ base_conv_type = NULL_TREE;
+ /* Perform the remainder of the conversion. */
+ expr = convert_like_real (conv, expr,
+ /*fn=*/NULL_TREE, /*argnum=*/0,
+ /*inner=*/-1,
+ /*issue_conversion_warnings=*/true);
+ if (!real_non_cast_lvalue_p (expr))
+ {
+ tree init;
+ tree type;
+
+ /* Create the temporary variable. */
+ type = TREE_TYPE (expr);
+ var = make_temporary_var_for_ref_to_temp (decl, type);
+ layout_decl (var, 0);
+ /* If the rvalue is the result of a function call it will be
+ a TARGET_EXPR. If it is some other construct (such as a
+ member access expression where the underlying object is
+ itself the result of a function call), turn it into a
+ TARGET_EXPR here. It is important that EXPR be a
+ TARGET_EXPR below since otherwise the INIT_EXPR will
+ attempt to make a bitwise copy of EXPR to intialize
+ VAR. */
+ if (TREE_CODE (expr) != TARGET_EXPR)
+ expr = get_target_expr (expr);
+ /* Create the INIT_EXPR that will initialize the temporary
+ variable. */
+ init = build (INIT_EXPR, type, var, expr);
+ if (at_function_scope_p ())
+ {
+ add_decl_stmt (var);
+ *cleanup = cxx_maybe_build_cleanup (var);
+ if (*cleanup)
+ /* We must be careful to destroy the temporary only
+ after its initialization has taken place. If the
+ initialization throws an exception, then the
+ destructor should not be run. We cannot simply
+ transform INIT into something like:
+
+ (INIT, ({ CLEANUP_STMT; }))
+
+ because emit_local_var always treats the
+ initializer as a full-expression. Thus, the
+ destructor would run too early; it would run at the
+ end of initializing the reference variable, rather
+ than at the end of the block enclosing the
+ reference variable.
+
+ The solution is to pass back a CLEANUP_STMT which
+ the caller is responsible for attaching to the
+ statement tree. */
+ *cleanup = build_stmt (CLEANUP_STMT, var, *cleanup);
+ }
+ else
+ {
+ rest_of_decl_compilation (var, NULL, /*toplev=*/1, at_eof);
+ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type))
+ static_aggregates = tree_cons (NULL_TREE, var,
+ static_aggregates);
+ }
+ /* Use its address to initialize the reference variable. */
+ expr = build_address (var);
+ expr = build (COMPOUND_EXPR, TREE_TYPE (expr), init, expr);
+ }
+ else
+ /* Take the address of EXPR. */
+ expr = build_unary_op (ADDR_EXPR, expr, 0);
+ /* If a BASE_CONV was required, perform it now. */
+ if (base_conv_type)
+ expr = (perform_implicit_conversion
+ (build_pointer_type (base_conv_type), expr));
+ return build_nop (type, expr);
+ }
+
+ /* Perform the conversion. */
return convert_like (conv, expr);
}
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
index 0d1e71b9a8d..e0e9f235dd6 100644
--- a/gcc/cp/cfns.gperf
+++ b/gcc/cp/cfns.gperf
@@ -16,9 +16,9 @@ const char * libc_name_p PARAMS ((const char *, unsigned int));
# exception, unless it calls a program-supplied function that
# throws an exception.
#
-# bsearch and qsort are commented out because they can call such functions.
+# Specific functions are commented out for the reason noted in each case.
#
-abort
+# abort -- synchronous exception from SIGABRT handler
abs
acos
asctime
@@ -29,7 +29,7 @@ atexit
atof
atoi
atol
-#bsearch
+#bsearch -- calls user function which may throw exception
btowc
calloc
ceil
@@ -43,41 +43,41 @@ div
exit
exp
fabs
-fclose
+#fclose -- POSIX thread cancellation point
feof
ferror
-fflush
-fgetc
-fgetpos
-fgets
-fgetwc
-fgetws
+#fflush -- POSIX thread cancellation point
+#fgetc -- POSIX thread cancellation point
+#fgetpos -- POSIX thread cancellation point
+#fgets -- POSIX thread cancellation point
+#fgetwc -- POSIX thread cancellation point
+#fgetws -- POSIX thread cancellation point
floor
fmod
-fopen
-fprintf
-fputc
-fputs
-fputwc
-fputws
-fread
+#fopen -- POSIX thread cancellation point
+#fprintf -- POSIX thread cancellation point
+#fputc -- POSIX thread cancellation point
+#fputs -- POSIX thread cancellation point
+#fputwc -- POSIX thread cancellation point
+#fputws -- POSIX thread cancellation point
+#fread -- POSIX thread cancellation point
free
-freopen
+#freopen -- POSIX thread cancellation point
frexp
-fscanf
+#fscanf -- POSIX thread cancellation point
fseek
-fsetpos
-ftell
+#fsetpos -- POSIX thread cancellation point
+#ftell -- POSIX thread cancellation point
fwide
-fwprintf
-fwrite
-fwscanf
-getc
-getchar
+#fwprintf -- POSIX thread cancellation point
+#fwrite -- POSIX thread cancellation point
+#fwscanf -- POSIX thread cancellation point
+#getc -- POSIX thread cancellation point
+#getchar -- POSIX thread cancellation point
getenv
-gets
-getwc
-getwchar
+#gets -- POSIX thread cancellation point
+#getwc -- POSIX thread cancellation point
+#getwchar -- POSIX thread cancellation point
gmtime
isalnum
isalpha
@@ -125,22 +125,22 @@ memmove
memset
mktime
modf
-perror
+#perror -- POSIX thread cancellation point
pow
-printf
-putc
-putchar
-puts
-putwc
-putwchar
-#qsort
-raise
+#printf -- POSIX thread cancellation point
+#putc -- POSIX thread cancellation point
+#putchar -- POSIX thread cancellation point
+#puts -- POSIX thread cancellation point
+#putwc -- POSIX thread cancellation point
+#putwchar -- POSIX thread cancellation point
+#qsort -- calls user function which may throw exception
+#raise -- synchronous exception from signal handler
rand
realloc
-remove
-rename
-rewind
-scanf
+#remove -- POSIX thread cancellation point
+#rename -- POSIX thread cancellation point
+#rewind -- POSIX thread cancellation point
+#scanf -- POSIX thread cancellation point
setbuf
setlocale
setvbuf
@@ -157,7 +157,7 @@ strcmp
strcoll
strcpy
strcspn
-strerror
+#strerror -- POSIX thread cancellation point
strftime
strlen
strncat
@@ -174,25 +174,25 @@ strtoul
strxfrm
swprintf
swscanf
-system
+#system -- POSIX thread cancellation point
tan
tanh
time
-tmpfile
-tmpnam
+#tmpfile -- POSIX thread cancellation point
+#tmpnam -- POSIX thread cancellation point
tolower
toupper
towctrans
towlower
towupper
-ungetc
-ungetwc
-vfprintf
-vfwprintf
-vprintf
+#ungetc -- POSIX thread cancellation point
+#ungetwc -- POSIX thread cancellation point
+#vfprintf -- POSIX thread cancellation point
+#vfwprintf -- POSIX thread cancellation point
+#vprintf -- POSIX thread cancellation point
vsprintf
vswprintf
-vwprintf
+#vwprintf -- POSIX thread cancellation point
wcrtomb
wcscat
wcschr
@@ -225,5 +225,5 @@ wmemcmp
wmemcpy
wmemmove
wmemset
-wprintf
-wscanf
+#wprintf -- POSIX thread cancellation point
+#wscanf -- POSIX thread cancellation point
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
index c7e6a9d9412..60929344ee4 100644
--- a/gcc/cp/cfns.h
+++ b/gcc/cp/cfns.h
@@ -1,5 +1,5 @@
-/* C code produced by gperf version 2.7 */
-/* Command-line: gperf -o -C -E -k 1-6,$ -j1 -D -N libc_name_p ../../../egcs-CVS20000404/gcc/cp/cfns.gperf */
+/* C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p ../../../src-3.3/gcc/cp/cfns.gperf */
#ifdef __GNUC__
__inline
#endif
@@ -8,10 +8,14 @@ static unsigned int hash PARAMS ((const char *, unsigned int));
__inline
#endif
const char * libc_name_p PARAMS ((const char *, unsigned int));
-/* maximum key range = 1020, duplicates = 1 */
+/* maximum key range = 480, duplicates = 1 */
#ifdef __GNUC__
__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
#endif
static unsigned int
hash (str, len)
@@ -20,32 +24,32 @@ hash (str, len)
{
static const unsigned short asso_values[] =
{
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 0, 1,
- 0, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 247, 218, 144,
- 0, 0, 40, 7, 126, 184, 2, 15, 146, 67,
- 9, 60, 0, 0, 3, 0, 7, 8, 197, 1,
- 40, 8, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 0, 0,
+ 1, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 106, 76, 0,
+ 21, 0, 0, 11, 43, 26, 0, 66, 106, 17,
+ 121, 0, 17, 0, 7, 0, 3, 19, 49, 1,
+ 3, 41, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483
};
register int hval = len;
@@ -79,356 +83,236 @@ libc_name_p (str, len)
{
enum
{
- TOTAL_KEYWORDS = 207,
+ TOTAL_KEYWORDS = 156,
MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 10,
- MIN_HASH_VALUE = 18,
- MAX_HASH_VALUE = 1037
+ MIN_HASH_VALUE = 3,
+ MAX_HASH_VALUE = 482
};
static const char * const wordlist[] =
{
- "gets",
- "puts",
- "sqrt",
- "strerror",
- "strstr",
- "strspn",
- "exp",
+ "cos",
+ "feof",
"free",
- "fgets",
- "fputs",
- "fgetws",
- "fputws",
+ "sqrt",
+ "wcsrtombs",
"pow",
- "fseek",
- "perror",
- "strtod",
- "toupper",
- "towupper",
- "frexp",
- "strtok",
- "fsetpos",
+ "towctrans",
+ "wcsstr",
+ "wcstombs",
+ "strstr",
"ferror",
- "freopen",
- "fgetpos",
- "fopen",
+ "wcsxfrm",
+ "wcsftime",
+ "exit",
+ "exp",
+ "modf",
+ "strxfrm",
"wmemset",
"memset",
- "system",
- "wcsstr",
- "wctype",
- "strxfrm",
- "wcsspn",
- "strcspn",
- "fmod",
- "strcpy",
- "strncpy",
- "strlen",
- "ungetwc",
- "feof",
- "ldexp",
- "isupper",
- "rewind",
- "iswupper",
- "sin",
- "cos",
- "modf",
- "iswpunct",
- "wcstod",
- "log10",
- "log",
- "wcsrtombs",
- "strcmp",
- "fwide",
- "towctrans",
- "strncmp",
- "strtoul",
- "fwrite",
- "exit",
- "swprintf",
- "wcstok",
"strftime",
- "sprintf",
- "wprintf",
- "strpbrk",
+ "frexp",
"time",
- "rand",
- "srand",
+ "ctime",
+ "wcstod",
+ "fwide",
+ "wcscmp",
"wmemmove",
- "tan",
- "tolower",
- "fwprintf",
- "towlower",
- "wcstombs",
- "printf",
- "fprintf",
+ "strtod",
+ "fmod",
+ "wcschr",
+ "wcsrchr",
+ "strcmp",
+ "wctype",
+ "toupper",
+ "towupper",
"strchr",
"strrchr",
- "wmemcpy",
- "fread",
- "getwchar",
- "putwchar",
- "longjmp",
- "memcpy",
- "wcsxfrm",
- "wcscspn",
- "getc",
- "putc",
- "getwc",
- "putwc",
- "wcscpy",
- "wcsncpy",
- "wcslen",
- "floor",
- "setbuf",
- "ungetc",
- "rename",
- "remove",
- "gmtime",
- "mktime",
- "fgetc",
- "fputc",
- "fgetwc",
- "fputwc",
- "memcmp",
- "iswctype",
"wmemcmp",
- "ispunct",
- "mbstowcs",
- "wcscmp",
- "mbsrtowcs",
- "setlocale",
- "wcsncmp",
- "wcstoul",
- "strtol",
- "wcsftime",
+ "iswctype",
+ "gmtime",
+ "difftime",
+ "btowc",
"iswprint",
- "wcspbrk",
- "iswdigit",
- "isprint",
- "fclose",
- "atof",
- "islower",
- "iswlower",
- "ctime",
+ "iswxdigit",
+ "cosh",
+ "memcmp",
"wmemchr",
+ "isupper",
+ "iswupper",
+ "iswdigit",
"memchr",
- "wctrans",
- "strcat",
- "getenv",
- "strncat",
- "iswxdigit",
- "wcschr",
- "wcsrchr",
"isxdigit",
+ "wmemcpy",
+ "mbtowc",
+ "setbuf",
+ "mbstowcs",
+ "wcscpy",
+ "memmove",
"vswprintf",
- "raise",
- "iswspace",
- "vsprintf",
- "vwprintf",
- "vprintf",
- "swscanf",
- "sinh",
- "tmpfile",
- "asin",
- "mblen",
"acos",
- "mbrlen",
- "cosh",
- "difftime",
- "memmove",
- "abs",
- "tmpnam",
- "vfwprintf",
- "setvbuf",
- "vfprintf",
- "scanf",
- "sscanf",
- "wscanf",
- "fwscanf",
- "ftell",
- "fflush",
- "atexit",
- "iswcntrl",
- "iscntrl",
"mbrtowc",
"wcrtomb",
- "fabs",
- "wcstol",
- "strcoll",
- "atan2",
- "tanh",
- "atan",
- "fscanf",
- "clock",
- "getchar",
- "putchar",
- "abort",
- "clearerr",
+ "mbsrtowcs",
+ "atof",
+ "strcpy",
+ "setlocale",
"wcscat",
- "wcsncat",
"isdigit",
- "isgraph",
- "iswgraph",
- "btowc",
+ "log10",
+ "tolower",
+ "floor",
+ "towlower",
+ "strcat",
+ "log",
+ "mktime",
+ "wcstoul",
+ "fseek",
+ "memcpy",
+ "wcstok",
+ "strtoul",
+ "wcscspn",
+ "islower",
"div",
+ "iswlower",
+ "atexit",
+ "strtok",
+ "setvbuf",
+ "strcspn",
"isspace",
- "atol",
- "labs",
- "ceil",
- "mbtowc",
- "wcscoll",
- "wctob",
+ "iswspace",
"asctime",
- "iswalnum",
- "isalnum",
- "mbsinit",
+ "wctob",
+ "wcsncmp",
"atoi",
+ "ldexp",
+ "strncmp",
+ "wcspbrk",
"wctomb",
+ "swprintf",
+ "sprintf",
+ "strpbrk",
+ "abs",
+ "fabs",
+ "wcsncpy",
+ "ispunct",
+ "iswpunct",
+ "strncpy",
+ "iswgraph",
+ "isprint",
+ "isgraph",
+ "wcscoll",
+ "wcstol",
+ "vsprintf",
+ "strcoll",
+ "strtol",
+ "sscanf",
+ "clearerr",
+ "swscanf",
+ "sinh",
+ "wcsncat",
+ "getenv",
+ "ceil",
+ "clock",
+ "wctrans",
+ "strncat",
"ldiv",
- "signal",
- "realloc",
+ "iswcntrl",
+ "wcsspn",
+ "iscntrl",
+ "sin",
+ "strspn",
+ "mbsinit",
+ "longjmp",
+ "rand",
+ "srand",
+ "labs",
+ "tanh",
+ "calloc",
+ "atol",
"localtime",
+ "realloc",
+ "malloc",
+ "atan2",
+ "tan",
+ "wcslen",
+ "strlen",
"iswalpha",
"localeconv",
+ "asin",
+ "iswalnum",
+ "isalnum",
"isalpha",
- "malloc",
- "calloc"
+ "mblen",
+ "mbrlen",
+ "atan",
+ "signal"
};
static const short lookup[] =
{
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 0, 1, -1, 2, -1, -1,
- -1, -1, -1, 3, -1, 4, -1, -1,
- -1, -1, 5, -1, -1, -1, -1, -1,
- -1, -1, -1, 6, -1, -1, -1, 7,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 8, 9, 10, 11, -1,
- -1, 12, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 13, -1, -1, 14, -1,
- -1, -1, -1, 15, -1, 16, -1, 17,
- 18, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 19, 20, -1, -1, -1, 21, 22,
- -1, 23, -1, 24, -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, 25, -1, -1,
- -1, -1, 26, 27, -1, -1, -1, -1,
- -1, -1, -1, -1, 28, -1, 29, 30,
- -1, 31, 32, 33, -1, -1, -1, -1,
- 34, -1, 35, -1, 36, -1, -1, 37,
- 38, -1, -1, -1, -1, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 40, 41, 42, 43, -1, 44,
- -1, -1, -1, 45, -1, -1, -1, -1,
- -1, 46, 47, 48, -1, -1, -1, 49,
- 50, -1, -1, 51, -1, -1, 52, 53,
- -1, -1, -1, -1, -1, 54, 55, -1,
- -1, 56, 57, -1, -1, 58, -1, -1,
- 59, 60, 61, 62, -1, 63, -1, -1,
- -1, -1, -1, -1, -1, -1, 64, 65,
- 66, -1, -1, -1, -1, -1, 67, -1,
- -1, -1, -1, 68, -1, -1, -1, -1,
- -1, -1, -1, -1, 69, 70, 71, 72,
- -1, 73, 74, -1, 75, 76, 77, 78,
- 79, 80, 81, -1, 82, -1, 83, -1,
- -1, 84, 85, 86, 87, 88, -1, 89,
- -1, 90, -1, 91, -1, 92, -1, 93,
- -1, -1, -1, -1, -1, 94, -1, -1,
- -1, -1, -1, -1, 95, 96, -1, -1,
- -1, -1, 97, -1, -1, -1, -1, -1,
- -1, -1, 98, 99, 100, 101, 102, 103,
- 104, 105, -1, -1, -1, -1, -1, 106,
- -1, 107, 108, -1, 109, -1, 110, -1,
- -1, -1, -1, -1, 111, 112, -1, 113,
- -1, -1, -1, -1, -1, -1, -1, -1,
- 114, -1, -1, 115, 116, -1, -1, 117,
- -1, -1, 118, -1, 119, -1, 120, -1,
- -1, 121, -1, 122, -1, -1, -1, 123,
- -1, -1, -1, -1, -1, -1, -1, 124,
- 125, -1, 126, -1, -1, 127, -1, 128,
- 129, 130, -1, 131, 132, -1, 133, -1,
- -1, -1, 134, -1, -1, -1, -1, 135,
- 136, 137, 138, -1, -1, -1, -1, 139,
- 140, 141, -1, 142, -1, 143, 144, 145,
- -1, -1, 146, -1, 147, -1, -1, 148,
- -1, 149, -1, -1, 150, -1, 151, -1,
- -1, -1, 152, -1, -1, 153, -1, -1,
- -1, 154, -1, -1, -1, 155, 156, 157,
- 158, -1, 159, -1, 160, -1, -1, -1,
- -1, -1, 161, 162, 163, -1, -1, -1,
- -1, -1, -1, -719, -1, 166, 167, -43,
- -2, 168, -1, 169, -1, -1, -1, 170,
- -1, -1, -1, 171, -1, -1, 172, -1,
- -1, 173, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 174, 175, -1,
- -1, -1, -1, 176, -1, -1, -1, 177,
- -1, -1, -1, -1, 178, -1, -1, 179,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 180, 181, -1,
- 182, -1, -1, 183, -1, 184, 185, -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, 186, -1, -1, -1, -1, 187,
- -1, -1, -1, -1, -1, -1, -1, -1,
- 188, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 189,
- 190, -1, -1, -1, -1, 191, -1, -1,
- 192, -1, -1, -1, -1, -1, 193, -1,
- -1, -1, -1, -1, 194, -1, -1, -1,
- -1, -1, -1, -1, 195, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 196, -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, 197, -1, -1, -1, -1, -1, -1,
- 198, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 199, -1, -1, -1, -1, -1, -1,
- -1, 200, -1, -1, -1, -1, -1, 201,
- -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,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 202, -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, -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, -1, -1, -1, -1, 203, -1,
- -1, -1, -1, -1, -1, 204, -1, -1,
- 205, -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, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 206
+ -1, -1, -1, 0, 1, -1, -1, -1,
+ -1, -1, -1, 2, -1, -1, -1, -1,
+ -1, 3, -1, -1, 4, -1, 5, 6,
+ 7, -1, -1, -1, -1, 8, -1, -1,
+ -1, 9, 10, 11, -1, -1, 12, 13,
+ 14, -1, 15, -1, 16, 17, 18, 19,
+ -1, 20, 21, 22, 23, 24, -1, -1,
+ -1, -1, 25, -1, 26, 27, -1, 28,
+ 29, 30, -1, 31, 32, -1, 33, -1,
+ 34, 35, 36, -1, 37, -1, -1, 38,
+ 39, -1, -1, -1, 40, 41, -1, -1,
+ 42, 43, 44, 45, 46, 47, -1, 48,
+ 49, 50, 51, -1, 52, -1, -1, 53,
+ 54, 55, 56, 57, -1, 58, 59, -273,
+ 62, 63, -1, 64, -96, -2, 65, 66,
+ 67, -1, 68, -1, 69, 70, 71, -1,
+ 72, -1, -1, 73, -1, -1, -1, 74,
+ 75, 76, -1, 77, -1, -1, 78, -1,
+ -1, 79, 80, 81, 82, 83, 84, 85,
+ -1, -1, 86, 87, 88, -1, 89, 90,
+ -1, 91, -1, 92, -1, 93, -1, -1,
+ -1, 94, -1, -1, 95, -1, 96, -1,
+ -1, -1, -1, 97, 98, 99, -1, 100,
+ -1, 101, 102, 103, -1, -1, -1, -1,
+ -1, 104, -1, 105, 106, -1, -1, -1,
+ -1, -1, 107, -1, -1, -1, -1, 108,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 109, -1, -1, 110, -1, 111, -1,
+ -1, -1, -1, -1, 112, 113, -1, 114,
+ -1, 115, 116, 117, -1, 118, 119, 120,
+ -1, -1, 121, 122, -1, 123, -1, 124,
+ -1, -1, -1, -1, -1, -1, -1, 125,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 126, 127, -1, -1, -1, 128, 129,
+ -1, -1, -1, 130, 131, -1, -1, 132,
+ 133, 134, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 135, -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,
+ 136, -1, -1, -1, 137, 138, -1, -1,
+ -1, -1, 139, -1, 140, -1, -1, -1,
+ -1, -1, -1, -1, -1, 141, -1, 142,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 143, 144, -1, -1, -1, -1,
+ -1, -1, -1, -1, 145, -1, -1, -1,
+ -1, -1, 146, -1, -1, -1, -1, -1,
+ -1, 147, 148, -1, -1, -1, -1, -1,
+ -1, 149, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 150, -1, -1, -1, -1, -1,
+ -1, -1, -1, 151, -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, 152, -1,
+ -1, -1, -1, -1, -1, -1, 153, -1,
+ -1, -1, -1, -1, -1, 154, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 155
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 06d09681e6f..0c5ace708f2 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -127,8 +127,9 @@ static int field_decl_cmp PARAMS ((const tree *, const tree *));
static int method_name_cmp PARAMS ((const tree *, const tree *));
static void add_implicitly_declared_members PARAMS ((tree, int, int, int));
static tree fixed_type_or_null PARAMS ((tree, int *, int *));
-static tree resolve_address_of_overloaded_function PARAMS ((tree, tree, int,
- int, int, tree));
+static tree resolve_address_of_overloaded_function PARAMS ((tree, tree,
+ tsubst_flags_t,
+ int, int, tree));
static tree build_vtable_entry_ref PARAMS ((tree, tree, tree));
static tree build_vtbl_ref_1 PARAMS ((tree, tree));
static tree build_vtbl_initializer PARAMS ((tree, tree, tree, tree, int *));
@@ -288,13 +289,15 @@ build_base_path (code, expr, binfo, nonnull)
return error_mark_node;
}
+ if (!want_pointer)
+ /* This must happen before the call to save_expr. */
+ expr = build_unary_op (ADDR_EXPR, expr, 0);
+
fixed_type_p = resolves_to_fixed_type_p (expr, &nonnull);
if (fixed_type_p <= 0 && TREE_SIDE_EFFECTS (expr))
expr = save_expr (expr);
- if (!want_pointer)
- expr = build_unary_op (ADDR_EXPR, expr, 0);
- else if (!nonnull)
+ if (want_pointer && !nonnull)
null_test = build (EQ_EXPR, boolean_type_node, expr, integer_zero_node);
offset = BINFO_OFFSET (binfo);
@@ -304,8 +307,27 @@ build_base_path (code, expr, binfo, nonnull)
/* Going via virtual base V_BINFO. We need the static offset
from V_BINFO to BINFO, and the dynamic offset from D_BINFO to
V_BINFO. That offset is an entry in D_BINFO's vtable. */
- tree v_offset = build_vfield_ref (build_indirect_ref (expr, NULL),
- TREE_TYPE (TREE_TYPE (expr)));
+ tree v_offset;
+
+ if (fixed_type_p < 0 && in_base_initializer)
+ {
+ /* In a base member initializer, we cannot rely on
+ the vtable being set up. We have to use the vtt_parm. */
+ tree derived = v_binfo;
+
+ while (BINFO_INHERITANCE_CHAIN (derived))
+ derived = BINFO_INHERITANCE_CHAIN (derived);
+
+ v_offset = build (PLUS_EXPR, TREE_TYPE (current_vtt_parm),
+ current_vtt_parm, BINFO_VPTR_INDEX (derived));
+
+ v_offset = build1 (INDIRECT_REF,
+ TREE_TYPE (TYPE_VFIELD (BINFO_TYPE (derived))),
+ v_offset);
+ }
+ else
+ v_offset = build_vfield_ref (build_indirect_ref (expr, NULL),
+ TREE_TYPE (TREE_TYPE (expr)));
v_binfo = binfo_for_vbase (BINFO_TYPE (v_binfo), BINFO_TYPE (d_binfo));
@@ -380,6 +402,33 @@ convert_to_base (tree object, tree type, bool check_access)
return build_base_path (PLUS_EXPR, object, binfo, /*nonnull=*/1);
}
+/* EXPR is an expression with class type. BASE is a base class (a
+ BINFO) of that class type. Returns EXPR, converted to the BASE
+ type. This function assumes that EXPR is the most derived class;
+ therefore virtual bases can be found at their static offsets. */
+
+tree
+convert_to_base_statically (tree expr, tree base)
+{
+ tree expr_type;
+
+ expr_type = TREE_TYPE (expr);
+ if (!same_type_p (expr_type, BINFO_TYPE (base)))
+ {
+ tree pointer_type;
+
+ pointer_type = build_pointer_type (expr_type);
+ expr = build_unary_op (ADDR_EXPR, expr, /*noconvert=*/1);
+ if (!integer_zerop (BINFO_OFFSET (base)))
+ expr = build (PLUS_EXPR, pointer_type, expr,
+ build_nop (pointer_type, BINFO_OFFSET (base)));
+ expr = build_nop (build_pointer_type (BINFO_TYPE (base)), expr);
+ expr = build1 (INDIRECT_REF, BINFO_TYPE (base), expr);
+ }
+
+ return expr;
+}
+
/* Virtual function things. */
@@ -448,7 +497,7 @@ build_vtbl_ref_1 (instance, idx)
assemble_external (vtbl);
aref = build_array_ref (vtbl, idx);
- TREE_CONSTANT (aref) = 1;
+ TREE_CONSTANT (aref) |= TREE_CONSTANT (vtbl) && TREE_CONSTANT (idx);
return aref;
}
@@ -1130,6 +1179,9 @@ handle_using_decl (using_decl, t)
tree flist = NULL_TREE;
tree old_value;
+ if (ctype == error_mark_node)
+ return;
+
binfo = lookup_base (t, ctype, ba_any, NULL);
if (! binfo)
{
@@ -1832,7 +1884,7 @@ maybe_warn_about_overly_private_class (t)
return;
has_nonprivate_method = 1;
- break;
+ /* Keep searching for a static member function. */
}
else if (!DECL_CONSTRUCTOR_P (fn) && !DECL_DESTRUCTOR_P (fn))
has_member_fn = 1;
@@ -2152,7 +2204,11 @@ same_signature_p (fndecl, base_fndecl)
if (DECL_DESTRUCTOR_P (base_fndecl) || DECL_DESTRUCTOR_P (fndecl))
return 0;
- if (DECL_NAME (fndecl) == DECL_NAME (base_fndecl))
+ if (DECL_NAME (fndecl) == DECL_NAME (base_fndecl)
+ || (DECL_CONV_FN_P (fndecl)
+ && DECL_CONV_FN_P (base_fndecl)
+ && same_type_p (DECL_CONV_FN_TYPE (fndecl),
+ DECL_CONV_FN_TYPE (base_fndecl))))
{
tree types, base_types;
types = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
@@ -2537,11 +2593,19 @@ get_basefndecls (name, t)
int n_baseclasses = CLASSTYPE_N_BASECLASSES (t);
int i;
- for (methods = TYPE_METHODS (t); methods; methods = TREE_CHAIN (methods))
- if (TREE_CODE (methods) == FUNCTION_DECL
- && DECL_VINDEX (methods) != NULL_TREE
- && DECL_NAME (methods) == name)
- base_fndecls = tree_cons (NULL_TREE, methods, base_fndecls);
+ /* Find virtual functions in T with the indicated NAME. */
+ i = lookup_fnfields_1 (t, name);
+ if (i != -1)
+ for (methods = TREE_VEC_ELT (CLASSTYPE_METHOD_VEC (t), i);
+ methods;
+ methods = OVL_NEXT (methods))
+ {
+ tree method = OVL_CURRENT (methods);
+
+ if (TREE_CODE (method) == FUNCTION_DECL
+ && DECL_VINDEX (method))
+ base_fndecls = tree_cons (NULL_TREE, method, base_fndecls);
+ }
if (base_fndecls)
return base_fndecls;
@@ -2571,7 +2635,8 @@ check_for_override (decl, ctype)
override a virtual function from a base class. */
return;
if ((DECL_DESTRUCTOR_P (decl)
- || IDENTIFIER_VIRTUAL_P (DECL_NAME (decl)))
+ || IDENTIFIER_VIRTUAL_P (DECL_NAME (decl))
+ || DECL_CONV_FN_P (decl))
&& look_for_overrides (ctype, decl)
&& !DECL_STATIC_FUNCTION_P (decl))
/* Set DECL_VINDEX to a value that is neither an INTEGER_CST nor
@@ -3061,15 +3126,6 @@ check_field_decl (field, t, cant_have_const_ctor,
cp_error_at ("multiple fields in union `%T' initialized");
*any_default_members = 1;
}
-
- /* Non-bit-fields are aligned for their type, except packed fields
- which require only BITS_PER_UNIT alignment. */
- DECL_ALIGN (field) = MAX (DECL_ALIGN (field),
- (DECL_PACKED (field)
- ? BITS_PER_UNIT
- : TYPE_ALIGN (TREE_TYPE (field))));
- if (! DECL_PACKED (field))
- DECL_USER_ALIGN (field) |= TYPE_USER_ALIGN (TREE_TYPE (field));
}
/* Check the data members (both static and non-static), class-scoped
@@ -3175,9 +3231,30 @@ check_field_decls (tree t, tree *access_decls,
/* If we've gotten this far, it's a data member, possibly static,
or an enumerator. */
-
DECL_CONTEXT (x) = t;
+ /* When this goes into scope, it will be a non-local reference. */
+ DECL_NONLOCAL (x) = 1;
+
+ if (TREE_CODE (t) == UNION_TYPE)
+ {
+ /* [class.union]
+
+ If a union contains a static data member, or a member of
+ reference type, the program is ill-formed. */
+ if (TREE_CODE (x) == VAR_DECL)
+ {
+ cp_error_at ("`%D' may not be static because it is a member of a union", x);
+ continue;
+ }
+ if (TREE_CODE (type) == REFERENCE_TYPE)
+ {
+ cp_error_at ("`%D' may not have reference type `%T' because it is a member of a union",
+ x, type);
+ continue;
+ }
+ }
+
/* ``A local class cannot have static data members.'' ARM 9.4 */
if (current_function_decl && TREE_STATIC (x))
cp_error_at ("field `%D' in local class cannot be static", x);
@@ -3207,21 +3284,9 @@ check_field_decls (tree t, tree *access_decls,
if (type == error_mark_node)
continue;
- /* When this goes into scope, it will be a non-local reference. */
- DECL_NONLOCAL (x) = 1;
-
- if (TREE_CODE (x) == CONST_DECL)
+ if (TREE_CODE (x) == CONST_DECL || TREE_CODE (x) == VAR_DECL)
continue;
- if (TREE_CODE (x) == VAR_DECL)
- {
- if (TREE_CODE (t) == UNION_TYPE)
- /* Unions cannot have static members. */
- cp_error_at ("field `%D' declared static in union", x);
-
- continue;
- }
-
/* Now it can only be a FIELD_DECL. */
if (TREE_PRIVATE (x) || TREE_PROTECTED (x))
@@ -3252,6 +3317,14 @@ check_field_decls (tree t, tree *access_decls,
if (TREE_CODE (type) == POINTER_TYPE)
has_pointers = 1;
+ if (CLASS_TYPE_P (type))
+ {
+ if (CLASSTYPE_REF_FIELDS_NEED_INIT (type))
+ SET_CLASSTYPE_REF_FIELDS_NEED_INIT (t, 1);
+ if (CLASSTYPE_READONLY_FIELDS_NEED_INIT (type))
+ SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT (t, 1);
+ }
+
if (DECL_MUTABLE_P (x) || TYPE_HAS_MUTABLE_P (type))
CLASSTYPE_HAS_MUTABLE (t) = 1;
@@ -3841,9 +3914,8 @@ build_base_field (record_layout_info rli, tree binfo,
DECL_SIZE_UNIT (decl) = CLASSTYPE_SIZE_UNIT (basetype);
DECL_ALIGN (decl) = CLASSTYPE_ALIGN (basetype);
DECL_USER_ALIGN (decl) = CLASSTYPE_USER_ALIGN (basetype);
- /* Tell the backend not to round up to TYPE_ALIGN. */
- DECL_PACKED (decl) = 1;
-
+ DECL_IGNORED_P (decl) = 1;
+
/* Try to place the field. It may take more than one try if we
have a hard time placing the field without putting two
objects of the same type at the same address. */
@@ -4048,6 +4120,9 @@ build_clone (fn, name)
if (exceptions)
TREE_TYPE (clone) = build_exception_variant (TREE_TYPE (clone),
exceptions);
+ TREE_TYPE (clone)
+ = build_type_attribute_variant (TREE_TYPE (clone),
+ TYPE_ATTRIBUTES (TREE_TYPE (fn)));
}
/* Copy the function parameters. But, DECL_ARGUMENTS on a TEMPLATE_DECL
@@ -4762,7 +4837,7 @@ end_of_class (t, include_virtuals_p)
if (!include_virtuals_p
&& TREE_VIA_VIRTUAL (binfo)
- && !BINFO_PRIMARY_P (binfo))
+ && BINFO_PRIMARY_BASE_OF (binfo) != TYPE_BINFO (t))
continue;
offset = end_of_base (binfo);
@@ -4987,12 +5062,28 @@ layout_class_type (tree t, tree *virtuals_p)
DECL_SIZE (field) = TYPE_SIZE (integer_type);
DECL_ALIGN (field) = TYPE_ALIGN (integer_type);
DECL_USER_ALIGN (field) = TYPE_USER_ALIGN (integer_type);
+ layout_nonempty_base_or_field (rli, field, NULL_TREE,
+ empty_base_offsets);
+ /* Now that layout has been performed, set the size of the
+ field to the size of its declared type; the rest of the
+ field is effectively invisible. */
+ DECL_SIZE (field) = TYPE_SIZE (type);
+ /* We must also reset the DECL_MODE of the field. */
+ if (abi_version_at_least (2))
+ DECL_MODE (field) = TYPE_MODE (type);
+ else if (warn_abi
+ && DECL_MODE (field) != TYPE_MODE (type))
+ /* Versions of G++ before G++ 3.4 did not reset the
+ DECL_MODE. */
+ warning ("the offset of `%D' may not be ABI-compliant and may "
+ "change in a future version of GCC", field);
}
else
- padding = NULL_TREE;
-
- layout_nonempty_base_or_field (rli, field, NULL_TREE,
- empty_base_offsets);
+ {
+ padding = NULL_TREE;
+ layout_nonempty_base_or_field (rli, field, NULL_TREE,
+ empty_base_offsets);
+ }
/* Remember the location of any empty classes in FIELD. */
if (abi_version_at_least (2))
@@ -5084,16 +5175,28 @@ layout_class_type (tree t, tree *virtuals_p)
}
else
{
+ tree eoc;
+
+ /* If the ABI version is not at least two, and the last
+ field was a bit-field, RLI may not be on a byte
+ boundary. In particular, rli_size_unit_so_far might
+ indicate the last complete byte, while rli_size_so_far
+ indicates the total number of bits used. Therefore,
+ rli_size_so_far, rather than rli_size_unit_so_far, is
+ used to compute TYPE_SIZE_UNIT. */
+ eoc = end_of_class (t, /*include_virtuals_p=*/0);
TYPE_SIZE_UNIT (base_t)
= size_binop (MAX_EXPR,
- rli_size_unit_so_far (rli),
- end_of_class (t, /*include_virtuals_p=*/0));
+ convert (sizetype,
+ size_binop (CEIL_DIV_EXPR,
+ rli_size_so_far (rli),
+ bitsize_int (BITS_PER_UNIT))),
+ eoc);
TYPE_SIZE (base_t)
= size_binop (MAX_EXPR,
rli_size_so_far (rli),
size_binop (MULT_EXPR,
- convert (bitsizetype,
- TYPE_SIZE_UNIT (base_t)),
+ convert (bitsizetype, eoc),
bitsize_int (BITS_PER_UNIT)));
}
TYPE_ALIGN (base_t) = rli->record_align;
@@ -5116,6 +5219,7 @@ layout_class_type (tree t, tree *virtuals_p)
/* Record the base version of the type. */
CLASSTYPE_AS_BASE (t) = base_t;
+ TYPE_CONTEXT (base_t) = t;
}
else
CLASSTYPE_AS_BASE (t) = t;
@@ -5154,6 +5258,30 @@ layout_class_type (tree t, tree *virtuals_p)
splay_tree_delete (empty_base_offsets);
}
+/* Returns the virtual function with which the vtable for TYPE is
+ emitted, or NULL_TREE if that heuristic is not applicable to TYPE. */
+
+static tree
+key_method (tree type)
+{
+ tree method;
+
+ if (TYPE_FOR_JAVA (type)
+ || processing_template_decl
+ || CLASSTYPE_TEMPLATE_INSTANTIATION (type)
+ || CLASSTYPE_INTERFACE_KNOWN (type))
+ return NULL_TREE;
+
+ for (method = TYPE_METHODS (type); method != NULL_TREE;
+ method = TREE_CHAIN (method))
+ if (DECL_VINDEX (method) != NULL_TREE
+ && ! DECL_DECLARED_INLINE_P (method)
+ && ! DECL_PURE_VIRTUAL_P (method))
+ return method;
+
+ return NULL_TREE;
+}
+
/* Perform processing required when the definition of T (a class type)
is complete. */
@@ -5195,6 +5323,17 @@ finish_struct_1 (t)
bases and members and add implicitly generated methods. */
check_bases_and_members (t);
+ /* Find the key method */
+ if (TYPE_CONTAINS_VPTR_P (t))
+ {
+ CLASSTYPE_KEY_METHOD (t) = key_method (t);
+
+ /* If a polymorphic class has no key method, we may emit the vtable
+ in every translation unit where the class definition appears. */
+ if (CLASSTYPE_KEY_METHOD (t) == NULL_TREE)
+ keyed_classes = tree_cons (NULL_TREE, t, keyed_classes);
+ }
+
/* Layout the class itself. */
layout_class_type (t, &virtuals);
@@ -5263,9 +5402,6 @@ finish_struct_1 (t)
? TARGET_VTABLE_USES_DESCRIPTORS : 1))
if (TREE_CODE (DECL_VINDEX (BV_FN (fn))) != INTEGER_CST)
DECL_VINDEX (BV_FN (fn)) = build_shared_int_cst (vindex);
-
- /* Add this class to the list of dynamic classes. */
- dynamic_classes = tree_cons (NULL_TREE, t, dynamic_classes);
}
finish_struct_bits (t);
@@ -5347,7 +5483,6 @@ unreverse_member_declarations (t)
/* The following lists are all in reverse order. Put them in
declaration order now. */
TYPE_METHODS (t) = nreverse (TYPE_METHODS (t));
- CLASSTYPE_TAGS (t) = nreverse (CLASSTYPE_TAGS (t));
CLASSTYPE_DECL_LIST (t) = nreverse (CLASSTYPE_DECL_LIST (t));
/* Actually, for the TYPE_FIELDS, only the non TYPE_DECLs are in
@@ -5517,11 +5652,21 @@ fixed_type_or_null (instance, nonnull, cdtorp)
/* Reference variables should be references to objects. */
if (nonnull)
*nonnull = 1;
-
- if (TREE_CODE (instance) == VAR_DECL
- && DECL_INITIAL (instance))
- return fixed_type_or_null (DECL_INITIAL (instance),
- nonnull, cdtorp);
+
+ /* DECL_VAR_MARKED_P is used to prevent recursion; a
+ variable's initializer may refer to the variable
+ itself. */
+ if (TREE_CODE (instance) == VAR_DECL
+ && DECL_INITIAL (instance)
+ && !DECL_VAR_MARKED_P (instance))
+ {
+ tree type;
+ DECL_VAR_MARKED_P (instance) = 1;
+ type = fixed_type_or_null (DECL_INITIAL (instance),
+ nonnull, cdtorp);
+ DECL_VAR_MARKED_P (instance) = 0;
+ return type;
+ }
}
return NULL_TREE;
@@ -5699,7 +5844,7 @@ pushclass (type, modify)
unuse_fields (type);
}
- storetags (CLASSTYPE_TAGS (type));
+ cxx_remember_type_decls (CLASSTYPE_NESTED_UDTS (type));
}
}
@@ -5884,13 +6029,13 @@ pop_lang_context ()
static tree
resolve_address_of_overloaded_function (target_type,
overload,
- complain,
+ flags,
ptrmem,
template_only,
explicit_targs)
tree target_type;
tree overload;
- int complain;
+ tsubst_flags_t flags;
int ptrmem;
int template_only;
tree explicit_targs;
@@ -5954,7 +6099,7 @@ resolve_address_of_overloaded_function (target_type,
}
else
{
- if (complain)
+ if (flags & tf_error)
error ("\
cannot resolve overloaded function `%D' based on conversion to type `%T'",
DECL_NAME (OVL_FUNCTION (overload)), target_type);
@@ -5983,7 +6128,11 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'",
/* We're looking for a non-static member, and this isn't
one, or vice versa. */
continue;
-
+
+ /* Ignore anticipated decls of undeclared builtins. */
+ if (DECL_ANTICIPATED (fn))
+ continue;
+
/* See if there's a match. */
fntype = TREE_TYPE (fn);
if (is_ptrmem)
@@ -6074,7 +6223,7 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'",
if (matches == NULL_TREE)
{
/* There were *no* matches. */
- if (complain)
+ if (flags & tf_error)
{
error ("no matches converting function `%D' to type `%#T'",
DECL_NAME (OVL_FUNCTION (overload)),
@@ -6095,7 +6244,7 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'",
{
/* There were too many matches. */
- if (complain)
+ if (flags & tf_error)
{
tree match;
@@ -6122,7 +6271,7 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'",
{
static int explained;
- if (!complain)
+ if (!(flags & tf_error))
return error_mark_node;
pedwarn ("assuming pointer to member `%D'", fn);
@@ -6132,7 +6281,13 @@ cannot resolve overloaded function `%D' based on conversion to type `%T'",
explained = 1;
}
}
- mark_used (fn);
+
+ /* If we're doing overload resolution purely for the purpose of
+ determining conversion sequences, we should not consider the
+ function used. If this conversion sequence is selected, the
+ function will be marked as used at this point. */
+ if (!(flags & tf_conv))
+ mark_used (fn);
if (TYPE_PTRFN_P (target_type) || TYPE_PTRMEMFUNC_P (target_type))
return build_unary_op (ADDR_EXPR, fn, 0);
@@ -6162,6 +6317,7 @@ instantiate_type (lhstype, rhs, flags)
tree lhstype, rhs;
tsubst_flags_t flags;
{
+ tsubst_flags_t flags_in = flags;
int complain = (flags & tf_error);
int strict = (flags & tf_no_attributes)
? COMPARE_NO_ATTRIBUTES : COMPARE_STRICT;
@@ -6252,7 +6408,7 @@ instantiate_type (lhstype, rhs, flags)
return
resolve_address_of_overloaded_function (lhstype,
fns,
- complain,
+ flags_in,
allow_ptrmem,
/*template_only=*/1,
args);
@@ -6262,7 +6418,7 @@ instantiate_type (lhstype, rhs, flags)
return
resolve_address_of_overloaded_function (lhstype,
rhs,
- complain,
+ flags_in,
allow_ptrmem,
/*template_only=*/0,
/*explicit_targs=*/NULL_TREE);
@@ -6454,6 +6610,7 @@ build_self_reference ()
DECL_NONLOCAL (value) = 1;
DECL_CONTEXT (value) = current_class_type;
DECL_ARTIFICIAL (value) = 1;
+ SET_DECL_SELF_REFERENCE_P (value);
if (processing_template_decl)
value = push_template_decl (value);
@@ -6567,7 +6724,7 @@ maybe_note_name_used_in_class (name, decl)
splay_tree names_used;
/* If we're not defining a class, there's nothing to do. */
- if (!current_class_type || !TYPE_BEING_DEFINED (current_class_type))
+ if (!innermost_scope_is_class_p ())
return;
/* If there's already a binding for this NAME, then we don't have
@@ -8170,22 +8327,20 @@ build_rtti_vtbl_entries (binfo, vid)
/* The second entry is the address of the typeinfo object. */
if (flag_rtti)
- decl = build_unary_op (ADDR_EXPR, get_tinfo_decl (t), 0);
+ decl = build_address (get_tinfo_decl (t));
else
decl = integer_zero_node;
/* Convert the declaration to a type that can be stored in the
vtable. */
- init = build1 (NOP_EXPR, vfunc_ptr_type_node, decl);
- TREE_CONSTANT (init) = 1;
+ init = build_nop (vfunc_ptr_type_node, decl);
*vid->last_init = build_tree_list (NULL_TREE, init);
vid->last_init = &TREE_CHAIN (*vid->last_init);
/* Add the offset-to-top entry. It comes earlier in the vtable that
the the typeinfo entry. Convert the offset to look like a
function pointer, so that we can put it in the vtable. */
- init = build1 (NOP_EXPR, vfunc_ptr_type_node, offset);
- TREE_CONSTANT (init) = 1;
+ init = build_nop (vfunc_ptr_type_node, offset);
*vid->last_init = build_tree_list (NULL_TREE, init);
vid->last_init = &TREE_CHAIN (*vid->last_init);
}
diff --git a/gcc/cp/config-lang.in b/gcc/cp/config-lang.in
index eeebb1aac57..b8feb03ec30 100644
--- a/gcc/cp/config-lang.in
+++ b/gcc/cp/config-lang.in
@@ -34,4 +34,4 @@ stagestuff="g++\$(exeext) g++-cross\$(exeext) cc1plus\$(exeext)"
target_libs="${libstdcxx_version} target-gperf"
-gtfiles="\$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/lex.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/parse.y \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/spew.c \$(srcdir)/cp/tree.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-pragma.c"
+gtfiles="\$(srcdir)/cp/mangle.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/lex.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/parse.y \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/spew.c \$(srcdir)/cp/tree.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-pragma.c"
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index a7f2d85966e..5eb2010ffd8 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -90,6 +90,9 @@ static bool cp_var_mod_type_p PARAMS ((tree));
#define LANG_HOOKS_PRINT_ERROR_FUNCTION cxx_print_error_function
#undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL cxx_warn_unused_global_decl
+#undef LANG_HOOKS_WRITE_GLOBALS
+#define LANG_HOOKS_WRITE_GLOBALS lhd_do_nothing
+
#undef LANG_HOOKS_FUNCTION_INIT
#define LANG_HOOKS_FUNCTION_INIT cxx_push_function_context
@@ -126,10 +129,6 @@ static bool cp_var_mod_type_p PARAMS ((tree));
#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
-#define LANG_HOOKS_TREE_INLINING_END_INLINING cp_end_inlining
#undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN
#define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN cp_dump_tree
#undef LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN
@@ -259,8 +258,13 @@ static HOST_WIDE_INT
cxx_get_alias_set (t)
tree t;
{
- /* It's not yet safe to use alias sets for classes in C++. */
- if (!ok_to_generate_alias_set_for_type(t))
+ if (/* It's not yet safe to use alias sets for some classes in C++. */
+ !ok_to_generate_alias_set_for_type (t)
+ /* Nor is it safe to use alias sets for pointers-to-member
+ functions, due to the fact that there may be more than one
+ RECORD_TYPE type corresponding to the same pointer-to-member
+ type. */
+ || TYPE_PTRMEMFUNC_P (t))
return 0;
return c_common_get_alias_set (t);
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 1aae797a4c2..cee19abec99 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -218,11 +218,6 @@ DEFTREECODE (DEFAULT_ARG, "default_arg", 'x', 2)
the template may be a LOOKUP_EXPR. */
DEFTREECODE (TEMPLATE_ID_EXPR, "template_id_expr", 'e', 2)
-/* An association between name and entity. Parameters are the scope
- and the (non-type) value. TREE_TYPE indicates the type bound to
- the name. */
-DEFTREECODE (CPLUS_BINDING, "binding", 'x', 2)
-
/* A list-like node for chaining overloading candidates. TREE_TYPE is
the original name, and the parameter is the FUNCTION_DECL. */
DEFTREECODE (OVERLOAD, "overload", 'x', 1)
@@ -267,7 +262,13 @@ DEFTREECODE (MUST_NOT_THROW_EXPR, "must_not_throw_expr", 'e', 1)
DEFTREECODE (TAG_DEFN, "tag_defn", 'e', 0)
-/* And some codes for expressing conversions for overload resolution. */
+/* The following codes are used to represent implicit conversion
+ sequences, in the sense of [over.best.ics]. The conversion
+ sequences are connected through their first operands, with the
+ first conversion to be performed at the end of the chain.
+
+ The innermost conversion (i.e, the one at the end of the chain) is
+ always an IDENTITY_CONV, corresponding to the identity conversion. */
DEFTREECODE (IDENTITY_CONV, "identity_conv", 'e', 1)
DEFTREECODE (LVALUE_CONV, "lvalue_conv", 'e', 1)
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 3b50ffec48a..b97520baeca 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -1,6 +1,6 @@
/* Definitions for C++ parsing and type checking.
Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -43,7 +43,6 @@ struct diagnostic_context;
DELETE_EXPR_USE_GLOBAL (in DELETE_EXPR).
LOOKUP_EXPR_GLOBAL (in LOOKUP_EXPR).
TREE_INDIRECT_USING (in NAMESPACE_DECL).
- LOCAL_BINDING_P (in CPLUS_BINDING)
ICS_USER_FLAG (in _CONV)
CLEANUP_P (in TRY_BLOCK)
AGGR_INIT_VIA_CTOR_P (in AGGR_INIT_EXPR)
@@ -55,14 +54,12 @@ struct diagnostic_context;
DELETE_EXPR_USE_VEC (in DELETE_EXPR).
(TREE_CALLS_NEW) (in _EXPR or _REF) (commented-out).
TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P (in _TYPE).
- INHERITED_VALUE_BINDING_P (in CPLUS_BINDING)
ICS_ELLIPSIS_FLAG (in _CONV)
BINFO_ACCESS (in BINFO)
DECL_INITIALIZED_P (in VAR_DECL)
2: IDENTIFIER_OPNAME_P.
TYPE_POLYMORPHIC_P (in _TYPE)
ICS_THIS_FLAG (in _CONV)
- BINDING_HAS_LEVEL_P (in CPLUS_BINDING)
BINFO_LOST_PRIMARY_P (in BINFO)
TREE_PARMLIST (in TREE_LIST)
3: TYPE_USES_VIRTUAL_BASECLASSES (in a class TYPE).
@@ -100,7 +97,8 @@ struct diagnostic_context;
DECL_IMPLICIT_TYPEDEF_P (in a TYPE_DECL)
3: DECL_IN_AGGR_P.
4: DECL_C_BIT_FIELD (in a FIELD_DECL)
- DECL_MAYBE_TEMPLATE (in a FUNCTION_DECL)
+ DECL_VAR_MARKED_P (in a VAR_DECL)
+ DECL_SELF_REFERENCE_P (in a TYPE_DECL)
5: DECL_INTERFACE_KNOWN.
6: DECL_THIS_STATIC (in VAR_DECL or FUNCTION_DECL).
7: DECL_DEAD_FOR_LOCAL (in VAR_DECL).
@@ -221,13 +219,63 @@ struct diagnostic_context;
(flag_abi_version == 0 || flag_abi_version >= (N))
+/* Datatype used to temporarily save C++ bindings (for implicit
+ instantiations purposes and like). Implemented in decl.c. */
+typedef struct cxx_saved_binding cxx_saved_binding;
+
+/* Datatype that represents binding established by a declaration between
+ a name and a C++ entity. */
+typedef struct cxx_binding cxx_binding;
+
+/* (GC-)allocate a cxx_binding object. */
+#define cxx_binding_make() (ggc_alloc (sizeof (cxx_binding)))
+
+/* Zero out a cxx_binding pointed to by B. */
+#define cxx_binding_clear(B) memset ((B), 0, sizeof (cxx_binding))
+
+struct cxx_binding GTY(())
+{
+ /* Link to chain together various bindings for this name. */
+ cxx_binding *previous;
+ /* The non-type entity this name is bound to. */
+ tree value;
+ /* The type entity this name is bound to. */
+ tree type;
+ union tree_binding_u {
+ tree GTY ((tag ("0"))) scope;
+ struct cp_binding_level * GTY ((tag ("1"))) level;
+ } GTY ((desc ("%0.has_level"))) scope;
+ unsigned has_level : 1;
+ unsigned value_is_inherited : 1;
+ unsigned is_local : 1;
+};
+
+/* The type of dictionary used to map names to types declared at
+ a given scope. */
+typedef struct binding_table_s *binding_table;
+typedef struct binding_entry_s *binding_entry;
+
+/* The type of a routine repeatedly called by binding_table_foreach. */
+typedef void (*bt_foreach_proc) (binding_entry, void *);
+
+struct binding_entry_s GTY(())
+{
+ binding_entry chain;
+ tree name;
+ tree type;
+};
+
+extern void binding_table_foreach (binding_table, bt_foreach_proc, void *);
+extern binding_entry binding_table_find (binding_table, tree);
+extern void cxx_remember_type_decls (binding_table);
+
/* Language-dependent contents of an identifier. */
struct lang_identifier GTY(())
{
struct c_common_identifier c_common;
- tree namespace_bindings;
- tree bindings;
+ cxx_binding *namespace_bindings;
+ cxx_binding *bindings;
tree class_value;
tree class_template_info;
struct lang_id2 *x;
@@ -280,30 +328,28 @@ typedef struct ptrmem_cst * ptrmem_cst_t;
/* Nonzero if this binding is for a local scope, as opposed to a class
or namespace scope. */
-#define LOCAL_BINDING_P(NODE) TREE_LANG_FLAG_0 (NODE)
+#define LOCAL_BINDING_P(NODE) ((NODE)->is_local)
/* Nonzero if BINDING_VALUE is from a base class of the class which is
currently being defined. */
-#define INHERITED_VALUE_BINDING_P(NODE) TREE_LANG_FLAG_1 (NODE)
+#define INHERITED_VALUE_BINDING_P(NODE) ((NODE)->value_is_inherited)
/* For a binding between a name and an entity at a non-local scope,
defines the scope where the binding is declared. (Either a class
_TYPE node, or a NAMESPACE_DECL.) This macro should be used only
for namespace-level bindings; on the IDENTIFIER_BINDING list
BINDING_LEVEL is used instead. */
-#define BINDING_SCOPE(NODE) \
- (((struct tree_binding*)CPLUS_BINDING_CHECK (NODE))->scope.scope)
+#define BINDING_SCOPE(NODE) ((NODE)->scope.scope)
/* Nonzero if NODE has BINDING_LEVEL, rather than BINDING_SCOPE. */
-#define BINDING_HAS_LEVEL_P(NODE) TREE_LANG_FLAG_2 (NODE)
+#define BINDING_HAS_LEVEL_P(NODE) ((NODE)->has_level)
/* This is the declaration bound to the name. Possible values:
variable, overloaded function, namespace, template, enumerator. */
-#define BINDING_VALUE(NODE) \
- (((struct tree_binding*)CPLUS_BINDING_CHECK (NODE))->value)
+#define BINDING_VALUE(NODE) ((NODE)->value)
/* If name is bound to a type, this is the type (struct, union, enum). */
-#define BINDING_TYPE(NODE) TREE_TYPE (NODE)
+#define BINDING_TYPE(NODE) ((NODE)->type)
#define IDENTIFIER_GLOBAL_VALUE(NODE) \
namespace_binding ((NODE), global_namespace)
@@ -337,17 +383,6 @@ typedef struct ptrmem_cst * ptrmem_cst_t;
&& DECL_NAME (NODE) != NULL_TREE \
&& MAIN_NAME_P (DECL_NAME (NODE)))
-
-struct tree_binding GTY(())
-{
- struct tree_common common;
- union tree_binding_u {
- tree GTY ((tag ("0"))) scope;
- struct cp_binding_level * GTY ((tag ("1"))) level;
- } GTY ((desc ("BINDING_HAS_LEVEL_P ((tree)&%0)"))) scope;
- tree value;
-};
-
/* The overloaded FUNCTION_DECL. */
#define OVL_FUNCTION(NODE) \
(((struct tree_overload*)OVERLOAD_CHECK (NODE))->function)
@@ -415,8 +450,8 @@ struct tree_srcloc GTY(())
#define IDENTIFIER_TEMPLATE(NODE) \
(LANG_IDENTIFIER_CAST (NODE)->class_template_info)
-/* The IDENTIFIER_BINDING is the innermost CPLUS_BINDING for the
- identifier. It's TREE_CHAIN is the next outermost binding. Each
+/* The IDENTIFIER_BINDING is the innermost cxx_binding for the
+ identifier. It's PREVIOUS is the next outermost binding. Each
BINDING_VALUE is a DECL for the associated declaration. Thus,
name lookup consists simply of pulling off the node at the front
of the list (modulo oddities for looking up the names of types,
@@ -428,9 +463,7 @@ struct tree_srcloc GTY(())
/* The IDENTIFIER_VALUE is the value of the IDENTIFIER_BINDING, or
NULL_TREE if there is no binding. */
#define IDENTIFIER_VALUE(NODE) \
- (IDENTIFIER_BINDING (NODE) \
- ? BINDING_VALUE (IDENTIFIER_BINDING (NODE)) \
- : NULL_TREE)
+ (IDENTIFIER_BINDING (NODE) ? BINDING_VALUE (IDENTIFIER_BINDING (NODE)) : 0)
/* If IDENTIFIER_CLASS_VALUE is set, then NODE is bound in the current
class, and IDENTIFIER_CLASS_VALUE is the value binding. This is
@@ -505,7 +538,6 @@ enum cp_tree_node_structure_enum {
TS_CP_IDENTIFIER,
TS_CP_TPI,
TS_CP_PTRMEM,
- TS_CP_BINDING,
TS_CP_OVERLOAD,
TS_CP_WRAPPER,
TS_CP_SRCLOC,
@@ -521,7 +553,6 @@ union lang_tree_node GTY((desc ("cp_tree_node_structure (&%h)"),
desc ("tree_node_structure (&%h)"))) generic;
struct template_parm_index_s GTY ((tag ("TS_CP_TPI"))) tpi;
struct ptrmem_cst GTY ((tag ("TS_CP_PTRMEM"))) ptrmem;
- struct tree_binding GTY ((tag ("TS_CP_BINDING"))) binding;
struct tree_overload GTY ((tag ("TS_CP_OVERLOAD"))) overload;
struct tree_wrapper GTY ((tag ("TS_CP_WRAPPER"))) wrapper;
struct tree_srcloc GTY ((tag ("TS_CP_SRCLOC"))) srcloc;
@@ -612,7 +643,7 @@ enum cp_tree_index
CPTI_DSO_HANDLE,
CPTI_DCAST,
- CPTI_DYNAMIC_CLASSES,
+ CPTI_KEYED_CLASSES,
CPTI_MAX
};
@@ -744,15 +775,16 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX];
destructors. */
#define vtt_parm_type cp_global_trees[CPTI_VTT_PARM_TYPE]
-/* A TREE_LIST of all of the dynamic classes in the program. */
+/* A TREE_LIST of the dynamic classes whose vtables may have to be
+ emitted in this translation unit. */
-#define dynamic_classes cp_global_trees[CPTI_DYNAMIC_CLASSES]
+#define keyed_classes cp_global_trees[CPTI_KEYED_CLASSES]
/* Global state. */
struct saved_scope GTY(())
{
- tree old_bindings;
+ cxx_saved_binding *old_bindings;
tree old_namespace;
tree decl_ns_list;
tree class_name;
@@ -855,8 +887,12 @@ struct language_function GTY(())
int returns_null;
int returns_abnormally;
int in_function_try_handler;
+ int in_base_initializer;
int x_expanding_p;
+ /* True if this function can throw an exception. */
+ bool can_throw : 1;
+
struct named_label_use_list *x_named_label_uses;
struct named_label_list *x_named_labels;
struct cp_binding_level *bindings;
@@ -926,6 +962,9 @@ struct language_function GTY(())
#define doing_semantic_analysis_p() (!expanding_p)
+/* Non-zero if we are processing a base initializer. Zero elsewhere. */
+#define in_base_initializer cp_function_chain->in_base_initializer
+
#define in_function_try_handler cp_function_chain->in_function_try_handler
/* Expression always returned from function, or error_mark_node
@@ -941,6 +980,12 @@ extern GTY(()) tree global_namespace;
#define ansi_assopname(CODE) \
(assignment_operator_name_info[(int) (CODE)].identifier)
+/* True if NODE is an erroneous expression. */
+
+#define error_operand_p(NODE) \
+ ((NODE) == error_mark_node \
+ || ((NODE) && TREE_TYPE ((NODE)) == error_mark_node))
+
/* INTERFACE_ONLY nonzero means that we are in an "interface"
section of the compiler. INTERFACE_UNKNOWN nonzero means
we cannot trust the value of INTERFACE_ONLY. If INTERFACE_UNKNOWN
@@ -1054,18 +1099,19 @@ enum languages { lang_c, lang_cplusplus, lang_java };
/* Nonzero iff TYPE is derived from PARENT. Ignores accessibility and
ambiguity issues. */
#define DERIVED_FROM_P(PARENT, TYPE) \
- lookup_base ((TYPE), PARENT, ba_any, NULL)
+ (lookup_base ((TYPE), PARENT, ba_any, NULL) != NULL_TREE)
/* Nonzero iff TYPE is uniquely derived from PARENT. Ignores
accessibility. */
#define UNIQUELY_DERIVED_FROM_P(PARENT, TYPE) \
- lookup_base ((TYPE), (PARENT), ba_ignore | ba_quiet, NULL)
+ (lookup_base ((TYPE), (PARENT), ba_ignore | ba_quiet, NULL) != NULL_TREE)
/* Nonzero iff TYPE is accessible in the current scope and uniquely
derived from PARENT. */
#define ACCESSIBLY_UNIQUELY_DERIVED_P(PARENT, TYPE) \
- lookup_base ((TYPE), (PARENT), ba_check | ba_quiet, NULL)
+ (lookup_base ((TYPE), (PARENT), ba_check | ba_quiet, NULL) != NULL_TREE)
/* Nonzero iff TYPE is publicly & uniquely derived from PARENT. */
#define PUBLICLY_UNIQUELY_DERIVED_P(PARENT, TYPE) \
- lookup_base ((TYPE), (PARENT), ba_not_special | ba_quiet, NULL)
+ (lookup_base ((TYPE), (PARENT), ba_not_special | ba_quiet, NULL) \
+ != NULL_TREE)
/* This is a few header flags for 'struct lang_type'. Actually,
all but the first are used only for lang_type_class; they
@@ -1159,11 +1205,12 @@ struct lang_type_class GTY(())
tree vtables;
tree typeinfo_var;
tree vbases;
- tree tags;
+ binding_table nested_udts;
tree as_base;
tree pure_virtuals;
tree friend_classes;
tree methods;
+ tree key_method;
tree decl_list;
tree template_info;
tree befriending_classes;
@@ -1284,6 +1331,11 @@ struct lang_type GTY(())
hierarchy, then we can use more efficient search techniques. */
#define TYPE_USES_VIRTUAL_BASECLASSES(NODE) (TREE_LANG_FLAG_3 (NODE))
+/* The member function with which the vtable will be emitted:
+ the first noninline non-pure-virtual member function. NULL_TREE
+ if there is no key function or if this is a class template */
+#define CLASSTYPE_KEY_METHOD(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->key_method)
+
/* Vector member functions defined in this class. Each element is
either a FUNCTION_DECL, a TEMPLATE_DECL, or an OVERLOAD. All
functions with the same name end up in the same slot. The first
@@ -1365,11 +1417,12 @@ struct lang_type GTY(())
#define SET_CLASSTYPE_MARKED6(NODE) SET_CLASSTYPE_MARKED_N (NODE, 5)
#define CLEAR_CLASSTYPE_MARKED6(NODE) CLEAR_CLASSTYPE_MARKED_N (NODE, 5)
-/* A list of the nested tag-types (class, struct, union, or enum)
- found within this class. The TREE_PURPOSE of each node is the name
- of the type; the TREE_VALUE is the type itself. This list includes
+/* A binding_table of the nested tag-types (class, struct, union, or enum)
+ found within this class. The ENTRY->name of each node is the name
+ of the type; the ENTRY->type is the type itself. This table includes
nested member class templates. */
-#define CLASSTYPE_TAGS(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->tags)
+#define CLASSTYPE_NESTED_UDTS(NODE) \
+ (LANG_TYPE_CLASS_CHECK (NODE)->nested_udts)
/* Nonzero if NODE has a primary base class, i.e., a base class with
which it shares the virtual function table pointer. */
@@ -1952,6 +2005,11 @@ struct lang_decl GTY(())
#define DECL_CONV_FN_P(NODE) \
(IDENTIFIER_TYPENAME_P (DECL_NAME (NODE)))
+/* If FN is a conversion operator, the type to which it converts.
+ Otherwise, NULL_TREE. */
+#define DECL_CONV_FN_TYPE(FN) \
+ (DECL_CONV_FN_P (FN) ? TREE_TYPE (DECL_NAME (FN)) : NULL_TREE)
+
/* Nonzero if NODE, which is a TEMPLATE_DECL, is a template
conversion operator to a type dependent on the innermost template
args. */
@@ -2000,7 +2058,8 @@ struct lang_decl GTY(())
(TREE_LANG_FLAG_1 (VAR_DECL_CHECK (NODE)))
/* Nonzero if the DECL was initialized in the class definition itself,
- rather than outside the class. */
+ rather than outside the class. This is used for both static member
+ VAR_DECLS, and FUNTION_DECLS that are defined in the class. */
#define DECL_INITIALIZED_IN_CLASS_P(DECL) \
(DECL_LANG_SPECIFIC (DECL)->decl_flags.initialized_in_class)
@@ -2203,6 +2262,12 @@ struct lang_decl GTY(())
(DECL_LANG_SPECIFIC (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK (NODE)) \
->decl_flags.u.template_info)
+/* For a VAR_DECL, indicates that the variable has been processed.
+ This flag is set and unset throughout the code; it is always
+ used for a temporary purpose. */
+#define DECL_VAR_MARKED_P(NODE) \
+ (DECL_LANG_FLAG_4 (VAR_DECL_CHECK (NODE)))
+
/* Template information for a RECORD_TYPE or UNION_TYPE. */
#define CLASSTYPE_TEMPLATE_INFO(NODE) \
(LANG_TYPE_CLASS_CHECK (RECORD_OR_UNION_TYPE_CHECK (NODE))->template_info)
@@ -2455,6 +2520,10 @@ struct lang_decl GTY(())
(TREE_CODE (TYPE) == BOOLEAN_TYPE \
|| TREE_CODE (TYPE) == INTEGER_TYPE)
+/* Returns true if TYPE is an integral or enumeration name. */
+#define INTEGRAL_OR_ENUMERATION_TYPE_P(TYPE) \
+ (CP_INTEGRAL_TYPE_P (TYPE) || TREE_CODE (TYPE) == ENUMERAL_TYPE)
+
/* [basic.fundamental]
Integral and floating types are collectively called arithmetic
@@ -2477,9 +2546,12 @@ struct lang_decl GTY(())
An aggregate is an array or a class with no user-declared
constructors, no private or protected non-static data members, no
- base classes, and no virtual functions. */
+ base classes, and no virtual functions.
+
+ As an extension, we also treat vectors as aggregates. */
#define CP_AGGREGATE_TYPE_P(TYPE) \
(TREE_CODE (TYPE) == ARRAY_TYPE \
+ || TREE_CODE (TYPE) == VECTOR_TYPE \
|| (CLASS_TYPE_P (TYPE) \
&& !CLASSTYPE_NON_AGGREGATE (TYPE)))
@@ -2810,16 +2882,20 @@ struct lang_decl GTY(())
(TREE_CODE (NODE) == TYPE_DECL || DECL_CLASS_TEMPLATE_P (NODE))
/* Nonzero if NODE is the typedef implicitly generated for a type when
- the type is declared. (In C++, `struct S {};' is roughly equivalent
- to `struct S {}; typedef struct S S;' in C. This macro will hold
- for the typedef indicated in this example. Note that in C++, there
- is a second implicit typedef for each class, in the scope of `S'
- itself, so that you can say `S::S'. This macro does *not* hold for
- those typedefs. */
+ the type is declared. In C++, `struct S {};' is roughly
+ equivalent to `struct S {}; typedef struct S S;' in C.
+ DECL_IMPLICIT_TYPEDEF_P will hold for the typedef indicated in this
+ example. In C++, there is a second implicit typedef for each
+ class, in the scope of `S' itself, so that you can say `S::S'.
+ DECL_SELF_REFERENCE_P will hold for that second typedef. */
#define DECL_IMPLICIT_TYPEDEF_P(NODE) \
(TREE_CODE (NODE) == TYPE_DECL && DECL_LANG_FLAG_2 (NODE))
#define SET_DECL_IMPLICIT_TYPEDEF_P(NODE) \
(DECL_LANG_FLAG_2 (NODE) = 1)
+#define DECL_SELF_REFERENCE_P(NODE) \
+ (TREE_CODE (NODE) == TYPE_DECL && DECL_LANG_FLAG_4 (NODE))
+#define SET_DECL_SELF_REFERENCE_P(NODE) \
+ (DECL_LANG_FLAG_4 (NODE) = 1)
/* A `primary' template is one that has its own template header. A
member function of a class template is a template, but not primary.
@@ -2888,10 +2964,7 @@ struct lang_decl GTY(())
entity with its own template parameter list, and which is not a
full specialization. */
#define PROCESSING_REAL_TEMPLATE_DECL_P() \
- (processing_template_decl > template_class_depth (current_class_type))
-
-/* This function may be a guiding decl for a template. */
-#define DECL_MAYBE_TEMPLATE(NODE) DECL_LANG_FLAG_4 (NODE)
+ (processing_template_decl > template_class_depth (current_scope ()))
/* Nonzero if this VAR_DECL or FUNCTION_DECL has already been
instantiated, i.e. its definition has been generated from the
@@ -3079,8 +3152,12 @@ typedef enum tsubst_flags_t {
(make_typename_type use) */
tf_ptrmem_ok = 1 << 5, /* pointers to member ok (internal
instantiate_type use) */
- tf_parsing = 1 << 6 /* called from parser
+ tf_parsing = 1 << 6, /* called from parser
(make_typename_type use) */
+ tf_conv = 1 << 8, /* We are determining what kind of
+ conversion might be permissible, not
+ actually performing the
+ conversion. */
} tsubst_flags_t;
/* The kind of checking we can do looking in a class hierarchy. */
@@ -3290,6 +3367,12 @@ extern GTY(()) varray_type local_classes;
extern int at_eof;
+/* A list of namespace-scope objects which have constructors or
+ destructors which reside in the global scope. The decl is stored
+ in the TREE_VALUE slot and the initializer is stored in the
+ TREE_PURPOSE slot. */
+extern GTY(()) tree static_aggregates;
+
/* Functions called along with real static constructors and destructors. */
extern GTY(()) tree static_ctors;
@@ -3403,7 +3486,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG };
type is derived from the pointed to
by the first. */
#define COMPARE_RELAXED 2 /* Like COMPARE_DERIVED, but in
- reverse. Also treat enmeration
+ reverse. Also treat enumeration
types as the same as integer types
of the same width. */
#define COMPARE_REDECLARATION 4 /* The comparsion is being done when
@@ -3468,7 +3551,8 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG };
TFF_TEMPLATE_HEADER: show the template<...> header in a
template-declaration.
TFF_TEMPLATE_NAME: show only template-name.
- TFF_EXPR_IN_PARENS: Parenthesize expressions. */
+ TFF_EXPR_IN_PARENS: parenthesize expressions.
+ TFF_NO_FUNCTION_ARGUMENTS: don't show function arguments. */
#define TFF_PLAIN_IDENTIFIER (0)
#define TFF_SCOPE (1)
@@ -3481,6 +3565,7 @@ enum overload_flags { NO_SPECIAL = 0, DTOR_FLAG, OP_FLAG, TYPENAME_FLAG };
#define TFF_TEMPLATE_HEADER (1 << 7)
#define TFF_TEMPLATE_NAME (1 << 8)
#define TFF_EXPR_IN_PARENS (1 << 9)
+#define TFF_NO_FUNCTION_ARGUMENTS (1 << 10)
/* Returns the TEMPLATE_DECL associated to a TEMPLATE_TEMPLATE_PARM
node. */
@@ -3528,6 +3613,7 @@ extern tree build_method_call PARAMS ((tree, tree, tree, tree, int));
extern int null_ptr_cst_p PARAMS ((tree));
extern int sufficient_parms_p PARAMS ((tree));
extern tree type_decays_to PARAMS ((tree));
+extern tree resolve_scoped_fn_name PARAMS ((tree, tree));
extern tree build_user_type_conversion PARAMS ((tree, tree, int));
extern tree build_new_function_call PARAMS ((tree, tree));
extern tree build_new_method_call (tree, tree, tree, tree, int);
@@ -3546,13 +3632,16 @@ extern tree type_passed_as PARAMS ((tree));
extern tree convert_for_arg_passing PARAMS ((tree, tree));
extern tree cp_convert_parm_for_inlining PARAMS ((tree, tree, tree));
extern int is_properly_derived_from PARAMS ((tree, tree));
-extern tree initialize_reference PARAMS ((tree, tree));
+extern tree initialize_reference PARAMS ((tree, tree, tree, tree *));
+extern tree make_temporary_var_for_ref_to_temp (tree, tree);
extern tree strip_top_quals PARAMS ((tree));
extern tree perform_implicit_conversion PARAMS ((tree, tree));
+extern tree perform_direct_initialization_if_possible (tree, tree);
/* in class.c */
extern tree build_base_path PARAMS ((enum tree_code, tree, tree, int));
extern tree convert_to_base (tree, tree, bool);
+extern tree convert_to_base_statically (tree, tree);
extern tree build_vtbl_ref PARAMS ((tree, tree));
extern tree build_vfn_ref PARAMS ((tree, tree));
extern tree get_vtable_decl PARAMS ((tree, int));
@@ -3593,6 +3682,7 @@ extern void maybe_note_name_used_in_class PARAMS ((tree, tree));
extern void note_name_declared_in_class PARAMS ((tree, tree));
extern tree get_vtbl_decl_for_binfo PARAMS ((tree));
extern tree in_charge_arg_for_name PARAMS ((tree));
+extern tree build_cxx_call PARAMS ((tree, tree, tree));
extern tree get_vtt_name PARAMS ((tree));
extern tree get_primary_binfo PARAMS ((tree));
@@ -3600,11 +3690,12 @@ extern tree get_primary_binfo PARAMS ((tree));
extern tree convert_to_reference PARAMS ((tree, tree, int, int, tree));
extern tree convert_from_reference PARAMS ((tree));
extern tree convert_lvalue PARAMS ((tree, tree));
+extern tree force_rvalue PARAMS ((tree));
extern tree ocp_convert PARAMS ((tree, tree, int, int));
extern tree cp_convert PARAMS ((tree, tree));
extern tree convert_to_void PARAMS ((tree, const char */*implicit context*/));
extern tree convert_force PARAMS ((tree, tree, int));
-extern tree build_type_conversion PARAMS ((tree, tree, int));
+extern tree build_type_conversion PARAMS ((tree, tree));
extern tree build_expr_type_conversion PARAMS ((int, tree, int));
extern tree type_promotes_to PARAMS ((tree));
extern tree perform_qualification_conversions PARAMS ((tree, tree));
@@ -3614,6 +3705,7 @@ extern void adjust_clone_args PARAMS ((tree));
/* decl.c */
extern int global_bindings_p PARAMS ((void));
extern int kept_level_p PARAMS ((void));
+extern bool innermost_scope_is_class_p (void);
extern tree getdecls PARAMS ((void));
extern void pushlevel PARAMS ((int));
extern tree poplevel PARAMS ((int,int, int));
@@ -3664,23 +3756,24 @@ extern void clear_anon_tags PARAMS ((void));
extern int decls_match PARAMS ((tree, tree));
extern int duplicate_decls PARAMS ((tree, tree));
extern tree pushdecl_top_level PARAMS ((tree));
-extern void pushdecl_class_level PARAMS ((tree));
+extern tree pushdecl_top_level_and_finish (tree, tree);
+extern bool pushdecl_class_level (tree);
extern tree pushdecl_namespace_level PARAMS ((tree));
extern tree push_using_decl PARAMS ((tree, tree));
extern tree push_using_directive PARAMS ((tree));
-extern void push_class_level_binding PARAMS ((tree, tree));
+extern bool push_class_level_binding (tree, tree);
extern tree implicitly_declare PARAMS ((tree));
extern tree declare_local_label PARAMS ((tree));
extern tree define_label PARAMS ((const char *, int, tree));
extern void check_goto PARAMS ((tree));
extern void define_case_label PARAMS ((void));
-extern tree binding_for_name PARAMS ((tree, tree));
+extern cxx_binding *binding_for_name (tree, tree);
extern tree namespace_binding PARAMS ((tree, tree));
extern void set_namespace_binding PARAMS ((tree, tree, tree));
extern tree lookup_namespace_name PARAMS ((tree, tree));
extern tree build_typename_type PARAMS ((tree, tree, tree, tree));
extern tree make_typename_type PARAMS ((tree, tree, tsubst_flags_t));
-extern tree make_unbound_class_template PARAMS ((tree, tree, int));
+extern tree make_unbound_class_template PARAMS ((tree, tree, tsubst_flags_t));
extern tree lookup_name_nonclass PARAMS ((tree));
extern tree lookup_function_nonclass PARAMS ((tree, tree));
extern tree lookup_name PARAMS ((tree, int));
@@ -3690,10 +3783,11 @@ extern tree lookup_name_namespace_only PARAMS ((tree));
extern void begin_only_namespace_names PARAMS ((void));
extern void end_only_namespace_names PARAMS ((void));
extern tree namespace_ancestor PARAMS ((tree, tree));
+extern bool is_ancestor (tree, tree);
extern tree unqualified_namespace_lookup PARAMS ((tree, int, tree *));
extern tree check_for_out_of_scope_variable (tree);
-extern int lookup_using_namespace PARAMS ((tree, tree, tree, tree, int, tree *));
-extern int qualified_lookup_using_namespace PARAMS ((tree, tree, tree, int));
+extern bool lookup_using_namespace (tree, cxx_binding *, tree, tree, int, tree *);
+extern bool qualified_lookup_using_namespace (tree, tree, cxx_binding *, int);
extern tree build_library_fn PARAMS ((tree, tree));
extern tree build_library_fn_ptr PARAMS ((const char *, tree));
extern tree build_cp_library_fn_ptr PARAMS ((const char *, tree));
@@ -3769,6 +3863,7 @@ extern int nonstatic_local_decl_p PARAMS ((tree));
extern tree declare_global_var PARAMS ((tree, tree));
extern void register_dtor_fn PARAMS ((tree));
extern tmpl_spec_kind current_tmpl_spec_kind PARAMS ((int));
+extern cxx_binding *cxx_scope_find_binding_for_name (tree, tree);
extern tree cp_fname_init PARAMS ((const char *));
extern bool have_extern_spec;
@@ -3787,7 +3882,7 @@ extern void check_member_template PARAMS ((tree));
extern tree grokfield PARAMS ((tree, tree, tree, tree, tree));
extern tree grokbitfield PARAMS ((tree, tree, tree));
extern tree groktypefield PARAMS ((tree, tree));
-extern tree grokoptypename PARAMS ((tree, tree));
+extern tree grokoptypename PARAMS ((tree, tree, tree));
extern void cplus_decl_attributes PARAMS ((tree *, tree, int));
extern tree constructor_name_full PARAMS ((tree));
extern tree constructor_name PARAMS ((tree));
@@ -3826,6 +3921,7 @@ extern void do_using_directive PARAMS ((tree));
extern void check_default_args PARAMS ((tree));
extern void mark_used PARAMS ((tree));
extern tree handle_class_head (enum tag_types, tree, tree, tree, int, int *);
+extern tree handle_class_head_apparent_template (tree, int *);
extern tree lookup_arg_dependent PARAMS ((tree, tree, tree));
extern void finish_static_data_member_decl PARAMS ((tree, tree, tree, int));
extern tree cp_build_parm_decl PARAMS ((tree, tree));
@@ -3885,19 +3981,19 @@ extern void add_friend PARAMS ((tree, tree));
extern tree do_friend PARAMS ((tree, tree, tree, tree, tree, enum overload_flags, tree, int));
/* in init.c */
-extern tree expand_member_init (tree, tree);
+extern tree expand_member_init (tree);
extern void emit_mem_initializers (tree);
extern tree build_aggr_init PARAMS ((tree, tree, int));
extern tree build_init PARAMS ((tree, tree, int));
extern int is_aggr_type PARAMS ((tree, int));
extern tree get_aggr_from_typedef PARAMS ((tree, int));
extern tree get_type_value PARAMS ((tree));
-extern tree build_zero_init (tree, bool);
+extern tree build_zero_init (tree, tree, bool);
extern tree build_member_call PARAMS ((tree, tree, tree));
extern tree build_offset_ref PARAMS ((tree, tree));
extern tree resolve_offset_ref PARAMS ((tree));
extern tree build_new PARAMS ((tree, tree, tree, int));
-extern tree build_vec_init PARAMS ((tree, tree, int));
+extern tree build_vec_init PARAMS ((tree, tree, tree, int));
extern tree build_x_delete PARAMS ((tree, int, tree));
extern tree build_delete PARAMS ((tree, tree, special_function_kind, int, int));
extern void push_base_cleanups PARAMS ((void));
@@ -4001,7 +4097,7 @@ extern tree instantiate_decl PARAMS ((tree, int));
extern tree get_bindings PARAMS ((tree, tree, tree));
extern int push_tinst_level PARAMS ((tree));
extern void pop_tinst_level PARAMS ((void));
-extern int more_specialized_class PARAMS ((tree, tree));
+extern int more_specialized_class PARAMS ((tree, tree, tree));
extern int is_member_template PARAMS ((tree));
extern int comp_template_parms PARAMS ((tree, tree));
extern int template_class_depth PARAMS ((tree));
@@ -4037,13 +4133,16 @@ extern int unemitted_tinfo_decl_p PARAMS((tree, void *));
extern int emit_tinfo_decl PARAMS((tree *, void *));
/* in search.c */
+extern bool accessible_base_p (tree, tree);
extern tree lookup_base PARAMS ((tree, tree, base_access, base_kind *));
extern int types_overlap_p PARAMS ((tree, tree));
extern tree get_vbase PARAMS ((tree, tree));
extern tree get_dynamic_cast_base_type PARAMS ((tree, tree));
extern void type_access_control PARAMS ((tree, tree));
extern int accessible_p PARAMS ((tree, tree));
+extern tree lookup_field_1 (tree, tree, bool);
extern tree lookup_field PARAMS ((tree, tree, int, int));
+extern tree lookup_nested_field PARAMS ((tree, int));
extern int lookup_fnfields_1 PARAMS ((tree, tree));
extern tree lookup_fnfields PARAMS ((tree, tree, int));
extern tree lookup_member PARAMS ((tree, tree, int, int));
@@ -4215,6 +4314,7 @@ extern tree canonical_type_variant PARAMS ((tree));
extern void unshare_base_binfos PARAMS ((tree));
extern int member_p PARAMS ((tree));
extern cp_lvalue_kind real_lvalue_p PARAMS ((tree));
+extern cp_lvalue_kind real_non_cast_lvalue_p (tree);
extern int non_cast_lvalue_p PARAMS ((tree));
extern int non_cast_lvalue_or_else PARAMS ((tree, const char *));
extern tree build_min PARAMS ((enum tree_code, tree,
@@ -4222,7 +4322,6 @@ extern tree build_min PARAMS ((enum tree_code, tree,
extern tree build_min_nt PARAMS ((enum tree_code, ...));
extern tree build_cplus_new PARAMS ((tree, tree));
extern tree get_target_expr PARAMS ((tree));
-extern tree break_out_calls PARAMS ((tree));
extern tree build_cplus_method_type PARAMS ((tree, tree, tree));
extern tree build_cplus_staticfn_type PARAMS ((tree, tree, tree));
extern tree build_cplus_array_type PARAMS ((tree, tree));
@@ -4283,8 +4382,6 @@ extern int cp_is_overload_p PARAMS ((tree));
extern int cp_auto_var_in_fn_p PARAMS ((tree,tree));
extern tree cp_copy_res_decl_for_inlining PARAMS ((tree, tree, tree, void*,
int*, void*));
-extern int cp_start_inlining PARAMS ((tree));
-extern void cp_end_inlining PARAMS ((tree));
/* in typeck.c */
extern int string_conv_p PARAMS ((tree, tree, int));
@@ -4315,7 +4412,7 @@ extern tree build_x_indirect_ref PARAMS ((tree, const char *));
extern tree build_indirect_ref PARAMS ((tree, const char *));
extern tree build_array_ref PARAMS ((tree, tree));
extern tree get_member_function_from_ptrfunc PARAMS ((tree *, tree));
-extern tree build_function_call_real PARAMS ((tree, tree, int, int));
+extern tree build_function_call_real PARAMS ((tree, tree, int));
extern tree build_function_call_maybe PARAMS ((tree, tree));
extern tree convert_arguments PARAMS ((tree, tree, tree, int));
extern tree build_x_binary_op PARAMS ((enum tree_code, tree, tree));
@@ -4352,6 +4449,8 @@ extern tree check_return_expr PARAMS ((tree));
#define cxx_sizeof(T) cxx_sizeof_or_alignof_type (T, SIZEOF_EXPR, true)
#define cxx_alignof(T) cxx_sizeof_or_alignof_type (T, ALIGNOF_EXPR, true)
extern tree build_ptrmemfunc_access_expr (tree, tree);
+extern tree build_address (tree);
+extern tree build_nop (tree, tree);
/* in typeck2.c */
extern void require_complete_eh_spec_types PARAMS ((tree, tree));
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 97d24202850..221c1f3d7ee 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -90,7 +90,7 @@ cp_convert_to_pointer (type, expr, force)
return error_mark_node;
}
- rval = build_type_conversion (type, expr, 1);
+ rval = build_type_conversion (type, expr);
if (rval)
{
if (rval == error_mark_node)
@@ -148,31 +148,33 @@ cp_convert_to_pointer (type, expr, force)
{
enum tree_code code = PLUS_EXPR;
tree binfo;
+ tree intype_class;
+ tree type_class;
+ bool same_p;
+ intype_class = TREE_TYPE (intype);
+ type_class = TREE_TYPE (type);
+
+ same_p = same_type_p (TYPE_MAIN_VARIANT (intype_class),
+ TYPE_MAIN_VARIANT (type_class));
+ binfo = NULL_TREE;
/* Try derived to base conversion. */
- binfo = lookup_base (TREE_TYPE (intype), TREE_TYPE (type),
- ba_check, NULL);
- if (!binfo)
+ if (!same_p)
+ binfo = lookup_base (intype_class, type_class, ba_check, NULL);
+ if (!same_p && !binfo)
{
/* Try base to derived conversion. */
- binfo = lookup_base (TREE_TYPE (type), TREE_TYPE (intype),
- ba_check, NULL);
+ binfo = lookup_base (type_class, intype_class, ba_check, NULL);
code = MINUS_EXPR;
}
if (binfo == error_mark_node)
return error_mark_node;
- if (binfo)
+ if (binfo || same_p)
{
- expr = build_base_path (code, expr, binfo, 0);
+ if (binfo)
+ expr = build_base_path (code, expr, binfo, 0);
/* Add any qualifier conversions. */
- if (!same_type_p (TREE_TYPE (TREE_TYPE (expr)),
- TREE_TYPE (type)))
- {
- expr = build1 (NOP_EXPR, type, expr);
- TREE_CONSTANT (expr) =
- TREE_CONSTANT (TREE_OPERAND (expr, 0));
- }
- return expr;
+ return build_nop (type, expr);
}
}
@@ -225,9 +227,7 @@ cp_convert_to_pointer (type, expr, force)
return error_mark_node;
}
- rval = build1 (NOP_EXPR, type, expr);
- TREE_CONSTANT (rval) = TREE_CONSTANT (expr);
- return rval;
+ return build_nop (type, expr);
}
else if (TYPE_PTRMEMFUNC_P (type) && TYPE_PTRMEMFUNC_P (intype))
return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0);
@@ -327,14 +327,9 @@ convert_to_pointer_force (type, expr)
/* Add any qualifier conversions. */
if (!same_type_p (TREE_TYPE (TREE_TYPE (expr)),
TREE_TYPE (type)))
- {
- expr = build1 (NOP_EXPR, type, expr);
- TREE_CONSTANT (expr) =
- TREE_CONSTANT (TREE_OPERAND (expr, 0));
- }
+ expr = build_nop (type, expr);
return expr;
}
-
}
}
@@ -357,7 +352,6 @@ build_up_reference (type, arg, flags, decl)
tree rval;
tree argtype = TREE_TYPE (arg);
tree target_type = TREE_TYPE (type);
- tree stmt_expr = NULL_TREE;
my_friendly_assert (TREE_CODE (type) == REFERENCE_TYPE, 187);
@@ -367,25 +361,7 @@ build_up_reference (type, arg, flags, decl)
here because it needs to live as long as DECL. */
tree targ = arg;
- arg = build_decl (VAR_DECL, NULL_TREE, argtype);
- DECL_ARTIFICIAL (arg) = 1;
- TREE_USED (arg) = 1;
- TREE_STATIC (arg) = TREE_STATIC (decl);
-
- if (TREE_STATIC (decl))
- {
- /* Namespace-scope or local static; give it a mangled name. */
- tree name = mangle_ref_init_variable (decl);
- DECL_NAME (arg) = name;
- SET_DECL_ASSEMBLER_NAME (arg, name);
- arg = pushdecl_top_level (arg);
- }
- else
- {
- /* Automatic; make sure we handle the cleanup properly. */
- maybe_push_cleanup_level (argtype);
- arg = pushdecl (arg);
- }
+ arg = make_temporary_var_for_ref_to_temp (decl, TREE_TYPE (arg));
/* Process the initializer for the declaration. */
DECL_INITIAL (arg) = targ;
@@ -418,16 +394,7 @@ build_up_reference (type, arg, flags, decl)
else
rval
= convert_to_pointer_force (build_pointer_type (target_type), rval);
- rval = build1 (NOP_EXPR, type, rval);
- TREE_CONSTANT (rval) = TREE_CONSTANT (TREE_OPERAND (rval, 0));
-
- /* If we created and initialized a new temporary variable, add the
- representation of that initialization to the RVAL. */
- if (stmt_expr)
- rval = build (COMPOUND_EXPR, TREE_TYPE (rval), stmt_expr, rval);
-
- /* And return the result. */
- return rval;
+ return build_nop (type, rval);
}
/* Subroutine of convert_to_reference. REFTYPE is the target reference type.
@@ -509,7 +476,7 @@ convert_to_reference (reftype, expr, convtype, flags, decl)
/* Look for a user-defined conversion to lvalue that we can use. */
rval_as_conversion
- = build_type_conversion (reftype, expr, 1);
+ = build_type_conversion (reftype, expr);
if (rval_as_conversion && rval_as_conversion != error_mark_node
&& real_lvalue_p (rval_as_conversion))
@@ -618,6 +585,21 @@ convert_lvalue (totype, expr)
NULL_TREE);
return convert_from_reference (expr);
}
+
+/* Really perform an lvalue-to-rvalue conversion, including copying an
+ argument of class type into a temporary. */
+
+tree
+force_rvalue (tree expr)
+{
+ if (IS_AGGR_TYPE (TREE_TYPE (expr)) && TREE_CODE (expr) != TARGET_EXPR)
+ expr = ocp_convert (TREE_TYPE (expr), expr,
+ CONV_IMPLICIT|CONV_FORCE_TEMP, LOOKUP_NORMAL);
+ else
+ expr = decay_conversion (expr);
+
+ return expr;
+}
/* C++ conversions, preference to static cast conversions. */
@@ -706,7 +688,7 @@ ocp_convert (type, expr, convtype, flags)
if (IS_AGGR_TYPE (intype))
{
tree rval;
- rval = build_type_conversion (type, e, 1);
+ rval = build_type_conversion (type, e);
if (rval)
return rval;
if (flags & LOOKUP_COMPLAIN)
@@ -742,7 +724,7 @@ ocp_convert (type, expr, convtype, flags)
if (IS_AGGR_TYPE (TREE_TYPE (e)))
{
tree rval;
- rval = build_type_conversion (type, e, 1);
+ rval = build_type_conversion (type, e);
if (rval)
return rval;
else
@@ -921,6 +903,7 @@ convert_to_void (expr, implicit)
of an overloaded function, and this is not one of them. */
pedwarn ("%s cannot resolve address of overloaded function",
implicit ? implicit : "void cast");
+ expr = void_zero_node;
}
else if (implicit && probe == expr && is_overloaded_fn (probe))
/* Only warn when there is no &. */
@@ -1022,26 +1005,18 @@ convert_force (type, expr, convtype)
allowed (references private members, etc).
If no conversion exists, NULL_TREE is returned.
- If (FOR_SURE & 1) is nonzero, then we allow this type conversion
- to take place immediately. Otherwise, we build a SAVE_EXPR
- which can be evaluated if the results are ever needed.
-
- Changes to this functions should be mirrored in user_harshness.
-
FIXME: Ambiguity checking is wrong. Should choose one by the implicit
object parameter, or by the second standard conversion sequence if
that doesn't do it. This will probably wait for an overloading rewrite.
(jason 8/9/95) */
tree
-build_type_conversion (xtype, expr, for_sure)
+build_type_conversion (xtype, expr)
tree xtype, expr;
- int for_sure;
{
/* C++: check to see if we can convert this aggregate type
into the required type. */
- return build_user_type_conversion
- (xtype, expr, for_sure ? LOOKUP_NORMAL : 0);
+ return build_user_type_conversion (xtype, expr, LOOKUP_NORMAL);
}
/* Convert the given EXPR to one of a group of types suitable for use in an
@@ -1099,8 +1074,9 @@ build_expr_type_conversion (desires, expr, complain)
/* The code for conversions from class type is currently only used for
delete expressions. Other expressions are handled by build_new_op. */
-
- if (! TYPE_HAS_CONVERSION (basetype))
+ if (!complete_type_or_else (basetype, expr))
+ return error_mark_node;
+ if (!TYPE_HAS_CONVERSION (basetype))
return NULL_TREE;
for (conv = lookup_conversions (basetype); conv; conv = TREE_CHAIN (conv))
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index e68c06447e1..c825a4478bc 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1,6 +1,6 @@
/* Process declarations and variables for C compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002 Free Software Foundation, Inc.
+ 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -49,6 +49,8 @@ Boston, MA 02111-1307, USA. */
#include "c-pragma.h"
#include "diagnostic.h"
#include "debug.h"
+#include "timevar.h"
+#include "input.h"
static tree grokparms PARAMS ((tree));
static const char *redeclaration_error_message PARAMS ((tree, tree));
@@ -65,12 +67,12 @@ static void storedecls PARAMS ((tree));
static void require_complete_types_for_parms PARAMS ((tree));
static int ambi_op_p PARAMS ((enum tree_code));
static int unary_op_p PARAMS ((enum tree_code));
-static tree store_bindings PARAMS ((tree, tree));
+static cxx_saved_binding *store_bindings (tree, cxx_saved_binding *);
static tree lookup_tag_reverse PARAMS ((tree, tree));
static tree lookup_name_real PARAMS ((tree, int, int, int));
static void push_local_name PARAMS ((tree));
static void warn_extern_redeclared_static PARAMS ((tree, tree));
-static tree grok_reference_init PARAMS ((tree, tree, tree));
+static tree grok_reference_init PARAMS ((tree, tree, tree, tree *));
static tree grokfndecl PARAMS ((tree, tree, tree, tree, int,
enum overload_flags, tree,
tree, int, int, int, int, int, int, tree));
@@ -96,8 +98,8 @@ static void push_binding PARAMS ((tree, tree, struct cp_binding_level*));
static int add_binding PARAMS ((tree, tree));
static void pop_binding PARAMS ((tree, tree));
static tree local_variable_p_walkfn PARAMS ((tree *, int *, void *));
-static tree find_binding PARAMS ((tree, tree));
-static tree select_decl PARAMS ((tree, int));
+static cxx_binding *find_binding (tree, tree, cxx_binding *);
+static tree select_decl (cxx_binding *, int);
static int lookup_flags PARAMS ((int, int));
static tree qualify_lookup PARAMS ((tree, int));
static tree record_builtin_java_type PARAMS ((const char *, int));
@@ -121,7 +123,7 @@ static void pop_labels PARAMS ((tree));
static void maybe_deduce_size_from_array_init PARAMS ((tree, tree));
static void layout_var_decl PARAMS ((tree));
static void maybe_commonize_var PARAMS ((tree));
-static tree check_initializer (tree, tree, int);
+static tree check_initializer (tree, tree, int, tree *);
static void make_rtl_for_nonlocal_decl PARAMS ((tree, tree, const char *));
static void save_function_data PARAMS ((tree));
static void check_function_type PARAMS ((tree, tree));
@@ -145,12 +147,9 @@ static int cp_missing_noreturn_ok_p PARAMS ((tree));
static void initialize_local_var (tree, tree);
static void expand_static_init (tree, tree);
static tree next_initializable_field (tree);
+static bool reshape_init_array (tree, tree, tree *, tree);
static tree reshape_init (tree, tree *);
-#if defined (DEBUG_BINDING_LEVELS)
-static void indent PARAMS ((void));
-#endif
-
/* Erroneous argument lists can use this *IFF* they do not modify it. */
tree error_mark_list;
@@ -290,6 +289,248 @@ int adding_implicit_members = 0;
bool have_extern_spec;
+/* Compute the chain index of a binding_entry given the HASH value of its
+ name and the total COUNT of chains. COUNT is assumed to be a power
+ of 2. */
+#define ENTRY_INDEX(HASH, COUNT) (((HASH) >> 3) & ((COUNT) - 1))
+
+/* A free list of "binding_entry"s awaiting for re-use. */
+static GTY((deletable(""))) binding_entry free_binding_entry;
+
+/* Create a binding_entry object for (NAME, TYPE). */
+static inline binding_entry
+binding_entry_make (tree name, tree type)
+{
+ binding_entry entry;
+
+ if (free_binding_entry)
+ {
+ entry = free_binding_entry;
+ free_binding_entry = entry->chain;
+ }
+ else
+ entry = ggc_alloc (sizeof (struct binding_entry_s));
+
+ entry->name = name;
+ entry->type = type;
+
+ return entry;
+}
+
+/* Put ENTRY back on the free list. */
+static inline void
+binding_entry_free (binding_entry entry)
+{
+ entry->chain = free_binding_entry;
+ free_binding_entry = entry;
+}
+
+/* The datatype used to implement the mapping from names to types at
+ a given scope. */
+struct binding_table_s GTY(())
+{
+ /* Array of chains of "binding_entry"s */
+ binding_entry * GTY((length ("%h.chain_count"))) chain;
+
+ /* The number of chains in this table. This is the length of the
+ the member "chaiin" considered as an array. */
+ size_t chain_count;
+
+ /* Number of "binding_entry"s in this table. */
+ size_t entry_count;
+};
+
+/* These macros indicate the initial chains count for binding_table. */
+#define SCOPE_DEFAULT_HT_SIZE (1 << 3)
+#define CLASS_SCOPE_HT_SIZE (1 << 3)
+#define NAMESPACE_ORDINARY_HT_SIZE (1 << 5)
+#define NAMESPACE_STD_HT_SIZE (1 << 8)
+#define GLOBAL_SCOPE_HT_SIZE (1 << 8)
+
+/* Construct TABLE with an initial CHAIN_COUNT. */
+static inline void
+binding_table_construct (binding_table table, size_t chain_count)
+{
+ table->chain_count = chain_count;
+ table->entry_count = 0;
+ table->chain = ggc_alloc_cleared
+ (table->chain_count * sizeof (binding_entry));
+}
+
+/* Free TABLE by making its entries ready for reuse. */
+static inline void
+binding_table_free (binding_table table)
+{
+ size_t i;
+ if (table == NULL)
+ return;
+
+ for (i = 0; i < table->chain_count; ++i)
+ {
+ while (table->chain[i] != NULL)
+ {
+ binding_entry entry = table->chain[i];
+ table->chain[i] = entry->chain;
+ binding_entry_free (entry);
+ }
+ }
+ table->entry_count = 0;
+}
+
+/* Allocate a table with CHAIN_COUNT, assumed to be a power of two. */
+static inline binding_table
+binding_table_new (size_t chain_count)
+{
+ binding_table table = ggc_alloc (sizeof (struct binding_table_s));
+ binding_table_construct (table, chain_count);
+ return table;
+}
+
+/* Expand TABLE to twice its current chain_count. */
+static void
+binding_table_expand (binding_table table)
+{
+ const size_t old_chain_count = table->chain_count;
+ const size_t old_entry_count = table->entry_count;
+ const size_t new_chain_count = 2 * old_chain_count;
+ binding_entry *old_chains = table->chain;
+ size_t i;
+
+ binding_table_construct (table, new_chain_count);
+ for (i = 0; i < old_chain_count; ++i)
+ {
+ binding_entry entry = old_chains[i];
+ for (; entry != NULL; entry = old_chains[i])
+ {
+ const unsigned int hash = IDENTIFIER_HASH_VALUE (entry->name);
+ const size_t j = ENTRY_INDEX (hash, new_chain_count);
+
+ old_chains[i] = entry->chain;
+ entry->chain = table->chain[j];
+ table->chain[j] = entry;
+ }
+ }
+ table->entry_count = old_entry_count;
+}
+
+/* Insert a binding for NAME to TYPe into TABLE. */
+static inline void
+binding_table_insert (binding_table table, tree name, tree type)
+{
+ const unsigned int hash = IDENTIFIER_HASH_VALUE (name);
+ const size_t i = ENTRY_INDEX (hash, table->chain_count);
+ binding_entry entry = binding_entry_make (name, type);
+
+ entry->chain = table->chain[i];
+ table->chain[i] = entry;
+ ++table->entry_count;
+
+ if (3 * table->chain_count < 5 * table->entry_count)
+ binding_table_expand (table);
+}
+
+/* Return the binding_entry, if any, that maps NAME. */
+binding_entry
+binding_table_find (binding_table table, tree name)
+{
+ const unsigned int hash = IDENTIFIER_HASH_VALUE (name);
+ binding_entry entry = table->chain[ENTRY_INDEX (hash, table->chain_count)];
+
+ while (entry != NULL && entry->name != name)
+ entry = entry->chain;
+
+ return entry;
+}
+
+/* Return the binding_entry, if any, that maps name to an anonymous type. */
+static inline tree
+binding_table_find_anon_type (binding_table table, tree name)
+{
+ const unsigned int hash = IDENTIFIER_HASH_VALUE (name);
+ binding_entry entry = table->chain[ENTRY_INDEX (hash, table->chain_count)];
+
+ while (entry != NULL && TYPE_IDENTIFIER (entry->type) != name)
+ entry = entry->chain;
+
+ return entry ? entry->type : NULL;
+}
+
+/* Return the binding_entry, if any, that has TYPE as target. If NAME
+ is non-null, then set the domain and rehash that entry. */
+static inline binding_entry
+binding_table_reverse_maybe_remap (binding_table table, tree type, tree name)
+{
+ const size_t chain_count = table->chain_count;
+ binding_entry entry = NULL;
+ binding_entry *p = NULL;
+ size_t i;
+
+ for (i = 0; i < chain_count && entry == NULL; ++i)
+ {
+ p = &table->chain[i];
+ while (*p != NULL && entry == NULL)
+ if ((*p)->type == type)
+ entry = *p;
+ else
+ p = &(*p)->chain;
+ }
+
+ if (entry != NULL && name != NULL && entry->name != name)
+ {
+ /* Remove the bucket from the previous chain. */
+ *p = (*p)->chain;
+
+ /* Remap the name type to type. */
+ i = ENTRY_INDEX (IDENTIFIER_HASH_VALUE (name), chain_count);
+ entry->chain = table->chain[i];
+ entry->name = name;
+ table->chain[i] = entry;
+ }
+
+ return entry;
+}
+
+/* Remove from TABLE all entries that map to anonymous enums or
+ class-types. */
+static void
+binding_table_remove_anonymous_types (binding_table table)
+{
+ const size_t chain_count = table->chain_count;
+ size_t i;
+
+ for (i = 0; i < chain_count; ++i)
+ {
+ binding_entry *p = &table->chain[i];
+
+ while (*p != NULL)
+ if (ANON_AGGRNAME_P ((*p)->name))
+ {
+ binding_entry e = *p;
+ *p = (*p)->chain;
+ --table->entry_count;
+ binding_entry_free (e);
+ }
+ else
+ p = &(*p)->chain;
+ }
+}
+
+/* Apply PROC -- with DATA -- to all entries in TABLE. */
+void
+binding_table_foreach (binding_table table, bt_foreach_proc proc, void *data)
+{
+ const size_t chain_count = table->chain_count;
+ size_t i;
+
+ for (i = 0; i < chain_count; ++i)
+ {
+ binding_entry entry = table->chain[i];
+ for (; entry != NULL; entry = entry->chain)
+ proc (entry, data);
+ }
+}
+
+
/* For each binding contour we allocate a binding_level structure
which records the names defined in that contour.
Contours include:
@@ -328,18 +569,14 @@ struct cp_binding_level GTY(())
/* A chain of NAMESPACE_DECL nodes. */
tree namespaces;
+ /* An array of static functions and variables (for namespaces only) */
+ varray_type static_decls;
+
/* A chain of VTABLE_DECL nodes. */
tree vtables;
- /* A list of structure, union and enum definitions, for looking up
- tag names.
- It is a chain of TREE_LIST nodes, each of whose TREE_PURPOSE is a name,
- or NULL_TREE; and whose TREE_VALUE is a RECORD_TYPE, UNION_TYPE,
- or ENUMERAL_TYPE node.
-
- C++: the TREE_VALUE nodes can be simple types for
- component_bindings. */
- tree tags;
+ /* A dictionary for looking up enums or class-types names. */
+ binding_table type_decls;
/* A list of USING_DECL nodes. */
tree usings;
@@ -430,12 +667,16 @@ struct cp_binding_level GTY(())
#define NULL_BINDING_LEVEL ((struct cp_binding_level *) NULL)
+/* True if SCOPE designates the global scope binding contour. */
+#define global_scope_p(SCOPE) \
+ ((SCOPE) == NAMESPACE_LEVEL (global_namespace))
+
/* The binding level currently in effect. */
#define current_binding_level \
- (cfun && cp_function_chain->bindings \
- ? cp_function_chain->bindings \
- : scope_chain->bindings)
+ (*(cfun && cp_function_chain->bindings \
+ ? &cp_function_chain->bindings \
+ : &scope_chain->bindings))
/* The binding level of the current class, if any. */
@@ -445,12 +686,6 @@ struct cp_binding_level GTY(())
static GTY((deletable (""))) struct cp_binding_level *free_binding_level;
-/* The outermost binding level, for names of file scope.
- This is created when the compiler is started and exists
- through the entire run. */
-
-static GTY(()) struct cp_binding_level *global_binding_level;
-
/* Nonzero means unconditionally make a BLOCK for the next level pushed. */
static int keep_next_level_flag;
@@ -461,19 +696,23 @@ static int keep_next_level_flag;
static GTY(()) tree incomplete_vars;
-#if defined(DEBUG_BINDING_LEVELS)
-static int binding_depth = 0;
+#ifndef ENABLE_SCOPE_CHECKING
+# define ENABLE_SCOPE_CHECKING 0
+#else
+# define ENABLE_SCOPE_CHECKING 1
+#endif
+
+static unsigned binding_depth = 0;
static int is_class_level = 0;
static void
-indent ()
+indent (unsigned depth)
{
- register unsigned i;
+ unsigned i;
- for (i = 0; i < binding_depth*2; i++)
+ for (i = 0; i < depth * 2; i++)
putc (' ', stderr);
}
-#endif /* defined(DEBUG_BINDING_LEVELS) */
static tree pushdecl_with_scope PARAMS ((tree, struct cp_binding_level *));
@@ -491,14 +730,16 @@ push_binding_level (newlevel, tag_transparent, keep)
newlevel->more_cleanups_ok = 1;
newlevel->keep = keep;
-#if defined(DEBUG_BINDING_LEVELS)
- newlevel->binding_depth = binding_depth;
- indent ();
- fprintf (stderr, "push %s level 0x%08x line %d\n",
- (is_class_level) ? "class" : "block", newlevel, lineno);
- is_class_level = 0;
- binding_depth++;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
+ if (ENABLE_SCOPE_CHECKING)
+ {
+ newlevel->binding_depth = binding_depth;
+ indent (binding_depth);
+ verbatim ("push %s level %p line %d\n",
+ (is_class_level) ? "class" : "block",
+ (void *) newlevel, lineno);
+ is_class_level = 0;
+ binding_depth++;
+ }
}
/* Find the innermost enclosing class scope, and reset
@@ -520,34 +761,34 @@ find_class_binding_level ()
static void
pop_binding_level ()
{
- if (global_binding_level)
+ if (NAMESPACE_LEVEL (global_namespace))
+ /* Cannot pop a level, if there are none left to pop. */
+ my_friendly_assert (!global_scope_p (current_binding_level), 20030527);
+ /* Pop the current level, and free the structure for reuse. */
+ if (ENABLE_SCOPE_CHECKING)
{
- /* Cannot pop a level, if there are none left to pop. */
- if (current_binding_level == global_binding_level)
- abort ();
+ indent (--binding_depth);
+ verbatim ("pop %s level %p line %d\n",
+ (is_class_level) ? "class" : "block",
+ (void *) current_binding_level, lineno);
+ if (is_class_level != (current_binding_level == class_binding_level))
+ {
+ indent (binding_depth);
+ verbatim ("XXX is_class_level != (current_binding_level "
+ "== class_binding_level)\n");
+ }
+ is_class_level = 0;
}
- /* Pop the current level, and free the structure for reuse. */
-#if defined(DEBUG_BINDING_LEVELS)
- binding_depth--;
- indent ();
- fprintf (stderr, "pop %s level 0x%08x line %d\n",
- (is_class_level) ? "class" : "block",
- current_binding_level, lineno);
- if (is_class_level != (current_binding_level == class_binding_level))
- {
- indent ();
- fprintf (stderr, "XXX is_class_level != (current_binding_level == class_binding_level)\n");
- }
- is_class_level = 0;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
{
register struct cp_binding_level *level = current_binding_level;
current_binding_level = current_binding_level->level_chain;
level->level_chain = free_binding_level;
-#if 0 /* defined(DEBUG_BINDING_LEVELS) */
- if (level->binding_depth != binding_depth)
- abort ();
-#endif /* defined(DEBUG_BINDING_LEVELS) */
+ if (level->parm_flag != 2)
+ binding_table_free (level->type_decls);
+ else
+ level->type_decls = NULL;
+ my_friendly_assert (!ENABLE_SCOPE_CHECKING
+ || level->binding_depth == binding_depth, 20030529);
free_binding_level = level;
find_class_binding_level ();
}
@@ -559,26 +800,23 @@ suspend_binding_level ()
if (class_binding_level)
current_binding_level = class_binding_level;
- if (global_binding_level)
+ if (NAMESPACE_LEVEL (global_namespace))
+ my_friendly_assert (!global_scope_p (current_binding_level), 20030527);
+ /* Suspend the current level. */
+ if (ENABLE_SCOPE_CHECKING)
{
- /* Cannot suspend a level, if there are none left to suspend. */
- if (current_binding_level == global_binding_level)
- abort ();
+ indent (--binding_depth);
+ verbatim("suspend %s level %p line %d\n",
+ (is_class_level) ? "class" : "block",
+ (void *) current_binding_level, lineno);
+ if (is_class_level != (current_binding_level == class_binding_level))
+ {
+ indent (binding_depth);
+ verbatim ("XXX is_class_level != (current_binding_level "
+ "== class_binding_level)\n");
+ }
+ is_class_level = 0;
}
- /* Suspend the current level. */
-#if defined(DEBUG_BINDING_LEVELS)
- binding_depth--;
- indent ();
- fprintf (stderr, "suspend %s level 0x%08x line %d\n",
- (is_class_level) ? "class" : "block",
- current_binding_level, lineno);
- if (is_class_level != (current_binding_level == class_binding_level))
- {
- indent ();
- fprintf (stderr, "XXX is_class_level != (current_binding_level == class_binding_level)\n");
- }
- is_class_level = 0;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
current_binding_level = current_binding_level->level_chain;
find_class_binding_level ();
}
@@ -593,14 +831,15 @@ resume_binding_level (b)
/* Also, resuming a non-directly nested namespace is a no-no. */
my_friendly_assert(b->level_chain == current_binding_level, 386);
current_binding_level = b;
-#if defined(DEBUG_BINDING_LEVELS)
- b->binding_depth = binding_depth;
- indent ();
- fprintf (stderr, "resume %s level 0x%08x line %d\n",
- (is_class_level) ? "class" : "block", b, lineno);
- is_class_level = 0;
- binding_depth++;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
+ if (ENABLE_SCOPE_CHECKING)
+ {
+ b->binding_depth = binding_depth;
+ indent (binding_depth);
+ verbatim ("resume %s level %p line %d\n",
+ (is_class_level) ? "class" : "block", (void *) b, lineno);
+ is_class_level = 0;
+ binding_depth++;
+ }
}
/* Create a new `struct cp_binding_level'. */
@@ -618,7 +857,7 @@ make_binding_level ()
int
global_bindings_p ()
{
- return current_binding_level == global_binding_level;
+ return global_scope_p (current_binding_level);
}
/* Return the innermost binding level that is not for a class scope. */
@@ -680,10 +919,18 @@ kept_level_p ()
return (current_binding_level->blocks != NULL_TREE
|| current_binding_level->keep
|| current_binding_level->names != NULL_TREE
- || (current_binding_level->tags != NULL_TREE
+ || (current_binding_level->type_decls != NULL
&& !current_binding_level->tag_transparent));
}
+/* Returns the kind of the innermost scope. */
+
+bool
+innermost_scope_is_class_p ()
+{
+ return current_binding_level->parm_flag == 2;
+}
+
static void
declare_namespace_level ()
{
@@ -809,11 +1056,7 @@ pushlevel (tag_transparent)
return;
/* Reuse or create a struct for this binding level. */
-#if defined(DEBUG_BINDING_LEVELS)
- if (0)
-#else /* !defined(DEBUG_BINDING_LEVELS) */
- if (free_binding_level)
-#endif /* !defined(DEBUG_BINDING_LEVELS) */
+ if (!ENABLE_SCOPE_CHECKING && free_binding_level)
{
newlevel = free_binding_level;
free_binding_level = free_binding_level->level_chain;
@@ -833,7 +1076,8 @@ void
maybe_push_cleanup_level (type)
tree type;
{
- if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
+ if (type != error_mark_node
+ && TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
&& current_binding_level->more_cleanups_ok == 0)
{
keep_next_level (2);
@@ -899,13 +1143,11 @@ note_level_for_catch ()
/* For a binding between a name and an entity at a block scope,
this is the `struct cp_binding_level' for the block. */
-#define BINDING_LEVEL(NODE) \
- (((struct tree_binding*)(NODE))->scope.level)
+#define BINDING_LEVEL(NODE) ((NODE)->scope.level)
-/* A free list of CPLUS_BINDING nodes, connected by their
- TREE_CHAINs. */
+/* A free list of "cxx_binding"s, connected by their PREVIOUS. */
-static GTY((deletable (""))) tree free_bindings;
+static GTY((deletable (""))) cxx_binding *free_bindings;
/* Make DECL the innermost binding for ID. The LEVEL is the binding
level at which this declaration is being bound. */
@@ -916,15 +1158,15 @@ push_binding (id, decl, level)
tree decl;
struct cp_binding_level* level;
{
- tree binding;
+ cxx_binding *binding;
if (free_bindings)
{
binding = free_bindings;
- free_bindings = TREE_CHAIN (binding);
+ free_bindings = binding->previous;
}
else
- binding = make_node (CPLUS_BINDING);
+ binding = cxx_binding_make ();
/* Now, fill in the binding information. */
BINDING_VALUE (binding) = decl;
@@ -935,7 +1177,7 @@ push_binding (id, decl, level)
BINDING_HAS_LEVEL_P (binding) = 1;
/* And put it on the front of the list of bindings for ID. */
- TREE_CHAIN (binding) = IDENTIFIER_BINDING (id);
+ binding->previous = IDENTIFIER_BINDING (id);
IDENTIFIER_BINDING (id) = binding;
}
@@ -950,9 +1192,10 @@ add_binding (id, decl)
tree id;
tree decl;
{
- tree binding = IDENTIFIER_BINDING (id);
+ cxx_binding *binding = IDENTIFIER_BINDING (id);
int ok = 1;
+ timevar_push (TV_NAME_LOOKUP);
if (TREE_CODE (decl) == TYPE_DECL && DECL_ARTIFICIAL (decl))
/* The new name is the type name. */
BINDING_TYPE (binding) = decl;
@@ -992,11 +1235,18 @@ add_binding (id, decl)
type to which it already refers. */
ok = 0;
/* There can be two block-scope declarations of the same variable,
- so long as they are `extern' declarations. */
+ so long as they are `extern' declarations. However, there cannot
+ be two declarations of the same static data member:
+
+ [class.mem]
+
+ A member shall not be declared twice in the
+ member-specification. */
else if (TREE_CODE (decl) == VAR_DECL
&& TREE_CODE (BINDING_VALUE (binding)) == VAR_DECL
&& DECL_EXTERNAL (decl)
- && DECL_EXTERNAL (BINDING_VALUE (binding)))
+ && DECL_EXTERNAL (BINDING_VALUE (binding))
+ && !DECL_CLASS_SCOPE_P (decl))
{
duplicate_decls (decl, BINDING_VALUE (binding));
ok = 0;
@@ -1009,7 +1259,7 @@ add_binding (id, decl)
ok = 0;
}
- return ok;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, ok);
}
/* Add DECL to the list of things declared in B. */
@@ -1037,6 +1287,17 @@ add_decl_to_level (decl, b)
TREE_CHAIN (decl) = b->names;
b->names = decl;
b->names_size++;
+
+ /* If appropriate, add decl to separate list of statics. We
+ include extern variables because they might turn out to be
+ static later. It's OK for this list to contain a few false
+ positives. */
+ if (b->namespace_p)
+ if ((TREE_CODE (decl) == VAR_DECL
+ && (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
+ || (TREE_CODE (decl) == FUNCTION_DECL
+ && (!TREE_PUBLIC (decl) || DECL_DECLARED_INLINE_P (decl))))
+ VARRAY_PUSH_TREE (b->static_decls, decl);
}
}
@@ -1092,9 +1353,10 @@ push_class_binding (id, decl)
tree decl;
{
int result = 1;
- tree binding = IDENTIFIER_BINDING (id);
+ cxx_binding *binding = IDENTIFIER_BINDING (id);
tree context;
+ timevar_push (TV_NAME_LOOKUP);
/* Note that we declared this value so that we can issue an error if
this is an invalid redeclaration of a name already used for some
other purpose. */
@@ -1146,7 +1408,7 @@ push_class_binding (id, decl)
in this class. */
INHERITED_VALUE_BINDING_P (binding) = 1;
- return result;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result);
}
/* Remove the binding for DECL which should be the innermost binding
@@ -1157,7 +1419,7 @@ pop_binding (id, decl)
tree id;
tree decl;
{
- tree binding;
+ cxx_binding *binding;
if (id == NULL_TREE)
/* It's easiest to write the loops that call this function without
@@ -1169,7 +1431,7 @@ pop_binding (id, decl)
binding = IDENTIFIER_BINDING (id);
/* The name should be bound. */
- my_friendly_assert (binding != NULL_TREE, 0);
+ my_friendly_assert (binding != NULL, 0);
/* The DECL will be either the ordinary binding or the type
binding for this identifier. Remove that binding. */
@@ -1184,10 +1446,10 @@ pop_binding (id, decl)
{
/* We're completely done with the innermost binding for this
identifier. Unhook it from the list of bindings. */
- IDENTIFIER_BINDING (id) = TREE_CHAIN (binding);
+ IDENTIFIER_BINDING (id) = binding->previous;
/* Add it to the free list. */
- TREE_CHAIN (binding) = free_bindings;
+ binding->previous = free_bindings;
free_bindings = binding;
/* Clear the BINDING_LEVEL so the garbage collector doesn't walk
@@ -1270,21 +1532,21 @@ poplevel (keep, reverse, functionbody)
tree decls;
int tmp = functionbody;
int real_functionbody;
- tree tags;
tree subblocks;
tree block = NULL_TREE;
tree decl;
int leaving_for_scope;
+ timevar_push (TV_NAME_LOOKUP);
+
if (cfun && !doing_semantic_analysis_p ())
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
my_friendly_assert (current_binding_level->parm_flag != 2,
19990916);
real_functionbody = (current_binding_level->keep == 2
? ((functionbody = 0), tmp) : functionbody);
- tags = functionbody >= 0 ? current_binding_level->tags : 0;
subblocks = functionbody >= 0 ? current_binding_level->blocks : 0;
my_friendly_assert (!current_binding_level->class_shadowed,
@@ -1404,8 +1666,8 @@ poplevel (keep, reverse, functionbody)
if (leaving_for_scope && TREE_CODE (link) == VAR_DECL
&& DECL_NAME (link))
{
- tree outer_binding
- = TREE_CHAIN (IDENTIFIER_BINDING (DECL_NAME (link)));
+ cxx_binding *outer_binding
+ = IDENTIFIER_BINDING (DECL_NAME (link))->previous;
tree ns_binding;
if (!outer_binding)
@@ -1460,7 +1722,7 @@ poplevel (keep, reverse, functionbody)
current_binding_level->level_chain->
dead_vars_from_for);
- /* Although we don't pop the CPLUS_BINDING, we do clear
+ /* Although we don't pop the cxx_binding, we do clear
its BINDING_LEVEL since the level is going away now. */
BINDING_LEVEL (IDENTIFIER_BINDING (DECL_NAME (link)))
= 0;
@@ -1568,7 +1830,7 @@ poplevel (keep, reverse, functionbody)
block = poplevel (keep, reverse, functionbody);
}
- return block;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, block);
}
/* Delete the node BLOCK from the current binding level.
@@ -1628,11 +1890,7 @@ pushlevel_class ()
register struct cp_binding_level *newlevel;
/* Reuse or create a struct for this binding level. */
-#if defined(DEBUG_BINDING_LEVELS)
- if (0)
-#else /* !defined(DEBUG_BINDING_LEVELS) */
- if (free_binding_level)
-#endif /* !defined(DEBUG_BINDING_LEVELS) */
+ if (!ENABLE_SCOPE_CHECKING && free_binding_level)
{
newlevel = free_binding_level;
free_binding_level = free_binding_level->level_chain;
@@ -1640,9 +1898,8 @@ pushlevel_class ()
else
newlevel = make_binding_level ();
-#if defined(DEBUG_BINDING_LEVELS)
- is_class_level = 1;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
+ if (ENABLE_SCOPE_CHECKING)
+ is_class_level = 1;
push_binding_level (newlevel, 0, 0);
@@ -1659,6 +1916,8 @@ poplevel_class ()
register struct cp_binding_level *level = class_binding_level;
tree shadowed;
+ timevar_push (TV_NAME_LOOKUP);
+
my_friendly_assert (level != 0, 354);
/* If we're leaving a toplevel class, don't bother to do the setting
@@ -1687,15 +1946,15 @@ poplevel_class ()
shadowed;
shadowed = TREE_CHAIN (shadowed))
{
- tree t;
+ cxx_binding *binding;
- t = IDENTIFIER_BINDING (TREE_PURPOSE (shadowed));
- while (t && BINDING_LEVEL (t) != b)
- t = TREE_CHAIN (t);
+ binding = IDENTIFIER_BINDING (TREE_PURPOSE (shadowed));
+ while (binding && BINDING_LEVEL (binding) != b)
+ binding = binding->previous;
- if (t)
+ if (binding)
IDENTIFIER_CLASS_VALUE (TREE_PURPOSE (shadowed))
- = BINDING_VALUE (t);
+ = BINDING_VALUE (binding);
}
}
else
@@ -1718,11 +1977,12 @@ poplevel_class ()
/* Now, pop out of the binding level which we created up in the
`pushlevel_class' routine. */
-#if defined(DEBUG_BINDING_LEVELS)
- is_class_level = 1;
-#endif /* defined(DEBUG_BINDING_LEVELS) */
+ if (ENABLE_SCOPE_CHECKING)
+ is_class_level = 1;
pop_binding_level ();
+
+ timevar_pop (TV_NAME_LOOKUP);
}
/* We are entering the scope of a class. Clear IDENTIFIER_CLASS_VALUE
@@ -1910,23 +2170,12 @@ wrapup_globals_for_namespace (namespace, data)
tree namespace;
void *data;
{
- tree globals = cp_namespace_decls (namespace);
- int len = NAMESPACE_LEVEL (namespace)->names_size;
- tree *vec = (tree *) alloca (sizeof (tree) * len);
- int i;
- int result;
- tree decl;
+ struct cp_binding_level *level = NAMESPACE_LEVEL (namespace);
+ varray_type statics = level->static_decls;
+ tree *vec = &VARRAY_TREE (statics, 0);
+ int len = VARRAY_ACTIVE_SIZE (statics);
int last_time = (data != 0);
- if (last_time && namespace == global_namespace)
- /* Let compile_file handle the global namespace. */
- return 0;
-
- /* Process the decls in reverse order--earliest first.
- Put them into VEC from back to front, then take out from front. */
- for (i = 0, decl = globals; i < len; i++, decl = TREE_CHAIN (decl))
- vec[len - i - 1] = decl;
-
if (last_time)
{
check_global_declarations (vec, len);
@@ -1934,9 +2183,7 @@ wrapup_globals_for_namespace (namespace, data)
}
/* Write out any globals that need to be output. */
- result = wrapup_global_declarations (vec, len);
-
- return result;
+ return wrapup_global_declarations (vec, len);
}
@@ -1944,6 +2191,44 @@ wrapup_globals_for_namespace (namespace, data)
static int no_print_functions = 0;
static int no_print_builtins = 0;
+/* Called from print_binding_level through binding_table_foreach to
+ print the content of binding ENTRY. DATA is a pointer to line offset
+ marker. */
+static void
+bt_print_entry (binding_entry entry, void *data)
+{
+ int *p = (int *) data;
+ int len;
+
+ if (entry->name == NULL)
+ len = 3;
+ else if (entry->name == TYPE_IDENTIFIER (entry->type))
+ len = 2;
+ else
+ len = 4;
+
+ *p += len;
+
+ if (*p > 5)
+ {
+ fprintf (stderr, "\n\t");
+ *p = len;
+ }
+ if (entry->name == NULL)
+ {
+ print_node_brief (stderr, "<unnamed-typedef", entry->type, 0);
+ fprintf (stderr, ">");
+ }
+ else if (entry->name == TYPE_IDENTIFIER (entry->type))
+ print_node_brief (stderr, "", entry->type, 0);
+ else
+ {
+ print_node_brief (stderr, "<typedef", entry->name, 0);
+ print_node_brief (stderr, "", entry->type, 0);
+ fprintf (stderr, ">");
+ }
+}
+
void
print_binding_level (lvl)
struct cp_binding_level *lvl;
@@ -1990,38 +2275,11 @@ print_binding_level (lvl)
if (i)
fprintf (stderr, "\n");
}
- if (lvl->tags)
+ if (lvl->type_decls)
{
fprintf (stderr, " tags:\t");
i = 0;
- for (t = lvl->tags; t; t = TREE_CHAIN (t))
- {
- if (TREE_PURPOSE (t) == NULL_TREE)
- len = 3;
- else if (TREE_PURPOSE (t) == TYPE_IDENTIFIER (TREE_VALUE (t)))
- len = 2;
- else
- len = 4;
- i += len;
- if (i > 5)
- {
- fprintf (stderr, "\n\t");
- i = len;
- }
- if (TREE_PURPOSE (t) == NULL_TREE)
- {
- print_node_brief (stderr, "<unnamed-typedef", TREE_VALUE (t), 0);
- fprintf (stderr, ">");
- }
- else if (TREE_PURPOSE (t) == TYPE_IDENTIFIER (TREE_VALUE (t)))
- print_node_brief (stderr, "", TREE_VALUE (t), 0);
- else
- {
- print_node_brief (stderr, "<typedef", TREE_PURPOSE (t), 0);
- print_node_brief (stderr, "", TREE_VALUE (t), 0);
- fprintf (stderr, ">");
- }
- }
+ binding_table_foreach (lvl->type_decls, bt_print_entry, &i);
if (i)
fprintf (stderr, "\n");
}
@@ -2050,7 +2308,7 @@ print_other_binding_stack (stack)
struct cp_binding_level *stack;
{
struct cp_binding_level *level;
- for (level = stack; level != global_binding_level; level = level->level_chain)
+ for (level = stack; !global_scope_p (level); level = level->level_chain)
{
fprintf (stderr, "binding level ");
fprintf (stderr, HOST_PTR_PRINTF, level);
@@ -2067,8 +2325,9 @@ print_binding_stack ()
fprintf (stderr, HOST_PTR_PRINTF, current_binding_level);
fprintf (stderr, "\nclass_binding_level=");
fprintf (stderr, HOST_PTR_PRINTF, class_binding_level);
- fprintf (stderr, "\nglobal_binding_level=");
- fprintf (stderr, HOST_PTR_PRINTF, global_binding_level);
+ fprintf (stderr, "\nNAMESPACE_LEVEL (global_namespace)=");
+ fprintf (stderr, HOST_PTR_PRINTF,
+ (void *) NAMESPACE_LEVEL (global_namespace));
fprintf (stderr, "\n");
if (class_binding_level)
{
@@ -2084,104 +2343,95 @@ print_binding_stack ()
b = current_binding_level;
print_other_binding_stack (b);
fprintf (stderr, "global:\n");
- print_binding_level (global_binding_level);
+ print_binding_level (NAMESPACE_LEVEL (global_namespace));
}
-/* Namespace binding access routines: The namespace_bindings field of
- the identifier is polymorphic, with three possible values:
- NULL_TREE, a list of CPLUS_BINDINGS, or any other tree_node
- indicating the BINDING_VALUE of global_namespace. */
+/* Namespace binding access routines. */
/* Check whether the a binding for the name to scope is known.
- Assumes that the bindings of the name are already a list
- of bindings. Returns the binding found, or NULL_TREE. */
+ Returns the binding found, or NULL. */
-static tree
-find_binding (name, scope)
- tree name;
- tree scope;
+static inline cxx_binding *
+find_binding (tree name, tree scope, cxx_binding *front)
{
- tree iter, prev = NULL_TREE;
+ cxx_binding *iter;
+ cxx_binding *prev = NULL;
- scope = ORIGINAL_NAMESPACE (scope);
+ timevar_push (TV_NAME_LOOKUP);
- for (iter = IDENTIFIER_NAMESPACE_BINDINGS (name); iter;
- iter = TREE_CHAIN (iter))
+ for (iter = front; iter; iter = iter->previous)
{
- my_friendly_assert (TREE_CODE (iter) == CPLUS_BINDING, 374);
if (BINDING_SCOPE (iter) == scope)
{
/* Move binding found to the front of the list, so
subsequent lookups will find it faster. */
if (prev)
{
- TREE_CHAIN (prev) = TREE_CHAIN (iter);
- TREE_CHAIN (iter) = IDENTIFIER_NAMESPACE_BINDINGS (name);
+ prev->previous = iter->previous;
+ iter->previous = front;
IDENTIFIER_NAMESPACE_BINDINGS (name) = iter;
}
- return iter;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, iter);
}
prev = iter;
}
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL);
}
-/* Always returns a binding for name in scope. If the
- namespace_bindings is not a list, convert it to one first.
+/* Return the binding for NAME in SCOPE, if any. Otherwise, return NULL. */
+cxx_binding *
+cxx_scope_find_binding_for_name (tree scope, tree name)
+{
+ cxx_binding *b = IDENTIFIER_NAMESPACE_BINDINGS (name);
+ if (b)
+ {
+ scope = ORIGINAL_NAMESPACE (scope);
+ /* Fold-in case where NAME is used only once. */
+ if (scope == BINDING_SCOPE (b) && b->previous == NULL)
+ return b;
+ return find_binding (name, scope, b);
+ }
+ return b;
+}
+
+
+/* Always returns a binding for name in scope.
If no binding is found, make a new one. */
-tree
-binding_for_name (name, scope)
- tree name;
- tree scope;
+cxx_binding *
+binding_for_name (tree name, tree scope)
{
- tree b = IDENTIFIER_NAMESPACE_BINDINGS (name);
- tree result;
+ cxx_binding *result;
scope = ORIGINAL_NAMESPACE (scope);
-
- if (b && TREE_CODE (b) != CPLUS_BINDING)
- {
- /* Get rid of optimization for global scope. */
- IDENTIFIER_NAMESPACE_BINDINGS (name) = NULL_TREE;
- BINDING_VALUE (binding_for_name (name, global_namespace)) = b;
- b = IDENTIFIER_NAMESPACE_BINDINGS (name);
- }
- if (b && (result = find_binding (name, scope)))
+ result = cxx_scope_find_binding_for_name (scope, name);
+ if (result)
return result;
/* Not found, make a new one. */
- result = make_node (CPLUS_BINDING);
- TREE_CHAIN (result) = b;
- IDENTIFIER_NAMESPACE_BINDINGS (name) = result;
- BINDING_SCOPE (result) = scope;
+ result = cxx_binding_make ();
+ result->previous = IDENTIFIER_NAMESPACE_BINDINGS (name);
BINDING_TYPE (result) = NULL_TREE;
BINDING_VALUE (result) = NULL_TREE;
+ BINDING_SCOPE (result) = scope;
+ result->is_local = false;
+ result->value_is_inherited = false;
+ result->has_level = false;
+ IDENTIFIER_NAMESPACE_BINDINGS (name) = result;
return result;
}
-/* Return the binding value for name in scope, considering that
- namespace_binding may or may not be a list of CPLUS_BINDINGS. */
+/* Return the binding value for name in scope. */
tree
-namespace_binding (name, scope)
- tree name;
- tree scope;
+namespace_binding (tree name, tree scope)
{
- tree b = IDENTIFIER_NAMESPACE_BINDINGS (name);
- if (b == NULL_TREE)
- return NULL_TREE;
- if (scope == NULL_TREE)
- scope = global_namespace;
- if (TREE_CODE (b) != CPLUS_BINDING)
- return (scope == global_namespace) ? b : NULL_TREE;
- name = find_binding (name,scope);
- if (name == NULL_TREE)
- return name;
- return BINDING_VALUE (name);
+ cxx_binding *b =
+ cxx_scope_find_binding_for_name (scope ? scope : global_namespace, name);
+
+ return b ? b->value : NULL_TREE;
}
-/* Set the binding value for name in scope. If modifying the binding
- of global_namespace is attempted, try to optimize it. */
+/* Set the binding value for name in scope. */
void
set_namespace_binding (name, scope, val)
@@ -2189,22 +2439,15 @@ set_namespace_binding (name, scope, val)
tree scope;
tree val;
{
- tree b;
+ cxx_binding *b;
+ timevar_push (TV_NAME_LOOKUP);
if (scope == NULL_TREE)
scope = global_namespace;
- if (scope == global_namespace)
- {
- b = IDENTIFIER_NAMESPACE_BINDINGS (name);
- if (b == NULL_TREE || TREE_CODE (b) != CPLUS_BINDING)
- {
- IDENTIFIER_NAMESPACE_BINDINGS (name) = val;
- return;
- }
- }
b = binding_for_name (name, scope);
BINDING_VALUE (b) = val;
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Push into the scope of the NAME namespace. If NAME is NULL_TREE, then we
@@ -2218,6 +2461,9 @@ push_namespace (name)
int need_new = 1;
int implicit_use = 0;
int global = 0;
+
+ timevar_push (TV_NAME_LOOKUP);
+
if (!global_namespace)
{
/* This must be ::. */
@@ -2266,6 +2512,13 @@ push_namespace (name)
pushlevel (0);
declare_namespace_level ();
NAMESPACE_LEVEL (d) = current_binding_level;
+ current_binding_level->type_decls =
+ binding_table_new (name == std_identifier
+ ? NAMESPACE_STD_HT_SIZE
+ : NAMESPACE_ORDINARY_HT_SIZE);
+ VARRAY_TREE_INIT (current_binding_level->static_decls,
+ name != std_identifier ? 10 : 200,
+ "Static declarations");
}
}
else
@@ -2275,6 +2528,8 @@ push_namespace (name)
do_using_directive (d);
/* Enter the name space. */
current_namespace = d;
+
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Pop from the scope of the current namespace. */
@@ -2311,6 +2566,7 @@ void
pop_nested_namespace (ns)
tree ns;
{
+ timevar_push (TV_NAME_LOOKUP);
while (ns != global_namespace)
{
pop_namespace ();
@@ -2318,9 +2574,26 @@ pop_nested_namespace (ns)
}
pop_from_top_level ();
+ timevar_pop (TV_NAME_LOOKUP);
}
+/* Allocate storage for saving a C++ binding. */
+#define cxx_saved_binding_make() \
+ (ggc_alloc (sizeof (cxx_saved_binding)))
+
+struct cxx_saved_binding GTY(())
+{
+ /* Link that chains saved C++ bindings for a given name into a stack. */
+ cxx_saved_binding *previous;
+ /* The name of the current binding. */
+ tree identifier;
+ /* The binding we're saving. */
+ cxx_binding *binding;
+ tree class_value;
+ tree real_type_value;
+};
+
/* Subroutines for reverting temporarily to top-level for instantiation
of templates and such. We actually need to clear out the class- and
local-value slots of all identifiers, so that only the global values
@@ -2328,16 +2601,18 @@ pop_nested_namespace (ns)
scope isn't enough, because more binding levels may be pushed. */
struct saved_scope *scope_chain;
-static tree
-store_bindings (names, old_bindings)
- tree names, old_bindings;
+static cxx_saved_binding *
+store_bindings (tree names, cxx_saved_binding *old_bindings)
{
tree t;
- tree search_bindings = old_bindings;
+ cxx_saved_binding *search_bindings = old_bindings;
+ timevar_push (TV_NAME_LOOKUP);
for (t = names; t; t = TREE_CHAIN (t))
{
- tree binding, t1, id;
+ tree id;
+ cxx_saved_binding *saved;
+ cxx_saved_binding *t1;
if (TREE_CODE (t) == TREE_LIST)
id = TREE_PURPOSE (t);
@@ -2351,24 +2626,24 @@ store_bindings (names, old_bindings)
|| !(IDENTIFIER_BINDING (id) || IDENTIFIER_CLASS_VALUE (id)))
continue;
- for (t1 = search_bindings; t1; t1 = TREE_CHAIN (t1))
- if (TREE_VEC_ELT (t1, 0) == id)
+ for (t1 = search_bindings; t1; t1 = t1->previous)
+ if (t1->identifier == id)
goto skip_it;
my_friendly_assert (TREE_CODE (id) == IDENTIFIER_NODE, 135);
- binding = make_tree_vec (4);
- TREE_VEC_ELT (binding, 0) = id;
- TREE_VEC_ELT (binding, 1) = REAL_IDENTIFIER_TYPE_VALUE (id);
- TREE_VEC_ELT (binding, 2) = IDENTIFIER_BINDING (id);
- TREE_VEC_ELT (binding, 3) = IDENTIFIER_CLASS_VALUE (id);
- IDENTIFIER_BINDING (id) = NULL_TREE;
+ saved = cxx_saved_binding_make ();
+ saved->previous = old_bindings;
+ saved->identifier = id;
+ saved->binding = IDENTIFIER_BINDING (id);
+ saved->class_value = IDENTIFIER_CLASS_VALUE (id);;
+ saved->real_type_value = REAL_IDENTIFIER_TYPE_VALUE (id);
+ IDENTIFIER_BINDING (id) = NULL;
IDENTIFIER_CLASS_VALUE (id) = NULL_TREE;
- TREE_CHAIN (binding) = old_bindings;
- old_bindings = binding;
+ old_bindings = saved;
skip_it:
;
}
- return old_bindings;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, old_bindings);
}
void
@@ -2377,9 +2652,11 @@ maybe_push_to_top_level (pseudo)
{
struct saved_scope *s;
struct cp_binding_level *b;
- tree old_bindings;
+ cxx_saved_binding *old_bindings;
int need_pop;
+ timevar_push (TV_NAME_LOOKUP);
+
s = (struct saved_scope *) ggc_alloc_cleared (sizeof (struct saved_scope));
b = scope_chain ? current_binding_level : 0;
@@ -2393,11 +2670,11 @@ maybe_push_to_top_level (pseudo)
else
need_pop = 0;
- old_bindings = NULL_TREE;
+ old_bindings = NULL;
if (scope_chain && previous_class_type)
old_bindings = store_bindings (previous_class_values, old_bindings);
- /* Have to include global_binding_level, because class-level decls
+ /* Have to include the global scope, because class-scope decls
aren't listed anywhere useful. */
for (; b; b = b->level_chain)
{
@@ -2407,7 +2684,7 @@ maybe_push_to_top_level (pseudo)
inserted into namespace level, finish_file wouldn't find them
when doing pending instantiations. Therefore, don't stop at
namespace level, but continue until :: . */
- if (b == global_binding_level || (pseudo && b->template_parms_p))
+ if (global_scope_p (b) || (pseudo && b->template_parms_p))
break;
old_bindings = store_bindings (b->names, old_bindings);
@@ -2432,6 +2709,7 @@ maybe_push_to_top_level (pseudo)
VARRAY_TREE_INIT (current_lang_base, 10, "current_lang_base");
current_lang_name = lang_name_cplusplus;
current_namespace = global_namespace;
+ timevar_pop (TV_NAME_LOOKUP);
}
void
@@ -2444,7 +2722,9 @@ void
pop_from_top_level ()
{
struct saved_scope *s = scope_chain;
- tree t;
+ cxx_saved_binding *saved;
+
+ timevar_push (TV_NAME_LOOKUP);
/* Clear out class-level bindings cache. */
if (previous_class_type)
@@ -2453,13 +2733,13 @@ pop_from_top_level ()
current_lang_base = 0;
scope_chain = s->prev;
- for (t = s->old_bindings; t; t = TREE_CHAIN (t))
+ for (saved = s->old_bindings; saved; saved = saved->previous)
{
- tree id = TREE_VEC_ELT (t, 0);
+ tree id = saved->identifier;
- SET_IDENTIFIER_TYPE_VALUE (id, TREE_VEC_ELT (t, 1));
- IDENTIFIER_BINDING (id) = TREE_VEC_ELT (t, 2);
- IDENTIFIER_CLASS_VALUE (id) = TREE_VEC_ELT (t, 3);
+ IDENTIFIER_BINDING (id) = saved->binding;
+ IDENTIFIER_CLASS_VALUE (id) = saved->class_value;
+ SET_IDENTIFIER_TYPE_VALUE (id, saved->real_type_value);
}
/* If we were in the middle of compiling a function, restore our
@@ -2468,6 +2748,8 @@ pop_from_top_level ()
pop_function_context_from (NULL_TREE);
current_function_decl = s->function_decl;
last_function_parms = s->last_parms;
+
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Push a definition of struct, union or enum tag "name".
@@ -2499,7 +2781,7 @@ set_identifier_type_value_with_scope (id, type, b)
}
else
{
- tree binding = binding_for_name (id, current_namespace);
+ cxx_binding *binding = binding_for_name (id, current_namespace);
BINDING_TYPE (binding) = type;
/* Store marker instead of real type. */
type = global_type_node;
@@ -2523,18 +2805,19 @@ tree
identifier_type_value (id)
tree id;
{
+ timevar_push (TV_NAME_LOOKUP);
/* There is no type with that name, anywhere. */
if (REAL_IDENTIFIER_TYPE_VALUE (id) == NULL_TREE)
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
/* This is not the type marker, but the real thing. */
if (REAL_IDENTIFIER_TYPE_VALUE (id) != global_type_node)
- return REAL_IDENTIFIER_TYPE_VALUE (id);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, REAL_IDENTIFIER_TYPE_VALUE (id));
/* Have to search for it. It must be on the global level, now.
Ask lookup_name not to return non-types. */
id = lookup_name_real (id, 2, 1, 0);
if (id)
- return TREE_TYPE (id);
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, TREE_TYPE (id));
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
/* Pop off extraneous binding levels left over due to syntax errors.
@@ -2544,9 +2827,8 @@ identifier_type_value (id)
void
pop_everything ()
{
-#ifdef DEBUG_BINDING_LEVELS
- fprintf (stderr, "XXX entering pop_everything ()\n");
-#endif
+ if (ENABLE_SCOPE_CHECKING)
+ verbatim ("XXX entering pop_everything ()\n");
while (!toplevel_bindings_p ())
{
if (current_binding_level->parm_flag == 2)
@@ -2554,9 +2836,8 @@ pop_everything ()
else
poplevel (0, 0, 0);
}
-#ifdef DEBUG_BINDING_LEVELS
- fprintf (stderr, "XXX leaving pop_everything ()\n");
-#endif
+ if (ENABLE_SCOPE_CHECKING)
+ verbatim ("XXX leaving pop_everything ()\n");
}
/* The type TYPE is being declared. If it is a class template, or a
@@ -2614,13 +2895,16 @@ maybe_process_template_type_declaration (type, globalize, b)
/* Put this tag on the list of tags for the class, since
that won't happen below because B is not the class
binding level, but is instead the pseudo-global level. */
- b->level_chain->tags =
- tree_cons (name, type, b->level_chain->tags);
+ if (b->level_chain->type_decls == NULL)
+ b->level_chain->type_decls =
+ binding_table_new (SCOPE_DEFAULT_HT_SIZE);
+ binding_table_insert (b->level_chain->type_decls, name, type);
if (!COMPLETE_TYPE_P (current_class_type))
{
maybe_add_class_template_decl_list (current_class_type,
type, /*friend_p=*/0);
- CLASSTYPE_TAGS (current_class_type) = b->level_chain->tags;
+ CLASSTYPE_NESTED_UDTS (current_class_type) =
+ b->level_chain->type_decls;
}
}
}
@@ -2661,6 +2945,8 @@ push_local_name (decl)
size_t i, nelts;
tree t, name;
+ timevar_push (TV_NAME_LOOKUP);
+
if (!local_names)
VARRAY_TREE_INIT (local_names, 8, "local_names");
@@ -2681,11 +2967,12 @@ push_local_name (decl)
DECL_DISCRIMINATOR (decl) = 1;
VARRAY_TREE (local_names, i) = decl;
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, (void)0);
}
}
VARRAY_PUSH_TREE (local_names, decl);
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Push a tag name NAME for struct/class/union/enum type TYPE.
@@ -2700,6 +2987,8 @@ pushtag (name, type, globalize)
{
register struct cp_binding_level *b;
+ timevar_push (TV_NAME_LOOKUP);
+
b = current_binding_level;
while (b->tag_transparent
|| (b->parm_flag == 2
@@ -2711,7 +3000,9 @@ pushtag (name, type, globalize)
|| COMPLETE_TYPE_P (b->this_class))))
b = b->level_chain;
- b->tags = tree_cons (name, type, b->tags);
+ if (b->type_decls == NULL)
+ b->type_decls = binding_table_new (SCOPE_DEFAULT_HT_SIZE);
+ binding_table_insert (b->type_decls, name, type);
if (name)
{
@@ -2788,7 +3079,7 @@ pushtag (name, type, globalize)
{
maybe_add_class_template_decl_list (current_class_type,
type, /*friend_p=*/0);
- CLASSTYPE_TAGS (current_class_type) = b->tags;
+ CLASSTYPE_NESTED_UDTS (current_class_type) = b->type_decls;
}
}
}
@@ -2809,6 +3100,8 @@ pushtag (name, type, globalize)
tree d = build_decl (TYPE_DECL, NULL_TREE, type);
TYPE_STUB_DECL (type) = pushdecl_with_scope (d, b);
}
+
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Counter used to create anonymous type names. */
@@ -2834,7 +3127,6 @@ void
clear_anon_tags ()
{
register struct cp_binding_level *b;
- register tree tags;
static int last_cnt = 0;
/* Fast out if no new anon names were declared. */
@@ -2844,17 +3136,8 @@ clear_anon_tags ()
b = current_binding_level;
while (b->tag_transparent)
b = b->level_chain;
- tags = b->tags;
- while (tags)
- {
- /* A NULL purpose means we have already processed all tags
- from here to the end of the list. */
- if (TREE_PURPOSE (tags) == NULL_TREE)
- break;
- if (ANON_AGGRNAME_P (TREE_PURPOSE (tags)))
- TREE_PURPOSE (tags) = NULL_TREE;
- tags = TREE_CHAIN (tags);
- }
+ if (b->type_decls != NULL)
+ binding_table_remove_anonymous_types (b->type_decls);
last_cnt = anon_cnt;
}
@@ -3111,9 +3394,9 @@ duplicate_decls (newdecl, olddecl)
if (DECL_ANTICIPATED (olddecl))
; /* Do nothing yet. */
else if ((DECL_EXTERN_C_P (newdecl)
- && DECL_EXTERN_C_P (olddecl))
- || compparms (TYPE_ARG_TYPES (TREE_TYPE (newdecl)),
- TYPE_ARG_TYPES (TREE_TYPE (olddecl))))
+ && DECL_EXTERN_C_P (olddecl))
+ || compparms (TYPE_ARG_TYPES (TREE_TYPE (newdecl)),
+ TYPE_ARG_TYPES (TREE_TYPE (olddecl))))
{
/* A near match; override the builtin. */
@@ -3135,6 +3418,21 @@ duplicate_decls (newdecl, olddecl)
/* Replace the old RTL to avoid problems with inlining. */
SET_DECL_RTL (olddecl, DECL_RTL (newdecl));
}
+ /* Even if the types match, prefer the new declarations type
+ for anitipated built-ins, for exception lists, etc... */
+ else if (DECL_ANTICIPATED (olddecl))
+ {
+ tree type = TREE_TYPE (newdecl);
+ tree attribs = (*targetm.merge_type_attributes)
+ (TREE_TYPE (olddecl), type);
+
+ type = build_type_attribute_variant (type, attribs);
+ TREE_TYPE (newdecl) = TREE_TYPE (olddecl) = type;
+ }
+
+ /* Whether or not the builtin can throw exceptions has no
+ bearing on this declarator. */
+ TREE_NOTHROW (olddecl) = 0;
if (DECL_THIS_STATIC (newdecl) && !DECL_THIS_STATIC (olddecl))
{
@@ -3210,7 +3508,11 @@ duplicate_decls (newdecl, olddecl)
&& compparms (TYPE_ARG_TYPES (TREE_TYPE (DECL_TEMPLATE_RESULT (olddecl))),
TYPE_ARG_TYPES (TREE_TYPE (DECL_TEMPLATE_RESULT (newdecl))))
&& comp_template_parms (DECL_TEMPLATE_PARMS (newdecl),
- DECL_TEMPLATE_PARMS (olddecl)))
+ DECL_TEMPLATE_PARMS (olddecl))
+ /* Template functions can be disambiguated by
+ return type. */
+ && same_type_p (TREE_TYPE (TREE_TYPE (newdecl)),
+ TREE_TYPE (TREE_TYPE (olddecl))))
{
error ("new declaration `%#D'", newdecl);
cp_error_at ("ambiguates old declaration `%#D'", olddecl);
@@ -3237,7 +3539,9 @@ duplicate_decls (newdecl, olddecl)
/* Already complained about this, so don't do so again. */
else if (current_class_type == NULL_TREE
- || IDENTIFIER_ERROR_LOCUS (DECL_ASSEMBLER_NAME (newdecl)) != current_class_type)
+ || !DECL_ASSEMBLER_NAME_SET_P (newdecl)
+ || (IDENTIFIER_ERROR_LOCUS (DECL_ASSEMBLER_NAME (newdecl))
+ != current_class_type))
{
error ("conflicting types for `%#D'", newdecl);
cp_error_at ("previous declaration as `%#D'", olddecl);
@@ -3446,6 +3750,14 @@ duplicate_decls (newdecl, olddecl)
= DECL_SOURCE_LOCATION (newdecl);
}
+ if (DECL_FUNCTION_TEMPLATE_P (newdecl))
+ {
+ DECL_INLINE (DECL_TEMPLATE_RESULT (olddecl))
+ |= DECL_INLINE (DECL_TEMPLATE_RESULT (newdecl));
+ DECL_DECLARED_INLINE_P (DECL_TEMPLATE_RESULT (olddecl))
+ |= DECL_DECLARED_INLINE_P (DECL_TEMPLATE_RESULT (newdecl));
+ }
+
return 1;
}
@@ -3601,7 +3913,10 @@ duplicate_decls (newdecl, olddecl)
DECL_BEFRIENDING_CLASSES (newdecl)
= chainon (DECL_BEFRIENDING_CLASSES (newdecl),
DECL_BEFRIENDING_CLASSES (olddecl));
- DECL_THUNKS (newdecl) = DECL_THUNKS (olddecl);
+ /* DECL_THUNKS is only valid for virtual functions,
+ otherwise it is a DECL_FRIEND_CONTEXT. */
+ if (DECL_VIRTUAL_P (newdecl))
+ DECL_THUNKS (newdecl) = DECL_THUNKS (olddecl);
}
}
@@ -3759,6 +4074,15 @@ duplicate_decls (newdecl, olddecl)
Update OLDDECL to be the same. */
DECL_ATTRIBUTES (olddecl) = DECL_ATTRIBUTES (newdecl);
+ /* If OLDDECL had its DECL_RTL instantiated, re-invoke make_decl_rtl
+ so that encode_section_info has a chance to look at the new decl
+ flags and attributes. */
+ if (DECL_RTL_SET_P (olddecl)
+ && (TREE_CODE (olddecl) == FUNCTION_DECL
+ || (TREE_CODE (olddecl) == VAR_DECL
+ && TREE_STATIC (olddecl))))
+ make_decl_rtl (olddecl, NULL);
+
return 1;
}
@@ -3778,6 +4102,8 @@ pushdecl (x)
register tree name;
int need_new_binding;
+ timevar_push (TV_NAME_LOOKUP);
+
/* We shouldn't be calling pushdecl when we're generating RTL for a
function that we already did semantic analysis on previously. */
my_friendly_assert (!cfun || doing_semantic_analysis_p (),
@@ -3822,9 +4148,9 @@ pushdecl (x)
/* In case this decl was explicitly namespace-qualified, look it
up in its namespace context. */
- if (TREE_CODE (x) == VAR_DECL && DECL_NAMESPACE_SCOPE_P (x)
- && namespace_bindings_p ())
- t = namespace_binding (name, DECL_CONTEXT (x));
+ if ((DECL_CONTEXT (x) && TREE_CODE (DECL_CONTEXT (x)) == NAMESPACE_DECL)
+ && namespace_bindings_p ())
+ t = namespace_binding (name, DECL_CONTEXT (x));
else
t = lookup_name_current_level (name);
@@ -3901,7 +4227,7 @@ pushdecl (x)
/* Check for duplicate params. */
if (duplicate_decls (x, t))
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
else if ((DECL_EXTERN_C_FUNCTION_P (x)
|| DECL_FUNCTION_TEMPLATE_P (x))
@@ -3914,12 +4240,12 @@ pushdecl (x)
TREE_TYPE (x));
/* Throw away the redeclaration. */
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
else if (TREE_CODE (t) != TREE_CODE (x))
{
if (duplicate_decls (x, t))
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
else if (duplicate_decls (x, t))
{
@@ -3928,7 +4254,7 @@ pushdecl (x)
else if (TREE_CODE (t) == FUNCTION_DECL)
check_default_args (t);
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
else if (DECL_MAIN_P (x))
{
@@ -3942,7 +4268,7 @@ pushdecl (x)
error ("as `%D'", x);
/* We don't try to push this declaration since that
causes a crash. */
- return x;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, x);
}
}
@@ -3960,7 +4286,7 @@ pushdecl (x)
{
t = push_overloaded_decl (x, PUSH_LOCAL);
if (t != x)
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
if (!namespace_bindings_p ())
/* We do not need to create a binding for this name;
push_overloaded_decl will have already done so if
@@ -3972,7 +4298,7 @@ pushdecl (x)
t = push_overloaded_decl (x, PUSH_GLOBAL);
if (t == x)
add_decl_to_level (x, NAMESPACE_LEVEL (CP_DECL_CONTEXT (t)));
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
/* If declaring a type as a typedef, copy the type (unless we're
@@ -4147,7 +4473,9 @@ pushdecl (x)
if (oldlocal != NULL_TREE && !DECL_EXTERNAL (x)
/* Inline decls shadow nothing. */
&& !DECL_FROM_INLINE (x)
- && TREE_CODE (oldlocal) == PARM_DECL)
+ && TREE_CODE (oldlocal) == PARM_DECL
+ /* Don't check the `this' parameter. */
+ && !DECL_ARTIFICIAL (oldlocal))
{
bool err = false;
@@ -4207,7 +4535,7 @@ pushdecl (x)
? NAMESPACE_LEVEL (CP_DECL_CONTEXT (x))
: current_binding_level);
- return x;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, x);
}
/* Same as pushdecl, but define X in binding-level LEVEL. We rely on the
@@ -4221,6 +4549,8 @@ pushdecl_with_scope (x, level)
register struct cp_binding_level *b;
tree function_decl = current_function_decl;
+ timevar_push (TV_NAME_LOOKUP);
+
current_function_decl = NULL_TREE;
if (level->parm_flag == 2)
{
@@ -4237,7 +4567,7 @@ pushdecl_with_scope (x, level)
current_binding_level = b;
}
current_function_decl = function_decl;
- return x;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, x);
}
/* Like pushdecl, only it places X in the current namespace,
@@ -4250,6 +4580,7 @@ pushdecl_namespace_level (x)
register struct cp_binding_level *b = current_binding_level;
register tree t;
+ timevar_push (TV_NAME_LOOKUP);
t = pushdecl_with_scope (x, NAMESPACE_LEVEL (current_namespace));
/* Now, the type_shadowed stack may screw us. Munge it so it does
@@ -4259,7 +4590,7 @@ pushdecl_namespace_level (x)
tree name = DECL_NAME (x);
tree newval;
tree *ptr = (tree *)0;
- for (; b != global_binding_level; b = b->level_chain)
+ for (; !global_scope_p (b); b = b->level_chain)
{
tree shadowed = b->type_shadowed;
for (; shadowed; shadowed = TREE_CHAIN (shadowed))
@@ -4283,30 +4614,53 @@ pushdecl_namespace_level (x)
*ptr = newval;
}
}
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
-/* Like pushdecl, only it places X in GLOBAL_BINDING_LEVEL,
- if appropriate. */
+/* Like pushdecl, only it places X in the global scope if appropriate.
+ Calls cp_finish_decl to register the variable, initializing it with
+ *INIT, if INIT is non-NULL. */
-tree
-pushdecl_top_level (x)
- tree x;
+static tree
+pushdecl_top_level_1 (tree x, tree *init)
{
+ timevar_push (TV_NAME_LOOKUP);
push_to_top_level ();
x = pushdecl_namespace_level (x);
+ if (init)
+ cp_finish_decl (x, *init, NULL_TREE, 0);
pop_from_top_level ();
- return x;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, x);
+}
+
+/* Like pushdecl, only it places X in the global scope if appropriate. */
+
+tree
+pushdecl_top_level (tree x)
+{
+ return pushdecl_top_level_1 (x, NULL);
+}
+
+/* Like pushdecl, only it places X in the global scope if
+ appropriate. Calls cp_finish_decl to register the variable,
+ initializing it with INIT. */
+
+tree
+pushdecl_top_level_and_finish (tree x, tree init)
+{
+ return pushdecl_top_level_1 (x, &init);
}
/* Make the declaration of X appear in CLASS scope. */
-void
+bool
pushdecl_class_level (x)
tree x;
{
tree name;
+ bool is_valid = true;
+ timevar_push (TV_NAME_LOOKUP);
/* Get the name of X. */
if (TREE_CODE (x) == OVERLOAD)
name = DECL_NAME (get_first_fn (x));
@@ -4315,7 +4669,7 @@ pushdecl_class_level (x)
if (name)
{
- push_class_level_binding (name, x);
+ is_valid = push_class_level_binding (name, x);
if (TREE_CODE (x) == TYPE_DECL)
set_identifier_type_value (name, TREE_TYPE (x));
}
@@ -4327,8 +4681,16 @@ pushdecl_class_level (x)
tree f;
for (f = TYPE_FIELDS (TREE_TYPE (x)); f; f = TREE_CHAIN (f))
- pushdecl_class_level (f);
+ {
+ push_srcloc (DECL_SOURCE_FILE (f), DECL_SOURCE_LINE (f));
+ if (!pushdecl_class_level (f))
+ is_valid = false;
+ pop_srcloc ();
+ }
}
+ timevar_pop (TV_NAME_LOOKUP);
+
+ return is_valid;
}
/* Enter DECL into the symbol table, if that's appropriate. Returns
@@ -4361,19 +4723,19 @@ maybe_push_decl (decl)
return pushdecl (decl);
}
-/* Make the declaration(s) of X appear in CLASS scope
- under the name NAME. */
+/* Make the declaration(s) of X appear in CLASS scope under the name
+ NAME. Returns true if the binding is valid. */
-void
-push_class_level_binding (name, x)
- tree name;
- tree x;
+bool
+push_class_level_binding (tree name, tree x)
{
- tree binding;
+ cxx_binding *binding;
+
+ timevar_push (TV_NAME_LOOKUP);
/* The class_binding_level will be NULL if x is a template
parameter name in a member template. */
if (!class_binding_level)
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, true);
/* Make sure that this new member does not have the same name
as a template parameter. */
@@ -4423,7 +4785,7 @@ push_class_level_binding (name, x)
INHERITED_VALUE_BINDING_P (binding) = 0;
TREE_TYPE (shadow) = x;
IDENTIFIER_CLASS_VALUE (name) = x;
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, true);
}
}
@@ -4437,7 +4799,10 @@ push_class_level_binding (name, x)
/* Record the value we are binding NAME to so that we can know
what to pop later. */
TREE_TYPE (class_binding_level->class_shadowed) = x;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, true);
}
+
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, false);
}
/* Insert another USING_DECL into the current binding level, returning
@@ -4452,18 +4817,21 @@ push_using_decl (scope, name)
{
tree decl;
+ timevar_push (TV_NAME_LOOKUP);
+
my_friendly_assert (TREE_CODE (scope) == NAMESPACE_DECL, 383);
my_friendly_assert (TREE_CODE (name) == IDENTIFIER_NODE, 384);
for (decl = current_binding_level->usings; decl; decl = TREE_CHAIN (decl))
if (DECL_INITIAL (decl) == scope && DECL_NAME (decl) == name)
break;
if (decl)
- return namespace_bindings_p () ? decl : NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP,
+ namespace_bindings_p () ? decl : NULL_TREE);
decl = build_lang_decl (USING_DECL, name, void_type_node);
DECL_INITIAL (decl) = scope;
TREE_CHAIN (decl) = current_binding_level->usings;
current_binding_level->usings = decl;
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
/* Add namespace to using_directives. Return NULL_TREE if nothing was
@@ -4477,19 +4845,22 @@ push_using_directive (used)
tree ud = current_binding_level->using_directives;
tree iter, ancestor;
+ timevar_push (TV_NAME_LOOKUP);
+
/* Check if we already have this. */
if (purpose_member (used, ud) != NULL_TREE)
- return NULL_TREE;
-
- /* Recursively add all namespaces used. */
- for (iter = DECL_NAMESPACE_USING (used); iter; iter = TREE_CHAIN (iter))
- push_using_directive (TREE_PURPOSE (iter));
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
ancestor = namespace_ancestor (current_decl_namespace (), used);
ud = current_binding_level->using_directives;
ud = tree_cons (used, ancestor, ud);
current_binding_level->using_directives = ud;
- return ud;
+
+ /* Recursively add all namespaces used. */
+ for (iter = DECL_NAMESPACE_USING (used); iter; iter = TREE_CHAIN (iter))
+ push_using_directive (TREE_PURPOSE (iter));
+
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, ud);
}
/* DECL is a FUNCTION_DECL for a non-member function, which may have
@@ -4521,6 +4892,8 @@ push_overloaded_decl (decl, flags)
tree new_binding;
int doing_global = (namespace_bindings_p () || !(flags & PUSH_LOCAL));
+ timevar_push (TV_NAME_LOOKUP);
+
if (doing_global)
old = namespace_binding (name, DECL_CONTEXT (decl));
else
@@ -4553,7 +4926,7 @@ push_overloaded_decl (decl, flags)
decl, fn);
if (duplicate_decls (decl, fn))
- return fn;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, fn);
}
}
else if (old == error_mark_node)
@@ -4563,11 +4936,15 @@ push_overloaded_decl (decl, flags)
{
cp_error_at ("previous non-function declaration `%#D'", old);
error ("conflicts with function declaration `%#D'", decl);
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
}
- if (old || TREE_CODE (decl) == TEMPLATE_DECL)
+ if (old || TREE_CODE (decl) == TEMPLATE_DECL
+ /* If it's a using declaration, we always need to build an OVERLOAD,
+ because it's the only way to remember that the declaration comes
+ from 'using', and have the lookup behave correctly. */
+ || (flags & PUSH_USING))
{
if (old && TREE_CODE (old) != OVERLOAD)
new_binding = ovl_cons (decl, ovl_cons (old, NULL_TREE));
@@ -4609,10 +4986,10 @@ push_overloaded_decl (decl, flags)
*d = tree_cons (NULL_TREE, new_binding,
TREE_CHAIN (*d));
- /* And update the CPLUS_BINDING node. */
+ /* And update the cxx_binding node. */
BINDING_VALUE (IDENTIFIER_BINDING (name))
= new_binding;
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
/* We should always find a previous binding in this case. */
@@ -4623,7 +5000,7 @@ push_overloaded_decl (decl, flags)
push_local_binding (name, new_binding, flags);
}
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
/* Generate an implicit declaration for identifier FUNCTIONID
@@ -4807,18 +5184,20 @@ lookup_label (id)
tree decl;
struct named_label_list *ent;
+ timevar_push (TV_NAME_LOOKUP);
+
/* You can't use labels at global scope. */
if (current_function_decl == NULL_TREE)
{
error ("label `%s' referenced outside of any function",
IDENTIFIER_POINTER (id));
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
/* See if we've already got this label. */
decl = IDENTIFIER_LABEL_VALUE (id);
if (decl != NULL_TREE && DECL_CONTEXT (decl) == current_function_decl)
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
/* Record this label on the list of labels used in this function.
We do this before calling make_label_decl so that we get the
@@ -4835,7 +5214,7 @@ lookup_label (id)
/* Now fill in the information we didn't have before. */
ent->label_decl = decl;
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
}
/* Declare a local label named ID. */
@@ -5056,8 +5435,7 @@ check_goto (decl)
}
/* Define a label, specifying the location in the source file.
- Return the LABEL_DECL node for the label, if the definition is valid.
- Otherwise return 0. */
+ Return the LABEL_DECL node for the label. */
tree
define_label (filename, line, name)
@@ -5069,6 +5447,8 @@ define_label (filename, line, name)
struct named_label_list *ent;
register struct cp_binding_level *p;
+ timevar_push (TV_NAME_LOOKUP);
+
for (ent = named_labels; ent; ent = ent->next)
if (ent->label_decl == decl)
break;
@@ -5082,10 +5462,7 @@ define_label (filename, line, name)
pedwarn ("label named wchar_t");
if (DECL_INITIAL (decl) != NULL_TREE)
- {
- error ("duplicate label `%D'", decl);
- return 0;
- }
+ error ("duplicate label `%D'", decl);
else
{
/* Mark label as having been defined. */
@@ -5099,8 +5476,10 @@ define_label (filename, line, name)
ent->binding_level = current_binding_level;
}
check_previous_gotos (decl);
- return decl;
}
+
+ timevar_pop (TV_NAME_LOOKUP);
+ return decl;
}
struct cp_switch
@@ -5215,14 +5594,6 @@ getdecls ()
return current_binding_level->names;
}
-/* Return the list of type-tags (for structs, etc) of the current level. */
-
-tree
-gettags ()
-{
- return current_binding_level->tags;
-}
-
/* Store the list of declarations of the current level.
This is done for the parameter declarations of a function being defined,
after they are modified in the light of any missing parameters. */
@@ -5234,14 +5605,15 @@ storedecls (decls)
current_binding_level->names = decls;
}
-/* Similarly, store the list of tags of the current level. */
-
+/* Set the current binding TABLE for type declarations.. This is a
+ temporary workaround of the fact that the data structure classtypes
+ does not currently carry its allocated cxx_scope structure. */
void
-storetags (tags)
- tree tags;
+cxx_remember_type_decls (binding_table table)
{
- current_binding_level->tags = tags;
+ current_binding_level->type_decls = table;
}
+
/* Return the type that should be used when TYPE's name is preceded
by a tag such as 'struct' or 'union', or null if the name cannot
@@ -5306,34 +5678,41 @@ lookup_tag (form, name, binding_level, thislevel_only)
/* Nonzero if, we should look past a template parameter level, even
if THISLEVEL_ONLY. */
int allow_template_parms_p = 1;
+ bool type_is_anonymous = ANON_AGGRNAME_P (name);
+
+ timevar_push (TV_NAME_LOOKUP);
for (level = binding_level; level; level = level->level_chain)
{
register tree tail;
- if (ANON_AGGRNAME_P (name))
- for (tail = level->tags; tail; tail = TREE_CHAIN (tail))
- {
- /* There's no need for error checking here, because
- anon names are unique throughout the compilation. */
- if (TYPE_IDENTIFIER (TREE_VALUE (tail)) == name)
- return TREE_VALUE (tail);
- }
+ if (type_is_anonymous && level->type_decls != NULL)
+ {
+ tree type = binding_table_find_anon_type (level->type_decls, name);
+ /* There's no need for error checking here, because
+ anon names are unique throughout the compilation. */
+ if (type != NULL)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, type);
+ }
else if (level->namespace_p)
/* Do namespace lookup. */
for (tail = current_namespace; 1; tail = CP_DECL_CONTEXT (tail))
{
- tree old = binding_for_name (name, tail);
+ cxx_binding *binding =
+ cxx_scope_find_binding_for_name (tail, name);
+ tree old;
/* If we just skipped past a template parameter level,
even though THISLEVEL_ONLY, and we find a template
class declaration, then we use the _TYPE node for the
template. See the example below. */
if (thislevel_only && !allow_template_parms_p
- && old && BINDING_VALUE (old)
- && DECL_CLASS_TEMPLATE_P (BINDING_VALUE (old)))
- old = TREE_TYPE (BINDING_VALUE (old));
- else
- old = BINDING_TYPE (old);
+ && binding && BINDING_VALUE (binding)
+ && DECL_CLASS_TEMPLATE_P (BINDING_VALUE (binding)))
+ old = TREE_TYPE (BINDING_VALUE (binding));
+ else if (binding)
+ old = BINDING_TYPE (binding);
+ else
+ old = NULL;
if (old)
{
@@ -5342,36 +5721,36 @@ lookup_tag (form, name, binding_level, thislevel_only)
if the typedef doesn't refer to a taggable type. */
old = follow_tag_typedef (old);
if (!old)
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
if (TREE_CODE (old) != form
&& (form == ENUMERAL_TYPE
|| TREE_CODE (old) == ENUMERAL_TYPE))
{
error ("`%#D' redeclared as %C", old, form);
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
- return old;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, old);
}
if (thislevel_only || tail == global_namespace)
- return NULL_TREE;
- }
- else
- for (tail = level->tags; tail; tail = TREE_CHAIN (tail))
- {
- if (TREE_PURPOSE (tail) == name)
- {
- enum tree_code code = TREE_CODE (TREE_VALUE (tail));
-
- if (code != form
- && (form == ENUMERAL_TYPE || code == ENUMERAL_TYPE))
- {
- /* Definition isn't the kind we were looking for. */
- error ("`%#D' redeclared as %C", TREE_VALUE (tail), form);
- return NULL_TREE;
- }
- return TREE_VALUE (tail);
- }
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
+ else if (level->type_decls != NULL)
+ {
+ binding_entry entry = binding_table_find (level->type_decls, name);
+ if (entry != NULL)
+ {
+ enum tree_code code = TREE_CODE (entry->type);
+
+ if (code != form
+ && (form == ENUMERAL_TYPE || code == ENUMERAL_TYPE))
+ {
+ /* Definition isn't the kind we were looking for. */
+ error ("`%#D' redeclared as %C", entry->type, form);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
+ }
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, entry->type);
+ }
+ }
if (thislevel_only && ! level->tag_transparent)
{
if (level->template_parms_p && allow_template_parms_p)
@@ -5391,10 +5770,10 @@ lookup_tag (form, name, binding_level, thislevel_only)
continue;
}
else
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
}
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
#if 0
@@ -5420,20 +5799,17 @@ lookup_tag_reverse (type, name)
{
register struct cp_binding_level *level;
+ timevar_push (TV_NAME_LOOKUP);
+
for (level = current_binding_level; level; level = level->level_chain)
{
- register tree tail;
- for (tail = level->tags; tail; tail = TREE_CHAIN (tail))
- {
- if (TREE_VALUE (tail) == type)
- {
- if (name)
- TREE_PURPOSE (tail) = name;
- return TREE_PURPOSE (tail);
- }
- }
+ binding_entry entry = level->type_decls == NULL
+ ? NULL
+ : binding_table_reverse_maybe_remap (level->type_decls, type, name);
+ if (entry)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, entry->name);
}
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
/* Look up NAME in the NAMESPACE. */
@@ -5444,18 +5820,21 @@ lookup_namespace_name (namespace, name)
{
tree val;
tree template_id = NULL_TREE;
+ cxx_binding binding;
+
+ timevar_push (TV_NAME_LOOKUP);
my_friendly_assert (TREE_CODE (namespace) == NAMESPACE_DECL, 370);
if (TREE_CODE (name) == NAMESPACE_DECL)
/* This happens for A::B<int> when B is a namespace. */
- return name;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, name);
else if (TREE_CODE (name) == TEMPLATE_DECL)
{
/* This happens for A::B where B is a template, and there are no
template arguments. */
error ("invalid use of `%D'", name);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
namespace = ORIGINAL_NAMESPACE (namespace);
@@ -5472,13 +5851,13 @@ lookup_namespace_name (namespace, name)
my_friendly_assert (TREE_CODE (name) == IDENTIFIER_NODE, 373);
- val = make_node (CPLUS_BINDING);
- if (!qualified_lookup_using_namespace (name, namespace, val, 0))
- return error_mark_node;
+ cxx_binding_clear (&binding);
+ if (!qualified_lookup_using_namespace (name, namespace, &binding, 0))
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
- if (BINDING_VALUE (val))
+ if (binding.value)
{
- val = BINDING_VALUE (val);
+ val = binding.value;
if (template_id)
{
@@ -5497,7 +5876,7 @@ lookup_namespace_name (namespace, name)
{
error ("`%D::%D' is not a template",
namespace, name);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
}
@@ -5509,11 +5888,11 @@ lookup_namespace_name (namespace, name)
if (!val || !DECL_P(val)
|| !DECL_LANG_SPECIFIC(val)
|| !DECL_ANTICIPATED (val))
- return val;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val);
}
error ("`%D' undeclared in namespace `%D'", name, namespace);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
/* Hash a TYPENAME_TYPE. K is really of type `tree'. */
@@ -5677,10 +6056,13 @@ make_typename_type (context, name, complain)
return error_mark_node;
}
- if (complain & tf_parsing)
- type_access_control (context, tmpl);
- else
- enforce_access (context, tmpl);
+ if (complain & tf_error)
+ {
+ if (complain & tf_parsing)
+ type_access_control (context, tmpl);
+ else
+ enforce_access (context, tmpl);
+ }
return lookup_template_class (tmpl,
TREE_OPERAND (fullname, 1),
@@ -5709,10 +6091,13 @@ make_typename_type (context, name, complain)
return error_mark_node;
}
- if (complain & tf_parsing)
- type_access_control (context, t);
- else
- enforce_access (context, t);
+ if (complain & tf_error)
+ {
+ if (complain & tf_parsing)
+ type_access_control (context, t);
+ else
+ enforce_access (context, t);
+ }
if (DECL_ARTIFICIAL (t) || !(complain & tf_keep_type_decl))
t = TREE_TYPE (t);
@@ -5753,7 +6138,7 @@ make_typename_type (context, name, complain)
tree
make_unbound_class_template (context, name, complain)
tree context, name;
- int complain;
+ tsubst_flags_t complain;
{
tree t;
tree d;
@@ -5775,15 +6160,18 @@ make_unbound_class_template (context, name, complain)
if (!tmpl || !DECL_CLASS_TEMPLATE_P (tmpl))
{
- if (complain)
+ if (complain & tf_error)
error ("no class template named `%#T' in `%#T'", name, context);
return error_mark_node;
}
- if (complain & tf_parsing)
- type_access_control (context, tmpl);
- else
- enforce_access (context, tmpl);
+ if (complain & tf_error)
+ {
+ if (complain & tf_parsing)
+ type_access_control (context, tmpl);
+ else
+ enforce_access (context, tmpl);
+ }
return tmpl;
}
@@ -5806,19 +6194,20 @@ make_unbound_class_template (context, name, complain)
/* Select the right _DECL from multiple choices. */
static tree
-select_decl (binding, flags)
- tree binding;
- int flags;
+select_decl (cxx_binding *binding, int flags)
{
tree val;
+
+ timevar_push (TV_NAME_LOOKUP);
+
val = BINDING_VALUE (binding);
if (LOOKUP_NAMESPACES_ONLY (flags))
{
/* We are not interested in types. */
if (val && TREE_CODE (val) == NAMESPACE_DECL)
- return val;
- return NULL_TREE;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
}
/* If we could have a type and
@@ -5833,7 +6222,7 @@ select_decl (binding, flags)
|| !DECL_CLASS_TEMPLATE_P (val)))
val = NULL_TREE;
- return val;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val);
}
/* Unscoped lookup of a global: iterate over current namespaces,
@@ -5846,65 +6235,65 @@ unqualified_namespace_lookup (name, flags, spacesp)
int flags;
tree *spacesp;
{
- tree b = make_node (CPLUS_BINDING);
tree initial = current_decl_namespace ();
tree scope = initial;
tree siter;
struct cp_binding_level *level;
tree val = NULL_TREE;
+ cxx_binding binding;
+ timevar_push (TV_NAME_LOOKUP);
+ cxx_binding_clear (&binding);
if (spacesp)
*spacesp = NULL_TREE;
for (; !val; scope = CP_DECL_CONTEXT (scope))
{
+ cxx_binding *b;
if (spacesp)
*spacesp = tree_cons (scope, NULL_TREE, *spacesp);
- val = binding_for_name (name, scope);
+ b = cxx_scope_find_binding_for_name (scope, name);
/* Ignore anticipated built-in functions. */
- if (val && BINDING_VALUE (val)
- && DECL_P (BINDING_VALUE (val))
- && DECL_LANG_SPECIFIC (BINDING_VALUE (val))
- && DECL_ANTICIPATED (BINDING_VALUE (val)))
- {
- BINDING_VALUE (b) = NULL_TREE;
- BINDING_TYPE (b) = NULL_TREE;
- }
- else
+ if (b && BINDING_VALUE (b) && DECL_P (BINDING_VALUE (b))
+ && DECL_LANG_SPECIFIC (BINDING_VALUE (b))
+ && DECL_ANTICIPATED (BINDING_VALUE (b)))
+ /* Keep binding cleared. */;
+ else if (b)
{
/* Initialize binding for this context. */
- BINDING_VALUE (b) = BINDING_VALUE (val);
- BINDING_TYPE (b) = BINDING_TYPE (val);
+ binding.value = BINDING_VALUE (b);
+ binding.type = BINDING_TYPE (b);
}
/* Add all _DECLs seen through local using-directives. */
for (level = current_binding_level;
!level->namespace_p;
level = level->level_chain)
- if (!lookup_using_namespace (name, b, level->using_directives,
+ if (!lookup_using_namespace (name, &binding, level->using_directives,
scope, flags, spacesp))
/* Give up because of error. */
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
/* Add all _DECLs seen through global using-directives. */
/* XXX local and global using lists should work equally. */
siter = initial;
while (1)
{
- if (!lookup_using_namespace (name, b, DECL_NAMESPACE_USING (siter),
+ if (!lookup_using_namespace (name, &binding,
+ DECL_NAMESPACE_USING (siter),
scope, flags, spacesp))
/* Give up because of error. */
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
if (siter == scope) break;
siter = CP_DECL_CONTEXT (siter);
}
- val = select_decl (b, flags);
+ val = select_decl (&binding, flags);
if (scope == global_namespace)
break;
}
- return val;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val);
}
/* Combine prefer_type and namespaces_only into flags. */
@@ -5956,6 +6345,7 @@ warn_about_implicit_typename_lookup (typename, binding)
tree name = DECL_NAME (typename);
if (! (TREE_CODE (binding) == TEMPLATE_DECL
+ && CLASS_TYPE_P (subtype)
&& CLASSTYPE_TEMPLATE_INFO (subtype)
&& CLASSTYPE_TI_TEMPLATE (subtype) == binding)
&& ! (TREE_CODE (binding) == TYPE_DECL
@@ -6054,6 +6444,9 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
tree from_obj = NULL_TREE;
int flags;
int val_is_implicit_typename = 0;
+ cxx_binding *iter;
+
+ timevar_push (TV_NAME_LOOKUP);
/* Hack: copy flag set by parser, if set. */
if (only_namespace_names)
@@ -6080,8 +6473,8 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
if (type)
{
if (type == error_mark_node)
- return error_mark_node;
- if (TREE_CODE (type) == TYPENAME_TYPE && TREE_TYPE (type))
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
+ if (IMPLICIT_TYPENAME_P (type))
type = TREE_TYPE (type);
if (TYPE_P (type))
@@ -6091,11 +6484,12 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
type = global_namespace;
if (TREE_CODE (type) == NAMESPACE_DECL)
{
- val = make_node (CPLUS_BINDING);
+ cxx_binding b;
+ cxx_binding_clear (&b);
flags |= LOOKUP_COMPLAIN;
- if (!qualified_lookup_using_namespace (name, type, val, flags))
- return NULL_TREE;
- val = select_decl (val, flags);
+ if (!qualified_lookup_using_namespace (name, type, &b, flags))
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
+ val = select_decl (&b, flags);
}
else if (! IS_AGGR_TYPE (type)
|| TREE_CODE (type) == TEMPLATE_TYPE_PARM
@@ -6143,32 +6537,61 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
flags |= LOOKUP_COMPLAIN;
}
+ /* Conversion operators are handled specially because ordinary
+ unqualified name lookup will not find template conversion
+ operators. */
+ if (IDENTIFIER_TYPENAME_P (name))
+ {
+ struct cp_binding_level *level;
+
+ for (level = current_binding_level;
+ level && !level->namespace_p;
+ level = level->level_chain)
+ {
+ tree class_type;
+ tree operators;
+
+ /* A conversion operator can only be declared in a class
+ scope. */
+ if (level->parm_flag != 2)
+ continue;
+
+ /* Lookup the conversion operator in the class. */
+ class_type = level->this_class;
+ operators = lookup_fnfields (class_type, name, /*protect=*/0);
+ if (operators)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, operators);
+ }
+
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, NULL_TREE);
+ }
+
/* First, look in non-namespace scopes. */
if (current_class_type == NULL_TREE)
nonclass = 1;
- for (t = IDENTIFIER_BINDING (name); t; t = TREE_CHAIN (t))
+ for (iter = IDENTIFIER_BINDING (name); iter; iter = iter->previous)
{
tree binding;
- if (!LOCAL_BINDING_P (t) && nonclass)
+ if (!LOCAL_BINDING_P (iter) && nonclass)
/* We're not looking for class-scoped bindings, so keep going. */
continue;
/* If this is the kind of thing we're looking for, we're done. */
- if (qualify_lookup (BINDING_VALUE (t), flags))
- binding = BINDING_VALUE (t);
+ if (qualify_lookup (BINDING_VALUE (iter), flags))
+ binding = BINDING_VALUE (iter);
else if ((flags & LOOKUP_PREFER_TYPES)
- && qualify_lookup (BINDING_TYPE (t), flags))
- binding = BINDING_TYPE (t);
+ && qualify_lookup (BINDING_TYPE (iter), flags))
+ binding = BINDING_TYPE (iter);
else
binding = NULL_TREE;
/* Handle access control on types from enclosing or base classes. */
if (binding && ! yylex
- && BINDING_LEVEL (t) && BINDING_LEVEL (t)->parm_flag == 2)
- type_access_control (BINDING_LEVEL (t)->this_class, binding);
+ && BINDING_LEVEL (iter) && BINDING_LEVEL (iter)->parm_flag == 2)
+ type_access_control (BINDING_LEVEL (iter)->this_class, binding);
if (binding
&& (!val || !IMPLICIT_TYPENAME_TYPE_DECL_P (binding)))
@@ -6183,6 +6606,10 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
}
}
+ /* The name might be from an enclosing class of the current scope. */
+ if (!val && !nonclass && current_class_type)
+ val = qualify_lookup (lookup_nested_field (name, !yylex), flags);
+
/* Now lookup in namespace scopes. */
if (!val || val_is_implicit_typename)
{
@@ -6223,7 +6650,7 @@ does not match lookup in the current scope (`%#D')",
else if (from_obj)
val = from_obj;
- return val;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, val);
}
tree
@@ -6267,6 +6694,8 @@ lookup_name_current_level (name)
struct cp_binding_level *b;
tree t = NULL_TREE;
+ timevar_push (TV_NAME_LOOKUP);
+
b = current_binding_level;
while (b->parm_flag == 2)
b = b->level_chain;
@@ -6285,7 +6714,7 @@ lookup_name_current_level (name)
while (1)
{
if (BINDING_LEVEL (IDENTIFIER_BINDING (name)) == b)
- return IDENTIFIER_VALUE (name);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, IDENTIFIER_VALUE (name));
if (b->keep == 2)
b = b->level_chain;
@@ -6294,7 +6723,7 @@ lookup_name_current_level (name)
}
}
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
/* Like lookup_name_current_level, but for types. */
@@ -6304,6 +6733,8 @@ lookup_type_current_level (name)
tree name;
{
register tree t = NULL_TREE;
+
+ timevar_push (TV_NAME_LOOKUP);
my_friendly_assert (! current_binding_level->namespace_p, 980716);
@@ -6314,7 +6745,8 @@ lookup_type_current_level (name)
while (1)
{
if (purpose_member (name, b->type_shadowed))
- return REAL_IDENTIFIER_TYPE_VALUE (name);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP,
+ REAL_IDENTIFIER_TYPE_VALUE (name));
if (b->keep == 2)
b = b->level_chain;
else
@@ -6322,7 +6754,7 @@ lookup_type_current_level (name)
}
}
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
void
@@ -6512,7 +6944,7 @@ cxx_init_decl_processing ()
current_lang_name = NULL_TREE;
/* Adjust various flags based on command-line settings. */
- if (! flag_permissive && ! pedantic)
+ if (!flag_permissive)
flag_pedantic_errors = 1;
if (!flag_no_inline)
{
@@ -6545,11 +6977,15 @@ cxx_init_decl_processing ()
/* Make the binding_level structure for global names. */
pushlevel (0);
- global_binding_level = current_binding_level;
+ current_binding_level->type_decls = binding_table_new (GLOBAL_SCOPE_HT_SIZE);
/* The global level is the namespace level of ::. */
- NAMESPACE_LEVEL (global_namespace) = global_binding_level;
+ NAMESPACE_LEVEL (global_namespace) = current_binding_level;
declare_namespace_level ();
+ VARRAY_TREE_INIT (current_binding_level->static_decls,
+ 200,
+ "Static declarations");
+
/* Create the `std' namespace. */
push_namespace (std_identifier);
std_node = current_namespace;
@@ -7338,7 +7774,7 @@ start_decl (declarator, declspecs, initialized, attributes, prefix_attributes)
cplus_decl_attributes (&decl, attributes, 0);
/* If #pragma weak was used, mark the decl weak now. */
- if (current_binding_level == global_binding_level)
+ if (global_scope_p (current_binding_level))
maybe_apply_pragma_weak (decl);
if (TREE_CODE (decl) == FUNCTION_DECL
@@ -7417,7 +7853,9 @@ start_decl (declarator, declspecs, initialized, attributes, prefix_attributes)
wrong semantics. If we say -fno-conserve-space, we want this to
produce errors about redefs; to do this we force variables into the
data segment. */
- DECL_COMMON (tem) = flag_conserve_space || ! TREE_PUBLIC (tem);
+ DECL_COMMON (tem) = ((TREE_CODE (tem) != VAR_DECL
+ || !DECL_THREAD_LOCAL (tem))
+ && (flag_conserve_space || ! TREE_PUBLIC (tem)));
#endif
if (! processing_template_decl)
@@ -7436,8 +7874,6 @@ start_decl_1 (decl)
if (type == error_mark_node)
return;
- maybe_push_cleanup_level (type);
-
if (initialized)
/* Is it valid for this decl to have an initializer at all?
If not, set INITIALIZED to zero, which will indirectly
@@ -7493,17 +7929,28 @@ start_decl_1 (decl)
if (! initialized)
DECL_INITIAL (decl) = NULL_TREE;
+
+ /* Create a new scope to hold this declaration if necessary.
+ Whether or not a new scope is necessary cannot be determined
+ until after the type has been completed; if the type is a
+ specialization of a class template it is not until after
+ instantiation has occurred that TYPE_HAS_NONTRIVIAL_DESTRUCTOR
+ will be set correctly. */
+ maybe_push_cleanup_level (type);
}
-/* Handle initialization of references.
- These three arguments are from `cp_finish_decl', and have the
- same meaning here that they do there.
+/* Handle initialization of references. DECL, TYPE, and INIT have the
+ same meaning as in cp_finish_decl. *CLEANUP must be NULL on entry,
+ but will be set to a new CLEANUP_STMT if a temporary is created
+ that must be destroeyd subsequently.
- Quotes on semantics can be found in ARM 8.4.3. */
+ Returns an initializer expression to use to initialize DECL, or
+ NULL if the initialization can be performed statically.
+ Quotes on semantics can be found in ARM 8.4.3. */
+
static tree
-grok_reference_init (decl, type, init)
- tree decl, type, init;
+grok_reference_init (tree decl, tree type, tree init, tree *cleanup)
{
tree tmp;
@@ -7545,10 +7992,7 @@ grok_reference_init (decl, type, init)
DECL_INITIAL for local references (instead assigning to them
explicitly); we need to allow the temporary to be initialized
first. */
- tmp = convert_to_reference
- (type, init, CONV_IMPLICIT,
- LOOKUP_ONLYCONVERTING|LOOKUP_SPECULATIVELY|LOOKUP_NORMAL|DIRECT_BIND,
- decl);
+ tmp = initialize_reference (type, init, decl, cleanup);
if (tmp == error_mark_node)
return NULL_TREE;
@@ -7688,40 +8132,43 @@ maybe_commonize_var (decl)
if (TREE_STATIC (decl)
/* Don't mess with __FUNCTION__. */
&& ! DECL_ARTIFICIAL (decl)
- && current_function_decl
- && DECL_CONTEXT (decl) == current_function_decl
- && (DECL_DECLARED_INLINE_P (current_function_decl)
- || DECL_TEMPLATE_INSTANTIATION (current_function_decl))
- && TREE_PUBLIC (current_function_decl))
- {
- /* If flag_weak, we don't need to mess with this, as we can just
- make the function weak, and let it refer to its unique local
- copy. This works because we don't allow the function to be
- inlined. */
- if (! flag_weak)
- {
- if (DECL_INTERFACE_KNOWN (current_function_decl))
- {
- TREE_PUBLIC (decl) = 1;
- DECL_EXTERNAL (decl) = DECL_EXTERNAL (current_function_decl);
- }
- else if (DECL_INITIAL (decl) == NULL_TREE
- || DECL_INITIAL (decl) == error_mark_node)
+ && DECL_FUNCTION_SCOPE_P (decl)
+ /* Unfortunately, import_export_decl has not always been called
+ before the function is processed, so we cannot simply check
+ DECL_COMDAT. */
+ && (DECL_COMDAT (DECL_CONTEXT (decl))
+ || ((DECL_DECLARED_INLINE_P (DECL_CONTEXT (decl))
+ || DECL_TEMPLATE_INSTANTIATION (DECL_CONTEXT (decl)))
+ && TREE_PUBLIC (DECL_CONTEXT (decl)))))
+ {
+ if (flag_weak)
+ {
+ /* With weak symbols, we simply make the variable COMDAT;
+ that will cause copies in multiple translations units to
+ be merged. */
+ comdat_linkage (decl);
+ }
+ else
+ {
+ if (DECL_INITIAL (decl) == NULL_TREE
+ || DECL_INITIAL (decl) == error_mark_node)
{
+ /* Without weak symbols, we can use COMMON to merge
+ uninitialized variables. */
TREE_PUBLIC (decl) = 1;
DECL_COMMON (decl) = 1;
}
- /* else we lose. We can only do this if we can use common,
- which we can't if it has been initialized. */
-
- if (!TREE_PUBLIC (decl))
+ else
{
+ /* While for initialized variables, we must use internal
+ linkage -- which means that multiple copies will not
+ be merged. */
+ TREE_PUBLIC (decl) = 0;
+ DECL_COMMON (decl) = 0;
cp_warning_at ("sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)", decl);
cp_warning_at (" you can work around this by removing the initializer", decl);
}
}
- else
- comdat_linkage (decl);
}
else if (DECL_LANG_SPECIFIC (decl) && DECL_COMDAT (decl))
/* Set it up again; we might have set DECL_INITIAL since the last
@@ -7765,6 +8212,60 @@ next_initializable_field (tree field)
return field;
}
+/* Subroutine of reshape_init. Reshape the constructor for an array. INITP
+ is the pointer to the old constructor list (to the CONSTRUCTOR_ELTS of
+ the CONSTRUCTOR we are processing), while NEW_INIT is the CONSTRUCTOR we
+ are building.
+ ELT_TYPE is the element type of the array. MAX_INDEX is an INTEGER_CST
+ representing the size of the array minus one (the maximum index), or
+ NULL_TREE if the array was declared without specifying the size. */
+
+static bool
+reshape_init_array (tree elt_type, tree max_index,
+ tree *initp, tree new_init)
+{
+ bool sized_array_p = (max_index != NULL_TREE);
+ HOST_WIDE_INT max_index_cst = 0;
+ HOST_WIDE_INT index;
+
+ if (sized_array_p)
+ /* HWI is either 32bit or 64bit, so it must be enough to represent the
+ array size. */
+ max_index_cst = tree_low_cst (max_index, 1);
+
+ /* Loop until there are no more initializers. */
+ for (index = 0;
+ *initp && (!sized_array_p || index <= max_index_cst);
+ ++index)
+ {
+ tree element_init;
+ tree designated_index;
+
+ element_init = reshape_init (elt_type, initp);
+ if (element_init == error_mark_node)
+ return false;
+ TREE_CHAIN (element_init) = CONSTRUCTOR_ELTS (new_init);
+ CONSTRUCTOR_ELTS (new_init) = element_init;
+ designated_index = TREE_PURPOSE (element_init);
+ if (designated_index)
+ {
+ if (TREE_CODE (designated_index) != INTEGER_CST)
+ abort ();
+ if (sized_array_p
+ && tree_int_cst_lt (max_index, designated_index))
+ {
+ error ("Designated initializer `%E' larger than array "
+ "size", designated_index);
+ TREE_PURPOSE (element_init) = NULL_TREE;
+ }
+ else
+ index = tree_low_cst (designated_index, 1);
+ }
+ }
+
+ return true;
+}
+
/* Undo the brace-elision allowed by [dcl.init.aggr] in a
brace-enclosed aggregate initializer.
@@ -7798,13 +8299,15 @@ reshape_init (tree type, tree *initp)
{
my_friendly_assert (TREE_CODE (old_init) == TREE_LIST, 20021202);
TREE_VALUE (old_init) = error_mark_node;
+ *initp = TREE_CHAIN (old_init);
return old_init;
}
/* If the initializer is brace-enclosed, pull initializers from the
enclosed elements. Advance past the brace-enclosed initializer
now. */
- if (TREE_CODE (old_init_value) == CONSTRUCTOR
+ if (TREE_CODE (old_init_value) == CONSTRUCTOR
+ && TREE_TYPE (old_init_value) == NULL_TREE
&& TREE_HAS_CONSTRUCTOR (old_init_value))
{
*initp = TREE_CHAIN (old_init);
@@ -7849,8 +8352,7 @@ reshape_init (tree type, tree *initp)
non-empty subaggregate, brace elision is assumed and the
initializer is considered for the initialization of the first
member of the subaggregate. */
- if (CLASS_TYPE_P (type)
- && !brace_enclosed_p
+ if (!brace_enclosed_p
&& can_convert_arg (type, TREE_TYPE (old_init_value), old_init_value))
{
*initp = TREE_CHAIN (old_init);
@@ -7893,18 +8395,37 @@ reshape_init (tree type, tree *initp)
empty class shall have the form of an empty
initializer-list {}. */
if (!brace_enclosed_p)
- error ("initializer for `%T' must be brace-enclosed",
- type);
+ {
+ error ("initializer for `%T' must be brace-enclosed",
+ type);
+ return error_mark_node;
+ }
}
else
{
/* Loop through the initializable fields, gathering
initializers. */
- while (*initp && field)
+ while (*initp)
{
tree field_init;
+ /* Handle designated initializers, as an extension. */
+ if (TREE_PURPOSE (*initp))
+ {
+ if (pedantic)
+ pedwarn ("ISO C++ does not allow designated initializers");
+ field = lookup_field_1 (type, TREE_PURPOSE (*initp),
+ /*want_type=*/false);
+ if (!field || TREE_CODE (field) != FIELD_DECL)
+ error ("`%T' has no non-static data member named `%D'",
+ type, TREE_PURPOSE (*initp));
+ }
+ if (!field)
+ break;
+
field_init = reshape_init (TREE_TYPE (field), initp);
+ if (field_init == error_mark_node)
+ return error_mark_node;
TREE_CHAIN (field_init) = CONSTRUCTOR_ELTS (new_init);
CONSTRUCTOR_ELTS (new_init) = field_init;
/* [dcl.init.aggr]
@@ -7914,34 +8435,21 @@ reshape_init (tree type, tree *initp)
initializer for the first member of the union. */
if (TREE_CODE (type) == UNION_TYPE)
break;
- if (TREE_PURPOSE (field_init))
- field = TREE_PURPOSE (field_init);
field = next_initializable_field (TREE_CHAIN (field));
}
}
}
- else if (TREE_CODE (type) == ARRAY_TYPE)
+ else if ((TREE_CODE (type) == ARRAY_TYPE)|| (TREE_CODE (type) == VECTOR_TYPE))
{
- tree index;
tree max_index;
/* If the bound of the array is known, take no more initializers
than are allowed. */
- max_index = (TYPE_DOMAIN (type)
+ max_index = ((TYPE_DOMAIN (type) && (TREE_CODE (type) == ARRAY_TYPE))
? array_type_nelts (type) : NULL_TREE);
- /* Loop through the array elements, gathering initializers. */
- for (index = size_zero_node;
- *initp && (!max_index || !tree_int_cst_lt (max_index, index));
- index = size_binop (PLUS_EXPR, index, size_one_node))
- {
- tree element_init;
-
- element_init = reshape_init (TREE_TYPE (type), initp);
- TREE_CHAIN (element_init) = CONSTRUCTOR_ELTS (new_init);
- CONSTRUCTOR_ELTS (new_init) = element_init;
- if (TREE_PURPOSE (element_init))
- index = TREE_PURPOSE (element_init);
- }
+ if (!reshape_init_array (TREE_TYPE (type), max_index,
+ initp, new_init))
+ return error_mark_node;
}
else
abort ();
@@ -7963,15 +8471,17 @@ reshape_init (tree type, tree *initp)
}
/* Verify INIT (the initializer for DECL), and record the
- initialization in DECL_INITIAL, if appropriate.
+ initialization in DECL_INITIAL, if appropriate. CLEANUP is as for
+ grok_reference_init.
If the return value is non-NULL, it is an expression that must be
evaluated dynamically to initialize DECL. */
static tree
-check_initializer (tree decl, tree init, int flags)
+check_initializer (tree decl, tree init, int flags, tree *cleanup)
{
tree type = TREE_TYPE (decl);
+ tree init_code = NULL;
/* If `start_decl' didn't like having an initialization, ignore it now. */
if (init != NULL_TREE && DECL_INITIAL (decl) == NULL_TREE)
@@ -8019,7 +8529,7 @@ check_initializer (tree decl, tree init, int flags)
init = NULL_TREE;
}
else if (!DECL_EXTERNAL (decl) && TREE_CODE (type) == REFERENCE_TYPE)
- init = grok_reference_init (decl, type, init);
+ init = grok_reference_init (decl, type, init, cleanup);
else if (init)
{
if (TREE_CODE (init) == CONSTRUCTOR && TREE_HAS_CONSTRUCTOR (init))
@@ -8082,7 +8592,10 @@ check_initializer (tree decl, tree init, int flags)
{
dont_use_constructor:
if (TREE_CODE (init) != TREE_VEC)
- init = store_init_value (decl, init);
+ {
+ init_code = store_init_value (decl, init);
+ init = NULL;
+ }
}
}
else if (DECL_EXTERNAL (decl))
@@ -8105,9 +8618,9 @@ check_initializer (tree decl, tree init, int flags)
check_for_uninitialized_const_var (decl);
if (init && init != error_mark_node)
- init = build (INIT_EXPR, type, decl, init);
+ init_code = build (INIT_EXPR, type, decl, init);
- return init;
+ return init_code;
}
/* If DECL is not a local variable, give it RTL. */
@@ -8204,14 +8717,16 @@ void
maybe_inject_for_scope_var (decl)
tree decl;
{
+ timevar_push (TV_NAME_LOOKUP);
+
if (!DECL_NAME (decl))
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, (void)0);
/* 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;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, (void)0);
if (current_binding_level->is_for_scope)
{
@@ -8227,8 +8742,8 @@ maybe_inject_for_scope_var (decl)
Otherwise, we need to preserve the temp slot for decl to last
into the outer binding level. */
- tree outer_binding
- = TREE_CHAIN (IDENTIFIER_BINDING (DECL_NAME (decl)));
+ cxx_binding *outer_binding
+ = IDENTIFIER_BINDING (DECL_NAME (decl))->previous;
if (outer_binding && BINDING_LEVEL (outer_binding) == outer
&& (TREE_CODE (BINDING_VALUE (outer_binding))
@@ -8242,6 +8757,8 @@ maybe_inject_for_scope_var (decl)
else if (DECL_IN_MEMORY_P (decl))
preserve_temp_slots (DECL_RTL (decl));
}
+
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Generate code to initialize DECL (a local variable). */
@@ -8252,6 +8769,7 @@ initialize_local_var (decl, init)
tree init;
{
tree type = TREE_TYPE (decl);
+ tree cleanup;
my_friendly_assert (TREE_CODE (decl) == VAR_DECL
|| TREE_CODE (decl) == RESULT_DECL,
@@ -8301,17 +8819,9 @@ initialize_local_var (decl, init)
}
/* Generate a cleanup, if necessary. */
- if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type))
- {
- tree cleanup;
-
- /* Compute the cleanup. */
- cleanup = cxx_maybe_build_cleanup (decl);
-
- /* Record the cleanup required for this declaration. */
- if (DECL_SIZE (decl) && cleanup)
- finish_decl_cleanup (decl, cleanup);
- }
+ cleanup = cxx_maybe_build_cleanup (decl);
+ if (DECL_SIZE (decl) && cleanup)
+ finish_decl_cleanup (decl, cleanup);
}
/* Finish processing of a declaration;
@@ -8331,8 +8841,9 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
tree asmspec_tree;
int flags;
{
- register tree type;
+ tree type;
tree ttype = NULL_TREE;
+ tree cleanup;
const char *asmspec = NULL;
int was_readonly = 0;
@@ -8343,8 +8854,11 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
return;
}
+ /* Assume no cleanup is required. */
+ cleanup = NULL_TREE;
+
/* If a name was specified, get the string. */
- if (current_binding_level == global_binding_level)
+ if (global_scope_p (current_binding_level))
asmspec_tree = maybe_apply_renaming_pragma (decl, asmspec_tree);
if (asmspec_tree)
asmspec = TREE_STRING_POINTER (asmspec_tree);
@@ -8422,15 +8936,17 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
if (TREE_CODE (decl) != FUNCTION_DECL)
ttype = target_type (type);
- if (! DECL_EXTERNAL (decl) && TREE_READONLY (decl)
- && TYPE_NEEDS_CONSTRUCTING (type))
+
+ /* Currently, GNU C++ puts constants in text space, making them
+ impossible to initialize. In the future, one would hope for
+ an operating system which understood the difference between
+ initialization and the running of a program. */
+ if (! DECL_EXTERNAL (decl) && TREE_READONLY (decl))
{
- /* Currently, GNU C++ puts constants in text space, making them
- impossible to initialize. In the future, one would hope for
- an operating system which understood the difference between
- initialization and the running of a program. */
was_readonly = 1;
- TREE_READONLY (decl) = 0;
+ if (TYPE_NEEDS_CONSTRUCTING (type)
+ || TREE_CODE (type) == REFERENCE_TYPE)
+ TREE_READONLY (decl) = 0;
}
if (TREE_CODE (decl) == FIELD_DECL && asmspec)
@@ -8442,7 +8958,7 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
make_decl_rtl (decl, asmspec);
}
else if (TREE_CODE (decl) == RESULT_DECL)
- init = check_initializer (decl, init, flags);
+ init = check_initializer (decl, init, flags, &cleanup);
else if (TREE_CODE (decl) == VAR_DECL)
{
/* Only PODs can have thread-local storage. Other types may require
@@ -8459,7 +8975,7 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
is *not* defined. */
&& (!DECL_EXTERNAL (decl) || init))
{
- init = check_initializer (decl, init, flags);
+ init = check_initializer (decl, init, flags, &cleanup);
/* Thread-local storage cannot be dynamically initialized. */
if (DECL_THREAD_LOCAL (decl) && init)
{
@@ -8481,6 +8997,7 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
necessary zero-initialization has already been performed. */
if (TREE_STATIC (decl) && !DECL_INITIAL (decl))
DECL_INITIAL (decl) = build_zero_init (TREE_TYPE (decl),
+ /*nelts=*/NULL_TREE,
/*static_storage_p=*/true);
/* Remember that the initialization for this variable has
taken place. */
@@ -8577,6 +9094,11 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
}
}
+ /* If a CLEANUP_STMT was created to destroy a temporary bound to a
+ reference, insert it in the statement-tree now. */
+ if (cleanup)
+ add_stmt (cleanup);
+
finish_end:
if (was_readonly)
@@ -9233,13 +9755,19 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
DECL_NOT_REALLY_EXTERN (decl) = 1;
}
+ DID_INLINE_FUNC (decl) = 0;
/* If the declaration was declared inline, mark it as such. */
if (inlinep)
DECL_DECLARED_INLINE_P (decl) = 1;
/* We inline functions that are explicitly declared inline, or, when
the user explicitly asks us to, all functions. */
- if (DECL_DECLARED_INLINE_P (decl) || flag_inline_trees == 2)
+ if (DECL_DECLARED_INLINE_P (decl))
DECL_INLINE (decl) = 1;
+ if (flag_inline_trees == 2 && !DECL_INLINE (decl) && funcdef_flag)
+ {
+ DID_INLINE_FUNC (decl) = 1;
+ DECL_INLINE (decl) = 1;
+ }
DECL_EXTERNAL (decl) = 1;
if (quals != NULL_TREE && TREE_CODE (type) == FUNCTION_TYPE)
@@ -9532,8 +10060,7 @@ grokvardecl (type, name, specbits_in, initialized, constp, scope)
TYPE, which is a POINTER_TYPE to a METHOD_TYPE. */
tree
-build_ptrmemfunc_type (type)
- tree type;
+build_ptrmemfunc_type (tree type)
{
tree fields[4];
tree t;
@@ -9707,9 +10234,8 @@ compute_array_index_type (name, size)
error ("size of array is negative");
size = integer_one_node;
}
- /* Except that an extension we allow zero-sized arrays. We
- always allow them in system headers because glibc uses
- them. */
+ /* As an extension we allow zero-sized arrays. We always allow
+ them in system headers because glibc uses them. */
else if (integer_zerop (size) && pedantic && !in_system_header)
{
if (name)
@@ -10236,6 +10762,14 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
ctype = cname;
}
+ /* If the parser sees something like "void a::b" where
+ "a::b" is a namespace, it will build a SCOPE_REF with
+ a NAMESPACE_DECL, rather than an IDENTIFIER_NODE, as
+ the second operand. Since the SCOPE_REF is being
+ used as a declarator, we recover from that here. */
+ if (TREE_CODE (TREE_OPERAND (decl, 1)) == NAMESPACE_DECL)
+ TREE_OPERAND (decl, 1) = DECL_NAME (TREE_OPERAND (decl, 1));
+
if (ctype && TREE_CODE (TREE_OPERAND (decl, 1)) == TYPE_DECL
&& constructor_name_p (DECL_NAME (TREE_OPERAND (decl, 1)),
ctype))
@@ -11449,11 +11983,14 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
type = error_mark_node;
}
- if (decl_context == FIELD
+ if ((decl_context == FIELD || decl_context == PARM)
&& !processing_template_decl
&& variably_modified_type_p (type))
{
- error ("data member may not have variably modified type `%T'", type);
+ if (decl_context == FIELD)
+ error ("data member may not have variably modified type `%T'", type);
+ else
+ error ("parameter may not have variably modified type `%T'", type);
type = error_mark_node;
}
@@ -11467,7 +12004,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
if (RIDBIT_SETP (RID_MUTABLE, specbits))
{
- if (current_class_name == NULL_TREE || decl_context == PARM || friendp)
+ if (decl_context != FIELD || friendp)
{
error ("non-member `%s' cannot be declared `mutable'", name);
RIDBIT_RESET (RID_MUTABLE, specbits);
@@ -11883,7 +12420,10 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
members of other classes. */
/* All method decls are public, so tell grokfndecl to set
TREE_PUBLIC, also. */
- decl = grokfndecl (ctype, type, declarator, declarator,
+ decl = grokfndecl (ctype, type,
+ TREE_CODE (declarator) != TEMPLATE_ID_EXPR
+ ? declarator : dname,
+ declarator,
virtualp, flags, quals, raises,
friendp ? -1 : 0, friendp, 1, 0, funcdef_flag,
template_count, in_namespace);
@@ -12211,9 +12751,10 @@ require_complete_types_for_parms (parms)
/* grokparms will have already issued an error */
TREE_TYPE (parms) = error_mark_node;
else if (complete_type_or_else (TREE_TYPE (parms), parms))
- layout_decl (parms, 0);
- else
- TREE_TYPE (parms) = error_mark_node;
+ {
+ layout_decl (parms, 0);
+ DECL_ARG_TYPE (parms) = type_passed_as (TREE_TYPE (parms));
+ }
}
}
@@ -12813,7 +13354,7 @@ grok_op_properties (decl, friendp)
&& DERIVED_FROM_P (t, current_class_type))
what = "a base class";
- if (what)
+ if (what && warn_conversion)
warning ("conversion to %s%s will never use a type conversion operator",
ref ? "a reference to " : "", what);
}
@@ -12994,6 +13535,38 @@ tag_name (code)
}
}
+/* Name lookup in an elaborated-type-specifier (after the keyword
+ indicated by TAG_CODE) has found TYPE. If the
+ elaborated-type-specifier is invalid, issue a diagnostic and return
+ error_mark_node; otherwise, return TYPE itself. */
+
+static tree
+check_elaborated_type_specifier (enum tag_types tag_code,
+ tree type)
+{
+ tree t;
+
+ t = follow_tag_typedef (type);
+
+ /* [dcl.type.elab] If the identifier resolves to a typedef-name or a
+ template type-parameter, the elaborated-type-specifier is
+ ill-formed. */
+ if (!t)
+ {
+ error ("using typedef-name `%D' after `%s'",
+ TYPE_NAME (type), tag_name (tag_code));
+ t = error_mark_node;
+ }
+ else if (TREE_CODE (type) == TEMPLATE_TYPE_PARM)
+ {
+ error ("using template type parameter `%T' after `%s'",
+ type, tag_name (tag_code));
+ t = error_mark_node;
+ }
+
+ return t;
+}
+
/* Get the struct, enum or union (CODE says which) with tag NAME.
Define the tag as a forward-reference if it is not defined.
@@ -13013,6 +13586,8 @@ xref_tag (enum tag_types tag_code, tree name, tree attributes,
struct cp_binding_level *b = current_binding_level;
tree context = NULL_TREE;
+ timevar_push (TV_NAME_LOOKUP);
+
switch (tag_code)
{
case record_type:
@@ -13079,20 +13654,9 @@ xref_tag (enum tag_types tag_code, tree name, tree attributes,
{
if (t)
{
- ref = follow_tag_typedef (t);
-
- /* [dcl.type.elab] If the identifier resolves to a
- typedef-name or a template type-parameter, the
- elaborated-type-specifier is ill-formed. */
- if (!ref)
- {
- pedwarn ("using typedef-name `%D' after `%s'",
- TYPE_NAME (t), tag_name (tag_code));
- ref = t;
- }
- else if (TREE_CODE (t) == TEMPLATE_TYPE_PARM)
- error ("using template type parameter `%T' after `%s'",
- t, tag_name (tag_code));
+ ref = check_elaborated_type_specifier (tag_code, t);
+ if (ref == error_mark_node)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
else
ref = lookup_tag (code, name, b, 0);
@@ -13111,9 +13675,15 @@ xref_tag (enum tag_types tag_code, tree name, tree attributes,
template, so we want this type. */
ref = DECL_TEMPLATE_RESULT (ref);
- if (ref && TREE_CODE (ref) == TYPE_DECL
- && TREE_CODE (TREE_TYPE (ref)) == code)
- ref = TREE_TYPE (ref);
+ if (ref && TREE_CODE (ref) == TYPE_DECL)
+ {
+ ref = check_elaborated_type_specifier (tag_code,
+ TREE_TYPE (ref));
+ if (ref == error_mark_node)
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
+ if (ref && TREE_CODE (ref) != code)
+ ref = NULL_TREE;
+ }
else
ref = NULL_TREE;
}
@@ -13172,25 +13742,7 @@ xref_tag (enum tag_types tag_code, tree name, tree attributes,
if (code == ENUMERAL_TYPE)
{
error ("use of enum `%#D' without previous declaration", name);
-
- ref = make_node (ENUMERAL_TYPE);
-
- /* Give the type a default layout like unsigned int
- to avoid crashing if it does not get defined. */
- TYPE_MODE (ref) = TYPE_MODE (unsigned_type_node);
- TYPE_ALIGN (ref) = TYPE_ALIGN (unsigned_type_node);
- TYPE_USER_ALIGN (ref) = 0;
- TREE_UNSIGNED (ref) = 1;
- TYPE_PRECISION (ref) = TYPE_PRECISION (unsigned_type_node);
- TYPE_MIN_VALUE (ref) = TYPE_MIN_VALUE (unsigned_type_node);
- TYPE_MAX_VALUE (ref) = TYPE_MAX_VALUE (unsigned_type_node);
-
- /* Enable us to recognize when a type is created in class context.
- To do nested classes correctly, this should probably be cleared
- out when we leave this classes scope. Currently this in only
- done in `start_enum'. */
-
- pushtag (name, ref, globalize);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
else
{
@@ -13215,7 +13767,7 @@ xref_tag (enum tag_types tag_code, tree name, tree attributes,
TYPE_ATTRIBUTES (ref) = attributes;
- return ref;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, ref);
}
tree
@@ -13468,44 +14020,56 @@ finish_enum (enumtype)
/* We built up the VALUES in reverse order. */
TYPE_VALUES (enumtype) = nreverse (TYPE_VALUES (enumtype));
- /* [dcl.enum]
-
- Following the closing brace of an enum-specifier, each
- enumerator has the type of its enumeration. Prior to the
- closing brace, the type of each enumerator is the type of
- its initializing value. */
- for (pair = TYPE_VALUES (enumtype); pair; pair = TREE_CHAIN (pair))
- TREE_TYPE (TREE_VALUE (pair)) = enumtype;
-
- /* For an enum defined in a template, all further processing is
- postponed until the template is instantiated. */
+ /* For an enum defined in a template, just set the type of the values;
+ all further processing is postponed until the template is
+ instantiated. We need to set the type so that tsubst of a CONST_DECL
+ works. */
if (processing_template_decl)
{
+ for (pair = TYPE_VALUES (enumtype); pair; pair = TREE_CHAIN (pair))
+ TREE_TYPE (TREE_VALUE (pair)) = enumtype;
if (at_function_scope_p ())
add_stmt (build_min (TAG_DEFN, enumtype));
return;
}
- /* Figure out what the minimum and maximum values of the enumerators
- are. */
if (TYPE_VALUES (enumtype))
{
minnode = maxnode = NULL_TREE;
- for (pair = TYPE_VALUES (enumtype);
- pair;
- pair = TREE_CHAIN (pair))
+ for (pair = TYPE_VALUES (enumtype); pair; pair = TREE_CHAIN (pair))
{
- tree value;
+ tree decl = TREE_VALUE (pair);
+ tree value = DECL_INITIAL (decl);
- value = DECL_INITIAL (TREE_VALUE (pair));
+ /* [dcl.enum]: Following the closing brace of an enum-specifier,
+ each enumerator has the type of its enumeration. Prior to the
+ closing brace, the type of each enumerator is the type of its
+ initializing value. */
+ TREE_TYPE (decl) = enumtype;
+ /* Figure out what the minimum and maximum values of the
+ enumerators are. */
if (!minnode)
minnode = maxnode = value;
else if (tree_int_cst_lt (maxnode, value))
maxnode = value;
else if (tree_int_cst_lt (value, minnode))
minnode = value;
+
+ /* Set the TREE_TYPE for the values as well. That's so that when
+ we call decl_constant_value we get an entity of the right type
+ (but with the constant value). But first make a copy so we
+ don't clobber shared INTEGER_CSTs. */
+ if (TREE_TYPE (value) != enumtype)
+ {
+ value = DECL_INITIAL (decl) = copy_node (value);
+ TREE_TYPE (value) = enumtype;
+ }
+
+ /* In addition, transform the TYPE_VALUES list to contain the
+ values, rather than the CONST_DECLs for them. */
+ TREE_VALUE (pair) = value;
}
}
else
@@ -13520,21 +14084,21 @@ finish_enum (enumtype)
highprec = min_precision (maxnode, unsignedp);
precision = MAX (lowprec, highprec);
- /* Set the TREE_TYPE for the values as well. That's so that when we
- call decl_constant_value we get an entity of the right type (but
- with the constant value). In addition, transform the TYPE_VALUES
- list to contain the values, rather than the CONST_DECLs for them. */
- for (pair = TYPE_VALUES (enumtype); pair; pair = TREE_CHAIN (pair))
+ /* DR 377
+
+ IF no integral type can represent all the enumerator values, the
+ enumeration is ill-formed. */
+ if (precision > TYPE_PRECISION (long_long_integer_type_node))
{
- tree value = DECL_INITIAL (TREE_VALUE (pair));
-
- TREE_TYPE (value) = enumtype;
- TREE_VALUE (pair) = value;
+ error ("no integral type can represent all of the enumerator values "
+ "for `%T'", enumtype);
+ precision = TYPE_PRECISION (long_long_integer_type_node);
}
- /* Set TYPE_MIN_VALUE and TYPE_MAX_VALUE according to `precision'. */
- TYPE_SIZE (enumtype) = NULL_TREE;
+ /* Compute the minium and maximum values for the type, the size of
+ the type, and so forth. */
TYPE_PRECISION (enumtype) = precision;
+ TYPE_SIZE (enumtype) = NULL_TREE;
if (unsignedp)
fixup_unsigned_type (enumtype);
else
@@ -13583,7 +14147,6 @@ build_enumerator (name, value, enumtype)
tree decl;
tree context;
tree type;
- tree values;
/* Remove no-op casts from the value. */
if (value)
@@ -13630,26 +14193,9 @@ build_enumerator (name, value, enumtype)
}
/* Remove no-op casts from the value. */
- if (value)
- STRIP_TYPE_NOPS (value);
-#if 0
- /* To fix MAX_VAL enum consts. (bkoz) */
- TREE_TYPE (value) = integer_type_node;
-#endif
+ STRIP_TYPE_NOPS (value);
}
- /* We always have to copy here; not all INTEGER_CSTs are unshared.
- Even in other cases, we will later (in finish_enum) be setting
- the type of VALUE. But, we don't need to make a copy if this
- VALUE is one of the enumeration constants for this same
- enumeration type. */
- for (values = TYPE_VALUES (enumtype); values; values = TREE_CHAIN (values))
- if (TREE_VALUE (values) == value)
- break;
- /* If we didn't break out of the loop, then we do need a copy. */
- if (!values && value)
- value = copy_node (value);
-
/* C++ associates enums with global, function, or class declarations. */
context = current_scope ();
@@ -13677,7 +14223,6 @@ build_enumerator (name, value, enumtype)
a function could mean local to a class method. */
decl = build_decl (CONST_DECL, name, type);
- DECL_CONTEXT (decl) = FROB_CONTEXT (context);
DECL_INITIAL (decl) = value;
TREE_READONLY (decl) = 1;
@@ -13687,7 +14232,14 @@ build_enumerator (name, value, enumtype)
things like `S::i' later.) */
finish_member_declaration (decl);
else
- pushdecl (decl);
+ {
+ pushdecl (decl);
+ /* Contrary to finish_member_declaration, pushdecl does not properly
+ set the DECL_CONTEXT. Do that now here. Doing that before calling
+ pushdecl will confuse the logic used in that function. Hopefully,
+ future versions will implement a more straight logic. */
+ DECL_CONTEXT (decl) = FROB_CONTEXT (context);
+ }
/* Add this enumeration constant to the list for this type. */
TYPE_VALUES (enumtype) = tree_cons (name, decl, TYPE_VALUES (enumtype));
@@ -13806,7 +14358,7 @@ start_function (declspecs, declarator, attrs, flags)
}
else
{
- decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, 1, NULL);
+ decl1 = grokdeclarator (declarator, declspecs, FUNCDEF, 1, &attrs);
/* If the declarator is not suitable for a function definition,
cause a syntax error. */
if (decl1 == NULL_TREE || TREE_CODE (decl1) != FUNCTION_DECL)
@@ -13815,7 +14367,7 @@ start_function (declspecs, declarator, attrs, flags)
cplus_decl_attributes (&decl1, attrs, 0);
/* If #pragma weak was used, mark the decl weak now. */
- if (current_binding_level == global_binding_level)
+ if (global_scope_p (current_binding_level))
maybe_apply_pragma_weak (decl1);
fntype = TREE_TYPE (decl1);
@@ -14172,7 +14724,6 @@ store_parm_decls (current_function_parms)
function. This is all and only the PARM_DECLs that were
pushed into scope by the loop above. */
DECL_ARGUMENTS (fndecl) = getdecls ();
- storetags (gettags ());
}
else
DECL_ARGUMENTS (fndecl) = NULL_TREE;
@@ -14416,6 +14967,15 @@ finish_function (flags)
if (fndecl == NULL_TREE)
return error_mark_node;
+ if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fndecl)
+ && DECL_VIRTUAL_P (fndecl)
+ && !processing_template_decl)
+ {
+ tree fnclass = DECL_CONTEXT (fndecl);
+ if (fndecl == CLASSTYPE_KEY_METHOD (fnclass))
+ keyed_classes = tree_cons (NULL_TREE, fnclass, keyed_classes);
+ }
+
nested = function_depth > 1;
fntype = TREE_TYPE (fndecl);
@@ -14453,6 +15013,12 @@ finish_function (flags)
/* If we're saving up tree structure, tie off the function now. */
finish_stmt_tree (&DECL_SAVED_TREE (fndecl));
+ /* If this function can't throw any exceptions, remember that. */
+ if (!processing_template_decl
+ && !cp_function_chain->can_throw
+ && !flag_non_call_exceptions)
+ TREE_NOTHROW (fndecl) = 1;
+
/* This must come after expand_function_end because cleanups might
have declarations (from inline functions) that need to go into
this function's blocks. */
@@ -14487,11 +15053,20 @@ finish_function (flags)
if (current_function_return_value)
{
tree r = current_function_return_value;
- /* This is only worth doing for fns that return in memory--and
- simpler, since we don't have to worry about promoted modes. */
+ tree outer;
+
if (r != error_mark_node
- && aggregate_value_p (TREE_TYPE (TREE_TYPE (fndecl))))
+ /* This is only worth doing for fns that return in memory--and
+ simpler, since we don't have to worry about promoted modes. */
+ && aggregate_value_p (TREE_TYPE (TREE_TYPE (fndecl)))
+ /* Only allow this for variables declared in the outer scope of
+ the function so we know that their lifetime always ends with a
+ return; see g++.dg/opt/nrv6.C. We could be more flexible if
+ we were to do this optimization in tree-ssa. */
+ && (outer = BLOCK_SUBBLOCKS (DECL_INITIAL (fndecl)),
+ chain_member (r, BLOCK_VARS (outer))))
{
+
DECL_ALIGN (r) = DECL_ALIGN (DECL_RESULT (fndecl));
walk_tree_without_duplicates (&DECL_SAVED_TREE (fndecl),
nullify_returns_r, r);
@@ -14631,6 +15206,7 @@ start_method (declspecs, declarator, attrlist)
DECL_DECLARED_INLINE_P (fndecl) = 1;
+ DID_INLINE_FUNC (fndecl) = 0;
if (flag_default_inline)
DECL_INLINE (fndecl) = 1;
@@ -14894,7 +15470,6 @@ cp_tree_node_structure (t)
{
case DEFAULT_ARG: return TS_CP_IDENTIFIER;
case IDENTIFIER_NODE: return TS_CP_IDENTIFIER;
- case CPLUS_BINDING: return TS_CP_BINDING;
case OVERLOAD: return TS_CP_OVERLOAD;
case TEMPLATE_PARM_INDEX: return TS_CP_TPI;
case PTRMEM_CST: return TS_CP_PTRMEM;
diff --git a/gcc/cp/decl.h b/gcc/cp/decl.h
index eeac80f29ad..2b917a4d5e2 100644
--- a/gcc/cp/decl.h
+++ b/gcc/cp/decl.h
@@ -38,12 +38,6 @@ extern tree grokdeclarator PARAMS ((tree, tree, enum decl_context, int,
or a chain or parameter decls here. */
extern GTY(()) tree last_function_parms;
-/* A list of objects which have constructors or destructors
- which reside in the global scope. The decl is stored in
- the TREE_VALUE slot and the initializer is stored
- in the TREE_PURPOSE slot. */
-extern GTY(()) tree static_aggregates;
-
#ifdef DEBUG_CP_BINDING_LEVELS
/* Purely for debugging purposes. */
extern int debug_bindings_indentation;
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 248fa2d6725..f172e84c974 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1,6 +1,6 @@
/* Process declarations and variables for C compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -45,6 +45,7 @@ Boston, MA 02111-1307, USA. */
#include "cpplib.h"
#include "target.h"
#include "c-common.h"
+#include "timevar.h"
extern cpp_reader *parse_in;
/* This structure contains information about the initializations
@@ -61,9 +62,8 @@ typedef struct priority_info_s {
static void mark_vtable_entries PARAMS ((tree));
static void grok_function_init PARAMS ((tree, tree));
static int maybe_emit_vtables (tree);
-static int is_namespace_ancestor PARAMS ((tree, tree));
static void add_using_namespace PARAMS ((tree, tree, int));
-static tree ambiguous_decl PARAMS ((tree, tree, tree,int));
+static cxx_binding *ambiguous_decl (tree, cxx_binding *, cxx_binding *,int);
static tree build_anon_union_vars PARAMS ((tree, tree*, int, int));
static int acceptable_java_type PARAMS ((tree));
static void output_vtable_inherit PARAMS ((tree));
@@ -84,10 +84,9 @@ static void finish_static_initialization_or_destruction PARAMS ((tree));
static void generate_ctor_or_dtor_function PARAMS ((int, int));
static int generate_ctor_and_dtor_functions_for_priority
PARAMS ((splay_tree_node, void *));
-static tree prune_vars_needing_no_initialization PARAMS ((tree));
+static tree prune_vars_needing_no_initialization PARAMS ((tree *));
static void write_out_vars PARAMS ((tree));
static void import_export_class PARAMS ((tree));
-static tree key_method PARAMS ((tree));
static tree get_guard_bits PARAMS ((tree));
/* A list of static class variables. This is needed, because a
@@ -674,11 +673,8 @@ tree
check_classfn (ctype, function)
tree ctype, function;
{
- tree fn_name = DECL_NAME (function);
- tree fndecl, fndecls;
- tree method_vec = CLASSTYPE_METHOD_VEC (complete_type (ctype));
- tree *methods = 0;
- tree *end = 0;
+ int ix;
+ int is_template;
if (DECL_USE_TEMPLATE (function)
&& !(TREE_CODE (function) == TEMPLATE_DECL
@@ -695,81 +691,99 @@ check_classfn (ctype, function)
reason we should, either. We let our callers know we didn't
find the method, but we don't complain. */
return NULL_TREE;
-
- if (method_vec != 0)
+
+ /* OK, is this a definition of a member template? */
+ is_template = (TREE_CODE (function) == TEMPLATE_DECL
+ || (processing_template_decl - template_class_depth (ctype)));
+
+ ix = lookup_fnfields_1 (complete_type (ctype),
+ DECL_CONSTRUCTOR_P (function) ? ctor_identifier :
+ DECL_DESTRUCTOR_P (function) ? dtor_identifier :
+ DECL_NAME (function));
+
+ if (ix >= 0)
{
- methods = &TREE_VEC_ELT (method_vec, 0);
- end = TREE_VEC_END (method_vec);
-
- /* First suss out ctors and dtors. */
- if (*methods && fn_name == DECL_NAME (OVL_CURRENT (*methods))
- && DECL_CONSTRUCTOR_P (function))
- goto got_it;
- if (*++methods && fn_name == DECL_NAME (OVL_CURRENT (*methods))
- && DECL_DESTRUCTOR_P (function))
- goto got_it;
-
- while (++methods != end && *methods)
+ tree methods = CLASSTYPE_METHOD_VEC (ctype);
+ tree fndecls, fndecl = 0;
+ bool is_conv_op;
+ const char *format = NULL;
+
+ for (fndecls = TREE_VEC_ELT (methods, ix);
+ fndecls; fndecls = OVL_NEXT (fndecls))
+ {
+ tree p1, p2;
+
+ fndecl = OVL_CURRENT (fndecls);
+ p1 = TYPE_ARG_TYPES (TREE_TYPE (function));
+ p2 = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
+
+ /* We cannot simply call decls_match because this doesn't
+ work for static member functions that are pretending to
+ be methods, and because the name may have been changed by
+ asm("new_name"). */
+
+ /* Get rid of the this parameter on functions that become
+ static. */
+ if (DECL_STATIC_FUNCTION_P (fndecl)
+ && TREE_CODE (TREE_TYPE (function)) == METHOD_TYPE)
+ p1 = TREE_CHAIN (p1);
+
+ /* A member template definition only matches a member template
+ declaration. */
+ if (is_template != (TREE_CODE (fndecl) == TEMPLATE_DECL))
+ continue;
+
+ if (same_type_p (TREE_TYPE (TREE_TYPE (function)),
+ TREE_TYPE (TREE_TYPE (fndecl)))
+ && compparms (p1, p2)
+ && (DECL_TEMPLATE_SPECIALIZATION (function)
+ == DECL_TEMPLATE_SPECIALIZATION (fndecl))
+ && (!DECL_TEMPLATE_SPECIALIZATION (function)
+ || (DECL_TI_TEMPLATE (function)
+ == DECL_TI_TEMPLATE (fndecl))))
+ return fndecl;
+ }
+ error ("prototype for `%#D' does not match any in class `%T'",
+ function, ctype);
+ is_conv_op = DECL_CONV_FN_P (fndecl);
+
+ if (is_conv_op)
+ ix = CLASSTYPE_FIRST_CONVERSION_SLOT;
+ fndecls = TREE_VEC_ELT (methods, ix);
+ while (fndecls)
{
- fndecl = *methods;
- if (fn_name == DECL_NAME (OVL_CURRENT (*methods)))
+ fndecl = OVL_CURRENT (fndecls);
+ fndecls = OVL_NEXT (fndecls);
+
+ if (!fndecls && is_conv_op)
{
- got_it:
- for (fndecls = *methods; fndecls != NULL_TREE;
- fndecls = OVL_NEXT (fndecls))
+ if (TREE_VEC_LENGTH (methods) > ix)
{
- fndecl = OVL_CURRENT (fndecls);
-
- /* We cannot simply call decls_match because this
- doesn't work for static member functions that are
- pretending to be methods, and because the name
- may have been changed by asm("new_name"). */
- if (DECL_NAME (function) == DECL_NAME (fndecl))
+ ix++;
+ fndecls = TREE_VEC_ELT (methods, ix);
+ if (!DECL_CONV_FN_P (OVL_CURRENT (fndecls)))
{
- tree p1 = TYPE_ARG_TYPES (TREE_TYPE (function));
- tree p2 = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
-
- /* Get rid of the this parameter on functions that become
- static. */
- if (DECL_STATIC_FUNCTION_P (fndecl)
- && TREE_CODE (TREE_TYPE (function)) == METHOD_TYPE)
- p1 = TREE_CHAIN (p1);
-
- if (same_type_p (TREE_TYPE (TREE_TYPE (function)),
- TREE_TYPE (TREE_TYPE (fndecl)))
- && compparms (p1, p2)
- && (DECL_TEMPLATE_SPECIALIZATION (function)
- == DECL_TEMPLATE_SPECIALIZATION (fndecl))
- && (!DECL_TEMPLATE_SPECIALIZATION (function)
- || (DECL_TI_TEMPLATE (function)
- == DECL_TI_TEMPLATE (fndecl))))
- return fndecl;
+ fndecls = NULL_TREE;
+ is_conv_op = false;
}
}
- break; /* loser */
+ else
+ is_conv_op = false;
}
+ if (format)
+ format = " %#D";
+ else if (fndecls)
+ format = "candidates are: %#D";
+ else
+ format = "candidate is: %#D";
+ cp_error_at (format, fndecl);
}
}
-
- if (methods != end && *methods)
- {
- tree fndecl = *methods;
- error ("prototype for `%#D' does not match any in class `%T'",
- function, ctype);
- cp_error_at ("candidate%s: %+#D", OVL_NEXT (fndecl) ? "s are" : " is",
- OVL_CURRENT (fndecl));
- while (fndecl = OVL_NEXT (fndecl), fndecl)
- cp_error_at (" %#D", OVL_CURRENT(fndecl));
- }
+ else if (!COMPLETE_TYPE_P (ctype))
+ cxx_incomplete_type_error (function, ctype);
else
- {
- methods = 0;
- if (!COMPLETE_TYPE_P (ctype))
- cxx_incomplete_type_error (function, ctype);
- else
- error ("no `%#D' member function declared in class `%T'",
- function, ctype);
- }
+ error ("no `%#D' member function declared in class `%T'",
+ function, ctype);
/* If we did not find the method in the class, add it to avoid
spurious errors (unless the CTYPE is not yet defined, in which
@@ -988,12 +1002,7 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist)
init = decl_constant_value (init);
else if (TREE_CODE (init) == CONSTRUCTOR)
init = digest_init (TREE_TYPE (value), init, (tree *)0);
- if (init == error_mark_node)
- /* We must make this look different than `error_mark_node'
- because `decl_const_value' would mis-interpret it
- as only meaning that this VAR_DECL is defined. */
- init = build1 (NOP_EXPR, TREE_TYPE (value), init);
- else if (! TREE_CONSTANT (init))
+ if (init != error_mark_node && ! TREE_CONSTANT (init))
{
/* We can allow references to things that are effectively
static, since references are initialized with the
@@ -1010,7 +1019,7 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist)
}
}
- if (processing_template_decl && ! current_function_decl
+ if (processing_template_decl
&& (TREE_CODE (value) == VAR_DECL || TREE_CODE (value) == FUNCTION_DECL))
value = push_template_decl (value);
@@ -1118,11 +1127,29 @@ grokbitfield (declarator, declspecs, width)
return value;
}
+/* Convert a conversion operator name to an identifier. SCOPE is the
+ scope of the conversion operator, if explicit. */
+
tree
-grokoptypename (declspecs, declarator)
+grokoptypename (declspecs, declarator, scope)
tree declspecs, declarator;
+ tree scope;
{
tree t = grokdeclarator (declarator, declspecs, TYPENAME, 0, NULL);
+
+ /* Resolve any TYPENAME_TYPEs that refer to SCOPE, before mangling
+ the name, so that we mangle the right thing. */
+ if (scope && current_template_parms
+ && uses_template_parms (t)
+ && uses_template_parms (scope))
+ {
+ tree args = current_template_args ();
+
+ push_scope (scope);
+ t = tsubst (t, args, tf_error | tf_warning, NULL_TREE);
+ pop_scope (scope);
+ }
+
return mangle_conv_op_name_for_type (t);
}
@@ -1597,7 +1624,7 @@ comdat_linkage (decl)
DECL_COMMON (decl) = 1;
DECL_INITIAL (decl) = error_mark_node;
}
- else
+ else if (!DECL_EXPLICIT_INSTANTIATION (decl))
{
/* We can't do anything useful; leave vars for explicit
instantiation. */
@@ -1642,29 +1669,6 @@ maybe_make_one_only (decl)
}
}
-/* Returns the virtual function with which the vtable for TYPE is
- emitted, or NULL_TREE if that heuristic is not applicable to TYPE. */
-
-static tree
-key_method (type)
- tree type;
-{
- tree method;
-
- if (TYPE_FOR_JAVA (type)
- || CLASSTYPE_TEMPLATE_INSTANTIATION (type)
- || CLASSTYPE_INTERFACE_KNOWN (type))
- return NULL_TREE;
-
- for (method = TYPE_METHODS (type); method != NULL_TREE;
- method = TREE_CHAIN (method))
- if (DECL_VINDEX (method) != NULL_TREE
- && ! DECL_DECLARED_INLINE_P (method)
- && ! DECL_PURE_VIRTUAL_P (method))
- return method;
-
- return NULL_TREE;
-}
/* Set TREE_PUBLIC and/or DECL_EXTERN on the vtable DECL,
based on TYPE and other static flags.
@@ -1698,7 +1702,7 @@ import_export_vtable (decl, type, final)
functions in our class, or if we come from a template. */
int found = (CLASSTYPE_TEMPLATE_INSTANTIATION (type)
- || key_method (type));
+ || CLASSTYPE_KEY_METHOD (type) != NULL_TREE);
if (final || ! found)
{
@@ -1758,7 +1762,7 @@ import_export_class (ctype)
if (import_export == 0
&& TYPE_POLYMORPHIC_P (ctype))
{
- tree method = key_method (ctype);
+ tree method = CLASSTYPE_KEY_METHOD (ctype);
if (method)
import_export = (DECL_REALLY_EXTERN (method) ? -1 : 1);
}
@@ -1847,7 +1851,11 @@ maybe_emit_vtables (tree ctype)
import_export_vtable (vtbl, ctype, 1);
mark_vtable_entries (vtbl);
if (TREE_TYPE (DECL_INITIAL (vtbl)) == 0)
- store_init_value (vtbl, DECL_INITIAL (vtbl));
+ {
+ /* It had better be all done at compile-time. */
+ if (store_init_value (vtbl, DECL_INITIAL (vtbl)))
+ abort ();
+ }
if (write_symbols == DWARF_DEBUG || write_symbols == DWARF2_DEBUG)
{
@@ -2004,6 +2012,10 @@ import_export_tinfo (decl, type, is_in_library)
DECL_INTERFACE_KNOWN (decl) = 1;
}
+/* Return an expression that performs the destruction of DECL, which
+ must be a VAR_DECL whose type has a non-trivial destructor, or is
+ an array whose (innermost) elements have a non-trivial destructor. */
+
tree
build_cleanup (decl)
tree decl;
@@ -2011,6 +2023,14 @@ build_cleanup (decl)
tree temp;
tree type = TREE_TYPE (decl);
+ /* This function should only be called for declarations that really
+ require cleanups. */
+ my_friendly_assert (!TYPE_HAS_TRIVIAL_DESTRUCTOR (type), 20030106);
+
+ /* Treat all objects with destructors as used; the destructor may do
+ something substantive. */
+ mark_used (decl);
+
if (TREE_CODE (type) == ARRAY_TYPE)
temp = decl;
else
@@ -2055,8 +2075,7 @@ get_guard (decl)
DECL_ARTIFICIAL (guard) = 1;
TREE_USED (guard) = 1;
- pushdecl_top_level (guard);
- cp_finish_decl (guard, NULL_TREE, NULL_TREE, 0);
+ pushdecl_top_level_and_finish (guard, NULL_TREE);
}
return guard;
}
@@ -2590,21 +2609,23 @@ do_static_destruction (decl)
static tree
prune_vars_needing_no_initialization (vars)
- tree vars;
+ tree *vars;
{
- tree var;
- tree result;
+ tree *var = vars;
+ tree result = NULL_TREE;
- for (var = vars, result = NULL_TREE;
- var;
- var = TREE_CHAIN (var))
+ while (*var)
{
- tree decl = TREE_VALUE (var);
- tree init = TREE_PURPOSE (var);
+ tree t = *var;
+ tree decl = TREE_VALUE (t);
+ tree init = TREE_PURPOSE (t);
/* Deal gracefully with error. */
if (decl == error_mark_node)
- continue;
+ {
+ var = &TREE_CHAIN (t);
+ continue;
+ }
/* The only things that can be initialized are variables. */
my_friendly_assert (TREE_CODE (decl) == VAR_DECL, 19990420);
@@ -2612,17 +2633,25 @@ prune_vars_needing_no_initialization (vars)
/* If this object is not defined, we don't need to do anything
here. */
if (DECL_EXTERNAL (decl))
- continue;
+ {
+ var = &TREE_CHAIN (t);
+ continue;
+ }
/* Also, if the initializer already contains errors, we can bail
out now. */
if (init && TREE_CODE (init) == TREE_LIST
&& value_member (error_mark_node, init))
- continue;
+ {
+ var = &TREE_CHAIN (t);
+ continue;
+ }
/* This variable is going to need initialization and/or
finalization, so we add it to the list. */
- result = tree_cons (init, decl, result);
+ *var = TREE_CHAIN (t);
+ TREE_CHAIN (t) = result;
+ result = t;
}
return result;
@@ -2668,15 +2697,16 @@ generate_ctor_or_dtor_function (constructor_p, priority)
/* Call the static storage duration function with appropriate
arguments. */
- for (i = 0; i < ssdf_decls->elements_used; ++i)
- {
- arguments = tree_cons (NULL_TREE, build_int_2 (priority, 0),
- NULL_TREE);
- arguments = tree_cons (NULL_TREE, build_int_2 (constructor_p, 0),
- arguments);
- finish_expr_stmt (build_function_call (VARRAY_TREE (ssdf_decls, i),
- arguments));
- }
+ if (ssdf_decls)
+ for (i = 0; i < ssdf_decls->elements_used; ++i)
+ {
+ arguments = tree_cons (NULL_TREE, build_int_2 (priority, 0),
+ NULL_TREE);
+ arguments = tree_cons (NULL_TREE, build_int_2 (constructor_p, 0),
+ arguments);
+ finish_expr_stmt (build_function_call (VARRAY_TREE (ssdf_decls, i),
+ arguments));
+ }
/* If we're generating code for the DEFAULT_INIT_PRIORITY, throw in
calls to any functions marked with attributes indicating that
@@ -2684,7 +2714,7 @@ generate_ctor_or_dtor_function (constructor_p, priority)
if (priority == DEFAULT_INIT_PRIORITY)
{
tree fns;
-
+
for (fns = constructor_p ? static_ctors : static_dtors;
fns;
fns = TREE_CHAIN (fns))
@@ -2777,11 +2807,36 @@ finish_file ()
instantiate_pending_templates ();
/* Write out virtual tables as required. Note that writing out
- the virtual table for a template class may cause the
- instantiation of members of that class. */
- for (t = dynamic_classes; t; t = TREE_CHAIN (t))
- if (maybe_emit_vtables (TREE_VALUE (t)))
- reconsider = 1;
+ the virtual table for a template class may cause the
+ instantiation of members of that class. If we write out
+ vtables then we remove the class from our list so we don't
+ have to look at it again. */
+
+ while (keyed_classes != NULL_TREE
+ && maybe_emit_vtables (TREE_VALUE (keyed_classes)))
+ {
+ reconsider = 1;
+ keyed_classes = TREE_CHAIN (keyed_classes);
+ }
+
+ t = keyed_classes;
+ if (t != NULL_TREE)
+ {
+ tree next = TREE_CHAIN (t);
+
+ while (next)
+ {
+ if (maybe_emit_vtables (TREE_VALUE (next)))
+ {
+ reconsider = 1;
+ TREE_CHAIN (t) = TREE_CHAIN (next);
+ }
+ else
+ t = next;
+
+ next = TREE_CHAIN (t);
+ }
+ }
/* Write out needed type info variables. Writing out one variable
might cause others to be needed. */
@@ -2793,8 +2848,7 @@ finish_file ()
aggregates added during the initialization of these will be
initialized in the correct order when we next come around the
loop. */
- vars = prune_vars_needing_no_initialization (static_aggregates);
- static_aggregates = NULL_TREE;
+ vars = prune_vars_needing_no_initialization (&static_aggregates);
if (vars)
{
@@ -2842,12 +2896,11 @@ finish_file ()
reconsider = 1;
}
- /* Go through the various inline functions, and see if any need
- synthesizing. */
for (i = 0; i < deferred_fns_used; ++i)
{
tree decl = VARRAY_TREE (deferred_fns, i);
- import_export_decl (decl);
+
+ /* Does it need synthesizing? */
if (DECL_ARTIFICIAL (decl) && ! DECL_INITIAL (decl)
&& TREE_USED (decl)
&& (! DECL_REALLY_EXTERN (decl) || DECL_INLINE (decl)))
@@ -2862,30 +2915,32 @@ finish_file ()
pop_from_top_level ();
reconsider = 1;
}
- }
- /* We lie to the back-end, pretending that some functions are
- not defined when they really are. This keeps these functions
- from being put out unnecessarily. But, we must stop lying
- when the functions are referenced, or if they are not comdat
- since they need to be put out now.
- This is done in a separate for cycle, because if some deferred
- function is contained in another deferred function later in
- deferred_fns varray, rest_of_compilation would skip this
- function and we really cannot expand the same function twice. */
- for (i = 0; i < deferred_fns_used; ++i)
- {
- tree decl = VARRAY_TREE (deferred_fns, i);
-
+ /* If the function has no body, avoid calling
+ import_export_decl. On a system without weak symbols,
+ calling import_export_decl will make an inline template
+ instantiation "static", which will result in errors about
+ the use of undefined functions if there is no body for
+ the function. */
+ if (!DECL_SAVED_TREE (decl))
+ continue;
+
+ import_export_decl (decl);
+
+ /* We lie to the back-end, pretending that some functions
+ are not defined when they really are. This keeps these
+ functions from being put out unnecessarily. But, we must
+ stop lying when the functions are referenced, or if they
+ are not comdat since they need to be put out now. This
+ is done in a separate for cycle, because if some deferred
+ function is contained in another deferred function later
+ in deferred_fns varray, rest_of_compilation would skip
+ this function and we really cannot expand the same
+ function twice. */
if (DECL_NOT_REALLY_EXTERN (decl)
&& DECL_INITIAL (decl)
&& DECL_NEEDED_P (decl))
DECL_EXTERNAL (decl) = 0;
- }
-
- for (i = 0; i < deferred_fns_used; ++i)
- {
- tree decl = VARRAY_TREE (deferred_fns, i);
/* If we're going to need to write this function out, and
there's already a body for it, create RTL for it now.
@@ -2941,6 +2996,20 @@ finish_file ()
}
while (reconsider);
+ /* All used inline functions must have a definition at this point. */
+ for (i = 0; i < deferred_fns_used; ++i)
+ {
+ tree decl = VARRAY_TREE (deferred_fns, i);
+
+ if (TREE_USED (decl) && DECL_DECLARED_INLINE_P (decl)
+ && !(TREE_ASM_WRITTEN (decl) || DECL_SAVED_TREE (decl)
+ /* An explicit instantiation can be used to specify
+ that the body is in another unit. It will have
+ already verified there was a definition. */
+ || DECL_EXPLICIT_INSTANTIATION (decl)))
+ cp_warning_at ("inline function `%D' used but never defined", decl);
+ }
+
/* We give C linkage to static constructors and destructors. */
push_lang_context (lang_name_c);
@@ -2950,6 +3019,15 @@ finish_file ()
splay_tree_foreach (priority_info_map,
generate_ctor_and_dtor_functions_for_priority,
/*data=*/0);
+ else
+ {
+ if (static_ctors)
+ generate_ctor_or_dtor_function (/*constructor_p=*/true,
+ DEFAULT_INIT_PRIORITY);
+ if (static_dtors)
+ generate_ctor_or_dtor_function (/*constructor_p=*/false,
+ DEFAULT_INIT_PRIORITY);
+ }
/* We're done with the splay-tree now. */
if (priority_info_map)
@@ -3292,16 +3370,18 @@ build_expr_from_tree (t)
{
tree ref = TREE_OPERAND (t, 0);
tree name = TREE_OPERAND (ref, 1);
+ tree fn, scope, args;
if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
name = build_nt (TEMPLATE_ID_EXPR,
TREE_OPERAND (name, 0),
build_expr_from_tree (TREE_OPERAND (name, 1)));
-
- return build_member_call
- (build_expr_from_tree (TREE_OPERAND (ref, 0)),
- name,
- build_expr_from_tree (TREE_OPERAND (t, 1)));
+
+ scope = build_expr_from_tree (TREE_OPERAND (ref, 0));
+ args = build_expr_from_tree (TREE_OPERAND (t, 1));
+ fn = resolve_scoped_fn_name (scope, name);
+
+ return build_call_from_tree (fn, args, 1);
}
else
{
@@ -3453,15 +3533,15 @@ build_offset_ref_call_from_tree (tree fn, tree args)
/* This code is not really correct (for example, it does not
handle the case that `A::f' is overloaded), but it is
historically how we have handled this situation. */
- object_addr = build_unary_op (ADDR_EXPR, TREE_OPERAND (fn, 0), 0);
if (TREE_CODE (TREE_OPERAND (fn, 1)) == FIELD_DECL)
fn = resolve_offset_ref (fn);
else
{
+ object_addr = build_unary_op (ADDR_EXPR, TREE_OPERAND (fn, 0), 0);
fn = TREE_OPERAND (fn, 1);
fn = get_member_function_from_ptrfunc (&object_addr, fn);
+ args = tree_cons (NULL_TREE, object_addr, args);
}
- args = tree_cons (NULL_TREE, object_addr, args);
return build_function_call (fn, args);
}
@@ -3585,21 +3665,38 @@ finish_decl_parsing (decl)
}
}
-/* Return 1 if root encloses child. */
+/* Returns true if ROOT (a namespace, class, or function) encloses
+ CHILD. CHILD may be either a class type or a namespace. */
-static int
-is_namespace_ancestor (root, child)
- tree root, child;
+bool
+is_ancestor (tree root, tree child)
{
- if (root == child)
- return 1;
+ my_friendly_assert ((TREE_CODE (root) == NAMESPACE_DECL
+ || TREE_CODE (root) == FUNCTION_DECL
+ || CLASS_TYPE_P (root)), 20030307);
+ my_friendly_assert ((TREE_CODE (child) == NAMESPACE_DECL
+ || TREE_CODE (root) == FUNCTION_DECL
+ || CLASS_TYPE_P (child)),
+ 20030307);
+
+ /* The global namespace encloses everything. */
if (root == global_namespace)
- return 1;
- if (child == global_namespace)
- return 0;
- return is_namespace_ancestor (root, CP_DECL_CONTEXT (child));
+ return true;
+
+ while (true)
+ {
+ /* If we've run out of scopes, stop. */
+ if (!child)
+ return false;
+ /* If we've reached the ROOT, it encloses CHILD. */
+ if (root == child)
+ return true;
+ /* Go out one level. */
+ if (TYPE_P (child))
+ child = TYPE_NAME (child);
+ child = DECL_CONTEXT (child);
+ }
}
-
/* Return the namespace that is the common ancestor
of two given namespaces. */
@@ -3608,9 +3705,11 @@ tree
namespace_ancestor (ns1, ns2)
tree ns1, ns2;
{
- if (is_namespace_ancestor (ns1, ns2))
- return ns1;
- return namespace_ancestor (CP_DECL_CONTEXT (ns1), ns2);
+ timevar_push (TV_NAME_LOOKUP);
+ if (is_ancestor (ns1, ns2))
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, ns1);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP,
+ namespace_ancestor (CP_DECL_CONTEXT (ns1), ns2));
}
/* Insert used into the using list of user. Set indirect_flag if this
@@ -3623,9 +3722,10 @@ add_using_namespace (user, used, indirect)
int indirect;
{
tree t;
+ timevar_push (TV_NAME_LOOKUP);
/* Using oneself is a no-op. */
if (user == used)
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, (void)0);
my_friendly_assert (TREE_CODE (user) == NAMESPACE_DECL, 380);
my_friendly_assert (TREE_CODE (used) == NAMESPACE_DECL, 380);
/* Check if we already have this. */
@@ -3635,7 +3735,7 @@ add_using_namespace (user, used, indirect)
if (!indirect)
/* Promote to direct usage. */
TREE_INDIRECT_USING (t) = 0;
- return;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, (void)0);
}
/* Add used to the user's using list. */
@@ -3657,6 +3757,7 @@ add_using_namespace (user, used, indirect)
/* Tell everyone using us about the new used namespaces. */
for (t = DECL_NAMESPACE_USERS (user); t; t = TREE_CHAIN (t))
add_using_namespace (TREE_PURPOSE (t), used, 1);
+ timevar_pop (TV_NAME_LOOKUP);
}
/* Combines two sets of overloaded functions into an OVERLOAD chain, removing
@@ -3705,15 +3806,11 @@ merge_functions (s1, s2)
XXX In what way should I treat extern declarations?
XXX I don't want to repeat the entire duplicate_decls here */
-static tree
-ambiguous_decl (name, old, new, flags)
- tree name;
- tree old;
- tree new;
- int flags;
+static cxx_binding *
+ambiguous_decl (tree name, cxx_binding *old, cxx_binding *new, int flags)
{
tree val, type;
- my_friendly_assert (old != NULL_TREE, 393);
+ my_friendly_assert (old != NULL, 393);
/* Copy the value. */
val = BINDING_VALUE (new);
if (val)
@@ -3798,14 +3895,13 @@ ambiguous_decl (name, old, new, flags)
which have SCOPE as a common ancestor with the current scope.
Returns zero on errors. */
-int
-lookup_using_namespace (name, val, usings, scope, flags, spacesp)
- tree name, val, usings, scope;
- int flags;
- tree *spacesp;
+bool
+lookup_using_namespace (tree name, cxx_binding *val, tree usings,
+ tree scope, int flags, tree *spacesp)
{
tree iter;
- tree val1;
+ cxx_binding *val1;
+ timevar_push (TV_NAME_LOOKUP);
/* Iterate over all used namespaces in current, searching for using
directives of scope. */
for (iter = usings; iter; iter = TREE_CHAIN (iter))
@@ -3814,37 +3910,42 @@ lookup_using_namespace (name, val, usings, scope, flags, spacesp)
if (spacesp)
*spacesp = tree_cons (TREE_PURPOSE (iter), NULL_TREE,
*spacesp);
- val1 = binding_for_name (name, TREE_PURPOSE (iter));
- /* Resolve ambiguities. */
- val = ambiguous_decl (name, val, val1, flags);
+ val1 = cxx_scope_find_binding_for_name (TREE_PURPOSE (iter), name);
+ /* Resolve possible ambiguities. */
+ if (val1)
+ val = ambiguous_decl (name, val, val1, flags);
}
- return BINDING_VALUE (val) != error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP,
+ BINDING_VALUE (val) != error_mark_node);
}
/* [namespace.qual]
Accepts the NAME to lookup and its qualifying SCOPE.
- Returns the name/type pair found into the CPLUS_BINDING RESULT,
+ Returns the name/type pair found into the cxx_binding *RESULT,
or 0 on error. */
-int
-qualified_lookup_using_namespace (name, scope, result, flags)
- tree name;
- tree scope;
- tree result;
- int flags;
+bool
+qualified_lookup_using_namespace (tree name, tree scope, cxx_binding *result,
+ int flags)
{
/* Maintain a list of namespaces visited... */
tree seen = NULL_TREE;
/* ... and a list of namespace yet to see. */
tree todo = NULL_TREE;
tree usings;
+ timevar_push (TV_NAME_LOOKUP);
/* Look through namespace aliases. */
scope = ORIGINAL_NAMESPACE (scope);
- while (scope && (result != error_mark_node))
+ while (scope && result->value != error_mark_node)
{
- seen = tree_cons (scope, NULL_TREE, seen);
- result = ambiguous_decl (name, result,
- binding_for_name (name, scope), flags);
+ cxx_binding *b = cxx_scope_find_binding_for_name (scope, name);
+ /* Record SCOPE and resolve declaration ambiguities if NAME was
+ bound in SCOPE. */
+ if (b)
+ {
+ seen = tree_cons (scope, NULL_TREE, seen);
+ result = ambiguous_decl (name, result, b, flags);
+ }
if (!BINDING_VALUE (result) && !BINDING_TYPE (result))
/* Consider using directives. */
for (usings = DECL_NAMESPACE_USING (scope); usings;
@@ -3861,7 +3962,7 @@ qualified_lookup_using_namespace (name, scope, result, flags)
else
scope = NULL_TREE; /* If there never was a todo list. */
}
- return result != error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result->value != error_mark_node);
}
/* [namespace.memdef]/2 */
@@ -3881,7 +3982,7 @@ set_decl_namespace (decl, scope, friendp)
scope = ORIGINAL_NAMESPACE (scope);
/* It is ok for friends to be qualified in parallel space. */
- if (!friendp && !is_namespace_ancestor (current_namespace, scope))
+ if (!friendp && !is_ancestor (current_namespace, scope))
error ("declaration of `%D' not in a namespace surrounding `%D'",
decl, scope);
DECL_CONTEXT (decl) = FROB_CONTEXT (scope);
@@ -3926,19 +4027,20 @@ static tree
decl_namespace (decl)
tree decl;
{
+ timevar_push (TV_NAME_LOOKUP);
if (TYPE_P (decl))
decl = TYPE_STUB_DECL (decl);
while (DECL_CONTEXT (decl))
{
decl = DECL_CONTEXT (decl);
if (TREE_CODE (decl) == NAMESPACE_DECL)
- return decl;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, decl);
if (TYPE_P (decl))
decl = TYPE_STUB_DECL (decl);
my_friendly_assert (DECL_P (decl), 390);
}
- return global_namespace;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, global_namespace);
}
/* Return the namespace where the current declaration is declared. */
@@ -3986,7 +4088,7 @@ push_scope (t)
{
if (TREE_CODE (t) == NAMESPACE_DECL)
push_decl_namespace (t);
- else
+ else if (CLASS_TYPE_P (t))
pushclass (t, 2);
}
@@ -3998,7 +4100,7 @@ pop_scope (t)
{
if (TREE_CODE (t) == NAMESPACE_DECL)
pop_decl_namespace ();
- else
+ else if (CLASS_TYPE_P (t))
popclass ();
}
@@ -4039,6 +4141,8 @@ add_function (k, fn)
/* We must find only functions, or exactly one non-function. */
if (!k->functions)
k->functions = fn;
+ else if (fn == k->functions)
+ ;
else if (is_overloaded_fn (k->functions) && is_overloaded_fn (fn))
k->functions = build_overload (fn, k->functions);
else
@@ -4164,7 +4268,7 @@ arg_assoc_class (k, type)
/* Only interested in global functions with potentially hidden
(i.e. unqualified) declarations. */
if (TREE_PURPOSE (friends) == error_mark_node && TREE_VALUE (friends)
- && decl_namespace (TREE_VALUE (friends)) == context)
+ && CP_DECL_CONTEXT (TREE_VALUE (friends)) == context)
if (add_function (k, TREE_VALUE (friends)))
return 1;
@@ -4340,6 +4444,10 @@ lookup_arg_dependent (name, fns, args)
struct arg_lookup k;
tree fn = NULL_TREE;
+ if (fns == error_mark_node)
+ fns = NULL_TREE;
+
+ timevar_push (TV_NAME_LOOKUP);
k.name = name;
k.functions = fns;
k.classes = NULL_TREE;
@@ -4354,7 +4462,7 @@ lookup_arg_dependent (name, fns, args)
unqualified_namespace_lookup (name, 0, &k.namespaces);
arg_assoc_args (&k, args);
- return k.functions;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, k.functions);
}
/* Process a namespace-alias declaration. */
@@ -4444,33 +4552,34 @@ do_nonmember_using_decl (scope, name, oldval, oldtype, newval, newtype)
tree oldval, oldtype;
tree *newval, *newtype;
{
- tree decls;
+ cxx_binding decls;
*newval = *newtype = NULL_TREE;
- decls = make_node (CPLUS_BINDING);
- if (!qualified_lookup_using_namespace (name, scope, decls, 0))
+ cxx_binding_clear (&decls);
+ if (!qualified_lookup_using_namespace (name, scope, &decls, 0))
/* Lookup error */
return;
- if (!BINDING_VALUE (decls) && !BINDING_TYPE (decls))
+ if (!decls.value && !decls.type)
{
error ("`%D' not declared", name);
return;
}
/* Check for using functions. */
- if (BINDING_VALUE (decls) && is_overloaded_fn (BINDING_VALUE (decls)))
+ if (decls.value && is_overloaded_fn (decls.value))
{
tree tmp, tmp1;
if (oldval && !is_overloaded_fn (oldval))
{
- duplicate_decls (OVL_CURRENT (BINDING_VALUE (decls)), oldval);
+ if (!DECL_IMPLICIT_TYPEDEF_P (oldval))
+ error ("`%D' is already declared in this scope", name);
oldval = NULL_TREE;
}
*newval = oldval;
- for (tmp = BINDING_VALUE (decls); tmp; tmp = OVL_NEXT (tmp))
+ for (tmp = decls.value; tmp; tmp = OVL_NEXT (tmp))
{
tree new_fn = OVL_CURRENT (tmp);
@@ -4492,21 +4601,27 @@ do_nonmember_using_decl (scope, name, oldval, oldtype, newval, newtype)
else if (compparms (TYPE_ARG_TYPES (TREE_TYPE (new_fn)),
TYPE_ARG_TYPES (TREE_TYPE (old_fn))))
{
- /* If this using declaration introduces a function
- recognized as a built-in, no longer mark it as
- anticipated in this scope. */
- if (DECL_ANTICIPATED (old_fn))
- {
- DECL_ANTICIPATED (old_fn) = 0;
- break;
- }
-
/* There was already a non-using declaration in
this scope with the same parameter types. If both
are the same extern "C" functions, that's ok. */
- if (!decls_match (new_fn, old_fn))
- error ("`%D' is already declared in this scope", name);
- break;
+ if (decls_match (new_fn, old_fn))
+ {
+ /* If the OLD_FN was a builtin, there is now a
+ real declaration. */
+ if (DECL_ANTICIPATED (old_fn))
+ DECL_ANTICIPATED (old_fn) = 0;
+ break;
+ }
+ else if (!DECL_ANTICIPATED (old_fn))
+ {
+ /* If the OLD_FN was really declared, the
+ declarations don't match. */
+ error ("`%D' is already declared in this scope", name);
+ break;
+ }
+
+ /* If the OLD_FN was not really there, just ignore
+ it and keep going. */
}
}
@@ -4524,13 +4639,13 @@ do_nonmember_using_decl (scope, name, oldval, oldtype, newval, newtype)
}
else
{
- *newval = BINDING_VALUE (decls);
- if (oldval)
- duplicate_decls (*newval, oldval);
+ *newval = decls.value;
+ if (oldval && !decls_match (*newval, oldval))
+ error ("`%D' is already declared in this scope", name);
}
- *newtype = BINDING_TYPE (decls);
- if (oldtype && *newtype && oldtype != *newtype)
+ *newtype = decls.type;
+ if (oldtype && *newtype && !same_type_p (oldtype, *newtype))
{
error ("using declaration `%D' introduced ambiguous type `%T'",
name, oldtype);
@@ -4544,13 +4659,16 @@ void
do_toplevel_using_decl (decl)
tree decl;
{
- tree scope, name, binding;
+ tree scope, name;
tree oldval, oldtype, newval, newtype;
+ cxx_binding *binding;
decl = validate_nonmember_using_decl (decl, &scope, &name);
if (decl == NULL_TREE)
return;
-
+
+ /* A multiple using-declaration is valid, so we call binding_for_name,
+ not just cxx_binding_make. */
binding = binding_for_name (name, current_namespace);
oldval = BINDING_VALUE (binding);
@@ -4712,10 +4830,15 @@ mark_used (decl)
tree decl;
{
TREE_USED (decl) = 1;
- if (processing_template_decl)
+ if (processing_template_decl || skip_evaluation)
return;
- if (!skip_evaluation)
- assemble_external (decl);
+
+ if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl)
+ && !TREE_ASM_WRITTEN (decl))
+ /* Remember it, so we can check it was defined. */
+ defer_fn (decl);
+
+ assemble_external (decl);
/* Is it a synthesized method that needs to be synthesized? */
if (TREE_CODE (decl) == FUNCTION_DECL
@@ -4739,7 +4862,34 @@ mark_used (decl)
&& DECL_LANG_SPECIFIC (decl) && DECL_TEMPLATE_INFO (decl)
&& (!DECL_EXPLICIT_INSTANTIATION (decl)
|| (TREE_CODE (decl) == FUNCTION_DECL && DECL_INLINE (decl))))
- instantiate_decl (decl, /*defer_ok=*/1);
+ {
+ bool defer;
+
+ /* Normally, we put off instantiating functions in order to
+ improve compile times. Maintaining a stack of active
+ functions is expensive, and the inliner knows to
+ instantiate any functions it might need.
+
+ However, if instantiating this function might help us mark
+ the current function TREE_NOTHROW, we go ahead and
+ instantiate it now. */
+ defer = (!flag_exceptions
+ || TREE_CODE (decl) != FUNCTION_DECL
+ /* If the called function can't throw, we don't need to
+ generate its body to find that out. */
+ || TREE_NOTHROW (decl)
+ || !cfun
+ || !current_function_decl
+ /* If we already know the current function can't throw,
+ then we don't need to work hard to prove it. */
+ || TREE_NOTHROW (current_function_decl)
+ /* If we already know that the current function *can*
+ throw, there's no point in gathering more
+ information. */
+ || cp_function_chain->can_throw);
+
+ instantiate_decl (decl, defer);
+ }
}
/* Helper function for class_head_decl and class_head_defn
@@ -4759,6 +4909,7 @@ handle_class_head (tag_kind, scope, id, attributes, defn_p, new_type_p)
int *new_type_p;
{
tree decl = NULL_TREE;
+ tree type;
tree current = current_scope ();
bool xrefd_p = false;
@@ -4803,16 +4954,35 @@ handle_class_head (tag_kind, scope, id, attributes, defn_p, new_type_p)
if (!decl)
{
- decl = TYPE_MAIN_DECL (xref_tag (tag_kind, id, attributes, !defn_p));
+ decl = xref_tag (tag_kind, id, attributes, !defn_p);
+ if (decl == error_mark_node)
+ return error_mark_node;
+ decl = TYPE_MAIN_DECL (decl);
xrefd_p = true;
}
- if (!TYPE_BINFO (TREE_TYPE (decl)))
+ type = TREE_TYPE (decl);
+
+ if (!TYPE_BINFO (type))
{
error ("`%T' is not a class or union type", decl);
return error_mark_node;
}
-
+
+ /* When `A' is a template class, using `class A' without template
+ argument is invalid unless
+ - we are inside the scope of the template class `A' or one of its
+ specialization.
+ - we are declaring the template class `A' itself. */
+ if (TREE_CODE (type) == RECORD_TYPE
+ && CLASSTYPE_IS_TEMPLATE (type)
+ && processing_template_decl <= template_class_depth (current)
+ && ! is_base_of_enclosing_class (type, current_class_type))
+ {
+ error ("template argument is required for `%T'", type);
+ return error_mark_node;
+ }
+
if (defn_p)
{
/* For a definition, we want to enter the containing scope
@@ -4820,6 +4990,18 @@ handle_class_head (tag_kind, scope, id, attributes, defn_p, new_type_p)
is different to the current scope. */
tree context = CP_DECL_CONTEXT (decl);
+ if (IMPLICIT_TYPENAME_P (context))
+ context = TREE_TYPE (context);
+
+ /* If that scope does not contain the scope in which the
+ class was originally declared, the program is invalid. */
+ if (current && !is_ancestor (current, context))
+ {
+ error ("declaration of `%D' in `%D' which does not "
+ "enclose `%D'", decl, current, CP_DECL_CONTEXT (decl));
+ return NULL_TREE;
+ }
+
*new_type_p = (current != context
&& TREE_CODE (context) != TEMPLATE_TYPE_PARM
&& TREE_CODE (context) != BOUND_TEMPLATE_TEMPLATE_PARM);
@@ -4835,6 +5017,69 @@ handle_class_head (tag_kind, scope, id, attributes, defn_p, new_type_p)
if (!xrefd_p && PROCESSING_REAL_TEMPLATE_DECL_P ())
decl = push_template_decl (decl);
}
+ else
+ {
+ /* For elaborated type specifier in declaration like
+
+ class A::B *a;
+
+ we get an implicit typename here. Let's remove its
+ implicitness so that we don't issue any implicit
+ typename warning later. Note that when defn_p is true,
+ implicitness is still required by begin_class_definition. */
+ if (IMPLICIT_TYPENAME_P (type))
+ decl = TYPE_STUB_DECL (build_typename_type (TYPE_CONTEXT (type),
+ TYPE_IDENTIFIER (type),
+ TYPENAME_TYPE_FULLNAME (type),
+ NULL_TREE));
+ }
+
+ return decl;
+}
+
+/* Like handle_class_head but for a definition of a class specialization.
+ DECL is a TYPE_DECL node representing the class. NEW_TYPE_P is set to
+ nonzero, if we push into the scope containing the to be defined
+ aggregate.
+
+ Return a TYPE_DECL for the type declared by ID in SCOPE. */
+
+tree
+handle_class_head_apparent_template (decl, new_type_p)
+ tree decl;
+ int *new_type_p;
+{
+ tree context;
+ tree current;
+
+ if (decl == error_mark_node)
+ return decl;
+
+ current = current_scope ();
+ if (current == NULL_TREE)
+ current = current_namespace;
+
+ *new_type_p = 0;
+
+ /* For a definition, we want to enter the containing scope
+ before looking up any base classes etc. Only do so, if this
+ is different to the current scope. */
+ context = CP_DECL_CONTEXT (decl);
+
+ if (IMPLICIT_TYPENAME_P (context))
+ context = TREE_TYPE (context);
+
+ *new_type_p = (current != context
+ && TREE_CODE (context) != TEMPLATE_TYPE_PARM
+ && TREE_CODE (context) != BOUND_TEMPLATE_TEMPLATE_PARM);
+ if (*new_type_p)
+ push_scope (context);
+
+ if (TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE)
+ /* We might be specializing a template with a different
+ class-key. */
+ CLASSTYPE_DECLARED_CLASS (TREE_TYPE (decl))
+ = (current_aggr == class_type_node);
return decl;
}
diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c
index c4472b07359..39e72dcd983 100644
--- a/gcc/cp/dump.c
+++ b/gcc/cp/dump.c
@@ -263,6 +263,14 @@ cp_dump_tree (dump_info, t)
return 1;
}
+ /* Is it a type used as a base? */
+ if (TYPE_CONTEXT (t) && TREE_CODE (TYPE_CONTEXT (t)) == TREE_CODE (t)
+ && CLASSTYPE_AS_BASE (TYPE_CONTEXT (t)) == t)
+ {
+ dump_child ("bfld", TYPE_CONTEXT (t));
+ return 1;
+ }
+
dump_child ("vfld", TYPE_VFIELD (t));
if (CLASSTYPE_TEMPLATE_SPECIALIZATION(t))
dump_string(di, "spec");
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index da880f5fad4..4f5251f61c9 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -421,6 +421,7 @@ dump_type (t, flags)
case BOUND_TEMPLATE_TEMPLATE_PARM:
{
tree args = TYPE_TI_ARGS (t);
+ dump_qualifiers (t, after);
print_tree_identifier (scratch_buffer, TYPE_IDENTIFIER (t));
print_template_argument_list_start (scratch_buffer);
dump_template_argument_list (args, flags);
@@ -685,6 +686,7 @@ dump_type_prefix (t, flags)
case TYPENAME_TYPE:
case COMPLEX_TYPE:
case VECTOR_TYPE:
+ case TYPEOF_TYPE:
dump_type (t, flags);
padding = before;
break;
@@ -781,6 +783,7 @@ dump_type_suffix (t, flags)
case TYPENAME_TYPE:
case COMPLEX_TYPE:
case VECTOR_TYPE:
+ case TYPEOF_TYPE:
break;
default:
@@ -928,6 +931,25 @@ dump_decl (t, flags)
break;
case OVERLOAD:
+ if (OVL_CHAIN (t))
+ {
+ t = OVL_CURRENT (t);
+ if (DECL_CLASS_SCOPE_P (t))
+ {
+ dump_type (DECL_CONTEXT (t), flags);
+ output_add_string (scratch_buffer, "::");
+ }
+ else if (DECL_CONTEXT (t))
+ {
+ dump_decl (DECL_CONTEXT (t), flags);
+ output_add_string (scratch_buffer, "::");
+ }
+ dump_decl (DECL_NAME (t), flags);
+ break;
+ }
+
+ /* If there's only one function, just treat it like an ordinary
+ FUNCTION_DECL. */
t = OVL_CURRENT (t);
/* Fall through. */
@@ -987,7 +1009,7 @@ dump_decl (t, flags)
output_add_string (scratch_buffer, "using ");
dump_type (DECL_INITIAL (t), flags);
print_scope_operator (scratch_buffer);
- print_tree_identifier (scratch_buffer, DECL_NAME (t));
+ dump_decl (DECL_NAME (t), flags);
break;
case BASELINK:
@@ -1141,7 +1163,7 @@ dump_function_decl (t, flags)
dump_function_name (t, flags);
- if (1)
+ if (!(flags & TFF_NO_FUNCTION_ARGUMENTS))
{
dump_parameters (parmtypes, flags);
@@ -1437,7 +1459,7 @@ dump_expr (t, flags)
case TEMPLATE_DECL:
case NAMESPACE_DECL:
case OVERLOAD:
- dump_decl (t, flags & ~TFF_DECL_SPECIFIERS);
+ dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS);
break;
case INTEGER_CST:
@@ -1629,6 +1651,7 @@ dump_expr (t, flags)
case NEW_EXPR:
{
tree type = TREE_OPERAND (t, 1);
+ tree init = TREE_OPERAND (t, 2);
if (NEW_EXPR_USE_GLOBAL (t))
print_scope_operator (scratch_buffer);
output_add_string (scratch_buffer, "new ");
@@ -1645,10 +1668,17 @@ dump_expr (t, flags)
TREE_OPERAND (type, 1),
integer_one_node))));
dump_type (type, flags);
- if (TREE_OPERAND (t, 2))
+ if (init)
{
print_left_paren (scratch_buffer);
- dump_expr_list (TREE_OPERAND (t, 2), flags);
+ if (TREE_CODE (init) == TREE_LIST)
+ dump_expr_list (init, flags);
+ else if (init == void_zero_node)
+ /* This representation indicates an empty initializer,
+ e.g.: "new int()". */
+ ;
+ else
+ dump_expr (init, flags);
print_right_paren (scratch_buffer);
}
}
@@ -1694,6 +1724,7 @@ dump_expr (t, flags)
case CEIL_DIV_EXPR:
case FLOOR_DIV_EXPR:
case ROUND_DIV_EXPR:
+ case RDIV_EXPR:
dump_binary_op ("/", t, flags);
break;
@@ -1870,9 +1901,19 @@ dump_expr (t, flags)
}
}
}
- output_add_character (scratch_buffer, '{');
- dump_expr_list (CONSTRUCTOR_ELTS (t), flags);
- output_add_character (scratch_buffer, '}');
+ /* We've gotten an rvalue of the form 'T()'. */
+ else if (TREE_TYPE (t))
+ {
+ dump_type (TREE_TYPE (t), flags);
+ print_left_paren (scratch_buffer);
+ print_right_paren (scratch_buffer);
+ }
+ else
+ {
+ output_add_character (scratch_buffer, '{');
+ dump_expr_list (CONSTRUCTOR_ELTS (t), flags);
+ output_add_character (scratch_buffer, '}');
+ }
break;
case OFFSET_REF:
@@ -2029,6 +2070,10 @@ dump_expr (t, flags)
output_add_string (scratch_buffer, ") break; ");
break;
+ case BASELINK:
+ dump_expr (get_first_fn (t), flags & ~TFF_EXPR_IN_PARENS);
+ break;
+
case TREE_LIST:
if (TREE_VALUE (t) && TREE_CODE (TREE_VALUE (t)) == FUNCTION_DECL)
{
@@ -2211,7 +2256,7 @@ decl_to_string (decl, verbose)
|| TREE_CODE (decl) == UNION_TYPE || TREE_CODE (decl) == ENUMERAL_TYPE)
flags = TFF_CLASS_KEY_OR_ENUM;
if (verbose)
- flags |= TFF_DECL_SPECIFIERS | TFF_FUNCTION_DEFAULT_ARGUMENTS;
+ flags |= TFF_DECL_SPECIFIERS;
else if (TREE_CODE (decl) == FUNCTION_DECL)
flags |= TFF_DECL_SPECIFIERS | TFF_RETURN_TYPE;
flags |= TFF_TEMPLATE_HEADER;
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index 747cc1aaef6..52b89705e4e 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -53,6 +53,7 @@ static bool is_admissible_throw_operand PARAMS ((tree));
static int can_convert_eh PARAMS ((tree, tree));
static void check_handlers_1 PARAMS ((tree, tree));
static tree cp_protect_cleanup_actions PARAMS ((void));
+static tree do_free_exception PARAMS ((tree));
/* Sets up all the global eh stuff that needs to be initialized at the
start of compilation. */
@@ -511,9 +512,7 @@ do_allocate_exception (type)
NULL_TREE));
}
-#if 0
-/* Call __cxa_free_exception from a cleanup. This is never invoked
- directly, but see the comment for stabilize_throw_expr. */
+/* Call __cxa_free_exception from a cleanup. */
static tree
do_free_exception (ptr)
@@ -533,7 +532,6 @@ do_free_exception (ptr)
return build_function_call (fn, tree_cons (NULL_TREE, ptr, NULL_TREE));
}
-#endif
/* Wrap all cleanups for TARGET_EXPRs in MUST_NOT_THROW_EXPR.
Called from build_throw via walk_tree_without_duplicates. */
@@ -669,6 +667,7 @@ build_throw (exp)
tree object, ptr;
tree tmp;
tree temp_expr, allocate_expr;
+ bool elided;
fn = get_identifier ("__cxa_throw");
if (IDENTIFIER_GLOBAL_VALUE (fn))
@@ -723,6 +722,8 @@ build_throw (exp)
object = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (exp)), ptr);
object = build_indirect_ref (object, NULL);
+ elided = (TREE_CODE (exp) == TARGET_EXPR);
+
/* And initialize the exception object. */
exp = build_init (object, exp, LOOKUP_ONLYCONVERTING);
if (exp == error_mark_node)
@@ -731,7 +732,11 @@ build_throw (exp)
return error_mark_node;
}
- exp = build1 (MUST_NOT_THROW_EXPR, TREE_TYPE (exp), exp);
+ if (elided)
+ exp = build (TRY_CATCH_EXPR, void_type_node, exp,
+ do_free_exception (ptr));
+ else
+ exp = build1 (MUST_NOT_THROW_EXPR, void_type_node, exp);
/* Prepend the allocation. */
exp = build (COMPOUND_EXPR, TREE_TYPE (exp), allocate_expr, exp);
if (temp_expr != void_zero_node)
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c
index e5b0439c93d..cc9dae93adf 100644
--- a/gcc/cp/expr.c
+++ b/gcc/cp/expr.c
@@ -108,7 +108,7 @@ cxx_expand_expr (exp, target, tmode, modifier)
case THROW_EXPR:
expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode, 0);
- return NULL;
+ return const0_rtx;
case MUST_NOT_THROW_EXPR:
expand_eh_region_start ();
diff --git a/gcc/cp/friend.c b/gcc/cp/friend.c
index 7b718ace0df..0727c397cf4 100644
--- a/gcc/cp/friend.c
+++ b/gcc/cp/friend.c
@@ -64,6 +64,10 @@ is_friend (type, supplicant)
if (supplicant == TREE_VALUE (friends))
return 1;
+ /* We haven't completed the instantiation yet. */
+ if (TREE_CODE (supplicant) == TEMPLATE_DECL)
+ return 1;
+
/* Temporarily, we are more lenient to deal with
nested friend functions, for which there can be
more than one FUNCTION_DECL, despite being the
@@ -203,24 +207,25 @@ make_friend_class (type, friend_type)
return;
}
- if (CLASS_TYPE_P (friend_type)
- && CLASSTYPE_TEMPLATE_SPECIALIZATION (friend_type)
- && uses_template_parms (friend_type))
- {
- /* [temp.friend]
-
- Friend declarations shall not declare partial
- specializations. */
- error ("partial specialization `%T' declared `friend'",
- friend_type);
- return;
- }
-
if (processing_template_decl > template_class_depth (type))
/* If the TYPE is a template then it makes sense for it to be
friends with itself; this means that each instantiation is
friends with all other instantiations. */
- is_template_friend = 1;
+ {
+ if (CLASS_TYPE_P (friend_type)
+ && CLASSTYPE_TEMPLATE_SPECIALIZATION (friend_type)
+ && uses_template_parms (friend_type))
+ {
+ /* [temp.friend]
+ Friend declarations shall not declare partial
+ specializations. */
+ error ("partial specialization `%T' declared `friend'",
+ friend_type);
+ return;
+ }
+
+ is_template_friend = 1;
+ }
else if (same_type_p (type, friend_type))
{
pedwarn ("class `%T' is implicitly friends with itself",
@@ -347,6 +352,8 @@ do_friend (ctype, declarator, decl, parmdecls, attrlist,
if (is_friend_template)
decl = DECL_TI_TEMPLATE (push_template_decl (decl));
+ else if (DECL_TEMPLATE_INFO (decl))
+ ;
else if (template_class_depth (current_class_type))
decl = push_template_decl_real (decl, /*is_friend=*/1);
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
index d46244857b2..af30f1c409a 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
@@ -178,6 +178,8 @@ lang_specific_driver (in_argc, in_argv, in_added_libraries)
else if (strcmp (argv[i], "-static-libgcc") == 0
|| strcmp (argv[i], "-static") == 0)
shared_libgcc = 0;
+ else if (DEFAULT_WORD_SWITCH_TAKES_ARG (&argv[i][1]))
+ i++;
else
/* Pass other options through. */
continue;
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 39d4c57047e..4d9b2440649 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1,6 +1,6 @@
/* Handle initialization things in C++.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA. */
#include "output.h"
#include "except.h"
#include "toplev.h"
+#include "diagnostic.h"
#include "ggc.h"
static void construct_virtual_base (tree, tree);
@@ -47,7 +48,7 @@ static tree initializing_context PARAMS ((tree));
static void expand_cleanup_for_base PARAMS ((tree, tree));
static tree get_temp_regvar PARAMS ((tree, tree));
static tree dfs_initialize_vtbl_ptrs PARAMS ((tree, void *));
-static tree build_default_init PARAMS ((tree));
+static tree build_default_init PARAMS ((tree, tree));
static tree build_new_1 PARAMS ((tree));
static tree get_cookie_size PARAMS ((tree));
static tree build_dtor_call PARAMS ((tree, special_function_kind, int));
@@ -145,7 +146,7 @@ initialize_vtbl_ptrs (addr)
list = build_tree_list (type, addr);
/* Walk through the hierarchy, initializing the vptr in each base
- class. We do these in pre-order because can't find the virtual
+ class. We do these in pre-order because we can't find the virtual
bases for a class until we've initialized the vtbl for that
class. */
dfs_walk_real (TYPE_BINFO (type), dfs_initialize_vtbl_ptrs,
@@ -159,12 +160,14 @@ initialize_vtbl_ptrs (addr)
that T is a scalar), or a CONSTRUCTOR (in the case that T is an
aggregate). In either case, the value can be used as DECL_INITIAL
for a decl of the indicated TYPE; it is a valid static initializer.
- If STATIC_STORAGE_P is TRUE, initializers are only generated for
- entities for which zero-initialization does not simply mean filling
- the storage with zero bytes. */
+ If NELTS is non-NULL, and TYPE is an ARRAY_TYPE, NELTS is the
+ number of elements in the array. If STATIC_STORAGE_P is TRUE,
+ initializers are only generated for entities for which
+ zero-initialization does not simply mean filling the storage with
+ zero bytes. */
tree
-build_zero_init (tree type, bool static_storage_p)
+build_zero_init (tree type, tree nelts, bool static_storage_p)
{
tree init = NULL_TREE;
@@ -186,6 +189,9 @@ build_zero_init (tree type, bool static_storage_p)
-- if T is a reference type, no initialization is performed. */
+ my_friendly_assert (nelts == NULL_TREE || TREE_CODE (nelts) == INTEGER_CST,
+ 20030618);
+
if (type == error_mark_node)
;
else if (static_storage_p && zero_init_p (type))
@@ -217,6 +223,7 @@ build_zero_init (tree type, bool static_storage_p)
if (static_storage_p && !zero_init_p (TREE_TYPE (field)))
inits = tree_cons (field,
build_zero_init (TREE_TYPE (field),
+ /*nelts=*/NULL_TREE,
static_storage_p),
inits);
@@ -228,7 +235,6 @@ build_zero_init (tree type, bool static_storage_p)
}
else if (TREE_CODE (type) == ARRAY_TYPE)
{
- tree index;
tree max_index;
tree inits;
@@ -236,13 +242,22 @@ build_zero_init (tree type, bool static_storage_p)
init = build (CONSTRUCTOR, type, NULL_TREE, NULL_TREE);
/* Iterate over the array elements, building initializations. */
inits = NULL_TREE;
- for (index = size_zero_node, max_index = array_type_nelts (type);
- !tree_int_cst_lt (max_index, index);
- index = size_binop (PLUS_EXPR, index, size_one_node))
- inits = tree_cons (index,
- build_zero_init (TREE_TYPE (type),
- static_storage_p),
- inits);
+ max_index = nelts ? nelts : array_type_nelts (type);
+ my_friendly_assert (TREE_CODE (max_index) == INTEGER_CST, 20030618);
+
+ /* A zero-sized array, which is accepted as an extension, will
+ have an upper bound of -1. */
+ if (!tree_int_cst_equal (max_index, integer_minus_one_node))
+ {
+ tree elt_init = build_zero_init (TREE_TYPE (type),
+ /*nelts=*/NULL_TREE,
+ static_storage_p);
+ tree range = build (RANGE_EXPR,
+ sizetype, size_zero_node, max_index);
+
+ inits = tree_cons (range, elt_init, inits);
+ }
+
CONSTRUCTOR_ELTS (init) = nreverse (inits);
}
else if (TREE_CODE (type) == REFERENCE_TYPE)
@@ -257,14 +272,17 @@ build_zero_init (tree type, bool static_storage_p)
return init;
}
-/* Build an expression for the default-initialization of an object
- with type T. If initialization T requires calling constructors,
- this function returns NULL_TREE; the caller is responsible for
- arranging for the constructors to be called. */
+/* Build an expression for the default-initialization of an object of
+ the indicated TYPE. If NELTS is non-NULL, and TYPE is an
+ ARRAY_TYPE, NELTS is the number of elements in the array. If
+ initialization of TYPE requires calling constructors, this function
+ returns NULL_TREE; the caller is responsible for arranging for the
+ constructors to be called. */
static tree
-build_default_init (type)
+build_default_init (type, nelts)
tree type;
+ tree nelts;
{
/* [dcl.init]:
@@ -293,12 +311,13 @@ build_default_init (type)
standard says we should have generated would be precisely the
same as that obtained by calling build_zero_init below, so things
work out OK. */
- if (TYPE_NEEDS_CONSTRUCTING (type))
+ if (TYPE_NEEDS_CONSTRUCTING (type)
+ || (nelts && TREE_CODE (nelts) != INTEGER_CST))
return NULL_TREE;
/* At this point, TYPE is either a POD class type, an array of POD
classes, or something even more inoccuous. */
- return build_zero_init (type, /*static_storage_p=*/false);
+ return build_zero_init (type, nelts, /*static_storage_p=*/false);
}
/* Initialize MEMBER, a FIELD_DECL, with INIT, a TREE_LIST of
@@ -352,7 +371,8 @@ perform_member_init (tree member, tree init)
&& TREE_CODE (TREE_TYPE (TREE_VALUE (init))) == ARRAY_TYPE)
{
/* Initialization of one array from another. */
- finish_expr_stmt (build_vec_init (decl, TREE_VALUE (init), 1));
+ finish_expr_stmt (build_vec_init (decl, NULL_TREE, TREE_VALUE (init),
+ /* from_array=*/1));
}
else
finish_expr_stmt (build_aggr_init (decl, init, 0));
@@ -363,7 +383,7 @@ perform_member_init (tree member, tree init)
{
if (explicit)
{
- init = build_default_init (type);
+ init = build_default_init (type, /*nelts=*/NULL_TREE);
if (TREE_CODE (type) == REFERENCE_TYPE)
warning
("default-initialization of `%#D', which has reference type",
@@ -372,6 +392,9 @@ perform_member_init (tree member, tree init)
/* member traversal: note it leaves init NULL */
else if (TREE_CODE (type) == REFERENCE_TYPE)
pedwarn ("uninitialized reference member `%D'", member);
+ else if (CP_TYPE_CONST_P (type))
+ pedwarn ("uninitialized member '%D' with 'const' type '%T'",
+ member, type);
}
else if (TREE_CODE (init) == TREE_LIST)
{
@@ -529,6 +552,7 @@ sort_mem_initializers (tree t, tree mem_inits)
cp_warning_at (" `%#D'", subobject);
else
warning (" base `%T'", subobject);
+ warning (" when initialized here");
}
/* Look again, from the beginning of the list. */
@@ -655,6 +679,8 @@ emit_mem_initializers (tree mem_inits)
initializations should be performed. */
mem_inits = sort_mem_initializers (current_class_type, mem_inits);
+ in_base_initializer = 1;
+
/* Initialize base classes. */
while (mem_inits
&& TREE_CODE (TREE_PURPOSE (mem_inits)) != FIELD_DECL)
@@ -695,10 +721,11 @@ emit_mem_initializers (tree mem_inits)
mem_inits = TREE_CHAIN (mem_inits);
}
+ in_base_initializer = 0;
/* Initialize the vptrs. */
initialize_vtbl_ptrs (current_class_ptr);
-
+
/* Initialize the data members. */
while (mem_inits)
{
@@ -862,18 +889,10 @@ construct_virtual_base (tree vbase, tree arguments)
constructing virtual bases, then we must be the most derived
class. Therefore, we don't have to look up the virtual base;
we already know where it is. */
- exp = build (PLUS_EXPR,
- TREE_TYPE (current_class_ptr),
- current_class_ptr,
- fold (build1 (NOP_EXPR, TREE_TYPE (current_class_ptr),
- BINFO_OFFSET (vbase))));
- exp = build1 (NOP_EXPR,
- build_pointer_type (BINFO_TYPE (vbase)),
- exp);
- exp = build1 (INDIRECT_REF, BINFO_TYPE (vbase), exp);
-
- expand_aggr_init_1 (vbase, current_class_ref, exp,
- arguments, LOOKUP_COMPLAIN);
+ exp = convert_to_base_statically (current_class_ref, vbase);
+
+ expand_aggr_init_1 (vbase, current_class_ref, exp, arguments,
+ LOOKUP_COMPLAIN);
finish_compound_stmt (/*has_no_scope=*/1, compound_stmt);
finish_then_clause (inner_if_stmt);
finish_if_stmt ();
@@ -929,16 +948,15 @@ member_init_ok_or_else (field, type, member_name)
/* NAME is a FIELD_DECL, an IDENTIFIER_NODE which names a field, or it
is a _TYPE node or TYPE_DECL which names a base for that type.
- INIT is a parameter list for that field's or base's constructor.
- Check the validity of NAME, and return a TREE_LIST of the base
- _TYPE or FIELD_DECL and the INIT. If NAME is invalid, return
+ Check the validity of NAME, and return either the base _TYPE, base
+ binfo, or the FIELD_DECL of the member. If NAME is invalid, return
NULL_TREE and issue a diagnostic.
An old style unnamed direct single base construction is permitted,
where NAME is NULL. */
tree
-expand_member_init (tree name, tree init)
+expand_member_init (tree name)
{
tree basetype;
tree field;
@@ -975,14 +993,12 @@ expand_member_init (tree name, tree init)
else
basetype = NULL_TREE;
- my_friendly_assert (init != NULL_TREE, 0);
-
if (basetype)
{
tree binfo;
if (current_template_parms)
- return build_tree_list (basetype, init);
+ return basetype;
binfo = lookup_base (current_class_type, basetype,
ba_ignore, NULL);
@@ -1006,7 +1022,7 @@ expand_member_init (tree name, tree init)
}
if (binfo)
- return build_tree_list (binfo, init);
+ return binfo;
}
else
{
@@ -1016,7 +1032,7 @@ expand_member_init (tree name, tree init)
field = name;
if (member_init_ok_or_else (field, current_class_type, name))
- return build_tree_list (field, init);
+ return field;
}
return NULL_TREE;
@@ -1101,7 +1117,7 @@ build_aggr_init (exp, init, flags)
TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type);
if (itype && cp_type_quals (itype) != TYPE_UNQUALIFIED)
TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype);
- stmt_expr = build_vec_init (exp, init,
+ stmt_expr = build_vec_init (exp, NULL_TREE, init,
init && same_type_p (TREE_TYPE (init),
TREE_TYPE (exp)));
TREE_READONLY (exp) = was_const;
@@ -1275,8 +1291,9 @@ expand_aggr_init_1 (binfo, true_exp, exp, init, flags)
/* If store_init_value returns NULL_TREE, the INIT has been
record in the DECL_INITIAL for EXP. That means there's
nothing more we have to do. */
- if (store_init_value (exp, init))
- finish_expr_stmt (build (INIT_EXPR, type, exp, init));
+ init = store_init_value (exp, init);
+ if (init)
+ finish_expr_stmt (init);
return;
}
@@ -1599,7 +1616,7 @@ build_offset_ref (type, name)
decl = maybe_dummy_object (type, &basebinfo);
- if (BASELINK_P (name))
+ if (BASELINK_P (name) || DECL_P (name))
member = name;
else
{
@@ -2138,6 +2155,7 @@ build_new_1 (exp)
tree placement, init;
tree type, true_type, size, rval, t;
tree full_type;
+ tree outer_nelts = NULL_TREE;
tree nelts = NULL_TREE;
tree alloc_call, alloc_expr, alloc_node;
tree alloc_fn;
@@ -2167,12 +2185,11 @@ build_new_1 (exp)
if (TREE_CODE (type) == ARRAY_REF)
{
has_array = 1;
- nelts = TREE_OPERAND (type, 1);
+ nelts = outer_nelts = TREE_OPERAND (type, 1);
type = TREE_OPERAND (type, 0);
- full_type = cp_build_binary_op (MINUS_EXPR, nelts, integer_one_node);
- full_type = build_index_type (full_type);
- full_type = build_cplus_array_type (type, full_type);
+ /* Use an incomplete array type to avoid VLA headaches. */
+ full_type = build_cplus_array_type (type, NULL_TREE);
}
else
full_type = type;
@@ -2357,12 +2374,16 @@ build_new_1 (exp)
init_expr = build_indirect_ref (alloc_node, NULL);
if (init == void_zero_node)
- init = build_default_init (full_type);
+ init = build_default_init (full_type, nelts);
else if (init && pedantic && has_array)
pedwarn ("ISO C++ forbids initialization in array new");
if (has_array)
- init_expr = build_vec_init (init_expr, init, 0);
+ init_expr
+ = build_vec_init (init_expr,
+ cp_build_binary_op (MINUS_EXPR, outer_nelts,
+ integer_one_node),
+ init, /*from_array=*/0);
else if (TYPE_NEEDS_CONSTRUCTING (type))
init_expr = build_special_member_call (init_expr,
complete_ctor_identifier,
@@ -2490,8 +2511,12 @@ build_new_1 (exp)
{
if (check_new)
{
- tree ifexp = cp_build_binary_op (NE_EXPR, alloc_node,
- integer_zero_node);
+ tree nullexp;
+ tree ifexp;
+
+ nullexp = convert (TREE_TYPE (alloc_node),
+ use_cookie ? cookie_size : size_zero_node);
+ ifexp = cp_build_binary_op (NE_EXPR, alloc_node, nullexp);
rval = build_conditional_expr (ifexp, rval, alloc_node);
}
@@ -2502,6 +2527,10 @@ build_new_1 (exp)
element. */
rval = convert (build_pointer_type (type), rval);
+ /* A new-expression is never an lvalue. */
+ if (real_lvalue_p (rval))
+ rval = build1 (NON_LVALUE_EXPR, TREE_TYPE (rval), rval);
+
return rval;
}
@@ -2686,6 +2715,9 @@ get_temp_regvar (type, init)
initialization of a vector of aggregate types.
BASE is a reference to the vector, of ARRAY_TYPE.
+ MAXINDEX is the maximum index of the array (one less than the
+ number of elements). It is only used if
+ TYPE_DOMAIN (TREE_TYPE (BASE)) == NULL_TREE.
INIT is the (possibly NULL) initializer.
FROM_ARRAY is 0 if we should init everything with INIT
@@ -2696,8 +2728,8 @@ get_temp_regvar (type, init)
but use assignment instead of initialization. */
tree
-build_vec_init (base, init, from_array)
- tree base, init;
+build_vec_init (base, maxindex, init, from_array)
+ tree base, init, maxindex;
int from_array;
{
tree rval;
@@ -2717,9 +2749,11 @@ build_vec_init (base, init, from_array)
tree try_block = NULL_TREE;
tree try_body = NULL_TREE;
int num_initialized_elts = 0;
- tree maxindex = array_type_nelts (TREE_TYPE (base));
- if (maxindex == error_mark_node)
+ if (TYPE_DOMAIN (atype))
+ maxindex = array_type_nelts (atype);
+
+ if (maxindex == NULL_TREE || maxindex == error_mark_node)
return error_mark_node;
if (init
@@ -2808,11 +2842,13 @@ build_vec_init (base, init, from_array)
num_initialized_elts++;
+ current_stmt_tree ()->stmts_are_full_exprs_p = 1;
if (IS_AGGR_TYPE (type) || TREE_CODE (type) == ARRAY_TYPE)
finish_expr_stmt (build_aggr_init (baseref, elt, 0));
else
finish_expr_stmt (build_modify_expr (baseref, NOP_EXPR,
elt));
+ current_stmt_tree ()->stmts_are_full_exprs_p = 0;
finish_expr_stmt (build_unary_op (PREINCREMENT_EXPR, base, 0));
finish_expr_stmt (build_unary_op (PREDECREMENT_EXPR, iterator, 0));
@@ -2909,7 +2945,7 @@ build_vec_init (base, init, from_array)
sorry
("cannot initialize multi-dimensional array with initializer");
elt_init = build_vec_init (build1 (INDIRECT_REF, type, base),
- 0, 0);
+ 0, 0, 0);
}
else
elt_init = build_aggr_init (build1 (INDIRECT_REF, type, base),
@@ -3068,23 +3104,35 @@ build_delete (type, addr, auto_delete, flags, use_global_delete)
if (TREE_CODE (type) == POINTER_TYPE)
{
+ bool complete_p = true;
+
type = TYPE_MAIN_VARIANT (TREE_TYPE (type));
if (TREE_CODE (type) == ARRAY_TYPE)
goto handle_array;
- if (VOID_TYPE_P (type)
- /* We don't want to warn about delete of void*, only other
- incomplete types. Deleting other incomplete types
- invokes undefined behavior, but it is not ill-formed, so
- compile to something that would even do The Right Thing
- (TM) should the type have a trivial dtor and no delete
- operator. */
- || !complete_type_or_diagnostic (type, addr, 1)
- || !IS_AGGR_TYPE (type))
+ /* We don't want to warn about delete of void*, only other
+ incomplete types. Deleting other incomplete types
+ invokes undefined behavior, but it is not ill-formed, so
+ compile to something that would even do The Right Thing
+ (TM) should the type have a trivial dtor and no delete
+ operator. */
+ if (!VOID_TYPE_P (type))
{
- /* Call the builtin operator delete. */
- return build_builtin_delete_call (addr);
+ complete_type (type);
+ if (!COMPLETE_TYPE_P (type))
+ {
+ warning ("possible problem detected in invocation of "
+ "delete operator:");
+ cxx_incomplete_type_diagnostic (addr, type, 1);
+ inform ("neither the destructor nor the class-specific "
+ "operator delete will be called, even if they are "
+ "declared when the class is defined.");
+ complete_p = false;
+ }
}
+ if (VOID_TYPE_P (type) || !complete_p || !IS_AGGR_TYPE (type))
+ /* Call the builtin operator delete. */
+ return build_builtin_delete_call (addr);
if (TREE_SIDE_EFFECTS (addr))
addr = save_expr (addr);
diff --git a/gcc/cp/lang-options.h b/gcc/cp/lang-options.h
index 10daa409755..d4748bef159 100644
--- a/gcc/cp/lang-options.h
+++ b/gcc/cp/lang-options.h
@@ -72,10 +72,10 @@ DEFINE_LANG_NAME ("C++")
N_("Export functions even if they can be inlined") },
{ "-fimplicit-templates", "" },
{ "-fno-implicit-templates",
- N_("Only emit explicit template instatiations") },
+ N_("Only emit explicit template instantiations") },
{ "-fimplicit-inline-templates", "" },
{ "-fno-implicit-inline-templates",
- N_("Only emit explicit instatiations of inline templates") },
+ N_("Only emit explicit instantiations of inline templates") },
{ "-finit-priority", "" },
{ "-fno-init-priority", "" },
{ "-fmemoize-lookups", "" },
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index 2e9640c83e1..f7de6d4fb6d 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -36,10 +36,10 @@ Boston, MA 02111-1307, USA. */
"%{E|M|MM:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
%(cpp_options) %2 %(cpp_debug_options)}\
%{!E:%{!M:%{!MM:\
- %{save-temps:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
- %(cpp_options) %2 %b.ii \n}\
- cc1plus %{save-temps:-fpreprocessed %b.ii}\
- %{!save-temps:%(cpp_unique_options) %{!no-gcc:-D__GNUG__=%v1}}\
+ %{save-temps|no-integrated-cpp:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
+ %(cpp_options) %2 %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
+ cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
+ %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options) %{!no-gcc:-D__GNUG__=%v1}}}\
%(cc1_options) %2 %{+e1*}\
%{!fsyntax-only:%(invoke_as)}}}}",
CPLUSPLUS_CPP_SPEC},
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 4558940d675..6660c848bf2 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -1138,6 +1138,7 @@ do_identifier (token, parsing, args)
register tree id;
int lexing = (parsing == 1 || parsing == 3);
+ timevar_push (TV_NAME_LOOKUP);
if (! lexing)
id = lookup_name (token, 0);
else
@@ -1168,21 +1169,22 @@ do_identifier (token, parsing, args)
being used as a declarator. So we call it again to get the error
message. */
id = lookup_name (token, 0);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
if (!id || (TREE_CODE (id) == FUNCTION_DECL
&& DECL_ANTICIPATED (id)))
{
if (current_template_parms)
- return build_min_nt (LOOKUP_EXPR, token);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP,
+ build_min_nt (LOOKUP_EXPR, token));
else if (IDENTIFIER_TYPENAME_P (token))
/* A templated conversion operator might exist. */
- return token;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, token);
else
{
unqualified_name_lookup_error (token);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
}
@@ -1218,7 +1220,7 @@ do_identifier (token, parsing, args)
|| TREE_CODE (id) == USING_DECL))
id = build_min_nt (LOOKUP_EXPR, token);
- return id;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, id);
}
tree
@@ -1226,6 +1228,7 @@ do_scoped_id (token, id)
tree token;
tree id;
{
+ timevar_push (TV_NAME_LOOKUP);
if (!id || (TREE_CODE (id) == FUNCTION_DECL
&& DECL_ANTICIPATED (id)))
{
@@ -1233,7 +1236,7 @@ do_scoped_id (token, id)
{
id = build_min_nt (LOOKUP_EXPR, token);
LOOKUP_EXPR_GLOBAL (id) = 1;
- return id;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, id);
}
if (IDENTIFIER_NAMESPACE_VALUE (token) != error_mark_node)
error ("`::%D' undeclared (first use here)", token);
@@ -1264,11 +1267,11 @@ do_scoped_id (token, id)
{
id = build_min_nt (LOOKUP_EXPR, token);
LOOKUP_EXPR_GLOBAL (id) = 1;
- return id;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, id);
}
/* else just use the decl */
}
- return convert_from_reference (id);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, convert_from_reference (id));
}
tree
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 523db85ab38..718064834a1 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -1,5 +1,5 @@
/* Name mangling for the 3.0 C++ ABI.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Alex Samuel <sameul@codesourcery.com>
This file is part of GNU CC.
@@ -50,11 +50,13 @@
#include "config.h"
#include "system.h"
#include "tree.h"
+#include "tm_p.h"
#include "cp-tree.h"
#include "real.h"
#include "obstack.h"
#include "toplev.h"
#include "varray.h"
+#include "ggc.h"
/* Debugging support. */
@@ -99,11 +101,6 @@ static struct globals
/* The entity that is being mangled. */
tree entity;
- /* We are mangling an internal symbol. It is important to keep those
- involving template parmeters distinct by distinguishing their level
- and, for non-type parms, their type. */
- bool internal_mangling_p;
-
/* True if the mangling will be different in a future version of the
ABI. */
bool need_abi_warning;
@@ -172,6 +169,7 @@ static int hwint_to_ascii PARAMS ((unsigned HOST_WIDE_INT, unsigned int, char *,
static void write_number PARAMS ((unsigned HOST_WIDE_INT, int,
unsigned int));
static void write_integer_cst PARAMS ((tree));
+static void write_real_cst PARAMS ((tree));
static void write_identifier PARAMS ((const char *));
static void write_special_name_constructor PARAMS ((tree));
static void write_special_name_destructor PARAMS ((tree));
@@ -1015,7 +1013,7 @@ write_unqualified_name (decl)
type = TREE_TYPE (fn_type);
}
else
- type = TREE_TYPE (DECL_NAME (decl));
+ type = DECL_CONV_FN_TYPE (decl);
write_conversion_operator_name (type);
}
else if (DECL_OVERLOADED_OPERATOR_P (decl))
@@ -1189,6 +1187,72 @@ write_integer_cst (cst)
}
}
+/* Write out a floating-point literal.
+
+ "Floating-point literals are encoded using the bit pattern of the
+ target processor's internal representation of that number, as a
+ fixed-length lowercase hexadecimal string, high-order bytes first
+ (even if the target processor would store low-order bytes first).
+ The "n" prefix is not used for floating-point literals; the sign
+ bit is encoded with the rest of the number.
+
+ Here are some examples, assuming the IEEE standard representation
+ for floating point numbers. (Spaces are for readability, not
+ part of the encoding.)
+
+ 1.0f Lf 3f80 0000 E
+ -1.0f Lf bf80 0000 E
+ 1.17549435e-38f Lf 0080 0000 E
+ 1.40129846e-45f Lf 0000 0001 E
+ 0.0f Lf 0000 0000 E"
+
+ Caller is responsible for the Lx and the E. */
+static void
+write_real_cst (value)
+ tree value;
+{
+ if (abi_version_at_least (2))
+ {
+ long target_real[4]; /* largest supported float */
+ char buffer[9]; /* eight hex digits in a 32-bit number */
+ int i, limit, dir;
+
+ tree type = TREE_TYPE (value);
+ int words = GET_MODE_BITSIZE (TYPE_MODE (type)) / 32;
+
+ real_to_target (target_real, &TREE_REAL_CST (value),
+ TYPE_MODE (type));
+
+ /* The value in target_real is in the target word order,
+ so we must write it out backward if that happens to be
+ little-endian. write_number cannot be used, it will
+ produce uppercase. */
+ if (FLOAT_WORDS_BIG_ENDIAN)
+ i = 0, limit = words, dir = 1;
+ else
+ i = words - 1, limit = -1, dir = -1;
+
+ for (; i != limit; i += dir)
+ {
+ sprintf (buffer, "%08lx", target_real[i]);
+ write_chars (buffer, 8);
+ }
+ }
+ else
+ {
+ /* In G++ 3.3 and before the REAL_VALUE_TYPE was written out
+ literally. Note that compatibility with 3.2 is impossible,
+ because the old floating-point emulator used a different
+ format for REAL_VALUE_TYPE. */
+ size_t i;
+ for (i = 0; i < sizeof (TREE_REAL_CST (value)); ++i)
+ write_number (((unsigned char *) &TREE_REAL_CST (value))[i],
+ /*unsigned_p*/ 1,
+ /*base*/ 16);
+ G.need_abi_warning = 1;
+ }
+}
+
/* Non-terminal <identifier>.
<identifier> ::= </unqualified source code identifier> */
@@ -1983,6 +2047,10 @@ write_expression (expr)
switch (code)
{
+ case CALL_EXPR:
+ sorry ("call_expr cannot be mangled due to a defect in the C++ ABI");
+ break;
+
case CAST_EXPR:
write_type (TREE_TYPE (expr));
write_expression (TREE_VALUE (TREE_OPERAND (expr, 0)));
@@ -2021,11 +2089,7 @@ write_expression (expr)
"Literal arguments, e.g. "A<42L>", are encoded with their type
and value. Negative integer values are preceded with "n"; for
example, "A<-42L>" becomes "1AILln42EE". The bool value false is
- encoded as 0, true as 1. If floating-point arguments are accepted
- as an extension, their values should be encoded using a
- fixed-length lowercase hexadecimal string corresponding to the
- internal representation (IEEE on IA-64), high-order bytes first,
- without leading zeroes. For example: "Lfbff000000E" is -1.0f." */
+ encoded as 0, true as 1." */
static void
write_template_arg_literal (value)
@@ -2052,24 +2116,7 @@ write_template_arg_literal (value)
write_integer_cst (value);
}
else if (TREE_CODE (value) == REAL_CST)
- {
-#ifdef CROSS_COMPILE
- static int explained;
-
- if (!explained)
- {
- sorry ("real-valued template parameters when cross-compiling");
- explained = 1;
- }
-#else
- size_t i;
- for (i = 0; i < sizeof (TREE_REAL_CST (value)); ++i)
- write_number (((unsigned char *)
- &TREE_REAL_CST (value))[i],
- /*unsigned_p=*/1,
- 16);
-#endif
- }
+ write_real_cst (value);
else
abort ();
@@ -2247,15 +2294,6 @@ write_template_param (parm)
if (parm_index > 0)
write_unsigned_number (parm_index - 1);
write_char ('_');
- if (G.internal_mangling_p)
- {
- if (parm_level > 0)
- write_unsigned_number (parm_level - 1);
- write_char ('_');
- if (parm_type)
- write_type (parm_type);
- write_char ('_');
- }
}
/* <template-template-param>
@@ -2582,34 +2620,52 @@ mangle_thunk (fn_decl, offset, vcall_offset)
return get_identifier (result);
}
+/* This hash table maps TYPEs to the IDENTIFIER for a conversion
+ operator to TYPE. The nodes are TREE_LISTs whose TREE_PURPOSE is
+ the TYPE and whose TREE_VALUE is the IDENTIFIER. */
+
+static GTY ((param_is (union tree_node))) htab_t conv_type_names;
+
+/* Hash a node (VAL1) in the table. */
+
+static hashval_t
+hash_type (const void *val)
+{
+ return htab_hash_pointer (TREE_PURPOSE ((tree) val));
+}
+
+/* Compare VAL1 (a node in the table) with VAL2 (a TYPE). */
+
+static int
+compare_type (const void *val1, const void *val2)
+{
+ return TREE_PURPOSE ((tree) val1) == (tree) val2;
+}
+
/* Return an identifier for the mangled unqualified name for a
conversion operator to TYPE. This mangling is not specified by the
ABI spec; it is only used internally. */
-
+
tree
-mangle_conv_op_name_for_type (type)
- tree type;
+mangle_conv_op_name_for_type (const tree type)
{
+ void **slot;
tree identifier;
- const char *mangled_type;
- char *op_name;
-
- /* Build the internal mangling for TYPE. */
- G.internal_mangling_p = true;
- mangled_type = mangle_type_string (type);
- G.internal_mangling_p = false;
+ char buffer[64];
- /* Allocate a temporary buffer for the complete name. */
- op_name = concat ("operator ", mangled_type, NULL);
- /* Find or create an identifier. */
- identifier = get_identifier (op_name);
- /* Done with the temporary buffer. */
- free (op_name);
-
- /* It had better be a unique mangling for the type. */
- my_friendly_assert (!IDENTIFIER_TYPENAME_P (identifier)
- || same_type_p (type, TREE_TYPE (identifier)),
- 20011230);
+ if (conv_type_names == NULL)
+ conv_type_names = htab_create_ggc (31, &hash_type, &compare_type, NULL);
+
+ slot = htab_find_slot_with_hash (conv_type_names, type,
+ htab_hash_pointer (type), INSERT);
+ if (*slot)
+ return TREE_VALUE ((tree) *slot);
+
+ /* Create a unique name corresponding to TYPE. */
+ sprintf (buffer, "operator %lu",
+ (unsigned long) htab_elements (conv_type_names));
+ identifier = get_identifier (buffer);
+ *slot = build_tree_list (type, identifier);
/* Set bits on the identifier so we know later it's a conversion. */
IDENTIFIER_OPNAME_P (identifier) = 1;
@@ -2678,3 +2734,4 @@ write_java_integer_type_codes (type)
abort ();
}
+#include "gt-cp-mangle.h"
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 8a905b21b75..1c2d2ea7061 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -342,6 +342,8 @@ make_thunk (function, delta, vcall_index)
DECL_NO_STATIC_CHAIN (thunk) = 1;
/* The THUNK is not a pending inline, even if the FUNCTION is. */
DECL_PENDING_INLINE_P (thunk) = 0;
+ DECL_INLINE (thunk) = 0;
+ DECL_DECLARED_INLINE_P (thunk) = 0;
/* Nor has it been deferred. */
DECL_DEFERRED_FN (thunk) = 0;
/* Add it to the list of thunks associated with FUNCTION. */
@@ -439,6 +441,9 @@ use_thunk (thunk_fndecl, emit_p)
assemble_end_function (thunk_fndecl, fnname);
current_function_decl = 0;
cfun = 0;
+ /* Because init_function_start increments this, we must
+ decrement it. */
+ immediate_size_expand--;
TREE_ASM_WRITTEN (thunk_fndecl) = 1;
}
else
@@ -656,7 +661,7 @@ do_build_assign_ref (fndecl)
int cvquals = cp_type_quals (TREE_TYPE (parm));
int i;
- /* Assign to each of thedirect base classes. */
+ /* Assign to each of the direct base classes. */
for (i = 0; i < CLASSTYPE_N_BASECLASSES (current_class_type); ++i)
{
tree binfo;
diff --git a/gcc/cp/operators.def b/gcc/cp/operators.def
index b3e20d66239..42e4a4742c9 100644
--- a/gcc/cp/operators.def
+++ b/gcc/cp/operators.def
@@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */
assignment operators, the same tree-codes are reused; i.e.,
`operator +' will also have PLUS_EXPR as its CODE.
- NEW_MANGLING
+ MANGLING
The mangling prefix for the operator, as a C string, and as
mangled under the new ABI. For `operator +', for example, this
@@ -127,7 +127,7 @@ DEF_SIMPLE_OPERATOR ("->", COMPONENT_REF, "pt", 2)
DEF_SIMPLE_OPERATOR ("[]", ARRAY_REF, "ix", 2)
DEF_SIMPLE_OPERATOR ("++", POSTINCREMENT_EXPR, "pp", 2)
DEF_SIMPLE_OPERATOR ("--", POSTDECREMENT_EXPR, "mm", 2)
-/* These are extensions. */
+/* These operators are GNU extensions. */
DEF_SIMPLE_OPERATOR ("<?", MIN_EXPR, "v23min", 2)
DEF_SIMPLE_OPERATOR (">?", MAX_EXPR, "v23max", 2)
/* This one is needed for mangling. */
@@ -145,6 +145,9 @@ DEF_ASSN_OPERATOR ("|=", BIT_IOR_EXPR, "oR", 2)
DEF_ASSN_OPERATOR ("^=", BIT_XOR_EXPR, "eO", 2)
DEF_ASSN_OPERATOR ("<<=", LSHIFT_EXPR, "lS", 2)
DEF_ASSN_OPERATOR (">>=", RSHIFT_EXPR, "rS", 2)
+/* These operators are GNU extensions. */
+DEF_ASSN_OPERATOR ("<?=", MIN_EXPR, "v23miN", 2);
+DEF_ASSN_OPERATOR (">?=", MAX_EXPR, "v23maX", 2);
/* Ternary operators. */
DEF_SIMPLE_OPERATOR ("?:", COND_EXPR, "qu", 3)
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 6fbcc2be192..654d4cd302a 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -165,6 +165,7 @@ maybe_clone_body (fn)
/* Update CLONE's source position information to match FN's. */
DECL_SOURCE_LOCATION (clone) = DECL_SOURCE_LOCATION (fn);
DECL_INLINE (clone) = DECL_INLINE (fn);
+ DID_INLINE_FUNC (clone) = DID_INLINE_FUNC (fn);
DECL_DECLARED_INLINE_P (clone) = DECL_DECLARED_INLINE_P (fn);
DECL_COMDAT (clone) = DECL_COMDAT (fn);
DECL_WEAK (clone) = DECL_WEAK (fn);
@@ -264,6 +265,9 @@ maybe_clone_body (fn)
/* Clean up. */
splay_tree_delete (decl_map);
+ /* The clone can throw iff the original function can throw. */
+ cp_function_chain->can_throw = !TREE_NOTHROW (fn);
+
/* Now, expand this function into RTL, if appropriate. */
finish_function (0);
BLOCK_ABSTRACT_ORIGIN (DECL_INITIAL (clone)) = DECL_INITIAL (fn);
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index 0be461eada5..157a210355a 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -56,6 +56,7 @@ Boston, MA 02111-1307, USA. */
static short *malloced_yyss;
static void *malloced_yyvs;
+static int class_template_ok_as_expr;
#define yyoverflow(MSG, SS, SSSIZE, VS, VSSIZE, YYSSZ) \
do { \
@@ -386,7 +387,7 @@ check_class_key (key, aggr)
%type <ttype> init initlist maybeasm maybe_init defarg defarg1
%type <ttype> asm_operands nonnull_asm_operands asm_operand asm_clobbers
%type <ttype> maybe_attribute attributes attribute attribute_list attrib
-%type <ttype> any_word
+%type <ttype> any_word unoperator
%type <itype> save_lineno
%type <ttype> simple_stmt simple_if
@@ -441,7 +442,7 @@ check_class_key (key, aggr)
%type <itype> new delete
/* %type <ttype> primary_no_id */
%type <ttype> maybe_parmlist
-%type <ttype> member_init
+%type <ttype> begin_member_init member_init
%type <ftype> member_init_list
%type <ttype> template_parm_header template_spec_header template_header
%type <ttype> template_parm_list template_parm
@@ -449,7 +450,7 @@ check_class_key (key, aggr)
%type <code> template_close_bracket
%type <ttype> apparent_template_type
%type <ttype> template_type template_arg_list template_arg_list_opt
-%type <ttype> template_arg
+%type <ttype> template_arg template_arg_1
%type <ttype> condition xcond paren_cond_or_null
%type <ttype> type_name nested_name_specifier nested_type ptr_to_mem
%type <ttype> complete_type_name notype_identifier nonnested_type
@@ -976,34 +977,35 @@ member_init_list:
| member_init_list error
;
-member_init:
- '(' nonnull_exprlist ')'
+begin_member_init:
+ /* empty */
{
- if (current_class_name)
+ if (current_class_name)
pedwarn ("anachronistic old style base class initializer");
- $$ = expand_member_init (NULL_TREE, $2);
+ $$ = expand_member_init (NULL_TREE);
+ in_base_initializer = $$ && !DECL_P ($$);
}
- | LEFT_RIGHT
- {
- if (current_class_name)
- pedwarn ("anachronistic old style base class initializer");
- $$ = expand_member_init (NULL_TREE,
- void_type_node);
- }
- | notype_identifier '(' nonnull_exprlist ')'
- { $$ = expand_member_init ($1, $3); }
- | notype_identifier LEFT_RIGHT
- { $$ = expand_member_init ($1, void_type_node); }
- | nonnested_type '(' nonnull_exprlist ')'
- { $$ = expand_member_init ($1, $3); }
- | nonnested_type LEFT_RIGHT
- { $$ = expand_member_init ($1, void_type_node); }
- | typename_sub '(' nonnull_exprlist ')'
- { $$ = expand_member_init ($1, $3); }
- | typename_sub LEFT_RIGHT
- { $$ = expand_member_init ($1, void_type_node); }
+ | notype_identifier
+ { $$ = expand_member_init ($1);
+ in_base_initializer = $$ && !DECL_P ($$); }
+ | nonnested_type
+ { $$ = expand_member_init ($1);
+ in_base_initializer = $$ && !DECL_P ($$); }
+ | typename_sub
+ { $$ = expand_member_init ($1);
+ in_base_initializer = $$ && !DECL_P ($$); }
+ ;
+
+member_init:
+ begin_member_init '(' nonnull_exprlist ')'
+ { in_base_initializer = 0;
+ $$ = $1 ? build_tree_list ($1, $3) : NULL_TREE; }
+ | begin_member_init LEFT_RIGHT
+ { in_base_initializer = 0;
+ $$ = $1 ? build_tree_list ($1, void_type_node) : NULL_TREE; }
| error
- { $$ = NULL_TREE; }
+ { in_base_initializer = 0;
+ $$ = NULL_TREE; }
;
identifier:
@@ -1120,7 +1122,7 @@ template_close_bracket:
template_arg_list_opt:
/* empty */
{ $$ = NULL_TREE; }
- | template_arg_list
+ | template_arg_list
;
template_arg_list:
@@ -1131,6 +1133,15 @@ template_arg_list:
;
template_arg:
+ { ++class_template_ok_as_expr; }
+ template_arg_1
+ {
+ --class_template_ok_as_expr;
+ $$ = $2;
+ }
+ ;
+
+template_arg_1:
type_id
{ $$ = groktypename ($1.t); }
| PTYPENAME
@@ -1703,7 +1714,14 @@ primary:
$$ = $2;
}
| overqualified_id %prec HYPERUNARY
- { $$ = build_offset_ref (OP0 ($$), OP1 ($$)); }
+ { $$ = build_offset_ref (OP0 ($$), OP1 ($$));
+ if (!class_template_ok_as_expr
+ && DECL_CLASS_TEMPLATE_P ($$))
+ {
+ error ("invalid use of template `%D'", $$);
+ $$ = error_mark_node;
+ }
+ }
| overqualified_id '(' nonnull_exprlist ')'
{ $$ = parse_finish_call_expr ($1, $3, 0); }
| overqualified_id LEFT_RIGHT
@@ -2327,10 +2345,18 @@ structsp:
tree type = TREE_TYPE ($1.t);
if (TREE_CODE (type) == TYPENAME_TYPE)
- /* In a definition of a member class template,
- we will get here with an implicit typename,
- a TYPENAME_TYPE with a type. */
- type = TREE_TYPE (type);
+ {
+ if (IMPLICIT_TYPENAME_P (type))
+ /* In a definition of a member class template,
+ we will get here with an implicit typename,
+ a TYPENAME_TYPE with a type. */
+ type = TREE_TYPE (type);
+ else
+ {
+ error ("qualified name does not name a class");
+ type = error_mark_node;
+ }
+ }
maybe_process_partial_specialization (type);
xref_basetypes (type, $2);
}
@@ -2482,24 +2508,14 @@ class_head_defn:
| class_head_apparent_template '{'
{
yyungetc ('{', 1);
- $$.t = $1;
- $$.new_type_flag = 0;
- if (TREE_CODE (TREE_TYPE ($1)) == RECORD_TYPE)
- /* We might be specializing a template with a different
- class-key. */
- CLASSTYPE_DECLARED_CLASS (TREE_TYPE ($1))
- = (current_aggr == class_type_node);
+ $$.t = handle_class_head_apparent_template
+ ($1, &$$.new_type_flag);
}
| class_head_apparent_template ':'
{
yyungetc (':', 1);
- $$.t = $1;
- $$.new_type_flag = 0;
- if (TREE_CODE (TREE_TYPE ($1)) == RECORD_TYPE)
- /* We might be specializing a template with a different
- class-key. */
- CLASSTYPE_DECLARED_CLASS (TREE_TYPE ($1))
- = (current_aggr == class_type_node);
+ $$.t = handle_class_head_apparent_template
+ ($1, &$$.new_type_flag);
}
| aggr identifier_defn '{'
{
@@ -3830,7 +3846,7 @@ bad_parm:
{
if (TREE_CODE (TREE_OPERAND ($$, 0)) == TEMPLATE_TYPE_PARM
|| TREE_CODE (TREE_OPERAND ($$, 0)) == BOUND_TEMPLATE_TEMPLATE_PARM)
- error ("`%E' is not a type, use `typename %E' to make it one", $$);
+ error ("`%E' is not a type, use `typename %E' to make it one", $$, $$);
else
error ("no type `%D' in `%T'", TREE_OPERAND ($$, 1), TREE_OPERAND ($$, 0));
}
@@ -3917,6 +3933,7 @@ unoperator:
got_object = TREE_VALUE (saved_scopes);
looking_for_typename = TREE_LANG_FLAG_0 (saved_scopes);
saved_scopes = TREE_CHAIN (saved_scopes);
+ $$ = got_scope;
}
;
@@ -3988,7 +4005,7 @@ operator_name:
| operator DELETE '[' ']' unoperator
{ $$ = frob_opname (ansi_opname (VEC_DELETE_EXPR)); }
| operator type_specifier_seq conversion_declarator unoperator
- { $$ = frob_opname (grokoptypename ($2.t, $3)); }
+ { $$ = frob_opname (grokoptypename ($2.t, $3, $4)); }
| operator error unoperator
{ $$ = frob_opname (ansi_opname (ERROR_MARK)); }
;
@@ -4030,17 +4047,15 @@ static tree
parse_scoped_id (token)
tree token;
{
- tree id;
-
- id = make_node (CPLUS_BINDING);
- if (!qualified_lookup_using_namespace (token, global_namespace, id, 0))
- id = NULL_TREE;
- else
- id = BINDING_VALUE (id);
+ cxx_binding binding;
+
+ cxx_binding_clear (&binding);
+ if (!qualified_lookup_using_namespace (token, global_namespace, &binding, 0))
+ binding.value = NULL;
if (yychar == YYEMPTY)
yychar = yylex();
- return do_scoped_id (token, id);
+ return do_scoped_id (token, binding.value);
}
/* AGGR may be either a type node (like class_type_node) or a
@@ -4117,72 +4132,19 @@ static tree
parse_finish_call_expr (tree fn, tree args, int koenig)
{
bool disallow_virtual;
- tree template_args;
- tree template_id;
- tree f;
if (TREE_CODE (fn) == OFFSET_REF)
return build_offset_ref_call_from_tree (fn, args);
if (TREE_CODE (fn) == SCOPE_REF)
{
- tree scope;
- tree name;
-
- scope = TREE_OPERAND (fn, 0);
- name = TREE_OPERAND (fn, 1);
+ tree scope = TREE_OPERAND (fn, 0);
+ tree name = TREE_OPERAND (fn, 1);
if (scope == error_mark_node || name == error_mark_node)
return error_mark_node;
if (!processing_template_decl)
- {
- if (TREE_CODE (scope) == NAMESPACE_DECL)
- fn = lookup_namespace_name (scope, name);
- else
- {
- if (!COMPLETE_TYPE_P (scope) && !TYPE_BEING_DEFINED (scope))
- {
- error ("incomplete type '%T' cannot be used to name a scope",
- scope);
- return error_mark_node;
- }
- else if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
- {
- template_id = name;
- template_args = TREE_OPERAND (name, 1);
- name = TREE_OPERAND (name, 0);
- }
- else
- {
- template_id = NULL_TREE;
- template_args = NULL_TREE;
- }
-
- if (BASELINK_P (name))
- fn = name;
- else
- {
- if (TREE_CODE (name) == OVERLOAD)
- name = DECL_NAME (get_first_fn (name));
- fn = lookup_member (scope, name, /*protect=*/1,
- /*prefer_type=*/0);
- if (!fn)
- {
- error ("'%D' has no member named '%E'", scope, name);
- return error_mark_node;
- }
-
- if (BASELINK_P (fn) && template_id)
- BASELINK_FUNCTIONS (fn)
- = build_nt (TEMPLATE_ID_EXPR,
- BASELINK_FUNCTIONS (fn),
- template_args);
- }
- if (current_class_type)
- fn = (adjust_result_of_qualified_name_lookup
- (fn, scope, current_class_type));
- }
- }
+ fn = resolve_scoped_fn_name (scope, name);
disallow_virtual = true;
}
else
@@ -4190,6 +4152,8 @@ parse_finish_call_expr (tree fn, tree args, int koenig)
if (koenig && TREE_CODE (fn) == IDENTIFIER_NODE)
{
+ tree f;
+
/* Do the Koenig lookup. */
fn = do_identifier (fn, 2, args);
/* If name lookup didn't find any matching declarations, we've
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index fa3caac01dc..ee7f7dbfffc 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1,6 +1,6 @@
/* Handle parameterized types (templates) for GNU C++.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002 Free Software Foundation, Inc.
+ 2001, 2002, 2004 Free Software Foundation, Inc.
Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing.
Rewritten by Jason Merrill (jason@cygnus.com).
@@ -66,6 +66,8 @@ static size_t inline_parm_levels_used;
static GTY(()) tree current_tinst_level;
+static GTY(()) tree saved_access_scope;
+
/* A map from local variable declarations in the body of the template
presently being instantiated to the corresponding instantiated
local variables. */
@@ -87,10 +89,13 @@ static htab_t local_specializations;
#define GTB_IGNORE_TYPE 2 /* We don't need to try to unify the current
type with the desired type. */
+static void push_access_scope_real PARAMS ((tree, tree, tree));
+static void push_access_scope PARAMS ((tree));
+static void pop_access_scope PARAMS ((tree));
static int resolve_overloaded_unification PARAMS ((tree, tree, tree, tree,
unification_kind_t, int));
static int try_one_overload PARAMS ((tree, tree, tree, tree, tree,
- unification_kind_t, int));
+ unification_kind_t, int, bool));
static int unify PARAMS ((tree, tree, tree, tree, int));
static void add_pending_template PARAMS ((tree));
static void reopen_tinst_level PARAMS ((tree));
@@ -123,7 +128,7 @@ static tree retrieve_specialization PARAMS ((tree, tree));
static tree retrieve_local_specialization PARAMS ((tree));
static tree register_specialization PARAMS ((tree, tree, tree));
static void register_local_specialization PARAMS ((tree, tree));
-static int unregister_specialization PARAMS ((tree, tree));
+static int reregister_specialization PARAMS ((tree, tree, tree));
static tree reduce_template_parm_level PARAMS ((tree, tree, int));
static tree build_template_decl PARAMS ((tree, tree));
static int mark_template_parm PARAMS ((tree, void *));
@@ -166,6 +171,87 @@ static tree copy_default_args_to_explicit_spec_1 PARAMS ((tree, tree));
static void copy_default_args_to_explicit_spec PARAMS ((tree));
static int invalid_nontype_parm_type_p PARAMS ((tree, tsubst_flags_t));
+/* Make the current scope suitable for access checking when we are
+ processing T. T can be FUNCTION_DECL for instantiated function
+ template, TEMPLATE_DECL for uninstantiated one, or VAR_DECL for
+ static member variable (need by instantiate_decl). ARGS is the
+ template argument for TEMPLATE_DECL. If CONTEXT is not NULL_TREE,
+ this is used instead of the context of T. */
+
+void
+push_access_scope_real (t, args, context)
+ tree t, args, context;
+{
+ if (TREE_CODE (t) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (t))
+ {
+ /* When we are processing specialization `foo<Outer>' for code like
+
+ template <class U> typename U::Inner foo ();
+ class Outer {
+ struct Inner {};
+ friend Outer::Inner foo<Outer> ();
+ };
+
+ `T' is a TEMPLATE_DECL, but `Outer' is only a friend of one of
+ its specialization. We can get the FUNCTION_DECL with the right
+ information because this specialization has already been
+ registered by the friend declaration above. */
+
+ if (DECL_FUNCTION_TEMPLATE_P (t) && args)
+ {
+ tree full_args = tsubst_template_arg_vector
+ (DECL_TI_ARGS (DECL_TEMPLATE_RESULT (t)), args, tf_none);
+ tree spec = NULL_TREE;
+ if (full_args != error_mark_node)
+ spec = retrieve_specialization (t, full_args);
+ if (spec)
+ t = spec;
+ }
+ }
+
+ if (!context)
+ context = DECL_CONTEXT (t);
+ if (context && TYPE_P (context))
+ push_nested_class (context, 2);
+ else
+ push_to_top_level ();
+
+ if (TREE_CODE (t) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (t))
+ {
+ saved_access_scope = tree_cons
+ (NULL_TREE, current_function_decl, saved_access_scope);
+ current_function_decl = t;
+ }
+}
+
+/* Like push_access_scope_real, but always uses DECL_CONTEXT. */
+
+void
+push_access_scope (t)
+ tree t;
+{
+ push_access_scope_real (t, NULL_TREE, NULL_TREE);
+}
+
+/* Restore the scope set up by push_access_scope. T is the node we
+ are processing. */
+
+void
+pop_access_scope (t)
+ tree t;
+{
+ if (TREE_CODE (t) == FUNCTION_DECL || DECL_FUNCTION_TEMPLATE_P (t))
+ {
+ current_function_decl = TREE_VALUE (saved_access_scope);
+ saved_access_scope = TREE_CHAIN (saved_access_scope);
+ }
+
+ if (DECL_CLASS_SCOPE_P (t))
+ pop_nested_class ();
+ else
+ pop_from_top_level ();
+}
+
/* Do any processing required when DECL (a member template declaration
using TEMPLATE_PARAMETERS as its innermost parameter list) is
finished. Returns the TEMPLATE_DECL corresponding to DECL, unless
@@ -681,8 +767,22 @@ void
maybe_process_partial_specialization (type)
tree type;
{
- if (IS_AGGR_TYPE (type) && CLASSTYPE_USE_TEMPLATE (type))
+ /* TYPE maybe an ERROR_MARK_NODE. */
+ tree context = TYPE_P (type) ? TYPE_CONTEXT (type) : NULL_TREE;
+
+ if (CLASS_TYPE_P (type) && CLASSTYPE_USE_TEMPLATE (type))
{
+ /* This is for ordinary explicit specialization and partial
+ specialization of a template class such as:
+
+ template <> class C<int>;
+
+ or:
+
+ template <class T> class C<T*>;
+
+ Make sure that `C<int>' and `C<T*>' are implicit instantiations. */
+
if (CLASSTYPE_IMPLICIT_INSTANTIATION (type)
&& !COMPLETE_TYPE_P (type))
{
@@ -700,6 +800,62 @@ maybe_process_partial_specialization (type)
else if (CLASSTYPE_TEMPLATE_INSTANTIATION (type))
error ("specialization of `%T' after instantiation", type);
}
+ else if (CLASS_TYPE_P (type)
+ && !CLASSTYPE_USE_TEMPLATE (type)
+ && CLASSTYPE_TEMPLATE_INFO (type)
+ && context && CLASS_TYPE_P (context)
+ && CLASSTYPE_TEMPLATE_INFO (context))
+ {
+ /* This is for an explicit specialization of member class
+ template according to [temp.expl.spec/18]:
+
+ template <> template <class U> class C<int>::D;
+
+ The context `C<int>' must be an implicit instantiation.
+ Otherwise this is just a member class template declared
+ earlier like:
+
+ template <> class C<int> { template <class U> class D; };
+ template <> template <class U> class C<int>::D;
+
+ In the first case, `C<int>::D' is a specialization of `C<T>::D'
+ while in the second case, `C<int>::D' is a primary template
+ and `C<T>::D' may not exist. */
+
+ if (CLASSTYPE_IMPLICIT_INSTANTIATION (context)
+ && !COMPLETE_TYPE_P (type))
+ {
+ tree t;
+
+ if (current_namespace
+ != decl_namespace_context (CLASSTYPE_TI_TEMPLATE (type)))
+ {
+ pedwarn ("specializing `%#T' in different namespace", type);
+ cp_pedwarn_at (" from definition of `%#D'",
+ CLASSTYPE_TI_TEMPLATE (type));
+ }
+
+ /* Check for invalid specialization after instantiation:
+
+ template <> template <> class C<int>::D<int>;
+ template <> template <class U> class C<int>::D; */
+
+ for (t = DECL_TEMPLATE_INSTANTIATIONS
+ (most_general_template (CLASSTYPE_TI_TEMPLATE (type)));
+ t; t = TREE_CHAIN (t))
+ if (TREE_VALUE (t) != type
+ && TYPE_CONTEXT (TREE_VALUE (t)) == context)
+ error ("specialization `%T' after instantiation `%T'",
+ type, TREE_VALUE (t));
+
+ /* Mark TYPE as a specialization. And as a result, we only
+ have one level of template argument for the innermost
+ class template. */
+ SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (type);
+ CLASSTYPE_TI_ARGS (type)
+ = INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type));
+ }
+ }
else if (processing_specialization)
error ("explicit specialization of non-template `%T'", type);
}
@@ -804,7 +960,7 @@ register_specialization (spec, tmpl, args)
the default argument expression is not substituted for in an
instantiation unless and until it is actually needed. */
return spec;
-
+
/* There should be as many levels of arguments as there are
levels of parameters. */
my_friendly_assert (TMPL_ARGS_DEPTH (args)
@@ -885,13 +1041,11 @@ register_specialization (spec, tmpl, args)
}
/* Unregister the specialization SPEC as a specialization of TMPL.
- Returns nonzero if the SPEC was listed as a specialization of
- TMPL. */
+ Replace it with NEW_SPEC, if NEW_SPEC is non-NULL. Returns true
+ if the SPEC was listed as a specialization of TMPL. */
static int
-unregister_specialization (spec, tmpl)
- tree spec;
- tree tmpl;
+reregister_specialization (tree spec, tree tmpl, tree new_spec)
{
tree* s;
@@ -900,7 +1054,10 @@ unregister_specialization (spec, tmpl)
s = &TREE_CHAIN (*s))
if (TREE_VALUE (*s) == spec)
{
- *s = TREE_CHAIN (*s);
+ if (!new_spec)
+ *s = TREE_CHAIN (*s);
+ else
+ TREE_VALUE (*s) = new_spec;
return 1;
}
@@ -998,6 +1155,7 @@ determine_specialization (template_id, decl, targs_out,
if (TREE_CODE (fn) == TEMPLATE_DECL)
{
tree decl_arg_types;
+ tree fn_arg_types;
/* DECL might be a specialization of FN. */
@@ -1014,8 +1172,16 @@ determine_specialization (template_id, decl, targs_out,
The specialization f<int> is invalid but is not caught
by get_bindings below. */
- if (list_length (TYPE_ARG_TYPES (TREE_TYPE (fn)))
- != list_length (decl_arg_types))
+ fn_arg_types = TYPE_ARG_TYPES (TREE_TYPE (fn));
+ if (list_length (fn_arg_types) != list_length (decl_arg_types))
+ continue;
+
+ /* For a non-static member function, we need to make sure that
+ the const qualification is the same. This can be done by
+ checking the 'this' in the argument list. */
+ if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fn)
+ && !same_type_p (TREE_VALUE (fn_arg_types),
+ TREE_VALUE (decl_arg_types)))
continue;
/* See whether this function might be a specialization of this
@@ -1655,6 +1821,18 @@ check_explicit_specialization (declarator, decl, template_count, flags)
return instantiate_template (tmpl, targs);
}
+ /* If we thought that the DECL was a member function, but it
+ turns out to be specializing a static member function,
+ make DECL a static member function as well. We also have
+ to adjust last_function_parms to avoid confusing
+ start_function later. */
+ if (DECL_STATIC_FUNCTION_P (tmpl)
+ && DECL_NONSTATIC_MEMBER_FUNCTION_P (decl))
+ {
+ revert_static_member_fn (decl);
+ last_function_parms = TREE_CHAIN (last_function_parms);
+ }
+
/* If this is a specialization of a member template of a
template class. In we want to return the TEMPLATE_DECL,
not the specialization of it. */
@@ -1665,16 +1843,6 @@ check_explicit_specialization (declarator, decl, template_count, flags)
return tmpl;
}
- /* If we thought that the DECL was a member function, but it
- turns out to be specializing a static member function,
- make DECL a static member function as well. */
- if (DECL_STATIC_FUNCTION_P (tmpl)
- && DECL_NONSTATIC_MEMBER_FUNCTION_P (decl))
- {
- revert_static_member_fn (decl);
- last_function_parms = TREE_CHAIN (last_function_parms);
- }
-
/* Set up the DECL_TEMPLATE_INFO for DECL. */
DECL_TEMPLATE_INFO (decl) = tree_cons (tmpl, targs, NULL_TREE);
@@ -2759,6 +2927,13 @@ push_template_decl_real (decl, is_friend)
}
}
+ /* The DECL_TI_ARGS of DECL contains full set of arguments refering
+ back to its most general template. If TMPL is a specialization,
+ ARGS may only have the innermost set of arguments. Add the missing
+ argument levels if necessary. */
+ if (DECL_TEMPLATE_INFO (tmpl))
+ args = add_outermost_template_args (DECL_TI_ARGS (tmpl), args);
+
info = tree_cons (tmpl, args, NULL_TREE);
if (DECL_IMPLICIT_TYPEDEF_P (decl))
@@ -3341,17 +3516,12 @@ convert_template_argument (parm, arg, args, complain, i, in_decl)
&& TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL)
|| TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM
|| TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE);
- else if (CLASSTYPE_TEMPLATE_INFO (arg) && !CLASSTYPE_USE_TEMPLATE (arg)
- && PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (arg)))
- {
- if (is_base_of_enclosing_class (arg, current_class_type))
- /* This is a template name used within the scope of the
- template. It could be the template, or it could be the
- instantiation. Choose whichever makes sense. */
- is_tmpl_type = requires_tmpl_type;
- else
- is_tmpl_type = 1;
- }
+ else if (CLASSTYPE_IS_TEMPLATE (arg)
+ && is_base_of_enclosing_class (arg, current_class_type))
+ /* This is a template name used within the scope of the
+ template. It could be the template, or it could be the
+ instantiation. Choose whichever makes sense. */
+ is_tmpl_type = requires_tmpl_type;
else
/* It is a non-template class, or a specialization of a template
class, or a non-template member of a template class. */
@@ -3837,7 +4007,8 @@ lookup_template_function (fns, arglist)
if (fns == error_mark_node || arglist == error_mark_node)
return error_mark_node;
- if (fns == NULL_TREE)
+ if (fns == NULL_TREE
+ || TREE_CODE (fns) == FUNCTION_DECL)
{
error ("non-template used as template");
return error_mark_node;
@@ -3916,6 +4087,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
tree template = NULL_TREE, parmlist;
tree t;
+ timevar_push (TV_NAME_LOOKUP);
if (TREE_CODE (d1) == IDENTIFIER_NODE)
{
if (IDENTIFIER_VALUE (d1)
@@ -3932,10 +4104,20 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
}
if (template)
context = DECL_CONTEXT (template);
+ if (template
+ && TREE_CODE (template) == TYPE_DECL
+ && IS_AGGR_TYPE (TREE_TYPE (template))
+ && TREE_CODE (TREE_TYPE (template)) != TEMPLATE_TYPE_PARM)
+ {
+ d1 = template;
+ goto type_decl;
+ }
}
else if (TREE_CODE (d1) == TYPE_DECL && IS_AGGR_TYPE (TREE_TYPE (d1)))
{
- tree type = TREE_TYPE (d1);
+ tree type;
+ type_decl:
+ type = TREE_TYPE (d1);
/* If we are declaring a constructor, say A<T>::A<T>, we will get
an implicit typename for the second A. Deal with it. */
@@ -3971,7 +4153,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
{
if (complain & tf_error)
error ("`%T' is not a template", d1);
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
if (TREE_CODE (template) != TEMPLATE_DECL
@@ -3987,7 +4169,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
if (in_decl)
cp_error_at ("for template declaration `%D'", in_decl);
}
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
}
if (DECL_TEMPLATE_TEMPLATE_PARM_P (template))
@@ -4022,10 +4204,10 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
arglist2 = coerce_template_parms (parmlist, arglist, template,
complain, /*require_all_args=*/1);
if (arglist2 == error_mark_node)
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
parm = bind_template_template_parm (TREE_TYPE (template), arglist2);
- return parm;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, parm);
}
else
{
@@ -4089,6 +4271,15 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
tree a = coerce_template_parms (TREE_VALUE (t),
arglist, template,
complain, /*require_all_args=*/1);
+
+ /* Don't process further if one of the levels fails. */
+ if (a == error_mark_node)
+ {
+ /* Restore the ARGLIST to its full size. */
+ TREE_VEC_LENGTH (arglist) = saved_depth;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
+ }
+
SET_TMPL_ARGS_LEVEL (bound_args, i, a);
/* We temporarily reduce the length of the ARGLIST so
@@ -4112,7 +4303,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
if (arglist == error_mark_node)
/* We were unable to bind the arguments. */
- return error_mark_node;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, error_mark_node);
/* In the scope of a template class, explicit references to the
template class refer to the type of the template, not any
@@ -4149,7 +4340,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
}
}
if (found)
- return found;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, found);
for (tp = &DECL_TEMPLATE_INSTANTIATIONS (template);
*tp;
@@ -4165,7 +4356,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
= DECL_TEMPLATE_INSTANTIATIONS (template);
DECL_TEMPLATE_INSTANTIATIONS (template) = found;
- return TREE_VALUE (found);
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, TREE_VALUE (found));
}
/* This type is a "partial instantiation" if any of the template
@@ -4181,7 +4372,7 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
found = xref_tag_from_type (TREE_TYPE (template),
DECL_NAME (template),
/*globalize=*/1);
- return found;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, found);
}
context = tsubst (DECL_CONTEXT (template), arglist,
@@ -4233,6 +4424,11 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
else
type_decl = TYPE_NAME (t);
+ TREE_PRIVATE (type_decl)
+ = TREE_PRIVATE (TYPE_STUB_DECL (template_type));
+ TREE_PROTECTED (type_decl)
+ = TREE_PROTECTED (TYPE_STUB_DECL (template_type));
+
/* Set up the template information. We have to figure out which
template is the immediate parent if this is a full
instantiation. */
@@ -4332,8 +4528,9 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope, complain)
code that generates debugging information will crash. */
DECL_IGNORED_P (TYPE_STUB_DECL (t)) = 1;
- return t;
+ POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, t);
}
+ timevar_pop (TV_NAME_LOOKUP);
}
struct pair_fn_data
@@ -4837,8 +5034,9 @@ tsubst_friend_function (decl, args)
DECL_TEMPLATE_INFO (old_decl) = new_friend_template_info;
if (TREE_CODE (old_decl) != TEMPLATE_DECL)
- /* duplicate_decls will take care of this case. */
- ;
+ reregister_specialization (new_friend,
+ most_general_template (old_decl),
+ old_decl);
else
{
tree t;
@@ -5108,7 +5306,7 @@ instantiate_class_template (type)
TYPE_FIELDS (type) = TYPE_FIELDS (pattern);
TYPE_METHODS (type) = TYPE_METHODS (pattern);
CLASSTYPE_DECL_LIST (type) = CLASSTYPE_DECL_LIST (pattern);
- CLASSTYPE_TAGS (type) = CLASSTYPE_TAGS (pattern);
+ CLASSTYPE_NESTED_UDTS (type) = CLASSTYPE_NESTED_UDTS (pattern);
CLASSTYPE_VBASECLASSES (type) = CLASSTYPE_VBASECLASSES (pattern);
/* Pretend that the type is complete, so that we will look
@@ -5202,12 +5400,22 @@ instantiate_class_template (type)
if (ANON_AGGR_TYPE_P (pattern))
SET_ANON_AGGR_TYPE_P (type);
+ if (DECL_CLASS_SCOPE_P (TYPE_MAIN_DECL (pattern)))
+ /* First instantiate our enclosing class. */
+ complete_type (TYPE_CONTEXT (type));
+
if (TYPE_BINFO_BASETYPES (pattern))
{
tree base_list = NULL_TREE;
tree pbases = TYPE_BINFO_BASETYPES (pattern);
+ tree context = TYPE_CONTEXT (type);
int i;
+ /* We must enter the scope containing the type, as that is where
+ the accessibility of types named in dependent bases are
+ looked up from. */
+ push_scope (context ? context : global_namespace);
+
/* Substitute into each of the bases to determine the actual
basetypes. */
for (i = 0; i < TREE_VEC_LENGTH (pbases); ++i)
@@ -5252,6 +5460,8 @@ instantiate_class_template (type)
/* Now call xref_basetypes to set up all the base-class
information. */
xref_basetypes (type, base_list);
+
+ pop_scope (context ? context : global_namespace);
}
/* Now that our base classes are set up, enter the scope of the
@@ -5270,14 +5480,16 @@ instantiate_class_template (type)
{
if (TYPE_P (t))
{
- /* Build new CLASSTYPE_TAGS. */
+ /* Build new CLASSTYPE_NESTED_UDTS. */
tree tag = t;
tree name = TYPE_IDENTIFIER (tag);
tree newtag;
newtag = tsubst (tag, args, tf_error, NULL_TREE);
- my_friendly_assert (newtag != error_mark_node, 20010206);
+ if (newtag == error_mark_node)
+ continue;
+
if (TREE_CODE (newtag) != ENUMERAL_TYPE)
{
if (TYPE_LANG_SPECIFIC (tag) && CLASSTYPE_IS_TEMPLATE (tag))
@@ -5363,10 +5575,10 @@ instantiate_class_template (type)
/* If it is a TYPE_DECL for a class-scoped ENUMERAL_TYPE,
such a thing will already have been added to the field
list by tsubst_enum in finish_member_declaration in the
- CLASSTYPE_TAGS case above. */
+ CLASSTYPE_NESTED_UDTS case above. */
if (!(TREE_CODE (r) == TYPE_DECL
&& TREE_CODE (TREE_TYPE (r)) == ENUMERAL_TYPE
- && TYPE_CONTEXT (TREE_TYPE (r)) == type))
+ && DECL_ARTIFICIAL (r)))
{
set_current_access_from_decl (r);
finish_member_declaration (r);
@@ -5415,12 +5627,8 @@ instantiate_class_template (type)
--processing_template_decl;
}
else
- {
- /* Build new DECL_FRIENDLIST. */
-
- add_friend (type,
- tsubst_friend_function (t, args));
- }
+ /* Build new DECL_FRIENDLIST. */
+ add_friend (type, tsubst_friend_function (t, args));
}
}
@@ -5456,6 +5664,9 @@ instantiate_class_template (type)
pop_from_top_level ();
pop_tinst_level ();
+ if (TYPE_CONTAINS_VPTR_P (type))
+ keyed_classes = tree_cons (NULL_TREE, type, keyed_classes);
+
return type;
}
@@ -5691,14 +5902,18 @@ tsubst_default_argument (fn, type, arg)
??? current_class_type affects a lot more than name lookup. This is
very fragile. Fortunately, it will go away when we do 2-phase name
binding properly. */
- if (DECL_CLASS_SCOPE_P (fn))
- pushclass (DECL_CONTEXT (fn), 2);
+
+ /* FN is already the desired FUNCTION_DECL. */
+ push_access_scope (fn);
+ /* The default argument expression should not be considered to be
+ within the scope of FN. Since push_access_scope sets
+ current_function_decl, we must explicitly clear it here. */
+ current_function_decl = NULL_TREE;
arg = tsubst_expr (arg, DECL_TI_ARGS (fn),
tf_error | tf_warning, NULL_TREE);
- if (DECL_CLASS_SCOPE_P (fn))
- popclass ();
+ pop_access_scope (fn);
/* Make sure the default argument is reasonable. */
arg = check_default_argument (type, arg);
@@ -5817,6 +6032,9 @@ tsubst_decl (t, args, type, complain)
if (TREE_CODE (decl) == TYPE_DECL)
{
tree new_type = tsubst (TREE_TYPE (t), args, complain, in_decl);
+ if (new_type == error_mark_node)
+ return error_mark_node;
+
TREE_TYPE (r) = new_type;
CLASSTYPE_TI_TEMPLATE (new_type) = r;
DECL_TEMPLATE_RESULT (r) = TYPE_MAIN_DECL (new_type);
@@ -5874,6 +6092,10 @@ tsubst_decl (t, args, type, complain)
{
tree spec;
+ /* If T is not dependent, just return it. */
+ if (!uses_template_parms (DECL_TI_ARGS (t)))
+ return t;
+
/* Calculate the most general template of which R is a
specialization, and the complete set of arguments used to
specialize R. */
@@ -6173,6 +6395,8 @@ tsubst_decl (t, args, type, complain)
r = copy_decl (t);
if (TREE_CODE (r) == VAR_DECL)
type = complete_type (type);
+ else if (DECL_SELF_REFERENCE_P (t))
+ SET_DECL_SELF_REFERENCE_P (r);
TREE_TYPE (r) = type;
c_apply_type_quals_to_decl (cp_type_quals (type), r);
DECL_CONTEXT (r) = ctx;
@@ -6793,7 +7017,7 @@ tsubst (t, args, complain, in_decl)
}
if (TREE_CODE (type) == REFERENCE_TYPE)
{
- if (complain)
+ if (complain & tf_error)
error ("creating pointer to member reference type `%T'", type);
return error_mark_node;
@@ -7021,7 +7245,10 @@ tsubst (t, args, complain, in_decl)
if (e1 == error_mark_node)
return error_mark_node;
- return TREE_TYPE (e1);
+ return cp_build_qualified_type_real (TREE_TYPE (e1),
+ cp_type_quals (t)
+ | cp_type_quals (TREE_TYPE (e1)),
+ complain);
}
default:
@@ -7795,17 +8022,17 @@ instantiate_template (tmpl, targ_ptr)
}
/* Make sure that we can see identifiers, and compute access
- correctly. */
- if (DECL_CLASS_SCOPE_P (gen_tmpl))
- pushclass (tsubst (DECL_CONTEXT (gen_tmpl), targ_ptr, tf_error,
- gen_tmpl), 1);
+ correctly. The desired FUNCTION_DECL for FNDECL may or may not be
+ created earlier. Let push_access_scope_real figure that out. */
+ push_access_scope_real
+ (gen_tmpl, targ_ptr, tsubst (DECL_CONTEXT (gen_tmpl), targ_ptr,
+ tf_error, gen_tmpl));
/* substitute template parameters */
fndecl = tsubst (DECL_TEMPLATE_RESULT (gen_tmpl),
targ_ptr, tf_error, gen_tmpl);
- if (DECL_CLASS_SCOPE_P (gen_tmpl))
- popclass ();
+ pop_access_scope (gen_tmpl);
/* The DECL_TI_TEMPLATE should always be the immediate parent
template, not the most general template. */
@@ -7877,7 +8104,7 @@ fn_type_unification (fn, explicit_targs, targs, args, return_type,
int result;
my_friendly_assert (TREE_CODE (fn) == TEMPLATE_DECL, 0);
-
+
fntype = TREE_TYPE (fn);
if (explicit_targs)
{
@@ -8055,6 +8282,12 @@ maybe_adjust_types_for_deduction (strict, parm, arg)
*parm = TREE_TYPE (*parm);
result |= UNIFY_ALLOW_OUTER_MORE_CV_QUAL;
}
+
+ /* DR 322. For conversion deduction, remove a reference type on parm
+ too (which has been swapped into ARG). */
+ if (strict == DEDUCE_CONV && TREE_CODE (*arg) == REFERENCE_TYPE)
+ *arg = TREE_TYPE (*arg);
+
return result;
}
@@ -8247,9 +8480,15 @@ resolve_overloaded_unification (tparms, targs, parm, arg, strict,
{
tree tempargs = copy_node (targs);
int good = 0;
+ bool addr_p;
if (TREE_CODE (arg) == ADDR_EXPR)
- arg = TREE_OPERAND (arg, 0);
+ {
+ arg = TREE_OPERAND (arg, 0);
+ addr_p = true;
+ }
+ else
+ addr_p = false;
if (TREE_CODE (arg) == COMPONENT_REF)
/* Handle `&x' where `x' is some static or non-static member
@@ -8285,24 +8524,18 @@ resolve_overloaded_unification (tparms, targs, parm, arg, strict,
if (subargs)
{
elem = tsubst (TREE_TYPE (fn), subargs, tf_none, NULL_TREE);
- if (TREE_CODE (elem) == METHOD_TYPE)
- elem = build_ptrmemfunc_type (build_pointer_type (elem));
- good += try_one_overload (tparms, targs, tempargs, parm, elem,
- strict, sub_strict);
+ good += try_one_overload (tparms, targs, tempargs, parm,
+ elem, strict, sub_strict, addr_p);
}
}
}
- else if (TREE_CODE (arg) == OVERLOAD)
+ else if (TREE_CODE (arg) == OVERLOAD
+ || TREE_CODE (arg) == FUNCTION_DECL)
{
for (; arg; arg = OVL_NEXT (arg))
- {
- tree type = TREE_TYPE (OVL_CURRENT (arg));
- if (TREE_CODE (type) == METHOD_TYPE)
- type = build_ptrmemfunc_type (build_pointer_type (type));
- good += try_one_overload (tparms, targs, tempargs, parm,
- type,
- strict, sub_strict);
- }
+ good += try_one_overload (tparms, targs, tempargs, parm,
+ TREE_TYPE (OVL_CURRENT (arg)),
+ strict, sub_strict, addr_p);
}
else
abort ();
@@ -8331,14 +8564,20 @@ resolve_overloaded_unification (tparms, targs, parm, arg, strict,
/* Subroutine of resolve_overloaded_unification; does deduction for a single
overload. Fills TARGS with any deduced arguments, or error_mark_node if
different overloads deduce different arguments for a given parm.
+ ADDR_P is true if the expression for which deduction is being
+ performed was of the form "& fn" rather than simply "fn".
+
Returns 1 on success. */
static int
-try_one_overload (tparms, orig_targs, targs, parm, arg, strict,
- sub_strict)
- tree tparms, orig_targs, targs, parm, arg;
- unification_kind_t strict;
- int sub_strict;
+try_one_overload (tree tparms,
+ tree orig_targs,
+ tree targs,
+ tree parm,
+ tree arg,
+ unification_kind_t strict,
+ int sub_strict,
+ bool addr_p)
{
int nargs;
tree tempargs;
@@ -8354,6 +8593,11 @@ try_one_overload (tparms, orig_targs, targs, parm, arg, strict,
if (uses_template_parms (arg))
return 1;
+ if (TREE_CODE (arg) == METHOD_TYPE)
+ arg = build_ptrmemfunc_type (build_pointer_type (arg));
+ else if (addr_p)
+ arg = build_pointer_type (arg);
+
sub_strict |= maybe_adjust_types_for_deduction (strict, &parm, &arg);
/* We don't copy orig_targs for this because if we have already deduced
@@ -8442,7 +8686,8 @@ try_class_unification (tparms, targs, parm, arg)
tree copy_of_targs;
if (!CLASSTYPE_TEMPLATE_INFO (arg)
- || CLASSTYPE_TI_TEMPLATE (arg) != CLASSTYPE_TI_TEMPLATE (parm))
+ || (most_general_template (CLASSTYPE_TI_TEMPLATE (arg))
+ != most_general_template (CLASSTYPE_TI_TEMPLATE (parm))))
return NULL_TREE;
/* We need to make a new template argument vector for the call to
@@ -8833,6 +9078,12 @@ unify (tparms, targs, parm, arg, strict)
}
else
{
+ /* If ARG is an offset type, we're trying to unify '*T' with
+ 'U C::*', which is ill-formed. See the comment in the
+ POINTER_TYPE case about this ugliness. */
+ if (TREE_CODE (arg) == OFFSET_TYPE)
+ return 1;
+
/* If PARM is `const T' and ARG is only `int', we don't have
a match unless we are allowing additional qualification.
If ARG is `const int' and PARM is just `T' that's OK;
@@ -8921,6 +9172,27 @@ unify (tparms, targs, parm, arg, strict)
TREE_VEC_ELT (targs, idx) = arg;
return 0;
+ case PTRMEM_CST:
+ {
+ /* A pointer-to-member constant can be unified only with
+ another constant. */
+ if (TREE_CODE (arg) != PTRMEM_CST)
+ return 1;
+
+ /* Just unify the class member. It would be useless (and possibly
+ wrong, depending on the strict flags) to unify also
+ PTRMEM_CST_CLASS, because we want to be sure that both parm and
+ arg refer to the same variable, even if through different
+ classes. For instance:
+
+ struct A { int x; };
+ struct B : A { };
+
+ Unification of &A::x and &B::x must succeed. */
+ return unify (tparms, targs, PTRMEM_CST_MEMBER (parm),
+ PTRMEM_CST_MEMBER (arg), strict);
+ }
+
case POINTER_TYPE:
{
if (TREE_CODE (arg) != POINTER_TYPE)
@@ -9120,6 +9392,7 @@ unify (tparms, targs, parm, arg, strict)
return 1;
return 0;
+ case FIELD_DECL:
case TEMPLATE_DECL:
/* Matched cases are handled by the ARG == PARM test above. */
return 1;
@@ -9191,11 +9464,6 @@ mark_decl_instantiated (result, extern_p)
tree result;
int extern_p;
{
- if (TREE_CODE (result) != FUNCTION_DECL)
- /* The TREE_PUBLIC flag for function declarations will have been
- set correctly by tsubst. */
- TREE_PUBLIC (result) = 1;
-
/* We used to set this unconditionally; we moved that to
do_decl_instantiation so it wouldn't get set on members of
explicit class template instantiations. But we still need to set
@@ -9204,6 +9472,19 @@ mark_decl_instantiated (result, extern_p)
if (extern_p)
SET_DECL_EXPLICIT_INSTANTIATION (result);
+ /* If this entity has already been written out, it's too late to
+ make any modifications. */
+ if (TREE_ASM_WRITTEN (result))
+ return;
+
+ if (TREE_CODE (result) != FUNCTION_DECL)
+ /* The TREE_PUBLIC flag for function declarations will have been
+ set correctly by tsubst. */
+ TREE_PUBLIC (result) = 1;
+
+ /* This might have been set by an earlier implicit instantiation. */
+ DECL_COMDAT (result) = 0;
+
if (! extern_p)
{
DECL_INTERFACE_KNOWN (result) = 1;
@@ -9217,7 +9498,8 @@ mark_decl_instantiated (result, extern_p)
else if (TREE_PUBLIC (result))
maybe_make_one_only (result);
}
- else if (TREE_CODE (result) == FUNCTION_DECL)
+
+ if (TREE_CODE (result) == FUNCTION_DECL)
defer_fn (result);
}
@@ -9257,22 +9539,25 @@ more_specialized (pat1, pat2, deduce, len)
1 if PAT1 is more specialized than PAT2 as described in [temp.class.order].
-1 if PAT2 is more specialized than PAT1.
- 0 if neither is more specialized. */
+ 0 if neither is more specialized.
+
+ FULL_ARGS is the full set of template arguments that triggers this
+ partial ordering. */
int
-more_specialized_class (pat1, pat2)
- tree pat1, pat2;
+more_specialized_class (pat1, pat2, full_args)
+ tree pat1, pat2, full_args;
{
tree targs;
int winner = 0;
targs = get_class_bindings (TREE_VALUE (pat1), TREE_PURPOSE (pat1),
- TREE_PURPOSE (pat2));
+ add_outermost_template_args (full_args, TREE_PURPOSE (pat2)));
if (targs)
--winner;
targs = get_class_bindings (TREE_VALUE (pat2), TREE_PURPOSE (pat2),
- TREE_PURPOSE (pat1));
+ add_outermost_template_args (full_args, TREE_PURPOSE (pat1)));
if (targs)
++winner;
@@ -9508,6 +9793,10 @@ most_general_template (decl)
if (TREE_CODE (DECL_TI_TEMPLATE (decl)) != TEMPLATE_DECL)
break;
+ if (CLASS_TYPE_P (TREE_TYPE (decl))
+ && CLASSTYPE_TEMPLATE_SPECIALIZATION (TREE_TYPE (decl)))
+ break;
+
/* Stop if we run into an explicitly specialized class template. */
if (!DECL_NAMESPACE_SCOPE_P (decl)
&& DECL_CONTEXT (decl)
@@ -9554,7 +9843,7 @@ most_specialized_class (tmpl, args)
t = TREE_CHAIN (t);
for (; t; t = TREE_CHAIN (t))
{
- fate = more_specialized_class (champ, t);
+ fate = more_specialized_class (champ, t, args);
if (fate == 1)
;
else
@@ -9571,7 +9860,7 @@ most_specialized_class (tmpl, args)
for (t = list; t && t != champ; t = TREE_CHAIN (t))
{
- fate = more_specialized_class (champ, t);
+ fate = more_specialized_class (champ, t, args);
if (fate != 1)
return error_mark_node;
}
@@ -9707,6 +9996,18 @@ mark_class_instantiated (t, extern_p)
}
}
+/* Called from do_type_instantiation through binding_table_foreach to
+ do recursive instantiation for the type bound in ENTRY. */
+static void
+bt_instantiate_type_proc (binding_entry entry, void *data)
+{
+ tree storage = *(tree *) data;
+
+ if (IS_AGGR_TYPE (entry->type)
+ && !uses_template_parms (CLASSTYPE_TI_ARGS (entry->type)))
+ do_type_instantiation (TYPE_MAIN_DECL (entry->type), storage, 0);
+}
+
/* Perform an explicit instantiation of template class T. STORAGE, if
non-null, is the RID for extern, inline or static. COMPLAIN is
nonzero if this is called from the parser, zero if called recursively,
@@ -9847,10 +10148,9 @@ do_type_instantiation (t, storage, complain)
instantiate_decl (tmp, /*defer_ok=*/1);
}
- for (tmp = CLASSTYPE_TAGS (t); tmp; tmp = TREE_CHAIN (tmp))
- if (IS_AGGR_TYPE (TREE_VALUE (tmp))
- && !uses_template_parms (CLASSTYPE_TI_ARGS (TREE_VALUE (tmp))))
- do_type_instantiation (TYPE_MAIN_DECL (TREE_VALUE (tmp)), storage, 0);
+ if (CLASSTYPE_NESTED_UDTS (t))
+ binding_table_foreach (CLASSTYPE_NESTED_UDTS (t),
+ bt_instantiate_type_proc, &storage);
}
}
@@ -9897,18 +10197,14 @@ regenerate_decl_from_template (decl, tmpl)
instantiation of a specialization, which it isn't: it's a full
instantiation. */
gen_tmpl = most_general_template (tmpl);
- unregistered = unregister_specialization (decl, gen_tmpl);
+ push_access_scope_real (gen_tmpl, args, DECL_CONTEXT (decl));
+ unregistered = reregister_specialization (decl, gen_tmpl, NULL_TREE);
/* If the DECL was not unregistered then something peculiar is
happening: we created a specialization but did not call
register_specialization for it. */
my_friendly_assert (unregistered, 0);
- if (DECL_CLASS_SCOPE_P (decl))
- /* Make sure that we can see identifiers, and compute access
- correctly, for the class members used in the declaration of
- this static variable or function. */
- pushclass (DECL_CONTEXT (decl), 2);
/* Do the substitution to get the new declaration. */
new_decl = tsubst (code_pattern, args, tf_error, NULL_TREE);
@@ -9930,9 +10226,7 @@ regenerate_decl_from_template (decl, tmpl)
DECL_INITIAL (decl) = NULL_TREE;
}
- /* Pop the class context we pushed above. */
- if (DECL_CLASS_SCOPE_P (decl))
- popclass ();
+ pop_access_scope (decl);
/* The immediate parent of the new template is still whatever it was
before, even though tsubst sets DECL_TI_TEMPLATE up as the most
@@ -9979,6 +10273,9 @@ instantiate_decl (d, defer_ok)
my_friendly_assert (TREE_CODE (d) == FUNCTION_DECL
|| TREE_CODE (d) == VAR_DECL, 0);
+ if (TREE_CODE (d) == VAR_DECL)
+ defer_ok = 0;
+
/* Don't instantiate cloned functions. Instead, instantiate the
functions they cloned. */
if (TREE_CODE (d) == FUNCTION_DECL && DECL_CLONED_FUNCTION_P (d))
@@ -10060,12 +10357,15 @@ instantiate_decl (d, defer_ok)
code_pattern = DECL_TEMPLATE_RESULT (td);
- /* In the case of a friend template whose definition is provided
- outside the class, we may have too many arguments. Drop the ones
- we don't need. */
- args = get_innermost_template_args (gen_args,
- TMPL_PARMS_DEPTH
- (DECL_TEMPLATE_PARMS (td)));
+ if ((DECL_NAMESPACE_SCOPE_P (d) && !DECL_INITIALIZED_IN_CLASS_P (d))
+ || DECL_TEMPLATE_SPECIALIZATION (td))
+ /* In the case of a friend template whose definition is provided
+ outside the class, we may have too many arguments. Drop the
+ ones we don't need. The same is true for specializations. */
+ args = get_innermost_template_args
+ (gen_args, TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (td)));
+ else
+ args = gen_args;
if (TREE_CODE (d) == FUNCTION_DECL)
pattern_defined = (DECL_SAVED_TREE (code_pattern) != NULL_TREE);
@@ -10125,9 +10425,9 @@ instantiate_decl (d, defer_ok)
tree type = TREE_TYPE (gen);
/* Make sure that we can see identifiers, and compute access
- correctly. */
- if (DECL_CLASS_SCOPE_P (d))
- pushclass (DECL_CONTEXT (d), 1);
+ correctly. D is already the target FUNCTION_DECL with the
+ right context. */
+ push_access_scope (d);
if (TREE_CODE (gen) == FUNCTION_DECL)
{
@@ -10142,8 +10442,7 @@ instantiate_decl (d, defer_ok)
}
tsubst (type, gen_args, tf_error | tf_warning, d);
- if (DECL_CLASS_SCOPE_P (d))
- popclass ();
+ pop_access_scope (d);
}
if (TREE_CODE (d) == VAR_DECL && DECL_INITIALIZED_IN_CLASS_P (d)
@@ -10184,15 +10483,14 @@ instantiate_decl (d, defer_ok)
if (need_push)
push_to_top_level ();
- /* We're now committed to instantiating this template. Mark it as
- instantiated so that recursive calls to instantiate_decl do not
- try to instantiate it again. */
+ /* Mark D as instantiated so that recursive calls to
+ instantiate_decl do not try to instantiate it again. */
DECL_TEMPLATE_INSTANTIATED (d) = 1;
/* Regenerate the declaration in case the template has been modified
by a subsequent redeclaration. */
regenerate_decl_from_template (d, td);
-
+
/* We already set the file and line above. Reset them now in case
they changed as a result of calling regenerate_decl_from_template. */
lineno = DECL_SOURCE_LINE (d);
@@ -10200,18 +10498,54 @@ instantiate_decl (d, defer_ok)
if (TREE_CODE (d) == VAR_DECL)
{
+ /* Clear out DECL_RTL; whatever was there before may not be right
+ since we've reset the type of the declaration. */
+ SET_DECL_RTL (d, NULL_RTX);
+
DECL_IN_AGGR_P (d) = 0;
- if (DECL_INTERFACE_KNOWN (d))
- DECL_EXTERNAL (d) = ! DECL_NOT_REALLY_EXTERN (d);
+ import_export_decl (d);
+ DECL_EXTERNAL (d) = ! DECL_NOT_REALLY_EXTERN (d);
+
+ if (DECL_EXTERNAL (d))
+ {
+ /* The fact that this code is executing indicates that:
+
+ (1) D is a template static data member, for which a
+ definition is available.
+
+ (2) An implicit or explicit instantiation has occured.
+
+ (3) We are not going to emit a definition of the static
+ data member at this time.
+
+ This situation is peculiar, but it occurs on platforms
+ without weak symbols when performing an implicit
+ instantiation. There, we cannot implicitly instantiate a
+ defined static data member in more than one translation
+ unit, so import_export_decl marks the declaration as
+ external; we must rely on explicit instantiation.
+
+ Reset instantiated marker to make sure that later
+ explicit instantiation will be processed. */
+ DECL_TEMPLATE_INSTANTIATED (d) = 0;
+ }
else
{
- DECL_EXTERNAL (d) = 1;
- DECL_NOT_REALLY_EXTERN (d) = 1;
+ /* This is done in analogous to `start_decl'. It is
+ required for correct access checking. */
+ push_nested_class (DECL_CONTEXT (d), 2);
+ cp_finish_decl (d,
+ (!DECL_INITIALIZED_IN_CLASS_P (d)
+ ? DECL_INITIAL (d) : NULL_TREE),
+ NULL_TREE, 0);
+ /* Normally, pop_nested_class is called by cp_finish_decl
+ above. But when instantiate_decl is triggered during
+ instantiate_class_template processing, its DECL_CONTEXT
+ is still not completed yet, and pop_nested_class isn't
+ called. */
+ if (!COMPLETE_TYPE_P (DECL_CONTEXT (d)))
+ pop_nested_class ();
}
- cp_finish_decl (d,
- (!DECL_INITIALIZED_IN_CLASS_P (d)
- ? DECL_INITIAL (d) : NULL_TREE),
- NULL_TREE, 0);
}
else if (TREE_CODE (d) == FUNCTION_DECL)
{
@@ -10228,6 +10562,7 @@ instantiate_decl (d, defer_ok)
NULL);
/* Set up context. */
+ import_export_decl (d);
start_function (NULL_TREE, d, NULL_TREE, SF_PRE_PARSED);
/* Substitute into the body of the function. */
@@ -10239,7 +10574,8 @@ instantiate_decl (d, defer_ok)
local_specializations = saved_local_specializations;
/* Finish the function. */
- expand_body (finish_function (0));
+ d = finish_function (0);
+ expand_body (d);
}
/* We're not deferring instantiation any more. */
@@ -10365,9 +10701,12 @@ tsubst_initializer_list (t, argvec)
decl = tsubst_copy (TREE_PURPOSE (t), argvec, tf_error | tf_warning,
NULL_TREE);
+ decl = expand_member_init (decl);
+ if (decl && !DECL_P (decl))
+ in_base_initializer = 1;
+
init = tsubst_expr (TREE_VALUE (t), argvec, tf_error | tf_warning,
NULL_TREE);
-
if (!init)
;
else if (TREE_CODE (init) == TREE_LIST)
@@ -10376,9 +10715,11 @@ tsubst_initializer_list (t, argvec)
else if (init != void_type_node)
init = convert_from_reference (init);
- init = expand_member_init (decl, init);
- if (init)
+ in_base_initializer = 0;
+
+ if (decl)
{
+ init = build_tree_list (decl, init);
TREE_CHAIN (init) = inits;
inits = init;
}
@@ -10483,8 +10824,7 @@ get_mostly_instantiated_function_type (decl)
partial substitution here. It depends only on outer template
parameters, regardless of whether the innermost level is
specialized or not. */
- if (DECL_CLASS_SCOPE_P (decl))
- pushclass (DECL_CONTEXT (decl), 1);
+ push_access_scope (decl);
/* Now, do the (partial) substitution to figure out the
appropriate function type. */
@@ -10497,8 +10837,7 @@ get_mostly_instantiated_function_type (decl)
TREE_VEC_LENGTH (partial_args)--;
tparms = tsubst_template_parms (tparms, partial_args, tf_error);
- if (DECL_CLASS_SCOPE_P (decl))
- popclass ();
+ pop_access_scope (decl);
}
return fn_type;
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index f40e412726c..6a7b26cbbdc 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -157,15 +157,23 @@ cxx_print_type (file, node, indent)
}
}
+static void
+cxx_print_binding (FILE *stream, cxx_binding *binding, const char *prefix)
+{
+ fprintf (stream, "%s <", prefix);
+ fprintf (stream, HOST_PTR_PRINTF, (char *) binding);
+ fprintf (stream, ">");
+}
+
void
cxx_print_identifier (file, node, indent)
FILE *file;
tree node;
int indent;
{
- print_node (file, "bindings", IDENTIFIER_NAMESPACE_BINDINGS (node), indent + 4);
+ cxx_print_binding (file, IDENTIFIER_NAMESPACE_BINDINGS (node), "bindings");
print_node (file, "class", IDENTIFIER_CLASS_VALUE (node), indent + 4);
- print_node (file, "local bindings", IDENTIFIER_BINDING (node), indent + 4);
+ cxx_print_binding (file, IDENTIFIER_BINDING (node), "local bindings");
print_node (file, "label", IDENTIFIER_LABEL_VALUE (node), indent + 4);
print_node (file, "template", IDENTIFIER_TEMPLATE (node), indent + 4);
print_node (file, "implicit", IDENTIFIER_IMPLICIT_DECL (node), indent + 4);
@@ -180,12 +188,6 @@ cxx_print_xnode (file, node, indent)
{
switch (TREE_CODE (node))
{
- case CPLUS_BINDING:
- fprintf (file, " scope ");
- fprintf (file, HOST_PTR_PRINTF, BINDING_SCOPE (node));
- print_node (file, "value", BINDING_VALUE (node), indent+4);
- print_node (file, "chain", TREE_CHAIN (node), indent+4);
- break;
case OVERLOAD:
print_node (file, "function", OVL_FUNCTION (node), indent+4);
print_node (file, "chain", TREE_CHAIN (node), indent+4);
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 7540b5c0e72..37bda3c9769 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -167,7 +167,7 @@ throw_bad_cast ()
fn = push_throw_library_fn (fn, build_function_type (ptr_type_node,
void_list_node));
- return build_call (fn, NULL_TREE);
+ return build_cxx_call (fn, NULL_TREE, NULL_TREE);
}
static tree
@@ -183,7 +183,7 @@ throw_bad_typeid ()
fn = push_throw_library_fn (fn, t);
}
- return build_call (fn, NULL_TREE);
+ return build_cxx_call (fn, NULL_TREE, NULL_TREE);
}
/* Return a pointer to type_info function associated with the expression EXP.
@@ -352,9 +352,8 @@ get_tinfo_decl (type)
DECL_EXTERNAL (d) = 1;
SET_DECL_ASSEMBLER_NAME (d, name);
DECL_COMDAT (d) = 1;
- cp_finish_decl (d, NULL_TREE, NULL_TREE, 0);
- pushdecl_top_level (d);
+ pushdecl_top_level_and_finish (d, NULL_TREE);
if (CLASS_TYPE_P (type))
CLASSTYPE_TYPEINFO_VAR (TYPE_MAIN_VARIANT (type)) = d;
@@ -653,7 +652,7 @@ build_dynamic_cast_1 (type, expr)
pop_nested_namespace (ns);
dynamic_cast_node = dcast_fn;
}
- result = build_call (dcast_fn, elems);
+ result = build_cxx_call (dcast_fn, elems, elems);
if (tc == REFERENCE_TYPE)
{
@@ -762,14 +761,13 @@ tinfo_base_init (desc, target)
TREE_STATIC (name_decl) = 1;
DECL_EXTERNAL (name_decl) = 0;
TREE_PUBLIC (name_decl) = 1;
- comdat_linkage (name_decl);
+ import_export_tinfo (name_decl, target, typeinfo_in_lib_p (target));
/* External name of the string containing the type's name has a
special name. */
SET_DECL_ASSEMBLER_NAME (name_decl,
mangle_typeinfo_string_for_type (target));
DECL_INITIAL (name_decl) = name_string;
- cp_finish_decl (name_decl, name_string, NULL_TREE, 0);
- pushdecl_top_level (name_decl);
+ pushdecl_top_level_and_finish (name_decl, name_string);
}
vtable_ptr = TINFO_VTABLE_DECL (desc);
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index fefd11b8b16..c43dd212a58 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -1,7 +1,7 @@
/* Breadth-first and depth-first routines for
searching multiple-inheritance lattice for GNU C++.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -80,13 +80,12 @@ struct vbase_info
tree inits;
};
-static tree lookup_field_1 PARAMS ((tree, tree));
static int is_subobject_of_p PARAMS ((tree, tree, tree));
static int is_subobject_of_p_1 PARAMS ((tree, tree, tree));
static tree dfs_check_overlap PARAMS ((tree, void *));
static tree dfs_no_overlap_yet PARAMS ((tree, void *));
static base_kind lookup_base_r
- PARAMS ((tree, tree, base_access, int, int, int, tree *));
+ PARAMS ((tree, tree, base_access, int, tree *));
static int dynamic_cast_base_recurse PARAMS ((tree, tree, int, tree *));
static tree marked_pushdecls_p PARAMS ((tree, void *));
static tree unmarked_pushdecls_p PARAMS ((tree, void *));
@@ -165,12 +164,8 @@ static int n_contexts_saved;
/* Worker for lookup_base. BINFO is the binfo we are searching at,
BASE is the RECORD_TYPE we are searching for. ACCESS is the
- required access checks. WITHIN_CURRENT_SCOPE, IS_NON_PUBLIC and
- IS_VIRTUAL indicate how BINFO was reached from the start of the
- search. WITHIN_CURRENT_SCOPE is true if we met the current scope,
- or friend thereof (this allows us to determine whether a protected
- base is accessible or not). IS_NON_PUBLIC indicates whether BINFO
- is accessible and IS_VIRTUAL indicates if it is morally virtual.
+ required access checks. IS_VIRTUAL indicates if BINFO is morally
+ virtual.
If BINFO is of the required type, then *BINFO_PTR is examined to
compare with any other instance of BASE we might have already
@@ -180,12 +175,9 @@ static int n_contexts_saved;
Otherwise BINFO's bases are searched. */
static base_kind
-lookup_base_r (binfo, base, access, within_current_scope,
- is_non_public, is_virtual, binfo_ptr)
+lookup_base_r (binfo, base, access, is_virtual, binfo_ptr)
tree binfo, base;
base_access access;
- int within_current_scope;
- int is_non_public; /* inside a non-public part */
int is_virtual; /* inside a virtual part */
tree *binfo_ptr;
{
@@ -193,15 +185,6 @@ lookup_base_r (binfo, base, access, within_current_scope,
tree bases;
base_kind found = bk_not_base;
- if (access == ba_check
- && !within_current_scope
- && is_friend (BINFO_TYPE (binfo), current_scope ()))
- {
- /* Do not clear is_non_public here. If A is a private base of B, A
- is not allowed to convert a B* to an A*. */
- within_current_scope = 1;
- }
-
if (same_type_p (BINFO_TYPE (binfo), base))
{
/* We have found a base. Check against what we have found
@@ -209,8 +192,6 @@ lookup_base_r (binfo, base, access, within_current_scope,
found = bk_same_type;
if (is_virtual)
found = bk_via_virtual;
- if (is_non_public)
- found = bk_inaccessible;
if (!*binfo_ptr)
*binfo_ptr = binfo;
@@ -235,29 +216,11 @@ lookup_base_r (binfo, base, access, within_current_scope,
for (i = TREE_VEC_LENGTH (bases); i--;)
{
tree base_binfo = TREE_VEC_ELT (bases, i);
- int this_non_public = is_non_public;
- int this_virtual = is_virtual;
base_kind bk;
- if (access <= ba_ignore)
- ; /* no change */
- else if (TREE_VIA_PUBLIC (base_binfo))
- ; /* no change */
- else if (access == ba_not_special)
- this_non_public = 1;
- else if (TREE_VIA_PROTECTED (base_binfo) && within_current_scope)
- ; /* no change */
- else if (is_friend (BINFO_TYPE (binfo), current_scope ()))
- ; /* no change */
- else
- this_non_public = 1;
-
- if (TREE_VIA_VIRTUAL (base_binfo))
- this_virtual = 1;
-
bk = lookup_base_r (base_binfo, base,
- access, within_current_scope,
- this_non_public, this_virtual,
+ access,
+ is_virtual || TREE_VIA_VIRTUAL (base_binfo),
binfo_ptr);
switch (bk)
@@ -268,14 +231,6 @@ lookup_base_r (binfo, base, access, within_current_scope,
found = bk;
break;
- case bk_inaccessible:
- if (found == bk_not_base)
- found = bk;
- my_friendly_assert (found == bk_via_virtual
- || found == bk_inaccessible, 20010723);
-
- break;
-
case bk_same_type:
bk = bk_proper_base;
/* FALLTHROUGH */
@@ -291,11 +246,36 @@ lookup_base_r (binfo, base, access, within_current_scope,
case bk_not_base:
break;
+
+ default:
+ abort ();
}
}
return found;
}
+/* Returns true if type BASE is accessible in T. (BASE is known to be
+ a base class of T.) */
+
+bool
+accessible_base_p (tree t, tree base)
+{
+ tree decl;
+
+ /* [class.access.base]
+
+ A base class is said to be accessible if an invented public
+ member of the base class is accessible. */
+ /* Rather than inventing a public member, we use the implicit
+ public typedef created in the scope of every class. */
+ decl = TYPE_FIELDS (base);
+ while (!DECL_SELF_REFERENCE_P (decl))
+ decl = TREE_CHAIN (decl);
+ while (ANON_AGGR_TYPE_P (t))
+ t = TYPE_CONTEXT (t);
+ return accessible_p (t, decl);
+}
+
/* Lookup BASE in the hierarchy dominated by T. Do access checking as
ACCESS specifies. Return the binfo we discover (which might not be
canonical). If KIND_PTR is non-NULL, fill with information about
@@ -336,33 +316,47 @@ lookup_base (t, base, access, kind_ptr)
t = complete_type (TYPE_MAIN_VARIANT (t));
base = complete_type (TYPE_MAIN_VARIANT (base));
- bk = lookup_base_r (t_binfo, base, access & ~ba_quiet,
- 0, 0, 0, &binfo);
+ bk = lookup_base_r (t_binfo, base, access, 0, &binfo);
+
+ /* Check that the base is unambiguous and accessible. */
+ if (access != ba_any)
+ switch (bk)
+ {
+ case bk_not_base:
+ break;
+
+ case bk_ambig:
+ binfo = NULL_TREE;
+ if (!(access & ba_quiet))
+ {
+ error ("`%T' is an ambiguous base of `%T'", base, t);
+ binfo = error_mark_node;
+ }
+ break;
+
+ default:
+ if ((access & ~ba_quiet) != ba_ignore
+ /* If BASE is incomplete, then BASE and TYPE are probably
+ the same, in which case BASE is accessible. If they
+ are not the same, then TYPE is invalid. In that case,
+ there's no need to issue another error here, and
+ there's no implicit typedef to use in the code that
+ follows, so we skip the check. */
+ && COMPLETE_TYPE_P (base)
+ && !accessible_base_p (t, base))
+ {
+ if (!(access & ba_quiet))
+ {
+ error ("`%T' is an inaccessible base of `%T'", base, t);
+ binfo = error_mark_node;
+ }
+ else
+ binfo = NULL_TREE;
+ bk = bk_inaccessible;
+ }
+ break;
+ }
- switch (bk)
- {
- case bk_inaccessible:
- binfo = NULL_TREE;
- if (!(access & ba_quiet))
- {
- error ("`%T' is an inaccessible base of `%T'", base, t);
- binfo = error_mark_node;
- }
- break;
- case bk_ambig:
- if (access != ba_any)
- {
- binfo = NULL_TREE;
- if (!(access & ba_quiet))
- {
- error ("`%T' is an ambiguous base of `%T'", base, t);
- binfo = error_mark_node;
- }
- }
- break;
- default:;
- }
-
if (kind_ptr)
*kind_ptr = bk;
@@ -453,9 +447,8 @@ get_dynamic_cast_base_type (subtype, target)
figure out whether it can access this field. (Since it is only one
level, this is reasonable.) */
-static tree
-lookup_field_1 (type, name)
- tree type, name;
+tree
+lookup_field_1 (tree type, tree name, bool want_type)
{
register tree field;
@@ -492,14 +485,28 @@ lookup_field_1 (type, name)
lo = i + 1;
else
{
+ field = NULL_TREE;
+
/* We might have a nested class and a field with the
same name; we sorted them appropriately via
- field_decl_cmp, so just look for the last field with
- this name. */
- while (i + 1 < hi
- && DECL_NAME (fields[i+1]) == name)
- ++i;
- return fields[i];
+ field_decl_cmp, so just look for the first or last
+ field with this name. */
+ if (want_type)
+ {
+ do
+ field = fields[i--];
+ while (i >= lo && DECL_NAME (fields[i]) == name);
+ if (TREE_CODE (field) != TYPE_DECL
+ && !DECL_CLASS_TEMPLATE_P (field))
+ field = NULL_TREE;
+ }
+ else
+ {
+ do
+ field = fields[i++];
+ while (i < hi && DECL_NAME (fields[i]) == name);
+ }
+ return field;
}
}
return NULL_TREE;
@@ -510,7 +517,7 @@ lookup_field_1 (type, name)
#ifdef GATHER_STATISTICS
n_calls_lookup_field_1++;
#endif /* GATHER_STATISTICS */
- while (field)
+ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
{
#ifdef GATHER_STATISTICS
n_fields_searched++;
@@ -519,7 +526,7 @@ lookup_field_1 (type, name)
if (DECL_NAME (field) == NULL_TREE
&& ANON_AGGR_TYPE_P (TREE_TYPE (field)))
{
- tree temp = lookup_field_1 (TREE_TYPE (field), name);
+ tree temp = lookup_field_1 (TREE_TYPE (field), name, want_type);
if (temp)
return temp;
}
@@ -529,10 +536,13 @@ lookup_field_1 (type, name)
to return a USING_DECL, and the rest of the compiler can't
handle it. Once the class is defined, these are purged
from TYPE_FIELDS anyhow; see handle_using_decl. */
- ;
- else if (DECL_NAME (field) == name)
+ continue;
+
+ if (DECL_NAME (field) == name
+ && (!want_type
+ || TREE_CODE (field) == TYPE_DECL
+ || DECL_CLASS_TEMPLATE_P (field)))
return field;
- field = TREE_CHAIN (field);
}
/* Not found. */
if (name == vptr_identifier)
@@ -1288,7 +1298,7 @@ lookup_field_r (binfo, data)
if (!nval)
/* Look for a data member or type. */
- nval = lookup_field_1 (type, lfi->name);
+ nval = lookup_field_1 (type, lfi->name, lfi->want_type);
/* If there is no declaration with the indicated name in this type,
then there's nothing to do. */
@@ -1313,11 +1323,12 @@ lookup_field_r (binfo, data)
}
else
nval = NULL_TREE;
- if (!nval)
+ if (!nval && CLASSTYPE_NESTED_UDTS (type) != NULL)
{
- nval = purpose_member (lfi->name, CLASSTYPE_TAGS (type));
- if (nval)
- nval = TYPE_MAIN_DECL (TREE_VALUE (nval));
+ binding_entry e = binding_table_find (CLASSTYPE_NESTED_UDTS (type),
+ lfi->name);
+ if (e != NULL)
+ nval = TYPE_MAIN_DECL (e->type);
else
return NULL_TREE;
}
@@ -1464,7 +1475,7 @@ lookup_member (xbasetype, name, protect, want_type)
&& IDENTIFIER_CLASS_VALUE (name))
{
tree field = IDENTIFIER_CLASS_VALUE (name);
- if (TREE_CODE (field) != FUNCTION_DECL
+ if (! is_overloaded_fn (field)
&& ! (want_type && TREE_CODE (field) != TYPE_DECL))
/* We're in the scope of this class, and the value has already
been looked up. Just return the cached value. */
@@ -1580,95 +1591,208 @@ lookup_fnfields (xbasetype, name, protect)
return rval;
}
+/* Try to find NAME inside a nested class. */
+
+tree
+lookup_nested_field (name, complain)
+ tree name;
+ int complain;
+{
+ register tree t;
+
+ tree id = NULL_TREE;
+ if (TYPE_MAIN_DECL (current_class_type))
+ {
+ /* Climb our way up the nested ladder, seeing if we're trying to
+ modify a field in an enclosing class. If so, we should only
+ be able to modify if it's static. */
+ for (t = TYPE_MAIN_DECL (current_class_type);
+ t && DECL_CONTEXT (t);
+ t = TYPE_MAIN_DECL (DECL_CONTEXT (t)))
+ {
+ if (TREE_CODE (DECL_CONTEXT (t)) != RECORD_TYPE)
+ break;
+
+ /* N.B.: lookup_field will do the access checking for us */
+ id = lookup_field (DECL_CONTEXT (t), name, complain, 0);
+ if (id == error_mark_node)
+ {
+ id = NULL_TREE;
+ continue;
+ }
+
+ if (id != NULL_TREE)
+ {
+ if (TREE_CODE (id) == FIELD_DECL
+ && ! TREE_STATIC (id)
+ && TREE_TYPE (id) != error_mark_node)
+ {
+ if (complain)
+ {
+ /* At parse time, we don't want to give this error, since
+ we won't have enough state to make this kind of
+ decision properly. But there are times (e.g., with
+ enums in nested classes) when we do need to call
+ this fn at parse time. So, in those cases, we pass
+ complain as a 0 and just return a NULL_TREE. */
+ error ("assignment to non-static member `%D' of enclosing class `%T'",
+ id, DECL_CONTEXT (t));
+ /* Mark this for do_identifier(). It would otherwise
+ claim that the variable was undeclared. */
+ TREE_TYPE (id) = error_mark_node;
+ }
+ else
+ {
+ id = NULL_TREE;
+ continue;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ return id;
+}
+
+/* Return the index in the CLASSTYPE_METHOD_VEC for CLASS_TYPE
+ corresponding to "operator TYPE ()", or -1 if there is no such
+ operator. Only CLASS_TYPE itself is searched; this routine does
+ not scan the base classes of CLASS_TYPE. */
+
+static int
+lookup_conversion_operator (tree class_type, tree type)
+{
+ int pass;
+ int i;
+
+ tree methods = CLASSTYPE_METHOD_VEC (class_type);
+
+ for (pass = 0; pass < 2; ++pass)
+ for (i = CLASSTYPE_FIRST_CONVERSION_SLOT;
+ i < TREE_VEC_LENGTH (methods);
+ ++i)
+ {
+ tree fn = TREE_VEC_ELT (methods, i);
+ /* The size of the vector may have some unused slots at the
+ end. */
+ if (!fn)
+ break;
+
+ /* All the conversion operators come near the beginning of the
+ class. Therefore, if FN is not a conversion operator, there
+ is no matching conversion operator in CLASS_TYPE. */
+ fn = OVL_CURRENT (fn);
+ if (!DECL_CONV_FN_P (fn))
+ break;
+
+ if (pass == 0)
+ {
+ /* On the first pass we only consider exact matches. If
+ the types match, this slot is the one where the right
+ conversion operators can be found. */
+ if (TREE_CODE (fn) != TEMPLATE_DECL
+ && same_type_p (DECL_CONV_FN_TYPE (fn), type))
+ return i;
+ }
+ else
+ {
+ /* On the second pass we look for template conversion
+ operators. It may be possible to instantiate the
+ template to get the type desired. All of the template
+ conversion operators share a slot. By looking for
+ templates second we ensure that specializations are
+ preferred over templates. */
+ if (TREE_CODE (fn) == TEMPLATE_DECL)
+ return i;
+ }
+ }
+
+ return -1;
+}
+
/* TYPE is a class type. Return the index of the fields within
the method vector with name NAME, or -1 is no such field exists. */
int
-lookup_fnfields_1 (type, name)
- tree type, name;
+lookup_fnfields_1 (tree type, tree name)
{
- tree method_vec = (CLASS_TYPE_P (type)
- ? CLASSTYPE_METHOD_VEC (type)
- : NULL_TREE);
+ tree method_vec;
+ tree *methods;
+ tree tmp;
+ int i;
+ int len;
- if (method_vec != 0)
- {
- register int i;
- register tree *methods = &TREE_VEC_ELT (method_vec, 0);
- int len = TREE_VEC_LENGTH (method_vec);
- tree tmp;
+ if (!CLASS_TYPE_P (type))
+ return -1;
+
+ method_vec = CLASSTYPE_METHOD_VEC (type);
+
+ if (!method_vec)
+ return -1;
+
+ methods = &TREE_VEC_ELT (method_vec, 0);
+ len = TREE_VEC_LENGTH (method_vec);
#ifdef GATHER_STATISTICS
- n_calls_lookup_fnfields_1++;
+ n_calls_lookup_fnfields_1++;
#endif /* GATHER_STATISTICS */
- /* Constructors are first... */
- if (name == ctor_identifier)
- return (methods[CLASSTYPE_CONSTRUCTOR_SLOT]
- ? CLASSTYPE_CONSTRUCTOR_SLOT : -1);
- /* and destructors are second. */
- if (name == dtor_identifier)
- return (methods[CLASSTYPE_DESTRUCTOR_SLOT]
- ? CLASSTYPE_DESTRUCTOR_SLOT : -1);
-
- for (i = CLASSTYPE_FIRST_CONVERSION_SLOT;
- i < len && methods[i];
- ++i)
+ /* Constructors are first... */
+ if (name == ctor_identifier)
+ return (methods[CLASSTYPE_CONSTRUCTOR_SLOT]
+ ? CLASSTYPE_CONSTRUCTOR_SLOT : -1);
+ /* and destructors are second. */
+ if (name == dtor_identifier)
+ return (methods[CLASSTYPE_DESTRUCTOR_SLOT]
+ ? CLASSTYPE_DESTRUCTOR_SLOT : -1);
+ if (IDENTIFIER_TYPENAME_P (name))
+ return lookup_conversion_operator (type, TREE_TYPE (name));
+
+ /* Skip the conversion operators. */
+ i = CLASSTYPE_FIRST_CONVERSION_SLOT;
+ while (i < len && methods[i] && DECL_CONV_FN_P (OVL_CURRENT (methods[i])))
+ i++;
+
+ /* If the type is complete, use binary search. */
+ if (COMPLETE_TYPE_P (type))
+ {
+ int lo = i;
+ int hi = len;
+
+ while (lo < hi)
{
+ i = (lo + hi) / 2;
+
#ifdef GATHER_STATISTICS
n_outer_fields_searched++;
#endif /* GATHER_STATISTICS */
- tmp = OVL_CURRENT (methods[i]);
- if (DECL_NAME (tmp) == name)
+ tmp = methods[i];
+ /* This slot may be empty; we allocate more slots than we
+ need. In that case, the entry we're looking for is
+ closer to the beginning of the list. */
+ if (tmp)
+ tmp = DECL_NAME (OVL_CURRENT (tmp));
+ if (!tmp || tmp > name)
+ hi = i;
+ else if (tmp < name)
+ lo = i + 1;
+ else
return i;
-
- /* If the type is complete and we're past the conversion ops,
- switch to binary search. */
- if (! DECL_CONV_FN_P (tmp)
- && COMPLETE_TYPE_P (type))
- {
- int lo = i + 1, hi = len;
-
- while (lo < hi)
- {
- i = (lo + hi) / 2;
-
+ }
+ }
+ else
+ for (; i < len && methods[i]; ++i)
+ {
#ifdef GATHER_STATISTICS
- n_outer_fields_searched++;
+ n_outer_fields_searched++;
#endif /* GATHER_STATISTICS */
- tmp = DECL_NAME (OVL_CURRENT (methods[i]));
-
- if (tmp > name)
- hi = i;
- else if (tmp < name)
- lo = i + 1;
- else
- return i;
- }
- break;
- }
- }
-
- /* If we didn't find it, it might have been a template
- conversion operator to a templated type. If there are any,
- such template conversion operators will all be overloaded on
- the first conversion slot. (Note that we don't look for this
- case above so that we will always find specializations
- first.) */
- if (IDENTIFIER_TYPENAME_P (name))
- {
- i = CLASSTYPE_FIRST_CONVERSION_SLOT;
- if (i < len && methods[i])
- {
- tmp = OVL_CURRENT (methods[i]);
- if (TREE_CODE (tmp) == TEMPLATE_DECL
- && DECL_TEMPLATE_CONV_FN_P (tmp))
- return i;
- }
- }
- }
+ tmp = OVL_CURRENT (methods[i]);
+ if (DECL_NAME (tmp) == name)
+ return i;
+ }
return -1;
}
@@ -1697,10 +1821,11 @@ adjust_result_of_qualified_name_lookup (tree decl,
{
tree base;
- /* Look for the QUALIFYING_CLASS as a base of the
- CONTEXT_CLASS. If QUALIFYING_CLASS is ambiguous, we cannot
- be sure yet than an error has occurred; perhaps the function
- chosen by overload resolution will be static. */
+ /* Look for the QUALIFYING_CLASS as a base of the CONTEXT_CLASS.
+ Because we do not yet know which function will be chosen by
+ overload resolution, we cannot yet check either accessibility
+ or ambiguity -- in either case, the choice of a static member
+ function might make the usage valid. */
base = lookup_base (context_class, qualifying_class,
ba_ignore | ba_quiet, NULL);
if (base)
@@ -2515,6 +2640,20 @@ setup_class_bindings (name, type_binding_p)
if (BASELINK_P (value_binding))
/* NAME is some overloaded functions. */
value_binding = BASELINK_FUNCTIONS (value_binding);
+ /* Two conversion operators that convert to the same type
+ may have different names. (See
+ mangle_conv_op_name_for_type.) To avoid recording the
+ same conversion operator declaration more than once we
+ must check to see that the same operator was not already
+ found under another name. */
+ if (IDENTIFIER_TYPENAME_P (name)
+ && is_overloaded_fn (value_binding))
+ {
+ tree fns;
+ for (fns = value_binding; fns; fns = OVL_NEXT (fns))
+ if (IDENTIFIER_CLASS_VALUE (DECL_NAME (OVL_CURRENT (fns))))
+ return;
+ }
pushdecl_class_level (value_binding);
}
}
@@ -2716,8 +2855,27 @@ add_conversions (binfo, data)
/* Make sure we don't already have this conversion. */
if (! IDENTIFIER_MARKED (name))
{
- *conversions = tree_cons (binfo, tmp, *conversions);
- IDENTIFIER_MARKED (name) = 1;
+ tree t;
+
+ /* Make sure that we do not already have a conversion
+ operator for this type. Merely checking the NAME is not
+ enough because two conversion operators to the same type
+ may not have the same NAME. */
+ for (t = *conversions; t; t = TREE_CHAIN (t))
+ {
+ tree fn;
+ for (fn = TREE_VALUE (t); fn; fn = OVL_NEXT (fn))
+ if (same_type_p (TREE_TYPE (name),
+ DECL_CONV_FN_TYPE (OVL_CURRENT (fn))))
+ break;
+ if (fn)
+ break;
+ }
+ if (!t)
+ {
+ *conversions = tree_cons (binfo, tmp, *conversions);
+ IDENTIFIER_MARKED (name) = 1;
+ }
}
}
return NULL_TREE;
@@ -2736,8 +2894,8 @@ lookup_conversions (type)
tree t;
tree conversions = NULL_TREE;
- if (COMPLETE_TYPE_P (type))
- bfs_walk (TYPE_BINFO (type), add_conversions, 0, &conversions);
+ complete_type (type);
+ bfs_walk (TYPE_BINFO (type), add_conversions, 0, &conversions);
for (t = conversions; t; t = TREE_CHAIN (t))
IDENTIFIER_MARKED (DECL_NAME (OVL_CURRENT (TREE_VALUE (t)))) = 0;
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 81b4ccfdafc..f9d6b53fd38 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1029,7 +1029,7 @@ genrtl_named_return_value ()
the return value. */
SET_DECL_RTL (decl, gen_reg_rtx (GET_MODE (DECL_RTL (decl))));
if (TREE_ADDRESSABLE (decl))
- put_var_into_stack (decl);
+ put_var_into_stack (decl, /*rescan=*/true);
}
emit_local_var (decl);
@@ -1273,7 +1273,8 @@ finish_call_expr (tree fn, tree args, bool disallow_virtual)
&& DERIVED_FROM_P (BINFO_TYPE (BASELINK_ACCESS_BINFO (fn)),
current_class_type)
&& current_class_ref)
- object = current_class_ref;
+ object = maybe_dummy_object (BINFO_TYPE (BASELINK_ACCESS_BINFO (fn)),
+ NULL);
else
{
tree representative_fn;
@@ -1382,7 +1383,7 @@ finish_object_call_expr (fn, object, args)
}
}
- if (name_p (fn))
+ if (processing_template_decl || name_p (fn))
return build_method_call (object, fn, args, NULL_TREE, LOOKUP_NORMAL);
else
return build_new_method_call (object, fn, args, NULL_TREE, LOOKUP_NORMAL);
@@ -1755,7 +1756,7 @@ begin_class_definition (t)
TYPE_FIELDS (t) = NULL_TREE;
TYPE_METHODS (t) = NULL_TREE;
CLASSTYPE_DECL_LIST (t) = NULL_TREE;
- CLASSTYPE_TAGS (t) = NULL_TREE;
+ CLASSTYPE_NESTED_UDTS (t) = NULL;
CLASSTYPE_VBASECLASSES (t) = NULL_TREE;
TYPE_SIZE (t) = NULL_TREE;
}
@@ -1836,8 +1837,6 @@ finish_member_declaration (decl)
if (DECL_LANG_SPECIFIC (decl) && DECL_LANGUAGE (decl) == lang_c)
SET_DECL_LANGUAGE (decl, lang_cplusplus);
- maybe_add_class_template_decl_list (current_class_type, decl, /*friend_p=*/0);
-
/* Put functions on the TYPE_METHODS list and everything else on the
TYPE_FIELDS list. Note that these are built up in reverse order.
We reverse them (to obtain declaration order) in finish_struct. */
@@ -1850,8 +1849,12 @@ finish_member_declaration (decl)
TREE_CHAIN (decl) = TYPE_METHODS (current_class_type);
TYPE_METHODS (current_class_type) = decl;
+
+ maybe_add_class_template_decl_list (current_class_type, decl,
+ /*friend_p=*/0);
}
- else
+ /* Enter the DECL into the scope of the class. */
+ else if (TREE_CODE (decl) == USING_DECL || pushdecl_class_level (decl))
{
/* All TYPE_DECLs go at the end of TYPE_FIELDS. Ordinary fields
go at the beginning. The reason is that lookup_field_1
@@ -1879,9 +1882,8 @@ finish_member_declaration (decl)
TYPE_FIELDS (current_class_type) = decl;
}
- /* Enter the DECL into the scope of the class. */
- if (TREE_CODE (decl) != USING_DECL)
- pushdecl_class_level (decl);
+ maybe_add_class_template_decl_list (current_class_type, decl,
+ /*friend_p=*/0);
}
}
@@ -2098,20 +2100,28 @@ tree
finish_typeof (expr)
tree expr;
{
+ tree type;
+
if (processing_template_decl)
{
- tree t;
+ type = make_aggr_type (TYPEOF_TYPE);
+ TYPE_FIELDS (type) = expr;
- t = make_aggr_type (TYPEOF_TYPE);
- TYPE_FIELDS (t) = expr;
-
- return t;
+ return type;
}
if (TREE_CODE (expr) == OFFSET_REF)
expr = resolve_offset_ref (expr);
- return TREE_TYPE (expr);
+ type = TREE_TYPE (expr);
+
+ if (!type || type == unknown_type_node)
+ {
+ error ("type of `%E' is unknown", expr);
+ return error_mark_node;
+ }
+
+ return type;
}
/* Compute the value of the `sizeof' operator. */
@@ -2447,7 +2457,28 @@ nullify_returns_r (tp, walk_subtrees, data)
else if (TREE_CODE (*tp) == CLEANUP_STMT
&& CLEANUP_DECL (*tp) == nrv)
CLEANUP_EH_ONLY (*tp) = 1;
-
+ /* Replace the DECL_STMT for the NRV with an initialization of the
+ RESULT_DECL, if needed. */
+ else if (TREE_CODE (*tp) == DECL_STMT
+ && DECL_STMT_DECL (*tp) == nrv)
+ {
+ tree init;
+ if (DECL_INITIAL (nrv)
+ && DECL_INITIAL (nrv) != error_mark_node)
+ {
+ init = build (INIT_EXPR, void_type_node,
+ DECL_RESULT (current_function_decl),
+ DECL_INITIAL (nrv));
+ DECL_INITIAL (nrv) = error_mark_node;
+ }
+ else
+ init = NULL_TREE;
+ init = build_stmt (EXPR_STMT, init);
+ TREE_CHAIN (init) = TREE_CHAIN (*tp);
+ STMT_LINENO (init) = STMT_LINENO (*tp);
+ *tp = init;
+ }
+
/* Keep iterating. */
return NULL_TREE;
}
diff --git a/gcc/cp/spew.c b/gcc/cp/spew.c
index adc3ffd40cf..5bd3fdf3d1b 100644
--- a/gcc/cp/spew.c
+++ b/gcc/cp/spew.c
@@ -1220,6 +1220,10 @@ snarf_method (decl)
DECL_PENDING_INLINE_INFO (decl) = meth;
DECL_PENDING_INLINE_P (decl) = 1;
+ /* We need to know that this was defined in the class, so that
+ friend templates are handled correctly. */
+ DECL_INITIALIZED_IN_CLASS_P (decl) = 1;
+
if (pending_inlines_tail)
pending_inlines_tail->next = meth;
else
@@ -1521,12 +1525,17 @@ yyerror (msgid)
error ("%s at end of input", string);
else if (last_token == CPP_CHAR || last_token == CPP_WCHAR)
{
- unsigned int val = TREE_INT_CST_LOW (yylval.ttype);
- const char *const ell = (last_token == CPP_CHAR) ? "" : "L";
- if (val <= UCHAR_MAX && ISGRAPH (val))
- error ("%s before %s'%c'", string, ell, val);
+ if (yylval.ttype && TREE_CODE (yylval.ttype) == INTEGER_CST)
+ {
+ unsigned int val = TREE_INT_CST_LOW (yylval.ttype);
+ const char *const ell = (last_token == CPP_CHAR) ? "" : "L";
+ if (val <= UCHAR_MAX && ISGRAPH (val))
+ error ("%s before %s'%c'", string, ell, val);
+ else
+ error ("%s before %s'\\x%x'", string, ell, val);
+ }
else
- error ("%s before %s'\\x%x'", string, ell, val);
+ error ("%s", string);
}
else if (last_token == CPP_STRING
|| last_token == CPP_WSTRING)
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 6c313eba4d8..90464b5f0d3 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -218,6 +218,18 @@ real_lvalue_p (ref)
return lvalue_p_1 (ref, /*treat_class_rvalues_as_lvalues=*/ 0, /*cast*/ 1);
}
+/* Returns the kind of lvalue that REF is, in the sense of
+ [basic.lval]. This function should really be named lvalue_p; it
+ computes the C++ definition of lvalue. */
+
+cp_lvalue_kind
+real_non_cast_lvalue_p (tree ref)
+{
+ return lvalue_p_1 (ref,
+ /*treat_class_rvalues_as_lvalues=*/0,
+ /*allow_cast_as_lvalue=*/0);
+}
+
/* This differs from real_lvalue_p in that class rvalues are
considered lvalues. */
@@ -345,6 +357,14 @@ build_target_expr_with_type (init, type)
if (TREE_CODE (init) == TARGET_EXPR)
return init;
+ else if (CLASS_TYPE_P (type) && !TYPE_HAS_TRIVIAL_INIT_REF (type)
+ && TREE_CODE (init) != COND_EXPR
+ && TREE_CODE (init) != CONSTRUCTOR)
+ /* We need to build up a copy constructor call. COND_EXPR is a special
+ case because we already have copies on the arms and we don't want
+ another one here. A CONSTRUCTOR is aggregate initialization, which
+ is handled separately. */
+ return force_rvalue (init);
slot = build (VAR_DECL, type);
DECL_ARTIFICIAL (slot) = 1;
@@ -363,97 +383,6 @@ get_target_expr (init)
{
return build_target_expr_with_type (init, TREE_TYPE (init));
}
-
-/* Recursively perform a preorder search EXP for CALL_EXPRs, making
- copies where they are found. Returns a deep copy all nodes transitively
- containing CALL_EXPRs. */
-
-tree
-break_out_calls (exp)
- tree exp;
-{
- register tree t1, t2 = NULL_TREE;
- register enum tree_code code;
- register int changed = 0;
- register int i;
-
- if (exp == NULL_TREE)
- return exp;
-
- code = TREE_CODE (exp);
-
- if (code == CALL_EXPR)
- return copy_node (exp);
-
- /* Don't try and defeat a save_expr, as it should only be done once. */
- if (code == SAVE_EXPR)
- return exp;
-
- switch (TREE_CODE_CLASS (code))
- {
- default:
- abort ();
-
- case 'c': /* a constant */
- case 't': /* a type node */
- case 'x': /* something random, like an identifier or an ERROR_MARK. */
- return exp;
-
- case 'd': /* A decl node */
-#if 0 /* This is bogus. jason 9/21/94 */
-
- t1 = break_out_calls (DECL_INITIAL (exp));
- if (t1 != DECL_INITIAL (exp))
- {
- exp = copy_node (exp);
- DECL_INITIAL (exp) = t1;
- }
-#endif
- return exp;
-
- case 'b': /* A block node */
- {
- /* Don't know how to handle these correctly yet. Must do a
- break_out_calls on all DECL_INITIAL values for local variables,
- and also break_out_calls on all sub-blocks and sub-statements. */
- abort ();
- }
- return exp;
-
- case 'e': /* an expression */
- case 'r': /* a reference */
- case 's': /* an expression with side effects */
- for (i = TREE_CODE_LENGTH (code) - 1; i >= 0; i--)
- {
- t1 = break_out_calls (TREE_OPERAND (exp, i));
- if (t1 != TREE_OPERAND (exp, i))
- {
- exp = copy_node (exp);
- TREE_OPERAND (exp, i) = t1;
- }
- }
- return exp;
-
- case '<': /* a comparison expression */
- case '2': /* a binary arithmetic expression */
- t2 = break_out_calls (TREE_OPERAND (exp, 1));
- if (t2 != TREE_OPERAND (exp, 1))
- changed = 1;
- case '1': /* a unary arithmetic expression */
- t1 = break_out_calls (TREE_OPERAND (exp, 0));
- if (t1 != TREE_OPERAND (exp, 0))
- changed = 1;
- if (changed)
- {
- if (TREE_CODE_LENGTH (code) == 1)
- return build1 (code, TREE_TYPE (exp), t1);
- else
- return build (code, TREE_TYPE (exp), t1, t2);
- }
- return exp;
- }
-
-}
/* Construct, lay out and return the type of methods belonging to class
BASETYPE and whose arguments are described by ARGTYPES and whose values
@@ -510,7 +439,7 @@ build_cplus_array_type_1 (elt_type, index_type)
&& index_type && TYPE_MAX_VALUE (index_type)
&& TREE_CODE (TYPE_MAX_VALUE (index_type)) != INTEGER_CST)
|| uses_template_parms (elt_type)
- || uses_template_parms (index_type))
+ || (index_type && uses_template_parms (index_type)))
{
t = make_node (ARRAY_TYPE);
TREE_TYPE (t) = elt_type;
@@ -1737,8 +1666,10 @@ cp_tree_equal (t1, t2)
return 0;
case TEMPLATE_PARM_INDEX:
- return TEMPLATE_PARM_IDX (t1) == TEMPLATE_PARM_IDX (t2)
- && TEMPLATE_PARM_LEVEL (t1) == TEMPLATE_PARM_LEVEL (t2);
+ return (TEMPLATE_PARM_IDX (t1) == TEMPLATE_PARM_IDX (t2)
+ && TEMPLATE_PARM_LEVEL (t1) == TEMPLATE_PARM_LEVEL (t2)
+ && same_type_p (TREE_TYPE (TEMPLATE_PARM_DECL (t1)),
+ TREE_TYPE (TEMPLATE_PARM_DECL (t2))));
case SIZEOF_EXPR:
case ALIGNOF_EXPR:
@@ -2371,30 +2302,6 @@ cp_copy_res_decl_for_inlining (result, fn, caller, decl_map_,
return var;
}
-/* Record that we're about to start inlining FN, and return nonzero if
- that's OK. Used for lang_hooks.tree_inlining.start_inlining. */
-
-int
-cp_start_inlining (fn)
- tree fn;
-{
- if (DECL_TEMPLATE_INSTANTIATION (fn))
- return push_tinst_level (fn);
- else
- return 1;
-}
-
-/* Record that we're done inlining FN. Used for
- lang_hooks.tree_inlining.end_inlining. */
-
-void
-cp_end_inlining (fn)
- tree fn ATTRIBUTE_UNUSED;
-{
- if (DECL_TEMPLATE_INSTANTIATION (fn))
- pop_tinst_level ();
-}
-
/* Initialize tree.c. */
void
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 85eef41c2e0..98da207a922 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -909,10 +909,8 @@ comptypes (t1, t2, strict)
if (t1 == t2)
return 1;
- /* This should never happen. */
- my_friendly_assert (t1 != error_mark_node, 307);
-
- if (t2 == error_mark_node)
+ /* Suppress errors caused by previously reported errors */
+ if (t1 == error_mark_node || t2 == error_mark_node)
return 0;
/* If either type is the internal version of sizetype, return the
@@ -1405,7 +1403,7 @@ compparms (parms1, parms2)
they fail to match. */
if (t1 == 0 || t2 == 0)
return 0;
- if (!same_type_p (TREE_VALUE (t2), TREE_VALUE (t1)))
+ if (!same_type_p (TREE_VALUE (t1), TREE_VALUE (t2)))
return 0;
t1 = TREE_CHAIN (t1);
@@ -1940,7 +1938,8 @@ build_class_member_access_expr (tree object, tree member,
&& integer_zerop (TREE_OPERAND (object, 0)));
/* Convert OBJECT to the type of MEMBER. */
- if (!same_type_p (object_type, member_scope))
+ if (!same_type_p (TYPE_MAIN_VARIANT (object_type),
+ TYPE_MAIN_VARIANT (member_scope)))
{
tree binfo;
base_kind kind;
@@ -1950,7 +1949,7 @@ build_class_member_access_expr (tree object, tree member,
if (binfo == error_mark_node)
return error_mark_node;
- /* It is invalid to use to try to get to a virtual base of a
+ /* It is invalid to try to get to a virtual base of a
NULL object. The most common cause is invalid use of
offsetof macro. */
if (null_object_p && kind == bk_via_virtual)
@@ -1985,7 +1984,15 @@ build_class_member_access_expr (tree object, tree member,
OBJECT so that it refers to the class containing the
anonymous union. Generate a reference to the anonymous union
itself, and recur to find MEMBER. */
- if (ANON_AGGR_TYPE_P (DECL_CONTEXT (member)))
+ if (ANON_AGGR_TYPE_P (DECL_CONTEXT (member))
+ /* When this code is called from build_field_call, the
+ object already has the type of the anonymous union.
+ That is because the COMPONENT_REF was already
+ constructed, and was then disassembled before calling
+ build_field_call. After the function-call code is
+ cleaned up, this waste can be eliminated. */
+ && (!same_type_ignoring_top_level_qualifiers_p
+ (TREE_TYPE (object), DECL_CONTEXT (member))))
{
tree anonymous_union;
@@ -2165,8 +2172,13 @@ finish_class_member_access_expr (tree object, tree name)
/* Find the base of OBJECT_TYPE corresponding to SCOPE. */
access_path = lookup_base (object_type, scope, ba_check, NULL);
- if (!access_path || access_path == error_mark_node)
+ if (access_path == error_mark_node)
return error_mark_node;
+ if (!access_path)
+ {
+ error ("`%T' is not a base of `%T'", scope, object_type);
+ return error_mark_node;
+ }
/* Look up the member. */
member = lookup_member (access_path, name, /*protect=*/1,
@@ -2632,12 +2644,11 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
}
tree
-build_function_call_real (function, params, require_complete, flags)
+build_function_call_real (function, params, flags)
tree function, params;
- int require_complete, flags;
+ int flags;
{
register tree fntype, fndecl;
- register tree value_type;
register tree coerced_params;
tree result;
tree name = NULL_TREE, assembler_name = NULL_TREE;
@@ -2742,27 +2753,14 @@ build_function_call_real (function, params, require_complete, flags)
return result;
}
- /* Some built-in function calls will be evaluated at
- compile-time in fold (). */
- result = fold (build_call (function, coerced_params));
- value_type = TREE_TYPE (result);
-
- if (require_complete)
- {
- if (TREE_CODE (value_type) == VOID_TYPE)
- return result;
- result = require_complete_type (result);
- }
- if (IS_AGGR_TYPE (value_type))
- result = build_cplus_new (value_type, result);
- return convert_from_reference (result);
+ return build_cxx_call (function, params, coerced_params);
}
tree
build_function_call (function, params)
tree function, params;
{
- return build_function_call_real (function, params, 1, LOOKUP_NORMAL);
+ return build_function_call_real (function, params, LOOKUP_NORMAL);
}
/* Convert the actual parameter expressions in the list VALUES
@@ -3888,7 +3886,45 @@ condition_conversion (expr)
t = fold (build1 (CLEANUP_POINT_EXPR, boolean_type_node, t));
return t;
}
-
+
+/* Return an ADDR_EXPR giving the address of T. This function
+ attempts no optimizations or simplifications; it is a low-level
+ primitive. */
+
+tree
+build_address (tree t)
+{
+ tree addr;
+
+ if (error_operand_p (t) || !cxx_mark_addressable (t))
+ return error_mark_node;
+
+ addr = build1 (ADDR_EXPR,
+ build_pointer_type (TREE_TYPE (t)),
+ t);
+ if (staticp (t))
+ TREE_CONSTANT (addr) = 1;
+
+ return addr;
+}
+
+/* Return a NOP_EXPR converting EXPR to TYPE. */
+
+tree
+build_nop (tree type, tree expr)
+{
+ tree nop;
+
+ if (type == error_mark_node || error_operand_p (expr))
+ return expr;
+
+ nop = build1 (NOP_EXPR, type, expr);
+ if (TREE_CONSTANT (expr))
+ TREE_CONSTANT (nop) = 1;
+
+ return nop;
+}
+
/* C++: Must handle pointers to members.
Perhaps type instantiation should be extended to handle conversion
@@ -4278,25 +4314,22 @@ build_unary_op (code, xarg, noconvert)
if (argtype != error_mark_node)
argtype = build_pointer_type (argtype);
- if (!cxx_mark_addressable (arg))
- return error_mark_node;
-
{
tree addr;
- if (TREE_CODE (arg) == COMPONENT_REF
- && DECL_C_BIT_FIELD (TREE_OPERAND (arg, 1)))
+ if (TREE_CODE (arg) != COMPONENT_REF)
+ addr = build_address (arg);
+ else if (DECL_C_BIT_FIELD (TREE_OPERAND (arg, 1)))
{
error ("attempt to take address of bit-field structure member `%D'",
TREE_OPERAND (arg, 1));
return error_mark_node;
}
- else if (TREE_CODE (arg) == COMPONENT_REF
- && TREE_CODE (TREE_OPERAND (arg, 0)) == INDIRECT_REF
- && (TREE_CODE (TREE_OPERAND (TREE_OPERAND (arg, 0), 0))
- == INTEGER_CST))
+ else
{
- /* offsetof idiom, fold it. */
+ /* Unfortunately we cannot just build an address
+ expression here, because we would not handle
+ address-constant-expressions or offsetof correctly. */
tree field = TREE_OPERAND (arg, 1);
tree rval = build_unary_op (ADDR_EXPR, TREE_OPERAND (arg, 0), 0);
tree binfo = lookup_base (TREE_TYPE (TREE_TYPE (rval)),
@@ -4309,13 +4342,6 @@ build_unary_op (code, xarg, noconvert)
addr = fold (build (PLUS_EXPR, argtype, rval,
cp_convert (argtype, byte_position (field))));
}
- else
- addr = build1 (ADDR_EXPR, argtype, arg);
-
- /* Address of a static or external variable or
- function counts as a constant */
- if (staticp (arg))
- TREE_CONSTANT (addr) = 1;
if (TREE_CODE (argtype) == POINTER_TYPE
&& TREE_CODE (TREE_TYPE (argtype)) == METHOD_TYPE)
@@ -4529,7 +4555,7 @@ cxx_mark_addressable (exp)
warning ("address requested for `%D', which is declared `register'",
x);
TREE_ADDRESSABLE (x) = 1;
- put_var_into_stack (x);
+ put_var_into_stack (x, /*rescan=*/true);
return true;
case FUNCTION_DECL:
@@ -4646,12 +4672,25 @@ build_compound_expr (list)
return build (COMPOUND_EXPR, TREE_TYPE (rest), first, rest);
}
+/* Issue an error message if casting from SRC_TYPE to DEST_TYPE casts
+ away constness. */
+
+static void
+check_for_casting_away_constness (tree src_type, tree dest_type)
+{
+ if (casts_away_constness (src_type, dest_type))
+ error ("static_cast from type `%T' to type `%T' casts away constness",
+ src_type, dest_type);
+}
+
+/* Return an expression representing static_cast<TYPE>(EXPR). */
+
tree
build_static_cast (type, expr)
tree type, expr;
{
tree intype;
- int ok;
+ tree result;
if (type == error_mark_node || expr == error_mark_node)
return error_mark_node;
@@ -4672,89 +4711,163 @@ build_static_cast (type, expr)
&& TREE_TYPE (expr) == TREE_TYPE (TREE_OPERAND (expr, 0)))
expr = TREE_OPERAND (expr, 0);
- if (TREE_CODE (type) == VOID_TYPE)
- {
- expr = convert_to_void (expr, /*implicit=*/NULL);
- return expr;
+ intype = TREE_TYPE (expr);
+
+ /* [expr.static.cast]
+
+ An lvalue of type "cv1 B", where B is a class type, can be cast
+ to type "reference to cv2 D", where D is a class derived (clause
+ _class.derived_) from B, if a valid standard conversion from
+ "pointer to D" to "pointer to B" exists (_conv.ptr_), cv2 is the
+ same cv-qualification as, or greater cv-qualification than, cv1,
+ and B is not a virtual base class of D. */
+ /* We check this case before checking the validity of "TYPE t =
+ EXPR;" below because for this case:
+
+ struct B {};
+ struct D : public B { D(const B&); };
+ extern B& b;
+ void f() { static_cast<const D&>(b); }
+
+ we want to avoid constructing a new D. The standard is not
+ completely clear about this issue, but our interpretation is
+ consistent with other compilers. */
+ if (TREE_CODE (type) == REFERENCE_TYPE
+ && CLASS_TYPE_P (TREE_TYPE (type))
+ && CLASS_TYPE_P (intype)
+ && real_non_cast_lvalue_p (expr)
+ && DERIVED_FROM_P (intype, TREE_TYPE (type))
+ && can_convert (build_pointer_type (TYPE_MAIN_VARIANT (intype)),
+ build_pointer_type (TYPE_MAIN_VARIANT
+ (TREE_TYPE (type))))
+ && at_least_as_qualified_p (TREE_TYPE (type), intype))
+ {
+ /* There is a standard conversion from "D*" to "B*" even if "B"
+ is ambiguous or inaccessible. Therefore, we ask lookup_base
+ to check these conditions. */
+ tree base = lookup_base (TREE_TYPE (type), intype, ba_check, NULL);
+
+ /* Convert from "B*" to "D*". This function will check that "B"
+ is not a virtual base of "D". */
+ expr = build_base_path (MINUS_EXPR, build_address (expr),
+ base, /*nonnull=*/false);
+ /* Convert the pointer to a reference -- but then remember that
+ there are no expressions with reference type in C++. */
+ return convert_from_reference (build_nop (type, expr));
}
- if (TREE_CODE (type) == REFERENCE_TYPE)
- return (convert_from_reference
- (convert_to_reference (type, expr, CONV_STATIC|CONV_IMPLICIT,
- LOOKUP_COMPLAIN, NULL_TREE)));
+ /* [expr.static.cast]
- if (IS_AGGR_TYPE (type))
- return build_cplus_new (type, (build_special_member_call
- (NULL_TREE, complete_ctor_identifier,
- build_tree_list (NULL_TREE, expr),
- TYPE_BINFO (type), LOOKUP_NORMAL)));
+ An expression e can be explicitly converted to a type T using a
+ static_cast of the form static_cast<T>(e) if the declaration T
+ t(e);" is well-formed, for some invented temporary variable
+ t. */
+ result = perform_direct_initialization_if_possible (type, expr);
+ if (result)
+ return convert_from_reference (result);
- intype = TREE_TYPE (expr);
+ /* [expr.static.cast]
- /* FIXME handle casting to array type. */
+ Any expression can be explicitly converted to type cv void. */
+ if (TREE_CODE (type) == VOID_TYPE)
+ return convert_to_void (expr, /*implicit=*/NULL);
- ok = 0;
- if (IS_AGGR_TYPE (intype)
- ? can_convert_arg (type, intype, expr)
- : can_convert_arg (strip_all_pointer_quals (type),
- strip_all_pointer_quals (intype), expr))
- /* This is a standard conversion. */
- ok = 1;
- else if (TYPE_PTROB_P (type) && TYPE_PTROB_P (intype))
- {
- /* They're pointers to objects. They must be aggregates that
- are related non-virtually. */
- base_kind kind;
-
- if (IS_AGGR_TYPE (TREE_TYPE (type)) && IS_AGGR_TYPE (TREE_TYPE (intype))
- && lookup_base (TREE_TYPE (type), TREE_TYPE (intype),
- ba_ignore | ba_quiet, &kind)
- && kind != bk_via_virtual)
- ok = 1;
- }
- else if (TYPE_PTRMEM_P (type) && TYPE_PTRMEM_P (intype))
- {
- /* They're pointers to members. The pointed to objects must be
- the same (ignoring CV qualifiers), and the containing classes
- must be related non-virtually. */
- base_kind kind;
-
- if (same_type_p
- (strip_all_pointer_quals (TREE_TYPE (TREE_TYPE (type))),
- strip_all_pointer_quals (TREE_TYPE (TREE_TYPE (intype))))
- && (lookup_base (TYPE_OFFSET_BASETYPE (TREE_TYPE (intype)),
- TYPE_OFFSET_BASETYPE (TREE_TYPE (type)),
- ba_ignore | ba_quiet, &kind))
- && kind != bk_via_virtual)
- ok = 1;
- }
- else if (TREE_CODE (intype) != BOOLEAN_TYPE
- && TREE_CODE (type) != ARRAY_TYPE
- && TREE_CODE (type) != FUNCTION_TYPE
- && can_convert (intype, strip_all_pointer_quals (type)))
- ok = 1;
- else if (TREE_CODE (intype) == ENUMERAL_TYPE
- && TREE_CODE (type) == ENUMERAL_TYPE)
- /* DR 128: "A value of integral _or enumeration_ type can be explicitly
- converted to an enumeration type."
- The integral to enumeration will be accepted by the previous clause.
- We need to explicitly check for enumeration to enumeration. */
- ok = 1;
+ /* [expr.static.cast]
+ The inverse of any standard conversion sequence (clause _conv_),
+ other than the lvalue-to-rvalue (_conv.lval_), array-to-pointer
+ (_conv.array_), function-to-pointer (_conv.func_), and boolean
+ (_conv.bool_) conversions, can be performed explicitly using
+ static_cast subject to the restriction that the explicit
+ conversion does not cast away constness (_expr.const.cast_), and
+ the following additional rules for specific cases: */
+ /* For reference, the conversions not excluded are: integral
+ promotions, floating point promotion, integral conversions,
+ floating point conversions, floating-integral conversions,
+ pointer conversions, and pointer to member conversions. */
+ if ((ARITHMETIC_TYPE_P (type) && ARITHMETIC_TYPE_P (intype))
+ /* DR 128
+
+ A value of integral _or enumeration_ type can be explicitly
+ converted to an enumeration type. */
+ || (INTEGRAL_OR_ENUMERATION_TYPE_P (type)
+ && INTEGRAL_OR_ENUMERATION_TYPE_P (intype)))
+ /* Really, build_c_cast should defer to this function rather
+ than the other way around. */
+ return build_c_cast (type, expr);
+ if (TYPE_PTR_P (type) && TYPE_PTR_P (intype)
+ && CLASS_TYPE_P (TREE_TYPE (type))
+ && CLASS_TYPE_P (TREE_TYPE (intype))
+ && can_convert (build_pointer_type (TYPE_MAIN_VARIANT
+ (TREE_TYPE (intype))),
+ build_pointer_type (TYPE_MAIN_VARIANT
+ (TREE_TYPE (type)))))
+ {
+ tree base;
+
+ check_for_casting_away_constness (intype, type);
+ base = lookup_base (TREE_TYPE (type), TREE_TYPE (intype),
+ ba_check, NULL);
+ return build_base_path (MINUS_EXPR, expr, base, /*nonnull=*/false);
+ }
+ if ((TYPE_PTRMEM_P (type) && TYPE_PTRMEM_P (intype))
+ || (TYPE_PTRMEMFUNC_P (type) && TYPE_PTRMEMFUNC_P (intype)))
+ {
+ tree c1;
+ tree c2;
+ tree t1;
+ tree t2;
+
+ c1 = TYPE_PTRMEM_CLASS_TYPE (intype);
+ c2 = TYPE_PTRMEM_CLASS_TYPE (type);
+
+ if (TYPE_PTRMEM_P (type))
+ {
+ t1 = (build_ptrmem_type
+ (c1,
+ TYPE_MAIN_VARIANT (TYPE_PTRMEM_POINTED_TO_TYPE (intype))));
+ t2 = (build_ptrmem_type
+ (c2,
+ TYPE_MAIN_VARIANT (TYPE_PTRMEM_POINTED_TO_TYPE (type))));
+ }
+ else
+ {
+ t1 = intype;
+ t2 = type;
+ }
+ if (can_convert (t1, t2))
+ {
+ check_for_casting_away_constness (intype, type);
+ if (TYPE_PTRMEM_P (type))
+ {
+ if (TREE_CODE (expr) == PTRMEM_CST)
+ expr = cplus_expand_constant (expr);
+ expr = cp_build_binary_op (PLUS_EXPR,
+ cp_convert (ptrdiff_type_node, expr),
+ get_delta_difference (c1, c2,
+ /*force=*/1));
+ return build_nop (type, expr);
+ }
+ else
+ return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr,
+ /*force=*/1);
+ }
+ }
+
/* [expr.static.cast]
- The static_cast operator shall not be used to cast away
- constness. */
- if (ok && casts_away_constness (intype, type))
+ An rvalue of type "pointer to cv void" can be explicitly
+ converted to a pointer to object type. A value of type pointer
+ to object converted to "pointer to cv void" and back to the
+ original pointer type will have its original value. */
+ if (TREE_CODE (intype) == POINTER_TYPE
+ && VOID_TYPE_P (TREE_TYPE (intype))
+ && TYPE_PTROB_P (type))
{
- error ("static_cast from type `%T' to type `%T' casts away constness",
- intype, type);
- return error_mark_node;
+ check_for_casting_away_constness (intype, type);
+ return build_nop (type, expr);
}
- if (ok)
- return build_c_cast (type, expr);
-
error ("invalid static_cast from type `%T' to type `%T'", intype, type);
return error_mark_node;
}
@@ -4978,6 +5091,10 @@ build_c_cast (type, expr)
value = convert_to_void (value, /*implicit=*/NULL);
return value;
}
+
+ if (!complete_type_or_else (type, NULL_TREE))
+ return error_mark_node;
+
/* Convert functions and arrays to pointers and
convert references to their expanded types,
but don't convert any other types. If, however, we are
@@ -5093,7 +5210,7 @@ build_modify_expr (lhs, modifycode, rhs)
tree newrhs = rhs;
tree lhstype = TREE_TYPE (lhs);
tree olhstype = lhstype;
- tree olhs = lhs;
+ tree olhs = NULL_TREE;
/* Avoid duplicate error messages from operands that had errors. */
if (lhs == error_mark_node || rhs == error_mark_node)
@@ -5124,6 +5241,10 @@ build_modify_expr (lhs, modifycode, rhs)
TREE_OPERAND (lhs, 0), newrhs);
case MODIFY_EXPR:
+ if (TREE_SIDE_EFFECTS (TREE_OPERAND (lhs, 0)))
+ lhs = build (TREE_CODE (lhs), TREE_TYPE (lhs),
+ stabilize_reference (TREE_OPERAND (lhs, 0)),
+ TREE_OPERAND (lhs, 1));
newrhs = build_modify_expr (TREE_OPERAND (lhs, 0), modifycode, rhs);
if (newrhs == error_mark_node)
return error_mark_node;
@@ -5175,8 +5296,9 @@ build_modify_expr (lhs, modifycode, rhs)
{
if (TREE_CODE (rhs) == CONSTRUCTOR)
{
- my_friendly_assert (same_type_p (TREE_TYPE (rhs), lhstype),
- 20011220);
+ if (! same_type_p (TREE_TYPE (rhs), lhstype))
+ /* Call convert to generate an error; see PR 11063. */
+ rhs = convert (lhstype, rhs);
result = build (INIT_EXPR, lhstype, lhs, rhs);
TREE_SIDE_EFFECTS (result) = 1;
return result;
@@ -5324,19 +5446,20 @@ build_modify_expr (lhs, modifycode, rhs)
if (lhstype != TREE_TYPE (lhs))
{
+ /* Avoid warnings converting integral types back into enums for
+ enum bit fields. */
+ if (TREE_CODE (lhstype) == INTEGER_TYPE
+ && TREE_CODE (olhstype) == ENUMERAL_TYPE)
+ {
+ if (TREE_SIDE_EFFECTS (lhs))
+ lhs = stabilize_reference (lhs);
+ olhs = lhs;
+ }
lhs = copy_node (lhs);
TREE_TYPE (lhs) = lhstype;
}
}
- if (TREE_CODE (lhstype) != REFERENCE_TYPE)
- {
- if (TREE_SIDE_EFFECTS (lhs))
- lhs = stabilize_reference (lhs);
- if (TREE_SIDE_EFFECTS (newrhs))
- newrhs = stabilize_reference (newrhs);
- }
-
/* Convert new value to destination type. */
if (TREE_CODE (lhstype) == ARRAY_TYPE)
@@ -5357,7 +5480,7 @@ build_modify_expr (lhs, modifycode, rhs)
from_array = TREE_CODE (TREE_TYPE (newrhs)) == ARRAY_TYPE
? 1 + (modifycode != INIT_EXPR): 0;
- return build_vec_init (lhs, newrhs, from_array);
+ return build_vec_init (lhs, NULL_TREE, newrhs, from_array);
}
if (modifycode == INIT_EXPR)
@@ -5392,44 +5515,8 @@ build_modify_expr (lhs, modifycode, rhs)
if (newrhs == error_mark_node)
return error_mark_node;
- if (TREE_CODE (newrhs) == COND_EXPR)
- {
- tree lhs1;
- tree cond = TREE_OPERAND (newrhs, 0);
-
- if (TREE_SIDE_EFFECTS (lhs))
- cond = build_compound_expr (tree_cons
- (NULL_TREE, lhs,
- build_tree_list (NULL_TREE, cond)));
-
- /* Cannot have two identical lhs on this one tree (result) as preexpand
- calls will rip them out and fill in RTL for them, but when the
- rtl is generated, the calls will only be in the first side of the
- condition, not on both, or before the conditional jump! (mrs) */
- lhs1 = break_out_calls (lhs);
-
- if (lhs == lhs1)
- /* If there's no change, the COND_EXPR behaves like any other rhs. */
- result = build (modifycode == NOP_EXPR ? MODIFY_EXPR : INIT_EXPR,
- lhstype, lhs, newrhs);
- else
- {
- tree result_type = TREE_TYPE (newrhs);
- /* We have to convert each arm to the proper type because the
- types may have been munged by constant folding. */
- result
- = build (COND_EXPR, result_type, cond,
- build_modify_expr (lhs, modifycode,
- cp_convert (result_type,
- TREE_OPERAND (newrhs, 1))),
- build_modify_expr (lhs1, modifycode,
- cp_convert (result_type,
- TREE_OPERAND (newrhs, 2))));
- }
- }
- else
- result = build (modifycode == NOP_EXPR ? MODIFY_EXPR : INIT_EXPR,
- lhstype, lhs, newrhs);
+ result = build (modifycode == NOP_EXPR ? MODIFY_EXPR : INIT_EXPR,
+ lhstype, lhs, newrhs);
TREE_SIDE_EFFECTS (result) = 1;
@@ -5440,10 +5527,7 @@ build_modify_expr (lhs, modifycode, rhs)
if (olhstype == TREE_TYPE (result))
return result;
- /* Avoid warnings converting integral types back into enums
- for enum bit fields. */
- if (TREE_CODE (TREE_TYPE (result)) == INTEGER_TYPE
- && TREE_CODE (olhstype) == ENUMERAL_TYPE)
+ if (olhs)
{
result = build (COMPOUND_EXPR, olhstype, result, olhs);
TREE_NO_UNUSED_WARNING (result) = 1;
@@ -5596,11 +5680,17 @@ build_ptrmemfunc (type, pfn, force)
int force;
{
tree fn;
- tree pfn_type = TREE_TYPE (pfn);
- tree to_type = build_ptrmemfunc_type (type);
+ tree pfn_type;
+ tree to_type;
+
+ if (error_operand_p (pfn))
+ return error_mark_node;
+
+ pfn_type = TREE_TYPE (pfn);
+ to_type = build_ptrmemfunc_type (type);
/* Handle multiple conversions of pointer to member functions. */
- if (TYPE_PTRMEMFUNC_P (TREE_TYPE (pfn)))
+ if (TYPE_PTRMEMFUNC_P (pfn_type))
{
tree delta = NULL_TREE;
tree npfn = NULL_TREE;
@@ -5847,8 +5937,6 @@ convert_for_assignment (type, rhs, errtype, fndecl, parmnum)
if (TREE_CODE (rhs) == TREE_LIST && TREE_VALUE (rhs) == error_mark_node)
return error_mark_node;
- rhs = dubious_conversion_warnings (type, rhs, errtype, fndecl, parmnum);
-
/* The RHS of an assignment cannot have void type. */
if (coder == VOID_TYPE)
{
@@ -5981,7 +6069,8 @@ convert_for_initialization (exp, type, rhs, flags, errtype, fndecl, parmnum)
if (fndecl)
savew = warningcount, savee = errorcount;
- rhs = initialize_reference (type, rhs);
+ rhs = initialize_reference (type, rhs, /*decl=*/NULL_TREE,
+ /*cleanup=*/NULL);
if (fndecl)
{
if (warningcount > savew)
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 750aa3c94bf..e4929275b91 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -133,6 +133,12 @@ abstract_virtuals_error (decl, type)
tree u;
tree tu;
+ if (processing_template_decl)
+ /* If we are processing a template, TYPE may be a template
+ class where CLASSTYPE_PURE_VIRTUALS always contains
+ inline friends. */
+ return 0;
+
if (!CLASS_TYPE_P (type) || !CLASSTYPE_PURE_VIRTUALS (type))
return 0;
@@ -273,7 +279,8 @@ retry:
break;
default:
- abort ();
+ (*p_msg) ("invalid use of incomplete type");
+ break;
}
}
@@ -289,6 +296,109 @@ cxx_incomplete_type_error (value, type)
}
+/* The recursive part of split_nonconstant_init. DEST is an lvalue
+ expression to which INIT should be assigned. INIT is a CONSTRUCTOR.
+ PCODE is a pointer to the tail of a chain of statements being emitted.
+ The return value is the new tail of that chain after new statements
+ are generated. */
+
+static tree *
+split_nonconstant_init_1 (tree dest, tree init, tree *pcode)
+{
+ tree *pelt, elt, type = TREE_TYPE (dest);
+ tree sub, code, inner_type = NULL;
+ bool array_type_p = false;
+
+ pelt = &CONSTRUCTOR_ELTS (init);
+ switch (TREE_CODE (type))
+ {
+ case ARRAY_TYPE:
+ inner_type = TREE_TYPE (type);
+ array_type_p = true;
+ /* FALLTHRU */
+
+ case RECORD_TYPE:
+ case UNION_TYPE:
+ case QUAL_UNION_TYPE:
+ while ((elt = *pelt))
+ {
+ tree field_index = TREE_PURPOSE (elt);
+ tree value = TREE_VALUE (elt);
+
+ if (!array_type_p)
+ inner_type = TREE_TYPE (field_index);
+
+ if (TREE_CODE (value) == CONSTRUCTOR)
+ {
+ if (array_type_p)
+ sub = build (ARRAY_REF, inner_type, dest, field_index);
+ else
+ sub = build (COMPONENT_REF, inner_type, dest, field_index);
+
+ pcode = split_nonconstant_init_1 (sub, value, pcode);
+ }
+ else if (!initializer_constant_valid_p (value, inner_type))
+ {
+ *pelt = TREE_CHAIN (elt);
+
+ if (array_type_p)
+ sub = build (ARRAY_REF, inner_type, dest, field_index);
+ else
+ sub = build (COMPONENT_REF, inner_type, dest, field_index);
+
+ code = build (MODIFY_EXPR, inner_type, sub, value);
+ code = build_stmt (EXPR_STMT, code);
+
+ *pcode = code;
+ pcode = &TREE_CHAIN (code);
+ continue;
+ }
+ pelt = &TREE_CHAIN (elt);
+ }
+ break;
+
+ case VECTOR_TYPE:
+ if (!initializer_constant_valid_p (init, type))
+ {
+ CONSTRUCTOR_ELTS (init) = NULL;
+ code = build (MODIFY_EXPR, type, dest, init);
+ code = build_stmt (EXPR_STMT, code);
+ pcode = &TREE_CHAIN (code);
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+ return pcode;
+}
+
+/* A subroutine of store_init_value. Splits non-constant static
+ initializer INIT into a constant part and generates code to
+ perform the non-constant part of the initialization to DEST.
+ Returns the code for the runtime init. */
+
+static tree
+split_nonconstant_init (tree dest, tree init)
+{
+ tree code;
+
+ if (TREE_CODE (init) == CONSTRUCTOR)
+ {
+ code = build_stmt (COMPOUND_STMT, NULL_TREE);
+ split_nonconstant_init_1 (dest, init, &COMPOUND_BODY (code));
+ code = build1 (STMT_EXPR, void_type_node, code);
+ TREE_SIDE_EFFECTS (code) = 1;
+ DECL_INITIAL (dest) = init;
+ TREE_READONLY (dest) = 0;
+ }
+ else
+ code = build (INIT_EXPR, TREE_TYPE (dest), dest, init);
+
+ return code;
+}
+
/* Perform appropriate conversions on the initial value of a variable,
store it in the declaration DECL,
and print any error messages that are appropriate.
@@ -304,9 +414,8 @@ cxx_incomplete_type_error (value, type)
into a CONSTRUCTOR and use standard initialization techniques.
Perhaps a warning should be generated?
- Returns value of initializer if initialization could not be
- performed for static variable. In that case, caller must do
- the storing. */
+ Returns code to be executed if initialization could not be performed
+ for static variable. In that case, caller must emit the code. */
tree
store_init_value (decl, init)
@@ -378,35 +487,11 @@ store_init_value (decl, init)
constructing never make it into DECL_INITIAL, and passes 'init' to
build_aggr_init without checking DECL_INITIAL. So just return. */
else if (TYPE_NEEDS_CONSTRUCTING (type))
- return value;
+ return build (INIT_EXPR, type, decl, value);
else if (TREE_STATIC (decl)
&& (! TREE_CONSTANT (value)
- || ! initializer_constant_valid_p (value, TREE_TYPE (value))
-#if 0
- /* A STATIC PUBLIC int variable doesn't have to be
- run time inited when doing pic. (mrs) */
- /* Since ctors and dtors are the only things that can
- reference vtables, and they are always written down
- the vtable definition, we can leave the
- vtables in initialized data space.
- However, other initialized data cannot be initialized
- this way. Instead a global file-level initializer
- must do the job. */
- || (flag_pic && !DECL_VIRTUAL_P (decl) && TREE_PUBLIC (decl))
-#endif
- ))
-
- return value;
-#if 0 /* No, that's C. jason 9/19/94 */
- else
- {
- if (pedantic && TREE_CODE (value) == CONSTRUCTOR)
- {
- if (! TREE_CONSTANT (value) || ! TREE_STATIC (value))
- pedwarn ("ISO C++ forbids non-constant aggregate initializer expressions");
- }
- }
-#endif
+ || ! initializer_constant_valid_p (value, TREE_TYPE (value))))
+ return split_nonconstant_init (decl, value);
/* Store the VALUE in DECL_INITIAL. If we're building a
statement-tree we will actually expand the initialization later
@@ -726,6 +811,7 @@ process_init_constructor (type, init, elts)
}
else if (! zero_init_p (TREE_TYPE (type)))
next1 = build_zero_init (TREE_TYPE (type),
+ /*nelts=*/NULL_TREE,
/*static_storage_p=*/false);
else
/* The default zero-initialization is fine for us; don't
@@ -844,6 +930,7 @@ process_init_constructor (type, init, elts)
if (! zero_init_p (TREE_TYPE (field)))
next1 = build_zero_init (TREE_TYPE (field),
+ /*nelts=*/NULL_TREE,
/*static_storage_p=*/false);
else
/* The default zero-initialization is fine for us; don't
diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
index 81ee564ec7e..fd29add6833 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
@@ -33,44 +33,44 @@ const struct default_include cpp_include_defaults[]
= {
#ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */
- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 },
#endif
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
/* Pick up GNU C++ target-dependent include files. */
- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1 },
+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 },
#endif
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
/* Pick up GNU C++ backward and deprecated include files. */
- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1 },
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 },
#endif
#ifdef LOCAL_INCLUDE_DIR
/* /usr/local/include comes before the fixincluded header files. */
- { LOCAL_INCLUDE_DIR, 0, 0, 1 },
+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1 },
#endif
#ifdef PREFIX_INCLUDE_DIR
- { PREFIX_INCLUDE_DIR, 0, 0, 1 },
+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0 },
#endif
#ifdef GCC_INCLUDE_DIR
/* This is the dir for fixincludes and for gcc's private headers. */
- { GCC_INCLUDE_DIR, "GCC", 0, 0 },
+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 0 },
#endif
#ifdef CROSS_INCLUDE_DIR
/* One place the target system's headers might be. */
- { CROSS_INCLUDE_DIR, "GCC", 0, 0 },
+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0 },
#endif
#ifdef TOOL_INCLUDE_DIR
/* Another place the target system's headers might be. */
- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1 },
+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0 },
#endif
#ifdef SYSTEM_INCLUDE_DIR
/* Some systems have an extra dir of include files. */
- { SYSTEM_INCLUDE_DIR, 0, 0, 0 },
+ { SYSTEM_INCLUDE_DIR, 0, 0, 0, 1 },
#endif
#ifdef STANDARD_INCLUDE_DIR
/* /usr/include comes dead last. */
- { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0 },
+ { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1 },
#endif
- { 0, 0, 0, 0 }
+ { 0, 0, 0, 0, 0 }
};
#endif /* no INCLUDE_DEFAULTS */
@@ -81,3 +81,9 @@ const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
const char cpp_GCC_INCLUDE_DIR[] = "";
const size_t cpp_GCC_INCLUDE_DIR_len = 0;
#endif
+
+#ifdef TARGET_SYSTEM_ROOT
+const char *cpp_SYSROOT = TARGET_SYSTEM_ROOT;
+#else
+const char *cpp_SYSROOT = "";
+#endif
diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
index 40a860964a8..c87e27d5dee 100644
--- a/gcc/cppdefault.h
+++ b/gcc/cppdefault.h
@@ -34,12 +34,12 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define STANDARD_INCLUDE_COMPONENT 0
#endif
-#ifdef CROSS_COMPILE
-#undef LOCAL_INCLUDE_DIR
-#undef SYSTEM_INCLUDE_DIR
-#undef STANDARD_INCLUDE_DIR
+#if defined (CROSS_COMPILE) && !defined (TARGET_SYSTEM_ROOT)
+# undef LOCAL_INCLUDE_DIR
+# undef SYSTEM_INCLUDE_DIR
+# undef STANDARD_INCLUDE_DIR
#else
-#undef CROSS_INCLUDE_DIR
+# undef CROSS_INCLUDE_DIR
#endif
/* This is the default list of directories to search for include files.
@@ -61,10 +61,14 @@ struct default_include
const int cxx_aware; /* Includes in this directory don't need to
be wrapped in extern "C" when compiling
C++. */
+ const int add_sysroot; /* FNAME should be prefixed by
+ cpp_SYSROOT. */
};
extern const struct default_include cpp_include_defaults[];
extern const char cpp_GCC_INCLUDE_DIR[];
extern const size_t cpp_GCC_INCLUDE_DIR_len;
+extern const char *cpp_SYSROOT;
+
#endif /* ! GCC_CPPDEFAULT_H */
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index 7f576f211e4..12919f6f88f 100644
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -502,7 +502,7 @@ parse_defined (pfile)
if (node)
{
- if (pfile->context != initial_context)
+ if (pfile->context != initial_context && CPP_PEDANTIC (pfile))
cpp_error (pfile, DL_WARNING,
"this use of \"defined\" may not be portable");
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 16e8dfe08fe..7f321dab9d1 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -29,7 +29,9 @@ struct directive; /* Deliberately incomplete. */
struct pending_option;
struct op;
+#ifndef HAVE_UCHAR
typedef unsigned char uchar;
+#endif
#define U (const uchar *) /* Intended use: U"string" */
#define BITS_PER_CPPCHAR_T (CHAR_BIT * sizeof (cppchar_t))
@@ -212,6 +214,11 @@ struct lexer_state
/* Nonzero if first token on line is CPP_HASH. */
unsigned char in_directive;
+ /* Nonzero if in a directive that will handle padding tokens itself.
+ #include needs this to avoid problems with computed include and
+ spacing between tokens. */
+ unsigned char directive_wants_padding;
+
/* True if we are skipping a failed conditional group. */
unsigned char skipping;
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 82b3056b704..4cd3a786ec6 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -1,6 +1,6 @@
/* CPP Library.
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -530,6 +530,7 @@ cpp_create_reader (lang)
CPP_OPTION (pfile, operator_names) = 1;
CPP_OPTION (pfile, warn_endif_labels) = 1;
CPP_OPTION (pfile, warn_long_long) = !CPP_OPTION (pfile, c99);
+ CPP_OPTION (pfile, sysroot) = cpp_SYSROOT;
CPP_OPTION (pfile, pending) =
(struct cpp_pending *) xcalloc (1, sizeof (struct cpp_pending));
@@ -758,6 +759,8 @@ init_standard_includes (pfile)
char *path;
const struct default_include *p;
const char *specd_prefix = CPP_OPTION (pfile, include_prefix);
+ int default_len, specd_len;
+ char *default_prefix;
/* Several environment variables may add to the include search path.
CPATH specifies an additional list of directories to be searched
@@ -789,13 +792,16 @@ init_standard_includes (pfile)
/* Search "translated" versions of GNU directories.
These have /usr/local/lib/gcc... replaced by specd_prefix. */
+ default_len = 0;
+ specd_len = 0;
+ default_prefix = NULL;
if (specd_prefix != 0 && cpp_GCC_INCLUDE_DIR_len)
{
/* Remove the `include' from /usr/local/lib/gcc.../include.
GCC_INCLUDE_DIR will always end in /include. */
- int default_len = cpp_GCC_INCLUDE_DIR_len;
- char *default_prefix = (char *) alloca (default_len + 1);
- int specd_len = strlen (specd_prefix);
+ default_len = cpp_GCC_INCLUDE_DIR_len;
+ default_prefix = (char *) alloca (default_len + 1);
+ specd_len = strlen (specd_prefix);
memcpy (default_prefix, cpp_GCC_INCLUDE_DIR, default_len);
default_prefix[default_len] = '\0';
@@ -807,13 +813,23 @@ init_standard_includes (pfile)
|| (CPP_OPTION (pfile, cplusplus)
&& !CPP_OPTION (pfile, no_standard_cplusplus_includes)))
{
+ char *str;
+
+ /* Should we be translating sysrooted dirs too? Assume
+ that iprefix and sysroot are mutually exclusive, for
+ now. */
+ if (p->add_sysroot && CPP_OPTION (pfile, sysroot)
+ && *(CPP_OPTION (pfile, sysroot)))
+ continue;
+
/* 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);
int this_len = specd_len + flen - default_len;
- char *str = (char *) xmalloc (this_len + 1);
+
+ str = (char *) xmalloc (this_len + 1);
memcpy (str, specd_prefix, specd_len);
memcpy (str + specd_len,
p->fname + default_len,
@@ -825,7 +841,6 @@ init_standard_includes (pfile)
}
}
- /* Search ordinary names for GNU include directories. */
for (p = cpp_include_defaults; p->fname; p++)
{
/* Some standard dirs are only for C++. */
@@ -833,7 +848,16 @@ init_standard_includes (pfile)
|| (CPP_OPTION (pfile, cplusplus)
&& !CPP_OPTION (pfile, no_standard_cplusplus_includes)))
{
- char *str = update_path (p->fname, p->component);
+ char *str;
+
+ /* Should this dir start with the sysroot? */
+ if (p->add_sysroot && CPP_OPTION (pfile, sysroot)
+ && *(CPP_OPTION (pfile, sysroot)))
+ str = concat (CPP_OPTION (pfile, sysroot), p->fname, NULL);
+
+ else
+ str = update_path (p->fname, p->component);
+
append_include_chain (pfile, str, SYSTEM, p->cxx_aware);
}
}
@@ -1052,6 +1076,8 @@ cpp_finish_options (pfile)
{
struct pending_option *p;
+ /* Prevent -Wunused-macros with command-line redefinitions. */
+ pfile->first_unused_line = (unsigned int) -1;
_cpp_do_file_change (pfile, LC_RENAME, _("<built-in>"), 1, 0);
init_builtins (pfile);
_cpp_do_file_change (pfile, LC_RENAME, _("<command line>"), 1, 0);
@@ -1176,6 +1202,7 @@ new_pending_directive (pend, text, handler)
DEF_OPT("imacros", no_fil, OPT_imacros) \
DEF_OPT("include", no_fil, OPT_include) \
DEF_OPT("iprefix", no_pth, OPT_iprefix) \
+ DEF_OPT("isysroot", no_dir, OPT_isysroot) \
DEF_OPT("isystem", no_dir, OPT_isystem) \
DEF_OPT("iwithprefix", no_dir, OPT_iwithprefix) \
DEF_OPT("iwithprefixbefore", no_dir, OPT_iwithprefixbefore)
@@ -1320,26 +1347,13 @@ cpp_handle_option (pfile, argc, argv)
CPP_OPTION (pfile, include_prefix_len) = strlen (arg);
break;
+ case OPT_isysroot:
+ CPP_OPTION (pfile, sysroot) = arg;
+ break;
+
case OPT_A:
if (arg[0] == '-')
- {
- /* -A with an argument beginning with '-' acts as
- #unassert on whatever immediately follows the '-'.
- If "-" is the whole argument, we eliminate all
- predefined macros and assertions, including those
- that were specified earlier on the command line.
- That way we can get rid of any that were passed
- automatically in from GCC. */
-
- if (arg[1] == '\0')
- {
- free_chain (pend->directive_head);
- pend->directive_head = NULL;
- pend->directive_tail = NULL;
- }
- else
- new_pending_directive (pend, arg + 1, cpp_unassert);
- }
+ new_pending_directive (pend, arg + 1, cpp_unassert);
else
new_pending_directive (pend, arg, cpp_assert);
break;
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index f8a702d8c1a..154a2f7c1ae 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -1,6 +1,6 @@
/* CPP Library. (Directive handling.)
Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Per Bothner, 1994-95.
Based on CCCP program by Paul Rubin, June 1986
Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -407,6 +407,7 @@ _cpp_handle_directive (pfile, indented)
skipping or not, we should lex angle-bracketed headers
correctly, and maybe output some diagnostics. */
pfile->state.angled_headers = dir->flags & INCL;
+ pfile->state.directive_wants_padding = dir->flags & INCL;
if (! CPP_OPTION (pfile, preprocessed))
directive_diagnostics (pfile, dir, indented);
if (pfile->state.skipping && !(dir->flags & COND))
@@ -575,7 +576,7 @@ glue_header_name (pfile)
buffer = (unsigned char *) xmalloc (capacity);
for (;;)
{
- token = cpp_get_token (pfile);
+ token = get_token_no_padding (pfile);
if (token->type == CPP_GREATER || token->type == CPP_EOF)
break;
@@ -627,7 +628,7 @@ parse_include (pfile)
dir = pfile->directive->name;
/* Allow macro expansion. */
- header = cpp_get_token (pfile);
+ header = get_token_no_padding (pfile);
if (header->type != CPP_STRING && header->type != CPP_HEADER_NAME)
{
if (header->type != CPP_LESS)
@@ -1093,7 +1094,7 @@ do_pragma (pfile)
cpp_reader *pfile;
{
const struct pragma_entry *p = NULL;
- const cpp_token *token;
+ const cpp_token *token, *pragma_token = pfile->cur_token;
unsigned int count = 1;
pfile->state.prevent_expansion++;
@@ -1113,16 +1114,15 @@ do_pragma (pfile)
}
}
- /* FIXME. This is an awful kludge to get the front ends to update
- their notion of line number for diagnostic purposes. The line
- number should be passed to the handler and they should do it
- themselves. Stand-alone CPP must ignore us, otherwise it will
- prefix the directive with spaces, hence the 1. Ugh. */
- if (pfile->cb.line_change)
- (*pfile->cb.line_change)(pfile, token, 1);
-
if (p)
- (*p->u.handler) (pfile);
+ {
+ /* Since the handler below doesn't get the line number, that it
+ might need for diagnostics, make sure it has the right
+ numbers in place. */
+ if (pfile->cb.line_change)
+ (*pfile->cb.line_change) (pfile, pragma_token, false);
+ (*p->u.handler) (pfile);
+ }
else if (pfile->cb.def_pragma)
{
_cpp_backup_tokens (pfile, count);
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 7b3a54a3576..42c817f7eae 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -240,6 +240,10 @@ struct cpp_options
const char *include_prefix;
unsigned int include_prefix_len;
+ /* Directory prefix for system include directories in the standard search
+ path. */
+ const char *sysroot;
+
/* The language we're preprocessing. */
enum c_lang lang;
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index fe78993bc4d..b97fe811c71 100644
--- a/gcc/cppmacro.c
+++ b/gcc/cppmacro.c
@@ -897,7 +897,7 @@ replace_args (pfile, node, macro, args)
count = arg->expanded_count, from = arg->expanded;
/* Padding on the left of an argument (unless RHS of ##). */
- if (!pfile->state.in_directive
+ if ((!pfile->state.in_directive || pfile->state.directive_wants_padding)
&& src != macro->exp.tokens && !(src[-1].flags & PASTE_LEFT))
*dest++ = padding_token (pfile, src);
@@ -1279,10 +1279,12 @@ warn_of_redefinition (pfile, node, macro2)
if (CPP_OPTION (pfile, traditional))
return _cpp_expansions_different_trad (macro1, macro2);
- if (macro1->count == macro2->count)
- for (i = 0; i < macro1->count; i++)
- if (!_cpp_equiv_tokens (&macro1->exp.tokens[i], &macro2->exp.tokens[i]))
- return true;
+ if (macro1->count != macro2->count)
+ return true;
+
+ for (i = 0; i < macro1->count; i++)
+ if (!_cpp_equiv_tokens (&macro1->exp.tokens[i], &macro2->exp.tokens[i]))
+ return true;
return false;
}
diff --git a/gcc/cppmain.c b/gcc/cppmain.c
index 9d8d42c2009..d49c6f85769 100644
--- a/gcc/cppmain.c
+++ b/gcc/cppmain.c
@@ -1,5 +1,5 @@
/* Preprocess only, using cpplib.
- Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Written by Per Bothner, 1994-95.
diff --git a/gcc/cppspec.c b/gcc/cppspec.c
index e79968ab510..d5b49d019a3 100644
--- a/gcc/cppspec.c
+++ b/gcc/cppspec.c
@@ -29,32 +29,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
assume the user knows what they're doing. If no explicit input is
mentioned, it will read stdin. */
-/* Snarfed from gcc.c: */
-
-/* This defines which switch letters take arguments. */
-
-#define DEFAULT_SWITCH_TAKES_ARG(CHAR) \
- ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \
- || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
- || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \
- || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V' \
- || (CHAR) == 'B' || (CHAR) == 'b')
-
#ifndef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) DEFAULT_SWITCH_TAKES_ARG(CHAR)
#endif
-/* This defines which multi-letter switches take arguments. */
-
-#define DEFAULT_WORD_SWITCH_TAKES_ARG(STR) \
- (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \
- || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \
- || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \
- || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \
- || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
- || !strcmp (STR, "isystem") || !strcmp (STR, "specs") \
- || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ"))
-
#ifndef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) DEFAULT_WORD_SWITCH_TAKES_ARG (STR)
#endif
diff --git a/gcc/cpptrad.c b/gcc/cpptrad.c
index 902ae493b6a..27cce2f6e28 100644
--- a/gcc/cpptrad.c
+++ b/gcc/cpptrad.c
@@ -438,6 +438,7 @@ scan_out_logical_line (pfile, macro)
unsigned int c, paren_depth = 0, quote;
enum ls lex_state = ls_none;
bool header_ok;
+ const uchar *start_of_input_line;
fmacro.buff = NULL;
@@ -448,6 +449,9 @@ scan_out_logical_line (pfile, macro)
RLIMIT (pfile->context) = pfile->buffer->rlimit;
pfile->out.cur = pfile->out.base;
pfile->out.first_line = pfile->line;
+ /* start_of_input_line is needed to make sure that directives really,
+ really start at the first character of the line. */
+ start_of_input_line = pfile->buffer->cur;
new_context:
context = pfile->context;
cur = CUR (context);
@@ -682,7 +686,7 @@ scan_out_logical_line (pfile, macro)
break;
case '#':
- if (out - 1 == pfile->out.base
+ if (cur - 1 == start_of_input_line
/* A '#' from a macro doesn't start a directive. */
&& !pfile->context->prev
&& !pfile->state.in_directive)
@@ -852,7 +856,7 @@ _cpp_replacement_text_len (macro)
{
size_t len;
- if (macro->fun_like)
+ if (macro->fun_like && (macro->paramc != 0))
{
const uchar *exp;
@@ -882,7 +886,7 @@ _cpp_copy_replacement_text (macro, dest)
const cpp_macro *macro;
uchar *dest;
{
- if (macro->fun_like)
+ if (macro->fun_like && (macro->paramc != 0))
{
const uchar *exp;
diff --git a/gcc/cse.c b/gcc/cse.c
index 1d606b60c13..1ba700538d1 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -1,6 +1,6 @@
/* Common subexpression elimination for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -38,6 +38,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "output.h"
#include "ggc.h"
#include "timevar.h"
+#include "target.h"
/* The basic idea of common subexpression elimination is to go
through the code, keeping a record of expressions that would
@@ -701,6 +702,9 @@ static void flush_hash_table PARAMS ((void));
static bool insn_live_p PARAMS ((rtx, int *));
static bool set_live_p PARAMS ((rtx, rtx, int *));
static bool dead_libcall_p PARAMS ((rtx, int *));
+static int cse_change_cc_mode PARAMS ((rtx *, void *));
+static void cse_change_cc_mode_insns PARAMS ((rtx, rtx, rtx));
+static enum machine_mode cse_cc_succs PARAMS ((basic_block, rtx, rtx, int));
/* Dump the expressions in the equivalence class indicated by CLASSP.
This function is used only for debugging. */
@@ -3850,6 +3854,23 @@ fold_rtx (x, insn)
|| (new_cost == old_cost && CONSTANT_P (XEXP (x, i))))
break;
+ /* It's not safe to substitute the operand of a conversion
+ operator with a constant, as the conversion's identity
+ depends upon the mode of it's operand. This optimization
+ is handled by the call to simplify_unary_operation. */
+ if (GET_RTX_CLASS (code) == '1'
+ && GET_MODE (replacements[j]) != mode_arg0
+ && (code == ZERO_EXTEND
+ || code == SIGN_EXTEND
+ || code == TRUNCATE
+ || code == FLOAT_TRUNCATE
+ || code == FLOAT_EXTEND
+ || code == FLOAT
+ || code == FIX
+ || code == UNSIGNED_FLOAT
+ || code == UNSIGNED_FIX))
+ continue;
+
if (validate_change (insn, &XEXP (x, i), replacements[j], 0))
break;
@@ -6844,7 +6865,15 @@ cse_set_around_loop (x, insn, loop_start)
abort ();
}
else
- emit_insn_after (move, p);
+ {
+ if (control_flow_insn_p (p))
+ /* p can cause a control flow transfer so it
+ is the last insn of a basic block. We can't
+ therefore use emit_insn_after. */
+ emit_insn_before (move, next_nonnote_insn (p));
+ else
+ emit_insn_after (move, p);
+ }
}
break;
}
@@ -7493,6 +7522,7 @@ count_reg_usage (x, counts, dest, incr)
int incr;
{
enum rtx_code code;
+ rtx note;
const char *fmt;
int i, j;
@@ -7550,16 +7580,13 @@ count_reg_usage (x, counts, dest, incr)
/* Things used in a REG_EQUAL note aren't dead since loop may try to
use them. */
- count_reg_usage (REG_NOTES (x), counts, NULL_RTX, incr);
+ note = find_reg_equal_equiv_note (x);
+ if (note)
+ count_reg_usage (XEXP (note, 0), counts, NULL_RTX, incr);
return;
- case EXPR_LIST:
case INSN_LIST:
- if (REG_NOTE_KIND (x) == REG_EQUAL
- || (REG_NOTE_KIND (x) != REG_NONNEG && GET_CODE (XEXP (x,0)) == USE))
- count_reg_usage (XEXP (x, 0), counts, NULL_RTX, incr);
- count_reg_usage (XEXP (x, 1), counts, NULL_RTX, incr);
- return;
+ abort ();
default:
break;
@@ -7768,3 +7795,369 @@ delete_trivially_dead_insns (insns, nreg)
timevar_pop (TV_DELETE_TRIVIALLY_DEAD);
return ndead;
}
+
+/* This function is called via for_each_rtx. The argument, NEWREG, is
+ a condition code register with the desired mode. If we are looking
+ at the same register in a different mode, replace it with
+ NEWREG. */
+
+static int
+cse_change_cc_mode (loc, data)
+ rtx *loc;
+ void *data;
+{
+ rtx newreg = (rtx) data;
+
+ if (*loc
+ && GET_CODE (*loc) == REG
+ && REGNO (*loc) == REGNO (newreg)
+ && GET_MODE (*loc) != GET_MODE (newreg))
+ {
+ *loc = newreg;
+ return -1;
+ }
+ return 0;
+}
+
+/* Change the mode of any reference to the register REGNO (NEWREG) to
+ GET_MODE (NEWREG), starting at START. Stop before END. Stop at
+ any instruction which modifies NEWREG. */
+
+static void
+cse_change_cc_mode_insns (start, end, newreg)
+ rtx start;
+ rtx end;
+ rtx newreg;
+{
+ rtx insn;
+
+ for (insn = start; insn != end; insn = NEXT_INSN (insn))
+ {
+ if (! INSN_P (insn))
+ continue;
+
+ if (reg_set_p (newreg, insn))
+ return;
+
+ for_each_rtx (&PATTERN (insn), cse_change_cc_mode, newreg);
+ for_each_rtx (&REG_NOTES (insn), cse_change_cc_mode, newreg);
+ }
+}
+
+/* BB is a basic block which finishes with CC_REG as a condition code
+ register which is set to CC_SRC. Look through the successors of BB
+ to find blocks which have a single predecessor (i.e., this one),
+ and look through those blocks for an assignment to CC_REG which is
+ equivalent to CC_SRC. CAN_CHANGE_MODE indicates whether we are
+ permitted to change the mode of CC_SRC to a compatible mode. This
+ returns VOIDmode if no equivalent assignments were found.
+ Otherwise it returns the mode which CC_SRC should wind up with.
+
+ The main complexity in this function is handling the mode issues.
+ We may have more than one duplicate which we can eliminate, and we
+ try to find a mode which will work for multiple duplicates. */
+
+static enum machine_mode
+cse_cc_succs (bb, cc_reg, cc_src, can_change_mode)
+ basic_block bb;
+ rtx cc_reg;
+ rtx cc_src;
+ int can_change_mode;
+{
+ bool found_equiv;
+ enum machine_mode mode;
+ unsigned int insn_count;
+ edge e;
+ rtx insns[2];
+ enum machine_mode modes[2];
+ rtx last_insns[2];
+ unsigned int i;
+ rtx newreg;
+
+ /* We expect to have two successors. Look at both before picking
+ the final mode for the comparison. If we have more successors
+ (i.e., some sort of table jump, although that seems unlikely),
+ then we require all beyond the first two to use the same
+ mode. */
+
+ found_equiv = false;
+ mode = GET_MODE (cc_src);
+ insn_count = 0;
+ for (e = bb->succ; e; e = e->succ_next)
+ {
+ rtx insn;
+ rtx end;
+
+ if (e->flags & EDGE_COMPLEX)
+ continue;
+
+ if (! e->dest->pred
+ || e->dest->pred->pred_next
+ || e->dest == EXIT_BLOCK_PTR)
+ continue;
+
+ end = NEXT_INSN (e->dest->end);
+ for (insn = e->dest->head; insn != end; insn = NEXT_INSN (insn))
+ {
+ rtx set;
+
+ if (! INSN_P (insn))
+ continue;
+
+ /* If CC_SRC is modified, we have to stop looking for
+ something which uses it. */
+ if (modified_in_p (cc_src, insn))
+ break;
+
+ /* Check whether INSN sets CC_REG to CC_SRC. */
+ set = single_set (insn);
+ if (set
+ && GET_CODE (SET_DEST (set)) == REG
+ && REGNO (SET_DEST (set)) == REGNO (cc_reg))
+ {
+ bool found;
+ enum machine_mode set_mode;
+ enum machine_mode comp_mode;
+
+ found = false;
+ set_mode = GET_MODE (SET_SRC (set));
+ comp_mode = set_mode;
+ if (rtx_equal_p (cc_src, SET_SRC (set)))
+ found = true;
+ else if (GET_CODE (cc_src) == COMPARE
+ && GET_CODE (SET_SRC (set)) == COMPARE
+ && mode != set_mode
+ && rtx_equal_p (XEXP (cc_src, 0),
+ XEXP (SET_SRC (set), 0))
+ && rtx_equal_p (XEXP (cc_src, 1),
+ XEXP (SET_SRC (set), 1)))
+
+ {
+ comp_mode = (*targetm.cc_modes_compatible) (mode, set_mode);
+ if (comp_mode != VOIDmode
+ && (can_change_mode || comp_mode == mode))
+ found = true;
+ }
+
+ if (found)
+ {
+ found_equiv = true;
+ if (insn_count < ARRAY_SIZE (insns))
+ {
+ insns[insn_count] = insn;
+ modes[insn_count] = set_mode;
+ last_insns[insn_count] = end;
+ ++insn_count;
+
+ if (mode != comp_mode)
+ {
+ if (! can_change_mode)
+ abort ();
+ mode = comp_mode;
+ PUT_MODE (cc_src, mode);
+ }
+ }
+ else
+ {
+ if (set_mode != mode)
+ {
+ /* We found a matching expression in the
+ wrong mode, but we don't have room to
+ store it in the array. Punt. This case
+ should be rare. */
+ break;
+ }
+ /* INSN sets CC_REG to a value equal to CC_SRC
+ with the right mode. We can simply delete
+ it. */
+ delete_insn (insn);
+ }
+
+ /* We found an instruction to delete. Keep looking,
+ in the hopes of finding a three-way jump. */
+ continue;
+ }
+
+ /* We found an instruction which sets the condition
+ code, so don't look any farther. */
+ break;
+ }
+
+ /* If INSN sets CC_REG in some other way, don't look any
+ farther. */
+ if (reg_set_p (cc_reg, insn))
+ break;
+ }
+
+ /* If we fell off the bottom of the block, we can keep looking
+ through successors. We pass CAN_CHANGE_MODE as false because
+ we aren't prepared to handle compatibility between the
+ further blocks and this block. */
+ if (insn == end)
+ {
+ enum machine_mode submode;
+
+ submode = cse_cc_succs (e->dest, cc_reg, cc_src, false);
+ if (submode != VOIDmode)
+ {
+ if (submode != mode)
+ abort ();
+ found_equiv = true;
+ can_change_mode = false;
+ }
+ }
+ }
+
+ if (! found_equiv)
+ return VOIDmode;
+
+ /* Now INSN_COUNT is the number of instructions we found which set
+ CC_REG to a value equivalent to CC_SRC. The instructions are in
+ INSNS. The modes used by those instructions are in MODES. */
+
+ newreg = NULL_RTX;
+ for (i = 0; i < insn_count; ++i)
+ {
+ if (modes[i] != mode)
+ {
+ /* We need to change the mode of CC_REG in INSNS[i] and
+ subsequent instructions. */
+ if (! newreg)
+ {
+ if (GET_MODE (cc_reg) == mode)
+ newreg = cc_reg;
+ else
+ newreg = gen_rtx_REG (mode, REGNO (cc_reg));
+ }
+ cse_change_cc_mode_insns (NEXT_INSN (insns[i]), last_insns[i],
+ newreg);
+ }
+
+ delete_insn (insns[i]);
+ }
+
+ return mode;
+}
+
+/* If we have a fixed condition code register (or two), walk through
+ the instructions and try to eliminate duplicate assignments. */
+
+void
+cse_condition_code_reg ()
+{
+ unsigned int cc_regno_1;
+ unsigned int cc_regno_2;
+ rtx cc_reg_1;
+ rtx cc_reg_2;
+ basic_block bb;
+
+ if (! (*targetm.fixed_condition_code_regs) (&cc_regno_1, &cc_regno_2))
+ return;
+
+ cc_reg_1 = gen_rtx_REG (CCmode, cc_regno_1);
+ if (cc_regno_2 != INVALID_REGNUM)
+ cc_reg_2 = gen_rtx_REG (CCmode, cc_regno_2);
+ else
+ cc_reg_2 = NULL_RTX;
+
+ FOR_EACH_BB (bb)
+ {
+ rtx last_insn;
+ rtx cc_reg;
+ rtx insn;
+ rtx cc_src_insn;
+ rtx cc_src;
+ enum machine_mode mode;
+ enum machine_mode orig_mode;
+
+ /* Look for blocks which end with a conditional jump based on a
+ condition code register. Then look for the instruction which
+ sets the condition code register. Then look through the
+ successor blocks for instructions which set the condition
+ code register to the same value. There are other possible
+ uses of the condition code register, but these are by far the
+ most common and the ones which we are most likely to be able
+ to optimize. */
+
+ last_insn = bb->end;
+ if (GET_CODE (last_insn) != JUMP_INSN)
+ continue;
+
+ if (reg_referenced_p (cc_reg_1, PATTERN (last_insn)))
+ cc_reg = cc_reg_1;
+ else if (cc_reg_2 && reg_referenced_p (cc_reg_2, PATTERN (last_insn)))
+ cc_reg = cc_reg_2;
+ else
+ continue;
+
+ cc_src_insn = NULL_RTX;
+ cc_src = NULL_RTX;
+ for (insn = PREV_INSN (last_insn);
+ insn && insn != PREV_INSN (bb->head);
+ insn = PREV_INSN (insn))
+ {
+ rtx set;
+
+ if (! INSN_P (insn))
+ continue;
+ set = single_set (insn);
+ if (set
+ && GET_CODE (SET_DEST (set)) == REG
+ && REGNO (SET_DEST (set)) == REGNO (cc_reg))
+ {
+ cc_src_insn = insn;
+ cc_src = SET_SRC (set);
+ break;
+ }
+ else if (reg_set_p (cc_reg, insn))
+ break;
+ }
+
+ if (! cc_src_insn)
+ continue;
+
+ if (modified_between_p (cc_src, cc_src_insn, NEXT_INSN (last_insn)))
+ continue;
+
+ /* Now CC_REG is a condition code register used for a
+ conditional jump at the end of the block, and CC_SRC, in
+ CC_SRC_INSN, is the value to which that condition code
+ register is set, and CC_SRC is still meaningful at the end of
+ the basic block. */
+
+ orig_mode = GET_MODE (cc_src);
+ mode = cse_cc_succs (bb, cc_reg, cc_src, true);
+ if (mode != VOIDmode)
+ {
+ if (mode != GET_MODE (cc_src))
+ abort ();
+ if (mode != orig_mode)
+ {
+ rtx newreg = gen_rtx_REG (mode, REGNO (cc_reg));
+
+ /* Change the mode of CC_REG in CC_SRC_INSN to
+ GET_MODE (NEWREG). */
+ for_each_rtx (&PATTERN (cc_src_insn), cse_change_cc_mode,
+ newreg);
+ for_each_rtx (&REG_NOTES (cc_src_insn), cse_change_cc_mode,
+ newreg);
+
+ /* Do the same in the following insns that use the
+ current value of CC_REG within BB. */
+ cse_change_cc_mode_insns (NEXT_INSN (cc_src_insn),
+ NEXT_INSN (last_insn),
+ newreg);
+ }
+ }
+ }
+}
+
+enum machine_mode
+default_cc_modes_compatible (m1, m2)
+ enum machine_mode m1;
+ enum machine_mode m2;
+{
+ if (m1 == m2)
+ return m1;
+ return VOIDmode;
+}
diff --git a/gcc/cselib.c b/gcc/cselib.c
index feffa6de6cf..d88c6386bf7 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -63,7 +63,7 @@ static void cselib_invalidate_regno PARAMS ((unsigned int,
static int cselib_mem_conflict_p PARAMS ((rtx, rtx));
static int cselib_invalidate_mem_1 PARAMS ((void **, void *));
static void cselib_invalidate_mem PARAMS ((rtx));
-static void cselib_invalidate_rtx PARAMS ((rtx, rtx, void *));
+static void cselib_invalidate_rtx_note_stores PARAMS ((rtx, rtx, void *));
static void cselib_record_set PARAMS ((rtx, cselib_val *,
cselib_val *));
static void cselib_record_sets PARAMS ((rtx));
@@ -83,6 +83,7 @@ static GTY((param_is (cselib_val))) htab_t hash_table;
/* This is a global so we don't have to pass this through every function.
It is used in new_elt_loc_list to set SETTING_INSN. */
static rtx cselib_current_insn;
+static bool cselib_current_insn_in_libcall;
/* Every new unknown value gets a unique number. */
static unsigned int next_unknown_value;
@@ -163,6 +164,7 @@ new_elt_loc_list (next, loc)
el->next = next;
el->loc = loc;
el->setting_insn = cselib_current_insn;
+ el->in_libcall = cselib_current_insn_in_libcall;
return el;
}
@@ -959,8 +961,11 @@ cselib_invalidate_regno (regno, mode)
pseudos, only REGNO is affected. For hard regs, we must take MODE
into account, and we must also invalidate lower register numbers
if they contain values that overlap REGNO. */
- if (regno < FIRST_PSEUDO_REGISTER && mode != VOIDmode)
+ if (regno < FIRST_PSEUDO_REGISTER)
{
+ if (mode == VOIDmode)
+ abort ();
+
if (regno < max_value_regs)
i = 0;
else
@@ -1138,15 +1143,11 @@ cselib_invalidate_mem (mem_rtx)
htab_traverse (hash_table, cselib_invalidate_mem_1, mem_rtx);
}
-/* Invalidate DEST, which is being assigned to or clobbered. The second and
- the third parameter exist so that this function can be passed to
- note_stores; they are ignored. */
+/* Invalidate DEST, which is being assigned to or clobbered. */
-static void
-cselib_invalidate_rtx (dest, ignore, data)
+void
+cselib_invalidate_rtx (dest)
rtx dest;
- rtx ignore ATTRIBUTE_UNUSED;
- void *data ATTRIBUTE_UNUSED;
{
while (GET_CODE (dest) == STRICT_LOW_PART || GET_CODE (dest) == SIGN_EXTRACT
|| GET_CODE (dest) == ZERO_EXTRACT || GET_CODE (dest) == SUBREG)
@@ -1162,7 +1163,18 @@ cselib_invalidate_rtx (dest, ignore, data)
invalidate the stack pointer correctly. Note that invalidating
the stack pointer is different from invalidating DEST. */
if (push_operand (dest, GET_MODE (dest)))
- cselib_invalidate_rtx (stack_pointer_rtx, NULL_RTX, NULL);
+ cselib_invalidate_rtx (stack_pointer_rtx);
+}
+
+/* A wrapper for cselib_invalidate_rtx to be called via note_stores. */
+
+static void
+cselib_invalidate_rtx_note_stores (dest, ignore, data)
+ rtx dest;
+ rtx ignore ATTRIBUTE_UNUSED;
+ void *data ATTRIBUTE_UNUSED;
+{
+ cselib_invalidate_rtx (dest);
}
/* Record the result of a SET instruction. DEST is being set; the source
@@ -1288,7 +1300,7 @@ cselib_record_sets (insn)
/* Invalidate all locations written by this insn. Note that the elts we
looked up in the previous loop aren't affected, just some of their
locations may go away. */
- note_stores (body, cselib_invalidate_rtx, NULL);
+ note_stores (body, cselib_invalidate_rtx_note_stores, NULL);
/* Now enter the equivalences in our tables. */
for (i = 0; i < n_sets; i++)
@@ -1308,6 +1320,10 @@ cselib_process_insn (insn)
int i;
rtx x;
+ if (find_reg_note (insn, REG_LIBCALL, NULL))
+ cselib_current_insn_in_libcall = true;
+ if (find_reg_note (insn, REG_RETVAL, NULL))
+ cselib_current_insn_in_libcall = false;
cselib_current_insn = insn;
/* Forget everything at a CODE_LABEL, a volatile asm, or a setjmp. */
@@ -1335,7 +1351,7 @@ cselib_process_insn (insn)
{
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (call_used_regs[i])
- cselib_invalidate_regno (i, VOIDmode);
+ cselib_invalidate_regno (i, reg_raw_mode[i]);
if (! CONST_OR_PURE_CALL_P (insn))
cselib_invalidate_mem (callmem);
@@ -1349,7 +1365,7 @@ cselib_process_insn (insn)
unlikely to help. */
for (x = REG_NOTES (insn); x; x = XEXP (x, 1))
if (REG_NOTE_KIND (x) == REG_INC)
- cselib_invalidate_rtx (XEXP (x, 0), NULL_RTX, NULL);
+ cselib_invalidate_rtx (XEXP (x, 0));
#endif
/* Look for any CLOBBERs in CALL_INSN_FUNCTION_USAGE, but only
@@ -1357,7 +1373,7 @@ cselib_process_insn (insn)
if (GET_CODE (insn) == CALL_INSN)
for (x = CALL_INSN_FUNCTION_USAGE (insn); x; x = XEXP (x, 1))
if (GET_CODE (XEXP (x, 0)) == CLOBBER)
- cselib_invalidate_rtx (XEXP (XEXP (x, 0), 0), NULL_RTX, NULL);
+ cselib_invalidate_rtx (XEXP (XEXP (x, 0), 0));
cselib_current_insn = 0;
@@ -1407,6 +1423,7 @@ cselib_init ()
hash_table = htab_create_ggc (31, get_value_hash, entry_and_rtx_equal_p,
NULL);
clear_table (1);
+ cselib_current_insn_in_libcall = false;
}
/* Called when the current user is done with cselib. */
diff --git a/gcc/cselib.h b/gcc/cselib.h
index 8cb2e6b41e3..877d80401dc 100644
--- a/gcc/cselib.h
+++ b/gcc/cselib.h
@@ -49,6 +49,8 @@ struct elt_loc_list GTY(())
rtx loc;
/* The insn that made the equivalence. */
rtx setting_insn;
+ /* True when setting insn is inside libcall. */
+ bool in_libcall;
};
/* A list of cselib_val structures. */
@@ -66,3 +68,4 @@ extern void cselib_process_insn PARAMS ((rtx));
extern int rtx_equal_for_cselib_p PARAMS ((rtx, rtx));
extern int references_value_p PARAMS ((rtx, int));
extern rtx cselib_subst_to_values PARAMS ((rtx));
+extern void cselib_invalidate_rtx PARAMS ((rtx));
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 60ca66479f2..460921418d1 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -524,7 +524,7 @@ dbxout_typedefs (syms)
tree type = TREE_TYPE (syms);
if (TYPE_NAME (type)
&& TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
- && COMPLETE_TYPE_P (type)
+ && COMPLETE_OR_VOID_TYPE_P (type)
&& ! TREE_ASM_WRITTEN (TYPE_NAME (type)))
dbxout_symbol (TYPE_NAME (type), 0);
}
@@ -796,6 +796,11 @@ dbxout_type_fields (type)
field that we can support. */
for (tem = TYPE_FIELDS (type); tem; tem = TREE_CHAIN (tem))
{
+
+ /* If on of the nodes is an error_mark or its type is then return early. */
+ if (tem == error_mark_node || TREE_TYPE (tem) == error_mark_node)
+ return;
+
/* Omit here local type decls until we know how to support them. */
if (TREE_CODE (tem) == TYPE_DECL
/* Omit fields whose position or size are variable or too large to
@@ -1621,9 +1626,7 @@ dbxout_type (type, full)
* BITS_PER_UNIT);
putc (',', asmfile);
CHARS (1);
- print_wide_int (tree_low_cst (DECL_SIZE
- (TYPE_NAME
- (BINFO_TYPE (child))),
+ print_wide_int (tree_low_cst (TYPE_SIZE (BINFO_TYPE (child)),
0)
* BITS_PER_UNIT);
putc (';', asmfile);
diff --git a/gcc/df.c b/gcc/df.c
index 4228e0d6ebd..fb434ff588b 100644
--- a/gcc/df.c
+++ b/gcc/df.c
@@ -945,8 +945,8 @@ df_def_record_1 (df, x, bb, insn)
#ifdef CLASS_CANNOT_CHANGE_MODE
if (GET_CODE (dst) == SUBREG
- && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (dst),
- GET_MODE (SUBREG_REG (dst))))
+ && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SUBREG_REG (dst)),
+ GET_MODE (dst)))
flags |= DF_REF_MODE_CHANGE;
#endif
@@ -966,8 +966,8 @@ df_def_record_1 (df, x, bb, insn)
}
#ifdef CLASS_CANNOT_CHANGE_MODE
if (GET_CODE (dst) == SUBREG
- && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (dst),
- GET_MODE (SUBREG_REG (dst))))
+ && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SUBREG_REG (dst)),
+ GET_MODE (dst)))
flags |= DF_REF_MODE_CHANGE;
#endif
loc = &XEXP (dst, 0);
@@ -1037,6 +1037,7 @@ df_uses_record (df, loc, ref_type, bb, insn, flags)
case CONST_DOUBLE:
case CONST_VECTOR:
case PC:
+ case CC0:
case ADDR_VEC:
case ADDR_DIFF_VEC:
return;
@@ -1102,9 +1103,10 @@ df_uses_record (df, loc, ref_type, bb, insn, flags)
}
/* ... FALLTHRU ... */
case REG:
- case PC:
case PARALLEL:
- break;
+ case PC:
+ case CC0:
+ break;
case MEM:
df_uses_record (df, &XEXP (dst, 0),
DF_REF_REG_MEM_STORE,
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c
index b6794b80ff8..a7f2d2c368e 100644
--- a/gcc/diagnostic.c
+++ b/gcc/diagnostic.c
@@ -66,6 +66,7 @@ static void output_long_octal PARAMS ((output_buffer *, unsigned long int));
static void output_hexadecimal PARAMS ((output_buffer *, unsigned int));
static void output_long_hexadecimal PARAMS ((output_buffer *,
unsigned long int));
+static void output_pointer PARAMS ((output_buffer *, void *));
static void output_append_r PARAMS ((output_buffer *, const char *, int));
static void wrap_text PARAMS ((output_buffer *, const char *, const char *));
static void maybe_wrap_text PARAMS ((output_buffer *, const char *,
@@ -360,6 +361,14 @@ output_long_hexadecimal (buffer, i)
output_formatted_scalar (buffer, "%lx", i);
}
+static void
+output_pointer (buffer, p)
+ output_buffer *buffer;
+ void *p;
+{
+ output_formatted_scalar (buffer, HOST_PTR_PRINTF, p);
+}
+
/* Append to BUFFER a string specified by its STARTING character
and LENGTH. */
static void
@@ -494,6 +503,7 @@ output_buffer_to_stream (buffer)
%ld, %li, %lo, %lu, %lx: long versions of the above.
%c: character.
%s: string.
+ %p: pointer.
%%: `%'.
%*.s: a substring the length of which is specified by an integer.
%H: location_t. */
@@ -555,6 +565,10 @@ output_format (buffer, text)
output_add_string (buffer, va_arg (*text->args_ptr, const char *));
break;
+ case 'p':
+ output_pointer (buffer, va_arg (*text->args_ptr, void *));
+ break;
+
case 'u':
if (long_integer)
output_long_unsigned_decimal
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index aad9a58cbed..e0888916b6e 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -322,9 +322,8 @@ extern void output_clear_message_text PARAMS ((output_buffer *));
extern void output_printf PARAMS ((output_buffer *, const char *,
...)) ATTRIBUTE_PRINTF_2;
extern void output_verbatim PARAMS ((output_buffer *, const char *,
- ...)) ATTRIBUTE_PRINTF_2;
-extern void verbatim PARAMS ((const char *, ...))
- ATTRIBUTE_PRINTF_1;
+ ...));
+extern void verbatim PARAMS ((const char *, ...));
extern char *file_name_as_prefix PARAMS ((const char *));
extern void inform PARAMS ((const char *, ...));
diff --git a/gcc/doc/bugreport.texi b/gcc/doc/bugreport.texi
index b6e5ef1e752..d9613ef6d1c 100644
--- a/gcc/doc/bugreport.texi
+++ b/gcc/doc/bugreport.texi
@@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -14,29 +14,14 @@ When you encounter a problem, the first thing to do is to see if it is
already known. @xref{Trouble}. If it isn't known, then you should
report the problem.
-Reporting a bug may help you by bringing a solution to your problem, or
-it may not. (If it does not, look in the service directory; see
-@ref{Service}.) In any case, the principal function of a bug report is
-to help the entire community by making the next version of GCC work
-better. Bug reports are your contribution to the maintenance of GCC@.
-
-Since the maintainers are very overloaded, we cannot respond to every
-bug report. However, if the bug has not been fixed, we are likely to
-send you a patch and ask you to tell us whether it works.
-
-In order for a bug report to serve its purpose, you must include the
-information that makes for fixing the bug.
-
@menu
* Criteria: Bug Criteria. Have you really found a bug?
-* Where: Bug Lists. Where to send your bug report.
* Reporting: Bug Reporting. How to report a bug effectively.
-* GNATS: gccbug. You can use a bug reporting tool.
* Known: Trouble. Known problems.
* Help: Service. Where to ask for help.
@end menu
-@node Bug Criteria,Bug Lists,,Bugs
+@node Bug Criteria,Bug Reporting,,Bugs
@section Have You Found a Bug?
@cindex bug criteria
@@ -99,292 +84,11 @@ If you are an experienced user of one of the languages GCC supports, your
suggestions for improvement of GCC are welcome in any case.
@end itemize
-@node Bug Lists,Bug Reporting,Bug Criteria,Bugs
-@section Where to Report Bugs
-@cindex bug report mailing lists
-@kindex gcc-bugs@@gcc.gnu.org or bug-gcc@@gnu.org
-Send bug reports for the GNU Compiler Collection to
-@email{gcc-bugs@@gcc.gnu.org}. In accordance with the GNU-wide
-convention, in which bug reports for tool ``foo'' are sent
-to @samp{bug-foo@@gnu.org}, the address @email{bug-gcc@@gnu.org}
-may also be used; it will forward to the address given above.
-
-Please read @uref{http://gcc.gnu.org/bugs.html} for additional and/or
-more up-to-date bug reporting instructions before you post a bug report.
-
-@node Bug Reporting,gccbug,Bug Lists,Bugs
-@section How to Report Bugs
+@node Bug Reporting,,Bug Criteria,Bugs
+@section How and where to Report Bugs
@cindex compiler bugs, reporting
-The fundamental principle of reporting bugs usefully is this:
-@strong{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:
-
-@itemize @bullet
-@item
-The version of GCC@. You can get this by running it with the
-@option{-v} option.
-
-Without this, we won't know whether there is any point in looking for
-the bug in the current version of GCC@.
-
-@item
-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 (@file{cc1}), send the
-preprocessor output generated by adding @option{-save-temps} to the
-compilation command (@pxref{Debugging Options}). When you do this, use
-the same @option{-I}, @option{-D} or @option{-U} options that you used in
-actual compilation. Then send the @var{input}.i or @var{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.
-
-@item
-The command arguments you gave GCC to compile that example
-and observe the bug. For example, did you use @option{-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.
-
-@item
-The type of machine you are using, and the operating system name and
-version number.
-
-@item
-The operands you gave to the @code{configure} command when you installed
-the compiler.
-
-@item
-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.
-
-@item
-Details of any other deviations from the standard procedure for installing
-GCC@.
-
-@item
-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 @emph{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 @i{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.
-
-@item
-If you send examples of assembler code output from GCC,
-please use @option{-g} when you make them. The debugging information
-includes source line numbers which are essential for correlating the
-output with the input.
-
-@item
-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.
-
-@item
-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.
-
-@cindex backtrace for bug reports
-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.
-
-@findex debug_rtx
-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 @code{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 @code{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.
-@end itemize
-
-Here are some things that are not necessary:
-
-@itemize @bullet
-@item
-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 @emph{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.
-
-@item
-In particular, some people insert conditionals @samp{#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.
-
-@item
-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 @uref{http://gcc.gnu.org/contribute.html}
-for guidelines on how to make it easy for us to
-understand and install your patches.
-
-@item
-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.
-
-@item
-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.
-@end itemize
-
-@node gccbug,, Bug Reporting, Bugs
-@section The gccbug script
-@cindex 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 @code{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
-@code{gcc} is installed.
-
-The gccbug script is derived from send-pr, @pxref{using
-send-pr,,Creating new Problem Reports,send-pr,Reporting Problems}. 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 @uref{http://gcc.gnu.org/gnats.html}.
+Bugs should be reported to our bug database. Please refer to
+@uref{http://gcc.gnu.org/bugs.html} for up-to-date instructions how to
+submit bug reports. Copies of this file in HTML (@file{bugs.html}) and
+plain text (@file{BUGS}) are also part of GCC releases.
diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi
index 8f5a5bb74d2..d60712d2caa 100644
--- a/gcc/doc/c-tree.texi
+++ b/gcc/doc/c-tree.texi
@@ -1,4 +1,4 @@
-@c Copyright (c) 1999, 2000, 2001 Free Software Foundation, Inc.
+@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -645,7 +645,7 @@ the unqualified name of the name of the namespace (@pxref{Identifiers}).
The name of the global namespace is @samp{::}, even though in C++ the
global namespace is unnamed. However, you should use comparison with
@code{global_namespace}, rather than @code{DECL_NAME} to determine
-whether or not a namespaces is the global one. An unnamed namespace
+whether or not a namespace is the global one. An unnamed namespace
will have a @code{DECL_NAME} equal to @code{anonymous_namespace_name}.
Within a single translation unit, all unnamed namespaces will have the
same name.
@@ -790,7 +790,7 @@ This predicate holds whenever its argument represents a class-type with
default constructor.
@item CLASSTYPE_HAS_MUTABLE
-@item TYPE_HAS_MUTABLE_P
+@itemx TYPE_HAS_MUTABLE_P
These predicates hold for a class-type having a mutable data member.
@item CLASSTYPE_NON_POD_P
@@ -1547,10 +1547,10 @@ This is used for branch prediction.
Used to represent a C++ @code{catch} block. The @code{HANDLER_TYPE}
is the type of exception that will be caught by this handler; it is
-equal (by pointer equality) to @code{CATCH_ALL_TYPE} if this handler
-is for all types. @code{HANDLER_PARMS} is the @code{DECL_STMT} for
-the catch parameter, and @code{HANDLER_BODY} is the
-@code{COMPOUND_STMT} for the block itself.
+equal (by pointer equality) to @code{NULL} if this handler is for all
+types. @code{HANDLER_PARMS} is the @code{DECL_STMT} for the catch
+parameter, and @code{HANDLER_BODY} is the @code{COMPOUND_STMT} for the
+block itself.
@item IF_STMT
@@ -1974,7 +1974,7 @@ real part and the second operand is the imaginary part.
These nodes represent the conjugate of their operand.
@item REALPART_EXPR
-@item IMAGPART_EXPR
+@itemx IMAGPART_EXPR
These nodes represent respectively the real and the imaginary parts
of complex numbers (their sole argument).
diff --git a/gcc/doc/collect2.texi b/gcc/doc/collect2.texi
index 2cd1d3c0d5a..c3498c5317c 100644
--- a/gcc/doc/collect2.texi
+++ b/gcc/doc/collect2.texi
@@ -5,7 +5,7 @@
@node Collect2
@chapter @code{collect2}
-GNU CC uses a utility called @code{collect2} on nearly all systems to arrange
+GCC uses a utility called @code{collect2} on nearly all systems to arrange
to call various initialization functions at start time.
The program @code{collect2} works by linking the program once and
@@ -52,7 +52,7 @@ if specified.
@end itemize
``The compiler's search directories'' means all the directories where
-@code{gcc} searches for passes of the compiler. This includes
+@command{gcc} searches for passes of the compiler. This includes
directories that you specify with @option{-B}.
Cross-compilers search a little differently:
diff --git a/gcc/doc/contrib.texi b/gcc/doc/contrib.texi
index 99f3b308b3b..fb8b8a3d6db 100644
--- a/gcc/doc/contrib.texi
+++ b/gcc/doc/contrib.texi
@@ -1,5 +1,5 @@
-@c Copyright (C) 1988,1989,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1988,1989,1992,1993,1994,1995,1996,1997,1998,1999,2000,
+@c 2001,2002,2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -29,7 +29,10 @@ James van Artsdalen wrote the code that makes efficient use of
the Intel 80387 register stack.
@item
-Alasdair Baird for various bugfixes.
+Alasdair Baird for various bug fixes.
+
+@item
+Giovanni Bajo for analyzing lots of complicated C++ problem reports.
@item
Gerald Baumgartner added the signature extension to the C++ front end.
@@ -41,7 +44,14 @@ Godmar Back for his Java improvements and encouragement.
Scott Bambrough for help porting the Java compiler.
@item
-Jon Beniston for his Win32 port of Java.
+Wolfgang Bangerth for processing tons of bug reports.
+
+@item
+Jon Beniston for his Windows port of Java.
+
+@item
+Daniel Berlin for better DWARF2 support, faster/better optimizations,
+improved alias analysis, plus migrating us to Bugzilla.
@item
Geoff Berry for his Java object serialization work and various patches.
@@ -51,6 +61,9 @@ Eric Blake for helping to make GCJ and libgcj conform to the
specifications.
@item
+Segher Boessenkool for various fixes.
+
+@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.
@@ -59,6 +72,9 @@ Neil Booth for work on cpplib, lang hooks, debug hooks and other
miscellaneous clean-ups.
@item
+Eric Botcazou for fixing middle- and backend bugs left and right.
+
+@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
@@ -105,7 +121,10 @@ 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
+Stephane Carrez for 68HC11 and 68HC12 ports.
+
+@item
+Steve Chamberlain for support for the Renesas SH and H8 processors
and the PicoJava processor, and for GCJ config fixes.
@item
@@ -124,7 +143,7 @@ Eric Christopher for his Java porting help and clean-ups.
Branko Cibej for more warning contributions.
@item
-The @uref{http://www.classpath.org,,GNU Classpath project}
+The @uref{http://www.gnu.org/software/classpath/,,GNU Classpath project}
for all of their merged runtime code.
@item
@@ -158,6 +177,10 @@ Russell Davidson for fstream and stringstream fixes in libstdc++.
Mo DeJong for GCJ and libgcj bug fixes.
@item
+DJ Delorie for the DJGPP port, build and libiberty maintenance, and
+various 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
@@ -172,12 +195,16 @@ maintaining complex<>, sanity checking and disbursement, configuration
architecture, libio maintenance, and early math work.
@item
+Zdenek Dvorak for a new loop unroller and various fixes.
+
+@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.
+with the RS6000/PowerPC port, help cleaning up Haifa loop changes,
+doing the entire AIX port of libstdc++ with his bare hands, and for
+ensuring GCC properly keeps working on AIX.
@item
Kevin Ediger for the floating point formatting of num_put::do_put in
@@ -186,7 +213,7 @@ 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.
+iostream bug fix, and work on shared library symbol versioning.
@item
Paul Eggert for random hacking all over GCC@.
@@ -199,6 +226,9 @@ configuration support for locales and fstream-related fixes.
Vadim Egorov for libstdc++ fixes in strings, streambufs, and iostreams.
@item
+Christian Ehrhardt for dealing with bug reports.
+
+@item
Ben Elliston for his work to move the Objective-C runtime into its
own subdirectory and for his work on autoconf.
@@ -210,17 +240,22 @@ Doug Evans for much of the global optimization framework, arc, m32r,
and SPARC work.
@item
+Christopher Faylor for his work on the Cygwin port and for caring and
+feeding the gcc.gnu.org box and saving its users tons of spam.
+
+@item
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.
+Peter Gerwinski for various bug fixes and the Pascal front end.
@item
-Kaveh Ghazi for his direction via the steering committee and
-amazing work to make @samp{-W -Wall} useful.
+Kaveh Ghazi for his direction via the steering committee,
+amazing work to make @samp{-W -Wall} useful, and continuously testing
+GCC on a plethora of platforms.
@item
John Gilmore for a donation to the FSF earmarked improving GNU Java.
@@ -251,7 +286,7 @@ Intel 386 and 860 support.
@item
Bruno Haible for improvements in the runtime overhead for EH, new
-warnings and assorted bugfixes.
+warnings and assorted bug fixes.
@item
Andrew Haley for his amazing Java compiler and library efforts.
@@ -265,21 +300,31 @@ the c30/c40 ports functional. Lots of loop and unroll improvements and
fixes.
@item
+Dara Hazeghi for wading through myriads of target-specific bug reports.
+
+@item
Kate Hedstrom for staking the g77 folks with an initial testsuite.
@item
-Richard Henderson for his ongoing SPARC, alpha, and ia32 work, loop
+Richard Henderson for his ongoing SPARC, alpha, ia32, and ia64 work, loop
opts, and generally fixing lots of old problems we've ignored for
years, flow rewrite and lots of further stuff, including reviewing
tons of patches.
@item
+Aldy Hernandez for working on the PowerPC port, SIMD support, and
+various fixes.
+
+@item
Nobuyuki Hikichi of Software Research Associates, Tokyo, contributed
the support for the Sony NEWS machine.
@item
+Kazu Hirata for caring and feeding the Renesas H8/300 port and various fixes.
+
+@item
Manfred Hollstein for his ongoing work to keep the m88k alive, lots
-of testing an bugfixing, particularly of our configury code.
+of testing and bug fixing, particularly of our configury code.
@item
Steve Holmgren for MachTen patches.
@@ -288,7 +333,10 @@ Steve Holmgren for MachTen patches.
Jan Hubicka for his x86 port improvements.
@item
-Christian Iseli for various bugfixes.
+Falk Hueffner for working on C and optimization bug reports.
+
+@item
+Christian Iseli for various bug fixes.
@item
Kamil Iskra for general m68k hacking.
@@ -297,7 +345,7 @@ Kamil Iskra for general m68k hacking.
Lee Iverson for random fixes and MIPS testing.
@item
-Andreas Jaeger for various fixes to the MIPS port
+Andreas Jaeger for testing and benchmarking of GCC and various bug fixes.
@item
Jakub Jelinek for his SPARC work and sibling call optimizations as well
@@ -305,11 +353,11 @@ 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.
+Janis Johnson for ia64 testing and fixes, her quality improvement
+sidetracks, and web page maintenance.
@item
-J. Kean Johnston for OpenServer support.
+Kean Johnston for SCO OpenServer support and various fixes.
@item
Tim Josling for the sample language treelang based originally on Richard
@@ -325,7 +373,7 @@ Klaus Kaempf for his ongoing work to make alpha-vms a viable target.
David Kashtan of SRI adapted GCC to VMS@.
@item
-Ryszard Kabatek for many, many libstdc++ bugfixes and optimizations of
+Ryszard Kabatek for many, many libstdc++ bug fixes and optimizations of
strings, especially member functions, and for auto_ptr fixes.
@item
@@ -363,7 +411,7 @@ Robin Kirkham for cpu32 support.
Mark Klein for PA improvements.
@item
-Thomas Koenig for various bugfixes.
+Thomas Koenig for various bug fixes.
@item
Bruce Korb for the new and improved fixincludes code.
@@ -389,7 +437,8 @@ with analysis and improvements of x86 performance.
Ted Lemon wrote parts of the RTL reader and printer.
@item
-Kriang Lerdsuwanakij for improvements to demangler and various c++ fixes.
+Kriang Lerdsuwanakij for C++ improvements including template as template
+parameter support, and many C++ fixes.
@item
Warren Levy for tremendous work on libgcj (Java Runtime Library) and
@@ -406,7 +455,7 @@ patches.
Robert Lipe for OpenServer support, new testsuites, testing, etc.
@item
-Weiwen Liu for testing and various bugfixes.
+Weiwen Liu for testing and various bug fixes.
@item
Dave Love for his ongoing work with the Fortran front end and
@@ -450,7 +499,7 @@ for Java test code.
Bryce McKinlay for numerous GCJ and libgcj fixes and improvements.
@item
-Adam Megacz for his work on the Win32 port of GCJ.
+Adam Megacz for his work on the Windows port of GCJ.
@item
Michael Meissner for LRS framework, ia32, m32r, v850, m88k, MIPS,
@@ -469,7 +518,7 @@ developers.
Gary Miller ported GCC to Charles River Data Systems machines.
@item
-Alfred Minarik for libstdc++ string and ios bugfixes, and turning the
+Alfred Minarik for libstdc++ string and ios bug fixes, and turning the
entire libstdc++ testsuite namespace-compatible.
@item
@@ -527,6 +576,9 @@ MT-safe string and shadow headers.
Felix Natter for documentation on porting libstdc++.
@item
+Nathanael Nerode for cleaning up the configuration/build process.
+
+@item
NeXT, Inc.@: donated the front end that supports the Objective-C
language.
@@ -538,6 +590,10 @@ engine setup, various documentation fixes and other small fixes.
Geoff Noer for this work on getting cygwin native builds working.
@item
+Diego Novillo for his SPEC performance tracking web pages and assorted
+fixes in the middle end and various back ends.
+
+@item
David O'Brien for the FreeBSD/alpha, FreeBSD/AMD x86-64, FreeBSD/ARM,
FreeBSD/PowerPC, and FreeBSD/SPARC64 ports and related infrastructure
improvements.
@@ -555,6 +611,9 @@ ABI support, improvements to dejagnu's MIPS support, Java configuration
clean-ups and porting work, etc.
@item
+Hartmut Penner for work on the s390 port.
+
+@item
Paul Petersen wrote the machine description for the Alliant FX/8.
@item
@@ -570,6 +629,9 @@ out lots of problems we need to solve, maintenance of the web pages, and
taking care of documentation maintenance in general.
@item
+Andrew Pinski for processing bug reports by the dozen.
+
+@item
Ovidiu Predescu for his work on the Objective-C front end and runtime
libraries.
@@ -585,13 +647,17 @@ David Reese of Sun Microsystems contributed to the Solaris on PowerPC
port.
@item
+Volker Reichelt for keeping up with the problem reports.
+
+@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.
+threading documentation, and solutions to really tricky I/O problems,
+as well as keeping GCC properly working on FreeBSD and continuous testing.
@item
Craig Rodrigues for processing tons of bug reports.
@@ -616,6 +682,10 @@ Juha Sarlin for improvements to the H8 code generator.
Greg Satz assisted in making GCC work on HP-UX for the 9000 series 300.
@item
+Roger Sayle for improvements to constant folding and GCC's RTL optimizers
+as well as for fixing numerous bugs.
+
+@item
Bradley Schatz for his work on the GCJ FAQ.
@item
@@ -667,6 +737,9 @@ Andrey Slepuhin for assorted AIX hacking.
Christopher Smith did the port for Convex machines.
@item
+Danny Smith for his major efforts on the Mingw (and Cygwin) ports.
+
+@item
Randy Smith finished the Sun FPA support.
@item
@@ -716,7 +789,7 @@ Holger Teutsch provided the support for the Clipper CPU.
Gary Thomas for his ongoing work to make the PPC work for GNU/Linux.
@item
-Philipp Thomas for random bugfixes throughout the compiler
+Philipp Thomas for random bug fixes throughout the compiler
@item
Jason Thorpe for thread support in libstdc++ on NetBSD.
@@ -726,7 +799,7 @@ 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,
+Michael Tiemann for random bug fixes, the first instruction scheduler,
initial C++ support, function integration, NS32k, SPARC and M88k
machine description work, delay slot scheduling.
@@ -767,7 +840,7 @@ Dean Wakerley for converting the install documentation from HTML to texinfo
in time for GCC 3.0.
@item
-Krister Walfridsson for random bugfixes.
+Krister Walfridsson for random bug fixes.
@item
Stephen M. Webb for time and effort on making libstdc++ shadow files
@@ -780,7 +853,10 @@ related infrastructure improvements to help x86 code generation,
value range propagation and other work, WE32k port.
@item
-Zack Weinberg for major work on cpplib and various other bugfixes.
+Ulrich Weigand for work on the s390 port.
+
+@item
+Zack Weinberg for major work on cpplib and various other bug fixes.
@item
Matt Welsh for help with Linux Threads support in GCJ.
@@ -821,9 +897,9 @@ Gilles Zunino for help porting Java to Irix.
@end itemize
-
-We'd also like to thank the folks who have contributed time and energy in
-testing GCC:
+In addition to the above, all of which also contributed time and energy in
+testing GCC, we would like to thank the following for their contributions
+to testing:
@itemize @bullet
@item
@@ -860,12 +936,6 @@ Frank Braun
Rodney Brown
@item
-Joe Buck
-
-@item
-Craig Burley
-
-@item
Sidney Cadot
@item
@@ -875,12 +945,6 @@ Bradford Castalia
Ralph Doncaster
@item
-Ulrich Drepper
-
-@item
-David Edelsohn
-
-@item
Richard Emberson
@item
@@ -905,9 +969,6 @@ Charles-Antoine Gauthier
Yung Shing Gene
@item
-Kaveh Ghazi
-
-@item
David Gilbert
@item
@@ -932,21 +993,9 @@ Amancio Hasty
Bryan W. Headley
@item
-Kate Hedstrom
-
-@item
-Richard Henderson
-
-@item
Kevin B. Hendricks
@item
-Manfred Hollstein
-
-@item
-Kamil Iskra
-
-@item
Joep Jansen
@item
@@ -962,30 +1011,15 @@ Tobias Kuipers
Anand Krishnaswamy
@item
-Jeff Law
-
-@item
-Robert Lipe
-
-@item
llewelly
@item
Damon Love
@item
-Dave Love
-
-@item
-H.J. Lu
-
-@item
Brad Lucier
@item
-Mumit Khan
-
-@item
Matthias Klose
@item
@@ -995,12 +1029,6 @@ Martin Knoblauch
Jesse Macnish
@item
-David Miller
-
-@item
-Toon Moene
-
-@item
Stefan Morrell
@item
@@ -1013,9 +1041,6 @@ Matthias Mueller
Pekka Nikander
@item
-Alexandre Oliva
-
-@item
Jon Olson
@item
@@ -1037,9 +1062,6 @@ Paul Reilly
Tom Reilly
@item
-Loren J. Rittle
-
-@item
Torsten Rueger
@item
@@ -1049,24 +1071,15 @@ Danny Sadinoff
Marc Schifer
@item
-Peter Schmid
-
-@item
David Schuler
@item
Vin Shelton
@item
-Franz Sirl
-
-@item
Tim Souder
@item
-Mike Stump
-
-@item
Adam Sulmicki
@item
@@ -1076,9 +1089,6 @@ George Talbot
Gregory Warnes
@item
-Carlo Wood
-
-@item
David E. Young
@item
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index bc237c7729d..5d3378588f7 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -6,10 +6,10 @@
@c @cropmarks
@c @finalout
-@macro copyrightnotice
+@copying
@c man begin COPYRIGHT
Copyright @copyright{} 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 1999, 2000, 2001, 2002
+1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
@@ -23,9 +23,7 @@ section entitled ``GNU Free Documentation License''.
man page gfdl(7).
@c man end
@end ignore
-@end macro
-@macro covertexts
@c man begin COPYRIGHT
This manual contains no Invariant Sections. The Front-Cover Texts are
(a) (see below), and the Back-Cover Texts are (b) (see below).
@@ -40,7 +38,7 @@ This manual contains no Invariant Sections. The Front-Cover Texts are
software. Copies published by the Free Software Foundation raise
funds for GNU development.
@c man end
-@end macro
+@end copying
@macro gcctabopt{body}
@code{\body\}
@@ -70,8 +68,7 @@ This manual contains no Invariant Sections. The Front-Cover Texts are
@c There is a fill at the bottom of the page, so we need a filll to
@c override it.
@vskip 0pt plus 1filll
-@copyrightnotice{}
-@covertexts{}
+@insertcopying
@end titlepage
@contents
@page
@@ -180,8 +177,7 @@ Obsolete Features
@end detailmenu
@end menu
-@copyrightnotice{}
-@covertexts{}
+@insertcopying
@end ifnottex
@node Overview
@@ -381,8 +377,9 @@ comment.
@end group
@end example
-Comments are not recognized within string literals. @t{@w{"/* blah
-*/"}} is the string constant @samp{@w{/* blah */}}, not an empty string.
+Comments are not recognized within string literals.
+@t{@w{"/* blah */"}} is the string constant @samp{@w{/* blah */}}, not
+an empty string.
Line comments are not in the 1989 edition of the C standard, but they
are recognized by GCC as an extension. In C++ and in the 1999 edition
@@ -1735,7 +1732,7 @@ predefined macros, but you cannot undefine them.
@subsection Standard Predefined Macros
@cindex standard predefined macros.
-The standard predefined macros are specified by the C and/or C++
+The standard predefined macros are specified by the relevant
language standards, so they are available with all compilers that
implement those standards. Older compilers may not provide all of
them. Their names all start with double underscores.
@@ -1854,6 +1851,15 @@ of the 1998 C++ standard will define this macro to @code{199711L}. The
GNU C++ compiler is not yet fully conforming, so it uses @code{1}
instead. We hope to complete our implementation in the near future.
+@item __OBJC__
+This macro is defined, with value 1, when the Objective-C compiler is in
+use. You can use @code{__OBJC__} to test whether a header is compiled
+by a C compiler or a Objective-C compiler.
+
+@item __ASSEMBLER__
+This macro is defined with value 1 when preprocessing assembly
+language.
+
@end table
@node Common Predefined Macros
@@ -1915,11 +1921,6 @@ calculate a single number, then compare that against a threshold:
@noindent
Many people find this form easier to understand.
-@item __OBJC__
-This macro is defined, with value 1, when the Objective-C compiler is in
-use. You can use @code{__OBJC__} to test whether a header is compiled
-by a C compiler or a Objective-C compiler.
-
@item __GNUG__
The GNU C++ compiler defines this. Testing it is equivalent to
testing @code{@w{(__GNUC__ && __cplusplus)}}.
@@ -1944,6 +1945,9 @@ incremented on every @samp{#include} directive and decremented at the
end of every included file. It starts out at 0, it's value within the
base file specified on the command line.
+@item __ELF__
+This macro is defined if the target uses the ELF object format.
+
@item __VERSION__
This macro expands to a string constant which describes the version of
the compiler in use. You should not rely on its contents having any
@@ -2035,6 +2039,12 @@ This macro is defined, with value 1, if (and only if) the NeXT runtime
(as in @option{-fnext-runtime}) is in use for Objective-C. If the GNU
runtime is used, this macro is not defined, so that you can use this
macro to determine which runtime (NeXT or GNU) is being used.
+
+@item __LP64__
+@itemx _LP64
+These macros are defined, with value 1, if (and only if) the compilation
+is for a target where @code{long int} and pointer both use 64-bits and
+@code{int} uses 32-bit.
@end table
@node System-specific Predefined Macros
@@ -3779,7 +3789,7 @@ The standard requires at least 15 levels.
The C standard mandates this be at least 63. CPP is limited only by
available memory.
-@item Levels of parenthesised expressions within a full expression.
+@item Levels of parenthesized expressions within a full expression.
The C standard requires this to be at least 63. In preprocessor
conditional expressions, it is limited only by available memory.
@@ -3892,9 +3902,9 @@ answers. Subsequent assertions do not override previous ones for the
same predicate. All the answers for any given predicate are
simultaneously true.
-@cindex assertions, cancelling
+@cindex assertions, canceling
@findex #unassert
-Assertions can be cancelled with the @samp{#unassert} directive. It
+Assertions can be canceled with the @samp{#unassert} directive. It
has the same syntax as @samp{#assert}. In that form it cancels only the
answer which was specified on the @samp{#unassert} line; other answers
for that predicate remain true. You can cancel an entire predicate by
@@ -3978,7 +3988,7 @@ GCC 3.0 evaluates @samp{#} and @samp{##} at the same time and strictly
left to right. Older versions evaluated all @samp{#} operators first,
then all @samp{##} operators, in an unreliable order.
-@item The form of whitespace betwen tokens in preprocessor output
+@item The form of whitespace between tokens in preprocessor output
@xref{Preprocessor Output}, for the current textual format. This is
also the format used by stringification. Normally, the preprocessor
diff --git a/gcc/doc/cppopts.texi b/gcc/doc/cppopts.texi
index 74fe8be5b7d..1cc688a4730 100644
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
@@ -40,8 +40,11 @@ provided with a @option{-D} option.
@item -undef
@opindex undef
-Do not predefine any system-specific macros. The common predefined
-macros remain defined.
+Do not predefine any system-specific or GCC-specific macros. The
+standard predefined macros remain defined.
+@ifset cppmanual
+@xref{Standard Predefined Macros}.
+@end ifset
@item -I @var{dir}
@opindex I
@@ -487,13 +490,6 @@ it does not use shell special characters.
Cancel an assertion with the predicate @var{predicate} and answer
@var{answer}.
-@item -A-
-@opindex 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.)
-
@item -dCHARS
@var{CHARS} is a sequence of one or more of the following characters,
and must not be preceded by a space. Other characters are interpreted
@@ -564,18 +560,11 @@ also passed through to the output file where the macro is expanded.
In addition to the side-effects of the @option{-C} option, the
@option{-CC} option causes all C++-style comments inside a macro
to be converted to C-style comments. This is to prevent later use
-of that macro from inadvertently commenting out the remainer of
+of that macro from inadvertently commenting out the remainder of
the source line.
The @option{-CC} option is generally used to support lint comments.
-@item -gcc
-@opindex gcc
-Define the macros @sc{__gnuc__}, @sc{__gnuc_minor__} and
-@sc{__gnuc_patchlevel__}. These are defined automatically when you use
-@command{gcc -E}; you can turn them off in that case with
-@option{-no-gcc}.
-
@item -traditional-cpp
@opindex traditional-cpp
Try to imitate the behavior of old-fashioned C preprocessors, as
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 9a0f04cb0af..5d7479e50d2 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -1,4 +1,5 @@
-@c Copyright (C) 1988,1989,1992,1993,1994,1996,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+@c Copyright (C) 1988,1989,1992,1993,1994,1996,1998,1999,2000,2001,2002, 2003
+@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -435,9 +436,9 @@ extensions, accepted by GCC in C89 mode and in C++.
* Hex Floats:: Hexadecimal floating-point constants.
* Zero Length:: Zero-length arrays.
* Variable Length:: Arrays whose length is computed at run time.
+* Empty Structures:: Structures with no members.
* Variadic Macros:: Macros with a variable number of arguments.
* Escaped Newlines:: Slightly looser rules for escaped newlines.
-* Multi-line Strings:: String literals with embedded newlines.
* Subscripting:: Any array can be subscripted, even if not an lvalue.
* Pointer Arith:: Arithmetic on @code{void}-pointers and function pointers.
* Initializers:: Non-constant initializers.
@@ -485,7 +486,6 @@ extensions, accepted by GCC in C89 mode and in C++.
@c the above section title wrapped and causes an underfull hbox.. i
@c changed it from "within" to "in". --mew 4feb93
-
A compound statement enclosed in parentheses may appear as an expression
in GNU C@. This allows you to use loops, switches, and local variables
within an expression.
@@ -886,19 +886,6 @@ the containing function. You should specify, for @var{result}, a value
returned by @code{__builtin_apply}.
@end deftypefn
-@cindex underscores in variables in macros
-@cindex @samp{_} in variables in macros
-@cindex local variables in macros
-@cindex variables, local, in macros
-@cindex macros, local variables in
-
-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 @code{a} and @code{b}. Eventually we
-hope to design a new form of declaration syntax that allows you to declare
-variables whose scopes start only after their initializers; this will be a
-more reliable way to prevent such conflicts.
-
@node Typeof
@section Referring to a Type with @code{typeof}
@findex typeof
@@ -949,6 +936,19 @@ arithmetic type and evaluates each of its arguments exactly once:
_a > _b ? _a : _b; @})
@end example
+@cindex underscores in variables in macros
+@cindex @samp{_} in variables in macros
+@cindex local variables in macros
+@cindex variables, local, in macros
+@cindex macros, local variables in
+
+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 @code{a} and @code{b}. Eventually we
+hope to design a new form of declaration syntax that allows you to declare
+variables whose scopes start only after their initializers; this will be a
+more reliable way to prevent such conflicts.
+
@noindent
Some more examples of the use of @code{typeof}:
@@ -1032,13 +1032,12 @@ This will work with all versions of GCC@.
@cindex lvalues, generalized
@cindex extensions, @code{?:}
@cindex @code{?:} extensions
+
Compound expressions, conditional expressions and casts are allowed as
lvalues provided their operands are lvalues. This means that you can take
their addresses or store values into them.
-Standard C++ allows compound expressions and conditional expressions as
-lvalues, and permits casts to reference type, so use of this extension
-is deprecated for C++ code.
+All these extensions are deprecated.
For example, a compound expression can be assigned, provided the last
expression in the sequence is an lvalue. These two expressions are
@@ -1357,6 +1356,22 @@ struct bar c = @{ @{ 1, @{ @} @} @}; // @r{Valid.}
struct foo d[1] = @{ @{ 1 @{ 2, 3, 4 @} @} @}; // @r{Invalid.}
@end example
+@node Empty Structures
+@section Structures With No Members
+@cindex empty structures
+@cindex zero-size structures
+
+GCC permits a C structure to have no members:
+
+@example
+struct empty @{
+@};
+@end example
+
+The structure will have size zero. In C++, empty structures are part
+of the language. G++ treats empty structures as if they had a single
+member of type @code{char}.
+
@node Variable Length
@section Arrays of Variable Length
@cindex variable-length arrays
@@ -1511,27 +1526,14 @@ argument, these arguments are not macro expanded.
Recently, the preprocessor has relaxed its treatment of escaped
newlines. Previously, the newline had to immediately follow a
-backslash. The current implementation allows whitespace in the form of
-spaces, horizontal and vertical tabs, and form feeds between the
+backslash. The current implementation allows whitespace in the form
+of spaces, horizontal and vertical tabs, and form feeds between the
backslash and the subsequent newline. The preprocessor issues a
warning, but treats it as a valid escaped newline and combines the two
lines to form a single logical line. This works within comments and
-tokens, including multi-line strings, as well as between tokens.
-Comments are @emph{not} treated as whitespace for the purposes of this
-relaxation, since they have not yet been replaced with spaces.
-
-@node Multi-line Strings
-@section String Literals with Embedded Newlines
-@cindex multi-line string literals
-
-As an extension, GNU CPP permits string literals to cross multiple lines
-without escaping the embedded newlines. Each embedded newline is
-replaced with a single @samp{\n} character in the resulting string
-literal, regardless of what form the newline took originally.
-
-CPP currently allows such strings in directives as well (other than the
-@samp{#include} family). This is deprecated and will eventually be
-removed.
+tokens, as well as between tokens. Comments are @emph{not} treated as
+whitespace for the purposes of this relaxation, since they have not
+yet been replaced with spaces.
@node Subscripting
@section Non-Lvalue Arrays May Have Subscripts
@@ -2101,6 +2103,9 @@ functions where the arguments are not available to be checked (such as
@code{vprintf}), specify the third parameter as zero. In this case the
compiler only checks the format string for consistency. For
@code{strftime} formats, the third parameter is required to be zero.
+Since non-static C++ methods have an implicit @code{this} argument, the
+arguments of such methods should be counted from two, not one, when
+giving values for @var{string-index} and @var{first-to-check}.
In the example above, the format string (@code{my_format}) is the second
argument of the function @code{my_print}, and the arguments to check
@@ -2153,7 +2158,9 @@ string argument is not constant; this would generate a warning when
without the attribute.
The parameter @var{string-index} specifies which argument is the format
-string argument (starting from 1).
+string argument (starting from one). Since non-static C++ methods have
+an implicit @code{this} argument, the arguments of such methods should
+be counted from two.
The @code{format-arg} attribute allows you to identify your own
functions which modify format strings, so that GCC can check the
@@ -2283,7 +2290,7 @@ and linker.
@cindex @code{malloc} attribute
The @code{malloc} attribute is used to tell the compiler that a function
may be treated as if it were the malloc function. The compiler assumes
-that calls to malloc result in a pointers that cannot alias anything.
+that calls to malloc result in pointers that cannot alias anything.
This will often improve optimization.
@item alias ("@var{target}")
@@ -2312,12 +2319,12 @@ f () @{ /* @r{Do something.} */; @}
int i __attribute__ ((visibility ("hidden")));
@end smallexample
-See the ELF gABI for complete details, but the short story is
+See the ELF gABI for complete details, but the short story is:
@table @dfn
@item default
Default visibility is the normal case for ELF. This value is
-available for the visibiliy attribute to override other options
+available for the visibility attribute to override other options
that may change the assumed visibility of symbols.
@item hidden
@@ -2335,7 +2342,7 @@ by another module.
Internal visibility is like hidden visibility, but with additional
processor specific semantics. Unless otherwise specified by the psABI,
gcc defines internal visibility to mean that the function is @emph{never}
-called from another module. Note that hidden symbols, while then cannot
+called from another module. Note that hidden symbols, while they cannot
be referenced directly by other modules, can be referenced indirectly via
function pointers. By indicating that a symbol cannot be called from
outside the module, gcc may for instance omit the load of a PIC register
@@ -2344,16 +2351,8 @@ since it is known that the calling function loaded the correct value.
Not all ELF targets support this attribute.
-@item tls_model ("@var{tls_model}")
-@cindex @code{tls_model} attribute
-The @code{tls_model} attribute sets thread-local storage model
-(@pxref{Thread-Local}) of a particular @code{__thread} variable,
-overriding @code{-ftls-model=} command line switch on a per-variable
-basis.
-The @var{tls_model} argument should be one of @code{global-dynamic},
-@code{local-dynamic}, @code{initial-exec} or @code{local-exec}.
-
@item regparm (@var{number})
+@cindex @code{regparm} attribute
@cindex functions that are passed arguments in registers on the 386
On the Intel 386, the @code{regparm} attribute causes the compiler to
pass up to @var{number} integer arguments in registers EAX,
@@ -2361,14 +2360,22 @@ EDX, and ECX instead of on the stack. Functions that take a
variable number of arguments will continue to be passed all of their
arguments on the stack.
+Beware that on some ELF systems this attribute is unsuitable for
+global functions in shared libraries with lazy binding (which is the
+default). Lazy binding will send the first call via resolving code in
+the loader, which might assume EAX, EDX and ECX can be clobbered, as
+per the standard calling conventions. Solaris 8 is affected by this.
+GNU systems with GLIBC 2.1 or higher, and FreeBSD, are believed to be
+safe since the loaders there save all registers. (Lazy binding can be
+disabled with the linker or the loader if desired, to avoid the
+problem.)
+
@item stdcall
@cindex functions that pop the argument stack on the 386
On the Intel 386, the @code{stdcall} attribute causes the compiler to
assume that the called function will pop off the stack space used to
pass arguments, unless it takes a variable number of arguments.
-The PowerPC compiler for Windows NT currently ignores the @code{stdcall}
-attribute.
@item cdecl
@cindex functions that do pop the argument stack on the 386
@@ -2378,9 +2385,6 @@ assume that the calling function will pop off the stack space used to
pass arguments. This is
useful to override the effects of the @option{-mrtd} switch.
-The PowerPC compiler for Windows NT currently ignores the @code{cdecl}
-attribute.
-
@item longcall/shortcall
@cindex functions called via pointer on the RS/6000 and PowerPC
On the RS/6000 and PowerPC, the @code{longcall} attribute causes the
@@ -2390,12 +2394,12 @@ attribute causes the compiler not to do this. These attributes override
both the @option{-mlongcall} switch and the @code{#pragma longcall}
setting.
-@xref{RS/6000 and PowerPC Options}, for more information on when long
-calls are and are not necessary.
+@xref{RS/6000 and PowerPC Options}, for more information on whether long
+calls are necessary.
@item long_call/short_call
@cindex indirect calls on ARM
-This attribute allows to specify how to call a particular function on
+This attribute specifies how a particular function is called on
ARM@. Both attributes override the @option{-mlong-calls} (@pxref{ARM Options})
command line switch and @code{#pragma long_calls} settings. The
@code{long_call} attribute causes the compiler to always call the
@@ -2404,31 +2408,6 @@ contents of that register. The @code{short_call} attribute always places
the offset to the function from the call site into the @samp{BL}
instruction directly.
-@item dllimport
-@cindex functions which are imported from a dll on PowerPC Windows NT
-On the PowerPC running Windows NT, the @code{dllimport} attribute causes
-the compiler to call the function via a global pointer to the function
-pointer that is set up by the Windows NT dll library. The pointer name
-is formed by combining @code{__imp_} and the function name.
-
-@item dllexport
-@cindex functions which are exported from a dll on PowerPC Windows NT
-On the PowerPC running Windows NT, the @code{dllexport} attribute causes
-the compiler to provide a global pointer to the function pointer, so
-that it can be called with the @code{dllimport} attribute. The pointer
-name is formed by combining @code{__imp_} and the function name.
-
-@item exception (@var{except-func} [, @var{except-arg}])
-@cindex functions which specify exception handling on PowerPC Windows NT
-On the PowerPC running Windows NT, the @code{exception} attribute causes
-the compiler to modify the structured exception table entry it emits for
-the declared function. The string or identifier @var{except-func} is
-placed in the third entry of the structured exception table. It
-represents a function, which is called by the exception handling
-mechanism if an exception occurs. If it was specified, the string or
-identifier @var{except-arg} is placed in the fourth entry of the
-structured exception table.
-
@item function_vector
@cindex calling functions through the function vector on the H8/300 processors
Use this attribute on the H8/300 and H8/300H to indicate that the specified
@@ -2450,9 +2429,9 @@ interrupt handler when this attribute is present.
Note, interrupt handlers for the H8/300, H8/300H and SH processors can
be specified via the @code{interrupt_handler} attribute.
-Note, on the AVR interrupts will be enabled inside the function.
+Note, on the AVR, interrupts will be enabled inside the function.
-Note, for the ARM you can specify the kind of interrupt to be handled by
+Note, for the ARM, you can specify the kind of interrupt to be handled by
adding an optional parameter to the interrupt attribute like this:
@smallexample
@@ -2507,20 +2486,20 @@ slightly under 32kbytes of data.
@item signal
@cindex signal handler functions on the AVR processors
Use this attribute on the AVR to indicate that the specified
-function is an signal handler. The compiler will generate function
-entry and exit sequences suitable for use in an signal handler when this
-attribute is present. Interrupts will be disabled inside function.
+function is a signal handler. The compiler will generate function
+entry and exit sequences suitable for use in a signal handler when this
+attribute is present. Interrupts will be disabled inside the function.
@item naked
@cindex function without a prologue/epilogue code
Use this attribute on the ARM, AVR and IP2K ports to indicate that the
-specified function do not need prologue/epilogue sequences generated by
+specified function does not need prologue/epilogue sequences generated by
the compiler. It is up to the programmer to provide these sequences.
@item model (@var{model-name})
@cindex function addressability on the M32R/D
Use this attribute on the M32R/D to set the addressability of an object,
-and the code generated for a function.
+and of the code generated for a function.
The identifier @var{model-name} is one of @code{small}, @code{medium},
or @code{large}, representing each of the code models.
@@ -2537,6 +2516,91 @@ compiler will generate @code{seth/add3} instructions to load their addresses),
and may not be reachable with the @code{bl} instruction (the compiler will
generate the much slower @code{seth/add3/jl} instruction sequence).
+@item far
+@cindex functions which handle memory bank switching
+On 68HC11 and 68HC12 the @code{far} attribute causes the compiler to
+use a calling convention that takes care of switching memory banks when
+entering and leaving a function. This calling convention is also the
+default when using the @option{-mlong-calls} option.
+
+On 68HC12 the compiler will use the @code{call} and @code{rtc} instructions
+to call and return from a function.
+
+On 68HC11 the compiler will generate a sequence of instructions
+to invoke a board-specific routine to switch the memory bank and call the
+real function. The board-specific routine simulates a @code{call}.
+At the end of a function, it will jump to a board-specific routine
+instead of using @code{rts}. The board-specific return routine simulates
+the @code{rtc}.
+
+@item near
+@cindex functions which do not handle memory bank switching on 68HC11/68HC12
+On 68HC11 and 68HC12 the @code{near} attribute causes the compiler to
+use the normal calling convention based on @code{jsr} and @code{rts}.
+This attribute can be used to cancel the effect of the @option{-mlong-calls}
+option.
+
+@item dllimport
+@cindex @code{__declspec(dllimport)}
+On Windows targets, the @code{dllimport} attribute causes the compiler
+to reference a function or variable via a global pointer to a pointer
+that is set up by the Windows dll library. The pointer name is formed by
+combining @code{_imp__} and the function or variable name. The attribute
+implies @code{extern} storage.
+
+Currently, the attribute is ignored for inlined functions. If the
+attribute is applied to a symbol @emph{definition}, an error is reported.
+If a symbol previously declared @code{dllimport} is later defined, the
+attribute is ignored in subsequent references, and a warning is emitted.
+The attribute is also overridden by a subsequent declaration as
+@code{dllexport}.
+
+When applied to C++ classes, the attribute marks non-inlined
+member functions and static data members as imports. However, the
+attribute is ignored for virtual methods to allow creation of vtables
+using thunks.
+
+On cygwin, mingw and arm-pe targets, @code{__declspec(dllimport)} is
+recognized as a synonym for @code{__attribute__ ((dllimport))} for
+compatibility with other Windows compilers.
+
+The use of the @code{dllimport} attribute on functions is not necessary,
+but provides a small performance benefit by eliminating a thunk in the
+dll. The use of the @code{dllimport} attribute on imported variables was
+required on older versions of GNU ld, but can now be avoided by passing
+the @option{--enable-auto-import} switch to ld. As with functions, using
+the attribute for a variable eliminates a thunk in the dll.
+
+One drawback to using this attribute is that a pointer to a function or
+variable marked as dllimport cannot be used as a constant address. The
+attribute can be disabled for functions by setting the
+@option{-mnop-fun-dllimport} flag.
+
+@item dllexport
+@cindex @code{__declspec(dllexport)}
+On Windows targets the @code{dllexport} attribute causes the compiler to
+provide a global pointer to a pointer in a dll, so that it can be
+referenced with the @code{dllimport} attribute. The pointer name is
+formed by combining @code{_imp__} and the function or variable name.
+
+Currently, the @code{dllexport}attribute is ignored for inlined
+functions, but export can be forced by using the
+@option{-fkeep-inline-functions} flag. The attribute is also ignored for
+undefined symbols.
+
+When applied to C++ classes. the attribute marks defined non-inlined
+member functions and static data members as exports. Static consts
+initialized in-class are not marked unless they are also defined
+out-of-class.
+
+On cygwin, mingw and arm-pe targets, @code{__declspec(dllexport)} is
+recognized as a synonym for @code{__attribute__ ((dllexport))} for
+compatibility with other Windows compilers.
+
+Alternative methods for including the symbol in the dll's export table
+are to use a .def file with an @code{EXPORTS} section or, with GNU ld,
+using the @option{--export-all} linker flag.
+
@end table
You can specify multiple attributes in a declaration by separating them
@@ -2570,7 +2634,7 @@ found convenient to use @code{__attribute__} to achieve a natural
attachment of attributes to their corresponding declarations, whereas
@code{#pragma GCC} is of use for constructs that do not naturally form
part of the grammar. @xref{Other Directives,,Miscellaneous
-Preprocessing Directives, cpp, The C Preprocessor}.
+Preprocessing Directives, cpp, The GNU C Preprocessor}.
@node Attribute Syntax
@section Attribute Syntax
@@ -2908,7 +2972,7 @@ This is true on many RISC machines. On more traditional machine
designs, @code{__alignof__ (double)} is 4 or even 2.
Some machines never actually require alignment; they allow reference to any
-data type even at an odd addresses. For these machines, @code{__alignof__}
+data type even at an odd address. For these machines, @code{__alignof__}
reports the @emph{recommended} alignment of a type.
If the operand of @code{__alignof__} is an lvalue rather than a type,
@@ -2934,15 +2998,13 @@ It is an error to ask for the alignment of an incomplete type.
The keyword @code{__attribute__} allows you to specify special
attributes of variables or structure fields. This keyword is followed
-by an attribute specification inside double parentheses. Ten
-attributes are currently defined for variables: @code{aligned},
-@code{mode}, @code{nocommon}, @code{packed}, @code{section},
-@code{transparent_union}, @code{unused}, @code{deprecated},
-@code{vector_size}, and @code{weak}. Some other attributes are defined
-for variables on particular target systems. Other attributes are
-available for functions (@pxref{Function Attributes}) and for types
-(@pxref{Type Attributes}). Other front ends might define more
-attributes (@pxref{C++ Extensions,,Extensions to the C++ Language}).
+by an attribute specification inside double parentheses. Some
+attributes are currently defined generically for variables.
+Other attributes are defined for variables on particular target
+systems. Other attributes are available for functions
+(@pxref{Function Attributes}) and for types (@pxref{Type Attributes}).
+Other front ends might define more attributes
+(@pxref{C++ Extensions,,Extensions to the C++ Language}).
You may also specify attributes with @samp{__} preceding and following
each keyword. This allows you to use them in header files without
@@ -3010,6 +3072,56 @@ up to a maximum of 8 byte alignment, then specifying @code{aligned(16)}
in an @code{__attribute__} will still only provide you with 8 byte
alignment. See your linker documentation for further information.
+@item cleanup (@var{cleanup_function})
+@cindex @code{cleanup} attribute
+The @code{cleanup} attribute runs a function when the variable goes
+out of scope. This attribute can only be applied to auto function
+scope variables; it may not be applied to parameters or variables
+with static storage duration. The function must take one parameter,
+a pointer to a type compatible with the variable. The return value
+of the function (if any) is ignored.
+
+If @option{-fexceptions} is enabled, then @var{cleanup_function}
+will be run during the stack unwinding that happens during the
+processing of the exception. Note that the @code{cleanup} attribute
+does not allow the exception to be caught, only to perform an action.
+It is undefined what happens if @var{cleanup_function} does not
+return normally.
+
+@item common
+@itemx nocommon
+@cindex @code{common} attribute
+@cindex @code{nocommon} attribute
+@opindex fcommon
+@opindex fno-common
+The @code{common} attribute requests GCC to place a variable in
+``common'' storage. The @code{nocommon} attribute requests the
+opposite -- to allocate space for it directly.
+
+These attributes override the default chosen by the
+@option{-fno-common} and @option{-fcommon} flags respectively.
+
+@item deprecated
+@cindex @code{deprecated} attribute
+The @code{deprecated} attribute results in a warning if the variable
+is used anywhere in the source file. This is useful when identifying
+variables that are expected to be removed in a future version of a
+program. The warning also includes the location of the declaration
+of the deprecated variable, to enable users to easily find further
+information about why the variable is deprecated, or what they should
+do instead. Note that the warning only occurs for uses:
+
+@smallexample
+extern int old_var __attribute__ ((deprecated));
+extern int old_var;
+int new_fn () @{ return old_var; @}
+@end smallexample
+
+results in a warning on line 3 but not line 2.
+
+The @code{deprecated} attribute can also be used for functions and
+types (@pxref{Function Attributes}, @pxref{Type Attributes}.)
+
@item mode (@var{mode})
@cindex @code{mode} attribute
This attribute specifies the data type for the declaration---whichever
@@ -3021,18 +3133,6 @@ indicate the mode corresponding to a one-byte integer, @samp{word} or
@samp{__word__} for the mode of a one-word integer, and @samp{pointer}
or @samp{__pointer__} for the mode used to represent pointers.
-@item nocommon
-@cindex @code{nocommon} attribute
-@opindex fno-common
-This attribute specifies requests GCC not to place a variable
-``common'' but instead to allocate space for it directly. If you
-specify the @option{-fno-common} flag, GCC will do this for all
-variables.
-
-Specifying the @code{nocommon} attribute for a variable provides an
-initialization of zeros. A variable may only be initialized in one
-source file.
-
@item packed
@cindex @code{packed} attribute
The @code{packed} attribute specifies that a variable or structure field
@@ -3101,7 +3201,7 @@ section, consider using the facilities of the linker instead.
@item shared
@cindex @code{shared} variable attribute
-On Windows NT, in addition to putting variable definitions in a named
+On Windows, in addition to putting variable definitions in a named
section, the section can also be shared among all running copies of an
executable or DLL@. For example, this small program defines shared data
by putting it in a named section @code{shared} and marking the section
@@ -3124,7 +3224,18 @@ You may only use the @code{shared} attribute along with @code{section}
attribute with a fully initialized global definition because of the way
linkers work. See @code{section} attribute for more information.
-The @code{shared} attribute is only available on Windows NT@.
+The @code{shared} attribute is only available on Windows@.
+
+@item tls_model ("@var{tls_model}")
+@cindex @code{tls_model} attribute
+The @code{tls_model} attribute sets thread-local storage model
+(@pxref{Thread-Local}) of a particular @code{__thread} variable,
+overriding @code{-ftls-model=} command line switch on a per-variable
+basis.
+The @var{tls_model} argument should be one of @code{global-dynamic},
+@code{local-dynamic}, @code{initial-exec} or @code{local-exec}.
+
+Not all targets support this attribute.
@item transparent_union
This attribute, attached to a function parameter which is a union, means
@@ -3139,26 +3250,6 @@ This attribute, attached to a variable, means that the variable is meant
to be possibly unused. GCC will not produce a warning for this
variable.
-@item deprecated
-The @code{deprecated} attribute results in a warning if the variable
-is used anywhere in the source file. This is useful when identifying
-variables that are expected to be removed in a future version of a
-program. The warning also includes the location of the declaration
-of the deprecated variable, to enable users to easily find further
-information about why the variable is deprecated, or what they should
-do instead. Note that the warnings only occurs for uses:
-
-@smallexample
-extern int old_var __attribute__ ((deprecated));
-extern int old_var;
-int new_fn () @{ return old_var; @}
-@end smallexample
-
-results in a warning on line 3 but not line 2.
-
-The @code{deprecated} attribute can also be used for functions and
-types (@pxref{Function Attributes}, @pxref{Type Attributes}.)
-
@item vector_size (@var{bytes})
This attribute specifies the vector size for the variable, measured in
bytes. For example, the declaration:
@@ -3204,6 +3295,12 @@ Medium and large model objects may live anywhere in the 32-bit address space
(the compiler will generate @code{seth/add3} instructions to load their
addresses).
+@item dllimport
+The @code{dllimport} attribute is described in @xref{Function Attributes}.
+
+@item dlexport
+The @code{dllexport} attribute is described in @xref{Function Attributes}.
+
@end table
To specify multiple attributes, separate them by commas within the
@@ -3324,7 +3421,7 @@ alignment. See your linker documentation for further information.
@item packed
This attribute, attached to an @code{enum}, @code{struct}, or
-@code{union} type definition, specified that the minimum required memory
+@code{union} type definition, specifies that the minimum required memory
be used to represent the type.
@opindex fshort-enums
@@ -3353,7 +3450,7 @@ the referenced type must be respected, just as with normal pointer
conversions.
Second, the argument is passed to the function using the calling
-conventions of first member of the transparent union, not the calling
+conventions of the first member of the transparent union, not the calling
conventions of the union itself. All members of the union must have the
same machine representation; this is necessary for this argument passing
to work properly.
@@ -3565,8 +3662,9 @@ The definition in the header file will cause most calls to the function
to be inlined. If any uses of the function remain, they will refer to
the single copy in the library.
-For future compatibility with when GCC implements ISO C99 semantics for
-inline functions, it is best to use @code{static inline} only. (The
+Since GCC eventually will implement ISO C99 semantics for
+inline functions, it is best to use @code{static inline} only
+to guarantee compatibility. (The
existing semantics will remain available when @option{-std=gnu89} is
specified, but eventually the default will be @option{-std=gnu99} and
that will implement the C99 semantics, though it does not do so yet.)
@@ -3638,7 +3736,7 @@ asm ("fsinx %[angle],%[output]"
@noindent
Note that the symbolic operand names have no relation whatsoever to
other C identifiers. You may use any name you like, even those of
-existing C symbols, but must ensure that no two operands within the same
+existing C symbols, but you must ensure that no two operands within the same
assembler construct use the same symbolic name.
Output operand expressions must be lvalues; the compiler can check this.
@@ -3744,13 +3842,35 @@ represents the condition codes as a specific hardware register;
condition code is handled differently, and specifying @samp{cc} has no
effect. But it is valid no matter what the machine.
-If your assembler instruction modifies memory in an unpredictable
+If your assembler instructions access memory in an unpredictable
fashion, add @samp{memory} to the list of clobbered registers. This
-will cause GCC to not keep memory values cached in registers across
-the assembler instruction. You will also want to add the
-@code{volatile} keyword if the memory affected is not listed in the
-inputs or outputs of the @code{asm}, as the @samp{memory} clobber does
-not count as a side-effect of the @code{asm}.
+will cause GCC to not keep memory values cached in registers across the
+assembler instruction and not optimize stores or loads to that memory.
+You will also want to add the @code{volatile} keyword if the memory
+affected is not listed in the inputs or outputs of the @code{asm}, as
+the @samp{memory} clobber does not count as a side-effect of the
+@code{asm}. If you know how large the accessed memory is, you can add
+it as input or output but if this is not known, you should add
+@samp{memory}. As an example, if you access ten bytes of a string, you
+can use a memory input like:
+
+@example
+@{"m"( (@{ struct @{ char x[10]; @} *p = (void *)ptr ; *p; @}) )@}.
+@end example
+
+Note that in the following example the memory input is necessary,
+otherwise GCC might optimize the store to @code{x} away:
+@example
+int foo ()
+@{
+ int x = 42;
+ int *y = &x;
+ int result;
+ asm ("magic stuff accessing an 'int' pointed to by '%1'"
+ "=&d" (r) : "a" (y), "m" (*y));
+ return result;
+@}
+@end example
You can put multiple assembler instructions together in a single
@code{asm} template, separated by the characters normally used in assembly
@@ -4482,7 +4602,7 @@ provided they are of the same size (in fact, you can also cast vectors
to and from other datatypes of the same size).
You cannot operate between vectors of different lengths or different
-signness without a cast.
+signedness without a cast.
A port that supports hardware vector operations, usually provides a set
of built-in functions that can be used to operate on vectors. For
@@ -4550,13 +4670,19 @@ v4si f (v4si a, v4si b, v4si c)
@findex memset
@findex printf
@findex printf_unlocked
+@findex putchar
+@findex puts
@findex rindex
+@findex scanf
@findex sin
@findex sinf
@findex sinl
+@findex snprintf
+@findex sprintf
@findex sqrt
@findex sqrtf
@findex sqrtl
+@findex sscanf
@findex strcat
@findex strchr
@findex strcmp
@@ -4570,6 +4696,11 @@ v4si f (v4si a, v4si b, v4si c)
@findex strrchr
@findex strspn
@findex strstr
+@findex vprintf
+@findex vscanf
+@findex vsnprintf
+@findex vsprintf
+@findex vsscanf
GCC provides a large number of built-in functions other than the ones
mentioned above. Some of these are for internal use in the processing
@@ -4607,7 +4738,8 @@ mode.
The ISO C99 functions @code{conj}, @code{conjf}, @code{conjl},
@code{creal}, @code{crealf}, @code{creall}, @code{cimag}, @code{cimagf},
-@code{cimagl}, @code{llabs} and @code{imaxabs} are handled as built-in
+@code{cimagl}, @code{imaxabs}, @code{llabs}, @code{snprintf},
+@code{vscanf}, @code{vsnprintf} and @code{vsscanf} are handled as built-in
functions except in strict ISO C90 mode. There are also built-in
versions of the ISO C99 functions @code{cosf}, @code{cosl},
@code{expf}, @code{expl}, @code{fabsf}, @code{fabsl},
@@ -4619,10 +4751,13 @@ functions have corresponding versions prefixed with @code{__builtin_}.
The ISO C90 functions @code{abs}, @code{cos}, @code{exp}, @code{fabs},
@code{fprintf}, @code{fputs}, @code{labs}, @code{log},
@code{memcmp}, @code{memcpy},
-@code{memset}, @code{printf}, @code{sin}, @code{sqrt}, @code{strcat},
+@code{memset}, @code{printf}, @code{putchar}, @code{puts}, @code{scanf},
+@code{sin}, @code{snprintf}, @code{sprintf}, @code{sqrt}, @code{sscanf},
+@code{strcat},
@code{strchr}, @code{strcmp}, @code{strcpy}, @code{strcspn},
@code{strlen}, @code{strncat}, @code{strncmp}, @code{strncpy},
-@code{strpbrk}, @code{strrchr}, @code{strspn}, and @code{strstr} are all
+@code{strpbrk}, @code{strrchr}, @code{strspn}, @code{strstr},
+@code{vprintf} and @code{vsprintf} are all
recognized as built-in functions unless @option{-fno-builtin} is
specified (or @option{-fno-builtin-@var{function}} is specified for an
individual function). All of these functions have corresponding
@@ -4864,7 +4999,7 @@ ISO C macro @code{HUGE_VAL}.
Similar to @code{__builtin_huge_val}, except the return type is @code{float}.
@end deftypefn
-@deftypefn {Built-in Function} long double __builtin_huge_vall (void)
+@deftypefn {Built-in Function} {long double} __builtin_huge_vall (void)
Similar to @code{__builtin_huge_val}, except the return
type is @code{long double}.
@end deftypefn
@@ -4879,7 +5014,7 @@ This function is suitable for implementing the ISO C99 macro @code{INFINITY}.
Similar to @code{__builtin_inf}, except the return type is @code{float}.
@end deftypefn
-@deftypefn {Built-in Function} long double __builtin_infl (void)
+@deftypefn {Built-in Function} {long double} __builtin_infl (void)
Similar to @code{__builtin_inf}, except the return
type is @code{long double}.
@end deftypefn
@@ -4888,7 +5023,7 @@ type is @code{long double}.
This is an implementation of the ISO C99 function @code{nan}.
Since ISO C99 defines this function in terms of @code{strtod}, which we
-do not implement, a desription of the parsing is in order. The string
+do not implement, a description of the parsing is in order. The string
is parsed as by @code{strtol}; that is, the base is recognized by
leading @samp{0} or @samp{0x} prefixes. The number parsed is placed
in the significand such that the least significant bit of the number
@@ -4904,7 +5039,7 @@ that it is considered a compile-time constant.
Similar to @code{__builtin_nan}, except the return type is @code{float}.
@end deftypefn
-@deftypefn {Built-in Function} long double __builtin_nanl (const char *str)
+@deftypefn {Built-in Function} {long double} __builtin_nanl (const char *str)
Similar to @code{__builtin_nan}, except the return type is @code{long double}.
@end deftypefn
@@ -4918,7 +5053,7 @@ to be a signaling NaN. The @code{nans} function is proposed by
Similar to @code{__builtin_nans}, except the return type is @code{float}.
@end deftypefn
-@deftypefn {Built-in Function} long double __builtin_nansl (const char *str)
+@deftypefn {Built-in Function} {long double} __builtin_nansl (const char *str)
Similar to @code{__builtin_nans}, except the return type is @code{long double}.
@end deftypefn
@@ -5200,6 +5335,31 @@ Generates the @code{movhps} machine instruction as a store to memory.
Generates the @code{movlps} machine instruction as a store to memory.
@end table
+The following built-in functions are available when @option{-msse3} is used.
+All of them generate the machine instruction that is part of the name.
+
+@example
+v2df __builtin_ia32_addsubpd (v2df, v2df)
+v2df __builtin_ia32_addsubps (v2df, v2df)
+v2df __builtin_ia32_haddpd (v2df, v2df)
+v2df __builtin_ia32_haddps (v2df, v2df)
+v2df __builtin_ia32_hsubpd (v2df, v2df)
+v2df __builtin_ia32_hsubps (v2df, v2df)
+v16qi __builtin_ia32_lddqu (char const *)
+void __builtin_ia32_monitor (void *, unsigned int, unsigned int)
+v2df __builtin_ia32_movddup (v2df)
+v4sf __builtin_ia32_movshdup (v4sf)
+v4sf __builtin_ia32_movsldup (v4sf)
+void __builtin_ia32_mwait (unsigned int, unsigned int)
+@end example
+
+The following built-in functions are available when @option{-msse3} is used.
+
+@table @code
+@item v2df __builtin_ia32_loadddup (double const *)
+Generates the @code{movddup} machine instruction as a load from memory.
+@end table
+
The following built-in functions are available when @option{-m3dnow} is used.
All of them generate the machine instruction that is part of the name.
@@ -6403,7 +6563,7 @@ declarations.
The following pragmas are available for all architectures running the
Darwin operating system. These are useful for compatibility with other
-MacOS compilers.
+Mac OS compilers.
@table @code
@item mark @var{tokens}@dots{}
@@ -6465,7 +6625,8 @@ empty string.
This pragma is similar in intent to to the asm labels extension
(@pxref{Asm Labels}) in that the system programmer wants to change
the assembly-level ABI without changing the source-level API. The
-preprocessor defines @code{__EXTERN_PREFIX} if the pragma is available.
+preprocessor defines @code{__PRAGMA_EXTERN_PREFIX} if the pragma is
+available.
@end table
@node Unnamed Fields
@@ -6638,6 +6799,7 @@ The following are a set of changes to ISO/IEC 14882:1998 (aka C++98)
that document the exact semantics of the language extension.
@itemize @bullet
+@item
@b{[intro.execution]}
New text after paragraph 4
@@ -6682,7 +6844,7 @@ Add after paragraph 4
@quotation
The storage for an object of thread storage duration shall be
-staticly initialized before the first statement of the thread startup
+statically initialized before the first statement of the thread startup
function. An object of thread storage duration shall not require
dynamic initialization.
@end quotation
@@ -6718,7 +6880,7 @@ Add @code{__thread} to the list of specifiers in paragraph 3.
New section before @b{[basic.stc.static]}
@quotation
-The keyword @code{__thread} applied to an non-local object gives the
+The keyword @code{__thread} applied to a non-local object gives the
object thread storage duration.
A local variable or class data member declared both @code{static}
@@ -6778,8 +6940,8 @@ can also use most of the C language extensions in your C++ programs). If you
want to write code that checks whether these features are available, you can
test for the GNU compiler the same way as for C programs: check for a
predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to
-test specifically for GNU C++ (@pxref{Standard Predefined,,Standard
-Predefined Macros,cpp.info,The C Preprocessor}).
+test specifically for GNU C++ (@pxref{Common Predefined Macros,,
+Predefined Macros,cpp,The GNU C Preprocessor}).
@menu
* Min and Max:: C++ Minimum and maximum operators.
@@ -7167,7 +7329,6 @@ If any calls were not inlined, you will get linker errors.
@node Template Instantiation
@section Where's the Template?
-
@cindex template instantiation
C++ templates are the first language feature to require more
@@ -7286,8 +7447,8 @@ compile it without @option{-fno-implicit-templates} so you get all of the
instances required by your explicit instantiations (but not by any
other files) without having to specify them as well.
-g++ has extended the template instantiation syntax outlined in the
-Working Paper to allow forward declaration of explicit instantiations
+g++ has extended the template instantiation syntax given in the ISO
+standard to allow forward declaration of explicit instantiations
(with @code{extern}), instantiation of the compiler support data for a
template class (i.e.@: the vtable) without instantiating any of its
members (with @code{inline}), and instantiation of only the static data
@@ -7313,7 +7474,6 @@ more discussion of these pragmas.
@node Bound member functions
@section Extracting the function pointer from a bound pointer to member function
-
@cindex pmf
@cindex pointer to member function
@cindex bound pointer to member function
diff --git a/gcc/doc/fragments.texi b/gcc/doc/fragments.texi
index f9ef3d22b82..c9ebcf9145d 100644
--- a/gcc/doc/fragments.texi
+++ b/gcc/doc/fragments.texi
@@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -134,12 +134,12 @@ specified, there are combinations that should not be built. In that
case, set @code{MULTILIB_EXCEPTIONS} to be all of the switch exceptions
in shell case syntax that should not be built.
-For example, in the PowerPC embedded ABI support, it is not desirable
-to build libraries compiled with the @option{-mcall-aix} option
-and either of the @option{-fleading-underscore} or @option{-mlittle} options
-at the same time. Therefore @code{MULTILIB_EXCEPTIONS} is set to
+For example the ARM processor cannot execute both hardware floating
+point instructions and the reduced size THUMB instructions at the same
+time, so there is no need to build libraries with both of these
+options enabled. Therefore @code{MULTILIB_EXCEPTIONS} is set to:
@smallexample
-*mcall-aix/*fleading-underscore* *mlittle/*mcall-aix*
+*mthumb/*mhard-float*
@end smallexample
@findex MULTILIB_EXTRA_OPTS
@@ -147,7 +147,24 @@ at the same time. Therefore @code{MULTILIB_EXCEPTIONS} is set to
Sometimes it is desirable that when building multiple versions of
@file{libgcc.a} certain options should always be passed on to the
compiler. In that case, set @code{MULTILIB_EXTRA_OPTS} to be the list
-of options to be used for all builds.
+of options to be used for all builds. If you set this, you should
+probably set @code{CRTSTUFF_T_CFLAGS} to a dash followed by it.
+
+@findex SPECS
+@item SPECS
+Unfortunately, setting @code{MULTILIB_EXTRA_OPTS} is not enough, since
+it does not affect the build of target libraries, at least not the
+build of the default multilib. One possible work-around is to use
+@code{DRIVER_SELF_SPECS} to bring options from the @file{specs} file
+as if they had been passed in the compiler driver command line.
+However, you don't want to be adding these options after the toolchain
+is installed, so you can instead tweak the @file{specs} file that will
+be used during the toolchain build, while you still install the
+original, built-in @file{specs}. The trick is to set @code{SPECS} to
+some other filename (say @file{specs.install}), that will then be
+created out of the built-in specs, and introduce a @file{Makefile}
+rule to generate the @file{specs} file that's going to be used at
+build time out of your @file{specs.install}.
@end table
@node Host Fragment
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index 1e9fcf48e18..721150ac8a1 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -60,25 +60,12 @@
\global\setfont\defbf\ttbshape{10}{\magstep1}
@end tex
-@macro copyrightnotice
+@copying
Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-@end macro
-@ifnottex
-@dircategory Programming
-@direntry
-* gcc: (gcc). The GNU Compiler Collection.
-@end direntry
-This file documents the use of the GNU compilers.
-@sp 1
-Published by the Free Software Foundation@*
-59 Temple Place - Suite 330@*
-Boston, MA 02111-1307 USA
-@sp 1
-@copyrightnotice{}
-@sp 1
+1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
@@ -94,6 +81,20 @@ included in the section entitled ``GNU Free Documentation License''.
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.
+@end copying
+@ifnottex
+@dircategory Programming
+@direntry
+* gcc: (gcc). The GNU Compiler Collection.
+@end direntry
+This file documents the use of the GNU compilers.
+@sp 1
+Published by the Free Software Foundation@*
+59 Temple Place - Suite 330@*
+Boston, MA 02111-1307 USA
+@sp 1
+@insertcopying
+@sp 1
@end ifnottex
@setchapternewpage odd
@@ -102,14 +103,12 @@ included in the section entitled ``GNU Free Documentation License''.
@sp 2
@center Richard M. Stallman
@sp 3
-@center Last updated 20 April 2002
+@center Last updated 30 December 2002
@sp 1
@center for GCC @value{version-GCC}
@page
@vskip 0pt plus 1filll
-@copyrightnotice{}
-@sp 2
For GCC Version @value{version-GCC}@*
@sp 1
Published by the Free Software Foundation @*
@@ -122,23 +121,7 @@ Printed copies are available for $50 each.@*
ISBN 1-882114-37-X
@end ifset
@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end titlepage
@summarycontents
@contents
@@ -165,12 +148,11 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
* 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.
+* Gcov:: @command{gcov}---a test coverage program.
* Trouble:: If you have trouble using GCC.
* Bugs:: How, why and where to report bugs.
* Service:: How to find suppliers of support for GCC.
* Contributing:: How to contribute to testing and developing GCC.
-* VMS:: Using GCC on VMS.
* Funding:: How to help assure funding for free software.
* GNU Project:: The GNU Project and GNU/Linux.
@@ -195,7 +177,6 @@ Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
@include bugreport.texi
@include service.texi
@include contribute.texi
-@include vms.texi
@include funding.texi
@include gnu.texi
diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi
index 35bd02cc21a..eee13763913 100644
--- a/gcc/doc/gccint.texi
+++ b/gcc/doc/gccint.texi
@@ -46,25 +46,12 @@
\global\setfont\defbf\ttbshape{10}{\magstep1}
@end tex
-@macro copyrightnotice
+@copying
Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-@end macro
-@ifnottex
-@dircategory Programming
-@direntry
-* gccint: (gccint). Internals of the GNU Compiler Collection.
-@end direntry
-This file documents the internals of the GNU compilers.
-@sp 1
-Published by the Free Software Foundation@*
-59 Temple Place - Suite 330@*
-Boston, MA 02111-1307 USA
-@sp 1
-@copyrightnotice{}
-@sp 1
+1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
@@ -80,6 +67,19 @@ included in the section entitled ``GNU Free Documentation License''.
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.
+@end copying
+@ifnottex
+@dircategory Programming
+@direntry
+* gccint: (gccint). Internals of the GNU Compiler Collection.
+@end direntry
+This file documents the internals of the GNU compilers.
+@sp 1
+Published by the Free Software Foundation@*
+59 Temple Place - Suite 330@*
+Boston, MA 02111-1307 USA
+@sp 1
+@insertcopying
@end ifnottex
@setchapternewpage odd
@@ -88,14 +88,12 @@ included in the section entitled ``GNU Free Documentation License''.
@sp 2
@center Richard M. Stallman
@sp 3
-@center Last updated 10 January 2002
+@center Last updated 28 December 2002
@sp 1
@center for GCC @value{version-GCC}
@page
@vskip 0pt plus 1filll
-@copyrightnotice{}
-@sp 2
For GCC Version @value{version-GCC}@*
@sp 1
Published by the Free Software Foundation @*
@@ -108,23 +106,7 @@ Printed copies are available for $50 each.@*
ISBN 1-882114-37-X
@end ifset
@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end titlepage
@summarycontents
@contents
diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi
index 9c0ac11d420..85d528982e1 100644
--- a/gcc/doc/gcov.texi
+++ b/gcc/doc/gcov.texi
@@ -1,14 +1,15 @@
@c Copyright (C) 1996, 1997, 1999, 2000, 2001,
-@c 2002 Free Software Foundation, Inc.
+@c 2002, 2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@ignore
@c man begin COPYRIGHT
-Copyright @copyright{} 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1996, 1997, 1999, 2000, 2001, 2002, 2003
+Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
@@ -31,7 +32,7 @@ included in the gfdl(7) man page.
@end ignore
@node Gcov
-@chapter @command{gcov}: a Test Coverage Program
+@chapter @command{gcov}---a Test Coverage Program
@command{gcov} is a tool you can use in conjunction with GCC to
test code coverage in your programs.
@@ -193,14 +194,15 @@ option is not supplied, it defaults to the current directory.
@end table
-Gcov should be run with the current directory the same as that when you
-invoked the compiler. Otherwise it will not be able to locate the source
-files. Gcov produces files called @file{@var{mangledname}.gcov} in the
-current directory. These contain the coverage information of the source
-file they correspond to. One @file{.gcov} file is produced for each
-source file containing code, which was compiled to produce the data
-files. The @file{.gcov} files contain the ':' separated fields along
-with program source code. The format is
+@command{gcov} should be run with the current directory the same as that
+when you invoked the compiler. Otherwise it will not be able to locate
+the source files. @command{gcov} produces files called
+@file{@var{mangledname}.gcov} in the current directory. These contain
+the coverage information of the source file they correspond to.
+One @file{.gcov} file is produced for each source file containing code,
+which was compiled to produce the data files. The @file{.gcov} files
+contain the ':' separated fields along with program source code. The
+format is
@smallexample
@var{execution_count}:@var{line_number}:@var{source line text}
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index e0d9a33cde6..31d52522553 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002
+@c Copyright (C) 2002, 2003
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -184,10 +184,10 @@ specify the real type of a field identified by @code{use_param1} through
@findex use_params
@item use_params
-When a structure contains another structure that is parameterised,
-there's no need to do anything special, the inner stucture inherits the
+When a structure contains another structure that is parameterized,
+there's no need to do anything special, the inner structure inherits the
parameters of the outer one. When a structure contains a pointer to a
-parameterised structure, the type machinery won't automatically detect
+parameterized structure, the type machinery won't automatically detect
this (it could, it just doesn't yet), so it's necessary to tell it that
the pointed-to structure should use the same parameters as the outer
structure. This is done by marking the pointer with the
diff --git a/gcc/doc/headerdirs.texi b/gcc/doc/headerdirs.texi
index 17db57f0560..bc7f07f36be 100644
--- a/gcc/doc/headerdirs.texi
+++ b/gcc/doc/headerdirs.texi
@@ -6,28 +6,27 @@
@chapter Standard Header File Directories
@code{GCC_INCLUDE_DIR} means the same thing for native and cross. It is
-where GNU CC stores its private include files, and also where GNU CC
-stores the fixed include files. A cross compiled GNU CC runs
+where GCC stores its private include files, and also where GCC
+stores the fixed include files. A cross compiled GCC runs
@code{fixincludes} on the header files in @file{$(tooldir)/include}.
(If the cross compilation header files need to be fixed, they must be
-installed before GNU CC is built. If the cross compilation header files
-are already suitable for ISO C and GNU CC, nothing special need be
-done).
+installed before GCC is built. If the cross compilation header files
+are already suitable for GCC, nothing special need be done).
@code{GPLUSPLUS_INCLUDE_DIR} means the same thing for native and cross. It
-is where @code{g++} looks first for header files. The C++ library
+is where @command{g++} looks first for header files. The C++ library
installs only target independent header files in that directory.
-@code{LOCAL_INCLUDE_DIR} is used only by native compilers. GNU CC
+@code{LOCAL_INCLUDE_DIR} is used only by native compilers. GCC
doesn't install anything there. It is normally
@file{/usr/local/include}. This is where local additions to a packaged
system should place header files.
-@code{CROSS_INCLUDE_DIR} is used only by cross compilers. GNU CC
+@code{CROSS_INCLUDE_DIR} is used only by cross compilers. GCC
doesn't install anything there.
@code{TOOL_INCLUDE_DIR} is used for both native and cross compilers. It
-is the place for other packages to install header files that GNU CC will
+is the place for other packages to install header files that GCC will
use. For a cross-compiler, this is the equivalent of
@file{/usr/include}. When you build a cross-compiler,
@code{fixincludes} processes any header files in this directory.
diff --git a/gcc/doc/include/fdl.texi b/gcc/doc/include/fdl.texi
index 1f3d8b6521d..2a4da780e10 100644
--- a/gcc/doc/include/fdl.texi
+++ b/gcc/doc/include/fdl.texi
@@ -33,10 +33,10 @@ of this license document, but changing it is not allowed.
@end ifclear
@cindex FDL, GNU Free Documentation License
-@center Version 1.1, March 2000
+@center Version 1.2, November 2002
@display
-Copyright @copyright{} 2000 Free Software Foundation, Inc.
+Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
@@ -48,12 +48,12 @@ of this license document, but changing it is not allowed.
PREAMBLE
The purpose of this License is to make a manual, textbook, or other
-written document @dfn{free} in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
+functional and useful document @dfn{free} in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
This License is a kind of ``copyleft'', which means that derivative
works of the document must themselves be free in the same sense. It
@@ -71,57 +71,69 @@ principally for works whose purpose is instruction or reference.
@item
APPLICABILITY AND DEFINITIONS
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The ``Document'', below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as ``you''.
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The ``Document'', below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as ``you''. You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
A ``Modified Version'' of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
-A ``Secondary Section'' is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
+A ``Secondary Section'' is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
The ``Invariant Sections'' are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
The ``Cover Texts'' are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
A ``Transparent'' copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
+general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not ``Transparent'' is called ``Opaque''.
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not ``Transparent'' is called ``Opaque''.
Examples of suitable formats for Transparent copies include plain
-@sc{ascii} without markup, Texinfo input format, La@TeX{} input format,
-@acronym{SGML} or @acronym{XML} using a publicly available
-@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed
-for human modification. Opaque formats include PostScript,
-@acronym{PDF}, proprietary formats that can be read and edited only by
-proprietary word processors, @acronym{SGML} or @acronym{XML} for which
-the @acronym{DTD} and/or processing tools are not generally available,
-and the machine-generated @acronym{HTML} produced by some word
-processors for output purposes only.
+@sc{ascii} without markup, Texinfo input format, La@TeX{} input
+format, @acronym{SGML} or @acronym{XML} using a publicly available
+@acronym{DTD}, and standard-conforming simple @acronym{HTML},
+PostScript or @acronym{PDF} designed for human modification. Examples
+of transparent image formats include @acronym{PNG}, @acronym{XCF} and
+@acronym{JPG}. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, @acronym{SGML} or
+@acronym{XML} for which the @acronym{DTD} and/or processing tools are
+not generally available, and the machine-generated @acronym{HTML},
+PostScript or @acronym{PDF} produced by some word processors for
+output purposes only.
The ``Title Page'' means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
@@ -130,6 +142,21 @@ formats which do not have any title page as such, ``Title Page'' means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
@item
VERBATIM COPYING
@@ -149,9 +176,10 @@ you may publicly display copies.
@item
COPYING IN QUANTITY
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
@@ -169,16 +197,15 @@ pages.
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
@@ -206,7 +233,8 @@ if the original publisher of that version gives permission.
List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
-Document (all of its principal authors, if it has less than five).
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
@item
State on the Title page the name of the publisher of the
@@ -232,10 +260,10 @@ and required Cover Texts given in the Document's license notice.
Include an unaltered copy of this License.
@item
-Preserve the section entitled ``History'', and its title, and add to
-it an item stating at least the title, year, new authors, and
+Preserve the section Entitled ``History'', Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
-there is no section entitled ``History'' in the Document, create one
+there is no section Entitled ``History'' in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
@@ -250,10 +278,10 @@ least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
@item
-In any section entitled ``Acknowledgments'' or ``Dedications'',
-preserve the section's title, and preserve in the section all the
-substance and tone of each of the contributor acknowledgments
-and/or dedications given therein.
+For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
@item
Preserve all the Invariant Sections of the Document,
@@ -261,12 +289,15 @@ unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
@item
-Delete any section entitled ``Endorsements''. Such a section
+Delete any section Entitled ``Endorsements''. Such a section
may not be included in the Modified Version.
@item
-Do not retitle any existing section as ``Endorsements''
-or to conflict in title with any Invariant Section.
+Do not retitle any existing section to be Entitled ``Endorsements'' or
+to conflict in title with any Invariant Section.
+
+@item
+Preserve any Warranty Disclaimers.
@end enumerate
If the Modified Version includes new front-matter sections or
@@ -276,7 +307,7 @@ of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
-You may add a section entitled ``Endorsements'', provided it contains
+You may add a section Entitled ``Endorsements'', provided it contains
nothing but endorsements of your Modified Version by various
parties---for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
@@ -304,7 +335,7 @@ License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
-license notice.
+license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
@@ -315,11 +346,11 @@ author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
-In the combination, you must combine any sections entitled ``History''
-in the various original documents, forming one section entitled
-``History''; likewise combine any sections entitled ``Acknowledgments'',
-and any sections entitled ``Dedications''. You must delete all sections
-entitled ``Endorsements.''
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''. You must delete all
+sections Entitled ``Endorsements.''
@item
COLLECTIONS OF DOCUMENTS
@@ -340,18 +371,20 @@ AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an ``aggregate'', and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
+distribution medium, is called an ``aggregate'' if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
@item
TRANSLATION
@@ -362,10 +395,17 @@ Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
+translation of this License, and all the license notices in the
+Document, and any Warrany Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
@item
TERMINATION
@@ -408,19 +448,28 @@ license notices just after the title page:
@group
Copyright (C) @var{year} @var{your name}.
Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
+ under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
- with the Invariant Sections being @var{list their titles}, with the
- Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
@end group
@end smallexample
-If you have no Invariant Sections, write ``with no Invariant Sections''
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write ``no Front-Cover Texts'' instead of
-``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+@smallexample
+@group
+ with the Invariant Sections being @var{list their titles}, with
+ the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
+ being @var{list}.
+@end group
+@end smallexample
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
diff --git a/gcc/doc/include/gcc-common.texi b/gcc/doc/include/gcc-common.texi
index 800dfefe402..77326f48064 100644
--- a/gcc/doc/include/gcc-common.texi
+++ b/gcc/doc/include/gcc-common.texi
@@ -4,7 +4,12 @@
@c Common values used in the GCC manuals:
-@set version-GCC 3.3
+@set version-GCC 3.3.6
+
+@c DEVELOPMENT is set to indicate an in-development version,
+@c as compared to a release version. When making a release
+@c branch, clear this.
+@clear DEVELOPMENT
@c Common macros to support generating man pages:
diff --git a/gcc/doc/include/gpl.texi b/gcc/doc/include/gpl.texi
index 4304b724e0d..eaff30c477b 100644
--- a/gcc/doc/include/gpl.texi
+++ b/gcc/doc/include/gpl.texi
@@ -7,7 +7,7 @@ gfdl(7), fsf-funding(7).
@c man end
@c man begin COPYRIGHT
Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -20,7 +20,7 @@ of this license document, but changing it is not allowed.
@display
Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -365,9 +365,8 @@ 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.
+along with this program; if not, write to the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
@end smallexample
Also add information on how to contact you by electronic and paper mail.
diff --git a/gcc/doc/include/texinfo.tex b/gcc/doc/include/texinfo.tex
index 99113dd71ba..e9293f3b9d5 100644
--- a/gcc/doc/include/texinfo.tex
+++ b/gcc/doc/include/texinfo.tex
@@ -3,10 +3,10 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2002-03-01.06}
+\def\texinfoversion{2003-05-04.08}
%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
-% 2000, 01, 02 Free Software Foundation, Inc.
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -29,18 +29,16 @@
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/gnu/texinfo.tex
+% ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-% ftp://texinfo.org/texinfo/texinfo.tex
% ftp://tug.org/tex/texinfo.tex
% (and all CTAN mirrors, see http://www.ctan.org),
% and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+%
% The texinfo.tex in any given Texinfo distribution could well be out
% of date, so if that's what you're using, please check.
-%
-% Texinfo has a small home page at http://texinfo.org/ and also
-% http://www.gnu.org/software/texinfo.
%
% Send bug reports to bug-texinfo@gnu.org. Please include including a
% complete document in each bug report with which we can reproduce the
@@ -53,13 +51,14 @@
% texindex foo.??
% tex foo.texi
% tex foo.texi
-% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
+% dvips foo.dvi -o # or whatever; this makes foo.ps.
% The extra TeX runs get the cross-reference information correct.
% Sometimes one run after texindex suffices, and sometimes you need more
% than two; texi2dvi does it as many times as necessary.
%
-% It is possible to adapt texinfo.tex for other languages. You can get
-% the existing language-specific files from the full Texinfo distribution.
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent. You can get the existing language-specific files from the
+% full Texinfo distribution.
\message{Loading texinfo [version \texinfoversion]:}
@@ -69,7 +68,14 @@
\everyjob{\message{[Texinfo version \texinfoversion]}%
\catcode`+=\active \catcode`\_=\active}
-% Save some parts of plain tex whose names we will redefine.
+\message{Basics,}
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
\let\ptexb=\b
\let\ptexbullet=\bullet
\let\ptexc=\c
@@ -79,19 +85,18 @@
\let\ptexend=\end
\let\ptexequiv=\equiv
\let\ptexexclam=\!
+\let\ptexgtr=>
+\let\ptexhat=^
\let\ptexi=\i
+\let\ptexindent=\indent
\let\ptexlbrace=\{
+\let\ptexless=<
+\let\ptexplus=+
\let\ptexrbrace=\}
+\let\ptexslash=\/
\let\ptexstar=\*
\let\ptext=\t
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-\message{Basics,}
-\chardef\other=12
-
% If this character appears in an error message or help string, it
% starts a new line in the output.
\newlinechar = `^^J
@@ -138,44 +143,69 @@
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
+% In some macros, we cannot use the `\? notation---the left quote is
+% in some cases the escape char.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dotChar = `\.
+\chardef\equalChar = `\=
+\chardef\exclamChar= `\!
+\chardef\questChar = `\?
+\chardef\semiChar = `\;
+\chardef\spaceChar = `\ %
+\chardef\underChar = `\_
+
% Ignore a token.
%
\def\gobble#1{}
+% True if #1 is the empty string, i.e., called like `\ifempty{}'.
+%
+\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}%
+\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}%
+
+% Hyphenation fixes.
\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
\hyphenation{eshell}
+\hyphenation{mini-buf-fer mini-buf-fers}
+\hyphenation{time-stamp}
\hyphenation{white-space}
% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
+\newdimen\bindingoffset
+\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
+% since that produces some useless output on the terminal. We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
%
\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \tracingscantokens1 \tracingassigns1 \tracingifs1
- \tracinggroups1 \tracingnesting2
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
+\def\loggingall{%
+ \tracingstats2
+ \tracingpages1
+ \tracinglostchars2 % 2 gives us more in etex
+ \tracingparagraphs1
+ \tracingoutput1
+ \tracingmacros2
+ \tracingrestores1
+ \showboxbreadth\maxdimen \showboxdepth\maxdimen
+ \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \tracingscantokens1
+ \tracingifs1
+ \tracinggroups1
+ \tracingnesting2
+ \tracingassigns1
+ \fi
+ \tracingcommands3 % 3 gives us more in etex
+ \errorcontextlines\maxdimen
}%
-\fi
% add check for \lastpenalty to plain's definitions. If the last thing
% we did was a \nobreak, we don't want to insert more space.
-%
+%
\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
\removelastskip\penalty-50\smallskip\fi\fi}
\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
@@ -276,7 +306,7 @@
\egroup % \vbox from first cropmarks clause
\fi
}% end of \shipout\vbox
- }% end of group with \turnoffactive
+ }% end of group with \normalturnoffactive
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi
}
@@ -436,17 +466,6 @@
}
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading\singlespaceskip
-}
-
%% Simple single-character @ commands
% @@ prints an @
@@ -466,16 +485,19 @@
\let\{=\mylbrace
\let\}=\myrbrace
\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux file.
+ \catcode`\{ = \other \catcode`\} = \other
\catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
\let\, = \c
\let\dotaccent = \.
\def\ringaccent#1{{\accent23 #1}}
@@ -484,7 +506,7 @@
\let\udotaccent = \d
% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
\def\questiondown{?`}
\def\exclamdown{!`}
@@ -517,6 +539,9 @@
% @* forces a line break.
\def\*{\hfil\break\hbox{}\ignorespaces}
+% @/ allows a line break.
+\let\/=\allowbreak
+
% @. is an end-of-sentence period.
\def\.{.\spacefactor=3000 }
@@ -539,6 +564,16 @@
% therefore, no glue is inserted, and the space between the headline and
% the text is small, which looks bad.
%
+% Another complication is that the group might be very large. This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material. In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom. The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
\def\group{\begingroup
\ifnum\catcode13=\active \else
\errhelp = \groupinvalidhelp
@@ -552,10 +587,22 @@
% above. But it's pretty close.
\def\Egroup{%
\egroup % End the \vtop.
+ % \dimen0 is the vertical size of the group's box.
+ \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
+ % \dimen2 is how much space is left on the page (more or less).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \copy\groupbox
\endgroup % End the \group.
}%
%
- \vtop\bgroup
+ \setbox\groupbox = \vtop\bgroup
% We have to put a strut on the last line in case the @group is in
% the midst of an example, rather than completely enclosing it.
% Otherwise, the interline space between the last line of the group
@@ -680,8 +727,7 @@ where each line of input produces a line of output.}
\spacefactor=3000
}
-
-% @page forces the start of a new page
+% @page forces the start of a new page.
%
\def\page{\par\vfill\supereject}
@@ -730,10 +776,10 @@ where each line of input produces a line of output.}
% @inmargin{TEXT [, RIGHT-TEXT]}
% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
% else use TEXT for both).
-%
+%
\def\inmargin#1{\parseinmargin #1,,\finish}
\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
- \setbox0 = \hbox{\ignorespaces #2}%
+ \setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\def\lefttext{#1}% have both texts
\def\righttext{#2}%
@@ -753,30 +799,36 @@ where each line of input produces a line of output.}
% @include file insert text of that file as input.
% Allow normal characters that we make active in the argument (a file name).
\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
\parsearg\includezzz}
% Restore active chars for included file.
\def\includezzz#1{\endgroup\begingroup
% Read the included file in a group so nested @include's work.
\def\thisfile{#1}%
+ \let\value=\expandablevalue
\input\thisfile
\endgroup}
\def\thisfile{}
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
+% @center line
+% outputs that line, centered.
+%
+\def\center{\parsearg\docenter}
+\def\docenter#1{{%
+ \ifhmode \hfil\break \fi
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{\hfil \ignorespaces#1\unskip \hfil}%
+ \ifhmode \break \fi
+}}
% @sp n outputs n lines of vertical space
@@ -796,8 +848,9 @@ where each line of input produces a line of output.}
% @paragraphindent NCHARS
% We'll use ems for NCHARS, close enough.
-% We cannot implement @paragraphindent asis, though.
-%
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
\def\asisword{asis} % no translation, these are keywords
\def\noneword{none}
%
@@ -832,6 +885,53 @@ where each line of input produces a line of output.}
\fi
}
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading. If WORD is `insert', then do indentat such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do. We
+% switch the definition of this back and forth according to WORD. By
+% default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\newdimen\currentparindent
+%
+\def\insertword{insert}
+%
+\def\firstparagraphindent{\parsearg\dofirstparagraphindent}
+\def\dofirstparagraphindent#1{%
+ \def\temp{#1}%
+ \ifx\temp\noneword
+ \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+ \else\ifx\temp\insertword
+ \let\suppressfirstparagraphindent = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @firstparagraphindent option `\temp'}%
+ \fi\fi
+}
+
+% Here is how we actually suppress indentation. Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+ \gdef\indent{%
+ \global\let\indent=\ptexindent
+ \global\everypar = {}%
+ }%
+ \global\everypar = {%
+ \kern-\parindent
+ \global\let\indent=\ptexindent
+ \global\everypar = {}%
+ }%
+}%
+
+
% @asis just yields its argument. Used with @table, for example.
%
\def\asis#1{#1}
@@ -840,29 +940,53 @@ where each line of input produces a line of output.}
% We don't use $'s directly in the definition of \math because we need
% to set catcodes according to plain TeX first, to allow for subscripts,
% superscripts, special math chars, etc.
-%
-% @math does not do math typesetting in section titles, index
-% entries, and other such contexts where the catcodes are set before
-% @math gets a chance to work. This could perhaps be fixed, but for now
-% at least we can have real math in the main text, where it's needed most.
%
-%
\let\implicitmath = $%$ font-lock fix
%
% One complication: _ usually means subscripts, but it could also mean
% an actual _ character, as in @math{@var{some_variable} + 1}. So make
% _ within @math be active (mathcode "8000), and distinguish by seeing
% if the current family is \slfam, which is what @var uses.
-%
-{\catcode95 = \active % 95 = _
+%
+{\catcode\underChar = \active
\gdef\mathunderscore{%
- \catcode95=\active
- \def_{\ifnum\fam=\slfam\_\else\sb\fi}%
+ \catcode\underChar=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
}}
%
-\def\math{\tex\mathcode`\_="8000\mathunderscore \implicitmath\finishmath}
+% Another complication: we want \\ (and @\) to output a \ character.
+% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+% this is not advertised and we don't care. Texinfo does not
+% otherwise define @\.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathcode`\_="8000 \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ \implicitmath\finishmath}
\def\finishmath#1{#1\implicitmath\Etex}
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an
+% argument to a command which set the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ }
+}
+
% @bullet and @minus need the same treatment as @math, just above.
\def\bullet{\implicitmath\ptexbullet\implicitmath}
\def\minus{\implicitmath-\implicitmath}
@@ -954,7 +1078,7 @@ where each line of input produces a line of output.}
\ifx\empty\imagewidth\else width \imagewidth \fi
\ifx\empty\imageheight\else height \imageheight \fi
\ifnum\pdftexversion<13
- #1.pdf%
+ #1.pdf%
\else
{#1.pdf}%
\fi
@@ -975,41 +1099,40 @@ where each line of input produces a line of output.}
\def\pdfmakeoutlines{{%
\openin 1 \jobname.toc
\ifeof 1\else\begingroup
- \closein 1
- \indexnofonts
- \def\tt{}
- \let\_ = \normalunderscore
- % Thanh's hack / proper braces in bookmarks
+ \closein 1
+ % Thanh's hack / proper braces in bookmarks
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
%
\def\chapentry ##1##2##3{}
- \let\appendixentry = \chapentry
- \def\unnumbchapentry ##1##2{}
\def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \def\unnumbsubsubsecentry ##1##2{}
+ \let\appendixentry = \chapentry
+ \let\unnumbchapentry = \chapentry
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
\input \jobname.toc
\def\chapentry ##1##2##3{%
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
- \let\appendixentry = \chapentry
- \def\unnumbchapentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\secentry ##1##2##3##4{%
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
- \def\unnumbsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsecentry ##1##2##3##4##5{%
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
- \def\unnumbsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
\def\subsubsecentry ##1##2##3##4##5##6{%
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
- \def\unnumbsubsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
+ \let\appendixentry = \chapentry
+ \let\unnumbchapentry = \chapentry
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
+ %
+ % Make special characters normal for writing to the pdf file.
+ %
+ \indexnofonts
+ \let\tt=\relax
+ \turnoffactive
\input \jobname.toc
\endgroup\fi
}}
@@ -1021,7 +1144,7 @@ where each line of input produces a line of output.}
\let\nextmakelinks=\makelinks
\ifnum\lnkcount>0,\fi
\picknum{#1}%
- \startlink attr{/Border [0 0 0]}
+ \startlink attr{/Border [0 0 0]}
goto name{\pdfmkpgn{\the\pgn}}%
\linkcolor #1%
\advance\lnkcount by 1%
@@ -1076,7 +1199,7 @@ where each line of input produces a line of output.}
\ifx\first0\adn0
\else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
\else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
\else
\ifnum0=\countA\else\makelink\fi
\ifx\first.\let\next=\done\else
@@ -1159,7 +1282,7 @@ where each line of input produces a line of output.}
\newcount\mainmagstep
\ifx\bigger\relax
% not really supported.
- \let\mainmagstep=\magstep1
+ \mainmagstep=\magstep1
\setfont\textrm\rmshape{12}{1000}
\setfont\texttt\ttshape{12}{1000}
\else
@@ -1167,9 +1290,10 @@ where each line of input produces a line of output.}
\setfont\textrm\rmshape{10}{\mainmagstep}
\setfont\texttt\ttshape{10}{\mainmagstep}
\fi
-% Instead of cmb10, you many want to use cmbx10.
+% Instead of cmb10, you may want to use cmbx10.
% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
+% looks better when embedded in a line with cmr10
+% (in Bob's opinion).
\setfont\textbf\bfshape{10}{\mainmagstep}
\setfont\textit\itshape{10}{\mainmagstep}
\setfont\textsl\slshape{10}{\mainmagstep}
@@ -1220,6 +1344,7 @@ where each line of input produces a line of output.}
\font\titlei=cmmi12 scaled \magstep3
\font\titlesy=cmsy10 scaled \magstep4
\def\authorrm{\secrm}
+\def\authortt{\sectt}
% Chapter (and unnumbered) fonts (17.28pt).
\setfont\chaprm\rmbshape{12}{\magstep2}
@@ -1317,7 +1442,25 @@ where each line of input produces a line of output.}
\let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
\let\tenttsl=\smallerttsl
\resetmathfonts \setleading{9.5pt}}
-\let\smallexamplefonts = \smallerfonts
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+% 8.5x11=86 smallbook=72 a4=90 a5=69
+% If we use \smallerfonts (8pt), then we can fit this many characters:
+% 8.5x11=90+ smallbook=80 a4=90+ a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt. So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+% 8.5x11=71 smallbook=60 a4=75 a5=58
+%
+% I wish we used A4 paper on this side of the Atlantic.
+%
+% --karl, 24jan03.
+
% Set up the default fonts, so we can use them for creating boxes.
%
@@ -1334,15 +1477,17 @@ where each line of input produces a line of output.}
\setfont\shortcontrm\rmshape{12}{1000}
\setfont\shortcontbf\bxshape{12}{1000}
\setfont\shortcontsl\slshape{12}{1000}
+\setfont\shortconttt\ttshape{12}{1000}
%% Add scribe-like font environments, plus @l for inline lisp (usually sans
%% serif) and @ii for TeX italic
% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+ \ptexslash\fi\fi\fi}
+\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
\let\i=\smartitalic
\let\var=\smartslanted
@@ -1360,6 +1505,17 @@ where each line of input produces a line of output.}
\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
\def\restorehyphenation{\hyphenchar\font = `- }
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\catcode`@=11
+ \def\frenchspacing{%
+ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+ \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ }
+\catcode`@=\other
+
\def\t#1{%
{\tt \rawbackslash \frenchspacing #1}%
\null
@@ -1431,11 +1587,19 @@ where each line of input produces a line of output.}
\def\realdash{-}
\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
+\def\codeunder{%
+ % this is all so @math{@code{var_name}+1} can work. In math mode, _
+ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+ % will therefore expand the active definition of _, which is us
+ % (inside @code that is), therefore an endless loop.
+ \ifusingtt{\ifmmode
+ \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+ \else\normalunderscore \fi
+ \discretionary{}{}{}}%
+ {\_}%
+}
\def\codex #1{\tclose{#1}\endgroup}
-%\let\exp=\tclose %Was temporary
-
% @kbd is like @code, except that if the argument is just one @key command,
% then @kbd has no effect.
@@ -1451,15 +1615,17 @@ where each line of input produces a line of output.}
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
\else\ifx\arg\wordcode
\gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle option `\arg'}%
\fi\fi\fi
}
\def\worddistinct{distinct}
\def\wordexample{example}
\def\wordcode{code}
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
+% Default is `distinct.'
+\kbdinputstyle distinct
\def\xkey{\key}
\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
@@ -1502,7 +1668,7 @@ where each line of input produces a line of output.}
% rms does not like angle brackets --karl, 17may97.
% So now @email is just like @uref, unless we are pdf.
-%
+%
%\def\email#1{\angleleft{\tt #1}\angleright}
\ifpdf
\def\email#1{\doemail#1,,\finish}
@@ -1547,6 +1713,16 @@ where each line of input produces a line of output.}
% @pounds{} is a sterling sign.
\def\pounds{{\it\$}}
+% @registeredsymbol - R in a circle. For now, only works in text size;
+% we'd have to redo the font mechanism to change the \scriptstyle and
+% \scriptscriptstyle font sizes to make it look right in headings.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+ $^{{\ooalign{\hfil\raise.07ex\hbox{$\scriptstyle\rm R$}\hfil\crcr\Orb}}%
+ }$%
+}
+
\message{page headings,}
@@ -1573,7 +1749,8 @@ where each line of input produces a line of output.}
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
%
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
+ \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ \let\tt=\authortt}%
%
% Leave some space at the very top of the page.
\vglue\titlepagetopglue
@@ -1637,8 +1814,6 @@ where each line of input produces a line of output.}
\global\let\contents = \relax
\global\let\shortcontents = \relax
\fi
- %
- \ifpdf \pdfmakepagedesttrue \fi
}
\def\finishtitlepage{%
@@ -1856,10 +2031,18 @@ where each line of input produces a line of output.}
% \parskip glue -- logically it's part of the @item we just started.
\nobreak \vskip-\parskip
%
- % Stop a page break at the \parskip glue coming up. Unfortunately
+ % Stop a page break at the \parskip glue coming up. (Unfortunately
% we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
+ % \baselineskip glue.) However, if what follows is an environment
+ % such as @example, there will be no \parskip glue; then
+ % the negative vskip we just would cause the example and the item to
+ % crash together. So we use this bizarre value of 10001 as a signal
+ % to \aboveenvbreak to insert \parskip glue after all.
+ % (Possibly there are other commands that could be followed by
+ % @example which need the same treatment, but not section titles; or
+ % maybe section titles are the only special case and they should be
+ % penalty 10001...)
+ \penalty 10001
\endgroup
\itemxneedsnegativevskipfalse
\else
@@ -1952,23 +2135,21 @@ where each line of input produces a line of output.}
\itemizey {#1}{\Eitemize}
}
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
+\def\itemizey#1#2{%
+ \aboveenvbreak
+ \itemmax=\itemindent
+ \advance\itemmax by -\itemmargin
+ \advance\leftskip by \itemindent
+ \exdentamount=\itemindent
+ \parindent=0pt
+ \parskip=\smallskipamount
+ \ifdim\parskip=0pt \parskip=2pt \fi
+ \def#2{\endgraf\afterenvbreak\endgroup}%
+ \def\itemcontents{#1}%
+ % @itemize with no arg is equivalent to @itemize @bullet.
+ \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+ \let\item=\itemizeitem
+}
% \splitoff TOKENS\endmark defines \first to be the first token in
% TOKENS, and \rest to be the remainder.
@@ -2191,8 +2372,8 @@ where each line of input produces a line of output.}
\let\go\pickupwholefraction
\else
\global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
+ \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+ % separator; typically that is always in the input, anyway.
\expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
\fi
\fi
@@ -2207,18 +2388,18 @@ where each line of input produces a line of output.}
\go
}
-% This used to have \hskip1sp. But then the space in a template line is
-% not enough. That is bad. So let's go back to just & until we
-% encounter the problem it was intended to solve again.
-% --karl, nathan@acm.org, 20apr99.
-\def\tab{&}
-
% @multitable ... @end multitable definitions:
%
\def\multitable{\parsearg\dotable}
\def\dotable#1{\bgroup
\vskip\parskip
- \let\item\crcr
+ \let\item=\crcrwithfootnotes
+ % A \tab used to include \hskip1sp. But then the space in a template
+ % line is not enough. That is bad. So let's go back to just & until
+ % we encounter the problem it was intended to solve again. --karl,
+ % nathan@acm.org, 20apr99.
+ \let\tab=&%
+ \let\startfootins=\startsavedfootnote
\tolerance=9500
\hbadness=9500
\setmultitablespacing
@@ -2226,7 +2407,11 @@ where each line of input produces a line of output.}
\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
+ \def\Emultitable{%
+ \global\setpercentfalse
+ \crcrwithfootnotes\crcr
+ \egroup\egroup
+ }%
%
% To parse everything between @multitable and @item:
\setuptable#1 \endsetuptable
@@ -2315,6 +2500,25 @@ width0pt\relax} \fi
%% than skip between lines in the table.
\fi}
+% In case a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is
+% finished. Otherwise, the insertion is lost, it never migrates to the
+% main vertical list. --kasal, 22jan03.
+%
+\newbox\savedfootnotes
+%
+% \dotable \let's \startfootins to this, so that \dofootnote will call
+% it instead of starting the insertion right away.
+\def\startsavedfootnote{%
+ \global\setbox\savedfootnotes = \vbox\bgroup
+ \unvbox\savedfootnotes
+}
+\def\crcrwithfootnotes{%
+ \crcr
+ \ifvoid\savedfootnotes \else
+ \noalign{\insert\footins{\box\savedfootnotes}}%
+ \fi
+}
\message{conditionals,}
% Prevent errors for section commands.
@@ -2350,66 +2554,117 @@ width0pt\relax} \fi
% and so want to turn off most commands, in case they are used
% incorrectly.
%
+% We use \empty instead of \relax for the @def... commands, so that \end
+% doesn't throw an error. For instance:
+% @ignore
+% @deffn ...
+% @end deffn
+% @end ignore
+%
+% The @end deffn is going to get expanded, because we're trying to allow
+% nested conditionals. But we don't want to expand the actual @deffn,
+% since it might be syntactically correct and intended to be ignored.
+% Since \end checks for \relax, using \empty does not cause an error.
+%
\def\ignoremorecommands{%
\let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
+ \let\defcv = \empty
+ \let\defcvx = \empty
+ \let\Edefcv = \empty
+ \let\deffn = \empty
+ \let\deffnx = \empty
+ \let\Edeffn = \empty
\let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypeivar = \relax
- \let\deftypeop = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
+ \let\defivar = \empty
+ \let\defivarx = \empty
+ \let\Edefivar = \empty
+ \let\defmac = \empty
+ \let\defmacx = \empty
+ \let\Edefmac = \empty
+ \let\defmethod = \empty
+ \let\defmethodx = \empty
+ \let\Edefmethod = \empty
+ \let\defop = \empty
+ \let\defopx = \empty
+ \let\Edefop = \empty
+ \let\defopt = \empty
+ \let\defoptx = \empty
+ \let\Edefopt = \empty
+ \let\defspec = \empty
+ \let\defspecx = \empty
+ \let\Edefspec = \empty
+ \let\deftp = \empty
+ \let\deftpx = \empty
+ \let\Edeftp = \empty
+ \let\deftypefn = \empty
+ \let\deftypefnx = \empty
+ \let\Edeftypefn = \empty
+ \let\deftypefun = \empty
+ \let\deftypefunx = \empty
+ \let\Edeftypefun = \empty
+ \let\deftypeivar = \empty
+ \let\deftypeivarx = \empty
+ \let\Edeftypeivar = \empty
+ \let\deftypemethod = \empty
+ \let\deftypemethodx = \empty
+ \let\Edeftypemethod = \empty
+ \let\deftypeop = \empty
+ \let\deftypeopx = \empty
+ \let\Edeftypeop = \empty
+ \let\deftypevar = \empty
+ \let\deftypevarx = \empty
+ \let\Edeftypevar = \empty
+ \let\deftypevr = \empty
+ \let\deftypevrx = \empty
+ \let\Edeftypevr = \empty
+ \let\defun = \empty
+ \let\defunx = \empty
+ \let\Edefun = \empty
+ \let\defvar = \empty
+ \let\defvarx = \empty
+ \let\Edefvar = \empty
+ \let\defvr = \empty
+ \let\defvrx = \empty
+ \let\Edefvr = \empty
+ \let\clear = \relax
+ \let\down = \relax
+ \let\evenfooting = \relax
\let\evenheading = \relax
- \let\oddheading = \relax
\let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
+ \let\everyheading = \relax
\let\headings = \relax
\let\include = \relax
+ \let\item = \relax
\let\lowersections = \relax
- \let\down = \relax
+ \let\oddfooting = \relax
+ \let\oddheading = \relax
+ \let\printindex = \relax
+ \let\pxref = \relax
\let\raisesections = \relax
- \let\up = \relax
+ \let\ref = \relax
\let\set = \relax
- \let\clear = \relax
- \let\item = \relax
+ \let\setchapternewpage = \relax
+ \let\setchapterstyle = \relax
+ \let\settitle = \relax
+ \let\up = \relax
+ \let\verbatiminclude = \relax
+ \let\xref = \relax
}
-% Ignore @ignore ... @end ignore.
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
%
-\def\ignore{\doignore{ignore}}
-
-% Also ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu,
-% @documentdescription, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
+\def\direntry{\doignore{direntry}}
+\def\documentdescriptionword{documentdescription}
+\def\documentdescription{\doignore{documentdescription}}
+\def\html{\doignore{html}}
\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
\def\menu{\doignore{menu}}
-\def\documentdescription{\doignore{documentdescription}}
-\def\direntry{\doignore{direntry}}
+\def\xml{\doignore{xml}}
% @dircategory CATEGORY -- specify a category of the dir file
% which this file should belong to. Ignore this in TeX.
@@ -2427,7 +2682,7 @@ width0pt\relax} \fi
\long\def\doignoretext##1@end #1{\enddoignore}%
%
% Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
+ \catcode\spaceChar = 10
%
% Ignore braces, too, so mismatched braces don't cause trouble.
\catcode`\{ = 9
@@ -2436,14 +2691,21 @@ width0pt\relax} \fi
% We must not have @c interpreted as a control sequence.
\catcode`\@ = 12
%
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
+ \def\ignoreword{#1}%
+ \ifx\ignoreword\documentdescriptionword
+ % The c kludge breaks documentdescription, since
+ % `documentdescription' contains a `c'. Means not everything will
+ % be ignored inside @documentdescription, but oh well...
+ \else
+ % Make the letter c a comment character so that the rest of the line
+ % will be ignored. This way, the document can have (for example)
+ % @c @end ifinfo
+ % and the @end ifinfo will be properly ignored.
+ % (We've just changed @ to catcode 12.)
+ \catcode`\c = 14
+ \fi
%
- % And now expand that command.
+ % And now expand the command defined above.
\doignoretext
}
@@ -2462,7 +2724,7 @@ width0pt\relax} \fi
\immediate\write16{If you are running another version of TeX, relax.}
\immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
\immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
+ \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)}
\immediate\write16{If you are stuck with version 3.0, run the}
\immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
\immediate\write16{ to use a workaround.}
@@ -2484,8 +2746,8 @@ width0pt\relax} \fi
% We must actually expand the ignored text to look for the @end
% command, so that nested ignore constructs work. Thus, we put the
% text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
+ % the chance of memory overflow, we follow the approach outlined on
+ % page 401 of the TeXbook.
%
\setbox0 = \vbox\bgroup
% Don't complain about control sequences we have declared \outer.
@@ -2506,8 +2768,8 @@ width0pt\relax} \fi
%
% Set the current font to be \nullfont, a TeX primitive, and define
% all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
+ % dummy.tfm, as suggested in the TeXbook, because some sites
+ % might not have that installed. Therefore, math mode will still
% produce output, but that should be an extremely small amount of
% stuff compared to the main input.
%
@@ -2536,7 +2798,7 @@ width0pt\relax} \fi
% Do minimal line-breaking.
\pretolerance = 10000
%
- % Do not execute instructions in @tex
+ % Do not execute instructions in @tex.
\def\tex{\doignore{tex}}%
% Do not execute macro definitions.
% `c' is a comment character, so the word `macro' will get cut off.
@@ -2581,7 +2843,7 @@ width0pt\relax} \fi
% we're called from @code, as @code{@value{foo-bar_}}. So \let any
% such active characters to their normal equivalents.
\gdef\value{\begingroup
- \catcode`\-=12 \catcode`\_=12
+ \catcode`\-=\other \catcode`\_=\other
\indexbreaks \let_\normalunderscore
\valuexxx}
}
@@ -2590,15 +2852,17 @@ width0pt\relax} \fi
% We have this subroutine so that we can handle at least some @value's
% properly in indexes (we \let\value to this in \indexdummies). Ones
% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable, since the result
-% winds up in the index file. This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
+% about that. The command has to be fully expandable (if the variable
+% is set), since the result winds up in the index file. This means that
+% if the variable's value contains other Texinfo commands, it's almost
+% certain it will fail (although perhaps we could fix that with
+% sufficient work to do a one-level expansion on the result, instead of
+% complete).
%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']}%
+ \message{Variable `#1', used in @value, is not set.}%
\else
\csname SET#1\endcsname
\fi
@@ -2607,13 +2871,14 @@ width0pt\relax} \fi
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
+\def\ifset{\parsearg\doifset}
+\def\doifset#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
+ \let\next=\ifsetfail
\else
- \expandafter\ifsetsucceed
+ \let\next=\ifsetsucceed
\fi
+ \next
}
\def\ifsetsucceed{\conditionalsucceed{ifset}}
\def\ifsetfail{\nestedignore{ifset}}
@@ -2622,51 +2887,39 @@ width0pt\relax} \fi
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
+\def\ifclear{\parsearg\doifclear}
+\def\doifclear#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
+ \let\next=\ifclearsucceed
\else
- \expandafter\ifclearfail
+ \let\next=\ifclearfail
\fi
+ \next
}
\def\ifclearsucceed{\conditionalsucceed{ifclear}}
\def\ifclearfail{\nestedignore{ifclear}}
\defineunmatchedend{ifclear}
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
+% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we
+% read the text following, through the first @end iftex (etc.). Make
+% `@end iftex' (etc.) valid only after an @iftex.
%
\def\iftex{\conditionalsucceed{iftex}}
\def\ifnothtml{\conditionalsucceed{ifnothtml}}
\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
+\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}}
\defineunmatchedend{iftex}
\defineunmatchedend{ifnothtml}
\defineunmatchedend{ifnotinfo}
+\defineunmatchedend{ifnotplaintext}
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
+% True conditional. Since \set globally defines its variables, we can
+% just start and end a group (to keep the @end definition undefined at
+% the outer level).
%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
+\def\conditionalsucceed#1{\begingroup
+ \expandafter\def\csname E#1\endcsname{\endgroup}%
+}
% @defininfoenclose.
\let\definfoenclose=\comment
@@ -2717,10 +2970,10 @@ width0pt\relax} \fi
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
-%
+%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
-%
+%
\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
@@ -2759,189 +3012,254 @@ width0pt\relax} \fi
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-%
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
\def\indexdummies{%
-\def\ { }%
-\def\@{@}% change to @@ when we switch to @ as escape char in aux files.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\normalturnoffactive
-%
-% Take care of the plain tex accent commands.
-\def\,##1{\realbackslash ,{##1}}%
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-% Take care of the plain tex special European modified letters.
-\def\AA{\realbackslash AA}%
-\def\AE{\realbackslash AE}%
-\def\L{\realbackslash L}%
-\def\OE{\realbackslash OE}%
-\def\O{\realbackslash O}%
-\def\aa{\realbackslash aa}%
-\def\ae{\realbackslash ae}%
-\def\l{\realbackslash l}%
-\def\oe{\realbackslash oe}%
-\def\o{\realbackslash o}%
-\def\ss{\realbackslash ss}%
-%
-% Although these internals commands shouldn't show up, sometimes they do.
-\def\bf{\realbackslash bf }%
-\def\gtr{\realbackslash gtr}%
-\def\hat{\realbackslash hat}%
-\def\less{\realbackslash less}%
-%\def\rm{\realbackslash rm }%
-\def\sf{\realbackslash sf}%
-\def\sl{\realbackslash sl }%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\tt{\realbackslash tt}%
-%
-\def\b##1{\realbackslash b {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-%
-\def\TeX{\realbackslash TeX}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\dots{\realbackslash dots }%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\math##1{\realbackslash math {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\strong##1{\realbackslash strong {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\w{\realbackslash w }%
-%
-% These math commands don't seem likely to be used in index entries.
-\def\copyright{\realbackslash copyright}%
-\def\equiv{\realbackslash equiv}%
-\def\error{\realbackslash error}%
-\def\expansion{\realbackslash expansion}%
-\def\point{\realbackslash point}%
-\def\print{\realbackslash print}%
-\def\result{\realbackslash result}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-% Turn off macro expansion
-\turnoffmacros
+ \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+ \def\ {\realbackslash\space }%
+ % Need these in case \tex is in effect and \{ is a \delimiter again.
+ % But can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters.
+ \let\{ = \mylbrace
+ \let\} = \myrbrace
+ %
+ % \definedummyword defines \#1 as \realbackslash #1\space, thus
+ % effectively preventing its expansion. This is used only for control
+ % words, not control letters, because the \space would be incorrect
+ % for control characters, but is needed to separate the control word
+ % from whatever follows.
+ %
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword##1{%
+ \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
+ }%
+ \def\definedummyletter##1{%
+ \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
+ }%
+ %
+ % Do the redefinitions.
+ \commondummies
+}
+
+% For the aux file, @ is the escape character. So we want to redefine
+% everything using @ instead of \realbackslash. When everything uses
+% @, this will be simpler.
+%
+\def\atdummies{%
+ \def\@{@@}%
+ \def\ {@ }%
+ \let\{ = \lbraceatcmd
+ \let\} = \rbraceatcmd
+ %
+ % (See comments in \indexdummies.)
+ \def\definedummyword##1{%
+ \expandafter\def\csname ##1\endcsname{@##1\space}%
+ }%
+ \def\definedummyletter##1{%
+ \expandafter\def\csname ##1\endcsname{@##1}%
+ }%
+ %
+ % Do the redefinitions.
+ \commondummies
+}
+
+% Called from \indexdummies and \atdummies. \definedummyword and
+% \definedummyletter must be defined first.
+%
+\def\commondummies{%
+ %
+ \normalturnoffactive
+ %
+ % Control letters and accents.
+ \definedummyletter{_}%
+ \definedummyletter{,}%
+ \definedummyletter{"}%
+ \definedummyletter{`}%
+ \definedummyletter{'}%
+ \definedummyletter{^}%
+ \definedummyletter{~}%
+ \definedummyletter{=}%
+ \definedummyword{u}%
+ \definedummyword{v}%
+ \definedummyword{H}%
+ \definedummyword{dotaccent}%
+ \definedummyword{ringaccent}%
+ \definedummyword{tieaccent}%
+ \definedummyword{ubaraccent}%
+ \definedummyword{udotaccent}%
+ \definedummyword{dotless}%
+ %
+ % Other non-English letters.
+ \definedummyword{AA}%
+ \definedummyword{AE}%
+ \definedummyword{L}%
+ \definedummyword{OE}%
+ \definedummyword{O}%
+ \definedummyword{aa}%
+ \definedummyword{ae}%
+ \definedummyword{l}%
+ \definedummyword{oe}%
+ \definedummyword{o}%
+ \definedummyword{ss}%
+ %
+ % Although these internal commands shouldn't show up, sometimes they do.
+ \definedummyword{bf}%
+ \definedummyword{gtr}%
+ \definedummyword{hat}%
+ \definedummyword{less}%
+ \definedummyword{sf}%
+ \definedummyword{sl}%
+ \definedummyword{tclose}%
+ \definedummyword{tt}%
+ %
+ % Texinfo font commands.
+ \definedummyword{b}%
+ \definedummyword{i}%
+ \definedummyword{r}%
+ \definedummyword{sc}%
+ \definedummyword{t}%
+ %
+ \definedummyword{TeX}%
+ \definedummyword{acronym}%
+ \definedummyword{cite}%
+ \definedummyword{code}%
+ \definedummyword{command}%
+ \definedummyword{dfn}%
+ \definedummyword{dots}%
+ \definedummyword{emph}%
+ \definedummyword{env}%
+ \definedummyword{file}%
+ \definedummyword{kbd}%
+ \definedummyword{key}%
+ \definedummyword{math}%
+ \definedummyword{option}%
+ \definedummyword{samp}%
+ \definedummyword{strong}%
+ \definedummyword{uref}%
+ \definedummyword{url}%
+ \definedummyword{var}%
+ \definedummyword{w}%
+ %
+ % Assorted special characters.
+ \definedummyword{bullet}%
+ \definedummyword{copyright}%
+ \definedummyword{dots}%
+ \definedummyword{enddots}%
+ \definedummyword{equiv}%
+ \definedummyword{error}%
+ \definedummyword{expansion}%
+ \definedummyword{minus}%
+ \definedummyword{pounds}%
+ \definedummyword{point}%
+ \definedummyword{print}%
+ \definedummyword{result}%
+ %
+ % Handle some cases of @value -- where the variable name does not
+ % contain - or _, and the value does not contain any
+ % (non-fully-expandable) commands.
+ \let\value = \expandablevalue
+ %
+ % Normal spaces, not active ones.
+ \unsepspaces
+ %
+ % No macro expansion.
+ \turnoffmacros
}
% If an index command is used in an @example environment, any spaces
% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
+% expansion of \tie (\leavevmode \penalty \@M \ ).
{\obeyspaces
\gdef\unsepspaces{\obeyspaces\let =\space}}
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
+
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names. It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
\def\indexdummytex{TeX}
\def\indexdummydots{...}
-
+%
\def\indexnofonts{%
-\def\@{@}%
-% how to handle braces?
-\def\_{\normalunderscore}%
-%
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\AA{AA}%
-\def\AE{AE}%
-\def\L{L}%
-\def\OE{OE}%
-\def\O{O}%
-\def\aa{aa}%
-\def\ae{ae}%
-\def\l{l}%
-\def\oe{oe}%
-\def\o{o}%
-\def\ss{ss}%
-%
-% Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |, etc.
-% Likewise with the other plain tex font commands.
-%\let\tt=\indexdummyfont
-%
-\let\b=\indexdummyfont
-\let\i=\indexdummyfont
-\let\r=\indexdummyfont
-\let\sc=\indexdummyfont
-\let\t=\indexdummyfont
-%
-\let\TeX=\indexdummytex
-\let\acronym=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\code=\indexdummyfont
-\let\command=\indexdummyfont
-\let\dfn=\indexdummyfont
-\let\dots=\indexdummydots
-\let\emph=\indexdummyfont
-\let\env=\indexdummyfont
-\let\file=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\math=\indexdummyfont
-\let\option=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\url=\indexdummyfont
-\let\var=\indexdummyfont
-\let\w=\indexdummyfont
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
+ \def\ { }%
+ \def\@{@}%
+ % how to handle braces?
+ \def\_{\normalunderscore}%
+ %
+ \let\,=\asis
+ \let\"=\asis
+ \let\`=\asis
+ \let\'=\asis
+ \let\^=\asis
+ \let\~=\asis
+ \let\==\asis
+ \let\u=\asis
+ \let\v=\asis
+ \let\H=\asis
+ \let\dotaccent=\asis
+ \let\ringaccent=\asis
+ \let\tieaccent=\asis
+ \let\ubaraccent=\asis
+ \let\udotaccent=\asis
+ \let\dotless=\asis
+ %
+ % Other non-English letters.
+ \def\AA{AA}%
+ \def\AE{AE}%
+ \def\L{L}%
+ \def\OE{OE}%
+ \def\O{O}%
+ \def\aa{aa}%
+ \def\ae{ae}%
+ \def\l{l}%
+ \def\oe{oe}%
+ \def\o{o}%
+ \def\ss{ss}%
+ \def\exclamdown{!}%
+ \def\questiondown{?}%
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
+ % Texinfo font commands.
+ \let\b=\asis
+ \let\i=\asis
+ \let\r=\asis
+ \let\sc=\asis
+ \let\t=\asis
+ %
+ \let\TeX=\indexdummytex
+ \let\acronym=\asis
+ \let\cite=\asis
+ \let\code=\asis
+ \let\command=\asis
+ \let\dfn=\asis
+ \let\dots=\indexdummydots
+ \let\emph=\asis
+ \let\env=\asis
+ \let\file=\asis
+ \let\kbd=\asis
+ \let\key=\asis
+ \let\math=\asis
+ \let\option=\asis
+ \let\samp=\asis
+ \let\strong=\asis
+ \let\uref=\asis
+ \let\url=\asis
+ \let\var=\asis
+ \let\w=\asis
+}
\let\indexbackslash=0 %overridden during \printindex.
\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
@@ -2973,28 +3291,24 @@ width0pt\relax} \fi
\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
% so it will be output as is; and it will print as backslash.
%
- \def\thirdarg{#3}%
- %
- % If third arg is present, precede it with space in sort key.
- \ifx\thirdarg\emptymacro
- \let\subentry = \empty
- \else
- \def\subentry{ #3}%
- \fi
- %
- % First process the index entry with all font commands turned
- % off to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
- %
- % Now the real index entry with the fonts.
+ % The main index entry text.
\toks0 = {#2}%
%
- % If the third (subentry) arg is present, add it to the index
- % line to write.
+ % If third arg is present, precede it with space in sort key.
+ \def\thirdarg{#3}%
\ifx\thirdarg\emptymacro \else
- \toks0 = \expandafter{\the\toks0{#3}}%
+ % If the third (subentry) arg is present, add it to the index
+ % line to write.
+ \toks0 = \expandafter{\the\toks0 \space #3}%
\fi
%
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
% Set up the complete index entry, with both the sort key and
% the original text, including any font commands. We write
% three arguments to \entry to the .?? file (four in the
@@ -3025,12 +3339,11 @@ width0pt\relax} \fi
\iflinks
\ifvmode
\skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
+ \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi
\fi
%
\temp % do the write
%
- %
\ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
\fi
}%
@@ -3080,6 +3393,7 @@ width0pt\relax} \fi
%
\smallfonts \rm
\tolerance = 9500
+ \everypar = {}% don't want the \kern\-parindent from indentation suppression.
\indexbreaks
%
% See if the index file exists and is nonempty.
@@ -3323,7 +3637,7 @@ width0pt\relax} \fi
\wd0=\hsize \wd2=\hsize
\hbox to\pagewidth{\box0\hfil\box2}%
}
-%
+%
% All done with double columns.
\def\enddoublecolumns{%
\output = {%
@@ -3461,6 +3775,7 @@ width0pt\relax} \fi
\numberedsubsubseczzz{#2}
\fi
\fi
+\suppressfirstparagraphindent
}
% like \numhead, but chooses appendix heading levels
@@ -3480,6 +3795,7 @@ width0pt\relax} \fi
\appendixsubsubseczzz{#2}
\fi
\fi
+\suppressfirstparagraphindent
}
% like \numhead, but chooses numberless heading levels
@@ -3499,6 +3815,7 @@ width0pt\relax} \fi
\unnumberedsubsubseczzz{#2}
\fi
\fi
+\suppressfirstparagraphindent
}
% @chapter, @appendix, @unnumbered.
@@ -3506,42 +3823,41 @@ width0pt\relax} \fi
\outer\def\chapter{\parsearg\chapteryyy}
\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
+ \secno=0 \subsecno=0 \subsubsecno=0
+ \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
+ \chapmacro {#1}{\the\chapno}%
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ % We don't substitute the actual chapter name into \thischapter
+ % because we don't want its macros evaluated now.
+ \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
+ \writetocentry{chap}{#1}{{\the\chapno}}
+ \donoderef
+ \global\let\section = \numberedsec
+ \global\let\subsection = \numberedsubsec
+ \global\let\subsubsection = \numberedsubsubsec
+}
+
+% we use \chapno to avoid indenting back
+\def\appendixbox#1{%
+ \setbox0 = \hbox{\putwordAppendix{} \the\chapno}%
+ \hbox to \wd0{#1\hss}}
\outer\def\appendix{\parsearg\appendixyyy}
\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}%
- {\appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
+ \secno=0 \subsecno=0 \subsubsecno=0
+ \global\advance \appendixno by 1
+ \message{\putwordAppendix\space \appendixletter}%
+ \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}%
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
+ \writetocentry{appendix}{#1}{{\appendixletter}}
+ \appendixnoderef
+ \global\let\section = \appendixsec
+ \global\let\subsection = \appendixsubsec
+ \global\let\subsubsection = \appendixsubsubsec
}
% @centerchap is like @unnumbered, but the heading is centered.
@@ -3554,149 +3870,121 @@ width0pt\relax} \fi
\outer\def\unnumbered{\parsearg\unnumberedyyy}
\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>. (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
+ \secno=0 \subsecno=0 \subsubsecno=0
+ %
+ % This used to be simply \message{#1}, but TeX fully expands the
+ % argument to \message. Therefore, if #1 contained @-commands, TeX
+ % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
+ % expanded @cite (which turns out to cause errors because \cite is meant
+ % to be executed, not expanded).
+ %
+ % Anyway, we don't want the fully-expanded definition of @cite to appear
+ % as a result of the \message, we just want `@cite' itself. We use
+ % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+ % simply yielding the contents of <toks register>. (We also do this for
+ % the toc entries.)
+ \toks0 = {#1}\message{(\the\toks0)}%
+ %
+ \unnumbchapmacro {#1}%
+ \gdef\thischapter{#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbchap}{#1}{{\the\chapno}}
+ \unnumbnoderef
+ \global\let\section = \unnumberedsec
+ \global\let\subsection = \unnumberedsubsec
+ \global\let\subsubsection = \unnumberedsubsubsec
}
% Sections.
\outer\def\numberedsec{\parsearg\secyyy}
\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
+ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
+ \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
+ \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsection{\parsearg\appendixsecyyy}
\outer\def\appendixsec{\parsearg\appendixsecyyy}
\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
+ \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
+ \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}}
+ \unnumbnoderef
+ \nobreak
}
% Subsections.
\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
+ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
+ \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
+ \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
+ \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
+ \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsubsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
+ \unnumbnoderef
+ \nobreak
}
% Subsubsections.
\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
+ \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
+ \subsubsecheading {#1}
+ {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
+ \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \donoderef
+ \nobreak
}
\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
+ \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
+ \subsubsecheading {#1}
+ {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
+ \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \appendixnoderef
+ \nobreak
}
\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
+ \plainsubsubsecheading {#1}\gdef\thissection{#1}%
+ \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
+ \unnumbnoderef
+ \nobreak
}
% These are variants which are not "outer", so they can appear in @ifinfo.
@@ -3737,16 +4025,16 @@ width0pt\relax} \fi
\def\majorheading{\parsearg\majorheadingzzz}
\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ {\advance\chapheadingskip by 10pt \chapbreak }%
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\penalty 200}
\def\chapheading{\parsearg\chapheadingzzz}
\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\raggedright
+ \rm #1\hfill}}\bigskip \par\penalty 200}
% @heading, @subheading, @subsubheading.
\def\heading{\parsearg\plainsecheading}
@@ -3892,7 +4180,16 @@ width0pt\relax} \fi
\hangindent = \wd0 % zero if no section number
\unhbox0 #3}%
}%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
+ % Add extra space after the heading -- either a line space or a
+ % paragraph space, whichever is more. (Some people like to set
+ % \parskip to large values for some reason.) Don't allow stretch, though.
+ \nobreak
+ \ifdim\parskip>\normalbaselineskip
+ \kern\parskip
+ \else
+ \kern\normalbaselineskip
+ \fi
+ \nobreak
}
@@ -3904,16 +4201,30 @@ width0pt\relax} \fi
% Called from @chapter, etc. We supply {\folio} at the end of the
% argument, which will end up as the last argument to the \...entry macro.
%
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
+% Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}}
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
%
\newif\iftocfileopened
-\def\writetocentry#1{%
+\def\writetocentry#1#2#3{%
\iftocfileopened\else
\immediate\openout\tocfile = \jobname.toc
\global\tocfileopenedtrue
\fi
- \iflinks \write\tocfile{#1{\folio}}\fi
+ %
+ \iflinks
+ \toks0 = {#2}%
+ \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}%
+ \temp
+ \fi
+ %
+ % Tell \shipout to create a page destination if we're doing pdf, which
+ % will be the target of the links in the table of contents. We can't
+ % just do it on every page because the title pages are numbered 1 and
+ % 2 (the page numbers aren't printed), and so are the first two pages
+ % of the document. Thus, we'd have two destinations named `1', and
+ % two named `2'.
+ \ifpdf \pdfmakepagedesttrue \fi
}
\newskip\contentsrightmargin \contentsrightmargin=1in
@@ -3944,7 +4255,7 @@ width0pt\relax} \fi
\advance\hsize by -\contentsrightmargin % Don't use the full line length.
%
% Roman numerals for page numbers.
- \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
}
@@ -3961,7 +4272,7 @@ width0pt\relax} \fi
\pdfmakeoutlines
\endgroup
\lastnegativepageno = \pageno
- \pageno = \savepageno
+ \global\pageno = \savepageno
}
% And just the chapters.
@@ -3973,16 +4284,17 @@ width0pt\relax} \fi
\let\unnumbchapentry = \shortunnumberedentry
% We want a true roman here for the page numbers.
\secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
\rm
\hyphenpenalty = 10000
\advance\baselineskip by 1pt % Open it up a little.
\def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
\def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
\def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
+ \let\unnumbsecentry = \secentry
+ \let\unnumbsubsecentry = \subsecentry
+ \let\unnumbsubsubsecentry = \subsubsecentry
\openin 1 \jobname.toc
\ifeof 1 \else
\closein 1
@@ -3992,7 +4304,7 @@ width0pt\relax} \fi
\contentsalignmacro % in case @setchapternewpage odd is in effect
\endgroup
\lastnegativepageno = \pageno
- \pageno = \savepageno
+ \global\pageno = \savepageno
}
\let\shortcontents = \summarycontents
@@ -4015,7 +4327,8 @@ width0pt\relax} \fi
}
% Appendices, in the main contents.
-\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}}
+\def\appendixentry#1#2#3{%
+ \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}}
%
% Appendices, in the short toc.
\let\shortappendixentry = \shortchapentry
@@ -4039,21 +4352,21 @@ width0pt\relax} \fi
}
% Unnumbered chapters.
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
+\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}}
+\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}}
% Sections.
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
+\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}}
% Subsections.
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
+\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}}
% And subsubsections.
\def\subsubsecentry#1#2#3#4#5#6{%
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
+\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}}
% This parameter controls the indentation of the various levels.
\newdimen\tocindent \tocindent = 3pc
@@ -4114,36 +4427,27 @@ width0pt\relax} \fi
\message{environments,}
% @foo ... @end foo.
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
% Since these characters are used in examples, it should be an even number of
% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
\def\point{$\star$}
\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+% The @error{} command.
% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
{\tentt \global\dimen0 = 3em}% Width of the box.
\dimen2 = .55pt % Thickness of rules
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
+%
\global\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
\advance\hsize by -2\dimen2 % Rules.
@@ -4154,8 +4458,7 @@ width0pt\relax} \fi
\kern3pt\vrule width\dimen2}% Space to right.
\hrule height\dimen2}
\hfil}
-
-% The @error{} command.
+%
\def\error{\leavevmode\lower.7ex\copy\errorbox}
% @tex ... @end tex escapes into raw Tex temporarily.
@@ -4165,14 +4468,14 @@ width0pt\relax} \fi
\def\tex{\begingroup
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
+ \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
\catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
+ \catcode `\+=\other
+ \catcode `\"=\other
+ \catcode `\==\other
+ \catcode `\|=\other
+ \catcode `\<=\other
+ \catcode `\>=\other
\escapechar=`\\
%
\let\b=\ptexb
@@ -4184,9 +4487,11 @@ width0pt\relax} \fi
\let\equiv=\ptexequiv
\let\!=\ptexexclam
\let\i=\ptexi
+ \let\indent=\ptexindent
\let\{=\ptexlbrace
\let\+=\tabalign
\let\}=\ptexrbrace
+ \let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
%
@@ -4195,9 +4500,9 @@ width0pt\relax} \fi
\def\@{@}%
\let\Etex=\endgroup}
-% Define @lisp ... @endlisp.
+% Define @lisp ... @end lisp.
% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
+% including the definition of @end lisp (which normally is erroneous).
% Amount to narrow the margins by for @lisp.
\newskip\lispnarrowing \lispnarrowing=0.4in
@@ -4226,15 +4531,18 @@ width0pt\relax} \fi
% Make spacing and below environment symmetrical. We use \parskip here
% to help in doing that, since in @example-like environments \parskip
% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
+% start of the next paragraph will insert \parskip.
%
\def\aboveenvbreak{{%
- \ifnum\lastpenalty < 10000
+ % =10000 instead of <10000 because of a special case in \itemzzz, q.v.
+ \ifnum \lastpenalty=10000 \else
\advance\envskipamount by \parskip
\endgraf
\ifdim\lastskip<\envskipamount
\removelastskip
- \penalty-50
+ % it's not a good place to break if the last penalty was \nobreak
+ % or better ...
+ \ifnum\lastpenalty>10000 \else \penalty-50 \fi
\vskip\envskipamount
\fi
\fi
@@ -4266,7 +4574,8 @@ width0pt\relax} \fi
%
\newskip\lskip\newskip\rskip
-\long\def\cartouche{%
+\def\cartouche{%
+\par % can't be in the midst of a paragraph.
\begingroup
\lskip=\leftskip \rskip=\rightskip
\leftskip=0pt\rightskip=0pt %we want these *outside*.
@@ -4313,7 +4622,6 @@ width0pt\relax} \fi
\inENV % This group ends at the end of the body
\hfuzz = 12pt % Don't be fussy
\sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
\let\par = \lisppar % don't ignore blank lines
\obeylines % each line of input is a line of output
\parskip = 0pt
@@ -4352,27 +4660,16 @@ width0pt\relax} \fi
% @example: Same as @lisp.
\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines). We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-%
-% This actually allows (for example) @end display inside an
-% @smalldisplay. Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
+% @smallexample and @smalllisp: use smaller fonts.
% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
+\def\smalllisp{\begingroup
\def\Esmalllisp{\nonfillfinish\endgroup}%
\def\Esmallexample{\nonfillfinish\endgroup}%
\smallexamplefonts
\lisp
}
+\let\smallexample = \smalllisp
+
% @display: same as @lisp except keep current font.
%
@@ -4382,9 +4679,9 @@ width0pt\relax} \fi
\gobble
}
%
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
+% @smalldisplay: @display plus smaller fonts.
%
-\def\smalldisplayx{\begingroup
+\def\smalldisplay{\begingroup
\def\Esmalldisplay{\nonfillfinish\endgroup}%
\smallexamplefonts \rm
\display
@@ -4399,9 +4696,9 @@ width0pt\relax} \fi
\gobble
}
%
-% @smallformat (when @smallbook): @format plus smaller fonts.
+% @smallformat: @format plus smaller fonts.
%
-\def\smallformatx{\begingroup
+\def\smallformat{\begingroup
\def\Esmallformat{\nonfillfinish\endgroup}%
\smallexamplefonts \rm
\format
@@ -4428,7 +4725,6 @@ width0pt\relax} \fi
\def\quotation{%
\begingroup\inENV %This group ends at the end of the @quotation body
{\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
\parindent=0pt
% We have retained a nonzero parskip for the environment, since we're
% doing normal filling. So to avoid extra space below the environment...
@@ -4445,16 +4741,20 @@ width0pt\relax} \fi
% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
-% If we want to allow any <char> as delimiter,
+% If we want to allow any <char> as delimiter,
% we need the curly braces so that makeinfo sees the @verb command, eg:
% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
%
% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
%
-% [Knuth] p. 344; only we need to do '@' too
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too. Otherwise, they get lost as the first character on a
+% verbatim line.
\def\dospecials{%
- \do\ \do\\\do\@\do\{\do\}\do\$\do\&%
- \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+ \do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+ \do\<\do\>\do\|\do\@\do+\do\"%
+}
%
% [Knuth] p. 380
\def\uncatcodespecials{%
@@ -4519,8 +4819,8 @@ width0pt\relax} \fi
\everypar{\starttabbox}%
}
-% Do the @verb magic: verbatim text is quoted by unique
-% delimiter characters. Before first delimiter expect a
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
% right brace, after last delimiter expect closing brace:
%
% \def\doverb'{'<char>#1<char>'}'{#1}
@@ -4539,9 +4839,9 @@ width0pt\relax} \fi
%
% \def\doverbatim#1@end verbatim{#1}
%
-% For Texinfo it's a lot easier than for LaTeX,
+% For Texinfo it's a lot easier than for LaTeX,
% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
-% we need not redefine '\', '{' and '}'
+% we need not redefine '\', '{' and '}'.
%
% Inspired by LaTeX's verbatim command set [latex.ltx]
%% Include LaTeX hack for completeness -- never know
@@ -4551,9 +4851,14 @@ width0pt\relax} \fi
%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[
%% #1|endgroup|def|Everbatim[]|end[verbatim]]
%% |endgroup
+%
\begingroup
\catcode`\ =\active
- \gdef\doverbatim#1@end verbatim{#1\end{verbatim}}
+ \obeylines %
+ % ignore everything up to the first ^^M, that's the newline at the end
+ % of the @verbatim input line itself. Otherwise we get an extra blank
+ % line in the output.
+ \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}%
\endgroup
%
\def\verbatim{%
@@ -4569,14 +4874,14 @@ width0pt\relax} \fi
% Allow normal characters that we make active in the argument (a file name).
\def\verbatiminclude{%
\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
\parsearg\doverbatiminclude
}
\def\setupverbatiminclude{%
@@ -4590,29 +4895,102 @@ width0pt\relax} \fi
% Restore active chars for included file.
\endgroup
\begingroup
- \def\thisfile{#1}%
- \expandafter\expandafter\setupverbatiminclude\input\thisfile
- \endgroup\nonfillfinish\endgroup
+ \let\value=\expandablevalue
+ \def\thisfile{#1}%
+ \expandafter\expandafter\setupverbatiminclude\input\thisfile
+ \endgroup
+ \nonfillfinish
+ \endgroup
}
+% @copying ... @end copying.
+% Save the text away for @insertcopying later. Many commands won't be
+% allowed in this context, but that's ok.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\begingroup
+ % Define a command to swallow text until we reach `@end copying'.
+ % \ is the escape char in this texinfo.tex file, so it is the
+ % delimiter for the command; @ will be the escape char when we read
+ % it, but that doesn't matter.
+ \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
+ %
+ % We must preserve ^^M's in the input file; see \insertcopying below.
+ \catcode`\^^M = \active
+ \docopying
+}
+
+% What we do to finish off the copying text.
+%
+\def\enddocopying{\endgroup\ignorespaces}
+
+% @insertcopying. Here we must play games with ^^M's. On the one hand,
+% we need them to delimit commands such as `@end quotation', so they
+% must be active. On the other hand, we certainly don't want every
+% end-of-line to be a \par, as would happen with the normal active
+% definition of ^^M. On the third hand, two ^^M's in a row should still
+% generate a \par.
+%
+% Our approach is to make ^^M insert a space and a penalty1 normally;
+% then it can also check if \lastpenalty=1. If it does, then manually
+% do \par.
+%
+% This messes up the normal definitions of @c[omment], so we redefine
+% it. Similarly for @ignore. (These commands are used in the gcc
+% manual for man page generation.)
+%
+% Seems pretty fragile, most line-oriented commands will presumably
+% fail, but for the limited use of getting the copying text (which
+% should be quite simple) inserted, we can hope it's ok.
+%
+{\catcode`\^^M=\active %
+\gdef\insertcopying{\begingroup %
+ \parindent = 0pt % looks wrong on title page
+ \def^^M{%
+ \ifnum \lastpenalty=1 %
+ \par %
+ \else %
+ \space \penalty 1 %
+ \fi %
+ }%
+ %
+ % Fix @c[omment] for catcode 13 ^^M's.
+ \def\c##1^^M{\ignorespaces}%
+ \let\comment = \c %
+ %
+ % Don't bother jumping through all the hoops that \doignore does, it
+ % would be very hard since the catcodes are already set.
+ \long\def\ignore##1\end ignore{\ignorespaces}%
+ %
+ \copyingtext %
+\endgroup}%
+}
\message{defuns,}
% @defun etc.
% Allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
+\def\setdeffont#1 {\csname DEF#1\endcsname}
\newskip\defbodyindent \defbodyindent=.4in
\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
\newskip\deflastargmargin \deflastargmargin=18pt
\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
+
+% We want ()&[] to print specially on the defun line.
+%
\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\&=\active
+ \catcode`\[=\active \catcode`\]=\active
+}
% Make control sequences which act like normal parenthesis chars.
\let\lparen = ( \let\rparen = )
@@ -4659,88 +5037,124 @@ width0pt\relax} \fi
% Active &'s sneak into the index arguments, so make sure it's defined.
{
- \catcode`& = 13
+ \catcode`& = \active
\global\let& = \ampnr
}
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
+% \defname, which formats the name of the @def (not the args).
+% #1 is the function name.
+% #2 is the type of definition, such as "Function".
%
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
+\def\defname#1#2{%
+ % How we'll output the type name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \ifempty{#2}%
+ \def\defnametype{}%
+ \else
+ \def\defnametype{[\rm #2]}%
+ \fi
+ %
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \dimen2=\leftskip
+ \advance\dimen2 by -\defbodyindent
+ %
+ % Figure out values for the paragraph shape.
+ \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}%
+ \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
+ \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations
+ \parshape 2 0in \dimen0 \defargsindent \dimen1
+ %
+ % Output arg 2 ("Function" or some such) but stuck inside a box of
+ % width 0 so it does not interfere with linebreaking.
+ \noindent
+ %
+ {% Adjust \hsize to exclude the ambient margins,
+ % so that \rightline will obey them.
+ \advance \hsize by -\dimen2
+ \dimen3 = 0pt % was -1.25pc
+ \rlap{\rightline{\defnametype\kern\dimen3}}%
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \advance\leftskip by -\defbodyindent
+ \exdentamount=\defbodyindent
+ {\df #1}\enskip % output function name
+ % \defunargs will be called next to output the arguments, if any.
+}
-% Used for @deftypemethod and @deftypeivar.
+% Common pieces to start any @def...
% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by a space, is the class name.
-% #5 is the method's return type.
+% #2 is the \...x control sequence (which our caller defines).
+% #3 is the control sequence to process the header, such as \defunheader.
%
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
+\def\parsebodycommon#1#2#3{%
+ \begingroup\inENV
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we want to allow a
+ % break after all. Check for penalty 10002 (inserted by
+ % \defargscommonending) instead of 10000, since the sectioning
+ % commands insert a \penalty10000, and we don't want to allow a break
+ % between a section heading and a defun.
+ \ifnum\lastpenalty=10002 \penalty0 \fi
\medbreak
+ %
+ % Define the \E... end token that this defining construct specifies
+ % so that it will exit this group.
\def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
+ %
\parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
+}
+
+% Common part of the \...x definitions.
+%
+\def\defxbodycommon{%
+ % As with \parsebodycommon above, allow line break if we have multiple
+ % x headers in a row. It's not a great place, though.
+ \ifnum\lastpenalty=10000 \penalty1000 \fi
+ %
+ \begingroup\obeylines
+}
+
+% Process body of @defun, @deffn, @defmac, etc.
+%
+\def\defparsebody#1#2#3{%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2{\defxbodycommon \activeparens \spacesplit#3}%
+ \catcode\equalChar=\active
+ \begingroup\obeylines\activeparens
+ \spacesplit#3%
+}
+
+% #1, #2, #3 are the common arguments (see \parsebodycommon above).
+% #4, delimited by the space, is the class name.
+%
+\def\defmethparsebody#1#2#3#4 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}%
+ \begingroup\obeylines\activeparens
+ % The \empty here prevents misinterpretation of a construct such as
+ % @deffn {whatever} {Enharmonic comma}
+ % See comments at \deftpparsebody, although in our case we don't have
+ % to remove the \empty afterwards, since it is empty.
+ \spacesplit{#3{#4}}\empty
+}
+
+% Used for @deftypemethod and @deftypeivar.
+% #1, #2, #3 are the common arguments (see \defparsebody).
+% #4, delimited by a space, is the class name.
+% #5 is the method's return type.
+%
+\def\deftypemethparsebody#1#2#3#4 #5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#4}{#5}}%
+}
% Used for @deftypeop. The change from \deftypemethparsebody is an
% extra argument at the beginning which is the `category', instead of it
@@ -4748,65 +5162,49 @@ width0pt\relax} \fi
% to account for this both in the \...x definition and in parsing the
% input at hand. Thus also need a control sequence (passed as #5) for
% the \E... definition to assign the category name to.
-%
-\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 ##3 {%
- \def#4{##1}%
- \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
+%
+\def\deftypeopparsebody#1#2#3#4#5 #6 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 ##3 {\def#4{##1}%
+ \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#5}{#6}}%
+}
+
+% For @defop.
+\def\defopparsebody #1#2#3#4#5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\def#4{##1}%
+ \defxbodycommon \activeparens \spacesplit{#3{##2}}}%
+ \begingroup\obeylines\activeparens
+ \spacesplit{#3{#5}}%
+}
% These parsing functions are similar to the preceding ones
% except that they do not make parens into active characters.
% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
+\def\defvarparsebody #1#2#3{%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2{\defxbodycommon \spacesplit#3}%
+ \catcode\equalChar=\active
+ \begingroup\obeylines
+ \spacesplit#3%
+}
+
+% @defopvar.
+\def\defopvarparsebody #1#2#3#4#5 {%
+ \parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 ##2 {\def#4{##1}%
+ \defxbodycommon \spacesplit{#3{##2}}}%
\begingroup\obeylines
+ \spacesplit{#3{#5}}%
}
\def\defvrparsebody#1#2#3#4 {%
\parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
+ \begingroup\obeylines
\spacesplit{#3{#4}}%
}
@@ -4821,6 +5219,8 @@ width0pt\relax} \fi
%
\def\deftpparsebody #1#2#3#4 {%
\parsebodycommon{#1}{#2}{#3}%
+ \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
+ \begingroup\obeylines
\spacesplit{\parsetpheaderline{#3{#4}}}\empty
}
@@ -4837,38 +5237,37 @@ width0pt\relax} \fi
#1{\removeemptybraces#2\relax}{#3}%
}%
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
+% Split up #2 (the rest of the input line) at the first space token.
% call #1 with two arguments:
% the first is all of #2 before the space token,
% the second is all of #2 after that space token.
% If #2 contains no space token, all of it is passed as the first arg
% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
+%
+{\obeylines %
+ \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}%
+ \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{%
+ \ifx\relax #3%
+ #1{#2}{}%
+ \else %
+ #1{#2}{#3#4}%
+ \fi}%
+}
% Define @defun.
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
+% This is called to end the arguments processing for all the @def... commands.
+%
+\def\defargscommonending{%
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty 10002 % signal to \parsebodycommon.
+}
+% This expands the args and terminates the paragraph they comprise.
+%
\def\defunargs#1{\functionparens \sl
% Expand, preventing hyphenation at `-' chars.
% Note that groups don't affect changes in \hyphenchar.
@@ -4877,9 +5276,7 @@ width0pt\relax} \fi
#1%
{\tensl\hyphenchar\font=45}%
\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
}
\def\deftypefunargs #1{%
@@ -4888,9 +5285,7 @@ width0pt\relax} \fi
% Use \boldbraxnoamp, not \functionparens, so that & is not special.
\boldbraxnoamp
\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
}
% Do complete processing of one @defun or @defunx line already parsed.
@@ -4901,7 +5296,7 @@ width0pt\relax} \fi
\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defun == @deffn Function
@@ -4911,7 +5306,7 @@ width0pt\relax} \fi
\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDeffunc}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @deftypefun int foobar (int @var{foo}, float @var{bar})
@@ -4925,7 +5320,7 @@ width0pt\relax} \fi
\doind {fn}{\code{#2}}% Make entry in function index
\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}%
\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
@@ -4946,7 +5341,7 @@ width0pt\relax} \fi
% at least some C++ text from working
\defname {\defheaderxcond#2\relax$.$#3}{#1}%
\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defmac == @deffn Macro
@@ -4956,7 +5351,7 @@ width0pt\relax} \fi
\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDefmac}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defspec == @deffn Special Form
@@ -4966,7 +5361,7 @@ width0pt\relax} \fi
\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
\begingroup\defname {#1}{\putwordDefspec}%
\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
+\catcode\equalChar=\other % Turn off change made in \defparsebody
}
% @defop CATEGORY CLASS OPERATION ARG...
@@ -4975,9 +5370,11 @@ width0pt\relax} \fi
\defopparsebody\Edefop\defopx\defopheader\defoptype}
%
\def\defopheader#1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
-\defunargs {#3}\endgroup %
+ \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry
+ \begingroup
+ \defname{#2}{\defoptype\ \putwordon\ #1}%
+ \defunargs{#3}%
+ \endgroup
}
% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
@@ -5044,9 +5441,11 @@ width0pt\relax} \fi
\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}%
-\defvarargs {#3}\endgroup %
+ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry
+ \begingroup
+ \defname{#2}{\defcvtype\ \putwordof\ #1}%
+ \defvarargs{#3}%
+ \endgroup
}
% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
@@ -5054,7 +5453,7 @@ width0pt\relax} \fi
\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
%
\def\defivarheader#1#2#3{%
- \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index
+ \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index
\begingroup
\defname{#2}{\putwordInstanceVariableof\ #1}%
\defvarargs{#3}%
@@ -5066,8 +5465,8 @@ width0pt\relax} \fi
% This is actually simple: just print them in roman.
% This must expand the args and terminate the paragraph they make up
\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
+ \defargscommonending
+}
% @defvr Counter foo-count
@@ -5103,8 +5502,7 @@ width0pt\relax} \fi
\def\deftypevarheader #1#2{%
\dovarind#2 \relax% Make entry in variables index
\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
\endgroup}
\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
@@ -5114,8 +5512,7 @@ width0pt\relax} \fi
\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
+ \defargscommonending
\endgroup}
% Now define @deftp
@@ -5132,7 +5529,7 @@ width0pt\relax} \fi
% These definitions are used if you use @defunx (etc.)
% anywhere other than immediately after a @defun or @defunx.
-%
+%
\def\defcvx#1 {\errmessage{@defcvx in invalid context}}
\def\deffnx#1 {\errmessage{@deffnx in invalid context}}
\def\defivarx#1 {\errmessage{@defivarx in invalid context}}
@@ -5164,7 +5561,7 @@ width0pt\relax} \fi
\def\scanmacro#1{%
\begingroup \newlinechar`\^^M
% Undo catcode changes of \startcontents and \doprintindex
- \catcode`\@=0 \catcode`\\=12 \escapechar=`\@
+ \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
% Append \endinput to make sure that TeX does not see the ending newline.
\toks0={#1\endinput}%
\immediate\openout\macscribble=\jobname.tmp
@@ -5178,7 +5575,7 @@ width0pt\relax} \fi
\def\scanmacro#1{%
\begingroup \newlinechar`\^^M
% Undo catcode changes of \startcontents and \doprintindex
-\catcode`\@=0 \catcode`\\=12 \escapechar=`\@
+\catcode`\@=0 \catcode`\\=\other \escapechar=`\@
\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
\fi
@@ -5208,7 +5605,7 @@ width0pt\relax} \fi
}
% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
+{\catcode`\^^M=\other \catcode`\Q=3%
\gdef\eatcr #1{\eatcra #1Q^^MQ}%
\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
\gdef\eatcrb#1Q#2Q{#1}%
@@ -5223,29 +5620,29 @@ width0pt\relax} \fi
% body, and then making it the \newlinechar in \scanmacro.
\def\macrobodyctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\{=12
- \catcode`\}=12
- \catcode`\@=12
- \catcode`\^^M=12
+ \catcode`\~=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\+=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\@=\other
+ \catcode`\^^M=\other
\usembodybackslash}
\def\macroargctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\@=12
- \catcode`\\=12}
+ \catcode`\~=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\+=\other
+ \catcode`\@=\other
+ \catcode`\\=\other}
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
@@ -5273,7 +5670,7 @@ width0pt\relax} \fi
\message{Warning: redefining \the\macname}%
\else
\expandafter\ifx\csname \the\macname\endcsname \relax
- \else \errmessage{The name \the\macname\space is reserved}\fi
+ \else \errmessage{Macro name \the\macname\space already defined}\fi
\global\cslet{macsave.\the\macname}{\the\macname}%
\global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
% Add the macroname to \macrolist
@@ -5286,32 +5683,33 @@ width0pt\relax} \fi
\else \expandafter\parsemacbody
\fi}
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
+\def\unmacro{\parsearg\dounmacro}
+\def\dounmacro#1{%
\if1\csname ismacro.#1\endcsname
\global\cslet{#1}{macsave.#1}%
\global\expandafter\let \csname ismacro.#1\endcsname=0%
- % Remove the macro name from \macrolist
+ % Remove the macro name from \macrolist:
\begingroup
- \edef\tempa{\expandafter\noexpand\csname#1\endcsname}%
- \def\do##1{%
- \def\tempb{##1}%
- \ifx\tempa\tempb
- % remove this
- \else
- \toks0 = \expandafter{\newmacrolist\do}%
- \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
- \fi}%
- \def\newmacrolist{}%
- % Execute macro list to define \newmacrolist
- \macrolist
- \global\let\macrolist\newmacrolist
+ \expandafter\let\csname#1\endcsname \relax
+ \let\do\unmacrodo
+ \xdef\macrolist{\macrolist}%
\endgroup
\else
\errmessage{Macro #1 not defined}%
\fi
}
+% Called by \do from \dounmacro on each macro. The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+ \ifx#1\relax
+ % remove this
+ \else
+ \noexpand\do \noexpand #1%
+ \fi
+}
+
% This makes use of the obscure feature that if the last token of a
% <parameter list> is #, then the preceding argument is delimited by
% an opening brace, and that opening brace is not consumed.
@@ -5459,8 +5857,8 @@ width0pt\relax} \fi
% @node's job is to define \lastnode.
\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
+\def\nodezzz#1{\nodexxx #1,\finishnodeparse}
+\def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}}
\let\nwnode=\node
\let\lastnode=\relax
@@ -5494,15 +5892,23 @@ width0pt\relax} \fi
\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded. It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), namely NAME-title (the corresponding @chapter/etc. name),
+% NAME-pg (the page number), and NAME-snt (section number and type).
+% Called from \foonoderef.
+%
+% We have to set \indexdummies so commands such as @code in a section
+% title aren't expanded. It would be nicer not to expand the titles in
+% the first place, but there's so many layers that that is hard to do.
+%
+% Likewise, use \turnoffactive so that punctuation chars such as underscore
+% and backslash work in node names.
%
\def\setref#1#2{{%
- \indexdummies
+ \atdummies
\pdfmkdest{#1}%
+ %
+ \turnoffactive
\dosetq{#1-title}{Ytitle}%
\dosetq{#1-pg}{Ypagenumber}%
\dosetq{#1-snt}{#2}%
@@ -5554,7 +5960,7 @@ width0pt\relax} \fi
\ifpdf
\leavevmode
\getfilename{#4}%
- {\normalturnoffactive
+ {\turnoffactive \otherbackslash
\ifnum\filenamelength>0
\startlink attr{/Border [0 0 0]}%
goto file{\the\filename.pdf} name{#1}%
@@ -5574,82 +5980,94 @@ width0pt\relax} \fi
% into the usual \leavevmode...\vrule stuff for purposes of
% printing. So we \turnoffactive for the \refx-snt, back on for the
% printing, back off for the \refx-pg.
- {\normalturnoffactive
+ {\turnoffactive \otherbackslash
% Only output a following space if the -snt ref is nonempty; for
% @unnumbered and @anchor, it won't be.
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
\ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
}%
- % [mynode],
- [\printednodename],\space
- % page 3
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ % output the `[mynode]' via a macro.
+ \xrefprintnodename\printednodename
+ %
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
\fi
\endlink
\endgroup}
-% \dosetq is the interface for calls from other macros
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output. It's a separate macro only so it can be changed more easily,
+% since not square brackets don't work in some documents. Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names. (\turnoffactive doesn't do \.)
+% \dosetq is called from \setref to do the actual \write (\iflinks).
+%
\def\dosetq#1#2{%
{\let\folio=0%
- \normalturnoffactive
\edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks
- \next
- \fi
+ \iflinks \next \fi
}%
}
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
+% \internalsetq{foo}{page} expands into
+% CHARACTERS @xrdef{foo}{...expansion of \page...}
+\def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}}
+% Things to be expanded by \internalsetq.
+%
\def\Ypagenumber{\folio}
-
\def\Ytitle{\thissection}
-
\def\Ynothing{}
-
\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
+ \ifnum\secno=0
+ \putwordChapter@tie \the\chapno
+ \else \ifnum\subsecno=0
+ \putwordSection@tie \the\chapno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
+ \ifnum\secno=0
+ \putwordAppendix@tie @char\the\appendixno{}%
+ \else \ifnum\subsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie
+ @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
% Use TeX 3.0's \inputlineno to get the line number, for better error
% messages, but if we're using an old version of TeX, don't do anything.
%
\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
+ \let\linenumber = \empty % Pre-3.0.
\else
\def\linenumber{\the\inputlineno:\space}
\fi
% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
% If its value is nonempty, SUFFIX is output afterward.
-
+%
\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
+ {%
+ \indexnofonts
+ \otherbackslash
+ \expandafter\global\expandafter\let\expandafter\thisrefX
+ \csname X#1\endcsname
+ }%
+ \ifx\thisrefX\relax
% If not defined, say something at least.
\angleleft un\-de\-fined\angleright
\iflinks
@@ -5664,19 +6082,14 @@ width0pt\relax} \fi
\fi
\else
% It's defined, so just use it.
- \csname X#1\endcsname
+ \thisrefX
\fi
#2% Output the suffix in any case.
}
% This is the macro invoked by entries in the aux file.
%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
+\def\xrdef#1{\expandafter\gdef\csname X#1\endcsname}
% Read the last existing aux file, if any. No error if none exists.
\def\readauxfile{\begingroup
@@ -5707,9 +6120,7 @@ width0pt\relax} \fi
\catcode`\^^]=\other
\catcode`\^^^=\other
\catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
+ % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
% in xref tags, i.e., node names. But since ^^e4 notation isn't
% supported in the main text, it doesn't seem desirable. Furthermore,
% that is not enough: for node names that actually contain a ^
@@ -5722,6 +6133,9 @@ width0pt\relax} \fi
% \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
% and then to call \auxhat in \setq.
%
+ \catcode`\^=\other
+ %
+ % Special characters. Should be turned off anyway, but...
\catcode`\~=\other
\catcode`\[=\other
\catcode`\]=\other
@@ -5733,7 +6147,9 @@ width0pt\relax} \fi
\catcode`\$=\other
\catcode`\#=\other
\catcode`\&=\other
+ \catcode`\%=\other
\catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+ %
% Make the characters 128-255 be printing characters
{%
\count 1=128
@@ -5743,17 +6159,18 @@ width0pt\relax} \fi
\ifnum \count 1<256 \loop \fi
}%
}%
- % The aux file uses ' as the escape (for now).
+ %
% Turn off \ as an escape so we do not lose on
% entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
+ % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^
% Reference to such entries still does not work the way one would wish,
% but at least they do not bomb out when the aux file is read in.
+ \catcode`\\=\other
+ %
+ % @ is our escape character in .aux files.
\catcode`\{=1
\catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
+ \catcode`\@=0
%
\openin 1 \jobname.aux
\ifeof 1 \else
@@ -5787,18 +6204,19 @@ width0pt\relax} \fi
%
% Auto-number footnotes. Otherwise like plain.
\gdef\footnote{%
+ \let\indent=\ptexindent
\global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$}%
%
% In case the footnote comes at the end of a sentence, preserve the
% extra spacing after we do the footnote number.
\let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
%
% Remove inadvertent blank space before typesetting the footnote number.
\unskip
\thisfootno\@sf
- \footnotezzz
+ \dofootnote
}%
% Don't bother with the trickery in plain.tex to not require the
@@ -5808,10 +6226,17 @@ width0pt\relax} \fi
% \parseargline fail inside footnotes because the tokens are fixed when
% the footnote is read. --karl, 16nov96.
%
-\long\gdef\footnotezzz{\insert\footins\bgroup
+% The start of the footnote looks usually like this:
+\gdef\startfootins{\insert\footins\bgroup}
+%
+% ... but this macro is redefined inside @multitable.
+%
+\gdef\dofootnote{%
+ \startfootins
% We want to typeset this text as a normal paragraph, even if the
% footnote reference occurs in (for example) a display environment.
% So reset some parameters.
+ \hsize=\pagewidth
\interlinepenalty\interfootnotelinepenalty
\splittopskip\ht\strutbox % top baseline for broken footnotes
\splitmaxdepth\dp\strutbox
@@ -5841,12 +6266,6 @@ width0pt\relax} \fi
\footstrut
\futurelet\next\fo@t
}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\par\egroup}
-
}%end \catcode `\@=11
% @| inserts a changebar to the left of the current line. It should
@@ -5893,8 +6312,8 @@ width0pt\relax} \fi
\openin 1 = epsf.tex
\ifeof 1 \else
\closein 1
- % Do not bother showing banner with post-v2.7 epsf.tex (available in
- % doc/epsf.tex until it shows up on ctan).
+ % Do not bother showing banner with epsf.tex v2.7k (available in
+ % doc/epsf.tex and on ctan).
\def\epsfannounce{\toks0 = }%
\input epsf.tex
\fi
@@ -5933,7 +6352,7 @@ width0pt\relax} \fi
\nobreak\bigskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
- % above and below.
+ % above and below.
\nobreak\vskip\parskip
\nobreak
\line\bgroup\hss
@@ -6019,11 +6438,13 @@ should work if nowhere else does.}
}
% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip. We also call
-% \setleading{\textleading}, so the caller should define \textleading.
-% The caller should also set \parskip.
+% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
+% physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading. The caller should also set \parskip.
%
-\def\internalpagesizes#1#2#3#4#5#6{%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
\voffset = #3\relax
\topskip = #6\relax
\splittopskip = \topskip
@@ -6042,28 +6463,27 @@ should work if nowhere else does.}
\normaloffset = #4\relax
\bindingoffset = #5\relax
%
+ \ifpdf
+ \pdfpageheight #7\relax
+ \pdfpagewidth #8\relax
+ \fi
+ %
\setleading{\textleading}
%
\parindent = \defaultparindent
\setemergencystretch
}
-% Use `small' versions.
-%
-\def\smallenvironments{%
- \let\smalldisplay = \smalldisplayx
- \let\smallexample = \smalllispx
- \let\smallformat = \smallformatx
- \let\smalllisp = \smalllispx
-}
-
% @letterpaper (the default).
\def\letterpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
\textleading = 13.2pt
%
% If page is nothing but text, make it come out even.
- \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
+ \internalpagesizes{46\baselineskip}{6in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{36pt}%
+ {11in}{8.5in}%
}}
% Use @smallbook to reset parameters for 7x9.5 (or so) format.
@@ -6071,26 +6491,42 @@ should work if nowhere else does.}
\parskip = 2pt plus 1pt
\textleading = 12pt
%
- \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
+ \internalpagesizes{7.5in}{5in}%
+ {\voffset}{.25in}%
+ {\bindingoffset}{16pt}%
+ {9.25in}{7in}%
%
\lispnarrowing = 0.3in
\tolerance = 700
\hfuzz = 1pt
\contentsrightmargin = 0pt
- \deftypemargin = 0pt
\defbodyindent = .5cm
- \smallenvironments
}}
% Use @afourpaper to print on European A4 paper.
\def\afourpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
- \textleading = 12pt
+ \textleading = 13.2pt
%
- \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
+ % Double-side printing via postscript on Laserjet 4050
+ % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+ % To change the settings for a different printer or situation, adjust
+ % \normaloffset until the front-side and back-side texts align. Then
+ % do the same for \bindingoffset. You can set these for testing in
+ % your texinfo source file like this:
+ % @tex
+ % \global\normaloffset = -6mm
+ % \global\bindingoffset = 10mm
+ % @end tex
+ \internalpagesizes{51\baselineskip}{160mm}
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{44pt}%
+ {297mm}{210mm}%
%
\tolerance = 700
\hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 5mm
}}
% Use @afivepaper to print on European A5 paper.
@@ -6100,37 +6536,40 @@ should work if nowhere else does.}
\parskip = 2pt plus 1pt minus 0.1pt
\textleading = 12.5pt
%
- \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}%
+ \internalpagesizes{160mm}{120mm}%
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{8pt}%
+ {210mm}{148mm}%
%
\lispnarrowing = 0.2in
\tolerance = 800
\hfuzz = 1.2pt
- \contentsrightmargin = 0mm
- \deftypemargin = 0pt
+ \contentsrightmargin = 0pt
\defbodyindent = 2mm
\tableindent = 12mm
- %
- \smallenvironments
}}
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
+% A specific text layout, 24x15cm overall, intended for A4 paper.
\def\afourlatex{{\globaldefs = 1
- \textleading = 13.6pt
- %
\afourpaper
- \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
+ \internalpagesizes{237mm}{150mm}%
+ {\voffset}{4.6mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
%
- % Must explicitly reset to 0 because we call \afourpaper, apparently,
- % although this does not entirely make sense.
+ % Must explicitly reset to 0 because we call \afourpaper.
\globaldefs = 0
}}
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
\afourpaper
- \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
-}
+ \internalpagesizes{241mm}{165mm}%
+ {\voffset}{-2.95mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ \globaldefs = 0
+}}
% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
% Perhaps we should allow setting the margins, \topskip, \parskip,
@@ -6145,7 +6584,16 @@ should work if nowhere else does.}
\parskip = 3pt plus 2pt minus 1pt
\setleading{\textleading}%
%
- \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
+ \dimen0 = #1
+ \advance\dimen0 by \voffset
+ %
+ \dimen2 = \hsize
+ \advance\dimen2 by \normaloffset
+ %
+ \internalpagesizes{#1}{\hsize}%
+ {\voffset}{\normaloffset}%
+ {\bindingoffset}{44pt}%
+ {\dimen0}{\dimen2}%
}}
% Set default to letter.
@@ -6209,7 +6657,7 @@ should work if nowhere else does.}
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
\catcode`\|=\active
\def|{{\tt\char124}}
@@ -6223,8 +6671,6 @@ should work if nowhere else does.}
\def+{{\tt \char 43}}
\catcode`\$=\active
\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
% Set up an active definition for =, but don't enable it most of the time.
{\catcode`\==\active
@@ -6241,44 +6687,46 @@ should work if nowhere else does.}
\catcode`\@=0
-% \rawbackslashxx output one backslash character in current font
+% \rawbackslashxx outputs one backslash character in current font,
+% as in \char`\\.
\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
+% \rawbackslash defines an active \ to do \rawbackslashxx.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
+ @gdef@rawbackslash{@let\=@rawbackslashxx}
+ @gdef@otherbackslash{@let\=@realbackslash}
+}
+
+% \realbackslash is an actual character `\' with catcode other.
+{\catcode`\\=\other @gdef@realbackslash{\}}
% \normalbackslash outputs one backslash in fixed width font.
\def\normalbackslash{{\tt\rawbackslashxx}}
-% \catcode 17=0 % Define control-q
\catcode`\\=\active
% Used sometimes to turn off (effectively) the active characters
% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}%$ font-lock fix
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}%$ font-lock fix
+@def@turnoffactive{%
+ @let"=@normaldoublequote
+ @let\=@realbackslash
+ @let~=@normaltilde
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let<=@normalless
+ @let>=@normalgreater
+ @let+=@normalplus
+ @let$=@normaldollar %$ font-lock fix
+}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'. (Thus, \ is not expandable when this is in
+% effect.)
+%
+@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
% Make _ and + \other characters, temporarily.
% This is canceled by @fixbackslash.
@@ -6306,7 +6754,7 @@ should work if nowhere else does.}
% Say @foo, not \foo, in error messages.
@escapechar = `@@
-% These look ok in all fonts, so just make them not special.
+% These look ok in all fonts, so just make them not special.
@catcode`@& = @other
@catcode`@# = @other
@catcode`@% = @other
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index fd518693f5a..978d34ac551 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -40,7 +40,7 @@
@end ifset
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
@c Include everything if we're not making html
@@ -58,12 +58,12 @@
@end ifnothtml
@c Part 2 Summary Description and Copyright
-@macro copyrightnotice
+@copying
Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
@sp 1
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, the Front-Cover texts being (a) (see below), and
with the Back-Cover Texts being (b) (see below). A copy of the
@@ -79,9 +79,9 @@ Free Documentation License}''.
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.
-@end macro
+@end copying
@ifinfo
-@copyrightnotice{}
+@insertcopying
@end ifinfo
@c Part 3 Titlepage and Copyright
@@ -93,7 +93,7 @@ Free Documentation License}''.
@c The following two commands start the copyright page.
@page
@vskip 0pt plus 1filll
-@copyrightnotice{}
+@insertcopying
@end titlepage
@c Part 4 Top node and Master Menu
@@ -197,7 +197,7 @@ not yet been merged into the main part of this manual.
@ifhtml
@uref{./index.html,,Return to the GCC Installation page}
-@copyrightnotice{}
+@insertcopying
@end ifhtml
@end ifset
@@ -281,7 +281,7 @@ file system, the shell's built-in @command{pwd} command will return
temporary pathnames. Using these can lead to various sorts of build
problems. To avoid this issue, set the @env{PWDCMD} environment
variable to an automounter-aware @command{pwd} command, e.g.,
-@command{pawd} or @command{amq -w}, during the configuration and build
+@command{pawd} or @samp{amq -w}, during the configuration and build
phases.
First, we @strong{highly} recommend that GCC be built into a
@@ -346,7 +346,7 @@ implies that the host defaults to @var{target}.
@heading Options specification
Use @var{options} to override several configure time options for
-GCC@. A list of supported @var{options} follows; @command{configure
+GCC@. A list of supported @var{options} follows; @samp{configure
--help} may list other options, but those not listed below may not
work and should not normally be used.
@@ -358,7 +358,10 @@ other than the default. The toplevel installation directory defaults to
@file{/usr/local}.
We @strong{highly} recommend against @var{dirname} being the same or a
-subdirectory of @var{objdir} or vice versa.
+subdirectory of @var{objdir} or vice versa. If specifying a directory
+beneath a user's home directory tree, some shells will not expand
+@var{dirname} correctly if it contains the @samp{~} metacharacter; use
+@env{$HOME} instead.
These additional options control where certain parts of the distribution
are installed. Normally you should not need to use these options.
@@ -391,8 +394,7 @@ data files referenced by GCC@. The default is @file{@var{prefix}/share}.
@item --mandir=@var{dirname}
Specify the installation directory for manual pages. The default is
@file{@var{prefix}/man}. (Note that the manual pages are only extracts from
-the full GCC manuals, which are provided in Texinfo format. The
-@command{g77} manpage is unmaintained and may be out of date; the others
+the full GCC manuals, which are provided in Texinfo format. The manpages
are derived by an automatic conversion process from parts of the full
manual.)
@@ -555,27 +557,25 @@ 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
+@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}}
+@item @samp{sparc-sun-solaris2.@var{any}}
+@item @samp{sparc64-@var{any}-solaris2.@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,
+On the systems listed above (except for the HP-PA, the SPARC, for ISC on
+the 386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
you should also use the GNU linker (and specify @option{--with-gnu-ld}).
-@item --with-as=@var{pathname}
+@item @anchor{with-as}--with-as=@var{pathname}
Specify that the
compiler should use the assembler pointed to by @var{pathname}, rather
than the one found by the standard rules to find an assembler, which
@@ -600,12 +600,11 @@ and want to choose one that is not found by the above rules.
@item @anchor{with-gnu-ld}--with-gnu-ld
Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
-but for linker.
-
+but for the linker.
@item --with-ld=@var{pathname}
-Same as
-@option{--with-as}, but for the linker.
+Same as @uref{#with-as,,@option{--with-as}}
+but for the linker.
@item --with-stabs
Specify that stabs debugging
@@ -720,8 +719,8 @@ Specify which cpu variant the
compiler should generate code for by default. This is currently
only supported on some ports, specifically arm, powerpc, and
SPARC@. If configure does not recognize the model name (e.g.@: arm700,
-603e, or ultrasparc) you provide, please check the configure script
-for a complete list of supported models.
+603e, or ultrasparc) you provide, please check the
+@file{gcc/config.gcc} script for a complete list of supported models.
@item --enable-altivec
Specify that the target supports AltiVec vector enhancements. This
@@ -822,8 +821,8 @@ option. This option has no effect on the other hosts.
@item --nfp
Specify that the machine does not have a floating point unit. This
-option only applies to @samp{m68k-sun-sunos@var{n}} and
-@samp{m68k-isi-bsd}. On any other system, @option{--nfp} has no effect.
+option only applies to @samp{m68k-sun-sunos@var{n}}. On any other
+system, @option{--nfp} has no effect.
@item --enable-checking
@itemx --enable-checking=@var{list}
@@ -835,13 +834,15 @@ compiler and may only work properly if you are building the compiler
with GCC@. This is on by default when building from CVS or snapshots,
but off for releases. More control over the checks may be had by
specifying @var{list}; the categories of checks available are
-@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl}, @samp{rtlflag} and
-@samp{gcac}. The
-default when @var{list} is not specified is @samp{misc,tree,gc,rtlflag}; the
-checks @samp{rtl} and @samp{gcac} are very expensive.
+@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl}, @samp{rtlflag},
+@samp{gcac} and @samp{valgrind}. The check @samp{valgrind} requires the
+external @command{valgrind} simulator, available from
+@uref{http://developer.kde.org/~sewardj/}. The default when @var{list} is
+not specified is @samp{misc,tree,gc,rtlflag}; the checks @samp{rtl},
+@samp{gcac} and @samp{valgrind} are very expensive.
@item --enable-coverage
-@item --enable-coverage=@var{level}
+@itemx --enable-coverage=@var{level}
With this option, the compiler is built to collect self coverage
information, every time it is run. This is for internal development
purposes, and only works when the compiler is being built with gcc. The
@@ -890,8 +891,22 @@ forward to maintain the port.
Some options which only apply to building cross compilers:
@table @code
+@item --with-sysroot
+@itemx --with-sysroot=@var{dir}
+Tells GCC to consider @var{dir} as the root of a tree that contains a
+(subset of) the root filesystem of the target operating system.
+Target system headers, libraries and run-time object files will be
+searched in there. The specified directory is not copied into the
+install tree, unlike the options @option{--with-headers} and
+@option{--with-libs} that this option obsoletes. The default value,
+in case @option{--with-sysroot} is not given an argument, is
+@option{$@{gcc_tooldir@}/sys-root}. If the specified directory is a
+subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to
+the GCC binaries if the installation tree is moved.
+
@item --with-headers
@itemx --with-headers=@var{dir}
+Deprecated in favor of @option{--with-sysroot}.
Specifies that target headers are available when building a cross compiler.
The @var{dir} argument specifies a directory which has the target include
files. These include files will be copied into the @file{gcc} install
@@ -902,6 +917,7 @@ pre-exist, the @var{dir} argument may be omitted. @command{fixincludes}
will be run on these files to make them compatible with GCC.
@item --with-libs
@itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
+Deprecated in favor of @option{--with-sysroot}.
Specifies a list of directories which contain the target runtime
libraries. These libraries will be copied into the @file{gcc} install
directory. If the directory list is omitted, this option has no
@@ -951,7 +967,7 @@ Other broken versions may recompile parts of the compiler when
installing the compiler.)
Some commands executed when making the compiler may fail (return a
-nonzero status) and be ignored by @code{make}. These failures, which
+nonzero status) and be ignored by @command{make}. These failures, which
are often due to files that were not found, are expected, and can safely
be ignored.
@@ -983,7 +999,7 @@ parser sources, releases contain the Bison-generated files and you do
not need Bison installed to build them.
When building from CVS or snapshots, or if you modify Texinfo
-documentation, you need version 4.1 or later of Texinfo installed if you
+documentation, you need version 4.2 or later of Texinfo installed if you
want Info documentation to be regenerated. Releases contain Info
documentation pre-built for the unmodified documentation in the release.
@@ -1097,12 +1113,13 @@ Note that if an error occurs in any step the make process will exit.
@section Building in parallel
-If you have a multiprocessor system you can use @samp{make bootstrap
-MAKE="make -j 2" -j 2} or just @samp{make -j 2 bootstrap}
-for GNU Make 3.79 and above instead of just @samp{make bootstrap}
-when building GCC@. You can use a bigger number instead of two if
-you like. In most cases, it won't help to use a number bigger than
-the number of processors in your machine.
+You can use @samp{make bootstrap MAKE="make -j 2" -j 2}, or just
+@samp{make -j 2 bootstrap} for GNU Make 3.79 and above, instead of
+@samp{make bootstrap} to build GCC in parallel.
+You can also specify a bigger number, and in most cases using a value
+greater than the number of processors in your machine will result in
+fewer and shorter I/O latency hits, thus improving overall throughput;
+this is especially true for slow drives and network filesystems.
@section Building the Ada compiler
@@ -1185,6 +1202,9 @@ Before you install GCC, we encourage you to run the testsuites and to
compare your results with results from a similar configuration that have
been submitted to the
@uref{http://gcc.gnu.org/ml/gcc-testresults/,,gcc-testresults mailing list}.
+Some of these archived results are linked from the build status lists
+at @uref{http://gcc.gnu.org/buildstat.html}, although not everyone who
+reports a successful build runs the testsuites and submits the results.
This step is optional and may require you to download additional software,
but it can give you confidence in your new GCC installation or point out
problems before you install and start using your new GCC.
@@ -1195,68 +1215,57 @@ These are part of the full distribution, but if you downloaded the
separately.
Second, you must have the testing tools installed. This includes
-a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu};
-dejagnu 1.3 is not sufficient.
-It also includes Tcl and Expect; the DejaGnu site has links to these.
-
-Now you may need specific preparations:
+@uref{http://www.gnu.org/software/dejagnu/,,DejaGnu} 1.4.1 or 1.4.3
+and later, Tcl, and Expect; the DejaGnu site has links to these.
-@itemize @bullet
-
-@item
-The following environment variables may need to be set appropriately, as in
-the following example (which assumes that DejaGnu has been installed
-under @file{/usr/local}):
+If the directories where @command{runtest} and @command{expect} were
+installed are not in the @env{PATH}, you may need to set the following
+environment variables appropriately, as in the following example (which
+assumes that DejaGnu has been installed under @file{/usr/local}):
@example
TCL_LIBRARY = /usr/local/share/tcl8.0
DEJAGNULIBS = /usr/local/share/dejagnu
@end example
-On systems such as Cygwin, these paths are required to be actual
+(On systems such as Cygwin, these paths are required to be actual
paths, not mounts or links; presumably this is due to some lack of
-portability in the DejaGnu code.
-
-If the directories where @command{runtest} and @command{expect} were
-installed are in the @env{PATH}, it should not be necessary to set these
-environment variables.
+portability in the DejaGnu code.)
-@end itemize
Finally, you can run the testsuite (which may take a long time):
@example
cd @var{objdir}; make -k check
@end example
-The testing process will try to test as many components in the GCC
-distribution as possible, including the C, C++, Objective-C and Fortran
-compilers as well as the C++ and Java runtime libraries.
-
-While running the testsuite, DejaGnu might emit messages resembling
+This will test various components of GCC, such as compiler
+front ends and runtime libraries. While running the testsuite, DejaGnu
+might emit some harmless messages resembling
@samp{WARNING: Couldn't find the global config file.} or
-@samp{WARNING: Couldn't find tool init file}.
-These messages are harmless and do not affect the validity of the tests.
+@samp{WARNING: Couldn't find tool init file} that can be ignored.
@section How can I run the test suite on selected tests?
-As a first possibility to cut down the number of tests that are run it is
-possible to use @samp{make check-gcc} or @samp{make check-g++}
-in the @file{gcc} subdirectory of the object directory. To further cut down the
-tests the following is possible:
+In order to run sets of tests selectively, there are targets
+@samp{make check-gcc} and @samp{make check-g++}
+in the @file{gcc} subdirectory of the object directory. You can also
+just run @samp{make check} in a subdirectory of the object directory.
+
+
+A more selective way to just run all @command{gcc} execute tests in the
+testsuite is to use
@example
make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
@end example
-This will run all @command{gcc} execute tests in the testsuite.
+Likewise, in order to run only the @command{g++} ``old-deja'' tests in
+the testsuite with filenames matching @samp{9805*}, you would use
@example
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
@end example
-This will run the @command{g++} ``old-deja'' tests in the testsuite where the filename
-matches @samp{9805*}.
-
The @file{*.exp} files are located in the testsuite directories of the GCC
source, the most important ones being @file{compile.exp},
@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}.
@@ -1264,9 +1273,9 @@ To get a list of the possible @file{*.exp} files, pipe the
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}.
+The Java runtime tests can be executed via @samp{make check}
+in the @file{@var{target}/libjava/testsuite} directory in
+the build tree.
@section Additional testing for Java Class Libraries
@@ -1277,13 +1286,18 @@ testsuite at @file{libjava/testsuite/libjava.mauve/mauve}, or by
specifying the location of that tree when invoking @samp{make}, as in
@samp{make MAUVEDIR=~/mauve check}.
+@uref{http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html,,Jacks}
+is a free test suite that tests Java compiler front ends. This suite
+can be run as part of libgcj testing by placing the Jacks tree within
+the libjava testsuite at @file{libjava/testsuite/libjava.jacks/jacks}.
+
@section How to interpret test results
-After the testsuite has run you'll find various @file{*.sum} and @file{*.log}
+The result of running the testsuite are various @file{*.sum} and @file{*.log}
files in the testsuite subdirectories. The @file{*.log} files contain a
detailed log of the compiler invocations and the corresponding
-results, the @file{*.sum} files summarize the results. These summaries list
-all the tests that have been run with a corresponding status code:
+results, the @file{*.sum} files summarize the results. These summaries
+contain status codes for all tests:
@itemize @bullet
@item
@@ -1323,12 +1337,7 @@ make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is
prepended to the testsuite summary and should contain any special
remarks you have on your results or your build environment. Please
do not edit the testsuite result block or the subject line, as these
-messages are automatically parsed and presented at the
-@uref{http://gcc.gnu.org/testresults/,,GCC testresults} web
-page. Here you can also gather information on how specific tests
-behave on different platforms and compare them with your results. A
-few failing testcases are possible even on released versions and you
-should look here first if you think your results are unreasonable.
+messages may be automatically processed.
@html
<hr />
@@ -1368,6 +1377,34 @@ in @file{@var{libdir}} (normally @file{@var{prefix}/lib}); internal
parts of the compiler in @file{@var{libdir}/gcc-lib}; documentation in
info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}).
+When installing cross-compilers, GCC's executables
+are not only installed into @file{@var{bindir}}, that
+is, @file{@var{exec-prefix}/bin}, but additionally into
+@file{@var{exec-prefix}/@var{target-alias}/bin}, if that directory
+exists. Typically, such @dfn{tooldirs} hold target-specific
+binutils, including assembler and linker.
+
+Installation into a temporary staging area or into a @command{chroot}
+jail can be achieved with the command
+
+@example
+make DESTDIR=@var{path-to-rootdir} install
+@end example
+
+@noindent where @var{path-to-rootdir} is the absolute path of
+a directory relative to which all installation paths will be
+interpreted. Note that the directory specified by @code{DESTDIR}
+need not exist yet; it will be created if necessary.
+
+There is a subtle point with tooldirs and @code{DESTDIR}:
+If you relocate a cross-compiler installation with
+e.g.@: @samp{DESTDIR=@var{rootdir}}, then the directory
+@file{@var{rootdir}/@var{exec-prefix}/@var{target-alias}/bin} will
+be filled with duplicated GCC executables only if it already exists,
+it will not be created otherwise. This is regarded as a feature,
+not as a bug, because it gives slightly more control to the packagers
+using the @code{DESTDIR} feature.
+
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}.
@@ -1434,7 +1471,7 @@ If you find a bug, please report it following our
@uref{../bugs.html,,bug reporting guidelines}.
If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
-dvi}. You will need to have @command{texi2dvi} (version at least 4.1)
+dvi}. You will need to have @command{texi2dvi} (version at least 4.2)
and @TeX{} installed. This creates a number of @file{.dvi} files in
subdirectories of @file{@var{objdir}}; these may be converted for
printing with programs such as @command{dvips}. You can also
@@ -1487,8 +1524,8 @@ AIX:
DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}.
@item
-Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
-Development Tools for the Hitachi H8/300[HS] Series}.
+Renesas H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
+Development Tools for the Renesas H8/300[HS] Series}.
@item
HP-UX:
@@ -1501,11 +1538,15 @@ HP-UX:
@end itemize
@item
+Motorola 68HC11/68HC12---@uref{http://www.gnu-m68hc11.org,,GNU
+Development Tools for the Motorola 68HC11/68HC12}.
+
+@item
@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
OpenServer/Unixware}.
@item
-Sinix/Reliant Unix---@uref{ftp://ftp.siemens.de/sni/mr/pd/gnu/gcc,,Siemens}.
+Sinix/Reliant Unix---@uref{ftp://ftp.fujitsu-siemens.com/pub/pd/gnu/gcc/,,Siemens}.
@item
Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}.
@@ -1514,7 +1555,7 @@ Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware}.
SGI---@uref{http://freeware.sgi.com/,,SGI Freeware}.
@item
-Windows 95, 98, and NT:
+Microsoft Windows:
@itemize
@item
The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project;
@@ -1523,10 +1564,14 @@ The @uref{http://www.mingw.org/,,MinGW} project.
@end itemize
@item
-@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/,,The
-Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
-IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.
-
+@uref{ftp://ftp.thewrittenword.com/packages/by-name/,,The
+Written Word} offers binaries for
+AIX 4.3.2.
+IRIX 6.5,
+Digital UNIX 4.0D and 5.1,
+GNU/Linux (i386),
+HP-UX 10.20, 11.00, and 11.11, and
+Solaris/SPARC 2.5.1, 2.6, 2.7, 8, and 9,
@end itemize
In addition to those specific offerings, you can get a binary
@@ -1622,6 +1667,8 @@ GNU Compiler Collection on your machine.
@item
@uref{#ia64-*-linux,,ia64-*-linux}
@item
+@uref{#ia64-*-hpux*,,ia64-*-hpux*}
+@item
@uref{#*-lynx-lynxos,,*-lynx-lynxos}
@item
@uref{#*-ibm-aix*,,*-ibm-aix*}
@@ -1676,8 +1723,6 @@ GNU Compiler Collection on your machine.
@item
@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
@item
-@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
-@item
@uref{#s390-*-linux*,,s390-*-linux*}
@item
@uref{#s390x-*-linux*,,s390x-*-linux*}
@@ -1694,7 +1739,7 @@ GNU Compiler Collection on your machine.
@item
@uref{#sparc-*-linux*,,sparc-*-linux*}
@item
-@uref{#sparc64-*-*,,sparc64-*-*}
+@uref{#sparc64-*-solaris2*,,sparc64-*-solaris2*}
@item
@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
@item
@@ -1702,6 +1747,8 @@ GNU Compiler Collection on your machine.
@item
@uref{#vax-dec-ultrix,,vax-dec-ultrix}
@item
+@uref{#x86_64-*-*,,x86_64-*-*, amd64-*-*}
+@item
@uref{#xtensa-*-elf,,xtensa-*-elf}
@item
@uref{#xtensa-*-linux*,,xtensa-*-linux*}
@@ -1792,7 +1839,7 @@ target in an integral value on the host cannot be performed. Building
cross-compilers on the Alpha for 32-bit machines has only been tested in
a few cases and may not work properly.
-@code{make compare} may fail on old versions of DEC Unix unless you add
+@samp{make compare} may fail on old versions of DEC Unix unless you add
@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
assembler input file is stored in the object file, and that makes
comparison fail if it differs between the @code{stage1} and
@@ -1858,6 +1905,8 @@ This configuration is intended for embedded systems.
<hr />
@end html
@heading @anchor{arm-*-aout}arm-*-aout
+This configuration is obsoleted in GCC 3.3.
+
Advanced RISC Machines ARM-family processors. These are often used in
embedded applications. There are no standard Unix configurations.
This configuration corresponds to the basic instruction sequences and will
@@ -1904,9 +1953,9 @@ can also be obtained from:
@item
@uref{http://www.openavr.org,,http://www.openavr.org}
@item
-@uref{http://home.overta.ru/users/denisc,,http://home.overta.ru/users/denisc}
+@uref{http://home.overta.ru/users/denisc/,,http://home.overta.ru/users/denisc/}
@item
-@uref{http://www.amelek.gda.pl/avr,,http://www.amelek.gda.pl/avr}
+@uref{http://www.amelek.gda.pl/avr/,,http://www.amelek.gda.pl/avr/}
@end itemize
We @emph{strongly} recommend using binutils 2.13 or newer.
@@ -2013,7 +2062,7 @@ The version of binutils installed in @file{/usr/bin} is known to work unless
otherwise specified in any per-architecture notes. However, binutils
2.12.1 or greater is known to improve overall testsuite results.
-FreeBSD 1 is no longer supported in GCC 3.2.
+Support for FreeBSD 1 was discontinued in GCC 3.2.
For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All
configuration support and files as shipped with GCC 2.95 are still in
@@ -2031,22 +2080,19 @@ of the configuration used in the stock FreeBSD configuration of GCC. In
particular, @option{--enable-threads} is now configured by default.
However, as a general user, do not attempt to replace the system
compiler with this release. Known to bootstrap and check with good
-results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5-STABLE and 5-CURRENT@.
+results on FreeBSD 4.8-STABLE and 5-CURRENT@. In the past, known to
+bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2,
+4.3, 4.4, 4.5-STABLE@.
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}.
+and tested on @samp{i386-*-freebsd[45]} and @samp{alpha-*-freebsd[45]}.
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
+assumption 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
+4.5-RELEASE@. Other CPU architectures
supported by FreeBSD will require additional configuration tuning in, at
the very least, both boehm-gc and libffi.
@@ -2056,7 +2102,7 @@ Shared @file{libgcc_s.so} is now built and installed by default.
<hr />
@end html
@heading @anchor{h8300-hms}h8300-hms
-Hitachi H8/300 series of processors.
+Renesas H8/300 series of processors.
Please have a look at our @uref{binaries.html,,binaries page}.
@@ -2069,6 +2115,7 @@ longer a multiple of 2 bytes.
<hr />
@end html
@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
+Support for HP-UX versions 7, 8, and 9 is obsoleted in GCC 3.3.
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
@@ -2103,6 +2150,7 @@ More specific information to @samp{hppa*-hp-hpux*} targets follows.
<hr />
@end html
@heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9
+Support for this system is obsoleted in GCC 3.3.
The HP assembler has major problems on this platform. We've tried to work
around the worst of the problems. However, those workarounds may be causing
@@ -2127,15 +2175,15 @@ charge:
@itemize @bullet
@item
@html
-<a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
+<a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and
Latin-America</a>
@end html
@ifnothtml
-@uref{http://us-support.external.hp.com,,}US, Canada, Asia-Pacific, and
-Latin-America
+@uref{http://us.itrc.hp.com/service/home/home.do,,} US, Canada, Asia-Pacific,
+and Latin-America.
@end ifnothtml
@item
-@uref{http://europe-support.external.hp.com,,Europe}
+@uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
@end itemize
The HP assembler on these systems is much better than the hpux9 assembler,
@@ -2154,11 +2202,23 @@ bootstrap}.
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.
+linker. The @samp{hppa64-hp-hpux11*} port generates 64-bit code for the
+pa-risc 2.0 architecture. The script config.guess now selects the port
+type based on the type compiler detected during configuration. You must
+set your @env{PATH} or define @env{CC} so that configure finds an appropriate
+compiler for the initial bootstrap. Different prefixes must be used if
+both ports are to be installed on the same system.
+
+It is best to explicitly configure the @samp{hppa64-hp-hpux11*} target
+with the @option{--with-ld=@dots{}} option. We support both the HP
+and GNU linkers for this target. The two linkers require different
+link commands. Thus, it's not possible to switch linkers during a
+GCC build. This has been been reported to occur in a unified build
+of binutils and GCC.
+
+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.
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
@@ -2169,17 +2229,49 @@ not work. See:
@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 has many limitations and is not recommended. For
-example, it does not support weak symbols or alias definitions.
-As a result, explicit template instantiations are required when
-using C++. Either the HP or GNU linker can be used but it may be
-necessary to use the GNU linker when dwarf2 exception support is
-implemented.
+GCC 3.3 and later support weak symbols on the 32-bit port using SOM
+secondary definition symbols. This feature is not enabled for earlier
+versions of HP-UX since there have been bugs in the linker support for
+secondary symbols. The HP linker patches @code{PHSS_26559} and
+@code{PHSS_24304} for HP-UX 11.00 and 11.11, respectively, correct the
+problem of linker core dumps creating C++ libraries. Earlier patches
+may work but they have not been tested.
+
+GCC 3.3 nows uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capability
+to run initializers and finalizers on the 64-bit port. The feature
+requires CVS binutils as of January 2, 2003, or a subsequent release
+to correct a problem arising from HP's non-standard use of the .init
+and .fini sections. The 32-bit port uses the linker @option{+init}
+and @option{+fini} options. As with the support for secondary symbols,
+there have been bugs in the order in which these options are executed
+by the HP linker. So, again a recent linker patch is recommended.
+
+The HP assembler has many limitations and is not recommended for either
+the 32 or 64-bit ports. For example, it does not support weak symbols
+or alias definitions. As a result, explicit template instantiations
+are required when using C++. This will make it difficult if not
+impossible to build many C++ applications. You also can't generate
+debugging information when using the HP assembler with GCC.
+
+There are a number of issues to consider in selecting which linker to
+use with the 64-bit port. The GNU 64-bit linker can only create dynamic
+binaries. The @option{-static} option causes linking with archive
+libraries but doesn't produce a truly static binary. Dynamic binaries
+still require final binding by the dynamic loader to resolve a set of
+dynamic-loader-defined symbols. The default behavior of the HP linker
+is the same as the GNU linker. However, it can generate true 64-bit
+static binaries using the @option{+compat} option.
+
+The HP 64-bit linker doesn't support linkonce semantics. As a
+result, C++ programs have many more sections than they should.
+
+The GNU 64-bit linker has some issues with shared library support
+and exceptions. As a result, we only support libgcc in archive
+format. For similar reasons, dwarf2 unwind and exception support
+are disabled. The GNU linker also has problems creating binaries
+with @option{-static}. It doesn't provide stubs for internal
+calls to global functions in shared libraries, so these calls
+can't be overloaded.
There are several possible approaches to building the distribution.
Binutils can be built first using the HP tools. Then, the GCC
@@ -2208,23 +2300,20 @@ have a higher-quality port for this machine soon.
@end html
@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
+Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
+in glibc 2.2.5 and later. More information is available in the
+libstdc++-v3 documentation.
+
If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
out-of-the-box. You'll get compile errors while building @samp{libstdc++}.
The patch @uref{glibc-2.2.patch,,glibc-2.2.patch}, that is to be
applied in the GCC source tree, fixes the compatibility problems.
-@html
-@end html
-
-@html
-<p>
-@end html
-
Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
since the latest exception handling changes for GCC@. Compiling glibc
with GCC 3.0 will give a binary incompatible glibc and therefore cause
-lots of problems and might make your system completly unusable. This
-will definitly need fixes in glibc but might also need fixes in GCC@. We
+lots of problems and might make your system completely unusable. This
+will definitely need fixes in glibc but might also need fixes in GCC@. We
strongly advise to wait for glibc 2.2.4 and to read the release notes of
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.
@@ -2242,7 +2331,8 @@ gas/binutils version 2.5.2 or later.
@end html
@heading @anchor{ix86-*-linux*}i?86-*-linux*
-You will need binutils 2.9.1.0.15 or newer for exception handling to work.
+As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
+See @uref{http://gcc.gnu.org/PR10877,,bug 10877} for more information.
If you receive Signal 11 errors when building on GNU/Linux, then it is
possible you have a hardware problem. Further information on this can be
@@ -2258,12 +2348,6 @@ link with GNU malloc instead of the malloc that comes with the system.
@html
<hr />
@end html
-@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4
-Use this configuration for SCO release 3.2 version 4.
-
-@html
-<hr />
-@end html
@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
Use this for the SCO OpenServer Release 5 family of operating systems.
@@ -2276,64 +2360,34 @@ maintain. GCC now emits only DWARF 2 for this target. This means you
may use either the UDK debugger or GDB to debug programs built by this
version of GCC@.
-Use of the @option{-march=pentiumpro} flag can result in
-unrecognized opcodes when using the native assembler on OS versions before
-5.0.6. (Support for P6 opcodes was added to the native ELF assembler in
-that version.) While it's rather rare to see these emitted by GCC yet,
-errors of the basic form:
-
-@example
- /usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
- /usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
-@end example
-
-are symptoms of this problem. You may work around this by not
-building affected files with that flag, by using the GNU assembler, or
-by using the assembler provided with the current version of the OS@.
-Users of GNU assembler should see the note below for hazards on doing
-so.
-
-The native SCO assembler that is provided with the OS at no
-charge is normally required. If, however, you must be able to use
-the GNU assembler (perhaps you're compiling code with asms that
-require GAS syntax) you may configure this package using the flags
-@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You must
-use a recent version of GNU binutils; versions past 2.9.1 seem to work
-well.
-
-In general, the @option{--with-gnu-as} option isn't as well tested
-as the native assembler.
-
-Look in @file{gcc/config/i386/sco5.h} (search for ``messy'') for
-additional OpenServer-specific flags.
-
-Systems based on OpenServer before 5.0.4 (@samp{uname -X}
-will tell you what you're running) require TLS597 from
-@uref{ftp://ftp.sco.com/TLS/,,ftp://ftp.sco.com/TLS/}
-for C++ constructors and destructors to work right.
-
-The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
-do the wrong thing for a construct that GCC will emit for PIC
-code. This can be seen as execution testsuite failures when using
-@option{-fPIC} on @file{921215-1.c}, @file{931002-1.c}, @file{nestfunc-1.c}, and @file{gcov-1.c}.
-For 5.0.5, an updated linker that will cure this problem is
-available. You must install both
-@uref{ftp://ftp.sco.com/Supplements/rs505a/,,ftp://ftp.sco.com/Supplements/rs505a/}
-and @uref{ftp://ftp.sco.com/SLS/,,OSS499A}.
-
-The dynamic linker in OpenServer 5.0.5 (earlier versions may show
-the same problem) aborts on certain G77-compiled programs. It's particularly
-likely to be triggered by building Fortran code with the @option{-fPIC} flag.
-Although it's conceivable that the error could be triggered by other
-code, only G77-compiled code has been observed to cause this abort.
-If you are getting core dumps immediately upon execution of your
-G77 program---and especially if it's compiled with @option{-fPIC}---try applying
-@uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your @samp{libf2c} and
-rebuilding GCC@.
-Affected faults, when analyzed in a debugger, will show a stack
-backtrace with a fault occurring in @code{rtld()} and the program
-running as @file{/usr/lib/ld.so.1}. This problem has been reported to SCO
-engineering and will hopefully be addressed in later releases.
+GCC is now only supported on releases 5.0.4 and later, and requires that
+you install Support Level Supplement OSS646B or later, and the latest
+version of the Supplement Graphics, Web and X11 Libraries (GWXLIBS)
+package. If you are using release 5.0.7 of OpenServer, you must have at
+least the first maintenance pack installed (this includes the relevant
+portions of OSS646 and GWXLIBS). OSS646, also known as the "Execution
+Environment Update", provides updated link editors and assemblers, as well
+as updated standard C and math libraries. The C startup modules are also
+updated to support the System V gABI draft, and GCC relies on that
+behavior. GWXLIBS provides a collection of commonly used open source
+libraries, some of which GCC depends on (such as GNU gettext and zlib).
+SCO OpenServer Release 5.0.7 has all of this built in by default, but
+GWXLIBS is significantly updated in Maintenance Pack 1. Please visit
+@uref{ftp://ftp.sco.com/pub/openserver5,,ftp://ftp.sco.com/pub/openserver5}
+and
+@uref{ftp://ftp.sco.com/pub/openserver5/opensrc,,ftp://ftp.sco.com/pub/openserver5/opensrc}
+for the latest versions of these (and other potentially useful) supplements.
+
+Although there is support for using the native assembler, it is recommended
+that you configure GCC to use the GNU assembler. You do this by using the
+flags @uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You
+should use a modern version of GNU binutils. Version 2.14 was used for all
+testing. In general, only the @option{--with-gnu-as} option is tested. A
+modern bintuils (as well as a plethora of other development related GNU
+utilities) can be found in the GNU Development Tools package. See the
+SCO web and ftp sites for details. That package also contains the
+currently "officially supported" version of GCC, version 2.95.3. It is
+useful for bootstrapping this version.
@html
@@ -2399,7 +2453,21 @@ ABI changes are expected.
@html
<hr />
@end html
+@heading @anchor{ia64-*-hpux*}ia64-*-hpux*
+Building GCC on this target requires the GNU Assembler. The bundled HP
+assembler will not work. To prevent GCC from using the wrong assembler,
+the option @option{--with-gnu-as} may be necessary.
+
+The GCC libunwind library has not been ported to HPUX. This means that for
+GCC versions 3.2.3 and earlier, @option{--enable-libunwind-exceptions}
+is required to build GCC. For GCC 3.3 and later, this is the default.
+
+@html
+<hr />
+@end html
@heading @anchor{*-lynx-lynxos}*-lynx-lynxos
+Support for SPARC LynxOS is obsoleted in GCC 3.3.
+
LynxOS 2.2 and earlier comes with GCC 1.x already installed as
@file{/bin/gcc}. You should compile with this instead of @file{/bin/cc}.
You can tell GCC to use the GNU assembler and linker, by specifying
@@ -2412,6 +2480,7 @@ installed tools, which produce @file{a.out} format executables.
<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
@end html
@heading @anchor{*-ibm-aix*}*-ibm-aix*
+Support for AIX versions 1, 2, and 3 is obsoleted in GCC 3.3.
AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
newer is recommended to build on this platform.
@@ -2427,11 +2496,12 @@ does not provide a definition that will confuse @command{configure}.
If this error occurs during stage2 or later, then the problem most likely
is the version of Make (see above).
-The GNU Assembler incorrectly reports that it supports WEAK symbols on
-AIX which causes GCC to try to utilize weak symbol functionality although
-it is not supported on the platform. The native @command{as} and
-@command{ld} still are recommended. The native AIX tools do
-interoperate with GCC@.
+The native @command{as} and @command{ld} are recommended for bootstrapping
+on AIX 4 and required for bootstrapping on AIX 5L. The GNU Assembler
+reports that it supports WEAK symbols on AIX 4, which causes GCC to try to
+utilize weak symbol functionality although it is not supported. The GNU
+Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC.
+The native AIX tools do interoperate with GCC@.
Building @file{libstdc++.a} requires a fix for an AIX Assembler bug
APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
@@ -2530,13 +2600,15 @@ Use @samp{configure --target=ip2k-elf --enable-languages=c} to configure GCC@.
<hr />
@end html
@heading @anchor{m32r-*-elf}m32r-*-elf
-Mitsubishi M32R processor.
+Renesas M32R processor.
This configuration is intended for embedded systems.
@html
<hr />
@end html
@heading @anchor{m68000-hp-bsd}m68000-hp-bsd
+Support for this system is obsoleted in GCC 3.3.
+
HP 9000 series 200 running BSD@. Note that the C compiler that comes
with this system cannot compile GCC; contact @email{law@@cygnus.com}
to get binaries of GCC for bootstrapping.
@@ -2559,19 +2631,23 @@ applications. There are no standard Unix configurations.
<hr />
@end html
@heading @anchor{m68k-att-sysv}m68k-att-sysv
+Support for this system is obsoleted in GCC 3.3.
+
AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC cannot
be compiled with the system C compiler, which is too buggy.
You will need to get a previous version of GCC and use it to
bootstrap. Binaries are available from the OSU-CIS archive, at
-@uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}.
+@uref{ftp://ftp.uu.net/systems/att7300/}.
@html
<hr />
@end html
@heading @anchor{m68k-crds-unos}m68k-crds-unos
+Support for this system is obsoleted in GCC 3.3.
+
Use @samp{configure unos} for building on Unos.
-The Unos assembler is named @code{casm} instead of @code{as}. For some
+The Unos assembler is named @command{casm} instead of @command{as}. For some
strange reason linking @file{/bin/as} to @file{/bin/casm} changes the
behavior, and does not work. So, when installing GCC, you should
install the following script as @file{as} in the subdirectory where
@@ -2645,9 +2721,9 @@ kept up to date. gdb does not understand that native HP-UX format, so
you must use gas if you wish to use gdb.
On HP-UX version 8.05, but not on 8.07 or more recent versions, the
-@code{fixproto} shell script triggers a bug in the system shell. If you
+@command{fixproto} shell script triggers a bug in the system shell. If you
encounter this problem, upgrade your operating system or use BASH (the
-GNU shell) to run @code{fixproto}. This bug will cause the fixproto
+GNU shell) to run @command{fixproto}. This bug will cause the fixproto
program to report an error of the form:
@example
@@ -2666,6 +2742,8 @@ to look like:
<hr />
@end html
@heading @anchor{m68k-ncr-*}m68k-ncr-*
+Support for this system is obsoleted in GCC 3.3.
+
On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
allowed to have more than one megabyte of memory. GCC cannot compile
itself (or many other programs) with @option{-O} in that much memory.
@@ -2682,6 +2760,8 @@ MAXUMEM = 4096
<hr />
@end html
@heading @anchor{m68k-sun}m68k-sun
+Support for this system is obsoleted in GCC 3.3.
+
Sun 3. We do not provide a configuration file to use the Sun FPA by
default, because programs that establish signal handlers for floating
point traps inherently cannot work with the FPA@.
@@ -2690,6 +2770,8 @@ point traps inherently cannot work with the FPA@.
<hr />
@end html
@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1
+Support for this system is obsoleted in GCC 3.3.
+
It is reported that you may need the GNU assembler on this platform.
@@ -2707,6 +2789,16 @@ stop such warnings by installing the GNU linker.
It would be nice to extend GAS to produce the gp tables, but they are
optional, and there should not be a warning about their absence.
+The libstdc++ atomic locking routines for MIPS targets requires MIPS II
+and later. A patch went in just after the GCC 3.3 release to
+make @samp{mips*-*-*} use the generic implementation instead. You can also
+configure for @samp{mipsel-elf} as a workaround. The
+@samp{mips*-*-linux*} target continues to use the MIPS II routines. More
+work on this is expected in future releases.
+
+@html
+<hr />
+@end html
@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
This configuration has considerable problems, which will be fixed in a
@@ -2717,7 +2809,7 @@ subsystem must be installed from the IDO CD-ROM supplied by Silicon
Graphics. It is also available for download from
@uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}.
-@code{make compare} may fail on version 5 of IRIX unless you add
+@samp{make compare} may fail on version 5 of IRIX unless you add
@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
assembler input file is stored in the object file, and that makes
comparison fail if it differs between the @code{stage1} and
@@ -2862,32 +2954,23 @@ switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin*
PowerPC running Darwin (Mac OS X kernel).
-GCC 3.0 does not support Darwin, but 3.1 and later releases will work.
-
Pre-installed versions of Mac OS X may not include any developer tools,
meaning that you will not be able to build GCC from source. Tool
binaries are available at
-@uref{http://www.opensource.apple.com/projects/darwin} (free
+@uref{http://developer.apple.com/tools/compilers.html} (free
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
-@uref{http://www.opensource.apple.com/tools/cvs/docs.html} for details.
-
-Also, the default stack limit of 512K is too small, and a bootstrap will
-typically fail when self-compiling @file{expr.c}. Set the stack to 800K
-or more, for instance by doing @samp{limit stack 800}. It's also
-convenient to use the GNU preprocessor instead of Apple's during the
-first stage of bootstrapping; this is automatic when doing @samp{make
-bootstrap}, but to do it from the toplevel objdir you will need to say
-@samp{make CC='cc -no-cpp-precomp' bootstrap}.
+The default stack limit of 512K is too small, which may cause compiles
+to fail with 'Bus error'. Set the stack larger, for instance
+by doing @samp{limit stack 800}. It's a good idea to use the GNU
+preprocessor instead of Apple's @file{cpp-precomp} during the first stage of
+bootstrapping; this is automatic when doing @samp{make bootstrap}, but
+to do it from the toplevel objdir you will need to say @samp{make
+CC='cc -no-cpp-precomp' bootstrap}.
-Note that the version of GCC shipped by Apple typically includes a
-number of extensions not available in a standard GCC release. These
-extensions are generally specific to Mac programming.
+The version of GCC shipped by Apple typically includes a number of
+extensions not available in a standard GCC release. These extensions
+are generally specific to Mac programming.
@html
<hr />
@@ -2909,7 +2992,7 @@ or newer for a working GCC@.
@end html
@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
PowerPC system in big endian mode running NetBSD@. To build the
-documentation you will need Texinfo version 4.1 (NetBSD 1.5.1 included
+documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
Texinfo version 3.12).
@html
@@ -2954,12 +3037,6 @@ Embedded PowerPC system in little endian mode.
@html
<hr />
@end html
-@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
-PowerPC system in little endian mode running Windows NT@.
-
-@html
-<hr />
-@end html
@heading @anchor{s390-*-linux*}s390-*-linux*
S/390 system running Linux for S/390@.
@@ -2983,12 +3060,24 @@ GCC you first have to install a pre-built compiler, see our
@uref{binaries.html,,binaries page} for details.
The Solaris 2 @command{/bin/sh} will often fail to configure
-@file{libstdc++-v3}, @file{boehm-gc} or
-@file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to
-@command{/bin/ksh} in your environment before running @command{configure}.
+@file{libstdc++-v3}, @file{boehm-gc} or @file{libjava}. We therefore
+recommend to use the following sequence of commands to bootstrap and
+install GCC:
+
+@smallexample
+ % CONFIG_SHELL=/bin/ksh
+ % export CONFIG_SHELL
+ % @var{srcdir}/configure [@var{options}] [@var{target}]
+ % gmake bootstrap
+ % gmake install
+@end smallexample
+
+As explained in the @uref{build.html,,build} instructions, we recommend
+to use GNU make, which we call @command{gmake} here to distinguish it
+from Sun make.
Solaris 2 comes with a number of optional OS packages. Some of these
-packages are needed to use GCC fully, namely @code{SUNWarc},
+are needed to use GCC fully, namely @code{SUNWarc},
@code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm},
@code{SUNWsprot}, and @code{SUNWtoo}. If you did not install all
optional packages when installing Solaris 2, you will need to verify that
@@ -3004,9 +3093,24 @@ Trying to use the linker and other tools in
For example, the linker may hang indefinitely. The fix is to remove
@file{/usr/ucb} from your @env{PATH}.
+The build process works more smoothly with the legacy Sun tools so, if you
+have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
+@file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build.
+
All releases of GNU binutils prior to 2.11.2 have known bugs on this
-platform. We recommend the use of GNU binutils 2.11.2 or the vendor
-tools (Sun @command{as}, Sun @command{ld}).
+platform. We recommend the use of GNU binutils 2.11.2 or later, or the
+vendor tools (Sun @command{as}, Sun @command{ld}). Note that your mileage
+may vary if you use a combination of the GNU tools and the Sun tools: while
+the combination GNU @command{as} + Sun @command{ld} should reasonably work,
+the reverse combination Sun @command{as} + GNU @command{ld} is known to
+cause memory corruption at runtime in some cases for C++ programs.
+
+The stock GNU binutils 2.15 release is broken on this platform because of a
+single bug. It has been fixed on the 2.15 branch in the CVS repository.
+You can obtain a working version by checking out the binutils-2_15-branch
+from the CVS repository or applying the patch
+@uref{http://sources.redhat.com/ml/binutils-cvs/2004-09/msg00036.html} to the
+release.
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
newer: @command{g++} will complain that types are missing. These headers assume
@@ -3022,6 +3126,17 @@ There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
108653-22 for Intel) that fix this bug.
+Sun bug 4927647 sometimes causes random spurious testsuite failures
+related to missing diagnostic output. This bug doesn't affect GCC
+itself, rather it is a kernel bug triggered by the @command{expect}
+program which is used only by the GCC testsuite driver. When the bug
+causes the @command{expect} program to miss anticipated output, extra
+testsuite failures appear.
+
+There are patches for Solaris 8 (117350-12 or newer for SPARC,
+117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
+SPARC, 117172-11 or newer for Intel) that address this problem.
+
@html
<hr />
@end html
@@ -3057,6 +3172,13 @@ that supports only 32-bit binaries, one must configure with
@option{--disable-multilib}, since we will not be able to build the
64-bit target libraries.
+GCC 3.3 triggers code generation bugs in earlier versions of the GNU
+compiler (especially GCC 3.0.x versions), which lead to the miscompilation
+of the stage1 compiler and the subsequent failure of the bootstrap process.
+A workaround is to use GCC 3.2.3 as an intermediary stage, i.e. to bootstrap
+that compiler with the base compiler and then use it to bootstrap the final
+compiler.
+
@html
<hr />
@end html
@@ -3097,12 +3219,23 @@ the bug. The current (as of 2001-09-24) revision is -14, and is included in
the Solaris 7 Recommended Patch Cluster.
@end itemize
+GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler,
+which causes a bootstrap failure when linking the 64-bit shared version of
+libgcc. A typical error message is:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
+ symbol <unknown>: offset 0xffffffff7ec133e7 is non-aligned.
+@end smallexample
+
+This bug has been fixed in the final 5.0 version of the assembler.
@html
<p>
<hr />
@end html
@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4*
+Support for this system is obsoleted in GCC 3.3.
A bug in the SunOS 4 linker will cause it to crash when linking
@option{-fPIC} compiled objects (and will therefore not allow you to build
@@ -3122,6 +3255,7 @@ be due to a bug in @command{sh}. You can probably get around it by running
<hr />
@end html
@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1
+Support for this system is obsoleted in GCC 3.3.
It has been reported that you might need
@uref{ftp://ftp.yggdrasil.com/private/hjl,,binutils 2.8.1.0.23}
@@ -3141,18 +3275,7 @@ releases mishandled unaligned relocations on @code{sparc-*-*} targets.
@html
<hr />
@end html
-@heading @anchor{sparc64-*-*}sparc64-*-*
-
-GCC version 2.95 is not able to compile code correctly for
-@code{sparc64} targets. Users of the Linux kernel, at least,
-can use the @code{sparc32} program to start up a new shell
-invocation with an environment that causes @command{configure} to
-recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead.
-
-@html
-<hr />
-@end html
-@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+@heading @anchor{sparc64-*-solaris2*}sparc64-*-solaris2*
The following compiler flags must be specified in the configure
step in order to bootstrap this target with the Sun compiler:
@@ -3162,7 +3285,14 @@ step in order to bootstrap this target with the Sun compiler:
@end example
@option{-xildoff} turns off the incremental linker, and @option{-xarch=v9}
-specifies the v9 architecture to the Sun linker and assembler.
+specifies the SPARC-V9 architecture to the Sun linker and assembler.
+
+@html
+<hr />
+@end html
+@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
+
+This is a synonym for sparc64-*-solaris2*.
@html
<hr />
@@ -3195,19 +3325,29 @@ On System V, if you get an error like this,
that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
On a System V release 4 system, make sure @file{/usr/bin} precedes
-@file{/usr/ucb} in @code{PATH}. The @code{cc} command in
+@file{/usr/ucb} in @code{PATH}. The @command{cc} command in
@file{/usr/ucb} uses libraries which have bugs.
@html
<hr />
@end html
@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
-Don't try compiling with VAX C (@code{vcc}). It produces incorrect code
+Don't try compiling with VAX C (@command{vcc}). It produces incorrect code
in some cases (for example, when @code{alloca} is used).
@html
<hr />
@end html
+@heading @anchor{x86_64-*-*}x86_64-*-*, amd64-*-*
+
+GCC supports the x86-64 architecture implemented by the AMD64 processor
+(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
+On GNU/Linux the default is a bi-arch compiler which is able to generate
+both 64-bit x86-64 and 32-bit x86 code (via the @option{-m32} switch).
+
+@html
+<hr />
+@end html
@heading @anchor{xtensa-*-elf}xtensa-*-elf
This target is intended for embedded Xtensa systems using the
@@ -3240,12 +3380,15 @@ respects, this target is the same as the
@end html
@heading @anchor{windows}Microsoft Windows (32-bit)
-A port of GCC 2.95.x is included with the
+A port of GCC 2.95.2 and 3.x is included with the
@uref{http://www.cygwin.com/,,Cygwin environment}.
Current (as of early 2001) snapshots of GCC will build under Cygwin
without modification.
+GCC does not currently build with Microsoft's C++ compiler and there
+are no plans to make it do so.
+
@html
<hr />
@end html
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index fe214602a1e..834853682fc 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1,15 +1,15 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-@c 2000, 2001, 2002 Free Software Foundation, Inc.
+@c 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@ignore
@c man begin COPYRIGHT
Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
@@ -66,7 +66,6 @@ for contributors to GCC@.
@cindex options, GCC command
@c man begin DESCRIPTION
-
When you invoke GCC, it normally does preprocessing, compilation,
assembly and linking. The ``overall options'' allow you to stop this
process at an intermediate stage. For example, the @option{-c} option
@@ -155,17 +154,15 @@ in the following sections.
@table @emph
@item Overall Options
@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}
+@gccoptlist{-c -S -E -o @var{file} -pipe -pass-exit-codes @gol
+-x @var{language} -v -### --help --target-help --version}
@item C Language Options
@xref{C Dialect Options,,Options Controlling C Dialect}.
-@gccoptlist{
--ansi -std=@var{standard} -aux-info @var{filename} @gol
--fno-asm -fno-builtin -fno-builtin-@var{function} @gol
+@gccoptlist{-ansi -std=@var{standard} -aux-info @var{filename} @gol
+-fno-asm -fno-builtin -fno-builtin-@var{function} @gol
-fhosted -ffreestanding -fms-extensions @gol
--trigraphs -traditional -traditional-cpp @gol
+-trigraphs -no-integrated-cpp -traditional -traditional-cpp @gol
-fallow-single-precision -fcond-mismatch @gol
-fsigned-bitfields -fsigned-char @gol
-funsigned-bitfields -funsigned-char @gol
@@ -173,9 +170,8 @@ in the following sections.
@item C++ Language Options
@xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
-@gccoptlist{
--fabi-version=@var{n} -fno-access-control -fcheck-new @gol
--fconserve-space -fno-const-strings -fdollars-in-identifiers @gol
+@gccoptlist{-fabi-version=@var{n} -fno-access-control -fcheck-new @gol
+-fconserve-space -fno-const-strings -fdollars-in-identifiers @gol
-fno-elide-constructors @gol
-fno-enforce-eh-specs -fexternal-templates @gol
-falt-external-templates @gol
@@ -187,31 +183,28 @@ in the following sections.
-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
+-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
-Woverloaded-virtual -Wno-pmf-conversions @gol
--Wsign-promo -Wsynth}
+-Wsign-promo}
@item Objective-C Language Options
@xref{Objective-C Dialect Options,,Options Controlling Objective-C Dialect}.
-@gccoptlist{
--fconstant-string-class=@var{class-name} @gol
+@gccoptlist{-fconstant-string-class=@var{class-name} @gol
-fgnu-runtime -fnext-runtime -gen-decls @gol
--Wno-protocol -Wselector -Wundeclared-selector}
+-Wno-protocol -Wselector -Wundeclared-selector}
@item Language Independent Options
@xref{Language Independent Options,,Options to Control Diagnostic Messages Formatting}.
-@gccoptlist{
--fmessage-length=@var{n} @gol
+@gccoptlist{-fmessage-length=@var{n} @gol
-fdiagnostics-show-location=@r{[}once@r{|}every-line@r{]}}
@item Warning Options
@xref{Warning Options,,Options to Request or Suppress Warnings}.
-@gccoptlist{
--fsyntax-only -pedantic -pedantic-errors @gol
--w -W -Wall -Waggregate-return @gol
+@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 -Wno-div-by-zero -Werror @gol
@@ -220,7 +213,7 @@ in the following sections.
-Wimplicit -Wimplicit-int @gol
-Wimplicit-function-declaration @gol
-Werror-implicit-function-declaration @gol
--Wimport -Winline -Wno-endif-labels @gol
+-Wimport -Winline -Wno-endif-labels @gol
-Wlarger-than-@var{len} -Wlong-long @gol
-Wmain -Wmissing-braces @gol
-Wmissing-format-attribute -Wmissing-noreturn @gol
@@ -229,29 +222,28 @@ in the following sections.
-Wparentheses -Wpointer-arith -Wredundant-decls @gol
-Wreturn-type -Wsequence-point -Wshadow @gol
-Wsign-compare -Wstrict-aliasing @gol
--Wswitch -Wswitch-default -Wswitch-enum @gol
--Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized @gol
+-Wswitch -Wswitch-default -Wswitch-enum @gol
+-Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized @gol
-Wunknown-pragmas -Wunreachable-code @gol
-Wunused -Wunused-function -Wunused-label -Wunused-parameter @gol
-Wunused-value -Wunused-variable -Wwrite-strings}
@item C-only Warning Options
-@gccoptlist{
--Wbad-function-cast -Wmissing-declarations @gol
+@gccoptlist{-Wbad-function-cast -Wmissing-declarations @gol
-Wmissing-prototypes -Wnested-externs @gol
-Wstrict-prototypes -Wtraditional}
@item Debugging Options
@xref{Debugging Options,,Options for Debugging Your Program or GCC}.
-@gccoptlist{
--d@var{letters} -dumpspecs -dumpmachine -dumpversion @gol
--fdump-unnumbered -fdump-translation-unit@r{[}-@var{n}@r{]} @gol
+@gccoptlist{-d@var{letters} -dumpspecs -dumpmachine -dumpversion @gol
+-fdump-unnumbered -fdump-translation-unit@r{[}-@var{n}@r{]} @gol
-fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol
--fdump-tree-original@r{[}-@var{n}@r{]} -fdump-tree-optimized@r{[}-@var{n}@r{]} @gol
+-fdump-tree-original@r{[}-@var{n}@r{]} @gol
+-fdump-tree-optimized@r{[}-@var{n}@r{]} @gol
-fdump-tree-inlined@r{[}-@var{n}@r{]} @gol
-feliminate-dwarf2-dups -fmem-report @gol
--fprofile-arcs -fsched-verbose=@var{n} @gol
--ftest-coverage -ftime-report @gol
+-fprofile-arcs -frandom-seed=@var{n} @gol
+-fsched-verbose=@var{n} -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
@@ -261,43 +253,41 @@ in the following sections.
@item Optimization Options
@xref{Optimize Options,,Options that Control Optimization}.
-@gccoptlist{
--falign-functions=@var{n} -falign-jumps=@var{n} @gol
+@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
+-fbranch-probabilities -fcaller-saves -fcprop-registers @gol
-fcse-follow-jumps -fcse-skip-blocks -fdata-sections @gol
-fdelayed-branch -fdelete-null-pointer-checks @gol
-fexpensive-optimizations -ffast-math -ffloat-store @gol
-fforce-addr -fforce-mem -ffunction-sections @gol
--fgcse -fgcse-lm -fgcse-sm -floop-optimize -fcrossjumping @gol
--fif-conversion -fif-conversion2 @gol
+-fgcse -fgcse-lm -fgcse-sm -floop-optimize -fcrossjumping @gol
+-fif-conversion -fif-conversion2 @gol
-finline-functions -finline-limit=@var{n} -fkeep-inline-functions @gol
-fkeep-static-consts -fmerge-constants -fmerge-all-constants @gol
-fmove-all-movables -fnew-ra -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 -ffinite-math-only @gol
--fno-trapping-math -fno-zero-initialized-in-bss @gol
+-funsafe-math-optimizations -ffinite-math-only @gol
+-fno-trapping-math -fno-zero-initialized-in-bss @gol
-fomit-frame-pointer -foptimize-register-move @gol
-foptimize-sibling-calls -fprefetch-loop-arrays @gol
--freduce-all-givs -fregmove -frename-registers @gol
--freorder-blocks -freorder-functions @gol
+-freduce-all-givs -fregmove -frename-registers @gol
+-freorder-blocks -freorder-functions @gol
-frerun-cse-after-loop -frerun-loop-opt @gol
-fschedule-insns -fschedule-insns2 @gol
-fno-sched-interblock -fno-sched-spec -fsched-spec-load @gol
-fsched-spec-load-dangerous -fsignaling-nans @gol
--fsingle-precision-constant -fssa -fssa-ccp -fssa-dce @gol
--fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps @gol
--ftrapv -funroll-all-loops -funroll-loops @gol
---param @var{name}=@var{value}
+-fsingle-precision-constant -fssa -fssa-ccp -fssa-dce @gol
+-fstrength-reduce -fstrict-aliasing -ftracer -fthread-jumps @gol
+-funroll-all-loops -funroll-loops @gol
+--param @var{name}=@var{value} @gol
-O -O0 -O1 -O2 -O3 -Os}
@item Preprocessor Options
@xref{Preprocessor Options,,Options Controlling the Preprocessor}.
-@gccoptlist{
--$ -A@var{question}=@var{answer} -A-@var{question}@r{[}=@var{answer}@r{]} @gol
+@gccoptlist{-$ -A@var{question}=@var{answer} @gol
+-A-@var{question}@r{[}=@var{answer}@r{]} @gol
-C -dD -dI -dM -dN @gol
-D@var{macro}@r{[}=@var{defn}@r{]} -E -H @gol
-idirafter @var{dir} @gol
@@ -309,13 +299,11 @@ in the following sections.
@item Assembler Option
@xref{Assembler Options,,Passing Options to the Assembler}.
-@gccoptlist{
--Wa,@var{option}}
+@gccoptlist{-Wa,@var{option}}
@item Linker Options
@xref{Link Options,,Options for Linking}.
-@gccoptlist{
-@var{object-file-name} -l@var{library} @gol
+@gccoptlist{@var{object-file-name} -l@var{library} @gol
-nostartfiles -nodefaultlibs -nostdlib @gol
-s -static -static-libgcc -shared -shared-libgcc -symbolic @gol
-Wl,@var{option} -Xlinker @var{option} @gol
@@ -323,69 +311,47 @@ in the following sections.
@item Directory Options
@xref{Directory Options,,Options for Directory Search}.
-@gccoptlist{
--B@var{prefix} -I@var{dir} -I- -L@var{dir} -specs=@var{file}}
+@gccoptlist{-B@var{prefix} -I@var{dir} -I- -L@var{dir} -specs=@var{file}}
@item Target Options
@c I wrote this xref this way to avoid overfull hbox. -- rms
@xref{Target Options}.
-@gccoptlist{
--V @var{version} -b @var{machine}}
+@gccoptlist{-V @var{version} -b @var{machine}}
@item Machine Dependent Options
@xref{Submodel Options,,Hardware Models and Configurations}.
@emph{M680x0 Options}
-@gccoptlist{
--m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 @gol
+@gccoptlist{-m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 @gol
-m68060 -mcpu32 -m5200 -m68881 -mbitfield -mc68000 -mc68020 @gol
-mfpa -mnobitfield -mrtd -mshort -msoft-float -mpcrel @gol
-malign-int -mstrict-align}
@emph{M68hc1x Options}
-@gccoptlist{
--m6811 -m6812 -m68hc11 -m68hc12 @gol
+@gccoptlist{-m6811 -m6812 -m68hc11 -m68hc12 -m68hcs12 @gol
-mauto-incdec -minmax -mlong-calls -mshort @gol
-msoft-reg-count=@var{count}}
@emph{VAX Options}
-@gccoptlist{
--mg -mgnu -munix}
+@gccoptlist{-mg -mgnu -munix}
@emph{SPARC Options}
-@gccoptlist{
--mcpu=@var{cpu-type} @gol
+@gccoptlist{-mcpu=@var{cpu-type} @gol
-mtune=@var{cpu-type} @gol
-mcmodel=@var{code-model} @gol
-m32 -m64 @gol
-mapp-regs -mbroken-saverestore -mcypress @gol
-mfaster-structs -mflat @gol
-mfpu -mhard-float -mhard-quad-float @gol
--mimpure-text -mlive-g0 -mno-app-regs @gol
+-mimpure-text -mlittle-endian -mlive-g0 -mno-app-regs @gol
-mno-faster-structs -mno-flat -mno-fpu @gol
-mno-impure-text -mno-stack-bias -mno-unaligned-doubles @gol
-msoft-float -msoft-quad-float -msparclite -mstack-bias @gol
--msupersparc -munaligned-doubles -mv8}
-
-@emph{Convex Options}
-@gccoptlist{
--mc1 -mc2 -mc32 -mc34 -mc38 @gol
--margcount -mnoargcount @gol
--mlong32 -mlong64 @gol
--mvolatile-cache -mvolatile-nocache}
-
-@emph{AMD29K Options}
-@gccoptlist{
--m29000 -m29050 -mbw -mnbw -mdw -mndw @gol
--mlarge -mnormal -msmall @gol
--mkernel-registers -mno-reuse-arg-regs @gol
--mno-stack-check -mno-storem-bug @gol
--mreuse-arg-regs -msoft-float -mstack-check @gol
--mstorem-bug -muser-registers}
+-msupersparc -munaligned-doubles -mv8
+-threads -pthreads}
@emph{ARM Options}
-@gccoptlist{
--mapcs-frame -mno-apcs-frame @gol
+@gccoptlist{-mapcs-frame -mno-apcs-frame @gol
-mapcs-26 -mapcs-32 @gol
-mapcs-stack-check -mno-apcs-stack-check @gol
-mapcs-float -mno-apcs-float @gol
@@ -397,7 +363,6 @@ in the following sections.
-mthumb-interwork -mno-thumb-interwork @gol
-mcpu=@var{name} -march=@var{name} -mfpe=@var{name} @gol
-mstructure-size-boundary=@var{n} @gol
--mbsd -mxopen -mno-symrename @gol
-mabort-on-noreturn @gol
-mlong-calls -mno-long-calls @gol
-msingle-pic-base -mno-single-pic-base @gol
@@ -406,26 +371,22 @@ in the following sections.
-mpoke-function-name @gol
-mthumb -marm @gol
-mtpcs-frame -mtpcs-leaf-frame @gol
--mcaller-super-interworking -mcallee-super-interworking }
+-mcaller-super-interworking -mcallee-super-interworking}
@emph{MN10200 Options}
-@gccoptlist{
--mrelax}
+@gccoptlist{-mrelax}
@emph{MN10300 Options}
-@gccoptlist{
--mmult-bug -mno-mult-bug @gol
+@gccoptlist{-mmult-bug -mno-mult-bug @gol
-mam33 -mno-am33 @gol
-mno-crt0 -mrelax}
@emph{M32R/D Options}
-@gccoptlist{
--m32rx -m32r -mcode-model=@var{model-type} -msdata=@var{sdata-type} @gol
--G @var{num}}
+@gccoptlist{-m32rx -m32r -mcode-model=@var{model-type} @gol
+-msdata=@var{sdata-type} -G @var{num}}
@emph{M88K Options}
-@gccoptlist{
--m88000 -m88100 -m88110 -mbig-pic @gol
+@gccoptlist{-m88000 -m88100 -m88110 -mbig-pic @gol
-mcheck-zero-division -mhandle-large-shift @gol
-midentify-revision -mno-check-zero-division @gol
-mno-ocs-debug-info -mno-ocs-frame-position @gol
@@ -437,12 +398,11 @@ in the following sections.
-mversion-03.00 -mwarn-passed-structs}
@emph{RS/6000 and PowerPC Options}
-@gccoptlist{
--mcpu=@var{cpu-type} @gol
+@gccoptlist{-mcpu=@var{cpu-type} @gol
-mtune=@var{cpu-type} @gol
-mpower -mno-power -mpower2 -mno-power2 @gol
-mpowerpc -mpowerpc64 -mno-powerpc @gol
--maltivec -mno-altivec @gol
+-maltivec -mno-altivec @gol
-mpowerpc-gpopt -mno-powerpc-gpopt @gol
-mpowerpc-gfxopt -mno-powerpc-gfxopt @gol
-mnew-mnemonics -mold-mnemonics @gol
@@ -453,15 +413,15 @@ in the following sections.
-mfused-madd -mno-fused-madd -mbit-align -mno-bit-align @gol
-mstrict-align -mno-strict-align -mrelocatable @gol
-mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol
--mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol
--mcall-aix -mcall-sysv -mcall-netbsd @gol
--maix-struct-return -msvr4-struct-return @gol
--mabi=altivec -mabi=no-altivec @gol
--mabi=spe -mabi=no-spe @gol
--misel=yes -misel=no @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
+-mabi=spe -mabi=no-spe @gol
+-misel=yes -misel=no @gol
-mprototype -mno-prototype @gol
--msim -mmvme -mads -myellowknife -memb -msdata @gol
--msdata=@var{opt} -mvxworks -mwindiss -G @var{num} -pthread}
+-msim -mmvme -mads -myellowknife -memb -msdata @gol
+-msdata=@var{opt} -mvxworks -mwindiss -G @var{num} -pthread}
@emph{Darwin Options}
@gccoptlist{
@@ -486,15 +446,13 @@ in the following sections.
-unexported_symbols_list -weak_reference_mismatches -whatsloaded}
@emph{RT Options}
-@gccoptlist{
--mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs @gol
+@gccoptlist{-mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs @gol
-mfull-fp-blocks -mhc-struct-return -min-line-mul @gol
-mminimum-fp-blocks -mnohc-struct-return}
@emph{MIPS Options}
-@gccoptlist{
--mabicalls -march=@var{cpu-type} -mtune=@var{cpu=type} @gol
--mcpu=@var{cpu-type} -membedded-data -muninit-const-in-rodata @gol
+@gccoptlist{-mabicalls -march=@var{cpu-type} -mtune=@var{cpu=type} @gol
+-mcpu=@var{cpu-type} -membedded-data -muninit-const-in-rodata @gol
-membedded-pic -mfp32 -mfp64 -mfused-madd -mno-fused-madd @gol
-mgas -mgp32 -mgp64 @gol
-mgpopt -mhalf-pic -mhard-float -mint64 -mips1 @gol
@@ -507,41 +465,39 @@ in the following sections.
-m4650 -msingle-float -mmad @gol
-mstats -EL -EB -G @var{num} -nocpp @gol
-mabi=32 -mabi=n32 -mabi=64 -mabi=eabi @gol
--mfix7000 -mno-crt0 -mflush-func=@var{func} -mno-flush-func @gol
--mbranch-likely -mno-branch-likely}
+-mfix7000 -mno-crt0 -mflush-func=@var{func} -mno-flush-func @gol
+-mbranch-likely -mno-branch-likely}
@emph{i386 and x86-64 Options}
-@gccoptlist{
--mcpu=@var{cpu-type} -march=@var{cpu-type} -mfpmath=@var{unit} @gol
--masm=@var{dialect} -mno-fancy-math-387 @gol
+@gccoptlist{-mcpu=@var{cpu-type} -march=@var{cpu-type} @gol
+-mfpmath=@var{unit} -masm=@var{dialect} -mno-fancy-math-387 @gol
-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
+-mmmx -msse -msse2 -msse3 -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}
+-m32 -m64}
@emph{HPPA Options}
-@gccoptlist{
--march=@var{architecture-type} @gol
+@gccoptlist{-march=@var{architecture-type} @gol
-mbig-switch -mdisable-fpregs -mdisable-indexing @gol
--mfast-indirect-calls -mgas -mgnu-ld -mhp-ld @gol
--mjump-in-delay -mlinker-opt -mlong-calls @gol
+-mfast-indirect-calls -mgas -mgnu-ld -mhp-ld @gol
+-mjump-in-delay -mlinker-opt -mlong-calls @gol
-mlong-load-store -mno-big-switch -mno-disable-fpregs @gol
-mno-disable-indexing -mno-fast-indirect-calls -mno-gas @gol
-mno-jump-in-delay -mno-long-load-store @gol
-mno-portable-runtime -mno-soft-float @gol
-mno-space-regs -msoft-float -mpa-risc-1-0 @gol
-mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime @gol
--mschedule=@var{cpu-type} -mspace-regs -msio -mwsio}
+-mschedule=@var{cpu-type} -mspace-regs -msio -mwsio @gol
+-nolibdld -static -threads}
@emph{Intel 960 Options}
-@gccoptlist{
--m@var{cpu-type} -masm-compat -mclean-linkage @gol
+@gccoptlist{-m@var{cpu-type} -masm-compat -mclean-linkage @gol
-mcode-align -mcomplex-addr -mleaf-procedures @gol
-mic-compat -mic2.0-compat -mic3.0-compat @gol
-mintel-asm -mno-clean-linkage -mno-code-align @gol
@@ -551,8 +507,7 @@ in the following sections.
-mtail-call}
@emph{DEC Alpha Options}
-@gccoptlist{
--mno-fp-regs -msoft-float -malpha-as -mgas @gol
+@gccoptlist{-mno-fp-regs -msoft-float -malpha-as -mgas @gol
-mieee -mieee-with-inexact -mieee-conformant @gol
-mfp-trap-mode=@var{mode} -mfp-rounding-mode=@var{mode} @gol
-mtrap-precision=@var{mode} -mbuild-constants @gol
@@ -563,115 +518,97 @@ in the following sections.
-mmemory-latency=@var{time}}
@emph{DEC Alpha/VMS Options}
-@gccoptlist{
--mvms-return-codes}
-
-@emph{Clipper Options}
-@gccoptlist{
--mc300 -mc400}
+@gccoptlist{-mvms-return-codes}
@emph{H8/300 Options}
-@gccoptlist{
--mrelax -mh -ms -mn -mint32 -malign-300}
+@gccoptlist{-mrelax -mh -ms -mn -mint32 -malign-300}
@emph{SH Options}
-@gccoptlist{
--m1 -m2 -m3 -m3e @gol
+@gccoptlist{-m1 -m2 -m3 -m3e @gol
-m4-nofpu -m4-single-only -m4-single -m4 @gol
--m5-64media -m5-64media-nofpu @gol
--m5-32media -m5-32media-nofpu @gol
--m5-compact -m5-compact-nofpu @gol
+-m5-64media -m5-64media-nofpu @gol
+-m5-32media -m5-32media-nofpu @gol
+-m5-compact -m5-compact-nofpu @gol
-mb -ml -mdalign -mrelax @gol
-mbigtable -mfmovd -mhitachi -mnomacsave @gol
-mieee -misize -mpadstruct -mspace @gol
-mprefergot -musermode}
@emph{System V Options}
-@gccoptlist{
--Qy -Qn -YP,@var{paths} -Ym,@var{dir}}
+@gccoptlist{-Qy -Qn -YP,@var{paths} -Ym,@var{dir}}
@emph{ARC Options}
-@gccoptlist{
--EB -EL @gol
+@gccoptlist{-EB -EL @gol
-mmangle-cpu -mcpu=@var{cpu} -mtext=@var{text-section} @gol
-mdata=@var{data-section} -mrodata=@var{readonly-data-section}}
@emph{TMS320C3x/C4x Options}
-@gccoptlist{
--mcpu=@var{cpu} -mbig -msmall -mregparm -mmemparm @gol
+@gccoptlist{-mcpu=@var{cpu} -mbig -msmall -mregparm -mmemparm @gol
-mfast-fix -mmpyi -mbk -mti -mdp-isr-reload @gol
-mrpts=@var{count} -mrptb -mdb -mloop-unsigned @gol
-mparallel-insns -mparallel-mpy -mpreserve-float}
@emph{V850 Options}
-@gccoptlist{
--mlong-calls -mno-long-calls -mep -mno-ep @gol
+@gccoptlist{-mlong-calls -mno-long-calls -mep -mno-ep @gol
-mprolog-function -mno-prolog-function -mspace @gol
-mtda=@var{n} -msda=@var{n} -mzda=@var{n} @gol
--mapp-regs -mno-app-regs @gol
--mdisable-callt -mno-disable-callt @gol
+-mapp-regs -mno-app-regs @gol
+-mdisable-callt -mno-disable-callt @gol
-mv850e @gol
-mv850 -mbig-switch}
@emph{NS32K Options}
-@gccoptlist{
--m32032 -m32332 -m32532 -m32081 -m32381 @gol
+@gccoptlist{-m32032 -m32332 -m32532 -m32081 -m32381 @gol
-mmult-add -mnomult-add -msoft-float -mrtd -mnortd @gol
-mregparam -mnoregparam -msb -mnosb @gol
-mbitfield -mnobitfield -mhimem -mnohimem}
@emph{AVR Options}
-@gccoptlist{
--mmcu=@var{mcu} -msize -minit-stack=@var{n} -mno-interrupts @gol
+@gccoptlist{-mmcu=@var{mcu} -msize -minit-stack=@var{n} -mno-interrupts @gol
-mcall-prologues -mno-tablejump -mtiny-stack}
@emph{MCore Options}
-@gccoptlist{
--mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates @gol
+@gccoptlist{-mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates @gol
-mno-relax-immediates -mwide-bitfields -mno-wide-bitfields @gol
-m4byte-functions -mno-4byte-functions -mcallgraph-data @gol
-mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim @gol
-mlittle-endian -mbig-endian -m210 -m340 -mstack-increment}
@emph{MMIX Options}
-@gccoptlist{
--mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu @gol
--mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols @gol
--melf -mbranch-predict -mno-branch-predict -mbase-addresses @gol
--mno-base-addresses -msingle-exit -mno-single-exit}
+@gccoptlist{-mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu @gol
+-mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols @gol
+-melf -mbranch-predict -mno-branch-predict -mbase-addresses @gol
+-mno-base-addresses -msingle-exit -mno-single-exit}
@emph{IA-64 Options}
-@gccoptlist{
--mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic @gol
+@gccoptlist{-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic @gol
-mvolatile-asm-stop -mb-step -mregister-names -mno-sdata @gol
-mconstant-gp -mauto-pic -minline-float-divide-min-latency @gol
--minline-float-divide-max-throughput -minline-int-divide-min-latency @gol
--minline-int-divide-max-throughput -mno-dwarf2-asm @gol
+-minline-float-divide-max-throughput @gol
+-minline-int-divide-min-latency @gol
+-minline-int-divide-max-throughput -mno-dwarf2-asm @gol
-mfixed-range=@var{register-range}}
@emph{D30V Options}
-@gccoptlist{
--mextmem -mextmemory -monchip -mno-asm-optimize @gol
--masm-optimize -mbranch-cost=@var{n} -mcond-exec=@var{n}}
+@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{
--mhard-float -msoft-float -mbackchain -mno-backchain @gol
--msmall-exec -mno-small-exec -mmvcle -mno-mvcle @gol
--m64 -m31 -mdebug -mno-debug}
+@gccoptlist{-mhard-float -msoft-float -mbackchain -mno-backchain @gol
+-msmall-exec -mno-small-exec -mmvcle -mno-mvcle @gol
+-m64 -m31 -mdebug -mno-debug}
@emph{CRIS Options}
-@gccoptlist{
--mcpu=@var{cpu} -march=@var{cpu} -mtune=@var{cpu} @gol
--mmax-stack-frame=@var{n} -melinux-stacksize=@var{n} @gol
--metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects @gol
--mstack-align -mdata-align -mconst-align @gol
--m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt @gol
--melf -maout -melinux -mlinux -sim -sim2}
+@gccoptlist{-mcpu=@var{cpu} -march=@var{cpu} -mtune=@var{cpu} @gol
+-mmax-stack-frame=@var{n} -melinux-stacksize=@var{n} @gol
+-metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects @gol
+-mstack-align -mdata-align -mconst-align @gol
+-m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt @gol
+-melf -maout -melinux -mlinux -sim -sim2 @gol
+-mmul-bug-workaround -mno-mul-bug-workaround}
@emph{PDP-11 Options}
-@gccoptlist{
--mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol
+@gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol
-mbcopy -mbcopy-builtin -mint32 -mno-int16 @gol
-mint16 -mno-int32 -mfloat32 -mno-float64 @gol
-mfloat64 -mno-float32 -mabshi -mno-abshi @gol
@@ -679,58 +616,57 @@ in the following sections.
-msplit -mno-split -munix-asm -mdec-asm}
@emph{Xstormy16 Options}
-@gccoptlist{
--msim}
+@gccoptlist{-msim}
@emph{Xtensa Options}
-@gccoptlist{
--mbig-endian -mlittle-endian @gol
--mdensity -mno-density @gol
--mmac16 -mno-mac16 @gol
--mmul16 -mno-mul16 @gol
--mmul32 -mno-mul32 @gol
--mnsa -mno-nsa @gol
--mminmax -mno-minmax @gol
--msext -mno-sext @gol
--mbooleans -mno-booleans @gol
--mhard-float -msoft-float @gol
--mfused-madd -mno-fused-madd @gol
--mserialize-volatile -mno-serialize-volatile @gol
--mtext-section-literals -mno-text-section-literals @gol
--mtarget-align -mno-target-align @gol
--mlongcalls -mno-longcalls}
+@gccoptlist{-mbig-endian -mlittle-endian @gol
+-mdensity -mno-density @gol
+-mmac16 -mno-mac16 @gol
+-mmul16 -mno-mul16 @gol
+-mmul32 -mno-mul32 @gol
+-mnsa -mno-nsa @gol
+-mminmax -mno-minmax @gol
+-msext -mno-sext @gol
+-mbooleans -mno-booleans @gol
+-mhard-float -msoft-float @gol
+-mfused-madd -mno-fused-madd @gol
+-mserialize-volatile -mno-serialize-volatile @gol
+-mtext-section-literals -mno-text-section-literals @gol
+-mtarget-align -mno-target-align @gol
+-mlongcalls -mno-longcalls}
@emph{FRV Options}
-@gccoptlist{
--mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 -mhard-float -msoft-float @gol
--malloc-cc -mfixed-cc -mdword -mno-dword -mdouble -mno-double @gol
--mmedia -mno-media -mmuladd -mno-muladd -mlibrary-pic -macc-4 @gol
--macc-8 -mpack -mno-pack -mno-eflags -mcond-move -mno-cond-move @gol
--mscc -mno-scc -mcond-exec -mno-cond-exec -mvliw-branch -mno-vliw-branch @gol
--mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec @gol
--mno-nested-cond-exec -mtomcat-stats @gol
+@gccoptlist{-mgpr-32 -mgpr-64 -mfpr-32 -mfpr-64 @gol
+-mhard-float -msoft-float -malloc-cc -mfixed-cc @gol
+-mdword -mno-dword -mdouble -mno-double @gol
+-mmedia -mno-media -mmuladd -mno-muladd -mlibrary-pic @gol
+-macc-4 -macc-8 -mpack -mno-pack -mno-eflags @gol
+-mcond-move -mno-cond-move -mscc -mno-scc @gol
+-mcond-exec -mno-cond-exec -mvliw-branch -mno-vliw-branch @gol
+-mmulti-cond-exec -mno-multi-cond-exec -mnested-cond-exec @gol
+-mno-nested-cond-exec -mtomcat-stats @gol
-mcpu=@var{cpu}}
@item Code Generation Options
@xref{Code Gen Options,,Options for Code Generation Conventions}.
-@gccoptlist{
--fcall-saved-@var{reg} -fcall-used-@var{reg} @gol
--ffixed-@var{reg} -fexceptions @gol
+@gccoptlist{-fcall-saved-@var{reg} -fcall-used-@var{reg} @gol
+-ffixed-@var{reg} -fexceptions @gol
-fnon-call-exceptions -funwind-tables @gol
-fasynchronous-unwind-tables @gol
-finhibit-size-directive -finstrument-functions @gol
-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
+-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
-fargument-alias -fargument-noalias @gol
-fargument-noalias-global -fleading-underscore @gol
--ftls-model=@var{model}}
+-ftls-model=@var{model} @gol
+-ftrapv -fbounds-check}
@end table
@menu
@@ -1079,14 +1015,14 @@ ISO C90 as modified in amendment 1.
@itemx iso9899:1999
@itemx iso9899:199x
ISO C99. Note that this standard is not yet fully supported; see
-@w{@uref{http://gcc.gnu.org/c99status.html}} for more information. The
+@w{@uref{http://gcc.gnu.org/gcc-3.3/c99status.html}} for more information. The
names @samp{c9x} and @samp{iso9899:199x} are deprecated.
@item gnu89
Default, ISO C90 plus GNU extensions (including some C99 features).
@item gnu99
-@item gnu9x
+@itemx gnu9x
ISO C99 plus GNU extensions. When ISO C99 is fully implemented in GCC,
this will become the default. The name @samp{gnu9x} is deprecated.
@@ -1206,6 +1142,17 @@ Accept some non-standard constructs used in Microsoft header files.
Support ISO C trigraphs. The @option{-ansi} option (and @option{-std}
options for strict ISO C conformance) implies @option{-trigraphs}.
+@item -no-integrated-cpp
+@opindex no-integrated-cpp
+Performs a compilation in two passes: preprocessing and compiling. This
+option allows a user supplied "cc1", "cc1plus", or "cc1obj" via the
+@option{-B} option. The user supplied compilation step can then add in
+an additional preprocessing step after normal preprocessing but before
+compiling. The default is to use the integrated cpp (internal cpp)
+
+The semantics of this option will change if "cc1", "cc1plus", and
+"cc1obj" are merged.
+
@cindex traditional C language
@cindex C language, traditional
@item -traditional
@@ -1315,14 +1262,14 @@ around bugs in the access control code.
@item -fcheck-new
@opindex fcheck-new
Check that the pointer returned by @code{operator new} is non-null
-before attempting to modify the storage allocated. The current Working
-Paper requires that @code{operator new} never return a null pointer, so
-this check is normally unnecessary.
-
-An alternative to using this option is to specify that your
-@code{operator new} does not throw any exceptions; if you declare it
-@samp{throw()}, G++ will check the return value. See also @samp{new
-(nothrow)}.
+before attempting to modify the storage allocated. This check is
+normally unnecessary because the C++ standard specifies that
+@code{operator new} will only return @code{0} if it is declared
+@samp{throw()}, in which case the compiler will always check the
+return value even without this option. In all other cases, when
+@code{operator new} has a non-empty exception specification, memory
+exhaustion is signalled by throwing @code{std::bad_alloc}. See also
+@samp{new (nothrow)}.
@item -fconserve-space
@opindex fconserve-space
@@ -1453,10 +1400,9 @@ a name having multiple meanings within a class.
@item -fpermissive
@opindex fpermissive
-Downgrade messages about nonconformant code from errors to warnings. By
-default, G++ effectively sets @option{-pedantic-errors} without
-@option{-pedantic}; this option reverses that. This behavior and this
-option are superseded by @option{-pedantic}, which works as it does for GNU C@.
+Downgrade some diagnostics about nonconformant code from errors to
+warnings. Thus, using @option{-fpermissive} will allow some
+nonconforming code to compile.
@item -frepo
@opindex frepo
@@ -1543,7 +1489,7 @@ 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:
+The known incompatibilities at this point include:
@itemize @bullet
@@ -1608,7 +1554,7 @@ struct C : public B, public A @{@};
@end smallexample
@noindent
-G++ will place the @code{A} base class of @code{C} at a non-zero offset;
+G++ will place the @code{A} base class of @code{C} at a nonzero offset;
it should be placed at offset zero. G++ mistakenly believes that the
@code{A} data member of @code{B} is already at offset zero.
@@ -1625,20 +1571,20 @@ void f(typename Q<int>::X) @{@}
@end smallexample
@noindent
-Instantions of these templates may be mangled incorrectly.
+Instantiations of these templates may be mangled incorrectly.
@end itemize
@item -Wctor-dtor-privacy @r{(C++ only)}
@opindex Wctor-dtor-privacy
-Warn when a class seems unusable, because all the constructors or
-destructors in a class are private and the class has no friends or
+Warn when a class seems unusable because all the constructors or
+destructors in that class are private, and it has neither friends nor
public static member functions. This warning is enabled by default.
@item -Wnon-virtual-dtor @r{(C++ only)}
@opindex Wnon-virtual-dtor
-Warn when a class declares a non-virtual destructor that should probably
-be virtual, because it looks like the class will be used polymorphically.
+Warn when a class appears to be polymorphic, thereby requiring a virtual
+destructor, yet it declares a non-virtual one.
This warning is enabled by @option{-Wall}.
@item -Wreorder @r{(C++ only)}
@@ -1656,9 +1602,9 @@ struct A @{
@};
@end smallexample
-Here the compiler will warn that the member initializers for @samp{i}
-and @samp{j} will be rearranged to match the declaration order of the
-members. This warning is enabled by @option{-Wall}.
+The compiler will rearrange the member initializers for @samp{i}
+and @samp{j} to match the declaration order of the members, emitting
+a warning to that effect. This warning is enabled by @option{-Wall}.
@end table
The following @option{-W@dots{}} options are not affected by @option{-Wall}.
@@ -1688,8 +1634,8 @@ Item 23: Don't try to return a reference when you must return an object.
@end itemize
-and about violations of the following style guidelines from Scott Meyers'
-@cite{More Effective C++} book:
+Also warn about violations of the following style guidelines from
+Scott Meyers' @cite{More Effective C++} book:
@itemize @bullet
@item
@@ -1701,8 +1647,8 @@ Item 7: Never overload @code{&&}, @code{||}, or @code{,}.
@end itemize
-If you use this option, you should be aware that the standard library
-headers do not obey all of these guidelines; you can use @samp{grep -v}
+When selecting this option, be aware that the standard library
+headers do not obey all of these guidelines; use @samp{grep -v}
to filter out those warnings.
@item -Wno-deprecated @r{(C++ only)}
@@ -1712,7 +1658,7 @@ Do not warn about usage of deprecated features. @xref{Deprecated Features}.
@item -Wno-non-template-friend @r{(C++ only)}
@opindex Wno-non-template-friend
Disable warnings when non-templatized friend functions are declared
-within a template. With the advent of explicit template specification
+within a template. Since the advent of explicit template specification
support in G++, if the name of the friend is an unqualified-id (i.e.,
@samp{friend foo(int)}), the C++ language specification demands that the
friend declare or define an ordinary, nontemplate function. (Section
@@ -1720,7 +1666,7 @@ friend declare or define an ordinary, nontemplate function. (Section
could be interpreted as a particular specialization of a templatized
function. Because this non-conforming behavior is no longer the default
behavior for G++, @option{-Wnon-template-friend} allows the compiler to
-check existing code for potential trouble spots, and is on by default.
+check existing code for potential trouble spots and is on by default.
This new compiler behavior can be turned off with
@option{-Wno-non-template-friend} which keeps the conformant compiler code
but disables the helpful warning.
@@ -1730,7 +1676,7 @@ but disables the helpful warning.
Warn if an old-style (C-style) cast to a non-void type is used within
a C++ program. The new-style casts (@samp{static_cast},
@samp{reinterpret_cast}, and @samp{const_cast}) are less vulnerable to
-unintended effects, and much easier to grep for.
+unintended effects and much easier to search for.
@item -Woverloaded-virtual @r{(C++ only)}
@opindex Woverloaded-virtual
@@ -1750,7 +1696,7 @@ struct B: public A @{
@end smallexample
the @code{A} class version of @code{f} is hidden in @code{B}, and code
-like this:
+like:
@smallexample
B* b;
@@ -1767,32 +1713,9 @@ to a plain pointer.
@item -Wsign-promo @r{(C++ only)}
@opindex Wsign-promo
Warn when overload resolution chooses a promotion from unsigned or
-enumeral type to a signed type over a conversion to an unsigned type of
+enumeral type to a signed type, over a conversion to an unsigned type of
the same size. Previous versions of G++ would try to preserve
unsignedness, but the standard mandates the current behavior.
-
-@item -Wsynth @r{(C++ only)}
-@opindex Wsynth
-@cindex warning for synthesized methods
-@cindex synthesized methods, warning
-Warn when G++'s synthesis behavior does not match that of cfront. For
-instance:
-
-@smallexample
-struct A @{
- operator int ();
- A& operator = (int);
-@};
-
-main ()
-@{
- A a,b;
- a = b;
-@}
-@end smallexample
-
-In this example, G++ will synthesize a default @samp{A& operator =
-(const A&);}, while cfront will use the user-defined @samp{operator =}.
@end table
@node Objective-C Dialect Options
@@ -1802,7 +1725,7 @@ In this example, G++ will synthesize a default @samp{A& operator =
@cindex Objective-C options, command line
@cindex options, Objective-C
This section describes the command-line options that are only meaningful
-for Objective-C programs; but you can also use most of the GNU compiler
+for Objective-C programs, but you can also use most of the GNU compiler
options regardless of what language your program is in. For example,
you might compile a file @code{some_class.m} like this:
@@ -1811,7 +1734,7 @@ gcc -g -fgnu-runtime -O -c some_class.m
@end example
@noindent
-In this example, only @option{-fgnu-runtime} is an option meant only for
+In this example, @option{-fgnu-runtime} is an option meant only for
Objective-C programs; you can use the other options with any language
supported by GCC@.
@@ -1857,8 +1780,8 @@ and no warning is issued for them.
Warn if multiple methods of different types for the same selector are
found during compilation. The check is performed on the list of methods
in the final stage of compilation. Additionally, a check is performed
-that for each selector appearing in a @code{@@selector(@dots{})}
-expression, a corresponding method with that selector has been found
+for each selector appearing in a @code{@@selector(@dots{})}
+expression, and a corresponding method for that selector has been found
during compilation. Because these checks scan the method table only at
the end of compilation, these warnings are not produced if the final
stage of compilation is not reached, for example because an error is
@@ -1869,13 +1792,13 @@ being used.
@opindex Wundeclared-selector
Warn if a @code{@@selector(@dots{})} expression referring to an
undeclared selector is found. A selector is considered undeclared if no
-method with that name has been declared (explicitly, in an
-@code{@@interface} or @code{@@protocol} declaration, or implicitly, in
-an @code{@@implementation} section) before the
-@code{@@selector(@dots{})} expression. This option always performs its
-checks as soon as a @code{@@selector(@dots{})} expression is found
-(while @code{-Wselector} only performs its checks in the final stage of
-compilation), and so additionally enforces the coding style convention
+method with that name has been declared before the
+@code{@@selector(@dots{})} expression, either explicitly in an
+@code{@@interface} or @code{@@protocol} declaration, or implicitly in
+an @code{@@implementation} section. This option always performs its
+checks as soon as a @code{@@selector(@dots{})} expression is found,
+while @code{-Wselector} only performs its checks in the final stage of
+compilation. This also enforces the coding style convention
that methods and selectors must be declared before being used.
@c not documented because only avail via -Wp
@@ -2096,7 +2019,7 @@ Enable @option{-Wformat} plus format checks not included in
@item -Wnonnull
@opindex Wnonnull
-Enable warning about passing a null pointer for arguments marked as
+Warn about passing a null pointer for arguments marked as
requiring a non-null value by the @code{nonnull} function attribute.
@option{-Wnonnull} is included in @option{-Wall} and @option{-Wformat}. It
@@ -2442,7 +2365,7 @@ For example, an expression such as @samp{x[i,j]} will cause a warning,
but @samp{x[(void)i,j]} will not.
@item
-An unsigned value is compared against zero with @samp{<} or @samp{<=}.
+An unsigned value is compared against zero with @samp{<} or @samp{>=}.
@item
A comparison like @samp{x<=y<=z} appears; this is equivalent to
@@ -2518,7 +2441,7 @@ Warn if floating point values are used in equality comparisons.
The idea behind this is that sometimes it is convenient (for the
programmer) to consider floating-point values as approximations to
infinitely precise real numbers. If you are doing this, then you need
-to compute (by analysing the code, or in some other way) the maximum or
+to compute (by analyzing the code, or in some other way) the maximum or
likely maximum error that the computation introduces, and allow for it
when performing comparisons (and when producing output, but that's a
different problem). In particular, instead of testing for equality, you
@@ -2689,8 +2612,8 @@ casts like @code{(unsigned) -1}.
@cindex signed and unsigned values, comparison warning
Warn when a comparison between signed and unsigned values could produce
an incorrect result when the signed value is converted to unsigned.
-This warning is also enabled by @option{-W}; to get the other warnings
-of @option{-W} without this warning, use @samp{-W -Wno-sign-compare}.
+This warning is enabled by @option{-W}, and by @option{-Wall}
+in C++ only.
@item -Waggregate-return
@opindex Waggregate-return
@@ -2712,7 +2635,7 @@ declaration. This warning is issued even if the definition itself
provides a prototype. The aim is to detect global functions that fail
to be declared in header files.
-@item -Wmissing-declarations
+@item -Wmissing-declarations @r{(C only)}
@opindex Wmissing-declarations
Warn if a global function is defined without a previous declaration.
Do so even if the definition itself provides a prototype.
@@ -2817,6 +2740,15 @@ code is to provide behavior which is selectable at compile-time.
@item -Winline
@opindex Winline
Warn if a function can not be inlined and it was declared as inline.
+Even with this option, the compiler will not warn about failures to
+inline functions declared in system headers.
+
+The compiler uses a variety of heuristics to determine whether or not
+to inline a function. For example, the compiler takes into account
+the size of the function being inlined and the the amount of inlining
+that has already been done in the current function. Therefore,
+seemingly insignificant changes in the source program can cause the
+warnings produced by @option{-Winline} to appear or disappear.
@item -Wlong-long
@opindex Wlong-long
@@ -2975,19 +2907,19 @@ Compress DWARF2 debugging information by eliminating duplicated
information about each symbol. This option only makes sense when
generating DWARF2 debugging information with @option{-gdwarf-2}.
-@cindex @code{prof}
+@cindex @command{prof}
@item -p
@opindex p
Generate extra code to write profile information suitable for the
-analysis program @code{prof}. You must use this option when compiling
+analysis program @command{prof}. You must use this option when compiling
the source files you want data about, and you must also use it when
linking.
-@cindex @code{gprof}
+@cindex @command{gprof}
@item -pg
@opindex pg
Generate extra code to write profile information suitable for the
-analysis program @code{gprof}. You must use this option when compiling
+analysis program @command{gprof}. You must use this option when compiling
the source files you want data about, and you must also use it when
linking.
@@ -3027,7 +2959,7 @@ optimization and code generation options plus
@option{-fbranch-probabilities} (@pxref{Optimize Options,,Options that
Control Optimization}).
-The other use of @option{-fprofile-arcs} is for use with @code{gcov},
+The other use of @option{-fprofile-arcs} is for use with @command{gcov},
when it is used with the @option{-ftest-coverage} option.
With @option{-fprofile-arcs}, for each function of your program GCC
@@ -3041,17 +2973,17 @@ block must be created to hold the instrumentation code.
@need 2000
@item -ftest-coverage
@opindex ftest-coverage
-Create data files for the @code{gcov} code-coverage utility
-(@pxref{Gcov,, @code{gcov}: a GCC Test Coverage Program}). See
+Create data files for the @command{gcov} code-coverage utility
+(@pxref{Gcov,, @command{gcov}---a Test Coverage Program}). See
@option{-fprofile-arcs} option above for a description of @var{auxname}.
@table @gcctabopt
@item @var{auxname}.bb
-A mapping from basic blocks to line numbers, which @code{gcov} uses to
+A mapping from basic blocks to line numbers, which @command{gcov} uses to
associate basic block execution counts with line numbers.
@item @var{auxname}.bbg
-A list of all arcs in the program flow graph. This allows @code{gcov}
+A list of all arcs in the program flow graph. This allows @command{gcov}
to reconstruct the program flow graph, so that it can compute all basic
block and arc execution counts from the information in the
@file{@var{auxname}.da} file.
@@ -3114,25 +3046,20 @@ Dump after SSA optimizations, to @file{@var{file}.04.ssa} and
Dump after the second if conversion, to @file{@var{file}.29.ce3}.
@item f
@opindex df
-Dump after life analysis, to @file{@var{file}.18.life}.
+Dump after control and data flow analysis, to @file{@var{file}.14.cfg}.
+Also dump after life analysis, to @file{@var{file}.18.life}.
@item F
@opindex dF
Dump after purging @code{ADDRESSOF} codes, to @file{@var{file}.10.addressof}.
@item g
@opindex dg
Dump after global register allocation, to @file{@var{file}.24.greg}.
-@item h
-@opindex dh
-Dump after finalization of EH handling code, to @file{@var{file}.02.eh}.
-@item k
-@opindex dk
-Dump after reg-to-stack conversion, to @file{@var{file}.31.stack}.
-@item o
-@opindex do
-Dump after post-reload optimizations, to @file{@var{file}.25.postreload}.
@item G
@opindex dG
Dump after GCSE, to @file{@var{file}.11.gcse}.
+@item h
+@opindex dh
+Dump after finalization of EH handling code, to @file{@var{file}.02.eh}.
@item i
@opindex di
Dump after sibling call optimizations, to @file{@var{file}.01.sibling}.
@@ -3150,7 +3077,7 @@ Dump after local register allocation, to @file{@var{file}.23.lreg}.
Dump after loop optimization, to @file{@var{file}.12.loop}.
@item M
@opindex dM
-Dump after performing the machine dependent reorganisation pass, to
+Dump after performing the machine dependent reorganization pass, to
@file{@var{file}.33.mach}.
@item n
@opindex dn
@@ -3158,6 +3085,9 @@ Dump after register renumbering, to @file{@var{file}.28.rnreg}.
@item N
@opindex dN
Dump after the register move pass, to @file{@var{file}.21.regmove}.
+@item o
+@opindex do
+Dump after post-reload optimizations, to @file{@var{file}.25.postreload}.
@item r
@opindex dr
Dump after RTL generation, to @file{@var{file}.00.rtl}.
@@ -3175,12 +3105,19 @@ Dump after the first scheduling pass, to @file{@var{file}.22.sched}.
@opindex dt
Dump after the second CSE pass (including the jump optimization that
sometimes follows CSE), to @file{@var{file}.17.cse2}.
+@item T
+@opindex dT
+Dump after running tracer, to @file{@var{file}.16.tracer}.
@item u
@opindex du
-Dump after null pointer ellimination pass ti @file{@var{file}.08.null}.
+Dump after null pointer elimination pass to @file{@var{file}.08.null}.
@item w
@opindex dw
Dump after the second flow pass, to @file{@var{file}.26.flow2}.
+@item W
+@opindex dW
+Dump after SSA conditional constant propagation, to
+@file{@var{file}.05.ssaccp}.
@item X
@opindex dX
Dump after SSA dead code elimination, to @file{@var{file}.06.ssadce}.
@@ -3276,6 +3213,14 @@ Dump after all tree based optimization, to @file{@var{file}.optimized}.
Dump after function inlining, to @file{@var{file}.inlined}.
@end table
+@item -frandom-seed=@var{string}
+@opindex frandom-string
+This option provides a seed that GCC uses when it would otherwise use
+random numbers. At present, this is used to generate certain symbol names
+that have to be different in every compiled file.
+
+The @var{string} should be different for every file you compile.
+
@item -fsched-verbose=@var{n}
@opindex fsched-verbose
On targets that use instruction scheduling, this option controls the
@@ -3388,7 +3333,22 @@ is used when GCC itself is being built.) @xref{Spec Files}.
@cindex optimize options
@cindex options, optimization
-These options control various sorts of optimizations:
+These options control various sorts of optimizations.
+
+Without any optimization option, the compiler's goal is to reduce the
+cost of compilation and to make debugging produce the expected
+results. Statements are independent: if you stop the program with a
+breakpoint between statements, you can then assign a new value to any
+variable or change the program counter to any other statement in the
+function and get exactly the results you would expect from the source
+code.
+
+Turning on optimization flags makes the compiler attempt to improve
+the performance and/or code size at the expense of compilation time
+and possibly the ability to debug the program.
+
+Not all optimizations are controlled directly by a flag. Only
+optimizations that have a flag are listed.
@table @gcctabopt
@item -O
@@ -3398,17 +3358,25 @@ These options control various sorts of optimizations:
Optimize. Optimizing compilation takes somewhat more time, and a lot
more memory for a large function.
-Without @option{-O}, the compiler's goal is to reduce the cost of
-compilation and to make debugging produce the expected results.
-Statements are independent: if you stop the program with a breakpoint
-between statements, you can then assign a new value to any variable or
-change the program counter to any other statement in the function and
-get exactly the results you would expect from the source code.
-
With @option{-O}, the compiler tries to reduce code size and execution
time, without performing any optimizations that take a great deal of
compilation time.
+@option{-O} turns on the following optimization flags:
+@gccoptlist{-fdefer-pop @gol
+-fmerge-constants @gol
+-fthread-jumps @gol
+-floop-optimize @gol
+-fcrossjumping @gol
+-fif-conversion @gol
+-fif-conversion2 @gol
+-fdelayed-branch @gol
+-fguess-branch-probability @gol
+-fcprop-registers}
+
+@option{-O} also turns on @option{-fomit-frame-pointer} on machines
+where doing so does not interfere with debugging.
+
@item -O2
@opindex O2
Optimize even more. GCC performs nearly all supported optimizations
@@ -3417,11 +3385,25 @@ perform loop unrolling or function inlining when you specify @option{-O2}.
As compared to @option{-O}, this option increases both compilation time
and the performance of the generated code.
-@option{-O2} turns on all optional optimizations except for loop
-unrolling, function inlining, and register renaming. It also turns on
-the @option{-fforce-mem} and @option{-fstrict-aliasing} option on all
-machines and frame pointer elimination on machines where doing so does
-not interfere with debugging.
+@option{-O2} turns on all optimization flags specified by @option{-O}. It
+also turns on the following optimization flags:
+@gccoptlist{-fforce-mem @gol
+-foptimize-sibling-calls @gol
+-fstrength-reduce @gol
+-fcse-follow-jumps -fcse-skip-blocks @gol
+-frerun-cse-after-loop -frerun-loop-opt @gol
+-fgcse -fgcse-lm -fgcse-sm @gol
+-fdelete-null-pointer-checks @gol
+-fexpensive-optimizations @gol
+-fregmove @gol
+-fschedule-insns -fschedule-insns2 @gol
+-fsched-interblock -fsched-spec @gol
+-fcaller-saves @gol
+-fpeephole2 @gol
+-freorder-blocks -freorder-functions @gol
+-fstrict-aliasing @gol
+-falign-functions -falign-jumps @gol
+-falign-loops -falign-labels}
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
@@ -3434,7 +3416,7 @@ Optimize yet more. @option{-O3} turns on all optimizations specified by
@item -O0
@opindex O0
-Do not optimize.
+Do not optimize. This is the default.
@item -Os
@opindex Os
@@ -3442,33 +3424,27 @@ Optimize for size. @option{-Os} enables all @option{-O2} optimizations that
do not typically increase code size. It also performs further
optimizations designed to reduce code size.
+@option{-Os} disables the following optimization flags:
+@gccoptlist{-falign-functions -falign-jumps -falign-loops @gol
+-falign-labels -freorder-blocks -fprefetch-loop-arrays}
+
If you use multiple @option{-O} options, with or without level numbers,
the last such option is the one that is effective.
@end table
Options of the form @option{-f@var{flag}} specify machine-independent
flags. Most flags have both positive and negative forms; the negative
-form of @option{-ffoo} would be @option{-fno-foo}. In the table below,
-only one of the forms is listed---the one which is not the default.
-You can figure out the other form by either removing @samp{no-} or
-adding it.
+form of @option{-ffoo} would be @option{-fno-foo}. In the table
+below, only one of the forms is listed---the one you typically will
+use. You can figure out the other form by either removing @samp{no-}
+or adding it.
-@table @gcctabopt
-@item -ffloat-store
-@opindex ffloat-store
-Do not store floating point variables in registers, and inhibit other
-options that might change whether a floating point value is taken from a
-register or memory.
-
-@cindex floating point precision
-This option prevents undesirable excess precision on machines such as
-the 68000 where the floating registers (of the 68881) keep more
-precision than a @code{double} is supposed to have. Similarly for the
-x86 architecture. For most programs, the excess precision does only
-good, but a few programs rely on the precise definition of IEEE floating
-point. Use @option{-ffloat-store} for such programs, after modifying
-them to store all pertinent intermediate computations into variables.
+The following options control specific optimizations. They are either
+activated by @option{-O} options or are related to ones that are. You
+can use the following flags in the rare cases when ``fine-tuning'' of
+optimizations to be performed is desired.
+@table @gcctabopt
@item -fno-default-inline
@opindex fno-default-inline
Do not make member functions inline by default merely because they are
@@ -3484,13 +3460,17 @@ returns. For machines which must pop arguments after a function call,
the compiler normally lets arguments accumulate on the stack for several
function calls and pops them all at once.
+Disabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fforce-mem
@opindex fforce-mem
Force memory operands to be copied into registers before doing
arithmetic on them. This produces better code by making all memory
references potential common subexpressions. When they are not common
subexpressions, instruction combination should eliminate the separate
-register-load. The @option{-O2} option turns on this option.
+register-load.
+
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fforce-addr
@opindex fforce-addr
@@ -3513,14 +3493,13 @@ machine-description macro @code{FRAME_POINTER_REQUIRED} controls
whether a target machine supports this flag. @xref{Registers,,Register
Usage, gccint, GNU Compiler Collection (GCC) Internals}.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -foptimize-sibling-calls
@opindex foptimize-sibling-calls
Optimize sibling and tail recursive calls.
-@item -ftrapv
-@opindex ftrapv
-This option generates traps for signed overflow on addition, subtraction,
-multiplication operations.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fno-inline
@opindex fno-inline
@@ -3538,11 +3517,13 @@ If all calls to a given function are integrated, and the function is
declared @code{static}, then the function is normally not output as
assembler code in its own right.
+Enabled at level @option{-O3}.
+
@item -finline-limit=@var{n}
@opindex finline-limit
By default, gcc limits the size of functions that can be inlined. This flag
allows the control of this limit for functions that are explicitly marked as
-inline (ie marked with the inline keyword or defined within the class
+inline (i.e., marked with the inline keyword or defined within the class
definition in c++). @var{n} is the size of functions that can be inlined in
number of pseudo instructions (not counting parameter handling). The default
value of @var{n} is 600.
@@ -3552,6 +3533,28 @@ the compilation faster and less code will be inlined (which presumably
means slower programs). This option is particularly useful for programs that
use inlining heavily such as those based on recursive templates with C++.
+Inlining is actually controlled by a number of parameters, which may be
+specified individually by using @option{--param @var{name}=@var{value}}.
+The @option{-finline-limit=@var{n}} option sets some of these parameters
+as follows:
+
+@table @gcctabopt
+ @item max-inline-insns
+ is set to @var{n}.
+ @item max-inline-insns-single
+ is set to @var{n}/2.
+ @item max-inline-insns-auto
+ is set to @var{n}/2.
+ @item min-inline-insns
+ is set to 130 or @var{n}/4, whichever is smaller.
+ @item max-inline-insns-rtl
+ is set to @var{n}.
+@end table
+
+Using @option{-finline-limit=600} thus results in the default settings
+for these parameters. See below for a documentation of the individual
+parameters controlling inlining.
+
@emph{Note:} pseudo instruction represents, in this particular context, an
abstract measurement of function's size. In no way, it represents a count
of assembly instructions and as such its exact meaning might change from one
@@ -3575,10 +3578,13 @@ optimization is turned on, use the @option{-fno-keep-static-consts} option.
@item -fmerge-constants
Attempt to merge identical constants (string constants and floating point
-constants) accross compilation units.
+constants) across compilation units.
+
+This option is the default for optimized compilation if the assembler and
+linker support it. Use @option{-fno-merge-constants} to inhibit this
+behavior.
-This option is default for optimized compilation if assembler and linker
-support it. Use @option{-fno-merge-constants} to inhibit this behavior.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
@item -fmerge-all-constants
Attempt to merge identical constants and identical variables.
@@ -3590,12 +3596,6 @@ types. Languages like C or C++ require each non-automatic variable to
have distinct location, so using this option will result in non-conforming
behavior.
-@item -fnew-ra
-@opindex fnew-ra
-Use a graph coloring register allocator. Currently this option is meant
-for testing, so we are interested to hear about miscompilations with
-@option{-fnew-ra}.
-
@item -fno-branch-count-reg
@opindex fno-branch-count-reg
Do not use ``decrement and branch'' instructions on a count register,
@@ -3604,6 +3604,9 @@ 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.
+The default is @option{-fbranch-count-reg}, enabled when
+@option{-fstrength-reduce} is enabled.
+
@item -fno-function-cse
@opindex fno-function-cse
Do not put function addresses in registers; make each instruction that
@@ -3613,88 +3616,7 @@ This option results in less efficient code, but some strange hacks
that alter the assembler output may be confused by the optimizations
performed when this option is not used.
-@item -ffast-math
-@opindex ffast-math
-Sets @option{-fno-math-errno}, @option{-funsafe-math-optimizations}, @*
-@option{-fno-trapping-math}, @option{-ffinite-math-only} and @*
-@option{-fno-signaling-nans}.
-
-This option causes the preprocessor macro @code{__FAST_MATH__} to be defined.
-
-This option should never be turned on by any @option{-O} option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ISO rules/specifications for
-math functions.
-
-@item -fno-math-errno
-@opindex fno-math-errno
-Do not set ERRNO after calling math functions that are executed
-with a single instruction, e.g., sqrt. A program that relies on
-IEEE exceptions for math error handling may want to use this flag
-for speed while maintaining IEEE arithmetic compatibility.
-
-This option should never be turned on by any @option{-O} option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ISO rules/specifications for
-math functions.
-
-The default is @option{-fmath-errno}.
-
-@item -funsafe-math-optimizations
-@opindex funsafe-math-optimizations
-Allow optimizations for floating-point arithmetic that (a) assume
-that arguments and results are valid and (b) may violate IEEE or
-ANSI standards. When used at link-time, it may include libraries
-or startup files that change the default FPU control word or other
-similar optimizations.
-
-This option should never be turned on by any @option{-O} option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ISO rules/specifications for
-math functions.
-
-The default is @option{-fno-unsafe-math-optimizations}.
-
-@item -ffinite-math-only
-@opindex ffinite-math-only
-Allow optimizations for floating-point arithmetic that assume
-that arguments and results are not NaNs or +-Infs.
-
-This option should never be turned on by any @option{-O} option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ISO rules/specifications.
-
-The default is @option{-fno-finite-math-only}.
-
-@item -fno-trapping-math
-@opindex fno-trapping-math
-Compile code assuming that floating-point operations cannot generate
-user-visible traps. These traps include division by zero, overflow,
-underflow, inexact result and invalid operation. This option implies
-@option{-fno-signaling-nans}. Setting this option may allow faster
-code if one relies on ``non-stop'' IEEE arithmetic, for example.
-
-This option should never be turned on by any @option{-O} option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ISO rules/specifications for
-math functions.
-
-The default is @option{-ftrapping-math}.
-
-@item -fsignaling-nans
-@opindex fsignaling-nans
-Compile code assuming that IEEE signaling NaNs may generate user-visible
-traps during floating-point operations. Setting this option disables
-optimizations that may change the number of exceptions visible with
-signaling NaNs. This option implies @option{-ftrapping-math}.
-
-This option causes the preprocessor macro @code{__SUPPORT_SNAN__} to
-be defined.
-
-The default is @option{-fno-signaling-nans}.
-
-This option is experimental and does not currently guarantee to
-disable all GCC optimizations that affect signaling NaN behavior.
+The default is @option{-ffunction-cse}
@item -fno-zero-initialized-in-bss
@opindex fno-zero-initialized-in-bss
@@ -3709,33 +3631,13 @@ assumptions based on that.
The default is @option{-fzero-initialized-in-bss}.
-@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}
-option turns on all of these optimizations except @option{-funroll-loops}
-and @option{-funroll-all-loops}. On most machines, the @option{-O} option
-turns on the @option{-fthread-jumps} and @option{-fdelayed-branch} options,
-but specific machines may handle it differently.
-
-You can use the following flags in the rare cases when ``fine-tuning''
-of optimizations to be performed is desired.
-
-Not all of the optimizations performed by GCC have @option{-f} options
-to control them.
-
-@table @gcctabopt
@item -fstrength-reduce
@opindex fstrength-reduce
Perform the optimizations of loop strength reduction and
elimination of iteration variables.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fthread-jumps
@opindex fthread-jumps
Perform optimizations where we check to see if a jump branches to a
@@ -3744,6 +3646,8 @@ so, the first branch is redirected to either the destination of the
second branch or a point immediately following it, depending on whether
the condition is known to be true or false.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fcse-follow-jumps
@opindex fcse-follow-jumps
In common subexpression elimination, scan through jump instructions
@@ -3752,6 +3656,8 @@ example, when CSE encounters an @code{if} statement with an
@code{else} clause, CSE will follow the jump when the condition
tested is false.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fcse-skip-blocks
@opindex fcse-skip-blocks
This is similar to @option{-fcse-follow-jumps}, but causes CSE to
@@ -3760,15 +3666,21 @@ encounters a simple @code{if} statement with no else clause,
@option{-fcse-skip-blocks} causes CSE to follow the jump around the
body of the @code{if}.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -frerun-cse-after-loop
@opindex frerun-cse-after-loop
Re-run common subexpression elimination after loop optimizations has been
performed.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -frerun-loop-opt
@opindex frerun-loop-opt
Run the loop optimizer twice.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fgcse
@opindex fgcse
Perform a global common subexpression elimination pass.
@@ -3776,9 +3688,11 @@ This pass also performs global constant and copy propagation.
@emph{Note:} When compiling a program using computed gotos, a GCC
extension, you may get better runtime performance if you disable
-the global common subexpression elmination pass by adding
+the global common subexpression elimination pass by adding
@option{-fno-gcse} to the command line.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fgcse-lm
@opindex fgcse-lm
When @option{-fgcse-lm} is enabled, global common subexpression elimination will
@@ -3786,6 +3700,8 @@ attempt to move loads which are only killed by stores into themselves. This
allows a loop containing a load/store sequence to be changed to a load outside
the loop, and a copy/store within the loop.
+Enabled by default when gcse is enabled.
+
@item -fgcse-sm
@opindex fgcse-sm
When @option{-fgcse-sm} is enabled, A store motion pass is run after global common
@@ -3793,17 +3709,23 @@ subexpression elimination. This pass will attempt to move stores out of loops.
When used in conjunction with @option{-fgcse-lm}, loops containing a load/store sequence
can be changed to a load before the loop and a store after the loop.
+Enabled by default when gcse is enabled.
+
@item -floop-optimize
@opindex floop-optimize
Perform loop optimizations: move constant expressions out of loops, simplify
exit test conditions and optionally do strength-reduction and loop unrolling as
well.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fcrossjumping
@opindex crossjumping
Perform cross-jumping transformation. This transformation unifies equivalent code and save code size. The
resulting code may or may not perform better than without cross-jumping.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fif-conversion
@opindex if-conversion
Attempt to transform conditional jumps into branch-less equivalents. This
@@ -3811,11 +3733,15 @@ include use of conditional moves, min, max, set flags and abs instructions, and
some tricks doable by standard arithmetics. The use of conditional execution
on chips where it is available is controlled by @code{if-conversion2}.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fif-conversion2
@opindex if-conversion2
Use conditional execution (where available) to transform conditional jumps into
branch-less equivalents.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fdelete-null-pointer-checks
@opindex fdelete-null-pointer-checks
Use global dataflow analysis to identify and eliminate useless checks
@@ -3828,10 +3754,14 @@ safely dereference null pointers. Use
@option{-fno-delete-null-pointer-checks} to disable this optimization
for programs which depend on that behavior.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fexpensive-optimizations
@opindex fexpensive-optimizations
Perform a number of minor optimizations that are relatively expensive.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -foptimize-register-move
@itemx -fregmove
@opindex foptimize-register-move
@@ -3839,18 +3769,21 @@ Perform a number of minor optimizations that are relatively expensive.
Attempt to reassign register numbers in move instructions and as
operands of other simple instructions in order to maximize the amount of
register tying. This is especially helpful on machines with two-operand
-instructions. GCC enables this optimization by default with @option{-O2}
-or higher.
+instructions.
Note @option{-fregmove} and @option{-foptimize-register-move} are the same
optimization.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fdelayed-branch
@opindex fdelayed-branch
If supported for the target machine, attempt to reorder instructions
to exploit instruction slots available after delayed branch
instructions.
+Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fschedule-insns
@opindex fschedule-insns
If supported for the target machine, attempt to reorder instructions to
@@ -3859,6 +3792,8 @@ helps machines that have slow floating point or memory load instructions
by allowing other instructions to be issued until the result of the load
or floating point instruction is required.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fschedule-insns2
@opindex fschedule-insns2
Similar to @option{-fschedule-insns}, but requests an additional pass of
@@ -3866,6 +3801,8 @@ instruction scheduling after register allocation has been done. This is
especially useful on machines with a relatively small number of
registers and where memory load instructions take more than one cycle.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fno-sched-interblock
@opindex fno-sched-interblock
Don't schedule instructions across basic blocks. This is normally
@@ -3890,28 +3827,6 @@ 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
-@opindex fdata-sections
-Place each function or data item into its own section in the output
-file if the target supports arbitrary sections. The name of the
-function or the name of the data item determines the section's name
-in the output file.
-
-Use these options on systems where the linker can perform optimizations
-to improve locality of reference in the instruction space. HPPA
-processors running HP-UX and SPARC processors running Solaris 2 have
-linkers with such optimizations. Other systems using the ELF object format
-as well as AIX may have these optimizations in the future.
-
-Only use these options when there are significant benefits from doing
-so. When you specify these options, the assembler and linker will
-create larger object and executable files and will also be slower.
-You will not be able to use @code{gprof} on all systems if you
-specify this option and you may have problems with debugging if
-you specify both this option and @option{-g}.
-
@item -fcaller-saves
@opindex fcaller-saves
Enable values to be allocated in registers that will be clobbered by
@@ -3922,33 +3837,7 @@ seems to result in better code than would otherwise be produced.
This option is always enabled by default on certain machines, usually
those which have no call-preserved registers to use instead.
-For all machines, optimization level 2 and higher enables this flag by
-default.
-
-@item -ftracer
-@opindex ftracer
-Perform tail duplication to enlarge superblock size. This transformation
-simplifies the control flow of the function allowing other optimizations to do
-better job.
-
-@item -funroll-loops
-@opindex funroll-loops
-Unroll loops whose number of iterations can be determined at compile
-time or upon entry to the loop. @option{-funroll-loops} implies both
-@option{-fstrength-reduce} and @option{-frerun-cse-after-loop}. This
-option makes code larger, and may or may not make it run faster.
-
-@item -funroll-all-loops
-@opindex funroll-all-loops
-Unroll all loops, even if their number of iterations is uncertain when
-the loop is entered. This usually makes programs run more slowly.
-@option{-funroll-all-loops} implies the same options as
-@option{-funroll-loops},
-
-@item -fprefetch-loop-arrays
-@opindex fprefetch-loop-arrays
-If supported by the target machine, generate instructions to prefetch
-memory to improve the performance of loops that access large arrays.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fmove-all-movables
@opindex fmove-all-movables
@@ -3986,26 +3875,8 @@ between @option{-fno-peephole} and @option{-fno-peephole2} is in how they
are implemented in the compiler; some targets use one, some use the
other, a few use both.
-@item -fbranch-probabilities
-@opindex fbranch-probabilities
-After running a program compiled with @option{-fprofile-arcs}
-(@pxref{Debugging Options,, Options for Debugging Your Program or
-@command{gcc}}), you can compile it a second time using
-@option{-fbranch-probabilities}, to improve optimizations based on
-the number of times each branch was taken. When the program
-compiled with @option{-fprofile-arcs} exits it saves arc execution
-counts to a file called @file{@var{sourcename}.da} for each source
-file The information in this data file is very dependent on the
-structure of the generated code, so you must use the same source code
-and the same optimization options for both compilations.
-
-With @option{-fbranch-probabilities}, GCC puts a @samp{REG_EXEC_COUNT}
-note on the first instruction of each basic block, and a
-@samp{REG_BR_PROB} note on each @samp{JUMP_INSN} and @samp{CALL_INSN}.
-These can be used to improve optimization. Currently, they are only
-used in one place: in @file{reorg.c}, instead of guessing which path a
-branch is mostly to take, the @samp{REG_BR_PROB} values are used to
-exactly determine which path is taken more often.
+@option{-fpeephole} is enabled by default.
+@option{-fpeephole2} enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -fno-guess-branch-probability
@opindex fno-guess-branch-probability
@@ -4023,11 +3894,16 @@ non-determinism is of paramount import. This switch allows users to
reduce non-determinism, possibly at the expense of inferior
optimization.
+The default is @option{-fguess-branch-probability} at levels
+@option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -freorder-blocks
@opindex freorder-blocks
Reorder basic blocks in the compiled function in order to reduce number of
taken branches and improve code locality.
+Enabled at levels @option{-O2}, @option{-O3}.
+
@item -freorder-functions
@opindex freorder-functions
Reorder basic blocks in the compiled function in order to reduce number of
@@ -4035,11 +3911,13 @@ taken branches and improve code locality. This is implemented by using special
subsections @code{text.hot} for most frequently executed functions and
@code{text.unlikely} for unlikely executed functions. Reordering is done by
the linker so object file format must support named sections and linker must
-place them in resonable way.
+place them in a reasonable way.
Also profile feedback must be available in to make this option effective. See
@option{-fprofile-arcs} for details.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
+
@item -fstrict-aliasing
@opindex fstrict-aliasing
Allows the compiler to assume the strictest aliasing rules applicable to
@@ -4085,8 +3963,7 @@ node, an alias set for the node. Nodes in different alias sets are not
allowed to alias. For an example, see the C front-end function
@code{c_get_alias_set}.
-For all machines, optimization level 2 and higher enables this flag by
-default.
+Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
@item -falign-functions
@itemx -falign-functions=@var{n}
@@ -4103,7 +3980,9 @@ equivalent and mean that functions will not be aligned.
Some assemblers only support this flag when @var{n} is a power of two;
in that case, it is rounded up.
-If @var{n} is not specified, use a machine-dependent default.
+If @var{n} is not specified or is zero, use a machine-dependent default.
+
+Enabled at levels @option{-O2}, @option{-O3}.
@item -falign-labels
@itemx -falign-labels=@var{n}
@@ -4113,11 +3992,16 @@ Align all branch targets to a power-of-two boundary, skipping up to
make code slower, because it must insert dummy operations for when the
branch target is reached in the usual flow of the code.
+@option{-fno-align-labels} and @option{-falign-labels=1} are
+equivalent and mean that labels will not be aligned.
+
If @option{-falign-loops} or @option{-falign-jumps} are applicable and
are greater than this value, then their values are used instead.
-If @var{n} is not specified, use a machine-dependent default which is
-very likely to be @samp{1}, meaning no alignment.
+If @var{n} is not specified or is zero, use a machine-dependent default
+which is very likely to be @samp{1}, meaning no alignment.
+
+Enabled at levels @option{-O2}, @option{-O3}.
@item -falign-loops
@itemx -falign-loops=@var{n}
@@ -4127,7 +4011,12 @@ like @option{-falign-functions}. The hope is that the loop will be
executed many times, which will make up for any execution of the dummy
operations.
-If @var{n} is not specified, use a machine-dependent default.
+@option{-fno-align-loops} and @option{-falign-loops=1} are
+equivalent and mean that loops will not be aligned.
+
+If @var{n} is not specified or is zero, use a machine-dependent default.
+
+Enabled at levels @option{-O2}, @option{-O3}.
@item -falign-jumps
@itemx -falign-jumps=@var{n}
@@ -4137,7 +4026,223 @@ where the targets can only be reached by jumping, skipping up to @var{n}
bytes like @option{-falign-functions}. In this case, no dummy operations
need be executed.
-If @var{n} is not specified, use a machine-dependent default.
+@option{-fno-align-jumps} and @option{-falign-jumps=1} are
+equivalent and mean that loops will not be aligned.
+
+If @var{n} is not specified or is zero, use a machine-dependent default.
+
+Enabled at levels @option{-O2}, @option{-O3}.
+
+@item -frename-registers
+@opindex frename-registers
+Attempt to avoid false dependencies in scheduled code by making use
+of registers left over after register allocation. This optimization
+will most benefit processors with lots of registers. It can, however,
+make debugging impossible, since variables will no longer stay in
+a ``home register''.
+
+Enabled at levels @option{-O3}.
+
+@item -fno-cprop-registers
+@opindex fno-cprop-registers
+After register allocation and post-register allocation instruction splitting,
+we perform a copy-propagation pass to try to reduce scheduling dependencies
+and occasionally eliminate the copy.
+
+Disabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
+
+@end table
+
+The following options control compiler behavior regarding floating
+point arithmetic. These options trade off between speed and
+correctness. All must be specifically enabled.
+
+@table @gcctabopt
+@item -ffloat-store
+@opindex ffloat-store
+Do not store floating point variables in registers, and inhibit other
+options that might change whether a floating point value is taken from a
+register or memory.
+
+@cindex floating point precision
+This option prevents undesirable excess precision on machines such as
+the 68000 where the floating registers (of the 68881) keep more
+precision than a @code{double} is supposed to have. Similarly for the
+x86 architecture. For most programs, the excess precision does only
+good, but a few programs rely on the precise definition of IEEE floating
+point. Use @option{-ffloat-store} for such programs, after modifying
+them to store all pertinent intermediate computations into variables.
+
+@item -ffast-math
+@opindex ffast-math
+Sets @option{-fno-math-errno}, @option{-funsafe-math-optimizations}, @*
+@option{-fno-trapping-math}, @option{-ffinite-math-only} and @*
+@option{-fno-signaling-nans}.
+
+This option causes the preprocessor macro @code{__FAST_MATH__} to be defined.
+
+This option should never be turned on by any @option{-O} option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ISO rules/specifications for
+math functions.
+
+@item -fno-math-errno
+@opindex fno-math-errno
+Do not set ERRNO after calling math functions that are executed
+with a single instruction, e.g., sqrt. A program that relies on
+IEEE exceptions for math error handling may want to use this flag
+for speed while maintaining IEEE arithmetic compatibility.
+
+This option should never be turned on by any @option{-O} option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ISO rules/specifications for
+math functions.
+
+The default is @option{-fmath-errno}.
+
+@item -funsafe-math-optimizations
+@opindex funsafe-math-optimizations
+Allow optimizations for floating-point arithmetic that (a) assume
+that arguments and results are valid and (b) may violate IEEE or
+ANSI standards. When used at link-time, it may include libraries
+or startup files that change the default FPU control word or other
+similar optimizations.
+
+This option should never be turned on by any @option{-O} option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ISO rules/specifications for
+math functions.
+
+The default is @option{-fno-unsafe-math-optimizations}.
+
+@item -ffinite-math-only
+@opindex ffinite-math-only
+Allow optimizations for floating-point arithmetic that assume
+that arguments and results are not NaNs or +-Infs.
+
+This option should never be turned on by any @option{-O} option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ISO rules/specifications.
+
+The default is @option{-fno-finite-math-only}.
+
+@item -fno-trapping-math
+@opindex fno-trapping-math
+Compile code assuming that floating-point operations cannot generate
+user-visible traps. These traps include division by zero, overflow,
+underflow, inexact result and invalid operation. This option implies
+@option{-fno-signaling-nans}. Setting this option may allow faster
+code if one relies on ``non-stop'' IEEE arithmetic, for example.
+
+This option should never be turned on by any @option{-O} option since
+it can result in incorrect output for programs which depend on
+an exact implementation of IEEE or ISO rules/specifications for
+math functions.
+
+The default is @option{-ftrapping-math}.
+
+@item -fsignaling-nans
+@opindex fsignaling-nans
+Compile code assuming that IEEE signaling NaNs may generate user-visible
+traps during floating-point operations. Setting this option disables
+optimizations that may change the number of exceptions visible with
+signaling NaNs. This option implies @option{-ftrapping-math}.
+
+This option causes the preprocessor macro @code{__SUPPORT_SNAN__} to
+be defined.
+
+The default is @option{-fno-signaling-nans}.
+
+This option is experimental and does not currently guarantee to
+disable all GCC optimizations that affect signaling NaN behavior.
+
+@item -fsingle-precision-constant
+@opindex fsingle-precision-constant
+Treat floating point constant as single precision constant instead of
+implicitly converting it to double precision constant.
+
+
+@end table
+
+The following options control optimizations that may improve
+performance, but are not enabled by any @option{-O} options. This
+section includes experimental options that may produce broken code.
+
+@table @gcctabopt
+@item -fbranch-probabilities
+@opindex fbranch-probabilities
+After running a program compiled with @option{-fprofile-arcs}
+(@pxref{Debugging Options,, Options for Debugging Your Program or
+@command{gcc}}), you can compile it a second time using
+@option{-fbranch-probabilities}, to improve optimizations based on
+the number of times each branch was taken. When the program
+compiled with @option{-fprofile-arcs} exits it saves arc execution
+counts to a file called @file{@var{sourcename}.da} for each source
+file The information in this data file is very dependent on the
+structure of the generated code, so you must use the same source code
+and the same optimization options for both compilations.
+
+With @option{-fbranch-probabilities}, GCC puts a
+@samp{REG_BR_PROB} note on each @samp{JUMP_INSN} and @samp{CALL_INSN}.
+These can be used to improve optimization. Currently, they are only
+used in one place: in @file{reorg.c}, instead of guessing which path a
+branch is mostly to take, the @samp{REG_BR_PROB} values are used to
+exactly determine which path is taken more often.
+
+@item -fnew-ra
+@opindex fnew-ra
+Use a graph coloring register allocator. Currently this option is meant
+only for testing. Users should not specify this option, since it is not
+yet ready for production use.
+
+@item -ftracer
+@opindex ftracer
+Perform tail duplication to enlarge superblock size. This transformation
+simplifies the control flow of the function allowing other optimizations to do
+better job.
+
+@item -funroll-loops
+@opindex funroll-loops
+Unroll loops whose number of iterations can be determined at compile
+time or upon entry to the loop. @option{-funroll-loops} implies both
+@option{-fstrength-reduce} and @option{-frerun-cse-after-loop}. This
+option makes code larger, and may or may not make it run faster.
+
+@item -funroll-all-loops
+@opindex funroll-all-loops
+Unroll all loops, even if their number of iterations is uncertain when
+the loop is entered. This usually makes programs run more slowly.
+@option{-funroll-all-loops} implies the same options as
+@option{-funroll-loops},
+
+@item -fprefetch-loop-arrays
+@opindex fprefetch-loop-arrays
+If supported by the target machine, generate instructions to prefetch
+memory to improve the performance of loops that access large arrays.
+
+Disabled at level @option{-Os}.
+
+@item -ffunction-sections
+@itemx -fdata-sections
+@opindex ffunction-sections
+@opindex fdata-sections
+Place each function or data item into its own section in the output
+file if the target supports arbitrary sections. The name of the
+function or the name of the data item determines the section's name
+in the output file.
+
+Use these options on systems where the linker can perform optimizations
+to improve locality of reference in the instruction space. Most systems
+using the ELF object format and SPARC processors running Solaris 2 have
+linkers with such optimizations. AIX may have these optimizations in
+the future.
+
+Only use these options when there are significant benefits from doing
+so. When you specify these options, the assembler and linker will
+create larger object and executable files and will also be slower.
+You will not be able to use @code{gprof} on all systems if you
+specify this option and you may have problems with debugging if
+you specify both this option and @option{-g}.
@item -fssa
@opindex fssa
@@ -4156,24 +4261,6 @@ Perform Sparse Conditional Constant Propagation in SSA form. Requires
Perform aggressive dead-code elimination in SSA form. Requires @option{-fssa}.
Like @option{-fssa}, this is an experimental feature.
-@item -fsingle-precision-constant
-@opindex fsingle-precision-constant
-Treat floating point constant as single precision constant instead of
-implicitly converting it to double precision constant.
-
-@item -frename-registers
-@opindex frename-registers
-Attempt to avoid false dependencies in scheduled code by making use
-of registers left over after register allocation. This optimization
-will most benefit processors with lots of registers. It can, however,
-make debugging impossible, since variables will no longer stay in
-a ``home register''.
-
-@item -fno-cprop-registers
-@opindex fno-cprop-registers
-After register allocation and post-register allocation instruction splitting,
-we perform a copy-propagation pass to try to reduce scheduling dependencies
-and occasionally eliminate the copy.
@item --param @var{name}=@var{value}
@opindex param
@@ -4183,10 +4270,21 @@ that contain more that a certain number of instructions. You can
control some of these constants on the command-line using the
@option{--param} option.
+The names of specific parameters, and the meaning of the values, are
+tied to the internals of the compiler, and are subject to change
+without notice in future releases.
+
In each case, the @var{value} is an integer. The allowable choices for
@var{name} are given in the following table:
@table @gcctabopt
+@item max-crossjump-edges
+The maximum number of incoming edges to consider for crossjumping.
+The algorithm used by @option{-fcrossjumping} is @math{O(N^2)} in
+the number of edges incoming to each block. Increasing values mean
+more aggressive optimization, making the compile time increase with
+probably small improvement in executable size.
+
@item max-delay-slot-insn-search
The maximum number of instructions to consider when looking for an
instruction to fill a delay slot. If more than this arbitrary number of
@@ -4218,10 +4316,53 @@ before flushing the current state and starting over. Large functions
with few branches or calls can create excessively large lists which
needlessly consume memory and resources.
+@item max-inline-insns-single
+Several parameters control the tree inliner used in gcc.
+This number sets the maximum number of instructions (counted in gcc's
+internal representation) in a single function that the tree inliner
+will consider for inlining. This only affects functions declared
+inline and methods implemented in a class declaration (C++).
+The default value is 300.
+
+@item max-inline-insns-auto
+When you use @option{-finline-functions} (included in @option{-O3}),
+a lot of functions that would otherwise not be considered for inlining
+by the compiler will be investigated. To those functions, a different
+(more restrictive) limit compared to functions declared inline can
+be applied.
+The default value is 300.
+
@item max-inline-insns
-If an function contains more than this many instructions, it
-will not be inlined. This option is precisely equivalent to
-@option{-finline-limit}.
+The tree inliner does decrease the allowable size for single functions
+to be inlined after we already inlined the number of instructions
+given here by repeated inlining. This number should be a factor of
+two or more larger than the single function limit.
+Higher numbers result in better runtime performance, but incur higher
+compile-time resource (CPU time, memory) requirements and result in
+larger binaries. Very high values are not advisable, as too large
+binaries may adversely affect runtime performance.
+The default value is 600.
+
+@item max-inline-slope
+After exceeding the maximum number of inlined instructions by repeated
+inlining, a linear function is used to decrease the allowable size
+for single functions. The slope of that function is the negative
+reciprocal of the number specified here.
+The default value is 32.
+
+@item min-inline-insns
+The repeated inlining is throttled more and more by the linear function
+after exceeding the limit. To avoid too much throttling, a minimum for
+this function is specified here to allow repeated inlining for very small
+functions even when a lot of repeated inlining already has been done.
+The default value is 130.
+
+@item max-inline-insns-rtl
+For languages that use the RTL inliner (this happens at a later stage
+than tree inlining), you can set the maximum allowable size (counted
+in RTL instructions) for the RTL inliner with this parameter.
+The default value is 600.
+
@item max-unrolled-insns
The maximum number of instructions that a loop should have if that loop
@@ -4239,8 +4380,9 @@ function given basic block needs to have to be considered hot
@item tracer-dynamic-coverage
@itemx tracer-dynamic-coverage-feedback
-This value is used to limit superblock formation once given percentage of
-executed instructions is covered. This limits unnecesary code size expansion.
+This value is used to limit superblock formation once the given percentage of
+executed instructions is covered. This limits unnecessary code size
+expansion.
The @option{tracer-dynamic-coverage-feedback} is used only when profile
feedback is available. The real profiles (as opposed to statically estimated
@@ -4248,7 +4390,7 @@ ones) are much less balanced allowing the threshold to be larger value.
@item tracer-max-code-growth
Stop tail duplication once code growth has reached given percentage. This is
-rather hokey argument, as most of the duplicates will be elliminated later in
+rather hokey argument, as most of the duplicates will be eliminated later in
cross jumping, so it may be set to much higher values than is the desired code
growth.
@@ -4263,7 +4405,7 @@ threshold (in percent).
Stop forward growth if the best edge do have probability lower than this
threshold.
-Similary to @option{tracer-dynamic-coverage} two values are present, one for
+Similarly to @option{tracer-dynamic-coverage} two values are present, one for
compilation for profile feedback and one for compilation without. The value
for compilation with profile feedback needs to be more conservative (higher) in
order to make tracer effective.
@@ -4276,7 +4418,11 @@ collector's heap should be allowed to expand between collections.
Tuning this may improve compilation speed; it has no effect on code
generation.
-The default is 30%. Setting this parameter and
+The default is 30% + 70% * (RAM/1GB) with an upper bound of 100% when
+RAM >= 1GB. If @code{getrlimit} is available, the notion of "RAM" is
+the smallest of actual RAM, RLIMIT_RSS, RLIMIT_DATA and RLIMIT_AS. If
+GCC is not able to calculate RAM on a particular platform, the lower
+bound of 30% is used. Setting this parameter and
@option{ggc-min-heapsize} to zero causes a full collection to occur at
every opportunity. This is extremely slow, but can be useful for
debugging.
@@ -4289,10 +4435,14 @@ by @option{ggc-min-expand}% beyond @option{ggc-min-heapsize}. Again,
tuning this may improve compilation speed, and has no effect on code
generation.
-The default is 4096 (four megabytes). Setting this parameter very large
-effectively disables garbage collection. Setting this parameter and
-@option{ggc-min-expand} to zero causes a full collection to occur at
-every opportunity.
+The default is RAM/8, with a lower bound of 4096 (four megabytes) and an
+upper bound of 131072 (128 megabytes). If @code{getrlimit} is
+available, the notion of "RAM" is the smallest of actual RAM,
+RLIMIT_RSS, RLIMIT_DATA and RLIMIT_AS. If GCC is not able to calculate
+RAM on a particular platform, the lower bound is used. Setting this
+parameter very large effectively disables garbage collection. Setting
+this parameter and @option{ggc-min-expand} to zero causes a full
+collection to occur at every opportunity.
@end table
@end table
@@ -4564,7 +4714,7 @@ If a standard system include directory, or a directory specified with
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.
+the ordering for the include_next directive are not inadvertently changed.
If you really need to change the search order for system directories,
use the @option{-nostdinc} and/or @option{-isystem} options.
@@ -4654,6 +4804,7 @@ are processed in order, from left to right.
@node Spec Files
@section Specifying subprocesses and the switches to pass to them
@cindex Spec Files
+
@command{gcc} is a driver program. It performs its job by invoking a
sequence of other programs to do the work of compiling, assembling and
linking. GCC interprets its command-line parameters and uses these to
@@ -4846,7 +4997,7 @@ for each @samp{%g.s} and another for each @samp{%U.s}. Previously, @samp{%U} wa
simply substituted with a file name chosen for the previous @samp{%u},
without regard to any appended suffix.
-@item %j@var{SUFFIX}
+@item %j@var{suffix}
Substitutes the name of the @code{HOST_BIT_BUCKET}, if any, and if it is
writable, and if save-temps is off; otherwise, substitute the name
of a temporary file, just like @samp{%u}. This temporary file is not
@@ -4892,7 +5043,10 @@ predefined macro, except for macros that start with @samp{__} or with
C@.
@item %I
-Substitute a @option{-iprefix} option made from @env{GCC_EXEC_PREFIX}.
+Substitute any of @option{-iprefix} (made from @env{GCC_EXEC_PREFIX}),
+@option{-isysroot} (made from @env{TARGET_SYSTEM_ROOT}), and
+@option{-isystem} (made from @env{COMPILER_PATH} and @option{-B} options)
+as necessary.
@item %s
Current argument is the name of a library or startup file of some sort.
@@ -5032,7 +5186,8 @@ based on the existence of the first. Here is a small example of its usage:
@smallexample
*startfile:
-crt0%O%s %:if-exists(crti%O%s) %:if-exists-else(crtbeginT%O%s crtbegin%O%s)
+crt0%O%s %:if-exists(crti%O%s) \
+%:if-exists-else(crtbeginT%O%s crtbegin%O%s)
@end smallexample
@end table
@@ -5216,8 +5371,6 @@ that macro, which enables you to change the defaults.
* M68hc1x Options::
* VAX Options::
* SPARC Options::
-* Convex Options::
-* AMD29K Options::
* ARM Options::
* MN10200 Options::
* MN10300 Options::
@@ -5232,7 +5385,6 @@ that macro, which enables you to change the defaults.
* Intel 960 Options::
* DEC Alpha Options::
* DEC Alpha/VMS Options::
-* Clipper Options::
* H8/300 Options::
* SH Options::
* System V Options::
@@ -5449,6 +5601,12 @@ when the compiler is configured for 68HC11-based systems.
Generate output for a 68HC12. This is the default
when the compiler is configured for 68HC12-based systems.
+@item -m68S12
+@itemx -m68hcs12
+@opindex m68S12
+@opindex m68hcs12
+Generate output for a 68HCS12.
+
@item -mauto-incdec
@opindex mauto-incdec
Enable the use of 68HC12 pre and post auto-increment and auto-decrement
@@ -5517,7 +5675,7 @@ These @samp{-m} switches are supported on the SPARC:
@opindex mapp-regs
Specify @option{-mapp-regs} to generate output using the global registers
2 through 4, which the SPARC SVR4 ABI reserves for applications. This
-is the default.
+is the default, except on Solaris.
To be fully SVR4 ABI compliant at the cost of some performance loss,
specify @option{-mno-app-regs}. You should compile libraries and system
@@ -5606,6 +5764,22 @@ ABI@. Thus, it's intended only for use on targets where the developer
acknowledges that their resulting code will not be directly in line with
the rules of the ABI@.
+@item -mimpure-text
+@opindex mimpure-text
+@option{-mimpure-text}, used in addition to @option{-shared}, tells
+the compiler to not pass @option{-z text} to the linker when linking a
+shared object. Using this option, you can link position-dependent
+code into a shared object.
+
+@option{-mimpure-text} suppresses the ``relocations remain against
+allocatable but non-writable sections'' linker error message.
+However, the necessary relocations will trigger copy-on-write, and the
+shared object is not actually shared across processes. Instead of
+using @option{-mimpure-text}, you should compile all source code with
+@option{-fpic} or @option{-fPIC}.
+
+This option is only available on SunOS and Solaris.
+
@item -mv8
@itemx -msparclite
@opindex mv8
@@ -5714,7 +5888,8 @@ on SPARC V9 processors in 64-bit environments.
@table @gcctabopt
@item -mlittle-endian
@opindex mlittle-endian
-Generate code for a processor running in little-endian mode.
+Generate code for a processor running in little-endian mode. It is only
+available for a few configurations and most notably not on Solaris.
@item -m32
@itemx -m64
@@ -5763,193 +5938,22 @@ when making stack frame references.
Otherwise, assume no such offset is present.
@end table
-@node Convex Options
-@subsection Convex Options
-@cindex Convex options
-
-These @samp{-m} options are defined for Convex:
+These switches are supported in addition to the above on Solaris:
@table @gcctabopt
-@item -mc1
-@opindex mc1
-Generate output for C1. The code will run on any Convex machine.
-The preprocessor symbol @code{__convex__c1__} is defined.
-
-@item -mc2
-@opindex mc2
-Generate output for C2. Uses instructions not available on C1.
-Scheduling and other optimizations are chosen for max performance on C2.
-The preprocessor symbol @code{__convex_c2__} is defined.
-
-@item -mc32
-@opindex mc32
-Generate output for C32xx. Uses instructions not available on C1.
-Scheduling and other optimizations are chosen for max performance on C32.
-The preprocessor symbol @code{__convex_c32__} is defined.
-
-@item -mc34
-@opindex mc34
-Generate output for C34xx. Uses instructions not available on C1.
-Scheduling and other optimizations are chosen for max performance on C34.
-The preprocessor symbol @code{__convex_c34__} is defined.
-
-@item -mc38
-@opindex mc38
-Generate output for C38xx. Uses instructions not available on C1.
-Scheduling and other optimizations are chosen for max performance on C38.
-The preprocessor symbol @code{__convex_c38__} is defined.
-
-@item -margcount
-@opindex margcount
-Generate code which puts an argument count in the word preceding each
-argument list. This is compatible with regular CC, and a few programs
-may need the argument count word. GDB and other source-level debuggers
-do not need it; this info is in the symbol table.
-
-@item -mnoargcount
-@opindex mnoargcount
-Omit the argument count word. This is the default.
-
-@item -mvolatile-cache
-@opindex mvolatile-cache
-Allow volatile references to be cached. This is the default.
-
-@item -mvolatile-nocache
-@opindex mvolatile-nocache
-Volatile references bypass the data cache, going all the way to memory.
-This is only needed for multi-processor code that does not use standard
-synchronization instructions. Making non-volatile references to volatile
-locations will not necessarily work.
-
-@item -mlong32
-@opindex mlong32
-Type long is 32 bits, the same as type int. This is the default.
-
-@item -mlong64
-@opindex mlong64
-Type long is 64 bits, the same as type long long. This option is useless,
-because no library support exists for it.
-@end table
-
-@node AMD29K Options
-@subsection AMD29K Options
-@cindex AMD29K options
-
-These @samp{-m} options are defined for the AMD Am29000:
-
-@table @gcctabopt
-@item -mdw
-@opindex mdw
-@cindex DW bit (29k)
-Generate code that assumes the @code{DW} bit is set, i.e., that byte and
-halfword operations are directly supported by the hardware. This is the
-default.
-
-@item -mndw
-@opindex mndw
-Generate code that assumes the @code{DW} bit is not set.
-
-@item -mbw
-@opindex mbw
-@cindex byte writes (29k)
-Generate code that assumes the system supports byte and halfword write
-operations. This is the default.
-
-@item -mnbw
-@opindex mnbw
-Generate code that assumes the systems does not support byte and
-halfword write operations. @option{-mnbw} implies @option{-mndw}.
-
-@item -msmall
-@opindex msmall
-@cindex memory model (29k)
-Use a small memory model that assumes that all function addresses are
-either within a single 256 KB segment or at an absolute address of less
-than 256k. This allows the @code{call} instruction to be used instead
-of a @code{const}, @code{consth}, @code{calli} sequence.
-
-@item -mnormal
-@opindex mnormal
-Use the normal memory model: Generate @code{call} instructions only when
-calling functions in the same file and @code{calli} instructions
-otherwise. This works if each file occupies less than 256 KB but allows
-the entire executable to be larger than 256 KB@. This is the default.
-
-@item -mlarge
-@opindex mlarge
-Always use @code{calli} instructions. Specify this option if you expect
-a single file to compile into more than 256 KB of code.
-
-@item -m29050
-@opindex m29050
-@cindex processor selection (29k)
-Generate code for the Am29050.
-
-@item -m29000
-@opindex m29000
-Generate code for the Am29000. This is the default.
-
-@item -mkernel-registers
-@opindex mkernel-registers
-@cindex kernel and user registers (29k)
-Generate references to registers @code{gr64-gr95} instead of to
-registers @code{gr96-gr127}. This option can be used when compiling
-kernel code that wants a set of global registers disjoint from that used
-by user-mode code.
-
-Note that when this option is used, register names in @samp{-f} flags
-must use the normal, user-mode, names.
-
-@item -muser-registers
-@opindex muser-registers
-Use the normal set of global registers, @code{gr96-gr127}. This is the
-default.
-
-@item -mstack-check
-@itemx -mno-stack-check
-@opindex mstack-check
-@opindex mno-stack-check
-@cindex stack checks (29k)
-Insert (or do not insert) a call to @code{__msp_check} after each stack
-adjustment. This is often used for kernel code.
-
-@item -mstorem-bug
-@itemx -mno-storem-bug
-@opindex mstorem-bug
-@opindex mno-storem-bug
-@cindex storem bug (29k)
-@option{-mstorem-bug} handles 29k processors which cannot handle the
-separation of a mtsrim insn and a storem instruction (most 29000 chips
-to date, but not the 29050).
-
-@item -mno-reuse-arg-regs
-@itemx -mreuse-arg-regs
-@opindex mno-reuse-arg-regs
-@opindex mreuse-arg-regs
-@option{-mno-reuse-arg-regs} tells the compiler to only use incoming argument
-registers for copying out arguments. This helps detect calling a function
-with fewer arguments than it was declared with.
-
-@item -mno-impure-text
-@itemx -mimpure-text
-@opindex mno-impure-text
-@opindex mimpure-text
-@option{-mimpure-text}, used in addition to @option{-shared}, tells the compiler to
-not pass @option{-assert pure-text} to the linker when linking a shared object.
-
-@item -msoft-float
-@opindex msoft-float
-Generate output containing library calls for floating point.
-@strong{Warning:} the requisite libraries are not part of GCC@.
-Normally the facilities of the machine's usual C compiler are used, but
-this can't be done directly in cross-compilation. You must make your
-own arrangements to provide suitable library functions for
-cross-compilation.
-
-@item -mno-multm
-@opindex mno-multm
-Do not generate multm or multmu instructions. This is useful for some embedded
-systems which do not have trap handlers for these instructions.
+@item -threads
+@opindex threads
+Add support for multithreading using the Solaris threads library. This
+option sets flags for both the preprocessor and linker. This option does
+not affect the thread safety of object code produced by the compiler or
+that of libraries supplied with it.
+
+@item -pthreads
+@opindex pthreads
+Add support for multithreading using the POSIX threads library. This
+option sets flags for both the preprocessor and linker. This option does
+not affect the thread safety of object code produced by the compiler or
+that of libraries supplied with it.
@end table
@node ARM Options
@@ -6116,25 +6120,6 @@ These are deprecated aliases for @option{-malignment-traps}.
@opindex mshort-load-words
This are deprecated aliases for @option{-mno-alignment-traps}.
-@item -mbsd
-@opindex mbsd
-This option only applies to RISC iX@. Emulate the native BSD-mode
-compiler. This is the default if @option{-ansi} is not specified.
-
-@item -mxopen
-@opindex mxopen
-This option only applies to RISC iX@. Emulate the native X/Open-mode
-compiler.
-
-@item -mno-symrename
-@opindex mno-symrename
-This option only applies to RISC iX@. Do not run the assembler
-post-processor, @samp{symrename}, after code has been assembled.
-Normally it is necessary to modify some of the standard symbols in
-preparation for linking with the RISC iX C library; this option
-suppresses this pass. The post-processor is never run when the
-compiler is built for cross-compilation.
-
@item -mcpu=@var{name}
@opindex mcpu
This specifies the name of the target ARM processor. GCC uses this name
@@ -6299,6 +6284,7 @@ of executing a function pointer if this option is enabled.
@node MN10200 Options
@subsection MN10200 Options
@cindex MN10200 options
+
These @option{-m} options are defined for Matsushita MN10200 architectures:
@table @gcctabopt
@@ -6314,6 +6300,7 @@ This option makes symbolic debugging impossible.
@node MN10300 Options
@subsection MN10300 Options
@cindex MN10300 options
+
These @option{-m} options are defined for Matsushita MN10300 architectures:
@table @gcctabopt
@@ -6476,9 +6463,9 @@ underscore as prefix on each name.
Include (or omit) additional debugging information (about registers used
in each stack frame) as specified in the 88open Object Compatibility
Standard, ``OCS''@. This extra information allows debugging of code that
-has had the frame pointer eliminated. The default for DG/UX, SVr4, and
-Delta 88 SVr3.2 is to include this information; other 88k configurations
-omit this information by default.
+has had the frame pointer eliminated. The default for SVr4 and Delta 88
+SVr3.2 is to include this information; other 88k configurations omit this
+information by default.
@item -mocs-frame-position
@opindex mocs-frame-position
@@ -6486,7 +6473,7 @@ omit this information by default.
When emitting COFF debugging information for automatic variables and
parameters stored on the stack, use the offset from the canonical frame
address, which is the stack pointer (register 31) on entry to the
-function. The DG/UX, SVr4, Delta88 SVr3.2, and BCS configurations use
+function. The SVr4 and Delta88 SVr3.2, and BCS configurations use
@option{-mocs-frame-position}; other 88k configurations have the default
@option{-mno-ocs-frame-position}.
@@ -6573,9 +6560,8 @@ that is used on System V release 4.
SVr4.
@end enumerate
-@option{-msvr4} is the default for the m88k-motorola-sysv4 and
-m88k-dg-dgux m88k configurations. @option{-msvr3} is the default for all
-other m88k configurations.
+@option{-msvr4} is the default for the m88k-motorola-sysv4 configuration.
+@option{-msvr3} is the default for all other m88k configurations.
@item -mversion-03.00
@opindex mversion-03.00
@@ -6781,7 +6767,7 @@ The @option{-mcpu} options automatically enable or disable other
@table @samp
@item common
-@option{-mno-power}, @option{-mno-powerc}
+@option{-mno-power}, @option{-mno-powerpc}
@item power
@itemx power2
@@ -7253,6 +7239,10 @@ This option sets flags for both the preprocessor and linker.
@node Darwin Options
@subsection Darwin Options
@cindex Darwin options
+
+These options are defined for all architectures running the Darwin operating
+system. They are useful for compatibility with other Mac OS compilers.
+
@table @gcctabopt
@item -all_load
@opindex all_load
@@ -7280,61 +7270,61 @@ This specifies the @var{executable} that will be loading the build
output file being linked. See man ld(1) for more information.
@item -allowable_client @var{client_name}
-@item -arch_only
-
-@item -client_name
-@item -compatibility_version
-@item -current_version
-@item -dependency-file
-@item -dylib_file
-@item -dylinker_install_name
-@item -dynamic
-@item -dynamiclib
-@item -exported_symbols_list
-@item -filelist
-@item -flat_namespace
-@item -force_cpusubtype_ALL
-@item -force_flat_namespace
-@item -headerpad_max_install_names
-@item -image_base
-@item -init
-@item -install_name
-@item -keep_private_externs
-@item -multi_module
-@item -multiply_defined
-@item -multiply_defined_unused
-@item -noall_load
-@item -nomultidefs
-@item -noprebind
-@item -noseglinkedit
-@item -pagezero_size
-@item -prebind
-@item -prebind_all_twolevel_modules
-@item -private_bundle
-@item -read_only_relocs
-@item -sectalign
-@item -sectobjectsymbols
-@item -whyload
-@item -seg1addr
-@item -sectcreate
-@item -sectobjectsymbols
-@item -sectorder
-@item -seg_addr_table
-@item -seg_addr_table_filename
-@item -seglinkedit
-@item -segprot
-@item -segs_read_only_addr
-@item -segs_read_write_addr
-@item -single_module
-@item -static
-@item -sub_library
-@item -sub_umbrella
-@item -twolevel_namespace
-@item -umbrella
-@item -undefined
-@item -unexported_symbols_list
-@item -weak_reference_mismatches
-@item -whatsloaded
+@itemx -arch_only
+
+@itemx -client_name
+@itemx -compatibility_version
+@itemx -current_version
+@itemx -dependency-file
+@itemx -dylib_file
+@itemx -dylinker_install_name
+@itemx -dynamic
+@itemx -dynamiclib
+@itemx -exported_symbols_list
+@itemx -filelist
+@itemx -flat_namespace
+@itemx -force_cpusubtype_ALL
+@itemx -force_flat_namespace
+@itemx -headerpad_max_install_names
+@itemx -image_base
+@itemx -init
+@itemx -install_name
+@itemx -keep_private_externs
+@itemx -multi_module
+@itemx -multiply_defined
+@itemx -multiply_defined_unused
+@itemx -noall_load
+@itemx -nomultidefs
+@itemx -noprebind
+@itemx -noseglinkedit
+@itemx -pagezero_size
+@itemx -prebind
+@itemx -prebind_all_twolevel_modules
+@itemx -private_bundle
+@itemx -read_only_relocs
+@itemx -sectalign
+@itemx -sectobjectsymbols
+@itemx -whyload
+@itemx -seg1addr
+@itemx -sectcreate
+@itemx -sectobjectsymbols
+@itemx -sectorder
+@itemx -seg_addr_table
+@itemx -seg_addr_table_filename
+@itemx -seglinkedit
+@itemx -segprot
+@itemx -segs_read_only_addr
+@itemx -segs_read_write_addr
+@itemx -single_module
+@itemx -static
+@itemx -sub_library
+@itemx -sub_umbrella
+@itemx -twolevel_namespace
+@itemx -umbrella
+@itemx -undefined
+@itemx -unexported_symbols_list
+@itemx -weak_reference_mismatches
+@itemx -whatsloaded
@opindex allowable_client
@opindex arch_only
@@ -7481,7 +7471,7 @@ In processor names, a final @samp{000} can be abbreviated as @samp{k}
GCC defines two macros based on the value of this option. The first
is @samp{_MIPS_ARCH}, which gives the name of target architecture, as
a string. The second has the form @samp{_MIPS_ARCH_@var{foo}},
-where @var{foo} is the capitialized value of @samp{_MIPS_ARCH}@.
+where @var{foo} is the capitalized value of @samp{_MIPS_ARCH}@.
For example, @samp{-march=r2000} will set @samp{_MIPS_ARCH}
to @samp{"r2000"} and define the macro @samp{_MIPS_ARCH_R2000}.
@@ -7854,7 +7844,8 @@ Tune to @var{cpu-type} everything applicable about the generated code, except
for the ABI and the set of available instructions. The choices for
@var{cpu-type} are @samp{i386}, @samp{i486}, @samp{i586}, @samp{i686},
@samp{pentium}, @samp{pentium-mmx}, @samp{pentiumpro}, @samp{pentium2},
-@samp{pentium3}, @samp{pentium4}, @samp{k6}, @samp{k6-2}, @samp{k6-3},
+@samp{pentium3}, @samp{pentium4}, @samp{prescott}, @samp{nocona},
+@samp{k6}, @samp{k6-2}, @samp{k6-3},
@samp{athlon}, @samp{athlon-tbird}, @samp{athlon-4}, @samp{athlon-xp},
@samp{athlon-mp}, @samp{winchip-c6}, @samp{winchip2} and @samp{c3}.
@@ -7885,14 +7876,14 @@ These synonyms are deprecated.
@item -mfpmath=@var{unit}
@opindex march
-generate floating point arithmetics for selected unit @var{unit}. the choices
+Generate floating point arithmetics for selected unit @var{unit}. The choices
for @var{unit} are:
@table @samp
@item 387
Use the standard 387 floating point coprocessor present majority of chips and
emulated otherwise. Code compiled with this option will run almost everywhere.
-The temporary results are computed in 80bit precesion instead of precision
+The temporary results are computed in 80bit precision instead of precision
specified by the type resulting in slightly different results compared to most
of other chips. See @option{-ffloat-store} for more detailed description.
@@ -7911,18 +7902,18 @@ For i387 you need to use @option{-march=@var{cpu-type}}, @option{-msse} or
@option{-msse2} switches to enable SSE extensions and make this option
effective. For x86-64 compiler, these extensions are enabled by default.
-The resulting code should be considerably faster in majority of cases and avoid
+The resulting code should be considerably faster in the majority of cases and avoid
the numerical instability problems of 387 code, but may break some existing
code that expects temporaries to be 80bit.
-This is the default choice for x86-64 compiler.
+This is the default choice for the x86-64 compiler.
@item sse,387
-Attempt to utilize both instruction sets at once. This effectivly double the
+Attempt to utilize both instruction sets at once. This effectively double the
amount of available registers and on chips with separate execution units for
387 and SSE the execution resources too. Use this option with care, as it is
-still experimental, because gcc register allocator does not model separate
-functional units well resulting in instable performance.
+still experimental, because the gcc register allocator does not model separate
+functional units well.
@end table
@item -masm=@var{dialect}
@@ -7984,26 +7975,39 @@ boundary. Aligning @code{double} variables on a two word boundary will
produce code that runs somewhat faster on a @samp{Pentium} at the
expense of more memory.
-@strong{Warning:} if you use the @samp{-malign-double} switch,
+@strong{Warning:} if you use the @option{-malign-double} switch,
structures containing the above types will be aligned differently than
-the published application binary interface specifications for the 386.
+the published application binary interface specifications for the 386
+and will not be binary compatible with structures in code compiled
+without that switch.
-@item -m128bit-long-double
+@item -m96bit-long-double
+@itemx -m128bit-long-double
+@opindex m96bit-long-double
@opindex m128bit-long-double
-Control the size of @code{long double} type. i386 application binary interface
-specify the size to be 12 bytes, while modern architectures (Pentium and newer)
-prefer @code{long double} aligned to 8 or 16 byte boundary. This is
-impossible to reach with 12 byte long doubles in the array accesses.
+These switches control the size of @code{long double} type. The i386
+application binary interface specifies the size to be 96 bits,
+so @option{-m96bit-long-double} is the default in 32 bit mode.
+
+Modern architectures (Pentium and newer) would prefer @code{long double}
+to be aligned to an 8 or 16 byte boundary. In arrays or structures
+conforming to the ABI, this would not be possible. So specifying a
+@option{-m128bit-long-double} will align @code{long double}
+to a 16 byte boundary by padding the @code{long double} with an additional
+32 bit zero.
+
+In the x86-64 compiler, @option{-m128bit-long-double} is the default choice as
+its ABI specifies that @code{long double} is to be aligned on 16 byte boundary.
+
+Notice that neither of these options enable any extra precision over the x87
+standard of 80 bits for a @code{long double}.
-@strong{Warning:} if you use the @option{-m128bit-long-double} switch, the
-structures and arrays containing @code{long double} will change their size as
+@strong{Warning:} if you override the default value for your target ABI, the
+structures and arrays containing @code{long double} variables will change their size as
well as function calling convention for function taking @code{long double}
-will be modified.
+will be modified. Hence they will not be binary compatible with arrays or
+structures in code compiled without that switch.
-@item -m96bit-long-double
-@opindex m96bit-long-double
-Set the size of @code{long double} to 96 bits as required by the i386
-application binary interface. This is the default.
@item -msvr3-shlib
@itemx -mno-svr3-shlib
@@ -8085,6 +8089,8 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@itemx -mno-sse
@item -msse2
@itemx -mno-sse2
+@item -msse3
+@itemx -mno-sse3
@item -m3dnow
@itemx -mno-3dnow
@opindex mmmx
@@ -8094,7 +8100,8 @@ preferred alignment to @option{-mpreferred-stack-boundary=2}.
@opindex m3dnow
@opindex mno-3dnow
These switches enable or disable the use of built-in functions that allow
-direct access to the MMX, SSE and 3Dnow extensions of the instruction set.
+direct access to the MMX, SSE, SSE2, SSE3 and 3Dnow extensions of the
+instruction set.
@xref{X86 Built-in Functions}, for details of the functions enabled
and disabled by these switches.
@@ -8368,6 +8375,30 @@ symbol-difference or pc-relative calls should be relatively small.
However, an indirect call is used on 32-bit ELF systems in pic code
and it is quite long.
+@item -nolibdld
+@opindex nolibdld
+Suppress the generation of link options to search libdld.sl when the
+@option{-static} option is specified on HP-UX 10 and later.
+
+@item -static
+@opindex static
+The HP-UX implementation of setlocale in libc has a dependency on
+libdld.sl. There isn't an archive version of libdld.sl. Thus,
+when the @option{-static} option is specified, special link options
+are needed to resolve this dependency.
+
+On HP-UX 10 and later, the GCC driver adds the necessary options to
+link with libdld.sl when the @option{-static} option is specified.
+This causes the resulting binary to be dynamic. On the 64-bit port,
+the linkers generate dynamic binaries by default in any case. The
+@option{-nolibdld} option can be used to prevent the GCC driver from
+adding these link options.
+
+@item -threads
+@opindex threads
+Add support for multithreading with the @dfn{dce thread} library
+under HP-UX. This option sets flags for both the preprocessor and
+linker.
@end table
@node Intel 960 Options
@@ -8687,7 +8718,7 @@ arithmetic instead of IEEE single and double precision.
@opindex mno-explicit-relocs
Older Alpha assemblers provided no way to generate symbol relocations
except via assembler macros. Use of these macros does not allow
-optimial instruction scheduling. GNU binutils as of version 2.12
+optimal instruction scheduling. GNU binutils as of version 2.12
supports a new syntax that allows the compiler to explicitly mark
which relocations should apply to which instructions. This option
is mostly useful for debugging, as GCC detects the capabilities of
@@ -8727,7 +8758,7 @@ Supported values for @var{cpu_type} are
@table @samp
@item ev4
-@item ev45
+@itemx ev45
@itemx 21064
Schedules as an EV4 and has no instruction set extensions.
@@ -8749,7 +8780,7 @@ Schedules as an EV5 and supports the BWX and MAX extensions.
Schedules as an EV6 and supports the BWX, FIX, and MAX extensions.
@item ev67
-@item 21264a
+@itemx 21264a
Schedules as an EV6 and supports the BWX, CIX, FIX, and MAX extensions.
@end table
@@ -8795,22 +8826,6 @@ Return VMS condition codes from main. The default is to return POSIX
style condition (e.g.@ error) codes.
@end table
-@node Clipper Options
-@subsection Clipper Options
-
-These @samp{-m} options are defined for the Clipper implementations:
-
-@table @gcctabopt
-@item -mc300
-@opindex mc300
-Produce code for a C300 Clipper processor. This is the default.
-
-@item -mc400
-@opindex mc400
-Produce code for a C400 Clipper processor, i.e.@: use floating point
-registers f8--f15.
-@end table
-
@node H8/300 Options
@subsection H8/300 Options
@@ -8821,7 +8836,7 @@ These @samp{-m} options are defined for the H8/300 implementations:
@opindex mrelax
Shorten some address references at link time, when possible; uses the
linker option @option{-relax}. @xref{H8/300,, @code{ld} and the H8/300,
-ld.info, Using ld}, for a fuller description.
+ld, Using ld}, for a fuller description.
@item -mh
@opindex mh
@@ -8923,7 +8938,7 @@ Enable the use of the instruction @code{fmovd}.
@item -mhitachi
@opindex mhitachi
-Comply with the calling conventions defined by Hitachi.
+Comply with the calling conventions defined by Renesas.
@item -mnomacsave
@opindex mnomacsave
@@ -9012,7 +9027,7 @@ parameters for machine type @var{cpu_type}. Supported values for
TMS320C40.
@item -mbig-memory
-@item -mbig
+@itemx -mbig
@itemx -msmall-memory
@itemx -msmall
@opindex mbig-memory
@@ -9175,11 +9190,11 @@ option is on by default if you optimize.
@itemx -mprolog-function
@opindex mno-prolog-function
@opindex mprolog-function
-Do not use (do use) external functions to save and restore registers at
-the prolog and epilog of a function. The external functions are slower,
-but use less code space if more than one function saves the same number
-of registers. The @option{-mprolog-function} option is on by default if
-you optimize.
+Do not use (do use) external functions to save and restore registers
+at the prologue and epilogue of a function. The external functions
+are slower, but use less code space if more than one function saves
+the same number of registers. The @option{-mprolog-function} option
+is on by default if you optimize.
@item -mspace
@opindex mspace
@@ -9214,16 +9229,16 @@ the assembler/linker complain about out of range branches within a switch
table.
@item -mapp-regs
-@opindex -mapp-regs
+@opindex mapp-regs
This option will cause r2 and r5 to be used in the code generated by
the compiler. This setting is the default.
@item -mno-app-regs
-@opindex -mno-app-regs
+@opindex mno-app-regs
This option will cause r2 and r5 to be treated as fixed registers.
@item -mv850e
-@opindex -mv850e
+@opindex mv850e
Specify that the target processor is the V850E. The preprocessor
constant @samp{__v850e__} will be defined if this option is used.
@@ -9235,7 +9250,7 @@ The preprocessor constants @samp{__v850} and @samp{__v851__} are always
defined, regardless of which processor variant is the target.
@item -mdisable-callt
-@opindex -mdisable-callt
+@opindex mdisable-callt
This option will suppress generation of the CALLT instruction for the
v850e flavors of the v850 architecture. The default is
@option{-mno-disable-callt} which allows the CALLT instruction to be used.
@@ -9496,75 +9511,57 @@ processors.
@table @gcctabopt
@item -mhardlit
-@itemx -mhardlit
@itemx -mno-hardlit
@opindex mhardlit
-@opindex mhardlit
@opindex mno-hardlit
Inline constants into the code stream if it can be done in two
instructions or less.
@item -mdiv
-@itemx -mdiv
@itemx -mno-div
@opindex mdiv
-@opindex mdiv
@opindex mno-div
Use the divide instruction. (Enabled by default).
@item -mrelax-immediate
-@itemx -mrelax-immediate
@itemx -mno-relax-immediate
@opindex mrelax-immediate
-@opindex mrelax-immediate
@opindex mno-relax-immediate
Allow arbitrary sized immediates in bit operations.
@item -mwide-bitfields
-@itemx -mwide-bitfields
@itemx -mno-wide-bitfields
@opindex mwide-bitfields
-@opindex mwide-bitfields
@opindex mno-wide-bitfields
Always treat bit-fields as int-sized.
@item -m4byte-functions
-@itemx -m4byte-functions
@itemx -mno-4byte-functions
@opindex m4byte-functions
-@opindex m4byte-functions
@opindex mno-4byte-functions
Force all functions to be aligned to a four byte boundary.
@item -mcallgraph-data
-@itemx -mcallgraph-data
@itemx -mno-callgraph-data
@opindex mcallgraph-data
-@opindex mcallgraph-data
@opindex mno-callgraph-data
Emit callgraph information.
@item -mslow-bytes
-@itemx -mslow-bytes
@itemx -mno-slow-bytes
@opindex mslow-bytes
-@opindex mslow-bytes
@opindex mno-slow-bytes
Prefer word access when reading byte quantities.
@item -mlittle-endian
-@itemx -mlittle-endian
@itemx -mbig-endian
@opindex mlittle-endian
-@opindex mlittle-endian
@opindex mbig-endian
Generate code for a little endian target.
@item -m210
-@itemx -m210
@itemx -m340
@opindex m210
-@opindex m210
@opindex m340
Generate code for the 210 processor.
@end table
@@ -9773,7 +9770,7 @@ targets default to @option{-m64}.
@opindex mmvcle
@opindex mno-mvcle
Generate (or do not generate) code using the @code{mvcle} instruction
-to perform block moves. When @option{-mno-mvcle} is specifed,
+to perform block moves. When @option{-mno-mvcle} is specified,
use a @code{mvc} loop instead. This is the default.
@item -mdebug
@@ -9826,6 +9823,13 @@ program should be set to @var{n} bytes.
The options @option{-metrax4} and @option{-metrax100} are synonyms for
@option{-march=v3} and @option{-march=v8} respectively.
+@item -mmul-bug-workaround
+@itemx -mno-mul-bug-workaround
+@opindex mmul-bug-workaround
+@opindex mno-mul-bug-workaround
+Work around a bug in the @code{muls} and @code{mulu} instructions for CPU
+models where it applies. This option is active by default.
+
@item -mpdebug
@opindex mpdebug
Enable CRIS-specific verbose debug-related information in the assembly
@@ -10072,7 +10076,7 @@ Use 32-bit @code{int}.
Use 64-bit @code{float}. This is the default.
@item -mfloat32
-@item -mno-float64
+@itemx -mno-float64
@opindex mfloat32
@opindex mno-float64
Use 32-bit @code{float}.
@@ -10541,6 +10545,18 @@ can figure out the other form by either removing @samp{no-} or adding
it.
@table @gcctabopt
+@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
+currently only supported by the Java and Fortran 77 front-ends, where
+this option defaults to true and false respectively.
+
+@item -ftrapv
+@opindex ftrapv
+This option generates traps for signed overflow on addition, subtraction,
+multiplication operations.
+
@item -fexceptions
@opindex fexceptions
Enable exception handling. Generates extra code needed to propagate
@@ -10787,7 +10803,7 @@ 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.
+Additionally, it makes the code suboptimal.
Use it to conform to a non-default application binary interface.
@item -finstrument-functions
@@ -10906,7 +10922,6 @@ The default without @option{-fpic} is @code{initial-exec}; with
@cindex environment variables
@c man begin ENVIRONMENT
-
This section describes several environment variables that affect how GCC
operates. Some of them work by specifying directories or prefixes to use
when searching for various kinds of files. Some are used to specify other
@@ -11115,16 +11130,16 @@ prototype information about standard system functions. This option
applies only to @code{protoize}.
@item -c @var{compilation-options}
-Use @var{compilation-options} as the options when running @code{gcc} to
+Use @var{compilation-options} as the options when running @command{gcc} to
produce the @samp{.X} files. The special option @option{-aux-info} is
-always passed in addition, to tell @code{gcc} to write a @samp{.X} file.
+always passed in addition, to tell @command{gcc} to write a @samp{.X} file.
Note that the compilation options must be given as a single argument to
@code{protoize} or @code{unprotoize}. If you want to specify several
-@code{gcc} options, you must quote the entire set of compilation options
+@command{gcc} options, you must quote the entire set of compilation options
to make them a single word in the shell.
-There are certain @code{gcc} arguments that you cannot use, because they
+There are certain @command{gcc} arguments that you cannot use, because they
would produce the wrong kind of output. These include @option{-g},
@option{-O}, @option{-c}, @option{-S}, and @option{-o} If you include these in
the @var{compilation-options}, they are ignored.
@@ -11177,12 +11192,12 @@ Use the program @var{program} as the compiler. Normally, the name
Work quietly. Most warnings are suppressed.
@item -v
-Print the version number, just like @option{-v} for @code{gcc}.
+Print the version number, just like @option{-v} for @command{gcc}.
@end table
If you need special compiler options to compile one of your program's
source files, then you should generate that file's @samp{.X} file
-specially, by running @code{gcc} on that source file with the
+specially, by running @command{gcc} on that source file with the
appropriate options and the option @option{-aux-info}. Then run
@code{protoize} on the entire set of files. @code{protoize} will use
the existing @samp{.X} file because it is newer than the source file.
diff --git a/gcc/doc/makefile.texi b/gcc/doc/makefile.texi
index 6d6b0253aa6..1e64c5e6160 100644
--- a/gcc/doc/makefile.texi
+++ b/gcc/doc/makefile.texi
@@ -13,18 +13,18 @@ This is the default target. Depending on what your build/host/target
configuration is, it coordinates all the things that need to be built.
@item doc
-Produce info-formatted documentation. Also, @code{make dvi} is
-available for DVI-formatted documentation, and @code{make
+Produce info-formatted documentation. Also, @samp{make dvi} is
+available for DVI-formatted documentation, and @samp{make
generated-manpages} to generate man pages.
@item mostlyclean
Delete the files made while building the compiler.
@item clean
-That, and all the other files built by @code{make all}.
+That, and all the other files built by @samp{make all}.
@item distclean
-That, and all the files created by @code{configure}.
+That, and all the files created by @command{configure}.
@item extraclean
That, and any temporary or intermediate files, like emacs backup files.
@@ -43,7 +43,7 @@ Deletes installed files.
@item check
Run the testsuite. This creates a @file{testsuite} subdirectory that
has various @file{.sum} and @file{.log} files containing the results of
-the testing. You can run subsets with, for example, @code{make check-gcc}.
+the testing. You can run subsets with, for example, @samp{make check-gcc}.
You can specify specific tests by setting RUNTESTFLAGS to be the name
of the @file{.exp} file, optionally followed by (for some tests) an equals
and a file wildcard, like:
@@ -59,7 +59,7 @@ installed, such as TCL or dejagnu.
Builds gcc three times---once with the native compiler, once with the
native-built compiler it just built, and once with the compiler it built
the second time. In theory, the last two should produce the same
-results, which @code{make compare} can check. Each step of this process
+results, which @samp{make compare} can check. Each step of this process
is called a ``stage'', and the results of each stage @var{N}
(@var{N} = 1@dots{}3) are copied to a subdirectory @file{stage@var{N}/}.
@@ -81,7 +81,7 @@ special invocation, using this target means you don't have to keep track
of which stage you're on or what invocation that stage needs.
@item cleanstrap
-Removed everything (@code{make clean}) and rebuilds (@code{make bootstrap}).
+Removed everything (@samp{make clean}) and rebuilds (@samp{make bootstrap}).
@item stage@var{N} (@var{N} = 1@dots{}4)
For each stage, moves the appropriate files to the @file{stage@var{N}}
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi
index 3ed88d02729..4047284f082 100644
--- a/gcc/doc/md.texi
+++ b/gcc/doc/md.texi
@@ -1,5 +1,5 @@
-@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1996, 1998, 1999, 2000, 2001, 2002
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1996, 1998, 1999, 2000, 2001,
+@c 2002, 2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -898,7 +898,7 @@ digit is used together with letters within the same alternative, the
digit should come last.
This number is allowed to be more than a single digit. If multiple
-digits are encountered consecutavely, they are interpreted as a single
+digits are encountered consecutively, they are interpreted as a single
decimal integer. There is scant chance for ambiguity, since to-date
it has never been desirable that @samp{10} be interpreted as matching
either operand 1 @emph{or} operand 0. Should this be desired, one
@@ -965,7 +965,7 @@ The machine description macro @code{REG_CLASS_FROM_LETTER} has first
cut at the otherwise unused letters. If it evaluates to @code{NO_REGS},
then @code{EXTRA_CONSTRAINT} is evaluated.
-A typical use for @code{EXTRA_CONSTRANT} would be to distinguish certain
+A typical use for @code{EXTRA_CONSTRAINT} would be to distinguish certain
types of memory references that affect other insn operands.
@end ifset
@end table
@@ -1376,60 +1376,6 @@ An item in the constant pool
A symbol in the text segment of the current file
@end table
-@item AMD 29000 family---@file{a29k.h}
-@table @code
-@item l
-Local register 0
-
-@item b
-Byte Pointer (@samp{BP}) register
-
-@item q
-@samp{Q} register
-
-@item h
-Special purpose register
-
-@item A
-First accumulator register
-
-@item a
-Other accumulator register
-
-@item f
-Floating point register
-
-@item I
-Constant greater than 0, less than 0x100
-
-@item J
-Constant greater than 0, less than 0x10000
-
-@item K
-Constant whose high 24 bits are on (1)
-
-@item L
-16-bit constant whose high 8 bits are on (1)
-
-@item M
-32-bit constant whose high 16 bits are on (1)
-
-@item N
-32-bit negative constant that fits in 8 bits
-
-@item O
-The constant 0x80000000 or, on the 29050, any 32-bit constant
-whose low 16 bits are 0.
-
-@item P
-16-bit negative constant that fits in 8 bits
-
-@item G
-@itemx H
-A floating point constant (in @code{asm} statements, use the machine
-independent @samp{E} or @samp{F} instead)
-@end table
-
@item AVR family---@file{avr.h}
@table @code
@item l
@@ -1609,7 +1555,7 @@ Second floating point register
@samp{c} register
@item C
-Specifies constant that can be easilly constructed in SSE register without
+Specifies constant that can be easily constructed in SSE register without
loading it from memory.
@item d
@@ -2078,10 +2024,27 @@ Constants in the range @minus{}8 to 2
@item SPARC---@file{sparc.h}
@table @code
@item f
-Floating-point register that can hold 32- or 64-bit values.
+Floating-point register on the SPARC-V8 architecture and
+lower floating-point register on the SPARC-V9 architecture.
@item e
-Floating-point register that can hold 64- or 128-bit values.
+Floating-point register. It is equivalent to @samp{f} on the
+SPARC-V8 architecture and contains both lower and upper
+floating-point registers on the SPARC-V9 architecture.
+
+@item c
+Floating-point condition code register.
+
+@item d
+Lower floating-point register. It is only valid on the SPARC-V9
+architecture when the Visual Instruction Set is available.
+
+@item b
+Floating-point register. It is only valid on the SPARC-V9 architecture
+when the Visual Instruction Set is available.
+
+@item h
+64-bit global or out register for the SPARC-V8+ architecture.
@item I
Signed 13-bit constant
@@ -2104,6 +2067,9 @@ Same as @samp{K}, except that it verifies that bits that are not in the
lower 32-bit range are all zero. Must be used instead of @samp{K} for
modes wider than @code{SImode}
+@item O
+The constant 4096
+
@item G
Floating-point zero
@@ -2306,7 +2272,7 @@ A memory reference that is a stack push.
A memory reference that is a stack pop.
@item S
-A memory reference that refers to an constant address of known value.
+A memory reference that refers to a constant address of known value.
@item T
The register indicated by Rx (not implemented yet).
@@ -2494,8 +2460,7 @@ Write the generated insn as a @code{parallel} with elements being a
@code{set} of one register from the appropriate memory location (you may
also need @code{use} or @code{clobber} elements). Use a
@code{match_parallel} (@pxref{RTL Template}) to recognize the insn. See
-@file{a29k.md} and @file{rs6000.md} for examples of the use of this insn
-pattern.
+@file{rs6000.md} for examples of the use of this insn pattern.
@cindex @samp{store_multiple} instruction pattern
@item @samp{store_multiple}
@@ -2744,13 +2709,23 @@ The use for multiple @code{clrstr@var{m}} is as for @code{movstr@var{m}}.
@cindex @code{cmpstr@var{m}} instruction pattern
@item @samp{cmpstr@var{m}}
-Block compare instruction, with five operands. Operand 0 is the output;
+String compare instruction, with five operands. Operand 0 is the output;
it has mode @var{m}. The remaining four operands are like the operands
of @samp{movstr@var{m}}. The two memory blocks specified are compared
byte by byte in lexicographic order. The effect of the instruction is
to store a value in operand 0 whose sign indicates the result of the
comparison.
+@cindex @code{cmpmem@var{m}} instruction pattern
+@item @samp{cmpmem@var{m}}
+Block compare instruction, with five operands like the operands
+of @samp{cmpstr@var{m}}. The two memory blocks specified are compared
+byte by byte in lexicographic order starting at the beginning of each
+block. Unlike @samp{cmpstr@var{m}} the instruction can prefetch
+any bytes in the two memory blocks. The effect of the instruction is
+to store a value in operand 0 whose sign indicates the result of the
+comparison.
+
@cindex @code{strlen@var{m}} instruction pattern
@item @samp{strlen@var{m}}
Compute the length of a string, with three operands.
@@ -4249,7 +4224,7 @@ instruction is always valid, as compiler expect identical behavior of new
jump. When new sequence contains multiple jump instructions or new labels,
more assistance is needed. Splitter is required to create only unconditional
jumps, or simple conditional jump instructions. Additionally it must attach a
-@code{REG_BR_PROB} note to each conditional jump. An global variable
+@code{REG_BR_PROB} note to each conditional jump. A global variable
@code{split_branch_probability} hold the probability of original branch in case
it was an simple conditional jump, @minus{}1 otherwise. To simplify
recomputing of edge frequencies, new sequence is required to have only
@@ -5368,7 +5343,7 @@ The first one is a data dependence delay determining @dfn{instruction
latency time}. The instruction execution is not started until all
source data have been evaluated by prior instructions (there are more
complex cases when the instruction execution starts even when the data
-are not availaible but will be ready in given time after the
+are not available but will be ready in given time after the
instruction execution start). Taking the data dependence delays into
account is simple. The data dependence (true, output, and
anti-dependence) delay between two instructions is given by a
@@ -5549,8 +5524,8 @@ in such processors and suggestions for their representation.
@cindex automaton based pipeline description
This section describes constructions of the automaton based processor
-pipeline description. The order of all mentioned below constructions
-in the machine description file is not important.
+pipeline description. The order of constructions within the machine
+description file is not important.
@findex define_automaton
@cindex pipeline hazard recognizer
@@ -5558,7 +5533,7 @@ The following optional construction describes names of automata
generated and used for the pipeline hazards recognition. Sometimes
the generated finite state automaton used by the pipeline hazard
recognizer is large. If we use more than one automaton and bind functional
-units to the automata, the summary size of the automata usually is
+units to the automata, the total size of the automata is usually
less than the size of the single automaton. If there is no one such
construction, only one finite state automaton is generated.
@@ -5568,12 +5543,12 @@ construction, only one finite state automaton is generated.
@var{automata-names} is a string giving names of the automata. The
names are separated by commas. All the automata should have unique names.
-The automaton name is used in construction @code{define_cpu_unit} and
+The automaton name is used in the constructions @code{define_cpu_unit} and
@code{define_query_cpu_unit}.
@findex define_cpu_unit
@cindex processor functional units
-Each processor functional unit used in description of instruction
+Each processor functional unit used in the description of instruction
reservations should be described by the following construction.
@smallexample
@@ -5634,7 +5609,7 @@ is negative, the cost is considered to be zero). You can always
change the default costs for any description by using the target hook
@code{TARGET_SCHED_ADJUST_COST} (@pxref{Scheduling}).
-@var{insn-names} is a string giving the internal name of the insn. The
+@var{insn-name} is a string giving the internal name of the insn. The
internal names are used in constructions @code{define_bypass} and in
the automaton description file generated for debugging. The internal
name has nothing in common with the names in @code{define_insn}. It is a
@@ -5720,7 +5695,7 @@ the common part by the following construction
@var{reservation-name} is a string giving name of @var{regexp}.
Functional unit names and reservation names are in the same name
space. So the reservation names should be different from the
-functional unit names and can not be reserved name @samp{nothing}.
+functional unit names and can not be the reserved name @samp{nothing}.
@findex define_bypass
@cindex instruction latency time
@@ -5807,8 +5782,8 @@ code. Currently there are the following options:
@itemize @bullet
@item
@dfn{no-minimization} makes no minimization of the automaton. This is
-only worth to do when we are going to query CPU functional unit
-reservations in an automaton state.
+only worth to do when we are debugging the description and need to
+look more accurately at reservations of states.
@item
@dfn{time} means printing additional time statistics about
@@ -5860,16 +5835,16 @@ incurred. To describe all of this we could specify
@smallexample
(define_cpu_unit "div")
-(define_insn_reservation "simple" 2 (eq_attr "cpu" "int")
+(define_insn_reservation "simple" 2 (eq_attr "type" "int")
"(i0_pipeline | i1_pipeline), (port0 | port1)")
-(define_insn_reservation "mult" 4 (eq_attr "cpu" "mult")
+(define_insn_reservation "mult" 4 (eq_attr "type" "mult")
"i1_pipeline, nothing*2, (port0 | port1)")
-(define_insn_reservation "div" 8 (eq_attr "cpu" "div")
+(define_insn_reservation "div" 8 (eq_attr "type" "div")
"i1_pipeline, div*7, div + (port0 | port1)")
-(define_insn_reservation "float" 3 (eq_attr "cpu" "float")
+(define_insn_reservation "float" 3 (eq_attr "type" "float")
"f_pipeline, nothing, (port0 | port1))
(define_bypass 4 "float" "simple,mult,div")
@@ -5885,7 +5860,7 @@ and use it in all @code{define_insn_reservation} as in the following
construction
@smallexample
-(define_insn_reservation "simple" 2 (eq_attr "cpu" "int")
+(define_insn_reservation "simple" 2 (eq_attr "type" "int")
"(i0_pipeline | i1_pipeline), finish")
@end smallexample
diff --git a/gcc/doc/objc.texi b/gcc/doc/objc.texi
index 3b652551e7c..a0c40f7296e 100644
--- a/gcc/doc/objc.texi
+++ b/gcc/doc/objc.texi
@@ -25,7 +25,6 @@ comments about this document to Ovidiu Predescu
@node Executing code before main, Type encoding, Objective-C, Objective-C
@section @code{+load}: Executing code before main
-
The GNU Objective-C runtime provides a way that allows you to execute
code before the execution of the program enters the @code{main}
function. The code is executed on a per-class and a per-category basis,
@@ -423,7 +422,7 @@ as @code{NXConstantString}'s structure:
libraries may choose to inherit the customized constant string class
from a different class than @code{Object}. There is no requirement in
the methods the constant string class has to implement, but the final
-ivar layour of the class must be the compatible with the given
+ivar layout of the class must be the compatible with the given
structure.
When the compiler creates the statically allocated constant string
diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi
index 423434d3c52..9a1941b4949 100644
--- a/gcc/doc/passes.texi
+++ b/gcc/doc/passes.texi
@@ -206,7 +206,7 @@ the input file name.
@cindex sibling call optimization
@item
-Sibiling call optimization. This pass performs tail recursion
+Sibling call optimization. This pass performs tail recursion
elimination, and tail and sibling call optimizations. The purpose of
these optimizations is to reduce the overhead of function calls,
whenever possible.
@@ -286,10 +286,9 @@ the input file name.
@opindex fssa-ccp
@item
SSA Conditional Constant Propagation. Turned on by the @option{-fssa-ccp}
-SSA Aggressive Dead Code Elimination. Turned on by the @option{-fssa-dce}
option. This pass performs conditional constant propagation to simplify
instructions including conditional branches. This pass is more aggressive
-than the constant propgation done by the CSE and GCSE pases, but operates
+than the constant propagation done by the CSE and GCSE passes, but operates
in linear time.
@opindex dW
@@ -461,7 +460,7 @@ appending @samp{.sched} to the input file name.
@cindex register allocation
@item
-Register allocation. These passes make sure that all occurences of pseudo
+Register allocation. These passes make sure that all occurrences of pseudo
registers are eliminated, either by allocating them to a hard register,
replacing them by an equivalent expression (e.g.@: a constant) or by placing
them on the stack. This is done in several subpasses:
@@ -551,17 +550,6 @@ The option @option{-dB} causes a debugging dump of the RTL code after
this pass. This dump file's name is made by appending @samp{.bbro} to
the input file name.
-@cindex cross-jumping
-@cindex no-op move instructions
-@item
-Jump optimization is repeated, this time including cross-jumping
-and deletion of no-op move instructions.
-
-@opindex dJ
-The option @option{-dJ} causes a debugging dump of the RTL code after
-this pass. This dump file's name is made by appending @samp{.jump2}
-to the input file name.
-
@cindex delayed branch scheduling
@cindex scheduling, delayed branch
@item
diff --git a/gcc/doc/portability.texi b/gcc/doc/portability.texi
index c3d8e3913d7..b05698dcfa6 100644
--- a/gcc/doc/portability.texi
+++ b/gcc/doc/portability.texi
@@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -8,10 +8,11 @@
@cindex portability
@cindex GCC and portability
-The main goal of GCC was to make a good, fast compiler for machines in
-the class that the GNU system aims to run on: 32-bit machines that address
-8-bit bytes and have several general registers. Elegance, theoretical
-power and simplicity are only secondary.
+GCC itself aims to be portable to any machine where @code{int} is at least
+a 32-bit type. It aims to target machines with a flat (non-segmented) byte
+addressed data address space (the code address space can be separate).
+Target ABIs may have 8, 16, 32 or 64-bit @code{int} type. @code{char}
+can be wider than 8 bits.
GCC gets most of the information about the target machine from a machine
description which gives an algebraic formula for each of the machine's
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi
index 1c9a4e49230..605aad05f25 100644
--- a/gcc/doc/rtl.texi
+++ b/gcc/doc/rtl.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1988, 1989, 1992, 1994, 1997, 1998, 1999, 2000, 2001, 2002
+@c Copyright (C) 1988, 1989, 1992, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -244,7 +244,7 @@ from an @samp{md} file, the vector value of this operand may be omitted.
An omitted vector is effectively the same as a vector of no elements.
@item B
-@samp{B} indicates a pointer to basic block strucure.
+@samp{B} indicates a pointer to basic block structure.
@item 0
@samp{0} means a slot whose contents do not fit any normal category.
@@ -608,9 +608,22 @@ Stored in the @code{integrated} field and printed as @samp{/i}.
@cindex @code{concat} and @samp{/u}
@cindex @code{unchanging}, in @code{reg} and @code{mem}
@item RTX_UNCHANGING_P (@var{x})
-Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the memory
-is set at most once,
-anywhere. This does not mean that it is function invariant.
+Nonzero in a @code{reg}, @code{mem}, or @code{concat} if the register or
+memory is set at most once, anywhere. This does not mean that it is
+function invariant.
+
+GCC uses this flag to determine whether two references conflict. As
+implemented by @code{true_dependence} in @file{alias.c} for memory
+references, unchanging memory can't conflict with non-unchanging memory;
+a non-unchanging read can conflict with a non-unchanging write; an
+unchanging read can conflict with an unchanging write (since there may
+be a single store to this address to initialize it); and an unchanging
+store can conflict with a non-unchanging read. This means we must make
+conservative assumptions when choosing the value of this flag for a
+memory reference to an object containing both unchanging and
+non-unchanging fields: we must set the flag when writing to the object
+and clear it when reading from the object.
+
Stored in the @code{unchanging} field and printed as @samp{/u}.
@findex SCHED_GROUP_P
@@ -687,13 +700,6 @@ Promoted variables are always either sign- or zero-extended to the wider
mode on every assignment. Stored in the @code{in_struct} field and
printed as @samp{/s}.
-@findex SYMBOL_REF_FLAG
-@cindex @code{symbol_ref} and @samp{/v}
-@cindex @code{volatil}, in @code{symbol_ref}
-@item SYMBOL_REF_FLAG (@var{x})
-In a @code{symbol_ref}, this is used as a flag for machine-specific purposes.
-Stored in the @code{volatil} field and printed as @samp{/v}.
-
@findex SYMBOL_REF_USED
@cindex @code{used}, in @code{symbol_ref}
@item SYMBOL_REF_USED (@var{x})
@@ -707,6 +713,17 @@ once. Stored in the @code{used} field.
@item SYMBOL_REF_WEAK (@var{x})
In a @code{symbol_ref}, indicates that @var{x} has been declared weak.
Stored in the @code{integrated} field and printed as @samp{/i}.
+
+@findex SYMBOL_REF_FLAG
+@cindex @code{symbol_ref} and @samp{/v}
+@cindex @code{volatil}, in @code{symbol_ref}
+@item SYMBOL_REF_FLAG (@var{x})
+In a @code{symbol_ref}, this is used as a flag for machine-specific purposes.
+Stored in the @code{volatil} field and printed as @samp{/v}.
+
+Most uses of @code{SYMBOL_REF_FLAG} are historic and may be subsumed
+by @code{SYMBOL_REF_FLAGS}. Certainly use of @code{SYMBOL_REF_FLAGS}
+is mandatory if the target requires more than one bit of storage.
@end table
These are the fields to which the above macros refer:
@@ -1854,14 +1871,14 @@ valid.
Comparison operators test a relation on two operands and are considered
to represent a machine-dependent nonzero value described by, but not
necessarily equal to, @code{STORE_FLAG_VALUE} (@pxref{Misc})
-if the relation holds, or zero if it does not. The mode of the
-comparison operation is independent of the mode of the data being
-compared. If the comparison operation is being tested (e.g., the first
-operand of an @code{if_then_else}), the mode must be @code{VOIDmode}.
-If the comparison operation is producing data to be stored in some
-variable, the mode must be in class @code{MODE_INT}. All comparison
-operations producing data must use the same mode, which is
-machine-specific.
+if the relation holds, or zero if it does not, for comparison operators
+whose results have a `MODE_INT' mode, and
+@code{FLOAT_STORE_FLAG_VALUE} (@pxref{Misc}) if the relation holds, or
+zero if it does not, for comparison operators that return floating-point
+values. The mode of the comparison operation is independent of the mode
+of the data being compared. If the comparison operation is being tested
+(e.g., the first operand of an @code{if_then_else}), the mode must be
+@code{VOIDmode}.
@cindex condition codes
There are two ways that comparison operations may be used. The
@@ -2195,9 +2212,9 @@ the operands of these.
@item (set @var{lval} @var{x})
Represents the action of storing the value of @var{x} into the place
represented by @var{lval}. @var{lval} must be an expression
-representing a place that can be stored in: @code{reg} (or @code{subreg}
-or @code{strict_low_part}), @code{mem}, @code{pc}, @code{parallel}, or
-@code{cc0}.
+representing a place that can be stored in: @code{reg} (or @code{subreg},
+@code{strict_low_part} or @code{zero_extract}), @code{mem}, @code{pc},
+@code{parallel}, or @code{cc0}.
If @var{lval} is a @code{reg}, @code{subreg} or @code{mem}, it has a
machine mode; then @var{x} must be valid for that mode.
@@ -2210,10 +2227,10 @@ rest of the register receives an undefined value. Likewise, if
the mode of the register, the rest of the register can be changed in
an undefined way.
-If @var{lval} is a @code{strict_low_part} of a @code{subreg}, then the
-part of the register specified by the machine mode of the
-@code{subreg} is given the value @var{x} and the rest of the register
-is not changed.
+If @var{lval} is a @code{strict_low_part} or @code{zero_extract}
+of a @code{subreg}, then the part of the register specified by the
+machine mode of the @code{subreg} is given the value @var{x} and
+the rest of the register is not changed.
If @var{lval} is @code{(cc0)}, it has no machine mode, and @var{x} may
be either a @code{compare} expression or a value that may have any mode.
@@ -2596,7 +2613,7 @@ Here is an example of its use:
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.
-@findex post_modify
+@findex pre_modify
@item (pre_modify:@var{m} @var{x} @var{expr})
Similar except side effects happen before the use.
@end table
@@ -2841,7 +2858,7 @@ labels: @code{LABEL_NORMAL}, @code{LABEL_STATIC_ENTRY},
that do not have type @code{LABEL_NORMAL} are @dfn{alternate entry
points} to the current function. These may be static (visible only in
the containing translation unit), global (exposed to all translation
-units), or weak (global, but can be overriden by another symbol with the
+units), or weak (global, but can be overridden by another symbol with the
same name).
Much of the compiler treats all four kinds of label identically. Some
@@ -3254,12 +3271,6 @@ are stored in the @code{REG_NOTES} field of an insn as an
@code{expr_list}.
@table @code
-@findex REG_EXEC_COUNT
-@item REG_EXEC_COUNT
-This is used to indicate the number of times a basic block was executed
-according to the profile data. The note is attached to the first insn in
-the basic block.
-
@findex REG_BR_PROB
@item REG_BR_PROB
This is used to specify the ratio of branches to non-branches of a
diff --git a/gcc/doc/service.texi b/gcc/doc/service.texi
index 863774483c8..4cc2b70888c 100644
--- a/gcc/doc/service.texi
+++ b/gcc/doc/service.texi
@@ -1,5 +1,5 @@
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -24,7 +24,5 @@ The service directory is found at
@uref{http://www.gnu.org/prep/service.html}.
@end itemize
-@c For further information, see
-@c @uref{http://gcc.gnu.org/cgi-bin/fom.cgi?file=12}.
-@c FIXME: this URL may be too volatile, this FAQ entry needs to move to
-@c the regular web pages before we can uncomment the reference.
+For further information, see
+@uref{http://gcc.gnu.org/faq.html#support}.
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index e337a50ac51..c2222c04d4c 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002 Free Software Foundation, Inc.
+@c Copyright (C) 2002, 2003 Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -124,7 +124,7 @@ the files in these directories.
@item config
Configuration files for supported architectures and operating
systems. @xref{Back End, , Anatomy of a Target Back End}, for
-details of the files in thie directory.
+details of the files in this directory.
@item doc
Texinfo documentation for GCC, together with automatically generated
@@ -155,7 +155,7 @@ various languages, @file{@var{language}.po}. This directory also
contains @file{gcc.pot}, the template for these message catalogues,
@file{exgettext}, a wrapper around @command{gettext} to extract the
messages from the GCC sources and create @file{gcc.pot}, which is run
-by @command{make gcc.pot}, and @file{EXCLUDES}, a list of files from
+by @samp{make gcc.pot}, and @file{EXCLUDES}, a list of files from
which messages should not be extracted.
@item testsuite
@@ -278,7 +278,7 @@ needs fixing, @file{syslimits.h} is the fixed copy.
The main GCC documentation is in the form of manuals in Texinfo
format. These are installed in Info format, and DVI versions may be
-generated by @command{make dvi}. In addition, some man pages are
+generated by @samp{make dvi}. In addition, some man pages are
generated from the Texinfo manuals, there are some other text files
with miscellaneous documentation, and runtime libraries have their own
documentation outside the @file{gcc} directory. FIXME: document the
@@ -312,9 +312,9 @@ The GNU General Public License.
A copy of @file{texinfo.tex} known to work with the GCC manuals.
@end table
-DVI formatted manuals are generated by @command{make dvi}, which uses
+DVI formatted manuals are generated by @samp{make dvi}, which uses
@command{texi2dvi} (via the Makefile macro @code{$(TEXI2DVI)}). Info
-manuals are generated by @command{make info} (which is run as part of
+manuals are generated by @samp{make info} (which is run as part of
a bootstrap); this generates the manuals in the source directory,
using @command{makeinfo} via the Makefile macro @code{$(MAKEINFO)},
and they are included in release distributions.
@@ -330,7 +330,7 @@ not themselves the root files of manuals, may have names that appear
more than once in the source tree.) The manual file
@file{@var{name}.texi} should only include other files in its own
directory or in @file{doc/include}. HTML manuals will be generated by
-@command{makeinfo --html} and PostScript manuals by @command{texi2dvi}
+@samp{makeinfo --html} and PostScript manuals by @command{texi2dvi}
and @command{dvips}. All Texinfo files that are parts of manuals must
be checked into CVS, even if they are generated files, for the
generation of online manuals to work.
@@ -466,10 +466,9 @@ following are also necessary:
@itemize @bullet
@item
-At least one GNATS category for bugs in that front end and runtime
+At least one Bugzilla component for bugs in that front end and runtime
libraries. This category needs to be mentioned in
-@file{gcc/gccbug.in}, and in @file{gnats.html} on the GCC web site, as
-well as being added to the GNATS database.
+@file{gcc/gccbug.in}, as well as being added to the Bugzilla database.
@item
Normally, one or more maintainers of that front end listed in
@file{MAINTAINERS}.
@@ -541,7 +540,7 @@ deprecated).
FIXME: exactly what goes in each of these targets?
@item info
Build info documentation for the front end, in the source directory.
-This target is only called by @command{make bootstrap} if a suitable
+This target is only called by @samp{make bootstrap} if a suitable
version of @command{makeinfo} is available, so does not need to check
for this, and should fail if an error occurs.
@item dvi
@@ -751,9 +750,12 @@ suites. Currently only the C language test suites are documented
here; FIXME: document the others.
@menu
-* Test Idioms:: Idioms used in test suite code.
-* C Tests:: The C language test suites.
-* libgcj Tests:: The Java library test suites.
+* Test Idioms:: Idioms used in test suite code.
+* C Tests:: The C language test suites.
+* libgcj Tests:: The Java library test suites.
+* gcov Testing:: Support for testing gcov.
+* profopt Testing:: Support for testing profile-directed optimizations.
+* compat Testing:: Support for testing binary compatibility.
@end menu
@node Test Idioms
@@ -867,7 +869,7 @@ the compiler with optimization.
FIXME: describe this.
@item gcc.c-torture
-This contains particlar code fragments which have historically broken easily.
+This contains particular code fragments which have historically broken easily.
These tests are run with multiple optimization options, so tests for features
which only break at some optimization levels belong here. This also contains
tests to check that certain optimizations occur. It might be worthwhile to
@@ -898,8 +900,28 @@ FIXME: describe this.
This directory should probably not be used for new tests.
@item gcc.c-torture/misc-tests
-FIXME: describe this, when it should be used for new tests and when it
-shouldn't.
+This directory contains C tests that require special handling. Some
+of these tests have individual expect files, and others share
+special-purpose expect files:
+
+@table @file
+@item @code{bprob*.c}
+Test @option{-fbranch-probabilities} using @file{bprob.exp}, which
+in turn uses the generic, language-independent framework
+(@pxref{profopt Testing, , Support for testing profile-directed
+optimizations}).
+
+@item @code{dg-*.c}
+Test the testsuite itself using @file{dg-test.exp}.
+
+@item @code{gcov*.c}
+Test @command{gcov} output using @file{gcov.exp}, which in turn uses the
+language-independent support (@pxref{gcov Testing, , Support for testing gcov}).
+
+@item @code{i386-pf-*.c}
+Test i386-specific support for data prefetch using @file{i386-prefetch.exp}.
+@end table
+
@end table
FIXME: merge in @file{testsuite/README.gcc} and discuss the format of
@@ -908,9 +930,9 @@ 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.
+Runtime tests are executed via @samp{make check} in the
+@file{@var{target}/libjava/testsuite} directory 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}
@@ -933,3 +955,190 @@ part of Java testing by placing the Jacks tree within the the libjava
testsuite sources at @file{libjava/testsuite/libjava.jacks/jacks}.
We encourage developers to contribute test cases to Mauve and Jacks.
+
+@node gcov Testing
+@subsection Support for testing @command{gcov}
+
+Language-independent support for testing @command{gcov}, and for checking
+that branch profiling produces expected values, is provided by the
+expect file @file{gcov.exp}. @command{gcov} tests also rely on procedures
+in @file{gcc.dg.exp} to compile and run the test program. A typical
+@command{gcov} test contains the following DejaGNU commands within comments:
+
+@smallexample
+@{ dg-options "-fprofile-arcs -ftest-coverage" @}
+@{ dg-do run @{ target native @} @}
+@{ dg-final @{ run-gcov sourcefile @} @}
+@end smallexample
+
+Checks of @command{gcov} output can include line counts, branch percentages,
+and call return percentages. All of these checks are requested via
+commands that appear in comments in the test's source file.
+Commands to check line counts are processed by default.
+Commands to check branch percentages and call return percentages are
+processed if there is a file with the same basename as the source
+file and a suffix @file{.x} that contains a line
+@code{set gcov_verify_branches 1} or @code{set gcov_verify_calls 1},
+respectively.
+
+A line count command appears within a comment on the source line
+that is expected to get the specified count and has the form
+@code{count(@var{cnt})}. A test should only check line counts for
+lines that will get the same count for any architecture.
+
+Commands to check branch percentages (@code{branch}) and call
+return percentages (@code{returns}) are very similar to each other.
+A beginning command appears on or before the first of a range of
+lines that will report the percentage, and the ending command
+follows that range of lines. The beginning command can include a
+list of percentages, all of which are expected to be found within
+the range. A range is terminated by the next command of the same
+kind. A command @code{branch(end)} or @code{returns(end)} marks
+the end of a range without starting a new one. For example:
+
+@smallexample
+if (i > 10 && j > i && j < 20) /* branch(27 50 75) */
+ /* branch(end) */
+ foo (i, j);
+@end smallexample
+
+For a call return percentage, the value specified is the
+percentage of calls reported to return. For a branch percentage,
+the value is either the expected percentage or 100 minus that
+value, since the direction of a branch can differ depending on the
+target or the optimization level.
+
+Not all branches and calls need to be checked. A test should not
+check for branches that might be optimized away or replaced with
+predicated instructions. Don't check for calls inserted by the
+compiler or ones that might be inlined or optimized away.
+
+A single test can check for combinations of line counts, branch
+percentages, and call return percentages. The command to check a
+line count must appear on the line that will report that count, but
+commands to check branch percentages and call return percentages can
+bracket the lines that report them.
+
+@node profopt Testing
+@subsection Support for testing profile-directed optimizations
+
+The file @file{profopt.exp} provides language-independent support for
+checking correct execution of a test built with profile-directed
+optimization. This testing requires that a test program be built and
+executed twice. The first time it is compiled to generate profile
+data, and the second time it is compiled to use the data that was
+generated during the first execution. The second execution is to
+verify that the test produces the expected results.
+
+To check that the optimization actually generated better code, a
+test can be built and run a third time with normal optimizations to
+verify that the performance is better with the profile-directed
+optimizations. @file{profopt.exp} has the beginnings of this kind
+of support.
+
+@file{profopt.exp} provides generic support for profile-directed
+optimizations. Each set of tests that uses it provides information
+about a specific optimization:
+
+@table @code
+@item tool
+tool being tested, e.g., gcc
+
+@item profile_option
+options used to generate profile data
+
+@item feedback_option
+options used to optimize using that profile data
+
+@item prof_ext
+suffix of profile data files
+
+@item PROFOPT_OPTIONS
+list of options with which to run each test, similar to the lists for
+torture tests
+@end table
+
+@node compat Testing
+@subsection Support for testing binary compatibility
+
+The file @file{compat.exp} provides language-independent support for
+binary compatibility testing. It supports testing interoperability
+of two compilers that follow the same ABI, or of multiple sets of
+compiler options that should not affect binary compatibility.
+It is intended to be used for test suites that complement ABI test
+suites.
+
+A test supported by this framework has three parts, each in a
+separate source file: a main program and two pieces that interact
+with each other to split up the functionality being tested.
+
+@table @file
+@item @var{testname}_main.@var{suffix}
+Contains the main program, which calls a function in file
+@file{@var{testname}_x.@var{suffix}}.
+
+@item @var{testname}_x.@var{suffix}
+Contains at least one call to a function in
+@file{@var{testname}_y.@var{suffix}}.
+
+@item @var{testname}_y.@var{suffix}
+Shares data with, or gets arguments from,
+@file{@var{testname}_x.@var{suffix}}.
+@end table
+
+Within each test, the main program and one functional piece are
+compiled by the GCC under test. The other piece can be compiled by
+an alternate compiler. If no alternate compiler is specified,
+then all three source files are all compiled by the GCC under test.
+It's also possible to specify a pair of lists of compiler options,
+one list for each compiler, so that each test will be compiled with
+each pair of options.
+
+@file{compat.exp} defines default pairs of compiler options.
+These can be overridden by defining the environment variable
+@env{COMPAT_OPTIONS} as:
+
+@smallexample
+COMPAT_OPTIONS="[list [list @{@var{tst1}@} @{@var{alt1}@}]
+ ...[list @{@var{tstn}@} @{@var{altn}@}]]"
+@end smallexample
+
+where @var{tsti} and @var{alti} are lists of options, with @var{tsti}
+used by the compiler under test and @var{alti} used by the alternate
+compiler. For example, with
+@code{[list [list @{-g -O0@} @{-O3@}] [list @{-fpic@} @{-fPIC -O2@}]]},
+the test is first built with @code{-g -O0} by the compiler under
+test and with @code{-O3} by the alternate compiler. The test is
+built a second time using @code{-fpic} by the compiler under test
+and @code{-fPIC -O2} by the alternate compiler.
+
+An alternate compiler is specified by defining an environment
+variable; for C++ define @env{ALT_CXX_UNDER_TEST} to be the full
+pathname of an installed compiler. That will be written to the
+@file{site.exp} file used by DejaGNU. The default is to build each
+test with the compiler under test using the first of each pair of
+compiler options from @env{COMPAT_OPTIONS}. When
+@env{ALT_CXX_UNDER_TEST} is @code{same}, each test is built using
+the compiler under test but with combinations of the options from
+@env{COMPAT_OPTIONS}.
+
+To run only the C++ compatibility suite using the compiler under test
+and another version of GCC using specific compiler options, do the
+following from @file{@var{objdir}/gcc}:
+
+@smallexample
+rm site.exp
+make -k \
+ ALT_CXX_UNDER_TEST=$@{alt_prefix@}/bin/g++ \
+ COMPAT_OPTIONS="lists as shown above" \
+ check-c++ \
+ RUNTESTFLAGS="compat.exp"
+@end smallexample
+
+A test that fails when the source files are compiled with different
+compilers, but passes when the files are compiled with the same
+compiler, demonstrates incompatibility of the generated code or
+runtime support. A test that fails for the alternate compiler but
+passes for the compiler under test probably tests for a bug that was
+fixed in the compiler under test but is present in the alternate
+compiler.
diff --git a/gcc/doc/standards.texi b/gcc/doc/standards.texi
index 8c37fccd440..c939498d398 100644
--- a/gcc/doc/standards.texi
+++ b/gcc/doc/standards.texi
@@ -79,7 +79,7 @@ as @dfn{AMD1}; the amended standard is sometimes known as @dfn{C94} or
A new edition of the ISO C standard was published in 1999 as ISO/IEC
9899:1999, and is commonly known as @dfn{C99}. GCC has incomplete
support for this standard version; see
-@uref{http://gcc.gnu.org/c99status.html} for details. To select this
+@uref{http://gcc.gnu.org/gcc-3.3/c99status.html} for details. To select this
standard, use @option{-std=c99} or @option{-std=iso9899:1999}. (While in
development, drafts of this standard version were referred to as
@dfn{C9X}.)
@@ -189,4 +189,4 @@ conformance and compatibility of the Ada compiler.
Fortran}, for details of the Fortran language supported by GCC@.
@xref{Compatibility,,Compatibility with the Java Platform, gcj, GNU gcj},
-for details of compatibility between @code{gcj} and the Java Platform.
+for details of compatibility between @command{gcj} and the Java Platform.
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 4b885113797..8ea3a91413e 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1988,1989,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002
+@c Copyright (C) 1988,1989,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
@c Free Software Foundation, Inc.
@c This is part of the GCC manual.
@c For copying conditions, see the file gcc.texi.
@@ -390,7 +390,7 @@ the target makefile fragment or if none of the options listed in
@findex RELATIVE_PREFIX_NOT_LINKDIR
@item RELATIVE_PREFIX_NOT_LINKDIR
-Define this macro to tell @code{gcc} that it should only translate
+Define this macro to tell @command{gcc} that it should only translate
a @option{-B} prefix into a @option{-L} linker option if the prefix
indicates an absolute file name.
@@ -2304,7 +2304,7 @@ which is the register value plus a displacement.
@findex MODE_BASE_REG_CLASS
@item MODE_BASE_REG_CLASS (@var{mode})
This is a variation of the @code{BASE_REG_CLASS} macro which allows
-the selection of a base register in a mode depenedent manner. If
+the selection of a base register in a mode dependent manner. If
@var{mode} is VOIDmode then it should return the same value as
@code{BASE_REG_CLASS}.
@@ -2561,10 +2561,9 @@ should be the maximum value of @code{HARD_REGNO_NREGS (@var{regno},
This macro helps control the handling of multiple-word values
in the reload pass.
-@item CANNOT_CHANGE_MODE_CLASS(@var{from}, @var{to})
-If defined, a C expression that returns a register class for which
-a change from mode @var{from} to mode @var{to} is invalid, otherwise the
-macro returns @code{NO_REGS}.
+@item CANNOT_CHANGE_MODE_CLASS(@var{from}, @var{to}, @var{class})
+If defined, a C expression that returns nonzero for a @var{class} for which
+a change from mode @var{from} to mode @var{to} is invalid.
For the example, loading 32-bit integer or floating-point objects into
floating-point registers on the Alpha extends them to 64 bits.
@@ -2574,8 +2573,9 @@ register. Therefore, @file{alpha.h} defines @code{CANNOT_CHANGE_MODE_CLASS}
as below:
@example
-#define CANNOT_CHANGE_MODE_CLASS \
- (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) ? FLOAT_REGS : NO_REGS)
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (FLOAT_REGS, (CLASS)) : 0)
@end example
@end table
@@ -2899,8 +2899,12 @@ It will be assigned zero on code paths that return normally.
Typically this is a call-clobbered hard register that is otherwise
untouched by the epilogue, but could also be a stack slot.
-You must define this macro if you want to support call frame exception
-handling like that provided by DWARF 2.
+Do not define this macro if the stack pointer is saved and restored
+by the regular prolog and epilog code in the call frame itself; in
+this case, the exception handling library routines will update the
+stack location to be restored in place. Otherwise, you must define
+this macro if you want to support call frame exception handling like
+that provided by DWARF 2.
@findex EH_RETURN_HANDLER_RTX
@item EH_RETURN_HANDLER_RTX
@@ -2912,8 +2916,9 @@ Typically this is the location in the call frame at which the normal
return address is stored. For targets that return by popping an
address off the stack, this might be a memory address just below
the @emph{target} call frame rather than inside the current call
-frame. @code{EH_RETURN_STACKADJ_RTX} will have already been assigned,
-so it may be used to calculate the location of the target call frame.
+frame. If defined, @code{EH_RETURN_STACKADJ_RTX} will have already
+been assigned, so it may be used to calculate the location of the
+target call frame.
Some targets have more complex requirements than storing to an
address calculable during initial code generation. In that case
@@ -2964,6 +2969,19 @@ the stack pointer value. If the frame can be decoded, the register save
addresses should be updated in @var{fs} and the macro should branch to
@var{success}. If the frame cannot be decoded, the macro should do
nothing.
+
+@findex MD_HANDLE_UNWABI
+@item MD_HANDLE_UNWABI(@var{context}, @var{fs})
+This macro allows the target to add operating system specific code to the
+call-frame unwinder to handle the IA-64 @code{.unwabi} unwinding directive,
+usually used for signal or interrupt frames.
+
+This macro is called from @code{uw_update_context} in @file{unwind-ia64.c}.
+@var{context} is an @code{_Unwind_Context};
+@var{fs} is an @code{_Unwind_FrameState}. Examine @code{fs->unwabi}
+for the abi and context in the @code{.unwabi} directive. If the
+@code{.unwabi} directive can be handled, the register save addresses should
+be updated in @var{fs}.
@end table
@node Stack Checking
@@ -4142,7 +4160,7 @@ You need not define this macro if you did not define
@end table
@findex TARGET_ASM_OUTPUT_MI_THUNK
-@deftypefn {Target Hook} void TARGET_ASM_OUTPUT_MI_THUNK (FILE *@var{file}, tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, tree @var{function})
+@deftypefn {Target Hook} void TARGET_ASM_OUTPUT_MI_THUNK (FILE *@var{file}, tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, HOST_WIDE_INT @var{vcall_offset}, tree @var{function})
A function that outputs the assembler code for a thunk
function, used to implement C++ virtual function calls with multiple
inheritance. The thunk acts as a wrapper around a virtual function,
@@ -4156,7 +4174,15 @@ in C++. This is the incoming argument @emph{before} the function prologue,
e.g.@: @samp{%o0} on a sparc. The addition must preserve the values of
all other incoming arguments.
-After the addition, emit code to jump to @var{function}, which is a
+Then, if @var{vcall_offset} is nonzero, an additional adjustment should be
+made after adding @code{delta}. In particular, if @var{p} is the
+adjusted pointer, the following adjustment should be made:
+
+@smallexample
+p += (*((ptrdiff_t **)p))[vcall_offset/sizeof(ptrdiff_t)]
+@end smallexample
+
+After the additions, emit code to jump to @var{function}, which is a
@code{FUNCTION_DECL}. This is a direct pure jump, not a call, and does
not touch the return address. Hence returning from @var{FUNCTION} will
return to whoever called the current @samp{thunk}.
@@ -4176,21 +4202,13 @@ front end will generate a less efficient heavyweight thunk that calls
not support varargs.
@end deftypefn
-@findex TARGET_ASM_OUTPUT_MI_VCALL_THUNK
-@deftypefn {Target Hook} void TARGET_ASM_OUTPUT_MI_VCALL_THUNK (FILE *@var{file}, tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, int @var{vcall_offset}, tree @var{function})
-A function like @code{TARGET_ASM_OUTPUT_MI_THUNK}, except that if
-@var{vcall_offset} is non-zero, an additional adjustment should be made
-after adding @code{delta}. In particular, if @var{p} is the
-adjusted pointer, the following adjustment should be made:
-
-@example
-p += (*((ptrdiff_t **)p))[vcall_offset/sizeof(ptrdiff_t)]
-@end example
-
-@noindent
-If this function is defined, it will always be used in place of
-@code{TARGET_ASM_OUTPUT_MI_THUNK}.
-
+@findex TARGET_ASM_CAN_OUTPUT_MI_THUNK
+@deftypefn {Target Hook} bool TARGET_ASM_CAN_OUTPUT_MI_THUNK (tree @var{thunk_fndecl}, HOST_WIDE_INT @var{delta}, HOST_WIDE_INT @var{vcall_offset}, tree @var{function})
+A function that returns true if TARGET_ASM_OUTPUT_MI_THUNK would be able
+to output the assembler code for the thunk function specified by the
+arguments it is passed, and false otherwise. In the latter case, the
+generic approach will be used by the C++ front end, with the limitations
+previously exposed.
@end deftypefn
@node Profiling
@@ -5185,6 +5203,34 @@ follows:
@end table
+@deftypefn {Target Hook} bool TARGET_FIXED_CONDITION_CODE_REGS (unsigned int *, unsigned int *)
+On targets which do not use @code{(cc0)}, and which use a hard
+register rather than a pseudo-register to hold condition codes, the
+regular CSE passes are often not able to identify cases in which the
+hard register is set to a common value. Use this hook to enable a
+small pass which optimizes such cases. This hook should return true
+to enable this pass, and it should set the integers to which its
+arguments point to the hard register numbers used for condition codes.
+When there is only one such register, as is true on most systems, the
+integer pointed to by the second argument should be set to
+@code{INVALID_REGNUM}.
+
+The default version of this hook returns false.
+@end deftypefn
+
+@deftypefn {Target Hook} enum machine_mode TARGET_CC_MODES_COMPATIBLE (enum machine_mode, enum machine_mode)
+On targets which use multiple condition code modes in class
+@code{MODE_CC}, it is sometimes the case that a comparison can be
+validly done in more than one mode. On such a system, define this
+target hook to take two mode arguments and to return a mode in which
+both comparisons may be validly done. If there is no such mode,
+return @code{VOIDmode}.
+
+The default version of this hook checks whether the modes are the
+same. If they are, it returns that mode. If they are different, it
+returns @code{VOIDmode}.
+@end deftypefn
+
@node Costs
@section Describing Relative Costs of Operations
@cindex costs of instructions
@@ -6584,6 +6630,22 @@ usual manner as a label (by means of @code{ASM_OUTPUT_LABEL}).
You may wish to use @code{ASM_OUTPUT_TYPE_DIRECTIVE} and/or
@code{ASM_OUTPUT_SIZE_DIRECTIVE} in the definition of this macro.
+@findex ASM_DECLARE_CONSTANT_NAME
+@item ASM_DECLARE_CONSTANT_NAME (@var{stream}, @var{name}, @var{exp}, @var{size})
+A C statement (sans semicolon) to output to the stdio stream
+@var{stream} any text necessary for declaring the name @var{name} of a
+constant which is being defined. This macro is responsible for
+outputting the label definition (perhaps using
+@code{ASM_OUTPUT_LABEL}). The argument @var{exp} is the
+value of the constant, and @var{size} is the size of the constant
+in bytes. @var{name} will be an internal label.
+
+If this macro is not defined, then the @var{name} is defined in the
+usual manner as a label (by means of @code{ASM_OUTPUT_LABEL}).
+
+You may wish to use @code{ASM_OUTPUT_TYPE_DIRECTIVE} in the definition
+of this macro.
+
@findex ASM_DECLARE_REGISTER_GLOBAL
@item ASM_DECLARE_REGISTER_GLOBAL (@var{stream}, @var{decl}, @var{regno}, @var{name})
A C statement (sans semicolon) to output to the stdio stream
@@ -6931,7 +6993,7 @@ When arbitrary sections are available, there are two variants, depending
upon how the code in @file{crtstuff.c} is called. On systems that
support a @dfn{.init} section which is executed at program startup,
parts of @file{crtstuff.c} are compiled into that section. The
-program is linked by the @code{gcc} driver like this:
+program is linked by the @command{gcc} driver like this:
@example
ld -o @var{output_file} crti.o crtbegin.o @dots{} -lgcc crtend.o crtn.o
@@ -9044,7 +9106,7 @@ structure, which are defined by the @code{IFCVT_EXTRA_FIELDS} macro.
@findex IFCVT_EXTRA_FIELDS
@item IFCVT_EXTRA_FIELDS
If defined, it should expand to a set of field declarations that will be
-added to the @code{struct ce_if_block} structure. These should be intialized
+added to the @code{struct ce_if_block} structure. These should be initialized
by the @code{IFCVT_INIT_EXTRA_FIELDS} macro.
@end table
@@ -9131,6 +9193,22 @@ Define this macro for systems like AIX, where the linker discards
object files that are not referenced from @code{main} and uses export
lists.
+@findex MODIFY_JNI_METHOD_CALL
+@item MODIFY_JNI_METHOD_CALL (@var{mdecl})
+Define this macro to a C expression representing a variant of the
+method call @var{mdecl}, if Java Native Interface (JNI) methods
+must be invoked differently from other methods on your target.
+For example, on 32-bit Windows, JNI methods must be invoked using
+the @code{stdcall} calling convention and this macro is then
+defined as this expression:
+
+@smallexample
+build_type_attribute_variant (@var{mdecl},
+ build_tree_list
+ (get_identifier ("stdcall"),
+ NULL))
+@end smallexample
+
@end table
@deftypefn {Target Hook} bool TARGET_CANNOT_MODIFY_JUMPS_P (void)
diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi
index d6ba63259d6..96057a1d263 100644
--- a/gcc/doc/trouble.texi
+++ b/gcc/doc/trouble.texi
@@ -338,47 +338,6 @@ you cannot successfully use @samp{$} in identifiers on the RS/6000 due
to a restriction in the IBM assembler. GAS supports these
identifiers.
-@item
-@opindex mno-serialize-volatile
-There is an assembler bug in versions of DG/UX prior to 5.4.2.01 that
-occurs when the @samp{fldcr} instruction is used. GCC uses
-@samp{fldcr} on the 88100 to serialize volatile memory references. Use
-the option @option{-mno-serialize-volatile} if your version of the
-assembler has this bug.
-
-@item
-On VMS, GAS versions 1.38.1 and earlier may cause spurious warning
-messages from the linker. These warning messages complain of mismatched
-psect attributes. You can ignore them.
-
-@item
-On NewsOS version 3, if you include both of the files @file{stddef.h}
-and @file{sys/types.h}, you get an error because there are two typedefs
-of @code{size_t}. You should change @file{sys/types.h} by adding these
-lines around the definition of @code{size_t}:
-
-@smallexample
-#ifndef _SIZE_T
-#define _SIZE_T
-@var{actual-typedef-here}
-#endif
-@end smallexample
-
-@cindex Alliant
-@item
-On the Alliant, the system's own convention for returning structures
-and unions is unusual, and is not compatible with GCC no matter
-what options are used.
-
-@cindex RT PC
-@cindex IBM RT PC
-@item
-@opindex mhc-struct-return
-On the IBM RT PC, the MetaWare HighC compiler (hc) uses a different
-convention for structure and union returning. Use the option
-@option{-mhc-struct-return} to tell GCC to use a convention compatible
-with it.
-
@cindex VAX calling convention
@cindex Ultrix calling convention
@item
@@ -395,42 +354,10 @@ these options to produce code compatible with the Fortran compiler:
@end smallexample
@item
-On the WE32k, you may find that programs compiled with GCC do not
-work with the standard shared C library. You may need to link with
-the ordinary C compiler. If you do so, you must specify the following
-options:
-
-@smallexample
--L/usr/local/lib/gcc-lib/we32k-att-sysv/2.8.1 -lgcc -lc_s
-@end smallexample
-
-The first specifies where to find the library @file{libgcc.a}
-specified with the @option{-lgcc} option.
-
-GCC does linking by invoking @command{ld}, just as @command{cc} does, and
-there is no reason why it @emph{should} matter which compilation program
-you use to invoke @command{ld}. If someone tracks this problem down,
-it can probably be fixed easily.
-
-@item
On the Alpha, you may get assembler errors about invalid syntax as a
result of floating point constants. This is due to a bug in the C
library functions @code{ecvt}, @code{fcvt} and @code{gcvt}. Given valid
floating point numbers, they sometimes print @samp{NaN}.
-
-@item
-On Irix 4.0.5F (and perhaps in some other versions), an assembler bug
-sometimes reorders instructions incorrectly when optimization is turned
-on. If you think this may be happening to you, try using the GNU
-assembler; GAS version 2.1 supports ECOFF on Irix.
-
-@opindex noasmopt
-Or use the @option{-noasmopt} option when you compile GCC with itself,
-and then again when you compile your program. (This is a temporary
-kludge to turn off assembler optimization on Irix.) If this proves to
-be what you need, edit the assembler spec in the file @file{specs} so
-that it unconditionally passes @option{-O0} to the assembler, and never
-passes @option{-O2} or @option{-O3}.
@end itemize
@node External Bugs
@@ -959,9 +886,9 @@ int Foo::bar = 0;
@end example
Other C++ compilers may not correctly implement the standard behavior.
-As a result, when you switch to @code{g++} from one of these compilers,
+As a result, when you switch to @command{g++} from one of these compilers,
you may discover that a program that appeared to work correctly in fact
-does not conform to the standard: @code{g++} reports as undefined
+does not conform to the standard: @command{g++} reports as undefined
symbols any static data members that lack definitions.
@node Temporaries
@@ -1016,7 +943,7 @@ forces it to remain until the end of the scope of the name. For
example:
@example
-string& tmp = strfunc ();
+const string& tmp = strfunc ();
charfunc (tmp.c_str ());
@end example
@@ -1066,7 +993,7 @@ inside @samp{func} in the example).
g++ implements the ``intuitive'' algorithm for copy-assignment: assign all
direct bases, then assign all members. In that algorithm, the virtual
-base subobject can be encountered many times. In the example, copying
+base subobject can be encountered more than once. In the example, copying
proceeds in the following order: @samp{val}, @samp{name} (via
@code{strdup}), @samp{bval}, and @samp{name} again.
diff --git a/gcc/doc/vms.texi b/gcc/doc/vms.texi
deleted file mode 100644
index 080d4522bed..00000000000
--- a/gcc/doc/vms.texi
+++ /dev/null
@@ -1,225 +0,0 @@
-@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
-@c This is part of the GCC manual.
-@c For copying conditions, see the file gcc.texi.
-
-@node VMS
-@chapter Using GCC on VMS
-
-@c prevent bad page break with this line
-Here is how to use GCC on VMS@.
-
-@menu
-* Global Declarations:: How to do globaldef, globalref and globalvalue with
- GCC.
-* VMS Misc:: Misc information.
-@end menu
-
-@node Global Declarations
-@section Global Declarations and VMS
-
-@findex GLOBALREF
-@findex GLOBALDEF
-@findex GLOBALVALUEDEF
-@findex GLOBALVALUEREF
-GCC does not provide the @code{globalref}, @code{globaldef} and
-@code{globalvalue} keywords of VAX-C@. You can get the same effect with
-an obscure feature of GAS, the GNU assembler. (This requires GAS
-version 1.39 or later.) The following macros allow you to use this
-feature in a fairly natural way:
-
-@smallexample
-#ifdef __GNUC__
-#define GLOBALREF(TYPE,NAME) \
- TYPE NAME \
- asm ("_$$PsectAttributes_GLOBALSYMBOL$$" #NAME)
-#define GLOBALDEF(TYPE,NAME,VALUE) \
- TYPE NAME \
- asm ("_$$PsectAttributes_GLOBALSYMBOL$$" #NAME) \
- = VALUE
-#define GLOBALVALUEREF(TYPE,NAME) \
- const TYPE NAME[1] \
- asm ("_$$PsectAttributes_GLOBALVALUE$$" #NAME)
-#define GLOBALVALUEDEF(TYPE,NAME,VALUE) \
- const TYPE NAME[1] \
- asm ("_$$PsectAttributes_GLOBALVALUE$$" #NAME) \
- = @{VALUE@}
-#else
-#define GLOBALREF(TYPE,NAME) \
- globalref TYPE NAME
-#define GLOBALDEF(TYPE,NAME,VALUE) \
- globaldef TYPE NAME = VALUE
-#define GLOBALVALUEDEF(TYPE,NAME,VALUE) \
- globalvalue TYPE NAME = VALUE
-#define GLOBALVALUEREF(TYPE,NAME) \
- globalvalue TYPE NAME
-#endif
-@end smallexample
-
-@noindent
-(The @code{_$$PsectAttributes_GLOBALSYMBOL} prefix at the start of the
-name is removed by the assembler, after it has modified the attributes
-of the symbol). These macros are provided in the VMS binaries
-distribution in a header file @file{GNU_HACKS.H}. An example of the
-usage is:
-
-@example
-GLOBALREF (int, ijk);
-GLOBALDEF (int, jkl, 0);
-@end example
-
-The macros @code{GLOBALREF} and @code{GLOBALDEF} cannot be used
-straightforwardly for arrays, since there is no way to insert the array
-dimension into the declaration at the right place. However, you can
-declare an array with these macros if you first define a typedef for the
-array type, like this:
-
-@example
-typedef int intvector[10];
-GLOBALREF (intvector, foo);
-@end example
-
-Array and structure initializers will also break the macros; you can
-define the initializer to be a macro of its own, or you can expand the
-@code{GLOBALDEF} macro by hand. You may find a case where you wish to
-use the @code{GLOBALDEF} macro with a large array, but you are not
-interested in explicitly initializing each element of the array. In
-such cases you can use an initializer like: @code{@{0,@}}, which will
-initialize the entire array to @code{0}.
-
-A shortcoming of this implementation is that a variable declared with
-@code{GLOBALVALUEREF} or @code{GLOBALVALUEDEF} is always an array. For
-example, the declaration:
-
-@example
-GLOBALVALUEREF(int, ijk);
-@end example
-
-@noindent
-declares the variable @code{ijk} as an array of type @code{int [1]}.
-This is done because a globalvalue is actually a constant; its ``value''
-is what the linker would normally consider an address. That is not how
-an integer value works in C, but it is how an array works. So treating
-the symbol as an array name gives consistent results---with the
-exception that the value seems to have the wrong type. @strong{Don't
-try to access an element of the array.} It doesn't have any elements.
-The array ``address'' may not be the address of actual storage.
-
-The fact that the symbol is an array may lead to warnings where the
-variable is used. Insert type casts to avoid the warnings. Here is an
-example; it takes advantage of the ISO C feature allowing macros that
-expand to use the same name as the macro itself.
-
-@example
-GLOBALVALUEREF (int, ss$_normal);
-GLOBALVALUEDEF (int, xyzzy,123);
-#ifdef __GNUC__
-#define ss$_normal ((int) ss$_normal)
-#define xyzzy ((int) xyzzy)
-#endif
-@end example
-
-Don't use @code{globaldef} or @code{globalref} with a variable whose
-type is an enumeration type; this is not implemented. Instead, make the
-variable an integer, and use a @code{globalvaluedef} for each of the
-enumeration values. An example of this would be:
-
-@example
-#ifdef __GNUC__
-GLOBALDEF (int, color, 0);
-GLOBALVALUEDEF (int, RED, 0);
-GLOBALVALUEDEF (int, BLUE, 1);
-GLOBALVALUEDEF (int, GREEN, 3);
-#else
-enum globaldef color @{RED, BLUE, GREEN = 3@};
-#endif
-@end example
-
-@node VMS Misc
-@section Other VMS Issues
-
-@cindex exit status and VMS
-@cindex return value of @code{main}
-@cindex @code{main} and the exit status
-GCC automatically arranges for @code{main} to return 1 by default if
-you fail to specify an explicit return value. This will be interpreted
-by VMS as a status code indicating a normal successful completion.
-Version 1 of GCC did not provide this default.
-
-GCC on VMS works only with the GNU assembler, GAS@. You need version
-1.37 or later of GAS in order to produce value debugging information for
-the VMS debugger. Use the ordinary VMS linker with the object files
-produced by GAS@.
-
-@cindex shared VMS run time system
-@cindex @file{VAXCRTL}
-Under previous versions of GCC, the generated code would occasionally
-give strange results when linked to the sharable @file{VAXCRTL} library.
-Now this should work.
-
-A caveat for use of @code{const} global variables: the @code{const}
-modifier must be specified in every external declaration of the variable
-in all of the source files that use that variable. Otherwise the linker
-will issue warnings about conflicting attributes for the variable. Your
-program will still work despite the warnings, but the variable will be
-placed in writable storage.
-
-@cindex name augmentation
-@cindex case sensitivity and VMS
-@cindex VMS and case sensitivity
-Although the VMS linker does distinguish between upper and lower case
-letters in global symbols, most VMS compilers convert all such symbols
-into upper case and most run-time library routines also have upper case
-names. To be able to reliably call such routines, GCC (by means of
-the assembler GAS) converts global symbols into upper case like other
-VMS compilers. However, since the usual practice in C is to distinguish
-case, GCC (via GAS) tries to preserve usual C behavior by augmenting
-each name that is not all lower case. This means truncating the name
-to at most 23 characters and then adding more characters at the end
-which encode the case pattern of those 23. Names which contain at
-least one dollar sign are an exception; they are converted directly into
-upper case without augmentation.
-
-Name augmentation yields bad results for programs that use precompiled
-libraries (such as Xlib) which were generated by another compiler. You
-can use the compiler option @samp{/NOCASE_HACK} to inhibit augmentation;
-it makes external C functions and variables case-independent as is usual
-on VMS@. Alternatively, you could write all references to the functions
-and variables in such libraries using lower case; this will work on VMS,
-but is not portable to other systems. The compiler option @samp{/NAMES}
-also provides control over global name handling.
-
-Function and variable names are handled somewhat differently with G++.
-The GNU C++ compiler performs @dfn{name mangling} on function
-names, which means that it adds information to the function name to
-describe the data types of the arguments that the function takes. One
-result of this is that the name of a function can become very long.
-Since the VMS linker only recognizes the first 31 characters in a name,
-special action is taken to ensure that each function and variable has a
-unique name that can be represented in 31 characters.
-
-If the name (plus a name augmentation, if required) is less than 32
-characters in length, then no special action is performed. If the name
-is longer than 31 characters, the assembler (GAS) will generate a
-hash string based upon the function name, truncate the function name to
-23 characters, and append the hash string to the truncated name. If the
-@samp{/VERBOSE} compiler option is used, the assembler will print both
-the full and truncated names of each symbol that is truncated.
-
-The @samp{/NOCASE_HACK} compiler option should not be used when you are
-compiling programs that use libg++. libg++ has several instances of
-objects (i.e. @code{Filebuf} and @code{filebuf}) which become
-indistinguishable in a case-insensitive environment. This leads to
-cases where you need to inhibit augmentation selectively (if you were
-using libg++ and Xlib in the same program, for example). There is no
-special feature for doing this, but you can get the result by defining a
-macro for each mixed case symbol for which you wish to inhibit
-augmentation. The macro should expand into the lower case equivalent of
-itself. For example:
-
-@example
-#define StuDlyCapS studlycaps
-@end example
-
-These macro definitions can be placed in a header file to minimize the
-number of changes to your source code.
diff --git a/gcc/dwarf2asm.h b/gcc/dwarf2asm.h
index 859883d45e3..8d6fd18bd89 100644
--- a/gcc/dwarf2asm.h
+++ b/gcc/dwarf2asm.h
@@ -19,60 +19,56 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
-/* ??? Format checking yields "null format string" warnings, which is
- the way these routines are signaled that there is no associated
- debug information. So the attributes are commented out. */
-
extern void dw2_assemble_integer PARAMS ((int, rtx));
extern void dw2_asm_output_data PARAMS ((int, unsigned HOST_WIDE_INT,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_delta PARAMS ((int, const char *,
const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_4 */;
+ ATTRIBUTE_NULL_PRINTF_4;
extern void dw2_asm_output_offset PARAMS ((int, const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_pcrel PARAMS ((int, const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_addr PARAMS ((int, const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_addr_rtx PARAMS ((int, rtx,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_encoded_addr_rtx PARAMS ((int, rtx,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_nstring PARAMS ((const char *, size_t,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_data_uleb128 PARAMS ((unsigned HOST_WIDE_INT,
const char *, ...))
- /* ATTRIBUTE_PRINTF_2 */;
+ ATTRIBUTE_NULL_PRINTF_2;
extern void dw2_asm_output_data_sleb128 PARAMS ((HOST_WIDE_INT,
const char *, ...))
- /* ATTRIBUTE_PRINTF_2 */;
+ ATTRIBUTE_NULL_PRINTF_2;
extern void dw2_asm_output_delta_uleb128 PARAMS ((const char *, const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern void dw2_asm_output_delta_sleb128 PARAMS ((const char *, const char *,
const char *, ...))
- /* ATTRIBUTE_PRINTF_3 */;
+ ATTRIBUTE_NULL_PRINTF_3;
extern int size_of_uleb128 PARAMS ((unsigned HOST_WIDE_INT));
extern int size_of_sleb128 PARAMS ((HOST_WIDE_INT));
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 2e8fe614188..afd02e27f84 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -1,6 +1,6 @@
/* Output Dwarf2 format symbol table information from the GNU C compiler.
- Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
- Free Software Foundation, Inc.
+ Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004 Free Software Foundation, Inc.
Contributed by Gary Funck (gary@intrepid.com).
Derived from DWARF 1 implementation of Ron Guilmette (rfg@monkeys.com).
Extensively modified by Jason Merrill (jason@cygnus.com).
@@ -386,9 +386,9 @@ static void def_cfa_1 PARAMS ((const char *,
/* Hook used by __throw. */
rtx
-expand_builtin_dwarf_fp_regnum ()
+expand_builtin_dwarf_sp_column ()
{
- return GEN_INT (DWARF_FRAME_REGNUM (HARD_FRAME_POINTER_REGNUM));
+ return GEN_INT (DWARF_FRAME_REGNUM (STACK_POINTER_REGNUM));
}
/* Return a pointer to a copy of the section string name S with all
@@ -432,6 +432,15 @@ expand_builtin_init_dwarf_reg_sizes (address)
emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size));
}
+
+#ifdef DWARF_ALT_FRAME_RETURN_COLUMN
+ {
+ enum machine_mode save_mode = Pmode;
+ HOST_WIDE_INT offset = DWARF_ALT_FRAME_RETURN_COLUMN * GET_MODE_SIZE (mode);
+ HOST_WIDE_INT size = GET_MODE_SIZE (save_mode);
+ emit_move_insn (adjust_address (mem, mode, offset), GEN_INT (size));
+ }
+#endif
}
/* Convert a DWARF call frame info. operation to its string name */
@@ -1812,7 +1821,7 @@ output_call_frame_info (for_eh)
dw_fde_ref fde;
dw_cfi_ref cfi;
char l1[20], l2[20], section_start_label[20];
- int any_lsda_needed = 0;
+ bool any_lsda_needed = false;
char augmentation[6];
int augmentation_size;
int fde_encoding = DW_EH_PE_absptr;
@@ -1823,17 +1832,19 @@ output_call_frame_info (for_eh)
if (fde_table_in_use == 0)
return;
- /* If we don't have any functions we'll want to unwind out of, don't emit any
- EH unwind information. */
+ /* If we don't have any functions we'll want to unwind out of, don't
+ emit any EH unwind information. Note that if exceptions aren't
+ enabled, we won't have collected nothrow information, and if we
+ asked for asynchronous tables, we always want this info. */
if (for_eh)
{
- int any_eh_needed = flag_asynchronous_unwind_tables;
+ bool any_eh_needed = !flag_exceptions || flag_asynchronous_unwind_tables;
for (i = 0; i < fde_table_in_use; i++)
if (fde_table[i].uses_eh_lsda)
- any_eh_needed = any_lsda_needed = 1;
+ any_eh_needed = any_lsda_needed = true;
else if (! fde_table[i].nothrow)
- any_eh_needed = 1;
+ any_eh_needed = true;
if (! any_eh_needed)
return;
@@ -1971,7 +1982,7 @@ output_call_frame_info (for_eh)
fde = &fde_table[i];
/* Don't emit EH unwind info for leaf functions that don't need it. */
- if (!flag_asynchronous_unwind_tables && for_eh
+ if (for_eh && !flag_asynchronous_unwind_tables && flag_exceptions
&& (fde->nothrow || fde->all_throwers_are_sibcalls)
&& !fde->uses_eh_lsda)
continue;
@@ -2222,7 +2233,7 @@ typedef enum
dw_val_class_const,
dw_val_class_unsigned_const,
dw_val_class_long_long,
- dw_val_class_float,
+ dw_val_class_vec,
dw_val_class_flag,
dw_val_class_die_ref,
dw_val_class_fde_ref,
@@ -2242,14 +2253,15 @@ typedef struct dw_long_long_struct
}
dw_long_long_const;
-/* Describe a floating point constant value. */
+/* Describe a floating point constant value, or a vector constant value. */
-typedef struct dw_fp_struct
+typedef struct dw_vec_struct
{
- long *array;
+ unsigned char *array;
unsigned length;
+ unsigned elt_size;
}
-dw_float_const;
+dw_vec_const;
/* The dw_val_node describes an attribute's value, as it is
represented internally. */
@@ -2266,7 +2278,7 @@ typedef struct dw_val_struct
long int val_int;
long unsigned val_unsigned;
dw_long_long_const val_long_long;
- dw_float_const val_float;
+ dw_vec_const val_vec;
struct
{
dw_die_ref die;
@@ -3512,9 +3524,10 @@ static void add_AT_long_long PARAMS ((dw_die_ref,
enum dwarf_attribute,
unsigned long,
unsigned long));
-static void add_AT_float PARAMS ((dw_die_ref,
+static void add_AT_vec PARAMS ((dw_die_ref,
enum dwarf_attribute,
- unsigned, long *));
+ unsigned int, unsigned int,
+ unsigned char *));
static void add_AT_string PARAMS ((dw_die_ref,
enum dwarf_attribute,
const char *));
@@ -3669,6 +3682,11 @@ static void add_const_value_attribute PARAMS ((dw_die_ref, rtx));
static rtx rtl_for_decl_location PARAMS ((tree));
static void add_location_or_const_value_attribute PARAMS ((dw_die_ref, tree));
static void tree_add_const_value_attribute PARAMS ((dw_die_ref, tree));
+static void insert_int PARAMS ((HOST_WIDE_INT,
+ unsigned, unsigned char *));
+static HOST_WIDE_INT extract_int PARAMS ((const unsigned char *,
+ unsigned));
+static void insert_float PARAMS ((rtx, unsigned char *));
static void add_name_attribute PARAMS ((dw_die_ref, const char *));
static void add_bound_info PARAMS ((dw_die_ref,
enum dwarf_attribute, tree));
@@ -3778,7 +3796,9 @@ static void mark_limbo_die_list PARAMS ((void *));
/* Section flags for .debug_str section. */
#ifdef HAVE_GAS_SHF_MERGE
#define DEBUG_STR_SECTION_FLAGS \
- (SECTION_DEBUG | SECTION_MERGE | SECTION_STRINGS | 1)
+ (flag_merge_constants \
+ ? SECTION_DEBUG | SECTION_MERGE | SECTION_STRINGS | 1 \
+ : SECTION_DEBUG)
#else
#define DEBUG_STR_SECTION_FLAGS SECTION_DEBUG
#endif
@@ -4516,19 +4536,21 @@ add_AT_long_long (die, attr_kind, val_hi, val_low)
/* Add a floating point attribute value to a DIE and return it. */
static inline void
-add_AT_float (die, attr_kind, length, array)
+add_AT_vec (die, attr_kind, length, elt_size, array)
dw_die_ref die;
enum dwarf_attribute attr_kind;
- unsigned length;
- long *array;
+ unsigned int length;
+ unsigned int elt_size;
+ unsigned char *array;
{
dw_attr_ref attr = (dw_attr_ref) xmalloc (sizeof (dw_attr_node));
attr->dw_attr_next = NULL;
attr->dw_attr = attr_kind;
- attr->dw_attr_val.val_class = dw_val_class_float;
- attr->dw_attr_val.v.val_float.length = length;
- attr->dw_attr_val.v.val_float.array = array;
+ attr->dw_attr_val.val_class = dw_val_class_vec;
+ attr->dw_attr_val.v.val_vec.length = length;
+ attr->dw_attr_val.v.val_vec.elt_size = elt_size;
+ attr->dw_attr_val.v.val_vec.array = array;
add_dwarf_attr (die, attr);
}
@@ -4990,8 +5012,8 @@ free_AT (a)
free (a->dw_attr_val.v.val_lbl_id);
break;
- case dw_val_class_float:
- free (a->dw_attr_val.v.val_float.array);
+ case dw_val_class_vec:
+ free (a->dw_attr_val.v.val_vec.array);
break;
default:
@@ -5274,8 +5296,8 @@ print_die (die, outfile)
a->dw_attr_val.v.val_long_long.hi,
a->dw_attr_val.v.val_long_long.low);
break;
- case dw_val_class_float:
- fprintf (outfile, "floating-point constant");
+ case dw_val_class_vec:
+ fprintf (outfile, "floating-point or vector constant");
break;
case dw_val_class_flag:
fprintf (outfile, "%u", AT_flag (a));
@@ -5485,8 +5507,8 @@ attr_checksum (at, ctx, mark)
case dw_val_class_long_long:
CHECKSUM (at->dw_attr_val.v.val_long_long);
break;
- case dw_val_class_float:
- CHECKSUM (at->dw_attr_val.v.val_float);
+ case dw_val_class_vec:
+ CHECKSUM (at->dw_attr_val.v.val_vec);
break;
case dw_val_class_flag:
CHECKSUM (at->dw_attr_val.v.val_flag);
@@ -5583,7 +5605,6 @@ same_dw_val_p (v1, v2, mark)
{
dw_loc_descr_ref loc1, loc2;
rtx r1, r2;
- unsigned i;
if (v1->val_class != v2->val_class)
return 0;
@@ -5597,12 +5618,13 @@ same_dw_val_p (v1, v2, mark)
case dw_val_class_long_long:
return v1->v.val_long_long.hi == v2->v.val_long_long.hi
&& v1->v.val_long_long.low == v2->v.val_long_long.low;
- case dw_val_class_float:
- if (v1->v.val_float.length != v2->v.val_float.length)
+ case dw_val_class_vec:
+ if (v1->v.val_vec.length != v2->v.val_vec.length
+ || v1->v.val_vec.elt_size != v2->v.val_vec.elt_size)
+ return 0;
+ if (memcmp (v1->v.val_vec.array, v2->v.val_vec.array,
+ v1->v.val_vec.length * v1->v.val_vec.elt_size))
return 0;
- for (i = 0; i < v1->v.val_float.length; i++)
- if (v1->v.val_float.array[i] != v2->v.val_float.array[i])
- return 0;
return 1;
case dw_val_class_flag:
return v1->v.val_flag == v2->v.val_flag;
@@ -6229,8 +6251,9 @@ size_of_die (die)
case dw_val_class_long_long:
size += 1 + 2*HOST_BITS_PER_LONG/HOST_BITS_PER_CHAR; /* block */
break;
- case dw_val_class_float:
- size += 1 + a->dw_attr_val.v.val_float.length * 4; /* block */
+ case dw_val_class_vec:
+ size += 1 + (a->dw_attr_val.v.val_vec.length
+ * a->dw_attr_val.v.val_vec.elt_size); /* block */
break;
case dw_val_class_flag:
size += 1;
@@ -6426,7 +6449,7 @@ value_format (a)
}
case dw_val_class_long_long:
return DW_FORM_block1;
- case dw_val_class_float:
+ case dw_val_class_vec:
return DW_FORM_block1;
case dw_val_class_flag:
return DW_FORM_flag;
@@ -6706,16 +6729,24 @@ output_die (die)
}
break;
- case dw_val_class_float:
+ case dw_val_class_vec:
{
+ unsigned int elt_size = a->dw_attr_val.v.val_vec.elt_size;
+ unsigned int len = a->dw_attr_val.v.val_vec.length;
unsigned int i;
+ unsigned char *p;
- dw2_asm_output_data (1, a->dw_attr_val.v.val_float.length * 4,
- "%s", name);
-
- for (i = 0; i < a->dw_attr_val.v.val_float.length; i++)
- dw2_asm_output_data (4, a->dw_attr_val.v.val_float.array[i],
- "fp constant word %u", i);
+ dw2_asm_output_data (1, len * elt_size, "%s", name);
+ if (elt_size > sizeof (HOST_WIDE_INT))
+ {
+ elt_size /= 2;
+ len *= 2;
+ }
+ for (i = 0, p = a->dw_attr_val.v.val_vec.array;
+ i < len;
+ i++, p += elt_size)
+ dw2_asm_output_data (elt_size, extract_int (p, elt_size),
+ "fp or vector constant word %u", i);
break;
}
@@ -8177,6 +8208,11 @@ mem_loc_descriptor (rtl, mode)
add_loc_descr (&mem_loc_result, new_loc_descr (DW_OP_deref, 0, 0));
break;
+ case LO_SUM:
+ rtl = XEXP (rtl, 1);
+
+ /* ... fall through ... */
+
case LABEL_REF:
/* Some ports can transform a symbol ref into a label ref, because
the symbol ref is too far away and has to be dumped into a constant
@@ -9040,6 +9076,81 @@ add_data_member_location_attribute (die, decl)
add_AT_loc (die, DW_AT_data_member_location, loc_descr);
}
+/* Writes integer values to dw_vec_const array. */
+
+static void
+insert_int (val, size, dest)
+ HOST_WIDE_INT val;
+ unsigned int size;
+ unsigned char *dest;
+{
+ while (size != 0)
+ {
+ *dest++ = val & 0xff;
+ val >>= 8;
+ --size;
+ }
+}
+
+/* Reads integers from dw_vec_const array. Inverse of insert_int. */
+
+static HOST_WIDE_INT
+extract_int (src, size)
+ const unsigned char *src;
+ unsigned int size;
+{
+ HOST_WIDE_INT val = 0;
+
+ src += size;
+ while (size != 0)
+ {
+ val <<= 8;
+ val |= *--src & 0xff;
+ --size;
+ }
+ return val;
+}
+
+/* Writes floating point values to dw_vec_const array. */
+
+static void
+insert_float (rtl, array)
+ rtx rtl;
+ unsigned char *array;
+{
+ REAL_VALUE_TYPE rv;
+ long val[4];
+ int i;
+
+ REAL_VALUE_FROM_CONST_DOUBLE (rv, rtl);
+ switch (GET_MODE (rtl))
+ {
+ case SFmode:
+ REAL_VALUE_TO_TARGET_SINGLE (rv, val[0]);
+ break;
+
+ case DFmode:
+ REAL_VALUE_TO_TARGET_DOUBLE (rv, val);
+ break;
+
+ case XFmode:
+ case TFmode:
+ REAL_VALUE_TO_TARGET_LONG_DOUBLE (rv, val);
+ break;
+
+ default:
+ abort ();
+ }
+
+ /* REAL_VALUE_TO_TARGET_* puts 32-bit pieces in each long.
+ Pack them. */
+ for (i = 0; i < GET_MODE_SIZE (GET_MODE (rtl)) / 4; i++)
+ {
+ insert_int (val[i], 4, array);
+ array += 4;
+ }
+}
+
/* Attach an DW_AT_const_value attribute for a variable or a parameter which
does not have a "location" either in memory or in a register. These
things can arise in GNU C when a constant is passed as an actual parameter
@@ -9089,31 +9200,11 @@ add_const_value_attribute (die, rtl)
if (GET_MODE_CLASS (mode) == MODE_FLOAT)
{
- unsigned length = GET_MODE_SIZE (mode) / 4;
- long *array = (long *) xmalloc (sizeof (long) * length);
- REAL_VALUE_TYPE rv;
-
- REAL_VALUE_FROM_CONST_DOUBLE (rv, rtl);
- switch (mode)
- {
- case SFmode:
- REAL_VALUE_TO_TARGET_SINGLE (rv, array[0]);
- break;
-
- case DFmode:
- REAL_VALUE_TO_TARGET_DOUBLE (rv, array);
- break;
+ unsigned int length = GET_MODE_SIZE (mode);
+ unsigned char *array = xmalloc (length);
- case XFmode:
- case TFmode:
- REAL_VALUE_TO_TARGET_LONG_DOUBLE (rv, array);
- break;
-
- default:
- abort ();
- }
-
- add_AT_float (die, DW_AT_const_value, length, array);
+ insert_float (rtl, array);
+ add_AT_vec (die, DW_AT_const_value, length / 4, 4, array);
}
else
{
@@ -9127,6 +9218,68 @@ add_const_value_attribute (die, rtl)
}
break;
+ case CONST_VECTOR:
+ {
+ enum machine_mode mode = GET_MODE (rtl);
+ unsigned int elt_size = GET_MODE_UNIT_SIZE (mode);
+ unsigned int length = CONST_VECTOR_NUNITS (rtl);
+ unsigned char *array = xmalloc (length * elt_size);
+ unsigned int i;
+ unsigned char *p;
+
+ if (GET_MODE_CLASS (mode) == MODE_VECTOR_INT)
+ {
+ for (i = 0, p = array; i < length; i++, p += elt_size)
+ {
+ rtx elt = CONST_VECTOR_ELT (rtl, i);
+ HOST_WIDE_INT lo, hi;
+ if (GET_CODE (elt) == CONST_INT)
+ {
+ lo = INTVAL (elt);
+ hi = -(lo < 0);
+ }
+ else if (GET_CODE (elt) == CONST_DOUBLE)
+ {
+ lo = CONST_DOUBLE_LOW (elt);
+ hi = CONST_DOUBLE_HIGH (elt);
+ }
+ else
+ abort ();
+
+ if (elt_size <= sizeof (HOST_WIDE_INT))
+ insert_int (lo, elt_size, p);
+ else if (elt_size == 2 * sizeof (HOST_WIDE_INT))
+ {
+ unsigned char *p0 = p;
+ unsigned char *p1 = p + sizeof (HOST_WIDE_INT);
+
+ if (WORDS_BIG_ENDIAN)
+ {
+ p0 = p1;
+ p1 = p;
+ }
+ insert_int (lo, sizeof (HOST_WIDE_INT), p0);
+ insert_int (hi, sizeof (HOST_WIDE_INT), p1);
+ }
+ else
+ abort ();
+ }
+ }
+ else if (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
+ {
+ for (i = 0, p = array; i < length; i++, p += elt_size)
+ {
+ rtx elt = CONST_VECTOR_ELT (rtl, i);
+ insert_float (elt, p);
+ }
+ }
+ else
+ abort ();
+
+ add_AT_vec (die, DW_AT_const_value, length, elt_size, array);
+ }
+ break;
+
case CONST_STRING:
add_AT_string (die, DW_AT_const_value, XSTR (rtl, 0));
break;
@@ -9242,13 +9395,17 @@ rtl_for_decl_location (decl)
rtl = DECL_RTL_IF_SET (decl);
/* When generating abstract instances, ignore everything except
- constants and symbols living in memory. */
+ constants, symbols living in memory, and symbols living in
+ fixed registers. */
if (! reload_completed)
{
if (rtl
&& (CONSTANT_P (rtl)
|| (GET_CODE (rtl) == MEM
- && CONSTANT_P (XEXP (rtl, 0)))))
+ && CONSTANT_P (XEXP (rtl, 0)))
+ || (GET_CODE (rtl) == REG
+ && TREE_CODE (decl) == VAR_DECL
+ && TREE_STATIC (decl))))
{
#ifdef ASM_SIMPLIFY_DWARF_ADDR
rtl = ASM_SIMPLIFY_DWARF_ADDR (rtl);
@@ -9409,6 +9566,7 @@ add_location_or_const_value_attribute (die, decl)
case CONST_INT:
case CONST_DOUBLE:
+ case CONST_VECTOR:
case CONST_STRING:
case SYMBOL_REF:
case LABEL_REF:
@@ -10368,19 +10526,20 @@ gen_enumeration_type_die (type, context_die)
link != NULL; link = TREE_CHAIN (link))
{
dw_die_ref enum_die = new_die (DW_TAG_enumerator, type_die, link);
+ tree value = TREE_VALUE (link);
add_name_attribute (enum_die,
IDENTIFIER_POINTER (TREE_PURPOSE (link)));
- if (host_integerp (TREE_VALUE (link), 0))
- {
- if (tree_int_cst_sgn (TREE_VALUE (link)) < 0)
- add_AT_int (enum_die, DW_AT_const_value,
- tree_low_cst (TREE_VALUE (link), 0));
- else
- add_AT_unsigned (enum_die, DW_AT_const_value,
- tree_low_cst (TREE_VALUE (link), 0));
- }
+ if (host_integerp (value, TREE_UNSIGNED (TREE_TYPE (value))))
+ /* DWARF2 does not provide a way of indicating whether or
+ not enumeration constants are signed or unsigned. GDB
+ always assumes the values are signed, so we output all
+ values as if they were signed. That means that
+ enumeration constants with very large unsigned values
+ will appear to have negative values in the debugger. */
+ add_AT_int (enum_die, DW_AT_const_value,
+ tree_low_cst (value, tree_int_cst_sgn (value) > 0));
}
}
else
@@ -11039,16 +11198,20 @@ gen_inlined_subroutine_die (stmt, context_die, depth)
dw_die_ref context_die;
int depth;
{
+ tree decl = block_ultimate_origin (stmt);
+
+ /* Emit info for the abstract instance first, if we haven't yet. We
+ must emit this even if the block is abstract, otherwise when we
+ emit the block below (or elsewhere), we may end up trying to emit
+ a die whose origin die hasn't been emitted, and crashing. */
+ dwarf2out_abstract_function (decl);
+
if (! BLOCK_ABSTRACT (stmt))
{
dw_die_ref subr_die
= new_die (DW_TAG_inlined_subroutine, context_die, stmt);
- tree decl = block_ultimate_origin (stmt);
char label[MAX_ARTIFICIAL_LABEL_BYTES];
- /* Emit info for the abstract instance first, if we haven't yet. */
- dwarf2out_abstract_function (decl);
-
add_abstract_origin_attribute (subr_die, decl);
ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_BEGIN_LABEL,
BLOCK_NUMBER (stmt));
@@ -11082,8 +11245,12 @@ gen_field_die (decl, context_die)
tree decl;
dw_die_ref context_die;
{
- dw_die_ref decl_die = new_die (DW_TAG_member, context_die, decl);
+ dw_die_ref decl_die;
+ if (TREE_TYPE (decl) == error_mark_node)
+ return;
+
+ decl_die = new_die (DW_TAG_member, context_die, decl);
add_name_and_src_coords_attributes (decl_die, decl);
add_type_attribute (decl_die, member_declared_type (decl),
TREE_READONLY (decl), TREE_THIS_VOLATILE (decl),
@@ -11473,20 +11640,12 @@ gen_type_die (type, context_die)
if (type == NULL_TREE || type == error_mark_node)
return;
- /* We are going to output a DIE to represent the unqualified version
- of this type (i.e. without any const or volatile qualifiers) so
- get the main variant (i.e. the unqualified version) of this type
- now. (Vectors are special because the debugging info is in the
- cloned type itself). */
- if (TREE_CODE (type) != VECTOR_TYPE)
- type = type_main_variant (type);
-
- if (TREE_ASM_WRITTEN (type))
- return;
-
if (TYPE_NAME (type) && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
&& DECL_ORIGINAL_TYPE (TYPE_NAME (type)))
{
+ if (TREE_ASM_WRITTEN (type))
+ return;
+
/* Prevent broken recursion; we can't hand off to the same type. */
if (DECL_ORIGINAL_TYPE (TYPE_NAME (type)) == type)
abort ();
@@ -11496,6 +11655,17 @@ gen_type_die (type, context_die)
return;
}
+ /* We are going to output a DIE to represent the unqualified version
+ of this type (i.e. without any const or volatile qualifiers) so
+ get the main variant (i.e. the unqualified version) of this type
+ now. (Vectors are special because the debugging info is in the
+ cloned type itself). */
+ if (TREE_CODE (type) != VECTOR_TYPE)
+ type = type_main_variant (type);
+
+ if (TREE_ASM_WRITTEN (type))
+ return;
+
switch (TREE_CODE (type))
{
case ERROR_MARK:
@@ -11799,6 +11969,10 @@ decls_for_scope (stmt, context_die, depth)
gen_decl_die (decl, context_die);
}
+ /* If we're at -g1, we're not interested in subblocks. */
+ if (debug_info_level <= DINFO_LEVEL_TERSE)
+ return;
+
/* Output the DIEs to represent all sub-blocks (and the items declared
therein) of this block. */
for (subblocks = BLOCK_SUBBLOCKS (stmt);
@@ -12076,7 +12250,9 @@ dwarf2out_decl (decl)
/* If we're a nested function, initially use a parent of NULL; if we're
a plain function, this will be fixed up in decls_for_scope. If
we're a method, it will be ignored, since we already have a DIE. */
- if (decl_function_context (decl))
+ if (decl_function_context (decl)
+ /* But if we're in terse mode, we don't care about scope. */
+ && debug_info_level > DINFO_LEVEL_TERSE)
context_die = NULL;
break;
@@ -12559,6 +12735,22 @@ dwarf2out_finish (input_filename)
limbo_die_node *node, *next_node;
dw_die_ref die = 0;
+ if (get_AT (comp_unit_die, DW_AT_comp_dir) == NULL)
+ {
+ char *wd = getpwd ();
+ unsigned i;
+
+ if (wd != NULL)
+ {
+ for (i = 1; i < file_table.in_use; i++)
+ if (file_table.table[i][0] != DIR_SEPARATOR)
+ {
+ add_AT_string (comp_unit_die, DW_AT_comp_dir, wd);
+ break;
+ }
+ }
+ }
+
/* Traverse the limbo die list, and add parent/child links. The only
dies without parents that should be here are concrete instances of
inline functions, and the comp_unit_die. We can ignore the comp_unit_die.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 0d9be17fe94..b674ac2eee7 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -190,6 +190,7 @@ static mem_attrs *get_mem_attrs PARAMS ((HOST_WIDE_INT, tree, rtx,
enum machine_mode));
static tree component_ref_for_mem_expr PARAMS ((tree));
static rtx gen_const_vector_0 PARAMS ((enum machine_mode));
+static void copy_rtx_if_shared_1 PARAMS ((rtx *orig));
/* Probability of the conditional branch currently proceeded by try_split.
Set to -1 otherwise. */
@@ -296,13 +297,14 @@ get_mem_attrs (alias, expr, offset, size, align, mode)
mem_attrs attrs;
void **slot;
- /* If everything is the default, we can just return zero. */
+ /* If everything is the default, we can just return zero.
+ This must match what the corresponding MEM_* macros return when the
+ field is not present. */
if (alias == 0 && expr == 0 && offset == 0
&& (size == 0
|| (mode != BLKmode && GET_MODE_SIZE (mode) == INTVAL (size)))
- && (align == BITS_PER_UNIT
- || (STRICT_ALIGNMENT
- && mode != BLKmode && align == GET_MODE_ALIGNMENT (mode))))
+ && (STRICT_ALIGNMENT && mode != BLKmode
+ ? align == GET_MODE_ALIGNMENT (mode) : align == BITS_PER_UNIT))
return 0;
attrs.alias = alias;
@@ -925,7 +927,11 @@ subreg_hard_regno (x, check_mode)
abort ();
if (check_mode && ! HARD_REGNO_MODE_OK (base_regno, GET_MODE (reg)))
abort ();
-
+#ifdef ENABLE_CHECKING
+ if (!subreg_offset_representable_p (REGNO (reg), GET_MODE (reg),
+ SUBREG_BYTE (x), mode))
+ abort ();
+#endif
/* Catch non-congruent offsets too. */
byte_offset = SUBREG_BYTE (x);
if ((byte_offset % GET_MODE_SIZE (mode)) != 0)
@@ -1800,11 +1806,14 @@ set_mem_attributes_minus_bitpos (ref, t, objectp, bitpos)
else if (TREE_CODE (t) == ARRAY_REF)
{
tree off_tree = size_zero_node;
+ /* We can't modify t, because we use it at the end of the
+ function. */
+ tree t2 = t;
do
{
- tree index = TREE_OPERAND (t, 1);
- tree array = TREE_OPERAND (t, 0);
+ tree index = TREE_OPERAND (t2, 1);
+ tree array = TREE_OPERAND (t2, 0);
tree domain = TYPE_DOMAIN (TREE_TYPE (array));
tree low_bound = (domain ? TYPE_MIN_VALUE (domain) : 0);
tree unit_size = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (array)));
@@ -1822,7 +1831,7 @@ set_mem_attributes_minus_bitpos (ref, t, objectp, bitpos)
component to one. */
if (! TREE_CONSTANT (index)
&& contains_placeholder_p (index))
- index = build (WITH_RECORD_EXPR, TREE_TYPE (index), index, t);
+ index = build (WITH_RECORD_EXPR, TREE_TYPE (index), index, t2);
if (! TREE_CONSTANT (unit_size)
&& contains_placeholder_p (unit_size))
unit_size = build (WITH_RECORD_EXPR, sizetype,
@@ -1834,28 +1843,28 @@ set_mem_attributes_minus_bitpos (ref, t, objectp, bitpos)
index,
unit_size)),
off_tree));
- t = TREE_OPERAND (t, 0);
+ t2 = TREE_OPERAND (t2, 0);
}
- while (TREE_CODE (t) == ARRAY_REF);
+ while (TREE_CODE (t2) == ARRAY_REF);
- if (DECL_P (t))
+ if (DECL_P (t2))
{
- expr = t;
+ expr = t2;
offset = NULL;
if (host_integerp (off_tree, 1))
{
HOST_WIDE_INT ioff = tree_low_cst (off_tree, 1);
HOST_WIDE_INT aoff = (ioff & -ioff) * BITS_PER_UNIT;
- align = DECL_ALIGN (t);
+ align = DECL_ALIGN (t2);
if (aoff && aoff < align)
align = aoff;
offset = GEN_INT (ioff);
apply_bitpos = bitpos;
}
}
- else if (TREE_CODE (t) == COMPONENT_REF)
+ else if (TREE_CODE (t2) == COMPONENT_REF)
{
- expr = component_ref_for_mem_expr (t);
+ expr = component_ref_for_mem_expr (t2);
if (host_integerp (off_tree, 1))
{
offset = GEN_INT (tree_low_cst (off_tree, 1));
@@ -1865,10 +1874,10 @@ set_mem_attributes_minus_bitpos (ref, t, objectp, bitpos)
the size we got from the type? */
}
else if (flag_argument_noalias > 1
- && TREE_CODE (t) == INDIRECT_REF
- && TREE_CODE (TREE_OPERAND (t, 0)) == PARM_DECL)
+ && TREE_CODE (t2) == INDIRECT_REF
+ && TREE_CODE (TREE_OPERAND (t2, 0)) == PARM_DECL)
{
- expr = t;
+ expr = t2;
offset = NULL;
}
}
@@ -2565,14 +2574,28 @@ rtx
copy_rtx_if_shared (orig)
rtx orig;
{
- rtx x = orig;
+ copy_rtx_if_shared_1 (&orig);
+ return orig;
+}
+
+static void
+copy_rtx_if_shared_1 (orig1)
+ rtx *orig1;
+{
+ rtx x;
int i;
enum rtx_code code;
+ rtx *last_ptr;
const char *format_ptr;
int copied = 0;
+ int length;
+
+ /* Repeat is used to turn tail-recursion into iteration. */
+repeat:
+ x = *orig1;
if (x == 0)
- return 0;
+ return;
code = GET_CODE (x);
@@ -2591,7 +2614,7 @@ copy_rtx_if_shared (orig)
case CC0:
case SCRATCH:
/* SCRATCH must be shared because they represent distinct values. */
- return x;
+ return;
case CONST:
/* CONST can be shared if it contains a SYMBOL_REF. If it contains
@@ -2599,7 +2622,7 @@ copy_rtx_if_shared (orig)
if (GET_CODE (XEXP (x, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF
&& GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT)
- return x;
+ return;
break;
case INSN:
@@ -2608,7 +2631,7 @@ copy_rtx_if_shared (orig)
case NOTE:
case BARRIER:
/* The chain of insns is not being copied. */
- return x;
+ return;
case MEM:
/* A MEM is allowed to be shared if its address is constant.
@@ -2620,7 +2643,7 @@ copy_rtx_if_shared (orig)
because it looks safe and profitable in one context, but
in some other context it creates unrecognizable RTL. */
if (CONSTANT_ADDRESS_P (XEXP (x, 0)))
- return x;
+ return;
break;
@@ -2650,13 +2673,17 @@ copy_rtx_if_shared (orig)
must be copied if X was copied. */
format_ptr = GET_RTX_FORMAT (code);
-
- for (i = 0; i < GET_RTX_LENGTH (code); i++)
+ length = GET_RTX_LENGTH (code);
+ last_ptr = NULL;
+
+ for (i = 0; i < length; i++)
{
switch (*format_ptr++)
{
case 'e':
- XEXP (x, i) = copy_rtx_if_shared (XEXP (x, i));
+ if (last_ptr)
+ copy_rtx_if_shared_1 (last_ptr);
+ last_ptr = &XEXP (x, i);
break;
case 'E':
@@ -2664,16 +2691,29 @@ copy_rtx_if_shared (orig)
{
int j;
int len = XVECLEN (x, i);
-
+
+ /* Copy the vector iff I copied the rtx and the length is nonzero. */
if (copied && len > 0)
XVEC (x, i) = gen_rtvec_v (len, XVEC (x, i)->elem);
+
+ /* Call recsusively on all inside the vector. */
for (j = 0; j < len; j++)
- XVECEXP (x, i, j) = copy_rtx_if_shared (XVECEXP (x, i, j));
+ {
+ if (last_ptr)
+ copy_rtx_if_shared_1 (last_ptr);
+ last_ptr = &XVECEXP (x, i, j);
+ }
}
break;
}
}
- return x;
+ *orig1 = x;
+ if (last_ptr)
+ {
+ orig1 = last_ptr;
+ goto repeat;
+ }
+ return;
}
/* Clear all the USED bits in X to allow copy_rtx_if_shared to be used
@@ -2686,7 +2726,10 @@ reset_used_flags (x)
int i, j;
enum rtx_code code;
const char *format_ptr;
+ int length;
+ /* Repeat is used to turn tail-recursion into iteration. */
+repeat:
if (x == 0)
return;
@@ -2724,11 +2767,18 @@ reset_used_flags (x)
RTX_FLAG (x, used) = 0;
format_ptr = GET_RTX_FORMAT (code);
- for (i = 0; i < GET_RTX_LENGTH (code); i++)
+ length = GET_RTX_LENGTH (code);
+
+ for (i = 0; i < length; i++)
{
switch (*format_ptr++)
{
case 'e':
+ if (i == length-1)
+ {
+ x = XEXP (x, i);
+ goto repeat;
+ }
reset_used_flags (XEXP (x, i));
break;
@@ -2840,11 +2890,19 @@ get_first_nonnote_insn ()
{
rtx insn = first_insn;
- while (insn)
+ if (insn)
{
- insn = next_insn (insn);
- if (insn == 0 || GET_CODE (insn) != NOTE)
- break;
+ if (NOTE_P (insn))
+ for (insn = next_insn (insn);
+ insn && NOTE_P (insn);
+ insn = next_insn (insn))
+ continue;
+ else
+ {
+ if (GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SEQUENCE)
+ insn = XVECEXP (PATTERN (insn), 0, 0);
+ }
}
return insn;
@@ -2858,11 +2916,20 @@ get_last_nonnote_insn ()
{
rtx insn = last_insn;
- while (insn)
+ if (insn)
{
- insn = previous_insn (insn);
- if (insn == 0 || GET_CODE (insn) != NOTE)
- break;
+ if (NOTE_P (insn))
+ for (insn = previous_insn (insn);
+ insn && NOTE_P (insn);
+ insn = previous_insn (insn))
+ continue;
+ else
+ {
+ if (GET_CODE (insn) == INSN
+ && GET_CODE (PATTERN (insn)) == SEQUENCE)
+ insn = XVECEXP (PATTERN (insn), 0,
+ XVECLEN (PATTERN (insn), 0) - 1);
+ }
}
return insn;
@@ -3203,6 +3270,8 @@ try_split (pat, trial, last)
rtx tem;
rtx note, seq;
int probability;
+ rtx insn_last, insn;
+ int njumps = 0;
if (any_condjump_p (trial)
&& (note = find_reg_note (trial, REG_BR_PROB, 0)))
@@ -3221,172 +3290,147 @@ try_split (pat, trial, last)
after = NEXT_INSN (after);
}
- if (seq)
+ if (!seq)
+ return trial;
+
+ /* Avoid infinite loop if any insn of the result matches
+ the original pattern. */
+ insn_last = seq;
+ while (1)
{
- /* Sometimes there will be only one insn in that list, this case will
- normally arise only when we want it in turn to be split (SFmode on
- the 29k is an example). */
- if (NEXT_INSN (seq) != NULL_RTX)
- {
- rtx insn_last, insn;
- int njumps = 0;
+ if (INSN_P (insn_last)
+ && rtx_equal_p (PATTERN (insn_last), pat))
+ return trial;
+ if (!NEXT_INSN (insn_last))
+ break;
+ insn_last = NEXT_INSN (insn_last);
+ }
- /* Avoid infinite loop if any insn of the result matches
- the original pattern. */
- insn_last = seq;
- while (1)
+ /* Mark labels. */
+ for (insn = insn_last; insn ; insn = PREV_INSN (insn))
+ {
+ if (GET_CODE (insn) == JUMP_INSN)
+ {
+ mark_jump_label (PATTERN (insn), insn, 0);
+ njumps++;
+ if (probability != -1
+ && any_condjump_p (insn)
+ && !find_reg_note (insn, REG_BR_PROB, 0))
{
- if (INSN_P (insn_last)
- && rtx_equal_p (PATTERN (insn_last), pat))
- return trial;
- if (NEXT_INSN (insn_last) == NULL_RTX)
- break;
- insn_last = NEXT_INSN (insn_last);
+ /* We can preserve the REG_BR_PROB notes only if exactly
+ one jump is created, otherwise the machine description
+ is responsible for this step using
+ split_branch_probability variable. */
+ if (njumps != 1)
+ abort ();
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_BR_PROB,
+ GEN_INT (probability),
+ REG_NOTES (insn));
}
+ }
+ }
- /* Mark labels. */
+ /* If we are splitting a CALL_INSN, look for the CALL_INSN
+ in SEQ and copy our CALL_INSN_FUNCTION_USAGE to it. */
+ if (GET_CODE (trial) == CALL_INSN)
+ {
+ for (insn = insn_last; insn ; insn = PREV_INSN (insn))
+ if (GET_CODE (insn) == CALL_INSN)
+ {
+ CALL_INSN_FUNCTION_USAGE (insn)
+ = CALL_INSN_FUNCTION_USAGE (trial);
+ SIBLING_CALL_P (insn) = SIBLING_CALL_P (trial);
+ }
+ }
+
+ /* Copy notes, particularly those related to the CFG. */
+ for (note = REG_NOTES (trial); note; note = XEXP (note, 1))
+ {
+ switch (REG_NOTE_KIND (note))
+ {
+ case REG_EH_REGION:
insn = insn_last;
while (insn != NULL_RTX)
{
- if (GET_CODE (insn) == JUMP_INSN)
- {
- mark_jump_label (PATTERN (insn), insn, 0);
- njumps++;
- if (probability != -1
- && any_condjump_p (insn)
- && !find_reg_note (insn, REG_BR_PROB, 0))
- {
- /* We can preserve the REG_BR_PROB notes only if exactly
- one jump is created, otherwise the machine description
- is responsible for this step using
- split_branch_probability variable. */
- if (njumps != 1)
- abort ();
- REG_NOTES (insn)
- = gen_rtx_EXPR_LIST (REG_BR_PROB,
- GEN_INT (probability),
- REG_NOTES (insn));
- }
- }
-
+ if (GET_CODE (insn) == CALL_INSN
+ || (flag_non_call_exceptions
+ && may_trap_p (PATTERN (insn))))
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_EH_REGION,
+ XEXP (note, 0),
+ REG_NOTES (insn));
insn = PREV_INSN (insn);
}
+ break;
- /* If we are splitting a CALL_INSN, look for the CALL_INSN
- in SEQ and copy our CALL_INSN_FUNCTION_USAGE to it. */
- if (GET_CODE (trial) == CALL_INSN)
- {
- insn = insn_last;
- while (insn != NULL_RTX)
- {
- if (GET_CODE (insn) == CALL_INSN)
- CALL_INSN_FUNCTION_USAGE (insn)
- = CALL_INSN_FUNCTION_USAGE (trial);
-
- insn = PREV_INSN (insn);
- }
- }
-
- /* Copy notes, particularly those related to the CFG. */
- for (note = REG_NOTES (trial); note; note = XEXP (note, 1))
+ case REG_NORETURN:
+ case REG_SETJMP:
+ case REG_ALWAYS_RETURN:
+ insn = insn_last;
+ while (insn != NULL_RTX)
{
- switch (REG_NOTE_KIND (note))
- {
- case REG_EH_REGION:
- insn = insn_last;
- while (insn != NULL_RTX)
- {
- if (GET_CODE (insn) == CALL_INSN
- || (flag_non_call_exceptions
- && may_trap_p (PATTERN (insn))))
- REG_NOTES (insn)
- = gen_rtx_EXPR_LIST (REG_EH_REGION,
- XEXP (note, 0),
- REG_NOTES (insn));
- insn = PREV_INSN (insn);
- }
- break;
-
- case REG_NORETURN:
- case REG_SETJMP:
- case REG_ALWAYS_RETURN:
- insn = insn_last;
- while (insn != NULL_RTX)
- {
- if (GET_CODE (insn) == CALL_INSN)
- REG_NOTES (insn)
- = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
- XEXP (note, 0),
- REG_NOTES (insn));
- insn = PREV_INSN (insn);
- }
- break;
-
- case REG_NON_LOCAL_GOTO:
- insn = insn_last;
- while (insn != NULL_RTX)
- {
- if (GET_CODE (insn) == JUMP_INSN)
- REG_NOTES (insn)
- = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
- XEXP (note, 0),
- REG_NOTES (insn));
- insn = PREV_INSN (insn);
- }
- break;
-
- default:
- break;
- }
+ if (GET_CODE (insn) == CALL_INSN)
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
+ XEXP (note, 0),
+ REG_NOTES (insn));
+ insn = PREV_INSN (insn);
}
+ break;
- /* If there are LABELS inside the split insns increment the
- usage count so we don't delete the label. */
- if (GET_CODE (trial) == INSN)
+ case REG_NON_LOCAL_GOTO:
+ insn = insn_last;
+ while (insn != NULL_RTX)
{
- insn = insn_last;
- while (insn != NULL_RTX)
- {
- if (GET_CODE (insn) == INSN)
- mark_label_nuses (PATTERN (insn));
-
- insn = PREV_INSN (insn);
- }
+ if (GET_CODE (insn) == JUMP_INSN)
+ REG_NOTES (insn)
+ = gen_rtx_EXPR_LIST (REG_NOTE_KIND (note),
+ XEXP (note, 0),
+ REG_NOTES (insn));
+ insn = PREV_INSN (insn);
}
+ break;
- tem = emit_insn_after_scope (seq, trial, INSN_SCOPE (trial));
-
- delete_insn (trial);
- if (has_barrier)
- emit_barrier_after (tem);
-
- /* Recursively call try_split for each new insn created; by the
- time control returns here that insn will be fully split, so
- set LAST and continue from the insn after the one returned.
- We can't use next_active_insn here since AFTER may be a note.
- Ignore deleted insns, which can be occur if not optimizing. */
- for (tem = NEXT_INSN (before); tem != after; tem = NEXT_INSN (tem))
- if (! INSN_DELETED_P (tem) && INSN_P (tem))
- tem = try_split (PATTERN (tem), tem, 1);
+ default:
+ break;
}
- /* Avoid infinite loop if the result matches the original pattern. */
- else if (rtx_equal_p (PATTERN (seq), pat))
- return trial;
- else
+ }
+
+ /* If there are LABELS inside the split insns increment the
+ usage count so we don't delete the label. */
+ if (GET_CODE (trial) == INSN)
+ {
+ insn = insn_last;
+ while (insn != NULL_RTX)
{
- PATTERN (trial) = PATTERN (seq);
- INSN_CODE (trial) = -1;
- try_split (PATTERN (trial), trial, last);
- }
+ if (GET_CODE (insn) == INSN)
+ mark_label_nuses (PATTERN (insn));
- /* Return either the first or the last insn, depending on which was
- requested. */
- return last
- ? (after ? PREV_INSN (after) : last_insn)
- : NEXT_INSN (before);
+ insn = PREV_INSN (insn);
+ }
}
- return trial;
+ tem = emit_insn_after_scope (seq, trial, INSN_SCOPE (trial));
+
+ delete_insn (trial);
+ if (has_barrier)
+ emit_barrier_after (tem);
+
+ /* Recursively call try_split for each new insn created; by the
+ time control returns here that insn will be fully split, so
+ set LAST and continue from the insn after the one returned.
+ We can't use next_active_insn here since AFTER may be a note.
+ Ignore deleted insns, which can be occur if not optimizing. */
+ for (tem = NEXT_INSN (before); tem != after; tem = NEXT_INSN (tem))
+ if (! INSN_DELETED_P (tem) && INSN_P (tem))
+ tem = try_split (PATTERN (tem), tem, 1);
+
+ /* Return either the first or the last insn, depending on which was
+ requested. */
+ return last
+ ? (after ? PREV_INSN (after) : last_insn)
+ : NEXT_INSN (before);
}
/* Make and return an INSN rtx, initializing all its slots.
diff --git a/gcc/except.c b/gcc/except.c
index c455d5208e3..b3093ce50ad 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -74,12 +74,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
/* Provide defaults for stuff that may not be defined when using
sjlj exceptions. */
-#ifndef EH_RETURN_STACKADJ_RTX
-#define EH_RETURN_STACKADJ_RTX 0
-#endif
-#ifndef EH_RETURN_HANDLER_RTX
-#define EH_RETURN_HANDLER_RTX 0
-#endif
#ifndef EH_RETURN_DATA_REGNO
#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
#endif
@@ -184,6 +178,7 @@ struct eh_region GTY(())
we can match up fixup regions. */
struct eh_region_u_cleanup {
tree exp;
+ struct eh_region *prev_try;
} GTY ((tag ("ERT_CLEANUP"))) cleanup;
/* The real region (by expression and by pointer) that fixup code
@@ -206,6 +201,9 @@ struct eh_region GTY(())
/* The RESX insn for handing off control to the next outermost handler,
if appropriate. */
rtx resume;
+
+ /* True if something in this region may throw. */
+ unsigned may_contain_throw : 1;
};
struct call_site_record GTY(())
@@ -551,39 +549,43 @@ expand_eh_region_end_cleanup (handler)
region->type = ERT_CLEANUP;
region->label = gen_label_rtx ();
region->u.cleanup.exp = handler;
+ region->u.cleanup.prev_try = cfun->eh->try_region;
around_label = gen_label_rtx ();
emit_jump (around_label);
emit_label (region->label);
- /* Give the language a chance to specify an action to be taken if an
- exception is thrown that would propagate out of the HANDLER. */
- protect_cleanup_actions
- = (lang_protect_cleanup_actions
- ? (*lang_protect_cleanup_actions) ()
- : NULL_TREE);
+ if (flag_non_call_exceptions || region->may_contain_throw)
+ {
+ /* Give the language a chance to specify an action to be taken if an
+ exception is thrown that would propagate out of the HANDLER. */
+ protect_cleanup_actions
+ = (lang_protect_cleanup_actions
+ ? (*lang_protect_cleanup_actions) ()
+ : NULL_TREE);
- if (protect_cleanup_actions)
- expand_eh_region_start ();
+ if (protect_cleanup_actions)
+ expand_eh_region_start ();
- /* In case this cleanup involves an inline destructor with a try block in
- it, we need to save the EH return data registers around it. */
- data_save[0] = gen_reg_rtx (ptr_mode);
- emit_move_insn (data_save[0], get_exception_pointer (cfun));
- data_save[1] = gen_reg_rtx (word_mode);
- emit_move_insn (data_save[1], get_exception_filter (cfun));
+ /* In case this cleanup involves an inline destructor with a try block in
+ it, we need to save the EH return data registers around it. */
+ data_save[0] = gen_reg_rtx (ptr_mode);
+ emit_move_insn (data_save[0], get_exception_pointer (cfun));
+ data_save[1] = gen_reg_rtx (word_mode);
+ emit_move_insn (data_save[1], get_exception_filter (cfun));
- expand_expr (handler, const0_rtx, VOIDmode, 0);
+ expand_expr (handler, const0_rtx, VOIDmode, 0);
- emit_move_insn (cfun->eh->exc_ptr, data_save[0]);
- emit_move_insn (cfun->eh->filter, data_save[1]);
+ emit_move_insn (cfun->eh->exc_ptr, data_save[0]);
+ emit_move_insn (cfun->eh->filter, data_save[1]);
- if (protect_cleanup_actions)
- expand_eh_region_end_must_not_throw (protect_cleanup_actions);
+ if (protect_cleanup_actions)
+ expand_eh_region_end_must_not_throw (protect_cleanup_actions);
- /* We need any stack adjustment complete before the around_label. */
- do_pending_stack_adjust ();
+ /* We need any stack adjustment complete before the around_label. */
+ do_pending_stack_adjust ();
+ }
/* We delay the generation of the _Unwind_Resume until we generate
landing pads. We emit a marker here so as to get good control
@@ -819,6 +821,22 @@ expand_eh_region_end_fixup (handler)
fixup->u.fixup.cleanup_exp = handler;
}
+/* Note that the current EH region (if any) may contain a throw, or a
+ call to a function which itself may contain a throw. */
+
+void
+note_eh_region_may_contain_throw ()
+{
+ struct eh_region *region;
+
+ region = cfun->eh->cur_region;
+ while (region && !region->may_contain_throw)
+ {
+ region->may_contain_throw = 1;
+ region = region->outer;
+ }
+}
+
/* Return an rtl expression for a pointer to the exception object
within a handler. */
@@ -1679,7 +1697,6 @@ build_post_landing_pads ()
struct eh_region *c;
for (c = region->u.try.catch; c ; c = c->u.catch.next_catch)
{
- /* ??? _Unwind_ForcedUnwind wants no match here. */
if (c->u.catch.type_list == NULL)
emit_jump (c->label);
else
@@ -2577,8 +2594,6 @@ reachable_next_level (region, type_thrown, info)
for (c = region->u.try.catch; c ; c = c->u.catch.next_catch)
{
/* A catch-all handler ends the search. */
- /* ??? _Unwind_ForcedUnwind will want outer cleanups
- to be run as well. */
if (c->u.catch.type_list == NULL)
{
add_reachable_handler (info, region, c);
@@ -2760,10 +2775,20 @@ reachable_handlers (insn)
region = region->outer;
}
- for (; region; region = region->outer)
- if (reachable_next_level (region, type_thrown, &info) >= RNL_CAUGHT)
- break;
-
+ while (region)
+ {
+ if (reachable_next_level (region, type_thrown, &info) >= RNL_CAUGHT)
+ break;
+ /* If we have processed one cleanup, there is no point in
+ processing any more of them. Each cleanup will have an edge
+ to the next outer cleanup region, so the flow graph will be
+ accurate. */
+ if (region->type == ERT_CLEANUP)
+ region = region->u.cleanup.prev_try;
+ else
+ region = region->outer;
+ }
+
return info.handlers;
}
@@ -3044,77 +3069,73 @@ expand_builtin_frob_return_addr (addr_tree)
void
expand_builtin_eh_return (stackadj_tree, handler_tree)
- tree stackadj_tree, handler_tree;
+ tree stackadj_tree ATTRIBUTE_UNUSED;
+ tree handler_tree;
{
- rtx stackadj, handler;
-
- stackadj = expand_expr (stackadj_tree, cfun->eh->ehr_stackadj, VOIDmode, 0);
- handler = expand_expr (handler_tree, cfun->eh->ehr_handler, VOIDmode, 0);
+ rtx tmp;
+#ifdef EH_RETURN_STACKADJ_RTX
+ tmp = expand_expr (stackadj_tree, cfun->eh->ehr_stackadj, VOIDmode, 0);
#ifdef POINTERS_EXTEND_UNSIGNED
- if (GET_MODE (stackadj) != Pmode)
- stackadj = convert_memory_address (Pmode, stackadj);
-
- if (GET_MODE (handler) != Pmode)
- handler = convert_memory_address (Pmode, handler);
+ if (GET_MODE (tmp) != Pmode)
+ tmp = convert_memory_address (Pmode, tmp);
+#endif
+ if (!cfun->eh->ehr_stackadj)
+ cfun->eh->ehr_stackadj = copy_to_reg (tmp);
+ else if (tmp != cfun->eh->ehr_stackadj)
+ emit_move_insn (cfun->eh->ehr_stackadj, tmp);
#endif
- if (! cfun->eh->ehr_label)
- {
- cfun->eh->ehr_stackadj = copy_to_reg (stackadj);
- cfun->eh->ehr_handler = copy_to_reg (handler);
- cfun->eh->ehr_label = gen_label_rtx ();
- }
- else
- {
- if (stackadj != cfun->eh->ehr_stackadj)
- emit_move_insn (cfun->eh->ehr_stackadj, stackadj);
- if (handler != cfun->eh->ehr_handler)
- emit_move_insn (cfun->eh->ehr_handler, handler);
- }
+ tmp = expand_expr (handler_tree, cfun->eh->ehr_handler, VOIDmode, 0);
+#ifdef POINTERS_EXTEND_UNSIGNED
+ if (GET_MODE (tmp) != Pmode)
+ tmp = convert_memory_address (Pmode, tmp);
+#endif
+ if (!cfun->eh->ehr_handler)
+ cfun->eh->ehr_handler = copy_to_reg (tmp);
+ else if (tmp != cfun->eh->ehr_handler)
+ emit_move_insn (cfun->eh->ehr_handler, tmp);
+ if (!cfun->eh->ehr_label)
+ cfun->eh->ehr_label = gen_label_rtx ();
emit_jump (cfun->eh->ehr_label);
}
void
expand_eh_return ()
{
- rtx sa, ra, around_label;
+ rtx around_label;
if (! cfun->eh->ehr_label)
return;
- sa = EH_RETURN_STACKADJ_RTX;
- if (! sa)
- {
- error ("__builtin_eh_return not supported on this target");
- return;
- }
-
current_function_calls_eh_return = 1;
+#ifdef EH_RETURN_STACKADJ_RTX
+ emit_move_insn (EH_RETURN_STACKADJ_RTX, const0_rtx);
+#endif
+
around_label = gen_label_rtx ();
- emit_move_insn (sa, const0_rtx);
emit_jump (around_label);
emit_label (cfun->eh->ehr_label);
clobber_return_register ();
+#ifdef EH_RETURN_STACKADJ_RTX
+ emit_move_insn (EH_RETURN_STACKADJ_RTX, cfun->eh->ehr_stackadj);
+#endif
+
#ifdef HAVE_eh_return
if (HAVE_eh_return)
- emit_insn (gen_eh_return (cfun->eh->ehr_stackadj, cfun->eh->ehr_handler));
+ emit_insn (gen_eh_return (cfun->eh->ehr_handler));
else
#endif
{
- ra = EH_RETURN_HANDLER_RTX;
- if (! ra)
- {
- error ("__builtin_eh_return not supported on this target");
- ra = gen_reg_rtx (Pmode);
- }
-
- emit_move_insn (sa, cfun->eh->ehr_stackadj);
- emit_move_insn (ra, cfun->eh->ehr_handler);
+#ifdef EH_RETURN_HANDLER_RTX
+ emit_move_insn (EH_RETURN_HANDLER_RTX, cfun->eh->ehr_handler);
+#else
+ error ("__builtin_eh_return not supported on this target");
+#endif
}
emit_label (around_label);
@@ -3271,8 +3292,18 @@ collect_one_action_chain (ar_hash, region)
/* An exception specification adds its filter to the
beginning of the chain. */
next = collect_one_action_chain (ar_hash, region->outer);
- return add_action_record (ar_hash, region->u.allowed.filter,
- next < 0 ? 0 : next);
+
+ /* If there is no next action, terminate the chain. */
+ if (next == -1)
+ next = 0;
+ /* If all outer actions are cleanups or must_not_throw,
+ we'll have no action record for it, since we had wanted
+ to encode these states in the call-site record directly.
+ Add a cleanup action to the chain to catch these. */
+ else if (next <= 0)
+ next = add_action_record (ar_hash, 0, 0);
+
+ return add_action_record (ar_hash, region->u.allowed.filter, next);
case ERT_MUST_NOT_THROW:
/* A must-not-throw region with no inner handlers or cleanups
diff --git a/gcc/except.h b/gcc/except.h
index 034ce51c8fe..320552c5b7c 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -83,6 +83,10 @@ extern void expand_eh_region_end_throw PARAMS ((tree));
destroying an object twice. */
extern void expand_eh_region_end_fixup PARAMS ((tree));
+/* Note that the current EH region (if any) may contain a throw, or a
+ call to a function which itself may contain a throw. */
+extern void note_eh_region_may_contain_throw PARAMS ((void));
+
/* Invokes CALLBACK for every exception handler label. Only used by old
loop hackery; should not be used by new code. */
extern void for_each_eh_label PARAMS ((void (*) (rtx)));
@@ -115,7 +119,7 @@ extern rtx expand_builtin_eh_return_data_regno PARAMS ((tree));
extern rtx expand_builtin_extract_return_addr PARAMS ((tree));
extern void expand_builtin_init_dwarf_reg_sizes PARAMS ((tree));
extern rtx expand_builtin_frob_return_addr PARAMS ((tree));
-extern rtx expand_builtin_dwarf_fp_regnum PARAMS ((void));
+extern rtx expand_builtin_dwarf_sp_column PARAMS ((void));
extern void expand_builtin_eh_return PARAMS ((tree, tree));
extern void expand_eh_return PARAMS ((void));
extern rtx get_exception_pointer PARAMS ((struct function *));
@@ -151,7 +155,6 @@ extern tree (*lang_eh_runtime_type) PARAMS ((tree));
#if ! (defined (EH_RETURN_DATA_REGNO) \
&& (defined (IA64_UNWIND_INFO) \
|| (DWARF2_UNWIND_INFO \
- && defined (EH_RETURN_STACKADJ_RTX) \
&& (defined (EH_RETURN_HANDLER_RTX) \
|| defined (HAVE_eh_return)))))
#define MUST_USE_SJLJ_EXCEPTIONS 1
@@ -168,9 +171,6 @@ extern tree (*lang_eh_runtime_type) PARAMS ((tree));
# ifndef EH_RETURN_DATA_REGNO
#error "EH_RETURN_DATA_REGNO required"
# endif
-# ifndef EH_RETURN_STACKADJ_RTX
- #error "EH_RETURN_STACKADJ_RTX required"
-# endif
# if !defined(EH_RETURN_HANDLER_RTX) && !defined(HAVE_eh_return)
#error "EH_RETURN_HANDLER_RTX or eh_return required"
# endif
diff --git a/gcc/explow.c b/gcc/explow.c
index b6caa521172..63bbbb080eb 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -356,8 +356,6 @@ break_out_memory_refs (x)
return x;
}
-#ifdef POINTERS_EXTEND_UNSIGNED
-
/* Given X, a memory address in ptr_mode, convert it to an address
in Pmode, or vice versa (TO_MODE says which way). We take advantage of
the fact that pointers are not allowed to overflow by commuting arithmetic
@@ -366,13 +364,22 @@ break_out_memory_refs (x)
rtx
convert_memory_address (to_mode, x)
- enum machine_mode to_mode;
+ enum machine_mode to_mode ATTRIBUTE_UNUSED;
rtx x;
{
- enum machine_mode from_mode = to_mode == ptr_mode ? Pmode : ptr_mode;
+#ifndef POINTERS_EXTEND_UNSIGNED
+ return x;
+#else /* defined(POINTERS_EXTEND_UNSIGNED) */
+ enum machine_mode from_mode;
rtx temp;
enum rtx_code code;
+ /* If X already has the right mode, just return it. */
+ if (GET_MODE (x) == to_mode)
+ return x;
+
+ from_mode = to_mode == ptr_mode ? Pmode : ptr_mode;
+
/* Here we handle some special cases. If none of them apply, fall through
to the default case. */
switch (GET_CODE (x))
@@ -436,8 +443,8 @@ convert_memory_address (to_mode, x)
return convert_modes (to_mode, from_mode,
x, POINTERS_EXTEND_UNSIGNED);
+#endif /* defined(POINTERS_EXTEND_UNSIGNED) */
}
-#endif
/* Given a memory address or facsimile X, construct a new address,
currently equivalent, that is stable: future stores won't change it.
@@ -655,8 +662,18 @@ maybe_set_unchanging (ref, t)
/* We can set RTX_UNCHANGING_P from TREE_READONLY for decls whose
initialization is only executed once, or whose initializer always
has the same value. Currently we simplify this to PARM_DECLs in the
- first case, and decls with TREE_CONSTANT initializers in the second. */
+ first case, and decls with TREE_CONSTANT initializers in the second.
+
+ We cannot do this for non-static aggregates, because of the double
+ writes that can be generated by store_constructor, depending on the
+ contents of the initializer. Yes, this does eliminate a good fraction
+ of the number of uses of RTX_UNCHANGING_P for a language like Ada.
+ It also eliminates a good quantity of bugs. Let this be incentive to
+ eliminate RTX_UNCHANGING_P entirely in favour of a more reliable
+ solution, perhaps based on alias sets. */
+
if ((TREE_READONLY (t) && DECL_P (t)
+ && (TREE_STATIC (t) || ! AGGREGATE_TYPE_P (TREE_TYPE (t)))
&& (TREE_CODE (t) == PARM_DECL
|| DECL_INITIAL (t) == NULL_TREE
|| TREE_CONSTANT (DECL_INITIAL (t))))
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 405e45f8089..72ef6cef307 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -299,6 +299,7 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, total_size)
unsigned HOST_WIDE_INT bitpos = bitnum % unit;
rtx op0 = str_rtx;
int byte_offset;
+ rtx orig_value;
enum machine_mode op_mode = mode_for_extraction (EP_insv, 3);
@@ -532,6 +533,7 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, total_size)
corresponding size. This can occur on a machine with 64 bit registers
that uses SFmode for float. This can also occur for unaligned float
structure fields. */
+ orig_value = value;
if (GET_MODE_CLASS (GET_MODE (value)) != MODE_INT
&& GET_MODE_CLASS (GET_MODE (value)) != MODE_PARTIAL_INT)
value = gen_lowpart ((GET_MODE (value) == VOIDmode
@@ -598,7 +600,7 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, total_size)
/* Fetch that unit, store the bitfield in it, then store
the unit. */
tempreg = copy_to_reg (op0);
- store_bit_field (tempreg, bitsize, bitpos, fieldmode, value,
+ store_bit_field (tempreg, bitsize, bitpos, fieldmode, orig_value,
total_size);
emit_move_insn (op0, tempreg);
return value;
@@ -4341,19 +4343,27 @@ emit_store_flag (target, code, op0, op1, mode, unsignedp, normalizep)
{
if (code == EQ || code == NE)
{
+ rtx op00, op01, op0both;
+
/* Do a logical OR of the two words and compare the result. */
- rtx op0h = gen_highpart (word_mode, op0);
- rtx op0l = gen_lowpart (word_mode, op0);
- rtx op0both = expand_binop (word_mode, ior_optab, op0h, op0l,
- NULL_RTX, unsignedp, OPTAB_DIRECT);
+ op00 = simplify_gen_subreg (word_mode, op0, mode, 0);
+ op01 = simplify_gen_subreg (word_mode, op0, mode, UNITS_PER_WORD);
+ op0both = expand_binop (word_mode, ior_optab, op00, op01,
+ NULL_RTX, unsignedp, OPTAB_DIRECT);
if (op0both != 0)
return emit_store_flag (target, code, op0both, op1, word_mode,
unsignedp, normalizep);
}
else if (code == LT || code == GE)
- /* If testing the sign bit, can just test on high word. */
- return emit_store_flag (target, code, gen_highpart (word_mode, op0),
- op1, word_mode, unsignedp, normalizep);
+ {
+ rtx op0h;
+
+ /* If testing the sign bit, can just test on high word. */
+ op0h = simplify_gen_subreg (word_mode, op0, mode,
+ subreg_highpart_offset (word_mode, mode));
+ return emit_store_flag (target, code, op0h, op1, word_mode,
+ unsignedp, normalizep);
+ }
}
/* From now on, we won't change CODE, so set ICODE now. */
diff --git a/gcc/expr.c b/gcc/expr.c
index e5f7ae51783..78b35db8c84 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1,6 +1,6 @@
/* Convert tree expression to rtl instructions, for GNU compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -129,6 +129,8 @@ struct store_by_pieces
};
static rtx enqueue_insn PARAMS ((rtx, rtx));
+static rtx mark_queue PARAMS ((void));
+static void emit_insns_enqueued_after_mark PARAMS ((rtx));
static unsigned HOST_WIDE_INT move_by_pieces_ninsns
PARAMS ((unsigned HOST_WIDE_INT,
unsigned int));
@@ -153,7 +155,7 @@ static rtx clear_storage_via_libcall PARAMS ((rtx, rtx));
static tree clear_storage_libcall_fn PARAMS ((int));
static rtx compress_float_constant PARAMS ((rtx, rtx));
static rtx get_subtarget PARAMS ((rtx));
-static int is_zeros_p PARAMS ((tree));
+static int is_zeros_p PARAMS ((tree));
static int mostly_zeros_p PARAMS ((tree));
static void store_constructor_field PARAMS ((rtx, unsigned HOST_WIDE_INT,
HOST_WIDE_INT, enum machine_mode,
@@ -177,6 +179,7 @@ static rtx do_store_flag PARAMS ((tree, rtx, enum machine_mode, int));
static void emit_single_push_insn PARAMS ((enum machine_mode, rtx, tree));
#endif
static void do_tablejump PARAMS ((rtx, enum machine_mode, rtx, rtx, rtx));
+static rtx const_vector_from_tree PARAMS ((tree));
/* Record for each mode whether we can move a register directly to or
from an object of that mode in memory. If we can't, we won't try
@@ -499,13 +502,31 @@ queued_subexp_p (x)
}
}
-/* Perform all the pending incrementations. */
+/* Retrieve a mark on the queue. */
+
+static rtx
+mark_queue ()
+{
+ return pending_chain;
+}
-void
-emit_queue ()
+/* Perform all the pending incrementations that have been enqueued
+ after MARK was retrieved. If MARK is null, perform all the
+ pending incrementations. */
+
+static void
+emit_insns_enqueued_after_mark (mark)
+ rtx mark;
{
rtx p;
- while ((p = pending_chain))
+
+ /* The marked incrementation may have been emitted in the meantime
+ through a call to emit_queue. In this case, the mark is not valid
+ anymore so do nothing. */
+ if (mark && ! QUEUED_BODY (mark))
+ return;
+
+ while ((p = pending_chain) != mark)
{
rtx body = QUEUED_BODY (p);
@@ -532,9 +553,18 @@ emit_queue ()
break;
}
+ QUEUED_BODY (p) = 0;
pending_chain = QUEUED_NEXT (p);
}
}
+
+/* Perform all the pending incrementations. */
+
+void
+emit_queue ()
+{
+ emit_insns_enqueued_after_mark (NULL_RTX);
+}
/* Copy data from FROM to TO, where the machine modes are not the same.
Both modes may be integer, or both may be floating.
@@ -885,7 +915,11 @@ convert_move (to, from, unsignedp)
!= CODE_FOR_nothing))
{
if (GET_CODE (to) == REG)
- emit_insn (gen_rtx_CLOBBER (VOIDmode, to));
+ {
+ if (reg_overlap_mentioned_p (to, from))
+ from = force_reg (from_mode, from);
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, to));
+ }
convert_move (gen_lowpart (word_mode, to), from, unsignedp);
emit_unop_insn (code, to,
gen_lowpart (word_mode, to), equiv_code);
@@ -1397,6 +1431,8 @@ convert_modes (mode, oldmode, x, unsignedp)
&& ((GET_CODE (x) == MEM && ! MEM_VOLATILE_P (x)
&& direct_load[(int) mode])
|| (GET_CODE (x) == REG
+ && (! HARD_REGISTER_P (x)
+ || HARD_REGNO_MODE_OK (REGNO (x), mode))
&& TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (mode),
GET_MODE_BITSIZE (GET_MODE (x)))))))))
{
@@ -1422,6 +1458,15 @@ convert_modes (mode, oldmode, x, unsignedp)
return gen_lowpart (mode, x);
}
+ /* Converting from integer constant into mode is always equivalent to an
+ subreg operation. */
+ if (VECTOR_MODE_P (mode) && GET_MODE (x) == VOIDmode)
+ {
+ if (GET_MODE_BITSIZE (mode) != GET_MODE_BITSIZE (oldmode))
+ abort ();
+ return simplify_gen_subreg (mode, x, oldmode, 0);
+ }
+
temp = gen_reg_rtx (mode);
convert_move (temp, x, unsignedp);
return temp;
@@ -2436,7 +2481,7 @@ emit_group_store (orig_dst, src, ssize)
{
dst = gen_reg_rtx (GET_MODE (orig_dst));
/* Make life a bit easier for combine. */
- emit_move_insn (dst, const0_rtx);
+ emit_move_insn (dst, CONST0_RTX (GET_MODE (orig_dst)));
}
/* Process the pieces. */
@@ -2468,6 +2513,15 @@ emit_group_store (orig_dst, src, ssize)
bytepos -= GET_MODE_SIZE (GET_MODE (XEXP (dst, 0)));
dest = XEXP (dst, 1);
}
+ else if (bytepos == 0 && XVECLEN (src, 0))
+ {
+ dest = assign_stack_temp (GET_MODE (dest),
+ GET_MODE_SIZE (GET_MODE (dest)), 0);
+ emit_move_insn (adjust_address (dest, GET_MODE (tmps[i]), bytepos),
+ tmps[i]);
+ dst = dest;
+ break;
+ }
else
abort ();
}
@@ -2486,7 +2540,7 @@ emit_group_store (orig_dst, src, ssize)
emit_queue ();
/* Copy from the pseudo into the (probable) hard reg. */
- if (GET_CODE (dst) == REG)
+ if (orig_dst != dst)
emit_move_insn (orig_dst, dst);
}
@@ -2648,6 +2702,9 @@ can_store_by_pieces (len, constfun, constfundata, align)
int reverse;
rtx cst;
+ if (len == 0)
+ return 1;
+
if (! MOVE_BY_PIECES_P (len, align))
return 0;
@@ -2723,6 +2780,9 @@ store_by_pieces (to, len, constfun, constfundata, align)
{
struct store_by_pieces data;
+ if (len == 0)
+ return;
+
if (! MOVE_BY_PIECES_P (len, align))
abort ();
to = protect_from_queue (to, 1);
@@ -2745,6 +2805,9 @@ clear_by_pieces (to, len, align)
{
struct store_by_pieces data;
+ if (len == 0)
+ return;
+
data.constfun = clear_by_pieces_1;
data.constfundata = NULL;
data.len = len;
@@ -2915,7 +2978,9 @@ clear_storage (object, size)
object = protect_from_queue (object, 1);
size = protect_from_queue (size, 0);
- if (GET_CODE (size) == CONST_INT
+ if (GET_CODE (size) == CONST_INT && INTVAL (size) == 0)
+ ;
+ else if (GET_CODE (size) == CONST_INT
&& CLEAR_BY_PIECES_P (INTVAL (size), align))
clear_by_pieces (object, INTVAL (size), align);
else if (clear_storage_via_clrstr (object, size, align))
@@ -4020,7 +4085,8 @@ expand_assignment (to, from, want_value, suggest_reg)
problem. */
if (TREE_CODE (to) == COMPONENT_REF || TREE_CODE (to) == BIT_FIELD_REF
- || TREE_CODE (to) == ARRAY_REF || TREE_CODE (to) == ARRAY_RANGE_REF)
+ || TREE_CODE (to) == ARRAY_REF || TREE_CODE (to) == ARRAY_RANGE_REF
+ || TREE_CODE (TREE_TYPE (to)) == ARRAY_TYPE)
{
enum machine_mode mode1;
HOST_WIDE_INT bitsize, bitpos;
@@ -4051,7 +4117,7 @@ expand_assignment (to, from, want_value, suggest_reg)
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (offset_rtx) != Pmode)
- offset_rtx = convert_memory_address (Pmode, offset_rtx);
+ offset_rtx = convert_to_mode (Pmode, offset_rtx, 0);
#else
if (GET_MODE (offset_rtx) != ptr_mode)
offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
@@ -4095,7 +4161,11 @@ expand_assignment (to, from, want_value, suggest_reg)
}
if (TREE_CODE (to) == COMPONENT_REF
- && TREE_READONLY (TREE_OPERAND (to, 1)))
+ && TREE_READONLY (TREE_OPERAND (to, 1))
+ /* We can't assert that a MEM won't be set more than once
+ if the component is not addressable because another
+ non-addressable component may be referenced by the same MEM. */
+ && ! (GET_CODE (to_rtx) == MEM && ! can_address_p (to)))
{
if (to_rtx == orig_to_rtx)
to_rtx = copy_rtx (to_rtx);
@@ -4248,7 +4318,7 @@ expand_assignment (to, from, want_value, suggest_reg)
and storing the value into TARGET.
TARGET may contain a QUEUED rtx.
- If WANT_VALUE is nonzero, return a copy of the value
+ If WANT_VALUE & 1 is nonzero, return a copy of the value
not in TARGET, so that we can be sure to use the proper
value in a containing expression even if TARGET has something
else stored in it. If possible, we copy the value through a pseudo
@@ -4263,9 +4333,12 @@ expand_assignment (to, from, want_value, suggest_reg)
with no sequence point. Will other languages need this to
be more thorough?
- If WANT_VALUE is 0, we return NULL, to make sure
+ If WANT_VALUE & 1 is 0, we return NULL, to make sure
to catch quickly any cases where the caller uses the value
- and fails to set WANT_VALUE. */
+ and fails to set WANT_VALUE.
+
+ If WANT_VALUE & 2 is set, this is a store into a call param on the
+ stack, and block moves may need to be treated specially. */
rtx
store_expr (exp, target, want_value)
@@ -4274,14 +4347,26 @@ store_expr (exp, target, want_value)
int want_value;
{
rtx temp;
+ rtx mark = mark_queue ();
int dont_return_target = 0;
int dont_store_target = 0;
+ if (VOID_TYPE_P (TREE_TYPE (exp)))
+ {
+ /* C++ can generate ?: expressions with a throw expression in one
+ branch and an rvalue in the other. Here, we resolve attempts to
+ store the throw expression's nonexistant result. */
+ if (want_value)
+ abort ();
+ expand_expr (exp, const0_rtx, VOIDmode, 0);
+ return NULL_RTX;
+ }
if (TREE_CODE (exp) == COMPOUND_EXPR)
{
/* Perform first part of compound expression, then assign from second
part. */
- expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode, 0);
+ expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode,
+ want_value & 2 ? EXPAND_STACK_PARM : EXPAND_NORMAL);
emit_queue ();
return store_expr (TREE_OPERAND (exp, 1), target, want_value);
}
@@ -4301,20 +4386,20 @@ store_expr (exp, target, want_value)
NO_DEFER_POP;
jumpifnot (TREE_OPERAND (exp, 0), lab1);
start_cleanup_deferral ();
- store_expr (TREE_OPERAND (exp, 1), target, 0);
+ store_expr (TREE_OPERAND (exp, 1), target, want_value & 2);
end_cleanup_deferral ();
emit_queue ();
emit_jump_insn (gen_jump (lab2));
emit_barrier ();
emit_label (lab1);
start_cleanup_deferral ();
- store_expr (TREE_OPERAND (exp, 2), target, 0);
+ store_expr (TREE_OPERAND (exp, 2), target, want_value & 2);
end_cleanup_deferral ();
emit_queue ();
emit_label (lab2);
OK_DEFER_POP;
- return want_value ? target : NULL_RTX;
+ return want_value & 1 ? target : NULL_RTX;
}
else if (queued_subexp_p (target))
/* If target contains a postincrement, let's not risk
@@ -4324,18 +4409,24 @@ store_expr (exp, target, want_value)
{
/* Expand EXP into a new pseudo. */
temp = gen_reg_rtx (GET_MODE (target));
- temp = expand_expr (exp, temp, GET_MODE (target), 0);
+ temp = expand_expr (exp, temp, GET_MODE (target),
+ (want_value & 2
+ ? EXPAND_STACK_PARM : EXPAND_NORMAL));
}
else
- temp = expand_expr (exp, NULL_RTX, GET_MODE (target), 0);
+ temp = expand_expr (exp, NULL_RTX, GET_MODE (target),
+ (want_value & 2
+ ? EXPAND_STACK_PARM : EXPAND_NORMAL));
/* If target is volatile, ANSI requires accessing the value
*from* the target, if it is accessed. So make that happen.
In no case return the target itself. */
- if (! MEM_VOLATILE_P (target) && want_value)
+ if (! MEM_VOLATILE_P (target) && (want_value & 1) != 0)
dont_return_target = 1;
}
- else if (want_value && GET_CODE (target) == MEM && ! MEM_VOLATILE_P (target)
+ else if ((want_value & 1) != 0
+ && GET_CODE (target) == MEM
+ && ! MEM_VOLATILE_P (target)
&& GET_MODE (target) != BLKmode)
/* If target is in memory and caller wants value in a register instead,
arrange that. Pass TARGET as target for expand_expr so that,
@@ -4344,7 +4435,8 @@ store_expr (exp, target, want_value)
Don't do this if TARGET is volatile because we are supposed
to write it and then read it. */
{
- temp = expand_expr (exp, target, GET_MODE (target), 0);
+ temp = expand_expr (exp, target, GET_MODE (target),
+ want_value & 2 ? EXPAND_STACK_PARM : EXPAND_NORMAL);
if (GET_MODE (temp) != BLKmode && GET_MODE (temp) != VOIDmode)
{
/* If TEMP is already in the desired TARGET, only copy it from
@@ -4371,7 +4463,8 @@ store_expr (exp, target, want_value)
the extend. But don't do this if the type of EXP is a subtype
of something else since then the conversion might involve
more than just converting modes. */
- if (! want_value && INTEGRAL_TYPE_P (TREE_TYPE (exp))
+ if ((want_value & 1) == 0
+ && INTEGRAL_TYPE_P (TREE_TYPE (exp))
&& TREE_TYPE (TREE_TYPE (exp)) == 0)
{
if (TREE_UNSIGNED (TREE_TYPE (exp))
@@ -4388,12 +4481,13 @@ store_expr (exp, target, want_value)
inner_target = SUBREG_REG (target);
}
- temp = expand_expr (exp, inner_target, VOIDmode, 0);
+ temp = expand_expr (exp, inner_target, VOIDmode,
+ want_value & 2 ? EXPAND_STACK_PARM : EXPAND_NORMAL);
/* If TEMP is a volatile MEM and we want a result value, make
the access now so it gets done only once. Likewise if
it contains TARGET. */
- if (GET_CODE (temp) == MEM && want_value
+ if (GET_CODE (temp) == MEM && (want_value & 1) != 0
&& (MEM_VOLATILE_P (temp)
|| reg_mentioned_p (SUBREG_REG (target), XEXP (temp, 0))))
temp = copy_to_reg (temp);
@@ -4416,7 +4510,7 @@ store_expr (exp, target, want_value)
target. Otherwise, the caller might get confused by a result whose
mode is larger than expected. */
- if (want_value && GET_MODE (temp) != GET_MODE (target))
+ if ((want_value & 1) != 0 && GET_MODE (temp) != GET_MODE (target))
{
if (GET_MODE (temp) != VOIDmode)
{
@@ -4431,11 +4525,12 @@ store_expr (exp, target, want_value)
temp, SUBREG_PROMOTED_UNSIGNED_P (target));
}
- return want_value ? temp : NULL_RTX;
+ return want_value & 1 ? temp : NULL_RTX;
}
else
{
- temp = expand_expr (exp, target, GET_MODE (target), 0);
+ temp = expand_expr (exp, target, GET_MODE (target),
+ want_value & 2 ? EXPAND_STACK_PARM : EXPAND_NORMAL);
/* Return TARGET if it's a specified hardware register.
If TARGET is a volatile mem ref, either return TARGET
or return a reg copied *from* TARGET; ANSI requires this.
@@ -4447,7 +4542,7 @@ store_expr (exp, target, want_value)
&& REGNO (target) < FIRST_PSEUDO_REGISTER)
&& !(GET_CODE (target) == MEM && MEM_VOLATILE_P (target))
&& ! rtx_equal_p (temp, target)
- && (CONSTANT_P (temp) || want_value))
+ && (CONSTANT_P (temp) || (want_value & 1) != 0))
dont_return_target = 1;
}
@@ -4462,7 +4557,11 @@ store_expr (exp, target, want_value)
temp, TREE_UNSIGNED (TREE_TYPE (exp)));
/* If value was not generated in the target, store it there.
- Convert the value to TARGET's type first if necessary.
+ Convert the value to TARGET's type first if necessary and emit the
+ pending incrementations that have been queued when expanding EXP.
+ Note that we cannot emit the whole queue blindly because this will
+ effectively disable the POST_INC optimization later.
+
If TEMP and TARGET compare equal according to rtx_equal_p, but
one or both of them are volatile memory refs, we have to distinguish
two cases:
@@ -4491,7 +4590,9 @@ store_expr (exp, target, want_value)
bit-initialized. */
&& expr_size (exp) != const0_rtx)
{
+ emit_insns_enqueued_after_mark (mark);
target = protect_from_queue (target, 1);
+ temp = protect_from_queue (temp, 0);
if (GET_MODE (temp) != GET_MODE (target)
&& GET_MODE (temp) != VOIDmode)
{
@@ -4518,7 +4619,9 @@ store_expr (exp, target, want_value)
if (GET_CODE (size) == CONST_INT
&& INTVAL (size) < TREE_STRING_LENGTH (exp))
- emit_block_move (target, temp, size, BLOCK_OP_NORMAL);
+ emit_block_move (target, temp, size,
+ (want_value & 2
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
else
{
/* Compute the size of the data to copy from the string. */
@@ -4526,13 +4629,18 @@ store_expr (exp, target, want_value)
= size_binop (MIN_EXPR,
make_tree (sizetype, size),
size_int (TREE_STRING_LENGTH (exp)));
- rtx copy_size_rtx = expand_expr (copy_size, NULL_RTX,
- VOIDmode, 0);
+ rtx copy_size_rtx
+ = expand_expr (copy_size, NULL_RTX, VOIDmode,
+ (want_value & 2
+ ? EXPAND_STACK_PARM : EXPAND_NORMAL));
rtx label = 0;
/* Copy that much. */
- copy_size_rtx = convert_to_mode (ptr_mode, copy_size_rtx, 0);
- emit_block_move (target, temp, copy_size_rtx, BLOCK_OP_NORMAL);
+ copy_size_rtx = convert_to_mode (ptr_mode, copy_size_rtx,
+ TREE_UNSIGNED (sizetype));
+ emit_block_move (target, temp, copy_size_rtx,
+ (want_value & 2
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
/* Figure out how much is left in TARGET that we have to clear.
Do all calculations in ptr_mode. */
@@ -4550,8 +4658,8 @@ store_expr (exp, target, want_value)
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (copy_size_rtx) != Pmode)
- copy_size_rtx = convert_memory_address (Pmode,
- copy_size_rtx);
+ copy_size_rtx = convert_to_mode (Pmode, copy_size_rtx,
+ TREE_UNSIGNED (sizetype));
#endif
target = offset_address (target, copy_size_rtx,
@@ -4573,13 +4681,15 @@ store_expr (exp, target, want_value)
else if (GET_CODE (target) == PARALLEL)
emit_group_load (target, temp, int_size_in_bytes (TREE_TYPE (exp)));
else if (GET_MODE (temp) == BLKmode)
- emit_block_move (target, temp, expr_size (exp), BLOCK_OP_NORMAL);
+ emit_block_move (target, temp, expr_size (exp),
+ (want_value & 2
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
else
emit_move_insn (target, temp);
}
/* If we don't want a value, return NULL_RTX. */
- if (! want_value)
+ if ((want_value & 1) == 0)
return NULL_RTX;
/* If we are supposed to return TEMP, do so as long as it isn't a MEM.
@@ -4588,7 +4698,8 @@ store_expr (exp, target, want_value)
return temp;
/* Return TARGET itself if it is a hard register. */
- else if (want_value && GET_MODE (target) != BLKmode
+ else if ((want_value & 1) != 0
+ && GET_MODE (target) != BLKmode
&& ! (GET_CODE (target) == REG
&& REGNO (target) < FIRST_PSEUDO_REGISTER))
return copy_to_reg (target);
@@ -4756,11 +4867,13 @@ store_constructor (exp, target, cleared, size)
{
tree elt;
+ /* If size is zero or the target is already cleared, do nothing. */
+ if (size == 0 || cleared)
+ cleared = 1;
/* We either clear the aggregate or indicate the value is dead. */
- if ((TREE_CODE (type) == UNION_TYPE
- || TREE_CODE (type) == QUAL_UNION_TYPE)
- && ! cleared
- && ! CONSTRUCTOR_ELTS (exp))
+ else if ((TREE_CODE (type) == UNION_TYPE
+ || TREE_CODE (type) == QUAL_UNION_TYPE)
+ && ! CONSTRUCTOR_ELTS (exp))
/* If the constructor is empty, clear the union. */
{
clear_storage (target, expr_size (exp));
@@ -4771,7 +4884,7 @@ store_constructor (exp, target, cleared, size)
set the initial value as zero so we can fold the value into
a constant. But if more than one register is involved,
this probably loses. */
- else if (! cleared && GET_CODE (target) == REG && TREE_STATIC (exp)
+ else if (GET_CODE (target) == REG && TREE_STATIC (exp)
&& GET_MODE_SIZE (GET_MODE (target)) <= UNITS_PER_WORD)
{
emit_move_insn (target, CONST0_RTX (GET_MODE (target)));
@@ -4783,10 +4896,8 @@ store_constructor (exp, target, cleared, size)
clear the whole structure first. Don't do this if TARGET is a
register whose mode size isn't equal to SIZE since clear_storage
can't handle this case. */
- else if (! cleared && size > 0
- && ((list_length (CONSTRUCTOR_ELTS (exp))
- != fields_length (type))
- || mostly_zeros_p (exp))
+ else if (((list_length (CONSTRUCTOR_ELTS (exp)) != fields_length (type))
+ || mostly_zeros_p (exp))
&& (GET_CODE (target) != REG
|| ((HOST_WIDE_INT) GET_MODE_SIZE (GET_MODE (target))
== size)))
@@ -4855,7 +4966,7 @@ store_constructor (exp, target, cleared, size)
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (offset_rtx) != Pmode)
- offset_rtx = convert_memory_address (Pmode, offset_rtx);
+ offset_rtx = convert_to_mode (Pmode, offset_rtx, 0);
#else
if (GET_MODE (offset_rtx) != ptr_mode)
offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
@@ -4865,7 +4976,10 @@ store_constructor (exp, target, cleared, size)
highest_pow2_factor (offset));
}
- if (TREE_READONLY (field))
+ /* If the constructor has been cleared, setting RTX_UNCHANGING_P
+ on the MEM might lead to scheduling the clearing after the
+ store. */
+ if (TREE_READONLY (field) && !cleared)
{
if (GET_CODE (to_rtx) == MEM)
to_rtx = copy_rtx (to_rtx);
@@ -5248,7 +5362,7 @@ store_constructor (exp, target, cleared, size)
{
if (word != 0 || ! cleared)
{
- rtx datum = GEN_INT (word);
+ rtx datum = gen_int_mode (word, mode);
rtx to_rtx;
/* The assumption here is that it is safe to use
@@ -5992,22 +6106,31 @@ safe_from_p (x, exp, top_p)
case 'x':
if (TREE_CODE (exp) == TREE_LIST)
- return ((TREE_VALUE (exp) == 0
- || safe_from_p (x, TREE_VALUE (exp), 0))
- && (TREE_CHAIN (exp) == 0
- || safe_from_p (x, TREE_CHAIN (exp), 0)));
+ {
+ while (1)
+ {
+ if (TREE_VALUE (exp) && !safe_from_p (x, TREE_VALUE (exp), 0))
+ return 0;
+ exp = TREE_CHAIN (exp);
+ if (!exp)
+ return 1;
+ if (TREE_CODE (exp) != TREE_LIST)
+ return safe_from_p (x, exp, 0);
+ }
+ }
else if (TREE_CODE (exp) == ERROR_MARK)
return 1; /* An already-visited SAVE_EXPR? */
else
return 0;
- case '1':
- return safe_from_p (x, TREE_OPERAND (exp, 0), 0);
-
case '2':
case '<':
- return (safe_from_p (x, TREE_OPERAND (exp, 0), 0)
- && safe_from_p (x, TREE_OPERAND (exp, 1), 0));
+ if (!safe_from_p (x, TREE_OPERAND (exp, 1), 0))
+ return 0;
+ /* FALLTHRU */
+
+ case '1':
+ return safe_from_p (x, TREE_OPERAND (exp, 0), 0);
case 'e':
case 'r':
@@ -6405,7 +6528,14 @@ find_placeholder (exp, plist)
EXPAND_CONST_ADDRESS says that it is okay to return a MEM
with a constant address even if that address is not normally legitimate.
- EXPAND_INITIALIZER and EXPAND_SUM also have this effect. */
+ EXPAND_INITIALIZER and EXPAND_SUM also have this effect.
+
+ EXPAND_STACK_PARM is used when expanding to a TARGET on the stack for
+ a call parameter. Such targets require special care as we haven't yet
+ marked TARGET so that it's safe from being trashed by libcalls. We
+ don't want to use TARGET for anything but the final result;
+ Intermediate values must go elsewhere. Additionally, calls to
+ emit_block_move will be flagged with BLOCK_OP_CALL_PARM. */
rtx
expand_expr (exp, target, tmode, modifier)
@@ -6548,7 +6678,7 @@ expand_expr (exp, target, tmode, modifier)
if (! cse_not_expected && mode != BLKmode && target
&& (GET_CODE (target) != REG || REGNO (target) < FIRST_PSEUDO_REGISTER)
&& ! (code == CONSTRUCTOR && GET_MODE_SIZE (mode) > UNITS_PER_WORD))
- target = subtarget;
+ target = 0;
switch (code)
{
@@ -6592,23 +6722,10 @@ expand_expr (exp, target, tmode, modifier)
case VAR_DECL:
/* If a static var's type was incomplete when the decl was written,
but the type is complete now, lay out the decl now. */
- if (DECL_SIZE (exp) == 0 && COMPLETE_TYPE_P (TREE_TYPE (exp))
+ if (DECL_SIZE (exp) == 0
+ && COMPLETE_OR_UNBOUND_ARRAY_TYPE_P (TREE_TYPE (exp))
&& (TREE_STATIC (exp) || DECL_EXTERNAL (exp)))
- {
- rtx value = DECL_RTL_IF_SET (exp);
-
- layout_decl (exp, 0);
-
- /* If the RTL was already set, update its mode and memory
- attributes. */
- if (value != 0)
- {
- PUT_MODE (value, DECL_MODE (exp));
- SET_DECL_RTL (exp, 0);
- set_mem_attributes (value, exp, 1);
- SET_DECL_RTL (exp, value);
- }
- }
+ layout_decl (exp, 0);
/* ... fall through ... */
@@ -6733,8 +6850,11 @@ expand_expr (exp, target, tmode, modifier)
return temp;
+ case VECTOR_CST:
+ return const_vector_from_tree (exp);
+
case CONST_DECL:
- return expand_expr (DECL_INITIAL (exp), target, VOIDmode, 0);
+ return expand_expr (DECL_INITIAL (exp), target, VOIDmode, modifier);
case REAL_CST:
/* If optimized, generate immediate CONST_DOUBLE
@@ -6810,7 +6930,7 @@ expand_expr (exp, target, tmode, modifier)
temp = SAVE_EXPR_RTL (exp);
if (temp && GET_CODE (temp) == REG)
{
- put_var_into_stack (exp);
+ put_var_into_stack (exp, /*rescan=*/true);
temp = SAVE_EXPR_RTL (exp);
}
if (temp == 0 || GET_CODE (temp) != MEM)
@@ -6837,12 +6957,12 @@ expand_expr (exp, target, tmode, modifier)
/* If the mode of TEMP does not match that of the expression, it
must be a promoted value. We pass store_expr a SUBREG of the
wanted mode but mark it so that we know that it was already
- extended. Note that `unsignedp' was modified above in
- this case. */
+ extended. */
if (GET_CODE (temp) == REG && GET_MODE (temp) != mode)
{
temp = gen_lowpart_SUBREG (mode, SAVE_EXPR_RTL (exp));
+ promote_mode (type, mode, &unsignedp, 0);
SUBREG_PROMOTED_VAR_P (temp) = 1;
SUBREG_PROMOTED_UNSIGNED_SET (temp, unsignedp);
}
@@ -6850,7 +6970,8 @@ expand_expr (exp, target, tmode, modifier)
if (temp == const0_rtx)
expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode, 0);
else
- store_expr (TREE_OPERAND (exp, 0), temp, 0);
+ store_expr (TREE_OPERAND (exp, 0), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
TREE_USED (exp) = 1;
}
@@ -7039,7 +7160,8 @@ expand_expr (exp, target, tmode, modifier)
/* Handle calls that pass values in multiple non-contiguous
locations. The Irix 6 ABI has examples of this. */
if (target == 0 || ! safe_from_p (target, exp, 1)
- || GET_CODE (target) == PARALLEL)
+ || GET_CODE (target) == PARALLEL
+ || modifier == EXPAND_STACK_PARM)
target
= assign_temp (build_qualified_type (type,
(TYPE_QUALS (type)
@@ -7109,7 +7231,9 @@ expand_expr (exp, target, tmode, modifier)
Don't fold if this is for wide characters since it's too
difficult to do correctly and this is a very rare case. */
- if (modifier != EXPAND_CONST_ADDRESS && modifier != EXPAND_INITIALIZER
+ if (modifier != EXPAND_CONST_ADDRESS
+ && modifier != EXPAND_INITIALIZER
+ && modifier != EXPAND_MEMORY
&& TREE_CODE (array) == STRING_CST
&& TREE_CODE (index) == INTEGER_CST
&& compare_tree_int (index, TREE_STRING_LENGTH (array)) < 0
@@ -7123,8 +7247,11 @@ expand_expr (exp, target, tmode, modifier)
we have an explicit constructor and when our operand is a variable
that was declared const. */
- if (modifier != EXPAND_CONST_ADDRESS && modifier != EXPAND_INITIALIZER
- && TREE_CODE (array) == CONSTRUCTOR && ! TREE_SIDE_EFFECTS (array)
+ if (modifier != EXPAND_CONST_ADDRESS
+ && modifier != EXPAND_INITIALIZER
+ && modifier != EXPAND_MEMORY
+ && TREE_CODE (array) == CONSTRUCTOR
+ && ! TREE_SIDE_EFFECTS (array)
&& TREE_CODE (index) == INTEGER_CST
&& 0 > compare_tree_int (index,
list_length (CONSTRUCTOR_ELTS
@@ -7145,6 +7272,7 @@ expand_expr (exp, target, tmode, modifier)
else if (optimize >= 1
&& modifier != EXPAND_CONST_ADDRESS
&& modifier != EXPAND_INITIALIZER
+ && modifier != EXPAND_MEMORY
&& TREE_READONLY (array) && ! TREE_SIDE_EFFECTS (array)
&& TREE_CODE (array) == VAR_DECL && DECL_INITIAL (array)
&& TREE_CODE (DECL_INITIAL (array)) != ERROR_MARK)
@@ -7213,6 +7341,9 @@ expand_expr (exp, target, tmode, modifier)
&& (GET_MODE_BITSIZE (DECL_MODE (TREE_PURPOSE (elt)))
<= HOST_BITS_PER_WIDE_INT))))
{
+ if (DECL_BIT_FIELD (TREE_PURPOSE (elt))
+ && modifier == EXPAND_STACK_PARM)
+ target = 0;
op0 = expand_expr (TREE_VALUE (elt), target, tmode, modifier);
if (DECL_BIT_FIELD (TREE_PURPOSE (elt)))
{
@@ -7267,10 +7398,12 @@ expand_expr (exp, target, tmode, modifier)
(TREE_CODE (TREE_TYPE (tem)) == UNION_TYPE
&& (TREE_CODE (TYPE_SIZE (TREE_TYPE (tem)))
!= INTEGER_CST)
+ && modifier != EXPAND_STACK_PARM
? target : NULL_RTX),
VOIDmode,
(modifier == EXPAND_INITIALIZER
- || modifier == EXPAND_CONST_ADDRESS)
+ || modifier == EXPAND_CONST_ADDRESS
+ || modifier == EXPAND_STACK_PARM)
? modifier : EXPAND_NORMAL);
/* If this is a constant, put it into a register if it is a
@@ -7287,7 +7420,8 @@ expand_expr (exp, target, tmode, modifier)
if (offset != 0)
{
- rtx offset_rtx = expand_expr (offset, NULL_RTX, VOIDmode, EXPAND_SUM);
+ rtx offset_rtx = expand_expr (offset, NULL_RTX, VOIDmode,
+ EXPAND_SUM);
/* If this object is in a register, put it into memory.
This case can't occur in C, but can in Ada if we have
@@ -7300,7 +7434,8 @@ expand_expr (exp, target, tmode, modifier)
forcing the SAVE_EXPR into memory. */
if (TREE_CODE (TREE_OPERAND (exp, 0)) == SAVE_EXPR)
{
- put_var_into_stack (TREE_OPERAND (exp, 0));
+ put_var_into_stack (TREE_OPERAND (exp, 0),
+ /*rescan=*/true);
op0 = SAVE_EXPR_RTL (TREE_OPERAND (exp, 0));
}
else
@@ -7321,7 +7456,7 @@ expand_expr (exp, target, tmode, modifier)
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (offset_rtx) != Pmode)
- offset_rtx = convert_memory_address (Pmode, offset_rtx);
+ offset_rtx = convert_to_mode (Pmode, offset_rtx, 0);
#else
if (GET_MODE (offset_rtx) != ptr_mode)
offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
@@ -7423,7 +7558,8 @@ expand_expr (exp, target, tmode, modifier)
emit_block_move (target, op0,
GEN_INT ((bitsize + BITS_PER_UNIT - 1)
/ BITS_PER_UNIT),
- BLOCK_OP_NORMAL);
+ (modifier == EXPAND_STACK_PARM
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
return target;
}
@@ -7433,8 +7569,10 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (op0) == MEM && GET_CODE (XEXP (op0, 0)) == REG)
mark_reg_pointer (XEXP (op0, 0), MEM_ALIGN (op0));
- op0 = extract_bit_field (op0, bitsize, bitpos,
- unsignedp, target, ext_mode, ext_mode,
+ op0 = extract_bit_field (op0, bitsize, bitpos, unsignedp,
+ (modifier == EXPAND_STACK_PARM
+ ? NULL_RTX : target),
+ ext_mode, ext_mode,
int_size_in_bytes (TREE_TYPE (tem)));
/* If the result is a record type and BITSIZE is narrower than
@@ -7678,8 +7816,8 @@ expand_expr (exp, target, tmode, modifier)
{
if (DECL_BUILT_IN_CLASS (TREE_OPERAND (TREE_OPERAND (exp, 0), 0))
== BUILT_IN_FRONTEND)
- return (*lang_hooks.expand_expr)
- (exp, original_target, tmode, modifier);
+ return (*lang_hooks.expand_expr) (exp, original_target,
+ tmode, modifier);
else
return expand_builtin (exp, target, subtarget, tmode, ignore);
}
@@ -7715,7 +7853,8 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (target) == MEM)
/* Store data into beginning of memory target. */
store_expr (TREE_OPERAND (exp, 0),
- adjust_address (target, TYPE_MODE (valtype), 0), 0);
+ adjust_address (target, TYPE_MODE (valtype), 0),
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
else if (GET_CODE (target) == REG)
/* Store this field into a union of the proper type. */
@@ -7840,7 +7979,8 @@ expand_expr (exp, target, tmode, modifier)
if (GET_MODE (op0) == BLKmode)
emit_block_move (new_with_op0_mode, op0,
GEN_INT (GET_MODE_SIZE (TYPE_MODE (type))),
- BLOCK_OP_NORMAL);
+ (modifier == EXPAND_STACK_PARM
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
else
emit_move_insn (new_with_op0_mode, op0);
@@ -7892,6 +8032,8 @@ expand_expr (exp, target, tmode, modifier)
if (modifier == EXPAND_SUM || modifier == EXPAND_INITIALIZER
|| (mode == ptr_mode && (unsignedp || ! flag_trapv)))
{
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
if (TREE_CODE (TREE_OPERAND (exp, 0)) == INTEGER_CST
&& GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
&& TREE_CONSTANT (TREE_OPERAND (exp, 1)))
@@ -8086,6 +8228,8 @@ expand_expr (exp, target, tmode, modifier)
if (modifier == EXPAND_SUM && mode == ptr_mode
&& host_integerp (TREE_OPERAND (exp, 1), 0))
{
+ tree exp1 = TREE_OPERAND (exp, 1);
+
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode,
EXPAND_SUM);
@@ -8104,14 +8248,17 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (op0) != REG)
op0 = copy_to_mode_reg (mode, op0);
- return
- gen_rtx_MULT (mode, op0,
- GEN_INT (tree_low_cst (TREE_OPERAND (exp, 1), 0)));
+ return gen_rtx_MULT (mode, op0,
+ gen_int_mode (tree_low_cst (exp1, 0),
+ TYPE_MODE (TREE_TYPE (exp1))));
}
if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1))
subtarget = 0;
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
+
/* Check for multiplying things that have been extended
from a narrower type. If this machine supports multiplying
in that narrower type with a result in the desired type,
@@ -8195,6 +8342,8 @@ expand_expr (exp, target, tmode, modifier)
case EXACT_DIV_EXPR:
if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1))
subtarget = 0;
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
/* Possible optimization: compute the dividend with EXPAND_SUM
then if the divisor is constant can optimize the case
where some terms of the dividend have coeffs divisible by it. */
@@ -8213,7 +8362,7 @@ expand_expr (exp, target, tmode, modifier)
build (RDIV_EXPR, type,
build_real (type, dconst1),
TREE_OPERAND (exp, 1))),
- target, tmode, unsignedp);
+ target, tmode, modifier);
this_optab = sdiv_optab;
goto binop;
@@ -8223,6 +8372,8 @@ expand_expr (exp, target, tmode, modifier)
case ROUND_MOD_EXPR:
if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1))
subtarget = 0;
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, 0);
return expand_divmod (1, code, mode, op0, op1, target, unsignedp);
@@ -8234,14 +8385,14 @@ expand_expr (exp, target, tmode, modifier)
case FIX_TRUNC_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, VOIDmode, 0);
- if (target == 0)
+ if (target == 0 || modifier == EXPAND_STACK_PARM)
target = gen_reg_rtx (mode);
expand_fix (target, op0, unsignedp);
return target;
case FLOAT_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), NULL_RTX, VOIDmode, 0);
- if (target == 0)
+ if (target == 0 || modifier == EXPAND_STACK_PARM)
target = gen_reg_rtx (mode);
/* expand_float can't figure out what to do if FROM has VOIDmode.
So give it the correct mode. With -O, cse will optimize this. */
@@ -8254,6 +8405,8 @@ expand_expr (exp, target, tmode, modifier)
case NEGATE_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
temp = expand_unop (mode,
! unsignedp && flag_trapv
&& (GET_MODE_CLASS(mode) == MODE_INT)
@@ -8264,6 +8417,8 @@ expand_expr (exp, target, tmode, modifier)
case ABS_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
/* Handle complex values specially. */
if (GET_MODE_CLASS (mode) == MODE_COMPLEX_INT
@@ -8281,7 +8436,9 @@ expand_expr (exp, target, tmode, modifier)
case MAX_EXPR:
case MIN_EXPR:
target = original_target;
- if (target == 0 || ! safe_from_p (target, TREE_OPERAND (exp, 1), 1)
+ if (target == 0
+ || modifier == EXPAND_STACK_PARM
+ || ! safe_from_p (target, TREE_OPERAND (exp, 1), 1)
|| (GET_CODE (target) == MEM && MEM_VOLATILE_P (target))
|| GET_MODE (target) != mode
|| (GET_CODE (target) == REG
@@ -8305,9 +8462,14 @@ expand_expr (exp, target, tmode, modifier)
/* At this point, a MEM target is no longer useful; we will get better
code without it. */
- if (GET_CODE (target) == MEM)
+ if (! REG_P (target))
target = gen_reg_rtx (mode);
+ /* We generate better code and avoid problems with op1 mentioning
+ target by forcing op1 into a pseudo if it isn't a constant. */
+ if (! CONSTANT_P (op1))
+ op1 = force_reg (mode, op1);
+
if (target != op0)
emit_move_insn (target, op0);
@@ -8338,6 +8500,8 @@ expand_expr (exp, target, tmode, modifier)
case BIT_NOT_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
temp = expand_unop (mode, one_cmpl_optab, op0, target, 1);
if (temp == 0)
abort ();
@@ -8345,6 +8509,8 @@ expand_expr (exp, target, tmode, modifier)
case FFS_EXPR:
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
temp = expand_unop (mode, ffs_optab, op0, target, 1);
if (temp == 0)
abort ();
@@ -8384,6 +8550,8 @@ expand_expr (exp, target, tmode, modifier)
case RROTATE_EXPR:
if (! safe_from_p (subtarget, TREE_OPERAND (exp, 1), 1))
subtarget = 0;
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
return expand_shift (code, mode, op0, TREE_OPERAND (exp, 1), target,
unsignedp);
@@ -8403,7 +8571,9 @@ expand_expr (exp, target, tmode, modifier)
case UNGT_EXPR:
case UNGE_EXPR:
case UNEQ_EXPR:
- temp = do_store_flag (exp, target, tmode != VOIDmode ? tmode : mode, 0);
+ temp = do_store_flag (exp,
+ modifier != EXPAND_STACK_PARM ? target : NULL_RTX,
+ tmode != VOIDmode ? tmode : mode, 0);
if (temp != 0)
return temp;
@@ -8452,7 +8622,9 @@ expand_expr (exp, target, tmode, modifier)
case TRUTH_ANDIF_EXPR:
case TRUTH_ORIF_EXPR:
if (! ignore
- && (target == 0 || ! safe_from_p (target, exp, 1)
+ && (target == 0
+ || modifier == EXPAND_STACK_PARM
+ || ! safe_from_p (target, exp, 1)
/* Make sure we don't have a hard reg (such as function's return
value) live across basic blocks, if not optimizing. */
|| (!optimize && GET_CODE (target) == REG
@@ -8472,6 +8644,8 @@ expand_expr (exp, target, tmode, modifier)
return ignore ? const0_rtx : target;
case TRUTH_NOT_EXPR:
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
op0 = expand_expr (TREE_OPERAND (exp, 0), target, VOIDmode, 0);
/* The parser is careful to generate TRUTH_NOT_EXPR
only with operands that are always zero or one. */
@@ -8486,7 +8660,7 @@ expand_expr (exp, target, tmode, modifier)
emit_queue ();
return expand_expr (TREE_OPERAND (exp, 1),
(ignore ? const0_rtx : target),
- VOIDmode, 0);
+ VOIDmode, modifier);
case COND_EXPR:
/* If we would have a "singleton" (see below) were it not for a
@@ -8539,6 +8713,8 @@ expand_expr (exp, target, tmode, modifier)
return const0_rtx;
}
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
op0 = expand_expr (TREE_OPERAND (exp, 0), target, mode, modifier);
if (GET_MODE (op0) == mode)
return op0;
@@ -8579,6 +8755,8 @@ expand_expr (exp, target, tmode, modifier)
if (ignore)
temp = 0;
+ else if (modifier == EXPAND_STACK_PARM)
+ temp = assign_temp (type, 0, 0, 1);
else if (original_target
&& (safe_from_p (original_target, TREE_OPERAND (exp, 0), 1)
|| (singleton && GET_CODE (original_target) == REG
@@ -8666,7 +8844,8 @@ expand_expr (exp, target, tmode, modifier)
|| (GET_CODE (temp) == REG
&& REGNO (temp) < FIRST_PSEUDO_REGISTER))
temp = gen_reg_rtx (mode);
- store_expr (singleton, temp, 0);
+ store_expr (singleton, temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
}
else
expand_expr (singleton,
@@ -8685,11 +8864,11 @@ expand_expr (exp, target, tmode, modifier)
store_expr (build (TREE_CODE (binary_op), type,
make_tree (type, temp),
TREE_OPERAND (binary_op, 1)),
- temp, 0);
+ temp, modifier == EXPAND_STACK_PARM ? 2 : 0);
else
store_expr (build1 (TREE_CODE (unary_op), type,
make_tree (type, temp)),
- temp, 0);
+ temp, modifier == EXPAND_STACK_PARM ? 2 : 0);
op1 = op0;
}
/* Check for A op 0 ? A : FOO and A op 0 ? FOO : A where OP is any
@@ -8708,11 +8887,13 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (temp) == REG
&& REGNO (temp) < FIRST_PSEUDO_REGISTER)
temp = gen_reg_rtx (mode);
- store_expr (TREE_OPERAND (exp, 1), temp, 0);
+ store_expr (TREE_OPERAND (exp, 1), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
jumpif (TREE_OPERAND (exp, 0), op0);
start_cleanup_deferral ();
- store_expr (TREE_OPERAND (exp, 2), temp, 0);
+ store_expr (TREE_OPERAND (exp, 2), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
op1 = op0;
}
else if (temp
@@ -8727,11 +8908,13 @@ expand_expr (exp, target, tmode, modifier)
if (GET_CODE (temp) == REG
&& REGNO (temp) < FIRST_PSEUDO_REGISTER)
temp = gen_reg_rtx (mode);
- store_expr (TREE_OPERAND (exp, 2), temp, 0);
+ store_expr (TREE_OPERAND (exp, 2), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
jumpifnot (TREE_OPERAND (exp, 0), op0);
start_cleanup_deferral ();
- store_expr (TREE_OPERAND (exp, 1), temp, 0);
+ store_expr (TREE_OPERAND (exp, 1), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
op1 = op0;
}
else
@@ -8745,7 +8928,8 @@ expand_expr (exp, target, tmode, modifier)
example A ? throw : E */
if (temp != 0
&& TREE_TYPE (TREE_OPERAND (exp, 1)) != void_type_node)
- store_expr (TREE_OPERAND (exp, 1), temp, 0);
+ store_expr (TREE_OPERAND (exp, 1), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
else
expand_expr (TREE_OPERAND (exp, 1),
ignore ? const0_rtx : NULL_RTX, VOIDmode, 0);
@@ -8757,7 +8941,8 @@ expand_expr (exp, target, tmode, modifier)
start_cleanup_deferral ();
if (temp != 0
&& TREE_TYPE (TREE_OPERAND (exp, 2)) != void_type_node)
- store_expr (TREE_OPERAND (exp, 2), temp, 0);
+ store_expr (TREE_OPERAND (exp, 2), temp,
+ modifier == EXPAND_STACK_PARM ? 2 : 0);
else
expand_expr (TREE_OPERAND (exp, 2),
ignore ? const0_rtx : NULL_RTX, VOIDmode, 0);
@@ -8811,11 +8996,9 @@ expand_expr (exp, target, tmode, modifier)
else
{
target = assign_temp (type, 2, 0, 1);
- /* All temp slots at this level must not conflict. */
- preserve_temp_slots (target);
SET_DECL_RTL (slot, target);
if (TREE_ADDRESSABLE (slot))
- put_var_into_stack (slot);
+ put_var_into_stack (slot, /*rescan=*/false);
/* Since SLOT is not known to the called function
to belong to its stack frame, we must build an explicit
@@ -8854,7 +9037,7 @@ expand_expr (exp, target, tmode, modifier)
/* If we must have an addressable slot, then make sure that
the RTL that we just stored in slot is OK. */
if (TREE_ADDRESSABLE (slot))
- put_var_into_stack (slot);
+ put_var_into_stack (slot, /*rescan=*/true);
}
}
@@ -8862,7 +9045,7 @@ expand_expr (exp, target, tmode, modifier)
/* Mark it as expanded. */
TREE_OPERAND (exp, 1) = NULL_TREE;
- store_expr (exp1, target, 0);
+ store_expr (exp1, target, modifier == EXPAND_STACK_PARM ? 2 : 0);
expand_decl_cleanup_eh (NULL_TREE, cleanups, CLEANUP_EH_ONLY (exp));
@@ -8947,6 +9130,8 @@ expand_expr (exp, target, tmode, modifier)
return expand_increment (exp, ! ignore, ignore);
case ADDR_EXPR:
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
/* Are we taking the address of a nested function? */
if (TREE_CODE (TREE_OPERAND (exp, 0)) == FUNCTION_DECL
&& decl_function_context (TREE_OPERAND (exp, 0)) != 0
@@ -9002,7 +9187,8 @@ expand_expr (exp, target, tmode, modifier)
forcing the SAVE_EXPR into memory. */
if (TREE_CODE (TREE_OPERAND (exp, 0)) == SAVE_EXPR)
{
- put_var_into_stack (TREE_OPERAND (exp, 0));
+ put_var_into_stack (TREE_OPERAND (exp, 0),
+ /*rescan=*/true);
op0 = SAVE_EXPR_RTL (TREE_OPERAND (exp, 0));
}
else
@@ -9055,20 +9241,30 @@ expand_expr (exp, target, tmode, modifier)
&& MEM_ALIGN (op0) < BIGGEST_ALIGNMENT)
{
tree inner_type = TREE_TYPE (TREE_OPERAND (exp, 0));
- rtx new
- = assign_stack_temp_for_type
- (TYPE_MODE (inner_type),
- MEM_SIZE (op0) ? INTVAL (MEM_SIZE (op0))
- : int_size_in_bytes (inner_type),
- 1, build_qualified_type (inner_type,
- (TYPE_QUALS (inner_type)
- | TYPE_QUAL_CONST)));
+ rtx new;
if (TYPE_ALIGN_OK (inner_type))
abort ();
+ if (TREE_ADDRESSABLE (inner_type))
+ {
+ /* We can't make a bitwise copy of this object, so fail. */
+ error ("cannot take the address of an unaligned member");
+ return const0_rtx;
+ }
+
+ new = assign_stack_temp_for_type
+ (TYPE_MODE (inner_type),
+ MEM_SIZE (op0) ? INTVAL (MEM_SIZE (op0))
+ : int_size_in_bytes (inner_type),
+ 1, build_qualified_type (inner_type,
+ (TYPE_QUALS (inner_type)
+ | TYPE_QUAL_CONST)));
+
emit_block_move (new, op0, expr_size (TREE_OPERAND (exp, 0)),
- BLOCK_OP_NORMAL);
+ (modifier == EXPAND_STACK_PARM
+ ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
+
op0 = new;
}
@@ -9284,6 +9480,8 @@ expand_expr (exp, target, tmode, modifier)
op0 = expand_expr (TREE_OPERAND (exp, 0), subtarget, VOIDmode, 0);
op1 = expand_expr (TREE_OPERAND (exp, 1), NULL_RTX, VOIDmode, 0);
binop2:
+ if (modifier == EXPAND_STACK_PARM)
+ target = 0;
temp = expand_binop (mode, this_optab, op0, op1, target,
unsignedp, OPTAB_LIB_WIDEN);
if (temp == 0)
@@ -9696,6 +9894,9 @@ do_jump (exp, if_false_label, if_true_label)
break;
case INTEGER_CST:
+ /* ??? This should never happen - but it does, GCC PR opt/14749. */
+ if (TREE_CONSTANT_OVERFLOW (exp))
+ goto normal;
temp = integer_zerop (exp) ? if_false_label : if_true_label;
if (temp)
emit_jump (temp);
@@ -9710,6 +9911,12 @@ do_jump (exp, if_false_label, if_true_label)
break;
#endif
+ case UNSAVE_EXPR:
+ do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label);
+ TREE_OPERAND (exp, 0)
+ = (*lang_hooks.unsave_expr_now) (TREE_OPERAND (exp, 0));
+ break;
+
case NOP_EXPR:
if (TREE_CODE (TREE_OPERAND (exp, 0)) == COMPONENT_REF
|| TREE_CODE (TREE_OPERAND (exp, 0)) == BIT_FIELD_REF
@@ -11032,6 +11239,7 @@ do_tablejump (index, mode, range, table_label, default_label)
temp = gen_reg_rtx (CASE_VECTOR_MODE);
vector = gen_rtx_MEM (CASE_VECTOR_MODE, index);
RTX_UNCHANGING_P (vector) = 1;
+ MEM_NOTRAP_P (vector) = 1;
convert_move (temp, vector, 0);
emit_jump_insn (gen_tablejump (temp, table_label));
@@ -11101,4 +11309,45 @@ vector_mode_valid_p (mode)
return mov_optab->handlers[innermode].insn_code != CODE_FOR_nothing;
}
+/* Return a CONST_VECTOR rtx for a VECTOR_CST tree. */
+static rtx
+const_vector_from_tree (exp)
+ tree exp;
+{
+ rtvec v;
+ int units, i;
+ tree link, elt;
+ enum machine_mode inner, mode;
+
+ mode = TYPE_MODE (TREE_TYPE (exp));
+
+ if (is_zeros_p (exp))
+ return CONST0_RTX (mode);
+
+ units = GET_MODE_NUNITS (mode);
+ inner = GET_MODE_INNER (mode);
+
+ v = rtvec_alloc (units);
+
+ link = TREE_VECTOR_CST_ELTS (exp);
+ for (i = 0; link; link = TREE_CHAIN (link), ++i)
+ {
+ elt = TREE_VALUE (link);
+
+ if (TREE_CODE (elt) == REAL_CST)
+ RTVEC_ELT (v, i) = CONST_DOUBLE_FROM_REAL_VALUE (TREE_REAL_CST (elt),
+ inner);
+ else
+ RTVEC_ELT (v, i) = immed_double_const (TREE_INT_CST_LOW (elt),
+ TREE_INT_CST_HIGH (elt),
+ inner);
+ }
+
+ /* Initialize remaining elements to 0. */
+ for (; i < units; ++i)
+ RTVEC_ELT (v, i) = CONST0_RTX (inner);
+
+ return gen_rtx_raw_CONST_VECTOR (mode, v);
+}
+
#include "gt-expr.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index 6e8d19e994b..c38cd9946c9 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -1,6 +1,6 @@
/* Definitions for code generation pass of GNU compiler.
Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -44,13 +44,19 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define QUEUED_NEXT(P) XEXP (P, 4)
/* This is the 4th arg to `expand_expr'.
+ EXPAND_STACK_PARM means we are possibly expanding a call param onto
+ the stack. Choosing a value of 2 isn't special; It just allows
+ some code optimization in store_expr.
EXPAND_SUM means it is ok to return a PLUS rtx or MULT rtx.
EXPAND_INITIALIZER is similar but also record any labels on forced_labels.
EXPAND_CONST_ADDRESS means it is ok to return a MEM whose address
is a constant that is not a legitimate address.
- EXPAND_WRITE means we are only going to write to the resulting rtx. */
-enum expand_modifier {EXPAND_NORMAL, EXPAND_SUM, EXPAND_CONST_ADDRESS,
- EXPAND_INITIALIZER, EXPAND_WRITE};
+ EXPAND_WRITE means we are only going to write to the resulting rtx.
+ EXPAND_MEMORY means we are interested in a memory result, even if
+ the memory is constant and we could have propagated a constant value. */
+enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM = 2, EXPAND_SUM,
+ EXPAND_CONST_ADDRESS, EXPAND_INITIALIZER, EXPAND_WRITE,
+ EXPAND_MEMORY};
/* Prevent the compiler from deferring stack pops. See
inhibit_defer_pop for more information. */
@@ -398,8 +404,8 @@ extern rtx convert_modes PARAMS ((enum machine_mode, enum machine_mode,
enum block_op_methods
{
BLOCK_OP_NORMAL,
- BLOCK_OP_CALL_PARM,
- BLOCK_OP_NO_LIBCALL
+ BLOCK_OP_NO_LIBCALL,
+ BLOCK_OP_CALL_PARM
};
extern rtx emit_block_move PARAMS ((rtx, rtx, rtx, enum block_op_methods));
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 8b378cf0f1a..b85aa1ee8b9 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,249 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+Sat May 8 17:50:43 2004 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+
+ 2004-02-24 Michael Matz <matz@suse.de>
+
+ * sta.c (ffesta_save_): Don't break aliasing rules.
+
+2004-04-18 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * g77.texi (Floating-point Errors): Avoid referencing
+ http://www.linuxsupportline.com/~billm/ which as has been hijacked.
+
+2004-03-21 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * g77.texi (Aligned Data): Remove obsolete paragraph including a
+ broken link.
+ (Floating-point Errors): Remove links to http://www.validgh.com/
+ which was "hijacked".
+ (Language): Fix link to Fortran books.
+ (Projects): Remove obsolete paragraph including a broken link to
+ ftp://alpha.gnu.org/gnu/g77/projects/.
+ (Trouble): Remove obsolete paragraph including a broken link to
+ ftp://alpha.gnu.org/g77.plan.
+
+ * invoke.texi (Overall Options): Remove broken reference to
+ rat7.uue (which was of dubious copyright status anyways).
+
+ * root.texi (www-burley): Fix URL.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-01-14 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * README: Remove.
+
+2003-12-31 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/12632
+ * com.c (ffecom_subscript_check_): Take as an extra argument the
+ (possibly NULL) decl of the array. Don't create unnecessary tree
+ nodes if the array index is known to be safe at compile-time.
+ If the array index is unsafe, force the array decl into memory to
+ avoid RTL expansion problems.
+ (ffecom_array_ref_): Update calls to ffecom_subscript_check_.
+ (ffecom_char_args_x_): Likewise.
+
+2003-12-05 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR fortran/12633
+ Revert 2002-05-09 Hassan Aurag <aurag@cae.com>
+
+ * expr.c (ffeexpr_reduced_ugly2log_): Allow logicals-as-integers
+ under -fugly-logint as arguments of .and., .or., .xor.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-09 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR Fortran/11301
+ * com.c (ffecom_sym_transform_): finish_decl should have
+ the same last argument as start_decl.
+
+Tue Jul 8 15:18:14 2003 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (f/g77.dvi): Replace PWD with PWD_COMMAND.
+
+2003-07-05 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR Fortran/11301
+ * com.c (ffecom_sym_transform_): Only install
+ FFEINFO_whereGLOBAL symbols in the global binding
+ level if not -fno-globals.
+
+2003-06-13 Richard Henderson <rth@redhat.com>
+
+ PR debug/9864
+ * com.c (ffecom_sym_transform_): Install FFEINFO_whereGLOBAL
+ symbols in the global binding level.
+
+2003-05-18 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR fortran/10726
+ * intdoc.in: Fix documentation of IDATE.
+ * intdoc.texi: Regenerate.
+ * news.texi: Update due to the above.
+
+2003-05-16 Wolfgang Bangerth <bangerth@dealii.org>
+
+ * g77.texi: Remove most of the preface of the bugs section.
+
+2003-05-15 Wolfgang Bangerth <bangerth@dealii.org>
+
+ * g77.texi: Remove most of the bug reporting instructions and
+ merge them into bugs.html.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-11 Bud Davis <bdavis9659@comcast.net>
+
+ PR Fortran/9263
+ * gcc/f/data.c (ffedata_advance_): Check initial, final and
+ increment values for INTEGER typeness.
+ * gcc/f/news.texi: Document these fixes.
+
+2003-03-26 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/9793
+ * target.h (ffetarget_divide_integer1): Perform division by -1
+ using negation to prevent possible overflow trap on the host.
+
+2003-03-25 Marcelo Abreu <mmabreu@inf.ufrgs.br>
+
+ PR fortran/10204
+ * ffe.texi: Reference the GCC web site in the URL.
+
+2003-03-24 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR fortran/10197
+ * news.texi: Document PR fortran/10197 fixed.
+
+Sun Mar 23 23:43:45 2003 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7086
+ * com.c (ffecom_sym_transform_): Adjust calls to
+ put_var_into_stack.
+ (ffe_mark_addressable): Likewise.
+
+2003-03-22 Bud Davis <bdavis9659@comcast.net>
+
+ * com.c (ffecom_constantunion_with_type): New function.
+ * com.h (ffecom_constantunion_with_type): Declare.
+ * stc.c (ffestc_R810): Check for kind type.
+ * ste.c (ffeste_R810): Use ffecom_constantunion_with_type
+ to discern SELECT CASE variables.
+
+2003-03-15 Andreas Jaeger <aj@suse.de>
+
+ * g77spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
+ (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
+
+2003-02-21 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * news.texi: Document fixing PR fortran/9038.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * g77.texi, invoke.texi: Update to GFDL 1.2.
+
+2003-01-30 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * news.texi: Document fixing PR fortran/7681
+ and PR optimization/9258.
+
+2003-01-26 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * lang-specs.h: Revert change to solve 9038.
+ * news.texi: Document this.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (f77.install-common, f77.install-info)
+ (f77.install-man, f77.uninstall): Prepend $(DESTDIR) to
+ destination paths in all (un)installation commands.
+
+2003-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl>
+
+ PR Fortran/9038
+ * lang-specs.h: Prevent -f<option> from being passed
+ to cc1.
+ * news.texi: Document this fix.
+
+2003-01-03 Bud Davis <bdavis11@directvinternet.com>
+
+ * stc.c (ffestc_R810): Allow any kind integer in
+ case statements.
+ * ste.c (ffeste_R810): Give error message when
+ case selector exceeds its valid values.
+
+2003-01-01 Andreas Jaeger <aj@suse.de>
+
+ * f/Make-lang.in ($(srcdir)/f/BUGS): Add include path for
+ gcc-common.texi.
+ ($(srcdir)/f/NEWS): Likewise.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * g77.texi: Use @copying.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * root.texi: Include gcc-common.texi.
+ * bugs.texi, news.texi: Don't include root.texi as part of full
+ manual.
+ * g77.texi: Update for use of gcc-common.texi.
+ * Make-lang.in ($(srcdir)/f/g77.info, f/g77.dvi): Depend on
+ $(srcdir)/doc/include/gcc-common.texi.
+
+2002-12-19 Kazu Hirata <kazu@cs.umass.edu>
+
+ * intdoc.in: Fix typos.
+
+2002-12-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * g77.texi: Fix typos.
+ * intdoc.texi: Likewise.
+ * news.texi: Follow spelling conventions.
+
+Mon Dec 16 13:55:24 2002 Mark Mitchell <mark@codesourcery.com>
+
+ * root.texi (DEVELOPMENT): @clear it.
+
2002-11-20 Toon Moene <toon@moene.indiv.nluug.nl>
* invoke.texi: Explain the purpose of -fmove-all-movables,
@@ -31,7 +277,7 @@
2002-10-15 Richard Henderson <rth@redhat.com>
- * target.h (ffetarget_print_real1, ffetarget_print_real2): Use
+ * target.h (ffetarget_print_real1, ffetarget_print_real2): Use
real_to_decimal directly, and with the new arguments.
2002-09-23 Zack Weinberg <zack@codesourcery.com>
diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in
index df31b1a6168..1286f07e6d4 100644
--- a/gcc/f/Make-lang.in
+++ b/gcc/f/Make-lang.in
@@ -1,5 +1,5 @@
# Top level makefile fragment for GNU Fortran. -*-makefile-*-
-# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GNU Fortran.
@@ -153,7 +153,8 @@ $(srcdir)/f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \
$(srcdir)/f/root.texi $(srcdir)/doc/include/fdl.texi \
$(srcdir)/doc/include/gpl.texi \
- $(srcdir)/doc/include/funding.texi
+ $(srcdir)/doc/include/funding.texi \
+ $(srcdir)/doc/include/gcc-common.texi
if [ x$(BUILD_INFO) = xinfo ]; then \
rm -f $(srcdir)/f/g77.info-*; \
cd $(srcdir)/f && $(MAKEINFO) -I../doc/include -o g77.info g77.texi; \
@@ -164,8 +165,9 @@ f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \
$(srcdir)/f/news.texi $(srcdir)/f/intdoc.texi \
$(srcdir)/f/root.texi $(srcdir)/doc/include/fdl.texi \
$(srcdir)/doc/include/gpl.texi \
- $(srcdir)/doc/include/funding.texi
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(srcdir)/doc/include/funding.texi \
+ $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
cd f && $(TEXI2DVI) -I $$s/doc/include $$s/f/g77.texi
$(srcdir)/f/g77.1: $(srcdir)/f/invoke.texi
@@ -224,11 +226,11 @@ f/ansify$(build_exeext): f/ansify.c hconfig.h $(SYSTEM_H)
$(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \
- --no-validate -o BUGS bugs0.texi
+ --no-validate -I../doc/include -o BUGS bugs0.texi
$(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi
cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \
- --no-validate -o NEWS news0.texi
+ --no-validate -I../doc/include -o NEWS news0.texi
f77.rebuilt: f/g77.info $(srcdir)/f/BUGS \
$(srcdir)/f/NEWS
@@ -244,13 +246,13 @@ f77.install-normal:
f77.install-common: installdirs
-if [ -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
- rm -f $(bindir)/$(G77_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) g77-cross$(exeext) $(bindir)/$(G77_CROSS_NAME)$(exeext); \
- chmod a+x $(bindir)/$(G77_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(G77_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) g77-cross$(exeext) $(DESTDIR)$(bindir)/$(G77_CROSS_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(G77_CROSS_NAME)$(exeext); \
else \
- rm -f $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) g77$(exeext) $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
- chmod a+x $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(G77_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) g77$(exeext) $(DESTDIR)$(bindir)/$(G77_INSTALL_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(G77_INSTALL_NAME)$(exeext); \
fi ; \
else true; fi
@if [ -f f77-install-ok -o -f $(srcdir)/f77-install-ok ]; then \
@@ -267,43 +269,43 @@ f77.install-common: installdirs
# to do the install. The sed rule was copied from stmp-int-hdrs.
f77.install-info: f77.info installdirs
if [ -f $(srcdir)/f/g77.info ] ; then \
- rm -f $(infodir)/g77.info*; \
+ rm -f $(DESTDIR)$(infodir)/g77.info*; \
for f in $(srcdir)/f/g77.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
- $(INSTALL_DATA) $$f $(infodir)/$$realfile; \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
done; \
- chmod a-x $(infodir)/g77.info*; \
+ chmod a-x $(DESTDIR)$(infodir)/g77.info*; \
else true; fi
@if [ -f $(srcdir)/f/g77.info ] ; then \
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- echo " install-info --info-dir=$(infodir) $(infodir)/g77.info"; \
- install-info --info-dir=$(infodir) $(infodir)/g77.info || : ; \
+ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/g77.info"; \
+ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/g77.info || : ; \
else : ; fi; \
else : ; fi
f77.install-man: $(GENERATED_MANPAGES) installdirs
-if [ -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
- rm -f $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/f/g77.1 $(DESTDIR)$(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
else \
- rm -f $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/f/g77.1 $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
fi; \
else true; fi
f77.uninstall: installdirs
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- echo " install-info --delete --info-dir=$(infodir) $(infodir)/g77.info"; \
- install-info --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \
+ echo " install-info --delete --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/g77.info"; \
+ install-info --delete --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/g77.info || : ; \
else : ; fi
- rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
- rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \
- rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
- rm -rf $(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
- rm -rf $(infodir)/g77.info*
+ rm -rf $(DESTDIR)$(bindir)/$(G77_INSTALL_NAME)$(exeext); \
+ rm -rf $(DESTDIR)$(bindir)/$(G77_CROSS_NAME)$(exeext); \
+ rm -rf $(DESTDIR)$(man1dir)/$(G77_INSTALL_NAME)$(man1ext); \
+ rm -rf $(DESTDIR)$(man1dir)/$(G77_CROSS_NAME)$(man1ext); \
+ rm -rf $(DESTDIR)$(infodir)/g77.info*
#
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.
diff --git a/gcc/f/README b/gcc/f/README
deleted file mode 100644
index fdebfdca176..00000000000
--- a/gcc/f/README
+++ /dev/null
@@ -1,7 +0,0 @@
-1995-02-15
-
-This directory is the f/ subdirectory, which is designed to
-be a subdirectory in a gcc development tree, i.e. named gcc/f/.
-
-Please see gcc/README.g77 for information on the contents of this
-directory.
diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi
index f82d1bda2a6..176072c0d21 100644
--- a/gcc/f/bugs.texi
+++ b/gcc/f/bugs.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@@ -11,9 +11,8 @@
@set last-update-bugs 2002-02-01
-@include root.texi
-
@ifset DOC-BUGS
+@include root.texi
@c The immediately following lines apply to the BUGS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 1e066f5431d..14445cdd13e 100644
--- a/gcc/f/com.c
+++ b/gcc/f/com.c
@@ -639,15 +639,16 @@ static GTY(()) tree shadowed_labels;
/* Return the subscript expression, modified to do range-checking.
- `array' is the array to be checked against.
+ `array' is the array type to be checked against.
`element' is the subscript expression to check.
`dim' is the dimension number (starting at 0).
`total_dims' is the total number of dimensions (0 for CHARACTER substring).
+ `item' is the array decl or NULL_TREE.
*/
static tree
ffecom_subscript_check_ (tree array, tree element, int dim, int total_dims,
- const char *array_name)
+ const char *array_name, tree item)
{
tree low = TYPE_MIN_VALUE (TYPE_DOMAIN (array));
tree high = TYPE_MAX_VALUE (TYPE_DOMAIN (array));
@@ -714,6 +715,10 @@ ffecom_subscript_check_ (tree array, tree element, int dim, int total_dims,
}
}
+ /* If the array index is safe at compile-time, return element. */
+ if (integer_nonzerop (cond))
+ return element;
+
{
int len;
char *proc;
@@ -808,13 +813,10 @@ ffecom_subscript_check_ (tree array, tree element, int dim, int total_dims,
TREE_SIDE_EFFECTS (die) = 1;
die = convert (void_type_node, die);
- element = ffecom_3 (COND_EXPR,
- TREE_TYPE (element),
- cond,
- element,
- die);
+ if (integer_zerop (cond) && item)
+ ffe_mark_addressable (item);
- return element;
+ return ffecom_3 (COND_EXPR, TREE_TYPE (element), cond, element, die);
}
/* Return the computed element of an array reference.
@@ -900,7 +902,7 @@ ffecom_arrayref_ (tree item, ffebld expr, int want_ptr)
element = ffecom_expr_ (dims[i], NULL, NULL, NULL, FALSE, TRUE);
if (flag_bounds_check)
element = ffecom_subscript_check_ (array, element, i, total_dims,
- array_name);
+ array_name, item);
if (element == error_mark_node)
return element;
@@ -946,7 +948,7 @@ ffecom_arrayref_ (tree item, ffebld expr, int want_ptr)
element = ffecom_expr_ (dims[i], NULL, NULL, NULL, FALSE, TRUE);
if (flag_bounds_check)
element = ffecom_subscript_check_ (array, element, i, total_dims,
- array_name);
+ array_name, item);
if (element == error_mark_node)
return element;
@@ -2045,7 +2047,7 @@ ffecom_char_args_x_ (tree *xitem, tree *length, ffebld expr, bool with_null)
end_tree = ffecom_expr (end);
if (flag_bounds_check)
end_tree = ffecom_subscript_check_ (array, end_tree, 1, 0,
- char_name);
+ char_name, NULL_TREE);
end_tree = convert (ffecom_f2c_ftnlen_type_node,
end_tree);
@@ -2063,7 +2065,7 @@ ffecom_char_args_x_ (tree *xitem, tree *length, ffebld expr, bool with_null)
start_tree = ffecom_expr (start);
if (flag_bounds_check)
start_tree = ffecom_subscript_check_ (array, start_tree, 0, 0,
- char_name);
+ char_name, NULL_TREE);
start_tree = convert (ffecom_f2c_ftnlen_type_node,
start_tree);
@@ -2096,7 +2098,7 @@ ffecom_char_args_x_ (tree *xitem, tree *length, ffebld expr, bool with_null)
end_tree = ffecom_expr (end);
if (flag_bounds_check)
end_tree = ffecom_subscript_check_ (array, end_tree, 1, 0,
- char_name);
+ char_name, NULL_TREE);
end_tree = convert (ffecom_f2c_ftnlen_type_node,
end_tree);
@@ -7445,7 +7447,7 @@ ffecom_sym_transform_ (ffesymbol s)
assert (et != NULL_TREE);
if (! TREE_STATIC (et))
- put_var_into_stack (et);
+ put_var_into_stack (et, /*rescan=*/true);
offset = ffestorag_modulo (est)
+ ffestorag_offset (ffesymbol_storage (s))
@@ -8091,8 +8093,8 @@ ffecom_sym_transform_ (ffesymbol s)
DECL_EXTERNAL (t) = 1;
TREE_PUBLIC (t) = 1;
- t = start_decl (t, FALSE);
- finish_decl (t, NULL_TREE, FALSE);
+ t = start_decl (t, ffe_is_globals ());
+ finish_decl (t, NULL_TREE, ffe_is_globals ());
if ((g != NULL)
&& ((ffeglobal_type (g) == FFEGLOBAL_typeSUBR)
@@ -10593,6 +10595,78 @@ ffecom_constantunion (ffebldConstantUnion *cu, ffeinfoBasictype bt,
return item;
}
+/* Transform constant-union to tree, with the type known. */
+
+tree
+ffecom_constantunion_with_type (ffebldConstantUnion *cu,
+ tree tree_type, ffebldConst ct)
+{
+ tree item;
+
+ int val;
+
+ switch (ct)
+ {
+#if FFETARGET_okINTEGER1
+ case FFEBLD_constINTEGER1:
+ val = ffebld_cu_val_integer1 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okINTEGER2
+ case FFEBLD_constINTEGER2:
+ val = ffebld_cu_val_integer2 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okINTEGER3
+ case FFEBLD_constINTEGER3:
+ val = ffebld_cu_val_integer3 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okINTEGER4
+ case FFEBLD_constINTEGER4:
+ val = ffebld_cu_val_integer4 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okLOGICAL1
+ case FFEBLD_constLOGICAL1:
+ val = ffebld_cu_val_logical1 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okLOGICAL2
+ case FFEBLD_constLOGICAL2:
+ val = ffebld_cu_val_logical2 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okLOGICAL3
+ case FFEBLD_constLOGICAL3:
+ val = ffebld_cu_val_logical3 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+#if FFETARGET_okLOGICAL4
+ case FFEBLD_constLOGICAL4:
+ val = ffebld_cu_val_logical4 (*cu);
+ item = build_int_2 (val, (val < 0) ? -1 : 0);
+ break;
+#endif
+ default:
+ assert ("constant type not supported"==NULL);
+ return error_mark_node;
+ break;
+ }
+
+ TREE_TYPE (item) = tree_type;
+
+ TREE_CONSTANT (item) = 1;
+
+ return item;
+}
/* Transform expression into constant tree.
If the expression can be transformed into a tree that is constant,
@@ -14223,7 +14297,7 @@ ffe_mark_addressable (exp)
}
assert ("address of register var requested" == NULL);
}
- put_var_into_stack (x);
+ put_var_into_stack (x, /*rescan=*/true);
/* drops in */
case FUNCTION_DECL:
diff --git a/gcc/f/com.h b/gcc/f/com.h
index 8b8bb861e82..b58e5ba1205 100644
--- a/gcc/f/com.h
+++ b/gcc/f/com.h
@@ -210,6 +210,8 @@ tree ffecom_arg_expr (ffebld expr, tree *length);
tree ffecom_arg_ptr_to_const_expr (ffebld expr, tree *length);
tree ffecom_arg_ptr_to_expr (ffebld expr, tree *length);
tree ffecom_call_gfrt (ffecomGfrt ix, tree args, tree hook);
+tree ffecom_constantunion_with_type (ffebldConstantUnion *cu,
+ tree tree_type,ffebldConst ct);
tree ffecom_constantunion (ffebldConstantUnion *cu, ffeinfoBasictype bt,
ffeinfoKindtype kt, tree tree_type);
tree ffecom_const_expr (ffebld expr);
diff --git a/gcc/f/data.c b/gcc/f/data.c
index 3e1ae6213cb..91b835dbc60 100644
--- a/gcc/f/data.c
+++ b/gcc/f/data.c
@@ -1,5 +1,5 @@
/* data.c -- Implementation File (module.c template V1.0)
- Copyright (C) 1995, 1996, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 2002, 2003 Free Software Foundation, Inc.
Contributed by James Craig Burley.
This file is part of GNU Fortran.
@@ -591,13 +591,29 @@ tail_recurse: /* :::::::::::::::::::: */
assert (ffeinfo_kindtype (ffebld_info (itervar))
== FFEINFO_kindtypeINTEGERDEFAULT);
ffedata_stack_->itervar = ffebld_symter (itervar);
-
+ if (ffeinfo_basictype (ffebld_info (start)) != FFEINFO_basictypeINTEGER)
+ {
+ ffebad_start (FFEBAD_DATA_EVAL);
+ ffest_ffebad_here_current_stmt (0);
+ ffebad_finish ();
+ ffedata_pop_ ();
+ ffedata_reported_error_ = TRUE;
+ return FALSE;
+ }
assert (ffeinfo_basictype (ffebld_info (start))
== FFEINFO_basictypeINTEGER);
assert (ffeinfo_kindtype (ffebld_info (start))
== FFEINFO_kindtypeINTEGERDEFAULT);
ffesymbol_set_value (ffedata_stack_->itervar, ffedata_eval_integer1_ (start));
-
+ if (ffeinfo_basictype (ffebld_info (end)) != FFEINFO_basictypeINTEGER)
+ {
+ ffebad_start (FFEBAD_DATA_EVAL);
+ ffest_ffebad_here_current_stmt (0);
+ ffebad_finish ();
+ ffedata_pop_ ();
+ ffedata_reported_error_ = TRUE;
+ return FALSE;
+ }
assert (ffeinfo_basictype (ffebld_info (end))
== FFEINFO_basictypeINTEGER);
assert (ffeinfo_kindtype (ffebld_info (end))
@@ -608,6 +624,15 @@ tail_recurse: /* :::::::::::::::::::: */
ffedata_stack_->increment = 1;
else
{
+ if (ffeinfo_basictype (ffebld_info (incr)) != FFEINFO_basictypeINTEGER)
+ {
+ ffebad_start (FFEBAD_DATA_EVAL);
+ ffest_ffebad_here_current_stmt (0);
+ ffebad_finish ();
+ ffedata_pop_ ();
+ ffedata_reported_error_ = TRUE;
+ return FALSE;
+ }
assert (ffeinfo_basictype (ffebld_info (incr))
== FFEINFO_basictypeINTEGER);
assert (ffeinfo_kindtype (ffebld_info (incr))
diff --git a/gcc/f/expr.c b/gcc/f/expr.c
index 4824be7cdb3..985f494f304 100644
--- a/gcc/f/expr.c
+++ b/gcc/f/expr.c
@@ -11502,24 +11502,6 @@ ffeexpr_reduced_ugly2log_ (ffebld reduced, ffeexprExpr_ l, ffeexprExpr_ op,
/* else Leave it alone. */
}
- if (lbt == FFEINFO_basictypeLOGICAL)
- {
- ffebld_set_left (reduced, ffeexpr_convert (ffebld_left (reduced),
- l->token, op->token, FFEINFO_basictypeINTEGER,
- FFEINFO_kindtypeINTEGERDEFAULT, 0,
- FFETARGET_charactersizeNONE,
- FFEEXPR_contextLET));
- }
-
- if (rbt == FFEINFO_basictypeLOGICAL)
- {
- ffebld_set_right (reduced, ffeexpr_convert (ffebld_right (reduced),
- r->token, op->token, FFEINFO_basictypeINTEGER,
- FFEINFO_kindtypeINTEGERDEFAULT, 0,
- FFETARGET_charactersizeNONE,
- FFEEXPR_contextLET));
- }
-
return reduced;
}
diff --git a/gcc/f/ffe.texi b/gcc/f/ffe.texi
index 4136a47a745..9aa6a973e3b 100644
--- a/gcc/f/ffe.texi
+++ b/gcc/f/ffe.texi
@@ -17,7 +17,7 @@ search for the string TBD.
If you want to help by working on one or more of these items,
email @email{gcc@@gcc.gnu.org}.
If you're planning to do more than just research issues and offer comments,
-see @uref{http://www.gnu.org/software/gcc/contribute.html} for steps you might
+see @uref{http://gcc.gnu.org/contribute.html} for steps you might
need to take first.
@menu
diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi
index 9ab2527795a..bcfffcc17fb 100644
--- a/gcc/f/g77.texi
+++ b/gcc/f/g77.texi
@@ -2,8 +2,8 @@
@c %**start of header
@setfilename g77.info
-@set last-update 2002-04-29
-@set copyrights-g77 1995,1996,1997,1998,1999,2000,2001,2002
+@set last-update 2003-05-13
+@set copyrights-g77 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
@include root.texi
@@ -24,33 +24,6 @@
@c and make sure the following does NOT begin with '@c':
@c @clear USING
-@c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition. (from gcc.texi)
-@c @smallbook
-
-@c i also commented out the finalout command, so if there *are* any
-@c overfulls, you'll (hopefully) see the rectangle in the right hand
-@c margin. -- burley 1999-03-13 (from mew's comment in gcc.texi).
-@c @finalout
-
-@macro gcctabopt{body}
-@code{\body\}
-@end macro
-@macro gccoptlist{body}
-@smallexample
-\body\
-@end smallexample
-@end macro
-@c Makeinfo handles the above macro OK, TeX needs manual line breaks;
-@c they get lost at some point in handling the macro. But if @macro is
-@c used here rather than @alias, it produces double line breaks.
-@iftex
-@alias gol = *
-@end iftex
-@ifnottex
-@macro gol
-@end macro
-@end ifnottex
-
@ifset INTERNALS
@ifset USING
@settitle Using and Porting GNU Fortran
@@ -89,6 +62,29 @@
@c \global\normaloffset =0.75in
@c @end tex
+@copying
+Copyright @copyright{} @value{copyrights-g77} Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'' and ``Funding
+Free Software'', the Front-Cover
+texts being (a) (see below), and with the Back-Cover Texts being (b)
+(see below). A copy of the license is included in the section entitled
+``GNU Free Documentation License''.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@end copying
+
@ifinfo
@dircategory Programming
@direntry
@@ -114,27 +110,7 @@ Published by the Free Software Foundation
59 Temple Place - Suite 330
Boston, MA 02111-1307 USA
-Copyright (C) @value{copyrights-g77} Free Software Foundation, Inc.
-
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end ifinfo
Contributed by James Craig Burley (@email{@value{email-burley}}).
@@ -142,7 +118,6 @@ Inspired by a first pass at translating @file{g77-0.5.16/f/DOC} that
was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@setchapternewpage odd
-@c @finalout
@titlepage
@ifset INTERNALS
@ifset USING
@@ -164,8 +139,6 @@ was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
@center for version @value{which-g77}
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} @value{copyrights-g77} Free Software Foundation, Inc.
-@sp 2
For the @value{which-g77} Version*
@sp 1
Published by the Free Software Foundation @*
@@ -175,24 +148,7 @@ Boston, MA 02111-1307, USA@*
@c Printed copies are available for $? each.@*
@c ISBN ???
@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'' and ``Funding
-Free Software'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end titlepage
@summarycontents
@contents
@@ -893,7 +849,7 @@ by GNU Fortran.
@cindex textbooks
(If you need a text on Fortran,
a few freely available electronic references have pointers from
-@uref{http://www.fortran.com/fortran/Books/}. There is a `cooperative
+@uref{http://www.fortran.com/F/books.html}. There is a `cooperative
net project', @cite{User Notes on Fortran Programming} at
@uref{ftp://vms.huji.ac.il/fortran/} and mirrors elsewhere; some of this
material might not apply specifically to @command{g77}.)
@@ -1045,7 +1001,7 @@ As such, GNU users rarely need consider just what kind of underlying
hardware (or, in many cases, operating system) they are using at any
particular time.
They can use and write software designed for a general-purpose,
-widely portable, heterogenous environment---the GNU environment.
+widely portable, heterogeneous environment---the GNU environment.
In line with this philosophy, GNU Fortran must evolve into a product
that is widely ported and portable not only in the sense that it can
@@ -7512,7 +7468,7 @@ set up this kind of aliasing.
(The FORTRAN 77 standard's prohibition of this sort of
overlap, generally referred to therein as ``storage
-assocation'', appears in Sections 15.9.3.6.
+association'', appears in Sections 15.9.3.6.
This prohibition allows implementations, such as @command{g77},
to, for example, implement the passing of procedures and
even values in @code{COMMON} via copy operations into local,
@@ -8044,13 +8000,6 @@ Progress is being made on making this work
@command{gcc}, and some of the relevant operating systems
(such as GNU/Linux).
-@cindex alignment testing
-@cindex testing alignment
-A package that tests the degree to which a Fortran compiler
-(such as @command{g77})
-aligns 64-bit floating-point variables and arrays
-is available at @uref{ftp://alpha.gnu.org/gnu/g77/align/}.
-
@node Prefer Automatic Uninitialized Variables
@subsection Prefer Automatic Uninitialized Variables
@@ -8132,10 +8081,6 @@ Some of these problems are due to bugs in other software, some are
missing features that are too much work to add, and some are places
where people's opinions differ as to what is best.
-To find out about major bugs discovered in the current release and
-possible workarounds for them, see
-@uref{ftp://alpha.gnu.org/g77.plan}.
-
(Note that some of this portion of the manual is lifted
directly from the @command{gcc} manual, with minor modifications
to tailor it to users of @command{g77}.
@@ -8671,24 +8616,17 @@ Goldberg, `What Every Computer Scientist Should Know About
Floating-Point Arithmetic', Computing Surveys, 23, March 1991, pp.@:
5-48.
An online version is available at
-@uref{http://docs.sun.com/},
-and there is a supplemented version, in PostScript form, at
-@uref{http://www.validgh.com/goldberg/paper.ps}.
+@uref{http://docs.sun.com/}.
Information related to the IEEE 754
floating-point standard by a leading light can be found at
@uref{http://http.cs.berkeley.edu/%7Ewkahan/ieee754status/};
see also slides from the short course referenced from
@uref{http://http.cs.berkeley.edu/%7Efateman/}.
-@uref{http://www.linuxsupportline.com/%7Ebillm/} has a brief
-guide to IEEE 754, a somewhat x86-GNU/Linux-specific FAQ,
-and library code for GNU/Linux x86 systems.
The supplement to the PostScript-formatted Goldberg document,
referenced above, is available in HTML format.
-See `Differences Among IEEE 754 Implementations' by Doug Priest,
-available online at
-@uref{http://www.validgh.com/goldberg/addendum.html}.
+See `Differences Among IEEE 754 Implementations' by Doug Priest.
This document explores some of the issues surrounding computing
of extended (80-bit) results on processors such as the x86,
especially when those results are arbitrarily truncated
@@ -10464,30 +10402,11 @@ enable/disable/delete/hide intrinsics from the command line?
Your bug reports play an essential role in making GNU Fortran reliable.
When you encounter a problem, the first thing to do is to see if it is
-already known.
-@xref{Trouble}.
-If it isn't known, then you should report the problem.
-
-Reporting a bug might help you by bringing a solution to your problem, or
-it might not.
-(If it does not, look in the service directory; see
-@ref{Service}.)
-In any case, the principal function of a bug report is
-to help the entire community by making the next version of GNU Fortran work
-better.
-Bug reports are your contribution to the maintenance of GNU Fortran.
-
-Since the maintainers are very overloaded, we cannot respond to every
-bug report.
-However, if the bug has not been fixed, we are likely to
-send you a patch and ask you to tell us whether it works.
-
-In order for a bug report to serve its purpose, you must include the
-information that makes for fixing the bug.
+already known. @xref{Trouble}. If it isn't known, then you should
+report the problem.
@menu
* Criteria: Bug Criteria. Have you really found a bug?
-* Where: Bug Lists. Where to send your bug report.
* Reporting: Bug Reporting. How to report a bug effectively.
@end menu
@@ -10678,348 +10597,15 @@ It might mean the bug is in your code, and that @command{g77} simply
exposes it more readily than other compilers.
@end itemize
-@node Bug Lists
-@section Where to Report Bugs
-@cindex bug report mailing lists
-@kindex @value{email-bugs}
-Send bug reports for GNU Fortran to @email{@value{email-bugs}}.
-
-Often people think of posting bug reports to a newsgroup instead of
-mailing them.
-This sometimes appears to work, but it has one problem which can be
-crucial: a newsgroup posting does not contain a mail path back to the
-sender.
-Thus, if maintainers need more information, they might be unable
-to reach you. For this reason, you should always send bug reports by
-mail to the proper mailing list.
-
-As a last resort, send bug reports on paper to:
-
-@example
-GNU Compiler Bugs
-Free Software Foundation
-59 Temple Place - Suite 330
-Boston, MA 02111-1307, USA
-@end example
-
@node Bug Reporting
@section How to Report Bugs
@cindex compiler bugs, reporting
-The fundamental principle of reporting bugs usefully is this:
-@strong{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 rarely helpful.
-We respond by asking for enough details to enable us to investigate.
-You might as well expedite matters by sending them to begin with.
-(Besides, there are enough bells ringing around here as it is.)
-
-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.
-
-Do not compress and encode any part of your bug report using programs
-such as @file{uuencode}.
-If you do so it will slow down the processing
-of your bug.
-If you must submit multiple large files, use @file{shar},
-which allows us to read your message without having to run any
-decompression programs.
-
-(As a special exception for GNU Fortran bug-reporting, at least
-for now, if you are sending more than a few lines of code, if
-your program's source file format contains ``interesting'' things
-like trailing spaces or strange characters, or if you need to
-include binary data files, it is acceptable to put all the
-files together in a @command{tar} archive, and, whether you need to
-do that, it is acceptable to then compress the single file (@command{tar}
-archive or source file)
-using @command{gzip} and encode it via @command{uuencode}.
-Do not use any MIME stuff---the current maintainer can't decode this.
-Using @command{compress} instead of @command{gzip} is acceptable, assuming
-you have licensed the use of the patented algorithm in
-@command{compress} from Unisys.)
-
-To enable someone to investigate the bug, you should include all these
-things:
-
-@itemize @bullet
-@item
-The version of GNU Fortran.
-You can get this by running @command{g77} with the @option{-v} option.
-(Ignore any error messages that might be displayed
-when the linker is run.)
-
-Without this, we won't know whether there is any point in looking for
-the bug in the current version of GNU Fortran.
-
-@item
-@cindex preprocessor
-@cindex cpp program
-@cindex programs, cpp
-@pindex cpp
-A complete input file that will reproduce the bug.
-
-If your source file(s) require preprocessing
-(for example, their names have suffixes like
-@samp{.F}, @samp{.fpp}, @samp{.FPP}, and @samp{.r}),
-and the bug is in the compiler proper (@file{f771})
-or in a subsequent phase of processing,
-run your source file through the C preprocessor
-by doing @samp{g77 -E @var{sourcefile} > @var{newfile}}.
-Then, include the contents of @var{newfile} in the bug report.
-(When you do this, use the same preprocessor options---such as
-@option{-I}, @option{-D}, and @option{-U}---that you used in actual
-compilation.)
-
-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.
-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
-can depend on every little detail of the source and include files
-that trigger them.
-
-@item
-@cindex included files
-@cindex INCLUDE directive
-@cindex directive, INCLUDE
-@cindex #include directive
-@cindex directive, #include
-Note that you should include with your bug report any files
-included by the source file
-(via the @code{#include} or @code{INCLUDE} directive)
-that you send, and any files they include, and so on.
-
-It is not necessary to replace
-the @code{#include} and @code{INCLUDE} directives
-with the actual files in the version of the source file that
-you send, but it might make submitting the bug report easier
-in the end.
-However, be sure to @emph{reproduce} the bug using the @emph{exact}
-version of the source material you submit, to avoid wild-goose
-chases.
-
-@item
-The command arguments you gave GNU Fortran to compile that example
-and observe the bug. For example, did you use @option{-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.
-
-@item
-The type of machine you are using, and the operating system name and
-version number.
-(Much of this information is printed by @samp{g77 -v}---if you
-include that, send along any additional info you have that you
-don't see clearly represented in that output.)
-
-@item
-The operands you gave to the @command{configure} command when you installed
-the compiler.
-
-@item
-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.
-
-@item
-Details of any other deviations from the standard procedure for installing
-GNU Fortran.
-
-@item
-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 Fortran program just on the chance that
-one instruction might be wrong. We need @emph{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 @i{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 building GNU Fortran 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.
-
-@item
-If you send examples of assembler code output from GNU Fortran,
-please use @option{-g} when you make them. The debugging information
-includes source line numbers which are essential for correlating the
-output with the input.
-
-@item
-If you wish to mention something in the GNU Fortran 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 convenient information to the
-maintainers.
-
-@item
-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.
-
-@cindex backtrace for bug reports
-For example, many people send just a backtrace, but that is never
-useful by itself. A simple backtrace with arguments conveys little
-about GNU Fortran 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.
-
-@findex debug_rtx
-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 @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 @code{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.
-@end itemize
-
-Here are some things that are not necessary:
-
-@itemize @bullet
-@item
-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 @emph{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 GNU Fortran 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 might 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.
+Bugs should be reported to our bug database. Please refer to
+@uref{http://gcc.gnu.org/bugs.html} for up-to-date instructions how to
+submit bug reports. Copies of this file in HTML (@file{bugs.html}) and
+plain text (@file{BUGS}) are also part of GCC releases.
-@item
-In particular, some people insert conditionals @samp{#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 preprocessor output, and that can't have conditionals.
-
-@item
-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 GNU Fortran 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 @uref{http://gcc.gnu.org/contribute.html}
-for guidelines on how to make it easy for us to
-understand and install your patches.
-
-@item
-A guess about what the bug is or what it depends on.
-
-Such guesses are usually wrong. Even the maintainer can't guess right
-about such things without first using the debugger to find the facts.
-
-@item
-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.
-@end itemize
@node Service
@chapter How To Get Help with GNU Fortran
@@ -11173,8 +10759,6 @@ are passed via this mechanism.
If you want to contribute to @command{g77} by doing research,
design, specification, documentation, coding, or testing,
the following information should give you some ideas.
-More relevant information might be available from
-@uref{ftp://alpha.gnu.org/gnu/g77/projects/}.
@menu
* Efficiency:: Make @command{g77} itself compile code faster.
diff --git a/gcc/f/g77spec.c b/gcc/f/g77spec.c
index 1bf20d266b4..9206ef7f1a8 100644
--- a/gcc/f/g77spec.c
+++ b/gcc/f/g77spec.c
@@ -1,5 +1,6 @@
/* Specific flags and argument handling of the Fortran front-end.
- Copyright (C) 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -98,36 +99,14 @@ static void append_arg PARAMS ((const char *));
static int g77_newargc;
static const char **g77_newargv;
-/* --- This comes from gcc.c (2.8.1) verbatim: */
-
-/* This defines which switch letters take arguments. */
-
-#define DEFAULT_SWITCH_TAKES_ARG(CHAR) \
- ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \
- || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
- || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \
- || (CHAR) == 'L' || (CHAR) == 'A')
-
#ifndef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) DEFAULT_SWITCH_TAKES_ARG(CHAR)
#endif
-/* This defines which multi-letter switches take arguments. */
-
-#define DEFAULT_WORD_SWITCH_TAKES_ARG(STR) \
- (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \
- || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \
- || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \
- || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \
- || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
- || !strcmp (STR, "isystem") || !strcmp (STR, "specs"))
-
#ifndef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) DEFAULT_WORD_SWITCH_TAKES_ARG (STR)
#endif
-/* --- End of verbatim. */
-
/* Assumes text[0] == '-'. Returns number of argv items that belong to
(and follow) this one, an option id for options important to the
caller, and a pointer to the first char of the arg, if embedded (else
diff --git a/gcc/f/intdoc.in b/gcc/f/intdoc.in
index 3ed3e10e408..55d426ad930 100644
--- a/gcc/f/intdoc.in
+++ b/gcc/f/intdoc.in
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc.
* This is part of the G77 manual.
* For copying conditions, see the file g77.texi. */
@@ -646,7 +646,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=6)}.
If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
@@ -661,7 +661,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=6)}.
If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
@@ -676,7 +676,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=2)}.
If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
@@ -1288,9 +1288,9 @@ zero if not, and negative if the information isn't available.
")
DEFDOC (IDATE_unix, "Get local time info.", "\
-Fills @var{@1@} with the numerical values at the current local time
-of day, month (in the range 1--12), and year in elements 1, 2, and 3,
-respectively.
+Fills @var{@1@} with the numerical values at the current local time.
+The day (in the range 1--31), month (in the range 1--12),
+and year appear in elements 1, 2, and 3 of @var{@1@}, respectively.
The year has four significant digits.
@cindex Y10K compliance
@@ -1308,19 +1308,20 @@ as of the Year 10000.
DEFDOC (IDATE_vxt, "Get local time info (VAX/VMS).", "\
Returns the numerical values of the current local time.
The month (in the range 1--12) is returned in @var{@1@},
-the day (in the range 1--7) in @var{@2@},
+the day (in the range 1--31) in @var{@2@},
and the year in @var{@3@} (in the range 0--99).
@cindex Y2K compliance
@cindex Year 2000 compliance
@cindex wraparound, Y2K
@cindex limits, Y2K
-This intrinsic is not recommended, due to the year 2000 approaching.
-Therefore, programs making use of this intrinsic
-might not be Year 2000 (Y2K) compliant.
+This intrinsic is not recommended, due to the fact that
+its return value for year wraps around century boundaries
+(change from a larger value to a smaller one).
+Therefore, programs making use of this intrinsic, for
+instance, might not be Year 2000 (Y2K) compliant.
For example, the date might appear,
to such programs, to wrap around
-(change from a larger value to a smaller one)
as of the Year 2000.
@xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits
diff --git a/gcc/f/intdoc.texi b/gcc/f/intdoc.texi
index e4706267e53..7de42578d1a 100644
--- a/gcc/f/intdoc.texi
+++ b/gcc/f/intdoc.texi
@@ -5893,9 +5893,9 @@ Intrinsic groups: @code{unix}.
@noindent
Description:
-Fills @var{TArray} with the numerical values at the current local time
-of day, month (in the range 1--12), and year in elements 1, 2, and 3,
-respectively.
+Fills @var{TArray} with the numerical values at the current local time.
+The day (in the range 1--31), month (in the range 1--12),
+and year appear in elements 1, 2, and 3 of @var{TArray}, respectively.
The year has four significant digits.
@cindex Y10K compliance
@@ -5941,19 +5941,20 @@ Description:
Returns the numerical values of the current local time.
The month (in the range 1--12) is returned in @var{M},
-the day (in the range 1--7) in @var{D},
+the day (in the range 1--31) in @var{D},
and the year in @var{Y} (in the range 0--99).
@cindex Y2K compliance
@cindex Year 2000 compliance
@cindex wraparound, Y2K
@cindex limits, Y2K
-This intrinsic is not recommended, due to the year 2000 approaching.
-Therefore, programs making use of this intrinsic
-might not be Year 2000 (Y2K) compliant.
+This intrinsic is not recommended, due to the fact that
+its return value for year wraps around century boundaries
+(change from a larger value to a smaller one).
+Therefore, programs making use of this intrinsic, for
+instance, might not be Year 2000 (Y2K) compliant.
For example, the date might appear,
to such programs, to wrap around
-(change from a larger value to a smaller one)
as of the Year 2000.
@xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits
@@ -6543,7 +6544,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=6)}.
If @var{A} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
@@ -6578,7 +6579,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=2)}.
If @var{A} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
@@ -9418,7 +9419,7 @@ magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=6)}.
If @var{A} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
@xref{Int Intrinsic}.
diff --git a/gcc/f/invoke.texi b/gcc/f/invoke.texi
index 58710ce0eb1..664f1a340ef 100644
--- a/gcc/f/invoke.texi
+++ b/gcc/f/invoke.texi
@@ -1,15 +1,15 @@
-@c Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+@c Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004
@c Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@ignore
@c man begin COPYRIGHT
-Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002
+Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
@@ -300,9 +300,7 @@ preprocessor directive must be used instead.
Ratfor source code, which must be preprocessed by the @command{ratfor}
command, which is available separately (as it is not yet part of the GNU
Fortran distribution).
-One version in Fortran, adapted for use with @command{g77} is at
-@uref{ftp://members.aol.com/n8tm/rat7.uue} (of uncertain copyright
-status). Another, public domain version in C is at
+A public domain version in C is at
@uref{http://sepwww.stanford.edu/sep/prof/ratfor.shar.2}.
@end table
diff --git a/gcc/f/lang-specs.h b/gcc/f/lang-specs.h
index 602028d136e..62b78c6f361 100644
--- a/gcc/f/lang-specs.h
+++ b/gcc/f/lang-specs.h
@@ -1,5 +1,5 @@
/* lang-specs.h file for Fortran
- Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002
+ Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
Contributed by James Craig Burley.
diff --git a/gcc/f/news.texi b/gcc/f/news.texi
index 2d0dc0f49ef..fe6fa80ada2 100644
--- a/gcc/f/news.texi
+++ b/gcc/f/news.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+@c Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
@c Free Software Foundation, Inc.
@c This is part of the G77 manual.
@c For copying conditions, see the file g77.texi.
@@ -8,13 +8,12 @@
@c Keep this the same as the dates above, since it's used
@c in the standalone derivations of this file (e.g. NEWS).
-@set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002
+@set copyrights-news 1995,1996,1997,1998,1999,2000,2001,2002,2003
-@set last-update-news 2002-11-19
-
-@include root.texi
+@set last-update-news 2003-05-18
@ifset DOC-NEWS
+@include root.texi
@c The immediately following lines apply to the NEWS file
@c which is derived from this file.
@emph{Note:} This file is automatically generated from the files
@@ -158,6 +157,8 @@ The following information was last updated on @value{last-update-news}:
@item
Problem Reports fixed (in chronological order of submission):
@table @code
+@item 1832
+-list directed i/o overflow hangs, -fbounds-check doesn't detect
@item 3924
g77 generates code which is rejected by GAS if COFF debugging info is
requested
@@ -183,9 +184,17 @@ gave wrong results)
Incorrect output with 0-based array of characters
@item 8587
Double complex zero ** double precision number -> NaN instead of zero
+@item 9038
+-ffixed-line-length-none -x f77-cpp-input gives: Warning: unknown register name line-length-none
+@item 9263
+ICE caused by invalid PARAMETER in implied DO loop
+@item 10197
+Direct access files not unformatted by default
+@item 10726
+Documentation for function IDATE Intrinsic (UNIX) is wrong [fixed in 3.3.1].
@end table
@item
-Richard Henderson (@email{rth@@redhat.com}) analysed and improved the handling
+Richard Henderson (@email{rth@@redhat.com}) analyzed and improved the handling
of (no-)aliasing information for dummy arguments and improved the optimization
of induction variables in unrolled loops.
@end itemize
@@ -195,8 +204,12 @@ of induction variables in unrolled loops.
@item
Problem Reports fixed (in chronological order of submission):
@table @code
+@item 7681
+ICE in compensate_edge, at reg-stack.c:2591
@item 8308
gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed in 3.2.1]
+@item 9258
+[3.2/3.3/3.4 regression] ICE in compensate_edge, at reg-stack.c:2589
@end table
@end itemize
diff --git a/gcc/f/root.texi b/gcc/f/root.texi
index 45a36c209d4..1956abca3c3 100644
--- a/gcc/f/root.texi
+++ b/gcc/f/root.texi
@@ -1,9 +1,4 @@
-@c DEVELOPMENT is set to indicate an in-development version,
-@c as compared to a release version. When making a release
-@c (e.g. a release branch in the CVS repository for gcc),
-@c clear this and set the version information correctly.
-@set DEVELOPMENT
-@set version-gcc 3.3
+@include gcc-common.texi
@set email-general gcc@@gcc.gnu.org
@set email-help gcc-help@@gcc.gnu.org
@@ -12,8 +7,8 @@
@set path-g77 gcc/gcc/f
@set path-libf2c gcc/libf2c
-@set which-g77 GCC-@value{version-gcc}
+@set which-g77 GCC-@value{version-GCC}
@set which-gcc GCC
@set email-burley craig@@jcb-sc.com
-@set www-burley http://world.std.com/%7Eburley
+@set www-burley http://world.std.com/%7Eburley/
diff --git a/gcc/f/sta.c b/gcc/f/sta.c
index 0b4c11aa9ef..37c8b679842 100644
--- a/gcc/f/sta.c
+++ b/gcc/f/sta.c
@@ -337,7 +337,7 @@ ffesta_save_ (ffelexToken t)
{ /* No handler in this list, try exec list if
not tried yet. */
if (ffesta_current_possible_
- == (ffestaPossible_) &ffesta_possible_nonexecs_)
+ == (ffestaPossible_) &ffesta_possible_nonexecs_.first)
{
ffesta_current_possible_ = ffesta_possible_execs_.first;
ffesta_current_handler_ = ffesta_current_possible_->handler;
@@ -381,7 +381,7 @@ ffesta_save_ (ffelexToken t)
{
if (possible->handler == NULL)
{
- if (possible == (ffestaPossible_) &ffesta_possible_nonexecs_)
+ if (possible == (ffestaPossible_) &ffesta_possible_nonexecs_.first)
{
possible = first_exec = ffesta_possible_execs_.first;
continue;
diff --git a/gcc/f/stc.c b/gcc/f/stc.c
index 1f17766d9ac..b9602c20a46 100644
--- a/gcc/f/stc.c
+++ b/gcc/f/stc.c
@@ -1,5 +1,5 @@
/* stc.c -- Implementation File (module.c template V1.0)
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
Contributed by James Craig Burley.
This file is part of GNU Fortran.
@@ -9195,18 +9195,19 @@ ffestc_R810 (ffesttCaseList cases, ffelexToken name)
ffebad_finish ();
continue;
}
-
if (((caseobj->expr1 != NULL)
&& ((ffeinfo_basictype (ffebld_info (caseobj->expr1))
!= s->type)
- || (ffeinfo_kindtype (ffebld_info (caseobj->expr1))
- != s->kindtype)))
+ || ((ffeinfo_kindtype (ffebld_info (caseobj->expr1))
+ != s->kindtype)
+ && (ffeinfo_kindtype (ffebld_info (caseobj->expr1)) != FFEINFO_kindtypeINTEGER1 ))
|| ((caseobj->range)
&& (caseobj->expr2 != NULL)
&& ((ffeinfo_basictype (ffebld_info (caseobj->expr2))
!= s->type)
- || (ffeinfo_kindtype (ffebld_info (caseobj->expr2))
- != s->kindtype))))
+ || ((ffeinfo_kindtype (ffebld_info (caseobj->expr2))
+ != s->kindtype)
+ && (ffeinfo_kindtype (ffebld_info (caseobj->expr2)) != FFEINFO_kindtypeINTEGER1)))))))
{
ffebad_start (FFEBAD_CASE_TYPE_DISAGREE);
ffebad_here (0, ffelex_token_where_line (caseobj->t),
@@ -9217,6 +9218,8 @@ ffestc_R810 (ffesttCaseList cases, ffelexToken name)
continue;
}
+
+
if ((s->type == FFEINFO_basictypeLOGICAL) && (caseobj->range))
{
ffebad_start (FFEBAD_CASE_LOGICAL_RANGE);
diff --git a/gcc/f/ste.c b/gcc/f/ste.c
index d7d84954eef..2ddf18118bf 100644
--- a/gcc/f/ste.c
+++ b/gcc/f/ste.c
@@ -1,5 +1,5 @@
/* ste.c -- Implementation File (module.c template V1.0)
- Copyright (C) 1995, 1996, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by James Craig Burley.
This file is part of GNU Fortran.
@@ -2711,21 +2711,27 @@ ffeste_R810 (ffestw block, unsigned long casenum)
do
{
texprlow = (c->low == NULL) ? NULL_TREE
- : ffecom_constantunion (&ffebld_constant_union (c->low), s->type,
- s->kindtype,
- ffecom_tree_type[s->type][s->kindtype]);
+ : ffecom_constantunion_with_type (&ffebld_constant_union (c->low),
+ ffecom_tree_type[s->type][s->kindtype], c->low->consttype);
if (c->low != c->high)
{
texprhigh = (c->high == NULL) ? NULL_TREE
- : ffecom_constantunion (&ffebld_constant_union (c->high),
- s->type, s->kindtype,
- ffecom_tree_type[s->type][s->kindtype]);
+ : ffecom_constantunion_with_type (&ffebld_constant_union (c->high),
+ ffecom_tree_type[s->type][s->kindtype], c->high->consttype);
pushok = pushcase_range (texprlow, texprhigh, convert,
tlabel, &duplicate);
}
else
pushok = pushcase (texprlow, convert, tlabel, &duplicate);
- assert (pushok == 0);
+ assert((pushok !=2) || (pushok !=0));
+ if (pushok==2)
+ {
+ ffebad_start_msg ("SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)",
+ FFEBAD_severityFATAL);
+ ffebad_here (0, ffestw_line (block), ffestw_col (block));
+ ffebad_finish ();
+ ffestw_set_select_texpr (block, error_mark_node);
+ }
c = c->next_stmt;
/* Unlink prev. */
c->previous_stmt->previous_stmt->next_stmt = c;
diff --git a/gcc/f/target.h b/gcc/f/target.h
index b96504f4628..2125ad54eee 100644
--- a/gcc/f/target.h
+++ b/gcc/f/target.h
@@ -1158,7 +1158,8 @@ void *ffetarget_memcpy_ (void *dst, void *src, size_t len);
FFEBAD; })
#define ffetarget_divide_integer1(res,l,r) \
(((r) == 0) ? (*(res) = 0, FFEBAD_DIV_BY_ZERO) \
- : (*(res) = (l) / (r), FFEBAD))
+ : (((r) == -1) ? (*(res) = -(l), FFEBAD) \
+ : (*(res) = (l) / (r), FFEBAD)))
#define ffetarget_divide_integer2(res,l,r) \
ffetarget_divide_integer1(res,l,r)
#define ffetarget_divide_integer3(res,l,r) \
diff --git a/gcc/final.c b/gcc/final.c
index 312ae76f8fc..f0c78e339f7 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -170,8 +170,8 @@ CC_STATUS cc_prev_status;
char regs_ever_live[FIRST_PSEUDO_REGISTER];
/* Nonzero means current function must be given a frame pointer.
- Set in stmt.c if anything is allocated on the stack there.
- Set in reload1.c if anything is allocated on the stack there. */
+ Initialized in function.c to 0. Set only in reload1.c as per
+ the needs of the function. */
int frame_pointer_needed;
@@ -1269,7 +1269,7 @@ shorten_branches (first)
}
}
- INSN_ADDRESSES (uid) = insn_current_address;
+ INSN_ADDRESSES (uid) = insn_current_address + insn_lengths[uid];
if (GET_CODE (insn) == NOTE || GET_CODE (insn) == BARRIER
|| GET_CODE (insn) == CODE_LABEL)
diff --git a/gcc/fixinc/check.tpl b/gcc/fixinc/check.tpl
index 1f796fe8fd1..fd9e965ac0b 100644
--- a/gcc/fixinc/check.tpl
+++ b/gcc/fixinc/check.tpl
@@ -135,7 +135,7 @@ do
:
else
- diff -u $f ${TESTBASE}/$f >&2 || :
+ ${DIFF:-diff} -u $f ${TESTBASE}/$f >&2 || :
exitok=false
fi
done
diff --git a/gcc/fixinc/fixfixes.c b/gcc/fixinc/fixfixes.c
index ad54960d13b..9c775b55425 100644
--- a/gcc/fixinc/fixfixes.c
+++ b/gcc/fixinc/fixfixes.c
@@ -597,47 +597,44 @@ FIX_PROC_HEAD( wrap_fix )
tSCC z_no_wrap_pat[] = "^#if.*__need_";
static regex_t no_wrapping_re; /* assume zeroed data */
- char z_fixname[ 64 ];
- tCC* pz_src = p_fixd->fix_name;
- tCC* pz_name = z_fixname;
- char* pz_dst = z_fixname;
- int do_end = 0;
- size_t len = 0;
- IGNORE_ARG(filname);
+ tCC* pz_name = NULL;
if (no_wrapping_re.allocated == 0)
compile_re( z_no_wrap_pat, &no_wrapping_re, 0, "no-wrap pattern",
"wrap-fix" );
- for (;;) {
- char ch = *pz_src++;
-
- if (ch == NUL) {
- *pz_dst++ = ch;
- break;
- } else if (! ISALNUM (ch)) {
- *pz_dst++ = '_';
- } else {
- *pz_dst++ = TOUPPER (ch);
- }
-
- if (++len >= sizeof( z_fixname )) {
- void* p = xmalloc( len + strlen( pz_src ) + 1 );
- memcpy( p, (void*)z_fixname, len );
- pz_name = (tCC*)p;
- pz_dst = (char*)pz_name + len;
- }
- }
-
/*
* IF we do *not* match the no-wrap re, then we have a double negative.
* A double negative means YES.
*/
- if (regexec (&no_wrapping_re, text, 0, NULL, 0) != 0)
+ if (regexec( &no_wrapping_re, text, 0, NULL, 0 ) != 0)
{
- printf( "#ifndef FIXINC_%s_CHECK\n", pz_name );
- printf( "#define FIXINC_%s_CHECK 1\n\n", pz_name );
- do_end = 1;
+ /*
+ * A single file can get wrapped more than once by different fixes.
+ * A single fix can wrap multiple files. Therefore, guard with
+ * *both* the fix name and the file name.
+ */
+ size_t ln = strlen( filname ) + strlen( p_fixd->fix_name ) + 14;
+ char* pz = xmalloc( ln );
+ pz_name = pz;
+ sprintf( pz, "FIXINC_WRAP_%s-%s", filname, p_fixd->fix_name );
+
+ for (pz += 12; 1; pz++) {
+ char ch = *pz;
+
+ if (ch == NUL)
+ break;
+
+ if (! ISALNUM( ch )) {
+ *pz = '_';
+ }
+ else {
+ *pz = TOUPPER( ch );
+ }
+ }
+
+ printf( "#ifndef %s\n", pz_name );
+ printf( "#define %s 1\n\n", pz_name );
}
if (p_fixd->patch_args[1] == (tCC*)NULL)
@@ -650,11 +647,10 @@ FIX_PROC_HEAD( wrap_fix )
fputs( p_fixd->patch_args[2], stdout );
}
- if (do_end != 0)
- printf( "\n#endif /* FIXINC_%s_CHECK */\n", pz_name );
-
- if (pz_name != z_fixname)
+ if (pz_name != NULL) {
+ printf( "\n#endif /* %s */\n", pz_name );
free( (void*)pz_name );
+ }
}
diff --git a/gcc/fixinc/fixincl.x b/gcc/fixinc/fixincl.x
index 09fad0267a6..c9cbf3acbda 100644
--- a/gcc/fixinc/fixincl.x
+++ b/gcc/fixinc/fixincl.x
@@ -5,7 +5,7 @@
* files which are fixed to work correctly with ANSI C and placed in a
* directory that GNU C will search.
*
- * This file contains 148 fixup descriptions.
+ * This file contains 166 fixup descriptions.
*
* See README for more information.
*
@@ -345,10 +345,12 @@ tSCC zAab_Svr4_Replace_ByteorderList[] =
tSCC* apzAab_Svr4_Replace_ByteorderMachs[] = {
"*-*-sysv4*",
"i[34567]86-*-sysv5*",
+ "i[34567]86-*-sco3.2v5*",
"i[34567]86-*-udk*",
"i[34567]86-*-solaris2.[0-4]",
"powerpcle-*-solaris2.[0-4]",
"sparc-*-solaris2.[0-4]",
+ "i[34567]86-sequent-ptx*",
(const char*)NULL };
#define AAB_SVR4_REPLACE_BYTEORDER_TEST_CT 0
#define aAab_Svr4_Replace_ByteorderTests (tTestDesc*)NULL
@@ -393,9 +395,7 @@ static __inline__ unsigned long\n\
htonl (unsigned long __arg)\n\
{\n\
register unsigned long __result;\n\n\
- __asm__ (\"xchg%B0 %b0,%h0\n\
-\tror%L0 $16,%0\n\
-\txchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
+ __asm__ (\"xchg%B0 %b0,%h0 ; ror%L0 $16,%0 ; xchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
return __result;\n\
}\n\n\
/* Convert a host short to a network short. */\n\n\
@@ -776,6 +776,43 @@ static const char* apzAlpha___AssertPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Alpha___Extern_Prefix fix
+ */
+tSCC zAlpha___Extern_PrefixName[] =
+ "alpha___extern_prefix";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha___Extern_PrefixList[] =
+ "|sys/stat.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha___Extern_PrefixMachs[] = {
+ "alpha*-dec-osf5*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha___Extern_PrefixSelect0[] =
+ "#[ \t]*if[ \t]*defined\\(__DECC\\)";
+
+#define ALPHA___EXTERN_PREFIX_TEST_CT 1
+static tTestDesc aAlpha___Extern_PrefixTests[] = {
+ { TT_EGREP, zAlpha___Extern_PrefixSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha___Extern_Prefix
+ */
+static const char* apzAlpha___Extern_PrefixPatch[] = {
+ "format",
+ "%0 || defined(__PRAGMA_EXTERN_PREFIX)",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Alpha_Assert fix
*/
tSCC zAlpha_AssertName[] =
@@ -881,6 +918,46 @@ static const char* apzAlpha_ParensPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Alpha_Pthread_Gcc fix
+ */
+tSCC zAlpha_Pthread_GccName[] =
+ "alpha_pthread_gcc";
+
+/*
+ * File name selection pattern
+ */
+tSCC zAlpha_Pthread_GccList[] =
+ "|pthread.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzAlpha_Pthread_GccMachs[] = {
+ "alpha*-dec-osf*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zAlpha_Pthread_GccSelect0[] =
+ "#else\n\
+# error <pthread.h>: unrecognized compiler.";
+
+#define ALPHA_PTHREAD_GCC_TEST_CT 1
+static tTestDesc aAlpha_Pthread_GccTests[] = {
+ { TT_EGREP, zAlpha_Pthread_GccSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Alpha_Pthread_Gcc
+ */
+static const char* apzAlpha_Pthread_GccPatch[] = {
+ "format",
+ "#elif defined (__GNUC__)\n\
+# define _PTHREAD_ENV_GCC\n\
+%0",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Alpha_Sbrk fix
*/
tSCC zAlpha_SbrkName[] =
@@ -1131,8 +1208,21 @@ tSCC zAvoid_Wchar_T_TypeName[] =
tSCC zAvoid_Wchar_T_TypeSelect0[] =
"^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";
-#define AVOID_WCHAR_T_TYPE_TEST_CT 1
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zAvoid_Wchar_T_TypeBypass0[] =
+ "we must use the C\\+\\+ compiler's type";
+tSCC zAvoid_Wchar_T_TypeBypass1[] =
+ "_LINUX_NLS_H";
+tSCC zAvoid_Wchar_T_TypeBypass2[] =
+ "XFree86: xc/lib/X11/Xlib\\.h";
+
+#define AVOID_WCHAR_T_TYPE_TEST_CT 4
static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass1, (regex_t*)NULL },
+ { TT_NEGREP, zAvoid_Wchar_T_TypeBypass2, (regex_t*)NULL },
{ TT_EGREP, zAvoid_Wchar_T_TypeSelect0, (regex_t*)NULL }, };
/*
@@ -1868,46 +1958,118 @@ static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * Description of Hpux11_Fabsf fix
+ * Description of Hpux10_Ctype_Declarations1 fix
*/
-tSCC zHpux11_FabsfName[] =
- "hpux11_fabsf";
+tSCC zHpux10_Ctype_Declarations1Name[] =
+ "hpux10_ctype_declarations1";
/*
* File name selection pattern
*/
-tSCC zHpux11_FabsfList[] =
- "|math.h|";
+tSCC zHpux10_Ctype_Declarations1List[] =
+ "|ctype.h|";
/*
* Machine/OS name selection pattern
*/
-#define apzHpux11_FabsfMachs (const char**)NULL
+#define apzHpux10_Ctype_Declarations1Machs (const char**)NULL
/*
* content selection pattern - do fix if pattern found
*/
-tSCC zHpux11_FabsfSelect0[] =
- "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
+tSCC zHpux10_Ctype_Declarations1Select0[] =
+ "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";
/*
* content bypass pattern - skip fix if pattern found
*/
-tSCC zHpux11_FabsfBypass0[] =
- "__cplusplus";
+tSCC zHpux10_Ctype_Declarations1Bypass0[] =
+ "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";
-#define HPUX11_FABSF_TEST_CT 2
-static tTestDesc aHpux11_FabsfTests[] = {
- { TT_NEGREP, zHpux11_FabsfBypass0, (regex_t*)NULL },
- { TT_EGREP, zHpux11_FabsfSelect0, (regex_t*)NULL }, };
+#define HPUX10_CTYPE_DECLARATIONS1_TEST_CT 2
+static tTestDesc aHpux10_Ctype_Declarations1Tests[] = {
+ { TT_NEGREP, zHpux10_Ctype_Declarations1Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux10_Ctype_Declarations1Select0, (regex_t*)NULL }, };
/*
- * Fix Command Arguments for Hpux11_Fabsf
+ * Fix Command Arguments for Hpux10_Ctype_Declarations1
*/
-static const char* apzHpux11_FabsfPatch[] = {
+static const char* apzHpux10_Ctype_Declarations1Patch[] = {
"format",
- "#ifndef __cplusplus\n\
-%0\n\
-#endif",
+ "#ifdef _PROTOTYPES\n\
+extern int __tolower(int);\n\
+extern int __toupper(int);\n\
+#else /* NOT _PROTOTYPES */\n\
+extern int __tolower();\n\
+extern int __toupper();\n\
+#endif /* _PROTOTYPES */\n\n\
+%0\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux10_Ctype_Declarations2 fix
+ */
+tSCC zHpux10_Ctype_Declarations2Name[] =
+ "hpux10_ctype_declarations2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux10_Ctype_Declarations2List[] =
+ "|ctype.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux10_Ctype_Declarations2Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations2Select0[] =
+ "^# if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux10_Ctype_Declarations2Bypass0[] =
+ "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";
+
+#define HPUX10_CTYPE_DECLARATIONS2_TEST_CT 2
+static tTestDesc aHpux10_Ctype_Declarations2Tests[] = {
+ { TT_NEGREP, zHpux10_Ctype_Declarations2Bypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux10_Ctype_Declarations2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux10_Ctype_Declarations2
+ */
+static const char* apzHpux10_Ctype_Declarations2Patch[] = {
+ "format",
+ "%0\n\n\
+#ifdef _PROTOTYPES\n\
+ extern int _isalnum(int);\n\
+ extern int _isalpha(int);\n\
+ extern int _iscntrl(int);\n\
+ extern int _isdigit(int);\n\
+ extern int _isgraph(int);\n\
+ extern int _islower(int);\n\
+ extern int _isprint(int);\n\
+ extern int _ispunct(int);\n\
+ extern int _isspace(int);\n\
+ extern int _isupper(int);\n\
+ extern int _isxdigit(int);\n\
+# else /* not _PROTOTYPES */\n\
+ extern int _isalnum();\n\
+ extern int _isalpha();\n\
+ extern int _iscntrl();\n\
+ extern int _isdigit();\n\
+ extern int _isgraph();\n\
+ extern int _islower();\n\
+ extern int _isprint();\n\
+ extern int _ispunct();\n\
+ extern int _isspace();\n\
+ extern int _isupper();\n\
+ extern int _isxdigit();\n\
+#endif /* _PROTOTYPES */\n",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -1949,6 +2111,50 @@ static const char* apzHpux11_AbsPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Hpux11_Fabsf fix
+ */
+tSCC zHpux11_FabsfName[] =
+ "hpux11_fabsf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_FabsfList[] =
+ "|math.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_FabsfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_FabsfSelect0[] =
+ "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux11_FabsfBypass0[] =
+ "__cplusplus";
+
+#define HPUX11_FABSF_TEST_CT 2
+static tTestDesc aHpux11_FabsfTests[] = {
+ { TT_NEGREP, zHpux11_FabsfBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux11_FabsfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Fabsf
+ */
+static const char* apzHpux11_FabsfPatch[] = {
+ "format",
+ "#ifndef __cplusplus\n\
+%0\n\
+#endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Hpux11_Size_T fix
*/
tSCC zHpux11_Size_TName[] =
@@ -2055,6 +2261,41 @@ static const char* apzHpux11_VsnprintfPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Hpux11_Snprintf fix
+ */
+tSCC zHpux11_SnprintfName[] =
+ "hpux11_snprintf";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux11_SnprintfList[] =
+ "|stdio.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux11_SnprintfMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux11_SnprintfSelect0[] =
+ "(extern int snprintf *\\(char *\\*, *(|__|_hpux_)size_t,) *(char *\\*, *\\.\\.\\.\\);)";
+
+#define HPUX11_SNPRINTF_TEST_CT 1
+static tTestDesc aHpux11_SnprintfTests[] = {
+ { TT_EGREP, zHpux11_SnprintfSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux11_Snprintf
+ */
+static const char* apzHpux11_SnprintfPatch[] = {
+ "format",
+ "%1 const %3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Hpux8_Bogus_Inlines fix
*/
tSCC zHpux8_Bogus_InlinesName[] =
@@ -2092,6 +2333,83 @@ static const char* apzHpux8_Bogus_InlinesPatch[] = { "sed",
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Hpux_Ctype_Macros fix
+ */
+tSCC zHpux_Ctype_MacrosName[] =
+ "hpux_ctype_macros";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Ctype_MacrosList[] =
+ "|ctype.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_Ctype_MacrosMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Ctype_MacrosSelect0[] =
+ "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)";
+
+#define HPUX_CTYPE_MACROS_TEST_CT 1
+static tTestDesc aHpux_Ctype_MacrosTests[] = {
+ { TT_EGREP, zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Ctype_Macros
+ */
+static const char* apzHpux_Ctype_MacrosPatch[] = {
+ "format",
+ "%1(int)%3",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Hpux_Long_Double fix
+ */
+tSCC zHpux_Long_DoubleName[] =
+ "hpux_long_double";
+
+/*
+ * File name selection pattern
+ */
+tSCC zHpux_Long_DoubleList[] =
+ "|stdlib.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzHpux_Long_DoubleMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zHpux_Long_DoubleSelect0[] =
+ "extern[ \t]long_double[ \t]strtold";
+
+/*
+ * content bypass pattern - skip fix if pattern found
+ */
+tSCC zHpux_Long_DoubleBypass0[] =
+ "long_double_t";
+
+#define HPUX_LONG_DOUBLE_TEST_CT 2
+static tTestDesc aHpux_Long_DoubleTests[] = {
+ { TT_NEGREP, zHpux_Long_DoubleBypass0, (regex_t*)NULL },
+ { TT_EGREP, zHpux_Long_DoubleSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Hpux_Long_Double
+ */
+static const char* apzHpux_Long_DoublePatch[] = { "sed",
+ "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D",
+ "-e", "s/long_double/long double/g",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Hpux_Maxint fix
*/
tSCC zHpux_MaxintName[] =
@@ -2316,6 +2634,128 @@ static const char* apzIp_Missing_SemiPatch[] = { "sed",
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Irix___Restrict fix
+ */
+tSCC zIrix___RestrictName[] =
+ "irix___restrict";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___RestrictList[] =
+ "|internal/sgimacros.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___RestrictMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___RestrictSelect0[] =
+ "(#ifdef __c99\n\
+)(#[ \t]*define __restrict restrict)";
+
+#define IRIX___RESTRICT_TEST_CT 1
+static tTestDesc aIrix___RestrictTests[] = {
+ { TT_EGREP, zIrix___RestrictSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Restrict
+ */
+static const char* apzIrix___RestrictPatch[] = {
+ "format",
+ "%1# ifndef __cplusplus\n\
+%2\n\
+# endif",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix___Generic1 fix
+ */
+tSCC zIrix___Generic1Name[] =
+ "irix___generic1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___Generic1List[] =
+ "|internal/math_core.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___Generic1Machs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___Generic1Select0[] =
+ "#define ([a-z]+)\\(x\\) *__generic.*";
+
+#define IRIX___GENERIC1_TEST_CT 1
+static tTestDesc aIrix___Generic1Tests[] = {
+ { TT_EGREP, zIrix___Generic1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Generic1
+ */
+static const char* apzIrix___Generic1Patch[] = {
+ "format",
+ "extern int %1(double);\n\
+extern int %1f(float);\n\
+extern int %1l(long double);\n\
+#define %1(x) (sizeof(x) == sizeof(double) ? _%1(x) \\\n\
+ : sizeof(x) == sizeof(float) ? _%1f(x) \\\n\
+ : _%1l(x))\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix___Generic2 fix
+ */
+tSCC zIrix___Generic2Name[] =
+ "irix___generic2";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix___Generic2List[] =
+ "|internal/math_core.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix___Generic2Machs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix___Generic2Select0[] =
+ "#define ([a-z]+)\\(x,y\\) *__generic.*";
+
+#define IRIX___GENERIC2_TEST_CT 1
+static tTestDesc aIrix___Generic2Tests[] = {
+ { TT_EGREP, zIrix___Generic2Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix___Generic2
+ */
+static const char* apzIrix___Generic2Patch[] = {
+ "format",
+ "#define %1(x,y) \\\n\
+ ((sizeof(x)<=4 && sizeof(y)<=4) ? _%1f(x,y) \\\n\
+ : (sizeof(x)<=8 && sizeof(y)<=8) ? _%1(x,y) \\\n\
+ : _%1l(x,y))\n",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Irix_Asm_Apostrophe fix
*/
tSCC zIrix_Asm_ApostropheName[] =
@@ -2387,6 +2827,48 @@ static const char* apzIrix_Limits_ConstPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Irix_Socklen_T fix
+ */
+tSCC zIrix_Socklen_TName[] =
+ "irix_socklen_t";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_Socklen_TList[] =
+ "|sys/socket.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_Socklen_TMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_Socklen_TSelect0[] =
+ "(#define _SOCKLEN_T\n\
+)(typedef u_int32_t socklen_t;)";
+
+#define IRIX_SOCKLEN_T_TEST_CT 1
+static tTestDesc aIrix_Socklen_TTests[] = {
+ { TT_EGREP, zIrix_Socklen_TSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Socklen_T
+ */
+static const char* apzIrix_Socklen_TPatch[] = {
+ "format",
+ "%1#if _NO_XOPEN4 && _NO_XOPEN5\n\
+typedef int socklen_t;\n\
+#else\n\
+%2\n\
+#endif /* _NO_XOPEN4 && _NO_XOPEN5 */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Irix_Stdio_Va_List fix
*/
tSCC zIrix_Stdio_Va_ListName[] =
@@ -2396,7 +2878,7 @@ tSCC zIrix_Stdio_Va_ListName[] =
* File name selection pattern
*/
tSCC zIrix_Stdio_Va_ListList[] =
- "|stdio.h|";
+ "|stdio.h|internal/stdio_core.h|";
/*
* Machine/OS name selection pattern
*/
@@ -2406,7 +2888,7 @@ tSCC zIrix_Stdio_Va_ListList[] =
* content selection pattern - do fix if pattern found
*/
tSCC zIrix_Stdio_Va_ListSelect0[] =
- "(printf\\(.*), /\\* va_list \\*/ char \\*";
+ "/\\* va_list \\*/ char \\*";
#define IRIX_STDIO_VA_LIST_TEST_CT 1
static tTestDesc aIrix_Stdio_Va_ListTests[] = {
@@ -2417,7 +2899,46 @@ static tTestDesc aIrix_Stdio_Va_ListTests[] = {
*/
static const char* apzIrix_Stdio_Va_ListPatch[] = {
"format",
- "%1, __gnuc_va_list",
+ "__gnuc_va_list",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Irix_Wcsftime fix
+ */
+tSCC zIrix_WcsftimeName[] =
+ "irix_wcsftime";
+
+/*
+ * File name selection pattern
+ */
+tSCC zIrix_WcsftimeList[] =
+ "|internal/wchar_core.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzIrix_WcsftimeMachs[] = {
+ "mips-sgi-irix6.5",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zIrix_WcsftimeSelect0[] =
+ "#if _NO_XOPEN5\n\
+(extern size_t[ \t]+wcsftime.*const char *.*)";
+
+#define IRIX_WCSFTIME_TEST_CT 1
+static tTestDesc aIrix_WcsftimeTests[] = {
+ { TT_EGREP, zIrix_WcsftimeSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Irix_Wcsftime
+ */
+static const char* apzIrix_WcsftimePatch[] = {
+ "format",
+ "#if _NO_XOPEN5 && !defined(__c99)\n\
+%1",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -2527,6 +3048,43 @@ static const char* apzKandr_ConcatPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Libc1_G_Va_List fix
+ */
+tSCC zLibc1_G_Va_ListName[] =
+ "libc1_G_va_list";
+
+/*
+ * File name selection pattern
+ */
+tSCC zLibc1_G_Va_ListList[] =
+ "|_G_config.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzLibc1_G_Va_ListMachs[] = {
+ "*-*-linux*libc1",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zLibc1_G_Va_ListSelect0[] =
+ "typedef void \\* _G_va_list;";
+
+#define LIBC1_G_VA_LIST_TEST_CT 1
+static tTestDesc aLibc1_G_Va_ListTests[] = {
+ { TT_EGREP, zLibc1_G_Va_ListSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Libc1_G_Va_List
+ */
+static const char* apzLibc1_G_Va_ListPatch[] = {
+ "format",
+ "typedef __builtin_va_list _G_va_list;",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Libc1_Ifdefd_Memx fix
*/
tSCC zLibc1_Ifdefd_MemxName[] =
@@ -2575,43 +3133,6 @@ extern [a-z_]+ mem.*(\n\
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * Description of Libc1_G_Va_List fix
- */
-tSCC zLibc1_G_Va_ListName[] =
- "libc1_G_va_list";
-
-/*
- * File name selection pattern
- */
-tSCC zLibc1_G_Va_ListList[] =
- "|_G_config.h|";
-/*
- * Machine/OS name selection pattern
- */
-tSCC* apzLibc1_G_Va_ListMachs[] = {
- "*-*-linux*libc1",
- (const char*)NULL };
-
-/*
- * content selection pattern - do fix if pattern found
- */
-tSCC zLibc1_G_Va_ListSelect0[] =
- "typedef void \\* _G_va_list;";
-
-#define LIBC1_G_VA_LIST_TEST_CT 1
-static tTestDesc aLibc1_G_Va_ListTests[] = {
- { TT_EGREP, zLibc1_G_Va_ListSelect0, (regex_t*)NULL }, };
-
-/*
- * Fix Command Arguments for Libc1_G_Va_List
- */
-static const char* apzLibc1_G_Va_ListPatch[] = {
- "format",
- "typedef __builtin_va_list _G_va_list;",
- (char*)NULL };
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * *
- *
* Description of Limits_Ifndefs fix
*/
tSCC zLimits_IfndefsName[] =
@@ -2631,7 +3152,7 @@ tSCC zLimits_IfndefsList[] =
* content bypass pattern - skip fix if pattern found
*/
tSCC zLimits_IfndefsBypass0[] =
- "ifndef[ \t]+FLT_MIN";
+ "ifndef[ \t]+FLT_(MIN|MAX)";
#define LIMITS_IFNDEFS_TEST_CT 1
static tTestDesc aLimits_IfndefsTests[] = {
@@ -3369,6 +3890,41 @@ static const char* apzNodeent_SyntaxPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Obstack_Lvalue_Cast fix
+ */
+tSCC zObstack_Lvalue_CastName[] =
+ "obstack_lvalue_cast";
+
+/*
+ * File name selection pattern
+ */
+tSCC zObstack_Lvalue_CastList[] =
+ "|obstack.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzObstack_Lvalue_CastMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zObstack_Lvalue_CastSelect0[] =
+ "\\*\\(\\(([^()]*)\\*\\)(.*)\\)\\+\\+ = \\(([^()]*)\\)";
+
+#define OBSTACK_LVALUE_CAST_TEST_CT 1
+static tTestDesc aObstack_Lvalue_CastTests[] = {
+ { TT_EGREP, zObstack_Lvalue_CastSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Obstack_Lvalue_Cast
+ */
+static const char* apzObstack_Lvalue_CastPatch[] = {
+ "format",
+ "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Osf_Namespace_A fix
*/
tSCC zOsf_Namespace_AName[] =
@@ -3648,6 +4204,129 @@ static const char* apzRs6000_ParamPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Sco_Math fix
+ */
+tSCC zSco_MathName[] =
+ "sco_math";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSco_MathList[] =
+ "|math.h|posix/math.h|ansi/math.h|xpg4/math.h|xpg4v2/math.h|xpg4plus/math.h|ods_30_compat/math.h|oldstyle/math.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSco_MathMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSco_MathSelect0[] =
+ "__builtin_generic";
+
+#define SCO_MATH_TEST_CT 1
+static tTestDesc aSco_MathTests[] = {
+ { TT_EGREP, zSco_MathSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sco_Math
+ */
+static const char* apzSco_MathPatch[] = { "sed",
+ "-e", "/#define.*__fp_class(a) \\\\/i\\\n\
+#ifndef __GNUC__\n",
+ "-e", "/.*__builtin_generic/a\\\n\
+#else\\\n\
+#define __fp_class(a) \\\\\\\n\
+ __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\\\\\\\n\
+ __fpclassifyl(a), \\\\\\\n\
+ __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \\\\\\\n\
+ __fpclassifyf(a),__fpclassify(a)))\\\n\
+#endif",
+ "-e", "/extern \"C\\+\\+\"/N;/inline double abs/i\\\n\
+#ifndef __GNUC__\n",
+ "-e", "/inline long double trunc/N;/inline long double trunc.*}.*extern \"C\\+\\+\"/a\\\n\
+#endif /* ! __GNUC__ */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sco_Regset fix
+ */
+tSCC zSco_RegsetName[] =
+ "sco_regset";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSco_RegsetList[] =
+ "|sys/regset.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSco_RegsetMachs[] = {
+ "*-*-sco3.2v5*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSco_RegsetSelect0[] =
+ "(struct[ \t]+_*)fpstate";
+
+#define SCO_REGSET_TEST_CT 1
+static tTestDesc aSco_RegsetTests[] = {
+ { TT_EGREP, zSco_RegsetSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sco_Regset
+ */
+static const char* apzSco_RegsetPatch[] = {
+ "format",
+ "%1rsfpstate",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Sco_String fix
+ */
+tSCC zSco_StringName[] =
+ "sco_string";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSco_StringList[] =
+ "|ansi/string.h|posix/string.h|xpg4/string.h|xpg4v2/string.h|xpg4plus/string.h|ods_30_compat/string.h|oldstyle/string.h|string.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+tSCC* apzSco_StringMachs[] = {
+ "*-*-sco3.2v5*",
+ (const char*)NULL };
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSco_StringSelect0[] =
+ "inline char";
+
+#define SCO_STRING_TEST_CT 1
+static tTestDesc aSco_StringTests[] = {
+ { TT_EGREP, zSco_StringSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Sco_String
+ */
+static const char* apzSco_StringPatch[] = { "sed",
+ "-e", "/extern \"C\\+\\+\"/N;/inline void.*memchr/i\\\n\
+#ifndef __GNUC__\n",
+ "-e", "/return.*strstr/N;/return.*strstr.*}/a\\\n\
+#endif /* ! __GNUC__ */",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Sco_Static_Func fix
*/
tSCC zSco_Static_FuncName[] =
@@ -3728,35 +4407,70 @@ static const char* apzSco_UtimePatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
- * Description of Solaris_Mutex_Init fix
+ * Description of Solaris_Mutex_Init_1 fix
+ */
+tSCC zSolaris_Mutex_Init_1Name[] =
+ "solaris_mutex_init_1";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSolaris_Mutex_Init_1List[] =
+ "|pthread.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSolaris_Mutex_Init_1Machs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSolaris_Mutex_Init_1Select0[] =
+ "@\\(#\\)pthread.h[ \t]+1.1[0-9][ \t]+9[567]/[0-9/]+ SMI";
+
+#define SOLARIS_MUTEX_INIT_1_TEST_CT 1
+static tTestDesc aSolaris_Mutex_Init_1Tests[] = {
+ { TT_EGREP, zSolaris_Mutex_Init_1Select0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Solaris_Mutex_Init_1
+ */
+static const char* apzSolaris_Mutex_Init_1Patch[] = { "sed",
+ "-e", "/define[ \t]*PTHREAD_MUTEX_INI/s/{0, 0,/{{{0}, 0}, {{{0}}},/\n\
+/define[ \t]*PTHREAD_COND_INI/s/{0,/{{{0},0},/",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
+ * Description of Solaris_Mutex_Init_2 fix
*/
-tSCC zSolaris_Mutex_InitName[] =
- "solaris_mutex_init";
+tSCC zSolaris_Mutex_Init_2Name[] =
+ "solaris_mutex_init_2";
/*
* File name selection pattern
*/
-tSCC zSolaris_Mutex_InitList[] =
+tSCC zSolaris_Mutex_Init_2List[] =
"|pthread.h|";
/*
* Machine/OS name selection pattern
*/
-#define apzSolaris_Mutex_InitMachs (const char**)NULL
+#define apzSolaris_Mutex_Init_2Machs (const char**)NULL
/*
* content selection pattern - do fix if pattern found
*/
-tSCC zSolaris_Mutex_InitSelect0[] =
+tSCC zSolaris_Mutex_Init_2Select0[] =
"@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
-#define SOLARIS_MUTEX_INIT_TEST_CT 1
-static tTestDesc aSolaris_Mutex_InitTests[] = {
- { TT_EGREP, zSolaris_Mutex_InitSelect0, (regex_t*)NULL }, };
+#define SOLARIS_MUTEX_INIT_2_TEST_CT 1
+static tTestDesc aSolaris_Mutex_Init_2Tests[] = {
+ { TT_EGREP, zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, };
/*
- * Fix Command Arguments for Solaris_Mutex_Init
+ * Fix Command Arguments for Solaris_Mutex_Init_2
*/
-static const char* apzSolaris_Mutex_InitPatch[] = {
+static const char* apzSolaris_Mutex_Init_2Patch[] = {
"format",
"#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
%0\n\
@@ -3816,7 +4530,8 @@ tSCC zSolaris_WidecList[] =
* Machine/OS name selection pattern
*/
tSCC* apzSolaris_WidecMachs[] = {
- "*-*-solaris2.[0-5]*",
+ "*-*-solaris2.[0-5]",
+ "*-*-solaris2.[0-5].*",
(const char*)NULL };
/*
@@ -3927,7 +4642,7 @@ tSCC zStdio_Va_ListName[] =
* File name selection pattern
*/
tSCC zStdio_Va_ListList[] =
- "|stdio.h|";
+ "|stdio.h|internal/stdio_core.h|internal/wchar_core.h|";
/*
* Machine/OS name selection pattern
*/
@@ -3937,7 +4652,7 @@ tSCC zStdio_Va_ListList[] =
* content bypass pattern - skip fix if pattern found
*/
tSCC zStdio_Va_ListBypass0[] =
- "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list";
+ "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
#define STDIO_VA_LIST_TEST_CT 1
static tTestDesc aStdio_Va_ListTests[] = {
@@ -3947,8 +4662,9 @@ static tTestDesc aStdio_Va_ListTests[] = {
* Fix Command Arguments for Stdio_Va_List
*/
static const char* apzStdio_Va_ListPatch[] = { "sed",
- "-e", "s@ va_list @ __gnuc_va_list @\n\
-s@ va_list)@ __gnuc_va_list)@\n\
+ "-e", "s@[ \t]va_list @ __gnuc_va_list @\n\
+s@[ \t]va_list)@ __gnuc_va_list)@\n\
+s@(va_list)&@(__gnuc_va_list)\\&@\n\
s@ _VA_LIST_));@ __gnuc_va_list));@\n\
s@ __VA_LIST__));@ __gnuc_va_list));@\n\
s@ va_list@ __not_va_list__@\n\
@@ -3989,16 +4705,19 @@ tSCC zStrict_Ansi_NotSelect0[] =
*/
tSCC zStrict_Ansi_NotBypass0[] =
"GNU and MIPS C compilers define __STDC__ differently";
+tSCC zStrict_Ansi_NotBypass1[] =
+ "__SCO_VERSION__.*__STDC__ != 1";
/*
* perform the C function call test
*/
tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers";
-#define STRICT_ANSI_NOT_TEST_CT 3
+#define STRICT_ANSI_NOT_TEST_CT 4
static tTestDesc aStrict_Ansi_NotTests[] = {
{ TT_FUNCTION, zStrict_Ansi_NotFTst0, 0 /* unused */ },
{ TT_NEGREP, zStrict_Ansi_NotBypass0, (regex_t*)NULL },
+ { TT_NEGREP, zStrict_Ansi_NotBypass1, (regex_t*)NULL },
{ TT_EGREP, zStrict_Ansi_NotSelect0, (regex_t*)NULL }, };
/*
@@ -4502,6 +5221,40 @@ static const char* apzSvr4__PPatch[] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
+ * Description of Svr4_Disable_Opt fix
+ */
+tSCC zSvr4_Disable_OptName[] =
+ "svr4_disable_opt";
+
+/*
+ * File name selection pattern
+ */
+tSCC zSvr4_Disable_OptList[] =
+ "|string.h|";
+/*
+ * Machine/OS name selection pattern
+ */
+#define apzSvr4_Disable_OptMachs (const char**)NULL
+
+/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zSvr4_Disable_OptSelect0[] =
+ "#define.*__std_hdr_";
+
+#define SVR4_DISABLE_OPT_TEST_CT 1
+static tTestDesc aSvr4_Disable_OptTests[] = {
+ { TT_EGREP, zSvr4_Disable_OptSelect0, (regex_t*)NULL }, };
+
+/*
+ * Fix Command Arguments for Svr4_Disable_Opt
+ */
+static const char* apzSvr4_Disable_OptPatch[] = { "sed",
+ "-e", "/#define.*__std_hdr_/d",
+ (char*)NULL };
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * *
+ *
* Description of Svr4_Getcwd fix
*/
tSCC zSvr4_GetcwdName[] =
@@ -5782,9 +6535,9 @@ static const char* apzX11_SprintfPatch[] = {
*
* List of all fixes
*/
-#define REGEX_COUNT 155
-#define MACH_LIST_SIZE_LIMIT 279
-#define FIX_COUNT 148
+#define REGEX_COUNT 180
+#define MACH_LIST_SIZE_LIMIT 334
+#define FIX_COUNT 166
/*
* Enumerate the fixes
@@ -5806,9 +6559,11 @@ typedef enum {
AIX_SYSWAIT_FIXIDX,
AIX_VOLATILE_FIXIDX,
ALPHA___ASSERT_FIXIDX,
+ ALPHA___EXTERN_PREFIX_FIXIDX,
ALPHA_ASSERT_FIXIDX,
ALPHA_GETOPT_FIXIDX,
ALPHA_PARENS_FIXIDX,
+ ALPHA_PTHREAD_GCC_FIXIDX,
ALPHA_SBRK_FIXIDX,
ARM_NORCROFT_HINT_FIXIDX,
ARM_WCHAR_FIXIDX,
@@ -5835,26 +6590,36 @@ typedef enum {
HP_SYSFILE_FIXIDX,
HPUX10_CPP_POW_INLINE_FIXIDX,
HPUX11_CPP_POW_INLINE_FIXIDX,
- HPUX11_FABSF_FIXIDX,
+ HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
+ HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
HPUX11_ABS_FIXIDX,
+ HPUX11_FABSF_FIXIDX,
HPUX11_SIZE_T_FIXIDX,
HPUX11_UINT32_C_FIXIDX,
HPUX11_VSNPRINTF_FIXIDX,
+ HPUX11_SNPRINTF_FIXIDX,
HPUX8_BOGUS_INLINES_FIXIDX,
+ HPUX_CTYPE_MACROS_FIXIDX,
+ HPUX_LONG_DOUBLE_FIXIDX,
HPUX_MAXINT_FIXIDX,
HPUX_SYSTIME_FIXIDX,
INT_ABORT_FREE_AND_EXIT_FIXIDX,
IO_QUOTES_DEF_FIXIDX,
IO_QUOTES_USE_FIXIDX,
IP_MISSING_SEMI_FIXIDX,
+ IRIX___RESTRICT_FIXIDX,
+ IRIX___GENERIC1_FIXIDX,
+ IRIX___GENERIC2_FIXIDX,
IRIX_ASM_APOSTROPHE_FIXIDX,
IRIX_LIMITS_CONST_FIXIDX,
+ IRIX_SOCKLEN_T_FIXIDX,
IRIX_STDIO_VA_LIST_FIXIDX,
+ IRIX_WCSFTIME_FIXIDX,
ISC_FMOD_FIXIDX,
ISC_OMITS_WITH_STDC_FIXIDX,
KANDR_CONCAT_FIXIDX,
- LIBC1_IFDEFD_MEMX_FIXIDX,
LIBC1_G_VA_LIST_FIXIDX,
+ LIBC1_IFDEFD_MEMX_FIXIDX,
LIMITS_IFNDEFS_FIXIDX,
LYNX_VOID_INT_FIXIDX,
LYNXOS_FCNTL_PROTO_FIXIDX,
@@ -5875,6 +6640,7 @@ typedef enum {
NEXT_VOLITILE_FIXIDX,
NEXT_WAIT_UNION_FIXIDX,
NODEENT_SYNTAX_FIXIDX,
+ OBSTACK_LVALUE_CAST_FIXIDX,
OSF_NAMESPACE_A_FIXIDX,
OSF_NAMESPACE_C_FIXIDX,
PTHREAD_PAGE_SIZE_FIXIDX,
@@ -5882,9 +6648,13 @@ typedef enum {
RS6000_DOUBLE_FIXIDX,
RS6000_FCHMOD_FIXIDX,
RS6000_PARAM_FIXIDX,
+ SCO_MATH_FIXIDX,
+ SCO_REGSET_FIXIDX,
+ SCO_STRING_FIXIDX,
SCO_STATIC_FUNC_FIXIDX,
SCO_UTIME_FIXIDX,
- SOLARIS_MUTEX_INIT_FIXIDX,
+ SOLARIS_MUTEX_INIT_1_FIXIDX,
+ SOLARIS_MUTEX_INIT_2_FIXIDX,
SOLARIS_STDIO_TAG_FIXIDX,
SOLARIS_WIDEC_FIXIDX,
STATSSWTCH_FIXIDX,
@@ -5904,6 +6674,7 @@ typedef enum {
SUNOS_MATHERR_DECL_FIXIDX,
SUNOS_STRLEN_FIXIDX,
SVR4__P_FIXIDX,
+ SVR4_DISABLE_OPT_FIXIDX,
SVR4_GETCWD_FIXIDX,
SVR4_PROFIL_FIXIDX,
SYSV68_STRING_FIXIDX,
@@ -6021,6 +6792,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAlpha___AssertTests, apzAlpha___AssertPatch, 0 },
+ { zAlpha___Extern_PrefixName, zAlpha___Extern_PrefixList,
+ apzAlpha___Extern_PrefixMachs,
+ ALPHA___EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha___Extern_PrefixTests, apzAlpha___Extern_PrefixPatch, 0 },
+
{ zAlpha_AssertName, zAlpha_AssertList,
apzAlpha_AssertMachs,
ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6036,6 +6812,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aAlpha_ParensTests, apzAlpha_ParensPatch, 0 },
+ { zAlpha_Pthread_GccName, zAlpha_Pthread_GccList,
+ apzAlpha_Pthread_GccMachs,
+ ALPHA_PTHREAD_GCC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aAlpha_Pthread_GccTests, apzAlpha_Pthread_GccPatch, 0 },
+
{ zAlpha_SbrkName, zAlpha_SbrkList,
apzAlpha_SbrkMachs,
ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6166,16 +6947,26 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHpux11_Cpp_Pow_InlineTests, apzHpux11_Cpp_Pow_InlinePatch, 0 },
- { zHpux11_FabsfName, zHpux11_FabsfList,
- apzHpux11_FabsfMachs,
- HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
- aHpux11_FabsfTests, apzHpux11_FabsfPatch, 0 },
+ { zHpux10_Ctype_Declarations1Name, zHpux10_Ctype_Declarations1List,
+ apzHpux10_Ctype_Declarations1Machs,
+ HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Ctype_Declarations1Tests, apzHpux10_Ctype_Declarations1Patch, 0 },
+
+ { zHpux10_Ctype_Declarations2Name, zHpux10_Ctype_Declarations2List,
+ apzHpux10_Ctype_Declarations2Machs,
+ HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux10_Ctype_Declarations2Tests, apzHpux10_Ctype_Declarations2Patch, 0 },
{ zHpux11_AbsName, zHpux11_AbsList,
apzHpux11_AbsMachs,
HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHpux11_AbsTests, apzHpux11_AbsPatch, 0 },
+ { zHpux11_FabsfName, zHpux11_FabsfList,
+ apzHpux11_FabsfMachs,
+ HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_FabsfTests, apzHpux11_FabsfPatch, 0 },
+
{ zHpux11_Size_TName, zHpux11_Size_TList,
apzHpux11_Size_TMachs,
HPUX11_SIZE_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6191,11 +6982,26 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aHpux11_VsnprintfTests, apzHpux11_VsnprintfPatch, 0 },
+ { zHpux11_SnprintfName, zHpux11_SnprintfList,
+ apzHpux11_SnprintfMachs,
+ HPUX11_SNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux11_SnprintfTests, apzHpux11_SnprintfPatch, 0 },
+
{ zHpux8_Bogus_InlinesName, zHpux8_Bogus_InlinesList,
apzHpux8_Bogus_InlinesMachs,
HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY,
aHpux8_Bogus_InlinesTests, apzHpux8_Bogus_InlinesPatch, 0 },
+ { zHpux_Ctype_MacrosName, zHpux_Ctype_MacrosList,
+ apzHpux_Ctype_MacrosMachs,
+ HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aHpux_Ctype_MacrosTests, apzHpux_Ctype_MacrosPatch, 0 },
+
+ { zHpux_Long_DoubleName, zHpux_Long_DoubleList,
+ apzHpux_Long_DoubleMachs,
+ HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
+ aHpux_Long_DoubleTests, apzHpux_Long_DoublePatch, 0 },
+
{ zHpux_MaxintName, zHpux_MaxintList,
apzHpux_MaxintMachs,
HPUX_MAXINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6226,6 +7032,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY,
aIp_Missing_SemiTests, apzIp_Missing_SemiPatch, 0 },
+ { zIrix___RestrictName, zIrix___RestrictList,
+ apzIrix___RestrictMachs,
+ IRIX___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___RestrictTests, apzIrix___RestrictPatch, 0 },
+
+ { zIrix___Generic1Name, zIrix___Generic1List,
+ apzIrix___Generic1Machs,
+ IRIX___GENERIC1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___Generic1Tests, apzIrix___Generic1Patch, 0 },
+
+ { zIrix___Generic2Name, zIrix___Generic2List,
+ apzIrix___Generic2Machs,
+ IRIX___GENERIC2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix___Generic2Tests, apzIrix___Generic2Patch, 0 },
+
{ zIrix_Asm_ApostropheName, zIrix_Asm_ApostropheList,
apzIrix_Asm_ApostropheMachs,
IRIX_ASM_APOSTROPHE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6236,11 +7057,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aIrix_Limits_ConstTests, apzIrix_Limits_ConstPatch, 0 },
+ { zIrix_Socklen_TName, zIrix_Socklen_TList,
+ apzIrix_Socklen_TMachs,
+ IRIX_SOCKLEN_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_Socklen_TTests, apzIrix_Socklen_TPatch, 0 },
+
{ zIrix_Stdio_Va_ListName, zIrix_Stdio_Va_ListList,
apzIrix_Stdio_Va_ListMachs,
IRIX_STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aIrix_Stdio_Va_ListTests, apzIrix_Stdio_Va_ListPatch, 0 },
+ { zIrix_WcsftimeName, zIrix_WcsftimeList,
+ apzIrix_WcsftimeMachs,
+ IRIX_WCSFTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aIrix_WcsftimeTests, apzIrix_WcsftimePatch, 0 },
+
{ zIsc_FmodName, zIsc_FmodList,
apzIsc_FmodMachs,
ISC_FMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6256,16 +7087,16 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aKandr_ConcatTests, apzKandr_ConcatPatch, 0 },
- { zLibc1_Ifdefd_MemxName, zLibc1_Ifdefd_MemxList,
- apzLibc1_Ifdefd_MemxMachs,
- LIBC1_IFDEFD_MEMX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
- aLibc1_Ifdefd_MemxTests, apzLibc1_Ifdefd_MemxPatch, 0 },
-
{ zLibc1_G_Va_ListName, zLibc1_G_Va_ListList,
apzLibc1_G_Va_ListMachs,
LIBC1_G_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aLibc1_G_Va_ListTests, apzLibc1_G_Va_ListPatch, 0 },
+ { zLibc1_Ifdefd_MemxName, zLibc1_Ifdefd_MemxList,
+ apzLibc1_Ifdefd_MemxMachs,
+ LIBC1_IFDEFD_MEMX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aLibc1_Ifdefd_MemxTests, apzLibc1_Ifdefd_MemxPatch, 0 },
+
{ zLimits_IfndefsName, zLimits_IfndefsList,
apzLimits_IfndefsMachs,
LIMITS_IFNDEFS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6366,6 +7197,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aNodeent_SyntaxTests, apzNodeent_SyntaxPatch, 0 },
+ { zObstack_Lvalue_CastName, zObstack_Lvalue_CastList,
+ apzObstack_Lvalue_CastMachs,
+ OBSTACK_LVALUE_CAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aObstack_Lvalue_CastTests, apzObstack_Lvalue_CastPatch, 0 },
+
{ zOsf_Namespace_AName, zOsf_Namespace_AList,
apzOsf_Namespace_AMachs,
OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
@@ -6401,6 +7237,21 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aRs6000_ParamTests, apzRs6000_ParamPatch, 0 },
+ { zSco_MathName, zSco_MathList,
+ apzSco_MathMachs,
+ SCO_MATH_TEST_CT, FD_MACH_ONLY,
+ aSco_MathTests, apzSco_MathPatch, 0 },
+
+ { zSco_RegsetName, zSco_RegsetList,
+ apzSco_RegsetMachs,
+ SCO_REGSET_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSco_RegsetTests, apzSco_RegsetPatch, 0 },
+
+ { zSco_StringName, zSco_StringList,
+ apzSco_StringMachs,
+ SCO_STRING_TEST_CT, FD_MACH_ONLY,
+ aSco_StringTests, apzSco_StringPatch, 0 },
+
{ zSco_Static_FuncName, zSco_Static_FuncList,
apzSco_Static_FuncMachs,
SCO_STATIC_FUNC_TEST_CT, FD_MACH_ONLY,
@@ -6411,10 +7262,15 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
SCO_UTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aSco_UtimeTests, apzSco_UtimePatch, 0 },
- { zSolaris_Mutex_InitName, zSolaris_Mutex_InitList,
- apzSolaris_Mutex_InitMachs,
- SOLARIS_MUTEX_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
- aSolaris_Mutex_InitTests, apzSolaris_Mutex_InitPatch, 0 },
+ { zSolaris_Mutex_Init_1Name, zSolaris_Mutex_Init_1List,
+ apzSolaris_Mutex_Init_1Machs,
+ SOLARIS_MUTEX_INIT_1_TEST_CT, FD_MACH_ONLY,
+ aSolaris_Mutex_Init_1Tests, apzSolaris_Mutex_Init_1Patch, 0 },
+
+ { zSolaris_Mutex_Init_2Name, zSolaris_Mutex_Init_2List,
+ apzSolaris_Mutex_Init_2Machs,
+ SOLARIS_MUTEX_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+ aSolaris_Mutex_Init_2Tests, apzSolaris_Mutex_Init_2Patch, 0 },
{ zSolaris_Stdio_TagName, zSolaris_Stdio_TagList,
apzSolaris_Stdio_TagMachs,
@@ -6511,6 +7367,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
SVR4__P_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aSvr4__PTests, apzSvr4__PPatch, 0 },
+ { zSvr4_Disable_OptName, zSvr4_Disable_OptList,
+ apzSvr4_Disable_OptMachs,
+ SVR4_DISABLE_OPT_TEST_CT, FD_MACH_ONLY,
+ aSvr4_Disable_OptTests, apzSvr4_Disable_OptPatch, 0 },
+
{ zSvr4_GetcwdName, zSvr4_GetcwdList,
apzSvr4_GetcwdMachs,
SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff --git a/gcc/fixinc/gnu-regex.c b/gcc/fixinc/gnu-regex.c
index 7468cad5269..790f87e4c44 100644
--- a/gcc/fixinc/gnu-regex.c
+++ b/gcc/fixinc/gnu-regex.c
@@ -5720,7 +5720,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
if (msg_size > errbuf_size)
{
#if defined HAVE_MEMPCPY || defined _LIBC
- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
#else
memcpy (errbuf, msg, errbuf_size - 1);
errbuf[errbuf_size - 1] = 0;
diff --git a/gcc/fixinc/inclhack.def b/gcc/fixinc/inclhack.def
index f332965da06..d62c12c00fa 100644
--- a/gcc/fixinc/inclhack.def
+++ b/gcc/fixinc/inclhack.def
@@ -109,7 +109,7 @@ fix = {
* the wrapper, this will follow the #include_next chain until
* we arrive at the real <asm/posix_types.h>.
*/
- replace = <<- _EOF_
+ replace = <<- _EndOfHeader_
/* This file fixes a bug in the __FD_ZERO macro
for older versions of the Linux kernel. */
#ifndef _POSIX_TYPES_H_WRAPPER
@@ -130,7 +130,7 @@ fix = {
#define _POSIX_TYPES_H_WRAPPER
#endif /* _POSIX_TYPES_H_WRAPPER */
- _EOF_;
+ _EndOfHeader_;
};
@@ -297,19 +297,18 @@ fix = {
/*
* Completely replace <sys/byteorder.h>; with a file that implements gcc's
- * optimized byteswapping. Restricted to "SVR4" machines until either
- * it is shown to be safe to replace this file always, or we get bolder ;-)
+ * optimized byteswapping.
*/
fix = {
hackname = AAB_svr4_replace_byteorder;
-#ifndef SVR5
- mach = "*-*-sysv4*";
- mach = "i[34567]86-*-sysv5*";
- mach = "i[34567]86-*-udk*";
- mach = "i[34567]86-*-solaris2.[0-4]";
- mach = "powerpcle-*-solaris2.[0-4]";
- mach = "sparc-*-solaris2.[0-4]";
-#endif /* SVR5 */
+ mach = "*-*-sysv4*";
+ mach = "i[34567]86-*-sysv5*";
+ mach = "i[34567]86-*-sco3.2v5*";
+ mach = "i[34567]86-*-udk*";
+ mach = "i[34567]86-*-solaris2.[0-4]";
+ mach = "powerpcle-*-solaris2.[0-4]";
+ mach = "sparc-*-solaris2.[0-4]";
+ mach = "i[34567]86-sequent-ptx*";
files = sys/byteorder.h;
replace = '#ifndef _SYS_BYTEORDER_H
\#define _SYS_BYTEORDER_H
@@ -360,9 +359,8 @@ htonl (unsigned long __arg)
{
register unsigned long __result;
- __asm__ ("xchg%B0 %b0,%h0
- ror%L0 $16,%0
- xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
+ __asm__ ("xchg%B0 %b0,%h0 ; ror%L0 $16,%0 ; xchg%B0 %b0,%h0" \
+ : "=q" (__result) : "0" (__arg));
return __result;
}
@@ -599,6 +597,22 @@ fix = {
/*
+ * Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V5 <sys/stat.h>.
+ */
+fix = {
+ hackname = alpha___extern_prefix;
+ files = sys/stat.h;
+ select = "#[ \t]*if[ \t]*defined\\(__DECC\\)";
+
+ mach = "alpha*-dec-osf5*";
+ c_fix = format;
+ c_fix_arg = "%0 || defined(__PRAGMA_EXTERN_PREFIX)";
+
+ test_text = "# if defined(__DECC)";
+};
+
+
+/*
* Fix assert macro in assert.h on Alpha OSF/1.
* The superfluous int cast breaks C++.
*/
@@ -640,6 +654,27 @@ fix = {
/*
+ * Recognize GCC in Tru64 UNIX V5.1B <pthread.h>.
+ */
+fix = {
+ hackname = alpha_pthread_gcc;
+ files = pthread.h;
+ select = "#else\n# error <pthread.h>: unrecognized compiler.";
+
+ mach = "alpha*-dec-osf*";
+ c_fix = format;
+ c_fix_arg = "#elif defined (__GNUC__)\n"
+ "# define _PTHREAD_ENV_GCC\n"
+ "%0";
+
+ test_text = "# define _PTHREAD_ENV_INTELC\n"
+ "#else\n"
+ "# error <pthread.h>: unrecognized compiler.\n"
+ "#endif";
+};
+
+
+/*
* Fix return value of sbrk in unistd.h on Alpha OSF/1 V2.0
*/
fix = {
@@ -726,6 +761,7 @@ fix = {
test_text = "# define bool\t char \n";
};
+
fix = {
hackname = avoid_bool_type;
files = curses.h;
@@ -742,15 +778,23 @@ fix = {
test_text = "typedef unsigned int\tbool \t; /* bool\n type */";
};
+
/*
* For C++, avoid any typedef definition of wchar_t,
* and use the built in type instead.
+ * Don't do this for headers that are smart enough to do the right
+ * thing (recent [n]curses.h and Xlib.h).
+ * Don't do it for <linux/nls.h> which is never used from C++ anyway,
+ * and will be broken by the edit.
*/
fix = {
hackname = avoid_wchar_t_type;
select = "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";
+ bypass = "we must use the C\\+\\+ compiler's type";
+ bypass = "_LINUX_NLS_H";
+ bypass = "XFree86: xc/lib/X11/Xlib\\.h";
c_fix = format;
c_fix_arg = "#ifndef __cplusplus\n%0\n#endif";
@@ -758,6 +802,7 @@ fix = {
test_text = "typedef unsigned short\twchar_t \t; /* wchar_t\n type */";
};
+
/*
* Fix #defines under Alpha OSF/1:
* The following files contain '#pragma extern_prefix "_FOO"' followed by
@@ -988,6 +1033,7 @@ fix = {
"extern __DJ_wint_t x;\n";
};
+
/*
* Fix these Sun OS files to avoid an invalid identifier in an #ifdef.
*/
@@ -1142,6 +1188,69 @@ fix = {
/*
+ * Fix hpux 10.X missing ctype declarations 1
+ */
+fix = {
+ hackname = hpux10_ctype_declarations1;
+ files = ctype.h;
+ select = "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";
+ bypass = "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "#ifdef _PROTOTYPES\n"
+ "extern int __tolower(int);\n"
+ "extern int __toupper(int);\n"
+ "#else /* NOT _PROTOTYPES */\n"
+ "extern int __tolower();\n"
+ "extern int __toupper();\n"
+ "#endif /* _PROTOTYPES */\n\n"
+ "%0\n";
+
+ test_text = "# define _toupper(__c) __toupper(__c)\n";
+};
+
+
+/*
+ * Fix hpux 10.X missing ctype declarations 2
+ */
+fix = {
+ hackname = hpux10_ctype_declarations2;
+ files = ctype.h;
+ select = "^# if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";
+ bypass = "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";
+ c_fix = format;
+ c_fix_arg = "%0\n\n"
+ "#ifdef _PROTOTYPES\n"
+ " extern int _isalnum(int);\n"
+ " extern int _isalpha(int);\n"
+ " extern int _iscntrl(int);\n"
+ " extern int _isdigit(int);\n"
+ " extern int _isgraph(int);\n"
+ " extern int _islower(int);\n"
+ " extern int _isprint(int);\n"
+ " extern int _ispunct(int);\n"
+ " extern int _isspace(int);\n"
+ " extern int _isupper(int);\n"
+ " extern int _isxdigit(int);\n"
+ "# else /* not _PROTOTYPES */\n"
+ " extern int _isalnum();\n"
+ " extern int _isalpha();\n"
+ " extern int _iscntrl();\n"
+ " extern int _isdigit();\n"
+ " extern int _isgraph();\n"
+ " extern int _islower();\n"
+ " extern int _isprint();\n"
+ " extern int _ispunct();\n"
+ " extern int _isspace();\n"
+ " extern int _isupper();\n"
+ " extern int _isxdigit();\n"
+ "#endif /* _PROTOTYPES */\n";
+
+ test_text = "# if defined(_SB_CTYPE_MACROS) && !defined(__lint)\n"
+ " extern unsigned int *__SB_masks;\n";
+};
+
+
+/*
* Make sure hpux defines abs in header.
*/
fix = {
@@ -1239,6 +1348,25 @@ fix = {
/*
+ * Fix hpux 11.00 broken snprintf declaration
+ * (third argument is char *, needs to be const char * to prevent
+ * spurious warnings with -Wwrite-strings or in C++).
+ */
+fix = {
+ hackname = hpux11_snprintf;
+ files = stdio.h;
+ select = '(extern int snprintf *\(char *\*, *(|__|_hpux_)size_t,)'
+ ' *(char *\*, *\.\.\.\);)';
+ c_fix = format;
+ c_fix_arg = '%1 const %3';
+
+ test_text = "extern int snprintf(char *, size_t, char *, ...);\n"
+ "extern int snprintf(char *, __size_t, char *, ...);\n"
+ "extern int snprintf(char *, _hpux_size_t, char *, ...);";
+};
+
+
+/*
* get rid of bogus inline definitions in HP-UX 8.0
*/
fix = {
@@ -1256,6 +1384,43 @@ fix = {
/*
+ * Fix hpux broken ctype macros
+ */
+fix = {
+ hackname = hpux_ctype_macros;
+ files = ctype.h;
+ select = '((: |\()__SB_masks \? )'
+ '(__SB_masks\[__(alnum|c)\] & _IS)';
+ c_fix = format;
+ c_fix_arg = "%1(int)%3";
+
+ test_text = ": __SB_masks ? __SB_masks[__alnum] & _ISCNTRL\n"
+ "# define isalpha(__c) (__SB_masks ? __SB_masks[__c] & _IS\n";
+};
+
+
+/*
+ * HP-UX long_double
+ */
+fix = {
+ hackname = hpux_long_double;
+ files = stdlib.h;
+ select = "extern[ \t]long_double[ \t]strtold";
+ bypass = "long_double_t";
+ sed = "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D";
+ sed = "s/long_double/long double/g";
+
+ test_text = "# ifndef _LONG_DOUBLE\n"
+ "# define _LONG_DOUBLE\n"
+ " typedef struct {\n"
+ " unsigned int word1, word2, word3, word4;\n"
+ " } long_double;\n"
+ "# endif /* _LONG_DOUBLE */\n"
+ "extern long_double strtold(const char *, char **);\n";
+};
+
+
+/*
* HPUX 10.x sys/param.h defines MAXINT which clashes with values.h
*/
fix = {
@@ -1367,6 +1532,70 @@ fix = {
/*
+ * IRIX 6.5.1[89] <internal/sgimacros.h> unconditionally defines
+ * __restrict as restrict iff __c99. This is wrong for C++, which
+ * needs many C99 features, but only supports __restrict.
+ */
+fix = {
+ hackname = irix___restrict;
+ files = internal/sgimacros.h;
+ select = "(#ifdef __c99\n)(#[ \t]*define __restrict restrict)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "%1"
+ "# ifndef __cplusplus\n%2\n# endif";
+
+ test_text = "#ifdef __c99\n# define __restrict restrict";
+};
+
+/*
+ * IRIX 6.5.22 <internal/math_core.h> uses the SGI c99 __generic() intrinsic
+ * to define the fpclasify, isfinite, isinf, isnan, isnormal and signbit
+ * functions.
+ *
+ * This was probably introduced around IRIX 6.5.18
+ */
+fix = {
+ hackname = irix___generic1;
+ files = internal/math_core.h;
+ mach = "mips-sgi-irix6.5";
+ select = "#define ([a-z]+)\\(x\\) *__generic.*";
+
+ c_fix = format;
+ c_fix_arg = "extern int %1(double);\n"
+ "extern int %1f(float);\n"
+ "extern int %1l(long double);\n"
+ "#define %1(x) (sizeof(x) == sizeof(double) ? _%1(x) \\\n"
+ " : sizeof(x) == sizeof(float) ? _%1f(x) \\\n"
+ " : _%1l(x))\n";
+
+ test_text =
+ "#define isnan(x) __generic(x,,, _isnan, _isnanf, _isnanl,,,)(x)\n";
+};
+
+
+/* Likewise <internal/math_core.h> on IRIX 6.5.19 and later uses the SGI
+ compiler's __generic intrinsic to define isgreater, isgreaterequal,
+ isless, islessequal, islessgreater and isunordered functions. */
+fix = {
+ hackname = irix___generic2;
+ files = internal/math_core.h;
+ mach = "mips-sgi-irix6.5";
+ select = "#define ([a-z]+)\\(x,y\\) *__generic.*";
+
+ c_fix = format;
+ c_fix_arg = "#define %1(x,y) \\\n"
+ " ((sizeof(x)<=4 && sizeof(y)<=4) ? _%1f(x,y) \\\n"
+ " : (sizeof(x)<=8 && sizeof(y)<=8) ? _%1(x,y) \\\n"
+ " : _%1l(x,y))\n";
+
+ test_text =
+ "#define isless(x,y) __generic(x,y,, _isless, _islessf, _islessl,,,)(x,y)";
+};
+
+
+/*
* IRIX 5.2's <sys/asm.h> contains an asm comment with a contraction
* that causes the assembly preprocessor to complain about an
* unterminated character constant.
@@ -1397,22 +1626,65 @@ fix = {
/*
- * IRIX 5.x's stdio.h declares some functions that take a va_list as
+ * IRIX 6.5.1[78] <sys/socket.h> has a broken definition of socklen_t.
+ * Various socket function prototypes use different types instead,
+ * depending on the API in use (BSD, XPG4/5), but the socklen_t
+ * definition doesn't reflect this (SGI Bug Id 864477, fixed in
+ * IRIX 6.5.19).
+ */
+fix = {
+ hackname = irix_socklen_t;
+ files = sys/socket.h;
+ select = "(#define _SOCKLEN_T\n)(typedef u_int32_t socklen_t;)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "%1"
+ "#if _NO_XOPEN4 && _NO_XOPEN5\n"
+ "typedef int socklen_t;\n"
+ "#else\n"
+ "%2\n"
+ "#endif /* _NO_XOPEN4 && _NO_XOPEN5 */";
+
+ test_text = "#define _SOCKLEN_T\ntypedef u_int32_t socklen_t;";
+};
+
+/*
+ * IRIX 5.x's stdio.h and IRIX 6.5's internal/stdio_core.h declare
+ * some functions that take a va_list as
* taking char *. However, GCC uses void * for va_list, so
* calling vfprintf with a va_list fails in C++. */
fix = {
hackname = irix_stdio_va_list;
files = stdio.h;
+ files = internal/stdio_core.h;
- select = '(printf\(.*), /\* va_list \*/ char \*';
+ select = '/\* va_list \*/ char \*';
c_fix = format;
- c_fix_arg = "%1, __gnuc_va_list";
+ c_fix_arg = "__gnuc_va_list";
test_text =
"extern int printf( const char *, /* va_list */ char * );";
};
/*
+ * IRIX 6.5.19 <internal/wchar_core.h> provides the XPG4 variant of
+ * wcsftime by default. ISO C99 requires the XPG5 variant instead.
+ */
+fix = {
+ hackname = irix_wcsftime;
+ files = internal/wchar_core.h;
+ select = "#if _NO_XOPEN5\n(extern size_t[ \t]+wcsftime.*const char \*.*)";
+
+ mach = "mips-sgi-irix6.5";
+ c_fix = format;
+ c_fix_arg = "#if _NO_XOPEN5 && !defined(__c99)\n%1";
+
+ test_text = "#if _NO_XOPEN5\n"
+ "extern size_t wcsftime(wchar_t *, __SGI_LIBC_NAMESPACE_QUALIFIER size_t, const char *, const struct tm *);";
+};
+
+/*
* Fixing ISC fmod declaration
*/
fix = {
@@ -1538,12 +1810,16 @@ fix = {
* comment. Fortunately, HP/UX already uses #ifndefs in limits.h; if
* we find a #ifndef FLT_MIN we assume that all the required #ifndefs
* are there, and we do not add them ourselves.
+ *
+ * QNX Software Systems also guards the defines, but doesn't define
+ * FLT_MIN. Therefore, bypass the fix for *either* guarded FLT_MIN
+ * or guarded FLT_MAX.
*/
fix = {
hackname = limits_ifndefs;
files = "sys/limits.h";
files = "limits.h";
- bypass = "ifndef[ \t]+FLT_MIN";
+ bypass = "ifndef[ \t]+FLT_(MIN|MAX)";
c_fix = format;
c_fix_arg = "#ifndef %1\n%0\n#endif";
@@ -1805,6 +2081,7 @@ fix = {
"#define OPEN_MAX 20 /* Max, Max, ... */\n";
};
+
/*
* fix bogus recursive stdlib.h in NEWS-OS 4.0C
*/
@@ -1901,6 +2178,31 @@ fix = {
/*
+ * obstack.h used casts as lvalues.
+ *
+ * We need to change postincrements of casted pointers (which are
+ * then dereferenced and assigned into) of the form
+ *
+ * *((TYPE*)PTRVAR)++ = (VALUE)
+ *
+ * into expressions like
+ *
+ * ((*((TYPE*)PTRVAR) = (VALUE)), (PTRVAR += sizeof (TYPE)))
+ *
+ * which is correct for the cases used in obstack.h since PTRVAR is
+ * of type char * and the value of the expression is not used.
+ */
+fix = {
+ hackname = obstack_lvalue_cast;
+ files = obstack.h;
+ select = '\*\(\(([^()]*)\*\)(.*)\)\+\+ = \(([^()]*)\)';
+ c_fix = format;
+ c_fix_arg = "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))";
+ test_text = "*((void **) (h)->next_free)++ = (aptr)";
+};
+
+
+/*
* sys/lc_core.h on some versions of OSF1/4.x pollutes the namespace by
* defining regex.h related types. This causes libg++ build and usage
* failures. Fixing this correctly requires checking and modifying 3 files.
@@ -1975,6 +2277,31 @@ fix = {
/*
+ * Fix casts as lvalues in glibc's <rpc/xdr.h>.
+ */
+fix = {
+ hackname = rpc_xdr_lvalue_cast_a;
+ files = rpc/xdr.h;
+ select = "#define[ \t]*IXDR_GET_LONG.*\\\\\n.*__extension__.*";
+ c_fix = format;
+ c_fix_arg = "#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))";
+ test_text = "#define IXDR_GET_LONG(buf) \\\\\n"
+ "\t((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))";
+};
+
+
+fix = {
+ hackname = rpc_xdr_lvalue_cast_b;
+ files = rpc/xdr.h;
+ select = "#define[ \t]*IXDR_PUT_LONG.*\\\\\n.*__extension__.*";
+ c_fix = format;
+ c_fix_arg = "#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))";
+ test_text = "#define IXDR_PUT_LONG(buf, v) \\\\\n"
+ "\t(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))";
+};
+
+
+/*
* function class(double x) conflicts with C++ keyword on rs/6000
*/
fix = {
@@ -2020,6 +2347,100 @@ fix = {
/*
+ * On OpenServer and on UnixWare 7, <math.h> uses the native compiler
+ * __builtin_generic. We fix that usage to use the GCC equivalent.
+ * It also has a plethora of inline functions that conflict with libstdc++.
+ */
+fix = {
+ hackname = sco_math;
+ files = math.h;
+ files = posix/math.h;
+ files = ansi/math.h;
+ files = xpg4/math.h;
+ files = xpg4v2/math.h;
+ files = xpg4plus/math.h;
+ files = ods_30_compat/math.h;
+ files = oldstyle/math.h;
+ select = "__builtin_generic";
+ sed = "/#define.*__fp_class(a) \\\\/i\\\n"
+ "#ifndef __GNUC__\n";
+ sed =
+"/.*__builtin_generic/a\\\n"
+"#else\\\n"
+"#define __fp_class(a) \\\\\\\n"
+" __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\\\\\\\n"
+" __fpclassifyl(a), \\\\\\\n"
+" __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \\\\\\\n"
+" __fpclassifyf(a),__fpclassify(a)))\\\n"
+"#endif";
+
+ sed = "/extern \"C\\+\\+\"/N;"
+ "/inline double abs/i\\\n"
+ "#ifndef __GNUC__\n";
+ sed = "/inline long double trunc/N;"
+ "/inline long double trunc.*}.*extern \"C\\+\\+\"/a\\\n"
+ "#endif /* ! __GNUC__ */";
+
+ test_text =
+ "#define __fp_class(a) \\\\\n"
+ " __builtin_generic(a,\"ld:__fplcassifyl;f:__fpclassifyf;:__fpclassify\")\n";
+
+};
+
+
+/*
+ * On SCO OpenServer prior to 5.0.7MP1, <sys/regset.h> and <ieeefp.h>
+ * have a clash on struct _fpstate and struct fpstate.
+ */
+fix = {
+ hackname = sco_regset;
+ files = sys/regset.h;
+ mach = "*-*-sco3.2v5*";
+ select = "(struct[ \t]+_*)fpstate";
+ c_fix = format;
+ c_fix_arg = "%1rsfpstate";
+
+ test_text =
+ "union u_fps { struct\tfpstate { int whatever; } };\n"
+ "union _u_fps { struct _fpstate { int whatever; } };\n";
+};
+
+
+/*
+ * The string.h header file on SCO Open Server has some inline C++ functions
+ * that confuse and upset libstdc++ horribly. Protect them from being defined
+ * when using GCC.
+ */
+fix = {
+ hackname = sco_string;
+ files = ansi/string.h;
+ files = posix/string.h;
+ files = xpg4/string.h;
+ files = xpg4v2/string.h;
+ files = xpg4plus/string.h;
+ files = ods_30_compat/string.h;
+ files = oldstyle/string.h;
+ files = string.h;
+ mach = "*-*-sco3.2v5*";
+ select = "inline char";
+ sed = "/extern \"C\\+\\+\"/N;"
+ "/inline void.*memchr/i\\\n"
+ "#ifndef __GNUC__\n";
+ sed = "/return.*strstr/N;"
+ "/return.*strstr.*}/a\\\n"
+ "#endif /* ! __GNUC__ */";
+
+ test_text =
+ "extern \"C++\" {\n"
+ "inline void *memchr(void *__1, int __2, size_t __3)\n"
+ " { return (void *)memchr((const void *)__1, __2, __3); }\n"
+ "inline char *strstr(char *__1, const char *__2)\n"
+ " { return (char *)strstr((const char *)__1, __2); }\n"
+ "}\n";
+};
+
+
+/*
* The static functions lstat() and fchmod() in <sys/stat.h>
* cause G++ grief since they're not wrapped in "if __cplusplus".
*
@@ -2046,7 +2467,7 @@ fix = {
"#ifdef __STDC__\n"
"static int\tstat(const char *__f, struct stat *__p) {\n"
"\treturn __stat32(__f, __p);\n"
- "}\n\n# else /* !__STDC__ */\n"
+ "}\n\n# else /* !__STDC__ THIS FAILS ON BSD SYSTEMS */\n"
"static int\tstat(__f, __p)\n"
"\tchar *__f;\n"
@@ -2076,6 +2497,26 @@ fix = {
/*
+ * Sun Solaris 2.5.1, 2.6 defines PTHREAD_{MUTEX|COND}_INITIALIZER
+ * incorrectly, so we replace them with versions that correspond to
+ * the definition. We also explicitly name this fix "1" and the next
+ * fix "2" because this one does not deal with the last field. This
+ * fix needs to run before the next.
+ */
+fix = {
+ hackname = solaris_mutex_init_1;
+ select = '@\(#\)pthread.h' "[ \t]+1.1[0-9][ \t]+9[567]/[0-9/]+ SMI";
+ files = pthread.h;
+ sed = "/define[ \t]*PTHREAD_MUTEX_INI/s/{0, 0,/{{{0}, 0}, {{{0}}},/\n"
+ "/define[ \t]*PTHREAD_COND_INI/s/{0,/{{{0},0},/";
+ test_text =
+ '#ident "@(#)pthread.h 1.16 97/05/05 SMI"'"\n"
+ "#define PTHREAD_MUTEX_INITIALIZER\t{0, 0, 0}\n"
+ "#define PTHREAD_COND_INITIALIZER\t{0, 0} /* */\n";
+};
+
+
+/*
* Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing
* "0" for the last field of the pthread_mutex_t structure, which is
* of type upad64_t, which itself is typedef'd to int64_t, but with
@@ -2083,7 +2524,7 @@ fix = {
* initializer to "{0}" instead
*/
fix = {
- hackname = solaris_mutex_init;
+ hackname = solaris_mutex_init_2;
select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
files = pthread.h;
c_fix = format;
@@ -2127,7 +2568,8 @@ fix = {
fix = {
hackname = solaris_widec;
files = widec.h;
- mach = '*-*-solaris2.[0-5]*';
+ mach = '*-*-solaris2.[0-5]';
+ mach = '*-*-solaris2.[0-5].*';
bypass = "include.*wchar\\.h";
select = "#include <euc.h>";
c_fix = format;
@@ -2135,35 +2577,6 @@ fix = {
test_text = "#include <euc.h>";
};
-/*
- * Sony NEWSOS 5.0 does not support the complete ANSI C standard.
- */
-#ifdef SONY
-fix = {
- hackname = sony_ctype;
- files = ctype.h;
- test = " -x /bin/sony";
- test = " ! -z \"`if /bin/sony ; then echo true ; fi`\"";
- sed = "s/__ctype/_ctype/g";
-};
-#endif
-
-
-/*
- * Sony NEWSOS 5.0 does not support the complete ANSI C standard.
- */
-#ifdef SONY
-fix = {
- hackname = sony_stdio;
- files = stdio.h;
- test = " -x /bin/sony";
- test = " ! -z \"`if /bin/sony ; then echo true ; fi`\"";
- sed = "s/__filbuf/_filbuf/g\n"
- "s/__flsbuf/_flsbuf/g\n"
- "s/__iob/_iob/g";
-};
-#endif
-
/*
* Add a `static' declaration of `getrnge' into <regexp.h>.
@@ -2217,13 +2630,18 @@ fix = {
/*
* Don't use or define the name va_list in stdio.h.
- * This is for ANSI and also to interoperate properly with gcc's varargs.h.
- * Note _BSD_VA_LIST_ is dealt with elsewhere.
+ * This is for ANSI and also to interoperate properly with gcc's
+ * varargs.h. Note _BSD_VA_LIST_ is dealt with elsewhere. The
+ * presence of __gnuc_va_list, __DJ_va_list, or _G_va_list is taken
+ * to indicate that the header knows what it's doing -- under SUSv2,
+ * stdio.h is required to define va_list, and we shouldn't break that.
*/
fix = {
hackname = stdio_va_list;
files = stdio.h;
- bypass = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list';
+ files = internal/stdio_core.h;
+ files = internal/wchar_core.h;
+ bypass = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list';
/*
* Use __gnuc_va_list in arg types in place of va_list.
@@ -2234,8 +2652,9 @@ fix = {
* instead of va_list.
* Don't claim to have defined va_list.
*/
- sed = "s@ va_list @ __gnuc_va_list @\n"
- "s@ va_list)@ __gnuc_va_list)@\n"
+ sed = "s@[ \t]va_list @ __gnuc_va_list @\n"
+ "s@[ \t]va_list)@ __gnuc_va_list)@\n"
+ "s@(va_list)&@(__gnuc_va_list)\\&@\n"
"s@ _VA_LIST_));@ __gnuc_va_list));@\n"
"s@ __VA_LIST__));@ __gnuc_va_list));@\n"
"s@ va_list@ __not_va_list__@\n"
@@ -2265,6 +2684,9 @@ fix = {
"|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";
/* Tru64 UNIX V4.0F/V5.1 <standards.h> supports GCC usage of __STDC__. */
bypass = 'GNU and MIPS C compilers define __STDC__ differently';
+ /* GNU gmp.h uses "__STDC__ != 1" only if __SCO_VERSION__, which
+ is not defined by GCC, so it is safe. */
+ bypass = '__SCO_VERSION__.*__STDC__ != 1';
c_test = stdc_0_in_system_headers;
c_fix = format;
@@ -2531,14 +2953,13 @@ fix = {
* that is visible to any ANSI compiler using this include. Simply
* delete the lines that #define some string functions to internal forms.
*/
-#ifdef SVR4
fix = {
hackname = svr4_disable_opt;
files = string.h;
select = '#define.*__std_hdr_';
sed = '/#define.*__std_hdr_/d';
+ test_text = "#define strlen __std_hdr_strlen\n";
};
-#endif
/*
@@ -2684,8 +3105,8 @@ fix = {
fix = {
hackname = svr4_mach_defines;
files = ieeefp.h;
- select = "#define[ \t]*__(i386|i860|mips|sparc|m88k|m68k)[ \t]";
- sed = "/#define[ \t]*__\\(i386|i860|mips|sparc|m88k|m68k\\)[ \t]/d";
+ select = "#define[ \t]*__(i386|mips|sparc|m88k|m68k)[ \t]";
+ sed = "/#define[ \t]*__\\(i386|mips|sparc|m88k|m68k\\)[ \t]/d";
};
#endif
@@ -3111,7 +3532,7 @@ fix = {
test_text =
"@(#)stat.h 6.1 (ULTRIX)\n"
"#define S_IFPORT S_IFIFO\n"
- "\tfstat(),\n";
+ "\tfstat(),\n/* THE INSERTION LINE FAILS ON BSD SYSTEMS */";
};
@@ -3444,7 +3865,7 @@ fix = {
sed = "s/Widget new,/Widget c_new,/g";
test_text =
"struct wedge {\n"
- " Widget\told, new; /* fix the new */\n"
+ " Widget\told, new; /* fixinc check FAILS ON BSD */\n"
"};\nextern Wedged( Widget new, Widget old );";
};
diff --git a/gcc/fixinc/mkfixinc.sh b/gcc/fixinc/mkfixinc.sh
index f3679486ab5..52752ab345e 100755
--- a/gcc/fixinc/mkfixinc.sh
+++ b/gcc/fixinc/mkfixinc.sh
@@ -120,7 +120,7 @@ fi
# OK. We gotta make the thing.
# make and install either the binary or the default script
-defs="SHELL=\"$SHELL\" CC=\"$CC\" CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\""
+defs="SHELL=\"$SHELL\" CC=\"$CC\" CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\" LIBERTY=\"$LIBERTY\""
cmd="$MAKE ${defs} install-bin"
echo $cmd
eval $cmd
diff --git a/gcc/fixinc/tests/base/Xm/Traversal.h b/gcc/fixinc/tests/base/Xm/Traversal.h
index 6ca893e3c3a..61e6df1164e 100644
--- a/gcc/fixinc/tests/base/Xm/Traversal.h
+++ b/gcc/fixinc/tests/base/Xm/Traversal.h
@@ -14,7 +14,7 @@ struct wedge {
#ifdef __cplusplus
Widget old, c_new;
#else
- Widget old, new; /* fix the new */
+ Widget old, new; /* fixinc check FAILS ON BSD */
#endif
};
extern Wedged( Widget c_new, Widget old );
diff --git a/gcc/fixinc/tests/base/ansi/string.h b/gcc/fixinc/tests/base/ansi/string.h
new file mode 100644
index 00000000000..4067275d515
--- /dev/null
+++ b/gcc/fixinc/tests/base/ansi/string.h
@@ -0,0 +1,22 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ansi/string.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SCO_STRING_CHECK )
+#ifndef __GNUC__
+extern "C++" {
+inline void *memchr(void *__1, int __2, size_t __3)
+ { return (void *)memchr((const void *)__1, __2, __3); }
+inline char *strstr(char *__1, const char *__2)
+ { return (char *)strstr((const char *)__1, __2); }
+}
+#endif /* ! __GNUC__ */
+
+#endif /* SCO_STRING_CHECK */
diff --git a/gcc/fixinc/tests/base/assert.h b/gcc/fixinc/tests/base/assert.h
index 5140e892e3c..2642cbe49c4 100644
--- a/gcc/fixinc/tests/base/assert.h
+++ b/gcc/fixinc/tests/base/assert.h
@@ -7,14 +7,14 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_BROKEN_ASSERT_STDLIB_CHECK
-#define FIXINC_BROKEN_ASSERT_STDLIB_CHECK 1
+#ifndef FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB
+#define FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB 1
#ifdef __cplusplus
#include <stdlib.h>
#endif
-#ifndef FIXINC_BROKEN_ASSERT_STDIO_CHECK
-#define FIXINC_BROKEN_ASSERT_STDIO_CHECK 1
+#ifndef FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO
+#define FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO 1
#include <stdio.h>
@@ -38,6 +38,6 @@ extern FILE* stderr;
extern void exit ( int );
#endif /* BROKEN_ASSERT_STDLIB_CHECK */
-#endif /* FIXINC_BROKEN_ASSERT_STDIO_CHECK */
+#endif /* FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDIO */
-#endif /* FIXINC_BROKEN_ASSERT_STDLIB_CHECK */
+#endif /* FIXINC_WRAP_ASSERT_H_BROKEN_ASSERT_STDLIB */
diff --git a/gcc/fixinc/tests/base/ctype.h b/gcc/fixinc/tests/base/ctype.h
new file mode 100644
index 00000000000..deabd5e4473
--- /dev/null
+++ b/gcc/fixinc/tests/base/ctype.h
@@ -0,0 +1,65 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/ctype.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( HPUX10_CTYPE_DECLARATIONS1_CHECK )
+#ifdef _PROTOTYPES
+extern int __tolower(int);
+extern int __toupper(int);
+#else /* NOT _PROTOTYPES */
+extern int __tolower();
+extern int __toupper();
+#endif /* _PROTOTYPES */
+
+# define _toupper(__c) __toupper(__c)
+
+
+#endif /* HPUX10_CTYPE_DECLARATIONS1_CHECK */
+
+
+#if defined( HPUX10_CTYPE_DECLARATIONS2_CHECK )
+# if defined(_SB_CTYPE_MACROS) && !defined(__lint)
+
+#ifdef _PROTOTYPES
+ extern int _isalnum(int);
+ extern int _isalpha(int);
+ extern int _iscntrl(int);
+ extern int _isdigit(int);
+ extern int _isgraph(int);
+ extern int _islower(int);
+ extern int _isprint(int);
+ extern int _ispunct(int);
+ extern int _isspace(int);
+ extern int _isupper(int);
+ extern int _isxdigit(int);
+# else /* not _PROTOTYPES */
+ extern int _isalnum();
+ extern int _isalpha();
+ extern int _iscntrl();
+ extern int _isdigit();
+ extern int _isgraph();
+ extern int _islower();
+ extern int _isprint();
+ extern int _ispunct();
+ extern int _isspace();
+ extern int _isupper();
+ extern int _isxdigit();
+#endif /* _PROTOTYPES */
+
+ extern unsigned int *__SB_masks;
+
+#endif /* HPUX10_CTYPE_DECLARATIONS2_CHECK */
+
+
+#if defined( HPUX_CTYPE_MACROS_CHECK )
+: __SB_masks ? (int)__SB_masks[__alnum] & _ISCNTRL
+# define isalpha(__c) (__SB_masks ? (int)__SB_masks[__c] & _IS
+
+#endif /* HPUX_CTYPE_MACROS_CHECK */
diff --git a/gcc/fixinc/tests/base/internal/math_core.h b/gcc/fixinc/tests/base/internal/math_core.h
new file mode 100644
index 00000000000..f39ac3f90cf
--- /dev/null
+++ b/gcc/fixinc/tests/base/internal/math_core.h
@@ -0,0 +1,30 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/math_core.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX___GENERIC1_CHECK )
+extern int isnan(double);
+extern int isnanf(float);
+extern int isnanl(long double);
+#define isnan(x) (sizeof(x) == sizeof(double) ? _isnan(x) \
+ : sizeof(x) == sizeof(float) ? _isnanf(x) \
+ : _isnanl(x))
+
+
+#endif /* IRIX___GENERIC1_CHECK */
+
+
+#if defined( IRIX___GENERIC2_CHECK )
+#define isless(x,y) \
+ ((sizeof(x)<=4 && sizeof(y)<=4) ? _islessf(x,y) \
+ : (sizeof(x)<=8 && sizeof(y)<=8) ? _isless(x,y) \
+ : _islessl(x,y))
+
+#endif /* IRIX___GENERIC2_CHECK */
diff --git a/gcc/fixinc/tests/base/internal/sgimacros.h b/gcc/fixinc/tests/base/internal/sgimacros.h
new file mode 100644
index 00000000000..a491e865af7
--- /dev/null
+++ b/gcc/fixinc/tests/base/internal/sgimacros.h
@@ -0,0 +1,17 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/sgimacros.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX___RESTRICT_CHECK )
+#ifdef __c99
+# ifndef __cplusplus
+# define __restrict restrict
+# endif
+#endif /* IRIX___RESTRICT_CHECK */
diff --git a/gcc/fixinc/tests/base/internal/wchar_core.h b/gcc/fixinc/tests/base/internal/wchar_core.h
new file mode 100644
index 00000000000..5b358a32213
--- /dev/null
+++ b/gcc/fixinc/tests/base/internal/wchar_core.h
@@ -0,0 +1,15 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/internal/wchar_core.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX_WCSFTIME_CHECK )
+#if _NO_XOPEN5 && !defined(__c99)
+extern size_t wcsftime(wchar_t *, __SGI_LIBC_NAMESPACE_QUALIFIER size_t, const char *, const struct tm *);
+#endif /* IRIX_WCSFTIME_CHECK */
diff --git a/gcc/fixinc/tests/base/math.h b/gcc/fixinc/tests/base/math.h
index 4d9907c3910..586c1ee5de0 100644
--- a/gcc/fixinc/tests/base/math.h
+++ b/gcc/fixinc/tests/base/math.h
@@ -7,12 +7,12 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_SUNOS_MATHERR_DECL_CHECK
-#define FIXINC_SUNOS_MATHERR_DECL_CHECK 1
+#ifndef FIXINC_WRAP_MATH_H_SUNOS_MATHERR_DECL
+#define FIXINC_WRAP_MATH_H_SUNOS_MATHERR_DECL 1
struct exception;
-#ifndef FIXINC_MATH_EXCEPTION_CHECK
-#define FIXINC_MATH_EXCEPTION_CHECK 1
+#ifndef FIXINC_WRAP_MATH_H_MATH_EXCEPTION
+#define FIXINC_WRAP_MATH_H_MATH_EXCEPTION 1
#ifdef __cplusplus
#define exception __math_exception
@@ -104,6 +104,21 @@ extern int class();
#endif /* RS6000_DOUBLE_CHECK */
+#if defined( SCO_MATH_CHECK )
+#ifndef __GNUC__
+#define __fp_class(a) \
+ __builtin_generic(a,"ld:__fplcassifyl;f:__fpclassifyf;:__fpclassify")
+#else
+#define __fp_class(a) \
+ __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\
+ __fpclassifyl(a), \
+ __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \
+ __fpclassifyf(a),__fpclassify(a)))
+#endif
+
+#endif /* SCO_MATH_CHECK */
+
+
#if defined( STRICT_ANSI_NOT_CTD_CHECK )
#if 1 && \
&& defined(mumbling) |& ( !defined(__STRICT_ANSI__)) \
@@ -144,6 +159,6 @@ extern double atof(const char *__nptr);
#undef exception
#endif
-#endif /* FIXINC_MATH_EXCEPTION_CHECK */
+#endif /* FIXINC_WRAP_MATH_H_MATH_EXCEPTION */
-#endif /* FIXINC_SUNOS_MATHERR_DECL_CHECK */
+#endif /* FIXINC_WRAP_MATH_H_SUNOS_MATHERR_DECL */
diff --git a/gcc/fixinc/tests/base/obstack.h b/gcc/fixinc/tests/base/obstack.h
new file mode 100644
index 00000000000..ea8e8dd1e32
--- /dev/null
+++ b/gcc/fixinc/tests/base/obstack.h
@@ -0,0 +1,14 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/obstack.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( OBSTACK_LVALUE_CAST_CHECK )
+((*((void **) (h)->next_free) = (aptr)), ( (h)->next_free += sizeof (void *)))
+#endif /* OBSTACK_LVALUE_CAST_CHECK */
diff --git a/gcc/fixinc/tests/base/pthread.h b/gcc/fixinc/tests/base/pthread.h
index 0b2afc7867f..1ed0b716e2f 100644
--- a/gcc/fixinc/tests/base/pthread.h
+++ b/gcc/fixinc/tests/base/pthread.h
@@ -15,12 +15,38 @@
#endif /* AIX_PTHREAD_CHECK */
+#if defined( ALPHA_PTHREAD_GCC_CHECK )
+# define _PTHREAD_ENV_INTELC
+#elif defined (__GNUC__)
+# define _PTHREAD_ENV_GCC
+#else
+# error <pthread.h>: unrecognized compiler.
+#endif
+#endif /* ALPHA_PTHREAD_GCC_CHECK */
+
+
#if defined( PTHREAD_PAGE_SIZE_CHECK )
extern int __page_size;
#endif /* PTHREAD_PAGE_SIZE_CHECK */
-#if defined( SOLARIS_MUTEX_INIT_CHECK )
+#if defined( SOLARIS_MUTEX_INIT_1_CHECK )
+#ident "@(#)pthread.h 1.16 97/05/05 SMI"
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_MUTEX_INITIALIZER {{{0}, 0}, {{{0}}}, 0}
+#else
+#define PTHREAD_MUTEX_INITIALIZER {{{0}, 0}, {{{0}}}, {0}}
+#endif
+#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
+#define PTHREAD_COND_INITIALIZER {{{0},0}, 0} /* */
+#else
+#define PTHREAD_COND_INITIALIZER {{{0},0}, {0}} /* */
+#endif
+
+#endif /* SOLARIS_MUTEX_INIT_1_CHECK */
+
+
+#if defined( SOLARIS_MUTEX_INIT_2_CHECK )
#ident "@(#)pthread.h 1.26 98/04/12 SMI"
#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
#define PTHREAD_MUTEX_INITIALIZER {{{0},0}, {{{0}}}, 0}
@@ -33,7 +59,7 @@ extern int __page_size;
#define PTHREAD_COND_INITIALIZER {{{0}, 0}, {0}} /* DEFAULTCV */
#endif
#define PTHREAD_RWLOCK_INITIALIZER {0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}
-#endif /* SOLARIS_MUTEX_INIT_CHECK */
+#endif /* SOLARIS_MUTEX_INIT_2_CHECK */
#if defined( THREAD_KEYWORD_CHECK )
diff --git a/gcc/fixinc/tests/base/rpc/xdr.h b/gcc/fixinc/tests/base/rpc/xdr.h
index 69fc4c1f5cf..7b9f9bae961 100644
--- a/gcc/fixinc/tests/base/rpc/xdr.h
+++ b/gcc/fixinc/tests/base/rpc/xdr.h
@@ -9,6 +9,16 @@
+#if defined( RPC_XDR_LVALUE_CAST_A_CHECK )
+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
+#endif /* RPC_XDR_LVALUE_CAST_A_CHECK */
+
+
+#if defined( RPC_XDR_LVALUE_CAST_B_CHECK )
+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
+#endif /* RPC_XDR_LVALUE_CAST_B_CHECK */
+
+
#if defined( STRUCT_FILE_CHECK )
struct __file_s;
extern void xdrstdio_create( struct __file_s* );
diff --git a/gcc/fixinc/tests/base/stdio.h b/gcc/fixinc/tests/base/stdio.h
index 00d3c836ff4..8654d80402f 100644
--- a/gcc/fixinc/tests/base/stdio.h
+++ b/gcc/fixinc/tests/base/stdio.h
@@ -7,8 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_STDIO_STDARG_H_CHECK
-#define FIXINC_STDIO_STDARG_H_CHECK 1
+#ifndef FIXINC_WRAP_STDIO_H_STDIO_STDARG_H
+#define FIXINC_WRAP_STDIO_H_STDIO_STDARG_H 1
#define __need___va_list
#include <stdarg.h>
@@ -24,6 +24,13 @@ extern int vsnprintf(char *, _hpux_size_t, const char *, __gnuc_va_list);
#endif /* HPUX11_VSNPRINTF_CHECK */
+#if defined( HPUX11_SNPRINTF_CHECK )
+extern int snprintf(char *, size_t, const char *, ...);
+extern int snprintf(char *, _hpux_size_t, const char *, ...);
+extern int snprintf(char *, _hpux_size_t, const char *, ...);
+#endif /* HPUX11_SNPRINTF_CHECK */
+
+
#if defined( IRIX_STDIO_DUMMY_VA_LIST_CHECK )
extern int printf( const char *, __gnuc_va_list );
#endif /* IRIX_STDIO_DUMMY_VA_LIST_CHECK */
@@ -80,4 +87,4 @@ extern char *tempnam( const char *, const char *);
void f (char * __restrict__ x);
#endif /* UNICOSMK_RESTRICT_CHECK */
-#endif /* FIXINC_STDIO_STDARG_H_CHECK */
+#endif /* FIXINC_WRAP_STDIO_H_STDIO_STDARG_H */
diff --git a/gcc/fixinc/tests/base/stdlib.h b/gcc/fixinc/tests/base/stdlib.h
index 857989cb9cb..441e1ae06ab 100644
--- a/gcc/fixinc/tests/base/stdlib.h
+++ b/gcc/fixinc/tests/base/stdlib.h
@@ -21,6 +21,12 @@
#endif /* HPUX11_ABS_CHECK */
+#if defined( HPUX_LONG_DOUBLE_CHECK )
+extern long double strtold(const char *, char **);
+
+#endif /* HPUX_LONG_DOUBLE_CHECK */
+
+
#if defined( INT_ABORT_FREE_AND_EXIT_CHECK )
extern void abort(int);
extern void free(void*);
diff --git a/gcc/fixinc/tests/base/string.h b/gcc/fixinc/tests/base/string.h
new file mode 100644
index 00000000000..f32c240ae34
--- /dev/null
+++ b/gcc/fixinc/tests/base/string.h
@@ -0,0 +1,13 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/string.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+#ifndef _STRING_INCLUDED
+#define _STRING_INCLUDED
+#include <strings.h>
+#endif /* _STRING_INCLUDED */
diff --git a/gcc/fixinc/tests/base/strings.h b/gcc/fixinc/tests/base/strings.h
index 23f0d00e1ab..36ca0b4c0f1 100644
--- a/gcc/fixinc/tests/base/strings.h
+++ b/gcc/fixinc/tests/base/strings.h
@@ -7,8 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_ULTRIX_STRINGS_CHECK
-#define FIXINC_ULTRIX_STRINGS_CHECK 1
+#ifndef FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS
+#define FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS 1
@@ -22,4 +22,4 @@
#endif /* ULTRIX_STRINGS_CHECK */
-#endif /* FIXINC_ULTRIX_STRINGS_CHECK */
+#endif /* FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS */
diff --git a/gcc/fixinc/tests/base/sys/byteorder.h b/gcc/fixinc/tests/base/sys/byteorder.h
index 46ca752f7e9..b9f9c6fee05 100644
--- a/gcc/fixinc/tests/base/sys/byteorder.h
+++ b/gcc/fixinc/tests/base/sys/byteorder.h
@@ -56,9 +56,7 @@ htonl (unsigned long __arg)
{
register unsigned long __result;
- __asm__ ("xchg%B0 %b0,%h0
- ror%L0 $16,%0
- xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
+ __asm__ ("xchg%B0 %b0,%h0 ; ror%L0 $16,%0 ; xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
return __result;
}
diff --git a/gcc/fixinc/tests/base/sys/mman.h b/gcc/fixinc/tests/base/sys/mman.h
index 90b10f43b29..8fa2fb18c2a 100644
--- a/gcc/fixinc/tests/base/sys/mman.h
+++ b/gcc/fixinc/tests/base/sys/mman.h
@@ -7,8 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_CXX_UNREADY_CHECK
-#define FIXINC_CXX_UNREADY_CHECK 1
+#ifndef FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY
+#define FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY 1
#ifdef __cplusplus
extern "C" {
@@ -22,4 +22,4 @@ extern void* malloc( size_t );
}
#endif
-#endif /* FIXINC_CXX_UNREADY_CHECK */
+#endif /* FIXINC_WRAP_SYS_MMAN_H_CXX_UNREADY */
diff --git a/gcc/fixinc/tests/base/sys/regset.h b/gcc/fixinc/tests/base/sys/regset.h
new file mode 100644
index 00000000000..b23a0b07809
--- /dev/null
+++ b/gcc/fixinc/tests/base/sys/regset.h
@@ -0,0 +1,16 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/regset.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( SCO_REGSET_CHECK )
+union u_fps { struct rsfpstate { int whatever; } };
+union _u_fps { struct _rsfpstate { int whatever; } };
+
+#endif /* SCO_REGSET_CHECK */
diff --git a/gcc/fixinc/tests/base/sys/socket.h b/gcc/fixinc/tests/base/sys/socket.h
new file mode 100644
index 00000000000..56099a92002
--- /dev/null
+++ b/gcc/fixinc/tests/base/sys/socket.h
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE.
+
+ It has been auto-edited by fixincludes from:
+
+ "fixinc/tests/inc/sys/socket.h"
+
+ This had to be done to correct non-standard usages in the
+ original, manufacturer supplied header file. */
+
+
+
+#if defined( IRIX_SOCKLEN_T_CHECK )
+#define _SOCKLEN_T
+#if _NO_XOPEN4 && _NO_XOPEN5
+typedef int socklen_t;
+#else
+typedef u_int32_t socklen_t;
+#endif /* _NO_XOPEN4 && _NO_XOPEN5 */
+#endif /* IRIX_SOCKLEN_T_CHECK */
diff --git a/gcc/fixinc/tests/base/sys/stat.h b/gcc/fixinc/tests/base/sys/stat.h
index 46a4623cd27..9646f8c4bae 100644
--- a/gcc/fixinc/tests/base/sys/stat.h
+++ b/gcc/fixinc/tests/base/sys/stat.h
@@ -9,6 +9,11 @@
+#if defined( ALPHA___EXTERN_PREFIX_CHECK )
+# if defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX)
+#endif /* ALPHA___EXTERN_PREFIX_CHECK */
+
+
#if defined( M88K_BAD_S_IF_CHECK )
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /* is regular? */
#endif /* M88K_BAD_S_IF_CHECK */
@@ -31,7 +36,7 @@ static int stat(const char *__f, struct stat *__p) {
}
#endif /* __cplusplus */
-# else /* !__STDC__ */
+# else /* !__STDC__ THIS FAILS ON BSD SYSTEMS */
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -57,7 +62,7 @@ static int stat(__f, __p)
fstat(),
lstat(),
-
+/* THE INSERTION LINE FAILS ON BSD SYSTEMS */
#endif /* ULTRIX_STAT_CHECK */
diff --git a/gcc/fixinc/tests/base/time.h b/gcc/fixinc/tests/base/time.h
index 100992442b7..fb6e27dc163 100644
--- a/gcc/fixinc/tests/base/time.h
+++ b/gcc/fixinc/tests/base/time.h
@@ -7,8 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
-#ifndef FIXINC_M88K_MULTI_INCL_CHECK
-#define FIXINC_M88K_MULTI_INCL_CHECK 1
+#ifndef FIXINC_WRAP_TIME_H_M88K_MULTI_INCL
+#define FIXINC_WRAP_TIME_H_M88K_MULTI_INCL 1
@@ -34,4 +34,4 @@ typedef void (*__gcc_VOIDFUNCPTR) ();
#define VOIDFUNCPTR __gcc_VOIDFUNCPTR
#endif /* VXWORKS_TIME_CHECK */
-#endif /* FIXINC_M88K_MULTI_INCL_CHECK */
+#endif /* FIXINC_WRAP_TIME_H_M88K_MULTI_INCL */
diff --git a/gcc/flags.h b/gcc/flags.h
index 39ca5ea936e..0a8979d2dc9 100644
--- a/gcc/flags.h
+++ b/gcc/flags.h
@@ -659,6 +659,11 @@ extern int flag_zero_initialized_in_bss;
/* Nonzero means disable transformations observable by signaling NaNs. */
extern int flag_signaling_nans;
+/* A string that's used when a random name is required. NULL means
+ to make it really random. */
+
+extern const char *flag_random_seed;
+
/* True if the given mode has a NaN representation and the treatment of
NaN operands is important. Certain optimizations, such as folding
x * 0 into x, are not correct for NaN operands, and are normally
diff --git a/gcc/flow.c b/gcc/flow.c
index 9ac4f2f9fd8..9f5e1924e91 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1,6 +1,6 @@
/* Data flow analysis for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -414,8 +414,8 @@ life_analysis (f, file, flags)
FILE *file;
int flags;
{
- int i;
#ifdef ELIMINABLE_REGS
+ int i;
static const struct {const int from, to; } eliminables[] = ELIMINABLE_REGS;
#endif
@@ -431,11 +431,8 @@ life_analysis (f, file, flags)
SET_HARD_REG_BIT (elim_reg_set, FRAME_POINTER_REGNUM);
#endif
-
#ifdef CANNOT_CHANGE_MODE_CLASS
- if (flags & PROP_REG_INFO)
- for (i=0; i < NUM_MACHINE_MODES; ++i)
- INIT_REG_SET (&subregs_of_mode[i]);
+ init_subregs_of_mode ();
#endif
if (! optimize)
@@ -1473,8 +1470,11 @@ initialize_uninitialized_subregs ()
for_each_rtx (&i, find_regno_partial, &param);
if (param.retval != NULL_RTX)
{
- insn = gen_move_insn (param.retval,
- CONST0_RTX (GET_MODE (param.retval)));
+ start_sequence ();
+ emit_move_insn (param.retval,
+ CONST0_RTX (GET_MODE (param.retval)));
+ insn = get_insns ();
+ end_sequence ();
insert_insn_on_edge (insn, e);
did_something = 1;
}
@@ -1756,8 +1756,10 @@ propagate_one_insn (pbi, insn)
if (GET_CODE (insn) == CALL_INSN)
{
- int i;
+ regset live_at_end;
+ bool sibcall_p;
rtx note, cond;
+ int i;
cond = NULL_RTX;
if (GET_CODE (PATTERN (insn)) == COND_EXEC)
@@ -1782,12 +1784,23 @@ propagate_one_insn (pbi, insn)
mark_set_1 (pbi, CLOBBER, XEXP (XEXP (note, 0), 0),
cond, insn, pbi->flags);
- /* Calls change all call-used and global registers. */
+ /* Calls change all call-used and global registers; sibcalls do not
+ clobber anything that must be preserved at end-of-function,
+ except for return values. */
+
+ sibcall_p = SIBLING_CALL_P (insn);
+ live_at_end = EXIT_BLOCK_PTR->global_live_at_start;
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
- if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i))
+ if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i)
+ && ! (sibcall_p
+ && REGNO_REG_SET_P (live_at_end, i)
+ && ! refers_to_regno_p (i, i+1,
+ current_function_return_rtx,
+ (rtx *) 0)))
{
+ enum rtx_code code = global_regs[i] ? SET : CLOBBER;
/* We do not want REG_UNUSED notes for these registers. */
- mark_set_1 (pbi, CLOBBER, regno_reg_rtx[i], cond, insn,
+ mark_set_1 (pbi, code, regno_reg_rtx[i], cond, insn,
pbi->flags & ~(PROP_DEATH_NOTES | PROP_REG_INFO));
}
}
@@ -2279,14 +2292,22 @@ insn_dead_p (pbi, x, call_ok, notes)
}
/* A CLOBBER of a pseudo-register that is dead serves no purpose. That
- is not necessarily true for hard registers. */
- else if (code == CLOBBER && GET_CODE (XEXP (x, 0)) == REG
- && REGNO (XEXP (x, 0)) >= FIRST_PSEUDO_REGISTER
- && ! REGNO_REG_SET_P (pbi->reg_live, REGNO (XEXP (x, 0))))
- return 1;
-
- /* We do not check other CLOBBER or USE here. An insn consisting of just
- a CLOBBER or just a USE should not be deleted. */
+ is not necessarily true for hard registers until after reload. */
+ else if (code == CLOBBER)
+ {
+ if (GET_CODE (XEXP (x, 0)) == REG
+ && (REGNO (XEXP (x, 0)) >= FIRST_PSEUDO_REGISTER
+ || reload_completed)
+ && ! REGNO_REG_SET_P (pbi->reg_live, REGNO (XEXP (x, 0))))
+ return 1;
+ }
+
+ /* ??? A base USE is a historical relic. It ought not be needed anymore.
+ Instances where it is still used are either (1) temporary and the USE
+ escaped the pass, (2) cruft and the USE need not be emitted anymore,
+ or (3) hiding bugs elsewhere that are not properly representing data
+ flow. */
+
return 0;
}
@@ -2800,10 +2821,18 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
in ASM_OPERANDs. If these registers get replaced,
we might wind up changing the semantics of the insn,
even if reload can make what appear to be valid
- assignments later. */
+ assignments later.
+
+ We don't build a LOG_LINK for global registers to
+ or from a function call. We don't want to let
+ combine think that it knows what is going on with
+ global registers. */
if (y && (BLOCK_NUM (y) == blocknum)
&& (regno_first >= FIRST_PSEUDO_REGISTER
- || asm_noperands (PATTERN (y)) < 0))
+ || (asm_noperands (PATTERN (y)) < 0
+ && ! ((GET_CODE (insn) == CALL_INSN
+ || GET_CODE (y) == CALL_INSN)
+ && global_regs[regno_first]))))
LOG_LINKS (y) = alloc_INSN_LIST (insn, LOG_LINKS (y));
}
}
@@ -3821,10 +3850,7 @@ mark_used_regs (pbi, x, cond, insn)
case SUBREG:
#ifdef CANNOT_CHANGE_MODE_CLASS
- if (GET_CODE (SUBREG_REG (x)) == REG
- && REGNO (SUBREG_REG (x)) >= FIRST_PSEUDO_REGISTER)
- SET_REGNO_REG_SET (&subregs_of_mode[GET_MODE (x)],
- REGNO (SUBREG_REG (x)));
+ record_subregs_of_mode (x);
#endif
/* While we're here, optimize this case. */
@@ -3869,11 +3895,8 @@ mark_used_regs (pbi, x, cond, insn)
|| GET_CODE (testreg) == SUBREG)
{
#ifdef CANNOT_CHANGE_MODE_CLASS
- if (GET_CODE (testreg) == SUBREG
- && GET_CODE (SUBREG_REG (testreg)) == REG
- && REGNO (SUBREG_REG (testreg)) >= FIRST_PSEUDO_REGISTER)
- SET_REGNO_REG_SET (&subregs_of_mode[GET_MODE (testreg)],
- REGNO (SUBREG_REG (testreg)));
+ if (GET_CODE (testreg) == SUBREG)
+ record_subregs_of_mode (testreg);
#endif
/* Modifying a single register in an alternate mode
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index a7556f438e5..308d60e6bbe 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -102,6 +102,7 @@ static tree unextend PARAMS ((tree, int, int, tree));
static tree fold_truthop PARAMS ((enum tree_code, tree, tree, tree));
static tree optimize_minmax_comparison PARAMS ((tree));
static tree extract_muldiv PARAMS ((tree, tree, enum tree_code, tree));
+static tree extract_muldiv_1 PARAMS ((tree, tree, enum tree_code, tree));
static tree strip_compound_expr PARAMS ((tree, tree));
static int multiple_of_p PARAMS ((tree, tree, tree));
static tree constant_boolean_node PARAMS ((int, tree));
@@ -4044,6 +4045,31 @@ extract_muldiv (t, c, code, wide_type)
enum tree_code code;
tree wide_type;
{
+ /* To avoid exponential search depth, refuse to allow recursion past
+ three levels. Beyond that (1) it's highly unlikely that we'll find
+ something interesting and (2) we've probably processed it before
+ when we built the inner expression. */
+
+ static int depth;
+ tree ret;
+
+ if (depth > 3)
+ return NULL;
+
+ depth++;
+ ret = extract_muldiv_1 (t, c, code, wide_type);
+ depth--;
+
+ return ret;
+}
+
+static tree
+extract_muldiv_1 (t, c, code, wide_type)
+ tree t;
+ tree c;
+ enum tree_code code;
+ tree wide_type;
+{
tree type = TREE_TYPE (t);
enum tree_code tcode = TREE_CODE (t);
tree ctype = (wide_type != 0 && (GET_MODE_SIZE (TYPE_MODE (wide_type))
@@ -4088,10 +4114,15 @@ extract_muldiv (t, c, code, wide_type)
&& TYPE_IS_SIZETYPE (TREE_TYPE (op0)))
&& (GET_MODE_SIZE (TYPE_MODE (ctype))
> GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0)))))
- /* ... or its type is larger than ctype,
- then we cannot pass through this truncation. */
- || (GET_MODE_SIZE (TYPE_MODE (ctype))
- < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))))
+ /* ... or this is a truncation (t is narrower than op0),
+ then we cannot pass through this narrowing. */
+ || (GET_MODE_SIZE (TYPE_MODE (type))
+ < GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (op0))))
+ /* ... or signedness changes for division or modulus,
+ then we cannot pass through this conversion. */
+ || (code != MULT_EXPR
+ && (TREE_UNSIGNED (ctype)
+ != TREE_UNSIGNED (TREE_TYPE (op0))))))
break;
/* Pass the constant down and see if we can make a simplification. If
@@ -4131,25 +4162,6 @@ extract_muldiv (t, c, code, wide_type)
TREE_OPERAND (t, 1));
break;
- case SAVE_EXPR:
- /* If this has not been evaluated and the operand has no side effects,
- we can see if we can do something inside it and make a new one.
- Note that this test is overly conservative since we can do this
- if the only reason it had side effects is that it was another
- similar SAVE_EXPR, but that isn't worth bothering with. */
- if (SAVE_EXPR_RTL (t) == 0 && ! TREE_SIDE_EFFECTS (TREE_OPERAND (t, 0))
- && 0 != (t1 = extract_muldiv (TREE_OPERAND (t, 0), c, code,
- wide_type)))
- {
- t1 = save_expr (t1);
- if (SAVE_EXPR_PERSISTENT_P (t) && TREE_CODE (t1) == SAVE_EXPR)
- SAVE_EXPR_PERSISTENT_P (t1) = 1;
- if (is_pending_size (t))
- put_pending_size (t1);
- return t1;
- }
- break;
-
case LSHIFT_EXPR: case RSHIFT_EXPR:
/* If the second operand is constant, this is a multiplication
or floor division, by a power of two, so we can treat it that
@@ -6001,150 +6013,68 @@ fold (expr)
return fold (build (code, type, TREE_OPERAND (arg0, 0), tem));
}
- /* Convert foo++ == CONST into ++foo == CONST + INCR.
- First, see if one arg is constant; find the constant arg
- and the other one. */
- {
- tree constop = 0, varop = NULL_TREE;
- int constopnum = -1;
- if (TREE_CONSTANT (arg1))
- constopnum = 1, constop = arg1, varop = arg0;
- if (TREE_CONSTANT (arg0))
- constopnum = 0, constop = arg0, varop = arg1;
+ /* Convert foo++ == CONST into ++foo == CONST + INCR. */
+ if (TREE_CONSTANT (arg1)
+ && (TREE_CODE (arg0) == POSTINCREMENT_EXPR
+ || TREE_CODE (arg0) == POSTDECREMENT_EXPR)
+ /* This optimization is invalid for ordered comparisons
+ if CONST+INCR overflows or if foo+incr might overflow.
+ This optimization is invalid for floating point due to rounding.
+ For pointer types we assume overflow doesn't happen. */
+ && (POINTER_TYPE_P (TREE_TYPE (arg0))
+ || (INTEGRAL_TYPE_P (TREE_TYPE (arg0))
+ && (code == EQ_EXPR || code == NE_EXPR))))
+ {
+ tree varop, newconst;
- if (constop && TREE_CODE (varop) == POSTINCREMENT_EXPR)
- {
- /* This optimization is invalid for ordered comparisons
- if CONST+INCR overflows or if foo+incr might overflow.
- This optimization is invalid for floating point due to rounding.
- For pointer types we assume overflow doesn't happen. */
- if (POINTER_TYPE_P (TREE_TYPE (varop))
- || (! FLOAT_TYPE_P (TREE_TYPE (varop))
- && (code == EQ_EXPR || code == NE_EXPR)))
- {
- tree newconst
- = fold (build (PLUS_EXPR, TREE_TYPE (varop),
- constop, TREE_OPERAND (varop, 1)));
-
- /* Do not overwrite the current varop to be a preincrement,
- create a new node so that we won't confuse our caller who
- might create trees and throw them away, reusing the
- arguments that they passed to build. This shows up in
- the THEN or ELSE parts of ?: being postincrements. */
- varop = build (PREINCREMENT_EXPR, TREE_TYPE (varop),
- TREE_OPERAND (varop, 0),
- TREE_OPERAND (varop, 1));
-
- /* If VAROP is a reference to a bitfield, we must mask
- the constant by the width of the field. */
- if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
- && DECL_BIT_FIELD(TREE_OPERAND
- (TREE_OPERAND (varop, 0), 1)))
- {
- int size
- = TREE_INT_CST_LOW (DECL_SIZE
- (TREE_OPERAND
- (TREE_OPERAND (varop, 0), 1)));
- tree mask, unsigned_type;
- unsigned int precision;
- tree folded_compare;
-
- /* First check whether the comparison would come out
- always the same. If we don't do that we would
- change the meaning with the masking. */
- if (constopnum == 0)
- folded_compare = fold (build (code, type, constop,
- TREE_OPERAND (varop, 0)));
- else
- folded_compare = fold (build (code, type,
- TREE_OPERAND (varop, 0),
- constop));
- if (integer_zerop (folded_compare)
- || integer_onep (folded_compare))
- return omit_one_operand (type, folded_compare, varop);
-
- unsigned_type = (*lang_hooks.types.type_for_size)(size, 1);
- precision = TYPE_PRECISION (unsigned_type);
- mask = build_int_2 (~0, ~0);
- TREE_TYPE (mask) = unsigned_type;
- force_fit_type (mask, 0);
- mask = const_binop (RSHIFT_EXPR, mask,
- size_int (precision - size), 0);
- newconst = fold (build (BIT_AND_EXPR,
- TREE_TYPE (varop), newconst,
- convert (TREE_TYPE (varop),
- mask)));
- }
+ if (TREE_CODE (arg0) == POSTINCREMENT_EXPR)
+ {
+ newconst = fold (build (PLUS_EXPR, TREE_TYPE (arg0),
+ arg1, TREE_OPERAND (arg0, 1)));
+ varop = build (PREINCREMENT_EXPR, TREE_TYPE (arg0),
+ TREE_OPERAND (arg0, 0),
+ TREE_OPERAND (arg0, 1));
+ }
+ else
+ {
+ newconst = fold (build (MINUS_EXPR, TREE_TYPE (arg0),
+ arg1, TREE_OPERAND (arg0, 1)));
+ varop = build (PREDECREMENT_EXPR, TREE_TYPE (arg0),
+ TREE_OPERAND (arg0, 0),
+ TREE_OPERAND (arg0, 1));
+ }
- t = build (code, type,
- (constopnum == 0) ? newconst : varop,
- (constopnum == 1) ? newconst : varop);
- return t;
- }
- }
- else if (constop && TREE_CODE (varop) == POSTDECREMENT_EXPR)
- {
- if (POINTER_TYPE_P (TREE_TYPE (varop))
- || (! FLOAT_TYPE_P (TREE_TYPE (varop))
- && (code == EQ_EXPR || code == NE_EXPR)))
- {
- tree newconst
- = fold (build (MINUS_EXPR, TREE_TYPE (varop),
- constop, TREE_OPERAND (varop, 1)));
-
- /* Do not overwrite the current varop to be a predecrement,
- create a new node so that we won't confuse our caller who
- might create trees and throw them away, reusing the
- arguments that they passed to build. This shows up in
- the THEN or ELSE parts of ?: being postdecrements. */
- varop = build (PREDECREMENT_EXPR, TREE_TYPE (varop),
- TREE_OPERAND (varop, 0),
- TREE_OPERAND (varop, 1));
-
- if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
- && DECL_BIT_FIELD(TREE_OPERAND
- (TREE_OPERAND (varop, 0), 1)))
- {
- int size
- = TREE_INT_CST_LOW (DECL_SIZE
- (TREE_OPERAND
- (TREE_OPERAND (varop, 0), 1)));
- tree mask, unsigned_type;
- unsigned int precision;
- tree folded_compare;
-
- if (constopnum == 0)
- folded_compare = fold (build (code, type, constop,
- TREE_OPERAND (varop, 0)));
- else
- folded_compare = fold (build (code, type,
- TREE_OPERAND (varop, 0),
- constop));
- if (integer_zerop (folded_compare)
- || integer_onep (folded_compare))
- return omit_one_operand (type, folded_compare, varop);
-
- unsigned_type = (*lang_hooks.types.type_for_size)(size, 1);
- precision = TYPE_PRECISION (unsigned_type);
- mask = build_int_2 (~0, ~0);
- TREE_TYPE (mask) = TREE_TYPE (varop);
- force_fit_type (mask, 0);
- mask = const_binop (RSHIFT_EXPR, mask,
- size_int (precision - size), 0);
- newconst = fold (build (BIT_AND_EXPR,
- TREE_TYPE (varop), newconst,
- convert (TREE_TYPE (varop),
- mask)));
- }
- t = build (code, type,
- (constopnum == 0) ? newconst : varop,
- (constopnum == 1) ? newconst : varop);
- return t;
- }
- }
- }
+ /* If VAROP is a reference to a bitfield, we must mask
+ the constant by the width of the field. */
+ if (TREE_CODE (TREE_OPERAND (varop, 0)) == COMPONENT_REF
+ && DECL_BIT_FIELD (TREE_OPERAND (TREE_OPERAND (varop, 0), 1)))
+ {
+ tree fielddecl = TREE_OPERAND (TREE_OPERAND (varop, 0), 1);
+ int size = TREE_INT_CST_LOW (DECL_SIZE (fielddecl));
+ tree folded_compare, shift;
+
+ /* First check whether the comparison would come out
+ always the same. If we don't do that we would
+ change the meaning with the masking. */
+ folded_compare = fold (build (code, type,
+ TREE_OPERAND (varop, 0),
+ arg1));
+ if (integer_zerop (folded_compare)
+ || integer_onep (folded_compare))
+ return omit_one_operand (type, folded_compare, varop);
+
+ shift = build_int_2 (TYPE_PRECISION (TREE_TYPE (varop)) - size,
+ 0);
+ newconst = fold (build (LSHIFT_EXPR, TREE_TYPE (varop),
+ newconst, shift));
+ newconst = fold (build (RSHIFT_EXPR, TREE_TYPE (varop),
+ newconst, shift));
+ }
+
+ return fold (build (code, type, varop, newconst));
+ }
/* Change X >= C to X > (C - 1) and X < C to X <= (C - 1) if C > 0.
This transformation affects the cases which are handled in later
@@ -6773,9 +6703,17 @@ fold (expr)
/* Pedantic ANSI C says that a conditional expression is never an lvalue,
so all simple results must be passed through pedantic_non_lvalue. */
if (TREE_CODE (arg0) == INTEGER_CST)
- return pedantic_non_lvalue
- (TREE_OPERAND (t, (integer_zerop (arg0) ? 2 : 1)));
- else if (operand_equal_p (arg1, TREE_OPERAND (expr, 2), 0))
+ {
+ tem = TREE_OPERAND (t, (integer_zerop (arg0) ? 2 : 1));
+ /* Only optimize constant conditions when the selected branch
+ has the same type as the COND_EXPR. This avoids optimizing
+ away "c ? x : throw", where the throw has a void type. */
+ if (! VOID_TYPE_P (TREE_TYPE (tem))
+ || VOID_TYPE_P (TREE_TYPE (t)))
+ return pedantic_non_lvalue (tem);
+ return t;
+ }
+ if (operand_equal_p (arg1, TREE_OPERAND (expr, 2), 0))
return pedantic_omit_one_operand (type, arg1, arg0);
/* If the second operand is zero, invert the comparison and swap
diff --git a/gcc/function.c b/gcc/function.c
index 26334f124da..12f2b21dc0d 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -122,6 +122,9 @@ int current_function_uses_only_leaf_regs;
post-instantiation libcalls. */
int virtuals_instantiated;
+/* Nonzero if at least one trampoline has been created. */
+int trampolines_created;
+
/* Assign unique numbers to labels generated for profiling, debugging, etc. */
static int funcdef_no;
@@ -223,9 +226,8 @@ static rtx assign_stack_local_1 PARAMS ((enum machine_mode, HOST_WIDE_INT,
int, struct function *));
static struct temp_slot *find_temp_slot_from_address PARAMS ((rtx));
static void put_reg_into_stack PARAMS ((struct function *, rtx, tree,
- enum machine_mode, enum machine_mode,
- int, unsigned int, int,
- htab_t));
+ enum machine_mode, unsigned int,
+ int, int, int, htab_t));
static void schedule_fixup_var_refs PARAMS ((struct function *, rtx, tree,
enum machine_mode,
htab_t));
@@ -289,6 +291,7 @@ static void compute_insns_for_mem PARAMS ((rtx, rtx, htab_t));
static void prepare_function_start PARAMS ((void));
static void do_clobber_return_reg PARAMS ((rtx, void *));
static void do_use_return_reg PARAMS ((rtx, void *));
+static void instantiate_virtual_regs_lossage PARAMS ((rtx));
/* Pointer to chain of `struct function' for containing functions. */
static GTY(()) struct function *outer_function_chain;
@@ -450,6 +453,8 @@ free_after_compilation (f)
f->x_nonlocal_goto_stack_level = NULL;
f->x_cleanup_label = NULL;
f->x_return_label = NULL;
+ f->computed_goto_common_label = NULL;
+ f->computed_goto_common_reg = NULL;
f->x_save_expr_regs = NULL;
f->x_stack_slot_list = NULL;
f->x_rtl_expr_chain = NULL;
@@ -502,6 +507,7 @@ get_frame_size ()
ALIGN controls the amount of alignment for the address of the slot:
0 means according to MODE,
-1 means use BIGGEST_ALIGNMENT and round size to multiple of that,
+ -2 means use BITS_PER_UNIT,
positive specifies alignment boundary in bits.
We do not round to stack_boundary here.
@@ -542,6 +548,8 @@ assign_stack_local_1 (mode, size, align, function)
alignment = BIGGEST_ALIGNMENT / BITS_PER_UNIT;
size = CEIL_ROUND (size, alignment);
}
+ else if (align == -2)
+ alignment = 1; /* BITS_PER_UNIT / BITS_PER_UNIT */
else
alignment = align / BITS_PER_UNIT;
@@ -771,7 +779,7 @@ assign_stack_temp_for_type (mode, size, keep, type)
if (keep == 2)
{
p->level = target_temp_slot_level;
- p->keep = 0;
+ p->keep = 1;
}
else if (keep == 3)
{
@@ -1321,20 +1329,24 @@ init_temp_slots ()
target_temp_slot_level = 0;
}
-/* Retroactively move an auto variable from a register to a stack slot.
- This is done when an address-reference to the variable is seen. */
+/* Retroactively move an auto variable from a register to a stack
+ slot. This is done when an address-reference to the variable is
+ seen. If RESCAN is true, all previously emitted instructions are
+ examined and modified to handle the fact that DECL is now
+ addressable. */
void
-put_var_into_stack (decl)
+put_var_into_stack (decl, rescan)
tree decl;
+ int rescan;
{
rtx reg;
enum machine_mode promoted_mode, decl_mode;
struct function *function = 0;
tree context;
- int can_use_addressof;
- int volatilep = TREE_CODE (decl) != SAVE_EXPR && TREE_THIS_VOLATILE (decl);
- int usedp = (TREE_USED (decl)
+ int can_use_addressof_p;
+ int volatile_p = TREE_CODE (decl) != SAVE_EXPR && TREE_THIS_VOLATILE (decl);
+ int used_p = (TREE_USED (decl)
|| (TREE_CODE (decl) != SAVE_EXPR && DECL_INITIAL (decl) != 0));
context = decl_function_context (decl);
@@ -1366,8 +1378,9 @@ put_var_into_stack (decl)
if (function->decl == context)
break;
- /* If this is a variable-size object with a pseudo to address it,
- put that pseudo into the stack, if the var is nonlocal. */
+ /* If this is a variable-sized object or a structure passed by invisible
+ reference, with a pseudo to address it, put that pseudo into the stack
+ if the var is non-local. */
if (TREE_CODE (decl) != SAVE_EXPR && DECL_NONLOCAL (decl)
&& GET_CODE (reg) == MEM
&& GET_CODE (XEXP (reg, 0)) == REG
@@ -1377,8 +1390,12 @@ put_var_into_stack (decl)
decl_mode = promoted_mode = GET_MODE (reg);
}
- can_use_addressof
+ /* If this variable lives in the current function and we don't need to put it
+ in the stack for the sake of setjmp or the non-locality, try to keep it in
+ a register until we know we actually need the address. */
+ can_use_addressof_p
= (function == 0
+ && ! (TREE_CODE (decl) != SAVE_EXPR && DECL_NONLOCAL (decl))
&& optimize > 0
/* FIXME make it work for promoted modes too */
&& decl_mode == promoted_mode
@@ -1389,7 +1406,8 @@ put_var_into_stack (decl)
/* If we can't use ADDRESSOF, make sure we see through one we already
generated. */
- if (! can_use_addressof && GET_CODE (reg) == MEM
+ if (! can_use_addressof_p
+ && GET_CODE (reg) == MEM
&& GET_CODE (XEXP (reg, 0)) == ADDRESSOF)
reg = XEXP (XEXP (reg, 0), 0);
@@ -1397,14 +1415,11 @@ put_var_into_stack (decl)
if (GET_CODE (reg) == REG)
{
- /* If this variable lives in the current function and we don't need
- to put things in the stack for the sake of setjmp, try to keep it
- in a register until we know we actually need the address. */
- if (can_use_addressof)
- gen_mem_addressof (reg, decl);
+ if (can_use_addressof_p)
+ gen_mem_addressof (reg, decl, rescan);
else
- put_reg_into_stack (function, reg, TREE_TYPE (decl), promoted_mode,
- decl_mode, volatilep, 0, usedp, 0);
+ put_reg_into_stack (function, reg, TREE_TYPE (decl), decl_mode,
+ 0, volatile_p, used_p, 0, 0);
}
else if (GET_CODE (reg) == CONCAT)
{
@@ -1420,14 +1435,14 @@ put_var_into_stack (decl)
#ifdef FRAME_GROWS_DOWNWARD
/* Since part 0 should have a lower address, do it second. */
put_reg_into_stack (function, hipart, part_type, part_mode,
- part_mode, volatilep, 0, 0, 0);
+ 0, volatile_p, 0, 0, 0);
put_reg_into_stack (function, lopart, part_type, part_mode,
- part_mode, volatilep, 0, 0, 0);
+ 0, volatile_p, 0, 1, 0);
#else
put_reg_into_stack (function, lopart, part_type, part_mode,
- part_mode, volatilep, 0, 0, 0);
+ 0, volatile_p, 0, 0, 0);
put_reg_into_stack (function, hipart, part_type, part_mode,
- part_mode, volatilep, 0, 0, 0);
+ 0, volatile_p, 0, 1, 0);
#endif
/* Change the CONCAT into a combined MEM for both parts. */
@@ -1448,7 +1463,7 @@ put_var_into_stack (decl)
/* Prevent sharing of rtl that might lose. */
if (GET_CODE (XEXP (reg, 0)) == PLUS)
XEXP (reg, 0) = copy_rtx (XEXP (reg, 0));
- if (usedp)
+ if (used_p && rescan)
{
schedule_fixup_var_refs (function, reg, TREE_TYPE (decl),
promoted_mode, 0);
@@ -1462,35 +1477,43 @@ put_var_into_stack (decl)
/* Subroutine of put_var_into_stack. This puts a single pseudo reg REG
into the stack frame of FUNCTION (0 means the current function).
+ TYPE is the user-level data type of the value hold in the register.
DECL_MODE is the machine mode of the user-level data type.
- PROMOTED_MODE is the machine mode of the register.
- VOLATILE_P is nonzero if this is for a "volatile" decl.
- USED_P is nonzero if this reg might have already been used in an insn. */
+ ORIGINAL_REGNO must be set if the real regno is not visible in REG.
+ VOLATILE_P is true if this is for a "volatile" decl.
+ USED_P is true if this reg might have already been used in an insn.
+ CONSECUTIVE_P is true if the stack slot assigned to reg must be
+ consecutive with the previous stack slot. */
static void
-put_reg_into_stack (function, reg, type, promoted_mode, decl_mode, volatile_p,
- original_regno, used_p, ht)
+put_reg_into_stack (function, reg, type, decl_mode, original_regno,
+ volatile_p, used_p, consecutive_p, ht)
struct function *function;
rtx reg;
tree type;
- enum machine_mode promoted_mode, decl_mode;
- int volatile_p;
+ enum machine_mode decl_mode;
unsigned int original_regno;
- int used_p;
+ int volatile_p, used_p, consecutive_p;
htab_t ht;
{
struct function *func = function ? function : cfun;
- rtx new = 0;
+ enum machine_mode mode = GET_MODE (reg);
unsigned int regno = original_regno;
+ rtx new = 0;
if (regno == 0)
regno = REGNO (reg);
if (regno < func->x_max_parm_reg)
- new = func->x_parm_reg_stack_loc[regno];
+ {
+ if (!func->x_parm_reg_stack_loc)
+ abort ();
+ new = func->x_parm_reg_stack_loc[regno];
+ }
if (new == 0)
- new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode), 0, func);
+ new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode),
+ consecutive_p ? -2 : 0, func);
PUT_CODE (reg, MEM);
PUT_MODE (reg, decl_mode);
@@ -1512,7 +1535,7 @@ put_reg_into_stack (function, reg, type, promoted_mode, decl_mode, volatile_p,
}
if (used_p)
- schedule_fixup_var_refs (function, reg, type, promoted_mode, ht);
+ schedule_fixup_var_refs (function, reg, type, mode, ht);
}
/* Make sure that all refs to the variable, previously made
@@ -1700,7 +1723,7 @@ fixup_var_refs_insns_with_hash (ht, var, promoted_mode, unsignedp, may_share)
tmp.key = var;
ime = (struct insns_for_mem_entry *) htab_find (ht, &tmp);
for (insn_list = ime->insns; insn_list != 0; insn_list = XEXP (insn_list, 1))
- if (INSN_P (XEXP (insn_list, 0)))
+ if (INSN_P (XEXP (insn_list, 0)) && !INSN_DELETED_P (XEXP (insn_list, 0)))
fixup_var_refs_insn (XEXP (insn_list, 0), var, promoted_mode,
unsignedp, 1, may_share);
}
@@ -2168,7 +2191,23 @@ fixup_var_refs_1 (var, promoted_mode, loc, insn, replacements, no_share)
replacement = find_fixup_replacement (replacements, x);
if (replacement->new)
{
+ enum machine_mode mode = GET_MODE (x);
*loc = replacement->new;
+
+ /* Careful! We may have just replaced a SUBREG by a MEM, which
+ means that the insn may have become invalid again. We can't
+ in this case make a new replacement since we already have one
+ and we must deal with MATCH_DUPs. */
+ if (GET_CODE (replacement->new) == MEM)
+ {
+ INSN_CODE (insn) = -1;
+ if (recog_memoized (insn) >= 0)
+ return;
+
+ fixup_var_refs_1 (replacement->new, mode, &PATTERN (insn),
+ insn, replacements, no_share);
+ }
+
return;
}
@@ -2888,15 +2927,19 @@ static int cfa_offset;
#define ARG_POINTER_CFA_OFFSET(FNDECL) FIRST_PARM_OFFSET (FNDECL)
#endif
-/* Build up a (MEM (ADDRESSOF (REG))) rtx for a register REG that just had its
- address taken. DECL is the decl or SAVE_EXPR for the object stored in the
- register, for later use if we do need to force REG into the stack. REG is
- overwritten by the MEM like in put_reg_into_stack. */
+/* Build up a (MEM (ADDRESSOF (REG))) rtx for a register REG that just
+ had its address taken. DECL is the decl or SAVE_EXPR for the
+ object stored in the register, for later use if we do need to force
+ REG into the stack. REG is overwritten by the MEM like in
+ put_reg_into_stack. RESCAN is true if previously emitted
+ instructions must be rescanned and modified now that the REG has
+ been transformed. */
rtx
-gen_mem_addressof (reg, decl)
+gen_mem_addressof (reg, decl, rescan)
rtx reg;
tree decl;
+ int rescan;
{
rtx r = gen_rtx_ADDRESSOF (Pmode, gen_reg_rtx (GET_MODE (reg)),
REGNO (reg), decl);
@@ -2934,10 +2977,11 @@ gen_mem_addressof (reg, decl)
if (DECL_P (decl) && decl_rtl == reg)
SET_DECL_RTL (decl, reg);
- if (TREE_USED (decl) || (DECL_P (decl) && DECL_INITIAL (decl) != 0))
+ if (rescan
+ && (TREE_USED (decl) || (DECL_P (decl) && DECL_INITIAL (decl) != 0)))
fixup_var_refs (reg, GET_MODE (reg), TREE_UNSIGNED (type), reg, 0);
}
- else
+ else if (rescan)
fixup_var_refs (reg, GET_MODE (reg), 0, reg, 0);
return reg;
@@ -2988,8 +3032,8 @@ put_addressof_into_stack (r, ht)
used_p = 1;
}
- put_reg_into_stack (0, reg, type, GET_MODE (reg), GET_MODE (reg),
- volatile_p, ADDRESSOF_REGNO (r), used_p, ht);
+ put_reg_into_stack (0, reg, type, GET_MODE (reg), ADDRESSOF_REGNO (r),
+ volatile_p, used_p, 0, ht);
}
/* List of replacements made below in purge_addressof_1 when creating
@@ -3045,10 +3089,7 @@ purge_addressof_1 (loc, insn, force, store, ht)
rtx sub, insns;
if (GET_CODE (XEXP (x, 0)) != MEM)
- {
- put_addressof_into_stack (x, ht);
- return true;
- }
+ put_addressof_into_stack (x, ht);
/* We must create a copy of the rtx because it was created by
overwriting a REG rtx which is always shared. */
@@ -3151,10 +3192,16 @@ purge_addressof_1 (loc, insn, force, store, ht)
size_x = GET_MODE_BITSIZE (GET_MODE (x));
size_sub = GET_MODE_BITSIZE (GET_MODE (sub));
+ /* Do not frob unchanging MEMs. If a later reference forces the
+ pseudo to the stack, we can wind up with multiple writes to
+ an unchanging memory, which is invalid. */
+ if (RTX_UNCHANGING_P (x) && size_x != size_sub)
+ ;
+
/* Don't even consider working with paradoxical subregs,
or the moral equivalent seen here. */
- if (size_x <= size_sub
- && int_mode_for_mode (GET_MODE (sub)) != BLKmode)
+ else if (size_x <= size_sub
+ && int_mode_for_mode (GET_MODE (sub)) != BLKmode)
{
/* Do a bitfield insertion to mirror what would happen
in memory. */
@@ -3562,11 +3609,19 @@ instantiate_virtual_regs (fndecl, insns)
|| GET_CODE (insn) == CALL_INSN)
{
instantiate_virtual_regs_1 (&PATTERN (insn), insn, 1);
+ if (INSN_DELETED_P (insn))
+ continue;
instantiate_virtual_regs_1 (&REG_NOTES (insn), NULL_RTX, 0);
/* Instantiate any virtual registers in CALL_INSN_FUNCTION_USAGE. */
if (GET_CODE (insn) == CALL_INSN)
instantiate_virtual_regs_1 (&CALL_INSN_FUNCTION_USAGE (insn),
NULL_RTX, 0);
+
+ /* Past this point all ASM statements should match. Verify that
+ to avoid failures later in the compilation process. */
+ if (asm_noperands (PATTERN (insn)) >= 0
+ && ! check_asm_operands (PATTERN (insn)))
+ instantiate_virtual_regs_lossage (insn);
}
/* Instantiate the stack slots for the parm registers, for later use in
@@ -3734,6 +3789,22 @@ instantiate_new_reg (x, poffset)
return new;
}
+
+/* Called when instantiate_virtual_regs has failed to update the instruction.
+ Usually this means that non-matching instruction has been emit, however for
+ asm statements it may be the problem in the constraints. */
+static void
+instantiate_virtual_regs_lossage (insn)
+ rtx insn;
+{
+ if (asm_noperands (PATTERN (insn)) >= 0)
+ {
+ error_for_asm (insn, "impossible constraint in `asm'");
+ delete_insn (insn);
+ }
+ else
+ abort ();
+}
/* Given a pointer to a piece of rtx and an optional pointer to the
containing object, instantiate any virtual registers present in it.
@@ -3770,6 +3841,10 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
if (x == 0)
return 1;
+ /* We may have detected and deleted invalid asm statements. */
+ if (object && INSN_P (object) && INSN_DELETED_P (object))
+ return 1;
+
code = GET_CODE (x);
/* Check for some special cases. */
@@ -3807,7 +3882,10 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
/* The only valid sources here are PLUS or REG. Just do
the simplest possible thing to handle them. */
if (GET_CODE (src) != REG && GET_CODE (src) != PLUS)
- abort ();
+ {
+ instantiate_virtual_regs_lossage (object);
+ return 1;
+ }
start_sequence ();
if (GET_CODE (src) != REG)
@@ -3823,7 +3901,7 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
if (! validate_change (object, &SET_SRC (x), temp, 0)
|| ! extra_insns)
- abort ();
+ instantiate_virtual_regs_lossage (object);
return 1;
}
@@ -3933,7 +4011,10 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
emit_insn_before (seq, object);
if (! validate_change (object, loc, temp, 0)
&& ! validate_replace_rtx (x, temp, object))
- abort ();
+ {
+ instantiate_virtual_regs_lossage (object);
+ return 1;
+ }
}
}
@@ -4087,7 +4168,7 @@ instantiate_virtual_regs_1 (loc, object, extra_insns)
emit_insn_before (seq, object);
if (! validate_change (object, loc, temp, 0)
&& ! validate_replace_rtx (x, temp, object))
- abort ();
+ instantiate_virtual_regs_lossage (object);
}
}
@@ -4539,6 +4620,12 @@ assign_parms (fndecl)
if (nregs > 0)
{
+#if defined (REG_PARM_STACK_SPACE) && !defined (MAYBE_REG_PARM_STACK_SPACE)
+ /* When REG_PARM_STACK_SPACE is nonzero, stack space for
+ split parameters was allocated by our caller, so we
+ won't be pushing it in the prolog. */
+ if (REG_PARM_STACK_SPACE (fndecl) == 0)
+#endif
current_function_pretend_args_size
= (((nregs * UNITS_PER_WORD) + (PARM_BOUNDARY / BITS_PER_UNIT) - 1)
/ (PARM_BOUNDARY / BITS_PER_UNIT)
@@ -4989,7 +5076,7 @@ assign_parms (fndecl)
stack. So, we go back to that sequence, just so that
the fixups will happen. */
push_to_sequence (conversion_insns);
- put_var_into_stack (parm);
+ put_var_into_stack (parm, /*rescan=*/true);
conversion_insns = get_insns ();
end_sequence ();
}
@@ -5525,7 +5612,7 @@ setjmp_protect (block)
||
#endif
! DECL_REGISTER (decl)))
- put_var_into_stack (decl);
+ put_var_into_stack (decl, /*rescan=*/true);
for (sub = BLOCK_SUBBLOCKS (block); sub; sub = TREE_CHAIN (sub))
setjmp_protect (sub);
}
@@ -5552,7 +5639,7 @@ setjmp_protect_args ()
||
#endif
! DECL_REGISTER (decl)))
- put_var_into_stack (decl);
+ put_var_into_stack (decl, /*rescan=*/true);
}
/* Return the context-pointer register corresponding to DECL,
@@ -6824,6 +6911,7 @@ expand_function_end (filename, line, end_bindings)
emit_block_move (blktramp, initial_trampoline,
GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL);
#endif
+ trampolines_created = 1;
INITIALIZE_TRAMPOLINE (tramp, XEXP (DECL_RTL (function), 0), context);
seq = get_insns ();
end_sequence ();
@@ -6884,6 +6972,14 @@ expand_function_end (filename, line, end_bindings)
clear_pending_stack_adjust ();
do_pending_stack_adjust ();
+ /* ??? This is a kludge. We want to ensure that instructions that
+ may trap are not moved into the epilogue by scheduling, because
+ we don't always emit unwind information for the epilogue.
+ However, not all machine descriptions define a blockage insn, so
+ emit an ASM_INPUT to act as one. */
+ if (flag_non_call_exceptions)
+ emit_insn (gen_rtx_ASM_INPUT (VOIDmode, ""));
+
/* Mark the end of the function body.
If control reaches this insn, the function can drop through
without returning a value. */
@@ -7646,19 +7742,8 @@ thread_prologue_and_epilogue_insns (f)
that with a conditional return instruction. */
else if (condjump_p (jump))
{
- rtx ret, *loc;
-
- ret = SET_SRC (PATTERN (jump));
- if (GET_CODE (XEXP (ret, 1)) == LABEL_REF)
- loc = &XEXP (ret, 1);
- else
- loc = &XEXP (ret, 2);
- ret = gen_rtx_RETURN (VOIDmode);
-
- if (! validate_change (jump, loc, ret, 0))
+ if (! redirect_jump (jump, 0, 0))
continue;
- if (JUMP_LABEL (jump))
- LABEL_NUSES (JUMP_LABEL (jump))--;
/* If this block has only one successor, it both jumps
and falls through to the fallthru block, so we can't
diff --git a/gcc/function.h b/gcc/function.h
index 89319ebf2e3..8c5e4fb3d06 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -273,6 +273,10 @@ struct function GTY(())
on machines which require execution of the epilogue on all returns. */
rtx x_return_label;
+ /* Label and register for unswitching computed gotos. */
+ rtx computed_goto_common_label;
+ rtx computed_goto_common_reg;
+
/* List (chain of EXPR_LISTs) of pseudo-regs of SAVE_EXPRs.
So we can mark them all live at the end of the function, if nonopt. */
rtx x_save_expr_regs;
@@ -512,6 +516,9 @@ extern GTY(()) struct function *cfun;
/* Nonzero if we've already converted virtual regs to hard regs. */
extern int virtuals_instantiated;
+/* Nonzero if at least one trampoline has been created. */
+extern int trampolines_created;
+
/* For backward compatibility... eventually these should all go away. */
#define current_function_name (cfun->name)
#define current_function_pops_args (cfun->pops_args)
diff --git a/gcc/gbl-ctors.h b/gcc/gbl-ctors.h
index 3cc363d29d9..9ba79f02ddc 100644
--- a/gcc/gbl-ctors.h
+++ b/gcc/gbl-ctors.h
@@ -23,6 +23,13 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library 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. */
+
/* This file contains definitions and declarations of things
relating to the normal start-up-time invocation of C++
file-scope static object constructors. These declarations
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b05367326ff..8753cd6c3c0 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -197,6 +197,19 @@ static int target_help_flag;
static int report_times;
+/* Nonzero means place this string before uses of /, so that include
+ and library files can be found in an alternate location. */
+
+#ifdef TARGET_SYSTEM_ROOT
+static const char *target_system_root = TARGET_SYSTEM_ROOT;
+#else
+static const char *target_system_root = 0;
+#endif
+
+/* Nonzero means pass the updated target_system_root to the compiler. */
+
+static int target_system_root_changed;
+
/* Nonzero means write "temp" files in source directory
and use the source file's name in them, and don't delete them. */
@@ -279,6 +292,8 @@ 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 add_sysrooted_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 *));
@@ -313,7 +328,7 @@ static void display_help PARAMS ((void));
static void add_preprocessor_option PARAMS ((const char *, int));
static void add_assembler_option PARAMS ((const char *, int));
static void add_linker_option PARAMS ((const char *, int));
-static void process_command PARAMS ((int, const char *const *));
+static void process_command PARAMS ((int, const char **));
static int execute PARAMS ((void));
static void alloc_args PARAMS ((void));
static void clear_args PARAMS ((void));
@@ -414,7 +429,9 @@ or with constant text in a single argument.
%P like %p, but puts `__' before and after the name of each macro.
(Except macros that already have __.)
This is for ANSI C.
- %I Substitute a -iprefix option made from GCC_EXEC_PREFIX.
+ %I Substitute any of -iprefix (made from GCC_EXEC_PREFIX), -isysroot
+ (made from TARGET_SYSTEM_ROOT), and -isystem (made from COMPILER_PATH
+ and -B options) as necessary.
%s current argument is the name of a library or startup file of some sort.
Search for that file in a standard list of directories
and substitute the full name found.
@@ -715,7 +732,7 @@ static const char *cpp_debug_options = "%{d*}";
static const char *cc1_options =
"%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
%1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
- -auxbase%{c|S:%{o*:-strip %*}%{!o*: %b}}%{!c:%{!S: %b}}\
+ %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}\
%{g*} %{O*} %{W*&pedantic*} %{w} %{std*} %{ansi}\
%{v:-version} %{pg:-p} %{p} %{f*} %{undef}\
%{Qn:-fno-ident} %{--help:--help}\
@@ -761,30 +778,10 @@ struct user_specs
static struct user_specs *user_specs_head, *user_specs_tail;
-/* This defines which switch letters take arguments. */
-
-#define DEFAULT_SWITCH_TAKES_ARG(CHAR) \
- ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \
- || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
- || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \
- || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'B' || (CHAR) == 'b')
-
#ifndef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) DEFAULT_SWITCH_TAKES_ARG(CHAR)
#endif
-/* This defines which multi-letter switches take arguments. */
-
-#define DEFAULT_WORD_SWITCH_TAKES_ARG(STR) \
- (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \
- || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \
- || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \
- || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \
- || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
- || !strcmp (STR, "isystem") || !strcmp (STR, "-param") \
- || !strcmp (STR, "specs") \
- || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ"))
-
#ifndef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) DEFAULT_WORD_SWITCH_TAKES_ARG (STR)
#endif
@@ -857,11 +854,11 @@ static const struct compiler default_compilers[] =
%{!E:%{!M:%{!MM:\
%{traditional|ftraditional:\
%eGNU C no longer supports -traditional without -E}\
- %{save-temps|traditional-cpp:%(trad_capable_cpp) \
- %(cpp_options) %b.i \n\
- cc1 -fpreprocessed %b.i %(cc1_options)}\
- %{!save-temps:%{!traditional-cpp:\
- cc1 %(cpp_unique_options) %(cc1_options)}}\
+ %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
+ %(cpp_options) %{save-temps:%b.i} %{!save-temps:%g.i} \n\
+ cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} %(cc1_options)}\
+ %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
+ cc1 %(cpp_unique_options) %(cc1_options)}}}\
%{!fsyntax-only:%(invoke_as)}}}}", 0},
{"-",
"%{!E:%e-E required when input is from standard input}\
@@ -965,6 +962,7 @@ static const struct option_map option_map[] =
{"--library-directory", "-L", "a"},
{"--machine", "-m", "aj"},
{"--machine-", "-m", "*j"},
+ {"--no-integrated-cpp", "-no-integrated-cpp", 0},
{"--no-line-commands", "-P", 0},
{"--no-precompiled-includes", "-noprecomp", 0},
{"--no-standard-includes", "-nostdinc", 0},
@@ -1333,9 +1331,6 @@ static const char *gcc_exec_prefix;
#ifndef STANDARD_EXEC_PREFIX
#define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
#endif
-#ifndef STANDARD_STARTFILE_PREFIX
-#define STANDARD_STARTFILE_PREFIX "/usr/local/lib/"
-#endif
#ifndef TOOLDIR_BASE_PREFIX
#define TOOLDIR_BASE_PREFIX "/usr/local/"
#endif
@@ -1473,6 +1468,12 @@ init_gcc_specs (obstack, shared_name, static_name, eh_name)
buf = concat ("%{static|static-libgcc:", static_name, " ", eh_name,
"}%{!static:%{!static-libgcc:",
+#ifdef HAVE_LD_AS_NEEDED
+ "%{!shared-libgcc:", static_name,
+ " --as-needed ", shared_name, " --no-as-needed}"
+ "%{shared-libgcc:", shared_name, "%{!shared: ", static_name,
+ "}",
+#else
"%{!shared:%{!shared-libgcc:", static_name, " ",
eh_name, "}%{shared-libgcc:", shared_name, " ",
static_name, "}}%{shared:",
@@ -1482,6 +1483,7 @@ init_gcc_specs (obstack, shared_name, static_name, eh_name)
#else
shared_name,
#endif
+#endif
"}}}", NULL);
obstack_grow (obstack, buf, strlen (buf));
@@ -1577,7 +1579,12 @@ init_spec ()
#endif
,
"-lgcc",
- "-lgcc_eh");
+ "-lgcc_eh"
+#ifdef USE_LIBUNWIND_EXCEPTIONS
+ " -lunwind"
+#endif
+ );
+
p += 5;
in_sep = 0;
}
@@ -1593,7 +1600,11 @@ init_spec ()
#endif
,
"libgcc.a%s",
- "libgcc_eh.a%s");
+ "libgcc_eh.a%s"
+#ifdef USE_LIBUNWIND_EXCEPTIONS
+ "libunwind.a%s"
+#endif
+ );
p += 10;
in_sep = 0;
}
@@ -2519,6 +2530,33 @@ add_prefix (pprefix, prefix, component, priority, require_machine_suffix,
pl->next = (*prev);
(*prev) = pl;
}
+
+/* Same as add_prefix, but prepending target_system_root to prefix. */
+static void
+add_sysrooted_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;
+{
+ if (!IS_ABSOLUTE_PATHNAME (prefix))
+ abort ();
+
+ if (target_system_root)
+ {
+ prefix = concat (target_system_root, prefix, NULL);
+ /* We have to override this because GCC's notion of sysroot
+ moves along with GCC. */
+ component = "GCC";
+ }
+
+ add_prefix (pprefix, prefix, component, priority,
+ require_machine_suffix, warn, os_multilib);
+}
/* Execute the command specified by the arguments on the current line of spec.
When using pipes, this includes several piped-together commands
@@ -2620,7 +2658,14 @@ execute ()
}
fflush (stderr);
if (verbose_only_flag != 0)
- return 0;
+ {
+ /* verbose_only_flag should act as if the spec was
+ executed, so increment execution_count before
+ returning. Theis prevent spurious warnings about
+ unused linker input files, etc. */
+ execution_count++;
+ return 0;
+ }
#ifdef DEBUG
notice ("\nGo ahead? (y or n) ");
fflush (stderr);
@@ -2936,7 +2981,7 @@ display_help ()
fputs (_(" -o <file> Place the output into <file>\n"), stdout);
fputs (_("\
-x <language> Specify the language of the following input files\n\
- Permissable languages include: c c++ assembler none\n\
+ Permissible languages include: c c++ assembler none\n\
'none' means revert to the default behavior of\n\
guessing the language based on the file's extension\n\
"), stdout);
@@ -3012,7 +3057,7 @@ add_linker_option (option, len)
static void
process_command (argc, argv)
int argc;
- const char *const *argv;
+ const char **argv;
{
int i;
const char *temp;
@@ -3241,10 +3286,10 @@ process_command (argc, argv)
}
/* Convert new-style -- options to old-style. */
- translate_options (&argc, &argv);
+ translate_options (&argc, (const char *const **) &argv);
/* Do language-specific adjustment/addition of flags. */
- lang_specific_driver (&argc, &argv, &added_libraries);
+ lang_specific_driver (&argc, (const char *const **) &argv, &added_libraries);
/* Scan argv twice. Here, the first time, just count how many switches
there will be in their vector, and how many input files in theirs.
@@ -3276,7 +3321,7 @@ process_command (argc, argv)
{
/* translate_options () has turned --version into -fversion. */
printf (_("%s (GCC) %s\n"), programname, version_string);
- fputs (_("Copyright (C) 2002 Free Software Foundation, Inc.\n"),
+ fputs (_("Copyright (C) 2003 Free Software Foundation, Inc.\n"),
stdout);
fputs (_("This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"),
@@ -3693,6 +3738,24 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n"
concat (tooldir_prefix, "lib", dir_separator_str, NULL),
"BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1);
+#if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS)
+ /* If the normal TARGET_SYSTEM_ROOT is inside of $exec_prefix,
+ then consider it to relocate with the rest of the GCC installation
+ if GCC_EXEC_PREFIX is set.
+ ``make_relative_prefix'' is not compiled for VMS, so don't call it. */
+ if (target_system_root && gcc_exec_prefix)
+ {
+ char *tmp_prefix = make_relative_prefix (argv[0],
+ standard_bindir_prefix,
+ target_system_root);
+ if (tmp_prefix && access_check (tmp_prefix, F_OK) == 0)
+ {
+ target_system_root = tmp_prefix;
+ target_system_root_changed = 1;
+ }
+ }
+#endif
+
/* More prefixes are enabled in main, after we read the specs file
and determine whether this is cross-compilation or not. */
@@ -4575,6 +4638,15 @@ do_spec_1 (spec, inswitch, soft_matched_part)
do_spec_1 (" ", 0, NULL);
}
+ if (target_system_root_changed)
+ {
+ do_spec_1 ("-isysroot", 1, NULL);
+ /* Make this a separate argument. */
+ do_spec_1 (" ", 0, NULL);
+ do_spec_1 (target_system_root, 1, NULL);
+ do_spec_1 (" ", 0, NULL);
+ }
+
for (; pl; pl = pl->next)
{
do_spec_1 ("-isystem", 1, NULL);
@@ -4923,6 +4995,14 @@ do_spec_1 (spec, inswitch, soft_matched_part)
}
break;
+ case 'R':
+ /* We assume there is a directory
+ separator at the end of this string. */
+ if (target_system_root)
+ obstack_grow (&obstack, target_system_root,
+ strlen (target_system_root));
+ break;
+
case 'S':
value = do_spec_1 (startfile_spec, 0, NULL);
if (value != 0)
@@ -5844,12 +5924,12 @@ fatal_error (signum)
kill (getpid (), signum);
}
-extern int main PARAMS ((int, const char *const *));
+extern int main PARAMS ((int, const char **));
int
main (argc, argv)
int argc;
- const char *const *argv;
+ const char **argv;
{
size_t i;
int value;
@@ -5996,35 +6076,47 @@ main (argc, argv)
if (access (specs_file, R_OK) == 0)
read_specs (specs_file, TRUE);
- /* If not cross-compiling, look for startfiles in the standard places.
- Similarly, don't add the standard prefixes if startfile handling
- will be under control of startfile_prefix_spec. */
- if (*cross_compile == '0' && *startfile_prefix_spec == 0)
+ /* If not cross-compiling, look for executables in the standard
+ places. */
+ if (*cross_compile == '0')
{
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);
}
+ }
+
+ /* Look for startfiles in the standard places. */
+ if (*startfile_prefix_spec != 0
+ && do_spec_2 (startfile_prefix_spec) == 0
+ && do_spec_1 (" ", 0, NULL) == 0)
+ {
+ int ndx;
+ for (ndx = 0; ndx < argbuf_index; ndx++)
+ add_sysrooted_prefix (&startfile_prefixes, argbuf[ndx], "BINUTILS",
+ PREFIX_PRIORITY_LAST, 0, NULL, 1);
+ }
+ /* We should eventually get rid of all these and stick to
+ startfile_prefix_spec exclusively. */
+ else if (*cross_compile == '0' || target_system_root)
+ {
+ if (*md_exec_prefix)
+ add_sysrooted_prefix (&startfile_prefixes, md_exec_prefix, "GCC",
+ PREFIX_PRIORITY_LAST, 0, NULL, 1);
if (*md_startfile_prefix)
- add_prefix (&startfile_prefixes, md_startfile_prefix, "GCC",
- PREFIX_PRIORITY_LAST, 0, NULL, 1);
+ add_sysrooted_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
- as a unit. If GCC_EXEC_PREFIX is defined, base
- 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
+ add_sysrooted_prefix (&startfile_prefixes, md_startfile_prefix_1,
+ "GCC", PREFIX_PRIORITY_LAST, 0, NULL, 1);
+
+ /* Base standard_startfile_prefix (unlibsubdir) on standard_exec_prefix.
+ This lets us move the installed tree as a unit. If GCC_EXEC_PREFIX
+ is defined, base standard_startfile_prefix on that as well. */
+ if (*cross_compile == '0')
{
if (gcc_exec_prefix)
add_prefix (&startfile_prefixes,
@@ -6038,34 +6130,15 @@ main (argc, argv)
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);
+ add_sysrooted_prefix (&startfile_prefixes, standard_startfile_prefix_1,
+ "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1);
+ add_sysrooted_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
- {
- if (!IS_ABSOLUTE_PATHNAME (standard_startfile_prefix)
- && gcc_exec_prefix)
- add_prefix (&startfile_prefixes,
- concat (gcc_exec_prefix, machine_suffix,
- standard_startfile_prefix, NULL),
- "BINUTILS", PREFIX_PRIORITY_LAST, 0, NULL, 1);
- }
-
- if (*startfile_prefix_spec != 0
- && do_spec_2 (startfile_prefix_spec) == 0
- && do_spec_1 (" ", 0, NULL) == 0)
- {
- int ndx;
- for (ndx = 0; ndx < argbuf_index; ndx++)
- add_prefix (&startfile_prefixes, argbuf[ndx], "BINUTILS",
- PREFIX_PRIORITY_LAST, 0, NULL, 1);
- }
/* Process any user specified specs in the order given on the command
line. */
diff --git a/gcc/gcc.h b/gcc/gcc.h
index feab0ef0710..06691bd9f6b 100644
--- a/gcc/gcc.h
+++ b/gcc/gcc.h
@@ -31,6 +31,28 @@ struct spec_function
const char *(*func) PARAMS ((int, const char **));
};
+/* This defines which switch letters take arguments. */
+
+#define DEFAULT_SWITCH_TAKES_ARG(CHAR) \
+ ((CHAR) == 'D' || (CHAR) == 'U' || (CHAR) == 'o' \
+ || (CHAR) == 'e' || (CHAR) == 'T' || (CHAR) == 'u' \
+ || (CHAR) == 'I' || (CHAR) == 'm' || (CHAR) == 'x' \
+ || (CHAR) == 'L' || (CHAR) == 'A' || (CHAR) == 'V' \
+ || (CHAR) == 'B' || (CHAR) == 'b')
+
+/* This defines which multi-letter switches take arguments. */
+
+#define DEFAULT_WORD_SWITCH_TAKES_ARG(STR) \
+ (!strcmp (STR, "Tdata") || !strcmp (STR, "Ttext") \
+ || !strcmp (STR, "Tbss") || !strcmp (STR, "include") \
+ || !strcmp (STR, "imacros") || !strcmp (STR, "aux-info") \
+ || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \
+ || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
+ || !strcmp (STR, "isystem") || !strcmp (STR, "-param") \
+ || !strcmp (STR, "specs") \
+ || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ"))
+
+
/* These are exported by gcc.c. */
extern int do_spec PARAMS ((const char *));
extern void record_temp_file PARAMS ((const char *, int, int));
diff --git a/gcc/gccbug.in b/gcc/gccbug.in
index 9619e61222c..f8f35247e6e 100755
--- a/gcc/gccbug.in
+++ b/gcc/gccbug.in
@@ -198,7 +198,7 @@ EOF
done
# spam does not need to be listed here
-CATEGORIES="ada bootstrap c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end objc optimization other preprocessor target web"
+CATEGORIES="ada bootstrap c++ c debug driver fortran inline-asm java libf2c libgcj libobjc libstdc++ middle-end objc other preprocessor rtl-optimization target tree-optimization web"
case "$FORMAT" in
lisp) echo "$CATEGORIES" | \
diff --git a/gcc/gcov-io.h b/gcc/gcov-io.h
index 29a44017fde..50d04a38bba 100644
--- a/gcc/gcov-io.h
+++ b/gcc/gcov-io.h
@@ -19,6 +19,14 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library 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 GCC_GCOV_IO_H
#define GCC_GCOV_IO_H
#include <stdio.h>
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 9e4cccb136e..12c9ac82243 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -615,6 +615,7 @@ static int cprop PARAMS ((int));
static int one_cprop_pass PARAMS ((int, int));
static bool constprop_register PARAMS ((rtx, rtx, rtx, int));
static struct expr *find_bypass_set PARAMS ((int, int));
+static bool reg_killed_on_edge PARAMS ((rtx, edge));
static int bypass_block PARAMS ((basic_block, rtx, rtx));
static int bypass_conditional_jumps PARAMS ((void));
static void alloc_pre_mem PARAMS ((int, int));
@@ -699,6 +700,7 @@ static void free_insn_expr_list_list PARAMS ((rtx *));
static void clear_modify_mem_tables PARAMS ((void));
static void free_modify_mem_tables PARAMS ((void));
static rtx gcse_emit_move_after PARAMS ((rtx, rtx, rtx));
+static void local_cprop_find_used_regs PARAMS ((rtx *, void *));
static bool do_local_cprop PARAMS ((rtx, rtx, int, rtx*));
static bool adjust_libcall_notes PARAMS ((rtx, rtx, rtx, rtx*));
static void local_cprop_pass PARAMS ((int));
@@ -3932,6 +3934,15 @@ try_replace_reg (from, to, insn)
if (num_changes_pending () && apply_change_group ())
success = 1;
+ /* Try to simplify SET_SRC if we have substituted a constant. */
+ if (success && set && CONSTANT_P (to))
+ {
+ src = simplify_rtx (SET_SRC (set));
+
+ if (src)
+ validate_change (insn, &SET_SRC (set), src, 0);
+ }
+
if (!success && set && reg_mentioned_p (from, SET_SRC (set)))
{
/* If above failed and this is a single set, try to simplify the source of
@@ -3943,9 +3954,12 @@ try_replace_reg (from, to, insn)
&& validate_change (insn, &SET_SRC (set), src, 0))
success = 1;
- /* If we've failed to do replacement, have a single SET, and don't already
- have a note, add a REG_EQUAL note to not lose information. */
- if (!success && note == 0 && set != 0)
+ /* If we've failed to do replacement, have a single SET, don't already
+ have a note, and have no special SET, add a REG_EQUAL note to not
+ lose information. */
+ if (!success && note == 0 && set != 0
+ && GET_CODE (XEXP (set, 0)) != ZERO_EXTRACT
+ && GET_CODE (XEXP (set, 0)) != SIGN_EXTRACT)
note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src));
}
@@ -4049,28 +4063,29 @@ cprop_jump (bb, setcc, jump, from, src)
rtx from;
rtx src;
{
- rtx new, new_set;
+ rtx new;
rtx set = pc_set (jump);
+ rtx set_src = SET_SRC (set);
/* First substitute in the INSN condition as the SET_SRC of the JUMP,
then substitute that given values in this expanded JUMP. */
- if (setcc != NULL
+ if (setcc != NULL_RTX
&& !modified_between_p (from, setcc, jump)
&& !modified_between_p (src, setcc, jump))
{
rtx setcc_set = single_set (setcc);
- new_set = simplify_replace_rtx (SET_SRC (set),
+ set_src = simplify_replace_rtx (set_src,
SET_DEST (setcc_set),
SET_SRC (setcc_set));
}
else
- new_set = set;
+ setcc = NULL_RTX;
- new = simplify_replace_rtx (new_set, from, src);
+ new = simplify_replace_rtx (set_src, from, src);
/* If no simplification can be made, then try the next
register. */
- if (rtx_equal_p (new, new_set) || rtx_equal_p (new, SET_SRC (set)))
+ if (rtx_equal_p (new, SET_SRC (set)))
return 0;
/* If this is now a no-op delete it, otherwise this must be a valid insn. */
@@ -4128,6 +4143,7 @@ constprop_register (insn, from, to, alter_jumps)
conditional branch instructions first. */
if (alter_jumps
&& (sset = single_set (insn)) != NULL
+ && NEXT_INSN (insn)
&& any_condjump_p (NEXT_INSN (insn)) && onlyjump_p (NEXT_INSN (insn)))
{
rtx dest = SET_DEST (sset);
@@ -4220,6 +4236,8 @@ cprop_insn (insn, alter_jumps)
print_rtl (gcse_file, src);
fprintf (gcse_file, "\n");
}
+ if (INSN_DELETED_P (insn))
+ return 1;
}
}
else if (GET_CODE (src) == REG
@@ -4249,6 +4267,53 @@ cprop_insn (insn, alter_jumps)
return changed;
}
+/* Like find_used_regs, but avoid recording uses that appear in
+ input-output contexts such as zero_extract or pre_dec. This
+ restricts the cases we consider to those for which local cprop
+ can legitimately make replacements. */
+
+static void
+local_cprop_find_used_regs (xptr, data)
+ rtx *xptr;
+ void *data;
+{
+ rtx x = *xptr;
+
+ if (x == 0)
+ return;
+
+ switch (GET_CODE (x))
+ {
+ case ZERO_EXTRACT:
+ case SIGN_EXTRACT:
+ case STRICT_LOW_PART:
+ return;
+
+ case PRE_DEC:
+ case PRE_INC:
+ case POST_DEC:
+ case POST_INC:
+ case PRE_MODIFY:
+ case POST_MODIFY:
+ /* Can only legitimately appear this early in the context of
+ stack pushes for function arguments, but handle all of the
+ codes nonetheless. */
+ return;
+
+ case SUBREG:
+ /* Setting a subreg of a register larger than word_mode leaves
+ the non-written words unchanged. */
+ if (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x))) > BITS_PER_WORD)
+ return;
+ break;
+
+ default:
+ break;
+ }
+
+ find_used_regs (xptr, data);
+}
+
/* LIBCALL_SP is a zero-terminated array of insns at the end of a libcall;
their REG_EQUAL notes need updating. */
@@ -4278,6 +4343,9 @@ do_local_cprop (x, insn, alter_jumps, libcall_sp)
rtx this_rtx = l->loc;
rtx note;
+ if (l->in_libcall)
+ continue;
+
if (CONSTANT_P (this_rtx))
newcnst = this_rtx;
if (REG_P (this_rtx) && REGNO (this_rtx) >= FIRST_PSEUDO_REGISTER
@@ -4376,6 +4444,7 @@ local_cprop_pass (alter_jumps)
rtx insn;
struct reg_use *reg_used;
rtx libcall_stack[MAX_NESTED_LIBCALLS + 1], *libcall_sp;
+ bool changed = false;
cselib_init ();
libcall_sp = &libcall_stack[MAX_NESTED_LIBCALLS];
@@ -4399,21 +4468,34 @@ local_cprop_pass (alter_jumps)
do
{
reg_use_count = 0;
- note_uses (&PATTERN (insn), find_used_regs, NULL);
+ note_uses (&PATTERN (insn), local_cprop_find_used_regs, NULL);
if (note)
- find_used_regs (&XEXP (note, 0), NULL);
+ local_cprop_find_used_regs (&XEXP (note, 0), NULL);
for (reg_used = &reg_use_table[0]; reg_use_count > 0;
reg_used++, reg_use_count--)
if (do_local_cprop (reg_used->reg_rtx, insn, alter_jumps,
libcall_sp))
- break;
+ {
+ changed = true;
+ break;
+ }
+ if (INSN_DELETED_P (insn))
+ break;
}
while (reg_use_count);
}
cselib_process_insn (insn);
}
cselib_finish ();
+ /* Global analysis may get into infinite loops for unreachable blocks. */
+ if (changed && alter_jumps)
+ {
+ delete_unreachable_blocks ();
+ free_reg_set_mem ();
+ alloc_reg_set_mem (max_reg_num ());
+ compute_sets (get_insns ());
+ }
}
/* Forward propagate copies. This includes copies and constants. Return
@@ -4502,6 +4584,9 @@ one_cprop_pass (pass, alter_jumps)
fprintf (gcse_file, "%d const props, %d copy props\n\n",
const_prop_count, copy_prop_count);
}
+ /* Global analysis may get into infinite loops for unreachable blocks. */
+ if (changed && alter_jumps)
+ delete_unreachable_blocks ();
return changed;
}
@@ -4550,11 +4635,35 @@ find_bypass_set (regno, bb)
}
+/* Subroutine of bypass_block that checks whether a pseudo is killed by
+ any of the instructions inserted on an edge. Jump bypassing places
+ condition code setters on CFG edges using insert_insn_on_edge. This
+ function is required to check that our data flow analysis is still
+ valid prior to commit_edge_insertions. */
+
+static bool
+reg_killed_on_edge (reg, e)
+ rtx reg;
+ edge e;
+{
+ rtx insn;
+
+ for (insn = e->insns; insn; insn = NEXT_INSN (insn))
+ if (INSN_P (insn) && reg_set_p (reg, insn))
+ return true;
+
+ return false;
+}
+
/* Subroutine of bypass_conditional_jumps that attempts to bypass the given
basic block BB which has more than one predecessor. If not NULL, SETCC
is the first instruction of BB, which is immediately followed by JUMP_INSN
JUMP. Otherwise, SETCC is NULL, and JUMP is the first insn of BB.
- Returns nonzero if a change was made. */
+ Returns nonzero if a change was made.
+
+ During the jump bypassing pass, we may place copies of SETCC instuctions
+ on CFG edges. The following routine must be careful to pay attention to
+ these inserted insns when performing its transformations. */
static int
bypass_block (bb, setcc, jump)
@@ -4562,7 +4671,7 @@ bypass_block (bb, setcc, jump)
rtx setcc, jump;
{
rtx insn, note;
- edge e, enext;
+ edge e, enext, edest;
int i, change;
insn = (setcc != NULL) ? setcc : jump;
@@ -4594,6 +4703,10 @@ bypass_block (bb, setcc, jump)
if (! set)
continue;
+ /* Check the data flow is valid after edge insertions. */
+ if (e->insns && reg_killed_on_edge (reg_used->reg_rtx, e))
+ continue;
+
src = SET_SRC (pc_set (jump));
if (setcc != NULL)
@@ -4604,10 +4717,27 @@ bypass_block (bb, setcc, jump)
new = simplify_replace_rtx (src, reg_used->reg_rtx,
SET_SRC (set->expr));
+ /* Jump bypassing may have already placed instructions on
+ edges of the CFG. We can't bypass an outgoing edge that
+ has instructions associated with it, as these insns won't
+ get executed if the incoming edge is redirected. */
+
if (new == pc_rtx)
- dest = FALLTHRU_EDGE (bb)->dest;
+ {
+ edest = FALLTHRU_EDGE (bb);
+ dest = edest->insns ? NULL : edest->dest;
+ }
else if (GET_CODE (new) == LABEL_REF)
- dest = BRANCH_EDGE (bb)->dest;
+ {
+ dest = BLOCK_FOR_INSN (XEXP (new, 0));
+ /* Don't bypass edges containing instructions. */
+ for (edest = bb->succ; edest; edest = edest->succ_next)
+ if (edest->dest == dest && edest->insns)
+ {
+ dest = NULL;
+ break;
+ }
+ }
else
dest = NULL;
@@ -5189,13 +5319,36 @@ pre_insert_copy_insn (expr, insn)
rtx reg = expr->reaching_reg;
int regno = REGNO (reg);
int indx = expr->bitmap_index;
- rtx set = single_set (insn);
- rtx new_insn;
+ rtx pat = PATTERN (insn);
+ rtx set, new_insn;
+ int i;
- if (!set)
+ /* This block matches the logic in hash_scan_insn. */
+ if (GET_CODE (pat) == SET)
+ set = pat;
+ else if (GET_CODE (pat) == PARALLEL)
+ {
+ /* Search through the parallel looking got the set whose
+ source was the expression that we're interested in. */
+ set = NULL_RTX;
+ for (i = 0; i < XVECLEN (pat, 0); i++)
+ {
+ rtx x = XVECEXP (pat, 0, i);
+ if (GET_CODE (x) == SET
+ && expr_equiv_p (SET_SRC (x), expr->expr))
+ {
+ set = x;
+ break;
+ }
+ }
+ if (! set)
+ abort ();
+ }
+ else
abort ();
- new_insn = emit_insn_after (gen_move_insn (reg, SET_DEST (set)), insn);
+ new_insn = gen_move_insn (reg, copy_rtx (SET_DEST (set)));
+ new_insn = emit_insn_after (new_insn, insn);
/* Keep register set table up to date. */
record_one_set (regno, new_insn);
diff --git a/gcc/gdbinit.in b/gcc/gdbinit.in
index 17067df1b46..cee1131b6aa 100644
--- a/gcc/gdbinit.in
+++ b/gcc/gdbinit.in
@@ -50,7 +50,7 @@ Print the tree-code of the tree node that is $.
end
define pdn
-output $.decl.name->identifier.pointer
+output $.decl.name->identifier.id.str
echo \n
end
@@ -59,7 +59,7 @@ Print the name of the decl-node that is $.
end
define ptn
-output $.type.name->decl.name->identifier.pointer
+output $.type.name->decl.name->identifier.id.str
echo \n
end
diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l
index 91cdde29580..38e470de468 100644
--- a/gcc/gengtype-lex.l
+++ b/gcc/gengtype-lex.l
@@ -20,11 +20,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
%{
+#include "hconfig.h"
+#include "system.h"
+
#define malloc xmalloc
#define realloc xrealloc
-#include "hconfig.h"
-#include "system.h"
#include "gengtype.h"
#include "gengtype-yacc.h"
diff --git a/gcc/gengtype-yacc.y b/gcc/gengtype-yacc.y
index bb350b43e59..9ccea1a2033 100644
--- a/gcc/gengtype-yacc.y
+++ b/gcc/gengtype-yacc.y
@@ -37,11 +37,11 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
%token <t>ENT_STRUCT
%token ENT_EXTERNSTATIC
%token ENT_YACCUNION
-%token GTY_TOKEN "GTY"
-%token UNION "union"
-%token STRUCT "struct"
-%token ENUM "enum"
-%token ALIAS "ptr_alias"
+%token GTY_TOKEN
+%token UNION
+%token STRUCT
+%token ENUM
+%token ALIAS
%token <s>PARAM_IS
%token NUM
%token PERCENTPERCENT "%%"
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index b0ebabc40ce..528b3f2260e 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -30,6 +30,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "varray.h"
#include "ggc.h"
#include "langhooks.h"
+#include "params.h"
+#ifdef HAVE_SYS_RESOURCE_H
+# include <sys/resource.h>
+#endif
#ifdef ENABLE_VALGRIND_CHECKING
#include <valgrind.h>
#else
@@ -41,6 +45,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
static ggc_statistics *ggc_stats;
static int ggc_htab_delete PARAMS ((void **, void *));
+static double ggc_rlimit_bound PARAMS ((double));
/* Maintain global roots that are preserved during GC. */
@@ -279,3 +284,81 @@ ggc_print_common_statistics (stream, stats)
/* Don't gather statistics any more. */
ggc_stats = NULL;
}
+
+/* Modify the bound based on rlimits. Keep the smallest number found. */
+static double
+ggc_rlimit_bound (limit)
+ double limit;
+{
+#if defined(HAVE_GETRLIMIT)
+ struct rlimit rlim;
+# ifdef RLIMIT_RSS
+ if (getrlimit (RLIMIT_RSS, &rlim) == 0
+ && rlim.rlim_cur != (rlim_t) RLIM_INFINITY
+ && rlim.rlim_cur < limit)
+ limit = rlim.rlim_cur;
+# endif
+# ifdef RLIMIT_DATA
+ if (getrlimit (RLIMIT_DATA, &rlim) == 0
+ && rlim.rlim_cur != (rlim_t) RLIM_INFINITY
+ && rlim.rlim_cur < limit)
+ limit = rlim.rlim_cur;
+# endif
+# ifdef RLIMIT_AS
+ if (getrlimit (RLIMIT_AS, &rlim) == 0
+ && rlim.rlim_cur != (rlim_t) RLIM_INFINITY
+ && rlim.rlim_cur < limit)
+ limit = rlim.rlim_cur;
+# endif
+#endif /* HAVE_GETRLIMIT */
+
+ return limit;
+}
+
+/* Heuristic to set a default for GGC_MIN_EXPAND. */
+int
+ggc_min_expand_heuristic()
+{
+ double min_expand = physmem_total();
+
+ /* Adjust for rlimits. */
+ min_expand = ggc_rlimit_bound (min_expand);
+
+ /* The heuristic is a percentage equal to 30% + 70%*(RAM/1GB), yielding
+ a lower bound of 30% and an upper bound of 100% (when RAM >= 1GB). */
+ min_expand /= 1024*1024*1024;
+ min_expand *= 70;
+ min_expand = MIN (min_expand, 70);
+ min_expand += 30;
+
+ return min_expand;
+}
+
+/* Heuristic to set a default for GGC_MIN_HEAPSIZE. */
+int
+ggc_min_heapsize_heuristic()
+{
+ double min_heap_kbytes = physmem_total();
+
+ /* Adjust for rlimits. */
+ min_heap_kbytes = ggc_rlimit_bound (min_heap_kbytes);
+
+ min_heap_kbytes /= 1024; /* convert to Kbytes. */
+
+ /* The heuristic is RAM/8, with a lower bound of 4M and an upper
+ bound of 128M (when RAM >= 1GB). */
+ min_heap_kbytes /= 8;
+ min_heap_kbytes = MAX (min_heap_kbytes, 4 * 1024);
+ min_heap_kbytes = MIN (min_heap_kbytes, 128 * 1024);
+
+ return min_heap_kbytes;
+}
+
+void
+init_ggc_heuristics ()
+{
+#ifndef ENABLE_GC_ALWAYS_COLLECT
+ set_param_value ("ggc-min-expand", ggc_min_expand_heuristic());
+ set_param_value ("ggc-min-heapsize", ggc_min_heapsize_heuristic());
+#endif
+}
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index f210af93abe..3f5194abf8f 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -24,7 +24,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "rtl.h"
#include "tm_p.h"
#include "toplev.h"
-#include "varray.h"
#include "flags.h"
#include "ggc.h"
#include "timevar.h"
@@ -239,9 +238,9 @@ typedef struct page_entry
struct page_group *group;
#endif
- /* Saved in-use bit vector for pages that aren't in the topmost
- context during collection. */
- unsigned long *save_in_use_p;
+ /* This is the index in the by_depth varray where this page table
+ can be found. */
+ unsigned long index_by_depth;
/* Context depth of this page. */
unsigned short context_depth;
@@ -330,6 +329,12 @@ static struct globals
/* Total amount of memory mapped. */
size_t bytes_mapped;
+ /* Bit N set if any allocations have been done at context depth N. */
+ unsigned long context_depth_allocations;
+
+ /* Bit N set if any collections have been done at context depth N. */
+ unsigned long context_depth_collections;
+
/* The current depth in the context stack. */
unsigned short context_depth;
@@ -347,6 +352,36 @@ static struct globals
/* The file descriptor for debugging output. */
FILE *debug_file;
+
+ /* Current number of elements in use in depth below. */
+ unsigned int depth_in_use;
+
+ /* Maximum number of elements that can be used before resizing. */
+ unsigned int depth_max;
+
+ /* Each element of this arry is an index in by_depth where the given
+ depth starts. This structure is indexed by that given depth we
+ are interested in. */
+ unsigned int *depth;
+
+ /* Current number of elements in use in by_depth below. */
+ unsigned int by_depth_in_use;
+
+ /* Maximum number of elements that can be used before resizing. */
+ unsigned int by_depth_max;
+
+ /* Each element of this array is a pointer to a page_entry, all
+ page_entries can be found in here by increasing depth.
+ index_by_depth in the page_entry is the index into this data
+ structure where that page_entry can be found. This is used to
+ speed up finding all page_entries at a particular depth. */
+ page_entry **by_depth;
+
+ /* Each element is a pointer to the saved in_use_p bits, if any,
+ zero otherwise. We allocate them all together, to enable a
+ better runtime data access pattern. */
+ unsigned long **save_in_use;
+
} G;
/* The size in bytes required to maintain a bitmap for the objects
@@ -359,6 +394,9 @@ static struct globals
free list. This cannot be larger than HOST_BITS_PER_INT for the
in_use bitmask for page_group. */
#define GGC_QUIRE_SIZE 16
+
+/* Initial guess as to how many page table entries we might need. */
+#define INITIAL_PTE_COUNT 128
static int ggc_allocated_p PARAMS ((const void *));
static page_entry *lookup_page_table_entry PARAMS ((const void *));
@@ -378,13 +416,58 @@ static void clear_marks PARAMS ((void));
static void sweep_pages PARAMS ((void));
static void ggc_recalculate_in_use_p PARAMS ((page_entry *));
static void compute_inverse PARAMS ((unsigned));
+static inline void adjust_depth PARAMS ((void));
#ifdef ENABLE_GC_CHECKING
static void poison_pages PARAMS ((void));
#endif
void debug_print_page_list PARAMS ((int));
+static void push_depth PARAMS ((unsigned int));
+static void push_by_depth PARAMS ((page_entry *, unsigned long *));
+/* Push an entry onto G.depth. */
+
+inline static void
+push_depth (i)
+ unsigned int i;
+{
+ if (G.depth_in_use >= G.depth_max)
+ {
+ G.depth_max *= 2;
+ G.depth = (unsigned int *) xrealloc ((char *) G.depth,
+ G.depth_max * sizeof (unsigned int));
+ }
+ G.depth[G.depth_in_use++] = i;
+}
+
+/* Push an entry onto G.by_depth and G.save_in_use. */
+
+inline static void
+push_by_depth (p, s)
+ page_entry *p;
+ unsigned long *s;
+{
+ if (G.by_depth_in_use >= G.by_depth_max)
+ {
+ G.by_depth_max *= 2;
+ G.by_depth = (page_entry **) xrealloc ((char *) G.by_depth,
+ G.by_depth_max * sizeof (page_entry *));
+ G.save_in_use = (unsigned long **) xrealloc ((char *) G.save_in_use,
+ G.by_depth_max * sizeof (unsigned long *));
+ }
+ G.by_depth[G.by_depth_in_use] = p;
+ G.save_in_use[G.by_depth_in_use++] = s;
+}
+
+/* For the 3.3 release, we will avoid prefetch, as it isn't tested widely. */
+#define prefetch(X) ((void) X)
+
+#define save_in_use_p_i(__i) \
+ (G.save_in_use[__i])
+#define save_in_use_p(__p) \
+ (save_in_use_p_i (__p->index_by_depth))
+
/* Returns nonzero if P was allocated in GC'able memory. */
static inline int
@@ -729,6 +812,8 @@ alloc_page (order)
entry->num_free_objects = num_objects;
entry->next_bit_hint = 1;
+ G.context_depth_allocations |= (unsigned long)1 << G.context_depth;
+
#ifdef USING_MALLOC_PAGE_GROUPS
entry->group = group;
set_page_group_in_use (group, page);
@@ -750,6 +835,26 @@ alloc_page (order)
return entry;
}
+/* Adjust the size of G.depth so that no index greater than the one
+ used by the top of the G.by_depth is used. */
+
+static inline void
+adjust_depth ()
+{
+ page_entry *top;
+
+ if (G.by_depth_in_use)
+ {
+ top = G.by_depth[G.by_depth_in_use-1];
+
+ /* Peel back indicies in depth that index into by_depth, so that
+ as new elements are added to by_depth, we note the indicies
+ of those elements, if they are for new context depths. */
+ while (G.depth_in_use > (size_t)top->context_depth+1)
+ --G.depth_in_use;
+ }
+}
+
/* For a page that is no longer needed, put it on the free page list. */
static inline void
@@ -771,6 +876,30 @@ free_page (entry)
clear_page_group_in_use (entry->group, entry->page);
#endif
+ if (G.by_depth_in_use > 1)
+ {
+ page_entry *top = G.by_depth[G.by_depth_in_use-1];
+
+ /* If they are at the same depth, put top element into freed
+ slot. */
+ if (entry->context_depth == top->context_depth)
+ {
+ int i = entry->index_by_depth;
+ G.by_depth[i] = top;
+ G.save_in_use[i] = G.save_in_use[G.by_depth_in_use-1];
+ top->index_by_depth = i;
+ }
+ else
+ {
+ /* We cannot free a page from a context deeper than the
+ current one. */
+ abort ();
+ }
+ }
+ --G.by_depth_in_use;
+
+ adjust_depth ();
+
entry->next = G.free_pages;
G.free_pages = entry;
}
@@ -894,6 +1023,14 @@ ggc_alloc (size)
struct page_entry *new_entry;
new_entry = alloc_page (order);
+ new_entry->index_by_depth = G.by_depth_in_use;
+ push_by_depth (new_entry, 0);
+
+ /* We can skip context depths, if we do, make sure we go all the
+ way to the new depth. */
+ while (new_entry->context_depth >= G.depth_in_use)
+ push_depth (G.by_depth_in_use-1);
+
/* If this is the only entry, it's also the tail. */
if (entry == NULL)
G.page_tails[order] = new_entry;
@@ -1125,7 +1262,7 @@ init_ggc ()
#ifdef HAVE_MMAP_DEV_ZERO
G.dev_zero_fd = open ("/dev/zero", O_RDONLY);
if (G.dev_zero_fd == -1)
- abort ();
+ fatal_io_error ("open /dev/zero");
#endif
#if 0
@@ -1196,6 +1333,15 @@ init_ggc ()
for (i = OBJECT_SIZE (order); size_lookup [i] == o; --i)
size_lookup[i] = order;
}
+
+ G.depth_in_use = 0;
+ G.depth_max = 10;
+ G.depth = (unsigned int *) xmalloc (G.depth_max * sizeof (unsigned int));
+
+ G.by_depth_in_use = 0;
+ G.by_depth_max = INITIAL_PTE_COUNT;
+ G.by_depth = (page_entry **) xmalloc (G.by_depth_max * sizeof (page_entry *));
+ G.save_in_use = (unsigned long **) xmalloc (G.by_depth_max * sizeof (unsigned long *));
}
/* Increment the `GC context'. Objects allocated in an outer context
@@ -1207,7 +1353,7 @@ ggc_push_context ()
++G.context_depth;
/* Die on wrap. */
- if (G.context_depth == 0)
+ if (G.context_depth >= HOST_BITS_PER_LONG)
abort ();
}
@@ -1238,7 +1384,7 @@ ggc_recalculate_in_use_p (p)
/* Something is in use if it is marked, or if it was in use in a
context further down the context stack. */
- p->in_use_p[i] |= p->save_in_use_p[i];
+ p->in_use_p[i] |= save_in_use_p (p)[i];
/* Decrement the free object count for every object allocated. */
for (j = p->in_use_p[i]; j; j >>= 1)
@@ -1255,13 +1401,82 @@ ggc_recalculate_in_use_p (p)
void
ggc_pop_context ()
{
- unsigned order, depth;
+ unsigned long omask;
+ unsigned int depth, i, e;
+#ifdef ENABLE_CHECKING
+ unsigned int order;
+#endif
depth = --G.context_depth;
+ omask = (unsigned long)1 << (depth + 1);
+
+ if (!((G.context_depth_allocations | G.context_depth_collections) & omask))
+ return;
+
+ G.context_depth_allocations |= (G.context_depth_allocations & omask) >> 1;
+ G.context_depth_allocations &= omask - 1;
+ G.context_depth_collections &= omask - 1;
+
+ /* The G.depth array is shortend so that the last index is the
+ context_depth of the top element of by_depth. */
+ if (depth+1 < G.depth_in_use)
+ e = G.depth[depth+1];
+ else
+ e = G.by_depth_in_use;
+
+ /* We might not have any PTEs of depth depth. */
+ if (depth < G.depth_in_use)
+ {
+
+ /* First we go through all the pages at depth depth to
+ recalculate the in use bits. */
+ for (i = G.depth[depth]; i < e; ++i)
+ {
+ page_entry *p;
+
+#ifdef ENABLE_CHECKING
+ p = G.by_depth[i];
+
+ /* Check that all of the pages really are at the depth that
+ we expect. */
+ if (p->context_depth != depth)
+ abort ();
+ if (p->index_by_depth != i)
+ abort ();
+#endif
+
+ prefetch (&save_in_use_p_i (i+8));
+ prefetch (&save_in_use_p_i (i+16));
+ if (save_in_use_p_i (i))
+ {
+ p = G.by_depth[i];
+ ggc_recalculate_in_use_p (p);
+ free (save_in_use_p_i (i));
+ save_in_use_p_i (i) = 0;
+ }
+ }
+ }
+
+ /* Then, we reset all page_entries with a depth greater than depth
+ to be at depth. */
+ for (i = e; i < G.by_depth_in_use; ++i)
+ {
+ page_entry *p = G.by_depth[i];
- /* Any remaining pages in the popped context are lowered to the new
- current context; i.e. objects allocated in the popped context and
- left over are imported into the previous context. */
+ /* Check that all of the pages really are at the depth we
+ expect. */
+#ifdef ENABLE_CHECKING
+ if (p->context_depth <= depth)
+ abort ();
+ if (p->index_by_depth != i)
+ abort ();
+#endif
+ p->context_depth = depth;
+ }
+
+ adjust_depth ();
+
+#ifdef ENABLE_CHECKING
for (order = 2; order < NUM_ORDERS; order++)
{
page_entry *p;
@@ -1269,18 +1484,12 @@ ggc_pop_context ()
for (p = G.pages[order]; p != NULL; p = p->next)
{
if (p->context_depth > depth)
- p->context_depth = depth;
-
- /* If this page is now in the topmost context, and we'd
- saved its allocation state, restore it. */
- else if (p->context_depth == depth && p->save_in_use_p)
- {
- ggc_recalculate_in_use_p (p);
- free (p->save_in_use_p);
- p->save_in_use_p = 0;
- }
+ abort ();
+ else if (p->context_depth == depth && save_in_use_p (p))
+ abort ();
}
}
+#endif
}
/* Unmark all objects. */
@@ -1309,9 +1518,9 @@ clear_marks ()
marks. So, back them up first. */
if (p->context_depth < G.context_depth)
{
- if (! p->save_in_use_p)
- p->save_in_use_p = xmalloc (bitmap_size);
- memcpy (p->save_in_use_p, p->in_use_p, bitmap_size);
+ if (! save_in_use_p (p))
+ save_in_use_p (p) = xmalloc (bitmap_size);
+ memcpy (save_in_use_p (p), p->in_use_p, bitmap_size);
}
/* Reset reset the number of free objects and clear the
@@ -1491,10 +1700,10 @@ ggc_collect ()
/* Avoid frequent unnecessary work by skipping collection if the
total allocations haven't expanded much since the last
collection. */
- size_t allocated_last_gc =
+ float allocated_last_gc =
MAX (G.allocated_last_gc, (size_t)PARAM_VALUE (GGC_MIN_HEAPSIZE) * 1024);
- size_t min_expand = allocated_last_gc * PARAM_VALUE (GGC_MIN_EXPAND) / 100;
+ float min_expand = allocated_last_gc * PARAM_VALUE (GGC_MIN_EXPAND) / 100;
if (G.allocated < allocated_last_gc + min_expand)
return;
@@ -1511,6 +1720,9 @@ ggc_collect ()
reuse in the interim. */
release_pages ();
+ /* Indicate that we've seen collections at this context depth. */
+ G.context_depth_collections = ((unsigned long)1 << (G.context_depth + 1)) - 1;
+
clear_marks ();
ggc_mark_roots ();
diff --git a/gcc/ggc.h b/gcc/ggc.h
index 4cd6242ee92..69f2f627717 100644
--- a/gcc/ggc.h
+++ b/gcc/ggc.h
@@ -176,3 +176,8 @@ extern void ggc_print_common_statistics PARAMS ((FILE *, ggc_statistics *));
/* Print allocation statistics. */
extern void ggc_print_statistics PARAMS ((void));
extern void stringpool_statistics PARAMS ((void));
+
+/* Heuristics. */
+extern int ggc_min_expand_heuristic PARAMS ((void));
+extern int ggc_min_heapsize_heuristic PARAMS ((void));
+extern void init_ggc_heuristics PARAMS ((void));
diff --git a/gcc/global.c b/gcc/global.c
index 471e42e8fd9..0840b87b191 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -130,6 +130,11 @@ struct allocno
/* Set of hard registers that some later allocno has a preference for. */
HARD_REG_SET regs_someone_prefers;
+
+#ifdef STACK_REGS
+ /* Set to true if allocno can't be allocated in the stack register. */
+ bool no_stack_reg;
+#endif
};
static struct allocno *allocno;
@@ -706,8 +711,14 @@ global_conflicts ()
if (e->flags & EDGE_ABNORMAL)
break;
if (e != NULL)
- for (ax = FIRST_STACK_REG; ax <= LAST_STACK_REG; ax++)
- record_one_conflict (ax);
+ {
+ EXECUTE_IF_SET_IN_ALLOCNO_SET (allocnos_live, ax,
+ {
+ allocno[ax].no_stack_reg = 1;
+ });
+ for (ax = FIRST_STACK_REG; ax <= LAST_STACK_REG; ax++)
+ record_one_conflict (ax);
+ }
}
#endif
}
@@ -1204,6 +1215,10 @@ find_reg (num, losers, alt_regs_p, accept_call_clobbered, retrying)
&& ! invalid_mode_change_p (regno, REGNO_REG_CLASS (regno),
mode)
#endif
+#ifdef STACK_REGS
+ && (!allocno[num].no_stack_reg
+ || regno < FIRST_STACK_REG || regno > LAST_STACK_REG)
+#endif
)
{
/* We explicitly evaluate the divide results into temporary
diff --git a/gcc/gthr-rtems.h b/gcc/gthr-rtems.h
index 23e35d7403f..8cb951ef587 100644
--- a/gcc/gthr-rtems.h
+++ b/gcc/gthr-rtems.h
@@ -1,7 +1,7 @@
/* RTEMS threads compatibily routines for libgcc2 and libobjc.
by: Rosimildo da Silva( rdasilva@connecttel.com ) */
/* Compile this one with gcc. */
-/* Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -37,6 +37,7 @@ extern "C" {
#define __GTHREADS 1
#define __GTHREAD_ONCE_INIT 0
+#define __GTHREAD_MUTEX_INIT 0
#define __GTHREAD_MUTEX_INIT_FUNCTION rtems_gxx_mutex_init
/* avoid depedency on rtems specific headers */
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index c253f2cede1..5c9ab50f9ab 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -364,7 +364,7 @@ static rtx move_insn PARAMS ((rtx, rtx));
on the first cycle. It is used only for DFA based scheduler. */
static rtx ready_element PARAMS ((struct ready_list *, int));
static rtx ready_remove PARAMS ((struct ready_list *, int));
-static int max_issue PARAMS ((struct ready_list *, state_t, int *));
+static int max_issue PARAMS ((struct ready_list *, int *));
static rtx choose_ready PARAMS ((struct ready_list *));
@@ -1773,87 +1773,127 @@ move_insn (insn, last)
return retval;
}
+/* The following structure describe an entry of the stack of choices. */
+struct choice_entry
+{
+ /* Ordinal number of the issued insn in the ready queue. */
+ int index;
+ /* The number of the rest insns whose issues we should try. */
+ int rest;
+ /* The number of issued essential insns. */
+ int n;
+ /* State after issuing the insn. */
+ state_t state;
+};
+
+/* The following array is used to implement a stack of choices used in
+ function max_issue. */
+static struct choice_entry *choice_stack;
+
+/* The following variable value is number of essential insns issued on
+ the current cycle. An insn is essential one if it changes the
+ processors state. */
+static int cycle_issued_insns;
+
+/* The following variable value is maximal number of tries of issuing
+ insns for the first cycle multipass insn scheduling. We define
+ this value as constant*(DFA_LOOKAHEAD**ISSUE_RATE). We would not
+ need this constraint if all real insns (with non-negative codes)
+ had reservations because in this case the algorithm complexity is
+ O(DFA_LOOKAHEAD**ISSUE_RATE). Unfortunately, the dfa descriptions
+ might be incomplete and such insn might occur. For such
+ descriptions, the complexity of algorithm (without the constraint)
+ could achieve DFA_LOOKAHEAD ** N , where N is the queue length. */
+static int max_lookahead_tries;
+
+/* The following value is value of hook
+ `first_cycle_multipass_dfa_lookahead' at the last call of
+ `max_issue'. */
+static int cached_first_cycle_multipass_dfa_lookahead = 0;
+
+/* The following value is value of `issue_rate' at the last call of
+ `sched_init'. */
+static int cached_issue_rate = 0;
+
/* The following function returns maximal (or close to maximal) number
of insns which can be issued on the same cycle and one of which
- insns is insns with the best rank (the last insn in READY). To
+ insns is insns with the best rank (the first insn in READY). To
make this function tries different samples of ready insns. READY
is current queue `ready'. Global array READY_TRY reflects what
- insns are already issued in this try. STATE is current processor
- state. If the function returns nonzero, INDEX will contain index
+ insns are already issued in this try. INDEX will contain index
of the best insn in READY. The following function is used only for
first cycle multipass scheduling. */
-
static int
-max_issue (ready, state, index)
- struct ready_list *ready;
- state_t state;
- int *index;
+max_issue (ready, index)
+ struct ready_list *ready;
+ int *index;
{
- int i, best, n, temp_index, delay;
- state_t temp_state;
+ int n, i, all, n_ready, best, delay, tries_num;
+ struct choice_entry *top;
rtx insn;
- int max_lookahead = (*targetm.sched.first_cycle_multipass_dfa_lookahead) ();
-
- if (state_dead_lock_p (state))
- return 0;
- temp_state = alloca (dfa_state_size);
best = 0;
-
- for (i = 0; i < ready->n_ready; i++)
+ memcpy (choice_stack->state, curr_state, dfa_state_size);
+ top = choice_stack;
+ top->rest = cached_first_cycle_multipass_dfa_lookahead;
+ top->n = 0;
+ n_ready = ready->n_ready;
+ for (all = i = 0; i < n_ready; i++)
if (!ready_try [i])
- {
- insn = ready_element (ready, i);
-
- if (INSN_CODE (insn) < 0)
- continue;
-
- memcpy (temp_state, state, dfa_state_size);
-
- delay = state_transition (temp_state, insn);
-
- if (delay == 0)
- {
- if (!targetm.sched.dfa_bubble)
- continue;
- else
- {
- int j;
- rtx bubble;
-
- for (j = 0;
- (bubble = (*targetm.sched.dfa_bubble) (j)) != NULL_RTX;
- j++)
- if (state_transition (temp_state, bubble) < 0
- && state_transition (temp_state, insn) < 0)
- break;
-
- if (bubble == NULL_RTX)
- continue;
- }
- }
- else if (delay > 0)
- continue;
-
- --max_lookahead;
-
- if (max_lookahead < 0)
- break;
-
- ready_try [i] = 1;
-
- n = max_issue (ready, temp_state, &temp_index);
- if (n > 0 || ready_try[0])
- n += 1;
-
- if (best < n)
- {
- best = n;
- *index = i;
- }
- ready_try [i] = 0;
- }
-
+ all++;
+ i = 0;
+ tries_num = 0;
+ for (;;)
+ {
+ if (top->rest == 0 || i >= n_ready)
+ {
+ if (top == choice_stack)
+ break;
+ if (best < top - choice_stack && ready_try [0])
+ {
+ best = top - choice_stack;
+ *index = choice_stack [1].index;
+ if (top->n == issue_rate - cycle_issued_insns || best == all)
+ break;
+ }
+ i = top->index;
+ ready_try [i] = 0;
+ top--;
+ memcpy (curr_state, top->state, dfa_state_size);
+ }
+ else if (!ready_try [i])
+ {
+ tries_num++;
+ if (tries_num > max_lookahead_tries)
+ break;
+ insn = ready_element (ready, i);
+ delay = state_transition (curr_state, insn);
+ if (delay < 0)
+ {
+ if (state_dead_lock_p (curr_state))
+ top->rest = 0;
+ else
+ top->rest--;
+ n = top->n;
+ if (memcmp (top->state, curr_state, dfa_state_size) != 0)
+ n++;
+ top++;
+ top->rest = cached_first_cycle_multipass_dfa_lookahead;
+ top->index = i;
+ top->n = n;
+ memcpy (top->state, curr_state, dfa_state_size);
+ ready_try [i] = 1;
+ i = -1;
+ }
+ }
+ i++;
+ }
+ while (top != choice_stack)
+ {
+ ready_try [top->index] = 0;
+ top--;
+ }
+ memcpy (curr_state, choice_stack->state, dfa_state_size);
return best;
}
@@ -1865,15 +1905,34 @@ static rtx
choose_ready (ready)
struct ready_list *ready;
{
- if (!targetm.sched.first_cycle_multipass_dfa_lookahead
- || (*targetm.sched.first_cycle_multipass_dfa_lookahead) () <= 0)
+ int lookahead = 0;
+
+ if (targetm.sched.first_cycle_multipass_dfa_lookahead)
+ lookahead = (*targetm.sched.first_cycle_multipass_dfa_lookahead) ();
+ if (lookahead <= 0 || SCHED_GROUP_P (ready_element (ready, 0)))
return ready_remove_first (ready);
else
{
/* Try to choose the better insn. */
- int index;
+ int index, i;
+ rtx insn;
- if (max_issue (ready, curr_state, &index) == 0)
+ if (cached_first_cycle_multipass_dfa_lookahead != lookahead)
+ {
+ cached_first_cycle_multipass_dfa_lookahead = lookahead;
+ max_lookahead_tries = 100;
+ for (i = 0; i < issue_rate; i++)
+ max_lookahead_tries *= lookahead;
+ }
+ insn = ready_element (ready, 0);
+ if (INSN_CODE (insn) < 0)
+ return ready_remove_first (ready);
+ for (i = 1; i < ready->n_ready; i++)
+ {
+ insn = ready_element (ready, i);
+ ready_try [i] = INSN_CODE (insn) < 0;
+ }
+ if (max_issue (ready, &index) == 0)
return ready_remove_first (ready);
else
return ready_remove (ready, index);
@@ -1901,6 +1960,7 @@ schedule_block (b, rgn_n_insns)
int rgn_n_insns;
{
struct ready_list ready;
+ int i;
int first_cycle_insn_p;
int can_issue_more;
state_t temp_state = NULL; /* It is used for multipass scheduling. */
@@ -1955,6 +2015,11 @@ schedule_block (b, rgn_n_insns)
temp_state = alloca (dfa_state_size);
ready_try = (char *) xmalloc ((rgn_n_insns + 1) * sizeof (char));
memset (ready_try, 0, (rgn_n_insns + 1) * sizeof (char));
+ choice_stack
+ = (struct choice_entry *) xmalloc ((rgn_n_insns + 1)
+ * sizeof (struct choice_entry));
+ for (i = 0; i <= rgn_n_insns; i++)
+ choice_stack[i].state = (state_t) xmalloc (dfa_state_size);
}
(*current_sched_info->init_ready_list) (&ready);
@@ -2019,6 +2084,7 @@ schedule_block (b, rgn_n_insns)
can_issue_more = issue_rate;
first_cycle_insn_p = 1;
+ cycle_issued_insns = 0;
for (;;)
{
rtx insn;
@@ -2153,7 +2219,11 @@ schedule_block (b, rgn_n_insns)
if (targetm.sched.use_dfa_pipeline_interface
&& (*targetm.sched.use_dfa_pipeline_interface) ())
- memcpy (curr_state, temp_state, dfa_state_size);
+ {
+ if (memcmp (curr_state, temp_state, dfa_state_size) != 0)
+ cycle_issued_insns++;
+ memcpy (curr_state, temp_state, dfa_state_size);
+ }
if (targetm.sched.variable_issue)
can_issue_more =
@@ -2248,7 +2318,12 @@ schedule_block (b, rgn_n_insns)
if (targetm.sched.use_dfa_pipeline_interface
&& (*targetm.sched.use_dfa_pipeline_interface) ())
- free (ready_try);
+ {
+ free (ready_try);
+ for (i = 0; i <= rgn_n_insns; i++)
+ free (choice_stack [i].state);
+ free (choice_stack);
+ }
}
/* Set_priorities: compute priority of each insn in the block. */
@@ -2313,6 +2388,13 @@ sched_init (dump_file)
else
issue_rate = 1;
+ if (cached_issue_rate != issue_rate)
+ {
+ cached_issue_rate = issue_rate;
+ /* To invalidate max_lookahead_tries: */
+ cached_first_cycle_multipass_dfa_lookahead = 0;
+ }
+
/* We use LUID 0 for the fake insn (UID 0) which holds dependencies for
pseudos which do not cross calls. */
old_max_uid = get_max_uid () + 1;
diff --git a/gcc/hard-reg-set.h b/gcc/hard-reg-set.h
index 0574738fbe5..53330cf28b7 100644
--- a/gcc/hard-reg-set.h
+++ b/gcc/hard-reg-set.h
@@ -491,8 +491,6 @@ extern const char * reg_names[FIRST_PSEUDO_REGISTER];
/* Given a hard REGN a FROM mode and a TO mode, return nonzero if
REGN cannot change modes between the specified modes. */
#define REG_CANNOT_CHANGE_MODE_P(REGN, FROM, TO) \
- (TEST_HARD_REG_BIT \
- (reg_class_contents[(int) CANNOT_CHANGE_MODE_CLASS (FROM, TO)], \
- REGN))
+ CANNOT_CHANGE_MODE_CLASS (FROM, TO, REGNO_REG_CLASS (REGN))
#endif /* ! GCC_HARD_REG_SET_H */
diff --git a/gcc/hashtable.c b/gcc/hashtable.c
index ff8959b40da..ed1e81f0d38 100644
--- a/gcc/hashtable.c
+++ b/gcc/hashtable.c
@@ -141,7 +141,8 @@ ht_lookup (table, str, len, insert)
if (node == NULL)
break;
- if (HT_LEN (node) == len && !memcmp (HT_STR (node), str, len))
+ if (node->hash_value == hash && HT_LEN (node) == len
+ && !memcmp (HT_STR (node), str, len))
{
if (insert == HT_ALLOCED)
/* The string we search for was placed at the end of the
@@ -161,6 +162,7 @@ ht_lookup (table, str, len, insert)
table->entries[index] = node;
HT_LEN (node) = len;
+ node->hash_value = hash;
if (insert == HT_ALLOC)
HT_STR (node) = obstack_copy0 (&table->stack, str, len);
else
@@ -193,7 +195,7 @@ ht_expand (table)
{
unsigned int index, hash, hash2;
- hash = calc_hash (HT_STR (*p), HT_LEN (*p));
+ hash = (*p)->hash_value;
hash2 = ((hash * 17) & sizemask) | 1;
index = hash & sizemask;
diff --git a/gcc/hashtable.h b/gcc/hashtable.h
index 02dfcf19d29..0649ad2b7da 100644
--- a/gcc/hashtable.h
+++ b/gcc/hashtable.h
@@ -25,8 +25,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
typedef struct ht_identifier ht_identifier;
struct ht_identifier GTY(())
{
- unsigned int len;
const unsigned char *str;
+ unsigned int len;
+ unsigned int hash_value;
};
#define HT_LEN(NODE) ((NODE)->len)
diff --git a/gcc/hooks.c b/gcc/hooks.c
index 3f212ef3e1b..36d7b2f4587 100644
--- a/gcc/hooks.c
+++ b/gcc/hooks.c
@@ -1,5 +1,5 @@
/* General-purpose hooks.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -121,3 +121,11 @@ hook_bool_rtx_false (a)
{
return false;
}
+
+bool
+hook_bool_uintp_uintp_false (a, b)
+ unsigned int *a ATTRIBUTE_UNUSED;
+ unsigned int *b ATTRIBUTE_UNUSED;
+{
+ return false;
+}
diff --git a/gcc/hooks.h b/gcc/hooks.h
index 8c28194f6ac..198d114d759 100644
--- a/gcc/hooks.h
+++ b/gcc/hooks.h
@@ -1,5 +1,5 @@
/* General-purpose hooks.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -29,6 +29,7 @@ bool hook_bool_tree_hwi_hwi_tree_false
bool hook_bool_tree_hwi_hwi_tree_true
PARAMS ((tree, HOST_WIDE_INT, HOST_WIDE_INT, tree));
bool hook_bool_rtx_false PARAMS ((rtx));
+bool hook_bool_uintp_uintp_false PARAMS ((unsigned int *, unsigned int *));
void hook_void_tree_int PARAMS ((tree, int));
void hook_void_void PARAMS ((void));
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 42c5fb50bdb..31fa73b64fd 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -645,8 +645,8 @@ noce_emit_store_flag (if_info, x, reversep, normalize)
end_sequence ();
}
- /* Don't even try if the comparison operands are weird. */
- if (cond_complex)
+ /* Don't even try if the comparison operands or the mode of X are weird. */
+ if (cond_complex || !SCALAR_INT_MODE_P (GET_MODE (x)))
return NULL_RTX;
return emit_store_flag (x, code, XEXP (cond, 0),
@@ -1082,6 +1082,7 @@ noce_try_cmove_arith (if_info)
rtx a = if_info->a;
rtx b = if_info->b;
rtx x = if_info->x;
+ rtx orig_a, orig_b;
rtx insn_a, insn_b;
rtx tmp, target;
int is_mem = 0;
@@ -1137,6 +1138,9 @@ noce_try_cmove_arith (if_info)
start_sequence ();
+ orig_a = a;
+ orig_b = b;
+
/* If either operand is complex, load it into a register first.
The best way to do this is to copy the original insn. In this
way we preserve any clobbers etc that the insn may have had.
@@ -1168,7 +1172,7 @@ noce_try_cmove_arith (if_info)
}
if (! general_operand (b, GET_MODE (b)))
{
- rtx set;
+ rtx set, last;
if (no_new_pseudos)
goto end_seq_and_fail;
@@ -1176,9 +1180,18 @@ noce_try_cmove_arith (if_info)
if (is_mem)
{
tmp = gen_reg_rtx (GET_MODE (b));
- tmp = emit_insn (gen_rtx_SET (VOIDmode, tmp, b));
+ tmp = gen_rtx_SET (VOIDmode, tmp, b);
}
- else if (! insn_b)
+ else if (! insn_b
+#if 0
+ /* In the case we are going to duplicate insn originally
+ present in the front of comparsion, verify that the
+ comparsion didn't clobbered the operands. */
+ || modified_between_p (SET_SRC (single_set (insn_b)),
+ if_info->cond_earliest,
+ NEXT_INSN (if_info->jump)))
+#endif
+ )
goto end_seq_and_fail;
else
{
@@ -1186,8 +1199,22 @@ noce_try_cmove_arith (if_info)
tmp = copy_rtx (insn_b);
set = single_set (tmp);
SET_DEST (set) = b;
- tmp = emit_insn (PATTERN (tmp));
+ tmp = PATTERN (tmp);
+ }
+
+ /* If insn to set up A clobbers any registers B depends on, try to
+ swap insn that sets up A with the one that sets up B. If even
+ that doesn't help, punt. */
+ last = get_last_insn ();
+ if (last && modified_in_p (orig_b, last))
+ {
+ tmp = emit_insn_before (tmp, get_insns ());
+ if (modified_in_p (orig_a, tmp))
+ goto end_seq_and_fail;
}
+ else
+ tmp = emit_insn (tmp);
+
if (recog_memoized (tmp) < 0)
goto end_seq_and_fail;
}
@@ -1770,16 +1797,33 @@ noce_process_if_block (ce_info)
else
{
insn_b = prev_nonnote_insn (if_info.cond_earliest);
+ /* We're going to be moving the evaluation of B down from above
+ COND_EARLIEST to JUMP. Make sure the relevant data is still
+ intact. */
if (! insn_b
|| GET_CODE (insn_b) != INSN
|| (set_b = single_set (insn_b)) == NULL_RTX
|| ! rtx_equal_p (x, SET_DEST (set_b))
+ || reg_overlap_mentioned_p (x, SET_SRC (set_b))
+ || modified_between_p (SET_SRC (set_b),
+ PREV_INSN (if_info.cond_earliest), jump)
+ /* Likewise with X. In particular this can happen when
+ noce_get_condition looks farther back in the instruction
+ stream than one might expect. */
|| reg_overlap_mentioned_p (x, cond)
|| reg_overlap_mentioned_p (x, a)
- || reg_overlap_mentioned_p (x, SET_SRC (set_b))
- || modified_between_p (x, if_info.cond_earliest, NEXT_INSN (jump)))
+ || modified_between_p (x, PREV_INSN (if_info.cond_earliest), jump))
insn_b = set_b = NULL_RTX;
}
+
+ /* If x has side effects then only the if-then-else form is safe to
+ convert. But even in that case we would need to restore any notes
+ (such as REG_INC) at then end. That can be tricky if
+ noce_emit_move_insn expands to more than one insn, so disable the
+ optimization entirely for now if there are side effects. */
+ if (side_effects_p (x))
+ return FALSE;
+
b = (set_b ? SET_SRC (set_b) : x);
/* Only operate on register destinations, and even then avoid extending
@@ -1845,6 +1889,25 @@ noce_process_if_block (ce_info)
goto success;
}
+ /* Disallow the "if (...) x = a;" form (with an implicit "else x = x;")
+ for most optimizations if writing to x may trap, i.e. its a memory
+ other than a static var or a stack slot. */
+ if (! set_b
+ && GET_CODE (orig_x) == MEM
+ && ! MEM_NOTRAP_P (orig_x)
+ && rtx_addr_can_trap_p (XEXP (orig_x, 0)))
+ {
+ if (HAVE_conditional_move)
+ {
+ if (noce_try_cmove (&if_info))
+ goto success;
+ if (! HAVE_conditional_execution
+ && noce_try_cmove_arith (&if_info))
+ goto success;
+ }
+ return FALSE;
+ }
+
if (noce_try_store_flag (&if_info))
goto success;
if (noce_try_minmax (&if_info))
@@ -2325,7 +2388,8 @@ find_if_block (ce_info)
/* The THEN block of an IF-THEN combo must have zero or one successors. */
if (then_succ != NULL_EDGE
&& (then_succ->succ_next != NULL_EDGE
- || (then_succ->flags & EDGE_COMPLEX)))
+ || (then_succ->flags & EDGE_COMPLEX)
+ || (flow2_completed && tablejump_p (then_bb->end))))
return FALSE;
/* If the THEN block has no successors, conditional execution can still
@@ -2372,7 +2436,8 @@ find_if_block (ce_info)
&& then_succ->dest == else_succ->dest
&& else_bb->pred->pred_next == NULL_EDGE
&& else_succ->succ_next == NULL_EDGE
- && ! (else_succ->flags & EDGE_COMPLEX))
+ && ! (else_succ->flags & EDGE_COMPLEX)
+ && ! (flow2_completed && tablejump_p (else_bb->end)))
join_bb = else_succ->dest;
/* Otherwise it is not an IF-THEN or IF-THEN-ELSE combination. */
@@ -2701,6 +2766,8 @@ find_if_case_1 (test_bb, then_edge, else_edge)
{
new_bb->index = then_bb_index;
BASIC_BLOCK (then_bb_index) = new_bb;
+ if (post_dominators)
+ add_to_dominance_info (post_dominators, new_bb);
}
/* We've possibly created jump to next insn, cleanup_cfg will solve that
later. */
@@ -2831,11 +2898,28 @@ dead_or_predicable (test_bb, merge_bb, other_bb, new_dest, reversep)
if (GET_CODE (end) == JUMP_INSN)
{
+ rtx tmp, insn, label;
+
if (head == end)
{
head = end = NULL_RTX;
goto no_body;
}
+
+ /* If there is a jump table following merge_bb, fail
+ if there are any insn between head and PREV_INSN (end)
+ references it. */
+ if ((label = JUMP_LABEL (end)) != NULL_RTX
+ && (tmp = NEXT_INSN (label)) != NULL_RTX
+ && GET_CODE (tmp) == JUMP_INSN
+ && (GET_CODE (PATTERN (tmp)) == ADDR_VEC
+ || GET_CODE (PATTERN (tmp)) == ADDR_DIFF_VEC))
+ {
+ for (insn = head; insn != PREV_INSN (end); insn = NEXT_INSN (insn))
+ if (find_reg_note (insn, REG_LABEL, label))
+ return FALSE;
+ }
+
end = PREV_INSN (end);
}
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 6746b3f450f..7e36070f7ea 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -157,11 +157,13 @@ function_cannot_inline_p (fndecl)
tree last = tree_last (TYPE_ARG_TYPES (TREE_TYPE (fndecl)));
/* For functions marked as inline increase the maximum size to
- MAX_INLINE_INSNS (-finline-limit-<n>). For regular functions
- use the limit given by INTEGRATE_THRESHOLD. */
+ MAX_INLINE_INSNS_RTL (--param max-inline-insn-rtl=<n>). For
+ regular functions use the limit given by INTEGRATE_THRESHOLD.
+ Note that the RTL inliner is not used by the languages that use
+ the tree inliner (C, C++). */
int max_insns = (DECL_INLINE (fndecl))
- ? (MAX_INLINE_INSNS
+ ? (MAX_INLINE_INSNS_RTL
+ 8 * list_length (DECL_ARGUMENTS (fndecl)))
: INTEGRATE_THRESHOLD (fndecl);
@@ -378,6 +380,8 @@ copy_decl_for_inlining (decl, from_fn, to_fn)
else
{
copy = copy_node (decl);
+ /* The COPY is not abstract; it will be generated in TO_FN. */
+ DECL_ABSTRACT (copy) = 0;
(*lang_hooks.dup_lang_specific_decl) (copy);
/* TREE_ADDRESSABLE isn't used to indicate that a label's
@@ -3002,15 +3006,17 @@ set_decl_abstract_flags (decl, setting)
from its DECL_SAVED_INSNS. Used for inline functions that are output
at end of compilation instead of where they came in the source. */
+static GTY(()) struct function *old_cfun;
+
void
output_inline_function (fndecl)
tree fndecl;
{
- struct function *old_cfun = cfun;
enum debug_info_type old_write_symbols = write_symbols;
const struct gcc_debug_hooks *const old_debug_hooks = debug_hooks;
struct function *f = DECL_SAVED_INSNS (fndecl);
+ old_cfun = cfun;
cfun = f;
current_function_decl = fndecl;
@@ -3026,6 +3032,11 @@ output_inline_function (fndecl)
debug_hooks = &do_nothing_debug_hooks;
}
+ /* Make sure warnings emitted by the optimizers (e.g. control reaches
+ end of non-void function) is not wildly incorrect. */
+ input_filename = DECL_SOURCE_FILE (fndecl);
+ lineno = DECL_SOURCE_LINE (fndecl);
+
/* Compile this function all the way down to assembly code. As a
side effect this destroys the saved RTL representation, but
that's okay, because we don't need to inline this anymore. */
diff --git a/gcc/intl/ChangeLog b/gcc/intl/ChangeLog
index 1fe7f37090b..3e3d609ecd3 100644
--- a/gcc/intl/ChangeLog
+++ b/gcc/intl/ChangeLog
@@ -1,3 +1,43 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-05-25 Roman Lechtchinsky <rl@cs.tu-berlin.de>
* gettextP.h (SWAP): Change parameter type to unsigned int.
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index c6d0de1c1e3..9a25c60b9ff 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,306 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-26 Andrew Haley <aph@redhat.com>
+
+ PR java/12890:
+ * parse.y (do_resolve_class): Check return value from
+ breakdown_qualified().
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-08 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (java/gcj.dvi): Replace PWD with PWD_COMMAND.
+
+2003-06-10 Andrew Haley <aph@redhat.com>
+
+ * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
+ (java_decl_ok_for_sibcall): New.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-02 Tom Tromey <tromey@redhat.com>
+
+ PR java/10459:
+ * parse.y (finish_for_loop): Do nothing if update expression is a
+ EXPR_WFL_NODE wrapping nothing.
+ (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
+
+2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
+
+ * jcf-io.c (find_class): use DIR_SEPARATOR instead of
+ '/' when computing java source filename
+
+2003-04-10 Eric Blake <ebb9@email.byu.edu>
+
+ PR java/10253:
+ * parse.y (string_convert_int_cst): Always use at least one digit
+ in string conversion. Remove ASCII dependence.
+ (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
+
+2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
+
+ * Make-lang.in: added win32-host.c
+ * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
+ resolves to open() on non-Win32 platforms and
+ Win32-specific jcf_open_exact_case() on Win32
+ * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
+ when trying .java and .class files
+ * win32-host.c: added to repository. Defines
+ Win32-specific jcf_open_exact_case()
+
+2003-04-10 Andrew Haley <aph@redhat.com>
+
+ * jcf-write.c (struct jcf_partial): num_jsrs: new field.
+ (maybe_free_localvar): Renamed from localvar_free.
+ Add new arg, really.
+ (generate_bytecode_insns): Set new variable, jsrs.
+ Only free local vars if no jsr insns have been emittted.
+ Call maybe_free_localvar, not localvar_free.
+
+2003-03-23 Zack Weinberg <zack@codesourcery.com>
+
+ PR bootstrap/10216
+ * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
+
+2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi: Remove @ at start of file.
+
+2003-03-28 Zack Weinberg <zack@codesourcery.com>
+
+ PR bootstrap/10216
+ * javaop.h (jfloat, jdouble): Make them structures mirroring
+ the bit fields of IEEE float and double respectively.
+ (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
+ JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
+ (union Word, union DWord): Delete.
+ (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
+
+ * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
+ D_NAN_MASK): Delete.
+ (jni_print_float, jni_print_double): New. Generate
+ hexadecimal floating constants.
+ (print_field_info): Use jni_print_float/double.
+
+ * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
+ finite floating point numbers for output; special case
+ non-finite floats.
+
+2003-03-12 Andrew Haley <aph.redhat.com@littlepinkcloud.com>
+
+ * gjavah.c (is_first_data_member): New global variable.
+ (print_c_decl): If it's the first data member, align it as the
+ superclass.
+ (process_file): Set is_first_data_member.
+
+2003-03-11 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (resolve_field_access): Initialize class if field is
+ found in another static field.
+ * expr.c (build_class_init): Don't optimize out initialization of
+ implemented interface.
+
+2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
+
+ * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
+ and DIR_SEPARATOR_2 for a target.
+ Correct minor typos.
+
+ * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
+ and DIR_SEPARATOR_2 for a target into account.
+
+2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
+
+ * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
+ compare file name components depending on the case-sensitivity
+ or otherwise of the host file system.
+
+ * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
+ "strcmp" to compare file name components.
+ Use IS_DIR_SEPARATOR instead of comparing directly against
+ DIR_SEPARATOR.
+ (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
+ comparing directly against DIR_SEPARATOR.
+
+2003-03-04 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
+ (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
+
+2003-02-28 Tom Tromey <tromey@redhat.com>
+
+ PR java/9695:
+ * class.c (maybe_layout_super_class): Always pass a WFL to
+ do_resolve_class.
+ * parse.y (do_resolve_class): Updated comment to explain
+ parameters.
+
+2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
+
+ * decl.c (java_init_decl_processing): Change
+ soft_lookupjnimethod_node to reflect the change in
+ signature of _Jv_LookupJNIMethod in libjava/jni.cc
+ * expr.c (build_jni_stub): Calculate and pass the size
+ on the stack of the arguments to a JNI function. Use
+ new target macro MODIFY_JNI_METHOD_CALL to allow a
+ target to modify the call to a JNI method.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi: Update to GFDL 1.2.
+
+2003-01-31 Andrew Haley <aph@redhat.com>
+
+ * parse.y (java_expand_classes): Scan the whole class list looking
+ for access methods that haven't yet been expanded.
+
+2003-01-31 Adrian Bunk <bunk@fs.tum.de>
+
+ Fix for java/4269:
+
+ * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
+ to fix bootstrap on sparc-unknown-netbsdelf1.5.
+ * jcf-parse.c: Likewise.
+
+2003-01-31 Mark Wielaard <mark@klomp.org>
+
+ * gjavah.c (throwable_p): Allocate 1 more byte for string.
+
+2003-01-30 Tom Tromey <tromey@redhat.com>
+
+ * jcf-parse.c (read_class): Update identifier's class value if it
+ changed during parsing.
+
+2003-01-29 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (patch_assignment): Only transform the rhs of an
+ assignment when compiling to native.
+
+2003-01-28 Tom Tromey <tromey@redhat.com>
+
+ * lex.c (java_lex): Don't include UEOF as part of token.
+ (java_read_unicode): Error if \u sequence prematurely terminated.
+
+2003-01-27 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (java_check_regular_methods): Check for construct after
+ checking types in throws clause.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (java.install-common, java.uninstall)
+ (java.install-info, java.install-man): Prepend $(DESTDIR)
+ to destination paths in all (un)installation commands.
+ (java.install-common): Rewrite $(LN) command to support
+ DESTDIR with "ln" as well as with "ln -s".
+
+2003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
+ * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
+ warning.
+
+2003-01-21 Tom Tromey <tromey@redhat.com>
+
+ * parse.y (method_header): Native method can't be strictfp.
+ No method can be transient or volatile.
+
+2003-01-14 Andrew Haley <aph@redhat.com>
+
+ * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
+ varargs function -- correct.
+
+ * parse.y (patch_assignment): Copy the rhs of an assignment into a
+ temporary if the RHS is a reference.
+
+2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * lang.c (dump_compound_expr): Prototype.
+
+2003-01-03 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR java/8712:
+ * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
+ when simply checking against `null'.
+
+2003-01-03 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (Standard Properties): Document http.proxyHost and
+ http.proxyPort.
+
+2003-01-03 Tom Tromey <tromey@redhat.com>
+
+ * gcj.texi (GNU Classpath Properties): Document new properties.
+
+2002-12-30 DJ Delorie <dj@redhat.com>
+
+ * Make-lang.in: Protect against texi2pod/pod2man failing.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi: Use @copying.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi: Include Cover Texts in man page.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcj.texi: Include gcc-common.texi.
+ * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
+ $(srcdir)/doc/include/gcc-common.texi.
+
+2002-12-22 Anthony Green <green@redhat.com>
+
+ * gcj.texi (Limitations): Add note about org.xml.sax and
+ org.w3c.dom.
+
+2002-12-20 Tom Tromey <tromey@redhat.com>
+
+ * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
+ where minimum case value is Integer.MIN_VALUE.
+ Fixes PR java/8955.
+
+2002-12-18 Andrew Haley <aph@redhat.com>
+
+ * parse.y (patch_invoke): Force evaluation order when `check' is
+ set. For PR libgcj/8945.
+
2002-12-05 Ranjit Mathew <rmathew@hotmail.com>
Andrew Haley <aph@redhat.com>
diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in
index fc0e40b5161..745c17598d3 100644
--- a/gcc/java/Make-lang.in
+++ b/gcc/java/Make-lang.in
@@ -1,6 +1,6 @@
# Top level makefile fragment for the GNU compiler for the Java(TM)
# language.
-# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
#This file is part of GNU CC.
@@ -106,18 +106,18 @@ gt-java-builtins.h gtype-java.h : s-gtype ; @true
# Executables built by this Makefile:
JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \
java/constants.o java/lang.o java/typeck.o java/except.o java/verify.o \
- java/zextract.o java/jcf-io.o java/jcf-parse.o java/mangle.o \
- java/mangle_name.o java/builtins.o \
+ java/zextract.o java/jcf-io.o java/win32-host.o java/jcf-parse.o \
+ java/mangle.o java/mangle_name.o java/builtins.o \
java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \
java/jcf-path.o java/xref.o java/boehm.o java/java-tree-inline.o mkdeps.o
-GCJH_OBJS = java/gjavah.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
- java/zextract.o version.o mkdeps.o errors.o
+GCJH_OBJS = java/gjavah.o java/jcf-io.o java/win32-host.o java/jcf-depend.o \
+ java/jcf-path.o java/zextract.o version.o mkdeps.o errors.o
JVSCAN_OBJS = java/parse-scan.o java/jv-scan.o version.o
-JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
- java/zextract.o errors.o version.o mkdeps.o
+JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/win32-host.o java/jcf-depend.o \
+ java/jcf-path.o java/zextract.o errors.o version.o mkdeps.o
JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o
@@ -139,7 +139,8 @@ jv-scan$(exeext): $(JVSCAN_OBJS) $(LIBDEPS)
jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
rm -f $@
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) $(ZLIB) $(LIBS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
+ $(ZLIB) $(LDEXP_LIB) $(LIBS)
jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
rm -f $@
@@ -170,53 +171,54 @@ java.install-normal:
java.install-common: installdirs
-if [ -f $(GCJ)$(exeext) ]; then \
if [ -f $(GCJ)-cross$(exeext) ]; then \
- rm -f $(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
- $(INSTALL_PROGRAM) $(GCJ)-cross$(exeext) $(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
- chmod a+x $(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) $(GCJ)-cross$(exeext) $(DESTDIR)$(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(JAVA_CROSS_NAME)$(exeext); \
else \
- rm -f $(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
- $(INSTALL_PROGRAM) $(GCJ)$(exeext) $(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
- chmod a+x $(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
- rm -f $(bindir)/$(JAVA_TARGET_INSTALL_NAME)$(exeext); \
- $(LN) $(bindir)/$(JAVA_INSTALL_NAME)$(exeext) $(bindir)/$(JAVA_TARGET_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
+ $(INSTALL_PROGRAM) $(GCJ)$(exeext) $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$(JAVA_TARGET_INSTALL_NAME)$(exeext); \
+ ( cd $(DESTDIR)$(bindir) && \
+ $(LN) $(JAVA_INSTALL_NAME)$(exeext) $(JAVA_TARGET_INSTALL_NAME)$(exeext) ); \
fi ; \
fi ; \
for tool in $(JAVA_TARGET_INDEPENDENT_BIN_TOOLS); do \
tool_transformed_name=`echo $$tool|sed '$(program_transform_name)'`; \
if [ -f $$tool$(exeext) ]; then \
- rm -f $(bindir)/$$tool_transformed_name$(exeext); \
- $(INSTALL_PROGRAM) $$tool$(exeext) $(bindir)/$$tool_transformed_name$(exeext); \
- chmod a+x $(bindir)/$$tool_transformed_name$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
+ $(INSTALL_PROGRAM) $$tool$(exeext) $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
fi ; \
done
java.install-man:
java.uninstall:
- -rm -rf $(bindir)/$(JAVA_INSTALL_NAME)$(exeext)
- -rm -rf $(bindir)/$(JAVA_CROSS_NAME)$(exeext)
- -rm -rf $(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext)
- -rm -rf $(man1dir)/$(JAVA_CROSS_NAME)$(man1ext)
- -rm -rf $(man1dir)/gcjh$(man1ext)
- -rm -rf $(man1dir)/jv-scan$(man1ext)
- -rm -rf $(man1dir)/jcf-dump$(man1ext)
- -rm -rf $(man1dir)/gij$(man1ext)
- -rm -rf $(man1dir)/jv-convert$(man1ext)
+ -rm -rf $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(bindir)/$(JAVA_CROSS_NAME)$(exeext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/$(JAVA_CROSS_NAME)$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/gcjh$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/jv-scan$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/jcf-dump$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/gij$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/jv-convert$(man1ext)
java.install-info: installdirs
if [ -f jc1$(exeext) ] ; then \
if [ -f $(srcdir)/java/gcj.info ]; then \
- rm -f $(infodir)/gcj.info*; \
+ rm -f $(DESTDIR)$(infodir)/gcj.info*; \
for f in $(srcdir)/java/gcj.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
- $(INSTALL_DATA) $$f $(infodir)/$$realfile; \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
done; \
- chmod a-x $(infodir)/gcj.info*; \
+ chmod a-x $(DESTDIR)$(infodir)/gcj.info*; \
else true; fi; \
else true; fi
- -if [ -f jc1$(exeext) ] && [ -f $(infodir)/gcj.info ]; then \
+ -if [ -f jc1$(exeext) ] && [ -f $(DESTDIR)$(infodir)/gcj.info ]; then \
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- install-info --dir-file=$(infodir)/dir $(infodir)/gcj.info; \
+ install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/gcj.info; \
else true; fi; \
else true; fi
@@ -300,6 +302,7 @@ java/jcf-depend.o: java/jcf-depend.c $(CONFIG_H) $(SYSTEM_H) java/jcf.h
java/jcf-parse.o: java/jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) flags.h \
input.h java/java-except.h $(SYSTEM_H) toplev.h java/parse.h $(GGC_H) \
debug.h real.h gt-java-jcf-parse.h
+java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) java/jcf.h
java/jcf-write.o: java/jcf-write.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
$(RTL_H) java/java-opcodes.h java/parse.h java/buffer.h $(SYSTEM_H) \
toplev.h $(GGC_H) gt-java-jcf-write.h
@@ -336,104 +339,105 @@ java/jcf-path.o: java/jcf-path.c $(CONFIG_H) $(SYSTEM_H) java/jcf.h
# Documentation
$(srcdir)/java/gcj.info: $(srcdir)/java/gcj.texi \
- $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gpl.texi
+ $(srcdir)/doc/include/fdl.texi $(srcdir)/doc/include/gpl.texi \
+ $(srcdir)/doc/include/gcc-common.texi
if test "x$(BUILD_INFO)" = xinfo; then \
rm -f $(srcdir)/java/gcc.info*; \
cd $(srcdir)/java && $(MAKEINFO) -I../doc/include -o gcj.info gcj.texi; \
else true; fi
java/gcj.dvi: $(srcdir)/java/gcj.texi $(srcdir)/doc/include/fdl.texi \
- $(srcdir)/doc/include/gpl.texi
- s=`cd $(srcdir); ${PWD}`; export s; \
+ $(srcdir)/doc/include/gpl.texi $(srcdir)/doc/include/gcc-common.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
cd java && $(TEXI2DVI) -I $$s/doc/include $$s/java/gcj.texi
$(srcdir)/java/gcj.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D gcj < $(srcdir)/java/gcj.texi > java/gcj.pod
- ($(POD2MAN) --section=1 java/gcj.pod > java/gcj.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/gcj.pod > java/gcj.1.T$$$$ && \
mv -f java/gcj.1.T$$$$ $(srcdir)/java/gcj.1) || \
(rm -f java/gcj.1.T$$$$ && exit 1)
- rm -f java/gcj.pod
+ -rm -f java/gcj.pod
$(srcdir)/java/gcjh.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D gcjh < $(srcdir)/java/gcj.texi > java/gcjh.pod
- ($(POD2MAN) --section=1 java/gcjh.pod > java/gcjh.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/gcjh.pod > java/gcjh.1.T$$$$ && \
mv -f java/gcjh.1.T$$$$ $(srcdir)/java/gcjh.1) || \
(rm -f java/gcjh.1.T$$$$ && exit 1)
- rm -f java/gcjh.pod
+ -rm -f java/gcjh.pod
$(srcdir)/java/jv-scan.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D jv-scan < $(srcdir)/java/gcj.texi > java/jv-scan.pod
- ($(POD2MAN) --section=1 java/jv-scan.pod > java/jv-scan.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/jv-scan.pod > java/jv-scan.1.T$$$$ && \
mv -f java/jv-scan.1.T$$$$ $(srcdir)/java/jv-scan.1) || \
(rm -f java/jv-scan.1.T$$$$ && exit 1)
- rm -f java/jv-scan.pod
+ -rm -f java/jv-scan.pod
$(srcdir)/java/jcf-dump.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D jcf-dump < $(srcdir)/java/gcj.texi > java/jcf-dump.pod
- ($(POD2MAN) --section=1 java/jcf-dump.pod > java/jcf-dump.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/jcf-dump.pod > java/jcf-dump.1.T$$$$ && \
mv -f java/jcf-dump.1.T$$$$ $(srcdir)/java/jcf-dump.1) || \
(rm -f java/jcf-dump.1.T$$$$ && exit 1)
- rm -f java/jcf-dump.pod
+ -rm -f java/jcf-dump.pod
$(srcdir)/java/gij.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D gij < $(srcdir)/java/gcj.texi > java/gij.pod
- ($(POD2MAN) --section=1 java/gij.pod > java/gij.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/gij.pod > java/gij.1.T$$$$ && \
mv -f java/gij.1.T$$$$ $(srcdir)/java/gij.1) || \
(rm -f java/gij.1.T$$$$ && exit 1)
- rm -f java/gij.pod
+ -rm -f java/gij.pod
$(srcdir)/java/jv-convert.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D jv-convert < $(srcdir)/java/gcj.texi > java/jv-convert.pod
- ($(POD2MAN) --section=1 java/jv-convert.pod > java/jv-convert.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/jv-convert.pod > java/jv-convert.1.T$$$$ && \
mv -f java/jv-convert.1.T$$$$ $(srcdir)/java/jv-convert.1) || \
(rm -f java/jv-convert.1.T$$$$ && exit 1)
- rm -f java/jv-convert.pod
+ -rm -f java/jv-convert.pod
$(srcdir)/java/rmic.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D rmic < $(srcdir)/java/gcj.texi > java/rmic.pod
- ($(POD2MAN) --section=1 java/rmic.pod > java/rmic.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/rmic.pod > java/rmic.1.T$$$$ && \
mv -f java/rmic.1.T$$$$ $(srcdir)/java/rmic.1) || \
(rm -f java/rmic.1.T$$$$ && exit 1)
- rm -f java/rmic.pod
+ -rm -f java/rmic.pod
$(srcdir)/java/rmiregistry.1: $(srcdir)/java/gcj.texi
-$(TEXI2POD) -D rmiregistry < $(srcdir)/java/gcj.texi > java/rmiregistry.pod
- ($(POD2MAN) --section=1 java/rmiregistry.pod > java/rmiregistry.1.T$$$$ && \
+ -($(POD2MAN) --section=1 java/rmiregistry.pod > java/rmiregistry.1.T$$$$ && \
mv -f java/rmiregistry.1.T$$$$ $(srcdir)/java/rmiregistry.1) || \
(rm -f java/rmiregistry.1.T$$$$ && exit 1)
- rm -f java/rmiregistry.pod
+ -rm -f java/rmiregistry.pod
# Install the man pages.
java.install-man: installdirs $(GENERATED_JAVA_MANPAGES)
-if [ -f $(GCJ)$(exeext) ]; then \
if [ -f $(GCJ)-cross$(exeext) ]; then \
- rm -f $(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(DESTDIR)$(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(JAVA_CROSS_NAME)$(man1ext); \
else \
- rm -f $(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
- $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
- chmod a-x $(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
+ rm -f $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
+ $(INSTALL_DATA) $(srcdir)/java/gcj.1 $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
+ chmod a-x $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext); \
fi ; \
fi
- -rm -f $(man1dir)/gcjh$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/gcjh.1 $(man1dir)/gcjh$(man1ext)
- -chmod a-x $(man1dir)/gcjh$(man1ext)
- -rm -f $(man1dir)/jv-scan$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/jv-scan.1 $(man1dir)/jv-scan$(man1ext)
- -chmod a-x $(man1dir)/jv-scan$(man1ext)
- -rm -f $(man1dir)/jcf-dump$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/jcf-dump.1 $(man1dir)/jcf-dump$(man1ext)
- -chmod a-x $(man1dir)/jcf-dump$(man1ext)
- -rm -f $(man1dir)/gij$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/gij.1 $(man1dir)/gij$(man1ext)
- -chmod a-x $(man1dir)/gij$(man1ext)
- -rm -f $(man1dir)/jv-convert$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/jv-convert.1 $(man1dir)/jv-convert$(man1ext)
- -chmod a-x $(man1dir)/jv-convert$(man1ext)
- -rm -f $(man1dir)/rmic$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/rmic.1 $(man1dir)/rmic$(man1ext)
- -chmod a-x $(man1dir)/rmic$(man1ext)
- -rm -f $(man1dir)/rmiregistry$(man1ext)
- -$(INSTALL_DATA) $(srcdir)/java/rmiregistry.1 $(man1dir)/rmiregistry$(man1ext)
- -chmod a-x $(man1dir)/rmiregistry$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/gcjh$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/gcjh.1 $(DESTDIR)$(man1dir)/gcjh$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/gcjh$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/jv-scan$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/jv-scan.1 $(DESTDIR)$(man1dir)/jv-scan$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/jv-scan$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/jcf-dump$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/jcf-dump.1 $(DESTDIR)$(man1dir)/jcf-dump$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/jcf-dump$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/gij$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/gij.1 $(DESTDIR)$(man1dir)/gij$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/gij$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/jv-convert$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/jv-convert.1 $(DESTDIR)$(man1dir)/jv-convert$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/jv-convert$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/rmic$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/rmic.1 $(DESTDIR)$(man1dir)/rmic$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/rmic$(man1ext)
+ -rm -f $(DESTDIR)$(man1dir)/rmiregistry$(man1ext)
+ -$(INSTALL_DATA) $(srcdir)/java/rmiregistry.1 $(DESTDIR)$(man1dir)/rmiregistry$(man1ext)
+ -chmod a-x $(DESTDIR)$(man1dir)/rmiregistry$(man1ext)
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index eba84161363..a506110845e 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -44,6 +44,7 @@ enum builtin_type
#define DEF_FUNCTION_TYPE_VAR_0(NAME, RETURN) NAME,
#define DEF_FUNCTION_TYPE_VAR_1(NAME, RETURN, ARG1) NAME,
#define DEF_FUNCTION_TYPE_VAR_2(NAME, RETURN, ARG1, ARG2) NAME,
+#define DEF_FUNCTION_TYPE_VAR_3(NAME, RETURN, ARG1, ARG2, ARG3) NAME,
#define DEF_POINTER_TYPE(NAME, TYPE) NAME,
#include "builtin-types.def"
#undef DEF_PRIMITIVE_TYPE
@@ -55,6 +56,7 @@ enum builtin_type
#undef DEF_FUNCTION_TYPE_VAR_0
#undef DEF_FUNCTION_TYPE_VAR_1
#undef DEF_FUNCTION_TYPE_VAR_2
+#undef DEF_FUNCTION_TYPE_VAR_3
#undef DEF_POINTER_TYPE
BT_LAST
};
@@ -302,12 +304,14 @@ initialize_builtins ()
#define DEF_FUNCTION_TYPE_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
builtin_types[(int) ENUM] \
= define_builtin_type (RETURN, ARG1, ARG2, ARG3, ARG4);
-#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
+#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
builtin_types[(int) ENUM] = NULL_TREE;
-#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
+#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
builtin_types[(int) ENUM] = NULL_TREE;
#define DEF_FUNCTION_TYPE_VAR_2(ENUM, RETURN, ARG1, ARG2) \
builtin_types[(int) ENUM] = NULL_TREE;
+#define DEF_FUNCTION_TYPE_VAR_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
+ builtin_types[(int) ENUM] = NULL_TREE;
#define DEF_POINTER_TYPE(ENUM, TYPE) \
builtin_types[(int) ENUM] = NULL_TREE;
diff --git a/gcc/java/class.c b/gcc/java/class.c
index bec8d0c15e1..d1acdf9d59c 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1,5 +1,5 @@
/* Functions related to building classes and their related objects.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -1866,8 +1866,19 @@ maybe_layout_super_class (super_class, this_class)
super_class = TREE_TYPE (super_class);
else
{
+ /* do_resolve_class expects an EXPR_WITH_FILE_LOCATION, so
+ we give it one. */
+ tree this_wrap = NULL_TREE;
+
+ if (this_class)
+ {
+ tree this_decl = TYPE_NAME (this_class);
+ this_wrap = build_expr_wfl (this_class,
+ DECL_SOURCE_FILE (this_decl),
+ DECL_SOURCE_LINE (this_decl), 0);
+ }
super_class = do_resolve_class (NULL_TREE, /* FIXME? */
- super_class, NULL_TREE, this_class);
+ super_class, NULL_TREE, this_wrap);
if (!super_class)
return NULL_TREE; /* FIXME, NULL_TREE not checked by caller. */
super_class = TREE_TYPE (super_class);
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 41aea0c28f5..07475dee464 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -826,8 +826,10 @@ java_init_decl_processing ()
0, NOT_BUILT_IN, NULL, NULL_TREE);
DECL_IS_MALLOC (soft_anewarray_node) = 1;
+ /* There is no endlink here because _Jv_NewMultiArray is a varargs
+ function. */
t = tree_cons (NULL_TREE, ptr_type_node,
- tree_cons (NULL_TREE, int_type_node, endlink));
+ tree_cons (NULL_TREE, int_type_node, NULL_TREE));
soft_multianewarray_node
= builtin_function ("_Jv_NewMultiArray",
build_function_type (ptr_type_node, t),
@@ -881,7 +883,9 @@ java_init_decl_processing ()
t = tree_cons (NULL_TREE, object_ptr_type_node,
tree_cons (NULL_TREE, ptr_type_node,
- tree_cons (NULL_TREE, ptr_type_node, endlink)));
+ tree_cons (NULL_TREE, ptr_type_node,
+ tree_cons (NULL_TREE, int_type_node,
+ endlink))));
soft_lookupjnimethod_node
= builtin_function ("_Jv_LookupJNIMethod",
build_function_type (ptr_type_node, t),
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 8db2670d0f9..a8fa6be6c41 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -1255,9 +1255,7 @@ build_instanceof (value, type)
/* Anything except `null' is an instance of Object. Likewise,
if the object is known to be an instance of the class, then
we only need to check for `null'. */
- expr = build (COND_EXPR, itype,
- value,
- boolean_true_node, boolean_false_node);
+ expr = build (NE_EXPR, itype, value, null_pointer_node);
}
else if (! TYPE_ARRAY_P (type)
&& ! TYPE_ARRAY_P (valtype)
@@ -1752,7 +1750,14 @@ build_class_init (clas, expr)
tree clas, expr;
{
tree init;
- if (inherits_from_p (current_class, clas))
+
+ /* An optimization: if CLAS is a superclass of the class we're
+ compiling, we don't need to initialize it. However, if CLAS is
+ an interface, it won't necessarily be initialized, even if we
+ implement it. */
+ if ((! CLASS_INTERFACE (TYPE_NAME (clas))
+ && inherits_from_p (current_class, clas))
+ || current_class == clas)
return expr;
if (always_initialize_class_p)
@@ -2173,6 +2178,8 @@ build_jni_stub (method)
tree method_args, res_type;
tree meth_var;
+ int args_size = 0;
+
tree klass = DECL_CONTEXT (method);
int from_class = ! CLASS_FROM_SOURCE_P (klass);
klass = build_class_ref (klass);
@@ -2234,7 +2241,16 @@ build_jni_stub (method)
special way, we would do that here. */
args = NULL_TREE;
for (tem = method_args; tem != NULL_TREE; tem = TREE_CHAIN (tem))
- args = tree_cons (NULL_TREE, tem, args);
+ {
+ int arg_bits = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (TREE_TYPE (tem)));
+#ifdef PARM_BOUNDARY
+ arg_bits = (((arg_bits + PARM_BOUNDARY - 1) / PARM_BOUNDARY)
+ * PARM_BOUNDARY);
+#endif
+ args_size += (arg_bits / BITS_PER_UNIT);
+
+ args = tree_cons (NULL_TREE, tem, args);
+ }
args = nreverse (args);
arg_types = TYPE_ARG_TYPES (TREE_TYPE (method));
@@ -2243,31 +2259,38 @@ build_jni_stub (method)
available in the argument list. */
if (METHOD_STATIC (method))
{
+ args_size += int_size_in_bytes (TREE_TYPE (klass));
args = tree_cons (NULL_TREE, klass, args);
arg_types = tree_cons (NULL_TREE, object_ptr_type_node, arg_types);
}
/* The JNIEnv structure is the first argument to the JNI function. */
+ args_size += int_size_in_bytes (TREE_TYPE (env_var));
args = tree_cons (NULL_TREE, env_var, args);
arg_types = tree_cons (NULL_TREE, ptr_type_node, arg_types);
/* We call _Jv_LookupJNIMethod to find the actual underlying
function pointer. _Jv_LookupJNIMethod will throw the appropriate
exception if this function is not found at runtime. */
+ tem = build_tree_list (NULL_TREE, build_int_2 (args_size, 0));
method_sig = build_java_signature (TREE_TYPE (method));
- lookup_arg =
- build_tree_list (NULL_TREE,
- build_utf8_ref (unmangle_classname
- (IDENTIFIER_POINTER (method_sig),
- IDENTIFIER_LENGTH (method_sig))));
+ lookup_arg = tree_cons (NULL_TREE,
+ build_utf8_ref (unmangle_classname
+ (IDENTIFIER_POINTER (method_sig),
+ IDENTIFIER_LENGTH (method_sig))),
+ tem);
tem = DECL_NAME (method);
lookup_arg
= tree_cons (NULL_TREE, klass,
tree_cons (NULL_TREE, build_utf8_ref (tem), lookup_arg));
+
+ tem = build_function_type (TREE_TYPE (TREE_TYPE (method)), arg_types);
+
+#ifdef MODIFY_JNI_METHOD_CALL
+ tem = MODIFY_JNI_METHOD_CALL (tem);
+#endif
- jni_func_type
- = build_pointer_type (build_function_type (TREE_TYPE (TREE_TYPE (method)),
- arg_types));
+ jni_func_type = build_pointer_type (tem);
jnifunc = build (COND_EXPR, ptr_type_node,
meth_var, meth_var,
diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi
index 3397a423a87..8206d8f7626 100644
--- a/gcc/java/gcj.texi
+++ b/gcc/java/gcj.texi
@@ -1,7 +1,9 @@
-@\input texinfo @c -*-texinfo-*-
+\input texinfo @c -*-texinfo-*-
@setfilename gcj.info
@settitle Guide to GNU gcj
+@include gcc-common.texi
+
@c Note: When reading this manual you'll find lots of strange
@c circumlocutions like ``compiler for the Java language''.
@c This is necessary due to Sun's restrictions on the use of
@@ -11,12 +13,40 @@
@set copyrights-gcj 2001, 2002
@c Versions
-@set version-gcc 3.3
-@set which-gcj GCC-@value{version-gcc}
+@set which-gcj GCC-@value{version-GCC}
+
+@copying
+@c man begin COPYRIGHT
+Copyright @copyright{} @value{copyrights-gcj} Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'', the Front-Cover
+texts being (a) (see below), and with the Back-Cover Texts being (b)
+(see below). A copy of the license is included in the
+@c man end
+section entitled
+``GNU Free Documentation License''.
+@ignore
+@c man begin COPYRIGHT
+man page gfdl(7).
+@c man end
+@end ignore
-@macro gcctabopt{body}
-@code{\body\}
-@end macro
+@c man begin COPYRIGHT
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@c man end
+@end copying
@ifinfo
@format
@@ -43,33 +73,7 @@
@end direntry
@end format
-@c man begin COPYRIGHT
-Copyright (C) @value{copyrights-gcj} Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the
-@c man end
-section entitled
-``GNU Free Documentation License''.
-@ignore
-@c man begin COPYRIGHT
-man page gfdl(7).
-@c man end
-@end ignore
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end ifinfo
@titlepage
@@ -78,31 +82,13 @@ man page gfdl(7).
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} @value{copyrights-gcj} Free Software Foundation, Inc.
-@sp 2
For the @value{which-gcj} Version*
@sp 1
Published by the Free Software Foundation @*
59 Temple Place - Suite 330@*
Boston, MA 02111-1307, USA@*
@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end titlepage
@contents
@page
@@ -515,14 +501,25 @@ Sometimes the @code{libgcj} implementation of a method or class differs
from the JDK implementation. This is not always a bug. Still, if it
affects you, it probably makes sense to report it so that we can discuss
the appropriate response.
+
+@item
+@command{gcj} does not currently allow for piecemeal replacement of
+components within @code{libgcj}. Unfortunately, programmers often want
+to use newer versions of certain packages, such as those provided by
+the Apache Software Foundation's Jakarta project. This has forced us
+to place the @code{org.w3c.dom} and @code{org.xml.sax} packages into
+their own libraries, separate from @code{libgcj}. If you intend to
+use these classes, you must link them explicitly with
+@code{-l-org-w3c-dom} and @code{-l-org-xml-sax}. Future versions of
+@command{gcj} may not have this restriction.
@end itemize
@node Extensions
@section Extra features unique to gcj
-The main feature of @command{gcj} is that it can compile programs written in
-the Java programming language to native code. Most extensions that have been
-added are to facilitate this functionality.
+The main feature of @command{gcj} is that it can compile programs
+written in the Java programming language to native code. Most
+extensions that have been added are to facilitate this functionality.
@itemize @bullet
@item
@@ -2154,6 +2151,12 @@ Returned by @code{java.awt.Window.getWarningString()} when the window is
The class name used for initializing the default @code{java.awt.Toolkit}.
Defaults to @code{gnu.awt.gtk.GtkToolkit}.
+@item http.proxyHost
+Name of proxy host for http connections.
+
+@item http.proxyPort
+Port number to use when a proxy host is in use.
+
@end table
@node GNU Classpath Properties
@@ -2171,6 +2174,15 @@ Enables printing serialization debugging by the @code{java.io.ObjectInput} and
@code{java.io.ObjectOutput} classes when set to something else then the empty
string. Only used when running a debug build of the library.
+@item gnu.classpath.vm.shortname
+This is a succint name of the virtual machine. For @code{libgcj},
+this will always be @samp{libgcj}.
+
+@item gnu.classpath.home.url
+A base URL used for finding system property files (e.g.,
+@file{classpath.security}). By default this is a @samp{file:} URL
+pointing to the @file{lib} directory under @samp{java.home}.
+
@end table
@node libgcj Runtime Properties
diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c
index 0c9d24990b7..dc05673e96c 100644
--- a/gcc/java/gjavah.c
+++ b/gcc/java/gjavah.c
@@ -1,7 +1,7 @@
/* Program to write C++-suitable header files from a Java(TM) .class
file. This is similar to SUN's javah.
-Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -131,8 +131,9 @@ static void print_full_cxx_name PARAMS ((FILE*, JCF*, int, int, int,
static void decompile_method PARAMS ((FILE*, JCF*, int));
static void add_class_decl PARAMS ((FILE*, JCF*, JCF_u2));
-static int java_float_finite PARAMS ((jfloat));
-static int java_double_finite PARAMS ((jdouble));
+static void jni_print_float PARAMS ((FILE *, jfloat));
+static void jni_print_double PARAMS ((FILE *, jdouble));
+
static void print_name PARAMS ((FILE *, JCF *, int));
static void print_base_classname PARAMS ((FILE *, JCF *, int));
static int utf8_cmp PARAMS ((const unsigned char *, int, const char *));
@@ -193,6 +194,9 @@ static int method_printed = 0;
static int method_synthetic = 0;
static int method_signature = 0;
+/* Set to 1 while the very first data member of a class is being handled. */
+static int is_first_data_member = 0;
+
#define HANDLE_METHOD(ACCESS_FLAGS, NAME, SIGNATURE, ATTRIBUTE_COUNT) \
{ \
method_synthetic = 0; \
@@ -240,38 +244,54 @@ static int decompiled = 0;
#include "jcf-reader.c"
-/* Some useful constants. */
-#define F_NAN_MASK 0x7f800000
-#if (1 == HOST_FLOAT_WORDS_BIG_ENDIAN) && ! defined (HOST_WORDS_BIG_ENDIAN)
-#define D_NAN_MASK 0x000000007ff00000LL
-#else
-#define D_NAN_MASK 0x7ff0000000000000LL
-#endif
-
-/* Return 1 if F is not Inf or NaN. */
-static int
-java_float_finite (f)
- jfloat f;
+/* Print a single-precision float, suitable for parsing by g++. */
+static void
+jni_print_float (FILE *stream, jfloat f)
{
- union Word u;
- u.f = f;
-
- /* We happen to know that F_NAN_MASK will match all NaN values, and
- also positive and negative infinity. That's why we only need one
- test here. See The Java Language Specification, section 20.9. */
- return (u.i & F_NAN_MASK) != F_NAN_MASK;
+ /* It'd be nice to use __builtin_nan/__builtin_inf here but they don't
+ work in data initializers. FIXME. */
+ if (JFLOAT_FINITE (f))
+ {
+ fputs (" = ", stream);
+ if (f.negative)
+ putc ('-', stream);
+ if (f.exponent)
+ fprintf (stream, "0x1.%.6xp%+df",
+ ((unsigned int)f.mantissa) << 1,
+ f.exponent - JFLOAT_EXP_BIAS);
+ else
+ /* Exponent of 0x01 is -125; exponent of 0x00 is *also* -125,
+ because the implicit leading 1 bit is no longer present. */
+ fprintf (stream, "0x0.%.6xp%+df",
+ ((unsigned int)f.mantissa) << 1,
+ f.exponent + 1 - JFLOAT_EXP_BIAS);
+ }
+ fputs (";\n", stream);
}
-/* Return 1 if D is not Inf or NaN. */
-static int
-java_double_finite (d)
- jdouble d;
+/* Print a double-precision float, suitable for parsing by g++. */
+static void
+jni_print_double (FILE *stream, jdouble f)
{
- union DWord u;
- u.d = d;
-
- /* Now check for all NaNs. */
- return (u.l & D_NAN_MASK) != D_NAN_MASK;
+ /* It'd be nice to use __builtin_nan/__builtin_inf here but they don't
+ work in data initializers. FIXME. */
+ if (JDOUBLE_FINITE (f))
+ {
+ fputs (" = ", stream);
+ if (f.negative)
+ putc ('-', stream);
+ if (f.exponent)
+ fprintf (stream, "0x1.%.5x%.8xp%+d",
+ f.mantissa0, f.mantissa1,
+ f.exponent - JDOUBLE_EXP_BIAS);
+ else
+ /* Exponent of 0x001 is -1022; exponent of 0x000 is *also* -1022,
+ because the implicit leading 1 bit is no longer present. */
+ fprintf (stream, "0x0.%.5x%.8xp%+d",
+ f.mantissa0, f.mantissa1,
+ f.exponent + 1 - JDOUBLE_EXP_BIAS);
+ }
+ fputs (";\n", stream);
}
/* Print a character, appropriately mangled for JNI. */
@@ -753,10 +773,7 @@ DEFUN(print_field_info, (stream, jcf, name_index, sig_index, flags),
jfloat fnum = JPOOL_FLOAT (jcf, current_field_value);
fputs ("const jfloat ", out);
print_field_name (out, jcf, name_index, 0);
- if (! java_float_finite (fnum))
- fputs (";\n", out);
- else
- fprintf (out, " = %.10g;\n", fnum);
+ jni_print_float (out, fnum);
}
break;
case CONSTANT_Double:
@@ -764,10 +781,7 @@ DEFUN(print_field_info, (stream, jcf, name_index, sig_index, flags),
jdouble dnum = JPOOL_DOUBLE (jcf, current_field_value);
fputs ("const jdouble ", out);
print_field_name (out, jcf, name_index, 0);
- if (! java_double_finite (dnum))
- fputs (";\n", out);
- else
- fprintf (out, " = %.17g;\n", dnum);
+ jni_print_double (out, dnum);
}
break;
default:
@@ -1151,7 +1165,7 @@ throwable_p (clname)
for (length = 0; clname[length] != ';' && clname[length] != '\0'; ++length)
;
- current = ALLOC (length);
+ current = ALLOC (length + 1);
for (i = 0; i < length; ++i)
current[i] = clname[i] == '/' ? '.' : clname[i];
current[length] = '\0';
@@ -1420,6 +1434,17 @@ DEFUN(print_c_decl, (stream, jcf, name_index, signature_index, is_init,
}
}
+ /* Force the alignment of the first data member. This is
+ because the "new" C++ ABI changed the alignemnt of non-POD
+ classes. gcj, however, still uses the "old" alignment. */
+ if (is_first_data_member && ! (flags & ACC_STATIC) && ! is_method)
+ {
+ is_first_data_member = 0;
+ print_cxx_classname (out, " __attribute__((aligned(__alignof__( ",
+ jcf, jcf->super_class);
+ fputs (" )))) ", stream);
+ }
+
/* Now print the name of the thing. */
if (need_space)
fputs (" ", stream);
@@ -2150,6 +2175,8 @@ DEFUN(process_file, (jcf, out),
}
/* Now go back for second pass over methods and fields. */
+ is_first_data_member = 1;
+
JCF_SEEK (jcf, method_start);
method_pass = 1;
jcf_parse_methods (jcf);
diff --git a/gcc/java/javaop.h b/gcc/java/javaop.h
index cbd939bbf99..994b2f934d1 100644
--- a/gcc/java/javaop.h
+++ b/gcc/java/javaop.h
@@ -57,21 +57,26 @@ typedef int32 jint;
typedef int64 jlong;
typedef void* jref;
-/* A 32-bit IEEE single-precision float. */
-#ifndef jfloat
-#define jfloat float
-#endif
-
-/* A 32-bit IEEE double-precision float. */
-#ifndef jdouble
-#define jdouble double
-#endif
-
-union Word {
- jint i;
- jfloat f;
- void *p;
-};
+/* A 32-bit big-endian IEEE single-precision float. */
+typedef struct _jfloat {
+ unsigned int negative : 1;
+ unsigned int exponent : 8;
+ unsigned int mantissa : 23;
+} jfloat;
+#define JFLOAT_FINITE(f) ((f).exponent != 0xFF)
+#define JFLOAT_QNAN_MASK 0x400000
+#define JFLOAT_EXP_BIAS 0x7f
+
+/* A 32-bit big-endian IEEE double-precision float. */
+typedef struct _jdouble {
+ unsigned int negative : 1;
+ unsigned int exponent : 11;
+ unsigned int mantissa0: 20;
+ unsigned int mantissa1: 32;
+} jdouble;
+#define JDOUBLE_FINITE(f) ((f).exponent != 0x7FF)
+#define JDOUBLE_QNAN_MASK 0x80000 /* apply to mantissa0 */
+#define JDOUBLE_EXP_BIAS 0x3ff
/* A jword is an unsigned integral type big enough for a 32-bit jint
or jfloat *or* a pointer. It is the type appropriate for stack
@@ -104,9 +109,14 @@ union Word {
static inline jfloat
WORD_TO_FLOAT(jword w)
-{ union Word wu;
- wu.i = w;
- return wu.f;
+{
+ jfloat f;
+
+ f.negative = (w & 0x80000000) >> 31;
+ f.exponent = (w & 0x7f800000) >> 23;
+ f.mantissa = (w & 0x007fffff);
+
+ return f;
}
/* Sign extend w. If the host on which this cross-compiler runs uses
@@ -128,21 +138,17 @@ WORDS_TO_LONG(jword hi, jword lo)
return ((jlong) hi << 32) | ((jlong)lo & (((jlong)1 << 32) -1));
}
-union DWord {
- jdouble d;
- jlong l;
- jword w[2];
-};
-
static inline jdouble
WORDS_TO_DOUBLE(jword hi, jword lo)
-{ union DWord wu;
-#if (1 == HOST_FLOAT_WORDS_BIG_ENDIAN)
- wu.l = WORDS_TO_LONG(lo, hi);
-#else
- wu.l = WORDS_TO_LONG(hi, lo);
-#endif
- return wu.d;
+{
+ jdouble d;
+
+ d.negative = (hi & 0x80000000) >> 31;
+ d.exponent = (hi & 0x7ff00000) >> 20;
+ d.mantissa0 = (hi & 0x000fffff);
+ d.mantissa1 = lo;
+
+ return d;
}
/* If PREFIX_CHAR is the first character of the Utf8 encoding of a character,
diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c
index 72f1a5360b4..40f7a3fbf43 100644
--- a/gcc/java/jcf-dump.c
+++ b/gcc/java/jcf-dump.c
@@ -56,6 +56,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "version.h"
#include <getopt.h>
+#include <math.h>
/* Outout file. */
FILE *out;
@@ -504,24 +505,86 @@ DEFUN(print_constant, (out, jcf, index, verbosity),
break;
case CONSTANT_Float:
{
- union
- {
- jfloat f;
- int32 i;
- } pun;
-
- pun.f = JPOOL_FLOAT (jcf, index);
- fprintf (out, "%s%.10g",
- verbosity > 0 ? "Float " : "", (double) pun.f);
+ jfloat fnum = JPOOL_FLOAT (jcf, index);
+
+ if (verbosity > 0)
+ fputs ("Float ", out);
+
+ if (fnum.negative)
+ putc ('-', out);
+
+ if (JFLOAT_FINITE (fnum))
+ {
+ int dummy;
+ int exponent = fnum.exponent - JFLOAT_EXP_BIAS;
+ double f;
+ uint32 mantissa = fnum.mantissa;
+ if (fnum.exponent == 0)
+ /* Denormal. */
+ exponent++;
+ else
+ /* Normal; add the implicit bit. */
+ mantissa |= ((uint32)1 << 23);
+
+ f = frexp (mantissa, &dummy);
+ f = ldexp (f, exponent + 1);
+ fprintf (out, "%.10g", f);
+ }
+ else
+ {
+ if (fnum.mantissa == 0)
+ fputs ("Inf", out);
+ else if (fnum.mantissa & JFLOAT_QNAN_MASK)
+ fprintf (out, "QNaN(%u)", (fnum.mantissa & ~JFLOAT_QNAN_MASK));
+ else
+ fprintf (out, "SNaN(%u)", (fnum.mantissa & ~JFLOAT_QNAN_MASK));
+ }
+
if (verbosity > 1)
- fprintf (out, ", bits = 0x%08lx", (long) pun.i);
+ fprintf (out, ", bits = 0x%08lx", JPOOL_UINT (jcf, index));
break;
}
case CONSTANT_Double:
{
jdouble dnum = JPOOL_DOUBLE (jcf, index);
- fprintf (out, "%s%.20g", verbosity > 0 ? "Double " : "", dnum);
+
+ if (verbosity > 0)
+ fputs ("Double ", out);
+
+ if (dnum.negative)
+ putc ('-', out);
+
+ if (JDOUBLE_FINITE (dnum))
+ {
+ int dummy;
+ int exponent = dnum.exponent - JDOUBLE_EXP_BIAS;
+ double d;
+ uint64 mantissa = ((((uint64) dnum.mantissa0) << 32)
+ + dnum.mantissa1);
+ if (dnum.exponent == 0)
+ /* Denormal. */
+ exponent++;
+ else
+ /* Normal; add the implicit bit. */
+ mantissa |= ((uint64)1 << 52);
+
+ d = frexp (mantissa, &dummy);
+ d = ldexp (d, exponent + 1);
+ fprintf (out, "%.20g", d);
+ }
+ else
+ {
+ uint64 mantissa = dnum.mantissa0 & ~JDOUBLE_QNAN_MASK;
+ mantissa = (mantissa << 32) + dnum.mantissa1;
+
+ if (dnum.mantissa0 == 0 && dnum.mantissa1 == 0)
+ fputs ("Inf", out);
+ else if (dnum.mantissa0 & JDOUBLE_QNAN_MASK)
+ fprintf (out, "QNaN(%llu)", (unsigned long long)mantissa);
+ else
+ fprintf (out, "SNaN(%llu)", (unsigned long long)mantissa);
+ }
if (verbosity > 1)
{
int32 hi, lo;
diff --git a/gcc/java/jcf-io.c b/gcc/java/jcf-io.c
index 7b0eacacc2f..1a1fcebe135 100644
--- a/gcc/java/jcf-io.c
+++ b/gcc/java/jcf-io.c
@@ -343,6 +343,7 @@ DEFUN(caching_stat, (filename, buf),
{
#if JCF_USE_SCANDIR
char *sep;
+ char origsep = 0;
char *base;
memoized_dirlist_entry *dent;
void **slot;
@@ -356,15 +357,20 @@ DEFUN(caching_stat, (filename, buf),
/* Get the name of the directory. */
sep = strrchr (filename, DIR_SEPARATOR);
+#ifdef DIR_SEPARATOR_2
+ if (! sep)
+ sep = strrchr (filename, DIR_SEPARATOR_2);
+#endif
if (sep)
{
+ origsep = *sep;
*sep = '\0';
base = sep + 1;
}
else
base = filename;
- /* Obtain the entry for this directory form the hash table. */
+ /* Obtain the entry for this directory from the hash table. */
slot = htab_find_slot (memoized_dirlists, filename, INSERT);
if (!*slot)
{
@@ -375,20 +381,19 @@ DEFUN(caching_stat, (filename, buf),
/* Unfortunately, scandir is not fully standardized. In
particular, the type of the function pointer passed as the
third argument sometimes takes a "const struct dirent *"
- parameter, and sometimes just a "struct dirent *". We rely
- on the ability to interchange these two types of function
- pointers. */
+ parameter, and sometimes just a "struct dirent *". We cast
+ to (void *) so that either way it is quietly accepted. */
dent->num_files = scandir (filename, &dent->files,
- java_or_class_file,
+ (void *) java_or_class_file,
alphasort);
*slot = dent;
}
else
dent = *((memoized_dirlist_entry **) slot);
- /* Put the spearator back. */
+ /* Put the separator back. */
if (sep)
- *sep = DIR_SEPARATOR;
+ *sep = origsep;
/* If the file is not in the list, there is no need to stat it; it
does not exist. */
@@ -518,7 +523,8 @@ DEFUN(find_class, (classname, classname_length, jcf, source_ok),
strcpy (java_buffer, path_name);
l = strlen (java_buffer);
for (m = 0; m < classname_length; ++m)
- java_buffer[m + l] = (classname[m] == '.' ? '/' : classname[m]);
+ java_buffer[m + l] = (classname[m] == '.'
+ ? DIR_SEPARATOR : classname[m]);
strcpy (java_buffer + m + l, ".java");
java = caching_stat (java_buffer, &java_buf);
if (java == 0)
@@ -548,7 +554,7 @@ DEFUN(find_class, (classname, classname_length, jcf, source_ok),
classname+classname_length-
(classname_length <= 30 ?
classname_length : 30)));
- fd = open (buffer, O_RDONLY | O_BINARY);
+ fd = JCF_OPEN_EXACT_CASE (buffer, O_RDONLY | O_BINARY);
if (fd >= 0)
goto found;
}
@@ -560,7 +566,7 @@ DEFUN(find_class, (classname, classname_length, jcf, source_ok),
classname+classname_length-
(classname_length <= 30 ?
classname_length : 30)));
- fd = open (buffer, O_RDONLY);
+ fd = JCF_OPEN_EXACT_CASE (buffer, O_RDONLY);
if (fd >= 0)
{
jcf->java_source = 1;
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index eeb262a4846..a3ea33c02f8 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -1,5 +1,5 @@
/* Parser for Java(TM) .class files.
- Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -44,7 +44,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include <locale.h>
#endif
-#ifdef HAVE_NL_LANGINFO
+#ifdef HAVE_LANGINFO_CODESET
#include <langinfo.h>
#endif
@@ -548,6 +548,10 @@ read_class (name)
read_zip_member(current_jcf,
current_jcf->zipd, current_jcf->zipd->zipf);
jcf_parse (current_jcf);
+ /* Parsing might change the class, in which case we have to
+ put it back where we found it. */
+ if (current_class != class && icv != NULL_TREE)
+ TREE_TYPE (icv) = current_class;
class = current_class;
java_pop_parser_context (0);
java_parser_context_restore_global ();
@@ -838,7 +842,7 @@ parse_source_file_1 (file, finput)
/* There's no point in trying to find the current encoding unless we
are going to do something intelligent with it -- hence the test
for iconv. */
-#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_NL_LANGINFO)
+#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_LANGINFO_CODESET)
setlocale (LC_CTYPE, "");
if (current_encoding == NULL)
current_encoding = nl_langinfo (CODESET);
diff --git a/gcc/java/jcf-path.c b/gcc/java/jcf-path.c
index c9ed323dea4..856da0e1f41 100644
--- a/gcc/java/jcf-path.c
+++ b/gcc/java/jcf-path.c
@@ -1,6 +1,7 @@
/* Handle CLASSPATH, -classpath, and path searching.
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -148,22 +149,23 @@ add_entry (entp, filename, is_system)
n->next = NULL;
len = strlen (filename);
- if (len > 4 && (strcmp (filename + len - 4, ".zip") == 0
- || strcmp (filename + len - 4, ".jar") == 0))
+
+ if (len > 4 && (COMPARE_FILENAMES (filename + len - 4, ".zip") == 0
+ || COMPARE_FILENAMES (filename + len - 4, ".jar") == 0))
{
n->flags |= FLAG_ZIP;
/* If the user uses -classpath then he'll have to include
libgcj.jar in the value. We check for this in a simplistic
way. Symlinks will fool this test. This is only used for
-MM and -MMD, so it probably isn't terribly important. */
- if (! strcmp (filename, LIBGCJ_ZIP_FILE))
+ if (! COMPARE_FILENAMES (filename, LIBGCJ_ZIP_FILE))
n->flags |= FLAG_SYSTEM;
}
/* Note that we add a trailing separator to `.zip' names as well.
This is a little hack that lets the searching code in jcf-io.c
work more easily. Eww. */
- if (filename[len - 1] != '/' && filename[len - 1] != DIR_SEPARATOR)
+ if (! IS_DIR_SEPARATOR (filename[len - 1]))
{
char *f2 = alloca (len + 2);
strcpy (f2, filename);
@@ -378,7 +380,7 @@ jcf_path_extdirs_arg (cp)
char *name = alloca (dirname_length
+ strlen (direntp->d_name) + 2);
strcpy (name, buf);
- if (name[dirname_length-1] != DIR_SEPARATOR)
+ if (! IS_DIR_SEPARATOR (name[dirname_length-1]))
{
name[dirname_length] = DIR_SEPARATOR;
name[dirname_length+1] = 0;
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c
index 47cfd11be8a..1dec6b9e73b 100644
--- a/gcc/java/jcf-write.c
+++ b/gcc/java/jcf-write.c
@@ -276,6 +276,9 @@ struct jcf_partial
/* Information about the current switch statement. */
struct jcf_switch_state *sw_state;
+
+ /* The count of jsr instructions that have been emmitted. */
+ long num_jsrs;
};
static void generate_bytecode_insns PARAMS ((tree, int, struct jcf_partial *));
@@ -292,7 +295,7 @@ static void define_jcf_label PARAMS ((struct jcf_block *,
static struct jcf_block * get_jcf_label_here PARAMS ((struct jcf_partial *));
static void put_linenumber PARAMS ((int, struct jcf_partial *));
static void localvar_alloc PARAMS ((tree, struct jcf_partial *));
-static void localvar_free PARAMS ((tree, struct jcf_partial *));
+static void maybe_free_localvar PARAMS ((tree, struct jcf_partial *, int));
static int get_access_flags PARAMS ((tree));
static void write_chunks PARAMS ((FILE *, struct chunk *));
static int adjust_typed_op PARAMS ((tree, int));
@@ -626,9 +629,10 @@ localvar_alloc (decl, state)
}
static void
-localvar_free (decl, state)
+maybe_free_localvar (decl, state, really)
tree decl;
struct jcf_partial *state;
+ int really;
{
struct jcf_block *end_label = get_jcf_label_here (state);
int index = DECL_LOCAL_INDEX (decl);
@@ -640,6 +644,8 @@ localvar_free (decl, state)
if (info->decl != decl)
abort ();
+ if (! really)
+ return;
ptr[0] = NULL;
if (wide)
{
@@ -1144,6 +1150,7 @@ emit_jsr (target, state)
OP1 (OPCODE_jsr);
/* Value is 1 byte from reloc back to start of instruction. */
emit_reloc (RELOCATION_VALUE_1, OPCODE_jsr_w, target, state);
+ state->num_jsrs++;
}
/* Generate code to evaluate EXP. If the result is true,
@@ -1431,7 +1438,7 @@ generate_bytecode_return (exp, state)
emit_store (state->return_value_decl, state);
call_cleanups (NULL, state);
emit_load (state->return_value_decl, state);
- /* If we call localvar_free (state->return_value_decl, state),
+ /* If we call maybe_free_localvar (state->return_value_decl, state, 1),
then we risk the save decl erroneously re-used in the
finalizer. Instead, we keep the state->return_value_decl
allocated through the rest of the method. This is not
@@ -1471,6 +1478,7 @@ generate_bytecode_insns (exp, target, state)
{
tree local;
tree body = BLOCK_EXPR_BODY (exp);
+ long jsrs = state->num_jsrs;
for (local = BLOCK_EXPR_DECLS (exp); local; )
{
tree next = TREE_CHAIN (local);
@@ -1484,10 +1492,11 @@ generate_bytecode_insns (exp, target, state)
body = TREE_OPERAND (body, 1);
}
generate_bytecode_insns (body, target, state);
+
for (local = BLOCK_EXPR_DECLS (exp); local; )
{
tree next = TREE_CHAIN (local);
- localvar_free (local, state);
+ maybe_free_localvar (local, state, state->num_jsrs <= jsrs);
local = next;
}
}
@@ -1744,6 +1753,7 @@ generate_bytecode_insns (exp, target, state)
else
{
HOST_WIDE_INT i;
+ unsigned HOST_WIDE_INT delta;
/* Copy the chain of relocs into a sorted array. */
struct jcf_relocation **relocs = (struct jcf_relocation **)
xmalloc (sw_state.num_cases * sizeof (struct jcf_relocation *));
@@ -1776,8 +1786,11 @@ generate_bytecode_insns (exp, target, state)
handled by the parser. */
}
- if (2 * sw_state.num_cases
- >= sw_state.max_case - sw_state.min_case)
+ /* We could have DELTA < 0 if sw_state.min_case is
+ something like Integer.MIN_VALUE. That is why delta is
+ unsigned. */
+ delta = sw_state.max_case - sw_state.min_case;
+ if (2 * (unsigned) sw_state.num_cases >= delta)
{ /* Use tableswitch. */
int index = 0;
RESERVE (13 + 4 * (sw_state.max_case - sw_state.min_case + 1));
@@ -2437,8 +2450,8 @@ generate_bytecode_insns (exp, target, state)
if (CAN_COMPLETE_NORMALLY (finally))
{
maybe_wide (OPCODE_ret, DECL_LOCAL_INDEX (return_link), state);
- localvar_free (exception_decl, state);
- localvar_free (return_link, state);
+ maybe_free_localvar (exception_decl, state, 1);
+ maybe_free_localvar (return_link, state, 1);
define_jcf_label (finished_label, state);
}
}
@@ -3043,6 +3056,7 @@ generate_classfile (clas, state)
get_jcf_label_here (state); /* Force a first block. */
for (t = DECL_ARGUMENTS (part); t != NULL_TREE; t = TREE_CHAIN (t))
localvar_alloc (t, state);
+ state->num_jsrs = 0;
generate_bytecode_insns (body, IGNORE_TARGET, state);
if (CAN_COMPLETE_NORMALLY (body))
{
@@ -3052,9 +3066,9 @@ generate_classfile (clas, state)
OP1 (OPCODE_return);
}
for (t = DECL_ARGUMENTS (part); t != NULL_TREE; t = TREE_CHAIN (t))
- localvar_free (t, state);
+ maybe_free_localvar (t, state, 1);
if (state->return_value_decl != NULL_TREE)
- localvar_free (state->return_value_decl, state);
+ maybe_free_localvar (state->return_value_decl, state, 1);
finish_jcf_block (state);
perform_relocations (state);
@@ -3333,6 +3347,7 @@ make_class_file_name (clas)
const char *dname, *cname, *slash;
char *r;
struct stat sb;
+ char sep;
cname = IDENTIFIER_POINTER (identifier_subst (DECL_NAME (TYPE_NAME (clas)),
"", '.', DIR_SEPARATOR,
@@ -3344,24 +3359,45 @@ make_class_file_name (clas)
char *t;
dname = DECL_SOURCE_FILE (TYPE_NAME (clas));
slash = strrchr (dname, DIR_SEPARATOR);
+#ifdef DIR_SEPARATOR_2
if (! slash)
- {
- dname = ".";
- slash = dname + 1;
- }
+ slash = strrchr (dname, DIR_SEPARATOR_2);
+#endif
+ if (! slash)
+ {
+ dname = ".";
+ slash = dname + 1;
+ sep = DIR_SEPARATOR;
+ }
+ else
+ sep = *slash;
+
t = strrchr (cname, DIR_SEPARATOR);
if (t)
cname = t + 1;
}
else
{
+ char *s;
+
dname = jcf_write_base_directory;
+
+ s = strrchr (dname, DIR_SEPARATOR);
+#ifdef DIR_SEPARATOR_2
+ if (! s)
+ s = strrchr (dname, DIR_SEPARATOR_2);
+#endif
+ if (s)
+ sep = *s;
+ else
+ sep = DIR_SEPARATOR;
+
slash = dname + strlen (dname);
}
r = xmalloc (slash - dname + strlen (cname) + 2);
strncpy (r, dname, slash - dname);
- r[slash - dname] = DIR_SEPARATOR;
+ r[slash - dname] = sep;
strcpy (&r[slash - dname + 1], cname);
/* We try to make new directories when we need them. We only do
@@ -3373,7 +3409,7 @@ make_class_file_name (clas)
dname = r + (slash - dname) + 1;
while (1)
{
- char *s = strchr (dname, DIR_SEPARATOR);
+ char *s = strchr (dname, sep);
if (s == NULL)
break;
*s = '\0';
@@ -3382,9 +3418,9 @@ make_class_file_name (clas)
&& mkdir (r, 0755) == -1)
fatal_io_error ("can't create directory %s", r);
- *s = DIR_SEPARATOR;
+ *s = sep;
/* Skip consecutive separators. */
- for (dname = s + 1; *dname && *dname == DIR_SEPARATOR; ++dname)
+ for (dname = s + 1; *dname && *dname == sep; ++dname)
;
}
diff --git a/gcc/java/jcf.h b/gcc/java/jcf.h
index e674bdb7022..79d3e6d6934 100644
--- a/gcc/java/jcf.h
+++ b/gcc/java/jcf.h
@@ -1,6 +1,7 @@
/* Utility macros to read Java(TM) .class files and byte codes.
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -71,6 +72,33 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#define JCF_USE_SCANDIR 0
#endif
+/* On case-insensitive file systems, file name components must be
+ compared using "strcasecmp", if available, instead of "strcmp".
+ Assumes "config.h" has already been included. */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM) && defined (HAVE_STRCASECMP)
+#define COMPARE_FILENAMES(X, Y) strcasecmp ((X), (Y))
+#else
+#define COMPARE_FILENAMES(X, Y) strcmp ((X), (Y))
+#endif
+
+/* On case-insensitive file systems, we need to ensure that a request
+ to open a .java or .class file is honored only if the file to be
+ opened is of the exact case we are asking for. In other words, we
+ want to override the inherent case insensitivity of the underlying
+ file system. On other platforms, this macro becomes the vanilla
+ open() call.
+
+ If you want to add another host, add your define to the list below
+ (i.e. defined(WIN32) || defined(YOUR_HOST)) and add an host-specific
+ .c file to Make-lang.in similar to win32-host.c */
+#if defined(WIN32)
+extern int
+jcf_open_exact_case (const char* filename, int oflag);
+#define JCF_OPEN_EXACT_CASE(X, Y) jcf_open_exact_case (X, Y)
+#else
+#define JCF_OPEN_EXACT_CASE open
+#endif /* WIN32 */
+
struct JCF;
typedef int (*jcf_filbuf_t) PARAMS ((struct JCF*, int needed));
diff --git a/gcc/java/jv-scan.c b/gcc/java/jv-scan.c
index f92acebd7f4..d3e3d09c3a3 100644
--- a/gcc/java/jv-scan.c
+++ b/gcc/java/jv-scan.c
@@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */
#include <locale.h>
#endif
-#ifdef HAVE_NL_LANGINFO
+#ifdef HAVE_LANGINFO_CODESET
#include <langinfo.h>
#endif
@@ -203,7 +203,7 @@ DEFUN (main, (argc, argv),
/* There's no point in trying to find the current encoding
unless we are going to do something intelligent with it
-- hence the test for iconv. */
-#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_NL_LANGINFO)
+#if defined (HAVE_LOCALE_H) && defined (HAVE_ICONV) && defined (HAVE_LANGINFO_CODESET)
setlocale (LC_CTYPE, "");
if (encoding == NULL)
encoding = nl_langinfo (CODESET);
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 0d9605c09ff..38d15848ca7 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -75,7 +75,9 @@ static int merge_init_test_initialization PARAMS ((void * *,
static int inline_init_test_initialization PARAMS ((void * *,
void *));
static bool java_can_use_bit_fields_p PARAMS ((void));
+static bool java_decl_ok_for_sibcall (tree);
static int java_dump_tree PARAMS ((void *, tree));
+static void dump_compound_expr PARAMS ((dump_info_p, tree));
#ifndef TARGET_OBJECT_SUFFIX
# define TARGET_OBJECT_SUFFIX ".o"
@@ -291,6 +293,9 @@ struct language_function GTY(())
#undef LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN
#define LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN java_dump_tree
+#undef LANG_HOOKS_DECL_OK_FOR_SIBCALL
+#define LANG_HOOKS_DECL_OK_FOR_SIBCALL java_decl_ok_for_sibcall
+
/* Each front end provides its own. */
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
@@ -1155,4 +1160,16 @@ java_dump_tree (dump_info, t)
}
return 0;
}
+
+/* Java calls can't, in general, be sibcalls because we need an
+ accurate stack trace in order to guarantee correct operation of
+ methods such as Class.forName(String) and
+ SecurityManager.getClassContext(). */
+
+static bool
+java_decl_ok_for_sibcall (tree decl)
+{
+ return decl != NULL && DECL_CONTEXT (decl) == current_class;
+}
+
#include "gt-java-lang.h"
diff --git a/gcc/java/lex.c b/gcc/java/lex.c
index eecbcff81ce..e648686a3ce 100644
--- a/gcc/java/lex.c
+++ b/gcc/java/lex.c
@@ -555,23 +555,31 @@ java_read_unicode (lex, unicode_escape_p)
while ((c = java_read_char (lex)) == 'u')
;
- /* Unget the most recent character as it is not a `u'. */
- if (c == UEOF)
- return UEOF;
- lex->unget_value = c;
-
- /* Next should be 4 hex digits, otherwise it's an error.
- The hex value is converted into the unicode, pushed into
- the Unicode stream. */
- for (shift = 12; shift >= 0; shift -= 4)
+ shift = 12;
+ do
{
- if ((c = java_read_char (lex)) == UEOF)
- return UEOF;
+ if (c == UEOF)
+ {
+ java_lex_error ("prematurely terminated \\u sequence", 0);
+ return UEOF;
+ }
+
if (hex_p (c))
unicode |= (unicode_t)(hex_value (c) << shift);
else
- java_lex_error ("Non hex digit in Unicode escape sequence", 0);
+ {
+ java_lex_error ("non-hex digit in \\u sequence", 0);
+ break;
+ }
+
+ c = java_read_char (lex);
+ shift -= 4;
}
+ while (shift >= 0);
+
+ if (c != UEOF)
+ lex->unget_value = c;
+
lex->bs_count = 0;
*unicode_escape_p = 1;
return unicode;
@@ -1536,7 +1544,7 @@ java_lex (java_lval)
/* Keyword, boolean literal or null literal. */
for (first_unicode = c, all_ascii = 1, ascii_index = 0;
- JAVA_PART_CHAR_P (c); c = java_get_unicode ())
+ c != UEOF && JAVA_PART_CHAR_P (c); c = java_get_unicode ())
{
java_unicode_2_utf8 (c);
if (all_ascii && c >= 128)
@@ -1546,7 +1554,8 @@ java_lex (java_lval)
obstack_1grow (&temporary_obstack, '\0');
string = obstack_finish (&temporary_obstack);
- java_unget_unicode ();
+ if (c != UEOF)
+ java_unget_unicode ();
/* If we have something all ascii, we consider a keyword, a boolean
literal, a null literal or an all ASCII identifier. Otherwise,
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index d457f1a046d..0705f9b96d5 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -1,6 +1,6 @@
/* Source code parsing and tree node generation for the GNU compiler
for the Java(TM) language.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
This file is part of GNU CC.
@@ -4582,6 +4582,18 @@ method_header (flags, type, mdecl, throws)
IDENTIFIER_POINTER (EXPR_WFL_NODE (id)));
}
+ /* A native method can't be strictfp. */
+ if ((flags & ACC_NATIVE) && (flags & ACC_STRICT))
+ parse_error_context (id, "native method `%s' can't be strictfp",
+ IDENTIFIER_POINTER (EXPR_WFL_NODE (id)));
+ /* No such thing as a transient or volatile method. */
+ if ((flags & ACC_TRANSIENT))
+ parse_error_context (id, "method `%s' can't be transient",
+ IDENTIFIER_POINTER (EXPR_WFL_NODE (id)));
+ if ((flags & ACC_VOLATILE))
+ parse_error_context (id, "method `%s' can't be volatile",
+ IDENTIFIER_POINTER (EXPR_WFL_NODE (id)));
+
/* Things to be checked when declaring a constructor */
if (!type)
{
@@ -5763,11 +5775,11 @@ resolve_class (enclosing, class_type, decl, cl)
return resolved_type_decl;
}
-/* Effectively perform the resolution of class CLASS_TYPE. DECL or CL
- are used to report error messages. Do not try to replace TYPE_NAME
- (class_type) by a variable, since it is changed by
- find_in_imports{_on_demand} and (but it doesn't really matter)
- qualify_and_find. */
+/* Effectively perform the resolution of class CLASS_TYPE. DECL or CL
+ are used to report error messages; CL must either be NULL_TREE or a
+ WFL wrapping a class. Do not try to replace TYPE_NAME (class_type)
+ by a variable, since it is changed by find_in_imports{_on_demand}
+ and (but it doesn't really matter) qualify_and_find. */
tree
do_resolve_class (enclosing, class_type, decl, cl)
@@ -5785,14 +5797,16 @@ do_resolve_class (enclosing, class_type, decl, cl)
class and then treat Id as a member type. If we can't find Q
as a class then we fall through. */
tree q, left, left_type, right;
- breakdown_qualified (&left, &right, TYPE_NAME (class_type));
- BUILD_PTR_FROM_NAME (left_type, left);
- q = do_resolve_class (enclosing, left_type, decl, cl);
- if (q)
+ if (breakdown_qualified (&left, &right, TYPE_NAME (class_type)) == 0)
{
- enclosing = q;
- saved_enclosing_type = TREE_TYPE (q);
- BUILD_PTR_FROM_NAME (class_type, right);
+ BUILD_PTR_FROM_NAME (left_type, left);
+ q = do_resolve_class (enclosing, left_type, decl, cl);
+ if (q)
+ {
+ enclosing = q;
+ saved_enclosing_type = TREE_TYPE (q);
+ BUILD_PTR_FROM_NAME (class_type, right);
+ }
}
}
@@ -6365,17 +6379,8 @@ java_check_regular_methods (class_decl)
if (check_method_redefinition (class, method))
continue;
- /* If we see one constructor a mark so we don't generate the
- default one. Also skip other verifications: constructors
- can't be inherited hence hiden or overriden */
- if (DECL_CONSTRUCTOR_P (method))
- {
- saw_constructor = 1;
- continue;
- }
-
- /* We verify things thrown by the method. They must inherits from
- java.lang.Throwable */
+ /* We verify things thrown by the method. They must inherit from
+ java.lang.Throwable. */
for (mthrows = DECL_FUNCTION_THROWS (method);
mthrows; mthrows = TREE_CHAIN (mthrows))
{
@@ -6386,6 +6391,15 @@ java_check_regular_methods (class_decl)
(DECL_NAME (TYPE_NAME (TREE_VALUE (mthrows)))));
}
+ /* If we see one constructor a mark so we don't generate the
+ default one. Also skip other verifications: constructors
+ can't be inherited hence hidden or overridden. */
+ if (DECL_CONSTRUCTOR_P (method))
+ {
+ saw_constructor = 1;
+ continue;
+ }
+
sig = build_java_argument_signature (TREE_TYPE (method));
found = lookup_argument_method2 (class, DECL_NAME (method), sig);
@@ -9049,6 +9063,65 @@ java_expand_classes ()
}
}
+ /* Expanding the constructors of anonymous classes generates access
+ methods. Scan all the methods looking for null DECL_RESULTs --
+ this will be the case if a method hasn't been expanded. */
+ for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next)
+ {
+ tree current;
+ ctxp = cur_ctxp;
+ for (current = ctxp->class_list; current; current = TREE_CHAIN (current))
+ {
+ tree d;
+ current_class = TREE_TYPE (current);
+ for (d = TYPE_METHODS (current_class); d; d = TREE_CHAIN (d))
+ {
+ if (DECL_RESULT (d) == NULL_TREE)
+ {
+ restore_line_number_status (1);
+ java_complete_expand_method (d);
+ restore_line_number_status (0);
+ }
+ }
+ }
+ }
+
+ /* ??? Instead of all this we could iterate around the list of
+ classes until there were no more un-expanded methods. It would
+ take a little longer -- one pass over the whole list of methods
+ -- but it would be simpler. Like this: */
+#if 0
+ {
+ int something_changed;
+
+ do
+ {
+ something_changed = 0;
+ for (cur_ctxp = ctxp_for_generation; cur_ctxp; cur_ctxp = cur_ctxp->next)
+ {
+ tree current;
+ ctxp = cur_ctxp;
+ for (current = ctxp->class_list; current; current = TREE_CHAIN (current))
+ {
+ tree d;
+ current_class = TREE_TYPE (current);
+ for (d = TYPE_METHODS (current_class); d; d = TREE_CHAIN (d))
+ {
+ if (DECL_RESULT (d) == NULL_TREE)
+ {
+ something_changed = 1;
+ restore_line_number_status (1);
+ java_complete_expand_method (d);
+ restore_line_number_status (0);
+ }
+ }
+ }
+ }
+ }
+ while (something_changed);
+ }
+#endif
+
/* If we've found error at that stage, don't try to generate
anything, unless we're emitting xrefs or checking the syntax only
(but not using -fsyntax-only for the purpose of generating
@@ -9402,6 +9475,19 @@ resolve_field_access (qual_wfl, field_decl, field_type)
return error_mark_node;
if (is_static)
field_ref = maybe_build_class_init_for_field (decl, field_ref);
+
+ /* If we're looking at a static field, we may need to generate a
+ class initialization for it. This can happen when the access
+ looks like `field.ref', where `field' is a static field in an
+ interface we implement. */
+ if (!flag_emit_class_files
+ && !flag_emit_xref
+ && TREE_CODE (where_found) == VAR_DECL
+ && FIELD_STATIC (where_found))
+ {
+ build_static_field_ref (where_found);
+ field_ref = build_class_init (DECL_CONTEXT (where_found), field_ref);
+ }
}
else
field_ref = decl;
@@ -10789,7 +10875,11 @@ patch_invoke (patch, method, args)
is NULL. */
if (check != NULL_TREE)
{
- patch = build (COMPOUND_EXPR, TREE_TYPE (patch), check, patch);
+ /* We have to call force_evaluation_order now because creating a
+ COMPOUND_EXPR wraps the arg list in a way that makes it
+ unrecognizable by force_evaluation_order later. Yuk. */
+ patch = build (COMPOUND_EXPR, TREE_TYPE (patch), check,
+ force_evaluation_order (patch));
TREE_SIDE_EFFECTS (patch) = 1;
}
@@ -11859,7 +11949,9 @@ java_complete_lhs (node)
nn = wfl_op2;
if (TREE_CODE (nn) == EXPR_WITH_FILE_LOCATION)
nn = EXPR_WFL_NODE (nn);
- if (TREE_CODE (nn) != EXIT_EXPR)
+ /* NN can be NULL_TREE exactly when UPDATE is, in
+ finish_for_loop. */
+ if (nn != NULL_TREE && TREE_CODE (nn) != EXIT_EXPR)
{
SET_WFL_OPERATOR (wfl_operator, node, wfl_op2);
if (SUPPRESS_UNREACHABLE_ERROR (nn))
@@ -12592,17 +12684,18 @@ static char *
string_convert_int_cst (node)
tree node;
{
- static char buffer[80];
+ /* Long.MIN_VALUE is -9223372036854775808, 20 characters. */
+ static char buffer[21];
unsigned HOST_WIDE_INT lo = TREE_INT_CST_LOW (node);
unsigned HOST_WIDE_INT hi = TREE_INT_CST_HIGH (node);
- char *p = buffer + sizeof (buffer) - 1;
+ char *p = buffer + sizeof (buffer);
int neg = 0;
unsigned HOST_WIDE_INT hibit = (((unsigned HOST_WIDE_INT) 1)
<< (HOST_BITS_PER_WIDE_INT - 1));
- *p-- = '\0';
+ *--p = '\0';
/* If negative, note the fact and negate the value. */
if ((hi & hibit))
@@ -12615,7 +12708,7 @@ string_convert_int_cst (node)
}
/* Divide by 10 until there are no bits left. */
- while (hi || lo)
+ do
{
unsigned HOST_WIDE_INT acc = 0;
unsigned HOST_WIDE_INT outhi = 0, outlo = 0;
@@ -12647,17 +12740,18 @@ string_convert_int_cst (node)
}
}
- /* FIXME: ASCII assumption. */
- *p-- = '0' + acc;
+ /* '0' == 060 in Java, but might not be here (think EBCDIC). */
+ *--p = '\060' + acc;
hi = outhi;
lo = outlo;
}
+ while (hi || lo);
if (neg)
- *p-- = '-';
+ *--p = '\055'; /* '-' == 055 in Java, but might not be here. */
- return p + 1;
+ return p;
}
/* Print an INTEGER_CST node in a static buffer, and return the
@@ -12856,6 +12950,43 @@ patch_assignment (node, wfl_op1)
DECL_INITIAL (lvalue) = new_rhs;
}
+ /* Copy the rhs if it's a reference. */
+ if (! flag_check_references && ! flag_emit_class_files && optimize > 0)
+ {
+ switch (TREE_CODE (new_rhs))
+ {
+ case ARRAY_REF:
+ case INDIRECT_REF:
+ case COMPONENT_REF:
+ /* Transform a = foo.bar
+ into a = { int tmp; tmp = foo.bar; tmp; ).
+ We need to ensure that if a read from memory fails
+ because of a NullPointerException, a destination variable
+ will remain unchanged. An explicit temporary does what
+ we need.
+
+ If flag_check_references is set, this is unnecessary
+ because we'll check each reference before doing any
+ reads. If optimize is not set the result will never be
+ written to a stack slot that contains the LHS. */
+ {
+ tree tmp = build_decl (VAR_DECL, get_identifier ("<tmp>"),
+ TREE_TYPE (new_rhs));
+ tree block = build (BLOCK, TREE_TYPE (new_rhs), NULL);
+ tree assignment
+ = build (MODIFY_EXPR, TREE_TYPE (new_rhs), tmp, fold (new_rhs));
+ BLOCK_VARS (block) = tmp;
+ BLOCK_EXPR_BODY (block)
+ = build (COMPOUND_EXPR, TREE_TYPE (new_rhs), assignment, tmp);
+ TREE_SIDE_EFFECTS (block) = 1;
+ new_rhs = block;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
TREE_OPERAND (node, 0) = lvalue;
TREE_OPERAND (node, 1) = new_rhs;
TREE_TYPE (node) = lhs_type;
@@ -13770,25 +13901,25 @@ do_merge_string_cste (cste, string, string_len, after)
}
/* Tries to merge OP1 (a STRING_CST) and OP2 (if suitable). Return a
- new STRING_CST on success, NULL_TREE on failure */
+ new STRING_CST on success, NULL_TREE on failure. */
static tree
merge_string_cste (op1, op2, after)
tree op1, op2;
int after;
{
- /* Handle two string constants right away */
+ /* Handle two string constants right away. */
if (TREE_CODE (op2) == STRING_CST)
return do_merge_string_cste (op1, TREE_STRING_POINTER (op2),
TREE_STRING_LENGTH (op2), after);
- /* Reasonable integer constant can be treated right away */
+ /* Reasonable integer constant can be treated right away. */
if (TREE_CODE (op2) == INTEGER_CST && !TREE_CONSTANT_OVERFLOW (op2))
{
static const char *const boolean_true = "true";
static const char *const boolean_false = "false";
static const char *const null_pointer = "null";
- char ch[3];
+ char ch[4];
const char *string;
if (op2 == boolean_true_node)
@@ -13796,22 +13927,30 @@ merge_string_cste (op1, op2, after)
else if (op2 == boolean_false_node)
string = boolean_false;
else if (op2 == null_pointer_node)
+ /* FIXME: null is not a compile-time constant, so it is only safe to
+ merge if the overall expression is non-constant. However, this
+ code always merges without checking the overall expression. */
string = null_pointer;
else if (TREE_TYPE (op2) == char_type_node)
{
/* Convert the character into UTF-8. */
- unsigned char c = (unsigned char) TREE_INT_CST_LOW (op2);
+ unsigned int c = (unsigned int) TREE_INT_CST_LOW (op2);
unsigned char *p = (unsigned char *) ch;
- if (0x01 <= c
- && c <= 0x7f)
- *p++ = c;
+ if (0x01 <= c && c <= 0x7f)
+ *p++ = (unsigned char) c;
+ else if (c < 0x7ff)
+ {
+ *p++ = (unsigned char) (c >> 6 | 0xc0);
+ *p++ = (unsigned char) ((c & 0x3f) | 0x80);
+ }
else
{
- *p++ = c >> 6 | 0xc0;
- *p++ = (c & 0x3f) | 0x80;
+ *p++ = (unsigned char) (c >> 12 | 0xe0);
+ *p++ = (unsigned char) (((c >> 6) & 0x3f) | 0x80);
+ *p++ = (unsigned char) ((c & 0x3f) | 0x80);
}
*p = '\0';
-
+
string = ch;
}
else
@@ -15052,12 +15191,17 @@ finish_for_loop (location, condition, update, body)
tree up2 = update;
if (TREE_CODE (up2) == EXPR_WITH_FILE_LOCATION)
up2 = EXPR_WFL_NODE (up2);
- /* Try to detect constraint violations. These would be
- programming errors somewhere. */
- if (! IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (up2)))
- || TREE_CODE (up2) == LOOP_EXPR)
- abort ();
- SUPPRESS_UNREACHABLE_ERROR (up2) = 1;
+ /* It is possible for the update expression to be an
+ EXPR_WFL_NODE wrapping nothing. */
+ if (up2 != NULL_TREE && up2 != empty_stmt_node)
+ {
+ /* Try to detect constraint violations. These would be
+ programming errors somewhere. */
+ if (! IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (up2)))
+ || TREE_CODE (up2) == LOOP_EXPR)
+ abort ();
+ SUPPRESS_UNREACHABLE_ERROR (up2) = 1;
+ }
}
LOOP_EXPR_BODY_UPDATE_BLOCK (LOOP_EXPR_BODY (loop)) = update;
return loop;
diff --git a/gcc/java/win32-host.c b/gcc/java/win32-host.c
new file mode 100644
index 00000000000..7ab8fa53f96
--- /dev/null
+++ b/gcc/java/win32-host.c
@@ -0,0 +1,85 @@
+/* Platform-Specific Win32 Functions
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, 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 GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
+
+Java and all Java-based marks are trademarks or registered trademarks
+of Sun Microsystems, Inc. in the United States and other countries.
+The Free Software Foundation is independent of Sun Microsystems, Inc. */
+
+/* Written by Mohan Embar <gnustuff@thisiscool.com>, March 2003. */
+
+#ifdef WIN32
+
+#include "config.h"
+#include "system.h"
+
+#include "jcf.h"
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+
+/* Simulate an open() failure with ENOENT */
+static int
+file_not_found (void);
+
+static int
+file_not_found (void)
+{
+ errno = ENOENT;
+ return -1;
+}
+
+int
+jcf_open_exact_case (const char *filename, int oflag)
+{
+ int filename_len = strlen (filename);
+ int found_file_len;
+ HANDLE found_file_handle;
+ WIN32_FIND_DATA fd;
+
+ /* See if we can find this file. */
+ found_file_handle = FindFirstFile (filename, &fd);
+ if (found_file_handle == INVALID_HANDLE_VALUE)
+ return file_not_found ();
+ FindClose (found_file_handle);
+
+ found_file_len = strlen (fd.cFileName);
+
+ /* This should never happen. */
+ if (found_file_len > filename_len)
+ return file_not_found ();
+
+ /* Here, we're only actually comparing the filename and not
+ checking the case of any containing directory components.
+ Although we're not fully obeying our contract, checking
+ all directory components would be tedious and time-consuming
+ and it's a pretty safe assumption that mixed-case package
+ names are a fringe case.... */
+ if (strcmp (filename + filename_len - found_file_len, fd.cFileName))
+ {
+ /* Reject this because it is not a perfect-case match. */
+ /* printf("************\nRejected:\n%s\n%s\n************\n\n", filename, fd.cFileName); */
+ return file_not_found ();
+ }
+ else
+ {
+ return open (filename, oflag);
+ }
+}
+
+#endif /* WIN32 */
diff --git a/gcc/jump.c b/gcc/jump.c
index ef031f2a8a1..fffc8e7cbb1 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -1,6 +1,6 @@
/* Optimize jump instructions, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997
- 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -59,6 +59,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
or even change what is live at any point.
So perhaps let combiner do it. */
+static rtx next_nonnote_insn_in_loop PARAMS ((rtx));
static int init_label_info PARAMS ((rtx));
static void mark_all_labels PARAMS ((rtx));
static int duplicate_loop_exit_test PARAMS ((rtx));
@@ -119,6 +120,27 @@ cleanup_barriers ()
}
}
+/* Return the next insn after INSN that is not a NOTE and is in the loop,
+ i.e. when there is no such INSN before NOTE_INSN_LOOP_END return NULL_RTX.
+ This routine does not look inside SEQUENCEs. */
+
+static rtx
+next_nonnote_insn_in_loop (insn)
+ rtx insn;
+{
+ while (insn)
+ {
+ insn = NEXT_INSN (insn);
+ if (insn == 0 || GET_CODE (insn) != NOTE)
+ break;
+ if (GET_CODE (insn) == NOTE
+ && NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
+ return NULL_RTX;
+ }
+
+ return insn;
+}
+
void
copy_loop_headers (f)
rtx f;
@@ -137,7 +159,7 @@ copy_loop_headers (f)
the values of regno_first_uid and regno_last_uid. */
if (GET_CODE (insn) == NOTE
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG
- && (temp1 = next_nonnote_insn (insn)) != 0
+ && (temp1 = next_nonnote_insn_in_loop (insn)) != 0
&& any_uncondjump_p (temp1) && onlyjump_p (temp1))
{
temp = PREV_INSN (insn);
@@ -293,7 +315,8 @@ duplicate_loop_exit_test (loop_start)
rtx insn, set, reg, p, link;
rtx copy = 0, first_copy = 0;
int num_insns = 0;
- rtx exitcode = NEXT_INSN (JUMP_LABEL (next_nonnote_insn (loop_start)));
+ rtx exitcode
+ = NEXT_INSN (JUMP_LABEL (next_nonnote_insn_in_loop (loop_start)));
rtx lastexit;
int max_reg = max_reg_num ();
rtx *reg_map = 0;
@@ -1057,6 +1080,22 @@ simplejump_p (insn)
&& 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.
@@ -1877,14 +1916,14 @@ delete_for_peephole (from, to)
is also an unconditional jump in that case. */
}
-/* We have determined that INSN is never reached, and are about to
- delete it. Print a warning if the user asked for one.
+/* We have determined that AVOIDED_INSN is never reached, and are
+ about to delete it. If the insn chain between AVOIDED_INSN and
+ FINISH contains more than one line from the current function, and
+ contains at least one operation, print a warning if the user asked
+ for it. If FINISH is NULL, look between AVOIDED_INSN and a LABEL.
- To try to make this warning more useful, this should only be called
- once per basic block not reached, and it only warns when the basic
- block contains more than one line from the current function, and
- contains at least one operation. CSE and inlining can duplicate insns,
- so it's possible to get spurious warnings from this. */
+ CSE and inlining can duplicate insns, so it's possible to get
+ spurious warnings from this. */
void
never_reached_warning (avoided_insn, finish)
@@ -1894,15 +1933,29 @@ never_reached_warning (avoided_insn, finish)
rtx a_line_note = NULL;
int two_avoided_lines = 0, contains_insn = 0, reached_end = 0;
- if (! warn_notreached)
+ if (!warn_notreached)
return;
- /* Scan forwards, looking at LINE_NUMBER notes, until
- we hit a LABEL or we run out of insns. */
+ /* Back up to the first of any NOTEs preceding avoided_insn; flow passes
+ us the head of a block, a NOTE_INSN_BASIC_BLOCK, which often follows
+ the line note. */
+ insn = avoided_insn;
+ while (1)
+ {
+ rtx prev = PREV_INSN (insn);
+ if (prev == NULL_RTX
+ || GET_CODE (prev) != NOTE)
+ break;
+ insn = prev;
+ }
+
+ /* Scan forwards, looking at LINE_NUMBER notes, until we hit a LABEL
+ in case FINISH is NULL, otherwise until we run out of insns. */
- for (insn = avoided_insn; insn != NULL; insn = NEXT_INSN (insn))
+ for (; insn != NULL; insn = NEXT_INSN (insn))
{
- if (finish == NULL && GET_CODE (insn) == CODE_LABEL)
+ if ((finish == NULL && GET_CODE (insn) == CODE_LABEL)
+ || GET_CODE (insn) == BARRIER)
break;
if (GET_CODE (insn) == NOTE /* A line number note? */
@@ -1916,7 +1969,7 @@ never_reached_warning (avoided_insn, finish)
}
else if (INSN_P (insn))
{
- if (reached_end || a_line_note == NULL)
+ if (reached_end)
break;
contains_insn = 1;
}
diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h
index 8de0d6a41f2..83b8b45b67f 100644
--- a/gcc/langhooks-def.h
+++ b/gcc/langhooks-def.h
@@ -63,6 +63,7 @@ extern bool lhd_can_use_bit_fields_p PARAMS ((void));
extern bool lhd_warn_unused_global_decl PARAMS ((tree));
extern void lhd_incomplete_type_error PARAMS ((tree, tree));
extern tree lhd_type_promotes_to PARAMS ((tree));
+extern bool lhd_decl_ok_for_sibcall PARAMS ((tree));
extern tree lhd_expr_size PARAMS ((tree));
/* Declarations of default tree inlining hooks. */
@@ -82,6 +83,8 @@ int lhd_tree_inlining_start_inlining PARAMS ((tree));
void lhd_tree_inlining_end_inlining PARAMS ((tree));
tree lhd_tree_inlining_convert_parm_for_inlining PARAMS ((tree, tree, tree));
+void write_global_declarations PARAMS ((void));
+
#define LANG_HOOKS_NAME "GNU unknown"
#define LANG_HOOKS_IDENTIFIER_SIZE sizeof (struct lang_identifier)
#define LANG_HOOKS_INIT lhd_do_nothing
@@ -209,6 +212,8 @@ int lhd_tree_dump_type_quals PARAMS ((tree));
#define LANG_HOOKS_PUSHDECL pushdecl
#define LANG_HOOKS_GETDECLS getdecls
#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL lhd_warn_unused_global_decl
+#define LANG_HOOKS_WRITE_GLOBALS write_global_declarations
+#define LANG_HOOKS_DECL_OK_FOR_SIBCALL lhd_decl_ok_for_sibcall
#define LANG_HOOKS_DECLS { \
LANG_HOOKS_PUSHLEVEL, \
@@ -218,7 +223,9 @@ int lhd_tree_dump_type_quals PARAMS ((tree));
LANG_HOOKS_SET_BLOCK, \
LANG_HOOKS_PUSHDECL, \
LANG_HOOKS_GETDECLS, \
- LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL \
+ LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, \
+ LANG_HOOKS_WRITE_GLOBALS, \
+ LANG_HOOKS_DECL_OK_FOR_SIBCALL, \
}
/* The whole thing. The structure is defined in langhooks.h. */
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index ccbb53485aa..87211216e30 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -442,3 +442,42 @@ lhd_expr_size (exp)
else
return size_in_bytes (TREE_TYPE (exp));
}
+
+/* Return true if decl, which is a function decl, may be called by a
+ sibcall. */
+
+bool
+lhd_decl_ok_for_sibcall (decl)
+ tree decl ATTRIBUTE_UNUSED;
+{
+ return true;
+}
+
+/* lang_hooks.decls.final_write_globals: perform final processing on
+ global variables. */
+void
+write_global_declarations ()
+{
+ /* Really define vars that have had only a tentative definition.
+ Really output inline functions that must actually be callable
+ and have not been output so far. */
+
+ tree globals = (*lang_hooks.decls.getdecls) ();
+ int len = list_length (globals);
+ tree *vec = (tree *) xmalloc (sizeof (tree) * len);
+ int i;
+ tree decl;
+
+ /* Process the decls in reverse order--earliest first.
+ Put them into VEC from back to front, then take out from front. */
+
+ for (i = 0, decl = globals; i < len; i++, decl = TREE_CHAIN (decl))
+ vec[len - i - 1] = decl;
+
+ wrapup_global_declarations (vec, len);
+
+ check_global_declarations (vec, len);
+
+ /* Clean up. */
+ free (vec);
+}
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index 09e5971007a..546e50e0fb9 100644
--- a/gcc/langhooks.h
+++ b/gcc/langhooks.h
@@ -167,6 +167,13 @@ struct lang_hooks_for_decls
/* Returns true when we should warn for an unused global DECL.
We will already have checked that it has static binding. */
bool (*warn_unused_global) PARAMS ((tree));
+
+ /* Obtain a list of globals and do final output on them at end
+ of compilation */
+ void (*final_write_globals) PARAMS ((void));
+
+ /* True if this decl may be called via a sibcall. */
+ bool (*ok_for_sibcall) PARAMS ((tree));
};
/* Language-specific hooks. See langhooks-def.h for defaults. */
diff --git a/gcc/libgcc-std.ver b/gcc/libgcc-std.ver
index abbab6ce941..5036884fbae 100644
--- a/gcc/libgcc-std.ver
+++ b/gcc/libgcc-std.ver
@@ -179,4 +179,24 @@ GCC_3.0 {
%inherit GCC_3.3 GCC_3.0
GCC_3.3 {
_Unwind_FindEnclosingFunction
+ _Unwind_GetCFA
+ _Unwind_Backtrace
+ _Unwind_Resume_or_Rethrow
+ _Unwind_SjLj_Resume_or_Rethrow
+}
+
+%inherit GCC_3.3.1 GCC_3.3
+GCC_3.3.1 {
+ __gcc_personality_sj0
+ __gcc_personality_v0
+}
+
+%inherit GCC_3.3.2 GCC_3.3.1
+GCC_3.3.2 {
+}
+
+%inherit GCC_3.3.4 GCC_3.3.2
+GCC_3.3.4 {
+ __unorddf2
+ __unordsf2
}
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h
index 79c79970057..f2dcb7c9393 100644
--- a/gcc/libgcc2.h
+++ b/gcc/libgcc2.h
@@ -19,6 +19,14 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library 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 GCC_LIBGCC2_H
#define GCC_LIBGCC2_H
diff --git a/gcc/loop.c b/gcc/loop.c
index d7abe5ff654..6dee48f4f23 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -1,6 +1,6 @@
/* Perform various loop optimizations, including strength reduction.
Copyright (C) 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -54,6 +54,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "predict.h"
#include "insn-flags.h"
#include "optabs.h"
+#include "ggc.h"
/* Not really meaningful values, but at least something. */
#ifndef SIMULTANEOUS_PREFETCHES
@@ -326,10 +327,12 @@ static void update_reg_last_use PARAMS ((rtx, rtx));
static rtx next_insn_in_loop PARAMS ((const struct loop *, rtx));
static void loop_regs_scan PARAMS ((const struct loop *, int));
static int count_insns_in_loop PARAMS ((const struct loop *));
+static int find_mem_in_note_1 PARAMS ((rtx *, void *));
+static rtx find_mem_in_note PARAMS ((rtx));
static void load_mems PARAMS ((const struct loop *));
static int insert_loop_mem PARAMS ((rtx *, void *));
static int replace_loop_mem PARAMS ((rtx *, void *));
-static void replace_loop_mems PARAMS ((rtx, rtx, rtx));
+static void replace_loop_mems PARAMS ((rtx, rtx, rtx, int));
static int replace_loop_reg PARAMS ((rtx *, void *));
static void replace_loop_regs PARAMS ((rtx insn, rtx, rtx));
static void note_reg_stored PARAMS ((rtx, rtx, void *));
@@ -550,7 +553,10 @@ loop_optimize (f, dumpfile, flags)
struct loop *loop = &loops->array[i];
if (! loop->invalid && loop->end)
- scan_loop (loop, flags);
+ {
+ scan_loop (loop, flags);
+ ggc_collect ();
+ }
}
end_alias_analysis ();
@@ -815,11 +821,17 @@ scan_loop (loop, flags)
}
}
+ /* Don't try to optimize a MODE_CC set with a constant
+ source. It probably will be combined with a conditional
+ jump. */
+ if (GET_MODE_CLASS (GET_MODE (SET_DEST (set))) == MODE_CC
+ && CONSTANT_P (src))
+ ;
/* 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 (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
@@ -3277,7 +3289,7 @@ loop_invariant_p (loop, x)
These have always been created by the unroller and are set in
the loop, hence are never invariant. */
- if (REGNO (x) >= regs->num)
+ if (REGNO (x) >= (unsigned) regs->num)
return 0;
if (regs->array[REGNO (x)].set_in_loop < 0)
@@ -4204,7 +4216,15 @@ emit_prefetch_instructions (loop)
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);
+ {
+ rtx seq;
+
+ start_sequence ();
+ init_val = convert_to_mode (Pmode, init_val, 0);
+ seq = get_insns ();
+ end_sequence ();
+ loop_insn_emit_before (loop, 0, loop_start, seq);
+ }
loop_iv_add_mult_emit_before (loop, init_val,
info[i].giv->mult_val,
add_val, reg, 0, loop_start);
@@ -4761,6 +4781,9 @@ loop_givs_reduce (loop, bl)
{
rtx insert_before;
+ /* Skip if location is the same as a previous one. */
+ if (tv->same)
+ continue;
if (! auto_inc_opt)
insert_before = NEXT_INSN (tv->insn);
else if (auto_inc_opt == 1)
@@ -4901,6 +4924,9 @@ loop_givs_rescan (loop, bl, reg_map)
gen_move_insn (v->dest_reg,
v->new_reg));
+ /* We must do this now because we just emitted a new set. */
+ RTX_UNCHANGING_P (v->dest_reg) = 0;
+
/* The original insn may have a REG_EQUAL note. This note is
now incorrect and may result in invalid substitutions later.
The original insn is dead, but may be part of a libcall
@@ -5668,6 +5694,7 @@ record_biv (loop, v, insn, dest_reg, inc_val, mult_val, location,
v->always_computable = ! not_every_iteration;
v->always_executed = ! not_every_iteration;
v->maybe_multiple = maybe_multiple;
+ v->same = 0;
/* Add this to the reg's iv_class, creating a class
if this is the first incrementation of the reg. */
@@ -5705,6 +5732,17 @@ record_biv (loop, v, insn, dest_reg, inc_val, mult_val, location,
/* Put it in the array of biv register classes. */
REG_IV_CLASS (ivs, REGNO (dest_reg)) = bl;
}
+ else
+ {
+ /* Check if location is the same as a previous one. */
+ struct induction *induction;
+ for (induction = bl->biv; induction; induction = induction->next_iv)
+ if (location == induction->location)
+ {
+ v->same = induction;
+ break;
+ }
+ }
/* Update IV_CLASS entry for this biv. */
v->next_iv = bl->biv;
@@ -6141,6 +6179,10 @@ update_giv_derive (loop, p)
if (GET_CODE (p) == CODE_LABEL || GET_CODE (p) == JUMP_INSN
|| biv->insn == p)
{
+ /* Skip if location is the same as a previous one. */
+ if (biv->same)
+ continue;
+
for (giv = bl->giv; giv; giv = giv->next_iv)
{
/* If cant_derive is already true, there is no point in
@@ -6244,7 +6286,7 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
{
enum rtx_code code;
rtx *argp, arg;
- rtx insn, set = 0;
+ rtx insn, set = 0, last, inc;
code = GET_CODE (x);
*location = NULL;
@@ -6272,7 +6314,26 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
if (loop_invariant_p (loop, arg) != 1)
return 0;
- *inc_val = convert_modes (GET_MODE (dest_reg), GET_MODE (x), arg, 0);
+ /* convert_modes can emit new instructions, e.g. when arg is a loop
+ invariant MEM and dest_reg has a different mode.
+ These instructions would be emitted after the end of the function
+ and then *inc_val would be an unitialized pseudo.
+ Detect this and bail in this case.
+ Other alternatives to solve this can be introducing a convert_modes
+ variant which is allowed to fail but not allowed to emit new
+ instructions, emit these instructions before loop start and let
+ it be garbage collected if *inc_val is never used or saving the
+ *inc_val initialization sequence generated here and when *inc_val
+ is going to be actually used, emit it at some suitable place. */
+ last = get_last_insn ();
+ inc = convert_modes (GET_MODE (dest_reg), GET_MODE (x), arg, 0);
+ if (get_last_insn () != last)
+ {
+ delete_insns_since (last);
+ return 0;
+ }
+
+ *inc_val = inc;
*mult_val = const1_rtx;
*location = argp;
return 1;
@@ -6353,7 +6414,15 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
&& GET_MODE_CLASS (mode) != MODE_CC)
{
/* Possible bug here? Perhaps we don't know the mode of X. */
- *inc_val = convert_modes (GET_MODE (dest_reg), mode, x, 0);
+ last = get_last_insn ();
+ inc = convert_modes (GET_MODE (dest_reg), mode, x, 0);
+ if (get_last_insn () != last)
+ {
+ delete_insns_since (last);
+ return 0;
+ }
+
+ *inc_val = inc;
*mult_val = const0_rtx;
return 1;
}
@@ -7242,6 +7311,9 @@ express_from (g1, g2)
&& GET_CODE (g2->mult_val) == CONST_INT)
{
if (g1->mult_val == const0_rtx
+ || (g1->mult_val == constm1_rtx
+ && INTVAL (g2->mult_val)
+ == (HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT - 1))
|| INTVAL (g2->mult_val) % INTVAL (g1->mult_val) != 0)
return NULL_RTX;
mult = GEN_INT (INTVAL (g2->mult_val) / INTVAL (g1->mult_val));
@@ -7834,11 +7906,12 @@ loop_iv_add_mult_emit_before (loop, b, m, a, reg, before_bb, before_insn)
update_reg_last_use (b, before_insn);
update_reg_last_use (m, before_insn);
- loop_insn_emit_before (loop, before_bb, before_insn, seq);
-
/* It is possible that the expansion created lots of new registers.
- Iterate over the sequence we just created and record them all. */
+ Iterate over the sequence we just created and record them all. We
+ must do this before inserting the sequence. */
loop_regs_update (loop, seq);
+
+ loop_insn_emit_before (loop, before_bb, before_insn, seq);
}
@@ -7863,11 +7936,12 @@ loop_iv_add_mult_sink (loop, b, m, a, reg)
update_reg_last_use (b, loop->sink);
update_reg_last_use (m, loop->sink);
- loop_insn_sink (loop, seq);
-
/* It is possible that the expansion created lots of new registers.
- Iterate over the sequence we just created and record them all. */
+ Iterate over the sequence we just created and record them all. We
+ must do this before inserting the sequence. */
loop_regs_update (loop, seq);
+
+ loop_insn_sink (loop, seq);
}
@@ -7886,11 +7960,12 @@ loop_iv_add_mult_hoist (loop, b, m, a, reg)
/* Use copy_rtx to prevent unexpected sharing of these rtx. */
seq = gen_add_mult (copy_rtx (b), copy_rtx (m), copy_rtx (a), reg);
- loop_insn_hoist (loop, seq);
-
/* It is possible that the expansion created lots of new registers.
- Iterate over the sequence we just created and record them all. */
+ Iterate over the sequence we just created and record them all. We
+ must do this before inserting the sequence. */
loop_regs_update (loop, seq);
+
+ loop_insn_hoist (loop, seq);
}
@@ -8624,11 +8699,12 @@ maybe_eliminate_biv (loop, bl, eliminate_p, threshold, insn_count)
enum rtx_code code = GET_CODE (p);
basic_block where_bb = 0;
rtx where_insn = threshold >= insn_count ? 0 : p;
+ rtx note;
/* If this is a libcall that sets a giv, skip ahead to its end. */
if (GET_RTX_CLASS (code) == 'i')
{
- rtx note = find_reg_note (p, REG_LIBCALL, NULL_RTX);
+ note = find_reg_note (p, REG_LIBCALL, NULL_RTX);
if (note)
{
@@ -8646,6 +8722,8 @@ maybe_eliminate_biv (loop, bl, eliminate_p, threshold, insn_count)
}
}
}
+
+ /* Closely examine the insn if the biv is mentioned. */
if ((code == INSN || code == JUMP_INSN || code == CALL_INSN)
&& reg_mentioned_p (reg, PATTERN (p))
&& ! maybe_eliminate_biv_1 (loop, PATTERN (p), p, bl,
@@ -8657,6 +8735,12 @@ maybe_eliminate_biv (loop, bl, eliminate_p, threshold, insn_count)
bl->regno, INSN_UID (p));
break;
}
+
+ /* If we are eliminating, kill REG_EQUAL notes mentioning the biv. */
+ if (eliminate_p
+ && (note = find_reg_note (p, REG_EQUAL, NULL_RTX)) != NULL_RTX
+ && reg_mentioned_p (reg, XEXP (note, 0)))
+ remove_note (p, note);
}
if (p == loop->end)
@@ -9571,6 +9655,8 @@ insert_loop_mem (mem, data)
for (i = 0; i < loop_info->mems_idx; ++i)
if (rtx_equal_p (m, loop_info->mems[i].mem))
{
+ if (MEM_VOLATILE_P (m) && !MEM_VOLATILE_P (loop_info->mems[i].mem))
+ loop_info->mems[i].mem = m;
if (GET_MODE (m) != GET_MODE (loop_info->mems[i].mem))
/* The modes of the two memory accesses are different. If
this happens, something tricky is going on, and we just
@@ -9972,7 +10058,7 @@ load_mems (loop)
else
/* Replace the memory reference with the shadow register. */
replace_loop_mems (p, loop_info->mems[i].mem,
- loop_info->mems[i].reg);
+ loop_info->mems[i].reg, written);
}
if (GET_CODE (p) == CODE_LABEL
@@ -10345,6 +10431,33 @@ try_swap_copy_prop (loop, replacement, regno)
}
}
+/* Worker function for find_mem_in_note, called via for_each_rtx. */
+
+static int
+find_mem_in_note_1 (x, data)
+ rtx *x;
+ void *data;
+{
+ if (*x != NULL_RTX && GET_CODE (*x) == MEM)
+ {
+ rtx *res = (rtx *) data;
+ *res = *x;
+ return 1;
+ }
+ return 0;
+}
+
+/* Returns the first MEM found in NOTE by depth-first search. */
+
+static rtx
+find_mem_in_note (note)
+ rtx note;
+{
+ if (note && for_each_rtx (&note, find_mem_in_note_1, &note))
+ return note;
+ return NULL_RTX;
+}
+
/* Replace MEM with its associated pseudo register. This function is
called from load_mems via for_each_rtx. DATA is actually a pointer
to a structure describing the instruction currently being scanned
@@ -10387,10 +10500,11 @@ replace_loop_mem (mem, data)
}
static void
-replace_loop_mems (insn, mem, reg)
+replace_loop_mems (insn, mem, reg, written)
rtx insn;
rtx mem;
rtx reg;
+ int written;
{
loop_replace_args args;
@@ -10399,6 +10513,26 @@ replace_loop_mems (insn, mem, reg)
args.replacement = reg;
for_each_rtx (&insn, replace_loop_mem, &args);
+
+ /* If we hoist a mem write out of the loop, then REG_EQUAL
+ notes referring to the mem are no longer valid. */
+ if (written)
+ {
+ rtx note, sub;
+ rtx *link;
+
+ for (link = &REG_NOTES (insn); (note = *link); link = &XEXP (note, 1))
+ {
+ if (REG_NOTE_KIND (note) == REG_EQUAL
+ && (sub = find_mem_in_note (note))
+ && true_dependence (mem, VOIDmode, sub, rtx_varies_p))
+ {
+ /* Remove the note. */
+ validate_change (NULL_RTX, link, XEXP (note, 1), 1);
+ break;
+ }
+ }
+ }
}
/* Replace one register with another. Called through for_each_rtx; PX points
diff --git a/gcc/loop.h b/gcc/loop.h
index 362013f3978..20d6e826be6 100644
--- a/gcc/loop.h
+++ b/gcc/loop.h
@@ -51,6 +51,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define REGNO_FIRST_LUID(REGNO) uid_luid[REGNO_FIRST_UID (REGNO)]
#define REGNO_LAST_LUID(REGNO) uid_luid[REGNO_LAST_UID (REGNO)]
+#define REGNO_LAST_NOTE_LUID(REGNO) uid_luid[REGNO_LAST_NOTE_UID (REGNO)]
/* A "basic induction variable" or biv is a pseudo reg that is set
@@ -143,9 +144,12 @@ struct induction
based on the same biv. For bivs, links
together all biv entries that refer to the
same biv register. */
- struct induction *same; /* If this giv has been combined with another
- giv, this points to the base giv. The base
- giv will have COMBINED_WITH nonzero. */
+ struct induction *same; /* For givs, if the giv has been combined with
+ another giv, this points to the base giv.
+ The base giv will have COMBINED_WITH nonzero.
+ For bivs, if the biv has the same LOCATION
+ than another biv, this points to the base
+ biv. */
HOST_WIDE_INT const_adjust; /* Used by loop unrolling, when an address giv
is split, and a constant is eliminated from
the address, the -constant is stored here
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index 81d2e47f52b..5164ce2bc3b 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -1,6 +1,6 @@
#!/bin/sh
# Construct makefile for libgcc.
-# Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
#
# This file is part of GCC.
@@ -21,6 +21,8 @@
# LIB2_DIVMOD_FUNCS
# DPBIT
# DPBIT_FUNCS
+# TPBIT
+# TPBIT_FUNCS
# LIBGCC
# MULTILIBS
# EXTRA_MULTILIB_PARTS
@@ -174,6 +176,21 @@ if [ "$DPBIT" ]; then
done
fi
+if [ "$TPBIT" ]; then
+ for name in $TPBIT_FUNCS; do
+ for ml in $MULTILIBS; do
+ dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+ flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
+ out="libgcc/${dir}/${name}${objext}"
+
+ echo $out: $TPBIT $fpbit_c_dep
+ echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
+ -c $TPBIT -o $out
+ done
+ libgcc2_objs="$libgcc2_objs ${name}${objext}"
+ done
+fi
+
for file in $LIB2ADD; do
name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
oname=`echo $name | sed -e 's,.*/,,'`
@@ -282,17 +299,27 @@ for ml in $MULTILIBS; do
if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
libgcc_a_objs=
echo ""
+ echo "libgcc/${dir}/stacknote.s: stmp-dirs"
+ echo ' @( echo | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -S -o - -xc - | grep .note.GNU-stack || : ) > $@.tmp'
+ echo ' @mv -f $@.tmp $@'
+ echo ""
for o in $libgcc_objs $libgcc_st_objs; do
# .oS objects will have all non-local symbol definitions .hidden
oS=`echo ${o} | sed s~${objext}'$~.oS~g'`
- echo "${oS}: stmp-dirs ${o}"
- echo ' @$(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 { print "\t.hidden", $$3 }'\'' | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
+ echo "${oS}: stmp-dirs libgcc/${dir}/stacknote.s ${o}"
+ echo ' @( $(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 { print "\t.hidden", $$3 }'\''; cat libgcc/${dir}/stacknote.s ) | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
libgcc_a_objs="${libgcc_a_objs} ${oS}"
done
fi
+ # Each of these .a files depends on stmp-dirs. It would seem that
+ # this dependency is redundant, since each of the object files
+ # itself depends on stmp-dirs. However, it is possible that there
+ # are in fact no object files. In that case, the stmp-dirs
+ # dependency is required; the directory containing the archive must
+ # exist before the archive itself can be created.
echo ""
- echo "${dir}/libgcc.a: $libgcc_a_objs"
+ echo "${dir}/libgcc.a: stmp-dirs $libgcc_a_objs"
echo " -rm -rf ${dir}/libgcc.a"
echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_a_objs
echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\
@@ -302,7 +329,7 @@ for ml in $MULTILIBS; do
if [ "$SHLIB_LINK" ]; then
echo ""
- echo "${dir}/libgcc_eh.a: $libgcc_eh_objs"
+ echo "${dir}/libgcc_eh.a: stmp-dirs $libgcc_eh_objs"
echo " -rm -rf ${dir}/libgcc_eh.a"
echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a $libgcc_eh_objs
echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\
@@ -367,10 +394,11 @@ done
echo ''
echo 'libgcc-stage-start:'
echo ' for dir in '"${dirs}"'; do \'
-echo ' if [ -d $(stage)/$$dir ]; then true; else mkdir $(stage)/$$dir; fi; \'
+echo ' if [ -d $(stage)/$$dir ]; then true; else '$mkinstalldirs' $(stage)/$$dir; fi; \'
echo ' done'
echo ' -for dir in '"${dirs}"'; do \'
echo ' mv $$dir/*'"${objext}"' $(stage)/$$dir; \'
+echo ' test ! -f $$dir/stacknote.s || mv $$dir/stacknote.s $(stage)/$$dir; \'
echo ' done'
echo ""
@@ -436,10 +464,10 @@ 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;"
+ ldir='$(DESTDIR)$(libsubdir)'/$dir
+ echo " if [ -d $ldir ]; then true; else $mkinstalldirs $ldir; chmod a+rx $ldir; fi;"
else
- ldir='$(libsubdir)'
+ ldir='$(DESTDIR)$(libsubdir)'
fi
echo ' $(INSTALL_DATA)' ${dir}/libgcc.a ${ldir}/
echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc.a
@@ -495,10 +523,10 @@ for f in $EXTRA_MULTILIB_PARTS; do
dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
if [ $dir != . ]; then
out=${dir}/$f
- ldir='$(libsubdir)'/$dir
+ ldir='$(DESTDIR)$(libsubdir)'/$dir
else
out=$f
- ldir='$(libsubdir)'
+ ldir='$(DESTDIR)$(libsubdir)'
fi
echo ' $(INSTALL_DATA)' $out $ldir/
done
diff --git a/gcc/mkmap-symver.awk b/gcc/mkmap-symver.awk
index e4bc58e1880..7953afcff80 100644
--- a/gcc/mkmap-symver.awk
+++ b/gcc/mkmap-symver.awk
@@ -95,22 +95,28 @@ function output(lib) {
if (inherit[lib])
output(inherit[lib]);
- printf("%s {\n", lib);
- sawglobal = 0;
+ empty=1
for (sym in ver)
if ((ver[sym] == lib) && (sym in def))
{
- if (!sawglobal)
+ if (empty)
{
+ printf("%s {\n", lib);
printf(" global:\n");
- sawglobal = 1;
+ empty = 0;
}
printf("\t%s;\n", sym);
if (dotsyms)
printf("\t.%s;\n", sym);
}
- if (inherit[lib])
+ if (empty)
+ {
+ for (l in libs)
+ if (inherit[l] == lib)
+ inherit[l] = inherit[lib];
+ }
+ else if (inherit[lib])
printf("} %s;\n", inherit[lib]);
else
printf ("\n local:\n\t*;\n};\n");
diff --git a/gcc/objc/lang-specs.h b/gcc/objc/lang-specs.h
index 1e9c70155ad..540a9ae02eb 100644
--- a/gcc/objc/lang-specs.h
+++ b/gcc/objc/lang-specs.h
@@ -30,10 +30,10 @@ Boston, MA 02111-1307, USA. */
%{!E:%{!M:%{!MM:\
%{traditional|ftraditional|traditional-cpp:\
%eGNU Objective C no longer supports traditional compilation}\
- %{save-temps:cc1obj -E %(cpp_options) %b.mi \n\
- cc1obj -fpreprocessed %b.mi %(cc1_options) %{gen-decls}}\
- %{!save-temps:\
- cc1obj %(cpp_unique_options) %(cc1_options) %{gen-decls}}\
+ %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
+ cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %{gen-decls}}\
+ %{!save-temps:%{!no-integrated-cpp:\
+ cc1obj %(cpp_unique_options) %(cc1_options) %{gen-decls}}}\
%{!fsyntax-only:%(invoke_as)}}}}", 0},
{".mi", "@objc-cpp-output", 0},
{"@objc-cpp-output",
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 018ba04f999..dea85b32d34 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -5848,11 +5848,7 @@ is_private (decl)
{
if (TREE_PRIVATE (decl)
&& ! is_ivar (CLASS_IVARS (implementation_template), DECL_NAME (decl)))
- {
- error ("instance variable `%s' is declared private",
- IDENTIFIER_POINTER (DECL_NAME (decl)));
- return 1;
- }
+ return 1;
else
return 0;
}
@@ -5894,7 +5890,14 @@ is_public (expr, identifier)
== CATEGORY_IMPLEMENTATION_TYPE))
&& (CLASS_NAME (objc_implementation_context)
== TYPE_NAME (basetype))))
- return ! is_private (decl);
+ {
+ int private = is_private (decl);
+ if (private)
+ error ("instance variable '%s' is declared private",
+ IDENTIFIER_POINTER (DECL_NAME (decl)));
+
+ return !private;
+ }
error ("instance variable `%s' is declared %s",
IDENTIFIER_POINTER (identifier),
@@ -8524,7 +8527,7 @@ lookup_objc_ivar (id)
else if (objc_method_context && (decl = is_ivar (objc_ivar_chain, id)))
{
if (is_private (decl))
- return error_mark_node;
+ return 0;
else
return build_ivar_reference (id);
}
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 9da95e1de72..337ec690091 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1,6 +1,6 @@
/* Expand the basic unary and binary arithmetic operations, for GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -40,6 +40,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "reload.h"
#include "ggc.h"
#include "real.h"
+#include "basic-block.h"
/* Each optab contains info on how this target machine
can perform a particular operation
@@ -85,6 +86,11 @@ enum insn_code setcc_gen_code[NUM_RTX_CODE];
enum insn_code movcc_gen_code[NUM_MACHINE_MODES];
#endif
+/* The insn generating function can not take an rtx_code argument.
+ TRAP_RTX is used as an rtx argument. Its code is replaced with
+ the code to be used in the trap insn and all other fields are ignored. */
+static GTY(()) rtx trap_rtx;
+
static int add_equal_note PARAMS ((rtx, rtx, enum rtx_code, rtx, rtx));
static rtx widen_operand PARAMS ((rtx, enum machine_mode,
enum machine_mode, int, int));
@@ -111,9 +117,6 @@ static inline optab init_optabv PARAMS ((enum rtx_code));
static void init_libfuncs PARAMS ((optab, int, int, const char *, int));
static void init_integral_libfuncs PARAMS ((optab, const char *, int));
static void init_floating_libfuncs PARAMS ((optab, const char *, int));
-#ifdef HAVE_conditional_trap
-static void init_traps PARAMS ((void));
-#endif
static void emit_cmp_and_jump_insn_1 PARAMS ((rtx, rtx, enum machine_mode,
enum rtx_code, int, rtx));
static void prepare_float_lib_cmp PARAMS ((rtx *, rtx *, enum rtx_code *,
@@ -123,6 +126,11 @@ static rtx expand_vector_binop PARAMS ((enum machine_mode, optab,
enum optab_methods));
static rtx expand_vector_unop PARAMS ((enum machine_mode, optab, rtx, rtx,
int));
+
+#ifndef HAVE_conditional_trap
+#define HAVE_conditional_trap 0
+#define gen_conditional_trap(a,b) (abort (), NULL_RTX)
+#endif
/* Add a REG_EQUAL note to the last insn in INSNS. TARGET is being set to
the result of operation CODE applied to OP0 (and OP1 if it is a binary
@@ -1306,6 +1314,8 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
copy_rtx (xop0),
copy_rtx (xop1)));
}
+ else
+ target = xtarget;
return target;
}
@@ -3241,10 +3251,26 @@ emit_libcall_block (insns, target, result, equiv)
/* Encapsulate the block so it gets manipulated as a unit. */
if (!flag_non_call_exceptions || !may_trap_p (equiv))
{
- REG_NOTES (first) = gen_rtx_INSN_LIST (REG_LIBCALL, last,
- REG_NOTES (first));
- REG_NOTES (last) = gen_rtx_INSN_LIST (REG_RETVAL, first,
- REG_NOTES (last));
+ /* We can't attach the REG_LIBCALL and REG_RETVAL notes
+ when the encapsulated region would not be in one basic block,
+ i.e. when there is a control_flow_insn_p insn between FIRST and LAST.
+ */
+ bool attach_libcall_retval_notes = true;
+ next = NEXT_INSN (last);
+ for (insn = first; insn != next; insn = NEXT_INSN (insn))
+ if (control_flow_insn_p (insn))
+ {
+ attach_libcall_retval_notes = false;
+ break;
+ }
+
+ if (attach_libcall_retval_notes)
+ {
+ REG_NOTES (first) = gen_rtx_INSN_LIST (REG_LIBCALL, last,
+ REG_NOTES (first));
+ REG_NOTES (last) = gen_rtx_INSN_LIST (REG_RETVAL, first,
+ REG_NOTES (last));
+ }
}
}
@@ -3390,6 +3416,40 @@ prepare_cmp_insn (px, py, pcomparison, size, pmode, punsignedp, purpose)
if (size == 0)
abort ();
+#ifdef HAVE_cmpmemqi
+ if (HAVE_cmpmemqi
+ && GET_CODE (size) == CONST_INT
+ && INTVAL (size) < (1 << GET_MODE_BITSIZE (QImode)))
+ {
+ result_mode = insn_data[(int) CODE_FOR_cmpmemqi].operand[0].mode;
+ result = gen_reg_rtx (result_mode);
+ emit_insn (gen_cmpmemqi (result, x, y, size, opalign));
+ }
+ else
+#endif
+#ifdef HAVE_cmpmemhi
+ if (HAVE_cmpmemhi
+ && GET_CODE (size) == CONST_INT
+ && INTVAL (size) < (1 << GET_MODE_BITSIZE (HImode)))
+ {
+ result_mode = insn_data[(int) CODE_FOR_cmpmemhi].operand[0].mode;
+ result = gen_reg_rtx (result_mode);
+ emit_insn (gen_cmpmemhi (result, x, y, size, opalign));
+ }
+ else
+#endif
+#ifdef HAVE_cmpmemsi
+ if (HAVE_cmpmemsi)
+ {
+ result_mode = insn_data[(int) CODE_FOR_cmpmemsi].operand[0].mode;
+ result = gen_reg_rtx (result_mode);
+ size = protect_from_queue (size, 0);
+ emit_insn (gen_cmpmemsi (result, x, y,
+ convert_to_mode (SImode, size, 1),
+ opalign));
+ }
+ else
+#endif
#ifdef HAVE_cmpstrqi
if (HAVE_cmpstrqi
&& GET_CODE (size) == CONST_INT
@@ -3450,6 +3510,16 @@ prepare_cmp_insn (px, py, pcomparison, size, pmode, punsignedp, purpose)
return;
}
+ /* Don't allow operands to the compare to trap, as that can put the
+ compare and branch in different basic blocks. */
+ if (flag_non_call_exceptions)
+ {
+ if (may_trap_p (x))
+ x = force_reg (mode, x);
+ if (may_trap_p (y))
+ y = force_reg (mode, y);
+ }
+
*px = x;
*py = y;
if (can_compare_p (*pcomparison, mode, purpose))
@@ -3506,7 +3576,12 @@ prepare_operand (icode, x, opnum, mode, wider_mode, unsignedp)
if (! (*insn_data[icode].operand[opnum].predicate)
(x, insn_data[icode].operand[opnum].mode))
- x = copy_to_mode_reg (insn_data[icode].operand[opnum].mode, x);
+ {
+ if (no_new_pseudos)
+ return NULL_RTX;
+ x = copy_to_mode_reg (insn_data[icode].operand[opnum].mode, x);
+ }
+
return x;
}
@@ -4464,10 +4539,10 @@ expand_float (to, from, unsignedp)
wider mode. If the integer mode is wider than the mode of FROM,
we can do the conversion signed even if the input is unsigned. */
- for (imode = GET_MODE (from); imode != VOIDmode;
- imode = GET_MODE_WIDER_MODE (imode))
- for (fmode = GET_MODE (to); fmode != VOIDmode;
- fmode = GET_MODE_WIDER_MODE (fmode))
+ for (fmode = GET_MODE (to); fmode != VOIDmode;
+ fmode = GET_MODE_WIDER_MODE (fmode))
+ for (imode = GET_MODE (from); imode != VOIDmode;
+ imode = GET_MODE_WIDER_MODE (imode))
{
int doing_unsigned = unsignedp;
@@ -5424,9 +5499,8 @@ init_optabs ()
profile_function_exit_libfunc
= init_one_libfunc ("__cyg_profile_func_exit");
-#ifdef HAVE_conditional_trap
- init_traps ();
-#endif
+ if (HAVE_conditional_trap)
+ trap_rtx = gen_rtx_fmt_ee (EQ, VOIDmode, NULL_RTX, NULL_RTX);
#ifdef INIT_TARGET_OPTABS
/* Allow the target to add more libcalls or rename some, etc. */
@@ -5434,24 +5508,6 @@ init_optabs ()
#endif
}
-static GTY(()) rtx trap_rtx;
-
-#ifdef HAVE_conditional_trap
-/* The insn generating function can not take an rtx_code argument.
- TRAP_RTX is used as an rtx argument. Its code is replaced with
- the code to be used in the trap insn and all other fields are
- ignored. */
-
-static void
-init_traps ()
-{
- if (HAVE_conditional_trap)
- {
- trap_rtx = gen_rtx_fmt_ee (EQ, VOIDmode, NULL_RTX, NULL_RTX);
- }
-}
-#endif
-
/* Generate insns to trap with code TCODE if OP1 and OP2 satisfy condition
CODE. Return 0 on failure. */
@@ -5461,30 +5517,39 @@ gen_cond_trap (code, op1, op2, tcode)
rtx op1, op2 ATTRIBUTE_UNUSED, tcode ATTRIBUTE_UNUSED;
{
enum machine_mode mode = GET_MODE (op1);
+ enum insn_code icode;
+ rtx insn;
+
+ if (!HAVE_conditional_trap)
+ return 0;
if (mode == VOIDmode)
return 0;
-#ifdef HAVE_conditional_trap
- if (HAVE_conditional_trap
- && cmp_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing)
+ icode = cmp_optab->handlers[(int) mode].insn_code;
+ if (icode == CODE_FOR_nothing)
+ return 0;
+
+ start_sequence ();
+ op1 = prepare_operand (icode, op1, 0, mode, mode, 0);
+ op2 = prepare_operand (icode, op2, 1, mode, mode, 0);
+ if (!op1 || !op2)
{
- rtx insn;
- start_sequence ();
- emit_insn (GEN_FCN (cmp_optab->handlers[(int) mode].insn_code) (op1, op2));
- PUT_CODE (trap_rtx, code);
- insn = gen_conditional_trap (trap_rtx, tcode);
- if (insn)
- {
- emit_insn (insn);
- insn = get_insns ();
- }
end_sequence ();
- return insn;
+ return 0;
}
-#endif
+ emit_insn (GEN_FCN (icode) (op1, op2));
- return 0;
+ PUT_CODE (trap_rtx, code);
+ insn = gen_conditional_trap (trap_rtx, tcode);
+ if (insn)
+ {
+ emit_insn (insn);
+ insn = get_insns ();
+ }
+ end_sequence ();
+
+ return insn;
}
#include "gt-optabs.h"
diff --git a/gcc/params.def b/gcc/params.def
index d961189b3a5..977d7407b7c 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -50,10 +50,22 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
gets decreased. */
DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
"max-inline-insns-single",
- "The maximum number of instructions in a single function eliglible for inlining",
+ "The maximum number of instructions in a single function eligible for inlining",
300)
-/* The repeated inlining limit. After this number of instructions
+/* The single function inlining limit for functions that are
+ inlined by virtue of -finline-functions (-O3).
+ This limit should be chosen to be below or equal to the limit
+ that is applied to functions marked inlined (or defined in the
+ class declaration in C++) given by the "max-inline-insns-single"
+ parameter.
+ The default value is 300. */
+DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO,
+ "max-inline-insns-auto",
+ "The maximum number of instructions when automatically inlining",
+ 300)
+
+/* The repeated inlining limit. After this number of instructions
(in the internal gcc representation, not real machine instructions)
got inlined by repeated inlining, gcc starts to decrease the maximum
number of inlinable instructions in the tree inliner.
@@ -62,16 +74,14 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
could otherwise become very high.
It is recommended to set this value to twice the value of the single
function limit (set by the "max-inline-insns-single" parameter) or
- higher. The default value is 600.
+ higher. The default value is 600.
Higher values mean that more inlining is done, resulting in
better performance of the code, at the expense of higher
compile-time resource (time, memory) requirements and larger
- binaries.
- This parameters also controls the maximum size of functions considered
- for inlining in the RTL inliner. */
+ binaries. */
DEFPARAM (PARAM_MAX_INLINE_INSNS,
"max-inline-insns",
- "The maximuem number of instructions by repeated inlining before gcc starts to throttle inlining",
+ "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining",
600)
/* After the repeated inline limit has been exceeded (see
@@ -79,20 +89,20 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS,
decrease the size of single functions eligible for inlining.
The slope of this linear function is given the negative
reciprocal value (-1/x) of this parameter.
- The default vlue is 32.
+ The default value is 32.
This linear function is used until it falls below a minimum
value specified by the "min-inline-insns" parameter. */
DEFPARAM (PARAM_MAX_INLINE_SLOPE,
"max-inline-slope",
- "The slope of the linear funtion throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter",
+ "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter",
32)
/* When gcc has inlined so many instructions (by repeated
inlining) that the throttling limits the inlining very much,
inlining for very small functions is still desirable to
- achieve good runtime performance. The size of single functions
+ achieve good runtime performance. The size of single functions
(measured in gcc instructions) which will still be eligible for
- inlining then is given by this parameter. It defaults to 130.
+ inlining then is given by this parameter. It defaults to 130.
Only much later (after exceeding 128 times the recursive limit)
inlining is cut down completely. */
DEFPARAM (PARAM_MIN_INLINE_INSNS,
@@ -100,6 +110,16 @@ DEFPARAM (PARAM_MIN_INLINE_INSNS,
"The number of instructions in a single functions still eligible to inlining after a lot recursive inlining",
130)
+/* For languages that (still) use the RTL inliner, we can specify
+ limits for the RTL inliner separately.
+ The parameter here defines the maximum number of RTL instructions
+ a function may have to be eligible for inlining in the RTL inliner.
+ The default value is 600. */
+DEFPARAM (PARAM_MAX_INLINE_INSNS_RTL,
+ "max-inline-insns-rtl",
+ "The maximum number of instructions for the RTL inliner",
+ 600)
+
/* The maximum number of instructions to consider when looking for an
instruction to fill a delay slot. If more than this arbitrary
number of instructions is searched, the time savings from filling
@@ -191,6 +211,12 @@ DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY,
this threshold (in percents). Used when profile feedback is not available",
50)
+/* The maximum number of incoming edges to consider for crossjumping. */
+DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES,
+ "max-crossjump-edges",
+ "The maximum number of incoming edges to consider for crossjumping",
+ 100)
+
#ifdef ENABLE_GC_ALWAYS_COLLECT
# define GGC_MIN_EXPAND_DEFAULT 0
# define GGC_MIN_HEAPSIZE_DEFAULT 0
diff --git a/gcc/params.h b/gcc/params.h
index 27021aa7c7d..caddf853da5 100644
--- a/gcc/params.h
+++ b/gcc/params.h
@@ -92,6 +92,10 @@ typedef enum compiler_param
PARAM_VALUE (PARAM_MAX_INLINE_SLOPE)
#define MIN_INLINE_INSNS \
PARAM_VALUE (PARAM_MIN_INLINE_INSNS)
+#define MAX_INLINE_INSNS_AUTO \
+ PARAM_VALUE (PARAM_MAX_INLINE_INSNS_AUTO)
+#define MAX_INLINE_INSNS_RTL \
+ PARAM_VALUE (PARAM_MAX_INLINE_INSNS_RTL)
#define MAX_DELAY_SLOT_INSN_SEARCH \
PARAM_VALUE (PARAM_MAX_DELAY_SLOT_INSN_SEARCH)
#define MAX_DELAY_SLOT_LIVE_SEARCH \
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 9c901b49cc0..004ba53b563 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,110 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-05-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * rw.po: New file.
+ * gcc.pot: Regenerate.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * ca.po: New file.
+
+2004-02-04 Matthias Klose <doko@debian.org>
+
+ * de.po: Update.
+
+2004-01-25 Matthias Klose <doko@debian.org>
+
+ * de.po: Update.
+
+2004-01-24 Matthias Klose <doko@debian.org>
+
+ * gcc.pot: Regenerated.
+ * be.po: Update to latest version.
+ * da.po: Likewise.
+ * de.po: Likewise.
+ * el.po: Likewise.
+ * es.po: Likewise.
+ * fr.po: Likewise.
+ * ja.po: Likewise.
+ * nl.po: Likewise.
+ * sv.po: Likewise.
+ * tr.po: Likewise.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.pot: Regenerated.
+ * be.po: Update to latest version.
+ * el.po: Likewise.
+ * es.po: Likewise.
+ * fr.po: Likewise.
+ * ja.po: Likewise.
+ * nl.po: Likewise.
+ * sv.po: Likewise.
+
+2003-06-03 Philipp Thomas <pthomas@suse.de>
+
+ * da.po: Update to latest version.
+ * es.po: Likewise.
+ * tr.po: Likewise.
+ * de.po: Likewise.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-12 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.pot: Regenerate.
+
+ * da.po: Update to latest version.
+ * es.po: Likewise.
+ * fr.po: Likewise.
+ * tr.po: Likewise.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * be.po, de.po: New files.
+ * da.po, el.po, es.po, fr.po, ja.po, nl.po, sv.po, tr.po: Update.
+
+2002-12-30 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcc.pot: Regenerate.
+
2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* exgettext: Allow for PWDCMD to override hardcoded pwd.
diff --git a/gcc/po/be.po b/gcc/po/be.po
new file mode 100644
index 00000000000..8580023f09c
--- /dev/null
+++ b/gcc/po/be.po
@@ -0,0 +1,21041 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.1\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2002-05-17 15:54+0200\n"
+"Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n"
+"Language-Team: Belarusian <i18n@tut.by>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: attribs.c:185
+#, c-format
+msgid "`%s' attribute directive ignored"
+msgstr ""
+
+#: attribs.c:193
+#, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ¾Ð²Ð°Ñ ÐºÐ¾Ð»ÑŒÐºÐ°Ñьць аргументаў, зададзеных Ð´Ð»Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ð° `%s'"
+
+#: attribs.c:210
+#, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr ""
+
+#: attribs.c:247
+#, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr ""
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, c-format
+msgid "`%s' attribute ignored"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#: builtins.c:285
+msgid "offset outside bounds of constant string"
+msgstr ""
+
+#: builtins.c:765
+#, fuzzy
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: builtins.c:772
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr ""
+
+#: builtins.c:779
+#, fuzzy
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: builtins.c:786
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr ""
+
+#. ??? We used to try and build up a call to the out of line function,
+#. guessing about what registers needed saving etc. This became much
+#. harder with __builtin_va_start, since we don't have a tree for a
+#. call to __builtin_saveregs to fall back on. There was exactly one
+#. port (i860) that used this code, and I'm unconvinced it could actually
+#. handle the general case. So we no longer try to handle anything
+#. weird and make the backend absorb the evil.
+#: builtins.c:2875
+msgid "__builtin_saveregs not supported by this target"
+msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
+
+#: builtins.c:2917
+msgid "argument of `__builtin_args_info' must be constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: builtins.c:2923
+msgid "argument of `__builtin_args_info' out of range"
+msgstr "аргумент `__builtin_args_info' выйшаў за межы"
+
+#: builtins.c:2929
+msgid "missing argument in `__builtin_args_info'"
+msgstr "прапушчан аргумент у `__builtin_args_info'"
+
+#: builtins.c:2960
+msgid "`va_start' used in function with fixed args"
+msgstr ""
+"`va_start' выкарыÑтоўвываецца Ñž функцыі з нÑзьменнай\n"
+" колькаÑьцю аргументаў"
+
+#: builtins.c:2979
+msgid "second parameter of `va_start' not last named argument"
+msgstr ""
+
+#. Evidently an out of date version of <stdarg.h>; can't validate
+#. va_start's second argument, but can still work as intended.
+#: builtins.c:2984
+msgid "`__builtin_next_arg' called without an argument"
+msgstr "\"__buitin_next_arg\" выклікаецца без аргумента"
+
+#: builtins.c:3070
+msgid "too many arguments to function `va_start'"
+msgstr ""
+
+#: builtins.c:3172
+msgid "first argument to `va_arg' not of type `va_list'"
+msgstr ""
+
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
+#, c-format
+msgid "`%s' is promoted to `%s' when passed through `...'"
+msgstr ""
+
+#: builtins.c:3209
+#, c-format
+msgid "(so you should pass `%s' not `%s' to `va_arg')"
+msgstr ""
+
+#: builtins.c:3340
+msgid "invalid arg to `__builtin_frame_address'"
+msgstr ""
+
+#: builtins.c:3342
+msgid "invalid arg to `__builtin_return_address'"
+msgstr ""
+
+#: builtins.c:3356
+msgid "unsupported arg to `__builtin_frame_address'"
+msgstr ""
+
+#: builtins.c:3358
+msgid "unsupported arg to `__builtin_return_address'"
+msgstr ""
+
+#: builtins.c:3530
+msgid "second arg to `__builtin_expect' must be a constant"
+msgstr ""
+
+#: builtins.c:4028
+msgid "__builtin_longjmp second argument must be 1"
+msgstr ""
+
+#. just do library call, if unknown builtin
+#: builtins.c:4092 c-common.c:4459
+#, c-format
+msgid "built-in function `%s' not currently supported"
+msgstr ""
+
+#: builtins.c:4165
+#, fuzzy
+msgid "target format does not support infinity"
+msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
+
+#: c-common.c:1168
+#, c-format
+msgid "`%s' is not defined outside of function scope"
+msgstr ""
+
+#: c-common.c:1189
+#, c-format
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr ""
+
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr ""
+
+#: c-common.c:1343
+msgid "overflow in constant expression"
+msgstr ""
+
+#: c-common.c:1364
+msgid "integer overflow in expression"
+msgstr ""
+
+#: c-common.c:1373
+msgid "floating point overflow in expression"
+msgstr ""
+
+#: c-common.c:1379
+msgid "vector overflow in expression"
+msgstr ""
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:1402
+msgid "large integer implicitly truncated to unsigned type"
+msgstr ""
+
+#: c-common.c:1404
+msgid "negative integer implicitly converted to unsigned type"
+msgstr ""
+
+#: c-common.c:1452
+msgid "overflow in implicit constant conversion"
+msgstr ""
+
+#: c-common.c:1600
+#, c-format
+msgid "operation on `%s' may be undefined"
+msgstr ""
+
+#: c-common.c:1891
+msgid "expression statement has incomplete type"
+msgstr ""
+
+#: c-common.c:1924
+msgid "case label does not reduce to an integer constant"
+msgstr ""
+
+#: c-common.c:2228
+msgid "invalid truth-value expression"
+msgstr ""
+
+#: c-common.c:2279
+#, c-format
+msgid "invalid operands to binary %s"
+msgstr ""
+
+#: c-common.c:2513
+msgid "comparison is always false due to limited range of data type"
+msgstr ""
+
+#: c-common.c:2515
+msgid "comparison is always true due to limited range of data type"
+msgstr ""
+
+#: c-common.c:2585
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr ""
+
+#: c-common.c:2594
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr ""
+
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr ""
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr ""
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr ""
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr ""
+
+#: c-common.c:2746 f/com.c:14762
+msgid "struct type value used where scalar is required"
+msgstr ""
+
+#: c-common.c:2750 f/com.c:14766
+msgid "union type value used where scalar is required"
+msgstr ""
+
+#: c-common.c:2754 f/com.c:14770
+msgid "array type value used where scalar is required"
+msgstr ""
+
+#: c-common.c:2874 f/com.c:14903
+msgid "suggest parentheses around assignment used as truth value"
+msgstr ""
+
+#: c-common.c:2918 c-common.c:2950
+msgid "invalid use of `restrict'"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: c-common.c:3064
+#, fuzzy
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: c-common.c:3074
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: c-common.c:3080
+#, fuzzy, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: c-common.c:3121
+msgid "`__alignof' applied to a bit-field"
+msgstr ""
+
+#: c-common.c:3618
+#, fuzzy, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: c-common.c:3787 c-typeck.c:1748
+#, c-format
+msgid "too few arguments to function `%s'"
+msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#: c-common.c:3793 c-typeck.c:1601
+#, c-format
+msgid "too many arguments to function `%s'"
+msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
+
+#: c-common.c:3812
+#, fuzzy, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
+
+#: c-common.c:4081
+msgid "pointers are not permitted as case values"
+msgstr ""
+
+#: c-common.c:4087
+msgid "ISO C++ forbids range expressions in switch statements"
+msgstr ""
+
+#: c-common.c:4089
+msgid "ISO C forbids range expressions in switch statements"
+msgstr ""
+
+#: c-common.c:4119
+msgid "empty range specified"
+msgstr ""
+
+#: c-common.c:4170
+msgid "duplicate (or overlapping) case value"
+msgstr ""
+
+#: c-common.c:4172
+msgid "this is the first entry overlapping that value"
+msgstr ""
+
+#: c-common.c:4176
+msgid "duplicate case value"
+msgstr ""
+
+#: c-common.c:4177
+msgid "previously used here"
+msgstr ""
+
+#: c-common.c:4181
+msgid "multiple default labels in one switch"
+msgstr ""
+
+#: c-common.c:4182
+msgid "this is the first default label"
+msgstr ""
+
+#: c-common.c:4210
+#, fuzzy
+msgid "ISO C++ forbids taking the address of a label"
+msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
+
+#: c-common.c:4212
+#, fuzzy
+msgid "ISO C forbids taking the address of a label"
+msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
+
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr ""
+
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "нÑма тыпа дадзеных Ð´Ð»Ñ Ñ€Ñжыма \"%s\""
+
+#: c-common.c:5666 c-common.c:6316
+#, fuzzy, c-format
+msgid "unable to emulate '%s'"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr ""
+
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr ""
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr ""
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr ""
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr ""
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr ""
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr ""
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr ""
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr ""
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr ""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr ""
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr ""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr ""
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr ""
+
+#: c-common.c:6114
+msgid "cleanup arg not an identifier"
+msgstr ""
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
+
+#: c-common.c:6183
+#, fuzzy, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr ""
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr ""
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr ""
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr ""
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr ""
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr ""
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr ""
+
+#: c-decl.c:340
+#, c-format
+msgid "array `%s' assumed to have one element"
+msgstr ""
+
+#: c-decl.c:526
+#, c-format
+msgid "`struct %s' incomplete in scope ending here"
+msgstr ""
+
+#: c-decl.c:529
+#, c-format
+msgid "`union %s' incomplete in scope ending here"
+msgstr ""
+
+#: c-decl.c:532
+#, c-format
+msgid "`enum %s' incomplete in scope ending here"
+msgstr ""
+
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
+#, c-format
+msgid "label `%s' used but not defined"
+msgstr "адмеціна `%s' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
+
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
+#, c-format
+msgid "label `%s' defined but not used"
+msgstr "адмеціна `%s' вызначана, але Ð½Ñ Ð²Ñ‹ÐºÐ°Ñ€Ñ‹Ñтоўваецца"
+
+#: c-decl.c:893 cp/decl.c:3335
+#, c-format
+msgid "function `%s' redeclared as inline"
+msgstr ""
+
+#: c-decl.c:895 cp/decl.c:3337
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:902 cp/decl.c:3344
+#, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr ""
+
+#: c-decl.c:904 cp/decl.c:3346
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:933 c-decl.c:979
+#, c-format
+msgid "shadowing built-in function `%s'"
+msgstr ""
+
+#: c-decl.c:935
+#, c-format
+msgid "shadowing library function `%s'"
+msgstr ""
+
+#: c-decl.c:941
+#, c-format
+msgid "library function `%s' declared as non-function"
+msgstr ""
+
+#: c-decl.c:945 c-decl.c:948
+#, c-format
+msgid "built-in function `%s' declared as non-function"
+msgstr ""
+
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
+#, c-format
+msgid "`%s' redeclared as different kind of symbol"
+msgstr ""
+
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
+#, c-format
+msgid "previous declaration of `%s'"
+msgstr ""
+
+#. If types don't match for a built-in, throw away the built-in.
+#: c-decl.c:1048
+#, c-format
+msgid "conflicting types for built-in function `%s'"
+msgstr ""
+
+#: c-decl.c:1091 c-decl.c:1110
+#, c-format
+msgid "conflicting types for `%s'"
+msgstr ""
+
+#: c-decl.c:1133
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr ""
+
+#: c-decl.c:1139
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr ""
+
+#: c-decl.c:1157
+#, fuzzy, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: c-decl.c:1164
+#, fuzzy, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: c-decl.c:1175 c-decl.c:1198
+#, c-format
+msgid "redefinition of `%s'"
+msgstr ""
+
+#: c-decl.c:1178
+#, c-format
+msgid "redeclaration of `%s'"
+msgstr ""
+
+#: c-decl.c:1181
+#, c-format
+msgid "conflicting declarations of `%s'"
+msgstr ""
+
+#: c-decl.c:1225
+#, c-format
+msgid "prototype for `%s' follows"
+msgstr ""
+
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
+msgid "non-prototype definition here"
+msgstr ""
+
+#: c-decl.c:1233
+#, c-format
+msgid "prototype for `%s' follows and number of arguments doesn't match"
+msgstr ""
+
+#: c-decl.c:1243
+#, c-format
+msgid "prototype for `%s' follows and argument %d doesn't match"
+msgstr ""
+
+#: c-decl.c:1261
+#, c-format
+msgid "`%s' declared inline after being called"
+msgstr ""
+
+#: c-decl.c:1267
+#, c-format
+msgid "`%s' declared inline after its definition"
+msgstr ""
+
+#: c-decl.c:1274
+#, c-format
+msgid "static declaration for `%s' follows non-static"
+msgstr ""
+
+#: c-decl.c:1282
+#, c-format
+msgid "non-static declaration for `%s' follows static"
+msgstr ""
+
+#: c-decl.c:1289
+#, c-format
+msgid "const declaration for `%s' follows non-const"
+msgstr ""
+
+#: c-decl.c:1296
+#, c-format
+msgid "type qualifiers for `%s' conflict with previous decl"
+msgstr ""
+
+#: c-decl.c:1309
+#, c-format
+msgid "redundant redeclaration of `%s' in same scope"
+msgstr ""
+
+#: c-decl.c:1619 java/decl.c:1102
+#, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr ""
+
+#: c-decl.c:1622 java/decl.c:1105
+#, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr ""
+
+#: c-decl.c:1643 cp/decl.c:4479
+#, fuzzy
+msgid "a parameter"
+msgstr "невыкарыÑтаемы параметр \"%s\""
+
+#: c-decl.c:1645 cp/decl.c:4496
+msgid "a previous local"
+msgstr ""
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+#, fuzzy
+msgid "a global declaration"
+msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
+
+#: c-decl.c:1693
+#, c-format
+msgid "nested extern declaration of `%s'"
+msgstr ""
+
+#: c-decl.c:1712 java/decl.c:1055
+#, c-format
+msgid "`%s' used prior to declaration"
+msgstr ""
+
+#: c-decl.c:1726 c-decl.c:1901
+#, c-format
+msgid "`%s' was declared implicitly `extern' and later `static'"
+msgstr ""
+
+#: c-decl.c:1829 cp/decl.c:4336
+msgid "type mismatch with previous external decl"
+msgstr ""
+
+#: c-decl.c:1830
+#, c-format
+msgid "previous external decl of `%s'"
+msgstr ""
+
+#: c-decl.c:1843
+msgid "type mismatch with previous implicit declaration"
+msgstr ""
+
+#: c-decl.c:1845
+#, c-format
+msgid "previous implicit declaration of `%s'"
+msgstr ""
+
+#: c-decl.c:1880
+#, c-format
+msgid "`%s' was previously implicitly declared to return `int'"
+msgstr ""
+
+#: c-decl.c:1905
+#, c-format
+msgid "`%s' was declared `extern' and later `static'"
+msgstr ""
+
+#: c-decl.c:1929
+#, c-format
+msgid "extern declaration of `%s' doesn't match global one"
+msgstr ""
+
+#: c-decl.c:1971
+#, c-format
+msgid "`%s' locally external but globally static"
+msgstr ""
+
+#: c-decl.c:2095
+#, c-format
+msgid "function `%s' was previously declared within a block"
+msgstr ""
+
+#: c-decl.c:2115 c-decl.c:2117
+#, c-format
+msgid "implicit declaration of function `%s'"
+msgstr ""
+
+#: c-decl.c:2196
+#, c-format
+msgid "label %s referenced outside of any function"
+msgstr ""
+
+#: c-decl.c:2253
+#, c-format
+msgid "duplicate label declaration `%s'"
+msgstr "паўторнае абвÑшчÑньне адмеціны `%s'"
+
+#: c-decl.c:2256
+msgid "this is a previous declaration"
+msgstr "гÑта папÑÑ€ÑднÑе абвÑшчÑньне"
+
+#: c-decl.c:2679
+msgid "unnamed struct/union that defines no instances"
+msgstr ""
+
+#: c-decl.c:2698
+msgid "useless keyword or type name in empty declaration"
+msgstr ""
+
+#: c-decl.c:2705
+msgid "two types specified in one empty declaration"
+msgstr ""
+
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
+msgid "empty declaration"
+msgstr "пуÑтое абвÑшчÑньне"
+
+#: c-decl.c:2740
+#, fuzzy
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C89 не падтрымлівае \"long long\""
+
+#: c-decl.c:2742
+#, fuzzy
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C89 не падтрымлівае \"long long\""
+
+#: c-decl.c:2745
+msgid "GCC does not yet properly implement `[*]' array declarators"
+msgstr ""
+
+#: c-decl.c:2764
+msgid "static or type qualifiers in abstract declarator"
+msgstr ""
+
+#: c-decl.c:2838
+#, c-format
+msgid "`%s' is usually a function"
+msgstr "`%s' - звычайна функцыÑ"
+
+#: c-decl.c:2847
+#, fuzzy, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: c-decl.c:2853
+#, c-format
+msgid "function `%s' is initialized like a variable"
+msgstr ""
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:2860
+#, c-format
+msgid "parameter `%s' is initialized"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: c-decl.c:2880 c-typeck.c:4895
+msgid "variable-sized object may not be initialized"
+msgstr ""
+
+#: c-decl.c:2886
+#, c-format
+msgid "variable `%s' has initializer but incomplete type"
+msgstr ""
+
+#: c-decl.c:2892
+#, c-format
+msgid "elements of array `%s' have incomplete type"
+msgstr ""
+
+#: c-decl.c:2905
+#, c-format
+msgid "declaration of `%s' has `extern' and is initialized"
+msgstr ""
+
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr ""
+
+#: c-decl.c:3028
+#, c-format
+msgid "initializer fails to determine size of `%s'"
+msgstr ""
+
+#: c-decl.c:3033
+#, c-format
+msgid "array size missing in `%s'"
+msgstr ""
+
+#: c-decl.c:3049
+#, c-format
+msgid "zero or negative size array `%s'"
+msgstr ""
+
+#: c-decl.c:3077
+#, c-format
+msgid "storage size of `%s' isn't known"
+msgstr ""
+
+#: c-decl.c:3087
+#, c-format
+msgid "storage size of `%s' isn't constant"
+msgstr ""
+
+#: c-decl.c:3147
+#, c-format
+msgid "ignoring asm-specifier for non-static local variable `%s'"
+msgstr ""
+
+#: c-decl.c:3247
+#, c-format
+msgid "ISO C forbids parameter `%s' shadowing typedef"
+msgstr ""
+
+#: c-decl.c:3592 cp/decl.c:10880
+msgid "`long long long' is too long for GCC"
+msgstr "`long long long' - вельмі доўга Ð´Ð»Ñ GCC"
+
+#: c-decl.c:3597
+#, fuzzy
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO C89 не падтрымлівае `long long'"
+
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
+#, c-format
+msgid "duplicate `%s'"
+msgstr "паўтарÑньне `%s'"
+
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr ""
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr ""
+
+#: c-decl.c:3629 cp/decl.c:10921
+#, c-format
+msgid "two or more data types in declaration of `%s'"
+msgstr ""
+
+#: c-decl.c:3649 cp/decl.c:10926
+#, c-format
+msgid "`%s' fails to be a typedef or built in type"
+msgstr ""
+
+#: c-decl.c:3688
+#, c-format
+msgid "type defaults to `int' in declaration of `%s'"
+msgstr ""
+
+#: c-decl.c:3717
+#, c-format
+msgid "both long and short specified for `%s'"
+msgstr ""
+
+#: c-decl.c:3721 cp/decl.c:11041
+#, c-format
+msgid "long or short specified with char for `%s'"
+msgstr ""
+
+#: c-decl.c:3728 cp/decl.c:11045
+#, c-format
+msgid "long or short specified with floating type for `%s'"
+msgstr ""
+
+#: c-decl.c:3731
+msgid "the only valid combination is `long double'"
+msgstr ""
+
+#: c-decl.c:3737
+#, c-format
+msgid "both signed and unsigned specified for `%s'"
+msgstr ""
+
+#: c-decl.c:3739 cp/decl.c:11034
+#, c-format
+msgid "long, short, signed or unsigned invalid for `%s'"
+msgstr "long, short, signed ці unsigned нерÑчаіÑны Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:3745 cp/decl.c:11054
+#, c-format
+msgid "long, short, signed or unsigned used invalidly for `%s'"
+msgstr ""
+
+#: c-decl.c:3763 cp/decl.c:11075
+#, c-format
+msgid "complex invalid for `%s'"
+msgstr "complex нерÑчаіÑны Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
+
+#: c-decl.c:3817
+msgid "ISO C does not support plain `complex' meaning `double complex'"
+msgstr "ISO C не падтрымлівае проÑÑ‚Ñ‹ \"complex\" у значÑнні \"double complex\""
+
+#: c-decl.c:3823 c-decl.c:3835
+msgid "ISO C does not support complex integer types"
+msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
+
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
+msgid "duplicate `const'"
+msgstr "паўтарÑнне \"const\""
+
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
+msgid "duplicate `restrict'"
+msgstr "паўтарÑнне \"restrict\""
+
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
+msgid "duplicate `volatile'"
+msgstr "паўтарÑнне \"volatile\""
+
+#: c-decl.c:3882 cp/decl.c:11238
+#, c-format
+msgid "multiple storage classes in declaration of `%s'"
+msgstr ""
+
+#: c-decl.c:3892
+msgid "function definition declared `auto'"
+msgstr ""
+
+#: c-decl.c:3894
+msgid "function definition declared `register'"
+msgstr ""
+
+#: c-decl.c:3896
+msgid "function definition declared `typedef'"
+msgstr ""
+
+#: c-decl.c:3898
+#, fuzzy
+msgid "function definition declared `__thread'"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#: c-decl.c:3911
+#, c-format
+msgid "storage class specified for structure field `%s'"
+msgstr ""
+
+#: c-decl.c:3915 cp/decl.c:11285
+#, c-format
+msgid "storage class specified for parameter `%s'"
+msgstr ""
+
+#: c-decl.c:3918 cp/decl.c:11287
+msgid "storage class specified for typename"
+msgstr ""
+
+#: c-decl.c:3930 cp/decl.c:11302
+#, c-format
+msgid "`%s' initialized and declared `extern'"
+msgstr ""
+
+#: c-decl.c:3932 cp/decl.c:11305
+#, c-format
+msgid "`%s' has both `extern' and initializer"
+msgstr ""
+
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr ""
+
+#: c-decl.c:3942 cp/decl.c:11309
+#, c-format
+msgid "nested function `%s' declared `extern'"
+msgstr ""
+
+#: c-decl.c:3948 cp/decl.c:11319
+#, fuzzy, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:3987 c-decl.c:4188
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr ""
+
+#: c-decl.c:4031
+#, c-format
+msgid "declaration of `%s' as array of voids"
+msgstr ""
+
+#: c-decl.c:4037
+#, c-format
+msgid "declaration of `%s' as array of functions"
+msgstr ""
+
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: c-decl.c:4061
+#, c-format
+msgid "size of array `%s' has non-integer type"
+msgstr ""
+
+#: c-decl.c:4066
+#, c-format
+msgid "ISO C forbids zero-size array `%s'"
+msgstr ""
+
+#: c-decl.c:4073
+#, c-format
+msgid "size of array `%s' is negative"
+msgstr "памер маÑіва \"%s\" адмоўны"
+
+#: c-decl.c:4086
+#, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr ""
+
+#: c-decl.c:4089
+#, fuzzy, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
+#, c-format
+msgid "size of array `%s' is too large"
+msgstr "памер маÑіва \"%s\" вельмі вÑлікі"
+
+#: c-decl.c:4145
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C89 не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
+
+#: c-decl.c:4155
+msgid "array type has incomplete element type"
+msgstr ""
+
+#: c-decl.c:4162 c-decl.c:4392
+msgid "ISO C forbids const or volatile function types"
+msgstr ""
+
+#: c-decl.c:4208 cp/decl.c:11445
+#, c-format
+msgid "`%s' declared as function returning a function"
+msgstr ""
+
+#: c-decl.c:4213 cp/decl.c:11450
+#, c-format
+msgid "`%s' declared as function returning an array"
+msgstr ""
+
+#: c-decl.c:4241
+msgid "ISO C forbids qualified void function return type"
+msgstr ""
+
+#: c-decl.c:4245
+msgid "type qualifiers ignored on function return type"
+msgstr ""
+
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
+msgid "ISO C forbids qualified function types"
+msgstr ""
+
+#: c-decl.c:4314 cp/decl.c:11684
+msgid "invalid type modifier within pointer declarator"
+msgstr ""
+
+#: c-decl.c:4412 cp/decl.c:12182
+#, c-format
+msgid "variable or field `%s' declared void"
+msgstr ""
+
+#: c-decl.c:4445
+msgid "attributes in parameter array declarator ignored"
+msgstr ""
+
+#: c-decl.c:4470
+msgid "invalid type modifier within array declarator"
+msgstr ""
+
+#: c-decl.c:4515
+#, c-format
+msgid "field `%s' declared as a function"
+msgstr ""
+
+#: c-decl.c:4521
+#, c-format
+msgid "field `%s' has incomplete type"
+msgstr ""
+
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
+#, c-format
+msgid "invalid storage class for function `%s'"
+msgstr ""
+
+#: c-decl.c:4579
+msgid "`noreturn' function returns non-void value"
+msgstr ""
+
+#: c-decl.c:4594
+msgid "cannot inline function `main'"
+msgstr ""
+
+#: c-decl.c:4649
+#, c-format
+msgid "variable `%s' declared `inline'"
+msgstr ""
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: c-decl.c:4732 c-decl.c:5880
+msgid "function declaration isn't a prototype"
+msgstr ""
+
+#: c-decl.c:4738
+msgid "parameter names (without types) in function declaration"
+msgstr ""
+
+#: c-decl.c:4770 c-decl.c:6250
+#, c-format
+msgid "parameter `%s' has incomplete type"
+msgstr ""
+
+#: c-decl.c:4773
+msgid "parameter has incomplete type"
+msgstr ""
+
+#: c-decl.c:4794
+#, c-format
+msgid "parameter `%s' points to incomplete type"
+msgstr ""
+
+#: c-decl.c:4797
+msgid "parameter points to incomplete type"
+msgstr ""
+
+#: c-decl.c:4862
+#, c-format
+msgid "parameter `%s' has just a forward declaration"
+msgstr ""
+
+#: c-decl.c:4903
+msgid "`void' in parameter list must be the entire list"
+msgstr ""
+
+#: c-decl.c:4934
+#, c-format
+msgid "`struct %s' declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4937
+#, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4940
+#, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4947
+msgid "anonymous struct declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4949
+msgid "anonymous union declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4951
+msgid "anonymous enum declared inside parameter list"
+msgstr ""
+
+#: c-decl.c:4955
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr ""
+
+#: c-decl.c:5032
+#, c-format
+msgid "redefinition of `union %s'"
+msgstr ""
+
+#: c-decl.c:5034
+#, fuzzy, c-format
+msgid "redefinition of `struct %s'"
+msgstr "перанакіраванне stdout: %s"
+
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr ""
+
+#: c-decl.c:5169 c-decl.c:5172
+#, c-format
+msgid "%s defined inside parms"
+msgstr ""
+
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
+msgid "union"
+msgstr "аб'Ñднанне"
+
+#: c-decl.c:5170 c-decl.c:5173
+msgid "structure"
+msgstr "Ñтруктура"
+
+#: c-decl.c:5183
+#, c-format
+msgid "%s has no %s"
+msgstr ""
+
+#: c-decl.c:5184
+msgid "struct"
+msgstr "Ñтруктура"
+
+#: c-decl.c:5185
+msgid "named members"
+msgstr ""
+
+#: c-decl.c:5185
+msgid "members"
+msgstr "члены"
+
+#: c-decl.c:5224
+#, c-format
+msgid "nested redefinition of `%s'"
+msgstr ""
+
+#: c-decl.c:5237
+#, c-format
+msgid "bit-field `%s' width not an integer constant"
+msgstr ""
+
+#: c-decl.c:5248
+#, c-format
+msgid "bit-field `%s' has invalid type"
+msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
+
+#: c-decl.c:5260
+#, c-format
+msgid "bit-field `%s' type invalid in ISO C"
+msgstr ""
+
+#: c-decl.c:5271
+#, c-format
+msgid "negative width in bit-field `%s'"
+msgstr ""
+
+#: c-decl.c:5273
+#, c-format
+msgid "width of `%s' exceeds its type"
+msgstr ""
+
+#: c-decl.c:5275
+#, c-format
+msgid "zero width for bit-field `%s'"
+msgstr ""
+
+#: c-decl.c:5289
+#, c-format
+msgid "`%s' is narrower than values of its type"
+msgstr ""
+
+#: c-decl.c:5323
+msgid "flexible array member in union"
+msgstr ""
+
+#: c-decl.c:5325
+msgid "flexible array member not at end of struct"
+msgstr ""
+
+#: c-decl.c:5327
+msgid "flexible array member in otherwise empty struct"
+msgstr ""
+
+#: c-decl.c:5357
+#, c-format
+msgid "duplicate member `%s'"
+msgstr ""
+
+#: c-decl.c:5448
+msgid "union cannot be made transparent"
+msgstr ""
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5558
+#, c-format
+msgid "redeclaration of `enum %s'"
+msgstr ""
+
+#: c-decl.c:5592
+msgid "enum defined inside parms"
+msgstr ""
+
+#: c-decl.c:5625
+msgid "enumeration values exceed range of largest integer"
+msgstr ""
+
+#: c-decl.c:5734
+#, c-format
+msgid "enumerator value for `%s' not integer constant"
+msgstr ""
+
+#: c-decl.c:5747
+msgid "overflow in enumeration values"
+msgstr ""
+
+#: c-decl.c:5752
+msgid "ISO C restricts enumerator values to range of `int'"
+msgstr ""
+
+#: c-decl.c:5834
+msgid "return type is an incomplete type"
+msgstr ""
+
+#: c-decl.c:5842
+msgid "return type defaults to `int'"
+msgstr ""
+
+#: c-decl.c:5889
+#, c-format
+msgid "no previous prototype for `%s'"
+msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:5896
+#, c-format
+msgid "`%s' was used with no prototype before its definition"
+msgstr ""
+
+#: c-decl.c:5902
+#, c-format
+msgid "no previous declaration for `%s'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: c-decl.c:5909
+#, c-format
+msgid "`%s' was used with no declaration before its definition"
+msgstr ""
+
+#: c-decl.c:5933 c-decl.c:6486
+#, c-format
+msgid "return type of `%s' is not `int'"
+msgstr "вÑртаемы тып \"%s\" не \"int\""
+
+#: c-decl.c:5949
+#, c-format
+msgid "first argument of `%s' should be `int'"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: c-decl.c:5958
+#, c-format
+msgid "second argument of `%s' should be `char **'"
+msgstr "другім аргументам \"%s\" павінен быць \"char **\""
+
+#: c-decl.c:5967
+#, c-format
+msgid "third argument of `%s' should probably be `char **'"
+msgstr ""
+
+#: c-decl.c:5976
+#, c-format
+msgid "`%s' takes only zero or two arguments"
+msgstr ""
+
+#: c-decl.c:5979
+#, c-format
+msgid "`%s' is normally a non-static function"
+msgstr ""
+
+#: c-decl.c:6077
+msgid "parm types given both in parmlist and separately"
+msgstr ""
+
+#: c-decl.c:6098
+msgid "parameter name omitted"
+msgstr ""
+
+#: c-decl.c:6102 c-decl.c:6204
+#, c-format
+msgid "parameter `%s' declared void"
+msgstr ""
+
+#: c-decl.c:6178
+msgid "parameter name missing from parameter list"
+msgstr ""
+
+#: c-decl.c:6197
+#, c-format
+msgid "multiple parameters named `%s'"
+msgstr ""
+
+#: c-decl.c:6219 c-decl.c:6221
+#, c-format
+msgid "type of `%s' defaults to `int'"
+msgstr ""
+
+#: c-decl.c:6257
+#, c-format
+msgid "declaration for parameter `%s' but no such parameter"
+msgstr ""
+
+#: c-decl.c:6305
+msgid "number of arguments doesn't match prototype"
+msgstr ""
+
+#: c-decl.c:6335
+#, c-format
+msgid "promoted argument `%s' doesn't match prototype"
+msgstr ""
+
+#: c-decl.c:6345
+#, c-format
+msgid "argument `%s' doesn't match prototype"
+msgstr ""
+
+#: c-decl.c:6518 cp/decl.c:15049
+msgid "no return statement in function returning non-void"
+msgstr ""
+
+#: c-decl.c:6525
+msgid "this function may return with or without a value"
+msgstr ""
+
+#: c-decl.c:6729
+#, c-format
+msgid "size of return value of `%s' is %u bytes"
+msgstr "памер вÑртаемага значÑÐ½Ð½Ñ \"%s\" %u байт"
+
+#: c-decl.c:6733
+#, c-format
+msgid "size of return value of `%s' is larger than %d bytes"
+msgstr "памер вÑртаемага значÑÐ½Ð½Ñ \"%s\" больш чым %d байт"
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c-decl.c:6791
+msgid "`for' loop initial declaration used outside C99 mode"
+msgstr ""
+
+#: c-decl.c:6815
+#, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr ""
+
+#: c-decl.c:6818
+#, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr ""
+
+#: c-decl.c:6821
+#, c-format
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr ""
+
+#: c-decl.c:6829
+#, c-format
+msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+msgstr ""
+
+#: c-decl.c:6831
+#, c-format
+msgid "declaration of static variable `%s' in `for' loop initial declaration"
+msgstr ""
+
+#: c-decl.c:6833
+#, c-format
+msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+msgstr ""
+
+#: c-format.c:109 c-format.c:191
+msgid "format string arg not a string type"
+msgstr ""
+
+#: c-format.c:124
+msgid "args to be formatted is not '...'"
+msgstr ""
+
+#: c-format.c:133
+msgid "strftime formats cannot format arguments"
+msgstr ""
+
+#: c-format.c:168 c-format.c:270
+msgid "format string has invalid operand number"
+msgstr ""
+
+#: c-format.c:202
+msgid "function does not return string type"
+msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ Ð½Ðµ вÑртае тып string"
+
+#: c-format.c:233
+msgid "unrecognized format specifier"
+msgstr ""
+
+#: c-format.c:246
+#, c-format
+msgid "`%s' is an unrecognized format function type"
+msgstr ""
+
+#: c-format.c:280
+msgid "format string arg follows the args to be formatted"
+msgstr ""
+
+#: c-format.c:601
+msgid "` ' flag"
+msgstr ""
+
+#: c-format.c:601
+msgid "the ` ' printf flag"
+msgstr ""
+
+#: c-format.c:602 c-format.c:673
+msgid "`+' flag"
+msgstr ""
+
+#: c-format.c:602
+msgid "the `+' printf flag"
+msgstr ""
+
+#: c-format.c:603 c-format.c:649
+msgid "`#' flag"
+msgstr ""
+
+#: c-format.c:603
+msgid "the `#' printf flag"
+msgstr ""
+
+#: c-format.c:604 c-format.c:647
+msgid "`0' flag"
+msgstr "'0' флаг"
+
+#: c-format.c:604
+msgid "the `0' printf flag"
+msgstr ""
+
+#: c-format.c:605 c-format.c:646 c-format.c:676
+msgid "`-' flag"
+msgstr ""
+
+#: c-format.c:605
+msgid "the `-' printf flag"
+msgstr ""
+
+#: c-format.c:606 c-format.c:630
+msgid "`'' flag"
+msgstr ""
+
+#: c-format.c:606
+msgid "the `'' printf flag"
+msgstr ""
+
+#: c-format.c:607 c-format.c:631
+msgid "`I' flag"
+msgstr ""
+
+#: c-format.c:607
+msgid "the `I' printf flag"
+msgstr ""
+
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
+msgid "field width"
+msgstr ""
+
+#: c-format.c:608
+msgid "field width in printf format"
+msgstr ""
+
+#: c-format.c:609
+msgid "precision"
+msgstr ""
+
+#: c-format.c:609
+msgid "precision in printf format"
+msgstr ""
+
+#: c-format.c:610 c-format.c:629 c-format.c:680
+msgid "length modifier"
+msgstr ""
+
+#: c-format.c:610
+msgid "length modifier in printf format"
+msgstr ""
+
+#: c-format.c:626
+msgid "assignment suppression"
+msgstr ""
+
+#: c-format.c:626
+msgid "the assignment suppression scanf feature"
+msgstr ""
+
+#: c-format.c:627
+msgid "`a' flag"
+msgstr ""
+
+#: c-format.c:627
+msgid "the `a' scanf flag"
+msgstr ""
+
+#: c-format.c:628
+msgid "field width in scanf format"
+msgstr ""
+
+#: c-format.c:629
+msgid "length modifier in scanf format"
+msgstr ""
+
+#: c-format.c:630
+msgid "the `'' scanf flag"
+msgstr ""
+
+#: c-format.c:631
+msgid "the `I' scanf flag"
+msgstr ""
+
+#: c-format.c:645
+msgid "`_' flag"
+msgstr ""
+
+#: c-format.c:645
+msgid "the `_' strftime flag"
+msgstr ""
+
+#: c-format.c:646
+msgid "the `-' strftime flag"
+msgstr ""
+
+#: c-format.c:647
+msgid "the `0' strftime flag"
+msgstr ""
+
+#: c-format.c:648 c-format.c:672
+msgid "`^' flag"
+msgstr ""
+
+#: c-format.c:648
+msgid "the `^' strftime flag"
+msgstr ""
+
+#: c-format.c:649
+msgid "the `#' strftime flag"
+msgstr ""
+
+#: c-format.c:650
+msgid "field width in strftime format"
+msgstr ""
+
+#: c-format.c:651
+msgid "`E' modifier"
+msgstr ""
+
+#: c-format.c:651
+msgid "the `E' strftime modifier"
+msgstr ""
+
+#: c-format.c:652
+msgid "`O' modifier"
+msgstr "'O' мадыфікатар"
+
+#: c-format.c:652
+msgid "the `O' strftime modifier"
+msgstr ""
+
+#: c-format.c:653
+msgid "the `O' modifier"
+msgstr ""
+
+#: c-format.c:671
+msgid "fill character"
+msgstr ""
+
+#: c-format.c:671
+msgid "fill character in strfmon format"
+msgstr ""
+
+#: c-format.c:672
+msgid "the `^' strfmon flag"
+msgstr ""
+
+#: c-format.c:673
+msgid "the `+' strfmon flag"
+msgstr ""
+
+#: c-format.c:674
+msgid "`(' flag"
+msgstr ""
+
+#: c-format.c:674
+msgid "the `(' strfmon flag"
+msgstr ""
+
+#: c-format.c:675
+msgid "`!' flag"
+msgstr ""
+
+#: c-format.c:675
+msgid "the `!' strfmon flag"
+msgstr ""
+
+#: c-format.c:676
+msgid "the `-' strfmon flag"
+msgstr ""
+
+#: c-format.c:677
+msgid "field width in strfmon format"
+msgstr ""
+
+#: c-format.c:678
+msgid "left precision"
+msgstr ""
+
+#: c-format.c:678
+msgid "left precision in strfmon format"
+msgstr ""
+
+#: c-format.c:679
+msgid "right precision"
+msgstr ""
+
+#: c-format.c:679
+msgid "right precision in strfmon format"
+msgstr ""
+
+#: c-format.c:680
+msgid "length modifier in strfmon format"
+msgstr ""
+
+#: c-format.c:983
+#, c-format
+msgid "function might be possible candidate for `%s' format attribute"
+msgstr ""
+
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
+msgid "missing $ operand number in format"
+msgstr ""
+
+#: c-format.c:1138
+#, c-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr ""
+
+#: c-format.c:1145
+msgid "operand number out of range in format"
+msgstr ""
+
+#: c-format.c:1168
+#, c-format
+msgid "format argument %d used more than once in %s format"
+msgstr ""
+
+#: c-format.c:1218
+#, c-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr ""
+
+#: c-format.c:1322
+msgid "format not a string literal, format string not checked"
+msgstr ""
+
+#: c-format.c:1336
+msgid "format not a string literal and no format arguments"
+msgstr ""
+
+#: c-format.c:1338
+msgid "format not a string literal, argument types not checked"
+msgstr ""
+
+#: c-format.c:1351
+msgid "too many arguments for format"
+msgstr ""
+
+#: c-format.c:1354
+msgid "unused arguments in $-style format"
+msgstr ""
+
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr ""
+
+#: c-format.c:1361
+msgid "format is a wide character string"
+msgstr ""
+
+#: c-format.c:1364
+msgid "unterminated format string"
+msgstr ""
+
+#: c-format.c:1581
+msgid "embedded `\\0' in format"
+msgstr ""
+
+#: c-format.c:1596
+#, c-format
+msgid "spurious trailing `%%' in format"
+msgstr ""
+
+#: c-format.c:1635 c-format.c:1872
+#, c-format
+msgid "repeated %s in format"
+msgstr ""
+
+#: c-format.c:1648
+msgid "missing fill character at end of strfmon format"
+msgstr ""
+
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
+msgid "too few arguments for format"
+msgstr ""
+
+#: c-format.c:1728
+#, c-format
+msgid "zero width in %s format"
+msgstr ""
+
+#: c-format.c:1747
+#, c-format
+msgid "empty left precision in %s format"
+msgstr ""
+
+#: c-format.c:1801
+msgid "field precision"
+msgstr ""
+
+#: c-format.c:1816
+#, c-format
+msgid "empty precision in %s format"
+msgstr ""
+
+#: c-format.c:1856
+#, c-format
+msgid "%s does not support the `%s' %s length modifier"
+msgstr ""
+
+#: c-format.c:1906
+msgid "conversion lacks type at end of format"
+msgstr ""
+
+#: c-format.c:1917
+#, c-format
+msgid "unknown conversion type character `%c' in format"
+msgstr ""
+
+#: c-format.c:1920
+#, c-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr ""
+
+#: c-format.c:1927
+#, c-format
+msgid "%s does not support the `%%%c' %s format"
+msgstr ""
+
+#: c-format.c:1943
+#, c-format
+msgid "%s used with `%%%c' %s format"
+msgstr ""
+
+#: c-format.c:1952
+#, c-format
+msgid "%s does not support %s"
+msgstr "%s не падтрымлівае %s"
+
+#: c-format.c:1961
+#, c-format
+msgid "%s does not support %s with the `%%%c' %s format"
+msgstr ""
+
+#: c-format.c:1994
+#, c-format
+msgid "%s ignored with %s and `%%%c' %s format"
+msgstr ""
+
+#: c-format.c:1998
+#, c-format
+msgid "%s ignored with %s in %s format"
+msgstr ""
+
+#: c-format.c:2004
+#, c-format
+msgid "use of %s and %s together with `%%%c' %s format"
+msgstr ""
+
+#: c-format.c:2008
+#, c-format
+msgid "use of %s and %s together in %s format"
+msgstr ""
+
+#: c-format.c:2027
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year in some locales"
+msgstr ""
+
+#: c-format.c:2030
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year"
+msgstr ""
+
+#. The end of the format string was reached.
+#: c-format.c:2046
+#, c-format
+msgid "no closing `]' for `%%[' format"
+msgstr ""
+
+#: c-format.c:2059
+#, c-format
+msgid "use of `%s' length modifier with `%c' type character"
+msgstr ""
+
+#: c-format.c:2080
+#, c-format
+msgid "%s does not support the `%%%s%c' %s format"
+msgstr ""
+
+#: c-format.c:2095
+msgid "operand number specified with suppressed assignment"
+msgstr ""
+
+#: c-format.c:2097
+msgid "operand number specified for format taking no argument"
+msgstr ""
+
+#: c-format.c:2211
+#, c-format
+msgid "writing through null pointer (arg %d)"
+msgstr ""
+
+#: c-format.c:2220
+#, c-format
+msgid "reading through null pointer (arg %d)"
+msgstr ""
+
+#: c-format.c:2240
+#, c-format
+msgid "writing into constant object (arg %d)"
+msgstr ""
+
+#: c-format.c:2250
+#, c-format
+msgid "extra type qualifiers in format argument (arg %d)"
+msgstr ""
+
+#: c-format.c:2257
+#, c-format
+msgid "format argument is not a pointer (arg %d)"
+msgstr ""
+
+#: c-format.c:2259
+#, c-format
+msgid "format argument is not a pointer to a pointer (arg %d)"
+msgstr ""
+
+#: c-format.c:2330
+msgid "pointer"
+msgstr ""
+
+#: c-format.c:2332
+msgid "different type"
+msgstr ""
+
+#: c-format.c:2353
+#, c-format
+msgid "%s is not type %s (arg %d)"
+msgstr ""
+
+#: c-format.c:2356
+#, c-format
+msgid "%s format, %s arg (arg %d)"
+msgstr ""
+
+#: c-lex.c:153
+#, fuzzy
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG не вызначан."
+
+#: c-lex.c:293
+msgid "badly nested C headers from preprocessor"
+msgstr ""
+
+#: c-lex.c:336
+#, c-format
+msgid "ignoring #pragma %s %s"
+msgstr ""
+
+#: c-lex.c:386
+#, c-format
+msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgstr ""
+
+#: c-lex.c:632
+#, c-format
+msgid "universal-character-name '\\u%04x' not valid in identifier"
+msgstr ""
+
+#: c-lex.c:695
+#, c-format
+msgid "stray '%c' in program"
+msgstr ""
+
+#: c-lex.c:697
+#, c-format
+msgid "stray '\\%o' in program"
+msgstr ""
+
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr ""
+
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr ""
+
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr ""
+
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr ""
+
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr ""
+
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#: c-opts.c:359
+#, fuzzy, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
+
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "прапушчан прабел паÑÐ»Ñ Ð½ÑƒÐ¼Ð°Ñ€Ð° \"%.*s\""
+
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr ""
+
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr ""
+
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr ""
+
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "-pipe не падтрымліваецца."
+
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr ""
+
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr ""
+
+#: c-opts.c:1273
+#, fuzzy
+msgid "output filename specified twice"
+msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
+
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "немагчыма адчыніць файл уводу `%s'"
+
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr ""
+
+#: c-opts.c:1484
+#, fuzzy, c-format
+msgid "closing dependency file %s"
+msgstr "не магу знайÑці крыніцу %s\n"
+
+#: c-opts.c:1487
+#, fuzzy, c-format
+msgid "when writing output to %s"
+msgstr "памылка запіÑу Ñž %s"
+
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr ""
+
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr ""
+
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+
+#. Like YYERROR but do call yyerror.
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
+msgid "syntax error"
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
+
+#: /usr/share/bison/bison.simple:179
+#, fuzzy
+msgid "syntax error: cannot back up"
+msgstr "ÑінтакÑÑ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
+
+#: c-parse.y:325 objc-parse.y:346
+msgid "ISO C forbids an empty source file"
+msgstr "ISO C не дазвалÑе пуÑÑ‚Ñ‹ ізыходны файл"
+
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
+msgid "argument of `asm' is not a constant string"
+msgstr ""
+
+#: c-parse.y:374 objc-parse.y:396
+msgid "ISO C forbids data definition with no type or storage class"
+msgstr ""
+
+#: c-parse.y:376 objc-parse.y:398
+msgid "data definition has no type or storage class"
+msgstr ""
+
+#: c-parse.y:389 objc-parse.y:411
+msgid "ISO C does not allow extra `;' outside of a function"
+msgstr ""
+
+#: c-parse.y:449 cppexp.c:1312
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: c-parse.y:496 objc-parse.y:518
+msgid "`sizeof' applied to a bit-field"
+msgstr ""
+
+#: c-parse.y:583 objc-parse.y:605
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr ""
+
+#: c-parse.y:632 objc-parse.y:654
+msgid "ISO C89 forbids compound literals"
+msgstr ""
+
+#: c-parse.y:646 objc-parse.y:668
+msgid "ISO C forbids braced-groups within expressions"
+msgstr ""
+
+#: c-parse.y:677 objc-parse.y:699
+#, fuzzy
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr ""
+
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
+#, c-format
+msgid "`%s' is not at beginning of declaration"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: c-parse.y:1441 objc-parse.y:1496
+msgid "ISO C forbids empty initializer braces"
+msgstr ""
+
+#: c-parse.y:1455 objc-parse.y:1510
+msgid "ISO C89 forbids specifying subobject to initialize"
+msgstr ""
+
+#: c-parse.y:1458 objc-parse.y:1513
+msgid "obsolete use of designated initializer without `='"
+msgstr ""
+
+#: c-parse.y:1462 objc-parse.y:1517
+msgid "obsolete use of designated initializer with `:'"
+msgstr ""
+
+#: c-parse.y:1489 objc-parse.y:1544
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr ""
+
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
+msgid "ISO C forbids nested functions"
+msgstr ""
+
+#: c-parse.y:1703 objc-parse.y:1760
+msgid "ISO C forbids forward references to `enum' types"
+msgstr ""
+
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
+msgid "comma at end of enumerator list"
+msgstr ""
+
+#: c-parse.y:1723 objc-parse.y:1780
+msgid "no semicolon at end of struct or union"
+msgstr ""
+
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
+msgid "extra semicolon in struct or union specified"
+msgstr ""
+
+#: c-parse.y:1745 objc-parse.y:1816
+msgid "ISO C doesn't support unnamed structs/unions"
+msgstr ""
+
+#: c-parse.y:1754 objc-parse.y:1825
+msgid "ISO C forbids member declarations with no members"
+msgstr ""
+
+#: c-parse.y:1913 objc-parse.y:1984
+msgid "deprecated use of label at end of compound statement"
+msgstr ""
+
+#: c-parse.y:1930 objc-parse.y:2001
+msgid "ISO C89 forbids mixed declarations and code"
+msgstr ""
+
+#: c-parse.y:2005 objc-parse.y:2080
+msgid "ISO C forbids label declarations"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
+msgid "braced-group within expression allowed only inside a function"
+msgstr ""
+
+#: c-parse.y:2182 objc-parse.y:2257
+msgid "empty body in an else-statement"
+msgstr "пуÑтое цела Ñž else-выражÑнні"
+
+#: c-parse.y:2303 objc-parse.y:2378
+msgid "ISO C forbids `goto *expr;'"
+msgstr "ISO C не падтрымлівае \"goto *expr;\""
+
+#: c-parse.y:2403 objc-parse.y:2478
+msgid "ISO C forbids forward parameter declarations"
+msgstr ""
+
+#. Gcc used to allow this as an extension. However, it does
+#. not work for all targets, and thus has been disabled.
+#. Also, since func (...) and func () are indistinguishable,
+#. it caused problems with the code in expand_builtin which
+#. tries to verify that BUILT_IN_NEXT_ARG is being used
+#. correctly.
+#: c-parse.y:2429 objc-parse.y:2504
+msgid "ISO C requires a named argument before `...'"
+msgstr ""
+
+#: c-parse.y:2526 objc-parse.y:2601
+msgid "`...' in old-style identifier list"
+msgstr ""
+
+#: /usr/share/bison/bison.simple:795
+msgid "parse error; also virtual memory exhausted"
+msgstr ""
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+msgid "parse error"
+msgstr "Ð³Ñ€Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
+
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr ""
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
+#, c-format
+msgid "%s at end of input"
+msgstr "%s на прыканцы ўводу"
+
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
+#, c-format
+msgid "%s before %s'%c'"
+msgstr "%s перад %s'%c'"
+
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
+#, c-format
+msgid "%s before %s'\\x%x'"
+msgstr "%s перад %s'\\x%x'"
+
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
+#, c-format
+msgid "%s before string constant"
+msgstr ""
+
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
+#, c-format
+msgid "%s before numeric constant"
+msgstr ""
+
+#: c-parse.y:2854 objc-parse.y:3553
+#, c-format
+msgid "%s before \"%s\""
+msgstr "%s перад \"%s\""
+
+#: c-parse.y:2856 objc-parse.y:3555
+#, c-format
+msgid "%s before '%s' token"
+msgstr "%s перад знакам '%s'"
+
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr ""
+
+#: c-parse.y:3047 objc-parse.y:3779
+#, c-format
+msgid "syntax error at '%s' token"
+msgstr ""
+
+#: c-pragma.c:107
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+msgstr ""
+
+#: c-pragma.c:125
+#, c-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+msgstr ""
+
+#: c-pragma.c:145
+#, fuzzy
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: c-pragma.c:147
+#, fuzzy
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: c-pragma.c:167
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr ""
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
+msgstr ""
+
+#: c-pragma.c:185
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr ""
+
+#: c-pragma.c:187
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr ""
+
+#: c-pragma.c:196
+#, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr ""
+
+#: c-pragma.c:233
+msgid "junk at end of '#pragma pack'"
+msgstr ""
+
+#: c-pragma.c:247
+#, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr ""
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr ""
+
+#: c-pragma.c:337
+msgid "junk at end of #pragma weak"
+msgstr ""
+
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr ""
+
+#: c-pragma.c:382
+msgid "junk at end of #pragma redefine_extname"
+msgstr ""
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr ""
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr ""
+
+#: c-pragma.c:425
+msgid "junk at end of #pragma extern_prefix"
+msgstr ""
+
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: c-semantics.c:565
+msgid "break statement not within loop or switch"
+msgstr ""
+
+#: c-semantics.c:583
+msgid "continue statement not within a loop"
+msgstr ""
+
+#: c-semantics.c:678
+msgid "destructor needed for `%#D'"
+msgstr "дÑÑтруктару неабходны \"%#D\""
+
+#: c-semantics.c:679
+msgid "where case label appears here"
+msgstr ""
+
+#: c-semantics.c:682
+msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+msgstr ""
+
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
+#, c-format
+msgid "%s qualifier ignored on asm"
+msgstr ""
+
+#: c-typeck.c:123
+#, c-format
+msgid "`%s' has an incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: c-typeck.c:145 cp/call.c:2865
+msgid "invalid use of void expression"
+msgstr ""
+
+#: c-typeck.c:153
+msgid "invalid use of flexible array member"
+msgstr ""
+
+#: c-typeck.c:159
+msgid "invalid use of array with unspecified bounds"
+msgstr ""
+
+#: c-typeck.c:167
+#, c-format
+msgid "invalid use of undefined type `%s %s'"
+msgstr ""
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:171
+#, c-format
+msgid "invalid use of incomplete typedef `%s'"
+msgstr ""
+
+#: c-typeck.c:424 c-typeck.c:438
+msgid "function types not truly compatible in ISO C"
+msgstr ""
+
+#: c-typeck.c:603
+msgid "types are not quite compatible"
+msgstr ""
+
+#: c-typeck.c:757 c-typeck.c:2687
+msgid "arithmetic on pointer to an incomplete type"
+msgstr ""
+
+#: c-typeck.c:1136
+#, c-format
+msgid "%s has no member named `%s'"
+msgstr ""
+
+#: c-typeck.c:1172
+#, c-format
+msgid "request for member `%s' in something not a structure or union"
+msgstr ""
+
+#: c-typeck.c:1204
+msgid "dereferencing pointer to incomplete type"
+msgstr ""
+
+#: c-typeck.c:1208
+msgid "dereferencing `void *' pointer"
+msgstr ""
+
+#: c-typeck.c:1225 cp/typeck.c:2369
+#, c-format
+msgid "invalid type argument of `%s'"
+msgstr ""
+
+#: c-typeck.c:1244 cp/typeck.c:2395
+msgid "subscript missing in array reference"
+msgstr ""
+
+#: c-typeck.c:1265 cp/typeck.c:2437
+msgid "array subscript has type `char'"
+msgstr ""
+
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
+msgid "array subscript is not an integer"
+msgstr ""
+
+#: c-typeck.c:1306
+msgid "ISO C forbids subscripting `register' array"
+msgstr ""
+
+#: c-typeck.c:1308
+#, fuzzy
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#: c-typeck.c:1341
+msgid "subscript has type `char'"
+msgstr ""
+
+#: c-typeck.c:1357 cp/typeck.c:2518
+msgid "subscripted value is neither array nor pointer"
+msgstr ""
+
+#: c-typeck.c:1411
+#, c-format
+msgid "`%s' undeclared here (not in a function)"
+msgstr ""
+
+#: c-typeck.c:1418
+#, c-format
+msgid "`%s' undeclared (first use in this function)"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: c-typeck.c:1423
+msgid "(Each undeclared identifier is reported only once"
+msgstr "(Ðб кожным неабвешчаным ідÑнтыфікатары паведамлÑецца"
+
+#: c-typeck.c:1424
+msgid "for each function it appears in.)"
+msgstr "адзін раз Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð°Ð¹ функцыі, дзе ён з'ÑўлÑецца.)"
+
+#: c-typeck.c:1441
+#, c-format
+msgid "local declaration of `%s' hides instance variable"
+msgstr ""
+
+#: c-typeck.c:1518
+msgid "called object is not a function"
+msgstr ""
+
+#: c-typeck.c:1604 cp/typeck.c:2829
+msgid "too many arguments to function"
+msgstr "вельмі шмат аргументаў у функцыі"
+
+#: c-typeck.c:1625
+#, c-format
+msgid "type of formal parameter %d is incomplete"
+msgstr ""
+
+#: c-typeck.c:1638
+#, c-format
+msgid "%s as integer rather than floating due to prototype"
+msgstr ""
+
+#: c-typeck.c:1641
+#, c-format
+msgid "%s as integer rather than complex due to prototype"
+msgstr ""
+
+#: c-typeck.c:1644
+#, c-format
+msgid "%s as complex rather than floating due to prototype"
+msgstr ""
+
+#: c-typeck.c:1647
+#, c-format
+msgid "%s as floating rather than integer due to prototype"
+msgstr ""
+
+#: c-typeck.c:1650
+#, c-format
+msgid "%s as complex rather than integer due to prototype"
+msgstr ""
+
+#: c-typeck.c:1653
+#, c-format
+msgid "%s as floating rather than complex due to prototype"
+msgstr ""
+
+#: c-typeck.c:1663
+#, c-format
+msgid "%s as `float' rather than `double' due to prototype"
+msgstr ""
+
+#: c-typeck.c:1681
+#, c-format
+msgid "%s with different width due to prototype"
+msgstr ""
+
+#: c-typeck.c:1715
+#, c-format
+msgid "%s as unsigned due to prototype"
+msgstr ""
+
+#: c-typeck.c:1717
+#, c-format
+msgid "%s as signed due to prototype"
+msgstr ""
+
+#: c-typeck.c:1751 cp/typeck.c:2933
+msgid "too few arguments to function"
+msgstr "не хапае аргументаў у функцыі"
+
+#: c-typeck.c:1793
+msgid "suggest parentheses around + or - inside shift"
+msgstr ""
+
+#: c-typeck.c:1800
+msgid "suggest parentheses around && within ||"
+msgstr ""
+
+#: c-typeck.c:1809
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr ""
+
+#: c-typeck.c:1812
+msgid "suggest parentheses around comparison in operand of |"
+msgstr ""
+
+#: c-typeck.c:1821
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr ""
+
+#: c-typeck.c:1824
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr ""
+
+#: c-typeck.c:1831
+msgid "suggest parentheses around + or - in operand of &"
+msgstr ""
+
+#: c-typeck.c:1834
+msgid "suggest parentheses around comparison in operand of &"
+msgstr ""
+
+#: c-typeck.c:1841
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr ""
+
+#: c-typeck.c:2001 c-typeck.c:2036
+msgid "division by zero"
+msgstr ""
+
+#: c-typeck.c:2081 cp/typeck.c:3194
+msgid "right shift count is negative"
+msgstr ""
+
+#: c-typeck.c:2088 cp/typeck.c:3200
+msgid "right shift count >= width of type"
+msgstr ""
+
+#: c-typeck.c:2109 cp/typeck.c:3219
+msgid "left shift count is negative"
+msgstr ""
+
+#: c-typeck.c:2112 cp/typeck.c:3221
+msgid "left shift count >= width of type"
+msgstr ""
+
+#: c-typeck.c:2133
+msgid "shift count is negative"
+msgstr ""
+
+#: c-typeck.c:2135
+msgid "shift count >= width of type"
+msgstr ""
+
+#: c-typeck.c:2152 cp/typeck.c:3256
+msgid "comparing floating point with == or != is unsafe"
+msgstr ""
+
+#: c-typeck.c:2178 c-typeck.c:2184
+msgid "ISO C forbids comparison of `void *' with function pointer"
+msgstr ""
+
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr ""
+
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
+msgid "comparison between pointer and integer"
+msgstr ""
+
+#: c-typeck.c:2222 c-typeck.c:2250
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr ""
+
+#: c-typeck.c:2247
+msgid "comparison of complete and incomplete pointers"
+msgstr ""
+
+#: c-typeck.c:2263 c-typeck.c:2270
+msgid "ordered comparison of pointer with integer zero"
+msgstr ""
+
+#: c-typeck.c:2294 cp/typeck.c:3389
+msgid "unordered comparison on non-floating point argument"
+msgstr ""
+
+#: c-typeck.c:2505
+msgid "comparison between signed and unsigned"
+msgstr ""
+
+#: c-typeck.c:2551 cp/typeck.c:3633
+msgid "comparison of promoted ~unsigned with constant"
+msgstr ""
+
+#: c-typeck.c:2559 cp/typeck.c:3641
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr ""
+
+#: c-typeck.c:2639
+msgid "pointer of type `void *' used in subtraction"
+msgstr ""
+
+#: c-typeck.c:2641
+msgid "pointer to a function used in subtraction"
+msgstr ""
+
+#: c-typeck.c:2738
+msgid "wrong type argument to unary plus"
+msgstr ""
+
+#: c-typeck.c:2751
+msgid "wrong type argument to unary minus"
+msgstr ""
+
+#: c-typeck.c:2768
+msgid "ISO C does not support `~' for complex conjugation"
+msgstr ""
+
+#: c-typeck.c:2774
+msgid "wrong type argument to bit-complement"
+msgstr ""
+
+#: c-typeck.c:2783
+msgid "wrong type argument to abs"
+msgstr ""
+
+#: c-typeck.c:2795
+msgid "wrong type argument to conjugation"
+msgstr ""
+
+#: c-typeck.c:2809
+msgid "wrong type argument to unary exclamation mark"
+msgstr ""
+
+#: c-typeck.c:2852
+msgid "ISO C does not support `++' and `--' on complex types"
+msgstr "ISO C не падтрымлівае \"++\" Ñ– \"--\" Ð´Ð»Ñ Ñ‚Ñ‹Ð¿Ñƒ complex"
+
+#: c-typeck.c:2867 c-typeck.c:2899
+#, fuzzy
+msgid "wrong type argument to increment"
+msgstr "не хапае аргументаў у функцыі"
+
+#: c-typeck.c:2869 c-typeck.c:2901
+msgid "wrong type argument to decrement"
+msgstr ""
+
+#: c-typeck.c:2890
+msgid "increment of pointer to unknown structure"
+msgstr ""
+
+#: c-typeck.c:2892
+msgid "decrement of pointer to unknown structure"
+msgstr ""
+
+#: c-typeck.c:3029
+msgid "ISO C forbids the address of a cast expression"
+msgstr ""
+
+#: c-typeck.c:3039
+msgid "invalid lvalue in unary `&'"
+msgstr ""
+
+#: c-typeck.c:3071
+#, c-format
+msgid "attempt to take address of bit-field structure member `%s'"
+msgstr ""
+
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: c-typeck.c:3241
+msgid "ISO C forbids use of conditional expressions as lvalues"
+msgstr ""
+
+#: c-typeck.c:3244
+msgid "ISO C forbids use of compound expressions as lvalues"
+msgstr ""
+
+#: c-typeck.c:3247
+msgid "ISO C forbids use of cast expressions as lvalues"
+msgstr ""
+
+#: c-typeck.c:3264
+#, c-format
+msgid "%s of read-only member `%s'"
+msgstr ""
+
+#: c-typeck.c:3268
+#, c-format
+msgid "%s of read-only variable `%s'"
+msgstr ""
+
+#: c-typeck.c:3271
+#, c-format
+msgid "%s of read-only location"
+msgstr ""
+
+#: c-typeck.c:3290
+#, fuzzy, c-format
+msgid "cannot take address of bit-field `%s'"
+msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
+
+#: c-typeck.c:3318
+#, c-format
+msgid "global register variable `%s' used in nested function"
+msgstr ""
+
+#: c-typeck.c:3322
+#, c-format
+msgid "register variable `%s' used in nested function"
+msgstr ""
+
+#: c-typeck.c:3329
+#, c-format
+msgid "address of global register variable `%s' requested"
+msgstr ""
+
+#: c-typeck.c:3341
+msgid "cannot put object with volatile field into register"
+msgstr ""
+
+#: c-typeck.c:3345
+#, c-format
+msgid "address of register variable `%s' requested"
+msgstr ""
+
+#: c-typeck.c:3453
+msgid "signed and unsigned type in conditional expression"
+msgstr ""
+
+#: c-typeck.c:3460
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr ""
+
+#: c-typeck.c:3476 c-typeck.c:3483
+msgid "ISO C forbids conditional expr between `void *' and function pointer"
+msgstr ""
+
+#: c-typeck.c:3489
+msgid "pointer type mismatch in conditional expression"
+msgstr ""
+
+#: c-typeck.c:3496 c-typeck.c:3506
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr ""
+
+#: c-typeck.c:3520
+msgid "type mismatch in conditional expression"
+msgstr ""
+
+#: c-typeck.c:3591 cp/typeck.c:4623
+msgid "left-hand operand of comma expression has no effect"
+msgstr ""
+
+#: c-typeck.c:3635
+msgid "cast specifies array type"
+msgstr ""
+
+#: c-typeck.c:3641
+msgid "cast specifies function type"
+msgstr ""
+
+#: c-typeck.c:3651
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr ""
+
+#: c-typeck.c:3670
+msgid "ISO C forbids casts to union type"
+msgstr ""
+
+#: c-typeck.c:3685
+msgid "cast to union type from type not present in union"
+msgstr ""
+
+#: c-typeck.c:3736
+msgid "cast adds new qualifiers to function type"
+msgstr ""
+
+#. There are qualifiers present in IN_OTYPE that are not
+#. present in IN_TYPE.
+#: c-typeck.c:3741
+msgid "cast discards qualifiers from pointer target type"
+msgstr ""
+
+#: c-typeck.c:3756
+msgid "cast increases required alignment of target type"
+msgstr ""
+
+#: c-typeck.c:3762 cp/typeck.c:5144
+msgid "cast from pointer to integer of different size"
+msgstr ""
+
+#: c-typeck.c:3767
+msgid "cast does not match function type"
+msgstr ""
+
+#: c-typeck.c:3774 cp/typeck.c:5151
+msgid "cast to pointer from integer of different size"
+msgstr ""
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
+#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
+#. Reject anything strange now.
+#: c-typeck.c:3949
+msgid "invalid lvalue in assignment"
+msgstr ""
+
+#. Convert new value to destination type.
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
+msgid "assignment"
+msgstr ""
+
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr ""
+
+#: c-typeck.c:4174 c-typeck.c:4241
+#, c-format
+msgid "%s makes qualified function pointer from unqualified"
+msgstr ""
+
+#: c-typeck.c:4178 c-typeck.c:4221
+#, c-format
+msgid "%s discards qualifiers from pointer target type"
+msgstr ""
+
+#: c-typeck.c:4184
+msgid "ISO C prohibits argument conversion to union type"
+msgstr ""
+
+#: c-typeck.c:4213
+#, c-format
+msgid "ISO C forbids %s between function pointer and `void *'"
+msgstr ""
+
+#: c-typeck.c:4230
+#, c-format
+msgid "pointer targets in %s differ in signedness"
+msgstr ""
+
+#: c-typeck.c:4246
+#, c-format
+msgid "%s from incompatible pointer type"
+msgstr ""
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr ""
+
+#: c-typeck.c:4267
+#, c-format
+msgid "%s makes pointer from integer without a cast"
+msgstr ""
+
+#: c-typeck.c:4275
+#, c-format
+msgid "%s makes integer from pointer without a cast"
+msgstr ""
+
+#: c-typeck.c:4289 c-typeck.c:4292
+#, c-format
+msgid "incompatible type for argument %d of `%s'"
+msgstr ""
+
+#: c-typeck.c:4296
+#, c-format
+msgid "incompatible type for argument %d of indirect function call"
+msgstr ""
+
+#: c-typeck.c:4300
+#, c-format
+msgid "incompatible types in %s"
+msgstr ""
+
+#. Function name is known; supply it.
+#: c-typeck.c:4358
+#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "вельмі шмат аргументаў у функцыі"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
+#, c-format
+msgid "passing arg %d of `%s'"
+msgstr ""
+
+#. Function name unknown (call through ptr); just give arg number.
+#: c-typeck.c:4386
+#, c-format
+msgid "passing arg %d of pointer to function"
+msgstr ""
+
+#: c-typeck.c:4452
+msgid "initializer for static variable is not constant"
+msgstr ""
+
+#: c-typeck.c:4458
+msgid "initializer for static variable uses complicated arithmetic"
+msgstr ""
+
+#: c-typeck.c:4466
+msgid "aggregate initializer is not constant"
+msgstr ""
+
+#: c-typeck.c:4468
+msgid "aggregate initializer uses complicated arithmetic"
+msgstr ""
+
+#: c-typeck.c:4475
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr ""
+
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
+#, c-format
+msgid "(near initialization for `%s')"
+msgstr ""
+
+#: c-typeck.c:4737 cp/typeck2.c:488
+msgid "char-array initialized from wide string"
+msgstr ""
+
+#: c-typeck.c:4744 cp/typeck2.c:495
+msgid "int-array initialized from non-wide string"
+msgstr ""
+
+#: c-typeck.c:4762 cp/typeck2.c:511
+msgid "initializer-string for array of chars is too long"
+msgstr ""
+
+#: c-typeck.c:4822
+msgid "array initialized from non-constant array expression"
+msgstr ""
+
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
+msgid "initializer element is not constant"
+msgstr ""
+
+#: c-typeck.c:4873
+msgid "initialization"
+msgstr "ініцыÑлізацыÑ"
+
+#: c-typeck.c:4884 c-typeck.c:6286
+msgid "initializer element is not computable at load time"
+msgstr ""
+
+#: c-typeck.c:4899 cp/typeck2.c:588
+msgid "invalid initializer"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: c-typeck.c:5393
+msgid "extra brace group at end of initializer"
+msgstr ""
+
+#: c-typeck.c:5413
+msgid "missing braces around initializer"
+msgstr ""
+
+#: c-typeck.c:5473
+msgid "braces around scalar initializer"
+msgstr ""
+
+#: c-typeck.c:5521
+msgid "initialization of flexible array member in a nested context"
+msgstr ""
+
+#: c-typeck.c:5523
+msgid "initialization of a flexible array member"
+msgstr ""
+
+#: c-typeck.c:5554
+msgid "missing initializer"
+msgstr "прапушчан ініцыÑлізатар"
+
+#: c-typeck.c:5580
+msgid "empty scalar initializer"
+msgstr ""
+
+#: c-typeck.c:5585
+msgid "extra elements in scalar initializer"
+msgstr ""
+
+#: c-typeck.c:5671
+msgid "initialization designators may not nest"
+msgstr ""
+
+#: c-typeck.c:5692 c-typeck.c:5763
+msgid "array index in non-array initializer"
+msgstr ""
+
+#: c-typeck.c:5697 c-typeck.c:5817
+msgid "field name not in record or union initializer"
+msgstr ""
+
+#: c-typeck.c:5759 c-typeck.c:5761
+msgid "nonconstant array index in initializer"
+msgstr ""
+
+#: c-typeck.c:5765 c-typeck.c:5768
+msgid "array index in initializer exceeds array bounds"
+msgstr ""
+
+#: c-typeck.c:5779
+msgid "empty index range in initializer"
+msgstr ""
+
+#: c-typeck.c:5788
+msgid "array index range in initializer exceeds array bounds"
+msgstr ""
+
+#: c-typeck.c:5829
+#, c-format
+msgid "unknown field `%s' specified in initializer"
+msgstr ""
+
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
+msgid "initialized field with side-effects overwritten"
+msgstr ""
+
+#: c-typeck.c:6558
+msgid "excess elements in char array initializer"
+msgstr ""
+
+#: c-typeck.c:6565 c-typeck.c:6611
+msgid "excess elements in struct initializer"
+msgstr ""
+
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c-typeck.c:6693
+msgid "excess elements in union initializer"
+msgstr ""
+
+#: c-typeck.c:6714
+msgid "traditional C rejects initialization of unions"
+msgstr ""
+
+#: c-typeck.c:6777
+msgid "excess elements in array initializer"
+msgstr ""
+
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr ""
+
+#: c-typeck.c:6828
+msgid "excess elements in scalar initializer"
+msgstr ""
+
+#: c-typeck.c:6935
+msgid "asm template is not a string constant"
+msgstr ""
+
+#: c-typeck.c:6967
+msgid "invalid lvalue in asm statement"
+msgstr ""
+
+#: c-typeck.c:7042
+msgid "modification by `asm'"
+msgstr ""
+
+#: c-typeck.c:7061 cp/typeck.c:6237
+msgid "function declared `noreturn' has a `return' statement"
+msgstr ""
+
+#: c-typeck.c:7068
+msgid "`return' with no value, in function returning non-void"
+msgstr ""
+
+#: c-typeck.c:7074
+msgid "`return' with a value, in function returning void"
+msgstr ""
+
+#: c-typeck.c:7078
+msgid "return"
+msgstr "вÑртанне"
+
+#: c-typeck.c:7130
+msgid "function returns address of local variable"
+msgstr ""
+
+#: c-typeck.c:7186 cp/semantics.c:555
+msgid "switch quantity not an integer"
+msgstr ""
+
+#: c-typeck.c:7196
+msgid "`long' switch expression not converted to `int' in ISO C"
+msgstr ""
+
+#: c-typeck.c:7231 cp/decl.c:5523
+msgid "case label not within a switch statement"
+msgstr ""
+
+#: c-typeck.c:7233 cp/decl.c:5528
+msgid "`default' label not within a switch statement"
+msgstr ""
+
+#: calls.c:1934 tree-inline.c:1177
+#, c-format
+msgid "inlining failed in call to `%s'"
+msgstr ""
+
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
+msgid "called from here"
+msgstr "выклікана адÑюль"
+
+#: calls.c:2270
+#, c-format
+msgid "can't inline call to `%s'"
+msgstr ""
+
+#: calls.c:2300
+msgid "function call has aggregate value"
+msgstr ""
+
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr ""
+
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr ""
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr ""
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr ""
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr ""
+
+#: cfgrtl.c:1800
+#, c-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.c:1814
+#, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr ""
+
+#: cfgrtl.c:1826
+#, c-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr ""
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1869
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1911
+#, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1926
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1928
+msgid "wrong insn in the fallthru edge"
+msgstr ""
+
+#: cfgrtl.c:1935
+#, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr ""
+
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr ""
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2004
+#, c-format
+msgid "missing barrier after block %i"
+msgstr ""
+
+#: cfgrtl.c:2014
+#, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr ""
+
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr ""
+
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr ""
+
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr ""
+
+#: cfgrtl.c:2072
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr ""
+
+#: cfgrtl.c:2084
+#, c-format
+msgid "in basic block %d:"
+msgstr ""
+
+#: cfgrtl.c:2085
+msgid "flow control insn inside a basic block"
+msgstr ""
+
+#: cfgrtl.c:2104
+#, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr ""
+
+#: cfgrtl.c:2119
+msgid "basic blocks not numbered consecutively"
+msgstr ""
+
+#: cfgrtl.c:2144
+msgid "insn outside basic block"
+msgstr ""
+
+#: cfgrtl.c:2152
+msgid "return not followed by barrier"
+msgstr ""
+
+#: cfgrtl.c:2157
+#, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr ""
+
+#: cfgrtl.c:2161
+msgid "verify_flow_info failed"
+msgstr ""
+
+#: collect2.c:425
+msgid "internal error"
+msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
+
+#: collect2.c:934
+msgid "no arguments"
+msgstr "нÑма аргументаў"
+
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
+msgid "fopen %s"
+msgstr ""
+
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
+#, c-format
+msgid "fclose %s"
+msgstr ""
+
+#: collect2.c:1275
+#, c-format
+msgid "collect2 version %s"
+msgstr ""
+
+#: collect2.c:1365
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "%d канÑтруктар(аў) знойдзен(а)\n"
+
+#: collect2.c:1366
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "%d дÑÑтруктар(аў) знойдзен(а)\n"
+
+#: collect2.c:1367
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr ""
+
+#: collect2.c:1508
+#, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr ""
+
+#: collect2.c:1527
+#, c-format
+msgid "%s returned %d exit status"
+msgstr ""
+
+#: collect2.c:1555
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[нельга знайÑці %s]"
+
+#: collect2.c:1570
+#, c-format
+msgid "cannot find `%s'"
+msgstr "нельга знайÑці \"%s\""
+
+#: collect2.c:1581 collect2.c:1584
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr "перанакіраванне stdout: %s"
+
+#: collect2.c:1627
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr ""
+
+#: collect2.c:1870
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+
+#: collect2.c:2082
+msgid "cannot find `nm'"
+msgstr "нельга знайÑці \"nm\""
+
+#: collect2.c:2092 collect2.c:2533
+msgid "pipe"
+msgstr "канвеер"
+
+#: collect2.c:2096 collect2.c:2537
+msgid "fdopen"
+msgstr ""
+
+#: collect2.c:2122 collect2.c:2563
+#, c-format
+msgid "dup2 %d 1"
+msgstr ""
+
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, c-format
+msgid "close %d"
+msgstr ""
+
+#: collect2.c:2131 collect2.c:2572
+#, c-format
+msgid "execv %s"
+msgstr ""
+
+#: collect2.c:2185
+#, c-format
+msgid "init function found in object %s"
+msgstr ""
+
+#: collect2.c:2193
+#, c-format
+msgid "fini function found in object %s"
+msgstr ""
+
+#: collect2.c:2216 collect2.c:2621
+msgid "fclose"
+msgstr ""
+
+#: collect2.c:2261
+#, c-format
+msgid "unable to open file '%s'"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: collect2.c:2263
+#, c-format
+msgid "unable to stat file '%s'"
+msgstr ""
+
+#: collect2.c:2269
+#, c-format
+msgid "unable to mmap file '%s'"
+msgstr ""
+
+#: collect2.c:2422
+msgid "not found\n"
+msgstr "не знойдзена\n"
+
+#: collect2.c:2424 collect2.c:2600
+#, c-format
+msgid "dynamic dependency %s not found"
+msgstr ""
+
+#: collect2.c:2444
+#, c-format
+msgid "bad magic number in file '%s'"
+msgstr "дрÑÐ½Ð½Ð°Ñ Ð¼Ð°Ð³Ñ–Ñ‡Ð½Ð°Ñ Ð»Ñ–Ñ‡Ð±Ð° Ñž файле \"%s\""
+
+#: collect2.c:2466
+msgid "dynamic dependencies.\n"
+msgstr ""
+
+#: collect2.c:2524
+msgid "cannot find `ldd'"
+msgstr "не магу знайÑці \"ldd\""
+
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+
+#: collect2.c:2612
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr ""
+
+#: collect2.c:2726
+#, c-format
+msgid "%s: not a COFF file"
+msgstr ""
+
+#: collect2.c:2845
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr ""
+
+#: collect2.c:2901
+#, fuzzy, c-format
+msgid "library lib%s not found"
+msgstr "БібліÑÑ‚Ñка lib%s не знойдзена"
+
+#: collect2.c:3028
+#, c-format
+msgid "open %s"
+msgstr ""
+
+#: collect2.c:3051
+msgid "incompatibilities between object file & expected values"
+msgstr ""
+
+#: collect2.c:3124
+#, c-format
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+
+#: collect2.c:3133
+msgid "string section missing"
+msgstr ""
+
+#: collect2.c:3136
+msgid "section pointer missing"
+msgstr ""
+
+#: collect2.c:3184
+msgid "no symbol table found"
+msgstr ""
+
+#: collect2.c:3197
+msgid "no cmd_strings found"
+msgstr ""
+
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+
+#: collect2.c:3216
+#, c-format
+msgid "load command map, %d cmds, new size %ld.\n"
+msgstr ""
+
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+
+#: collect2.c:3267
+#, c-format
+msgid "close %s"
+msgstr ""
+
+#: collect2.c:3341
+msgid "could not convert 0x%l.8x into a region"
+msgstr ""
+
+#: collect2.c:3345
+#, c-format
+msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+msgstr ""
+
+#: collect2.c:3472
+msgid "bad magic number"
+msgstr "дрÑнны \"магічны\" нумар"
+
+#: collect2.c:3473
+msgid "bad header version"
+msgstr "дрÑÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÐ°"
+
+#: collect2.c:3474
+msgid "bad raw header version"
+msgstr ""
+
+#: collect2.c:3475
+msgid "raw header buffer too small"
+msgstr ""
+
+#: collect2.c:3476
+msgid "old raw header file"
+msgstr ""
+
+#: collect2.c:3477
+msgid "unsupported version"
+msgstr "Ð½ÐµÐ¿Ð°Ð´Ñ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ"
+
+#: collect2.c:3479
+#, c-format
+msgid "unknown {de,en}code_mach_o_hdr return value %d"
+msgstr ""
+
+#: collect2.c:3499
+#, c-format
+msgid "fstat %s"
+msgstr ""
+
+#: collect2.c:3536 collect2.c:3584
+#, c-format
+msgid "lseek %s 0"
+msgstr ""
+
+#: collect2.c:3540
+#, c-format
+msgid "read %s"
+msgstr ""
+
+#: collect2.c:3543
+#, c-format
+msgid "read %ld bytes, expected %ld, from %s"
+msgstr ""
+
+#: collect2.c:3564
+#, c-format
+msgid "msync %s"
+msgstr ""
+
+#: collect2.c:3571
+#, c-format
+msgid "munmap %s"
+msgstr ""
+
+#: collect2.c:3588
+#, c-format
+msgid "write %s"
+msgstr ""
+
+#: collect2.c:3591
+#, c-format
+msgid "wrote %ld bytes, expected %ld, to %s"
+msgstr ""
+
+#: combine.c:13222
+#, c-format
+msgid ""
+";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+"\n"
+msgstr ""
+
+#: combine.c:13232
+#, c-format
+msgid ""
+"\n"
+";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+msgstr ""
+
+#: convert.c:69
+msgid "cannot convert to a pointer type"
+msgstr ""
+
+#: convert.c:102
+msgid "pointer value used where a floating point value was expected"
+msgstr ""
+
+#: convert.c:106
+msgid "aggregate value used where a float was expected"
+msgstr ""
+
+#: convert.c:132
+msgid "conversion to incomplete type"
+msgstr ""
+
+#: convert.c:414 convert.c:494
+msgid "can't convert between vector values of different size"
+msgstr ""
+
+#: convert.c:420
+msgid "aggregate value used where an integer was expected"
+msgstr ""
+
+#: convert.c:472 f/com.c:1100
+msgid "pointer value used where a complex was expected"
+msgstr ""
+
+#: convert.c:476 f/com.c:1102
+msgid "aggregate value used where a complex was expected"
+msgstr ""
+
+#: convert.c:500
+msgid "can't convert value to a vector"
+msgstr ""
+
+#: cpperror.c:113
+msgid "warning: "
+msgstr ""
+
+#: cpperror.c:115
+msgid "internal error: "
+msgstr ""
+
+#: cpperror.c:189
+#, fuzzy
+msgid "stdout"
+msgstr "Ñтруктура"
+
+#: cpperror.c:191 gcc.c:6428
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr ""
+
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr ""
+
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: cppexp.c:268
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: cppexp.c:482
+msgid "missing ')' after \"defined\""
+msgstr ""
+
+#: cppexp.c:489
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: cppexp.c:497
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: cppexp.c:507
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr ""
+
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr ""
+
+#: cppexp.c:596
+#, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr ""
+
+#: cppexp.c:604
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr ""
+
+#: cppexp.c:737 cppexp.c:772
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "прапушчан прабел паÑÐ»Ñ Ð½ÑƒÐ¼Ð°Ñ€Ð° \"%.*s\""
+
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr ""
+
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr ""
+
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr ""
+
+#: cppexp.c:782
+msgid "void expression between '(' and ')'"
+msgstr ""
+
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr ""
+
+#: cppexp.c:787
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr ""
+
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr ""
+
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr ""
+
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "немагчымы апÑратар '%s'"
+
+#: cppexp.c:954
+msgid "missing ')' in expression"
+msgstr ""
+
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr ""
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: cppexp.c:990
+msgid "missing '(' in expression"
+msgstr ""
+
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr ""
+
+#: cppfiles.c:411
+#, c-format
+msgid "%s is too large"
+msgstr "%s - вельмі вÑлікі"
+
+#: cppfiles.c:447
+#, c-format
+msgid "%s is shorter than expected"
+msgstr ""
+
+#: cppfiles.c:461
+#, c-format
+msgid "%s is a block device"
+msgstr "%s - гÑта Ð±Ð»Ñ‘Ñ‡Ð½Ð°Ñ Ð¿Ñ€Ñ‹Ð»Ð°Ð´Ð°"
+
+#: cppfiles.c:594
+#, c-format
+msgid "no include path in which to find %s"
+msgstr ""
+
+#: cppfiles.c:668
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: cppfiles.c:1014
+msgid "absolute file name in remap_filename"
+msgstr ""
+
+#: cppinit.c:224
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr ""
+
+#: cppinit.c:231
+#, c-format
+msgid "%s: Not a directory"
+msgstr "%s: не дырÑкторыÑ"
+
+#: cppinit.c:287
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr ""
+
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr ""
+
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr ""
+
+#: cppinit.c:895
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:972
+msgid "#include \"...\" search starts here:\n"
+msgstr ""
+
+#: cppinit.c:976
+msgid "#include <...> search starts here:\n"
+msgstr ""
+
+#: cppinit.c:979
+msgid "End of search list.\n"
+msgstr ""
+
+#: cppinit.c:1057
+msgid "<built-in>"
+msgstr ""
+
+#: cppinit.c:1059
+msgid "<command line>"
+msgstr ""
+
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, c-format
+msgid "assertion missing after %s"
+msgstr ""
+
+#: cppinit.c:1165
+#, c-format
+msgid "directory name missing after %s"
+msgstr ""
+
+#: cppinit.c:1166
+#, c-format
+msgid "file name missing after %s"
+msgstr ""
+
+#: cppinit.c:1167
+#, c-format
+msgid "macro name missing after %s"
+msgstr ""
+
+#: cppinit.c:1168
+#, c-format
+msgid "path name missing after %s"
+msgstr ""
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr ""
+
+#: cpplex.c:149
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: cpplex.c:157
+#, c-format
+msgid "trigraph ??%c ignored"
+msgstr ""
+
+#: cpplex.c:214
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: cpplex.c:221 cpptrad.c:158
+msgid "backslash-newline at end of file"
+msgstr ""
+
+#: cpplex.c:287 cpptrad.c:199
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: cpplex.c:395
+msgid "null character(s) ignored"
+msgstr ""
+
+#: cpplex.c:402
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: cpplex.c:475
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: cpplex.c:483
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr ""
+
+#: cpplex.c:698
+#, c-format
+msgid "missing terminating %c character"
+msgstr "прапушчан завÑршаючы Ñімвал %c"
+
+#: cpplex.c:711
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: cpplex.c:915 cpptrad.c:487
+msgid "no newline at end of file"
+msgstr ""
+
+#: cpplex.c:1092 cpptrad.c:213
+msgid "unterminated comment"
+msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ñ‹Ñ ÐºÐ°Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ‹Ñ–"
+
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: cpplex.c:1105
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: cpplex.c:1110
+msgid "multi-line comment"
+msgstr ""
+
+#: cpplex.c:1425
+#, fuzzy, c-format
+msgid "unknown string token %s\n"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s\n"
+
+#: cpplex.c:1438
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: cpplex.c:1695
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: cpplex.c:1701
+msgid "incomplete universal-character-name"
+msgstr ""
+
+#: cpplex.c:1715
+#, c-format
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr ""
+
+#: cpplex.c:1723
+msgid "universal-character-name on EBCDIC target"
+msgstr ""
+
+#: cpplex.c:1737
+msgid "universal-character-name out of range"
+msgstr ""
+
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: cpplex.c:1798
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: cpplex.c:1828 f/lex.c:585
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: cpplex.c:1833
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: cpplex.c:1858
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: cpplex.c:1874
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: cpplex.c:1877
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr ""
+
+#: cpplex.c:1973
+msgid "empty character constant"
+msgstr "пуÑÑ‚Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: cpplex.c:1983
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
+
+#: cpplex.c:1986
+msgid "multi-character character constant"
+msgstr "мнагаÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: cpplib.c:225
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: cpplib.c:315
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: cpplib.c:327
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: cpplib.c:330
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: cpplib.c:334
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: cpplib.c:428
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: cpplib.c:506
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr ""
+
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: cpplib.c:598
+msgid "missing terminating > character"
+msgstr ""
+
+#: cpplib.c:637
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: cpplib.c:648
+#, c-format
+msgid "empty file name in #%s"
+msgstr ""
+
+#: cpplib.c:667
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: cpplib.c:674
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr ""
+
+#: cpplib.c:682
+msgid "#include nested too deeply"
+msgstr ""
+
+#: cpplib.c:739
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: cpplib.c:814
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr ""
+
+#: cpplib.c:820
+msgid "line number out of range"
+msgstr ""
+
+#: cpplib.c:831 cpplib.c:902
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr ""
+
+#: cpplib.c:866
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr ""
+
+#: cpplib.c:973
+#, fuzzy
+msgid "invalid #ident directive"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: cpplib.c:1061
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: cpplib.c:1064
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: cpplib.c:1067
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr ""
+
+#: cpplib.c:1143
+msgid "#pragma once is obsolete"
+msgstr ""
+
+#: cpplib.c:1146
+msgid "#pragma once in main file"
+msgstr ""
+
+#: cpplib.c:1170
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: cpplib.c:1179
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: cpplib.c:1201
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: cpplib.c:1226
+#, c-format
+msgid "cannot find source %s"
+msgstr "не магу знайÑці крыніцу %s"
+
+#: cpplib.c:1230
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: cpplib.c:1346
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: cpplib.c:1429
+msgid "#else without #if"
+msgstr ""
+
+#: cpplib.c:1434
+msgid "#else after #else"
+msgstr ""
+
+#: cpplib.c:1436 cpplib.c:1470
+msgid "the conditional began here"
+msgstr ""
+
+#: cpplib.c:1463
+msgid "#elif without #if"
+msgstr ""
+
+#: cpplib.c:1468
+msgid "#elif after #else"
+msgstr ""
+
+#: cpplib.c:1499
+msgid "#endif without #if"
+msgstr ""
+
+#: cpplib.c:1582
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: cpplib.c:1597
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: cpplib.c:1617
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
+msgstr ""
+
+#: cpplib.c:1649
+msgid "predicate must be an identifier"
+msgstr ""
+
+#: cpplib.c:1738
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: cpplib.c:1968
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: cppmacro.c:139 cppmacro.c:294
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr ""
+
+#: cppmacro.c:234
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "Ðемагчыма адчыніць файл з дадзенымі %s.\n"
+
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
+msgstr ""
+
+#: cppmacro.c:504
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: cppmacro.c:546
+msgid "ISO C99 requires rest arguments to be used"
+msgstr ""
+
+#: cppmacro.c:551
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: cppmacro.c:556
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: cppmacro.c:776
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: cppmacro.c:1314
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr ""
+
+#: cppmacro.c:1351
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: cppmacro.c:1359
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: cppmacro.c:1376
+msgid "parameter name missing"
+msgstr ""
+
+#: cppmacro.c:1391
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: cppmacro.c:1395
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: cppmacro.c:1404
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: cppmacro.c:1472
+msgid "ISO C requires whitespace after the macro name"
+msgstr ""
+
+#: cppmacro.c:1500
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: cppmacro.c:1519
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: cppmacro.c:1606
+msgid "this is the location of the previous definition"
+msgstr ""
+
+#: cppmacro.c:1657
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: cppmacro.c:1682
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: cppspec.c:109
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr ""
+
+#: cppspec.c:133
+msgid "too many input files"
+msgstr "вельмі шмат уваходзÑчых файлаў"
+
+#: cpptrad.c:841
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: cse.c:7195
+#, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ""
+
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr ""
+
+#: diagnostic.c:928
+#, c-format
+msgid "%s: warnings being treated as errors\n"
+msgstr ""
+
+#: diagnostic.c:963
+#, c-format
+msgid "%s: %s: "
+msgstr "%s: %s: "
+
+#: diagnostic.c:1054
+#, c-format
+msgid "%s "
+msgstr ""
+
+#: diagnostic.c:1056
+#, c-format
+msgid " %s"
+msgstr ""
+
+#: diagnostic.c:1078
+msgid "At top level:"
+msgstr ""
+
+#: diagnostic.c:1083
+#, fuzzy, c-format
+msgid "In member function `%s':"
+msgstr "у функцыі \"%s\":"
+
+#: diagnostic.c:1087
+#, c-format
+msgid "In function `%s':"
+msgstr "у функцыі \"%s\":"
+
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr "кампілÑÑ†Ñ‹Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ð°.\n"
+
+#: diagnostic.c:1193
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr ""
+
+#: diagnostic.c:1208 diagnostic.c:1316
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr ""
+
+#: diagnostic.c:1314
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr ""
+
+#: diagnostic.c:1376
+#, fuzzy, c-format
+msgid "in %s, at %s:%d"
+msgstr "Ñпынена Ñž %s, Ð»Ñ %s:%d"
+
+#: diagnostic.c:1397
+#, c-format
+msgid "In file included from %s:%d"
+msgstr "У файле уключаным з %s:%d"
+
+#: diagnostic.c:1400
+#, c-format
+msgid ""
+",\n"
+" from %s:%d"
+msgstr ""
+
+#: diagnostic.c:1401
+msgid ":\n"
+msgstr ":\n"
+
+#: diagnostic.c:1445 diagnostic.c:1462
+#, c-format
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr ""
+
+#: diagnostic.c:1465
+#, c-format
+msgid "`%s' is deprecated"
+msgstr ""
+
+#: diagnostic.c:1468
+#, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr ""
+
+#: diagnostic.c:1471
+msgid "type is deprecated"
+msgstr ""
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3135
+#, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr ""
+
+#: dwarfout.c:2066
+#, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr ""
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr ""
+
+#: dwarfout.c:6278
+msgid "can't get current directory"
+msgstr "не магу атрымаць бÑгучую дырÑкторыю"
+
+#: emit-rtl.c:1155
+msgid "can't access real part of complex value in hard register"
+msgstr ""
+
+#: emit-rtl.c:1177
+msgid "can't access imaginary part of complex value in hard register"
+msgstr ""
+
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr ""
+
+#: errors.c:136
+#, c-format
+msgid "abort in %s, at %s:%d"
+msgstr "Ñпынена Ñž %s, Ð»Ñ %s:%d"
+
+#: except.c:369
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr ""
+
+#: except.c:2994
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr ""
+
+#: except.c:3137
+msgid "__builtin_eh_return not supported on this target"
+msgstr ""
+
+#: explow.c:1408
+msgid "stack limits not supported on this target"
+msgstr ""
+
+#: expr.c:3355
+msgid "function using short complex types cannot be inline"
+msgstr ""
+
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+msgid "unsupported wide integer operation"
+msgstr ""
+
+#: expr.c:6669
+#, c-format
+msgid "prior parameter's size depends on `%s'"
+msgstr ""
+
+#: expr.c:7005
+msgid "returned value in block_exit_expr"
+msgstr ""
+
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
+
+#: final.c:1342
+msgid "negative insn length"
+msgstr ""
+
+#: final.c:2793
+msgid "could not split insn"
+msgstr ""
+
+#: final.c:3141
+msgid "invalid `asm': "
+msgstr ""
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
+msgstr ""
+
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
+msgstr ""
+
+#: final.c:3401
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr ""
+
+#: final.c:3404 final.c:3443
+msgid "operand number out of range"
+msgstr ""
+
+#: final.c:3462
+#, c-format
+msgid "invalid %%-code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
+msgstr ""
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+msgid "floating constant misused"
+msgstr ""
+
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+msgid "invalid expression as operand"
+msgstr ""
+
+#: flow.c:352
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr ""
+
+#: flow.c:357
+msgid "`noreturn' function does return"
+msgstr ""
+
+#: flow.c:378
+msgid "control reaches end of non-void function"
+msgstr ""
+
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr ""
+
+#: fold-const.c:2546 fold-const.c:2559
+#, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr ""
+
+#: fold-const.c:3753 fold-const.c:3770
+#, c-format
+msgid "comparison is always %d"
+msgstr ""
+
+#: fold-const.c:3901
+msgid "`or' of unmatched not-equal tests is always 1"
+msgstr ""
+
+#: fold-const.c:3906
+msgid "`and' of mutually exclusive equal-tests is always 0"
+msgstr ""
+
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr ""
+
+#: function.c:3772
+#, fuzzy
+msgid "impossible constraint in `asm'"
+msgstr "немагчымы апÑратар '%s'"
+
+#: function.c:5527
+#, c-format
+msgid "`%s' might be used uninitialized in this function"
+msgstr ""
+
+#: function.c:5534
+#, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr ""
+
+#: function.c:5553
+#, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr ""
+
+#: function.c:6420
+msgid "function returns an aggregate"
+msgstr ""
+
+#: function.c:6925
+#, c-format
+msgid "unused parameter `%s'"
+msgstr "невыкарыÑтаемы параметр \"%s\""
+
+#: gcc.c:1107
+#, c-format
+msgid "ambiguous abbreviation %s"
+msgstr ""
+
+#: gcc.c:1134
+#, c-format
+msgid "incomplete `%s' option"
+msgstr ""
+
+#: gcc.c:1145
+#, fuzzy, c-format
+msgid "missing argument to `%s' option"
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#: gcc.c:1158
+#, fuzzy, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#: gcc.c:1486
+msgid "Using built-in specs.\n"
+msgstr ""
+
+#: gcc.c:1667
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+
+#: gcc.c:1774
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr ""
+
+#: gcc.c:1872 gcc.c:1891
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr ""
+
+#: gcc.c:1899
+#, fuzzy, c-format
+msgid "could not find specs file %s\n"
+msgstr "не магу знайÑці крыніцу %s\n"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr ""
+
+#: gcc.c:1951
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr ""
+
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr ""
+
+#: gcc.c:1965
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+
+#: gcc.c:1978
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr ""
+
+#: gcc.c:1989 gcc.c:2002
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr ""
+
+#: gcc.c:2056
+msgid "spec file has no spec for linking"
+msgstr ""
+
+#: gcc.c:2554
+msgid "-pipe not supported"
+msgstr "-pipe не падтрымліваецца"
+
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+
+#: gcc.c:2735
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr ""
+
+#: gcc.c:2753
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:2883
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "ВыкарыÑтанне: %s [выбары] файл...\n"
+
+#: gcc.c:2884
+msgid "Options:\n"
+msgstr "Выбары:\n"
+
+#: gcc.c:2886
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr ""
+
+#: gcc.c:2887
+msgid " --help Display this information\n"
+msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
+
+#: gcc.c:2888
+msgid " --target-help Display target specific command line options\n"
+msgstr ""
+
+#: gcc.c:2890
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr ""
+
+#: gcc.c:2891
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr ""
+
+#: gcc.c:2892
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n"
+
+#: gcc.c:2893
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr ""
+
+#: gcc.c:2894
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr ""
+
+#: gcc.c:2895
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr ""
+
+#: gcc.c:2896
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr ""
+
+#: gcc.c:2897
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr ""
+
+#: gcc.c:2898
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr ""
+
+#: gcc.c:2899
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr ""
+
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr ""
+
+#: gcc.c:2903
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr ""
+
+#: gcc.c:2904
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr ""
+
+#: gcc.c:2905
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr ""
+
+#: gcc.c:2906
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr ""
+
+#: gcc.c:2907
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr ""
+
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr ""
+
+#: gcc.c:2909
+msgid " -time Time the execution of each subprocess\n"
+msgstr ""
+
+#: gcc.c:2910
+#, fuzzy
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
+
+#: gcc.c:2911
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr ""
+
+#: gcc.c:2912
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr ""
+
+#: gcc.c:2913
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr ""
+
+#: gcc.c:2914
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr ""
+
+#: gcc.c:2915
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr ""
+
+#: gcc.c:2916
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr ""
+
+#: gcc.c:2917
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr ""
+
+#: gcc.c:2918
+msgid " -S Compile only; do not assemble or link\n"
+msgstr ""
+
+#: gcc.c:2919
+msgid " -c Compile and assemble, but do not link\n"
+msgstr ""
+
+#: gcc.c:2920
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
+
+#: gcc.c:2921
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
+msgstr ""
+
+#: gcc.c:2928
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr ""
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr ""
+
+#: gcc.c:3263
+#, fuzzy
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+
+#: gcc.c:3366
+msgid "argument to `-Xlinker' is missing"
+msgstr ""
+
+#: gcc.c:3374
+#, fuzzy
+msgid "argument to `-l' is missing"
+msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
+
+#: gcc.c:3391
+msgid "argument to `-specs' is missing"
+msgstr ""
+
+#: gcc.c:3406
+msgid "argument to `-specs=' is missing"
+msgstr ""
+
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr ""
+
+#: gcc.c:3445
+msgid "argument to `-B' is missing"
+msgstr ""
+
+#: gcc.c:3618
+msgid "cannot specify -o with -c or -S and multiple compilations"
+msgstr ""
+
+#: gcc.c:3791
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr ""
+
+#: gcc.c:3795
+msgid "warning: -pipe ignored because -time specified"
+msgstr ""
+
+#: gcc.c:3807
+msgid "argument to `-x' is missing"
+msgstr "аргумент Ð´Ð»Ñ \"-x\" прапушчан"
+
+#: gcc.c:3835
+#, c-format
+msgid "argument to `-%s' is missing"
+msgstr "аргумент Ð´Ð»Ñ \"-%s\" прапушчан"
+
+#: gcc.c:3896
+#, c-format
+msgid "warning: `-x %s' after last input file has no effect"
+msgstr ""
+
+#: gcc.c:4241
+#, fuzzy
+msgid "invalid specification! Bug in cc"
+msgstr "ÐерÑчаіÑÐ½Ð°Ñ ÑпецыфікацыÑ! Памылка Ñž cc."
+
+#: gcc.c:4395
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
+#, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr ""
+
+#: gcc.c:4964
+#, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr ""
+
+#: gcc.c:4982
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr ""
+
+#: gcc.c:5107
+#, fuzzy, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "нераÑпазнаны выбар \"-%s\""
+
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "у функцыі \"%s\":"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr ""
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "не хапае аргументаў у функцыі"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
+msgid "mismatched braces in specs"
+msgstr ""
+
+#: gcc.c:6081
+#, c-format
+msgid "unrecognized option `-%s'"
+msgstr "нераÑпазнаны выбар \"-%s\""
+
+#: gcc.c:6087
+#, c-format
+msgid "install: %s%s\n"
+msgstr ""
+
+#: gcc.c:6088
+#, c-format
+msgid "programs: %s\n"
+msgstr "праграмы: %s\n"
+
+#: gcc.c:6089
+#, c-format
+msgid "libraries: %s\n"
+msgstr "бібліÑÑ‚Ñкі: %s\n"
+
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"ІнÑтрукцыі Ð´Ð»Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½ÑÑž аб памылках глÑдзіце тут:\n"
+
+#: gcc.c:6162
+#, c-format
+msgid "Configured with: %s\n"
+msgstr ""
+
+#: gcc.c:6176
+#, c-format
+msgid "Thread model: %s\n"
+msgstr ""
+
+#: gcc.c:6187
+#, c-format
+msgid "gcc version %s\n"
+msgstr "верÑÑ–Ñ gcc %s\n"
+
+#: gcc.c:6189
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr ""
+
+#: gcc.c:6197
+#, fuzzy
+msgid "no input files"
+msgstr "нÑма ўваходзÑчых файлаў"
+
+#: gcc.c:6235
+#, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: %s кампілÑтар не ÑžÑталÑваны на гÑтай ÑÑ–ÑÑ‚Ñме"
+
+#: gcc.c:6310
+#, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr ""
+
+#: gcc.c:6353
+#, c-format
+msgid "language %s not recognized"
+msgstr "мова %s не раÑпазнана"
+
+#: gcc.c:6456
+#, fuzzy
+msgid "internal gcc abort"
+msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
+
+#: gcov.c:325
+msgid "Internal gcov abort.\n"
+msgstr ""
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+
+#: gcov.c:340
+#, fuzzy
+msgid " -h, --help Print this help, then exit\n"
+msgstr " --help ÐдлюÑтраваць гÑту інфармацыю\n"
+
+#: gcov.c:341
+#, fuzzy
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -dumpversion ÐдлюÑтраваць верÑÑ–ÑŽ кампілÑтара\n"
+
+#: gcov.c:342
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr ""
+
+#: gcov.c:343
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr ""
+
+#: gcov.c:345
+#, fuzzy
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -o <файл> ПамÑÑціць вывад у <файл>\n"
+
+#: gcov.c:346
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr ""
+
+#: gcov.c:348
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr ""
+
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr ""
+
+#: gcov.c:351
+#, fuzzy, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"ІнÑтрукцыі Ð´Ð»Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½ÑÑž аб памылках глÑдзіце тут:\n"
+
+#: gcov.c:361
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr ""
+
+#: gcov.c:362
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+
+#: gcov.c:500
+#, c-format
+msgid "Could not open basic block file %s.\n"
+msgstr ""
+
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr ""
+
+#: gcov.c:524
+#, c-format
+msgid "Could not open data file %s.\n"
+msgstr "Ðемагчыма адчыніць файл з дадзенымі %s.\n"
+
+#: gcov.c:525
+msgid "Assuming that all execution counts are zero.\n"
+msgstr ""
+
+#: gcov.c:534
+#, c-format
+msgid "No executable code associated with file %s.\n"
+msgstr ""
+
+#: gcov.c:1186
+#, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr ""
+
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
+msgstr ""
+
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr ""
+
+#: gcov.c:1203
+#, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr ""
+
+#: gcov.c:1209
+#, c-format
+msgid "No branches in %s %s\n"
+msgstr ""
+
+#: gcov.c:1211
+#, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr ""
+
+#: gcov.c:1216
+#, c-format
+msgid "No calls in %s %s\n"
+msgstr ""
+
+#: gcov.c:1351
+#, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr ""
+
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr ""
+
+#: gcov.c:1367
+#, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr ""
+
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
+
+#: gcov.c:1398
+#, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr ""
+
+#: gcov.c:1470
+#, c-format
+msgid "Could not open source file %s.\n"
+msgstr ""
+
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr ""
+
+#: gcov.c:1510
+#, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr ""
+
+#: gcov.c:1532
+#, c-format
+msgid "call %2d never executed\n"
+msgstr ""
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
+msgstr ""
+
+#: gcov.c:1543
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr ""
+
+#: gcov.c:1546
+#, c-format
+msgid "branch %2d taken %s\n"
+msgstr ""
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr ""
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "памылка запіÑу Ñž %s"
+
+#: gcov.c:1618
+#, c-format
+msgid "Could not open output file %s.\n"
+msgstr ""
+
+#: gcse.c:763
+#, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr ""
+
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr ""
+
+#: genautomata.c:1490
+#, c-format
+msgid "Name `%s' contains quotes"
+msgstr ""
+
+#: genautomata.c:1621
+#, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr ""
+
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr ""
+
+#: genautomata.c:1682 genautomata.c:1685
+#, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr ""
+
+#: genautomata.c:1720
+#, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr ""
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr ""
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr ""
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr ""
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr ""
+
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr ""
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr ""
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr ""
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "пуÑтое абвÑшчÑнне"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: genautomata.c:2790 genautomata.c:2793
+#, fuzzy, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: genautomata.c:2810 genautomata.c:2815
+#, fuzzy, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr ""
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr ""
+
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "адмеціна `%s' вызначана, але Ð½Ñ Ð²Ñ‹ÐºÐ°Ñ€Ñ‹Ñтоўваецца"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "вÑртаемы тып \"%s\" не \"int\""
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "перанакіраванне stdout: %s"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "нÑма аргументаў"
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr ""
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr ""
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "памылка запіÑу Ñž %s"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "нÑма ўваходзÑчых файлаў"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, c-format
+msgid "can't open %s"
+msgstr "немагчыма адчыніць %s"
+
+#: haifa-sched.c:196
+#, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr ""
+
+#: integrate.c:174
+msgid "function cannot be inline"
+msgstr ""
+
+#: integrate.c:178
+msgid "varargs function cannot be inline"
+msgstr ""
+
+#: integrate.c:181
+msgid "function using alloca cannot be inline"
+msgstr ""
+
+#: integrate.c:184
+msgid "function using setjmp cannot be inline"
+msgstr ""
+
+#: integrate.c:187
+msgid "function uses __builtin_eh_return"
+msgstr ""
+
+#: integrate.c:190
+msgid "function with nested functions cannot be inline"
+msgstr ""
+
+#: integrate.c:194
+msgid "function with label addresses used in initializers cannot inline"
+msgstr ""
+
+#: integrate.c:201 integrate.c:245
+msgid "function too large to be inline"
+msgstr ""
+
+#: integrate.c:211
+msgid "no prototype, and parameter address used; cannot be inline"
+msgstr ""
+
+#: integrate.c:218 integrate.c:263
+msgid "inline functions not supported for this return value type"
+msgstr ""
+
+#: integrate.c:223
+msgid "function with varying-size return value cannot be inline"
+msgstr ""
+
+#: integrate.c:230
+msgid "function with varying-size parameter cannot be inline"
+msgstr ""
+
+#: integrate.c:233
+msgid "function with transparent unit parameter cannot be inline"
+msgstr ""
+
+#: integrate.c:252
+msgid "function with computed jump cannot inline"
+msgstr ""
+
+#: integrate.c:256
+msgid "function with nonlocal goto cannot be inline"
+msgstr ""
+
+#: integrate.c:270
+msgid "function with target specific attribute(s) cannot be inlined"
+msgstr ""
+
+#: line-map.c:198
+#, c-format
+msgid "In file included from %s:%u"
+msgstr ""
+
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ""
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, c-format
+msgid "invalid parameter `%s'"
+msgstr "нерÑчаіÑны парамÑÑ‚Ñ€ `%s'"
+
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr ""
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr ""
+
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgstr ""
+
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
+msgstr ""
+
+#: protoize.c:542
+#, c-format
+msgid "%s: internal abort\n"
+msgstr "%s: ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° (датÑрміновае завÑршÑньне)\n"
+
+#: protoize.c:633
+#, c-format
+msgid "%s: error writing file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:678
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr ""
+
+#: protoize.c:681
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr ""
+
+#: protoize.c:788
+#, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr ""
+
+#: protoize.c:796
+#, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr ""
+
+#: protoize.c:804
+#, c-format
+msgid "%s: warning: no write access for dir containing `%s'\n"
+msgstr ""
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr ""
+
+#: protoize.c:1374
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr ""
+
+#: protoize.c:1395
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+
+#: protoize.c:1731
+#, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
+msgstr ""
+
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr "%s: кампілюецца \"%s\"\n"
+
+#: protoize.c:2012
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr ""
+
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr ""
+
+#: protoize.c:2025
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr ""
+
+#: protoize.c:2077
+#, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
+msgstr ""
+
+#: protoize.c:2086 protoize.c:2115
+#, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2131 protoize.c:2159
+#, c-format
+msgid "%s: can't get status of aux info file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2187
+#, c-format
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
+msgstr ""
+
+#: protoize.c:2205
+#, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2218
+#, c-format
+msgid "%s: error closing aux info file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2234
+#, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2316 protoize.c:4318
+#, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s: немагчыма знішчыць файл \"%s\": %s\n"
+
+#: protoize.c:2395
+#, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr ""
+
+#: protoize.c:2520
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr ""
+
+#: protoize.c:2524
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr ""
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr ""
+
+#: protoize.c:2559
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+msgstr ""
+
+#: protoize.c:2599
+#, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+msgstr ""
+
+#: protoize.c:2605
+#, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
+msgstr "%s: %d: увага: нÑма знешнÑга (extern) абвÑшчÑÐ½Ð½Ñ Ð´Ð»Ñ \"%s\"\n"
+
+#: protoize.c:2636
+#, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+msgstr ""
+
+#: protoize.c:2642
+#, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
+msgstr ""
+
+#: protoize.c:2815 protoize.c:2818
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr ""
+
+#: protoize.c:3024
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr ""
+
+#: protoize.c:3039
+#, c-format
+msgid "%s: declaration of function `%s' not converted\n"
+msgstr ""
+
+#: protoize.c:3162
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+msgstr ""
+
+#: protoize.c:3183
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr ""
+
+#: protoize.c:3281
+#, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+msgstr ""
+
+#: protoize.c:3459
+#, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
+msgstr ""
+
+#: protoize.c:3486
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr ""
+
+#: protoize.c:3560
+#, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
+msgstr ""
+
+#: protoize.c:3651 protoize.c:3681
+#, c-format
+msgid "%s: definition of function `%s' not converted\n"
+msgstr ""
+
+#: protoize.c:3670
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr ""
+
+#: protoize.c:4000
+#, c-format
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr ""
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+msgstr ""
+
+#: protoize.c:4019
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr ""
+
+#: protoize.c:4078
+#, c-format
+msgid "%s: `%s' not converted\n"
+msgstr ""
+
+#: protoize.c:4086
+#, c-format
+msgid "%s: would convert file `%s'\n"
+msgstr ""
+
+#: protoize.c:4089
+#, c-format
+msgid "%s: converting file `%s'\n"
+msgstr ""
+
+#: protoize.c:4099
+#, c-format
+msgid "%s: can't get status for file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:4141
+#, c-format
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s: немагчыма адчыніць файл `%s' Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ: %s\n"
+
+#: protoize.c:4156
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr ""
+"\n"
+"%s: памылка Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ Ñ„Ð°Ð¹Ð»Ð° ўводу `%s': %s\n"
+
+#: protoize.c:4190
+#, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:4295
+#, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
+msgstr "%s: увага: файл \"%s\" ужо запіÑан у \"%s\"\n"
+
+#: protoize.c:4303
+#, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr ""
+
+#: protoize.c:4333
+#, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
+msgstr ""
+
+#: protoize.c:4366
+#, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
+msgstr "%s: немагчыма зьмÑніць Ñ€Ñжым файла `%s': %s\n"
+
+#: protoize.c:4541
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr ""
+
+#: protoize.c:4639
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: файл уводу павінен мець ÑÑƒÑ„Ñ–ÐºÑ .c: %s\n"
+
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr ""
+
+#: reg-stack.c:673
+#, c-format
+msgid "output constraint %d must specify a single register"
+msgstr ""
+
+#: reg-stack.c:683
+#, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr ""
+
+#: reg-stack.c:706
+msgid "output regs must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.c:743
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.c:762
+#, c-format
+msgid "output operand %d must use `&' constraint"
+msgstr ""
+
+#: regclass.c:756
+#, c-format
+msgid "can't use '%s' as a %s register"
+msgstr ""
+
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, c-format
+msgid "unknown register name: %s"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s"
+
+#: regclass.c:782
+msgid "global register variable follows a function definition"
+msgstr ""
+
+#: regclass.c:786
+msgid "register used for two global register variables"
+msgstr ""
+
+#: regclass.c:791
+msgid "call-clobbered register used for global register variable"
+msgstr ""
+
+#: regrename.c:1899
+#, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr ""
+
+#: regrename.c:1911
+#, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr ""
+
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr ""
+
+#: regrename.c:1926
+#, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr ""
+
+#: reload.c:1229
+msgid "cannot reload integer constant operand in `asm'"
+msgstr ""
+
+#: reload.c:1251
+msgid "impossible register constraint in `asm'"
+msgstr ""
+
+#: reload.c:3461
+msgid "`&' constraint used with no register class"
+msgstr ""
+
+#: reload.c:3629
+msgid "unable to generate reloads for:"
+msgstr ""
+
+#: reload.c:3630 reload.c:3844
+msgid "inconsistent operand constraints in an `asm'"
+msgstr ""
+
+#: reload1.c:1250
+msgid "frame size too large for reliable stack checking"
+msgstr ""
+
+#: reload1.c:1253
+msgid "try reducing the number of local variables"
+msgstr ""
+
+#: reload1.c:1909
+#, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
+msgstr ""
+
+#: reload1.c:1913
+#, c-format
+msgid "unable to find a register to spill in class `%s'"
+msgstr ""
+
+#: reload1.c:1915
+msgid "this is the insn:"
+msgstr ""
+
+#: reload1.c:3938
+msgid "`asm' operand requires impossible reload"
+msgstr ""
+
+#. It's the compiler's fault.
+#: reload1.c:5052
+#, fuzzy
+msgid "could not find a spill register"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#: reload1.c:5057
+msgid "`asm' operand constraint incompatible with operand size"
+msgstr ""
+
+#. It's the compiler's fault.
+#: reload1.c:6679
+msgid "VOIDmode on an output"
+msgstr ""
+
+#: reload1.c:6680
+msgid "output operand is constant in `asm'"
+msgstr ""
+
+#: rtl-error.c:140
+#, fuzzy
+msgid "unrecognizable insn:"
+msgstr "нераÑпазнаны выбар \"-%s\""
+
+#: rtl-error.c:142
+msgid "insn does not satisfy its constraints:"
+msgstr ""
+
+#: rtl.c:535
+#, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:550
+#, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:566
+#, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:579
+#, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:593
+#, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:608
+#, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.c:766
+#, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
+msgstr ""
+
+#: stmt.c:1002 stmt.c:3766
+#, c-format
+msgid "label `%s' used before containing binding contour"
+msgstr ""
+
+#: stmt.c:1190
+msgid "output operand constraint lacks `='"
+msgstr ""
+
+#: stmt.c:1205
+#, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
+msgstr ""
+
+#: stmt.c:1227
+msgid "operand constraint contains incorrectly positioned '+' or '='"
+msgstr ""
+
+#: stmt.c:1233 stmt.c:1337
+#, c-format
+msgid "`%%' constraint used with last operand"
+msgstr ""
+
+#: stmt.c:1252
+msgid "matching constraint not valid in output operand"
+msgstr ""
+
+#: stmt.c:1328
+#, c-format
+msgid "input operand constraint contains `%c'"
+msgstr ""
+
+#: stmt.c:1368
+msgid "matching constraint references invalid operand number"
+msgstr ""
+
+#: stmt.c:1400
+#, c-format
+msgid "invalid punctuation `%c' in constraint"
+msgstr ""
+
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr ""
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr ""
+
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
+msgstr ""
+
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
+msgstr ""
+
+#: stmt.c:1728
+#, c-format
+msgid "asm operand %d probably doesn't match constraints"
+msgstr ""
+
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+#, fuzzy
+msgid "asm clobber conflict with output operand"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: stmt.c:1894
+#, fuzzy
+msgid "asm clobber conflict with input operand"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: stmt.c:1929
+msgid "too many alternatives in `asm'"
+msgstr ""
+
+#: stmt.c:1941
+msgid "operand constraints for `asm' differ in number of alternatives"
+msgstr ""
+
+#: stmt.c:1994
+#, fuzzy, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: stmt.c:2081
+msgid "missing close brace for named operand"
+msgstr ""
+
+#: stmt.c:2109
+#, fuzzy, c-format
+msgid "undefined named operand '%s'"
+msgstr "нераÑпазнаны аператар %s"
+
+#: stmt.c:3703
+#, c-format
+msgid "unused variable `%s'"
+msgstr "невыкарыÑÑ‚Ð¾ÑžÐ²Ð°ÐµÐ¼Ð°Ñ Ð¿ÐµÑ€Ð°Ð¼ÐµÐ½Ð½Ð°Ñ \"%s\""
+
+#: stmt.c:5189
+#, c-format
+msgid "enumeration value `%s' not handled in switch"
+msgstr ""
+
+#: stmt.c:5214 stmt.c:5234
+#, c-format
+msgid "case value `%ld' not in enumerated type"
+msgstr ""
+
+#: stmt.c:5217 stmt.c:5237
+#, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
+msgstr ""
+
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr ""
+
+#: stor-layout.c:178
+msgid "type size can't be explicitly evaluated"
+msgstr ""
+
+#: stor-layout.c:180
+msgid "variable-size type declared outside of any function"
+msgstr ""
+
+#: stor-layout.c:487
+#, c-format
+msgid "size of `%s' is %d bytes"
+msgstr "памер \"%s\" - %d байт"
+
+#: stor-layout.c:489
+#, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "памер \"%s\" больш чам %d байт"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
+msgstr ""
+
+#: stor-layout.c:911 stor-layout.c:1327
+#, c-format
+msgid "packed attribute is unnecessary for `%s'"
+msgstr ""
+
+#: stor-layout.c:926
+#, c-format
+msgid "padding struct to align `%s'"
+msgstr ""
+
+#: stor-layout.c:1289
+msgid "padding struct size to alignment boundary"
+msgstr ""
+
+#: stor-layout.c:1332
+msgid "packed attribute causes inefficient alignment"
+msgstr ""
+
+#: stor-layout.c:1334
+msgid "packed attribute is unnecessary"
+msgstr ""
+
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+
+#. Print total time.
+#: timevar.c:503
+msgid " TOTAL :"
+msgstr ""
+
+#: timevar.c:539
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr ""
+
+#: tlink.c:399
+#, c-format
+msgid "collect: reading %s\n"
+msgstr ""
+
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr ""
+
+#: tlink.c:674
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr ""
+
+#: tlink.c:721
+msgid "collect: relinking\n"
+msgstr ""
+
+#: tlink.c:730
+#, c-format
+msgid "ld returned %d exit status"
+msgstr ""
+
+#: toplev.c:920
+msgid "Generate debugging info in default format"
+msgstr ""
+
+#: toplev.c:921
+msgid "Generate debugging info in default extended format"
+msgstr ""
+
+#: toplev.c:923
+msgid "Generate STABS format debug info"
+msgstr ""
+
+#: toplev.c:924
+msgid "Generate extended STABS format debug info"
+msgstr ""
+
+#: toplev.c:927
+msgid "Generate DWARF-1 format debug info"
+msgstr ""
+
+#: toplev.c:929
+msgid "Generate extended DWARF-1 format debug info"
+msgstr ""
+
+#: toplev.c:932
+msgid "Generate DWARF-2 debug info"
+msgstr ""
+
+#: toplev.c:935
+msgid "Generate XCOFF format debug info"
+msgstr ""
+
+#: toplev.c:936
+msgid "Generate extended XCOFF format debug info"
+msgstr ""
+
+#: toplev.c:939
+msgid "Generate COFF format debug info"
+msgstr ""
+
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr ""
+
+#: toplev.c:981
+msgid "Perform DWARF2 duplicate elimination"
+msgstr ""
+
+#: toplev.c:983
+msgid "Do not store floats in registers"
+msgstr ""
+
+#: toplev.c:985
+msgid "Consider all mem refs through pointers as volatile"
+msgstr ""
+
+#: toplev.c:987
+msgid "Consider all mem refs to global data to be volatile"
+msgstr ""
+
+#: toplev.c:989
+msgid "Consider all mem refs to static data to be volatile"
+msgstr ""
+
+#: toplev.c:991
+msgid "Defer popping functions args from stack until later"
+msgstr ""
+
+#: toplev.c:993
+msgid "When possible do not generate stack frames"
+msgstr ""
+
+#: toplev.c:995
+msgid "Optimize sibling and tail recursive calls"
+msgstr ""
+
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
+msgid "When running CSE, follow jumps to their targets"
+msgstr ""
+
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
+msgstr ""
+
+#: toplev.c:1003
+msgid "Perform a number of minor, expensive optimizations"
+msgstr ""
+
+#: toplev.c:1005
+msgid "Perform jump threading optimizations"
+msgstr ""
+
+#: toplev.c:1007
+msgid "Perform strength reduction optimizations"
+msgstr ""
+
+#: toplev.c:1009
+msgid "Perform loop unrolling when iteration count is known"
+msgstr ""
+
+#: toplev.c:1011
+msgid "Perform loop unrolling for all loops"
+msgstr ""
+
+#: toplev.c:1013
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr ""
+
+#: toplev.c:1015
+msgid "Force all loop invariant computations out of loops"
+msgstr ""
+
+#: toplev.c:1017
+msgid "Strength reduce all loop general induction variables"
+msgstr ""
+
+#: toplev.c:1019
+msgid "Store strings in writable data section"
+msgstr ""
+
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
+msgstr ""
+
+#: toplev.c:1023
+msgid "Copy memory operands into registers before using"
+msgstr ""
+
+#: toplev.c:1025
+msgid "Copy memory address constants into regs before using"
+msgstr ""
+
+#: toplev.c:1027
+msgid "Allow function addresses to be held in registers"
+msgstr ""
+
+#: toplev.c:1029
+msgid "Integrate simple functions into their callers"
+msgstr ""
+
+#: toplev.c:1031
+msgid "Generate code for funcs even if they are fully inlined"
+msgstr ""
+
+#: toplev.c:1033
+msgid "Pay attention to the 'inline' keyword"
+msgstr ""
+
+#: toplev.c:1035
+msgid "Emit static const variables even if they are not used"
+msgstr ""
+
+#: toplev.c:1037
+msgid "Check for syntax errors, then stop"
+msgstr ""
+
+#: toplev.c:1039
+msgid "Mark data as shared rather than private"
+msgstr ""
+
+#: toplev.c:1041
+msgid "Enable saving registers around function calls"
+msgstr ""
+
+#: toplev.c:1043
+msgid "Return 'short' aggregates in memory, not registers"
+msgstr ""
+
+#: toplev.c:1045
+msgid "Return 'short' aggregates in registers"
+msgstr ""
+
+#: toplev.c:1047
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr ""
+
+#: toplev.c:1049
+msgid "Perform the global common subexpression elimination"
+msgstr ""
+
+#: toplev.c:1051
+msgid "Perform enhanced load motion during global subexpression elimination"
+msgstr ""
+
+#: toplev.c:1053
+msgid "Perform store motion after global subexpression elimination"
+msgstr ""
+
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr ""
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr ""
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr ""
+
+#: toplev.c:1063
+msgid "Run CSE pass after loop optimizations"
+msgstr ""
+
+#: toplev.c:1065
+msgid "Run the loop optimizer twice"
+msgstr ""
+
+#: toplev.c:1067
+msgid "Delete useless null pointer checks"
+msgstr ""
+
+#: toplev.c:1069
+msgid "Reschedule instructions before register allocation"
+msgstr ""
+
+#: toplev.c:1071
+msgid "Reschedule instructions after register allocation"
+msgstr ""
+
+#: toplev.c:1073
+msgid "Enable scheduling across basic blocks"
+msgstr ""
+
+#: toplev.c:1075
+msgid "Allow speculative motion of non-loads"
+msgstr ""
+
+#: toplev.c:1077
+msgid "Allow speculative motion of some loads"
+msgstr ""
+
+#: toplev.c:1079
+msgid "Allow speculative motion of more loads"
+msgstr ""
+
+#: toplev.c:1081
+msgid "Replace add,compare,branch with branch on count reg"
+msgstr ""
+
+#: toplev.c:1083
+msgid "Generate position independent code, if possible"
+msgstr ""
+
+#: toplev.c:1086
+msgid "Enable exception handling"
+msgstr "Уключыць апрацоўку выключÑньнÑÑž"
+
+#: toplev.c:1088
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: toplev.c:1090
+msgid "Generate unwind tables exact at each instruction boundary"
+msgstr ""
+
+#: toplev.c:1092
+msgid "Support synchronous non-call exceptions"
+msgstr ""
+
+#: toplev.c:1094
+msgid "Insert arc based program profiling code"
+msgstr ""
+
+#: toplev.c:1096
+msgid "Create data files needed by gcov"
+msgstr ""
+
+#: toplev.c:1098
+msgid "Use profiling information for branch probabilities"
+msgstr ""
+
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr ""
+
+#: toplev.c:1102
+msgid "Reorder basic blocks to improve code placement"
+msgstr ""
+
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+
+#: toplev.c:1106
+msgid "Do the register renaming optimization pass"
+msgstr ""
+
+#: toplev.c:1108
+msgid "Do the register copy-propagation optimization pass"
+msgstr ""
+
+#: toplev.c:1110
+msgid "Do not put uninitialized globals in the common section"
+msgstr ""
+
+#: toplev.c:1112
+msgid "Do not generate .size directives"
+msgstr ""
+
+#: toplev.c:1114
+msgid "place each function into its own section"
+msgstr ""
+
+#: toplev.c:1116
+msgid "place data items into their own section"
+msgstr ""
+
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
+msgstr ""
+
+#: toplev.c:1120
+msgid "Output GNU ld formatted global initializers"
+msgstr ""
+
+#: toplev.c:1122
+msgid "Enables a register move optimization"
+msgstr ""
+
+#: toplev.c:1124
+msgid "Do the full regmove optimization pass"
+msgstr ""
+
+#: toplev.c:1126
+msgid "Pack structure members together without holes"
+msgstr ""
+
+#: toplev.c:1128
+msgid "Insert stack checking code into the program"
+msgstr "Уключаць код правÑркі ÑÑ‚Ñку Ñž праграму"
+
+#: toplev.c:1130
+msgid "Specify that arguments may alias each other & globals"
+msgstr ""
+
+#: toplev.c:1132
+msgid "Assume arguments may alias globals but not each other"
+msgstr ""
+
+#: toplev.c:1134
+msgid "Assume arguments do not alias each other or globals"
+msgstr ""
+
+#: toplev.c:1136
+msgid "Assume strict aliasing rules apply"
+msgstr ""
+
+#: toplev.c:1138
+msgid "Align the start of loops"
+msgstr ""
+
+#: toplev.c:1140
+msgid "Align labels which are only reached by jumping"
+msgstr ""
+
+#: toplev.c:1142
+msgid "Align all labels"
+msgstr ""
+
+#: toplev.c:1144
+msgid "Align the start of functions"
+msgstr ""
+
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
+msgstr ""
+
+#: toplev.c:1148
+msgid "Attempt to merge identical constants and constant variables"
+msgstr ""
+
+#: toplev.c:1150
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr ""
+
+#: toplev.c:1152
+msgid "Instrument function entry/exit with profiling calls"
+msgstr ""
+
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr ""
+
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
+msgstr "Уключаць SSA аптымізацыю"
+
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
+msgstr ""
+
+#: toplev.c:1160
+msgid "Enable aggressive SSA dead code elimination"
+msgstr ""
+
+#: toplev.c:1162
+msgid "External symbols have a leading underscore"
+msgstr ""
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr ""
+
+#: toplev.c:1166
+msgid "Enables an rtl peephole pass run before sched2"
+msgstr ""
+
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
+msgid "Enables guessing of branch probabilities"
+msgstr ""
+
+#: toplev.c:1172
+msgid "Set errno after built-in math functions"
+msgstr ""
+
+#: toplev.c:1174
+msgid "Floating-point operations can trap"
+msgstr ""
+
+#: toplev.c:1176
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+msgstr ""
+
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr ""
+
+#: toplev.c:1180
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: toplev.c:1182
+msgid "Convert floating point constant to single precision constant"
+msgstr ""
+
+#: toplev.c:1184
+msgid "Report time taken by each compiler pass at end of run"
+msgstr ""
+
+#: toplev.c:1186
+msgid "Report on permanent memory allocation at end of run"
+msgstr ""
+
+#: toplev.c:1188
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
+msgstr ""
+
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr ""
+
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr ""
+
+#: toplev.c:1209
+msgid "Determine language standard"
+msgstr ""
+
+#: toplev.c:1213
+msgid "Make bit-fields by unsigned by default"
+msgstr ""
+
+#: toplev.c:1217
+msgid "Make 'char' be signed by default"
+msgstr ""
+
+#: toplev.c:1219
+msgid "Make 'char' be unsigned by default"
+msgstr ""
+
+#: toplev.c:1225
+msgid "Do not recognize the 'asm' keyword"
+msgstr ""
+
+#: toplev.c:1228
+#, fuzzy
+msgid "Do not recognize any built in functions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: toplev.c:1230
+msgid "Assume normal C execution environment"
+msgstr ""
+
+#: toplev.c:1233
+msgid "Assume that standard libraries & main might not exist"
+msgstr ""
+
+#: toplev.c:1236
+msgid "Allow different types as args of ? operator"
+msgstr ""
+
+#: toplev.c:1239
+msgid "Allow the use of $ inside identifiers"
+msgstr ""
+
+#: toplev.c:1244
+msgid "Use the same size for double as for float"
+msgstr ""
+
+#: toplev.c:1247
+msgid "Use the smallest fitting integer to hold enums"
+msgstr ""
+
+#: toplev.c:1250
+msgid "Override the underlying type for wchar_t to `unsigned short'"
+msgstr ""
+
+#: toplev.c:1254
+msgid "Enable most warning messages"
+msgstr ""
+
+#: toplev.c:1256
+msgid "Warn about casting functions to incompatible types"
+msgstr ""
+
+#: toplev.c:1259
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr ""
+
+#: toplev.c:1262
+msgid "Warn about casts which discard qualifiers"
+msgstr ""
+
+#: toplev.c:1265
+msgid "Warn about subscripts whose type is 'char'"
+msgstr ""
+
+#: toplev.c:1268 toplev.c:1271
+msgid "Warn if nested comments are detected"
+msgstr ""
+
+#: toplev.c:1274
+msgid "Warn about possibly confusing type conversions"
+msgstr ""
+
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr ""
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr ""
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+msgstr ""
+
+#: toplev.c:1287
+msgid "Don't warn about too many arguments to format functions"
+msgstr ""
+
+#: toplev.c:1289
+msgid "Warn about non-string-literal format strings"
+msgstr ""
+
+#: toplev.c:1292
+msgid "Warn about possible security problems with format functions"
+msgstr ""
+
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr ""
+
+#: toplev.c:1298
+msgid "Warn about implicit function declarations"
+msgstr ""
+
+#: toplev.c:1302
+msgid "Warn when a declaration does not specify a type"
+msgstr ""
+
+#: toplev.c:1307
+msgid "Warn about the use of the #import directive"
+msgstr ""
+
+#: toplev.c:1311
+msgid "Do not warn about using 'long long' when -pedantic"
+msgstr ""
+
+#: toplev.c:1313
+msgid "Warn about suspicious declarations of main"
+msgstr ""
+
+#: toplev.c:1316
+msgid "Warn about possibly missing braces around initializers"
+msgstr ""
+
+#: toplev.c:1319
+msgid "Warn about global funcs without previous declarations"
+msgstr ""
+
+#: toplev.c:1322
+msgid "Warn about global funcs without prototypes"
+msgstr ""
+
+#: toplev.c:1325
+msgid "Warn about use of multicharacter literals"
+msgstr ""
+
+#: toplev.c:1328
+msgid "Warn about externs not at file scope level"
+msgstr ""
+
+#: toplev.c:1331
+msgid "Warn about possible missing parentheses"
+msgstr ""
+
+#: toplev.c:1334
+msgid "Warn about function pointer arithmetic"
+msgstr ""
+
+#: toplev.c:1337
+msgid "Warn about multiple declarations of the same object"
+msgstr ""
+
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr ""
+
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr ""
+
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr ""
+
+#: toplev.c:1349
+msgid "Warn about non-prototyped function decls"
+msgstr ""
+
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr ""
+
+#: toplev.c:1355
+msgid "Warn when trigraphs are encountered"
+msgstr ""
+
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr ""
+
+#: toplev.c:1363
+msgid "Mark strings as 'const char *'"
+msgstr ""
+
+#: toplev.c:1508
+msgid "Warn when a function is unused"
+msgstr ""
+
+#: toplev.c:1510
+msgid "Warn when a label is unused"
+msgstr ""
+
+#: toplev.c:1512
+msgid "Warn when a function parameter is unused"
+msgstr ""
+
+#: toplev.c:1514
+msgid "Warn when a variable is unused"
+msgstr ""
+
+#: toplev.c:1516
+msgid "Warn when an expression value is unused"
+msgstr ""
+
+#: toplev.c:1518
+msgid "Do not suppress warnings from system headers"
+msgstr ""
+
+#: toplev.c:1520
+msgid "Treat all warnings as errors"
+msgstr ""
+
+#: toplev.c:1522
+msgid "Warn when one local variable shadows another"
+msgstr ""
+
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr ""
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr ""
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr ""
+
+#: toplev.c:1530
+msgid "Warn about returning structures, unions or arrays"
+msgstr ""
+
+#: toplev.c:1532
+msgid "Warn about pointer casts which increase alignment"
+msgstr ""
+
+#: toplev.c:1534
+msgid "Warn about code that will never be executed"
+msgstr ""
+
+#: toplev.c:1536
+msgid "Warn about uninitialized automatic variables"
+msgstr ""
+
+#: toplev.c:1538
+msgid "Warn when an inlined function cannot be inlined"
+msgstr ""
+
+#: toplev.c:1540
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr ""
+
+#: toplev.c:1542
+msgid "Warn when padding is required to align struct members"
+msgstr ""
+
+#: toplev.c:1544
+msgid "Warn when an optimization pass is disabled"
+msgstr ""
+
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr ""
+
+#: toplev.c:1548
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr ""
+
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr ""
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, fuzzy, c-format
+msgid "invalid option `%s'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: toplev.c:2031
+#, c-format
+msgid "`%s' used but never defined"
+msgstr ""
+
+#: toplev.c:2034
+#, c-format
+msgid "`%s' declared `static' but never defined"
+msgstr ""
+
+#: toplev.c:2057
+#, c-format
+msgid "`%s' defined but not used"
+msgstr ""
+
+#: toplev.c:2280
+#, c-format
+msgid "invalid register name `%s' for register variable"
+msgstr ""
+
+#: toplev.c:3697
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr ""
+
+#: toplev.c:3698
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr ""
+
+#: toplev.c:3699
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr ""
+
+#: toplev.c:3700
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr ""
+
+#: toplev.c:3701
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr ""
+
+#: toplev.c:3702
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr ""
+
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr ""
+
+#: toplev.c:3719
+msgid " -Os Optimize for space rather than speed\n"
+msgstr ""
+
+#: toplev.c:3731
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr ""
+
+#: toplev.c:3732
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr ""
+
+#: toplev.c:3733
+msgid " -w Suppress warnings\n"
+msgstr ""
+
+#: toplev.c:3734
+msgid " -W Enable extra warnings\n"
+msgstr ""
+
+#: toplev.c:3745
+msgid " -Wunused Enable unused warnings\n"
+msgstr ""
+
+#: toplev.c:3746
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr ""
+
+#: toplev.c:3747
+msgid " -p Enable function profiling\n"
+msgstr ""
+
+#: toplev.c:3748
+msgid " -o <file> Place output into <file> \n"
+msgstr ""
+
+#: toplev.c:3749
+msgid ""
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
+msgstr ""
+
+#: toplev.c:3760
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr ""
+
+#: toplev.c:3761
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr ""
+
+#: toplev.c:3762
+msgid " -version Display the compiler's version\n"
+msgstr ""
+
+#: toplev.c:3763
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr ""
+
+#: toplev.c:3764
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr ""
+
+#: toplev.c:3766
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr ""
+
+#: toplev.c:3768
+msgid " --help Display this information\n"
+msgstr ""
+
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+"\n"
+"Выбары, ÑÐ¿ÐµÑ†Ñ‹Ñ„Ñ–Ñ‡Ð½Ñ‹Ñ Ð´Ð»Ñ Ð¼Ð¾Ð²Ñ‹:\n"
+
+#: toplev.c:3795
+#, c-format
+msgid " %-23.23s [undocumented]\n"
+msgstr ""
+
+#: toplev.c:3803 toplev.c:3817
+#, c-format
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr ""
+
+#: toplev.c:3807
+#, c-format
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr ""
+"\n"
+" Выбары Ð´Ð»Ñ %s:\n"
+
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+
+#: toplev.c:3858 toplev.c:3877
+#, c-format
+msgid " -m%-23.23s [undocumented]\n"
+msgstr ""
+
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr ""
+
+#: toplev.c:3888
+msgid " They exist, but they are not documented.\n"
+msgstr ""
+
+#: toplev.c:3941
+#, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr ""
+
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "\"%s\" : невÑдомы ці непадтрымліваемы выбар -g"
+
+#: toplev.c:4034
+#, c-format
+msgid "unrecognized register name `%s'"
+msgstr ""
+
+#: toplev.c:4059 toplev.c:5012
+#, fuzzy, c-format
+msgid "unrecognized option `%s'"
+msgstr "нераÑпазнаны выбар \"-%s\""
+
+#: toplev.c:4107
+#, fuzzy
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr "-pipe не падтрымліваецца."
+
+#: toplev.c:4184
+#, c-format
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr ""
+
+#: toplev.c:4187
+msgid "use -gdwarf-2 for DWARF v2"
+msgstr ""
+
+#: toplev.c:4192
+#, c-format
+msgid "ignoring option `%s' due to invalid debug level specification"
+msgstr ""
+
+#: toplev.c:4215 toplev.c:5010
+#, c-format
+msgid "`%s': unknown or unsupported -g option"
+msgstr "\"%s\" : невÑдомы ці непадтрымліваемы выбар -g"
+
+#: toplev.c:4222
+#, c-format
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr ""
+
+#: toplev.c:4304
+msgid "-param option missing argument"
+msgstr ""
+
+#: toplev.c:4313
+#, c-format
+msgid "invalid --param option: %s"
+msgstr "нерÑчаіÑны выбар --param : %s"
+
+#: toplev.c:4325
+#, c-format
+msgid "invalid parameter value `%s'"
+msgstr ""
+
+#: toplev.c:4565
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
+msgstr ""
+"%s%s%s верÑÑ–Ñ %s (%s)\n"
+"%s\tзкампілÑвана GNU C верÑÑ–Ñ %s.\n"
+"%s%s%s верÑÑ–Ñ %s (%s) зкампілÑвана CC.\n"
+
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
+msgid "options passed: "
+msgstr ""
+
+#: toplev.c:4659
+msgid "options enabled: "
+msgstr "выбары ўключаны:"
+
+#: toplev.c:4718 java/jcf-write.c:3453
+#, c-format
+msgid "can't open %s for writing"
+msgstr "немагчыма адчыніць %s Ð´Ð»Ñ Ð·Ð°Ð¿Ñ–Ñу"
+
+#: toplev.c:5002
+#, fuzzy, c-format
+msgid "ignoring command line option '%s'"
+msgstr "ÐераÑпазнаны выбар \"%s\""
+
+#: toplev.c:5005
+#, c-format
+msgid "(it is valid for %s but not the selected language)"
+msgstr ""
+
+#: toplev.c:5039
+msgid "-Wuninitialized is not supported without -O"
+msgstr ""
+
+#: toplev.c:5094
+msgid "instruction scheduling not supported on this target machine"
+msgstr ""
+
+#: toplev.c:5098
+msgid "this target machine does not have delayed branches"
+msgstr ""
+
+#: toplev.c:5112
+#, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr ""
+
+#: toplev.c:5175
+#, fuzzy
+msgid "-ffunction-sections not supported for this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: toplev.c:5180
+#, fuzzy
+msgid "-fdata-sections not supported for this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: toplev.c:5187
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr ""
+
+#: toplev.c:5194
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: toplev.c:5200
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr ""
+
+#: toplev.c:5209
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr ""
+
+#: toplev.c:5215
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr ""
+
+#: toplev.c:5327
+#, c-format
+msgid "error writing to %s"
+msgstr "памылка запіÑу Ñž %s"
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, c-format
+msgid "error closing %s"
+msgstr ""
+
+#: tree-dump.c:702
+#, c-format
+msgid "could not open dump file `%s'"
+msgstr ""
+
+#: tree-dump.c:778
+#, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr ""
+
+#: tree.c:3645
+msgid "arrays of functions are not meaningful"
+msgstr ""
+
+#: tree.c:3702
+msgid "function return type cannot be function"
+msgstr ""
+
+#: tree.c:4557
+msgid "invalid initializer for bit string"
+msgstr ""
+
+#: tree.c:4616
+#, c-format
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:4633
+#, c-format
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: varasm.c:455 config/i386/winnt.c:611
+#, c-format
+msgid "%s causes a section type conflict"
+msgstr ""
+
+#: varasm.c:841
+#, c-format
+msgid "register name not specified for `%s'"
+msgstr ""
+
+#: varasm.c:843
+#, c-format
+msgid "invalid register name for `%s'"
+msgstr "нерÑчаіÑÐ½Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра `%s'"
+
+#: varasm.c:846
+#, c-format
+msgid "data type of `%s' isn't suitable for a register"
+msgstr ""
+
+#: varasm.c:849
+#, c-format
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr ""
+
+#: varasm.c:858
+msgid "global register variable has initial value"
+msgstr ""
+
+#: varasm.c:861
+msgid "volatile register variables don't work as you might wish"
+msgstr ""
+
+#: varasm.c:894
+#, c-format
+msgid "register name given for non-register variable `%s'"
+msgstr ""
+
+#: varasm.c:1542
+#, c-format
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+msgstr ""
+
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
+#, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr ""
+
+#: varasm.c:4048
+msgid "initializer for integer value is too complicated"
+msgstr ""
+
+#: varasm.c:4053
+msgid "initializer for floating value is not a floating constant"
+msgstr ""
+
+#: varasm.c:4120
+msgid "unknown set constructor type"
+msgstr ""
+
+#: varasm.c:4334
+#, c-format
+msgid "invalid initial value for member `%s'"
+msgstr ""
+
+#: varasm.c:4525 varasm.c:4568
+#, c-format
+msgid "weak declaration of `%s' must precede definition"
+msgstr ""
+
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr ""
+
+#: varasm.c:4575
+#, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr ""
+
+#: varasm.c:4602 varasm.c:4677
+msgid "only weak aliases are supported in this configuration"
+msgstr ""
+
+#: varasm.c:4685
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr ""
+
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: varray.c:134
+#, c-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr ""
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
+#, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr ""
+
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "%s не падтрымлівае %s"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr ""
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr ""
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr ""
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr ""
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr ""
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr ""
+
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr ""
+
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr ""
+
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
+msgstr ""
+
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr ""
+
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr ""
+
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr ""
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr ""
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr ""
+
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
+msgstr ""
+
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
+msgstr ""
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr ""
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr ""
+
+#: config/alpha/alpha.c:342
+#, fuzzy, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-pipe не падтрымліваецца."
+
+#: config/alpha/alpha.c:366
+#, fuzzy
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-pipe не падтрымліваецца"
+
+#: config/alpha/alpha.c:377
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:394
+#, c-format
+msgid "bad value `%s' for -mtrap-precision switch"
+msgstr ""
+
+#: config/alpha/alpha.c:408
+#, c-format
+msgid "bad value `%s' for -mfp-rounding-mode switch"
+msgstr ""
+
+#: config/alpha/alpha.c:423
+#, c-format
+msgid "bad value `%s' for -mfp-trap-mode switch"
+msgstr ""
+
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr ""
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
+#, c-format
+msgid "bad value `%s' for -mcpu switch"
+msgstr ""
+
+#: config/alpha/alpha.c:473
+msgid "trap mode not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:480
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr ""
+
+#: config/alpha/alpha.c:496
+msgid "rounding mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.c:501
+msgid "trap mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.c:530
+#, c-format
+msgid "L%d cache latency unknown for %s"
+msgstr ""
+
+#: config/alpha/alpha.c:545
+#, c-format
+msgid "bad value `%s' for -mmemory-latency"
+msgstr ""
+
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, c-format
+msgid "invalid %%H value"
+msgstr "нерÑчаіÑнае значÑньне %%H"
+
+#: config/alpha/alpha.c:5625
+#, fuzzy, c-format
+msgid "invalid %%J value"
+msgstr "дрÑннае %%Q значÑнне"
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
+#, c-format
+msgid "invalid %%r value"
+msgstr "нерÑчаіÑнае значÑньне %%r"
+
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
+#, c-format
+msgid "invalid %%R value"
+msgstr "нерÑчаіÑнае значÑньне %%R"
+
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "нерÑчаіÑнае значÑньне %%N"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "нерÑчаіÑнае значÑньне %%P"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
+#, c-format
+msgid "invalid %%h value"
+msgstr "нерÑчаіÑнае значÑньне %%h"
+
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "нерÑчаіÑнае значÑньне %%L"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "нерÑчаіÑнае значÑньне %%m"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "нерÑчаіÑнае значÑньне %%M"
+
+#: config/alpha/alpha.c:5772
+#, c-format
+msgid "invalid %%U value"
+msgstr "нерÑчаіÑнае значÑньне %%U"
+
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
+#, c-format
+msgid "invalid %%s value"
+msgstr "нерÑчаіÑнае значÑньне %%v"
+
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "нерÑчаіÑнае значÑньне %%C"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
+#, c-format
+msgid "invalid %%E value"
+msgstr "нерÑчаіÑнае значÑньне %%E"
+
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr ""
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
+#, c-format
+msgid "invalid %%xn code"
+msgstr "нерÑчаіÑнае значÑньне %%xn"
+
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
+msgid "Use hardware fp"
+msgstr "ВыкарыÑтоўваць апаратную плаваючую кропку"
+
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
+msgid "Do not use hardware fp"
+msgstr "Ðе выкарыÑтоўваць апаратную плаваючую кропку"
+
+#: config/alpha/alpha.h:281
+msgid "Use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:283
+msgid "Do not use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:284
+msgid "Do not assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:285
+msgid "Assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:287
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr ""
+
+#: config/alpha/alpha.h:289
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:291
+msgid "Emit IEEE-conformant code, with inexact exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:293
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr ""
+
+#: config/alpha/alpha.h:294
+msgid "Use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:295
+msgid "Do not use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:296
+msgid "Emit code for the byte/word ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:299
+msgid "Emit code for the motion video ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:302
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:304
+msgid "Emit code for the counting ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:307
+msgid "Emit code using explicit relocation directives"
+msgstr ""
+
+#: config/alpha/alpha.h:310
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:312
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
+#. For -mcpu=
+#. For -mtune=
+#. For -mfp-rounding-mode=[n|m|c|d]
+#. For -mfp-trap-mode=[n|u|su|sui]
+#. For -mtrap-precision=[p|f|i]
+#. For -mmemory-latency=
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
+msgid "Use features of and schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:345
+msgid "Schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:347
+msgid "Control the generated fp rounding mode"
+msgstr ""
+
+#: config/alpha/alpha.h:349
+msgid "Control the IEEE trap mode"
+msgstr ""
+
+#: config/alpha/alpha.h:351
+msgid "Control the precision given to fp exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:353
+msgid "Tune expected memory latency"
+msgstr ""
+
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
+#, c-format
+msgid "bad value (%s) for -mcpu switch"
+msgstr ""
+
+#: config/arc/arc.c:362
+#, fuzzy, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: config/arc/arc.c:369
+#, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr ""
+
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
+msgstr "нерÑчаіÑны %%-код"
+
+#. Unknown flag.
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
+msgid "invalid operand output code"
+msgstr ""
+
+#: config/arm/arm.c:458
+#, c-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr ""
+
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
+#, c-format
+msgid "bad value (%s) for %s switch"
+msgstr ""
+
+#: config/arm/arm.c:604
+msgid "target CPU does not support APCS-32"
+msgstr ""
+
+#: config/arm/arm.c:609
+msgid "target CPU does not support APCS-26"
+msgstr ""
+
+#: config/arm/arm.c:615
+msgid "target CPU does not support interworking"
+msgstr ""
+
+#: config/arm/arm.c:621
+#, fuzzy
+msgid "target CPU does not support THUMB instructions"
+msgstr "ISO C не падтрымлівае комлекÑÐ½Ñ‹Ñ Ñ†ÑÐ»Ð°Ð»Ñ–ÐºÐ°Ð²Ñ‹Ñ Ñ‚Ñ‹Ð¿Ñ‹"
+
+#: config/arm/arm.c:635
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:638
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:641
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:647
+msgid "interworking forces APCS-32 to be used"
+msgstr ""
+
+#: config/arm/arm.c:653
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr ""
+
+#: config/arm/arm.c:661
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr ""
+
+#: config/arm/arm.c:664
+msgid "APCS reentrant code not supported. Ignored"
+msgstr ""
+
+#: config/arm/arm.c:672
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr ""
+
+#: config/arm/arm.c:680
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr ""
+
+#: config/arm/arm.c:709
+#, c-format
+msgid "invalid floating point emulation option: -mfpe-%s"
+msgstr ""
+
+#: config/arm/arm.c:733
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr ""
+
+#: config/arm/arm.c:741
+msgid "-mpic-register= is useless without -fpic"
+msgstr ""
+
+#: config/arm/arm.c:748
+#, c-format
+msgid "unable to use '%s' for PIC register"
+msgstr ""
+
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr "\"%s\" звычайна функцыÑ"
+
+#: config/arm/arm.c:9459
+msgid "unable to compute real location of stacked parameter"
+msgstr ""
+
+#: config/arm/arm.c:10138
+msgid "no low registers available for popping high registers"
+msgstr ""
+
+#: config/arm/arm.c:10389
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr ""
+
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr ""
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr ""
+
+#: config/arm/arm.h:416
+msgid "Generate APCS conformant stack frames"
+msgstr ""
+
+#: config/arm/arm.h:419
+msgid "Store function names in object code"
+msgstr ""
+
+#: config/arm/arm.h:423
+msgid "Use the 32-bit version of the APCS"
+msgstr ""
+
+#: config/arm/arm.h:425
+msgid "Use the 26-bit version of the APCS"
+msgstr ""
+
+#: config/arm/arm.h:429
+msgid "Pass FP arguments in FP registers"
+msgstr ""
+
+#: config/arm/arm.h:432
+msgid "Generate re-entrant, PIC code"
+msgstr ""
+
+#: config/arm/arm.h:435
+msgid "The MMU will trap on unaligned accesses"
+msgstr ""
+
+#: config/arm/arm.h:442
+msgid "Use library calls to perform FP operations"
+msgstr ""
+
+#: config/arm/arm.h:444 config/i960/i960.h:281
+msgid "Use hardware floating point instructions"
+msgstr ""
+
+#: config/arm/arm.h:446
+msgid "Assume target CPU is configured as big endian"
+msgstr ""
+
+#: config/arm/arm.h:448
+msgid "Assume target CPU is configured as little endian"
+msgstr ""
+
+#: config/arm/arm.h:450
+msgid "Assume big endian bytes, little endian words"
+msgstr ""
+
+#: config/arm/arm.h:452
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr ""
+
+#: config/arm/arm.h:455
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr ""
+
+#: config/arm/arm.h:458
+msgid "Do not move instructions into a function's prologue"
+msgstr ""
+
+#: config/arm/arm.h:461
+msgid "Do not load the PIC register in function prologues"
+msgstr ""
+
+#: config/arm/arm.h:464
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr ""
+
+#: config/arm/arm.h:467
+msgid "Compile for the Thumb not the ARM"
+msgstr ""
+
+#: config/arm/arm.h:471
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr ""
+
+#: config/arm/arm.h:474
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr ""
+
+#: config/arm/arm.h:477
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr ""
+
+#: config/arm/arm.h:481
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr ""
+
+#: config/arm/arm.h:491
+msgid "Specify the name of the target CPU"
+msgstr ""
+
+#: config/arm/arm.h:493
+msgid "Specify the name of the target architecture"
+msgstr ""
+
+#: config/arm/arm.h:497
+msgid "Specify the version of the floating point emulator"
+msgstr ""
+
+#: config/arm/arm.h:499
+msgid "Specify the minimum bit alignment of structures"
+msgstr ""
+
+#: config/arm/arm.h:501
+msgid "Specify the register to be used for PIC addressing"
+msgstr ""
+
+#: config/arm/pe.h:65
+msgid "Ignore dllimport attribute for functions"
+msgstr ""
+
+#: config/avr/avr.c:528
+#, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr ""
+
+#: config/avr/avr.c:1135
+msgid "bad address, not (reg+disp):"
+msgstr ""
+
+#: config/avr/avr.c:1143
+msgid "internal compiler error. Bad address:"
+msgstr ""
+
+#: config/avr/avr.c:1156
+msgid "internal compiler error. Unknown mode:"
+msgstr ""
+
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+#, fuzzy
+msgid "invalid insn:"
+msgstr "ÐерÑчаіÑны выбар %s"
+
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
+msgstr ""
+
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+msgid "unknown move insn:"
+msgstr ""
+
+#: config/avr/avr.c:3003
+msgid "bad shift insn:"
+msgstr ""
+
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+msgid "internal compiler error. Incorrect shift:"
+msgstr ""
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+msgid "only initialized variables can be placed into program memory area"
+msgstr ""
+
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr ""
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr ""
+
+#: config/avr/avr.h:78
+msgid "Assume int to be 8 bit integer"
+msgstr ""
+
+#: config/avr/avr.h:80
+msgid "Change the stack pointer without disabling interrupts"
+msgstr ""
+
+#: config/avr/avr.h:82
+msgid "Use subroutines for function prologue/epilogue"
+msgstr ""
+
+#: config/avr/avr.h:84
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr ""
+
+#: config/avr/avr.h:86
+msgid "Do not generate tablejump insns"
+msgstr ""
+
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
+msgid "Output instruction sizes to the asm file"
+msgstr ""
+
+#: config/avr/avr.h:108
+msgid "Specify the initial stack address"
+msgstr ""
+
+#: config/avr/avr.h:109
+msgid "Specify the MCU name"
+msgstr ""
+
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+msgid "trampolines not supported"
+msgstr ""
+
+#: config/c4x/c4x-c.c:69
+#, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:72
+#, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:79
+#, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:84
+#, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:87
+#, c-format
+msgid "junk at end of '#pragma %s'"
+msgstr ""
+
+#: config/c4x/c4x.c:280
+#, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr ""
+
+#: config/c4x/c4x.c:853
+#, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr ""
+
+#: config/c4x/c4x.c:1602
+msgid "using CONST_DOUBLE for address"
+msgstr ""
+
+#: config/c4x/c4x.c:1742
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr ""
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2422
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr ""
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+msgid "mode not QImode"
+msgstr ""
+
+#: config/c4x/c4x.c:3514
+msgid "invalid indirect memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3603
+msgid "invalid indirect (S) memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3944
+msgid "c4x_valid_operands: Internal error"
+msgstr ""
+
+#: config/c4x/c4x.c:4424
+msgid "c4x_operand_subword: invalid mode"
+msgstr ""
+
+#: config/c4x/c4x.c:4427
+msgid "c4x_operand_subword: invalid operand"
+msgstr ""
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr ""
+
+#: config/c4x/c4x.c:4459
+msgid "c4x_operand_subword: invalid address"
+msgstr ""
+
+#: config/c4x/c4x.c:4470
+msgid "c4x_operand_subword: address not offsettable"
+msgstr ""
+
+#: config/c4x/c4x.c:4670
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr ""
+
+#. Name of the c4x assembler.
+#. Name of the c4x linker.
+#. Define assembler options.
+#. Define linker options.
+#. Specify the end file to link with.
+#. Target compilation option flags.
+#. Small memory model.
+#. Use 24-bit MPYI for C3x.
+#. Fast fixing of floats.
+#. Allow use of RPTS.
+#. Emit C3x code.
+#. Be compatible with TI assembler.
+#. Be paranoid about DP reg. in ISRs.
+#. Pass arguments on stack.
+#. Enable features under development.
+#. Enable repeat block.
+#. Use BK as general register.
+#. Use decrement and branch for C3x.
+#. Enable debugging of GCC.
+#. Force constants into registers.
+#. Allow unsigned loop counters.
+#. Force op0 and op1 to be same.
+#. Save all 40 bits for floats.
+#. Allow parallel insns.
+#. Allow MPY||ADD, MPY||SUB insns.
+#. Assume mem refs possibly aliased.
+#. Emit C30 code.
+#. Emit C31 code.
+#. Emit C32 code.
+#. Emit C33 code.
+#. Emit C40 code.
+#. Emit C44 code.
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each pair being { "NAME", VALUE, "DESCRIPTION" }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/c4x/c4x.h:168
+msgid "Small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:170
+msgid "Big memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:172
+msgid "Use MPYI instruction for C3x"
+msgstr ""
+
+#: config/c4x/c4x.h:174
+msgid "Do not use MPYI instruction for C3x"
+msgstr ""
+
+#: config/c4x/c4x.h:176
+msgid "Use fast but approximate float to integer conversion"
+msgstr ""
+
+#: config/c4x/c4x.h:178
+msgid "Use slow but accurate float to integer conversion"
+msgstr ""
+
+#: config/c4x/c4x.h:180
+msgid "Enable use of RTPS instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:182
+msgid "Disable use of RTPS instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:184
+msgid "Enable use of RTPB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:186
+msgid "Disable use of RTPB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:188
+msgid "Generate code for C30 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:190
+msgid "Generate code for C31 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:192
+msgid "Generate code for C32 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:194
+msgid "Generate code for C33 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:196
+msgid "Generate code for C40 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:198
+msgid "Generate code for C44 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:200
+msgid "Emit code compatible with TI tools"
+msgstr ""
+
+#: config/c4x/c4x.h:202
+msgid "Emit code to use GAS extensions"
+msgstr ""
+
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
+msgid "Save DP across ISR in small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
+msgid "Don't save DP across ISR in small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:212
+msgid "Pass arguments on the stack"
+msgstr ""
+
+#: config/c4x/c4x.h:214
+msgid "Pass arguments in registers"
+msgstr ""
+
+#: config/c4x/c4x.h:216
+msgid "Enable new features under development"
+msgstr ""
+
+#: config/c4x/c4x.h:218
+msgid "Disable new features under development"
+msgstr ""
+
+#: config/c4x/c4x.h:220
+msgid "Use the BK register as a general purpose register"
+msgstr ""
+
+#: config/c4x/c4x.h:222
+msgid "Do not allocate BK register"
+msgstr ""
+
+#: config/c4x/c4x.h:224
+msgid "Enable use of DB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:226
+msgid "Disable use of DB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:228
+msgid "Enable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:230
+msgid "Disable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:232
+msgid "Force constants into registers to improve hoisting"
+msgstr ""
+
+#: config/c4x/c4x.h:234
+msgid "Don't force constants into registers"
+msgstr ""
+
+#: config/c4x/c4x.h:236
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr ""
+
+#: config/c4x/c4x.h:238
+msgid "Allow RTL generation to emit invalid 3 operand insns"
+msgstr ""
+
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr ""
+
+#: config/c4x/c4x.h:242
+msgid "Disallow unsigned iteration counts for RPTB/DB"
+msgstr ""
+
+#: config/c4x/c4x.h:244
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr ""
+
+#: config/c4x/c4x.h:246
+msgid "Only preserve 32 bits of FP reg across call"
+msgstr ""
+
+#: config/c4x/c4x.h:248
+msgid "Enable parallel instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:250
+msgid "Disable parallel instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:252
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:254
+msgid "Disable MPY||ADD and MPY||SUB instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:256
+msgid "Assume that pointers may be aliased"
+msgstr ""
+
+#: config/c4x/c4x.h:258
+msgid "Assume that pointers not aliased"
+msgstr ""
+
+#: config/c4x/c4x.h:331
+msgid "Specify maximum number of iterations for RPTS"
+msgstr ""
+
+#: config/c4x/c4x.h:333
+msgid "Select CPU to generate code for"
+msgstr ""
+
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr ""
+
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr ""
+
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr ""
+
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr ""
+
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr ""
+
+#: config/cris/cris.c:1312
+msgid "invalid operand for 'b' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1324
+msgid "invalid operand for 'v' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1334
+msgid "invalid operand for 'P' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1341
+msgid "invalid operand for 'p' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1380
+msgid "invalid operand for 'z' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+msgid "invalid operand for 'H' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1417
+msgid "bad register"
+msgstr ""
+
+#: config/cris/cris.c:1455
+msgid "invalid operand for 'e' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1472
+msgid "invalid operand for 'm' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1497
+msgid "invalid operand for 'A' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1505
+msgid "invalid operand for 'D' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1519
+msgid "invalid operand for 'T' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1528
+msgid "invalid operand modifier letter"
+msgstr ""
+
+#: config/cris/cris.c:1536
+#, c-format
+msgid "internal error: bad register: %d"
+msgstr "ÑƒÐ½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: дрÑнны Ñ€ÑгіÑÑ‚Ñ€: %d"
+
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
+msgstr ""
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+msgid "unrecognized address"
+msgstr "нераÑпазнаны адраÑ"
+
+#: config/cris/cris.c:2005
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr ""
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr ""
+
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+#, fuzzy
+msgid "unrecognized supposed constant"
+msgstr "нераÑпазнаны выбар \"-%s\""
+
+#: config/cris/cris.c:2473
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr ""
+
+#: config/cris/cris.c:2492
+#, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr ""
+
+#: config/cris/cris.c:2520
+#, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr ""
+
+#: config/cris/cris.c:2556
+#, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr ""
+
+#: config/cris/cris.c:2574
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr ""
+
+#: config/cris/cris.c:2590
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr ""
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+msgid "unexpected side-effects in address"
+msgstr ""
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
+msgid "PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+msgid "unexpected address expression"
+msgstr ""
+
+#: config/cris/cris.c:3001
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:3010
+msgid "unexpected NOTE as addr_const:"
+msgstr ""
+
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr ""
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr ""
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr ""
+
+#: config/cris/cris.h:345
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr ""
+
+#: config/cris/cris.h:349
+msgid "Emit verbose debug information in assembly code"
+msgstr ""
+
+#: config/cris/cris.h:352
+#, fuzzy
+msgid "Do not use condition codes from normal instructions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/cris/cris.h:356
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr ""
+
+#: config/cris/cris.h:359
+msgid "Do not tune stack alignment"
+msgstr ""
+
+#: config/cris/cris.h:362
+msgid "Do not tune writable data alignment"
+msgstr ""
+
+#: config/cris/cris.h:365
+msgid "Do not tune code and read-only data alignment"
+msgstr ""
+
+#: config/cris/cris.h:374
+msgid "Align code and data to 32 bits"
+msgstr ""
+
+#: config/cris/cris.h:387
+msgid "Don't align items in code or data"
+msgstr ""
+
+#: config/cris/cris.h:390
+msgid "Do not emit function prologue or epilogue"
+msgstr ""
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr ""
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+msgid "Override -mbest-lib-options"
+msgstr ""
+
+#: config/cris/cris.h:432
+#, fuzzy
+msgid "Generate code for the specified chip or CPU version"
+msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
+
+#: config/cris/cris.h:434
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr ""
+
+#: config/cris/cris.h:436
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr ""
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr ""
+
+#: config/cris/linux.h:71
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr ""
+
+#: config/d30v/d30v.c:207
+#, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr ""
+
+#: config/d30v/d30v.c:2666
+msgid "bad insn to d30v_print_operand_address:"
+msgstr ""
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr ""
+
+#: config/d30v/d30v.c:2851
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2860
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2867
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2921
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2932
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2939
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2957
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:3003
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr ""
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr ""
+
+#: config/d30v/d30v.c:3345
+msgid "bad call to d30v_move_2words"
+msgstr ""
+
+#: config/d30v/d30v.h:114
+msgid "Enable use of conditional move instructions"
+msgstr ""
+
+#: config/d30v/d30v.h:117
+msgid "Disable use of conditional move instructions"
+msgstr ""
+
+#: config/d30v/d30v.h:120
+msgid "Debug argument support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:123
+msgid "Debug stack support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:126
+msgid "Debug memory address support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:129
+msgid "Make adjacent short instructions parallel if possible"
+msgstr ""
+
+#: config/d30v/d30v.h:132
+#, fuzzy
+msgid "Do not make adjacent short instructions parallel"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
+msgid "Link programs/data to be in external memory by default"
+msgstr ""
+
+#: config/d30v/d30v.h:141
+msgid "Link programs/data to be in onchip memory by default"
+msgstr ""
+
+#: config/d30v/d30v.h:149
+msgid "Change the branch costs within the compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:152
+msgid "Change the threshold for conversion to conditional execution"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+msgid "stack size > 32k"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1678
+msgid "invalid addressing mode"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1821
+msgid "bad register extension code"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1921
+msgid "invalid offset in ybase addressing"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1924
+msgid "invalid register in ybase addressing"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2099
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2428
+msgid "invalid mode for gen_tst_reg"
+msgstr "нерÑчаіÑны Ñ€Ñжым Ð´Ð»Ñ gen_tst_reg"
+
+#: config/dsp16xx/dsp16xx.c:2500
+msgid "invalid mode for integer comparison in gen_compare_reg"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/dsp16xx/dsp16xx.h:230
+msgid "Pass parameters in registers (default)"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:232
+#, fuzzy
+msgid "Don't pass parameters in registers"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#: config/dsp16xx/dsp16xx.h:234
+#, fuzzy
+msgid "Generate code for near calls"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:236
+#, fuzzy
+msgid "Don't generate code for near calls"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:238
+#, fuzzy
+msgid "Generate code for near jumps"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:240
+#, fuzzy
+msgid "Don't generate code for near jumps"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:242
+#, fuzzy
+msgid "Generate code for a bit-manipulation unit"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:244
+#, fuzzy
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/dsp16xx/dsp16xx.h:246
+#, fuzzy
+msgid "Generate code for memory map1"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:248
+#, fuzzy
+msgid "Generate code for memory map2"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:250
+#, fuzzy
+msgid "Generate code for memory map3"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:252
+#, fuzzy
+msgid "Generate code for memory map4"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/dsp16xx/dsp16xx.h:254
+msgid "Ouput extra code for initialized data"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:256
+msgid "Don't let reg. allocator use ybase registers"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:258
+msgid "Output extra debug info in Luxworks environment"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:260
+msgid "Save temp. files in Luxworks environment"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:272
+msgid "Specify alternate name for text section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:274
+msgid "Specify alternate name for data section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:276
+msgid "Specify alternate name for bss section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:278
+msgid "Specify alternate name for constant section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:280
+msgid "Specify alternate name for dsp16xx chip"
+msgstr ""
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+msgid "profiling not implemented yet"
+msgstr ""
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+msgid "trampolines not yet implemented"
+msgstr ""
+
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
+msgstr ""
+
+#: config/fr30/fr30.c:480
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr ""
+
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr ""
+
+#: config/fr30/fr30.c:521
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr ""
+
+#: config/fr30/fr30.c:529
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr ""
+
+#: config/fr30/fr30.c:546
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr ""
+
+#: config/fr30/fr30.c:553
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr ""
+
+#: config/fr30/fr30.c:570
+msgid "fr30_print_operand: unknown code"
+msgstr ""
+
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/fr30/fr30.h:63
+msgid "Assume small address space"
+msgstr ""
+
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr ""
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr ""
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr ""
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "вельмі шмат аргумÑнтаў у функцыі `%s'"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
+#, fuzzy
+msgid "-ms2600 is used without -ms"
+msgstr "-ms2600 ужываецца без -ms."
+
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "-ms2600 ужываецца без -ms."
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/h8300/h8300.h:150
+#, fuzzy
+msgid "Generate H8S code"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/h8300/h8300.h:151
+#, fuzzy
+msgid "Do not generate H8S code"
+msgstr "Ðе Ñтвараць код Ð´Ð»Ñ 68851"
+
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr ""
+
+#: config/h8300/h8300.h:153
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/h8300/h8300.h:154
+msgid "Make integers 32 bits wide"
+msgstr ""
+
+#: config/h8300/h8300.h:157
+msgid "Use registers for argument passing"
+msgstr ""
+
+#: config/h8300/h8300.h:159
+msgid "Do not use registers for argument passing"
+msgstr ""
+
+#: config/h8300/h8300.h:161
+msgid "Consider access to byte sized memory slow"
+msgstr ""
+
+#: config/h8300/h8300.h:162
+msgid "Enable linker relaxing"
+msgstr ""
+
+#: config/h8300/h8300.h:164
+msgid "Generate H8/300H code"
+msgstr ""
+
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
+msgid "Do not generate H8/300H code"
+msgstr ""
+
+#: config/h8300/h8300.h:167
+msgid "Use H8/300 alignment rules"
+msgstr ""
+
+#: config/i370/i370-c.c:53
+msgid "junk at end of #pragma map"
+msgstr ""
+
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
+msgstr ""
+
+#: config/i370/i370.c:915
+msgid "real name is too long - alias ignored"
+msgstr ""
+
+#: config/i370/i370.c:920
+msgid "alias name is too long - alias ignored"
+msgstr ""
+
+#: config/i370/i370.c:1191
+msgid "internal error--no jump follows compare:"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a list in braces
+#. of pairs in braces, each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/i370/i370.h:75
+msgid "Generate char instructions"
+msgstr ""
+
+#: config/i370/i370.h:76
+msgid "Do not generate char instructions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/i386/i386.c:1050
+#, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr ""
+
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr ""
+
+#: config/i386/i386.c:1075
+#, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr ""
+
+#: config/i386/i386.c:1078
+#, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1081
+msgid "code model `large' not supported yet"
+msgstr ""
+
+#: config/i386/i386.c:1083
+#, c-format
+msgid "%i-bit mode not compiled in"
+msgstr ""
+
+#: config/i386/i386.c:1113
+#, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr ""
+
+#: config/i386/i386.c:1124
+#, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr ""
+
+#: config/i386/i386.c:1141
+#, c-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr ""
+
+#: config/i386/i386.c:1154
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr ""
+
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
+#, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr ""
+
+#: config/i386/i386.c:1167
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr ""
+
+#: config/i386/i386.c:1180
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr ""
+
+#: config/i386/i386.c:1218
+#, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr ""
+
+#: config/i386/i386.c:1230
+#, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr ""
+
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr ""
+
+#: config/i386/i386.c:1263
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1265
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr ""
+
+#: config/i386/i386.c:1297
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr ""
+
+#: config/i386/i386.c:1304
+#, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr ""
+
+#: config/i386/i386.c:1436
+#, c-format
+msgid "`%s' attribute requires an integer constant argument"
+msgstr ""
+
+#: config/i386/i386.c:1442
+#, fuzzy, c-format
+msgid "argument to `%s' attribute larger than %d"
+msgstr "памер \"%s\" больш чам %d байт"
+
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
+msgid "invalid UNSPEC as operand"
+msgstr ""
+
+#: config/i386/i386.c:6648
+msgid "extended registers have no high halves"
+msgstr ""
+
+#: config/i386/i386.c:6663
+msgid "unsupported operand size for extended register"
+msgstr ""
+
+#: config/i386/i386.c:6978
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr ""
+
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "нерÑчаіÑны %%c аперанд"
+
+#: config/i386/i386.c:11271
+#, fuzzy
+msgid "unknown insn mode"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
+msgstr ""
+
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
+msgstr ""
+
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr ""
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
+#, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr ""
+
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr ""
+
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr ""
+
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr "Стварыць GUI прыдатак"
+
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
+msgstr ""
+
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr ""
+
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr "Стварыць канÑольны прыдатак"
+
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr ""
+
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr ""
+
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr ""
+
+#: config/i386/djgpp.h:206
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr ""
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
+msgid "Alternate calling convention"
+msgstr ""
+
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
+msgid "Use normal calling convention"
+msgstr ""
+
+#: config/i386/i386.h:310
+msgid "Align some doubles on dword boundary"
+msgstr ""
+
+#: config/i386/i386.h:312
+msgid "Align doubles on word boundary"
+msgstr ""
+
+#: config/i386/i386.h:314
+msgid "Uninitialized locals in .bss"
+msgstr ""
+
+#: config/i386/i386.h:316
+msgid "Uninitialized locals in .data"
+msgstr ""
+
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
+msgid "Use IEEE math for fp comparisons"
+msgstr ""
+
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
+msgid "Do not use IEEE math for fp comparisons"
+msgstr ""
+
+#: config/i386/i386.h:322
+msgid "Return values of functions in FPU registers"
+msgstr ""
+
+#: config/i386/i386.h:324
+msgid "Do not return values of functions in FPU registers"
+msgstr ""
+
+#: config/i386/i386.h:326
+msgid "Do not generate sin, cos, sqrt for FPU"
+msgstr ""
+
+#: config/i386/i386.h:328
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr ""
+
+#: config/i386/i386.h:330
+msgid "Omit the frame pointer in leaf functions"
+msgstr ""
+
+#: config/i386/i386.h:333
+msgid "Enable stack probing"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/i386/i386.h:338
+msgid "Align destination of the string operations"
+msgstr ""
+
+#: config/i386/i386.h:340
+msgid "Do not align destination of the string operations"
+msgstr ""
+
+#: config/i386/i386.h:342
+msgid "Inline all known string operations"
+msgstr ""
+
+#: config/i386/i386.h:344
+msgid "Do not inline all known string operations"
+msgstr ""
+
+#: config/i386/i386.h:346 config/i386/i386.h:350
+msgid "Use push instructions to save outgoing arguments"
+msgstr ""
+
+#: config/i386/i386.h:348 config/i386/i386.h:352
+msgid "Do not use push instructions to save outgoing arguments"
+msgstr ""
+
+#: config/i386/i386.h:354
+msgid "Support MMX built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:356
+msgid "Do not support MMX built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:358
+msgid "Support 3DNow! built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:360
+msgid "Do not support 3DNow! built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:362
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:364
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:366
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:368
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:370
+msgid "sizeof(long double) is 16"
+msgstr ""
+
+#: config/i386/i386.h:372
+msgid "sizeof(long double) is 12"
+msgstr ""
+
+#: config/i386/i386.h:374
+msgid "Generate 64bit x86-64 code"
+msgstr ""
+
+#: config/i386/i386.h:376
+msgid "Generate 32bit i386 code"
+msgstr ""
+
+#: config/i386/i386.h:378
+msgid "Use red-zone in the x86-64 code"
+msgstr ""
+
+#: config/i386/i386.h:380
+msgid "Do not use red-zone in the x86-64 code"
+msgstr ""
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
+msgid "Schedule code for given CPU"
+msgstr ""
+
+#: config/i386/i386.h:411
+msgid "Generate floating point mathematics using given instruction set"
+msgstr ""
+
+#: config/i386/i386.h:413
+msgid "Generate code for given CPU"
+msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
+
+#: config/i386/i386.h:415
+msgid "Number of registers used to pass integer arguments"
+msgstr ""
+
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
+msgid "Loop code aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
+msgid "Jump targets are aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
+msgid "Function starts are aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:424
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:426
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr ""
+
+#: config/i386/i386.h:428
+msgid "Use given x86-64 code model"
+msgstr ""
+
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+msgid "Use given assembler dialect"
+msgstr "ВыкарыÑтоўвываць зададзены дыÑлект аÑÑмблера"
+
+#: config/i386/i386.h:436
+#, fuzzy
+msgid "Use given thread-local storage dialect"
+msgstr "ВыкарыÑтоўвываць зададзены дыÑлект аÑÑмблера"
+
+#: config/i386/sco5.h:297
+msgid "Generate ELF output"
+msgstr "Стварыць ELF-вывад"
+
+#: config/i386/win32.h:53
+msgid "Use Mingw32 interface"
+msgstr ""
+
+#: config/i386/win32.h:55
+msgid "Use Cygwin interface"
+msgstr ""
+
+#: config/i386/win32.h:57
+msgid "Use bare Windows interface"
+msgstr ""
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:71
+msgid "environment variable DJGPP not defined"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:73
+#, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:76
+#, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr ""
+
+#: config/i960/i960-c.c:66
+msgid "sorry, not implemented: #pragma align NAME=SIZE"
+msgstr ""
+
+#: config/i960/i960-c.c:71
+msgid "malformed #pragma align - ignored"
+msgstr ""
+
+#: config/i960/i960-c.c:109
+msgid "sorry, not implemented: #pragma noalign NAME"
+msgstr ""
+
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr ""
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr ""
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr ""
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
+msgid "stack limit expression is not supported"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#. ??? Not all ten of these architecture variations actually exist, but I
+#. am not sure which are real and which aren't.
+#: config/i960/i960.h:240
+msgid "Generate SA code"
+msgstr ""
+
+#: config/i960/i960.h:243
+msgid "Generate SB code"
+msgstr ""
+
+#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
+#: config/i960/i960.h:248
+msgid "Generate KA code"
+msgstr ""
+
+#: config/i960/i960.h:251
+msgid "Generate KB code"
+msgstr ""
+
+#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
+#: config/i960/i960.h:256
+msgid "Generate JA code"
+msgstr ""
+
+#: config/i960/i960.h:258
+msgid "Generate JD code"
+msgstr ""
+
+#: config/i960/i960.h:261
+msgid "Generate JF code"
+msgstr ""
+
+#: config/i960/i960.h:263
+msgid "generate RP code"
+msgstr ""
+
+#: config/i960/i960.h:266
+msgid "Generate MC code"
+msgstr ""
+
+#: config/i960/i960.h:269
+msgid "Generate CA code"
+msgstr ""
+
+#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
+#: config/i960/i960.h:279
+msgid "Generate CF code"
+msgstr ""
+
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr ""
+
+#: config/i960/i960.h:285
+msgid "Use alternate leaf function entries"
+msgstr ""
+
+#: config/i960/i960.h:287
+msgid "Do not use alternate leaf function entries"
+msgstr ""
+
+#: config/i960/i960.h:289
+msgid "Perform tail call optimization"
+msgstr ""
+
+#: config/i960/i960.h:291
+msgid "Do not perform tail call optimization"
+msgstr ""
+
+#: config/i960/i960.h:293
+msgid "Use complex addressing modes"
+msgstr ""
+
+#: config/i960/i960.h:295
+msgid "Do not use complex addressing modes"
+msgstr ""
+
+#: config/i960/i960.h:297
+msgid "Align code to 8 byte boundary"
+msgstr ""
+
+#: config/i960/i960.h:299
+msgid "Do not align code to 8 byte boundary"
+msgstr ""
+
+#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
+#: config/i960/i960.h:305 config/i960/i960.h:307
+msgid "Enable compatibility with iC960 v2.0"
+msgstr ""
+
+#: config/i960/i960.h:309
+msgid "Enable compatibility with iC960 v3.0"
+msgstr ""
+
+#: config/i960/i960.h:311 config/i960/i960.h:313
+msgid "Enable compatibility with ic960 assembler"
+msgstr ""
+
+#: config/i960/i960.h:315
+msgid "Do not permit unaligned accesses"
+msgstr ""
+
+#: config/i960/i960.h:317
+msgid "Permit unaligned accesses"
+msgstr ""
+
+#: config/i960/i960.h:319
+msgid "Layout types like Intel's v1.3 gcc"
+msgstr ""
+
+#: config/i960/i960.h:321
+msgid "Do not layout types like Intel's v1.3 gcc"
+msgstr ""
+
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
+msgid "Use 64 bit long doubles"
+msgstr ""
+
+#: config/i960/i960.h:325
+msgid "Enable linker relaxation"
+msgstr ""
+
+#: config/i960/i960.h:327
+msgid "Do not enable linker relaxation"
+msgstr ""
+
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr ""
+
+#: config/ia64/ia64.c:4015
+msgid "ia64_print_operand: unknown code"
+msgstr ""
+
+#: config/ia64/ia64.c:4292
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr ""
+
+#: config/ia64/ia64.c:4319
+#, c-format
+msgid "%s-%s is an empty range"
+msgstr ""
+
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr ""
+
+#. This macro defines names of command options to set and clear bits in
+#. `target_flags'. Its definition is an initializer with a subgrouping for
+#. each command option.
+#: config/ia64/ia64.h:154
+msgid "Generate big endian code"
+msgstr ""
+
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
+msgid "Generate little endian code"
+msgstr ""
+
+#: config/ia64/ia64.h:158
+msgid "Generate code for GNU as"
+msgstr "Генерыраваць код Ð´Ð»Ñ GNU as"
+
+#: config/ia64/ia64.h:160
+msgid "Generate code for Intel as"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/ia64/ia64.h:162
+msgid "Generate code for GNU ld"
+msgstr "Генерыраваць код Ð´Ð»Ñ GNU ld"
+
+#: config/ia64/ia64.h:164
+msgid "Generate code for Intel ld"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel ld"
+
+#: config/ia64/ia64.h:166
+msgid "Generate code without GP reg"
+msgstr "Генерыраваць код без GP reg"
+
+#: config/ia64/ia64.h:168
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr ""
+
+#: config/ia64/ia64.h:170
+msgid "Don't emit stop bits before and after volatile extended asms"
+msgstr ""
+
+#: config/ia64/ia64.h:172
+msgid "Emit code for Itanium (TM) processor B step"
+msgstr ""
+
+#: config/ia64/ia64.h:174
+msgid "Use in/loc/out register names"
+msgstr ""
+
+#: config/ia64/ia64.h:176
+msgid "Disable use of sdata/scommon/sbss"
+msgstr ""
+
+#: config/ia64/ia64.h:178
+msgid "Enable use of sdata/scommon/sbss"
+msgstr ""
+
+#: config/ia64/ia64.h:180
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr ""
+
+#: config/ia64/ia64.h:182
+msgid "Generate self-relocatable code"
+msgstr ""
+
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:192
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr ""
+
+#: config/ia64/ia64.h:194
+msgid "Disable Dwarf 2 line debug info via GNU as"
+msgstr ""
+
+#: config/ia64/ia64.h:223
+msgid "Specify range of registers to make fixed"
+msgstr ""
+
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "нерÑчаіÑны %%f аперанд"
+
+#: config/m32r/m32r.c:139
+#, c-format
+msgid "bad value (%s) for -mmodel switch"
+msgstr ""
+
+#: config/m32r/m32r.c:148
+#, c-format
+msgid "bad value (%s) for -msdata switch"
+msgstr ""
+
+#: config/m32r/m32r.c:319
+#, fuzzy, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: config/m32r/m32r.c:422
+msgid "const objects cannot go in .sdata/.sbss"
+msgstr ""
+
+#: config/m32r/m32r.c:2256
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/m32r/m32r.c:2263
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/m32r/m32r.c:2318
+msgid "bad insn for 'A'"
+msgstr ""
+
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/m32r/m32r.c:2438
+msgid "pre-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2445
+msgid "pre-decrement address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2452
+msgid "post-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+msgid "bad address"
+msgstr "дрÑнны адраÑ"
+
+#: config/m32r/m32r.c:2551
+#, fuzzy
+msgid "lo_sum not of register"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
+#: config/m32r/m32r.h:241
+msgid "Display compile time statistics"
+msgstr ""
+
+#: config/m32r/m32r.h:243
+msgid "Align all loops to 32 byte boundary"
+msgstr ""
+
+#: config/m32r/m32r.h:246
+msgid "Only issue one instruction per cycle"
+msgstr ""
+
+#: config/m32r/m32r.h:249
+msgid "Prefer branches over conditional execution"
+msgstr ""
+
+#: config/m32r/m32r.h:265
+msgid "Code size: small, medium or large"
+msgstr ""
+
+#: config/m32r/m32r.h:267
+msgid "Small data area: none, sdata, use"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:242
+#, c-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+msgid "move insn not handled"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+msgid "invalid register in the move instruction"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3613
+msgid "invalid operand in the instruction"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3920
+#, fuzzy
+msgid "invalid register in the instruction"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: config/m68hc11/m68hc11.c:3953
+msgid "operand 1 must be a hard register"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3970
+#, fuzzy
+msgid "invalid rotate insn"
+msgstr "ÐерÑчаіÑны выбар %s"
+
+#: config/m68hc11/m68hc11.c:4391
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+msgid "cannot do z-register replacement"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:5094
+msgid "invalid Z register replacement for insn"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a list in braces of
+#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
+#. to set or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE.
+#: config/m68hc11/m68hc11.h:172
+msgid "Compile with 16-bit integer mode"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:174
+msgid "Compile with 32-bit integer mode"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:176
+msgid "Auto pre/post decrement increment allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:178
+msgid "Auto pre/post decrement increment not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
+msgid "Do not use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
+msgid "Compile for a 68HC11"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
+msgid "Compile for a 68HC12"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/m68hc11/m68hc11.h:216
+msgid "Specify the register allocation order"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:218
+msgid "Indicate the number of soft registers available"
+msgstr ""
+
+#: config/m68k/m68k.c:158
+#, c-format
+msgid "-malign-loops=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:169
+#, c-format
+msgid "-malign-jumps=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:180
+#, c-format
+msgid "-malign-functions=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+msgid "Generate code for a 68020"
+msgstr "Ствараць код Ð´Ð»Ñ 68020"
+
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+msgid "Generate code for a 68000"
+msgstr "Ствараць код Ð´Ð»Ñ 68000"
+
+#: config/m68k/m68k.h:174
+msgid "Use the bit-field instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:176
+#, fuzzy
+msgid "Do not use the bit-field instructions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/m68k/m68k.h:178
+msgid "Use different calling convention using 'rtd'"
+msgstr ""
+
+#: config/m68k/m68k.h:182
+msgid "Consider type `int' to be 16 bits wide"
+msgstr ""
+
+#: config/m68k/m68k.h:184
+msgid "Consider type `int' to be 32 bits wide"
+msgstr ""
+
+#: config/m68k/m68k.h:186
+#, fuzzy
+msgid "Generate code for a Sun FPA"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/m68k/m68k.h:189
+#, fuzzy
+msgid "Do not generate code for a Sun FPA"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+#, fuzzy
+msgid "Generate code for a Sun Sky board"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/m68k/m68k.h:195
+msgid "Do not use Sky linkage convention"
+msgstr ""
+
+#: config/m68k/m68k.h:197
+msgid "Generate code for a 68881"
+msgstr "Ствараць код Ð´Ð»Ñ 68881"
+
+#: config/m68k/m68k.h:200
+msgid "Generate code with library calls for floating point"
+msgstr ""
+
+#: config/m68k/m68k.h:202
+msgid "Generate code for a 68040, without any new instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:205
+msgid "Generate code for a 68060, without any new instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:209
+msgid "Generate code for a 68030"
+msgstr "Ствараць код Ð´Ð»Ñ 68030"
+
+#: config/m68k/m68k.h:212
+msgid "Generate code for a 68040"
+msgstr "Ствараць код Ð´Ð»Ñ 68040"
+
+#: config/m68k/m68k.h:216
+msgid "Generate code for a 68060"
+msgstr "Ствараць код Ð´Ð»Ñ 68060"
+
+#: config/m68k/m68k.h:221
+msgid "Generate code for a 520X"
+msgstr "Ствараць код Ð´Ð»Ñ 520X"
+
+#: config/m68k/m68k.h:224
+msgid "Generate code for a 68851"
+msgstr "Ствараць код Ð´Ð»Ñ 68851"
+
+#: config/m68k/m68k.h:226
+msgid "Do no generate code for a 68851"
+msgstr "Ðе Ñтвараць код Ð´Ð»Ñ 68851"
+
+#: config/m68k/m68k.h:229
+msgid "Generate code for a 68302"
+msgstr "Ствараць код Ð´Ð»Ñ 68302"
+
+#: config/m68k/m68k.h:232
+msgid "Generate code for a 68332"
+msgstr "Ствараць код Ð´Ð»Ñ 68332"
+
+#: config/m68k/m68k.h:236
+msgid "Generate code for a cpu32"
+msgstr "Ствараць код Ð´Ð»Ñ Ñ†Ð¿32"
+
+#: config/m68k/m68k.h:239
+msgid "Align variables on a 32-bit boundary"
+msgstr ""
+
+#: config/m68k/m68k.h:241
+msgid "Align variables on a 16-bit boundary"
+msgstr ""
+
+#: config/m68k/m68k.h:243
+msgid "Generate pc-relative code"
+msgstr ""
+
+#: config/m68k/m68k.h:245
+msgid "Do not use unaligned memory references"
+msgstr ""
+
+#: config/m68k/m68k.h:247
+msgid "Use unaligned memory references"
+msgstr ""
+
+#: config/m88k/m88k.c:903
+#, c-format
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr ""
+
+#: config/m88k/m88k.c:2302
+msgid "internal gcc error: Can't express symbolic location"
+msgstr ""
+
+#: config/m88k/m88k.c:2517
+#, c-format
+msgid "argument #%d is a structure"
+msgstr ""
+
+#: config/m88k/m88k.c:2816
+#, c-format
+msgid "%%R not followed by %%B/C/D/E"
+msgstr ""
+
+#: config/m88k/m88k.c:2884
+#, c-format
+msgid "invalid %%x/X value"
+msgstr "нерÑчаіÑнае значÑньне %%x/X"
+
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "дрÑннае %%Q значÑнне"
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, c-format
+msgid "invalid %%q value"
+msgstr ""
+
+#: config/m88k/m88k.c:2913
+#, c-format
+msgid "invalid %%o value"
+msgstr "нерÑчаіÑнае значÑньне %%o"
+
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
+#, c-format
+msgid "invalid %%p value"
+msgstr ""
+
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
+msgstr "дрÑннае %%Q значÑнне"
+
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
+msgstr "нерÑчаіÑны %%-код"
+
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, c-format
+msgid "invalid %%B value"
+msgstr ""
+
+#: config/m88k/m88k.c:3010
+#, fuzzy, c-format
+msgid "invalid %%D value"
+msgstr "дрÑннае %%Q значÑнне"
+
+#: config/m88k/m88k.c:3023
+#, c-format
+msgid "`%%d' operand isn't a register"
+msgstr ""
+
+#: config/m88k/m88k.c:3041
+msgid "operand is r0"
+msgstr ""
+
+#: config/m88k/m88k.c:3055
+msgid "operand is const_double"
+msgstr ""
+
+#: config/m88k/m88k.c:3074
+msgid "invalid code"
+msgstr ""
+
+#. Do any checking or such that is needed after processing the -m switches.
+#: config/m88k/m88k.h:277
+msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+msgstr ""
+
+#: config/m88k/m88k.h:299
+#, fuzzy, c-format
+msgid "invalid option `-mshort-data-%s'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: config/m88k/m88k.h:304
+#, c-format
+msgid "-mshort-data-%s is too large "
+msgstr ""
+
+#: config/m88k/m88k.h:306
+#, c-format
+msgid "-mshort-data-%s and PIC are incompatible"
+msgstr ""
+
+#: config/mcore/mcore.c:3078
+#, fuzzy, c-format
+msgid "invalid option `-mstack-increment=%s'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: config/mcore/mcore.h:126
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr ""
+
+#: config/mcore/mcore.h:128
+msgid "Inline constants if it only takes 1 instruction"
+msgstr ""
+
+#: config/mcore/mcore.h:130
+msgid "Set maximum alignment to 4"
+msgstr ""
+
+#: config/mcore/mcore.h:132
+msgid "Set maximum alignment to 8"
+msgstr ""
+
+#: config/mcore/mcore.h:136
+msgid "Do not use the divide instruction"
+msgstr ""
+
+#: config/mcore/mcore.h:140
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr ""
+
+#: config/mcore/mcore.h:142
+msgid "Always treat bit-field as int-sized"
+msgstr ""
+
+#: config/mcore/mcore.h:146
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr ""
+
+#: config/mcore/mcore.h:148
+msgid "Force functions to be aligned to a 2 byte boundary"
+msgstr ""
+
+#: config/mcore/mcore.h:150
+msgid "Emit call graph information"
+msgstr ""
+
+#: config/mcore/mcore.h:154
+msgid "Prefer word accesses over byte accesses"
+msgstr ""
+
+#: config/mcore/mcore.h:165
+msgid "Generate code for the M*Core M340"
+msgstr ""
+
+#: config/mcore/mcore.h:178
+msgid "Maximum amount for a single stack increment operation"
+msgstr ""
+
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr ""
+
+#: config/mips/mips.c:5158
+#, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr ""
+
+#: config/mips/mips.c:5165
+#, c-format
+msgid "bad value (%s) for -mips switch"
+msgstr ""
+
+#: config/mips/mips.c:5180
+#, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr ""
+
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr ""
+
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr ""
+
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr ""
+
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "Ð½ÐµÐ¿Ð°Ð´Ñ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°ÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÑ–Ñ"
+
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
+
+#: config/mips/mips.c:5299
+msgid "-G is incompatible with PIC code which is the default"
+msgstr ""
+
+#: config/mips/mips.c:5315
+msgid "-membedded-pic and -mabicalls are incompatible"
+msgstr ""
+
+#: config/mips/mips.c:5318
+msgid "-G and -membedded-pic are incompatible"
+msgstr ""
+
+#: config/mips/mips.c:5369
+#, fuzzy, c-format
+msgid "invalid option `entry%s'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: config/mips/mips.c:5372
+msgid "-mentry is only meaningful with -mips-16"
+msgstr ""
+
+#: config/mips/mips.c:5781
+#, c-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5795
+#, c-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5808
+#, c-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5821
+#, c-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5835
+#, c-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr ""
+
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
+msgid "PRINT_OPERAND null pointer"
+msgstr ""
+
+#: config/mips/mips.c:5975
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr ""
+
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr ""
+
+#: config/mips/mips.c:6242
+msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+msgstr ""
+
+#: config/mips/mips.c:6552
+#, fuzzy
+msgid "can't rewind temp file"
+msgstr "немагчыма Ñтварыць чаÑовы файл"
+
+#: config/mips/mips.c:6556
+#, fuzzy
+msgid "can't write to output file"
+msgstr "не магу запіÑаць Ñž %s"
+
+#: config/mips/mips.c:6559
+#, fuzzy
+msgid "can't read from temp file"
+msgstr "не магу прачытаць з %s"
+
+#: config/mips/mips.c:6562
+#, fuzzy
+msgid "can't close temp file"
+msgstr "немагчыма зачыніць уваходзÑчы файл %s"
+
+#: config/mips/mips.c:7003
+#, c-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr ""
+
+#: config/mips/mips.c:7112
+#, c-format
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr ""
+
+#: config/mips/mips.c:9335
+#, c-format
+msgid "can not handle inconsistent calls to `%s'"
+msgstr ""
+
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr ""
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
+msgid "No default crt0.o"
+msgstr ""
+
+#: config/mips/mips.h:530
+msgid "Use 64-bit int type"
+msgstr ""
+
+#: config/mips/mips.h:532
+msgid "Use 64-bit long type"
+msgstr ""
+
+#: config/mips/mips.h:534
+msgid "Use 32-bit long type"
+msgstr ""
+
+#: config/mips/mips.h:536
+msgid "Optimize lui/addiu address loads"
+msgstr ""
+
+#: config/mips/mips.h:538
+msgid "Don't optimize lui/addiu address loads"
+msgstr ""
+
+#: config/mips/mips.h:540
+msgid "Use MIPS as"
+msgstr ""
+
+#: config/mips/mips.h:542
+msgid "Use GNU as"
+msgstr "ВыкарыÑтоўваць GNU Ñк"
+
+#: config/mips/mips.h:544
+msgid "Use symbolic register names"
+msgstr "Ужываць ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ñ€ÑгіÑтраў"
+
+#: config/mips/mips.h:546
+msgid "Don't use symbolic register names"
+msgstr "Ðе ўжываць ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтраў"
+
+#: config/mips/mips.h:548 config/mips/mips.h:550
+msgid "Use GP relative sdata/sbss sections"
+msgstr ""
+
+#: config/mips/mips.h:552 config/mips/mips.h:554
+msgid "Don't use GP relative sdata/sbss sections"
+msgstr ""
+
+#: config/mips/mips.h:556
+msgid "Output compiler statistics"
+msgstr "ВывеÑці ÑтатыÑтыку капілÑтара"
+
+#: config/mips/mips.h:558
+msgid "Don't output compiler statistics"
+msgstr "Ðе выводзіць ÑтатыÑтыку кампілÑтара"
+
+#: config/mips/mips.h:560
+msgid "Don't optimize block moves"
+msgstr ""
+
+#: config/mips/mips.h:562
+msgid "Optimize block moves"
+msgstr ""
+
+#: config/mips/mips.h:564
+msgid "Use mips-tfile asm postpass"
+msgstr ""
+
+#: config/mips/mips.h:566
+msgid "Don't use mips-tfile asm postpass"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each triplet being { "NAME", VALUE, DOC }
+#. where VALUE is the bits to set or minus the bits to clear and DOC
+#. is the documentation for --help (NULL if intentionally undocumented).
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
+msgid "Use hardware floating point"
+msgstr "ВыкарыÑтоўваць апаратную \"плаваючую кропку\""
+
+#: config/mips/mips.h:572
+msgid "Use 64-bit FP registers"
+msgstr "ВыкарыÑтоўваць 64-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ FP-Ñ€ÑгіÑтры"
+
+#: config/mips/mips.h:574
+msgid "Use 32-bit FP registers"
+msgstr "ВыкарыÑтоўваць 32-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ FP-Ñ€ÑгіÑтры"
+
+#: config/mips/mips.h:576
+msgid "Use 64-bit general registers"
+msgstr "ВыкарыÑтоўваць 64-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ Ð³Ð°Ð»Ð¾ÑžÐ½Ñ‹Ñ Ñ€ÑгіÑтры"
+
+#: config/mips/mips.h:578
+msgid "Use 32-bit general registers"
+msgstr "ВыкарыÑтоўваць 32-Ð±Ñ–Ñ‚Ð½Ñ‹Ñ Ð³Ð°Ð»Ð¾ÑžÐ½Ñ‹Ñ Ñ€ÑгіÑтры"
+
+#: config/mips/mips.h:580
+msgid "Use Irix PIC"
+msgstr "ВыкарыÑтоўваць Irix PIC"
+
+#: config/mips/mips.h:582
+msgid "Don't use Irix PIC"
+msgstr "Ðе выкарыÑтоўваць Irix PIC"
+
+#: config/mips/mips.h:584
+msgid "Use indirect calls"
+msgstr ""
+
+#: config/mips/mips.h:586
+msgid "Don't use indirect calls"
+msgstr ""
+
+#: config/mips/mips.h:588
+msgid "Use embedded PIC"
+msgstr ""
+
+#: config/mips/mips.h:590
+msgid "Don't use embedded PIC"
+msgstr ""
+
+#: config/mips/mips.h:592
+msgid "Use ROM instead of RAM"
+msgstr ""
+
+#: config/mips/mips.h:594
+msgid "Don't use ROM instead of RAM"
+msgstr ""
+
+#: config/mips/mips.h:596
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr ""
+
+#: config/mips/mips.h:598
+msgid "Don't put uninitialized constants in ROM"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
+msgid "Use big-endian byte order"
+msgstr ""
+
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
+msgid "Use little-endian byte order"
+msgstr ""
+
+#: config/mips/mips.h:604
+msgid "Use single (32-bit) FP only"
+msgstr ""
+
+#: config/mips/mips.h:606
+msgid "Don't use single (32-bit) FP only"
+msgstr ""
+
+#: config/mips/mips.h:608
+msgid "Use multiply accumulate"
+msgstr ""
+
+#: config/mips/mips.h:610
+msgid "Don't use multiply accumulate"
+msgstr ""
+
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+msgid "Don't generate fused multiply/add instructions"
+msgstr ""
+
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+msgid "Generate fused multiply/add instructions"
+msgstr ""
+
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:618
+msgid "Don't work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:620
+msgid "Trap on integer divide by zero"
+msgstr ""
+
+#: config/mips/mips.h:622
+msgid "Don't trap on integer divide by zero"
+msgstr ""
+
+#: config/mips/mips.h:624
+msgid "Trap on integer divide overflow"
+msgstr ""
+
+#: config/mips/mips.h:626
+msgid "Don't trap on integer divide overflow"
+msgstr ""
+
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
+msgid "Specify CPU for scheduling purposes"
+msgstr ""
+
+#: config/mips/mips.h:746
+msgid "Specify CPU for code generation purposes"
+msgstr ""
+
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
+msgid "Specify a Standard MIPS ISA"
+msgstr ""
+
+#: config/mips/mips.h:752
+msgid "Use mips16 entry/exit psuedo ops"
+msgstr ""
+
+#: config/mips/mips.h:754
+msgid "Don't use MIPS16 instructions"
+msgstr ""
+
+#: config/mips/mips.h:756
+msgid "Don't call any cache flush functions"
+msgstr ""
+
+#: config/mips/mips.h:758
+msgid "Specify cache flush function"
+msgstr ""
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2900
+msgid "mips16 function profiling"
+msgstr ""
+
+#: config/mmix/mmix.c:189
+#, fuzzy, c-format
+msgid "-f%s not supported: ignored"
+msgstr "-pipe не падтрымліваецца"
+
+#: config/mmix/mmix.c:644
+#, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr ""
+
+#: config/mmix/mmix.c:826
+msgid "function_profiler support for MMIX"
+msgstr ""
+
+#: config/mmix/mmix.c:848
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr ""
+
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:1718
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr ""
+
+#: config/mmix/mmix.c:1737
+msgid "MMIX Internal: Expected a register, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1747
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr ""
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr ""
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr ""
+
+#: config/mmix/mmix.c:1891
+msgid "MMIX Internal: This is not a recognized address"
+msgstr ""
+
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr ""
+
+#: config/mmix/mmix.c:3006
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr ""
+
+#: config/mmix/mmix.c:3013
+msgid "MMIX Internal: What's the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3017
+msgid "MMIX Internal: What is the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3088
+msgid "MMIX Internal: This is not a constant:"
+msgstr ""
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+msgid "Set start-address of the program"
+msgstr ""
+
+#: config/mmix/mmix.h:134
+msgid "Set start-address of data"
+msgstr ""
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr ""
+
+#: config/mmix/mmix.h:201
+msgid "Use register stack for parameters and return value"
+msgstr ""
+
+#: config/mmix/mmix.h:203
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr ""
+
+#: config/mmix/mmix.h:205
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr ""
+
+#: config/mmix/mmix.h:208
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr ""
+
+#: config/mmix/mmix.h:211
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr ""
+
+#: config/mmix/mmix.h:215
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr ""
+
+#: config/mmix/mmix.h:217
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr ""
+
+#: config/mmix/mmix.h:219
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr ""
+
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr ""
+
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr ""
+
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/mn10300/mn10300.h:59
+msgid "Work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:60
+msgid "Do not work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:61
+msgid "Target the AM33 processor"
+msgstr "ÐœÑта - AM33 працÑÑар"
+
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
+msgstr ""
+
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
+msgid "Don't use hardware fp"
+msgstr "Ðе выкарыÑтоўваць апаратную fp"
+
+#: config/ns32k/ns32k.h:143
+msgid "Alternative calling convention"
+msgstr ""
+
+#: config/ns32k/ns32k.h:145
+msgid "Pass some arguments in registers"
+msgstr ""
+
+#: config/ns32k/ns32k.h:146
+msgid "Pass all arguments on stack"
+msgstr ""
+
+#: config/ns32k/ns32k.h:147
+msgid "Optimize for 32532 cpu"
+msgstr "Ðптымізаваць Ð´Ð»Ñ 32532 ЦП"
+
+#: config/ns32k/ns32k.h:148
+msgid "Optimize for 32332 cpu"
+msgstr "Ðптымізаваць Ð´Ð»Ñ 32332 ЦП"
+
+#: config/ns32k/ns32k.h:150
+msgid "Optimize for 32032"
+msgstr "Ðптымізаваць Ð´Ð»Ñ 32032 ЦП"
+
+#: config/ns32k/ns32k.h:152
+msgid "Register sb is zero. Use for absolute addressing"
+msgstr ""
+
+#: config/ns32k/ns32k.h:153
+msgid "Do not use register sb"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:157
+#, fuzzy
+msgid "Do not use bit-field instructions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/ns32k/ns32k.h:158
+msgid "Generate code for high memory"
+msgstr ""
+
+#: config/ns32k/ns32k.h:159
+msgid "Generate code for low memory"
+msgstr ""
+
+#: config/ns32k/ns32k.h:160
+msgid "32381 fpu"
+msgstr ""
+
+#: config/ns32k/ns32k.h:162
+msgid "Use multiply-accumulate fp instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:164
+msgid "Do not use multiply-accumulate fp instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:165
+msgid "\"Small register classes\" kludge"
+msgstr ""
+
+#: config/ns32k/ns32k.h:166
+msgid "No \"Small register classes\" kludge"
+msgstr ""
+
+#: config/pa/pa.c:261
+#, c-format
+msgid ""
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+msgstr ""
+
+#: config/pa/pa.c:286
+#, c-format
+msgid ""
+"unknown -march= option (%s).\n"
+"Valid options are 1.0, 1.1, and 2.0\n"
+msgstr ""
+
+#: config/pa/pa.c:299
+msgid "PIC code generation is not supported in the portable runtime model\n"
+msgstr ""
+
+#: config/pa/pa.c:304
+msgid "PIC code generation is not compatible with fast indirect calls\n"
+msgstr ""
+
+#: config/pa/pa.c:309
+msgid "-g is only supported when using GAS on this processor,"
+msgstr ""
+
+#: config/pa/pa.c:310
+msgid "-g option disabled"
+msgstr ""
+
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "Генерыраваць код Ð´Ð»Ñ Ð´Ð°Ð´Ð·ÐµÐ½Ð°Ð³Ð° ЦП"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+#, fuzzy
+msgid "Generate cpp defines for workstation IO"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+#, fuzzy
+msgid "Generate PA1.1 code"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+#, fuzzy
+msgid "Generate PA1.0 code"
+msgstr "Стварыць код Ð´Ð»Ñ DLL"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+#, fuzzy
+msgid "Do not disable FP regs"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "нерÑчаіÑны адраÑ"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "ВыкарыÑтоўваць апаратную \"плаваючую кропку\""
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/pa/pa.h:280
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/pa/pa.h:282
+#, fuzzy
+msgid "Always generate long calls"
+msgstr "Генерыраваць код Ð´Ð»Ñ Intel as"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Enable linker optimizations"
+msgstr "Уключаць SSA аптымізацыю"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
+msgid "Do not use hardware floating point"
+msgstr ""
+
+#. return float result in ac0
+#: config/pdp11/pdp11.h:59
+msgid "Return floating point results in ac0"
+msgstr ""
+
+#: config/pdp11/pdp11.h:60
+msgid "Return floating point results in memory"
+msgstr ""
+
+#. is 11/40
+#: config/pdp11/pdp11.h:62
+msgid "Generate code for an 11/40"
+msgstr ""
+
+#. is 11/45
+#: config/pdp11/pdp11.h:65
+msgid "Generate code for an 11/45"
+msgstr ""
+
+#. is 11/10
+#: config/pdp11/pdp11.h:68
+msgid "Generate code for an 11/10"
+msgstr ""
+
+#. use movstrhi for bcopy
+#. use 32 bit for int
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
+msgid "Use 32 bit int"
+msgstr "ВыкарыÑтоўваць 32-Ñ… бітны int"
+
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
+msgid "Use 16 bit int"
+msgstr "ВыкарыÑтоўваць 16-ці бітны int"
+
+#. use 32 bit for float
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
+msgid "Use 32 bit float"
+msgstr "ВыкарыÑтоўваць 32-Ñ… бітны float"
+
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
+msgid "Use 64 bit float"
+msgstr "ВыкарыÑтоўваць 64-Ñ… бітны float"
+
+#. allow abshi pattern? - can trigger "optimizations" which make code SLOW!
+#. is branching expensive - on a PDP, it's actually really cheap
+#. this is just to play around and check what code gcc generates
+#. split instruction and data memory?
+#: config/pdp11/pdp11.h:90
+msgid "Target has split I&D"
+msgstr ""
+
+#: config/pdp11/pdp11.h:91
+msgid "Target does not have split I&D"
+msgstr ""
+
+#. UNIX assembler syntax?
+#: config/pdp11/pdp11.h:93
+msgid "Use UNIX assembler syntax"
+msgstr "ВыкарыÑтоўваць UNIX-ÑÑ–Ð½Ñ‚Ð°ÐºÑ Ð´Ð»Ñ Ð°ÑÑмблера"
+
+#: config/pdp11/pdp11.h:94
+msgid "Use DEC assembler syntax"
+msgstr "ВыкарыÑтоўваць DEC-ÑÑ–Ð½Ñ‚Ð°ÐºÑ Ð´Ð»Ñ Ð°ÑÑмблера"
+
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
+#, c-format
+msgid "invalid %%S value"
+msgstr ""
+
+#: config/romp/romp.c:726 config/romp/romp.c:733
+#, c-format
+msgid "invalid %%b value"
+msgstr ""
+
+#: config/romp/romp.c:773 config/romp/romp.c:784
+#, c-format
+msgid "invalid %%z value"
+msgstr ""
+
+#: config/romp/romp.c:792 config/romp/romp.c:800
+#, c-format
+msgid "invalid %%Z value"
+msgstr ""
+
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
+#, c-format
+msgid "invalid %%k value"
+msgstr ""
+
+#: config/romp/romp.c:908 config/romp/romp.c:951
+#, c-format
+msgid "invalid %%j value"
+msgstr ""
+
+#. Perform any needed actions needed for a function that is receiving a
+#. variable number of arguments.
+#.
+#. CUM is as above.
+#.
+#. MODE and TYPE are the mode and type of the current parameter.
+#.
+#. PRETEND_SIZE is a variable that should be set to the amount of stack
+#. that must be pushed by the prolog to pretend that our caller pushed
+#. it.
+#.
+#. Normally, this macro will push all remaining incoming registers on the
+#. stack and set PRETEND_SIZE to the length of the registers pushed.
+#: config/romp/romp.h:648
+msgid "can't have varargs with -mfp-arg-in-fp-regs"
+msgstr ""
+
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "Прапушчана назва"
+
+#: config/rs6000/rs6000-c.c:60
+#, fuzzy
+msgid "missing number"
+msgstr "Прапушчана назва"
+
+#: config/rs6000/rs6000-c.c:62
+#, fuzzy
+msgid "missing close paren"
+msgstr "Прапушчана назва клаÑа"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000.c:592
+msgid "-mmultiple is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:599
+msgid "-mstring is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:623
+#, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr ""
+
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:646
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr ""
+
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#: config/rs6000/rs6000.c:772
+#, fuzzy, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: config/rs6000/rs6000.c:4356
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: config/rs6000/rs6000.c:4410
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "аргумент `__builtin_args_info' выйшаў за межы"
+
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: config/rs6000/rs6000.c:4666
+#, fuzzy, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "аргумент `__builtin_args_info' павінен быць канÑтантай"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "аргумент `__builtin_args_info' выйшаў за межы"
+
+#: config/rs6000/rs6000.c:7511
+#, c-format
+msgid "invalid %%f value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7520
+#, c-format
+msgid "invalid %%F value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7529
+#, c-format
+msgid "invalid %%G value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7564
+#, c-format
+msgid "invalid %%j code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7574
+#, c-format
+msgid "invalid %%J code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7604
+#, c-format
+msgid "invalid %%K value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7671
+#, c-format
+msgid "invalid %%O value"
+msgstr "нерÑчаіÑнае значÑньне %%O"
+
+#: config/rs6000/rs6000.c:7793
+#, c-format
+msgid "invalid %%T value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7803
+#, c-format
+msgid "invalid %%u value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7812
+#, c-format
+msgid "invalid %%v value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
+msgstr ""
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr ""
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr ""
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr ""
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr ""
+
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/rs6000/rs6000.h:240
+msgid "Use POWER instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:243
+msgid "Use POWER2 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:245
+msgid "Do not use POWER2 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:248
+msgid "Do not use POWER instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:250
+msgid "Use PowerPC instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:253
+msgid "Do not use PowerPC instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:255
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:257
+msgid "Don't use PowerPC General Purpose group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:259
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:261
+msgid "Don't use PowerPC Graphics group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:263
+msgid "Use PowerPC-64 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:265
+msgid "Don't use PowerPC-64 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:267
+msgid "Use AltiVec instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:269
+msgid "Don't use AltiVec instructions"
+msgstr "Ðе выкарыÑтоўваць інÑтрукцыі AltiVec"
+
+#: config/rs6000/rs6000.h:271
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr ""
+
+#: config/rs6000/rs6000.h:273
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr ""
+
+#: config/rs6000/rs6000.h:276
+msgid "Put everything in the regular TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:278
+msgid "Place floating point constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:280
+msgid "Don't place floating point constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:282
+msgid "Place symbol+offset constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:284
+msgid "Don't place symbol+offset constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:290
+msgid "Place variable addresses in the regular TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:296
+msgid "Generate load/store multiple instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:298
+msgid "Do not generate load/store multiple instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:302
+msgid "Generate string instructions for block moves"
+msgstr ""
+
+#: config/rs6000/rs6000.h:304
+msgid "Do not generate string instructions for block moves"
+msgstr ""
+
+#: config/rs6000/rs6000.h:308
+msgid "Generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:310
+msgid "Do not generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:318
+msgid "Don't schedule the start and end of the procedure"
+msgstr ""
+
+#: config/rs6000/rs6000.h:324
+msgid "Return all structures in memory (AIX default)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:326
+msgid "Return small structures in registers (SVR4 default)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
+msgid "Use features of and schedule code for given CPU"
+msgstr ""
+
+#: config/rs6000/rs6000.h:394
+msgid "Enable debug output"
+msgstr ""
+
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
+msgid "Specify ABI to use"
+msgstr ""
+
+#: config/rs6000/rs6000.h:399
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
+#. Definitions for __builtin_return_address and __builtin_frame_address.
+#. __builtin_return_address (0) should give link register (65), enable
+#. this.
+#. This should be uncommented, so that the link register is used, but
+#. currently this would result in unmatched insns and spilling fixed
+#. registers so we'll leave it for another day. When these problems are
+#. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
+#. (mrs)
+#. #define RETURN_ADDR_IN_PREVIOUS_FRAME
+#. Number of bytes into the frame return addresses can be found. See
+#. rs6000_stack_info in rs6000.c for more information on how the different
+#. abi's store the return address.
+#: config/rs6000/rs6000.h:1884
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr ""
+
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
+msgstr ""
+
+#: config/rs6000/sysv4.h:88
+msgid "Select method for sdata handling"
+msgstr ""
+
+#: config/rs6000/sysv4.h:103
+msgid "Align to the base type of the bit-field"
+msgstr ""
+
+#: config/rs6000/sysv4.h:105
+msgid "Don't align to the base type of the bit-field"
+msgstr ""
+
+#: config/rs6000/sysv4.h:107
+msgid "Don't assume that unaligned accesses are handled by the system"
+msgstr ""
+
+#: config/rs6000/sysv4.h:109
+msgid "Assume that unaligned accesses are handled by the system"
+msgstr ""
+
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+msgid "Produce code relocatable at runtime"
+msgstr ""
+
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+msgid "Don't produce code relocatable at runtime"
+msgstr ""
+
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+msgid "Produce little endian code"
+msgstr ""
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+msgid "Produce big endian code"
+msgstr ""
+
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
+msgid "no description yet"
+msgstr ""
+
+#: config/rs6000/sysv4.h:132
+msgid "Use EABI"
+msgstr ""
+
+#: config/rs6000/sysv4.h:133
+msgid "Don't use EABI"
+msgstr "Ðе выкарыÑтоўваць EABI"
+
+#: config/rs6000/sysv4.h:136
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr ""
+
+#: config/rs6000/sysv4.h:138
+msgid "Use alternate register names"
+msgstr "ВыкарыÑтоўвываць альтÑÑ€Ð½Ð°Ñ‚Ñ‹ÑžÐ½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ñ€ÑгіÑтраў"
+
+#: config/rs6000/sysv4.h:140
+msgid "Don't use alternate register names"
+msgstr "Ðе выкарыÑтоўвываць альтÑÑ€Ð½Ð°Ñ‚Ñ‹ÑžÐ½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ñ€ÑгіÑтраў"
+
+#: config/rs6000/sysv4.h:144
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:146
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:148
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:150
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:152
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr ""
+
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
+#. Sometimes certain combinations of command options do not make sense
+#. on a particular target machine. You can define a macro
+#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
+#. defined, is executed once just after all the command options have
+#. been parsed.
+#.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control.
+#: config/rs6000/sysv4.h:214
+#, c-format
+msgid "bad value for -mcall-%s"
+msgstr ""
+
+#: config/rs6000/sysv4.h:230
+#, c-format
+msgid "bad value for -msdata=%s"
+msgstr ""
+
+#: config/rs6000/sysv4.h:247
+#, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:255
+#, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:264
+#, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:273
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:279
+#, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:286
+#, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:293
+msgid "-mcall-aixdesc must be big endian"
+msgstr ""
+
+#: config/s390/s390.c:3063
+msgid "invalid UNSPEC as operand (1)"
+msgstr ""
+
+#: config/s390/s390.c:3123
+msgid "invalid UNSPEC as operand (2)"
+msgstr ""
+
+#: config/s390/s390.c:3129
+msgid "UNKNOWN in s390_output_symbolic_const !?"
+msgstr ""
+
+#: config/s390/s390.c:3147
+msgid "Cannot decompose address."
+msgstr ""
+
+#: config/s390/s390.c:3308
+msgid "UNKNOWN in print_operand !?"
+msgstr ""
+
+#: config/s390/s390.c:4961
+msgid "Total size of local variables exceeds architecture limit."
+msgstr ""
+
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr ""
+
+#: config/s390/s390.h:71
+msgid "Don't set backchain (faster, but debug harder"
+msgstr ""
+
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
+msgstr ""
+
+#: config/s390/s390.h:73
+#, fuzzy
+msgid "Don't use bras"
+msgstr "Ðе выкарыÑтоўваць Irix PIC"
+
+#: config/s390/s390.h:74
+msgid "Additional debug prints"
+msgstr ""
+
+#: config/s390/s390.h:75
+msgid "Don't print additional debug prints"
+msgstr ""
+
+#: config/s390/s390.h:76
+msgid "64 bit mode"
+msgstr ""
+
+#: config/s390/s390.h:77
+msgid "31 bit mode"
+msgstr ""
+
+#: config/s390/s390.h:78
+msgid "mvcle use"
+msgstr ""
+
+#: config/s390/s390.h:79
+msgid "mvc&ex"
+msgstr ""
+
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr ""
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr ""
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr ""
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "__buitin_saveregs не падтрымліваецца гÑтай мÑтай"
+
+#: config/sparc/sparc.c:329
+#, c-format
+msgid "%s is not supported by this configuration"
+msgstr ""
+
+#: config/sparc/sparc.c:336
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr ""
+
+#: config/sparc/sparc.c:361
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr ""
+
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, c-format
+msgid "invalid %%Y operand"
+msgstr "нерÑчаіÑны %%Y аперанд"
+
+#: config/sparc/sparc.c:6417
+#, c-format
+msgid "invalid %%A operand"
+msgstr "нерÑчаіÑны %%A аперанд"
+
+#: config/sparc/sparc.c:6427
+#, c-format
+msgid "invalid %%B operand"
+msgstr "нерÑчаіÑны %%B аперанд"
+
+#: config/sparc/sparc.c:6466
+#, c-format
+msgid "invalid %%c operand"
+msgstr "нерÑчаіÑны %%c аперанд"
+
+#: config/sparc/sparc.c:6467
+#, c-format
+msgid "invalid %%C operand"
+msgstr "нерÑчаіÑны %%C аперанд"
+
+#: config/sparc/sparc.c:6488
+#, c-format
+msgid "invalid %%d operand"
+msgstr "нерÑчаіÑны %%d аперанд"
+
+#: config/sparc/sparc.c:6489
+#, c-format
+msgid "invalid %%D operand"
+msgstr "нерÑчаіÑны %%D аперанд"
+
+#: config/sparc/sparc.c:6505
+#, c-format
+msgid "invalid %%f operand"
+msgstr "нерÑчаіÑны %%f аперанд"
+
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "нерÑчаіÑны %%f аперанд"
+
+#: config/sparc/sparc.c:6573
+msgid "long long constant not a valid immediate operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6576
+msgid "floating point constant not a valid immediate operand"
+msgstr ""
+
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr ""
+
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr ""
+
+#: config/sparc/sparc.h:532
+msgid "Assume possible double misalignment"
+msgstr ""
+
+#: config/sparc/sparc.h:534
+msgid "Assume all doubles are aligned"
+msgstr ""
+
+#: config/sparc/sparc.h:536
+msgid "Pass -assert pure-text to linker"
+msgstr ""
+
+#: config/sparc/sparc.h:538
+msgid "Do not pass -assert pure-text to linker"
+msgstr ""
+
+#: config/sparc/sparc.h:540
+msgid "Use flat register window model"
+msgstr ""
+
+#: config/sparc/sparc.h:542
+msgid "Do not use flat register window model"
+msgstr ""
+
+#: config/sparc/sparc.h:544
+msgid "Use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:546
+msgid "Do not use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:548
+msgid "Use hardware quad fp instructions"
+msgstr ""
+
+#: config/sparc/sparc.h:550
+msgid "Do not use hardware quad fp instructions"
+msgstr ""
+
+#: config/sparc/sparc.h:552
+msgid "Compile for v8plus ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:554
+msgid "Do not compile for v8plus ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:556
+msgid "Utilize Visual Instruction Set"
+msgstr ""
+
+#: config/sparc/sparc.h:558
+msgid "Do not utilize Visual Instruction Set"
+msgstr ""
+
+#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
+#: config/sparc/sparc.h:561
+msgid "Optimize for Cypress processors"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ Cypress працÑÑараў"
+
+#: config/sparc/sparc.h:563
+#, fuzzy
+msgid "Optimize for SPARCLite processors"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ SparcLite працÑÑараў"
+
+#: config/sparc/sparc.h:565
+msgid "Optimize for F930 processors"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ F930 працÑÑараў"
+
+#: config/sparc/sparc.h:567
+msgid "Optimize for F934 processors"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ F934 працÑÑараў"
+
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr ""
+
+#: config/sparc/sparc.h:571
+#, fuzzy
+msgid "Optimize for SuperSPARC processors"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ SuperSparc працÑÑараў"
+
+#. End of deprecated options.
+#: config/sparc/sparc.h:574
+msgid "Pointers are 64-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:576
+msgid "Pointers are 32-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:578
+msgid "Use 32-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:580
+msgid "Use 64-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:582
+msgid "Use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:584
+msgid "Do not use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:586
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr ""
+
+#: config/sparc/sparc.h:588
+msgid "Do not use structs on stronger alignment for double-word copies"
+msgstr ""
+
+#: config/sparc/sparc.h:590
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr ""
+
+#: config/sparc/sparc.h:592
+msgid "Do not optimize tail call instructions in assembler or linker"
+msgstr ""
+
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1192
+msgid "cannot use va_start in interrupt function"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1552
+msgid "`B' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1558
+msgid "`B' operand has multiple bits set"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1585
+msgid "`o' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1600
+msgid "xstormy16_print_operand: unknown code"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1650
+#, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr ""
+
+#: config/v850/v850-c.c:67
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.c:69
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.c:94
+msgid "cannot set interrupt attribute: no current function"
+msgstr ""
+
+#: config/v850/v850-c.c:102
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr ""
+
+#: config/v850/v850-c.c:148
+msgid "junk at end of #pragma ghs section"
+msgstr ""
+
+#: config/v850/v850-c.c:165
+#, c-format
+msgid "unrecognized section name \"%s\""
+msgstr "нераÑÐ¿Ð°Ð·Ð½Ð°Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð° ÑÑкцыі \"%s\""
+
+#: config/v850/v850-c.c:180
+msgid "malformed #pragma ghs section"
+msgstr ""
+
+#: config/v850/v850-c.c:200
+msgid "junk at end of #pragma ghs interrupt"
+msgstr ""
+
+#: config/v850/v850-c.c:212
+msgid "junk at end of #pragma ghs starttda"
+msgstr ""
+
+#: config/v850/v850-c.c:224
+msgid "junk at end of #pragma ghs startsda"
+msgstr ""
+
+#: config/v850/v850-c.c:236
+msgid "junk at end of #pragma ghs startzda"
+msgstr ""
+
+#: config/v850/v850-c.c:248
+msgid "junk at end of #pragma ghs endtda"
+msgstr ""
+
+#: config/v850/v850-c.c:260
+msgid "junk at end of #pragma ghs endsda"
+msgstr ""
+
+#: config/v850/v850-c.c:272
+msgid "junk at end of #pragma ghs endzda"
+msgstr ""
+
+#: config/v850/v850.c:129
+#, c-format
+msgid "%s=%s is not numeric"
+msgstr ""
+
+#: config/v850/v850.c:136
+#, c-format
+msgid "%s=%s is too large"
+msgstr "%s=%s вельмі вÑлікі"
+
+#: config/v850/v850.c:302
+msgid "const_double_split got a bad insn:"
+msgstr ""
+
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr ""
+
+#: config/v850/v850.c:2217
+msgid "a data area attribute cannot be specified for local variables"
+msgstr ""
+
+#: config/v850/v850.c:2228
+#, c-format
+msgid "data area of '%s' conflicts with previous declaration"
+msgstr ""
+
+#: config/v850/v850.c:2447
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
+#, c-format
+msgid "bad amount of stack space removal: %d"
+msgstr ""
+
+#: config/v850/v850.c:2646
+#, c-format
+msgid "bogus JARL construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
+msgstr ""
+
+#: config/v850/v850.h:161
+msgid "Prohibit PC relative function calls"
+msgstr ""
+
+#: config/v850/v850.h:164
+msgid "Reuse r30 on a per function basis"
+msgstr ""
+
+#: config/v850/v850.h:167
+msgid "Use stubs for function prologues"
+msgstr ""
+
+#: config/v850/v850.h:170
+msgid "Same as: -mep -mprolog-function"
+msgstr ""
+
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
+msgstr ""
+
+#: config/v850/v850.h:173
+msgid "Compile for the v850 processor"
+msgstr ""
+
+#: config/v850/v850.h:175
+#, fuzzy
+msgid "Compile for v850e processor"
+msgstr "ÐÐ¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð´Ð»Ñ F930 працÑÑараў"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+#, fuzzy
+msgid "Enable the use of the short load instructions"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/v850/v850.h:180
+#, fuzzy
+msgid "Do not use the callt instruction"
+msgstr "Ðе генерыраваць ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ñ‹Ñ Ñ–Ð½Ñтрукцыі"
+
+#: config/v850/v850.h:187
+#, fuzzy
+msgid "Do not use registers r2 and r5"
+msgstr "Ðе выкарыÑтоўваць Ñ€ÑгіÑтра sb"
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr ""
+
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
+msgstr ""
+
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
+msgstr ""
+
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
+msgstr ""
+
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1991
+msgid "invalid mask"
+msgstr "нерÑчаіÑÐ½Ð°Ñ Ð¼Ð°Ñка"
+
+#: config/xtensa/xtensa.c:2038
+msgid "invalid address"
+msgstr "нерÑчаіÑны адраÑ"
+
+#: config/xtensa/xtensa.c:2063
+#, fuzzy
+msgid "no register in address"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтра: %s"
+
+#: config/xtensa/xtensa.c:2071
+msgid "address offset not a constant"
+msgstr ""
+
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:148
+#, fuzzy
+msgid "Do not use the Xtensa boolean register option"
+msgstr "Ðе ўжываць ÑÑ–Ð¼Ð²Ð°Ð»Ñ–Ñ‡Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ð° Ñ€ÑгіÑтраў"
+
+#: config/xtensa/xtensa.h:150
+#, fuzzy
+msgid "Use the Xtensa floating-point unit"
+msgstr "ВыкарыÑтоўваць апаратную \"плаваючую кропку\""
+
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr ""
+
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
+msgstr ""
+
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr ""
+
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
+msgstr ""
+
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
+msgstr ""
+
+#: cp/call.c:261 cp/init.c:1594
+msgid "qualified type `%T' does not match destructor name `~%T'"
+msgstr ""
+
+#: cp/call.c:270
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+msgstr ""
+
+#: cp/call.c:279
+msgid "`%D' is a namespace"
+msgstr ""
+
+#: cp/call.c:287
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:369
+msgid "unable to call pointer to member function here"
+msgstr ""
+
+#: cp/call.c:518
+msgid "destructors take no parameters"
+msgstr ""
+
+#: cp/call.c:522
+msgid "destructor name `~%T' does not match type `%T' of expression"
+msgstr ""
+
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "памер \"%s\" - %d байт"
+
+#: cp/call.c:2537
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2542
+msgid "%s %D(%T, %T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2546
+msgid "%s %D(%T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2550
+msgid "%s %T <conversion>"
+msgstr ""
+
+#: cp/call.c:2552
+msgid "%s %+#D%s"
+msgstr ""
+
+#: cp/call.c:2726
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr ""
+
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr ""
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr ""
+
+#: cp/call.c:2933
+msgid "no matching function for call to `%D(%A)'"
+msgstr ""
+
+#: cp/call.c:2944 cp/call.c:5087
+msgid "call of overloaded `%D(%A)' is ambiguous"
+msgstr ""
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
+#, c-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr ""
+
+#: cp/call.c:3036
+msgid "no match for call to `(%T) (%A)'"
+msgstr ""
+
+#: cp/call.c:3046
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr ""
+
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
+
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "%s перад знакам \"%s\""
+
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr ""
+
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
+
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s перад знакам \"%s\""
+
+#: cp/call.c:3191
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr ""
+
+#: cp/call.c:3250
+#, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
+msgstr ""
+
+#: cp/call.c:3283 cp/call.c:3475
+msgid "operands to ?: have different types"
+msgstr ""
+
+#: cp/call.c:3428
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr ""
+
+#: cp/call.c:3435
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr ""
+
+#: cp/call.c:3516
+msgid "`%D' must be declared before use"
+msgstr ""
+
+#: cp/call.c:3706
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+msgstr ""
+
+#: cp/call.c:3753
+msgid "using synthesized `%#D' for copy assignment"
+msgstr ""
+
+#: cp/call.c:3755
+msgid " where cfront would use `%#D'"
+msgstr ""
+
+#: cp/call.c:3782
+msgid "comparison between `%#T' and `%#T'"
+msgstr ""
+
+#: cp/call.c:4021
+msgid "no suitable `operator delete' for `%T'"
+msgstr ""
+
+#: cp/call.c:4040
+msgid "`%+#D' is private"
+msgstr ""
+
+#: cp/call.c:4042
+msgid "`%+#D' is protected"
+msgstr ""
+
+#: cp/call.c:4044
+msgid "`%+#D' is inaccessible"
+msgstr ""
+
+#: cp/call.c:4045
+msgid "within this context"
+msgstr ""
+
+#: cp/call.c:4088
+msgid "invalid conversion from `%T' to `%T'"
+msgstr ""
+
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+msgid " initializing argument %P of `%D'"
+msgstr ""
+
+#: cp/call.c:4152 cp/call.c:4156
+msgid " initializing argument %P of `%D' from result of `%D'"
+msgstr ""
+
+#: cp/call.c:4162 cp/call.c:4165
+msgid " initializing temporary from result of `%D'"
+msgstr ""
+
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr ""
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
+msgstr ""
+
+#: cp/call.c:4523
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr ""
+
+#: cp/call.c:4542
+msgid "`%T' is not an accessible base of `%T'"
+msgstr ""
+
+#: cp/call.c:4786
+msgid "could not find class$ field in java interface type `%T'"
+msgstr ""
+
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "у функцыі \"%s\":"
+
+#: cp/call.c:5076
+msgid "no matching function for call to `%T::%D(%A)%#V'"
+msgstr ""
+
+#: cp/call.c:5106
+msgid "cannot call member function `%D' without object"
+msgstr ""
+
+#: cp/call.c:5704
+msgid "passing `%T' chooses `%T' over `%T'"
+msgstr ""
+
+#: cp/call.c:5706 cp/decl2.c:4154
+msgid " in call to `%D'"
+msgstr ""
+
+#: cp/call.c:5755
+msgid "choosing `%D' over `%D'"
+msgstr ""
+
+#: cp/call.c:5756
+msgid " for conversion from `%T' to `%T'"
+msgstr ""
+
+#: cp/call.c:5758
+msgid " because conversion sequence for the argument is better"
+msgstr ""
+
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr ""
+
+#: cp/call.c:5996
+msgid "could not convert `%E' to `%T'"
+msgstr ""
+
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr ""
+
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr ""
+
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr ""
+
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr ""
+
+#: cp/class.c:1076
+#, fuzzy
+msgid "duplicate enum value `%D'"
+msgstr "паўтарÑнне \"volatile\""
+
+#: cp/class.c:1079
+msgid "duplicate field `%D' (as enum and non-enum)"
+msgstr ""
+
+#: cp/class.c:1086
+#, fuzzy
+msgid "duplicate nested type `%D'"
+msgstr "паўтарÑнне \"restrict\""
+
+#: cp/class.c:1097
+msgid "duplicate field `%D' (as type and non-type)"
+msgstr ""
+
+#: cp/class.c:1101
+#, fuzzy
+msgid "duplicate member `%D'"
+msgstr "паўтарÑнне \"%s\""
+
+#: cp/class.c:1144
+msgid "conflicting access specifications for method `%D', ignored"
+msgstr ""
+
+#: cp/class.c:1146
+#, c-format
+msgid "conflicting access specifications for field `%s', ignored"
+msgstr ""
+
+#: cp/class.c:1194
+msgid "`%D' names constructor"
+msgstr ""
+
+#: cp/class.c:1199
+#, fuzzy
+msgid "`%D' invalid in `%T'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: cp/class.c:1207
+msgid "no members matching `%D' in `%#T'"
+msgstr ""
+
+#: cp/class.c:1239 cp/class.c:1247
+#, fuzzy
+msgid "`%D' invalid in `%#T'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: cp/class.c:1240
+msgid " because of local method `%#D' with same name"
+msgstr ""
+
+#: cp/class.c:1248
+msgid " because of local member `%#D' with same name"
+msgstr ""
+
+#: cp/class.c:1320
+msgid "base class `%#T' has a non-virtual destructor"
+msgstr ""
+
+#: cp/class.c:1340
+msgid "base `%T' with only non-default constructor in class without a constructor"
+msgstr ""
+
+#: cp/class.c:1912
+msgid "all member functions in class `%T' are private"
+msgstr ""
+
+#: cp/class.c:1926
+msgid "`%#T' only defines a private destructor and has no friends"
+msgstr ""
+
+#: cp/class.c:1969
+msgid "`%#T' only defines private constructors and has no friends"
+msgstr ""
+
+#: cp/class.c:2090 cp/class.c:5276
+msgid "redefinition of `%#T'"
+msgstr ""
+
+#: cp/class.c:2091
+msgid "previous definition of `%#T'"
+msgstr "папÑÑ€ÑднÑе вызначÑньне `%#T'"
+
+#: cp/class.c:2365
+msgid "no unique final overrider for `%D' in `%T'"
+msgstr ""
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+msgid "`%D' was hidden"
+msgstr ""
+
+#: cp/class.c:2713
+msgid " by `%D'"
+msgstr ""
+
+#: cp/class.c:2755
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/class.c:2760 cp/decl2.c:1331
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+msgstr ""
+
+#: cp/class.c:2766 cp/decl2.c:1337
+msgid "private member `%#D' in anonymous union"
+msgstr ""
+
+#: cp/class.c:2769 cp/decl2.c:1339
+msgid "protected member `%#D' in anonymous union"
+msgstr ""
+
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
+#, fuzzy
+msgid "bit-field `%#D' with non-integral type"
+msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
+
+#: cp/class.c:2978
+msgid "bit-field `%D' width not an integer constant"
+msgstr ""
+
+#: cp/class.c:2984
+msgid "negative width in bit-field `%D'"
+msgstr ""
+
+#: cp/class.c:2989
+msgid "zero width for bit-field `%D'"
+msgstr ""
+
+#: cp/class.c:2995
+msgid "width of `%D' exceeds its type"
+msgstr ""
+
+#: cp/class.c:3004
+msgid "`%D' is too small to hold all values of `%#T'"
+msgstr ""
+
+#: cp/class.c:3088
+msgid "member `%#D' with constructor not allowed in union"
+msgstr ""
+
+#: cp/class.c:3091
+msgid "member `%#D' with destructor not allowed in union"
+msgstr ""
+
+#: cp/class.c:3094
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr ""
+
+#: cp/class.c:3121
+msgid "multiple fields in union `%T' initialized"
+msgstr ""
+
+#: cp/class.c:3234
+msgid "field `%D' in local class cannot be static"
+msgstr ""
+
+#: cp/class.c:3240
+msgid "field `%D' invalidly declared function type"
+msgstr ""
+
+#: cp/class.c:3247
+#, fuzzy
+msgid "field `%D' invalidly declared method type"
+msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
+
+#: cp/class.c:3253
+#, fuzzy
+msgid "field `%D' invalidly declared offset type"
+msgstr "бітавае поле \"%s\" мае нерÑчаіÑны тып"
+
+#. Unions cannot have static members.
+#: cp/class.c:3271
+#, fuzzy
+msgid "field `%D' declared static in union"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/class.c:3298
+msgid "non-static reference `%#D' in class without a constructor"
+msgstr ""
+
+#: cp/class.c:3333
+msgid "non-static const member `%#D' in class without a constructor"
+msgstr ""
+
+#: cp/class.c:3349
+msgid "field `%#D' with same name as class"
+msgstr ""
+
+#: cp/class.c:3367
+msgid "`%#T' has pointer data members"
+msgstr ""
+
+#: cp/class.c:3371
+msgid " but does not override `%T(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3373
+msgid " or `operator=(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3376
+msgid " but does not override `operator=(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
+msgid "initializer specified for non-virtual method `%D'"
+msgstr ""
+
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4861
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
+msgid "`%#T' has virtual functions but non-virtual destructor"
+msgstr ""
+
+#: cp/class.c:5516
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr ""
+
+#: cp/class.c:5982
+#, c-format
+msgid "language string `\"%s\"' not recognized"
+msgstr ""
+
+#: cp/class.c:6078
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr ""
+
+#: cp/class.c:6203
+msgid "no matches converting function `%D' to type `%#T'"
+msgstr ""
+
+#: cp/class.c:6226
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+msgstr ""
+
+#: cp/class.c:6252
+msgid "assuming pointer to member `%D'"
+msgstr ""
+
+#: cp/class.c:6255
+#, c-format
+msgid "(a pointer to member can only be formed with `&%E')"
+msgstr ""
+
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
+msgid "not enough type information"
+msgstr ""
+
+#: cp/class.c:6315
+msgid "argument of type `%T' does not match `%T'"
+msgstr ""
+
+#: cp/class.c:6461
+msgid "invalid operation on uninstantiated type"
+msgstr ""
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+msgid "declaration of `%#D'"
+msgstr "абвÑшчÑньне `%#D'"
+
+#: cp/class.c:6746
+msgid "changes meaning of `%D' from `%+#D'"
+msgstr ""
+
+#: cp/cvt.c:88
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr ""
+
+#: cp/cvt.c:97
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+msgstr ""
+
+#: cp/cvt.c:126
+msgid "converting from `%T' to `%T'"
+msgstr "пераўтварÑньне з `%T' у `%T'"
+
+#: cp/cvt.c:203 cp/cvt.c:207
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+msgstr ""
+
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "пераўтварÑньне з `%T' у `%T'"
+
+#: cp/cvt.c:504
+msgid "conversion from `%T' to `%T' discards qualifiers"
+msgstr ""
+
+#: cp/cvt.c:522
+msgid "casting `%T' to `%T' does not dereference pointer"
+msgstr ""
+
+#: cp/cvt.c:551
+msgid "cannot convert type `%T' to type `%T'"
+msgstr ""
+
+#: cp/cvt.c:683
+msgid "conversion from `%#T' to `%#T'"
+msgstr ""
+
+#: cp/cvt.c:695
+msgid "`%#T' used where a `%T' was expected"
+msgstr ""
+
+#: cp/cvt.c:712
+msgid "the address of `%D', will always be `true'"
+msgstr ""
+
+#: cp/cvt.c:732
+msgid "`%#T' used where a floating point value was expected"
+msgstr ""
+
+#: cp/cvt.c:779
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr ""
+
+#: cp/cvt.c:865
+msgid "object of incomplete type `%T' will not be accessed in %s"
+msgstr ""
+
+#: cp/cvt.c:868
+msgid "object of type `%T' will not be accessed in %s"
+msgstr ""
+
+#: cp/cvt.c:884
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+msgstr ""
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr ""
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
+#, c-format
+msgid "%s is a reference, not call, to function `%E'"
+msgstr ""
+
+#: cp/cvt.c:1039
+msgid "converting NULL to non-pointer type"
+msgstr ""
+
+#: cp/cvt.c:1115
+msgid "ambiguous default type conversion from `%T'"
+msgstr ""
+
+#: cp/cvt.c:1117
+msgid " candidate conversions include `%D' and `%D'"
+msgstr ""
+
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
+msgid "conflicts with previous declaration `%#D'"
+msgstr "канфлікт з папÑÑ€Ñднім абвÑшчÑньнем `%#D'"
+
+#: cp/decl.c:1467
+msgid "label `%D' used but not defined"
+msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
+
+#: cp/decl.c:1472
+msgid "label `%D' defined but not used"
+msgstr "адмеціна `%D' вызначана, але не выкарыÑтоўваецца"
+
+#: cp/decl.c:2489
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
+msgstr ""
+
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
+msgid "previous declaration of `%D'"
+msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
+
+#: cp/decl.c:3366 cp/decl.c:3404
+#, fuzzy
+msgid "shadowing %s function `%#D'"
+msgstr "у функцыі \"%s\":"
+
+#: cp/decl.c:3375
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr ""
+
+#: cp/decl.c:3380
+#, fuzzy
+msgid "conflicts with built-in declaration `%#D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+msgid "new declaration `%#D'"
+msgstr "новае абвÑшчÑньне `%#D'"
+
+#: cp/decl.c:3400
+#, fuzzy
+msgid "ambiguates built-in declaration `%#D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/decl.c:3464
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr ""
+
+#: cp/decl.c:3467
+msgid "previous declaration of `%#D'"
+msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%#D'"
+
+#: cp/decl.c:3489
+msgid "declaration of template `%#D'"
+msgstr "абвÑшчÑньне шаблёну `%#D'"
+
+#: cp/decl.c:3505 cp/decl.c:3521
+#, fuzzy
+msgid "ambiguates old declaration `%#D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/decl.c:3513
+msgid "declaration of C function `%#D' conflicts with"
+msgstr ""
+
+#: cp/decl.c:3515
+#, fuzzy
+msgid "previous declaration `%#D' here"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3533
+msgid "conflicting types for `%#D'"
+msgstr ""
+
+#: cp/decl.c:3534
+#, fuzzy
+msgid "previous declaration as `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3577
+msgid "`%#D' previously defined here"
+msgstr ""
+
+#: cp/decl.c:3578
+msgid "`%#D' previously declared here"
+msgstr ""
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+#, fuzzy
+msgid "prototype for `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга прататыпа Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3588
+msgid "follows non-prototype definition here"
+msgstr ""
+
+#: cp/decl.c:3600
+#, fuzzy
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3602
+msgid "conflicts with new declaration with %L linkage"
+msgstr ""
+
+#: cp/decl.c:3625 cp/decl.c:3632
+msgid "default argument given for parameter %d of `%#D'"
+msgstr ""
+
+#: cp/decl.c:3627 cp/decl.c:3634
+#, fuzzy
+msgid "after previous specification in `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3643
+msgid "`%#D' was used before it was declared inline"
+msgstr ""
+
+#: cp/decl.c:3645
+#, fuzzy
+msgid "previous non-inline declaration here"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:3699
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr ""
+
+#: cp/decl.c:3780
+#, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr ""
+
+#: cp/decl.c:3782
+#, fuzzy, c-format
+msgid "than previous declaration `%F'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+msgid "explicit specialization of %D after first use"
+msgstr ""
+
+#: cp/decl.c:4187
+#, fuzzy
+msgid "`%#D' used prior to declaration"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: cp/decl.c:4218
+#, fuzzy
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+#, fuzzy
+msgid "invalid redeclaration of `%D'"
+msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
+
+#: cp/decl.c:4247
+msgid "as `%D'"
+msgstr "Ñк `%D'"
+
+#: cp/decl.c:4337
+#, fuzzy
+msgid "previous external decl of `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:4378
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr ""
+
+#: cp/decl.c:4438
+msgid "extern declaration of `%#D' doesn't match"
+msgstr ""
+
+#: cp/decl.c:4439
+#, fuzzy
+msgid "global declaration `%#D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/decl.c:4472
+msgid "declaration of `%#D' shadows a parameter"
+msgstr ""
+
+#: cp/decl.c:4492
+#, c-format
+msgid "declaration of `%s' shadows a member of `this'"
+msgstr ""
+
+#: cp/decl.c:4889
+#, fuzzy
+msgid "`%#D' hides constructor for `%#T'"
+msgstr "дÑÑтруктару неабходны \"%#D\""
+
+#: cp/decl.c:4904
+#, fuzzy
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: cp/decl.c:4916
+#, fuzzy
+msgid "previous non-function declaration `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:4917
+#, fuzzy
+msgid "conflicts with function declaration `%#D'"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: cp/decl.c:5007
+#, fuzzy
+msgid "implicit declaration of function `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:5167
+#, c-format
+msgid "label `%s' referenced outside of any function"
+msgstr ""
+
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+msgid "jump to label `%D'"
+msgstr ""
+
+#: cp/decl.c:5272 cp/decl.c:5296
+msgid "jump to case label"
+msgstr ""
+
+#: cp/decl.c:5280
+msgid " crosses initialization of `%#D'"
+msgstr ""
+
+#: cp/decl.c:5283 cp/decl.c:5403
+msgid " enters scope of non-POD `%#D'"
+msgstr ""
+
+#: cp/decl.c:5303 cp/decl.c:5407
+msgid " enters try block"
+msgstr ""
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
+msgid " enters catch block"
+msgstr ""
+
+#: cp/decl.c:5388
+msgid " from here"
+msgstr " адÑюль"
+
+#: cp/decl.c:5401
+#, fuzzy
+msgid " skips initialization of `%#D'"
+msgstr "ініцыÑлізацыÑ"
+
+#: cp/decl.c:5437
+msgid "label named wchar_t"
+msgstr ""
+
+#: cp/decl.c:5440
+#, fuzzy
+msgid "duplicate label `%D'"
+msgstr "паўтарÑнне \"%s\""
+
+#: cp/decl.c:5525
+#, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr ""
+
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+msgid "`%#D' redeclared as %C"
+msgstr ""
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+msgid "invalid use of `%D'"
+msgstr "нерÑчаіÑнае выкарыÑтаньне `%D'"
+
+#: cp/decl.c:5852
+msgid "`%D::%D' is not a template"
+msgstr ""
+
+#: cp/decl.c:5869
+msgid "`%D' undeclared in namespace `%D'"
+msgstr ""
+
+#: cp/decl.c:6002
+msgid "`%D' used without template parameters"
+msgstr ""
+
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+msgid "no class template named `%#T' in `%#T'"
+msgstr ""
+
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+msgid "no type named `%#T' in `%#T'"
+msgstr ""
+
+#: cp/decl.c:6329
+msgid "lookup of `%D' finds `%#D'"
+msgstr ""
+
+#: cp/decl.c:6331
+msgid " instead of `%D' from dependent base class"
+msgstr ""
+
+#: cp/decl.c:6333
+msgid " (use `typename %T::%D' if that's what you meant)"
+msgstr ""
+
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr ""
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+msgstr ""
+
+#: cp/decl.c:7432
+msgid "an anonymous union cannot have function members"
+msgstr ""
+
+#: cp/decl.c:7449
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7452
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7455
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7493
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr ""
+
+#: cp/decl.c:7529
+msgid "multiple types in one declaration"
+msgstr ""
+
+#: cp/decl.c:7556
+msgid "missing type-name in typedef-declaration"
+msgstr ""
+
+#: cp/decl.c:7563
+msgid "ISO C++ prohibits anonymous structs"
+msgstr ""
+
+#: cp/decl.c:7570
+msgid "`%D' can only be specified for functions"
+msgstr ""
+
+#: cp/decl.c:7572
+msgid "`%D' can only be specified inside a class"
+msgstr ""
+
+#: cp/decl.c:7574
+msgid "`%D' can only be specified for constructors"
+msgstr ""
+
+#: cp/decl.c:7577
+msgid "`%D' can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.c:7719 cp/decl2.c:936
+#, fuzzy
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/decl.c:7724
+msgid "function `%#D' is initialized like a variable"
+msgstr ""
+
+#: cp/decl.c:7736
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr ""
+
+#: cp/decl.c:7770
+msgid "`%#D' is not a static member of `%#T'"
+msgstr ""
+
+#: cp/decl.c:7775
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr ""
+
+#: cp/decl.c:7786
+msgid "duplicate initialization of %D"
+msgstr ""
+
+#: cp/decl.c:7815
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr ""
+
+#: cp/decl.c:7865
+#, fuzzy
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:7873 cp/decl.c:8432
+#, fuzzy
+msgid "elements of array `%#D' have incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:7889
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr ""
+
+#: cp/decl.c:7931
+msgid "`%D' declared as reference but not initialized"
+msgstr ""
+
+#: cp/decl.c:7940
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr ""
+
+#: cp/decl.c:7970
+#, fuzzy
+msgid "cannot initialize `%T' from `%T'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:8004
+msgid "initializer fails to determine size of `%D'"
+msgstr ""
+
+#: cp/decl.c:8009
+msgid "array size missing in `%D'"
+msgstr "прапушчан памер маÑіва Ñž `%D'"
+
+#: cp/decl.c:8021
+msgid "zero-size array `%D'"
+msgstr "нулÑвы памер маÑіва `%D'"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+msgid "storage size of `%D' isn't known"
+msgstr ""
+
+#: cp/decl.c:8081
+msgid "storage size of `%D' isn't constant"
+msgstr ""
+
+#: cp/decl.c:8137
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+msgstr ""
+
+#: cp/decl.c:8138
+msgid " you can work around this by removing the initializer"
+msgstr ""
+
+#: cp/decl.c:8164
+#, fuzzy
+msgid "uninitialized const `%D'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr ""
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr ""
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:8426
+msgid "variable-sized object `%D' may not be initialized"
+msgstr ""
+
+#: cp/decl.c:8437
+#, fuzzy
+msgid "`%D' has incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:8486
+msgid "`%D' must be initialized by constructor, not by `{...}'"
+msgstr ""
+
+#: cp/decl.c:8527
+msgid "structure `%D' with uninitialized const members"
+msgstr ""
+
+#: cp/decl.c:8529
+msgid "structure `%D' with uninitialized reference members"
+msgstr ""
+
+#: cp/decl.c:8770
+msgid "assignment (not initialization) in declaration"
+msgstr ""
+
+#: cp/decl.c:8785
+#, fuzzy
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:8836
+#, fuzzy
+msgid "shadowing previous type declaration of `%#D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9298 cp/init.c:562
+msgid "multiple initializations given for `%D'"
+msgstr ""
+
+#: cp/decl.c:9390
+msgid "invalid catch parameter"
+msgstr ""
+
+#: cp/decl.c:9508
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr ""
+
+#: cp/decl.c:9511
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr ""
+
+#: cp/decl.c:9530
+msgid "`%D' declared as a `virtual' %s"
+msgstr ""
+
+#: cp/decl.c:9532
+msgid "`%D' declared as an `inline' %s"
+msgstr ""
+
+#: cp/decl.c:9534
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+msgstr ""
+
+#: cp/decl.c:9537
+msgid "`%D' declared as a friend"
+msgstr ""
+
+#: cp/decl.c:9543
+#, fuzzy
+msgid "`%D' declared with an exception specification"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/decl.c:9618
+msgid "cannot declare `::main' to be a template"
+msgstr ""
+
+#: cp/decl.c:9620
+msgid "cannot declare `::main' to be inline"
+msgstr ""
+
+#: cp/decl.c:9622
+msgid "cannot declare `::main' to be static"
+msgstr ""
+
+#: cp/decl.c:9625
+msgid "`main' must return `int'"
+msgstr "`main' павінна вÑртаць `int'"
+
+#: cp/decl.c:9653
+msgid "non-local function `%#D' uses anonymous type"
+msgstr ""
+
+#: cp/decl.c:9656
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+msgstr ""
+
+#: cp/decl.c:9662
+msgid "non-local function `%#D' uses local type `%T'"
+msgstr ""
+
+#: cp/decl.c:9691
+msgid "%smember function `%D' cannot have `%T' method qualifier"
+msgstr ""
+
+#: cp/decl.c:9715
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr ""
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+msgid "invalid use of template-id `%D' in declaration of primary template"
+msgstr ""
+
+#: cp/decl.c:9753
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+msgstr ""
+
+#: cp/decl.c:9760
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+msgstr ""
+
+#: cp/decl.c:9822
+msgid "definition of implicitly-declared `%D'"
+msgstr ""
+
+#: cp/decl.c:9834 cp/decl2.c:785
+msgid "no `%#D' member function declared in class `%T'"
+msgstr ""
+
+#: cp/decl.c:9967
+msgid "non-local variable `%#D' uses local type `%T'"
+msgstr ""
+
+#: cp/decl.c:10064
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+msgstr ""
+
+#: cp/decl.c:10073
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr ""
+
+#: cp/decl.c:10076
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr ""
+
+#: cp/decl.c:10126
+msgid "size of array `%D' has non-integer type"
+msgstr "памер маÑіва `%D' не цÑлалікавы тып"
+
+#: cp/decl.c:10128
+#, fuzzy
+msgid "size of array has non-integer type"
+msgstr "памер маÑіва \"%s\" адмоўны"
+
+#: cp/decl.c:10148
+msgid "size of array `%D' is negative"
+msgstr "памер маÑіва `%D' - адмоўны"
+
+#: cp/decl.c:10150
+msgid "size of array is negative"
+msgstr "адмоўны памер маÑіва "
+
+#: cp/decl.c:10159
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr ""
+
+#: cp/decl.c:10161
+#, fuzzy
+msgid "ISO C++ forbids zero-size array"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#: cp/decl.c:10168
+#, fuzzy
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr "памер маÑіва \"%s\" адмоўны"
+
+#: cp/decl.c:10171
+msgid "size of array is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.c:10189
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr ""
+
+#: cp/decl.c:10192
+#, fuzzy
+msgid "ISO C++ forbids variable-size array"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#: cp/decl.c:10203
+msgid "overflow in array dimension"
+msgstr ""
+
+#: cp/decl.c:10262
+msgid "declaration of `%D' as %s"
+msgstr ""
+
+#: cp/decl.c:10264
+#, c-format
+msgid "creating %s"
+msgstr ""
+
+#: cp/decl.c:10276
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.c:10279
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.c:10308
+msgid "return type specification for constructor invalid"
+msgstr ""
+
+#: cp/decl.c:10315
+msgid "return type specification for destructor invalid"
+msgstr ""
+
+#: cp/decl.c:10321
+msgid "operator `%T' declared to return `%T'"
+msgstr ""
+
+#: cp/decl.c:10323
+msgid "return type specified for `operator %T'"
+msgstr ""
+
+#: cp/decl.c:10491
+msgid "destructors must be member functions"
+msgstr ""
+
+#: cp/decl.c:10510
+msgid "destructor `%T' must match class name `%T'"
+msgstr ""
+
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
+msgid "invalid declarator"
+msgstr "нерÑчаіÑны абвÑшчальнік"
+
+#: cp/decl.c:10617
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr ""
+
+#: cp/decl.c:10674
+msgid "type `%T' is not derived from type `%T'"
+msgstr ""
+
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+msgid "`%T' specified as declarator-id"
+msgstr ""
+
+#: cp/decl.c:10728
+msgid " perhaps you want `%T' for a constructor"
+msgstr ""
+
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: cp/decl.c:10770
+msgid "declaration of `%D' as non-function"
+msgstr ""
+
+#: cp/decl.c:10847
+msgid "`bool' is now a keyword"
+msgstr ""
+
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
+msgstr ""
+
+#: cp/decl.c:10865 cp/decl.c:10910
+msgid "multiple declarations `%T' and `%T'"
+msgstr "неаднолькавае абвÑшчÑньне `%T' Ñ– `%T'"
+
+#: cp/decl.c:10878
+msgid "ISO C++ does not support `long long'"
+msgstr "ISO C++ не падтрымлівае \"long long\""
+
+#: cp/decl.c:10983 cp/decl.c:10986
+#, fuzzy, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr "ISO C не дазвалÑе дÑкларацыі метак (label)"
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+msgid "`%T' is implicitly a typename"
+msgstr ""
+
+#: cp/decl.c:11032
+#, c-format
+msgid "short, signed or unsigned invalid for `%s'"
+msgstr ""
+
+#: cp/decl.c:11037
+#, c-format
+msgid "long and short specified together for `%s'"
+msgstr ""
+
+#: cp/decl.c:11048
+#, c-format
+msgid "signed and unsigned given together for `%s'"
+msgstr ""
+
+#: cp/decl.c:11157
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr ""
+
+#: cp/decl.c:11179
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr ""
+
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: cp/decl.c:11200
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr ""
+
+#: cp/decl.c:11204
+msgid "typedef declaration invalid in parameter declaration"
+msgstr ""
+
+#: cp/decl.c:11217
+msgid "virtual outside class declaration"
+msgstr ""
+
+#: cp/decl.c:11278
+#, c-format
+msgid "storage class specified for %s `%s'"
+msgstr ""
+
+#: cp/decl.c:11325
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr ""
+
+#: cp/decl.c:11495
+msgid "destructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.c:11498
+#, c-format
+msgid "destructors may not be `%s'"
+msgstr ""
+
+#: cp/decl.c:11519
+msgid "constructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.c:11522
+msgid "constructors cannot be declared virtual"
+msgstr ""
+
+#: cp/decl.c:11527
+#, c-format
+msgid "constructors may not be `%s'"
+msgstr ""
+
+#: cp/decl.c:11537
+msgid "return value type specifier for constructor ignored"
+msgstr ""
+
+#: cp/decl.c:11556
+#, c-format
+msgid "can't initialize friend function `%s'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:11560
+msgid "virtual functions cannot be friends"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#: cp/decl.c:11565
+msgid "friend declaration not in class definition"
+msgstr ""
+
+#: cp/decl.c:11567
+#, fuzzy, c-format
+msgid "can't define friend function `%s' in a local class definition"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl.c:11591
+msgid "destructors may not have parameters"
+msgstr ""
+
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "Ðе магу знайÑці файл Ð´Ð»Ñ ÐºÐ»Ð°Ñа %s."
+
+#: cp/decl.c:11623
+#, fuzzy
+msgid "cannot declare pointer to `%#T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr ""
+
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
+msgstr ""
+
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
+msgstr ""
+
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
+msgstr ""
+
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:11918
+msgid "only declarations of constructors can be `explicit'"
+msgstr ""
+
+#: cp/decl.c:11926
+#, c-format
+msgid "non-member `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11931
+#, c-format
+msgid "non-object member `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11937
+#, c-format
+msgid "function `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11942
+#, c-format
+msgid "static `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11947
+#, c-format
+msgid "const `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11960
+msgid "template-id `%D' used as a declarator"
+msgstr ""
+
+#: cp/decl.c:11981
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/decl.c:12030
+msgid "typedef name may not be class-qualified"
+msgstr ""
+
+#: cp/decl.c:12038
+msgid "invalid type qualifier for non-member function type"
+msgstr ""
+
+#: cp/decl.c:12101
+msgid "type qualifiers specified for friend class declaration"
+msgstr ""
+
+#: cp/decl.c:12106
+msgid "`inline' specified for friend class declaration"
+msgstr ""
+
+#: cp/decl.c:12114
+#, fuzzy
+msgid "template parameters cannot be friends"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr ""
+
+#: cp/decl.c:12120
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
+msgstr ""
+
+#: cp/decl.c:12134
+msgid "trying to make class `%T' a friend of global scope"
+msgstr ""
+
+#: cp/decl.c:12145
+msgid "invalid qualifiers on non-member function type"
+msgstr ""
+
+#: cp/decl.c:12164
+msgid "abstract declarator `%T' used as declaration"
+msgstr ""
+
+#: cp/decl.c:12176
+msgid "unnamed variable or field declared void"
+msgstr ""
+
+#: cp/decl.c:12185
+msgid "variable or field declared void"
+msgstr ""
+
+#: cp/decl.c:12195
+msgid "cannot use `::' in parameter declaration"
+msgstr ""
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+msgid "invalid use of `::'"
+msgstr "нерÑчаіÑнае выкарыÑтаньне `::'"
+
+#: cp/decl.c:12246
+#, fuzzy
+msgid "function `%D' cannot be declared friend"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ñ‹Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ– не могуць быць ÑÑброўÑкімі"
+
+#: cp/decl.c:12258
+msgid "can't make `%D' into a method -- not in a class"
+msgstr ""
+
+#: cp/decl.c:12267
+#, fuzzy
+msgid "function `%D' declared virtual inside a union"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/decl.c:12279
+msgid "`%D' cannot be declared virtual, since it is always static"
+msgstr ""
+
+#: cp/decl.c:12355
+#, fuzzy
+msgid "field `%D' has incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:12357
+#, fuzzy
+msgid "name `%T' has incomplete type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/decl.c:12366
+msgid " in instantiation of template `%T'"
+msgstr ""
+
+#: cp/decl.c:12376
+#, c-format
+msgid "`%s' is neither function nor member function; cannot be declared friend"
+msgstr ""
+
+#: cp/decl.c:12387
+msgid "member functions are implicitly friends of their class"
+msgstr ""
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr ""
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
+msgstr ""
+
+#: cp/decl.c:12460
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/decl.c:12501
+#, c-format
+msgid "storage class `auto' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12503
+#, c-format
+msgid "storage class `register' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12516
+#, c-format
+msgid "storage class `static' invalid for function `%s' declared out of global scope"
+msgstr ""
+
+#: cp/decl.c:12518
+#, c-format
+msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+msgstr ""
+
+#: cp/decl.c:12525
+#, c-format
+msgid "virtual non-class function `%s'"
+msgstr ""
+
+#: cp/decl.c:12554
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr ""
+
+#. FIXME need arm citation
+#: cp/decl.c:12560
+msgid "cannot declare static function inside another function"
+msgstr ""
+
+#: cp/decl.c:12588
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr ""
+
+#: cp/decl.c:12594
+msgid "static member `%D' declared `register'"
+msgstr ""
+
+#: cp/decl.c:12599
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
+msgstr ""
+
+#: cp/decl.c:12774
+msgid "default argument for `%#D' has type `%T'"
+msgstr "звычайны аргумÑнт Ð´Ð»Ñ `%#D' мае тып `%T'"
+
+#: cp/decl.c:12777
+msgid "default argument for parameter of type `%T' has type `%T'"
+msgstr ""
+
+#: cp/decl.c:12794
+msgid "default argument `%E' uses local variable `%D'"
+msgstr ""
+
+#: cp/decl.c:12839
+#, c-format
+msgid "invalid string constant `%E'"
+msgstr "`%E' - нерÑчаіÑÐ½Ð°Ñ Ð½ÑÐ·ÑŒÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ñ‹Ð¿Ñƒ string"
+
+#: cp/decl.c:12841
+msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+msgstr ""
+
+#: cp/decl.c:12879
+#, fuzzy
+msgid "parameter `%D' invalidly declared method type"
+msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#: cp/decl.c:12885
+#, fuzzy
+msgid "parameter `%D' invalidly declared offset type"
+msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#: cp/decl.c:12909
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+msgstr ""
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr ""
+
+#: cp/decl.c:13222
+msgid "`%D' must be a nonstatic member function"
+msgstr ""
+
+#: cp/decl.c:13228
+msgid "`%D' must be either a non-static member function or a non-member function"
+msgstr ""
+
+#: cp/decl.c:13245
+msgid "`%D' must have an argument of class or enumerated type"
+msgstr ""
+
+#: cp/decl.c:13277
+#, c-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr ""
+
+#. 13.4.0.3
+#: cp/decl.c:13284
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr ""
+
+#: cp/decl.c:13334
+msgid "postfix `%D' must take `int' as its argument"
+msgstr ""
+
+#: cp/decl.c:13338
+msgid "postfix `%D' must take `int' as its second argument"
+msgstr ""
+
+#: cp/decl.c:13345
+msgid "`%D' must take either zero or one argument"
+msgstr ""
+
+#: cp/decl.c:13347
+msgid "`%D' must take either one or two arguments"
+msgstr ""
+
+#: cp/decl.c:13368
+msgid "prefix `%D' should return `%T'"
+msgstr ""
+
+#: cp/decl.c:13374
+msgid "postfix `%D' should return `%T'"
+msgstr ""
+
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr ""
+
+#: cp/decl.c:13385 cp/decl.c:13393
+msgid "`%D' must take exactly one argument"
+msgstr ""
+
+#: cp/decl.c:13395
+msgid "`%D' must take exactly two arguments"
+msgstr ""
+
+#: cp/decl.c:13403
+msgid "user-defined `%D' always evaluates both arguments"
+msgstr ""
+
+#: cp/decl.c:13417
+msgid "`%D' should return by value"
+msgstr ""
+
+#: cp/decl.c:13429 cp/decl.c:13432
+msgid "`%D' cannot have default arguments"
+msgstr ""
+
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
+msgstr ""
+
+#: cp/decl.c:13481
+msgid "using template type parameter `%T' after `%s'"
+msgstr ""
+
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr ""
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr ""
+
+#: cp/decl.c:13663
+#, fuzzy
+msgid "use of enum `%#D' without previous declaration"
+msgstr "ÑÐµÐºÑ†Ñ‹Ñ \"%s\" канфліктуе з папÑÑ€ÑднÑй дÑкларацыÑй"
+
+#: cp/decl.c:13749
+msgid "derived union `%T' invalid"
+msgstr ""
+
+#: cp/decl.c:13795
+msgid "base type `%T' fails to be a struct or class type"
+msgstr ""
+
+#: cp/decl.c:13805
+msgid "base class `%T' has incomplete type"
+msgstr ""
+
+#: cp/decl.c:13813
+msgid "recursive type `%T' undefined"
+msgstr ""
+
+#: cp/decl.c:13815
+msgid "duplicate base type `%T' invalid"
+msgstr ""
+
+#: cp/decl.c:13926
+msgid "multiple definition of `%#T'"
+msgstr ""
+
+#: cp/decl.c:13927
+msgid "previous definition here"
+msgstr "папÑÑ€ÑднÑе вызначÑньне"
+
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
+msgid "enumerator value for `%D' not integer constant"
+msgstr ""
+
+#: cp/decl.c:14126
+msgid "overflow in enumeration values at `%D'"
+msgstr ""
+
+#: cp/decl.c:14195
+#, fuzzy
+msgid "return type `%#T' is incomplete"
+msgstr "вÑртаемы тып \"%s\" не \"int\""
+
+#: cp/decl.c:14309
+#, fuzzy
+msgid "semicolon missing after declaration of `%#T'"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: cp/decl.c:14330
+msgid "return type for `main' changed to `int'"
+msgstr ""
+
+#: cp/decl.c:14361
+#, fuzzy
+msgid "`%D' implicitly declared before its definition"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/decl.c:14383 cp/typeck.c:6314
+msgid "`operator=' should return a reference to `*this'"
+msgstr ""
+
+#: cp/decl.c:14643
+#, fuzzy
+msgid "parameter `%D' declared void"
+msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#: cp/decl.c:15130
+msgid "`%D' is already defined in class `%T'"
+msgstr ""
+
+#: cp/decl.c:15348
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr ""
+
+#: cp/decl2.c:153
+#, fuzzy, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/decl2.c:192
+msgid "template `%#D' instantiated in file without #pragma interface"
+msgstr ""
+
+#: cp/decl2.c:198
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr ""
+
+#: cp/decl2.c:365
+msgid "name missing for member function"
+msgstr ""
+
+#. Something has gone very wrong. Assume we are mistakenly reducing
+#. an expression instead of a declaration.
+#: cp/decl2.c:428
+msgid "parser may be lost: is there a '{' missing somewhere?"
+msgstr ""
+
+#: cp/decl2.c:459 cp/decl2.c:473
+msgid "ambiguous conversion for array subscript"
+msgstr ""
+
+#: cp/decl2.c:467
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr ""
+
+#: cp/decl2.c:515
+msgid "type `%#T' argument given to `delete', expected pointer"
+msgstr ""
+
+#: cp/decl2.c:523
+msgid "anachronistic use of array size in vector delete"
+msgstr ""
+
+#: cp/decl2.c:533
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+msgstr ""
+
+#: cp/decl2.c:540
+#, fuzzy
+msgid "deleting `%T' is undefined"
+msgstr "метка \"%s\" ужываецца, але не вызначана"
+
+#: cp/decl2.c:548
+msgid "deleting array `%#D'"
+msgstr ""
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+msgid "invalid declaration of member template `%#D' in local class"
+msgstr ""
+
+#: cp/decl2.c:591
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr ""
+
+#: cp/decl2.c:601 cp/pt.c:2745
+#, fuzzy
+msgid "template declaration of `%#D'"
+msgstr "пуÑтое абвÑшчÑнне"
+
+#: cp/decl2.c:651
+msgid "Java method '%D' has non-Java return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:660
+msgid "Java method '%D' has non-Java parameter type `%T'"
+msgstr ""
+
+#: cp/decl2.c:746
+msgid "prototype for `%#D' does not match any in class `%T'"
+msgstr ""
+
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr ""
+
+#: cp/decl2.c:836
+msgid "initializer invalid for static member with constructor"
+msgstr ""
+
+#: cp/decl2.c:839
+msgid "(an out of class initialization is required)"
+msgstr ""
+
+#: cp/decl2.c:898
+#, fuzzy
+msgid "invalid data member initialization"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: cp/decl2.c:901
+msgid "(use `=' to initialize static data members)"
+msgstr ""
+
+#: cp/decl2.c:947
+msgid "member `%D' conflicts with virtual function table field name"
+msgstr ""
+
+#: cp/decl2.c:967
+msgid "`%D' is already defined in `%T'"
+msgstr ""
+
+#: cp/decl2.c:1014
+msgid "field initializer is not constant"
+msgstr ""
+
+#: cp/decl2.c:1038
+msgid "`asm' specifiers are not permitted on non-static data members"
+msgstr ""
+
+#: cp/decl2.c:1090
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr ""
+
+#: cp/decl2.c:1100
+msgid "cannot declare bit-field `%D' with function type"
+msgstr ""
+
+#: cp/decl2.c:1107
+msgid "`%D' is already defined in the class %T"
+msgstr ""
+
+#: cp/decl2.c:1114
+msgid "static member `%D' cannot be a bit-field"
+msgstr ""
+
+#: cp/decl2.c:1201
+#, fuzzy
+msgid "initializer specified for non-member function `%D'"
+msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#: cp/decl2.c:1205
+#, fuzzy
+msgid "invalid initializer for virtual method `%D'"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: cp/decl2.c:1319
+msgid "anonymous struct not inside named type"
+msgstr ""
+
+#: cp/decl2.c:1415
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr ""
+
+#: cp/decl2.c:1428
+msgid "anonymous aggregate with no members"
+msgstr ""
+
+#: cp/decl2.c:1497
+msgid "`operator new' must return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:1505
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr ""
+
+#: cp/decl2.c:1532
+msgid "`operator delete' must return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:1540
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr ""
+
+#. Overflow occurred. That means there are at least 4 billion
+#. initialization functions.
+#: cp/decl2.c:2282
+msgid "too many initialization functions required"
+msgstr ""
+
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "адмеціна `%D' выкарыÑтоўвываецца, але Ð½Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°"
+
+#: cp/decl2.c:3135
+msgid "use of old-style cast"
+msgstr ""
+
+#: cp/decl2.c:3860
+#, fuzzy
+msgid "use of `%D' is ambiguous"
+msgstr "памер \"%s\" - %d байт"
+
+#: cp/decl2.c:3861
+msgid " first declared as `%#D' here"
+msgstr ""
+
+#: cp/decl2.c:3864
+msgid " also declared as `%#D' here"
+msgstr ""
+
+#: cp/decl2.c:3879
+msgid "`%D' denotes an ambiguous type"
+msgstr ""
+
+#: cp/decl2.c:3880
+msgid " first type here"
+msgstr ""
+
+#: cp/decl2.c:3881
+msgid " other type here"
+msgstr ""
+
+#: cp/decl2.c:3982
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr ""
+
+#: cp/decl2.c:4016
+msgid "`%D' should have been declared inside `%D'"
+msgstr ""
+
+#: cp/decl2.c:4152
+msgid "`%D' is not a function,"
+msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
+
+#: cp/decl2.c:4153
+msgid " conflict with `%D'"
+msgstr ""
+
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+#, fuzzy
+msgid "unknown namespace `%D'"
+msgstr "невÑдомы Ñ€Ñжым машыны \"%s\""
+
+#: cp/decl2.c:4507 cp/decl2.c:4794
+msgid "`%T' is not a namespace"
+msgstr ""
+
+#: cp/decl2.c:4509
+msgid "`%D' is not a namespace"
+msgstr ""
+
+#: cp/decl2.c:4518
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr ""
+
+#: cp/decl2.c:4532
+#, fuzzy
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: cp/decl2.c:4561
+msgid "`%D' not declared"
+msgstr ""
+
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+msgid "`%D' is already declared in this scope"
+msgstr ""
+
+#: cp/decl2.c:4646
+msgid "using declaration `%D' introduced ambiguous type `%T'"
+msgstr ""
+
+#: cp/decl2.c:4740
+msgid "using-declaration for non-member at class scope"
+msgstr ""
+
+#: cp/decl2.c:4746
+msgid "using-declaration for destructor"
+msgstr ""
+
+#: cp/decl2.c:4752
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+msgstr ""
+
+#: cp/decl2.c:4788
+msgid "namespace `%T' undeclared"
+msgstr ""
+
+#: cp/decl2.c:4817
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr ""
+
+#: cp/decl2.c:4941
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr ""
+
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
+msgstr ""
+
+#: cp/decl2.c:4963
+msgid "`%T' is not a class or union type"
+msgstr ""
+
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr ""
+
+#: cp/error.c:35
+#, c-format
+msgid "`%s' not supported by %s"
+msgstr ""
+
+#: cp/error.c:571
+#, c-format
+msgid "<anonymous %s>"
+msgstr ""
+
+#: cp/error.c:810
+#, c-format
+msgid "(static %s for %s)"
+msgstr ""
+
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
+#, c-format
+msgid "In %s `%s':"
+msgstr ""
+
+#: cp/error.c:2530
+#, c-format
+msgid "%s: In instantiation of `%s':\n"
+msgstr ""
+
+#: cp/error.c:2554
+#, c-format
+msgid "%s:%d: instantiated from `%s'\n"
+msgstr ""
+
+#: cp/error.c:2559
+#, c-format
+msgid "%s:%d: instantiated from here\n"
+msgstr ""
+
+#. damn ICE suppression
+#: cp/error.c:2713
+#, c-format
+msgid "unexpected letter `%c' in locate_error\n"
+msgstr ""
+
+#. Can't throw a reference.
+#: cp/except.c:240
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
+msgstr ""
+
+#: cp/except.c:251
+msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+msgstr ""
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+msgid "type `%T' is not derived from `java::lang::Throwable'"
+msgstr ""
+
+#: cp/except.c:322
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr ""
+
+#: cp/except.c:639
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr ""
+
+#: cp/except.c:730
+msgid " in thrown expression"
+msgstr ""
+
+#: cp/except.c:856
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+msgstr ""
+
+#: cp/except.c:944
+msgid "exception of type `%T' will be caught"
+msgstr ""
+
+#: cp/except.c:947
+msgid " by earlier handler for `%T'"
+msgstr ""
+
+#: cp/except.c:968
+msgid "`...' handler must be the last handler for its try block"
+msgstr ""
+
+#: cp/friend.c:159
+#, fuzzy
+msgid "`%D' is already a friend of class `%T'"
+msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
+
+#: cp/friend.c:161
+#, fuzzy
+msgid "previous friend declaration of `%D'"
+msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#: cp/friend.c:206
+msgid "invalid type `%T' declared `friend'"
+msgstr ""
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+msgid "partial specialization `%T' declared `friend'"
+msgstr ""
+
+#: cp/friend.c:231
+msgid "class `%T' is implicitly friends with itself"
+msgstr ""
+
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+msgid "typename type `%#T' declared `friend'"
+msgstr ""
+
+#. template <class T> friend class T;
+#: cp/friend.c:255
+#, fuzzy
+msgid "template parameter type `%T' declared `friend'"
+msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+msgid "`%#T' is not a template"
+msgstr ""
+
+#: cp/friend.c:276
+msgid "`%T' is already a friend of `%T'"
+msgstr ""
+
+#: cp/friend.c:376
+msgid "member `%D' declared as friend before type `%T' defined"
+msgstr ""
+
+#: cp/friend.c:431
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr ""
+
+#: cp/friend.c:434
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr ""
+
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, c-format
+msgid "argument to `%s' missing\n"
+msgstr ""
+
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
+msgid "default-initialization of `%#D', which has reference type"
+msgstr ""
+
+#: cp/init.c:389
+msgid "uninitialized reference member `%D'"
+msgstr ""
+
+#: cp/init.c:397
+msgid "initializer list treated as compound expression"
+msgstr ""
+
+#: cp/init.c:538
+#, fuzzy
+msgid "`%D' will be initialized after"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/init.c:541
+#, fuzzy
+msgid "base `%T' will be initialized after"
+msgstr "ÐšÐ»Ð°Ñ \"%s\" ужо Ñ–Ñнуе"
+
+#: cp/init.c:544
+#, fuzzy
+msgid " `%#D'"
+msgstr "Ñк `%D'"
+
+#: cp/init.c:546
+#, fuzzy
+msgid " base `%T'"
+msgstr "Ñк `%D'"
+
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "ініцыÑлізацыÑ"
+
+#: cp/init.c:631
+msgid "initializations for multiple members of `%T'"
+msgstr ""
+
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+msgstr ""
+
+#: cp/init.c:926
+msgid "class `%T' does not have any field named `%D'"
+msgstr ""
+
+#: cp/init.c:932
+msgid "field `%#D' is static; the only point of initialization is its definition"
+msgstr ""
+
+#: cp/init.c:965
+msgid "unnamed initializer for `%T', which has no base classes"
+msgstr ""
+
+#: cp/init.c:972
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
+msgstr ""
+
+#: cp/init.c:1007
+msgid "type `%D' is not a direct or virtual base of `%T'"
+msgstr ""
+
+#: cp/init.c:1010
+msgid "type `%D' is not a direct base of `%T'"
+msgstr ""
+
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+#, fuzzy
+msgid "bad array initializer"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: cp/init.c:1311
+#, fuzzy
+msgid "`%T' is not an aggregate type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/init.c:1334
+msgid "`%T' fails to be an aggregate typedef"
+msgstr ""
+
+#: cp/init.c:1343
+msgid "type `%T' is of non-aggregate type"
+msgstr ""
+
+#: cp/init.c:1446
+msgid "cannot call destructor `%T::~%T' without object"
+msgstr ""
+
+#: cp/init.c:1490
+#, fuzzy
+msgid "invalid use of non-static field `%D'"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+#, fuzzy
+msgid "invalid use of member `%D'"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: cp/init.c:1509
+#, fuzzy
+msgid "no method `%T::%D'"
+msgstr "у метадзе \"%s\":"
+
+#: cp/init.c:1602
+msgid "incomplete type `%T' does not have member `%D'"
+msgstr ""
+
+#: cp/init.c:1676
+msgid "`%D' is not a member of type `%T'"
+msgstr ""
+
+#: cp/init.c:1695
+#, fuzzy
+msgid "invalid pointer to bit-field `%D'"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: cp/init.c:1734
+msgid "object missing in use of pointer-to-member construct"
+msgstr ""
+
+#: cp/init.c:1774
+msgid "member `%D' is non-static but referenced as a static member"
+msgstr ""
+
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
+msgid "at this point in file"
+msgstr ""
+
+#: cp/init.c:1813
+#, c-format
+msgid "object missing in `%E'"
+msgstr ""
+
+#: cp/init.c:1944
+msgid "new of array type fails to specify size"
+msgstr ""
+
+#: cp/init.c:1955
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1961
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:2026
+msgid "new cannot be applied to a reference type"
+msgstr ""
+
+#: cp/init.c:2032
+msgid "new cannot be applied to a function type"
+msgstr ""
+
+#: cp/init.c:2079
+msgid "call to Java constructor, while `jclass' undefined"
+msgstr ""
+
+#: cp/init.c:2095
+#, fuzzy
+msgid "can't find class$"
+msgstr "Ðе магу знайÑці ÐºÐ»Ð°Ñ \"%s\""
+
+#: cp/init.c:2209
+msgid "invalid type `void' for new"
+msgstr ""
+
+#: cp/init.c:2261
+#, c-format
+msgid "call to Java constructor with `%s' undefined"
+msgstr ""
+
+#: cp/init.c:2369
+msgid "ISO C++ forbids initialization in array new"
+msgstr ""
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
+msgid "initializer list being treated as compound expression"
+msgstr ""
+
+#: cp/init.c:2397
+msgid "ISO C++ forbids aggregate initializer to new"
+msgstr ""
+
+#: cp/init.c:2485
+msgid "uninitialized const in `new' of `%#T'"
+msgstr ""
+
+#: cp/init.c:2864
+msgid "initializer ends prematurely"
+msgstr ""
+
+#: cp/init.c:2934
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr ""
+
+#: cp/init.c:3124
+msgid "unknown array size in delete"
+msgstr ""
+
+#: cp/init.c:3389
+msgid "type to vector delete is neither pointer or array type"
+msgstr ""
+
+#: cp/lex.c:136
+msgid "type name expected before `*'"
+msgstr ""
+
+#: cp/lex.c:158
+msgid "cannot declare references to references"
+msgstr ""
+
+#: cp/lex.c:163
+msgid "cannot declare pointers to references"
+msgstr ""
+
+#: cp/lex.c:167
+msgid "type name expected before `&'"
+msgstr ""
+
+#: cp/lex.c:894
+#, c-format
+msgid "semicolon missing after %s declaration"
+msgstr ""
+
+#: cp/lex.c:897
+#, fuzzy
+msgid "semicolon missing after declaration of `%T'"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: cp/lex.c:945
+#, c-format
+msgid "junk at end of #pragma %s"
+msgstr ""
+
+#: cp/lex.c:952
+#, c-format
+msgid "invalid #pragma %s"
+msgstr ""
+
+#: cp/lex.c:961
+msgid "#pragma vtable no longer supported"
+msgstr ""
+
+#: cp/lex.c:1038
+#, c-format
+msgid "#pragma implementation for %s appears after file is included"
+msgstr ""
+
+#: cp/lex.c:1063
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr ""
+
+#: cp/lex.c:1107
+#, fuzzy
+msgid "`%D' not defined"
+msgstr "YYDEBUG не вызначан."
+
+#: cp/lex.c:1110
+#, fuzzy
+msgid "`%D' was not declared in this scope"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/lex.c:1118
+#, fuzzy
+msgid "`%D' undeclared (first use this function)"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/lex.c:1122
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+msgstr ""
+
+#: cp/lex.c:1242
+#, fuzzy
+msgid "`::%D' undeclared (first use here)"
+msgstr "\"%s\" не абвешчан (першае выкарыÑтанне Ñž гÑтай функцыі)"
+
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr ""
+
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr ""
+
+#: cp/method.c:154
+msgid "invalid use of member `%D' in static member function"
+msgstr ""
+
+#: cp/method.c:216
+msgid "use of namespace `%D' as expression"
+msgstr ""
+
+#: cp/method.c:221
+msgid "use of class template `%T' as expression"
+msgstr ""
+
+#: cp/method.c:234
+#, c-format
+msgid "use of %s from containing function"
+msgstr ""
+
+#: cp/method.c:237
+msgid " `%#D' declared here"
+msgstr ""
+
+#: cp/method.c:255
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+msgstr ""
+
+#: cp/method.c:458
+msgid "generic thunk code fails for method `%#D' which uses `...'"
+msgstr ""
+
+#: cp/method.c:697
+msgid "non-static const member `%#D', can't use default assignment operator"
+msgstr ""
+
+#: cp/method.c:702
+msgid "non-static reference member `%#D', can't use default assignment operator"
+msgstr ""
+
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
+msgstr ""
+
+#: parse.y:542
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr ""
+
+#: parse.y:646
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
+msgstr ""
+
+#: parse.y:943
+msgid "no base or member initializers given following ':'"
+msgstr ""
+
+#: parse.y:984
+msgid "anachronistic old style base class initializer"
+msgstr ""
+
+#. Handle `Class<Class<Type>>' without space in the `>>'
+#: parse.y:1117
+msgid "`>>' should be `> >' in template class name"
+msgstr ""
+
+#: parse.y:1164
+msgid "use of template qualifier outside template"
+msgstr ""
+
+#: parse.y:1193 parse.y:1202
+#, c-format
+msgid "ISO C++ forbids an empty condition for `%s'"
+msgstr ""
+
+#: parse.y:1225
+msgid "definition of class `%T' in condition"
+msgstr ""
+
+#: parse.y:1227
+msgid "definition of enum `%T' in condition"
+msgstr ""
+
+#: parse.y:1238
+msgid "definition of array `%#D' in condition"
+msgstr ""
+
+#: parse.y:1351
+msgid "old style placement syntax, use () instead"
+msgstr ""
+
+#: parse.y:1362
+msgid "`%T' is not a valid expression"
+msgstr ""
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr ""
+
+#: parse.y:1395
+msgid "ISO C++ forbids compound literals"
+msgstr ""
+
+#: parse.y:1642
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr ""
+
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: parse.y:2053 parse.y:2068
+msgid "sigof type specifier"
+msgstr ""
+
+#: parse.y:2058
+msgid "`sigof' applied to non-aggregate expression"
+msgstr ""
+
+#: parse.y:2073
+msgid "`sigof' applied to non-aggregate type"
+msgstr ""
+
+#: parse.y:2339
+msgid "using `typename' outside of template"
+msgstr ""
+
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
+#, c-format
+msgid "storage class specifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2419
+#, c-format
+msgid "type specifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2421
+#, c-format
+msgid "type qualifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2423
+msgid "no body nor ';' separates two class, struct or union declarations"
+msgstr ""
+
+#: parse.y:2553
+msgid "no bases given following `:'"
+msgstr ""
+
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
+msgstr ""
+
+#: parse.y:2589
+msgid "multiple access specifiers"
+msgstr ""
+
+#: parse.y:2607
+msgid "multiple `virtual' specifiers"
+msgstr ""
+
+#: parse.y:2644
+msgid "missing ';' before right brace"
+msgstr ""
+
+#: parse.y:2865
+msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+msgstr ""
+
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+msgid "`%T' is not a class or namespace"
+msgstr ""
+
+#: parse.y:3377
+msgid "ISO C++ forbids label declarations"
+msgstr ""
+
+#: parse.y:3537
+msgid "ISO C++ forbids computed gotos"
+msgstr ""
+
+#: parse.y:3545
+msgid "label must be followed by statement"
+msgstr ""
+
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
+
+#: parse.y:3650
+msgid "ISO C++ forbids compound statements inside for initializations"
+msgstr ""
+
+#. This helps us recover from really nasty
+#. parse errors, for example, a missing right
+#. parenthesis.
+#: parse.y:3737 parse.y:3747
+msgid "possibly missing ')'"
+msgstr ""
+
+#: parse.y:3840
+msgid "type specifier omitted for parameter"
+msgstr ""
+
+#: parse.y:3849
+#, c-format
+msgid "`%E' is not a type, use `typename %E' to make it one"
+msgstr ""
+
+#: parse.y:3851
+#, fuzzy
+msgid "no type `%D' in `%T'"
+msgstr "вÑртаемы тып \"%s\" не \"int\""
+
+#: parse.y:3854
+#, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr ""
+
+#: parse.y:3862
+msgid "'%D' is used as a type, but is not defined as a type."
+msgstr ""
+
+#: cp/pt.c:284
+msgid "data member `%D' cannot be a member template"
+msgstr ""
+
+#: cp/pt.c:296
+#, fuzzy
+msgid "invalid member template declaration `%D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/pt.c:691
+msgid "explicit specialization in non-namespace scope `%D'"
+msgstr ""
+
+#: cp/pt.c:703
+msgid "enclosing class templates are not explicitly specialized"
+msgstr ""
+
+#: cp/pt.c:792 cp/pt.c:833
+msgid "specializing `%#T' in different namespace"
+msgstr ""
+
+#: cp/pt.c:793 cp/pt.c:834
+msgid " from definition of `%#D'"
+msgstr ""
+
+#: cp/pt.c:801
+msgid "specialization of `%T' after instantiation"
+msgstr ""
+
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/pt.c:860
+msgid "explicit specialization of non-template `%T'"
+msgstr ""
+
+#: cp/pt.c:992
+msgid "specialization of %D after instantiation"
+msgstr ""
+
+#: cp/pt.c:1096
+msgid "%s %+#D"
+msgstr ""
+
+#: cp/pt.c:1147
+#, fuzzy
+msgid "`%D' is not a function template"
+msgstr "\"%s\" звычайна функцыÑ"
+
+#: cp/pt.c:1286
+msgid "template-id `%D' for `%+D' does not match any template declaration"
+msgstr ""
+
+#: cp/pt.c:1294
+msgid "ambiguous template specialization `%D' for `%+D'"
+msgstr ""
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+msgid "template-id `%D' in declaration of primary template"
+msgstr ""
+
+#: cp/pt.c:1534
+msgid "template parameter list used in explicit instantiation"
+msgstr ""
+
+#: cp/pt.c:1540
+msgid "definition provided for explicit instantiation"
+msgstr ""
+
+#: cp/pt.c:1546
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr ""
+
+#: cp/pt.c:1562
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr ""
+
+#: cp/pt.c:1579
+msgid "explicit specialization not preceded by `template <>'"
+msgstr ""
+
+#: cp/pt.c:1592
+msgid "partial specialization `%D' of function template"
+msgstr ""
+
+#: cp/pt.c:1624
+msgid "default argument specified in explicit specialization"
+msgstr ""
+
+#: cp/pt.c:1628
+msgid "template specialization with C linkage"
+msgstr ""
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+msgid "specialization of implicitly-declared special member function"
+msgstr ""
+
+#: cp/pt.c:1759
+msgid "no member function `%D' declared in `%T'"
+msgstr ""
+
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr ""
+
+#: cp/pt.c:2005
+msgid " shadows template parm `%#D'"
+msgstr ""
+
+#: cp/pt.c:2409
+msgid "template parameters not used in partial specialization:"
+msgstr ""
+
+#: cp/pt.c:2413
+msgid " `%D'"
+msgstr ""
+
+#: cp/pt.c:2425
+msgid "partial specialization `%T' does not specialize any template arguments"
+msgstr ""
+
+#: cp/pt.c:2450
+#, c-format
+msgid "template argument `%E' involves template parameter(s)"
+msgstr ""
+
+#: cp/pt.c:2494
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+msgstr ""
+
+#: cp/pt.c:2582
+#, fuzzy
+msgid "no default argument for `%D'"
+msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#: cp/pt.c:2735
+msgid "template with C linkage"
+msgstr ""
+
+#: cp/pt.c:2738
+msgid "template class without a name"
+msgstr ""
+
+#: cp/pt.c:2815
+msgid "`%D' does not declare a template type"
+msgstr ""
+
+#: cp/pt.c:2821
+msgid "template definition of non-template `%#D'"
+msgstr ""
+
+#: cp/pt.c:2862
+msgid "expected %d levels of template parms for `%#D', got %d"
+msgstr ""
+
+#: cp/pt.c:2874
+msgid "got %d template parameters for `%#D'"
+msgstr ""
+
+#: cp/pt.c:2877
+msgid "got %d template parameters for `%#T'"
+msgstr ""
+
+#: cp/pt.c:2879
+#, c-format
+msgid " but %d required"
+msgstr ""
+
+#: cp/pt.c:2962
+#, fuzzy
+msgid "`%T' is not a template type"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/pt.c:2978
+msgid "previous declaration `%D'"
+msgstr "папÑÑ€ÑднÑе абвÑшчÑньне `%D'"
+
+#: cp/pt.c:2979
+#, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr ""
+
+#: cp/pt.c:2995
+#, fuzzy
+msgid "template parameter `%#D'"
+msgstr "невыкарыÑтаемы параметр \"%s\""
+
+#: cp/pt.c:2996
+msgid "redeclared here as `%#D'"
+msgstr ""
+
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+msgid "redefinition of default argument for `%#D'"
+msgstr ""
+
+#: cp/pt.c:3007
+msgid " original definition appeared here"
+msgstr ""
+
+#: cp/pt.c:3100
+#, c-format
+msgid "`%E' is not a valid template argument"
+msgstr ""
+
+#: cp/pt.c:3104
+msgid "it must be the address of a function with external linkage"
+msgstr ""
+
+#: cp/pt.c:3106
+msgid "it must be the address of an object with external linkage"
+msgstr ""
+
+#: cp/pt.c:3110
+msgid "it must be a pointer-to-member of the form `&X::Y'"
+msgstr ""
+
+#: cp/pt.c:3121
+#, c-format
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+msgstr ""
+
+#: cp/pt.c:3133
+#, c-format
+msgid "address of non-extern `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3144
+#, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3151
+#, c-format
+msgid "object `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3526
+#, c-format
+msgid "to refer to a type member of a template parameter, use `typename %E'"
+msgstr ""
+
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+msgstr ""
+
+#: cp/pt.c:3542
+msgid " expected a constant of type `%T', got `%T'"
+msgstr ""
+
+#: cp/pt.c:3546
+#, c-format
+msgid " expected a type, got `%E'"
+msgstr ""
+
+#: cp/pt.c:3558
+msgid " expected a type, got `%T'"
+msgstr ""
+
+#: cp/pt.c:3560
+msgid " expected a class template, got `%T'"
+msgstr ""
+
+#: cp/pt.c:3596
+msgid " expected a template of type `%D', got `%D'"
+msgstr ""
+
+#: cp/pt.c:3618
+msgid "template-argument `%T' uses anonymous type"
+msgstr ""
+
+#: cp/pt.c:3621
+msgid "template-argument `%T' uses local type `%T'"
+msgstr ""
+
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/pt.c:3666
+msgid "could not convert template argument `%E' to `%T'"
+msgstr ""
+
+#: cp/pt.c:3710
+#, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr ""
+
+#: cp/pt.c:3714
+#, fuzzy
+msgid "provided for `%D'"
+msgstr "дÑÑтруктару неабходны \"%#D\""
+
+#: cp/pt.c:3761
+#, fuzzy, c-format
+msgid "template argument %d is invalid"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/pt.c:3997
+msgid "non-template used as template"
+msgstr ""
+
+#: cp/pt.c:4139
+msgid "`%T' is not a template"
+msgstr ""
+
+#: cp/pt.c:4152
+msgid "non-template type `%T' used as a template"
+msgstr ""
+
+#: cp/pt.c:4154
+#, fuzzy
+msgid "for template declaration `%D'"
+msgstr "пуÑтое абвÑшчÑнне"
+
+#: cp/pt.c:4770
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+msgstr ""
+
+#: cp/pt.c:5247
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr ""
+
+#: cp/pt.c:5254
+msgid "%s %+#T"
+msgstr ""
+
+#: cp/pt.c:6284 cp/pt.c:6396
+msgid "instantiation of `%D' as type `%T'"
+msgstr ""
+
+#: cp/pt.c:6440
+msgid "invalid parameter type `%T'"
+msgstr "нерÑчаіÑны тып парамÑтра `%T'"
+
+#: cp/pt.c:6442
+msgid "in declaration `%D'"
+msgstr "у абвÑшчÑньні `%D'"
+
+#: cp/pt.c:6517
+msgid "creating pointer to member function of non-class type `%T'"
+msgstr ""
+
+#: cp/pt.c:6680
+msgid "creating array with size zero"
+msgstr ""
+
+#: cp/pt.c:6694
+#, c-format
+msgid "creating array with size zero (`%E')"
+msgstr ""
+
+#: cp/pt.c:6933
+msgid "forming reference to void"
+msgstr ""
+
+#: cp/pt.c:6935
+msgid "forming %s to reference type `%T'"
+msgstr ""
+
+#: cp/pt.c:6973
+msgid "creating pointer to member of non-class type `%T'"
+msgstr ""
+
+#: cp/pt.c:6979
+msgid "creating pointer to member reference type `%T'"
+msgstr ""
+
+#: cp/pt.c:7057
+msgid "creating array of `%T'"
+msgstr ""
+
+#: cp/pt.c:7100
+msgid "`%T' is not a class, struct, or union type"
+msgstr ""
+
+#: cp/pt.c:7213
+#, c-format
+msgid "use of `%s' in template"
+msgstr ""
+
+#: cp/pt.c:7975
+msgid "type `%T' composed from a local class is not a valid template-argument"
+msgstr ""
+
+#: cp/pt.c:7976
+msgid " trying to instantiate `%D'"
+msgstr ""
+
+#: cp/pt.c:8421
+msgid "incomplete type unification"
+msgstr ""
+
+#: cp/pt.c:9387
+#, c-format
+msgid "use of `%s' in template type unification"
+msgstr ""
+
+#: cp/pt.c:9821 cp/pt.c:9893
+msgid "explicit instantiation of non-template `%#D'"
+msgstr ""
+
+#: cp/pt.c:9837 cp/pt.c:9888
+msgid "no matching template for `%D' found"
+msgstr ""
+
+#: cp/pt.c:9843
+msgid "explicit instantiation of `%#D'"
+msgstr ""
+
+#: cp/pt.c:9880
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/pt.c:9905
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+msgstr ""
+
+#: cp/pt.c:9909 cp/pt.c:9999
+msgid "storage class `%D' applied to template instantiation"
+msgstr ""
+
+#: cp/pt.c:9966
+msgid "explicit instantiation of non-template type `%T'"
+msgstr ""
+
+#: cp/pt.c:9980
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr ""
+
+#: cp/pt.c:9988
+#, c-format
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr ""
+
+#: cp/pt.c:10032
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/pt.c:10412
+msgid "explicit instantiation of `%D' but no definition available"
+msgstr ""
+
+#: cp/pt.c:10815
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr ""
+
+#: cp/repo.c:271
+msgid "-frepo must be used with -c"
+msgstr ""
+
+#: cp/repo.c:361
+#, c-format
+msgid "mysterious repository information in %s"
+msgstr ""
+
+#: cp/repo.c:376
+#, c-format
+msgid "can't create repository information file `%s'"
+msgstr ""
+
+#: cp/rtti.c:240
+msgid "cannot use typeid with -fno-rtti"
+msgstr ""
+
+#: cp/rtti.c:246
+msgid "must #include <typeinfo> before using typeid"
+msgstr ""
+
+#: cp/rtti.c:320
+msgid "cannot create type information for type `%T' because its size is variable"
+msgstr ""
+
+#: cp/rtti.c:584 cp/rtti.c:598
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+msgstr ""
+
+#: cp/rtti.c:674
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+msgstr ""
+
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr ""
+
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr ""
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr ""
+
+#: cp/search.c:2050
+msgid "adjusting pointers for covariant returns"
+msgstr ""
+
+#: cp/search.c:2054 cp/search.c:2061
+msgid "invalid covariant return type for `%#D'"
+msgstr ""
+
+#: cp/search.c:2055
+msgid " overriding `%#D' (must be pointer or reference to class)"
+msgstr ""
+
+#: cp/search.c:2062
+msgid " overriding `%#D' (must use pointer or reference)"
+msgstr ""
+
+#: cp/search.c:2067
+msgid "conflicting return type specified for `%#D'"
+msgstr ""
+
+#: cp/search.c:2068
+msgid " overriding `%#D'"
+msgstr ""
+
+#: cp/search.c:2077
+#, c-format
+msgid "looser throw specifier for `%#F'"
+msgstr ""
+
+#: cp/search.c:2078
+#, c-format
+msgid " overriding `%#F'"
+msgstr ""
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+msgid "`%#D' cannot be declared"
+msgstr ""
+
+#: cp/search.c:2168
+msgid " since `%#D' declared in base class"
+msgstr ""
+
+#: cp/search.c:2309
+msgid "`%#D' needs a final overrider"
+msgstr ""
+
+#: cp/semantics.c:919
+#, fuzzy, c-format
+msgid "type of asm operand `%E' could not be determined"
+msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#: cp/semantics.c:1051
+msgid "ISO C++ does not permit named return values"
+msgstr ""
+
+#: cp/semantics.c:1060
+msgid "return identifier `%D' already in place"
+msgstr ""
+
+#: cp/semantics.c:1068
+msgid "can't redefine default return value for constructors"
+msgstr ""
+
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr ""
+
+#: cp/semantics.c:1343
+msgid "`this' is unavailable for static member functions"
+msgstr ""
+
+#: cp/semantics.c:1349
+msgid "invalid use of `this' in non-member function"
+msgstr ""
+
+#: cp/semantics.c:1351
+msgid "invalid use of `this' at top level"
+msgstr ""
+
+#: cp/semantics.c:1381
+msgid "calling type `%T' like a method"
+msgstr ""
+
+#: cp/semantics.c:1419
+msgid "destructor specifier `%T::~%T()' must have matching names"
+msgstr ""
+
+#: cp/semantics.c:1425
+msgid "`%E' is not of type `%T'"
+msgstr ""
+
+#: cp/semantics.c:1613
+msgid "template type parameters must use the keyword `class' or `typename'"
+msgstr ""
+
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
+
+#: cp/semantics.c:1694
+msgid "definition of `%#T' inside template parameter list"
+msgstr ""
+
+#: cp/semantics.c:1710
+msgid "invalid definition of qualified type `%T'"
+msgstr ""
+
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "ÐерÑчаіÑÐ½Ð°Ñ ÑпецыфікацыÑ! Памылка Ñž cc."
+
+#: cp/semantics.c:2062
+msgid "base class `%T' has cv qualifiers"
+msgstr ""
+
+#: cp/semantics.c:2093
+msgid "multiple declarators in template declaration"
+msgstr ""
+
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "вÑртаемы тып \"%s\" не \"int\""
+
+#: cp/spew.c:225
+#, c-format
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgstr ""
+
+#: cp/spew.c:1002 cp/spew.c:1340
+msgid "parse error at end of saved function text"
+msgstr ""
+
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
+msgid "parse error in method specification"
+msgstr ""
+
+#: cp/spew.c:1161
+msgid "function body for constructor missing"
+msgstr ""
+
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr ""
+
+#: cp/spew.c:1419
+msgid "circular dependency in default args of `%#D'"
+msgstr ""
+
+#: cp/spew.c:1483
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr ""
+
+#: cp/spew.c:1548
+#, c-format
+msgid "%s before `%s'"
+msgstr "%s перад \"%s\""
+
+#: cp/spew.c:1550
+#, c-format
+msgid "%s before `%c'"
+msgstr "%s перад '%c'"
+
+#: cp/spew.c:1552
+#, c-format
+msgid "%s before `\\%o'"
+msgstr "%s перад \"\\%o\""
+
+#: cp/spew.c:1555
+#, c-format
+msgid "%s before `%s' token"
+msgstr "%s перад знакам \"%s\""
+
+#: cp/tree.c:263 cp/tree.c:275
+#, c-format
+msgid "non-lvalue in %s"
+msgstr ""
+
+#: cp/tree.c:562
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr ""
+
+#: cp/tree.c:1941
+#, c-format
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr ""
+
+#: cp/tree.c:1971
+#, c-format
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr ""
+
+#: cp/tree.c:1977
+#, c-format
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+msgstr ""
+
+#: cp/tree.c:2002
+msgid "requested init_priority is not an integer constant"
+msgstr ""
+
+#: cp/tree.c:2023
+#, c-format
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+msgstr ""
+
+#: cp/tree.c:2031
+msgid "requested init_priority is out of range"
+msgstr ""
+
+#: cp/tree.c:2041
+msgid "requested init_priority is reserved for internal use"
+msgstr ""
+
+#: cp/tree.c:2051
+#, fuzzy, c-format
+msgid "`%s' attribute is not supported on this platform"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.c:524
+#, c-format
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+msgstr ""
+
+#: cp/typeck.c:545
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+msgstr ""
+
+#: cp/typeck.c:1436
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+msgstr ""
+
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr ""
+
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr ""
+
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
+msgstr ""
+
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr ""
+
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
+msgstr ""
+
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr ""
+
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+#, fuzzy
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr ""
+
+#: cp/typeck.c:2168
+#, fuzzy
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "\"%s\" - гÑта не пачатак дÑкларацыі"
+
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr ""
+
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr ""
+
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "`%D' - гÑта Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ,"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+msgid "`%T' is not a pointer-to-object type"
+msgstr ""
+
+#: cp/typeck.c:2365
+#, c-format
+msgid "invalid use of `%s' on pointer to member"
+msgstr ""
+
+#: cp/typeck.c:2371
+msgid "invalid type argument"
+msgstr ""
+
+#: cp/typeck.c:2474
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr ""
+
+#: cp/typeck.c:2485
+msgid "subscripting array declared `register'"
+msgstr ""
+
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr ""
+
+#: cp/typeck.c:2674
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr ""
+
+#: cp/typeck.c:2699
+#, c-format
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+msgstr ""
+
+#: cp/typeck.c:2712
+#, fuzzy, c-format
+msgid "`%E' cannot be used as a function"
+msgstr "\"%s\" звычайна функцыÑ"
+
+#: cp/typeck.c:2824
+#, fuzzy
+msgid "too many arguments to %s `%+#D'"
+msgstr "вельмі шмат аргументаў у функцыі \"%s\""
+
+#: cp/typeck.c:2865
+msgid "parameter type of called function is incomplete"
+msgstr ""
+
+#: cp/typeck.c:2928
+#, fuzzy
+msgid "too few arguments to %s `%+#D'"
+msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#: cp/typeck.c:3056 cp/typeck.c:3066
+msgid "assuming cast to type `%T' from overloaded function"
+msgstr ""
+
+#: cp/typeck.c:3126
+#, c-format
+msgid "division by zero in `%E / 0'"
+msgstr ""
+
+#: cp/typeck.c:3128
+#, c-format
+msgid "division by zero in `%E / 0.'"
+msgstr ""
+
+#: cp/typeck.c:3158
+#, c-format
+msgid "division by zero in `%E %% 0'"
+msgstr ""
+
+#: cp/typeck.c:3160
+#, c-format
+msgid "division by zero in `%E %% 0.'"
+msgstr ""
+
+#: cp/typeck.c:3240
+#, c-format
+msgid "%s rotate count is negative"
+msgstr ""
+
+#: cp/typeck.c:3243
+#, c-format
+msgid "%s rotate count >= width of type"
+msgstr ""
+
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr ""
+
+#: cp/typeck.c:3553
+msgid "comparison between types `%#T' and `%#T'"
+msgstr ""
+
+#: cp/typeck.c:3589
+msgid "comparison between signed and unsigned integer expressions"
+msgstr ""
+
+#: cp/typeck.c:3654
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr ""
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+msgid "NULL used in arithmetic"
+msgstr ""
+
+#: cp/typeck.c:3743
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3745
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3747
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3749
+msgid "ISO C++ forbids using pointer to a member in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3761
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr ""
+
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
+
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
+msgid "taking address of temporary"
+msgstr ""
+
+#: cp/typeck.c:4091
+#, c-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr ""
+
+#: cp/typeck.c:4103
+#, fuzzy
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/typeck.c:4110
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4135
+msgid "cast to non-reference type used as lvalue"
+msgstr ""
+
+#: cp/typeck.c:4169
+msgid "invalid use of `--' on bool variable `%D'"
+msgstr ""
+
+#. ARM $3.4
+#: cp/typeck.c:4202
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr ""
+
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+msgstr ""
+
+#: cp/typeck.c:4271
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr ""
+
+#: cp/typeck.c:4295
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr ""
+
+#: cp/typeck.c:4324
+#, fuzzy
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "не магу атрымаць Ð°Ð´Ñ€Ð°Ñ Ð±Ñ–Ñ‚Ð°Ð²Ð°Ð³Ð° Ð¿Ð¾Ð»Ñ \"%s\""
+
+#: cp/typeck.c:4444
+msgid "taking address of destructor"
+msgstr ""
+
+#: cp/typeck.c:4457
+msgid "taking address of bound pointer-to-member expression"
+msgstr ""
+
+#: cp/typeck.c:4473
+msgid "cannot create pointer to reference member `%D'"
+msgstr ""
+
+#: cp/typeck.c:4536
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr ""
+
+#: cp/typeck.c:4555
+msgid "address requested for `%D', which is declared `register'"
+msgstr ""
+
+#: cp/typeck.c:4682
+msgid "static_cast from type `%T' to type `%T' casts away constness"
+msgstr ""
+
+#: cp/typeck.c:4871
+msgid "invalid static_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4910
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4930
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
+msgstr ""
+
+#: cp/typeck.c:4943
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+msgstr ""
+
+#: cp/typeck.c:4952
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr ""
+
+#: cp/typeck.c:4958
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4985
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr ""
+
+#: cp/typeck.c:4988
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr ""
+
+#: cp/typeck.c:5011
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5027
+msgid "invalid const_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5069 cp/typeck.c:5074
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5082
+#, fuzzy
+msgid "invalid cast to function type `%T'"
+msgstr "ÐерÑчаіÑны выбар \"%s\""
+
+#: cp/typeck.c:5138
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+msgstr ""
+
+#: cp/typeck.c:5184
+msgid "cast from `%T' to `%T' increases required alignment of target type"
+msgstr ""
+
+#: cp/typeck.c:5357
+msgid " in evaluation of `%Q(%#T, %#T)'"
+msgstr ""
+
+#: cp/typeck.c:5399
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+msgstr ""
+
+#: cp/typeck.c:5463
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr ""
+
+#: cp/typeck.c:5470
+msgid "ISO C++ forbids assignment of arrays"
+msgstr ""
+
+#: cp/typeck.c:5577
+msgid " in pointer to member function conversion"
+msgstr ""
+
+#: cp/typeck.c:5585
+msgid " in pointer to member conversion"
+msgstr ""
+
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+msgid "pointer to member cast via virtual base `%T' of `%T'"
+msgstr ""
+
+#: cp/typeck.c:5619
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
+msgstr ""
+
+#: cp/typeck.c:5695
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5860
+msgid "passing NULL used for non-pointer %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5863
+msgid "%s to non-pointer type `%T' from NULL"
+msgstr ""
+
+#: cp/typeck.c:5871
+msgid "passing `%T' for %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5874
+msgid "%s to `%T' from `%T'"
+msgstr ""
+
+#: cp/typeck.c:5884
+msgid "passing negative value `%E' for %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5887
+msgid "%s of negative value `%E' to `%T'"
+msgstr ""
+
+#: cp/typeck.c:5982
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+msgstr ""
+
+#: cp/typeck.c:5985
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr ""
+
+#: cp/typeck.c:6073 cp/typeck.c:6075
+msgid "in passing argument %P of `%+D'"
+msgstr ""
+
+#: cp/typeck.c:6190
+msgid "returning reference to temporary"
+msgstr ""
+
+#: cp/typeck.c:6197
+msgid "reference to non-lvalue returned"
+msgstr ""
+
+#: cp/typeck.c:6209
+msgid "reference to local variable `%D' returned"
+msgstr ""
+
+#: cp/typeck.c:6212
+msgid "address of local variable `%D' returned"
+msgstr ""
+
+#: cp/typeck.c:6243
+msgid "returning a value from a destructor"
+msgstr ""
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr ""
+
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+msgid "returning a value from a constructor"
+msgstr ""
+
+#: cp/typeck.c:6271
+msgid "return-statement with no value, in function declared with a non-void return type"
+msgstr ""
+
+#: cp/typeck.c:6287
+msgid "return-statement with a value, in function declared with a void return type"
+msgstr ""
+
+#: cp/typeck.c:6308
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+msgstr ""
+
+#: cp/typeck2.c:54
+msgid "type `%T' is not a base type for type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:157
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:160
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:163
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:167
+msgid "invalid return type for member function `%#D'"
+msgstr ""
+
+#: cp/typeck2.c:169
+msgid "invalid return type for function `%#D'"
+msgstr ""
+
+#: cp/typeck2.c:172
+msgid "cannot allocate an object of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:179
+msgid " because the following virtual functions are abstract:"
+msgstr ""
+
+#: cp/typeck2.c:181
+msgid "\t%#D"
+msgstr ""
+
+#: cp/typeck2.c:184
+msgid " since type `%T' has abstract virtual functions"
+msgstr ""
+
+#: cp/typeck2.c:338
+msgid "constructor syntax used, but no constructor declared for type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:349
+msgid "comma expression used to initialize return value"
+msgstr ""
+
+#: cp/typeck2.c:358
+msgid "cannot initialize arrays using this syntax"
+msgstr ""
+
+#: cp/typeck2.c:473
+msgid "initializing array with parameter list"
+msgstr ""
+
+#: cp/typeck2.c:529
+msgid "initializer for scalar variable requires one element"
+msgstr ""
+
+#: cp/typeck2.c:536
+msgid "braces around scalar initializer for `%T'"
+msgstr ""
+
+#: cp/typeck2.c:539
+msgid "ignoring extra initializers for `%T'"
+msgstr ""
+
+#: cp/typeck2.c:551
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr ""
+
+#: cp/typeck2.c:561
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+msgstr ""
+
+#: cp/typeck2.c:627
+msgid "aggregate has a partly bracketed initializer"
+msgstr ""
+
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
+msgstr ""
+
+#: cp/typeck2.c:682
+msgid "non-empty initializer for array of empty elements"
+msgstr ""
+
+#: cp/typeck2.c:736
+msgid "initializer list for object of class with virtual base classes"
+msgstr ""
+
+#: cp/typeck2.c:742
+msgid "initializer list for object of class with base classes"
+msgstr ""
+
+#: cp/typeck2.c:748
+msgid "initializer list for object using virtual functions"
+msgstr ""
+
+#: cp/typeck2.c:811 cp/typeck2.c:827
+#, fuzzy
+msgid "missing initializer for member `%D'"
+msgstr "прапушчан ініцыÑлізатар"
+
+#: cp/typeck2.c:816
+msgid "uninitialized const member `%D'"
+msgstr ""
+
+#: cp/typeck2.c:818
+#, fuzzy
+msgid "member `%D' with uninitialized const fields"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/typeck2.c:821
+#, fuzzy
+msgid "member `%D' is uninitialized reference"
+msgstr "параметр \"%s\" ініцыÑлізаваны"
+
+#: cp/typeck2.c:868
+msgid "index value instead of field name in union initializer"
+msgstr ""
+
+#: cp/typeck2.c:880
+msgid "no field `%D' in union being initialized"
+msgstr ""
+
+#: cp/typeck2.c:888
+msgid "union `%T' with no named members cannot be initialized"
+msgstr ""
+
+#: cp/typeck2.c:924
+msgid "excess elements in aggregate initializer"
+msgstr ""
+
+#: cp/typeck2.c:1038
+msgid "circular pointer delegation detected"
+msgstr ""
+
+#: cp/typeck2.c:1051
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1065
+msgid "result of `operator->()' yields non-pointer result"
+msgstr ""
+
+#: cp/typeck2.c:1067
+msgid "base operand of `->' is not a pointer"
+msgstr ""
+
+#: cp/typeck2.c:1133
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1140
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1149
+msgid "member type `%T::' incompatible with object type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1186
+msgid "`%T' fails to be a typedef or built-in type"
+msgstr ""
+
+#: cp/typeck2.c:1259
+#, c-format
+msgid "ISO C++ forbids defining types within %s"
+msgstr ""
+
+#: cp/typeck2.c:1384
+#, fuzzy
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "\"%s\" мае незавершаны тып"
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr ""
+
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
+msgstr ""
+
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
+msgstr ""
+
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
+msgstr ""
+
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
+msgstr ""
+
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr ""
+
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
+msgstr ""
+
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
+msgstr ""
+
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
+msgstr ""
+
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
+msgstr ""
+
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
+msgstr ""
+
+#: cp/lang-options.h:64
+msgid "Do not recognize GNU defined keywords"
+msgstr ""
+
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
+msgstr ""
+
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
+msgstr ""
+
+#: cp/lang-options.h:75
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/lang-options.h:78
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr ""
+
+#: cp/lang-options.h:87
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr ""
+
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
+msgstr ""
+
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
+msgstr ""
+
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr ""
+
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
+msgstr ""
+
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr ""
+
+#: cp/lang-options.h:106
+msgid "Use __cxa_atexit to register destructors"
+msgstr ""
+
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
+msgstr ""
+
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
+msgstr ""
+
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
+msgstr ""
+
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
+msgstr ""
+
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
+msgstr ""
+
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
+msgstr ""
+
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
+msgstr ""
+
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
+msgstr ""
+
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
+msgstr ""
+
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
+msgstr ""
+
+#: cp/lang-options.h:140
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr ""
+
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
+msgstr ""
+
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
+msgstr ""
+
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr ""
+
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
+msgstr ""
+
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr ""
+
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
+msgstr ""
+
+#: f/bad.c:387
+msgid "note:"
+msgstr ""
+
+#: f/bad.c:391
+msgid "warning:"
+msgstr "увага:"
+
+#: f/bad.c:395
+msgid "fatal:"
+msgstr ""
+
+#: f/bad.c:437
+msgid "(continued):"
+msgstr ""
+
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr ""
+
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr ""
+
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr ""
+
+#: f/com.c:11623
+msgid "no INTEGER type can hold a pointer on this configuration"
+msgstr ""
+
+#: f/com.c:11844
+#, c-format
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+msgstr ""
+
+#: f/com.c:11846
+#, c-format
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr ""
+
+#: f/com.c:11848
+msgid "properly unless they all are 32 bits wide"
+msgstr ""
+
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
+msgstr ""
+
+#. I/O will probably crash.
+#: f/com.c:11857
+#, c-format
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
+msgstr ""
+
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
+#, c-format
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
+msgstr ""
+
+#: f/com.c:13681
+#, fuzzy
+msgid "In statement function"
+msgstr "вельмі шмат аргументаў у функцыі"
+
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
+msgstr ""
+
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr ""
+
+#: f/com.c:15497
+msgid "directory name must immediately follow -I"
+msgstr ""
+
+#: f/com.c:15640
+#, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr ""
+
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr ""
+
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr ""
+
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr ""
+
+#: f/g77spec.c:234
+#, c-format
+msgid "overflowed output arg list for `%s'"
+msgstr ""
+
+#: f/g77spec.c:373
+msgid "--driver no longer supported"
+msgstr ""
+
+#: f/g77spec.c:386
+#, c-format
+msgid "argument to `%s' missing"
+msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#: f/g77spec.c:390
+msgid "no input files; unwilling to write output files"
+msgstr ""
+
+#: f/implic.c:203
+#, fuzzy, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: f/lex.c:326
+#, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr ""
+
+#: f/lex.c:345
+#, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑьць `\\%A' at %0"
+
+#: f/lex.c:354
+#, fuzzy, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: f/lex.c:365
+#, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr ""
+
+#: f/lex.c:393
+#, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr ""
+
+#: f/lex.c:407
+#, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr ""
+
+#: f/lex.c:441
+#, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr ""
+
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr ""
+
+#: f/lex.c:648
+#, c-format
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr ""
+
+#: f/lex.c:661
+#, fuzzy, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr "невÑÐ´Ð¾Ð¼Ð°Ñ ESC-паÑлÑдоўнаÑць '\\%c'"
+
+#: f/lex.c:665
+#, c-format
+msgid "unknown escape sequence `\\%c'"
+msgstr ""
+
+#: f/lex.c:667
+#, c-format
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr ""
+
+#: f/lex.c:744
+msgid "badly formed directive -- no closing quote"
+msgstr ""
+
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr ""
+
+#: f/lex.c:964
+msgid "bad directive -- missing close-quote"
+msgstr ""
+
+#: f/lex.c:1078
+#, c-format
+msgid "ignoring pragma: %s"
+msgstr ""
+
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr ""
+
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr ""
+
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr ""
+
+#: f/lex.c:1285 f/lex.c:1329
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr ""
+
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr ""
+
+#: f/lex.c:1432
+#, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr ""
+
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr ""
+
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr ""
+
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr ""
+
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
+msgstr ""
+
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr ""
+
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr ""
+
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr ""
+
+#: f/top.c:237
+#, c-format
+msgid "%s no longer supported -- try -fvxt"
+msgstr ""
+
+#: f/top.c:239
+#, c-format
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr ""
+
+#: f/top.c:307 f/top.c:309
+#, c-format
+msgid "%s disabled, use normal debugging flags"
+msgstr ""
+
+#: f/lang-options.h:33
+msgid "Print g77-specific compiler version info, run internal tests"
+msgstr ""
+
+#: f/lang-options.h:37
+msgid "Program is written in typical FORTRAN 66 dialect"
+msgstr ""
+
+#: f/lang-options.h:40
+msgid "Program is written in typical Unix f77 dialect"
+msgstr ""
+
+#: f/lang-options.h:42
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr ""
+
+#: f/lang-options.h:44
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr ""
+
+#: f/lang-options.h:48
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr ""
+
+#: f/lang-options.h:50
+msgid "Allow $ in symbol names"
+msgstr ""
+
+#: f/lang-options.h:54
+msgid "f2c-compatible code need not be generated"
+msgstr ""
+
+#: f/lang-options.h:57
+msgid "Unsupported; do not generate libf2c-calling code"
+msgstr ""
+
+#: f/lang-options.h:59
+msgid "Unsupported; affects code-generation of arrays"
+msgstr ""
+
+#: f/lang-options.h:62
+msgid "Program is written in Fortran-90-ish free form"
+msgstr ""
+
+#: f/lang-options.h:67
+msgid "Warn about use of (only a few for now) Fortran extensions"
+msgstr ""
+
+#: f/lang-options.h:70
+msgid "Program is written in VXT (Digital-like) FORTRAN"
+msgstr ""
+
+#: f/lang-options.h:73
+msgid "Disallow all ugly features"
+msgstr ""
+
+#: f/lang-options.h:76
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr ""
+
+#: f/lang-options.h:78
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr ""
+
+#: f/lang-options.h:81
+msgid "Dummy array dimensioned to (1) is assumed-size"
+msgstr ""
+
+#: f/lang-options.h:84
+msgid "Trailing comma in procedure call denotes null argument"
+msgstr ""
+
+#: f/lang-options.h:87
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+msgstr ""
+
+#: f/lang-options.h:91
+msgid "Initialization via DATA and PARAMETER is type-compatible"
+msgstr ""
+
+#: f/lang-options.h:93
+msgid "Allow INTEGER and LOGICAL interchangeability"
+msgstr ""
+
+#: f/lang-options.h:96
+msgid "Print internal debugging-related info"
+msgstr ""
+
+#: f/lang-options.h:99
+msgid "Initialize local vars and arrays to zero"
+msgstr ""
+
+#: f/lang-options.h:103
+msgid "Backslashes in character/hollerith constants not special (C-style)"
+msgstr ""
+
+#: f/lang-options.h:105
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+msgstr ""
+
+#: f/lang-options.h:109
+msgid "Disable the appending of underscores to externals"
+msgstr ""
+
+#: f/lang-options.h:112
+msgid "Never append a second underscore to externals"
+msgstr ""
+
+#: f/lang-options.h:114
+msgid "Intrinsics spelled as e.g. SqRt"
+msgstr ""
+
+#: f/lang-options.h:116
+msgid "Intrinsics in uppercase"
+msgstr ""
+
+#: f/lang-options.h:119
+msgid "Intrinsics letters in arbitrary cases"
+msgstr ""
+
+#: f/lang-options.h:121
+msgid "Language keywords spelled as e.g. IOStat"
+msgstr ""
+
+#: f/lang-options.h:123
+msgid "Language keywords in uppercase"
+msgstr ""
+
+#: f/lang-options.h:126
+msgid "Language keyword letters in arbitrary cases"
+msgstr ""
+
+#: f/lang-options.h:128
+msgid "Internally convert most source to uppercase"
+msgstr ""
+
+#: f/lang-options.h:131
+msgid "Internally preserve source case"
+msgstr ""
+
+#: f/lang-options.h:133
+msgid "Symbol names spelled in mixed case"
+msgstr ""
+
+#: f/lang-options.h:135
+msgid "Symbol names in uppercase"
+msgstr ""
+
+#: f/lang-options.h:137
+msgid "Symbol names in lowercase"
+msgstr ""
+
+#: f/lang-options.h:140
+msgid "Program written in uppercase"
+msgstr ""
+
+#: f/lang-options.h:142
+msgid "Program written in lowercase"
+msgstr ""
+
+#: f/lang-options.h:144
+msgid "Program written in strict mixed-case"
+msgstr ""
+
+#: f/lang-options.h:146
+msgid "Compile as if program written in uppercase"
+msgstr ""
+
+#: f/lang-options.h:148
+msgid "Compile as if program written in lowercase"
+msgstr ""
+
+#: f/lang-options.h:150
+msgid "Preserve all spelling (case) used in program"
+msgstr ""
+
+#: f/lang-options.h:152
+msgid "Delete libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:154
+msgid "Disable libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:157
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr ""
+
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:201
+msgid "Treat initial values of 0 like non-zero values"
+msgstr ""
+
+#: f/lang-options.h:204
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+msgstr ""
+
+#: f/lang-options.h:207
+msgid "Take at least one trip through each iterative DO loop"
+msgstr ""
+
+#: f/lang-options.h:211
+msgid "Print names of program units as they are compiled"
+msgstr ""
+
+#: f/lang-options.h:214
+msgid "Disable fatal diagnostics about inter-procedural problems"
+msgstr ""
+
+#: f/lang-options.h:216
+msgid "Make prefix-radix non-decimal constants be typeless"
+msgstr ""
+
+#: f/lang-options.h:219
+msgid "Generate code to check subscript and substring bounds"
+msgstr ""
+
+#: f/lang-options.h:222
+msgid "Fortran-specific form of -fbounds-check"
+msgstr ""
+
+#: f/lang-options.h:226
+msgid "Disable warnings about inter-procedural problems"
+msgstr ""
+
+#: f/lang-options.h:230
+msgid "Warn about constructs with surprising meanings"
+msgstr ""
+
+#: f/lang-options.h:235
+msgid "Add a directory for INCLUDE searching"
+msgstr ""
+
+#: f/lang-options.h:237
+msgid "Set the maximum line length"
+msgstr ""
+
+#: f/bad.def:39
+#, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr ""
+
+#: f/bad.def:42
+#, fuzzy, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "пуÑÑ‚Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: f/bad.def:45
+#, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr ""
+
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr ""
+
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr ""
+
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr ""
+
+#: f/bad.def:65
+#, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr ""
+
+#: f/bad.def:77
+#, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr ""
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:91
+#, fuzzy, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr ""
+
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr ""
+
+#: f/bad.def:100
+#, no-c-format
+msgid "Integer at %0 too large"
+msgstr ""
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr ""
+
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr ""
+
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr ""
+
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr ""
+
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr ""
+
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr ""
+
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:291
+#, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr ""
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:433
+#, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr ""
+
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr ""
+
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr ""
+
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr ""
+
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr ""
+
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr ""
+
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr ""
+
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr ""
+
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr ""
+
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr ""
+
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr ""
+
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr ""
+
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr ""
+
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr ""
+
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr ""
+
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr ""
+
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr ""
+
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr ""
+
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr ""
+
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr ""
+
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr ""
+
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr ""
+
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr ""
+
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr ""
+
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr ""
+
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr ""
+
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr ""
+
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr ""
+
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr ""
+
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr ""
+
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr ""
+
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr ""
+
+#: f/bad.def:578
+#, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr ""
+
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr ""
+
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:598
+#, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr ""
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr ""
+
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr ""
+
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr ""
+
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr ""
+
+#: f/bad.def:650
+#, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr ""
+
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr ""
+
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr ""
+
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr ""
+
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr ""
+
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr ""
+
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr ""
+
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr ""
+
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr ""
+
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr ""
+
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr ""
+
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
+msgstr ""
+
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr ""
+
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr ""
+
+#: f/bad.def:708
+#, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr ""
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr ""
+
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr ""
+
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr ""
+
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr ""
+
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr ""
+
+#: f/bad.def:821
+#, fuzzy, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr ""
+
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr ""
+
+#: f/bad.def:854
+#, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
+msgstr ""
+
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr ""
+
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr ""
+
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr ""
+
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr ""
+
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr ""
+
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr ""
+
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr ""
+
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr ""
+
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr ""
+
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr ""
+
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr ""
+
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr ""
+
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr ""
+
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
+msgstr ""
+
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr ""
+
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr ""
+
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr ""
+
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr ""
+
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr ""
+
+#: f/bad.def:1037
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr "мнагаÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта"
+
+#: f/bad.def:1040
+#, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr ""
+
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr ""
+
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr ""
+
+#: f/bad.def:1049
+#, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr ""
+
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr ""
+
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1085
+#, fuzzy, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr "памер маÑіва \"%s\" вельмі вÑлікі"
+
+#: f/bad.def:1088
+#, fuzzy, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr "метка \"%s\" вызначана, але не выкарыÑтоўваецца"
+
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr ""
+
+#: f/bad.def:1094
+#, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr ""
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
+msgstr ""
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr ""
+
+#: f/info-k.def:34
+msgid "In function"
+msgstr "У функцыі"
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr ""
+
+#: f/info-k.def:36
+msgid "In program"
+msgstr "У праграме"
+
+#: f/info-k.def:37
+msgid "In block-data unit"
+msgstr ""
+
+#: f/info-k.def:38
+msgid "In common block"
+msgstr ""
+
+#: f/info-k.def:39
+msgid "In construct"
+msgstr "У канÑтрукцыі"
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr ""
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr ""
+
+#: java/check-init.c:917
+#, c-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr ""
+
+#: java/check-init.c:990
+#, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr ""
+
+#: java/class.c:539 java/class.c:564
+msgid "internal error - too many interface type"
+msgstr ""
+
+#: java/class.c:677
+msgid "bad method signature"
+msgstr ""
+
+#: java/class.c:726
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr ""
+
+#: java/class.c:728
+#, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr ""
+
+#: java/class.c:739
+#, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr ""
+
+#: java/class.c:1103
+#, c-format
+msgid "field '%s' not found in class"
+msgstr "поле \"%s\" не знойдзена Ñž клаÑе"
+
+#: java/class.c:1365
+msgid "abstract method in non-abstract class"
+msgstr "абÑтрактны метад у неабÑтрактным клаÑе"
+
+#: java/class.c:2078
+#, c-format
+msgid "non-static method '%s' overrides static method"
+msgstr ""
+
+#: java/decl.c:1541
+#, c-format
+msgid "In %s: overlapped variable and exception ranges at %d"
+msgstr ""
+
+#: java/decl.c:1622
+msgid "bad type in parameter debug info"
+msgstr ""
+
+#: java/decl.c:1632
+#, c-format
+msgid "bad PC range for debug info for local `%s'"
+msgstr ""
+
+#: java/expr.c:530
+msgid "stack underflow - dup* operation"
+msgstr ""
+
+#: java/expr.c:1534
+#, c-format
+msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+msgstr ""
+
+#: java/expr.c:1563
+#, c-format
+msgid "field `%s' not found"
+msgstr ""
+
+#: java/expr.c:1715
+msgid "ret instruction not implemented"
+msgstr ""
+
+#: java/expr.c:1857
+#, c-format
+msgid "method '%s' not found in class"
+msgstr "метад \"%s\" не знойдзен у клаÑе"
+
+#: java/expr.c:2060
+#, c-format
+msgid "failed to find class '%s'"
+msgstr "не знойдзен ÐºÐ»Ð°Ñ \"%s\""
+
+#: java/expr.c:2070
+#, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr ""
+
+#: java/expr.c:2080
+msgid "invokestatic on non static method"
+msgstr ""
+
+#: java/expr.c:2085
+msgid "invokestatic on abstract method"
+msgstr ""
+
+#: java/expr.c:2093
+msgid "invoke[non-static] on static method"
+msgstr ""
+
+#: java/expr.c:2396
+#, c-format
+msgid "missing field '%s' in '%s'"
+msgstr "прапушчана поле '%s' у '%s'"
+
+#: java/expr.c:2402
+#, fuzzy, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "Прапушчана поле \"%s\" у \"%s\""
+
+#: java/expr.c:2425
+#, c-format
+msgid "assignment to final field `%s' not in field's class"
+msgstr ""
+
+#: java/expr.c:2430
+#, c-format
+msgid "assignment to final static field `%s' not in class initializer"
+msgstr ""
+
+#: java/expr.c:2437
+#, c-format
+msgid "assignment to final field `%s' not in constructor"
+msgstr ""
+
+#: java/expr.c:2684
+#, fuzzy, c-format
+msgid "can't expand %s"
+msgstr "не магу прачытаць з %s"
+
+#: java/expr.c:2861
+msgid "invalid PC in line number table"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2906
+#, c-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2943
+#, c-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr ""
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3261
+msgid "unrecogized wide sub-instruction"
+msgstr ""
+
+#: java/jcf-io.c:543
+#, c-format
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+msgstr ""
+
+#: java/jcf-parse.c:338
+msgid "bad string constant"
+msgstr ""
+
+#: java/jcf-parse.c:356
+#, c-format
+msgid "bad value constant type %d, index %d"
+msgstr ""
+
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr ""
+
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr "не магу зачыніць %s"
+
+#: java/jcf-parse.c:619
+#, c-format
+msgid "cannot find file for class %s"
+msgstr "немагчыма знайÑьці файл Ð´Ð»Ñ ÐºÐ»ÑÑа %s"
+
+#: java/jcf-parse.c:631
+msgid "not a valid Java .class file"
+msgstr ""
+
+#: java/jcf-parse.c:634
+msgid "error while parsing constant pool"
+msgstr ""
+
+#: java/jcf-parse.c:637
+#, c-format
+msgid "error in constant pool entry #%d\n"
+msgstr ""
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:649
+#, c-format
+msgid "reading class %s for the second time from %s"
+msgstr ""
+
+#: java/jcf-parse.c:667
+msgid "error while parsing fields"
+msgstr ""
+
+#: java/jcf-parse.c:670
+msgid "error while parsing methods"
+msgstr ""
+
+#: java/jcf-parse.c:673
+msgid "error while parsing final attributes"
+msgstr ""
+
+#: java/jcf-parse.c:687
+#, c-format
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+msgstr ""
+
+#: java/jcf-parse.c:777
+msgid "missing Code attribute"
+msgstr ""
+
+#: java/jcf-parse.c:1014
+msgid "source file seen twice on command line and will be compiled only once"
+msgstr ""
+
+#: java/jcf-parse.c:1030
+msgid "no input file specified"
+msgstr "не зададзены ўваходзÑÑ‡Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹"
+
+#: java/jcf-parse.c:1059
+#, c-format
+msgid "can't close input file %s"
+msgstr "немагчыма зачыніць уваходзÑчы файл %s"
+
+#: java/jcf-parse.c:1096
+#, c-format
+msgid "bad zip/jar file %s"
+msgstr "дрÑнны zip/jar файл \"%s\""
+
+#: java/jcf-write.c:2650
+#, c-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr ""
+
+#: java/jcf-write.c:2988
+#, fuzzy
+msgid "field initializer type mismatch"
+msgstr "нерÑчаіÑны ініцыÑлізатар"
+
+#: java/jcf-write.c:3419
+#, c-format
+msgid "can't create directory %s"
+msgstr "немагчыма Ñтварыць дырÑкторыю \"%s\""
+
+#: java/jcf-write.c:3473
+#, fuzzy, c-format
+msgid "can't create %s"
+msgstr "не магу зачыніць %s"
+
+#: java/jv-scan.c:187
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr ""
+
+#: java/jv-scan.c:190
+#, c-format
+msgid "can't open output file `%s'"
+msgstr "немагчыма адчыніць файл уводу `%s'"
+
+#: java/jv-scan.c:224
+#, c-format
+msgid "file not found `%s'"
+msgstr "файл `%s' Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½"
+
+#: java/jvspec.c:426
+msgid "can't specify `-D' without `--main'\n"
+msgstr ""
+
+#: java/jvspec.c:429
+#, c-format
+msgid "`%s' is not a valid class name"
+msgstr ""
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr ""
+
+#: java/jvspec.c:442
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr ""
+
+#: java/jvspec.c:449
+msgid "cannot specify both -C and -o"
+msgstr ""
+
+#: java/jvspec.c:461
+msgid "cannot create temporary file"
+msgstr "немагчыма Ñтварыць чаÑовы файл"
+
+#: java/jvspec.c:489
+msgid "using both @FILE with multiple files not implemented"
+msgstr ""
+
+#: java/jvspec.c:538
+msgid "cannot specify `main' class when not linking"
+msgstr ""
+
+#: java/lang.c:548
+msgid "can't do dependency tracking with input from stdin"
+msgstr ""
+
+#: java/lang.c:564
+msgid "couldn't determine target name for dependency tracking"
+msgstr ""
+
+#: java/lex.c:303
+#, c-format
+msgid ""
+"unknown encoding: `%s'\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"`--encoding=UTF-8' option"
+msgstr ""
+
+#: java/mangle.c:85
+#, fuzzy, c-format
+msgid "can't mangle %s"
+msgstr "не магу зачыніць %s"
+
+#: java/mangle_name.c:144 java/mangle_name.c:216
+msgid "internal error - invalid Utf8 name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+msgid "';' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr "Прапушчана назва"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
+msgid "'*' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
+msgid "Class or interface declaration expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
+msgid "Missing class name"
+msgstr "Прапушчана назва клаÑа"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
+msgid "'{' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
+msgid "Missing super class name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
+msgid "Missing interface name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
+msgid "Missing variable initializer"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
+msgid "Invalid declaration"
+msgstr "ÐерÑчаіÑнае абвÑшчÑнне"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
+msgid "']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
+msgid "Unbalanced ']'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
+msgid "Invalid method declaration, method name required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
+msgid "Identifier expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
+msgid "Invalid method declaration, return type required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
+msgid "')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
+msgid "Missing formal parameter term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
+msgid "Missing identifier"
+msgstr "Прапушчан ідÑнтыфікатар"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
+msgid "Missing class type term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
+msgid "Invalid interface type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
+msgid "':' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
+msgid "Invalid expression statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
+msgid "'(' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
+msgid "Missing term or ')'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
+msgid "Missing or invalid constant expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
+msgid "Missing term and ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
+msgid "Invalid control expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
+msgid "Invalid update expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
+msgid "Invalid init statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
+msgid "Missing term or ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
+msgid "'class' or 'this' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
+msgid "'class' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
+msgid "')' or term expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
+msgid "'[' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
+msgid "Field expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
+msgid "Missing term and ']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
+msgid "']' expected, invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
+msgid "Invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
+msgid "Invalid reference type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
+msgid "Only constructors can invoke constructors"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
+#, c-format
+msgid ": `%s' JDK1.1(TM) feature"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
+#, c-format
+msgid ""
+"%s.\n"
+"%s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
+#, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
+#, c-format
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
+#, c-format
+msgid "missing static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
+#, c-format
+msgid "not a static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, c-format
+msgid "No case for %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, c-format
+msgid "unregistered operator %s"
+msgstr "нераÑпазнаны аператар %s"
+
+#: java/typeck.c:553
+msgid "junk at end of signature string"
+msgstr ""
+
+#: java/verify.c:479
+msgid "bad pc in exception_table"
+msgstr ""
+
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
+#, c-format
+msgid "unknown opcode %d@pc=%d during verification"
+msgstr ""
+
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
+#, c-format
+msgid "verification error at PC=%d"
+msgstr ""
+
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
+msgstr ""
+
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
+msgstr ""
+
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
+msgstr ""
+
+#: java/lang-options.h:38
+msgid "Replace system path"
+msgstr ""
+
+#: java/lang-options.h:40
+msgid "Set class path"
+msgstr ""
+
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr ""
+
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
+msgstr ""
+
+#: java/lang-options.h:46
+msgid "Choose input encoding (default comes from locale)"
+msgstr ""
+
+#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr ""
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr ""
+
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
+msgstr ""
+
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
+msgstr ""
+
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr ""
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr ""
+
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
+msgstr ""
+
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
+msgstr ""
+
+#: objc/objc-act.c:651
+#, c-format
+msgid "object does not conform to the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:737 objc/objc-act.c:810
+#, c-format
+msgid "class `%s' does not implement the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr ""
+
+#: objc/objc-act.c:963
+#, c-format
+msgid "unexpected type for `id' (%s)"
+msgstr ""
+
+#: objc/objc-act.c:968
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr ""
+
+#: objc/objc-act.c:1019
+#, c-format
+msgid "protocol `%s' has circular dependency"
+msgstr ""
+
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
+#, fuzzy, c-format
+msgid "cannot find protocol declaration for `%s'"
+msgstr "Ðе магу знайÑці дÑкларацыю пратакола Ð´Ð»Ñ \"%s\""
+
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: objc/objc-act.c:1328
+#, fuzzy, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr "Ðе магу знайÑці файл Ð´Ð»Ñ ÐºÐ»Ð°Ñа %s."
+
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
+#, c-format
+msgid "cannot find class `%s'"
+msgstr "немагчыма знайÑьці клÑÑ `%s'"
+
+#: objc/objc-act.c:2366
+#, c-format
+msgid "class `%s' already exists"
+msgstr "клÑÑ `%s' ужо Ñ–Ñнуе"
+
+#. fatal did not work with 2 args...should fix
+#: objc/objc-act.c:2473
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: objc/objc-act.c:2480
+#, fuzzy, c-format
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr "Ðе магу знайÑці дÑкларацыю інтÑрфейÑа Ð´Ð»Ñ \"%s\""
+
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
+msgid "inconsistent instance variable specification"
+msgstr ""
+
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
+#, c-format
+msgid "multiple declarations for method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4946
+#, c-format
+msgid "invalid receiver type `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
+#, c-format
+msgid "`%s' does not respond to `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
+#, c-format
+msgid "no super class declared in interface for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5081
+#, fuzzy
+msgid "cannot find class (factory) method"
+msgstr "не магу знайÑці метад."
+
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
+#, c-format
+msgid "return type for `%s' defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5099
+#, fuzzy, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr "метад \"%s\" не знойдзен у клаÑе"
+
+#: objc/objc-act.c:5108
+msgid "return type defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5125
+msgid "cannot find method"
+msgstr "немагчыма знайÑьці мÑтад"
+
+#: objc/objc-act.c:5399
+#, fuzzy, c-format
+msgid "undeclared selector `%s'"
+msgstr "у абвÑшчÑньні `%D'"
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:5443
+#, c-format
+msgid "instance variable `%s' accessed in class method"
+msgstr ""
+
+#: objc/objc-act.c:5678
+#, fuzzy, c-format
+msgid "duplicate definition of class method `%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: objc/objc-act.c:5684
+#, fuzzy, c-format
+msgid "duplicate declaration of class method `%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: objc/objc-act.c:5720
+#, c-format
+msgid "duplicate definition of instance method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5726
+#, fuzzy, c-format
+msgid "duplicate declaration of instance method `%s'"
+msgstr "паўторнае абвÑшчÑнне меткі \"%s\""
+
+#: objc/objc-act.c:5766
+#, c-format
+msgid "duplicate interface declaration for category `%s(%s)'"
+msgstr ""
+
+#: objc/objc-act.c:5852
+#, c-format
+msgid "instance variable `%s' is declared private"
+msgstr ""
+
+#: objc/objc-act.c:5899
+#, c-format
+msgid "instance variable `%s' is declared %s"
+msgstr ""
+
+#: objc/objc-act.c:5909
+msgid "static access to object of type `id'"
+msgstr ""
+
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
+#, c-format
+msgid "incomplete implementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, c-format
+msgid "incomplete implementation of category `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, c-format
+msgid "method definition for `%c%s' not found"
+msgstr ""
+
+#: objc/objc-act.c:6081
+#, c-format
+msgid "%s `%s' does not fully implement the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+msgid "`@end' missing in implementation context"
+msgstr ""
+
+#: objc/objc-act.c:6167
+#, c-format
+msgid "reimplementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6209
+#, c-format
+msgid "conflicting super class name `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6224
+#, c-format
+msgid "duplicate interface declaration for class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6506
+#, c-format
+msgid "duplicate declaration for protocol `%s'"
+msgstr ""
+
+#: objc/objc-act.c:7363
+msgid "[super ...] must appear in a method context"
+msgstr ""
+
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
+#, c-format
+msgid "potential selector conflict for method `%s'"
+msgstr ""
+
+#: objc-parse.y:2655
+msgid "`@end' must appear in an implementation context"
+msgstr ""
+
+#: objc-parse.y:2931
+msgid "method definition not in class context"
+msgstr ""
+
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
+msgstr ""
+
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
+msgstr ""
+
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
+msgstr ""
+
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
+msgstr ""
+
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr ""
+
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
+msgstr ""
+
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
+msgstr ""
+
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr ""
+
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr ""
+
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr ""
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr ""
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/arm/arm.h:178
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:180
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:182
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr ""
+
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "атрыбуты Ñекцыі не падтрымліваюцца Ð´Ð»Ñ Ð³Ñтай мÑÑ‚Ñ‹"
+
+#: config/i386/sco5.h:196
+msgid "-p and -pp specified - pick one"
+msgstr ""
+
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
+msgstr ""
+
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr ""
+
+#: f/lang-specs.h:39 gcc.c:690
+#, fuzzy
+msgid "GNU C does not support -CC without using -E"
+msgstr "ISO C89 не падтрымлівае `long long'"
+
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr ""
+
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
+msgstr ""
+
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr ""
+
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr ""
+
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr ""
+
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr ""
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr ""
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr ""
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe не падтрымліваецца"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr "-mhard-float не падтрымліваецца"
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr ""
+
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "невÑдомы C Ñтандарт `%s'"
+
+#, fuzzy
+#~ msgid "missing binary operator"
+#~ msgstr "прапушчан ініцыÑлізатар"
+
+#, fuzzy
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "немагчыма Ñтварыць дырÑкторыю \"%s\""
+
+#, fuzzy
+#~ msgid "argument missing after %s"
+#~ msgstr "аргумент Ð´Ð»Ñ \"%s\" прапушчан"
+
+#, fuzzy
+#~ msgid "invalid option %s"
+#~ msgstr "ÐерÑчаіÑны выбар %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: увага: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: увага: "
+
+#~ msgid "floating point overflow"
+#~ msgstr "перапаўненьне плаваючай кропкі"
+
+#, fuzzy
+#~ msgid "internal error: %s"
+#~ msgstr "Ð£Ð½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°: %s"
+
+#, fuzzy
+#~ msgid "invalid character constant in #if"
+#~ msgstr "ÑÑ–Ð¼Ð²Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ°Ð½Ñтанта вельмі доўгаÑ"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "выкарыÑтаньне: %s [выключальнікі] увод вывад"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#памылка%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#увага%.*s"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "незбаланÑаваны #endif"
+
+#~ msgid "optimization turned on"
+#~ msgstr "Ð°Ð¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ ÑƒÐºÐ»ÑŽÑ‡Ð°Ð½Ð°"
+
+#~ msgid "optimization turned off"
+#~ msgstr "Ð°Ð¿Ñ‚Ñ‹Ð¼Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡Ð°Ð½Ð°"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "нерÑчаіÑнае значÑньне %%V"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "ВыкарыÑтоўваць OSF PIC"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Ðе выкарыÑтоўваць OSF PIC"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Ðптымізаваць Ð´Ð»Ñ 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Ðптымізаваць Ð´Ð»Ñ 4650"
+
+#, fuzzy
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "тып параметра \"%s\" не аб'Ñўлены"
+
+#, fuzzy
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "complex нерÑчаіÑны Ð´Ð»Ñ \"%s\""
+
+#, fuzzy
+#~ msgid "explicit specialization here"
+#~ msgstr "ініцыÑлізацыÑ"
+
+#, fuzzy
+#~ msgid "base initializer for `%T'"
+#~ msgstr "не магу ініцыÑлізаваць ÑÑброўÑкую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "нÑвернае выкарыÑтанне \"restict\""
+
+#, fuzzy
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "нÑма папÑÑ€ÑднÑга аб'ÑÑžÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \"%s\""
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "нерÑчаіÑнае выкарыÑтаньне `%T'"
diff --git a/gcc/po/ca.po b/gcc/po/ca.po
new file mode 100644
index 00000000000..082c1a51a2f
--- /dev/null
+++ b/gcc/po/ca.po
@@ -0,0 +1,20826 @@
+# translation of gcc-3.2-ca.po to Catalan
+# Catalan translation of gcc.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2002.
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2003.
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2004.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2004-01-30 00:03+0000\n"
+"Last-Translator: Mateu Gilles <mateu.gilles@wanadoo.fr>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: attribs.c:185
+#, c-format
+msgid "`%s' attribute directive ignored"
+msgstr "s'ignora la directiva d'atribut \"%s\""
+
+#: attribs.c:193
+#, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "es va especificar el nombre equivocat d'arguments per a l'atribut \"%s\""
+
+#: attribs.c:210
+#, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr "l'atribut \"%s\" no s'aplica a tipus"
+
+#: attribs.c:247
+#, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr "l'atribut \"%s\" nomes s'aplica a tipus funcions"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, c-format
+msgid "`%s' attribute ignored"
+msgstr "s'ignora l'atribut \"%s\""
+
+#: builtins.c:285
+msgid "offset outside bounds of constant string"
+msgstr "el desplaçament fora dels límits de la constant de cadena"
+
+#: builtins.c:765
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "el segon argument de \"__builtin_prefetch\" deu ser una constant"
+
+#: builtins.c:772
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr "segon argument de __builtin_prefetch invalid; s'utilitzara zero"
+
+#: builtins.c:779
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "el tercer argument de \"__builtin_prefetch\" deu ser una constant"
+
+#: builtins.c:786
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr "tercer argument de __builtin_prefetch invalid; s'utilitzara zero"
+
+#. ??? We used to try and build up a call to the out of line function,
+#. guessing about what registers needed saving etc. This became much
+#. harder with __builtin_va_start, since we don't have a tree for a
+#. call to __builtin_saveregs to fall back on. There was exactly one
+#. port (i860) that used this code, and I'm unconvinced it could actually
+#. handle the general case. So we no longer try to handle anything
+#. weird and make the backend absorb the evil.
+#: builtins.c:2875
+msgid "__builtin_saveregs not supported by this target"
+msgstr "no es dona suport a _builtin_saveregs en aquest objectiu"
+
+#: builtins.c:2917
+msgid "argument of `__builtin_args_info' must be constant"
+msgstr "l'argument de \"__builtin_args_info\" deu ser constant"
+
+#: builtins.c:2923
+msgid "argument of `__builtin_args_info' out of range"
+msgstr "l'argument de \"__builtin_args_info\" està fora de rang"
+
+#: builtins.c:2929
+msgid "missing argument in `__builtin_args_info'"
+msgstr "falta un argument en \"__builtin_args_info\""
+
+#: builtins.c:2960
+msgid "`va_start' used in function with fixed args"
+msgstr "es va usar \"va_start\" en una funció amb arguments fixos"
+
+#: builtins.c:2979
+msgid "second parameter of `va_start' not last named argument"
+msgstr "el segon paràmetre de \"va_start\" no és l'últim argument nomenat"
+
+#. Evidently an out of date version of <stdarg.h>; can't validate
+#. va_start's second argument, but can still work as intended.
+#: builtins.c:2984
+msgid "`__builtin_next_arg' called without an argument"
+msgstr "es va cridar a \"__builtin_next_arg\" sense un argument"
+
+#: builtins.c:3070
+msgid "too many arguments to function `va_start'"
+msgstr "massa arguments per a la funció \"va_start\""
+
+#: builtins.c:3172
+msgid "first argument to `va_arg' not of type `va_list'"
+msgstr "el primer argument per a \"va_arg\" no és del tipus \"va_list\""
+
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
+#, c-format
+msgid "`%s' is promoted to `%s' when passed through `...'"
+msgstr "\"%s\" es promou a \"%s\" quan passa a través de \"...\""
+
+#: builtins.c:3209
+#, c-format
+msgid "(so you should pass `%s' not `%s' to `va_arg')"
+msgstr "(així que deu passar \"%s\" i no \"%s\" a \"va_arg\")"
+
+#: builtins.c:3340
+msgid "invalid arg to `__builtin_frame_address'"
+msgstr "argument invàlid per a \"__builtin_frame_address\""
+
+#: builtins.c:3342
+msgid "invalid arg to `__builtin_return_address'"
+msgstr "argument invàlid per a \"__builtin_return_address\""
+
+#: builtins.c:3356
+msgid "unsupported arg to `__builtin_frame_address'"
+msgstr "argument sense suport per a \"__builtin_frame_address\""
+
+#: builtins.c:3358
+msgid "unsupported arg to `__builtin_return_address'"
+msgstr "argument sense suport per a \"__builtin_return_address\""
+
+#: builtins.c:3530
+msgid "second arg to `__builtin_expect' must be a constant"
+msgstr "el segon argument de \"__builtin_expect\" deu ser una constant"
+
+#: builtins.c:4028
+msgid "__builtin_longjmp second argument must be 1"
+msgstr "el segon argument de _builtin_longjump deu ser 1"
+
+#. just do library call, if unknown builtin
+#: builtins.c:4092 c-common.c:4459
+#, c-format
+msgid "built-in function `%s' not currently supported"
+msgstr "no se suporta actualment la funció interna \"%s\""
+
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "el format objectiu no té suport per a infinit"
+
+#: c-common.c:1168
+#, c-format
+msgid "`%s' is not defined outside of function scope"
+msgstr "no es defineix \"%s\" fora de l'àmbit de la funció"
+
+#: c-common.c:1189
+#, c-format
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr "la longitud de la cadena \"%d\" és major que la longitud `%d\" que es requereix que els compiladors ISO C %d donin suport"
+
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "us depreciada de la concatenació de cadenes literals amb __FUNCTION__"
+
+#: c-common.c:1343
+msgid "overflow in constant expression"
+msgstr "desbordament en la constant implícita"
+
+#: c-common.c:1364
+msgid "integer overflow in expression"
+msgstr "desbordament enter en l'expressió"
+
+#: c-common.c:1373
+msgid "floating point overflow in expression"
+msgstr "desbordament de coma flotant en l'expressió"
+
+#: c-common.c:1379
+msgid "vector overflow in expression"
+msgstr "desbordament de vector flotant en l'expressió"
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:1402
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "enter gran truncat implícitament al tipus unsigned"
+
+#: c-common.c:1404
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "enter negatiu truncat implícitament al tipus unsigned"
+
+#: c-common.c:1452
+msgid "overflow in implicit constant conversion"
+msgstr "desbordament en la conversió implícita de constant"
+
+#: c-common.c:1600
+#, c-format
+msgid "operation on `%s' may be undefined"
+msgstr "l'operació sobre \"%s\" pot estar indefinida"
+
+#: c-common.c:1891
+msgid "expression statement has incomplete type"
+msgstr "la declaració de l'expressió té tipus de dada incompleta"
+
+#: c-common.c:1924
+msgid "case label does not reduce to an integer constant"
+msgstr "l'etiqueta de \"casi\" no es redueix a una constant entera"
+
+#: c-common.c:2228
+msgid "invalid truth-value expression"
+msgstr "expressió de valor veritable invàlida"
+
+#: c-common.c:2279
+#, c-format
+msgid "invalid operands to binary %s"
+msgstr "operadors invàlids per al binari %s"
+
+#: c-common.c:2513
+msgid "comparison is always false due to limited range of data type"
+msgstr "la comparança sempre és falsa a causa del rang limitat del tipus de dades"
+
+#: c-common.c:2515
+msgid "comparison is always true due to limited range of data type"
+msgstr "la comparança sempre és veritable a causa del rang limitat del tipus de dades"
+
+#: c-common.c:2585
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "la comparança d'una expressió unsigned >= 0 sempre és veritable"
+
+#: c-common.c:2594
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "la comparança d'una expressió unsigned < 0 sempre és falsa"
+
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "es va usar un punter de tipus \"void *\" en l'aritmètica"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "es va usar un punter a una funció en l'aritmètica"
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr "es va usar un punter a una funció membre en l'aritmètica"
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr "es va usar un punter a un membre en l'aritmètica"
+
+#: c-common.c:2746 f/com.c:14762
+msgid "struct type value used where scalar is required"
+msgstr "s'usa un valor de tipus struct quan es requereix un escalar"
+
+#: c-common.c:2750 f/com.c:14766
+msgid "union type value used where scalar is required"
+msgstr "s'usa un valor de tipus union quan es requereix un escalar"
+
+#: c-common.c:2754 f/com.c:14770
+msgid "array type value used where scalar is required"
+msgstr "s'usa un valor de tipus matriu quan es requereix un escalar"
+
+#: c-common.c:2874 f/com.c:14903
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "se suggereixen parèntesi al voltant de l'assignació usada com valor veritable"
+
+#: c-common.c:2918 c-common.c:2950
+msgid "invalid use of `restrict'"
+msgstr "ús invàlid de \"restrict\""
+
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "aplicació invalida de \"sizeof\" a una expressió de tipus de funció"
+
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "applicació invàlida de \"%s\" a un tipus void"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "aplicació invàlida de \"%s\" a un tipus de dada incompleta"
+
+#: c-common.c:3121
+msgid "`__alignof' applied to a bit-field"
+msgstr "\"__alignof\" aplicat a un camp de bits"
+
+#: c-common.c:3618
+#, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "no es pot desactivar la funcio interna \"%s\""
+
+#: c-common.c:3787 c-typeck.c:1748
+#, c-format
+msgid "too few arguments to function `%s'"
+msgstr "massa pocs arguments per a la funció \"%s\""
+
+#: c-common.c:3793 c-typeck.c:1601
+#, c-format
+msgid "too many arguments to function `%s'"
+msgstr "massa arguments per a la funció \"%s\""
+
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "arguments que no són de coma flotant per a la funció \"%s\""
+
+#: c-common.c:4081
+msgid "pointers are not permitted as case values"
+msgstr "els apuntadores no són permesos com valors casi"
+
+#: c-common.c:4087
+msgid "ISO C++ forbids range expressions in switch statements"
+msgstr "ISO C++ prohibeix un rang d'expressions en les declaracions switch"
+
+#: c-common.c:4089
+msgid "ISO C forbids range expressions in switch statements"
+msgstr "ISO C prohibeix un rang d'expressions en les declaracions switch"
+
+#: c-common.c:4119
+msgid "empty range specified"
+msgstr "es va especificar un rang buit"
+
+#: c-common.c:4170
+msgid "duplicate (or overlapping) case value"
+msgstr "valor de casi duplicat (o translapat)"
+
+#: c-common.c:4172
+msgid "this is the first entry overlapping that value"
+msgstr "aquesta és la primera entrada que translapa aquest valor"
+
+#: c-common.c:4176
+msgid "duplicate case value"
+msgstr "valor de casi duplicat"
+
+#: c-common.c:4177
+msgid "previously used here"
+msgstr "es va usar prèviament aquí"
+
+#: c-common.c:4181
+msgid "multiple default labels in one switch"
+msgstr "múltiples etiquetes per omissió en un sol switch"
+
+#: c-common.c:4182
+msgid "this is the first default label"
+msgstr "aquesta és la primera etiqueta per omissió"
+
+#: c-common.c:4210
+msgid "ISO C++ forbids taking the address of a label"
+msgstr "ISO C++ prohibeix prendre l'adreça d'una etiqueta"
+
+#: c-common.c:4212
+msgid "ISO C forbids taking the address of a label"
+msgstr "SO C prohibeix prendre l'adreça d'una etiqueta"
+
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "la declaració de \"%s\" enfosque \"%s\""
+
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "es desconeix la manera de màquina \"%s\""
+
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "no hi ha tipus de dades per a la manera \"%s\""
+
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "no es pot emular \"%s\""
+
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "l'atribut de secció no pot ser especificat per a les variables locals"
+
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "la secció de \"%s\" causa conflictes amb la declaració prèvia"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "no es permet un atribut de secció per a \"%s\""
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "atributs de secció no suportats per aquest objectiu"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "l'alineació sol-licitada no és una constant"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "l'alineació sol-licitada no és una potència de 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "l'alineació sol-licitada és massa gran"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "l'alineació no pot ser especificada per a \"%s\""
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "\"%s\" definit normalment i com un alies"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "l'argument d'alies no és una cadena"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "l'argument de·visibilitat no és una cadena"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "l'argument de visibilitat deu ser \"default\", \"hidden\", \"protected\" o \"internal\""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "l'argument tls_model no és una cadena"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "l'argument de tls_model deu ser \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "l'atribut \"%s\" s'aplica solament a funcions"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "no es pot establir l'atribut \"%s\" després de la definició"
+
+#: c-common.c:6114
+msgid "cleanup arg not an identifier"
+msgstr "l'objecte·cridat·no·és·un identificador"
+
+#: c-common.c:6121
+msgid "cleanup arg not a function"
+msgstr "l'objecte cridat no és una funció"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "atribut \"%s\" ignorat per a \"%s\""
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "tipus de vector invalid per a l'atribut \"%s\""
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "no es pot trobar un mode vector amb la grandària i el tipus especificat "
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "un atribut nonnull sense arguments en un que no és prototip"
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "un argument nonnull té un nombre d'operadors invàlid (arg %lu)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "un argument nonnull amb un nombre d'operants fora de rang (arg %lu, operand %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "un argument nonnull fa referència a un operant que no és punter (arg %lu, operand %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "argument null on es requereix un que no sigui null (arg %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr "valor void no ignorat com deuria ser"
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr "es va sol·licitar conversió a tipus no escalar"
+
+#: c-decl.c:340
+#, c-format
+msgid "array `%s' assumed to have one element"
+msgstr "s'assumeix que la matriu \"%s\" té un element"
+
+#: c-decl.c:526
+#, c-format
+msgid "`struct %s' incomplete in scope ending here"
+msgstr "el \"struct %s\" incomplet en l'àmbit acaba aquí"
+
+#: c-decl.c:529
+#, c-format
+msgid "`union %s' incomplete in scope ending here"
+msgstr "el \"union %s\" incomplet en l'àmbit acaba aquí"
+
+#: c-decl.c:532
+#, c-format
+msgid "`enum %s' incomplete in scope ending here"
+msgstr "el \"enum %s\" incomplet en l'àmbit acaba aquí"
+
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
+#, c-format
+msgid "label `%s' used but not defined"
+msgstr "s'usa l'etiqueta \"%s\" però no està definida"
+
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
+#, c-format
+msgid "label `%s' defined but not used"
+msgstr "l'etiqueta \"%s\" està definida però no s'usa"
+
+#: c-decl.c:893 cp/decl.c:3335
+#, c-format
+msgid "function `%s' redeclared as inline"
+msgstr "funció \"%s\" re declarada com inline"
+
+#: c-decl.c:895 cp/decl.c:3337
+#, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "declaració prèvia de la funció \"%s\" amb l'atribut noinline"
+
+#: c-decl.c:902 cp/decl.c:3344
+#, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr "funció \"%s\" re-declarada amb l'atribut noinline"
+
+#: c-decl.c:904 cp/decl.c:3346
+#, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "la declaració prèvia de la funció \"%s\" va ser inline"
+
+#: c-decl.c:933 c-decl.c:979
+#, c-format
+msgid "shadowing built-in function `%s'"
+msgstr "enfosquin la funció interna \"%s\""
+
+#: c-decl.c:935
+#, c-format
+msgid "shadowing library function `%s'"
+msgstr "enfosquin la funció de biblioteca \"%s\""
+
+#: c-decl.c:941
+#, c-format
+msgid "library function `%s' declared as non-function"
+msgstr "la funció de biblioteca \"%s\" no és declarada com funció"
+
+#: c-decl.c:945 c-decl.c:948
+#, c-format
+msgid "built-in function `%s' declared as non-function"
+msgstr "la funció interna \"%s\" no és declarada com funció"
+
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
+#, c-format
+msgid "`%s' redeclared as different kind of symbol"
+msgstr "\"%s\" redeclarat com un tipus diferent de símbol"
+
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
+#, c-format
+msgid "previous declaration of `%s'"
+msgstr "declaració prèvia de \"%s\""
+
+#. If types don't match for a built-in, throw away the built-in.
+#: c-decl.c:1048
+#, c-format
+msgid "conflicting types for built-in function `%s'"
+msgstr "tipus en conflicte per a la funció interna \"%s\""
+
+#: c-decl.c:1091 c-decl.c:1110
+#, c-format
+msgid "conflicting types for `%s'"
+msgstr "tipus en conflicte per a \"%s\""
+
+#: c-decl.c:1133
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr "Una llista de paràmetres amb una el·lipse no pot coincidir amb una declaració de nom de llista de paràmetres buida."
+
+#: c-decl.c:1139
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr "Un tipus d'argument que té una promoció per omissió no pot coincidir amb una declaració de nom de llista de paràmetres buida."
+
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "declaració thread-local per a \"%s\" a continuació d'una no thread-local"
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "declaració no thread-local per a \"%s\" a continuació d'una thread-local"
+
+#: c-decl.c:1175 c-decl.c:1198
+#, c-format
+msgid "redefinition of `%s'"
+msgstr "redefinició de \"%s\""
+
+#: c-decl.c:1178
+#, c-format
+msgid "redeclaration of `%s'"
+msgstr "re declaració de \"%s\""
+
+#: c-decl.c:1181
+#, c-format
+msgid "conflicting declarations of `%s'"
+msgstr "declaracions de \"%s\" en conflicte"
+
+#: c-decl.c:1225
+#, c-format
+msgid "prototype for `%s' follows"
+msgstr "el prototip per a \"%s\" a continuació"
+
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
+msgid "non-prototype definition here"
+msgstr "la definició del no prototip aquí"
+
+#: c-decl.c:1233
+#, c-format
+msgid "prototype for `%s' follows and number of arguments doesn't match"
+msgstr "el prototip per a \"%s\" a continuació i el nombre d'arguments no coincideixen"
+
+#: c-decl.c:1243
+#, c-format
+msgid "prototype for `%s' follows and argument %d doesn't match"
+msgstr "el prototip per a \"%s\" a continuació i l'argument %d no coincideixen"
+
+#: c-decl.c:1261
+#, c-format
+msgid "`%s' declared inline after being called"
+msgstr "\"%s\" declarat inline abans de ser cridat"
+
+#: c-decl.c:1267
+#, c-format
+msgid "`%s' declared inline after its definition"
+msgstr "\"%s\" declarat inline després de la seva definició"
+
+#: c-decl.c:1274
+#, c-format
+msgid "static declaration for `%s' follows non-static"
+msgstr "la declaració static per a \"%s\" a continuació d'una no static"
+
+#: c-decl.c:1282
+#, c-format
+msgid "non-static declaration for `%s' follows static"
+msgstr "la declaració no static per a \"%s\" a continuació d'una static"
+
+#: c-decl.c:1289
+#, c-format
+msgid "const declaration for `%s' follows non-const"
+msgstr "la declaració const per a \"%s\" a continuació d'una no const"
+
+#: c-decl.c:1296
+#, c-format
+msgid "type qualifiers for `%s' conflict with previous decl"
+msgstr "qualificators de tipus per a \"%s\" generen conflicte amb la declaració prèvia"
+
+#: c-decl.c:1309
+#, c-format
+msgid "redundant redeclaration of `%s' in same scope"
+msgstr "declaració redundant de \"%s\" en el mateix àmbit"
+
+#: c-decl.c:1619 java/decl.c:1102
+#, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr "la declaració de \"%s\" enfosquí un paràmetre"
+
+#: c-decl.c:1622 java/decl.c:1105
+#, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr "la declaració de \"%s\" enfosquí un símbol de la llista de paràmetres"
+
+#: c-decl.c:1643 cp/decl.c:4479
+msgid "a parameter"
+msgstr "un paràmetre"
+
+#: c-decl.c:1645 cp/decl.c:4496
+msgid "a previous local"
+msgstr "una declaració local prèvia"
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+msgid "a global declaration"
+msgstr "una declaració global"
+
+#: c-decl.c:1693
+#, c-format
+msgid "nested extern declaration of `%s'"
+msgstr "declaració extern niada de \"%s\""
+
+#: c-decl.c:1712 java/decl.c:1055
+#, c-format
+msgid "`%s' used prior to declaration"
+msgstr "s'usa \"%s\" previ a la declaració"
+
+#: c-decl.c:1726 c-decl.c:1901
+#, c-format
+msgid "`%s' was declared implicitly `extern' and later `static'"
+msgstr "\"%s\" es va declarar implícitament \"extern\" i després \"static\""
+
+#: c-decl.c:1829 cp/decl.c:4336
+msgid "type mismatch with previous external decl"
+msgstr "no coincideixen els tipus amb la declaració externa prèvia"
+
+#: c-decl.c:1830
+#, c-format
+msgid "previous external decl of `%s'"
+msgstr "declaració externa prèvia de \"%s\""
+
+#: c-decl.c:1843
+msgid "type mismatch with previous implicit declaration"
+msgstr "no coincideixen els tipus amb la declaració implícita prèvia"
+
+#: c-decl.c:1845
+#, c-format
+msgid "previous implicit declaration of `%s'"
+msgstr "declaració implícita prèvia de \"%s\""
+
+#: c-decl.c:1880
+#, c-format
+msgid "`%s' was previously implicitly declared to return `int'"
+msgstr "\"%s\" va ser declarat prèvia i implícitament per a retornar \"int\""
+
+#: c-decl.c:1905
+#, c-format
+msgid "`%s' was declared `extern' and later `static'"
+msgstr "\"%s\" va ser declarat \"extern\" i després \"static\""
+
+#: c-decl.c:1929
+#, c-format
+msgid "extern declaration of `%s' doesn't match global one"
+msgstr "la declaració externa de \"%s\" no coincideix amb la global"
+
+#: c-decl.c:1971
+#, c-format
+msgid "`%s' locally external but globally static"
+msgstr "\"%s\" és externa localment però estàtica globalment"
+
+#: c-decl.c:2095
+#, c-format
+msgid "function `%s' was previously declared within a block"
+msgstr "la funció \"%s\" va ser declarada prèviament dintre d'un bloc"
+
+#: c-decl.c:2115 c-decl.c:2117
+#, c-format
+msgid "implicit declaration of function `%s'"
+msgstr "declaració implícita de la funció \"%s\""
+
+#: c-decl.c:2196
+#, c-format
+msgid "label %s referenced outside of any function"
+msgstr "l'etiqueta %s és referenciada fora de qualsevol funció"
+
+#: c-decl.c:2253
+#, c-format
+msgid "duplicate label declaration `%s'"
+msgstr "declaració de l'etiqueta \"%s\" duplicada"
+
+#: c-decl.c:2256
+msgid "this is a previous declaration"
+msgstr "aquesta és una declaració prèvia"
+
+#: c-decl.c:2679
+msgid "unnamed struct/union that defines no instances"
+msgstr "struct/union sense nom que no defineix cap instància"
+
+#: c-decl.c:2698
+msgid "useless keyword or type name in empty declaration"
+msgstr "paraules claus inútils o noms de tipus en una declaració buida"
+
+#: c-decl.c:2705
+msgid "two types specified in one empty declaration"
+msgstr "es van especificar dos tipus en una declaració buida"
+
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
+msgid "empty declaration"
+msgstr "declaració buida"
+
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C90 no dóna suport a \"static\" o qualificadors de tipus dins matrius de declaradors de parametres"
+
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C90 no dóna suport a declaradors de parametres \"[*]\""
+
+#: c-decl.c:2745
+msgid "GCC does not yet properly implement `[*]' array declarators"
+msgstr "GCC no implementa encara correctament declaradors de parametres \"[*]\""
+
+#: c-decl.c:2764
+msgid "static or type qualifiers in abstract declarator"
+msgstr "static o calificador de tipus en un declarador abstracte"
+
+#: c-decl.c:2838
+#, c-format
+msgid "`%s' is usually a function"
+msgstr "\"%s\" generalment és una funció"
+
+#: c-decl.c:2847
+#, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef \"%s\" té valor inicial (usi __typeof__ en lloc)"
+
+#: c-decl.c:2853
+#, c-format
+msgid "function `%s' is initialized like a variable"
+msgstr "la funció \"%s\" té valor inicial com una variable"
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:2860
+#, c-format
+msgid "parameter `%s' is initialized"
+msgstr "el paràmetre \"%s\" té valor inicial"
+
+#: c-decl.c:2880 c-typeck.c:4895
+msgid "variable-sized object may not be initialized"
+msgstr "un objecte de grandària variable no pot tenir valor inicial"
+
+#: c-decl.c:2886
+#, c-format
+msgid "variable `%s' has initializer but incomplete type"
+msgstr "la variable \"%s\" té assignació de valor inicial, però tipus de dada incompleta"
+
+#: c-decl.c:2892
+#, c-format
+msgid "elements of array `%s' have incomplete type"
+msgstr "alguns elements de la matriu \"%s\" tenen tipus de dada incompleta"
+
+#: c-decl.c:2905
+#, c-format
+msgid "declaration of `%s' has `extern' and is initialized"
+msgstr "la declaració de \"%s\" té \"extern\" i té valor inicial"
+
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr "ha donat un atribut noinline a la funció inline \"%s\""
+
+#: c-decl.c:3028
+#, c-format
+msgid "initializer fails to determine size of `%s'"
+msgstr "el iniciador no va poder determinar la grandària de \"%s\""
+
+#: c-decl.c:3033
+#, c-format
+msgid "array size missing in `%s'"
+msgstr "falta la grandària de la matriu en %s"
+
+#: c-decl.c:3049
+#, c-format
+msgid "zero or negative size array `%s'"
+msgstr "matriu \"%s\" de grandària zero o negatiu"
+
+#: c-decl.c:3077
+#, c-format
+msgid "storage size of `%s' isn't known"
+msgstr "no es coneix la grandària d'emmagatzematge de \"%s\""
+
+#: c-decl.c:3087
+#, c-format
+msgid "storage size of `%s' isn't constant"
+msgstr "la grandària d'emmagatzematge de \"%s\" no és constant"
+
+#: c-decl.c:3147
+#, c-format
+msgid "ignoring asm-specifier for non-static local variable `%s'"
+msgstr "s'ignora el especificador asm per a la variable local no estàtica \"%s\""
+
+#: c-decl.c:3247
+#, c-format
+msgid "ISO C forbids parameter `%s' shadowing typedef"
+msgstr "ISO C prohibeix l'enfosquiment del paràmetre \"%s\" de typedef"
+
+#: c-decl.c:3592 cp/decl.c:10880
+msgid "`long long long' is too long for GCC"
+msgstr "\"long long long\" és massa llarg per a GCC"
+
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO C90 no dóna suport a \"long long\""
+
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
+#, c-format
+msgid "duplicate `%s'"
+msgstr "\"%s\" duplicat"
+
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "\"__thread\" abans \"extern\""
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "\"__thread\" abans \"static\""
+
+#: c-decl.c:3629 cp/decl.c:10921
+#, c-format
+msgid "two or more data types in declaration of `%s'"
+msgstr "dos o més tipus de dades en la declaració de \"%s\""
+
+#: c-decl.c:3649 cp/decl.c:10926
+#, c-format
+msgid "`%s' fails to be a typedef or built in type"
+msgstr "\"%s\" falla al ser un typedef o un tipus intern del compilador"
+
+#: c-decl.c:3688
+#, c-format
+msgid "type defaults to `int' in declaration of `%s'"
+msgstr "el tipus de dada per omissió és \"int\" en la declaració de \"%s\""
+
+#: c-decl.c:3717
+#, c-format
+msgid "both long and short specified for `%s'"
+msgstr "s'especifica long i short al mateix temps per a \"%s\""
+
+#: c-decl.c:3721 cp/decl.c:11041
+#, c-format
+msgid "long or short specified with char for `%s'"
+msgstr "s'especifica long o short amb char per a \"%s\""
+
+#: c-decl.c:3728 cp/decl.c:11045
+#, c-format
+msgid "long or short specified with floating type for `%s'"
+msgstr "s'especifica long o short amb tipus floating per a \"%s\""
+
+#: c-decl.c:3731
+msgid "the only valid combination is `long double'"
+msgstr "l'única combinació vàlida és \"long double\""
+
+#: c-decl.c:3737
+#, c-format
+msgid "both signed and unsigned specified for `%s'"
+msgstr "s'especifica signed i unsigned al mateix temps per a \"%s\""
+
+#: c-decl.c:3739 cp/decl.c:11034
+#, c-format
+msgid "long, short, signed or unsigned invalid for `%s'"
+msgstr "long, short, signed o unsigned invàlids per a \"%s\""
+
+#: c-decl.c:3745 cp/decl.c:11054
+#, c-format
+msgid "long, short, signed or unsigned used invalidly for `%s'"
+msgstr "ús invàlid de long, short, signed o unsigned per a \"%s\""
+
+#: c-decl.c:3763 cp/decl.c:11075
+#, c-format
+msgid "complex invalid for `%s'"
+msgstr "complex invàlid per a \"%s\""
+
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C90 no té suport per a tipus complexos"
+
+#: c-decl.c:3817
+msgid "ISO C does not support plain `complex' meaning `double complex'"
+msgstr "ISO C no té suport per a \"complex\" simples que signifiquen \"double complex\""
+
+#: c-decl.c:3823 c-decl.c:3835
+msgid "ISO C does not support complex integer types"
+msgstr "ISO C no dóna suport a tipus enters complexos"
+
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
+msgid "duplicate `const'"
+msgstr "\"const\" duplicat"
+
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
+msgid "duplicate `restrict'"
+msgstr "\"restrict\" duplicat"
+
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
+msgid "duplicate `volatile'"
+msgstr "\"volatile\" duplicat"
+
+#: c-decl.c:3882 cp/decl.c:11238
+#, c-format
+msgid "multiple storage classes in declaration of `%s'"
+msgstr "múltiples classes d'emmagatzematge en la declaració de \"%s\""
+
+#: c-decl.c:3892
+msgid "function definition declared `auto'"
+msgstr "la definició de la funció ho va declarar com \"auto\""
+
+#: c-decl.c:3894
+msgid "function definition declared `register'"
+msgstr "la definició de la funció ho va declarar com \"register\""
+
+#: c-decl.c:3896
+msgid "function definition declared `typedef'"
+msgstr "la definició de la funció ho va declarar com \"typedef\""
+
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "la definició de la funció ho va declarar com \"__thread\""
+
+#: c-decl.c:3911
+#, c-format
+msgid "storage class specified for structure field `%s'"
+msgstr "es va especificar una classe d'emmagatzematge per al camp de l'estructura \"%s\""
+
+#: c-decl.c:3915 cp/decl.c:11285
+#, c-format
+msgid "storage class specified for parameter `%s'"
+msgstr "es va especificar una classe d'emmagatzematge per al paràmetre \"%s\""
+
+#: c-decl.c:3918 cp/decl.c:11287
+msgid "storage class specified for typename"
+msgstr "es va especificar una classe d'emmagatzematge per al nom de tipus"
+
+#: c-decl.c:3930 cp/decl.c:11302
+#, c-format
+msgid "`%s' initialized and declared `extern'"
+msgstr "\"%s\" iniciat i declarat com \"extern\""
+
+#: c-decl.c:3932 cp/decl.c:11305
+#, c-format
+msgid "`%s' has both `extern' and initializer"
+msgstr "\"%s\" té \"extern\" i assignador de valor inicial al mateix temps"
+
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "la declaració del nivell superior de \"%s\" especifica \"auto\""
+
+#: c-decl.c:3942 cp/decl.c:11309
+#, c-format
+msgid "nested function `%s' declared `extern'"
+msgstr "la funció niada \"%s\" es va declarar \"extern\""
+
+#: c-decl.c:3948 cp/decl.c:11319
+#, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "l'àmbit de la funció \"%s\" és implícitament acte i declarada \"__thread\""
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:3987 c-decl.c:4188
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "static o qualificador de tipus en un declarador de matriu que no és parametre"
+
+#: c-decl.c:4031
+#, c-format
+msgid "declaration of `%s' as array of voids"
+msgstr "declaració de \"%s\" com una matriu de voids"
+
+#: c-decl.c:4037
+#, c-format
+msgid "declaration of `%s' as array of functions"
+msgstr "declaració de \"%s\" com una matriu de funcions"
+
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "ús invàlid de structura amb membres de matriu flexible"
+
+#: c-decl.c:4061
+#, c-format
+msgid "size of array `%s' has non-integer type"
+msgstr "la grandària de la matriu \"%s\" té un tipus no enter"
+
+#: c-decl.c:4066
+#, c-format
+msgid "ISO C forbids zero-size array `%s'"
+msgstr "ISO C prohibeix la matriu \"%s\" de grandària zero"
+
+#: c-decl.c:4073
+#, c-format
+msgid "size of array `%s' is negative"
+msgstr "la grandària de la matriu \"%s\" és negatiu"
+
+#: c-decl.c:4086
+#, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "ISO C90 prohibeix matriu \"%s\" que la seua grandària no pot ser avaluada"
+
+#: c-decl.c:4089
+#, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO C90 prohibeix la matriu \"%s\" de grandària variable"
+
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
+#, c-format
+msgid "size of array `%s' is too large"
+msgstr "la grandària de la matriu \"%s\" és massa gran"
+
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C90 no té suport per a membres de matriu flexibles"
+
+#: c-decl.c:4155
+msgid "array type has incomplete element type"
+msgstr "el tipus array té tipus d'element incomplet"
+
+#: c-decl.c:4162 c-decl.c:4392
+msgid "ISO C forbids const or volatile function types"
+msgstr "ISO C prohibeix els tipus de funció const o volatile"
+
+#: c-decl.c:4208 cp/decl.c:11445
+#, c-format
+msgid "`%s' declared as function returning a function"
+msgstr "\"%s\" que és declarat com funció retorna una funció"
+
+#: c-decl.c:4213 cp/decl.c:11450
+#, c-format
+msgid "`%s' declared as function returning an array"
+msgstr "\"%s\" que és declarat com funció retorna una matriu"
+
+#: c-decl.c:4241
+msgid "ISO C forbids qualified void function return type"
+msgstr "ISO C prohibeix el tipus qualificat de devolució d'una funció void"
+
+#: c-decl.c:4245
+msgid "type qualifiers ignored on function return type"
+msgstr "s'ignoren els calificatores de tipus en el tipus de devolució de la funció"
+
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
+msgid "ISO C forbids qualified function types"
+msgstr "ISO C prohibeix els tipus de funció qualificats"
+
+#: c-decl.c:4314 cp/decl.c:11684
+msgid "invalid type modifier within pointer declarator"
+msgstr "modificador de tipus invàlid dintre de la declaració del punter"
+
+#: c-decl.c:4412 cp/decl.c:12182
+#, c-format
+msgid "variable or field `%s' declared void"
+msgstr "variable o camp \"%s\" declarat void"
+
+#: c-decl.c:4445
+msgid "attributes in parameter array declarator ignored"
+msgstr "atributs en el declarador de parametres de matriu ignorats"
+
+#: c-decl.c:4470
+msgid "invalid type modifier within array declarator"
+msgstr "imodificador de tipus invalid dins d'un declarador de matriu"
+
+#: c-decl.c:4515
+#, c-format
+msgid "field `%s' declared as a function"
+msgstr "el camp \"%s\" es declarat com una funció"
+
+#: c-decl.c:4521
+#, c-format
+msgid "field `%s' has incomplete type"
+msgstr "el camp \"%s\" té tipus de dada incompleta"
+
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
+#, c-format
+msgid "invalid storage class for function `%s'"
+msgstr "classe d'emmagatzematge invàlida per a la funció \"%s\""
+
+#: c-decl.c:4579
+msgid "`noreturn' function returns non-void value"
+msgstr "la funció \"no return\" retorna un valor que no és void"
+
+#: c-decl.c:4594
+msgid "cannot inline function `main'"
+msgstr "no es pot fer inline la funció \"main\""
+
+#: c-decl.c:4649
+#, c-format
+msgid "variable `%s' declared `inline'"
+msgstr "la variable \"%s\" va ser declarada com \"inline\""
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "no es dóna suport a -thread local strorage en aquest objectiu"
+
+#: c-decl.c:4732 c-decl.c:5880
+msgid "function declaration isn't a prototype"
+msgstr "la declaració de la funció no és un prototip"
+
+#: c-decl.c:4738
+msgid "parameter names (without types) in function declaration"
+msgstr "noms de paràmetres (sense tipus) en la declaració de la funció"
+
+#: c-decl.c:4770 c-decl.c:6250
+#, c-format
+msgid "parameter `%s' has incomplete type"
+msgstr "el paràmetre \"%s\" té tipus de dada incompleta"
+
+#: c-decl.c:4773
+msgid "parameter has incomplete type"
+msgstr "el paràmetre té tipus incomplet"
+
+#: c-decl.c:4794
+#, c-format
+msgid "parameter `%s' points to incomplete type"
+msgstr "el paràmetre \"%s\" apunta a un tipus incomplet"
+
+#: c-decl.c:4797
+msgid "parameter points to incomplete type"
+msgstr "el paràmetre punta a un tipus incomplet"
+
+#: c-decl.c:4862
+#, c-format
+msgid "parameter `%s' has just a forward declaration"
+msgstr "el paràmetre \"%s\" només té una declaració posterior"
+
+#: c-decl.c:4903
+msgid "`void' in parameter list must be the entire list"
+msgstr "\"void\" en la llista de paràmetres deu ser la llista completa"
+
+#: c-decl.c:4934
+#, c-format
+msgid "`struct %s' declared inside parameter list"
+msgstr "\"struct %s\" declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4937
+#, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr "\"union %s\" declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4940
+#, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr "\"enum %s\" declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4947
+msgid "anonymous struct declared inside parameter list"
+msgstr "struct anònim declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4949
+msgid "anonymous union declared inside parameter list"
+msgstr "union anònim declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4951
+msgid "anonymous enum declared inside parameter list"
+msgstr "enum anònim declarat dintre d'una llista de paràmetres"
+
+#: c-decl.c:4955
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "el seu àmbit és solament aquesta definició o declaració, la qual cosa probablement no sigui el que desitja."
+
+#: c-decl.c:5032
+#, c-format
+msgid "redefinition of `union %s'"
+msgstr "redefinició de \"union %s\""
+
+#: c-decl.c:5034
+#, c-format
+msgid "redefinition of `struct %s'"
+msgstr "redefinició de \"struct %s\""
+
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "la declaració no declara res"
+
+#: c-decl.c:5169 c-decl.c:5172
+#, c-format
+msgid "%s defined inside parms"
+msgstr "es va definir %s dintre dels paràmetres"
+
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
+msgid "union"
+msgstr "unió"
+
+#: c-decl.c:5170 c-decl.c:5173
+msgid "structure"
+msgstr "estructura"
+
+#: c-decl.c:5183
+#, c-format
+msgid "%s has no %s"
+msgstr "%s no té %s"
+
+#: c-decl.c:5184
+msgid "struct"
+msgstr "struct"
+
+#: c-decl.c:5185
+msgid "named members"
+msgstr "membres nomenats"
+
+#: c-decl.c:5185
+msgid "members"
+msgstr "membres"
+
+#: c-decl.c:5224
+#, c-format
+msgid "nested redefinition of `%s'"
+msgstr "redefinició niada de \"%s\""
+
+#: c-decl.c:5237
+#, c-format
+msgid "bit-field `%s' width not an integer constant"
+msgstr "l'amplària del camp de bits \"%s\" no és una constant entera"
+
+#: c-decl.c:5248
+#, c-format
+msgid "bit-field `%s' has invalid type"
+msgstr "el camp de bits \"%s\" té un tipus invàlid"
+
+#: c-decl.c:5260
+#, c-format
+msgid "bit-field `%s' type invalid in ISO C"
+msgstr "el tipus de camp de bit \"%s\" és invàlid en ISO C"
+
+#: c-decl.c:5271
+#, c-format
+msgid "negative width in bit-field `%s'"
+msgstr "amplària negativa en el camp de bit \"%s\""
+
+#: c-decl.c:5273
+#, c-format
+msgid "width of `%s' exceeds its type"
+msgstr "l'amplària de \"%s\" excedeix el seu tipus"
+
+#: c-decl.c:5275
+#, c-format
+msgid "zero width for bit-field `%s'"
+msgstr "amplària zero per al camp de bits \"%s\""
+
+#: c-decl.c:5289
+#, c-format
+msgid "`%s' is narrower than values of its type"
+msgstr "\"%s\" és més estret que els valors del seu tipus"
+
+#: c-decl.c:5323
+msgid "flexible array member in union"
+msgstr "membre de matriu flexible en el union"
+
+#: c-decl.c:5325
+msgid "flexible array member not at end of struct"
+msgstr "el membre de matriu flexible no està al final del struct"
+
+#: c-decl.c:5327
+msgid "flexible array member in otherwise empty struct"
+msgstr "el membre de matriu flexible seria d'altra manera un struct buit"
+
+#: c-decl.c:5357
+#, c-format
+msgid "duplicate member `%s'"
+msgstr "membre duplicat \"%s\""
+
+#: c-decl.c:5448
+msgid "union cannot be made transparent"
+msgstr "union no es pot fer transparent"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5558
+#, c-format
+msgid "redeclaration of `enum %s'"
+msgstr "redeclaració de \"enum %s\""
+
+#: c-decl.c:5592
+msgid "enum defined inside parms"
+msgstr "enum definit dintre dels paràmetres"
+
+#: c-decl.c:5625
+msgid "enumeration values exceed range of largest integer"
+msgstr "els valors d'enumeració excedeixen el rang de l'enter més gran"
+
+#: c-decl.c:5734
+#, c-format
+msgid "enumerator value for `%s' not integer constant"
+msgstr "el valor de enumerator per a \"%s\" no és una constant entera"
+
+#: c-decl.c:5747
+msgid "overflow in enumeration values"
+msgstr "desbordament en valors d'enumeració"
+
+#: c-decl.c:5752
+msgid "ISO C restricts enumerator values to range of `int'"
+msgstr "ISO C restringeix els valors d'enumeració al rang de \"int\""
+
+#: c-decl.c:5834
+msgid "return type is an incomplete type"
+msgstr "el tipus de devolució és un tipus de dada incompleta"
+
+#: c-decl.c:5842
+msgid "return type defaults to `int'"
+msgstr "el tipus de devolució per omissió és \"int\""
+
+#: c-decl.c:5889
+#, c-format
+msgid "no previous prototype for `%s'"
+msgstr "no hi ha un prototip previ per a \"%s\""
+
+#: c-decl.c:5896
+#, c-format
+msgid "`%s' was used with no prototype before its definition"
+msgstr "es va usar \"%s\" sense prototip abans de la seva definició"
+
+#: c-decl.c:5902
+#, c-format
+msgid "no previous declaration for `%s'"
+msgstr "no hi ha declaració prèvia per a \"%s\""
+
+#: c-decl.c:5909
+#, c-format
+msgid "`%s' was used with no declaration before its definition"
+msgstr "es va usar \"%s\" sense prototip abans de la seva definició"
+
+#: c-decl.c:5933 c-decl.c:6486
+#, c-format
+msgid "return type of `%s' is not `int'"
+msgstr "el tipus de devolució de \"%s\" no és \"int\""
+
+#: c-decl.c:5949
+#, c-format
+msgid "first argument of `%s' should be `int'"
+msgstr "el primer argument de \"%s\" deu ser \"int\""
+
+#: c-decl.c:5958
+#, c-format
+msgid "second argument of `%s' should be `char **'"
+msgstr "el segon argument de \"%s\" deu ser \"char **\""
+
+#: c-decl.c:5967
+#, c-format
+msgid "third argument of `%s' should probably be `char **'"
+msgstr "el tercer argument de \"%s\" deuria ser \"char **\""
+
+#: c-decl.c:5976
+#, c-format
+msgid "`%s' takes only zero or two arguments"
+msgstr "\"%s\" només pren zero o dos arguments"
+
+#: c-decl.c:5979
+#, c-format
+msgid "`%s' is normally a non-static function"
+msgstr "\"%s\" generalment és una funció no estàtica"
+
+#: c-decl.c:6077
+msgid "parm types given both in parmlist and separately"
+msgstr "es van donar els tipus dels paràmetres en la llista de paràmetres i per separat"
+
+#: c-decl.c:6098
+msgid "parameter name omitted"
+msgstr "es va ometre el nom del paràmetre"
+
+#: c-decl.c:6102 c-decl.c:6204
+#, c-format
+msgid "parameter `%s' declared void"
+msgstr "el paràmetre \"%s\" es va declarar void"
+
+#: c-decl.c:6178
+msgid "parameter name missing from parameter list"
+msgstr "falta el nom del paràmetre de la llista de paràmetres"
+
+#: c-decl.c:6197
+#, c-format
+msgid "multiple parameters named `%s'"
+msgstr "múltiples paràmetres nomenats \"%s\""
+
+#: c-decl.c:6219 c-decl.c:6221
+#, c-format
+msgid "type of `%s' defaults to `int'"
+msgstr "el tipus de \"%s\" és \"int\" per omissió"
+
+#: c-decl.c:6257
+#, c-format
+msgid "declaration for parameter `%s' but no such parameter"
+msgstr "existeix la declaració per al paràmetre \"%s\" però no hi ha tal paràmetre"
+
+#: c-decl.c:6305
+msgid "number of arguments doesn't match prototype"
+msgstr "el nombre d'arguments no coincideixen amb el prototip"
+
+#: c-decl.c:6335
+#, c-format
+msgid "promoted argument `%s' doesn't match prototype"
+msgstr "l'argument promogut \"%s\" no coincideix amb el prototip"
+
+#: c-decl.c:6345
+#, c-format
+msgid "argument `%s' doesn't match prototype"
+msgstr "l'argument \"%s\" no coincideix amb el prototip"
+
+#: c-decl.c:6518 cp/decl.c:15049
+msgid "no return statement in function returning non-void"
+msgstr "no hi ha una declaració de devolució en una funció que retorna non-void"
+
+#: c-decl.c:6525
+msgid "this function may return with or without a value"
+msgstr "aquesta funció pot retornar amb o sense un valor"
+
+#: c-decl.c:6729
+#, c-format
+msgid "size of return value of `%s' is %u bytes"
+msgstr "la grandària del valor de devolució de \"%s\" és de %u octets"
+
+#: c-decl.c:6733
+#, c-format
+msgid "size of return value of `%s' is larger than %d bytes"
+msgstr "la grandària del valor de devolució de \"%s\" és més gran que %d octets"
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c-decl.c:6791
+msgid "`for' loop initial declaration used outside C99 mode"
+msgstr "es va usar la declaració inicial del cicle \"for\" fora de la manera C99"
+
+#: c-decl.c:6815
+#, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr "\"struct %s\" declarat en la declaració inicial del cicle \"for\""
+
+#: c-decl.c:6818
+#, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr "\"union %s\" declarat en la declaració inicial del cicle \"for\""
+
+#: c-decl.c:6821
+#, c-format
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr "\"enum %s\" declarat en la declaració inicial del cicle \"for\""
+
+#: c-decl.c:6829
+#, c-format
+msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+msgstr "declaració de \"%s\" que no és variable en la declaració inicial del cicle \"for\""
+
+#: c-decl.c:6831
+#, c-format
+msgid "declaration of static variable `%s' in `for' loop initial declaration"
+msgstr "declaració de la variable static \"%s\" en la declaració inicial del cicle \"for\""
+
+#: c-decl.c:6833
+#, c-format
+msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+msgstr "declaració de la variable \"extern\" \"%s\" en la declaració inicial del cicle `for\""
+
+#: c-format.c:109 c-format.c:191
+msgid "format string arg not a string type"
+msgstr "l'argument de la cadena de format no és del tipus cadena de text"
+
+#: c-format.c:124
+msgid "args to be formatted is not '...'"
+msgstr "els arguments que rebran format no són \"...\""
+
+#: c-format.c:133
+msgid "strftime formats cannot format arguments"
+msgstr "els formats de strftime no poden donar format als arguments"
+
+#: c-format.c:168 c-format.c:270
+msgid "format string has invalid operand number"
+msgstr "la cadena de format té un nombre d'operadors invàlid"
+
+#: c-format.c:202
+msgid "function does not return string type"
+msgstr "la funció no retorna un tipus string"
+
+#: c-format.c:233
+msgid "unrecognized format specifier"
+msgstr "no es reconeix el especificador de format"
+
+#: c-format.c:246
+#, c-format
+msgid "`%s' is an unrecognized format function type"
+msgstr "\"%s\" és un format de tipus de funció no reconegut"
+
+#: c-format.c:280
+msgid "format string arg follows the args to be formatted"
+msgstr "l'argument de la cadena de format segueix als arguments que rebran format"
+
+#: c-format.c:601
+msgid "` ' flag"
+msgstr "opció \" \""
+
+#: c-format.c:601
+msgid "the ` ' printf flag"
+msgstr "l'opció de printf \" \""
+
+#: c-format.c:602 c-format.c:673
+msgid "`+' flag"
+msgstr "opció \"+\""
+
+#: c-format.c:602
+msgid "the `+' printf flag"
+msgstr "l'opció \"+\" de printf"
+
+#: c-format.c:603 c-format.c:649
+msgid "`#' flag"
+msgstr "opció \"#\""
+
+#: c-format.c:603
+msgid "the `#' printf flag"
+msgstr "l'opció \"#\" de printf"
+
+#: c-format.c:604 c-format.c:647
+msgid "`0' flag"
+msgstr "opció \"0\""
+
+#: c-format.c:604
+msgid "the `0' printf flag"
+msgstr "l'opció \"0\" de printf"
+
+#: c-format.c:605 c-format.c:646 c-format.c:676
+msgid "`-' flag"
+msgstr "opció \"-\""
+
+#: c-format.c:605
+msgid "the `-' printf flag"
+msgstr "l'opció \"-\" de printf"
+
+#: c-format.c:606 c-format.c:630
+msgid "`'' flag"
+msgstr "opció \"'\""
+
+#: c-format.c:606
+msgid "the `'' printf flag"
+msgstr "l'opció \"'\" de printf"
+
+#: c-format.c:607 c-format.c:631
+msgid "`I' flag"
+msgstr "opció \"I\""
+
+#: c-format.c:607
+msgid "the `I' printf flag"
+msgstr "l'opció \"I\" de printf"
+
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
+msgid "field width"
+msgstr "amplària de camp"
+
+#: c-format.c:608
+msgid "field width in printf format"
+msgstr "amplària de camp en format printf"
+
+#: c-format.c:609
+msgid "precision"
+msgstr "precisió"
+
+#: c-format.c:609
+msgid "precision in printf format"
+msgstr "precisió en format printf"
+
+#: c-format.c:610 c-format.c:629 c-format.c:680
+msgid "length modifier"
+msgstr "modificador de longitud"
+
+#: c-format.c:610
+msgid "length modifier in printf format"
+msgstr "modificador de longitud en format printf"
+
+#: c-format.c:626
+msgid "assignment suppression"
+msgstr "supressió de l'assignació"
+
+#: c-format.c:626
+msgid "the assignment suppression scanf feature"
+msgstr "la supressió de l'assignació és una característica de scanf"
+
+#: c-format.c:627
+msgid "`a' flag"
+msgstr "opció \"a\""
+
+#: c-format.c:627
+msgid "the `a' scanf flag"
+msgstr "l'opció \"a\" de scanf"
+
+#: c-format.c:628
+msgid "field width in scanf format"
+msgstr "amplària de camp en format scanf"
+
+#: c-format.c:629
+msgid "length modifier in scanf format"
+msgstr "modificador de longitud en format scanf"
+
+#: c-format.c:630
+msgid "the `'' scanf flag"
+msgstr "l'opció \"'\" de scanf"
+
+#: c-format.c:631
+msgid "the `I' scanf flag"
+msgstr "l'opció \"I\" de scanf"
+
+#: c-format.c:645
+msgid "`_' flag"
+msgstr "l'opció \"_\""
+
+#: c-format.c:645
+msgid "the `_' strftime flag"
+msgstr "l'opció \"_\" de strftime"
+
+#: c-format.c:646
+msgid "the `-' strftime flag"
+msgstr "l'opció \"-\" de strftime"
+
+#: c-format.c:647
+msgid "the `0' strftime flag"
+msgstr "l'opció \"0\" de strftime"
+
+#: c-format.c:648 c-format.c:672
+msgid "`^' flag"
+msgstr "opció \"^\""
+
+#: c-format.c:648
+msgid "the `^' strftime flag"
+msgstr "l'opció \"^\" de strftime"
+
+#: c-format.c:649
+msgid "the `#' strftime flag"
+msgstr "l'opció \"#\" de strftime"
+
+#: c-format.c:650
+msgid "field width in strftime format"
+msgstr "amplària de camp en format strftime"
+
+#: c-format.c:651
+msgid "`E' modifier"
+msgstr "modificador \"E\""
+
+#: c-format.c:651
+msgid "the `E' strftime modifier"
+msgstr "el modificador \"E\" de strftime"
+
+#: c-format.c:652
+msgid "`O' modifier"
+msgstr "modificador \"O\""
+
+#: c-format.c:652
+msgid "the `O' strftime modifier"
+msgstr "el modificador \"O\" de strftime"
+
+#: c-format.c:653
+msgid "the `O' modifier"
+msgstr "el modificador \"O\""
+
+#: c-format.c:671
+msgid "fill character"
+msgstr "caràcter de farciment"
+
+#: c-format.c:671
+msgid "fill character in strfmon format"
+msgstr "caràcter de farciment en format strfmon"
+
+#: c-format.c:672
+msgid "the `^' strfmon flag"
+msgstr "l'opció \"^\" de strfmon"
+
+#: c-format.c:673
+msgid "the `+' strfmon flag"
+msgstr "l'opció \"+\" de strfmon"
+
+#: c-format.c:674
+msgid "`(' flag"
+msgstr "opció \"(\""
+
+#: c-format.c:674
+msgid "the `(' strfmon flag"
+msgstr "l'opció \"(\" de strfmon"
+
+#: c-format.c:675
+msgid "`!' flag"
+msgstr "opció \"!\""
+
+#: c-format.c:675
+msgid "the `!' strfmon flag"
+msgstr "l'opció \"!\" de strfmon"
+
+#: c-format.c:676
+msgid "the `-' strfmon flag"
+msgstr "l'opció \"-\" de strfmon"
+
+#: c-format.c:677
+msgid "field width in strfmon format"
+msgstr "amplària de camp en format strfmon"
+
+#: c-format.c:678
+msgid "left precision"
+msgstr "precisió esquerra"
+
+#: c-format.c:678
+msgid "left precision in strfmon format"
+msgstr "precisió esquerra en format strfmon"
+
+#: c-format.c:679
+msgid "right precision"
+msgstr "precisió de dreta"
+
+#: c-format.c:679
+msgid "right precision in strfmon format"
+msgstr "precisió de dreta en format strfmon"
+
+#: c-format.c:680
+msgid "length modifier in strfmon format"
+msgstr "modificador de longitud en format strfmon"
+
+#: c-format.c:983
+#, c-format
+msgid "function might be possible candidate for `%s' format attribute"
+msgstr "la funció pot ser un candidat possible per a l'atribut de format \"%s\""
+
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
+msgid "missing $ operand number in format"
+msgstr "falta l'operant numèric $ en el format"
+
+#: c-format.c:1138
+#, c-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%s no té suport per a l'operant de format de nombre %%n$"
+
+#: c-format.c:1145
+msgid "operand number out of range in format"
+msgstr "operant numèric fora de rang en el format"
+
+#: c-format.c:1168
+#, c-format
+msgid "format argument %d used more than once in %s format"
+msgstr "s'usa més d'una vegada l'argument de format %d en el format %s"
+
+#: c-format.c:1218
+#, c-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr "no s'usa l'argument de format %d abans d'usar l'argument %d en el format $-style"
+
+#: c-format.c:1322
+msgid "format not a string literal, format string not checked"
+msgstr "el format no és una cadena literal, no es va revisar la cadena de format"
+
+#: c-format.c:1336
+msgid "format not a string literal and no format arguments"
+msgstr "el format no és una cadena literal i no té arguments de format"
+
+#: c-format.c:1338
+msgid "format not a string literal, argument types not checked"
+msgstr "el format no és una cadena literal, no es van revisar els tipus d'argument"
+
+#: c-format.c:1351
+msgid "too many arguments for format"
+msgstr "massa arguments per al format"
+
+#: c-format.c:1354
+msgid "unused arguments in $-style format"
+msgstr "no es van usar arguments en el format d'estil-$"
+
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "cadena de format %s de longitud zero"
+
+#: c-format.c:1361
+msgid "format is a wide character string"
+msgstr "el format és una cadena de caràcter ampla"
+
+#: c-format.c:1364
+msgid "unterminated format string"
+msgstr "constant de format sense acabar"
+
+#: c-format.c:1581
+msgid "embedded `\\0' in format"
+msgstr "\"\\0\" incrustat en el format"
+
+#: c-format.c:1596
+#, c-format
+msgid "spurious trailing `%%' in format"
+msgstr "\"%%\" final espuri en el format"
+
+#: c-format.c:1635 c-format.c:1872
+#, c-format
+msgid "repeated %s in format"
+msgstr "es va repetir %s en el format"
+
+#: c-format.c:1648
+msgid "missing fill character at end of strfmon format"
+msgstr "falta el caràcter de farciment al final del format strfmon"
+
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
+msgid "too few arguments for format"
+msgstr "molt pocs arguments per al format"
+
+#: c-format.c:1728
+#, c-format
+msgid "zero width in %s format"
+msgstr "amplària zero en el format %s"
+
+#: c-format.c:1747
+#, c-format
+msgid "empty left precision in %s format"
+msgstr "precisió esquerra buida en el format %s"
+
+#: c-format.c:1801
+msgid "field precision"
+msgstr "precisió del camp"
+
+#: c-format.c:1816
+#, c-format
+msgid "empty precision in %s format"
+msgstr "precisió buida en el format %s"
+
+#: c-format.c:1856
+#, c-format
+msgid "%s does not support the `%s' %s length modifier"
+msgstr "%s no té suport per al modificador de longitud %s \"%s\""
+
+#: c-format.c:1906
+msgid "conversion lacks type at end of format"
+msgstr "la conversió manca de tipus al final del format"
+
+#: c-format.c:1917
+#, c-format
+msgid "unknown conversion type character `%c' in format"
+msgstr "es desconeix el caràcter de tipus de conversió \"%c\" en el format"
+
+#: c-format.c:1920
+#, c-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "es desconeix el caràcter de tipus de conversió 0x%x en el format"
+
+#: c-format.c:1927
+#, c-format
+msgid "%s does not support the `%%%c' %s format"
+msgstr "%s no té suport per al format \"%%%c\" %s"
+
+#: c-format.c:1943
+#, c-format
+msgid "%s used with `%%%c' %s format"
+msgstr "es va usar %s amb el format \"%%%c\" %s"
+
+#: c-format.c:1952
+#, c-format
+msgid "%s does not support %s"
+msgstr "%s no té suport per a %s"
+
+#: c-format.c:1961
+#, c-format
+msgid "%s does not support %s with the `%%%c' %s format"
+msgstr "%s no té suport per a %s amb el format \"%%%c\" %s"
+
+#: c-format.c:1994
+#, c-format
+msgid "%s ignored with %s and `%%%c' %s format"
+msgstr "s'ignora %s amb %s i el format \"%%%c\" %s"
+
+#: c-format.c:1998
+#, c-format
+msgid "%s ignored with %s in %s format"
+msgstr "s'ignora %s amb %s en el format %s"
+
+#: c-format.c:2004
+#, c-format
+msgid "use of %s and %s together with `%%%c' %s format"
+msgstr "ús de %s i %s juntament amb el format \"%%%c\" %s"
+
+#: c-format.c:2008
+#, c-format
+msgid "use of %s and %s together in %s format"
+msgstr "ús de %s i %s junts en el format %s"
+
+#: c-format.c:2027
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year in some locales"
+msgstr "\"%%%c\" només produeix els dos últims dígits de l'any en alguns llocs"
+
+#: c-format.c:2030
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year"
+msgstr "\"%%%c\" només produeix els dos últims dígits de l'any"
+
+#. The end of the format string was reached.
+#: c-format.c:2046
+#, c-format
+msgid "no closing `]' for `%%[' format"
+msgstr "no hi ha un \"]\" que tancament per al format \"%%[\""
+
+#: c-format.c:2059
+#, c-format
+msgid "use of `%s' length modifier with `%c' type character"
+msgstr "ús del modificador de longitud \"%s\" amb el caràcter de tipus \"%c\""
+
+#: c-format.c:2080
+#, c-format
+msgid "%s does not support the `%%%s%c' %s format"
+msgstr "%s no té suport per al format \"%%%s%c\" %s"
+
+#: c-format.c:2095
+msgid "operand number specified with suppressed assignment"
+msgstr "nombre d'operadors especificat amb assignació suprimida"
+
+#: c-format.c:2097
+msgid "operand number specified for format taking no argument"
+msgstr "el nombre de operades especificats per al format no pren arguments"
+
+#: c-format.c:2211
+#, c-format
+msgid "writing through null pointer (arg %d)"
+msgstr "escrivint a través d'un punter nul (argument %d)"
+
+#: c-format.c:2220
+#, c-format
+msgid "reading through null pointer (arg %d)"
+msgstr "llegint a través d'un punter nul (argument %d)"
+
+#: c-format.c:2240
+#, c-format
+msgid "writing into constant object (arg %d)"
+msgstr "escrivint en un objecte constant (argument %d)"
+
+#: c-format.c:2250
+#, c-format
+msgid "extra type qualifiers in format argument (arg %d)"
+msgstr "qualificadores de tipus extra en l'argument de format (argument %d)"
+
+#: c-format.c:2257
+#, c-format
+msgid "format argument is not a pointer (arg %d)"
+msgstr "l'argument de format no és un punter (argument %d)"
+
+#: c-format.c:2259
+#, c-format
+msgid "format argument is not a pointer to a pointer (arg %d)"
+msgstr "l'argument de format no és un punter a un punter (argument %d)"
+
+#: c-format.c:2330
+msgid "pointer"
+msgstr "punter"
+
+#: c-format.c:2332
+msgid "different type"
+msgstr "diferents tipus"
+
+#: c-format.c:2353
+#, c-format
+msgid "%s is not type %s (arg %d)"
+msgstr "%s no és del tipus %s (argument %d)"
+
+#: c-format.c:2356
+#, c-format
+msgid "%s format, %s arg (arg %d)"
+msgstr "format %s, argument %s (argument %d)"
+
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "no es va definir YYDEBUG"
+
+#: c-lex.c:293
+msgid "badly nested C headers from preprocessor"
+msgstr "encapçalats C mal niats del preprocessador"
+
+#: c-lex.c:336
+#, c-format
+msgid "ignoring #pragma %s %s"
+msgstr "ignorant el #pragma %s %s"
+
+#: c-lex.c:386
+#, c-format
+msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgstr "universal-character-name \"\\U%08x\" no és vàlid en l'identificador"
+
+#: c-lex.c:632
+#, c-format
+msgid "universal-character-name '\\u%04x' not valid in identifier"
+msgstr "universal-character-name \"\\u%04x\" no és vàlid en l'identificador"
+
+#: c-lex.c:695
+#, c-format
+msgid "stray '%c' in program"
+msgstr "\"%c\" paràsit en el programa"
+
+#: c-lex.c:697
+#, c-format
+msgid "stray '\\%o' in program"
+msgstr "\"\\%o\" paràsit en el programa"
+
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "aquesta constant decimal només és unsigned en ISO C90"
+
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "aquesta constant decimal serà unsigned en ISO C90 "
+
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "la constant entera és massa gran pel tipus \"%s\""
+
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "la constant de coma flotant excedeix el rang de \"%s\""
+
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "ignorant els caràcters multibyte invàlids"
+
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Falten arguments per a \"-%s\""
+
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "no classes especificades amb \"-%s\""
+
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "nom de fitxer faltant deprés de \"-%s\""
+
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "falta l'objectiu després de \"-%s\""
+
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "opcions de matriu ordenades incorrectament: %s està abans de %s"
+
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "massa noms de fitxers. Teclegi %s --help per a informació d'ùs"
+
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "no és dona suport a -Wno-strict-prototypes en C++"
+
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "el switch \"%s\" ja no té suport"
+
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "el switch \"%s\" és obsolet, per favor vegi la documentació per a més detalls"
+
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "es va re-nomenar -fhandle-exceptions a -fexceptions (i ara està activat per defecte)"
+
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "nom de fitxer de sortida especificat dues vegades"
+
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "s'ignora -Wformat-y2k sense -Wformat"
+
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "s'ignora -Wformat-extra-args sense -Wformat"
+
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "s'ignora -Wformat-zero-length sense -Wformat"
+
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "s'ignora -Wformat-nonliteral sense -Wformat"
+
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "s'ignora -Wformat-security sense -Wformat"
+
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "s'ignora -Wformat-attribute sense -Wformat"
+
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
+msgstr "obrint el fitxer de sortida %s"
+
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr "obrint el fitxer de dependències %s"
+
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "tancant el fitxer de dependències %s"
+
+#: c-opts.c:1487
+#, c-format
+msgid "when writing output to %s"
+msgstr "a l'escriure a %s"
+
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "per a generar dependències deu especificar -M o -MM"
+
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "\"-%c%s%s\" és vàlida per a %s però no per a %s"
+
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"Interruptors:\n"
+" -include <fitxer> Inclou el contingut de <fitxer> abans altres fitxers\n"
+" -imacros <fitxer> Accepta la definició de macros en <fitxer>\n"
+" -iprefix <camí> Especifica <camí> com a prefix per a les dues opcions\n"
+" següentes\n"
+" -iwithprefix <dir> Afegeix <dir> al final del camí d'inclusió del sistema\n"
+" -iwithprefixbefore <dir> Afegeix <dir> al final del camí d'inclusió principal\n"
+" -isystem <dir> Afegeix <dir> a l'inicí del camí d'inclusió del sistema\n"
+
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter <dir> Afegeix <dir> al final del camí d'inclusió del sistema\n"
+" -I <dir> Afegeix <dir> al final del camí d'inclusió principal\n"
+" -I- afinar el control del camí d'inclusió; consulta la doc\n"
+" -nostdinc No cerca els directoris d'inclusió\n"
+" (dirs especificats amb -isystem seran encara utilitzats)\n"
+" -nostdinc++ No cerca els directoris d'inclusió per a C++\n"
+" -o <fitxer> Posa la sortida en <fitxer>\n"
+
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs Permetre trigrafes ISO/ C\n"
+" -std=<nom std> Especificar el estándard de concordança; una de:\n"
+" gnu89, gnu99, c89, c99, iso/9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibir els missatges d'avís\n"
+" -W[no-]trigraphs Avisar si es troben trigrafes\n"
+" -W[no-]comment{s} Avisar si un comentari inicia dintre d'altre\n"
+
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Avisar a propòsit de funccionalitats que no\n"
+" són presentes en tradicional C\n"
+" -W[no-]undef Avisar si #if utilitza una macro no definida\n"
+" -W[no-]import Avisar a propòsit de l'ùs de directives #import\n"
+
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error Tractar tots els avís com a errors\n"
+" -W[no-]system-headers No supprimir les avís de les capçaleres sistema\n"
+" -W[no-]all Autoritzar tots els avís del preprocessador\n"
+
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M Generar les dependencies de make\n"
+" -MM Com -M, però ignorales capçaleres sistema\n"
+" -MD Generar les dependencies de make i compilar\n"
+" -MMD Com -MD, però ignorales capçaleres sistema\n"
+" -MF <fitxer> Escriu les dependencies de sortida a el fitxer donat\n"
+" -MG Tractar les fitxers de capçalera com a fitxers generats\n"
+
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Generar objectius facticis per a totes les capçaleres\n"
+" -MQ <objectiu> Afegir un objectiu MAKE-quoted\n"
+" -MT <objectiu> Afegir un objectiu sense parèntesis\n"
+
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<macro> Definir una <macro> amb la cadena '1' com valor\n"
+" -D<macro>=<val> Definir una <macro> amb <val> com valor\n"
+" -A<pregunta>=<resposta> Associar <resposta> a <pregunta>\n"
+" -A-<pregunta>=<resposta> Dissociar <resposta> de <pregunta>\n"
+" -U<macro> Només definir <macro> \n"
+" -v Mostrar el numero de versió\n"
+
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Mostrar les noms de fitxers de capçalera quan estan utilitzats\n"
+" -C Posar les comentaris de costat\n"
+" -dM Mostrar al final una llista de les definicions de macro actives\n"
+" -dD Preservar les definicions de macro a la sortida\n"
+" -dN Com -dD excepte nomès les noms són preservats\n"
+" -dI Incloure les directives #include a la sortida\n"
+
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Tractar el fitxer d'entrada com a ja preprocessat\n"
+" -ftabstop=<nombre> Seleccionar l'amplitud de tabulació per a les rapports\n"
+" -P No generar directives #line\n"
+" -remap Remapar les noms de fitxer quan s'inclouen fitxers\n"
+" -help Mostra aquesta informació\n"
+
+#. Like YYERROR but do call yyerror.
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
+msgid "syntax error"
+msgstr "error sintàctic"
+
+#: /usr/share/bison/bison.simple:179
+msgid "syntax error: cannot back up"
+msgstr "error sintàctic: no es pot regressar"
+
+#: c-parse.y:325 objc-parse.y:346
+msgid "ISO C forbids an empty source file"
+msgstr "ISO C prohibeix un fitxer font buit"
+
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
+msgid "argument of `asm' is not a constant string"
+msgstr "l'argument de \"asm\" no és una cadena constant"
+
+#: c-parse.y:374 objc-parse.y:396
+msgid "ISO C forbids data definition with no type or storage class"
+msgstr "ISO C prohibeix la definició de dades sense tipus o classe d'emmagatzematge"
+
+#: c-parse.y:376 objc-parse.y:398
+msgid "data definition has no type or storage class"
+msgstr "la definició de dades no té tipus o classe d'emmagatzematge"
+
+#: c-parse.y:389 objc-parse.y:411
+msgid "ISO C does not allow extra `;' outside of a function"
+msgstr "ISO C no permet \";\" extra fora d'una funció"
+
+#: c-parse.y:449 cppexp.c:1312
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rebutja l'operador unari mes"
+
+#: c-parse.y:496 objc-parse.y:518
+msgid "`sizeof' applied to a bit-field"
+msgstr "\"sizeof\" aplicat a un camp de bits"
+
+#: c-parse.y:583 objc-parse.y:605
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "ISO C prohibeix l'omissió del terme mig d'una expressió ?:"
+
+#: c-parse.y:632 objc-parse.y:654
+msgid "ISO C89 forbids compound literals"
+msgstr "ISO C89 prohibeix les literals compostoses"
+
+#: c-parse.y:646 objc-parse.y:668
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "ISO C prohibeix grups de claus dintre d'expressions"
+
+#: c-parse.y:677 objc-parse.y:699
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "el primer argument per a __builtin_choose_expr no és una constant"
+
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "C tradicional rebutja la definició de funcions d'estil ISO·C"
+
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
+#, c-format
+msgid "`%s' is not at beginning of declaration"
+msgstr "\"%s\" no està en l'inici de la declaració"
+
+#: c-parse.y:1441 objc-parse.y:1496
+msgid "ISO C forbids empty initializer braces"
+msgstr "ISO C prohibeix les claus de iniciador buides"
+
+#: c-parse.y:1455 objc-parse.y:1510
+msgid "ISO C89 forbids specifying subobject to initialize"
+msgstr "ISO C89 prohibeix l'especificació de subobjectes a iniciar"
+
+#: c-parse.y:1458 objc-parse.y:1513
+msgid "obsolete use of designated initializer without `='"
+msgstr "ús obsolet del iniciador designat sense \"=\""
+
+#: c-parse.y:1462 objc-parse.y:1517
+msgid "obsolete use of designated initializer with `:'"
+msgstr "ús obsolet del iniciador designat amb \":\""
+
+#: c-parse.y:1489 objc-parse.y:1544
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "ISO C prohibeix l'especificació de rangs d'elements a iniciar"
+
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
+msgid "ISO C forbids nested functions"
+msgstr "ISO C prohibeix les funcions niades"
+
+#: c-parse.y:1703 objc-parse.y:1760
+msgid "ISO C forbids forward references to `enum' types"
+msgstr "ISO C prohibeix les declaracions posteriors per a tipus \"enum\""
+
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
+msgid "comma at end of enumerator list"
+msgstr "coma al final de la llista de numeradors"
+
+#: c-parse.y:1723 objc-parse.y:1780
+msgid "no semicolon at end of struct or union"
+msgstr "no hi ha punt i coma al final del struct o union"
+
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
+msgid "extra semicolon in struct or union specified"
+msgstr "es va especificar un punt i coma extra en un struct o union"
+
+#: c-parse.y:1745 objc-parse.y:1816
+msgid "ISO C doesn't support unnamed structs/unions"
+msgstr "ISO C no té suport per a structs/unions sense nom"
+
+#: c-parse.y:1754 objc-parse.y:1825
+msgid "ISO C forbids member declarations with no members"
+msgstr "ISO C prohibeix declaracions de membres sense membres"
+
+#: c-parse.y:1913 objc-parse.y:1984
+msgid "deprecated use of label at end of compound statement"
+msgstr "ús depreciada de l'etiqueta al final de la declaració compostosa"
+
+#: c-parse.y:1930 objc-parse.y:2001
+msgid "ISO C89 forbids mixed declarations and code"
+msgstr "ISO C89 prohibeix les declaracions barrejades i codi"
+
+#: c-parse.y:2005 objc-parse.y:2080
+msgid "ISO C forbids label declarations"
+msgstr "ISO C prohibeix les declaracions etiquetades"
+
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
+msgid "braced-group within expression allowed only inside a function"
+msgstr "un grup de claus dintre d'una expressió només es permet dintre d'una funció"
+
+#: c-parse.y:2182 objc-parse.y:2257
+msgid "empty body in an else-statement"
+msgstr "cos buit en una declaració else"
+
+#: c-parse.y:2303 objc-parse.y:2378
+msgid "ISO C forbids `goto *expr;'"
+msgstr "ISO C prohibeix \"goto *expr;\""
+
+#: c-parse.y:2403 objc-parse.y:2478
+msgid "ISO C forbids forward parameter declarations"
+msgstr "ISO C prohibeix declaracions avançades de paràmetres"
+
+#. Gcc used to allow this as an extension. However, it does
+#. not work for all targets, and thus has been disabled.
+#. Also, since func (...) and func () are indistinguishable,
+#. it caused problems with the code in expand_builtin which
+#. tries to verify that BUILT_IN_NEXT_ARG is being used
+#. correctly.
+#: c-parse.y:2429 objc-parse.y:2504
+msgid "ISO C requires a named argument before `...'"
+msgstr "ISO C requereix un argument amb nom abans de \"...\""
+
+#: c-parse.y:2526 objc-parse.y:2601
+msgid "`...' in old-style identifier list"
+msgstr "\"...\" en una llista d'identificadors d'estil antic"
+
+#: /usr/share/bison/bison.simple:795
+msgid "parse error; also virtual memory exhausted"
+msgstr "error d'analitza; també es va excedir la memòria virtual"
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+msgid "parse error"
+msgstr "error d'analitza"
+
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "desbordament de la pila del analitzador"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
+#, c-format
+msgid "%s at end of input"
+msgstr "%s al final de l'entrada"
+
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
+#, c-format
+msgid "%s before %s'%c'"
+msgstr "%s abans de %s\"%c\""
+
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
+#, c-format
+msgid "%s before %s'\\x%x'"
+msgstr "%s abans de %s\"\\x%x\""
+
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
+#, c-format
+msgid "%s before string constant"
+msgstr "%s abans d'una constant de cadena"
+
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
+#, c-format
+msgid "%s before numeric constant"
+msgstr "%s abans d'una constant numèrica"
+
+#: c-parse.y:2854 objc-parse.y:3553
+#, c-format
+msgid "%s before \"%s\""
+msgstr "%s abans de \"%s\""
+
+#: c-parse.y:2856 objc-parse.y:3555
+#, c-format
+msgid "%s before '%s' token"
+msgstr "%s abans l'element \"%s\""
+
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "C tradicional rebutja la concatenació de cadenes"
+
+#: c-parse.y:3047 objc-parse.y:3779
+#, c-format
+msgid "syntax error at '%s' token"
+msgstr "error sintàctic en l'element \"%s\""
+
+#: c-pragma.c:107
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+msgstr "es va trobar un #pragma pack (pop) sense un #pragma pack (push, <n>) coincident"
+
+#: c-pragma.c:125
+#, c-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+msgstr "es va trobar un #pragma pack (pop, %s) sense un #pragma pack (push, %s, <n>) coincident"
+
+#: c-pragma.c:145
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "no es dóna suport a #pragma pack(push[, id], <n>) en aquest objectiu"
+
+#: c-pragma.c:147
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "no es dóna suport a #pragma pack(pop[, id], <n>) en aquest objectiu"
+
+#: c-pragma.c:167
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr "\"(\" faltant desprès de \"#pragma pack\" - ignorat"
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
+msgstr "\"#pragma pack\" malformat - ignorat"
+
+#: c-pragma.c:185
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr "\"#pragma pack(push[, id], <n>)\" malformat - ignorat"
+
+#: c-pragma.c:187
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr "\"#pragma pack(pop[, id])\" malformat - ignorat"
+
+#: c-pragma.c:196
+#, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr "acció \"%s\" desconeguda per a \"#pragma pack\" - ignorat"
+
+#: c-pragma.c:233
+msgid "junk at end of '#pragma pack'"
+msgstr "escombraries al final de \"#pragma pack\""
+
+#: c-pragma.c:247
+#, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "l'alineació deu ser una potència petita de dos, no %d"
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "l'aplicació del #pragma weak \"%s\" després del primer ús resulta en conducta no especificada"
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr "#pragma weak malformat, ignorat"
+
+#: c-pragma.c:337
+msgid "junk at end of #pragma weak"
+msgstr "escombraries al final de \"#pragma weak\""
+
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "#pragma redefine_extname malformat, ignorat"
+
+#: c-pragma.c:382
+msgid "junk at end of #pragma redefine_extname"
+msgstr "escombraries al final de #pragma redefine_extname"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr "#pragma redefine_extname té conflictes amb la declaració"
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "#pragma extern_prefix malformat, ignorat"
+
+#: c-pragma.c:425
+msgid "junk at end of #pragma extern_prefix"
+msgstr "escombraries al final de #pragma extern_prefix"
+
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
+msgstr "la declaració asm causa conflictes amb el rename previ"
+
+#: c-semantics.c:565
+msgid "break statement not within loop or switch"
+msgstr "la declaració break no està dintre d'un cicle o switch"
+
+#: c-semantics.c:583
+msgid "continue statement not within a loop"
+msgstr "la declaració continue no està dintre dintre d'un cicle"
+
+#: c-semantics.c:678
+msgid "destructor needed for `%#D'"
+msgstr "es necessita un destructor per a \"%#D\""
+
+#: c-semantics.c:679
+msgid "where case label appears here"
+msgstr "on l'etiqueta casi apareix aquí"
+
+#: c-semantics.c:682
+msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+msgstr "(les accions adjuntes de declaracions casi prèvies requereixen destructors en el seu propi àmbit.)"
+
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
+#, c-format
+msgid "%s qualifier ignored on asm"
+msgstr "qualificador %s ignorat en asm"
+
+#: c-typeck.c:123
+#, c-format
+msgid "`%s' has an incomplete type"
+msgstr "\"%s\" té un tipus incompleta"
+
+#: c-typeck.c:145 cp/call.c:2865
+msgid "invalid use of void expression"
+msgstr "ús invàlid de l'expressió void"
+
+#: c-typeck.c:153
+msgid "invalid use of flexible array member"
+msgstr "ús invàlid de membres de matriu flexible"
+
+#: c-typeck.c:159
+msgid "invalid use of array with unspecified bounds"
+msgstr "ús invàlid de matrius amb límits sense especificar"
+
+#: c-typeck.c:167
+#, c-format
+msgid "invalid use of undefined type `%s %s'"
+msgstr "ús invàlid del tipus indefinit \"%s %s\""
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:171
+#, c-format
+msgid "invalid use of incomplete typedef `%s'"
+msgstr "ús invàlid del typedef incomplet \"%s\""
+
+#: c-typeck.c:424 c-typeck.c:438
+msgid "function types not truly compatible in ISO C"
+msgstr "els tipus de funció no són totalment compatibles en ISO C"
+
+#: c-typeck.c:603
+msgid "types are not quite compatible"
+msgstr "els tipus no són totalment compatibles"
+
+#: c-typeck.c:757 c-typeck.c:2687
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "aritmètica en apuntador a un tipus incomplet"
+
+#: c-typeck.c:1136
+#, c-format
+msgid "%s has no member named `%s'"
+msgstr "%s no té un membre cridat \"%s\""
+
+#: c-typeck.c:1172
+#, c-format
+msgid "request for member `%s' in something not a structure or union"
+msgstr "petició del membre \"%s\" en alguna cosa que no és estructura o unió"
+
+#: c-typeck.c:1204
+msgid "dereferencing pointer to incomplete type"
+msgstr "punter dereferènciat a tipus de dada incompleta"
+
+#: c-typeck.c:1208
+msgid "dereferencing `void *' pointer"
+msgstr "dereferènciant el punter \"void *\""
+
+#: c-typeck.c:1225 cp/typeck.c:2369
+#, c-format
+msgid "invalid type argument of `%s'"
+msgstr "argument de tipus invàlid de \"%s\""
+
+#: c-typeck.c:1244 cp/typeck.c:2395
+msgid "subscript missing in array reference"
+msgstr "falta subindici en la referència de la matriu"
+
+#: c-typeck.c:1265 cp/typeck.c:2437
+msgid "array subscript has type `char'"
+msgstr "el subindici de matriu té un tipus \"char\""
+
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
+msgid "array subscript is not an integer"
+msgstr "el subindici de la matriu no és un enter"
+
+#: c-typeck.c:1306
+msgid "ISO C forbids subscripting `register' array"
+msgstr "ISO C prohibeix el subindici d'una matriu \"register\""
+
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C90 prohibeix el subindici d'una matriu non-lvalue"
+
+#: c-typeck.c:1341
+msgid "subscript has type `char'"
+msgstr "el subindici és de tipus \"char\""
+
+#: c-typeck.c:1357 cp/typeck.c:2518
+msgid "subscripted value is neither array nor pointer"
+msgstr "el valor indicat pel subindici no és ni matriu ni punter"
+
+#: c-typeck.c:1411
+#, c-format
+msgid "`%s' undeclared here (not in a function)"
+msgstr "\"%s\" no ha estat declarat aquí (no en una funció)"
+
+#: c-typeck.c:1418
+#, c-format
+msgid "`%s' undeclared (first use in this function)"
+msgstr "\"%s\" no ha estat declarat aquí (primer us en aquesta funció)"
+
+#: c-typeck.c:1423
+msgid "(Each undeclared identifier is reported only once"
+msgstr "(Cada identificador no declarat solament es reporta una vegada"
+
+#: c-typeck.c:1424
+msgid "for each function it appears in.)"
+msgstr "per a cada funció en la qual apareix.)"
+
+#: c-typeck.c:1441
+#, c-format
+msgid "local declaration of `%s' hides instance variable"
+msgstr "la declaració local de \"%s\" oculta la variable d'instància"
+
+#: c-typeck.c:1518
+msgid "called object is not a function"
+msgstr "l'objecte cridat no és una funció"
+
+#: c-typeck.c:1604 cp/typeck.c:2829
+msgid "too many arguments to function"
+msgstr "massa arguments per a la funció"
+
+#: c-typeck.c:1625
+#, c-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "el tipus de dada del paràmetre formal %d està incomplet"
+
+#: c-typeck.c:1638
+#, c-format
+msgid "%s as integer rather than floating due to prototype"
+msgstr "%s com enter en lloc de coma flotant a causa del prototip"
+
+#: c-typeck.c:1641
+#, c-format
+msgid "%s as integer rather than complex due to prototype"
+msgstr "%s com enter en lloc de complex a causa del prototip"
+
+#: c-typeck.c:1644
+#, c-format
+msgid "%s as complex rather than floating due to prototype"
+msgstr "%s com complex en lloc de coma flotant a causa del prototip"
+
+#: c-typeck.c:1647
+#, c-format
+msgid "%s as floating rather than integer due to prototype"
+msgstr "%s com coma flotant en lloc d'enter a causa del prototip"
+
+#: c-typeck.c:1650
+#, c-format
+msgid "%s as complex rather than integer due to prototype"
+msgstr "%s com complex en lloc d'enter a causa del prototip"
+
+#: c-typeck.c:1653
+#, c-format
+msgid "%s as floating rather than complex due to prototype"
+msgstr "%s com coma flotant en lloc de complex a causa del prototip"
+
+#: c-typeck.c:1663
+#, c-format
+msgid "%s as `float' rather than `double' due to prototype"
+msgstr "%s com \"float\" en lloc de \"double\" a causa del prototip"
+
+#: c-typeck.c:1681
+#, c-format
+msgid "%s with different width due to prototype"
+msgstr "%s amb amplària diferent a causa del prototip"
+
+#: c-typeck.c:1715
+#, c-format
+msgid "%s as unsigned due to prototype"
+msgstr "%s com unsigned a causa del prototip"
+
+#: c-typeck.c:1717
+#, c-format
+msgid "%s as signed due to prototype"
+msgstr "%s com signed a causa del prototip"
+
+#: c-typeck.c:1751 cp/typeck.c:2933
+msgid "too few arguments to function"
+msgstr "molt pocs arguments per a la funció"
+
+#: c-typeck.c:1793
+msgid "suggest parentheses around + or - inside shift"
+msgstr "se suggereixen parèntesi al voltant de + o - dintre d'un desplaçament"
+
+#: c-typeck.c:1800
+msgid "suggest parentheses around && within ||"
+msgstr "se suggereixen parèntesi al voltant de && dintre de ||"
+
+#: c-typeck.c:1809
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "se suggereixen parèntesi al voltant de l'aritmètica per a operada de |"
+
+#: c-typeck.c:1812
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de |"
+
+#: c-typeck.c:1821
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "se suggereixen parèntesi al voltant de l'aritmètica per a operada de ^"
+
+#: c-typeck.c:1824
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de ^"
+
+#: c-typeck.c:1831
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "se suggereixen parèntesi al voltant de + o - per a operada de &"
+
+#: c-typeck.c:1834
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "se suggereixen parèntesi al voltant de les comparances per a operada de &"
+
+#: c-typeck.c:1841
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "les comparances com X<=Y<=Z no tenen el seu significat matemàtic"
+
+#: c-typeck.c:2001 c-typeck.c:2036
+msgid "division by zero"
+msgstr "divisió per zero"
+
+#: c-typeck.c:2081 cp/typeck.c:3194
+msgid "right shift count is negative"
+msgstr "el compte de desplaçament a la dreta es negatiu"
+
+#: c-typeck.c:2088 cp/typeck.c:3200
+msgid "right shift count >= width of type"
+msgstr "compte de desplaçament a la dreta >= amplària del tipus"
+
+#: c-typeck.c:2109 cp/typeck.c:3219
+msgid "left shift count is negative"
+msgstr "el compte de desplaçament a l'esquerra és negativa"
+
+#: c-typeck.c:2112 cp/typeck.c:3221
+msgid "left shift count >= width of type"
+msgstr "compte de desplaçament a l'esquerra >= amplària del tipus"
+
+#: c-typeck.c:2133
+msgid "shift count is negative"
+msgstr "compte de desplaçament a la dreta negatiu"
+
+#: c-typeck.c:2135
+msgid "shift count >= width of type"
+msgstr "ompte de desplaçament a la dreta >= amplària del tipus"
+
+#: c-typeck.c:2152 cp/typeck.c:3256
+msgid "comparing floating point with == or != is unsafe"
+msgstr "no és segura la comparança de coma flotant amb == o !="
+
+#: c-typeck.c:2178 c-typeck.c:2184
+msgid "ISO C forbids comparison of `void *' with function pointer"
+msgstr "ISO C prohibeix la comparança de \"void *\" amb un punter de funció"
+
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "la comparança de diferents tipus de punter manca d'una conversió"
+
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
+msgid "comparison between pointer and integer"
+msgstr "comparança entre punter i enter"
+
+#: c-typeck.c:2222 c-typeck.c:2250
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "ISO C prohibeix la comparança entre punters a funcions"
+
+#: c-typeck.c:2247
+msgid "comparison of complete and incomplete pointers"
+msgstr "comparança de punters complets i incomplets"
+
+#: c-typeck.c:2263 c-typeck.c:2270
+msgid "ordered comparison of pointer with integer zero"
+msgstr "comparança ordenada de punter amb l'enter zero"
+
+#: c-typeck.c:2294 cp/typeck.c:3389
+msgid "unordered comparison on non-floating point argument"
+msgstr "comparança sense ordre en argument de coma no flotant"
+
+#: c-typeck.c:2505
+msgid "comparison between signed and unsigned"
+msgstr "comparança entre signed i unsigned"
+
+#: c-typeck.c:2551 cp/typeck.c:3633
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "comparança d'un ~unsigned promogut amb una constant"
+
+#: c-typeck.c:2559 cp/typeck.c:3641
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "comparança d'un ~unsigned promogut amb unsigned"
+
+#: c-typeck.c:2639
+msgid "pointer of type `void *' used in subtraction"
+msgstr "es va usar un punter de tipus \"void *\" en la substracció"
+
+#: c-typeck.c:2641
+msgid "pointer to a function used in subtraction"
+msgstr "es va usar un punter a una funció en la substracció"
+
+#: c-typeck.c:2738
+msgid "wrong type argument to unary plus"
+msgstr "argument de tipus erroni per a l'increment unari"
+
+#: c-typeck.c:2751
+msgid "wrong type argument to unary minus"
+msgstr "argument de tipus erroni per al decrement unari"
+
+#: c-typeck.c:2768
+msgid "ISO C does not support `~' for complex conjugation"
+msgstr "ISO C no té suport de \"~\" per a conjugacions complexes"
+
+#: c-typeck.c:2774
+msgid "wrong type argument to bit-complement"
+msgstr "argument de tipus erroni per a complement de bits"
+
+#: c-typeck.c:2783
+msgid "wrong type argument to abs"
+msgstr "argument de tipus erroni per a abs"
+
+#: c-typeck.c:2795
+msgid "wrong type argument to conjugation"
+msgstr "argument de tipus erroni per a la conjugació"
+
+#: c-typeck.c:2809
+msgid "wrong type argument to unary exclamation mark"
+msgstr "argument de tipus erroni per al signe d'exclamació unari"
+
+#: c-typeck.c:2852
+msgid "ISO C does not support `++' and `--' on complex types"
+msgstr "ISO C no té suport per a \"++\" i \"--\" en tipus complexos"
+
+#: c-typeck.c:2867 c-typeck.c:2899
+msgid "wrong type argument to increment"
+msgstr "argument de tipus erroni per a l'increment"
+
+#: c-typeck.c:2869 c-typeck.c:2901
+msgid "wrong type argument to decrement"
+msgstr "argument de tipus erroni pel decrement"
+
+#: c-typeck.c:2890
+msgid "increment of pointer to unknown structure"
+msgstr "increment de punter a estructura desconeguda"
+
+#: c-typeck.c:2892
+msgid "decrement of pointer to unknown structure"
+msgstr "decrement de punter a estructura desconeguda"
+
+#: c-typeck.c:3029
+msgid "ISO C forbids the address of a cast expression"
+msgstr "ISO C prohibeix l'adreça d'una expressió cast"
+
+#: c-typeck.c:3039
+msgid "invalid lvalue in unary `&'"
+msgstr "l-value invàlid en \"&\" unari"
+
+#: c-typeck.c:3071
+#, c-format
+msgid "attempt to take address of bit-field structure member `%s'"
+msgstr "es va intentar prendre l'adreça del membre de l'estructura de camps de bits \"%s\""
+
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: c-typeck.c:3241
+msgid "ISO C forbids use of conditional expressions as lvalues"
+msgstr "ISO C prohibeix l'ús d'expressions condicionals com l-values"
+
+#: c-typeck.c:3244
+msgid "ISO C forbids use of compound expressions as lvalues"
+msgstr "ISO C prohibeix l'ús d'expressions compostoses com l-valors"
+
+#: c-typeck.c:3247
+msgid "ISO C forbids use of cast expressions as lvalues"
+msgstr "ISO C prohibeix l'ús d'expressions de conversió com l-valors"
+
+#: c-typeck.c:3264
+#, c-format
+msgid "%s of read-only member `%s'"
+msgstr "%s del membre de només lectura \"%s\""
+
+#: c-typeck.c:3268
+#, c-format
+msgid "%s of read-only variable `%s'"
+msgstr "%s de la variable de només lectura \"%s\""
+
+#: c-typeck.c:3271
+#, c-format
+msgid "%s of read-only location"
+msgstr "%s de la ubicació de només lectura"
+
+#: c-typeck.c:3290
+#, c-format
+msgid "cannot take address of bit-field `%s'"
+msgstr "no es pot adquirir l'adreça del camp de bits \"%s\""
+
+#: c-typeck.c:3318
+#, c-format
+msgid "global register variable `%s' used in nested function"
+msgstr "es va usar la variable de registre global \"%s\" en funcions niades"
+
+#: c-typeck.c:3322
+#, c-format
+msgid "register variable `%s' used in nested function"
+msgstr "es va usar la va variable \"%s\" en funcions niades"
+
+#: c-typeck.c:3329
+#, c-format
+msgid "address of global register variable `%s' requested"
+msgstr "es va sol·licitar l'adreça de la variable de registre global \"%s\""
+
+#: c-typeck.c:3341
+msgid "cannot put object with volatile field into register"
+msgstr "no es pot posar objecte amb camp volatile en register"
+
+#: c-typeck.c:3345
+#, c-format
+msgid "address of register variable `%s' requested"
+msgstr "es va sol·licitar l'adreça de la variable register \"%s\""
+
+#: c-typeck.c:3453
+msgid "signed and unsigned type in conditional expression"
+msgstr "tipus signed i unsigned en l'expressió condicional"
+
+#: c-typeck.c:3460
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "ISO C prohibeix una expressió condicional amb només un costat void"
+
+#: c-typeck.c:3476 c-typeck.c:3483
+msgid "ISO C forbids conditional expr between `void *' and function pointer"
+msgstr "ISO C prohibeix expressions condicionals entre \"void *\" i punters de funcions"
+
+#: c-typeck.c:3489
+msgid "pointer type mismatch in conditional expression"
+msgstr "els tipus de dades punters no coincideixen en l'expressió condicional"
+
+#: c-typeck.c:3496 c-typeck.c:3506
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "els tipus de dades punters/enters no coincideixen en l'expressió condicional"
+
+#: c-typeck.c:3520
+msgid "type mismatch in conditional expression"
+msgstr "els tipus de dades no coincideixen en l'expressió condicional"
+
+#: c-typeck.c:3591 cp/typeck.c:4623
+msgid "left-hand operand of comma expression has no effect"
+msgstr "l'operador del costat esquerre de l'expressió coma no té efecte"
+
+#: c-typeck.c:3635
+msgid "cast specifies array type"
+msgstr "la conversió especifica el tipus matriu"
+
+#: c-typeck.c:3641
+msgid "cast specifies function type"
+msgstr "la conversió especifica el tipus funció"
+
+#: c-typeck.c:3651
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "ISO C prohibeix la conversió d'un no escalar al mateix tipus"
+
+#: c-typeck.c:3670
+msgid "ISO C forbids casts to union type"
+msgstr "ISO C prohibeix la conversió al tipus union"
+
+#: c-typeck.c:3685
+msgid "cast to union type from type not present in union"
+msgstr "conversió a tipus union des d'un tipus no presenti en union"
+
+#: c-typeck.c:3736
+msgid "cast adds new qualifiers to function type"
+msgstr "la conversió afegeix nou qualificadors del tipus de la funció"
+
+#. There are qualifiers present in IN_OTYPE that are not
+#. present in IN_TYPE.
+#: c-typeck.c:3741
+msgid "cast discards qualifiers from pointer target type"
+msgstr "la conversió descarta els qualificadors del tipus de la destinació del punter"
+
+#: c-typeck.c:3756
+msgid "cast increases required alignment of target type"
+msgstr "la conversió incrementa l'alineació requerida del tipus de la destinació"
+
+#: c-typeck.c:3762 cp/typeck.c:5144
+msgid "cast from pointer to integer of different size"
+msgstr "conversió de punter a enter de grandària diferent"
+
+#: c-typeck.c:3767
+msgid "cast does not match function type"
+msgstr "la conversió no coincideix amb el tipus de la funció"
+
+#: c-typeck.c:3774 cp/typeck.c:5151
+msgid "cast to pointer from integer of different size"
+msgstr "conversió a punter des d'un enter de grandària diferent"
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "el càstig de tipus a tipus incomplet pot trencar les regles d'alies estricte"
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "el retorn de punters de tipus castigat trencarà les regles d'alies estricte"
+
+#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
+#. Reject anything strange now.
+#: c-typeck.c:3949
+msgid "invalid lvalue in assignment"
+msgstr "l-value invàlid en l'assignació"
+
+#. Convert new value to destination type.
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
+msgid "assignment"
+msgstr "assignació"
+
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "no es pot passar un valor-r a un paràmetre de referència"
+
+#: c-typeck.c:4174 c-typeck.c:4241
+#, c-format
+msgid "%s makes qualified function pointer from unqualified"
+msgstr "%s fa un punter de funció qualificat des d'un no qualificat"
+
+#: c-typeck.c:4178 c-typeck.c:4221
+#, c-format
+msgid "%s discards qualifiers from pointer target type"
+msgstr "%s descarta els calificadors del tipus de la destinació del punter"
+
+#: c-typeck.c:4184
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "ISO C prohibeix la conversió d'arguments a tipus union"
+
+#: c-typeck.c:4213
+#, c-format
+msgid "ISO C forbids %s between function pointer and `void *'"
+msgstr "ISO C prohibeix %s entre punters a funció i \"void *\""
+
+#: c-typeck.c:4230
+#, c-format
+msgid "pointer targets in %s differ in signedness"
+msgstr "el punter que apunta a %s difereix en signe"
+
+#: c-typeck.c:4246
+#, c-format
+msgid "%s from incompatible pointer type"
+msgstr "%s de tipus de punter incompatible"
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "ús invàlid de matriu no lvaluada"
+
+#: c-typeck.c:4267
+#, c-format
+msgid "%s makes pointer from integer without a cast"
+msgstr "%s crea un punter des d'un enter sense una conversió"
+
+#: c-typeck.c:4275
+#, c-format
+msgid "%s makes integer from pointer without a cast"
+msgstr "%s crea un enter des d'un punter sense una conversió"
+
+#: c-typeck.c:4289 c-typeck.c:4292
+#, c-format
+msgid "incompatible type for argument %d of `%s'"
+msgstr "tipus incompatible per a l'argument %d de \"%s\""
+
+#: c-typeck.c:4296
+#, c-format
+msgid "incompatible type for argument %d of indirect function call"
+msgstr "tipus incompatible per a l'argument %d de la cridada indirecta a funció"
+
+#: c-typeck.c:4300
+#, c-format
+msgid "incompatible types in %s"
+msgstr "tipus incompatibles en %s"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "passant l'argument de \"%s\""
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "passant l'argument del punter a la funció"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
+#, c-format
+msgid "passing arg %d of `%s'"
+msgstr "passant l'argument %d de \"%s\""
+
+#. Function name unknown (call through ptr); just give arg number.
+#: c-typeck.c:4386
+#, c-format
+msgid "passing arg %d of pointer to function"
+msgstr "passant l'argument %d del punter a la funció"
+
+#: c-typeck.c:4452
+msgid "initializer for static variable is not constant"
+msgstr "el valor inicial assignat per a la variable estàtica no es constant"
+
+#: c-typeck.c:4458
+msgid "initializer for static variable uses complicated arithmetic"
+msgstr "el valor inicial assignat per a la variable estàtica usa aritmètica complicada"
+
+#: c-typeck.c:4466
+msgid "aggregate initializer is not constant"
+msgstr "el inicialitzador agregat no és una constant"
+
+#: c-typeck.c:4468
+msgid "aggregate initializer uses complicated arithmetic"
+msgstr "el inicialitzador agregat usa aritmètica complicada"
+
+#: c-typeck.c:4475
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "C tradicional rebutja la iniciació automàtica d'agregats"
+
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
+#, c-format
+msgid "(near initialization for `%s')"
+msgstr "(prop de l'assignació de valors inicials per a \"%s\")"
+
+#: c-typeck.c:4737 cp/typeck2.c:488
+msgid "char-array initialized from wide string"
+msgstr "matriu de caràcters amb valors inicials assignats d'una cadena ampla"
+
+#: c-typeck.c:4744 cp/typeck2.c:495
+msgid "int-array initialized from non-wide string"
+msgstr "matriu d'enters amb valors inicials assignats d'una cadena no ampla"
+
+#: c-typeck.c:4762 cp/typeck2.c:511
+msgid "initializer-string for array of chars is too long"
+msgstr "la cadena de valors inicials per a la matriu de caràcters és massa llarga"
+
+#: c-typeck.c:4822
+msgid "array initialized from non-constant array expression"
+msgstr "matriu amb valors inicials assignats d'una expressió matricial que no és constant"
+
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
+msgid "initializer element is not constant"
+msgstr "l'element de valor inicial no és constant"
+
+#: c-typeck.c:4873
+msgid "initialization"
+msgstr "assignació de valors inicials"
+
+#: c-typeck.c:4884 c-typeck.c:6286
+msgid "initializer element is not computable at load time"
+msgstr "l'element de valor inicial no és calculable al moment de la càrrega"
+
+#: c-typeck.c:4899 cp/typeck2.c:588
+msgid "invalid initializer"
+msgstr "valor inicial invàlid"
+
+#: c-typeck.c:5393
+msgid "extra brace group at end of initializer"
+msgstr "grup extra de claus al final dels valors inicials"
+
+#: c-typeck.c:5413
+msgid "missing braces around initializer"
+msgstr "falten claus al voltant dels valors inicials"
+
+#: c-typeck.c:5473
+msgid "braces around scalar initializer"
+msgstr "claus al voltant del valor inicial escalar"
+
+#: c-typeck.c:5521
+msgid "initialization of flexible array member in a nested context"
+msgstr "iniciació d'un membre de matriu flexible en un context niat"
+
+#: c-typeck.c:5523
+msgid "initialization of a flexible array member"
+msgstr "iniciació d'un membre de matriu flexible"
+
+#: c-typeck.c:5554
+msgid "missing initializer"
+msgstr "falta valor inicial"
+
+#: c-typeck.c:5580
+msgid "empty scalar initializer"
+msgstr "valor inicial escalar buidor"
+
+#: c-typeck.c:5585
+msgid "extra elements in scalar initializer"
+msgstr "elements extres en valor inicial escalar"
+
+#: c-typeck.c:5671
+msgid "initialization designators may not nest"
+msgstr "no es poden niar els designadors d'iniciació"
+
+#: c-typeck.c:5692 c-typeck.c:5763
+msgid "array index in non-array initializer"
+msgstr "índex de matriu en valor inicial que no és de matriu"
+
+#: c-typeck.c:5697 c-typeck.c:5817
+msgid "field name not in record or union initializer"
+msgstr "el nom del camp no està en el inicialitzador de record o union"
+
+#: c-typeck.c:5759 c-typeck.c:5761
+msgid "nonconstant array index in initializer"
+msgstr "índex de matriu no constant en valor inicial"
+
+#: c-typeck.c:5765 c-typeck.c:5768
+msgid "array index in initializer exceeds array bounds"
+msgstr "l'índex de matriu en el valor inicial excedeix els límits de la matriu"
+
+#: c-typeck.c:5779
+msgid "empty index range in initializer"
+msgstr "rang d'índexs buit en valor inicial"
+
+#: c-typeck.c:5788
+msgid "array index range in initializer exceeds array bounds"
+msgstr "el rang d'índexs de la matriu en el valor inicial excedeix els límits de la matriu"
+
+#: c-typeck.c:5829
+#, c-format
+msgid "unknown field `%s' specified in initializer"
+msgstr "camp \"%s\" desconegut especificat en el valor inicial"
+
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
+msgid "initialized field with side-effects overwritten"
+msgstr "camp iniciat amb efectes laterals sobreescrits"
+
+#: c-typeck.c:6558
+msgid "excess elements in char array initializer"
+msgstr "excés d'elements en valors inicials de matriu de caràcters"
+
+#: c-typeck.c:6565 c-typeck.c:6611
+msgid "excess elements in struct initializer"
+msgstr "excés d'elements en valors inicials de struct"
+
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr "iniciació no estàtica d'un membre de matriu flexible"
+
+#: c-typeck.c:6693
+msgid "excess elements in union initializer"
+msgstr "excés d'elements en valors inicials de union"
+
+#: c-typeck.c:6714
+msgid "traditional C rejects initialization of unions"
+msgstr "C tradicional rebutja els valors inicials de unions"
+
+#: c-typeck.c:6777
+msgid "excess elements in array initializer"
+msgstr "excés d'elements en valors inicials de matriu"
+
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr "excés d'elements en valor inicial vectorial"
+
+#: c-typeck.c:6828
+msgid "excess elements in scalar initializer"
+msgstr "excés d'elements en valor inicial escalar"
+
+#: c-typeck.c:6935
+msgid "asm template is not a string constant"
+msgstr "la plantilla asm no és una cadena constant"
+
+#: c-typeck.c:6967
+msgid "invalid lvalue in asm statement"
+msgstr "lvalue invàlid en declaració asm"
+
+#: c-typeck.c:7042
+msgid "modification by `asm'"
+msgstr "modificació per \"asm\""
+
+#: c-typeck.c:7061 cp/typeck.c:6237
+msgid "function declared `noreturn' has a `return' statement"
+msgstr "la funció declarada \"noreturn\" té una declaració \"return\""
+
+#: c-typeck.c:7068
+msgid "`return' with no value, in function returning non-void"
+msgstr "\"return\" sense valors, en una funció que retorna non-void"
+
+#: c-typeck.c:7074
+msgid "`return' with a value, in function returning void"
+msgstr "\"return\" amb valor, en una funció que retorna void"
+
+#: c-typeck.c:7078
+msgid "return"
+msgstr "return"
+
+#: c-typeck.c:7130
+msgid "function returns address of local variable"
+msgstr "la funció retorna l'adreça d'una variable local"
+
+#: c-typeck.c:7186 cp/semantics.c:555
+msgid "switch quantity not an integer"
+msgstr "la quantitat de switch no és un enter"
+
+#: c-typeck.c:7196
+msgid "`long' switch expression not converted to `int' in ISO C"
+msgstr "no es converteix l'expressió de switch \"long\" a \"int\" en ISO C"
+
+#: c-typeck.c:7231 cp/decl.c:5523
+msgid "case label not within a switch statement"
+msgstr "l'etiqueta casi no es troba dintre d'una declaració switch"
+
+#: c-typeck.c:7233 cp/decl.c:5528
+msgid "`default' label not within a switch statement"
+msgstr "l'etiqueta \"default\" no està dintre d'una declaració switch"
+
+#: calls.c:1934 tree-inline.c:1177
+#, c-format
+msgid "inlining failed in call to `%s'"
+msgstr "el \"inlining\" va fallar en la cridada a \"%s\""
+
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
+msgid "called from here"
+msgstr "cridat des d'aquí"
+
+#: calls.c:2270
+#, c-format
+msgid "can't inline call to `%s'"
+msgstr "no es poden fer la cridada inline a \"%s\""
+
+#: calls.c:2300
+msgid "function call has aggregate value"
+msgstr "la cridada a la funció té valor agregat"
+
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "La grandària del cicle %d deu ser %d, no %d."
+
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Bb %d no pertany al cicle %d."
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "L'encapçalat del cicle %d no té exactament 2 entrades."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "El forrellat del cicle %d no té exactament 1 successor."
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "El forrellat del cicle %d no té un encapçalat com successor."
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "El forrellat del cicle %d no pertany directament a ell."
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "L'encapçalat del cicle %d no pertany directament a ell."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "bb %d en un lloc equivocat"
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "el prev_bb de %d deu ser %d, no %d"
+
+#: cfgrtl.c:1800
+#, c-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr "el insn final %d per al bloc %d no es troba en el fluix insn"
+
+#: cfgrtl.c:1814
+#, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "insn %d està en múltiples blocs bàsics (%d i %d)"
+
+#: cfgrtl.c:1826
+#, c-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr "el cap insn %d per al bloc %d no es troba en el fluix insn"
+
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB no coincideix amb la configuració %i %i"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Compte erroni del bloc %i %i"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Freqüència errònia del bloc %i %i"
+
+#: cfgrtl.c:1869
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr "verify_flow_info: Vora duplicada %i->%i"
+
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: Probabilitat errònia de la vora %i->%i %i"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Compte erroni de la vora %i->%i %i"
+
+#: cfgrtl.c:1911
+#, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "verify_flow_info: Blocs incorrectes per al respatller %i->%i"
+
+#: cfgrtl.c:1926
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr "verify_flow_info: Respatller incorrecte %i->%i"
+
+#: cfgrtl.c:1928
+msgid "wrong insn in the fallthru edge"
+msgstr "insn erroni en la vora del respatller"
+
+#: cfgrtl.c:1935
+#, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "verify_flow_info: El bloc bàsic %d succ edge està corrupte"
+
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Manca la nota REG_EH_REGION al final de bb %i"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Massa vores de ramificació de sortida de bb %i"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Vora de caiguda després del salt incondicional %i"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Quantitat errònia de vores de ramificació després del salt incondicional %i"
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Quantitat errònia de vores de ramificació després del salt condicional %i"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "Bords de cridada per a una insn que no és cridada en bb %i"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "Vores anormals sense cap propòsit en bb %i"
+
+#: cfgrtl.c:2004
+#, c-format
+msgid "missing barrier after block %i"
+msgstr "falta una barrera després del bloc %i"
+
+#: cfgrtl.c:2014
+#, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "el bloc bàsic %d pred edge està corrupte"
+
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "insn %d està dintre del bloc bàsic %d però block_for_insn és NULL"
+
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "insn %d està dintre del bloc bàsic %d però block_for_insn és %i"
+
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK mancada per al bloc %d"
+
+#: cfgrtl.c:2072
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d en el mitjà del bloc bàsic %d"
+
+#: cfgrtl.c:2084
+#, c-format
+msgid "in basic block %d:"
+msgstr "en el bloc bàsic %d:"
+
+#: cfgrtl.c:2085
+msgid "flow control insn inside a basic block"
+msgstr "control de fluix insn dintre el bloc bàsic"
+
+#: cfgrtl.c:2104
+#, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "les llistes de vora del bloc bàsic %i estan corruptes"
+
+#: cfgrtl.c:2119
+msgid "basic blocks not numbered consecutively"
+msgstr "els blocs bàsics no estan numerats consecutivament"
+
+#: cfgrtl.c:2144
+msgid "insn outside basic block"
+msgstr "insn fora del bloc bàsic"
+
+#: cfgrtl.c:2152
+msgid "return not followed by barrier"
+msgstr "return no és seguit per una barrera"
+
+#: cfgrtl.c:2157
+#, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "el nombre de notes bb en la cadena insn (%d) != n_basic_blocks (%d)"
+
+#: cfgrtl.c:2161
+msgid "verify_flow_info failed"
+msgstr "verify_flow_info fallat"
+
+#: collect2.c:425
+msgid "internal error"
+msgstr "error intern"
+
+#: collect2.c:934
+msgid "no arguments"
+msgstr "sense arguments"
+
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
+msgid "fopen %s"
+msgstr "fopen %s"
+
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
+#, c-format
+msgid "fclose %s"
+msgstr "fclose %s"
+
+#: collect2.c:1275
+#, c-format
+msgid "collect2 version %s"
+msgstr "collect2 versió %s"
+
+#: collect2.c:1365
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "es troba(en) %d constructor(s)\n"
+
+#: collect2.c:1366
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "es troba(en) %d destructor(s)\n"
+
+#: collect2.c:1367
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr "es troba(en) %d marcs de matriu(es)\n"
+
+#: collect2.c:1508
+#, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%s acabat amb el senyal %d [%s]%s"
+
+#: collect2.c:1527
+#, c-format
+msgid "%s returned %d exit status"
+msgstr "%s va retornar l'estat de sortida %d"
+
+#: collect2.c:1555
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[no es pot trobar %s]"
+
+#: collect2.c:1570
+#, c-format
+msgid "cannot find `%s'"
+msgstr "no es pot trobar \"%s\""
+
+#: collect2.c:1581 collect2.c:1584
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr "redirigint sortida estàndard: %s"
+
+#: collect2.c:1627
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr "[Deixant %s]\n"
+
+#: collect2.c:1870
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - el nom de sortida és %s, el prefix és %s\n"
+
+#: collect2.c:2082
+msgid "cannot find `nm'"
+msgstr "no es pot trobar \"nm\""
+
+#: collect2.c:2092 collect2.c:2533
+msgid "pipe"
+msgstr "pipe"
+
+#: collect2.c:2096 collect2.c:2537
+msgid "fdopen"
+msgstr "fdopen"
+
+#: collect2.c:2122 collect2.c:2563
+#, c-format
+msgid "dup2 %d 1"
+msgstr "dup2 %d 1"
+
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, c-format
+msgid "close %d"
+msgstr "close %d"
+
+#: collect2.c:2131 collect2.c:2572
+#, c-format
+msgid "execv %s"
+msgstr "execv %s"
+
+#: collect2.c:2185
+#, c-format
+msgid "init function found in object %s"
+msgstr "es va trobar la funció init en l'objecte %s"
+
+#: collect2.c:2193
+#, c-format
+msgid "fini function found in object %s"
+msgstr "es va trobar la funció fini en l'objecte %s"
+
+#: collect2.c:2216 collect2.c:2621
+msgid "fclose"
+msgstr "fclose"
+
+#: collect2.c:2261
+#, c-format
+msgid "unable to open file '%s'"
+msgstr "no es pot obrir el fitxer \"%s\""
+
+#: collect2.c:2263
+#, c-format
+msgid "unable to stat file '%s'"
+msgstr "no es pot avaluar el fitxer \"%s\""
+
+#: collect2.c:2269
+#, c-format
+msgid "unable to mmap file '%s'"
+msgstr "no es pot fer mmap al fitxer \"%s\""
+
+#: collect2.c:2422
+msgid "not found\n"
+msgstr "no trobat\n"
+
+#: collect2.c:2424 collect2.c:2600
+#, c-format
+msgid "dynamic dependency %s not found"
+msgstr "no es troba la dependència dinàmica %s"
+
+#: collect2.c:2444
+#, c-format
+msgid "bad magic number in file '%s'"
+msgstr "nombre màgic erroni en el fitxer \"%s\""
+
+#: collect2.c:2466
+msgid "dynamic dependencies.\n"
+msgstr "dependències dinàmiques.\n"
+
+#: collect2.c:2524
+msgid "cannot find `ldd'"
+msgstr "no es troba \"ldd\""
+
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"sortida de ldd amb constructors/destructors.\n"
+
+#: collect2.c:2612
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "no es pot obrir la dependència dinàmica \"%s\""
+
+#: collect2.c:2726
+#, c-format
+msgid "%s: not a COFF file"
+msgstr "%s: no és un fitxer COFF"
+
+#: collect2.c:2845
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s: no es pot obrir com un fitxer COFF"
+
+#: collect2.c:2901
+#, c-format
+msgid "library lib%s not found"
+msgstr "no es troba la biblioteca lib%s"
+
+#: collect2.c:3028
+#, c-format
+msgid "open %s"
+msgstr "obrir %s"
+
+#: collect2.c:3051
+msgid "incompatibilities between object file & expected values"
+msgstr "incompatibilitats entre el fitxer objecte i els valors esperats"
+
+#: collect2.c:3124
+#, c-format
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+"\n"
+"Processant la matriu de símbols #%d, desplacament = 0x%.8lx, tipus = %s\n"
+
+#: collect2.c:3133
+msgid "string section missing"
+msgstr "falta la secció de cadenes"
+
+#: collect2.c:3136
+msgid "section pointer missing"
+msgstr "falta la secció de punters"
+
+#: collect2.c:3184
+msgid "no symbol table found"
+msgstr "no es troba la matriu de símbols"
+
+#: collect2.c:3197
+msgid "no cmd_strings found"
+msgstr "no es troben cmd_strings"
+
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+"\n"
+"Actualitzant les ordres d'encapçalat i càrrega.\n"
+"\n"
+
+#: collect2.c:3216
+#, c-format
+msgid "load command map, %d cmds, new size %ld.\n"
+msgstr "carregar mapa d'ordres, %d ordres, nova grandària %ld.\n"
+
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+"escrivint les ordres de càrrega.\n"
+"\n"
+
+#: collect2.c:3267
+#, c-format
+msgid "close %s"
+msgstr "tancar %s"
+
+#: collect2.c:3341
+msgid "could not convert 0x%l.8x into a region"
+msgstr "no es pot convertir 0x%l.8x en una regió"
+
+#: collect2.c:3345
+#, c-format
+msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+msgstr "funció %s, regió %d, desfasament = %ld (0x%.8lx)\n"
+
+#: collect2.c:3472
+msgid "bad magic number"
+msgstr "nombre màgic erroni"
+
+#: collect2.c:3473
+msgid "bad header version"
+msgstr "versió d'encapçalat errònia"
+
+#: collect2.c:3474
+msgid "bad raw header version"
+msgstr "versió d'encapçalat textual errònia"
+
+#: collect2.c:3475
+msgid "raw header buffer too small"
+msgstr "emmagatzematge temporal d'encapçalat textual massa petit"
+
+#: collect2.c:3476
+msgid "old raw header file"
+msgstr "fitxer d'encapçalat textual antic"
+
+#: collect2.c:3477
+msgid "unsupported version"
+msgstr "versió sense suport"
+
+#: collect2.c:3479
+#, c-format
+msgid "unknown {de,en}code_mach_o_hdr return value %d"
+msgstr "valor de devolució {de,en}code_mach_o_hdr %d desconegut"
+
+#: collect2.c:3499
+#, c-format
+msgid "fstat %s"
+msgstr "fstat %s"
+
+#: collect2.c:3536 collect2.c:3584
+#, c-format
+msgid "lseek %s 0"
+msgstr "lseek %s 0"
+
+#: collect2.c:3540
+#, c-format
+msgid "read %s"
+msgstr "read %s"
+
+#: collect2.c:3543
+#, c-format
+msgid "read %ld bytes, expected %ld, from %s"
+msgstr "%ld octets llegits, s'esperaven %ld, de %s"
+
+#: collect2.c:3564
+#, c-format
+msgid "msync %s"
+msgstr "msync %s"
+
+#: collect2.c:3571
+#, c-format
+msgid "munmap %s"
+msgstr "munmap %s"
+
+#: collect2.c:3588
+#, c-format
+msgid "write %s"
+msgstr "write %s"
+
+#: collect2.c:3591
+#, c-format
+msgid "wrote %ld bytes, expected %ld, to %s"
+msgstr "%ld octets escrits, s'esperaven %ld, a %s"
+
+#: combine.c:13222
+#, c-format
+msgid ""
+";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+"\n"
+msgstr ""
+";; Estadístiques del combinador: %d intents, %d substitucions (%d van requerir espai nou),\n"
+";; %d èxits.\n"
+"\n"
+
+#: combine.c:13232
+#, c-format
+msgid ""
+"\n"
+";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+msgstr ""
+"\n"
+";; Totals del combinador: %d intents, %d substitucions (%d van requerir espai nou),\n"
+";; %d èxits.\n"
+
+#: convert.c:69
+msgid "cannot convert to a pointer type"
+msgstr "no es pot convertir a un tipus punter"
+
+#: convert.c:102
+msgid "pointer value used where a floating point value was expected"
+msgstr "es va usar un valor de punter on s'esperava un valor de coma flotant"
+
+#: convert.c:106
+msgid "aggregate value used where a float was expected"
+msgstr "es va usar un valor agregat on s'esperava un float"
+
+#: convert.c:132
+msgid "conversion to incomplete type"
+msgstr "conversió a tipus de dada incompleta"
+
+#: convert.c:414 convert.c:494
+msgid "can't convert between vector values of different size"
+msgstr "no es pot convertir entre valors vectorials de grandàries diferents"
+
+#: convert.c:420
+msgid "aggregate value used where an integer was expected"
+msgstr "es va usar un valor agregat on s'esperava un enter"
+
+#: convert.c:472 f/com.c:1100
+msgid "pointer value used where a complex was expected"
+msgstr "es va usar un valor de punter on s'esperava un complex"
+
+#: convert.c:476 f/com.c:1102
+msgid "aggregate value used where a complex was expected"
+msgstr "es va usar un valor agregat on s'esperava un complex"
+
+#: convert.c:500
+msgid "can't convert value to a vector"
+msgstr "no es pot convertir el valor a un vector"
+
+#: cpperror.c:113
+msgid "warning: "
+msgstr "avís: "
+
+#: cpperror.c:115
+msgid "internal error: "
+msgstr "error intern: "
+
+#: cpperror.c:189
+msgid "stdout"
+msgstr "stdout"
+
+#: cpperror.c:191 gcc.c:6428
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "massa punts decimals en el nombre"
+
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "dígit \"%c\" invàlid en la constant octal"
+
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "ús d'una constant de coma flotant hexadecimal C99"
+
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "exponent no té dígits"
+
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "la constant de coma flotant hexadecimal requereixe un exponent"
+
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufix \"%.*s\" invàlid en la constant de coma flotant"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C tradicional rebutja el sufix \"%.*s\""
+
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufix \"%.*s\" invàlid en constant entera"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "ús d'una constant entera long long C99"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "les constants imaginàries són una extensió GCC"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "la constant entera és massa gran per al seu tipus"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constant entera és tan gran que és unsigned"
+
+#: cppexp.c:482
+msgid "missing ')' after \"defined\""
+msgstr "falta \")\" després de \"defined\""
+
+#: cppexp.c:489
+msgid "operator \"defined\" requires an identifier"
+msgstr "l'operador \"defined\" requereix un identificador"
+
+#: cppexp.c:497
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" és un element alternatiu per a \"%s\" en C++)"
+
+#: cppexp.c:507
+msgid "this use of \"defined\" may not be portable"
+msgstr "aquest ùs de \"defined\" podria ser no portable"
+
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "constant de coma flotant en l'expressió del preprocessador"
+
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "nombre imaginari en l'expressió del preprocessador"
+
+#: cppexp.c:596
+#, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr "ISO C++ no permet \"%s\" en #if"
+
+#: cppexp.c:604
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" no és definit"
+
+#: cppexp.c:737 cppexp.c:772
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "operador binari faltant abans de l'element \"%s\""
+
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "caracter invàlid \"%c\" en #if"
+
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "caracter invàlid \"\\%03o\" en #if"
+
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "l'element \"%s\" no és vàlid en les expressions del preprocesador"
+
+#: cppexp.c:782
+msgid "void expression between '(' and ')'"
+msgstr "expressión void entre \"(\" i \")\""
+
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if sense expressió"
+
+#: cppexp.c:787
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "l'operador \"%s\" no té operant de dreta"
+
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr " \":\" sense \"?\" precedent"
+
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "pila desequilibrada en #if"
+
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador \"%u\" impossible"
+
+#: cppexp.c:954
+msgid "missing ')' in expression"
+msgstr "\")\" faltant en l'expressió"
+
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr " \"?\" sense \":\" següent"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordament d'enter en l'expressió del preprocessador"
+
+#: cppexp.c:990
+msgid "missing '(' in expression"
+msgstr "\"(\" faltant en l'expressió"
+
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "l'operant esquerre de \"%s\" canvia el signe quan és promogut"
+
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "l'operant dret de \"%s\" canvia el signe quan és promogut"
+
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operant de #if"
+
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "divisió per zero en #if"
+
+#: cppfiles.c:411
+#, c-format
+msgid "%s is too large"
+msgstr "%s és massa gran"
+
+#: cppfiles.c:447
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s és més curt de l'esperat"
+
+#: cppfiles.c:461
+#, c-format
+msgid "%s is a block device"
+msgstr "%s és un dispositiu de blocs"
+
+#: cppfiles.c:594
+#, c-format
+msgid "no include path in which to find %s"
+msgstr "no hi ha ruta d'inclusió en la qual es trobi %s"
+
+#: cppfiles.c:668
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Guàrdies múltiples de include poden ser útils per a:\n"
+
+#: cppfiles.c:1014
+msgid "absolute file name in remap_filename"
+msgstr "nom de fitxer absolut en remap_filename"
+
+#: cppinit.c:224
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "ignorant el directori inexistent \"%s\"\n"
+
+#: cppinit.c:231
+#, c-format
+msgid "%s: Not a directory"
+msgstr "%s: No és un directori"
+
+#: cppinit.c:287
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "ignorant el directori duplicat \"%s\"\n"
+
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " perquè és un directori que no és del sistema que duplica un directori del sistema\n"
+
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t deu ser d'un tipus unsigned"
+
+#: cppinit.c:895
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'aritmètica del preprocesador té una precisió màxima de %lu bits; l'objectiu requereix %lu bits"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'aritmètica de CPP deu ser almenys tan precisa com un int de l'objectiu"
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "el char de l'objectiu té menys de 8 bits d'ample"
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "el wchar_t de l'objectiu és més estret que el char de l'objectiu"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "el int de l'objectiu és més estret que el char de l'objectiu"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "el mitj-enter de CPP és més estret que el caràcter de CPP"
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP no pot manejar constants de caràcter amples més enllà de %lu bits en aquestobjectiu, però l'objectiu requereix %lu bits"
+
+#: cppinit.c:972
+msgid "#include \"...\" search starts here:\n"
+msgstr "la recerca de #include \"...\" s'inicia aquí:\n"
+
+#: cppinit.c:976
+msgid "#include <...> search starts here:\n"
+msgstr "la recerca de #include <...> s'inicia aquí:\n"
+
+#: cppinit.c:979
+msgid "End of search list.\n"
+msgstr "Fi de la llista de recerca.\n"
+
+#: cppinit.c:1057
+msgid "<built-in>"
+msgstr "<built-in>"
+
+#: cppinit.c:1059
+msgid "<command line>"
+msgstr "<command line>"
+
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, c-format
+msgid "assertion missing after %s"
+msgstr "asserció faltant deprés de %s"
+
+#: cppinit.c:1165
+#, c-format
+msgid "directory name missing after %s"
+msgstr "nom de directori faltant deprés de %s"
+
+#: cppinit.c:1166
+#, c-format
+msgid "file name missing after %s"
+msgstr "nom de fitxer faltant deprés de %s"
+
+#: cppinit.c:1167
+#, c-format
+msgid "macro name missing after %s"
+msgstr "nom de macro faltant deprés de %s"
+
+#: cppinit.c:1168
+#, c-format
+msgid "path name missing after %s"
+msgstr "nom de camí faltant deprés de %s"
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr "-I- especificat dues vegades"
+
+#: cpplex.c:149
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c convertit a %c"
+
+#: cpplex.c:157
+#, c-format
+msgid "trigraph ??%c ignored"
+msgstr "s'ignora el trigraph ??%c"
+
+#: cpplex.c:214
+msgid "backslash and newline separated by space"
+msgstr "barra invertida i fi de línia separats per espai"
+
+#: cpplex.c:221 cpptrad.c:158
+msgid "backslash-newline at end of file"
+msgstr "barra invertida al final del fitxer"
+
+#: cpplex.c:287 cpptrad.c:199
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dintre un comentari"
+
+#: cpplex.c:395
+msgid "null character(s) ignored"
+msgstr "caràter(es) nul(s) ignorats"
+
+#: cpplex.c:402
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en directiva de preprocessament"
+
+#: cpplex.c:475
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "intent d'usar \"%s\" enverinat"
+
+#: cpplex.c:483
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ solament pot aparèixer en l'expansió d'una macro variadic C99"
+
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "caràcter/(es) \"$\" en l'identificador o nombre"
+
+#: cpplex.c:698
+#, c-format
+msgid "missing terminating %c character"
+msgstr "falta caràcter acabant %c"
+
+#: cpplex.c:711
+msgid "null character(s) preserved in literal"
+msgstr "caràcter(es) nul(s) preservats en la literal"
+
+#: cpplex.c:915 cpptrad.c:487
+msgid "no newline at end of file"
+msgstr "no hi ha caràcter de fi de línia"
+
+#: cpplex.c:1092 cpptrad.c:213
+msgid "unterminated comment"
+msgstr "comentari sense acabar"
+
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "els comentaris d'estil C++ no són permesos en ISO C90"
+
+#: cpplex.c:1105
+msgid "(this will be reported only once per input file)"
+msgstr "(això es reportarà solament una vegada per cada fitxer d'entrada)"
+
+#: cpplex.c:1110
+msgid "multi-line comment"
+msgstr "comentari en múltiples línies"
+
+#: cpplex.c:1425
+#, c-format
+msgid "unknown string token %s\n"
+msgstr "Element de cadena %s desconegut\n"
+
+#: cpplex.c:1438
+#, c-format
+msgid "unspellable token %s"
+msgstr "Element %s impronunciable"
+
+#: cpplex.c:1695
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significat de \"\\%c\" és diferent en C tradicional"
+
+#: cpplex.c:1701
+msgid "incomplete universal-character-name"
+msgstr "universal-character-name incomplet"
+
+#: cpplex.c:1715
+#, c-format
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr "dígit no hexadecimal \"%c\" en universal-character-name"
+
+#: cpplex.c:1723
+msgid "universal-character-name on EBCDIC target"
+msgstr "universal-character-name en l'objectiu EBCDIC"
+
+#: cpplex.c:1737
+msgid "universal-character-name out of range"
+msgstr "universal-character-name fora de rang"
+
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significat de \"\\a\" és diferent en C tradicional"
+
+#: cpplex.c:1798
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "seqüència d'escapi que no és estàndard ISO, \"\\%c\""
+
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significat de \"\\x\" és diferent en C tradicional"
+
+#: cpplex.c:1828 f/lex.c:585
+msgid "\\x used with no following hex digits"
+msgstr "es va usar \\x sense dígits hexadecimales a continuació"
+
+#: cpplex.c:1833
+msgid "hex escape sequence out of range"
+msgstr "seqüència d'escapi hexadecimal fora de rang"
+
+#: cpplex.c:1858
+msgid "octal escape sequence out of range"
+msgstr "seqüència d'escapi octal fora de rang"
+
+#: cpplex.c:1874
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "seqüència d'escapi \"\\%c\" desconeguda"
+
+#: cpplex.c:1877
+#, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "seqüència d'escapi desconeguda: '\\%03o'"
+
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "seqüència d'escapi fora de rang per a el seu tipus"
+
+#: cpplex.c:1973
+msgid "empty character constant"
+msgstr "constant de caràter buida"
+
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "constant de caràcter massa gran pel seu tipus"
+
+#: cpplex.c:1986
+msgid "multi-character character constant"
+msgstr "constant de caràcter amb múltiples caràcters"
+
+#: cpplib.c:225
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "elements extra al final de la directiva #%s"
+
+#: cpplib.c:315
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s és una extenció del GCC"
+
+#: cpplib.c:327
+msgid "suggest not using #elif in traditional C"
+msgstr "es suggereix no usar #elif en C tradicional"
+
+#: cpplib.c:330
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s amb el # indentat"
+
+#: cpplib.c:334
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "es suggereix ocultar #%s del C tradicional amb el # indentat"
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr "l'estil de la directiva de línia és una extenció del GCC"
+
+#: cpplib.c:428
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directiva de preprocessament #%s invàlida"
+
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no es pot usar com un nom de macro"
+
+#: cpplib.c:506
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "no es pot usar \"%s\" com un nom de macro perquè és un operador en C++"
+
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "no es va donar un nom de macro en la directiva #%s"
+
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr "els noms de macro deuen ser identificadors"
+
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
+msgstr "esborrant la definició de \"%s\""
+
+#: cpplib.c:598
+msgid "missing terminating > character"
+msgstr "falta el caràcter de terminació >"
+
+#: cpplib.c:637
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
+
+#: cpplib.c:648
+#, c-format
+msgid "empty file name in #%s"
+msgstr "nom de fitxer buit en #%s"
+
+#: cpplib.c:667
+msgid "#include_next in primary source file"
+msgstr "#include_next en el fitxer font primari"
+
+#: cpplib.c:674
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr "#import és obsolet, usi un embolcall #ifndef en el fitxer d'encapçalat"
+
+#: cpplib.c:682
+msgid "#include nested too deeply"
+msgstr "#include niat amb massa profunditat"
+
+#: cpplib.c:739
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "indicador \"%s\" invàlid en la línia de la directiva"
+
+#: cpplib.c:814
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" desprès de #line no és un enter positiu"
+
+#: cpplib.c:820
+msgid "line number out of range"
+msgstr "nombre de línia fora de rang"
+
+#: cpplib.c:831 cpplib.c:902
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" no és un nom de fitxer vàlid"
+
+#: cpplib.c:866
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" desprès de # no és un enter positiu"
+
+#: cpplib.c:973
+msgid "invalid #ident directive"
+msgstr "directiva #ident invàlida"
+
+#: cpplib.c:1061
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
+
+#: cpplib.c:1064
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "ja s'ha desat #pragma %s %s"
+
+#: cpplib.c:1067
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "ja s'ha desat #pragma %s"
+
+#: cpplib.c:1143
+msgid "#pragma once is obsolete"
+msgstr "#pragma una vegada és obsolet"
+
+#: cpplib.c:1146
+msgid "#pragma once in main file"
+msgstr "#pragma una vegada en el fitxer principal"
+
+#: cpplib.c:1170
+msgid "invalid #pragma GCC poison directive"
+msgstr "directiva #pragma de GCC enverinada invàlida"
+
+#: cpplib.c:1179
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "enverinant la macro existent \"%s\""
+
+#: cpplib.c:1201
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorat fora del fitxer d'inclusió"
+
+#: cpplib.c:1226
+#, c-format
+msgid "cannot find source %s"
+msgstr "no es pot trobar la font %s"
+
+#: cpplib.c:1230
+#, c-format
+msgid "current file is older than %s"
+msgstr "el fitxer actual és més vell que %s"
+
+#: cpplib.c:1346
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma duu una cadena literal entre parèntesis"
+
+#: cpplib.c:1429
+msgid "#else without #if"
+msgstr "#else sense #if"
+
+#: cpplib.c:1434
+msgid "#else after #else"
+msgstr "#else després de #else"
+
+#: cpplib.c:1436 cpplib.c:1470
+msgid "the conditional began here"
+msgstr "el condicional va començar aquí"
+
+#: cpplib.c:1463
+msgid "#elif without #if"
+msgstr "#elif sense #if"
+
+#: cpplib.c:1468
+msgid "#elif after #else"
+msgstr "#elif després de #else"
+
+#: cpplib.c:1499
+msgid "#endif without #if"
+msgstr "#endif sense #if"
+
+#: cpplib.c:1582
+msgid "missing '(' after predicate"
+msgstr "falta \"(\" abans del predicat"
+
+#: cpplib.c:1597
+msgid "missing ')' to complete answer"
+msgstr "falta \")\" per a completar la resposta"
+
+#: cpplib.c:1617
+msgid "predicate's answer is empty"
+msgstr "el predicat de la resposta està buidor"
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
+msgstr "afirmació sense predicat"
+
+#: cpplib.c:1649
+msgid "predicate must be an identifier"
+msgstr "el predicat deu ser un identificador"
+
+#: cpplib.c:1738
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" reafirmat"
+
+#: cpplib.c:1968
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s sense acabar"
+
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: cppmacro.c:139 cppmacro.c:294
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna \"%s\" invàlida"
+
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "no es pot determinar la data i l'hora"
+
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "cadena literal invàlida, s'ignora el \"\\\" finals"
+
+#: cppmacro.c:504
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "pegar \"%s\" i \"%s\" no dóna un element vàlid de preprocessament"
+
+#: cppmacro.c:546
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requereix que la resta dels arguments sigui usat"
+
+#: cppmacro.c:551
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "la macro \"%s\" requereix %u arguments, però sol es proporcionen %u"
+
+#: cppmacro.c:556
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la macro \"%s\" va rebre %u arguments, però solament va prendre %u"
+
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
+
+#: cppmacro.c:776
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "la funció de macro \"%s\" es deu usar amb arguments en C tradicional"
+
+#: cppmacro.c:1314
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "paràmetre de macro \"%s\" duplicat"
+
+#: cppmacro.c:1351
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" podria faltar en la llista de paràmetre de macro"
+
+#: cppmacro.c:1359
+msgid "macro parameters must be comma-separated"
+msgstr "els paràmetres de macro deuen ser separats per comes"
+
+#: cppmacro.c:1376
+msgid "parameter name missing"
+msgstr "falta el nom del paràmetre"
+
+#: cppmacro.c:1391
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "els macros variadic anònims es van introduir en C99"
+
+#: cppmacro.c:1395
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C no permet macros variadic nomenats"
+
+#: cppmacro.c:1404
+msgid "missing ')' in macro parameter list"
+msgstr "falta parèntesi dret en la llista de paràmetres de macro"
+
+#: cppmacro.c:1472
+msgid "ISO C requires whitespace after the macro name"
+msgstr "ISO C requereix espais en blanc després del nom de macro"
+
+#: cppmacro.c:1500
+msgid "'#' is not followed by a macro parameter"
+msgstr "\"#\" no és seguit per un paràmetre de macro"
+
+#: cppmacro.c:1519
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "\"##\" no pot apareixer en o al final d'una expansió de macro"
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" re-definit"
+
+#: cppmacro.c:1606
+msgid "this is the location of the previous definition"
+msgstr "aquesta és la ubicació de la definició prèvia"
+
+#: cppmacro.c:1657
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "l'argument de macro \"%s\" deuria ser convertit a cadena en C traditional"
+
+#: cppmacro.c:1682
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipus de hash %d invàlid en cpp_macro_definition"
+
+#: cppspec.c:109
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "\"%s\" no es una opció vàlida per el preprocessador"
+
+#: cppspec.c:133
+msgid "too many input files"
+msgstr "massa fitxers d'entrada"
+
+#: cpptrad.c:841
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: cse.c:7195
+#, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; Processant el bloc de %d a %d, %d establerts.\n"
+
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr "((anònim))"
+
+#: diagnostic.c:928
+#, c-format
+msgid "%s: warnings being treated as errors\n"
+msgstr "%s: els avisos són tractats com errors\n"
+
+#: diagnostic.c:963
+#, c-format
+msgid "%s: %s: "
+msgstr "%s: %s: "
+
+#: diagnostic.c:1054
+#, c-format
+msgid "%s "
+msgstr "%s "
+
+#: diagnostic.c:1056
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: diagnostic.c:1078
+msgid "At top level:"
+msgstr "En el nivell principal:"
+
+#: diagnostic.c:1083
+#, c-format
+msgid "In member function `%s':"
+msgstr "en la funció membre \"%s\":"
+
+#: diagnostic.c:1087
+#, c-format
+msgid "In function `%s':"
+msgstr "En la funció \"%s\":"
+
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr "compilació acabada.\n"
+
+#: diagnostic.c:1193
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d: confusió per errors precedentes, abandó\n"
+
+#: diagnostic.c:1208 diagnostic.c:1316
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr ""
+"Si us plau, envieu un informe d'error complet,\n"
+"amd la font preprocessada si és oportú.\n"
+"Consulta %s per a les instruccions.\n"
+
+#: diagnostic.c:1314
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Error intern del compilador: Error al reportar rutines reentrades.\n"
+
+#: diagnostic.c:1376
+#, c-format
+msgid "in %s, at %s:%d"
+msgstr "en %s, en %s:%d"
+
+#: diagnostic.c:1397
+#, c-format
+msgid "In file included from %s:%d"
+msgstr "En el fitxer inclòs de %s:%d"
+
+#: diagnostic.c:1400
+#, c-format
+msgid ""
+",\n"
+" from %s:%d"
+msgstr ""
+",\n"
+" de %s:%d"
+
+#: diagnostic.c:1401
+msgid ":\n"
+msgstr ":\n"
+
+#: diagnostic.c:1445 diagnostic.c:1462
+#, c-format
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr "\"%s\" és depreciat (declarat a %s:%d)"
+
+#: diagnostic.c:1465
+#, c-format
+msgid "`%s' is deprecated"
+msgstr "\"%s\" és depreciat"
+
+#: diagnostic.c:1468
+#, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "type és depreciat (declarat a %s:%d)"
+
+#: diagnostic.c:1471
+msgid "type is deprecated"
+msgstr "type és depreciat"
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3135
+#, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "DW_LOC_OP %s no està implementat\n"
+
+#: dwarfout.c:2066
+#, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "regno intern mal fet: \"%s\" té regno = %d\n"
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr ""
+
+#: dwarfout.c:6278
+msgid "can't get current directory"
+msgstr "no es pot obtenir el directori actual"
+
+#: emit-rtl.c:1155
+msgid "can't access real part of complex value in hard register"
+msgstr "No es pot accedir a la part real d'un valor complex en un registre fix"
+
+#: emit-rtl.c:1177
+msgid "can't access imaginary part of complex value in hard register"
+msgstr "No es pot accedir a la part imaginària d'un valor complex en un registre fix"
+
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr "ICE:s'usa emit_insn on es necessita emit_jump_insn:\n"
+
+#: errors.c:136
+#, c-format
+msgid "abort in %s, at %s:%d"
+msgstr "abandó en %s, en %s:%d"
+
+#: except.c:369
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "maneig d'excepcions desactivat, usi -fexceptions per a activar"
+
+#: except.c:2994
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr "l'argument de \"__builtin_eh_return_regno\" deu ser constant"
+
+#: except.c:3137
+msgid "__builtin_eh_return not supported on this target"
+msgstr "no es dóna suport a _builtin_eh_return en aquest objectiu"
+
+#: explow.c:1408
+msgid "stack limits not supported on this target"
+msgstr "no es dóna suport a límits de la pila en aquest objectiu"
+
+#: expr.c:3355
+msgid "function using short complex types cannot be inline"
+msgstr "les funcions que usen tipus short complex no poden ser inline"
+
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+msgid "unsupported wide integer operation"
+msgstr "operació d'enters amples sense suport"
+
+#: expr.c:6669
+#, c-format
+msgid "prior parameter's size depends on `%s'"
+msgstr "la grandària del paràmetre previ depèn de \"%s\""
+
+#: expr.c:7005
+msgid "returned value in block_exit_expr"
+msgstr "es va regressar un valor en block_exit_expr"
+
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+msgid "cannot take the address of an unaligned member"
+msgstr "no es pot prendre l'adreça d'un membre desalineat"
+
+#: final.c:1342
+msgid "negative insn length"
+msgstr "longitud insn negativa"
+
+#: final.c:2793
+msgid "could not split insn"
+msgstr "no es pot separar insn"
+
+#: final.c:3141
+msgid "invalid `asm': "
+msgstr "\"asm\" invàlid: "
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
+msgstr "reunió de dialectes alternatius imbricats"
+
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
+msgstr "reunió de dialectes alternatius no terminada"
+
+#: final.c:3401
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr "falta nombre operant després de %%-letter"
+
+#: final.c:3404 final.c:3443
+msgid "operand number out of range"
+msgstr "nombre operant fora de rang"
+
+#: final.c:3462
+#, c-format
+msgid "invalid %%-code"
+msgstr "%%-codi invàlid"
+
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
+msgstr "l'operant \"%%l\" no és una etiqueta"
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+msgid "floating constant misused"
+msgstr "constant de coma flotant mal usada"
+
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+msgid "invalid expression as operand"
+msgstr "expressió invàlida com operant"
+
+#: flow.c:352
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr "la funció pot ser un candidat possible per a l'atribut \"noreturn\""
+
+#: flow.c:357
+msgid "`noreturn' function does return"
+msgstr "la funció \"noreturn\" retorna"
+
+#: flow.c:378
+msgid "control reaches end of non-void function"
+msgstr "el control arriba a el final d'una funció que no és void"
+
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "Intent d'esborrar insn pròleg/epíleg:"
+
+#: fold-const.c:2546 fold-const.c:2559
+#, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "la comparança sempre és %d a causa de l'amplària del camp de bit"
+
+#: fold-const.c:3753 fold-const.c:3770
+#, c-format
+msgid "comparison is always %d"
+msgstr "la comparança sempre és %d"
+
+#: fold-const.c:3901
+msgid "`or' of unmatched not-equal tests is always 1"
+msgstr "un \"or\" de proves no equivalents sense coincidència sempre és 1"
+
+#: fold-const.c:3906
+msgid "`and' of mutually exclusive equal-tests is always 0"
+msgstr "un \"and\" de proves equivalents mútuament exclusives sempre és 0"
+
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "la grandària de la variable \"%s\" és massa gran"
+
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr "restricció impossible en \"asm\""
+
+#: function.c:5527
+#, c-format
+msgid "`%s' might be used uninitialized in this function"
+msgstr "\"%s\" es deuria usar sense iniciar en aquesta funció"
+
+#: function.c:5534
+#, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "la variable \"%s\" podria ser sobreescrita per \"longjmp\" o \"vfork\""
+
+#: function.c:5553
+#, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "l'argument \"%s\" podria ser sobreescrit per \"longjmp\" o \"vfork\""
+
+#: function.c:6420
+msgid "function returns an aggregate"
+msgstr "la funció retorna un agregat"
+
+#: function.c:6925
+#, c-format
+msgid "unused parameter `%s'"
+msgstr "paràmetre \"%s\" sense ús"
+
+#: gcc.c:1107
+#, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "abreujament ambigu %s"
+
+#: gcc.c:1134
+#, c-format
+msgid "incomplete `%s' option"
+msgstr "Opció \"%s\" incompleta"
+
+#: gcc.c:1145
+#, c-format
+msgid "missing argument to `%s' option"
+msgstr "Falten arguments per a l'opció \"%s\""
+
+#: gcc.c:1158
+#, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "argument estrany per a l'opció \"%s\""
+
+#: gcc.c:1486
+msgid "Using built-in specs.\n"
+msgstr "Usant especificacions internes.\n"
+
+#: gcc.c:1667
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+"Canviant l'especificació de %s a \"%s\"\n"
+"\n"
+
+#: gcc.c:1774
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr "Llegint especificacions de %s\n"
+
+#: gcc.c:1872 gcc.c:1891
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "specs sintaxi mal formada de %%include després de %ld caràcters"
+
+#: gcc.c:1899
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr "No es pot trobar el fitxer d'especificacions %s\n"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "specs sintaxi mal formada de %%rename després de %ld caràcters"
+
+#: gcc.c:1951
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "specs l'especificació %s no es va trobar per a ser re-nomenada"
+
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr "re-nomenada especificació %s a %s\n"
+
+#: gcc.c:1965
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+"la especificació és \"%s\"\n"
+"\n"
+
+#: gcc.c:1978
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "specs comanda %% desconegut després de %ld caràcters"
+
+#: gcc.c:1989 gcc.c:2002
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "specs fitxer mal format després de %ld caràcters"
+
+#: gcc.c:2056
+msgid "spec file has no spec for linking"
+msgstr "el fitxer d'especificacions no té especificacions per a enllaçar"
+
+#: gcc.c:2554
+msgid "-pipe not supported"
+msgstr "-pipe no té suport"
+
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+"\n"
+"Continuar? (s o n) "
+
+#: gcc.c:2735
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr ""
+"Error intern: %s (programa %s)\n"
+"Per favor envieu un informe complet d'error.\n"
+"Consulta %s per a més instruccions."
+
+#: gcc.c:2753
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:2883
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Utilització: %s [opcions] fitxer...\n"
+
+#: gcc.c:2884
+msgid "Options:\n"
+msgstr "Opcions:\n"
+
+#: gcc.c:2886
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes Sortir amb el codi d'error més alt d'una fase\n"
+
+#: gcc.c:2887
+msgid " --help Display this information\n"
+msgstr " --help Mostra aquesta informació\n"
+
+#: gcc.c:2888
+msgid " --target-help Display target specific command line options\n"
+msgstr ""
+" --target-help Mostra opcions de línia de comando específiques de\n"
+" l'objectiu\n"
+
+#: gcc.c:2890
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " (Usi \"-v --help\" per a mostrar les opcions de línia de comando dels subprocès)\n"
+
+#: gcc.c:2891
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs Mostra totes les cadenes internes d'especificació\n"
+
+#: gcc.c:2892
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion Mostra la versió del compilador\n"
+
+#: gcc.c:2893
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine Mostra el processador objectiu del compilador\n"
+
+#: gcc.c:2894
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr ""
+" -print-search-dirs Mostra les directoris en la ruta de recerca del\n"
+" compilador\n"
+
+#: gcc.c:2895
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr ""
+" -print-libgcc-file-name Mostra el nom de la biblioteca que acompanya el\n"
+" compilador\n"
+
+#: gcc.c:2896
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<lib> Mostra la ruta completa a la biblioteca <lib>\n"
+
+#: gcc.c:2897
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr ""
+" -print-prog-name=<prog> Mostra la ruta completa del programa component del\n"
+" compilador <prog>\n"
+
+#: gcc.c:2898
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory Mostra el directori arrel per a versoins de libgcc\n"
+
+#: gcc.c:2899
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr ""
+" -print-multi-lib Mostra el mapatge entre les opcions de línia de\n"
+" comanda i els múltiples directoris de la recerca\n"
+" de biblioteques\n"
+
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory Mostra la ruta relativa per a les biblioteques del SO\n"
+
+#: gcc.c:2903
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<options> Passa <opcions> separades per coma al assemblador\n"
+
+#: gcc.c:2904
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<opcions> Passa <opcions> separades per coma al preprocesador\n"
+
+#: gcc.c:2905
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<opcions> Passa <opcions> separades per coma al enllaçador\n"
+
+#: gcc.c:2906
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <arg> Passa el <arg> al enllaçador\n"
+
+#: gcc.c:2907
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps No esborra els fitxers intermedis\n"
+
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe Usa canonades en lloc de fitxers intermedis\n"
+
+#: gcc.c:2909
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time Obté el temps d'execució de cada subprocès\n"
+
+#: gcc.c:2910
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr ""
+" -specs=<file> Sobreposa les especificacions internes amb el\n"
+" contingut de <fitxer>\n"
+
+#: gcc.c:2911
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr ""
+" -std=<estàndard> Assumeix que les fitxers d'entrada són per a el\n"
+" <estàndard>\n"
+
+#: gcc.c:2912
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr ""
+" -B <directori> Agrega el <directori> a les rutes de recerca del\n"
+" compilador\n"
+
+#: gcc.c:2913
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr ""
+" -b <màquina> Executa gcc per a l'objectiu <màquina>,\n"
+" si va ser instal·lat\n"
+
+#: gcc.c:2914
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr ""
+" -V <versió> Executa el gcc amb nombre de versió <versió>,\n"
+" si va ser instal·lat\n"
+
+#: gcc.c:2915
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v Mostra els programes invocats pel compilador\n"
+
+#: gcc.c:2916
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr ""
+" -### Com -v però les opcions i comandes entr \"\" no estan\n"
+" executades\n"
+
+#: gcc.c:2917
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr " -E Solament preprocessa; no compila, assembla o enllaça\n"
+
+#: gcc.c:2918
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S Solament compila; no assembla o enllaça\n"
+
+#: gcc.c:2919
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c Compila i assembla, però no enllaça\n"
+
+#: gcc.c:2920
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <fitxer> Col·loca la sortida en el <fitxer>\n"
+
+#: gcc.c:2921
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
+msgstr ""
+" -x <llenguatge> Especifica el llenguatge dels següents fitxers d''\n"
+" entrada. Els llenguatges permesos inclouen: c c++\n"
+" assembler none. \"none\" significa revertir a la\n"
+" conducta habitual de endevinar el llenguatge basat\n"
+" en l'extensió del fitxer\n"
+
+#: gcc.c:2928
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+"\n"
+"Les opcions que comencen amb -g, -f, -m, -O, -W, o --param es passen\n"
+" automàticament als varis subprocesos invocats per %s. Per passar altres\n"
+" opcions a aquests processos es deuen usar les opcions -W<lletra>\n"
+
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "l'opció \"-%c\" deu tenir arguments"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr "%s (GCC) %s\n"
+
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+"Això és programari lliure; vegi el codi font per a les condicions de còpia.\n"
+"Aquest és programari lliure; vegeu el codi font per les condicions\n"
+"de còpia. No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o\n"
+"ADEQUACIÓ A UN PROPÒSIT PARTICULAR.\n"
+
+#: gcc.c:3366
+msgid "argument to `-Xlinker' is missing"
+msgstr "falta l'argument per a \"-Xlinker\""
+
+#: gcc.c:3374
+msgid "argument to `-l' is missing"
+msgstr "falta l'argument per a \"-I\""
+
+#: gcc.c:3391
+msgid "argument to `-specs' is missing"
+msgstr "falta l'argument per a \"-specs\""
+
+#: gcc.c:3406
+msgid "argument to `-specs=' is missing"
+msgstr "falta l'argument per a \"-specs=\""
+
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr ""
+
+#: gcc.c:3445
+msgid "argument to `-B' is missing"
+msgstr "falta l'argument per a \"-B\""
+
+#: gcc.c:3618
+msgid "cannot specify -o with -c or -S and multiple compilations"
+msgstr "no es pot especificar -o amb -c o -S i múltiples compilacions"
+
+#: gcc.c:3791
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "Avís: s'ignora -pipe perquè es va especificar -save-temps"
+
+#: gcc.c:3795
+msgid "warning: -pipe ignored because -time specified"
+msgstr "Avís: s'ignora -pipe perquè es va especificar -time"
+
+#: gcc.c:3807
+msgid "argument to `-x' is missing"
+msgstr "falta l'argument per a \"-x\""
+
+#: gcc.c:3835
+#, c-format
+msgid "argument to `-%s' is missing"
+msgstr "falta l'argument per a \"-%s\""
+
+#: gcc.c:3896
+#, c-format
+msgid "warning: `-x %s' after last input file has no effect"
+msgstr "avís: \"-x %s\" després de l'últim fitxer d'entrada no té efecte"
+
+#: gcc.c:4241
+msgid "invalid specification! Bug in cc"
+msgstr "Especificació invàlida! Bug en cc."
+
+#: gcc.c:4395
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
+#, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "Falla en spec: \"%%*\" no ha estat iniciat per coincidència de patró"
+
+#: gcc.c:4964
+#, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "Avís: ús de l'operador obsolet %%[ en specs"
+
+#: gcc.c:4982
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "Processant l'especificació %c%s%c, el qual és \"%s\"\n"
+
+#: gcc.c:5107
+#, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "Falla en spec: Opció d'especificació \"%c\" no reconeguda"
+
+#: gcc.c:5188
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr "funció d'especificació \"%s\" desconeguda"
+
+#: gcc.c:5207
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr "error en els arguments per a la funció d'especificació \"%s\""
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr "nom de la funció d'especificació malformat"
+
+#. )
+#: gcc.c:5259
+msgid "no arguments for spec function"
+msgstr "molt pocs arguments per a la funció spec"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
+msgid "mismatched braces in specs"
+msgstr "claus sense coincidència en especificacions"
+
+#: gcc.c:6081
+#, c-format
+msgid "unrecognized option `-%s'"
+msgstr "opció \"-%s\" no reconeguda"
+
+#: gcc.c:6087
+#, c-format
+msgid "install: %s%s\n"
+msgstr "instal·lar: %s%s\n"
+
+#: gcc.c:6088
+#, c-format
+msgid "programs: %s\n"
+msgstr "programes: %s\n"
+
+#: gcc.c:6089
+#, c-format
+msgid "libraries: %s\n"
+msgstr "biblioteques: %s\n"
+
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"Per a instruccions de report de bug, si us plau per favor vegi:\n"
+
+#: gcc.c:6162
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "Configurat amb: %s\n"
+
+#: gcc.c:6176
+#, c-format
+msgid "Thread model: %s\n"
+msgstr "Model de fils: %s\n"
+
+#: gcc.c:6187
+#, c-format
+msgid "gcc version %s\n"
+msgstr "gcc versió %s\n"
+
+#: gcc.c:6189
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "controlador gcc versió %s executant gcc versió %s\n"
+
+#: gcc.c:6197
+msgid "no input files"
+msgstr "no hi ha fitxers d'entrada"
+
+#: gcc.c:6235
+#, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: el compilador %s no està instal·lat en aquest sistema"
+
+#: gcc.c:6310
+#, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s: fitxer d'entrada de l'enllaçador sense ùs perquè no es va fer enllaç"
+
+#: gcc.c:6353
+#, c-format
+msgid "language %s not recognized"
+msgstr "no es reconeix el llenguatge %s"
+
+#: gcc.c:6456
+msgid "internal gcc abort"
+msgstr "avortament intern de gcc"
+
+#: gcov.c:325
+msgid "Internal gcov abort.\n"
+msgstr "avortament intern de gcov.\n"
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+"Us: gcov [OPCIO]... FITXERFONT\n"
+"\n"
+
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+"Produire les informacions de la covertura del codi.\n"
+"\n"
+
+#: gcov.c:340
+msgid " -h, --help Print this help, then exit\n"
+msgstr " -h, --help Mostra aquesta informació, i surt\n"
+
+#: gcov.c:341
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -v, --version Mostra el numero de versió, i surt\n"
+
+#: gcov.c:342
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr " -b, --branch-probabilities Incloure les probabilitats de brancament en la sortida\n"
+
+#: gcov.c:343
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr ""
+" -c, --branch-counts Dóna el compte de branques pres\n"
+" enlloc de percentatges\n"
+
+#: gcov.c:345
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -n, --no-output No crea un fitxer de sortida\n"
+
+#: gcov.c:346
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr ""
+" -l, --long-file-names Usar nom de fitxers de sortida llargs per a\n"
+" les fitxers font inclòs\n"
+
+#: gcov.c:348
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr " -f, --function-summaries Fer un resum per a cada funció\n"
+
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr " -o, --object-directory DIR|FIT Cerca les fitxers objectes en DIR o el FITxer\n"
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr ""
+
+#: gcov.c:351
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"Per a instrucions d'informe de bug, si us plau consulta:\n"
+"%s.\n"
+
+#: gcov.c:361
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr "gcov (GCC) %s\n"
+
+#: gcov.c:362
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+
+#: gcov.c:500
+#, c-format
+msgid "Could not open basic block file %s.\n"
+msgstr "No es pot obrir fitxer de bloc bàsic %s.\n"
+
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "No es pot obrir el fitxer del graf de fluix del programa %s.\n"
+
+#: gcov.c:524
+#, c-format
+msgid "Could not open data file %s.\n"
+msgstr "No es pot obrir fitxer de dades %s.\n"
+
+#: gcov.c:525
+msgid "Assuming that all execution counts are zero.\n"
+msgstr "Assumint que tots els comptes d'execició estan a zero.\n"
+
+#: gcov.c:534
+#, c-format
+msgid "No executable code associated with file %s.\n"
+msgstr "No hi ha codi executable associat al fitxer %s.\n"
+
+#: gcov.c:1186
+#, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "es van executar %s de %d línies en %s %s\n"
+
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "No hi ha línies de codi font executable en %s %s\n"
+
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%s de %d ramificacions executades en %s %s\n"
+
+#: gcov.c:1203
+#, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%s de %d ramificacions visitades almenys una vegada en %s %s\n"
+
+#: gcov.c:1209
+#, c-format
+msgid "No branches in %s %s\n"
+msgstr "No hi ha ramificacions en %s %s\n"
+
+#: gcov.c:1211
+#, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%s de %d cridades executades en %s %s\n"
+
+#: gcov.c:1216
+#, c-format
+msgid "No calls in %s %s\n"
+msgstr "No hi ha cridades en %s %s\n"
+
+#: gcov.c:1351
+#, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "no es van usar totes les entrades bb del graf, funció %s\n"
+
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr "block_num = %ld, num_blocks = %d\n"
+
+#: gcov.c:1367
+#, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr ""
+
+#: gcov.c:1383
+#, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "ERROR: massa blocs bàsics en la funció %s\n"
+
+#: gcov.c:1398
+#, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "ERROR: nombre de línies fora de rang en la funció %s\n"
+
+#: gcov.c:1470
+#, c-format
+msgid "Could not open source file %s.\n"
+msgstr "No es pot obrir el fitxer de codi font %s.\n"
+
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Avís: el fitxer actual %s és més nou que %s\n"
+
+#: gcov.c:1510
+#, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "EOF inesperat mentre es llegia el fitxer de codi font %s.\n"
+
+#: gcov.c:1532
+#, c-format
+msgid "call %2d never executed\n"
+msgstr "la cridada %2d mai s'executa\n"
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
+msgstr "la cridada %2d retorna %s\n"
+
+#: gcov.c:1543
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr "la ramificació %2d mai s'executa\n"
+
+#: gcov.c:1546
+#, c-format
+msgid "branch %2d taken %s\n"
+msgstr "ramificació %2d presa %s\n"
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr "Creant %s.\n"
+
+#: gcov.c:1613
+#, c-format
+msgid "Error writing output file %s.\n"
+msgstr "Error a l'escriure al fitxer de sortida %s.\n"
+
+#: gcov.c:1618
+#, c-format
+msgid "Could not open output file %s.\n"
+msgstr "No es pot obrir el fitxer de sortida %s.\n"
+
+#: gcse.c:763
+#, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE desactivat: %d > 1000 blocs bàsics i %d >= 20 blocs bord/bàsics"
+
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE desactivat: %d blocs bàsics i %d registres"
+
+#: genautomata.c:1490
+#, c-format
+msgid "Name `%s' contains quotes"
+msgstr ""
+
+#: genautomata.c:1621
+#, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "cadena \"%s\" invàlida en define_cpu_unit"
+
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "cadena \"%s\" invàlida en define_query_cpu_unit"
+
+#: genautomata.c:1682 genautomata.c:1685
+#, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "cadena \"%s\" invàlida en define_bypass"
+
+#: genautomata.c:1720
+#, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "primera cadena \"%s\" invàlida en exclusion_set"
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "segona cadena \"%s\" invàlida en exclusion_set"
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "primera cadena \"%s\" invàlida en presence_set"
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr ""
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "primera cadena \"%s\" invàlida en absence_set"
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr ""
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "opció·\"%s\" invàlida en automata_option"
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "\"%s\" invàlid en la reservació \"%s\""
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr ""
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr "la unitat \"%s\" s'exclou a ella mateixa"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "declaració repetida de l'autòmat \"%s\""
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "\"%s\" ja es va utilitzar com un nom de reservació de insn"
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr "l'autòmat \"%s\" no es va declarar"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "\"%s\" es declarat com una unitat de cpu"
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "\"%s\" està declarat com una reservació de cpu"
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "declaració repetida de la unitat \"%s\""
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "declaració repetida de la reservació \"%s\""
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "no hi ha reservació de insn \"%s\""
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "el mateix bypass \"%s - %s\" ja està definit"
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "el bypass \"%s - %s\" ja està definit"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr "l'autòmat \"%s\" no s'utilitza"
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr ""
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr "la unitat \"%s\" no s'utilitza"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr "la reservació \"%s\" no s'utilitza"
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "cicle en la definició de la reservació \"%s\""
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr "-split no té arguments"
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr "l'opció \"-split\" encara no s'ha implementat\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr "Errors en la descripció DFA"
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "Error a l'escriure el fitxer de descripció DFA %s"
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr "No hi ha fitxers d'entrada"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, c-format
+msgid "can't open %s"
+msgstr "no és pot obrir %s"
+
+#: haifa-sched.c:196
+#, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "fix_sched_param: paràmetre desconegut: %s"
+
+#: integrate.c:174
+msgid "function cannot be inline"
+msgstr "la funció no pot ser inline"
+
+#: integrate.c:178
+msgid "varargs function cannot be inline"
+msgstr "la funció varargs no pot ser inline"
+
+#: integrate.c:181
+msgid "function using alloca cannot be inline"
+msgstr "la funció que usa alloca no pot ser inline"
+
+#: integrate.c:184
+msgid "function using setjmp cannot be inline"
+msgstr "la funció que usa setjmp no pot ser inline"
+
+#: integrate.c:187
+msgid "function uses __builtin_eh_return"
+msgstr "la funció usa __builtin_eh_return"
+
+#: integrate.c:190
+msgid "function with nested functions cannot be inline"
+msgstr "una funció amb funcions niades no pot ser inline"
+
+#: integrate.c:194
+msgid "function with label addresses used in initializers cannot inline"
+msgstr "una funció amb adreces d'etiquetes usada en iniciadors no pot ser inline"
+
+#: integrate.c:201 integrate.c:245
+msgid "function too large to be inline"
+msgstr "la funció és massa gran per a ser inline"
+
+#: integrate.c:211
+msgid "no prototype, and parameter address used; cannot be inline"
+msgstr "no hi ha prototip, i s'usen adreces de paràmetre; no pot ser inline"
+
+#: integrate.c:218 integrate.c:263
+msgid "inline functions not supported for this return value type"
+msgstr "no es dóna suport a funcions inline per a aquest tipus de valor de retorn"
+
+#: integrate.c:223
+msgid "function with varying-size return value cannot be inline"
+msgstr "una funció amb valor de retorn de grandària variable no pot ser inline"
+
+#: integrate.c:230
+msgid "function with varying-size parameter cannot be inline"
+msgstr "una funció amb paràmetre de grandària variable no pot ser inline"
+
+#: integrate.c:233
+msgid "function with transparent unit parameter cannot be inline"
+msgstr "una funció amb paràmetre d'unitat transparent no pot ser inline"
+
+#: integrate.c:252
+msgid "function with computed jump cannot inline"
+msgstr "una funció amb salt calculat no pot ser inline"
+
+#: integrate.c:256
+msgid "function with nonlocal goto cannot be inline"
+msgstr "una funció amb goto no local no pot ser inline"
+
+#: integrate.c:270
+msgid "function with target specific attribute(s) cannot be inlined"
+msgstr "una funció amb atribut(s) específic(s) de l'objectiu no pot ser inline"
+
+#: line-map.c:198
+#, c-format
+msgid "In file included from %s:%u"
+msgstr "En el fitxer inclòs dès de %s:%u"
+
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ""
+",\n"
+" dès de %s:%u"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, c-format
+msgid "invalid parameter `%s'"
+msgstr "el paràmetre \"%s\" és invàlid"
+
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr ""
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr "fitxer .da corrupte"
+
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgstr "informació de profil corrupta: prob per a %d-%d pensa ser %d"
+
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
+msgstr "no es troba el fitxer %s, s'assumeix que el compte d'execució és zero."
+
+#: protoize.c:542
+#, c-format
+msgid "%s: internal abort\n"
+msgstr "%s: abandó intern\n"
+
+#: protoize.c:633
+#, c-format
+msgid "%s: error writing file `%s': %s\n"
+msgstr "%s: error a l'escriure al fitxer \"%s\": %s\n"
+
+#: protoize.c:678
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s: ùs \"%s [ -VqfnkN ] [ -i <icadena> ] [ nom_fitxer ... ]\"\n"
+
+#: protoize.c:681
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s: ùs \"%s [ -VqfnkNlgC ] [ -B <nom_directori> ] [ nom_fitxer ... ]\"\n"
+
+#: protoize.c:788
+#, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr "%s: avís: no hi ha accés de lectura per al fitxer \"%s\"\n"
+
+#: protoize.c:796
+#, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr "%s: avís: no hi ha accés d'escriptura per al fitxer \"%s\"\n"
+
+#: protoize.c:804
+#, c-format
+msgid "%s: warning: no write access for dir containing `%s'\n"
+msgstr "%s: avís: no hi ha accés d'escriptura per al directori que conté a \"%s\"\n"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s: nom de fitxer invàlid: %s\n"
+
+#: protoize.c:1374
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s: %s: no es pot obtenir l'estat: %s\n"
+
+#: protoize.c:1395
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s: error fatal: fitxer d'informació auxiliar corrupte en la línia %d\n"
+
+#: protoize.c:1731
+#, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
+msgstr "%s:%d: la declaració de la funció `%s' pren formes diferents\n"
+
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr "%s: compilant `%s'\n"
+
+#: protoize.c:2012
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s: esperar: %s\n"
+
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s: el subproces va rebre el senyal fatal %d\n"
+
+#: protoize.c:2025
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s: %s va acabar amb estat %d\n"
+
+#: protoize.c:2077
+#, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
+msgstr "%s: avís: falta el fitxer SYSCALLS \"%s\"\n"
+
+#: protoize.c:2086 protoize.c:2115
+#, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
+msgstr "%s: no es pot llegir el fitxer d'informació auxiliar \"%s\": %s\n"
+
+#: protoize.c:2131 protoize.c:2159
+#, c-format
+msgid "%s: can't get status of aux info file `%s': %s\n"
+msgstr "%s: no es pot obtenir l'estat del fitxer d'informació auxiliar \"%s\": %s\n"
+
+#: protoize.c:2187
+#, c-format
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
+msgstr "%s: no es pot obrir el fitxer d'informació auxiliar \"%s\" per a lectura: %s\n"
+
+#: protoize.c:2205
+#, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
+msgstr "%s: error al llegir el fitxer d'informació auxiliar \"%s\": %s\n"
+
+#: protoize.c:2218
+#, c-format
+msgid "%s: error closing aux info file `%s': %s\n"
+msgstr "%s: error al tancar el fitxer d'informació auxiliar \"%s\": %s\n"
+
+#: protoize.c:2234
+#, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
+msgstr "%s: no es pot esborrar el fitxer d'informació auxiliar \"%s\": %s\n"
+
+#: protoize.c:2316 protoize.c:4318
+#, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s: no es pot esborrar el fitxer \"%s\": %s\n"
+
+#: protoize.c:2395
+#, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr "%s: avís: no es pot renomenar el fitxer \"%s\" a \"%s\": %s\n"
+
+#: protoize.c:2520
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s: definicions externes de \"%s\" en conflicte\n"
+
+#: protoize.c:2524
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s: les declaracions de \"%s\" no es convertiran\n"
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s: llistes de conflictes per a \"%s\" a continuació:\n"
+
+#: protoize.c:2559
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+msgstr "%s: avís: usant llistes formals de %s(%d) per a la funció \"%s\"\n"
+
+#: protoize.c:2599
+#, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+msgstr "%s: %d: s'usa \"%s\" però falta en SYSCALLS\n"
+
+#: protoize.c:2605
+#, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
+msgstr "%s: %d: avís: no hi ha definició extern per a \"%s\"\n"
+
+#: protoize.c:2636
+#, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+msgstr "%s: avís: no hi ha definició static per a \"%s\" en el fitxer \"%s\"\n"
+
+#: protoize.c:2642
+#, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
+msgstr "%s: definicions static múltiples de \"%s\" en el fitxer \"%s\"\n"
+
+#: protoize.c:2815 protoize.c:2818
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s: %d: avís: codi font massa confús\n"
+
+#: protoize.c:3024
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s: %d: avís: no es va convertir la declaració de la funció varargs\n"
+
+#: protoize.c:3039
+#, c-format
+msgid "%s: declaration of function `%s' not converted\n"
+msgstr "%s: no es va convertir la declaració de la funció \"%s\"\n"
+
+#: protoize.c:3162
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+msgstr "%s: avís: massa llistes de paràmetres en la declaració de \"%s\"\n"
+
+#: protoize.c:3183
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr ""
+"\n"
+"%s: avís: molt poques llistes de paràmetres en la declaració de \"%s\"\n"
+
+#: protoize.c:3281
+#, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+msgstr "%s: %d: avís: es va trobar \"%s\" però s'esperava \"%s\"\n"
+
+#: protoize.c:3459
+#, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
+msgstr "%s: no es va inserir la declaració local per a la funció \"%s\"\n"
+
+#: protoize.c:3486
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr ""
+"\n"
+"%s: %d: avís: no es pot afegir la declaració per a\"%s\" en la cridada de macro\n"
+
+#: protoize.c:3560
+#, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
+msgstr "%s: no es van inserir les declaracions globals per al fitxer \"%s\"\n"
+
+#: protoize.c:3651 protoize.c:3681
+#, c-format
+msgid "%s: definition of function `%s' not converted\n"
+msgstr "%s: no es va convertir la definició de la funció \"%s\"\n"
+
+#: protoize.c:3670
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s: %d: avís: no es va convertir la definició de %s\n"
+
+#: protoize.c:4000
+#, c-format
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr "%s: es va trobar la definició de \"%s\" en %s(%d)\n"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+msgstr "%s: %d: avís: \"%s\" va ser exclòs pel preprocessament\n"
+
+#: protoize.c:4019
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s: no es va convertir la definició de la funció\n"
+
+#: protoize.c:4078
+#, c-format
+msgid "%s: `%s' not converted\n"
+msgstr "%s: no es va convertir \"%s\"\n"
+
+#: protoize.c:4086
+#, c-format
+msgid "%s: would convert file `%s'\n"
+msgstr "%s: es podria convertir el fitxer \"%s\"\n"
+
+#: protoize.c:4089
+#, c-format
+msgid "%s: converting file `%s'\n"
+msgstr "%s: convertint el fitxer \"%s\"\n"
+
+#: protoize.c:4099
+#, c-format
+msgid "%s: can't get status for file `%s': %s\n"
+msgstr "%s: no es pot obtenir l'estat del fitxer \"%s\": %s\n"
+
+#: protoize.c:4141
+#, c-format
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s: no es pot obrir el fitxer \"%s\" per a lectura: %s\n"
+
+#: protoize.c:4156
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr ""
+"\n"
+"%s: error al llegint el fitxer d'entrada \"%s\": %s\n"
+
+#: protoize.c:4190
+#, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
+msgstr "%s: no es pot crear/obrir el fitxer net \"%s\": %s\n"
+
+#: protoize.c:4295
+#, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
+msgstr "%s: avís: el fitxer \"%s\" ja havia estat guardat en \"%s\"\n"
+
+#: protoize.c:4303
+#, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr "%s: no es pot enllaçar el fitxer \"%s\" a \"%s\": %s\n"
+
+#: protoize.c:4333
+#, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
+msgstr "%s: no es pot crear/obrir el fitxer de sortida \"%s\": %s\n"
+
+#: protoize.c:4366
+#, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
+msgstr "%s: no es pot canviar la manera del fitxer \"%s\": %s\n"
+
+#: protoize.c:4541
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s: no es pot obtenir el directori de treball: %s\n"
+
+#: protoize.c:4639
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: els noms de fitxer d'entrada deuen tenir sufixos .c: %s\n"
+
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr ""
+
+#: reg-stack.c:673
+#, c-format
+msgid "output constraint %d must specify a single register"
+msgstr "la restricció de sortida %d deu especificar un sol registre"
+
+#: reg-stack.c:683
+#, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "la restricció de sortida %d no es pot especificar amb el clobber \"%s\""
+
+#: reg-stack.c:706
+msgid "output regs must be grouped at top of stack"
+msgstr "els registres de sortida deuen ser agrupats en la part superior de la pila"
+
+#: reg-stack.c:743
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "els registres extrets implícitament deuen ser agrupats en la part superior de la pila"
+
+#: reg-stack.c:762
+#, c-format
+msgid "output operand %d must use `&' constraint"
+msgstr "l'operant de sortida %d deu usar la restricció \"&\""
+
+#: regclass.c:756
+#, c-format
+msgid "can't use '%s' as a %s register"
+msgstr "no es pot usar \"%s\" com un registre %s"
+
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, c-format
+msgid "unknown register name: %s"
+msgstr "nom de registre desconegut: %s"
+
+#: regclass.c:782
+msgid "global register variable follows a function definition"
+msgstr "la variable de registre global segueix a una definició de funció"
+
+#: regclass.c:786
+msgid "register used for two global register variables"
+msgstr "nom de registre usat per dues variables de registre globals"
+
+#: regclass.c:791
+msgid "call-clobbered register used for global register variable"
+msgstr "registre de cridada alterada usat per a una variable de registre global"
+
+#: regrename.c:1899
+#, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "validate_value_data: [%u] next_regno erroni per a la cadena buida (%u)"
+
+#: regrename.c:1911
+#, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "validate_value_data: Cicle en la cadena regno (%u)"
+
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr "validate_value_data: [%u] oldest_regno erroni (%u)"
+
+#: regrename.c:1926
+#, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "validate_value_data: [%u] Registre no buit en la cadena (%s %u %i)"
+
+#: reload.c:1229
+msgid "cannot reload integer constant operand in `asm'"
+msgstr "no es pot recarregar operants constants enters en \"asm\""
+
+#: reload.c:1251
+msgid "impossible register constraint in `asm'"
+msgstr "restricció de registres impossible en \"asm\""
+
+#: reload.c:3461
+msgid "`&' constraint used with no register class"
+msgstr "es va usar la restricció \"&\" sense classe de registre"
+
+#: reload.c:3629
+msgid "unable to generate reloads for:"
+msgstr " no es poden generar recarregues per a:"
+
+#: reload.c:3630 reload.c:3844
+msgid "inconsistent operand constraints in an `asm'"
+msgstr "restriccions de operants inconsistents en un \"asm\""
+
+#: reload1.c:1250
+msgid "frame size too large for reliable stack checking"
+msgstr "la grandària del marc és massa gran per a una revisió fiable de la pila"
+
+#: reload1.c:1253
+msgid "try reducing the number of local variables"
+msgstr "intenti reduir el nombre de variables locals"
+
+#: reload1.c:1909
+#, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
+msgstr "no es pot trobar un registre en la classe \"%s\" mentre es recarrega \"asm\"."
+
+#: reload1.c:1913
+#, c-format
+msgid "unable to find a register to spill in class `%s'"
+msgstr "no es pot trobar un registre per a buidar la classe \"%s\"."
+
+#: reload1.c:1915
+msgid "this is the insn:"
+msgstr "això és el insn:"
+
+#: reload1.c:3938
+msgid "`asm' operand requires impossible reload"
+msgstr "l'operant \"asm\" requereix una recarrega impossible"
+
+#. It's the compiler's fault.
+#: reload1.c:5052
+msgid "could not find a spill register"
+msgstr "no es pot trobar un registre de buidat "
+
+#: reload1.c:5057
+msgid "`asm' operand constraint incompatible with operand size"
+msgstr "la restricció de l'operant \"asm\" és incompatible amb la grandària de l'operant"
+
+#. It's the compiler's fault.
+#: reload1.c:6679
+msgid "VOIDmode on an output"
+msgstr "VOIDmode en una sortida"
+
+#: reload1.c:6680
+msgid "output operand is constant in `asm'"
+msgstr "l'operant de sortida és constant en \"asm\""
+
+#: rtl-error.c:140
+msgid "unrecognizable insn:"
+msgstr "insn no recognoscible:"
+
+#: rtl-error.c:142
+msgid "insn does not satisfy its constraints:"
+msgstr "insn no satisfà les seves restriccions:"
+
+#: rtl.c:535
+#, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+msgstr "revisió RTL: accés de elt %d de \"%s\" amb l'últim elt %d en %s, en %s:%d"
+
+#: rtl.c:550
+#, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "revisió RTL: s'esperava el tipus elt %d \"%c\", es té \"%c\" (rtx %s) en %s, en %s:%d"
+
+#: rtl.c:566
+#, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "revisió RTL: s'esperava el tipus elt %d \"%c\" o \"%c\", es té \"%c\" (rtx %s) en %s, en %s:%d"
+
+#: rtl.c:579
+#, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+msgstr "Revisió RTL: s'esperava el codi \"%s\", es té \"%s\" en %s, en %s:%d"
+
+#: rtl.c:593
+#, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+msgstr "Revisió RTL: s'esperava el codi \"%s\" o \"%s\", es té \"%s\" en %s, en %s:%d"
+
+#: rtl.c:608
+#, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr "Revisió RTL: accés de elt %d de vector amb l'últim elt %d en %s, en %s:%d"
+
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "Revisió RTL: es va usar %s amb el codi rtx inesperat \"%s\" en %s, en %s:%d"
+
+#: stmt.c:766
+#, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
+msgstr "el salt a \"%s\" salta de forma invàlida a un contorn d'unió"
+
+#: stmt.c:1002 stmt.c:3766
+#, c-format
+msgid "label `%s' used before containing binding contour"
+msgstr "es va usar abans l'etiqueta \"%s\" que contenia un contorn d'unió"
+
+#: stmt.c:1190
+msgid "output operand constraint lacks `='"
+msgstr "la restricció d'operant de sortida manca de \"=\""
+
+#: stmt.c:1205
+#, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
+msgstr "la restricció de sortida \"%c\" per a l'operant %d no està al principi"
+
+#: stmt.c:1227
+msgid "operand constraint contains incorrectly positioned '+' or '='"
+msgstr "la restricció d'operant conté \"+\" o \"=\" mal posicionat"
+
+#: stmt.c:1233 stmt.c:1337
+#, c-format
+msgid "`%%' constraint used with last operand"
+msgstr "restricció \"%%\" utilitzada amd l'últim operant"
+
+#: stmt.c:1252
+msgid "matching constraint not valid in output operand"
+msgstr "la restricció coincident no és vàlida en l'operant de sortida"
+
+#: stmt.c:1328
+#, c-format
+msgid "input operand constraint contains `%c'"
+msgstr "la restricció d'operant d'entrada conté \"%c\""
+
+#: stmt.c:1368
+msgid "matching constraint references invalid operand number"
+msgstr "la restricció de coincidència fa referència a un nombre d'operant no vàlid"
+
+#: stmt.c:1400
+#, c-format
+msgid "invalid punctuation `%c' in constraint"
+msgstr "puntuació invàlida \"%c\" en la restricció"
+
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "els qualificadors asm per a la variable \"%s\" generen conflicte amb la lista d'agrupació asm"
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr "nom de registre desconegut \"%s\" en \"asm\""
+
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
+msgstr "més de %d operants en \"asm\""
+
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
+msgstr "el nombre de sortida %d no és directament dirrectionable"
+
+#: stmt.c:1728
+#, c-format
+msgid "asm operand %d probably doesn't match constraints"
+msgstr "l'operant asm %d probablement no coincideix amb les restriccions"
+
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr "l'agrupació asm causa conflictes amb l'operant de sortida"
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr "l'agrupació asm causa conflictes amb l'operant d'entrada"
+
+#: stmt.c:1929
+msgid "too many alternatives in `asm'"
+msgstr "massa alternatives en \"asm\""
+
+#: stmt.c:1941
+msgid "operand constraints for `asm' differ in number of alternatives"
+msgstr "les restriccions d'operants per a \"asm\" difereixen en el nombre d'alternatives"
+
+#: stmt.c:1994
+#, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "nom d'operant asm \"%s\" duplicat"
+
+#: stmt.c:2081
+msgid "missing close brace for named operand"
+msgstr "falta la clau final per a l'operant nomenat"
+
+#: stmt.c:2109
+#, c-format
+msgid "undefined named operand '%s'"
+msgstr "operant nomenat no definit \"%s\""
+
+#: stmt.c:3703
+#, c-format
+msgid "unused variable `%s'"
+msgstr "variable \"%s\" sense ús"
+
+#: stmt.c:5189
+#, c-format
+msgid "enumeration value `%s' not handled in switch"
+msgstr "el valor d'enumeració \"%s\" no es maneja en un switch"
+
+#: stmt.c:5214 stmt.c:5234
+#, c-format
+msgid "case value `%ld' not in enumerated type"
+msgstr "el valor de casi \"%ld\" no és un tipus enumerat"
+
+#: stmt.c:5217 stmt.c:5237
+#, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
+msgstr "el valor de casi \"%ld\" no és un tipus enumerat \"%s\""
+
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr "mancada el casi per defecte per a un switch"
+
+#: stor-layout.c:178
+msgid "type size can't be explicitly evaluated"
+msgstr "la grandària del tipus no pot ser avaluat explícitament"
+
+#: stor-layout.c:180
+msgid "variable-size type declared outside of any function"
+msgstr "tipus de grandària variable declarat fora de qualsevol funció"
+
+#: stor-layout.c:487
+#, c-format
+msgid "size of `%s' is %d bytes"
+msgstr "la grandària de \"%s\" és de %d octets"
+
+#: stor-layout.c:489
+#, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "la grandària de \"%s\" és major que %d octets"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
+msgstr "l'atribut packed causa una alineació ineficient per a \"%s\""
+
+#: stor-layout.c:911 stor-layout.c:1327
+#, c-format
+msgid "packed attribute is unnecessary for `%s'"
+msgstr "no és necessari l'atribut packed per a \"%s\""
+
+#: stor-layout.c:926
+#, c-format
+msgid "padding struct to align `%s'"
+msgstr "estructura de farcit per a alinear \"%s\""
+
+#: stor-layout.c:1289
+msgid "padding struct size to alignment boundary"
+msgstr "grandària de l'estructura de farcit per als límits d'alineació"
+
+#: stor-layout.c:1332
+msgid "packed attribute causes inefficient alignment"
+msgstr "l'atribut packed causa una alineació ineficient"
+
+#: stor-layout.c:1334
+msgid "packed attribute is unnecessary"
+msgstr "no és necessari l'atribut packed"
+
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"Temps d'execució (segons)\n"
+
+#. Print total time.
+#: timevar.c:503
+msgid " TOTAL :"
+msgstr " TOTAL :"
+
+#: timevar.c:539
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "temps en %s: %ld.%06ld (%ld%%)\n"
+
+#: tlink.c:399
+#, c-format
+msgid "collect: reading %s\n"
+msgstr "collect: llegint %s\n"
+
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr "collect: recompilant %s\n"
+
+#: tlink.c:674
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "collect: alterant %s en %s\n"
+
+#: tlink.c:721
+msgid "collect: relinking\n"
+msgstr "collect: reenllaçant\n"
+
+#: tlink.c:730
+#, c-format
+msgid "ld returned %d exit status"
+msgstr "ld va retornar l'estat de sortida %d"
+
+#: toplev.c:920
+msgid "Generate debugging info in default format"
+msgstr "Generar informació de depuració en el format per omissió"
+
+#: toplev.c:921
+msgid "Generate debugging info in default extended format"
+msgstr "Generar informació de depuració en el format estès per omissió"
+
+#: toplev.c:923
+msgid "Generate STABS format debug info"
+msgstr "Generar informació de depuració en el format STABS"
+
+#: toplev.c:924
+msgid "Generate extended STABS format debug info"
+msgstr "Generar informació de depuració en el format STABS estès"
+
+#: toplev.c:927
+msgid "Generate DWARF-1 format debug info"
+msgstr "Generar informació de depuració en el format DWARF-1"
+
+#: toplev.c:929
+msgid "Generate extended DWARF-1 format debug info"
+msgstr "Generar informació de depuració en el format DWARF-1 estès"
+
+#: toplev.c:932
+msgid "Generate DWARF-2 debug info"
+msgstr "Generar informació de depuració en el format DWARF-2"
+
+#: toplev.c:935
+msgid "Generate XCOFF format debug info"
+msgstr "Generar informació de depuració en el format XCOFF"
+
+#: toplev.c:936
+msgid "Generate extended XCOFF format debug info"
+msgstr "Generar informació de depuració en el format XCOFF estès"
+
+#: toplev.c:939
+msgid "Generate COFF format debug info"
+msgstr "Generar informació de depuració en el format COFF"
+
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr "Generar informació de depuració en el format VMS"
+
+#: toplev.c:981
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Realitzar l'eliminació de DWARF2 duplicats"
+
+#: toplev.c:983
+msgid "Do not store floats in registers"
+msgstr "No guardar floats en els registres"
+
+#: toplev.c:985
+msgid "Consider all mem refs through pointers as volatile"
+msgstr "Considerar totes les referències a memòria a través de punters com volatile"
+
+#: toplev.c:987
+msgid "Consider all mem refs to global data to be volatile"
+msgstr "Considerar totes les referències a dades globals com volatile"
+
+#: toplev.c:989
+msgid "Consider all mem refs to static data to be volatile"
+msgstr "Considerar totes les referències a dades static com volatile"
+
+#: toplev.c:991
+msgid "Defer popping functions args from stack until later"
+msgstr "Diferir l'extracció d'arguments de funcions de la pila fins més tard"
+
+#: toplev.c:993
+msgid "When possible do not generate stack frames"
+msgstr "Quan sigui possible no generar marcs de pila"
+
+#: toplev.c:995
+msgid "Optimize sibling and tail recursive calls"
+msgstr "Optimitzar les cridades recursives germanades i d'extrem"
+
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
+msgid "When running CSE, follow jumps to their targets"
+msgstr "Quan s'estigui executant CSE, seguir als salts als seus objectius"
+
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
+msgstr "Quan s'estigui executant CSE, seguir als salts condicionals"
+
+#: toplev.c:1003
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "Realitzar un nombre menor d'optimitzacions costoses"
+
+#: toplev.c:1005
+msgid "Perform jump threading optimizations"
+msgstr "Realitzar optimitzacions de filat de salts"
+
+#: toplev.c:1007
+msgid "Perform strength reduction optimizations"
+msgstr "Realitzar optimitzacions de reducció de força"
+
+#: toplev.c:1009
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "Realitzar el desenrollament del cicle quan es coneix el compte d'iteració"
+
+#: toplev.c:1011
+msgid "Perform loop unrolling for all loops"
+msgstr "Realitzar el desenrollament del cicle per a tots els cicles"
+
+#: toplev.c:1013
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "Generar instruccions de precarregament, si estan disponibles, per a matrius en cicles"
+
+#: toplev.c:1015
+msgid "Force all loop invariant computations out of loops"
+msgstr "Forçar que totes les computacions invariantes del cicle siguin fora del cicle"
+
+#: toplev.c:1017
+msgid "Strength reduce all loop general induction variables"
+msgstr "Enfortir la reducció de totes les variables generals d'inducció de cicle"
+
+#: toplev.c:1019
+msgid "Store strings in writable data section"
+msgstr "Guardar les cadenes en la secció de dades modificables"
+
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
+msgstr "Activar les optimitzacions de forats específiques de la màquina"
+
+#: toplev.c:1023
+msgid "Copy memory operands into registers before using"
+msgstr "Copiar els operants de memòria en registres abans d'usar-los"
+
+#: toplev.c:1025
+msgid "Copy memory address constants into regs before using"
+msgstr "Copiar les constants d'adreces de memòria en registres abans d'usar-los"
+
+#: toplev.c:1027
+msgid "Allow function addresses to be held in registers"
+msgstr "Permetre que les adreces de les funcions es conserven en registres"
+
+#: toplev.c:1029
+msgid "Integrate simple functions into their callers"
+msgstr "Integrar les funcions simples en els seus invocators"
+
+#: toplev.c:1031
+msgid "Generate code for funcs even if they are fully inlined"
+msgstr "Generar codi per a les funcions encara si estan completament inline"
+
+#: toplev.c:1033
+msgid "Pay attention to the 'inline' keyword"
+msgstr "Parar esment a la paraula clau \"inline\""
+
+#: toplev.c:1035
+msgid "Emit static const variables even if they are not used"
+msgstr "Emetre variables static const encara si no s'usen"
+
+#: toplev.c:1037
+msgid "Check for syntax errors, then stop"
+msgstr "Buscar errors de sintaxi, i aleshores detenir-se"
+
+#: toplev.c:1039
+msgid "Mark data as shared rather than private"
+msgstr "Marcar dades com compartits en lloc de privats"
+
+#: toplev.c:1041
+msgid "Enable saving registers around function calls"
+msgstr "Permetre guardar registres al voltant de cridades de funció"
+
+#: toplev.c:1043
+msgid "Return 'short' aggregates in memory, not registers"
+msgstr "Retornar els agregats \"short\" en memòria, no en registres"
+
+#: toplev.c:1045
+msgid "Return 'short' aggregates in registers"
+msgstr "Retornar els agregats \"short\" en registres"
+
+#: toplev.c:1047
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "Intentar emplenar les ranures de retard de les instruccions de ramificació"
+
+#: toplev.c:1049
+msgid "Perform the global common subexpression elimination"
+msgstr "Realitzar l'eliminació de subexpressions comuns globals"
+
+#: toplev.c:1051
+msgid "Perform enhanced load motion during global subexpression elimination"
+msgstr "Realitzar el moviment de càrrega millorada durant l'eliminació de subexpressions globals"
+
+#: toplev.c:1053
+msgid "Perform store motion after global subexpression elimination"
+msgstr "Realitzar el moviment de guardat després de l'eliminació de subexpressions globals"
+
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr "Realitzar les optimitzacions de cicle"
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr "Realitzar optimitzacions de salts creuats"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Realitzar la conversió de salts condicionals a execució condicional"
+
+#: toplev.c:1063
+msgid "Run CSE pass after loop optimizations"
+msgstr "Executar un pas CSE abans de les optimitzacions de cicles"
+
+#: toplev.c:1065
+msgid "Run the loop optimizer twice"
+msgstr "Executar el optimizador de cicles dues vegades"
+
+#: toplev.c:1067
+msgid "Delete useless null pointer checks"
+msgstr "Esborrar les revisions de punters nuls sense ús"
+
+#: toplev.c:1069
+msgid "Reschedule instructions before register allocation"
+msgstr "Recalendaritzar les instruccions abans de l'allotjament de registres"
+
+#: toplev.c:1071
+msgid "Reschedule instructions after register allocation"
+msgstr "Recalendaritzar les instruccions després de l'allotjament de registres"
+
+#: toplev.c:1073
+msgid "Enable scheduling across basic blocks"
+msgstr "Activar la calendarització entre blocs bàsics"
+
+#: toplev.c:1075
+msgid "Allow speculative motion of non-loads"
+msgstr "Permetre el moviment especulatiu de cap càrrega"
+
+#: toplev.c:1077
+msgid "Allow speculative motion of some loads"
+msgstr "Permetre el moviment especulatiu d'unes càrregues"
+
+#: toplev.c:1079
+msgid "Allow speculative motion of more loads"
+msgstr "Permetre el moviment especulatiu de més càrregues"
+
+#: toplev.c:1081
+msgid "Replace add,compare,branch with branch on count reg"
+msgstr "Reemplaçar add,compare,branch per branch en el compte de registres"
+
+#: toplev.c:1083
+msgid "Generate position independent code, if possible"
+msgstr "Generar codi independent de posició, si és possible"
+
+#: toplev.c:1086
+msgid "Enable exception handling"
+msgstr "Activar el maneig d'excepcions"
+
+#: toplev.c:1088
+msgid "Just generate unwind tables for exception handling"
+msgstr "Només generar matrius de desembolico per a maneig d'excepcions"
+
+#: toplev.c:1090
+msgid "Generate unwind tables exact at each instruction boundary"
+msgstr "Generar matrius de desembolico exactament en cada límit d'instrucció"
+
+#: toplev.c:1092
+msgid "Support synchronous non-call exceptions"
+msgstr "Suport per a excepcions síncrones no de cridades"
+
+#: toplev.c:1094
+msgid "Insert arc based program profiling code"
+msgstr "Inserir codi d'anàlisi de perfil basat en el programa arc"
+
+#: toplev.c:1096
+msgid "Create data files needed by gcov"
+msgstr "Crear fitxers de dades necessàries per a gcov"
+
+#: toplev.c:1098
+msgid "Use profiling information for branch probabilities"
+msgstr "Usar la informació d'anàlisi de perfil per a les probabilitats de ramificació"
+
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr "Activar el codi bàsic d'anàlisi de perfil del programa"
+
+#: toplev.c:1102
+msgid "Reorder basic blocks to improve code placement"
+msgstr "Reordenar els blocs bàsics per a millorar la ubicació del codi"
+
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr "Reordenar les funcions per a millorar la ubicació del codi"
+
+#: toplev.c:1106
+msgid "Do the register renaming optimization pass"
+msgstr "Fer el pas d'optimització de renomenació de registres"
+
+#: toplev.c:1108
+msgid "Do the register copy-propagation optimization pass"
+msgstr "Fer el pas d'optimització de còpia-propagació de registres"
+
+#: toplev.c:1110
+msgid "Do not put uninitialized globals in the common section"
+msgstr "No posar globals sense iniciar en la secció comuna"
+
+#: toplev.c:1112
+msgid "Do not generate .size directives"
+msgstr "No generar directives .size"
+
+#: toplev.c:1114
+msgid "place each function into its own section"
+msgstr "col·locar cada funció en la seva pròpia secció"
+
+#: toplev.c:1116
+msgid "place data items into their own section"
+msgstr "col·locar els elements de dades en la seva pròpia secció"
+
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
+msgstr "Agregar comentaris extra a la sortida del ensemblador"
+
+#: toplev.c:1120
+msgid "Output GNU ld formatted global initializers"
+msgstr "Obtenir iniciators globals amb format per a ld de GNU"
+
+#: toplev.c:1122
+msgid "Enables a register move optimization"
+msgstr "Permet una optimització de moviment de registres"
+
+#: toplev.c:1124
+msgid "Do the full regmove optimization pass"
+msgstr "Fa el pas complet d'optimització de moviment de registres"
+
+#: toplev.c:1126
+msgid "Pack structure members together without holes"
+msgstr "Empaqueta junts als membres de l'estructura sense forats"
+
+#: toplev.c:1128
+msgid "Insert stack checking code into the program"
+msgstr "Insereix codi de revisió de la pila en el programa"
+
+#: toplev.c:1130
+msgid "Specify that arguments may alias each other & globals"
+msgstr "Especifica que els arguments poden ser alies de cada altre i dels globals"
+
+#: toplev.c:1132
+msgid "Assume arguments may alias globals but not each other"
+msgstr "Assumir que els arguments poden ser alies de globals però no de cada altre"
+
+#: toplev.c:1134
+msgid "Assume arguments do not alias each other or globals"
+msgstr "Assumir que els arguments no poden ser alies de globals o de cada altre"
+
+#: toplev.c:1136
+msgid "Assume strict aliasing rules apply"
+msgstr "Assumir que s'apliquen les regles estrictes d'alies"
+
+#: toplev.c:1138
+msgid "Align the start of loops"
+msgstr "Alinear l'inici dels cicles"
+
+#: toplev.c:1140
+msgid "Align labels which are only reached by jumping"
+msgstr "Alinear les etiquetes que solament s'arriben a saltant"
+
+#: toplev.c:1142
+msgid "Align all labels"
+msgstr "Alinear totes les etiquetes"
+
+#: toplev.c:1144
+msgid "Align the start of functions"
+msgstr "Alinear l'inici de les funcions"
+
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "Intentar barrejar constants idèntiques a través de les unitats de compilació"
+
+#: toplev.c:1148
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "Intentar barrejar constants idèntiques i variables constants"
+
+#: toplev.c:1150
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "Suprimir la sortida de notes de nombres d'instrucció i nombres de línia en els bolcats de depuració"
+
+#: toplev.c:1152
+msgid "Instrument function entry/exit with profiling calls"
+msgstr "Instrumentar funcions entrada/sortida amb cridades d'anàlisi de perfil"
+
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr "Posar dades inicialitzades a zero en la secció bss"
+
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
+msgstr "Activar les optimitzacions SSA"
+
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
+msgstr "Activar la propagació de les constants condicionals SSA"
+
+#: toplev.c:1160
+msgid "Enable aggressive SSA dead code elimination"
+msgstr "Activar l'eliminació agressiva de codi mort SSA"
+
+#: toplev.c:1162
+msgid "External symbols have a leading underscore"
+msgstr "Els símbols externs tenen un subratllat inicial"
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr "Processar directives #ident"
+
+#: toplev.c:1166
+msgid "Enables an rtl peephole pass run before sched2"
+msgstr "Activa una execució de passada de forats rtl abans de sched2"
+
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
+msgid "Enables guessing of branch probabilities"
+msgstr "Activar la predicció de probabilitats de ramificació"
+
+#: toplev.c:1172
+msgid "Set errno after built-in math functions"
+msgstr "Establir errno després de les funcions matemàtiques internes"
+
+#: toplev.c:1174
+msgid "Floating-point operations can trap"
+msgstr "Les operacions de coma flotant poden capturar"
+
+#: toplev.c:1176
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+msgstr "Permetre optimitzacions matemàtiques que poden violar els estàndards IEEE o ANSI"
+
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr ""
+
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Generar codi per a revisar els límits abans de matrius"
+
+#: toplev.c:1182
+msgid "Convert floating point constant to single precision constant"
+msgstr "Convertir constants de coma flotant a constants de precisió simple"
+
+#: toplev.c:1184
+msgid "Report time taken by each compiler pass at end of run"
+msgstr "Reportar el temps pres per cada pas del compilador al final de l'execució"
+
+#: toplev.c:1186
+msgid "Report on permanent memory allocation at end of run"
+msgstr "Reportar l'allotjament en memòria permanent al final de l'execució"
+
+#: toplev.c:1188
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
+msgstr "Atrapar desbordaments signed en addició / substracció / multiplicació"
+
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr "Utilitzar coloració de grafes per a l'allotjament de registres."
+
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr "Compilar només per a ISO C90"
+
+#: toplev.c:1209
+msgid "Determine language standard"
+msgstr "Determinar el estàndard de llenguatge"
+
+#: toplev.c:1213
+msgid "Make bit-fields by unsigned by default"
+msgstr "Fer per omissió unsigned els camps de bit"
+
+#: toplev.c:1217
+msgid "Make 'char' be signed by default"
+msgstr "Fer que \"char\" sigui signed per omissió"
+
+#: toplev.c:1219
+msgid "Make 'char' be unsigned by default"
+msgstr "Fer que \"char\" sigui unsigned per omissió"
+
+#: toplev.c:1225
+msgid "Do not recognize the 'asm' keyword"
+msgstr "No reconèixer la paraula clau \"asm\""
+
+#: toplev.c:1228
+msgid "Do not recognize any built in functions"
+msgstr "No reconèixer cap funció interna"
+
+#: toplev.c:1230
+msgid "Assume normal C execution environment"
+msgstr "Assumir l'ambient normal d'execució C"
+
+#: toplev.c:1233
+msgid "Assume that standard libraries & main might not exist"
+msgstr "Assumir que podrien no existir les biblioteques estàndard i main"
+
+#: toplev.c:1236
+msgid "Allow different types as args of ? operator"
+msgstr "Permetre tipus diferents com arguments de l'operador ?"
+
+#: toplev.c:1239
+msgid "Allow the use of $ inside identifiers"
+msgstr "Permetre l'ús de $ dintre dels identificadors"
+
+#: toplev.c:1244
+msgid "Use the same size for double as for float"
+msgstr "Usar la mateixa grandària per a double que per a float"
+
+#: toplev.c:1247
+msgid "Use the smallest fitting integer to hold enums"
+msgstr "Usar l'enter adequat més petit per a contenir enumerats"
+
+#: toplev.c:1250
+msgid "Override the underlying type for wchar_t to `unsigned short'"
+msgstr "Fer de costat el tipus sota wchar_t per \"unsigned short\""
+
+#: toplev.c:1254
+msgid "Enable most warning messages"
+msgstr "Activar gairebé tots els missatges d'avís"
+
+#: toplev.c:1256
+msgid "Warn about casting functions to incompatible types"
+msgstr "Avisar per funcions de conversió a tipus incompatibles"
+
+#: toplev.c:1259
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "Avisar per funcions que podrien ser candidates per a atributs de format"
+
+#: toplev.c:1262
+msgid "Warn about casts which discard qualifiers"
+msgstr "Avisar sobre conversions que descarten calificators"
+
+#: toplev.c:1265
+msgid "Warn about subscripts whose type is 'char'"
+msgstr "Avisar sobre subindicis el tipus del qual és \"char\""
+
+#: toplev.c:1268 toplev.c:1271
+msgid "Warn if nested comments are detected"
+msgstr "Avisar si es detecten comentaris niats"
+
+#: toplev.c:1274
+msgid "Warn about possibly confusing type conversions"
+msgstr "Avisar sobre la possibilitat de conversió de tipus confuses"
+
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "No avisar sobre la divisió entera per zero en temps de compilació"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Avisar sobre l'equitat de proves de nombres de coma flotant"
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+msgstr "Avisar sobre anomalies de format de printf/scanf/strftime/strfmon"
+
+#: toplev.c:1287
+msgid "Don't warn about too many arguments to format functions"
+msgstr "No avisar sobre massa arguments per a les funcions de format"
+
+#: toplev.c:1289
+msgid "Warn about non-string-literal format strings"
+msgstr "Avisar sobre cadenes de format que no són cadenes literals"
+
+#: toplev.c:1292
+msgid "Warn about possible security problems with format functions"
+msgstr "Avisar sobre possibles problemes de seguretat amb funcions de format"
+
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "No avisar sobre formats de strftime que produeixen dos dígits per a l'any"
+
+#: toplev.c:1298
+msgid "Warn about implicit function declarations"
+msgstr "Avisar sobre la declaració implícita de funcions"
+
+#: toplev.c:1302
+msgid "Warn when a declaration does not specify a type"
+msgstr "Avisar quan una declaració no especifiqui un tipus"
+
+#: toplev.c:1307
+msgid "Warn about the use of the #import directive"
+msgstr "Avisar sobre l'ús de la directiva #import"
+
+#: toplev.c:1311
+msgid "Do not warn about using 'long long' when -pedantic"
+msgstr "No avisar sobre l'ús de \"long long\" quan s'usi -pedantic"
+
+#: toplev.c:1313
+msgid "Warn about suspicious declarations of main"
+msgstr "Avisar sobre declaracions sospitoses de main"
+
+#: toplev.c:1316
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Avisar sobre possibles claus faltantes al voltant d'assignadorsº"
+
+#: toplev.c:1319
+msgid "Warn about global funcs without previous declarations"
+msgstr "Avisar sobre funcions globals sense declaracions prèvies"
+
+#: toplev.c:1322
+msgid "Warn about global funcs without prototypes"
+msgstr "Avisar sobre funcions globals sense prototips"
+
+#: toplev.c:1325
+msgid "Warn about use of multicharacter literals"
+msgstr "Avisar sobre l'ús de literals multicaràcters"
+
+#: toplev.c:1328
+msgid "Warn about externs not at file scope level"
+msgstr "Avisar sobre externs que no estan en el nivell de l'abast del fitxer"
+
+#: toplev.c:1331
+msgid "Warn about possible missing parentheses"
+msgstr "Avisar sobre possibles parèntesis faltantes"
+
+#: toplev.c:1334
+msgid "Warn about function pointer arithmetic"
+msgstr "Avisar sobre l'aritmètica de punters de funcions"
+
+#: toplev.c:1337
+msgid "Warn about multiple declarations of the same object"
+msgstr "Avisar sobre declaracions múltiples del mateix objecte"
+
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "Avisar quan el tipus de devolució per defecte d'una funció canvia a int"
+
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Avisar sobre possibles violacions a les regles de seqüència de punt"
+
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Avisar sobre comparances signed/unsigned"
+
+#: toplev.c:1349
+msgid "Warn about non-prototyped function decls"
+msgstr "Avisar sobre declaracions de funció sense prototip"
+
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Avisar sobre construccions el significat de les quals canvia en ISO C"
+
+#: toplev.c:1355
+msgid "Warn when trigraphs are encountered"
+msgstr "Avisar si es troben trigrafes"
+
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "Avisar sobre pragmas no reconeguts"
+
+#: toplev.c:1363
+msgid "Mark strings as 'const char *'"
+msgstr "Marcar les cadenes com \"const char *\""
+
+#: toplev.c:1508
+msgid "Warn when a function is unused"
+msgstr "Avisar quan no s'usi una funció"
+
+#: toplev.c:1510
+msgid "Warn when a label is unused"
+msgstr "Avisar quan no s'usi una etiqueta"
+
+#: toplev.c:1512
+msgid "Warn when a function parameter is unused"
+msgstr "Avisar quan no s'usi un paràmetre d'una funció"
+
+#: toplev.c:1514
+msgid "Warn when a variable is unused"
+msgstr "Avisar quan no s'usi una variable"
+
+#: toplev.c:1516
+msgid "Warn when an expression value is unused"
+msgstr "Avisar quan no s'usi un valor d'una expressió"
+
+#: toplev.c:1518
+msgid "Do not suppress warnings from system headers"
+msgstr "No suprimir els avisos dels encapçalats del sistema"
+
+#: toplev.c:1520
+msgid "Treat all warnings as errors"
+msgstr "Tractar tots els avisos com errors"
+
+#: toplev.c:1522
+msgid "Warn when one local variable shadows another"
+msgstr "Avisar quan una variable local enfosque una altra"
+
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Avisar sobre interruptors enumerats, sense valor per defecte, que manquin d'un casi"
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Avisar sobre interruptors enumerats que manquin d'un casi per defecte"
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Avisar sobre tots els interruptors enumerats que manquin d'un casi específic"
+
+#: toplev.c:1530
+msgid "Warn about returning structures, unions or arrays"
+msgstr "Avisar sobre la devolució d'estructures, unions o matrius"
+
+#: toplev.c:1532
+msgid "Warn about pointer casts which increase alignment"
+msgstr "Avisar sobre conversió de punters que incrementi l'alineació"
+
+#: toplev.c:1534
+msgid "Warn about code that will never be executed"
+msgstr "Avisar sobre codi que mai s'executarà"
+
+#: toplev.c:1536
+msgid "Warn about uninitialized automatic variables"
+msgstr "Avisar sobre variables automàtiques sense iniciar"
+
+#: toplev.c:1538
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "Avisar quan una funció inline no pot ser inline"
+
+#: toplev.c:1540
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "Avisar quan l'atribut packed no té efecte en la disposició d'un struct"
+
+#: toplev.c:1542
+msgid "Warn when padding is required to align struct members"
+msgstr "Avisar quan es requereix farcit per a alinear als membres d'un struct"
+
+#: toplev.c:1544
+msgid "Warn when an optimization pass is disabled"
+msgstr "Avisar quan es va desactivar un pas d'optimització"
+
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "Avisar sobre el ùs de declaracions __attribute__((deprecated))"
+
+#: toplev.c:1548
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr "Avisar sobre funcions que podrien ser candidates per a l'atribut noreturn"
+
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Avisar sobre codi que pugui trencar les regles estrictes d'aliessis"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, c-format
+msgid "invalid option `%s'"
+msgstr "opció \"%s\" invàlida"
+
+#: toplev.c:2031
+#, c-format
+msgid "`%s' used but never defined"
+msgstr "\"%s\" utilitzat però mai definit"
+
+#: toplev.c:2034
+#, c-format
+msgid "`%s' declared `static' but never defined"
+msgstr "\"%s\" declarat \"static\" però mai definit"
+
+#: toplev.c:2057
+#, c-format
+msgid "`%s' defined but not used"
+msgstr "\"%s\" definit però no utilitzat"
+
+#: toplev.c:2280
+#, c-format
+msgid "invalid register name `%s' for register variable"
+msgstr "el nom de registre \"%s\" no és vàlid per a variable de registre"
+
+#: toplev.c:3697
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr " -ffixed-<registre> Marca el <registre> com no disponible per al compilador\n"
+
+#: toplev.c:3698
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr " -fcall-used-<registre> Marca el <registre> com corrupte per a cridades de funció\n"
+
+#: toplev.c:3699
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr " -fcall-saved-<registre> Marca el <registre> com preservat entre funcions\n"
+
+#: toplev.c:3700
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr " -finline-limit=<nombre> Limita la grandària de funcions inline a <nombre>\n"
+
+#: toplev.c:3701
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr " -fmessage-length=<nombre> Limita la longitud dels missatges de diagnòstic a <nombre> caràcters per línia. 0 suprimeix el cort de línia\n"
+
+#: toplev.c:3702
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr " -fdiagnostics-show-location=[once | every-line] Indica que tan seguit es deu emetre la informació d'ubicació del codi, com prefix, a l'inici dels diagnòstics quan està activat el cort de línia\n"
+
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr " -O[nombre] Establir el nivell d'optimització a [nombre]\n"
+
+#: toplev.c:3719
+msgid " -Os Optimize for space rather than speed\n"
+msgstr " -Os Optimitzar per a espai en lloc de velocitat\n"
+
+#: toplev.c:3731
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr " -pedantic Activar els avisos necessaris per a complir estrictament amb ISO C\n"
+
+#: toplev.c:3732
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr " -pedantic-errors Com -pedantic excepte que es produeixen errors\n"
+
+#: toplev.c:3733
+msgid " -w Suppress warnings\n"
+msgstr " -w Suprimir avisos\n"
+
+#: toplev.c:3734
+msgid " -W Enable extra warnings\n"
+msgstr " -W Activar avisos extra\n"
+
+#: toplev.c:3745
+msgid " -Wunused Enable unused warnings\n"
+msgstr " -Wunused Activar avisos sense usar\n"
+
+#: toplev.c:3746
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr " -Wlarger-than-<nombre> Avisar si un objecte és més gran que <nombre> octets\n"
+
+#: toplev.c:3747
+msgid " -p Enable function profiling\n"
+msgstr " -p Activar l'anàlisi de perfil de funcions\n"
+
+#: toplev.c:3748
+msgid " -o <file> Place output into <file> \n"
+msgstr " -o <fitxer> Situar la sortida en el <fitxer> \n"
+
+#: toplev.c:3749
+msgid ""
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
+msgstr ""
+" -G <nombre> Col·locar les dades globals i estàtics més petits que <nombre>\n"
+" octets en una secció especial (en alguns objectius)\n"
+
+#: toplev.c:3760
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr " -aux-info <fitxer> Emetre la informació de declaracions en el <fitxer>\n"
+
+#: toplev.c:3761
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr " -quiet No mostrar les funcions compilades o el temps transcorregut\n"
+
+#: toplev.c:3762
+msgid " -version Display the compiler's version\n"
+msgstr " -version Mostra la versió del compilador\n"
+
+#: toplev.c:3763
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr " -d[lletres] Activa els bolcats des de passos específics del compilador\n"
+
+#: toplev.c:3764
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr " -dumpbase <fitxer> Nom base a usar per als bolcats des de passos específics\n"
+
+#: toplev.c:3766
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr " -fsched-verbose=<nombre> Estableix el nivell de detall del calendaritzador\n"
+
+#: toplev.c:3768
+msgid " --help Display this information\n"
+msgstr " --help Mostra aquesta informació\n"
+
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+"\n"
+"Opcions específiques del llenguatge:\n"
+
+#: toplev.c:3795
+#, c-format
+msgid " %-23.23s [undocumented]\n"
+msgstr " %-23.23s [sense documentar]\n"
+
+#: toplev.c:3803 toplev.c:3817
+#, c-format
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr ""
+"\n"
+"A més hi ha opcions específiques de %s sense documentar.\n"
+
+#: toplev.c:3807
+#, c-format
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr ""
+"\n"
+" Opcions per a %s:\n"
+
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"Opcions específiques de l'objectiu:\n"
+
+#: toplev.c:3858 toplev.c:3877
+#, c-format
+msgid " -m%-23.23s [undocumented]\n"
+msgstr " -m%-23.23s [sense documentar]\n"
+
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr ""
+"\n"
+"A més hi ha opcions específiques de l'objectiu sense documentar.\n"
+
+#: toplev.c:3888
+msgid " They exist, but they are not documented.\n"
+msgstr " Existeixen, però no estan documentades.\n"
+
+#: toplev.c:3941
+#, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "opció de depuració de gcc no reconeguda: %c"
+
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "\"%s\": opció tls-model desconeguda"
+
+#: toplev.c:4034
+#, c-format
+msgid "unrecognized register name `%s'"
+msgstr "no es reconeix el nom de registre \"%s\""
+
+#: toplev.c:4059 toplev.c:5012
+#, c-format
+msgid "unrecognized option `%s'"
+msgstr "Opció \"%s\" no reconeguda"
+
+#: toplev.c:4107
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr "-Wid-clash-LEN ja no té suport"
+
+#: toplev.c:4184
+#, c-format
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr "usi -gdwarf -g%d per a DWARF v1, nivell %d"
+
+#: toplev.c:4187
+msgid "use -gdwarf-2 for DWARF v2"
+msgstr "usi -ddwarf-2 per a DWARF v2"
+
+#: toplev.c:4192
+#, c-format
+msgid "ignoring option `%s' due to invalid debug level specification"
+msgstr "ignorant l'opció \"%s\" a causa de l'especificació d'un nivell de depuració invàlid"
+
+#: toplev.c:4215 toplev.c:5010
+#, c-format
+msgid "`%s': unknown or unsupported -g option"
+msgstr "\"%s\": opció -g desconeguda o sense suport"
+
+#: toplev.c:4222
+#, c-format
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr "\"%s\" ignorat, té conflicte amb \"-g%s\""
+
+#: toplev.c:4304
+msgid "-param option missing argument"
+msgstr "falta l'argument per a l'opció -param"
+
+#: toplev.c:4313
+#, c-format
+msgid "invalid --param option: %s"
+msgstr "opció de --param invàlida: %s"
+
+#: toplev.c:4325
+#, c-format
+msgid "invalid parameter value `%s'"
+msgstr "valor de paràmetre \"%s\" invàlid"
+
+#: toplev.c:4565
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
+msgstr ""
+"%s%s%s versió %s (%s)\n"
+"%s\tcompilat amb GNU C versió %s.\n"
+"%s%s%s versió %s (%s) compilada per a CC.\n"
+
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
+msgid "options passed: "
+msgstr "opcions passades: "
+
+#: toplev.c:4659
+msgid "options enabled: "
+msgstr "options activades: "
+
+#: toplev.c:4718 java/jcf-write.c:3453
+#, c-format
+msgid "can't open %s for writing"
+msgstr "no es pot obrir obrir %s per a escriptura"
+
+#: toplev.c:5002
+#, c-format
+msgid "ignoring command line option '%s'"
+msgstr "ignorant l'opció de línia de comanda \"%s\""
+
+#: toplev.c:5005
+#, c-format
+msgid "(it is valid for %s but not the selected language)"
+msgstr "(és vàlida per a %s però no per al llenguatge seleccionat)"
+
+#: toplev.c:5039
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-Wuninitialized no té suport sense -O"
+
+#: toplev.c:5094
+msgid "instruction scheduling not supported on this target machine"
+msgstr "no es dóna suport a la planificació d'instruccions en aquest objectiu"
+
+#: toplev.c:5098
+msgid "this target machine does not have delayed branches"
+msgstr "aquesta màquina objectiu no té ramificacions alentides"
+
+#: toplev.c:5112
+#, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "no es dóna suport a -f%sleading-underscore en aquest objectiu"
+
+#: toplev.c:5175
+msgid "-ffunction-sections not supported for this target"
+msgstr "no es dóna suport a -ffunction-sections en aquest objectiu"
+
+#: toplev.c:5180
+msgid "-fdata-sections not supported for this target"
+msgstr "no es dóna suport a -fdata-sections en aquest objectiu"
+
+#: toplev.c:5187
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-ffunction-sections desactivat; fa impossible l'anàlisi de perfil"
+
+#: toplev.c:5194
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu"
+
+#: toplev.c:5200
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "no es dóna suport a -fprefetch-loop-arrays en aquest objectiu (prova switches -march)"
+
+#: toplev.c:5209
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "no es dóna suport a -fprefetch-loop-arrays amb -Os"
+
+#: toplev.c:5215
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-ffunction-sections podria afectar la depuració en alguns objectius"
+
+#: toplev.c:5327
+#, c-format
+msgid "error writing to %s"
+msgstr "error a l'escriure a %s"
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, c-format
+msgid "error closing %s"
+msgstr "error al tancar %s"
+
+#: tree-dump.c:702
+#, c-format
+msgid "could not open dump file `%s'"
+msgstr "no es pot obrir el fitxer de dump \"%s\""
+
+#: tree-dump.c:778
+#, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr "ignorant l'opció desconeguda \"%.*s\" dintre \"-f%s\""
+
+#: tree.c:3645
+msgid "arrays of functions are not meaningful"
+msgstr "les matrius de funcions no tenen significat"
+
+#: tree.c:3702
+msgid "function return type cannot be function"
+msgstr "el tipus de devolució d'una funció no pot ser una funció"
+
+#: tree.c:4557
+msgid "invalid initializer for bit string"
+msgstr "assignador invàlid per a cadena de bits"
+
+#: tree.c:4616
+#, c-format
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
+msgstr "revisió d'arbre: s'esperava %s, es té %s en %s, en %s:%d"
+
+#: tree.c:4633
+#, c-format
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr "revisió d'arbre: s'esperava classa \"%c\", es té \"%c\" (%s) en %s, en %s:%d"
+
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "revisió d'arbre: accés de *elt %d de tree_vec amb %d elts en %s, en %s:%d"
+
+#: varasm.c:455 config/i386/winnt.c:611
+#, c-format
+msgid "%s causes a section type conflict"
+msgstr "%s causa un conflicte de tipus de secció"
+
+#: varasm.c:841
+#, c-format
+msgid "register name not specified for `%s'"
+msgstr "no s'especifica nom de registre per a \"%s\""
+
+#: varasm.c:843
+#, c-format
+msgid "invalid register name for `%s'"
+msgstr "nom de registre invàlid per a \"%s\""
+
+#: varasm.c:846
+#, c-format
+msgid "data type of `%s' isn't suitable for a register"
+msgstr "el tipus de dades de \"%s\" no és adequat per a un registre"
+
+#: varasm.c:849
+#, c-format
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr "el registre especificat per \"%s\" no és adequat per al tipus de dades"
+
+#: varasm.c:858
+msgid "global register variable has initial value"
+msgstr "la variable de registre global té valor inicial"
+
+#: varasm.c:861
+msgid "volatile register variables don't work as you might wish"
+msgstr "les variables de registre volatile no funcionen com vostè volgués"
+
+#: varasm.c:894
+#, c-format
+msgid "register name given for non-register variable `%s'"
+msgstr "nom de registre donat per a una variable \"%s\" que no és registre"
+
+#: varasm.c:1542
+#, c-format
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+msgstr "l'alineació de \"%s\" és massa granda que l'alineació màxima del fitxer objecte. S'usa %d."
+
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
+#, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr "l'alineació sol·licitada per a %s és massa granda que l'alineació implementada de %d"
+
+#: varasm.c:4048
+msgid "initializer for integer value is too complicated"
+msgstr "el assignador per a un valor enter és massa complicat"
+
+#: varasm.c:4053
+msgid "initializer for floating value is not a floating constant"
+msgstr "el assignador per a un valor de coma flotant no és una constant de coma flotant"
+
+#: varasm.c:4120
+msgid "unknown set constructor type"
+msgstr "conjunt de tipus constructor desconegut"
+
+#: varasm.c:4334
+#, c-format
+msgid "invalid initial value for member `%s'"
+msgstr "valor inicial invàlid per al membre \"%s\""
+
+#: varasm.c:4525 varasm.c:4568
+#, c-format
+msgid "weak declaration of `%s' must precede definition"
+msgstr "la declaració feble de \"%s\" deu precedir a la definició"
+
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "la declaració feble de \"%s\" després del primer ús resulta en una conducta no especificada"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "la declaració feble de \"%s\" deu ser public"
+
+#: varasm.c:4575
+#, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr "no és dona suport a la declaració feble de \"%s\""
+
+#: varasm.c:4602 varasm.c:4677
+msgid "only weak aliases are supported in this configuration"
+msgstr "només els aliessis febles tenen suport en aquesta configuració"
+
+#: varasm.c:4685
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr "les definicions d'alies no tenen suport en aquesta configuració; ignorades"
+
+#: varasm.c:4716
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "els atributs de visibilitat no tenen suport en aquesta configuració; ignorats"
+
+#: varray.c:134
+#, c-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr "matriu virtual %s[%lu]: l'element %lu està fora del límit en %s, en %s:%d"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
+#, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr "no hi ha sclass per al stab %s (0x%x)\n"
+
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#\"%s\" no té suport per a %s#"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "El nombre màxim d'instruccions en una sola funció elegible per a inlining"
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "El nombre màxim d'instruccions quan es fa inlining automàticament"
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr "El nombre màxim d'instruccions per inlining repetit abans que gcc comenci a descartar inlining"
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr ""
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr "El nombre d'instruccions en una sola funció per a ser encara elegible per a inlining després de molt inlining recursiu"
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "El nombre màxim d'instruccions per al inliner de RTL"
+
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr "El nombre màxim d'instruccions per a considerar l'omplert d'una ranura de retard"
+
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr "El nombre màxim d'instruccions per a considerar la recerca d'informació de registres en viu exacta"
+
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "La longitud màxima de la llista d'operacions pendents del planificador de tasques"
+
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "La quantitat màxima de memòria a ser assignada per GCSE"
+
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "El nombre màxim de passos a realitzar quan es fa GCSE"
+
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "El nombre màxim d'instruccions per a considerar el desenrotllo en un cicle"
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "El nombre màxim de vores d'entrada per a considerar el salt creuat"
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr "massa opcions #pragma align=reset"
+
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
+msgstr "\"#pragma opcions\" malformat, ignorant"
+
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
+msgstr "escombraries al final de \"#pragma opcions\""
+
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr "\"#pragma opcions align={mac68k|power|reset}\" malformat, ignorant"
+
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "\"(\" faltant després de '#pragma unused', ignorant"
+
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "\")\" faltant després de '#pragma unused', ignorant"
+
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
+msgstr "escombraries al final de \"#pragma unused\""
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr "-msystem-v i -p són incompatibles"
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr "-msystem-v i -mthreads són incompatibles"
+
+#: config/alpha/alpha.c:342
+#, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "s'ignora -f%s per a Unicos/Mk (no és dona suport)"
+
+#: config/alpha/alpha.c:366
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "no és dona suport a -mieee en Unicos/Mk"
+
+#: config/alpha/alpha.c:377
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "no és dona suport a -mieee-with-inexact en Unicos/Mk"
+
+#: config/alpha/alpha.c:394
+#, c-format
+msgid "bad value `%s' for -mtrap-precision switch"
+msgstr "valor erroni \"%s\" per a l'interruptor -mtrap-precision"
+
+#: config/alpha/alpha.c:408
+#, c-format
+msgid "bad value `%s' for -mfp-rounding-mode switch"
+msgstr "valor erroni \"%s\" per a l'interruptor -mfp-rounding-mode"
+
+#: config/alpha/alpha.c:423
+#, c-format
+msgid "bad value `%s' for -mfp-trap-mode switch"
+msgstr "valor erroni \"%s\" per a l'interruptor -mfp-trap-mode"
+
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "valor erroni \"%s\" per a l'interruptor -mtls-size"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
+#, c-format
+msgid "bad value `%s' for -mcpu switch"
+msgstr "valor erroni \"%s\" per a l'interruptor -mcpu"
+
+#: config/alpha/alpha.c:473
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "no és dona suport al mode trap en Unicos/Mk"
+
+#: config/alpha/alpha.c:480
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr "el completat per programari de fp requereix una opció -mtrap-precision=i"
+
+#: config/alpha/alpha.c:496
+msgid "rounding mode not supported for VAX floats"
+msgstr "la manera d'arrodoniment no té suport per a floats de VAX"
+
+#: config/alpha/alpha.c:501
+msgid "trap mode not supported for VAX floats"
+msgstr "la manera de captura no té suport per a valors de coma flotant VAX"
+
+#: config/alpha/alpha.c:530
+#, c-format
+msgid "L%d cache latency unknown for %s"
+msgstr "latència de cau L%d desconeguda per a %s"
+
+#: config/alpha/alpha.c:545
+#, c-format
+msgid "bad value `%s' for -mmemory-latency"
+msgstr "valor erroni \"%s\" per a -mmemory-latency"
+
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, c-format
+msgid "invalid %%H value"
+msgstr "valor %%H invàlid"
+
+#: config/alpha/alpha.c:5625
+#, c-format
+msgid "invalid %%J value"
+msgstr "valor %%J invàlid"
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
+#, c-format
+msgid "invalid %%r value"
+msgstr "valor %%r invàlid"
+
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
+#, c-format
+msgid "invalid %%R value"
+msgstr "valor %%R invàlid"
+
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "valor %%N invàlid"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "valor %%P invàlid"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
+#, c-format
+msgid "invalid %%h value"
+msgstr "valor %%h invalíd"
+
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "valor %%L invàlid"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "valor %%m invàlid"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "valor %%M invàlid"
+
+#: config/alpha/alpha.c:5772
+#, c-format
+msgid "invalid %%U value"
+msgstr "valor %%U invalíd"
+
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
+#, c-format
+msgid "invalid %%s value"
+msgstr "valor %%s invalíd"
+
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "valor %%C invàlid"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
+#, c-format
+msgid "invalid %%E value"
+msgstr "valor %%E invalíd"
+
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr "reubicació unspec desconeguda"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
+#, c-format
+msgid "invalid %%xn code"
+msgstr "codi %%xn invalíd"
+
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
+msgid "Use hardware fp"
+msgstr "Usar fp de maquinari"
+
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
+msgid "Do not use hardware fp"
+msgstr "No usar fp de maquinari"
+
+#: config/alpha/alpha.h:281
+msgid "Use fp registers"
+msgstr "Usar registres fp"
+
+#: config/alpha/alpha.h:283
+msgid "Do not use fp registers"
+msgstr "No usar registres fp"
+
+#: config/alpha/alpha.h:284
+msgid "Do not assume GAS"
+msgstr "No assumir GAS"
+
+#: config/alpha/alpha.h:285
+msgid "Assume GAS"
+msgstr "Assumir GAS"
+
+#: config/alpha/alpha.h:287
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr "Requerir rutines de biblioteca matemàtica que compleixin amb IEEE (OSF/1)"
+
+#: config/alpha/alpha.h:289
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr "Emetre codi que compleixi amb IEEE, sense excepcionsinexactes"
+
+#: config/alpha/alpha.h:291
+msgid "Emit IEEE-conformant code, with inexact exceptions"
+msgstr "Emetre codi que compleixi amb IEEE, amb excepcions inexactes"
+
+#: config/alpha/alpha.h:293
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr "No emetre constants enteres complexes a memòria de només lectura"
+
+#: config/alpha/alpha.h:294
+msgid "Use VAX fp"
+msgstr "Usar fp VAX"
+
+#: config/alpha/alpha.h:295
+msgid "Do not use VAX fp"
+msgstr "No usar fp VAX"
+
+#: config/alpha/alpha.h:296
+msgid "Emit code for the byte/word ISA extension"
+msgstr "Emetre codi per a l'extensió ISA octet/word"
+
+#: config/alpha/alpha.h:299
+msgid "Emit code for the motion video ISA extension"
+msgstr "Emetre codi per a l'extensió ISA de vídeo en moviment"
+
+#: config/alpha/alpha.h:302
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr "Emetre codi per a l'extensió ISA de move i sqrt de fp"
+
+#: config/alpha/alpha.h:304
+msgid "Emit code for the counting ISA extension"
+msgstr "Emetre codi per a l'extensió ISA de compte"
+
+#: config/alpha/alpha.h:307
+msgid "Emit code using explicit relocation directives"
+msgstr "Emetre codi utilitzant directives explícites de reassignació"
+
+#: config/alpha/alpha.h:310
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "Emetre reassignació de 16 bits per a las àreas de dades petites"
+
+#: config/alpha/alpha.h:312
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "Emetre reassignació de 32 bits per a las àreas de dades petites"
+
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
+#. For -mcpu=
+#. For -mtune=
+#. For -mfp-rounding-mode=[n|m|c|d]
+#. For -mfp-trap-mode=[n|u|su|sui]
+#. For -mtrap-precision=[p|f|i]
+#. For -mmemory-latency=
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
+msgid "Use features of and schedule given CPU"
+msgstr "Usar les característiques d'el i el planificador del CPU donat"
+
+#: config/alpha/alpha.h:345
+msgid "Schedule given CPU"
+msgstr "planificat per al CPU donat"
+
+#: config/alpha/alpha.h:347
+msgid "Control the generated fp rounding mode"
+msgstr "Controlar la manera d'arrodoniment generat de fp"
+
+#: config/alpha/alpha.h:349
+msgid "Control the IEEE trap mode"
+msgstr "Controlar la manera de captura IEEE"
+
+#: config/alpha/alpha.h:351
+msgid "Control the precision given to fp exceptions"
+msgstr "Controlar la precisió donada a les excepcions de fp"
+
+#: config/alpha/alpha.h:353
+msgid "Tune expected memory latency"
+msgstr "Ajustar la latència esperada de memòria"
+
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
+#, c-format
+msgid "bad value (%s) for -mcpu switch"
+msgstr "valor erroni (%s) per a l'interruptor -mcpu"
+
+#: config/arc/arc.c:362
+#, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr "l'argument de l'atribut \"%s\" no és una cadena constant"
+
+#: config/arc/arc.c:369
+#, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr "l'argument de l'atribut \"%s\" no és \"ilink1\" o \"ilink2\""
+
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr "operant invàlid per al codi %%R"
+
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "operant invàlid per al codi %%H/%%L"
+
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr "operant invàlid per al codi %%U"
+
+#: config/arc/arc.c:1774
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr "operant invàlid per al codi %%V"
+
+#. Unknown flag.
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
+msgid "invalid operand output code"
+msgstr "operant invàlid per al codi de sortida"
+
+#: config/arm/arm.c:458
+#, c-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr "l'interruptor -mcpu=%s genera conflictes amb el switch -march="
+
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
+#, c-format
+msgid "bad value (%s) for %s switch"
+msgstr "valor erroni (%s) per a l'interruptor %s"
+
+#: config/arm/arm.c:604
+msgid "target CPU does not support APCS-32"
+msgstr "el CPU objectiu no té suport per a APCS-32"
+
+#: config/arm/arm.c:609
+msgid "target CPU does not support APCS-26"
+msgstr "el CPU objectiu no té suport per a APCS-26"
+
+#: config/arm/arm.c:615
+msgid "target CPU does not support interworking"
+msgstr "el CPU objectiu no té suport per a treball intern"
+
+#: config/arm/arm.c:621
+msgid "target CPU does not support THUMB instructions"
+msgstr "el CPU objectiu no té suport les instruccions THUMB"
+
+#: config/arm/arm.c:635
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr "habilitar el suport de rastrejo cap a endarrere només té significat quan es compila per al Thumb"
+
+#: config/arm/arm.c:638
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr "habilitar el suport de treball intern de cridades només té significat quan es compila per al Thumb"
+
+#: config/arm/arm.c:641
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr "habilitar el suport de treball intern de cridat només té significat quan es compila per al Thumb"
+
+#: config/arm/arm.c:647
+msgid "interworking forces APCS-32 to be used"
+msgstr "el treball intern força l'ús de APCS-32"
+
+#: config/arm/arm.c:653
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr "-mapcs-stack-check és incompatible amb -mno-apcs-frame"
+
+#: config/arm/arm.c:661
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr "-fpic i -mapcs-reent són incompatibles"
+
+#: config/arm/arm.c:664
+msgid "APCS reentrant code not supported. Ignored"
+msgstr "no se suporta el codi APCS que es torna a introduir.Ignorat"
+
+#: config/arm/arm.c:672
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr "-g amb -mno-apcs-frame no permet una depuració sensible"
+
+#: config/arm/arm.c:680
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "encara no se suporta passar arguments de nombre de coma flotant en registres fp"
+
+#: config/arm/arm.c:709
+#, c-format
+msgid "invalid floating point emulation option: -mfpe-%s"
+msgstr "opció d'emulació de coma flotant invàlida: -mfpe-%s"
+
+#: config/arm/arm.c:733
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr "El límit de la grandària de l'estructura només pot establir-se a 8 o 32"
+
+#: config/arm/arm.c:741
+msgid "-mpic-register= is useless without -fpic"
+msgstr "-mpic-register= és inútil sense -fpic"
+
+#: config/arm/arm.c:748
+#, c-format
+msgid "unable to use '%s' for PIC register"
+msgstr "no es pot usar \"%s\" per a registre PIC"
+
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr "l'atribut \"%s\" nomès s'aplica a funcions"
+
+#: config/arm/arm.c:9459
+msgid "unable to compute real location of stacked parameter"
+msgstr "no es pot calcular la ubicació real del paràmetre apilat"
+
+#: config/arm/arm.c:10138
+msgid "no low registers available for popping high registers"
+msgstr "no hi ha registres inferiors disponibles per a emmagatzemar registres superiors"
+
+#: config/arm/arm.c:10389
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr "no es poden codificar les Rutines de Serveis d'Interrupció en la manera Thumb"
+
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr "la variable iniciada \"%s\" està marcada com dllimport"
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr "la variable estàtica \"%s\" està marcada com dllimport"
+
+#: config/arm/arm.h:416
+msgid "Generate APCS conformant stack frames"
+msgstr "Generar marcs de pila que compleixin amb APCS"
+
+#: config/arm/arm.h:419
+msgid "Store function names in object code"
+msgstr "Emmagatzemar noms de funció en el codi objecte"
+
+#: config/arm/arm.h:423
+msgid "Use the 32-bit version of the APCS"
+msgstr "Usar la versió 32-bit del APCS"
+
+#: config/arm/arm.h:425
+msgid "Use the 26-bit version of the APCS"
+msgstr "Usar la versió 26-bit del APCS"
+
+#: config/arm/arm.h:429
+msgid "Pass FP arguments in FP registers"
+msgstr "Passar els arguments FP en els registres FP"
+
+#: config/arm/arm.h:432
+msgid "Generate re-entrant, PIC code"
+msgstr "Generar codi PIC que es torna a introduir"
+
+#: config/arm/arm.h:435
+msgid "The MMU will trap on unaligned accesses"
+msgstr "La MMU atraparà els accessos no alineats"
+
+#: config/arm/arm.h:442
+msgid "Use library calls to perform FP operations"
+msgstr "Usar cridades a biblioteques per a realitzar les operacions de FP"
+
+#: config/arm/arm.h:444 config/i960/i960.h:281
+msgid "Use hardware floating point instructions"
+msgstr "Usar instruccions de maquinari per a coma flotant"
+
+#: config/arm/arm.h:446
+msgid "Assume target CPU is configured as big endian"
+msgstr "Assumir que el CPU destinació està configurat com big endian"
+
+#: config/arm/arm.h:448
+msgid "Assume target CPU is configured as little endian"
+msgstr "Assumir que el CPU destinació està configurat com little endian"
+
+#: config/arm/arm.h:450
+msgid "Assume big endian bytes, little endian words"
+msgstr "Assumir octets big endian ,mots little endian"
+
+#: config/arm/arm.h:452
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr "Suport a cridades entre els conjunts d'instruccions Thumb i ARM"
+
+#: config/arm/arm.h:455
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr "Generar una cridada a avortar si una funció noreturnretorna"
+
+#: config/arm/arm.h:458
+msgid "Do not move instructions into a function's prologue"
+msgstr "No moure les instruccions al pròleg d'una funció"
+
+#: config/arm/arm.h:461
+msgid "Do not load the PIC register in function prologues"
+msgstr "No carregar el registre PIC en els pròlegs de funció"
+
+#: config/arm/arm.h:464
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr "Generar les cridades insns com cridades indirectes, si és necessari"
+
+#: config/arm/arm.h:467
+msgid "Compile for the Thumb not the ARM"
+msgstr "Compilar per al Thumb on per al ARM"
+
+#: config/arm/arm.h:471
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr "Thumb: Generar marcs de pila (no-fulles) encara si no és necessari"
+
+#: config/arm/arm.h:474
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr "Thumb: Generar marcs de pila (fulles) encara si no és necessari"
+
+#: config/arm/arm.h:477
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr "Thumb: Assumir que les funcions no static poden ser cridades des de codi ARM"
+
+#: config/arm/arm.h:481
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr "Thumb: Assumir que els punters de funció poden anar a codi no informat sobre Thumb"
+
+#: config/arm/arm.h:491
+msgid "Specify the name of the target CPU"
+msgstr "Especificar el nom del CPU destinació"
+
+#: config/arm/arm.h:493
+msgid "Specify the name of the target architecture"
+msgstr "Especificar el nom de l'arquitectura destinació"
+
+#: config/arm/arm.h:497
+msgid "Specify the version of the floating point emulator"
+msgstr "Especifica la versió de l'emulador de nombre de coma flotant"
+
+#: config/arm/arm.h:499
+msgid "Specify the minimum bit alignment of structures"
+msgstr "Especificar l'alineació mínima de bit de les estructures"
+
+#: config/arm/arm.h:501
+msgid "Specify the register to be used for PIC addressing"
+msgstr "Especificar el registre a usar per al adreçament PIC"
+
+#: config/arm/pe.h:65
+msgid "Ignore dllimport attribute for functions"
+msgstr "Ignorar l'atribut dllimport per a les funcions"
+
+#: config/avr/avr.c:528
+#, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "canvi de punter gran de marc (%d) amb -mtiny-stack"
+
+#: config/avr/avr.c:1135
+msgid "bad address, not (reg+disp):"
+msgstr "direcció errònia, no (reg+disp)"
+
+#: config/avr/avr.c:1143
+msgid "internal compiler error. Bad address:"
+msgstr "error intern del compilador. Direcció errònia:"
+
+#: config/avr/avr.c:1156
+msgid "internal compiler error. Unknown mode:"
+msgstr "error intern del compilador. Mode desconegut:"
+
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+msgid "invalid insn:"
+msgstr "insn invàlid:"
+
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
+msgstr "insn incorrecte:"
+
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+msgid "unknown move insn:"
+msgstr "desplaçament insn desconegut:"
+
+#: config/avr/avr.c:3003
+msgid "bad shift insn:"
+msgstr "desplaçament insn erròni:"
+
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+msgid "internal compiler error. Incorrect shift:"
+msgstr "error intern del compilador. Direcció errònia:"
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+msgid "only initialized variables can be placed into program memory area"
+msgstr "Només les variables iniciades es poden ubicar en l'àrea de memòria del programa."
+
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Només les variables sense inicialitzar es poden col·locar en la secció noinit"
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU \"%s\" només té suport per a ensemblador"
+
+#: config/avr/avr.h:78
+msgid "Assume int to be 8 bit integer"
+msgstr "Assumir que int sigui enter de 8 bit"
+
+#: config/avr/avr.h:80
+msgid "Change the stack pointer without disabling interrupts"
+msgstr "Canviar el punter de la pila sense desactivar les interrupcions"
+
+#: config/avr/avr.h:82
+msgid "Use subroutines for function prologue/epilogue"
+msgstr "Usar subrutines per al pròleg/epíleg de funció"
+
+#: config/avr/avr.h:84
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr "Canviar només els 8 bits baixos del punter de pila"
+
+#: config/avr/avr.h:86
+msgid "Do not generate tablejump insns"
+msgstr "No generar insns de salt de matriu"
+
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
+msgid "Output instruction sizes to the asm file"
+msgstr "Grandàries d'instrucció de sortida al fitxer asm"
+
+#: config/avr/avr.h:108
+msgid "Specify the initial stack address"
+msgstr "Especificar l'adreça inicial de la pila"
+
+#: config/avr/avr.h:109
+msgid "Specify the MCU name"
+msgstr "Especificar el nom MCU"
+
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+msgid "trampolines not supported"
+msgstr "els trampolins no tenen suport"
+
+#: config/c4x/c4x-c.c:69
+#, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "\"(\" faltant desprès de \"#pragma %s\" - ignorat"
+
+#: config/c4x/c4x-c.c:72
+#, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "nom de funcció faltant en \"#pragma %s\" - ignorat"
+
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr "\"#pragma %s\" malformat - ignorat"
+
+#: config/c4x/c4x-c.c:79
+#, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "nom de secció faltant en \"#pragma %s\" - ignorat"
+
+#: config/c4x/c4x-c.c:84
+#, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "\")\" faltant per a \"#pragma %s\" - ignorat"
+
+#: config/c4x/c4x-c.c:87
+#, c-format
+msgid "junk at end of '#pragma %s'"
+msgstr "escombraries al final de \"#pragma %s\""
+
+#: config/c4x/c4x.c:280
+#, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr "versió desconeguda de CPU %d, usant 40.\n"
+
+#: config/c4x/c4x.c:853
+#, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "El ISR %s requereix de %d words de variables locals,el màxim és 32767."
+
+#: config/c4x/c4x.c:1602
+msgid "using CONST_DOUBLE for address"
+msgstr "ùs de CONST_DOUBLE per a l'adreça"
+
+#: config/c4x/c4x.c:1742
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "c4x_address_cost: Moda d'adreçament invàlid"
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr "c4x_print_operand: inconsistència %%L"
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr "c4x_print_operand: inconsistència %%N"
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr "c4x_print_operand: inconsistència %%O"
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr "c4x_print_operand: Operant casi erroni"
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr "c4x_print_operand_address: post_modify erroni"
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr "c4x_print_operand_address: pre_modify erroni"
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr "c4x_print_operand_address: Operant casi erroni"
+
+#: config/c4x/c4x.c:2422
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "c4x_rptb_insert: No es pot trobar l'etiqueta d'inici"
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+msgid "mode not QImode"
+msgstr "el moda no és QImode"
+
+#: config/c4x/c4x.c:3514
+msgid "invalid indirect memory address"
+msgstr "adreça indirecta de memòria invàlida"
+
+#: config/c4x/c4x.c:3603
+msgid "invalid indirect (S) memory address"
+msgstr "adreça indirecta de memòria (S) invàlida"
+
+#: config/c4x/c4x.c:3944
+msgid "c4x_valid_operands: Internal error"
+msgstr "c4x_valid_operands: error intern"
+
+#: config/c4x/c4x.c:4424
+msgid "c4x_operand_subword: invalid mode"
+msgstr "c4x_operand_subword: moda invàlid"
+
+#: config/c4x/c4x.c:4427
+msgid "c4x_operand_subword: invalid operand"
+msgstr "c4x_operand_subword: operant invàlid"
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "c4x_operand_subword: autoincrement invàlid"
+
+#: config/c4x/c4x.c:4459
+msgid "c4x_operand_subword: invalid address"
+msgstr "c4x_operand_subword: adreça invàlid"
+
+#: config/c4x/c4x.c:4470
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "c4x_operand_subword: adreça no desplaçabla"
+
+#: config/c4x/c4x.c:4670
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr "c4x_rptb_rpts_p: etiqueta superiora de bloc de repetició desplaçada\n"
+
+#. Name of the c4x assembler.
+#. Name of the c4x linker.
+#. Define assembler options.
+#. Define linker options.
+#. Specify the end file to link with.
+#. Target compilation option flags.
+#. Small memory model.
+#. Use 24-bit MPYI for C3x.
+#. Fast fixing of floats.
+#. Allow use of RPTS.
+#. Emit C3x code.
+#. Be compatible with TI assembler.
+#. Be paranoid about DP reg. in ISRs.
+#. Pass arguments on stack.
+#. Enable features under development.
+#. Enable repeat block.
+#. Use BK as general register.
+#. Use decrement and branch for C3x.
+#. Enable debugging of GCC.
+#. Force constants into registers.
+#. Allow unsigned loop counters.
+#. Force op0 and op1 to be same.
+#. Save all 40 bits for floats.
+#. Allow parallel insns.
+#. Allow MPY||ADD, MPY||SUB insns.
+#. Assume mem refs possibly aliased.
+#. Emit C30 code.
+#. Emit C31 code.
+#. Emit C32 code.
+#. Emit C33 code.
+#. Emit C40 code.
+#. Emit C44 code.
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each pair being { "NAME", VALUE, "DESCRIPTION" }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/c4x/c4x.h:168
+msgid "Small memory model"
+msgstr "Model de memòria small"
+
+#: config/c4x/c4x.h:170
+msgid "Big memory model"
+msgstr "Model de memòria big"
+
+#: config/c4x/c4x.h:172
+msgid "Use MPYI instruction for C3x"
+msgstr "Usar instrucció MPYI per a C3x"
+
+#: config/c4x/c4x.h:174
+msgid "Do not use MPYI instruction for C3x"
+msgstr "No usar instrucció MPYI per a C3x"
+
+#: config/c4x/c4x.h:176
+msgid "Use fast but approximate float to integer conversion"
+msgstr "Usar conversió de coma flotant a enter ràpida però aproximada"
+
+#: config/c4x/c4x.h:178
+msgid "Use slow but accurate float to integer conversion"
+msgstr "Usar conversió de coma flotant a enter lenta però exacta"
+
+#: config/c4x/c4x.h:180
+msgid "Enable use of RTPS instruction"
+msgstr "Activar l'ús de la instrucció RTPS"
+
+#: config/c4x/c4x.h:182
+msgid "Disable use of RTPS instruction"
+msgstr "Desactivar l'ús de la instrucció RTPS"
+
+#: config/c4x/c4x.h:184
+msgid "Enable use of RTPB instruction"
+msgstr "Activar l'ús de la instrucció RTPB"
+
+#: config/c4x/c4x.h:186
+msgid "Disable use of RTPB instruction"
+msgstr "Desactivar l'ús de la instrucció RTPB"
+
+#: config/c4x/c4x.h:188
+msgid "Generate code for C30 CPU"
+msgstr "Generar codi per al CPU C30"
+
+#: config/c4x/c4x.h:190
+msgid "Generate code for C31 CPU"
+msgstr "Generar codi per al CPU C31"
+
+#: config/c4x/c4x.h:192
+msgid "Generate code for C32 CPU"
+msgstr "Generar codi per al CPU C32"
+
+#: config/c4x/c4x.h:194
+msgid "Generate code for C33 CPU"
+msgstr "Generar codi per al CPU C33"
+
+#: config/c4x/c4x.h:196
+msgid "Generate code for C40 CPU"
+msgstr "Generar codi per al CPU C40"
+
+#: config/c4x/c4x.h:198
+msgid "Generate code for C44 CPU"
+msgstr "Generar codi per al CPU C44"
+
+#: config/c4x/c4x.h:200
+msgid "Emit code compatible with TI tools"
+msgstr "Emetre codi compatible amb les eines TI"
+
+#: config/c4x/c4x.h:202
+msgid "Emit code to use GAS extensions"
+msgstr "Emetre codi per a usar les extensions de GAS"
+
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
+msgid "Save DP across ISR in small memory model"
+msgstr "Guardar DP entre ISR en el model de memòria small"
+
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
+msgid "Don't save DP across ISR in small memory model"
+msgstr "No guardar DP entre ISR en el model de memòria small"
+
+#: config/c4x/c4x.h:212
+msgid "Pass arguments on the stack"
+msgstr "Passar els arguments en la pila"
+
+#: config/c4x/c4x.h:214
+msgid "Pass arguments in registers"
+msgstr "Passar els arguments en els registres"
+
+#: config/c4x/c4x.h:216
+msgid "Enable new features under development"
+msgstr "Activar noves característiques en desenvolupament"
+
+#: config/c4x/c4x.h:218
+msgid "Disable new features under development"
+msgstr "Desactivar noves característiques en desenvolupament"
+
+#: config/c4x/c4x.h:220
+msgid "Use the BK register as a general purpose register"
+msgstr "Usar el registre BK com un registre de propòsit general"
+
+#: config/c4x/c4x.h:222
+msgid "Do not allocate BK register"
+msgstr "No assignar el registre BK"
+
+#: config/c4x/c4x.h:224
+msgid "Enable use of DB instruction"
+msgstr "Activar l'ús de la instrucció DB"
+
+#: config/c4x/c4x.h:226
+msgid "Disable use of DB instruction"
+msgstr "Desactivar l'ús de la instrucció DB"
+
+#: config/c4x/c4x.h:228
+msgid "Enable debugging"
+msgstr "Activar la depuració"
+
+#: config/c4x/c4x.h:230
+msgid "Disable debugging"
+msgstr "Desactivar la depuració"
+
+#: config/c4x/c4x.h:232
+msgid "Force constants into registers to improve hoisting"
+msgstr "Forçar les constants dintre de registres per a millorar l'aixecament"
+
+#: config/c4x/c4x.h:234
+msgid "Don't force constants into registers"
+msgstr "No forçar les constants en els registres"
+
+#: config/c4x/c4x.h:236
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr "Forçar que la generació de RTL emeti 3 operandes insns vàlids"
+
+#: config/c4x/c4x.h:238
+msgid "Allow RTL generation to emit invalid 3 operand insns"
+msgstr "Permetre que la generació de RTL emeti 3 operandes insns invàlids"
+
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr "Permetre comptes de iteracions unsigned per a RPTB/DB"
+
+#: config/c4x/c4x.h:242
+msgid "Disallow unsigned iteration counts for RPTB/DB"
+msgstr "No permetre comptes de iteracions unsigned per a RPTB/DB"
+
+#: config/c4x/c4x.h:244
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr "Preservar els 40 bits del registre FP entre cridades"
+
+#: config/c4x/c4x.h:246
+msgid "Only preserve 32 bits of FP reg across call"
+msgstr "Només preservar 32 bits del registre FP entre cridades"
+
+#: config/c4x/c4x.h:248
+msgid "Enable parallel instructions"
+msgstr "Activar les funcions paral·leles"
+
+#: config/c4x/c4x.h:250
+msgid "Disable parallel instructions"
+msgstr "Desactivar les funcions paral·leles"
+
+#: config/c4x/c4x.h:252
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr "Activar les instruccions MPY||ADD i MPY||SUB"
+
+#: config/c4x/c4x.h:254
+msgid "Disable MPY||ADD and MPY||SUB instructions"
+msgstr "Desactivar les instruccions MPY||ADD i MPY||SUB"
+
+#: config/c4x/c4x.h:256
+msgid "Assume that pointers may be aliased"
+msgstr "Assumir que es poden fer alies dels punters"
+
+#: config/c4x/c4x.h:258
+msgid "Assume that pointers not aliased"
+msgstr "Assumir que els punters no tenen alies"
+
+#: config/c4x/c4x.h:331
+msgid "Specify maximum number of iterations for RPTS"
+msgstr "Especificar el nombre màxim de iteracions per a RPTS"
+
+#: config/c4x/c4x.h:333
+msgid "Select CPU to generate code for"
+msgstr "Seleccionar el CPU per al qual es genera codi"
+
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr "index-type inesperat en cris_print_index"
+
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr "base-type inesperat en cris_print_base"
+
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr "marc de pila massa grand: %d bytes"
+
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr "llista d'alenteixo assignada però sense ús en l'epíleg"
+
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "el tipus de funció inesperat necessita un ajustament de pila per a _builtin_eh_return"
+
+#: config/cris/cris.c:1312
+msgid "invalid operand for 'b' modifier"
+msgstr "operant invàlid per al modificador \"b\""
+
+#: config/cris/cris.c:1324
+msgid "invalid operand for 'v' modifier"
+msgstr "operant invàlid per al modificador \"v\""
+
+#: config/cris/cris.c:1334
+msgid "invalid operand for 'P' modifier"
+msgstr "operant invàlid per al modificador \"P\""
+
+#: config/cris/cris.c:1341
+msgid "invalid operand for 'p' modifier"
+msgstr "operant invàlid per al modificador \"p\""
+
+#: config/cris/cris.c:1380
+msgid "invalid operand for 'z' modifier"
+msgstr "operant invàlid per al modificador \"z\""
+
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+msgid "invalid operand for 'H' modifier"
+msgstr "operant invàlid per al modificador \"H\""
+
+#: config/cris/cris.c:1417
+msgid "bad register"
+msgstr "registre erroni"
+
+#: config/cris/cris.c:1455
+msgid "invalid operand for 'e' modifier"
+msgstr "operant invàlid per al modificador \"e\""
+
+#: config/cris/cris.c:1472
+msgid "invalid operand for 'm' modifier"
+msgstr "operant invàlid per al modificador \"m\""
+
+#: config/cris/cris.c:1497
+msgid "invalid operand for 'A' modifier"
+msgstr "operant invàlid per al modificador \"A\""
+
+#: config/cris/cris.c:1505
+msgid "invalid operand for 'D' modifier"
+msgstr "operant invàlid per al modificador \"D\""
+
+#: config/cris/cris.c:1519
+msgid "invalid operand for 'T' modifier"
+msgstr "operant invàlid per al modificador \"T\""
+
+#: config/cris/cris.c:1528
+msgid "invalid operand modifier letter"
+msgstr "lletra de modificador d'operant invàlid"
+
+#: config/cris/cris.c:1536
+#, c-format
+msgid "internal error: bad register: %d"
+msgstr "error intern: registre erroni: %d"
+
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr "operant multiplicatiu inesperat"
+
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
+msgstr "operant inesperat"
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+msgid "unrecognized address"
+msgstr "adreça no reconeguda"
+
+#: config/cris/cris.c:2005
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr "error intern: sideeffect-insn afectant el efecte principal"
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr "error intern: cris_side_effect_mode_ok amb operants erronis"
+
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+msgid "unrecognized supposed constant"
+msgstr "suposada constant no reconeguda"
+
+#: config/cris/cris.c:2473
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr "suposada constant no reconeguda en cris_global_pic_symbol"
+
+#: config/cris/cris.c:2492
+#, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr "no es pot usar -max-stackframe=%d, no està entre 0 i %d"
+
+#: config/cris/cris.c:2520
+#, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "especificació de versió CRIS desconeguda en -march= o -mcpu= : %s"
+
+#: config/cris/cris.c:2556
+#, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "especificació de versió de cpu de CRIS desconeguda en -mtune= : %s"
+
+#: config/cris/cris.c:2574
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "no és dona suport a -fPIC i -fpic en aquesta configuració"
+
+#: config/cris/cris.c:2590
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr "aquesta opció particular -g és invàlid amb -maout i -melinux"
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+msgid "unexpected side-effects in address"
+msgstr "effecte de vora inesperat en l'adreça"
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr "símbol PIC inesperat"
+
+#: config/cris/cris.c:2970
+msgid "PIC register isn't set up"
+msgstr "el registre PIC no està preparat"
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+msgid "unexpected address expression"
+msgstr "expressió d'adreça inesperada"
+
+#: config/cris/cris.c:3001
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr "emetant un operant PIC, però el registre PIC no està preparat"
+
+#: config/cris/cris.c:3010
+msgid "unexpected NOTE as addr_const:"
+msgstr "NOTE com a addr_const inesperat:"
+
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "Compilar per al sistema elinux Etrax basat en 100 sense MMU"
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr "Per a elinux, sol·licitar una grandària de pila especificada per a aquest programa"
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "Compilar per a ETRAX 4 (CRIS v3)"
+
+#: config/cris/cris.h:345
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "Compilar per a ETRAX 100 (CRIS v8)"
+
+#: config/cris/cris.h:349
+msgid "Emit verbose debug information in assembly code"
+msgstr "Emetre informació de depuració detallada en el codi assemblador"
+
+#: config/cris/cris.h:352
+msgid "Do not use condition codes from normal instructions"
+msgstr "No usar codis de condició per a les instruccions normals"
+
+#: config/cris/cris.h:356
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr "No emetre maneres d'adreçament amb assignacions col·laterals"
+
+#: config/cris/cris.h:359
+msgid "Do not tune stack alignment"
+msgstr "No ajustar l'alineació de la pila"
+
+#: config/cris/cris.h:362
+msgid "Do not tune writable data alignment"
+msgstr "No ajustar l'alineació de les dades modificables"
+
+#: config/cris/cris.h:365
+msgid "Do not tune code and read-only data alignment"
+msgstr "No ajustar l'alineació del codi i de dades només de lectura"
+
+#: config/cris/cris.h:374
+msgid "Align code and data to 32 bits"
+msgstr "Alinear codi i dades a 32 bits"
+
+#: config/cris/cris.h:387
+msgid "Don't align items in code or data"
+msgstr "No alinear elements en el codi o les dades"
+
+#: config/cris/cris.h:390
+msgid "Do not emit function prologue or epilogue"
+msgstr "No emetre pròleg o epíleg de funcions"
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr "Usar la major quantitat de característiques permeses per altres opcions"
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+msgid "Override -mbest-lib-options"
+msgstr "Anular -mbest-lib-options"
+
+#: config/cris/cris.h:432
+msgid "Generate code for the specified chip or CPU version"
+msgstr "Generar codi per al xip especificat o la versió de CPU"
+
+#: config/cris/cris.h:434
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "Ajustar alineació per al xip especificat o la versió de CPU"
+
+#: config/cris/cris.h:436
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr "Avisar quan un marc de pila sigui més gran que la grandària especificada"
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "no FUNCTION_PROFILER per a CRIS"
+
+#: config/cris/linux.h:71
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr "Juntament amb -fpic i -fPIC, no utilitzar referències GOTPLT"
+
+#: config/d30v/d30v.c:207
+#, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr "modes_tieable_p erroni per al registre %s, manera1 %s, manera2 %s"
+
+#: config/d30v/d30v.c:2666
+msgid "bad insn to d30v_print_operand_address:"
+msgstr "insn erronia per a d30v_print_operand_address:"
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr "insn erroni per a d30v_print_operand_memory_reference:"
+
+#: config/d30v/d30v.c:2851
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr "insn erroni per a d30v_print_operand, modificador \"f\":"
+
+#: config/d30v/d30v.c:2860
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr "insn erroni per a d30v_print_operand, modificador \"A\":"
+
+#: config/d30v/d30v.c:2867
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr "insn erroni per a d30v_print_operand, modificador \"M\":"
+
+#: config/d30v/d30v.c:2921
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr "insn erroni per a print_operand, modificador \"F\" o \"T\":"
+
+#: config/d30v/d30v.c:2932
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr "insn erroni per a print_operand, modificador \"B\":"
+
+#: config/d30v/d30v.c:2939
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr "insn erroni per a print_operand, modificador \"E\":"
+
+#: config/d30v/d30v.c:2957
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr "insn erroni per a print_operand, modificador \"R\":"
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr "insn erroni per a print_operand, modificador \"s\":"
+
+#: config/d30v/d30v.c:3003
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr "insn erroni per a d30v_print_operand, casi 0"
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr "d30v_emit_comparison"
+
+#: config/d30v/d30v.c:3345
+msgid "bad call to d30v_move_2words"
+msgstr "cirdada ad30v_move_2words errònia"
+
+#: config/d30v/d30v.h:114
+msgid "Enable use of conditional move instructions"
+msgstr "Activar l'ús de les instruccions condicionals move"
+
+#: config/d30v/d30v.h:117
+msgid "Disable use of conditional move instructions"
+msgstr "Desactivar l'ús de les instruccions condicionals move"
+
+#: config/d30v/d30v.h:120
+msgid "Debug argument support in compiler"
+msgstr "Suport per a depuració d'arguments en el compilador"
+
+#: config/d30v/d30v.h:123
+msgid "Debug stack support in compiler"
+msgstr "Suport per a depuració de pila en el compilador"
+
+#: config/d30v/d30v.h:126
+msgid "Debug memory address support in compiler"
+msgstr "Suport per a depuració d'adreces de memòria en el compilador"
+
+#: config/d30v/d30v.h:129
+msgid "Make adjacent short instructions parallel if possible"
+msgstr "Fer paral·leles les instruccions adjacents talles siés possible."
+
+#: config/d30v/d30v.h:132
+msgid "Do not make adjacent short instructions parallel"
+msgstr "No fer paral·leles les instruccions adjacents."
+
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
+msgid "Link programs/data to be in external memory by default"
+msgstr "Enllaçar programes/dades per a estar en la memòria externa per omissió"
+
+#: config/d30v/d30v.h:141
+msgid "Link programs/data to be in onchip memory by default"
+msgstr "Enllaçar programes/dades per a estar en la memòria del xip per omissió"
+
+#: config/d30v/d30v.h:149
+msgid "Change the branch costs within the compiler"
+msgstr "Canviar els costos de ramificació dintre del compilador"
+
+#: config/d30v/d30v.h:152
+msgid "Change the threshold for conversion to conditional execution"
+msgstr "Canviar el llindar per a la conversió a execució condicional"
+
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+msgid "stack size > 32k"
+msgstr "Grandària de la pila > 32k"
+
+#: config/dsp16xx/dsp16xx.c:1678
+msgid "invalid addressing mode"
+msgstr "manera d'adreçar invàlida"
+
+#: config/dsp16xx/dsp16xx.c:1821
+msgid "bad register extension code"
+msgstr "codi d'extensió de registre erroni"
+
+#: config/dsp16xx/dsp16xx.c:1921
+msgid "invalid offset in ybase addressing"
+msgstr "desplaçament invàlid en el adreçament de ybase"
+
+#: config/dsp16xx/dsp16xx.c:1924
+msgid "invalid register in ybase addressing"
+msgstr "registre invàlid en el adreçament de ybase"
+
+#: config/dsp16xx/dsp16xx.c:2099
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr "operador de desplaçament invàlid en emit_1600_core_shift"
+
+#: config/dsp16xx/dsp16xx.c:2428
+msgid "invalid mode for gen_tst_reg"
+msgstr "mode invàlid per a gen_tst_reg"
+
+#: config/dsp16xx/dsp16xx.c:2500
+msgid "invalid mode for integer comparison in gen_compare_reg"
+msgstr "mode invàlid per a la comparança entera en gen_compari_reg"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/dsp16xx/dsp16xx.h:230
+msgid "Pass parameters in registers (default)"
+msgstr "Passar els paràmetres en els registres (per omissió)"
+
+#: config/dsp16xx/dsp16xx.h:232
+msgid "Don't pass parameters in registers"
+msgstr "No passar els paràmetres en els registres"
+
+#: config/dsp16xx/dsp16xx.h:234
+msgid "Generate code for near calls"
+msgstr "Generar codi per a cridades near"
+
+#: config/dsp16xx/dsp16xx.h:236
+msgid "Don't generate code for near calls"
+msgstr "No generar codi per a cridades near"
+
+#: config/dsp16xx/dsp16xx.h:238
+msgid "Generate code for near jumps"
+msgstr "Generar codi per a salts near"
+
+#: config/dsp16xx/dsp16xx.h:240
+msgid "Don't generate code for near jumps"
+msgstr "No generar codi per a salts near"
+
+#: config/dsp16xx/dsp16xx.h:242
+msgid "Generate code for a bit-manipulation unit"
+msgstr "Generar codi per a una unitat de manipulació de bits"
+
+#: config/dsp16xx/dsp16xx.h:244
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr "No generar codi per a una unitat de manipulació de bits"
+
+#: config/dsp16xx/dsp16xx.h:246
+msgid "Generate code for memory map1"
+msgstr "Generar codi per a memory map1"
+
+#: config/dsp16xx/dsp16xx.h:248
+msgid "Generate code for memory map2"
+msgstr "Generar codi per a memory map2"
+
+#: config/dsp16xx/dsp16xx.h:250
+msgid "Generate code for memory map3"
+msgstr "Generar codi per a memory map3"
+
+#: config/dsp16xx/dsp16xx.h:252
+msgid "Generate code for memory map4"
+msgstr "Generar codi per a memory map4"
+
+#: config/dsp16xx/dsp16xx.h:254
+msgid "Ouput extra code for initialized data"
+msgstr "Generar codi extra per a dades inicialitzades"
+
+#: config/dsp16xx/dsp16xx.h:256
+msgid "Don't let reg. allocator use ybase registers"
+msgstr "No permetre que el assignador de registres usi registres ybase"
+
+#: config/dsp16xx/dsp16xx.h:258
+msgid "Output extra debug info in Luxworks environment"
+msgstr "Generar informació extra de depuració en l'ambit Luxworks"
+
+#: config/dsp16xx/dsp16xx.h:260
+msgid "Save temp. files in Luxworks environment"
+msgstr "Guardar els fitxers temporals en l'ambit Luxworks"
+
+#: config/dsp16xx/dsp16xx.h:272
+msgid "Specify alternate name for text section"
+msgstr "Especificar un nom alternatiu per a la secció de text"
+
+#: config/dsp16xx/dsp16xx.h:274
+msgid "Specify alternate name for data section"
+msgstr "Especificar un nom alternatiu per a la secció de dades"
+
+#: config/dsp16xx/dsp16xx.h:276
+msgid "Specify alternate name for bss section"
+msgstr "Especificar un nom alternatiu per a la secció bss"
+
+#: config/dsp16xx/dsp16xx.h:278
+msgid "Specify alternate name for constant section"
+msgstr "Especificar un nom alternatiu per a la secció constant"
+
+#: config/dsp16xx/dsp16xx.h:280
+msgid "Specify alternate name for dsp16xx chip"
+msgstr "Especificar un nom alternatiu per a el xip dsp16xx"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+msgid "profiling not implemented yet"
+msgstr "no s'ha implementat encara profiling"
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+msgid "trampolines not yet implemented"
+msgstr "no s'han implementat encara trampolin"
+
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
+msgstr "fr30_print_operand_address: adreça sense manejar"
+
+#: config/fr30/fr30.c:480
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "fr30_print_operand_address: no es reconeix el codi %%p"
+
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "fr30_print_operand_address: no es reconeix el codi %%b"
+
+#: config/fr30/fr30.c:521
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "fr30_print_operand_address: no es reconeix el codi %%B"
+
+#: config/fr30/fr30.c:529
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "fr30_print_operand: operant invàlid per al codi %%A"
+
+#: config/fr30/fr30.c:546
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "fr30_print_operand: codi %%x invàlid"
+
+#: config/fr30/fr30.c:553
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "fr30_print_operand: codi %%F invàlid"
+
+#: config/fr30/fr30.c:570
+msgid "fr30_print_operand: unknown code"
+msgstr "fr30_print_operand: codi desconegut"
+
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
+msgstr "fr30_print_operand: MEM sense manejar"
+
+#: config/fr30/fr30.h:63
+msgid "Assume small address space"
+msgstr "Assumint espai d'adreces petit"
+
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "insn erroni per a frv_print_operand_address:"
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "insn erroni per a frv_print_operand_memory_reference_reg:"
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "insn erroni per a frv_print_operand_memory_reference:"
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "insn erroni per a frv_print_operand,·bad·const_double"
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"C\":"
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"c\":"
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"e\":"
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"F\":"
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"f\":"
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"L\":"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"M/N\":"
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"O\":"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "insn erroni per a frv_print_operand, modificador \"P\":"
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "insn erroni per a frv_print_operand, casi z"
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "insn erroni per a frv_print_operand, casi 0"
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr "frv_print_operand: codi desconegut"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr "Operant output_move_single erroni"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr "Operant output_condmove_single erroni"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr "el acumulador no és una constant sentera"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "acumulador inadequat per a \"%s\""
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr "l'atribut \"%s\" espera una constant com argument"
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "l'argument constant està fora de rang per a \"%s\""
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
+msgid "-ms2600 is used without -ms"
+msgstr "es va usar -ms2600 sense -ms"
+
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr "es va usar -mn sense -mh o -ms"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
+msgstr "Generar codi H8S"
+
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
+msgstr "No generar codi H8S"
+
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr "Generar codi H8S/2600"
+
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
+msgstr "No generar codi H8S/2600"
+
+#: config/h8300/h8300.h:154
+msgid "Make integers 32 bits wide"
+msgstr "Fer enters de 32 bits d'amplària"
+
+#: config/h8300/h8300.h:157
+msgid "Use registers for argument passing"
+msgstr "Usar registres per a pas de paràmetres"
+
+#: config/h8300/h8300.h:159
+msgid "Do not use registers for argument passing"
+msgstr "No usar registres per a pas de paràmetres"
+
+#: config/h8300/h8300.h:161
+msgid "Consider access to byte sized memory slow"
+msgstr "Considerar lent l'accés a la memòria de grandària octet"
+
+#: config/h8300/h8300.h:162
+msgid "Enable linker relaxing"
+msgstr "Activar la relaxació del enllaçador"
+
+#: config/h8300/h8300.h:164
+msgid "Generate H8/300H code"
+msgstr "Generar codi H8/300H"
+
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
+msgid "Do not generate H8/300H code"
+msgstr "No generar codi H8/300H"
+
+#: config/h8300/h8300.h:167
+msgid "Use H8/300 alignment rules"
+msgstr "Usar regles d'alineació H8/300"
+
+#: config/i370/i370-c.c:53
+msgid "junk at end of #pragma map"
+msgstr "escombraries al final de #pragma map"
+
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
+msgstr "#pragma map malformat, ignorat"
+
+#: config/i370/i370.c:915
+msgid "real name is too long - alias ignored"
+msgstr "el nom real és massa llargària - s'ignora l'alies"
+
+#: config/i370/i370.c:920
+msgid "alias name is too long - alias ignored"
+msgstr "el nom d'alies és massa llargària - s'ignora l'alies"
+
+#: config/i370/i370.c:1191
+msgid "internal error--no jump follows compare:"
+msgstr "error intern--no hi ha salts a continuació de la comparança:"
+
+#. Macro to define tables used to set the flags. This is a list in braces
+#. of pairs in braces, each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/i370/i370.h:75
+msgid "Generate char instructions"
+msgstr "Generar instruccions char"
+
+#: config/i370/i370.h:76
+msgid "Do not generate char instructions"
+msgstr "No generar instruccions char"
+
+#: config/i386/i386.c:1050
+#, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr "el model de codi %s no té suport en el mode PIC"
+
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mcmodel="
+
+#: config/i386/i386.c:1075
+#, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "valor erroni (%s) per a l'interruptor -masm="
+
+#: config/i386/i386.c:1078
+#, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr "el model de codi %s no té suport en el mode %s bit"
+
+#: config/i386/i386.c:1081
+msgid "code model `large' not supported yet"
+msgstr "el model de codi \"large\" not té suport"
+
+#: config/i386/i386.c:1083
+#, c-format
+msgid "%i-bit mode not compiled in"
+msgstr "no està compilat el mode %i-bit"
+
+#: config/i386/i386.c:1113
+#, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr "valor erroni (%s) per a l'interruptor -march="
+
+#: config/i386/i386.c:1124
+#, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mcpu="
+
+#: config/i386/i386.c:1141
+#, c-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-mregparm=%d no està entre 0 i %d"
+
+#: config/i386/i386.c:1154
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-malign-loops és obsolet, usi -falign-loops"
+
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
+#, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-malign-loops=%d no està entre 0 i %d"
+
+#: config/i386/i386.c:1167
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-malign-jumps és obsolet, usi -falign-jumps"
+
+#: config/i386/i386.c:1180
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-malign-functions és obsolet, usi -falign-functions"
+
+#: config/i386/i386.c:1218
+#, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-mpreferred-stack-boundary=%d no està entre %d i 12"
+
+#: config/i386/i386.c:1230
+#, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr "-mbranch-cost=%d no està entre 0 i 5"
+
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mtls-dialect="
+
+#: config/i386/i386.c:1263
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-malign-double no té sentit en el mode 64 bit"
+
+#: config/i386/i386.c:1265
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "la convenció de cridades -mrtd no té suport en el mode 64 bit"
+
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "el conjunt d'instruccions SSE està desactivat, usant l'aritmètica 387"
+
+#: config/i386/i386.c:1297
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "el conjunt d'instruccions 387 està desactivat, usant l'aritmètica SSE"
+
+#: config/i386/i386.c:1304
+#, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mfpmath="
+
+#: config/i386/i386.c:1436
+#, c-format
+msgid "`%s' attribute requires an integer constant argument"
+msgstr "l'atribut \"%s\" requereix una constant entera com argument"
+
+#: config/i386/i386.c:1442
+#, c-format
+msgid "argument to `%s' attribute larger than %d"
+msgstr "l'argument per a l'atribut \"%s\" és més gran que %d"
+
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
+msgid "invalid UNSPEC as operand"
+msgstr "UNSPEC invàlid com operant"
+
+#: config/i386/i386.c:6648
+msgid "extended registers have no high halves"
+msgstr "els registres estesos no tenen meitats superiors"
+
+#: config/i386/i386.c:6663
+msgid "unsupported operand size for extended register"
+msgstr "grandària d'operant sense suport per al registre estès"
+
+#: config/i386/i386.c:6978
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr "l'operant no és una constant ni un codi de condició, codi d'operant \"c\" invàlid"
+
+#: config/i386/i386.c:7024
+#, c-format
+msgid "invalid operand code `%c'"
+msgstr "codi d'operant \"%c\" invàlid"
+
+#: config/i386/i386.c:7071
+msgid "invalid constraints for operand"
+msgstr "restriccions invàlides per a l'operant"
+
+#: config/i386/i386.c:11271
+msgid "unknown insn mode"
+msgstr "mode insn desconegut"
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
+msgstr "el se-lector deu ser un immediat"
+
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
+msgstr "la màscara deu ser un immediat"
+
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr "el desplaçament deu ser un immediat"
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "la definició de la funció \"%s\" està marcada com dllimport"
+
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "la variable \"%s\" està marcada com dllimport"
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
+#, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr "l'atribut \"%s\" solament aplica a variables"
+
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "la funció inline \"%s\" està declarada com dllimport: s'ignora l'atribut."
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
+#, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr "\"%s\" és declarat com exportat a i importat d'una DLLal mateix temps"
+
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr "Usar la interfície Cygwin"
+
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr "Usar la interfície Mingw32"
+
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr "Crear una aplicació amb interfície gràfica d'usuari (GUI)"
+
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
+msgstr "No establir les definicions de Windows"
+
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr "Establir les definicions de Windows"
+
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr "Crear una aplicació de consola"
+
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr "Generar codi per a una DLL"
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr "Ignorar dllimport per a funcions"
+
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr "Usar suport de fils específic de Mingw"
+
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "s'ignora -f%s per a l'objectiu (tot el codi és independent de posició)"
+
+#: config/i386/djgpp.h:206
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "s'ignora -mbnu210 (l'opció és obsoleta)."
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
+msgid "Alternate calling convention"
+msgstr "Convenció de cridada alternativa"
+
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
+msgid "Use normal calling convention"
+msgstr "Usar convenció de cridada normal"
+
+#: config/i386/i386.h:310
+msgid "Align some doubles on dword boundary"
+msgstr "Alinear alguns dobles en límits de dword"
+
+#: config/i386/i386.h:312
+msgid "Align doubles on word boundary"
+msgstr "Alinear dobles en límits de word"
+
+#: config/i386/i386.h:314
+msgid "Uninitialized locals in .bss"
+msgstr "Locals sense valors inicials en .bss"
+
+#: config/i386/i386.h:316
+msgid "Uninitialized locals in .data"
+msgstr "Locals sense valors inicials en .data"
+
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
+msgid "Use IEEE math for fp comparisons"
+msgstr "Usar matemàtica IEEE per a comparances fp"
+
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
+msgid "Do not use IEEE math for fp comparisons"
+msgstr "No usar matemàtica IEEE per a comparances fp"
+
+#: config/i386/i386.h:322
+msgid "Return values of functions in FPU registers"
+msgstr "Retornar valors de funcions en registres FPU"
+
+#: config/i386/i386.h:324
+msgid "Do not return values of functions in FPU registers"
+msgstr "No retornar valors de funcions en registres FPU"
+
+#: config/i386/i386.h:326
+msgid "Do not generate sin, cos, sqrt for FPU"
+msgstr "No generar sin, cos, sqrt per a FPU"
+
+#: config/i386/i386.h:328
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr "Generar sin, cos, sqrt per a FPU"
+
+#: config/i386/i386.h:330
+msgid "Omit the frame pointer in leaf functions"
+msgstr "Ometre el marc de referència per a les funcions fulles"
+
+#: config/i386/i386.h:333
+msgid "Enable stack probing"
+msgstr "Habilitar la prova de la pila"
+
+#. undocumented
+#. undocumented
+#: config/i386/i386.h:338
+msgid "Align destination of the string operations"
+msgstr "Alinear destinació de les operacions de cadenes"
+
+#: config/i386/i386.h:340
+msgid "Do not align destination of the string operations"
+msgstr "No alinear destinació de les operacions de cadenes"
+
+#: config/i386/i386.h:342
+msgid "Inline all known string operations"
+msgstr "Convertir a inline totes les operacions de cadenes conegudes"
+
+#: config/i386/i386.h:344
+msgid "Do not inline all known string operations"
+msgstr "No convertir a inline totes les operacions de cadenes conegudes"
+
+#: config/i386/i386.h:346 config/i386/i386.h:350
+msgid "Use push instructions to save outgoing arguments"
+msgstr "Usar instruccions push per a guardar els arguments de sortida"
+
+#: config/i386/i386.h:348 config/i386/i386.h:352
+msgid "Do not use push instructions to save outgoing arguments"
+msgstr "No usar instruccions push per a guardar els arguments de sortida"
+
+#: config/i386/i386.h:354
+msgid "Support MMX built-in functions"
+msgstr "Donar suport per a funcions internes MMX"
+
+#: config/i386/i386.h:356
+msgid "Do not support MMX built-in functions"
+msgstr "No donar suport per a funcions internes MMX"
+
+#: config/i386/i386.h:358
+msgid "Support 3DNow! built-in functions"
+msgstr "Donar suport per a funcions internes 3DNow!"
+
+#: config/i386/i386.h:360
+msgid "Do not support 3DNow! built-in functions"
+msgstr "No donar suport per a funcions internes 3DNow!"
+
+#: config/i386/i386.h:362
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Donar suport per a funcions internes MMX i SSE"
+
+#: config/i386/i386.h:364
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr "No donar suport per a funcions internes MMX i SSE"
+
+#: config/i386/i386.h:366
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Donar suport per a funcions internes MMX, SSE i SSE2"
+
+#: config/i386/i386.h:368
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "No donar suport per a funcions internes MMX, SSE i SSE2"
+
+#: config/i386/i386.h:370
+msgid "sizeof(long double) is 16"
+msgstr "sizeof(long double) és 16."
+
+#: config/i386/i386.h:372
+msgid "sizeof(long double) is 12"
+msgstr "sizeof(long double) és 12."
+
+#: config/i386/i386.h:374
+msgid "Generate 64bit x86-64 code"
+msgstr "Generar codi 64 bit per a x86-64"
+
+#: config/i386/i386.h:376
+msgid "Generate 32bit i386 code"
+msgstr "Generar codi 32 bit per a i386"
+
+#: config/i386/i386.h:378
+msgid "Use red-zone in the x86-64 code"
+msgstr "Usar red-zone en el codi x86-64"
+
+#: config/i386/i386.h:380
+msgid "Do not use red-zone in the x86-64 code"
+msgstr "No usar red-zone en el codi x86-64"
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
+msgid "Schedule code for given CPU"
+msgstr "Codi de planificador per al CPU donat"
+
+#: config/i386/i386.h:411
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Generar matemàtiques de coma flotant usant el conjunt d'instruccions donat"
+
+#: config/i386/i386.h:413
+msgid "Generate code for given CPU"
+msgstr "Generar codi per al CPU donat"
+
+#: config/i386/i386.h:415
+msgid "Number of registers used to pass integer arguments"
+msgstr "Nombre de registres usats per a passar arguments enters"
+
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
+msgid "Loop code aligned to this power of 2"
+msgstr "El codi de cicle és alineat a aquesta potència de 2"
+
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
+msgid "Jump targets are aligned to this power of 2"
+msgstr "Els objectius de salt són alineats a aquesta potència de 2"
+
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
+msgid "Function starts are aligned to this power of 2"
+msgstr "Els inicis de les funcions són alineats a aquesta potència de 2"
+
+#: config/i386/i386.h:424
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr "Es tracta de mantenir la pila alineada a aquesta potència de 2"
+
+#: config/i386/i386.h:426
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr "Les ramificacions són així de cares (1-5, unitats arbitràries)"
+
+#: config/i386/i386.h:428
+msgid "Use given x86-64 code model"
+msgstr "Usar el mpdel de codi x86-64 donat"
+
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+msgid "Use given assembler dialect"
+msgstr "Usar el dialecte del ensemblador donat"
+
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr "Usar el dialecte d'emmagatzematge thread-local donat"
+
+#: config/i386/sco5.h:297
+msgid "Generate ELF output"
+msgstr "Generar sortida ELF"
+
+#: config/i386/win32.h:53
+msgid "Use Mingw32 interface"
+msgstr "Usar la interfície Mingw32"
+
+#: config/i386/win32.h:55
+msgid "Use Cygwin interface"
+msgstr "Usar la interfície Cygwin"
+
+#: config/i386/win32.h:57
+msgid "Use bare Windows interface"
+msgstr "Usar la interfície nua Windows"
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:71
+msgid "environment variable DJGPP not defined"
+msgstr "no es va definir la variable d'ambient DJGPP"
+
+#: config/i386/xm-djgpp.h:73
+#, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "la variable d'ambient DJGPP apunta al fitxer faltant\"%s\""
+
+#: config/i386/xm-djgpp.h:76
+#, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "la variable d'ambient DJGPP apunta al fitxer corrupte \"%s\""
+
+#: config/i960/i960-c.c:66
+msgid "sorry, not implemented: #pragma align NAME=SIZE"
+msgstr "disculpi, no s'ha implementar: #pragma align NAME=SIZE"
+
+#: config/i960/i960-c.c:71
+msgid "malformed #pragma align - ignored"
+msgstr "#pragma align mal format - ignorat"
+
+#: config/i960/i960-c.c:109
+msgid "sorry, not implemented: #pragma noalign NAME"
+msgstr "disculpi, no s'ha implementat: #pragma noalign NAME"
+
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "es van definir arquitectures en conflicte - usant les sèries C"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "es van definir arquitectures en conflicte - usant les sèries K"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 i iC3.0 són incompatibles - usant iC3.0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
+msgid "stack limit expression is not supported"
+msgstr "no es dóna suport a l'expressió del límit de la pila"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#. ??? Not all ten of these architecture variations actually exist, but I
+#. am not sure which are real and which aren't.
+#: config/i960/i960.h:240
+msgid "Generate SA code"
+msgstr "Generar codi SA"
+
+#: config/i960/i960.h:243
+msgid "Generate SB code"
+msgstr "Generar codi SB"
+
+#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
+#: config/i960/i960.h:248
+msgid "Generate KA code"
+msgstr "Generar codi KA"
+
+#: config/i960/i960.h:251
+msgid "Generate KB code"
+msgstr "Generar codi KB"
+
+#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
+#: config/i960/i960.h:256
+msgid "Generate JA code"
+msgstr "Generar codi JA"
+
+#: config/i960/i960.h:258
+msgid "Generate JD code"
+msgstr "Generar codi JD"
+
+#: config/i960/i960.h:261
+msgid "Generate JF code"
+msgstr "Generar codi JF"
+
+#: config/i960/i960.h:263
+msgid "generate RP code"
+msgstr "generar codi RP"
+
+#: config/i960/i960.h:266
+msgid "Generate MC code"
+msgstr "Generar codi MC"
+
+#: config/i960/i960.h:269
+msgid "Generate CA code"
+msgstr "Generar codi CA"
+
+#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
+#: config/i960/i960.h:279
+msgid "Generate CF code"
+msgstr "Generar codi CF"
+
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Usar coma flotant de programari"
+
+#: config/i960/i960.h:285
+msgid "Use alternate leaf function entries"
+msgstr "Usar entrades de funció fulles alternades"
+
+#: config/i960/i960.h:287
+msgid "Do not use alternate leaf function entries"
+msgstr "No usar entrades de funció fulles alternades"
+
+#: config/i960/i960.h:289
+msgid "Perform tail call optimization"
+msgstr "Realitzar optimització de la cridada de l'extrem"
+
+#: config/i960/i960.h:291
+msgid "Do not perform tail call optimization"
+msgstr "No realitzar optimització de la cridada de l'extrem"
+
+#: config/i960/i960.h:293
+msgid "Use complex addressing modes"
+msgstr "Usar maneres de adreçament complexos"
+
+#: config/i960/i960.h:295
+msgid "Do not use complex addressing modes"
+msgstr "No usar maneres de adreçament complexos"
+
+#: config/i960/i960.h:297
+msgid "Align code to 8 byte boundary"
+msgstr "Alinear el codi a límits de 8 octet"
+
+#: config/i960/i960.h:299
+msgid "Do not align code to 8 byte boundary"
+msgstr "No alinear el codi a límits de 8 octet"
+
+#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
+#: config/i960/i960.h:305 config/i960/i960.h:307
+msgid "Enable compatibility with iC960 v2.0"
+msgstr "Activar la compatibilitat amb iC960 v2.0"
+
+#: config/i960/i960.h:309
+msgid "Enable compatibility with iC960 v3.0"
+msgstr "Activar la compatibilitat amb iC960 v3.0"
+
+#: config/i960/i960.h:311 config/i960/i960.h:313
+msgid "Enable compatibility with ic960 assembler"
+msgstr "Activar la compatibilitat amb el assemblador ic960"
+
+#: config/i960/i960.h:315
+msgid "Do not permit unaligned accesses"
+msgstr "No permetre accessos sense alinear"
+
+#: config/i960/i960.h:317
+msgid "Permit unaligned accesses"
+msgstr "Permetre accessos sense alinear"
+
+#: config/i960/i960.h:319
+msgid "Layout types like Intel's v1.3 gcc"
+msgstr "Presentar tipus com en el gcc v1.3 de Intel"
+
+#: config/i960/i960.h:321
+msgid "Do not layout types like Intel's v1.3 gcc"
+msgstr "No presentar tipus com en el gcc v1.3 de Intel"
+
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
+msgid "Use 64 bit long doubles"
+msgstr "Usar long doubles de 64 bit"
+
+#: config/i960/i960.h:325
+msgid "Enable linker relaxation"
+msgstr "Activar la relaxació del enllaçador"
+
+#: config/i960/i960.h:327
+msgid "Do not enable linker relaxation"
+msgstr "Desactivar la relaxació del enllaçador"
+
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr "secció #pragma builtin malformada"
+
+#: config/ia64/ia64.c:4015
+msgid "ia64_print_operand: unknown code"
+msgstr "ia64_print_operand: codi desconegut"
+
+#: config/ia64/ia64.c:4292
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr "el valor de -mfixed-range deu ser de la forma REG1-REG2"
+
+#: config/ia64/ia64.c:4319
+#, c-format
+msgid "%s-%s is an empty range"
+msgstr "%s-%s és un rang buit"
+
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "no es pot optimitzar la divisió de coma flotant per a latència i sortida al mateix temps"
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "no es pot optimitzar la divisió entera per a latència i sortida al mateix temps"
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mtls-size="
+
+#. This macro defines names of command options to set and clear bits in
+#. `target_flags'. Its definition is an initializer with a subgrouping for
+#. each command option.
+#: config/ia64/ia64.h:154
+msgid "Generate big endian code"
+msgstr "Generar codi big endian"
+
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
+msgid "Generate little endian code"
+msgstr "Generar codi little endian"
+
+#: config/ia64/ia64.h:158
+msgid "Generate code for GNU as"
+msgstr "Generar codi com de GNU"
+
+#: config/ia64/ia64.h:160
+msgid "Generate code for Intel as"
+msgstr "Generar codi com de Intel"
+
+#: config/ia64/ia64.h:162
+msgid "Generate code for GNU ld"
+msgstr "Generar codi per a ld de GNU"
+
+#: config/ia64/ia64.h:164
+msgid "Generate code for Intel ld"
+msgstr "Generar codi per a ld de Intel"
+
+#: config/ia64/ia64.h:166
+msgid "Generate code without GP reg"
+msgstr "Generar codi sense registre GP"
+
+#: config/ia64/ia64.h:168
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr "Emetre bits de desocupada abans i després de asms estesos amb volatile"
+
+#: config/ia64/ia64.h:170
+msgid "Don't emit stop bits before and after volatile extended asms"
+msgstr "No emetre bits de desocupada abans i després de asmsestesos amb volatile"
+
+#: config/ia64/ia64.h:172
+msgid "Emit code for Itanium (TM) processor B step"
+msgstr "Emetre codi per a Itanium (TM) processador de pas B"
+
+#: config/ia64/ia64.h:174
+msgid "Use in/loc/out register names"
+msgstr "Usar noms de registre in/loc/out"
+
+#: config/ia64/ia64.h:176
+msgid "Disable use of sdata/scommon/sbss"
+msgstr "Desactivar l'ús de sdata/scommon/sbss"
+
+#: config/ia64/ia64.h:178
+msgid "Enable use of sdata/scommon/sbss"
+msgstr "Activar l'ús de sdata/scommon/sbss"
+
+#: config/ia64/ia64.h:180
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr "gp és constant (però hi ha save/restore de gp en cridades indirectes)"
+
+#: config/ia64/ia64.h:182
+msgid "Generate self-relocatable code"
+msgstr "Generar codi self-relocatable"
+
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Generar divisió de coma flotant inline, optimitzada per a latència"
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Generar divisió de coma flotant inline, optimitzada per a sortida"
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Generar divisió entera inline, optimitzada per a latència"
+
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Generar divisió entera inline, optimitzada per a sortida"
+
+#: config/ia64/ia64.h:192
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr "Activar la informació de la línia de depuració Dwarf2 a través com de GNU"
+
+#: config/ia64/ia64.h:194
+msgid "Disable Dwarf 2 line debug info via GNU as"
+msgstr "Desactivar la informació de la línia de depuració Dwarf 2 a través com de GNU"
+
+#: config/ia64/ia64.h:223
+msgid "Specify range of registers to make fixed"
+msgstr "Especifica el rang de registres a convertir en fixos"
+
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr "operant invàlid"
+
+#: config/m32r/m32r.c:139
+#, c-format
+msgid "bad value (%s) for -mmodel switch"
+msgstr "valor erroni (%s) per a l'interruptor -mmodel"
+
+#: config/m32r/m32r.c:148
+#, c-format
+msgid "bad value (%s) for -msdata switch"
+msgstr "valor erroni (%s) per a l'interruptor -msdata"
+
+#: config/m32r/m32r.c:319
+#, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr "invàlid argument per a l'atribut \"%s\""
+
+#: config/m32r/m32r.c:422
+msgid "const objects cannot go in .sdata/.sbss"
+msgstr "els objectes cons no poden anar a .sdata/.sbss"
+
+#: config/m32r/m32r.c:2256
+#, c-format
+msgid "invalid operand to %%s code"
+msgstr "invàlid operand per al codi %%s"
+
+#: config/m32r/m32r.c:2263
+#, c-format
+msgid "invalid operand to %%p code"
+msgstr "invàlid operand per al codi %%p"
+
+#: config/m32r/m32r.c:2318
+msgid "bad insn for 'A'"
+msgstr "insn erroni per a \"A\""
+
+#: config/m32r/m32r.c:2370
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "invàlid operand per al codi %%T/%%B"
+
+#: config/m32r/m32r.c:2393
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr "invàlid operand per al codi %%N"
+
+#: config/m32r/m32r.c:2438
+msgid "pre-increment address is not a register"
+msgstr "l'adreça de pre-increment no és un registre"
+
+#: config/m32r/m32r.c:2445
+msgid "pre-decrement address is not a register"
+msgstr "l'adreça de pre-decrement no és un registre"
+
+#: config/m32r/m32r.c:2452
+msgid "post-increment address is not a register"
+msgstr "l'adreça de post-increment no és un registre"
+
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+msgid "bad address"
+msgstr "adreça erroni"
+
+#: config/m32r/m32r.c:2551
+msgid "lo_sum not of register"
+msgstr "lo_sum no és un registre"
+
+#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
+#: config/m32r/m32r.h:241
+msgid "Display compile time statistics"
+msgstr "Mostrar estadístiques de tepms de compilació"
+
+#: config/m32r/m32r.h:243
+msgid "Align all loops to 32 byte boundary"
+msgstr "Alinear tots els cicles al límit de 32 octet"
+
+#: config/m32r/m32r.h:246
+msgid "Only issue one instruction per cycle"
+msgstr "Només executar una instrucció per cicle"
+
+#: config/m32r/m32r.h:249
+msgid "Prefer branches over conditional execution"
+msgstr "Preferir les branques sobre l'execució condicional"
+
+#: config/m32r/m32r.h:265
+msgid "Code size: small, medium or large"
+msgstr "Grandària del codi: small, medium o large"
+
+#: config/m32r/m32r.h:267
+msgid "Small data area: none, sdata, use"
+msgstr " Àrea de dades small: none, sdata, use"
+
+#: config/m68hc11/m68hc11.c:242
+#, c-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr "s'ignora -f%s per a 68HC11/68HC12 (sense suport)"
+
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+msgid "`trap' attribute is already used"
+msgstr "l'atribut \"trap\" ja està en ús"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+msgid "move insn not handled"
+msgstr "no es maneja move insn"
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+msgid "invalid register in the move instruction"
+msgstr "registre invàlid en la instrucció move"
+
+#: config/m68hc11/m68hc11.c:3613
+msgid "invalid operand in the instruction"
+msgstr "operant invàlid en la instrucció"
+
+#: config/m68hc11/m68hc11.c:3920
+msgid "invalid register in the instruction"
+msgstr "registre invàlid en la instrucció"
+
+#: config/m68hc11/m68hc11.c:3953
+msgid "operand 1 must be a hard register"
+msgstr "l'operant 1 deu ser un registre fix"
+
+#: config/m68hc11/m68hc11.c:3970
+msgid "invalid rotate insn"
+msgstr "rotació de insn invàlida"
+
+#: config/m68hc11/m68hc11.c:4391
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "es van usar els registres IX, IY i Z en el mateix INSN"
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+msgid "cannot do z-register replacement"
+msgstr "no es pot reemplaçar el registre-z"
+
+#: config/m68hc11/m68hc11.c:5094
+msgid "invalid Z register replacement for insn"
+msgstr "reemplaçament de registre Z invàlid per al insn"
+
+#. Macro to define tables used to set the flags. This is a list in braces of
+#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
+#. to set or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE.
+#: config/m68hc11/m68hc11.h:172
+msgid "Compile with 16-bit integer mode"
+msgstr "Compilar amb el mode enter de 16-bit"
+
+#: config/m68hc11/m68hc11.h:174
+msgid "Compile with 32-bit integer mode"
+msgstr "Compilar amb el mode enter de 32-bit"
+
+#: config/m68hc11/m68hc11.h:176
+msgid "Auto pre/post decrement increment allowed"
+msgstr "Es permet el pre/post decrement increment automatic"
+
+#: config/m68hc11/m68hc11.h:178
+msgid "Auto pre/post decrement increment not allowed"
+msgstr "No es permet el pre/post decrement increment automatic"
+
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr "Usar call i rtc per a cridades i devolucions de funció"
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Usar jsr i rts per a cridades i devolucions de funció"
+
+#: config/m68hc11/m68hc11.h:188
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "No usar el mode d'adreçament direct per a registres soft"
+
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr "Usar el mode d'adreçament direct per a registres soft"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
+msgid "Compile for a 68HC11"
+msgstr "Compilar per a un 68HC11"
+
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
+msgid "Compile for a 68HC12"
+msgstr "Compilar per a un 68HC12"
+
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr "Compilar per a un 68HCS12"
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/m68hc11/m68hc11.h:216
+msgid "Specify the register allocation order"
+msgstr "Especificar l'ordre d'assignació de registres"
+
+#: config/m68hc11/m68hc11.h:218
+msgid "Indicate the number of soft registers available"
+msgstr "Indicar el nombre de registres suaus disponibles"
+
+#: config/m68k/m68k.c:158
+#, c-format
+msgid "-malign-loops=%d is not between 1 and %d"
+msgstr "-malign-loops=%d no és entre 1 i %d"
+
+#: config/m68k/m68k.c:169
+#, c-format
+msgid "-malign-jumps=%d is not between 1 and %d"
+msgstr "-malign-jumps=%d no és entre 1 i %d"
+
+#: config/m68k/m68k.c:180
+#, c-format
+msgid "-malign-functions=%d is not between 1 and %d"
+msgstr "-malign-functions=%d no és entre 1 i %d"
+
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr " -fPIC actualment no té suport en el 68000 o 68010\n"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+msgid "Generate code for a 68020"
+msgstr "Generar codi per a un 68020"
+
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+msgid "Generate code for a 68000"
+msgstr "Generar codi per a un 68000"
+
+#: config/m68k/m68k.h:174
+msgid "Use the bit-field instructions"
+msgstr "Usar instruccions de camps de bit"
+
+#: config/m68k/m68k.h:176
+msgid "Do not use the bit-field instructions"
+msgstr "No usar instruccions de camps de bit"
+
+#: config/m68k/m68k.h:178
+msgid "Use different calling convention using 'rtd'"
+msgstr "Usar la convenció de cridada diferent usant 'rtd'"
+
+#: config/m68k/m68k.h:182
+msgid "Consider type `int' to be 16 bits wide"
+msgstr "Considerar que el tipus \"int\" és de 16 bits d'amplària"
+
+#: config/m68k/m68k.h:184
+msgid "Consider type `int' to be 32 bits wide"
+msgstr "Considerar que el tipus \"int\" és de 32 bits d'amplària"
+
+#: config/m68k/m68k.h:186
+msgid "Generate code for a Sun FPA"
+msgstr "Generar codi per a un Sun FPA"
+
+#: config/m68k/m68k.h:189
+msgid "Do not generate code for a Sun FPA"
+msgstr "No generar codi per a un Sun FPA"
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+msgid "Generate code for a Sun Sky board"
+msgstr "Generar codi per a un Sun Sky board"
+
+#: config/m68k/m68k.h:195
+msgid "Do not use Sky linkage convention"
+msgstr "No usar la convenció d'enllaç Sky"
+
+#: config/m68k/m68k.h:197
+msgid "Generate code for a 68881"
+msgstr "Generar codi per a un 68881"
+
+#: config/m68k/m68k.h:200
+msgid "Generate code with library calls for floating point"
+msgstr "Generar codi amb cridades a biblioteques per a coma flotant"
+
+#: config/m68k/m68k.h:202
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "Generar codi per a un 68040, sense cap instrucció nova"
+
+#: config/m68k/m68k.h:205
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "Generar codi per a un 68060, sense cap instrucció nova"
+
+#: config/m68k/m68k.h:209
+msgid "Generate code for a 68030"
+msgstr "Generar codi per a un 68030"
+
+#: config/m68k/m68k.h:212
+msgid "Generate code for a 68040"
+msgstr "Generar codi per a un 68040"
+
+#: config/m68k/m68k.h:216
+msgid "Generate code for a 68060"
+msgstr "Generar codi per a un 68060"
+
+#: config/m68k/m68k.h:221
+msgid "Generate code for a 520X"
+msgstr "Generar codi per a un 520X"
+
+#: config/m68k/m68k.h:224
+msgid "Generate code for a 68851"
+msgstr "Generar codi per a un 68851"
+
+#: config/m68k/m68k.h:226
+msgid "Do no generate code for a 68851"
+msgstr "No generar codi per a un 68851"
+
+#: config/m68k/m68k.h:229
+msgid "Generate code for a 68302"
+msgstr "Generar codi per a un 68302"
+
+#: config/m68k/m68k.h:232
+msgid "Generate code for a 68332"
+msgstr "Generar codi per a un 68332"
+
+#: config/m68k/m68k.h:236
+msgid "Generate code for a cpu32"
+msgstr "Generar codi per a un cpu32"
+
+#: config/m68k/m68k.h:239
+msgid "Align variables on a 32-bit boundary"
+msgstr "Alinear les variables en un límit de 32-bit"
+
+#: config/m68k/m68k.h:241
+msgid "Align variables on a 16-bit boundary"
+msgstr "Alinear les variables en un límit de 16-bit"
+
+#: config/m68k/m68k.h:243
+msgid "Generate pc-relative code"
+msgstr "Generar codi relatiu al pc"
+
+#: config/m68k/m68k.h:245
+msgid "Do not use unaligned memory references"
+msgstr "No permetre referències a memòria sense alinear"
+
+#: config/m68k/m68k.h:247
+msgid "Use unaligned memory references"
+msgstr "Usar referències a memòria sense alinear"
+
+#: config/m88k/m88k.c:903
+#, c-format
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr "monitor intern de gcc: short-branch(%x)"
+
+#: config/m88k/m88k.c:2302
+msgid "internal gcc error: Can't express symbolic location"
+msgstr "error intern de gcc: No es pot expressar la ubicació simbòlica"
+
+#: config/m88k/m88k.c:2517
+#, c-format
+msgid "argument #%d is a structure"
+msgstr "l'argument #%d és una estructura"
+
+#: config/m88k/m88k.c:2816
+#, c-format
+msgid "%%R not followed by %%B/C/D/E"
+msgstr "%%R no és seguit per %%B/C/D/E"
+
+#: config/m88k/m88k.c:2884
+#, c-format
+msgid "invalid %%x/X value"
+msgstr "valor invàlid per a %%x/X"
+
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "valor %%Q invàlid"
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, c-format
+msgid "invalid %%q value"
+msgstr "valor invàlid per a %%q"
+
+#: config/m88k/m88k.c:2913
+#, c-format
+msgid "invalid %%o value"
+msgstr "valor invàlid per a %%o"
+
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
+#, c-format
+msgid "invalid %%p value"
+msgstr "valor invàlid per a %%p"
+
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, c-format
+msgid "invalid %%s/S value"
+msgstr "valor invàlid per a %%s/S"
+
+#: config/m88k/m88k.c:2949
+#, c-format
+msgid "invalid %%P operand"
+msgstr "operand invàlid per a %%P"
+
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, c-format
+msgid "invalid %%B value"
+msgstr "valor invàlid per a %%B"
+
+#: config/m88k/m88k.c:3010
+#, c-format
+msgid "invalid %%D value"
+msgstr "valor invàlid per a %%D"
+
+#: config/m88k/m88k.c:3023
+#, c-format
+msgid "`%%d' operand isn't a register"
+msgstr "l'operand \"%%d\" no és un registre"
+
+#: config/m88k/m88k.c:3041
+msgid "operand is r0"
+msgstr "l'operand és r0"
+
+#: config/m88k/m88k.c:3055
+msgid "operand is const_double"
+msgstr "l'operand és const_double"
+
+#: config/m88k/m88k.c:3074
+msgid "invalid code"
+msgstr "codi invàlid"
+
+#. Do any checking or such that is needed after processing the -m switches.
+#: config/m88k/m88k.h:277
+msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+msgstr "-mtrap-large-shift i -mhandle-large-shift no són compatibles"
+
+#: config/m88k/m88k.h:299
+#, c-format
+msgid "invalid option `-mshort-data-%s'"
+msgstr "opció invàlida \"-mshort-data-%s\""
+
+#: config/m88k/m88k.h:304
+#, c-format
+msgid "-mshort-data-%s is too large "
+msgstr "-mshort-data-%s és massa gran"
+
+#: config/m88k/m88k.h:306
+#, c-format
+msgid "-mshort-data-%s and PIC are incompatible"
+msgstr "-mshort-data-%s i PIC són incompatibles"
+
+#: config/mcore/mcore.c:3078
+#, c-format
+msgid "invalid option `-mstack-increment=%s'"
+msgstr "opció invàlida \"-mstack-increment=%s\""
+
+#: config/mcore/mcore.h:126
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr "Constants inline si poden ser fetes en 2 insns o menys"
+
+#: config/mcore/mcore.h:128
+msgid "Inline constants if it only takes 1 instruction"
+msgstr "Constants inline si només prenen 1 instrucció"
+
+#: config/mcore/mcore.h:130
+msgid "Set maximum alignment to 4"
+msgstr "Establir l'alineació màxima a 4"
+
+#: config/mcore/mcore.h:132
+msgid "Set maximum alignment to 8"
+msgstr "Establir l'alineació màxima a 8"
+
+#: config/mcore/mcore.h:136
+msgid "Do not use the divide instruction"
+msgstr "No usar la instrucció divideix"
+
+#: config/mcore/mcore.h:140
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr "No intervenir en immediats de grandàries arbitràries en operacions de bit"
+
+#: config/mcore/mcore.h:142
+msgid "Always treat bit-field as int-sized"
+msgstr "Tractar sempre als camps de bit com de grandària int"
+
+#: config/mcore/mcore.h:146
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr "Forçar que les funcions s'alineïn a un límit de 4 octet"
+
+#: config/mcore/mcore.h:148
+msgid "Force functions to be aligned to a 2 byte boundary"
+msgstr "Forçar que les funcions s'alineïn a un límit de 2 octet"
+
+#: config/mcore/mcore.h:150
+msgid "Emit call graph information"
+msgstr "Emetre informació de graf de cridades"
+
+#: config/mcore/mcore.h:154
+msgid "Prefer word accesses over byte accesses"
+msgstr "Preferir accessos word sobre accés octet"
+
+#: config/mcore/mcore.h:165
+msgid "Generate code for the M*Core M340"
+msgstr "Generar codi per a M*Core M340"
+
+#: config/mcore/mcore.h:178
+msgid "Maximum amount for a single stack increment operation"
+msgstr "Quantitat màxima per a una sola operació d'increment de pila"
+
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "valor erroni (%s) per a l'interruptor -mabi="
+
+#: config/mips/mips.c:5158
+#, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr ""
+
+#: config/mips/mips.c:5165
+#, c-format
+msgid "bad value (%s) for -mips switch"
+msgstr "valor erroni (%s) per a l'interruptor -mips"
+
+#: config/mips/mips.c:5180
+#, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr ""
+
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr ""
+
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "s'utilitza -mgp32 amb una ABI de 64-bit"
+
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "s'utilitza -mgp64 amb una ABI de 32-bit"
+
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, c-format
+msgid "unsupported combination: %s"
+msgstr "combinació sense suport: %s"
+
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
+
+#: config/mips/mips.c:5299
+msgid "-G is incompatible with PIC code which is the default"
+msgstr "-G és incompatible amb el codi PIC el qual és per omissió"
+
+#: config/mips/mips.c:5315
+msgid "-membedded-pic and -mabicalls are incompatible"
+msgstr "-membedded-pic i -mabicalls són incompatibles"
+
+#: config/mips/mips.c:5318
+msgid "-G and -membedded-pic are incompatible"
+msgstr "-G i -membedded-pic són incompatibles"
+
+#: config/mips/mips.c:5369
+#, c-format
+msgid "invalid option `entry%s'"
+msgstr "opció invàlid \"entry%s\""
+
+#: config/mips/mips.c:5372
+msgid "-mentry is only meaningful with -mips-16"
+msgstr "-mentry només té significat amb -mips-16"
+
+#: config/mips/mips.c:5781
+#, c-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr "error intern: es va trobar %%) sense un %%( en el patró del ensemblador"
+
+#: config/mips/mips.c:5795
+#, c-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr "error intern: es va trobar %%] sense un %%[ en el patró del ensemblador"
+
+#: config/mips/mips.c:5808
+#, c-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr "error intern: es va trobar %%> sense un %%< en el patró del ensemblador"
+
+#: config/mips/mips.c:5821
+#, c-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr "error intern: es va trobar %%} sense un %%{ en el patró del ensemblador"
+
+#: config/mips/mips.c:5835
+#, c-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "PRINT_OPERAND: puntuació desconeguda \"%c\""
+
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
+msgid "PRINT_OPERAND null pointer"
+msgstr "PRINT_OPERAND punter nul"
+
+#: config/mips/mips.c:5975
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr "ùs invàlid de %%d, %%x, o %%X"
+
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr "PRINT_OPERAND_ADDRESS, punter nul"
+
+#: config/mips/mips.c:6242
+msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+msgstr "el format ECOFF de MIPS no permet el canvi de noms de fitxer dintre de funcions amb #line"
+
+#: config/mips/mips.c:6552
+msgid "can't rewind temp file"
+msgstr "no es pot rebobinar el fitxer temporal"
+
+#: config/mips/mips.c:6556
+msgid "can't write to output file"
+msgstr "no es pot escriure al fitxer de sortida"
+
+#: config/mips/mips.c:6559
+msgid "can't read from temp file"
+msgstr "no es pot llegir dès del fitxer temporal"
+
+#: config/mips/mips.c:6562
+msgid "can't close temp file"
+msgstr "no es pot tancar el fitxer temporal"
+
+#: config/mips/mips.c:7003
+#, c-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "gp_offset (%ld) o end_offset (%ld) és menor a zero"
+
+#: config/mips/mips.c:7112
+#, c-format
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "fp_offset (%ld) o end_offset (%ld) és menor a zero"
+
+#: config/mips/mips.c:9335
+#, c-format
+msgid "can not handle inconsistent calls to `%s'"
+msgstr "no es poden manejar cridades inconsistentes a \"%s\""
+
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr "el nom de cpu deu estar en minúscules"
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr "valor erroni (%s) per a %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
+msgid "No default crt0.o"
+msgstr "No està el crt0.o per omissió"
+
+#: config/mips/mips.h:530
+msgid "Use 64-bit int type"
+msgstr "Usar tipus int de 64 bits"
+
+#: config/mips/mips.h:532
+msgid "Use 64-bit long type"
+msgstr "Usar tipus long de 64 bits"
+
+#: config/mips/mips.h:534
+msgid "Use 32-bit long type"
+msgstr "Usar tipus long de 32 bits"
+
+#: config/mips/mips.h:536
+msgid "Optimize lui/addiu address loads"
+msgstr "Optimitzar les càrregues de les adreces lui/addiu"
+
+#: config/mips/mips.h:538
+msgid "Don't optimize lui/addiu address loads"
+msgstr "No optimitzar les càrregues de les adreces lui/addiu"
+
+#: config/mips/mips.h:540
+msgid "Use MIPS as"
+msgstr "Usar l'as de MIPS"
+
+#: config/mips/mips.h:542
+msgid "Use GNU as"
+msgstr "Usar l'as de GNU"
+
+#: config/mips/mips.h:544
+msgid "Use symbolic register names"
+msgstr "Usar noms simbòlics de registre"
+
+#: config/mips/mips.h:546
+msgid "Don't use symbolic register names"
+msgstr "No usar noms simbòlics de registre"
+
+#: config/mips/mips.h:548 config/mips/mips.h:550
+msgid "Use GP relative sdata/sbss sections"
+msgstr "Usar seccions sdata/sbss relatives a GP"
+
+#: config/mips/mips.h:552 config/mips/mips.h:554
+msgid "Don't use GP relative sdata/sbss sections"
+msgstr "No usar seccions sdata/sbss relatives a GP"
+
+#: config/mips/mips.h:556
+msgid "Output compiler statistics"
+msgstr "Mostrar la sortida d'estadístiques del compilador"
+
+#: config/mips/mips.h:558
+msgid "Don't output compiler statistics"
+msgstr "No mostrar la sortida d'estadístiques del compilador"
+
+#: config/mips/mips.h:560
+msgid "Don't optimize block moves"
+msgstr "No optimitzar els moviments de blocs"
+
+#: config/mips/mips.h:562
+msgid "Optimize block moves"
+msgstr "Optimitzar els moviments de blocs"
+
+#: config/mips/mips.h:564
+msgid "Use mips-tfile asm postpass"
+msgstr "Usar mips-tfile asm postpass"
+
+#: config/mips/mips.h:566
+msgid "Don't use mips-tfile asm postpass"
+msgstr "No usar mips-tfile asm postpass"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each triplet being { "NAME", VALUE, DOC }
+#. where VALUE is the bits to set or minus the bits to clear and DOC
+#. is the documentation for --help (NULL if intentionally undocumented).
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
+msgid "Use hardware floating point"
+msgstr "Usar coma flotant de maquinari"
+
+#: config/mips/mips.h:572
+msgid "Use 64-bit FP registers"
+msgstr "Usar registres FP de 64 bits"
+
+#: config/mips/mips.h:574
+msgid "Use 32-bit FP registers"
+msgstr "Usar registres FP de 32 bits"
+
+#: config/mips/mips.h:576
+msgid "Use 64-bit general registers"
+msgstr "Usar registres generals de 64 bits"
+
+#: config/mips/mips.h:578
+msgid "Use 32-bit general registers"
+msgstr "Usar registres generals de 32 bits"
+
+#: config/mips/mips.h:580
+msgid "Use Irix PIC"
+msgstr "Usar PIC de Irix"
+
+#: config/mips/mips.h:582
+msgid "Don't use Irix PIC"
+msgstr "No usar PIC de Irix"
+
+#: config/mips/mips.h:584
+msgid "Use indirect calls"
+msgstr "Usar cridades indirectes"
+
+#: config/mips/mips.h:586
+msgid "Don't use indirect calls"
+msgstr "No usar cridades indirectes"
+
+#: config/mips/mips.h:588
+msgid "Use embedded PIC"
+msgstr "Usar el PIC incrustat"
+
+#: config/mips/mips.h:590
+msgid "Don't use embedded PIC"
+msgstr "No usar el PIC incrustat"
+
+#: config/mips/mips.h:592
+msgid "Use ROM instead of RAM"
+msgstr "Usar ROM enlloc de RAM"
+
+#: config/mips/mips.h:594
+msgid "Don't use ROM instead of RAM"
+msgstr "No usar ROM enlloc de RAM"
+
+#: config/mips/mips.h:596
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr "Posar les constants sense inicialitzar en ROM (necessita -membedded-data)"
+
+#: config/mips/mips.h:598
+msgid "Don't put uninitialized constants in ROM"
+msgstr "No posar les constants sense inicialitzar en ROM"
+
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
+msgid "Use big-endian byte order"
+msgstr "Usar ordre de bit big-endian"
+
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
+msgid "Use little-endian byte order"
+msgstr "Usar ordre de bit little-endian"
+
+#: config/mips/mips.h:604
+msgid "Use single (32-bit) FP only"
+msgstr "Usar únicament una sola FP (32-bit)"
+
+#: config/mips/mips.h:606
+msgid "Don't use single (32-bit) FP only"
+msgstr "No usar únicament una sola FP (32-bit)"
+
+#: config/mips/mips.h:608
+msgid "Use multiply accumulate"
+msgstr "Usar el acumulador de multiplicació"
+
+#: config/mips/mips.h:610
+msgid "Don't use multiply accumulate"
+msgstr "No usar el acumulador de multiplicació"
+
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+msgid "Don't generate fused multiply/add instructions"
+msgstr "No generar instruccions multiply/add de curt circuit"
+
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+msgid "Generate fused multiply/add instructions"
+msgstr "Generar instruccions multiply/add de curt circuit"
+
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr "Evitar el bug del primer maquinari 4300"
+
+#: config/mips/mips.h:618
+msgid "Don't work around early 4300 hardware bug"
+msgstr "No evitar el bug del primer maquinari 4300"
+
+#: config/mips/mips.h:620
+msgid "Trap on integer divide by zero"
+msgstr "Atrapar la divisió entera per zero"
+
+#: config/mips/mips.h:622
+msgid "Don't trap on integer divide by zero"
+msgstr "No atrapar la divisió entera per zero"
+
+#: config/mips/mips.h:624
+msgid "Trap on integer divide overflow"
+msgstr "Atrapar desbordaments en la divisió entera"
+
+#: config/mips/mips.h:626
+msgid "Don't trap on integer divide overflow"
+msgstr "No atrapar desbordaments en la divisió entera"
+
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
+msgid "Specify CPU for scheduling purposes"
+msgstr "Especificar el CPU per a propòsits de calendarització"
+
+#: config/mips/mips.h:746
+msgid "Specify CPU for code generation purposes"
+msgstr "Especificar el CPU per a propòsits de generació de codi"
+
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr "Especificar un ABI"
+
+#: config/mips/mips.h:750
+msgid "Specify a Standard MIPS ISA"
+msgstr "Especificar el ISA de MIPS standard"
+
+#: config/mips/mips.h:752
+msgid "Use mips16 entry/exit psuedo ops"
+msgstr "Usar pseudo ops mips16 de entrada/sortida"
+
+#: config/mips/mips.h:754
+msgid "Don't use MIPS16 instructions"
+msgstr "No usar instruccions MIPS16"
+
+#: config/mips/mips.h:756
+msgid "Don't call any cache flush functions"
+msgstr "No cridar cap funció de neteja de memòria cau"
+
+#: config/mips/mips.h:758
+msgid "Specify cache flush function"
+msgstr "Especificar una funció de neteja de memòria cau"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2900
+msgid "mips16 function profiling"
+msgstr "anàlisi de perfil de les funcions mips16"
+
+#: config/mmix/mmix.c:189
+#, c-format
+msgid "-f%s not supported: ignored"
+msgstr "-f%s no té suport: ignorat"
+
+#: config/mmix/mmix.c:644
+#, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr "el valor del tipus de la funció és massa gran, necessita %d registres, només es tenen %d registres per a això"
+
+#: config/mmix/mmix.c:826
+msgid "function_profiler support for MMIX"
+msgstr "suport per a function_profiler per a MMIX"
+
+#: config/mmix/mmix.c:848
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "MMIX intern: L'últim vararg nomenat no conté en un registre"
+
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "MMIX intern: Esperant un CONS_INT, no això"
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "MMIX intern: registre erroni: %d"
+
+#: config/mmix/mmix.c:1718
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "MMIX intern: valor erroni per a \"m\", no és un CONST_INT"
+
+#: config/mmix/mmix.c:1737
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "MMIX intern: Esperant un registre, no això"
+
+#: config/mmix/mmix.c:1747
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr "MMIX intern: Esperant una constant, no això"
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr "MMIX intern: \"%c\" faltant en mmix_print_operand"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "MMIX intern: aquesta operant no es pot dexifrar"
+
+#: config/mmix/mmix.c:1891
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "MMIX intern: adreça no reconeguda"
+
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "el marc de pila no és un múltiple de 8 octets: %d"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "el marc de pila no és un múltiple de octabyte: %d"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "MMIX intern: %s no és un enter desplaçable"
+
+#: config/mmix/mmix.c:3006
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "MMIX intern: Intentant de mostrar una condició invertida de forma invàlida:"
+
+#: config/mmix/mmix.c:3013
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "MMIX Internal: Quin és el CC per això"
+
+#: config/mmix/mmix.c:3017
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "MMIX Internal: Quin és el CC per això"
+
+#: config/mmix/mmix.c:3088
+msgid "MMIX Internal: This is not a constant:"
+msgstr "MMIX Internal: Això no és una constant:"
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+msgid "Set start-address of the program"
+msgstr "Definir l'adreça d'inici del programa"
+
+#: config/mmix/mmix.h:134
+msgid "Set start-address of data"
+msgstr "Definir l'adreça d'inici de les dades"
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr "Per a biblioteques intrínsecs: passar els parametres en registres"
+
+#: config/mmix/mmix.h:201
+msgid "Use register stack for parameters and return value"
+msgstr "Usar registres de pila per a parametres i valors de retorn"
+
+#: config/mmix/mmix.h:203
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr "Usar registres maltractats per a parametres i valors de retorn"
+
+#: config/mmix/mmix.h:205
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "Usar instuccions de comparança en coma flotant que respectent epsilon"
+
+#: config/mmix/mmix.h:208
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr "Usar càrregues de memòria d'extensió zero, no les d'extensió amb signe"
+
+#: config/mmix/mmix.h:211
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr "Generar resultats de divisió amb residu que tingui el mateix signe que el divisor (no el del dividend)"
+
+#: config/mmix/mmix.h:215
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr "Precedir als símbols globals amb \":\" (per a usar-se amb PREFIX)"
+
+#: config/mmix/mmix.h:217
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr "No proveir una adreça d'inici per omissió 0x100 del programa"
+
+#: config/mmix/mmix.h:219
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr "Enllaçar per a emetre el programa en format ELF (en lloc de mmo)"
+
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr "Usar Mnemónicos-P per a ramificacions predites estàticament com preses"
+
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr "No usar Mnemónicos-P per a ramificacions"
+
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr "Usar adreces que reservin registres globals"
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr "No usar adreces que reservin registres globals"
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr "Generar només un punt de sortida per a cada funció"
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr "No generar només un punt de sortida per a cada funció"
+
+#: config/mn10300/mn10300.h:59
+msgid "Work around hardware multiply bug"
+msgstr "Evitar el error de multiplicació de maquinari"
+
+#: config/mn10300/mn10300.h:60
+msgid "Do not work around hardware multiply bug"
+msgstr "No evitar el error de multiplicació de maquinari"
+
+#: config/mn10300/mn10300.h:61
+msgid "Target the AM33 processor"
+msgstr "Apuntar al processador AM33"
+
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
+msgstr "Activar la relaxació del enllaçador"
+
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
+msgid "Don't use hardware fp"
+msgstr "No usar el fp de maquinari"
+
+#: config/ns32k/ns32k.h:143
+msgid "Alternative calling convention"
+msgstr "Convenció de cridada alternativa"
+
+#: config/ns32k/ns32k.h:145
+msgid "Pass some arguments in registers"
+msgstr "Passar alguns arguments en registres"
+
+#: config/ns32k/ns32k.h:146
+msgid "Pass all arguments on stack"
+msgstr "Passar tots els arguments en la pila"
+
+#: config/ns32k/ns32k.h:147
+msgid "Optimize for 32532 cpu"
+msgstr "Optimitzar per al cpu 32532"
+
+#: config/ns32k/ns32k.h:148
+msgid "Optimize for 32332 cpu"
+msgstr "Optimitzar per al cpu 32332"
+
+#: config/ns32k/ns32k.h:150
+msgid "Optimize for 32032"
+msgstr "Optimitzar per a 32032"
+
+#: config/ns32k/ns32k.h:152
+msgid "Register sb is zero. Use for absolute addressing"
+msgstr "El registre sb és zero. S'usa per a adreçament absolut"
+
+#: config/ns32k/ns32k.h:153
+msgid "Do not use register sb"
+msgstr "No usar el registre sb"
+
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
+msgstr "Usar instruccions de camps de bit"
+
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr "No usar instruccions de camps de bit"
+
+#: config/ns32k/ns32k.h:158
+msgid "Generate code for high memory"
+msgstr "Generar codi per a memòria alta"
+
+#: config/ns32k/ns32k.h:159
+msgid "Generate code for low memory"
+msgstr "Generar codi per a memòria baixa"
+
+#: config/ns32k/ns32k.h:160
+msgid "32381 fpu"
+msgstr "fpu 32381"
+
+#: config/ns32k/ns32k.h:162
+msgid "Use multiply-accumulate fp instructions"
+msgstr "Usar instruccions de fp per a multiplicar-acumular"
+
+#: config/ns32k/ns32k.h:164
+msgid "Do not use multiply-accumulate fp instructions"
+msgstr "No usar instruccions de fp per a multiplicar-acumular"
+
+#: config/ns32k/ns32k.h:165
+msgid "\"Small register classes\" kludge"
+msgstr "kludge de \"Classes de registre petites\""
+
+#: config/ns32k/ns32k.h:166
+msgid "No \"Small register classes\" kludge"
+msgstr "No kludge de \"Classes de registre petites\""
+
+#: config/pa/pa.c:261
+#, c-format
+msgid ""
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+msgstr ""
+"opció -mschedule= desconeguda (%s).\n"
+"Les opcions vàlides són 700, 7100, 7100LC, 7200, 7300, i 8000\n"
+
+#: config/pa/pa.c:286
+#, c-format
+msgid ""
+"unknown -march= option (%s).\n"
+"Valid options are 1.0, 1.1, and 2.0\n"
+msgstr ""
+"opció -march= desconeguda (%s).\n"
+"Les opcions vàlides són 1.0, 1.1, i 2.0\n"
+
+#: config/pa/pa.c:299
+msgid "PIC code generation is not supported in the portable runtime model\n"
+msgstr "La generació de codi PIC no té suport en el model portable de temps d'execució\n"
+
+#: config/pa/pa.c:304
+msgid "PIC code generation is not compatible with fast indirect calls\n"
+msgstr "La generació de codi PIC no és compatible amb les cridades ràpides indirectes\n"
+
+#: config/pa/pa.c:309
+msgid "-g is only supported when using GAS on this processor,"
+msgstr "-g només té suport quan s'usa GAS en aquest processador,"
+
+#: config/pa/pa.c:310
+msgid "-g option disabled"
+msgstr "opció -g desactivada"
+
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr "Generar definicions cpp per a IO de servidor"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr "Generar definicions cpp per a IO d'estació de treball"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr "Generar codi PA1.1"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr "Generar codi PA1.0"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr "Desactivar els registres FP"
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr "No desactivar registres FP"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr "No desactivar registres d'espai"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr "Desactivar adreçament d'index"
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr "No desactivar adreçament indexat"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr "Usar convencions de cridada portable"
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr "No usar convencions de cridada portable"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr "No usa coma flotant de programari"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr "No emetre seqüències load/store llarges"
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr "Generar cridades indirectes ràpides"
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr "No generar cridades indirectes ràpides"
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr "Generar codi per a declaracions switch grandes"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr "No generar codi per a declaracions switch grandes"
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr "Generar sempre cridades llarges"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr "Activar les optimitzacions del enllaçador"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
+msgid "Do not use hardware floating point"
+msgstr "No usa coma flotant de maquinari"
+
+#. return float result in ac0
+#: config/pdp11/pdp11.h:59
+msgid "Return floating point results in ac0"
+msgstr "Devolució de resultats de coma flotant en ac0"
+
+#: config/pdp11/pdp11.h:60
+msgid "Return floating point results in memory"
+msgstr "Devolució de resultats de coma flotant en memoria"
+
+#. is 11/40
+#: config/pdp11/pdp11.h:62
+msgid "Generate code for an 11/40"
+msgstr "Generar codi per a un 11/40"
+
+#. is 11/45
+#: config/pdp11/pdp11.h:65
+msgid "Generate code for an 11/45"
+msgstr "5Generar codi per a un 11/45"
+
+#. is 11/10
+#: config/pdp11/pdp11.h:68
+msgid "Generate code for an 11/10"
+msgstr "Generar codi per a un 11/10"
+
+#. use movstrhi for bcopy
+#. use 32 bit for int
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
+msgid "Use 32 bit int"
+msgstr "Usar int de 32 bits"
+
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
+msgid "Use 16 bit int"
+msgstr "Usar int de 16 bits"
+
+#. use 32 bit for float
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
+msgid "Use 32 bit float"
+msgstr "Usar float de 32 bits"
+
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
+msgid "Use 64 bit float"
+msgstr "Usar float de 64 bits"
+
+#. allow abshi pattern? - can trigger "optimizations" which make code SLOW!
+#. is branching expensive - on a PDP, it's actually really cheap
+#. this is just to play around and check what code gcc generates
+#. split instruction and data memory?
+#: config/pdp11/pdp11.h:90
+msgid "Target has split I&D"
+msgstr "L'objectiu té un I&D dividit"
+
+#: config/pdp11/pdp11.h:91
+msgid "Target does not have split I&D"
+msgstr "L'objectiu no té un I&D dividit"
+
+#. UNIX assembler syntax?
+#: config/pdp11/pdp11.h:93
+msgid "Use UNIX assembler syntax"
+msgstr "Usar sintaxi de l'ensemblador UNIX"
+
+#: config/pdp11/pdp11.h:94
+msgid "Use DEC assembler syntax"
+msgstr "Usar sintaxi de l'ensemblador DEC"
+
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
+#, c-format
+msgid "invalid %%S value"
+msgstr "valor %%S invàlid"
+
+#: config/romp/romp.c:726 config/romp/romp.c:733
+#, c-format
+msgid "invalid %%b value"
+msgstr "valor %%b invàlid"
+
+#: config/romp/romp.c:773 config/romp/romp.c:784
+#, c-format
+msgid "invalid %%z value"
+msgstr "valor %%z invàlid"
+
+#: config/romp/romp.c:792 config/romp/romp.c:800
+#, c-format
+msgid "invalid %%Z value"
+msgstr "valor %%Z invàlid"
+
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
+#, c-format
+msgid "invalid %%k value"
+msgstr "valor %%k invàlid"
+
+#: config/romp/romp.c:908 config/romp/romp.c:951
+#, c-format
+msgid "invalid %%j value"
+msgstr "valor %%j invàlid"
+
+#. Perform any needed actions needed for a function that is receiving a
+#. variable number of arguments.
+#.
+#. CUM is as above.
+#.
+#. MODE and TYPE are the mode and type of the current parameter.
+#.
+#. PRETEND_SIZE is a variable that should be set to the amount of stack
+#. that must be pushed by the prolog to pretend that our caller pushed
+#. it.
+#.
+#. Normally, this macro will push all remaining incoming registers on the
+#. stack and set PRETEND_SIZE to the length of the registers pushed.
+#: config/romp/romp.h:648
+msgid "can't have varargs with -mfp-arg-in-fp-regs"
+msgstr "no es pot tenir varargs amb -mfp-arg-in-fp-regs"
+
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr "ignorant el #pragma longcall malformats"
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr "\"(\" faltant"
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr "falta valor"
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr "\")\" faltant"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr "escombraries al final de #pragma longcall"
+
+#: config/rs6000/rs6000.c:592
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-mmultiple no té suport en sistemes little endian"
+
+#: config/rs6000/rs6000.c:599
+msgid "-mstring is not supported on little endian systems"
+msgstr "-mstringe no té suport en sistemes little endian"
+
+#: config/rs6000/rs6000.c:623
+#, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr "interruptor -mdebug-%s desconegut"
+
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:646
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "interruptor -mlong-double-%s desconegut"
+
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "opció -misel= especificada desconeguda: \"%s\""
+
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "opció -mvrsave= especificada desconeguda: \"%s\""
+
+#: config/rs6000/rs6000.c:772
+#, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "ABI especificada desconeguda: \"%s\""
+
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "l'argument 1 deu ser una literal amb signe de 5-bit"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "l'argument 2 deu ser una literal sense signe de 5-bit"
+
+#: config/rs6000/rs6000.c:4356
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "l'argument 1 de _builtin_altivec_predicate deu ser una constant"
+
+#: config/rs6000/rs6000.c:4410
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "l'argument 1 de _builtin_altivec_predicate es fora de rang"
+
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "l'argument 3 deu ser una literal sense signe de 4-bit"
+
+#: config/rs6000/rs6000.c:4666
+#, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "l'argument per a \"%s\" deu ser una literal sense signe de 2-bit"
+
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "l'argument per a dss deu ser una literal sense signe de 2-bit"
+
+#: config/rs6000/rs6000.c:5013
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "l'argument 1 de __builtin__spe_predicate deu ser una constant"
+
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "l'argument 1 de __builtin_spe_predicate està fora de rang"
+
+#: config/rs6000/rs6000.c:7511
+#, c-format
+msgid "invalid %%f value"
+msgstr "valor %%f invàlid"
+
+#: config/rs6000/rs6000.c:7520
+#, c-format
+msgid "invalid %%F value"
+msgstr "valor %%F invàlid"
+
+#: config/rs6000/rs6000.c:7529
+#, c-format
+msgid "invalid %%G value"
+msgstr "valor %%G invàlid"
+
+#: config/rs6000/rs6000.c:7564
+#, c-format
+msgid "invalid %%j code"
+msgstr "valor %%j invàlid"
+
+#: config/rs6000/rs6000.c:7574
+#, c-format
+msgid "invalid %%J code"
+msgstr "valor %%J invàlid"
+
+#: config/rs6000/rs6000.c:7604
+#, c-format
+msgid "invalid %%K value"
+msgstr "valor %%K invàlid"
+
+#: config/rs6000/rs6000.c:7671
+#, c-format
+msgid "invalid %%O value"
+msgstr "valor %%O invàlid"
+
+#: config/rs6000/rs6000.c:7793
+#, c-format
+msgid "invalid %%T value"
+msgstr "valor %%T invàlid"
+
+#: config/rs6000/rs6000.c:7803
+#, c-format
+msgid "invalid %%u value"
+msgstr "valor %%u invàlid"
+
+#: config/rs6000/rs6000.c:7812
+#, c-format
+msgid "invalid %%v value"
+msgstr "valor %%v invàlid"
+
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
+msgstr "Passar sempre els arguments de coma flotant en memòria"
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
+msgstr "No passar sempre els arguments de coma flotant en memòria"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr "Suport per al pas de missatges amb l'Ambient Paral·lel"
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr "Compilar per a punters de 64-bit"
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr "Compilar per a punters de 32-bit"
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-maix64 i l'arquitectura POWER són incompatibles"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-maix64 requereix que l'arquitectura PowerPC64 romangui activada"
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "es requereix -maix64: càlcul de 64 bits amb adreçament de 32 bits no té suport encara"
+
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/rs6000/rs6000.h:240
+msgid "Use POWER instruction set"
+msgstr "Usar el conjunt d'instruccions POWER"
+
+#: config/rs6000/rs6000.h:243
+msgid "Use POWER2 instruction set"
+msgstr "Usar el conjunt d'instruccions POWER2"
+
+#: config/rs6000/rs6000.h:245
+msgid "Do not use POWER2 instruction set"
+msgstr "No usar el conjunt d'instruccions POWER2"
+
+#: config/rs6000/rs6000.h:248
+msgid "Do not use POWER instruction set"
+msgstr "No usar el conjunt d'instruccions POWER"
+
+#: config/rs6000/rs6000.h:250
+msgid "Use PowerPC instruction set"
+msgstr "Usar el conjunt d'instruccions PowerPC"
+
+#: config/rs6000/rs6000.h:253
+msgid "Do not use PowerPC instruction set"
+msgstr "No usar el conjunt d'instruccions PowerPC"
+
+#: config/rs6000/rs6000.h:255
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr "Usar el grup opcional d'instruccions PowerPC de Propòsit General"
+
+#: config/rs6000/rs6000.h:257
+msgid "Don't use PowerPC General Purpose group optional instructions"
+msgstr "No usar el grup opcional d'instruccions PowerPC de Propòsit General"
+
+#: config/rs6000/rs6000.h:259
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr "Usar el grup opcional d'instruccions PowerPC de Gràfiques"
+
+#: config/rs6000/rs6000.h:261
+msgid "Don't use PowerPC Graphics group optional instructions"
+msgstr "No usar el grup opcional d'instruccions PowerPC de Gràfiques"
+
+#: config/rs6000/rs6000.h:263
+msgid "Use PowerPC-64 instruction set"
+msgstr "Usar el conjunt d'instruccions PowerPC-64"
+
+#: config/rs6000/rs6000.h:265
+msgid "Don't use PowerPC-64 instruction set"
+msgstr "No usar el conjunt d'instruccions PowerPC-64"
+
+#: config/rs6000/rs6000.h:267
+msgid "Use AltiVec instructions"
+msgstr "Usar instruccions AltiVec"
+
+#: config/rs6000/rs6000.h:269
+msgid "Don't use AltiVec instructions"
+msgstr "No usar instruccions AltiVec"
+
+#: config/rs6000/rs6000.h:271
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr "Usar els mnemònics nous per a l'arquitectura PowerPC"
+
+#: config/rs6000/rs6000.h:273
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr "Usar els mnemònics vells per a l'arquitectura PowerPC"
+
+#: config/rs6000/rs6000.h:276
+msgid "Put everything in the regular TOC"
+msgstr "Col·locar tot en el TOC normal"
+
+#: config/rs6000/rs6000.h:278
+msgid "Place floating point constants in TOC"
+msgstr "Col·locar les constants de coma flotant en TOC"
+
+#: config/rs6000/rs6000.h:280
+msgid "Don't place floating point constants in TOC"
+msgstr "No col·locar les constants de coma flotant en TOC"
+
+#: config/rs6000/rs6000.h:282
+msgid "Place symbol+offset constants in TOC"
+msgstr "Col·locar les constants símbol+desplaçament en TOC"
+
+#: config/rs6000/rs6000.h:284
+msgid "Don't place symbol+offset constants in TOC"
+msgstr "No col·locar les constants símbol+desplaçament en TOC"
+
+#: config/rs6000/rs6000.h:290
+msgid "Place variable addresses in the regular TOC"
+msgstr "Col·locar les adreces variables en el TOC normal"
+
+#: config/rs6000/rs6000.h:296
+msgid "Generate load/store multiple instructions"
+msgstr "Generar múltiples instruccions load/store"
+
+#: config/rs6000/rs6000.h:298
+msgid "Do not generate load/store multiple instructions"
+msgstr "No generar múltiples instruccions load/store"
+
+#: config/rs6000/rs6000.h:302
+msgid "Generate string instructions for block moves"
+msgstr "Generar instruccions de cadena per a moviment de blocs"
+
+#: config/rs6000/rs6000.h:304
+msgid "Do not generate string instructions for block moves"
+msgstr "No generar instruccions de cadena per a moviment de blocs"
+
+#: config/rs6000/rs6000.h:308
+msgid "Generate load/store with update instructions"
+msgstr "Generar load/store amb instruccions d'actualització"
+
+#: config/rs6000/rs6000.h:310
+msgid "Do not generate load/store with update instructions"
+msgstr "No generar load/store amb instruccions d'actualització"
+
+#: config/rs6000/rs6000.h:318
+msgid "Don't schedule the start and end of the procedure"
+msgstr "No calendaritzar l'inici i el final del procediment"
+
+#: config/rs6000/rs6000.h:324
+msgid "Return all structures in memory (AIX default)"
+msgstr "Regressar totes les estructures en memòria (per omissió en AIX)"
+
+#: config/rs6000/rs6000.h:326
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "Regressar les petites estructures en registres (per omissió en SVR4)"
+
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
+msgid "Use features of and schedule code for given CPU"
+msgstr "Usar característiques i calendaritzar el codi per al CPU donat"
+
+#: config/rs6000/rs6000.h:394
+msgid "Enable debug output"
+msgstr "Activar la sortida de depuració"
+
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
+msgid "Specify ABI to use"
+msgstr "Especificar el ABI a utilitzar"
+
+#: config/rs6000/rs6000.h:399
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "Especificar la grandària de long double (64 o 128 bits)"
+
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr "Evitar tots els límits de rang en les instruccions de cridades"
+
+#. Definitions for __builtin_return_address and __builtin_frame_address.
+#. __builtin_return_address (0) should give link register (65), enable
+#. this.
+#. This should be uncommented, so that the link register is used, but
+#. currently this would result in unmatched insns and spilling fixed
+#. registers so we'll leave it for another day. When these problems are
+#. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
+#. (mrs)
+#. #define RETURN_ADDR_IN_PREVIOUS_FRAME
+#. Number of bytes into the frame return addresses can be found. See
+#. rs6000_stack_info in rs6000.c for more information on how the different
+#. abi's store the return address.
+#: config/rs6000/rs6000.h:1884
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr "No es dona suport a RETURN_ADDRESS_OFFSET"
+
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
+msgstr "Seleccionar la convenció de cridada ABI"
+
+#: config/rs6000/sysv4.h:88
+msgid "Select method for sdata handling"
+msgstr "Seleccionar el mètode per al maneig de sdata"
+
+#: config/rs6000/sysv4.h:103
+msgid "Align to the base type of the bit-field"
+msgstr "Alinear al tipus base del camp de bit"
+
+#: config/rs6000/sysv4.h:105
+msgid "Don't align to the base type of the bit-field"
+msgstr "No alinear al tipus base del camp de bit"
+
+#: config/rs6000/sysv4.h:107
+msgid "Don't assume that unaligned accesses are handled by the system"
+msgstr "No assumir que els accessos sense alinear són manejats pel sistema"
+
+#: config/rs6000/sysv4.h:109
+msgid "Assume that unaligned accesses are handled by the system"
+msgstr "Assumir que els accessos sense alinear són manejats pel sistema"
+
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+msgid "Produce code relocatable at runtime"
+msgstr "Produir codi re-ubicable en el moment d'execució"
+
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+msgid "Don't produce code relocatable at runtime"
+msgstr "No produir codi re-ubicable en el moment d'execució"
+
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+msgid "Produce little endian code"
+msgstr "Produir codi little endian"
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+msgid "Produce big endian code"
+msgstr "Produir codi big endian"
+
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
+msgid "no description yet"
+msgstr "sense descripció encara"
+
+#: config/rs6000/sysv4.h:132
+msgid "Use EABI"
+msgstr "Usar EABI"
+
+#: config/rs6000/sysv4.h:133
+msgid "Don't use EABI"
+msgstr "No usar EABI"
+
+#: config/rs6000/sysv4.h:136
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr "No permetre que els camps de bits creuin els límits de word"
+
+#: config/rs6000/sysv4.h:138
+msgid "Use alternate register names"
+msgstr "Usar noms de registre alternats"
+
+#: config/rs6000/sysv4.h:140
+msgid "Don't use alternate register names"
+msgstr "No usar noms de registre alternats"
+
+#: config/rs6000/sysv4.h:144
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "Enllaçar amb libsim.a, libc.a i sim-crt0.o"
+
+#: config/rs6000/sysv4.h:146
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "Enllaçar amb libads.a, libc.a i crt0.o"
+
+#: config/rs6000/sysv4.h:148
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "Enllaçar amb libyk.a, libc.a i crt0.o"
+
+#: config/rs6000/sysv4.h:150
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "Enllaçar amb libmvme.a, libc.a i crt0.o"
+
+#: config/rs6000/sysv4.h:152
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "Activar el bit PPC_EMB en els interruptors de l'encapçalat ELF"
+
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
+#. Sometimes certain combinations of command options do not make sense
+#. on a particular target machine. You can define a macro
+#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
+#. defined, is executed once just after all the command options have
+#. been parsed.
+#.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control.
+#: config/rs6000/sysv4.h:214
+#, c-format
+msgid "bad value for -mcall-%s"
+msgstr "valor erroni per a -mcall-%s"
+
+#: config/rs6000/sysv4.h:230
+#, c-format
+msgid "bad value for -msdata=%s"
+msgstr "valor erroni per a -msdata=%s"
+
+#: config/rs6000/sysv4.h:247
+#, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-mrelocatable and i -msdata=%s són incompatibles"
+
+#: config/rs6000/sysv4.h:255
+#, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-f%s i -msdata=%s són incompatibles"
+
+#: config/rs6000/sysv4.h:264
+#, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-msdata=%s i -mcall-%s són incompatibles"
+
+#: config/rs6000/sysv4.h:273
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-mrelocatable i -mno-minimal-toc són incompatibles"
+
+#: config/rs6000/sysv4.h:279
+#, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-mrelocatable i -mcall-%s són incompatibles"
+
+#: config/rs6000/sysv4.h:286
+#, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-fPIC i -mcall-%s són incompatibles"
+
+#: config/rs6000/sysv4.h:293
+msgid "-mcall-aixdesc must be big endian"
+msgstr "-mcall-aixdesc deu ser big endian"
+
+#: config/s390/s390.c:3063
+msgid "invalid UNSPEC as operand (1)"
+msgstr "UNSPEC invàlid com operant (1)"
+
+#: config/s390/s390.c:3123
+msgid "invalid UNSPEC as operand (2)"
+msgstr "UNSPEC invàlid com operant (2)"
+
+#: config/s390/s390.c:3129
+msgid "UNKNOWN in s390_output_symbolic_const !?"
+msgstr "UNKNOWN en s390_output_symbolic_const !?"
+
+#: config/s390/s390.c:3147
+msgid "Cannot decompose address."
+msgstr "No es pot descompondre l'adreça."
+
+#: config/s390/s390.c:3308
+msgid "UNKNOWN in print_operand !?"
+msgstr "UNKNOWN en print_operand !?"
+
+#: config/s390/s390.c:4961
+msgid "Total size of local variables exceeds architecture limit."
+msgstr "La grandària total de les variables locals excedeix el límit de l'arquitectura."
+
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr "Establir la cadena cap a endarrere"
+
+#: config/s390/s390.h:71
+msgid "Don't set backchain (faster, but debug harder"
+msgstr "No establir la cadena cap a endarrere (més ràpid, però més difícil de depurar"
+
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
+msgstr "Usar bras per a executable < 64k"
+
+#: config/s390/s390.h:73
+msgid "Don't use bras"
+msgstr "No usar bras"
+
+#: config/s390/s390.h:74
+msgid "Additional debug prints"
+msgstr "Impressions addicionals de depuració"
+
+#: config/s390/s390.h:75
+msgid "Don't print additional debug prints"
+msgstr "No imprimir impressions addicionals de depuració"
+
+#: config/s390/s390.h:76
+msgid "64 bit mode"
+msgstr "moda 64 bits"
+
+#: config/s390/s390.h:77
+msgid "31 bit mode"
+msgstr "moda 31 bits"
+
+#: config/s390/s390.h:78
+msgid "mvcle use"
+msgstr "ùs de mvcle"
+
+#: config/s390/s390.h:79
+msgid "mvc&ex"
+msgstr "mvc&ex"
+
+#: config/sh/sh.c:5137
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "no es dóna suport a _builtin_saveregs en aquest subobjectiu"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr "l'atribut \"%s\" aplica solament a funcions d'interrupció"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr "l'argument de l'atribut \"%s\" no és una cadena constant"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr "l'argument de l'atribut \"%s\" no és una cadena entera"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+msgid "Profiling is not supported on this target."
+msgstr "No es dóna suport a anàlisi de perfil en aquest objectiu."
+
+#: config/sparc/sparc.c:329
+#, c-format
+msgid "%s is not supported by this configuration"
+msgstr "%s no té suport en aquesta configuració"
+
+#: config/sparc/sparc.c:336
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr "no es permet -mlong-double-64 amb -m64"
+
+#: config/sparc/sparc.c:361
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr "-mcmodel= no té suport en sistemes de 32 bit"
+
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, c-format
+msgid "invalid %%Y operand"
+msgstr "operant %%Y invàlid"
+
+#: config/sparc/sparc.c:6417
+#, c-format
+msgid "invalid %%A operand"
+msgstr "operant %%A invàlid"
+
+#: config/sparc/sparc.c:6427
+#, c-format
+msgid "invalid %%B operand"
+msgstr "operant %%B invàlid"
+
+#: config/sparc/sparc.c:6466
+#, c-format
+msgid "invalid %%c operand"
+msgstr "operant %%c invàlid"
+
+#: config/sparc/sparc.c:6467
+#, c-format
+msgid "invalid %%C operand"
+msgstr "operant %%C invàlid"
+
+#: config/sparc/sparc.c:6488
+#, c-format
+msgid "invalid %%d operand"
+msgstr "operant %%d invàlid"
+
+#: config/sparc/sparc.c:6489
+#, c-format
+msgid "invalid %%D operand"
+msgstr "operant %%D invàlid"
+
+#: config/sparc/sparc.c:6505
+#, c-format
+msgid "invalid %%f operand"
+msgstr "operant %%f invàlid"
+
+#: config/sparc/sparc.c:6519
+#, c-format
+msgid "invalid %%s operand"
+msgstr "operant %%s invàlid"
+
+#: config/sparc/sparc.c:6573
+msgid "long long constant not a valid immediate operand"
+msgstr "la constant long long no és un operant immediat vàlid"
+
+#: config/sparc/sparc.c:6576
+msgid "floating point constant not a valid immediate operand"
+msgstr "la constant de coma flotant no és un operant immediat vàlid"
+
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr "Usar long doubles de 128 bits"
+
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr "Generar codi per a big endian"
+
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr "Generar codi per a little endian"
+
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr "Usar l'ordre d'octet little-endian per a les dades"
+
+#: config/sparc/sparc.h:532
+msgid "Assume possible double misalignment"
+msgstr "Assumir desalineació de double possible"
+
+#: config/sparc/sparc.h:534
+msgid "Assume all doubles are aligned"
+msgstr "Assumir que tots els doubles estan alineats"
+
+#: config/sparc/sparc.h:536
+msgid "Pass -assert pure-text to linker"
+msgstr "Passar el text pur de -assert al enllaçador"
+
+#: config/sparc/sparc.h:538
+msgid "Do not pass -assert pure-text to linker"
+msgstr "No passar el text pur de -assert al enllaçador"
+
+#: config/sparc/sparc.h:540
+msgid "Use flat register window model"
+msgstr "Usar el model pla de finestra de registre"
+
+#: config/sparc/sparc.h:542
+msgid "Do not use flat register window model"
+msgstr "No usar el model pla de finestra de registre"
+
+#: config/sparc/sparc.h:544
+msgid "Use ABI reserved registers"
+msgstr "Usar els registres ABI reservats"
+
+#: config/sparc/sparc.h:546
+msgid "Do not use ABI reserved registers"
+msgstr "No usar els registres ABI reservats"
+
+#: config/sparc/sparc.h:548
+msgid "Use hardware quad fp instructions"
+msgstr "Usar instruccions de fp quad de maquinari"
+
+#: config/sparc/sparc.h:550
+msgid "Do not use hardware quad fp instructions"
+msgstr "No usar instruccions de fp quad de maquinari"
+
+#: config/sparc/sparc.h:552
+msgid "Compile for v8plus ABI"
+msgstr "Compilar per a el ABI de v8plus"
+
+#: config/sparc/sparc.h:554
+msgid "Do not compile for v8plus ABI"
+msgstr "No compilar per a el ABI de v8plus"
+
+#: config/sparc/sparc.h:556
+msgid "Utilize Visual Instruction Set"
+msgstr "Utilitzar el Conjunt d'Instruccions Visuals"
+
+#: config/sparc/sparc.h:558
+msgid "Do not utilize Visual Instruction Set"
+msgstr "No utilitzar el Conjunt d'Instruccions Visuals"
+
+#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
+#: config/sparc/sparc.h:561
+msgid "Optimize for Cypress processors"
+msgstr "Optimitzar per als processadors Cypress"
+
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
+msgstr "Optimitzar per als processadors SPARCLite"
+
+#: config/sparc/sparc.h:565
+msgid "Optimize for F930 processors"
+msgstr "Optimitzar per als processadors F930"
+
+#: config/sparc/sparc.h:567
+msgid "Optimize for F934 processors"
+msgstr "Optimitzar per als processadors F934"
+
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr "Usar el ISA V8 de SPARC"
+
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
+msgstr "Optimitzar per als processadors SuperSPARC"
+
+#. End of deprecated options.
+#: config/sparc/sparc.h:574
+msgid "Pointers are 64-bit"
+msgstr "El punters són de 64 bits"
+
+#: config/sparc/sparc.h:576
+msgid "Pointers are 32-bit"
+msgstr "El punters són de 32 bits"
+
+#: config/sparc/sparc.h:578
+msgid "Use 32-bit ABI"
+msgstr "Usar el ABI 32 bits"
+
+#: config/sparc/sparc.h:580
+msgid "Use 64-bit ABI"
+msgstr "Usar el ABI 64 bits"
+
+#: config/sparc/sparc.h:582
+msgid "Use stack bias"
+msgstr "Usar tendència de la pila"
+
+#: config/sparc/sparc.h:584
+msgid "Do not use stack bias"
+msgstr "No usar tendència de la pila"
+
+#: config/sparc/sparc.h:586
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr "Usar structs en alineació més forta per a còpies double-word"
+
+#: config/sparc/sparc.h:588
+msgid "Do not use structs on stronger alignment for double-word copies"
+msgstr "No usar structs en alineació més forta per a còpies double-word"
+
+#: config/sparc/sparc.h:590
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr "Optimitzar les instruccions de la cridada de l'extrem en el ensemblador i el enllaçador"
+
+#: config/sparc/sparc.h:592
+msgid "Do not optimize tail call instructions in assembler or linker"
+msgstr "No optimitzar les instruccions de la cridada de l'extrem en el ensemblador i el enllaçador"
+
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr "Usar el model de codi del SPARC donat"
+
+#: config/stormy16/stormy16.c:1192
+msgid "cannot use va_start in interrupt function"
+msgstr "no es pot usar va_start en una funció d'interrupció"
+
+#: config/stormy16/stormy16.c:1552
+msgid "`B' operand is not constant"
+msgstr "l'operant \"B\" no és una constant"
+
+#: config/stormy16/stormy16.c:1558
+msgid "`B' operand has multiple bits set"
+msgstr "l'operant \"B\" té establerts múltiples bits"
+
+#: config/stormy16/stormy16.c:1585
+msgid "`o' operand is not constant"
+msgstr "l'operant \"o\" no és una constant"
+
+#: config/stormy16/stormy16.c:1600
+msgid "xstormy16_print_operand: unknown code"
+msgstr "xstormy16_print_operand: codi desconegut"
+
+#: config/stormy16/stormy16.c:1650
+#, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr "la declaració switch de grandària de %lu entrades és massa gran"
+
+#: config/v850/v850-c.c:67
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr "es va trobar un #pragma GHS endXXXX sense un startXXX previ"
+
+#: config/v850/v850-c.c:69
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr "el #pragma GHS endXXXX no coincideix amb el startXXX previ"
+
+#: config/v850/v850-c.c:94
+msgid "cannot set interrupt attribute: no current function"
+msgstr "no es pot establir l'atribut d'interrupció: no hi ha funció actual"
+
+#: config/v850/v850-c.c:102
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr "no es pot establir l'atribut d'interrupció: no hi ha tal identificador"
+
+#: config/v850/v850-c.c:148
+msgid "junk at end of #pragma ghs section"
+msgstr "escombraries al final de la secció #pragma ghs"
+
+#: config/v850/v850-c.c:165
+#, c-format
+msgid "unrecognized section name \"%s\""
+msgstr "no es reconeix el nom de secció \"%s\""
+
+#: config/v850/v850-c.c:180
+msgid "malformed #pragma ghs section"
+msgstr "secció #pragma ghs malformada"
+
+#: config/v850/v850-c.c:200
+msgid "junk at end of #pragma ghs interrupt"
+msgstr "escombraries al final del #pragma ghs interrupt"
+
+#: config/v850/v850-c.c:212
+msgid "junk at end of #pragma ghs starttda"
+msgstr "escombraries al final del #pragma ghs starttda"
+
+#: config/v850/v850-c.c:224
+msgid "junk at end of #pragma ghs startsda"
+msgstr "escombraries al final del #pragma ghs startsda"
+
+#: config/v850/v850-c.c:236
+msgid "junk at end of #pragma ghs startzda"
+msgstr "escombraries al final del #pragma ghs startzda"
+
+#: config/v850/v850-c.c:248
+msgid "junk at end of #pragma ghs endtda"
+msgstr "escombraries al final del #pragma ghs endtda"
+
+#: config/v850/v850-c.c:260
+msgid "junk at end of #pragma ghs endsda"
+msgstr "escombraries al final del #pragma ghs endsda"
+
+#: config/v850/v850-c.c:272
+msgid "junk at end of #pragma ghs endzda"
+msgstr "escombraries al final del #pragma ghs endzda"
+
+#: config/v850/v850.c:129
+#, c-format
+msgid "%s=%s is not numeric"
+msgstr "%s=%s no és numèric"
+
+#: config/v850/v850.c:136
+#, c-format
+msgid "%s=%s is too large"
+msgstr "%s=%s é massa gran"
+
+#: config/v850/v850.c:302
+msgid "const_double_split got a bad insn:"
+msgstr "const_double_split va rebre un insn erroni:"
+
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr "output_move_single:"
+
+#: config/v850/v850.c:2217
+msgid "a data area attribute cannot be specified for local variables"
+msgstr "no es pot especificar un atribut d'àrea de dades per a variables locals"
+
+#: config/v850/v850.c:2228
+#, c-format
+msgid "data area of '%s' conflicts with previous declaration"
+msgstr "l'àrea de dades de \"%s\" en conflicte amb una declaració prèvia"
+
+#: config/v850/v850.c:2447
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr "construcció JR ambigua: %d\n"
+
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
+#, c-format
+msgid "bad amount of stack space removal: %d"
+msgstr "quantitat errònia d'eliminació d'espai de pila: %d"
+
+#: config/v850/v850.c:2646
+#, c-format
+msgid "bogus JARL construction: %d\n"
+msgstr "construcció JARL ambigua: %d\n"
+
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "construcció DISPOSE ambigua: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "construcció PREPEARE ambigua: %d\n"
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "Massa espai de pila per a preparar: %d"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
+msgstr "Dona suport al ABI Green Hills"
+
+#: config/v850/v850.h:161
+msgid "Prohibit PC relative function calls"
+msgstr "Prohibir la cridada a funcions relatives al PC"
+
+#: config/v850/v850.h:164
+msgid "Reuse r30 on a per function basis"
+msgstr "Reusar r30 basat per funció"
+
+#: config/v850/v850.h:167
+msgid "Use stubs for function prologues"
+msgstr "Usar caps per als pròlegs de funció"
+
+#: config/v850/v850.h:170
+msgid "Same as: -mep -mprolog-function"
+msgstr "Igual que: -mep -mprolog-function"
+
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
+msgstr "Habilitar la depuració per la fi"
+
+#: config/v850/v850.h:173
+msgid "Compile for the v850 processor"
+msgstr "Compilar per al processador v850"
+
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr "Compilar per al processador v850e"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr "Activar l'ús de les instruccions short load"
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr "No usar la instrucció callt"
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr "No usar els registres r2 i r5"
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr "Reforçar l'alineació estricta"
+
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
+msgstr "Usar entrades de 4 octet en les matrius de switch"
+
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
+msgstr "Establir la grandària màxima de dades elegibles per a l'àrea TDA"
+
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
+msgstr "Establir la grandària màxima de dades elegibles per a l'àrea SDA"
+
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr "Establir la grandària màxima de dades elegibles per a l'àrea ZDA"
+
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
+msgstr "prova errònia"
+
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
+msgstr "es requereixen registres booleans per a l'opció de coma flotant"
+
+#: config/xtensa/xtensa.c:1991
+msgid "invalid mask"
+msgstr "màscara invàlida"
+
+#: config/xtensa/xtensa.c:2038
+msgid "invalid address"
+msgstr "adreça invàlida"
+
+#: config/xtensa/xtensa.c:2063
+msgid "no register in address"
+msgstr "no hi ha registre en l'adreça"
+
+#: config/xtensa/xtensa.c:2071
+msgid "address offset not a constant"
+msgstr "el desplaçament d'adreça no és una constant"
+
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "només les variables sense inicialitzar es poden col·locar en una secció .bss"
+
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
+msgstr "Usar l'opció de densitat del codi Xtensa"
+
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
+msgstr "No usar l'opció de densitat del codi Xtensa"
+
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
+msgstr "Usar l'opció MAC16 de Xtensa"
+
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
+msgstr "No usar l'opció MAC16 de Xtensa"
+
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
+msgstr "Usar l'opció MUL16 de Xtensa"
+
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
+msgstr "No usar l'opció MUL16 de Xtensa"
+
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
+msgstr "Usar l'opció MUL32 de Xtensa"
+
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
+msgstr "No usar l'opció MUL32 de Xtensa"
+
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
+msgstr "Usar l'opció NSA de Xtensa"
+
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
+msgstr "No usar l'opció NSA de Xtensa"
+
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
+msgstr "Usar l'opció MIN/MAX de Xtensa"
+
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr "No usar l'opció MIN/MAX de Xtensa"
+
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
+msgstr "Usar l'opció SEXT de Xtensa"
+
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
+msgstr "No usar l'opció SEXT de Xtensa"
+
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
+msgstr "Usar l'opció de registre booleà de Xtensa"
+
+#: config/xtensa/xtensa.h:148
+msgid "Do not use the Xtensa boolean register option"
+msgstr "No usar l'opció de registre booleà de Xtensa"
+
+#: config/xtensa/xtensa.h:150
+msgid "Use the Xtensa floating-point unit"
+msgstr "Usar la unitat de coma flotant de Xtensa"
+
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
+msgstr "No usar la unitat de coma flotant de Xtensa"
+
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Desactivar les instruccions FP multiply/add i multiply/substract de curt circuit"
+
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Activar les instruccions FP multiply/add i multiply/substract de curt circuit"
+
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
+msgstr "Serialitzar les referències a memòria volàtil amb instruccions MEMW"
+
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr "No serialitzar les referències a memòria volàtil amb instruccions MEMW"
+
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
+msgstr "Entremesclar els conjunts de literals amb codi en la secció de text"
+
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
+msgstr "Posar els conjunts de literals en una secció literal separada"
+
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr "Alinear automàticament els objectius de les ramificacions per a reduir les faltes de ramificació"
+
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
+msgstr "No alinear automàticament els objectius de les ramificacions"
+
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr "Usar instruccions CALLXn indirectes per a programes grans"
+
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
+msgstr "Usar instruccions CALLn directes per a cridades ràpides"
+
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
+msgstr "\"-gnat\" mal lletrejat com \"-gant\""
+
+#: cp/call.c:261 cp/init.c:1594
+msgid "qualified type `%T' does not match destructor name `~%T'"
+msgstr "el tipus qualificat \"%T\" no coincideix amb el nom del destructor \"~%T\""
+
+#: cp/call.c:270
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+msgstr "el tipus de \"%E\" no coincideix amb el tipus del destructor \"%T\" (el tipus era \"%T\")"
+
+#: cp/call.c:279
+msgid "`%D' is a namespace"
+msgstr "\"%D\" és un nom d'espai"
+
+#: cp/call.c:287
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+msgstr "l'objecte base \"%E\" de la cridada de mètode de l'ambient és del tipus no agregat \"%T\""
+
+#: cp/call.c:369
+msgid "unable to call pointer to member function here"
+msgstr "no es pot cridar un punter a una funció membre aquí"
+
+#: cp/call.c:518
+msgid "destructors take no parameters"
+msgstr "els destructors no prenen paràmetres"
+
+#: cp/call.c:522
+msgid "destructor name `~%T' does not match type `%T' of expression"
+msgstr "el nom del destructor \"%T\" no coincideix amb el tipus \"%T\" de l'expressió"
+
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "sol·licitud pel membre \"%D\" en \"%E\" el qual és del tipus no agregat \"%T\""
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr "a petició per al membre \"%D\" és ambigua"
+
+#: cp/call.c:2537
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s %D(%T, %T, %T) <intern>"
+
+#: cp/call.c:2542
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s %D(%T, %T) <intern>"
+
+#: cp/call.c:2546
+msgid "%s %D(%T) <built-in>"
+msgstr "%s %D(%T) <intern>"
+
+#: cp/call.c:2550
+msgid "%s %T <conversion>"
+msgstr "%s %T <conversió>"
+
+#: cp/call.c:2552
+msgid "%s %+#D%s"
+msgstr "%s %+#D%s"
+
+#: cp/call.c:2726
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr "la conversió de \"%T\" a \"%T\" és ambigua"
+
+#: cp/call.c:2803
+msgid "`%T' is not a class type"
+msgstr "\"%T\" no és un tipus de classe"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "el tipus incomplet \"%T\" no es pot utilitzar per a nomenar un àmbit"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr "\"%D\" no té un membre cridat \"%E\""
+
+#: cp/call.c:2933
+msgid "no matching function for call to `%D(%A)'"
+msgstr "no hi ha una funció coincident per a la cridada a \"%D(%A)\""
+
+#: cp/call.c:2944 cp/call.c:5087
+msgid "call of overloaded `%D(%A)' is ambiguous"
+msgstr "la cridada del \"%D(%A)\" sobrecarregat és ambigua"
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
+#, c-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr "la funció punter-a-membre %E no es pot cridar dintre d'un objecte; consideri utilitzar .* o ->*"
+
+#: cp/call.c:3036
+msgid "no match for call to `(%T) (%A)'"
+msgstr "no hi ha coincidència per a la cridada a \"(%T) (%A)\""
+
+#: cp/call.c:3046
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr "la cridada de \"(%T) (%A)\" és ambigua"
+
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
+
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "%s per a \"operator%s\" en \"%E%s\""
+
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr ""
+
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
+
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s per a \"operador%s\" en \"%s%E\""
+
+#: cp/call.c:3191
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "ISO C++ prohibeix l'omissió del terme mig d'una expressió ?:"
+
+#: cp/call.c:3250
+#, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
+msgstr "\"%E\" té tipus \"void\" i no és una expressió throw"
+
+#: cp/call.c:3283 cp/call.c:3475
+msgid "operands to ?: have different types"
+msgstr "els operants de ?: tenen tipus diferents"
+
+#: cp/call.c:3428
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr "no coincideix el enumeral en l'expressió condicional: \"%T\" vs \"%T\""
+
+#: cp/call.c:3435
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "tipus enumeral i no enumeral en l'expressió condicional"
+
+#: cp/call.c:3516
+msgid "`%D' must be declared before use"
+msgstr "es deu declarar \"%D\" abans del seu ús"
+
+#: cp/call.c:3706
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+msgstr "no es va declarar \"%D(int)\" per al \"%s\" postfix, intentant en el seu lloc l'operador prefix"
+
+#: cp/call.c:3753
+msgid "using synthesized `%#D' for copy assignment"
+msgstr "usant \"%#D\" sintetitzat per a assignació de còpia"
+
+#: cp/call.c:3755
+msgid " where cfront would use `%#D'"
+msgstr " on cfront podria usar \"%#D\""
+
+#: cp/call.c:3782
+msgid "comparison between `%#T' and `%#T'"
+msgstr "comparança entre \"%#T\" i \"%#T\""
+
+#: cp/call.c:4021
+msgid "no suitable `operator delete' for `%T'"
+msgstr "no hi ha un operador \"operator delete\" adequat per a \"%T\""
+
+#: cp/call.c:4040
+msgid "`%+#D' is private"
+msgstr "\"%+#D\" és privat"
+
+#: cp/call.c:4042
+msgid "`%+#D' is protected"
+msgstr "\"%+#D\" està protegit"
+
+#: cp/call.c:4044
+msgid "`%+#D' is inaccessible"
+msgstr "\"%+#D\" és inaccessible"
+
+#: cp/call.c:4045
+msgid "within this context"
+msgstr "des d'aquest context"
+
+#: cp/call.c:4088
+msgid "invalid conversion from `%T' to `%T'"
+msgstr "conversió invàlida de \"%T\" a \"%T\""
+
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+msgid " initializing argument %P of `%D'"
+msgstr " inicialitzant l'argument %P de \"%D\""
+
+#: cp/call.c:4152 cp/call.c:4156
+msgid " initializing argument %P of `%D' from result of `%D'"
+msgstr " inicialitzant l'argument %P de \"%D\" a partir del resultat de \"%D\""
+
+#: cp/call.c:4162 cp/call.c:4165
+msgid " initializing temporary from result of `%D'"
+msgstr " inicialitzant el temporal a partir del resultat de \"%D\""
+
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr "no es pot passar objectes de tipus \"%#T\" que no és POD a través de \"...\"; la cridada avortarà en temps d'execució"
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
+msgstr "no es pot rebre objectes de tipus \"%#T\" que no és POD a través de \"...\""
+
+#: cp/call.c:4523
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr "passar \"%T\" com l'argument \"this\" de \"%#D\" descarta als qualificadors"
+
+#: cp/call.c:4542
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "\"%T\" no és una base inaccessible de \"%T\""
+
+#: cp/call.c:4786
+msgid "could not find class$ field in java interface type `%T'"
+msgstr "no es va poder trobar un camp class$ en el tipus d'interfície java \"%T\""
+
+#: cp/call.c:4974
+msgid "call to non-function `%D'"
+msgstr "cridada a \"%D\" que no és funció"
+
+#: cp/call.c:5076
+msgid "no matching function for call to `%T::%D(%A)%#V'"
+msgstr "no es troba una funció coincident per a la cridada a \"%T::%D(%A)%#V\""
+
+#: cp/call.c:5106
+msgid "cannot call member function `%D' without object"
+msgstr "no es pot cridar a la funció membre \"%D\" sense un objecte"
+
+#: cp/call.c:5704
+msgid "passing `%T' chooses `%T' over `%T'"
+msgstr "passar \"%T\" escull \"%T\" sobre \"%T\""
+
+#: cp/call.c:5706 cp/decl2.c:4154
+msgid " in call to `%D'"
+msgstr " en la cridada a \"%D\""
+
+#: cp/call.c:5755
+msgid "choosing `%D' over `%D'"
+msgstr "escollint \"%D\" sobre \"%D\""
+
+#: cp/call.c:5756
+msgid " for conversion from `%T' to `%T'"
+msgstr " per a la conversió de \"%T\" a \"%T\""
+
+#: cp/call.c:5758
+msgid " because conversion sequence for the argument is better"
+msgstr " perquè la seqüència de conversió per a l'argument és millor"
+
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr ""
+
+#: cp/call.c:5996
+msgid "could not convert `%E' to `%T'"
+msgstr "no es pot convertir \"%E\" a \"%T\""
+
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "const_cast invàlid d'un rvalue de tipus \"%T\" al tipus \"%T\""
+
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "initialització invàlida de reference de tipus \"%T\" a partir d'una expressió de tipus \"%T\""
+
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr "no es pot convertir de la base \"%T\" al tipus derivat \"%T\" a través de la base virtual \"%T\""
+
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr "no es poden sobrecarregar \"%#D\" i \"%#D\""
+
+#: cp/class.c:1076
+msgid "duplicate enum value `%D'"
+msgstr "valor enum duplicat \"%D\""
+
+#: cp/class.c:1079
+msgid "duplicate field `%D' (as enum and non-enum)"
+msgstr "camp duplicat \"%D\" (com enum i non-enum)"
+
+#: cp/class.c:1086
+msgid "duplicate nested type `%D'"
+msgstr "tipus niat duplicat \"%D\""
+
+#: cp/class.c:1097
+msgid "duplicate field `%D' (as type and non-type)"
+msgstr "camp duplicat \"%D\" (com tipus i no tipus)"
+
+#: cp/class.c:1101
+msgid "duplicate member `%D'"
+msgstr "membre duplicat \"%D\""
+
+#: cp/class.c:1144
+msgid "conflicting access specifications for method `%D', ignored"
+msgstr "especificacions d'accés en conflicte per al mètode \"%D\", ignorat"
+
+#: cp/class.c:1146
+#, c-format
+msgid "conflicting access specifications for field `%s', ignored"
+msgstr "especificacions d'accés en conflicte per al camp \"%s\", ignorat"
+
+#: cp/class.c:1194
+msgid "`%D' names constructor"
+msgstr "\"%D\" nomena al constructor"
+
+#: cp/class.c:1199
+msgid "`%D' invalid in `%T'"
+msgstr "\"%D\" invàlid en \"%#T\""
+
+#: cp/class.c:1207
+msgid "no members matching `%D' in `%#T'"
+msgstr "no hi ha membres que coincideixin amb \"%D\" en \"%#T\""
+
+#: cp/class.c:1239 cp/class.c:1247
+msgid "`%D' invalid in `%#T'"
+msgstr "\"%D\" invàlid en \"%#T\""
+
+#: cp/class.c:1240
+msgid " because of local method `%#D' with same name"
+msgstr " a causa del mètode local \"%D\" amb el mateix nom"
+
+#: cp/class.c:1248
+msgid " because of local member `%#D' with same name"
+msgstr " a causa del membre local \"%D\" amb el mateix nom"
+
+#: cp/class.c:1320
+msgid "base class `%#T' has a non-virtual destructor"
+msgstr "la classe base \"%#T\" té un destructor no virtual"
+
+#: cp/class.c:1340
+msgid "base `%T' with only non-default constructor in class without a constructor"
+msgstr "base \"%#T\" amb només un constructor que no és per omissió en una classe sense un constructor"
+
+#: cp/class.c:1912
+msgid "all member functions in class `%T' are private"
+msgstr "tots les funcions membres en la classe \"%#T\" són privades"
+
+#: cp/class.c:1926
+msgid "`%#T' only defines a private destructor and has no friends"
+msgstr "\"%#T\" solament defineix un destructor privat i no té friends"
+
+#: cp/class.c:1969
+msgid "`%#T' only defines private constructors and has no friends"
+msgstr "\"%#T\" solament defineix constructors privats i no té friends"
+
+#: cp/class.c:2090 cp/class.c:5276
+msgid "redefinition of `%#T'"
+msgstr "redefinició de \"%#T\""
+
+#: cp/class.c:2091
+msgid "previous definition of `%#T'"
+msgstr "definició prèvia de \"%#T\""
+
+#: cp/class.c:2365
+msgid "no unique final overrider for `%D' in `%T'"
+msgstr "no hi ha un eixafador únic final per a \"%D\" en \"%#T\""
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+msgid "`%D' was hidden"
+msgstr "\"%D\" estava amagat"
+
+#: cp/class.c:2713
+msgid " by `%D'"
+msgstr " per \"%D\""
+
+#: cp/class.c:2755
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+msgstr "ISO C++ prohibeix que el membre \"%D\" tingui el mateix nom que la classe que ho conté"
+
+#: cp/class.c:2760 cp/decl2.c:1331
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+msgstr "\"%D\" invàlid; un union anònim només pot tenir membres amb dades no estàtiques"
+
+#: cp/class.c:2766 cp/decl2.c:1337
+msgid "private member `%#D' in anonymous union"
+msgstr "membre privat \"%D\" en union anònima"
+
+#: cp/class.c:2769 cp/decl2.c:1339
+msgid "protected member `%#D' in anonymous union"
+msgstr "membre protegit \"%D\" en union anònima"
+
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
+msgid "bit-field `%#D' with non-integral type"
+msgstr "camp de bits \"%D\" amb tipus no enter"
+
+#: cp/class.c:2978
+msgid "bit-field `%D' width not an integer constant"
+msgstr "l'amplària del camp de bits \"%D\" no és una constant entera"
+
+#: cp/class.c:2984
+msgid "negative width in bit-field `%D'"
+msgstr "amplària negativa en el camp de bit \"%D\""
+
+#: cp/class.c:2989
+msgid "zero width for bit-field `%D'"
+msgstr "amplària zero per al camp de bits \"%D\""
+
+#: cp/class.c:2995
+msgid "width of `%D' exceeds its type"
+msgstr "l'amplària de \"%D\" excedeix el seu tipus"
+
+#: cp/class.c:3004
+msgid "`%D' is too small to hold all values of `%#T'"
+msgstr "\"%D\" és massa petit per a guardar tots els valors de \"%#T\""
+
+#: cp/class.c:3088
+msgid "member `%#D' with constructor not allowed in union"
+msgstr "no es permet el membre \"%D\" amb constructor en la union"
+
+#: cp/class.c:3091
+msgid "member `%#D' with destructor not allowed in union"
+msgstr "no es permet el membre \"%D\" amb destructor en la union"
+
+#: cp/class.c:3094
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr "no es permet el membre \"%D\" amb operador d'assignació de còpia en la union"
+
+#: cp/class.c:3121
+msgid "multiple fields in union `%T' initialized"
+msgstr "múltiples camps inicialitzats en la unió \"%#T\""
+
+#: cp/class.c:3234
+msgid "field `%D' in local class cannot be static"
+msgstr "el camp \"%D\" en la classe local no pot ser static"
+
+#: cp/class.c:3240
+msgid "field `%D' invalidly declared function type"
+msgstr "el camp \"%D\" és declarat invàlidament com un tipus de funció"
+
+#: cp/class.c:3247
+msgid "field `%D' invalidly declared method type"
+msgstr "el camp \"%D\" és declarat invàlidament com un tipus de mètode"
+
+#: cp/class.c:3253
+msgid "field `%D' invalidly declared offset type"
+msgstr "el camp \"%D\" és declarat invàlidament com un tipus de desplaçament"
+
+#. Unions cannot have static members.
+#: cp/class.c:3271
+msgid "field `%D' declared static in union"
+msgstr "el camp \"%D\" és declarat com static en la unió"
+
+#: cp/class.c:3298
+msgid "non-static reference `%#D' in class without a constructor"
+msgstr "referència \"%D\" que no és static en una classe sense un constructor"
+
+#: cp/class.c:3333
+msgid "non-static const member `%#D' in class without a constructor"
+msgstr "membre const \"%D\" que no és static en una classe sense un constructor"
+
+#: cp/class.c:3349
+msgid "field `%#D' with same name as class"
+msgstr "camp \"%D\" amb el mateix nom que la classe"
+
+#: cp/class.c:3367
+msgid "`%#T' has pointer data members"
+msgstr "\"%#T\" té membres punters a dades"
+
+#: cp/class.c:3371
+msgid " but does not override `%T(const %T&)'"
+msgstr " però no s'imposa a \"%T(const %T&)\""
+
+#: cp/class.c:3373
+msgid " or `operator=(const %T&)'"
+msgstr " o a \"operator=(cont %T&)\""
+
+#: cp/class.c:3376
+msgid " but does not override `operator=(const %T&)'"
+msgstr " però no s'imposa a \"operator=(const %T&)\""
+
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
+msgid "initializer specified for non-virtual method `%D'"
+msgstr "es va especificar un inicialitzador per al mètode no virtual \"%D\""
+
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4861
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "base directa \"%T\" inaccessible en \"%T\" a causa de ambigüitat"
+
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "base virtual \"%T\" inaccessible en \"%T\" a causa de ambigüitat"
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
+msgid "`%#T' has virtual functions but non-virtual destructor"
+msgstr "\"%#T\" té funcions virtuals però destructors no virtuals"
+
+#: cp/class.c:5516
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "es va tractar d'acabar struct, però va ser tret a causa de errors previs de decodificació"
+
+#: cp/class.c:5982
+#, c-format
+msgid "language string `\"%s\"' not recognized"
+msgstr "cadena de llenguatge \"\"%s\"\" no reconeguda"
+
+#: cp/class.c:6078
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr "no es pot resoldre la funció sobrecarregada \"%D\" basant-se en la conversió al tipus \"%T\""
+
+#: cp/class.c:6203
+msgid "no matches converting function `%D' to type `%#T'"
+msgstr "no hi ha coincidències al convertir la funció \"%D\" al tipus \"%#T\""
+
+#: cp/class.c:6226
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+msgstr "la conversió de la funció sobrecarregada \"%D\" al tipus \"%#T\" és ambigua"
+
+#: cp/class.c:6252
+msgid "assuming pointer to member `%D'"
+msgstr "assumint el punter a membre \"%D\""
+
+#: cp/class.c:6255
+#, c-format
+msgid "(a pointer to member can only be formed with `&%E')"
+msgstr "(un punter a membre solament es pot formar amb \"&%E\")"
+
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
+msgid "not enough type information"
+msgstr "no hi ha suficient informació de tipus"
+
+#: cp/class.c:6315
+msgid "argument of type `%T' does not match `%T'"
+msgstr "l'argument de tipus \"%T\" no coincideix amb \"%T\""
+
+#: cp/class.c:6461
+msgid "invalid operation on uninstantiated type"
+msgstr "operació invàlida en tipus no instanciat"
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+msgid "declaration of `%#D'"
+msgstr "la declaració de \"%#D\""
+
+#: cp/class.c:6746
+msgid "changes meaning of `%D' from `%+#D'"
+msgstr "canvia el significat de \"%D\" a partir de \"%+#D\""
+
+#: cp/cvt.c:88
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr "no es pot convertir des del tipus de dada incompleta \"%T\" a \"%T\""
+
+#: cp/cvt.c:97
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+msgstr "la conversió de \"%E\" des de \"%T\" a \"%T\" és ambigua"
+
+#: cp/cvt.c:126
+msgid "converting from `%T' to `%T'"
+msgstr "convertint de \"%T\" a \"%T\""
+
+#: cp/cvt.c:203 cp/cvt.c:207
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+msgstr "el punter a la conversió de membre de \"%T\" a \"%T\" és a través d'una base virtual"
+
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr "no es pot convertir \"%E\" des del tipus \"%T\" al tipus \"%T\""
+
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "conversió invàlida de \"%T\" a \"%T\""
+
+#: cp/cvt.c:504
+msgid "conversion from `%T' to `%T' discards qualifiers"
+msgstr "la conversió de \"%T\" a \"%T\" descarta els qualificadors"
+
+#: cp/cvt.c:522
+msgid "casting `%T' to `%T' does not dereference pointer"
+msgstr "la conversió de \"%T\" a \"%T\" no dereferencia els punters"
+
+#: cp/cvt.c:551
+msgid "cannot convert type `%T' to type `%T'"
+msgstr "no es pot convertir del tipus \"%T\" al tipus \"%T\""
+
+#: cp/cvt.c:683
+msgid "conversion from `%#T' to `%#T'"
+msgstr "conversió de \"%#T\" a \"%#T\""
+
+#: cp/cvt.c:695
+msgid "`%#T' used where a `%T' was expected"
+msgstr "es va usar un \"%#T\" on s'esperava un \"%T\""
+
+#: cp/cvt.c:712
+msgid "the address of `%D', will always be `true'"
+msgstr "l'adreça de \"%D\", sempre serà \"true\""
+
+#: cp/cvt.c:732
+msgid "`%#T' used where a floating point value was expected"
+msgstr "es va usar un \"%#T\" on s'esperava un valor de coma flotant"
+
+#: cp/cvt.c:779
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr "es va sol·licitar la conversió des de \"%T\" al tipus no escalar \"%T\""
+
+#: cp/cvt.c:865
+msgid "object of incomplete type `%T' will not be accessed in %s"
+msgstr "l'objecte de tipus incomplet \"%T\" no es accesará en %s"
+
+#: cp/cvt.c:868
+msgid "object of type `%T' will not be accessed in %s"
+msgstr "l'objecte de tipus \"%T\" no es accesará en %s"
+
+#: cp/cvt.c:884
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+msgstr "l'objecte \"%E\" de tipus incomplet \"%T\" no es accesará en %s"
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%s no es pot resoldre l'adreça de la funció sobrecarregada"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
+#, c-format
+msgid "%s is a reference, not call, to function `%E'"
+msgstr "%s és una referència, no una cridada, a la funció \"%E\""
+
+#: cp/cvt.c:1039
+msgid "converting NULL to non-pointer type"
+msgstr "convertint NULL a un tipus que no és apuntador"
+
+#: cp/cvt.c:1115
+msgid "ambiguous default type conversion from `%T'"
+msgstr "conversió de tipus per omissió ambigua des de \"%T\""
+
+#: cp/cvt.c:1117
+msgid " candidate conversions include `%D' and `%D'"
+msgstr " les conversions candidates inclouen \"%D\" i \"%D\""
+
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
+msgid "conflicts with previous declaration `%#D'"
+msgstr "causa conflictes amb la declaració prèvia \"%#D\""
+
+#: cp/decl.c:1467
+msgid "label `%D' used but not defined"
+msgstr "s'usa l'etiqueta \"%D\" però no està definida"
+
+#: cp/decl.c:1472
+msgid "label `%D' defined but not used"
+msgstr "s'usa l'etiqueta \"%D\" però no està definida"
+
+#: cp/decl.c:2489
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
+msgstr "no es permet aquí l'alies de l'espai de noms \"%D\", assumint que és \"%D\""
+
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
+msgid "previous declaration of `%D'"
+msgstr "declaració prèvia de \"%D\""
+
+#: cp/decl.c:3366 cp/decl.c:3404
+msgid "shadowing %s function `%#D'"
+msgstr "enfosquint la funció de biblioteca \"%#D\""
+
+#: cp/decl.c:3375
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr "la funció de biblioteca \"%#D\" és redeclarada com \"%#D\" que no és funció"
+
+#: cp/decl.c:3380
+msgid "conflicts with built-in declaration `%#D'"
+msgstr "causa conflicte amb la declaració interna \"%#D\""
+
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+msgid "new declaration `%#D'"
+msgstr "declaració nova \"%#D\""
+
+#: cp/decl.c:3400
+msgid "ambiguates built-in declaration `%#D'"
+msgstr "fa ambigua la declaració interna \"%#D\""
+
+#: cp/decl.c:3464
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr "\"%#D\" redeclarat com un tipus diferent de símbol"
+
+#: cp/decl.c:3467
+msgid "previous declaration of `%#D'"
+msgstr "declaració prèvia de \"%#D\""
+
+#: cp/decl.c:3489
+msgid "declaration of template `%#D'"
+msgstr "declaració del patró \"%#D\""
+
+#: cp/decl.c:3505 cp/decl.c:3521
+msgid "ambiguates old declaration `%#D'"
+msgstr "fa ambigua la declaració antiga \"%#D\""
+
+#: cp/decl.c:3513
+msgid "declaration of C function `%#D' conflicts with"
+msgstr "la declaració de la funció C \"%#D\" té conflictes amb"
+
+#: cp/decl.c:3515
+msgid "previous declaration `%#D' here"
+msgstr "declaració prèvia de \"%#D\" aquí"
+
+#: cp/decl.c:3533
+msgid "conflicting types for `%#D'"
+msgstr "tipus en conflicte per a \"%#D\""
+
+#: cp/decl.c:3534
+msgid "previous declaration as `%#D'"
+msgstr "declaració prèvia com \"%#D\""
+
+#: cp/decl.c:3577
+msgid "`%#D' previously defined here"
+msgstr "es va definir \"%#D\" prèviament aquí"
+
+#: cp/decl.c:3578
+msgid "`%#D' previously declared here"
+msgstr "es va declarar \"%#D\" prèviament aquí"
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+msgid "prototype for `%#D'"
+msgstr "el prototip per a \"%#D\""
+
+#: cp/decl.c:3588
+msgid "follows non-prototype definition here"
+msgstr "a continuació la definició del no prototip aquí"
+
+#: cp/decl.c:3600
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr "declaració prèvia de \"%#D\" amb l'enllaç %L"
+
+#: cp/decl.c:3602
+msgid "conflicts with new declaration with %L linkage"
+msgstr "té conflictes amb la declaració nova amb l'enllaç %L"
+
+#: cp/decl.c:3625 cp/decl.c:3632
+msgid "default argument given for parameter %d of `%#D'"
+msgstr "argument per omissió donat per al paràmetre %d de \"%#D\""
+
+#: cp/decl.c:3627 cp/decl.c:3634
+msgid "after previous specification in `%#D'"
+msgstr "després de l'especificació prèvia en \"%#D\""
+
+#: cp/decl.c:3643
+msgid "`%#D' was used before it was declared inline"
+msgstr "es va usar \"%#D\" abans que fora declarat inline"
+
+#: cp/decl.c:3645
+msgid "previous non-inline declaration here"
+msgstr "declaració prèvia no inline aquí"
+
+#: cp/decl.c:3699
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr "declaració redundant de \"%D\" en el mateix àmbit"
+
+#: cp/decl.c:3780
+#, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr "la declaració de \"%F\" llança excepcions diferents"
+
+#: cp/decl.c:3782
+#, c-format
+msgid "than previous declaration `%F'"
+msgstr "que la declaració prèvia \"%F\""
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+msgid "explicit specialization of %D after first use"
+msgstr "especialització explícita de %D després del primer ús"
+
+#: cp/decl.c:4187
+msgid "`%#D' used prior to declaration"
+msgstr "s'usa \"%#D\" previ a la declaració"
+
+#: cp/decl.c:4218
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr "redeclaración de \"wchar_t\" com \"%T\""
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+msgid "invalid redeclaration of `%D'"
+msgstr "redeclaración invàlida de \"%D\""
+
+#: cp/decl.c:4247
+msgid "as `%D'"
+msgstr "com \"%D\""
+
+#: cp/decl.c:4337
+msgid "previous external decl of `%#D'"
+msgstr "declaració externa prèvia de \"%#D\""
+
+#: cp/decl.c:4378
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr "\"%D\" va ser declarat prèvia i implícitament per a retornar \"int\""
+
+#: cp/decl.c:4438
+msgid "extern declaration of `%#D' doesn't match"
+msgstr "la declaració externa de \"%#D\" no coincideix"
+
+#: cp/decl.c:4439
+msgid "global declaration `%#D'"
+msgstr "amb la declaració global \"%#D\""
+
+#: cp/decl.c:4472
+msgid "declaration of `%#D' shadows a parameter"
+msgstr "la declaració de \"%#D\" enfosqueix un paràmetre"
+
+#: cp/decl.c:4492
+#, c-format
+msgid "declaration of `%s' shadows a member of `this'"
+msgstr "la declaració de \"%s\" obscurece a un membre de \"this\""
+
+#: cp/decl.c:4889
+msgid "`%#D' hides constructor for `%#T'"
+msgstr "\"%#D\" amaga el destructor per a \"%#T\""
+
+#: cp/decl.c:4904
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr "\"%#D\" causa conflicte amb la declaració prèvia en ús \"%#D\""
+
+#: cp/decl.c:4916
+msgid "previous non-function declaration `%#D'"
+msgstr "la declaració prèvia \"%#D\" que no és funció"
+
+#: cp/decl.c:4917
+msgid "conflicts with function declaration `%#D'"
+msgstr "causa conflicte amb la declaració de la funció \"%#D\""
+
+#: cp/decl.c:5007
+msgid "implicit declaration of function `%#D'"
+msgstr "declaració implícita de la funció \"%#D\""
+
+#: cp/decl.c:5167
+#, c-format
+msgid "label `%s' referenced outside of any function"
+msgstr "l'etiqueta \"%s\" es va referenciar fora de qualsevol funció"
+
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+msgid "jump to label `%D'"
+msgstr "salt a l'etiqueta \"%D\""
+
+#: cp/decl.c:5272 cp/decl.c:5296
+msgid "jump to case label"
+msgstr "salt a l'etiqueta case"
+
+#: cp/decl.c:5280
+msgid " crosses initialization of `%#D'"
+msgstr " creua la inicialització de \"%#D\""
+
+#: cp/decl.c:5283 cp/decl.c:5403
+msgid " enters scope of non-POD `%#D'"
+msgstr " entra en l'àmbit de \"%#D\" que no és POD"
+
+#: cp/decl.c:5303 cp/decl.c:5407
+msgid " enters try block"
+msgstr " entra intent de bloc"
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
+msgid " enters catch block"
+msgstr " entra captura de bloc"
+
+#: cp/decl.c:5388
+msgid " from here"
+msgstr " des d'aquí"
+
+#: cp/decl.c:5401
+msgid " skips initialization of `%#D'"
+msgstr " salta la inicialización de \"%#D\""
+
+#: cp/decl.c:5437
+msgid "label named wchar_t"
+msgstr "etiqueta nomenada wchar_t"
+
+#: cp/decl.c:5440
+msgid "duplicate label `%D'"
+msgstr "etiqueta duplicada \"%D\""
+
+#: cp/decl.c:5525
+#, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr "l'etiqueta casi \"%E\" no es troba dintre d'una declaració switch"
+
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+msgid "`%#D' redeclared as %C"
+msgstr "\"%#D\" redeclarat com %C"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+msgid "invalid use of `%D'"
+msgstr "ús invàlid de \"%D\""
+
+#: cp/decl.c:5852
+msgid "`%D::%D' is not a template"
+msgstr "\"%D::%D\" no és un patró"
+
+#: cp/decl.c:5869
+msgid "`%D' undeclared in namespace `%D'"
+msgstr "\"%D\" no declarat en l'espai de noms \"%D\""
+
+#: cp/decl.c:6002
+msgid "`%D' used without template parameters"
+msgstr "s'usa \"%D\" sense paràmetres de patró"
+
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+msgid "no class template named `%#T' in `%#T'"
+msgstr "no hi ha una patró de classe cridada \"%#T\" en \"%#T\""
+
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+msgid "no type named `%#T' in `%#T'"
+msgstr "no hi ha un tipus cridat \"%#T\" en \"%#T\""
+
+#: cp/decl.c:6329
+msgid "lookup of `%D' finds `%#D'"
+msgstr "la recerca de \"%D\" troba a \"%#D\""
+
+#: cp/decl.c:6331
+msgid " instead of `%D' from dependent base class"
+msgstr " en lloc de \"%D\" de la classe base depenent"
+
+#: cp/decl.c:6333
+msgid " (use `typename %T::%D' if that's what you meant)"
+msgstr " (usi \"typename %T::%D\" si això és el que volia)"
+
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr "la recerca de nom de \"%D\" va cambiar"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+msgstr "la recerca de \"%D\" en l'àmbit de \"%#T\" (\"%#D\") no coincideix amb la recerca en l'àmbit actual (\"%#D\")"
+
+#: cp/decl.c:7432
+msgid "an anonymous union cannot have function members"
+msgstr "un union anònim no pot tenir funcions membre"
+
+#: cp/decl.c:7449
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
+msgstr "no es permet el membre \"%#D\" amb constructor en un agregat anònim"
+
+#: cp/decl.c:7452
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
+msgstr "no es permet el membre \"%#D\" amb destructor en un agregat anònim"
+
+#: cp/decl.c:7455
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+msgstr "no es permet el membre \"%#D\" amb operador d'assignació de còpia en un agregat anònim"
+
+#: cp/decl.c:7493
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr "redeclaración del tipus intern de C++ \"%T\""
+
+#: cp/decl.c:7529
+msgid "multiple types in one declaration"
+msgstr "tipus múltiples en una declaració"
+
+#: cp/decl.c:7556
+msgid "missing type-name in typedef-declaration"
+msgstr "falta el nom del tipus en la declaració typedef"
+
+#: cp/decl.c:7563
+msgid "ISO C++ prohibits anonymous structs"
+msgstr "ISO C++ prohibeix structs anònims"
+
+#: cp/decl.c:7570
+msgid "`%D' can only be specified for functions"
+msgstr "\"%D\" només pot ser especificat per a funcions"
+
+#: cp/decl.c:7572
+msgid "`%D' can only be specified inside a class"
+msgstr "\"%D\" només pot ser especificat dintre d'una classe"
+
+#: cp/decl.c:7574
+msgid "`%D' can only be specified for constructors"
+msgstr "\"%D\" només pot ser especificat per a constructors"
+
+#: cp/decl.c:7577
+msgid "`%D' can only be specified for objects and functions"
+msgstr "\"%D\" només pot ser especificat per a objectes i funcions"
+
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "typedef \"%D\" està inicialitzat (utilitzi __typeof__ en el seu lloc)"
+
+#: cp/decl.c:7724
+msgid "function `%#D' is initialized like a variable"
+msgstr "la funció \"%#D\" està inicialitzada com una variable"
+
+#: cp/decl.c:7736
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr "la declaració de \"%#D\" té \"extern\" i està inicialitzada"
+
+#: cp/decl.c:7770
+msgid "`%#D' is not a static member of `%#T'"
+msgstr "\"%#D\" no és un membre static de \"%#T\""
+
+#: cp/decl.c:7775
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr "ISO C++ no permet que \"%T::%D\" es defineixi com \"%T::%D\""
+
+#: cp/decl.c:7786
+msgid "duplicate initialization of %D"
+msgstr "inicialització duplicada de %D"
+
+#: cp/decl.c:7815
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr "la declaració de \"%#D\" fora de la classe no és una definició"
+
+#: cp/decl.c:7865
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr "la variable \"%#D\" té inicializador però de tipus de dada incompleta"
+
+#: cp/decl.c:7873 cp/decl.c:8432
+msgid "elements of array `%#D' have incomplete type"
+msgstr "alguns elements de la matriu \"%#D\" tenen tipus de dada incompleta"
+
+#: cp/decl.c:7889
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr "l'agregat \"%#D\" té un tipus incomplet i no es pot definir"
+
+#: cp/decl.c:7931
+msgid "`%D' declared as reference but not initialized"
+msgstr "\"%D\" declarat com referència però no està inicialitzat"
+
+#: cp/decl.c:7940
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr "ISO C++ prohibeix l'ús d'una llista de inicialitzadors per a inicialitzar la referència \"%D\""
+
+#: cp/decl.c:7970
+msgid "cannot initialize `%T' from `%T'"
+msgstr "no es pot inicialitzar \"%T\" des de \"%T\""
+
+#: cp/decl.c:8004
+msgid "initializer fails to determine size of `%D'"
+msgstr "el inicializador no pot determinar la grandària de \"%D\""
+
+#: cp/decl.c:8009
+msgid "array size missing in `%D'"
+msgstr "falta la grandària de la matriu en \"%D\""
+
+#: cp/decl.c:8021
+msgid "zero-size array `%D'"
+msgstr "matriu \"%D\" de grandària zero"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+msgid "storage size of `%D' isn't known"
+msgstr "no es coneix la grandària d'emmagatzematge de \"%D\""
+
+#: cp/decl.c:8081
+msgid "storage size of `%D' isn't constant"
+msgstr "la grandària d'emmagatzematge de \"%D\" no és constant"
+
+#: cp/decl.c:8137
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+msgstr "perdó: la semàntica de les dades static de la funció inline \"%#D\" és errònia (acabarà amb múltiples còpies)"
+
+#: cp/decl.c:8138
+msgid " you can work around this by removing the initializer"
+msgstr " pot evitar això eliminant el inicializador"
+
+#: cp/decl.c:8164
+msgid "uninitialized const `%D'"
+msgstr "const \"%D\" sense inicialitzar"
+
+#: cp/decl.c:8249
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "es va utilitzar un inicialitzador entre parèntesis per a inicialitzar \"%T\""
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "el inicialitzador per a \"%T\" deu estar tancat entre parèntesis"
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ no permet inicialitzadors designats"
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "\"%T\" té una dada membre que no és non-static cridada \"%D\""
+
+#: cp/decl.c:8389
+msgid "too many initializers for `%T'"
+msgstr "massa inicialitzadors per a \"%T\""
+
+#: cp/decl.c:8426
+msgid "variable-sized object `%D' may not be initialized"
+msgstr "l'objecte de grandària variable \"%D\" no pot ser inicialitzat"
+
+#: cp/decl.c:8437
+msgid "`%D' has incomplete type"
+msgstr "\"%D\" té un tipus de dada incompleta"
+
+#: cp/decl.c:8486
+msgid "`%D' must be initialized by constructor, not by `{...}'"
+msgstr "\"%D\" deu ser inicialitzat per un constructor, no per \"{...}\""
+
+#: cp/decl.c:8527
+msgid "structure `%D' with uninitialized const members"
+msgstr "estructura \"%D\" amb membres const sense inicialitzar"
+
+#: cp/decl.c:8529
+msgid "structure `%D' with uninitialized reference members"
+msgstr "estructura \"%D\" amb membres de referència sense inicialitzar"
+
+#: cp/decl.c:8770
+msgid "assignment (not initialization) in declaration"
+msgstr "assignació (no inicialització) en la declaració"
+
+#: cp/decl.c:8785
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr "no es poden inicialitzar \"%D\" per a l'espai de noms \"%D\""
+
+#: cp/decl.c:8836
+msgid "shadowing previous type declaration of `%#D'"
+msgstr "enfosquint la declaració de tipus prèvia de \"%#D\""
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "\"%D\" no pot ser thread-local perquè és de tipus \"%T\" que no és POD"
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "\"%D\" és thread-local i per tant no es pot inicialitzar dinàmicament"
+
+#: cp/decl.c:9298 cp/init.c:562
+msgid "multiple initializations given for `%D'"
+msgstr "es van donar inicialitzacions múltiples per a \"%D\""
+
+#: cp/decl.c:9390
+msgid "invalid catch parameter"
+msgstr "paràmetre de captura invàlid"
+
+#: cp/decl.c:9508
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr "el destructor per a la classe estrangera \"%T\" no pot ser un membre"
+
+#: cp/decl.c:9511
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr "el constructor per a la classe estrangera \"%T\" no pot ser un membre"
+
+#: cp/decl.c:9530
+msgid "`%D' declared as a `virtual' %s"
+msgstr "\"%D\" va ser declarat com un %s \"virtual\""
+
+#: cp/decl.c:9532
+msgid "`%D' declared as an `inline' %s"
+msgstr "\"%D\" va ser declarat com un %s \"inline\""
+
+#: cp/decl.c:9534
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+msgstr "especificadors de funció \"const\" i \"volatile\" en \"%D\" invàlids en la declaració %s"
+
+#: cp/decl.c:9537
+msgid "`%D' declared as a friend"
+msgstr "\"%D\" declarat com un friend"
+
+#: cp/decl.c:9543
+msgid "`%D' declared with an exception specification"
+msgstr "\"%D\" declarat amb una excepció d'especificació"
+
+#: cp/decl.c:9618
+msgid "cannot declare `::main' to be a template"
+msgstr "no es pot declarar \"::main\" com template"
+
+#: cp/decl.c:9620
+msgid "cannot declare `::main' to be inline"
+msgstr "no es pot declarar \"::main\" com inline"
+
+#: cp/decl.c:9622
+msgid "cannot declare `::main' to be static"
+msgstr "no es pot declarar \"::main\" com static"
+
+#: cp/decl.c:9625
+msgid "`main' must return `int'"
+msgstr "\"main\" deu retornar \"int\""
+
+#: cp/decl.c:9653
+msgid "non-local function `%#D' uses anonymous type"
+msgstr "la funció \"%#D\" que no és local usa un tipus anònim"
+
+#: cp/decl.c:9656
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+msgstr "\"%#D\" no es refereix al tipus sense qualificar, així que no s'usa per a l'enllaçat"
+
+#: cp/decl.c:9662
+msgid "non-local function `%#D' uses local type `%T'"
+msgstr "la funció \"%#D\" que no és local utilitza el tipus local \"%T\""
+
+#: cp/decl.c:9691
+msgid "%smember function `%D' cannot have `%T' method qualifier"
+msgstr "%sfunció membre \"%D\" no pot tenir el qualificador de mètode \"%T\""
+
+#: cp/decl.c:9715
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr "definint l'especialització explícita \"%D\" en la declaració friend"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+msgid "invalid use of template-id `%D' in declaration of primary template"
+msgstr "ús invàlid de l'aneu de patró \"%D\" en la declaració del patró primàri"
+
+#: cp/decl.c:9753
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+msgstr "no es permeten els argument per omissió en la declaració de l'especialització friend del patró \"%D\""
+
+#: cp/decl.c:9760
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+msgstr "no es permet \"inline\" en la declaració de l'especialització friend del patró \"%D\""
+
+#: cp/decl.c:9822
+msgid "definition of implicitly-declared `%D'"
+msgstr "la definició de \"%D\" declarat implícitament"
+
+#: cp/decl.c:9834 cp/decl2.c:785
+msgid "no `%#D' member function declared in class `%T'"
+msgstr "no hi ha una funció membre \"%#D\" declarada en la classe \"%T\""
+
+#: cp/decl.c:9967
+msgid "non-local variable `%#D' uses local type `%T'"
+msgstr ""
+
+#: cp/decl.c:10064
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+msgstr ""
+
+#: cp/decl.c:10073
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr "ISO C++ prohibeix la inicialización en la classe del membre static \"%D\" que no és constant"
+
+#: cp/decl.c:10076
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr "ISO C++ prohibeix la inicialització del membre constant \"%D\" del tipus \"%T\" que no és enter"
+
+#: cp/decl.c:10126
+msgid "size of array `%D' has non-integer type"
+msgstr "la grandària de la matriu \"%D\" té un tipus no enter"
+
+#: cp/decl.c:10128
+msgid "size of array has non-integer type"
+msgstr "la grandària de la matriu té un tipus no enter"
+
+#: cp/decl.c:10148
+msgid "size of array `%D' is negative"
+msgstr "la grandària de la matriu \"%D\" és negatiu"
+
+#: cp/decl.c:10150
+msgid "size of array is negative"
+msgstr "la grandària de la matriu és negatiu"
+
+#: cp/decl.c:10159
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària zero"
+
+#: cp/decl.c:10161
+msgid "ISO C++ forbids zero-size array"
+msgstr "ISO C++ prohibeix la matriu de grandària zero"
+
+#: cp/decl.c:10168
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr "la grandària de la matriu \"%D\" no és una expressió constant integral"
+
+#: cp/decl.c:10171
+msgid "size of array is not an integral constant-expression"
+msgstr "la grandària de la matriu no és una expressió constant integral"
+
+#: cp/decl.c:10189
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr "ISO C++ prohibeix la matriu \"%D\" de grandària variable"
+
+#: cp/decl.c:10192
+msgid "ISO C++ forbids variable-size array"
+msgstr "ISO C++ prohibeix la matriu de grandària variable"
+
+#: cp/decl.c:10203
+msgid "overflow in array dimension"
+msgstr "desbordament en la dimensió de la matriu"
+
+#: cp/decl.c:10262
+msgid "declaration of `%D' as %s"
+msgstr "declaración de \"%D\" com %s"
+
+#: cp/decl.c:10264
+#, c-format
+msgid "creating %s"
+msgstr "creant %s"
+
+#: cp/decl.c:10276
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+msgstr "la declaració de \"%D\" com una matriu multidimensional deu tenir límits per a totes les dimensions excepte la primera"
+
+#: cp/decl.c:10279
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "una matriu multidimensional deu tenir límits per a totes les dimensions excepte per a la primera"
+
+#: cp/decl.c:10308
+msgid "return type specification for constructor invalid"
+msgstr "l'especificació del tipus de retorn per al constructor és invàlid"
+
+#: cp/decl.c:10315
+msgid "return type specification for destructor invalid"
+msgstr "l'especificació del tipus de retorn per al destructor és invàlid"
+
+#: cp/decl.c:10321
+msgid "operator `%T' declared to return `%T'"
+msgstr "l'operador \"%T\" es va declarar per a retornar \"%T\""
+
+#: cp/decl.c:10323
+msgid "return type specified for `operator %T'"
+msgstr "es va especificar un tipus de retorn per a \"operator %T\""
+
+#: cp/decl.c:10491
+msgid "destructors must be member functions"
+msgstr "els destructors deuen ser funcions membre"
+
+#: cp/decl.c:10510
+msgid "destructor `%T' must match class name `%T'"
+msgstr "el destructor \"%T\" deu coincidir amb el nom de la classe \"%T\""
+
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
+msgid "invalid declarator"
+msgstr "declarador invàlid"
+
+#: cp/decl.c:10617
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr "falta l'identificador del declarador; utilitzant la paraula reservada \"%D\""
+
+#: cp/decl.c:10674
+msgid "type `%T' is not derived from type `%T'"
+msgstr "el tipus \"%T\" no és derivat del tipus \"%T\""
+
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+msgid "`%T' specified as declarator-id"
+msgstr "\"%T\" especificat com identificador de declarador"
+
+#: cp/decl.c:10728
+msgid " perhaps you want `%T' for a constructor"
+msgstr " potser vol \"%T\" per a un constructor"
+
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "ús invàlid del nom de patró \"%E\" en un declarador"
+
+#: cp/decl.c:10770
+msgid "declaration of `%D' as non-function"
+msgstr "la declaració de \"%D\" com una no funció"
+
+#: cp/decl.c:10847
+msgid "`bool' is now a keyword"
+msgstr "`bool' ara és una paraula clau"
+
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
+msgstr "\"%T\" extra ignorat"
+
+#: cp/decl.c:10865 cp/decl.c:10910
+msgid "multiple declarations `%T' and `%T'"
+msgstr "declaracions múltiples \"%T\" i \"%T\""
+
+#: cp/decl.c:10878
+msgid "ISO C++ does not support `long long'"
+msgstr "ISO C++ no dóna suport a \"long long\""
+
+#: cp/decl.c:10983 cp/decl.c:10986
+#, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr "ISO C++ prohibeix la declaració de \"%s\" sense tipus"
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+msgid "`%T' is implicitly a typename"
+msgstr "\"%T\" implícitament és un nom de tipus"
+
+#: cp/decl.c:11032
+#, c-format
+msgid "short, signed or unsigned invalid for `%s'"
+msgstr "short, signed o unsigned invàlid per a \"%s\""
+
+#: cp/decl.c:11037
+#, c-format
+msgid "long and short specified together for `%s'"
+msgstr "long i short especificats junts per a \"%s\""
+
+#: cp/decl.c:11048
+#, c-format
+msgid "signed and unsigned given together for `%s'"
+msgstr "es van donar junts signed i unsigned per a \"%s\""
+
+#: cp/decl.c:11157
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr "no es permeten qualificadors en la declaració de \"operator %T\""
+
+#: cp/decl.c:11179
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr ""
+
+#: cp/decl.c:11188
+msgid "`%T::%D' is not a valid declarator"
+msgstr "\"%T::%D\" no és una declaració vàlida"
+
+#: cp/decl.c:11200
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr "especificadors de classe d'emmagatzematge invàlids en les declaracions de paràmetres"
+
+#: cp/decl.c:11204
+msgid "typedef declaration invalid in parameter declaration"
+msgstr "declaració typedef invàlida en la declaració de paràmetres"
+
+#: cp/decl.c:11217
+msgid "virtual outside class declaration"
+msgstr "declaració de virtual fora de class"
+
+#: cp/decl.c:11278
+#, c-format
+msgid "storage class specified for %s `%s'"
+msgstr "classe d'emmagatzematge especificada per %s \"%s\""
+
+#: cp/decl.c:11325
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr "especificadors de classe d'emmagatzematge invàlids en les declaracions de funcions friend"
+
+#: cp/decl.c:11495
+msgid "destructor cannot be static member function"
+msgstr "el destructor no pot ser una funció membre de tipus static"
+
+#: cp/decl.c:11498
+#, c-format
+msgid "destructors may not be `%s'"
+msgstr "els destructors no poden ser \"%s\""
+
+#: cp/decl.c:11519
+msgid "constructor cannot be static member function"
+msgstr "el constructor no pot ser una funció membre de tipus static"
+
+#: cp/decl.c:11522
+msgid "constructors cannot be declared virtual"
+msgstr "els constructors no poden ser declarats virtual"
+
+#: cp/decl.c:11527
+#, c-format
+msgid "constructors may not be `%s'"
+msgstr "els constructors no poden ser \"%s\""
+
+#: cp/decl.c:11537
+msgid "return value type specifier for constructor ignored"
+msgstr "el especificador de tipus del valor retornat per al constructor és ignorat"
+
+#: cp/decl.c:11556
+#, c-format
+msgid "can't initialize friend function `%s'"
+msgstr "no es pot inicialitzar la funció friend \"%s\""
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:11560
+msgid "virtual functions cannot be friends"
+msgstr "les funcions virtual no poden ser friend"
+
+#: cp/decl.c:11565
+msgid "friend declaration not in class definition"
+msgstr "la declaració friend no està en una definició de classe"
+
+#: cp/decl.c:11567
+#, c-format
+msgid "can't define friend function `%s' in a local class definition"
+msgstr "no es pot definir la funció friend \"%s\" en una definició de classe local"
+
+#: cp/decl.c:11591
+msgid "destructors may not have parameters"
+msgstr "els destructors no poden tenir paràmetres"
+
+#: cp/decl.c:11622 cp/decl.c:11629
+msgid "cannot declare reference to `%#T'"
+msgstr "no es poden declarar referències a \"%#T\""
+
+#: cp/decl.c:11623
+msgid "cannot declare pointer to `%#T'"
+msgstr "no es pot declarar un punter a \"%#T\""
+
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr "no es pot declarar un punter al membre \"%#T\""
+
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
+msgstr "s'ignora la qualificació extra `%T::' en el membre \"%s\""
+
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
+msgstr "no es pot declarar la funció membre \"%T::%s\" dintre de \"%T\""
+
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
+msgstr "no es pot declarar el membre \"%T::%s\" dintre de \"%T\""
+
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:11918
+msgid "only declarations of constructors can be `explicit'"
+msgstr "solament les declaracions de constructors poden ser \"explicit\""
+
+#: cp/decl.c:11926
+#, c-format
+msgid "non-member `%s' cannot be declared `mutable'"
+msgstr "el no-membre \"%s\" no pot ser declarat \"mutable\""
+
+#: cp/decl.c:11931
+#, c-format
+msgid "non-object member `%s' cannot be declared `mutable'"
+msgstr "el membre non-objecte \"%s\" no pot ser declarat \"mutable\""
+
+#: cp/decl.c:11937
+#, c-format
+msgid "function `%s' cannot be declared `mutable'"
+msgstr "la funció \"%s\" no pot ser declarada \"mutable\""
+
+#: cp/decl.c:11942
+#, c-format
+msgid "static `%s' cannot be declared `mutable'"
+msgstr "static \"%s\" no pot ser declarat \"mutable\""
+
+#: cp/decl.c:11947
+#, c-format
+msgid "const `%s' cannot be declared `mutable'"
+msgstr "const \"%s\" no pot ser declarat \"mutable\""
+
+#: cp/decl.c:11960
+msgid "template-id `%D' used as a declarator"
+msgstr "l'identificador de patró \"%D\" s'usa com un declarador"
+
+#: cp/decl.c:11981
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+msgstr "ISO C++ prohibeix el tipus niat \"%D\" amb el mateix nom que la classe que ho conté"
+
+#: cp/decl.c:12030
+msgid "typedef name may not be class-qualified"
+msgstr "el nom de la definició de tipus pot no ser qualificada per a la classe"
+
+#: cp/decl.c:12038
+msgid "invalid type qualifier for non-member function type"
+msgstr "qualificador de tipus invàlid per al tipus de funció no membre"
+
+#: cp/decl.c:12101
+msgid "type qualifiers specified for friend class declaration"
+msgstr "es van especificar qualificadors de tipus en una declaració de classe friend"
+
+#: cp/decl.c:12106
+msgid "`inline' specified for friend class declaration"
+msgstr "es va especificar \"inline\" per a la declaració de classe friend"
+
+#: cp/decl.c:12114
+msgid "template parameters cannot be friends"
+msgstr "els paràmetres del patró no poden ser friends"
+
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr "la declaració friend requereix una clau de classe, ex. \"friend class %T::%D\""
+
+#: cp/decl.c:12120
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
+msgstr "la declaració friend requereix una clau de classe, ex. \"friend %#T\""
+
+#: cp/decl.c:12134
+msgid "trying to make class `%T' a friend of global scope"
+msgstr "tractant fer que la classe \"%T\" sigui un friend d'àmbit global"
+
+#: cp/decl.c:12145
+msgid "invalid qualifiers on non-member function type"
+msgstr "qualificadors invàlids en el tipus de funció no membre"
+
+#: cp/decl.c:12164
+msgid "abstract declarator `%T' used as declaration"
+msgstr "el declarador abstracte \"%T\" es va utilitzar com una declaració"
+
+#: cp/decl.c:12176
+msgid "unnamed variable or field declared void"
+msgstr "variable sense nom o camp declarat void"
+
+#: cp/decl.c:12185
+msgid "variable or field declared void"
+msgstr "variable o camp declarat void"
+
+#: cp/decl.c:12195
+msgid "cannot use `::' in parameter declaration"
+msgstr "no es pot usar \"::\" en la declaració de paràmetres"
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+msgid "invalid use of `::'"
+msgstr "ús invàlid de \"::\""
+
+#: cp/decl.c:12246
+msgid "function `%D' cannot be declared friend"
+msgstr "la funció \"%D\" no pot ser declarada friend"
+
+#: cp/decl.c:12258
+msgid "can't make `%D' into a method -- not in a class"
+msgstr "no es pot fer \"%D\" en un mètode -- no està en una classe"
+
+#: cp/decl.c:12267
+msgid "function `%D' declared virtual inside a union"
+msgstr "la funció \"%s\" es va declarar virtual dintre d'un union"
+
+#: cp/decl.c:12279
+msgid "`%D' cannot be declared virtual, since it is always static"
+msgstr "\"%D\" no es pot declarar virtual, ja que sempre és static"
+
+#: cp/decl.c:12355
+msgid "field `%D' has incomplete type"
+msgstr "el camp \"%D\" té tipus de dada incompleta"
+
+#: cp/decl.c:12357
+msgid "name `%T' has incomplete type"
+msgstr "el nom \"%T\" té tipus de dada incompleta"
+
+#: cp/decl.c:12366
+msgid " in instantiation of template `%T'"
+msgstr " en la instanciació det patró \"%T\""
+
+#: cp/decl.c:12376
+#, c-format
+msgid "`%s' is neither function nor member function; cannot be declared friend"
+msgstr "\"%s\" no és ni funció ni funció membre; no pot ser declarat friend"
+
+#: cp/decl.c:12387
+msgid "member functions are implicitly friends of their class"
+msgstr "les funcions membres són implícitament friends de la seva classe"
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr "ISO C++ prohibeix la inicialización del membre \"%D\""
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
+msgstr "fent a \"%D\" static"
+
+#: cp/decl.c:12460
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+msgstr "ISO C++ prohibeix que el membre de dades static \"%D\" tingui el mateix nom que la classe que ho conté"
+
+#: cp/decl.c:12501
+#, c-format
+msgid "storage class `auto' invalid for function `%s'"
+msgstr "la classe d'emmagatzematge \"auto\" és invàlida per a la funció \"%s\""
+
+#: cp/decl.c:12503
+#, c-format
+msgid "storage class `register' invalid for function `%s'"
+msgstr "la classe d'emmagatzematge \"register\" és invàlida per a la funció \"%s\""
+
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "la classe d'emmagatzematge \"__thread\" és invàlida per a la funció \"%s\""
+
+#: cp/decl.c:12516
+#, c-format
+msgid "storage class `static' invalid for function `%s' declared out of global scope"
+msgstr "la classe d'emmagatzematge \"static\" és invàlida per a la funció \"%s\" declarada fora de l'àmbit global"
+
+#: cp/decl.c:12518
+#, c-format
+msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+msgstr "la classe d'emmagatzematge \"inline\" és invàlida per a la funció \"%s\" declarada fora de l'àmbit global"
+
+#: cp/decl.c:12525
+#, c-format
+msgid "virtual non-class function `%s'"
+msgstr "la funció virtual \"%s\" no és classe"
+
+#: cp/decl.c:12554
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr "no es pot declarar que la funció membre \"%D\" tingui enllaçat estàtic"
+
+#. FIXME need arm citation
+#: cp/decl.c:12560
+msgid "cannot declare static function inside another function"
+msgstr "no es pot declarar una funció static dintre d'altra funció"
+
+#: cp/decl.c:12588
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr "\"static\" pot no ser utilitzat quan es defineix (oposat a la declaració) una dada membre static"
+
+#: cp/decl.c:12594
+msgid "static member `%D' declared `register'"
+msgstr "es va declarar el membre static \"%D\" com \"register\""
+
+#: cp/decl.c:12599
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
+msgstr "no es pot declarar explícitament que el membre \"%#D\" tingui un enllaçat extern"
+
+#: cp/decl.c:12774
+msgid "default argument for `%#D' has type `%T'"
+msgstr "l'argument per omissió de \"%#D\" té tipus \"%T\""
+
+#: cp/decl.c:12777
+msgid "default argument for parameter of type `%T' has type `%T'"
+msgstr "l'argument per omissió per al paràmetre del tipus \"%T\" té el tipus \"%T\""
+
+#: cp/decl.c:12794
+msgid "default argument `%E' uses local variable `%D'"
+msgstr "l'argument per omissió \"%E\" usa la variable local \"%D\""
+
+#: cp/decl.c:12839
+#, c-format
+msgid "invalid string constant `%E'"
+msgstr "constant de cadena invàlida \"%E\""
+
+#: cp/decl.c:12841
+msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+msgstr "constant entera invàlida en la llista de paràmetres, va oblidar proporcionar nom(s) de paràmetre(s)?"
+
+#: cp/decl.c:12879
+msgid "parameter `%D' invalidly declared method type"
+msgstr "el paràmetre \"%D\" es va declarar invàlidament com tipus de mètode"
+
+#: cp/decl.c:12885
+msgid "parameter `%D' invalidly declared offset type"
+msgstr "el paràmetre \"%D\" es va declarar invàlidament com tipus de desplaçament"
+
+#: cp/decl.c:12909
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+msgstr "el paràmetre \"%D\" inclou %s per a la matriu \"%T\" de límit desconegut"
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr "constructor invàlid; tal vegada va voler dir \"%T (const %T&)\""
+
+#: cp/decl.c:13222
+msgid "`%D' must be a nonstatic member function"
+msgstr "\"%D\" deu ser una funció membre que no sigui static"
+
+#: cp/decl.c:13228
+msgid "`%D' must be either a non-static member function or a non-member function"
+msgstr "\"%D\" deu ser una funció membre no estàtic o una funció no membre"
+
+#: cp/decl.c:13245
+msgid "`%D' must have an argument of class or enumerated type"
+msgstr "\"%D\" deu tenir un argument de tipus classe o enumerat"
+
+#: cp/decl.c:13277
+#, c-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr "la conversió a %s%s mai usarà un operador de conversió de tipus"
+
+#. 13.4.0.3
+#: cp/decl.c:13284
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "ISO C++ prohibeix la sobrecàrrega de l'operador ?:"
+
+#: cp/decl.c:13334
+msgid "postfix `%D' must take `int' as its argument"
+msgstr "el postfix \"%D\" deu prendre \"int\" com el seu argument"
+
+#: cp/decl.c:13338
+msgid "postfix `%D' must take `int' as its second argument"
+msgstr "el postfix \"%D\" deu prendre \"int\" com el seu segon argument"
+
+#: cp/decl.c:13345
+msgid "`%D' must take either zero or one argument"
+msgstr "\"%D\" deu prendre zero o un arguments"
+
+#: cp/decl.c:13347
+msgid "`%D' must take either one or two arguments"
+msgstr "\"%D\" deu prendre un o dos arguments"
+
+#: cp/decl.c:13368
+msgid "prefix `%D' should return `%T'"
+msgstr "el prefix \"%D\" deu regressar \"%T\""
+
+#: cp/decl.c:13374
+msgid "postfix `%D' should return `%T'"
+msgstr "el postfix \"%D\" deu regressar \"%T\""
+
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr "\"%D\" deu prendre \"void\""
+
+#: cp/decl.c:13385 cp/decl.c:13393
+msgid "`%D' must take exactly one argument"
+msgstr "\"%D\" deu prendre un argument exactament"
+
+#: cp/decl.c:13395
+msgid "`%D' must take exactly two arguments"
+msgstr "\"%D\" deu prendre dos arguments exactament"
+
+#: cp/decl.c:13403
+msgid "user-defined `%D' always evaluates both arguments"
+msgstr "el \"%D\" definit per l'usuari sempre avalua ambdós arguments"
+
+#: cp/decl.c:13417
+msgid "`%D' should return by value"
+msgstr "\"%D\" deu regressar per valor"
+
+#: cp/decl.c:13429 cp/decl.c:13432
+msgid "`%D' cannot have default arguments"
+msgstr "\"%D\" no pot tenir arguments per omissió"
+
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
+msgstr "usant el nom de definició de tipus \"%D\" després de \"%s\""
+
+#: cp/decl.c:13481
+msgid "using template type parameter `%T' after `%s'"
+msgstr "usant el paràmetre de tipus patró \"%T\" després de \"%s\""
+
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "\"%s %T\" declara un tipus nou en l'àmbit del nom d'espai"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr " els noms de les classes bases depenents no són visibles per a la recerca de noms sense qualificar - per a referir-se al tipus heretat, utilitzi \"%s %T::%T\""
+
+#: cp/decl.c:13663
+msgid "use of enum `%#D' without previous declaration"
+msgstr "ús del enum \"%#D\" sense declaració prèvia"
+
+#: cp/decl.c:13749
+msgid "derived union `%T' invalid"
+msgstr "union derivada \"%T\" invàlida"
+
+#: cp/decl.c:13795
+msgid "base type `%T' fails to be a struct or class type"
+msgstr "el tipus base \"%T\" falla a ser un tipus struct o classe"
+
+#: cp/decl.c:13805
+msgid "base class `%T' has incomplete type"
+msgstr "la classe base \"%T\" té tipus de dada incompleta"
+
+#: cp/decl.c:13813
+msgid "recursive type `%T' undefined"
+msgstr "tipus recursivo \"%T\" sense definir"
+
+#: cp/decl.c:13815
+msgid "duplicate base type `%T' invalid"
+msgstr "tipus base duplicat \"%T\" invàlid"
+
+#: cp/decl.c:13926
+msgid "multiple definition of `%#T'"
+msgstr "definició múltiple de \"%#T\""
+
+#: cp/decl.c:13927
+msgid "previous definition here"
+msgstr "definició prèvia aquí"
+
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
+msgid "enumerator value for `%D' not integer constant"
+msgstr "el valor de enumerador per a \"%D\" no és una constant entera"
+
+#: cp/decl.c:14126
+msgid "overflow in enumeration values at `%D'"
+msgstr "desbordament en valors d'enumeració en \"%D\""
+
+#: cp/decl.c:14195
+msgid "return type `%#T' is incomplete"
+msgstr "el tipus de retorn \"%#T\" és un tipus de dada incompleta"
+
+#: cp/decl.c:14309
+msgid "semicolon missing after declaration of `%#T'"
+msgstr "manca punt i coma després de la declaració de \"%#T\""
+
+#: cp/decl.c:14330
+msgid "return type for `main' changed to `int'"
+msgstr "el tipus de retorn per a \"main\" va canviar a \"int\""
+
+#: cp/decl.c:14361
+msgid "`%D' implicitly declared before its definition"
+msgstr "\"%D\" declarat implícitament abans de la seva definició"
+
+#: cp/decl.c:14383 cp/typeck.c:6314
+msgid "`operator=' should return a reference to `*this'"
+msgstr "\"operator=\" deu retornar una referència a \"*this\""
+
+#: cp/decl.c:14643
+msgid "parameter `%D' declared void"
+msgstr "el paràmetre \"%D\" es va declarar void"
+
+#: cp/decl.c:15130
+msgid "`%D' is already defined in class `%T'"
+msgstr "\"%D\" ja es va definir en la classe \"%T\""
+
+#: cp/decl.c:15348
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr "la funció membre static \"%#D\" és declarada amb qualificadors de tipus"
+
+#: cp/decl2.c:153
+#, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr "qualificadors de tipus duplicats en la declaració %s"
+
+#: cp/decl2.c:192
+msgid "template `%#D' instantiated in file without #pragma interface"
+msgstr "es va instanciar el patró \"%#D\" en el fitxer sense #pragma interface"
+
+#: cp/decl2.c:198
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr "es va definir el patró \"%#D\" en el fitxer sense #pragma interface"
+
+#: cp/decl2.c:365
+msgid "name missing for member function"
+msgstr "falta el nom per a la funció membre"
+
+#. Something has gone very wrong. Assume we are mistakenly reducing
+#. an expression instead of a declaration.
+#: cp/decl2.c:428
+msgid "parser may be lost: is there a '{' missing somewhere?"
+msgstr "el decodificador tal vegada es va perdre: falta algun \"{\" en algun lloc?"
+
+#: cp/decl2.c:459 cp/decl2.c:473
+msgid "ambiguous conversion for array subscript"
+msgstr "conversió ambigua per a índex de matriu"
+
+#: cp/decl2.c:467
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr "tipus invàlids \"%T[%T]\" per a índex de matriu"
+
+#: cp/decl2.c:515
+msgid "type `%#T' argument given to `delete', expected pointer"
+msgstr "es va donar un argument de tipus \"%#T\" a \"delete\", s'esperava un punter"
+
+#: cp/decl2.c:523
+msgid "anachronistic use of array size in vector delete"
+msgstr "ús anacrònic de la grandària de la matriu desconeguda en vector delete"
+
+#: cp/decl2.c:533
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+msgstr "no es pot esborrar una funció. Solament els punters a objectes són arguments vàlids per a \"delete\""
+
+#: cp/decl2.c:540
+msgid "deleting `%T' is undefined"
+msgstr "esborrar \"%T\" està indefinit"
+
+#: cp/decl2.c:548
+msgid "deleting array `%#D'"
+msgstr "esborrant la matriu \"%#D\""
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+msgid "invalid declaration of member template `%#D' in local class"
+msgstr "declaració invàlida del patró membre \"%#D\" en la classe local"
+
+#: cp/decl2.c:591
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr "ús invàlid de \"virtual\" en la declaració de patró de \"%#D\""
+
+#: cp/decl2.c:601 cp/pt.c:2745
+msgid "template declaration of `%#D'"
+msgstr "declaració en patró de \"%#D\""
+
+#: cp/decl2.c:651
+msgid "Java method '%D' has non-Java return type `%T'"
+msgstr "el mètode Java \"%D\" té un tipus de retorn \"%T\" que no és de Java"
+
+#: cp/decl2.c:660
+msgid "Java method '%D' has non-Java parameter type `%T'"
+msgstr "el mètode Java \"%D\" té un tipus de paràmetre \"%T\" que no és de Java"
+
+#: cp/decl2.c:746
+msgid "prototype for `%#D' does not match any in class `%T'"
+msgstr "el prototip per a \"%#D\" no coincideix amb cap altre en la classe \"%T\""
+
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr "la classe local \"%#T\" no deu tenir el membre static \"%#D\""
+
+#: cp/decl2.c:836
+msgid "initializer invalid for static member with constructor"
+msgstr "inicializador invàlid per al membre static amb constructor"
+
+#: cp/decl2.c:839
+msgid "(an out of class initialization is required)"
+msgstr "(es requereix una inicialització fora de la classe)"
+
+#: cp/decl2.c:898
+msgid "invalid data member initialization"
+msgstr "inicialització de la dada membre invàlida"
+
+#: cp/decl2.c:901
+msgid "(use `=' to initialize static data members)"
+msgstr "(usi \"=\" per a inicialitzar membres de dades static)"
+
+#: cp/decl2.c:947
+msgid "member `%D' conflicts with virtual function table field name"
+msgstr "el membre \"%D\" té conflictes amb el nom de camp de la matriu de funcions virtuals"
+
+#: cp/decl2.c:967
+msgid "`%D' is already defined in `%T'"
+msgstr "\"%D\" ja està definit en \"%T\""
+
+#: cp/decl2.c:1014
+msgid "field initializer is not constant"
+msgstr "el inicializador del camp no és constant"
+
+#: cp/decl2.c:1038
+msgid "`asm' specifiers are not permitted on non-static data members"
+msgstr "no es permeten els especificadores \"asm\" en membres de dades no estàtiques"
+
+#: cp/decl2.c:1090
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr "no es pot declarar \"%D\" que sigui un tipus de camp de bits"
+
+#: cp/decl2.c:1100
+msgid "cannot declare bit-field `%D' with function type"
+msgstr "no es pot declarar el camp de bits \"%D\" amb un tipus de funció"
+
+#: cp/decl2.c:1107
+msgid "`%D' is already defined in the class %T"
+msgstr "\"%D\" ja està definit en la classe %T"
+
+#: cp/decl2.c:1114
+msgid "static member `%D' cannot be a bit-field"
+msgstr "el membre static \"%D\" no pot ser un camp de bits"
+
+#: cp/decl2.c:1201
+msgid "initializer specified for non-member function `%D'"
+msgstr "es va especificar un inicialitzador per a la funció no-membre \"%D\""
+
+#: cp/decl2.c:1205
+msgid "invalid initializer for virtual method `%D'"
+msgstr "inicialitzador invàlid per al mètode virtual \"%D\""
+
+#: cp/decl2.c:1319
+msgid "anonymous struct not inside named type"
+msgstr "struct anònim no es troba dintre d'un tipus nomenat"
+
+#: cp/decl2.c:1415
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr "els agregats anònims d'abast de nom d'espai deuen ser static"
+
+#: cp/decl2.c:1428
+msgid "anonymous aggregate with no members"
+msgstr "agregat anònim sense membres"
+
+#: cp/decl2.c:1497
+msgid "`operator new' must return type `%T'"
+msgstr "\"operator new\" deu retornar el tipus \"%T\""
+
+#: cp/decl2.c:1505
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr "\"operator new\" pren el tipus \"size_t\" (\"%T\") com primer argument"
+
+#: cp/decl2.c:1532
+msgid "`operator delete' must return type `%T'"
+msgstr "\"operator delete\" deu retornar el tipus \"%T\""
+
+#: cp/decl2.c:1540
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr "\"operator delete\" pren el tipus \"%T\" com primer argument"
+
+#. Overflow occurred. That means there are at least 4 billion
+#. initialization functions.
+#: cp/decl2.c:2282
+msgid "too many initialization functions required"
+msgstr "es requereixen massa funcions d'inicialització"
+
+#: cp/decl2.c:3006
+msgid "inline function `%D' used but never defined"
+msgstr "s'usa la funció inline \"%D\" però mai es va definir"
+
+#: cp/decl2.c:3135
+msgid "use of old-style cast"
+msgstr "ús de la conversió d'estil antic"
+
+#: cp/decl2.c:3860
+msgid "use of `%D' is ambiguous"
+msgstr "l'ús de \"%D\" és ambigu"
+
+#: cp/decl2.c:3861
+msgid " first declared as `%#D' here"
+msgstr " declarat inicialment com \"%#D\" aquí"
+
+#: cp/decl2.c:3864
+msgid " also declared as `%#D' here"
+msgstr " també declarat com \"%#D\" aquí"
+
+#: cp/decl2.c:3879
+msgid "`%D' denotes an ambiguous type"
+msgstr "\"%D\" denota un tipus ambigu"
+
+#: cp/decl2.c:3880
+msgid " first type here"
+msgstr " primer tipus aquí"
+
+#: cp/decl2.c:3881
+msgid " other type here"
+msgstr " altre tipus aquí"
+
+#: cp/decl2.c:3982
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr "la declaració de \"%D\" no està en un espai de noms al voltant de \"%D\""
+
+#: cp/decl2.c:4016
+msgid "`%D' should have been declared inside `%D'"
+msgstr "\"%D\" deuria ser declarat dintre de \"%D\""
+
+#: cp/decl2.c:4152
+msgid "`%D' is not a function,"
+msgstr "\"%D\" no és una funció,"
+
+#: cp/decl2.c:4153
+msgid " conflict with `%D'"
+msgstr " té conflicte amb \"%D\""
+
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+msgid "unknown namespace `%D'"
+msgstr "espai de noms \"%D\" desconegut"
+
+#: cp/decl2.c:4507 cp/decl2.c:4794
+msgid "`%T' is not a namespace"
+msgstr "\"%T\" no és un nom d'espai"
+
+#: cp/decl2.c:4509
+msgid "`%D' is not a namespace"
+msgstr "\"%D\" no és un nom d'espai"
+
+#: cp/decl2.c:4518
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr "una declaració d'ús no pot especificar un identificador de patró. Intenti \"using %D\""
+
+#: cp/decl2.c:4532
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr "no es permet l'espai de noms \"%D\" en la declaració d'ús"
+
+#: cp/decl2.c:4561
+msgid "`%D' not declared"
+msgstr "no es va declarar \"%D\""
+
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+msgid "`%D' is already declared in this scope"
+msgstr "\"%D\" ja es va declarar en aquest àmbit"
+
+#: cp/decl2.c:4646
+msgid "using declaration `%D' introduced ambiguous type `%T'"
+msgstr "l'ús de la declaració \"%D\" va introduir el tipus ambigu \"%T\""
+
+#: cp/decl2.c:4740
+msgid "using-declaration for non-member at class scope"
+msgstr "declaració d'ús per a un no membre en l'àmbit de la classe"
+
+#: cp/decl2.c:4746
+msgid "using-declaration for destructor"
+msgstr "declaració d'ús per al destructor"
+
+#: cp/decl2.c:4752
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+msgstr "una declaració d'ús no pot especificar un aneu de patró. Intenti \"using %T::%D\""
+
+#: cp/decl2.c:4788
+msgid "namespace `%T' undeclared"
+msgstr "espai de noms \"%T\" sense declarar"
+
+#: cp/decl2.c:4817
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr "falta l'argument per omissió per al paràmetre %P de \"%+#D\""
+
+#: cp/decl2.c:4941
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr "s'ignora la qualificació extra \"%T::\" en el membre \"%D\""
+
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
+msgstr "\"%T\" no té una classe o union cridat \"%D\""
+
+#: cp/decl2.c:4963
+msgid "`%T' is not a class or union type"
+msgstr "\"%T\" no és una classe o tipus union"
+
+#: cp/decl2.c:4977
+msgid "template argument is required for `%T'"
+msgstr "es requereix un argument de patró per a \"%T\""
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "declaració de \"%D\" en \"%D\" la qual no inclou a \"%D\""
+
+#: cp/error.c:35
+#, c-format
+msgid "`%s' not supported by %s"
+msgstr "\"%s\" no té suport per a %s"
+
+#: cp/error.c:571
+#, c-format
+msgid "<anonymous %s>"
+msgstr "<%s anònim>"
+
+#: cp/error.c:810
+#, c-format
+msgid "(static %s for %s)"
+msgstr "(%s static per a %s)"
+
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
+#, c-format
+msgid "In %s `%s':"
+msgstr "En %s \"%s\":"
+
+#: cp/error.c:2530
+#, c-format
+msgid "%s: In instantiation of `%s':\n"
+msgstr "%s: En la instanciació de \"%s\":\n"
+
+#: cp/error.c:2554
+#, c-format
+msgid "%s:%d: instantiated from `%s'\n"
+msgstr "%s:%d: instanciat des de \"%s\"\n"
+
+#: cp/error.c:2559
+#, c-format
+msgid "%s:%d: instantiated from here\n"
+msgstr "%s:%d: instanciat des d'aquí\n"
+
+#. damn ICE suppression
+#: cp/error.c:2713
+#, c-format
+msgid "unexpected letter `%c' in locate_error\n"
+msgstr "lletra \"%c\" inesperada en locate_error\n"
+
+#. Can't throw a reference.
+#: cp/except.c:240
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
+msgstr "el tipus \"%T\" no està permès en \"throw\" o \"catch\" de Java"
+
+#: cp/except.c:251
+msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+msgstr "cridada a \"catch\" o \"throw\" de Java amb \"jthrowable\" sense definir"
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+msgid "type `%T' is not derived from `java::lang::Throwable'"
+msgstr "el tipus \"%T\" no és derivat de \"java::lang::Throwable\""
+
+#: cp/except.c:322
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr "barrejant \"catches\" de C++ i Java en una sola unitat de traducció"
+
+#: cp/except.c:639
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "llançant NULL, que té un tipus integral, no un tipus punter"
+
+#: cp/except.c:730
+msgid " in thrown expression"
+msgstr " en expressió thrown"
+
+#: cp/except.c:856
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+msgstr "no es pot usar l'expressió \"%E\" del tipus de classe abstracta \"%T\" en les expressions thrown"
+
+#: cp/except.c:944
+msgid "exception of type `%T' will be caught"
+msgstr "l'excepció del tipus \"%T\" serà atrapada"
+
+#: cp/except.c:947
+msgid " by earlier handler for `%T'"
+msgstr " per un gestor anterior per a \"%T\""
+
+#: cp/except.c:968
+msgid "`...' handler must be the last handler for its try block"
+msgstr "el gestor \"...\" deu ser l'últim gestor per al seu bloc try"
+
+#: cp/friend.c:159
+msgid "`%D' is already a friend of class `%T'"
+msgstr "\"%D\" ja és un friend de la classe \"%T\""
+
+#: cp/friend.c:161
+msgid "previous friend declaration of `%D'"
+msgstr "declaració friend prèvia de \"%D\""
+
+#: cp/friend.c:206
+msgid "invalid type `%T' declared `friend'"
+msgstr "el tipus invàlid \"%T\" va ser declarat \"friend\""
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+msgid "partial specialization `%T' declared `friend'"
+msgstr "l'especialització parcial \"%T\" es va declarar \"friend\""
+
+#: cp/friend.c:231
+msgid "class `%T' is implicitly friends with itself"
+msgstr "la classe \"%T\" és implícitament friend amb si mateixa"
+
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+msgid "typename type `%#T' declared `friend'"
+msgstr "el tipus de nom de tipus \"%#T\" es va declarar \"friend\""
+
+#. template <class T> friend class T;
+#: cp/friend.c:255
+msgid "template parameter type `%T' declared `friend'"
+msgstr "el tipus de paràmetre de patró \"%T\" es va declarar \"friend\""
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+msgid "`%#T' is not a template"
+msgstr "\"%#T\" no és un patró"
+
+#: cp/friend.c:276
+msgid "`%T' is already a friend of `%T'"
+msgstr "\"%T\" ja és un friend de \"%T\""
+
+#: cp/friend.c:376
+msgid "member `%D' declared as friend before type `%T' defined"
+msgstr "el membre \"%D\" és declarat friend abans que es defineixi el tipus \"%T\""
+
+#: cp/friend.c:431
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr "la declaració friend \"%#D\" declara una funció que no és patró"
+
+#: cp/friend.c:434
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr "(si aquesta no és la seva intenció, asseguri's qu'el patró de la funció ja ha estat declarada i agregui <> aquí després del nom de la funció) -Wno-non-template-friend desactiva aquest avís"
+
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, c-format
+msgid "argument to `%s' missing\n"
+msgstr "falta l'argument per a `%s'\n"
+
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
+msgid "default-initialization of `%#D', which has reference type"
+msgstr "l'inicialització per omissió de \"%#D\", el qual té el tipus de referència"
+
+#: cp/init.c:389
+msgid "uninitialized reference member `%D'"
+msgstr "membre referència \"%D\" sense inicialitzar"
+
+#: cp/init.c:397
+msgid "initializer list treated as compound expression"
+msgstr "la llista d'inicialitzadors es tracta com una expressió compostada"
+
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
+msgstr "\"%D\" s'inicialitzarà després"
+
+#: cp/init.c:541
+msgid "base `%T' will be initialized after"
+msgstr "la base \"%T\" s'inicialitzarà després"
+
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr " \"#%D\""
+
+#: cp/init.c:546
+msgid " base `%T'"
+msgstr " base \"%T\""
+
+#: cp/init.c:564
+msgid "multiple initializations given for base `%T'"
+msgstr "es van donar inicialitzacions múltiples per a la base \"%T\""
+
+#: cp/init.c:631
+msgid "initializations for multiple members of `%T'"
+msgstr "inicialitzacions per a múltiples membres de \"%T\""
+
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+msgstr "la classe base \"%#T\" deu ser inicialitzada explícitament en la còpia del constructor"
+
+#: cp/init.c:926
+msgid "class `%T' does not have any field named `%D'"
+msgstr "la classe \"%T\" no té cap camp cridat \"%D\""
+
+#: cp/init.c:932
+msgid "field `%#D' is static; the only point of initialization is its definition"
+msgstr "el camp \"%#D\" és static; l'únic punt d'inicialització és la seva definició"
+
+#: cp/init.c:965
+msgid "unnamed initializer for `%T', which has no base classes"
+msgstr "inicialitzador sense nom per a \"%T\", el qual no té una classe base"
+
+#: cp/init.c:972
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
+msgstr "inicialitzador sense nom per a \"%T\", el qual usa herència múltiple"
+
+#: cp/init.c:1007
+msgid "type `%D' is not a direct or virtual base of `%T'"
+msgstr "el tipus \"%D\" no és una base directa o virtual de \"%T\""
+
+#: cp/init.c:1010
+msgid "type `%D' is not a direct base of `%T'"
+msgstr "el tipus \"%D\" no és una base directa de \"%T\""
+
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+msgid "bad array initializer"
+msgstr "inicialitzador de matriu erroni"
+
+#: cp/init.c:1311
+msgid "`%T' is not an aggregate type"
+msgstr "\"%T\" no és un tipus agregat"
+
+#: cp/init.c:1334
+msgid "`%T' fails to be an aggregate typedef"
+msgstr "\"%T\" falla a ser un tipus agregat"
+
+#: cp/init.c:1343
+msgid "type `%T' is of non-aggregate type"
+msgstr "el tipus \"%T\" és d'un tipus no agregat"
+
+#: cp/init.c:1446
+msgid "cannot call destructor `%T::~%T' without object"
+msgstr "no es pot cridar al destructor \"%T::%T\" sense un objecte"
+
+#: cp/init.c:1490
+msgid "invalid use of non-static field `%D'"
+msgstr "ús invàlid del camp no static \"%D\""
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+msgid "invalid use of member `%D'"
+msgstr "ús invàlid del membre \"%D\""
+
+#: cp/init.c:1509
+msgid "no method `%T::%D'"
+msgstr "no hi ha un mètode \"%T::%D\""
+
+#: cp/init.c:1602
+msgid "incomplete type `%T' does not have member `%D'"
+msgstr "el tipus incomplet \"%T\" no té al membre \"%D\""
+
+#: cp/init.c:1676
+msgid "`%D' is not a member of type `%T'"
+msgstr "\"%D\" no és un membre de tipus \"%T\""
+
+#: cp/init.c:1695
+msgid "invalid pointer to bit-field `%D'"
+msgstr "punter invàlid al camp de bit \"%D\""
+
+#: cp/init.c:1734
+msgid "object missing in use of pointer-to-member construct"
+msgstr "manca objecte en l'ús d'una consctrucció que punta a membres"
+
+#: cp/init.c:1774
+msgid "member `%D' is non-static but referenced as a static member"
+msgstr "el membre \"%D\" no és static però és referenciat com un membre static"
+
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
+msgid "at this point in file"
+msgstr "en aquest punt en el fitxer"
+
+#: cp/init.c:1813
+#, c-format
+msgid "object missing in `%E'"
+msgstr "falta un objecte en \"%E\""
+
+#: cp/init.c:1944
+msgid "new of array type fails to specify size"
+msgstr "new de matriu falla a l'especificar la grandària"
+
+#: cp/init.c:1955
+msgid "size in array new must have integral type"
+msgstr "la grandària de la matriu nova deu tenir un tipus integral"
+
+#: cp/init.c:1961
+msgid "zero size array reserves no space"
+msgstr "la matriu de grandària zero no reserva espai"
+
+#: cp/init.c:2026
+msgid "new cannot be applied to a reference type"
+msgstr "new no pot ser aplicat a un tipus de referència"
+
+#: cp/init.c:2032
+msgid "new cannot be applied to a function type"
+msgstr "new no pot ser aplicat a una funcció de referència"
+
+#: cp/init.c:2079
+msgid "call to Java constructor, while `jclass' undefined"
+msgstr "cridada a constructor Java, mentre \"jclass\" està indefinit"
+
+#: cp/init.c:2095
+msgid "can't find class$"
+msgstr "no es pot trobar class$"
+
+#: cp/init.c:2209
+msgid "invalid type `void' for new"
+msgstr "tipus \"void\" invàlid per a new"
+
+#: cp/init.c:2261
+#, c-format
+msgid "call to Java constructor with `%s' undefined"
+msgstr "cridada a constructor Java amb \"%s\" sense definir"
+
+#: cp/init.c:2369
+msgid "ISO C++ forbids initialization in array new"
+msgstr "ISO C++ prohibeix la inicialització en la matriu new"
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
+msgid "initializer list being treated as compound expression"
+msgstr "es tracta la llista d'inicialitzadors com una expressió composada"
+
+#: cp/init.c:2397
+msgid "ISO C++ forbids aggregate initializer to new"
+msgstr "ISO C++ prohibeix un inicialitzador agregat per a new"
+
+#: cp/init.c:2485
+msgid "uninitialized const in `new' of `%#T'"
+msgstr "const sense inicialitzar en \"new\" de \"%#T\""
+
+#: cp/init.c:2864
+msgid "initializer ends prematurely"
+msgstr "el inicialitzador acaba prematurament"
+
+#: cp/init.c:2934
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr "no es poden inicialitzar matrius multidimensionals amb el inicialitzador"
+
+#: cp/init.c:3124
+msgid "unknown array size in delete"
+msgstr "grandària de matriu desconeguda en delete"
+
+#: cp/init.c:3389
+msgid "type to vector delete is neither pointer or array type"
+msgstr "el tipus de vector delete no és del tipus punter ni matriu"
+
+#: cp/lex.c:136
+msgid "type name expected before `*'"
+msgstr "s'esperava nom de tipus abans de \"*\""
+
+#: cp/lex.c:158
+msgid "cannot declare references to references"
+msgstr "no es poden declarar referències a referències"
+
+#: cp/lex.c:163
+msgid "cannot declare pointers to references"
+msgstr "no es poden declarar punter a referències"
+
+#: cp/lex.c:167
+msgid "type name expected before `&'"
+msgstr "s'esperava nom de tipus abans de \"&\""
+
+#: cp/lex.c:894
+#, c-format
+msgid "semicolon missing after %s declaration"
+msgstr "manca punt i coma després de la declaració %s"
+
+#: cp/lex.c:897
+msgid "semicolon missing after declaration of `%T'"
+msgstr "manca punt i coma després de la declaració de \"%T\""
+
+#: cp/lex.c:945
+#, c-format
+msgid "junk at end of #pragma %s"
+msgstr "escombraries al final de #pragma %s"
+
+#: cp/lex.c:952
+#, c-format
+msgid "invalid #pragma %s"
+msgstr "#pragma %s invàlid"
+
+#: cp/lex.c:961
+msgid "#pragma vtable no longer supported"
+msgstr "#pragma vtable ja no té suport"
+
+#: cp/lex.c:1038
+#, c-format
+msgid "#pragma implementation for %s appears after file is included"
+msgstr "implementació de #pragma per a %s apareix després que el fitxer és inclòs"
+
+#: cp/lex.c:1063
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr "escombraries al final del #pragma GCC java_exceptions"
+
+#: cp/lex.c:1107
+msgid "`%D' not defined"
+msgstr "\"%D\" no està definit"
+
+#: cp/lex.c:1110
+msgid "`%D' was not declared in this scope"
+msgstr "\"%D\" no es va declarar en aquest àmbit"
+
+#: cp/lex.c:1118
+msgid "`%D' undeclared (first use this function)"
+msgstr "\"%D\" sense declarar (primer ús en aquesta funció)"
+
+#: cp/lex.c:1122
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+msgstr "(Cada identificador sense declarar és reportat només una vegada per a cada funció en el qual apareix.)"
+
+#: cp/lex.c:1242
+msgid "`::%D' undeclared (first use here)"
+msgstr "\"::%D\" sense declarar (primer ús aquí)"
+
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr ""
+
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr ""
+
+#: cp/method.c:154
+msgid "invalid use of member `%D' in static member function"
+msgstr "ús invàlid del membre \"%D\" en la funció membre static"
+
+#: cp/method.c:216
+msgid "use of namespace `%D' as expression"
+msgstr "ús de l'espai de noms \"%D\" com una expressió"
+
+#: cp/method.c:221
+msgid "use of class template `%T' as expression"
+msgstr "ús de la plantilla de classe \"%T\" com una expressió"
+
+#: cp/method.c:234
+#, c-format
+msgid "use of %s from containing function"
+msgstr "ús de %s des d'una funció contenidora"
+
+#: cp/method.c:237
+msgid " `%#D' declared here"
+msgstr " \"%#D\" declarat aquí"
+
+#: cp/method.c:255
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+msgstr "la petició pel membre \"%D\" és ambigua en la xarxa d'herència múltiple"
+
+#: cp/method.c:458
+msgid "generic thunk code fails for method `%#D' which uses `...'"
+msgstr "el codi de thunk genèric va fallar per al mètode \"%#D\" que utilitza \"...\""
+
+#: cp/method.c:697
+msgid "non-static const member `%#D', can't use default assignment operator"
+msgstr "el membre const \"%#D\" que no és static, no pot usar l'operador d'assignació per omissió"
+
+#: cp/method.c:702
+msgid "non-static reference member `%#D', can't use default assignment operator"
+msgstr "el membre de referència \"%#D\" que no és static, no pot usar l'operador d'assignació per omissió"
+
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
+msgstr "es va usar la marca \"%s\" al nomenar a\"%#T\""
+
+#: parse.y:542
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr "la paraula clau \"export\" no està implementada, i serà ignorada"
+
+#: parse.y:646
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
+msgstr "l'ús de l'especificació d'enllaçat \"%D\" és diferent de l'especificació prèvia \"%D\""
+
+#: parse.y:943
+msgid "no base or member initializers given following ':'"
+msgstr ""
+
+#: parse.y:984
+msgid "anachronistic old style base class initializer"
+msgstr "inicialitzador de classe base d'estil antic anacrònic"
+
+#. Handle `Class<Class<Type>>' without space in the `>>'
+#: parse.y:1117
+msgid "`>>' should be `> >' in template class name"
+msgstr "\">>\" deu ser \"> >\" en el nom de classe del patró"
+
+#: parse.y:1164
+msgid "use of template qualifier outside template"
+msgstr "ús del qualificador de patró fora del patró"
+
+#: parse.y:1193 parse.y:1202
+#, c-format
+msgid "ISO C++ forbids an empty condition for `%s'"
+msgstr "ISO C++ prohibeix una condició buida per a \"%s\""
+
+#: parse.y:1225
+msgid "definition of class `%T' in condition"
+msgstr "definició de la classe \"%T\" en una condició"
+
+#: parse.y:1227
+msgid "definition of enum `%T' in condition"
+msgstr "definició del enum \"%T\" en una condició"
+
+#: parse.y:1238
+msgid "definition of array `%#D' in condition"
+msgstr "definició de la matriu \"%#D\" en una condició"
+
+#: parse.y:1351
+msgid "old style placement syntax, use () instead"
+msgstr "sintaxi d'ubicació d'estil antic, usi en el seu lloc ()"
+
+#: parse.y:1362
+msgid "`%T' is not a valid expression"
+msgstr "\"%T\" no és una expressió vàlida"
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr "inicialització de l'expressió new amb \"=\""
+
+#: parse.y:1395
+msgid "ISO C++ forbids compound literals"
+msgstr "ISO C++ prohibeix literals composats"
+
+#: parse.y:1642
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr "ISO C++ prohibeix grups de parèntesis dintre de les expressions"
+
+#: parse.y:1721
+msgid "invalid use of template `%D'"
+msgstr "ús invàlid del patró \"%D\""
+
+#: parse.y:2053 parse.y:2068
+msgid "sigof type specifier"
+msgstr "especificador de tipus sigof"
+
+#: parse.y:2058
+msgid "`sigof' applied to non-aggregate expression"
+msgstr "\"sigof\" aplicat a una expressió no agregada"
+
+#: parse.y:2073
+msgid "`sigof' applied to non-aggregate type"
+msgstr "\"sigof\" aplicat a un tipus no agregat"
+
+#: parse.y:2339
+msgid "using `typename' outside of template"
+msgstr "usant \"typename\" fora de la plantilla"
+
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
+#, c-format
+msgid "storage class specifier `%s' not allowed after struct or class"
+msgstr "no es permet el especificador de classe d'emmagatzematge \"%s\" després de struct o class"
+
+#: parse.y:2419
+#, c-format
+msgid "type specifier `%s' not allowed after struct or class"
+msgstr "no es permet el especificador de tipus \"%s\" després de struct o class"
+
+#: parse.y:2421
+#, c-format
+msgid "type qualifier `%s' not allowed after struct or class"
+msgstr "no es permet el qualificador de tipus \"%s\" després de struct o class"
+
+#: parse.y:2423
+msgid "no body nor ';' separates two class, struct or union declarations"
+msgstr "no hi ha cos ni \";\" separant dues declaracions class, struct o union"
+
+#: parse.y:2553
+msgid "no bases given following `:'"
+msgstr "no hi ha bases donat seguint \":\""
+
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
+msgstr "accés \"%D\""
+
+#: parse.y:2589
+msgid "multiple access specifiers"
+msgstr "specificadors d'accés múltiples"
+
+#: parse.y:2607
+msgid "multiple `virtual' specifiers"
+msgstr "specificadors \"virtual\" múltiples"
+
+#: parse.y:2644
+msgid "missing ';' before right brace"
+msgstr "falta \";\" abans de la clau dreta"
+
+#: parse.y:2865
+msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+msgstr "ISO C++ prohibeix les dimensions de matriu amb tipus amb parèntesi en new"
+
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+msgid "`%T' is not a class or namespace"
+msgstr "\"%T\" no és una classa o un espai de noms"
+
+#: parse.y:3377
+msgid "ISO C++ forbids label declarations"
+msgstr "ISO C++ prohibeix declaracions d'etiquetes"
+
+#: parse.y:3537
+msgid "ISO C++ forbids computed gotos"
+msgstr "ISO C++ prohibeix gotos calculats"
+
+#: parse.y:3545
+msgid "label must be followed by statement"
+msgstr "l'etiqueta deu ser seguida d'una declaració"
+
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr "es deu tenir almenys un catch per cada bloc try"
+
+#: parse.y:3650
+msgid "ISO C++ forbids compound statements inside for initializations"
+msgstr "ISO C++ prohibeix les declaracions compostoses internes per a inicialitzacions"
+
+#. This helps us recover from really nasty
+#. parse errors, for example, a missing right
+#. parenthesis.
+#: parse.y:3737 parse.y:3747
+msgid "possibly missing ')'"
+msgstr "possible \")\" faltant"
+
+#: parse.y:3840
+msgid "type specifier omitted for parameter"
+msgstr "especificador de tipus omès per al paràmetre"
+
+#: parse.y:3849
+#, c-format
+msgid "`%E' is not a type, use `typename %E' to make it one"
+msgstr "\"%E\" no és un tipus, usi \"typename %E\" per a fer-lo un tipus"
+
+#: parse.y:3851
+msgid "no type `%D' in `%T'"
+msgstr "no hi ha un tipus \"%D\" en \"%T\""
+
+#: parse.y:3854
+#, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr "es va ometre el especificador per al paràmetre \"%E\""
+
+#: parse.y:3862
+msgid "'%D' is used as a type, but is not defined as a type."
+msgstr "s'usa \"%D\" com un tipus, però no està definit com un tipus."
+
+#: cp/pt.c:284
+msgid "data member `%D' cannot be a member template"
+msgstr "les dades membres \"%D\" no poden ser un patró membre"
+
+#: cp/pt.c:296
+msgid "invalid member template declaration `%D'"
+msgstr "declaració del patró membre \"%D\" invàlida"
+
+#: cp/pt.c:691
+msgid "explicit specialization in non-namespace scope `%D'"
+msgstr "especialització explícita en l'àmbit \"%D\" que no és espai de noms"
+
+#: cp/pt.c:703
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "les patrons de classe contingudes no són especialitzades explícitament"
+
+#: cp/pt.c:792 cp/pt.c:833
+msgid "specializing `%#T' in different namespace"
+msgstr "especialitzant \"%#T\" en diferents espais de noms"
+
+#: cp/pt.c:793 cp/pt.c:834
+msgid " from definition of `%#D'"
+msgstr " de la definició de \"%#D\""
+
+#: cp/pt.c:801
+msgid "specialization of `%T' after instantiation"
+msgstr "especialització de \"%T\" després de la instanciació"
+
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "especialització de \"%T\" després de la instanciació \"%T\""
+
+#: cp/pt.c:860
+msgid "explicit specialization of non-template `%T'"
+msgstr "especialització explícita de \"%T\" que no és patró"
+
+#: cp/pt.c:992
+msgid "specialization of %D after instantiation"
+msgstr "especialització de %D després de la instanciació"
+
+#: cp/pt.c:1096
+msgid "%s %+#D"
+msgstr "%s %+#D"
+
+#: cp/pt.c:1147
+msgid "`%D' is not a function template"
+msgstr "\"%D\" no és un patró de funció"
+
+#: cp/pt.c:1286
+msgid "template-id `%D' for `%+D' does not match any template declaration"
+msgstr "l'idenfificador de patró \"%D\" per a \"%+D\" no coincideix amb cap declaració de patró"
+
+#: cp/pt.c:1294
+msgid "ambiguous template specialization `%D' for `%+D'"
+msgstr "especialització de patró ambigua \"%D\" per a \"%+D\""
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+msgid "template-id `%D' in declaration of primary template"
+msgstr "identificador de patró \"%D\" en la declaració del patró primari"
+
+#: cp/pt.c:1534
+msgid "template parameter list used in explicit instantiation"
+msgstr "es va usar una llista de paràmetres de patró en una instanciació explícita"
+
+#: cp/pt.c:1540
+msgid "definition provided for explicit instantiation"
+msgstr "es proveeix una definició per a instanciació explícita"
+
+#: cp/pt.c:1546
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr "massa llistes de paràmetres de patró en la declaració de \"%D\""
+
+#: cp/pt.c:1562
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr "molt poques llistes de paràmetres de patró en la declaració de \"%D\""
+
+#: cp/pt.c:1579
+msgid "explicit specialization not preceded by `template <>'"
+msgstr "especialització explícita no precedida per \"template <>\""
+
+#: cp/pt.c:1592
+msgid "partial specialization `%D' of function template"
+msgstr "especialització parcial \"%D\" del patró de funció"
+
+#: cp/pt.c:1624
+msgid "default argument specified in explicit specialization"
+msgstr "es va especificar un argument per omissió en l'especialització explícita"
+
+#: cp/pt.c:1628
+msgid "template specialization with C linkage"
+msgstr "especialització de patró amb enllaç C"
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+msgid "specialization of implicitly-declared special member function"
+msgstr "especialització de la funció membre especial declarada implícitament"
+
+#: cp/pt.c:1759
+msgid "no member function `%D' declared in `%T'"
+msgstr "la funció no membre \"%D\" es va declarar en \"%T\""
+
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr "massa llistes de paràmetres de patró en la declaració de \"%T\""
+
+#: cp/pt.c:2005
+msgid " shadows template parm `%#D'"
+msgstr " enfosquen el paràmetre de patró \"%#D\""
+
+#: cp/pt.c:2409
+msgid "template parameters not used in partial specialization:"
+msgstr "no s'usen els paràmetres de patró en l'especialització parcial:"
+
+#: cp/pt.c:2413
+msgid " `%D'"
+msgstr " \"%D\""
+
+#: cp/pt.c:2425
+msgid "partial specialization `%T' does not specialize any template arguments"
+msgstr "l'especialització parcial \"%T\" no especialitza cap argument de patró"
+
+#: cp/pt.c:2450
+#, c-format
+msgid "template argument `%E' involves template parameter(s)"
+msgstr "l'argument de patró \"%E\" involucra el(s) paràmetre(s) de patró"
+
+#: cp/pt.c:2494
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+msgstr "el tipus \"%T\" de l'argument de patró \"%E\" depèn del(s) paràmetre(s) de patró"
+
+#: cp/pt.c:2582
+msgid "no default argument for `%D'"
+msgstr "no hi ha un argument per omissió per a \"%D\""
+
+#: cp/pt.c:2735
+msgid "template with C linkage"
+msgstr "patró amb enllaç C"
+
+#: cp/pt.c:2738
+msgid "template class without a name"
+msgstr "classe de patró sense nom"
+
+#: cp/pt.c:2815
+msgid "`%D' does not declare a template type"
+msgstr "\"%D\" no declara un tipus de patró"
+
+#: cp/pt.c:2821
+msgid "template definition of non-template `%#D'"
+msgstr "definició de patró de \"%#D\" que no és patró"
+
+#: cp/pt.c:2862
+msgid "expected %d levels of template parms for `%#D', got %d"
+msgstr "s'esperaven %d nivells de paràmetres de patró per a \"%#D\", es van obtenir %d"
+
+#: cp/pt.c:2874
+msgid "got %d template parameters for `%#D'"
+msgstr "es van obtenir %d paràmetres de patró per a \"%#D\""
+
+#: cp/pt.c:2877
+msgid "got %d template parameters for `%#T'"
+msgstr "es van obtenir %d paràmetres de patró per a \"%#T\""
+
+#: cp/pt.c:2879
+#, c-format
+msgid " but %d required"
+msgstr " però es requereixen %d"
+
+#: cp/pt.c:2962
+msgid "`%T' is not a template type"
+msgstr "\"%T\" no és un tipus patró"
+
+#: cp/pt.c:2978
+msgid "previous declaration `%D'"
+msgstr "declaració prèvia de \"%D\""
+
+#: cp/pt.c:2979
+#, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr "es van usar %d paràmetre%s de patró en lloc de %d"
+
+#: cp/pt.c:2995
+msgid "template parameter `%#D'"
+msgstr "paràmetre de patró \"%#D\""
+
+#: cp/pt.c:2996
+msgid "redeclared here as `%#D'"
+msgstr "redeclarat aquí com \"%#D\""
+
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+msgid "redefinition of default argument for `%#D'"
+msgstr "redefinició de l'argument per omissió per a \"%#D\""
+
+#: cp/pt.c:3007
+msgid " original definition appeared here"
+msgstr " la definició original apareix aquí"
+
+#: cp/pt.c:3100
+#, c-format
+msgid "`%E' is not a valid template argument"
+msgstr "\"%E\" no és un argument de patró vàlid"
+
+#: cp/pt.c:3104
+msgid "it must be the address of a function with external linkage"
+msgstr "deu ser l'adreça d'una funció amb enllaç extern"
+
+#: cp/pt.c:3106
+msgid "it must be the address of an object with external linkage"
+msgstr "deu ser l'adreça d'un objecte amb enllaç extern"
+
+#: cp/pt.c:3110
+msgid "it must be a pointer-to-member of the form `&X::Y'"
+msgstr "deu ser un punter-a-membre de la forma \"&X::I\""
+
+#: cp/pt.c:3121
+#, c-format
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+msgstr "la cadena literal %E no és un argument vàlid de patró perquè és l'adreça d'un objecte amb enllaç estàtic"
+
+#: cp/pt.c:3133
+#, c-format
+msgid "address of non-extern `%E' cannot be used as template argument"
+msgstr "no es pot usar l'adreça de \"%E\" que no és extern com un argument de patró"
+
+#: cp/pt.c:3144
+#, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr "\"%E\" que no és constant no es pot usar com un argument de patró"
+
+#: cp/pt.c:3151
+#, c-format
+msgid "object `%E' cannot be used as template argument"
+msgstr "l'objecte \"%E\" no es pot usar com un argument de patró"
+
+#: cp/pt.c:3526
+#, c-format
+msgid "to refer to a type member of a template parameter, use `typename %E'"
+msgstr "per a fer referència a un tipus membre d'un paràmetre de patró, usi \"typename %E\""
+
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+msgstr "no coincideix el tipus/valor en l'argument %d en la llista de paràmetres de patró per a \"%D\""
+
+#: cp/pt.c:3542
+msgid " expected a constant of type `%T', got `%T'"
+msgstr " s'esperava una constant de tipus \"%T\", es va obtenir \"%T\""
+
+#: cp/pt.c:3546
+#, c-format
+msgid " expected a type, got `%E'"
+msgstr " s'esperava un tipus, es va obtenir \"%E\""
+
+#: cp/pt.c:3558
+msgid " expected a type, got `%T'"
+msgstr " s'esperava un tipus, es va obtenir \"%T\""
+
+#: cp/pt.c:3560
+msgid " expected a class template, got `%T'"
+msgstr " s'esperava un patró de classe, es va obtenir \"%T\""
+
+#: cp/pt.c:3596
+msgid " expected a template of type `%D', got `%D'"
+msgstr " s'esperava un patró de tipus \"%D\", es va obtenir \"%D\""
+
+#: cp/pt.c:3618
+msgid "template-argument `%T' uses anonymous type"
+msgstr "l'argument de patró \"%T\" usa un tipus anònim"
+
+#: cp/pt.c:3621
+msgid "template-argument `%T' uses local type `%T'"
+msgstr "l'argument de patró \"%T\" usa el tipus local \"%T\""
+
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr "l'argument de patró \"%T\" és un tipus modificat variablement"
+
+#: cp/pt.c:3666
+msgid "could not convert template argument `%E' to `%T'"
+msgstr "no es pot convertir l'argument de patró \"%E\" a \"%T\""
+
+#: cp/pt.c:3710
+#, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "nombre erroni d'arguments de patró (%d, deuria ser %d)"
+
+#: cp/pt.c:3714
+msgid "provided for `%D'"
+msgstr "proveït per \"%D\""
+
+#: cp/pt.c:3761
+#, c-format
+msgid "template argument %d is invalid"
+msgstr "l'argument de patró %d és invàlid"
+
+#: cp/pt.c:3997
+msgid "non-template used as template"
+msgstr "s'usa un no-patró com patró"
+
+#: cp/pt.c:4139
+msgid "`%T' is not a template"
+msgstr "\"%T\" no és un patró"
+
+#: cp/pt.c:4152
+msgid "non-template type `%T' used as a template"
+msgstr "s'usa el tipus \"%T\" que és no-patró com patró"
+
+#: cp/pt.c:4154
+msgid "for template declaration `%D'"
+msgstr "per a la declaració de patró \"%D\""
+
+#: cp/pt.c:4770
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+msgstr "la profunditat d'instanciació del patró excedeix el màxim de %d (usi -ftemplate-depth-NN per a incrementar el màxim) al instanciar \"%D\""
+
+#: cp/pt.c:5247
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr "instanciació de patró classe ambigua per a \"%#T\""
+
+#: cp/pt.c:5254
+msgid "%s %+#T"
+msgstr "%s %+#T"
+
+#: cp/pt.c:6284 cp/pt.c:6396
+msgid "instantiation of `%D' as type `%T'"
+msgstr "instanciació de \"%D\" com tipus \"%T\""
+
+#: cp/pt.c:6440
+msgid "invalid parameter type `%T'"
+msgstr "tipus de paràmetre \"%T\" invàlid"
+
+#: cp/pt.c:6442
+msgid "in declaration `%D'"
+msgstr "en la declaració \"%D\""
+
+#: cp/pt.c:6517
+msgid "creating pointer to member function of non-class type `%T'"
+msgstr "creant un punter a funció membre del tipus \"%T\" que no és classe"
+
+#: cp/pt.c:6680
+msgid "creating array with size zero"
+msgstr "creant la matriu amb grandària zero"
+
+#: cp/pt.c:6694
+#, c-format
+msgid "creating array with size zero (`%E')"
+msgstr "creant la matriu amb grandària zero (\"%E\")"
+
+#: cp/pt.c:6933
+msgid "forming reference to void"
+msgstr "formant la referència a void"
+
+#: cp/pt.c:6935
+msgid "forming %s to reference type `%T'"
+msgstr "formant %s per a referenciar al tipus \"%T\""
+
+#: cp/pt.c:6973
+msgid "creating pointer to member of non-class type `%T'"
+msgstr "creant un punter al membre del tipus \"%T\" que no és classe"
+
+#: cp/pt.c:6979
+msgid "creating pointer to member reference type `%T'"
+msgstr "creant un punter al membre de referència de tipus \"%T\""
+
+#: cp/pt.c:7057
+msgid "creating array of `%T'"
+msgstr "creant la matriu de \"%T\""
+
+#: cp/pt.c:7100
+msgid "`%T' is not a class, struct, or union type"
+msgstr "\"%T\" no és de tipus classe, struct o union"
+
+#: cp/pt.c:7213
+#, c-format
+msgid "use of `%s' in template"
+msgstr "ús de \"%s\" en el patró"
+
+#: cp/pt.c:7975
+msgid "type `%T' composed from a local class is not a valid template-argument"
+msgstr "el tipus \"%T\" composat des d'una classe local no és un argument de patró vàlid"
+
+#: cp/pt.c:7976
+msgid " trying to instantiate `%D'"
+msgstr " tractant d'instanciar \"%D\""
+
+#: cp/pt.c:8421
+msgid "incomplete type unification"
+msgstr "unificació de tipus incomplet"
+
+#: cp/pt.c:9387
+#, c-format
+msgid "use of `%s' in template type unification"
+msgstr "ús de \"%s\" en la unificació de tipus de patró"
+
+#: cp/pt.c:9821 cp/pt.c:9893
+msgid "explicit instantiation of non-template `%#D'"
+msgstr "instanciació explícita de \"%#D\" que no és patró"
+
+#: cp/pt.c:9837 cp/pt.c:9888
+msgid "no matching template for `%D' found"
+msgstr "no es troba una patró coincident per a \"%D\""
+
+#: cp/pt.c:9843
+msgid "explicit instantiation of `%#D'"
+msgstr "instanciació explícita de \"%#D\""
+
+#: cp/pt.c:9880
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr "instanciació explícita duplicada de \"%#D\""
+
+#: cp/pt.c:9905
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+msgstr "ISO C++ prohibeix l'ús de \"extern\" en instanciacions explícites"
+
+#: cp/pt.c:9909 cp/pt.c:9999
+msgid "storage class `%D' applied to template instantiation"
+msgstr "classe d'emmagatzematge \"%D\" aplicada a la instanciació d'un patró"
+
+#: cp/pt.c:9966
+msgid "explicit instantiation of non-template type `%T'"
+msgstr "instanciació explícita del tipus \"%T\" del tipus no-patró"
+
+#: cp/pt.c:9980
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr "instanciació explícita de \"%#T\" abans de la definició del patró"
+
+#: cp/pt.c:9988
+#, c-format
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr "ISO C++ prohibeix l'ús de \"%s\" en les instanciacions explícites"
+
+#: cp/pt.c:10032
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr "instanciació explícita duplicada de \"%#T\""
+
+#: cp/pt.c:10412
+msgid "explicit instantiation of `%D' but no definition available"
+msgstr "instanciació explícita de \"%D\" però no hi ha una definició disponible"
+
+#: cp/pt.c:10815
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr "\"%#T\" no és un tipus vàlid per a un paràmetre constant de patró"
+
+#: cp/repo.c:271
+msgid "-frepo must be used with -c"
+msgstr "-frepo deu ser usat amb -c"
+
+#: cp/repo.c:361
+#, c-format
+msgid "mysterious repository information in %s"
+msgstr "informació de \"repository\" misteriosa en %s"
+
+#: cp/repo.c:376
+#, c-format
+msgid "can't create repository information file `%s'"
+msgstr "no es pot crear el fitxer d'informació de \"repository\" \"%s\""
+
+#: cp/rtti.c:240
+msgid "cannot use typeid with -fno-rtti"
+msgstr "no es pot usar typeid sense -fno-rtti"
+
+#: cp/rtti.c:246
+msgid "must #include <typeinfo> before using typeid"
+msgstr "deu fer #include <typeinfo> abans d'usar typeid"
+
+#: cp/rtti.c:320
+msgid "cannot create type information for type `%T' because its size is variable"
+msgstr "no es pot crear la informació de tipus per al tipus \"%T\" perquè la seva grandària és variable"
+
+#: cp/rtti.c:584 cp/rtti.c:598
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+msgstr "dynamic_cast de \"%#D\" a \"%#T\" mai podrà tenir èxit"
+
+#: cp/rtti.c:674
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+msgstr "no es pot fer dynamic_cast \"%E\" (de tipus \"%#T\") al tipus \"%#T\" (%s)"
+
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr "\"%T\" és una base ambigua de \"%T\""
+
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr "\"%T\" és una base inaccessible de \"%T\""
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr ""
+
+#: cp/search.c:2050
+msgid "adjusting pointers for covariant returns"
+msgstr "ajustant els punters per a retorns covariants"
+
+#: cp/search.c:2054 cp/search.c:2061
+msgid "invalid covariant return type for `%#D'"
+msgstr "tipus de retorn covariant invàlid per a \"%#D\""
+
+#: cp/search.c:2055
+msgid " overriding `%#D' (must be pointer or reference to class)"
+msgstr " substituint a \"%#D\" (deu ser punter o referència a una classe)"
+
+#: cp/search.c:2062
+msgid " overriding `%#D' (must use pointer or reference)"
+msgstr " substituint a \"%#D\" (deu ser punter o referència)"
+
+#: cp/search.c:2067
+msgid "conflicting return type specified for `%#D'"
+msgstr "tipus de devolució en conflicte especificats per a \"%#D\""
+
+#: cp/search.c:2068
+msgid " overriding `%#D'"
+msgstr " substituint \"%#D\""
+
+#: cp/search.c:2077
+#, c-format
+msgid "looser throw specifier for `%#F'"
+msgstr "especificador thrown més flexible per a \"%#F\""
+
+#: cp/search.c:2078
+#, c-format
+msgid " overriding `%#F'"
+msgstr " substituint \"%#F\""
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+msgid "`%#D' cannot be declared"
+msgstr "\"%#D\" no pot ser declarat"
+
+#: cp/search.c:2168
+msgid " since `%#D' declared in base class"
+msgstr " ja que es va declarar \"%#D\" en la classe base"
+
+#: cp/search.c:2309
+msgid "`%#D' needs a final overrider"
+msgstr "\"%#D\" necessita un substituent final"
+
+#: cp/semantics.c:919
+#, c-format
+msgid "type of asm operand `%E' could not be determined"
+msgstr "no es pot determinar el tipus de l'operant asm \"%E\""
+
+#: cp/semantics.c:1051
+msgid "ISO C++ does not permit named return values"
+msgstr "ISO C++ no permet valors de retorn nomenats"
+
+#: cp/semantics.c:1060
+msgid "return identifier `%D' already in place"
+msgstr "l'identificador de retorn \"%D\" ja està en el seu lloc"
+
+#: cp/semantics.c:1068
+msgid "can't redefine default return value for constructors"
+msgstr "no es pot redefinir el valor per omissió de retorn pels constructors"
+
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr ""
+
+#: cp/semantics.c:1343
+msgid "`this' is unavailable for static member functions"
+msgstr "\"this\" no està disponible per a funcions membre static"
+
+#: cp/semantics.c:1349
+msgid "invalid use of `this' in non-member function"
+msgstr "ús invàlid de \"this\" en la funció no membre"
+
+#: cp/semantics.c:1351
+msgid "invalid use of `this' at top level"
+msgstr "ús invàlid de \"this\" en el nivell principal"
+
+#: cp/semantics.c:1381
+msgid "calling type `%T' like a method"
+msgstr "cridant al tipus \"%T\" com un mètode"
+
+#: cp/semantics.c:1419
+msgid "destructor specifier `%T::~%T()' must have matching names"
+msgstr "el especificador del destructor \"%T::%T()\" deu tenir noms coincidents"
+
+#: cp/semantics.c:1425
+msgid "`%E' is not of type `%T'"
+msgstr "\"%E\" no és de tipus \"%T\""
+
+#: cp/semantics.c:1613
+msgid "template type parameters must use the keyword `class' or `typename'"
+msgstr "els paràmetres de tipus patró deu usar la paraula clau \"class\" o \"typename\""
+
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
+
+#: cp/semantics.c:1694
+msgid "definition of `%#T' inside template parameter list"
+msgstr "definició de \"%#T\" dintre d'una llista de paràmetres de patró"
+
+#: cp/semantics.c:1710
+msgid "invalid definition of qualified type `%T'"
+msgstr "definició invàlida del tipus qualificat \"%T\""
+
+#: cp/semantics.c:2053
+msgid "invalid base-class specification"
+msgstr "especificació de classe base invàlida"
+
+#: cp/semantics.c:2062
+msgid "base class `%T' has cv qualifiers"
+msgstr "la classe base \"%T\" té qualificadors cv"
+
+#: cp/semantics.c:2093
+msgid "multiple declarators in template declaration"
+msgstr "múltiples declaradors en una declaració de patró"
+
+#: cp/semantics.c:2120
+#, c-format
+msgid "type of `%E' is unknown"
+msgstr "el tipus de \"%E\" és desconegut"
+
+#: cp/spew.c:225
+#, c-format
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgstr "el nom d'identificador \"%s\" causa conflictes amb l'estratègia interna de nomenatge del C++ de GNU"
+
+#: cp/spew.c:1002 cp/spew.c:1340
+msgid "parse error at end of saved function text"
+msgstr "error de decodificació al final del text de la funció guardada"
+
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
+msgid "parse error in method specification"
+msgstr "error de decodificació en l'especificació del mètode"
+
+#: cp/spew.c:1161
+msgid "function body for constructor missing"
+msgstr "falta el cos de la funció pel constructor"
+
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr "%Hlectura de final de fitxer dintre de l'argument per defecte"
+
+#: cp/spew.c:1419
+msgid "circular dependency in default args of `%#D'"
+msgstr "dependència circular en els arguments per omissió de \"%#D\""
+
+#: cp/spew.c:1483
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr "tipus \"%T\" invàlid per a l'argument per omissió de \"%T\""
+
+#: cp/spew.c:1548
+#, c-format
+msgid "%s before `%s'"
+msgstr "%s abans de \"%s\""
+
+#: cp/spew.c:1550
+#, c-format
+msgid "%s before `%c'"
+msgstr "%s abans de \"%c\""
+
+#: cp/spew.c:1552
+#, c-format
+msgid "%s before `\\%o'"
+msgstr "%s abans de \"\\%o\""
+
+#: cp/spew.c:1555
+#, c-format
+msgid "%s before `%s' token"
+msgstr "%s abans del testimoni \"%s\""
+
+#: cp/tree.c:263 cp/tree.c:275
+#, c-format
+msgid "non-lvalue in %s"
+msgstr "non-lvalue dintre %s"
+
+#: cp/tree.c:562
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "els qualificadors \"%V\" no es poden aplicar a \"%T\""
+
+#: cp/tree.c:1941
+#, c-format
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr "l'atribut \"%s\" només es pot aplicar a definicions de classes Java"
+
+#: cp/tree.c:1971
+#, c-format
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr "l'atribut \"%s\" sol es pot aplicar a definicions de classe"
+
+#: cp/tree.c:1977
+#, c-format
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "\"%s\" és obsolet; les vtables de g++ ara són compatibles amb COM per omissió"
+
+#: cp/tree.c:2002
+msgid "requested init_priority is not an integer constant"
+msgstr "la init_priority sol·licitada no és una constant entera"
+
+#: cp/tree.c:2023
+#, c-format
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+msgstr "sol es pot usar l'atribut \"%s\" en definicions de rang de fitxer d'objectes de tipus class"
+
+#: cp/tree.c:2031
+msgid "requested init_priority is out of range"
+msgstr "la init_priority sol·licitada està fora de rang"
+
+#: cp/tree.c:2041
+msgid "requested init_priority is reserved for internal use"
+msgstr "la init_priority sol·licitada està reservada per a ús intern"
+
+#: cp/tree.c:2051
+#, c-format
+msgid "`%s' attribute is not supported on this platform"
+msgstr "l'atribut \"%s\" no té suport en aquesta plataforma"
+
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "revisió lang_*: va fallar en %s, en %s:%d"
+
+#: cp/typeck.c:524
+#, c-format
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+msgstr "ISO C++ prohibeix %s entre punters de tipus \"void *\" i punters a funcions"
+
+#: cp/typeck.c:545
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+msgstr "%s entre diferents tipus de punter \"%T\" i \"%T\" manca d'una conversió"
+
+#: cp/typeck.c:1436
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+msgstr "ISO C++ prohibeix la conversió de \"%#T\" a \"(...)\""
+
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "aplicació invàlida de \"%s\" a una funció membre"
+
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "ús invàlid de \"%s\" en un membre no static"
+
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
+msgstr "sizeof aplicat a un camp de bits"
+
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr "ISO C++ prohibeix l'aplicació de \"sizeof\" a una expressió de tipus de funció"
+
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
+msgstr "conversió obsoleta d'una constant de cadena a \"%T\""
+
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "sol·licitud pel membre \"%D\" en \"%E\", el qual és del tipus no agregat \"%T\""
+
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
+msgstr "\"%D\" no és un membre de \"%T\""
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "accés invàlid a dades del membre que no és static \"%D\" de l'objecte NULL"
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr ""
+
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "\"%D::%D\" no és un membre de \"%T\""
+
+#: cp/typeck.c:2179
+msgid "`%T' is not a base of `%T'"
+msgstr "\"%T\" no és una base de \"%T\""
+
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr "el especificador del destructor \"%T::~%T\" deu tenir noms coincidents"
+
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr "el tipus \"%T\" no té destructor"
+
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
+msgstr "\"%D\" no és una funció patró membre"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+msgid "`%T' is not a pointer-to-object type"
+msgstr "\"%T\" no és de tipus punter-a-objecte"
+
+#: cp/typeck.c:2365
+#, c-format
+msgid "invalid use of `%s' on pointer to member"
+msgstr "ús invàlid de \"%s\" en punter a membre"
+
+#: cp/typeck.c:2371
+msgid "invalid type argument"
+msgstr "argument de tipus invàlid"
+
+#: cp/typeck.c:2474
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "ISO C++ prohibeix el subindici d'una matriu de l-valors"
+
+#: cp/typeck.c:2485
+msgid "subscripting array declared `register'"
+msgstr "es va declarar el subindici de la matriu com \"register\""
+
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr "falta un objecte en \"%E\""
+
+#: cp/typeck.c:2674
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr "ISO C++ prohibeix la cridada \"::main\" dintre del mateix programa"
+
+#: cp/typeck.c:2699
+#, c-format
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+msgstr "es deu usar .* o ->* en la cridada a la funció punter-a-membre en \"%E (...)\""
+
+#: cp/typeck.c:2712
+#, c-format
+msgid "`%E' cannot be used as a function"
+msgstr "no es pot usar \"%E\" com una funció"
+
+#: cp/typeck.c:2824
+msgid "too many arguments to %s `%+#D'"
+msgstr "massa arguments per a %s \"%+#D\""
+
+#: cp/typeck.c:2865
+msgid "parameter type of called function is incomplete"
+msgstr "el tipus del paràmetre de la funció cridada és incomplet"
+
+#: cp/typeck.c:2928
+msgid "too few arguments to %s `%+#D'"
+msgstr "molt pocs arguments per a %s \"%+#D\""
+
+#: cp/typeck.c:3056 cp/typeck.c:3066
+msgid "assuming cast to type `%T' from overloaded function"
+msgstr "assumint la conversió al tipus \"%T\" des de la funció sobrecarregada"
+
+#: cp/typeck.c:3126
+#, c-format
+msgid "division by zero in `%E / 0'"
+msgstr "divisió per zero en \"%E / 0\""
+
+#: cp/typeck.c:3128
+#, c-format
+msgid "division by zero in `%E / 0.'"
+msgstr "divisió per zero en \"%E / 0.\""
+
+#: cp/typeck.c:3158
+#, c-format
+msgid "division by zero in `%E %% 0'"
+msgstr "divisió per zero en \"%E %% 0\""
+
+#: cp/typeck.c:3160
+#, c-format
+msgid "division by zero in `%E %% 0.'"
+msgstr "divisió per zero en \"%E %% 0.\""
+
+#: cp/typeck.c:3240
+#, c-format
+msgid "%s rotate count is negative"
+msgstr "el compte de rotació %s és negatiu"
+
+#: cp/typeck.c:3243
+#, c-format
+msgid "%s rotate count >= width of type"
+msgstr "el compte de rotació %s >= amplària del tipus"
+
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "ISO C++ prohibeix la comparança entre punters i enters"
+
+#: cp/typeck.c:3553
+msgid "comparison between types `%#T' and `%#T'"
+msgstr "comparança entre els tipus \"%#T\" i \"%#T\""
+
+#: cp/typeck.c:3589
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "comparança entre expressions enteres signed i unsigned"
+
+#: cp/typeck.c:3654
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr "operadors invàlids de tipus \"%T\" i \"%T\" per al binari \"%O\""
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+msgid "NULL used in arithmetic"
+msgstr "es va usar NULL en l'aritmètica"
+
+#: cp/typeck.c:3743
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+msgstr "ISO C++ prohibeix l'ús d'un punter de tipus \"void *\" en la substracció"
+
+#: cp/typeck.c:3745
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "ISO C++ prohibeix l'ús d'un punter a una funció en la substracció"
+
+#: cp/typeck.c:3747
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "ISO C++ prohibeix l'ús d'un punter a un mètode en la substracció"
+
+#: cp/typeck.c:3749
+msgid "ISO C++ forbids using pointer to a member in subtraction"
+msgstr "ISO C++ prohibeix l'ús d'un punter a un membre en la substracció"
+
+#: cp/typeck.c:3761
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr "ús invàlid d'un punter a un tipus incomplet en aritmètica de punters"
+
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
+
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
+msgid "taking address of temporary"
+msgstr "prenent l'adreça del temporal"
+
+#: cp/typeck.c:4091
+#, c-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr "ISO C++ prohibeix %sing un enum"
+
+#: cp/typeck.c:4103
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr "no es pot %s un punter a un tipus incomplet \"%T\""
+
+#: cp/typeck.c:4110
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr "ISO C++ prohibeix %sing un punter de tipus \"%T\""
+
+#: cp/typeck.c:4135
+msgid "cast to non-reference type used as lvalue"
+msgstr "s'usa la conversió a un tipus no referenciat com un lvalue"
+
+#: cp/typeck.c:4169
+msgid "invalid use of `--' on bool variable `%D'"
+msgstr "ús invàlid de \"--\" en la variable booleana \"%D\""
+
+#. ARM $3.4
+#: cp/typeck.c:4202
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr "ISO C++ prohibeix prendre l'adreça de la funció \"::main\""
+
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "ISO C++ prohibeix prendre l'adreça d'una funció membre no estàtica sense qualificar per a formar un punter a la funció membre. Com \"&%T::%D\""
+
+#: cp/typeck.c:4271
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "ISO C++ prohibeix prendre l'adreça d'una funció membre limitada per a formar un punter a la funció membre. Com \"&%T::%D\""
+
+#: cp/typeck.c:4295
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr "ISO C++ prohibeix prendre l'adreça d'una conversió a una expressió no lvalue"
+
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr ""
+
+#: cp/typeck.c:4444
+msgid "taking address of destructor"
+msgstr "prenent l'adreça del destructor"
+
+#: cp/typeck.c:4457
+msgid "taking address of bound pointer-to-member expression"
+msgstr "prenent l'adreça de l'expressió limitada punter-a-membre"
+
+#: cp/typeck.c:4473
+msgid "cannot create pointer to reference member `%D'"
+msgstr "no es pot crear un punter al membre referència \"%D\""
+
+#: cp/typeck.c:4536
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr "no es pot prendre l'adreça de \"this\" que és una expressió rvalue"
+
+#: cp/typeck.c:4555
+msgid "address requested for `%D', which is declared `register'"
+msgstr "es va sol·licitar l'adreça de \"%D\", el qual es va declarar com \"register\""
+
+#: cp/typeck.c:4682
+msgid "static_cast from type `%T' to type `%T' casts away constness"
+msgstr "static_cast del tipus \"%T\" al tipus \"%T\" proscriu la constància"
+
+#: cp/typeck.c:4871
+msgid "invalid static_cast from type `%T' to type `%T'"
+msgstr "static_cast invàlid del tipus \"%T\" al tipus \"%T\""
+
+#: cp/typeck.c:4910
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+msgstr "reinterpret_cast invàlid d'una expressió rvalue del tipus \"%T\" al tipus \"%T\""
+
+#: cp/typeck.c:4930
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
+msgstr "reinterpret_cast de \"%T\" a \"%T\" perd precisió"
+
+#: cp/typeck.c:4943
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+msgstr "reinterpret_cast de \"%T\" a \"%T\" proscriu a const (o volatile)"
+
+#: cp/typeck.c:4952
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr "ISO C++ prohibeix la conversió entre entre punter a funció i punter a objecte"
+
+#: cp/typeck.c:4958
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+msgstr "reinterpret_cast invàlid del tipus \"%T\" al tipus \"%T\""
+
+#: cp/typeck.c:4985
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr "ús invàlid de const_cast amb tipus \"%T\", que no és punter, referència, ni un tipus punter-a-dades-membres"
+
+#: cp/typeck.c:4988
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr "ús invàlid de const_cast amb tipus \"%T\", el qual és un punter o referència a un tipus de funció"
+
+#: cp/typeck.c:5011
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+msgstr "const_cast invàlid d'un rvalue de tipus \"%T\" al tipus \"%T\""
+
+#: cp/typeck.c:5027
+msgid "invalid const_cast from type `%T' to type `%T'"
+msgstr "const_cast invàlid del tipus \"%T\" al tipus \"%T\""
+
+#: cp/typeck.c:5069 cp/typeck.c:5074
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr "ISO C++ prohibeix la conversió a un tipus de matriu \"%T\""
+
+#: cp/typeck.c:5082
+msgid "invalid cast to function type `%T'"
+msgstr "conversió invàlida al tipus de funció \"%T\""
+
+#: cp/typeck.c:5138
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+msgstr "la conversió de \"%T\" a \"%T\" descarta els qualificadors del tipus de la destinació del punter"
+
+#: cp/typeck.c:5184
+msgid "cast from `%T' to `%T' increases required alignment of target type"
+msgstr "la conversió de \"%T\" a \"%T\" incrementa l'alineació requerida del tipus de la destinació"
+
+#: cp/typeck.c:5357
+msgid " in evaluation of `%Q(%#T, %#T)'"
+msgstr " en l'avaluació de \"%Q(%#T, %#T)\""
+
+#: cp/typeck.c:5399
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+msgstr "ISO C++ prohibeix la conversió a un tipus no referent usat com lvalue"
+
+#: cp/typeck.c:5463
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr "tipus incompatible en l'assignació de \"%T\" a \"%T\""
+
+#: cp/typeck.c:5470
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "ISO C++ prohibeix l'assignació de matrius"
+
+#: cp/typeck.c:5577
+msgid " in pointer to member function conversion"
+msgstr " en la conversió del punter a funció membre"
+
+#: cp/typeck.c:5585
+msgid " in pointer to member conversion"
+msgstr " en la conversió del punter a membre"
+
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+msgid "pointer to member cast via virtual base `%T' of `%T'"
+msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\""
+
+#: cp/typeck.c:5619
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
+msgstr "punter a la conversió membre a través de la base virtual \"%T\" de \"%T\""
+
+#: cp/typeck.c:5695
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr "conversió invàlida del tipus \"%T\" a partir del tipus \"%T\""
+
+#: cp/typeck.c:5860
+msgid "passing NULL used for non-pointer %s %P of `%D'"
+msgstr "passant NULL usat per al no punter %s %P de \"%D\""
+
+#: cp/typeck.c:5863
+msgid "%s to non-pointer type `%T' from NULL"
+msgstr "%s al tipus \"%T\" que no és punter des de NULL"
+
+#: cp/typeck.c:5871
+msgid "passing `%T' for %s %P of `%D'"
+msgstr "passant \"%T\" per a %s %P de \"%D\""
+
+#: cp/typeck.c:5874
+msgid "%s to `%T' from `%T'"
+msgstr "%s a \"%T\" des de \"%T\""
+
+#: cp/typeck.c:5884
+msgid "passing negative value `%E' for %s %P of `%D'"
+msgstr "passant el valor negatiu `%E' per a %s %P de \"%D\""
+
+#: cp/typeck.c:5887
+msgid "%s of negative value `%E' to `%T'"
+msgstr "%s de valor negatiu `%I' a \"%T\""
+
+#: cp/typeck.c:5982
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+msgstr "no es pot convertir \"%T\" a \"%T\" per a l'argument `%P' per a \"%D\""
+
+#: cp/typeck.c:5985
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr "no es pot convertir \"%T\" a \"%T\" en %s"
+
+#: cp/typeck.c:6073 cp/typeck.c:6075
+msgid "in passing argument %P of `%+D'"
+msgstr "en el pas de l'argument %P de \"%+D\""
+
+#: cp/typeck.c:6190
+msgid "returning reference to temporary"
+msgstr "retornant la referència al temporal"
+
+#: cp/typeck.c:6197
+msgid "reference to non-lvalue returned"
+msgstr "es va retornar una referència a un non-lvalue"
+
+#: cp/typeck.c:6209
+msgid "reference to local variable `%D' returned"
+msgstr "es va retornar una referència a la variable local \"%D\""
+
+#: cp/typeck.c:6212
+msgid "address of local variable `%D' returned"
+msgstr "es va retornar l'adreça de la variable local \"%D\""
+
+#: cp/typeck.c:6243
+msgid "returning a value from a destructor"
+msgstr "retornant un valor d'un destructor"
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr "no es pot retornar d'un gestor d'una function-try-block d'un constructor"
+
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+msgid "returning a value from a constructor"
+msgstr "retornant un valor d'un constructor"
+
+#: cp/typeck.c:6271
+msgid "return-statement with no value, in function declared with a non-void return type"
+msgstr "return-statement sense valor, en una funció declarada amb un tipus de retorn non-void"
+
+#: cp/typeck.c:6287
+msgid "return-statement with a value, in function declared with a void return type"
+msgstr "return-statement amb un valor, en una funció declarada amb un tipus de retorn void"
+
+#: cp/typeck.c:6308
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+msgstr "\"operator new\" no deu regressar NULL a menys que es declari \"throw()\" (o -fcheck-new estigui en efecte)"
+
+#: cp/typeck2.c:54
+msgid "type `%T' is not a base type for type `%T'"
+msgstr "el tipus \"%T\" no és un tipus base per al tipus \"%T\""
+
+#: cp/typeck2.c:157
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr "no es pot declarar que la variable \"%D\" sigui de tipus \"%T\""
+
+#: cp/typeck2.c:160
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr "no es pot declarar que el paràmetre \"%D\" sigui de tipus \"%T\""
+
+#: cp/typeck2.c:163
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr "no es pot declarar que el camp \"%D\" sigui de tipus \"%T\""
+
+#: cp/typeck2.c:167
+msgid "invalid return type for member function `%#D'"
+msgstr "tipus de retorn invàlid per a la funció membre \"%#D\""
+
+#: cp/typeck2.c:169
+msgid "invalid return type for function `%#D'"
+msgstr "tipus de retorn invàlid per a la funció \"%#D\""
+
+#: cp/typeck2.c:172
+msgid "cannot allocate an object of type `%T'"
+msgstr "no es pot assignar un objecte de tipus \"%T\""
+
+#: cp/typeck2.c:179
+msgid " because the following virtual functions are abstract:"
+msgstr " perquè les següents funcions virtual són abstractes:"
+
+#: cp/typeck2.c:181
+msgid "\t%#D"
+msgstr "\t%#D"
+
+#: cp/typeck2.c:184
+msgid " since type `%T' has abstract virtual functions"
+msgstr " ja que el tipus \"%T\" té funcions virtuals abstractes"
+
+#: cp/typeck2.c:338
+msgid "constructor syntax used, but no constructor declared for type `%T'"
+msgstr "es va usar la sintaxi de constructor, però no es va declarar un constructor per al tipus \"%T\""
+
+#: cp/typeck2.c:349
+msgid "comma expression used to initialize return value"
+msgstr "es va usar una expressió coma per a inicialitzar el valor de retorn"
+
+#: cp/typeck2.c:358
+msgid "cannot initialize arrays using this syntax"
+msgstr "no es poden inicialitzar matrius usant aquesta sintaxi"
+
+#: cp/typeck2.c:473
+msgid "initializing array with parameter list"
+msgstr "inicialitzant una matriu amb una llista de paràmetres"
+
+#: cp/typeck2.c:529
+msgid "initializer for scalar variable requires one element"
+msgstr "el inicialitzador per a una variable escalar requereix un element"
+
+#: cp/typeck2.c:536
+msgid "braces around scalar initializer for `%T'"
+msgstr "parèntesis al voltant del inicialitzador per a \"%T\""
+
+#: cp/typeck2.c:539
+msgid "ignoring extra initializers for `%T'"
+msgstr "ignorant els inicialitzadors extra per a \"%T\""
+
+#: cp/typeck2.c:551
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr "un objecte de grandària variable de tipus \"%T\" no pot ser inicialitzat"
+
+#: cp/typeck2.c:561
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+msgstr "el subobjecte de tipus \"%T\" deu ser inicialitzat per un constructor, no per \"%E\""
+
+#: cp/typeck2.c:627
+msgid "aggregate has a partly bracketed initializer"
+msgstr "l'agregat té un inicialitzador amb parèntesis parcials"
+
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
+msgstr "inicialitzadors etiquetats com no trivials"
+
+#: cp/typeck2.c:682
+msgid "non-empty initializer for array of empty elements"
+msgstr "inicialitzador no-buit per a una matriu d'elements buits"
+
+#: cp/typeck2.c:736
+msgid "initializer list for object of class with virtual base classes"
+msgstr "llista d'inicialitzadors per a un objecte d'una classe amb classes base virtual"
+
+#: cp/typeck2.c:742
+msgid "initializer list for object of class with base classes"
+msgstr "llista d'inicialitzadors per a un objecte d'una classe amb classes base"
+
+#: cp/typeck2.c:748
+msgid "initializer list for object using virtual functions"
+msgstr "llista d'inicialitzadors per a un objecte que usa funcions virtuals"
+
+#: cp/typeck2.c:811 cp/typeck2.c:827
+msgid "missing initializer for member `%D'"
+msgstr "falta el inicialitzador pel membre \"%D\""
+
+#: cp/typeck2.c:816
+msgid "uninitialized const member `%D'"
+msgstr "membre const \"%D\" sense inicialitzar"
+
+#: cp/typeck2.c:818
+msgid "member `%D' with uninitialized const fields"
+msgstr "membre \"%D\" amb camps const sense inicialitzar"
+
+#: cp/typeck2.c:821
+msgid "member `%D' is uninitialized reference"
+msgstr "el membre \"%D\" és una referència sense inicialitzar"
+
+#: cp/typeck2.c:868
+msgid "index value instead of field name in union initializer"
+msgstr "valor d'índex en lloc del nom del camp en el inicialitzador de union"
+
+#: cp/typeck2.c:880
+msgid "no field `%D' in union being initialized"
+msgstr "no existeix el camp \"%D\" en el union que s'està inicialitzant"
+
+#: cp/typeck2.c:888
+msgid "union `%T' with no named members cannot be initialized"
+msgstr "no es pot inicialitzar el union \"%T\" sense membres nomenats"
+
+#: cp/typeck2.c:924
+msgid "excess elements in aggregate initializer"
+msgstr "excés d'elements en el inicialitzador agregat"
+
+#: cp/typeck2.c:1038
+msgid "circular pointer delegation detected"
+msgstr "es va detectar una delegació de punter circular"
+
+#: cp/typeck2.c:1051
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr "l'operant base de \"->\" té el tipus \"%T\" que no és punter"
+
+#: cp/typeck2.c:1065
+msgid "result of `operator->()' yields non-pointer result"
+msgstr "el resultat de \"operator->()\" produeix un resultat que no és punter"
+
+#: cp/typeck2.c:1067
+msgid "base operand of `->' is not a pointer"
+msgstr "l'operant base de \"->\" no és un punter"
+
+#: cp/typeck2.c:1133
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+msgstr "no es pot usar \"%E\" com un punter membre, perquè és de tipus \"%T\""
+
+#: cp/typeck2.c:1140
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+msgstr "no es pot aplicar el punter a membre \"%E\" a \"%E\", el qual és del tipus no agregat \"%T\""
+
+#: cp/typeck2.c:1149
+msgid "member type `%T::' incompatible with object type `%T'"
+msgstr "el tipus de membre \"%T::\" és incompatible amb el tipus objecte \"%T\""
+
+#: cp/typeck2.c:1186
+msgid "`%T' fails to be a typedef or built-in type"
+msgstr "\"%T\" falla al ser un typedef o un tipus built-in"
+
+#: cp/typeck2.c:1259
+#, c-format
+msgid "ISO C++ forbids defining types within %s"
+msgstr "ISO C++ prohibeix la definició de tipus dintre de %s"
+
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "cridada a la funció \"%D\" la qual llança el tipus incomplet \"%#T\""
+
+#: cp/typeck2.c:1387
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "cridada a una funció la qual llança el tipus incomplet \"%#T\""
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr "%s és obsolet, per favor vegi la documentació per a més detalls"
+
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
+msgstr "No obeir les semàntiques de control d'accés"
+
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
+msgstr "Canviar quan s'emetin les instàncies del patró"
+
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
+msgstr "Revisar el valor de retorn de new"
+
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
+msgstr "Reduir la grandària dels fitxers objecte"
+
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr "Fer que les cadenes literals siguin \"char[]\" en lloc de \"const char[]\""
+
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
+msgstr "Buidar la unitat de traducció completa a un fitxer"
+
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
+msgstr "No fer inline per omissió a les funcions membre"
+
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
+msgstr "No generar informació del tipus de descriptor en temps d'execució"
+
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
+msgstr "No generar codi per a revisar excepcions d'especificacions"
+
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
+msgstr "L'àmbit de les variables de la declaració d'inici de for s'estén cap a fora"
+
+#: cp/lang-options.h:64
+msgid "Do not recognize GNU defined keywords"
+msgstr "No reconèixer les paraules claus definides per GNU"
+
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
+msgstr "Activar el suport per a objectes enormes"
+
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
+msgstr "Exportar funcions encara si poden ser inline"
+
+#: cp/lang-options.h:75
+msgid "Only emit explicit template instantiations"
+msgstr "Emetre solament instanciacions explícites de patrons"
+
+#: cp/lang-options.h:78
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "Emetre solament instanciacions explícites de patrons inline"
+
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr "No avisar pedantment sobre els usos d'extensions Microsoft"
+
+#: cp/lang-options.h:87
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr "Reconèixer and/bitand/bitor/compl/not/or/xor"
+
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
+msgstr "Desactivar els diagnòstics opcionals"
+
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
+msgstr "Degradar els errors de concordança a advertiments"
+
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr "Activar l'instanciació automàtica de patrons"
+
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
+msgstr "Mostrar les estadístiques acumulades durant la compilació"
+
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr "Especificar la profunditat màxima d'instanciació de patrons"
+
+#: cp/lang-options.h:106
+msgid "Use __cxa_atexit to register destructors"
+msgstr "Usar __cxa_atexit per a registrar destructors"
+
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
+msgstr "Descartar funcions virtual sense usar"
+
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
+msgstr "Implementar vtables usant thunks"
+
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
+msgstr "Emetre símbols comuns com símbols febles"
+
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
+msgstr "Emetre informació de referència creuada"
+
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
+msgstr "Avisar sobre tipus inconsistents de retorn"
+
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
+msgstr "Avisar sobre noms de funcions virtual sobrecarregades"
+
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
+msgstr "No avisar quan tots els ctors/dtors són privats"
+
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
+msgstr "Avisar sobre destructors no virtuals"
+
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
+msgstr "Avisar quan una funció és declarada extern i després inline"
+
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
+msgstr "Avisar quan el compilador reordeni codi"
+
+#: cp/lang-options.h:140
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "Avisar quan el comportament de síntesi difereixi de Cfront"
+
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
+msgstr "avisar quan el tipus converteix punters a funcions membre"
+
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Avisar violacions de regles d'estil de Effective C++"
+
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "Avisar quan la sobrecàrrega promogui de unsigned a signed"
+
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
+msgstr "Avisar quan s'usi una conversió d'estil C en un programa"
+
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr "No avisar quan les funcions friend sense patró són declarades dintre d'un patró"
+
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
+msgstr "No anunciar característiques obsoletes del compilador"
+
+#: f/bad.c:387
+msgid "note:"
+msgstr "nota:"
+
+#: f/bad.c:391
+msgid "warning:"
+msgstr "avís:"
+
+#: f/bad.c:395
+msgid "fatal:"
+msgstr "fatal:"
+
+#: f/bad.c:437
+msgid "(continued):"
+msgstr "(continuat):"
+
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr "[REPORTAR error!!] %"
+
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr "[REPORTAR error!!]"
+
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr "l'etiqueta ASSIGNada no entra en \"%A\" a %0 -- utilitzant una similar més ample"
+
+#: f/com.c:11623
+msgid "no INTEGER type can hold a pointer on this configuration"
+msgstr "cap tipus INTEGER pot guardar un punter en aquesta configuració"
+
+#: f/com.c:11844
+#, c-format
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+msgstr "configuració: REAL, INTEGER, i LOGICAL són de %d bits d'amplària,"
+
+#: f/com.c:11846
+#, c-format
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr "i els punters són de %d bits d'amplària, però g77 encara no treballa"
+
+#: f/com.c:11848
+msgid "properly unless they all are 32 bits wide"
+msgstr "de forma adequada a menys que tots siguin de 32 bits d'amplària"
+
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
+msgstr "Per favor tingui això presenti abans de reportar errors."
+
+#. I/O will probably crash.
+#: f/com.c:11857
+#, c-format
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
+msgstr "configuració: char * guarda %d bits, però ftnlen només %d"
+
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
+#, c-format
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
+msgstr ""
+"configuració: char * guarda %d bits, però INTEGER només %d --\n"
+" la declaració ASSIGN pot fallar"
+
+#: f/com.c:13681
+msgid "In statement function"
+msgstr "En la declaració de la funció"
+
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
+msgstr "Fora de qualsevol unitat de programa:\n"
+
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr "%A des de %B en %0%C"
+
+#: f/com.c:15497
+msgid "directory name must immediately follow -I"
+msgstr "el nom del directori deu seguir immediatament a -I"
+
+#: f/com.c:15640
+#, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr "En %0, el fitxer INCLUDE %A existeix, però no és llegible"
+
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr "En %0, la \"niació\" de INCLUDE és massa profunda"
+
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr "Dos operadors aritmètics en una fila en %0 i %1 -- usi parèntesi"
+
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr "L'operador en %0 té una preferència menor que aquell en %1 -- usi parèntesi"
+
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr "Usi .EQV./.NEQV. en lloc de .EQ./.NE en %0 pels operands LOGICAL en %1 i %2"
+
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr "Operant sense suport per a ** en %1 -- es va convertir a INTEGER per omissió"
+
+#: f/g77spec.c:234
+#, c-format
+msgid "overflowed output arg list for `%s'"
+msgstr "llista d'arguments de sortida desbordada per a \"%s\""
+
+#: f/g77spec.c:373
+msgid "--driver no longer supported"
+msgstr "--driver ja no té suport"
+
+#: f/g77spec.c:386
+#, c-format
+msgid "argument to `%s' missing"
+msgstr "falta l'argument per a \"%s\""
+
+#: f/g77spec.c:390
+msgid "no input files; unwilling to write output files"
+msgstr "no hi ha fitxers d'entrada; incapaç d'escriure fitxers de sortida"
+
+#: f/implic.c:203
+#, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "Declaració implícita de \"%A\" en %0"
+
+#: f/lex.c:326
+#, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr "Seqüència d'escapi que no és estàndard ISO \"\\%A\" en %0"
+
+#: f/lex.c:345
+#, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "Seqüència d'escapi desconeguda \"\\%A\" en %0"
+
+#: f/lex.c:354
+#, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "Seqüència d'escapi sense acabar \"\\\" en %0"
+
+#: f/lex.c:365
+#, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr "Seqüència d'escapi desconeguda: \"\\\" seguida pel codi de caràcter 0x%A en %0"
+
+#: f/lex.c:393
+#, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr "es va usar \\x en %0 sense dígits hexadecimals a continuació"
+
+#: f/lex.c:407
+#, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr "escapi Hex en %0 fora de rang"
+
+#: f/lex.c:441
+#, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr "Seqüència d'escapi en %0 fora de rang per al caràcter"
+
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr "escapi hex fora de rang"
+
+#: f/lex.c:648
+#, c-format
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr "seqüència d'escapi que no és estàndard ANSI, \"\\%c\""
+
+#: f/lex.c:661
+#, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr "seqüència d'escapi que no és ISO, \"\\%c\""
+
+#: f/lex.c:665
+#, c-format
+msgid "unknown escape sequence `\\%c'"
+msgstr "seqüència d'escapi desconeguda, \"\\%c\""
+
+#: f/lex.c:667
+#, c-format
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr "seqüència d'escapi desconeguda, \"\\\" seguida pel codi de caràcter 0x%x"
+
+#: f/lex.c:744
+msgid "badly formed directive -- no closing quote"
+msgstr "directiva mal formada -- cometa sense tancar"
+
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr "el nombre de #-lines per a entrar i sortir dels fitxers no coincideixen"
+
+#: f/lex.c:964
+msgid "bad directive -- missing close-quote"
+msgstr "directiva errònia -- falta una cometa que tanqui"
+
+#: f/lex.c:1078
+#, c-format
+msgid "ignoring pragma: %s"
+msgstr "ignorant el pragma: %s"
+
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr "#ident invàlid"
+
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr "directiva # no definida o invàlida"
+
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr "#line invàlid"
+
+#: f/lex.c:1285 f/lex.c:1329
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr "usi \"#line ...\" en lloc de \"# ...\" en la primera línia"
+
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr "#-line invàlid"
+
+#: f/lex.c:1432
+#, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr "Caràcter nul en %0 -- línia ignorada"
+
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr "INCLUDE en %0 no és la primera declaració en la línia de codi"
+
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr "el especificador ASSIGNed FORMAT és massa petit"
+
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr "SELECT CASE en el tipus CHARACTER (en %0) no té suport -- perdó"
+
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
+msgstr "ASSIGN a una variable que és massa petita"
+
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr "la variable de l'objectiu ASSIGNed GOTO és massa petita"
+
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr "Símbol local ajustable \"%A\" en %0"
+
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr "inicialitzador de dades en l'ordinador amb \"endianness\" diferent"
+
+#: f/top.c:237
+#, c-format
+msgid "%s no longer supported -- try -fvxt"
+msgstr "%s ja no té suport -- intenti -fvxt"
+
+#: f/top.c:239
+#, c-format
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr "%s ja no té suport -- intenti -fno-vxt -ff90"
+
+#: f/top.c:307 f/top.c:309
+#, c-format
+msgid "%s disabled, use normal debugging flags"
+msgstr "%s desactivat, usi els interruptors normals de depuració"
+
+#: f/lang-options.h:33
+msgid "Print g77-specific compiler version info, run internal tests"
+msgstr "Imprimeix informació de la versió específica del compilador g77, executa proves internes"
+
+#: f/lang-options.h:37
+msgid "Program is written in typical FORTRAN 66 dialect"
+msgstr "El programa està escrit en el dialecte típic FORTRAN 66"
+
+#: f/lang-options.h:40
+msgid "Program is written in typical Unix f77 dialect"
+msgstr "El programa està escrit en el dialecte típic Unix f77"
+
+#: f/lang-options.h:42
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr "El programa no utilitza les característiques del dialecte Unix-f77"
+
+#: f/lang-options.h:44
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr "El programa en un dialecte proper a Fortran-90"
+
+#: f/lang-options.h:48
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr "Tractar les variables locals i els blocs COMMON com si fossin nomenats en declaracions SAVE"
+
+#: f/lang-options.h:50
+msgid "Allow $ in symbol names"
+msgstr "Permetre $ en els noms de símbols"
+
+#: f/lang-options.h:54
+msgid "f2c-compatible code need not be generated"
+msgstr "No es necessita generar codi compatible amb f2c"
+
+#: f/lang-options.h:57
+msgid "Unsupported; do not generate libf2c-calling code"
+msgstr "Sense suport; no genera codi de cridada a libf2c"
+
+#: f/lang-options.h:59
+msgid "Unsupported; affects code-generation of arrays"
+msgstr "Sense suport; afecta la generació de codi de les matrius"
+
+#: f/lang-options.h:62
+msgid "Program is written in Fortran-90-ish free form"
+msgstr "El programa està escrit en una forma lliure propera a Fortran-90"
+
+#: f/lang-options.h:67
+msgid "Warn about use of (only a few for now) Fortran extensions"
+msgstr "Avisar sobre l'ús d' (només algunes per ara) extensions Fortran"
+
+#: f/lang-options.h:70
+msgid "Program is written in VXT (Digital-like) FORTRAN"
+msgstr "El programa està escrit en VXT (com Digital) FORTRAN"
+
+#: f/lang-options.h:73
+msgid "Disallow all ugly features"
+msgstr "Desactiva totes les característiques lletjes"
+
+#: f/lang-options.h:76
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr "No es passen les constants Hollerith i sense tipus com arguments"
+
+#: f/lang-options.h:78
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr "Permet la còpia ordinària de variables ASSIGN'ed"
+
+#: f/lang-options.h:81
+msgid "Dummy array dimensioned to (1) is assumed-size"
+msgstr "La matriu faltament dimensionada a (1) és de grandària assumida"
+
+#: f/lang-options.h:84
+msgid "Trailing comma in procedure call denotes null argument"
+msgstr "Coma al final de la cridada al procediment denota un argument null"
+
+#: f/lang-options.h:87
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+msgstr "Permet que REAL(Z) i AIMAG(Z) rebin DOUBLE COMPLEX Z"
+
+#: f/lang-options.h:91
+msgid "Initialization via DATA and PARAMETER is type-compatible"
+msgstr "L'inicialització a través de DATA i PARAMETER és de tipus compatible"
+
+#: f/lang-options.h:93
+msgid "Allow INTEGER and LOGICAL interchangeability"
+msgstr "Permet l'intercanvi entre INTEGER i LOGICAL"
+
+#: f/lang-options.h:96
+msgid "Print internal debugging-related info"
+msgstr "Mostra la informació interna relacionada amb la depuració"
+
+#: f/lang-options.h:99
+msgid "Initialize local vars and arrays to zero"
+msgstr "Inicialitza les variables locals i matrius a zero"
+
+#: f/lang-options.h:103
+msgid "Backslashes in character/hollerith constants not special (C-style)"
+msgstr "Les barres invertides en constants de caràcter/hollerith no són especials (estil C)"
+
+#: f/lang-options.h:105
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+msgstr "Fa que el front emuli aritmètica COMPLEX per a evitar errors"
+
+#: f/lang-options.h:109
+msgid "Disable the appending of underscores to externals"
+msgstr "Desactiva l'agregació de subratllats als externs"
+
+#: f/lang-options.h:112
+msgid "Never append a second underscore to externals"
+msgstr "Mai agregar un segon subratllat als externs"
+
+#: f/lang-options.h:114
+msgid "Intrinsics spelled as e.g. SqRt"
+msgstr "Intrínsecs lletrejats com p.e. SqRt"
+
+#: f/lang-options.h:116
+msgid "Intrinsics in uppercase"
+msgstr "Intrínsecs en majúscules"
+
+#: f/lang-options.h:119
+msgid "Intrinsics letters in arbitrary cases"
+msgstr "Lletres d'intrínsecs amb majúscules/minúscules indistintes"
+
+#: f/lang-options.h:121
+msgid "Language keywords spelled as e.g. IOStat"
+msgstr "Paraules claus del llenguatge lletrejades com p.e. IOStat"
+
+#: f/lang-options.h:123
+msgid "Language keywords in uppercase"
+msgstr "Paraules claus del llenguatge en majúscules"
+
+#: f/lang-options.h:126
+msgid "Language keyword letters in arbitrary cases"
+msgstr "Paraules claus del llenguatge amb majúscules/minúscules indistintes"
+
+#: f/lang-options.h:128
+msgid "Internally convert most source to uppercase"
+msgstr "Convertir internament gairebé tot el codi a majúscules"
+
+#: f/lang-options.h:131
+msgid "Internally preserve source case"
+msgstr "Preservar internament les majúscules i minúscules del codi font"
+
+#: f/lang-options.h:133
+msgid "Symbol names spelled in mixed case"
+msgstr "Noms de símbol lletrejats amb majúscules/minúscules barrejades"
+
+#: f/lang-options.h:135
+msgid "Symbol names in uppercase"
+msgstr "Noms de símbol en majúscules"
+
+#: f/lang-options.h:137
+msgid "Symbol names in lowercase"
+msgstr "Noms de símbol en minúscules"
+
+#: f/lang-options.h:140
+msgid "Program written in uppercase"
+msgstr "Programa escrit en majúscules"
+
+#: f/lang-options.h:142
+msgid "Program written in lowercase"
+msgstr "Programa escrit en minúscules"
+
+#: f/lang-options.h:144
+msgid "Program written in strict mixed-case"
+msgstr "Programa escrit estrictament amb majúscules i minúscules barrejades"
+
+#: f/lang-options.h:146
+msgid "Compile as if program written in uppercase"
+msgstr "Compilar com si el programa estigués escrit en majúscules"
+
+#: f/lang-options.h:148
+msgid "Compile as if program written in lowercase"
+msgstr "Compilar com si el programa estigués escrit en minúscules"
+
+#: f/lang-options.h:150
+msgid "Preserve all spelling (case) used in program"
+msgstr "Preservar tot el lletrejo (majúscules/minúscules) usat en el programa"
+
+#: f/lang-options.h:152
+msgid "Delete libU77 intrinsics with bad interfaces"
+msgstr "Esborrar els intrínsecs libU77 amb interfícies errònies"
+
+#: f/lang-options.h:154
+msgid "Disable libU77 intrinsics with bad interfaces"
+msgstr "Desactivar els intrínsecs libU77 amb interfícies errònies"
+
+#: f/lang-options.h:157
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr "Amagar els intrínsecs libU77 amb interfícies errònies"
+
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que f2c suporta"
+
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que f2c suporta"
+
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que f2c suporta"
+
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que F90 suporta"
+
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que F90 suporta"
+
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que F90 suporta"
+
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que g77 suporta"
+
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que g77 suporta"
+
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que g77 suporta"
+
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
+msgstr "Esborrar els intrínsecs MIL-STD 1753"
+
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
+msgstr "Desactivar els intrínsecs MIL-STD 1753"
+
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
+msgstr "Amagar els intrínsecs MIL-STD 1753"
+
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
+msgstr "Esborrar els intrínsecs libU77"
+
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr "Desactivar els intrínsecs libU77"
+
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr "Amagar els intrínsecs libU77"
+
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Esborrar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta"
+
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Desactivar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta"
+
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Amagar els intrínsecs de FORTRAN que no és 77 que VXT FORTRAN suporta"
+
+#: f/lang-options.h:201
+msgid "Treat initial values of 0 like non-zero values"
+msgstr "Tractar els valors inicials de 0 com valors que no són zero"
+
+#: f/lang-options.h:204
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+msgstr "Emetre informació especial de depuració per a COMMON i EQUIVALENCE (desactivat)"
+
+#: f/lang-options.h:207
+msgid "Take at least one trip through each iterative DO loop"
+msgstr "Prendre almenys un viatge a través de cada cicle DO iteratiu"
+
+#: f/lang-options.h:211
+msgid "Print names of program units as they are compiled"
+msgstr "Mostrar els noms de les unitats de programa mentre són compilades"
+
+#: f/lang-options.h:214
+msgid "Disable fatal diagnostics about inter-procedural problems"
+msgstr "Desactivar els diagnòstics fatals sobre problemes interprocedurals"
+
+#: f/lang-options.h:216
+msgid "Make prefix-radix non-decimal constants be typeless"
+msgstr "Fer que no tinguin tipus les constants amb prefix-radical que no és decimal"
+
+#: f/lang-options.h:219
+msgid "Generate code to check subscript and substring bounds"
+msgstr "Generar codi per a revisar els límits de subíndicis i subcadenes"
+
+#: f/lang-options.h:222
+msgid "Fortran-specific form of -fbounds-check"
+msgstr "Forma específica de Fortran de -fbounds-check"
+
+#: f/lang-options.h:226
+msgid "Disable warnings about inter-procedural problems"
+msgstr "Desactivar els avisos sobre problemes interprocedurals"
+
+#: f/lang-options.h:230
+msgid "Warn about constructs with surprising meanings"
+msgstr "Avisar sobre constructors amb significats sorprenents"
+
+#: f/lang-options.h:235
+msgid "Add a directory for INCLUDE searching"
+msgstr "Agregar un directori per a la recerca de INCLUDE"
+
+#: f/lang-options.h:237
+msgid "Set the maximum line length"
+msgstr "Establir la longitud màxima de línia"
+
+#: f/bad.def:39
+#, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr "Falta el primer operant binari per a l'operador binari en %0"
+
+#: f/bad.def:42
+#, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "Constant de caràcter de longitud zero en %0"
+
+#: f/bad.def:45
+#, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr "Element invàlid en %0 en l'expressió o subexpressió en %1"
+
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr "Falta un operant per a l'operador en %1 al final de l'expressió en %0"
+
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr "L'etiqueta %A ja es va definir en %1 quan es va redefinir en %0"
+
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr "Caràcter no reconegut en %0 [info -f g77 M LEX]"
+
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr "La definició de l'etiqueta %A en %0 en una declaració buida (per a %1)"
+
+#: f/bad.def:65
+#, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr "Primer caràcter invàlid en %0 [info -f g77 M LEX]"
+
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr "Línia massa deixa anar per a %0 [info -f g77 M LEX]"
+
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr "Caràcter no numèric en %0 en el camp d'etiqueta [info -f g77 M LEX]"
+
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr "El nombre d'etiqueta en %0 no està en el rang 1-99999"
+
+#: f/bad.def:77
+#, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr "En %0, \"!\" i \"/*\" no són delimitadors de comentari vàlids"
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr "L'indicador de continuació en %0 deu aparèixer en la columna 6 [info -f g77 M LEX]"
+
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr "Etiqueta en %0 invàlida amb indicador de continuació de línia en %1 [info -f g77 M LEX]"
+
+#: f/bad.def:91
+#, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "La constant de caràcter en %0 no té l'apòstrofe que tanca en %1"
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr "La constant hollerith en %0 especifica %A més caràcters que els presents en %1"
+
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr "Falta el parèntesi que tanca en %0 necessari per a coincidir amb els parèntesis oberts en %1"
+
+#: f/bad.def:100
+#, no-c-format
+msgid "Integer at %0 too large"
+msgstr "Enter en %0 massa gran"
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr "El punt en %0 no està seguit de dígits per a un nombre de coma flotant o per \"NOT.\", \"TRUE.\" o \"FALSE.\""
+
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr "Falta el punt que tanca entri \".%A\" en %0 i %1"
+
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr "Exponent invàlid en %0 per a la constant real en %1; \"%A\" que no és dígit en el camp de l'exponent"
+
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr "Falta un valor en %1 per a l'exponent de nombre real en %0"
+
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr "S'esperava un operador binari entre les expressions en %0 i en %1"
+
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr "El punt i coma en %0 és un element invàlid"
+
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr "Coma sobrant en la declaració FORMAT en %0"
+
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr "Coma faltant en la declaració FORMAT en %0"
+
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr "Signe espuri en la declaració FORMAT en %0"
+
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr "Nombre espuri en la declaració FORMAT en %0"
+
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr "Text espuri addicional al nombre en la declaració FORMAT en %0"
+
+#: f/bad.def:291
+#, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr "Especificador FORMAT no reconegut en %0"
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr "Falta(en) parèntesi(s) que tanquen en la declaració FORMAT en %0"
+
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr "Falta un nombre a continuació del punt en la declaració FORMAT en %0"
+
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr "Falta un nombre a continuació de \"E\" en la declaració FORMAT en %0"
+
+#: f/bad.def:433
+#, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr "Coma final espúria precedint al terminador en %0"
+
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr "En %0, especifiqui OPERATOR en lloc de ASSIGNMENT per a la declaració INTERFACE que no especifica l'operador d'assignació (=)"
+
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr "En %0, especifiqui ASSIGNMENT en lloc de OPERATOR per a la declaració INTERFACE que especifica l'operador d'assignació (=)"
+
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr "No es pot especificar =expr-iniciació en %0 a menys que \"::\" aparegui abans que la llista dels objectes"
+
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr "La referència a l'etiqueta en %1 és inconsistenta amb la seva definició en %0"
+
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr "La referència a l'etiqueta en %1 és inconsistenta amb la referència anterior en %0"
+
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr "La referència de la declaració DO a l'etiqueta en %1 segueix la seva definició en %0"
+
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr "La referència a l'etiqueta en %1 està fora del bloc que conté la definició en %0"
+
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr "Les referències de la declaració DO a l'etiqueta en %0 i %2 estan separades per un bloc sense acabar que comença en %1"
+
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr "La referència de la declaració DO a l'etiqueta en %0 i la definició de l'etiqueta en %2 estan separades per un bloc sense acabar que comença en %1"
+
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr "La definició d'etiqueta en %0 és invàlida en aquest tipus de declaració"
+
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr "La declaració en %0 és invàlida en aquest context"
+
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr "La declaració en %0 és invàlida en el context establert per la declaració en %1"
+
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr "La declaració en %0 deu especificar el nom de la construcció especificada en %1"
+
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr "El nom de la construcció en %0 és superflu, no es va especificar un nom de construcció en %1"
+
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr "El nom de construcció en %0 no és el mateix que el nom de construcció en %1"
+
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr "El nom de construcció en %0 no coincideix amb el nom de construcció per a qualsevol construcció DO contenidora"
+
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr "Falta la definició d'etiqueta en %0 per a la construcció DO que especifica l'etiqueta en %1"
+
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr "La declaració en %0 segueix al bloc ELSE per a la construcció IF en %1"
+
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr "No hi ha definició d'etiqueta per a la declaració FORMAT en %0"
+
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr "Segona ocurrència de ELSE WHERE en %0 dintre de WHERE en %1"
+
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr "A la declaració END en %0 li falta la paraula clau `%A' requerida per a procediment(s) intern(s) o mòdul(s) units per %1"
+
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr "No es permet la declaració MODULE PROCEDURE en %0 perquè INTERFACE en %1 no especifica un nom genèric, operador o assignació"
+
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr "El nom de BLOCK DATA en %0 és superflu, no es va especificar un nom en %1"
+
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr "El nom de programa en %0 és superflu, no es va especificar una declaració PROGRAM en %1"
+
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr "El nom d'unitat de programa en %0 no és el mateix que el nom en %1"
+
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr "El nom de tipus en %0 no és el mateix que el nom en %1"
+
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr "Fi del fitxer font abans que comencés el bloc en %0"
+
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr "Etiqueta indefinida, primer referenciada en %0"
+
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr "La declaració o atribut SAVE en %1 no es pot especificar juntament amb la declaració o atribut SAVE en %0"
+
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr "La declaració PUBLIC o PRIVATE en %1 no es pot especificar juntament amb la declaració PUBLIC o PRIVATE en %0"
+
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr "La declaració RETURN en %0 és invàlida dintre d'una unitat de programa principal"
+
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr "El especificador de retorn alternatiu en %0 és invàlid dintre d'una unitat de programa principal"
+
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr "El especificador de retorn alternatiu en %0 és invàlid dintre d'una funció"
+
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr "El especificador d'accés o la declaració PRIVATE en %0 és invàlid per a la definició de tipus derivat dintre d'un altre que la part d'especificació d'un mòdul"
+
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr "El especificador d'accés en %0 deu seguir immediatament a la declaració de tipus derivat en %1 sense declaracions que intervinguin"
+
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr "No es van especificar components per a %0 per a la definició de tipus derivat que comença en %1"
+
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr "No es van especificar components per a %0 per a la la definició de l'estructura que comença en %1"
+
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr "Falta el nom de l'estructura per a la definició de l'estructura externa en %0"
+
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr "Noms de camps en %0 per a la definició de l'estructura exterior -- especifiqui'ls en el seu lloc en una declaració RECORD subsecuents"
+
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr "Manca(en) el(s) nom(s) de camp(s) per a la definició de l'estructura en %0 dintre de la definició de l'estructura en %1"
+
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr "No es van especificar component en %0 per al mapa que comença en %1"
+
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr "Es van especificar zero o un mapa en %0 per a la unió que comença en %1 -- es requereixen almenys dos"
+
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr "Falta el especificador %A en la declaració en %0"
+
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr "Els elements en la llista d'I/O que comença en %0 són invàlids pel I/O dirigit per una llista de noms"
+
+#: f/bad.def:578
+#, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr "Especificacions de control d'I/O en conflicte en %0 i %1"
+
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr "No hi ha un especificador UNIT= en la llista de control d'I/O en %0"
+
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr "L'especificació en %0 requereix l'especificació ADVANCE=\"NO\" en la mateixa llista de control d'I/O"
+
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr "L'especificació en %0 requereix l'especificació FMT= explícita en la mateixa llista de control d'I/O"
+
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr "Segona ocurrència de CASE DEFAULT en %0 dintre d'un SELECT CASE en %1"
+
+#: f/bad.def:598
+#, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr "Valors/rangs casi duplicats o traslapats en %0 i %1"
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr "Desacord de tipus i/o paràmetre de tipus entre el valor CASE o el valor dintre del rang en %0 i SELECT CASE en %1"
+
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr "Especificació de rang en %0 invàlida per a la declaració CASE dintre de la declaració SELECT CASE de tipus lògic"
+
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr "Característica Fortran 90 en %0 sense suport"
+
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr "Declaració invàlida de/o referència al símbol \"%A\" en %0 [observat inicialment en %1]"
+
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr "Element null en %0 per a la referència de matriu en %1"
+
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr "Molt pocs elements (falta %A) per a %0 per a la referència de matriu en %1"
+
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr "Massa elements per a %0 per a la referència de matriu en %1"
+
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr "Falten dos punts en %0 en la referència de subcadene per a %1"
+
+#: f/bad.def:650
+#, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr "ùs invàlid en %0 de l'operador de subcadenes en %1"
+
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr "El punt d'inici/fi de la subcadena en %0 està fora del rang definit"
+
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr "Valor de l'element de la matriu en %0 està fora del rang definit"
+
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr "L'expressió en %0 té el tipus de dada o rang incorrecte per al seu context"
+
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr "Divisió per 0 (zero) en %0 (IEEE encara no té suport)"
+
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr "Se sap que el compte de passada %A és 0 (zero) en %0"
+
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr "Se sap que el valor final %A mes el compte de passada es desborda en %0"
+
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr "Se sap que els valors d'inici, fi i compte de passada %A resulten en conducta depenent de la implementació a causa de desbordament(s) en càlculs intermedis en %0"
+
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr "Se sap que els valors d'inici, fi i compte de passada %A resulten en falta d'iteracions en %0"
+
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr "Desacord de tipus entre les expressions en %0 i %1"
+
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr "No hi ha especificació per al iterador del DO implícit `%A' en %0"
+
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr "Parèntesis gratuïts al voltant de la construcció amb DO implícit en %0"
+
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr "Especificació de grandària zero invàlida en %0"
+
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
+msgstr "Matriu de grandària zero en %0"
+
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr ""
+
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr ""
+
+#: f/bad.def:708
+#, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr ""
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr ""
+
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr ""
+
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr ""
+
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr ""
+
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr ""
+
+#: f/bad.def:821
+#, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr ""
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr ""
+
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr ""
+
+#: f/bad.def:854
+#, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
+msgstr ""
+
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr ""
+
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr ""
+
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr ""
+
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr ""
+
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr ""
+
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr ""
+
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr ""
+
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr ""
+
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr ""
+
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr ""
+
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr ""
+
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr ""
+
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr ""
+
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
+msgstr ""
+
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr ""
+
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr ""
+
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr ""
+
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr ""
+
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr ""
+
+#: f/bad.def:1037
+#, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr ""
+
+#: f/bad.def:1040
+#, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr ""
+
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr ""
+
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr ""
+
+#: f/bad.def:1049
+#, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr ""
+
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr ""
+
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1085
+#, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr ""
+
+#: f/bad.def:1088
+#, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr ""
+
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr ""
+
+#: f/bad.def:1094
+#, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr ""
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
+msgstr ""
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr ""
+
+#: f/info-k.def:34
+msgid "In function"
+msgstr ""
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr ""
+
+#: f/info-k.def:36
+msgid "In program"
+msgstr ""
+
+#: f/info-k.def:37
+msgid "In block-data unit"
+msgstr ""
+
+#: f/info-k.def:38
+msgid "In common block"
+msgstr ""
+
+#: f/info-k.def:39
+msgid "In construct"
+msgstr ""
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr ""
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr ""
+
+#: java/check-init.c:917
+#, c-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr ""
+
+#: java/check-init.c:990
+#, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr ""
+
+#: java/class.c:539 java/class.c:564
+msgid "internal error - too many interface type"
+msgstr ""
+
+#: java/class.c:677
+msgid "bad method signature"
+msgstr ""
+
+#: java/class.c:726
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr ""
+
+#: java/class.c:728
+#, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr ""
+
+#: java/class.c:739
+#, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr ""
+
+#: java/class.c:1103
+#, c-format
+msgid "field '%s' not found in class"
+msgstr ""
+
+#: java/class.c:1365
+msgid "abstract method in non-abstract class"
+msgstr ""
+
+#: java/class.c:2078
+#, c-format
+msgid "non-static method '%s' overrides static method"
+msgstr ""
+
+#: java/decl.c:1541
+#, c-format
+msgid "In %s: overlapped variable and exception ranges at %d"
+msgstr ""
+
+#: java/decl.c:1622
+msgid "bad type in parameter debug info"
+msgstr ""
+
+#: java/decl.c:1632
+#, c-format
+msgid "bad PC range for debug info for local `%s'"
+msgstr ""
+
+#: java/expr.c:530
+msgid "stack underflow - dup* operation"
+msgstr ""
+
+#: java/expr.c:1534
+#, c-format
+msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+msgstr ""
+
+#: java/expr.c:1563
+#, c-format
+msgid "field `%s' not found"
+msgstr ""
+
+#: java/expr.c:1715
+msgid "ret instruction not implemented"
+msgstr ""
+
+#: java/expr.c:1857
+#, c-format
+msgid "method '%s' not found in class"
+msgstr ""
+
+#: java/expr.c:2060
+#, c-format
+msgid "failed to find class '%s'"
+msgstr ""
+
+#: java/expr.c:2070
+#, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr ""
+
+#: java/expr.c:2080
+msgid "invokestatic on non static method"
+msgstr ""
+
+#: java/expr.c:2085
+msgid "invokestatic on abstract method"
+msgstr ""
+
+#: java/expr.c:2093
+msgid "invoke[non-static] on static method"
+msgstr ""
+
+#: java/expr.c:2396
+#, c-format
+msgid "missing field '%s' in '%s'"
+msgstr ""
+
+#: java/expr.c:2402
+#, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr ""
+
+#: java/expr.c:2425
+#, c-format
+msgid "assignment to final field `%s' not in field's class"
+msgstr ""
+
+#: java/expr.c:2430
+#, c-format
+msgid "assignment to final static field `%s' not in class initializer"
+msgstr ""
+
+#: java/expr.c:2437
+#, c-format
+msgid "assignment to final field `%s' not in constructor"
+msgstr ""
+
+#: java/expr.c:2684
+#, c-format
+msgid "can't expand %s"
+msgstr ""
+
+#: java/expr.c:2861
+msgid "invalid PC in line number table"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2906
+#, c-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2943
+#, c-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr ""
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3261
+msgid "unrecogized wide sub-instruction"
+msgstr ""
+
+#: java/jcf-io.c:543
+#, c-format
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+msgstr ""
+
+#: java/jcf-parse.c:338
+msgid "bad string constant"
+msgstr ""
+
+#: java/jcf-parse.c:356
+#, c-format
+msgid "bad value constant type %d, index %d"
+msgstr ""
+
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr ""
+
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr ""
+
+#: java/jcf-parse.c:619
+#, c-format
+msgid "cannot find file for class %s"
+msgstr ""
+
+#: java/jcf-parse.c:631
+msgid "not a valid Java .class file"
+msgstr ""
+
+#: java/jcf-parse.c:634
+msgid "error while parsing constant pool"
+msgstr ""
+
+#: java/jcf-parse.c:637
+#, c-format
+msgid "error in constant pool entry #%d\n"
+msgstr ""
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:649
+#, c-format
+msgid "reading class %s for the second time from %s"
+msgstr ""
+
+#: java/jcf-parse.c:667
+msgid "error while parsing fields"
+msgstr ""
+
+#: java/jcf-parse.c:670
+msgid "error while parsing methods"
+msgstr ""
+
+#: java/jcf-parse.c:673
+msgid "error while parsing final attributes"
+msgstr ""
+
+#: java/jcf-parse.c:687
+#, c-format
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+msgstr ""
+
+#: java/jcf-parse.c:777
+msgid "missing Code attribute"
+msgstr ""
+
+#: java/jcf-parse.c:1014
+msgid "source file seen twice on command line and will be compiled only once"
+msgstr ""
+
+#: java/jcf-parse.c:1030
+msgid "no input file specified"
+msgstr ""
+
+#: java/jcf-parse.c:1059
+#, c-format
+msgid "can't close input file %s"
+msgstr ""
+
+#: java/jcf-parse.c:1096
+#, c-format
+msgid "bad zip/jar file %s"
+msgstr ""
+
+#: java/jcf-write.c:2650
+#, c-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr ""
+
+#: java/jcf-write.c:2988
+msgid "field initializer type mismatch"
+msgstr ""
+
+#: java/jcf-write.c:3419
+#, c-format
+msgid "can't create directory %s"
+msgstr ""
+
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr ""
+
+#: java/jv-scan.c:187
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr ""
+
+#: java/jv-scan.c:190
+#, c-format
+msgid "can't open output file `%s'"
+msgstr ""
+
+#: java/jv-scan.c:224
+#, c-format
+msgid "file not found `%s'"
+msgstr ""
+
+#: java/jvspec.c:426
+msgid "can't specify `-D' without `--main'\n"
+msgstr ""
+
+#: java/jvspec.c:429
+#, c-format
+msgid "`%s' is not a valid class name"
+msgstr ""
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr ""
+
+#: java/jvspec.c:442
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr ""
+
+#: java/jvspec.c:449
+msgid "cannot specify both -C and -o"
+msgstr ""
+
+#: java/jvspec.c:461
+msgid "cannot create temporary file"
+msgstr ""
+
+#: java/jvspec.c:489
+msgid "using both @FILE with multiple files not implemented"
+msgstr ""
+
+#: java/jvspec.c:538
+msgid "cannot specify `main' class when not linking"
+msgstr ""
+
+#: java/lang.c:548
+msgid "can't do dependency tracking with input from stdin"
+msgstr ""
+
+#: java/lang.c:564
+msgid "couldn't determine target name for dependency tracking"
+msgstr ""
+
+#: java/lex.c:303
+#, c-format
+msgid ""
+"unknown encoding: `%s'\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"`--encoding=UTF-8' option"
+msgstr ""
+
+#: java/mangle.c:85
+#, c-format
+msgid "can't mangle %s"
+msgstr ""
+
+#: java/mangle_name.c:144 java/mangle_name.c:216
+msgid "internal error - invalid Utf8 name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+msgid "';' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
+msgid "'*' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
+msgid "Class or interface declaration expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
+msgid "Missing class name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
+msgid "'{' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
+msgid "Missing super class name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
+msgid "Missing interface name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
+msgid "Missing variable initializer"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
+msgid "Invalid declaration"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
+msgid "']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
+msgid "Unbalanced ']'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
+msgid "Invalid method declaration, method name required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
+msgid "Identifier expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
+msgid "Invalid method declaration, return type required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
+msgid "')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
+msgid "Missing formal parameter term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
+msgid "Missing identifier"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
+msgid "Missing class type term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
+msgid "Invalid interface type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
+msgid "':' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
+msgid "Invalid expression statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
+msgid "'(' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
+msgid "Missing term or ')'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
+msgid "Missing or invalid constant expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
+msgid "Missing term and ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
+msgid "Invalid control expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
+msgid "Invalid update expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
+msgid "Invalid init statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
+msgid "Missing term or ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
+msgid "'class' or 'this' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
+msgid "'class' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
+msgid "')' or term expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
+msgid "'[' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
+msgid "Field expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
+msgid "Missing term and ']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
+msgid "']' expected, invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
+msgid "Invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
+msgid "Invalid reference type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
+msgid "Only constructors can invoke constructors"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
+#, c-format
+msgid ": `%s' JDK1.1(TM) feature"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
+#, c-format
+msgid ""
+"%s.\n"
+"%s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
+#, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
+#, c-format
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
+#, c-format
+msgid "missing static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
+#, c-format
+msgid "not a static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, c-format
+msgid "No case for %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, c-format
+msgid "unregistered operator %s"
+msgstr ""
+
+#: java/typeck.c:553
+msgid "junk at end of signature string"
+msgstr ""
+
+#: java/verify.c:479
+msgid "bad pc in exception_table"
+msgstr ""
+
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
+#, c-format
+msgid "unknown opcode %d@pc=%d during verification"
+msgstr ""
+
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
+#, c-format
+msgid "verification error at PC=%d"
+msgstr ""
+
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
+msgstr ""
+
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
+msgstr ""
+
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
+msgstr ""
+
+#: java/lang-options.h:38
+msgid "Replace system path"
+msgstr ""
+
+#: java/lang-options.h:40
+msgid "Set class path"
+msgstr ""
+
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr ""
+
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
+msgstr ""
+
+#: java/lang-options.h:46
+msgid "Choose input encoding (default comes from locale)"
+msgstr ""
+
+#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr ""
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr ""
+
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
+msgstr ""
+
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
+msgstr ""
+
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr ""
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr ""
+
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
+msgstr ""
+
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
+msgstr ""
+
+#: objc/objc-act.c:651
+#, c-format
+msgid "object does not conform to the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:737 objc/objc-act.c:810
+#, c-format
+msgid "class `%s' does not implement the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr ""
+
+#: objc/objc-act.c:963
+#, c-format
+msgid "unexpected type for `id' (%s)"
+msgstr ""
+
+#: objc/objc-act.c:968
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr ""
+
+#: objc/objc-act.c:1019
+#, c-format
+msgid "protocol `%s' has circular dependency"
+msgstr ""
+
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
+#, c-format
+msgid "cannot find protocol declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:1328
+#, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
+#, c-format
+msgid "cannot find class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2366
+#, c-format
+msgid "class `%s' already exists"
+msgstr ""
+
+#. fatal did not work with 2 args...should fix
+#: objc/objc-act.c:2473
+#, c-format
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2480
+#, c-format
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
+msgid "inconsistent instance variable specification"
+msgstr ""
+
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
+#, c-format
+msgid "multiple declarations for method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4946
+#, c-format
+msgid "invalid receiver type `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
+#, c-format
+msgid "`%s' does not respond to `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
+#, c-format
+msgid "no super class declared in interface for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5081
+msgid "cannot find class (factory) method"
+msgstr ""
+
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
+#, c-format
+msgid "return type for `%s' defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5099
+#, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr ""
+
+#: objc/objc-act.c:5108
+msgid "return type defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5125
+msgid "cannot find method"
+msgstr ""
+
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr "selector \"%s\" sense declarar"
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:5443
+#, c-format
+msgid "instance variable `%s' accessed in class method"
+msgstr ""
+
+#: objc/objc-act.c:5678
+#, c-format
+msgid "duplicate definition of class method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5684
+#, c-format
+msgid "duplicate declaration of class method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5720
+#, c-format
+msgid "duplicate definition of instance method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5726
+#, c-format
+msgid "duplicate declaration of instance method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5766
+#, c-format
+msgid "duplicate interface declaration for category `%s(%s)'"
+msgstr ""
+
+#: objc/objc-act.c:5852
+#, c-format
+msgid "instance variable `%s' is declared private"
+msgstr ""
+
+#: objc/objc-act.c:5899
+#, c-format
+msgid "instance variable `%s' is declared %s"
+msgstr ""
+
+#: objc/objc-act.c:5909
+msgid "static access to object of type `id'"
+msgstr ""
+
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
+#, c-format
+msgid "incomplete implementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, c-format
+msgid "incomplete implementation of category `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, c-format
+msgid "method definition for `%c%s' not found"
+msgstr ""
+
+#: objc/objc-act.c:6081
+#, c-format
+msgid "%s `%s' does not fully implement the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+msgid "`@end' missing in implementation context"
+msgstr ""
+
+#: objc/objc-act.c:6167
+#, c-format
+msgid "reimplementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6209
+#, c-format
+msgid "conflicting super class name `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6224
+#, c-format
+msgid "duplicate interface declaration for class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6506
+#, c-format
+msgid "duplicate declaration for protocol `%s'"
+msgstr ""
+
+#: objc/objc-act.c:7363
+msgid "[super ...] must appear in a method context"
+msgstr ""
+
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
+#, c-format
+msgid "potential selector conflict for method `%s'"
+msgstr ""
+
+#: objc-parse.y:2655
+msgid "`@end' must appear in an implementation context"
+msgstr ""
+
+#: objc-parse.y:2931
+msgid "method definition not in class context"
+msgstr ""
+
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
+msgstr ""
+
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
+msgstr ""
+
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
+msgstr ""
+
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
+msgstr ""
+
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr ""
+
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
+msgstr ""
+
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
+msgstr ""
+
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr ""
+
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr ""
+
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr ""
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "no es permet -bundle amb -dynamiclib"
+
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "no es permet -bundle_loader amb -dynamiclib"
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "no es permet -client_name amb -dynamiclib"
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "no es permet -private_bundle amb -dynamiclib"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr ""
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/arm/arm.h:178
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:180
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:182
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr ""
+
+#: config/i386/sco5.h:195
+msgid "-pg not supported on this platform"
+msgstr "-pg no té suport en aquesta plataforma"
+
+#: config/i386/sco5.h:196
+msgid "-p and -pp specified - pick one"
+msgstr "-p i -pp especificats - tria un"
+
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
+msgstr "-G·i·-static són mútuament exclusius"
+
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr ""
+
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C no dóna suport a -CC sense usar -E"
+
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr ""
+
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
+msgstr ""
+
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr ""
+
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr ""
+
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "L'opció -shared no se suporta actualment per a ELF de VAX."
+
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "punters -pg o -p i -fomit-frame són incompatibles"
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr ""
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr ""
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr ""
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr ""
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr ""
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr ""
diff --git a/gcc/po/da.po b/gcc/po/da.po
index 964b6827989..265251d6d7a 100644
--- a/gcc/po/da.po
+++ b/gcc/po/da.po
@@ -1,22 +1,192 @@
# Danish version of GCC strings.
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Ole Laursen <olau@hardworking.dk>, 2001.
+# Copyright (C) 2002, 03 Free Software Foundation, Inc.
+# Ole Laursen <olau@hardworking.dk>, 2001, 02, 03.
+#
+# Konventioner:
+#
+# ABI -> binær grænseflade
+# ANSI -> (har jeg tilladt mig at opdatere til (modsvarer Info-hjælpen)) ISO
+# access -> tilgangs-
+# aggregate -> en variabel af en sammensat type (fx struct, class)
+# ambigeous -> tvetydig
+# arg, argument -> parameter (for ikke at blande sammen med diskussionsargument)
+# array -> tabel
+# assembler -> maskinkodeoversætter
+# assertion -> postulat
+# attribute -> egenskab
+# base class -> stamklasse
+# basic block -> basisblok (funktioner deles op i disse under oversættelsen)
+# braces -> krøllede paranteser
+# braced-group -> sætningsblok
+# branch -> forgrening
+# buffer -> mellemlager
+# cast -> typetildeling, omtvingelse af typen
+# con-/destructor -> kon-/destruktionsfunktion
+# conflicting -> modstridende
+# convert -> konvertere, omdanne
+# declared -> erklæret
+# defaults to -> antages at være
+# dereference -> følge
+# discard -> fjerne
+# discard -> kassere
+# driver -> styringsprogram
+# duplicate -> optræder mere end én gang; mangfoldiggøre
+# edge list -> kantliste
+# elt -> udtrykstræ
+# endian -> endet (fx storendet, lillendet)
+# endianness -> endethed
+# exception handling -> håndtering af undtagelser
+# excess -> for mange
+# expansion -> udfoldning
+# extra -> (ret ofte) overskydende
+# floating point -> kommatal
+# formals -> parametre
+# format string -> formateringsstreng
+# forward -> forhånd (f.eks. forhåndserklæring)
+# frame table -> rammetabel
+# friend -> ven(ne-)
+# gp (general purpose) register -> alment register (havde først brug- med, med det er overflødigt)
+# hard register -> hardware-register
+# have no effect -> udvirker intet
+# identifier -> kaldenavn
+# incompatible -> uforenelig, passer ikke
+# incomplete -> ufuldstændig
+# initialize -> tildele startværdi, klargøre
+# initializer -> startværdi
+# initializer list -> klargøringsliste
+# inline -> integrede, indbygges (eller som reserveret ord: inline)
+# instance -> instans (fx af en klasse)
+# issue (fx warnings) -> fremkom med
+# iterator -> løkkevariabel
+# junk -> ragelse
+# keyword -> reserveret ord
+# label -> etiket
+# linking -> sammenkædning
+# lvalue -> venstreværdi
+# macro -> makro
+# malformed -> forkert udformet, misdannet
+# member function/method -> [medlems]funktion (metode i Objective C)
+# mismatch -> passer ikke med
+# mmap -> indlæse
+# modifier, qualifier -> modifikation
+# multiple inheritance -> multipel nedarvning
+# newline -> linjeskift
+# non-numeric -> ikke et tal
+# null character -> nultegn
+# null pointer -> nul[-]henvisning
+# offset -> forskydning
+# opcodes (til ovenstående) -> instruktioner
+# out of range -> uden for det gyldige (til tider mulige) interval
+# overflow -> (til tider) løber over
+# overlap -> [interval]sammenfald
+# overloading -> flertydiggørelse
+# padding -> udfylning
+# pass -> overbringe (fx parametre), videregive
+# pointer -> henvisning[svariabel]
+# preprocessor -> præprocessor
+# profiling -> profilering
+# promote -> forfremme
+# request -> (til tider) forespørgsel
+# return -> returnerer
+# schedule -> planlæg
+# scope -> virkningsfelt
+# shadowing -> skygger for
+# shift -> skift
+# specified -> (oftest) angivet
+# specifier -> anvisning, angivelse
+# stab -> stik (?)
+# statement -> sætning
+# storage class -> lagringsklasse
+# strict -> nøje
+# string -> streng
+# subscript -> indeks, opslag
+# target -> mål[arkitektur]
+# template -> skabelon
+# thrown -> kastet
+# token -> symbol
+# top-level -> øverste niveau
+# trigraphs ('??%c'-dimser) -> trigrafer
+# undefine -> glemme definitionen
+# undefined blahblah -> blahblah er ikke defineret
+# underscore -> understreg
+# universal-character-name -> universelt tegn[navn]
+# unsigned -> uden fortegn
+# varargs -> variable parameterlister
+# variadic macro -> makro med vilkårligt antal parametre
+# variabels -> variabler (med afslutnings-r)
+# vtable -> virtuel tabel
+# wide character -> bredtegn
+# white space -> mellemrum
+# whitespace -> mellemrum
+#
+# Reserverede ord ofte ikke oversat, ej heller er der anbragt ' omkring
+# (fx unsigned -> unsigned; derimod function -> funktion). Forkortelser
+# som decl (for declaration) og arg (for argument) er oversat uforkortet
+# - der er jo masser af plads at tage af.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 2.96.20000615\n"
-"POT-Creation-Date: 2001-06-11 15:08-0700\n"
-"PO-Revision-Date: 2001-02-10 16:06+01:00\n"
+"Project-Id-Version: gcc 3.3\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2003-05-25 18:00+0200\n"
"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: builtins.c:280
-#, fuzzy
+#: attribs.c:185
+#, c-format
+msgid "`%s' attribute directive ignored"
+msgstr "egenskabsdirektivet '%s' ignoreret"
+
+#: attribs.c:193
+#, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "forkert antal parametre angivet til egenskaben '%s'"
+
+#: attribs.c:210
+#, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr "egenskaben '%s' kan ikke anvendes på typer"
+
+#: attribs.c:247
+#, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, c-format
+msgid "`%s' attribute ignored"
+msgstr "egenskaben '%s' ignoreret"
+
+#: builtins.c:285
msgid "offset outside bounds of constant string"
-msgstr "parameteren til 'asm' er ikke en konstant streng"
+msgstr "forskydning udenfor grænserne af konstant streng"
+
+#: builtins.c:765
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "den anden parameter til '__builtin_prefetch' skal være en konstant"
+
+#: builtins.c:772
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr "ugyldig anden parameter til '__builtin_prefetch'; benytter nul"
+
+#: builtins.c:779
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "en tredje parameter til '__builtin_prefetch' skal være en konstant"
+
+#: builtins.c:786
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr "ugyldig tredje parameter til '__builtin_prefetch'; benytter nul"
#. ??? We used to try and build up a call to the out of line function,
#. guessing about what registers needed saving etc. This became much
@@ -25,2228 +195,2449 @@ msgstr "parameteren til 'asm' er ikke en konstant streng"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2634
-#, fuzzy
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+msgstr "__builtin_saveregs understøttes ikke af denne målarkitektur"
-#: builtins.c:2677
-#, fuzzy
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
-msgstr "parameteren til 'asm' er ikke en konstant streng"
+msgstr "parameteren til '__builtin_args_info' skal være konstant"
-#: builtins.c:2683
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
-msgstr ""
+msgstr "parameteren til '__builtin_args_info' er uden for det gyldige interval"
-#: builtins.c:2689
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
-msgstr ""
+msgstr "manglende parameter i '__builtin_args_info'"
-#: builtins.c:2720
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
-msgstr ""
+msgstr "`va_start' benyttet i en funktion med fast antal parametre"
-#: builtins.c:2739
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
-msgstr ""
+msgstr "den anden parameter til 'va_start' er ikke den sidste navngivne parameter"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2744
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
-msgstr ""
+msgstr "`__builtin_next_arg' kaldt uden en parameter"
-#: builtins.c:2846
-#, fuzzy
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
-msgstr "for mange parametre til funktionen '%s'"
+msgstr "for mange parametre til funktionen 'va_start'"
-#: builtins.c:2932
-#, fuzzy
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
-msgstr "den anden parameter til 'operator delete' skal være af typen 'size_t'"
+msgstr "den første parameter til 'va_arg' er ikke af typen 'va_list'"
-#: builtins.c:2960
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
-msgstr ""
+msgstr "'%s' forfremmes til '%s' ved overbringelse gennem '...'"
-#: builtins.c:2964
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
-msgstr ""
+msgstr "(så du skal overbring '%s' ikke '%s' til 'va_arg')"
-#: builtins.c:3073
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
-msgstr ""
+msgstr "ugyldig parameter til '__builtin_frame_address'"
-#: builtins.c:3075
-#, fuzzy
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
-msgstr "Mere end ét kald til __builtin_eh_return"
+msgstr "ugyldig parameter til '__builtin_return_address'"
-#: builtins.c:3088
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
-msgstr ""
+msgstr "ikke-understøttet parameter til '__builtin_frame_address'"
-#: builtins.c:3090
-#, fuzzy
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
-msgstr "Mere end ét kald til __builtin_eh_return"
+msgstr "ikke-understøttet parameter til '__builtin_return_address'"
-#: builtins.c:3253
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
-msgstr ""
+msgstr "den anden parameter til '__builtin_expect' skal være en konstant"
-#: builtins.c:3564
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
-msgstr ""
-
-#: builtins.c:3578
-#, fuzzy
-msgid "__builtin_trap not supported by this target"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+msgstr "den anden paramter til '__builtin_longjmp' skal være 1"
#. just do library call, if unknown builtin
-#: builtins.c:3630 c-common.c:4256
-#, fuzzy, c-format
-msgid "built-in function `%s' not currently supported"
-msgstr "%s: definitionen af funktionen '%s' er ikke omdannet\n"
-
-#: c-common.c:465
-#, c-format
-msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
-msgstr ""
-
-#: c-common.c:630
-#, c-format
-msgid "`%s' attribute directive ignored"
-msgstr ""
-
-#: c-common.c:638
-#, c-format
-msgid "`%s' attribute does not apply to types"
-msgstr ""
-
-#: c-common.c:645
-#, c-format
-msgid "wrong number of arguments specified for `%s' attribute"
-msgstr "forkert antal parametre angivet til '%s'-egenskaben"
-
-#: c-common.c:661 c-common.c:668 c-common.c:675 c-common.c:688 c-common.c:696
-#: c-common.c:711 c-common.c:724 c-common.c:732 c-common.c:748 c-common.c:760
-#: c-common.c:772 c-common.c:777 c-common.c:951 c-common.c:1103
-#, c-format
-msgid "`%s' attribute ignored"
-msgstr ""
-
-#: c-common.c:810
+#: builtins.c:4092 c-common.c:4459
#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "ukendt maskintilstand '%s'"
-
-#: c-common.c:813
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "ingen datatype til tilstand '%s'"
-
-#: c-common.c:820
-#, c-format
-msgid "type with more precision than %s"
-msgstr ""
-
-#: c-common.c:839
-msgid "section attribute cannot be specified for local variables"
-msgstr ""
+msgid "built-in function `%s' not currently supported"
+msgstr "den indbyggede funktion '%s' understøttes i øjeblikket ikke"
-#: c-common.c:846
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr ""
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "målprocessoren understøtter ikke uendelig"
-#: c-common.c:852
+#: c-common.c:1168
#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr ""
-
-#: c-common.c:855
-#, fuzzy
-msgid "section attributes are not supported for this target"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
-
-#: c-common.c:874
-msgid "requested alignment is not a constant"
-msgstr "angivet justering er ikke en konstant"
-
-#: c-common.c:879
-msgid "requested alignment is not a power of 2"
-msgstr "angivet justering er ikke en potens af 2"
+msgid "`%s' is not defined outside of function scope"
+msgstr "'%s' er ikke defineret uden for funktionsvirkefelt"
-#: c-common.c:881
-msgid "requested alignment is too large"
-msgstr "angivet justering er for stor"
-
-#: c-common.c:904
-#, fuzzy, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "både signed og unsigned er angivet for '%s'"
-
-#: c-common.c:929
+#: c-common.c:1189
#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr ""
-
-#: c-common.c:937
-msgid "alias arg not a string"
-msgstr "aliasparameter er ikke en streng"
-
-#: c-common.c:958 c-common.c:975 c-common.c:992
-#, fuzzy, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "new kan ikke bruges på en funktionstype"
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr "strenglængden '%d' er større end den længde på '%d' som ISO C%d-oversættere er pålagt at understøtte"
-#: c-common.c:964 c-common.c:981 c-common.c:998
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr ""
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "sammensætning af strengkonstanter med __FUNCTION__ er forældet"
-#: c-common.c:1131
-#, fuzzy
+#: c-common.c:1343
msgid "overflow in constant expression"
-msgstr "heltallet løber over i forbehandlerudtrykket"
+msgstr "overløb i konstant udtryk"
-#: c-common.c:1152
-#, fuzzy
+#: c-common.c:1364
msgid "integer overflow in expression"
-msgstr "heltallet løber over i forbehandlerudtrykket"
+msgstr "heltalsoverløb i udtryk"
-#: c-common.c:1161
-#, fuzzy
+#: c-common.c:1373
msgid "floating point overflow in expression"
-msgstr "kommatal er ikke tilladt i '#if'-udtryk"
+msgstr "kommatalsoverløb i udtryk"
+
+#: c-common.c:1379
+msgid "vector overflow in expression"
+msgstr "vektoroverløb i udtryk"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:1182
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
-msgstr ""
+msgstr "stort heltal forkortes underforstået til type uden fortegn"
-#: c-common.c:1184
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
-msgstr ""
+msgstr "negativt heltal forkortes underforstået til type uden fortegn"
-#: c-common.c:1231
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
-msgstr ""
+msgstr "overløb i underforstået konstant konvertering"
-#: c-common.c:1379
-#, fuzzy, c-format
+#: c-common.c:1600
+#, c-format
msgid "operation on `%s' may be undefined"
-msgstr "erklæring af '%s' som void"
+msgstr "brug af '%s' er muligvis ikke defineret"
-#: c-common.c:1664
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "udtrykket er af en ufuldstændig type"
-#: c-common.c:1697
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "case-etiketten kan ikke reduceres til en heltalskonstant"
-#: c-common.c:1967
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "ugyldigt sandhedsværdiudtryk"
-#: c-common.c:2018
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "ugyldige operander til binær %s"
-#: c-common.c:2253 c-common.c:2262
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
-msgstr ""
+msgstr "sammenligning er altid falsk på grund af den begrænsede rækkevidde af datatypen"
-#: c-common.c:2255 c-common.c:2264
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
-msgstr ""
+msgstr "sammenligning er altid sand på grund af den begrænsede rækkevidde af datatypen"
-#: c-common.c:2330
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
-msgstr ""
+msgstr "sammenligning med unsigned udtryk >= 0 er altid sand"
-#: c-common.c:2339
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
-msgstr ""
+msgstr "sammenligning med unsigned udtryk < 0 er altid falsk"
-#: c-common.c:2390 f/com.c:15291
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "henvisning af typen 'void *' benyttet i udregning"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "henvisning til en funktion benyttet i udregning"
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr "henvisning til en medlemsfunktion benyttet i udregning"
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr "henvisning til et medlem benyttet i udregning"
+
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "værdi af struct-type angivet hvor skalar er påkrævet"
-#: c-common.c:2394 f/com.c:15295
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "værdi af union-type angivet hvor skalar er påkrævet"
-#: c-common.c:2398 f/com.c:15299
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "værdi af tabeltype angivet hvor skalar er påkrævet"
-#: c-common.c:2513 f/com.c:15425
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
-msgstr ""
+msgstr "foreslår paranteser omkring tildeling der er benyttet som boolsk værdi"
-#: c-common.c:2557 c-common.c:2589
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "ugyldig brug af 'restrict'"
-#: c-common.c:3724 c-typeck.c:1792
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ugyldig anvendelse af 'sizeof' på en funktionstype"
+
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "ugyldig anvendelse af '%s' på en void-type"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "ugyldig anvendelse af '%s' på en ufuldstændig type"
+
+#: c-common.c:3121
+msgid "`__alignof' applied to a bit-field"
+msgstr "'__alignof' benyttet på et bitfelt"
+
+#: c-common.c:3618
+#, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "kan ikke deaktivere den indbyggede funktion '%s'"
+
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "for få parametre til funktionen '%s'"
-#: c-common.c:3730 c-typeck.c:1644
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "for mange parametre til funktionen '%s'"
-#: c-common.c:3917
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "parameter der ikke er et kommatal, til funktionen '%s'"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr "henvisningsvariabler er ikke tilladt som case-værdier"
-#: c-common.c:3923
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
-msgstr ""
+msgstr "ISO C++ forbyder intervaludtryk i switch-sætninger"
-#: c-common.c:3925
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
-msgstr ""
+msgstr "ISO C forbyder intervaludtryk i switch-sætninger"
-#: c-common.c:3955
+#: c-common.c:4119
msgid "empty range specified"
-msgstr ""
+msgstr "tomt interval angivet"
-#: c-common.c:4006
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
-msgstr "case-værdi optræder mere end én gang (måske pga. overlap)"
+msgstr "case-værdi optræder mere end én gang (måske pga. intervalsammenfald)"
-#: c-common.c:4008
-#, fuzzy
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
-msgstr "case-værdi optræder mere end én gang (måske pga. overlap)"
+msgstr "dette er det første punkt som falder sammen med den værdi"
-#: c-common.c:4012
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "case-værdi optræder mere end én gang"
-#: c-common.c:4013
+#: c-common.c:4177
msgid "previously used here"
-msgstr ""
+msgstr "tidligere benyttet her"
-#: c-common.c:4017
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr "flere default-etiketter i én switch-konstruktion"
-#: c-common.c:4018
+#: c-common.c:4182
msgid "this is the first default label"
-msgstr ""
+msgstr "dette er den første default-etiket"
-#: c-common.c:4526
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr ""
+#: c-common.c:4210
+msgid "ISO C++ forbids taking the address of a label"
+msgstr "ISO C++ forbyder at tage adressen af en etiket"
-#: c-common.c:4528
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr ""
+#: c-common.c:4212
+msgid "ISO C forbids taking the address of a label"
+msgstr "ISO C forbyder at tage adressen af en etiket"
-#: c-common.c:4530
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr ""
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "erklæring af '%s' skygger for '%s'"
-#: c-common.c:4532
-msgid "-Wformat-security ignored without -Wformat"
-msgstr ""
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "ukendt maskintilstand '%s'"
-#: c-common.c:4534
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr ""
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "ingen datatype til tilstanden '%s'"
+
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "kunne ikke emulere '%s'"
+
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "sektionsegenskaben kan ikke angives for lokale variabler"
-#: c-convert.c:78 c-typeck.c:983 c-typeck.c:4098 cp/typeck.c:1754
-#: cp/typeck.c:6304
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "sektionen '%s' strider mod tidligere erklæring"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "sektionsegenskaben er ikke tilladt for '%s'"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "sektionsegenskaber understøttes ikke på denne målarkitektur"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "angivet justering er ikke en konstant"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "angivet justering er ikke en potens af 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "angivet justering er for stor"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "justering må ikke angives for '%s'"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "'%s' er defineret både normalt og som et alias"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "aliasparameter er ikke en streng"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "synlighedsparameter er ikke en streng"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "synlighedsparameter skal være en af \"default\", \"hidden\", \"protected\" eller \"internal\""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "tls_model-parameter er ikke en streng"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "tls_model-parameter skal være en af \"local-exec\", \"initial-exec\", \"local-dynamic\" eller \"global-dynamic\""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "kan ikke angive '%s'-egenskaben efter definitionen"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "'defined' optræder uden et kaldenavn"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "det kaldte objekt er ikke en funktion"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "'%s'-egenskaben ignoreret for '%s'"
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "ugyldig vektortype for egenskaben '%s'"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "ingen vektortilstand med den angivne størrelse og typen kunne findes"
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "ikke-nul egenskab uden parametre til en ikke-prototype"
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "ikke-nul parameter har ugyldig operandnummer (parameter %lu)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "ikke-nul parameter med operandnummer uden for det gyldig interval (parameter %lu, operand %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "ikke-nul parameter refererer til ikke-henvisningsoperand (parameter %lu, operand %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "nulparameter hvor ikke-nul er påkrævet (parameter %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
msgid "void value not ignored as it ought to be"
msgstr "tom værdi er ikke ignoreret som den burde være"
-#: c-convert.c:110 java/typeck.c:150
+#: c-convert.c:112 java/typeck.c:150
msgid "conversion to non-scalar type requested"
msgstr "konvertering til ikke-skalartype udbedt"
-#: c-decl.c:550
-#, c-format
-msgid "unknown C standard `%s'"
-msgstr "ukendt C-standard '%s'"
-
-#: c-decl.c:844
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
-msgstr ""
+msgstr "tabellen '%s' antages kun at have ét element"
-#: c-decl.c:1020
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "'struct %s' er ufuldstændig ved virkefeltets afslutning her"
-#: c-decl.c:1023
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "'union %s' er ufuldstændig ved virkefeltets afslutning her"
-#: c-decl.c:1026
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "'enum %s' er ufuldstændig ved virkefeltets afslutning her"
-#: c-decl.c:1140 c-decl.c:1305 java/decl.c:1337
-#, fuzzy, c-format
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
+#, c-format
msgid "label `%s' used but not defined"
-msgstr "'%.*s' er ikke defineret"
+msgstr "etiketten '%s' er benyttet, men ikke defineret"
-#: c-decl.c:1146 c-decl.c:1312 java/decl.c:1343
-#, fuzzy, c-format
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
+#, c-format
msgid "label `%s' defined but not used"
-msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
+msgstr "etiketten '%s' er defineret, men ikke benyttet"
-#: c-decl.c:1434 c-decl.c:1487
-#, fuzzy, c-format
+#: c-decl.c:893 cp/decl.c:3335
+#, c-format
+msgid "function `%s' redeclared as inline"
+msgstr "funktionen '%s' omerklæret som inline"
+
+#: c-decl.c:895 cp/decl.c:3337
+#, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "tidligere erklæring af funktionen '%s' med egenskaben noinline"
+
+#: c-decl.c:902 cp/decl.c:3344
+#, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr "funktionen '%s' omerklæret med egenskaben noinline"
+
+#: c-decl.c:904 cp/decl.c:3346
+#, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "tidligere erklæring af funktionen '%s' var inline"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#: c-decl.c:933 c-decl.c:979
+#, c-format
msgid "shadowing built-in function `%s'"
-msgstr "kan ikke klargøre vennefunktionen '%s'"
+msgstr "skygger for den indbyggede funktion '%s'"
-#: c-decl.c:1436
-#, fuzzy, c-format
+#: c-decl.c:935
+#, c-format
msgid "shadowing library function `%s'"
-msgstr "ugyldig lagringsklasse for funktion '%s'"
+msgstr "skygger for biblioteksfunktionen '%s'"
-#: c-decl.c:1442
-#, fuzzy, c-format
+#: c-decl.c:941
+#, c-format
msgid "library function `%s' declared as non-function"
-msgstr "feltet '%s' er erklæret som en funktion"
+msgstr "biblioteksfunktionen '%s' er erklæret som noget der ikke er en funktion"
-#: c-decl.c:1446 c-decl.c:1449
-#, fuzzy, c-format
+#: c-decl.c:945 c-decl.c:948
+#, c-format
msgid "built-in function `%s' declared as non-function"
-msgstr "feltet '%s' er erklæret som en funktion"
+msgstr "den indbyggede funktion '%s' er erklæret som noget der ikke er en funktion"
-#: c-decl.c:1453 objc/objc-act.c:2480 objc/objc-act.c:6133
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "'%s' omerklæret som en anden form for symbol"
-#: c-decl.c:1454 c-decl.c:1632 c-decl.c:1779 objc/objc-act.c:2482
-#: objc/objc-act.c:6135 objc/objc-act.c:6193
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "'%s' er tidligere erklæret"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1536
-#, fuzzy, c-format
+#: c-decl.c:1048
+#, c-format
msgid "conflicting types for built-in function `%s'"
-msgstr "kan ikke klargøre vennefunktionen '%s'"
+msgstr "modstridende typer for den indbyggede funktion '%s'"
-#: c-decl.c:1579 c-decl.c:1598
-#, fuzzy, c-format
+#: c-decl.c:1091 c-decl.c:1110
+#, c-format
msgid "conflicting types for `%s'"
-msgstr "modstridende superklassenavn '%s'"
+msgstr "modstridende typer for '%s'"
-#: c-decl.c:1621
-msgid "A parameter list with an ellipsis can't match an empty parameter name list declaration."
-msgstr "En parameterliste med '...' passer ikke til en erklæring med en tom parameterliste"
+#: c-decl.c:1133
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr "en parameterliste med '...' passer ikke til en erklæring med en tom parameterliste"
-#: c-decl.c:1627
-msgid "An argument type that has a default promotion can't match an empty parameter name list declaration."
-msgstr "En parametertype med automatisk forfremmelse passer ikke til en erklæring med en tom parameterliste."
+#: c-decl.c:1139
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr "en parametertype med automatisk forfremmelse passer ikke til en erklæring med en tom parameterliste"
-#: c-decl.c:1642 c-decl.c:1664
-#, fuzzy, c-format
-msgid "redefinition of `%s'"
-msgstr "omdefinering af '%s %s'"
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "trådlokal erklæring af '%s' følger ikke-trådlokal erklæring"
-#: c-decl.c:1645
-#, fuzzy, c-format
-msgid "redeclaration of `%s'"
-msgstr "omerklæring af 'enum %s'"
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "ikke-trådlokal erklæring af '%s' følger trådlokal erklæring"
-#: c-decl.c:1648
-#, fuzzy, c-format
-msgid "conflicting declarations of `%s'"
-msgstr "modstridende superklassenavn '%s'"
+#: c-decl.c:1175 c-decl.c:1198
+#, c-format
+msgid "redefinition of `%s'"
+msgstr "omdefinering af '%s'"
-#: c-decl.c:1657 c-decl.c:1669
+#: c-decl.c:1178
#, c-format
-msgid "`%s' previously defined here"
-msgstr ""
+msgid "redeclaration of `%s'"
+msgstr "omerklæring af '%s'"
-#: c-decl.c:1658 c-decl.c:1670
+#: c-decl.c:1181
#, c-format
-msgid "`%s' previously declared here"
-msgstr ""
+msgid "conflicting declarations of `%s'"
+msgstr "modstridende erklæringer af '%s'"
-#: c-decl.c:1691
-#, fuzzy, c-format
+#: c-decl.c:1225
+#, c-format
msgid "prototype for `%s' follows"
-msgstr "%s: modstridene for '%s' følger:\n"
+msgstr "prototypen for '%s' følger"
-#: c-decl.c:1692 c-decl.c:1700 c-decl.c:1716
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
-msgstr ""
+msgstr "definition uden prototype her"
-#: c-decl.c:1699
-#, fuzzy, c-format
+#: c-decl.c:1233
+#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
-msgstr "antallet af parametre passer ikke til prototypen"
+msgstr "prototypen for '%s' følger og antallet af parametre passer ikke"
-#: c-decl.c:1714
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
-msgstr ""
+msgstr "prototypen for '%s' følger og den %d. parameter passer ikke"
-#: c-decl.c:1731
-#, fuzzy, c-format
+#: c-decl.c:1261
+#, c-format
msgid "`%s' declared inline after being called"
-msgstr "'%s' er erklæret som en funktion der returnerer en tabel"
+msgstr "'%s' er erklæret inline efter at være blevet kaldt"
-#: c-decl.c:1736
-#, fuzzy, c-format
+#: c-decl.c:1267
+#, c-format
msgid "`%s' declared inline after its definition"
-msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
+msgstr "'%s' er erklæret inline efter dens definition"
-#: c-decl.c:1743
-#, fuzzy, c-format
+# anden 'declaration' er underforstået i engelsk original
+#: c-decl.c:1274
+#, c-format
msgid "static declaration for `%s' follows non-static"
-msgstr "erklæring af '%s' som void"
+msgstr "static-erklæring af '%s' følger erklæring uden static"
-#: c-decl.c:1751
-#, fuzzy, c-format
+#: c-decl.c:1282
+#, c-format
msgid "non-static declaration for `%s' follows static"
-msgstr "Kan ikke finde interface-erklæringen af '%s'"
+msgstr "erklæring uden static af '%s' følger static-erklæring"
-#: c-decl.c:1758
-#, fuzzy, c-format
+#: c-decl.c:1289
+#, c-format
msgid "const declaration for `%s' follows non-const"
-msgstr "%s: erklæringer af '%s' vil ikke blive omdannet\n"
+msgstr "const-erklæring af '%s' følger ikke-konstant erklæring"
-#: c-decl.c:1765
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
-msgstr ""
+msgstr "typemodifikationer for '%s' strider mod tidligere erklæring"
-#: c-decl.c:1778
-#, fuzzy, c-format
+#: c-decl.c:1309
+#, c-format
msgid "redundant redeclaration of `%s' in same scope"
-msgstr "erklæring af '%s' som void"
+msgstr "overflødig omerklæring af '%s' i samme virkefelt"
-#: c-decl.c:2069
-#, fuzzy, c-format
+#: c-decl.c:1619 java/decl.c:1102
+#, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr "erklæring af '%s' skygger for en parameter"
+
+#: c-decl.c:1622 java/decl.c:1105
+#, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr "erklæring af '%s' skygger for et symbol fra parameterlisten"
+
+#: c-decl.c:1643 cp/decl.c:4479
+msgid "a parameter"
+msgstr "en parameter"
+
+#: c-decl.c:1645 cp/decl.c:4496
+msgid "a previous local"
+msgstr "en tidligere lokal variabel"
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+msgid "a global declaration"
+msgstr "en global erklæring"
+
+#: c-decl.c:1693
+#, c-format
msgid "nested extern declaration of `%s'"
-msgstr "indlejret omdefinering af '%s'"
+msgstr "indlejret extern-erklæring af '%s'"
-#: c-decl.c:2094 java/decl.c:989
-#, fuzzy, c-format
+#: c-decl.c:1712 java/decl.c:1055
+#, c-format
msgid "`%s' used prior to declaration"
-msgstr "'%s' er underforstået erklæret som en funktion"
+msgstr "'%s' benyttes før erklæringen"
-#: c-decl.c:2115 c-decl.c:2330
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
-msgstr ""
+msgstr "'%s' blev underforstået erklæret 'extern' og derefter 'static'"
-#: c-decl.c:2225
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
-msgstr ""
+msgstr "typen passer ikke med tidligere ekstern erklæring"
-#: c-decl.c:2226
-#, fuzzy, c-format
+#: c-decl.c:1830
+#, c-format
msgid "previous external decl of `%s'"
-msgstr "'%s' er tidligere erklæret"
+msgstr "tidligere ekstern erklæring af '%s'"
-#: c-decl.c:2239
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
-msgstr ""
+msgstr "typen passer ikke med tidligere underforstået erklæring"
-#: c-decl.c:2241
-#, fuzzy, c-format
+#: c-decl.c:1845
+#, c-format
msgid "previous implicit declaration of `%s'"
-msgstr "'%s' er tidligere erklæret"
-
-#: c-decl.c:2258
-#, fuzzy, c-format
-msgid "type of external `%s' is not global"
-msgstr "størrelsen af tabel '%s' er for stor"
+msgstr "tidligere underforstået erklæring af '%s'"
-#: c-decl.c:2309
-#, fuzzy, c-format
+#: c-decl.c:1880
+#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
-msgstr "'%s' er underforstået erklæret som en funktion"
+msgstr "'%s' blev tidligere underforstået erklæret til at returnere 'int'"
-#: c-decl.c:2334
-#, fuzzy, c-format
+#: c-decl.c:1905
+#, c-format
msgid "`%s' was declared `extern' and later `static'"
-msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
+msgstr "'%s' blev erklæret 'extern' og derefter 'static'"
-#: c-decl.c:2357
-#, fuzzy, c-format
+#: c-decl.c:1929
+#, c-format
msgid "extern declaration of `%s' doesn't match global one"
-msgstr "'%s' erklæret som en tabel af void"
+msgstr "extern-erklæring af '%s' passer ikke med den globale"
-#: c-decl.c:2397
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
-msgstr ""
+msgstr "'%s' er lokalt ekstern, men globalt statisk"
-#: c-decl.c:2433 c-decl.c:2458 cp/decl.c:4225 java/decl.c:1036
-#, fuzzy, c-format
-msgid "declaration of `%s' shadows a parameter"
-msgstr "erklæring af '%s' som void"
-
-#: c-decl.c:2436 java/decl.c:1039
-#, fuzzy, c-format
-msgid "declaration of `%s' shadows a symbol from the parameter list"
-msgstr "'%s' erklæret som en tabel af void"
-
-#: c-decl.c:2460 cp/decl.c:4233
-#, fuzzy, c-format
-msgid "declaration of `%s' shadows previous local"
-msgstr "erklæring af '%s' som void"
-
-#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2463 cp/decl.c:4237
-#, fuzzy, c-format
-msgid "declaration of `%s' shadows global declaration"
-msgstr "'%s' erklæret som en tabel af funktioner"
-
-#: c-decl.c:2553
-#, fuzzy, c-format
+#: c-decl.c:2095
+#, c-format
msgid "function `%s' was previously declared within a block"
-msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
+msgstr "funktionen '%s' blev tidligere erklæret inden for en blok"
-#: c-decl.c:2570 c-decl.c:2572
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "underforstået erklæring af funktionen '%s'"
-#: c-decl.c:2659
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
-#: c-decl.c:2716
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "etiketten '%s' er blevet erklæret mere end én gang"
-#: c-decl.c:2719
-#, fuzzy
+#: c-decl.c:2256
msgid "this is a previous declaration"
-msgstr "'%s' er tidligere erklæret"
+msgstr "dette er en tidligere erklæring"
-#: c-decl.c:3246
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
-msgstr ""
+msgstr "unavngiven struct/union som ikke definerer nogen instanser"
-#: c-decl.c:3265
-#, fuzzy
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
-msgstr "to typer angivet i én tom erklæring"
+msgstr "ubrugeligt reserveret ord eller typenavn i tom erklæring"
-#: c-decl.c:3272
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "to typer angivet i én tom erklæring"
-#: c-decl.c:3277 c-parse.y:303 c-parse.y:722 c-parse.y:724 c-parse.y:774
-#: cp/parse.y:724 cp/parse.y:1781 objc/objc-parse.y:332 objc/objc-parse.y:774
-#: objc/objc-parse.y:776 objc/objc-parse.y:826 objc/objc-parse.y:2574
-#, fuzzy
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
-msgstr "flere typer i én erklæring"
+msgstr "tom erklæring"
-#: c-decl.c:3334
-#, fuzzy, c-format
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C90 understøtter ikke 'static' eller typemodifikationer i parametertabelerklæringer"
+
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C90 understøtter ikke tabelerklæringer med '[*]'"
+
+#: c-decl.c:2745
+msgid "GCC does not yet properly implement `[*]' array declarators"
+msgstr "GCC understøtter endnu ikke ordentligt tabelerklæringer med '[*]'"
+
+#: c-decl.c:2764
+msgid "static or type qualifiers in abstract declarator"
+msgstr "static eller typemodifikationer i abstrakt erklæring"
+
+#: c-decl.c:2838
+#, c-format
msgid "`%s' is usually a function"
-msgstr "'%s' er underforstået erklæret som en funktion"
+msgstr "'%s' er sædvanligvis en funktion"
-#: c-decl.c:3348
+# init dækker over værditildeling her - samme for de næste mange
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
-msgstr "typedef '%s' bliver tildelt en værdi"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef '%s' bliver tildelt en værdi (benyt __typeof__ i stedet)"
-#: c-decl.c:3355
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr "funktionen '%s' bliver tildelt en startværdi som en variabel"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3362
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
-msgstr "parameter '%s' bliver tildelt en startværdi"
+msgstr "parameteren '%s' bliver tildelt en startværdi"
-#: c-decl.c:3382 c-typeck.c:4829
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi"
-#: c-decl.c:3388
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr "variablen '%s' bliver tildelt en startværdi, men er af en ufuldstændig type"
-#: c-decl.c:3394
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "elementer i tabellen '%s' er af en ufuldstændig type"
-#: c-decl.c:3407
-#, fuzzy, c-format
+#: c-decl.c:2905
+#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
-msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
+msgstr "erklæringen af '%s' indeholder 'extern' og variablen bliver tildelt en startværdi"
-#: c-decl.c:3521
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr "inline funktion '%s' givet egenskaben noinline"
+
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
-msgstr ""
+msgstr "startværdien giver ikke størrelsen af '%s'"
-#: c-decl.c:3526
-#, fuzzy, c-format
+#: c-decl.c:3033
+#, c-format
msgid "array size missing in `%s'"
-msgstr "Et makronavn mangler efter %s"
+msgstr "tabelstørrelsen mangler i '%s'"
-#: c-decl.c:3542
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
-msgstr ""
+msgstr "nul eller negativ størrelse for tabellen '%s'"
-#: c-decl.c:3570
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
-msgstr ""
+msgstr "lagringsstørrelsen af '%s' er ikke kendt"
-#: c-decl.c:3580
-#, fuzzy, c-format
+#: c-decl.c:3087
+#, c-format
msgid "storage size of `%s' isn't constant"
-msgstr "parameteren til 'asm' er ikke en konstant streng"
+msgstr "lagringsstørrelsen af '%s' er ikke konstant"
-#: c-decl.c:3631
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
-msgstr ""
+msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'"
-#: c-decl.c:3706
+#: c-decl.c:3247
#, c-format
-msgid "ANSI C forbids parameter `%s' shadowing typedef"
-msgstr ""
+msgid "ISO C forbids parameter `%s' shadowing typedef"
+msgstr "ISO C forbyder at parameteren '%s' skygger for typedef"
-#: c-decl.c:3940 cp/decl.c:10013
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "'long long long' er for langt for GCC"
-#: c-decl.c:3945
-#, fuzzy
-msgid "ISO C89 does not support `long long'"
-msgstr "GNU C understøtter ikke -C uden -E"
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO C90 understøtter ikke 'long long'"
-#: c-decl.c:3950 cp/decl.c:10018
-#, fuzzy, c-format
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
+#, c-format
msgid "duplicate `%s'"
-msgstr "etiketten '%s' optræder mere end én gang"
+msgstr "'%s' optræder mere end én gang"
+
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "'__thread' før 'extern'"
-#: c-decl.c:3956 cp/decl.c:10038
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "'__thread' før 'static'"
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "mere end én datatype i erklæringen af '%s'"
-#: c-decl.c:3971 cp/decl.c:10043
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr "'%s' er hverken en typedef eller en indbygget type"
-#: c-decl.c:4009
-#, fuzzy, c-format
+#: c-decl.c:3688
+#, c-format
msgid "type defaults to `int' in declaration of `%s'"
-msgstr "mere end én datatype i erklæringen af '%s'"
+msgstr "typen antages at være 'int' i erklæringen af '%s'"
-#: c-decl.c:4038
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
-msgstr "både long og short angivet for '%s'"
+msgstr "både long og short er angivet for '%s'"
-#: c-decl.c:4042 cp/decl.c:10142
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "long eller short angivet samtidig med char for '%s'"
-#: c-decl.c:4049 cp/decl.c:10146
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "long eller short angivet samtidig med en kommatalstype for '%s'"
-#: c-decl.c:4052
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "den eneste gyldige kombination er 'long double'"
-#: c-decl.c:4058
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "både signed og unsigned er angivet for '%s'"
-#: c-decl.c:4060 cp/decl.c:10135
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "long, short, signed og unsigned er ugyldige for '%s'"
-#: c-decl.c:4066 cp/decl.c:10155
-#, fuzzy, c-format
+#: c-decl.c:3745 cp/decl.c:11054
+#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
-msgstr "long, short, signed og unsigned er ugyldige for '%s'"
+msgstr "long, short, signed og unsigned er benyttet på ugyldig vis for '%s'"
-#: c-decl.c:4085 cp/decl.c:10176
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "complex ugyldig for '%s'"
-#: c-decl.c:4130
-msgid "ISO C89 does not support complex types"
-msgstr ""
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C90 understøtter ikke komplekse typer"
-#: c-decl.c:4142
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
-msgstr ""
+msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'"
-#: c-decl.c:4148 c-decl.c:4160
-#, fuzzy
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
-msgstr "GNU C understøtter ikke -C uden -E"
+msgstr "ISO C understøtter ikke komplekse heltalstyper"
-#: c-decl.c:4175 c-decl.c:4571 cp/decl.c:10775
-#, fuzzy
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
-msgstr "etiketten '%s' optræder mere end én gang"
+msgstr "'const' optræder mere end én gang"
-#: c-decl.c:4177 c-decl.c:4575 cp/decl.c:10779
-#, fuzzy
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
-msgstr "etiketten '%s' optræder mere end én gang"
+msgstr "'restrict' optræder mere end én gang"
-#: c-decl.c:4179 c-decl.c:4573 cp/decl.c:10777
-#, fuzzy
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
-msgstr "case-værdi optræder mere end én gang"
+msgstr "'volatile' optræder mere end én gang"
-#: c-decl.c:4201 cp/decl.c:10325
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
-#: c-decl.c:4210
-#, fuzzy
+#: c-decl.c:3892
msgid "function definition declared `auto'"
-msgstr "'typedef' er påhæftet funktionsdefinitionen"
+msgstr "'auto' er påhæftet funktionsdefinitionen"
-#: c-decl.c:4212
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "'register' er påhæftet funktionsdefinitionen"
-#: c-decl.c:4214
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "'typedef' er påhæftet funktionsdefinitionen"
-#: c-decl.c:4227
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "'__thread' er påhæftet funktionsdefinitionen"
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "lagringsklasse angivet for strukturfelt '%s'"
-#: c-decl.c:4231 cp/decl.c:10372
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "lagringsklasse angivet for parameter '%s'"
-#: c-decl.c:4234 cp/decl.c:10374
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "lagringsklasse angivet for typenavn"
-#: c-decl.c:4246 cp/decl.c:10388
-#, fuzzy, c-format
+#: c-decl.c:3930 cp/decl.c:11302
+#, c-format
msgid "`%s' initialized and declared `extern'"
-msgstr "indlejret funktion '%s' er erklæret 'extern'"
+msgstr "'%s' bliver tildelt en startværdi og er samtidig erklæret 'extern'"
-#: c-decl.c:4248 cp/decl.c:10391
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
-#: c-decl.c:4252 cp/decl.c:10395
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "indlejret funktion '%s' er erklæret 'extern'"
-#: c-decl.c:4255 cp/decl.c:10399
+#: c-decl.c:3948 cp/decl.c:11319
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__thread'"
-#: c-decl.c:4297
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:3987 c-decl.c:4188
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "static eller typemodifikationer i ikke-parametertabelerklæring"
+
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "'%s' erklæret som en tabel af void"
-#: c-decl.c:4303
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "'%s' erklæret som en tabel af funktioner"
-#: c-decl.c:4325
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
-msgstr "størrelsen af tabel '%s' er ikke af en heltalstype"
+msgstr "størrelsen af tabellen '%s' er ikke af en heltalstype"
-#: c-decl.c:4330
-#, fuzzy, c-format
+#: c-decl.c:4066
+#, c-format
msgid "ISO C forbids zero-size array `%s'"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder tabellen '%s' med størrelsen nul"
-#: c-decl.c:4337
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
-msgstr "størrelsen af tabel '%s' er negativ"
+msgstr "størrelsen af tabellen '%s' er negativ"
-#: c-decl.c:4350
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
-msgstr ""
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "ISO C90 forbyder tabellen '%s' hvis størrelse ikke kan bestemmes"
-#: c-decl.c:4353
-#, fuzzy, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
-msgstr "ISO C forbyder tekst efter #%s"
+#: c-decl.c:4089
+#, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
-#: c-decl.c:4383 c-decl.c:4597
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
-msgstr "størrelsen af tabel '%s' er for stor"
+msgstr "størrelsen af tabellen '%s' er for stor"
-#: c-decl.c:4400
-#, fuzzy
-msgid "ISO C89 does not support flexible array members"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer"
-#: c-decl.c:4410
-#, fuzzy
+#: c-decl.c:4155
msgid "array type has incomplete element type"
-msgstr "parameteren er af en ufuldstændig type"
+msgstr "tabeltypen er af en ufuldstændig type"
-#: c-decl.c:4417
-msgid "ANSI C forbids const or volatile function types"
-msgstr ""
+#: c-decl.c:4162 c-decl.c:4392
+msgid "ISO C forbids const or volatile function types"
+msgstr "ISO C forbyder const eller volatile funktionstyper"
-#: c-decl.c:4456 cp/decl.c:10535
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "'%s' er erklæret som en funktion der returnerer en funktion"
-#: c-decl.c:4461 cp/decl.c:10540
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "'%s' er erklæret som en funktion der returnerer en tabel"
-#: c-decl.c:4496
-#, fuzzy
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+msgstr "ISO C forbyder void funktionsreturtype med modifikationer"
-#: c-decl.c:4500
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
-msgstr ""
+msgstr "typemodifikationer ignoreret i funktionsreturtypen"
-#: c-decl.c:4529 c-decl.c:4612 c-decl.c:4696 c-decl.c:4787
-#, fuzzy
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+msgstr "ISO C forbyder funktionsreturtype med modifikationer"
-#: c-decl.c:4569 cp/decl.c:10771
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr "ugyldig typemodifikation i erklæring af henvisning"
-#: c-decl.c:4646
-#, fuzzy
-msgid "ISO C forbids const or volatile function types"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
-
-#: c-decl.c:4665 cp/decl.c:11247
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "variabel eller felt '%s' erklæret void"
-#: c-decl.c:4734
+#: c-decl.c:4445
+msgid "attributes in parameter array declarator ignored"
+msgstr "egenskaber i parametertabelerklæring ignoreret"
+
+#: c-decl.c:4470
+msgid "invalid type modifier within array declarator"
+msgstr "ugyldig typemodifikation i tabelerklæring"
+
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "feltet '%s' er erklæret som en funktion"
-#: c-decl.c:4740
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "feltet '%s' er af en ufuldstændig type"
-#: c-decl.c:4772 c-decl.c:4774 c-decl.c:4781
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "ugyldig lagringsklasse for funktion '%s'"
-#: c-decl.c:4793
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
-msgstr ""
+msgstr "en funktion uden returtype returnerer en ikke-tom værdi"
-#: c-decl.c:4805
-#, fuzzy
+# at oversætte inline med et udsagnsord her bliver vist for tvetydigt
+#: c-decl.c:4594
msgid "cannot inline function `main'"
-msgstr "kan ikke klargøre vennefunktionen '%s'"
+msgstr "funktionen 'main' kan ikke være inline"
-#: c-decl.c:4840
-#, fuzzy, c-format
+#: c-decl.c:4649
+#, c-format
msgid "variable `%s' declared `inline'"
-msgstr "variabel eller felt '%s' erklæret void"
+msgstr "variablen '%s' er erklæret 'inline'"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "trådlokal lagring understøttes ikke på målarkitekturen"
-#: c-decl.c:4911 c-decl.c:5898
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
-msgstr ""
+msgstr "funktionserklæringen er ikke en prototype"
-#: c-decl.c:4917
-#, fuzzy
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
-msgstr "flere typer i én erklæring"
+msgstr "parameternavne (uden typer) i funktionserklæringen"
-#: c-decl.c:4949 c-decl.c:6286 c-decl.c:6585
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "parameteren '%s' er af en ufuldstændig type"
-#: c-decl.c:4952
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "parameteren er af en ufuldstændig type"
-#: c-decl.c:4973
-#, fuzzy, c-format
+# engelsk original upræcis (hvordan kan man henvise til en type?)
+#: c-decl.c:4794
+#, c-format
msgid "parameter `%s' points to incomplete type"
-msgstr "parameteren '%s' er af en ufuldstændig type"
+msgstr "parameteren '%s' er en henvisning til en ufuldstændig type"
-#: c-decl.c:4976
-#, fuzzy
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
-msgstr "parameteren er af en ufuldstændig type"
+msgstr "parameteren er en henvisning til en ufuldstændig type"
-#: c-decl.c:5041
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
-msgstr ""
+msgstr "parameteren '%s' har kun en forhåndserklæring"
-#: c-decl.c:5082
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "'void' i en parameterliste skal udgøre hele listen"
-#: c-decl.c:5111
+#: c-decl.c:4934
#, c-format
-msgid "`%s %s' declared inside parameter list"
-msgstr ""
+msgid "`struct %s' declared inside parameter list"
+msgstr "'struct %s' erklæret inde i en parameterliste"
-#: c-decl.c:5120
-#, fuzzy
+#: c-decl.c:4937
+#, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr "'union %s' erklæret inde i en parameterliste"
+
+#: c-decl.c:4940
+#, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr "'enum %s' erklæret inde i en parameterliste"
+
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
-msgstr "anonym struct er ikke inden i en navngiven type"
+msgstr "anonym struct erklæret inde i en parameterliste"
-#: c-decl.c:5122
-#, fuzzy
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
-msgstr "anonym struct er ikke inden i en navngiven type"
+msgstr "anonym union erklæret inde i en parameterliste"
-#: c-decl.c:5124
-#, fuzzy
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
-msgstr "anonym struct er ikke inden i en navngiven type"
+msgstr "anonym enum erklæret inde i en parameterliste"
-#: c-decl.c:5128
-msgid "its scope is only this definition or declaration, which is probably not what you want."
-msgstr ""
+#: c-decl.c:4955
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "dens virkefelt er kun denne definition eller erklæring hvilket sandsynligvis ikke er hvad du ønsker."
-#: c-decl.c:5198
+#: c-decl.c:5032
#, c-format
-msgid "redefinition of `%s %s'"
-msgstr "omdefinering af '%s %s'"
+msgid "redefinition of `union %s'"
+msgstr "omdefinering af 'union %s'"
-#: c-decl.c:5266 c-decl.c:5269
+#: c-decl.c:5034
+#, c-format
+msgid "redefinition of `struct %s'"
+msgstr "omdefinering af 'struct %s'"
+
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "erklæring erklærer ikke noget"
+
+# engelsk original forkortet
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
-msgstr ""
+msgstr "%s defineret inden i parameterliste"
-#: c-decl.c:5267 c-decl.c:5270 c-decl.c:5281
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
-msgstr ""
+msgstr "union"
-#: c-decl.c:5267 c-decl.c:5270
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
-msgstr ""
+msgstr "struktur"
-#: c-decl.c:5280
-#, fuzzy, c-format
+#: c-decl.c:5183
+#, c-format
msgid "%s has no %s"
-msgstr "%s har intet medlem ved navn '%s'"
+msgstr "%s har ingen %s"
-#: c-decl.c:5281
+#: c-decl.c:5184
msgid "struct"
-msgstr ""
+msgstr "struct"
-#: c-decl.c:5282
+#: c-decl.c:5185
msgid "named members"
-msgstr ""
+msgstr "navngivne medlemmer"
-#: c-decl.c:5282
+#: c-decl.c:5185
msgid "members"
-msgstr ""
+msgstr "medlemmer"
-#: c-decl.c:5321
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "indlejret omdefinering af '%s'"
-#: c-decl.c:5334
-#, fuzzy, c-format
+#: c-decl.c:5237
+#, c-format
msgid "bit-field `%s' width not an integer constant"
-msgstr "tre 'l'er i heltalskonstant"
+msgstr "bredden af bitfeltet '%s' er ikke en heltalskonstant"
-#: c-decl.c:5345
-#, fuzzy, c-format
+#: c-decl.c:5248
+#, c-format
msgid "bit-field `%s' has invalid type"
-msgstr "feltet '%s' er af en ufuldstændig type"
+msgstr "bitfeltet '%s' er af en ufuldstændig type"
-#: c-decl.c:5357
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
-msgstr ""
+msgstr "typen af bitfeltet '%s' er ugyldig i ISO C"
-#: c-decl.c:5369
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
-msgstr ""
+msgstr "negativ bredde i bitfeltet '%s'"
-#: c-decl.c:5371
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
-msgstr ""
+msgstr "bredden af '%s' overstiger typen"
-#: c-decl.c:5373
-#, fuzzy, c-format
+#: c-decl.c:5275
+#, c-format
msgid "zero width for bit-field `%s'"
-msgstr "sizeof benyttet på et bitfelt"
+msgstr "en bredde på nul for bitfeltet '%s'"
-#: c-decl.c:5387
+# RETMIG: find på et eller andet med præcisionen
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
-msgstr ""
+msgstr "'%s' er smallere end værdier af dens type"
-#: c-decl.c:5432
+#: c-decl.c:5323
msgid "flexible array member in union"
-msgstr ""
+msgstr "fleksibelt tabelmedlem i union"
-#: c-decl.c:5434
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
-msgstr ""
+msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
-#: c-decl.c:5436
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
-msgstr ""
+msgstr "fleksibelt tabelmedlem i ellers tom struktur"
-#: c-decl.c:5461
-#, fuzzy, c-format
+#: c-decl.c:5357
+#, c-format
msgid "duplicate member `%s'"
-msgstr "etiketten '%s' optræder mere end én gang"
+msgstr "medlemmet '%s' optræder mere end én gang"
-#: c-decl.c:5505
+#: c-decl.c:5448
msgid "union cannot be made transparent"
-msgstr ""
+msgstr "union kan ikke ikke gøres gennemsigtig"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5586
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr "omerklæring af 'enum %s'"
-#: c-decl.c:5620
+# original forkortet
+#: c-decl.c:5592
msgid "enum defined inside parms"
-msgstr ""
+msgstr "enum defineret inden i parameterliste"
-#: c-decl.c:5653
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
-msgstr ""
+msgstr "enum-værdier overstige rækkevidden af det største heltal"
-#: c-decl.c:5762
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
-#: c-decl.c:5775
+#: c-decl.c:5747
msgid "overflow in enumeration values"
-msgstr "for mange enum-værdier"
+msgstr "enum-værdier for store"
-#: c-decl.c:5780
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
-msgstr ""
+msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'"
-#: c-decl.c:5852
-#, fuzzy
+#: c-decl.c:5834
msgid "return type is an incomplete type"
-msgstr "returneringstypen er en ufuldstændig type"
+msgstr "returtypen er en ufuldstændig type"
-#: c-decl.c:5860
+#: c-decl.c:5842
msgid "return type defaults to `int'"
-msgstr ""
+msgstr "returtypen antages at være 'int'"
-#: c-decl.c:5907
-#, fuzzy, c-format
+#: c-decl.c:5889
+#, c-format
msgid "no previous prototype for `%s'"
-msgstr "'%s' er tidligere erklæret"
+msgstr "ingen tidligere prototype for '%s'"
-#: c-decl.c:5914
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
-msgstr ""
+msgstr "'%s' blev brugt uden en prototype før dens definition"
-#: c-decl.c:5920
-#, fuzzy, c-format
+#: c-decl.c:5902
+#, c-format
msgid "no previous declaration for `%s'"
-msgstr "'%s' er tidligere erklæret"
+msgstr "ingen tidligere erklæring af '%s'"
-#: c-decl.c:5927
-#, fuzzy, c-format
+#: c-decl.c:5909
+#, c-format
msgid "`%s' was used with no declaration before its definition"
-msgstr "friend-erklæringen er ikke i klassedefinitionen"
+msgstr "'%s' blev brugt uden en erklæring før dens definition"
-#: c-decl.c:5955 c-decl.c:6672
-#, fuzzy, c-format
+#: c-decl.c:5933 c-decl.c:6486
+#, c-format
msgid "return type of `%s' is not `int'"
-msgstr "basisoperanden til '->' er ikke en henvisning"
+msgstr "returtypen til '%s' er ikke 'int'"
-#: c-decl.c:5971
-#, fuzzy, c-format
+#: c-decl.c:5949
+#, c-format
msgid "first argument of `%s' should be `int'"
-msgstr "Der mangler en parameter til '%s'-tilvalget"
+msgstr "den første parameter til '%s' skal være 'int'"
-#: c-decl.c:5980
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
-msgstr ""
+msgstr "den anden parameter til '%s' skal være 'char **'"
-#: c-decl.c:5989
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
-msgstr ""
+msgstr "den tredje parameter til '%s' skal sandsynligvis være 'char **'"
-#: c-decl.c:5998
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
-msgstr ""
+msgstr "'%s' tager kun mod to eller ingen parametre"
-#: c-decl.c:6001
-#, fuzzy, c-format
+#: c-decl.c:5979
+#, c-format
msgid "`%s' is normally a non-static function"
-msgstr "'%s' er underforstået erklæret som en funktion"
+msgstr "'%s' er normalt en ikke-statisk funktion"
-#: c-decl.c:6104
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
-msgstr ""
+msgstr "parametertyper angivet både i parameterliste og separat"
-#: c-decl.c:6125
-#, fuzzy
+#: c-decl.c:6098
msgid "parameter name omitted"
-msgstr "parameteren er af en ufuldstændig type"
+msgstr "parameternavn udeladt"
-#: c-decl.c:6129 c-decl.c:6231 c-decl.c:6542
-#, fuzzy, c-format
+#: c-decl.c:6102 c-decl.c:6204
+#, c-format
msgid "parameter `%s' declared void"
-msgstr "variabel eller felt '%s' erklæret void"
+msgstr "parameteren '%s' erklæret void"
-#: c-decl.c:6205
-#, fuzzy
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
-msgstr "Et katalognavn mangler efter %s"
+msgstr "parameternavn mangler fra parameterliste"
-#: c-decl.c:6224 c-decl.c:6535
-#, fuzzy, c-format
+#: c-decl.c:6197
+#, c-format
msgid "multiple parameters named `%s'"
-msgstr "ukendt registernavn '%s'"
+msgstr "flere parametre ved navn '%s'"
-#: c-decl.c:6255 c-decl.c:6257
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
-msgstr ""
+msgstr "typen til '%s' antages at være 'int'"
-#: c-decl.c:6293 c-decl.c:6592
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
-msgstr ""
+msgstr "erklæring af parameteren '%s', men ingen sådan parameter"
-#: c-decl.c:6341
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "antallet af parametre passer ikke til prototypen"
-#: c-decl.c:6371
-#, fuzzy, c-format
+#: c-decl.c:6335
+#, c-format
msgid "promoted argument `%s' doesn't match prototype"
-msgstr "parameter '%s' passer ikke til prototypen"
+msgstr "den forfremmede parameter '%s' passer ikke til prototypen"
-#: c-decl.c:6385
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
-msgstr "parameter '%s' passer ikke til prototypen"
+msgstr "parameteren '%s' passer ikke til prototypen"
-#: c-decl.c:6565
-#, fuzzy, c-format
-msgid "type of parameter `%s' is not declared"
-msgstr "parameter '%s' bliver tildelt en startværdi"
+#: c-decl.c:6518 cp/decl.c:15049
+msgid "no return statement in function returning non-void"
+msgstr "ingen return-sætning i en funktion der ikke returnerer void"
-#: c-decl.c:6793
+#: c-decl.c:6525
msgid "this function may return with or without a value"
-msgstr ""
+msgstr "denne funktion kan returnere med eller uden en værdi"
-#: c-decl.c:6813
-#, fuzzy, c-format
+#: c-decl.c:6729
+#, c-format
msgid "size of return value of `%s' is %u bytes"
-msgstr "størrelsen af tabel '%s' er negativ"
+msgstr "størrelsen af returtypen til '%s' er %u byte"
-#: c-decl.c:6817
-#, fuzzy, c-format
+#: c-decl.c:6733
+#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
-msgstr "størrelsen af tabel '%s' er for stor"
+msgstr "størrelsen af returtypen til '%s' er større end %d byte"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:6872
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
-msgstr ""
+msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand"
-#: c-decl.c:6892
-#, fuzzy, c-format
-msgid "`%s %s' declared in `for' loop initial declaration"
-msgstr "'%s' ikke erklæret her (ikke i en funktion)"
+#: c-decl.c:6815
+#, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr "'struct %s' erklæret i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6901
+#: c-decl.c:6818
+#, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr "'union %s' erklæret i begyndelseserklæring i 'for'-løkke"
+
+#: c-decl.c:6821
+#, c-format
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr "'enum %s' erklæret i begyndelseserklæring i 'for'-løkke"
+
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
-msgstr ""
+msgstr "erklæring af '%s' der ikke er en variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6903
-#, fuzzy, c-format
+#: c-decl.c:6831
+#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
-msgstr "Instansvariablen '%s' er underforstået erklæret som en funktion"
+msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-decl.c:6905
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
-msgstr ""
-
-#: c-dump.c:826
-#, fuzzy, c-format
-msgid "could not open dump file `%s'"
-msgstr "Kunne ikke åbne uddatafilen %s.\n"
-
-#: c-dump.c:871
-#, fuzzy, c-format
-msgid "ignoring `%s' at end of `-f%s'"
-msgstr "ragelse i slutningen af #%s"
-
-#: c-format.c:106 c-format.c:219
-#, fuzzy, c-format
-msgid "argument format specified for non-function `%s'"
-msgstr "for få parametre til funktionen '%s'"
-
-#: c-format.c:112
-msgid "unrecognized format specifier"
-msgstr "ukendt formatanvisning"
-
-#: c-format.c:123
-#, fuzzy, c-format
-msgid "`%s' is an unrecognized format function type"
-msgstr "ukendt formatanvisning"
+msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
-#: c-format.c:145 c-format.c:233
-msgid "format string has invalid operand number"
-msgstr "formatstrengen har et ugyldigt operandtal"
-
-#: c-format.c:153
-msgid "format string arg follows the args to be formatted"
-msgstr "formatstrengsparameter efterfølger parametrene der skal formateres"
-
-#: c-format.c:172 c-format.c:254
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
-msgstr "formatstrengsparameter er ikke af en strengtype"
+msgstr "formateringsstrengsparameter er ikke af en strengtype"
-#: c-format.c:185
+#: c-format.c:124
msgid "args to be formatted is not '...'"
msgstr "parametrene der skal formateres, er ikke '...'"
-#: c-format.c:193
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
-msgstr ""
+msgstr "strftime-formater kan ikke formatere parametre"
-#: c-format.c:263
+#: c-format.c:168 c-format.c:270
+msgid "format string has invalid operand number"
+msgstr "formateringsstrengen har et ugyldigt operandtal"
+
+#: c-format.c:202
msgid "function does not return string type"
msgstr "funktionen returnerer ikke en strengtype"
-#: c-format.c:757
+#: c-format.c:233
+msgid "unrecognized format specifier"
+msgstr "ukendt formateringsanvisning"
+
+#: c-format.c:246
+#, c-format
+msgid "`%s' is an unrecognized format function type"
+msgstr "'%s' er en ukendt formateringsfunktionstype"
+
+#: c-format.c:280
+msgid "format string arg follows the args to be formatted"
+msgstr "formateringsstrengsparameter efterfølger parametrene der skal formateres"
+
+# her er der tale om en signalering
+#: c-format.c:601
msgid "` ' flag"
-msgstr ""
+msgstr "' '-flag"
-#: c-format.c:757
+#: c-format.c:601
msgid "the ` ' printf flag"
-msgstr ""
+msgstr "' '-printf-flaget"
-#: c-format.c:758 c-format.c:829
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
-msgstr ""
+msgstr "'+'-flag"
-#: c-format.c:758
+#: c-format.c:602
msgid "the `+' printf flag"
-msgstr ""
+msgstr "'+'-printf-flaget"
-#: c-format.c:759 c-format.c:805
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
-msgstr ""
+msgstr "'#'-flag"
-#: c-format.c:759
+#: c-format.c:603
msgid "the `#' printf flag"
-msgstr ""
+msgstr "'#'-printf-flaget"
-#: c-format.c:760 c-format.c:803
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
-msgstr ""
+msgstr "'0'-flag"
-#: c-format.c:760
+#: c-format.c:604
msgid "the `0' printf flag"
-msgstr ""
+msgstr "'0'-printf-flaget"
-#: c-format.c:761 c-format.c:802 c-format.c:832
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
-msgstr ""
+msgstr "'-'-flag"
-#: c-format.c:761
+#: c-format.c:605
msgid "the `-' printf flag"
-msgstr ""
+msgstr "'-'-printf-flaget"
-#: c-format.c:762 c-format.c:786
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
-msgstr ""
+msgstr "'''-flag"
-#: c-format.c:762
+#: c-format.c:606
msgid "the `'' printf flag"
-msgstr ""
+msgstr "'''-printf-flaget"
-#: c-format.c:763 c-format.c:787
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
-msgstr ""
+msgstr "'I'-flag"
-#: c-format.c:763
+#: c-format.c:607
msgid "the `I' printf flag"
-msgstr ""
+msgstr "'I'-printf-flaget"
-#: c-format.c:764 c-format.c:784 c-format.c:806 c-format.c:833 c-format.c:1846
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
-msgstr ""
+msgstr "feltbredde"
-#: c-format.c:764
+#: c-format.c:608
msgid "field width in printf format"
-msgstr ""
+msgstr "feltbredde i printf-formatering"
-#: c-format.c:765
+#: c-format.c:609
msgid "precision"
-msgstr ""
+msgstr "præcision"
-#: c-format.c:765
+#: c-format.c:609
msgid "precision in printf format"
-msgstr ""
+msgstr "præcision i printf-formatering"
-#: c-format.c:766 c-format.c:785 c-format.c:836
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
-msgstr ""
+msgstr "længdetilpasning"
-#: c-format.c:766
+#: c-format.c:610
msgid "length modifier in printf format"
-msgstr ""
+msgstr "længdetilpasning i printf-formatering"
-#: c-format.c:782
-#, fuzzy
+#: c-format.c:626
msgid "assignment suppression"
-msgstr "tildeling"
+msgstr "tildelingsundertrykkelse"
-#: c-format.c:783
+#: c-format.c:626
+msgid "the assignment suppression scanf feature"
+msgstr "den tildelingsundertrykkende scanf-facilitet"
+
+#: c-format.c:627
msgid "`a' flag"
-msgstr ""
+msgstr "'a'-flag"
-#: c-format.c:783
+#: c-format.c:627
msgid "the `a' scanf flag"
-msgstr ""
+msgstr "'a'-scanf-flaget"
-#: c-format.c:784
+#: c-format.c:628
msgid "field width in scanf format"
-msgstr ""
+msgstr "feltbredde i scanf-formatering"
-#: c-format.c:785
+#: c-format.c:629
msgid "length modifier in scanf format"
-msgstr ""
+msgstr "længdetilpasning i scanf-formatering"
-#: c-format.c:786
+#: c-format.c:630
msgid "the `'' scanf flag"
-msgstr ""
+msgstr "'''-scanf-flaget"
-#: c-format.c:787
+#: c-format.c:631
msgid "the `I' scanf flag"
-msgstr ""
+msgstr "'I'-scanf-flaget"
-#: c-format.c:801
+#: c-format.c:645
msgid "`_' flag"
-msgstr ""
+msgstr "'_'-flag"
-#: c-format.c:801
+#: c-format.c:645
msgid "the `_' strftime flag"
-msgstr ""
+msgstr "'_'-strftime-flaget"
-#: c-format.c:802
+#: c-format.c:646
msgid "the `-' strftime flag"
-msgstr ""
+msgstr "'-'-strftime-flaget"
-#: c-format.c:803
+#: c-format.c:647
msgid "the `0' strftime flag"
-msgstr ""
+msgstr "'0'-strftime-flaget"
-#: c-format.c:804 c-format.c:828
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
-msgstr ""
+msgstr "'^'-flag"
-#: c-format.c:804
+#: c-format.c:648
msgid "the `^' strftime flag"
-msgstr ""
+msgstr "'^'-strftime-flaget"
-#: c-format.c:805
+#: c-format.c:649
msgid "the `#' strftime flag"
-msgstr ""
+msgstr "'#'-strftime-flaget"
-#: c-format.c:806
+#: c-format.c:650
msgid "field width in strftime format"
-msgstr ""
+msgstr "feltbredde i strftime-formatering"
-#: c-format.c:807
-#, fuzzy
+#: c-format.c:651
msgid "`E' modifier"
-msgstr "'$' i kaldenavn"
+msgstr "'E'-modifikation"
-#: c-format.c:807
+#: c-format.c:651
msgid "the `E' strftime modifier"
-msgstr ""
+msgstr "'E'-strftime-modifikationen"
-#: c-format.c:808
-#, fuzzy
+#: c-format.c:652
msgid "`O' modifier"
-msgstr "'$' i kaldenavn"
+msgstr "'O'-modifikation"
-#: c-format.c:808
+#: c-format.c:652
msgid "the `O' strftime modifier"
-msgstr ""
+msgstr "'O'-strftime-modifikationen"
-#: c-format.c:809
+#: c-format.c:653
msgid "the `O' modifier"
-msgstr ""
+msgstr "'O'-modifikation"
-#: c-format.c:827
-#, fuzzy
+#: c-format.c:671
msgid "fill character"
-msgstr "%s ved nultegn"
+msgstr "udfyldningstegn"
-#: c-format.c:827
-#, fuzzy
+#: c-format.c:671
msgid "fill character in strfmon format"
-msgstr "nultegn i streng- eller tegnkonstant"
+msgstr "udfyldningstegn i strfmon-formatering"
-#: c-format.c:828
+#: c-format.c:672
msgid "the `^' strfmon flag"
-msgstr ""
+msgstr "'^'-strfmon-flaget"
-#: c-format.c:829
+#: c-format.c:673
msgid "the `+' strfmon flag"
-msgstr ""
+msgstr "'+'-strfmon-flaget"
-#: c-format.c:830
+#: c-format.c:674
msgid "`(' flag"
-msgstr ""
+msgstr "'('-flag"
-#: c-format.c:830
+#: c-format.c:674
msgid "the `(' strfmon flag"
-msgstr ""
+msgstr "'('-strfmon-flaget"
-#: c-format.c:831
+#: c-format.c:675
msgid "`!' flag"
-msgstr ""
+msgstr "'!'-flag"
-#: c-format.c:831
+#: c-format.c:675
msgid "the `!' strfmon flag"
-msgstr ""
+msgstr "'!'-strfmon-flaget"
-#: c-format.c:832
+#: c-format.c:676
msgid "the `-' strfmon flag"
-msgstr ""
+msgstr "'-'-strfmon-flaget"
-#: c-format.c:833
+#: c-format.c:677
msgid "field width in strfmon format"
-msgstr ""
+msgstr "feltbredde i strfmon-formatering"
-#: c-format.c:834
+#: c-format.c:678
msgid "left precision"
-msgstr ""
+msgstr "venstrepræcision"
-#: c-format.c:834
+#: c-format.c:678
msgid "left precision in strfmon format"
-msgstr ""
+msgstr "venstrepræcision i strfmon-formatering"
-#: c-format.c:835
+#: c-format.c:679
msgid "right precision"
-msgstr ""
+msgstr "højrepræcision"
-#: c-format.c:835
+#: c-format.c:679
msgid "right precision in strfmon format"
-msgstr ""
+msgstr "højrepræcision i strfmon-formatering"
-#: c-format.c:836
+#: c-format.c:680
msgid "length modifier in strfmon format"
-msgstr ""
+msgstr "længdemodifikation i strfmon-formatering"
-#: c-format.c:1135
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
-msgstr ""
+msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
-#: c-format.c:1248 c-format.c:1269 c-format.c:2256
-#, fuzzy
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
-msgstr "ugyldigt versionsnummerformat"
+msgstr "manglende $-operandnummer i formatering"
-#: c-format.c:1279
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
-msgstr ""
+msgstr "%s understøtter ikke %%n$-operandnummerformateringer"
-#: c-format.c:1286
-#, fuzzy
+#: c-format.c:1145
msgid "operand number out of range in format"
-msgstr "operandtal er uden for det gyldige interval"
+msgstr "operandnummer uden for det gyldige interval"
-#: c-format.c:1307
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
-msgstr ""
+msgstr "formateringsparameter %d brugt mere end en gang i %s-formatering"
-#: c-format.c:1349
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
-msgstr ""
+msgstr "formateringsparameter %d ubenyttet før den brugte parameter %d i formatering med $"
-#: c-format.c:1443
-#, fuzzy
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
-msgstr "formatstrengsparameter er ikke af en strengtype"
+msgstr "formatering er ikke en strengkonstant, formateringsstrengen er ikke kontrolleret"
-#: c-format.c:1457
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
-msgstr ""
+msgstr "formatering er ikke en strengkonstant og der er ingen formateringsparametre"
-#: c-format.c:1459
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
-msgstr ""
+msgstr "formatering er ikke en strengkonstant, parametertyper er ikke kontrolleret"
-#: c-format.c:1472
-#, fuzzy
+#: c-format.c:1351
msgid "too many arguments for format"
-msgstr "for mange parametre til funktionen"
+msgstr "for mange parametre til formatering"
-#: c-format.c:1475
+#: c-format.c:1354
msgid "unused arguments in $-style format"
-msgstr ""
+msgstr "ubenyttede parametre i formatering med $"
-#: c-format.c:1478
-msgid "zero-length format string"
-msgstr ""
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "formateringsstreng %s med længden nul"
-#: c-format.c:1481
-#, fuzzy
+#: c-format.c:1361
msgid "format is a wide character string"
-msgstr "forkert formateret tegnkonstant"
+msgstr "formatering er en bredtegnsstreng"
-#: c-format.c:1484
-#, fuzzy
+#: c-format.c:1364
msgid "unterminated format string"
-msgstr "uafsluttet tegnkonstant"
-
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1572
-#, fuzzy
-msgid "null format string"
-msgstr "ugyldigt #line-format"
+msgstr "uafsluttet formateringsstreng"
-#: c-format.c:1725
+#: c-format.c:1581
msgid "embedded `\\0' in format"
-msgstr ""
+msgstr "indlejret '\\0' i formatering"
-#: c-format.c:1740
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
-msgstr ""
+msgstr "mystisk afsluttende '%%' i formatering"
-#: c-format.c:1779 c-format.c:2016
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
-msgstr ""
+msgstr "gentaget %s i formatering"
-#: c-format.c:1792
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
-msgstr ""
+msgstr "mangler fyldtegn i slutningen af strfmon-formatering"
-#: c-format.c:1812 c-format.c:1930 c-format.c:2210 c-format.c:2263
-#, fuzzy
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
-msgstr "for få parametre til funktionen"
+msgstr "for få parametre til formatering"
-#: c-format.c:1872
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
-msgstr ""
+msgstr "bredde på nul i %s-formatering"
-#: c-format.c:1891
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
-msgstr ""
+msgstr "tom venstrepræcision i %s-formatering"
-#: c-format.c:1945
+#: c-format.c:1801
msgid "field precision"
-msgstr ""
+msgstr "feltpræcision"
-#: c-format.c:1960
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
-msgstr ""
+msgstr "tom præcision i %s-formatering"
-#: c-format.c:2000
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
-msgstr ""
+msgstr "%s understøtter ikke '%s' %s-længdemodifikationen"
-#: c-format.c:2050
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
-msgstr ""
+msgstr "konvertering mangler type i slutningen af formatering"
-#: c-format.c:2061
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
-msgstr ""
+msgstr "ukendt konverteringstypetegn '%c' i formatering"
-#: c-format.c:2064
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
-msgstr ""
+msgstr "ukendt konverteringstypetegn 0x%x i formatering"
-#: c-format.c:2071
-#, fuzzy, c-format
+#: c-format.c:1927
+#, c-format
msgid "%s does not support the `%%%c' %s format"
-msgstr "%s understøttes ikke af denne konfiguration"
+msgstr "%s understøtter ikke '%%%c' %s-formateringen"
-#: c-format.c:2087
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
-msgstr ""
+msgstr "%s brugt med '%%%c' %s-formatering"
-#: c-format.c:2096
-#, fuzzy, c-format
+#: c-format.c:1952
+#, c-format
msgid "%s does not support %s"
-msgstr "-mabi=%s understøtter ikke -mips%d"
+msgstr "%s understøtter ikke %s"
-#: c-format.c:2105
-#, fuzzy, c-format
+#: c-format.c:1961
+#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
-msgstr "GNU C understøtter ikke -C uden -E"
+msgstr "%s understøtter ikke %s med '%%%c' %s-formateringen"
-#: c-format.c:2138
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
-msgstr ""
+msgstr "%s ignoreret med %s og '%%%c' %s-formatering"
-#: c-format.c:2142
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
-msgstr ""
+msgstr "%s ignoreret med %s i %s-formatering"
-#: c-format.c:2148
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
-msgstr ""
+msgstr "brug af %s og %s sammen med '%%%c' %s-formatering"
-#: c-format.c:2152
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
-msgstr ""
+msgstr "brug af %s og %s sammen i %s-formatering"
-#: c-format.c:2171
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
-msgstr ""
+msgstr "'%%%c' giver kun de to sidste cifre af året under nogle regionalindstillinger"
-#: c-format.c:2174
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
-msgstr ""
+msgstr "'%%%c' giver kun de to sidste cifre af året"
#. The end of the format string was reached.
-#: c-format.c:2190
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
-msgstr ""
+msgstr "ingen afsluttende '[' til '%%['-formatering"
-#: c-format.c:2203
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
-msgstr ""
+msgstr "brug af '%s'-længdemodifikation med '%c'-typetegn"
-#: c-format.c:2224
-#, fuzzy, c-format
+#: c-format.c:2080
+#, c-format
msgid "%s does not support the `%%%s%c' %s format"
-msgstr "%s understøttes ikke af denne konfiguration"
+msgstr "%s understøtter ikke '%%%s%c' %s-formateringen"
-#: c-format.c:2239
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
-msgstr ""
+msgstr "operandnummer angivet med undertrykt tildeling"
-#: c-format.c:2241
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
-msgstr ""
+msgstr "operandnummer angiver for formatering der ikke tager mod parametre"
-#: c-format.c:2360
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
-msgstr ""
+msgstr "skrivning gennem nulhenvisning (parameter %d)"
-#: c-format.c:2369
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
-msgstr ""
+msgstr "læsning gennem nulhenvisning (parameter %d)"
-#: c-format.c:2389
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
-msgstr ""
+msgstr "skrivning til konstant objekt (parameter %d)"
-#: c-format.c:2399
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
-msgstr ""
+msgstr "ekstra typemodifikationer i formateringsparameter (parameter %d)"
-#: c-format.c:2406
-#, fuzzy, c-format
+#: c-format.c:2257
+#, c-format
msgid "format argument is not a pointer (arg %d)"
-msgstr "angivet justering er ikke en potens af 2"
+msgstr "formateringsparameter er ikke en henvisning (parameter %d)"
-#: c-format.c:2408
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
-msgstr ""
+msgstr "formateringsparameter er ikke en henvisning til en henvisning (parameter %d)"
+
+#: c-format.c:2330
+msgid "pointer"
+msgstr "henvisning"
-#: c-format.c:2502
+#: c-format.c:2332
+msgid "different type"
+msgstr "anden type"
+
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
-msgstr ""
+msgstr "%s er ikke af typen %s (parameter %d)"
-#: c-format.c:2505
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
-msgstr ""
+msgstr "%s-formatering, %s-parameter (parameter %d)"
-#: c-lex.c:279
-msgid "badly nested C headers from preprocessor"
-msgstr ""
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG ikke defineret"
-#: c-lex.c:297
-msgid "leaving more files than we entered"
-msgstr ""
+#: c-lex.c:293
+msgid "badly nested C headers from preprocessor"
+msgstr "ugyldigt indlejrede C-inkluderingsfiler fra præprocessoren"
-#: c-lex.c:329
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
-msgstr ""
+msgstr "ignorerer #pragma %s %s"
-#: c-lex.c:331
-#, fuzzy, c-format
-msgid "ignoring #pragma %s"
-msgstr "ugyldig #pragma-enhed"
-
-#: c-lex.c:381
-#, fuzzy
-msgid "incomplete universal-character-name"
-msgstr "ugyldigt universelt tegnnavn"
-
-#: c-lex.c:388
+#: c-lex.c:386
#, c-format
-msgid "non hex digit '%c' in universal-character-name"
-msgstr "der optræder '%c' der ikke er et hexadecimalt ciffer, i universelt tegnnavn"
-
-#: c-lex.c:403
-#, fuzzy
-msgid "universal-character-name on EBCDIC target"
-msgstr "ugyldigt universelt tegnnavn"
+msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
-#: c-lex.c:416
-#, fuzzy, c-format
-msgid "universal-character-name used for '%c'"
-msgstr "ugyldigt universelt tegnnavn"
+#: c-lex.c:632
+#, c-format
+msgid "universal-character-name '\\u%04x' not valid in identifier"
+msgstr "universelt tegn '\\u%04x' er ikke gyldigt i kaldenavne"
-#: c-lex.c:419
-msgid "invalid universal-character-name"
-msgstr "ugyldigt universelt tegnnavn"
+#: c-lex.c:695
+#, c-format
+msgid "stray '%c' in program"
+msgstr "vildfaren '%c' i program"
-#: c-lex.c:453 f/lex.c:601
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr ""
+#: c-lex.c:697
+#, c-format
+msgid "stray '\\%o' in program"
+msgstr "vildfaren '\\%o' i program"
-#: c-lex.c:489 cppexp.c:579 f/lex.c:636
-msgid "\\x used with no following hex digits"
-msgstr "\\x angivet uden efterfølgende hexadecimale cifre"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "denne kommatalskonstant er kun unsigned i ISO C90"
-#: c-lex.c:502 f/lex.c:646
-#, fuzzy
-msgid "hex escape out of range"
-msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "denne kommatalskonstant ville være unsigned i ISO C90"
-#: c-lex.c:540
-msgid "the meaning of '\\a' varies with -traditional"
-msgstr ""
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "heltalskonstanten er for stor til typen '%s'"
-#: c-lex.c:550
+#: c-lex.c:941
#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
-msgstr ""
+msgid "floating constant exceeds range of \"%s\""
+msgstr "kommatalskonstant overskrider intervallet for '%s'"
-#: c-lex.c:556 cppexp.c:527
-#, fuzzy, c-format
-msgid "non-ISO-standard escape sequence, '\\%c'"
-msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "ignorerer ugyldigt flerbyte-tegn"
-#: c-lex.c:563 c-lex.c:569
-#, fuzzy, c-format
-msgid "unknown escape sequence '\\%c'"
-msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "der mangler en parameter til tilvalget '-%s'"
-#: c-lex.c:571
+#: c-opts.c:359
#, c-format
-msgid "unknown escape sequence: '\\' followed by char 0x%x"
-msgstr ""
+msgid "no class name specified with \"-%s\""
+msgstr "intet klassenavn angivet med '-%s'"
-#: c-lex.c:601
-#, fuzzy, c-format
-msgid "universal-character-name '\\U%08x' not valid in identifier"
-msgstr "universelt tegn '\\U%08x' er ikke tilladt i kaldenavne"
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "et filnavn mangler efter '-%s'"
-#: c-lex.c:847
-#, fuzzy, c-format
-msgid "universal-character-name '\\u%04x' not valid in identifier"
-msgstr "universelt tegn '\\u%04x' er ikke tilladt i kaldenavne"
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "et mål mangler efter '-%s'"
-#: c-lex.c:937
-#, fuzzy
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "både 'f' og 'l' i kommatalskonstant"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "tilvalgstabel sorteret forkert: %s er før %s"
-#: c-lex.c:964
-#, fuzzy, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "kommatal er ikke tilladt i '#if'-udtryk"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "for mange filnavne angivet - vejledning i brug kan fås med '%s --help'"
-#: c-lex.c:994
-#, fuzzy, c-format
-msgid "stray '%c' in program"
-msgstr "vildfaren '\\' i program"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes er ikke understøttet i C++"
-#: c-lex.c:996
-#, fuzzy, c-format
-msgid "stray '\\%o' in program"
-msgstr "vildfaren '\\' i program"
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "tilvalget '%s' understøttes ikke længere"
-#: c-lex.c:1193
-#, fuzzy
-msgid "floating constant may not be in radix 16"
-msgstr "kommatalskonstant uden for det mulige interval"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "tilvalget '%s' er forældet, se venligst dokumentationen for detaljer"
-#: c-lex.c:1230
-msgid "traditional C rejects the 'f' suffix"
-msgstr ""
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions er blevet omdøbt til -fexceptions (og er nu til som standard)"
-#: c-lex.c:1239
-msgid "traditional C rejects the 'l' suffix"
-msgstr ""
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "uddatafilnavnet er angivet to gange"
-#: c-lex.c:1249 c-lex.c:1342
-msgid "ISO C forbids imaginary numeric constants"
-msgstr ""
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k ignoreret uden -Wformat"
-#: c-lex.c:1283
-msgid "floating point number exceeds range of 'double'"
-msgstr ""
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args ignoreret uden -Wformat"
-#: c-lex.c:1312
-#, fuzzy
-msgid "two 'u' suffixes on integer constant"
-msgstr "for mange 'u'-suffikser i heltalskonstant"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length ignoreret uden -Wformat"
-#: c-lex.c:1314
-msgid "traditional C rejects the 'u' suffix"
-msgstr ""
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral ignoreret uden -Wformat"
-#: c-lex.c:1325
-#, fuzzy
-msgid "three 'l' suffixes on integer constant"
-msgstr "for mange 'l'-suffikser i heltalskonstant"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security ignoreret uden -Wformat"
-#: c-lex.c:1327
-msgid "'lul' is not a valid integer suffix"
-msgstr ""
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute ignoreret uden -Wformat"
-#: c-lex.c:1329
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr ""
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
+msgstr "åbner uddatafilen %s"
-#: c-lex.c:1332
-#, fuzzy
-msgid "ISO C89 forbids long long integer constants"
-msgstr "tre 'l'er i heltalskonstant"
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr "åbner afhængighedsfilen %s"
-#: c-lex.c:1340
-#, fuzzy
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "mere end ét 'i' eller 'j' i talkonstant"
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "lukker afhængighedsfilen %s"
-#: c-lex.c:1355
+#: c-opts.c:1487
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
-msgstr ""
+msgid "when writing output to %s"
+msgstr "ved skrivning af uddata til %s"
-#: c-lex.c:1445
-#, fuzzy
-msgid "width of integer constant changes with -traditional"
-msgstr "heltalskonstanten indeholder cifre der er større end grundtallet"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "for at generere afhængigheder skal du angive enten -M eller -MM"
-#: c-lex.c:1447
-#, fuzzy
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "heltalskonstanten indeholder cifre der er større end grundtallet"
+#: c-opts.c:1715
+#, fuzzy, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "'-%s' er gyldigt for %s, men ikke for %s"
-#: c-lex.c:1449
-msgid "width of integer constant may change on other systems with -traditional"
+# den fulde tekst til disse bidder findes også senere
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
msgstr ""
+"Tilvalg:\n"
+" -include <fil> Inkludér indholdet af <fil> før andre filer\n"
+" -imacros <fil> Læs makrodefinitionerne i <fil>\n"
+" -iprefix <sti> Angiv <sti> som et præfiks til de næste to tilvalg\n"
+" -iwithprefix <ktlg> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+" -withprefixbefore <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+" -isystem <ktlg> Føj <ktlg> til begyndelsen af systeminkluderingsstien\n"
-#: c-lex.c:1459
-#, fuzzy, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "heltalskonstanten er så stor at den er unsigned"
-
-#: c-lex.c:1468
-#, fuzzy
-msgid "decimal constant is so large that it is unsigned"
-msgstr "heltalskonstanten er så stor at den er unsigned"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter <ktlg> Føj <ktlg> til slutningen af systeminkluderingsstien\n"
+" -I <ktlg> Føj <ktlg> til slutningen af den alm. inkluderingssti\n"
+" -I- Nøje kontrolleret inkluderingssti; se info-hjælpen\n"
+" -nostdinc Søg ikke i systeminkluderingskataloger\n"
+" (kataloger angivet med -isystem søges dog stadig)\n"
+" -nostdinc++ Søg ikke i systeminkluderingskataloger til C++\n"
+" -o <fil> Send uddata til <fil>\n"
-#: c-lex.c:1497
-#, fuzzy
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "heltalskonstanten er så stor at den er unsigned"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs Understøt ISO C trigrafer\n"
+" -std=<standardnavn> Angiv at koden retter sig efter en af standarderne:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Undertryk advarselsmeddelelser\n"
+" -W[no-]trigraphs Advar hvis trigrafer mødes\n"
+" -W[no-]comment{s} Advar hvis en kommentar begynder inden i en anden\n"
+
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Advar om utilgængelige faciliteter i traditionel C\n"
+" -W[no-]undef Advar hvis en ikkedefineret makro bruges med #if\n"
+" -W[no-]import Advar om brug af #import-direktivet\n"
-#: c-lex.c:1501
-#, fuzzy, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "manglende mellemrum efter tallet '%s'"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error Behandl alle advarsler som fejl\n"
+" -W[no-]system-headers Undertryk ikke advarsler fra systeminkluderingsfiler\n"
+" -W[no-]all Slå alle præprocessoradvarsler til\n"
-#: c-lex.c:1537 c-lex.c:1641
-msgid "Ignoring invalid multibyte character"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
msgstr ""
+" -M Generér afhængigheder til make\n"
+" -MM Som -M, men ignorér systeminkluderingsfiler\n"
+" -MD Generer make-afhængigheder og oversæt\n"
+" -MMD Som -MD, men ignorér systeminkluderingsfiler\n"
+" -MF <fil> Skriv afhænghedsuddata til den givne fil\n"
+" -MG Behandl manglende inkl.-filer som genererede filer\n"
-#: c-lex.c:1555 c-lex.c:1660 cppexp.c:275
-msgid "escape sequence out of range for character"
-msgstr "undvigesekvensen er uden for det gyldig interval for tegn"
+# make kalder phony targets for falske mål
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP Generér \"falske\" mål for alle inkluderingsfiler\n"
+" -MQ <mål> Tilføj et MAKE-mål i anførselstegn\n"
+" -MT <mål> Tilføj et mål uden anførselstegn\n"
-#: c-lex.c:1679
-msgid "empty character constant"
-msgstr "tom tegnkonstant"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<makro> Definér makroen <makro> med strengen '1' som værdi\n"
+" -D<makro>=<værdi> Definér makroen <makro> med værdien <værdi>\n"
+" -A<spørgsmål>=<svar> Angiv at <svar> er svar på <spørgsmål>\n"
+" -A-<spørgsmål>=<svar> Angiv at <svar> ikke er svar på <spørgsmål>\n"
+" -U<makro> Glem definitionen af <makro>\n"
+" -v Skriv versionsnummeret\n"
-#: c-lex.c:1683
-msgid "character constant too long"
-msgstr "tegnkonstanten er for lang"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Skriv navnene på inkluderingsfilerne når de bruges\n"
+" -C Fjern ikke kommentarer\n"
+" -dM Vis til sidst de aktive makrodefinitioner\n"
+" -dD Bevar makrodefinitioner i uddata\n"
+" -dN Som -dD bortset fra at kun navnene bevares\n"
+" -dI Inkludér #include-anvisninger i uddata\n"
-#: c-lex.c:1686 cppexp.c:293
-msgid "multi-character character constant"
-msgstr "tegnkonstanten fylder mere end én char"
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Behandl inddatafilen som allerede præprocesseret\n"
+" -ftabstop=<tal> Afstand mellem tabulatorstop i kolonnerapportering\n"
+" -P Generér ikke #line-angivelser\n"
+" -remap Omdan filnavne ved filinkludering\n"
+" --help Vis denne vejledning\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:61 cp/parse.y:55 objc/objc-parse.y:62
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "syntaksfejl"
-#: c-parse.y:247 objc/objc-parse.y:275
-#, fuzzy
+#: /usr/share/bison/bison.simple:179
+msgid "syntax error: cannot back up"
+msgstr "syntaksfejl: kan ikke gå tilbage"
+
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+msgstr "ISO C forbyder en tom kildefil"
-#: c-parse.y:279 c-parse.y:1824 objc/objc-parse.y:308 objc/objc-parse.y:1888
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "parameteren til 'asm' er ikke en konstant streng"
-#: c-parse.y:287 objc/objc-parse.y:316
-#, fuzzy
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr "ISO C forbyder definition af data uden angivelse af type eller lagringsklasse"
-#: c-parse.y:289 objc/objc-parse.y:318
-#, fuzzy
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
-msgstr "ISO C forbyder definition af data uden angivelse af type eller lagringsklasse"
+msgstr "definition af data uden angivelse af type eller lagringsklasse"
-#: c-parse.y:310 objc/objc-parse.y:339
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
-msgstr ""
+msgstr "ISO C tillader ikke ekstra ';' uden for funktioner"
-#: c-parse.y:382 cppexp.c:900
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
-msgstr ""
+msgstr "traditionel C tillader ikke operatoren unær plus"
-#: c-parse.y:426 objc/objc-parse.y:455
-#, fuzzy
-msgid "ISO C forbids `&&'"
-msgstr "ISO C forbyder tekst efter #%s"
-
-#: c-parse.y:455 objc/objc-parse.y:484
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "'sizeof' benyttet på et bitfelt"
-#: c-parse.y:543 objc/objc-parse.y:572
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
-msgstr ""
+msgstr "ISO C forbyder udeladelse af den midterste del af et '?:'-udtryk"
-#: c-parse.y:591 objc/objc-parse.y:620
-#, fuzzy
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C89 forbyder sammensatte konstanter"
-#: c-parse.y:621 objc/objc-parse.y:650
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
-msgstr ""
+msgstr "ISO C forbyder sætningsblokke inden i udtryk"
-#: c-parse.y:674
-msgid "traditional C rejects string concatenation"
-msgstr ""
+#: c-parse.y:677 objc-parse.y:699
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "første parameter til '__builtin_choose_expr' skal være en konstant"
-#: c-parse.y:689 objc/objc-parse.y:741
-#, fuzzy
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner"
-#: c-parse.y:797 c-parse.y:818 c-parse.y:850 cp/parse.y:1861 cp/parse.y:1868
-#: cp/parse.y:1907 objc/objc-parse.y:849 objc/objc-parse.y:870
-#: objc/objc-parse.y:902
-#, fuzzy, c-format
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
+#, c-format
msgid "`%s' is not at beginning of declaration"
-msgstr "'%s' er ikke en løkkevariabel"
+msgstr "'%s' er ikke ved begyndelsen af erklæringen"
-#: c-parse.y:1014 objc/objc-parse.y:1075
-#, fuzzy
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder tom startværdiblok"
-#: c-parse.y:1028 objc/objc-parse.y:1089
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
-msgstr ""
+msgstr "ISO C89 forbyder angivelse af underobjekt til klargøring"
-#: c-parse.y:1031 objc/objc-parse.y:1092
+# RETMIG: hm, gad vide om dette er rigtigt
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
-msgstr ""
+msgstr "forældet brug af udpeget startværdi uden '='"
-#: c-parse.y:1035 objc/objc-parse.y:1096
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
-msgstr ""
+msgstr "forældet brug af udpeget startværdi med ':'"
-#: c-parse.y:1064
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
-msgstr ""
+msgstr "ISO C forbyder angivelse af interval af elementer til klargøring"
-#: c-parse.y:1072 c-parse.y:1102 objc/objc-parse.y:1127 objc/objc-parse.y:1157
-#, fuzzy
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder indlejrede funktioner"
-#: c-parse.y:1177 c-parse.y:1211
-msgid "`[*]' in parameter declaration only allowed in ISO C 99"
-msgstr "'[*]' i parametererklæring kun tilladt i ISO C 99"
-
-#: c-parse.y:1286 objc/objc-parse.y:1332
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
-msgstr ""
+msgstr "ISO C forbyder forhåndsreferencer til 'enum'-typer"
-#: c-parse.y:1298 cp/parse.y:2326 objc/objc-parse.y:1344
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
-msgstr ""
+msgstr "komma i slutningen af enum-liste"
-#: c-parse.y:1306 objc/objc-parse.y:1352
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
-msgstr ""
+msgstr "intet semikolon i slutningen af struct eller union"
-#: c-parse.y:1315 objc/objc-parse.y:1361 objc/objc-parse.y:2359
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
-msgstr ""
+msgstr "ekstra semikolon angivet i struct eller union"
-#: c-parse.y:1339 objc/objc-parse.y:1399
-#, fuzzy
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
+msgstr "ISO C understøtter ikke unavngivne struct/union-konstruktioner"
-#: c-parse.y:1353 objc/objc-parse.y:1413
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
-msgstr ""
+msgstr "ISO C forbyder medlemserklæringer uden medlemmer"
-#: c-parse.y:1472 objc/objc-parse.y:1532
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
-msgstr ""
+msgstr "forældet brug af etiket i slutningen af sammensat sætning"
-#: c-parse.y:1489 objc/objc-parse.y:1549
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
-msgstr ""
+msgstr "ISO C89 forbyder blandede erklæringer og kode"
-#: c-parse.y:1563 objc/objc-parse.y:1627
-#, fuzzy
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder etiketerklæringer"
-#: c-parse.y:1612 cp/parse.y:1562 objc/objc-parse.y:1676
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
-#: c-parse.y:1727 objc/objc-parse.y:1791
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
-msgstr ""
+msgstr "tom krop i en else-sætning"
-#: c-parse.y:1856 objc/objc-parse.y:1920
-#, fuzzy
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder 'goto *udtryk;'"
-#: c-parse.y:1948 objc/objc-parse.y:2012
-#, fuzzy
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
-msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
+msgstr "ISO C forbyder forhåndsparametererklæringer"
#. Gcc used to allow this as an extension. However, it does
#. not work for all targets, and thus has been disabled.
@@ -2254,1282 +2645,1547 @@ msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:1971 objc/objc-parse.y:2035
-#, fuzzy
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr "ISO C påkræver en navngiven parameter før '...'"
-#: c-parse.y:2051 objc/objc-parse.y:2115
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "'...' i gammeldags liste af kaldenavne"
-#: c-parse.y:2377 cp/spew.c:1480 objc/objc-parse.y:3109
+#: /usr/share/bison/bison.simple:795
+msgid "parse error; also virtual memory exhausted"
+msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+msgid "parse error"
+msgstr "tolkningsfejl"
+
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "overløb i tolkerens stak"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s ved slutning af inddata"
-#: c-parse.y:2383 cp/spew.c:1486 objc/objc-parse.y:3115
-#, fuzzy, c-format
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
+#, c-format
msgid "%s before %s'%c'"
-msgstr "%s før '%s'"
+msgstr "%s før %s'%c'"
-#: c-parse.y:2385 cp/spew.c:1488 objc/objc-parse.y:3117
-#, fuzzy, c-format
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
+#, c-format
msgid "%s before %s'\\x%x'"
-msgstr "%s før '%s'"
+msgstr "%s før %s'\\x%x'"
-#: c-parse.y:2389 cp/spew.c:1492 objc/objc-parse.y:3121
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "%s før strengkonstant"
-#: c-parse.y:2393 cp/spew.c:1496 objc/objc-parse.y:3125
-#, fuzzy, c-format
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
+#, c-format
msgid "%s before numeric constant"
-msgstr "%s før strengkonstant"
+msgstr "%s før talkonstant"
-#: c-parse.y:2395 objc/objc-parse.y:3127
-#, fuzzy, c-format
+#: c-parse.y:2854 objc-parse.y:3553
+#, c-format
msgid "%s before \"%s\""
-msgstr "%s før '%s'"
+msgstr "%s før \"%s\""
-#: c-parse.y:2397 objc/objc-parse.y:3129
-#, fuzzy, c-format
+#: c-parse.y:2856 objc-parse.y:3555
+#, c-format
msgid "%s before '%s' token"
-msgstr "%s før '%s'"
+msgstr "%s før symbolet '%s'"
-#: c-parse.y:2543 objc/objc-parse.y:3292
-#, fuzzy, c-format
-msgid "syntax error at '%s' token"
-msgstr "syntaksfejl"
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "traditionel C tillader ikke strengsammensætning"
-#: c-parse.y:2573 cp/lex.c:928 objc/objc-parse.y:3322
-msgid "YYDEBUG not defined."
-msgstr ""
+#: c-parse.y:3047 objc-parse.y:3779
+#, c-format
+msgid "syntax error at '%s' token"
+msgstr "syntaksfejl ved symbolet '%s'"
-#: c-pragma.c:108
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
-msgstr ""
+msgstr "'#pragma pack (pop)' mødt uden tilsvarende '#pragma pack (push, <n>)'"
-#: c-pragma.c:126
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
-msgstr ""
+msgstr "'#pragma pack(pop, %s)' mødt uden tilsvarende '#pragma pack(push, %s, <n>)'"
-#: c-pragma.c:249
-#, fuzzy
+#: c-pragma.c:145
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(push[, id], <n>) understøttes ikke på målarkitekturen"
+
+#: c-pragma.c:147
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(pop[, id], <n>) understøttes ikke på målarkitekturen"
+
+#: c-pragma.c:167
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr "manglende '(' efter '#pragma pack' - ignoreret"
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
+msgstr "forkert udformet '#pragma pack' - ignoreret"
+
+#: c-pragma.c:185
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr "forkert udformet '#pragma pack(push[, id], <n>)' - ignoreret"
+
+#: c-pragma.c:187
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr "forkert udformet '#pragma pack(pop[, id])' - ignoreret"
+
+#: c-pragma.c:196
+#, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr "ukendt handling '%s' for '#pragma pack' - ignoreret"
+
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma pack'"
-#: c-pragma.c:298
-#, fuzzy
+#: c-pragma.c:247
+#, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "justering skal være en lille potens af to, ikke %d"
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "anvendelse af #pragma weak '%s' efter første brug resulterer i ikke-defineret opførsel"
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr "forkert udformet '#pragma weak' - ignoreret"
+
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma weak'"
+
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "forkert udformet '#pragma redefine_extname' - ignoreret"
+
+#: c-pragma.c:382
+msgid "junk at end of #pragma redefine_extname"
+msgstr "ragelse i slutningen af '#pragma redefine_extname'"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr "#pragma redefine_extname er i konflikt med erklæring"
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "forkert udformet '#pragma extern_prefix' - ignoreret"
+
+#: c-pragma.c:425
+msgid "junk at end of #pragma extern_prefix"
+msgstr "ragelse i slutningen af '#pragma extern_prefix'"
-#: c-semantics.c:607
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
+msgstr "asm-erklæring er i konflikt med tidligere omdøbelse"
+
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion"
-#: c-semantics.c:625
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "continue-sætning befinder sig ikke i en løkke"
-#: c-semantics.c:720
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
-msgstr ""
+msgstr "destruktionsfunktion påkrævet til '%#D'"
-#: c-semantics.c:721
+#: c-semantics.c:679
msgid "where case label appears here"
-msgstr ""
+msgstr "hvor case-etiket optræder her"
-#: c-semantics.c:724
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
-msgstr ""
+msgstr "(indesluttede handlinger fra tidligere case-sætninger kræver destruktionsfunktioner i deres eget virkefelt)"
-#: c-semantics.c:757 c-typeck.c:6800
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
-msgstr ""
+msgstr "%s-modifikation ignoreret ved asm"
-#: c-typeck.c:122
+#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr "'%s' er af en ufuldstændig type"
-#: c-typeck.c:144 cp/call.c:2553
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "ugyldig brug af void-udtryk"
#: c-typeck.c:153
+msgid "invalid use of flexible array member"
+msgstr "ugyldig brug af fleksibelt tabelmedlem"
+
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
-msgstr "ugyldig brug af tabel med uangivne rammer"
+msgstr "ugyldig brug af tabel uden angivne grænser"
-#: c-typeck.c:161
+#: c-typeck.c:167
#, c-format
msgid "invalid use of undefined type `%s %s'"
msgstr "ugyldig brug af en type '%s %s' der ikke er defineret"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:165
+#: c-typeck.c:171
#, c-format
msgid "invalid use of incomplete typedef `%s'"
msgstr "ugyldig brug af ufuldstændig typedef '%s'"
-#: c-typeck.c:396 c-typeck.c:410
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
-msgstr ""
+msgstr "funktionstyper ikke er fuldt ud forenelige i ISO C"
-#: c-typeck.c:561
+#: c-typeck.c:603
msgid "types are not quite compatible"
-msgstr ""
+msgstr "typer er ikke helt forenelige"
-#: c-typeck.c:714
-#, fuzzy
-msgid "sizeof applied to a function type"
-msgstr "sizeof benyttet på en ufuldstændig type"
-
-#: c-typeck.c:720
-#, fuzzy
-msgid "sizeof applied to a void type"
-msgstr "sizeof benyttet på en ufuldstændig type"
-
-#: c-typeck.c:727
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof benyttet på en ufuldstændig type"
-
-#: c-typeck.c:780 c-typeck.c:2793
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
msgstr "beregninger udført på en henvisning til en ufuldstændig type"
-#: c-typeck.c:808
-msgid "__alignof__ applied to an incomplete type"
-msgstr "__alignof__ benyttet på en ufuldstændig type"
-
-#: c-typeck.c:834
-msgid "`__alignof' applied to a bit-field"
-msgstr "'__alignof' benyttet på et bitfelt"
-
-#: c-typeck.c:1025 cp/typeck.c:1792
-msgid "invalid use of non-lvalue array"
-msgstr "ugyldig brug af en tabel der ikke kan optræde som en venstreværdi"
-
-#: c-typeck.c:1200
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s har intet medlem ved navn '%s'"
-#: c-typeck.c:1231
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "forespørgsel efter medlemmet '%s' i noget der hverken er en union eller en struktur"
-#: c-typeck.c:1264
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
-#: c-typeck.c:1268
-#, fuzzy
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
-msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
+msgstr "forsøg på at følge en 'void *'-henvisning"
-#: c-typeck.c:1285 cp/typeck.c:2402
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "ugyldig typeparameter '%s'"
-#: c-typeck.c:1304 cp/typeck.c:2428
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr "indeks mangler i tabelopslag"
-#: c-typeck.c:1325 cp/typeck.c:2470
-#, fuzzy
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
-msgstr "tabelindeks er ikke et heltal"
+msgstr "tabelindeks er af typen 'char'"
-#: c-typeck.c:1333 c-typeck.c:1422 cp/typeck.c:2477 cp/typeck.c:2556
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "tabelindeks er ikke et heltal"
-#: c-typeck.c:1366
-#, fuzzy
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+msgstr "ISO C forbyder opslag i 'register'-tabel"
-#: c-typeck.c:1368
-#, fuzzy
-msgid "ISO C89 forbids subscripting non-lvalue array"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C90 forbyder opslag i tabel der ikke er venstreværdi"
-#: c-typeck.c:1401
+#: c-typeck.c:1341
msgid "subscript has type `char'"
-msgstr ""
+msgstr "indeks er af typen 'char'"
-#: c-typeck.c:1417 cp/typeck.c:2551
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr "værdien der er påført et indeks, er hverken en tabel eller en henvisningsvariabel"
-#: c-typeck.c:1468
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr "'%s' ikke erklæret her (ikke i en funktion)"
-#: c-typeck.c:1475
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
-#: c-typeck.c:1480
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang"
-#: c-typeck.c:1481
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "per funktion)"
-#: c-typeck.c:1498
-#, fuzzy, c-format
+#: c-typeck.c:1441
+#, c-format
msgid "local declaration of `%s' hides instance variable"
-msgstr "%s: den lokale erklæring af funktionen '%s' er ikke indsat\n"
+msgstr "den lokale erklæring af funktionen '%s' skjuler instansvariabel"
-#: c-typeck.c:1563
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "det kaldte objekt er ikke en funktion"
-#: c-typeck.c:1647 cp/typeck.c:3189
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "for mange parametre til funktionen"
-#: c-typeck.c:1670
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "typen af den formelle parameter %d er ufuldstændig"
-#: c-typeck.c:1683
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr "%s som heltal i stedet for kommatal på grund af prototypen"
-#: c-typeck.c:1686
-#, fuzzy, c-format
+#: c-typeck.c:1641
+#, c-format
msgid "%s as integer rather than complex due to prototype"
-msgstr "%s som kommatal i stedet for complex på grund af prototypen"
+msgstr "%s som heltal i stedet for complex på grund af prototypen"
-#: c-typeck.c:1689
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr "%s som complex i stedet for kommatal på grund af prototypen"
-#: c-typeck.c:1692
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr "%s som kommatal i stedet for heltal på grund af prototypen"
-#: c-typeck.c:1695
-#, fuzzy, c-format
+#: c-typeck.c:1650
+#, c-format
msgid "%s as complex rather than integer due to prototype"
-msgstr "%s som complex i stedet for kommatal på grund af prototypen"
+msgstr "%s som complex i stedet for heltal på grund af prototypen"
-#: c-typeck.c:1698
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr "%s som kommatal i stedet for complex på grund af prototypen"
-#: c-typeck.c:1708
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr "%s som float i stedet for double på grund af prototypen"
-#: c-typeck.c:1725
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr "%s med anderledes bredde på grund af prototypen"
-#: c-typeck.c:1759
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "%s som unsigned på grund af prototypen"
-#: c-typeck.c:1761
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "%s som signed på grund af prototypen"
-#: c-typeck.c:1795 cp/typeck.c:3290
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "for få parametre til funktionen"
-#: c-typeck.c:1836
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
-msgstr ""
+msgstr "foreslår paranteser omkring + eller - inden i skifteoperation"
-#: c-typeck.c:1843
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
-msgstr ""
+msgstr "foreslår paranteser omkring && inden i ||"
-#: c-typeck.c:1852
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
-msgstr ""
+msgstr "foreslår paranteser omkring beregning i operand til |"
-#: c-typeck.c:1855
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
-msgstr ""
+msgstr "foreslår paranteser omkring sammenligning i operand til |"
-#: c-typeck.c:1864
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
-msgstr ""
+msgstr "foreslår paranteser omkring beregning i operand til ^"
-#: c-typeck.c:1867
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
-msgstr ""
+msgstr "foreslår paranteser omkring sammenligning i operand til ^"
-#: c-typeck.c:1874
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
-msgstr ""
+msgstr "foreslår paranteser omkring + eller - i operand til &"
-#: c-typeck.c:1877
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
-msgstr ""
+msgstr "foreslår paranteser omkring sammenligning i operand til &"
-#: c-typeck.c:1884
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
-msgstr ""
+msgstr "sammenligninger som 'x <= y <= z' følger ikke den matematiske betydning"
+
+#: c-typeck.c:2001 c-typeck.c:2036
+msgid "division by zero"
+msgstr "division med nul"
-#: c-typeck.c:2138 cp/typeck.c:3569
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
-msgstr ""
+msgstr "højreskiftsantal er negativ"
-#: c-typeck.c:2145 cp/typeck.c:3575
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
-msgstr ""
+msgstr "højreskiftsantal er større end bredden af typen"
-#: c-typeck.c:2170 cp/typeck.c:3594
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
-msgstr ""
+msgstr "venstreskiftsantal er negativ"
-#: c-typeck.c:2173 cp/typeck.c:3596
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
-msgstr ""
+msgstr "venstreskiftsantal er større end bredden af typen"
-#: c-typeck.c:2198
-#, fuzzy
+#: c-typeck.c:2133
msgid "shift count is negative"
-msgstr "størrelsen af tabel '%s' er negativ"
+msgstr "skifteantal er negativ"
-#: c-typeck.c:2200
+#: c-typeck.c:2135
msgid "shift count >= width of type"
-msgstr ""
+msgstr "skifteantal er større end bredden af typen"
-#: c-typeck.c:2221 cp/typeck.c:3631
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
-msgstr ""
+msgstr "sammenligning af kommatal med == eller != er ikke sikkert"
-#: c-typeck.c:2245 c-typeck.c:2251
-#, fuzzy
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning"
-#: c-typeck.c:2254 c-typeck.c:2296 c-typeck.c:2324
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
-msgstr ""
+msgstr "sammenligning med forskellige henvisningstyper mangler en typeomtvingelse"
-#: c-typeck.c:2269 c-typeck.c:2275 c-typeck.c:2345 c-typeck.c:2351
-#, fuzzy
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "sammenligning mellem henvisningsvariabel og heltal"
-#: c-typeck.c:2291 c-typeck.c:2319
-#, fuzzy
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ISO C forbyder ordnede sammenligninger af henvisninger til funktioner"
-#: c-typeck.c:2316
-#, fuzzy
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
-msgstr "__alignof__ benyttet på en ufuldstændig type"
+msgstr "sammenligning mellem en fuldstændig og ufuldstændig henvisning"
-#: c-typeck.c:2332 c-typeck.c:2339
-#, fuzzy
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ordnet sammenligning af henvisning med heltallet nul"
-#: c-typeck.c:2365 cp/typeck.c:3764
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
-msgstr "uordnent sammenligning af ikke-kommatalsparameter"
+msgstr "uordnet sammenligning af ikke-kommatalsparameter"
-#: c-typeck.c:2579
-#, fuzzy
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "sammenligning mellem signed og unsigned"
-#: c-typeck.c:2625 cp/typeck.c:4010
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
-msgstr ""
+msgstr "sammenligning af forfremmet ~unsigned med konstant"
-#: c-typeck.c:2633 cp/typeck.c:4018
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
-msgstr ""
+msgstr "sammenligning af forfremmet ~unsigned med unsigned"
-#: c-typeck.c:2695
-msgid "pointer of type `void *' used in arithmetic"
-msgstr ""
-
-#: c-typeck.c:2701
-msgid "pointer to a function used in arithmetic"
-msgstr ""
-
-#: c-typeck.c:2779
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
-msgstr ""
+msgstr "henvisning af typen 'void *' benyttet i subtraktion"
-#: c-typeck.c:2781
-#, fuzzy
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
+msgstr "henvisning til en funktion benyttet i subtraktion"
-#: c-typeck.c:2839
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr "forkert parametertype til unært plus"
-#: c-typeck.c:2850
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr "forkert parametertype til unært minus"
-#: c-typeck.c:2862
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
-msgstr ""
+msgstr "ISO C understøtter ikke '~' til compleks-konjugering"
-#: c-typeck.c:2868
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "forkert parametertype til bitkomplement"
-#: c-typeck.c:2879
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "forkert parametertype til abs"
-#: c-typeck.c:2891
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "forkert parametertype til konjugation"
-#: c-typeck.c:2905
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr "forkert parametertype til unært udråbstegn"
-#: c-typeck.c:2948
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
-msgstr ""
+msgstr "ISO C understøtter ikke '++' og '--' for complex-typer"
-#: c-typeck.c:2962 c-typeck.c:2988
-#, c-format
-msgid "wrong type argument to %s"
-msgstr "forkert parametertype til %s"
+# man kan ikke stikke en forøgelse (++) en type som parameter, 'type
+# argument' skal opfattes på en anden måde
+#: c-typeck.c:2867 c-typeck.c:2899
+msgid "wrong type argument to increment"
+msgstr "forkert parametertype til forøgelse"
-#: c-typeck.c:2982
-#, c-format
-msgid "%s of pointer to unknown structure"
-msgstr "%s af henvisning til en ukendt struktur"
+#: c-typeck.c:2869 c-typeck.c:2901
+msgid "wrong type argument to decrement"
+msgstr "forkert parametertype til formindskelse"
-#: c-typeck.c:3052
-msgid "invalid lvalue in increment"
-msgstr "ugyldig venstreværdi i forøgelse"
+#: c-typeck.c:2890
+msgid "increment of pointer to unknown structure"
+msgstr "forøgelse af henvisning til en ukendt struktur"
-#: c-typeck.c:3053
-msgid "invalid lvalue in decrement"
-msgstr "ugyldig venstreværdi i formindskelse"
+#: c-typeck.c:2892
+msgid "decrement of pointer to unknown structure"
+msgstr "formindskelse af henvisning til en ukendt struktur"
-#: c-typeck.c:3061 cp/typeck.c:4587
-msgid "increment"
-msgstr "forøgelse"
-
-#: c-typeck.c:3061 cp/typeck.c:4587
-msgid "decrement"
-msgstr "formindskelse"
-
-#: c-typeck.c:3117
-#, fuzzy
+# RETMIG: hvad betyder dette?
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
-msgstr "ISO C forbyder tekst efter #%s"
+msgstr "ISO C forbyder adressen af et typeomtvingningsudtryk"
-#: c-typeck.c:3131
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
-msgstr "ugyldig venstreværdi i unært '&'"
+msgstr "ugyldig venstreværdi i unær '&'"
-#: c-typeck.c:3163
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%s'"
-#: c-typeck.c:3271 c-typeck.c:4618 c-typeck.c:4634 c-typeck.c:4650
-#: cp/typeck.c:4780 diagnostic.c:1475 gcc.c:4207 java/verify.c:1416
-#: java/verify.c:1417 java/verify.c:1432
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3328
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
-msgstr ""
+msgstr "ISO C forbyder brug af betingede udtryk som venstreværdier"
-#: c-typeck.c:3331
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
-msgstr ""
+msgstr "ISO C forbyder brug af sammensatte udtryk som venstreværdier"
-#: c-typeck.c:3334
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
-msgstr ""
+msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstreværdier"
-#: c-typeck.c:3351
-#, fuzzy, c-format
+# RETMIG: lettere klodset konstruktion
+#: c-typeck.c:3264
+#, c-format
msgid "%s of read-only member `%s'"
-msgstr "%s har intet medlem ved navn '%s'"
+msgstr "%s af medlemmet '%s' der kun må læses"
-#: c-typeck.c:3355
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
-msgstr ""
+msgstr "%s af variablen '%s' der kun må læses"
-#: c-typeck.c:3358
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
-msgstr ""
+msgstr "%s af placering der kun må læses"
-#: c-typeck.c:3376
+#: c-typeck.c:3290
#, c-format
-msgid "cannot take address of bitfield `%s'"
+msgid "cannot take address of bit-field `%s'"
msgstr "kan ikke finde adressen af bitfeltet '%s'"
-#: c-typeck.c:3403
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "global registervariabel '%s' benyttet i indlejret funktion"
-#: c-typeck.c:3407
-#, fuzzy, c-format
+#: c-typeck.c:3322
+#, c-format
msgid "register variable `%s' used in nested function"
-msgstr "global registervariabel '%s' benyttet i indlejret funktion"
+msgstr "registervariabel '%s' benyttet i indlejret funktion"
-#: c-typeck.c:3414
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "forespørgsel efter adressen af den globale registervariabel '%s'"
-#: c-typeck.c:3426
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr "kan ikke anbringe et objekt med et volatile-felt i et register"
-#: c-typeck.c:3430
-#, fuzzy, c-format
+#: c-typeck.c:3345
+#, c-format
msgid "address of register variable `%s' requested"
-msgstr "forespørgsel efter adressen af den globale registervariabel '%s'"
+msgstr "forespørgsel efter adressen af registervariablen '%s'"
-#: c-typeck.c:3538
-#, fuzzy
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
-msgstr "typerne i betingelsesudtrykket passer ikke sammen"
+msgstr "signed og unsigned type i betinget udtryk"
-#: c-typeck.c:3545
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
-msgstr ""
+msgstr "ISO C forbyder betingede udtryk med kun én tom side"
-#: c-typeck.c:3561 c-typeck.c:3568
-#, fuzzy
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ISO C++ forbyder betinget udtryk mellem 'void *' og funktionshenvisning"
-#: c-typeck.c:3574
-#, fuzzy
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
-msgstr "typerne i betingelsesudtrykket passer ikke sammen"
+msgstr "henvisningstyperne i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:3581 c-typeck.c:3591
-#, fuzzy
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
-msgstr "typerne i betingelsesudtrykket passer ikke sammen"
+msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:3605
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "typerne i betingelsesudtrykket passer ikke sammen"
-#: c-typeck.c:3678 cp/typeck.c:5012
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
-msgstr ""
+msgstr "venstreoperanden til kommaudtrykket har ingen virkning"
-#: c-typeck.c:3717
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr "typetildelingen angiver en tabeltype"
-#: c-typeck.c:3723
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr "typetildelingen angiver en funktionstype"
-#: c-typeck.c:3733
-#, fuzzy
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+msgstr "ISO C forbyder omtvingelse af ikke-skalar til den samme type"
-#: c-typeck.c:3754
-#, fuzzy
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+msgstr "ISO C forbyder omtvingelse til uniontype"
-#: c-typeck.c:3770
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
-msgstr "typetildeling til en union-type fra en type der ikke findes i union'en"
+msgstr "typetildeling til en uniontype fra en type der ikke findes i union'en"
+
+#: c-typeck.c:3736
+msgid "cast adds new qualifiers to function type"
+msgstr "typeomtvingning tilføjer modifikationer til en funktionstype"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3815
-#, fuzzy
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
-msgstr "%s kasserer modifikationer på henvisningsmålets type"
+msgstr "typeomtvingelse kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:3830
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
-msgstr ""
+msgstr "typeomtvingelse forøger den påkrævne justering af måltypen"
-#: c-typeck.c:3836 cp/typeck.c:5420
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
-msgstr ""
+msgstr "typeomtvingelse fra henvisning til heltal af en anden størrelse"
-#: c-typeck.c:3841
-#, fuzzy
+#: c-typeck.c:3767
msgid "cast does not match function type"
-msgstr "typetildelingen angiver en funktionstype"
+msgstr "typeomtvingelse passer ikke til funktionstype"
-#: c-typeck.c:3848 cp/typeck.c:5427
-#, fuzzy
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
-msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
+msgstr "typeomtvingelse fra heltal til henvisning af en anden størrelse"
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "typeomtvingning af ufuldstændig type bryder muligvis strenge aliasregler"
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "følgning af en typeomtvunget henvisning vil bryde strenge aliasregler"
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:3990
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "ugyldig venstreværdi i tildeling"
#. Convert new value to destination type.
-#: c-typeck.c:3999 c-typeck.c:4024 c-typeck.c:4041 cp/typeck.c:5542
-#: cp/typeck.c:5699
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "tildeling"
-#: c-typeck.c:4208 c-typeck.c:4275
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "kan ikke videregive højreværdi til referenceparameter"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr "%s opretter en funktionshenvisning med modifikationer fra én uden"
-#: c-typeck.c:4212 c-typeck.c:4255
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr "%s kasserer modifikationer på henvisningsmålets type"
-#: c-typeck.c:4218
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
-msgstr ""
+msgstr "ISO C forbyder parameterkonvertering til uniontype"
-#: c-typeck.c:4247
-#, fuzzy, c-format
+#: c-typeck.c:4213
+#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
-msgstr "ISO forbyder %s mellem funktionshenvisning og 'void *'"
+msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
-#: c-typeck.c:4264
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr "fortegnene i henvisningsmål i %s er forskellige"
-#: c-typeck.c:4280
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
-#: c-typeck.c:4296
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "ugyldig brug af en tabel der ikke kan optræde som en venstreværdi"
+
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
-#: c-typeck.c:4304
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
-#: c-typeck.c:4318 c-typeck.c:4321
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "typen af den %d. parameter i '%s' passer ikke"
-#: c-typeck.c:4325
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr "typen af den %d. parameter i det indirekte funktionskald passer ikke"
-#: c-typeck.c:4329
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "uforenelige typer i %s"
#. Function name is known; supply it.
-#: c-typeck.c:4360
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "videregiver parameter til '%s'"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "videregiver parameter af henvisning til funktion"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
msgstr "videregiver den %d. parameter til '%s'"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4370
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
msgstr "videregiver den %d. parameter af henvisning til funktion"
-#: c-typeck.c:4437
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
msgstr "startværdien for den statiske variabel er ikke en konstant"
-#: c-typeck.c:4443
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
msgstr "startværdien for den statiske variabel benytter komplicerede beregninger"
-#: c-typeck.c:4451
-#, fuzzy
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
-msgstr "feltets startværdi er ikke en konstant"
+msgstr "startværdi til variabel af en sammensat type er ikke en konstant"
-#: c-typeck.c:4453
-#, fuzzy
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
-msgstr "startværdien for den statiske variabel benytter komplicerede beregninger"
+msgstr "startværdien til variabel af en sammensat type benytter komplicerede beregninger"
-#: c-typeck.c:4460
+# 'automatic aggregate' betyder automatisk allokerede variabler, dvs.
+# ganske almindelige lokale variabler (kan evt. erklæres med 'auto')
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
-msgstr ""
+msgstr "traditionel C forbyder klargøring af auto-variabler af sammensatte typer"
-#: c-typeck.c:4621 c-typeck.c:4637 c-typeck.c:4653
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
msgstr "(i nærheden af klargøringen af '%s')"
-#: c-typeck.c:4705 cp/typeck2.c:518
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr "char-tabel får tildelt startværdi fra en bred streng"
-#: c-typeck.c:4712 cp/typeck2.c:525
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr "int-tabel får tildelt startværdi fra en ikke-bred streng"
-#: c-typeck.c:4729 cp/typeck2.c:541
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr "startværdistrengen til char-tabellen er for lang"
-#: c-typeck.c:4756
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr "tabel får tildelt en startværdi fra et tabeludtryk der ikke er konstant"
-#: c-typeck.c:4773 c-typeck.c:4775 c-typeck.c:4791 c-typeck.c:4812
-#: c-typeck.c:6207
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr "startværdielement er ikke en konstant"
-#: c-typeck.c:4807
+#: c-typeck.c:4873
msgid "initialization"
msgstr "klargøring"
-#: c-typeck.c:4818 c-typeck.c:6212
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr "startværdielement kan ikke beregnes ved indlæsningstidspunktet"
-#: c-typeck.c:4855 c-typeck.c:4871 cp/typeck2.c:618
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
msgstr "ugyldig startværdi"
-#: c-typeck.c:5339
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
msgstr "overskydende krøllede paranteser ved slutningen af startværdien"
-#: c-typeck.c:5359
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr "krøllede paranteser mangler omkring startværdien"
-#: c-typeck.c:5403
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr "krøllede paranteser omkring skalarstartværdi"
-#: c-typeck.c:5455
+# RETMIG: eller er det fleksibel tabel-medlem
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
-msgstr ""
+msgstr "klargøring af fleksibelt tabelmedlem i en indlejret kontekst"
-#: c-typeck.c:5457
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
-msgstr ""
-
-#: c-typeck.c:5467
-msgid "deprecated initialization of zero-length array"
-msgstr ""
-
-#: c-typeck.c:5472
-msgid "initialization of zero-length array before end of structure"
-msgstr ""
-
-#: c-typeck.c:5477
-msgid "initialization of zero-length array inside a nested context"
-msgstr ""
+msgstr "klargøring af fleksibelt tabelmedlem"
-#: c-typeck.c:5496
+#: c-typeck.c:5554
msgid "missing initializer"
msgstr "manglende startværdi"
-#: c-typeck.c:5521
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr "tom skalarstartværdi"
-#: c-typeck.c:5526
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr "overskydende elementer i skalarstarværdi"
-#: c-typeck.c:5610
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
-msgstr ""
+msgstr "klargøringstegn må ikke indlejres"
-#: c-typeck.c:5631 c-typeck.c:5701
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr "tabelindeks i en startværdi der ikke er en tabel"
-#: c-typeck.c:5636 c-typeck.c:5753
-#, fuzzy
+# RETMIG: record?
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
-msgstr "for mange elementer i union-startværdi"
+msgstr "feltnavn ikke i struktur- eller union-startværdi"
-#: c-typeck.c:5697 c-typeck.c:5699
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr "tabelindekset i startværdien er ikke en konstant"
-#: c-typeck.c:5704
-#, fuzzy
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
-msgstr "tabelindeks i en startværdi der ikke er en tabel"
+msgstr "tabelindeks i startværdi overskrider tabelgrænser"
-#: c-typeck.c:5715
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr "tomt indeksinterval i startværdi"
-#: c-typeck.c:5724
-#, fuzzy
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
-msgstr "tomt indeksinterval i startværdi"
+msgstr "tabelindeksinterval i startværdi overskrider tabelgrænser"
-#: c-typeck.c:5765
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr "ukendt felt '%s' angivet i startværdi"
-#: c-typeck.c:5802 c-typeck.c:5823 c-typeck.c:6277
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
-msgstr ""
+msgstr "klargjort felt med bivirkninger overskrevet"
-#: c-typeck.c:6490
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr "for mange elementer i char-tabelstartværdien"
-#: c-typeck.c:6497 c-typeck.c:6536
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
-msgstr "for mange elementer i struc-startværdi"
+msgstr "for mange elementer i struct-startværdi"
-#: c-typeck.c:6603
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr "ikke-statisk klargøring af fleksibelt tabelmedlem"
+
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr "for mange elementer i union-startværdi"
-#: c-typeck.c:6620
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
-msgstr ""
+msgstr "traditionel C forbyder tildeling af startværdi til unioner"
-#: c-typeck.c:6683
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr "for mange elementer i tabelstartværdi"
-#: c-typeck.c:6709
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr "for mange elementer i vektorstartværdi"
+
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
-msgstr "for mange elemener i skalarstartværdi"
+msgstr "for mange elementer i skalarstartværdi"
-#: c-typeck.c:6793
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr "asm-sætning er ikke en strengkonstant"
-#: c-typeck.c:6825
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr "ugyldig venstreværdi i asm-sætning"
-#: c-typeck.c:6898
+#: c-typeck.c:7042
msgid "modification by `asm'"
-msgstr "ændring i 'asm'"
+msgstr "ændring af 'asm'"
-#: c-typeck.c:6917 cp/typeck.c:6589
-#, fuzzy
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
-msgstr "funktionen returnerer ikke en strengtype"
+msgstr "funktion der er erklæret 'noreturn' har en 'return'-sætning"
-#: c-typeck.c:6924
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
-msgstr ""
+msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
-#: c-typeck.c:6930
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
-msgstr ""
+msgstr "'return' med en værdi i en funktion der returnerer void"
-#: c-typeck.c:6934
+#: c-typeck.c:7078
msgid "return"
-msgstr "return"
+msgstr "returnering"
-#: c-typeck.c:6985
+#: c-typeck.c:7130
msgid "function returns address of local variable"
-msgstr ""
+msgstr "funktion returnerer adressen på en lokal variabel"
-#: c-typeck.c:7043 cp/semantics.c:533
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "switch-størrelsen er ikke et heltal"
-#: c-typeck.c:7054
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
-msgstr ""
+msgstr "'long'-udtryk i switch konverteres ikke til 'int' i ISO C"
-#: c-typeck.c:7097 cp/decl.c:5228
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "case-etiket befinder sig ikke inden i en switch-sætning"
-#: c-typeck.c:7099 cp/decl.c:5233
-#, fuzzy
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
-msgstr "default-etiket befinder sig ikke inden i en switch-sætning"
+msgstr "'default'-etiket befinder sig ikke inden i en switch-sætning"
-#: calls.c:1877
-#, fuzzy, c-format
+#: calls.c:1934 tree-inline.c:1177
+#, c-format
msgid "inlining failed in call to `%s'"
-msgstr "kan ikke håndtere inkonsistente kald af '%s'"
+msgstr "indlejring mislykkedes i kald til '%s'"
-#: calls.c:1878 calls.c:2191
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
-msgstr ""
+msgstr "kaldt herfra"
-#: calls.c:2190
-#, fuzzy, c-format
+#: calls.c:2270
+#, c-format
msgid "can't inline call to `%s'"
-msgstr "kan ikke håndtere inkonsistente kald af '%s'"
+msgstr "kan ikke indlejre kald til '%s'"
-#: calls.c:2228
+#: calls.c:2300
msgid "function call has aggregate value"
-msgstr ""
+msgstr "funktionskald har en sammensat værdi"
-#: calls.c:4604
-msgid "variable offset is passed paritially in stack and in reg"
-msgstr ""
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "Størrelsen af løkke %d burde være %d, ikke %d."
-#: calls.c:4606
-msgid "variable size is passed partially in stack and in reg"
-msgstr ""
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Basisblok %d hører ikke til løkke %d."
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "Løkke %d's hoved har ikke præcis 2 elementer."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "Løkke %d's ende har ikke præcis 1 efterfølger."
-#: collect2.c:454
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "Løkke %d's ende har ikke hoved som efterfølger."
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "Løkke %d's ende tilhører ikke direkte løkken."
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "Løkke %d's hoved tilhører ikke direkte løkken."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "basisblok %d ved et forkerte sted"
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "prev_bb for %d bør være %d, ikke %d"
+
+#: cfgrtl.c:1800
+#, c-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr "slutinstruktion %d for blok %d ikke fundet i instruktionsstrømmen"
+
+#: cfgrtl.c:1814
+#, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "instruktion %d er i flere basisblokke (%d og %d)"
+
+#: cfgrtl.c:1826
+#, c-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr "hovedinstruktion %d for blok %d ikke fundet i instruktionsstrømmen"
+
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB passer ikke til konf. %i %i"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Ukorrekt antal af blok %i %i"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Ukorrekt frekvens af blok %i %i"
+
+#: cfgrtl.c:1869
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr "verify_flow_info: Dobbelt kant %i->%i"
+
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: Ukorrekt sandsynlighed for kant %i->%i %i"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Ukorrekt antal for kant %i->%i %i"
+
+#: cfgrtl.c:1911
+#, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "verify_flow_info: Ukorrekte blokke til fald-gennem %i->%i"
+
+#: cfgrtl.c:1926
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr "verify_flow_info: Ukorrekt fald-gennem %i->%i"
+
+#: cfgrtl.c:1928
+msgid "wrong insn in the fallthru edge"
+msgstr "forkert instruktion i fald-gennem-kant"
+
+#: cfgrtl.c:1935
+#, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "verify_flow_info: Efterfølgende kant til basisblok %d er ødelagt"
+
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Mangler REG_EH_REGION-note i slutningen af basisblok %i"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "For mange udgående forgreningskanter fra basisblok %i"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Fald gennem-kant efter ubetinget spring %i"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Forkert antal forgreningskanter efter ubetinget spring %i"
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Forkert antal forgreningskanter efter betinget spring %i"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "Kaldekanter for ikke-kaldsinstruktion i basisblok %i"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "Unormale kanter uden noget formål i basisblok %i"
+
+#: cfgrtl.c:2004
+#, c-format
+msgid "missing barrier after block %i"
+msgstr "manglende barriere efter blok %i"
+
+#: cfgrtl.c:2014
+#, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "foregående kant til basisblok %d er ødelagt"
+
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "instruktion %d inden i basisblok %d, men block_for_insn er NULL"
+
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "instruktion %d inden i basisblok %d, men block_for_insn er %i"
+
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d"
+
+#: cfgrtl.c:2072
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d"
+
+#: cfgrtl.c:2084
+#, c-format
+msgid "in basic block %d:"
+msgstr "i basisblok %d:"
+
+#: cfgrtl.c:2085
+msgid "flow control insn inside a basic block"
+msgstr "strømkontrolinstruktion inden i en basisblok"
+
+#: cfgrtl.c:2104
+#, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "kantlister til basisblok %i er ødelagt"
+
+#: cfgrtl.c:2119
+msgid "basic blocks not numbered consecutively"
+msgstr "basisblokkene er ikke nummeret i rækkefølge"
+
+#: cfgrtl.c:2144
+msgid "insn outside basic block"
+msgstr "instruktion uden for basisblok"
+
+#: cfgrtl.c:2152
+msgid "return not followed by barrier"
+msgstr "returnering følges ikke af barriere"
+
+#: cfgrtl.c:2157
+#, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "antallet af basisbloknoter i instruktionskæden (%d) != n_basic_blocks (%d)"
+
+#: cfgrtl.c:2161
+msgid "verify_flow_info failed"
+msgstr "verify_flow_info mislykkedes"
+
+#: collect2.c:425
msgid "internal error"
msgstr "intern fejl"
-#: collect2.c:935
+#: collect2.c:934
msgid "no arguments"
msgstr "ingen parametre"
-#: collect2.c:1290 collect2.c:1438 collect2.c:1482
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
-msgstr "fejl under åbning af filen %s"
+msgstr "fopen %s"
-#: collect2.c:1293 collect2.c:1443 collect2.c:1485
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
-msgstr "fejl under lukning af filen %s"
+msgstr "fclose %s"
-#: collect2.c:1302
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1392
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
-msgstr "%d konstrueringsfunktion(er) fundet\n"
+msgstr "%d konstruktionsfunktion(er) fundet\n"
-#: collect2.c:1393
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
-msgstr "%d destrueringsfunktion(er) fundet\n"
+msgstr "%d destruktionsfunktion(er) fundet\n"
-#: collect2.c:1394
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d rammetabel(ler) fundet\n"
-#: collect2.c:1546
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s afsluttet af signal %d [%s]%s"
-#: collect2.c:1565
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr "%s returnerede afslutningskoden %d"
-#: collect2.c:1593
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr "[kan ikke finde %s]"
-#: collect2.c:1608
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr "kan ikke finde '%s'"
-#: collect2.c:1619 collect2.c:1622
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr "omdirigerer standard-ud: %s"
-#: collect2.c:1665
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Efterlader %s]\n"
-#: collect2.c:1906
+#: collect2.c:1870
#, c-format
-msgid "\nwrite_c_file - output name is %s, prefix is %s\n"
-msgstr "\nwrite_c_file - uddatanavnet er %s, præfikset er %s\n"
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - uddatanavnet er %s, præfikset er %s\n"
-#: collect2.c:2124
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr "kan ikke finde 'nm'"
-#: collect2.c:2134 collect2.c:2576
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
-msgstr "fejl under oprettelse af ledning"
+msgstr "pipe"
-#: collect2.c:2138 collect2.c:2580
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
-msgstr "fejl under åbning af fildeskriptor"
+msgstr "fdopen"
-#: collect2.c:2164 collect2.c:2606
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
-msgstr "fejl under kopiering af fildeskriptor (dup2 %d 1)"
+msgstr "dup2 %d 1"
-#: collect2.c:2167 collect2.c:2170 collect2.c:2183 collect2.c:2609
-#: collect2.c:2612 collect2.c:2625
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
-msgstr "fejl under lukning af fildeskriptor %d"
+msgstr "close %d"
-#: collect2.c:2173
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "fejl under kørsel (vha. execvp) af %s"
+msgid "execv %s"
+msgstr "fejl under kørsel (vha. execv) af %s"
-#: collect2.c:2227
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr "klargøringsfunktion fundet i objekt %s"
-#: collect2.c:2235
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr "afslutningsfunktion fundet i objekt %s"
-#: collect2.c:2258 collect2.c:2664
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
-msgstr "fejl under lukning af fil"
+msgstr "fclose"
-#: collect2.c:2303
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr "kunne ikke åbne filen '%s'"
-#: collect2.c:2305
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr "kunne ikke få fat i oplysninger om filen '%s'"
-#: collect2.c:2311
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr "kunne ikke indlæse filen '%s'"
-#: collect2.c:2464
+#: collect2.c:2422
msgid "not found\n"
msgstr "ikke fundet\n"
-#: collect2.c:2466 collect2.c:2643
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dynamisk afhængighed %s ikke fundet"
-#: collect2.c:2486
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr "ugyldigt magisk tal i filen '%s'"
-#: collect2.c:2508
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "dynamiske afhængigheder.\n"
-#: collect2.c:2567
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr "kan ikke finde 'ldd'"
-#: collect2.c:2615
-#, c-format
-msgid "execv %s"
-msgstr "fejl under kørsel (vha. execv) af %s"
-
-#: collect2.c:2628
-msgid "\nldd output with constructors/destructors.\n"
-msgstr "\nldd-uddata med konstruktions-/destruktionsfunktioner.\n"
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"ldd-uddata med konstruktions-/destruktionsfunktioner.\n"
-#: collect2.c:2655
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "kan ikke åbne den dynamiske afhængighed '%s'"
-#: collect2.c:2769
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
-msgstr "%s: ikke en coff-fil"
+msgstr "%s: ikke en COFF-fil"
-#: collect2.c:2888
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
-msgstr "%s: kan ikke åbnes som en coff-fil"
+msgstr "%s: kan ikke åbnes som en COFF-fil"
-#: collect2.c:2944
+#: collect2.c:2901
#, c-format
-msgid "Library lib%s not found"
-msgstr "Biblioteket lib%s ikke fundet"
+msgid "library lib%s not found"
+msgstr "biblioteket lib%s ikke fundet"
-#: collect2.c:3073
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "fejl ved åbning af %s"
-#: collect2.c:3096
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
-msgstr "uforeneligheder mellem objektfil og forventede værdier"
+msgstr "uoverensstemmelser mellem objektfil og forventede værdier"
-#: collect2.c:3169
+#: collect2.c:3124
#, c-format
-msgid "\nProcessing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
-msgstr "\nBehandler symboltabel nr. %d, offset = 0x%.8lx, form = %s\n"
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+"\n"
+"Behandler symboltabel nr. %d, forskydning = 0x%.8lx, form = %s\n"
-#: collect2.c:3178
+#: collect2.c:3133
msgid "string section missing"
msgstr "strengsektion mangler"
-#: collect2.c:3181
+#: collect2.c:3136
msgid "section pointer missing"
msgstr "sektionshenvisning mangler"
-#: collect2.c:3229
+#: collect2.c:3184
msgid "no symbol table found"
msgstr "ingen symboltabel fundet"
-#: collect2.c:3242
+#: collect2.c:3197
msgid "no cmd_strings found"
msgstr "ingen cmd_strings fundet"
-#: collect2.c:3254
-msgid "\nUpdating header and load commands.\n\n"
-msgstr "\nOpdaterer hoved- og indlæsningskommandoer.\n\n"
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+"\n"
+"Opdaterer hoved- og indlæsningskommandoer.\n"
+"\n"
-#: collect2.c:3261
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr "indlæser kommandooversigt, %d kommandoer, ny størrelse %ld.\n"
-#: collect2.c:3292
-msgid "writing load commands.\n\n"
-msgstr "skriver indlæsningskommandoer.\n\n"
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+"skriver indlæsningskommandoer.\n"
+"\n"
-#: collect2.c:3312
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "fejl ved lukning af %s"
-#: collect2.c:3386
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr "kunne ikke konvertere 0x%l.8x til en region"
-#: collect2.c:3390
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
-msgstr "%s-funktion, region %d, offset = %ld (0x%.8lx)\n"
+msgstr "%s-funktion, region %d, forskydning = %ld (0x%.8lx)\n"
-#: collect2.c:3517
+#: collect2.c:3472
msgid "bad magic number"
msgstr "ugyldigt magisk tal"
-#: collect2.c:3518
+#: collect2.c:3473
msgid "bad header version"
msgstr "ugyldig version af hovedet"
-#: collect2.c:3519
+#: collect2.c:3474
msgid "bad raw header version"
msgstr "ugyldig version af råhovedet"
-#: collect2.c:3520
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "råhoved-mellemlager for småt"
-#: collect2.c:3521
+#: collect2.c:3476
msgid "old raw header file"
msgstr "gammel råhovedfil"
-#: collect2.c:3522
+#: collect2.c:3477
msgid "unsupported version"
msgstr "versionen er ikke understøttet"
-#: collect2.c:3524
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr "ukendt {de,en}code_mach_o_hdr returneringsværdi %d"
-#: collect2.c:3544
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fejl ved egenskabsundersøgelse af filen %s"
-#: collect2.c:3581 collect2.c:3629
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "fejl ved søgning til begyndelsen i filen %s"
-#: collect2.c:3585
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "fejl ved læsning af %s"
-#: collect2.c:3588
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "læste %ld byte, forventede %ld, fra %s"
-#: collect2.c:3609
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "fejl ved synkronisering mellem hukommelse og disk af %s"
-#: collect2.c:3616
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "fejl ved fjernelse af %s fra hukommelsen"
-#: collect2.c:3633
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "fejl ved skrivning til %s"
-#: collect2.c:3636
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "skrev %ld byte, forventede %ld, til %s"
-#: combine.c:12818
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3540,7 +4196,7 @@ msgstr ""
";; %d vellykkede.\n"
"\n"
-#: combine.c:12828
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3551,716 +4207,5120 @@ msgstr ""
";; kombineringstotal: %d forsøg, %d udskiftninger (%d kræver ny plads),\n"
";; %d succeser.\n"
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
+#: convert.c:69
+msgid "cannot convert to a pointer type"
+msgstr "kan ikke konverteres til en henvisningstype"
+
+#: convert.c:102
+msgid "pointer value used where a floating point value was expected"
+msgstr "en henvisningsværdi er angivet hvor der forventedes en kommatalsværdi"
+
+#: convert.c:106
+msgid "aggregate value used where a float was expected"
+msgstr "en værdi af en sammensat type er angivet hvor der forventedes et kommatal"
+
+#: convert.c:132
+msgid "conversion to incomplete type"
+msgstr "konvertering til en ufuldstændig type"
+
+#: convert.c:414 convert.c:494
+msgid "can't convert between vector values of different size"
+msgstr "kan ikke konvertere vektorværdier af forskellige størrelser"
+
+#: convert.c:420
+msgid "aggregate value used where an integer was expected"
+msgstr "en værdi af en sammensat type er angivet hvor der forventedes et heltal"
+
+#: convert.c:472 f/com.c:1100
+msgid "pointer value used where a complex was expected"
+msgstr "en henvisningsværdi er angivet hvor der forventedes et komplekst tal"
+
+#: convert.c:476 f/com.c:1102
+msgid "aggregate value used where a complex was expected"
+msgstr "en værdi af en sammensat type er angivet hvor der forventedes et komplekst tal"
+
+#: convert.c:500
+msgid "can't convert value to a vector"
+msgstr "kan ikke konvertere værdi til en vektor"
+
+#: cpperror.c:113
+msgid "warning: "
+msgstr "advarsel: "
+
+#: cpperror.c:115
+msgid "internal error: "
+msgstr "intern fejl: "
+
+#: cpperror.c:189
+msgid "stdout"
+msgstr "std-ud"
+
+#: cpperror.c:191 gcc.c:6428
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "for mange decimalkommaer i tal"
+
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ugyldig ciffer \"%c\" i oktal konstant"
+
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "brug af C99 hexadecimal kommatalskonstant"
+
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "der er ingen cifre i eksponent"
+
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadecimal kommatalskonstant skal have en eksponent"
+
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionel C tillader ikke endelsen \"%.*s\""
+
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ugyldig endelse \"%.*s\" i heltalskonstant"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "brug af ISO C99 long long-heltalskonstanter"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginære konstanter er en GCC-udvidelse"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstanten er for stor for dens type"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "heltalskonstanten er så stor at den er unsigned"
+
+#: cppexp.c:482
+msgid "missing ')' after \"defined\""
+msgstr "manglende ')' efter \"defined\""
+
+#: cppexp.c:489
+msgid "operator \"defined\" requires an identifier"
+msgstr "operatoren \"defined\" kræver et kaldenavn"
+
+#: cppexp.c:497
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" er et alternativt symbol for \"%s\" i C++)"
+
+#: cppexp.c:507
+msgid "this use of \"defined\" may not be portable"
+msgstr "denne brug af \"defined\" er muligvis ikke portabel"
+
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "kommatalskonstant i præprocessorudtryk"
+
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginært tal i præprocessorudtryk"
+
+#: cppexp.c:596
+#, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr "ISO C++ tillader ikke \"%s\" i #if"
+
+#: cppexp.c:604
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" er ikke defineret"
+
+#: cppexp.c:737 cppexp.c:772
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "manglende binær operator før symbolet \"%s\""
+
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "ugyldigt tegn '%c' i #if"
+
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "ugyldigt tegn '\\%03o' i #if"
+
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "symbolet \"%s\" er ikke gyldigt i præprocessorudtryk"
+
+#: cppexp.c:782
+msgid "void expression between '(' and ')'"
+msgstr "tomt udtryk mellem '(' og ')'"
+
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if uden noget udtryk"
+
+#: cppexp.c:787
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "operatoren '%s' har ikke nogen højre operand"
+
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr " ':' uden forudgående '?'"
+
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "uafbalanceret stak i #if"
+
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "umulig operator '%u'"
+
+#: cppexp.c:954
+msgid "missing ')' in expression"
+msgstr "manglende ')' i udtryk"
+
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr "'?' uden efterfølgende ':'"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "heltallet løber over i præprocessorudtrykket"
+
+#: cppexp.c:990
+msgid "missing '(' in expression"
+msgstr "manglende '(' i udtryk"
+
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "den venstre operand til \"%s\" ændrer fortegn ved forfremmelse"
+
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "den højre operand til \"%s\" ændrer fortegn ved forfremmelse"
+
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "kommeoperator i en operand til #if"
+
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "division med nul i #if"
+
+#: cppfiles.c:411
+#, c-format
+msgid "%s is too large"
+msgstr "%s er for stor"
+
+#: cppfiles.c:447
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s er kortere end forventet"
+
+#: cppfiles.c:461
+#, c-format
+msgid "%s is a block device"
+msgstr "%s er en blokenhed"
+
+#: cppfiles.c:594
+#, c-format
+msgid "no include path in which to find %s"
+msgstr "der er ingen inkluderingssti at finde %s i"
+
+#: cppfiles.c:668
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Flere inkluderingsvagter kan være nyttige til:\n"
+
+#: cppfiles.c:1014
+msgid "absolute file name in remap_filename"
+msgstr "absolut filnavn i remap_filename"
+
+#: cppinit.c:224
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "ignorerer det ikke-eksisterende katalog \"%s\"\n"
+
+#: cppinit.c:231
+#, c-format
+msgid "%s: Not a directory"
+msgstr "%s: ikke et katalog"
+
+#: cppinit.c:287
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "ignorerer mere end én angivelse af kataloget \"%s\"\n"
+
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " da det er et ikke-systemkatalog som dublerer et systemkatalog\n"
+
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t skal være en unsigned type"
+
+#: cppinit.c:895
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "præprocessorberegning har en maksimal præcision på %lu bit; målarkitektur kræver %lu bit"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-beregning skal være mindst lige så præcis som en målarkitekturs int"
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "målarkitekturs char er mindre end 8 bit bred"
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "målarkitekturs wchar_t er mindre end målarkitekturs char"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "målarkitekturs int er mindre end målarkitekturs char"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP-halvheltal er mindre end CPP-tegn"
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP på denne vært kan ikke håndtere bredtegnkonstanter over %lu bit, men målarkitekturen kræver %lu bit"
+
+#: cppinit.c:972
+msgid "#include \"...\" search starts here:\n"
+msgstr "#include \"...\"-søgning begynder her:\n"
+
+#: cppinit.c:976
+msgid "#include <...> search starts here:\n"
+msgstr "#include <...>-søgning begynder her:\n"
+
+#: cppinit.c:979
+msgid "End of search list.\n"
+msgstr "Slut på søgningslisten.\n"
+
+#: cppinit.c:1057
+msgid "<built-in>"
+msgstr "<indbygget>"
+
+#: cppinit.c:1059
+msgid "<command line>"
+msgstr "<kommandolinje>"
+
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, c-format
+msgid "assertion missing after %s"
+msgstr "et postulat mangler efter %s"
+
+#: cppinit.c:1165
+#, c-format
+msgid "directory name missing after %s"
+msgstr "et katalognavn mangler efter %s"
+
+#: cppinit.c:1166
+#, c-format
+msgid "file name missing after %s"
+msgstr "et filnavn mangler efter %s"
+
+#: cppinit.c:1167
+#, c-format
+msgid "macro name missing after %s"
+msgstr "et makronavn mangler efter %s"
+
+#: cppinit.c:1168
+#, c-format
+msgid "path name missing after %s"
+msgstr "navnet på en sti mangler efter %s"
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr "-I- er angivet to gange"
+
+#: cpplex.c:149
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigrafen ??%c konverteret til %c"
+
+#: cpplex.c:157
+#, c-format
+msgid "trigraph ??%c ignored"
+msgstr "trigrafen ??%c ignoreret"
+
+#: cpplex.c:214
+msgid "backslash and newline separated by space"
+msgstr "omvendt skråstreg og linjeskift er adskilt af mellemrum"
+
+#: cpplex.c:221 cpptrad.c:158
+msgid "backslash-newline at end of file"
+msgstr "omvendt skråstreg efterfulgt af linjeskift ved slutningen af filen"
+
+#: cpplex.c:287 cpptrad.c:199
+msgid "\"/*\" within comment"
+msgstr "\"/*\" i en kommentar"
+
+#: cpplex.c:395
+msgid "null character(s) ignored"
+msgstr "nultegn ignoreret"
+
+#: cpplex.c:402
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s i præprocessordirektiv"
+
+#: cpplex.c:475
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "forsøg på at bruge forgiftet \"%s\""
+
+#: cpplex.c:483
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kan kun optræde i udfoldelsen af en C99-makro med vilkårligt antal parametre"
+
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "'$'-tegn i kaldenavn eller tal"
+
+#: cpplex.c:698
+#, c-format
+msgid "missing terminating %c character"
+msgstr "manglende afsluttende '%c'-tegn"
+
+#: cpplex.c:711
+msgid "null character(s) preserved in literal"
+msgstr "nultegn bevaret i strengkonstant"
+
+#: cpplex.c:915 cpptrad.c:487
+msgid "no newline at end of file"
+msgstr "ingen linjeskift ved slutningen af filen"
+
+#: cpplex.c:1092 cpptrad.c:213
+msgid "unterminated comment"
+msgstr "uafsluttet kommentar"
+
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90"
+
+#: cpplex.c:1105
+msgid "(this will be reported only once per input file)"
+msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
+
+#: cpplex.c:1110
+msgid "multi-line comment"
+msgstr "flerlinjers kommentar"
+
+#: cpplex.c:1425
+#, c-format
+msgid "unknown string token %s\n"
+msgstr "ukendt strengsymbol %s\n"
+
+#: cpplex.c:1438
+#, c-format
+msgid "unspellable token %s"
+msgstr "symbol %s kan ikke staves"
+
+#: cpplex.c:1695
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "betydningen af '\\%c' er anderledes i traditionel C"
+
+#: cpplex.c:1701
+msgid "incomplete universal-character-name"
+msgstr "ufuldstændigt universelt tegnnavn"
+
+#: cpplex.c:1715
+#, c-format
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr "'%c' der ikke er et hexadecimalt ciffer, optræder i universelt tegnnavn"
+
+#: cpplex.c:1723
+msgid "universal-character-name on EBCDIC target"
+msgstr "universelt tegnnavn på EBCDIC-mål"
+
+#: cpplex.c:1737
+msgid "universal-character-name out of range"
+msgstr "universelt tegnnavn uden for det gyldige interval"
+
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "betydningen af '\\a' er anderledes i traditionel C"
+
+#: cpplex.c:1798
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "undvigesekvensen '\\%c' er ikke ISO-standard"
+
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "betydningen af '\\x' er anderledes i traditionel C"
+
+#: cpplex.c:1828 f/lex.c:585
+msgid "\\x used with no following hex digits"
+msgstr "\\x angivet uden efterfølgende hexadecimale cifre"
+
+#: cpplex.c:1833
+msgid "hex escape sequence out of range"
+msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
+
+#: cpplex.c:1858
+msgid "octal escape sequence out of range"
+msgstr "den oktale undvigesekvens er uden for det gyldige interval"
+
+#: cpplex.c:1874
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "ukendt undvigesekvensen '\\%c'"
+
+#: cpplex.c:1877
+#, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "ukendt undvigesekvensen '\\%03o'"
+
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "undvigesekvensen er uden for det gyldig interval for dens type"
+
+#: cpplex.c:1973
+msgid "empty character constant"
+msgstr "tom tegnkonstant"
+
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "tegnkonstanten er for lang for dens type"
+
+#: cpplex.c:1986
+msgid "multi-character character constant"
+msgstr "flerbyte-tegnkonstant"
+
+#: cpplib.c:225
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "ekstra symboler i slutningen af #%s-direktiv"
+
+#: cpplib.c:315
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: cpplib.c:327
+msgid "suggest not using #elif in traditional C"
+msgstr "foreslår undladelse af brug af #elif i traditionel C"
+
+#: cpplib.c:330
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionel C ignorerer #%s når '#' er indrykket"
+
+#: cpplib.c:334
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket '#'"
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt"
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr "linjestilsdirektiv er en GCC-udvidelse"
+
+#: cpplib.c:428
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ugyldigt præprocessordirektiv #%s"
+
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan ikke bruges som makronavn"
+
+#: cpplib.c:506
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" kan ikke bruges som et makronavn da det er en operator i C++"
+
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "intet makronavn angivet i direktivet #%s"
+
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr "makronavne skal være kaldenavne"
+
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
+msgstr "glemmer definitionen af \"%s\""
+
+#: cpplib.c:598
+msgid "missing terminating > character"
+msgstr "manglende afsluttende '>'-tegn"
+
+#: cpplib.c:637
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
+
+#: cpplib.c:648
+#, c-format
+msgid "empty file name in #%s"
+msgstr "tomt filnavn i #%s"
+
+#: cpplib.c:667
+msgid "#include_next in primary source file"
+msgstr "#include_next i den primære kildekodefil"
+
+#: cpplib.c:674
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr "#import er forældet, brug en #ifndef-indpakning i inkluderingsfilen"
+
+#: cpplib.c:682
+msgid "#include nested too deeply"
+msgstr "#include indlejret for dybt"
+
+#: cpplib.c:739
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ugyldigt flag \"%s\" i linjedirektiv"
+
+#: cpplib.c:814
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" efter #line er ikke et positivt heltal"
+
+#: cpplib.c:820
+msgid "line number out of range"
+msgstr "linjenummer er uden for det gyldige interval"
+
+#: cpplib.c:831 cpplib.c:902
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" er ikke et ugyldigt filnavn"
+
+#: cpplib.c:866
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" efter # er ikke et positivt heltal"
+
+#: cpplib.c:973
+msgid "invalid #ident directive"
+msgstr "ugyldigt #ident-direktiv"
+
+#: cpplib.c:1061
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registrerer \"%s\" som både et pragma og som et pragmanavnerum"
+
+#: cpplib.c:1064
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s er allerede registreret"
+
+#: cpplib.c:1067
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s er allerede registreret"
+
+#: cpplib.c:1143
+msgid "#pragma once is obsolete"
+msgstr "'#pragma once' er forældet"
+
+#: cpplib.c:1146
+msgid "#pragma once in main file"
+msgstr "'#pragma once' i hovedfil"
+
+#: cpplib.c:1170
+msgid "invalid #pragma GCC poison directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: cpplib.c:1179
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "forgifter eksisterende makro \"%s\""
+
+#: cpplib.c:1201
+msgid "#pragma system_header ignored outside include file"
+msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil"
+
+#: cpplib.c:1226
+#, c-format
+msgid "cannot find source %s"
+msgstr "kan ikke finde kilden %s"
+
+#: cpplib.c:1230
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuel fil er ældre end %s"
+
+#: cpplib.c:1346
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma tager en strengkonstant med paranteser omkring"
+
+#: cpplib.c:1429
+msgid "#else without #if"
+msgstr "#else uden #if"
+
+#: cpplib.c:1434
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: cpplib.c:1436 cpplib.c:1470
+msgid "the conditional began here"
+msgstr "betingelsen begyndte her"
+
+#: cpplib.c:1463
+msgid "#elif without #if"
+msgstr "#elif uden #if"
+
+#: cpplib.c:1468
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: cpplib.c:1499
+msgid "#endif without #if"
+msgstr "#endif uden #if"
+
+#: cpplib.c:1582
+msgid "missing '(' after predicate"
+msgstr "manglende '(' efter udsagn"
+
+#: cpplib.c:1597
+msgid "missing ')' to complete answer"
+msgstr "manglende ')' til at fuldføre svar"
+
+#: cpplib.c:1617
+msgid "predicate's answer is empty"
+msgstr "udsagnets svar et tomt"
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
+msgstr "postulat uden udsagn"
+
+#: cpplib.c:1649
+msgid "predicate must be an identifier"
+msgstr "udsagn skal være et kaldenavn"
+
+#: cpplib.c:1738
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" genpostuleret"
+
+#: cpplib.c:1968
+#, c-format
+msgid "unterminated #%s"
+msgstr "uafsluttet #%s"
+
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroen \"%s\" bliver ikke brugt"
+
+#: cppmacro.c:139 cppmacro.c:294
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ugyldig indbygget makro \"%s\""
+
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "kunne ikke bestemme dato og tid"
+
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
+
+#: cppmacro.c:504
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "indsættelse af \"%s\" og \"%s\" giver ikke et gyldigt præprocessorsymbol"
+
+#: cppmacro.c:546
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 påkræver at restparametrene skal bruges"
+
+#: cppmacro.c:551
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makroen \"%s\" kræver %u parametre, men modtager kun %u"
+
+#: cppmacro.c:556
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makroen \"%s\" bliver viderebragt %u parametre, men tager kun mod %u"
+
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "uafsluttet parameterliste ved kald af makroen \"%s\""
+
+#: cppmacro.c:776
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktionsagtig makro \"%s\" skal bruges med parametre i traditionel C"
+
+#: cppmacro.c:1314
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "makroparameternavnet \"%s\" optræder mere end én gang"
+
+#: cppmacro.c:1351
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" må ikke optræde i makroparameterliste"
+
+#: cppmacro.c:1359
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametre skal være komma-adskilte"
+
+#: cppmacro.c:1376
+msgid "parameter name missing"
+msgstr "parameternavn mangler"
+
+#: cppmacro.c:1391
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99"
+
+#: cppmacro.c:1395
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre"
+
+#: cppmacro.c:1404
+msgid "missing ')' in macro parameter list"
+msgstr "manglende ')' i makroparameterliste"
+
+#: cppmacro.c:1472
+msgid "ISO C requires whitespace after the macro name"
+msgstr "ISO C påkræver mellemrum efter makronavnet"
+
+#: cppmacro.c:1500
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' efterfølges ikke af en makroparameter"
+
+#: cppmacro.c:1519
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' må ikke optræde ved nogen af enderne i en makrokrop"
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" omdefineret"
+
+#: cppmacro.c:1606
+msgid "this is the location of the previous definition"
+msgstr "den foregående definition er her"
+
+#: cppmacro.c:1657
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroparameteren \"%s\" ville blive gjort til en streng i traditionel C"
+
+#: cppmacro.c:1682
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ugyldig hashtype %d i cpp_macro_definition"
+
+#: cppspec.c:109
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "\"%s\" er ikke et gyldigt tilvalg til præprocessoren"
+
+#: cppspec.c:133
+msgid "too many input files"
+msgstr "for mange inddatafiler"
+
+#: cpptrad.c:841
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "opdagede rekursion ved udfoldelse af makroen \"%s\""
+
+#: cse.c:7195
+#, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; Behandler blok fra %d til %d, %d mængder.\n"
+
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr "((anonym))"
+
+#: diagnostic.c:928
+#, c-format
+msgid "%s: warnings being treated as errors\n"
+msgstr "%s: advarsler bliver opfattet som fejl\n"
+
+#: diagnostic.c:963
+#, c-format
+msgid "%s: %s: "
+msgstr "%s: %s: "
+
+#: diagnostic.c:1054
+#, c-format
+msgid "%s "
+msgstr "%s "
+
+#: diagnostic.c:1056
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: diagnostic.c:1078
+msgid "At top level:"
+msgstr "Ved øverste niveau:"
+
+#: diagnostic.c:1083
+#, c-format
+msgid "In member function `%s':"
+msgstr "I medlemsfunktionen '%s':"
+
+#: diagnostic.c:1087
+#, c-format
+msgid "In function `%s':"
+msgstr "I funktionen '%s':"
+
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr "oversættelse afsluttede.\n"
+
+#: diagnostic.c:1193
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d: forvirret af tidligere fejl, opgiver ævred\n"
+
+#: diagnostic.c:1208 diagnostic.c:1316
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
msgstr ""
+"Indsend venligst en komplet fejlrapport med\n"
+"præprocesseret kildekode om nødvendigt.\n"
+"Se %s for instruktioner.\n"
+
+#: diagnostic.c:1314
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Intern oversætterfejl: fejlrapporteringsrutiner blev kaldt igen.\n"
-#: config/a29k/a29k.c:1006
+#: diagnostic.c:1376
#, c-format
-msgid "invalid %%Q value"
-msgstr "ugyldig %%Q-værdi"
+msgid "in %s, at %s:%d"
+msgstr "i %s, ved %s:%d"
-#: config/a29k/a29k.c:1012 config/alpha/alpha.c:4055
+#: diagnostic.c:1397
#, c-format
-msgid "invalid %%C value"
-msgstr "ugyldig %%C-værdi"
+msgid "In file included from %s:%d"
+msgstr "I filen inkluderet af %s:%d"
-#: config/a29k/a29k.c:1018 config/alpha/alpha.c:3919
-#: config/rs6000/rs6000.c:4015
+# kommer til at stå neden under ovenstående, derfor "af"
+#: diagnostic.c:1400
#, c-format
-msgid "invalid %%N value"
-msgstr "ugyldig %%N-værdi"
+msgid ""
+",\n"
+" from %s:%d"
+msgstr ""
+",\n"
+" af %s:%d"
+
+#: diagnostic.c:1401
+msgid ":\n"
+msgstr ":\n"
-#: config/a29k/a29k.c:1024 config/alpha/alpha.c:3990
-#: config/rs6000/rs6000.c:3977
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
-msgid "invalid %%M value"
-msgstr "ugyldig %%M-værdi"
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr "'%s' er forældet (erklæret ved %s:%d)"
-#: config/a29k/a29k.c:1030 config/alpha/alpha.c:3982
-#: config/rs6000/rs6000.c:3942
+#: diagnostic.c:1465
#, c-format
-msgid "invalid %%m value"
-msgstr "ugyldig %%m-værdi"
+msgid "`%s' is deprecated"
+msgstr "'%s' er forældet"
-#: config/a29k/a29k.c:1130 config/alpha/alpha.c:3943 config/romp/romp.c:682
+#: diagnostic.c:1468
#, c-format
-msgid "invalid %%L value"
-msgstr "ugyldig %%L-værdi"
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "type er forældet (erklæret ved %s:%d)"
-#: config/a29k/a29k.c:1135 config/rs6000/rs6000.c:4023
+#: diagnostic.c:1471
+msgid "type is deprecated"
+msgstr "type er forældet"
+
+#: dominance.c:728
#, c-format
-msgid "invalid %%O value"
-msgstr "ugyldig %%O-værdi"
+msgid "dominator of %d should be %d, not %d"
+msgstr "dominator for %d burde være %d, ikke %d"
-#: config/a29k/a29k.c:1141 config/alpha/alpha.c:3927
-#: config/rs6000/rs6000.c:4042
+#: dwarf2out.c:3135
#, c-format
-msgid "invalid %%P value"
-msgstr "ugyldig %%P-værdi"
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "DW_LOC_OP %s understøttes ikke\n"
+
+#: dwarfout.c:2066
+#, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "internt reg.nr.-problem: '%s' har reg.nr. = %d\n"
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "understøttelse for DWARF1-fejlanalyseringsformatet er forældet"
+
+#: dwarfout.c:6278
+msgid "can't get current directory"
+msgstr "kan ikke få fat i det aktuelle katalog"
+
+#: emit-rtl.c:1155
+msgid "can't access real part of complex value in hard register"
+msgstr "kan ikke tilgå den reelle del af komplekst tal i et hardwareregister"
-#: config/a29k/a29k.c:1151
+#: emit-rtl.c:1177
+msgid "can't access imaginary part of complex value in hard register"
+msgstr "kan ikke tilgå den imaginære del af komplekst tal i et hardwareregister"
+
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr "ICE: emit_insn brugt hvor emit_jump_insn behøves:\n"
+
+#: errors.c:136
#, c-format
-msgid "invalid %%V value"
-msgstr "ugyldig %%V-værdi"
+msgid "abort in %s, at %s:%d"
+msgstr "afbrudt i %s ved %s:%d"
+
+#: except.c:369
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "håndtering af undtagelser er slået fra, angiv -fexceptions for at slå dem til"
+
+#: except.c:2994
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr "parameteren til '__builtin_eh_return_regno' skal være konstant"
+
+#: except.c:3137
+msgid "__builtin_eh_return not supported on this target"
+msgstr "__builtin_eh_return understøttes ikke på målarkitekturen"
+
+#: explow.c:1408
+msgid "stack limits not supported on this target"
+msgstr "stakgrænser understøttes ikke på målarkitekturen"
+
+#: expr.c:3355
+msgid "function using short complex types cannot be inline"
+msgstr "funktioner der benytter short complex-typer, kan ikke indbygges"
+
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+msgid "unsupported wide integer operation"
+msgstr "bred heltalsoperation understøttes ikke"
+
+#: expr.c:6669
+#, c-format
+msgid "prior parameter's size depends on `%s'"
+msgstr "foregående parameters størrelse afhænger af '%s'"
+
+#: expr.c:7005
+msgid "returned value in block_exit_expr"
+msgstr "returnerede værdi i block_exit_expr"
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+msgid "cannot take the address of an unaligned member"
+msgstr "kan ikke tage adressen af et ikke-justeret medlem"
+
+#: final.c:1342
+msgid "negative insn length"
+msgstr "negativ instruktionslængde"
+
+#: final.c:2793
+msgid "could not split insn"
+msgstr "kunne ikke dele instruktion"
+
+#: final.c:3141
+msgid "invalid `asm': "
+msgstr "ugyldig 'asm': "
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
+msgstr "indlejrede alternativer for maskinkodedialekter"
+
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
+msgstr "uafsluttet alternativ for maskinkodedialekt"
+
+#: final.c:3401
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr "operandtal mangler efter %%-letter"
+
+#: final.c:3404 final.c:3443
+msgid "operand number out of range"
+msgstr "operandtal er uden for det gyldige interval"
+
+#: final.c:3462
+#, c-format
+msgid "invalid %%-code"
+msgstr "ugyldig %%-kode"
+
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
+msgstr "'%%l'-operand er ikke en etiket"
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+msgid "floating constant misused"
+msgstr "kommatalskonstant misbrugt"
+
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+msgid "invalid expression as operand"
+msgstr "ugyldigt udtryk som operand"
+
+#: flow.c:352
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr "funktion er muligvis en kandidat til egenskaben 'noreturn'"
+
+#: flow.c:357
+msgid "`noreturn' function does return"
+msgstr "funktion med egenskaben 'noreturn' returnerer"
+
+# RETMIG: dette må kunne gøres bedre
+#: flow.c:378
+msgid "control reaches end of non-void function"
+msgstr "kontrol når til slutningen af ikke-void funktion"
+
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "forsøg på at slette indledende/afsluttende instruktion:"
+
+#: fold-const.c:2546 fold-const.c:2559
+#, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "sammenligning er altid %d på grund af den begrænsede rækkevidde af bitfeltet"
+
+#: fold-const.c:3753 fold-const.c:3770
+#, c-format
+msgid "comparison is always %d"
+msgstr "sammenligning er altid %d"
+
+# RETMIG: det giver ikke mening
+#: fold-const.c:3901
+msgid "`or' of unmatched not-equal tests is always 1"
+msgstr "'or' af uafbalancerede sammenligninger med forskellig fra er altid 1"
+
+#: fold-const.c:3906
+msgid "`and' of mutually exclusive equal-tests is always 0"
+msgstr "'and' af udtryk der hver for sig udelukker hinanden, er altid 0"
+
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "størrelsen af variablen '%s' er for stor"
+
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr "umulig begrænsing i 'asm'"
+
+#: function.c:5527
+#, c-format
+msgid "`%s' might be used uninitialized in this function"
+msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion"
+
+#: function.c:5534
+#, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "variablen '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
+
+#: function.c:5553
+#, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "parameteren '%s' bliver måske overskrevet af 'longjmp' eller 'vfork'"
+
+#: function.c:6420
+msgid "function returns an aggregate"
+msgstr "funktion returnerer en værdi af en sammensat type"
+
+#: function.c:6925
+#, c-format
+msgid "unused parameter `%s'"
+msgstr "ubenyttet parameter '%s'"
+
+#: gcc.c:1107
+#, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "tvetydig forkortelse %s"
+
+#: gcc.c:1134
+#, c-format
+msgid "incomplete `%s' option"
+msgstr "ufuldstændigt tilvalg '%s'"
+
+#: gcc.c:1145
+#, c-format
+msgid "missing argument to `%s' option"
+msgstr "der mangler en parameter til tilvalget '%s'"
+
+#: gcc.c:1158
+#, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "der er en parameter for meget til tilvalget '%s'"
+
+#: gcc.c:1486
+msgid "Using built-in specs.\n"
+msgstr "Benytter indbyggede specifikationer.\n"
+
+#: gcc.c:1667
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
msgstr ""
+"Sætter specifikation %s til '%s'\n"
+"\n"
+
+#: gcc.c:1774
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr "Læser specifikationer fra %s\n"
+
+#: gcc.c:1872 gcc.c:1891
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn"
+
+#: gcc.c:1899
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr "kunne ikke finde specifikationsfilen %s\n"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn"
+
+#: gcc.c:1951
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "%s-specifikation i specifikationer kunne ikke findes til omdøbelse"
+
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s: forsøg på at omdøbe specifikation '%s' til allerede defineret specifikation '%s'"
+
+#: gcc.c:1963
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr "omdøb specifikation %s til %s\n"
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
+#: gcc.c:1965
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
msgstr ""
+"specifikation er '%s'\n"
+"\n"
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
+#: gcc.c:1978
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "ukendt %%-kommando i specifikationer efter %ld tegn"
+
+#: gcc.c:1989 gcc.c:2002
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "specifikationsfil misdannet efter %ld tegn"
+
+#: gcc.c:2056
+msgid "spec file has no spec for linking"
+msgstr "specifikationsfil har ingen specifikation til sammenkædning"
+
+#: gcc.c:2554
+msgid "-pipe not supported"
+msgstr "-pipe understøttes ikke"
+
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
msgstr ""
+"\n"
+"Fortsæt, ja (y) eller nej (n)?"
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
+#: gcc.c:2735
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
msgstr ""
+"Intern fejl: %s (programmet %s)\n"
+"Indsend venligst en komplet fejlrapport.\n"
+"Se %s for instruktioner."
+
+#: gcc.c:2753
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
+#: gcc.c:2883
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Brug: %s [tilvalg] fil...\n"
+
+#: gcc.c:2884
+msgid "Options:\n"
+msgstr "Tilvalg:\n"
+
+#: gcc.c:2886
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes Afslut med den højeste fejlkode fra en fase\n"
+
+#: gcc.c:2887
+msgid " --help Display this information\n"
+msgstr " --help Vis disse oplysninger\n"
+
+#: gcc.c:2888
+msgid " --target-help Display target specific command line options\n"
+msgstr " --target-help Vis målspecifikke kommandolinjetilvalg\n"
+
+#: gcc.c:2890
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " (benyt '-v --help' for at vise kommandolinjetilvalg for underprocesser)\n"
+
+#: gcc.c:2891
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs Vis alle de indbyggede specifikationsstrenge\n"
+
+#: gcc.c:2892
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion Vis versionsnummeret af oversætteren\n"
+
+#: gcc.c:2893
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine Vis oversætterens målprocessor\n"
+
+#: gcc.c:2894
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr " -print-search-dirs Vis katalogerne i oversætterens søgesti\n"
+
+#: gcc.c:2895
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr " -print-libgcc-file-name Vis navnet på oversætterens tilhørende bibliotek\n"
+
+#: gcc.c:2896
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<bibl> Vis den komplette sti til biblioteket <bibl>\n"
+
+#: gcc.c:2897
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr " -print-prog-name=<prog> Vis den komplette sti til oversætterkomponenten <prog>\n"
+
+#: gcc.c:2898
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory Vis rodkataloget for versioner af libgcc\n"
+
+#: gcc.c:2899
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
msgstr ""
+" -print-multi-lib Vis afbildningen mellem kommandolinjetilvalg og\n"
+" flere bibliotekssøgekataloger\n"
+
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory Vis den relative sti for OS-biblioteker\n"
+
+#: gcc.c:2903
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<tilvalg> Videregiv komma-adskilte <tilvalg> til maskinkodeoversætteren\n"
+
+#: gcc.c:2904
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<tilvalg> Videregiv komma-adskilte <tilvalg> til præprocessoren\n"
+
+#: gcc.c:2905
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<tilvalg> Videregiv komma-adskilte <tilvalg> til sammenkæderen\n"
+
+#: gcc.c:2906
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <para> Videregiv <para> til sammenkæderen\n"
+
+#: gcc.c:2907
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps Slet ikke midlertidige filer\n"
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n"
+
+#: gcc.c:2909
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time Tag tid på udførslen af hver underproces\n"
+
+#: gcc.c:2910
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr " -specs=<fil> Overskriv indbyggede specifikationer med indholdet af <fil>\n"
+
+#: gcc.c:2911
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr " -std=<standard> Antag at inddatakildekoden er skrevet til <standard>\n"
+
+#: gcc.c:2912
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr " -B <katalog> Tilføj katalog til oversætterens søgestier\n"
+
+#: gcc.c:2913
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr " -b <maskine> Kør GCC til målet <maskine>, hvis installeret\n"
+
+#: gcc.c:2914
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr " -V <version> Kør GCC med versionsnummeret <version>, hvis installeret\n"
+
+#: gcc.c:2915
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v Vis de programmer der startes af oversætteren\n"
+
+#: gcc.c:2916
+msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
+" -### Som '-v', men tilvalg anbringes i anførselstegn\n"
+" og kommandoerne udføres ikke\n"
+
+#: gcc.c:2917
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr " -E Forbehandl kun; oversæt og sammenkæd ikke\n"
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
+#: gcc.c:2918
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S Oversæt kun; maskinekodeoversæt og sammenkæd ikke\n"
+
+#: gcc.c:2919
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c Oversæt, også til maskinkode, men sammenkæd ikke\n"
+
+#: gcc.c:2920
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <fil> Anbring uddataene i <fil>\n"
+
+#: gcc.c:2921
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
msgstr ""
+" -x <sprog> Angiv sproget for de følgende inddatafiler.\n"
+" Tilladte sprog inkluderer: c c++ assembler none\n"
+" 'none' betyder at standardopførslen med at gætte\n"
+" sproget på filendelsen udføres\n"
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
+#: gcc.c:2928
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
+"\n"
+"Tilvalg der begynder med -g, -f, -m, -O, -W eller --param bliver automatisk\n"
+" givet videre til de forskellige underprocesser som %s starter. For at\n"
+" videregive andre indstillinger til disse processer kan tilvalg på formen\n"
+" '-W<bogstav>' bruges.\n"
+
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "tilvalget '-%c' skal have en parameter"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr "kunne ikke køre '%s': %s"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr "%s (GCC) %s\n"
+
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2003 Free Software Foundation, Inc.\n"
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
msgstr ""
+"Dette er et frit program; se kildekoden for kopieringsbetingelser. Der er\n"
+"INGEN garanti; ikke engang for SALGBARHED eller BRUGBARHED TIL NOGET FORMÅL.\n"
+
+#: gcc.c:3366
+msgid "argument to `-Xlinker' is missing"
+msgstr "der mangler en parameter til '-Xlinker'"
+
+#: gcc.c:3374
+msgid "argument to `-l' is missing"
+msgstr "der mangler en parameter til '-l'"
+
+#: gcc.c:3391
+msgid "argument to `-specs' is missing"
+msgstr "der mangler en parameter til '-specs'"
+
+#: gcc.c:3406
+msgid "argument to `-specs=' is missing"
+msgstr "der mangler en parameter til '-specs='"
+
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr "'-%c' skal være i begyndelsen af kommandolinjen"
+
+#: gcc.c:3445
+msgid "argument to `-B' is missing"
+msgstr "der mangler en parameter til '-B'"
+
+#: gcc.c:3618
+msgid "cannot specify -o with -c or -S and multiple compilations"
+msgstr "kan ikke angive -o med -c eller -S og flere oversættelser"
+
+#: gcc.c:3791
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "advarsel: -pipe ignoreret fordi -save-temps er angivet"
+
+#: gcc.c:3795
+msgid "warning: -pipe ignored because -time specified"
+msgstr "advarsel: -pipe ignoreret fordi -time er angivet"
+
+#: gcc.c:3807
+msgid "argument to `-x' is missing"
+msgstr "der mangler en parameter til '-x'"
+
+#: gcc.c:3835
+#, c-format
+msgid "argument to `-%s' is missing"
+msgstr "der mangler en parameter til '-%s'"
+
+#: gcc.c:3896
+#, c-format
+msgid "warning: `-x %s' after last input file has no effect"
+msgstr "advarsel: '-x %s' efter den sidste inddatafil har ingen effekt"
+
+#: gcc.c:4241
+msgid "invalid specification! Bug in cc"
+msgstr "ugyldig specifikation! Fejl i cc."
+
+#: gcc.c:4395
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
+#, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "specifikationsfejl: '%%*' er ikke blevet klargjort af mønstersøgning"
+
+#: gcc.c:4964
+#, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "advarsel: forældet '%%['-operator benyttet i specifikationer"
+
+#: gcc.c:4982
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "Behandler specifikation %c%s%c, som er '%s'\n"
+
+#: gcc.c:5107
+#, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "specifikationsfejl: ukendt specifikationstilvalg '%c'"
+
+#: gcc.c:5188
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr "ukendt specifikationsfunktion '%s'"
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
+#: gcc.c:5207
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr "fejl i parametre til specifikationsfunktion '%s'"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr "forkert udformet specifikationsfunktionsnavn"
+
+#. )
+#: gcc.c:5259
+msgid "no arguments for spec function"
+msgstr "ingen parametre til specifikationsfunktion"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr "forkert udformede specifikationsfunktionsparametre"
+
+#: gcc.c:5386
+msgid "mismatched braces in specs"
+msgstr "uafbalancerede krøllede paranteser i specifikationer"
+
+#: gcc.c:6081
+#, c-format
+msgid "unrecognized option `-%s'"
+msgstr "ukendt tilvalg '-%s'"
+
+#: gcc.c:6087
+#, c-format
+msgid "install: %s%s\n"
+msgstr "installering: %s%s\n"
+
+#: gcc.c:6088
+#, c-format
+msgid "programs: %s\n"
+msgstr "programmer: %s\n"
+
+#: gcc.c:6089
+#, c-format
+msgid "libraries: %s\n"
+msgstr "biblioteker: %s\n"
+
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
msgstr ""
+"\n"
+"For fejlrapporteringsinstruktioner, se:\n"
+
+#: gcc.c:6162
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "Konfigureret med: %s\n"
+
+#: gcc.c:6176
+#, c-format
+msgid "Thread model: %s\n"
+msgstr "Trådmodel: %s\n"
+
+#: gcc.c:6187
+#, c-format
+msgid "gcc version %s\n"
+msgstr "GCC version %s\n"
+
+#: gcc.c:6189
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "GCC-styringsprogram version %s kører GCCc version %s\n"
+
+#: gcc.c:6197
+msgid "no input files"
+msgstr "ingen inddatafiler"
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
+#: gcc.c:6235
+#, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: %s-oversætter ikke installeret på dette system"
+
+#: gcc.c:6310
+#, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s: sammenkæderinddatafil ikke benyttet eftersom sammenkædning ikke blev foretaget"
+
+#: gcc.c:6353
+#, c-format
+msgid "language %s not recognized"
+msgstr "sproget %s ikke genkendt"
+
+#: gcc.c:6456
+msgid "internal gcc abort"
+msgstr "intern GCC-afbrydelse"
+
+#: gcov.c:325
+msgid "Internal gcov abort.\n"
+msgstr "Intern gcov afbrydelse.\n"
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
msgstr ""
+"Brug: gcov [TILVALG]... KILDEFIL\n"
+"\n"
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
msgstr ""
+"Udskriv kodedækningsoplysninger.\n"
+"\n"
+
+#: gcov.c:340
+msgid " -h, --help Print this help, then exit\n"
+msgstr " -h, --help Udskriv denne hjælp og afslut\n"
+
+#: gcov.c:341
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -v, --version Udskriv versionsnummeret og afslut\n"
+
+#: gcov.c:342
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr " -b, --branch-probabilities Medtag forgreningssandsynligheder i uddata\n"
+
+#: gcov.c:343
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr " -c, --branch-counts Antal forgreninger taget i stedet for procenter\n"
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
+#: gcov.c:345
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -n, --no-output Opret ikke en uddatafil\n"
+
+#: gcov.c:346
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr " -l, --long-file-names Brug lange filnavne til inkluderede kildefiler\n"
+
+#: gcov.c:348
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr " -f, --function-summaries Udskriv sammendrag for hver funktion\n"
+
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr " -o, --object-directory KAT|FIL Søg efter objektfiler i KAT eller kaldt FIL\n"
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths Bevar alle stinavnskomponenter\n"
+
+#: gcov.c:351
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
msgstr ""
+"\n"
+"For fejlrapporteringsinstruktioner, se:\n"
+"%s.\n"
-#: config/a29k/a29k.h:114
-#, fuzzy
-msgid "Work around storem hardware bug"
-msgstr "Brug ikke hardware-kommatal"
+#: gcov.c:361
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr "gcov (GCC) %s\n"
-#: config/a29k/a29k.h:115
-#, fuzzy
-msgid "Do not work around storem hardware bug"
-msgstr "Brug ikke hardware-kommatal"
+#: gcov.c:362
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2001 Free Software Foundation, Inc.\n"
-#: config/a29k/a29k.h:116
-#, fuzzy
-msgid "Store locals in argument registers"
-msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
+#: gcov.c:500
+#, c-format
+msgid "Could not open basic block file %s.\n"
+msgstr "Kunne ikke åbne basisblokfilen %s.\n"
-#: config/a29k/a29k.h:117
-#, fuzzy
-msgid "Do not store locals in arg registers"
-msgstr "Returnér ikke værdier fra funktioner i fpu-registre"
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "Kunne ikke åbne programstrømsgraffilen %s.\n"
-#: config/a29k/a29k.h:118 config/i960/i960.h:284 config/mips/mips.h:375
-msgid "Use software floating point"
+#: gcov.c:524
+#, c-format
+msgid "Could not open data file %s.\n"
+msgstr "Kunne ikke åbne datafilen %s.\n"
+
+#: gcov.c:525
+msgid "Assuming that all execution counts are zero.\n"
+msgstr "Antager at alle kørselstællere er nul.\n"
+
+#: gcov.c:534
+#, c-format
+msgid "No executable code associated with file %s.\n"
+msgstr "Ingen kørbar kode associeret med filen %s.\n"
+
+#: gcov.c:1186
+#, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%s af %d linjer udført i %s %s\n"
+
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "Ingen kørbare linjer i %s %s\n"
+
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%s af %d forgreninger udført i %s %s\n"
+
+#: gcov.c:1203
+#, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%s af %d forgreninger valgt mindst én gang i %s %s\n"
+
+#: gcov.c:1209
+#, c-format
+msgid "No branches in %s %s\n"
+msgstr "Ingen forgreninger i %s %s\n"
+
+#: gcov.c:1211
+#, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%s af %d kald udført i %s %s\n"
+
+#: gcov.c:1216
+#, c-format
+msgid "No calls in %s %s\n"
+msgstr "Ingen kald i %s %s\n"
+
+#: gcov.c:1351
+#, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "brugte ikke alle grafens basisblokelementer, funktion %s\n"
+
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr "block_num = %ld, num_blocks = %d\n"
+
+#: gcov.c:1367
+#, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "Fejl: uventet linjenummer %ld\n"
+
+#: gcov.c:1383
+#, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "Fejl: for mange basisblokke i funktionen %s\n"
+
+#: gcov.c:1398
+#, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "Fejl: linjenummer uden for det gyldige interval i funktionen %s\n"
+
+#: gcov.c:1470
+#, c-format
+msgid "Could not open source file %s.\n"
+msgstr "Kunne ikke åbne kildefilen %s.\n"
+
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Advarsel: kildefil %s er nyere end %s\n"
+
+#: gcov.c:1510
+#, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
+
+#: gcov.c:1532
+#, c-format
+msgid "call %2d never executed\n"
+msgstr "kald %2d aldrig udført\n"
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
+msgstr "kald %2d returnerer %s\n"
+
+#: gcov.c:1543
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr "forgrening %2d aldrig udført\n"
+
+#: gcov.c:1546
+#, c-format
+msgid "branch %2d taken %s\n"
+msgstr "forgrening %2d valgt %s\n"
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr "Opretter %s.\n"
+
+#: gcov.c:1613
+#, c-format
+msgid "Error writing output file %s.\n"
+msgstr "Fejl ved skrivning af uddatafilen %s.\n"
+
+#: gcov.c:1618
+#, c-format
+msgid "Could not open output file %s.\n"
+msgstr "Kunne ikke åbne uddatafilen %s.\n"
+
+#: gcse.c:763
+#, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok"
+
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE deaktiveret: %d basisblokke og %d registre"
+
+#: genautomata.c:1490
+#, c-format
+msgid "Name `%s' contains quotes"
+msgstr "Navnet '%s' indeholder citationstegn"
+
+#: genautomata.c:1621
+#, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "ugyldig streng '%s' i define_cpu_unit"
+
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "ugyldig streng '%s' i define_query_cpu_unit"
+
+#: genautomata.c:1682 genautomata.c:1685
+#, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "ugyldig streng '%s' i define_bypass"
+
+#: genautomata.c:1720
+#, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "ugyldig første streng '%s' i exclusion_set"
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "ugyldig anden streng '%s' i exclusion_set"
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "ugyldig første streng '%s' i presence_set"
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "ugyldig anden streng '%s' i presence_set"
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "ugyldig første streng '%s' i absence_set"
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr "ugyldig anden streng '%s' i absence_set"
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "ugyldig streng '%s' i define_automaton"
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "ugyldigt tilvalg '%s' i automata_option"
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr "ragelse efter ) i reservering '%s'"
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "ugyldig '%s' i reservering '%s'"
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr "gentagelse '%s' <= 1 i reservering '%s'"
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "enhed '%s' i ekskludering er ikke erklæret"
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr "'%s' i ekskludering er ikke enhed"
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr "enheden '%s' ekskluderer sig selv"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr "enhederne '%s' og '%s' i ekskluderingsmængde tilhører forskellige automater"
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr "enheden '%s' ekskluderer og kræver tilstedeværelse af '%s'"
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr "enheden '%s' kræver tilstedeværelse og fravær af '%s'"
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "gentaget erklæring af automaten '%s'"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr "define_insn_reservation '%s' har negativ ventetid"
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "`%s' bliver allerede benyttet som instruktionsreserveringsnavn"
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr "define_bypass '%s - %s' har negativ ventetid"
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr "automaten '%s' er ikke erklæret"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr "define_unit '%s' uden automat når en er defineret"
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "'%s' er erklæret som CPU-enhed"
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "'%s' er erklæret som CPU-reservering"
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "gentaget erklæring af enheden '%s'"
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "gentaget erklæring af reserveringen '%s'"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "der er ingen instruktionsreservering '%s'"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "den samme videreledning '%s - %s' er allerede defineret"
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "videreledning '%s - %s' er allerede defineret"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr "automat '%s' bliver ikke benyttet"
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "ikke-erklæret enhed eller reservering '%s'"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr "enhed '%s' bliver ikke benyttet"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr "reservering '%s' bliver ikke benyttet"
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "cyklus i definering af reservering '%s'"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr "Enhederne '%s' og '%s' skal være i den samme automat"
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr "-split uden parametre"
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr "tilvalget '-split' understøttes ikke endnu\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr "Automat '%s': instruktion '%s' vil aldrig blive udført"
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr "Instruktion '%s' vil aldrig blive udført"
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr "Fejl i DFA-beskrivelse"
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "Fejl ved skrivning af DFA-beskrivelsesfil %s"
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr "Intet inddatafilnavn."
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
msgstr ""
-#: config/a29k/a29k.h:119
-#, fuzzy
-msgid "Do not generate multm instructions"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, c-format
+msgid "can't open %s"
+msgstr "kan ikke åbne %s"
+
+#: haifa-sched.c:196
+#, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "fix_sched_param: ukendt parameter: %s"
+
+#: integrate.c:174
+msgid "function cannot be inline"
+msgstr "funktion kan ikke indbygges"
+
+#: integrate.c:178
+msgid "varargs function cannot be inline"
+msgstr "funktion med variabel parameterliste kan ikke indbygges"
+
+#: integrate.c:181
+msgid "function using alloca cannot be inline"
+msgstr "funktion der bruger alloca, kan ikke indbygges"
+
+#: integrate.c:184
+msgid "function using setjmp cannot be inline"
+msgstr "funktion der bruger setjmp, kan ikke indbygges"
+
+#: integrate.c:187
+msgid "function uses __builtin_eh_return"
+msgstr "funktionen bruger __builtin_eh_return"
+
+#: integrate.c:190
+msgid "function with nested functions cannot be inline"
+msgstr "funktion med indlejrede funktioner kan ikke indbygges"
+
+#: integrate.c:194
+msgid "function with label addresses used in initializers cannot inline"
+msgstr "funktion hvor etiketadresser benyttes i klargøringer, kan ikke indbygges"
+
+#: integrate.c:201 integrate.c:245
+msgid "function too large to be inline"
+msgstr "funktionen er for stor til at blive indbygget"
+
+#: integrate.c:211
+msgid "no prototype, and parameter address used; cannot be inline"
+msgstr "ingen prototype, og parameteradressen benyttes; kan ikke indbygges"
+
+#: integrate.c:218 integrate.c:263
+msgid "inline functions not supported for this return value type"
+msgstr "integrerede funktioner understøttes ikke for denne returværditype"
+
+#: integrate.c:223
+msgid "function with varying-size return value cannot be inline"
+msgstr "funktioner med returværdier af varierende størrelse kan ikke indbygges"
+
+#: integrate.c:230
+msgid "function with varying-size parameter cannot be inline"
+msgstr "funktioner med parametre af varierende størrelse kan ikke indbygges"
+
+#: integrate.c:233
+msgid "function with transparent unit parameter cannot be inline"
+msgstr "funktioner med gennemsigtig union-parameter kan ikke indbygges"
+
+#: integrate.c:252
+msgid "function with computed jump cannot inline"
+msgstr "funktioner med beregnede spring kan ikke indbygges"
+
+#: integrate.c:256
+msgid "function with nonlocal goto cannot be inline"
+msgstr "funktioner med ikke-lokale goto'er kan ikke indbygges"
+
+#: integrate.c:270
+msgid "function with target specific attribute(s) cannot be inlined"
+msgstr "funktioner med målspecifikke egenskaber kan ikke indbygges"
+
+#: line-map.c:198
+#, c-format
+msgid "In file included from %s:%u"
+msgstr "I filen inkluderet af %s:%u"
+
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ""
+",\n"
+" af %s:%u"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, c-format
+msgid "invalid parameter `%s'"
+msgstr "ugyldig parameter '%s'"
+
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr "Profil passer ikke til flowgraph af funktionen %s (forældet?)"
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr ".da-fil ødelagt"
+
+# 'prob' står for sandsynlighed
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgstr "ødelagte profilinfo: sandsynlighed for %d-%d menes at være %d"
+
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
+msgstr "filen %s ikke fundet, antager at kørselstællere er nul"
+
+#: protoize.c:542
+#, c-format
+msgid "%s: internal abort\n"
+msgstr "%s: intern afbrydelse\n"
+
+#: protoize.c:633
+#, c-format
+msgid "%s: error writing file `%s': %s\n"
+msgstr "%s: fejl ved skrivning til filen '%s': %s\n"
+
+#: protoize.c:678
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s: brug '%s [ -VqfnkN ] [ -i <istreng> ] [ filenavn ... ]'\n"
+
+#: protoize.c:681
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s: brug '%s [ -VqfnkNlgC ] [ -B <katalognavn> ] [ filnavn ... ]'\n"
+
+#: protoize.c:788
+#, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr "%s: advarsel: ingen læseadgang til filen '%s'\n"
+
+#: protoize.c:796
+#, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr "%s: advarsel: ingen skriveadgang til filen '%s'\n"
+
+#: protoize.c:804
+#, c-format
+msgid "%s: warning: no write access for dir containing `%s'\n"
+msgstr "%s: advarsel: ingen skriveadgang til kataloget der indeholder '%s'\n"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s: ugyldigt filnavn: %s\n"
+
+#: protoize.c:1374
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s: %s: kan ikke finde ud af filens status: %s\n"
+
+#: protoize.c:1395
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s: fatal fejl: hjælpeinformationsfilen er beskadiget ved linje %d\n"
+
+#: protoize.c:1731
+#, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
+msgstr "%s:%d: erklæringen af funktionen '%s' antager forskellige former\n"
+
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr "%s: oversætter '%s'\n"
+
+#: protoize.c:2012
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s: vent: %s\n"
+
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s: underprocessen modtog fatalt signal %d\n"
+
+#: protoize.c:2025
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s: %s afsluttede med status %d\n"
+
+#: protoize.c:2077
+#, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
+msgstr "%s: advarsel: manglende SYSCALLS-fil '%s'\n"
+
+#: protoize.c:2086 protoize.c:2115
+#, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
+msgstr "%s: kan ikke læse hjælpeinformationsfilen '%s': %s\n"
+
+#: protoize.c:2131 protoize.c:2159
+#, c-format
+msgid "%s: can't get status of aux info file `%s': %s\n"
+msgstr "%s: kan ikke få status for hjælpeinformationsfilen '%s': %s\n"
+
+#: protoize.c:2187
+#, c-format
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
+msgstr "%s: kan ikke åbne hjælpeinformationsfilen '%s' til at læse fra: %s\n"
+
+#: protoize.c:2205
+#, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
+msgstr "%s: fejl ved læsning af hjælpeinformationsfilen '%s': %s\n"
+
+#: protoize.c:2218
+#, c-format
+msgid "%s: error closing aux info file `%s': %s\n"
+msgstr "%s: fejl ved lukning af hjælpeinformationsfilen '%s': %s\n"
+
+#: protoize.c:2234
+#, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
+msgstr "%s: kan ikke slette hjælpeinformationsfilen '%s': %s\n"
+
+#: protoize.c:2316 protoize.c:4318
+#, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s: kan ikke slette filen '%s': %s\n"
+
+#: protoize.c:2395
+#, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr "%s: advarsel: kan ikke omdøbe filen '%s' til '%s': %s\n"
+
+#: protoize.c:2520
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s: modstridende eksterne definitioner af '%s'\n"
+
+#: protoize.c:2524
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s: erklæringer af '%s' vil ikke blive omdannet\n"
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s: modstridene for '%s' følger:\n"
+
+#: protoize.c:2559
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+msgstr "%s: advarsel: bruger parameterlisten fra %s(%d) til funktionen '%s'\n"
+
+#: protoize.c:2599
+#, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+msgstr "%s: %d: '%s' benyttet, men mangler i SYSCALLS\n"
+
+#: protoize.c:2605
+#, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
+msgstr "%s: %d: advarsel: ingen ekstern definition af '%s'\n"
+
+#: protoize.c:2636
+#, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+msgstr "%s: advarsel: ingen statisk definition af '%s' i filen '%s'\n"
+
+#: protoize.c:2642
+#, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
+msgstr "%s: flere statiske definitioner af '%s' i filen '%s'\n"
+
+#: protoize.c:2815 protoize.c:2818
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s: %d: advarsel: koden er for forvirrende\n"
+
+#: protoize.c:3024
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s: %d: advarsel: funktionserklæring med variabel parameterliste er ikke omdannet\n"
+
+#: protoize.c:3039
+#, c-format
+msgid "%s: declaration of function `%s' not converted\n"
+msgstr "%s: erklæringen af funktionen '%s' er ikke omdannet\n"
+
+#: protoize.c:3162
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+msgstr "%s: advarsel: for mange parameterlister i erklæringen af '%s'\n"
+
+#: protoize.c:3183
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr ""
+"\n"
+"%s: advarsel: for få parameterlister i erklæringen af '%s'\n"
+
+#: protoize.c:3281
+#, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+msgstr "%s: %d: advarsel: fandt '%s', men forventede '%s'\n"
+
+#: protoize.c:3459
+#, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
+msgstr "%s: den lokale erklæring af funktionen '%s' er ikke indsat\n"
+
+#: protoize.c:3486
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr ""
+"\n"
+"%s: %d: advarsel: kan ikke tilføje erklæringen af '%s' i makrokald\n"
+
+#: protoize.c:3560
+#, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
+msgstr "%s: globale erklæringer for filen '%s' er ikke indsat\n"
+
+#: protoize.c:3651 protoize.c:3681
+#, c-format
+msgid "%s: definition of function `%s' not converted\n"
+msgstr "%s: definitionen af funktionen '%s' er ikke omdannet\n"
+
+#: protoize.c:3670
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s: %d: advarsel: definitionen af '%s' er ikke omdannet\n"
+
+#: protoize.c:4000
+#, c-format
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr "%s: fandt definitionen af '%s' ved %s(%d)\n"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+msgstr "%s: %d: advarsel: '%s' ekskluderet af forbehandlingen\n"
+
+#: protoize.c:4019
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s: funktionsdefinitionen er ikke omdannet\n"
+
+#: protoize.c:4078
+#, c-format
+msgid "%s: `%s' not converted\n"
+msgstr "%s: '%s' ikke omdannet\n"
+
+#: protoize.c:4086
+#, c-format
+msgid "%s: would convert file `%s'\n"
+msgstr "%s: ville omdanne filen '%s'\n"
+
+#: protoize.c:4089
+#, c-format
+msgid "%s: converting file `%s'\n"
+msgstr "%s: omdanner filen '%s'\n"
+
+#: protoize.c:4099
+#, c-format
+msgid "%s: can't get status for file `%s': %s\n"
+msgstr "%s: kan ikke få status for filen '%s': %s\n"
+
+#: protoize.c:4141
+#, c-format
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s: kan ikke åbne filen '%s' til at læse fra: %s\n"
+
+#: protoize.c:4156
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr ""
+"\n"
+"%s: fejl ved læsning af inddatafilen '%s': %s\n"
+
+#: protoize.c:4190
+#, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
+msgstr "%s: kan ikke oprette/åbne oprydningsfilen '%s': %s\n"
+
+#: protoize.c:4295
+#, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
+msgstr "%s: advarsel: filen '%s' er allerede gemt i '%s'\n"
+
+#: protoize.c:4303
+#, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr "%s: kan ikke kæde filen '%s' sammen med '%s': %s\n"
+
+#: protoize.c:4333
+#, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
+msgstr "%s: kan ikke oprette/åbne uddatafilen '%s': %s\n"
+
+#: protoize.c:4366
+#, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
+msgstr "%s: kan ikke ændre tilstanden af filen '%s': '%s'\n"
+
+#: protoize.c:4541
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s: kan ikke få fat i arbejdskataloget: %s\n"
+
+#: protoize.c:4639
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: inddatafilnavn skal have '.c'-endelser: %s\n"
+
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr "Kunne ikke finde en farvning.\n"
+
+#: reg-stack.c:673
+#, c-format
+msgid "output constraint %d must specify a single register"
+msgstr "uddatabegrænsning %d skal angive et enkelt register"
+
+#: reg-stack.c:683
+#, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "uddatabegrænsning %d kan ikke angives samtidig med overskrivning af \"%s\""
+
+#: reg-stack.c:706
+msgid "output regs must be grouped at top of stack"
+msgstr "uddataregistre skal grupperes i toppen af stakken"
+
+#: reg-stack.c:743
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "implicit aflæste registre skal grupperes i toppen af stakken"
+
+#: reg-stack.c:762
+#, c-format
+msgid "output operand %d must use `&' constraint"
+msgstr "uddataoperand %d skal bruge begrænsningen '&'"
+
+#: regclass.c:756
+#, c-format
+msgid "can't use '%s' as a %s register"
+msgstr "kan ikke bruge '%s' som et %s-register"
+
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, c-format
+msgid "unknown register name: %s"
+msgstr "ukendt registernavn: %s"
+
+#: regclass.c:782
+msgid "global register variable follows a function definition"
+msgstr "en global registervariabel følger en funktionsdefinition"
+
+#: regclass.c:786
+msgid "register used for two global register variables"
+msgstr "register brugt til to globale registervariabler"
+
+#: regclass.c:791
+msgid "call-clobbered register used for global register variable"
+msgstr "kaldeoverskrevet register brugt til global registervariabel"
+
+#: regrename.c:1899
+#, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "validate_value_data: [%u] Ugyldig next_regno til tom kæde (%u)"
+
+#: regrename.c:1911
+#, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "validate_value_data: Løkke i registertalskæde (%u)"
+
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr "validate_value_data: [%u] Ugyldig oldest_regno (%u)"
+
+#: regrename.c:1926
+#, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "validate_value_data: [%u] Ikke-tomt register i kæde (%s %u %i)"
+
+#: reload.c:1229
+msgid "cannot reload integer constant operand in `asm'"
+msgstr "kan ikke genindlæse heltalskonstantoperand i 'asm'"
+
+#: reload.c:1251
+msgid "impossible register constraint in `asm'"
+msgstr "umulig registerbegrænsing i 'asm'"
+
+#: reload.c:3461
+msgid "`&' constraint used with no register class"
+msgstr "'&'-begrænsning brugt uden registerklasse"
+
+#: reload.c:3629
+msgid "unable to generate reloads for:"
+msgstr "kunne ikke generere genindlæsninger for:"
+
+#: reload.c:3630 reload.c:3844
+msgid "inconsistent operand constraints in an `asm'"
+msgstr "inkonsistente operandbegræsninger i 'asm'"
+
+#: reload1.c:1250
+msgid "frame size too large for reliable stack checking"
+msgstr "rammestørrelse for stor til pålidelig stakkontrol"
+
+#: reload1.c:1253
+msgid "try reducing the number of local variables"
+msgstr "forsøg at reducere antallet af lokale variable"
+
+#: reload1.c:1909
+#, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
+msgstr "kan ikke finde et register i klassen '%s' ved genindlæsning af 'asm'"
+
+#: reload1.c:1913
+#, c-format
+msgid "unable to find a register to spill in class `%s'"
+msgstr "kan ikke finde et register at bortødsle i klassen '%s'"
+
+#: reload1.c:1915
+msgid "this is the insn:"
+msgstr "dette er instruktionen:"
+
+#: reload1.c:3938
+msgid "`asm' operand requires impossible reload"
+msgstr "'asm'-operand kræver umulig genindlæsning"
+
+#. It's the compiler's fault.
+#: reload1.c:5052
+msgid "could not find a spill register"
+msgstr "kunne ikke finde et register at bortødsle"
+
+#: reload1.c:5057
+msgid "`asm' operand constraint incompatible with operand size"
+msgstr "'asm'-operandbegrænsning ikke forenelig med operandstørrelse"
+
+#. It's the compiler's fault.
+#: reload1.c:6679
+msgid "VOIDmode on an output"
+msgstr "VOID-tilstand ved uddata"
+
+#: reload1.c:6680
+msgid "output operand is constant in `asm'"
+msgstr "uddataoperand er konstant i 'asm'"
+
+#: rtl-error.c:140
+msgid "unrecognizable insn:"
+msgstr "ukendt instruktion:"
+
+#: rtl-error.c:142
+msgid "insn does not satisfy its constraints:"
+msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
+
+#: rtl.c:535
+#, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+msgstr "RTL-kontrol: tilgang til udtrykstræ %d fra '%s' med sidste udtrykstræ %d i %s, ved %s:%d"
+
+#: rtl.c:550
+#, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "RTL-kontrol: forventede udtrykstræ %d type '%c', har '%c' (registeroverførselsudtryk %s) i %s, ved %s:%d"
+
+#: rtl.c:566
+#, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "RTL-kontrol: forventede udtrykstræ %d type '%c' eller '%c', har '%c' (registeroverførselsudtryk %s) i %s, ved %s:%d"
+
+#: rtl.c:579
+#, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+msgstr "RTL-kontrol: forventede koden '%s', har '%s' i %s, ved %s:%d"
+
+#: rtl.c:593
+#, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+msgstr "RTL-kontrol: forventede koden '%s' eller '%s', har '%s' i %s, ved %s:%d"
+
+#: rtl.c:608
+#, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr "RTL-kontrol: tilgang til udtrykstræ %d af vektor hvis sidste udtrykstræ er %d i %s, ved %s:%d"
+
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "RTL-flagskontrol: %s benyttet med uventet rtx-kode '%s' i %s, ved %s:%d"
+
+#: stmt.c:766
+#, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
+msgstr "spring til '%s' rammer på ugyldig vis ind i bindingskontur"
+
+#: stmt.c:1002 stmt.c:3766
+#, c-format
+msgid "label `%s' used before containing binding contour"
+msgstr "etiket '%s' brugt før indholdende bindingskontur"
+
+#: stmt.c:1190
+msgid "output operand constraint lacks `='"
+msgstr "uddataoperandbegrænsning mangler '='"
+
+#: stmt.c:1205
+#, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
+msgstr "uddatabegrænsning '%c' for operanden %d er ikke ved begyndelsen"
+
+#: stmt.c:1227
+msgid "operand constraint contains incorrectly positioned '+' or '='"
+msgstr "operandbegrænsning indeholder forkert placeret '+' eller '='"
+
+#: stmt.c:1233 stmt.c:1337
+#, c-format
+msgid "`%%' constraint used with last operand"
+msgstr "'%%'-begrænsning brugt med sidste operand"
+
+#: stmt.c:1252
+msgid "matching constraint not valid in output operand"
+msgstr "begrænsningen er ikke gyldig for uddataoperanden"
+
+#: stmt.c:1328
+#, c-format
+msgid "input operand constraint contains `%c'"
+msgstr "inddataoperandbegrænsningen indeholder '%c'"
+
+#: stmt.c:1368
+msgid "matching constraint references invalid operand number"
+msgstr "begrænsning refererer til et ugyldigt operandtal"
+
+#: stmt.c:1400
+#, c-format
+msgid "invalid punctuation `%c' in constraint"
+msgstr "ugyldig punktuering '%c' i begrænsning"
+
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "asm-anvisning for variablen '%s' strider mod asm-overskrivelsesliste"
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr "ukendt registernavn '%s' i 'asm'"
+
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
+msgstr "mere end %d operander i 'asm'"
+
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
+msgstr "uddata nr. %d kan ikke adresseres direkte"
+
+#: stmt.c:1728
+#, c-format
+msgid "asm operand %d probably doesn't match constraints"
+msgstr "'asm'-operand %d passer sandsynligvis ikke til begrænsninger"
+
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr "asm-overskrivelse er i modstrid med uddataoperander"
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr "asm-overskrivelse er i modstrid med inddataoperander"
+
+#: stmt.c:1929
+msgid "too many alternatives in `asm'"
+msgstr "for mange alternativer i 'asm'"
+
+#: stmt.c:1941
+msgid "operand constraints for `asm' differ in number of alternatives"
+msgstr "operandbegrænsninger til 'asm' har forskellige antal alternativer"
+
+#: stmt.c:1994
+#, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "'asm'-operandnavnet '%s' optræder mere end én gang"
+
+#: stmt.c:2081
+msgid "missing close brace for named operand"
+msgstr "manglende afsluttende krøllet parantes til navngiven operand"
+
+#: stmt.c:2109
+#, c-format
+msgid "undefined named operand '%s'"
+msgstr "ikkedefineret navngiven operand '%s'"
+
+#: stmt.c:3703
+#, c-format
+msgid "unused variable `%s'"
+msgstr "ubrugt variabel '%s'"
+
+#: stmt.c:5189
+#, c-format
+msgid "enumeration value `%s' not handled in switch"
+msgstr "enum-værdien '%s' håndteres ikke i switch-sætning"
+
+#: stmt.c:5214 stmt.c:5234
+#, c-format
+msgid "case value `%ld' not in enumerated type"
+msgstr "case-værdien '%ld' eksisterer ikke i enum-type"
+
+#: stmt.c:5217 stmt.c:5237
+#, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
+msgstr "case-værdien '%ld' eksisterer ikke i enum-typen '%s'"
+
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr "switch-konstruktion mangler default"
+
+#: stor-layout.c:178
+msgid "type size can't be explicitly evaluated"
+msgstr "det er ikke muligt eksplicit at finde typens størrelse"
+
+#: stor-layout.c:180
+msgid "variable-size type declared outside of any function"
+msgstr "en type med en variabel størrelse er erklæret uden for en funktion"
+
+#: stor-layout.c:487
+#, c-format
+msgid "size of `%s' is %d bytes"
+msgstr "størrelsen af '%s' er %d byte"
+
+#: stor-layout.c:489
+#, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "størrelsen af '%s' er større end %d byte"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
+msgstr "packed-egenskab forårsager ineffektiv justering af '%s'"
+
+#: stor-layout.c:911 stor-layout.c:1327
+#, c-format
+msgid "packed attribute is unnecessary for `%s'"
+msgstr "packed-egenskab er unødvendig for '%s'"
+
+#: stor-layout.c:926
+#, c-format
+msgid "padding struct to align `%s'"
+msgstr "udfylder struct for at justere '%s'"
+
+#: stor-layout.c:1289
+msgid "padding struct size to alignment boundary"
+msgstr "udfylder struct-størrelse til justeringskant"
+
+#: stor-layout.c:1332
+msgid "packed attribute causes inefficient alignment"
+msgstr "packed-egenskab forårsager ineffektiv justering"
+
+#: stor-layout.c:1334
+msgid "packed attribute is unnecessary"
+msgstr "packed-egenskab er unødvendig"
+
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr "kan ikke udføre timevar_pop '%s' når toppen af timevars-stakken er '%s'"
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"Udførselstid (sekunder)\n"
+
+#. Print total time.
+#: timevar.c:503
+msgid " TOTAL :"
+msgstr " TOTAL :"
+
+#: timevar.c:539
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "tid i %s: %ld.%06ld (%ld%%)\n"
+
+#: tlink.c:399
+#, c-format
+msgid "collect: reading %s\n"
+msgstr "collect: læser %s\n"
+
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr "collect: genoversætter '%s'\n"
+
+# RETMIG: rigtigt?
+#: tlink.c:674
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "collect: presser %s i %s\n"
+
+#: tlink.c:721
+msgid "collect: relinking\n"
+msgstr "collect: kæder sammen igen\n"
+
+#: tlink.c:730
+#, c-format
+msgid "ld returned %d exit status"
+msgstr "ld returnerede afslutningskoden %d"
+
+#: toplev.c:920
+msgid "Generate debugging info in default format"
+msgstr "Generér fejlfindingsinfo i standardformat"
+
+#: toplev.c:921
+msgid "Generate debugging info in default extended format"
+msgstr "Generér fejlfindingsinfo i udvidet standardformat"
+
+#: toplev.c:923
+msgid "Generate STABS format debug info"
+msgstr "Generér fejlfindingsinfo i STABS-format"
+
+#: toplev.c:924
+msgid "Generate extended STABS format debug info"
+msgstr "Generér fejlfindingsinfo i udvidet STABS-format"
+
+#: toplev.c:927
+msgid "Generate DWARF-1 format debug info"
+msgstr "Generér fejlfindingsinfo i DWARF-1-format"
+
+#: toplev.c:929
+msgid "Generate extended DWARF-1 format debug info"
+msgstr "Generér fejlfindingsinfo i udvidet DWARF-1-format"
+
+#: toplev.c:932
+msgid "Generate DWARF-2 debug info"
+msgstr "Generér fejlfindingsinfo i DWARF-2-format"
+
+#: toplev.c:935
+msgid "Generate XCOFF format debug info"
+msgstr "Generér fejlfindingsinfo i XCOFF-format"
+
+#: toplev.c:936
+msgid "Generate extended XCOFF format debug info"
+msgstr "Generér fejlfindingsinfo i udvidet XCOFF-format"
+
+#: toplev.c:939
+msgid "Generate COFF format debug info"
+msgstr "Generér fejlfindingsinfo i COFF-format"
+
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr "Generér fejlfindingsinfo i VMS-format"
+
+#: toplev.c:981
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Udfør DWARF2-eliminering af dubletter"
+
+#: toplev.c:983
+msgid "Do not store floats in registers"
+msgstr "Lagr ikke kommatal i registre"
+
+#: toplev.c:985
+msgid "Consider all mem refs through pointers as volatile"
+msgstr "Betragt alle hukommelsesferencer gennem henvisninger som volatile"
+
+#: toplev.c:987
+msgid "Consider all mem refs to global data to be volatile"
+msgstr "Betragt alle hukommelsesferencer til globale data som volatile"
+
+#: toplev.c:989
+msgid "Consider all mem refs to static data to be volatile"
+msgstr "Betragt alle hukommelsesferencer til statiske data som volatile"
+
+#: toplev.c:991
+msgid "Defer popping functions args from stack until later"
+msgstr "Vent med fjernelse af funktionsparametre fra stakken til senere"
+
+#: toplev.c:993
+msgid "When possible do not generate stack frames"
+msgstr "Generér ikke stakrammer når det kan undgås"
+
+#: toplev.c:995
+msgid "Optimize sibling and tail recursive calls"
+msgstr "Optimér søskende- og halerekursive kald"
+
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr "Udfør superbloksformering vha. haleduplikering"
+
+# RETMIG: hvad er CSE?
+#: toplev.c:999
+msgid "When running CSE, follow jumps to their targets"
+msgstr "Ved kørsel af CSE følg spring til deres mål"
+
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
+msgstr "Ved kørsel af CSE følg betingede spring"
+
+#: toplev.c:1003
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "Udfør et antal mindre, dyre optimeringer"
+
+#: toplev.c:1005
+msgid "Perform jump threading optimizations"
+msgstr "Udfør springtrådningsoptimeringer"
+
+#: toplev.c:1007
+msgid "Perform strength reduction optimizations"
+msgstr "Udfør styrkereduceringsoptimeringer"
+
+#: toplev.c:1009
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "Udfør løkkeudrulning når iterationsantallet er kendt"
+
+#: toplev.c:1011
+msgid "Perform loop unrolling for all loops"
+msgstr "Udfør løkkeudrulning for alle løkker"
+
+#: toplev.c:1013
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "Generér præhentningsinstruktioner, hvis tilgængelige, for tabeller i løkker"
+
+#: toplev.c:1015
+msgid "Force all loop invariant computations out of loops"
+msgstr "Tving alle løkkeinvariansberegninger ud af løkker"
+
+#: toplev.c:1017
+msgid "Strength reduce all loop general induction variables"
+msgstr "Styrkereducér alle generelle løkkeinduktionsvariabler"
+
+#: toplev.c:1019
+msgid "Store strings in writable data section"
+msgstr "Gem strenge i en skrivbar datasektion"
+
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
+msgstr "Aktivér maskinspecifikke kighulsoptimeringer"
+
+#: toplev.c:1023
+msgid "Copy memory operands into registers before using"
+msgstr "Kopiér hukommelsesoperander ind i registre før brug"
+
+#: toplev.c:1025
+msgid "Copy memory address constants into regs before using"
+msgstr "Kopiér hukommelsesadressekonstanter ind i registre før brug"
+
+#: toplev.c:1027
+msgid "Allow function addresses to be held in registers"
+msgstr "Tillad funktionsadresser at blive opbevaret i registre"
+
+#: toplev.c:1029
+msgid "Integrate simple functions into their callers"
+msgstr "Integrér simple funktioner i deres kaldere"
+
+#: toplev.c:1031
+msgid "Generate code for funcs even if they are fully inlined"
+msgstr "Generér kode for funktioner selv hvis de indlejres helt"
+
+#: toplev.c:1033
+msgid "Pay attention to the 'inline' keyword"
+msgstr "Læg mærke til 'inline'-nøgleordet"
+
+#: toplev.c:1035
+msgid "Emit static const variables even if they are not used"
+msgstr "Konstruér statiske, konstante variabler selv hvis de ikke bruges"
+
+#: toplev.c:1037
+msgid "Check for syntax errors, then stop"
+msgstr "Kontrollér syntaks og stop derefter"
+
+#: toplev.c:1039
+msgid "Mark data as shared rather than private"
+msgstr "Markér data som delt snarere end privat"
+
+#: toplev.c:1041
+msgid "Enable saving registers around function calls"
+msgstr "Aktivér gemning af registrer omkring funktionskald"
+
+#: toplev.c:1043
+msgid "Return 'short' aggregates in memory, not registers"
+msgstr "Returnér små sammensatte værdier i hukommelsen, ikke i registre"
+
+#: toplev.c:1045
+msgid "Return 'short' aggregates in registers"
+msgstr "Returnér små sammensatte værdier i registre"
+
+#: toplev.c:1047
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "Forsøg at udfylde ventepladser med forgreningsinstruktioner"
+
+#: toplev.c:1049
+msgid "Perform the global common subexpression elimination"
+msgstr "Udfør global eliminering af fælles underudtryk"
+
+#: toplev.c:1051
+msgid "Perform enhanced load motion during global subexpression elimination"
+msgstr "Udfør forbedret indlæsningsbevægelse under eliminering af fælles underudtryk"
+
+#: toplev.c:1053
+msgid "Perform store motion after global subexpression elimination"
+msgstr "Udfør lagringsbevægelse efter eliminering af fælles underudtryk"
+
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr "Udfør løkkeoptimeringerne"
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr "Udfør krydsspringsoptimering"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "Udfør konvertering af betingede spring til forgreningsløse ækvivalenter"
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Udfør konvertering af betingede spring til betinget udførsel"
+
+#: toplev.c:1063
+msgid "Run CSE pass after loop optimizations"
+msgstr "Kør CSE-fase efter løkkeoptimeringer"
+
+#: toplev.c:1065
+msgid "Run the loop optimizer twice"
+msgstr "Kør løkkeoptimeringen to gange"
+
+#: toplev.c:1067
+msgid "Delete useless null pointer checks"
+msgstr "Fjern ubrugelige nul-henvisningstjek"
+
+#: toplev.c:1069
+msgid "Reschedule instructions before register allocation"
+msgstr "Omplanlæg instruktioner før registerallokering"
+
+#: toplev.c:1071
+msgid "Reschedule instructions after register allocation"
+msgstr "Omplanlæg instruktioner efter registerallokering"
+
+#: toplev.c:1073
+msgid "Enable scheduling across basic blocks"
+msgstr "Aktivér planlægning over basisblokke"
+
+#: toplev.c:1075
+msgid "Allow speculative motion of non-loads"
+msgstr "Tillad spekulativ bevægelse af ikke-indlæsninger"
+
+#: toplev.c:1077
+msgid "Allow speculative motion of some loads"
+msgstr "Tillad spekulativ bevægelse af nogle indlæsninger"
+
+#: toplev.c:1079
+msgid "Allow speculative motion of more loads"
+msgstr "Tillad spekulativ bevægelse af flere indlæsninger"
+
+# RETMIG: rigtig?
+#: toplev.c:1081
+msgid "Replace add,compare,branch with branch on count reg"
+msgstr "Erstat tilføj,sammenlign,forgrening med forgrening på tælleregister"
+
+#: toplev.c:1083
+msgid "Generate position independent code, if possible"
+msgstr "Generér placeringsuafhængig kode, om muligt"
+
+#: toplev.c:1086
+msgid "Enable exception handling"
+msgstr "Aktivér undtagelseshåndtering"
+
+#: toplev.c:1088
+msgid "Just generate unwind tables for exception handling"
+msgstr "Generér blot afvindingstabeller for undtagelseshåndtering"
+
+#: toplev.c:1090
+msgid "Generate unwind tables exact at each instruction boundary"
+msgstr "Generér afvindingstabeller eksakt for hver instruktionsgrænse"
+
+#: toplev.c:1092
+msgid "Support synchronous non-call exceptions"
+msgstr "Understøt synkrone ikke-kaldende undtagelser"
+
+#: toplev.c:1094
+msgid "Insert arc based program profiling code"
+msgstr "Indsæt buebaseret programprofileringskode"
+
+#: toplev.c:1096
+msgid "Create data files needed by gcov"
+msgstr "Opret datafiler som gcov har brug for"
+
+#: toplev.c:1098
+msgid "Use profiling information for branch probabilities"
+msgstr "Benyt profileringsoplysninger til forgreningssandsynligheder"
+
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr "Aktivér basal programprofileringskode"
+
+#: toplev.c:1102
+msgid "Reorder basic blocks to improve code placement"
+msgstr "Omordn basisblokke for at forbedre kodeplacering"
+
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr "Omordn funktioner for at forbedre kodeplacering"
+
+#: toplev.c:1106
+msgid "Do the register renaming optimization pass"
+msgstr "Foretag registeromdøbningsoptimering"
+
+#: toplev.c:1108
+msgid "Do the register copy-propagation optimization pass"
+msgstr "Foretag registerkopipropageringsoptimering"
+
+#: toplev.c:1110
+msgid "Do not put uninitialized globals in the common section"
+msgstr "Anbring ikke uklargjorte globale variabler i den fælles sektion"
+
+#: toplev.c:1112
+msgid "Do not generate .size directives"
+msgstr "Generér ikke .size-direktiver"
+
+#: toplev.c:1114
+msgid "place each function into its own section"
+msgstr "placér hver funktion i dens egen sektion"
+
+#: toplev.c:1116
+msgid "place data items into their own section"
+msgstr "placér dataelementer i deres egen sektion"
+
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
+msgstr "Tilføj ekstra kommentarer til menneskeligt læsbar maskinkodeuddata"
+
+#: toplev.c:1120
+msgid "Output GNU ld formatted global initializers"
+msgstr "Udskriv GNU ld-formaterede globale startværdier"
+
+#: toplev.c:1122
+msgid "Enables a register move optimization"
+msgstr "Aktivér en registerflytningsoptimering"
+
+#: toplev.c:1124
+msgid "Do the full regmove optimization pass"
+msgstr "Foretag en komplet registerflytningsoptimering"
+
+#: toplev.c:1126
+msgid "Pack structure members together without holes"
+msgstr "Pak strukturmedlemmer sammen uden mellemrum"
+
+#: toplev.c:1128
+msgid "Insert stack checking code into the program"
+msgstr "Indsæt stakkontrolleringskode i programmet"
+
+#: toplev.c:1130
+msgid "Specify that arguments may alias each other & globals"
+msgstr "Angiv at parametre kan være aliaser for hinanden og for globale variable"
+
+#: toplev.c:1132
+msgid "Assume arguments may alias globals but not each other"
+msgstr "Antag at parametre kan være aliaser for globale variable, men ikke for hinanden"
+
+#: toplev.c:1134
+msgid "Assume arguments do not alias each other or globals"
+msgstr "Antag at parametre ikke er aliaser for hinanden eller for globale variable"
+
+#: toplev.c:1136
+msgid "Assume strict aliasing rules apply"
+msgstr "Antag at strenge aliasregler skal anvendes"
+
+#: toplev.c:1138
+msgid "Align the start of loops"
+msgstr "Justér begyndelsen af løkker"
+
+#: toplev.c:1140
+msgid "Align labels which are only reached by jumping"
+msgstr "Justér etiketter som kun nås ved spring"
+
+#: toplev.c:1142
+msgid "Align all labels"
+msgstr "Justér alle etiketter"
+
+#: toplev.c:1144
+msgid "Align the start of functions"
+msgstr "Justér begyndelsen af funktioner"
+
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "Forsøg at forene identiske konstanter over forskellige oversættelsesenheder"
+
+#: toplev.c:1148
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "Forsøg at forene identiske konstanter og konstante variabler"
+
+#: toplev.c:1150
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "Undtryk udskrift af instruktionstal og linjenummernoter i fejlfindingsdump"
+
+#: toplev.c:1152
+msgid "Instrument function entry/exit with profiling calls"
+msgstr "Instrumentér funktionsindgange/-afslutninger med profileringskald"
+
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr "Anbring nul-klargjorte data i bss-sektionen"
+
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
+msgstr "Aktivér SSA-optimeringer"
+
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
+msgstr "Aktivér betinget konstant SSA-propagering"
+
+#: toplev.c:1160
+msgid "Enable aggressive SSA dead code elimination"
+msgstr "Aktivér aggressiv SSA-eliminering af ubrugt kode"
+
+#: toplev.c:1162
+msgid "External symbols have a leading underscore"
+msgstr "Eksterne symboler har indledende understreg"
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr "Behandl #ident-direktiver"
+
+#: toplev.c:1166
+msgid "Enables an rtl peephole pass run before sched2"
+msgstr "Aktivér en RTL-kikhulsfase før sched2"
+
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr "Antag at ingen NaN eller +-Inf bliver genereret"
+
+#: toplev.c:1170
+msgid "Enables guessing of branch probabilities"
+msgstr "Aktivér gæt af forgreningssandsynligheder"
+
+#: toplev.c:1172
+msgid "Set errno after built-in math functions"
+msgstr "Sæt errno efter indbyggede matematikfunktioner"
+
+#: toplev.c:1174
+msgid "Floating-point operations can trap"
+msgstr "Kommatalsoperationer kan fange"
+
+#: toplev.c:1176
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+msgstr "Tillad matematikoptimeringer der kan overtræde IEEE- eller ANSI-standarderne"
+
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "Deaktivér optimeringer som kan opdages ved IEEE-signalerende NaN'er"
+
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Generér kode til at kontrollere grænserne før tabeller indekseres"
+
+#: toplev.c:1182
+msgid "Convert floating point constant to single precision constant"
+msgstr "Konvertér kommatalskonstanter til enkeltpræcisionskonstanter"
+
+#: toplev.c:1184
+msgid "Report time taken by each compiler pass at end of run"
+msgstr "Rapportér den tid det tager for hver oversættelsesfase ved afslutningen af kørslen"
+
+#: toplev.c:1186
+msgid "Report on permanent memory allocation at end of run"
+msgstr "Rapportér om permanente hukommelsesallokering ved afslutningen af kørslen"
+
+#: toplev.c:1188
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
+msgstr "Opsæt fælde for overløb med fortegn i addition/subtraktion/multiplikation"
+
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr "Allokér registre vha. graffarvning"
+
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr "Oversæt kun til ISO C90"
+
+#: toplev.c:1209
+msgid "Determine language standard"
+msgstr "Bestem sprogstandarden"
+
+#: toplev.c:1213
+msgid "Make bit-fields by unsigned by default"
+msgstr "Lad bitfelter være uden fortegn som standard"
+
+#: toplev.c:1217
+msgid "Make 'char' be signed by default"
+msgstr "Lad 'char' være med fortegn som standard"
+
+#: toplev.c:1219
+msgid "Make 'char' be unsigned by default"
+msgstr "Lad 'char' være uden fortegn som standard"
+
+#: toplev.c:1225
+msgid "Do not recognize the 'asm' keyword"
+msgstr "Genkend ikke det reserverede ord 'asm'"
+
+#: toplev.c:1228
+msgid "Do not recognize any built in functions"
+msgstr "Genkend ikke nogen indbyggede funktioner"
+
+#: toplev.c:1230
+msgid "Assume normal C execution environment"
+msgstr "Antag normalt C-kørselsmiljø"
+
+#: toplev.c:1233
+msgid "Assume that standard libraries & main might not exist"
+msgstr "Antag at standardbibliotekerne og main måske ikke eksisterer"
+
+#: toplev.c:1236
+msgid "Allow different types as args of ? operator"
+msgstr "Tillad forskellige typer som parametre til ?-operatoren"
+
+#: toplev.c:1239
+msgid "Allow the use of $ inside identifiers"
+msgstr "Tillad brug af $ inden i kaldenavne"
+
+#: toplev.c:1244
+msgid "Use the same size for double as for float"
+msgstr "Benyt den samme størrelse til double som til float"
+
+#: toplev.c:1247
+msgid "Use the smallest fitting integer to hold enums"
+msgstr "Benyt den mindst mulige størrelse heltal til enum-værdier"
+
+#: toplev.c:1250
+msgid "Override the underlying type for wchar_t to `unsigned short'"
+msgstr "Overskriv den underliggende type af wchar_t til 'unsigned short'"
+
+#: toplev.c:1254
+msgid "Enable most warning messages"
+msgstr "Aktivér de fleste advarselsbeskeder"
+
+#: toplev.c:1256
+msgid "Warn about casting functions to incompatible types"
+msgstr "Advar om omtvingning af funktioner til ikke-kompatible typer"
+
+#: toplev.c:1259
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber"
+
+#: toplev.c:1262
+msgid "Warn about casts which discard qualifiers"
+msgstr "Advar om typeomtvingninger som forkaster modifikationer"
+
+#: toplev.c:1265
+msgid "Warn about subscripts whose type is 'char'"
+msgstr "Advar som tabelindeksering hvis type er 'char'"
+
+#: toplev.c:1268 toplev.c:1271
+msgid "Warn if nested comments are detected"
+msgstr "Advar hvis indlejrede kommentarer mødes"
+
+#: toplev.c:1274
+msgid "Warn about possibly confusing type conversions"
+msgstr "Advar om typekonverteringer der kan være forvirrende"
+
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "Advar ikke om heltalsdivision på oversættelsestidspunktet med nul"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Advar om lighedssammenligninger mellem kommatal"
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+msgstr "Advar om printf/scanf/strftime/strfmon-formateringsanormaliteter"
+
+#: toplev.c:1287
+msgid "Don't warn about too many arguments to format functions"
+msgstr "Advar ikke om for mange parametre til formateringsfunktioner"
+
+#: toplev.c:1289
+msgid "Warn about non-string-literal format strings"
+msgstr "Advar om formateringsstrenge der ikke er strengkonstanter"
+
+#: toplev.c:1292
+msgid "Warn about possible security problems with format functions"
+msgstr "Advar om mulige sikkerhedsproblemer i forbindelse med formateringsfunktioner"
+
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "Advar ikke om strftime-formateringer med 2-cifres år"
+
+#: toplev.c:1298
+msgid "Warn about implicit function declarations"
+msgstr "Advar om underforståede funktionserklæringer"
+
+#: toplev.c:1302
+msgid "Warn when a declaration does not specify a type"
+msgstr "Advar når en erklæring ikke angiver en type"
+
+#: toplev.c:1307
+msgid "Warn about the use of the #import directive"
+msgstr "Advar om brug af #import-direktivet"
+
+#: toplev.c:1311
+msgid "Do not warn about using 'long long' when -pedantic"
+msgstr "Advar ikke om brug af 'long long' når -pedantic benyttes"
+
+#: toplev.c:1313
+msgid "Warn about suspicious declarations of main"
+msgstr "Advar om mistænkelige erklæringer af main"
+
+#: toplev.c:1316
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Advar om mulige manglende krøllede paranteser omkring startværdier"
+
+#: toplev.c:1319
+msgid "Warn about global funcs without previous declarations"
+msgstr "Advar om globale funktioner uden tidligere erklæringer"
+
+#: toplev.c:1322
+msgid "Warn about global funcs without prototypes"
+msgstr "Advar om globale funktioner uden prototyper"
+
+#: toplev.c:1325
+msgid "Warn about use of multicharacter literals"
+msgstr "Advar om brug af multitegnskonstanter"
+
+#: toplev.c:1328
+msgid "Warn about externs not at file scope level"
+msgstr "Advar om extern-erklæringer som ikke er ved filvirkefeltsniveauet"
+
+#: toplev.c:1331
+msgid "Warn about possible missing parentheses"
+msgstr "Advar om mulige manglende paranteser"
+
+#: toplev.c:1334
+msgid "Warn about function pointer arithmetic"
+msgstr "Advar om beregninger på funktionshenvisninger"
+
+#: toplev.c:1337
+msgid "Warn about multiple declarations of the same object"
+msgstr "Advar om flere erklæring af det samme objekt"
+
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "Advar når en funktions returtype antages at være int"
+
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Advar om mulige brud på sekvenspunktreglerne"
+
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Advar om sammenligninger mellem typer med og uden fortegn"
+
+#: toplev.c:1349
+msgid "Warn about non-prototyped function decls"
+msgstr "Advar om funktionserklæringer uden prototype"
+
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Advar om konstruktioner hvis betydning er ændret i ISO C"
+
+#: toplev.c:1355
+msgid "Warn when trigraphs are encountered"
+msgstr "Advar når trigrafer mødes"
+
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "Advar om ukendte pragmaer"
+
+#: toplev.c:1363
+msgid "Mark strings as 'const char *'"
+msgstr "Markér strenge som 'const char *'"
+
+#: toplev.c:1508
+msgid "Warn when a function is unused"
+msgstr "Advar når en funktion ikke benyttes"
+
+#: toplev.c:1510
+msgid "Warn when a label is unused"
+msgstr "Advar når en etiket ikke benyttes"
+
+#: toplev.c:1512
+msgid "Warn when a function parameter is unused"
+msgstr "Advar når en funktionsparameter ikke benyttes"
+
+#: toplev.c:1514
+msgid "Warn when a variable is unused"
+msgstr "Advar når en variabel ikke benyttes"
+
+#: toplev.c:1516
+msgid "Warn when an expression value is unused"
+msgstr "Advar når værdien af et udtryk ikke benyttes"
+
+#: toplev.c:1518
+msgid "Do not suppress warnings from system headers"
+msgstr "Undertryk ikke advarsler fra systeminkluderingsfiler"
+
+#: toplev.c:1520
+msgid "Treat all warnings as errors"
+msgstr "Behandl alle advarsler som fejl"
+
+#: toplev.c:1522
+msgid "Warn when one local variable shadows another"
+msgstr "Advar når en lokal variabel skygger for en anden"
+
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Advar om switch-sætninger over enum-typer som mangler et tilfælde og ikke har default"
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Advar om switch-sætninger over enum-typer som mangler default"
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Advar om alle switch-sætninger over enum-typer som mangler et bestemt tilfælde"
+
+#: toplev.c:1530
+msgid "Warn about returning structures, unions or arrays"
+msgstr "Advar om returnering af struct, union og tabeller"
+
+#: toplev.c:1532
+msgid "Warn about pointer casts which increase alignment"
+msgstr "Advar om typeomtvingning af henvisninger som forøger justeringen"
+
+#: toplev.c:1534
+msgid "Warn about code that will never be executed"
+msgstr "Advar om kode som aldrig bliver udført"
+
+#: toplev.c:1536
+msgid "Warn about uninitialized automatic variables"
+msgstr "Advar om ikke-klargjorte automatiske variabler"
+
+#: toplev.c:1538
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "Advar når en inline funktion ikke kan indbygges"
+
+#: toplev.c:1540
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "Advar når packed-egenskaben ikke har nogen effekt på struct-layoutet"
+
+#: toplev.c:1542
+msgid "Warn when padding is required to align struct members"
+msgstr "Advar når udfyldning er påkrævet for at justere struct-medlemmer"
+
+#: toplev.c:1544
+msgid "Warn when an optimization pass is disabled"
+msgstr "Advar når en optimeringsfase deaktiveres"
+
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "Advar om brug af __attribute__((deprecated))-erklæringer"
+
+#: toplev.c:1548
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr "Advar om funktioner som kan være kandidater til egenskaben noreturn"
+
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Advar om kode som kan bryde strenge aliasregler"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, c-format
+msgid "invalid option `%s'"
+msgstr "ugyldigt tilvalg '%s'"
+
+#: toplev.c:2031
+#, c-format
+msgid "`%s' used but never defined"
+msgstr "'%s' brugt, men aldrig defineret"
+
+#: toplev.c:2034
+#, c-format
+msgid "`%s' declared `static' but never defined"
+msgstr "'%s' erklæret 'static', men aldrig defineret"
+
+#: toplev.c:2057
+#, c-format
+msgid "`%s' defined but not used"
+msgstr "'%s' defineret, men aldrig brugt"
+
+#: toplev.c:2280
+#, c-format
+msgid "invalid register name `%s' for register variable"
+msgstr "ugyldigt registernavn '%s' for registervariabel"
+
+#: toplev.c:3697
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr " -ffixed-<register> Markér <register> som værende utilgængeligt for oversætteren\n"
+
+#: toplev.c:3698
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr " -fcall-used-<register> Markér <register> som værende benyttet af funktionskald\n"
+
+#: toplev.c:3699
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr " -fcall-saved-<register> Markér <register> som værende bevaret over funktioner\n"
+
+#: toplev.c:3700
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr " -finline-limit=<str> Begræns størrelsen af inlie funktion til <str>\n"
+
+#: toplev.c:3701
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr " -fmessage-length=<antal> Begræns længden af diagnosticeringmeddelelser til længden <antal> tegn/linje. 0 undertrykker linjeombrydning\n"
+
+#: toplev.c:3702
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr " -fdiagnostics-show-location=[once | every-line] Indikerer hvor ofte kildeplaceringsoplysninger skal udsendes som præfiks til begyndelsen af meddelelserne ved linjeombrydning\n"
+
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indikerer den forvalgte tråd-lokale lagringsmodel for kodegenerering\n"
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr " -O[tal] Sæt optimeringsniveauet til [tal]\n"
+
+#: toplev.c:3719
+msgid " -Os Optimize for space rather than speed\n"
+msgstr " -Os Optimér mht. plads i stedet for hastighed\n"
+
+#: toplev.c:3731
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr " -pedantic Udsend advarsler som er nødvendige for streng overholdelse af ISO C\n"
+
+#: toplev.c:3732
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr " -pedantic-errors Som -pedantic bortset fra at problemer bliver til fejl\n"
+
+#: toplev.c:3733
+msgid " -w Suppress warnings\n"
+msgstr " -w Undertryk advarsler\n"
+
+#: toplev.c:3734
+msgid " -W Enable extra warnings\n"
+msgstr " -W Aktivér ekstra advarsler\n"
+
+#: toplev.c:3745
+msgid " -Wunused Enable unused warnings\n"
+msgstr " -Wunused Aktivér ubrugthedsadvarsler\n"
+
+#: toplev.c:3746
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr " -Wlarger-than-<tal> Advar hvis et objekt er større end <tal> byte\n"
+
+#: toplev.c:3747
+msgid " -p Enable function profiling\n"
+msgstr " -p Aktivér funktionsprofilering\n"
+
+#: toplev.c:3748
+msgid " -o <file> Place output into <file> \n"
+msgstr " -o <fil> Anbring uddata i <fil>\n"
+
+#: toplev.c:3749
+msgid ""
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
+msgstr " -G <str> Anbring globale og statiske data mindre end <tal> byte i en specialsektion (på nogle målarkitekturer)\n"
+
+#: toplev.c:3760
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr " -aux-info <fil> Udskriv erklæringsoplysninger til <fil>\n"
+
+#: toplev.c:3761
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr " -quiet Vis ikke funktioner der oversættes eller forløbet tid\n"
+
+#: toplev.c:3762
+msgid " -version Display the compiler's version\n"
+msgstr " -version Udskriv oversætterens version\n"
+
+#: toplev.c:3763
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr " -d[bogstaver] Aktivér dump fra specifikke faser i oversætteren\n"
+
+#: toplev.c:3764
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr " -dumpbase <fil> Basisnavn til brug for dump fra specifikke faser\n"
+
+#: toplev.c:3766
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr " -fsched-verbose=<tal> Angiv hvor meget planlæggeren skal fortælle\n"
+
+#: toplev.c:3768
+msgid " --help Display this information\n"
+msgstr " --help Vis disse oplysninger\n"
+
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+"\n"
+"Sprogspecifikke tilvalg:\n"
+
+#: toplev.c:3795
+#, c-format
+msgid " %-23.23s [undocumented]\n"
+msgstr " %-23.23s [ikke dokumenteret]\n"
+
+# %s er et sprog
+#: toplev.c:3803 toplev.c:3817
+#, c-format
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr ""
+"\n"
+"Der er også ikke-dokumenterede specifikke tilvalg til %s.\n"
+
+#: toplev.c:3807
+#, c-format
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr ""
+"\n"
+" Tilvalg til %s:\n"
+
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"Målspecifikke tilvalg:\n"
+
+#: toplev.c:3858 toplev.c:3877
+#, c-format
+msgid " -m%-23.23s [undocumented]\n"
+msgstr " -m%-23.23s [ikke dokumenteret]\n"
+
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr ""
+"\n"
+"Der er også ikke-dokumenterede målspecifikke tilvalg.\n"
+
+#: toplev.c:3888
+msgid " They exist, but they are not documented.\n"
+msgstr " De eksisterer, men er ikke dokumenteret.\n"
+
+#: toplev.c:3941
+#, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "ukendt GCC-fejlfindingstilvalg: %c"
+
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "'%s': ukendt tls-model-tilvalg"
+
+#: toplev.c:4034
+#, c-format
+msgid "unrecognized register name `%s'"
+msgstr "ukendt registernavn '%s'"
+
+#: toplev.c:4059 toplev.c:5012
+#, c-format
+msgid "unrecognized option `%s'"
+msgstr "ukendt tilvalg '%s'"
+
+#: toplev.c:4107
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr "-Wid-clash-LEN understøttes ikke længere"
+
+#: toplev.c:4184
+#, c-format
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr "benyt - gdwarf -g%d til DWARF v1, niveau %d"
+
+#: toplev.c:4187
+msgid "use -gdwarf-2 for DWARF v2"
+msgstr "benyt -gdwarf-2 til DWARF v2"
+
+#: toplev.c:4192
+#, c-format
+msgid "ignoring option `%s' due to invalid debug level specification"
+msgstr "ignorerer tilvalget '%s' på grund af ugyldig specifikation af fejlfindingsniveau"
+
+#: toplev.c:4215 toplev.c:5010
+#, c-format
+msgid "`%s': unknown or unsupported -g option"
+msgstr "'%s': ukendt eller ikke-understøttet '-g'-tilvalg"
+
+#: toplev.c:4222
+#, c-format
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr "'%s' ignoreret, er i konflikt med '-g%s'"
+
+#: toplev.c:4304
+msgid "-param option missing argument"
+msgstr "'-param'-tilvalg mangler parameter"
+
+#: toplev.c:4313
+#, c-format
+msgid "invalid --param option: %s"
+msgstr "ugyldigt '--param'-tilvalg: %s"
+
+#: toplev.c:4325
+#, c-format
+msgid "invalid parameter value `%s'"
+msgstr "ugyldig parameterværdi '%s'"
+
+#: toplev.c:4565
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
+msgstr ""
+"%s%s%s version %s (%s)\n"
+"%s\toversat af GNU C version %s.\n"
+"%s%s%s version %s (%s) oversat af CC.\n"
+
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sGGC-heuristikker: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#: toplev.c:4630
+msgid "options passed: "
+msgstr "tilvalg overbragt: "
+
+#: toplev.c:4659
+msgid "options enabled: "
+msgstr "tilvalg slået til: "
+
+#: toplev.c:4718 java/jcf-write.c:3453
+#, c-format
+msgid "can't open %s for writing"
+msgstr "kan ikke åbne '%s' til skrivning"
+
+#: toplev.c:5002
+#, c-format
+msgid "ignoring command line option '%s'"
+msgstr "ignorerer kommandolinjetilvalget '%s'"
+
+#: toplev.c:5005
+#, c-format
+msgid "(it is valid for %s but not the selected language)"
+msgstr "(det er gyldigt for %s, men ikke for det valgte sprog)"
+
+#: toplev.c:5039
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-Wuninitialized understøttes ikke uden -O"
+
+#: toplev.c:5094
+msgid "instruction scheduling not supported on this target machine"
+msgstr "instruktionsplanlægning understøttes ikke på målarkitekturen"
+
+#: toplev.c:5098
+msgid "this target machine does not have delayed branches"
+msgstr "målarkitekturen har ikke forsinkede forgreninger"
+
+#: toplev.c:5112
+#, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "-f%sleading-underscore understøttes ikke på målarkitekturen"
+
+#: toplev.c:5175
+msgid "-ffunction-sections not supported for this target"
+msgstr "-ffunction-sections understøttes ikke på målarkitekturen"
+
+#: toplev.c:5180
+msgid "-fdata-sections not supported for this target"
+msgstr "-fdata-sections understøttes ikke på målarkitekturen"
+
+#: toplev.c:5187
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-ffunction-sections deaktiveret; dette gør profilering umulig"
+
+#: toplev.c:5194
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen"
+
+#: toplev.c:5200
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen (prøv '-march'-tilvalgene)"
+
+#: toplev.c:5209
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-fprefetch-loop-arrays understøttes ikke med -Os"
+
+#: toplev.c:5215
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-ffunction-sections kan have indflydelse på fejlfinding på nogle målarkitekturer"
+
+#: toplev.c:5327
+#, c-format
+msgid "error writing to %s"
+msgstr "fejl ved skrivning til %s"
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, c-format
+msgid "error closing %s"
+msgstr "fejl ved lukning af %s"
+
+#: tree-dump.c:702
+#, c-format
+msgid "could not open dump file `%s'"
+msgstr "kunne ikke åbne dumpningsfilen '%s'"
+
+#: tree-dump.c:778
+#, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr "ignorerer ukendt tilvalg '%.*s' i '-f%s'"
-#: config/alpha/alpha.c:201
+#: tree.c:3645
+msgid "arrays of functions are not meaningful"
+msgstr "en tabel af funktioner giver ikke mening"
+
+#: tree.c:3702
+msgid "function return type cannot be function"
+msgstr "en funktions returtype kan ikke være en funktion"
+
+#: tree.c:4557
+msgid "invalid initializer for bit string"
+msgstr "ugyldig startværdi til bitstreng"
+
+#: tree.c:4616
+#, c-format
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
+msgstr "træ-kontrol: forventede %s, har %s i %s, ved %s:%d"
+
+#: tree.c:4633
+#, c-format
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr "træ-kontrol: forventede klasse '%c', har '%c' (%s) i %s, ved %s:%d"
+
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "RTL-kontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d"
+
+#: varasm.c:455 config/i386/winnt.c:611
+#, c-format
+msgid "%s causes a section type conflict"
+msgstr "%s forårsager en sektionstypekonflikt"
+
+#: varasm.c:841
+#, c-format
+msgid "register name not specified for `%s'"
+msgstr "registernavn ikke angivet for '%s'"
+
+#: varasm.c:843
+#, c-format
+msgid "invalid register name for `%s'"
+msgstr "ugyldigt registernavn for '%s'"
+
+#: varasm.c:846
+#, c-format
+msgid "data type of `%s' isn't suitable for a register"
+msgstr "datatypen for '%s' passer ikke med et register"
+
+#: varasm.c:849
+#, c-format
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr "registeret som er angivet for '%s' passer ikke med datatypen"
+
+#: varasm.c:858
+msgid "global register variable has initial value"
+msgstr "global registervariabel har en startværdi"
+
+#: varasm.c:861
+msgid "volatile register variables don't work as you might wish"
+msgstr "registervariable erklæret volatile virker ikke som du måske ønsker"
+
+#: varasm.c:894
+#, c-format
+msgid "register name given for non-register variable `%s'"
+msgstr "registernavn givet for ikke-registervariablen '%s'"
+
+#: varasm.c:1542
+#, c-format
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+msgstr "justering af '%s' er større end den maksimale objektfilsjustering - bruger %d"
+
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr "tråd-lokal COMMON-data er ikke implementeret"
+
+#: varasm.c:1610
+#, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr "forespurgt justering for %s er større end den implementerede justering af %d"
+
+#: varasm.c:4048
+msgid "initializer for integer value is too complicated"
+msgstr "startværdien for heltallet er for kompliceret"
+
+#: varasm.c:4053
+msgid "initializer for floating value is not a floating constant"
+msgstr "startværdien for kommatal er ikke en kommatalskonstant"
+
+#: varasm.c:4120
+msgid "unknown set constructor type"
+msgstr "ukendt mængdekonstruktionstype"
+
+#: varasm.c:4334
+#, c-format
+msgid "invalid initial value for member `%s'"
+msgstr "ugyldig startværdi for medlemmet '%s'"
+
+#: varasm.c:4525 varasm.c:4568
+#, c-format
+msgid "weak declaration of `%s' must precede definition"
+msgstr "svag erklæring af '%s' skal komme før definitionen"
+
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "svag erklæring af '%s' efter første brug resulterer i ikke-defineret opførsel"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "svag erklæring af '%s' skal være public"
+
+#: varasm.c:4575
+#, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr "svag erklæring af '%s' ikke understøttet"
+
+#: varasm.c:4602 varasm.c:4677
+msgid "only weak aliases are supported in this configuration"
+msgstr "kun svage aliaser understøttes i denne konfiguration"
+
+#: varasm.c:4685
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret"
+
+#: varasm.c:4716
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret"
+
+#: varray.c:134
+#, c-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr "virtuel tabel %s[%lu]: element %lu ude over grænserne i %s, ved %s:%d"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
+#, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr "ingen sclass for %s stab (0x%x)\n"
+
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#'%s' ikke understøttet af %s#"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "Det maksimale antal instruktioner i en enkelt funktion der må indbygges"
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "Det maksimale antal instruktioner ved automatisk indbygning"
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr "Det maksimale antal instruktioner ved gentagen indbygning før GCC dæmper indbygningen"
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr "Hældningen af den lineære funktion der dæmper indbygning efter at den rekursive indbygningsgrænse er nået, er givet ved den negative, reciprokke værdi af denne parameter"
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr "Antallet af instruktioner i en enkelt funktion der stadig indbygges efter megen rekursiv indbygning"
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
+
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr "Det maksimale antal instruktioner det overvejes at udfylde ventepladser med"
+
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr "Det maksimale antal instruktioner der overvejes under søgning efter præcis registerinfo"
+
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "Den maksimale længde af planlæggerens liste over ventende operationer"
+
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "Den maksimale mængde hukommelse som skal allokeres af GCSE"
+
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "Det maksimale antal faser der skal gennemgås ved udførsel af GCSE"
+
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en løkke"
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr "Vælg den andel af det maksimale antal gentagelser af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\""
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr "Vælg den andel af den maksimale frekvens af udførsler af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\""
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr "Den procendel af funktioner vægtet efter udførselsfrekvens som skal dækkes af sporingsformering; benyttes når profileringsfeedback er tilgængeligt"
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr "Den procendel af funktioner vægtet efter udførselsfrekvens som skal dækkes af sporingsformering; benyttes når profileringsfeedback ikke er tilgængeligt"
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr "Maksimal kodevækst forårsaget af haleduplikering (i procent)"
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr "Stop omvendt vækst hvis den omvendte sandsynlighed for den bedste kant er mindre end denne tærskel (i procent)"
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr "Stop fremadrettet vækst hvis sandsynligheden for den bedste kant er mindre end denne tærskel (i procent); benyttes når profileringsfeedback er tilgængeligt"
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr "Stop fremadrettet vækst hvis sandsynligheden for den bedste kant er mindre end denne tærskel (i procent); benyttes når profileringsfeedback ikke er tilgængeligt"
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "Det maksimale antal indadgående kanter der overvejes til krydsspring"
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr "Minimal heap-udvidelse for at udløse garbage collection, som en procentdel af den totale heap"
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr "Minimal heap-størrelse før garbage collection startes, i kilobyte."
+
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr "for mange '#pragma options align=reset'"
+
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
+msgstr "forkert udformet '#pragma options', ignorerer"
+
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
+msgstr "ragelse i slutningen af '#pragma options'"
+
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr "forkert udformet '#pragma options align={mac68k|power|reset}', ignorerer"
+
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "manglende '(' efter '#pragma unused', ignorerer"
+
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "manglende ')' efter '#pragma unused', ignorerer"
+
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
+msgstr "ragelse i slutningen af '#pragma unused'"
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr "-msystem-v og -p er indbyrdes uforenelige"
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr "-msystem-v og -mthreads er indbyrdes uforenelige"
+
+#: config/alpha/alpha.c:342
+#, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-f%s ignoreret for Unicos/Mk (ikke understøttet)"
+
+#: config/alpha/alpha.c:366
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-mieee understøttes ikke på Unicos/Mk"
+
+#: config/alpha/alpha.c:377
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "-mieee-with-inexact understøttes ikke på Unicos/Mk"
+
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
-msgstr "ugyldig værdi '%s' til '-mtrap-precision'-tilvalget"
+msgstr "ugyldig værdi '%s' til tilvalget -mtrap-precision"
-#: config/alpha/alpha.c:215
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
-msgstr "ugyldig værdi '%s' til '-mfp-rounding-mode'-tilvalget"
+msgstr "ugyldig værdi '%s' til tilvalget -mfp-rounding-mode"
-#: config/alpha/alpha.c:230
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
-msgstr "ugyldig værdi '%s' til '-mfp-trap-mode'-tilvalget"
+msgstr "ugyldig værdi '%s' til tilvalget -mfp-trap-mode"
-#: config/alpha/alpha.c:249 config/alpha/alpha.c:261
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "ugyldig værdi '%s' til tilvalget -mtls-size"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
-msgstr "ugyldig værdi '%s' til '-mcpu'-tilvalget"
+msgstr "ugyldig værdi '%s' til tilvalget -mcpu"
-#: config/alpha/alpha.c:269
-#, fuzzy
+#: config/alpha/alpha.c:473
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "fældetilstand understøttes ikke på Unicos/Mk"
+
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
-msgstr "Et '-ifile'-tilvalg påkræver et '-map'-tilvalg"
+msgstr "kommatalssoftwarefuldførelse kræver -mtrap-precision=i"
-#: config/alpha/alpha.c:285
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
-msgstr ""
+msgstr "afrundingstilstand er ikke understøttet for VAX-kommatal"
-#: config/alpha/alpha.c:290
-#, fuzzy
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+msgstr "fældetilstand er ikke understøttet for VAX-kommatal"
-#: config/alpha/alpha.c:319
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
-msgstr ""
+msgstr "L%d-mellemlagersventetid ukendt for %s"
-#: config/alpha/alpha.c:334
-#, fuzzy, c-format
+#: config/alpha/alpha.c:545
+#, c-format
msgid "bad value `%s' for -mmemory-latency"
-msgstr "ugyldig værdi (%s) til '-mmodel'-tilvalget"
+msgstr "ugyldig værdi '%s' for -mmemory-latency"
+
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, c-format
+msgid "invalid %%H value"
+msgstr "ugyldig %%H-værdi"
-#: config/alpha/alpha.c:3901 config/ia64/ia64.c:3368
+#: config/alpha/alpha.c:5625
+#, c-format
+msgid "invalid %%J value"
+msgstr "ugyldig %%J-værdi"
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "ugyldig %%r-værdi"
-#: config/alpha/alpha.c:3912 config/rs6000/rs6000.c:4088
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "ugyldig %%R-værdi"
-#: config/alpha/alpha.c:3935 config/romp/romp.c:724 config/romp/romp.c:731
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "ugyldig %%N-værdi"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "ugyldig %%P-værdi"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "ugyldig %%h-værdi"
-#: config/alpha/alpha.c:4025
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "ugyldig %%L-værdi"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "ugyldig %%m-værdi"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "ugyldig %%M-værdi"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "ugyldig %%U-værdi"
-#: config/alpha/alpha.c:4033 config/alpha/alpha.c:4044 config/romp/romp.c:690
-#: config/rs6000/rs6000.c:4096
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "ugyldig %%s-værdi"
-#: config/alpha/alpha.c:4092 config/rs6000/rs6000.c:3806
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "ugyldig %%C-værdi"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "ugyldig %%E-værdi"
-#: config/alpha/alpha.c:4113 config/romp/romp.c:965
-#: config/rs6000/rs6000.c:4388
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr "ukendt relokaliserings-unspec"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "ugyldig %%xn-kode"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr "ugyldig indbygget fcode"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:200 config/i386/i386.h:233 config/i386/i386.h:235
-#: config/i386/i386.h:237 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:301
-#: config/sparc/sparc.h:577 config/sparc/sparc.h:582
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
-msgstr "Brug hardware-kommatal"
+msgstr "Brug hardwarekommatal"
-#: config/alpha/alpha.h:201 config/i386/i386.h:234 config/i386/i386.h:236
-#: config/rs6000/rs6000.h:303 config/sparc/sparc.h:579
-#: config/sparc/sparc.h:584
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Brug ikke hardwarekommatal"
-#: config/alpha/alpha.h:202
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
-msgstr ""
+msgstr "Brug kommatalsregistre"
-#: config/alpha/alpha.h:204
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
-msgstr ""
+msgstr "Brug ikke kommatalsregistre"
-#: config/alpha/alpha.h:205
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
-msgstr ""
+msgstr "Antag ikke GAS"
-#: config/alpha/alpha.h:206
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
-msgstr ""
+msgstr "Antag GAS"
-#: config/alpha/alpha.h:208
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
-msgstr ""
+msgstr "Påkræv at matematiksbibliotekrutiner opfylder IEEE-standarden (OSF/1)"
-#: config/alpha/alpha.h:210
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
-msgstr ""
+msgstr "Udsend kode der opfylder IEEE-standarden, uden ineksakte undtagelser"
-#: config/alpha/alpha.h:212
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
-msgstr ""
+msgstr "Udsend kode der opfylder IEEE-standarden, med ineksakte undtagelser"
-#: config/alpha/alpha.h:214
-#, fuzzy
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
-msgstr "kompleks heltalskonstant er for stor til 'complex int'"
+msgstr "Udsend ikke komplekse heltalskonstanter til skrivebeskyttet hukommelse"
-#: config/alpha/alpha.h:215
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
-msgstr ""
+msgstr "Benyt VAX-kommatal"
-#: config/alpha/alpha.h:216
-#, fuzzy
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke VAX-kommatal"
-#: config/alpha/alpha.h:217
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
-msgstr ""
+msgstr "Udsend kode for byte/word-ISA-udvidelsen"
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
-msgstr ""
+msgstr "Udsend kode for video-ISA-udvidelsen"
-#: config/alpha/alpha.h:223
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
-msgstr ""
+msgstr "Udsend kode for kommatalsflytning og kvadratrod-ISA-udvidelsen"
-#: config/alpha/alpha.h:225
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
-msgstr ""
+msgstr "Udsend kode for tæller-ISA-udvidelsen"
+
+#: config/alpha/alpha.h:307
+msgid "Emit code using explicit relocation directives"
+msgstr "Udsend kode der bruger eksplicitte relokaliseringsdirektiver"
+
+#: config/alpha/alpha.h:310
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "Udsend 16-bit relokalisering til det lille dataområde"
+
+#: config/alpha/alpha.h:312
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "Udsend 32-bit relokalisering til det lille dataområde"
+
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "Udsend rdval i stedet for rduniq for trådhenvisning"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an initializer
-#. with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed
-#. part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:262
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
-msgstr ""
+msgstr "Brug faciliteter fra og planlæg mht. den givne processor"
-#: config/alpha/alpha.h:264
-#, fuzzy
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
-msgstr "Planlæg koden til en given cpu"
+msgstr "Planlæg til en given processor"
-#: config/alpha/alpha.h:266
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
-msgstr ""
+msgstr "Kontrollér den genererede kommatalsafrundingstilstand"
-#: config/alpha/alpha.h:268
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
-msgstr ""
+msgstr "Kontrollér IEEE-fældetilstanden"
-#: config/alpha/alpha.h:270
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
-msgstr ""
+msgstr "Kontrollér den præcision der gives til kommatalsundtagelser"
-#: config/alpha/alpha.h:272
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
-msgstr ""
+msgstr "Justér den forventede hukommelsesventetid"
-#. The names we put in the hashtable will always be the unique versions gived to us by the stringtable, so we can just use their addresses as the keys.
-#. See if we already have an entry for this section.
-#: config/alpha/elf.h:354 config/elfos.h:461 config/i386/sco5.h:492
-#: config/pa/pa-64.h:320 config/rs6000/sysv4.h:963
-#, c-format
-msgid "%s causes a section type conflict"
-msgstr ""
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Angiv bitstørrelse for umiddelbar TLS-afsæt"
-#: config/arc/arc.c:108
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
-msgstr "ugyldig værdi '%s' til '-mcpu'-tilvalget"
+msgstr "ugyldig værdi '%s' til tilvalget -mcpu"
-#: config/arc/arc.c:1666 config/m32r/m32r.c:2217
-msgid "invalid operand to %R code"
-msgstr "ugyldig operand til '%R'-koden"
+#: config/arc/arc.c:362
+#, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
-#: config/arc/arc.c:1698 config/m32r/m32r.c:2240
-msgid "invalid operand to %H/%L code"
-msgstr "ugyldig operand til '%H'/'%L'-koden"
+#: config/arc/arc.c:369
+#, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
-#: config/arc/arc.c:1722 config/m32r/m32r.c:2317
-msgid "invalid operand to %U code"
-msgstr "ugyldig operand til '%U'-koden"
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr "ugyldig operand til %%R-koden"
-#: config/arc/arc.c:1733
-msgid "invalid operand to %V code"
-msgstr "ugyldig operand til '%V'-koden"
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "ugyldig operand til %%H/%%L-koden"
+
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr "ugyldig operand til %%U-koden"
+
+#: config/arc/arc.c:1774
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr "ugyldig operand til %%V-koden"
#. Unknown flag.
-#: config/arc/arc.c:1740 config/m32r/m32r.c:2356 config/sparc/sparc.c:5888
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "ugyldig operand-uddatakode"
-#: config/arm/arm.c:372
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
-msgstr ""
+msgstr "tilvalget -mcpu=%s er i konflikt med tilvalget -march="
-#: config/arm/arm.c:382 config/rs6000/rs6000.c:311 config/sparc/sparc.c:317
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
-msgstr "ugyldig værdi (%s) til '%s'-tilvalget"
+msgstr "ugyldig værdi (%s) til tilvalget %s"
-#: config/arm/arm.c:518
-#, fuzzy
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
-msgstr "Dette mål understøtter ikke '-mabi'-tilvalget."
+msgstr "målprocessoren understøtter ikke APCS-32"
-#: config/arm/arm.c:523
-#, fuzzy
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
-msgstr "Dette mål understøtter ikke '-mabi'-tilvalget."
+msgstr "målprocessoren understøtter ikke APCS-26"
-#: config/arm/arm.c:529
-#, fuzzy
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
-msgstr "Dette mål understøtter ikke '-mabi'-tilvalget."
+msgstr "målprocessoren understøtter ikke interarbejde"
-#: config/arm/arm.c:535
-#, fuzzy
-msgid "target CPU does not support THUMB instructions."
-msgstr "Dette mål understøtter ikke '-mabi'-tilvalget."
+#: config/arm/arm.c:621
+msgid "target CPU does not support THUMB instructions"
+msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
-#: config/arm/arm.c:549
-msgid "enabling backtrace support is only meaningful when compiling for the Thumb."
-msgstr ""
+#: config/arm/arm.c:635
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr "aktivering af tilbagesporingsunderstøttelse giver kun mening ved oversættelse for en Thumb"
-#: config/arm/arm.c:552
-msgid "enabling callee interworking support is only meaningful when compiling for the Thumb."
-msgstr ""
+#: config/arm/arm.c:638
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr "aktivering af interarbejdeunderstøttelse for kaldte objekter giver kun mening ved oversættelse for en Thumb"
-#: config/arm/arm.c:555
-msgid "enabling caller interworking support is only meaningful when compiling for the Thumb."
-msgstr ""
+#: config/arm/arm.c:641
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr "aktivering af interarbejdeunderstøttelse for kaldere giver kun mening ved oversættelse for en Thumb"
-#: config/arm/arm.c:561
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
-msgstr ""
+msgstr "interarbejde tvinger APCS-32 til at blive brugt"
-#: config/arm/arm.c:567
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
-msgstr ""
+msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige"
-#: config/arm/arm.c:575
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
-#: config/arm/arm.c:578
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
-msgstr ""
+msgstr "APCS-genindtrædelig kode er ikke understøttet - ignoreret"
-#: config/arm/arm.c:586
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
-msgstr ""
+msgstr "-g med -mno-apcs-frame giver måske ikke fornuftig fejlanalysering"
-#: config/arm/arm.c:594
-msgid "Passing floating point arguments in fp regs not yet supported"
-msgstr ""
+#: config/arm/arm.c:680
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "overbringelse af kommatalsparametre i kommatalsregistre er ikke understøttet endnu"
-#: config/arm/arm.c:623
+#: config/arm/arm.c:709
#, c-format
-msgid "Invalid floating point emulation option: -mfpe-%s"
-msgstr "Ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
+msgid "invalid floating point emulation option: -mfpe-%s"
+msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
-#: config/arm/arm.c:647
-msgid "Structure size boundary can only be set to 8 or 32"
-msgstr ""
+#: config/arm/arm.c:733
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr "strukturstørrelsesgrænse kan kun sættes til 8 eller 32"
-#: config/arm/arm.c:655
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
-msgstr ""
+msgstr "-mpic-register= er ubrugelig uden -fpic"
-#: config/arm/arm.c:664
+#: config/arm/arm.c:748
#, c-format
-msgid "Unable to use '%s' for PIC register"
-msgstr "Kan ikke bruge '%s' til PIC-register"
-
-#. FIXME - the way to handle this situation is to allow
-#. the pretend args to be dumped onto the stack, then
-#. reuse r3 to save IP. This would involve moving the
-#. copying of SP into IP until after the pretend args
-#. have been dumped, but this is not too hard.
-#. [See e.g. gcc.c-torture/execute/nest-stdar-1.c.]
-#: config/arm/arm.c:7844
-msgid "Unable to find a temporary location for static chain register"
-msgstr ""
+msgid "unable to use '%s' for PIC register"
+msgstr "kan ikke bruge '%s' til PIC-register"
-#: config/arm/arm.c:8806
-msgid "Unable to compute real location of stacked parameter"
-msgstr ""
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
-#: config/arm/arm.c:9500
-#, fuzzy
+#: config/arm/arm.c:9459
+msgid "unable to compute real location of stacked parameter"
+msgstr "kan ikke beregne virkelig placering af stakkede parametre"
+
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
-msgstr "Ingen lave registre er tilgængelige til at modtage værdier fra høje registre"
+msgstr "ingen lave registre er tilgængelige til at modtage værdier fra høje registre"
-#: config/arm/arm.c:9712
-msgid "Interrupt Service Routines cannot be coded in Thumb mode."
-msgstr ""
+#: config/arm/arm.c:10389
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand"
-#: config/arm/arm.h:421
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr "variablen '%s' med startværdi er markeret dllimport"
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr "statisk variabel '%s' er markeret dllimport"
+
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
-msgstr ""
+msgstr "Generér APCS-overholdende stakrammer"
-#: config/arm/arm.h:424
-#, fuzzy
+#: config/arm/arm.h:419
msgid "Store function names in object code"
-msgstr "klargøringsfunktion fundet i objekt %s"
+msgstr "Gem funktionsnavne i objektkode"
-#: config/arm/arm.h:428
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
-msgstr ""
+msgstr "Benyt 32 bit-udgaven af APCS"
-#: config/arm/arm.h:430
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
-msgstr ""
+msgstr "Benyt 26 bit-udgaven af APCS"
-#: config/arm/arm.h:434
-#, fuzzy
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
-msgstr "Returnér værdier fra funktioner i fpu-registre"
+msgstr "Videregiv kommatalsparametre i kommatalsregistre"
-#: config/arm/arm.h:437
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
-msgstr ""
+msgstr "Generér genindtrædelig PIC-kode"
-#: config/arm/arm.h:440
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
-msgstr ""
+msgstr "MMU'en vil aktiveres ved ikke-justerede tilgange"
-#: config/arm/arm.h:447
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
-msgstr ""
+msgstr "Benyt bibliotekskald til at udføre kommatalsoperationer"
-#: config/arm/arm.h:449 config/i960/i960.h:282
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
-msgstr ""
+msgstr "Benyt hardware-kommatalsinstruktioner"
-#: config/arm/arm.h:451
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
-msgstr ""
+msgstr "Antag at målprocessoren er konfigureret som storendet"
-#: config/arm/arm.h:453
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
-msgstr ""
+msgstr "Antag at målprocessoren er konfigureret som lilleendet"
-#: config/arm/arm.h:455
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
-msgstr ""
+msgstr "Antag storendede byte og lilleendede word"
-#: config/arm/arm.h:457
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
-msgstr ""
+msgstr "Understøt kald mellem Thumb- og ARM-instruktionssættene"
-#: config/arm/arm.h:460
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
-msgstr ""
+msgstr "Generér et kald til abort hvis en noreturn-funktion returnerer"
-#: config/arm/arm.h:463
-#, fuzzy
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
-msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
+msgstr "Flyt ikke instruktioner til en funktions begyndelse"
-#: config/arm/arm.h:466
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
-msgstr ""
+msgstr "Indlæs ikke PIC-registeret i funktionsbegyndelser"
-#: config/arm/arm.h:469
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
-msgstr ""
+msgstr "Generér kaldeinstruktioner som indirekte kald, om nødvendigt"
-#: config/arm/arm.h:472
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
-msgstr ""
+msgstr "Oversæt til Thymb, ikke til ARM"
-#: config/arm/arm.h:476
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
-msgstr ""
+msgstr "Thumb: Generér (ikke-yderste) stakrammer selv hvis det ikke er nødvendigt"
-#: config/arm/arm.h:479
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
-msgstr ""
+msgstr "Thumb: Generér (yderste) stakrammer selv hvis det ikke er nødvendigt"
-#: config/arm/arm.h:482
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
-msgstr ""
+msgstr "Thumb: Antag at ikke-statiske funktioner kan kaldes fra ARM-kode"
-#: config/arm/arm.h:486
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
-msgstr ""
+msgstr "Thumb: Antag at funktionshenvisninger kan gå til kode der ikke er opmærksom på Thumb"
-#: config/arm/arm.h:496
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
-msgstr ""
+msgstr "Angiv navnet på målprocessoren"
-#: config/arm/arm.h:498
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
-msgstr ""
+msgstr "Angiv navnet på målarkitekturen"
-#: config/arm/arm.h:502
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
-msgstr ""
+msgstr "Angiv versionen af kommatalsemulatoren"
-#: config/arm/arm.h:504
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
-msgstr ""
+msgstr "Angiv den mindste bitjustering af strukturer"
-#: config/arm/arm.h:506
-#, fuzzy
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
-msgstr "Ugyldigt register i ybase-adressering"
+msgstr "Angiv det register der skal bruges til PIC-adressering"
-#: config/arm/pe.c:255 config/i386/winnt.c:339 config/mcore/mcore.c:3400
-#, fuzzy, c-format
-msgid "initialized variable `%s' is marked dllimport"
-msgstr "instansvariablen '%s' er erklæret privat"
+#: config/arm/pe.h:65
+msgid "Ignore dllimport attribute for functions"
+msgstr "Ignorér dllimport-egenskaben for funktioner"
-#: config/arm/pe.c:264 config/i386/winnt.c:348
-#, fuzzy, c-format
-msgid "static variable `%s' is marked dllimport"
-msgstr "instansvariablen '%s' er erklæret privat"
+#: config/avr/avr.c:528
+#, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "stor rammehenvisningsændring (%d) med -mtiny-stack"
-#: config/arm/pe.h:62
-msgid "Ignore dllimport attribute for functions"
-msgstr ""
+#: config/avr/avr.c:1135
+msgid "bad address, not (reg+disp):"
+msgstr "ugyldig adresse, ikke (reg+disp):"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr ""
+#: config/avr/avr.c:1143
+msgid "internal compiler error. Bad address:"
+msgstr "intern oversætterfejl - ugyldig adresse:"
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr ""
+#: config/avr/avr.c:1156
+msgid "internal compiler error. Unknown mode:"
+msgstr "intern oversætterfejl - ugyldig tilstand:"
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr ""
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+msgid "invalid insn:"
+msgstr "ugyldig instruktion:"
-#: config/avr/avr.c:190
-#, fuzzy, c-format
-msgid "MCU `%s' not supported"
-msgstr "-pipe understøttes ikke."
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
+msgstr "ukorrekt instruktion:"
-#: config/avr/avr.c:430
-#, c-format
-msgid "large frame pointer change (%d) with -mtiny-stack"
-msgstr ""
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+msgid "unknown move insn:"
+msgstr "ukendt flytteinstruktion:"
-#: config/avr/avr.c:4704
-msgid "Only initialized variables can be placed into program memory area."
-msgstr ""
+#: config/avr/avr.c:3003
+msgid "bad shift insn:"
+msgstr "ugyldig skifteinstruktion:"
-#. `TARGET_...'
-#. This series of macros is to allow compiler command arguments to
-#. enable or disable the use of optional features of the target
-#. machine. For example, one machine description serves both the
-#. 68000 and the 68020; a command argument tells the compiler whether
-#. it should use 68020-only instructions or not. This command
-#. argument works by means of a macro `TARGET_68020' that tests a bit
-#. in `target_flags'.
-#.
-#. Define a macro `TARGET_FEATURENAME' for each such option. Its
-#. definition should test a bit in `target_flags'; for example:
-#.
-#. #define TARGET_68020 (target_flags & 1)
-#.
-#. One place where these macros are used is in the
-#. condition-expressions of instruction patterns. Note how
-#. `TARGET_68020' appears frequently in the 68000 machine description
-#. file, `m68k.md'. Another place they are used is in the
-#. definitions of the other macros in the `MACHINE.h' file.
-#: config/avr/avr.h:99
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+msgid "internal compiler error. Incorrect shift:"
+msgstr "intern oversætterfejl - ukorrekt skift:"
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+msgid "only initialized variables can be placed into program memory area"
+msgstr "kun variabler med startværdi kan placeres i programhukommelsesområdet"
+
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "kun variabler uden startværdi kan placeres i .noinit-sektionen"
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU '%s' understøttes kun for maskinkode"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
-msgstr ""
+msgstr "Antag at int er 8 bit-heltal"
-#: config/avr/avr.h:101
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
-msgstr ""
+msgstr "Ændr stakhenvisningen uden at deaktivere afbrydelser"
-#: config/avr/avr.h:103
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
-msgstr ""
+msgstr "Benyt subrutiner for funktionsindledning/-afslutninger"
-#: config/avr/avr.h:105
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
-msgstr ""
+msgstr "Ændr kun de laveste 8 bit af stakhenvisningen"
-#: config/avr/avr.h:107
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
-msgstr ""
+msgstr "Generér ikke tabelspringsinstruktioner"
+
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr "Benyt rjmp/rcall (begrænset omfang) på >8K-enheder"
-#: config/avr/avr.h:110
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
-msgstr ""
+msgstr "Anbring instruktionsstørrelser i asm-filen"
-#: config/avr/avr.h:144
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
-msgstr ""
+msgstr "Angiv den første stakadresse"
-#: config/avr/avr.h:145
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
-msgstr ""
+msgstr "Angiv MCU-navnet"
-#: config/avr/avr.h:2899
-#, fuzzy
-msgid "Trampolines not supported\n"
-msgstr "-pipe understøttes ikke"
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+msgid "trampolines not supported"
+msgstr "trampoliner understøttes ikke"
-#: config/c4x/c4x.c:268
+#: config/c4x/c4x-c.c:69
#, c-format
-msgid "Unknown CPU version %d, using 40.\n"
-msgstr ""
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "manglende '(' efter '#pragma %s' - ignoreret"
-#: config/c4x/c4x.c:859
+#: config/c4x/c4x-c.c:72
#, c-format
-msgid "ISR %s requires %d words of local vars, max is 32767."
-msgstr ""
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "manglende funktionsnavn i '#pragma %s' - ignoreret"
-#: config/c4x/c4x.c:4525
-#, fuzzy, c-format
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr "forkert udformet '#pragma %s' - ignoreret"
+
+#: config/c4x/c4x-c.c:79
+#, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "manglende sektionsnavn i '#pragma %s' - ignoreret"
+
+#: config/c4x/c4x-c.c:84
+#, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "manglende '(' for '#pragma %s' - ignoreret"
+
+#: config/c4x/c4x-c.c:87
+#, c-format
msgid "junk at end of '#pragma %s'"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma %s'"
+
+#: config/c4x/c4x.c:280
+#, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr "ukendt processorversion %d, bruger 40.\n"
+
+#: config/c4x/c4x.c:853
+#, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "ISR %s kræver %d ord af lokale variable, maks. er 32767"
+
+#: config/c4x/c4x.c:1602
+msgid "using CONST_DOUBLE for address"
+msgstr "bruger CONST_DOUBLE til adresse"
+
+#: config/c4x/c4x.c:1742
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "c4x_address_cost: Ugyldig adresseringstilstand"
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr "c4x_print_operand: %%L-inkonsistens"
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr "c4x_print_operand: %%N-inkonsistens"
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr "c4x_print_operand: %%O-inkonsistens"
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr "c4x_print_operand: Ugyldig operand-case"
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr "c4x_print_operand_address: Ugyldig post_modify"
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr "c4x_print_operand_address: Ugyldig pre_modify"
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr "c4x_print_operand_address: Ugyldig operand-case"
+
+#: config/c4x/c4x.c:2422
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "c4x_rptb_insert: Kan ikke finde startetiket"
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+msgid "mode not QImode"
+msgstr "tilstand ikke QImode"
+
+#: config/c4x/c4x.c:3514
+msgid "invalid indirect memory address"
+msgstr "ugyldig indirekte hukommelsesadresse"
+
+#: config/c4x/c4x.c:3603
+msgid "invalid indirect (S) memory address"
+msgstr "ugyldig indirekte (S) hukommelsesadresse"
+
+#: config/c4x/c4x.c:3944
+msgid "c4x_valid_operands: Internal error"
+msgstr "c4x_valid_operands: Intern fejl"
+
+#: config/c4x/c4x.c:4424
+msgid "c4x_operand_subword: invalid mode"
+msgstr "c4x_operand_subword: ugyldig tilstand"
+
+#: config/c4x/c4x.c:4427
+msgid "c4x_operand_subword: invalid operand"
+msgstr "c4x_operand_subword: ugyldig operand"
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "c4x_operand_subword: ugyldig selvforøgelse"
+
+#: config/c4x/c4x.c:4459
+msgid "c4x_operand_subword: invalid address"
+msgstr "c4x_operand_subword: ugyldig adresse"
+
+#: config/c4x/c4x.c:4470
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "c4x_operand_subword: adresse kan ikke tilføjes et offset"
+
+#: config/c4x/c4x.c:4670
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr "c4x_rptb_rpts_p: Topetiket til gentagelsesblok flyttet\n"
#. Name of the c4x assembler.
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -4296,810 +9356,1358 @@ msgstr "ragelse i slutningen af #%s"
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
-msgstr ""
+msgstr "Lille hukommelsesmodel"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
-msgstr ""
+msgstr "Stor hukommelsesmodel"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
-msgstr ""
+msgstr "Benyt MPYI-instruktionen til C3x"
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
-msgstr ""
+msgstr "Benyt ikke MPYI-instruktionen til C3x"
-#: config/c4x/c4x.h:149
-#, fuzzy
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
-msgstr " i henvisning til medlem-omdannelse"
+msgstr "Benyt hurtig, men approksimativ konvertering fra komma- til heltal"
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
-msgstr ""
+msgstr "Benyt langsom, men nøjagtig konvertering fra komma- til heltal"
-#: config/c4x/c4x.h:153
-#, fuzzy
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Aktivér brug af RTPS-instruktionen"
-#: config/c4x/c4x.h:155
-#, fuzzy
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Deaktivér brug af RTPS-instruktionen"
-#: config/c4x/c4x.h:157
-#, fuzzy
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Aktivér brug af RTPB-instruktionen"
-#: config/c4x/c4x.h:159
-#, fuzzy
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Deaktivér brug af RTPB-instruktionen"
-#: config/c4x/c4x.h:161
-#, fuzzy
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C30-processor"
-#: config/c4x/c4x.h:163
-#, fuzzy
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C31-processor"
-#: config/c4x/c4x.h:165
-#, fuzzy
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C32-processor"
-#: config/c4x/c4x.h:167
-#, fuzzy
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C33-processor"
-#: config/c4x/c4x.h:169
-#, fuzzy
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C40-processor"
-#: config/c4x/c4x.h:171
-#, fuzzy
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en C44-processor"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
-msgstr ""
+msgstr "Udsend kode der er kompatibel med TI-værktøjer"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
-msgstr ""
+msgstr "Udsend kode der bruger GAS-udvidelser"
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+# RETMIG: hvad står ISR for?
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
-msgstr ""
+msgstr "Gem DP over ISR i lille hukommelsesmodel"
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
-msgstr ""
+msgstr "Gem ikke DP over ISR i lille hukommelsesmodel"
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
-msgstr ""
+msgstr "Overbring parametre på stakken"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
-msgstr ""
+msgstr "Overbring parametre i registre"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
-msgstr ""
+msgstr "Aktivér nye faciliteter under udvikling"
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
-msgstr ""
+msgstr "Deaktivér nye faciliteter under udvikling"
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
-msgstr ""
+msgstr "Benyt BK-registeret som et alment register"
-#: config/c4x/c4x.h:195
-#, fuzzy
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
-msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
+msgstr "Allokér ikke BK-registeret"
-#: config/c4x/c4x.h:197
-#, fuzzy
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Aktivér brug af DB-instruktioner"
-#: config/c4x/c4x.h:199
-#, fuzzy
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
-msgstr "Se %s for instruktioner."
+msgstr "Deaktivér brug af DB-instruktioner"
-#: config/c4x/c4x.h:201
-#, fuzzy
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
-msgstr "Aktivér stakprøvning"
+msgstr "Aktivér fejlanalyseringsinfo"
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
-msgstr ""
+msgstr "Deaktivér fejlanalyseringsinfo"
-#: config/c4x/c4x.h:205
+# RETMIG: hvad betyder hoisting? (det har noget med jage indlæsning af dem ud af registre)
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
-msgstr ""
+msgstr "Tving konstanter ind i registre for at forbedre hoisting"
-#: config/c4x/c4x.h:207
-#, fuzzy
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
-msgstr "talkonstant uden cifre"
+msgstr "Tving ikke konstanter ind i registre"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
-msgstr ""
+msgstr "Tving RTL-generering til at udsende gyldig 3-operandinstruktioner"
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
-msgstr ""
+msgstr "Tillad RTL-generering at udsende ugyldig 3-operandinstruktioner"
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
-msgstr ""
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr "Tillad iterationstællere uden fortegn for RPTB/DB"
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
-msgstr ""
+msgstr "Tillad ikke iterationstællere uden fortegn for RPTB/DB"
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
-msgstr ""
+msgstr "Bevar alle 40 bit af kommatalsregisteret på tværs af kald"
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
-msgstr ""
+msgstr "Bevar kun 32 bit af kommatalsregisteret på tværs af kald"
-#: config/c4x/c4x.h:221
-#, fuzzy
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
-msgstr "Se %s for instruktioner."
+msgstr "Aktivér parallelle instruktioner"
-#: config/c4x/c4x.h:223
-#, fuzzy
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
-msgstr "Se %s for instruktioner."
+msgstr "Deaktivér parallelle instruktioner"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
-msgstr ""
+msgstr "Aktivér instruktionerne MPY||ADD og MPY||SUB"
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
-msgstr ""
+msgstr "Deaktivér instruktionerne MPY||ADD og MPY||SUB"
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
-msgstr ""
+msgstr "Antag at henvisninger kan være aliaser"
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
-msgstr ""
+msgstr "Antag at henvisninger ikke kan være aliaser"
-#: config/c4x/c4x.h:321
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
-msgstr ""
+msgstr "Angiv maksimalt antal iterationer for RPTS"
-#: config/c4x/c4x.h:323
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
-msgstr ""
+msgstr "Vælg den processor der skal genereres kode til"
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-#, fuzzy
-msgid "Generate code for the C400"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr "uventet indekstype i cris_print_index"
-#: config/clipper/clipper.h:41
-#, fuzzy
-msgid "Generate code for the C300"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr "uventet grundtype in cris_print_base"
-#: config/convex/convex.h:52
-#, fuzzy
-msgid "Generate code for c1"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr "stakramme for stor: %d byte"
-#: config/convex/convex.h:53
-#, fuzzy
-msgid "Generate code for c2"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr "allokeret, men ubenyttet venteliste i afslutning"
-#: config/convex/convex.h:54
-#, fuzzy
-msgid "Generate code for c32"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "uventet funktionstype behøver stak justering for __builtin_eh_return"
-#: config/convex/convex.h:55 config/convex/convex.h:56
-#, fuzzy
-msgid "Generate code for c34"
-msgstr "Generér kode til en given cpu"
+#: config/cris/cris.c:1312
+msgid "invalid operand for 'b' modifier"
+msgstr "ugyldig operand til 'b'-ændring"
-#: config/convex/convex.h:58
-msgid "Use standard calling sequence, with arg count word"
-msgstr ""
+#: config/cris/cris.c:1324
+msgid "invalid operand for 'v' modifier"
+msgstr "ugyldig operand til 'v'-ændring"
-#: config/convex/convex.h:60
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr ""
+#: config/cris/cris.c:1334
+msgid "invalid operand for 'P' modifier"
+msgstr "ugyldig operand til 'P'-ændring"
-#: config/convex/convex.h:62
-msgid "Don't push arg count, depend on symbol table"
-msgstr ""
+#: config/cris/cris.c:1341
+msgid "invalid operand for 'p' modifier"
+msgstr "ugyldig operand til 'p'-ændring"
-#: config/convex/convex.h:64
-msgid "Use data cache for volatile mem refs (default)"
-msgstr ""
+#: config/cris/cris.c:1380
+msgid "invalid operand for 'z' modifier"
+msgstr "ugyldig operand til 'z'-ændring"
-#: config/convex/convex.h:66
-msgid "Don't use data cache for volatile mem refs"
-msgstr ""
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+msgid "invalid operand for 'H' modifier"
+msgstr "ugyldig operand til 'H'-ændring"
-#: config/convex/convex.h:68
-msgid "Bypass data cache for volatile mem refs"
-msgstr ""
+#: config/cris/cris.c:1417
+msgid "bad register"
+msgstr "ugyldigt register"
-#: config/convex/convex.h:69
-msgid "Use 64-bit longs"
-msgstr ""
+#: config/cris/cris.c:1455
+msgid "invalid operand for 'e' modifier"
+msgstr "ugyldig operand til 'e'-ændring"
-#: config/convex/convex.h:70
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr ""
+#: config/cris/cris.c:1472
+msgid "invalid operand for 'm' modifier"
+msgstr "ugyldig operand til 'm'-ændring"
-#: config/d30v/d30v.c:186
+#: config/cris/cris.c:1497
+msgid "invalid operand for 'A' modifier"
+msgstr "ugyldig operand til 'A'-ændring"
+
+#: config/cris/cris.c:1505
+msgid "invalid operand for 'D' modifier"
+msgstr "ugyldig operand til 'D'-ændring"
+
+#: config/cris/cris.c:1519
+msgid "invalid operand for 'T' modifier"
+msgstr "ugyldig operand til 'T'-ændring"
+
+#: config/cris/cris.c:1528
+msgid "invalid operand modifier letter"
+msgstr "ugyldigt operandændringsbogstav"
+
+#: config/cris/cris.c:1536
#, c-format
-msgid "Bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
-msgstr ""
+msgid "internal error: bad register: %d"
+msgstr "intern fejl: ugyldigt register: %d"
-#. This macro defines names of command options to set and clear bits in
-#. `target_flags'. Its definition is an initializer with a subgrouping for
-#. each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the option name, a
-#. number, which contains the bits to set in `target_flags', and a second
-#. string which is the description displayed by `--help'. If the number is
-#. negative then the bits specified by the number are cleared instead of being
-#. set. If the description string is present but empty, then no help
-#. information will be displayed for that option, but it will not count as an
-#. undocumented option. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. One of the subgroupings should have a null string. The number in this
-#. grouping is the default value for target_flags. Any target options act
-#. starting with that value.
-#.
-#. Here is an example which defines -m68000 and -m68020 with opposite meanings,
-#. and picks the latter as the default:
-#.
-#. #define TARGET_SWITCHES { { "68020", TARGET_MASK_68020, "" }, { "68000", -TARGET_MASK_68020, "Compile for the 68000" }, { "", TARGET_MASK_68020, "" }}
-#: config/d30v/d30v.h:447
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr "uventet multiplikativ operand"
+
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
+msgstr "uventet operand"
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+msgid "unrecognized address"
+msgstr "ukendt adresse"
+
+#: config/cris/cris.c:2005
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr "intern fejl: bivirkningsinstruktion påvirker hovedvirkning"
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr "intern fejl: cris_side_effect_mode_ok med ugyldige operander"
+
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+msgid "unrecognized supposed constant"
+msgstr "ukendt formodet konstant"
+
+#: config/cris/cris.c:2473
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr "ukendt formodet konstant i cris_global_pic_symbol"
+
+#: config/cris/cris.c:2492
+#, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr "-max-stackframe=%d er ikke brugbar mellem 0 og %d"
+
+#: config/cris/cris.c:2520
+#, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "ukendt CRIS-versionsspecifikation i -march= eller -mcpu=: %s"
+
+#: config/cris/cris.c:2556
+#, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "ukendt CRIS-versionsspecifikation i -mtune=: %s"
+
+#: config/cris/cris.c:2574
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "-fPIC og -fpic understøttes ikke af denne konfiguration"
+
+#: config/cris/cris.c:2590
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr "det bestemte '-g'-tilvalg er ugyldigt med -maout og -melinux"
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+msgid "unexpected side-effects in address"
+msgstr "uventede bivirkninger i adresse"
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr "uventet PIC-symbol"
+
+#: config/cris/cris.c:2970
+msgid "PIC register isn't set up"
+msgstr "PIC-register er ikke sat op"
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+msgid "unexpected address expression"
+msgstr "uventet adresseudtryk"
+
+#: config/cris/cris.c:3001
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr "udsender PIC-operand, men PIC-register er ikke sat op"
+
+#: config/cris/cris.c:3010
+msgid "unexpected NOTE as addr_const:"
+msgstr "uventet NOTE som addr_const:"
+
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "Oversæt for det Etrax 100-baserede elinux-system uden MMU"
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr "For elinux; forespørg en angivet stakstørrelse for dette program"
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "Oversæt for ETRAX 4 (CRIS v3)"
+
+#: config/cris/cris.h:345
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "Oversæt for ETRAX 100 (CRIS v8)"
+
+#: config/cris/cris.h:349
+msgid "Emit verbose debug information in assembly code"
+msgstr "Udsend fejlanalyseringsinfo i maskinkode"
+
+#: config/cris/cris.h:352
+msgid "Do not use condition codes from normal instructions"
+msgstr "Benyt ikke betingelseskoder fra normale instruktioner"
+
+#: config/cris/cris.h:356
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr "Udsend ikke adresseringstilstande med bivirkningstildeling"
+
+#: config/cris/cris.h:359
+msgid "Do not tune stack alignment"
+msgstr "Finjustér ikke stakjustering"
+
+#: config/cris/cris.h:362
+msgid "Do not tune writable data alignment"
+msgstr "Finjustér ikke justering af skrivbare data"
+
+#: config/cris/cris.h:365
+msgid "Do not tune code and read-only data alignment"
+msgstr "Finjustér ikke justering af kode og skrivebeskyttet data"
+
+#: config/cris/cris.h:374
+msgid "Align code and data to 32 bits"
+msgstr "Justér kode og data til 32 bit"
+
+#: config/cris/cris.h:387
+msgid "Don't align items in code or data"
+msgstr "Justér ikke elementer i kode eller data"
+
+#: config/cris/cris.h:390
+msgid "Do not emit function prologue or epilogue"
+msgstr "Udsend ikke funktionsindledning eller -afslutning"
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr "Benyt de tilvalg der giver de fleste faciliteter tilladt af andre tilvalg"
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+msgid "Override -mbest-lib-options"
+msgstr "Overskriv -mbest-lib-options"
+
+#: config/cris/cris.h:432
+msgid "Generate code for the specified chip or CPU version"
+msgstr "Generér kode til en given chip- eller processorversion"
+
+#: config/cris/cris.h:434
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "Finjustér justering til en given chip- eller processorversion"
+
+#: config/cris/cris.h:436
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr "Advar når en stakramme er større end den angivne størrelse"
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "ingen FUNCTION_PROFILER for CRIS"
+
+#: config/cris/linux.h:71
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr "Benyt ikke GOTPLT-referencer sammen med -fpic og -fPIC"
+
+#: config/d30v/d30v.c:207
+#, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr "ugyldig modes_tieable_p for register %s, mode1 %s, mode2 %s"
+
+#: config/d30v/d30v.c:2666
+msgid "bad insn to d30v_print_operand_address:"
+msgstr "ugyldig instruktion til d30v_print_operand_address:"
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr "ugyldig instruktion til d30v_print_operand_memory_reference:"
+
+#: config/d30v/d30v.c:2851
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'f'-ændring:"
+
+#: config/d30v/d30v.c:2860
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'A'-ændring:"
+
+#: config/d30v/d30v.c:2867
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'M'-ændring:"
+
+#: config/d30v/d30v.c:2921
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'F'- eller 'T'-ændring:"
+
+#: config/d30v/d30v.c:2932
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'B'-ændring:"
+
+#: config/d30v/d30v.c:2939
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'E'-ændring:"
+
+#: config/d30v/d30v.c:2957
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 'R'-ændring:"
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr "ugyldig instruktion til d30v_print_operand, 's'-ændring:"
+
+#: config/d30v/d30v.c:3003
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr "ugyldig instruktion til d30v_print_operand, 0 case"
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr "d30v_emit_comparison"
+
+#: config/d30v/d30v.c:3345
+msgid "bad call to d30v_move_2words"
+msgstr "ugyldigt kald af d30v_move_2words"
+
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
-msgstr ""
+msgstr "Aktivér brug af betingede flytteinstruktioner"
-#: config/d30v/d30v.h:450
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
-msgstr ""
+msgstr "Deaktivér brug af betingede flytteinstruktioner"
-#: config/d30v/d30v.h:453
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
-msgstr ""
+msgstr "Fejlanalyser parameterunderstøttelse i oversætteren"
-#: config/d30v/d30v.h:456
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
-msgstr ""
+msgstr "Fejlanalyser stakunderstøttelse i oversætteren"
-#: config/d30v/d30v.h:459
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
-msgstr ""
+msgstr "Fejlanalyser hukommelsesadresseunderstøttelse i oversætteren"
-#: config/d30v/d30v.h:462
-msgid "Make adjacent short instructions parallel if possible."
-msgstr ""
+#: config/d30v/d30v.h:129
+msgid "Make adjacent short instructions parallel if possible"
+msgstr "Gør nærliggende korte instruktioner parallelle om muligt"
-#: config/d30v/d30v.h:465
-msgid "Do not make adjacent short instructions parallel."
-msgstr ""
+#: config/d30v/d30v.h:132
+msgid "Do not make adjacent short instructions parallel"
+msgstr "Gør ikke nærliggende korte instruktioner parallelle"
-#: config/d30v/d30v.h:468 config/d30v/d30v.h:471
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
-msgstr ""
+msgstr "Sammenkæd program/data til at være i ekstern hukommelse som standard"
-#: config/d30v/d30v.h:474
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
-msgstr ""
+msgstr "Sammenkæd program/data til at være i hukommelsen på chippen som standard"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of command
-#. options that have values. Its definition is an initializer with a
-#. subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed part of
-#. the option name, the address of a variable, and a description string. The
-#. variable, type `char *', is set to the variable part of the given option if
-#. the fixed part matches. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. Here is an example which defines `-mshort-data-<number>'. If the given
-#. option is `-mshort-data-512', the variable `m88k_short_data' will be set to
-#. the string "512".
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data, "Specify the size of the short data section" } }
-#: config/d30v/d30v.h:501
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
-msgstr ""
+msgstr "Skift forgreningsomkostningen i oversætteren"
-#: config/d30v/d30v.h:504
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
-msgstr ""
+msgstr "Skift tærsklen for konvertering til betinget udførelse"
-#: config/dsp16xx/dsp16xx.c:1225 config/dsp16xx/dsp16xx.c:1250
-msgid "Stack size > 32k"
-msgstr "Stakstørrelse > 32k"
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+msgid "stack size > 32k"
+msgstr "stakstørrelse > 32k"
-#: config/dsp16xx/dsp16xx.c:1759 config/dsp16xx/dsp16xx.c:1999
-msgid "inline float constants not supported on this host"
-msgstr "integrerede kommatalskonstanter er ikke understøttede på denne vært"
+#: config/dsp16xx/dsp16xx.c:1678
+msgid "invalid addressing mode"
+msgstr "ugyldig adresseringstilstand"
-#. Output assembler code to FILE to increment profiler label # LABELNO
-#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1188 config/dsp16xx/dsp16xx.h:1193
-#: config/dsp16xx/dsp16xx.h:1198 config/dsp16xx/dsp16xx.h:1840
-#: config/dsp16xx/dsp16xx.h:1845
-msgid "Profiling not implemented yet."
-msgstr "Profilgenerering understøttes ikke endnu."
+#: config/dsp16xx/dsp16xx.c:1821
+msgid "bad register extension code"
+msgstr "ugyldig registerudvidelseskode"
-#. Emit RTL insns to initialize the variable parts of a trampoline.
-#. FNADDR is an RTX for the address of the function's pure code.
-#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1209 config/dsp16xx/dsp16xx.h:1221
-msgid "Trampolines not yet implemented"
-msgstr "Trampoliner understøttes ikke endnu"
+#: config/dsp16xx/dsp16xx.c:1921
+msgid "invalid offset in ybase addressing"
+msgstr "ugyldigt afsæt i ybase-adressering"
+
+#: config/dsp16xx/dsp16xx.c:1924
+msgid "invalid register in ybase addressing"
+msgstr "ugyldigt register i ybase-adressering"
+
+#: config/dsp16xx/dsp16xx.c:2099
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr "ugyldig skifteoperator i emit_1600_core_shift"
+
+#: config/dsp16xx/dsp16xx.c:2428
+msgid "invalid mode for gen_tst_reg"
+msgstr "ugyldig tilstand for gen_tst_reg"
+
+#: config/dsp16xx/dsp16xx.c:2500
+msgid "invalid mode for integer comparison in gen_compare_reg"
+msgstr "ugyldig tilstand for heltalssammenligning i gen_compare_reg"
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr ""
+#: config/dsp16xx/dsp16xx.h:230
+msgid "Pass parameters in registers (default)"
+msgstr "Overbring parametre i registre (standard)"
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr ""
+#: config/dsp16xx/dsp16xx.h:232
+msgid "Don't pass parameters in registers"
+msgstr "Overbring ikke parametre i registre"
+
+#: config/dsp16xx/dsp16xx.h:234
+msgid "Generate code for near calls"
+msgstr "Generér kode til nære kald"
+
+#: config/dsp16xx/dsp16xx.h:236
+msgid "Don't generate code for near calls"
+msgstr "Generér ikke kode til nære kald"
+
+#: config/dsp16xx/dsp16xx.h:238
+msgid "Generate code for near jumps"
+msgstr "Generér kode til nære spring"
+
+#: config/dsp16xx/dsp16xx.h:240
+msgid "Don't generate code for near jumps"
+msgstr "Generér ikke kode til nære spring"
+
+#: config/dsp16xx/dsp16xx.h:242
+msgid "Generate code for a bit-manipulation unit"
+msgstr "Generér kode til en bit-manipuleringsenhed"
+
+#: config/dsp16xx/dsp16xx.h:244
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr "Generér ikke kode til en bit-manipuleringsenhed"
+
+#: config/dsp16xx/dsp16xx.h:246
+msgid "Generate code for memory map1"
+msgstr "Generér kode til memory map1"
+
+#: config/dsp16xx/dsp16xx.h:248
+msgid "Generate code for memory map2"
+msgstr "Generér kode til memory map2"
+
+#: config/dsp16xx/dsp16xx.h:250
+msgid "Generate code for memory map3"
+msgstr "Generér kode til memory map3"
+
+#: config/dsp16xx/dsp16xx.h:252
+msgid "Generate code for memory map4"
+msgstr "Generér kode til memory map4"
+
+#: config/dsp16xx/dsp16xx.h:254
+msgid "Ouput extra code for initialized data"
+msgstr "Udsend ekstra kode til data med startværdier"
+
+#: config/dsp16xx/dsp16xx.h:256
+msgid "Don't let reg. allocator use ybase registers"
+msgstr "Lad ikke registerallokeringen benytte ybase-registre"
+
+#: config/dsp16xx/dsp16xx.h:258
+msgid "Output extra debug info in Luxworks environment"
+msgstr "Udsend ekstra fejlanalyseringsinfo i Luxworks-miljøet"
+
+#: config/dsp16xx/dsp16xx.h:260
+msgid "Save temp. files in Luxworks environment"
+msgstr "Gem midlertidige filer i Luxworks-miljøet"
-#: config/fr30/fr30.c:445
+#: config/dsp16xx/dsp16xx.h:272
+msgid "Specify alternate name for text section"
+msgstr "Angiv alternativt navn til tekstsektionen"
+
+#: config/dsp16xx/dsp16xx.h:274
+msgid "Specify alternate name for data section"
+msgstr "Angiv alternativt navn til datasektionen"
+
+#: config/dsp16xx/dsp16xx.h:276
+msgid "Specify alternate name for bss section"
+msgstr "Angiv alternativt navn til bss-sektionen"
+
+#: config/dsp16xx/dsp16xx.h:278
+msgid "Specify alternate name for constant section"
+msgstr "Angiv alternativt navn til konstantsektionen"
+
+#: config/dsp16xx/dsp16xx.h:280
+msgid "Specify alternate name for dsp16xx chip"
+msgstr "Angiv alternativt navn til dsp16xx-chippen"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+msgid "profiling not implemented yet"
+msgstr "profilering understøttes ikke endnu"
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+msgid "trampolines not yet implemented"
+msgstr "trampoliner understøttes ikke endnu"
+
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
-msgstr ""
+msgstr "fr30_print_operand_address: ikke-håndteret adresse"
-#: config/fr30/fr30.c:472
+#: config/fr30/fr30.c:480
#, c-format
-msgid "fr30_print_operand: unrecognised %p code"
-msgstr ""
-
-#: config/fr30/fr30.c:492
-msgid "fr30_print_operand: unrecognised %b code"
-msgstr ""
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "fr30_print_operand: ukendt '%%p'-kode"
-#: config/fr30/fr30.c:513
-msgid "fr30_print_operand: unrecognised %B code"
-msgstr ""
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "fr30_print_operand: ukendt '%%b'-kode"
#: config/fr30/fr30.c:521
-#, fuzzy
-msgid "fr30_print_operand: invalid operand to %A code"
-msgstr "ugyldig operand til '%N'-koden"
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "fr30_print_operand: ukendt '%%B'-kode"
-#: config/fr30/fr30.c:538
+#: config/fr30/fr30.c:529
#, c-format
-msgid "fr30_print_operand: invalid %x code"
-msgstr ""
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "fr30_print_operand: ugyldig operand til '%%A'-kode"
-#: config/fr30/fr30.c:545
-msgid "fr30_print_operand: invalid %F code"
-msgstr ""
+#: config/fr30/fr30.c:546
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "fr30_print_operand: ugyldig '%%x'-kode"
+
+#: config/fr30/fr30.c:553
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "fr30_print_operand: ugyldig '%%F'-kode"
-#: config/fr30/fr30.c:561
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
-msgstr ""
+msgstr "fr30_print_operand: ukendt kode"
-#: config/fr30/fr30.c:590 config/fr30/fr30.c:599 config/fr30/fr30.c:610
-#: config/fr30/fr30.c:623
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
-msgstr ""
+msgstr "fr30_print_operand: ikke-håndteret MEM"
-#: config/fr30/fr30.h:85
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
-msgstr ""
+msgstr "Antag lille adresserum"
-#: config/h8300/h8300.c:116
-#, fuzzy
-msgid "-ms2600 is used without -ms."
-msgstr "makroen '%s' kaldt uden parametre"
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "Ukendt processor: -mcpu=%s"
-#: config/h8300/h8300.c:3047 config/h8300/h8300.c:3059
-msgid "Only initialized variables can be placed into the 8-bit area."
-msgstr ""
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr "-fpic og -gdwarf er indbyrdes uforenelige (-fpic og -g/-gdwarf-2 er i orden)"
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "Ugyldig instruktion til frv_print_operand_address:"
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "Ugyldigt register til frv_print_operand_memory_reference_reg:"
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "Ugyldig instruktion til frv_print_operand_memory_reference:"
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "Ugyldig instruktion i frv_print_operand, ugyldig const_double"
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "Ugyldig instruktionen til frv_print_operand, 'C'-modifikation:"
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'c'-modifikation:"
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'e'-modifikation:"
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'F'-modifikation:"
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'f'-modifikation:"
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'L'-modifikation:"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'M/N'-modifikation:"
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, 'O'-modifikation:"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "Ugyldig instruktion til frv_print_operand, P-modifikation:"
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "Ugyldig instruktion i frv_print_operand, tilfældet z"
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "Ugyldig instruktion i frv_print_operand, tilfældet 0"
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr "fr_print_operand: ukendt kode"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr "Ugyldig output_move_single-operand"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr "Ugyldig output_move_double-operand"
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr "Ugyldig output_condmove_single-operand"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr "frv_registers_update"
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr "frv_registers_used_p"
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr "frv_registers_set_p"
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr "akkumulator er ikke et konstant heltal"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr "akkumulatortal er uden for det gyldig interval"
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "forkert akkumulator for '%s'"
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr "'%s' forventer en konstant parameter"
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "konstant parameter uden for det gyldige interval for '%s'"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr "mediafunktioner er ikke tilgængelige medmindre -mmedia benyttes"
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr "denne mediafunktion er kun tilgængelig på fr500"
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr "denne mediafunktion er kun tilgængelig på fr400"
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr " (frv)"
+
+#: config/h8300/h8300.c:314
+msgid "-ms2600 is used without -ms"
+msgstr "-ms2600 benyttet uden -ms"
+
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr "-mn benyttet uden -mh eller -ms"
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:108
-msgid "Generate H8/S code"
-msgstr ""
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
+msgstr "Generér H8S-kode"
-#: config/h8300/h8300.h:109
-#, fuzzy
-msgid "Do not generate H8/S code"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
+msgstr "Generér ikke H8S-kode"
-#: config/h8300/h8300.h:110
-msgid "Generate H8/S2600 code"
-msgstr ""
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr "Generér H8S/2600-kode"
-#: config/h8300/h8300.h:111
-msgid "Do not generate H8/S2600 code"
-msgstr ""
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
+msgstr "Generér ikke H8S/2600-kode"
-#: config/h8300/h8300.h:112
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
-msgstr ""
+msgstr "Gør heltal 32 bit brede"
-#: config/h8300/h8300.h:115
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
-msgstr ""
+msgstr "Benyt registre til parameteroverbringning"
-#: config/h8300/h8300.h:117
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
-msgstr ""
+msgstr "Benyt ikke registre til parameteroverbringning"
-#: config/h8300/h8300.h:119
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
-msgstr ""
+msgstr "Betragt tilgang til bytestørrelseshukommelse som langsomt"
-#: config/h8300/h8300.h:120
-#, fuzzy
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
-msgstr "Aktivér stakprøvning"
+msgstr "Aktivér tolerant sammenkædning"
-#: config/h8300/h8300.h:122
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
-msgstr ""
+msgstr "Generér H8/300H-kode"
+
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr "Aktivér den normale tilstand"
-#: config/h8300/h8300.h:123
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
-msgstr ""
+msgstr "Generér ikke H8/300H-kode"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
-msgstr ""
+msgstr "Benyt H8/300-justeringsregler"
-#: config/i370/i370.c:869
+#: config/i370/i370-c.c:53
+msgid "junk at end of #pragma map"
+msgstr "ragelse i slutningen af #pragma map"
+
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
+msgstr "forkert udformet '#pragma map' - ignoreret"
+
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
-msgstr ""
+msgstr "rigtigt navn for langt - alias ignoreret"
-#: config/i370/i370.c:874
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
-msgstr ""
+msgstr "aliasnavn for langt - alias ignoreret"
-#: config/i370/i370.c:1039
-#, fuzzy
-msgid "junk at end of #pragma map"
-msgstr "ragelse i slutningen af #%s"
-
-#: config/i370/i370.c:1045
-#, fuzzy
-msgid "malformed #pragma map, ignored"
-msgstr "forkert udformet #pragma-direktiv"
+#: config/i370/i370.c:1191
+msgid "internal error--no jump follows compare:"
+msgstr "intern fejl - intet spring efterfølger sammenligning:"
#. Macro to define tables used to set the flags. This is a list in braces
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
-#, fuzzy
+#: config/i370/i370.h:75
msgid "Generate char instructions"
-msgstr "Se %s for instruktioner."
+msgstr "Generér char-instruktioner"
-#: config/i370/i370.h:64
-#, fuzzy
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
-
-#: config/i386/cygwin.h:49
-msgid "Use the Cygwin interface"
-msgstr ""
+msgstr "Generér ikke char-instruktioner"
-#: config/i386/cygwin.h:51
-msgid "Use the Mingw32 interface"
-msgstr ""
+#: config/i386/i386.c:1050
+#, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
-#: config/i386/cygwin.h:52
-msgid "Create GUI application"
-msgstr ""
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mcmodel="
-#: config/i386/cygwin.h:53
-msgid "Don't set Windows defines"
-msgstr ""
+#: config/i386/i386.c:1075
+#, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -masm="
-#: config/i386/cygwin.h:54
-msgid "Set Windows defines"
-msgstr ""
+#: config/i386/i386.c:1078
+#, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr "kodemodellen %s er ikke understøttet i %s bit-tilstand"
-#: config/i386/cygwin.h:56
-msgid "Create console application"
-msgstr ""
+#: config/i386/i386.c:1081
+msgid "code model `large' not supported yet"
+msgstr "kodemodellen 'large' er ikke understøttet endnu"
-#: config/i386/cygwin.h:57 config/i386/win32.h:59
-#, fuzzy
-msgid "Generate code for a DLL"
-msgstr "Generér kode til en given cpu"
+#: config/i386/i386.c:1083
+#, c-format
+msgid "%i-bit mode not compiled in"
+msgstr "%i bit-tilstand er ikke oversat med ind"
-#: config/i386/cygwin.h:59 config/i386/win32.h:61
-msgid "Ignore dllimport for functions"
-msgstr ""
+#: config/i386/i386.c:1113
+#, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -march="
-#: config/i386/cygwin.h:61
-msgid "Use Mingw-specific thread support"
-msgstr ""
+#: config/i386/i386.c:1124
+#, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
-#: config/i386/cygwin.h:313
+#: config/i386/i386.c:1141
#, c-format
-msgid "-f%s ignored for target (all code is position independent)"
-msgstr ""
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-mregparm=%d er ikke mellem 0 og %d"
+
+#: config/i386/i386.c:1154
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-malign-loops er forældet, benyt -falign-loops"
-#: config/i386/dgux.c:185
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
-msgid "Internal gcc abort from %s:%d"
-msgstr "Internt gcc-afbrydelse fra %s:%d"
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-malign-loops=%d er ikke mellem 0 og %d"
-#: config/i386/dgux.c:189
-msgid "The local variable `insn' has the value:"
-msgstr "Den lokale variabel 'insn' har værdien:"
+#: config/i386/i386.c:1167
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-malign-jumps er forældet, benyt -falign-jumps"
-#: config/i386/dgux.h:62
-msgid "Retain standard MXDB information"
-msgstr ""
+#: config/i386/i386.c:1180
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-malign-functions er forældet, benyt -falign-functions"
-#: config/i386/dgux.h:64
-#, fuzzy
-msgid "Retain legend information"
-msgstr "ikke tilstrækkelig information om typen"
+#: config/i386/i386.c:1218
+#, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12"
-#: config/i386/dgux.h:67
-#, fuzzy
-msgid "Generate external legend information"
-msgstr "ikke tilstrækkelig information om typen"
+#: config/i386/i386.c:1230
+#, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr "-mbranch-cost=%d er ikke mellem 0 og 5"
-#: config/i386/dgux.h:69
-msgid "Emit identifying info in .s file"
-msgstr ""
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mtls-dialect"
-#: config/i386/dgux.h:71
-msgid "Warn when a function arg is a structure"
-msgstr ""
+#: config/i386/i386.c:1263
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-malign-double giver ikke mening i 64 bit-tilstand"
-#: config/i386/dgux.h:249
-msgid "argument is a structure"
-msgstr ""
+#: config/i386/i386.c:1265
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "kaldekonventionen -mrtd er ikke understøttet i 64 bit-tilstand"
-#: config/i386/djgpp.h:286
-msgid "-mbnu210 is ignored (option is obsolete)."
-msgstr ""
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "SSE-instruktionssæt deaktiveret, bruger 387-beregninger"
-#: config/i386/i386.c:558
+#: config/i386/i386.c:1297
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "387-instruktionssæt deaktiveret, bruger SSE-beregninger"
+
+#: config/i386/i386.c:1304
#, c-format
-msgid "bad value (%s) for -march= switch"
-msgstr "Ugyldig værdi (%s) til '-march='-tilvalget"
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mfpmath="
-#: config/i386/i386.c:570 config/mips/mips.c:4935
+#: config/i386/i386.c:1436
#, c-format
-msgid "bad value (%s) for -mcpu= switch"
-msgstr "Ugyldig værdi (%s) til '-mcpu='-tilvalget"
+msgid "`%s' attribute requires an integer constant argument"
+msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
-#: config/i386/i386.c:601
+#: config/i386/i386.c:1442
#, c-format
-msgid "Register '%c' is unknown"
-msgstr "Registret '%c' er ukendt"
+msgid "argument to `%s' attribute larger than %d"
+msgstr "parameter til egenskaben '%s' er større end %d"
-#: config/i386/i386.c:607
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
+msgid "invalid UNSPEC as operand"
+msgstr "ugyldig UNSPEC som operand"
+
+#: config/i386/i386.c:6648
+msgid "extended registers have no high halves"
+msgstr "udvidede registre har ikke høje halvdele"
+
+#: config/i386/i386.c:6663
+msgid "unsupported operand size for extended register"
+msgstr "ikke-understøttet operandstørrelse for udvidede registre"
+
+#: config/i386/i386.c:6978
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr "operand er hverken en konstant eller en betingelseskode, ugyldig operandkode 'c'"
+
+#: config/i386/i386.c:7024
#, c-format
-msgid "Register '%c' already specified in allocation order"
-msgstr "Registret '%c' er allerede angivet i tildelingsordenen"
+msgid "invalid operand code `%c'"
+msgstr "ugyldig operandkode '%c'"
+
+#: config/i386/i386.c:7071
+msgid "invalid constraints for operand"
+msgstr "ugyldige begrænsninger for operand"
-#: config/i386/i386.c:620
+#: config/i386/i386.c:11271
+msgid "unknown insn mode"
+msgstr "ukendt instruktionstilstand"
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
+msgstr "vælger skal være en umiddelbar værdi"
+
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
+msgstr "maske skal være en umiddelbar værdi"
+
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr "skifteværdi skal være en umiddelbar værdi"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "'auto' er påhæftet funktionsdefinitionen"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "statisk variabel '%s' er markeret dllimport"
+
+#: config/i386/winnt.c:123
#, c-format
-msgid "-mregparm=%d is not between 0 and %d"
-msgstr "-mregparm=%d er ikke mellem 0 og %d"
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
-#: config/i386/i386.c:631
+#: config/i386/winnt.c:143
#, c-format
-msgid "-malign-loops=%d is not between 0 and %d"
-msgstr "-malign-loops=%d er ikke mellem 0 og %d"
+msgid "`%s' attribute only applies to variables"
+msgstr "egenskaben '%s' kan kun anvendes på variabler"
-#: config/i386/i386.c:642
+#: config/i386/winnt.c:242
#, c-format
-msgid "-malign-jumps=%d is not between 0 and %d"
-msgstr "-malign-jumps=%d er ikke mellem 0 og %d"
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
-#: config/i386/i386.c:653
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "funktionen '%s' omerklæret med egenskaben noinline"
+
+#: config/i386/winnt.c:263
#, c-format
-msgid "-malign-functions=%d is not between 0 and %d"
-msgstr "-malign-functions=%d er ikke mellem 0 og %d"
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
-#: config/i386/i386.c:666
+#: config/i386/winnt.c:322
#, c-format
-msgid "-mpreferred-stack-boundary=%d is not between 2 and 31"
-msgstr "-mpreferred-stack-boundary=%d er ikke mellem 2 og 31"
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
-#: config/i386/i386.c:677
+#: config/i386/winnt.c:364
#, c-format
-msgid "-mbranch-cost=%d is not between 0 and 5"
-msgstr "-mbranch-cost=%d er ikke mellem 0 og 5"
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr "'%s' erklæret som både eksporteret til og importeret fra en DLL"
-#. We can't handle floating point constants;
-#. PRINT_OPERAND must handle them.
-#: config/i386/i386.c:3124 config/pdp11/pdp11.c:1477 final.c:3676
-msgid "floating constant misused"
-msgstr "kommatalskonstant misbrugt"
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
-#: config/i386/i386.c:3169
-msgid "invalid UNSPEC as operand"
-msgstr "ugyldig UNSPEC som operand"
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
-#: config/i386/i386.c:3175 config/pdp11/pdp11.c:1524 final.c:3731
-msgid "invalid expression as operand"
-msgstr "ugyldigt udtryk som operand"
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr "Benyt Cygwin-grænsefladen"
-#. @@@ better error message
-#: config/i386/i386.c:8457 config/i386/i386.c:8490 config/i386/i386.c:8627
-msgid "selector must be an immediate"
-msgstr ""
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr "Benyt Mingw32-grænsefladen"
-#. @@@ better error message
-#: config/i386/i386.c:8658 config/i386/i386.c:8686
-msgid "mask must be an immediate"
-msgstr ""
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr "Opret grafisk program"
-#: config/i386/i386.h:45 config/mips/mips.h:176
-msgid "half-pic init called on systems that don't support it."
-msgstr "half-pic klargøring kaldes på systemer der ikke understøtter det."
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
+msgstr "Angiv ikke Windows-definitioner"
-#: config/i386/i386.h:238
-msgid "Same as -mcpu=i386"
-msgstr "Magen til -mcpu=i386"
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr "Angiv Windows-definitioner"
-#: config/i386/i386.h:239
-msgid "Same as -mcpu=i486"
-msgstr "Magen til -mcpu=i486"
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr "Opret konsolprogram"
-#: config/i386/i386.h:240
-msgid "Same as -mcpu=pentium"
-msgstr "Magen til -mcpu=pentium"
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr "Generér kode til en DLL"
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr "Ignorér dllimport til funktioner"
-#: config/i386/i386.h:241
-msgid "Same as -mcpu=pentiumpro"
-msgstr "Magen til -mcpu=pentiumpro"
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr "Benyt Mingw-specifik trådunderstøttelse"
-#: config/i386/i386.h:243
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "-f%s ignoreret for målarkitekturen (all kode er positionsuafhængigt)"
+
+#: config/i386/djgpp.h:206
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-mbnu210 ignoreres (tilvalget er forældet)"
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr "Alternativ kaldekonvention"
-#: config/i386/i386.h:245 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Brug normal kaldekonvention"
-#: config/i386/i386.h:247
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr "Justér nogle double-variabler til dword-grænserne"
-#: config/i386/i386.h:249
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr "Justér double-variabler til word-grænserne"
-#: config/i386/i386.h:251
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr "Lokale variabler uden startværdi i .bss"
-#: config/i386/i386.h:253
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr "Lokale variabler uden startværdi i .data"
-#: config/i386/i386.h:255
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Brug IEEE-matematik til kommatalssammenligninger"
-#: config/i386/i386.h:257
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
-msgstr "Brug ikke IEEE-regning til kommatalssammenligninger"
+msgstr "Brug ikke IEEE-matematik til kommatalssammenligninger"
-#: config/i386/i386.h:259
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr "Returnér værdier fra funktioner i fpu-registre"
-#: config/i386/i386.h:261
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr "Returnér ikke værdier fra funktioner i fpu-registre"
-#: config/i386/i386.h:263
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "Generér ikke sin, cos, sqrt til fpu"
-#: config/i386/i386.h:265
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generér sin, cos og sqrt til fpu"
-#: config/i386/i386.h:267
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr "Udelad rammehenvisningen i de yderste funktioner"
-#. undocumented
-#. undocumented
-#. undocumented
-#. undocumented
-#: config/i386/i386.h:274
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr "Aktivér stakprøvning"
#. undocumented
#. undocumented
-#: config/i386/i386.h:279
-msgid "Emit Intel syntax assembler opcodes"
-msgstr "Konstruer instruktionerne til maskinkodeoversætteren med Intel-syntaks"
-
-#: config/i386/i386.h:282
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr "Justér strengoperationernes destination"
-#: config/i386/i386.h:284
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr "Justér ikke strengoperationernes destination"
-#: config/i386/i386.h:286
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
-msgstr "Integrér alle kendte strengoperationer"
+msgstr "Indbyg alle kendte strengoperationer"
-#: config/i386/i386.h:288
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
-msgstr "Integrér ikke alle kendte strengoperationer"
+msgstr "Indbyg ikke alle kendte strengoperationer"
-#: config/i386/i386.h:290 config/i386/i386.h:294
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr "Brug push-instruktioner til at gemme udgående parametre"
-#: config/i386/i386.h:292 config/i386/i386.h:296
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
-#: config/i386/i386.h:298
-msgid "sizeof(long double) is 16."
-msgstr ""
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#: config/i386/i386.h:354
+msgid "Support MMX built-in functions"
+msgstr "Understøt indbyggede MMX-funktioner"
-#: config/i386/i386.h:300
-msgid "sizeof(long double) is 12."
-msgstr ""
+#: config/i386/i386.h:356
+msgid "Do not support MMX built-in functions"
+msgstr "Understøt ikke indbyggede MMX-funktioner"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#: config/i386/i386.h:358
+msgid "Support 3DNow! built-in functions"
+msgstr "Understøt indbyggede 3DNow!-funktioner"
+
+#: config/i386/i386.h:360
+msgid "Do not support 3DNow! built-in functions"
+msgstr "Understøt ikke indbyggede 3DNow!-funktioner"
+
+#: config/i386/i386.h:362
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Understøt indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#: config/i386/i386.h:364
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr "Understøt ikke indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#: config/i386/i386.h:366
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Understøt indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
+
+#: config/i386/i386.h:368
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Understøt ikke indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
+
+#: config/i386/i386.h:370
+msgid "sizeof(long double) is 16"
+msgstr "sizeof(long double) er 16"
+
+#: config/i386/i386.h:372
+msgid "sizeof(long double) is 12"
+msgstr "sizeof(long double) er 12"
+
+#: config/i386/i386.h:374
+msgid "Generate 64bit x86-64 code"
+msgstr "Generér 64 bit x86-64-kode"
+
+#: config/i386/i386.h:376
+msgid "Generate 32bit i386 code"
+msgstr "Generér 64 bit i386-kode"
+
+#: config/i386/i386.h:378
+msgid "Use red-zone in the x86-64 code"
+msgstr "Benyt rødzone i x86-64-koden"
+
+#: config/i386/i386.h:380
+msgid "Do not use red-zone in the x86-64 code"
+msgstr "Benyt ikke rødzone i x86-64-koden"
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
@@ -5110,147 +10718,125 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:333 config/rs6000/rs6000.h:402 config/sparc/sparc.h:710
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
-msgstr "Planlæg koden til en given cpu"
+msgstr "Planlæg koden til en given processor"
-#: config/i386/i386.h:335
-msgid "Generate code for given CPU"
-msgstr "Generér kode til en given cpu"
+#: config/i386/i386.h:411
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Generér kommatalsmatematik vha. givent instruktionssæt"
-#: config/i386/i386.h:337
-msgid "Control allocation order of integer registers"
-msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
+#: config/i386/i386.h:413
+msgid "Generate code for given CPU"
+msgstr "Generér kode til en given processor"
-#: config/i386/i386.h:339
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr "Antallet af registre der skal bruges til at overbringe heltalsparametre"
-#: config/i386/i386.h:341
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "Løkkekode skal justeres til denne potens af 2"
-#: config/i386/i386.h:343
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "Steder der skal springes til, justeres til denne potens af 2"
-#: config/i386/i386.h:345
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "Funktionsbegyndelser justeres til denne potens af 2"
-#: config/i386/i386.h:348
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Forsøg at holde stakken justeret til denne potens af 2"
-#: config/i386/i386.h:350
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Forgreninger koster dette (1-5, vilkårlige enheder)"
-#: config/i386/osf1elf.h:111
-msgid "Profiling uses mcount"
-msgstr ""
+#: config/i386/i386.h:428
+msgid "Use given x86-64 code model"
+msgstr "Benyt den givne x86-64-kodemodel"
-#: config/i386/osfrose.h:63
-msgid "Emit half-PIC code"
-msgstr ""
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+msgid "Use given assembler dialect"
+msgstr "Benyt den givne maskinkodedialekt"
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:70
-msgid "Emit ELF object code"
-msgstr ""
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr "Benyt den givne tråd-lokale lagringsdialekt"
-#: config/i386/osfrose.h:72
-msgid "Emit ROSE object code"
-msgstr ""
-
-#: config/i386/osfrose.h:74
-msgid "Symbols have a leading underscore"
-msgstr ""
-
-#: config/i386/osfrose.h:77
-#, fuzzy
-msgid "Align to >word boundaries"
-msgstr "Justér double-variabler til word-grænserne"
-
-#: config/i386/osfrose.h:80
-msgid "Use mcount for profiling"
-msgstr ""
-
-#: config/i386/osfrose.h:82
-msgid "Use mcount_ptr for profiling"
-msgstr ""
-
-#: config/i386/sco5.h:887
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
-msgstr ""
+msgstr "Generér ELF-uddata"
#: config/i386/win32.h:53
msgid "Use Mingw32 interface"
-msgstr ""
+msgstr "Benyt Mingw32-grænseflade"
#: config/i386/win32.h:55
msgid "Use Cygwin interface"
-msgstr ""
+msgstr "Benyt Cygwin-grænseflade"
#: config/i386/win32.h:57
msgid "Use bare Windows interface"
-msgstr ""
-
-#: config/i386/winnt.c:311
-#, c-format
-msgid "`%s' declared as both exported to and imported from a DLL."
-msgstr "'%s' erklæret som både eksporteret til og importeret fra en dll."
+msgstr "Benyt bar Windows-grænseflade"
#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
-#: config/i386/xm-djgpp.h:75
-msgid "Environment variable DJGPP not defined."
-msgstr ""
+#: config/i386/xm-djgpp.h:71
+msgid "environment variable DJGPP not defined"
+msgstr "miljøvariablen DJGPP er ikke defineret"
-#: config/i386/xm-djgpp.h:77
+#: config/i386/xm-djgpp.h:73
#, c-format
-msgid "Environment variable DJGPP points to missing file '%s'."
-msgstr ""
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "miljøvariablen DJGPP peger på den manglende fil '%s'"
-#: config/i386/xm-djgpp.h:80
+#: config/i386/xm-djgpp.h:76
#, c-format
-msgid "Environment variable DJGPP points to corrupt file '%s'."
-msgstr ""
-
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-#, fuzzy
-msgid "Generate code which uses the FPU"
-msgstr "Generér kode til en given cpu"
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "miljøvariablen DJGPP peger på den ødelagte fil '%s'"
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-#, fuzzy
-msgid "Do not generate code which uses the FPU"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
-
-#: config/i960/i960.c:122
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
-msgstr ""
+msgstr "desværre, ikke implementeret: #pragma align NAVN=STØRRELSE"
-#: config/i960/i960.c:127
-#, fuzzy
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
-msgstr "forkert udformet #pragma-direktiv"
+msgstr "forkert udformet '#pragma align' - ignoreret"
-#: config/i960/i960.c:165
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
-msgstr ""
+msgstr "desværre, ikke implementeret: #pragma noalign NAVN"
-#: config/i960/i960.c:1513 config/m68k/m68k.c:407 config/rs6000/rs6000.c:5520
-#, fuzzy
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "modstridende arkitekturer defineret - bruger C-serien"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "modstridende arkitekturer defineret - bruger K-serien"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 og iC3.0 er inkompatible - bruger iC3.0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+msgstr "stakgrænseudtryk understøttes ikke"
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
@@ -5259,374 +10845,451 @@ msgstr "stakgrænser understøttes ikke på målarkitekturen"
#. An empty string NAME is used to identify the default VALUE.
#. ??? Not all ten of these architecture variations actually exist, but I
#. am not sure which are real and which aren't.
-#: config/i960/i960.h:241
-#, fuzzy
+#: config/i960/i960.h:240
msgid "Generate SA code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér SA-kode"
-#: config/i960/i960.h:244
-#, fuzzy
+#: config/i960/i960.h:243
msgid "Generate SB code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér SB-kode"
#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
-#: config/i960/i960.h:249
-#, fuzzy
+#: config/i960/i960.h:248
msgid "Generate KA code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér KA-kode"
-#: config/i960/i960.h:252
-#, fuzzy
+#: config/i960/i960.h:251
msgid "Generate KB code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér KB-kode"
#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
-#: config/i960/i960.h:257
-#, fuzzy
+#: config/i960/i960.h:256
msgid "Generate JA code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér JA-kode"
-#: config/i960/i960.h:259
-#, fuzzy
+#: config/i960/i960.h:258
msgid "Generate JD code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér JD-kode"
-#: config/i960/i960.h:262
-#, fuzzy
+#: config/i960/i960.h:261
msgid "Generate JF code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér JF-kode"
-#: config/i960/i960.h:264
+#: config/i960/i960.h:263
msgid "generate RP code"
-msgstr ""
+msgstr "Generér RP-kode"
-#: config/i960/i960.h:267
-#, fuzzy
+#: config/i960/i960.h:266
msgid "Generate MC code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér MC-kode"
-#: config/i960/i960.h:270
-#, fuzzy
+#: config/i960/i960.h:269
msgid "Generate CA code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér CA-kode"
#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
-#: config/i960/i960.h:280
-#, fuzzy
+#: config/i960/i960.h:279
msgid "Generate CF code"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér CF-kode"
+
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Benyt softwarekommatal"
-#: config/i960/i960.h:286
+#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
-msgstr ""
+msgstr "Benyt alternative elementer til yderste funktioner"
-#: config/i960/i960.h:288
-#, fuzzy
+#: config/i960/i960.h:287
msgid "Do not use alternate leaf function entries"
-msgstr "Returnér ikke værdier fra funktioner i fpu-registre"
+msgstr "Benyt ikke alternative elementer til yderste funktioner"
-#: config/i960/i960.h:290
+#: config/i960/i960.h:289
msgid "Perform tail call optimization"
-msgstr ""
+msgstr "Udfør halekaldsoptimering"
-#: config/i960/i960.h:292
+#: config/i960/i960.h:291
msgid "Do not perform tail call optimization"
-msgstr ""
+msgstr "Udfør ikke halekaldsoptimering"
-#: config/i960/i960.h:294
-#, fuzzy
+#: config/i960/i960.h:293
msgid "Use complex addressing modes"
-msgstr "Ugyldig adresseringstilstand"
+msgstr "Benyt komplekse adresseringstilstande"
-#: config/i960/i960.h:296
-#, fuzzy
+#: config/i960/i960.h:295
msgid "Do not use complex addressing modes"
-msgstr "Ugyldig adresseringstilstand"
+msgstr "Benyt ikke komplekse adresseringstilstande"
-#: config/i960/i960.h:298
-#, fuzzy
+#: config/i960/i960.h:297
msgid "Align code to 8 byte boundary"
-msgstr "Justér double-variabler til word-grænserne"
+msgstr "Justér kode til 8 byte-grænser"
-#: config/i960/i960.h:300
+#: config/i960/i960.h:299
msgid "Do not align code to 8 byte boundary"
-msgstr ""
+msgstr "Justér ikke kode til 8 byte-grænser"
#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
-#: config/i960/i960.h:306 config/i960/i960.h:308
+#: config/i960/i960.h:305 config/i960/i960.h:307
msgid "Enable compatibility with iC960 v2.0"
-msgstr ""
+msgstr "Aktivér kompatibilitet med iC960 v2.0"
-#: config/i960/i960.h:310
+#: config/i960/i960.h:309
msgid "Enable compatibility with iC960 v3.0"
-msgstr ""
+msgstr "Aktivér kompatibilitet med iC960 v3.0"
-#: config/i960/i960.h:312 config/i960/i960.h:314
+#: config/i960/i960.h:311 config/i960/i960.h:313
msgid "Enable compatibility with ic960 assembler"
-msgstr ""
+msgstr "Aktivér kompatibilitet med ic960-maskinkodeoversætteren"
-#: config/i960/i960.h:316
+#: config/i960/i960.h:315
msgid "Do not permit unaligned accesses"
-msgstr ""
+msgstr "Tillad ikke ikke-justeret adgang"
-#: config/i960/i960.h:318
+#: config/i960/i960.h:317
msgid "Permit unaligned accesses"
-msgstr ""
+msgstr "Tillad ikke-justeret adgang"
-#: config/i960/i960.h:320
+#: config/i960/i960.h:319
msgid "Layout types like Intel's v1.3 gcc"
-msgstr ""
+msgstr "Sammensæt typer som Intels v1.3 gcc"
-#: config/i960/i960.h:322
+#: config/i960/i960.h:321
msgid "Do not layout types like Intel's v1.3 gcc"
-msgstr ""
+msgstr "Sammensæt ikke typer som Intels v1.3 gcc"
-#: config/i960/i960.h:324 config/rs6000/sysv4.h:128 config/sparc/linux.h:83
-#: config/sparc/linux64.h:139
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
-msgstr ""
+msgstr "Benyt 64 bit long double"
-#: config/i960/i960.h:326
+#: config/i960/i960.h:325
msgid "Enable linker relaxation"
-msgstr ""
+msgstr "Aktivér tolerant sammenkæder"
-#: config/i960/i960.h:328
+#: config/i960/i960.h:327
msgid "Do not enable linker relaxation"
-msgstr ""
+msgstr "Aktivér ikke tolerant sammenkæder"
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:343 config/i960/i960.h:353
-msgid "conflicting architectures defined - using C series"
-msgstr ""
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr "forkert udformet '#pragma builtin'"
-#: config/i960/i960.h:348
-msgid "conflicting architectures defined - using K series"
-msgstr ""
-
-#: config/i960/i960.h:363
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr ""
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:374
-#, fuzzy
-msgid "The -mlong-double-64 option does not work yet."
-msgstr "Understøttelsen af -mabi=32 virker ikke endnu"
-
-#: config/ia64/ia64.c:3413
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
-msgstr ""
+msgstr "ia64_print_operand: ukendt kode"
-#: config/ia64/ia64.c:3651
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
-msgstr ""
-
-#: config/ia64/ia64.c:3663 config/ia64/ia64.c:3670 regclass.c:714
-#, fuzzy, c-format
-msgid "unknown register name: %s"
-msgstr "ukendt registernavn '%s' i 'asm'"
+msgstr "værdien af -mfixed-range skal være på formen REG1-REG2"
-#: config/ia64/ia64.c:3678
-#, fuzzy, c-format
+#: config/ia64/ia64.c:4319
+#, c-format
msgid "%s-%s is an empty range"
-msgstr "%s=%s er for stor."
+msgstr "%s-%s er et tomt interval"
-#: config/ia64/ia64.c:3743
-msgid "cannot optimize division for both latency and throughput"
-msgstr ""
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "kan ikke optimere kommatalsdivision for både ventetid og båndbredde"
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "kan ikke optimere heltalsdivision for både ventetid og båndbredde"
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "ugyldig værdi (%s) for tilvalget -mtls-size="
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:110
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
-msgstr ""
+msgstr "Generér storendet kode"
-#: config/ia64/ia64.h:112 config/mcore/mcore.h:164
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
-msgstr ""
+msgstr "Generér lilleendet kode"
-#: config/ia64/ia64.h:114
-#, fuzzy
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til GNU as"
-#: config/ia64/ia64.h:116
-#, fuzzy
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til Intel as"
-#: config/ia64/ia64.h:118
-#, fuzzy
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til GNU ld"
-#: config/ia64/ia64.h:120
-#, fuzzy
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til Intel ld"
-#: config/ia64/ia64.h:122
-#, fuzzy
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode uden GP-registeret"
-#: config/ia64/ia64.h:124
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
-msgstr ""
+msgstr "Udsend stopbit før og efter volatile udvidede asm-sætninger"
-#: config/ia64/ia64.h:126
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
-msgstr ""
+msgstr "Udsend ikke stopbit før og efter volatile udvidede asm-sætninger"
-#: config/ia64/ia64.h:128
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
-msgstr ""
+msgstr "Udsend kode for Itanium (TM) processor B-skridt"
-#: config/ia64/ia64.h:130
-#, fuzzy
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
-msgstr "ukendt registernavn '%s'"
+msgstr "Benyt in/loc/out-registernavne"
-#: config/ia64/ia64.h:132
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
-msgstr ""
+msgstr "Deaktivér brug af sdata/scommon/sbss"
-#: config/ia64/ia64.h:134
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
-msgstr ""
+msgstr "Aktivér brug af sdata/scommon/sbss"
-#: config/ia64/ia64.h:136
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
-msgstr ""
+msgstr "gp er konstant (men gem/gendan gp ved indirekte kald)"
-#: config/ia64/ia64.h:138
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
-msgstr ""
+msgstr "Generér selvflyttende kode"
-#: config/ia64/ia64.h:140
-msgid "Generate inline division, optimize for latency"
-msgstr ""
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Generér indlejrede kommatalsdivisioner, optimér for ventetid"
-#: config/ia64/ia64.h:142
-msgid "Generate inline division, optimize for throughput"
-msgstr ""
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Generér indlejrede kommatalsdivisioner, optimér for båndbredde"
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Generér indlejrede heltalsdivisioner, optimér for ventetid"
-#: config/ia64/ia64.h:144
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Generér indlejrede heltalsdivisioner, optimér for båndbredde"
+
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
-msgstr ""
+msgstr "Aktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
-#: config/ia64/ia64.h:146
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
-msgstr ""
+msgstr "Deaktivér Dwarf 2-linjefejlanalyseringsinfo via GNU as"
-#: config/ia64/ia64.h:169
-msgid "Specify range of registers to make fixed."
-msgstr ""
+#: config/ia64/ia64.h:223
+msgid "Specify range of registers to make fixed"
+msgstr "Angiv interval af registre der skal gøres faste"
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:88
-#, fuzzy
-msgid "-msystem-v and -p are incompatible"
-msgstr "-mbsd og -mxopen er indbyrdes uforenelige"
-
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:90
-#, fuzzy
-msgid "-msystem-v and -mthreads are incompatible"
-msgstr "-f%s og -msdata=%s er indbyrdes uforenelige."
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr "ugyldig operand"
-#: config/m32r/m32r.c:83
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
-msgstr "ugyldig værdi (%s) til '-mmodel'-tilvalget"
+msgstr "ugyldig værdi (%s) til tilvalget -mmodel"
-#: config/m32r/m32r.c:92
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
-msgstr "ugyldig værdi (%s) til '-msdata'-tilvalget"
+msgstr "ugyldig værdi (%s) til tilvalget -msdata"
-#: config/m32r/m32r.c:380
+#: config/m32r/m32r.c:319
+#, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr "ugyldig parameter til egenskaben '%s'"
+
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
-msgstr ""
+msgstr "konstante objekter kan ikke anbringes i .sdata/.sbss"
-#: config/m32r/m32r.c:2187
+#: config/m32r/m32r.c:2256
#, c-format
-msgid "invalid operand to %s code"
-msgstr "ugyldig operand til '%s'-koden"
+msgid "invalid operand to %%s code"
+msgstr "ugyldig operand til %%s-koden"
-#: config/m32r/m32r.c:2194
+#: config/m32r/m32r.c:2263
#, c-format
-msgid "invalid operand to %p code"
-msgstr "ugyldig operand til '%p'-koden"
+msgid "invalid operand to %%p code"
+msgstr "ugyldig operand til %%p-koden"
+
+#: config/m32r/m32r.c:2318
+msgid "bad insn for 'A'"
+msgstr "ugyldig instruktion for 'A'"
+
+#: config/m32r/m32r.c:2370
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "ugyldig operand til %%T/%%B-koden"
+
+#: config/m32r/m32r.c:2393
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr "ugyldig operand til %%N-koden"
+
+#: config/m32r/m32r.c:2438
+msgid "pre-increment address is not a register"
+msgstr "præfiks forøgelsesadresse er ikke et register"
-#: config/m32r/m32r.c:2302
-msgid "invalid operand to %T/%B code"
-msgstr "ugyldig operand til '%T/%B'-koden"
+#: config/m32r/m32r.c:2445
+msgid "pre-decrement address is not a register"
+msgstr "præfiks formindskelsesadresse er ikke et register"
-#: config/m32r/m32r.c:2325
-msgid "invalid operand to %N code"
-msgstr "ugyldig operand til '%N'-koden"
+#: config/m32r/m32r.c:2452
+msgid "post-increment address is not a register"
+msgstr "postfiks forøgelsesadresse er ikke et register"
+
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+msgid "bad address"
+msgstr "ugyldig adresse"
+
+#: config/m32r/m32r.c:2551
+msgid "lo_sum not of register"
+msgstr "lo_sum ikke af register"
#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
-#: config/m32r/m32r.h:186
+#: config/m32r/m32r.h:241
msgid "Display compile time statistics"
-msgstr ""
+msgstr "Vis oversættelsesstatistikker"
-#: config/m32r/m32r.h:188
-#, fuzzy
+#: config/m32r/m32r.h:243
msgid "Align all loops to 32 byte boundary"
-msgstr "Justér double-variabler til word-grænserne"
+msgstr "Justér alle løkker til 32 byte-grænserne"
-#: config/m32r/m32r.h:191
+#: config/m32r/m32r.h:246
msgid "Only issue one instruction per cycle"
-msgstr ""
+msgstr "Udfør kun én instruktion pr. cyklus"
-#: config/m32r/m32r.h:194
-#, fuzzy
+#: config/m32r/m32r.h:249
msgid "Prefer branches over conditional execution"
-msgstr "typerne i betingelsesudtrykket passer ikke sammen"
+msgstr "Foretræk forgrening frem for betinget udførelse"
-#: config/m32r/m32r.h:210
+#: config/m32r/m32r.h:265
msgid "Code size: small, medium or large"
-msgstr ""
+msgstr "Kodestørrelse: small, medium eller large"
-#: config/m32r/m32r.h:212
+#: config/m32r/m32r.h:267
msgid "Small data area: none, sdata, use"
-msgstr ""
+msgstr "Område til små data: none, sdata, use"
-#: config/m68hc11/m68hc11.c:227
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
-msgstr ""
+msgstr "-f%s ignoreret for 68HC11/68HC12 (ikke understøttet)"
+
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr "egenskaberne 'trap' og 'far' kan ikke bruges på samme tid, ignorerer 'far'"
+
+#: config/m68hc11/m68hc11.c:1311
+msgid "`trap' attribute is already used"
+msgstr "egenskaben 'trap' er allerede benyttet"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+msgid "move insn not handled"
+msgstr "flytteinstruktion ikke håndteret"
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+msgid "invalid register in the move instruction"
+msgstr "ugyldigt register i flytteinstruktionen"
+
+#: config/m68hc11/m68hc11.c:3613
+msgid "invalid operand in the instruction"
+msgstr "ugyldig operand i instruktionen"
+
+#: config/m68hc11/m68hc11.c:3920
+msgid "invalid register in the instruction"
+msgstr "ugyldigt register i instruktionen"
+
+#: config/m68hc11/m68hc11.c:3953
+msgid "operand 1 must be a hard register"
+msgstr "operand 1 skal være et hårdt register"
+
+#: config/m68hc11/m68hc11.c:3970
+msgid "invalid rotate insn"
+msgstr "ugyldig roteringsinstruktion"
+
+#: config/m68hc11/m68hc11.c:4391
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "registrene IX, IY og Z benyttet i samme INSN"
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+msgid "cannot do z-register replacement"
+msgstr "kan ikke udføre Z-registererstatning"
+
+#: config/m68hc11/m68hc11.c:5094
+msgid "invalid Z register replacement for insn"
+msgstr "ugyldig Z-registererstatning for instruktion"
#. Macro to define tables used to set the flags. This is a list in braces of
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:179
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
-msgstr ""
+msgstr "Oversæt med 16 bit-heltalstilstand"
-#: config/m68hc11/m68hc11.h:181
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
-msgstr ""
+msgstr "Oversæt med 32 bit-heltalstilstand"
-#: config/m68hc11/m68hc11.h:183
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
-msgstr ""
+msgstr "Selvformindskelse tilladt"
-#: config/m68hc11/m68hc11.h:185
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
-msgstr ""
+msgstr "Selvforøgelse ikke tilladt"
-#: config/m68hc11/m68hc11.h:187 config/m68hc11/m68hc11.h:191
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr "Min/max-instruktioner tilladt"
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr "Min/max-instruktioner ikke tilladt"
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr "Benyt call og rtc til funktionskald og returneringer"
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Benyt jsr og rts til funktionskald og returneringer"
+
+#: config/m68hc11/m68hc11.h:188
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "Benyt ikke direkte adresseringstilstand til bløde registre"
+
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr "Benyt direkte adresseringstilstand til bløde registre"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
-msgstr ""
+msgstr "Oversæt til en 68HC11"
-#: config/m68hc11/m68hc11.h:189 config/m68hc11/m68hc11.h:193
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
-msgstr ""
+msgstr "Oversæt til en 68HC12"
+
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr "Oversæt til en 68HCS12"
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
@@ -5637,135 +11300,232 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:207
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
-msgstr ""
+msgstr "Angiv registerallokeringsordnen"
-#: config/m68hc11/m68hc11.h:209
-#, fuzzy
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
-msgstr "ugyldigt registernavn '%s' for registervariabel"
+msgstr "Angiv antallet af bløde registre der er til rådighed"
-#: config/m68k/m68k.c:102
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d er ikke mellem 1 og %d"
-#: config/m68k/m68k.c:113
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d er ikke mellem 1 og %d"
-#: config/m68k/m68k.c:124
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d er ikke mellem 1 og %d"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:238 config/m68k/m68kelf.h:265 config/m68k/m68kv4.h:295
+#: config/m68k/m68k.c:189
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr "-fPIC understøttes ikke på nuværende tidspunkt på 68000 og 68010\n"
-#: config/m88k/m88k.c:860
-#, c-format
-msgid "Internal gcc monitor: short-branch(%x)"
-msgstr ""
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+msgid "Generate code for a 68020"
+msgstr "Generér kode til en 68020"
-#: config/m88k/m88k.c:2266
-msgid "Internal gcc error: Can't express symbolic location"
-msgstr ""
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+msgid "Generate code for a 68000"
+msgstr "Generér kode til en 68000"
-#: config/m88k/m88k.c:2547
-#, c-format
-msgid "argument #%d is a structure"
-msgstr ""
+#: config/m68k/m68k.h:174
+msgid "Use the bit-field instructions"
+msgstr "Benyt bitfeltinstruktionerne"
-#: config/m88k/m88k.c:2862
-msgid "%R not followed by %B/C/D/E"
-msgstr "%R efterfølges ikke af %B/C/D/E"
+#: config/m68k/m68k.h:176
+msgid "Do not use the bit-field instructions"
+msgstr "Benyt ikke bitfeltinstruktionerne"
-#: config/m88k/m88k.c:2930
-#, c-format
-msgid "invalid %x/X value"
-msgstr "ugyldig '%x/X'-værdi"
+#: config/m68k/m68k.h:178
+msgid "Use different calling convention using 'rtd'"
+msgstr "Benyt anden kaldekonvention vha. 'rtd'"
+
+#: config/m68k/m68k.h:182
+msgid "Consider type `int' to be 16 bits wide"
+msgstr "Lad typen 'int' være 16 bit bred"
+
+#: config/m68k/m68k.h:184
+msgid "Consider type `int' to be 32 bits wide"
+msgstr "Lad typen 'int' være 32 bit bred"
+
+#: config/m68k/m68k.h:186
+msgid "Generate code for a Sun FPA"
+msgstr "Generér kode til en Sun FPA"
+
+#: config/m68k/m68k.h:189
+msgid "Do not generate code for a Sun FPA"
+msgstr "Generér ikke kode til en Sun FPA"
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+msgid "Generate code for a Sun Sky board"
+msgstr "Generér kode til et Sun Sky-kort"
+
+#: config/m68k/m68k.h:195
+msgid "Do not use Sky linkage convention"
+msgstr "Benyt ikke Sky-kædningskonventionen"
+
+#: config/m68k/m68k.h:197
+msgid "Generate code for a 68881"
+msgstr "Generér kode til en 68881"
-#: config/m88k/m88k.c:2935
-msgid "invalid %H value"
-msgstr "ugyldig '%H'-værdi"
+#: config/m68k/m68k.h:200
+msgid "Generate code with library calls for floating point"
+msgstr "Generér kode med bibliotekskald for kommatalsoperationer"
-#: config/m88k/m88k.c:2941
-msgid "invalid %h value"
-msgstr "ugyldig '%h'-værdi"
+#: config/m68k/m68k.h:202
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "Generér kode til en 68040 uden nogen nye instruktioner"
-#: config/m88k/m88k.c:2947
-msgid "invalid %Q value"
-msgstr "ugyldig '%Q'-værdi"
+#: config/m68k/m68k.h:205
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "Generér kode til en 68060 uden nogen nye instruktioner"
-#: config/m88k/m88k.c:2953
-msgid "invalid %q value"
-msgstr "ugyldig '%q'-værdi"
+#: config/m68k/m68k.h:209
+msgid "Generate code for a 68030"
+msgstr "Generér kode til en 68030"
-#: config/m88k/m88k.c:2959
+#: config/m68k/m68k.h:212
+msgid "Generate code for a 68040"
+msgstr "Generér kode til en 68040"
+
+#: config/m68k/m68k.h:216
+msgid "Generate code for a 68060"
+msgstr "Generér kode til en 68060"
+
+#: config/m68k/m68k.h:221
+msgid "Generate code for a 520X"
+msgstr "Generér kode til en 520X"
+
+#: config/m68k/m68k.h:224
+msgid "Generate code for a 68851"
+msgstr "Generér kode til en 68851"
+
+#: config/m68k/m68k.h:226
+msgid "Do no generate code for a 68851"
+msgstr "Generér ikke kode til en 68851"
+
+#: config/m68k/m68k.h:229
+msgid "Generate code for a 68302"
+msgstr "Generér kode til en 68302"
+
+#: config/m68k/m68k.h:232
+msgid "Generate code for a 68332"
+msgstr "Generér kode til en 68332"
+
+#: config/m68k/m68k.h:236
+msgid "Generate code for a cpu32"
+msgstr "Generér kode til en cpu32"
+
+#: config/m68k/m68k.h:239
+msgid "Align variables on a 32-bit boundary"
+msgstr "Justér variabler til 32 bit-grænserne"
+
+#: config/m68k/m68k.h:241
+msgid "Align variables on a 16-bit boundary"
+msgstr "Justér variabler til 16 bit-grænserne"
+
+#: config/m68k/m68k.h:243
+msgid "Generate pc-relative code"
+msgstr "Generér pc-relativ kode"
+
+#: config/m68k/m68k.h:245
+msgid "Do not use unaligned memory references"
+msgstr "Benyt ikke ikke-justerede hukommelsesreferencer"
+
+#: config/m68k/m68k.h:247
+msgid "Use unaligned memory references"
+msgstr "Benyt ikke-justerede hukommelsesreferencer"
+
+#: config/m88k/m88k.c:903
#, c-format
-msgid "invalid %o value"
-msgstr "ugyldig '%o'-værdi"
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr "intern GCC-overvågning: short-branch(%x)"
+
+#: config/m88k/m88k.c:2302
+msgid "internal gcc error: Can't express symbolic location"
+msgstr "intern GCC-fejl: Kan ikke udtrykke symbolsk placering"
-#: config/m88k/m88k.c:2966
+#: config/m88k/m88k.c:2517
#, c-format
-msgid "invalid %p value"
-msgstr "ugyldig '%p'-værdi"
+msgid "argument #%d is a structure"
+msgstr "%d. parameter er en struktur"
-#: config/m88k/m88k.c:2979 config/m88k/m88k.c:2984
+#: config/m88k/m88k.c:2816
#, c-format
-msgid "invalid %s/S value"
-msgstr "ugyldig '%s/S'-værdi"
+msgid "%%R not followed by %%B/C/D/E"
+msgstr "%%R efterfølges ikke af %%B/C/D/E"
-#: config/m88k/m88k.c:2995
-msgid "invalid %P operand"
-msgstr "ugyldig '%P'-operand"
+#: config/m88k/m88k.c:2884
+#, c-format
+msgid "invalid %%x/X value"
+msgstr "ugyldig %%x/X-værdi"
-#: config/m88k/m88k.c:3026
-msgid "invalid %B value"
-msgstr "ugyldig '%B'-værdi"
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "ugyldig %%Q-værdi"
-#: config/m88k/m88k.c:3043
-msgid "invalid %C value"
-msgstr "ugyldig '%C'-værdi"
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, c-format
+msgid "invalid %%q value"
+msgstr "ugyldig %%q-værdi"
-#: config/m88k/m88k.c:3056
-msgid "invalid %D value"
-msgstr "ugyldig '%D'-værdi"
+#: config/m88k/m88k.c:2913
+#, c-format
+msgid "invalid %%o value"
+msgstr "ugyldig %%o-værdi"
-#: config/m88k/m88k.c:3064
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
-msgid "invalid %E value"
-msgstr "ugyldig '%E'-værdi"
+msgid "invalid %%p value"
+msgstr "ugyldig %%p-værdi"
-#: config/m88k/m88k.c:3069
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
#, c-format
-msgid "`%d' operand isn't a register"
-msgstr "operanden '%d' er ikke et register"
+msgid "invalid %%s/S value"
+msgstr "ugyldig %%s/S-værdi"
-#: config/m88k/m88k.c:3080
-msgid "invalid %r value"
-msgstr "ugyldig '%r'-værdi"
+#: config/m88k/m88k.c:2949
+#, c-format
+msgid "invalid %%P operand"
+msgstr "ugyldig %%P-operand"
-#: config/m88k/m88k.c:3087
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, c-format
+msgid "invalid %%B value"
+msgstr "ugyldig %%B-værdi"
+
+#: config/m88k/m88k.c:3010
+#, c-format
+msgid "invalid %%D value"
+msgstr "ugyldig %%D-værdi"
+
+#: config/m88k/m88k.c:3023
+#, c-format
+msgid "`%%d' operand isn't a register"
+msgstr "operanden '%%d' er ikke et register"
+
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr "operanden er r0"
-#: config/m88k/m88k.c:3101
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr "operanden er const_double"
-#: config/m88k/m88k.c:3120
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "ugyldig kode"
@@ -5776,8 +11536,8 @@ msgstr "-mtrap-large-shift og -mhandle-large-shift er indbyrdes uforenelige"
#: config/m88k/m88k.h:299
#, c-format
-msgid "Invalid option `-mshort-data-%s'"
-msgstr "Ugyldigt tilvalg '-mshort-data-%s'"
+msgid "invalid option `-mshort-data-%s'"
+msgstr "ugyldigt tilvalg '-mshort-data-%s'"
#: config/m88k/m88k.h:304
#, c-format
@@ -5789,292 +11549,289 @@ msgstr "-mshort-data-%s er for stor"
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mshort-data-%s og PIC er indbyrdes uforenelige"
-#: config/mcore/mcore.c:3118
-#, fuzzy, c-format
-msgid "Invalid option `-mstack-increment=%s'"
-msgstr "Ugyldigt tilvalg '-mshort-data-%s'"
+#: config/mcore/mcore.c:3078
+#, c-format
+msgid "invalid option `-mstack-increment=%s'"
+msgstr "ugyldigt tilvalg '-mshort-increment=%s'"
-#: config/mcore/mcore.h:131
+#: config/mcore/mcore.h:126
msgid "Inline constants if it can be done in 2 insns or less"
-msgstr ""
+msgstr "Indlejr konstanter hvis det kan gøres med 2 instruktioner eller mindre"
-#: config/mcore/mcore.h:133
-msgid "inline constants if it only takes 1 instruction"
-msgstr ""
+#: config/mcore/mcore.h:128
+msgid "Inline constants if it only takes 1 instruction"
+msgstr "Indlejr konstanter hvis det kan gøres med 1 instruktion"
-#: config/mcore/mcore.h:135
+#: config/mcore/mcore.h:130
msgid "Set maximum alignment to 4"
-msgstr ""
+msgstr "Sæt maksimal justering til 4"
-#: config/mcore/mcore.h:137
+#: config/mcore/mcore.h:132
msgid "Set maximum alignment to 8"
-msgstr ""
+msgstr "Sæt maksimal justering til 8"
-#: config/mcore/mcore.h:141
+#: config/mcore/mcore.h:136
msgid "Do not use the divide instruction"
-msgstr ""
+msgstr "Benyt ikke divisionsinstruktionen"
-#: config/mcore/mcore.h:145
-#, fuzzy
-msgid "Do not arbitary sized immediates in bit operations"
-msgstr "Justér ikke strengoperationernes destination"
+#: config/mcore/mcore.h:140
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr "Benyt ikke vilkårlige størrelsers umiddelbare værdier i bitoperationer"
-#: config/mcore/mcore.h:147
-msgid "Always treat bitfield as int-sized"
-msgstr ""
+#: config/mcore/mcore.h:142
+msgid "Always treat bit-field as int-sized"
+msgstr "Behandl altid bitfelter som af størrelsen int"
-#: config/mcore/mcore.h:151
+#: config/mcore/mcore.h:146
msgid "Force functions to be aligned to a 4 byte boundary"
-msgstr ""
+msgstr "Tving funktioner til at blive justeret til en 4 byte-grænse"
-#: config/mcore/mcore.h:153
+#: config/mcore/mcore.h:148
msgid "Force functions to be aligned to a 2 byte boundary"
-msgstr ""
+msgstr "Tving funktioner til at blive justeret til en 2 byte-grænse"
-#: config/mcore/mcore.h:155
+#: config/mcore/mcore.h:150
msgid "Emit call graph information"
-msgstr ""
+msgstr "Udsend kaldegrafinfo"
-#: config/mcore/mcore.h:159
+#: config/mcore/mcore.h:154
msgid "Prefer word accesses over byte accesses"
-msgstr ""
+msgstr "Foretræk ord-tilgange frem for byte-tilgange"
-#: config/mcore/mcore.h:170
-#, fuzzy
+#: config/mcore/mcore.h:165
msgid "Generate code for the M*Core M340"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en M*Core M340"
-#: config/mcore/mcore.h:183
+#: config/mcore/mcore.h:178
msgid "Maximum amount for a single stack increment operation"
-msgstr ""
+msgstr "Maksimalt antal for en enkelt stakforøgelsesoperation"
-#: config/mips/mips.c:4737
+#: config/mips/mips.c:5128
#, c-format
-msgid "-mips%d not supported"
-msgstr "-mips%d er ikke understøttet"
+msgid "bad value (%s) for -mabi= switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mabi="
-#: config/mips/mips.c:4744
+#: config/mips/mips.c:5158
#, c-format
-msgid "bad value (%s) for -mips switch"
-msgstr "ugyldig værdi (%s) til '-mips'-tilvalget"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr "-mips%d er i konflikt med de andre arkitekturtilvalg som angiver en MIPS%d-processor"
-#: config/mips/mips.c:4763
+#: config/mips/mips.c:5165
#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "ugyldig værdi (%s) til '-mabi='-tilvalget"
+msgid "bad value (%s) for -mips switch"
+msgstr "ugyldig værdi (%s) til tilvalget -mips"
-#: config/mips/mips.c:4793
+#: config/mips/mips.c:5180
#, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "-mabi=%s understøtter ikke -mips%d"
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-march=%s er ikke forenelig med den valgte ABI"
-#: config/mips/mips.c:4810
-msgid "The -mabi=32 support does not work yet."
-msgstr "Understøttelsen af -mabi=32 virker ikke endnu"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-mgp64 benyttet med en 32 bit-processor"
-#: config/mips/mips.c:4814
-msgid "This target does not support the -mabi switch."
-msgstr "Dette mål understøtter ikke '-mabi'-tilvalget."
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-mgp32 benyttet med et 64 bit-ABI"
-#: config/mips/mips.c:4948
-#, c-format
-msgid "-mcpu=%s does not support -mips%d"
-msgstr "-mcpu=%s understøtter ikke -mips%d"
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-mgp64 benyttet med et 32 bit-ABI"
-#: config/mips/mips.c:4955
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mips%d understøtter ikke 64-bit kommatalsregistre"
+msgid "unsupported combination: %s"
+msgstr "ikke-understøttet kombination: %s"
-#: config/mips/mips.c:4961
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mips%d understøtter ikke 64-bit almene registre"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "generering af Branch Likely-instruktioner er aktiveret, men ikke understøttet af arkitekturen"
-#: config/mips/mips.c:4982
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
-msgstr ""
+msgstr "-G er uforenelig med PIC-kode som genereres som standard"
-#: config/mips/mips.c:4998
-#, fuzzy
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
-msgstr "-mrelocatable og -mcall-%s er indbyrdes uforenelige."
+msgstr "-membedded-pic og -mabicalls er indbyrdes uforenelige"
-#: config/mips/mips.c:5001
-#, fuzzy
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
-msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
+msgstr "-G og -membedded-pic er indbyrdes uforenelige"
-#: config/mips/mips.c:5052
+#: config/mips/mips.c:5369
#, c-format
-msgid "Invalid option `entry%s'"
-msgstr "Ugyldigt tilvalg 'entry%s'"
+msgid "invalid option `entry%s'"
+msgstr "ugyldigt tilvalg 'entry%s'"
-#: config/mips/mips.c:5055
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
-msgstr ""
+msgstr "-mentry giver kun mening sammen med -mips-16"
-#: config/mips/mips.c:5388
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "intern fejl: %%) fundet uden en %%) i maskinkodeoversættermønster"
-#: config/mips/mips.c:5402
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "intern fejl: %%] fundet uden en %%[ i maskinkodeoversættermønster"
-#: config/mips/mips.c:5415
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "intern fejl: %%> fundet uden en %%< i maskinkodeoversættermønster"
-#: config/mips/mips.c:5428
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "intern fejl: %%} fundet uden en %%{ i maskinkodeoversættermønster"
-#: config/mips/mips.c:5442
+#: config/mips/mips.c:5835
#, c-format
-msgid "PRINT_OPERAND: Unknown punctuation '%c'"
-msgstr "PRINT_OPERAND: Ukendt tegnsætning '%c'"
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "PRINT_OPERAND: ukendt tegnsætning '%c'"
-#: config/mips/mips.c:5451
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND nul-henvisning"
-#: config/mips/mips.c:5579
-#, fuzzy, c-format
+#: config/mips/mips.c:5975
+#, c-format
msgid "invalid use of %%d, %%x, or %%X"
-msgstr "ugyldig brug af void-udtryk"
+msgstr "ugyldigt brug af %%d, %%x eller %%X"
-#: config/mips/mips.c:5622
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, nul-henvisning"
-#: config/mips/mips.c:5826 f/com.c:14611 graph.c:421 java/jcf-parse.c:929
-#: java/jcf-parse.c:1065 java/lex.c:1726 objc/objc-act.c:733 profile.c:906
-#: profile.c:914 toplev.c:1875 toplev.c:2234
-#, fuzzy, c-format
-msgid "can't open %s"
-msgstr "fejl ved åbning af %s"
-
-#: config/mips/mips.c:5877
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
-msgstr ""
+msgstr "MIPS ECOFF-formatet tillader ikke skift af filnavne inden i funktioner med #line"
-#: config/mips/mips.c:6076
-#, fuzzy, c-format
-msgid "can't rewind %s"
-msgstr "[kan ikke finde %s]"
+#: config/mips/mips.c:6552
+msgid "can't rewind temp file"
+msgstr "kan ikke spole midlertidig fil tilbage"
-#: config/mips/mips.c:6080
-#, fuzzy, c-format
-msgid "can't write to %s"
-msgstr "fejl ved skrivning til %s"
+#: config/mips/mips.c:6556
+msgid "can't write to output file"
+msgstr "kan ikke skrive i uddatafil"
-#: config/mips/mips.c:6083
-#, fuzzy, c-format
-msgid "can't read from %s"
-msgstr "Læser specifikationer fra %s\n"
+#: config/mips/mips.c:6559
+msgid "can't read from temp file"
+msgstr "kan ikke læse fra midlertidig fil"
-#: config/mips/mips.c:6086 java/jcf-parse.c:605 java/jcf-write.c:3341
-#, fuzzy, c-format
-msgid "can't close %s"
-msgstr "fejl ved lukning af %s"
+#: config/mips/mips.c:6562
+msgid "can't close temp file"
+msgstr "kan ikke lukke midlertidig fil"
-#: config/mips/mips.c:6455
+#: config/mips/mips.c:7003
#, c-format
-msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
-msgstr "gp_offset (%ld) eller end_offset (%ld) er mindre end nul."
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "gp_offset (%ld) eller end_offset (%ld) er mindre end nul"
-#: config/mips/mips.c:6673
+#: config/mips/mips.c:7112
#, c-format
-msgid "fp_offset (%ld) or end_offset (%ld) is less than zero."
-msgstr "fp_offset (%ld) eller end_offset (%ld) er mindre end nul."
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "fp_offset (%ld) eller end_offset (%ld) er mindre end nul"
-#: config/mips/mips.c:8744
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "kan ikke håndtere inkonsistente kald af '%s'"
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr "processornavnet skal staves med små bogstaver"
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr "ugyldig værdi (%s) for %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:335 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
-msgstr ""
+msgstr "Ingen standard crt0.o"
-#: config/mips/mips.h:337
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
-msgstr ""
+msgstr "Benyt 64 bit int-type"
-#: config/mips/mips.h:339
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
-msgstr ""
+msgstr "Benyt 64 bit long-type"
-#: config/mips/mips.h:341
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
-msgstr ""
+msgstr "Benyt 32 bit long-type"
-#: config/mips/mips.h:343
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
-msgstr ""
+msgstr "Optimér lui/addiu-adresseindlæsninger"
-#: config/mips/mips.h:345
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
-msgstr ""
+msgstr "Optimér ikke lui/addiu-adresseindlæsninger"
-#: config/mips/mips.h:347
+# 'as' står for assembler
+#: config/mips/mips.h:540
msgid "Use MIPS as"
-msgstr ""
+msgstr "Benyt MIPS as"
-#: config/mips/mips.h:349
+#: config/mips/mips.h:542
msgid "Use GNU as"
-msgstr ""
+msgstr "Benyt GNU as"
-#: config/mips/mips.h:351
-#, fuzzy
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
-msgstr "ukendt registernavn '%s'"
+msgstr "Benyt symbolske registernavne"
-#: config/mips/mips.h:353
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
-msgstr ""
+msgstr "Benyt ikke symbolske registernavne"
-#: config/mips/mips.h:355 config/mips/mips.h:357
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
-msgstr ""
+msgstr "Benyt GP-relative sdata/sbss-sektioner"
-#: config/mips/mips.h:359 config/mips/mips.h:361
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
-msgstr ""
+msgstr "Benyt ikke GP-relative sdata/sbss-sektioner"
-#: config/mips/mips.h:363
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
-msgstr ""
+msgstr "Udsend oversættelsesstatistik"
-#: config/mips/mips.h:365
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
-msgstr ""
+msgstr "Udsend ikke oversættelsesstatistik"
-#: config/mips/mips.h:367
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
-msgstr ""
+msgstr "Optimér ikke blokflytninger"
-#: config/mips/mips.h:369
+#: config/mips/mips.h:562
msgid "Optimize block moves"
-msgstr ""
+msgstr "Optimér blokflytninger"
-#: config/mips/mips.h:371
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
-msgstr ""
+msgstr "Benyt mips-tfile-maskinkodeefterfase"
-#: config/mips/mips.h:373
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
-msgstr ""
+msgstr "Benyt ikke mips-tfile-maskinkodeefterfase"
#. Macro to define tables used to set the flags.
#. This is a list in braces of triplets in braces,
@@ -6082,446 +11839,686 @@ msgstr ""
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:377 config/pdp11/pdp11.h:55
-#, fuzzy
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
-msgstr "Brug hardware-kommatal"
+msgstr "Benyt hardware-kommatal"
-#: config/mips/mips.h:379
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
-msgstr ""
+msgstr "Benyt 64 bit-kommatalsregistre"
-#: config/mips/mips.h:381
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
-msgstr ""
+msgstr "Benyt 32 bit-kommatalsregistre"
-#: config/mips/mips.h:383
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
-msgstr ""
+msgstr "Benyt 64 bit almene registre"
-#: config/mips/mips.h:385
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
-msgstr ""
+msgstr "Benyt 32 bit almene registre"
-#: config/mips/mips.h:387
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
-msgstr ""
+msgstr "Benyt Irix PIC"
-#: config/mips/mips.h:389
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
-msgstr ""
+msgstr "Benyt ikke Irix PIC"
-#: config/mips/mips.h:391
-msgid "Use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:393
-msgid "Don't use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:395
+#: config/mips/mips.h:584
msgid "Use indirect calls"
-msgstr ""
+msgstr "Benyt indirekte kald"
-#: config/mips/mips.h:397
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
-msgstr ""
+msgstr "Benyt ikke indirekte kald"
-#: config/mips/mips.h:399
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
-msgstr ""
+msgstr "Benyt indlejret PIC"
-#: config/mips/mips.h:401
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
-msgstr ""
+msgstr "Benyt ikke indlejret PIC"
-#: config/mips/mips.h:403
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
-msgstr ""
+msgstr "Benyt ROM i stedet for RAM"
-#: config/mips/mips.h:405
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
-msgstr ""
+msgstr "Benyt ikke ROM i stedet for RAM"
-#: config/mips/mips.h:407
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
-msgstr ""
+msgstr "Anbring konstanter uden startværdi i ROM (behøver -membedded-data)"
-#: config/mips/mips.h:409
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
-msgstr ""
+msgstr "Anbring ikke konstanter uden startværdi i ROM"
-#: config/mips/mips.h:411
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
-msgstr ""
+msgstr "Benyt storendet byteordning"
-#: config/mips/mips.h:413
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
-msgstr ""
+msgstr "Benyt lilleendet byteordning"
-#: config/mips/mips.h:415
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
-msgstr ""
+msgstr "Benyt kun enkeltpræcisions (32 bit) kommatal"
-#: config/mips/mips.h:417
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
-msgstr ""
+msgstr "Benyt ikke kun enkeltpræcisions (32 bit) kommatal"
-#: config/mips/mips.h:419
+# hvad så det er...
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
-msgstr ""
+msgstr "Benyt multiplikationsakkumulering"
-#: config/mips/mips.h:421
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
-msgstr ""
+msgstr "Benyt ikke multiplikationsakkumulering"
-#: config/mips/mips.h:423
-msgid "Work around early 4300 hardware bug"
-msgstr ""
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+msgid "Don't generate fused multiply/add instructions"
+msgstr "Generér ikke sammensatte gang/addér-instruktioner"
-#: config/mips/mips.h:425
-msgid "Don't work around early 4300 hardware bug"
-msgstr ""
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+msgid "Generate fused multiply/add instructions"
+msgstr "Generér sammensatte gang/addér-instruktioner"
-#: config/mips/mips.h:427
-msgid "Optimize for 4650"
-msgstr ""
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr "Arbejd rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:429
-msgid "Optimize for 3900"
-msgstr ""
+#: config/mips/mips.h:618
+msgid "Don't work around early 4300 hardware bug"
+msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
-#: config/mips/mips.h:431
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
-msgstr ""
+msgstr "Forårsag undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:433
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
-msgstr ""
+msgstr "Forårsag ikke undtagelse ved heltalsdivision med nul"
-#: config/mips/mips.h:435
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
-msgstr ""
+msgstr "Forårsag undtagelse ved heltalsdivisionsoverløb"
-#: config/mips/mips.h:437
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
-msgstr ""
+msgstr "Forårsag ikke undtagelse ved heltalsdivisionsoverløb"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/mips/mips.h:562
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr "Benyt Branch Likely-instruktioner, overskrivende forvalget for arkitektur"
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr "Benyt ikke Branch Likely-instruktioner, overskrivende forvalget for arkitektur"
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
-msgstr ""
+msgstr "Angiv processor til planlægningsformål"
-#: config/mips/mips.h:564
-msgid "Specify MIPS ISA"
-msgstr ""
+#: config/mips/mips.h:746
+msgid "Specify CPU for code generation purposes"
+msgstr "Angiv processor til kodegenereringsformål"
-#: config/mips/mips.h:566
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr "Angiv en ABI"
+
+#: config/mips/mips.h:750
+msgid "Specify a Standard MIPS ISA"
+msgstr "Angiv en Standard MIPS ISA"
+
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
-msgstr ""
+msgstr "Benyt MIPS16-indtrædelse-/afslutningspseudooperationer"
-#: config/mips/mips.h:568
-#, fuzzy
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt ikke MIPS16-instruktioner"
+
+#: config/mips/mips.h:756
+msgid "Don't call any cache flush functions"
+msgstr "Kald ikke nogen mellemlagertømningsfunktion"
+
+#: config/mips/mips.h:758
+msgid "Specify cache flush function"
+msgstr "Angiv mellemlagertømningsfunktion"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2592
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
-msgstr ""
+msgstr "MIPS16-funktionsprofilering"
+
+#: config/mmix/mmix.c:189
+#, c-format
+msgid "-f%s not supported: ignored"
+msgstr "-f%s er ikke understøttet: ignoreret"
+
+#: config/mmix/mmix.c:644
+#, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr "for stor funktionsværditype, behøver %d registre, har kun %d registre til dette"
+
+#: config/mmix/mmix.c:826
+msgid "function_profiler support for MMIX"
+msgstr "function_profiler-understøttelse for MMIX"
+
+#: config/mmix/mmix.c:848
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "MMIX-intern: Sidst navngivne variabel parameter kan ikke passes i et register"
+
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "MMIX-intern: Forventede en CONST_INT, ikke dette"
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "MMIX-intern: Ugyldigt register: %d"
+
+#: config/mmix/mmix.c:1718
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "MMIX-intern: Ugyldigt værdi for 'm', ikke en CONST_INT"
+
+#: config/mmix/mmix.c:1737
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "MMIX-intern: Forventede et register, ikke dette"
+
+#: config/mmix/mmix.c:1747
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr "MMIX-intern: Forventede en konstant, ikke dette"
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr "MMIX-intern: Mangler '%c'-case i mmix_print_operand"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "MMIX-intern: Kan ikke dekode denne operand"
+
+#: config/mmix/mmix.c:1891
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "MMIX-intern: Dette er ikke en genkendt adresse"
+
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "stakramme ikke et produkt af 8 byte: %d"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "stakramme ikke et produkt af 8 byte: %d"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "MMIX-intern: %s er ikke en int der kan skiftes"
+
+#: config/mmix/mmix.c:3006
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "MMIX-intern: Forsøger at udskrive ugyldigt omvendt betingelse:"
+
+#: config/mmix/mmix.c:3013
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "MMIX-intern: Hvad er CC af dette?"
+
+#: config/mmix/mmix.c:3017
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "MMIX-intern: Hvad er CC af dette?"
+
+#: config/mmix/mmix.c:3088
+msgid "MMIX Internal: This is not a constant:"
+msgstr "MMIX-intern: Dette er ikke en konstant:"
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+msgid "Set start-address of the program"
+msgstr "Angiv startadressen for programmet"
+
+#: config/mmix/mmix.h:134
+msgid "Set start-address of data"
+msgstr "Angiv startadressen for data"
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr "For indbyggede biblioteker: overbring alle parametre i registre"
+
+#: config/mmix/mmix.h:201
+msgid "Use register stack for parameters and return value"
+msgstr "Benyt registerstakken til parametre og returværdier"
+
+#: config/mmix/mmix.h:203
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr "Benyt kaldeoptagne registre til parametre og returværdier"
+
+#: config/mmix/mmix.h:205
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "Benyt epsilon-respekterende instruktioner til kommatalssammenligning"
+
+#: config/mmix/mmix.h:208
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr "Benyt nul-udvidende hukommelsesindlæsninger, ikke fortegnsudvidende"
+
+#: config/mmix/mmix.h:211
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr "Generér divisionsresultater med rest som har det samme fortegn som nævneren (ikke tælleren)"
+
+#: config/mmix/mmix.h:215
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr "Tilføj \":\" til starten af globale symboler (til brug sammen med PREFIX)"
+
+#: config/mmix/mmix.h:217
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr "Tilbyd ikke standardstartadressen 0x100 for programmet"
+
+#: config/mmix/mmix.h:219
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr "Lad sammenkædningen udsende programmet i ELF-format (i stedet for mmo)"
+
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr "Benyt P-aliaser for forgreninger som statistisk forudses at blive taget"
+
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr "Benyt ikke P-aliaser for forgreninger"
+
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr "Benyt adresser der allokerer globale registre"
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr "Benyt ikke adresser der allokerer globale registre"
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr "Generér et enkelt afslutningspunkt for hver funktion"
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr "Generér ikke et enkelt afslutningspunkt for hver funktion"
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
-msgstr ""
+msgstr "Arbejd omkring hardware-multiplikationsfejl"
#: config/mn10300/mn10300.h:60
-#, fuzzy
msgid "Do not work around hardware multiply bug"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Arbejd ikke omkring hardware-multiplikationsfejl"
#: config/mn10300/mn10300.h:61
msgid "Target the AM33 processor"
-msgstr ""
+msgstr "Målret mod AM33-processoren"
-#: config/nextstep.c:65
-msgid "optimization turned on"
-msgstr ""
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
+msgstr "Aktivér tolerant sammenkædning"
-#: config/nextstep.c:71
-msgid "optimization turned off"
-msgstr ""
-
-#: config/nextstep.c:80
-#, fuzzy
-msgid "optimization level restored"
-msgstr "Oversættelse af inkluderingsfil udbedt"
-
-#: config/ns32k/ns32k.h:104
-#, fuzzy
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke hardware-kommatal"
-#: config/ns32k/ns32k.h:105
-#, fuzzy
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr "Alternativ kaldekonvention"
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
-msgstr ""
+msgstr "Overbring nogle parametre i registre"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
-msgstr ""
+msgstr "Overbring alle parametre på stakken"
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
-msgstr ""
+msgstr "Optimér for en 32532-processor"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
-msgstr ""
+msgstr "Optimér for en 32332-processor"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
-msgstr ""
+msgstr "Optimér for en 32032-processor"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
-msgstr ""
+msgstr "Registeret 'sb' er nul; benyt til absolut adressering"
-#: config/ns32k/ns32k.h:115
-#, fuzzy
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke registeret 'sb'"
-#: config/ns32k/ns32k.h:116
-#, fuzzy
-msgid "Do not use bitfield instructions"
-msgstr "Se %s for instruktioner."
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
+msgstr "Benyt bitfeltinstruktioner"
-#: config/ns32k/ns32k.h:117
-#, fuzzy
-msgid "Use bitfield instructions"
-msgstr "Se %s for instruktioner."
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr "Benyt ikke bitfeltinstruktioner"
-#: config/ns32k/ns32k.h:118
-#, fuzzy
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til høj hukommelse"
-#: config/ns32k/ns32k.h:119
-#, fuzzy
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til lav hukommelse"
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
-msgstr ""
+msgstr "32381-fpu"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
-msgstr ""
+msgstr "Benyt kommatalsinstruktioner til multiplikationsakkumulering"
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
-msgstr ""
+msgstr "Benyt ikke kommatalsinstruktioner til multiplikationsakkumulering"
-#: config/ns32k/ns32k.h:124
-#, fuzzy
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
-msgstr "Ugyldigt registerklassebogstav %c"
+msgstr "\"Små registerklasser\"-lapning"
-#: config/ns32k/ns32k.h:125
-#, fuzzy
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
-msgstr "Ugyldigt registerklassebogstav %c"
+msgstr "Ingen \"Små registerklasser\"-lapning"
-#: config/pa/pa.c:135
+#: config/pa/pa.c:261
#, c-format
msgid ""
-"Unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
+"ukendt parameter til -mschedule= (%s).\n"
+"Gyldige parametre er 700, 7100, 7100LC, 7200, 7300 og 8000\n"
-#: config/pa/pa.c:160
+#: config/pa/pa.c:286
#, c-format
msgid ""
-"Unknown -march= option (%s).\n"
+"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
+"ukendt parameter til -march= (%s).\n"
+"Gyldige parametre er 1.0, 1.1 og 2.0\n"
-#: config/pa/pa.c:165
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
-msgstr ""
+msgstr "PIC-kodegenerering er ikke understøttet i den portable kørselsmodel\n"
-#: config/pa/pa.c:170
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
-msgstr ""
-
-#: config/pa/pa.c:175
-msgid "PIC code generation is not compatible with profiling\n"
-msgstr ""
+msgstr "PIC-kodegenerering er ikke kompatibel med hurtige indirekte kald\n"
-#: config/pa/pa.c:180
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
-msgstr ""
+msgstr "-g er kun understøttet ved brug af GAS på denne processor,"
+
+#: config/pa/pa.c:310
+msgid "-g option disabled"
+msgstr "tilvalget -g deaktiveret"
+
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr "Generér CPP-defineringer til server-IO"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr "Generér CPP-defineringer til arbejdsstation-IO"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr "Generér PA1.1-kode"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr "Generér PA1.0-kode"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "Generér PA2.0-kode (kræver binutils 2.10 eller nyere)"
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr "Deaktivér kommatalsregistre"
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr "Deaktivér ikke kommatalsregistre"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr "Deaktivér pladsregistre"
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr "Deaktivér ikke pladsregistre"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr "Anbring spring på kaldeventetidspladser"
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr "Anbring ikke spring på kaldeventetidspladser"
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr "Deaktivér indekseret adressering"
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr "Deaktivér ikke indekseret adressering"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr "Benyt portable kaldekonventioner"
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr "Benyt ikke portable kaldekonventioner"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr "Antag at koden bliver oversat af GAS"
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr "Antag ikke at koden bliver oversat af GAS"
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr "Benyt ikke softwarekommatal"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr "Udsend lange load/store-sekvenser"
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr "Udsend ikke lange load/store-sekvenser"
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr "Generér hurtige indirekte kald"
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr "Generér ikke hurtige indirekte kald"
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr "Generér kode til store switch-sætninger"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr "Generér ikke kode til store switch-sætninger"
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr "Generér altid lange kalde"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr "Generér kun lange kalde når det er nødvendigt"
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr "Aktivér sammenkæderoptimeringer"
-#: config/pa/pa.c:181
-#, fuzzy
-msgid "-g option disabled."
-msgstr "tilvalg slået til: "
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr "Angiv arkitekturen for kodegenerering. Mulige værdier er 1.0, 1.1 og 2.0. 2.0 kræver GAS-snapshot 19990413 eller senere."
-#: config/pdp11/pdp11.h:56
-#, fuzzy
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr "Antag at kode vil blive sammenkædet med GNU ld"
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr "Antag at kode vil blive sammenkædet med HP ld"
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke hardware-kommatal"
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
-msgstr ""
+msgstr "Returnér kommatalsresultater i ac0"
-#: config/pdp11/pdp11.h:59
-#, fuzzy
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
-msgstr "Ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
+msgstr "Returnér kommatalsresultater i hukommelse"
#. is 11/40
-#: config/pdp11/pdp11.h:61
-#, fuzzy
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en 11/40"
#. is 11/45
-#: config/pdp11/pdp11.h:64
-#, fuzzy
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en 11/45"
#. is 11/10
-#: config/pdp11/pdp11.h:67
-#, fuzzy
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
-msgstr "Generér kode til en given cpu"
+msgstr "Generér kode til en 11/10"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
-msgstr ""
+msgstr "Benyt 32 bit int"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
-msgstr ""
+msgstr "Benyt 16 bit int"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
-msgstr ""
+msgstr "Benyt 32 bit float"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
-msgstr ""
+msgstr "Benyt 64 bit float"
#. allow abshi pattern? - can trigger "optimizations" which make code SLOW!
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
-msgstr ""
+msgstr "Målarkitektur har delt I&D"
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
-msgstr ""
+msgstr "Målarkitektur har ikke delt I&D"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
-msgstr ""
+msgstr "Benyt UNIX-maskinkodesyntaks"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
-msgstr ""
+msgstr "Benyt DEC-maskinkodesyntaks"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr ""
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr ""
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr ""
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr ""
-
-#: config/romp/romp.c:674
-#, c-format
-msgid "invalid %%B value"
-msgstr "ugyldig %%B-værdi"
-
-#: config/romp/romp.c:701 config/rs6000/rs6000.c:4106
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr "ugyldig %%S-værdi"
-#: config/romp/romp.c:710 config/romp/romp.c:717
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr "ugyldig %%b-værdi"
-#: config/romp/romp.c:738 config/romp/romp.c:745
-#, c-format
-msgid "invalid %%H value"
-msgstr "ugyldig %%H-værdi"
-
-#: config/romp/romp.c:757 config/romp/romp.c:768
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr "ugyldig %%z-værdi"
-#: config/romp/romp.c:776 config/romp/romp.c:784
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr "ugyldig %%Z-værdi"
-#: config/romp/romp.c:791 config/romp/romp.c:800 config/romp/romp.c:807
-#: config/rs6000/rs6000.c:3888
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr "ugyldig %%k-værdi"
-#: config/romp/romp.c:892 config/romp/romp.c:935
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr "ugyldig %%j-værdi"
@@ -6539,141 +12536,204 @@ msgstr "ugyldig %%j-værdi"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr "kan ikke have variable parameterlister med -mfp-arg-in-fp-regs"
-#: config/rs6000/aix.h:303 config/rs6000/beos.h:30
-msgid "Always pass floating-point arguments in memory"
-msgstr ""
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr "ignorerer forkert udformet #pragma longcall"
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr "manglende startparantes"
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr "manglende tal"
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr "manglende slutparantes"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr "tal skal enten være 0 eller 1"
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr "ragelse i slutningen af #pragma longcall"
+
+#: config/rs6000/rs6000.c:592
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-mmultiple er ikke understøttet på lilleendede systemer"
-#: config/rs6000/aix.h:305 config/rs6000/beos.h:32
-msgid "Don't always pass floating-point arguments in memory"
-msgstr ""
+#: config/rs6000/rs6000.c:599
+msgid "-mstring is not supported on little endian systems"
+msgstr "-mstring er ikke understøttet på lilleendede systemer"
-#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
-msgid "Support message passing with the Parallel Environment"
-msgstr ""
+#: config/rs6000/rs6000.c:623
+#, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr "ukendt tilvalg -mdebug-%s"
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
-msgid "Compile for 64-bit pointers"
-msgstr ""
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr "ukendt parameter '%s' til -mtraceback; forventer 'full', 'partial' eller 'none'"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
-msgid "Compile for 32-bit pointers"
-msgstr ""
+#: config/rs6000/rs6000.c:646
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "Ukendt tilvalg -mlong-double-%s"
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
-#, fuzzy
-msgid "-maix64 and POWER architecture are incompatible."
-msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "ukendt tilvalg til -misel= angivet: '%s'"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
-msgid "-maix64 requires PowerPC64 architecture remain enabled."
-msgstr ""
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "ukendt tilvalg til -mvrsave= angivet: '%s'"
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
-msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported."
-msgstr "-maix64 påkrævet: 64 bit-beregninger med 32 bit-adressering understøttes endnu ikke."
+#: config/rs6000/rs6000.c:772
+#, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "ukendt ABI angivet: '%s'"
-#: config/rs6000/rs6000.c:341
-#, fuzzy
-msgid "-mmultiple is not supported on little endian systems"
-msgstr "-mcmodel= understøttes ikke på 32 bit-systemer"
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "1. parameter skal være en 5 bit-konstant med fortegn"
-#: config/rs6000/rs6000.c:348
-#, fuzzy
-msgid "-mstring is not supported on little endian systems"
-msgstr "-mcmodel= understøttes ikke på 32 bit-systemer"
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "2. parameter skal være en 5 bit-konstant uden fortegn"
-#: config/rs6000/rs6000.c:354
-#, c-format
-msgid "-f%s ignored for AIX (all code is position independent)"
-msgstr ""
+#: config/rs6000/rs6000.c:4356
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "1. parameter til __builtin_altivec_predicate skal være en konstant"
-#: config/rs6000/rs6000.c:362
-msgid "-ffunction-sections disabled on AIX when debugging"
-msgstr ""
+#: config/rs6000/rs6000.c:4410
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "1. parameter til __builtin_altivec_predicate er uden for det gyldige interval"
-#: config/rs6000/rs6000.c:368
-#, fuzzy
-msgid "-fdata-sections not supported on AIX"
-msgstr "-pipe understøttes ikke."
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "3. parameter skal være en 4 bit-konstant uden fortegn"
-#: config/rs6000/rs6000.c:382
+#: config/rs6000/rs6000.c:4666
#, c-format
-msgid "Unknown -mdebug-%s switch"
-msgstr "Ukendt '-mdebug-%s'-tilvalg"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
+
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "parameter til dss skal være en 2 bit-konstant uden fortegn"
+
+#: config/rs6000/rs6000.c:5013
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "1. parameter til __builtin_spe_predicate skal være en konstant"
-#: config/rs6000/rs6000.c:3815
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "1. parameter til __builtin_spe_predicate er uden for det gyldige interval"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr "ugyldig %%f-værdi"
-#: config/rs6000/rs6000.c:3824
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr "ugyldig %%F-værdi"
-#: config/rs6000/rs6000.c:3833
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr "ugyldig %%G-værdi"
-#: config/rs6000/rs6000.c:3868
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr "ugyldig %%j-kode"
-#: config/rs6000/rs6000.c:3878
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr "ugyldig %%J-kode"
-#: config/rs6000/rs6000.c:3908
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr "ugyldig %%K-værdi"
-#: config/rs6000/rs6000.c:4032
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "invalid %%p value"
-msgstr "ugyldig %%p-værdi"
-
-#: config/rs6000/rs6000.c:4069
-#, c-format
-msgid "invalid %%q value"
-msgstr "ugyldig %%q-værdi"
-
-#: config/rs6000/rs6000.c:4132
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr "%%S beregnede alle 1'eres maske"
+msgid "invalid %%O value"
+msgstr "ugyldig %%O-værdi"
-#: config/rs6000/rs6000.c:4159
+#: config/rs6000/rs6000.c:7793
#, c-format
-msgid "%%S computed all 0's mask"
-msgstr "%%S beregnede alle 0'eres maske"
-
-#: config/rs6000/rs6000.c:4169
-#, fuzzy, c-format
msgid "invalid %%T value"
-msgstr "ugyldig %%v-værdi"
+msgstr "ugyldig %%T-værdi"
-#: config/rs6000/rs6000.c:4179
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr "ugyldig %%u-værdi"
-#: config/rs6000/rs6000.c:4188
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr "ugyldig %%v-værdi"
-#: config/rs6000/rs6000.c:4261
-#, fuzzy, c-format
-msgid "invalid %%W value"
-msgstr "ugyldig %%v-værdi"
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "ingen profilering af 64 bit-kode for denne ABI"
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
+msgstr "Overbring altid kommatalsparametre i hukommelse"
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
+msgstr "Overbring ikke altid kommatalsparametre i hukommelse"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr "Understøt meddelelsesoverbringelse med Parallel Environment"
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr "Oversæt for 64 bit-henvisninger"
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr "Oversæt for 32 bit-henvisninger"
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-maix64 og POWER-arkitekturen er indbyrdes uforenelige"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-maix64 kræver at PowerPC64-arkitekturen forbliver aktiveret"
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "-maix64 påkrævet: 64 bit-beregninger med 32 bit-adressering understøttes endnu ikke"
#. Run-time compilation parameters selecting different hardware subsets.
#.
@@ -6682,156 +12742,161 @@ msgstr "ugyldig %%v-værdi"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:253
-#, fuzzy
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt POWER-instruktionssættet"
-#: config/rs6000/rs6000.h:256
-#, fuzzy
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt POWER2-instruktionssættet"
-#: config/rs6000/rs6000.h:258
-#, fuzzy
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
-msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
+msgstr "Benyt ikke POWER2-instruktionssættet"
-#: config/rs6000/rs6000.h:261
-#, fuzzy
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
-msgstr "Brug ikke push-instruktioner til at gemme udgående parametre"
+msgstr "Benyt ikke POWER-instruktionssættet"
-#: config/rs6000/rs6000.h:263
-#, fuzzy
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt PowerPC-instruktionssættet"
-#: config/rs6000/rs6000.h:266
-#, fuzzy
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt ikke PowerPC-instruktionssættet"
-#: config/rs6000/rs6000.h:268
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
-msgstr ""
+msgstr "Benyt valgfrie instruktioner fra PowerPC General Purpose-gruppen"
-#: config/rs6000/rs6000.h:270
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
-msgstr ""
+msgstr "Benyt ikke valgfrie instruktioner fra PowerPC General Purpose-gruppen"
-#: config/rs6000/rs6000.h:272
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
-msgstr ""
+msgstr "Benyt valgfrie instruktioner fra PowerPC Graphics-gruppen"
-#: config/rs6000/rs6000.h:274
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
-msgstr ""
+msgstr "Benyt ikke valgfrie instruktioner fra PowerPC Graphics-gruppen"
-#: config/rs6000/rs6000.h:276
-#, fuzzy
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt PowerPC-64-instruktionssættet"
-#: config/rs6000/rs6000.h:278
-#, fuzzy
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt ikke PowerPC-64-instruktionssættet"
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:267
+msgid "Use AltiVec instructions"
+msgstr "Benyt AltiVec-instruktioner"
+
+#: config/rs6000/rs6000.h:269
+msgid "Don't use AltiVec instructions"
+msgstr "Benyt ikke AltiVec-instruktioner"
+
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
-msgstr ""
+msgstr "Benyt nye aliaser for PowerPC-arkitekturen"
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
-msgstr ""
+msgstr "Benyt tidligere aliaser for PowerPC-arkitekturen"
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
-msgstr ""
+msgstr "Anbring alting i den regulære indholdsfortegnelse"
-#: config/rs6000/rs6000.h:287
-#, fuzzy
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
-msgstr "forkert udformet kommatalskonstant"
+msgstr "Anbring kommatalskonstanter i indholdsfortegnelsen"
-#: config/rs6000/rs6000.h:289
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
-msgstr ""
+msgstr "Anbring ikke kommatalskonstanter i indholdsfortegnelsen"
-#: config/rs6000/rs6000.h:291
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
-msgstr ""
+msgstr "Anbring symbol+afsæt-konstanter i indholdsfortegnelsen"
-#: config/rs6000/rs6000.h:293
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
-msgstr ""
+msgstr "Anbring ikke symbol+afsæt-konstanter i indholdsfortegnelsen"
-#: config/rs6000/rs6000.h:299
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
-msgstr ""
+msgstr "Anbring variabeladresser i den regulære indholdsfortegnelse"
-#: config/rs6000/rs6000.h:305
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
-msgstr ""
+msgstr "Generér flere indlæsnings-/lagringsinstruktioner"
-#: config/rs6000/rs6000.h:307
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
-msgstr ""
+msgstr "Generér ikke flere indlæsnings-/lagringsinstruktioner"
-#: config/rs6000/rs6000.h:311
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
-msgstr ""
+msgstr "Generér strengoperationer til blokflytninger"
-#: config/rs6000/rs6000.h:313
-#, fuzzy
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
+msgstr "Generér ikke strengoperationer til blokflytninger"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
-msgstr ""
+msgstr "Generér indlæsning/lagring med opdateringsinstruktioner"
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
-msgstr ""
+msgstr "Generér ikke indlæsning/lagring med opdateringsinstruktioner"
-#: config/rs6000/rs6000.h:321
-msgid "Generate fused multiply/add instructions"
-msgstr ""
+#: config/rs6000/rs6000.h:318
+msgid "Don't schedule the start and end of the procedure"
+msgstr "Planlæg ikke begyndelsen og slutningen af proceduren"
-#: config/rs6000/rs6000.h:323
-msgid "Don't generate fused multiply/add instructions"
-msgstr ""
+#: config/rs6000/rs6000.h:324
+msgid "Return all structures in memory (AIX default)"
+msgstr "Returnér alle strukturer i hukommelse (SVR4-standard)"
-#: config/rs6000/rs6000.h:327
-msgid "Don't schedule the start and end of the procedure"
-msgstr ""
+#: config/rs6000/rs6000.h:326
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "Returnér små strukturer i registre (SVR4-standard)"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/rs6000/rs6000.h:400 config/sparc/sparc.h:708
-#, fuzzy
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
-msgstr "Planlæg koden til en given cpu"
+msgstr "Benyt faciliteter fra og planlæg koden til en given processor"
-#: config/rs6000/rs6000.h:403
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
-msgstr ""
+msgstr "Aktivér fejlanalyseringsuddata"
+
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr "Vælg komplet, partiel eller ingen tilbagesporingstabel"
+
+#: config/rs6000/rs6000.h:397
+msgid "Specify ABI to use"
+msgstr "Angiv ABI der skal bruges"
+
+#: config/rs6000/rs6000.h:399
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "Angiv størrelsen af long double (64 eller 128 bit)"
+
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr "Angiv yes/no hvis isel-instruktioner skal genereres"
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr "Angiv yes/no hvis VRSAVE-instruktioner skal genereres til AltiVec"
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr "Undgå alle områdegrænser ved kaldeinstruktioner"
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
@@ -6845,101 +12910,102 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1654
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET er ikke understøttet"
-#: config/rs6000/sysv4.h:88
-#, fuzzy
-msgid "Select ABI calling convention."
-msgstr "Alternativ kaldekonvention"
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
+msgstr "Angiv ABI-kaldekonvention"
-#: config/rs6000/sysv4.h:89
-msgid "Select method for sdata handling."
-msgstr ""
+#: config/rs6000/sysv4.h:88
+msgid "Select method for sdata handling"
+msgstr "Angiv metode for sdata-håndtering"
-#: config/rs6000/sysv4.h:104
-msgid "Align to the base type of the bitfield."
-msgstr ""
+#: config/rs6000/sysv4.h:103
+msgid "Align to the base type of the bit-field"
+msgstr "Justér til grundtypen for bitfeltet"
-#: config/rs6000/sysv4.h:106
-msgid "Don't align to the base type of the bitfield."
-msgstr ""
+#: config/rs6000/sysv4.h:105
+msgid "Don't align to the base type of the bit-field"
+msgstr "Justér ikke til grundtypen for bitfeltet"
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
-msgstr ""
+msgstr "Antag ikke at ujusterede tilgange håndteres af systemet"
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
-msgstr ""
-
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
-msgid "Produce code relocatable at runtime."
-msgstr ""
-
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
-msgid "Don't produce code relocatable at runtime."
-msgstr ""
-
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
-msgid "Produce little endian code."
-msgstr ""
-
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
-msgid "Produce big endian code."
-msgstr ""
+msgstr "Antag at ujusterede tilgange håndteres af systemet"
+
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+msgid "Produce code relocatable at runtime"
+msgstr "Generér kode som kan flyttes på kørselstidspunktet"
+
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+msgid "Don't produce code relocatable at runtime"
+msgstr "Generér ikke kode som kan flyttes på kørselstidspunktet"
+
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+msgid "Produce little endian code"
+msgstr "Generér lilleendet kode"
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+msgid "Produce big endian code"
+msgstr "Generér storendet kode"
+
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
+msgid "no description yet"
+msgstr "ingen beskrivelse endnu"
-#: config/rs6000/sysv4.h:130 config/sparc/linux.h:84
-#: config/sparc/linux64.h:140
-msgid "Use 128 bit long doubles"
-msgstr ""
+#: config/rs6000/sysv4.h:132
+msgid "Use EABI"
+msgstr "Benyt EABI"
-#: config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132
-#: config/rs6000/sysv4.h:133 config/rs6000/sysv4.h:134
-#: config/rs6000/sysv4.h:135 config/rs6000/sysv4.h:136
-#: config/rs6000/sysv4.h:143 config/rs6000/sysv4.h:144
-#: config/rs6000/sysv4.h:155 config/rs6000/sysv4.h:156
-#: config/rs6000/sysv4.h:157 config/rs6000/sysv4.h:159
-msgid "no description yet"
-msgstr ""
+#: config/rs6000/sysv4.h:133
+msgid "Don't use EABI"
+msgstr "Benyt ikke EABI"
-#: config/rs6000/sysv4.h:137
-msgid "Use EABI."
-msgstr ""
+#: config/rs6000/sysv4.h:136
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr "Tillad ikke bitfelter at krydse ordgrænser"
#: config/rs6000/sysv4.h:138
-msgid "Don't use EABI."
-msgstr ""
+msgid "Use alternate register names"
+msgstr "Benyt alternative registernavne"
#: config/rs6000/sysv4.h:140
-#, fuzzy
-msgid "Use alternate register names."
-msgstr "ukendt registernavn '%s'"
+msgid "Don't use alternate register names"
+msgstr "Benyt ikke alternative registernavne"
-#: config/rs6000/sysv4.h:142
-msgid "Don't use alternate register names."
-msgstr ""
+#: config/rs6000/sysv4.h:144
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "Sammenkæd med libsim.a, libc.a og sim-crt0.o"
#: config/rs6000/sysv4.h:146
-msgid "Link with libsim.a, libc.a and sim-crt0.o."
-msgstr ""
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "Sammenkæd med libads.a, libc.a og crt0.o"
#: config/rs6000/sysv4.h:148
-msgid "Link with libads.a, libc.a and crt0.o."
-msgstr ""
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "Sammenkæd med libyk.a, libc.a og crt0.o"
#: config/rs6000/sysv4.h:150
-msgid "Link with libyk.a, libc.a and crt0.o."
-msgstr ""
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "Sammenkæd med libmvme.a, libc.a og crt0.o"
#: config/rs6000/sysv4.h:152
-msgid "Link with libmvme.a, libc.a and crt0.o."
-msgstr ""
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "Sæt PPC_EMB-bitten i ELF-tilvalgshovedet"
#: config/rs6000/sysv4.h:154
-msgid "Set the PPC_EMB bit in the ELF flags header"
-msgstr ""
+msgid "Use the WindISS simulator"
+msgstr "Benyt WindISS-simulatoren"
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
@@ -6949,4972 +13015,7652 @@ msgstr ""
#.
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control.
-#: config/rs6000/sysv4.h:205
+#: config/rs6000/sysv4.h:214
#, c-format
-msgid "Bad value for -mcall-%s"
-msgstr "Ugyldig værdi til -mcall-%s"
+msgid "bad value for -mcall-%s"
+msgstr "ugyldig værdi til -mcall-%s"
-#: config/rs6000/sysv4.h:221
+#: config/rs6000/sysv4.h:230
#, c-format
-msgid "Bad value for -msdata=%s"
-msgstr "Ugyldig værdi til -msdata=%s"
+msgid "bad value for -msdata=%s"
+msgstr "ugyldig værdi til -msdata=%s"
-#: config/rs6000/sysv4.h:238
+#: config/rs6000/sysv4.h:247
#, c-format
-msgid "-mrelocatable and -msdata=%s are incompatible."
+msgid "-mrelocatable and -msdata=%s are incompatible"
msgstr "-mrelocatable og -msdata=%s er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:246
+#: config/rs6000/sysv4.h:255
#, c-format
-msgid "-f%s and -msdata=%s are incompatible."
-msgstr "-f%s og -msdata=%s er indbyrdes uforenelige."
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-f%s og -msdata=%s er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:255
+#: config/rs6000/sysv4.h:264
#, c-format
-msgid "-msdata=%s and -mcall-%s are incompatible."
-msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige."
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:262
-msgid "-mrelocatable and -mno-minimal-toc are incompatible."
-msgstr "-mrelocatable og -mno-minimal-toc er indbyrdes uforenelige."
+#: config/rs6000/sysv4.h:273
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-mrelocatable og -mno-minimal-toc er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:268
+#: config/rs6000/sysv4.h:279
#, c-format
-msgid "-mrelocatable and -mcall-%s are incompatible."
-msgstr "-mrelocatable og -mcall-%s er indbyrdes uforenelige."
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-mrelocatable og -mcall-%s er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:275
+#: config/rs6000/sysv4.h:286
#, c-format
-msgid "-fPIC and -mcall-%s are incompatible."
-msgstr "-fPIC og -mcall-%s er indbyrdes uforenelige."
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-fPIC og -mcall-%s er indbyrdes uforenelige"
-#: config/rs6000/sysv4.h:282
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
-msgstr "-mcall-aixdesc skal være ordnet med de mest betydende byte først i hukommelsen (big endian)"
+msgstr "-mcall-aixdesc skal være stor-endet"
-#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
-#, fuzzy
-msgid "Generate code for big endian"
-msgstr "Generér kode til en given cpu"
+#: config/s390/s390.c:3063
+msgid "invalid UNSPEC as operand (1)"
+msgstr "ugyldig UNSPEC som operand (1)"
-#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
-#, fuzzy
-msgid "Generate code for little endian"
-msgstr "Generér kode til en given cpu"
+#: config/s390/s390.c:3123
+msgid "invalid UNSPEC as operand (2)"
+msgstr "ugyldig UNSPEC som operand (2)"
-#: config/sparc/sp86x-aout.h:53 config/sparc/sp86x-elf.h:66
-msgid "Use little-endian byte order for data"
-msgstr ""
+#: config/s390/s390.c:3129
+msgid "UNKNOWN in s390_output_symbolic_const !?"
+msgstr "UNKNOWN i s390_output_symbolic_const !?"
+
+#: config/s390/s390.c:3147
+msgid "Cannot decompose address."
+msgstr "Kan ikke adskille adresse."
+
+#: config/s390/s390.c:3308
+msgid "UNKNOWN in print_operand !?"
+msgstr "UNKNOWN i print_operand !?"
+
+#: config/s390/s390.c:4961
+msgid "Total size of local variables exceeds architecture limit."
+msgstr "Total størrelse af lokale variable overstiger arkitekturgrænsen."
+
+# RETMIG: hvad er backchain?
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr "Sæt backchain"
+
+#: config/s390/s390.h:71
+msgid "Don't set backchain (faster, but debug harder"
+msgstr "Sæt ikke backchain (hurtigere, men sværere at fejlanalysere)"
+
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
+msgstr "Benyt bras til kørbar fil < 64k"
+
+#: config/s390/s390.h:73
+msgid "Don't use bras"
+msgstr "Benyt ikke bras"
+
+#: config/s390/s390.h:74
+msgid "Additional debug prints"
+msgstr "Udskriv ekstra fejlanalyseringsinfo"
+
+#: config/s390/s390.h:75
+msgid "Don't print additional debug prints"
+msgstr "Udskriv ikke ekstra fejlanalyseringsinfo"
+
+#: config/s390/s390.h:76
+msgid "64 bit mode"
+msgstr "64 bit-tilstand"
+
+#: config/s390/s390.h:77
+msgid "31 bit mode"
+msgstr "31 bit-tilstand"
+
+#: config/s390/s390.h:78
+msgid "mvcle use"
+msgstr "Benyt mvcle"
-#: config/sparc/sparc.c:253
+#: config/s390/s390.h:79
+msgid "mvc&ex"
+msgstr "mvc&ex"
+
+#: config/sh/sh.c:5137
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs understøttes ikke af denne undermålarkitektur"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "egenskaben interrupt_handler er ikke forenelig med -m5-compact"
+
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr "egenskaben '%s' kan kun anvendes sammen med afbrydelsesfunktioner"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+msgid "Profiling is not supported on this target."
+msgstr "Profilering er ikke understøttet på målarkitekturen."
+
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s understøttes ikke af denne konfiguration"
-#: config/sparc/sparc.c:260
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 er ikke tilladt med -m64"
-#: config/sparc/sparc.c:280
-#, c-format
-msgid "bad value (%s) for -mcmodel= switch"
-msgstr "ugyldig værdi (%s) til '-mcmodel='tilvalget"
-
-#: config/sparc/sparc.c:285
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= understøttes ikke på 32 bit-systemer"
-#: config/sparc/sparc.c:366
-msgid "profiling does not support code models other than medlow"
-msgstr "profilgenerering understøtter ikke andre kodemodeller end medlow"
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, c-format
+msgid "invalid %%Y operand"
+msgstr "ugyldig %%Y-operand"
-#: config/sparc/sparc.c:5712 config/sparc/sparc.c:5718
+#: config/sparc/sparc.c:6417
#, c-format
-msgid "Invalid %%Y operand"
-msgstr "Ugyldig %%Y-operand"
+msgid "invalid %%A operand"
+msgstr "ugyldig %%A-operand"
-#: config/sparc/sparc.c:5788
+#: config/sparc/sparc.c:6427
#, c-format
-msgid "Invalid %%A operand"
-msgstr "Ugyldig %%A-operand"
+msgid "invalid %%B operand"
+msgstr "ugyldig %%B-operand"
-#: config/sparc/sparc.c:5798
+#: config/sparc/sparc.c:6466
#, c-format
-msgid "Invalid %%B operand"
-msgstr "Ugyldig %%B-operand"
+msgid "invalid %%c operand"
+msgstr "ugyldig %%c-operand"
-#: config/sparc/sparc.c:5837
+#: config/sparc/sparc.c:6467
#, c-format
-msgid "Invalid %%c operand"
-msgstr "Ugyldig %%c-operand"
+msgid "invalid %%C operand"
+msgstr "ugyldig %%C-operand"
-#: config/sparc/sparc.c:5838
+#: config/sparc/sparc.c:6488
#, c-format
-msgid "Invalid %%C operand"
-msgstr "Ugyldig %%C-operand"
+msgid "invalid %%d operand"
+msgstr "ugyldig %%d-operand"
-#: config/sparc/sparc.c:5859
+#: config/sparc/sparc.c:6489
#, c-format
-msgid "Invalid %%d operand"
-msgstr "Ugyldig %%d-operand"
+msgid "invalid %%D operand"
+msgstr "ugyldig %%D-operand"
-#: config/sparc/sparc.c:5860
+#: config/sparc/sparc.c:6505
#, c-format
-msgid "Invalid %%D operand"
-msgstr "Ugyldig %%D-operand"
+msgid "invalid %%f operand"
+msgstr "ugyldig %%f-operand"
-#: config/sparc/sparc.c:5878
+#: config/sparc/sparc.c:6519
#, c-format
-msgid "Invalid %%f operand"
-msgstr "Ugyldig %%f-operand"
+msgid "invalid %%s operand"
+msgstr "ugyldig %%s-operand"
-#: config/sparc/sparc.c:5928
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr "long long-konstant er ikke en gyldig umiddelbar operand"
-#: config/sparc/sparc.c:5931
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr "kommatalskonstant er ikke en gyldig umiddelbar operand"
-#. To make profiling work with -f{pic,PIC}, we need to emit the profiling
-#. code into the rtl. Also, if we are profiling, we cannot eliminate
-#. the frame pointer (because the return address will get smashed).
-#: config/sparc/sparc.h:403
-#, c-format
-msgid "%s and profiling conflict: disabling %s"
-msgstr ""
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr "Benyt 128 bit long double"
-#: config/sparc/sparc.h:587
-msgid "Use FUNCTION_EPILOGUE"
-msgstr ""
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr "Generér kode til storendet"
-#: config/sparc/sparc.h:589
-msgid "Do not use FUNCTION_EPILOGUE"
-msgstr ""
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr "Generér kode til lilleendet"
-#: config/sparc/sparc.h:591
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr "Benyt lilleendet byte-orden til data"
+
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
-msgstr ""
+msgstr "Antag at double-variabler kan være ujusterede"
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
-msgstr ""
+msgstr "Antag at alle double-variabler er justerede"
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
-msgstr ""
+msgstr "Overbring -assert pure-text til sammenkæderen"
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
-msgstr ""
+msgstr "Overbring ikke -assert pure-text til sammenkæderen"
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
-msgstr ""
+msgstr "Benyt flad registervinduesmodel"
-#: config/sparc/sparc.h:601
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
-msgstr ""
+msgstr "Benyt ikke flad registervinduesmodel"
-#: config/sparc/sparc.h:603
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
-msgstr ""
+msgstr "Benyt ABI-reserverede registre"
-#: config/sparc/sparc.h:605
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
-msgstr ""
+msgstr "Benyt ikke ABI-reserverede registre"
-#: config/sparc/sparc.h:607
-#, fuzzy
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
-msgstr "Se %s for instruktioner."
+msgstr "Benyt hardware quad-kommatalsinstruktioner"
-#: config/sparc/sparc.h:609
-#, fuzzy
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke hardware quad-kommatalsinstruktioner"
-#: config/sparc/sparc.h:611
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
-msgstr ""
+msgstr "Oversæt for v8plus-ABI"
-#: config/sparc/sparc.h:613
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
-msgstr ""
+msgstr "Oversæt ikke for v8plus-ABI"
-#: config/sparc/sparc.h:615
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
-msgstr ""
+msgstr "Benyt Visual Instruction Set"
-#: config/sparc/sparc.h:617
-#, fuzzy
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
-msgstr "Integrér ikke alle kendte strengoperationer"
+msgstr "Benyt ikke Visual Instruction Set"
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:620
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
-msgstr ""
+msgstr "Optimér for Cypress-processorer"
-#: config/sparc/sparc.h:622
-msgid "Optimize for SparcLite processors"
-msgstr ""
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
+msgstr "Optimér for SPARCLite-processorer"
-#: config/sparc/sparc.h:624
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
-msgstr ""
+msgstr "Optimér for F930-processorer"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
-msgstr ""
+msgstr "Optimér for F934-processorer"
-#: config/sparc/sparc.h:628
-msgid "Use V8 Sparc ISA"
-msgstr ""
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr "Benyt V8 SPARC ISA"
-#: config/sparc/sparc.h:630
-msgid "Optimize for SuperSparc processors"
-msgstr ""
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
+msgstr "Optimér for SuperSPARC-processorer"
#. End of deprecated options.
-#: config/sparc/sparc.h:633
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
-msgstr ""
+msgstr "Henvisninger er 64 bit"
-#: config/sparc/sparc.h:635
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
-msgstr ""
+msgstr "Henvisninger er 32 bit"
-#: config/sparc/sparc.h:637
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
-msgstr ""
+msgstr "Benyt 32 bit-API"
-#: config/sparc/sparc.h:639
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
-msgstr ""
+msgstr "Benyt 64 bit-API"
-#: config/sparc/sparc.h:641
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
-msgstr ""
+msgstr "Benyt stakafsæt"
-#: config/sparc/sparc.h:643
-#, fuzzy
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
-msgstr "Brug ikke hardware-kommatal"
+msgstr "Benyt ikke stakafsæt"
-#: config/sparc/sparc.h:645
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
-msgstr ""
+msgstr "Benyt strukturer på stærkere justering til dobbelt-ord kopier"
-#: config/sparc/sparc.h:647
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
-msgstr ""
+msgstr "Benyt ikke strukturer på stærkere justering til dobbelt-ord kopier"
-#: config/sparc/sparc.h:649
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
-msgstr ""
+msgstr "Optimér halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
-#: config/sparc/sparc.h:651
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
-msgstr ""
+msgstr "Optimér ikke halekaldsinstruktioner i maskinkodeoversætteren og sammenkæderen"
-#: config/sparc/sparc.h:712
-msgid "Use given Sparc code model"
-msgstr ""
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr "Benyt given SPARC-kodemodel"
+
+#: config/stormy16/stormy16.c:1192
+msgid "cannot use va_start in interrupt function"
+msgstr "kan ikke bruge va_start i afbrydelsesfunktion"
+
+#: config/stormy16/stormy16.c:1552
+msgid "`B' operand is not constant"
+msgstr "'B'-operanden er ikke konstant"
+
+#: config/stormy16/stormy16.c:1558
+msgid "`B' operand has multiple bits set"
+msgstr "'B'-operanden har flere bit sat"
+
+#: config/stormy16/stormy16.c:1585
+msgid "`o' operand is not constant"
+msgstr "'o'-operanden er ikke konstant"
-#: config/v850/v850-c.c:68
+#: config/stormy16/stormy16.c:1600
+msgid "xstormy16_print_operand: unknown code"
+msgstr "xstormy16_print_operand: ukendt kode"
+
+#: config/stormy16/stormy16.c:1650
+#, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr "switch-sætning med %lu elementer er for stor"
+
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
-msgstr ""
+msgstr "'#pragma GHS endXXXX' fundet uden forudgående 'startXXX'"
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
-msgstr ""
+msgstr "'#pragma GHS endXXXX' passer ikke med forudgående 'startXXX'"
-#: config/v850/v850-c.c:95
-msgid "Cannot set interrupt attribute: no current function"
-msgstr ""
+#: config/v850/v850-c.c:94
+msgid "cannot set interrupt attribute: no current function"
+msgstr "kan ikke sætte afbrydelsesegenskaben: ingen aktuel funktion"
-#: config/v850/v850-c.c:103
-msgid "Cannot set interrupt attribute: no such identifier"
-msgstr ""
+#: config/v850/v850-c.c:102
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr "kan ikke sætte afbrydelsesegenskaben: intet sådant kaldenavn"
-#: config/v850/v850-c.c:149
-#, fuzzy
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs section'"
-#: config/v850/v850-c.c:166
-#, fuzzy, c-format
-msgid "unrecognised section name \"%s\""
-msgstr "ukendt registernavn '%s'"
+#: config/v850/v850-c.c:165
+#, c-format
+msgid "unrecognized section name \"%s\""
+msgstr "ukendt sektionsnavn \"%s\""
-#: config/v850/v850-c.c:181
-#, fuzzy
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
-msgstr "forkert udformet #pragma-direktiv"
+msgstr "forkert udformet '#pragma ghs section'"
-#: config/v850/v850-c.c:201
-#, fuzzy
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs interrupt'"
-#: config/v850/v850-c.c:213
-#, fuzzy
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs starttda'"
-#: config/v850/v850-c.c:225
-#, fuzzy
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs startsda'"
-#: config/v850/v850-c.c:237
-#, fuzzy
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs startzda'"
-#: config/v850/v850-c.c:249
-#, fuzzy
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs endtda'"
-#: config/v850/v850-c.c:261
-#, fuzzy
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs endsda'"
-#: config/v850/v850-c.c:273
-#, fuzzy
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen af '#pragma ghs endzda'"
-#: config/v850/v850.c:107
+#: config/v850/v850.c:129
#, c-format
-msgid "%s=%s is not numeric."
-msgstr "%s=%s er ikke et tal."
+msgid "%s=%s is not numeric"
+msgstr "%s=%s er ikke et tal"
-#: config/v850/v850.c:114
+#: config/v850/v850.c:136
#, c-format
-msgid "%s=%s is too large."
-msgstr "%s=%s er for stor."
+msgid "%s=%s is too large"
+msgstr "%s=%s er for stor"
+
+#: config/v850/v850.c:302
+msgid "const_double_split got a bad insn:"
+msgstr "const_double_split modtog en ugyldig instruktion:"
-#: config/v850/v850.c:2039
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr "output_move_single:"
+
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
-msgstr ""
+msgstr "en dataområdeegenskab kan ikke angives for lokale variable"
-#: config/v850/v850.c:2047
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
-msgstr ""
+msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
+
+#: config/v850/v850.c:2447
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr "falsk JR-konstruktion: %d\n"
-#: config/v850/v850.c:2249
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
-msgid "Bogus JR construction: %d\n"
-msgstr "Falsk JR-konstruktion: %d\n"
+msgid "bad amount of stack space removal: %d"
+msgstr "ugyldig størrelse af stakpladsfjernelse: %d"
-#: config/v850/v850.c:2270 config/v850/v850.c:2472
+#: config/v850/v850.c:2646
#, c-format
-msgid "Bad amount of stack space removal: %d"
-msgstr "Ugyldig størrelse af stakpladsfjernelse: %d"
+msgid "bogus JARL construction: %d\n"
+msgstr "falsk JARL-konstruktion: %d\n"
-#: config/v850/v850.c:2448
+#: config/v850/v850.c:3026
#, c-format
-msgid "Bogus JARL construction: %d\n"
-msgstr "Falsk JARL-konstruktion: %d\n"
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "Falsk DISPOSE-konstruktion: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr "For meget stakplads at tage sig af: %d"
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "Falsk PREPARE-konstruktion: %d\n"
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "For meget stakplads at forberede: %d"
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:121
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
-msgstr ""
+msgstr "Understøt Green Hills-ABI"
-#: config/v850/v850.h:124
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
-msgstr ""
+msgstr "Forbyd PC-relative funktionskald"
-#: config/v850/v850.h:127
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
-msgstr ""
+msgstr "Genbrug r30 på et pr. funktionsgrundlag"
-#: config/v850/v850.h:130
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
-msgstr ""
+msgstr "Benyt stubbe til funktionsindledninger"
-#: config/v850/v850.h:133
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
-msgstr ""
+msgstr "Samme som: -mep -mprolog-function"
-#: config/v850/v850.h:134
-#, fuzzy
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
-msgstr "Aktivér stakprøvning"
+msgstr "Aktivér bagendefejlanalyseringsinfo"
-#: config/v850/v850.h:136
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
-msgstr ""
+msgstr "Oversæt for v850-processoren"
+
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr "Oversæt for v850e-processoren"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr "Aktivér brug af short load-instruktioner"
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr "Benyt ikke callt-instruktionen"
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr "Benyt ikke registrene r2 og r5"
-#: config/v850/v850.h:139
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr "Gennemtving streng justering"
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
-msgstr ""
+msgstr "Benyt 4 byte-elementer i switch-tabeller"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/v850/v850.h:183
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
-msgstr ""
+msgstr "Angiv den maks. størrelse af data til TDA-området"
-#: config/v850/v850.h:186
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
-msgstr ""
+msgstr "Angiv den maks. størrelse af data til SDA-området"
-#: config/v850/v850.h:189
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
-msgstr ""
+msgstr "Angiv den maks. størrelse af data til ZDA-området"
-#: convert.c:67
-msgid "cannot convert to a pointer type"
-msgstr "kan ikke konverteres til en henvisningstype"
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
+msgstr "ugyldig test"
-#: convert.c:100
-msgid "pointer value used where a floating point value was expected"
-msgstr "en henvisningsværdi er angivet hvor der forventedes en kommatalsværdi"
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
+msgstr "booleske registre er påkrævet til kommatalsindstillingen"
-#: convert.c:104
-msgid "aggregate value used where a float was expected"
-msgstr "en værdi af en sammensat type er angivet hvor der forventedes et kommatal"
+#: config/xtensa/xtensa.c:1991
+msgid "invalid mask"
+msgstr "ugyldig maske"
-#: convert.c:130
-msgid "conversion to incomplete type"
-msgstr "konvertering til en ufuldstændig type"
+#: config/xtensa/xtensa.c:2038
+msgid "invalid address"
+msgstr "ugyldig adresse"
-#: convert.c:390 convert.c:470
-msgid "can't convert between vector values of different size"
-msgstr ""
+#: config/xtensa/xtensa.c:2063
+msgid "no register in address"
+msgstr "ingen registre i adresse"
-#: convert.c:396
-msgid "aggregate value used where an integer was expected"
-msgstr "en værdi af en sammensat type er angivet hvor der forventedes et heltal"
+#: config/xtensa/xtensa.c:2071
+msgid "address offset not a constant"
+msgstr "adresseafsæt er ikke en konstant"
-#: convert.c:448 f/com.c:1132
-msgid "pointer value used where a complex was expected"
-msgstr "en henvisningsværdi er angivet hvor der forventedes et komplekst tal"
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "kun variabler uden startværdi kan placeres i .bss-sektionen"
-#: convert.c:452 f/com.c:1134
-msgid "aggregate value used where a complex was expected"
-msgstr "en værdi af en sammensat type er angivet hvor der forventedes et komplekst tal"
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
+msgstr "Benyt Xtensa-kodetæthedsindstillingen"
-#: convert.c:476
-#, fuzzy
-msgid "can't convert value to a vector"
-msgstr "kan ikke konverteres til en henvisningstype"
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
+msgstr "Benyt ikke Xtensa-kodetæthedsindstillingen"
-#: cp/call.c:379
-#, fuzzy
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
+msgstr "Benyt Xtensa-MAC16-indstillingen"
+
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
+msgstr "Benyt ikke Xtensa-MAC16-indstillingen"
+
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
+msgstr "Benyt Xtensa-MUL16-indstillingen"
+
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
+msgstr "Benyt ikke Xtensa-MUL16-indstillingen"
+
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
+msgstr "Benyt Xtensa-MUL32-indstillingen"
+
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
+msgstr "Benyt ikke Xtensa-MUL32-indstillingen"
+
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
+msgstr "Benyt Xtensa-NSA-indstillingen"
+
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
+msgstr "Benyt ikke Xtensa-NSA-indstillingen"
+
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
+msgstr "Benyt Xtensa-MIN/MAX-indstillingen"
+
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr "Benyt ikke Xtensa-MIN/MAX-indstillingen"
+
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
+msgstr "Benyt Xtensa-SEXT-indstillingen"
+
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
+msgstr "Benyt ikke Xtensa-SEXT-indstillingen"
+
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
+msgstr "Benyt Xtensa-indstillingen til booleske registre"
+
+#: config/xtensa/xtensa.h:148
+msgid "Do not use the Xtensa boolean register option"
+msgstr "Benyt ikke Xtensa-indstillingen til booleske registre"
+
+#: config/xtensa/xtensa.h:150
+msgid "Use the Xtensa floating-point unit"
+msgstr "Benyt kommatalsenheden til Xtensa"
+
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
+msgstr "Benyt ikke kommatalsenheden til Xtensa"
+
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Deaktivér sammensatte gang/addér- og gang/subtrahér-kommatalsinstruktioner"
+
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Aktivér sammensatte gang/addér- og gang/subtrahér-kommatalsinstruktioner"
+
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
+msgstr "Serialisér volatile hukommelsesreference med MEMW-instruktioner"
+
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr "Serialisér ikke volatile hukommelsesreference med MEMW-instruktioner"
+
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
+msgstr "Fordel konstanter med kode i tekstsektionen"
+
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
+msgstr "Anbring konstanter i en adskilt konstantsektion"
+
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr "Justér automatisk forgreningsmål for at reducere forgreningsstraffe"
+
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
+msgstr "Justér ikke automatisk forgreningsmål"
+
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr "Benyt indirekte CALLXn-instruktioner for store programmer"
+
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
+msgstr "Benyt direkte CALLn-instruktioner for hurtige kald"
+
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
+msgstr "'-gnat' stavet forkert som '-gant'"
+
+#: cp/call.c:261 cp/init.c:1594
+msgid "qualified type `%T' does not match destructor name `~%T'"
+msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
+
+#: cp/call.c:270
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+msgstr "typen af '%E' passer ikke til destruktionsfunktionstypen '%T' (typen var '%T')"
+
+#: cp/call.c:279
+msgid "`%D' is a namespace"
+msgstr "'%D' er et navnerum"
+
+#: cp/call.c:287
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+msgstr "stamobjektet '%E' fra metodekald forsynet med virkefelt er af en ikke-sammensat type '%T'"
+
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
+msgstr "kan ikke kalde henvisning til medlemsfunktion her"
-#: cp/call.c:509
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr "destruktionsfunktioner kan ikke have parametre"
-#: cp/call.c:2867
-msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+#: cp/call.c:522
+msgid "destructor name `~%T' does not match type `%T' of expression"
+msgstr "destruktionsfunktionsnavn '~T' passer ikke med typen '%T' for udtrykket"
+
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'"
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr "forespørgsel efter medlemmet '%D' er tvetydigt"
+
+#: cp/call.c:2537
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s %D(%T, %T, %T) <indbygget>"
+
+#: cp/call.c:2542
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s %D(%T, %T) <indbygget>"
+
+#: cp/call.c:2546
+msgid "%s %D(%T) <built-in>"
+msgstr "%s %D(%T) <indbygget>"
+
+#: cp/call.c:2550
+msgid "%s %T <conversion>"
+msgstr "%s %T <konvertering>"
+
+#: cp/call.c:2552
+msgid "%s %+#D%s"
+msgstr "%s %+#D%s"
+
+#: cp/call.c:2726
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr "konvertering fra '%T' til '%T' er tvetydigt"
+
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "'%T' er ikke af en klasse- eller union-type"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "ufuldstændig type '%T' kan ikke bruges til at navngive et virkefelt"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr "'%D' har intet medlem ved navn '%E'"
+
+#: cp/call.c:2933
+msgid "no matching function for call to `%D(%A)'"
+msgstr "ingen passende funktion for kald til '%D(%A)'"
+
+#: cp/call.c:2944 cp/call.c:5087
+msgid "call of overloaded `%D(%A)' is ambiguous"
+msgstr "kald af flertydig '%D(%A)' er tvetydigt"
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
+#, c-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr "henvisning til medlemsfunktionen %E kan ikke kaldes uden et objekt; overvej at benytte .* eller ->*"
+
+#: cp/call.c:3036
+msgid "no match for call to `(%T) (%A)'"
+msgstr "ingen passende fundet for kald til '(%T) (%A)'"
+
+#: cp/call.c:3046
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr "kald af '(%T) (%A)' er tvetydigt"
+
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
+
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "%s for operatoren '%T %s' "
+
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/class.c:1438
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
+
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s for operatoren '%T %s' "
+
+#: cp/call.c:3191
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "ISO C++ forbyder udeladelse af den mellemste del af et ?:-udtryk"
+
+#: cp/call.c:3250
+#, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
+msgstr "'%E' har typen 'void' og er ikke et throw-udtryk"
+
+#: cp/call.c:3283 cp/call.c:3475
+msgid "operands to ?: have different types"
+msgstr "operander til ?: har forskellige typer"
+
+#: cp/call.c:3428
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr "enum-typer passer ikke sammen i betinget udtryk: '%T' og '%T'"
+
+#: cp/call.c:3435
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "enum- og ikke enum-type i betinget udtryk"
+
+#: cp/call.c:3516
+msgid "`%D' must be declared before use"
+msgstr "'%D' skal erklæres før brug"
+
+#: cp/call.c:3706
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren i stedet"
+
+#: cp/call.c:3753
+msgid "using synthesized `%#D' for copy assignment"
+msgstr "bruger syntetiseret '%#D' for kopitildeling"
+
+#: cp/call.c:3755
+msgid " where cfront would use `%#D'"
+msgstr " hvor cfront ville bruge '%#D'"
+
+#: cp/call.c:3782
+msgid "comparison between `%#T' and `%#T'"
+msgstr "sammenligning mellem '%#T' og '%#T'"
+
+#: cp/call.c:4021
+msgid "no suitable `operator delete' for `%T'"
+msgstr "ingen passende 'operator delete' for '%T'"
+
+#: cp/call.c:4040
+msgid "`%+#D' is private"
+msgstr "'%+#D' er privat"
+
+#: cp/call.c:4042
+msgid "`%+#D' is protected"
+msgstr "'%+#D' er beskyttet"
+
+#: cp/call.c:4044
+msgid "`%+#D' is inaccessible"
+msgstr "'%+#D' er ikke tilgængelig"
+
+#: cp/call.c:4045
+msgid "within this context"
+msgstr "i denne kontekst"
+
+#: cp/call.c:4088
+msgid "invalid conversion from `%T' to `%T'"
+msgstr "ugyldig konvertering fra '%T' til '%T'"
+
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+msgid " initializing argument %P of `%D'"
+msgstr " ved klargøring af parameteren %P til '%D'"
+
+#: cp/call.c:4152 cp/call.c:4156
+msgid " initializing argument %P of `%D' from result of `%D'"
+msgstr " ved klargøring af parameteren %P til '%D' fra resultatet af '%D'"
+
+#: cp/call.c:4162 cp/call.c:4165
+msgid " initializing temporary from result of `%D'"
+msgstr " ved klargøring af midlertidig variabel fra resultatet af '%D'"
+
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'; kald vil afbryde på kørselstidspunktet"
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
+msgstr "kan ikke modtage objekter af en ikke-POD type '%#T' gennem '...'"
+
+#: cp/call.c:4523
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer"
+
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "'%T' er en utilgængelig stamklasse til '%T'"
+
+#: cp/call.c:4786
+msgid "could not find class$ field in java interface type `%T'"
+msgstr "kunne ikke finde et class$-felt i Java-grænsefladetypen '%T'"
+
+#: cp/call.c:4974
+msgid "call to non-function `%D'"
+msgstr "kald af ikke-funktion '%D'"
+
+#: cp/call.c:5076
+msgid "no matching function for call to `%T::%D(%A)%#V'"
+msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'"
+
+#: cp/call.c:5106
+msgid "cannot call member function `%D' without object"
+msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt"
+
+#: cp/call.c:5704
+msgid "passing `%T' chooses `%T' over `%T'"
+msgstr "videregivelse af '%T' vælger '%T' frem for '%T'"
+
+#: cp/call.c:5706 cp/decl2.c:4154
+msgid " in call to `%D'"
+msgstr " i kald af '%D'"
+
+#: cp/call.c:5755
+msgid "choosing `%D' over `%D'"
+msgstr "vælger '%D' frem for '%D'"
+
+#: cp/call.c:5756
+msgid " for conversion from `%T' to `%T'"
+msgstr " for konvertering fra '%T' til '%T'"
+
+#: cp/call.c:5758
+msgid " because conversion sequence for the argument is better"
+msgstr " fordi konverteringssekvensen for parameteren er bedre"
+
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr "ifølge ISO C++ er '%D' og '%D' tvetydigt selvom den værste konvertering for førstnævnte er bedre end den værste konvertering for den sidstnævnte"
+
+#: cp/call.c:5996
+msgid "could not convert `%E' to `%T'"
+msgstr "kunne ikke konvertere '%E' til '%T'"
+
+#: cp/call.c:6105
+#, fuzzy
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
+
+#: cp/call.c:6109
+#, fuzzy
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
+
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr "kan ikke konvertere fra stamklassen '%T' til den nedarvede type '%T' via den virtuelle stamklasse '%T'"
+
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr "'%#D' og '%#D' kan ikke flertydiggøres"
+
+#: cp/class.c:1076
+msgid "duplicate enum value `%D'"
+msgstr "enum-værdien '%D' optræder mere end én gang"
+
+#: cp/class.c:1079
+msgid "duplicate field `%D' (as enum and non-enum)"
+msgstr "feltet '%D' optræder mere end én gang (som enum og som ikke-enum)"
+
+#: cp/class.c:1086
+msgid "duplicate nested type `%D'"
+msgstr "den indlejrede type '%D' optræder mere end én gang"
+
+#: cp/class.c:1097
+msgid "duplicate field `%D' (as type and non-type)"
+msgstr "feltet '%D' optræder mere end én gang (som type og som ikke-type)"
+
+#: cp/class.c:1101
+msgid "duplicate member `%D'"
+msgstr "medlemmet '%D' optræder mere end én gang"
+
+#: cp/class.c:1144
+msgid "conflicting access specifications for method `%D', ignored"
+msgstr "modstridende tilgangsanvisninger til metoden '%D', ignoreret"
+
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr "modstridende tilgangsanvisninger til feltet '%s', ignoreret"
-#: cp/class.c:5533
-msgid "trying to finish struct, but kicked out due to previous parse errors."
-msgstr "forsøgte at afslutte struct, men blev stoppet af tidligere tolkningsfejl."
+#: cp/class.c:1194
+msgid "`%D' names constructor"
+msgstr "'%D' navngiver en konstruktionsfunktion"
+
+#: cp/class.c:1199
+msgid "`%D' invalid in `%T'"
+msgstr "'%D' ugyldig i '%T'"
+
+#: cp/class.c:1207
+msgid "no members matching `%D' in `%#T'"
+msgstr "ingen medlemmer passer til '%D' i '%#T'"
+
+#: cp/class.c:1239 cp/class.c:1247
+msgid "`%D' invalid in `%#T'"
+msgstr "'%D' ugyldig i '%#T'"
+
+#: cp/class.c:1240
+msgid " because of local method `%#D' with same name"
+msgstr " på grund af den lokale metode '%#D' med det samme navn"
+
+#: cp/class.c:1248
+msgid " because of local member `%#D' with same name"
+msgstr " på grund af det lokale medlem '%#D' med det samme navn"
+
+#: cp/class.c:1320
+msgid "base class `%#T' has a non-virtual destructor"
+msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
+
+#: cp/class.c:1340
+msgid "base `%T' with only non-default constructor in class without a constructor"
+msgstr "stamklasse '%T' med kun ikke-standardkonstruktionsfunktion i klasse uden en konstruktionsfunktion"
+
+#: cp/class.c:1912
+msgid "all member functions in class `%T' are private"
+msgstr "alle medlemsfunktioner i klassen '%T' er private"
+
+#: cp/class.c:1926
+msgid "`%#T' only defines a private destructor and has no friends"
+msgstr "'%#T' definerer kun en privat destruktionsfunktion og har ingen venner"
+
+#: cp/class.c:1969
+msgid "`%#T' only defines private constructors and has no friends"
+msgstr "'%#T' definerer kun private konstruktionsfunktioner og har ingen venner"
+
+#: cp/class.c:2090 cp/class.c:5276
+msgid "redefinition of `%#T'"
+msgstr "omdefinering af '%#T'"
+
+#: cp/class.c:2091
+msgid "previous definition of `%#T'"
+msgstr "tidligere definition af '%#T'"
+
+# %D er en funktion
+#: cp/class.c:2365
+msgid "no unique final overrider for `%D' in `%T'"
+msgstr "ingen unik endelig overskrivning af '%D' i '%T'"
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+msgid "`%D' was hidden"
+msgstr "'%D' var skjult"
+
+#: cp/class.c:2713
+msgid " by `%D'"
+msgstr " af '%D'"
+
+#: cp/class.c:2755
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+msgstr "ISO C++ forbyder medlemmet '%D' med samme navn som den omgivende klasse"
-#: cp/class.c:5988
+#: cp/class.c:2760 cp/decl2.c:1331
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+msgstr "'%#D' er ugyldig; en anonym union kan kun have ikke-statiske datamedlemmer"
+
+#: cp/class.c:2766 cp/decl2.c:1337
+msgid "private member `%#D' in anonymous union"
+msgstr "privat medlem '%#D' i en anonym union"
+
+#: cp/class.c:2769 cp/decl2.c:1339
+msgid "protected member `%#D' in anonymous union"
+msgstr "beskyttet medlem '%#D' i en anonym union"
+
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr "vtable-layout for klassen '%T' følger ikke nødvendigvis ABI'et og kan ændre sig i en fremtidig version af GCC pga. underforstået virtuel destruktionsfunktion"
+
+#: cp/class.c:2958
+msgid "bit-field `%#D' with non-integral type"
+msgstr "bitfelt '%#D' med en ikke-heltalstype"
+
+#: cp/class.c:2978
+msgid "bit-field `%D' width not an integer constant"
+msgstr "bredden af bitfeltet '%D' er ikke en heltalskonstant"
+
+#: cp/class.c:2984
+msgid "negative width in bit-field `%D'"
+msgstr "negativ bredde i bitfeltet '%D'"
+
+#: cp/class.c:2989
+msgid "zero width for bit-field `%D'"
+msgstr "en bredde på nul for bitfeltet '%D'"
+
+#: cp/class.c:2995
+msgid "width of `%D' exceeds its type"
+msgstr "bredden af '%D' overstiger typen"
+
+#: cp/class.c:3004
+msgid "`%D' is too small to hold all values of `%#T'"
+msgstr "'%D' er for lille til at indeholde alle værdierne af '%#T'"
+
+#: cp/class.c:3088
+msgid "member `%#D' with constructor not allowed in union"
+msgstr "medlemmet '%#D' med en konstruktionsfunktion er ikke tilladt i en union"
+
+#: cp/class.c:3091
+msgid "member `%#D' with destructor not allowed in union"
+msgstr "medlemmet '%#D' med en destruktionsfunktion er ikke tilladt i en union"
+
+#: cp/class.c:3094
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr "medlemmet '%#D' med en kopitildelingsoperator er ikke tilladt i en union"
+
+#: cp/class.c:3121
+msgid "multiple fields in union `%T' initialized"
+msgstr "flere felter i union '%T' tildeles startværdi"
+
+#: cp/class.c:3234
+msgid "field `%D' in local class cannot be static"
+msgstr "feltet '%D' i lokal klasse kan ikke være statisk"
+
+#: cp/class.c:3240
+msgid "field `%D' invalidly declared function type"
+msgstr "feltet '%D' er på ugyldig vis erklæret som en funktionstype"
+
+#: cp/class.c:3247
+msgid "field `%D' invalidly declared method type"
+msgstr "feltet '%D' er på ugyldig vis erklæret som en medlemsfunktionstype"
+
+#: cp/class.c:3253
+msgid "field `%D' invalidly declared offset type"
+msgstr "feltet '%D' er på ugyldig vis erklæret som en afstandstype"
+
+#. Unions cannot have static members.
+#: cp/class.c:3271
+msgid "field `%D' declared static in union"
+msgstr "feltet '%D' er erklæret statisk i union"
+
+#: cp/class.c:3298
+msgid "non-static reference `%#D' in class without a constructor"
+msgstr "ikke-statisk reference '%#D' i klasse uden en konstruktionsfunktion"
+
+#: cp/class.c:3333
+msgid "non-static const member `%#D' in class without a constructor"
+msgstr "ikke-statisk konstant medlem '%#D' i klasse uden en konstruktionsfunktion"
+
+#: cp/class.c:3349
+msgid "field `%#D' with same name as class"
+msgstr "felt '%#D' med samme navn som klassen"
+
+#: cp/class.c:3367
+msgid "`%#T' has pointer data members"
+msgstr "'%#T' har henvisningsdatamedlemmer"
+
+#: cp/class.c:3371
+msgid " but does not override `%T(const %T&)'"
+msgstr " men overskriver ikke '%T(const %T&)'"
+
+#: cp/class.c:3373
+msgid " or `operator=(const %T&)'"
+msgstr " eller 'operator=(const %T&)'"
+
+#: cp/class.c:3376
+msgid " but does not override `operator=(const %T&)'"
+msgstr " men overskriver ikke 'operator=(const %T&)'"
+
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "afsættet for tom stamklasse '%T' følger ikke nødvendigvis ABI'en og kan ændre sig i en fremtidig version af GCC"
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr "klassen '%T' vil blive betragtet som næsten tom i en fremtidig version af GCC"
+
+#: cp/class.c:4025
+msgid "initializer specified for non-virtual method `%D'"
+msgstr "startværdi angivet for ikke-virtuel medlemsfunktion '%D'"
+
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr "afsættet for virtuel stamklasse '%T' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC"
+
+#: cp/class.c:4861
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "direkte stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed"
+
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "virtuel stamklasse '%T' er ikke tilgængelig i '%T' på grund af tvetydighed"
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "størrelsen der bliver tildelt '%T' følger ikke nødvendigvis ABI'en og kan ændre sig i en fremtidig version af GCC"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+#, fuzzy
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "afsættet for '%D' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC"
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr "afsættet for '%D' følger ikke ABI'en og kan ændre sig i en fremtidig version af GCC"
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "'%D' indeholder tomme klasser hvad der kan få stamklasser til at blive placeret andre steder i en fremtidig version af GCC"
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr "layoutet af klasser der nedarver fra den tomme klasse '%T' kan ændre sig i en fremtidig version af GCC"
+
+#: cp/class.c:5432
+msgid "`%#T' has virtual functions but non-virtual destructor"
+msgstr "'%#T' har virtuelle funktioner, men ikke-virtuel destruktionsfunktion"
+
+#: cp/class.c:5516
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "forsøgte at afslutte struct, men blev stoppet af tidligere fortolkningsfejl"
+
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr "sprogstrengen '\"%s\"' ikke genkendt"
-#: cp/class.c:6303 cp/class.c:6471 cp/class.c:6478
+#: cp/class.c:6078
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr "kan ikke benytte den flertydiggjorte funktion '%D' baseret på konvertering til typen '%T'"
+
+#: cp/class.c:6203
+msgid "no matches converting function `%D' to type `%#T'"
+msgstr "ingen passende ved konvertering af funktionen '%D' til typen '%#T'"
+
+#: cp/class.c:6226
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+msgstr "konvertering af den flertydiggjorte funktion '%D' til typen '%T' er tvetydig"
+
+#: cp/class.c:6252
+msgid "assuming pointer to member `%D'"
+msgstr "antager henvisning til medlemmet '%D'"
+
+#: cp/class.c:6255
+#, c-format
+msgid "(a pointer to member can only be formed with `&%E')"
+msgstr "(en henvisning til medlem kan kun dannes med '&%E')"
+
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr "ikke tilstrækkelig information om typen"
-#: cp/class.c:6455
+#: cp/class.c:6315
+msgid "argument of type `%T' does not match `%T'"
+msgstr "parameter af typen '%T' passer ikke til '%T'"
+
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr "ugyldig operation på uudskiftet type"
-#: cp/class.c:8256
-msgid "object size exceeds built-in limit for virtual function table implementation"
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+msgid "declaration of `%#D'"
+msgstr "omerklæring af '%#D'"
+
+#: cp/class.c:6746
+msgid "changes meaning of `%D' from `%+#D'"
+msgstr "skifter betydningen af '%D' fra '%+#D'"
+
+#: cp/cvt.c:88
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr "kan ikke konvertere fra ufuldstændig type '%T' til '%T'"
+
+#: cp/cvt.c:97
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+msgstr "konvertering af '%E' fra '%T' til '%T' er tvetydigt"
+
+#: cp/cvt.c:126
+msgid "converting from `%T' to `%T'"
+msgstr "konvertering fra '%T' til '%T'"
+
+#: cp/cvt.c:203 cp/cvt.c:207
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+msgstr "typekonvertering af henvisning til medlem fra '%T' til '%T' er via virtuel stamklasse"
+
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr "kan ikke konvertere '%E' fra typen '%T' til typen '%T'"
+
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "ugyldig konvertering fra '%T' til '%T'"
+
+#: cp/cvt.c:504
+msgid "conversion from `%T' to `%T' discards qualifiers"
+msgstr "konvertering fra '%T' til '%T' forkaster modifikationer"
+
+#: cp/cvt.c:522
+msgid "casting `%T' to `%T' does not dereference pointer"
+msgstr "typeomtvingning af '%T' til '%T' følger ikke henvisning"
+
+#: cp/cvt.c:551
+msgid "cannot convert type `%T' to type `%T'"
+msgstr "kan ikke konvertere typen '%T' til typen '%T'"
+
+#: cp/cvt.c:683
+msgid "conversion from `%#T' to `%#T'"
+msgstr "konvertering fra '%#T' til '%#T'"
+
+#: cp/cvt.c:695
+msgid "`%#T' used where a `%T' was expected"
+msgstr "'%#T' benyttet hvor '%T' var forventet"
+
+#: cp/cvt.c:712
+msgid "the address of `%D', will always be `true'"
+msgstr "adressen af '%D' vil altid være 'true'"
+
+#: cp/cvt.c:732
+msgid "`%#T' used where a floating point value was expected"
+msgstr "'%#T' benyttet hvor der forventedes en kommatalsværdi"
+
+#: cp/cvt.c:779
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr "konvertering fra '%T' til en ikke-skalartype '%T' udbedt"
+
+#: cp/cvt.c:865
+msgid "object of incomplete type `%T' will not be accessed in %s"
+msgstr "objekt af den ufuldstændige type '%T' vil ikke blive tilgået i %s"
+
+#: cp/cvt.c:868
+msgid "object of type `%T' will not be accessed in %s"
+msgstr "objekt af typen '%T' vil ikke blive tilgået i %s"
+
+#: cp/cvt.c:884
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+msgstr "objektet '%E' af den ufuldstændige type '%T' vil ikke blive tilgået i %s"
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%s kan ikke finde adressen af flertydiggjort funktion"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
+#, c-format
+msgid "%s is a reference, not call, to function `%E'"
+msgstr "%s er en reference til og ikke et kald af funktionen '%E'"
+
+#: cp/cvt.c:1039
+msgid "converting NULL to non-pointer type"
+msgstr "konverterer NULL til en ikke-henvisningstype"
+
+#: cp/cvt.c:1115
+msgid "ambiguous default type conversion from `%T'"
+msgstr "tvetydig standardtypekonvertering fra '%T'"
+
+#: cp/cvt.c:1117
+msgid " candidate conversions include `%D' and `%D'"
+msgstr " kandidater til konverteringen inkluderer '%D' og '%D'"
+
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
msgstr ""
-#: cp/class.c:8258
-msgid "object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects"
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
msgstr ""
-#: cp/decl.c:4230
-#, fuzzy, c-format
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
+msgid "conflicts with previous declaration `%#D'"
+msgstr "strider mod tidligere erklæring '%#D'"
+
+#: cp/decl.c:1467
+msgid "label `%D' used but not defined"
+msgstr "etiketten '%D' er benyttet, men ikke defineret"
+
+#: cp/decl.c:1472
+msgid "label `%D' defined but not used"
+msgstr "etiketten '%D' er defineret, men ikke benyttet"
+
+#: cp/decl.c:2489
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
+msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'"
+
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
+msgid "previous declaration of `%D'"
+msgstr "'%D' er tidligere erklæret"
+
+#: cp/decl.c:3366 cp/decl.c:3404
+msgid "shadowing %s function `%#D'"
+msgstr "skygger for en %s-funktion '%#D'"
+
+#: cp/decl.c:3375
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr "biblioteksfunktionen '%#D' er omerklæret som '%#D' der ikke er en funktion"
+
+#: cp/decl.c:3380
+msgid "conflicts with built-in declaration `%#D'"
+msgstr "strider mod indbygget erklæring '%#D'"
+
+# følges af næste tekst
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+msgid "new declaration `%#D'"
+msgstr "ny erklæring af '%#D'"
+
+#: cp/decl.c:3400
+msgid "ambiguates built-in declaration `%#D'"
+msgstr "tvetydiggør indbygget erklæring '%#D'"
+
+#: cp/decl.c:3464
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr "'%#D' omerklæret som en anden form for symbol"
+
+#: cp/decl.c:3467
+msgid "previous declaration of `%#D'"
+msgstr "tidligere erklæring af '%#D'"
+
+#: cp/decl.c:3489
+msgid "declaration of template `%#D'"
+msgstr "erklæring af skabelon '%#D'"
+
+#: cp/decl.c:3505 cp/decl.c:3521
+msgid "ambiguates old declaration `%#D'"
+msgstr "tvetydiggør tidligere erklæring '%#D'"
+
+#: cp/decl.c:3513
+msgid "declaration of C function `%#D' conflicts with"
+msgstr "erklæring af C-funktionen '%#D' strider mod"
+
+#: cp/decl.c:3515
+msgid "previous declaration `%#D' here"
+msgstr "tidligere erklæring af '%#D' her"
+
+#: cp/decl.c:3533
+msgid "conflicting types for `%#D'"
+msgstr "modstridende typer for '%#D'"
+
+#: cp/decl.c:3534
+msgid "previous declaration as `%#D'"
+msgstr "tidligere erklæring som '%#D'"
+
+#: cp/decl.c:3577
+msgid "`%#D' previously defined here"
+msgstr "'%#D' tidligere defineret her"
+
+#: cp/decl.c:3578
+msgid "`%#D' previously declared here"
+msgstr "'%#D' tidligere erklæret her"
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+msgid "prototype for `%#D'"
+msgstr "prototypen for '%#D'"
+
+#: cp/decl.c:3588
+msgid "follows non-prototype definition here"
+msgstr "følger definition uden prototype her"
+
+#: cp/decl.c:3600
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr "tidligere erklæring af '%#D' med %L-kædning"
+
+#: cp/decl.c:3602
+msgid "conflicts with new declaration with %L linkage"
+msgstr "strider mod ny erklæring af med %L-kædning"
+
+#: cp/decl.c:3625 cp/decl.c:3632
+msgid "default argument given for parameter %d of `%#D'"
+msgstr "standardparameter givet til %d. parameter for '%#D'"
+
+#: cp/decl.c:3627 cp/decl.c:3634
+msgid "after previous specification in `%#D'"
+msgstr "efter tidligere specifikation i '%#D'"
+
+#: cp/decl.c:3643
+msgid "`%#D' was used before it was declared inline"
+msgstr "'%#D' blev brugt før erklæring som inline"
+
+#: cp/decl.c:3645
+msgid "previous non-inline declaration here"
+msgstr "tidligere ikke-inline erklæring her"
+
+#: cp/decl.c:3699
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr "overflødig omerklæring af '%D' i samme virkefelt"
+
+#: cp/decl.c:3780
+#, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr "erklæring af '%F' kaster forskellige undtagelser"
+
+#: cp/decl.c:3782
+#, c-format
+msgid "than previous declaration `%F'"
+msgstr "end tidligere erklæring '%F'"
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+msgid "explicit specialization of %D after first use"
+msgstr "eksplicit specialisering af %D efter første brug"
+
+#: cp/decl.c:4187
+msgid "`%#D' used prior to declaration"
+msgstr "'%#D' benyttet før erklæring"
+
+#: cp/decl.c:4218
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr "omerklæring af 'wchar_t' som '%T'"
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+msgid "invalid redeclaration of `%D'"
+msgstr "ugyldig omerklæring af '%D'"
+
+#: cp/decl.c:4247
+msgid "as `%D'"
+msgstr "som '%D'"
+
+#: cp/decl.c:4337
+msgid "previous external decl of `%#D'"
+msgstr "tidligere ekstern erklæring af '%#D'"
+
+#: cp/decl.c:4378
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr "'%D' blev tidligere underforstået erklæret til at returnere 'int'"
+
+#: cp/decl.c:4438
+msgid "extern declaration of `%#D' doesn't match"
+msgstr "extern-erklæring af '%#D' passer ikke med"
+
+#: cp/decl.c:4439
+msgid "global declaration `%#D'"
+msgstr "global erklæring '%#D'"
+
+#: cp/decl.c:4472
+msgid "declaration of `%#D' shadows a parameter"
+msgstr "erklæring af '%#D' skygger for en parameter"
+
+#: cp/decl.c:4492
+#, c-format
msgid "declaration of `%s' shadows a member of `this'"
-msgstr "'%s' erklæret som en tabel af void"
+msgstr "erklæring af '%s' skygger for et medlem af 'this'"
+
+#: cp/decl.c:4889
+msgid "`%#D' hides constructor for `%#T'"
+msgstr "'%#D' skjuler konstruktionsfunktion for '%#T'"
+
+#: cp/decl.c:4904
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr "'%#D' strider mod tidligere using-erklæring '%#D'"
-#: cp/decl.c:4871
+#: cp/decl.c:4916
+msgid "previous non-function declaration `%#D'"
+msgstr "tidligere ikke-funktionserklæring '%#D'"
+
+#: cp/decl.c:4917
+msgid "conflicts with function declaration `%#D'"
+msgstr "strider mod funktionserklæring '%#D'"
+
+#: cp/decl.c:5007
+msgid "implicit declaration of function `%#D'"
+msgstr "underforstået erklæring af funktionen '%#D'"
+
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
-#: cp/decl.c:4976 cp/decl.c:5000
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+msgid "jump to label `%D'"
+msgstr "spring til etiketten '%D' "
+
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
-msgstr ""
+msgstr "spring til case-etiket"
+
+#: cp/decl.c:5280
+msgid " crosses initialization of `%#D'"
+msgstr " krydser klargøring af '%#D'"
-#: cp/decl.c:5007 cp/decl.c:5111
+#: cp/decl.c:5283 cp/decl.c:5403
+msgid " enters scope of non-POD `%#D'"
+msgstr " går ind i virkefelt af ikke-POD '%#D'"
+
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr " går ind i try-blok"
-#: cp/decl.c:5009 cp/decl.c:5113
-#, fuzzy
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
-msgstr " går ind i try-blok"
+msgstr " går ind i catch-blok"
-#: cp/decl.c:5092
+#: cp/decl.c:5388
msgid " from here"
-msgstr ""
+msgstr " herfra"
-#: cp/decl.c:6355
-#, fuzzy
-msgid "the ABI requires vtable thunks"
-msgstr "den nye binære grænseflade kræver virtuel tabel-afdelinger"
+#: cp/decl.c:5401
+msgid " skips initialization of `%#D'"
+msgstr " springer over klargøring af '%#D'"
+
+#: cp/decl.c:5437
+msgid "label named wchar_t"
+msgstr "etiket med navnet wchar_t"
+
+#: cp/decl.c:5440
+msgid "duplicate label `%D'"
+msgstr "etiketten '%D' optræder mere end én gang"
+
+#: cp/decl.c:5525
+#, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr "case-etiket '%E' befinder sig ikke inden i en switch-sætning"
+
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+msgid "`%#D' redeclared as %C"
+msgstr "'%#D' omerklæret som %C"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+msgid "invalid use of `%D'"
+msgstr "ugyldig brug af '%D"
+
+#: cp/decl.c:5852
+msgid "`%D::%D' is not a template"
+msgstr "'%D::%D' er ikke en skabelon"
+
+#: cp/decl.c:5869
+msgid "`%D' undeclared in namespace `%D'"
+msgstr "'%D' ikke erklæret i navnerummet '%D'"
+
+#: cp/decl.c:6002
+msgid "`%D' used without template parameters"
+msgstr "'%D' benyttet uden skabelonsparametre"
+
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+msgid "no class template named `%#T' in `%#T'"
+msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'"
+
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+msgid "no type named `%#T' in `%#T'"
+msgstr "ingen type ved navn '%#T' i '%#T'"
+
+#: cp/decl.c:6329
+msgid "lookup of `%D' finds `%#D'"
+msgstr "opslag af '%D' finder '%#D'"
+
+#: cp/decl.c:6331
+msgid " instead of `%D' from dependent base class"
+msgstr " i stedet for '%D' fra afhængig stamklasse"
+
+#: cp/decl.c:6333
+msgid " (use `typename %T::%D' if that's what you meant)"
+msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)"
+
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr "navneopslag for '%D' ændret"
-#: cp/decl.c:6996
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr " passer med '%D' under ISO-standardreglerne"
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr " passer med '%D' under tidligere regler"
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "navneopslaget af '%D' er ændret til ISO 'for'-virkefelt"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr " kan ikke bruge forældet binding til '%D' fordi den har en destruktionsfunktion"
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr " bruger forældet binding til '%D'"
+
+#: cp/decl.c:6609
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+msgstr "opslag af '%D' i virkefeltet for '%#T' ('%#D') passer ikke med opslaget i det aktuelle virkefelt ('%#D')"
+
+#: cp/decl.c:7432
+msgid "an anonymous union cannot have function members"
+msgstr "en anonym union kan ikke have funktionsmedlemmer"
+
+#: cp/decl.c:7449
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
+msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type"
+
+#: cp/decl.c:7452
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
+msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type"
+
+#: cp/decl.c:7455
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+msgstr "medlemmet '%#D' med kopitildelingsoperator er ikke tilladt i anonym sammensat type"
+
+#: cp/decl.c:7493
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr "omerklæring af indbygget type i C++ '%T'"
+
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr "flere typer i én erklæring"
-#: cp/decl.c:6999
-#, fuzzy
-msgid "declaration does not declare anything"
-msgstr "friend-erklæringen er ikke i klassedefinitionen"
-
-#: cp/decl.c:7023
-msgid "Missing type-name in typedef-declaration."
-msgstr ""
+#: cp/decl.c:7556
+msgid "missing type-name in typedef-declaration"
+msgstr "manglende typenavn i typedef-erklæring"
-#: cp/decl.c:7030
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
-msgstr ""
+msgstr "ISO C++ forbyder anonyme strukturer"
+
+#: cp/decl.c:7570
+msgid "`%D' can only be specified for functions"
+msgstr "'%D' kan kun angives for funktioner"
+
+#: cp/decl.c:7572
+msgid "`%D' can only be specified inside a class"
+msgstr "'%D' kan kun angives inden i en klasse"
+
+#: cp/decl.c:7574
+msgid "`%D' can only be specified for constructors"
+msgstr "'%D' kan kun angives for konstruktionsfunktioner"
+
+#: cp/decl.c:7577
+msgid "`%D' can only be specified for objects and functions"
+msgstr "'%D' kan kun angives for objekter og funktioner"
+
+# init dækker over værditildeling her - samme for de næste mange
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "typedef '%D' bliver tildelt en værdi (benyt __typeof__ i stedet)"
+
+#: cp/decl.c:7724
+msgid "function `%#D' is initialized like a variable"
+msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel"
+
+#: cp/decl.c:7736
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi"
+
+#: cp/decl.c:7770
+msgid "`%#D' is not a static member of `%#T'"
+msgstr "'%#D' er ikke et statisk medlem af '%#T'"
+
+#: cp/decl.c:7775
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr "ISO C++ tillader ikke '%T::%D' at blive defineret som '%T::%D'"
+
+#: cp/decl.c:7786
+msgid "duplicate initialization of %D"
+msgstr "%D tildelt startværdi mere end én gang"
+
+#: cp/decl.c:7815
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
+
+#: cp/decl.c:7865
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type"
+
+#: cp/decl.c:7873 cp/decl.c:8432
+msgid "elements of array `%#D' have incomplete type"
+msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
+
+#: cp/decl.c:7889
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr "den sammensatte type '%#D' er af en ufuldstændig type og kan ikke defineres"
+
+#: cp/decl.c:7931
+msgid "`%D' declared as reference but not initialized"
+msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi"
+
+#: cp/decl.c:7940
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr "ISO C++ forbyder brug af en startværdiliste til at klargøre referencen '%D'"
+
+#: cp/decl.c:7970
+msgid "cannot initialize `%T' from `%T'"
+msgstr "kan ikke klargøre '%T' fra %T'"
+
+#: cp/decl.c:8004
+msgid "initializer fails to determine size of `%D'"
+msgstr "startværdien giver ikke størrelsen af '%D'"
+
+#: cp/decl.c:8009
+msgid "array size missing in `%D'"
+msgstr "tabelstørrelsen mangler i '%D'"
+
+#: cp/decl.c:8021
+msgid "zero-size array `%D'"
+msgstr "nulstørrelsestabel '%D'"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+msgid "storage size of `%D' isn't known"
+msgstr "lagringsstørrelsen af '%D' er ikke kendt"
+
+#: cp/decl.c:8081
+msgid "storage size of `%D' isn't constant"
+msgstr "lagringsstørrelsen af '%D' er ikke konstant"
+
+#: cp/decl.c:8137
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)"
+
+#: cp/decl.c:8138
+msgid " you can work around this by removing the initializer"
+msgstr " du kan arbejde dig rundt om dette ved at fjerne startværdien"
+
+#: cp/decl.c:8164
+msgid "uninitialized const `%D'"
+msgstr "konstant '%D' uden startværdi"
+
+#: cp/decl.c:8249
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "startværdi for '%T' skal være indesluttet i krøllede paranteser"
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ tillader ikke udpegede startværdier"
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'"
+
+#: cp/decl.c:8389
+msgid "too many initializers for `%T'"
+msgstr "for mange startværdier for '%T'"
+
+#: cp/decl.c:8426
+msgid "variable-sized object `%D' may not be initialized"
+msgstr "objektet '%D' af variabel størrelse må ikke tildeles en startværdi"
+
+#: cp/decl.c:8437
+msgid "`%D' has incomplete type"
+msgstr "'%D' er af en ufuldstændig type"
+
+#: cp/decl.c:8486
+msgid "`%D' must be initialized by constructor, not by `{...}'"
+msgstr "'%D' skal klargøres af en konstruktionsfunktion, ikke af '{...}'"
+
+#: cp/decl.c:8527
+msgid "structure `%D' with uninitialized const members"
+msgstr "struktur '%D' med konstante medlemmer uden startværdi"
+
+#: cp/decl.c:8529
+msgid "structure `%D' with uninitialized reference members"
+msgstr "struktur '%D' med referencemedlemmer uden startværdi"
-#: cp/decl.c:8018
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr "tildeling (ikke klargøring) i erklæring"
-#: cp/decl.c:8580
+#: cp/decl.c:8785
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr "kan ikke tildele startværdi til '%D' med navnerummet '%D'"
+
+#: cp/decl.c:8836
+msgid "shadowing previous type declaration of `%#D'"
+msgstr "skygger for tidligere typeerklæring af '%#D'"
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "'%D' kan ikke være trådlokal eftersom den er af en ikke-POD type '%T'"
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "'%D' er trådlokal og kan derfor ikke blive tildelt en startværdi dynamisk"
+
+#: cp/decl.c:9298 cp/init.c:562
+msgid "multiple initializations given for `%D'"
+msgstr "flere startværdier angivet for '%D'"
+
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr "ugyldig catch-parameter"
-#: cp/decl.c:8807
+#: cp/decl.c:9508
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
+
+#: cp/decl.c:9511
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
+
+#: cp/decl.c:9530
+msgid "`%D' declared as a `virtual' %s"
+msgstr "'%D' erklæret som 'virtual' %s"
+
+#: cp/decl.c:9532
+msgid "`%D' declared as an `inline' %s"
+msgstr "'%D' erklæret som 'inline' %s"
+
+# %s bliver omsat til typen
+#: cp/decl.c:9534
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
+
+#: cp/decl.c:9537
+msgid "`%D' declared as a friend"
+msgstr "'%D' er erklæret som en ven"
+
+#: cp/decl.c:9543
+msgid "`%D' declared with an exception specification"
+msgstr "'%D' erklæret med en undtagelsesspecifikation"
+
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
-msgstr "kan ikke erklære '::main' som et template"
+msgstr "kan ikke erklære '::main' som en skabelon"
-#: cp/decl.c:8809
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
-msgstr "kan ikke erklære '::main' som inline"
+msgstr "kan ikke erklære '::main' som indlejret"
-#: cp/decl.c:8811
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
-msgstr "kan ikke erklære '::main' som static"
+msgstr "kan ikke erklære '::main' som statisk"
-#: cp/decl.c:8814
-#, fuzzy
+#: cp/decl.c:9625
msgid "`main' must return `int'"
-msgstr "'operator new' skal returnere typen 'void *'"
+msgstr "'main' skal returnere typen 'int'"
+
+#: cp/decl.c:9653
+msgid "non-local function `%#D' uses anonymous type"
+msgstr "ikke-lokal funktion '%#D' bruger anonym type"
+
+#: cp/decl.c:9656
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+msgstr "'%#D' refererer ikke til den ikkemodificerede type, so den bruges ikke til sammenkædning"
+
+#: cp/decl.c:9662
+msgid "non-local function `%#D' uses local type `%T'"
+msgstr "ikke-lokal funktion '%#D' bruger lokal type '%T'"
+
+#: cp/decl.c:9691
+msgid "%smember function `%D' cannot have `%T' method qualifier"
+msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
+
+#: cp/decl.c:9715
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr "definering af eksplicit specialisering '%D' i friend-erklæring"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+msgid "invalid use of template-id `%D' in declaration of primary template"
+msgstr "ugyldig brug af skabelons-id '%D' i erklæring af primær skabelon"
+
+#: cp/decl.c:9753
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
+
+#: cp/decl.c:9760
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+msgstr "'inline' er ikke tilladt i erklæring venneskabelonsspecialisering '%D'"
+
+#: cp/decl.c:9822
+msgid "definition of implicitly-declared `%D'"
+msgstr "definition af underforstået-erklæret '%D'"
+
+#: cp/decl.c:9834 cp/decl2.c:785
+msgid "no `%#D' member function declared in class `%T'"
+msgstr "ingen medlemsfunktion '%#D' erklæret i klassen '%T'"
+
+#: cp/decl.c:9967
+msgid "non-local variable `%#D' uses local type `%T'"
+msgstr "ikke-lokal variabel '%#D' bruger lokal type '%T'"
+
+#: cp/decl.c:10064
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
+
+#: cp/decl.c:10073
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'"
+
+#: cp/decl.c:10076
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr "ISO C++ forbyder tildeling af startværdi til medlemskonstant '%D' af en ikke-heltallig type"
+
+#: cp/decl.c:10126
+msgid "size of array `%D' has non-integer type"
+msgstr "størrelsen af tabellen '%D' er ikke af en heltalstype"
+
+#: cp/decl.c:10128
+msgid "size of array has non-integer type"
+msgstr "størrelsen af tabel er ikke af en heltalstype"
+
+#: cp/decl.c:10148
+msgid "size of array `%D' is negative"
+msgstr "størrelsen af tabellen '%D' er negativ"
+
+#: cp/decl.c:10150
+msgid "size of array is negative"
+msgstr "størrelsen af tabel er negativ"
+
+#: cp/decl.c:10159
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr "ISO C++ forbyder tabellen '%D' med størrelsen nul"
+
+#: cp/decl.c:10161
+msgid "ISO C++ forbids zero-size array"
+msgstr "ISO C++ forbyder tabel med størrelsen nul"
+
+#: cp/decl.c:10168
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
+
+#: cp/decl.c:10171
+msgid "size of array is not an integral constant-expression"
+msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
-#: cp/decl.c:9365
+#: cp/decl.c:10189
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr "ISO C++ forbyder tabellen '%D' med variabel størrelse"
+
+#: cp/decl.c:10192
+msgid "ISO C++ forbids variable-size array"
+msgstr "ISO C++ forbyder tabel med variabel størrelse"
+
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr "tabeldimension for stor"
-#: cp/decl.c:9651
+#: cp/decl.c:10262
+msgid "declaration of `%D' as %s"
+msgstr "erklæring af '%D' som %s"
+
+#: cp/decl.c:10264
+#, c-format
+msgid "creating %s"
+msgstr "opretter %s"
+
+#: cp/decl.c:10276
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+msgstr "erklæring af '%D' som flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
+
+#: cp/decl.c:10279
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
+
+#: cp/decl.c:10308
+msgid "return type specification for constructor invalid"
+msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt"
+
+#: cp/decl.c:10315
+msgid "return type specification for destructor invalid"
+msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt"
+
+#: cp/decl.c:10321
+msgid "operator `%T' declared to return `%T'"
+msgstr "operator '%T' erklæret til at returnere '%T'"
+
+#: cp/decl.c:10323
+msgid "return type specified for `operator %T'"
+msgstr "returtype angivet for 'operator %T'"
+
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr "destruktionsfunktioner skal være medlemmer"
-#: cp/decl.c:9980
+#: cp/decl.c:10510
+msgid "destructor `%T' must match class name `%T'"
+msgstr "destruktionsfunktion '%T' skal passe til klassenavnet '%T'"
+
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr "variabelerklæring er ikke tilladt her"
+
+#: cp/decl.c:10566
+msgid "invalid declarator"
+msgstr "ugyldig erklærer"
+
+#: cp/decl.c:10617
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr "erklærer-id mangler; bruger reserveret ord '%D'"
+
+#: cp/decl.c:10674
+msgid "type `%T' is not derived from type `%T'"
+msgstr "typen '%T' er ikke nedarvet fra typen '%T'"
+
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+msgid "`%T' specified as declarator-id"
+msgstr "'%T' angivet som erklærer-id"
+
+#: cp/decl.c:10728
+msgid " perhaps you want `%T' for a constructor"
+msgstr " måske ønsker du '%T' for en konstruktionsfunktion"
+
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring"
+
+#: cp/decl.c:10770
+msgid "declaration of `%D' as non-function"
+msgstr "erklæring af '%D' som ikke-funktion"
+
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr "'bool' er et reserveret ord"
-#: cp/decl.c:10011
-#, fuzzy
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
+msgstr "overflødig '%T' ignoreret"
+
+#: cp/decl.c:10865 cp/decl.c:10910
+msgid "multiple declarations `%T' and `%T'"
+msgstr "flere erklæringer '%T' og '%T'"
+
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
-msgstr "GNU C++ understøtter ikke -C uden -E"
+msgstr "ISO C++ understøtter ikke 'long long'"
+
+#: cp/decl.c:10983 cp/decl.c:10986
+#, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr "ISO C++ forbyder erklæring af '%s' uden en type"
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+msgid "`%T' is implicitly a typename"
+msgstr "'%T' er underforstået et typenavn"
-#: cp/decl.c:10133
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr "short, signed eller unsigned er ugyldig for '%s'"
-#: cp/decl.c:10138
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr "long og short er begge angivet for '%s'"
-#: cp/decl.c:10149
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr "signed og unsigned er begge angivet for '%s'"
-#: cp/decl.c:10296
+#: cp/decl.c:11157
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
+
+#: cp/decl.c:11179
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
+
+#: cp/decl.c:11188
+msgid "`%T::%D' is not a valid declarator"
+msgstr "'%T::%D' er ikke en gyldig erklærer"
+
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
-#: cp/decl.c:10300
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr "typedef-erklæringer er ugyldig i parametererklæringer"
-#: cp/decl.c:10311
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr "virtual angivet uden for klasseerklæring"
-#: cp/decl.c:10365
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr "lagringsklasse angivet for %s '%s'"
-#: cp/decl.c:10403
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklæringer"
-#: cp/decl.c:10585
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion"
-#: cp/decl.c:10609
+#: cp/decl.c:11498
+#, c-format
+msgid "destructors may not be `%s'"
+msgstr "destruktionsfunktioner må ikke være '%s'"
+
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
-#: cp/decl.c:10612
-#, fuzzy
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
-msgstr "const '%s' kan ikke erklæres 'mutable'"
+msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
-#: cp/decl.c:10627
+#: cp/decl.c:11527
+#, c-format
+msgid "constructors may not be `%s'"
+msgstr "konstruktionsfunktioner må ikke være '%s'"
+
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
-msgstr "angivelse af typen af returværdien til konstruktionsfunktionen ignoreres"
+msgstr "angivelse af typen af returværdien til konstruktionsfunktionen ignoreret"
-#: cp/decl.c:10646
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
-msgstr "kan ikke klargøre vennefunktionen '%s'"
+msgstr "kan ikke tildele en startværdi til vennefunktionen '%s'"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10650
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr "en virtuel funktion kan ikke erklæres som friend"
-#: cp/decl.c:10655
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr "friend-erklæringen er ikke i klassedefinitionen"
-#: cp/decl.c:10711
+#: cp/decl.c:11567
#, c-format
-msgid "cannot declare %s to references"
-msgstr "kan ikke erklære %s til referencer"
+msgid "can't define friend function `%s' in a local class definition"
+msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition"
-#: cp/decl.c:10737
-msgid "invalid type: `void &'"
-msgstr "ugyldig type: 'void &'"
+#: cp/decl.c:11591
+msgid "destructors may not have parameters"
+msgstr "destruktionsfunktioner må ikke have parametre"
-#: cp/decl.c:10788
-#, fuzzy
-msgid "discarding `const' applied to a reference"
-msgstr "new kan ikke bruges på en referencetype"
+#: cp/decl.c:11622 cp/decl.c:11629
+msgid "cannot declare reference to `%#T'"
+msgstr "kan ikke erklære reference til '%#T'"
-#: cp/decl.c:10790
-#, fuzzy
-msgid "discarding `volatile' applied to a reference"
-msgstr "new kan ikke bruges på en referencetype"
+#: cp/decl.c:11623
+msgid "cannot declare pointer to `%#T'"
+msgstr "kan ikke erklære henvisning til '%#T'"
+
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr "kan ikke erklære henvisning til medlemmet '%#T'"
+
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
+msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret"
+
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
+msgstr "kan ikke erklære medlemsfunktion '%T::%s' inde i '%T'"
+
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
+msgstr "kan ikke erklære medlem '%T::%s' inde i '%T'"
+
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr "datamedlem må ikke have variabelt ændret type '%T'"
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr "parameter må ikke have variabelt ændret type '%T'"
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:10997
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr "kun erklæringer af konstruktionsfunktioner kan være 'explicit'"
-#: cp/decl.c:11005
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr "'%s' som ikke er medlem, kan ikke erklæres 'mutable'"
-#: cp/decl.c:11010
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'"
-#: cp/decl.c:11016
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:11021
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr "static '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:11026
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr "const '%s' kan ikke erklæres 'mutable'"
-#: cp/decl.c:11131
-msgid "typedef declaration includes an initializer"
-msgstr "typedef-erklæringen indeholder en startværdi"
+#: cp/decl.c:11960
+msgid "template-id `%D' used as a declarator"
+msgstr "skabelons-id '%D' benyttet som erklærer"
+
+#: cp/decl.c:11981
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse"
+
+#: cp/decl.c:12030
+msgid "typedef name may not be class-qualified"
+msgstr "typedef-navn kan ikke klassemodificeres"
+
+#: cp/decl.c:12038
+msgid "invalid type qualifier for non-member function type"
+msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype"
+
+#: cp/decl.c:12101
+msgid "type qualifiers specified for friend class declaration"
+msgstr "typemodifikationer angivet for friend class-erklæring"
+
+#: cp/decl.c:12106
+msgid "`inline' specified for friend class declaration"
+msgstr "'inline' angivet for friend class-erklæring"
+
+#: cp/decl.c:12114
+msgid "template parameters cannot be friends"
+msgstr "skabelonsparametre kan ikke være venner"
+
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend class %T::%D'"
-#: cp/decl.c:11241
+#: cp/decl.c:12120
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
+msgstr "friend-erklæring kræver klasseangivelse, dvs. 'friend %#T'"
+
+#: cp/decl.c:12134
+msgid "trying to make class `%T' a friend of global scope"
+msgstr "forsøg på at gøre klassen '%T' til ven af det globale virkningsfelt"
+
+#: cp/decl.c:12145
+msgid "invalid qualifiers on non-member function type"
+msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
+
+#: cp/decl.c:12164
+msgid "abstract declarator `%T' used as declaration"
+msgstr "abstrakt erklærer '%T' benyttet som erklæring"
+
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr "unavngiven variabel eller felt erklæret void"
-#: cp/decl.c:11250
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr "variabel eller felt erklæret void"
-#: cp/decl.c:11260
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr "kan ikke bruge '::' i parametererklæring"
-#: cp/decl.c:11445
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+msgid "invalid use of `::'"
+msgstr "ugyldig brug af '::'"
+
+#: cp/decl.c:12246
+msgid "function `%D' cannot be declared friend"
+msgstr "funktionen '%D' kan ikke erklæres friend"
+
+#: cp/decl.c:12258
+msgid "can't make `%D' into a method -- not in a class"
+msgstr "kan ikke gøre '%D' til en metode - er ikke i en klasse"
+
+#: cp/decl.c:12267
+msgid "function `%D' declared virtual inside a union"
+msgstr "funktionen '%D' erklæret virtual inden i en union"
+
+#: cp/decl.c:12279
+msgid "`%D' cannot be declared virtual, since it is always static"
+msgstr "'%D' kan ikke erklæres virtual eftersom den altid er statisk"
+
+#: cp/decl.c:12355
+msgid "field `%D' has incomplete type"
+msgstr "feltet '%D' er af en ufuldstændig type"
+
+#: cp/decl.c:12357
+msgid "name `%T' has incomplete type"
+msgstr "navnet '%T' er af en ufuldstændig type"
+
+#: cp/decl.c:12366
+msgid " in instantiation of template `%T'"
+msgstr " i instantiering af skabelonen '%T'"
+
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklæres som friend"
-#: cp/decl.c:11456
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
-msgstr ""
+msgstr "medlemsfunktioner er underforstået venner af deres klasse"
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr "ISO C++ forbyder tildeling af startværdi til medlemmet '%D'"
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
+msgstr "gør '%D' statisk"
+
+#: cp/decl.c:12460
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+msgstr "ISO C++ forbyder statisk datamedlem '%D' med samme navn som den omgivende klasse"
-#: cp/decl.c:11570
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'"
-#: cp/decl.c:11572
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'"
-#: cp/decl.c:11583
-#, fuzzy, c-format
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'"
+
+#: cp/decl.c:12516
+#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
-msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'"
+msgstr "lagringsklassen 'static' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
-#: cp/decl.c:11585
-#, fuzzy, c-format
+#: cp/decl.c:12518
+#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
-msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'"
+msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
-#: cp/decl.c:11592
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr "virtuel funktion '%s' tilhører ikke en klasse"
+#: cp/decl.c:12554
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr "kan ikke erklære medlemsfunktion '%D' til at have statisk kædning"
+
#. FIXME need arm citation
-#: cp/decl.c:11627
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr "kan ikke erklære en funktion for static inden i en anden funktion"
-#: cp/decl.c:11904
+#: cp/decl.c:12588
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr "'static' må ikke bruges ved definering (i modsætning til erklæring) af et statisk datamedlem"
+
+#: cp/decl.c:12594
+msgid "static member `%D' declared `register'"
+msgstr "statisk medlem '%D' erklæret 'register'"
+
+#: cp/decl.c:12599
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
+msgstr "kan ikke eksplicit erklære medlemmet '%#D' til at have extern-kædning"
+
+#: cp/decl.c:12774
+msgid "default argument for `%#D' has type `%T'"
+msgstr "standardparameter for '%#D' har typen '%T'"
+
+#: cp/decl.c:12777
+msgid "default argument for parameter of type `%T' has type `%T'"
+msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
+
+#: cp/decl.c:12794
+msgid "default argument `%E' uses local variable `%D'"
+msgstr "standardparameter '%E' bruger lokal variabel '%D'"
+
+#: cp/decl.c:12839
+#, c-format
+msgid "invalid string constant `%E'"
+msgstr "ugyldig strengkonstant '%E'"
+
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr "ugyldig heltalskonstant i parameterlisten, måske mangler parameternavnet?"
-#: cp/decl.c:12281
+#: cp/decl.c:12879
+msgid "parameter `%D' invalidly declared method type"
+msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype"
+
+#: cp/decl.c:12885
+msgid "parameter `%D' invalidly declared offset type"
+msgstr "parameteren '%D' er på ugyldig vis erklæret som af en offset-type"
+
+#: cp/decl.c:12909
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%T'"
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'"
+
+#: cp/decl.c:13222
+msgid "`%D' must be a nonstatic member function"
+msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
+
+#: cp/decl.c:13228
+msgid "`%D' must be either a non-static member function or a non-member function"
+msgstr "'%D' skal enten være en ikke-statisk medlemsfunktion eller ikke en medlemsfunktion"
+
+#: cp/decl.c:13245
+msgid "`%D' must have an argument of class or enumerated type"
+msgstr "'%D' skal have en parameter af en klasse- eller enum-type"
+
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
+msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
+
+#. 13.4.0.3
+#: cp/decl.c:13284
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "ISO C++ forbyder flertydiggørelse af operatoren ?:"
+
+#: cp/decl.c:13334
+msgid "postfix `%D' must take `int' as its argument"
+msgstr "postfiks '%D' skal tage mod 'int' som parameter"
+
+#: cp/decl.c:13338
+msgid "postfix `%D' must take `int' as its second argument"
+msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter"
+
+#: cp/decl.c:13345
+msgid "`%D' must take either zero or one argument"
+msgstr "'%D' skal tage mod nul eller én parameter"
+
+#: cp/decl.c:13347
+msgid "`%D' must take either one or two arguments"
+msgstr "'%D' skal tage mod én eller to parametre"
+
+#: cp/decl.c:13368
+msgid "prefix `%D' should return `%T'"
+msgstr "præfiks '%D' skal returnere '%T'"
+
+#: cp/decl.c:13374
+msgid "postfix `%D' should return `%T'"
+msgstr "postfiks '%D' skal returnere '%T'"
+
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr "'%D' skal tage mod 'void'"
+
+#: cp/decl.c:13385 cp/decl.c:13393
+msgid "`%D' must take exactly one argument"
+msgstr "'%s' skal tage mod én parameter"
+
+#: cp/decl.c:13395
+msgid "`%D' must take exactly two arguments"
+msgstr "'%s' skal tage mod to parametre"
+
+#: cp/decl.c:13403
+msgid "user-defined `%D' always evaluates both arguments"
+msgstr "brugerdefineret '%D' evaluerer altid begge parametre"
+
+#: cp/decl.c:13417
+msgid "`%D' should return by value"
+msgstr "'%D' skal returnere pr. værdi (ikke reference)"
+
+#: cp/decl.c:13429 cp/decl.c:13432
+msgid "`%D' cannot have default arguments"
+msgstr "'%D' kan ikke have standardparametre"
+
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
+msgstr "bruger typedef-navn '%D' efter '%s'"
+
+#: cp/decl.c:13481
+msgid "using template type parameter `%T' after `%s'"
+msgstr "bruger skabelonstypeparameter '%D' efter '%s'"
+
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "'%s %T' erklærer en ny type ved navnerumsvirkefelt"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr " navne fra afhængige stamklasser er ikke synlige for umodificerede navneopslag - benyt '%s %T::%T' for at referere til den nedarvede type"
+
+#: cp/decl.c:13663
+msgid "use of enum `%#D' without previous declaration"
+msgstr "brug af enum '%#D' uden tidligere erklæring"
+
+#: cp/decl.c:13749
+msgid "derived union `%T' invalid"
+msgstr "nedarvet union '%T' ugyldig"
+
+#: cp/decl.c:13795
+msgid "base type `%T' fails to be a struct or class type"
+msgstr "stamklassetype '%T' er hverken en struct- eller class-type"
+
+#: cp/decl.c:13805
+msgid "base class `%T' has incomplete type"
+msgstr "stamklasse '%T' er af en ufuldstændig type"
+
+#: cp/decl.c:13813
+msgid "recursive type `%T' undefined"
+msgstr "rekursiv type '%T' ikke defineret"
+
+#: cp/decl.c:13815
+msgid "duplicate base type `%T' invalid"
+msgstr "stamklassetype '%T' optræder mere end én gang"
+
+#: cp/decl.c:13926
+msgid "multiple definition of `%#T'"
+msgstr "flere definitioner af '%#T'"
+
+#: cp/decl.c:13927
+msgid "previous definition here"
+msgstr "tidligere definition her"
+
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
msgstr ""
-#: cp/decl.c:13365
+#: cp/decl.c:14106
+msgid "enumerator value for `%D' not integer constant"
+msgstr "enum-værdi for '%D' er ikke en heltalskonstant"
+
+#: cp/decl.c:14126
+msgid "overflow in enumeration values at `%D'"
+msgstr "enum-værdier for store ved '%D'"
+
+#: cp/decl.c:14195
+msgid "return type `%#T' is incomplete"
+msgstr "returtype '%#T' er ufuldstændig"
+
+#: cp/decl.c:14309
+msgid "semicolon missing after declaration of `%#T'"
+msgstr "semikolon mangler efter erklæring af '%#T'"
+
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
-msgstr ""
+msgstr "returtype for 'main' ændret til 'int'"
-#: cp/decl2.c:569
-#, fuzzy, c-format
-msgid "-f%s is no longer supported"
-msgstr "-pipe understøttes ikke."
+#: cp/decl.c:14361
+msgid "`%D' implicitly declared before its definition"
+msgstr "'%s' er underforstået erklæret efter dens definition"
-#: cp/decl2.c:575
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr ""
+#: cp/decl.c:14383 cp/typeck.c:6314
+msgid "`operator=' should return a reference to `*this'"
+msgstr "'operator=' bør returnere en reference til '*this'"
-#: cp/decl2.c:601
-msgid "-fname-mangling-version is no longer supported"
-msgstr ""
+#: cp/decl.c:14643
+msgid "parameter `%D' declared void"
+msgstr "parameteren '%D' erklæret void"
-#: cp/decl2.c:664
-#, fuzzy
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-pipe understøttes ikke."
+#: cp/decl.c:15130
+msgid "`%D' is already defined in class `%T'"
+msgstr "'%D' er allerede defineret i klassen '%T'"
+
+#: cp/decl.c:15348
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr "statisk medlemsfunktion '%#D' erklæret med typemodifikationer"
+
+#: cp/decl2.c:153
+#, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr "dobbelte typemodifikationer i %s-erklæring"
-#: cp/decl2.c:1000
+#: cp/decl2.c:192
+msgid "template `%#D' instantiated in file without #pragma interface"
+msgstr "skabelon '%#D' instantieret i fil uden #pragma interface"
+
+#: cp/decl2.c:198
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr "skabelon '%#D' defineret i fil uden #pragma interface"
+
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr "navn mangler for medlemsfunktion"
-#: cp/decl2.c:1061
-msgid "`__alignof__' applied to a bit-field"
-msgstr "'__alignof__' brugt på et bitfelt"
-
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1103
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr "fortolkeren kan være faret vild: mangler der en '{' et eller andet sted?"
-#: cp/decl2.c:1134 cp/decl2.c:1148
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
-msgstr "flertydig konvertering af tabelindeks"
+msgstr "tvetydig konvertering af tabelindeks"
-#: cp/decl2.c:1198
-#, fuzzy
+#: cp/decl2.c:467
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr "ugyldige typer '%T[%T]' for tabelopslag"
+
+#: cp/decl2.c:515
+msgid "type `%#T' argument given to `delete', expected pointer"
+msgstr "parameter af typen '%#T' givet til 'delete', forventede henvisning"
+
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
-msgstr "ukendt tabelstørrelse i delete"
+msgstr "forældet brug af tabelstørrelse i tabelformen af delete"
-#: cp/decl2.c:1208
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
-msgstr "kan ikke slette en funktion; kun henvisninger til objekter er gyldige parametre til 'delete'"
+msgstr "kan ikke udføre delete på en funktion; kun henvisninger til objekter er gyldige som parameter til 'delete'"
-#: cp/decl2.c:1505
+#: cp/decl2.c:540
+msgid "deleting `%T' is undefined"
+msgstr "benyttelse af delete på '%T' er ikke defineret"
+
+#: cp/decl2.c:548
+msgid "deleting array `%#D'"
+msgstr "benyttelse af delete på tabellen '%#D'"
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+msgid "invalid declaration of member template `%#D' in local class"
+msgstr "ugyldig erklæring af medlemsskabelon '%#D' i lokal klasse"
+
+#: cp/decl2.c:591
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr "ugyldig brug af 'virtual' i skabelonserklæring af '%#D'"
+
+#: cp/decl2.c:601 cp/pt.c:2745
+msgid "template declaration of `%#D'"
+msgstr "skabelonserklæring af '%#D'"
+
+#: cp/decl2.c:651
+msgid "Java method '%D' has non-Java return type `%T'"
+msgstr "Java-metoden '%D' har har en returtype '%T' som ikke er fra Java"
+
+#: cp/decl2.c:660
+msgid "Java method '%D' has non-Java parameter type `%T'"
+msgstr "Java-metoden '%D' har har en parametertype '%T' som ikke er fra Java"
+
+#: cp/decl2.c:746
+msgid "prototype for `%#D' does not match any in class `%T'"
+msgstr "prototypen for '%#D' passer ikke nogen i klassen '%T'"
+
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr "lokal klasse '%#T' må ikke have det statiske datamedlem '%#D'"
+
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr "tildeling af startværdi er ugyldig for statisk medlem med konstruktionsfunktion"
-#: cp/decl2.c:1508
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
-msgstr ""
+msgstr "(en klargøring uden for klassens erklæring er nødvendig)"
+
+#: cp/decl2.c:898
+msgid "invalid data member initialization"
+msgstr "ugyldig tildeling af startværdi til datamedlem"
+
+#: cp/decl2.c:901
+msgid "(use `=' to initialize static data members)"
+msgstr "(brug '=' for at klargøre statiske datamedlemmer)"
+
+#: cp/decl2.c:947
+msgid "member `%D' conflicts with virtual function table field name"
+msgstr "medlemmet '%D' er i konflikt med feltnavn fra den virtuelle funktionstabel"
-#: cp/decl2.c:1681
+#: cp/decl2.c:967
+msgid "`%D' is already defined in `%T'"
+msgstr "'%D' er allerede defineret i '%T'"
+
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr "feltets startværdi er ikke en konstant"
-#: cp/decl2.c:2020
+#: cp/decl2.c:1038
+msgid "`asm' specifiers are not permitted on non-static data members"
+msgstr "'asm'-angivelser er ikke tilladt på ikke-statiske datamedlemmer"
+
+#: cp/decl2.c:1090
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr "kan ikke erklære '%D' til at være en bitfeltstype"
+
+#: cp/decl2.c:1100
+msgid "cannot declare bit-field `%D' with function type"
+msgstr "kan ikke erklære bitfelt '%D' med funktionstype"
+
+#: cp/decl2.c:1107
+msgid "`%D' is already defined in the class %T"
+msgstr "'%D' er allerede defineret i klassen '%T'"
+
+#: cp/decl2.c:1114
+msgid "static member `%D' cannot be a bit-field"
+msgstr "statisk medlem '%D' kan ikke være et bitfelt"
+
+#: cp/decl2.c:1201
+msgid "initializer specified for non-member function `%D'"
+msgstr "startværdi angivet for ikke-medlemsfunktion '%D'"
+
+#: cp/decl2.c:1205
+msgid "invalid initializer for virtual method `%D'"
+msgstr "ugyldig startværdi til virtuel medlemsfunktion '%D'"
+
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr "anonym struct er ikke inden i en navngiven type"
-#: cp/decl2.c:2119
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr "anonyme variabler af sammensatte typer i navnerumsvirkefelt skal erklæres static"
-#: cp/decl2.c:2129
-#, fuzzy
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
-msgstr "en anonym union kan ikke have funktionsmedlemmer"
+msgstr "anonym sammensat type uden medlemmer"
+
+#: cp/decl2.c:1497
+msgid "`operator new' must return type `%T'"
+msgstr "'operator new' skal returnere typen '%T'"
+
+#: cp/decl2.c:1505
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr "den første parameter til 'operator new' skal være af typen 'size_t' ('%T')"
+
+#: cp/decl2.c:1532
+msgid "`operator delete' must return type `%T'"
+msgstr "'operator delete' skal returnere typen '%T'"
+
+#: cp/decl2.c:1540
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr "den første parameter til 'operator delete' skal være af typen '%T'"
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2997
-#, fuzzy
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
-msgstr "for mange parametre til funktionen"
+msgstr "for mange klargøringsfunktioner påkrævet"
-#: cp/decl2.c:3807
+#: cp/decl2.c:3006
+msgid "inline function `%D' used but never defined"
+msgstr "indbygget funktion '%D' benyttet, men aldrig defineret"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
-msgstr ""
+msgstr "brug af ældre type typeomtvingning"
-#: cp/error.c:46
-#, fuzzy, c-format
+#: cp/decl2.c:3860
+msgid "use of `%D' is ambiguous"
+msgstr "brug af '%D' er tvetydigt"
+
+#: cp/decl2.c:3861
+msgid " first declared as `%#D' here"
+msgstr " først erklæret som '%#D' her"
+
+#: cp/decl2.c:3864
+msgid " also declared as `%#D' here"
+msgstr " også erklæret som '%#D' her"
+
+#: cp/decl2.c:3879
+msgid "`%D' denotes an ambiguous type"
+msgstr "'%D' angiver en tvetydig type"
+
+#: cp/decl2.c:3880
+msgid " first type here"
+msgstr " første type her"
+
+#: cp/decl2.c:3881
+msgid " other type here"
+msgstr " anden type her"
+
+#: cp/decl2.c:3982
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'"
+
+#: cp/decl2.c:4016
+msgid "`%D' should have been declared inside `%D'"
+msgstr "'%D' skulle have været erklæret inden i '%D'"
+
+#: cp/decl2.c:4152
+msgid "`%D' is not a function,"
+msgstr "'%s' er ikke en funktion,"
+
+#: cp/decl2.c:4153
+msgid " conflict with `%D'"
+msgstr " konflikt med '%D'"
+
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+msgid "unknown namespace `%D'"
+msgstr "ukendt navnerum '%D'"
+
+#: cp/decl2.c:4507 cp/decl2.c:4794
+msgid "`%T' is not a namespace"
+msgstr "'%T' er ikke et navnerum"
+
+#: cp/decl2.c:4509
+msgid "`%D' is not a namespace"
+msgstr "'%D' er ikke et navnerum"
+
+#: cp/decl2.c:4518
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr "en using-erklæring kan ikke angive en skabelons-id; prøv 'using %D'"
+
+#: cp/decl2.c:4532
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr "navnerum '%D' ikke tilladt i using-erklæring"
+
+#: cp/decl2.c:4561
+msgid "`%D' not declared"
+msgstr "'%D' ikke erklæret"
+
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+msgid "`%D' is already declared in this scope"
+msgstr "'%D' er allerede erklæret i dette navnerum"
+
+#: cp/decl2.c:4646
+msgid "using declaration `%D' introduced ambiguous type `%T'"
+msgstr "using-erklæring '%D' introducerede tvetydig type '%T'"
+
+#: cp/decl2.c:4740
+msgid "using-declaration for non-member at class scope"
+msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
+
+#: cp/decl2.c:4746
+msgid "using-declaration for destructor"
+msgstr "using-erklæring for destruktionsfunktion"
+
+#: cp/decl2.c:4752
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+msgstr "en using-erklæring kan ikke angive en skabelons-id; prøv 'using %T::%D'"
+
+#: cp/decl2.c:4788
+msgid "namespace `%T' undeclared"
+msgstr "navnerummet '%T' er ikke erklæret"
+
+#: cp/decl2.c:4817
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr "standardparameter mangler for parameter %P i '%+#D'"
+
+#: cp/decl2.c:4941
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr "ekstra modifikation '%T::' af medlemmet '%D' ignoreret"
+
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
+msgstr "'%T' har ikke en klasse eller en union ved navn '%D'"
+
+#: cp/decl2.c:4963
+msgid "`%T' is not a class or union type"
+msgstr "'%T' er ikke af en klasse- eller union-type"
+
+#: cp/decl2.c:4977
+msgid "template argument is required for `%T'"
+msgstr "skabelonsparameter er påkrævet for '%T'"
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'"
+
+#: cp/error.c:35
+#, c-format
msgid "`%s' not supported by %s"
-msgstr "-mips%d er ikke understøttet"
+msgstr "'%s' ikke understøttet af %s"
-#: cp/error.c:630
+#: cp/error.c:571
#, c-format
msgid "<anonymous %s>"
-msgstr ""
+msgstr "<anonym %s>"
-#: cp/error.c:891
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
-msgstr ""
+msgstr "(statisk %s for %s)"
+
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr "\\x%x"
-#: cp/error.c:2528
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
-msgstr ""
+msgstr "I %s '%s':"
-#: cp/error.c:2583
-#, fuzzy, c-format
+#: cp/error.c:2530
+#, c-format
msgid "%s: In instantiation of `%s':\n"
-msgstr "%s: fandt definitionen af '%s' ved %s(%d)\n"
+msgstr "%s: i instantiering af '%s':\n"
-#: cp/error.c:2607
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
-msgstr ""
+msgstr "%s:%d: instantieret fra '%s'\n"
-#: cp/error.c:2612
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
-msgstr ""
+msgstr "%s:%d: instantieret herfra\n"
-#: cp/except.c:258
-#, fuzzy
+#. damn ICE suppression
+#: cp/error.c:2713
+#, c-format
+msgid "unexpected letter `%c' in locate_error\n"
+msgstr "uventet bogstav '%c' i locate_error\n"
+
+#. Can't throw a reference.
+#: cp/except.c:240
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
+msgstr "typen '%T' er ikke tilladt i Java 'throw' eller 'catch'"
+
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr "kald til Java 'catch' eller 'throw' mens 'jthrowable' ikke er defineret"
-#: cp/except.c:329
-#, fuzzy
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+msgid "type `%T' is not derived from `java::lang::Throwable'"
+msgstr "typen '%T' nedarver ikke fra 'java::lang::Throwable'"
+
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "blander C++ og Java 'catch' i én oversættelsesenhed"
-#: cp/except.c:685
+#: cp/except.c:639
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "kaster NULL som har en heltals-, ikke en henvisningstype"
+
+#: cp/except.c:730
msgid " in thrown expression"
msgstr " i kastet udtryk"
-#: cp/friend.c:423
-msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning."
-msgstr ""
+#: cp/except.c:856
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+msgstr "udtrykket '%E' med den abstrakte klassetype '%T' kan ikke bruges i throw-udtryk"
-#: cp/g++spec.c:197 java/jvspec.c:357
-#, c-format
-msgid "argument to `%s' missing\n"
-msgstr "en parameter til '%s' mangler\n"
+#: cp/except.c:944
+msgid "exception of type `%T' will be caught"
+msgstr "undtagelse af typen '%T' vil blive fanget"
-#: cp/init.c:313
-msgid "initializer list treated as compound expression"
-msgstr ""
+#: cp/except.c:947
+msgid " by earlier handler for `%T'"
+msgstr " af tidligere håndtering af '%T'"
-#: cp/init.c:428
-msgid " will be re-ordered to match declaration order"
-msgstr ""
+#: cp/except.c:968
+msgid "`...' handler must be the last handler for its try block"
+msgstr "håndteringen '...' skal være den sidste håndtering i try-blokken"
-#: cp/init.c:662
-msgid " will be re-ordered to match inheritance order"
-msgstr ""
+#: cp/friend.c:159
+msgid "`%D' is already a friend of class `%T'"
+msgstr "'%D' er allerede en ven af klassen '%T'"
+
+#: cp/friend.c:161
+msgid "previous friend declaration of `%D'"
+msgstr "tidligere friend-erklæring af '%D'"
+
+#: cp/friend.c:206
+msgid "invalid type `%T' declared `friend'"
+msgstr "ugyldig type '%T' erklæret 'friend'"
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+msgid "partial specialization `%T' declared `friend'"
+msgstr "partiel specialisering '%T' erklæret 'friend'"
+
+#: cp/friend.c:231
+msgid "class `%T' is implicitly friends with itself"
+msgstr "klassen '%T' er underforstået ven med sig selv"
+
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+msgid "typename type `%#T' declared `friend'"
+msgstr "typename-type '%#T' erklæret 'friend'"
+
+#. template <class T> friend class T;
+#: cp/friend.c:255
+msgid "template parameter type `%T' declared `friend'"
+msgstr "skabelonsparametertypen '%T' erklæret 'friend'"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+msgid "`%#T' is not a template"
+msgstr "'%#T' er ikke en skabelon"
+
+#: cp/friend.c:276
+msgid "`%T' is already a friend of `%T'"
+msgstr "'%T' er allerede en ven af '%T'"
-#: cp/init.c:1105
-msgid "base class initializer specified, but no base class to initialize"
-msgstr "stamklasse-klargøring angivet, men der er ingen stamklasse at klargøre"
+#: cp/friend.c:376
+msgid "member `%D' declared as friend before type `%T' defined"
+msgstr "medlemmet '%D' erklæret som friend før typen '%T' er defineret"
-#: cp/init.c:1111
-msgid "initializer for unnamed base class ambiguous"
-msgstr "klargøring af unavngiven stamklasse er flertydig"
+#: cp/friend.c:431
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr "friend-erklæring '%#D' erklærer en ikke-skabelonsfunktion"
-#: cp/init.c:1136
-msgid "no base class to initialize"
-msgstr "ingen stamklasse at klargøre"
+#: cp/friend.c:434
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr "(hvis dette er hvad du ønsker, så sikr dig at funktionsskabelonen allerede er blevet erklæret og tilføj <> efter funktionsnavnet her) -Wno-non-template-friend deaktiverer denne advarsel"
-#: cp/init.c:1860
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, c-format
+msgid "argument to `%s' missing\n"
+msgstr "en parameter til '%s' mangler\n"
+
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr "'%D' bør blive klargjort i medlemsklargøringslisten"
+
+#: cp/init.c:384
+msgid "default-initialization of `%#D', which has reference type"
+msgstr "standardklargøring af '%#D' som er af en referencetype"
+
+#: cp/init.c:389
+msgid "uninitialized reference member `%D'"
+msgstr "referencemedlem '%D' uden startværdi"
+
+#: cp/init.c:397
+msgid "initializer list treated as compound expression"
+msgstr "klargøringsliste behandlet som et sammensat udtryk"
+
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
+msgstr "'%D' vil blive klargjort efter"
+
+#: cp/init.c:541
+msgid "base `%T' will be initialized after"
+msgstr "stamklasse '%T' vil blive klargjort efter"
+
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr " '%#D'"
+
+#: cp/init.c:546
+msgid " base `%T'"
+msgstr " stamklasse '%T'"
+
+#: cp/init.c:564
+msgid "multiple initializations given for base `%T'"
+msgstr "flere startværdier angivet for stamklassen '%T'"
+
+#: cp/init.c:631
+msgid "initializations for multiple members of `%T'"
+msgstr "startværdier for flere medlemmer af '%T'"
+
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+msgstr "stamklassen '%#T' bør eksplicit blive klargjort i kopikonstruktionsfunktionen"
+
+#: cp/init.c:926
+msgid "class `%T' does not have any field named `%D'"
+msgstr "klassen '%T' har ikke et felt ved navn '%D'"
+
+#: cp/init.c:932
+msgid "field `%#D' is static; the only point of initialization is its definition"
+msgstr "feltet '%#D' er statisk; det eneste sted det kan klargøres er ved dets definition"
+
+#: cp/init.c:965
+msgid "unnamed initializer for `%T', which has no base classes"
+msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
+
+#: cp/init.c:972
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
+msgstr "unavngiven klargøring af '%T' som benytter multipel nedarvning"
+
+#: cp/init.c:1007
+msgid "type `%D' is not a direct or virtual base of `%T'"
+msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
+
+#: cp/init.c:1010
+msgid "type `%D' is not a direct base of `%T'"
+msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
+
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+msgid "bad array initializer"
+msgstr "ugyldig tildeling af startværdi til tabel"
+
+#: cp/init.c:1311
+msgid "`%T' is not an aggregate type"
+msgstr "'%T' er ikke en sammensat type"
+
+#: cp/init.c:1334
+msgid "`%T' fails to be an aggregate typedef"
+msgstr "'%T' er ikke en sammensat typedef"
+
+#: cp/init.c:1343
+msgid "type `%T' is of non-aggregate type"
+msgstr "typen '%T' er ikke en sammensat type"
+
+#: cp/init.c:1446
+msgid "cannot call destructor `%T::~%T' without object"
+msgstr "kan ikke kalde destruktionsfunktion '%T::~%T' uden objekt"
+
+#: cp/init.c:1490
+msgid "invalid use of non-static field `%D'"
+msgstr "ugyldig brug af ikke-statisk felt '%D'"
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+msgid "invalid use of member `%D'"
+msgstr "ugyldig brug af medlemmet '%D'"
+
+#: cp/init.c:1509
+msgid "no method `%T::%D'"
+msgstr "ingen metode ved navn '%T::%D'"
+
+#: cp/init.c:1602
+msgid "incomplete type `%T' does not have member `%D'"
+msgstr "ufuldstændig type '%T' har ikke medlemmet '%D'"
+
+#: cp/init.c:1676
+msgid "`%D' is not a member of type `%T'"
+msgstr "'%D' er ikke et medlem af typen '%T'"
+
+#: cp/init.c:1695
+msgid "invalid pointer to bit-field `%D'"
+msgstr "ugyldig henvisning til bitfeltet '%D'"
+
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
-msgstr "der mangler et objekt i henvisning til medlem-konstruktionen"
+msgstr "der mangler et objekt i henvisning til medlem-konstruktion"
+
+#: cp/init.c:1774
+msgid "member `%D' is non-static but referenced as a static member"
+msgstr "medlemmet '%D' er ikke statisk, men refereres som et statisk medlem"
-#: cp/init.c:1902 cp/typeck.c:3186 cp/typeck.c:3287
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr "ved dette sted i filen"
-#: cp/init.c:2076
+#: cp/init.c:1813
+#, c-format
+msgid "object missing in `%E'"
+msgstr "objekt mangler i '%E'"
+
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr "new virkende på en tabeltype mangler at angive størrelsen"
-#: cp/init.c:2087
-#, fuzzy
+#: cp/init.c:1955
msgid "size in array new must have integral type"
-msgstr "størrelsen af tabel '%s' er ikke af en heltalstype"
+msgstr "størrelse i tabel-new skal være en heltalstype"
-#: cp/init.c:2093
+#: cp/init.c:1961
msgid "zero size array reserves no space"
-msgstr ""
+msgstr "tabel med størrelsen nul reserverer ingen plads"
-#: cp/init.c:2158
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr "new kan ikke bruges på en referencetype"
-#: cp/init.c:2164
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr "new kan ikke bruges på en funktionstype"
-#: cp/init.c:2211
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr "kald af Java-konstruktionsfunktion mens 'jclass' ikke er defineret"
-#: cp/init.c:2227
-#, fuzzy
-msgid "Can't find class$"
-msgstr "[kan ikke finde %s]"
+#: cp/init.c:2095
+msgid "can't find class$"
+msgstr "kan ikke finde class$"
-#: cp/init.c:2340
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr "ugyldig type 'void' til new"
-#: cp/init.c:2394
-#, fuzzy, c-format
+#: cp/init.c:2261
+#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr "kald af Java-konstruktionsfunktion mens '%s' ikke er defineret"
-#: cp/init.c:2522 cp/typeck2.c:381 cp/typeck2.c:1207
+#: cp/init.c:2369
+msgid "ISO C++ forbids initialization in array new"
+msgstr "ISO C++ forbyder startværdier i tabel-new"
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
-msgstr ""
+msgstr "klargøringsliste bliver behandlet som et sammensat udtryk"
-#: cp/init.c:2528
-#, fuzzy
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ISO C++ forbyder sammensat startværditildeling ved new"
-#: cp/init.c:2967
+#: cp/init.c:2485
+msgid "uninitialized const in `new' of `%#T'"
+msgstr "konstant uden startværdi i 'new' af '%#T'"
+
+#: cp/init.c:2864
msgid "initializer ends prematurely"
msgstr "startværdien slutter for tidligt"
-#: cp/init.c:3037
-#, fuzzy
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
-msgstr "kan ikke tildele tabeller startværdier med denne syntaks"
+msgstr "kan ikke klargøre multidimensional tabel med startværdi"
-#: cp/init.c:3215
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr "ukendt tabelstørrelse i delete"
-#: cp/init.c:3440
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
-#: cp/lang-options.h:29
-msgid "Do not obey access control semantics"
-msgstr ""
-
-#: cp/lang-options.h:31
-msgid "Change when template instances are emitted"
-msgstr ""
-
-#: cp/lang-options.h:36
-msgid "Check the return value of new"
-msgstr ""
-
-#: cp/lang-options.h:39
-msgid "Reduce size of object files"
-msgstr ""
-
-#: cp/lang-options.h:43
-msgid "Make string literals `char[]' instead of `const char[]'"
-msgstr ""
-
-#: cp/lang-options.h:46
-msgid "Dump the entire translation unit to a file"
-msgstr ""
-
-#: cp/lang-options.h:48
-msgid "Do not inline member functions by default"
-msgstr ""
-
-#: cp/lang-options.h:51
-#, fuzzy
-msgid "Do not generate run time type descriptor information"
-msgstr "ikke tilstrækkelig information om typen"
-
-#: cp/lang-options.h:56
-#, fuzzy
-msgid "Do not generate code to check exception specifications"
-msgstr "Justér ikke strengoperationernes destination"
-
-#: cp/lang-options.h:61
-msgid "Scope of for-init-statement vars extends outside"
-msgstr ""
-
-#: cp/lang-options.h:64
-msgid "Do not recognise GNU defined keywords"
-msgstr ""
-
-#: cp/lang-options.h:69
-msgid "Do not treat the namespace `std' as a normal namespace"
-msgstr ""
-
-#: cp/lang-options.h:71
-msgid "Enable support for huge objects"
-msgstr ""
-
-#: cp/lang-options.h:75
-#, fuzzy
-msgid "Export functions even if they can be inlined"
-msgstr "funktioner der bruger setjmp, kan ikke indbygges"
-
-#: cp/lang-options.h:78
-msgid "Only emit explicit template instatiations"
-msgstr ""
-
-#: cp/lang-options.h:81
-msgid "Only emit explicit instatiations of inline templates"
-msgstr ""
-
-#: cp/lang-options.h:87
-msgid "Don't pedwarn about uses of Microsoft extensions"
-msgstr ""
-
-#: cp/lang-options.h:90
-msgid "Recognise and/bitand/bitor/compl/not/or/xor"
-msgstr ""
-
-#: cp/lang-options.h:94
-msgid "Disable optional diagnostics"
-msgstr ""
-
-#: cp/lang-options.h:96
-msgid "Downgrade conformance errors to warnings"
-msgstr ""
-
-#: cp/lang-options.h:99
-msgid "Enable automatic template instantiation"
-msgstr ""
-
-#: cp/lang-options.h:104
-msgid "Display statistics accumulated during compilation"
-msgstr ""
-
-#: cp/lang-options.h:107
-msgid "Specify maximum template instantiation depth"
-msgstr ""
-
-#: cp/lang-options.h:109
-msgid "Use __cxa_atexit to register destructors."
-msgstr ""
-
-#: cp/lang-options.h:112
-msgid "Discard unused virtual functions"
-msgstr ""
-
-#: cp/lang-options.h:115
-msgid "Implement vtables using thunks"
-msgstr ""
-
-#: cp/lang-options.h:118
-msgid "Emit common-like symbols as weak symbols"
-msgstr ""
-
-#: cp/lang-options.h:121
-msgid "Emit cross referencing information"
-msgstr ""
-
-#: cp/lang-options.h:125
-msgid "Warn about inconsistent return types"
-msgstr ""
-
-#: cp/lang-options.h:128
-msgid "Warn about overloaded virtual function names"
-msgstr ""
-
-#: cp/lang-options.h:132
-msgid "Don't warn when all ctors/dtors are private"
-msgstr ""
-
-#: cp/lang-options.h:134
-msgid "Warn about non virtual destructors"
-msgstr ""
-
-#: cp/lang-options.h:137
-#, fuzzy
-msgid "Warn when a function is declared extern, then inline"
-msgstr "indlejret funktion '%s' er erklæret 'extern'"
-
-#: cp/lang-options.h:140
-msgid "Warn when the compiler reorders code"
-msgstr ""
-
-#: cp/lang-options.h:143
-msgid "Warn when synthesis behaviour differs from Cfront"
-msgstr ""
-
-#: cp/lang-options.h:147
-#, fuzzy
-msgid "Don't warn when type converting pointers to member functions"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
-
-#: cp/lang-options.h:149
-msgid "Warn about violations of Effective C++ style rules"
-msgstr ""
-
-#: cp/lang-options.h:152
-msgid "Warn when overload promotes from unsigned to signed"
-msgstr ""
-
-#: cp/lang-options.h:155
-msgid "Warn if a C style cast is used in a program"
-msgstr ""
-
-#: cp/lang-options.h:159
-msgid "Don't warn when non-templatized friend functions are declared within a template"
-msgstr ""
-
-#: cp/lang-options.h:162
-msgid "Don't announce deprecation of compiler features"
-msgstr ""
-
-#: cp/lex.c:148
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr "der forventedes et typenavn før '*'"
-#: cp/lex.c:170
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr "kan ikke erklære referencer til referencer"
-#: cp/lex.c:175
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr "kan ikke erklære henvisninger til referencer"
-#: cp/lex.c:179
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr "der forventedes et typenavn før '&'"
-#: cp/lex.c:1018
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
-msgstr "semikolon mangler efter %s erklæringen"
+msgstr "semikolon mangler efter %s-erklæring"
-#: cp/lex.c:1069
-#, fuzzy, c-format
+#: cp/lex.c:897
+msgid "semicolon missing after declaration of `%T'"
+msgstr "semikolon mangler efter erklæring af '%T'"
+
+#: cp/lex.c:945
+#, c-format
msgid "junk at end of #pragma %s"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen 'af #pragma %s'"
-#: cp/lex.c:1076
-#, fuzzy, c-format
+#: cp/lex.c:952
+#, c-format
msgid "invalid #pragma %s"
-msgstr "ugyldig #pragma-enhed"
+msgstr "ugyldig #pragma %s"
+
+#: cp/lex.c:961
+msgid "#pragma vtable no longer supported"
+msgstr "'#pragma vtable' understøttes ikke længere"
-#: cp/lex.c:1166
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "'#pragma implementation' til %s optræder efter filen er inkluderet"
-#: cp/lex.c:1191
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
-msgstr ""
+msgstr "ragelse i slutningen af #pragma GCC java_exceptions"
-#: cp/lex.c:1292
-msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
-msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang per funktion)"
+#: cp/lex.c:1107
+msgid "`%D' not defined"
+msgstr "'%D' er ikke defineret"
-#: cp/lex.c:1315
-#, fuzzy, c-format
-msgid "name lookup of `%s' changed"
-msgstr "opslaget af '%s' er ændret på grund af ISO definitionen af 'for'-virkefeltet"
+#: cp/lex.c:1110
+msgid "`%D' was not declared in this scope"
+msgstr "'%D' blev ikke erklæret i dette virkefelt"
-#: cp/lex.c:1329 cp/lex.c:1336
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr "opslaget af '%s' er ændret på grund af ISO definitionen af 'for'-virkefeltet"
+#: cp/lex.c:1118
+msgid "`%D' undeclared (first use this function)"
+msgstr "'%D' er ikke erklæret (først benyttet i denne funktion)"
-#: cp/mangle.c:1877
-msgid "real-valued template parameters when cross-compiling"
-msgstr ""
+# dækkende, og pænere end original i praktisk brug
+#: cp/lex.c:1122
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang per funktion)"
+
+#: cp/lex.c:1242
+msgid "`::%D' undeclared (first use here)"
+msgstr "'::%D' er ikke erklæret (først benyttet her)"
-#: cp/method.c:173
+#: cp/mangle.c:2051
#, fuzzy
-msgid "methods cannot be converted to function pointers"
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr "new kan ikke bruges på en funktionstype"
-#: cp/method.c:178
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr "det ABI-navnet for '%D' vil ændre sig i en fremtidig version af GCC"
+
+#: cp/method.c:154
+msgid "invalid use of member `%D' in static member function"
+msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
+
+#: cp/method.c:216
+msgid "use of namespace `%D' as expression"
+msgstr "brug af navnerummet '%D' som udtryk"
+
+#: cp/method.c:221
+msgid "use of class template `%T' as expression"
+msgstr "brug af klasseskabelonen '%T' som udtryk"
+
+#: cp/method.c:234
#, c-format
-msgid "ambiguous request for method pointer `%s'"
-msgstr "flertydig forespørgsel efter medlemsfunktionshenvisningen '%s'"
+msgid "use of %s from containing function"
+msgstr "brug af %s fra indeholdende funktion"
-#: cp/parse.y:670
-msgid "invalid default template argument"
-msgstr "ugyldig standardparameter i skabelon"
+#: cp/method.c:237
+msgid " `%#D' declared here"
+msgstr " '%#D' erklæret her"
-#: cp/parse.y:879
-#, fuzzy
-msgid "no base or member initializers given following ':'"
-msgstr "ingen stamklasseklargøringer er angivet efter ':'"
+#: cp/method.c:255
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+msgstr "forespørgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet"
-#: cp/parse.y:892
-msgid "base initializers not allowed for non-member functions"
-msgstr "stamklasseklargøringer er ikke tilladt for ikke-medlemsfunktioner"
+#: cp/method.c:458
+msgid "generic thunk code fails for method `%#D' which uses `...'"
+msgstr "generel thunk-kode mislykkes for metoden '%#D' som bruger '...'"
-#: cp/parse.y:894
-msgid "only constructors take base initializers"
-msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
+#: cp/method.c:697
+msgid "non-static const member `%#D', can't use default assignment operator"
+msgstr "ikke-statisk konstant medlem '%#D' kan ikke bruge standardtildelingsoperatoren"
-#: cp/parse.y:927 cp/parse.y:933
-#, fuzzy
+#: cp/method.c:702
+msgid "non-static reference member `%#D', can't use default assignment operator"
+msgstr "ikke-statisk referencemedlem '%#D' kan ikke bruge standardtildelingsoperatoren"
+
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
+msgstr "'%s'-mærke benyttet i navngivning af '%#T'"
+
+#: parse.y:542
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr "det reserverede ord 'export' er ikke implementeret og vil blive ignoreret"
+
+#: parse.y:646
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
+msgstr "brug af kædningsangivelse '%D' er forskellig fra den tidligere angivelse '%D'"
+
+#: parse.y:943
+msgid "no base or member initializers given following ':'"
+msgstr "ingen stamklasse- eller medlemsklargøringer er angivet efter ':'"
+
+#: parse.y:984
msgid "anachronistic old style base class initializer"
-msgstr "ingen stamklasse at klargøre"
+msgstr "forældet stamklasseklargøring"
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: cp/parse.y:1055
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
-msgstr ""
+msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
+
+#: parse.y:1164
+msgid "use of template qualifier outside template"
+msgstr "brug af skabelonsmodifikation uden for skabelon"
-#: cp/parse.y:1112 cp/parse.y:1121
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr "ISO C++ forbyder en tom betingelse til '%s'"
-#: cp/parse.y:1216
-msgid "ISO C++ forbids `&&'"
-msgstr ""
+#: parse.y:1225
+msgid "definition of class `%T' in condition"
+msgstr "definition af klassen '%T' i betingelse"
-#: cp/parse.y:1300
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr ""
+#: parse.y:1227
+msgid "definition of enum `%T' in condition"
+msgstr "definition af enum '%T' i betingelse"
-#: cp/parse.y:1331
-#, fuzzy
+#: parse.y:1238
+msgid "definition of array `%#D' in condition"
+msgstr "definition af tabel '%#D' i betingelse"
+
+#: parse.y:1351
+msgid "old style placement syntax, use () instead"
+msgstr "forældet placeringssyntaks, brug () i stedet"
+
+#: parse.y:1362
+msgid "`%T' is not a valid expression"
+msgstr "'%T' er ikke et gyldigt udtryk"
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr "tildeling af startværdi til new-udtryk med '='"
+
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+msgstr "ISO C++ forbyder sammensatte konstanter"
-#: cp/parse.y:1566
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
-msgstr ""
+msgstr "ISO C++ forbyder krøllet parantes-grupper inden i udtryk"
+
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ugyldig brug af medlemmet '%D'"
-#: cp/parse.y:1972 cp/parse.y:1987
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
-msgstr ""
+msgstr "sigof-typeangivelse"
-#: cp/parse.y:1977
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr "'sigof' benyttet på et udtryk der ikke er af en sammensat type"
-#: cp/parse.y:1992
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr "'sigof' benyttet på en type der ikke er sammensat"
-#: cp/parse.y:2332
+#: parse.y:2339
+msgid "using `typename' outside of template"
+msgstr "bruger 'typename' uden for en skabelon"
+
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr "lagringsklasseangivelsen '%s' er ikke tilladt efter struct eller class"
-#: cp/parse.y:2334
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr "typeangivelsen '%s' er ikke tilladt efter struct eller class"
-#: cp/parse.y:2336
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr "typemodifikationen '%s' er ikke tilladt efter struct eller class"
-#: cp/parse.y:2338
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr "der er hverken en krop eller et semikolon mellem to class, struct eller union-erklæringer"
-#: cp/parse.y:2503
+#: parse.y:2553
+msgid "no bases given following `:'"
+msgstr "ingen stamklasse er angivet efter ':'"
+
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
+msgstr "'%D'-tilgang"
+
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr "mere end én tilgangsangivelse"
-#: cp/parse.y:2521
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr "mere end én 'virtual'-angivelse"
-#: cp/parse.y:2556
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr "der mangler et semikolon før en højre krøllet parantes"
-#: cp/parse.y:2779
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
-msgstr ""
+msgstr "ISO C++ forbyder tabeldimensioner med parantetiseret type i new"
-#: cp/parse.y:3288
-#, fuzzy
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+msgid "`%T' is not a class or namespace"
+msgstr "'%T' er ikke en klasse eller et navnerum"
+
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+msgstr "ISO C++ forbyder etiketerklæringer"
-#: cp/parse.y:3450
-#, fuzzy
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+msgstr "ISO C++ forbyder beregnede goto'er"
-#: cp/parse.y:3458
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr "etiketten skal efterfølges af en sætning"
-#: cp/parse.y:3557
-#, fuzzy
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr "skal have mindst én catch pr. try-blok"
+
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+msgstr "ISO C++ forbyder sammensatte sætninger inden i 'for'-klargøringer"
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: cp/parse.y:3640 cp/parse.y:3650
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr "muligvis mangler en ')'"
-#: cp/parse.y:3747 cp/parse.y:3752
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr "typeangivelsen er ikke angivet for parameteren"
-#: cp/pt.c:6316
-msgid "creating array with size zero"
-msgstr ""
-
-#: cp/pt.c:6830
-#, fuzzy, c-format
-msgid "use of `%s' in template"
-msgstr "størrelsen af tabel '%s' er negativ"
-
-#: cp/pt.c:8036
-msgid "incomplete type unification"
-msgstr "ufuldstændig typeforening"
-
-#: cp/pt.c:8966
-#, fuzzy, c-format
-msgid "use of `%s' in template type unification"
-msgstr "ufuldstændig typeforening"
-
-#: cp/repo.c:272
-msgid "-frepo must be used with -c"
-msgstr ""
-
-#: cp/repo.c:366
+#: parse.y:3849
#, c-format
-msgid "mysterious repository information in %s"
-msgstr "mystisk opbevaringsstedinformation i '%s'"
+msgid "`%E' is not a type, use `typename %E' to make it one"
+msgstr "'%E' er ikke en type, benyt 'typename %E' for at gøre den til en"
-#: cp/repo.c:381
-#, c-format
-msgid "can't create repository information file `%s'"
-msgstr "kan ikke oprette opbevaringsstedinformationsfilen '%s'"
+#: parse.y:3851
+msgid "no type `%D' in `%T'"
+msgstr "ingen type '%D' i '%T'"
-#: cp/rtti.c:224
-msgid "taking dynamic typeid of object with -fno-rtti"
-msgstr "forsøg på at finde den dynamiske typeid af et objekt med -fno-rtti"
-
-#: cp/rtti.c:260
-msgid "cannot use typeid with -fno-rtti"
-msgstr "kan ikke bruge typeid med -fno-rtti"
-
-#: cp/rtti.c:266 cp/rtti.c:415
-msgid "must #include <typeinfo> before using typeid"
-msgstr "'#include <typeinfo>' er nødvendig før typeid kan benyttes"
-
-#: cp/search.c:1961
-msgid "adjusting pointers for covariant returns"
-msgstr ""
-
-#. This shouldn't happen, I don't want errors!
-#: cp/search.c:2469
-msgid "recoverable compiler error, fixups for virtual function"
-msgstr ""
-
-#: cp/semantics.c:1026
-#, fuzzy
-msgid "ISO C++ does not permit named return values"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
-
-#: cp/semantics.c:1043
-#, fuzzy
-msgid "can't redefine default return value for constructors"
-msgstr "returnerer en værdi fra en konstruktionsfunktion"
-
-#: cp/semantics.c:1112
-msgid " will be re-ordered to precede member initializations"
-msgstr ""
-
-#: cp/semantics.c:1385
-#, fuzzy
-msgid "`this' is unavailable for static member functions"
-msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion"
-
-#: cp/semantics.c:1391
-#, fuzzy
-msgid "invalid use of `this' in non-member function"
-msgstr "ugyldig brug af '%s' på henvisning til medlem"
-
-#: cp/semantics.c:1393
-#, fuzzy
-msgid "invalid use of `this' at top level"
-msgstr "ugyldig brug af '%s' på henvisning til medlem"
-
-#: cp/semantics.c:1678
-#, fuzzy
-msgid "template type parameters must use the keyword `class' or `typename'"
-msgstr " en skabelonstypeparameter skal begynde med 'class' eller 'typename'"
-
-#: cp/spew.c:249
+#: parse.y:3854
#, c-format
-msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
-msgstr ""
+msgid "type specifier omitted for parameter `%E'"
+msgstr "typeangivelse udeladt for parameteren '%E'"
-#: cp/spew.c:357
-msgid "parse error"
-msgstr "tolkningsfejl"
+#: parse.y:3862
+msgid "'%D' is used as a type, but is not defined as a type."
+msgstr "'%D' benyttes som en type, men er ikke defineret som en type"
-#: cp/spew.c:1023 cp/spew.c:1295
-msgid "parse error at end of saved function text"
-msgstr "tolkningsfejl ved slutningen af gemt funktionstekst"
+#: cp/pt.c:284
+msgid "data member `%D' cannot be a member template"
+msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
-#: cp/spew.c:1065
-msgid "parse error in method specification"
-msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
+#: cp/pt.c:296
+msgid "invalid member template declaration `%D'"
+msgstr "ugyldig medlemsskabelonerklæring '%D'"
-#: cp/spew.c:1107
-msgid "function body for constructor missing"
-msgstr "kroppen til konstruktionsfunktionen mangler"
+#: cp/pt.c:691
+msgid "explicit specialization in non-namespace scope `%D'"
+msgstr "eksplicit specialisering i virkefeltet '%D' der ikke er et navnerum"
-#: cp/spew.c:1500
-#, c-format
-msgid "%s before `%s'"
-msgstr "%s før '%s'"
+#: cp/pt.c:703
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede"
-#: cp/spew.c:1502
-#, fuzzy, c-format
-msgid "%s before `%c'"
-msgstr "%s før '%s'"
+#: cp/pt.c:792 cp/pt.c:833
+msgid "specializing `%#T' in different namespace"
+msgstr "specialiserer '%#T' i andet navnerum"
-#: cp/spew.c:1504
-#, fuzzy, c-format
-msgid "%s before `\\%o'"
-msgstr "%s før '%s'"
+# hænger sammen med foregående tekst, derfor ikke 'fra'
+#: cp/pt.c:793 cp/pt.c:834
+msgid " from definition of `%#D'"
+msgstr " i forhold til definition af '%#D'"
-#: cp/spew.c:1507
-#, fuzzy, c-format
-msgid "%s before `%s' token"
-msgstr "%s før '%s'"
+#: cp/pt.c:801
+msgid "specialization of `%T' after instantiation"
+msgstr "specialisering af '%T' efter instantiering"
-#: cp/tree.c:216
-#, c-format
-msgid "non-lvalue in %s"
-msgstr "ikke venstreværdi i %s"
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "specialisering af '%T' efter instantiering '%T'"
-#: cp/tree.c:2232
-msgid "`java_interface' attribute can only be applied to Java class definitions"
-msgstr ""
+#: cp/pt.c:860
+msgid "explicit specialization of non-template `%T'"
+msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
-#: cp/tree.c:2242
-msgid "`com_interface' only supported with -fvtable-thunks"
-msgstr "'com_interface' understøttes kun med -fvtable-thunks"
+#: cp/pt.c:992
+msgid "specialization of %D after instantiation"
+msgstr "specialisering af '%D' efter instantiering"
-#: cp/tree.c:2251
-msgid "`com_interface' attribute can only be applied to class definitions"
-msgstr ""
+#: cp/pt.c:1096
+msgid "%s %+#D"
+msgstr "%s %+#D"
-#: cp/tree.c:2267
-msgid "requested init_priority is not an integer constant"
-msgstr "den udbedte init_priority er ikke en heltalskonstant"
+#: cp/pt.c:1147
+msgid "`%D' is not a function template"
+msgstr "'%D' er ikke en funktionsskabelon"
-#: cp/tree.c:2287
-msgid "can only use init_priority attribute on file-scope definitions of objects of class type"
-msgstr "kan kun bruge init_priority-egenskaben på filvirkefeltsdefinitioner af objekter af class-type"
+#: cp/pt.c:1286
+msgid "template-id `%D' for `%+D' does not match any template declaration"
+msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring"
-#: cp/tree.c:2293
-msgid "requested init_priority is out of range"
-msgstr "den udbedte init_priority er uden for det gyldige interval"
+#: cp/pt.c:1294
+msgid "ambiguous template specialization `%D' for `%+D'"
+msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'"
-#: cp/tree.c:2302
-#, fuzzy
-msgid "requested init_priority is reserved for internal use"
-msgstr "den udbedte init_priority er uden for det gyldige interval"
-
-#: cp/tree.c:2312
-#, fuzzy
-msgid "init_priority attribute is not supported on this platform"
-msgstr "integrerede kommatalskonstanter er ikke understøttede på denne vært"
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+msgid "template-id `%D' in declaration of primary template"
+msgstr "skabelons-id '%D' i erklæring af primær skabelon"
-#: cp/typeck.c:483
-#, fuzzy, c-format
-msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+#: cp/pt.c:1534
+msgid "template parameter list used in explicit instantiation"
+msgstr "skabelonsparameterliste benyttet i eksplicit instantiering"
-#: cp/typeck.c:1558
-#, fuzzy
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:1540
+msgid "definition provided for explicit instantiation"
+msgstr "definition angivet for eksplicit instantiering"
-#: cp/typeck.c:1564
-#, fuzzy
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:1546
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'"
-#: cp/typeck.c:1570
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr ""
+#: cp/pt.c:1562
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
-#: cp/typeck.c:1619
-msgid "sizeof applied to a bit-field"
-msgstr "sizeof benyttet på et bitfelt"
+#: cp/pt.c:1579
+msgid "explicit specialization not preceded by `template <>'"
+msgstr "eksplicit specialisering følger ikke efter 'template <>'"
-#: cp/typeck.c:1622
-#, fuzzy
-msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:1592
+msgid "partial specialization `%D' of function template"
+msgstr "partiel specialisering '%D' af funktionsskabelon"
-#: cp/typeck.c:2235
-msgid "invalid reference to NULL ptr, use ptr-to-member instead"
-msgstr "ugyldig reference til NULL-henvisning, benyt en henvisning til medlem i stedet"
+#: cp/pt.c:1624
+msgid "default argument specified in explicit specialization"
+msgstr "standardparameter angivet i eksplicit specialisering"
-#: cp/typeck.c:2398
-#, c-format
-msgid "invalid use of `%s' on pointer to member"
-msgstr "ugyldig brug af '%s' på henvisning til medlem"
+#: cp/pt.c:1628
+msgid "template specialization with C linkage"
+msgstr "skabelonsspecialisering med C-kædning"
-#: cp/typeck.c:2404
-msgid "invalid type argument"
-msgstr "ugyldig typeparameter"
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+msgid "specialization of implicitly-declared special member function"
+msgstr "specialisering af underforstået erklæret speciel medlemsfunktion"
-#: cp/typeck.c:2507
-#, fuzzy
-msgid "ISO C++ forbids subscripting non-lvalue array"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:1759
+msgid "no member function `%D' declared in `%T'"
+msgstr "ingen medlemsfunktion '%D' erklæret i '%T'"
-#: cp/typeck.c:2518
-#, fuzzy
-msgid "subscripting array declared `register'"
-msgstr "'register' er påhæftet funktionsdefinitionen"
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr "for mange skabelonsparameterlister i erklæringen af '%T'"
-#: cp/typeck.c:2693 cp/typeck.c:2833
-msgid "pointer to member function called, but not in class scope"
-msgstr "henvisning til medlem-funktion kaldt, men ikke i klassevirkefelt"
+#: cp/pt.c:2005
+msgid " shadows template parm `%#D'"
+msgstr " skygger for skabelonsparameter '%#D'"
-#: cp/typeck.c:2831
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr "ugyldigt kald af medlemsfunktion som har brug for 'this', i et statisk medlemsfunktionsvirkefelt"
+#: cp/pt.c:2409
+msgid "template parameters not used in partial specialization:"
+msgstr "skabelonsparametre der ikke bruges i partiel specialisering:"
-#: cp/typeck.c:3021
-#, fuzzy
-msgid "ISO C++ forbids calling `::main' from within program"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:2413
+msgid " `%D'"
+msgstr " '%D'"
-#: cp/typeck.c:3225
-msgid "parameter type of called function is incomplete"
-msgstr "parametertypen af den kaldte funktion er ufuldstændig"
+#: cp/pt.c:2425
+msgid "partial specialization `%T' does not specialize any template arguments"
+msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
-#: cp/typeck.c:3615
+# flertalsform unødvendig
+#: cp/pt.c:2450
#, c-format
-msgid "%s rotate count is negative"
-msgstr ""
+msgid "template argument `%E' involves template parameter(s)"
+msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
-#: cp/typeck.c:3618
-#, c-format
-msgid "%s rotate count >= width of type"
-msgstr ""
+# flertalsform unødvendig
+#: cp/pt.c:2494
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+msgstr "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter"
-#: cp/typeck.c:3649 cp/typeck.c:3654 cp/typeck.c:3745 cp/typeck.c:3750
-msgid "ISO C++ forbids comparison between pointer and integer"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+#: cp/pt.c:2582
+msgid "no default argument for `%D'"
+msgstr "ingen standardparameter til '%D'"
-#: cp/typeck.c:3966
-#, fuzzy
-msgid "comparison between signed and unsigned integer expressions"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+#: cp/pt.c:2735
+msgid "template with C linkage"
+msgstr "skabelon med C-kædning"
-#: cp/typeck.c:4105
-#, fuzzy
-msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegningen"
+#: cp/pt.c:2738
+msgid "template class without a name"
+msgstr "skabelonsklasse uden et navn"
-#: cp/typeck.c:4111
-#, fuzzy
-msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegningen"
+#: cp/pt.c:2815
+msgid "`%D' does not declare a template type"
+msgstr "'%D' erklærer ikke en skabelonstype"
-#: cp/typeck.c:4117
-#, fuzzy
-msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
+#: cp/pt.c:2821
+msgid "template definition of non-template `%#D'"
+msgstr "skabelonsdefinition af ikke-skabelon '%#D'"
-#: cp/typeck.c:4123
-#, fuzzy
-msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegningen"
+#: cp/pt.c:2862
+msgid "expected %d levels of template parms for `%#D', got %d"
+msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d"
-#: cp/typeck.c:4194
-msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
-msgstr ""
+#: cp/pt.c:2874
+msgid "got %d template parameters for `%#D'"
+msgstr "modtog %d skabelonsparametre for '%#D'"
-#: cp/typeck.c:4196
-#, fuzzy
-msgid "ISO C++ forbids using pointer to a function in subtraction"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
+#: cp/pt.c:2877
+msgid "got %d template parameters for `%#T'"
+msgstr "modtog %d skabelonsparametre for '%#T'"
-#: cp/typeck.c:4198
-#, fuzzy
-msgid "ISO C++ forbids using pointer to a method in subtraction"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
-
-#: cp/typeck.c:4200
-#, fuzzy
-msgid "ISO C++ forbids using pointer to a member in subtraction"
-msgstr " i henvisning til medlem-omdannelse"
-
-#: cp/typeck.c:4212
-msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
-msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegningen"
+#: cp/pt.c:2879
+#, c-format
+msgid " but %d required"
+msgstr " men %d påkrævet"
-#: cp/typeck.c:4317
-msgid "taking address of temporary"
-msgstr ""
+#: cp/pt.c:2962
+msgid "`%T' is not a template type"
+msgstr "'%T' er ikke en skabelonstype"
-#: cp/typeck.c:4517
-#, fuzzy, c-format
-msgid "ISO C++ forbids %sing an enum"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+# hænger sammen med næste tekst
+#: cp/pt.c:2978
+msgid "previous declaration `%D'"
+msgstr "tidligere erklæring '%D'"
-#: cp/typeck.c:4561
-msgid "cast to non-reference type used as lvalue"
-msgstr ""
+#: cp/pt.c:2979
+#, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr "benyttede %d skabelonsparameter%s i stedet for %d"
-#. ARM $3.4
-#: cp/typeck.c:4628
-#, fuzzy
-msgid "ISO C++ forbids taking address of function `::main'"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+#: cp/pt.c:2995
+msgid "template parameter `%#D'"
+msgstr "skabelonsparameter '%#D'"
-#: cp/typeck.c:4721
-#, fuzzy
-msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
-msgstr "kan ikke finde adressen af 'this' som er et højreværdiudtryk"
+#: cp/pt.c:2996
+msgid "redeclared here as `%#D'"
+msgstr "omerklæret her som '%#D'"
-#: cp/typeck.c:4737
-msgid "unary `&'"
-msgstr "unær '&'"
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+msgid "redefinition of default argument for `%#D'"
+msgstr "omdefinering af standardparameter for '%#D'"
-#: cp/typeck.c:4929
-#, fuzzy
-msgid "cannot take the address of `this', which is an rvalue expression"
-msgstr "kan ikke finde adressen af 'this' som er et højreværdiudtryk"
+#: cp/pt.c:3007
+msgid " original definition appeared here"
+msgstr " oprindelig definition er her"
-#: cp/typeck.c:5232
-#, fuzzy
-msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
-msgstr "ISO C++ forbyder sammenligninger af henvisningsvariabler og heltal"
+#: cp/pt.c:3100
+#, c-format
+msgid "`%E' is not a valid template argument"
+msgstr "'%E' er ikke en gyldig skabelonsparameter"
-#: cp/typeck.c:5682
-#, fuzzy
-msgid "ISO C++ forbids cast to non-reference type used as lvalue"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:3104
+msgid "it must be the address of a function with external linkage"
+msgstr "den skal være adressen af en funktion med ekstern kædning"
-#: cp/typeck.c:5788
-#, fuzzy
-msgid "ISO C++ forbids assignment of arrays"
-msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype"
+#: cp/pt.c:3106
+msgid "it must be the address of an object with external linkage"
+msgstr "den skal være adressen af et objekt med ekstern kædning"
-#: cp/typeck.c:5803
-msgid "return value from function receives multiple initializations"
-msgstr ""
+#: cp/pt.c:3110
+msgid "it must be a pointer-to-member of the form `&X::Y'"
+msgstr "den skal være en henvisning til medlem på formen '&X::Y'"
-#: cp/typeck.c:5946
-msgid " in pointer to member function conversion"
-msgstr " i henvisning til medlemsfunktion-omdannelse"
+#: cp/pt.c:3121
+#, c-format
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
-#: cp/typeck.c:5954
-msgid " in pointer to member conversion"
-msgstr " i henvisning til medlem-omdannelse"
+#: cp/pt.c:3133
+#, c-format
+msgid "address of non-extern `%E' cannot be used as template argument"
+msgstr "adresse på ikke-ekstern '%E' kan ikke bruges som skabelonsparameter"
-#: cp/typeck.c:6542
-msgid "returning reference to temporary"
-msgstr ""
+#: cp/pt.c:3144
+#, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr "ikke-konstant '%E' kan ikke bruges som skabelonsparameter"
-#: cp/typeck.c:6549
-msgid "reference to non-lvalue returned"
-msgstr ""
+#: cp/pt.c:3151
+#, c-format
+msgid "object `%E' cannot be used as template argument"
+msgstr "objektet '%E' kan ikke bruges som skabelonsparameter"
-#: cp/typeck.c:6595
-msgid "returning a value from a destructor"
-msgstr "returnerer en værdi fra en destruktionsfunktion"
+#: cp/pt.c:3526
+#, c-format
+msgid "to refer to a type member of a template parameter, use `typename %E'"
+msgstr "benyt 'typename %E' for at referere til et typemedlem af en skabelonsparameter"
-#. If a return statement appears in a handler of the
-#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6603
-msgid "cannot return from a handler of a function-try-block of a constructor"
-msgstr "kan ikke returnere fra en håndtering af en funktions-try-blok i en konstruktionsfunktion"
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+msgstr "type/værdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'"
-#. You can't return a value from a constructor.
-#: cp/typeck.c:6606
-msgid "returning a value from a constructor"
-msgstr "returnerer en værdi fra en konstruktionsfunktion"
+#: cp/pt.c:3542
+msgid " expected a constant of type `%T', got `%T'"
+msgstr " forventede en konstant af typen '%T', modtog '%T'"
-#: cp/typeck.c:6623
-msgid "return-statement with no value, in function declared with a non-void return type"
-msgstr ""
+#: cp/pt.c:3546
+#, c-format
+msgid " expected a type, got `%E'"
+msgstr " forventede en type, modtog '%E'"
-#: cp/typeck.c:6639
-msgid "return-statement with a value, in function declared with a void return type"
-msgstr ""
+#: cp/pt.c:3558
+msgid " expected a type, got `%T'"
+msgstr " forventede en type, modtog '%T'"
-#: cp/typeck2.c:171
-#, fuzzy
-msgid " because the following virtual functions are abstract:"
-msgstr " eftersom de følgende virtuelle funktioner er abstrakte:"
+#: cp/pt.c:3560
+msgid " expected a class template, got `%T'"
+msgstr " forventede en klasseskabelon, modtog '%T'"
-#: cp/typeck2.c:268
-#, fuzzy, c-format
-msgid "Internal error #%d."
-msgstr "intern fejl: "
+#: cp/pt.c:3596
+msgid " expected a template of type `%D', got `%D'"
+msgstr " forventede en skabelon af typen '%D', modtog '%D'"
-#: cp/typeck2.c:339
-msgid "due to the presence of a constructor"
-msgstr "pga. af tilstedeværelsen af en konstruktionsfunktion"
+#: cp/pt.c:3618
+msgid "template-argument `%T' uses anonymous type"
+msgstr "skabelonsparameter '%T' benytter anonym type"
-#: cp/typeck2.c:363
-msgid "comma expression used to initialize return value"
-msgstr ""
+#: cp/pt.c:3621
+msgid "template-argument `%T' uses local type `%T'"
+msgstr "skabelonsparameter '%T' benytter lokal type '%T'"
-#: cp/typeck2.c:372
-msgid "cannot initialize arrays using this syntax"
-msgstr "kan ikke tildele tabeller startværdier med denne syntaks"
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr "skabelonsparameter '%T' er en variabelt ændret type"
-#: cp/typeck2.c:428
-msgid "ANSI C++ forbids non-constant aggregate initializer expressions"
-msgstr ""
+#: cp/pt.c:3666
+msgid "could not convert template argument `%E' to `%T'"
+msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'"
-#: cp/typeck2.c:503
-msgid "initializing array with parameter list"
-msgstr "klargører tabel med en parameterliste"
+#: cp/pt.c:3710
+#, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
-#: cp/typeck2.c:559
-msgid "initializer for scalar variable requires one element"
-msgstr "startværdien for en skalarvariabel kan kun bestå af ét element"
+#: cp/pt.c:3714
+msgid "provided for `%D'"
+msgstr "angivet for '%D'"
-#: cp/typeck2.c:657
-#, fuzzy
-msgid "aggregate has a partly bracketed initializer"
-msgstr "krøllede paranteser uden noget imellem i startværdi"
+#: cp/pt.c:3761
+#, c-format
+msgid "template argument %d is invalid"
+msgstr "skabelonsparameter %d er ugyldig"
-#: cp/typeck2.c:687 cp/typeck2.c:788
-#, fuzzy
-msgid "non-trivial labeled initializers"
-msgstr "ugyldig startværdi"
+#: cp/pt.c:3997
+msgid "non-template used as template"
+msgstr "ikke-skabelon benyttet som skabelon"
-#: cp/typeck2.c:704
-msgid "non-empty initializer for array of empty elements"
-msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elementer"
+#: cp/pt.c:4139
+msgid "`%T' is not a template"
+msgstr "'%T' er ikke en skabelon"
-#: cp/typeck2.c:754
-msgid "initializer list for object of class with virtual base classes"
-msgstr ""
+#: cp/pt.c:4152
+msgid "non-template type `%T' used as a template"
+msgstr "ikke-skabelonstype '%T' benyttet som skabelon"
-#: cp/typeck2.c:760
-msgid "initializer list for object of class with base classes"
-msgstr ""
+#: cp/pt.c:4154
+msgid "for template declaration `%D'"
+msgstr "til skabelonserklæring '%D'"
-#: cp/typeck2.c:766
-#, fuzzy
-msgid "initializer list for object using virtual functions"
-msgstr "startværdien for kommatal er ikke en kommatalskonstant"
+#: cp/pt.c:4770
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
-#: cp/typeck2.c:883
-msgid "index value instead of field name in union initializer"
-msgstr "indeksværdi i stedet for feltnavn i union-startværdi"
+#: cp/pt.c:5247
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
-#: cp/typeck2.c:939
-#, fuzzy
-msgid "excess elements in aggregate initializer"
-msgstr "for mange elementer i tabelstartværdi"
+#: cp/pt.c:5254
+msgid "%s %+#T"
+msgstr "%s %+#T"
-#: cp/typeck2.c:1037
-msgid "circular pointer delegation detected"
-msgstr "fundet en henvisningsefterfølgelse der går i ring"
+#: cp/pt.c:6284 cp/pt.c:6396
+msgid "instantiation of `%D' as type `%T'"
+msgstr "instantiering af '%D' som typen '%T'"
-#: cp/typeck2.c:1064
-msgid "result of `operator->()' yields non-pointer result"
-msgstr "resultatet af 'operator->()' er ikke en henvisning"
-
-#: cp/typeck2.c:1066
-msgid "base operand of `->' is not a pointer"
-msgstr "basisoperanden til '->' er ikke en henvisning"
+#: cp/pt.c:6440
+msgid "invalid parameter type `%T'"
+msgstr "ugyldig parametertype '%T'"
-#: cp/typeck2.c:1258
-#, fuzzy, c-format
-msgid "ISO C++ forbids defining types within %s"
-msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+#: cp/pt.c:6442
+msgid "in declaration `%D'"
+msgstr "i erklæringen '%D'"
-#: cp/xref.c:833
-#, c-format
-msgid "Can't create cross-reference file `%s'"
-msgstr "Kan ikke oprette krydsreferencefilen '%s'"
+#: cp/pt.c:6517
+msgid "creating pointer to member function of non-class type `%T'"
+msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse"
-#. The current line in each outer source file is now the
-#. same as the line of the #include.
-#: cpperror.c:55
-#, c-format
-msgid "In file included from %s:%u"
-msgstr "I filen inkluderet af %s:%u"
+#: cp/pt.c:6680
+msgid "creating array with size zero"
+msgstr "opretter tabel med størrelsen nul"
-#. Translators note: this message is used in conjunction
-#. with "In file included from %s:%ld" and some other
-#. tricks. We want something like this:
-#.
-#. | In file included from sys/select.h:123,
-#. | from sys/types.h:234,
-#. | from userfile.c:31:
-#. | bits/select.h:45: <error message here>
-#.
-#. with all the "from"s lined up.
-#. The trailing comma is at the beginning of this message,
-#. and the trailing colon is not translated.
-#: cpperror.c:71
+#: cp/pt.c:6694
#, c-format
-msgid ""
-",\n"
-" from %s:%u"
-msgstr ""
-",\n"
-" af %s:%u"
+msgid "creating array with size zero (`%E')"
+msgstr "opretter tabel med størrelsen nul ('%E')"
-#: cpperror.c:188
-msgid "internal error: "
-msgstr "intern fejl: "
+#: cp/pt.c:6933
+msgid "forming reference to void"
+msgstr "danner reference til void"
-#: cpperror.c:195
-msgid "warning: "
-msgstr "advarsel: "
+#: cp/pt.c:6935
+msgid "forming %s to reference type `%T'"
+msgstr "danner %s til referencetypen '%T'"
-#: cpperror.c:309 cpperror.c:480 cppfiles.c:661 gcc.c:6076 tradcpp.c:4722
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
-
-#: cppexp.c:209
-msgid "traditional C rejects the `U' suffix"
-msgstr ""
+#: cp/pt.c:6973
+msgid "creating pointer to member of non-class type `%T'"
+msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
-#: cppexp.c:212
-msgid "too many 'l' suffixes in integer constant"
-msgstr "for mange 'l'-suffikser i heltalskonstant"
+#: cp/pt.c:6979
+msgid "creating pointer to member reference type `%T'"
+msgstr "opretter henvisning til medlemsreference af typen '%T'"
-#: cppexp.c:216
-msgid "integer constant contains digits beyond the radix"
-msgstr "heltalskonstanten indeholder cifre der er større end grundtallet"
+#: cp/pt.c:7057
+msgid "creating array of `%T'"
+msgstr "opretter tabel af '%T'"
-#: cppexp.c:219
-msgid "integer constant out of range"
-msgstr "heltalskonstanten er uden for det gyldige interval"
+#: cp/pt.c:7100
+msgid "`%T' is not a class, struct, or union type"
+msgstr "'%T' er ikke en class-, struct- eller union-type"
-#: cppexp.c:225
-msgid "integer constant is so large that it is unsigned"
-msgstr "heltalskonstanten er så stor at den er unsigned"
+#: cp/pt.c:7213
+#, c-format
+msgid "use of `%s' in template"
+msgstr "brug af '%s' i skabelon"
-#: cppexp.c:234
-#, fuzzy, c-format
-msgid "invalid suffix '%.*s' on integer constant"
-msgstr "for mange 'l'-suffikser i heltalskonstant"
+#: cp/pt.c:7975
+msgid "type `%T' composed from a local class is not a valid template-argument"
+msgstr "typen '%T' sammensat fra lokal klasse er ikke en gyldig skabelonsparameter"
-#: cppexp.c:343
-msgid "missing ')' after \"defined\""
-msgstr ""
+#: cp/pt.c:7976
+msgid " trying to instantiate `%D'"
+msgstr " ved forsøg på at instantiere '%D'"
-#: cppexp.c:350
-#, fuzzy
-msgid "operator \"defined\" requires an identifier"
-msgstr "symbolet efter #undef er ikke et kaldenavn"
+#: cp/pt.c:8421
+msgid "incomplete type unification"
+msgstr "ufuldstændig typeforening"
-#: cppexp.c:358
+#: cp/pt.c:9387
#, c-format
-msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
-msgstr ""
+msgid "use of `%s' in template type unification"
+msgstr "brug af '%s' i skabelonstypeforening"
-#: cppexp.c:427
-msgid "\"defined\" operator appears during macro expansion"
-msgstr ""
+#: cp/pt.c:9821 cp/pt.c:9893
+msgid "explicit instantiation of non-template `%#D'"
+msgstr "eksplicit instantiering af ikke-skabelon '%#D'"
-#: cppexp.c:443
-#, fuzzy, c-format
-msgid "ISO C++ does not permit \"%s\" in #if"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
+#: cp/pt.c:9837 cp/pt.c:9888
+msgid "no matching template for `%D' found"
+msgstr "ingen passende skabelon for '%D' fundet"
-#: cppexp.c:458
-#, fuzzy, c-format
-msgid "\"%s\" is not defined"
-msgstr "'%.*s' er ikke defineret"
+#: cp/pt.c:9843
+msgid "explicit instantiation of `%#D'"
+msgstr "eksplicit instantiering af '%#D'"
-#: cppexp.c:550
-msgid "octal escape sequence out of range"
-msgstr "den oktale undvigesekvens er uden for det gyldige interval"
+#: cp/pt.c:9880
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr "'%#D' er blevet eksplicit instantieret mere end én gang"
-#: cppexp.c:583
-msgid "hex escape sequence out of range"
-msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
+#: cp/pt.c:9905
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer"
-#: cppexp.c:598
-msgid "integer overflow in preprocessor expression"
-msgstr "heltallet løber over i forbehandlerudtrykket"
+#: cp/pt.c:9909 cp/pt.c:9999
+msgid "storage class `%D' applied to template instantiation"
+msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
-#: cppexp.c:868
-#, c-format
-msgid "impossible operator '%s'"
-msgstr ""
+#: cp/pt.c:9966
+msgid "explicit instantiation of non-template type `%T'"
+msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype"
-#: cppexp.c:978
-msgid "comma operator in operand of #if"
-msgstr "kommeoperator i en operand til #if"
+#: cp/pt.c:9980
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr "eksplicit instantiering af '%T' før definering af skabelonen"
-#: cppfiles.c:383
+#: cp/pt.c:9988
#, c-format
-msgid "%s is too large"
-msgstr "%s er for stor"
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer"
-#: cppfiles.c:412
-#, fuzzy, c-format
-msgid "%s is shorter than expected"
-msgstr "%s er kortere end forventet\n"
+#: cp/pt.c:10032
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr "'%#T' er blevet eksplicit instantieret mere end én gang"
-#: cppfiles.c:421
-#, c-format
-msgid "%s is a block device"
-msgstr "%s er en blokenhed"
+#: cp/pt.c:10412
+msgid "explicit instantiation of `%D' but no definition available"
+msgstr "eksplicit instantiering af '%D', men ingen definition tilgængelig"
-#: cppfiles.c:541
-#, c-format
-msgid "No include path in which to find %s"
-msgstr "Der er ingen inkluderingssti at finde %s i"
+#: cp/pt.c:10815
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant "
-#: cppfiles.c:609
-msgid "Multiple include guards may be useful for:\n"
-msgstr ""
-
-#: cppfiles.c:999
-msgid "absolute file name in remap_filename"
-msgstr ""
+#: cp/repo.c:271
+msgid "-frepo must be used with -c"
+msgstr "-frepo skal bruges med -c"
-#: cppinit.c:223
-#, fuzzy, c-format
-msgid "ignoring nonexistent directory \"%s\"\n"
-msgstr "ignorerer det ikkeeksisterende katalog '%s'\n"
+#: cp/repo.c:361
+#, c-format
+msgid "mysterious repository information in %s"
+msgstr "mystisk info om opbevaringssted i '%s'"
-#: cppinit.c:229
+#: cp/repo.c:376
#, c-format
-msgid "%s: Not a directory"
-msgstr "%s: ikke et katalog"
+msgid "can't create repository information file `%s'"
+msgstr "kan ikke oprette informationsfilen '%s' til opbevaringssted"
-#: cppinit.c:275
-#, fuzzy, c-format
-msgid "ignoring duplicate directory \"%s\"\n"
-msgstr "ignorerer mere end én angivelse af kataloget '%s'\n"
+#: cp/rtti.c:240
+msgid "cannot use typeid with -fno-rtti"
+msgstr "kan ikke bruge typeid med -fno-rtti"
-#: cppinit.c:889
-msgid "-include and -imacros cannot be used with -fpreprocessed"
-msgstr ""
+#: cp/rtti.c:246
+msgid "must #include <typeinfo> before using typeid"
+msgstr "'#include <typeinfo>' er nødvendig før typeid kan benyttes"
-#: cppinit.c:925
-msgid "#include \"...\" search starts here:\n"
-msgstr "#include \"...\"-søgning begynder her:\n"
+#: cp/rtti.c:320
+msgid "cannot create type information for type `%T' because its size is variable"
+msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens størrelse er variabel"
+
+#: cp/rtti.c:584 cp/rtti.c:598
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+msgstr "dynamic_cast af '%#D' til '%#T' kan aldrig lykkes"
+
+#: cp/rtti.c:674
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+msgstr "kan ikke anvende dynamic_cast på '%E' (af typen '%#T') til typen '%#T' (%s)"
+
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr "'%T' er en tvetydig stamklasse til '%T'"
+
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr "'%T' er en utilgængelig stamklasse til '%T'"
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "tildeling til ikke-statisk medlem '%D' af omgivende klasse '%T'"
+
+#: cp/search.c:2050
+msgid "adjusting pointers for covariant returns"
+msgstr "justerer henvisninger for kovariante returneringer"
-#: cppinit.c:929
-msgid "#include <...> search starts here:\n"
-msgstr "#include <...>-søgning begynder her:\n"
+#: cp/search.c:2054 cp/search.c:2061
+msgid "invalid covariant return type for `%#D'"
+msgstr "ugyldig kovariant returneringstype for '%#D'"
-#: cppinit.c:932
-msgid "End of search list.\n"
-msgstr "Slut på søgningslisten.\n"
+#: cp/search.c:2055
+msgid " overriding `%#D' (must be pointer or reference to class)"
+msgstr " overskriver '%#D' (skal være en henvisning eller reference til klasse)"
-#: cppinit.c:1004 tradcpp.c:963 tradcpp.c:973 tradcpp.c:1064
-msgid "I/O error on output"
-msgstr "I/O-fejl på uddata"
+#: cp/search.c:2062
+msgid " overriding `%#D' (must use pointer or reference)"
+msgstr " overskriver '%#D' (skal være en henvisning eller reference)"
-#: cppinit.c:1018
-msgid "buffers still stacked in cpp_finish"
-msgstr "mellemlagre er stadig stakket op i cpp_finish"
+#: cp/search.c:2067
+msgid "conflicting return type specified for `%#D'"
+msgstr "modstridende returtyper angivet for '%#D'"
-#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
-#. I.e. a const string initializer with parens around it. That is
-#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1050
-#, c-format
-msgid "Argument missing after %s"
-msgstr "En parameter mangler efter %s"
+#: cp/search.c:2068
+msgid " overriding `%#D'"
+msgstr " overskriver '%#D'"
-#: cppinit.c:1051
+#: cp/search.c:2077
#, c-format
-msgid "Assertion missing after %s"
-msgstr "Et postulat mangler efter %s"
+msgid "looser throw specifier for `%#F'"
+msgstr "løsere throw-angivelse for '%#F'"
-#: cppinit.c:1052
+#: cp/search.c:2078
#, c-format
-msgid "Directory name missing after %s"
-msgstr "Et katalognavn mangler efter %s"
+msgid " overriding `%#F'"
+msgstr " overskriver '%#F'"
-#: cppinit.c:1053
-#, c-format
-msgid "File name missing after %s"
-msgstr "Et filnavn mangler efter %s"
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+msgid "`%#D' cannot be declared"
+msgstr "'%#D' kan ikke erklæres"
-#: cppinit.c:1054
-#, c-format
-msgid "Macro name missing after %s"
-msgstr "Et makronavn mangler efter %s"
+#: cp/search.c:2168
+msgid " since `%#D' declared in base class"
+msgstr " eftersom '%#D' er erklæret i stamklassen"
-#: cppinit.c:1055
-#, c-format
-msgid "Path name missing after %s"
-msgstr "Navnet på en sti mangler efter %s"
+#: cp/search.c:2309
+msgid "`%#D' needs a final overrider"
+msgstr "'%#D' behøver en endelig overskrivning"
-#: cppinit.c:1056
+#: cp/semantics.c:919
#, c-format
-msgid "Number missing after %s"
-msgstr "Et tal mangler efter %s"
-
-#: cppinit.c:1057
-#, fuzzy, c-format
-msgid "Target missing after %s"
-msgstr "En parameter mangler efter %s"
+msgid "type of asm operand `%E' could not be determined"
+msgstr "typen af asm-operanden '%E' kunne ikke afgøres"
-#: cppinit.c:1242
-#, fuzzy, c-format
-msgid "Too many filenames. Type %s --help for usage info"
-msgstr "For mange parametre. Brugsvejledning fås ved '%s --help'"
-
-#: cppinit.c:1426 tradcpp.c:598
-msgid "Output filename specified twice"
-msgstr "Uddatafilnavnet er angivet to gange"
-
-#: cppinit.c:1546
-msgid "-I- specified twice"
-msgstr "-I- er angivet to gange"
-
-#: cppinit.c:1694
-#, fuzzy, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP version %s (cpplib)\n"
-
-#: cppinit.c:1735 tradcpp.c:787
-#, fuzzy
-msgid "you must additionally specify either -M or -MM"
-msgstr "-MG skal angives sammen med en af -M eller -MM"
-
-#: cppinit.c:1795
-#, c-format
-msgid "Usage: %s [switches] input output\n"
-msgstr "Brug: %s [tilvalg] inddata uddata\n"
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1798
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
+#: cp/semantics.c:1051
+msgid "ISO C++ does not permit named return values"
+msgstr "ISO C++ tillader ikke navngivne returværdier"
-#: cppinit.c:1807
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
+#: cp/semantics.c:1060
+msgid "return identifier `%D' already in place"
+msgstr "returkaldenavn '%D' allerede på plads"
-#: cppinit.c:1816
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
+#: cp/semantics.c:1068
+msgid "can't redefine default return value for constructors"
+msgstr "kan ikke omdefinere standardreturværdi for konstruktionsfunktioner"
-#: cppinit.c:1823
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
-#: cppinit.c:1829
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
+#: cp/semantics.c:1343
+msgid "`this' is unavailable for static member functions"
+msgstr "'this' er ikke tilgængelig for statiske medlemsfunktioner"
-#: cppinit.c:1839
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
+#: cp/semantics.c:1349
+msgid "invalid use of `this' in non-member function"
+msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion"
-#: cppinit.c:1847
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
+#: cp/semantics.c:1351
+msgid "invalid use of `this' at top level"
+msgstr "ugyldig brug af 'this' ved øverste niveau"
-#: cppinit.c:1855
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
+#: cp/semantics.c:1381
+msgid "calling type `%T' like a method"
+msgstr "kalder typen '%T' som en metode"
-#: cppinit.c:1861
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
+#: cp/semantics.c:1419
+msgid "destructor specifier `%T::~%T()' must have matching names"
+msgstr "destruktionsangivelse '%T::~%T()' skal have ens navne"
-#: cppinit.c:1866
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question> (<answer>) Assert the <answer> to <question>\n"
-" -A-<question> (<answer>) Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
+#: cp/semantics.c:1425
+msgid "`%E' is not of type `%T'"
+msgstr "'%E' er ikke af typen '%T'"
-#: cppinit.c:1874
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-
-#: cppinit.c:1882
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files.\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
+#: cp/semantics.c:1613
+msgid "template type parameters must use the keyword `class' or `typename'"
+msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'"
-#: cpplex.c:159
-#, c-format
-msgid "trigraph ??%c converted to %c"
-msgstr "trigrafen ??%c konverteret til %c"
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr "ugyldig standardparameter i skabelon"
-#: cpplex.c:167
-#, c-format
-msgid "trigraph ??%c ignored"
-msgstr "trigrafen ??%c ignoreret"
+#: cp/semantics.c:1694
+msgid "definition of `%#T' inside template parameter list"
+msgstr "definition af '%#T' inden i skabelonsparameterliste"
-#: cpplex.c:251
-msgid "backslash and newline separated by space"
-msgstr "omvendt skråstreg og linjeskift er adskilt af mellemrum"
+#: cp/semantics.c:1710
+msgid "invalid definition of qualified type `%T'"
+msgstr "ugyldig definition af modificeret type '%T'"
-#: cpplex.c:255
-#, fuzzy
-msgid "backslash-newline at end of file"
-msgstr "ingen linjeskift ved slutningen af filen"
+#: cp/semantics.c:2053
+msgid "invalid base-class specification"
+msgstr "ugyldig stamklasseangivelse"
-#: cpplex.c:330
-#, fuzzy
-msgid "\"/*\" within comment"
-msgstr "'/*' i en kommentar"
+#: cp/semantics.c:2062
+msgid "base class `%T' has cv qualifiers"
+msgstr "stamklassen '%T' har const/volatile-modifikationer"
-#: cpplex.c:416
-#, fuzzy
-msgid "null character(s) ignored"
-msgstr "indlejrede nultegn ignoreret"
+#: cp/semantics.c:2093
+msgid "multiple declarators in template declaration"
+msgstr "flere erklærerer i skabelonserklæring"
-#: cpplex.c:423
+#: cp/semantics.c:2120
#, c-format
-msgid "%s in preprocessing directive"
-msgstr "%s i forbehandlerdirektiv"
+msgid "type of `%E' is unknown"
+msgstr "typen af '%E' er ukendt"
-#: cpplex.c:507
-#, fuzzy
-msgid "'$' character(s) in identifier"
-msgstr "'$'-tegn optræder i kaldenavn"
-
-#: cpplex.c:521
-#, fuzzy, c-format
-msgid "attempt to use poisoned \"%s\""
-msgstr "forsøg på at bruge forgiftet '%s'"
-
-#: cpplex.c:527
-msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
-msgstr ""
-
-#: cpplex.c:597
+#: cp/spew.c:225
#, c-format
-msgid "missing terminating %c character"
-msgstr "manglende afsluttende '%c'-tegn"
-
-#: cpplex.c:604
-msgid "possible start of unterminated string literal"
-msgstr "muligvis begyndelsen af uafsluttet strengkonstant"
-
-#: cpplex.c:697
-#, fuzzy
-msgid "multi-line string literals are deprecated"
-msgstr "flerlinjers strengkonstant"
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgstr "kaldenavnet '%s' er i modstrid med den interne navngivningsstrategi i GNU c++"
-#: cpplex.c:708
-#, fuzzy
-msgid "null character(s) preserved in literal"
-msgstr "nultegn bevaret"
+#: cp/spew.c:1002 cp/spew.c:1340
+msgid "parse error at end of saved function text"
+msgstr "tolkningsfejl ved slutningen af gemt funktionstekst"
-#: cpplex.c:881
-msgid "no newline at end of file"
-msgstr "ingen linjeskift ved slutningen af filen"
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr "%Hslutningen af filen læst inden i definition"
-#: cpplex.c:1002 tradcpp.c:1447
-msgid "unterminated comment"
-msgstr "uafsluttet kommentar"
+#: cp/spew.c:1121
+msgid "parse error in method specification"
+msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
-#: cpplex.c:1016
-msgid "C++ style comments are not allowed in ISO C89"
-msgstr "kommentarer i C++-stil er ikke tilladt i ISO C89"
+#: cp/spew.c:1161
+msgid "function body for constructor missing"
+msgstr "kroppen til konstruktionsfunktionen mangler"
-#: cpplex.c:1018
-msgid "(this will be reported only once per input file)"
-msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr "%Hslutningen af filen læst inden i standardparameter"
-#: cpplex.c:1026
-msgid "multi-line comment"
-msgstr "flerlinjers kommentar"
+#: cp/spew.c:1419
+msgid "circular dependency in default args of `%#D'"
+msgstr "cirkulær afhængighed i standardparametre til '%#D'"
-#: cpplex.c:1188
-#, fuzzy
-msgid "directives may not be used inside a macro argument"
-msgstr "#%s må ikke optræde i en makroparameter"
+#: cp/spew.c:1483
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr "ugyldig type '%T' for standardparameter til '%T'"
-#: cpplex.c:1343
-#, fuzzy, c-format
-msgid "Unspellable token %s"
-msgstr "Symbol kan ikke staves"
-
-#: cpplib.c:214
+#: cp/spew.c:1548
#, c-format
-msgid "extra tokens at end of #%s directive"
-msgstr ""
-
-#: cpplib.c:303
-msgid "# followed by integer"
-msgstr "'#' efterfølges af et heltal"
-
-#: cpplib.c:352
-msgid "suggest not using #elif in traditional C"
-msgstr ""
+msgid "%s before `%s'"
+msgstr "%s før '%s'"
-#: cpplib.c:355
+#: cp/spew.c:1550
#, c-format
-msgid "traditional C ignores #%s with the # indented"
-msgstr "traditionel C ignorerer #%s når '#' er indrykket"
+msgid "%s before `%c'"
+msgstr "%s før '%c'"
-#: cpplib.c:359
+#: cp/spew.c:1552
#, c-format
-msgid "suggest hiding #%s from traditional C with an indented #"
-msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket '#'"
+msgid "%s before `\\%o'"
+msgstr "%s før '\\%o'"
-#: cpplib.c:369
+#: cp/spew.c:1555
#, c-format
-msgid "#%s is a GCC extension"
-msgstr ""
+msgid "%s before `%s' token"
+msgstr "%s før symbolet '%s'"
-#: cpplib.c:393
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
-msgid "invalid preprocessing directive #%s"
-msgstr "ugyldigt forbehandlerdirektiv #%s"
+msgid "non-lvalue in %s"
+msgstr "ikke-venstreværdi i %s"
-#: cpplib.c:454
-#, c-format
-msgid "no macro name given in #%s directive"
-msgstr ""
+#: cp/tree.c:562
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "modifikationerne '%V' kan ikke anvendes på '%T'"
-#: cpplib.c:458
+#: cp/tree.c:1941
#, c-format
-msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
-msgstr ""
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner"
-#: cpplib.c:461
-#, fuzzy
-msgid "macro names must be identifiers"
-msgstr "Et makronavn mangler efter %s"
-
-#: cpplib.c:470
-#, fuzzy, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "#%s må ikke optræde i en makroparameter"
-
-#: cpplib.c:508
-#, fuzzy, c-format
-msgid "undefining \"%s\""
-msgstr "glemmer definitionen af '%s'"
-
-#: cpplib.c:552
-#, fuzzy
-msgid "missing terminating > character"
-msgstr "manglende afsluttende '%c'-tegn"
-
-#: cpplib.c:590
+#: cp/tree.c:1971
#, c-format
-msgid "#%s expects \"FILENAME\" or <FILENAME>"
-msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
-#: cpplib.c:599
+#: cp/tree.c:1977
#, c-format
-msgid "empty file name in #%s"
-msgstr "tomt filnavn i #%s"
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "'%s' er forældet; virtuelle tabeller i g++ er nu COM-kompatible som standard"
-#: cpplib.c:627
-#, fuzzy
-msgid "#include nested too deeply"
-msgstr "makro eller '#include'-rekursion er for dyb"
-
-#: cpplib.c:629
-msgid "attempt to push file buffer with contexts stacked"
-msgstr ""
-
-#: cpplib.c:636
-msgid "#include_next in primary source file"
-msgstr "#include_next i den primære kildekodefil"
-
-#: cpplib.c:660
-msgid "#import is obsolete, use an #ifndef wrapper in the header file"
-msgstr "#import er forældet, brug en #ifndef-indpakning i inkluderingsfilen"
+#: cp/tree.c:2002
+msgid "requested init_priority is not an integer constant"
+msgstr "den udbedte init_priority er ikke en heltalskonstant"
-#: cpplib.c:696
-#, fuzzy, c-format
-msgid "invalid flag \"%s\" in line directive"
-msgstr "ugyldigt '#pragma poison'-direktiv"
+#: cp/tree.c:2023
+#, c-format
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+msgstr "kan kun bruge egenskaben '%s' på filvirkefeltsdefinitioner af objekter af klassetype"
-#: cpplib.c:748
-#, fuzzy, c-format
-msgid "\"%s\" after #line is not a positive integer"
-msgstr "symbolet efter #line er ikke et heltal"
+#: cp/tree.c:2031
+msgid "requested init_priority is out of range"
+msgstr "den udbedte init_priority er uden for det gyldige interval"
-#: cpplib.c:754
-#, fuzzy
-msgid "line number out of range"
-msgstr "linjenummer er uden for det gyldige interval i #line"
+#: cp/tree.c:2041
+msgid "requested init_priority is reserved for internal use"
+msgstr "den udbedte init_priority er reserveret til intern brug"
-#: cpplib.c:798
+#: cp/tree.c:2051
#, c-format
-msgid "file \"%s\" left but not entered"
-msgstr ""
+msgid "`%s' attribute is not supported on this platform"
+msgstr "egenskaben '%s' er ikke understøttet på denne platform"
-#: cpplib.c:806
-#, fuzzy, c-format
-msgid "expected to return to file \"%s\""
-msgstr "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
-
-#: cpplib.c:809
+#: cp/tree.c:2588
#, c-format
-msgid "expected to return to line number %u"
-msgstr ""
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d"
-#: cpplib.c:812
+#: cp/typeck.c:524
#, c-format
-msgid "header flags for \"%s\" have changed"
-msgstr ""
-
-#: cpplib.c:823
-#, fuzzy, c-format
-msgid "\"%s\" is not a valid filename"
-msgstr "%s: ugyldigt filnavn: %s\n"
-
-#: cpplib.c:920 f/lex.c:1240
-msgid "invalid #ident"
-msgstr "ugyldig #ident"
-
-#: cpplib.c:971
-#, fuzzy, c-format
-msgid "unknown #pragma namespace %s"
-msgstr "ukendt maskintilstand '%s'"
-
-#: cpplib.c:1083
-msgid "#pragma once is obsolete"
-msgstr "'#pragma once' er forældet"
-
-#: cpplib.c:1086
-#, fuzzy
-msgid "#pragma once in main file"
-msgstr "'#pragma once' uden for inkluderingsfil"
-
-#: cpplib.c:1110
-#, fuzzy
-msgid "invalid #pragma GCC poison directive"
-msgstr "ugyldigt '#pragma poison'-direktiv"
-
-#: cpplib.c:1119
-#, fuzzy, c-format
-msgid "poisoning existing macro \"%s\""
-msgstr "forgifter eksisterende makro '%s'"
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion"
-#: cpplib.c:1144
-#, fuzzy
-msgid "#pragma system_header ignored outside include file"
-msgstr "'#pragma systemheader' uden for inkluderingsfil"
+#: cp/typeck.c:545
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
-#: cpplib.c:1166
-#, fuzzy, c-format
-msgid "cannot find source %s"
-msgstr "[kan ikke finde %s]"
+#: cp/typeck.c:1436
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+msgstr "ISO C++ forbyder konvertering fra '%#T' til '(...)'"
-#: cpplib.c:1170
+#: cp/typeck.c:1514
#, c-format
-msgid "current file is older than %s"
-msgstr ""
-
-#: cpplib.c:1233
-msgid "_Pragma takes a parenthesized string literal"
-msgstr ""
+msgid "invalid application of `%s' to a member function"
+msgstr "ugyldig brug af '%s' på en medlemsfunktion"
-#: cpplib.c:1326
-msgid "#else without #if"
-msgstr "#else uden #if"
-
-#: cpplib.c:1331 tradcpp.c:3850
-msgid "#else after #else"
-msgstr "#else efter #else"
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "ugyldig brug af '%s' på et ikke-statisk medlem"
-#: cpplib.c:1333 cpplib.c:1367
-msgid "the conditional began here"
-msgstr "betingelsen begyndte her"
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
+msgstr "'sizeof' benyttet på et bitfelt"
-#: cpplib.c:1360
-msgid "#elif without #if"
-msgstr "#elif uden #if"
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr "ISO C++ forbyder anvendelse af 'sizeof' på et udtryk af en funktionstype"
-#: cpplib.c:1365 tradcpp.c:3545
-msgid "#elif after #else"
-msgstr "#elif efter #else"
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
+msgstr "forældet konvertering fra strengkonstant til '%T'"
-#: cpplib.c:1397
-msgid "#endif without #if"
-msgstr "#endif uden #if"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'"
-#: cpplib.c:1482 tradcpp.c:3242
-#, fuzzy
-msgid "missing '(' after predicate"
-msgstr "der mangler et semikolon før en højre krøllet parantes"
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
+msgstr "'%D' er ikke et medlem af '%T'"
-#: cpplib.c:1503 tradcpp.c:3256
-msgid "missing ')' to complete answer"
-msgstr ""
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "ugyldig tilgang til ikke-statisk datamedlem '%D' af NULL-objekt"
-#: cpplib.c:1511 tradcpp.c:3262
-msgid "predicate's answer is empty"
-msgstr ""
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr "(måske blev 'offsetof'-makroen benyttet forkert)"
-#: cpplib.c:1542 tradcpp.c:3310
-msgid "assertion without predicate"
-msgstr ""
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "'%D::%D' er ikke et medlem af '%T'"
-#: cpplib.c:1544 tradcpp.c:3312
+#: cp/typeck.c:2179
#, fuzzy
-msgid "predicate must be an identifier"
-msgstr "#define skal efterfølges af et kaldenavn"
+msgid "`%T' is not a base of `%T'"
+msgstr "'%D' er ikke et medlem af '%T'"
-#: cpplib.c:1625 tradcpp.c:3409
-#, fuzzy, c-format
-msgid "\"%s\" re-asserted"
-msgstr "\"%s\" omdefineret"
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr "destruktionsangivelse '%T::~%T' skal have ens navne"
-#: cpplib.c:1821
-msgid "<builtin>"
-msgstr ""
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr "typen '%T' har ingen destruktionsfunktion"
-#: cpplib.c:1823
-#, fuzzy
-msgid "<command line>"
-msgstr "<kommandolinje>: "
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
+msgstr "'%D' er ikke en medlemsskabelonfunktion"
-#: cpplib.c:1846
-msgid "<stdin>"
-msgstr ""
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+msgid "`%T' is not a pointer-to-object type"
+msgstr "'%T' er ikke af en henvisning til objekt-type"
-#: cpplib.c:1879
+#: cp/typeck.c:2365
#, c-format
-msgid "unterminated #%s"
-msgstr "uafsluttet #%s"
-
-#: cpplib.c:1907
-#, c-format
-msgid "file \"%s\" entered but not left"
-msgstr ""
+msgid "invalid use of `%s' on pointer to member"
+msgstr "ugyldig brug af '%s' på henvisning til medlem"
-#: cppmacro.c:213
-#, fuzzy, c-format
-msgid "invalid builtin macro \"%s\""
-msgstr "forgifter eksisterende makro '%s'"
+#: cp/typeck.c:2371
+msgid "invalid type argument"
+msgstr "ugyldig typeparameter"
-#: cppmacro.c:333
-msgid "invalid string literal, ignoring final '\\'"
-msgstr ""
+#: cp/typeck.c:2474
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "ISO C++ forbyder indeksering af en ikke-venstreværdis tabel"
-#: cppmacro.c:367
-#, c-format
-msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
-msgstr ""
+#: cp/typeck.c:2485
+msgid "subscripting array declared `register'"
+msgstr "indeksering af tabel som er erklæret 'register'"
-#: cppmacro.c:539
+#: cp/typeck.c:2570
#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr ""
+msgid "object missing in use of `%E'"
+msgstr "objekt mangler i brug af '%E'"
-#: cppmacro.c:556
-#, fuzzy
-msgid "ISO C99 requires rest arguments to be used"
-msgstr "ISO C påkræver en navngiven parameter før '...'"
+#: cp/typeck.c:2674
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr "ISO C++ forbyder kald af '::main' inde fra programmet"
-#: cppmacro.c:561
+#: cp/typeck.c:2699
#, c-format
-msgid "macro \"%s\" requires %u arguments, but only %u given"
-msgstr ""
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+msgstr "brug .* eller ->* i kald af henvisning til medlemsfunktion i '%E (...)'"
-#: cppmacro.c:572
+#: cp/typeck.c:2712
#, c-format
-msgid "macro \"%s\" passed %u arguments, but takes just %u"
-msgstr ""
-
-#: cppmacro.c:612
-#, fuzzy, c-format
-msgid "function-like macro \"%s\" must be used with arguments in traditional C"
-msgstr "funktionsmakroen %s skal bruges med parametre i traditionel C"
-
-#: cppmacro.c:1236
-#, fuzzy, c-format
-msgid "duplicate macro parameter \"%s\""
-msgstr "makroparameternavnet \"%s\" optræder mere end én gang"
-
-#: cppmacro.c:1271
-#, fuzzy, c-format
-msgid "\"%s\" may not appear in macro parameter list"
-msgstr "manglende højreparantes i makroparameterlisten"
-
-#: cppmacro.c:1278
-msgid "macro parameters must be comma-separated"
-msgstr ""
-
-#: cppmacro.c:1295
-#, fuzzy
-msgid "parameter name missing"
-msgstr "Et katalognavn mangler efter %s"
-
-#: cppmacro.c:1309
-msgid "anonymous variadic macros were introduced in C99"
-msgstr ""
+msgid "`%E' cannot be used as a function"
+msgstr "'%E' kan ikke bruges som en funktion"
-#: cppmacro.c:1312
-#, fuzzy
-msgid "ISO C does not permit named variadic macros"
-msgstr "ISO C tillader ikke navngivne variabel parameterliste-makroer"
+#: cp/typeck.c:2824
+msgid "too many arguments to %s `%+#D'"
+msgstr "for mange parametre til %s '%+#D'"
-#: cppmacro.c:1321
-#, fuzzy
-msgid "missing ')' in macro parameter list"
-msgstr "manglende højreparantes i makroparameterlisten"
-
-#: cppmacro.c:1400
-#, fuzzy
-msgid "ISO C requires whitespace after the macro name"
-msgstr "C-standarden påkræver mellemrum efter #define %s"
+#: cp/typeck.c:2865
+msgid "parameter type of called function is incomplete"
+msgstr "parametertypen for den kaldte funktion er ufuldstændig"
-#: cppmacro.c:1423
-#, fuzzy
-msgid "'#' is not followed by a macro parameter"
-msgstr "'#' efterfølges ikke af et makroparameternavn"
+#: cp/typeck.c:2928
+msgid "too few arguments to %s `%+#D'"
+msgstr "for få parametre til %s '%+#D'"
-#: cppmacro.c:1443
-msgid "'##' cannot appear at either end of a macro expansion"
-msgstr ""
+#: cp/typeck.c:3056 cp/typeck.c:3066
+msgid "assuming cast to type `%T' from overloaded function"
+msgstr "antager typeomtvingning til typen '%T' fra flertydig funktion"
-#: cppmacro.c:1478
+#: cp/typeck.c:3126
#, c-format
-msgid "\"%s\" redefined"
-msgstr "\"%s\" omdefineret"
+msgid "division by zero in `%E / 0'"
+msgstr "division med nul i '%E / 0'"
-#: cppmacro.c:1484
-msgid "this is the location of the previous definition"
-msgstr "den foregående definition er her"
-
-#: cppmacro.c:1542
-#, fuzzy, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional."
-msgstr "makroparameteren \"%s\" ville blive gjort til en streng i traditionel C"
-
-#: cppmacro.c:1566
+#: cp/typeck.c:3128
#, c-format
-msgid "invalid hash type %d in dump_definition"
-msgstr "ugyldig hashtype %d i dump_definition"
+msgid "division by zero in `%E / 0.'"
+msgstr "division med nul i '%E / 0.'"
-#: cppmain.c:128
+#: cp/typeck.c:3158
#, c-format
-msgid "Invalid option %s"
-msgstr "Ugyldigt tilvalg %s"
+msgid "division by zero in `%E %% 0'"
+msgstr "division med nul i '%E %% 0'"
-#: cppspec.c:128
-#, fuzzy, c-format
-msgid "\"%s\" is not a valid option to the preprocessor"
-msgstr "'%s' er ikke et tilladt tilvalg til forbehandleren"
+#: cp/typeck.c:3160
+#, c-format
+msgid "division by zero in `%E %% 0.'"
+msgstr "division med nul i '%E %% 0.'"
-#: cppspec.c:152
-msgid "too many input files"
-msgstr "for mange inddatafiler"
+#: cp/typeck.c:3240
+#, c-format
+msgid "%s rotate count is negative"
+msgstr "%s-roteringsantal er negativt"
-#: cse.c:7140
+#: cp/typeck.c:3243
#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
-msgstr ";; Behandler blok fra %d til %d, %d mængder.\n"
+msgid "%s rotate count >= width of type"
+msgstr "%s-roteringsantal >= bredden af typen"
-#: diagnostic.c:844
-#, fuzzy, c-format
-msgid "%s:%d: warning: "
-msgstr "advarsel: "
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "ISO C++ forbyder sammenligning mellem henvisningsvariabel og heltal"
-#: diagnostic.c:851
-#, fuzzy, c-format
-msgid "%s: warning: "
-msgstr "advarsel: "
+#: cp/typeck.c:3553
+msgid "comparison between types `%#T' and `%#T'"
+msgstr "sammenligning mellem typerne '%#T' og '%#T'"
-#: diagnostic.c:937
-msgid "((anonymous))"
-msgstr ""
+#: cp/typeck.c:3589
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
-#: diagnostic.c:1064
-#, fuzzy, c-format
-msgid "%s: warnings being treated as errors\n"
-msgstr "%s: advarsel: ingen læseadgang til filen '%s'\n"
+#: cp/typeck.c:3654
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr "ugyldige operander af typerne '%T' og '%T' til binær '%O'"
-#: diagnostic.c:1116
-#, fuzzy, c-format
-msgid "%s: %s: "
-msgstr "%s: %s"
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+msgid "NULL used in arithmetic"
+msgstr "NULL benyttet i udregning"
-#: diagnostic.c:1224
-#, fuzzy
-msgid "sorry, not implemented: "
-msgstr "Profilgenerering understøttes ikke endnu."
+#: cp/typeck.c:3743
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+msgstr "ISO C++ forbyder brug af henvisning af typen 'void *' i fratrækning"
-#: diagnostic.c:1243
-#, fuzzy, c-format
-msgid "%s "
-msgstr "%s"
+#: cp/typeck.c:3745
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrækning"
-#: diagnostic.c:1245
-#, fuzzy, c-format
-msgid " %s"
-msgstr "%s"
+#: cp/typeck.c:3747
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrækning"
-#: diagnostic.c:1268
-msgid "At top level:"
-msgstr ""
+#: cp/typeck.c:3749
+msgid "ISO C++ forbids using pointer to a member in subtraction"
+msgstr "ISO C++ forbyder brug af henvisning til medlem i fratrækning"
-#: diagnostic.c:1273
-#, c-format
-msgid "In method `%s':"
-msgstr ""
+#: cp/typeck.c:3761
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegning"
-#: diagnostic.c:1277
-#, fuzzy, c-format
-msgid "In function `%s':"
-msgstr "Ugyldigt tilvalg '%s'"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr "ugyldig brug af '%E' til at danne en henvisning til medlemsfunktion; benyt et kaldenavn med klassepræfiks"
-#: diagnostic.c:1412
-msgid "compilation terminated.\n"
-msgstr ""
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion"
-#: diagnostic.c:1447
-#, fuzzy, c-format
-msgid "%s:%d: confused by earlier errors, bailing out\n"
-msgstr "forvirret af tidligere fejl, opgiver ævred"
+#: cp/typeck.c:3850
+msgid "taking address of temporary"
+msgstr "tager adressen på midlertidig variabel"
-#: diagnostic.c:1461 diagnostic.c:1700
+#: cp/typeck.c:4091
#, c-format
-msgid ""
-"Please submit a full bug report,\n"
-"with preprocessed source if appropriate.\n"
-"See %s for instructions.\n"
-msgstr ""
+msgid "ISO C++ forbids %sing an enum"
+msgstr "ISO C++ forbyder %s af en enum"
-#: diagnostic.c:1493
-#, fuzzy
-msgid "Unrecognizable insn:"
-msgstr "Ukendt tilvalg '%s'"
+#: cp/typeck.c:4103
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
-#: diagnostic.c:1495
-msgid "Insn does not satisfy its constraints:"
-msgstr ""
+#: cp/typeck.c:4110
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'"
-#: diagnostic.c:1698
-#, fuzzy
-msgid "Internal compiler error: Error reporting routines re-entered.\n"
-msgstr "Intern oversætterfejl: program %s modtog et fatalt signal %d"
+#: cp/typeck.c:4135
+msgid "cast to non-reference type used as lvalue"
+msgstr "typeomtvingning til ikke-reference-type benyttet som venstreværdi"
-#: diagnostic.c:1760
-#, fuzzy, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "Intern oversætterfejl %d."
+#: cp/typeck.c:4169
+msgid "invalid use of `--' on bool variable `%D'"
+msgstr "ugyldig brug af '--' på den booleske variabel '%D'"
-#: diagnostic.c:1805
-#, fuzzy, c-format
-msgid "In file included from %s:%d"
-msgstr "I filen inkluderet af %s:%u"
+#. ARM $3.4
+#: cp/typeck.c:4202
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr "ISO C++ forbyder at tage adressen på funktionen '::main'"
-#: diagnostic.c:1808
-#, fuzzy, c-format
-msgid ""
-",\n"
-" from %s:%d"
-msgstr ""
-",\n"
-" af %s:%u"
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "ISO C++ forbyder at tage adressen på en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
-#: diagnostic.c:1809
-msgid ":\n"
-msgstr ""
+#: cp/typeck.c:4271
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "ISO C++ forbyder at tage adressen på en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
-#: dwarf2out.c:2977
-#, c-format
-msgid "DW_LOC_OP %s not implememnted\n"
-msgstr ""
+#: cp/typeck.c:4295
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr "ISO C++ forbyder at tage adressen på en typeomtvingning til et udtryk der ikke er en venstreværdi"
-#: dwarf2out.c:7071 dwarfout.c:2128
-#, fuzzy, c-format
-msgid "internal regno botch: regno = %d\n"
-msgstr "Internt gcc-afbrydelse fra %s:%d"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%D'"
-#: dwarfout.c:6262
-#, fuzzy
-msgid "can't get current directory"
-msgstr "%s: kan ikke få fat i arbejdskataloget: %s\n"
+#: cp/typeck.c:4444
+msgid "taking address of destructor"
+msgstr "tager adressen på en destruktionsfunktion"
-#: emit-rtl.c:1006
-#, fuzzy
-msgid "Can't access real part of complex value in hard register"
-msgstr "Kan ikke tilgå den reelle del af komplekst tal i et hardware-register på målarkitekturen"
+#: cp/typeck.c:4457
+msgid "taking address of bound pointer-to-member expression"
+msgstr "tager adressen på et bundet henvisning til medlem-udtryk"
-#: emit-rtl.c:1030
-#, fuzzy
-msgid "can't access imaginary part of complex value in hard register"
-msgstr "Kan ikke tilgå den imaginære del af komplekst tal i et hardware-register på målarkitekturen"
+#: cp/typeck.c:4473
+msgid "cannot create pointer to reference member `%D'"
+msgstr "kan ikke oprette henvisning til reference medlemmet '%D'"
-#: emit-rtl.c:2560
-msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
-msgstr ""
+#: cp/typeck.c:4536
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr "kan ikke tage adressen af 'this' som er et højreværdiudtryk"
-#: errors.c:168
-#, c-format
-msgid "abort in %s, at %s:%d"
-msgstr ""
+#: cp/typeck.c:4555
+msgid "address requested for `%D', which is declared `register'"
+msgstr "adresse forespurgt for '%D' som er erklæret 'register'"
-#: except.c:357
-msgid "exception handling disabled, use -fexceptions to enable"
-msgstr "håndtering af undtagelser er slået fra, angiv -fexceptions for at slå dem til"
+#: cp/typeck.c:4682
+msgid "static_cast from type `%T' to type `%T' casts away constness"
+msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed"
-#: except.c:2931
-msgid "argument of `__builtin_eh_return_regno' must be constant"
-msgstr ""
+#: cp/typeck.c:4871
+msgid "invalid static_cast from type `%T' to type `%T'"
+msgstr "ugyldig static_cast fra typen '%T' til typen '%T'"
-#: except.c:3029 except.c:3053
-#, fuzzy
-msgid "__builtin_eh_return not supported on this target"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+#: cp/typeck.c:4910
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+msgstr "ugyldig reinterpret_cast af et højreværdiudtryk fra typen '%T' til typen '%T'"
-#: explow.c:1458
-msgid "stack limits not supported on this target"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+#: cp/typeck.c:4930
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
+msgstr "reinterpret_cast fra '%T' til '%T' mister præcision"
-#: expr.c:2842
-msgid "function using short complex types cannot be inline"
-msgstr "funktioner der benytter short complex-typer, kan ikke indbygges"
+#: cp/typeck.c:4943
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+msgstr "reinterpret_cast fra '%T' til '%T' fjerner const (eller volatile)"
-#: expr.c:5860 expr.c:5869 expr.c:5878 expr.c:5883 expr.c:6041 expr.c:6056
-msgid "unsupported wide integer operation"
-msgstr "bred heltalsoperation understøttes ikke"
+#: cp/typeck.c:4952
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr "ISO C++ forbyder sammenligninger mellem henvisning til funktion og henvisning til objekt"
-#: expr.c:6103
-#, c-format
-msgid "prior parameter's size depends on `%s'"
-msgstr ""
+#: cp/typeck.c:4958
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+msgstr "ugyldig reinterpret_cast fra typen '%T' til typen '%T'"
-#: expr.c:6504
-msgid "returned value in block_exit_expr"
-msgstr ""
+#: cp/typeck.c:4985
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr "ugyldig brug af const_cast med typen '%T' som ikke er en henvisnings-, reference- eller en henvisning til datamedlem-type"
-#: f/com.c:11860
-msgid "no INTEGER type can hold a pointer on this configuration"
-msgstr ""
+#: cp/typeck.c:4988
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr "ugyldig brug af const_cast med typen '%T' som er en henvisning eller reference til funktion"
-#: f/com.c:12087
-#, c-format
-msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
-msgstr ""
+#: cp/typeck.c:5011
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
-#: f/com.c:12089
-#, c-format
-msgid "and pointers are %d bits wide, but g77 doesn't yet work"
-msgstr ""
+#: cp/typeck.c:5027
+msgid "invalid const_cast from type `%T' to type `%T'"
+msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
-#: f/com.c:12091
-msgid "properly unless they all are 32 bits wide."
-msgstr ""
+#: cp/typeck.c:5069 cp/typeck.c:5074
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'"
-#: f/com.c:12092
-msgid "Please keep this in mind before you report bugs. g77 should"
-msgstr ""
+#: cp/typeck.c:5082
+msgid "invalid cast to function type `%T'"
+msgstr "ugyldig omtvingelse til funktionstypen '%T'"
-#: f/com.c:12093
-msgid "support non-32-bit machines better as of version 0.6."
-msgstr ""
+#: cp/typeck.c:5138
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type"
-#. I/O will probably crash.
-#: f/com.c:12101
-#, c-format
-msgid "configuration: char * holds %d bits, but ftnlen only %d"
-msgstr ""
+#: cp/typeck.c:5184
+msgid "cast from `%T' to `%T' increases required alignment of target type"
+msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af målets type"
-#. ASSIGN 10 TO I will crash.
-#: f/com.c:12110
-#, c-format
-msgid ""
-"configuration: char * holds %d bits, but INTEGER only %d --\n"
-" ASSIGN statement might fail"
-msgstr ""
+#: cp/typeck.c:5357
+msgid " in evaluation of `%Q(%#T, %#T)'"
+msgstr " i evaluering af '%Q(%#T, %#T)'"
-#: f/com.c:16088
-#, fuzzy
-msgid "Directory name must immediately follow -I"
-msgstr "Et katalognavn mangler efter %s"
+#: cp/typeck.c:5399
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+msgstr "ISO C++ forbyder omtvingelse af typen til en ikke-reference-type benyttet som venstreværdi"
-#: f/g77spec.c:250
-#, c-format
-msgid "overflowed output arg list for `%s'"
-msgstr ""
+#: cp/typeck.c:5463
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr "uforenelige typer i tildeling af '%T' til '%T'"
-#: f/g77spec.c:436
-#, fuzzy
-msgid "--driver no longer supported"
-msgstr "-pipe understøttes ikke"
+#: cp/typeck.c:5470
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "ISO C++ forbyder tildeling af tabeller"
-#: f/g77spec.c:450
-#, fuzzy, c-format
-msgid "argument to `%s' missing"
-msgstr "en parameter til '%s' mangler\n"
+#: cp/typeck.c:5577
+msgid " in pointer to member function conversion"
+msgstr " i henvisning til medlemsfunktion-omdannelse"
-#: f/g77spec.c:454
-msgid "No input files; unwilling to write output files"
-msgstr ""
+#: cp/typeck.c:5585
+msgid " in pointer to member conversion"
+msgstr " i henvisning til medlem-omdannelse"
-#: f/lang-options.h:33
-msgid "Print g77-specific compiler version info, run internal tests"
-msgstr ""
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+msgid "pointer to member cast via virtual base `%T' of `%T'"
+msgstr "henvisning til medlem-typeomtvingning via den virtuelle stamklasse '%T' af '%T'"
-#: f/lang-options.h:38
-msgid "Program is written in typical FORTRAN 66 dialect"
-msgstr ""
+#: cp/typeck.c:5619
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
+msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'"
-#: f/lang-options.h:41
-msgid "Program is written in typical Unix f77 dialect"
-msgstr ""
+#: cp/typeck.c:5695
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
-#: f/lang-options.h:43
-msgid "Program does not use Unix-f77 dialectal features"
-msgstr ""
+# %s bliver til returnering eller tildeling eller noget i den retning
+#: cp/typeck.c:5860
+msgid "passing NULL used for non-pointer %s %P of `%D'"
+msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'"
-#: f/lang-options.h:45
-msgid "Program is written in Fortran-90-ish dialect"
-msgstr ""
+#: cp/typeck.c:5863
+msgid "%s to non-pointer type `%T' from NULL"
+msgstr "%s til ikke-henvisningstypen '%T' fra NULL"
-#: f/lang-options.h:49
-msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
-msgstr ""
+#: cp/typeck.c:5871
+msgid "passing `%T' for %s %P of `%D'"
+msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'"
-#: f/lang-options.h:51
-msgid "Allow $ in symbol names"
-msgstr ""
+#: cp/typeck.c:5874
+msgid "%s to `%T' from `%T'"
+msgstr "%s til '%T' fra '%T'"
-#: f/lang-options.h:55
-msgid "f2c-compatible code need not be generated"
-msgstr ""
+#: cp/typeck.c:5884
+msgid "passing negative value `%E' for %s %P of `%D'"
+msgstr "overbringelse af negativ værdi '%E' for %s %P af '%D'"
-#: f/lang-options.h:58
-msgid "Unsupported; do not generate libf2c-calling code"
-msgstr ""
+#: cp/typeck.c:5887
+msgid "%s of negative value `%E' to `%T'"
+msgstr "%s af negativ værdi '%E' til `%T'"
-#: f/lang-options.h:60
-msgid "Unsupported; affects code-generation of arrays"
-msgstr ""
+#: cp/typeck.c:5982
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'"
-#: f/lang-options.h:63
-msgid "Program is written in Fortran-90-ish free form"
-msgstr ""
+#: cp/typeck.c:5985
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr "kan ikke konvertere '%T' til '%T' i %s"
-#: f/lang-options.h:68
-msgid "Warn about use of (only a few for now) Fortran extensions"
-msgstr ""
+#: cp/typeck.c:6073 cp/typeck.c:6075
+msgid "in passing argument %P of `%+D'"
+msgstr "i overbringelse af parameter %P af '%+D'"
-#: f/lang-options.h:71
-msgid "Program is written in VXT (Digital-like) FORTRAN"
-msgstr ""
+#: cp/typeck.c:6190
+msgid "returning reference to temporary"
+msgstr "returnerer reference til midlertidig variabel"
-#: f/lang-options.h:74
-msgid "Disallow all ugly features"
-msgstr ""
+#: cp/typeck.c:6197
+msgid "reference to non-lvalue returned"
+msgstr "reference til ikke-venstreværdi returneret"
-#: f/lang-options.h:77
-msgid "Hollerith and typeless constants not passed as arguments"
-msgstr ""
+#: cp/typeck.c:6209
+msgid "reference to local variable `%D' returned"
+msgstr "reference til den lokale variabel '%D' returneret"
-#: f/lang-options.h:79
-msgid "Allow ordinary copying of ASSIGN'ed vars"
-msgstr ""
+#: cp/typeck.c:6212
+msgid "address of local variable `%D' returned"
+msgstr "adresse af den lokale variabel '%D' returneret"
-#: f/lang-options.h:82
-msgid "Dummy array dimensioned to (1) is assumed-size"
-msgstr ""
+#: cp/typeck.c:6243
+msgid "returning a value from a destructor"
+msgstr "returnerer en værdi fra en destruktionsfunktion"
-#: f/lang-options.h:85
-msgid "Trailing comma in procedure call denotes null argument"
-msgstr ""
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr "kan ikke returnere fra en håndtering af en funktions-try-blok i en konstruktionsfunktion"
-#: f/lang-options.h:88
-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
-msgstr ""
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+msgid "returning a value from a constructor"
+msgstr "returnerer en værdi fra en konstruktionsfunktion"
-#: f/lang-options.h:92
-msgid "Initialization via DATA and PARAMETER is type-compatible"
-msgstr ""
+#: cp/typeck.c:6271
+msgid "return-statement with no value, in function declared with a non-void return type"
+msgstr "return-sætning uden en værdi i en funktion der er erklæret med en ikke-void returtype"
-#: f/lang-options.h:94
-msgid "Allow INTEGER and LOGICAL interchangeability"
-msgstr ""
+#: cp/typeck.c:6287
+msgid "return-statement with a value, in function declared with a void return type"
+msgstr "return-sætning med en værdi i en funktion der er erklæret med en void returtype"
-#: f/lang-options.h:97
-msgid "Print internal debugging-related info"
-msgstr ""
+#: cp/typeck.c:6308
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+msgstr "'operator new' må ikke returnere NULL medmindre den er erklæret 'throw()' (eller -fcheck-new er benyttet)"
-#: f/lang-options.h:100
-#, fuzzy
-msgid "Initialize local vars and arrays to zero"
-msgstr "Lokale variabler uden startværdi i .data"
+#: cp/typeck2.c:54
+msgid "type `%T' is not a base type for type `%T'"
+msgstr "typen '%T' er ikke en grundtype for typen '%T'"
-#: f/lang-options.h:104
-msgid "Backslashes in character/hollerith constants not special (C-style)"
-msgstr ""
+#: cp/typeck2.c:157
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr "kan ikke erklære variablen '%D' til at være af typen '%T'"
-#: f/lang-options.h:106
-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
-msgstr ""
+#: cp/typeck2.c:160
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr "kan ikke erklære parameteren '%D' til at være af typen '%T'"
-#: f/lang-options.h:110
-msgid "Disable the appending of underscores to externals"
-msgstr ""
+#: cp/typeck2.c:163
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr "kan ikke erklære feltet '%D' til at være af typen '%T'"
-#: f/lang-options.h:113
-msgid "Never append a second underscore to externals"
-msgstr ""
+#: cp/typeck2.c:167
+msgid "invalid return type for member function `%#D'"
+msgstr "ugyldig returtype for medlemsfunktionen '%#D'"
-#: f/lang-options.h:115
-msgid "Intrinsics spelled as e.g. SqRt"
-msgstr ""
+#: cp/typeck2.c:169
+msgid "invalid return type for function `%#D'"
+msgstr "ugyldig returtype for funktionen '%#D'"
-#: f/lang-options.h:117
-msgid "Intrinsics in uppercase"
-msgstr ""
+#: cp/typeck2.c:172
+msgid "cannot allocate an object of type `%T'"
+msgstr "kan ikke allokere et objekt af typen '%T'"
-#: f/lang-options.h:120
-msgid "Intrinsics letters in arbitrary cases"
-msgstr ""
+#: cp/typeck2.c:179
+msgid " because the following virtual functions are abstract:"
+msgstr " eftersom de følgende virtuelle funktioner er abstrakte:"
-#: f/lang-options.h:122
-msgid "Language keywords spelled as e.g. IOStat"
-msgstr ""
+#: cp/typeck2.c:181
+msgid "\t%#D"
+msgstr "\t%#D"
-#: f/lang-options.h:124
-msgid "Language keywords in uppercase"
-msgstr ""
+#: cp/typeck2.c:184
+msgid " since type `%T' has abstract virtual functions"
+msgstr " eftersom typen '%T' har abstrakte virtuelle funktioner"
-#: f/lang-options.h:127
-msgid "Language keyword letters in arbitrary cases"
-msgstr ""
+#: cp/typeck2.c:338
+msgid "constructor syntax used, but no constructor declared for type `%T'"
+msgstr "konstruktionsfunktionsyntaks benyttet, men ingen konstruktionsfunktion er erklæret for typen '%T'"
-#: f/lang-options.h:129
-msgid "Internally convert most source to uppercase"
-msgstr ""
+#: cp/typeck2.c:349
+msgid "comma expression used to initialize return value"
+msgstr "kommaudtryk benyttet til at klargøre returværdi"
-#: f/lang-options.h:132
-msgid "Internally preserve source case"
-msgstr ""
+#: cp/typeck2.c:358
+msgid "cannot initialize arrays using this syntax"
+msgstr "kan ikke tildele tabeller startværdier med denne syntaks"
-#: f/lang-options.h:134
-msgid "Symbol names spelled in mixed case"
-msgstr ""
+#: cp/typeck2.c:473
+msgid "initializing array with parameter list"
+msgstr "klargør tabel med en parameterliste"
-#: f/lang-options.h:136
-msgid "Symbol names in uppercase"
-msgstr ""
+#: cp/typeck2.c:529
+msgid "initializer for scalar variable requires one element"
+msgstr "startværdien for en skalarvariabel kan kun bestå af ét element"
-#: f/lang-options.h:138
-msgid "Symbol names in lowercase"
-msgstr ""
+#: cp/typeck2.c:536
+msgid "braces around scalar initializer for `%T'"
+msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
-#: f/lang-options.h:141
-msgid "Program written in uppercase"
-msgstr ""
+#: cp/typeck2.c:539
+msgid "ignoring extra initializers for `%T'"
+msgstr "ignorerer ekstra startværdier for '%T'"
-#: f/lang-options.h:143
-msgid "Program written in lowercase"
-msgstr ""
+#: cp/typeck2.c:551
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
-#: f/lang-options.h:145
-msgid "Program written in strict mixed-case"
-msgstr ""
+#: cp/typeck2.c:561
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+msgstr "underobjekt af typen '%T' skal klargøres af en konstruktionsfunktion, ikke af '%E'"
-#: f/lang-options.h:147
-msgid "Compile as if program written in uppercase"
-msgstr ""
+#: cp/typeck2.c:627
+msgid "aggregate has a partly bracketed initializer"
+msgstr "sammensat type har delvis indklammet startværdi"
-#: f/lang-options.h:149
-msgid "Compile as if program written in lowercase"
-msgstr ""
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
+msgstr "ikke-trivielle navngivne startværdier"
-#: f/lang-options.h:151
-msgid "Preserve all spelling (case) used in program"
-msgstr ""
+#: cp/typeck2.c:682
+msgid "non-empty initializer for array of empty elements"
+msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elementer"
-#: f/lang-options.h:153
-msgid "Delete libU77 intrinsics with bad interfaces"
-msgstr ""
+#: cp/typeck2.c:736
+msgid "initializer list for object of class with virtual base classes"
+msgstr "klargøringsliste for objekt af en klasse med virtuelle stamklasser"
-#: f/lang-options.h:155
-msgid "Disable libU77 intrinsics with bad interfaces"
-msgstr ""
+#: cp/typeck2.c:742
+msgid "initializer list for object of class with base classes"
+msgstr "klargøringsliste for objekt af en klasse med stamklasser"
-#: f/lang-options.h:158
-msgid "Hide libU77 intrinsics with bad interfaces"
-msgstr ""
+#: cp/typeck2.c:748
+msgid "initializer list for object using virtual functions"
+msgstr "klargøringsliste for objekt med virtuelle funktioner"
-#: f/lang-options.h:160
-msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
-msgstr ""
+#: cp/typeck2.c:811 cp/typeck2.c:827
+msgid "missing initializer for member `%D'"
+msgstr "manglende startværdi for medlemmet '%D'"
-#: f/lang-options.h:162
-msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
-msgstr ""
+#: cp/typeck2.c:816
+msgid "uninitialized const member `%D'"
+msgstr "konstant medlem '%D' uden startværdi"
-#: f/lang-options.h:165
-msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
-msgstr ""
+#: cp/typeck2.c:818
+msgid "member `%D' with uninitialized const fields"
+msgstr "medlem '%D' med konstante felter uden startværdi"
-#: f/lang-options.h:167
-msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
-msgstr ""
+#: cp/typeck2.c:821
+msgid "member `%D' is uninitialized reference"
+msgstr "medlemmet '%D' er en reference uden startværdi"
-#: f/lang-options.h:169
-msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
-msgstr ""
+#: cp/typeck2.c:868
+msgid "index value instead of field name in union initializer"
+msgstr "indeksværdi i stedet for feltnavn i union-startværdi"
-#: f/lang-options.h:172
-msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
-msgstr ""
+#: cp/typeck2.c:880
+msgid "no field `%D' in union being initialized"
+msgstr "intet felt '%D' i union der tildeles startværdi"
-#: f/lang-options.h:174
-msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
-msgstr ""
+#: cp/typeck2.c:888
+msgid "union `%T' with no named members cannot be initialized"
+msgstr "union '%T' uden navngivne elementer kan ikke tildeles startværdi"
-#: f/lang-options.h:176
-msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
-msgstr ""
+#: cp/typeck2.c:924
+msgid "excess elements in aggregate initializer"
+msgstr "for mange elementer i startværdi til sammensat type"
-#: f/lang-options.h:179
-msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
-msgstr ""
+#: cp/typeck2.c:1038
+msgid "circular pointer delegation detected"
+msgstr "fundet en henvisningsefterfølgelse der går i ring"
-#: f/lang-options.h:181
-msgid "Delete MIL-STD 1753 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1051
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'"
-#: f/lang-options.h:183
-msgid "Disable MIL-STD 1753 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1065
+msgid "result of `operator->()' yields non-pointer result"
+msgstr "resultatet af 'operator->()' er ikke en henvisning"
-#: f/lang-options.h:186
-msgid "Hide MIL-STD 1753 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1067
+msgid "base operand of `->' is not a pointer"
+msgstr "grundoperanden til '->' er ikke en henvisning"
-#: f/lang-options.h:188
-msgid "Delete libU77 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1133
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'"
-#: f/lang-options.h:190
-msgid "Disable libU77 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1140
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+msgstr "kan ikke anvende medlemshenvisning '%E' på '%E' som er af den ikke-sammensatte type '%T'"
-#: f/lang-options.h:193
-msgid "Hide libU77 intrinsics"
-msgstr ""
+#: cp/typeck2.c:1149
+msgid "member type `%T::' incompatible with object type `%T'"
+msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'"
-#: f/lang-options.h:195
-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
-msgstr ""
+#: cp/typeck2.c:1186
+msgid "`%T' fails to be a typedef or built-in type"
+msgstr "'%T' er hverken en typedef eller en indbygget type"
-#: f/lang-options.h:197
-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
-msgstr ""
+#: cp/typeck2.c:1259
+#, c-format
+msgid "ISO C++ forbids defining types within %s"
+msgstr "ISO C++ forbyder definering af typer inden i %s"
-#: f/lang-options.h:200
-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
-msgstr ""
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "kald af en funktion '%D' som kaster en ufuldstændig type '%#T'"
-#: f/lang-options.h:202
-msgid "Treat initial values of 0 like non-zero values"
-msgstr ""
+#: cp/typeck2.c:1387
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "kald af en funktion som kaster en ufuldstændig type '%#T'"
-#: f/lang-options.h:205
-msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
-msgstr ""
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr "%s er forældet, se venligst dokumentationen for detaljer"
-#: f/lang-options.h:208
-msgid "Take at least one trip through each iterative DO loop"
-msgstr ""
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
+msgstr "Adlyd ikke tilgangskontrolsemantikker"
-#: f/lang-options.h:212
-msgid "Print names of program units as they are compiled"
-msgstr ""
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
+msgstr "Skift hvornår skabelonsinstanser udsendes"
-#: f/lang-options.h:215
-msgid "Disable fatal diagnostics about inter-procedural problems"
-msgstr ""
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
+msgstr "Kontrollér returværdien for new"
-#: f/lang-options.h:217
-msgid "Make prefix-radix non-decimal constants be typeless"
-msgstr ""
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
+msgstr "Reducér størrelsen af objektfiler"
-#: f/lang-options.h:220
-msgid "Generate code to check subscript and substring bounds"
-msgstr ""
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr "Gør strengkonstanter til 'char[]' i stedet for 'const char[]'"
-#: f/lang-options.h:223
-msgid "Fortran-specific form of -fbounds-check"
-msgstr ""
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
+msgstr "Anbring hele oversættelsesenheden i en fil"
-#: f/lang-options.h:227
-msgid "Disable warnings about inter-procedural problems"
-msgstr ""
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
+msgstr "Integrér ikke medlemsfunktioner som standard"
-#: f/lang-options.h:231
-msgid "Warn about constructs with surprising meanings"
-msgstr ""
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
+msgstr "Generér ikke typebeskrivelsesoplysninger til kørselstidspunktet"
-#: f/lang-options.h:236
-msgid "Add a directory for INCLUDE searching"
-msgstr ""
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
+msgstr "Generér ikke kode til at kontrollere undtagelsesspecifikationer"
-#: f/lang-options.h:238
-msgid "Set the maximum line length"
-msgstr ""
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
+msgstr "Udvid virkefeltet for variabler i for-klargøringssætninger"
-#: f/lex.c:692
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr ""
+#: cp/lang-options.h:64
+msgid "Do not recognize GNU defined keywords"
+msgstr "Genkend ikke GNU-definerede reserverede ord"
-#: f/lex.c:708
-#, fuzzy, c-format
-msgid "non-ANSI-standard escape sequence, `\\%c'"
-msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
+msgstr "Aktivér understøttelse af enorme objekter"
-#: f/lex.c:721
-#, fuzzy, c-format
-msgid "non-ANSI escape sequence `\\%c'"
-msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
+msgstr "Eksportér funktioner også selvom de kan integreres"
-#: f/lex.c:725
-#, fuzzy, c-format
-msgid "unknown escape sequence `\\%c'"
-msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
+#: cp/lang-options.h:75
+msgid "Only emit explicit template instantiations"
+msgstr "Udsend kun eksplicitte skabelonsinstatieringer"
-#: f/lex.c:727
-#, c-format
-msgid "unknown escape sequence: `\\' followed by char code 0x%x"
-msgstr ""
+#: cp/lang-options.h:78
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner"
-#: f/lex.c:806
-msgid "Badly formed directive -- no closing quote"
-msgstr ""
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr "Udsend ikke pedantiske advarsler om brug af Microsoft-udvidelser"
-#: f/lex.c:870
-msgid "#-lines for entering and leaving files don't match"
-msgstr "#-linjer til at træde ind og ud af filer passer ikke"
+#: cp/lang-options.h:87
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr "Genkend and/bitand/bitor/compl/not/or/xor"
-#: f/lex.c:1039
-msgid "Bad directive -- missing close-quote"
-msgstr ""
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
+msgstr "Deaktivér valgfrie diagnosticeringer"
-#: f/lex.c:1156
-#, c-format
-msgid "ignoring pragma: %s"
-msgstr ""
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
+msgstr "Nedgradér standardoverholdelsesfejl til advarsler"
-#: f/lex.c:1257
-#, fuzzy
-msgid "undefined or invalid # directive"
-msgstr "# direktivet '%s' er ugyldigt eller ikke defineret"
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr "Aktivér automatisk skabelonsinstantiering"
-#: f/lex.c:1313
-msgid "invalid #line"
-msgstr "ugyldig #line"
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
+msgstr "Vis statistik som indsamles under oversættelsen"
-#: f/lex.c:1369 f/lex.c:1413
-msgid "Use `#line ...' instead of `# ...' in first line"
-msgstr ""
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr "Angiv maksimal skabelonsinstantieringsdybde"
-#: f/lex.c:1423
-msgid "invalid #-line"
-msgstr "ugyldig #-linje"
+#: cp/lang-options.h:106
+msgid "Use __cxa_atexit to register destructors"
+msgstr "Benyt __cxa_atexit til at registrere destruktionsfunktioner"
-#: f/ste.c:1436 f/ste.c:1791
-msgid "ASSIGNed FORMAT specifier is too small"
-msgstr ""
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
+msgstr "Kassér ubrugte virtuelle funktioner"
-#: f/ste.c:3259
-msgid "ASSIGN to variable that is too small"
-msgstr ""
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
+msgstr "Implementér virtuelle tabeller vha. thunk-kode"
-#: f/ste.c:3297
-msgid "ASSIGNed GOTO target variable is too small"
-msgstr ""
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
+msgstr "Udsend almindelige symboler som svage symboler"
-#: f/top.c:240
-#, c-format
-msgid "%s no longer supported -- try -fvxt"
-msgstr ""
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
+msgstr "Udsend krydsreferenceoplysninger"
-#: f/top.c:242
-#, c-format
-msgid "%s no longer supported -- try -fno-vxt -ff90"
-msgstr ""
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
+msgstr "Advar om inkonsistente returtyper"
-#: f/top.c:310 f/top.c:312
-#, c-format
-msgid "%s disabled, use normal debugging flags"
-msgstr ""
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
+msgstr "Advar om flertydige virtuelle funktionsnavne"
-#: final.c:3349
-#, fuzzy, c-format
-msgid "invalid `asm': %s"
-msgstr "%s: ugyldigt filnavn: %s\n"
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
+msgstr "Advar ikke når alle konstruktions-/destruktionsfunktioner er private"
-#: final.c:3352
-#, c-format
-msgid "output_operand: %s"
-msgstr "output_operand: %s"
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
+msgstr "Advar om ikke-virtuelle destruktionsfunktioner"
-#: final.c:3492
-#, c-format
-msgid "operand number missing after %-letter"
-msgstr "operandtal mangler efter %-letter"
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
+msgstr "Advar når en funktion erklæret extern erklæres inline"
-#: final.c:3494 final.c:3529
-msgid "operand number out of range"
-msgstr "operandtal er uden for det gyldige interval"
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
+msgstr "Advar når oversætteren ændrer på ordenen af kode"
-#: final.c:3543
-#, c-format
-msgid "invalid %%-code"
-msgstr "ugyldig %%-kode"
+#: cp/lang-options.h:140
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "Advar når synteseopførslen adskiller sig fra Cfront"
-#: final.c:3570
-msgid "`%l' operand isn't a label"
-msgstr "'%l'-operand er ikke en etiket"
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
+msgstr "Advar ikke ved typeomdannelse af henvisninger til medlemsfunktioner"
-#: flow.c:541
-msgid "function might be possible candidate for attribute `noreturn'"
-msgstr ""
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Advar om overtrædelser af stilreglerne fra Effective C++"
-#: flow.c:546
-msgid "`noreturn' function does return"
-msgstr ""
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "Advar når flertydiggørelse forfremmer fra unsigned til signed"
-#: flow.c:567
-msgid "control reaches end of non-void function"
-msgstr ""
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
+msgstr "Advar hvis en typeomtvingning i C-stil benyttes"
-#: flow.c:6646
-#, c-format
-msgid "End insn %d for block %d not found in the insn stream."
-msgstr "Slutinstruktion %d for blok %d ikke fundet i instruktionsstrømmen."
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr "Advar ikke når ikke-skabelonsvennefunktioner erklæres inde i en skabelon"
-#: flow.c:6660
-#, c-format
-msgid "Insn %d is in multiple basic blocks (%d and %d)"
-msgstr "Instruktion %d er i flere basisblokke (%d og %d)"
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
+msgstr "Annoncér ikke forældelse af oversætterfaciliteter"
-#: flow.c:6671
-#, c-format
-msgid "Head insn %d for block %d not found in the insn stream."
-msgstr "Hovedinstruktion %d for blok %d ikke fundet i instruktionsstrømmen."
+#: f/bad.c:387
+msgid "note:"
+msgstr "bemærk:"
-#: flow.c:6708 flow.c:6735
-#, c-format
-msgid "Basic block %i edge lists are corrupted"
-msgstr "Kantlister til basisblok %i er ødelagt"
+#: f/bad.c:391
+msgid "warning:"
+msgstr "advarsel: "
-#: flow.c:6720
-#, c-format
-msgid "Basic block %d pred edge is corrupted"
-msgstr "Forkant til basisblok %d er ødelagt"
+#: f/bad.c:395
+msgid "fatal:"
+msgstr "fatal:"
-#: flow.c:6750
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
-msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d"
+#: f/bad.c:437
+msgid "(continued):"
+msgstr "(fortsat):"
-#: flow.c:6758
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
-msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d\n"
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr "[RAPPORTER FEJL!] %"
-#: flow.c:6774
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d"
-msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d"
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr "[RAPPORTER FEJL!]"
-#: flow.c:6786
-#, c-format
-msgid "In basic block %d:"
-msgstr "I basisblok %d:"
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr "ASSIGN'et etiket kan ikke passe i '%A' ved %0 - bruger bredere søskende"
-#: flow.c:6848
-#, c-format
-msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
-msgstr "antallet af basisbloknoter i instruktionskæden (%d) != n_basic_blocks (%d)"
+#: f/com.c:11623
+msgid "no INTEGER type can hold a pointer on this configuration"
+msgstr "ingen INTEGER-type kan opbevare en henvisning i denne konfiguration"
-#: fold-const.c:3013 fold-const.c:3026
+#: f/com.c:11844
#, c-format
-msgid "comparison is always %d due to width of bitfield"
-msgstr ""
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+msgstr "konfiguration: REAL, INTEGER og LOGICAL er %d bit brede,"
-#: fold-const.c:4069 fold-const.c:4086
+#: f/com.c:11846
#, c-format
-msgid "comparison is always %d"
-msgstr ""
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr "og henvisninger er %d bit brede, men g77 virker endnu ikke"
-#: fold-const.c:4217
-msgid "`or' of unmatched not-equal tests is always 1"
-msgstr ""
+#: f/com.c:11848
+msgid "properly unless they all are 32 bits wide"
+msgstr "ordentligt medmindre de alle er 32 bit brede"
-#: fold-const.c:4222
-msgid "`and' of mutually exclusive equal-tests is always 0"
-msgstr ""
-
-#: function.c:5390
-#, fuzzy, c-format
-msgid "`%s' might be used uninitialized in this function"
-msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
+msgstr "Husk venligst på dette før du rapporterer fejl."
-#: function.c:5397
+#. I/O will probably crash.
+#: f/com.c:11857
#, c-format
-msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
-msgstr ""
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
+msgstr "konfiguration: char * holder %d bit, men ftnlen kun %d"
-#: function.c:5416
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
#, c-format
-msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
-msgstr ""
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
+msgstr "konfiguration: char * holder %d bit, men INTEGER kun %d - ASSIGN-sætning kan mislykkes"
-#: function.c:6216
-#, fuzzy
-msgid "function returns an aggregate"
-msgstr "en funktions returtype kan ikke være en funktion"
+#: f/com.c:13681
+msgid "In statement function"
+msgstr "I sætningsfunktion"
-#: function.c:6745
-#, c-format
-msgid "unused parameter `%s'"
-msgstr ""
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
+msgstr "Uden for nogen programenhed:\n"
-#: gcc.c:954
-#, c-format
-msgid "Ambiguous abbreviation %s"
-msgstr "Flertydig forkortelse %s"
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr "%A fra %B ved %0%C"
-#: gcc.c:981
-#, c-format
-msgid "Incomplete `%s' option"
-msgstr "Ufuldstændigt '%s'-tilvalg"
+#: f/com.c:15497
+msgid "directory name must immediately follow -I"
+msgstr "et katalognavn skal følge umiddelbart efter -I"
-#: gcc.c:992
-#, c-format
-msgid "Missing argument to `%s' option"
-msgstr "Der mangler en parameter til '%s'-tilvalget"
+#: f/com.c:15640
+#, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr "Ved %0 eksisterer INCLUDE-filen %A, men kan ikke læses"
-#: gcc.c:1005
-#, c-format
-msgid "Extraneous argument to `%s' option"
-msgstr "Der er en parameter for meget til '%s'-tilvalget"
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr "Ved %0 er INCLUDE-indlejring for dyb"
-#: gcc.c:1308
-msgid "Using builtin specs.\n"
-msgstr "Benytter indbyggede specifikationer.\n"
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr "To aritmetiske operatorer efter hinanden ved %0 og %1 - benyt paranteser"
-#: gcc.c:1474
-#, c-format
-msgid "Setting spec %s to '%s'\n\n"
-msgstr "Sætter specifikation %s til '%s'\n\n"
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr "Operatoren ved %0 har lavere prioritet end den ved %1 - benyt paranteser"
-#: gcc.c:1572
-#, c-format
-msgid "Reading specs from %s\n"
-msgstr "Læser specifikationer fra %s\n"
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr "Benyt .EQV./.NEQV. i stedet for .EQ./.NE. ved %0 for LOGICAL-operander ved %1 og %2"
-#: gcc.c:1670 gcc.c:1689
-#, c-format
-msgid "specs %%include syntax malformed after %ld characters"
-msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn"
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr "Ikke-understøttet operand for ** ved %1 - konverterer til standard-INTEGER"
-#: gcc.c:1697
+#: f/g77spec.c:234
#, c-format
-msgid "Could not find specs file %s\n"
-msgstr "Kun ikke finde specifikationsfil %s\n"
+msgid "overflowed output arg list for `%s'"
+msgstr "overløb i uddataparameterlist for '%s'"
-#: gcc.c:1713 gcc.c:1721 gcc.c:1730 gcc.c:1739
-#, c-format
-msgid "specs %%rename syntax malformed after %ld characters"
-msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn"
+#: f/g77spec.c:373
+msgid "--driver no longer supported"
+msgstr "--driver understøttes ikke længere"
-#: gcc.c:1748
+#: f/g77spec.c:386
#, c-format
-msgid "specs %s spec was not found to be renamed"
-msgstr "%s-specifikation i specifikationer kunne ikke findes til omdøbelse"
+msgid "argument to `%s' missing"
+msgstr "parameter til '%s' mangler"
+
+#: f/g77spec.c:390
+msgid "no input files; unwilling to write output files"
+msgstr "ingen inputfiler; vil ikke skrive outputfiler"
+
+#: f/implic.c:203
+#, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "Implicit erklæring af '%A' ved %0"
+
+#: f/lex.c:326
+#, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr "Undvigesekvensen '\\%A' ved %0 følger ikke ISO C-standarden"
+
+#: f/lex.c:345
+#, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "Ukendt undvigesekvens '\\%A' ved %0"
+
+#: f/lex.c:354
+#, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "Uafsluttet undvigsekvens '\\' ved %0"
+
+#: f/lex.c:365
+#, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr "Ukendt undvigesekvens '\\' efterfulgt af tegnkode 0x%A ved %0"
+
+#: f/lex.c:393
+#, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr "\\x angivet ved %0 uden efterfølgende hexadecimale cifre"
+
+#: f/lex.c:407
+#, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr "Hexadecimal undvigesekvens ved %0 er uden for det gyldige interval"
+
+#: f/lex.c:441
+#, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr "Undvigesekvens ved %0 er uden for det gyldig interval for tegn"
+
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr "hexadecimal undvigesekvens er uden for det gyldige interval"
-#: gcc.c:1755
+#: f/lex.c:648
#, c-format
-msgid "rename spec %s to %s\n"
-msgstr "omdøb specifikation %s til %s\n"
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr "undvigesekvensen '\\%c' følger ikke ANSI-standarden"
-#: gcc.c:1757
+#: f/lex.c:661
#, c-format
-msgid "spec is '%s'\n\n"
-msgstr "specifikation er '%s'\n\n"
+msgid "non-ISO escape sequence `\\%c'"
+msgstr "undvigesekvensen '\\%c' følger ikke ISO-standarden"
-#: gcc.c:1770
+#: f/lex.c:665
#, c-format
-msgid "specs unknown %% command after %ld characters"
-msgstr "ukendt %%-kommando i specifikationer efter %ld tegn"
+msgid "unknown escape sequence `\\%c'"
+msgstr "ukendt undvigesekvens '\\%c'"
-#: gcc.c:1781 gcc.c:1794
+#: f/lex.c:667
#, c-format
-msgid "specs file malformed after %ld characters"
-msgstr "specifikationsfil misdannet efter %ld tegn"
-
-#: gcc.c:1848
-msgid "spec file has no spec for linking"
-msgstr "specifikationsfil har ingen specifikation til sammenkædning"
-
-#: gcc.c:2609
-msgid "-pipe not supported"
-msgstr "-pipe understøttes ikke"
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr "ukendt undvigesekvens: '\\' efterfulgt af tegnkoden 0x%x"
-#: gcc.c:2645
-msgid "\nGo ahead? (y or n) "
-msgstr "\nFortsæt, ja (y) eller nej (n)?"
+#: f/lex.c:744
+msgid "badly formed directive -- no closing quote"
+msgstr "forkert udformet direktiv - intet afsluttende anførselstegn"
-#: gcc.c:2744
-#, fuzzy, c-format
-msgid ""
-"Internal error: %s (program %s)\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"Intern oversætterfejl i '%s', ved %s:%d\n"
-"Send venligst en komplet fejlrapport.\n"
-"Se %s for instruktioner."
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr "#-linjer til at træde ind og ud af filer passer ikke"
-#: gcc.c:2762
-#, c-format
-msgid "# %s %.2f %.2f\n"
-msgstr "# %s %.2f %.2f\n"
+#: f/lex.c:964
+msgid "bad directive -- missing close-quote"
+msgstr "forkert udformet direktiv - intet afsluttende anførselstegn"
-#: gcc.c:2890
+#: f/lex.c:1078
#, c-format
-msgid "Usage: %s [options] file...\n"
-msgstr ""
-
-#: gcc.c:2891
-msgid "Options:\n"
-msgstr ""
-
-#: gcc.c:2893
-msgid " -pass-exit-codes Exit with highest error code from a phase\n"
-msgstr ""
-
-#: gcc.c:2894
-msgid " --help Display this information\n"
-msgstr ""
-
-#: gcc.c:2895
-msgid " --target-help Display target specific command line options\n"
-msgstr ""
-
-#: gcc.c:2897
-msgid " (Use '-v --help' to display command line options of sub-processes)\n"
-msgstr ""
-
-#: gcc.c:2898
-msgid " -dumpspecs Display all of the built in spec strings\n"
-msgstr ""
-
-#: gcc.c:2899
-msgid " -dumpversion Display the version of the compiler\n"
-msgstr ""
-
-#: gcc.c:2900
-msgid " -dumpmachine Display the compiler's target processor\n"
-msgstr ""
-
-#: gcc.c:2901
-msgid " -print-search-dirs Display the directories in the compiler's search path\n"
-msgstr ""
-
-#: gcc.c:2902
-msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
-msgstr ""
-
-#: gcc.c:2903
-msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
-msgstr ""
-
-#: gcc.c:2904
-msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
-msgstr ""
-
-#: gcc.c:2905
-msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
-msgstr ""
-
-#: gcc.c:2906
-msgid ""
-" -print-multi-lib Display the mapping between command line options and\n"
-" multiple library search directories\n"
-msgstr ""
-
-#: gcc.c:2909
-msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
-msgstr ""
-
-#: gcc.c:2910
-msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
-msgstr ""
-
-#: gcc.c:2911
-msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
-msgstr ""
+msgid "ignoring pragma: %s"
+msgstr "ignorerer pragma: %s"
-#: gcc.c:2912
-msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
-msgstr ""
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr "ugyldig #ident"
-#: gcc.c:2913
-msgid " -save-temps Do not delete intermediate files\n"
-msgstr ""
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr "ugyldigt eller ikke-defineret #-direktiv"
-#: gcc.c:2914
-msgid " -pipe Use pipes rather than intermediate files\n"
-msgstr ""
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr "ugyldig #line"
-#: gcc.c:2915
-msgid " -time Time the execution of each subprocess\n"
-msgstr ""
+#: f/lex.c:1285 f/lex.c:1329
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr "benyt '#line ...' i stedet for '# ...' i første linje"
-#: gcc.c:2916
-msgid " -specs=<file> Override builtin specs with the contents of <file>\n"
-msgstr ""
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr "ugyldig #-linje"
-#: gcc.c:2917
-msgid " -std=<standard> Assume that the input sources are for <standard>\n"
-msgstr ""
+#: f/lex.c:1432
+#, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr "Nultegn ved %0 - linje ignoreret"
-#: gcc.c:2918
-msgid " -B <directory> Add <directory> to the compiler's search paths\n"
-msgstr ""
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr "INCLUDE ved %0 er ikke den eneste sætning på kildekodelinjen"
-#: gcc.c:2919
-msgid " -b <machine> Run gcc for target <machine>, if installed\n"
-msgstr ""
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr "ASSIGN'et FORMAT-angivelse er for lille"
-#: gcc.c:2920
-msgid " -V <version> Run gcc version number <version>, if installed\n"
-msgstr ""
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr "SELECT CASE på CHARACTER-type (ved %0) er ikke understøttet - desværre"
-#: gcc.c:2921
-msgid " -v Display the programs invoked by the compiler\n"
-msgstr ""
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr "SELECT (ved %0) har ens tilfælde -- tjek heltalsoverløb af CASEs"
-#: gcc.c:2922
-msgid " -E Preprocess only; do not compile, assemble or link\n"
-msgstr ""
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
+msgstr "ASSIGN til variabel der er for lille"
-#: gcc.c:2923
-msgid " -S Compile only; do not assemble or link\n"
-msgstr ""
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr "ASSIGN'et GOTO-målvariabel er for lille"
-#: gcc.c:2924
-msgid " -c Compile and assemble, but do not link\n"
-msgstr ""
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr "Lokalt justerbart symbol '%A' ved %0"
-#: gcc.c:2925
-msgid " -o <file> Place the output into <file>\n"
-msgstr ""
-
-#: gcc.c:2926
-msgid ""
-" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
-" 'none' means revert to the default behaviour of\n"
-" guessing the language based on the file's extension\n"
-msgstr ""
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr "datastartværdi på vært med anden endethed"
-#: gcc.c:2933
+#: f/top.c:237
#, c-format
-msgid ""
-"\n"
-"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
-" passed on to the various sub-processes invoked by %s. In order to pass\n"
-" other options on to these processes the -W<letter> options must be used.\n"
-msgstr ""
-
-#: gcc.c:3300
-msgid "argument to `-Xlinker' is missing"
-msgstr "en parameter til '-Xlinker' mangler"
-
-#: gcc.c:3317
-msgid "argument to `-specs' is missing"
-msgstr "en parameter til '-specs' mangler"
-
-#: gcc.c:3332
-msgid "argument to `-specs=' is missing"
-msgstr "en parameter til '-specs=' mangler"
-
-#: gcc.c:3354
-msgid "argument to `-b' is missing"
-msgstr "en parameter til '-b' mangler"
-
-#: gcc.c:3367
-msgid "argument to `-B' is missing"
-msgstr "en parameter til '-B' mangler"
-
-#: gcc.c:3420
-msgid "argument to `-V' is missing"
-msgstr "en parameter til '-V' mangler"
-
-#: gcc.c:3441 gcc.c:3448 gcc.c:3455
-msgid "invalid version number format"
-msgstr "ugyldigt versionsnummerformat"
-
-#: gcc.c:3566
-msgid "cannot specify -o with -c or -S and multiple compilations"
-msgstr "kan ikke angive -o med -c eller -S og flere oversættelser"
-
-#: gcc.c:3762
-#, fuzzy
-msgid "Warning: -pipe ignored because -save-temps specified"
-msgstr "Advarsel: -pipe ignoreret eftersom -save-temps er angivet"
-
-#: gcc.c:3766
-#, fuzzy
-msgid "Warning: -pipe ignored because -time specified"
-msgstr "Advarsel: -pipe ignoreret eftersom -time er angivet"
-
-#: gcc.c:3776
-msgid "argument to `-x' is missing"
-msgstr "en parameter til '-x' mangler"
+msgid "%s no longer supported -- try -fvxt"
+msgstr "%s er ikke længere understøttet - prøv -fvxt"
-#: gcc.c:3804
+#: f/top.c:239
#, c-format
-msgid "argument to `-%s' is missing"
-msgstr "en parameter til '-%s' mangler"
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr "%s er ikke længere understøttet - prøv -fno-vxt -ff90"
-#: gcc.c:3867
+#: f/top.c:307 f/top.c:309
#, c-format
-msgid "Warning: `-x %s' after last input file has no effect"
-msgstr "Advarsel: '-x %s' efter den sidste inddatafil udvirker intet"
+msgid "%s disabled, use normal debugging flags"
+msgstr "%s deaktiveret, benyt normale fejlanalyseringstilvalg"
-#: gcc.c:4072
-msgid "Invalid specification! Bug in cc."
-msgstr "Ugyldig specifikation! Fejl i cc."
+#: f/lang-options.h:33
+msgid "Print g77-specific compiler version info, run internal tests"
+msgstr "Udskriv g77-specifik oversætterversioninfo, kør interne test"
-#: gcc.c:4221
-#, fuzzy, c-format
-msgid "%s\n"
-msgstr "%s"
+#: f/lang-options.h:37
+msgid "Program is written in typical FORTRAN 66 dialect"
+msgstr "Program er skrevet i typisk FORTRAN 66-dialekt"
-#. Catch the case where a spec string contains something like
-#. '%{foo:%*}'. ie there is no * in the pattern on the left
-#. hand side of the :.
-#: gcc.c:4738
-#, c-format
-msgid "Spec failure: '%%*' has not been initialised by pattern match"
-msgstr "Specifikationsfejl: '%%*' er ikke blevet klargjort af mønstersøgning"
+#: f/lang-options.h:40
+msgid "Program is written in typical Unix f77 dialect"
+msgstr "Program er skrevet i typisk Unix f77-dialekt"
-#: gcc.c:4747
-#, c-format
-msgid "Warning: use of obsolete %%[ operator in specs"
-msgstr "Advarsel: forældet '%%['-operator benyttet i specifikationer"
+#: f/lang-options.h:42
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr "Program benytter ikke Unix f77-dialektiske faciliteter"
-#: gcc.c:4765
-#, c-format
-msgid "Processing spec %c%s%c, which is '%s'\n"
-msgstr "Behandler specifikation %c%s%c, som er '%s'\n"
+#: f/lang-options.h:44
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr "Program er skrevet i Fortran 90-agtig dialekt"
-#: gcc.c:4890
-#, c-format
-msgid "Spec failure: Unrecognised spec option '%c'"
-msgstr "Specifikationsfejl: Ukendt specifikationstilvalg '%c'"
+#: f/lang-options.h:48
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr "Behandl lokale variable og COMMON-blokke som om de var nævnt i SAVE-sætninger"
-#: gcc.c:5744
-#, c-format
-msgid "unrecognized option `-%s'"
-msgstr "ukendt tilvalg '-%s'"
+#: f/lang-options.h:50
+msgid "Allow $ in symbol names"
+msgstr "Tillad $ i symbolnavne"
-#: gcc.c:5750
-#, c-format
-msgid "install: %s%s\n"
-msgstr ""
+#: f/lang-options.h:54
+msgid "f2c-compatible code need not be generated"
+msgstr "f2c-kompatibel kode behøver ikke at blive genereret"
-#: gcc.c:5751
-#, c-format
-msgid "programs: %s\n"
-msgstr ""
+#: f/lang-options.h:57
+msgid "Unsupported; do not generate libf2c-calling code"
+msgstr "Ikke-understøttet; generér ikke libf2c-kaldende kode"
-#: gcc.c:5752
-#, c-format
-msgid "libraries: %s\n"
-msgstr ""
+#: f/lang-options.h:59
+msgid "Unsupported; affects code-generation of arrays"
+msgstr "Ikke-understøttet; påvirker kodegenerering af tabeller"
-#: gcc.c:5800
-msgid "\nFor bug reporting instructions, please see:\n"
-msgstr ""
+#: f/lang-options.h:62
+msgid "Program is written in Fortran-90-ish free form"
+msgstr "Program er skrevet i Fortran 90-agtig fri stil"
-#: gcc.c:5816
-#, c-format
-msgid "Configured with: %s\n"
-msgstr ""
+#: f/lang-options.h:67
+msgid "Warn about use of (only a few for now) Fortran extensions"
+msgstr "Advar om brug af (i øjeblikket kun nogle få) Fortran-udvidelser"
-#: gcc.c:5830
-#, c-format
-msgid "Thread model: %s\n"
-msgstr ""
+#: f/lang-options.h:70
+msgid "Program is written in VXT (Digital-like) FORTRAN"
+msgstr "Program er skrevet i VXT (Digital-agtig) FORTRAN"
-#: gcc.c:5841
-#, c-format
-msgid "gcc version %s\n"
-msgstr "gcc version %s\n"
+#: f/lang-options.h:73
+msgid "Disallow all ugly features"
+msgstr "Forbyd alle grimme faciliteter"
-#: gcc.c:5843
-#, c-format
-msgid "gcc driver version %s executing gcc version %s\n"
-msgstr "gcc-styringsprogram version %s kører gcc version %s\n"
+# hollerith?
+#: f/lang-options.h:76
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr "Hollerith og typeløse konstanter overbringes ikke som parametre"
-#: gcc.c:5851
-msgid "No input files"
-msgstr "Ingen inddatafiler"
+#: f/lang-options.h:78
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr "Tillad almindelig kopiering af ASSIGN'ede variable"
-#: gcc.c:5888
-#, c-format
-msgid "%s: %s compiler not installed on this system"
-msgstr "%s: %s-oversætter ikke installeret på dette system"
+# RETMIG: ?
+#: f/lang-options.h:81
+msgid "Dummy array dimensioned to (1) is assumed-size"
+msgstr "Dummy-tabel dimensioneret til (1) er antaget størrelse"
-#: gcc.c:5958
-#, fuzzy, c-format
-msgid "%s: linker input file unused because linking not done"
-msgstr "%s: sammenkæderinddatafil ikke benyttet eftersom sammenkædning ikke blev foretaget"
+#: f/lang-options.h:84
+msgid "Trailing comma in procedure call denotes null argument"
+msgstr "Afsluttende komma i procedurekald angiver nulparameter"
-#: gcc.c:6001
-#, c-format
-msgid "language %s not recognized"
-msgstr "sproget %s ikke genkendt"
+#: f/lang-options.h:87
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+msgstr "Tillad REAL(Z) og AIMAG(Z) givet DOUBLE COMPLEX Z"
-#: gcc.c:6104
-msgid "Internal gcc abort."
-msgstr "Intern gcc-afbrydelse."
+#: f/lang-options.h:91
+msgid "Initialization via DATA and PARAMETER is type-compatible"
+msgstr "Klargøring via DATA og PARAMETER er type-kompatible"
-#: gcov.c:299
-msgid "Internal gcov abort.\n"
-msgstr "Intern gcov afbrydelse.\n"
+#: f/lang-options.h:93
+msgid "Allow INTEGER and LOGICAL interchangeability"
+msgstr "Tillad INTEGER og LOGICAL på hinandens plads"
-#: gcov.c:308
-msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
-msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n"
+#: f/lang-options.h:96
+msgid "Print internal debugging-related info"
+msgstr "Udskriv intern fejlanalyseringsrelateret info"
-#: gcov.c:428
-#, c-format
-msgid "Could not open basic block file %s.\n"
-msgstr "Kunne ikke åbne basisblokfilen %s.\n"
+#: f/lang-options.h:99
+msgid "Initialize local vars and arrays to zero"
+msgstr "Klargør lokale variable og tabeller til nul"
-#: gcov.c:437
-#, c-format
-msgid "Could not open data file %s.\n"
-msgstr "Kunne ikke åbne datafilen %s.\n"
+#: f/lang-options.h:103
+msgid "Backslashes in character/hollerith constants not special (C-style)"
+msgstr "Omvendte skråstreger i tegn/hollerith-konstanter er ikke specielle (C-stil)"
-#: gcov.c:438
-msgid "Assuming that all execution counts are zero.\n"
-msgstr "Antager at alle kørselstællere er nul.\n"
+#: f/lang-options.h:105
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+msgstr "Lad forenden emulere COMPLEX-beregninger for at undgå fejl"
-#: gcov.c:444
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "Kunne ikke åbne programstrømsgraffilen %s.\n"
+#: f/lang-options.h:109
+msgid "Disable the appending of underscores to externals"
+msgstr "Deaktivér tilføjelse af understreger bag på eksterne variable"
-#: gcov.c:455
-#, c-format
-msgid "No executable code associated with file %s.\n"
-msgstr "Ingen kørbar kode associeret med filen %s.\n"
+#: f/lang-options.h:112
+msgid "Never append a second underscore to externals"
+msgstr "Tilføj aldrig en anden understreg til eksterne variable"
-#: gcov.c:754 profile.c:977
-msgid ".da file contents exhausted too early\n"
-msgstr "indholdet af .da-filen er udtømt for tidligt\n"
+#: f/lang-options.h:114
+msgid "Intrinsics spelled as e.g. SqRt"
+msgstr "Indbyggede staves som f.eks. SqRt"
-#: gcov.c:757 profile.c:980
-msgid ".da file contents not exhausted\n"
-msgstr "indholdet af .da-filen ikke udtømt\n"
+#: f/lang-options.h:116
+msgid "Intrinsics in uppercase"
+msgstr "Indbyggede staves med store bogstaver"
-#: gcov.c:938
-#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%6.2f%% af %d kildekodelinjer udført i funktionen %s\n"
+#: f/lang-options.h:119
+msgid "Intrinsics letters in arbitrary cases"
+msgstr "Der skelnes ikke mellem små og store bogstaver i indbyggede"
-#: gcov.c:942
-#, c-format
-msgid "No executable source lines in function %s\n"
-msgstr "Ingen kørbare kildekodelinjer i funktionen %s\n"
+#: f/lang-options.h:121
+msgid "Language keywords spelled as e.g. IOStat"
+msgstr "Sprognøgleord staves som f.eks. IOStat"
-#: gcov.c:949
-#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%6.2f%% af %d forgreninger udført i funktionen %s\n"
+#: f/lang-options.h:123
+msgid "Language keywords in uppercase"
+msgstr "Sprognøgleord staves med store bogstaver"
-#: gcov.c:953
-#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%6.2f%% af %d forgreninger valgt mindst én gang i funktionen %s\n"
+#: f/lang-options.h:126
+msgid "Language keyword letters in arbitrary cases"
+msgstr "Der skelnes ikke mellem små og store bogstaver i sprognøgleord"
-#: gcov.c:958
-#, c-format
-msgid "No branches in function %s\n"
-msgstr "Ingen forgreninger i funktionen %s\n"
+#: f/lang-options.h:128
+msgid "Internally convert most source to uppercase"
+msgstr "Konvertér det meste kildekode til store bogstaver internt"
-#: gcov.c:960
-#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%6.2f%% af %d kald udført i funktionen %s\n"
+#: f/lang-options.h:131
+msgid "Internally preserve source case"
+msgstr "Bevar de store/små bogstaver i kildekoden internt"
-#: gcov.c:964
-#, c-format
-msgid "No calls in function %s\n"
-msgstr "Ingen kald i funktionen %s\n"
+#: f/lang-options.h:133
+msgid "Symbol names spelled in mixed case"
+msgstr "Symbolnavne staves med en blanding af store og små bogstaver"
-#: gcov.c:1096
-#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
-msgstr "brugte ikke alle grafens basisblokelementer, funktion %s\n"
+#: f/lang-options.h:135
+msgid "Symbol names in uppercase"
+msgstr "Symbolnavne staves med store bogstaver"
-#: gcov.c:1098
-#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
-msgstr "block_num = %ld, num_blocks = %d\n"
+#: f/lang-options.h:137
+msgid "Symbol names in lowercase"
+msgstr "Symbolnavne staves med små bogstaver"
-#: gcov.c:1136
-#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
-msgstr "Fejl: for mange basisblokke i .bb-filen %s\n"
+#: f/lang-options.h:140
+msgid "Program written in uppercase"
+msgstr "Program skrives med store bogstaver"
-#: gcov.c:1213
-#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%6.2f%% af %d kildekodelinjer udført i filen %s\n"
+#: f/lang-options.h:142
+msgid "Program written in lowercase"
+msgstr "Program skrives med små bogstaver"
-#: gcov.c:1217
-#, c-format
-msgid "No executable source lines in file %s\n"
-msgstr "Ingen kørbare kildekodelinjer i filen %s\n"
+#: f/lang-options.h:144
+msgid "Program written in strict mixed-case"
+msgstr "Program skrives med streng blanding af store/små bogstaver"
-#: gcov.c:1224
-#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
-msgstr "%6.2f%% af %d forgreninger udført i filen %s\n"
+#: f/lang-options.h:146
+msgid "Compile as if program written in uppercase"
+msgstr "Oversæt som hvis programmet var skrevet med store bogstaver"
-#: gcov.c:1228
-#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
-msgstr "%6.2f%% af %d forgreninger valgt mindst én gang i filen %s\n"
+#: f/lang-options.h:148
+msgid "Compile as if program written in lowercase"
+msgstr "Oversæt som hvis programmet var skrevet med små bogstaver"
-#: gcov.c:1233
-#, c-format
-msgid "No branches in file %s\n"
-msgstr "Ingen forgreninger i filen %s\n"
+#: f/lang-options.h:150
+msgid "Preserve all spelling (case) used in program"
+msgstr "Bevar al stavning (store/små bogstaver) benyttet i programmet"
-#: gcov.c:1235
-#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr "%6.2f%% af %d kald udført i filen %s\n"
+#: f/lang-options.h:152
+msgid "Delete libU77 intrinsics with bad interfaces"
+msgstr "Slet libU77-indbyggede med dårlige grænseflader"
-#: gcov.c:1239
-#, c-format
-msgid "No calls in file %s\n"
-msgstr "Ingen kald i filen %s\n"
+#: f/lang-options.h:154
+msgid "Disable libU77 intrinsics with bad interfaces"
+msgstr "Deaktivér libU77-indbyggede med dårlige grænseflader"
-#: gcov.c:1251
-#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "Kunne ikke åbne kildefilen %s.\n"
+#: f/lang-options.h:157
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr "Skjul libU77-indbyggede med dårlige grænseflader"
-#: gcov.c:1301
-#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "Kunne ikke åbne uddatafilen %s.\n"
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Slet f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1309
-#, c-format
-msgid "Creating %s.\n"
-msgstr "Opretter %s.\n"
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Deaktivér f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1353
-#, c-format
-msgid "call %d never executed\n"
-msgstr "kald %d aldrig udført\n"
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+msgstr "Skjul f2c-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1358
-#, c-format
-msgid "call %d returns = %d\n"
-msgstr "kald %d returnerer = %d\n"
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Slet F90-understøttelse af ikke-FORTRAN-77-indbyggede "
-#: gcov.c:1362
-#, c-format
-msgid "call %d returns = %d%%\n"
-msgstr "kald %d returnerer = %d%%\n"
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Deaktivér F90-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1370
-#, c-format
-msgid "branch %d never executed\n"
-msgstr "forgrening %d aldrig udført\n"
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr "Skjul F90-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1376
-#, c-format
-msgid "branch %d taken = %d\n"
-msgstr "forgrening %d valgt = %d\n"
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr "Slet g77-understøttelse af ikke-FORTRAN-77-indbyggede "
-#: gcov.c:1380
-#, c-format
-msgid "branch %d taken = %d%%\n"
-msgstr "forgrening %d valgt = %d%%\n"
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+msgstr "Deaktivér g77-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcov.c:1394
-#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
-msgstr "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+msgstr "Skjul g77-understøttelse af ikke-FORTRAN-77-indbyggede"
-#: gcse.c:691
-#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr ""
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
+msgstr "Slet MIL-STD 1753-indbyggede"
-#: gcse.c:703
-#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
-msgstr ""
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
+msgstr "Deaktivér MIL-STD 1753-indbyggede"
-#: haifa-sched.c:193
-#, c-format
-msgid "fix_sched_param: unknown param: %s"
-msgstr ""
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
+msgstr "Skjul MIL-STD 1753-indbyggede"
-#: integrate.c:142
-#, fuzzy
-msgid "function cannot be inline"
-msgstr "funktioner med variabel parameterliste kan ikke indbygges"
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
+msgstr "Slet libU77-indbyggede"
-#: integrate.c:147
-msgid "varargs function cannot be inline"
-msgstr "funktioner med variabel parameterliste kan ikke indbygges"
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr "Deaktivér libU77-indbyggede"
-#: integrate.c:150
-msgid "function using alloca cannot be inline"
-msgstr "funktion der bruger alloca, kan ikke indbygges"
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr "Skjul libU77-indbyggede"
-#: integrate.c:153
-msgid "function using setjmp cannot be inline"
-msgstr "funktioner der bruger setjmp, kan ikke indbygges"
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Slet VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
-#: integrate.c:156
-msgid "function uses __builtin_eh_return"
-msgstr "funktionen bruger __builtin_eh_return"
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Deaktivér VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
-#: integrate.c:159
-msgid "function with nested functions cannot be inline"
-msgstr "funktioner med indlejrede funktioner kan ikke indbygges"
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr "Skjul VXT FORTRAN-understøttelse af ikke-FORTRAN-77-indbyggede "
-#: integrate.c:163
-msgid "function with label addresses used in initializers cannot inline"
-msgstr "funktioner hvor etiketadresser benyttes i klargøringer, kan ikke indbygges"
+#: f/lang-options.h:201
+msgid "Treat initial values of 0 like non-zero values"
+msgstr "Behandl begyndelsesværdier på 0 som værdier forskellig fra nul"
-#: integrate.c:170 integrate.c:214
-msgid "function too large to be inline"
-msgstr "funktionen er for stor til at blive indbygget"
+#: f/lang-options.h:204
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+msgstr "Udsend speciel fejlanalyseringsinfo for COMMON og EQUIVALENCE (deaktiveret)"
-#: integrate.c:180
-msgid "no prototype, and parameter address used; cannot be inline"
-msgstr "ingen prototype, og parameteradressen benyttes; kan ikke indbygges"
+#: f/lang-options.h:207
+msgid "Take at least one trip through each iterative DO loop"
+msgstr "Tag i det mindste et skridt gennem hver DO-løkke"
-#: integrate.c:187 integrate.c:232
-msgid "inline functions not supported for this return value type"
-msgstr "integrerede funktioner understøttes ikke for denne returværditype"
+#: f/lang-options.h:211
+msgid "Print names of program units as they are compiled"
+msgstr "Udskriv navne på programenheder efterhånden som de oversættes"
-#: integrate.c:192
-msgid "function with varying-size return value cannot be inline"
-msgstr "funktioner med returværdier af varierende størrelse kan ikke indbygges"
+#: f/lang-options.h:214
+msgid "Disable fatal diagnostics about inter-procedural problems"
+msgstr "Deaktivér fatale diagnosticeringer af interprocedurale procedurer"
-#: integrate.c:199
-msgid "function with varying-size parameter cannot be inline"
-msgstr "funktioner med parametre af varierende størrelse kan ikke indbygges"
+#: f/lang-options.h:216
+msgid "Make prefix-radix non-decimal constants be typeless"
+msgstr "Gør præfiks-grundtal ikke-decimale konstanter typeløse"
-#: integrate.c:202
-msgid "function with transparent unit parameter cannot be inline"
-msgstr "funktioner med gennemsigtig union-parameter kan ikke indbygges"
+#: f/lang-options.h:219
+msgid "Generate code to check subscript and substring bounds"
+msgstr "Generér kode for at tjekke indekserings- og understrengsgrænser"
-#: integrate.c:221
-msgid "function with computed jump cannot inline"
-msgstr "funktioner med beregnede spring kan ikke indbygges"
+#: f/lang-options.h:222
+msgid "Fortran-specific form of -fbounds-check"
+msgstr "Fortran-specifik form for -fbounds-check"
-#: integrate.c:225
-msgid "function with nonlocal goto cannot be inline"
-msgstr "funktioner med ikke-lokale goto'er kan ikke indbygges"
+#: f/lang-options.h:226
+msgid "Disable warnings about inter-procedural problems"
+msgstr "Deaktivér advarsler om interprocedurale problemer"
-#: integrate.c:240
-msgid "function with target specific attribute(s) cannot be inlined"
-msgstr "funktioner med målspecifikke egenskaber kan ikke indbygges"
+#: f/lang-options.h:230
+msgid "Warn about constructs with surprising meanings"
+msgstr "Advar om konstruktioner med overraskende betydninger"
+
+#: f/lang-options.h:235
+msgid "Add a directory for INCLUDE searching"
+msgstr "Tilføj et katalog til INCLUDE-søgning"
-#: java/check-init.c:731
+#: f/lang-options.h:237
+msgid "Set the maximum line length"
+msgstr "Angiv den maksimale linjelængde"
+
+#: f/bad.def:39
+#, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr "Manglende første operand for binær operator ved %0"
+
+#: f/bad.def:42
+#, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "Nul-længde tegnkonstant ved %0"
+
+#: f/bad.def:45
+#, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr "Ugyldigt symbol ved %0 i udtryk eller underudtryk ved %1"
+
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr "Manglende operand for operator ved %1 i slutningen af udtryk ved %0"
+
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr "Etiket %A er allerede defineret ved %1 ved omdefinering ved %0"
+
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr "Ukendt tegn ved %0 [info -f g77 M LEX]"
+
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr "Etiketdefinition %A ved %0 i tom sætning (ved %1)"
+
+#: f/bad.def:65
+#, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr "Ugyldig første tegn ved %0 [info -f g77 M LEX]"
+
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr "Linje for lang ved %0 [info -f g77 M LEX]"
+
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr "Tegn der ikke er tal ved %0 i etiketfelt [info -f g77 M LEX]"
+
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr "Etiketnummer ved %0 er ikke i intervallet 1-99999"
+
+#: f/bad.def:77
+#, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr "Ved %0 er '!' og '/*' ikke gyldige kommentarafgrænsninger"
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr "Fortsættelsesindikator ved %0 skal optræde i kolonne 6 [info -f g77 M LEX]"
+
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr "Etiket ved %0 er ugyldig med fortsættelseslinjeindikator ved %1 [info -f g77 M LEX]"
+
+#: f/bad.def:91
+#, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "Tenkonstant ved %0 har ingen afsluttende apostrof ved %1"
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr "Hollerith-konstant ved %0 angiver %A flere tegn end der optræder ved %1"
+
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr "Afsluttende parantes ved %0 behøves for at svare til åben parantes ved %1"
+
+#: f/bad.def:100
+#, no-c-format
+msgid "Integer at %0 too large"
+msgstr "Heltal ved %0 for stort"
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr "Punktum ved %0 efterfølges ikke af cifre til kommatal eller af 'NOT.', 'TRUE.' eller 'FALSE.'"
+
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr "Manglende afsluttende punktum mellem '.%A' ved %0 og %1"
+
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr "Ugyldig eksponent ved %0 for reel konstant ved %1; ikke-ciffer '%A' i eksponentfelt"
+
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr "Manglende værdi ved %1 for reel eksponent ved %0"
+
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr "Forventede binær operator mellem udtryk ved %0 og ved %1"
+
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr "Semikolon ved %0 er et ugyldigt symbol"
+
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr "Ekstra komma i FORMAT-sætning ved %0"
+
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr "Manglende komma i FORMAT-sætning ved %0"
+
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr "Mystisk fortegn i FORMAT-sætning ved %0"
+
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr "Mystisk tal i FORMAT-sætning ved %0"
+
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr "Mystisk tekstafsluttende tal i FORMAT-sætning ved %0"
+
+#: f/bad.def:291
+#, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr "Ukendt FORMAT-angivelse ved %0"
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr "Manglende afsluttende parantes i FORMAT-sætning ved %0"
+
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr "Manglende tal efter punktum i FORMAT-sætning ved %0"
+
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr "Manglende tal efter 'E' i FORMAT-sætning ved %0"
+
+#: f/bad.def:433
+#, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr "Mystisk afsluttende komma før afslutningssymbol ved %0"
+
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr "Angiv OPERATOR i stedet for ASSIGNMENT ved %0 for INTERFACE-sætning der ikke angiver tildelingsoperatoren (=)"
+
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr "Angiv ASSIGNMENT i stedet for OPERATOR ved %0 for INTERFACE-sætning der angiver tildelingsoperatoren (=)"
+
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr "Kan ikke angive =klargøringsudtryk ved %0 medmindre '::' optræder før listen af objekter"
+
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr "Reference til etiket ved %1 er inkonsistent med dens definition ved %0"
+
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr "Reference til etiket ved %1 er inkonsistent med tidligere reference ved %0"
+
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr "DO-sætningsreference til etiket ved %1 følger dens definition ved %0"
+
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr "Reference til etiket ved %1 er uden for blok der indeholder definitionen ved %0"
+
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr "DO-sætningsreferencer til etiket ved %0 og %2 adskilt af uafsluttet blok der begynder ved %1"
+
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr "DO-sætningsreference til etiket ved %0 og etiketdefinition ved %2 adskilt af uafsluttet blok der begynder ved %1"
+
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr "Etiketdefinition ved %0 er ugyldig ved denne slags sætning"
+
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr "Sætning ved %0 er ugyldig i denne kontekst"
+
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
+
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr "Sætning ved %0 skal angive konstruktionsnavn angivet ved %1"
+
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr "Kontruktionsnavn ved %0 er overflødigt, intet kontruktionsnavn angivet ved %1"
+
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr "Kontruktionsnavn ved %0 er ikke det samme som konstruktionsnavn ved %1"
+
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr "Kontruktionsnavn ved %0 passer ikke med konstruktionsnavn for nogen indeholdende DO-konstruktioner"
+
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr "Etiketdefinition mangler ved %0 for DO-konstruktion der angiver etiket ved %1"
+
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr "Sætning ved %0 følger ELSE-blok for IF-konstruktion ved %1"
+
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr "Ingen etiketdefinition for FORMAT-sætning ved %0"
+
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr "Anden forekomst af ELSE WHERE ved %0 inden i WHERE ved %1"
+
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr "END-sætning ved %0 mangler nøgleordet '%A' som er påkrævet for interne eller modul-procedurer afgrænset af %1"
+
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr "MODULE PROCEDURE-sætning ved %0 er ikke tilladt da INTERFACE ved %1 ikke angiver generisk navn, operator eller tildeling"
+
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr "BLOCK DATA-navn ved %0 er overflødigt, intet navn angivet ved %1"
+
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr "Programnavn ved %0 er overflødigt, ingen PROGRAM-sætning angivet ved %1"
+
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr "Programenhedsnavn ved %0 er ikke det samme som navn ved %1"
+
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr "Typenavn ved %0 er ikke det samme som navn ved %1"
+
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr "Slutning på kildekodefil før slutning af blok begyndt ved %0"
+
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr "Ikke-defineret etiket, første reference er ved %0"
+
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr "SAVE-sætning eller -egenskab ved %1 kan ikke angives sammen med SAVE-sætning eller -egenskab ved %0"
+
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr "PUBLIC- eller PRIVATE-sætning ved %1 kan ikke angives sammen med PUBLIC- eller PRIVATE-sætning ved %0"
+
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr "RETURN-sætning ved %0 ugyldig inden i en hovedprogramenhed"
+
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en hovedprogramenhed"
+
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en funktion"
+
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr "Tilgangsangivelse eller PRIVATE-sætning ved %0 er ugyldig for nedarvet typedefinition som ikke er i specifikationsdelen af et modul"
+
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr "Tilgangsangivelse ved %0 skal umiddelbart følge nedarvet type-sætning ved %1 uden nogen mellemliggende sætninger"
+
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr "Ingen komponenter angivet ved %0 for nedarvet typedefinition begyndende ved %1"
+
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr "Ingen komponenter angivet ved %0 for strukturdefinition begyndende ved %1"
+
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr "Manglende strukturnavn for ydre strukturdefinition ved %0"
+
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr "Feltnavne ved %0 for ydre strukturdefinition - angiv dem i en efterfølgende RECORD-sætning i stedet"
+
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr "Manglende feltnavne for strukturdefinition ved %0 inden i strukturdefinition ved %1"
+
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr "Ingen komponenter angivet ved %0 for map begyndende ved %1"
+
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr "Nul eller en map angivet ved %0 for union begyndende ved %1 - mindst to er påkrævet"
+
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr "Manglende %A-angivelse i sætning ved %0"
+
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr "Elementer i I/O-liste begyndende ved %0 er ugyldigt for navnlistedirigeret I/O"
+
+#: f/bad.def:578
+#, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr "Modstridende I/O-kontrolangivelser ved %0 og %1"
+
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr "Inge UNIT=-angivelse i I/O-kontrolliste ved %0"
+
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr "Specifikation ved %0 kræver ADVANCE='NO'-specifikation i samme I/O-kontrolliste"
+
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr "Specifikation ved %0 kræver eksplicit FMT=-specifikation i samme I/O-kontrolliste"
+
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr "Anden forekomst af CASE DEFAULT ved %0 inden i SELECT CASE ved %1"
+
+#: f/bad.def:598
+#, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr "CASE-værdi optræder mere end én gang eller intervaller overlapper ved %0 og %1"
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr "Type og/eller form for type-parameter konflikt mellem CASE-værdi eller værdi i interval ved %0 og SELECT CASE ved %1"
+
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr "Intervalangivelse ved %0 er ugyldig for CASE-sætning inden i SELECT CASE-sætning med logisk type"
+
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr "Fortran 90-facilitet ved %0 er ikke understøttet"
+
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr "Ugyldig erklæring af reference til symbolet '%A' ved %0 (først set ved %1)"
+
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr "Nulelement ved %0 for tabelreference ved %1"
+
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr "For få elementer (%A mangler) ved %0 for tabelreference ved %1"
+
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr "For mange elementer ved %0 for tabelreference ved %1"
+
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr "Manglende kolon ved %0 i understrengsreference for %1"
+
+#: f/bad.def:650
+#, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr "Ugyldig brug ved %0 af understrengsoperator på %1"
+
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr "Understrengs begyndelses-/slutpunkt ved %0 er uden for det definerede interval"
+
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr "Tabelelementværdi ved %0 er uden for det definerede interval"
+
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr "Udtryk ved %0 har forkert datatype eller rang for dets kontekst"
+
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr "Division med nul ved %0 (IEEE understøttes ikke endnu)"
+
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr "%A-skridttæller vides at være nul ved %0"
+
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr "%A-slutværdi plus skridttæller vides at forårsage overløb ved %0"
+
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr "%A-begyndelses-, slut- og skridttæller-værdier vides at resultere i implementeringsafhængig opførsel pga. overløb i mellemregninger ved %0"
+
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr "%A-begyndelses-, slut- og skridttæller-værdier vides at resultere i at der ikke foretages nogen iterationer ved %0"
+
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr "Typekonflikt mellem udtryk ved %0 og %1"
+
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr "Ingen angivelse af underforstået DO-iterator '%A' ved %0"
+
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr "Ekstra paranteser omkring underforstået DO-konstruktion ved %0"
+
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr "Nulstørrelses angivelse ugyldig ved %0"
+
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
+msgstr "Nulstørrelsestabel ved %0"
+
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr "Målarkitekturen understøtter ikke den form for kompleks enhed der er angivet ved %0"
+
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr "Målarkitekturen understøtter ikke DOUBLE COMPLEX, som angivet ved %0"
+
+#: f/bad.def:708
+#, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr "Forsøg at opløfte konstant nul til en potens af %0"
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr "Reference til generisk indbygget '%A' ved %0 kunne være for at danne %B eller %C"
+
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr "Tvetydig brug af indbygget '%A' ved %0 [info -f g77 M CMPAMBIG]"
+
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr "Indbygget '%A' refereret til som %B ved %0, som %C ved %1 [info -f g77 M EXPIMP]"
+
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr "Samme navn '%A' benyttet for %B ved %0 og %C ved %1 [info -f g77 M INTGLOB]"
+
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr "Eksplicit typeerklæring for indbygget '%A' er i modstrid med kald ved %0"
+
+#: f/bad.def:821
+#, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr "Kunne ikke åbne INCLUDE-filen '%A' ved %0"
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr "Nulparameter ved %0 for sætningsfunktionsreference ved %1"
+
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr "Nulparameter ved %0 for procedurekald ved %1"
+
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr "%A for få parametre (begyndende ved dummy-parameter '%B') ved %0 for sætningsfunktionsreference ved %1"
+
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr "%A for mange parametre ved %0 for sætningsfunktionsreference ved %1"
+
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr "Tabel angivet ved %1 for dummy-parameter '%A' i sætningsfunktionsreference ved %1"
+
+#: f/bad.def:854
+#, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
+msgstr "Ikke-understøttet FORMAT-angivelse ved %0"
+
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr "Variabel-udtryks FORMAT-angivelse ved %0 - ikke-understøttet"
+
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr "Ikke-understøttet VXT-sætning ved %0"
+
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr "Forsøg på at angive anden startværdi for '%A' ved %0"
+
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr "For få startværdier i klargøringsliste for '%A' ved %0"
+
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr "For mange startværdier i klargøringsliste ved %0"
+
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i sætning ved %0"
+
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr "Tabelindeks nr. %B er uden for det gyldig interval ved klargøring af '%A' i sætning ved %0"
+
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr "Underforstået do-løkkeskridttæller på nul for iterationsvariablen '%A' i sætning ved %0"
+
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr "Underforstået do-løkkegentagelsestæller på nul for iterationsvariablen '%A' i sætning ved %0"
+
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr "Ikke et heltalskonstantudtryk i underforstået do-løkke i sætning ved %0"
+
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr "Forsøg på at angive anden startvædi for element af '%A' ved %0"
+
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr "Forsøg på at anvende EQUIVALENCE mellem de almene områder '%A' og '%B' ved %0"
+
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr "Kan ikke placere '%A' som angivet af EQUIVALENCE pga. justeringsrestriktioner"
+
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr "Forkerte EQUIVALENCE-krav for placering af '%A' ved både %C og %D bytes afstand fra '%B'"
+
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr "Tabel- eller understrengsspecifikation for '%A' er uden for det gyldige interval i EQUIVALENCE-sætning"
+
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr "Understreng af ikke-CHARACTER enhed '%A' i EQUIVALENCE-sætning"
+
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr "Tabelreference til skalar variabel '%A' i EQUIVALENCE-sætning"
+
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr "Tabelindeks nr. %B er uden for det gyldige interval for EQUIVALENCE '%A'"
+
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr "Forsøg på at udvide COMMON-område over dets begyndelsespunkt vha. EQUIVALENCE '%A'"
+
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr "For få elementer i reference til tabllen '%A' i EQUIVALENCE-sætning"
+
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr "For mange elementer i reference til tabllen '%A' i EQUIVALENCE-sætning"
+
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr "Blandede CHARACTER- og ikke-CHARACTER-typer vha. COMMON/EQUIVALENCE - f.eks. '%A' og '%B'"
+
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr "Returværdi `%A' for FUNCTION ved %0 refereres ikke i underprogram"
+
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr "Almen blok '%A' er SAVEd, eksplicit eller implicit, ved %0, men ikke ved %1"
+
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr "Almen blok '%A' er %B %D i længde ved %0, men %C %E ved %1"
+
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
+msgstr "Tom almen tildelt startværdi ved %0"
+
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr "Indbygget '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklæret INTRINSIC"
+
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr "Ekstern procedure '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklæret EXTERNAL"
+
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr "Tegn '%A' (f.eks.) er et stort bogstav i symbolnavn ved %0"
+
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr "Tegn '%A' (f.eks.) er et lille bogstav i symbolnavn ved %0"
+
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr "Tegn '%A' følges ikke af lille bogstav i symbolnavn ved %0"
+
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr "Begyndelsestegn '%A' er et lille bogstav i symbolnavn ved %0"
+
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr "NAMELIST er ikke tilstrækkeligt understøttet af kørselsbiblioteket for kildefiler med store/små bogstaver bevaret"
+
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr "Indlejret %%-konstruktion (%%VAL, %%REF eller %%DESCR) ved %0"
+
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr "Sætning ved %0 er ugyldig i BLOCK DATA-programenhed ved %1"
+
+#: f/bad.def:1037
+#, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr "Fjerner tegn på den højre side af tegnkonstant ved %0"
+
+#: f/bad.def:1040
+#, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr "Fjerner tegn på den højre side af hollerith-konstant ved %0"
+
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr "Fjerner data der ikke er nul, på den venstre side af numerisk konstant ved %0"
+
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr "Fjerner data der ikke er nul, på den venstre side af typeløs konstant ved %0"
+
+#: f/bad.def:1049
+#, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr "Typeløs konstant ved %0 er for stor"
+
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr "Førstekolonne og-tegnsfortsættelse ved %0"
+
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr "Globalt navn '%A' defineret ved %0 er allerede defineret ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr "Globalt navn '%A' er %B ved %0, men er %C ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr "Globalt navn '%A' ved %0 har anden type ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr "For %B parameter overbragt til '%A' ved %0 mod definitionen ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr "For %B parametre til '%A' ved %0 mod kald ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr "Parameter nr. %B for '%A' er %C ved %0, men er %D ved %1 [info -f g77 M GLOBALS]"
+
+#: f/bad.def:1085
+#, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr "Tabellen '%A' ved %0 er for stor til at håndtere"
+
+#: f/bad.def:1088
+#, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr "Sætningsfunktion '%A' defineret ved %0, men er ikke brugt"
+
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr "Indbygget '%A', kaldt ved %0, vides ikke være år 2000-sikker [info -f g77 M Y2KBAD]"
+
+#: f/bad.def:1094
+#, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr "Intern oversætterfejl - kan ikke udføre operation"
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
+msgstr "I ukendt ting"
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr "I enheden"
+
+#: f/info-k.def:34
+msgid "In function"
+msgstr "I funktionen"
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr "I underrutinen"
+
+#: f/info-k.def:36
+msgid "In program"
+msgstr "I programmet"
+
+#: f/info-k.def:37
+msgid "In block-data unit"
+msgstr "I blokdataenheden"
+
+#: f/info-k.def:38
+msgid "In common block"
+msgstr "I den almene blok"
+
+#: f/info-k.def:39
+msgid "In construct"
+msgstr "I konstruktionen"
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr "I navnelisten"
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr "I et eller andet"
+
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
-msgstr ""
+msgstr "intern fejl i check-init: trækode ikke implementeret: %s"
+
+#: java/check-init.c:990
+#, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr "slutfeltet '%s' bliver måske ikke klargjort"
-#: java/class.c:543 java/class.c:568
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
-msgstr ""
+msgstr "intern fejl - for mange grænsefladetyper"
-#: java/class.c:702
+#: java/class.c:677
msgid "bad method signature"
-msgstr ""
+msgstr "ugyldig metodesignatur"
-#: java/class.c:747
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
-msgstr ""
+msgstr "forkert placeret ConstantValue-egenskab (ikke i noget felt)"
-#: java/class.c:749
+#: java/class.c:728
#, c-format
-msgid "duplicate ConstanValue atribute for field '%s'"
-msgstr ""
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr "mere end én ConstantValue-egenskab for feltet '%s'"
-#: java/class.c:995
+#: java/class.c:739
+#, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr "ConstantValue-egenskaben for feltet '%s' har forkert type"
+
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
-msgstr ""
+msgstr "feltet '%s' blev ikke fundet i klassen"
-#: java/class.c:1203
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
-msgstr ""
+msgstr "abstrakt metode i ikke-abstrakt klasse"
-#: java/class.c:1820
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
-msgstr ""
+msgstr "ikke-statisk metode '%s' overskriver statisk metode"
-#: java/decl.c:1475
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
-msgstr ""
+msgstr "I %s: overlappende variabel- og undtagelsesintervaller ved %d"
-#: java/decl.c:1563
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
-msgstr ""
+msgstr "ugyldig type i parameterfejlanalyseringsinfo"
-#: java/decl.c:1573
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
-msgstr ""
+msgstr "ugyldig PC-interval for fejlanalyseringsinfo for lokal '%s'"
-#: java/expr.c:553
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
-msgstr ""
+msgstr "stakunderløb - dup*-operation"
-#: java/expr.c:1444
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
-msgstr ""
+msgstr "reference '%s' er tvetydig: den optræder i grænsefladen '%s' og grænsefladen '%s'"
-#: java/expr.c:1473
-#, fuzzy, c-format
+#: java/expr.c:1563
+#, c-format
msgid "field `%s' not found"
-msgstr "Biblioteket lib%s ikke fundet"
+msgstr "feltet '%s' ikke fundet"
-#: java/expr.c:1624
-#, fuzzy
+#: java/expr.c:1715
msgid "ret instruction not implemented"
-msgstr "Profilgenerering understøttes ikke endnu."
+msgstr "ret-instruktion ikke implementeret"
-#: java/expr.c:1750
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
-msgstr ""
+msgstr "metoden '%s' ikke fundet i klassen"
-#: java/expr.c:1885
-#, fuzzy, c-format
+#: java/expr.c:2060
+#, c-format
msgid "failed to find class '%s'"
-msgstr "omimplementering af klassen '%s'"
+msgstr "kunne ikke finde klassen '%s'"
-#: java/expr.c:1897
+#: java/expr.c:2070
#, c-format
-msgid "Class '%s' has no method named '%s' matching signature '%s'"
-msgstr ""
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr "klassen '%s' har ingen metode ved navn '%s' der passer med signaturen '%s'"
-#: java/expr.c:1907
+#: java/expr.c:2080
msgid "invokestatic on non static method"
-msgstr ""
+msgstr "invokestatic på en ikke-statisk metode"
-#: java/expr.c:1912
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
-msgstr ""
+msgstr "invokestatic på en abstrakt metode"
-#: java/expr.c:1920
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
-msgstr ""
+msgstr "invoke[non-static] på en statisk metode"
-#: java/expr.c:2208
+#: java/expr.c:2396
#, c-format
-msgid "Missing field '%s' in '%s'"
-msgstr ""
+msgid "missing field '%s' in '%s'"
+msgstr "manglende felt '%s' i '%s'"
-#: java/expr.c:2214
+#: java/expr.c:2402
#, c-format
-msgid "Mismatching signature for field '%s' in '%s'"
-msgstr ""
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "signatur passer ikke med feltet '%s' i '%s'"
-#: java/expr.c:2253
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
-msgstr ""
+msgstr "tildeling til endeligt felt '%s' er ikke i feltets klasse"
-#: java/expr.c:2258
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
-msgstr ""
+msgstr "tildeling til endeligt statisk felt '%s' er ikke i klassens klargøring"
-#: java/expr.c:2265
-#, fuzzy, c-format
+#: java/expr.c:2437
+#, c-format
msgid "assignment to final field `%s' not in constructor"
-msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
+msgstr "tildeling til endeligt felt '%s' er ikke i konstruktionsfunktion"
-#: java/expr.c:2519
+#: java/expr.c:2684
#, c-format
-msgid "Can't expand %s"
-msgstr ""
+msgid "can't expand %s"
+msgstr "kan ikke udfolde %s"
-#: java/expr.c:2695
-#, fuzzy
+#: java/expr.c:2861
msgid "invalid PC in line number table"
-msgstr "ugyldigt versionsnummerformat"
+msgstr "ugyldig PC i linjetalstabel"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2740
+#: java/expr.c:2906
#, c-format
-msgid "Unreachable bytecode from %d to before %d."
-msgstr ""
+msgid "unreachable bytecode from %d to before %d"
+msgstr "kan ikke nå bytekode fra %d til før %d"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2777
+#: java/expr.c:2943
#, c-format
-msgid "Unreachable bytecode from %d to the end of the method."
-msgstr ""
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr "kan ikke nå bytekode fra %d til slutningen af metoden"
#. duplicate code from LOAD macro
-#: java/expr.c:3096
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
-msgstr ""
+msgstr "ukendt bred underinstruktion"
-#: java/jcf-io.c:416
+#: java/jcf-io.c:543
#, c-format
-msgid "Source file for class `%s' is newer than its matching class file. Source file used instead"
-msgstr ""
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+msgstr "kildekodefilen for klassen '%s' er nyere end dens tilsvarende klassefil; kildekodefilen '%s' benyttet i stedet"
-#: java/jcf-parse.c:375
-#, fuzzy
+#: java/jcf-parse.c:338
msgid "bad string constant"
-msgstr "%s før strengkonstant"
+msgstr "ugyldig strengkonstant"
-#: java/jcf-parse.c:431
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
-msgstr ""
+msgstr "ugyldig værdikonstanttype %d, indeks %d"
-#: java/jcf-parse.c:601
-#, fuzzy, c-format
+#: java/jcf-parse.c:528
+#, c-format
msgid "can't reopen %s"
-msgstr "fejl ved åbning af %s"
+msgstr "kan ikke genåbne %s"
-#: java/jcf-parse.c:663
-#, fuzzy, c-format
-msgid "Cannot find file for class %s."
-msgstr "Kan ikke finde interface-erklæringen af '%s'"
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr "kan ikke lukke %s"
+
+#: java/jcf-parse.c:619
+#, c-format
+msgid "cannot find file for class %s"
+msgstr "kan ikke finde filen for klassen %s"
-#: java/jcf-parse.c:675
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
-msgstr ""
+msgstr "ikke en gyldig Java .class-fil"
-#: java/jcf-parse.c:678
-#, fuzzy
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
-msgstr "%s før strengkonstant"
+msgstr "fejl ved tolkning af konstant område"
-#: java/jcf-parse.c:681
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
-msgstr ""
+msgstr "fejl i konstantområdelement nr. %d\n"
#. FIXME - where was first time
-#: java/jcf-parse.c:693
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
-msgstr ""
+msgstr "læser klassen %s for anden gang fra %s"
-#: java/jcf-parse.c:711
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
-msgstr ""
+msgstr "fejl ved tolkning af felter"
-#: java/jcf-parse.c:714
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
-msgstr ""
+msgstr "fejl ved tolkning af metoder"
-#: java/jcf-parse.c:717
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
-msgstr ""
+msgstr "fejl ved tolkning af endelige egenskaber"
-#: java/jcf-parse.c:731
+#: java/jcf-parse.c:687
#, c-format
-msgid "The `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrect set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath."
-msgstr ""
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+msgstr "det 'java.lang.Object' som blev fundet i '%s' havde ikke den specielle nullængdes egenskab 'gnu.gcj.gcj-compiled'. Dette betyder som regel at din klassesti er angivet forkert. Prøv 'info gcj \"Input Options\"' for at se en infoside der beskriver hvordan man angiver klassestien"
-#: java/jcf-parse.c:804
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
-msgstr ""
+msgstr "manglende Code-egenskab"
-#: java/jcf-parse.c:948 toplev.c:2511
-#, c-format
-msgid "error closing %s"
-msgstr ""
+#: java/jcf-parse.c:1014
+msgid "source file seen twice on command line and will be compiled only once"
+msgstr "kildekodefil angivet to gange i kommandolinjen og vil kun blive oversat én gang"
-#: java/jcf-parse.c:1029
-msgid "source file seen twice on command line and will be compiled only once."
-msgstr ""
-
-#: java/jcf-parse.c:1045
-#, fuzzy
+#: java/jcf-parse.c:1030
msgid "no input file specified"
-msgstr "Ingen inddatafiler"
+msgstr "ingen inddatafiler angivet"
-#: java/jcf-parse.c:1061
-#, fuzzy, c-format
+#: java/jcf-parse.c:1059
+#, c-format
msgid "can't close input file %s"
-msgstr "Ingen kald i filen %s\n"
-
-#: java/jcf-parse.c:1075
-#, fuzzy, c-format
-msgid "Premature end of input file %s"
-msgstr "%s ved slutning af inddata"
+msgstr "kan ikke lukke inddatafilen %s"
-#: java/jcf-parse.c:1098
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
-msgstr ""
+msgstr "ødelagt zip/jar-fil %s"
-#: java/jcf-write.c:2597
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
-msgstr ""
+msgstr "intern fejl i generate_bytecode_insn - trækode er ikke implementeret: %s"
-#: java/jcf-write.c:3307
-#, fuzzy, c-format
+#: java/jcf-write.c:2988
+msgid "field initializer type mismatch"
+msgstr "typen af startværdien for feltet passer ikke"
+
+#: java/jcf-write.c:3419
+#, c-format
msgid "can't create directory %s"
-msgstr "%s: kan ikke få fat i arbejdskataloget: %s\n"
+msgstr "kan ikke oprette kataloget %s"
-#: java/jcf-write.c:3334
-#, fuzzy, c-format
-msgid "can't to open %s"
-msgstr "fejl ved åbning af %s"
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr "kan ikke oprette %s"
-#: java/jv-scan.c:183
-msgid "Only one of `--print-main', `--list-class', and `--complexity' allowed"
-msgstr ""
+#: java/jv-scan.c:187
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr "kun én af '--print-main', '--list-class' og '--complexity' tilladt"
-#: java/jv-scan.c:186
-#, fuzzy, c-format
-msgid "Can't open output file `%s'"
-msgstr "Kunne ikke åbne uddatafilen %s.\n"
+#: java/jv-scan.c:190
+#, c-format
+msgid "can't open output file `%s'"
+msgstr "kan ikke åbne uddatafilen '%s'"
-#: java/jv-scan.c:222
-#, fuzzy, c-format
-msgid "File not found `%s'"
-msgstr "kan ikke finde '%s'"
+#: java/jv-scan.c:224
+#, c-format
+msgid "file not found `%s'"
+msgstr "filen '%s' blev ikke fundet"
-#: java/jvspec.c:360
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
-msgstr ""
+msgstr "kan ikke angive '-D' uden '--main'\n"
-#: java/jvspec.c:368
-msgid "Warning: already-compiled .class files ignored with -C"
-msgstr ""
+#: java/jvspec.c:429
+#, c-format
+msgid "`%s' is not a valid class name"
+msgstr "'%s' er et ugyldigt klassenavn"
-#: java/jvspec.c:375
-#, fuzzy
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr "--resource påkræver -o"
+
+#: java/jvspec.c:442
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr "advarsel: allerede oversatte .class-filer ignoreret med -C"
+
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
-msgstr "kan ikke bruge både -EB og -EL"
+msgstr "-C og -o er indbyrdes uforenelige"
-#: java/jvspec.c:387
-#, fuzzy
+#: java/jvspec.c:461
msgid "cannot create temporary file"
-msgstr "kan ikke oprette opbevaringsstedinformationsfilen '%s'"
+msgstr "kan ikke oprette midlertidig fil"
-#: java/jvspec.c:415
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
-msgstr ""
+msgstr "brug af @FILE med flere filer er ikke implementeret"
-#: java/jvspec.c:456
-#, fuzzy
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
-msgstr "kan ikke erklære '::main' som inline"
-
-#: java/lang-options.h:32
-msgid "Disable automatic array bounds checking"
-msgstr ""
-
-#: java/lang-options.h:34
-msgid "Make is_compiled_class return 1"
-msgstr ""
-
-#: java/lang-options.h:38
-msgid "Dump class files to <name>.class"
-msgstr ""
-
-#: java/lang-options.h:40
-msgid "input file is list of file names to compile"
-msgstr ""
-
-#: java/lang-options.h:42
-#, fuzzy
-msgid "Generate code for Boehm GC"
-msgstr "Generér kode til en given cpu"
-
-#: java/lang-options.h:44
-msgid "Don't put synchronization structure in each object"
-msgstr ""
-
-#: java/lang-options.h:46
-msgid "Assume native functions are implemented using JNI"
-msgstr ""
-
-#: java/lang-options.h:48
-msgid "Set class path and suppress system path"
-msgstr ""
-
-#: java/lang-options.h:50
-msgid "Set class path"
-msgstr ""
-
-#: java/lang-options.h:52
-msgid "Choose class whose main method should be used"
-msgstr ""
-
-#: java/lang-options.h:54
-msgid "Choose input encoding (default is UTF-8)"
-msgstr ""
-
-#: java/lang-options.h:56
-msgid "Add directory to class path"
-msgstr ""
-
-#: java/lang-options.h:58
-msgid "Directory where class files should be written"
-msgstr ""
+msgstr "kan ikke angive 'main'-klassen når der ikke sammenkædes"
-#: java/lang-options.h:61
-msgid "Use built-in instructions for division"
-msgstr ""
-
-#: java/lang-options.h:63
-msgid "Warn if modifiers are specified when not necessary"
-msgstr ""
-
-#: java/lang-options.h:65
-msgid "Warn if deprecated empty statements are found"
-msgstr ""
-
-#: java/lang-options.h:67
-msgid "Warn if .class files are out of date"
-msgstr ""
-
-#: java/lang-options.h:69
-msgid "Always check for non gcj generated classes archives"
-msgstr ""
-
-#: java/lang.c:387
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
-msgstr ""
+msgstr "kan ikke udføre afhængighedsfølgning med inddata fra standard-ind"
-#: java/lang.c:403
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
-msgstr ""
+msgstr "kunne ikke bestemme målnavn for afhængighedsfølgning"
-#: java/lex.c:297
+#: java/lex.c:303
#, c-format
msgid ""
"unknown encoding: `%s'\n"
"This might mean that your locale's encoding is not supported\n"
"by your system's iconv(3) implementation. If you aren't trying\n"
"to use a particular encoding for your input file, try the\n"
-"`--encoding=UTF-8' option."
+"`--encoding=UTF-8' option"
msgstr ""
+"ukendt kodning: '%s'\n"
+"Dette betyder muligvis at kodningen fra dine regionaldata ikke\n"
+"understøttes af dit systems iconv(3)-implementering. Hvis du \n"
+"ikke ønske at bruge en bestemt kodning for dine inddatafiler, \n"
+"så prøv tilvalget '--encoding=UTF-8'"
#: java/mangle.c:85
#, c-format
-msgid "Can't mangle %s"
-msgstr ""
+msgid "can't mangle %s"
+msgstr "kan ikke sammensætte %s"
-#: java/mangle_name.c:151 java/mangle_name.c:228
-#, fuzzy
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
-msgstr "intern fejl: "
+msgstr "intern fejl - ugyldigt UTF-8-navn"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr "Manglende term"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+msgid "';' expected"
+msgstr "';' forventet"
-#: java/parse.y:737 java/parse.y:775
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
msgid "Missing name"
-msgstr "manglende startværdi"
+msgstr "Manglende navn"
-#: java/parse.y:739 java/parse.y:777 java/parse.y:796 java/parse.y:977
-#: java/parse.y:1324 java/parse.y:1527 java/parse.y:1529 java/parse.y:1758
-#: java/parse.y:1784 java/parse.y:1795 java/parse.y:1806 java/parse.y:1818
-msgid "';' expected"
-msgstr ""
-
-#: java/parse.y:794
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
-msgstr ""
+msgstr "'*' forventet"
-#: java/parse.y:808
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
-msgstr "fundet en henvisningsefterfølgelse der går i ring"
+msgstr "Klasse- eller grænsefladeerklæring forventet"
-#: java/parse.y:843 java/parse.y:845
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
-msgstr ""
-
-#: java/parse.y:848 java/parse.y:852 java/parse.y:860 java/parse.y:1022
-#: java/parse.y:1270 java/parse.y:1272 java/parse.y:1593 java/parse.y:1829
-#: java/parse.y:1861 java/parse.y:1913
+msgstr "Manglende klassenavn"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
-msgstr ""
+msgstr "'{' forventet"
-#: java/parse.y:862
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
-msgstr "modstridende superklassenavn '%s'"
+msgstr "Manglende superklassenavn"
-#: java/parse.y:872 java/parse.y:888
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
-msgstr ""
+msgstr "Manglende grænsefladenavn"
-#. That's for ()
-#: java/parse.y:956 java/parse.y:1289 java/parse.y:1348 java/parse.y:1551
-#: java/parse.y:1773 java/parse.y:1782 java/parse.y:1793 java/parse.y:1804
-#: java/parse.y:1816 java/parse.y:1833 java/parse.y:1835 java/parse.y:1906
-#: java/parse.y:2077 java/parse.y:2138 java/parse.y:2292 java/parse.y:2294
-#: java/parse.y:2301 java/parse.y:2308 java/parse.y:2319 java/parse.y:2321
-#: java/parse.y:2358 java/parse.y:2360 java/parse.y:2362 java/parse.y:2383
-#: java/parse.y:2385 java/parse.y:2387 java/parse.y:2403 java/parse.y:2405
-#: java/parse.y:2426 java/parse.y:2428 java/parse.y:2430 java/parse.y:2458
-#: java/parse.y:2460 java/parse.y:2462 java/parse.y:2464 java/parse.y:2482
-#: java/parse.y:2484 java/parse.y:2495 java/parse.y:2506 java/parse.y:2517
-#: java/parse.y:2528 java/parse.y:2539 java/parse.y:2552 java/parse.y:2556
-#: java/parse.y:2558 java/parse.y:2571
-#, fuzzy
-msgid "Missing term"
-msgstr "manglende startværdi"
-
-#: java/parse.y:971
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
-msgstr "manglende startværdi"
+msgstr "Manglende variabelstartværdi"
-#: java/parse.y:988
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
msgid "Invalid declaration"
-msgstr "Ugyldig %%d-operand"
-
-#: java/parse.y:994
-#, fuzzy
-msgid "Can't specify array dimension in a declaration"
-msgstr "to typer angivet i én tom erklæring"
-
-#: java/parse.y:996 java/parse.y:1072 java/parse.y:2113 java/parse.y:2135
-#: java/parse.y:2139 java/parse.y:2174 java/parse.y:2251 java/parse.y:2261
+msgstr "Ugyldig erklæring"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
-msgstr ""
+msgstr "']' forventet"
-#: java/parse.y:1000
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
msgid "Unbalanced ']'"
-msgstr ""
+msgstr "Uafbalanceret ']'"
-#: java/parse.y:1036
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
-msgstr ""
+msgstr "Ugyldig metodeerklæring, metodenavn påkrævet"
-#: java/parse.y:1042 java/parse.y:1044 java/parse.y:1997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
-msgstr ""
+msgstr "Kaldenavn forventet"
-#: java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
-msgstr ""
-
-#: java/parse.y:1070 java/parse.y:1507 java/parse.y:1514 java/parse.y:1523
-#: java/parse.y:1525 java/parse.y:1553 java/parse.y:1661 java/parse.y:1942
-#: java/parse.y:1995
+msgstr "Ugyldig metodeerklæring, returtype påkrævet"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
-msgstr ""
+msgstr "')' forventet"
-#: java/parse.y:1086
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
msgid "Missing formal parameter term"
-msgstr ""
+msgstr "Manglende formel parameterterm"
-#: java/parse.y:1101 java/parse.y:1106
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
msgid "Missing identifier"
-msgstr "manglende startværdi"
+msgstr "Manglende kaldenavn"
-#: java/parse.y:1126 java/parse.y:1135
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
-msgstr ""
+msgstr "Manglende klassetypeterm"
-#: java/parse.y:1287
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
msgid "Invalid interface type"
-msgstr "ugyldig '#pragma interface'"
+msgstr "Ugyldig grænsefladetype"
-#: java/parse.y:1471 java/parse.y:1640 java/parse.y:1642
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
-msgstr ""
+msgstr "':' forventet"
-#: java/parse.y:1493 java/parse.y:1498 java/parse.y:1503
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
msgid "Invalid expression statement"
-msgstr "ugyldigt udtryk som operand"
-
-#: java/parse.y:1521 java/parse.y:1549 java/parse.y:1589 java/parse.y:1657
-#: java/parse.y:1725 java/parse.y:1831 java/parse.y:1899 java/parse.y:1989
-#: java/parse.y:1991 java/parse.y:1999 java/parse.y:2234 java/parse.y:2236
+msgstr "Ugyldig udtrykssætning"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
-msgstr ""
+msgstr "'(' forventet"
-#: java/parse.y:1591
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
-msgstr ""
+msgstr "Manglende term eller ')'"
-#: java/parse.y:1638
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
msgid "Missing or invalid constant expression"
-msgstr "tabel får tildelt en startværdi fra et tabeludtryk der ikke er konstant"
+msgstr "Manglende eller ugyldigt konstant udtryk"
-#: java/parse.y:1659
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
-msgstr "%s er kortere end forventet\n"
+msgstr "Manglende term eller ')' forventet"
-#: java/parse.y:1698
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
msgid "Invalid control expression"
-msgstr "ugyldigt sandhedsværdiudtryk"
+msgstr "Ugyldigt kontroludtryk"
-#: java/parse.y:1700 java/parse.y:1702
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
msgid "Invalid update expression"
-msgstr "ugyldigt sandhedsværdiudtryk"
+msgstr "Ugyldigt opdateringsudtryk"
-#: java/parse.y:1727
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
msgid "Invalid init statement"
-msgstr "ugyldig venstreværdi i asm-sætning"
+msgstr "Ugyldig klargøringssætning"
-#: java/parse.y:1902
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
-msgstr ""
+msgstr "Manglende term eller ')' forventet"
-#: java/parse.y:1944
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
-msgstr "%s er kortere end forventet\n"
+msgstr "'class' eller 'this' forventet"
-#: java/parse.y:1946 java/parse.y:1948
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
-msgstr ""
+msgstr "'class' forventet"
-#: java/parse.y:1993
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
-msgstr "%s er kortere end forventet\n"
+msgstr "')' eller term forventet"
-#: java/parse.y:2111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
-msgstr ""
+msgstr "'[' forventet"
-#: java/parse.y:2189
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
-msgstr ""
+msgstr "Felt forventet"
-#: java/parse.y:2246 java/parse.y:2256
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
-msgstr "%s er kortere end forventet\n"
+msgstr "Manglende term og ']' forventet"
-#: java/parse.y:2351
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
msgid "']' expected, invalid type expression"
-msgstr "ugyldigt sandhedsværdiudtryk"
+msgstr "']' forventet, ugyldigt typeudtryk"
-#: java/parse.y:2354
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
msgid "Invalid type expression"
-msgstr "ugyldigt sandhedsværdiudtryk"
+msgstr "Ugyldigt typeudtryk"
-#: java/parse.y:2466
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
msgid "Invalid reference type"
-msgstr "new kan ikke bruges på en referencetype"
+msgstr "Ugyldig referencetype"
-#: java/parse.y:2944
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
-msgstr ""
+msgstr "Konstruktionsfunktionskald skal være det første i en konstruktionsfunktion"
-#: java/parse.y:2946
-#, fuzzy
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
-msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
+msgstr "Kun konstruktionsfunktioner kan kalde konstruktionsfunktioner"
-#: java/parse.y:2955
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
-msgstr ""
+msgstr ": '%s' JDK1.1(TM)-facilitet"
-#: java/parse.y:3015 java/parse.y:3017
-#, fuzzy, c-format
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
+#, c-format
msgid ""
"%s.\n"
"%s"
-msgstr "%s: %s"
-
-#: java/parse.y:3480
-msgid "Can't use '$' as a separator for inner classes"
msgstr ""
+"%s.\n"
+"%s"
-#: java/parse.y:6577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
-msgstr ""
+msgstr "ugyldigt udformet .zip-arkiv i CLASSPATH: %s"
-#: java/parse.y:6648
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
-msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives."
-msgstr ""
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr "Kan ikke finde standardpakken '%s'. Kontrollér CLASSPATH-miljøvariablen og tilgangen til arkiverne"
-#: java/parse.y:11787
-#, fuzzy, c-format
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
+#, c-format
msgid "missing static field `%s'"
-msgstr "manglende mellemrum efter tallet '%s'"
+msgstr "manglende statisk felt '%s'"
-#: java/parse.y:11792
-#, fuzzy, c-format
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
+#, c-format
msgid "not a static field `%s'"
-msgstr "kunne ikke få fat i oplysninger om filen '%s'"
+msgstr "ikke et statisk felt '%s'"
-#: java/parse.y:11845
-#, fuzzy, c-format
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, c-format
msgid "No case for %s"
-msgstr "Ingen kald i filen %s\n"
+msgstr "Ingen case for %s"
-#: java/parse.y:13030
-#, fuzzy, c-format
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, c-format
msgid "unregistered operator %s"
-msgstr "ukendt tilvalg '-%s'"
-
-#: java/typeck.c:178
-#, fuzzy
-msgid "internal error - use of undefined type"
-msgstr "ugyldig brug af en type '%s %s' der ikke er defineret"
+msgstr "ikke-registreret operator %s"
-#: java/typeck.c:557
-#, fuzzy
+#: java/typeck.c:553
msgid "junk at end of signature string"
-msgstr "ragelse i slutningen af #%s"
+msgstr "ragelse i slutningen signaturstreng"
-#: java/verify.c:464
+#: java/verify.c:479
msgid "bad pc in exception_table"
-msgstr ""
+msgstr "ugyldig pc i exception_table"
-#: java/verify.c:1344
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr "undtagelseshåndtering inden i kode der bliver beskyttet"
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
-msgstr ""
+msgstr "ukendt kode %d@pc=%d under verifikation"
-#: java/verify.c:1414 java/verify.c:1427 java/verify.c:1431
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
-msgstr ""
+msgstr "verifikationsfejl ved PC=%d"
-#: objc/lang-options.h:27
-msgid "Dump decls to a .decl file"
-msgstr ""
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
+msgstr "Deaktivér automatisk tabelgrænsekontrollering"
-#: objc/lang-options.h:29
-#, fuzzy
-msgid "Generate code for GNU runtime environment"
-msgstr "Generér kode til en given cpu"
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
+msgstr "Deaktivér tildelingstjek for lagringer i objekttabeller"
-#: objc/lang-options.h:32
-#, fuzzy
-msgid "Generate code for NeXT runtime environment"
-msgstr "Generér kode til en given cpu"
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
+msgstr "Antag at indfødte funktioner er implementeret vha. JNI"
-#: objc/lang-options.h:35
-msgid "Warn if a selector has multiple methods"
-msgstr ""
+#: java/lang-options.h:38
+msgid "Replace system path"
+msgstr "Erstat systemsti"
-#: objc/lang-options.h:39
-msgid "Do not warn if inherited methods are unimplemented"
-msgstr ""
+#: java/lang-options.h:40
+msgid "Set class path"
+msgstr "Angiv klassesti"
-#: objc/lang-options.h:41
-msgid "Generate C header of platform specific features"
-msgstr ""
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)"
-#: objc/lang-options.h:43
-#, fuzzy
-msgid "Specify the name of the class for constant strings"
-msgstr "parameteren til 'asm' er ikke en konstant streng"
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
+msgstr "Vælg klasse hvis main-metode skal bruges"
-#: objc/objc-act.c:811
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr ""
+#: java/lang-options.h:46
+msgid "Choose input encoding (default comes from locale)"
+msgstr "Vælg inddatakodning (standardværdi kommer fra regionalindstillinger)"
+
+#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr "Tilføj katalog til klassesti"
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr "Katalog som klassefiler skrives i"
+
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "Advar hvis modifikationer angives når det ikke er nødvendigt"
-#: objc/objc-act.c:972
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
+msgstr "Advar hvis forældede tomme sætninger bliver fundet"
+
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr "Advar hvis .class-filer er forældede"
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr "Kontrollér altid for ikke-GCJ-genererede klassearkiver"
+
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
+msgstr "Optimér aldrig statiske klassers klargøringskode"
+
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
+msgstr "Benyt afsætstabeller til virtuelle metodekald"
+
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
-msgstr ""
+msgstr "objekt overholder ikke protokollen '%s'"
-#: objc/objc-act.c:1010
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
-msgstr ""
+msgstr "klassen '%s' implementerer ikke protokollen '%s'"
-#: objc/objc-act.c:1091
+#: objc/objc-act.c:914
#, c-format
msgid "`%s' cannot be statically allocated"
-msgstr ""
+msgstr "'%s' kan ikke allokeres statisk"
-#: objc/objc-act.c:1147
+#: objc/objc-act.c:963
#, c-format
-msgid "Unexpected type for `id' (%s)"
-msgstr ""
+msgid "unexpected type for `id' (%s)"
+msgstr "uventet type for 'id' (%s)"
-#: objc/objc-act.c:1152
-msgid "Undefined type `id', please import <objc/objc.h>"
-msgstr "Typen 'id' er ikke defineret, importér venligst <objc/objc.h>"
+#: objc/objc-act.c:968
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr "typen 'id' er ikke defineret, importér venligst <objc/objc.h>"
-#: objc/objc-act.c:1200 objc/objc-act.c:5359
+#: objc/objc-act.c:1019
#, c-format
-msgid "Cannot find protocol declaration for `%s'"
-msgstr "Kan ikke finde protokolerklæringen af '%s'"
+msgid "protocol `%s' has circular dependency"
+msgstr "protokollen '%s' har cirkulær afhængighed"
-#: objc/objc-act.c:1422 objc/objc-act.c:5879 objc/objc-act.c:6177
-#: objc/objc-act.c:6226 objc/objc-act.c:6262 objc/objc-parse.y:1371
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, c-format
-msgid "Cannot find interface declaration for `%s'"
-msgstr "Kan ikke finde interface-erklæringen af '%s'"
+msgid "cannot find protocol declaration for `%s'"
+msgstr "kan ikke finde protokolerklæringen af '%s'"
-#: objc/objc-act.c:2460
-#, fuzzy, c-format
-msgid "Cannot find class `%s'"
-msgstr "kan ikke finde '%s'"
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr "kan ikke finde grænsefladeerklæringen af '%s'"
-#: objc/objc-act.c:2462
-#, fuzzy, c-format
-msgid "Class `%s' already exists"
-msgstr "feltet '%s' er allerede blevet klargjort"
+#: objc/objc-act.c:1328
+#, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr "kan ikke finde referencemærket for klassen '%s'"
+
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr "opretter vælger for ikke-eksisterende metode '%s'"
+
+#: objc/objc-act.c:2364
+#, c-format
+msgid "cannot find class `%s'"
+msgstr "kan ikke finde klassen '%s'"
+
+#: objc/objc-act.c:2366
+#, c-format
+msgid "class `%s' already exists"
+msgstr "klassen '%s' eksisterer allerede"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2586
+#: objc/objc-act.c:2473
#, c-format
-msgid "Cannot find interface declaration for `%s', superclass of `%s'"
-msgstr "Kan ikke interface-erklæringen af '%s', superklasse til '%s'"
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr "kan ikke grænsefladeerklæringen af '%s', superklasse til '%s'"
-#: objc/objc-act.c:2593
+#: objc/objc-act.c:2480
#, c-format
-msgid "Circular inheritance in interface declaration for `%s'"
-msgstr "Cirkulær nedarvning i interface-erklæringen af '%s'"
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr "cirkulær nedarvning i interface-erklæringen af '%s'"
-#: objc/objc-act.c:3643 objc/objc-act.c:3660
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr "inkonsistent instansvariabelangivelse"
-#: objc/objc-act.c:4854
-#, fuzzy, c-format
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr "kan ikke benytte et objekt som parameter til en metode\n"
+
+#: objc/objc-act.c:4780
+#, c-format
msgid "multiple declarations for method `%s'"
-msgstr "mere end én erklæring af klassemetoden '%s'."
+msgstr "mere end én erklæring af metoden '%s'"
-#: objc/objc-act.c:4968
-#, fuzzy, c-format
+#: objc/objc-act.c:4946
+#, c-format
msgid "invalid receiver type `%s'"
-msgstr "ugyldig brug af en type '%s %s' der ikke er defineret"
+msgstr "ugyldig modtagertype '%s'"
-#: objc/objc-act.c:5036 objc/objc-act.c:5062 objc/objc-act.c:5110
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
-msgstr ""
+msgstr "'%s' svarer ikke på '%s'"
-#: objc/objc-act.c:5042 objc/objc-act.c:7283
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
-msgstr "der er ikke erklæret en superklasse i interface-erklæringen af '%s'"
+msgstr "ingen superklasse erklæret i grænsefladen for '%s'"
-#: objc/objc-act.c:5140
-msgid "cannot find class (factory) method."
-msgstr ""
+#: objc/objc-act.c:5081
+msgid "cannot find class (factory) method"
+msgstr "kan ikke finde klasse(fabriks)metode"
-#: objc/objc-act.c:5141 objc/objc-act.c:5185
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
-msgstr ""
+msgstr "returtypen for '%s' får standardværdien id"
-#: objc/objc-act.c:5158
-#, fuzzy, c-format
-msgid "method `%s' not implemented by protocol."
-msgstr "Profilgenerering understøttes ikke endnu."
+#: objc/objc-act.c:5099
+#, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr "metoden '%s' er ikke implementeret af protokollen"
-#: objc/objc-act.c:5167
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
-msgstr ""
+msgstr "returtype får standardværdien id"
-#: objc/objc-act.c:5184
-#, fuzzy
-msgid "cannot find method."
-msgstr "kan ikke finde 'nm'"
+#: objc/objc-act.c:5125
+msgid "cannot find method"
+msgstr "kan ikke finde metode"
+
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr "uerklæret vælger '%s'"
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
@@ -11925,2367 +20671,1392 @@ msgstr "kan ikke finde 'nm'"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5428
-#, fuzzy, c-format
+#: objc/objc-act.c:5443
+#, c-format
msgid "instance variable `%s' accessed in class method"
-msgstr "instansvariablen '%s' er erklæret '%s'"
+msgstr "instansvariablen '%s' tilgået i klassemetode"
-#: objc/objc-act.c:5680
+#: objc/objc-act.c:5678
#, c-format
-msgid "duplicate definition of class method `%s'."
-msgstr "mere end én definition af klassemetoden '%s'."
+msgid "duplicate definition of class method `%s'"
+msgstr "mere end én definition af klassemetoden '%s'"
-#: objc/objc-act.c:5686
+#: objc/objc-act.c:5684
#, c-format
-msgid "duplicate declaration of class method `%s'."
-msgstr "mere end én erklæring af klassemetoden '%s'."
+msgid "duplicate declaration of class method `%s'"
+msgstr "mere end én erklæring af klassemetoden '%s'"
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5720
#, c-format
-msgid "duplicate definition of instance method `%s'."
-msgstr "mere end én definition af instansmetoden '%s'."
+msgid "duplicate definition of instance method `%s'"
+msgstr "mere end én definition af instansmetoden '%s'"
-#: objc/objc-act.c:5728
+#: objc/objc-act.c:5726
#, c-format
-msgid "duplicate declaration of instance method `%s'."
-msgstr "mere end én erklæring af instansmetoden '%s'."
+msgid "duplicate declaration of instance method `%s'"
+msgstr "mere end én erklæring af instansmetoden '%s'"
-#: objc/objc-act.c:5768
-#, fuzzy, c-format
+#: objc/objc-act.c:5766
+#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
-msgstr "Kan ikke finde interface-erklæringen af '%s'"
+msgstr "mere end én grænsefladeerklæring af kategorien '%s(%s)'"
-#: objc/objc-act.c:5854
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr "instansvariablen '%s' er erklæret privat"
-#: objc/objc-act.c:5901
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr "instansvariablen '%s' er erklæret '%s'"
-#: objc/objc-act.c:5911
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
-msgstr ""
+msgstr "statisk tilgang til objekt af typen 'id'"
-#: objc/objc-act.c:5945 objc/objc-act.c:6039
-#, fuzzy, c-format
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
+#, c-format
msgid "incomplete implementation of class `%s'"
-msgstr "omimplementering af klassen '%s'"
+msgstr "ufuldstændig implementering af klassen '%s'"
-#: objc/objc-act.c:5949 objc/objc-act.c:6044
-#, fuzzy, c-format
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, c-format
msgid "incomplete implementation of category `%s'"
-msgstr "omimplementering af klassen '%s'"
+msgstr "ufuldstændig implementering af kategorien '%s'"
-#: objc/objc-act.c:5954 objc/objc-act.c:6049
-#, fuzzy, c-format
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, c-format
msgid "method definition for `%c%s' not found"
-msgstr "metodedefinitionen optræder ikke i en klassekontekst"
+msgstr "metodedefinitionen for '%c%s' ikke fundet"
-#: objc/objc-act.c:6090
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
-msgstr ""
+msgstr "%s '%s' implementerer ikke helt protokollen '%s'"
+
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+msgid "`@end' missing in implementation context"
+msgstr "'@end' mangler i implementationskontekst"
-#: objc/objc-act.c:6149
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr "omimplementering af klassen '%s'"
-#: objc/objc-act.c:6191
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr "modstridende superklassenavn '%s'"
-#: objc/objc-act.c:6206
-#, fuzzy, c-format
+#: objc/objc-act.c:6224
+#, c-format
msgid "duplicate interface declaration for class `%s'"
-msgstr "mere end én erklæring af klassemetoden '%s'."
+msgstr "mere end én grænsefladeerklæring af klassen '%s'"
-#: objc/objc-act.c:6449
-#, fuzzy, c-format
+#: objc/objc-act.c:6506
+#, c-format
msgid "duplicate declaration for protocol `%s'"
-msgstr "mere end én erklæring af klassemetoden '%s'."
+msgstr "mere end én erklæring af protokollen '%s'"
-#: objc/objc-act.c:7324
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr "[super ...] skal optræde i en metodekontekst"
-#: objc/objc-act.c:8287 objc/objc-act.c:8303
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
-msgstr ""
+msgstr "potentiel vælgerkonflikt for metoden '%s'"
-#: objc/objc-parse.y:2159
-#, fuzzy
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
-msgstr "[super ...] skal optræde i en metodekontekst"
+msgstr "'@end' skal optræde i en implementationskontekst"
-#: objc/objc-parse.y:2425 objc/objc-parse.y:2450
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr "metodedefinitionen optræder ikke i en klassekontekst"
-#: objc/objc-parse.y:3278
-#, fuzzy
-msgid "syntax error at '@' token"
-msgstr "syntaksfejl"
-
-#. If we didn't find this parameter, issue an error message.
-#: params.c:80
-#, fuzzy, c-format
-msgid "invalid parameter `%s'"
-msgstr "ugyldig catch-parameter"
-
-#: profile.c:490
-msgid "Arc profiling: some edge counts were bad."
-msgstr ""
-
-#: profile.c:931
-#, fuzzy, c-format
-msgid "file %s not found, execution counts assumed to be zero."
-msgstr "Antager at alle kørselstællere er nul.\n"
-
-#: protoize.c:601
-#, c-format
-msgid "%s: internal abort\n"
-msgstr "%s: intern afbrydelse\n"
-
-#: protoize.c:692
-#, c-format
-msgid "%s: error writing file `%s': %s\n"
-msgstr "%s: fejl ved skrivning til filen '%s': %s\n"
-
-#: protoize.c:737
-#, c-format
-msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
-msgstr "%s: brug '%s [ -VqfnkN ] [ -i <istreng> ] [ filenavn ... ]'\n"
-
-#: protoize.c:740
-#, c-format
-msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
-msgstr "%s: brug '%s [ -VqfnkNlgC ] [ -B <katalognavn> ] [ filnavn ... ]'\n"
-
-#: protoize.c:847
-#, c-format
-msgid "%s: warning: no read access for file `%s'\n"
-msgstr "%s: advarsel: ingen læseadgang til filen '%s'\n"
-
-#: protoize.c:855
-#, c-format
-msgid "%s: warning: no write access for file `%s'\n"
-msgstr "%s: advarsel: ingen skriveadgang til filen '%s'\n"
-
-#: protoize.c:863
-#, c-format
-msgid "%s: warning: no write access for dir containing `%s'\n"
-msgstr "%s: advarsel: ingen skriveadgang til kataloget der indeholder '%s'\n"
-
-#. Catch cases like /.. where we try to backup to a
-#. point above the absolute root of the logical file
-#. system.
-#: protoize.c:1281
-#, c-format
-msgid "%s: invalid file name: %s\n"
-msgstr "%s: ugyldigt filnavn: %s\n"
-
-#: protoize.c:1433
-#, c-format
-msgid "%s: %s: can't get status: %s\n"
-msgstr "%s: %s: kan ikke finde ud filens status: %s\n"
-
-#: protoize.c:1454
-#, c-format
-msgid "\n%s: fatal error: aux info file corrupted at line %d\n"
-msgstr "\n%s: fatal fejl: hjælpeinformationsfilen er beskadiget ved linje %d\n"
-
-#: protoize.c:1790
-#, c-format
-msgid "%s:%d: declaration of function `%s' takes different forms\n"
-msgstr "%s:%d: erklæringen af funktionen '%s' antager forskellige former\n"
-
-#: protoize.c:2048
-#, c-format
-msgid "%s: compiling `%s'\n"
-msgstr "%s: oversætter '%s'\n"
-
-#: protoize.c:2071
-#, c-format
-msgid "%s: wait: %s\n"
-msgstr "%s: vent: %s\n"
-
-#: protoize.c:2076
-#, c-format
-msgid "%s: subprocess got fatal signal %d\n"
-msgstr "%s: barneprocessen modtog fatalt signal %d\n"
-
-#: protoize.c:2084
-#, c-format
-msgid "%s: %s exited with status %d\n"
-msgstr "%s: %s afsluttede med status %d\n"
-
-#: protoize.c:2136
-#, c-format
-msgid "%s: warning: missing SYSCALLS file `%s'\n"
-msgstr "%s: advarsel: manglende SYSCALLS-fil '%s'\n"
-
-#: protoize.c:2145 protoize.c:2174
-#, c-format
-msgid "%s: can't read aux info file `%s': %s\n"
-msgstr "%s: kan ikke læse hjælpeinformationsfilen '%s': %s\n"
-
-#: protoize.c:2190 protoize.c:2218
-#, c-format
-msgid "%s: can't get status of aux info file `%s': %s\n"
-msgstr "%s: kan ikke finde status af hjælpeinformationsfilen '%s': %s\n"
-
-#: protoize.c:2246
-#, c-format
-msgid "%s: can't open aux info file `%s' for reading: %s\n"
-msgstr "%s: kan ikke åbne hjælpeinformationsfilen '%s' til at læse fra: %s\n"
-
-#: protoize.c:2264
-#, c-format
-msgid "%s: error reading aux info file `%s': %s\n"
-msgstr "%s: fejl ved læsning af hjælpeinformationsfilen '%s': %s\n"
-
-#: protoize.c:2277
-#, c-format
-msgid "%s: error closing aux info file `%s': %s\n"
-msgstr "%s: fejl ved lukning af hjælpeinformationsfilen '%s': %s\n"
-
-#: protoize.c:2293
-#, c-format
-msgid "%s: can't delete aux info file `%s': %s\n"
-msgstr "%s: kan ikke slette hjælpeinformationsfilen '%s': %s\n"
-
-#: protoize.c:2375 protoize.c:4377
-#, c-format
-msgid "%s: can't delete file `%s': %s\n"
-msgstr "%s: kan ikke slette filen '%s': %s\n"
-
-#: protoize.c:2454
-#, c-format
-msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
-msgstr "%s: advarsel: kan ikke omdøbe filen '%s' til '%s': %s\n"
-
-#: protoize.c:2579
-#, c-format
-msgid "%s: conflicting extern definitions of '%s'\n"
-msgstr "%s: modstridende eksterne definitioner af '%s'\n"
-
-#: protoize.c:2583
-#, c-format
-msgid "%s: declarations of '%s' will not be converted\n"
-msgstr "%s: erklæringer af '%s' vil ikke blive omdannet\n"
-
-#: protoize.c:2585
-#, c-format
-msgid "%s: conflict list for '%s' follows:\n"
-msgstr "%s: modstridene for '%s' følger:\n"
-
-#: protoize.c:2618
-#, c-format
-msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
-msgstr "%s: advarsel: bruger parameterlisten fra %s(%d) til funktionen '%s'\n"
-
-#: protoize.c:2658
-#, c-format
-msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
-msgstr "%s: %d: '%s' benyttet, men mangler i SYSCALLS\n"
-
-#: protoize.c:2664
-#, c-format
-msgid "%s: %d: warning: no extern definition for `%s'\n"
-msgstr "%s: %d: advarsel: ingen ekstern definition af '%s'\n"
-
-#: protoize.c:2695
-#, c-format
-msgid "%s: warning: no static definition for `%s' in file `%s'\n"
-msgstr "%s: advarsel: ingen statisk definition af '%s' i filen '%s'\n"
-
-#: protoize.c:2701
-#, c-format
-msgid "%s: multiple static defs of `%s' in file `%s'\n"
-msgstr "%s: flere statiske definitioner af '%s' i filen '%s'\n"
-
-#: protoize.c:2874 protoize.c:2877
-#, c-format
-msgid "%s: %d: warning: source too confusing\n"
-msgstr "%s: %d: advarsel: koden er for forvirrende\n"
-
-#: protoize.c:3083
-#, c-format
-msgid "%s: %d: warning: varargs function declaration not converted\n"
-msgstr "%s: %d: advarsel: funktionserklæring med variabel parameterliste er ikke omdannet\n"
-
-#: protoize.c:3098
-#, c-format
-msgid "%s: declaration of function `%s' not converted\n"
-msgstr "%s: erklæringen af funktionen '%s' er ikke omdannet\n"
-
-#: protoize.c:3221
-#, c-format
-msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
-msgstr "%s: advarsel: for mange parameterlister i erklæringen af '%s'\n"
-
-#: protoize.c:3242
-#, c-format
-msgid "\n%s: warning: too few parameter lists in declaration of `%s'\n"
-msgstr "\n%s: advarsel: for få parameterlister i erklæringen af '%s'\n"
-
-#: protoize.c:3340
-#, c-format
-msgid "%s: %d: warning: found `%s' but expected `%s'\n"
-msgstr "%s: %d: advarsel: fandt '%s', men forventede '%s'\n"
-
-#: protoize.c:3518
-#, c-format
-msgid "%s: local declaration for function `%s' not inserted\n"
-msgstr "%s: den lokale erklæring af funktionen '%s' er ikke indsat\n"
-
-#: protoize.c:3545
-#, c-format
-msgid "\n%s: %d: warning: can't add declaration of `%s' into macro call\n"
-msgstr "\n%s: %d: advarsel: kan ikke tilføje erklæringen af '%s' i makrokald\n"
-
-#: protoize.c:3619
-#, c-format
-msgid "%s: global declarations for file `%s' not inserted\n"
-msgstr "%s: globale erklæringer for filen '%s' er ikke indsat\n"
-
-#: protoize.c:3710 protoize.c:3740
-#, c-format
-msgid "%s: definition of function `%s' not converted\n"
-msgstr "%s: definitionen af funktionen '%s' er ikke omdannet\n"
-
-#: protoize.c:3729
-#, c-format
-msgid "%s: %d: warning: definition of %s not converted\n"
-msgstr "%s: %d: advarsel: definitionen af '%s' er ikke omdannet\n"
-
-#: protoize.c:4059
-#, c-format
-msgid "%s: found definition of `%s' at %s(%d)\n"
-msgstr "%s: fandt definitionen af '%s' ved %s(%d)\n"
-
-#. If we make it here, then we did not know about this
-#. function definition.
-#: protoize.c:4075
-#, c-format
-msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
-msgstr "%s: %d: advarsel: '%s' ekskluderet af forbehandlingen\n"
-
-#: protoize.c:4078
-#, c-format
-msgid "%s: function definition not converted\n"
-msgstr "%s: funktionsdefinitionen er ikke omdannet\n"
-
-#: protoize.c:4137
-#, c-format
-msgid "%s: `%s' not converted\n"
-msgstr "%s: '%s' ikke omdannet\n"
-
-#: protoize.c:4145
-#, c-format
-msgid "%s: would convert file `%s'\n"
-msgstr "%s: ville omdanne filen '%s'\n"
-
-#: protoize.c:4148
-#, c-format
-msgid "%s: converting file `%s'\n"
-msgstr "%s: omdanner filen '%s'\n"
-
-#: protoize.c:4158
-#, c-format
-msgid "%s: can't get status for file `%s': %s\n"
-msgstr "%s: kan ikke finde status af filen '%s': %s\n"
-
-#: protoize.c:4200
-#, c-format
-msgid "%s: can't open file `%s' for reading: %s\n"
-msgstr "%s: kan ikke åbne filen '%s' til at læse fra: %s\n"
-
-#: protoize.c:4215
-#, c-format
-msgid "\n%s: error reading input file `%s': %s\n"
-msgstr "\n%s: fejl ved læsning af inddatafilen '%s': %s\n"
-
-#: protoize.c:4249
-#, c-format
-msgid "%s: can't create/open clean file `%s': %s\n"
-msgstr "%s: kan ikke oprette/åbne oprydningsfilen '%s': %s\n"
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
+msgstr "Udskriv erklæringer i en .decl-fil"
-#: protoize.c:4354
-#, c-format
-msgid "%s: warning: file `%s' already saved in `%s'\n"
-msgstr "%s: advarsel: filen '%s' er allerede gemt i '%s'\n"
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
+msgstr "Generér kode til GNU-kørselmiljø"
-#: protoize.c:4362
-#, c-format
-msgid "%s: can't link file `%s' to `%s': %s\n"
-msgstr "%s: kan ikke kæde filen '%s' sammen med '%s': %s\n"
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
+msgstr "Generér kode til NeXT-kørselmiljø"
-#: protoize.c:4392
-#, c-format
-msgid "%s: can't create/open output file `%s': %s\n"
-msgstr "%s: kan ikke oprette/åbne uddatafilen '%s': %s\n"
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
+msgstr "Advar hvis en vælger har flere metoder"
-#: protoize.c:4425
-#, c-format
-msgid "%s: can't change mode of file `%s': %s\n"
-msgstr "%s: kan ikke ændre tilstanden af filen '%s': '%s'\n"
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr "Advar ikk hvis nedarvede metoder ikke implementeres"
-#: protoize.c:4611
-#, c-format
-msgid "%s: cannot get working directory: %s\n"
-msgstr "%s: kan ikke få fat i arbejdskataloget: %s\n"
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
+msgstr "Generér C-inkluderingsfil med platformspecifikke faciliteter"
-#: protoize.c:4709
-#, c-format
-msgid "%s: input file names must have .c suffixes: %s\n"
-msgstr "%s: inddatafilnavn skal have '.c'-endelser: %s\n"
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
+msgstr "Angiv navnet på klassen til konstante strenge"
-#: real.c:802 real.c:979
-#, fuzzy
-msgid "conversion from NaN to int"
-msgstr "konvertering til en ufuldstændig type"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr "(fejlretning) følg fortolkningsprocessen"
-#: real.c:825
-msgid "conversion from NaN to unsigned int"
-msgstr ""
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr "(fejlretning) følg lexikalsk analyse"
-#: real.c:2700
-msgid "floating point overflow"
-msgstr ""
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr " konfliktende kodegenereringstilvalg er benyttet"
-#: real.c:4340 real.c:6619 real.c:6700
-#, fuzzy
-msgid "overflow on truncation to integer"
-msgstr "for mange enum-værdier"
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr "shared og mdll er indbyrdes uforenelige"
-#: real.c:4412
-msgid "overflow on truncation to unsigned integer"
-msgstr ""
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-fjni og -femit-class-files er indbyrdes uforenelige"
-#: real.c:5760
-#, c-format
-msgid "%s: argument domain error"
-msgstr ""
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-fjni og -femit-class-file er indbyrdes uforenelige"
-#: real.c:5761
-#, c-format
-msgid "%s: function singularity"
-msgstr ""
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr "-femit-class-file skal bruges sammen med -fsyntax-only"
-#: real.c:5762
-#, c-format
-msgid "%s: overflow range error"
-msgstr ""
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
-#: real.c:5763
-#, c-format
-msgid "%s: underflow range error"
-msgstr ""
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr "-c eller -S kræves til Ada"
-#: real.c:5764
-#, c-format
-msgid "%s: total loss of precision"
-msgstr ""
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-current_version er kun tilladt med -dynamiclib"
-#: real.c:5765
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr ""
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-install_name er kun tilladt med -dynamiclib"
-#: real.c:5766
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr ""
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-bundle er ikke tilladt med -dynamiclib"
-#: reg-stack.c:655
-#, c-format
-msgid "Output constraint %d must specify a single register"
-msgstr ""
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-bundle_loader er ikke tilladt med -dynamiclib"
-#: reg-stack.c:675
-msgid "Output regs must be grouped at top of stack"
-msgstr ""
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-client_name er ikke tilladt med -dynamiclib"
-#: reg-stack.c:712
-msgid "Implicitly popped regs must be grouped at top of stack"
-msgstr ""
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr "-force_cpusubtype_ALL er ikke tilladt med -dynamiclib"
-#: reg-stack.c:731
-#, fuzzy, c-format
-msgid "Output operand %d must use `&' constraint"
-msgstr "uddataoperandbegrænsning mangler '='"
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-force_flat_namespace er ikke tilladt med -dynamiclib"
-#: regclass.c:703
-#, c-format
-msgid "can't use '%s' as a %s register"
-msgstr "kan ikke bruge '%s' som et %s-register"
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-keep_private_externs er ikke tilladt med -dynamiclib"
-#: regclass.c:725
-msgid "global register variable follows a function definition"
-msgstr "en global registervariabel følger en funktionsdefinition"
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-private_bundle er ikke tilladt med -dynamiclib"
-#: regclass.c:729
-#, fuzzy
-msgid "register used for two global register variables"
-msgstr "ugyldigt registernavn '%s' for registervariabel"
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "'-p' understøttes ikke; brug '-pg' og gprof(1)"
-#: regclass.c:734
-#, fuzzy
-msgid "call-clobbered register used for global register variable"
-msgstr "ugyldigt registernavn '%s' for registervariabel"
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr "-m32 og -m64 er indbyrdes uforenelige"
-#: reload.c:1198
-#, fuzzy
-msgid "cannot reload integer constant operand in `asm'"
-msgstr "mere end %d operander i 'asm'"
+#: config/arm/arm.h:178
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
+msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges på samme tid"
-#: reload.c:1220
-#, fuzzy
-msgid "impossible register constraint in `asm'"
-msgstr "muligvis den rigtige begyndelse af uafsluttet konstant"
+#: config/arm/arm.h:180
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr "-msoft-float og -mhard_float kan ikke bruges på samme tid"
-#: reload.c:3330
-#, fuzzy
-msgid "`&' constraint used with no register class"
-msgstr "'%%'-begrænsning brugt med sidste operand"
+#: config/arm/arm.h:182
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr "-mbig-endian og -mlittle-endian kan ikke bruges på samme tid"
-#: reload.c:3487 reload.c:3701
+#: config/i386/sco5.h:195
#, fuzzy
-msgid "inconsistent operand constraints in an `asm'"
-msgstr "inddataoperandbegrænsningen indeholder '%c'"
-
-#: reload1.c:1235
-msgid "frame size too large for reliable stack checking"
-msgstr ""
-
-#: reload1.c:1238
-msgid "try reducing the number of local variables"
-msgstr ""
-
-#: reload1.c:1893
-#, fuzzy, c-format
-msgid "Can't find a register in class `%s' while reloading `asm'."
-msgstr "Kan ikke finde et register at bortødsle i klassen '%s'"
-
-#: reload1.c:1897
-#, c-format
-msgid "Unable to find a register to spill in class `%s'."
-msgstr "Kan ikke finde et register at bortødsle i klassen '%s'"
+msgid "-pg not supported on this platform"
+msgstr "egenskaben '%s' er ikke understøttet på denne platform"
-#: reload1.c:3922
-msgid "`asm' operand requires impossible reload"
-msgstr ""
-
-#: reload1.c:5033
+#: config/i386/sco5.h:196
#, fuzzy
-msgid "`asm' operand constraint incompatible with operand size"
-msgstr "'%%'-begrænsning brugt med sidste operand"
+msgid "-p and -pp specified - pick one"
+msgstr "-I- er angivet to gange"
-#: reload1.c:6620
+#: config/i386/sco5.h:271
#, fuzzy
-msgid "output operand is constant in `asm'"
-msgstr "uddataoperandbegrænsning mangler '='"
-
-#: rtl.c:1289
-#, fuzzy, c-format
-msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
-msgstr "RTL-tjek: tilgang til udtrykstræ %d fra '%s' hvis sidste udtrykstræ er %d"
-
-#: rtl.c:1304
-#, fuzzy, c-format
-msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
-msgstr "RTL-tjek: forventede udtrykstræ %d type '%c', har '%c' (registeroverførselsudtryk %s)"
-
-#: rtl.c:1320
-#, fuzzy, c-format
-msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
-msgstr "RTL-tjek: forventede udtrykstræ %d type '%c' eller '%c', har '%c' (registeroverførselsudtryk %s)"
+msgid "-G and -static are mutually exclusive"
+msgstr "-pedantic og -traditional er indbyrdes uforenelige"
-#: rtl.c:1333
-#, fuzzy, c-format
-msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
-msgstr "RTL-tjek: forventede koden '%s', har '%s'"
-
-#: rtl.c:1347
-#, fuzzy, c-format
-msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
-msgstr "RTL-tjek: forventede koden '%s' eller '%s', har '%s'"
-
-#: rtl.c:1362
-#, fuzzy, c-format
-msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
-msgstr "RTL-tjek: tilgang til udtrykstræ %d af vektor hvis sidste udtrykstræ er %d"
-
-#: stmt.c:917
-#, c-format
-msgid "jump to `%s' invalidly jumps into binding contour"
-msgstr "spring til '%s' rammer på ugyldig vis ind i bindingskontur"
-
-#: stmt.c:1153 stmt.c:3641
-#, c-format
-msgid "label `%s' used before containing binding contour"
-msgstr ""
-
-#: stmt.c:1283 stmt.c:1357
-msgid "`asm' cannot be used in function where memory usage is checked"
-msgstr "'asm' kan ikke benyttes i funktioner hvor hukommelsesforbruget bliver tjekket"
-
-#: stmt.c:1343
-msgid "`asm' cannot be used with `-fcheck-memory-usage'"
-msgstr "'asm' kan ikke benyttes sammen med '-fcheck-memory-usage'"
-
-#: stmt.c:1372
-#, c-format
-msgid "unknown register name `%s' in `asm'"
-msgstr "ukendt registernavn '%s' i 'asm'"
-
-#: stmt.c:1387
-msgid "too many alternatives in `asm'"
-msgstr "for mange alternativer i 'asm'"
-
-#: stmt.c:1398
-msgid "operand constraints for `asm' differ in number of alternatives"
-msgstr "operandbegrænsninger til 'asm' har forskellige antal alternativer"
-
-#: stmt.c:1446
-msgid "output operand constraint lacks `='"
-msgstr "uddataoperandbegrænsning mangler '='"
-
-#: stmt.c:1465
-#, c-format
-msgid "output constraint `%c' for operand %d is not at the beginning"
-msgstr ""
-
-#: stmt.c:1472
-#, c-format
-msgid "output operand constraint %d contains `+'"
-msgstr "uddataoperandbegrænsning %d indeholder '+'"
-
-#: stmt.c:1481
-msgid "operand constraint contains '+' or '=' at illegal position."
-msgstr "operandbegrænsning indeholder '+' eller '=' på et ulovligt sted."
-
-#: stmt.c:1487 stmt.c:1664
-#, c-format
-msgid "`%%' constraint used with last operand"
-msgstr "'%%'-begrænsning brugt med sidste operand"
-
-#: stmt.c:1501
-msgid "matching constraint not valid in output operand"
-msgstr "begrænsningen er ikke gyldig for uddataoperanden"
-
-#: stmt.c:1527 stmt.c:1724
-#, c-format
-msgid "invalid punctuation `%c' in constraint"
-msgstr ""
-
-#: stmt.c:1571
-#, c-format
-msgid "output number %d not directly addressable"
-msgstr "uddata nr. %d kan ikke adresseres direkte"
-
-#: stmt.c:1599
-#, c-format
-msgid "more than %d operands in `asm'"
-msgstr "mere end %d operander i 'asm'"
-
-#: stmt.c:1637
-#, c-format
-msgid "hard register `%s' listed as input operand to `asm'"
-msgstr "hardware-register '%s' angivet som inddataoperand til 'asm'"
-
-#: stmt.c:1654
-#, c-format
-msgid "input operand constraint contains `%c'"
-msgstr "inddataoperandbegrænsningen indeholder '%c'"
-
-#: stmt.c:1691
-msgid "matching constraint references invalid operand number"
-msgstr "begrænsning refererer til et ugyldigt operandtal"
-
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1758 stmt.c:1786
-#, c-format
-msgid "asm operand %d probably doesn't match constraints"
-msgstr ""
-
-#: stmt.c:3578
-#, c-format
-msgid "unused variable `%s'"
-msgstr ""
-
-#: stmt.c:5026
-#, fuzzy, c-format
-msgid "enumeration value `%s' not handled in switch"
-msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
-
-#: stmt.c:5052 stmt.c:5072
-#, c-format
-msgid "case value `%ld' not in enumerated type"
-msgstr ""
-
-#: stmt.c:5055 stmt.c:5075
-#, c-format
-msgid "case value `%ld' not in enumerated type `%s'"
-msgstr ""
-
-#: stor-layout.c:140
-msgid "type size can't be explicitly evaluated"
-msgstr "det er ikke muligt eksplicit at finde typens størrelse"
-
-#: stor-layout.c:142
-msgid "variable-size type declared outside of any function"
-msgstr "en type med en variabel størrelse er erklæret uden for en funktion"
-
-#: stor-layout.c:415
-#, fuzzy, c-format
-msgid "size of `%s' is %d bytes"
-msgstr "størrelsen af tabel '%s' er negativ"
-
-#: stor-layout.c:417
-#, fuzzy, c-format
-msgid "size of `%s' is larger than %d bytes"
-msgstr "størrelsen af tabel '%s' er for stor"
-
-#: stor-layout.c:771 stor-layout.c:1023
-#, c-format
-msgid "packed attribute causes inefficient alignment for `%s'"
-msgstr ""
-
-#: stor-layout.c:773 stor-layout.c:1025
-#, c-format
-msgid "packed attribute is unnecessary for `%s'"
-msgstr ""
-
-#: stor-layout.c:788
-#, c-format
-msgid "padding struct to align `%s'"
-msgstr ""
-
-#: stor-layout.c:987
-msgid "padding struct size to alignment boundary"
-msgstr ""
-
-#: stor-layout.c:1030
-msgid "packed attribute causes inefficient alignment"
-msgstr ""
-
-#: stor-layout.c:1032
-msgid "packed attribute is unnecessary"
-msgstr ""
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr "GNU C understøtter ikke -C uden -E"
-#: stringpool.c:307
-#, c-format
-msgid "\"%s\" and \"%s\" identical in first %d characters"
-msgstr ""
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C understøtter ikke -CC uden -E"
-#: timevar.c:428
-msgid "\nExecution times (seconds)\n"
-msgstr ""
-
-#. Print total time.
-#: timevar.c:476
-#, fuzzy
-msgid " TOTAL :"
-msgstr ""
-",\n"
-" af %s:%u"
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr "vælg enten stor- eller lilleendet, ikke begge"
-#: timevar.c:515
-#, c-format
-msgid "time in %s: %ld.%06ld (%ld%%)\n"
-msgstr ""
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
+msgstr "vælg enten m340 eller m210, ikke begge"
-#: tlink.c:428
-#, fuzzy, c-format
-msgid "collect: reading %s\n"
-msgstr "collect2 version %s"
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr "m210 har ikke understøttelse for lilleendet"
-#: tlink.c:529
-#, fuzzy, c-format
-msgid "collect: recompiling %s\n"
-msgstr "%s: oversætter '%s'\n"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige"
-#: tlink.c:694
-#, fuzzy, c-format
-msgid "collect: tweaking %s in %s\n"
-msgstr "collect2 version %s"
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "Tilvalget -shared understøttes i øjeblikket ikke for VAX ELF."
-#: tlink.c:741
-msgid "collect: relinking\n"
-msgstr ""
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg eller -p og -fomit-frame-pointer er indbyrdes uforenelige"
-#: tlink.c:750
-#, fuzzy, c-format
-msgid "ld returned %d exit status"
-msgstr "%s returnerede afslutningskoden %d"
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "-E påkrævet når inddata kommer fra standardind"
-#: toplev.c:913
-msgid "Generate debugging info in default format"
-msgstr ""
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr "oversættelse af inkluderingsfil udbedt"
-#: toplev.c:914
-msgid "Generate debugging info in default extended format"
-msgstr ""
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "profilgenerering understøttes ikke med -mg\n"
-#: toplev.c:916
-msgid "Generate STABS format debug info"
-msgstr ""
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe understøttes ikke"
-#: toplev.c:917
-msgid "Generate extended STABS format debug info"
-msgstr ""
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "kan ikke bruge både -EB og -EL"
-#: toplev.c:920
-msgid "Generate DWARF-1 format debug info"
-msgstr ""
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr "-mhard-float understøttes ikke"
-#: toplev.c:922
-msgid "Generate extended DWARF-1 format debug info"
-msgstr ""
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige"
-#: toplev.c:925
-msgid "Generate DWARF-2 debug info"
-msgstr ""
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s for operatoren '%T ? %T : %T'"
-#: toplev.c:928
-msgid "Generate XCOFF format debug info"
-msgstr ""
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s for operatoren '%T [%T]'"
-#: toplev.c:929
-msgid "Generate extended XCOFF format debug info"
-msgstr ""
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s for operatoren '%T %s %T'"
-#: toplev.c:932
-msgid "Generate COFF format debug info"
-msgstr ""
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s for operatoren '%s %T'"
-#: toplev.c:976
-#, fuzzy
-msgid "Do not store floats in registers"
-msgstr "Returnér ikke værdier fra funktioner i fpu-registre"
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "skabelonsparametre med reelle værdi ved krydsoversættelse"
-#: toplev.c:978
-msgid "Consider all mem refs through pointers as volatile"
-msgstr ""
+#~ msgid "due to a defect in the G++ 3.2 ABI, G++ has assigned the same mangled name to two different types"
+#~ msgstr "pga. en fejl i G++ 3.2-ABI'en har G++ tildelt det samme sammensatte navn til det to forskellige typer"
-#: toplev.c:980
-msgid "Consider all mem refs to global data to be volatile"
-msgstr ""
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static er ikke gyldig sammen med -mcoff"
-#: toplev.c:982
-msgid "Consider all mem refs to static data to be volatile"
-msgstr ""
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared er ikke gyldig sammen med -mcoff"
-#: toplev.c:984
-msgid "Defer popping functions args from stack until later"
-msgstr ""
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic er ikke gyldig sammen med -mcoff"
-#: toplev.c:986
-msgid "When possible do not generate stack frames"
-msgstr ""
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic er ikke gyldig sammen med -mcoff"
-#: toplev.c:988
-msgid "Optimize sibling and tail recursive calls"
-msgstr ""
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff"
-#: toplev.c:990
-msgid "When running CSE, follow jumps to their targets"
-msgstr ""
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic er ikke gyldig sammen med -mcoff"
-#: toplev.c:992
-msgid "When running CSE, follow conditional jumps"
-msgstr ""
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff"
-#: toplev.c:994
-msgid "Perform a number of minor, expensive optimisations"
-msgstr ""
+#~ msgid "__alignof__ applied to an incomplete type"
+#~ msgstr "__alignof__ benyttet på en ufuldstændig type"
-#: toplev.c:996
-msgid "Perform jump threading optimisations"
-msgstr ""
+#~ msgid "-traditional is deprecated and may be removed"
+#~ msgstr "-traditional er forældet og kan blive fjernet"
-#: toplev.c:998
-msgid "Perform strength reduction optimisations"
-msgstr ""
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "ukendt C-standard '%s'"
-#: toplev.c:1000
-msgid "Perform loop unrolling when iteration count is known"
-msgstr ""
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "typen af den eksterne '%s' er ikke global"
-#: toplev.c:1002
-msgid "Perform loop unrolling for all loops"
-msgstr ""
+#~ msgid "typedef `%s' is initialized"
+#~ msgstr "typedef '%s' bliver tildelt en startværdi"
-#: toplev.c:1004
-msgid "Force all loop invariant computations out of loops"
-msgstr ""
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "unavngivne felter af andre typer end struct eller union er ikke tilladt"
-#: toplev.c:1006
-msgid "Strength reduce all loop general induction variables"
-msgstr ""
+#~ msgid "null format string"
+#~ msgstr "formateringsstreng er nul"
-#: toplev.c:1008
-msgid "Store strings in writable data section"
-msgstr ""
+#~ msgid "ignoring #pragma %s"
+#~ msgstr "ignorerer #pragma: %s"
-#: toplev.c:1010
-msgid "Enable machine specific peephole optimisations"
-msgstr ""
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "både 'f'- og 'l'-endelser i kommatalskonstant"
-#: toplev.c:1012
-msgid "Copy memory operands into registers before using"
-msgstr ""
+#~ msgid "floating point number exceeds range of '%s'"
+#~ msgstr "kommatal overskrider intervallet for '%s"
-#: toplev.c:1014
-msgid "Copy memory address constants into regs before using"
-msgstr ""
+#~ msgid "decimal point in exponent - impossible!"
+#~ msgstr "decimalkomma i eksponent - umuligt!"
-#: toplev.c:1016
-msgid "Allow function addresses to be held in registers"
-msgstr ""
+#~ msgid "underscore in number"
+#~ msgstr "understreg i tal"
-#: toplev.c:1018
-msgid "Integrate simple functions into their callers"
-msgstr ""
+#~ msgid "numeric constant with no digits"
+#~ msgstr "talkonstant uden cifre"
-#: toplev.c:1020
-msgid "Generate code for funcs even if they are fully inlined"
-msgstr ""
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "talkonstant indeholder cifre der ligger ud over grundtallet"
-#: toplev.c:1022
-msgid "Pay attention to the 'inline' keyword"
-msgstr ""
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "kommatalskonstant må ikke skrives med grundtal 16"
-#: toplev.c:1024
-msgid "Emit static const variables even if they are not used"
-msgstr ""
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "mere end én 'f'-endelse i kommatalskonstant"
-#: toplev.c:1026
-msgid "Check for syntax errors, then stop"
-msgstr ""
+#~ msgid "traditional C rejects the 'f' suffix"
+#~ msgstr "traditionel C tillader ikke endelsen 'f'"
-#: toplev.c:1028
-msgid "Mark data as shared rather than private"
-msgstr ""
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "mere end én 'l'-endelse i kommatalskonstant"
-#: toplev.c:1030
-msgid "Enable saving registers around function calls"
-msgstr ""
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "traditionel C tillader ikke endelsen 'l'"
-#: toplev.c:1032
-msgid "Return 'short' aggregates in memory, not registers"
-msgstr ""
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "mere end én 'i'- eller 'j'-endelse i kommatalskonstant"
-#: toplev.c:1034
-#, fuzzy
-msgid "Return 'short' aggregates in registers"
-msgstr "Returnér værdier fra funktioner i fpu-registre"
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C forbyder imaginære talkonstanter"
-#: toplev.c:1036
-msgid "Attempt to fill delay slots of branch instructions"
-msgstr ""
+#~ msgid "floating constant out of range"
+#~ msgstr "kommatalskonstant er uden for det gyldige interval"
-#: toplev.c:1038
-msgid "Perform the global common subexpression elimination"
-msgstr ""
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "kommatal overskrider intervallet for 'double'"
-#: toplev.c:1040
-msgid "Run CSE pass after loop optimisations"
-msgstr ""
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "to 'u'-endelser i heltalskonstant"
-#: toplev.c:1042
-msgid "Run the loop optimiser twice"
-msgstr ""
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "traditionel C tillader ikke 'u'-endelsen"
-#: toplev.c:1044
-msgid "Delete useless null pointer checks"
-msgstr ""
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "tre 'l'-endelser i heltalskonstant"
-#: toplev.c:1046
-msgid "Pretend that host and target use the same FP format"
-msgstr ""
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul' er ikke en gyldig heltalsendelse"
-#: toplev.c:1048
-msgid "Reschedule instructions before register allocation"
-msgstr ""
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "'Ll' og 'lL' er ikke gyldige heltalsendelser"
-#: toplev.c:1050
-msgid "Reschedule instructions after register allocation"
-msgstr ""
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "mere end én 'i'- eller 'j'-endelse i heltalskonstant"
-#: toplev.c:1052
-msgid "Enable scheduling across basic blocks"
-msgstr ""
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "ugyldig endelse i heltalskonstant"
-#: toplev.c:1054
-msgid "Allow speculative motion of non-loads"
-msgstr ""
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "heltalskonstant er for stor til denne konfiguration af oversætteren - afkortet til %d bit"
-#: toplev.c:1056
-msgid "Allow speculative motion of some loads"
-msgstr ""
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "bredden af heltalskonstant skifter med -traditional"
-#: toplev.c:1058
-msgid "Allow speculative motion of more loads"
-msgstr ""
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "heltalskonstant er unsigned i ISO C, signed med -traditional"
-#: toplev.c:1060
-msgid "Replace add,compare,branch with branch on count reg"
-msgstr ""
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "bredden af heltalskonstant kan skifte på andre systemer med -traditional"
-#: toplev.c:1062
-msgid "Generate position independent code, if possible"
-msgstr ""
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "heltalskonstant er større end den maksimale værdi for %s"
-#: toplev.c:1065
-msgid "Enable exception handling"
-msgstr ""
+#~ msgid "an unsigned long long int"
+#~ msgstr "en unsigned long long int"
-#: toplev.c:1067
-msgid "Just generate unwind tables for exception handling"
-msgstr ""
+#~ msgid "a long long int"
+#~ msgstr "en long long int"
-#: toplev.c:1069
-msgid "Support synchronous non-call exceptions"
-msgstr ""
+#~ msgid "an unsigned long int"
+#~ msgstr "en unsigned long int"
-#: toplev.c:1071
-msgid "Insert arc based program profiling code"
-msgstr ""
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "decimalkonstant er så stor at den er unsigned"
-#: toplev.c:1073
-msgid "Create data files needed by gcov"
-msgstr ""
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "kompleks heltalskonstant er for bred til 'complex int'"
-#: toplev.c:1075
-msgid "Use profiling information for branch probabilities"
-msgstr ""
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "heltalskonstant er større end den maksimale værdi for dens type"
-#: toplev.c:1077
-msgid "Reorder basic blocks to improve code placement"
-msgstr ""
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "manglende mellemrum efter tallet '%.*s'"
-#: toplev.c:1079
-msgid "Do the register renaming optimization pass"
-msgstr ""
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C tillader ikke brug af 'varargs.h'"
-#: toplev.c:1081
-msgid "Improve FP speed by violating ANSI & IEEE rules"
-msgstr ""
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "lagringsklasseanvisning i tabelerklæring"
-#: toplev.c:1083
-msgid "Do not put unitialised globals in the common section"
-msgstr ""
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof benyttet på en funktionstype"
-#: toplev.c:1085
-#, fuzzy
-msgid "Do not generate .size directives"
-msgstr "Generér ikke sin, cos, sqrt til fpu"
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof benyttet på en void-type"
-#: toplev.c:1087
-#, fuzzy
-msgid "place each function into its own section"
-msgstr "per funktion)"
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof benyttet på en ufuldstændig type"
-#: toplev.c:1089
-msgid "place data items into their own section"
-msgstr ""
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "variabelafsæt bliver viderebragt delvis i stak og i register"
-#: toplev.c:1091
-msgid "Add extra commentry to assembler output"
-msgstr ""
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "variabelstørrelse bliver viderebragt delvis i stak og i register"
-#: toplev.c:1093
-msgid "Output GNU ld formatted global initialisers"
-msgstr ""
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
-#: toplev.c:1095
-msgid "Enables a register move optimisation"
-msgstr ""
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "kommatal er ikke tilladt i #if"
-#: toplev.c:1097
-msgid "Do the full regmove optimization pass"
-msgstr ""
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "traditionel C forbyder 'U'-endelsen"
-#: toplev.c:1099
-msgid "Pack structure members together without holes"
-msgstr ""
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "for mange 'l'-endelser i heltalskonstant"
-#: toplev.c:1101
-msgid "Insert stack checking code into the program"
-msgstr ""
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "heltalskonstanten indeholder cifre der er større end grundtallet"
-#: toplev.c:1103
-msgid "Specify that arguments may alias each other & globals"
-msgstr ""
+#~ msgid "integer constant out of range"
+#~ msgstr "heltalskonstanten er uden for det gyldige interval"
-#: toplev.c:1105
-msgid "Assume arguments may alias globals but not each other"
-msgstr ""
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "strengkonstanter er ikke tilladt i #if"
-#: toplev.c:1107
-msgid "Assume arguments do not alias each other or globals"
-msgstr ""
+#~ msgid "missing binary operator"
+#~ msgstr "manglende binær operator"
-#: toplev.c:1109
-msgid "Assume strict aliasing rules apply"
-msgstr ""
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operatoren '%s' har ikke nogen venstre operand"
-#: toplev.c:1111
-msgid "Align the start of loops"
-msgstr ""
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "skifter søgeorden for systemkataloget \"%s\""
-#: toplev.c:1113
-msgid "Align labels which are only reached by jumping"
-msgstr ""
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " da det er det samme som ikke-system-kataloget \"%s\""
-#: toplev.c:1115
-msgid "Align all labels"
-msgstr ""
+#~ msgid " as it has already been specified as a non-system directory"
+#~ msgstr " da det allerede er blevet angivet som et ikke-system-katalog"
-#: toplev.c:1117
-#, fuzzy
-msgid "Align the start of functions"
-msgstr "underforstået erklæring af funktionen '%s'"
+#~ msgid "I/O error on output"
+#~ msgstr "I/O-fejl på uddata"
-#: toplev.c:1119
-msgid "Generate code to check every memory access"
-msgstr ""
+#~ msgid "argument missing after %s"
+#~ msgstr "en parameter mangler efter %s"
-#: toplev.c:1121
-msgid "Add a prefix to all function names"
-msgstr ""
+#~ msgid "number missing after %s"
+#~ msgstr "et tal mangler efter %s"
-#: toplev.c:1123
-msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
-msgstr ""
+#~ msgid "target missing after %s"
+#~ msgstr "et mål mangler efter %s"
-#: toplev.c:1125
-msgid "Instrument function entry/exit with profiling calls"
-msgstr ""
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
-#: toplev.c:1127
-msgid "Enable SSA optimizations"
-msgstr ""
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic Fremkom med alle advarsler påkrævet for nøje ISO C\n"
+#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
+#~ " -traditional Iagttag opførsel som en K&R-præprocessor\n"
+#~ " -trigraphs Understøt ANSI C-trigrafer\n"
+#~ " -lang-c Antag at inddata er C\n"
+#~ " -lang-c89 Antag at inddata er C89\n"
-#: toplev.c:1129
-msgid "Enable dead code elimination"
-msgstr ""
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Antag at inddata er C++\n"
+#~ " -lang-cobjc Antag at inddata er Objective C\n"
+#~ " -lang-cobjc++ Antag at inddata er Objective C++\n"
+#~ " -lang-asm Antag at inddata er maskinkode\n"
-#: toplev.c:1131
-msgid "External symbols have a leading underscore"
-msgstr ""
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "muligvis begyndelsen af uafsluttet strengkonstant"
-#: toplev.c:1133
-#, fuzzy
-msgid "Process #ident directives"
-msgstr "%s i forbehandlerdirektiv"
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "flerlinjers strengkonstanter er forældede"
-#: toplev.c:1135
-msgid "Enables an rtl peephole pass run before sched2"
-msgstr ""
+#~ msgid "the meaning of '\\%c' varies with -traditional"
+#~ msgstr "betydningen af '\\%c' skifter med -traditional"
-#: toplev.c:1137
-msgid "Enables guessing of branch probabilities"
-msgstr ""
+#~ msgid "the meaning of '\\a' varies with -traditional"
+#~ msgstr "betydningen af '\\a' skifter med -traditional"
-#: toplev.c:1139
-msgid "Set errno after built-in math functions"
-msgstr ""
+#~ msgid "the meaning of '\\x' varies with -traditional"
+#~ msgstr "betydningen af '\\x' skifter med -traditional"
-#: toplev.c:1141
-#, fuzzy
-msgid "Convert floating point constant to single precision constant"
-msgstr "kommatalsfælde udsender en konstant"
+#~ msgid "escape sequence out of range for character"
+#~ msgstr "undvigesekvens er uden for det gyldig interval for tegn"
-#: toplev.c:1143
-msgid "Report time taken by each compiler pass at end of run"
-msgstr ""
+#~ msgid "\"%s\" cannot be used as a macro name"
+#~ msgstr "\"%s\" kan ikke bruges som et makronavn"
-#: toplev.c:1145
-msgid "Report on permanent memory allocation at end of run"
-msgstr ""
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "direktiver må ikke optræde inden i en makroparameter"
-#: toplev.c:1147
-msgid "Trap for signed overflow in addition / subtraction / multiplication."
-msgstr ""
+#~ msgid "invalid option %s"
+#~ msgstr "ugyldigt tilvalg %s"
-#: toplev.c:1164
-msgid "Compile just for ISO C89"
-msgstr ""
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: advarsel: "
-#: toplev.c:1166
-msgid "Do not promote floats to double if using -traditional"
-msgstr ""
+#~ msgid "%s: warning: "
+#~ msgstr "%s: advarsel: "
-#: toplev.c:1168
-msgid "Determine language standard"
-msgstr ""
+#~ msgid "sorry, not implemented: "
+#~ msgstr "desværre, ikke implementeret: "
-#: toplev.c:1172
-msgid "Make bitfields by unsigned by default"
-msgstr ""
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Intern oversætterfejl i %s ved %s:%d."
-#: toplev.c:1176
-msgid "Make 'char' be signed by default"
-msgstr ""
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2002 Free Software Foundation, Inc.\n"
-#: toplev.c:1178
-msgid "Make 'char' be unsigned by default"
-msgstr ""
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "der mangler en parameter til '-b'"
-#: toplev.c:1184
-msgid "Attempt to support traditional K&R style C"
-msgstr ""
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "der mangler en parameter til '-V'"
-#: toplev.c:1190
-msgid "Do not recognise the 'asm' keyword"
-msgstr ""
+#~ msgid "invalid version number format"
+#~ msgstr "ugyldigt versionsnummerformat"
-#: toplev.c:1193
-msgid "Do not recognise any built in functions"
-msgstr ""
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr "indholdet af .da-filen er udtømt for tidligt\n"
-#: toplev.c:1195
-msgid "Assume normal C execution environment"
-msgstr ""
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "indholdet af .da-filen ikke udtømt\n"
-#: toplev.c:1198
-msgid "Assume that standard libraries & main might not exist"
-msgstr ""
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% af %d kildekodelinjer udført i funktionen %s\n"
-#: toplev.c:1201
-msgid "Allow different types as args of ? operator"
-msgstr ""
+#~ msgid "No executable source lines in function %s\n"
+#~ msgstr "Ingen kørbare kildelinjer i funktionen %s\n"
-#: toplev.c:1204
-msgid "Allow the use of $ inside identifiers"
-msgstr ""
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udført i funktionen %s\n"
-#: toplev.c:1209
-msgid "Use the same size for double as for float"
-msgstr ""
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger valgt mindst én gang i funktionen %s\n"
-#: toplev.c:1212
-msgid "Use the smallest fitting integer to hold enums"
-msgstr ""
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Ingen forgreninger i funktionen %s\n"
-#: toplev.c:1215
-msgid "Override the underlying type for wchar_t to `unsigned short'"
-msgstr ""
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%% af %d kald udført i funktionen %s\n"
-#: toplev.c:1219
-msgid "Enable most warning messages"
-msgstr ""
+#~ msgid "No calls in function %s\n"
+#~ msgstr "Ingen kald i funktionen %s\n"
-#: toplev.c:1221
-msgid "Warn about casting functions to incompatible types"
-msgstr ""
+#~ msgid "%6.2f%% of %d source lines executed in file %s\n"
+#~ msgstr "%6.2f%% af %d kildekodelinjer udført i filen %s\n"
-#: toplev.c:1225
-msgid "Warn about functions which might be candidates for format attributes"
-msgstr ""
+#~ msgid "%6.2f%% of %d branches executed in file %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udført i filen %s\n"
-#: toplev.c:1228
-msgid "Warn about casts which discard qualifiers"
-msgstr ""
+#~ msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger valgt mindst én gang i filen %s\n"
-#: toplev.c:1231
-msgid "Warn about subscripts whose type is 'char'"
-msgstr ""
+#~ msgid "%6.2f%% of %d calls executed in file %s\n"
+#~ msgstr "%6.2f%% af %d kald udført i filen %s\n"
-#: toplev.c:1234 toplev.c:1237
-msgid "Warn if nested comments are detected"
-msgstr ""
+#~ msgid "call %d returns = %s\n"
+#~ msgstr "kald %d returnerer = %s\n"
-#: toplev.c:1240
-msgid "Warn about possibly confusing type conversions"
-msgstr ""
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "kald %d returnerer = %s%%\n"
-#: toplev.c:1243
-msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
-msgstr ""
+#~ msgid "branch %d taken = %s\n"
+#~ msgstr "forgrening %d valgt = %s\n"
-#: toplev.c:1247
-msgid "Don't warn about strftime formats yielding 2 digit years"
-msgstr ""
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "forgrening %d valgt = %s%%\n"
-#: toplev.c:1250
-#, fuzzy
-msgid "Don't warn about too many arguments to format functions"
-msgstr "for mange parametre til funktionen"
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr "indholdet af .da-filen er udtømt for tidligt"
-#: toplev.c:1252
-msgid "Warn about non-string-literal format strings"
-msgstr ""
+#~ msgid ".da file contents not exhausted"
+#~ msgstr "indholdet af .da-filen ikke udtømt"
-#: toplev.c:1255
-msgid "Warn about possible security problems with format functions"
-msgstr ""
+#~ msgid "conversion from NaN to int"
+#~ msgstr "konvertering fra NaN til int"
-#: toplev.c:1258
-msgid "Warn about implicit function declarations"
-msgstr ""
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "konvertering fra NaN til unsigned int"
-#: toplev.c:1262
-msgid "Warn when a declaration does not specify a type"
-msgstr ""
+#~ msgid "floating point overflow"
+#~ msgstr "kommatalsoverløb"
-#: toplev.c:1267
-msgid "Warn about the use of the #import directive"
-msgstr ""
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "overløb ved afkortelse til heltal"
-#: toplev.c:1271
-msgid "Do not warn about using 'long long' when -pedantic"
-msgstr ""
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "overløb ved afkortelse til heltal uden fortegn"
-#: toplev.c:1273
-#, fuzzy
-msgid "Warn about suspicious declarations of main"
-msgstr "'%s' er tidligere erklæret"
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: parameterdomænefejl"
-#: toplev.c:1276
-#, fuzzy
-msgid "Warn about possibly missing braces around initialisers"
-msgstr "krøllede paranteser mangler omkring startværdien"
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: funktionssingularitet"
-#: toplev.c:1279
-msgid "Warn about global funcs without previous declarations"
-msgstr ""
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: overløbsintervalfejl"
-#: toplev.c:1282
-msgid "Warn about global funcs without prototypes"
-msgstr ""
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: underløbsintervalfejl"
-#: toplev.c:1285
-msgid "Warn about use of multicharacter literals"
-msgstr ""
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: samlet tab af præcision"
-#: toplev.c:1288
-msgid "Warn about externs not at file scope level"
-msgstr ""
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: delvist tab af præcision"
-#: toplev.c:1291
-msgid "Warn about possible missing parentheses"
-msgstr ""
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - producerer operation"
-#: toplev.c:1294
-msgid "Warn about possible violations of sequence point rules"
-msgstr ""
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Lad som om værten og målet bruger samme kommatalsformat"
-#: toplev.c:1297
-msgid "Warn about function pointer arithmetic"
-msgstr ""
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Oversæt henvisningsvariabler som tretupler: værdi, basis og slut"
-#: toplev.c:1300
-msgid "Warn about multiple declarations of the same object"
-msgstr ""
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "Forfrem ikke float til double hvis -traditional benyttes"
-#: toplev.c:1303
-msgid "Warn about signed/unsigned comparisons"
-msgstr ""
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Forsøg at understøtte traditionel K&R C"
-#: toplev.c:1306
-msgid "Warn about testing equality of floating point numbers"
-msgstr ""
+#~ msgid "internal error: %s"
+#~ msgstr "intern fejl: %s"
-#: toplev.c:1309
-msgid "Warn about unrecognized pragmas"
-msgstr ""
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "krydsspring deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok"
-#: toplev.c:1312
-msgid "Warn about non-prototyped function decls"
-msgstr ""
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a Aktivér blokprofilering\n"
-#: toplev.c:1315
-msgid "Warn about constructs whose meaning change in ISO C"
-msgstr ""
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Aktivér springprofilering\n"
-#: toplev.c:1318
-msgid "Warn when trigraphs are encountered"
-msgstr ""
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "profilering virker ikke uden en rammehenvisning"
-#: toplev.c:1323
-msgid "Mark strings as 'const char *'"
-msgstr ""
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "kommatal er ikke tilladt i #if-udtryk"
-#: toplev.c:1471
-msgid "Warn when a function is unused"
-msgstr ""
+#~ msgid "invalid number in #if expression"
+#~ msgstr "ugyldigt tal i #if-udtryk"
-#: toplev.c:1473
-msgid "Warn when a label is unused"
-msgstr ""
+#~ msgid "invalid character constant in #if"
+#~ msgstr "ugyldig tegnkonstant i #if"
-#: toplev.c:1475
-msgid "Warn when a function parameter is unused"
-msgstr ""
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "strenge med dobbelte anførselstegn er ikke tilladte i #if-udtryk"
-#: toplev.c:1477
-msgid "Warn when a variable is unused"
-msgstr ""
+#~ msgid "invalid token in expression"
+#~ msgstr "ugyldigt symbol udtryk"
-#: toplev.c:1479
-msgid "Warn when an expression value is unused"
-msgstr ""
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "oktal tegnkonstant kan ikke være i en byte"
-#: toplev.c:1481
-msgid "Do not suppress warnings from system headers"
-msgstr ""
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "hexadecimal tegnkonstant kan ikke være i en byte"
-#: toplev.c:1483
-msgid "Treat all warnings as errors"
-msgstr ""
+#~ msgid "empty #if expression"
+#~ msgstr "tomt #if-udtryk"
-#: toplev.c:1485
-#, fuzzy
-msgid "Warn when one local variable shadows another"
-msgstr "Den lokale variabel 'insn' har værdien:"
+#~ msgid "Junk after end of expression."
+#~ msgstr "ragelse efter slutningen af udtryk"
-#: toplev.c:1487
-msgid "Warn about enumerated switches missing a specific case"
-msgstr ""
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "makro eller #include-rekursion er for dyb"
-#: toplev.c:1489
-msgid "Warn about returning structures, unions or arrays"
-msgstr ""
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "brug: %s [tilvalg] inddata uddata"
-#: toplev.c:1491
-msgid "Warn about pointer casts which increase alignment"
-msgstr ""
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional understøttes ikke i C++"
-#: toplev.c:1493
-msgid "Warn about code that will never be executed"
-msgstr ""
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional og -ansi er indbyrdes uforenelige"
-#: toplev.c:1495
-msgid "Warn about unitialized automatic variables"
-msgstr ""
+#~ msgid "filename missing after -i option"
+#~ msgstr "et filnavn mangler efter tilvalget -i"
-#: toplev.c:1497
-#, fuzzy
-msgid "Warn when an inlined function cannot be inlined"
-msgstr "funktioner med variabel parameterliste kan ikke indbygges"
+#~ msgid "filename missing after -o option"
+#~ msgstr "et filnavn mangler efter tilvalget -o"
-#: toplev.c:1499
-msgid "Warn when the packed attribute has no effect on struct layout"
-msgstr ""
+#~ msgid "target missing after %s option"
+#~ msgstr "et mål mangler efter tilvalget %s"
-#: toplev.c:1501
-msgid "Warn when padding is required to align struct members"
-msgstr ""
+#~ msgid "filename missing after %s option"
+#~ msgstr "et filnavn mangler efter tilvalget %s"
-#: toplev.c:1503
-msgid "Warn when an optimization pass is disabled"
-msgstr ""
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "et makronavn mangler efter tilvalget -%c"
-#: toplev.c:1505
-msgid "Warn about functions which might be candidates for attribute noreturn"
-msgstr ""
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs og -traditional er indbyrdes uforenelige"
-#: toplev.c:1539 toplev.c:5061 tradcpp.c:776
-#, c-format
-msgid "Invalid option `%s'"
-msgstr "Ugyldigt tilvalg '%s'"
+#~ msgid "directory name missing after -I option"
+#~ msgstr "et katalognavn mangler efter '-I'-tilvalg"
-#: toplev.c:1741
-#, fuzzy, c-format
-msgid "Internal error: %s"
-msgstr "intern fejl: "
+#~ msgid "`/*' within comment"
+#~ msgstr "'/*' i en kommentar"
-#: toplev.c:2056
-#, fuzzy, c-format
-msgid "`%s' used but never defined"
-msgstr "'%.*s' er ikke defineret"
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "uafsluttet #%s-betingelse"
-#: toplev.c:2059
-#, c-format
-msgid "`%s' declared `static' but never defined"
-msgstr ""
+#~ msgid "not in any file?!"
+#~ msgstr "ikke i nogen fil?!"
-#: toplev.c:2081
-#, c-format
-msgid "`%s' defined but not used"
-msgstr ""
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "'defined' skal efterfølges af et kaldenavn eller (kaldenavn)"
-#: toplev.c:2259
-#, fuzzy, c-format
-msgid "can't open %s for writing"
-msgstr "%s: kan ikke åbne filen '%s' til at læse fra: %s\n"
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "cccp-fejl: ugyldig speciel hash-type"
-#: toplev.c:2312
-#, fuzzy
-msgid "-ffunction-sections not supported for this target."
-msgstr "integrerede funktioner understøttes ikke for denne returværditype"
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include forventer \"filnavn\" eller <filnavn>"
-#: toplev.c:2317
-#, fuzzy
-msgid "-fdata-sections not supported for this target."
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "der er ingen inkluderingssti at finde %.*s i"
-#: toplev.c:2325
-msgid "-ffunction-sections disabled; it makes profiling impossible."
-msgstr ""
+#~ msgid "invalid macro name"
+#~ msgstr "ugyldigt makronavn"
-#: toplev.c:2331
-msgid "-ffunction-sections may affect debugging on some targets."
-msgstr ""
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "ugyldigt makronavn '%s'"
-#: toplev.c:2372
-msgid "Errors detected in input file (your bison.simple is out of date)\n"
-msgstr "Fandt fejl i inddatafilen (din bison.simple er forældet)\n"
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "parameternavn begynder med et ciffer i #define"
-#: toplev.c:2509
-#, fuzzy, c-format
-msgid "error writing to %s"
-msgstr "%s: fejl ved skrivning til filen '%s': %s\n"
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "ugyldigt punktueret parameterliste i #define"
-#: toplev.c:2614
-#, c-format
-msgid "invalid register name `%s' for register variable"
-msgstr "ugyldigt registernavn '%s' for registervariabel"
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "uafsluttet parameterliste i #define"
-#: toplev.c:3863
-msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
-msgstr ""
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" omdefineret"
-#: toplev.c:3864
-msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
-msgstr ""
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "operatoren # skal efterfølges af et makroparameternavn"
-#: toplev.c:3865
-msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
-msgstr ""
+#~ msgid "invalid format #line command"
+#~ msgstr "ugyldigt formateret #line-kommando"
-#: toplev.c:3866
-msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
-msgstr ""
+#~ msgid "undefining `defined'"
+#~ msgstr "glemmer definitionen af 'defined'"
-#: toplev.c:3867
-msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
-msgstr ""
+#~ msgid "undefining `%s'"
+#~ msgstr "glemmer definitionen af '%s'"
-#: toplev.c:3868
-msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
-msgstr ""
+#~ msgid "extra text at end of directive"
+#~ msgstr "ekstra tekst i slutningen af direktiv"
-#: toplev.c:3879
-msgid " -O[number] Set optimisation level to [number]\n"
-msgstr ""
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
-#: toplev.c:3880
-msgid " -Os Optimise for space rather than speed\n"
-msgstr ""
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
-#: toplev.c:3892
-msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
-msgstr ""
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif er ikke inde i betingelsessætning"
-#: toplev.c:3893
-msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
-msgstr ""
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s ikke inde i betingelsessætning"
-#: toplev.c:3894
-msgid " -w Suppress warnings\n"
-msgstr ""
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else eller #elif efter #else"
-#: toplev.c:3895
-msgid " -W Enable extra warnings\n"
-msgstr ""
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else er ikke inde i betingelsessætning"
-#: toplev.c:3906
-msgid " -Wunused Enable unused warnings\n"
-msgstr ""
+#~ msgid "unbalanced #endif"
+#~ msgstr "uafbalanceret #endif"
-#: toplev.c:3907
-msgid " -Wid-clash-<num> Warn if 2 identifiers have the same first <num> chars\n"
-msgstr ""
+#~ msgid "unterminated string or character constant"
+#~ msgstr "uafsluttet streng- eller tegnkonstant"
-#: toplev.c:3908
-msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
-msgstr ""
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "parametre givet til makroen '%s'"
-#: toplev.c:3909
-msgid " -p Enable function profiling\n"
-msgstr ""
+#~ msgid "no args to macro `%s'"
+#~ msgstr "ingen parametre givet til makroen '%s'"
-#: toplev.c:3911
-msgid " -a Enable block profiling \n"
-msgstr ""
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "kun 1 parameter givet til makroen '%s'"
-#: toplev.c:3914
-msgid " -ax Enable jump profiling \n"
-msgstr ""
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "kun %d parametre givet til makroen '%s'"
-#: toplev.c:3916
-msgid " -o <file> Place output into <file> \n"
-msgstr ""
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "for mange (%d) parametre givet til makroen '%s'"
-#: toplev.c:3917
-msgid ""
-" -G <number> Put global and static data smaller than <number>\n"
-" bytes into a special section (on some targets)\n"
-msgstr ""
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "intern fejl i '%s', ved tradcpp:%d\n"
+#~ "Send venligst en komplet fejlrapport.\n"
+#~ "Se %s for instruktioner."
-#: toplev.c:3928
-msgid " -aux-info <file> Emit declaration info into <file>\n"
-msgstr ""
+#~ msgid "optimization turned on"
+#~ msgstr "optimeringer slået til"
-#: toplev.c:3929
-msgid " -quiet Do not display functions compiled or elapsed time\n"
-msgstr ""
+#~ msgid "optimization turned off"
+#~ msgstr "optimeringer slået fra"
-#: toplev.c:3930
-msgid " -version Display the compiler's version\n"
-msgstr ""
+#~ msgid "optimization level restored"
+#~ msgstr "optimeringsniveau gendannet"
-#: toplev.c:3931
-msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
-msgstr ""
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "Brug VAX-C-justering"
-#: toplev.c:3932
-msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
-msgstr ""
+#~ msgid "invalid %%V value"
+#~ msgstr "ugyldig %%V-værdi"
-#: toplev.c:3934
-msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
-msgstr ""
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Generér kode der antager at DW-bitten er sat"
-#: toplev.c:3936
-msgid " --help Display this information\n"
-msgstr ""
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Generér kode der antager at DW-bitten ikke er sat"
-#: toplev.c:3951
-msgid "\nLanguage specific options:\n"
-msgstr ""
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Generér kode der bruger byte-skrivninger"
-#: toplev.c:3963
-#, c-format
-msgid " %-23.23s [undocumented]\n"
-msgstr ""
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Generér ikke byte-skrivninger"
-#: toplev.c:3971 toplev.c:3985
-#, c-format
-msgid "\nThere are undocumented %s specific options as well.\n"
-msgstr ""
+#~ msgid "Use small memory model"
+#~ msgstr "Brug en lille hukommelsesmodel"
-#: toplev.c:3975
-#, c-format
-msgid "\n Options for %s:\n"
-msgstr ""
+#~ msgid "Use normal memory model"
+#~ msgstr "Brug en normal hukommelsesmodel"
-#: toplev.c:4006
-msgid "\nTarget specific options:\n"
-msgstr ""
+#~ msgid "Use large memory model"
+#~ msgstr "Brug en stor hukommelsesmodel"
-#: toplev.c:4020 toplev.c:4039
-#, c-format
-msgid " -m%-23.23s [undocumented]\n"
-msgstr ""
+#~ msgid "Generate 29050 code"
+#~ msgstr "Generér 29050-kode"
-#: toplev.c:4048
-msgid "\nThere are undocumented target specific options as well.\n"
-msgstr ""
+#~ msgid "Generate 29000 code"
+#~ msgstr "Generér 29000-kode"
-#: toplev.c:4050
-msgid " They exist, but they are not documented.\n"
-msgstr ""
+#~ msgid "Use kernel global registers"
+#~ msgstr "Bruge kerneglobale registre"
-#: toplev.c:4106
-#, fuzzy, c-format
-msgid "unrecognized gcc debugging option: %c"
-msgstr "ukendt tilvalg '-%s'"
+#~ msgid "Use user global registers"
+#~ msgstr "Bruge brugerglobale registre"
-#: toplev.c:4172
-#, c-format
-msgid "unrecognized register name `%s'"
-msgstr "ukendt registernavn '%s'"
+#~ msgid "Emit stack checking code"
+#~ msgstr "Generér stakkontrolleringskode"
-#: toplev.c:4196 toplev.c:4880
-#, c-format
-msgid "Unrecognized option `%s'"
-msgstr "Ukendt tilvalg '%s'"
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Generér ikke stakkontrolleringskode"
-#: toplev.c:4322
-#, c-format
-msgid "use -gdwarf -g%d for DWARF v1, level %d"
-msgstr "benyt - gdwarf -g%d til DWARF v1, niveau %d"
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Arbejd rundt om storem-hardwarefejl"
-#: toplev.c:4325
-msgid "use -gdwarf-2 for DWARF v2"
-msgstr "benyt -gdwarf-2 til DWARF v2"
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Arbejd ikke rundt om storem-hardwarefejl"
-#: toplev.c:4330
-#, c-format
-msgid "ignoring option `%s' due to invalid debug level specification"
-msgstr ""
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Gem lokale variable i parameterregistre"
-#: toplev.c:4353 toplev.c:4878
-#, c-format
-msgid "`%s': unknown or unsupported -g option"
-msgstr ""
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "Gem ikke lokale variable i parameterregistre"
-#: toplev.c:4360
-#, c-format
-msgid "`%s' ignored, conflicts with `-g%s'"
-msgstr ""
+#~ msgid "Do not generate multm instructions"
+#~ msgstr "Generér ikke multm-instruktioner"
-#: toplev.c:4439
-msgid "-param option missing argument"
-msgstr ""
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Foretag symbolomdøbning for BSD"
-#: toplev.c:4448
-#, fuzzy, c-format
-msgid "invalid --param option: %s"
-msgstr "Ugyldigt tilvalg %s"
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Foretag symbolomdøbning for X/OPEN"
-#: toplev.c:4460
-#, fuzzy, c-format
-msgid "invalid parameter value `%s'"
-msgstr "ugyldig typeparameter '%s'"
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Foretag ikke symbolomdøbning"
-#: toplev.c:4551
-msgid "`-a' option (basic block profile) not supported"
-msgstr ""
+#~ msgid "MCU `%s' not supported"
+#~ msgstr "MCU '%s' ikke understøttet"
-#: toplev.c:4559
-#, fuzzy
-msgid "`-ax' option (jump profiling) not supported"
-msgstr "-pipe understøttes ikke."
+#~ msgid "Generate code for the C400"
+#~ msgstr "Generér kode til en C400"
-#: toplev.c:4870
-#, fuzzy, c-format
-msgid "Ignoring command line option '%s'"
-msgstr "Ukendt tilvalg '%s'"
+#~ msgid "Generate code for the C300"
+#~ msgstr "Generér kode til en C300"
-#: toplev.c:4873
-#, c-format
-msgid "(It is valid for %s but not the selected language)"
-msgstr ""
+#~ msgid "Generate code for c1"
+#~ msgstr "Generér kode til en c1"
-#: toplev.c:4911
-#, fuzzy
-msgid "-Wuninitialized is not supported without -O"
-msgstr "profilgenerering understøttes ikke med -mg\n"
+#~ msgid "Generate code for c2"
+#~ msgstr "Generér kode til en c2"
-#: toplev.c:4938
-msgid "`-ax' and `-a' are conflicting options. `-a' ignored."
-msgstr ""
+#~ msgid "Generate code for c32"
+#~ msgstr "Generér kode til en c32"
-#: toplev.c:4959
-#, fuzzy
-msgid "instruction scheduling not supported on this target machine"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+#~ msgid "Generate code for c34"
+#~ msgstr "Generér kode til en c34"
-#: toplev.c:4963
-msgid "this target machine does not have delayed branches"
-msgstr ""
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Benyt standardkaldesekvens, med parameterantalsord"
-#: toplev.c:4972
-#, fuzzy
-msgid "profiling does not work without a frame pointer"
-msgstr "profilgenerering understøtter ikke andre kodemodeller end medlow"
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Anbring parameterantal i en nop-instruktion (hurtigere end push)"
-#: toplev.c:4987
-#, fuzzy, c-format
-msgid "-f%sleading-underscore not supported on this target machine"
-msgstr "stakgrænser understøttes ikke på målarkitekturen"
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "Videresend ikke parameterantal, afhæng af symboltabel"
-#: toplev.c:5007
-#, c-format
-msgid "Data size %ld.\n"
-msgstr "Datastørrelse %ld.\n"
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Benyt datamellemlager for volatile hukommelsesreferencer (standard)"
-#: toplev.c:5078
-#, fuzzy, c-format
-msgid ""
-"%s%s%s version %s (%s)\n"
-"%s\tcompiled by GNU C version %s.\n"
-"%s%s%s version %s (%s) compiled by CC.\n"
-msgstr ""
-"%s%s%s version %s (%s) oversat af GNU C version %s.\n"
-"%s%s%s version %s (%s) oversat af CC.\n"
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Benyt ikke datamellemlager for volatile hukommelsesreferencer"
-#: toplev.c:5134
-msgid "options passed: "
-msgstr "tilvalg overbragt: "
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Forbigå datamellemlager for volatile hukommelsesreferencer"
-#: toplev.c:5163
-msgid "options enabled: "
-msgstr "tilvalg slået til: "
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Benyt 64 bit-long"
-#: tradcif.y:110 tradcif.y:121
-msgid "division by zero in #if"
-msgstr ""
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "Benyt cc- og libc-kompatibel 32 bit-long"
-#. It's a float since it contains a point.
-#: tradcif.y:230
-#, fuzzy
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "kommatal er ikke tilladt i '#if'-udtryk"
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "integrerede kommatalskonstanter er ikke understøttede på denne vært"
-#: tradcif.y:276
-#, fuzzy
-msgid "Invalid number in #if expression"
-msgstr "ugyldigt tal i '#if'-udtryk"
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Generér kode som Unix-maskinkodeoversætteren kan håndtere"
-#: tradcif.y:361
-#, fuzzy
-msgid "Invalid character constant in #if"
-msgstr "forkert udformet tegnkonstant"
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Generér kode som en indlejret maskinkodeoversætter kan håndtere"
-#: tradcif.y:398
-#, fuzzy
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "'%.*s' er ikke tilladt i '#if'-udtryk"
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Bevar standard-MXDB-info"
-#: tradcif.y:411
-#, fuzzy
-msgid "Invalid token in expression"
-msgstr "ugyldigt tal i '#if'-udtryk"
+#~ msgid "Retain legend information"
+#~ msgstr "Bevar indholdsinfo"
-#: tradcif.y:502
-#, fuzzy
-msgid "octal character constant does not fit in a byte"
-msgstr "tegnkonstanten er for lang"
+#~ msgid "Generate external legend information"
+#~ msgstr "Generér ekstern indholdsinfo"
-#: tradcif.y:527
-#, fuzzy
-msgid "hex character constant does not fit in a byte"
-msgstr "tegnkonstanten er for lang"
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr "Udsend identificerende info i .s-fil"
-#: tradcif.y:558
-#, fuzzy
-msgid "empty #if expression"
-msgstr " i kastet udtryk"
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Advar når en funktionsparameter er en struktur"
-#: tradcif.y:572
-#, fuzzy
-msgid "Junk after end of expression."
-msgstr "ragelse i slutningen af #%s"
+#~ msgid "argument is a structure"
+#~ msgstr "parameter er en struktur"
-#: tradcpp.c:137
-#, fuzzy
-msgid "macro or #include recursion too deep"
-msgstr "makro eller '#include'-rekursion er for dyb"
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "half-PIC-klargøring kaldt på systemer der ikke understøtter det"
-#: tradcpp.c:550
-#, fuzzy, c-format
-msgid "Usage: %s [switches] input output"
-msgstr "Brug: %s [tilvalg] inddata uddata\n"
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Profilering benytter mcount"
-#: tradcpp.c:566
-#, fuzzy
-msgid "-traditional is not supported in C++"
-msgstr "-pipe understøttes ikke."
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Udsend half-PIC-kode"
-#: tradcpp.c:568
-#, fuzzy
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "-lang-chill og -trigraphs er indbyrdes uforenelige"
+#~ msgid "Emit ELF object code"
+#~ msgstr "Udsend ELF-objektkode"
-#: tradcpp.c:582
-#, fuzzy
-msgid "Filename missing after -i option"
-msgstr "Et filnavn mangler efter %s"
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Udsend ROSE-objektkode"
-#: tradcpp.c:600
-#, fuzzy
-msgid "Filename missing after -o option"
-msgstr "Et filnavn mangler efter %s"
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Symboler har en indledende understreg"
-#: tradcpp.c:659
-#, fuzzy, c-format
-msgid "Target missing after %s option"
-msgstr "En parameter mangler efter %s"
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Justér til >word-grænserne"
-#: tradcpp.c:673
-#, fuzzy, c-format
-msgid "Filename missing after %s option"
-msgstr "Et filnavn mangler efter %s"
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Benyt mcount til profilering"
-#: tradcpp.c:698
-#, fuzzy, c-format
-msgid "Macro name missing after -%c option"
-msgstr "Et makronavn mangler efter %s"
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Benyt mcount_ptr til profilering"
-#: tradcpp.c:718
-#, fuzzy
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-lang-chill og -trigraphs er indbyrdes uforenelige"
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Generér kode som bruger FPU'en"
-#: tradcpp.c:723
-#, fuzzy
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-lang-chill og -trigraphs er indbyrdes uforenelige"
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Generér ikke kode som bruger FPU'en"
-#: tradcpp.c:749
-#, fuzzy
-msgid "Directory name missing after -I option"
-msgstr "Et katalognavn mangler efter %s"
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "tilvalget -mlong-double-64 virker ikke endnu"
-#: tradcpp.c:1425 tradcpp.c:3916
-#, fuzzy
-msgid "`/*' within comment"
-msgstr "'/*' i en kommentar"
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr "Tilvalget -march er uforeneligt med -mipsN og derfor ignoreret."
-#: tradcpp.c:1800
-#, fuzzy, c-format
-msgid "unterminated #%s conditional"
-msgstr "uafsluttet #%s"
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d er ikke understøttet"
-#: tradcpp.c:2159
-#, fuzzy
-msgid "not in any file?!"
-msgstr "ingen linjeskift ved slutningen af filen"
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s understøtter ikke -mips%d"
-#: tradcpp.c:2265
-#, fuzzy
-msgid "`defined' must be followed by ident or (ident)"
-msgstr "#define skal efterfølges af et kaldenavn"
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "denne målarkitektur understøtter ikke tilvalget -mabi"
-#: tradcpp.c:2269
-#, fuzzy
-msgid "cccp error: invalid special hash type"
-msgstr "ugyldig speciel hash-type"
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
-#: tradcpp.c:2367 tradcpp.c:2437
-msgid "#include expects \"fname\" or <fname>"
-msgstr ""
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d understøtter ikke 64-bit kommatalsregistre"
-#: tradcpp.c:2522
-#, fuzzy, c-format
-msgid "No include path in which to find %.*s"
-msgstr "Der er ingen inkluderingssti at finde %s i"
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d understøtter ikke 64-bit almene registre"
-#: tradcpp.c:2700
-#, fuzzy
-msgid "invalid macro name"
-msgstr "ugyldig kode"
+#~ msgid "Use OSF PIC"
+#~ msgstr "Benyt OSF PIC"
-#: tradcpp.c:2708
-#, fuzzy, c-format
-msgid "invalid macro name `%s'"
-msgstr "Ugyldigt tilvalg '%s'"
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Benyt ikke OSF PIC"
-#: tradcpp.c:2713
-#, fuzzy
-msgid "\"defined\" cannot be used as a macro name"
-msgstr "\"defined\" er ikke et tilladt makronavn"
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimér for 3900"
-#: tradcpp.c:2740
-msgid "parameter name starts with a digit in #define"
-msgstr ""
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimér for 4650"
-#: tradcpp.c:2750
-msgid "badly punctuated parameter list in #define"
-msgstr ""
+#~ msgid "stack frame too big"
+#~ msgstr "stakramme for stor"
-#: tradcpp.c:2758
-#, fuzzy
-msgid "unterminated parameter list in #define"
-msgstr "uafsluttet tegnkonstant"
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "hverken variable parametre eller standardparametre mmix_setup_incoming_varargs"
-#: tradcpp.c:2806
-#, fuzzy, c-format
-msgid "\"%.*s\" redefined"
-msgstr "\"%s\" omdefineret"
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "ups, ikke fejlanalyseret; retter værdi:"
-#: tradcpp.c:3063
-#, fuzzy
-msgid "# operator should be followed by a macro argument name"
-msgstr "'#' efterfølges ikke af et makroparameternavn"
+#~ msgid "Generate little endian data"
+#~ msgstr "Generér lilleendet data"
-#: tradcpp.c:3110 tradcpp.c:3136 tradcpp.c:3150 tradcpp.c:3157 tradcpp.c:3182
-#, fuzzy
-msgid "invalid format #line command"
-msgstr "ugyldigt #line-format"
+#~ msgid "Generate big endian data"
+#~ msgstr "Generér storendet data"
-#: tradcpp.c:3208
-#, fuzzy
-msgid "undefining `defined'"
-msgstr "glemmer definitionen af '%s'"
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Aktivér vedligeholdertestkode"
-#: tradcpp.c:3212
-#, c-format
-msgid "undefining `%s'"
-msgstr "glemmer definitionen af '%s'"
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Aktivér Transmeta picoJava-udvidelser"
-#: tradcpp.c:3268
-#, fuzzy
-msgid "extra text at end of directive"
-msgstr "overskydende krøllede paranteser ved slutningen af startværdien"
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Deaktivér Transmeta picoJava-udvidelser"
-#: tradcpp.c:3375
-#, fuzzy, c-format
-msgid "#error%.*s"
-msgstr "#error %.*s"
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Deaktivér omorganiseringsfase"
-#: tradcpp.c:3385
-#, fuzzy, c-format
-msgid "#warning%.*s"
-msgstr "#warning %.*s"
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignoreret (al kode er positionsuafhængigt)"
-#: tradcpp.c:3541
-msgid "#elif not within a conditional"
-msgstr ""
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "-ffunction-sections deaktiveret på AIX ved fejlanalysering"
-#: tradcpp.c:3798
-#, c-format
-msgid "#%s not within a conditional"
-msgstr ""
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections er ikke understøttet på AIX"
-#: tradcpp.c:3806
-#, fuzzy
-msgid "#else or #elif after #else"
-msgstr "#elif efter #else"
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "parameter til '%s' skal være en 2 bit-konstant"
-#: tradcpp.c:3846
-msgid "#else not within a conditional"
-msgstr ""
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S beregnede alle 1'eres maske"
-#: tradcpp.c:3877
-msgid "unbalanced #endif"
-msgstr ""
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S beregnede alle 0's maske"
-#: tradcpp.c:3971
-msgid "unterminated string or character constant"
-msgstr "uafsluttet streng- eller tegnkonstant"
+#~ msgid "no viable candidates"
+#~ msgstr "ingen mulige kandidater"
-#: tradcpp.c:4129
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "parametre givet til makro '%s'"
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#~ msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'"
-#: tradcpp.c:4135
-#, fuzzy, c-format
-msgid "no args to macro `%s'"
-msgstr "parametre givet til makro '%s'"
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "'%D' er allerede blevet erklæret i '%T'"
-#: tradcpp.c:4137
-#, fuzzy, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "parametre givet til makro '%s'"
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "typedef '%D' bliver tildelt en startværdi"
-#: tradcpp.c:4139
-#, fuzzy, c-format
-msgid "only %d args to macro `%s'"
-msgstr "parametre givet til makro '%s'"
+#~ msgid "`%D' as declarator"
+#~ msgstr "'%D' som erklærer"
-#: tradcpp.c:4141
-#, fuzzy, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "for mange parametre til funktionen '%s'"
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "størrelsen af medlemmet '%D' er ikke konstant"
-#: tradcpp.c:4767
-#, fuzzy, c-format
-msgid ""
-"Internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"Intern oversætterfejl i '%s', ved %s:%d\n"
-"Send venligst en komplet fejlrapport.\n"
-"Se %s for instruktioner."
+#~ msgid "cannot declare %s to references"
+#~ msgstr "kan ikke erklære %s til referencer"
-#: tree.c:3879
-msgid "arrays of functions are not meaningful"
-msgstr "en tabel af funktioner giver ikke mening"
+#~ msgid "invalid type: `void &'"
+#~ msgstr "ugyldig type: 'void &'"
-#: tree.c:3936
-msgid "function return type cannot be function"
-msgstr "en funktions returtype kan ikke være en funktion"
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "typedef-erklæringen indeholder en startværdi"
-#: tree.c:4673
-msgid "invalid initializer for bit string"
-msgstr "ugyldig startværdi til bitstreng"
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version understøttes ikke længere"
-#: tree.c:4732
-#, fuzzy, c-format
-msgid "Tree check: expected %s, have %s in %s, at %s:%d"
-msgstr "Træ-tjek: forventede %s, har %s"
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "candidate%s: %+#D"
-#: tree.c:4749
-#, fuzzy, c-format
-msgid "Tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
-msgstr "Træ-tjek: forventede klasse '%c', har '%c' (%s)"
+#~ msgid " %#D"
+#~ msgstr " %#D"
-#: varasm.c:639
-#, fuzzy, c-format
-msgid "register name not specified for `%s'"
-msgstr "lagringsklasse angivet for %s '%s'"
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "medlemsstartværdier for '%#D'"
-#: varasm.c:641
-#, fuzzy, c-format
-msgid "invalid register name for `%s'"
-msgstr "ukendt registernavn '%s'"
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " vil blive omordnet for at passe til erklæringsordenen"
-#: varasm.c:644
-#, c-format
-msgid "data type of `%s' isn't suitable for a register"
-msgstr ""
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "flere startværdier angivet for medlemmet '%D'"
-#: varasm.c:647
-#, c-format
-msgid "register specified for `%s' isn't suitable for data type"
-msgstr ""
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "stamklasseklargøring for '%#T'"
-#: varasm.c:656
-msgid "global register variable has initial value"
-msgstr "global registervariabel har en startværdi"
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " vil blive omordnet for at passe til nedarvningsordenen"
-#: varasm.c:659
-msgid "volatile register variables don't work as you might wish"
-msgstr ""
+#~ msgid "base class `%T' already initialized"
+#~ msgstr "stamklassen '%T' er allerede klargjort"
-#: varasm.c:695
-#, fuzzy, c-format
-msgid "register name given for non-register variable `%s'"
-msgstr "ugyldigt registernavn '%s' for registervariabel"
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "implementationsreserveret navn '%D' benyttet"
-#: varasm.c:1333
-#, fuzzy, c-format
-msgid "size of variable `%s' is too large"
-msgstr "størrelsen af tabel '%s' er for stor"
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "eksplicit instantiering af '%#D' efter"
-#: varasm.c:1373
-#, c-format
-msgid "alignment of `%s' is greater than maximum object file alignment. Using %d."
-msgstr ""
+#~ msgid "explicit specialization here"
+#~ msgstr "eksplicit specialisering her"
-#: varasm.c:1420
-#, fuzzy, c-format
-msgid "requested alignment for %s is greater than implemented alignment of %d."
-msgstr "angivet justering er ikke en potens af 2"
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "eksplicit instantiering af '%#T' efter"
-#: varasm.c:1899
-msgid "floating point trap outputting a constant"
-msgstr "kommatalsfælde udsender en konstant"
+#~ msgid "base initializer for `%T'"
+#~ msgstr "stamklasseklargøring for '%T'"
-#: varasm.c:4304
-msgid "initializer for integer value is too complicated"
-msgstr "startværdien for heltallet er for kompliceret"
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " vil blive omordnet for at komme før medlemsklargøringer"
-#: varasm.c:4310
-msgid "initializer for floating value is not a floating constant"
-msgstr "startværdien for kommatal er ikke en kommatalskonstant"
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "ignorerer modifikationerne '%V' til '%T'"
-#: varasm.c:4367
-msgid "unknown set constructor type"
-msgstr "ukendt mængdekonstruktionstype"
+#~ msgid "ISO C++ forbids applying `sizeof' to a function type"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' på en funktionstype"
-#: varasm.c:4572
-#, c-format
-msgid "invalid initial value for member `%s'"
-msgstr "ugyldig startværdi for medlemmet '%s'"
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' på en medlemsfunktion"
-#: varasm.c:4754
-#, fuzzy, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "erklæring af '%s' som void"
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' på typen 'void' som er en ufuldstændig type"
-#: varasm.c:4756
-#, fuzzy, c-format
-msgid "weak declaration of `%s' must precede definition"
-msgstr "'%s' erklæret som en tabel af funktioner"
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr "'sizeof' benyttet på et ikke-statisk medlem"
-#: varasm.c:4852
-#, fuzzy
-msgid "only weak aliases are supported in this configuration"
-msgstr "%s understøttes ikke af denne konfiguration"
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "'sizeof' benyttet på en ufuldstændig type '%T'"
-#: varasm.c:4857
-#, fuzzy
-msgid "alias definitions not supported in this configuration; ignored"
-msgstr "%s understøttes ikke af denne konfiguration"
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "forespørgsel for medlemmet '%T::%D' i udtryk med den ikke-sammensatte type '%T'"
-#: varray.c:87
-#, c-format
-msgid "Virtual array %s[%lu]: element %lu out of bounds"
-msgstr ""
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "ugyldig brug af typeerklæring '%#D' som udtryk"
-#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:176
-#, c-format
-msgid "No sclass for %s stab (0x%x)\n"
-msgstr ""
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "ugyldig brug af skabelon '%#D' som udtryk"
-#: config/alpha/freebsd.h:35 config/i386/freebsd-aout.h:236
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "'-p' understøttes ikke; brug '-pg' og gprof(1)"
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "ugyldig offsetof fra ikke-POD type '%#T'; benyt henvisning til medlem i stedet"
-#: config/arc/arc.h:61 config/mips/mips.h:918
-msgid "may not use both -EB and -EL"
-msgstr "kan ikke bruge både -EB og -EL"
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "henvisning til medlem-funktion kaldt, men ikke i klassevirkefelt"
-#: config/arm/arm.h:216
-msgid "-mapcs-26 and -mapcs-32 may not be used together"
-msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges på samme tid"
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "objekt mangler i kald til metoden '%D'"
-#: config/arm/arm.h:228
-msgid "-msoft-float and -mhard_float may not be used together"
-msgstr "-msoft-float og -mhard_float kan ikke bruges på samme tid"
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "funktionen '%D' erklæret flertydigt, men ingen definition optræder til at passe den sammen med?!?"
-#: config/arm/arm.h:239
-msgid "-mbig-endian and -mlittle-endian may not be used together"
-msgstr "-mbig-endian og -mlittle-endian kan ikke bruges på samme tid"
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "ugyldigt kald af medlemsfunktion som har brug for 'this', i et statisk medlemsfunktionsvirkefelt"
-#: config/arm/arm.h:257
-#, fuzzy
-msgid "Incompatible interworking options"
-msgstr "uforenelige typer i %s"
+#~ msgid "unary `&'"
+#~ msgstr "unær '&'"
-#: config/arm/riscix.h:73 config/arm/riscix.h:135
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd og -pedantic er indbyrdes uforenelige"
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "ugyldig brug af en ikke-defineret type '%#T'"
-#: config/arm/riscix.h:74 config/arm/riscix.h:136
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd og -mxopen er indbyrdes uforenelige"
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "forhåndserklæring af '%#T'"
-#: config/arm/riscix.h:75 config/arm/riscix.h:137
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen og -pedantic er indbyrdes uforenelige"
+#~ msgid "invalid use of `%T'"
+#~ msgstr "ugyldig brug af '%T'"
-#: config/dsp16xx/dsp16xx.h:101 config/dsp16xx/dsp16xx.h:110
-msgid "A -ifile option requires a -map option"
-msgstr "Et '-ifile'-tilvalg påkræver et '-map'-tilvalg"
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "ugyldig brug af medlem (glemte du en '&'?)"
-#: config/i386/cygwin.h:103
-#, fuzzy
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "ugyldig brug af skabelonstypeparameter"
-#: config/i386/cygwin.h:158 config/i386/mingw32.h:63
-#, fuzzy
-msgid "shared and mdll are not compatible"
-msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige."
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "adresse af flertydig funktion uden kontekstuelle typeoplysninger"
-#: config/i386/sco5.h:777 config/i386/sco5.h:852
-msgid "-static not valid with -mcoff"
-msgstr "-static er ikke gyldig sammen med -mcoff"
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "flertydig funktion uden kontekstuelle typeoplysninger"
-#: config/i386/sco5.h:778 config/i386/sco5.h:853
-msgid "-shared not valid with -mcoff"
-msgstr "-shared er ikke gyldig sammen med -mcoff"
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "utilstrækkelige kontekstuelle oplysninger til at afgøre typen"
-#: config/i386/sco5.h:779 config/i386/sco5.h:854
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic er ikke gyldig sammen med -mcoff"
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for nedarvet klasseobjekt '%D'"
-#: config/i386/sco5.h:817
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic er ikke gyldig sammen med -mcoff"
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for polymorfisk klasseobjekt '%D'"
-#: config/i386/sco5.h:818
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC er ikke gyldig sammen med -mcoff"
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "klargøringslistekonstruktion er ugyldig for '%D'"
-#: config/i386/sco5.h:855
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic er ikke gyldig sammen med -mcoff"
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "pga. af tilstedeværelsen af en konstruktionsfunktion"
-#: config/i386/sco5.h:856
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC er ikke gyldig sammen med -mcoff"
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "pga. ikke-public tilgang af medlemmet '%D'"
-#: config/i386/unix.h:122
-msgid "bx]"
-msgstr ""
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ forbyder ikke-konstante startværdiudtryk for sammensatte typer"
-#: config/i386/unix.h:124
-msgid "bx"
-msgstr ""
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "Betydningen af '\\x' (ved %0) skifter med -traditional"
-#: config/i386/unix.h:125
-msgid "cx"
-msgstr ""
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "Betydningen af '\\a' (ved %0) skifter med -traditional"
-#: config/i860/fx2800.h:305
-msgid "-p option not supported: use -pg instead"
-msgstr "'-p'-tilvalget understøttes ikke; benyt '-pg' i stedet"
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "betydningen af '\\x' skifter med -traditional"
-#: config/mcore/mcore.h:65
-msgid "choose either big or little endian, not both"
-msgstr ""
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "betydningen af '\\a' skifter med -traditional"
-#: config/mcore/mcore.h:68
-msgid "choose either m340 or m210 not both"
-msgstr ""
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
-#: config/mcore/mcore.h:69
-msgid "the m210 does not have little endian support"
-msgstr ""
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Kan ikke angive tabeldimension i en erklæring"
-#: config/mips/mips.h:774
-msgid "-pipe is not supported."
-msgstr "-pipe understøttes ikke."
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "intern fejl - brug af ikke-defineret type"
-#: config/mips/mips.h:913
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "intet klassenavn angivet som parameter til -fconstant-string-class"
-#: config/mips/mips.h:914
-msgid "may not use both -mfp64 and -m4650"
-msgstr "-mfp64 og -m4650 er indbyrdes uforenelige"
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "profilgenerering med -p understøttes ikke længere; benyt -pg i stedet for"
-#: config/mips/r3900.h:28 config/mips/r3900.h:42
-msgid "-mhard-float not supported."
-msgstr "-mhard-float understøttes ikke."
+#~ msgid "incompatible interworking options"
+#~ msgstr "uforenelige samvirkende tilvalg"
-#: config/mips/r3900.h:30 config/mips/r3900.h:44
-msgid "-msingle-float and -msoft-float can not both be specified."
-msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige."
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "-mabi=mmixware og -mabi=gnu er indbyrdes uforenelige"
-#: config/nextstep.h:163 config/nextstep.h:166
-msgid "-p profiling is no longer supported. Use -pg instead."
-msgstr "profilgenerering med -p understøttes ikke længere; benyt -pg i stedet for."
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "tilvalget -p understøttes ikke; benyt -pg i stedet"
-#: config/vax/vax.h:41 config/vax/vax.h:42
-msgid "profiling not supported with -mg\n"
-msgstr "profilgenerering understøttes ikke med -mg\n"
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd og -pedantic er indbyrdes uforenelige"
-#: f/lang-specs.h:35 gcc.c:593
-msgid "GNU C does not support -C without using -E"
-msgstr "GNU C understøtter ikke -C uden -E"
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd og -mxopen er indbyrdes uforenelige"
-#: gcc.c:614 java/jvspec.c:68
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen og -pedantic er indbyrdes uforenelige"
-#: gcc.c:762
-msgid "-E required when input is from standard input"
-msgstr "-E påkrævet når inddata kommer fra standardind"
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
-#: gcc.c:766
-msgid "Compilation of header file requested"
-msgstr "Oversættelse af inkluderingsfil udbedt"
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "-mfp64 og -m4650 er indbyrdes uforenelige"
-#: java/lang-specs.h:33
-#, fuzzy
-msgid "-fjni and -femit-class-files are incompatible"
-msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "-mgp32 og -mfp64 er indbyrdes uforenelige"
-#: java/lang-specs.h:34
-#, fuzzy
-msgid "-fjni and -femit-class-file are incompatible"
-msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "Kun variabler med startværdi kan placeres i programhukommelsesområdet."
-#~ msgid "iterator `%s' has derived type"
-#~ msgstr "løkkevariablen '%s' er af en nedarvet type"
+#~ msgid "declaration of `%#T'"
+#~ msgstr "erklæring af '%#T'"
-#~ msgid "iterator `%s' has noninteger type"
-#~ msgstr "løkkevariablen '%s' er ikke af en heltalstype"
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
#~ msgid "%s before character constant"
#~ msgstr "%s før tegnkonstant"
@@ -14293,12 +22064,6 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "%s before character 0%o"
#~ msgstr "%s før tegn 0%o"
-#~ msgid "more than one `f' in numeric constant"
-#~ msgstr "mere end ét 'f' i talkonstant"
-
-#~ msgid "more than one `l' in numeric constant"
-#~ msgstr "mere end ét 'l' i talkonstant"
-
#~ msgid "invalid identifier `%s'"
#~ msgstr "ugyldigt kaldenavn '%s'"
@@ -14308,26 +22073,11 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "nondigits in number and not hexadecimal"
#~ msgstr "tegn der ikke er cifre, optræder i tal"
-#~ msgid "numeric constant contains digits beyond the radix"
-#~ msgstr "talkonstant indeholder cifre der ligger ud over grundtallet"
-
-#~ msgid "floating constant exponent has no digits"
-#~ msgstr "der er ingen cifre i kommatallets eksponent"
-
-#~ msgid "hexadecimal floating constant has no exponent"
-#~ msgstr "hexadecimal kommatalskonstant har ingen eksponent"
-
#~ msgid "two `u's in integer constant"
-#~ msgstr "to 'u'er i heltalskonstant"
-
-#~ msgid "Unterminated string constant"
-#~ msgstr "Uafsluttet strengkonstant"
+#~ msgstr "to 'u'-endelser i heltalskonstant"
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "syntaksfejl: kan ikke gå tilbage"
-
-#~ msgid "parser stack overflow"
-#~ msgstr "overløb i tolkerens stak"
+#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
+#~ msgstr "'[*]' i parametererklæring kun tilladt i ISO C 99"
#~ msgid "invalid `for (ITERATOR)' syntax"
#~ msgstr "ugyldigt 'for (LØKKEVARIABEL)'-syntaks"
@@ -14338,24 +22088,30 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "case label within scope of cleanup or variable array"
#~ msgstr "case-etiket i oprydningsområde eller i en variabel tabel"
-#~ msgid "parse error; also virtual memory exceeded"
-#~ msgstr "tolkningsfejl; desuden løbet tør for virtuel hukommelse"
+#~ msgid "wrong type argument to %s"
+#~ msgstr "forkert parametertype til %s"
+
+#~ msgid "invalid lvalue in increment"
+#~ msgstr "ugyldig venstreværdi i forøgelse"
+
+#~ msgid "invalid lvalue in decrement"
+#~ msgstr "ugyldig venstreværdi i formindskelse"
+
+#~ msgid "increment"
+#~ msgstr "forøgelse"
+
+#~ msgid "decrement"
+#~ msgstr "formindskelse"
#~ msgid "duplicate array index in initializer"
#~ msgstr "tabelindeks i startværdi optræder mere end én gang"
-#~ msgid "duplicate initializer"
-#~ msgstr "startværdi optræder mere end én gang"
-
#~ msgid "thumb_load_double_from_address: destination is not a register"
#~ msgstr "thumb_load_double_from_adress: destination er ikke et register"
#~ msgid "thumb_load_double_from_address: source is not a computed memory address"
#~ msgstr "thumb_load_double_from_adress: kilden er ikke en beregnet hukommelsesadresse"
-#~ msgid "thumb_load_double_from_address: base is not a register"
-#~ msgstr "thumb_load_double_from_adress: basis er ikke et register"
-
#~ msgid "thumb_load_double_from_address: Unhandled address calculation"
#~ msgstr "thumb_load_double_from_adress: adresseberegningen er ikke håndteret"
@@ -14368,23 +22124,59 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "YL found in limit_reload_class"
#~ msgstr "YL fundet i limit_reload_class"
-#~ msgid "Bad register extension code"
-#~ msgstr "Ugyldig registerudvidelseskode"
+#~ msgid "Invalid register for compare"
+#~ msgstr "Ugyldigt register til sammenligningen"
-#~ msgid "Invalid offset in ybase addressing"
-#~ msgstr "Ugyldigt offset i ybase-adressering"
+#~ msgid "Internal gcc abort from %s:%d"
+#~ msgstr "Intern GCC-afbrydelse fra %s:%d"
-#~ msgid "Invalid shift operator in emit_1600_core_shift"
-#~ msgstr "Ugyldig forskydningsoperator i emit_1600_core_shift"
+#~ msgid "Register '%c' already specified in allocation order"
+#~ msgstr "Registret '%c' er allerede angivet i tildelingsordenen"
-#~ msgid "Invalid mode for gen_tst_reg"
-#~ msgstr "Ugyldig tilstand for gen_tst_reg"
+#~ msgid "Same as -mcpu=i386"
+#~ msgstr "Magen til -mcpu=i386"
-#~ msgid "Invalid mode for integer comparison in gen_compare_reg"
-#~ msgstr "Ugyldig tilstand for heltalssammenligning i gen_compare_reg"
+#~ msgid "Same as -mcpu=i486"
+#~ msgstr "Magen til -mcpu=i486"
-#~ msgid "Invalid register for compare"
-#~ msgstr "Ugyldigt register til sammenligningen"
+#~ msgid "Same as -mcpu=pentium"
+#~ msgstr "Magen til -mcpu=pentium"
+
+#~ msgid "Same as -mcpu=pentiumpro"
+#~ msgstr "Magen til -mcpu=pentiumpro"
+
+#~ msgid "Emit Intel syntax assembler opcodes"
+#~ msgstr "Konstruér instruktionerne til maskinkodeoversætteren med Intel-syntaks"
+
+#~ msgid "invalid %H value"
+#~ msgstr "ugyldig %H-værdi"
+
+#~ msgid "invalid %h value"
+#~ msgstr "ugyldig %h-værdi"
+
+#~ msgid "invalid %Q value"
+#~ msgstr "ugyldig %Q-værdi"
+
+#~ msgid "invalid %q value"
+#~ msgstr "ugyldig %q-værdi"
+
+#~ msgid "invalid %p value"
+#~ msgstr "ugyldig %p-værdi"
+
+#~ msgid "invalid %B value"
+#~ msgstr "ugyldig %B-værdi"
+
+#~ msgid "invalid %C value"
+#~ msgstr "ugyldig %C-værdi"
+
+#~ msgid "invalid %E value"
+#~ msgstr "ugyldig %E-værdi"
+
+#~ msgid "invalid %r value"
+#~ msgstr "ugyldig %r-værdi"
+
+#~ msgid "-mcpu=%s does not support -mips%d"
+#~ msgstr "-mcpu=%s understøtter ikke -mips%d"
#~ msgid "PRINT_OPERAND: letter %c was found & insn was not CONST_INT"
#~ msgstr "PRINT_OPERAND: bogstavet %c blev fundet og instruktionen var ikke CONST_INT"
@@ -14398,20 +22190,8 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "virtual memory exhausted"
#~ msgstr "løbet tør for virtuel hukommelse"
-#~ msgid "destructor for alien class `%s' cannot be a member"
-#~ msgstr "destruktionsfunktionen for den fremmede klasse '%s' kan ikke være et medlem"
-
-#~ msgid "constructor for alien class `%s' cannot be a member"
-#~ msgstr "konstruktionsfunktionen for den fremmede klasse '%s' kan ikke være et medlem"
-
-#~ msgid "trying to make class `%s' a friend of global scope"
-#~ msgstr "forsøg på at gøre klassen '%s' til ven af det globale virkningsfelt"
-
-#~ msgid "parameter invalidly declared method type"
-#~ msgstr "parameteren er på ugyldig vis erklæret som af en medlemsfunktionstype"
-
-#~ msgid "parameter invalidly declared offset type"
-#~ msgstr "parameteren er på ugyldig vis erklæret som af en offset-type"
+#~ msgid "the new ABI requires vtable thunks"
+#~ msgstr "den nye binære grænseflade kræver virtuel tabel-afdelinger"
#~ msgid "`void' in parameter list must be entire list"
#~ msgstr "'void' i en parameterliste skal udgøre hele listen"
@@ -14419,44 +22199,26 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "no file specified with -fdump-translation-unit"
#~ msgstr "ingen filer angivet med -fdump-translation-unit"
+#~ msgid "`__alignof__' applied to a bit-field"
+#~ msgstr "'__alignof__' brugt på et bitfelt"
+
#~ msgid "(you really want to initialize it separately)"
#~ msgstr "(klargør den separat)"
#~ msgid "`operator new' takes type `size_t' parameter"
#~ msgstr "'operator new' skal have en parameter af typen 'size_t'"
-#~ msgid "`operator new' takes type `size_t' as first parameter"
-#~ msgstr "den første parameter til 'operator new' skal være af typen 'size_t'"
-
-#~ msgid "`operator delete' must return type `void'"
-#~ msgstr "'operator delete' skal returnere 'void'"
-
-#~ msgid "`operator delete' takes type `void *' as first parameter"
-#~ msgstr "den første parameter til 'operator delete' skal være af typen 'void *'"
-
-#~ msgid "too many arguments in declaration of `operator delete'"
-#~ msgstr "for mange parametre i erklæringen af 'operator delete'"
-
#~ msgid "`...' invalid in specification of `operator delete'"
#~ msgstr "'...' er ugyldigt i angivelsen af 'operator delete'"
#~ msgid "`default' label within scope of cleanup or variable array"
#~ msgstr "'default'-etiket i oprydningsområde eller i en variabel tabel"
-#~ msgid "bad array initializer"
-#~ msgstr "ugyldig tildeling af startværdi i tabel"
-
-#~ msgid "end of file encountered inside string constant"
-#~ msgstr "nåede slutningen af filen inden i en strengkonstant"
-
-#~ msgid "end of file encountered inside character constant"
-#~ msgstr "nåede slutningen af filen inden i en tegnkonstant"
+#~ msgid "initializer for unnamed base class ambiguous"
+#~ msgstr "klargøring af unavngiven stamklasse er flertydig"
#~ msgid "invalid #pragma vtable"
-#~ msgstr "ugyldig #pragma virtuel tabel"
-
-#~ msgid "invalid `#pragma implementation'"
-#~ msgstr "ugyldig '#pragma implementation'"
+#~ msgstr "ugyldig #pragma vtable"
#~ msgid "universal-character-name designates `%c', part of the basic source character set"
#~ msgstr "universelt tegnnavn står for '%c', som er en del af det basale kildekodetegnsæt"
@@ -14467,11 +22229,17 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "complex integer constant is too wide for `__complex int'"
#~ msgstr "kompleks heltalskonstant er for bred til '__complex int'"
-#~ msgid "request for member `%s' is ambiguous in multiple inheritance lattice"
-#~ msgstr "forespørgsel efter medlemmet '%s' er flertydigt i et net af multipel nedarvning"
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "flertydig forespørgsel efter medlemsfunktionshenvisningen '%s'"
-#~ msgid "Internal compiler error."
-#~ msgstr "Intern oversætterfejl."
+#~ msgid "taking dynamic typeid of object with -fno-rtti"
+#~ msgstr "forsøg på at finde den dynamiske typeid af et objekt med -fno-rtti"
+
+#~ msgid "`com_interface' only supported with -fvtable-thunks"
+#~ msgstr "'com_interface' understøttes kun med -fvtable-thunks"
+
+#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#~ msgstr "ugyldig reference til NULL-henvisning, benyt en henvisning til medlem i stedet"
#~ msgid "Please submit a full bug report."
#~ msgstr "Send venligst en komplet fejlrapport."
@@ -14488,30 +22256,15 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "range values reversed"
#~ msgstr "intervalværdierne vender omvendt"
+#~ msgid "Can't create cross-reference file `%s'"
+#~ msgstr "Kan ikke oprette krydsreferencefilen '%s'"
+
#~ msgid "bad is_error(%d) in v_message"
#~ msgstr "ugyldig is_error(%d) i v_message"
-#~ msgid "'defined' without an identifier"
-#~ msgstr "'defined' optræder uden et kaldenavn"
-
-#~ msgid "string constants are not allowed in #if expressions"
-#~ msgstr "strengkonstanter er ikke tilladt i '#if'-udtryk"
-
-#~ msgid "included file `%s' exists but is not readable"
-#~ msgstr "den inkluderede fil '%s' eksisterer, men kan ikke læses"
-
-#~ msgid "%s is a directory"
-#~ msgstr "%s er et katalog"
-
-#~ msgid "macro argument \"%s\" is stringified"
-#~ msgstr "makroparameteren \"%s\" er blevet gjort til en streng"
-
#~ msgid "`##' at start of macro definition"
#~ msgstr "'##' i begyndelsen af makrodefinitionen"
-#~ msgid "`##' at end of macro definition"
-#~ msgstr "'##' ved slutningen af makrodefinitionen"
-
#~ msgid "empty object-like macro went through full #define"
#~ msgstr "en tom objektlignende makro gik gennem komplet #define"
@@ -14522,7 +22275,7 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgstr "umuligt symbol i makroparameterlisten"
#~ msgid "illegal token in macro argument list"
-#~ msgstr "ulovligt symbol i makroparameterlisten"
+#~ msgstr "ugyldigt symbol i makroparameterlisten"
#~ msgid "another parameter follows \"...\""
#~ msgstr "der optræder en parameter mere efter \"...\""
@@ -14557,6 +22310,9 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "macro `%s' used with too many (%d) args"
#~ msgstr "makroen '%s' kaldt med for mange (%d) parametre"
+#~ msgid "buffers still stacked in cpp_finish"
+#~ msgstr "mellemlagre er stadig stakket op i cpp_finish"
+
#~ msgid ""
#~ "Switches:\n"
#~ " -include <file> Include the contents of <file> before other files\n"
@@ -14644,8 +22400,8 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ " -o <fil> Send uddata til <fil>\n"
#~ " -pedantic Fremkom med alle advarsler påkrævet for nøje ISO C\n"
#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
-#~ " -traditional Iagttag opførsel som en K&R-forbehandler\n"
-#~ " -trigraphs Understøt ANSI C trigrafer\n"
+#~ " -traditional Iagttag opførsel som en K&R-præprocessor\n"
+#~ " -trigraphs Understøt ANSI C-trigrafer\n"
#~ " -lang-c Antag at inddata er C\n"
#~ " -lang-c89 Antag at inddata er C89\n"
#~ " -lang-c++ Antag at inddata er C++\n"
@@ -14672,7 +22428,7 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ " -Wno-import Advar ikke om brug af #import\n"
#~ " -Werror Behandl alle advarsler som fejl\n"
#~ " -Wno-error Behandl ikke alle advarsler som fejl\n"
-#~ " -Wall Slå alle forbehandleradvarsler til\n"
+#~ " -Wall Slå alle præprocessoradvarsler til\n"
#~ " -M Generér afhængigheder til make\n"
#~ " -MM Som -M, men ignorér systeminkluderingsfiler\n"
#~ " -MD Som -M, men anbring uddata i en '.d'-fil\n"
@@ -14710,29 +22466,17 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "C++ style comments are not allowed in traditional C"
#~ msgstr "kommentarer i C++-stil er ikke tilladt i traditionel C"
-#~ msgid "embedded null character ignored"
-#~ msgstr "indlejret nultegn ignoreret"
-
#~ msgid "string constant runs past end of line"
#~ msgstr "strengkonstanten går ud over slutningen af linjen"
-#~ msgid "\\r escape inside string constant"
-#~ msgstr "\\r-undvigetegn i strengkonstant"
-
-#~ msgid "null characters in string or character constant"
-#~ msgstr "nultegn i streng- eller tegnkonstant"
-
#~ msgid "missing '>' in `#include <FILENAME>'"
#~ msgstr "manglende '>' i '#include <FILNAVN>'"
-#~ msgid "unrecognized escape \\r%c"
-#~ msgstr "ukendt undvigetegn \\r%c"
-
#~ msgid "vertical tab in preprocessing directive"
-#~ msgstr "lodret tabulator i forbehandlerdirektiv"
+#~ msgstr "lodret tabulator i præprocessordirektiv"
#~ msgid "form feed in preprocessing directive"
-#~ msgstr "sideskift i forbehandlerdirektiv"
+#~ msgstr "sideskift i præprocessordirektiv"
#~ msgid "null character preserved"
#~ msgstr "nultegn bevaret"
@@ -14770,14 +22514,8 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "cannot undefine poisoned \"%s\""
#~ msgstr "kan ikke glemme definitionen af forgiftet \"%s\""
-#~ msgid "malformed #pragma implementation"
-#~ msgstr "forkert udformet '#pragma implementation'"
-
-#~ msgid "#%s with no argument"
-#~ msgstr "#%s uden parametre"
-
#~ msgid "#%s with invalid argument"
-#~ msgstr "#%s med ugyldigt parameter"
+#~ msgstr "#%s med ugyldig parameter"
#~ msgid "Cannot duplicate non-existant exception region."
#~ msgstr "Kan ikke mangfoldiggøre en ikkeeksisterende undtagelsesregion."
@@ -14785,8 +22523,11 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "Never issued previous false_label"
#~ msgstr "Sørgede ikke for tidligere false_label"
-#~ msgid "Basic blocks not numbered consecutively"
-#~ msgstr "Basisblokkene er ikke nummeret i rækkefølge"
+#~ msgid "output_operand: %s"
+#~ msgstr "output_operand: %s"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d\n"
#~ msgid "file path prefix `%s%s' never used"
#~ msgstr "stipræfikset '%s%s' blev aldrig brugt"
@@ -14794,8 +22535,8 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "file path prefix `%s' never used"
#~ msgstr "stipræfikset '%s' blev aldrig brugt"
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: tilvalget '%s' er flertydigt\n"
+#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
+#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n"
#~ msgid "%s: option `--%s' doesn't allow an argument\n"
#~ msgstr "%s: tilvalget '--%s' tillader ikke en parameter\n"
@@ -14821,23 +22562,50 @@ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
#~ msgid "%s: option requires an argument -- %c\n"
#~ msgstr "%s: tilvalget skal have en parameter -- %c\n"
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: tilvalget '-W %s' er flertydigt\n"
-
#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
#~ msgstr "%s: tilvalget '-W %s' tillader ikke en parameter\n"
-#~ msgid "function with complex parameters cannot be inline"
-#~ msgstr "funktioner med complex-parametre kan ikke indbygges"
-
#~ msgid "Objective-C text in C source file"
#~ msgstr "Objective C-tekst i C-kildekodefil"
#~ msgid "statically allocated objects not supported"
#~ msgstr "statisk allokerede objekter understøttes ikke"
+#~ msgid "`asm' cannot be used in function where memory usage is checked"
+#~ msgstr "'asm' kan ikke benyttes i funktioner hvor hukommelsesforbruget bliver tjekket"
+
+#~ msgid "`asm' cannot be used with `-fcheck-memory-usage'"
+#~ msgstr "'asm' kan ikke benyttes sammen med '-fcheck-memory-usage'"
+
+#~ msgid "output operand constraint %d contains `+'"
+#~ msgstr "uddataoperandbegrænsning %d indeholder '+'"
+
+#~ msgid "hard register `%s' listed as input operand to `asm'"
+#~ msgstr "hardware-register '%s' angivet som inddataoperand til 'asm'"
+
#~ msgid "output pipe has been closed"
#~ msgstr "uddataledningen er blevet lukket"
+#~ msgid "Errors detected in input file (your bison.simple is out of date)\n"
+#~ msgstr "Fandt fejl i inddatafilen (din bison.simple er forældet)\n"
+
+#~ msgid "Data size %ld.\n"
+#~ msgstr "Datastørrelse %ld.\n"
+
#~ msgid "Unknown stab %s: : 0x%x\n"
#~ msgstr "Ukendt stab %s: : 0x%x\n"
+
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "__builtin_trap understøttes ikke på denne målarkitektur"
+
+#~ msgid "`%s' previously defined here"
+#~ msgstr "'%s' tidligere defineret her"
+
+#~ msgid "`%s' previously declared here"
+#~ msgstr "'%s' tidligere erklæret her"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "profilgenerering understøtter ikke andre kodemodeller end medlow"
+
+#~ msgid "Control allocation order of integer registers"
+#~ msgstr "Kontrollér tildelingsordenen for heltalsregistrene"
diff --git a/gcc/po/de.po b/gcc/po/de.po
new file mode 100644
index 00000000000..5e0dd7ee44b
--- /dev/null
+++ b/gcc/po/de.po
@@ -0,0 +1,20833 @@
+# German translation of gcc messages.
+# Copyright © 2002, 2003, 2004 Free Software Foundation, Inc.
+# Karl Eichwalder <ke@suse.de>, 2002, 2003.
+# Roland Stigge <stigge@antcom.de>, 2003, 2004.
+# This file is distributed under the same license as the gcc package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2004-01-25 01:28+0100\n"
+"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: attribs.c:185
+#, c-format
+msgid "`%s' attribute directive ignored"
+msgstr "Attribut-Anweisung »%s« wird ignoriert"
+
+#: attribs.c:193
+#, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "falsche Anzahl an Argumenten für das Attribut »%s« angegeben"
+
+#: attribs.c:210
+#, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr "Attribut »%s« kann nicht auf Typen angewandt werden"
+
+#: attribs.c:247
+#, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr "Attribut »%s« kann nur auf Funktionstypen angewandt werden"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, c-format
+msgid "`%s' attribute ignored"
+msgstr "Attribut »%s« wird ignoriert"
+
+#: builtins.c:285
+msgid "offset outside bounds of constant string"
+msgstr "Adressabstand ist außerhalb der Grenzen der konstanten Zeichenkette"
+
+#: builtins.c:765
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "zweites Argument für »__builtin_prefetch« muss eine Konstante sein"
+
+#: builtins.c:772
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr "ungültiges zweites Argument für »__builtin_prefetch«; benutze Null"
+
+#: builtins.c:779
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "drittes Argument für »__builtin_prefetch« muss eine Konstante sein"
+
+#: builtins.c:786
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr "ungültiges drittes Argument für »__builtin_prefetch«; benutze Null"
+
+#. ??? We used to try and build up a call to the out of line function,
+#. guessing about what registers needed saving etc. This became much
+#. harder with __builtin_va_start, since we don't have a tree for a
+#. call to __builtin_saveregs to fall back on. There was exactly one
+#. port (i860) that used this code, and I'm unconvinced it could actually
+#. handle the general case. So we no longer try to handle anything
+#. weird and make the backend absorb the evil.
+#: builtins.c:2875
+msgid "__builtin_saveregs not supported by this target"
+msgstr "__builtin_saveregs wird von diesem Ziel nicht unterstützt"
+
+#: builtins.c:2917
+msgid "argument of `__builtin_args_info' must be constant"
+msgstr "Argument von »__builtin_args_info« muss konstant sein"
+
+#: builtins.c:2923
+msgid "argument of `__builtin_args_info' out of range"
+msgstr "Argument von »__builtin_args_info« außerhalb des Wertebereichs"
+
+#: builtins.c:2929
+msgid "missing argument in `__builtin_args_info'"
+msgstr "fehlendes Argument in »__builtin_args_info«"
+
+#: builtins.c:2960
+msgid "`va_start' used in function with fixed args"
+msgstr "»va_start« in Funktion mit fester Parameterzahl verwendet"
+
+#: builtins.c:2979
+msgid "second parameter of `va_start' not last named argument"
+msgstr "zweiter Parameter von »va_start« ist nicht letztgenanntes Argument"
+
+#. Evidently an out of date version of <stdarg.h>; can't validate
+#. va_start's second argument, but can still work as intended.
+#: builtins.c:2984
+msgid "`__builtin_next_arg' called without an argument"
+msgstr "»__builtin_next_arg« ohne Argument gerufen"
+
+#: builtins.c:3070
+msgid "too many arguments to function `va_start'"
+msgstr "zu viele Argumente für »va_start«"
+
+#: builtins.c:3172
+msgid "first argument to `va_arg' not of type `va_list'"
+msgstr "erstes Argument für »va_arg« nicht vom Typ »va_list«"
+
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
+#, c-format
+msgid "`%s' is promoted to `%s' when passed through `...'"
+msgstr "»%s« auf »%s« gesetzt beim Durchlaufen von »...«"
+
+#: builtins.c:3209
+#, c-format
+msgid "(so you should pass `%s' not `%s' to `va_arg')"
+msgstr "(Sie sollten also »%s« statt »%s« an »va_arg« übergeben)"
+
+#: builtins.c:3340
+msgid "invalid arg to `__builtin_frame_address'"
+msgstr "ungültiges Argument für »__builtin_frame_address«"
+
+#: builtins.c:3342
+msgid "invalid arg to `__builtin_return_address'"
+msgstr "ungültiges Argument für »__builtin_return_address«"
+
+#: builtins.c:3356
+msgid "unsupported arg to `__builtin_frame_address'"
+msgstr "nicht unterstütztes Argument für »__builtin_frame_address«"
+
+#: builtins.c:3358
+msgid "unsupported arg to `__builtin_return_address'"
+msgstr "nicht unterstütztes Argument für »__builtin_return_address«"
+
+#: builtins.c:3530
+msgid "second arg to `__builtin_expect' must be a constant"
+msgstr "zweites Argument für »__builtin_expect« muss eine Konstante sein"
+
+#: builtins.c:4028
+msgid "__builtin_longjmp second argument must be 1"
+msgstr "zweites Argument für __builtin_longjmp muss 1 sein"
+
+#. just do library call, if unknown builtin
+#: builtins.c:4092 c-common.c:4459
+#, c-format
+msgid "built-in function `%s' not currently supported"
+msgstr "eingebaute Funktion »%s« gegenwärtig nicht unterstützt"
+
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "Zielformat unterstützt nicht »unendlich«"
+
+#: c-common.c:1168
+#, c-format
+msgid "`%s' is not defined outside of function scope"
+msgstr "»%s« ist außerhalb des Funktionsgültigkeitsbereiches undefiniert"
+
+#: c-common.c:1189
+#, c-format
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr "Zeichenkettenlänge »%d« ist größer als die Länge »%d«, die von ISO-C%d-Compilern unterstützt werden muss"
+
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "Verkettung von Zeichenkettenliteralen mit __FUNCTION__ ist veraltet"
+
+#: c-common.c:1343
+msgid "overflow in constant expression"
+msgstr "Ãœberlauf in Konstanten-Ausdruck"
+
+#: c-common.c:1364
+msgid "integer overflow in expression"
+msgstr "Ganzzahlüberlauf in Ausdruck"
+
+#: c-common.c:1373
+msgid "floating point overflow in expression"
+msgstr "Gleitkommaüberlauf in Ausdruck"
+
+#: c-common.c:1379
+msgid "vector overflow in expression"
+msgstr "Vektorüberlauf in Ausdruck"
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:1402
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten"
+
+#: c-common.c:1404
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert"
+
+#: c-common.c:1452
+msgid "overflow in implicit constant conversion"
+msgstr "Ãœberlauf in impliziter Konstantenkonvertierung"
+
+#: c-common.c:1600
+#, c-format
+msgid "operation on `%s' may be undefined"
+msgstr "Operation auf »%s« könnte undefiniert sein"
+
+#: c-common.c:1891
+msgid "expression statement has incomplete type"
+msgstr "Ausdrucksanweisung hat unvollständigen Typ"
+
+#: c-common.c:1924
+msgid "case label does not reduce to an integer constant"
+msgstr "case-Marke reduziert nicht auf Ganzzahlkonstante"
+
+#: c-common.c:2228
+msgid "invalid truth-value expression"
+msgstr "ungültiger Wahrheitswert-Ausdruck"
+
+#: c-common.c:2279
+#, c-format
+msgid "invalid operands to binary %s"
+msgstr "ungültige Operanden für binäres %s"
+
+#: c-common.c:2513
+msgid "comparison is always false due to limited range of data type"
+msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »unwahr«"
+
+#: c-common.c:2515
+msgid "comparison is always true due to limited range of data type"
+msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »wahr«"
+
+#: c-common.c:2585
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "Vergleich eines vorzeichenlosen Ausdrucks >= 0 ist stets »wahr«"
+
+#: c-common.c:2594
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "Vergleich eines vorzeichenlosen Ausdrucks < 0 ist stets »unwahr«"
+
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "Zeiger auf Typen »void *« in Arithmetik verwendet"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "Zeiger auf Funktion in Arithmetik verwendet"
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr "Zeiger auf member-Funktion in Arithmetik verwendet"
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr "Zeiger auf member in Arithmetik verwendet"
+
+#: c-common.c:2746 f/com.c:14762
+msgid "struct type value used where scalar is required"
+msgstr "Wert eines struct-Typs anstelle des geforderten Skalars verwendet"
+
+#: c-common.c:2750 f/com.c:14766
+msgid "union type value used where scalar is required"
+msgstr "Wert eines union-Typs anstelle des geforderten Skalars verwendet"
+
+#: c-common.c:2754 f/com.c:14770
+msgid "array type value used where scalar is required"
+msgstr "Wert eines array-Typs anstelle des geforderten Skalars verwendet"
+
+#: c-common.c:2874 f/com.c:14903
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "schlage Klammern um Zuweisung, die als Wahrheitswert verwendet wird, vor"
+
+#: c-common.c:2918 c-common.c:2950
+msgid "invalid use of `restrict'"
+msgstr "ungültige Verwendung von »restrict«"
+
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ungültige Anwendung von »sizeof« auf einen Funktionstypen"
+
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "ungültige Anwendung von »%s« auf einen void-Typen"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "ungültige Anwendung von »%s« auf einen unvollständigen Typen"
+
+#: c-common.c:3121
+msgid "`__alignof' applied to a bit-field"
+msgstr "»__alignof« auf Bitfeld angewandt"
+
+#: c-common.c:3618
+#, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "kann eingebaute Funktion »%s« nicht abschalten"
+
+#: c-common.c:3787 c-typeck.c:1748
+#, c-format
+msgid "too few arguments to function `%s'"
+msgstr "zu wenig Argumente für Funktion »%s«"
+
+#: c-common.c:3793 c-typeck.c:1601
+#, c-format
+msgid "too many arguments to function `%s'"
+msgstr "zu viele Argumente für Funktion »%s«"
+
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "nicht-Gleitkomma-Argument für Funktion »%s«"
+
+#: c-common.c:4081
+msgid "pointers are not permitted as case values"
+msgstr "Zeiger sind nicht als case-Werte zugelassen"
+
+#: c-common.c:4087
+msgid "ISO C++ forbids range expressions in switch statements"
+msgstr "ISO-C++ verbietet Wertebereichsausdrücke in switch-Anweisungen"
+
+#: c-common.c:4089
+msgid "ISO C forbids range expressions in switch statements"
+msgstr "ISO-C verbietet Wertebereichsausdrücke in switch-Anweisungen"
+
+#: c-common.c:4119
+msgid "empty range specified"
+msgstr "leerer Wertebereich angegeben"
+
+#: c-common.c:4170
+msgid "duplicate (or overlapping) case value"
+msgstr "doppelte (oder sich überschneidende) case-Werte"
+
+#: c-common.c:4172
+msgid "this is the first entry overlapping that value"
+msgstr "dies ist der erste Eintrag, der diesen Wert überschneidet"
+
+#: c-common.c:4176
+msgid "duplicate case value"
+msgstr "doppelter case-Wert"
+
+#: c-common.c:4177
+msgid "previously used here"
+msgstr "bereits hier verwendet"
+
+#: c-common.c:4181
+msgid "multiple default labels in one switch"
+msgstr "mehrere Standardmarken in einem »switch«"
+
+#: c-common.c:4182
+msgid "this is the first default label"
+msgstr "dies ist die erste Standardmarke"
+
+#: c-common.c:4210
+msgid "ISO C++ forbids taking the address of a label"
+msgstr "ISO-C++ verbietet die Adresse einer Marke"
+
+#: c-common.c:4212
+msgid "ISO C forbids taking the address of a label"
+msgstr "ISO-C verbietet die Adresse einer Marke"
+
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "Deklaration von »%s« verdeckt %s"
+
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "unbekannter Maschinenzustand »%s«"
+
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "kein Datentyp für Zustand »%s«"
+
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "»%s« kann nicht emuliert werden"
+
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "Abschnitts-Attribut kann nicht für lokale Variablen angegeben werden"
+
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "Abschnitt von »%s« in Konflikt mit vorheriger Deklaration"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "Abschnitts-Attribute nicht erlaubt für »%s«"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "Abschnitts-Attribute werden für dieses Ziel nicht unterstützt"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "verlangte Ausrichtung ist keine Konstante"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "verlangte Ausrichtung ist keine Zweierpotenz"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "verlangte Ausrichtung ist zu groß"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "für »%s« darf keine Ausrichtung angegeben werden"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "»%s« sowohl normal als auch als Alias definiert"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "Alias-Argument ist keine Zeichenkette"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "Sichtbarkeitsargument ist keine Zeichenkette"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "Sichtbarkeitsargument muss »default«, »hidden«, »protected« oder »internal« sein"
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "Argument für tls_model ist keine Zeichenkette"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "Argument für tls_model muss »local-exec«, »initial-exec«, »local-dynamic« oder »global-dynamic« sein"
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "Attribut »%s« kann nur auf Funktionen angewandt werden"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "kann Attribut »%s« nicht nach der Definition setzen"
+
+#: c-common.c:6114
+msgid "cleanup arg not an identifier"
+msgstr "Argument für cleanup ist kein Bezeichner"
+
+#: c-common.c:6121
+msgid "cleanup arg not a function"
+msgstr "Argument für cleanup ist keine Funktion"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "Attribut »%s« ignoriert für »%s«"
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "ungültiger Vektortyp für Attribut »%s«"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "Vektorzustand mit der angegebenen Größe und dem angegebenen Typ konnte nicht gefunden werden"
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "Nicht-Null-Attribut ohne Argumente für einen Nicht-Prototyp"
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "Nicht-Null-Argument hat ungültige Operandenzahl (Argument %lu)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "Nicht-Null-Argument mit Operandenzahl außerhalb des Wertebereiches (Argument %lu, Operand %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "Nicht-Null-Argument referenziert Nicht-Zeiger-Operanden (Argument %lu, Operand %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "Null-Argument, wo Nicht-Null erwartet (Argument %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr "void-Wert nicht ignoriert wie es sein sollte"
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr "Konvertierung zu Nicht-Skalar-Typ verlangt"
+
+#: c-decl.c:340
+#, c-format
+msgid "array `%s' assumed to have one element"
+msgstr "Feld »%s« als einelementig betrachtet"
+
+#: c-decl.c:526
+#, c-format
+msgid "`struct %s' incomplete in scope ending here"
+msgstr "»struct %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#: c-decl.c:529
+#, c-format
+msgid "`union %s' incomplete in scope ending here"
+msgstr "»union %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#: c-decl.c:532
+#, c-format
+msgid "`enum %s' incomplete in scope ending here"
+msgstr "»enum %s« im Gültigkeitsbereich, der hier endet, unvollständig"
+
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
+#, c-format
+msgid "label `%s' used but not defined"
+msgstr "Marke »%s« verwendet, aber nicht definiert"
+
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
+#, c-format
+msgid "label `%s' defined but not used"
+msgstr "Marke »%s« definiert aber nicht verwendet"
+
+#: c-decl.c:893 cp/decl.c:3335
+#, c-format
+msgid "function `%s' redeclared as inline"
+msgstr "Funktion »%s« als inline redeklariert"
+
+#: c-decl.c:895 cp/decl.c:3337
+#, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "vorherige Deklaration der Funktion »%s« mit Attribut noinline"
+
+#: c-decl.c:902 cp/decl.c:3344
+#, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr "Funktion »%s« redeklariert mit Attribut noinline"
+
+#: c-decl.c:904 cp/decl.c:3346
+#, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "vorherige Deklaration der Funktion »%s« war inline"
+
+#: c-decl.c:933 c-decl.c:979
+#, c-format
+msgid "shadowing built-in function `%s'"
+msgstr "eingebaute Funktion »%s« überdeckt"
+
+#: c-decl.c:935
+#, c-format
+msgid "shadowing library function `%s'"
+msgstr "Bibliotheksfunktion »%s« überdeckt"
+
+#: c-decl.c:941
+#, c-format
+msgid "library function `%s' declared as non-function"
+msgstr "Bibliotheksfunktion »%s« als Nicht-Funktion deklariert"
+
+#: c-decl.c:945 c-decl.c:948
+#, c-format
+msgid "built-in function `%s' declared as non-function"
+msgstr "eingebaute Funktion »%s« als Nicht-Funktion deklariert"
+
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
+#, c-format
+msgid "`%s' redeclared as different kind of symbol"
+msgstr "»%s« redeklariert als andere Symbolart"
+
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
+#, c-format
+msgid "previous declaration of `%s'"
+msgstr "vorherige Deklaration von »%s«"
+
+#. If types don't match for a built-in, throw away the built-in.
+#: c-decl.c:1048
+#, c-format
+msgid "conflicting types for built-in function `%s'"
+msgstr "in Konflikt stehende Typen für eingebaute Funktion »%s«"
+
+#: c-decl.c:1091 c-decl.c:1110
+#, c-format
+msgid "conflicting types for `%s'"
+msgstr "in Konflikt stehende Typen für »%s«"
+
+#: c-decl.c:1133
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr "eine Parameterliste mit Auslassung passt nicht zu einer leeren Parameternamenslistendeklaration"
+
+#: c-decl.c:1139
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr "ein Argumenttyp mit Standard-promotion passt nicht zu leerer Parameternamenslistendeklaration"
+
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "Thread-lokale Deklaration von »%s« folgt nicht-Thread-lokaler Deklaration"
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "Nicht-Thread-lokale Deklaration von »%s« folgt Thread-lokaler Deklaration"
+
+#: c-decl.c:1175 c-decl.c:1198
+#, c-format
+msgid "redefinition of `%s'"
+msgstr "Redefinition von »%s«"
+
+#: c-decl.c:1178
+#, c-format
+msgid "redeclaration of `%s'"
+msgstr "Redeklaration von »%s«"
+
+#: c-decl.c:1181
+#, c-format
+msgid "conflicting declarations of `%s'"
+msgstr "in Konflikt stehende Deklarationen von »%s«"
+
+#: c-decl.c:1225
+#, c-format
+msgid "prototype for `%s' follows"
+msgstr "Prototyp für »%s« folgt"
+
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
+msgid "non-prototype definition here"
+msgstr "Nicht-Prototyp-Definition hier"
+
+#: c-decl.c:1233
+#, c-format
+msgid "prototype for `%s' follows and number of arguments doesn't match"
+msgstr "Prototyp für »%s« folgt und Anzahl der Argumente passt nicht"
+
+#: c-decl.c:1243
+#, c-format
+msgid "prototype for `%s' follows and argument %d doesn't match"
+msgstr "Prototyp für »%s« folgt und Argument %d passt nicht"
+
+#: c-decl.c:1261
+#, c-format
+msgid "`%s' declared inline after being called"
+msgstr "»%s« als inline deklariert nachdem es aufgerufen wurde"
+
+#: c-decl.c:1267
+#, c-format
+msgid "`%s' declared inline after its definition"
+msgstr "»%s« nach der Definition als inline deklariert"
+
+#: c-decl.c:1274
+#, c-format
+msgid "static declaration for `%s' follows non-static"
+msgstr "statische Deklaration für »%s« folgt Nicht-static"
+
+#: c-decl.c:1282
+#, c-format
+msgid "non-static declaration for `%s' follows static"
+msgstr "Nicht-static-Deklaration für »%s« folgt static"
+
+#: c-decl.c:1289
+#, c-format
+msgid "const declaration for `%s' follows non-const"
+msgstr "const-Deklaration für »%s« folgt Nicht-const"
+
+#: c-decl.c:1296
+#, c-format
+msgid "type qualifiers for `%s' conflict with previous decl"
+msgstr "Typ-Kennzeichner für »%s« stehen in Konflikt mit vorheriger Deklaration"
+
+#: c-decl.c:1309
+#, c-format
+msgid "redundant redeclaration of `%s' in same scope"
+msgstr "redundante Redeklaration von »%s« im selben Gültigkeitsbereich"
+
+#: c-decl.c:1619 java/decl.c:1102
+#, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr "Deklaration von »%s« überdeckt einen Parameter"
+
+#: c-decl.c:1622 java/decl.c:1105
+#, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr "Deklaration von »%s« überdeckt ein Symbol aus der Parameterliste"
+
+#: c-decl.c:1643 cp/decl.c:4479
+msgid "a parameter"
+msgstr "ein Parameter"
+
+#: c-decl.c:1645 cp/decl.c:4496
+msgid "a previous local"
+msgstr "ein vorheriges »local«"
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+msgid "a global declaration"
+msgstr "eine globale Deklaration"
+
+#: c-decl.c:1693
+#, c-format
+msgid "nested extern declaration of `%s'"
+msgstr "geschachtelte extern-Deklaration von »%s«"
+
+#: c-decl.c:1712 java/decl.c:1055
+#, c-format
+msgid "`%s' used prior to declaration"
+msgstr "»%s« bereits vor Deklaration benutzt"
+
+#: c-decl.c:1726 c-decl.c:1901
+#, c-format
+msgid "`%s' was declared implicitly `extern' and later `static'"
+msgstr "»%s« wurde implizit als »extern« und später als »static« deklariert"
+
+#: c-decl.c:1829 cp/decl.c:4336
+msgid "type mismatch with previous external decl"
+msgstr "Typen passen nicht zu vorheriger externer Deklaration"
+
+#: c-decl.c:1830
+#, c-format
+msgid "previous external decl of `%s'"
+msgstr "vorherige externe Deklaration von »%s«"
+
+#: c-decl.c:1843
+msgid "type mismatch with previous implicit declaration"
+msgstr "Typen passen nicht zu vorheriger impliziter Deklaration"
+
+#: c-decl.c:1845
+#, c-format
+msgid "previous implicit declaration of `%s'"
+msgstr "vorherige implizite Deklaration von »%s«"
+
+#: c-decl.c:1880
+#, c-format
+msgid "`%s' was previously implicitly declared to return `int'"
+msgstr "»%s« wurde bereits implizit deklariert, »int« zurückzugeben"
+
+#: c-decl.c:1905
+#, c-format
+msgid "`%s' was declared `extern' and later `static'"
+msgstr "»%s« wurde »extern« deklariert und später »static«"
+
+#: c-decl.c:1929
+#, c-format
+msgid "extern declaration of `%s' doesn't match global one"
+msgstr "extern-Deklaration von »%s« passt nicht zu globaler Deklaration"
+
+#: c-decl.c:1971
+#, c-format
+msgid "`%s' locally external but globally static"
+msgstr "»%s« ist lokal extern, aber global »static«"
+
+#: c-decl.c:2095
+#, c-format
+msgid "function `%s' was previously declared within a block"
+msgstr "Funktion »%s« wurde bereits innerhalb eines Blockes deklariert"
+
+#: c-decl.c:2115 c-decl.c:2117
+#, c-format
+msgid "implicit declaration of function `%s'"
+msgstr "implizite Deklaration der Funktion »%s«"
+
+#: c-decl.c:2196
+#, c-format
+msgid "label %s referenced outside of any function"
+msgstr "Marke %s außerhalb einer Funktion referenziert"
+
+#: c-decl.c:2253
+#, c-format
+msgid "duplicate label declaration `%s'"
+msgstr "doppelte Markendeklaration »%s«"
+
+#: c-decl.c:2256
+msgid "this is a previous declaration"
+msgstr "dies ist eine vorherige Deklaration"
+
+#: c-decl.c:2679
+msgid "unnamed struct/union that defines no instances"
+msgstr "unbenannte struct/union, die keine Instanzen definiert"
+
+#: c-decl.c:2698
+msgid "useless keyword or type name in empty declaration"
+msgstr "nutzloses Schlüsselwort oder Typenname in leerer Deklaration"
+
+#: c-decl.c:2705
+msgid "two types specified in one empty declaration"
+msgstr "zwei Typen in einer leeren Deklaration angegeben"
+
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
+msgid "empty declaration"
+msgstr "leere Deklaration"
+
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO-C90 unterstützt kein »static« oder Typkennzeichner in Parameterfelddeklaratoren"
+
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO-C90 unterstützt nicht »[*]«-Felddeklaratoren"
+
+#: c-decl.c:2745
+msgid "GCC does not yet properly implement `[*]' array declarators"
+msgstr "GCC implementiert nocht keine richtigen »[*]«-Felddeklaratoren"
+
+#: c-decl.c:2764
+msgid "static or type qualifiers in abstract declarator"
+msgstr "static oder Typkennzeichner in abstraktem Deklarator"
+
+#: c-decl.c:2838
+#, c-format
+msgid "`%s' is usually a function"
+msgstr "»%s« ist üblicherweise eine Funktion"
+
+#: c-decl.c:2847
+#, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef »%s« ist initialisiert (benutzen Sie stattdessen __typeof__)"
+
+#: c-decl.c:2853
+#, c-format
+msgid "function `%s' is initialized like a variable"
+msgstr "Funktion »%s« ist wie eine Variable initialisiert"
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:2860
+#, c-format
+msgid "parameter `%s' is initialized"
+msgstr "Parameter »%s« ist initialisiert"
+
+#: c-decl.c:2880 c-typeck.c:4895
+msgid "variable-sized object may not be initialized"
+msgstr "Objekt variabler Größe darf nicht initialisiert werden"
+
+#: c-decl.c:2886
+#, c-format
+msgid "variable `%s' has initializer but incomplete type"
+msgstr "Variable »%s« hat Initialisierung aber unvollständigen Typ"
+
+#: c-decl.c:2892
+#, c-format
+msgid "elements of array `%s' have incomplete type"
+msgstr "Elemente des Feldes »%s« haben unvollständigen Typ"
+
+#: c-decl.c:2905
+#, c-format
+msgid "declaration of `%s' has `extern' and is initialized"
+msgstr "Deklaration von »%s« hat »extern« und ist initialisiert"
+
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr "inline-Funktion »%s« wurde das Attribut »noinline« gegeben"
+
+#: c-decl.c:3028
+#, c-format
+msgid "initializer fails to determine size of `%s'"
+msgstr "Initialisierung scheitert an Größenbestimmung von »%s«"
+
+#: c-decl.c:3033
+#, c-format
+msgid "array size missing in `%s'"
+msgstr "Feldgröße in »%s« fehlt"
+
+#: c-decl.c:3049
+#, c-format
+msgid "zero or negative size array `%s'"
+msgstr "Feldgröße von »%s« ist null oder negativ"
+
+#: c-decl.c:3077
+#, c-format
+msgid "storage size of `%s' isn't known"
+msgstr "Speichergröße von »%s« unbekannt"
+
+#: c-decl.c:3087
+#, c-format
+msgid "storage size of `%s' isn't constant"
+msgstr "Speichergröße von »%s« unbekannt"
+
+#: c-decl.c:3147
+#, c-format
+msgid "ignoring asm-specifier for non-static local variable `%s'"
+msgstr "ignoriere asm-Symbol für lokale Nicht-static Variable »%s«"
+
+#: c-decl.c:3247
+#, c-format
+msgid "ISO C forbids parameter `%s' shadowing typedef"
+msgstr "ISO-C verbietet typedef verdeckenden Parameter »%s«"
+
+#: c-decl.c:3592 cp/decl.c:10880
+msgid "`long long long' is too long for GCC"
+msgstr "»long long long« ist für GCC zu lang"
+
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO-C90 unterstützt nicht »long long«"
+
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
+#, c-format
+msgid "duplicate `%s'"
+msgstr "doppeltes »%s«"
+
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "»__thread« vor »extern«"
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "»__thread« vor »static«"
+
+#: c-decl.c:3629 cp/decl.c:10921
+#, c-format
+msgid "two or more data types in declaration of `%s'"
+msgstr "zwei oder mehr Datentypen in Deklaration von »%s«"
+
+#: c-decl.c:3649 cp/decl.c:10926
+#, c-format
+msgid "`%s' fails to be a typedef or built in type"
+msgstr "»%s« ist kein typedef oder eingebauter Typ"
+
+#: c-decl.c:3688
+#, c-format
+msgid "type defaults to `int' in declaration of `%s'"
+msgstr "»int« ist Standardtyp in Deklaration von »%s«"
+
+#: c-decl.c:3717
+#, c-format
+msgid "both long and short specified for `%s'"
+msgstr "sowohl »long« als auch »short« für »%s« angegeben"
+
+#: c-decl.c:3721 cp/decl.c:11041
+#, c-format
+msgid "long or short specified with char for `%s'"
+msgstr "»long« oder »short« mit »char« für »%s« angegeben"
+
+#: c-decl.c:3728 cp/decl.c:11045
+#, c-format
+msgid "long or short specified with floating type for `%s'"
+msgstr "»long« oder »short« mit Gleitkommatyp für »%s« angegeben"
+
+#: c-decl.c:3731
+msgid "the only valid combination is `long double'"
+msgstr "die einzig gültige Kombination ist »long double«"
+
+#: c-decl.c:3737
+#, c-format
+msgid "both signed and unsigned specified for `%s'"
+msgstr "sowohl »signed« als auch »unsigned« für »%s« angegeben"
+
+#: c-decl.c:3739 cp/decl.c:11034
+#, c-format
+msgid "long, short, signed or unsigned invalid for `%s'"
+msgstr "long, short, signed oder unsigned ist ungültig für »%s«"
+
+#: c-decl.c:3745 cp/decl.c:11054
+#, c-format
+msgid "long, short, signed or unsigned used invalidly for `%s'"
+msgstr "long, short, signed oder unsigned ungültig verwendet für »%s«"
+
+#: c-decl.c:3763 cp/decl.c:11075
+#, c-format
+msgid "complex invalid for `%s'"
+msgstr "complex ungültig für »%s«"
+
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "ISO-C90 unterstützt nicht komplexe Typen"
+
+#: c-decl.c:3817
+msgid "ISO C does not support plain `complex' meaning `double complex'"
+msgstr "ISO-C unterstützt nicht »double complex« bedeutendes »complex«"
+
+#: c-decl.c:3823 c-decl.c:3835
+msgid "ISO C does not support complex integer types"
+msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen"
+
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
+msgid "duplicate `const'"
+msgstr "doppeltes »const«"
+
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
+msgid "duplicate `restrict'"
+msgstr "doppeltes »restrict«"
+
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
+msgid "duplicate `volatile'"
+msgstr "doppeltes »volatile«"
+
+#: c-decl.c:3882 cp/decl.c:11238
+#, c-format
+msgid "multiple storage classes in declaration of `%s'"
+msgstr "mehrere Speicherklassen in Deklaration von »%s«"
+
+#: c-decl.c:3892
+msgid "function definition declared `auto'"
+msgstr "Funktionsdefinition deklarierte »auto«"
+
+#: c-decl.c:3894
+msgid "function definition declared `register'"
+msgstr "Funktionsdefinition deklarierte »register«"
+
+#: c-decl.c:3896
+msgid "function definition declared `typedef'"
+msgstr "Funktionsdefinition deklarierte »typedef«"
+
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "Funktionsdefinition deklarierte »__thread«"
+
+#: c-decl.c:3911
+#, c-format
+msgid "storage class specified for structure field `%s'"
+msgstr "Speicherklasse für Strukturfeld »%s« angegeben"
+
+#: c-decl.c:3915 cp/decl.c:11285
+#, c-format
+msgid "storage class specified for parameter `%s'"
+msgstr "Speicherklasse für Parameter »%s« angegeben"
+
+#: c-decl.c:3918 cp/decl.c:11287
+msgid "storage class specified for typename"
+msgstr "Speicherklasse für Typnamen angegeben"
+
+#: c-decl.c:3930 cp/decl.c:11302
+#, c-format
+msgid "`%s' initialized and declared `extern'"
+msgstr "»%s« initialisiert und als »extern« deklariert"
+
+#: c-decl.c:3932 cp/decl.c:11305
+#, c-format
+msgid "`%s' has both `extern' and initializer"
+msgstr "»%s« hat sowohl »extern« als auch Initialisierung"
+
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "Deklaration höchster Ebene von »%s« spezifiziert »auto«"
+
+#: c-decl.c:3942 cp/decl.c:11309
+#, c-format
+msgid "nested function `%s' declared `extern'"
+msgstr "geschachtelte Funktion »%s« als »extern« deklariert"
+
+#: c-decl.c:3948 cp/decl.c:11319
+#, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "Funktions-Gültigkeitsbereich »%s« ist implizit auto und deklarierte »__thread«"
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:3987 c-decl.c:4188
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "»static« oder Typkennzeichner in Nicht-Parameter-Felddeklarator"
+
+#: c-decl.c:4031
+#, c-format
+msgid "declaration of `%s' as array of voids"
+msgstr "Deklaration von »%s« als Feld von voids"
+
+#: c-decl.c:4037
+#, c-format
+msgid "declaration of `%s' as array of functions"
+msgstr "Deklaration von »%s« als Feld von Funtionen"
+
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "ungültige Verwendung einer Struktur mit flexiblem Feld"
+
+#: c-decl.c:4061
+#, c-format
+msgid "size of array `%s' has non-integer type"
+msgstr "Feldgröße von »%s« hat Nicht-Ganzzahltyp"
+
+#: c-decl.c:4066
+#, c-format
+msgid "ISO C forbids zero-size array `%s'"
+msgstr "ISO-C verbietet Feld »%s« der Größe null"
+
+#: c-decl.c:4073
+#, c-format
+msgid "size of array `%s' is negative"
+msgstr "Feldgröße von »%s« ist negativ"
+
+#: c-decl.c:4086
+#, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "ISO-C90 verbietet Feld »%s«, dessen Größe nicht ausgewertet werden kann"
+
+#: c-decl.c:4089
+#, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO-C90 verbietet Feld »%s« variabler Größe"
+
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
+#, c-format
+msgid "size of array `%s' is too large"
+msgstr "Feldgröße von »%s« ist zu groß"
+
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO-C90 unterstützt keine flexiblen Felder als Mitglied"
+
+#: c-decl.c:4155
+msgid "array type has incomplete element type"
+msgstr "Feldtyp hat unvollständigen Elementtypen"
+
+#: c-decl.c:4162 c-decl.c:4392
+msgid "ISO C forbids const or volatile function types"
+msgstr "ISO-C verbietet const oder volatile Funktionstypen"
+
+#: c-decl.c:4208 cp/decl.c:11445
+#, c-format
+msgid "`%s' declared as function returning a function"
+msgstr "»%s« als Funktion, die eine Funktion zurückgibt, deklariert"
+
+#: c-decl.c:4213 cp/decl.c:11450
+#, c-format
+msgid "`%s' declared as function returning an array"
+msgstr "»%s« als Funktion, die ein Feld zurückgibt, deklariert"
+
+#: c-decl.c:4241
+msgid "ISO C forbids qualified void function return type"
+msgstr "ISO-C verbietet qualifiziertes void als Funktions-Rückgabetypen"
+
+#: c-decl.c:4245
+msgid "type qualifiers ignored on function return type"
+msgstr "Typkennzeichner ignoriert an Funktions-Rückgabewert"
+
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
+msgid "ISO C forbids qualified function types"
+msgstr "ISO-C verbietet qualifizierte Funktionstypen"
+
+#: c-decl.c:4314 cp/decl.c:11684
+msgid "invalid type modifier within pointer declarator"
+msgstr "ungültiger Typmodifizierer innerhalb Zeigerdeklarator"
+
+#: c-decl.c:4412 cp/decl.c:12182
+#, c-format
+msgid "variable or field `%s' declared void"
+msgstr "Variable oder Feld »%s« als »void« deklariert"
+
+#: c-decl.c:4445
+msgid "attributes in parameter array declarator ignored"
+msgstr "Attribute in Parameterfeld ignoriert"
+
+#: c-decl.c:4470
+msgid "invalid type modifier within array declarator"
+msgstr "ungültiger Typmodifizierer in Felddeklarator"
+
+#: c-decl.c:4515
+#, c-format
+msgid "field `%s' declared as a function"
+msgstr "Feld »%s« als Funktion deklariert"
+
+#: c-decl.c:4521
+#, c-format
+msgid "field `%s' has incomplete type"
+msgstr "Feld »%s« hat unvollständigen Typen"
+
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
+#, c-format
+msgid "invalid storage class for function `%s'"
+msgstr "ungültige Speicherklasse für Funktion »%s«"
+
+#: c-decl.c:4579
+msgid "`noreturn' function returns non-void value"
+msgstr "»noreturn«-Funktion gibt nicht-void-Wert zurück"
+
+#: c-decl.c:4594
+msgid "cannot inline function `main'"
+msgstr "»main« ist nicht als »inline« möglich"
+
+#: c-decl.c:4649
+#, c-format
+msgid "variable `%s' declared `inline'"
+msgstr "Variable »%s« als »inline« deklariert"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "Thread-lokaler Speicher wird für dieses Ziel nicht unterstützt"
+
+#: c-decl.c:4732 c-decl.c:5880
+msgid "function declaration isn't a prototype"
+msgstr "Funktionsdeklaration ist kein Prototyp"
+
+#: c-decl.c:4738
+msgid "parameter names (without types) in function declaration"
+msgstr "Parameternamen (ohne Typen) in Funktionsdeklaration"
+
+#: c-decl.c:4770 c-decl.c:6250
+#, c-format
+msgid "parameter `%s' has incomplete type"
+msgstr "Parameter »%s« hat unvollständigen Typen"
+
+#: c-decl.c:4773
+msgid "parameter has incomplete type"
+msgstr "Parameter hat unvollständigen Typen"
+
+#: c-decl.c:4794
+#, c-format
+msgid "parameter `%s' points to incomplete type"
+msgstr "Parameter »%s« zeigt auf unvollständigen Typen"
+
+#: c-decl.c:4797
+msgid "parameter points to incomplete type"
+msgstr "Parameter zeigt auf unvollständigen Typen"
+
+#: c-decl.c:4862
+#, c-format
+msgid "parameter `%s' has just a forward declaration"
+msgstr "Parameter »%s« hat nur eine Vorwärtsdeklaration"
+
+#: c-decl.c:4903
+msgid "`void' in parameter list must be the entire list"
+msgstr "»void« in Parameterliste muss die gesamte Liste sein"
+
+#: c-decl.c:4934
+#, c-format
+msgid "`struct %s' declared inside parameter list"
+msgstr "»struct %s« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4937
+#, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr "»union %s« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4940
+#, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr "»enum %s« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4947
+msgid "anonymous struct declared inside parameter list"
+msgstr "anonymes »struct« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4949
+msgid "anonymous union declared inside parameter list"
+msgstr "anonymes »union« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4951
+msgid "anonymous enum declared inside parameter list"
+msgstr "anonymes »enum« innerhalb Parameterliste deklariert"
+
+#: c-decl.c:4955
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten"
+
+#: c-decl.c:5032
+#, c-format
+msgid "redefinition of `union %s'"
+msgstr "Redefinition von »union %s«"
+
+#: c-decl.c:5034
+#, c-format
+msgid "redefinition of `struct %s'"
+msgstr "Redefinition von »struct %s«"
+
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "Deklaration deklariert nichts"
+
+#: c-decl.c:5169 c-decl.c:5172
+#, c-format
+msgid "%s defined inside parms"
+msgstr "%s innerhalb Parameter definiert"
+
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
+msgid "union"
+msgstr "union"
+
+#: c-decl.c:5170 c-decl.c:5173
+msgid "structure"
+msgstr "struktur"
+
+#: c-decl.c:5183
+#, c-format
+msgid "%s has no %s"
+msgstr "%s hat kein %s"
+
+#: c-decl.c:5184
+msgid "struct"
+msgstr "struct"
+
+#: c-decl.c:5185
+msgid "named members"
+msgstr "benannte Member"
+
+#: c-decl.c:5185
+msgid "members"
+msgstr "Member"
+
+#: c-decl.c:5224
+#, c-format
+msgid "nested redefinition of `%s'"
+msgstr "Verschachtelte Redefinition von »%s«"
+
+#: c-decl.c:5237
+#, c-format
+msgid "bit-field `%s' width not an integer constant"
+msgstr "Breite des Bitfeldes »%s« ist keine Ganzzahlkonstante"
+
+#: c-decl.c:5248
+#, c-format
+msgid "bit-field `%s' has invalid type"
+msgstr "Bitfeld »%s« hat ungültigen Typen"
+
+#: c-decl.c:5260
+#, c-format
+msgid "bit-field `%s' type invalid in ISO C"
+msgstr "Typ des Bitfeldes »%s« ist ungültig in ISO-C"
+
+#: c-decl.c:5271
+#, c-format
+msgid "negative width in bit-field `%s'"
+msgstr "negative Breite in Bitfeld »%s«"
+
+#: c-decl.c:5273
+#, c-format
+msgid "width of `%s' exceeds its type"
+msgstr "Breite von »%s« überschreitet dessen Typen"
+
+#: c-decl.c:5275
+#, c-format
+msgid "zero width for bit-field `%s'"
+msgstr "Breite null für Bitfeld »%s«"
+
+#: c-decl.c:5289
+#, c-format
+msgid "`%s' is narrower than values of its type"
+msgstr "»%s« ist schmaler als die Werte seines Typs"
+
+#: c-decl.c:5323
+msgid "flexible array member in union"
+msgstr "flexibler Feld-Member in union"
+
+#: c-decl.c:5325
+msgid "flexible array member not at end of struct"
+msgstr "flexibler Feld-Member nicht am Ende von struct"
+
+#: c-decl.c:5327
+msgid "flexible array member in otherwise empty struct"
+msgstr "flexibler Feld-Member in ansonsten leerem struct"
+
+#: c-decl.c:5357
+#, c-format
+msgid "duplicate member `%s'"
+msgstr "doppelter Member »%s«"
+
+#: c-decl.c:5448
+msgid "union cannot be made transparent"
+msgstr "union kann nicht transparent gemacht werden"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5558
+#, c-format
+msgid "redeclaration of `enum %s'"
+msgstr "Redeklaration von »enum %s«"
+
+#: c-decl.c:5592
+msgid "enum defined inside parms"
+msgstr "enum innerhalb von Parametern definiert"
+
+#: c-decl.c:5625
+msgid "enumeration values exceed range of largest integer"
+msgstr "Aufzählungswerte überschreiten Wertebereich des größten Ganzzahltypen"
+
+#: c-decl.c:5734
+#, c-format
+msgid "enumerator value for `%s' not integer constant"
+msgstr "Aufzählungswert für »%s« ist keine Ganzzahlkonstante"
+
+#: c-decl.c:5747
+msgid "overflow in enumeration values"
+msgstr "Überlauf in Aufzählungswerten"
+
+#: c-decl.c:5752
+msgid "ISO C restricts enumerator values to range of `int'"
+msgstr "ISO-C beschränkt Aufzählungswerte auf Bereich von »int«"
+
+#: c-decl.c:5834
+msgid "return type is an incomplete type"
+msgstr "Rückgabetyp ist unvollständig"
+
+#: c-decl.c:5842
+msgid "return type defaults to `int'"
+msgstr "Rückgabetyp ist auf »int« voreingestellt"
+
+#: c-decl.c:5889
+#, c-format
+msgid "no previous prototype for `%s'"
+msgstr "kein vorheriger Prototyp für »%s«"
+
+#: c-decl.c:5896
+#, c-format
+msgid "`%s' was used with no prototype before its definition"
+msgstr "»%s« wurde vor seiner Definition ohne Prototyp verwendet"
+
+#: c-decl.c:5902
+#, c-format
+msgid "no previous declaration for `%s'"
+msgstr "keine vorherige Deklaration für »%s«"
+
+#: c-decl.c:5909
+#, c-format
+msgid "`%s' was used with no declaration before its definition"
+msgstr "»%s« wurde vor seiner Definition ohne Deklaration verwendet"
+
+#: c-decl.c:5933 c-decl.c:6486
+#, c-format
+msgid "return type of `%s' is not `int'"
+msgstr "Rückgabetyp von »%s« ist nicht »int«"
+
+#: c-decl.c:5949
+#, c-format
+msgid "first argument of `%s' should be `int'"
+msgstr "erstes Argument von »%s« sollte »int« sein"
+
+#: c-decl.c:5958
+#, c-format
+msgid "second argument of `%s' should be `char **'"
+msgstr "zweites Argument von »%s« sollte »char **« sein"
+
+#: c-decl.c:5967
+#, c-format
+msgid "third argument of `%s' should probably be `char **'"
+msgstr "drittes Argument von »%s« sollte wahrscheinlich »char **« sein"
+
+#: c-decl.c:5976
+#, c-format
+msgid "`%s' takes only zero or two arguments"
+msgstr "»%s« benötigt entweder null oder zwei Argumente"
+
+#: c-decl.c:5979
+#, c-format
+msgid "`%s' is normally a non-static function"
+msgstr "»%s« ist normalerweise eine Nicht-static-Funktion"
+
+#: c-decl.c:6077
+msgid "parm types given both in parmlist and separately"
+msgstr "Parametertypen sowohl in Parameterliste als auch separat angegeben"
+
+#: c-decl.c:6098
+msgid "parameter name omitted"
+msgstr "Parametername ausgelassen"
+
+#: c-decl.c:6102 c-decl.c:6204
+#, c-format
+msgid "parameter `%s' declared void"
+msgstr "Parameter »%s« als void deklariert"
+
+#: c-decl.c:6178
+msgid "parameter name missing from parameter list"
+msgstr "Parametername fehlt in Parameterliste"
+
+#: c-decl.c:6197
+#, c-format
+msgid "multiple parameters named `%s'"
+msgstr "mehrere Parameter wurden »%s« genannt"
+
+#: c-decl.c:6219 c-decl.c:6221
+#, c-format
+msgid "type of `%s' defaults to `int'"
+msgstr "Typ von »%s« auf »int« voreingestellt"
+
+#: c-decl.c:6257
+#, c-format
+msgid "declaration for parameter `%s' but no such parameter"
+msgstr "nicht vorhandener Parameter »%s« deklariert"
+
+#: c-decl.c:6305
+msgid "number of arguments doesn't match prototype"
+msgstr "Anzahl der Argumente passt nicht zum Prototypen"
+
+#: c-decl.c:6335
+#, c-format
+msgid "promoted argument `%s' doesn't match prototype"
+msgstr "weitergegebenes Argument »%s« passt nicht zum Prototypen"
+
+#: c-decl.c:6345
+#, c-format
+msgid "argument `%s' doesn't match prototype"
+msgstr "Argument »%s« passt nicht zum Prototypen"
+
+#: c-decl.c:6518 cp/decl.c:15049
+msgid "no return statement in function returning non-void"
+msgstr "keine return-Anweisung in nicht void zurückgebender Funktion"
+
+#: c-decl.c:6525
+msgid "this function may return with or without a value"
+msgstr "diese Funktion kann mit oder ohne Wert zurückkehren"
+
+#: c-decl.c:6729
+#, c-format
+msgid "size of return value of `%s' is %u bytes"
+msgstr "Größe des Rückgabewertes von »%s« ist %u Bytes"
+
+#: c-decl.c:6733
+#, c-format
+msgid "size of return value of `%s' is larger than %d bytes"
+msgstr "Größe des Rückgabewertes von »%s« ist größer als %d Bytes"
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c-decl.c:6791
+msgid "`for' loop initial declaration used outside C99 mode"
+msgstr "Anfangsdeklaration in »for«-Schleife außerhalb C99-Modus verwendet"
+
+#: c-decl.c:6815
+#, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr "»struct %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#: c-decl.c:6818
+#, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr "»union %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#: c-decl.c:6821
+#, c-format
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr "»enum %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#: c-decl.c:6829
+#, c-format
+msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+msgstr "Deklaration der Nicht-Variablen »%s« in Anfangsdeklaration einer »for«-Schleife"
+
+#: c-decl.c:6831
+#, c-format
+msgid "declaration of static variable `%s' in `for' loop initial declaration"
+msgstr "Deklaration der »static«-Variablen »%s« in Anfangsdeklaration einer »for«-Schleife"
+
+#: c-decl.c:6833
+#, c-format
+msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+msgstr "Deklaration der »extern«-Variablen »%s« in Anfangsdeklaration einer »for«-Schleife"
+
+#: c-format.c:109 c-format.c:191
+msgid "format string arg not a string type"
+msgstr "Format-Zeichenkettenargument ist kein Zeichenkettentyp"
+
+#: c-format.c:124
+msgid "args to be formatted is not '...'"
+msgstr "zu formatierendes Argument ist nicht »...«"
+
+#: c-format.c:133
+msgid "strftime formats cannot format arguments"
+msgstr "strftime-Formate können keine Argumente formatieren"
+
+#: c-format.c:168 c-format.c:270
+msgid "format string has invalid operand number"
+msgstr "Formatzeichenkette hat ungültige Operandenzahl"
+
+#: c-format.c:202
+msgid "function does not return string type"
+msgstr "Funktion gibt keinen Zeichenkettentypen zurück"
+
+#: c-format.c:233
+msgid "unrecognized format specifier"
+msgstr "unerkannte Formatangabe"
+
+#: c-format.c:246
+#, c-format
+msgid "`%s' is an unrecognized format function type"
+msgstr "»%s« ist ein nicht erkannter Formatfunktionstyp"
+
+#: c-format.c:280
+msgid "format string arg follows the args to be formatted"
+msgstr "Format-Zeichenkettenargument folgt den zu formatierenden Argumenten"
+
+#: c-format.c:601
+msgid "` ' flag"
+msgstr "» «-Kennzeichen"
+
+#: c-format.c:601
+msgid "the ` ' printf flag"
+msgstr "das » «-printf-Kennzeichen"
+
+#: c-format.c:602 c-format.c:673
+msgid "`+' flag"
+msgstr "»+«-Kennzeichen"
+
+#: c-format.c:602
+msgid "the `+' printf flag"
+msgstr "das »+«-printf-Kennzeichen"
+
+#: c-format.c:603 c-format.c:649
+msgid "`#' flag"
+msgstr "»#«-Kennzeichen"
+
+#: c-format.c:603
+msgid "the `#' printf flag"
+msgstr "das »#«-printf-Kennzeichen"
+
+#: c-format.c:604 c-format.c:647
+msgid "`0' flag"
+msgstr "»0«-Kennzeichen"
+
+#: c-format.c:604
+msgid "the `0' printf flag"
+msgstr "das »0«-printf-Kennzeichen"
+
+#: c-format.c:605 c-format.c:646 c-format.c:676
+msgid "`-' flag"
+msgstr "»-«-Kennzeichen"
+
+#: c-format.c:605
+msgid "the `-' printf flag"
+msgstr "das »-«-printf-Kennzeichen"
+
+#: c-format.c:606 c-format.c:630
+msgid "`'' flag"
+msgstr "»'«-Kennzeichen"
+
+#: c-format.c:606
+msgid "the `'' printf flag"
+msgstr "das »'«-printf-Kennzeichen"
+
+#: c-format.c:607 c-format.c:631
+msgid "`I' flag"
+msgstr "»I«-Kennzeichen"
+
+#: c-format.c:607
+msgid "the `I' printf flag"
+msgstr "das »I«-printf-Kennzeichen"
+
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
+msgid "field width"
+msgstr "Feldbreite"
+
+#: c-format.c:608
+msgid "field width in printf format"
+msgstr "Feldbreite im printf-Format"
+
+#: c-format.c:609
+msgid "precision"
+msgstr "Präzision"
+
+#: c-format.c:609
+msgid "precision in printf format"
+msgstr "Präzision im printf-Format"
+
+#: c-format.c:610 c-format.c:629 c-format.c:680
+msgid "length modifier"
+msgstr "Längenmodifizierer"
+
+#: c-format.c:610
+msgid "length modifier in printf format"
+msgstr "Längenmodifizierer im printf-Format"
+
+#: c-format.c:626
+msgid "assignment suppression"
+msgstr "Zuweisungsunterdrückung"
+
+#: c-format.c:626
+msgid "the assignment suppression scanf feature"
+msgstr "das scanf-Merkmal der Zuweisungsunterdrückung"
+
+#: c-format.c:627
+msgid "`a' flag"
+msgstr "»a«-Kennzeichen"
+
+#: c-format.c:627
+msgid "the `a' scanf flag"
+msgstr "das »a«-scanf-Kennzeichen"
+
+#: c-format.c:628
+msgid "field width in scanf format"
+msgstr "Feldbreite im scanf-Format"
+
+#: c-format.c:629
+msgid "length modifier in scanf format"
+msgstr "Längenmodifizierer im scanf-Format"
+
+#: c-format.c:630
+msgid "the `'' scanf flag"
+msgstr "das »'«-scanf-Kennzeichen"
+
+#: c-format.c:631
+msgid "the `I' scanf flag"
+msgstr "das »I«-scanf-Kennzeichen"
+
+#: c-format.c:645
+msgid "`_' flag"
+msgstr "»_«-Kennzeichen"
+
+#: c-format.c:645
+msgid "the `_' strftime flag"
+msgstr "das »_«-strftime-Kennzeichen"
+
+#: c-format.c:646
+msgid "the `-' strftime flag"
+msgstr "das »-«-strftime-Kennzeichen"
+
+#: c-format.c:647
+msgid "the `0' strftime flag"
+msgstr "das »0«-strftime-Kennzeichen"
+
+#: c-format.c:648 c-format.c:672
+msgid "`^' flag"
+msgstr "»^«-Kennzeichen"
+
+#: c-format.c:648
+msgid "the `^' strftime flag"
+msgstr "das »^«-strftime-Kennzeichen"
+
+#: c-format.c:649
+msgid "the `#' strftime flag"
+msgstr "das »#«-strftime-Kennzeichen"
+
+#: c-format.c:650
+msgid "field width in strftime format"
+msgstr "Feldbreite im strftime-Format"
+
+#: c-format.c:651
+msgid "`E' modifier"
+msgstr "»E«-Modifizierer"
+
+#: c-format.c:651
+msgid "the `E' strftime modifier"
+msgstr "der »E«-strftime-Modifizierer"
+
+#: c-format.c:652
+msgid "`O' modifier"
+msgstr "»O«-Modifizierer"
+
+#: c-format.c:652
+msgid "the `O' strftime modifier"
+msgstr "der »O«-strftime-Modifizierer"
+
+#: c-format.c:653
+msgid "the `O' modifier"
+msgstr "der »O«-Modifizierer"
+
+#: c-format.c:671
+msgid "fill character"
+msgstr "Füllzeichen"
+
+#: c-format.c:671
+msgid "fill character in strfmon format"
+msgstr "Füllzeichen im strfmon-Format"
+
+#: c-format.c:672
+msgid "the `^' strfmon flag"
+msgstr "das »^«-strfmon-Kennzeichen"
+
+#: c-format.c:673
+msgid "the `+' strfmon flag"
+msgstr "das »+«-strfmon-Kennzeichen"
+
+#: c-format.c:674
+msgid "`(' flag"
+msgstr "»(«-Kennzeichen"
+
+#: c-format.c:674
+msgid "the `(' strfmon flag"
+msgstr "das »(«-strfmon-Kennzeichen"
+
+#: c-format.c:675
+msgid "`!' flag"
+msgstr "»!«-Kennzeichen"
+
+#: c-format.c:675
+msgid "the `!' strfmon flag"
+msgstr "das »!«-strfmon-Kennzeichen"
+
+#: c-format.c:676
+msgid "the `-' strfmon flag"
+msgstr "das »-«-strfmon-Kennzeichen"
+
+#: c-format.c:677
+msgid "field width in strfmon format"
+msgstr "Feldbreite im strfmon-Format"
+
+#: c-format.c:678
+msgid "left precision"
+msgstr "linke Präzision"
+
+#: c-format.c:678
+msgid "left precision in strfmon format"
+msgstr "linke Präzision im strfmon-Format"
+
+#: c-format.c:679
+msgid "right precision"
+msgstr "rechte Präzision"
+
+#: c-format.c:679
+msgid "right precision in strfmon format"
+msgstr "rechte Präzision im strfmon-Format"
+
+#: c-format.c:680
+msgid "length modifier in strfmon format"
+msgstr "Längenmodifizierer im strfmon-Format"
+
+#: c-format.c:983
+#, c-format
+msgid "function might be possible candidate for `%s' format attribute"
+msgstr "Funktion könnte möglicher Kandidat für Formatattribut »%s« sein"
+
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
+msgid "missing $ operand number in format"
+msgstr "fehlende $-Operandennummer im Format"
+
+#: c-format.c:1138
+#, c-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%s unterstützt nicht %%n$-Operandennummerformate"
+
+#: c-format.c:1145
+msgid "operand number out of range in format"
+msgstr "Operandennummer außerhalb des Wertebereiches im Format"
+
+#: c-format.c:1168
+#, c-format
+msgid "format argument %d used more than once in %s format"
+msgstr "Formatargument %d mehr als einmal im %s-Format verwendet"
+
+#: c-format.c:1218
+#, c-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr "Formatargument %d nicht verwendet vor benutztem Argument %d im $-Stil-Format"
+
+#: c-format.c:1322
+msgid "format not a string literal, format string not checked"
+msgstr "Format ist kein Zeichenkettenliteral, Formatzeichenkette ungeprüft"
+
+#: c-format.c:1336
+msgid "format not a string literal and no format arguments"
+msgstr "Format ist kein Zeichenkettenliteral, und keine Formatargumente"
+
+#: c-format.c:1338
+msgid "format not a string literal, argument types not checked"
+msgstr "Format ist kein Zeichenkettenliteral, Argumenttypen ungeprüft"
+
+#: c-format.c:1351
+msgid "too many arguments for format"
+msgstr "zu viele Argumente für Format"
+
+#: c-format.c:1354
+msgid "unused arguments in $-style format"
+msgstr "unbenutzte Argumente in $-Stil-Format"
+
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "Format-Zeichenkette %s der Länge null"
+
+#: c-format.c:1361
+msgid "format is a wide character string"
+msgstr "Format ist »wide character«-Zeichenkette"
+
+#: c-format.c:1364
+msgid "unterminated format string"
+msgstr "unbeendete Formatzeichenkette"
+
+#: c-format.c:1581
+msgid "embedded `\\0' in format"
+msgstr "eingebettetes »\\0« im Format"
+
+#: c-format.c:1596
+#, c-format
+msgid "spurious trailing `%%' in format"
+msgstr "störendes letztes »%%« im Format"
+
+#: c-format.c:1635 c-format.c:1872
+#, c-format
+msgid "repeated %s in format"
+msgstr "wiederholtes %s im Format"
+
+#: c-format.c:1648
+msgid "missing fill character at end of strfmon format"
+msgstr "fehlendes Füllzeichen am Ende des strfmon-Formates"
+
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
+msgid "too few arguments for format"
+msgstr "zu wenig Argumente für Format"
+
+#: c-format.c:1728
+#, c-format
+msgid "zero width in %s format"
+msgstr "Breite null im Format %s"
+
+#: c-format.c:1747
+#, c-format
+msgid "empty left precision in %s format"
+msgstr "leere linke Präzision im Format %s"
+
+#: c-format.c:1801
+msgid "field precision"
+msgstr "Feldpräzision"
+
+#: c-format.c:1816
+#, c-format
+msgid "empty precision in %s format"
+msgstr "fehlende Präzision im Format %s"
+
+#: c-format.c:1856
+#, c-format
+msgid "%s does not support the `%s' %s length modifier"
+msgstr "%s unterstützt nicht den Längenmodifizierer »%s« %s"
+
+#: c-format.c:1906
+msgid "conversion lacks type at end of format"
+msgstr "Konvertierung fehlt der Typ am Ende des Formates"
+
+#: c-format.c:1917
+#, c-format
+msgid "unknown conversion type character `%c' in format"
+msgstr "unbekanntes Konvertierungstyp-Zeichen »%c« im Format"
+
+#: c-format.c:1920
+#, c-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "unbekanntes Konvertierungstyp-Zeichen 0x%x im Format"
+
+#: c-format.c:1927
+#, c-format
+msgid "%s does not support the `%%%c' %s format"
+msgstr "%s unterstützt nicht das Format »%%%c« %s"
+
+#: c-format.c:1943
+#, c-format
+msgid "%s used with `%%%c' %s format"
+msgstr "%s verwendet mit Format »%%%c« %s"
+
+#: c-format.c:1952
+#, c-format
+msgid "%s does not support %s"
+msgstr "%s unterstützt nicht %s"
+
+#: c-format.c:1961
+#, c-format
+msgid "%s does not support %s with the `%%%c' %s format"
+msgstr "%s unterstützt nicht %s mit dem Format »%%%c« %s"
+
+#: c-format.c:1994
+#, c-format
+msgid "%s ignored with %s and `%%%c' %s format"
+msgstr "%s ignoriert mit %s und Format »%%%c« %s"
+
+#: c-format.c:1998
+#, c-format
+msgid "%s ignored with %s in %s format"
+msgstr "%s ignoriert mit %s im Format %s"
+
+#: c-format.c:2004
+#, c-format
+msgid "use of %s and %s together with `%%%c' %s format"
+msgstr "Verwendung von %s und %s zusammen mit »%%%c« %s Format"
+
+#: c-format.c:2008
+#, c-format
+msgid "use of %s and %s together in %s format"
+msgstr "Verwendung von %s und %s zusammen im Format %s"
+
+#: c-format.c:2027
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year in some locales"
+msgstr "»%%%c« liefert in manchen Locales nur die letzten 2 Ziffern des Jahres"
+
+#: c-format.c:2030
+#, c-format
+msgid "`%%%c' yields only last 2 digits of year"
+msgstr "»%%%c« liefert nur die letzten 2 Ziffern des Jahres"
+
+#. The end of the format string was reached.
+#: c-format.c:2046
+#, c-format
+msgid "no closing `]' for `%%[' format"
+msgstr "kein schließendes »]« für »%%[«-Format"
+
+#: c-format.c:2059
+#, c-format
+msgid "use of `%s' length modifier with `%c' type character"
+msgstr "Verwendung des »%s«-Längenmodifizierers mit »%c«-Typ-Zeichen"
+
+#: c-format.c:2080
+#, c-format
+msgid "%s does not support the `%%%s%c' %s format"
+msgstr "%s unterstützt nicht das Format »%%%s%c« %s"
+
+#: c-format.c:2095
+msgid "operand number specified with suppressed assignment"
+msgstr "Operandennummer mit unterdrückter Zuweisung angegeben"
+
+#: c-format.c:2097
+msgid "operand number specified for format taking no argument"
+msgstr "Operandennummer angegeben für Format ohne Argumente"
+
+#: c-format.c:2211
+#, c-format
+msgid "writing through null pointer (arg %d)"
+msgstr "Schreiben mit Null-Zeiger (Argument %d)"
+
+#: c-format.c:2220
+#, c-format
+msgid "reading through null pointer (arg %d)"
+msgstr "Lesen mit Null-Zeiger (Argument %d)"
+
+#: c-format.c:2240
+#, c-format
+msgid "writing into constant object (arg %d)"
+msgstr "Schreiben in konstantes Objekt (Argument %d)"
+
+#: c-format.c:2250
+#, c-format
+msgid "extra type qualifiers in format argument (arg %d)"
+msgstr "zusätzliche Typqualifizierer in Format-Argument (Argument %d)"
+
+#: c-format.c:2257
+#, c-format
+msgid "format argument is not a pointer (arg %d)"
+msgstr "Format-Argument ist kein Zeiger (Argument %d)"
+
+#: c-format.c:2259
+#, c-format
+msgid "format argument is not a pointer to a pointer (arg %d)"
+msgstr "Format-Argument ist kein Zeiger auf einen Zeiger (Argument %d)"
+
+#: c-format.c:2330
+msgid "pointer"
+msgstr "Zeiger"
+
+#: c-format.c:2332
+msgid "different type"
+msgstr "anderer Typ"
+
+#: c-format.c:2353
+#, c-format
+msgid "%s is not type %s (arg %d)"
+msgstr "%s ist nicht vom Typ %s (Argument %d)"
+
+#: c-format.c:2356
+#, c-format
+msgid "%s format, %s arg (arg %d)"
+msgstr "%s Format, %s Argument (Argument %d)"
+
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG ist nicht definiert"
+
+#: c-lex.c:293
+msgid "badly nested C headers from preprocessor"
+msgstr "schlecht geschachtelte C-Header vom Präprozessor"
+
+#: c-lex.c:336
+#, c-format
+msgid "ignoring #pragma %s %s"
+msgstr "ignoriere #pragma %s %s"
+
+#: c-lex.c:386
+#, c-format
+msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgstr "universeller Zeichenname »\\U%08x« nicht gültig in Bezeichner"
+
+#: c-lex.c:632
+#, c-format
+msgid "universal-character-name '\\u%04x' not valid in identifier"
+msgstr "universeller Zeichenname »\\u%04x« nicht gültig in Bezeichner"
+
+#: c-lex.c:695
+#, c-format
+msgid "stray '%c' in program"
+msgstr "verirrtes »%c« im Programm"
+
+#: c-lex.c:697
+#, c-format
+msgid "stray '\\%o' in program"
+msgstr "verirrtes »\\%o« im Programm"
+
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "diese Dezimalkonstante ist nur in ISO-C90 vorzeichenlos"
+
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "diese Dezimalkonstante wäre in ISO-C90 vorzeichenlos"
+
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "Ganzzahlkonstante ist zu groß für »%s«-Typ"
+
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "Gleitkommakonstante überschreitet Wertebereich von »%s«"
+
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "ungültiges Multibyte-Zeichen wird ignoriert"
+
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "fehlendes Argument für »-%s«"
+
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "kein Klassenname mit »-%s« angegeben"
+
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "fehlender Dateiname hinter »-%s«"
+
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "fehlendes Ziel hinter »-%s«"
+
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "Optionenliste falsch sortiert: %s kommt vor %s"
+
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "zu viele Dateinamen angegeben. Geben sie »%s --help« ein für Hilfe"
+
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes wird in C++ nicht unterstützt"
+
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "Option »%s« wird nicht mehr unterstützt"
+
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "Option »%s« ist veraltet, schauen sie in die Dokumentation für Details"
+
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions wurde in -fexceptions umbenannt (und ist nun voreingestellt)"
+
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "Ausgabedatei doppelt angegeben"
+
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute wird ohne -Wformat ignoriert"
+
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
+msgstr "Ausgabedatei »%s« wird geöffnet"
+
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr "Abhängigkeitsdatei »%s« wird geöffnet"
+
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "Abhängigkeitsdatei »%s« wird geschlossen"
+
+#: c-opts.c:1487
+#, c-format
+msgid "when writing output to %s"
+msgstr "beim Schreiben der Ausgabe nach %s"
+
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "um Abhängigkeiten zu erzeugen müssen Sie entweder -M oder -MM angeben"
+
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "\"-%c%s%s\" ist gültig für %s, aber nicht für %s"
+
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"Optionen:\n"
+" -include <Datei> Inhalt von <Datei> vor anderen Dateien einfügen\n"
+" -imacros <Datei> die Definition von Makros in <Datei> akzeptieren\n"
+" -iprefix <Pfad> <Pfad> als Präfix für die nächsten beiden Optionen\n"
+" angeben\n"
+" -iwithprefix <Verz> <Verz> zum Ende des System-Einfüge-Pfades\n"
+" hinzufügen\n"
+" -iwithprefixbefore <Verz> <Verz> zum das Ende des Haupt-Einfüge-Pfades\n"
+" hinzufügen\n"
+" -isystem <Verz> <Verz> zum Anfang des System-Einfüge-Pfades\n"
+" hinzufügen\n"
+
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter <Verz> <Verz> zum Ende des System-Einfüge-Pfades\n"
+" hinzufügen\n"
+" -I <Verz> <Verz> zum Anfang des Haupt-Einfüge-Pfades\n"
+" hinzufügen\n"
+" -I- Feineinstellung des Einfügepfades; siehe info-\n"
+" Seiten\n"
+" -nostdinc keine System-Einfüge-Verzeichnisse durchsuchen\n"
+" (-isystem Verzeichnisse werden aber verwendet)\n"
+" -nostdinc++ keine System-Einfüge-Verzeichnisse nach C++\n"
+" durchsuchen\n"
+" -o <Datei> Ausgabe in <Datei> leiten\n"
+
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs ISO-C-»Trigraphs« unterstützen\n"
+" -std=<Name> Standardkonformität angeben; eines von:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Warnungen unterdrücken\n"
+" -W[no-]trigraphs Warnungen bei »Trigraphs«\n"
+" -W[no-]comment{s} Warnungen bei geschachtelten Kommentaren\n"
+
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Warnungen bei Merkmalen von traditionellem C\n"
+" -W[no-]undef Warnungen bei Verwendung undefinierter Makros\n"
+" mit #if\n"
+" -W[no-]import Warnungen über die Verwendung der Direktive\n"
+" #import\n"
+
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error alle Warnungen als Fehler behandeln\n"
+" -W[no-]system-headers keine Warnungen von System-Headern unterdrücken\n"
+" -W[no-]all die meisten Präprozessorwarnungen einschalten\n"
+
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M make-Abhängigkeiten generieren\n"
+" -MM wie -M, aber System-Header ignorieren\n"
+" -MD make-Abhängigkeiten generieren und kompilieren\n"
+" -MMD wie -MD, aber System-Header ignorieren\n"
+" -MF <Datei> Abhängigkeiten-Ausgabe in die angegebene Datei\n"
+" schreiben\n"
+" -MG fehlende Header-Dateien als generierte Dateien\n"
+" behandeln\n"
+
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Generiere falsche (phony) Ziele für Header\n"
+" -MQ <Ziel> MAKE-zitiertes Ziel hinzufügen\n"
+" -MT <Ziel> ein unzitiertes Ziel hinzufügen\n"
+
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<Makro> <Makro> mit Wert \"1\" definieren\n"
+" -D<Makro>=<Wert> <Makro> mit Wert <Wert> definieren\n"
+" -A<Frage>=<Antwort> die <Antwort> auf <Frage> annehmen\n"
+" -A-<Frage>=<Antwort> die <Antwort> auf <Frage> abschalten\n"
+" -U<Makro> <Makro> löschen\n"
+" -v Version anzeigen\n"
+
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Namen von Header-Dateien anzeigen wenn sie\n"
+" verwendet werden\n"
+" -C Kommentare nicht streichen\n"
+" -dM am Ende eine Liste von Makrodefinitionen anzeigen\n"
+" -dD Makrodefinitionen in der Ausgabe bewahren\n"
+" -dN wie -dD nur dass die Namen bewahrt werden\n"
+" -dI #include-Anweisungen in die Ausgabe einfügen\n"
+
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Eingabedatei als bereits vorverarbeitet behandeln\n"
+" -ftabstop=<Zahl> Tabulatorenabstand für Spaltenmeldungen\n"
+" -P keine #line-Direktiven generieren\n"
+" -remap Dateinamen beim Einfügen neu abbilden\n"
+" --help diese Information anzeigen\n"
+
+#. Like YYERROR but do call yyerror.
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
+msgid "syntax error"
+msgstr "Syntaxfehler"
+
+#: /usr/share/bison/bison.simple:179
+msgid "syntax error: cannot back up"
+msgstr "Syntaxfehler: Kann nicht zurücksetzen"
+
+#: c-parse.y:325 objc-parse.y:346
+msgid "ISO C forbids an empty source file"
+msgstr "ISO-C erlaubt keine leeren Quelldateien"
+
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
+msgid "argument of `asm' is not a constant string"
+msgstr "Argument von »asm« ist keine konstante Zeichenkette"
+
+#: c-parse.y:374 objc-parse.y:396
+msgid "ISO C forbids data definition with no type or storage class"
+msgstr "ISO-C verbietet Datendefinition ohne Typ und Speicherklasse"
+
+#: c-parse.y:376 objc-parse.y:398
+msgid "data definition has no type or storage class"
+msgstr "Datendefinition hat keinen Typ oder Speicherklasse"
+
+#: c-parse.y:389 objc-parse.y:411
+msgid "ISO C does not allow extra `;' outside of a function"
+msgstr "ISO-C erlaubt kein extra »;« außerhalb einer Funktion"
+
+#: c-parse.y:449 cppexp.c:1312
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionelles C weist den unären Plus-Operator zurück"
+
+#: c-parse.y:496 objc-parse.y:518
+msgid "`sizeof' applied to a bit-field"
+msgstr "»sizeof«-Operator auf ein Bitfeld angewendet"
+
+#: c-parse.y:583 objc-parse.y:605
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "ISO-C verbietet das Weglassen des mittleren Terms eines ?:-Ausdruckes"
+
+#: c-parse.y:632 objc-parse.y:654
+msgid "ISO C89 forbids compound literals"
+msgstr "ISO-C89 verbietet zusammengesetzte Literale"
+
+#: c-parse.y:646 objc-parse.y:668
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "ISO-C verbietet geklammerte Gruppen innerhalb von Ausrücken"
+
+#: c-parse.y:677 objc-parse.y:699
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "das erste Argument für __builtin_choose_expr ist keine Konstante"
+
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "Traditionelles C weist Funktionsdefinitionen im ISO-C-Stil zurück"
+
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
+#, c-format
+msgid "`%s' is not at beginning of declaration"
+msgstr "»%s« ist nicht am Beginn einer Deklaration"
+
+#: c-parse.y:1441 objc-parse.y:1496
+msgid "ISO C forbids empty initializer braces"
+msgstr "ISO-C verbietet leere Initialisierungsklammern"
+
+#: c-parse.y:1455 objc-parse.y:1510
+msgid "ISO C89 forbids specifying subobject to initialize"
+msgstr "ISO-C89 verbietet die Angabe von zu initialisierenden Unterobjekten"
+
+#: c-parse.y:1458 objc-parse.y:1513
+msgid "obsolete use of designated initializer without `='"
+msgstr "veraltete Verwendung einer bestimmten Initialisierung ohne »=«"
+
+#: c-parse.y:1462 objc-parse.y:1517
+msgid "obsolete use of designated initializer with `:'"
+msgstr "veraltete Verwendung einer bestimmten Initialisierung mit »:«"
+
+#: c-parse.y:1489 objc-parse.y:1544
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "ISO-C verbietet die Angabe eines zu initialisierenden Wertebereiches"
+
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
+msgid "ISO C forbids nested functions"
+msgstr "ISO-C verbietet verschachtelte Funktionen"
+
+#: c-parse.y:1703 objc-parse.y:1760
+msgid "ISO C forbids forward references to `enum' types"
+msgstr "ISO-C verbietet Vorwärts-Referenzen auf »enum«-Typen"
+
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
+msgid "comma at end of enumerator list"
+msgstr "Komma am Ende der Aufzählungsliste"
+
+#: c-parse.y:1723 objc-parse.y:1780
+msgid "no semicolon at end of struct or union"
+msgstr "kein Semikolon am Ende von »struct« oder »union«"
+
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
+msgid "extra semicolon in struct or union specified"
+msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
+
+#: c-parse.y:1745 objc-parse.y:1816
+msgid "ISO C doesn't support unnamed structs/unions"
+msgstr "ISO-C unterstützt keine namenlosen structs/unions"
+
+#: c-parse.y:1754 objc-parse.y:1825
+msgid "ISO C forbids member declarations with no members"
+msgstr "ISO-C verbietet Member-Deklarationen ohne Member"
+
+#: c-parse.y:1913 objc-parse.y:1984
+msgid "deprecated use of label at end of compound statement"
+msgstr "veraltete Verwendung einer Marke am Ende einer Verbundanweisung"
+
+#: c-parse.y:1930 objc-parse.y:2001
+msgid "ISO C89 forbids mixed declarations and code"
+msgstr "ISO-C89 verbietet gemischte Deklarationen und Kode"
+
+#: c-parse.y:2005 objc-parse.y:2080
+msgid "ISO C forbids label declarations"
+msgstr "ISO-C verbietet Markendeklarationen"
+
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
+msgid "braced-group within expression allowed only inside a function"
+msgstr "geklammerte Gruppe innerhalb Ausdruck nur in Funktion erlaubt"
+
+#: c-parse.y:2182 objc-parse.y:2257
+msgid "empty body in an else-statement"
+msgstr "leerer Körper in einer else-Anweisung"
+
+#: c-parse.y:2303 objc-parse.y:2378
+msgid "ISO C forbids `goto *expr;'"
+msgstr "ISO-C verbietet »goto *expr;«"
+
+#: c-parse.y:2403 objc-parse.y:2478
+msgid "ISO C forbids forward parameter declarations"
+msgstr "ISO-C verbietet Vorwärtsdeklaration für Parameter"
+
+#. Gcc used to allow this as an extension. However, it does
+#. not work for all targets, and thus has been disabled.
+#. Also, since func (...) and func () are indistinguishable,
+#. it caused problems with the code in expand_builtin which
+#. tries to verify that BUILT_IN_NEXT_ARG is being used
+#. correctly.
+#: c-parse.y:2429 objc-parse.y:2504
+msgid "ISO C requires a named argument before `...'"
+msgstr "ISO-C erfordert ein benanntes Argument vor »...«"
+
+#: c-parse.y:2526 objc-parse.y:2601
+msgid "`...' in old-style identifier list"
+msgstr "»...« in einer Bezeichnerliste alten Stils"
+
+#: /usr/share/bison/bison.simple:795
+msgid "parse error; also virtual memory exhausted"
+msgstr "Fehler beim Parsen; auch virtueller Speicher verbraucht"
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+msgid "parse error"
+msgstr "Fehler beim Parsen"
+
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "Parser-Keller-Ãœberlauf"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
+#, c-format
+msgid "%s at end of input"
+msgstr "%s am Ende der Eingabe"
+
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
+#, c-format
+msgid "%s before %s'%c'"
+msgstr "%s vor %s'%c'"
+
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
+#, c-format
+msgid "%s before %s'\\x%x'"
+msgstr "%s vor %s'\\x%x'"
+
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
+#, c-format
+msgid "%s before string constant"
+msgstr "%s vor Zeichenkettenkonstante"
+
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
+#, c-format
+msgid "%s before numeric constant"
+msgstr "%s vor numerischer Konstante"
+
+#: c-parse.y:2854 objc-parse.y:3553
+#, c-format
+msgid "%s before \"%s\""
+msgstr "%s vor \"%s\""
+
+#: c-parse.y:2856 objc-parse.y:3555
+#, c-format
+msgid "%s before '%s' token"
+msgstr "%s vor »%s«"
+
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "traditionelles C weist Stringverkettung zurück"
+
+#: c-parse.y:3047 objc-parse.y:3779
+#, c-format
+msgid "syntax error at '%s' token"
+msgstr "Syntaxfehler bei »%s«"
+
+#: c-pragma.c:107
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+msgstr "#pragma pack (pop) gefunden ohne passendes #pragma pack (push, <n>)"
+
+#: c-pragma.c:125
+#, c-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+msgstr "#pragma pack(pop, %s) gefunden ohne passendes #pragma pack(push, %s, <n>)"
+
+#: c-pragma.c:145
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(push[, id], <n>) wird von diesem Ziel nicht unterstützt"
+
+#: c-pragma.c:147
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "#pragma pack(pop[, id], <n>) wird von diesem Ziel nicht unterstützt"
+
+#: c-pragma.c:167
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr "fehlendes »(« hinter »#pragma pack« - ignoriert"
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
+msgstr "falsch geformtes »#pragma pack« - ignoriert"
+
+#: c-pragma.c:185
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr "falsch geformtes »#pragma pack(push[, id], <n>)« - ignoriert"
+
+#: c-pragma.c:187
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr "falsch geformtes »#pragma pack(pop[, id])« - ignoriert"
+
+#: c-pragma.c:196
+#, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr "unbekannte Aktion »%s« für »#pragma pack« - ignoriert"
+
+#: c-pragma.c:233
+msgid "junk at end of '#pragma pack'"
+msgstr "Ausschuss am Ende von »#pragma pack«"
+
+#: c-pragma.c:247
+#, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "Ausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "Anwendung von #pragma weak »%s« nach erster Benutzung führt zu nicht spezifiziertem Verhalten"
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr "falsch geformtes #pragma weak, ignoriert"
+
+#: c-pragma.c:337
+msgid "junk at end of #pragma weak"
+msgstr "Ausschuss am Ende von #pragma weak"
+
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "falsch geformtes #pragma redefine_extname, ignoriert"
+
+#: c-pragma.c:382
+msgid "junk at end of #pragma redefine_extname"
+msgstr "Ausschuss am Ende von #pragma redefine_extname"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr "#pragma redefine_extname steht in Konflikt mit Deklaration"
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "falsch geformtes #pragma extern_prefix, ignoriert"
+
+#: c-pragma.c:425
+msgid "junk at end of #pragma extern_prefix"
+msgstr "Ausschuss am Ende von #pragma extern_prefix"
+
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
+msgstr "asm-Deklaration steht in Konflikt mit vorheriger Umbenennung"
+
+#: c-semantics.c:565
+msgid "break statement not within loop or switch"
+msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
+
+#: c-semantics.c:583
+msgid "continue statement not within a loop"
+msgstr "continue-Anweisung nicht innerhalb einer Schleife"
+
+#: c-semantics.c:678
+msgid "destructor needed for `%#D'"
+msgstr "Destruktor für »%#D« benötigt"
+
+#: c-semantics.c:679
+msgid "where case label appears here"
+msgstr "wobei die case-Marke hier auftritt"
+
+#: c-semantics.c:682
+msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+msgstr "(schließen sie Aktionen vorheriger case-Anweisungen, die Destruktoren benötigen, in ihrem eigenen Gültigkeitsbereich ein)"
+
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
+#, c-format
+msgid "%s qualifier ignored on asm"
+msgstr "%s-Qualifizierer für asm ignoriert"
+
+#: c-typeck.c:123
+#, c-format
+msgid "`%s' has an incomplete type"
+msgstr "»%s« hat unvollständigen Typ"
+
+#: c-typeck.c:145 cp/call.c:2865
+msgid "invalid use of void expression"
+msgstr "falsche Benutzung eines void-Ausdruckes"
+
+#: c-typeck.c:153
+msgid "invalid use of flexible array member"
+msgstr "falsche Benutzung eines flexiblen Feld-Members"
+
+#: c-typeck.c:159
+msgid "invalid use of array with unspecified bounds"
+msgstr "falsche Benutzung eines Feldes mit unbekannten Grenzen"
+
+#: c-typeck.c:167
+#, c-format
+msgid "invalid use of undefined type `%s %s'"
+msgstr "falsche Benutzung des undefinierten Typs »%s %s«"
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:171
+#, c-format
+msgid "invalid use of incomplete typedef `%s'"
+msgstr "falsche Benutzung des unvollständigen typedef »%s«"
+
+#: c-typeck.c:424 c-typeck.c:438
+msgid "function types not truly compatible in ISO C"
+msgstr "Funktionstypen nicht wirklich kompatibel in ISO-C"
+
+#: c-typeck.c:603
+msgid "types are not quite compatible"
+msgstr "Typen nicht sehr kompatibel"
+
+#: c-typeck.c:757 c-typeck.c:2687
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "Arithmetik mit Zeiger auf unvollständigen Typen"
+
+#: c-typeck.c:1136
+#, c-format
+msgid "%s has no member named `%s'"
+msgstr "%s hat keinen Member »%s«"
+
+#: c-typeck.c:1172
+#, c-format
+msgid "request for member `%s' in something not a structure or union"
+msgstr "Anfrage nach Member »%s« in etwas, was keine Struktur oder union ist"
+
+#: c-typeck.c:1204
+msgid "dereferencing pointer to incomplete type"
+msgstr "Dereferenzierung eines Zeigers auf unvollständigen Typen"
+
+#: c-typeck.c:1208
+msgid "dereferencing `void *' pointer"
+msgstr "Dereferenzierung eines »void *« Zeigers"
+
+#: c-typeck.c:1225 cp/typeck.c:2369
+#, c-format
+msgid "invalid type argument of `%s'"
+msgstr "falsches Typ-Argument von »%s«"
+
+#: c-typeck.c:1244 cp/typeck.c:2395
+msgid "subscript missing in array reference"
+msgstr "Index fehlt in Feldreferenz"
+
+#: c-typeck.c:1265 cp/typeck.c:2437
+msgid "array subscript has type `char'"
+msgstr "Feldindex hat Typ »char«"
+
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
+msgid "array subscript is not an integer"
+msgstr "Feldindex ist keine Ganzzahl"
+
+#: c-typeck.c:1306
+msgid "ISO C forbids subscripting `register' array"
+msgstr "ISO-C verbietet, ein »register«-Array zu indizieren"
+
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO-C90 verbietet, ein Nicht-L-Wert-Feld zu indizieren"
+
+#: c-typeck.c:1341
+msgid "subscript has type `char'"
+msgstr "Index hat Typ »char«"
+
+#: c-typeck.c:1357 cp/typeck.c:2518
+msgid "subscripted value is neither array nor pointer"
+msgstr "indizierter Wert ist weder ein Feld noch ein Zeiger"
+
+#: c-typeck.c:1411
+#, c-format
+msgid "`%s' undeclared here (not in a function)"
+msgstr "»%s« ist hier nicht deklariert (nicht in einer Funktion)"
+
+#: c-typeck.c:1418
+#, c-format
+msgid "`%s' undeclared (first use in this function)"
+msgstr "»%s« nicht deklariert (erste Benutzung in dieser Funktion)"
+
+#: c-typeck.c:1423
+msgid "(Each undeclared identifier is reported only once"
+msgstr "(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt"
+
+#: c-typeck.c:1424
+msgid "for each function it appears in.)"
+msgstr "für jede Funktion in der er auftritt.)"
+
+#: c-typeck.c:1441
+#, c-format
+msgid "local declaration of `%s' hides instance variable"
+msgstr "lokale Deklaration von »%s« versteckt Instanzvariable"
+
+#: c-typeck.c:1518
+msgid "called object is not a function"
+msgstr "gerufenes Objekt ist keine Funktion"
+
+#: c-typeck.c:1604 cp/typeck.c:2829
+msgid "too many arguments to function"
+msgstr "zu viele Argumente für Funktion"
+
+#: c-typeck.c:1625
+#, c-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "Typ des formalen Parameters %d ist unvollständig"
+
+#: c-typeck.c:1638
+#, c-format
+msgid "%s as integer rather than floating due to prototype"
+msgstr "%s als Ganzzahl statt Gleitkomma aufgrund des Prototyps"
+
+#: c-typeck.c:1641
+#, c-format
+msgid "%s as integer rather than complex due to prototype"
+msgstr "%s als Ganzzahl statt komplex aufgrund des Prototyps"
+
+#: c-typeck.c:1644
+#, c-format
+msgid "%s as complex rather than floating due to prototype"
+msgstr "%s als komplex statt Gleitkomma aufgrund des Prototyps"
+
+#: c-typeck.c:1647
+#, c-format
+msgid "%s as floating rather than integer due to prototype"
+msgstr "%s als Gleitkomma statt Ganzzahl aufgrund des Prototyps"
+
+#: c-typeck.c:1650
+#, c-format
+msgid "%s as complex rather than integer due to prototype"
+msgstr "%s als komplex statt Ganzzahl aufgrund des Prototyps"
+
+#: c-typeck.c:1653
+#, c-format
+msgid "%s as floating rather than complex due to prototype"
+msgstr "%s als Gließkomma statt komplex aufgrund des Prototyps"
+
+#: c-typeck.c:1663
+#, c-format
+msgid "%s as `float' rather than `double' due to prototype"
+msgstr "%s als »float« statt »double« aufgrund des Prototyps"
+
+#: c-typeck.c:1681
+#, c-format
+msgid "%s with different width due to prototype"
+msgstr "%s mit anderer Breite aufgrund des Prototyps"
+
+#: c-typeck.c:1715
+#, c-format
+msgid "%s as unsigned due to prototype"
+msgstr "%s als vorzeichenlos aufgrund des Prototyps"
+
+#: c-typeck.c:1717
+#, c-format
+msgid "%s as signed due to prototype"
+msgstr "%s als vorzeichenbehaftet aufgrund des Prototyps"
+
+#: c-typeck.c:1751 cp/typeck.c:2933
+msgid "too few arguments to function"
+msgstr "zu wenige Argumente für Funktion"
+
+#: c-typeck.c:1793
+msgid "suggest parentheses around + or - inside shift"
+msgstr "Klammern um + oder - innerhalb von Schiebeoperation empfohlen"
+
+#: c-typeck.c:1800
+msgid "suggest parentheses around && within ||"
+msgstr "Klammern um && innerhalb von || empfohlen"
+
+#: c-typeck.c:1809
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "Klammern um Arithmetik in Operand von | empfohlen"
+
+#: c-typeck.c:1812
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "Klammern um Vergleich in Operand von | empfohlen"
+
+#: c-typeck.c:1821
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "Klammern um Arithmetik in Operand von ^ empfohlen"
+
+#: c-typeck.c:1824
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "Klammern um Vergleich in Operand von ^ empfohlen"
+
+#: c-typeck.c:1831
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "Klammern um + oder - in Operand von & empfohlen"
+
+#: c-typeck.c:1834
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "Klammern um Vergleich in Operand von & empfohlen"
+
+#: c-typeck.c:1841
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "Vergleiche wie X<=Y<=Z haben nicht ihre mathematische Bedeutung"
+
+#: c-typeck.c:2001 c-typeck.c:2036
+msgid "division by zero"
+msgstr "Teilung durch Null"
+
+#: c-typeck.c:2081 cp/typeck.c:3194
+msgid "right shift count is negative"
+msgstr "Rechts-Schiebe-Weite ist negativ"
+
+#: c-typeck.c:2088 cp/typeck.c:3200
+msgid "right shift count >= width of type"
+msgstr "Rechts-Schiebe-Weite >= Breite des Typs"
+
+#: c-typeck.c:2109 cp/typeck.c:3219
+msgid "left shift count is negative"
+msgstr "Links-Schiebe-Weite ist negativ"
+
+#: c-typeck.c:2112 cp/typeck.c:3221
+msgid "left shift count >= width of type"
+msgstr "Links-Schiebe-Weite >= Breite des Typs"
+
+#: c-typeck.c:2133
+msgid "shift count is negative"
+msgstr "Schiebeweite ist negativ"
+
+#: c-typeck.c:2135
+msgid "shift count >= width of type"
+msgstr "Schiebeweite >= Breite des Typs"
+
+#: c-typeck.c:2152 cp/typeck.c:3256
+msgid "comparing floating point with == or != is unsafe"
+msgstr "Vergleich von Gleitkomma mit == oder != ist unsicher"
+
+#: c-typeck.c:2178 c-typeck.c:2184
+msgid "ISO C forbids comparison of `void *' with function pointer"
+msgstr "ISO-C verbietet Vergleich von »void *« mit Funktionszeiger"
+
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "in Vergleich verschiedener Zeigertypen fehlt Typkonvertierung"
+
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
+msgid "comparison between pointer and integer"
+msgstr "Vergleich zwischen Zeiger und Ganzzahl"
+
+#: c-typeck.c:2222 c-typeck.c:2250
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "ISO-C verbietet geordnete Vergleiche zwischen Zeigern auf Funktionen"
+
+#: c-typeck.c:2247
+msgid "comparison of complete and incomplete pointers"
+msgstr "Vergleich von vollständigen und unvollständigen Zeigern"
+
+#: c-typeck.c:2263 c-typeck.c:2270
+msgid "ordered comparison of pointer with integer zero"
+msgstr "geordneter Vergleich von Zeiger mit Ganzzahlnull"
+
+#: c-typeck.c:2294 cp/typeck.c:3389
+msgid "unordered comparison on non-floating point argument"
+msgstr "ungeordneter Vergleich mit Nicht-Gleitkomma-Argument"
+
+#: c-typeck.c:2505
+msgid "comparison between signed and unsigned"
+msgstr "Vergleich zwischen vorzeichenbehaftet und vorzeichenlos"
+
+#: c-typeck.c:2551 cp/typeck.c:3633
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "Vergleich von weitergegebenem ~unsigned mit Konstante"
+
+#: c-typeck.c:2559 cp/typeck.c:3641
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "Vergleich von weitergegebenem ~unsigned mit unsigned"
+
+#: c-typeck.c:2639
+msgid "pointer of type `void *' used in subtraction"
+msgstr "Zeiger des Typs »void *« in Subtraktion verwendet"
+
+#: c-typeck.c:2641
+msgid "pointer to a function used in subtraction"
+msgstr "Zeiger auf eine Funktion in Subtraktion verwendet"
+
+#: c-typeck.c:2738
+msgid "wrong type argument to unary plus"
+msgstr "Argument falschen Typs für unäres Plus"
+
+#: c-typeck.c:2751
+msgid "wrong type argument to unary minus"
+msgstr "Argument falschen Typs für unäres Minus"
+
+#: c-typeck.c:2768
+msgid "ISO C does not support `~' for complex conjugation"
+msgstr "ISO-C unterstützt nicht »~« für komplexe Konjugation"
+
+#: c-typeck.c:2774
+msgid "wrong type argument to bit-complement"
+msgstr "Argument falschen Typs für Bit-Komplement"
+
+#: c-typeck.c:2783
+msgid "wrong type argument to abs"
+msgstr "Argument falschen Typs für abs"
+
+#: c-typeck.c:2795
+msgid "wrong type argument to conjugation"
+msgstr "Argument falschen Typs für Konjugation"
+
+#: c-typeck.c:2809
+msgid "wrong type argument to unary exclamation mark"
+msgstr "Argument falschen Typs für unäres Ausrufungszeichen"
+
+#: c-typeck.c:2852
+msgid "ISO C does not support `++' and `--' on complex types"
+msgstr "ISO-C unterstützt kein »++« und »--« für komplexe Typen"
+
+#: c-typeck.c:2867 c-typeck.c:2899
+msgid "wrong type argument to increment"
+msgstr "Argument falschen Typs für Inkrementierung"
+
+#: c-typeck.c:2869 c-typeck.c:2901
+msgid "wrong type argument to decrement"
+msgstr "Argument falschen Typs für Dekrementierung"
+
+#: c-typeck.c:2890
+msgid "increment of pointer to unknown structure"
+msgstr "Erhöhung eines Zeigers auf unbekannte Struktur"
+
+#: c-typeck.c:2892
+msgid "decrement of pointer to unknown structure"
+msgstr "Verminderung eines Zeigers auf unbekannte Struktur"
+
+#: c-typeck.c:3029
+msgid "ISO C forbids the address of a cast expression"
+msgstr "ISO-C verbietet die Adresse eines cast-Ausdruckes"
+
+#: c-typeck.c:3039
+msgid "invalid lvalue in unary `&'"
+msgstr "ungültiger L-Wert in unärem »&«"
+
+#: c-typeck.c:3071
+#, c-format
+msgid "attempt to take address of bit-field structure member `%s'"
+msgstr "Versuch, die Adresse des Bitfeldes »%s« einer Struktur zu verwenden"
+
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: c-typeck.c:3241
+msgid "ISO C forbids use of conditional expressions as lvalues"
+msgstr "ISO-C verbietet die Verwendung bedingter Ausdrücke als L-Werte"
+
+#: c-typeck.c:3244
+msgid "ISO C forbids use of compound expressions as lvalues"
+msgstr "ISO-C verbietet die Verwendung zusammengesetzter Ausdrücke als L-Werte"
+
+#: c-typeck.c:3247
+msgid "ISO C forbids use of cast expressions as lvalues"
+msgstr "ISO-C verbietet die Verwendung von cast-Ausdrücken als L-Werte"
+
+#: c-typeck.c:3264
+#, c-format
+msgid "%s of read-only member `%s'"
+msgstr "%s des schreibgeschützten Members »%s«"
+
+#: c-typeck.c:3268
+#, c-format
+msgid "%s of read-only variable `%s'"
+msgstr "%s der schreibgeschützten Variable »%s«"
+
+#: c-typeck.c:3271
+#, c-format
+msgid "%s of read-only location"
+msgstr "%s der schreibgeschützten Speicherstelle"
+
+#: c-typeck.c:3290
+#, c-format
+msgid "cannot take address of bit-field `%s'"
+msgstr "kann nicht die Adresse des Bit-Feldes »%s« ermitteln"
+
+#: c-typeck.c:3318
+#, c-format
+msgid "global register variable `%s' used in nested function"
+msgstr "globale Register-Variable »%s« in verschachtelter Funktion verwendet"
+
+#: c-typeck.c:3322
+#, c-format
+msgid "register variable `%s' used in nested function"
+msgstr "Register-Variable »%s« in verschachtelter Funktion verwendet"
+
+#: c-typeck.c:3329
+#, c-format
+msgid "address of global register variable `%s' requested"
+msgstr "Adresse der globalen Variable »%s« angefordert"
+
+#: c-typeck.c:3341
+msgid "cannot put object with volatile field into register"
+msgstr "kann kein Objekt mit volatile-Feld in Register laden"
+
+#: c-typeck.c:3345
+#, c-format
+msgid "address of register variable `%s' requested"
+msgstr "Adresse der Register-Variablen »%s« angefordert"
+
+#: c-typeck.c:3453
+msgid "signed and unsigned type in conditional expression"
+msgstr "Vorzeichenloser und -behafteter Typ in bedingtem Ausdruck"
+
+#: c-typeck.c:3460
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "ISO-C verbietet bedingten Ausdruck mit nur einer void-Seite"
+
+#: c-typeck.c:3476 c-typeck.c:3483
+msgid "ISO C forbids conditional expr between `void *' and function pointer"
+msgstr "ISO-C verbietet bedingten Ausdruck zwischen »void *« und Funktionszeiger"
+
+#: c-typeck.c:3489
+msgid "pointer type mismatch in conditional expression"
+msgstr "Zeigertyp passt nicht in bedingtem Ausdruck"
+
+#: c-typeck.c:3496 c-typeck.c:3506
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "Zeiger-/Ganzzahltyp passt nicht in bedingtem Ausdruck"
+
+#: c-typeck.c:3520
+msgid "type mismatch in conditional expression"
+msgstr "Typ passt nicht in bedingtem Ausdruck"
+
+#: c-typeck.c:3591 cp/typeck.c:4623
+msgid "left-hand operand of comma expression has no effect"
+msgstr "linker Operand des Komma-Ausdrucks hat keinen Effekt"
+
+#: c-typeck.c:3635
+msgid "cast specifies array type"
+msgstr "Typkonvertierung gibt Feldtyp an"
+
+#: c-typeck.c:3641
+msgid "cast specifies function type"
+msgstr "Typkonvertierung gibt Funktionstyp an"
+
+#: c-typeck.c:3651
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "ISO-C verbietet Typkonvertierung von Nicht-Skalar auf selben Typen"
+
+#: c-typeck.c:3670
+msgid "ISO C forbids casts to union type"
+msgstr "ISO-C verbietet Typkonvertierung auf union-Typ"
+
+#: c-typeck.c:3685
+msgid "cast to union type from type not present in union"
+msgstr "Typkonvertierung in union-Typ von nicht in union vorhandenem Typen"
+
+#: c-typeck.c:3736
+msgid "cast adds new qualifiers to function type"
+msgstr "Typkonvertierung fügt neue Typqualifizierer zu Funktionstypen hinzu"
+
+#. There are qualifiers present in IN_OTYPE that are not
+#. present in IN_TYPE.
+#: c-typeck.c:3741
+msgid "cast discards qualifiers from pointer target type"
+msgstr "Typkonvertierung streicht Qualifizierer von Zeiger-Zieltyp"
+
+#: c-typeck.c:3756
+msgid "cast increases required alignment of target type"
+msgstr "Typkonvertierung erfordert Ausrichtung des Zieltyps"
+
+#: c-typeck.c:3762 cp/typeck.c:5144
+msgid "cast from pointer to integer of different size"
+msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite"
+
+#: c-typeck.c:3767
+msgid "cast does not match function type"
+msgstr "Typkonvertierung passt nicht zum Funktionstypen"
+
+#: c-typeck.c:3774 cp/typeck.c:5151
+msgid "cast to pointer from integer of different size"
+msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite"
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "Type-Punning auf unvollständigen Typen kann strict-aliasing-Regeln verletzen"
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "Dereferenzierung eines Type-Pun-Zeigers verletzt strict-aliasing-Regeln"
+
+#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
+#. Reject anything strange now.
+#: c-typeck.c:3949
+msgid "invalid lvalue in assignment"
+msgstr "ungültiger L-Wert in Zuweisung"
+
+#. Convert new value to destination type.
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
+msgid "assignment"
+msgstr "Zuweisung"
+
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "kann R-Wert nicht an Referenzparameter übergeben"
+
+#: c-typeck.c:4174 c-typeck.c:4241
+#, c-format
+msgid "%s makes qualified function pointer from unqualified"
+msgstr "%s erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
+
+#: c-typeck.c:4178 c-typeck.c:4221
+#, c-format
+msgid "%s discards qualifiers from pointer target type"
+msgstr "%s streicht Qualifizierer von Zeiger-Zieltypen"
+
+#: c-typeck.c:4184
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "ISO-C verbietet Argumentkonvertierung in union-Typ"
+
+#: c-typeck.c:4213
+#, c-format
+msgid "ISO C forbids %s between function pointer and `void *'"
+msgstr "ISO-C verbietet %s zwischen Funktionszeiger und »void *«"
+
+#: c-typeck.c:4230
+#, c-format
+msgid "pointer targets in %s differ in signedness"
+msgstr "Zeigerziele in %s unterscheiden sich im Vorzeichenbesitz"
+
+#: c-typeck.c:4246
+#, c-format
+msgid "%s from incompatible pointer type"
+msgstr "%s von inkompatiblem Zeigertyp"
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "ungültige Verwendung eines Nicht-L-Wert-Feldes"
+
+#: c-typeck.c:4267
+#, c-format
+msgid "%s makes pointer from integer without a cast"
+msgstr "%s erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
+
+#: c-typeck.c:4275
+#, c-format
+msgid "%s makes integer from pointer without a cast"
+msgstr "%s erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
+
+#: c-typeck.c:4289 c-typeck.c:4292
+#, c-format
+msgid "incompatible type for argument %d of `%s'"
+msgstr "inkompatibler Typ für Argument %d von »%s«"
+
+#: c-typeck.c:4296
+#, c-format
+msgid "incompatible type for argument %d of indirect function call"
+msgstr "inkompatibler Typ für Argument %d eines indirekten Funktionsaufrufes"
+
+#: c-typeck.c:4300
+#, c-format
+msgid "incompatible types in %s"
+msgstr "inkompatible Typen in %s"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "Verarbeiten des Argumentes von »%s«"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "Verarbeiten des Zeigerargumentes an Funktion"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
+#, c-format
+msgid "passing arg %d of `%s'"
+msgstr "Verarbeiten des Argumentes %d von »%s«"
+
+#. Function name unknown (call through ptr); just give arg number.
+#: c-typeck.c:4386
+#, c-format
+msgid "passing arg %d of pointer to function"
+msgstr "Verarbeiten des Argumentes %d von Zeiger auf Funktion"
+
+#: c-typeck.c:4452
+msgid "initializer for static variable is not constant"
+msgstr "Initialisierer für statische Variable ist nicht konstant"
+
+#: c-typeck.c:4458
+msgid "initializer for static variable uses complicated arithmetic"
+msgstr "Initialisierer für statische Variable verwendet komplizierte Arithmetik"
+
+#: c-typeck.c:4466
+msgid "aggregate initializer is not constant"
+msgstr "Gesamt-Initialisierer ist nicht konstant"
+
+#: c-typeck.c:4468
+msgid "aggregate initializer uses complicated arithmetic"
+msgstr "Gesamt-Initialisierer verwendet komplizierte Arithmetik"
+
+#: c-typeck.c:4475
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "traditionelles C lehnt automatische Gesamt-Initialisierung ab"
+
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
+#, c-format
+msgid "(near initialization for `%s')"
+msgstr "(nahe der Initialisierung für »%s«)"
+
+#: c-typeck.c:4737 cp/typeck2.c:488
+msgid "char-array initialized from wide string"
+msgstr "char-Feld mit wide-Zeichenkette initialisiert"
+
+#: c-typeck.c:4744 cp/typeck2.c:495
+msgid "int-array initialized from non-wide string"
+msgstr "int-Feld mit Nicht-wide-Zeichenkette initialisiert"
+
+#: c-typeck.c:4762 cp/typeck2.c:511
+msgid "initializer-string for array of chars is too long"
+msgstr "Initialisierungs-Zeichenkette für char-Feld ist zu lang"
+
+#: c-typeck.c:4822
+msgid "array initialized from non-constant array expression"
+msgstr "Feld mit nicht konstantem Feldausdruck initialisiert"
+
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
+msgid "initializer element is not constant"
+msgstr "Initialisierungselement ist nicht konstant"
+
+#: c-typeck.c:4873
+msgid "initialization"
+msgstr "Initialisierung"
+
+#: c-typeck.c:4884 c-typeck.c:6286
+msgid "initializer element is not computable at load time"
+msgstr "Initialisierungs-Element ist zur Lade-Zeit nicht berechenbar"
+
+#: c-typeck.c:4899 cp/typeck2.c:588
+msgid "invalid initializer"
+msgstr "ungültige Initialisierung"
+
+#: c-typeck.c:5393
+msgid "extra brace group at end of initializer"
+msgstr "zusätzliche geschweifte Klammern am Ende der Initialisierung"
+
+#: c-typeck.c:5413
+msgid "missing braces around initializer"
+msgstr "geschweifte Klammern fehlen um Initialisierung"
+
+#: c-typeck.c:5473
+msgid "braces around scalar initializer"
+msgstr "geschweifte Klammern um Skalar-Initialisierung"
+
+#: c-typeck.c:5521
+msgid "initialization of flexible array member in a nested context"
+msgstr "Initialisierung flexibler Feld-Member in geschachteltem Kontext"
+
+#: c-typeck.c:5523
+msgid "initialization of a flexible array member"
+msgstr "Initialisierung eines flexiblen Feld-Members"
+
+#: c-typeck.c:5554
+msgid "missing initializer"
+msgstr "fehlende Initialisierung"
+
+#: c-typeck.c:5580
+msgid "empty scalar initializer"
+msgstr "leere Skalar-Initialisierung"
+
+#: c-typeck.c:5585
+msgid "extra elements in scalar initializer"
+msgstr "zusätzliche Elemente in Skalar-Initialisierung"
+
+#: c-typeck.c:5671
+msgid "initialization designators may not nest"
+msgstr "Initialisierungs-Bezeichner dürfen nicht geschachtelt werden"
+
+#: c-typeck.c:5692 c-typeck.c:5763
+msgid "array index in non-array initializer"
+msgstr "Feldindex in Nicht-Feld-Initialisierung"
+
+#: c-typeck.c:5697 c-typeck.c:5817
+msgid "field name not in record or union initializer"
+msgstr "Feldname nicht in Datensatz- oder union-Initialisierung"
+
+#: c-typeck.c:5759 c-typeck.c:5761
+msgid "nonconstant array index in initializer"
+msgstr "nichtkonstanter Feldindex in Initialisierung"
+
+#: c-typeck.c:5765 c-typeck.c:5768
+msgid "array index in initializer exceeds array bounds"
+msgstr "Feldindex in Initialisierung überschreitet Feldgrenzen"
+
+#: c-typeck.c:5779
+msgid "empty index range in initializer"
+msgstr "leerer Indexbereich in Initialisierung"
+
+#: c-typeck.c:5788
+msgid "array index range in initializer exceeds array bounds"
+msgstr "Feldindexbereich in Initialisierung überschreitet Feldgrenzen"
+
+#: c-typeck.c:5829
+#, c-format
+msgid "unknown field `%s' specified in initializer"
+msgstr "unbekanntes Feld »%s« in Initialisierung angegeben"
+
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
+msgid "initialized field with side-effects overwritten"
+msgstr "initialisiertes Feld mit Seiteneffekten überschrieben"
+
+#: c-typeck.c:6558
+msgid "excess elements in char array initializer"
+msgstr "Elementüberschreitung in char-Feld-Initialisierung"
+
+#: c-typeck.c:6565 c-typeck.c:6611
+msgid "excess elements in struct initializer"
+msgstr "Elementüberschreitung in struct-Initialisierung"
+
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr "nicht-statische Initialisierung eines flexiblen Feldmembers"
+
+#: c-typeck.c:6693
+msgid "excess elements in union initializer"
+msgstr "Elementüberschreitung in union-Initialisierung"
+
+#: c-typeck.c:6714
+msgid "traditional C rejects initialization of unions"
+msgstr "traditionelles C lehnt Initialisierung von unions ab"
+
+#: c-typeck.c:6777
+msgid "excess elements in array initializer"
+msgstr "Elementüberschreitung in Feldinitialisierung"
+
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr "Elementüberschreitung in Vektorinitialisierung"
+
+#: c-typeck.c:6828
+msgid "excess elements in scalar initializer"
+msgstr "Elementüberschreitung in Skalar-Initialisierung"
+
+#: c-typeck.c:6935
+msgid "asm template is not a string constant"
+msgstr "asm-Template ist keine Zeichenkettenkonstante"
+
+#: c-typeck.c:6967
+msgid "invalid lvalue in asm statement"
+msgstr "ungültiger L-Wert in asm-Anweisung"
+
+#: c-typeck.c:7042
+msgid "modification by `asm'"
+msgstr "Modifizierung durch »asm«"
+
+#: c-typeck.c:7061 cp/typeck.c:6237
+msgid "function declared `noreturn' has a `return' statement"
+msgstr "als »noreturn« deklarierte Funktion hat »return«-Anweisung"
+
+#: c-typeck.c:7068
+msgid "`return' with no value, in function returning non-void"
+msgstr "»return« ohne Wert in nicht void zurückgebender Funktion"
+
+#: c-typeck.c:7074
+msgid "`return' with a value, in function returning void"
+msgstr "»return« mit Wert in void zurückgebender Funktion"
+
+#: c-typeck.c:7078
+msgid "return"
+msgstr "return"
+
+#: c-typeck.c:7130
+msgid "function returns address of local variable"
+msgstr "Funktion liefert Adresse einer lokalen Variablen zurück"
+
+#: c-typeck.c:7186 cp/semantics.c:555
+msgid "switch quantity not an integer"
+msgstr "switch-Größe keine Ganzzahl"
+
+#: c-typeck.c:7196
+msgid "`long' switch expression not converted to `int' in ISO C"
+msgstr "»long« switch-Ausdruck nicht nach »int« konvertiert in ISO C"
+
+#: c-typeck.c:7231 cp/decl.c:5523
+msgid "case label not within a switch statement"
+msgstr "case-Marke nicht innerhalb einer switch-Anweisung"
+
+#: c-typeck.c:7233 cp/decl.c:5528
+msgid "`default' label not within a switch statement"
+msgstr "»default«-Marke nicht innerhalb einer switch-Anweisung"
+
+#: calls.c:1934 tree-inline.c:1177
+#, c-format
+msgid "inlining failed in call to `%s'"
+msgstr "»inline« beim Aufruf von »%s« gescheitert"
+
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
+msgid "called from here"
+msgstr "von hier aufgerufen"
+
+#: calls.c:2270
+#, c-format
+msgid "can't inline call to `%s'"
+msgstr "Aufruf von »%s« kann nicht »inline« erfolgen"
+
+#: calls.c:2300
+msgid "function call has aggregate value"
+msgstr "Funktionsaufruf hat zusammengesetzten Wert"
+
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "Größe der Schleife %d sollte %d sein, nicht %d"
+
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Bb %d gehört nicht zur Schleife %d."
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "Kopf der Schleife %d hat nicht genau 2 Einträge."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "Falle der Schleife %d hat nicht genau einen Nachfolger."
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "Falle der Schleife %d hat nicht den Kopf als Nachfolger."
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "Falle der Schleife %d gehört nicht direkt zu ihr."
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "Kopf der Schleife %d gehört nicht direkt zu ihr."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "bb %d an falscher Stelle"
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "prev_bb von %d sollte %d sein, nicht %d"
+
+#: cfgrtl.c:1800
+#, c-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr "Ende-insn %d für Block %d nicht gefunden im insn-Stream"
+
+#: cfgrtl.c:1814
+#, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "insn %d ist in mehreren Basisblöcken (%d und %d)"
+
+#: cfgrtl.c:1826
+#, c-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr "Kopf-insn %d für Block %d nicht gefunden im insn-Stream"
+
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB passt nicht zu cfg %i %i"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Falsche Blockzahl %i %i"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Falsche Blockfrequenz %i %i"
+
+#: cfgrtl.c:1869
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr "verify_flow_info: Doppelte Kante %i->%i"
+
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: Falsche Wahrscheinlichkeit der Kante %i->%i %i"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Falsche Kantenzahl %i->%i %i"
+
+#: cfgrtl.c:1911
+#, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "verify_flow_info: Falsche Blöcke für »fallthru« %i->%i"
+
+#: cfgrtl.c:1926
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr "verify_flow_info: Falsches »fallthru« %i->%i"
+
+#: cfgrtl.c:1928
+msgid "wrong insn in the fallthru edge"
+msgstr "falsche insn in »fallthru«-Kante"
+
+#: cfgrtl.c:1935
+#, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "verify_flow_info: Nachfolgekante des Basis-Blocks %d ist beschädigt"
+
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Fehlender Vermerk von REG_EH_REGION am Ende vom bb %i"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Zu viele abgehende Zweig-Kanten vom bb %i"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Fallthru-Kante nach unbedingtem Sprung %i"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i"
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "Ruf-Kanten für Nicht-Aufruf-insn im bb %i"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "Abnormale Kanten ohne Grund in bb %i"
+
+#: cfgrtl.c:2004
+#, c-format
+msgid "missing barrier after block %i"
+msgstr "fehlende Sperre nach Block %i"
+
+#: cfgrtl.c:2014
+#, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "Vorgänger des Basis-Blocks %d ist beschädigt"
+
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "insn %d innerhalb des Basis-Blockes %d, aber block_for_insn ist NULL"
+
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "insn %d innerhalb Basis-Blockes %d, aber block_for_insn ist %i"
+
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK fehlt für Block %d"
+
+#: cfgrtl.c:2072
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d in der Mitte des Basis-Blocks %d"
+
+#: cfgrtl.c:2084
+#, c-format
+msgid "in basic block %d:"
+msgstr "im Basis-Block %d:"
+
+#: cfgrtl.c:2085
+msgid "flow control insn inside a basic block"
+msgstr "Flusskontroll-insn innerhalb eines Basis-Blockes"
+
+#: cfgrtl.c:2104
+#, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "Kantenlisten des Basis-Blockes %i sind beschädigt"
+
+#: cfgrtl.c:2119
+msgid "basic blocks not numbered consecutively"
+msgstr "Basis-Blöcke sind nicht fortlaufend nummeriert"
+
+#: cfgrtl.c:2144
+msgid "insn outside basic block"
+msgstr "insn außerhalb eines Basis-Blockes"
+
+#: cfgrtl.c:2152
+msgid "return not followed by barrier"
+msgstr "»return« nicht gefolgt von Sperre"
+
+#: cfgrtl.c:2157
+#, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "Anzahl der bb-Vermerke in insn-Kette (%d) != n_basic_blocks (%d)"
+
+#: cfgrtl.c:2161
+msgid "verify_flow_info failed"
+msgstr "verify_flow_info gescheitert"
+
+#: collect2.c:425
+msgid "internal error"
+msgstr "interner Fehler"
+
+#: collect2.c:934
+msgid "no arguments"
+msgstr "Keiner Argumente"
+
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
+msgid "fopen %s"
+msgstr "fopen %s"
+
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
+#, c-format
+msgid "fclose %s"
+msgstr "fclose %s"
+
+#: collect2.c:1275
+#, c-format
+msgid "collect2 version %s"
+msgstr "collect2-Version %s"
+
+#: collect2.c:1365
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "%d Konstruktor(en) gefunden\n"
+
+#: collect2.c:1366
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "%d Destruktor(en) gefunden\n"
+
+#: collect2.c:1367
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr "%d Rahmentabelle(n) gefunden\n"
+
+#: collect2.c:1508
+#, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%s mit Signal %d [%s]%s beendet"
+
+#: collect2.c:1527
+#, c-format
+msgid "%s returned %d exit status"
+msgstr "%s gab Ende-Status %d zurück"
+
+#: collect2.c:1555
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[kann %s nicht finden]"
+
+#: collect2.c:1570
+#, c-format
+msgid "cannot find `%s'"
+msgstr "kann »%s« nicht finden"
+
+#: collect2.c:1581 collect2.c:1584
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr "leite Standardausgabe um: %s"
+
+#: collect2.c:1627
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr "[Verlasse %s]\n"
+
+#: collect2.c:1870
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - Ausgabename ist %s, Präfix ist %s\n"
+
+#: collect2.c:2082
+msgid "cannot find `nm'"
+msgstr "kann »nm« nicht finden"
+
+#: collect2.c:2092 collect2.c:2533
+msgid "pipe"
+msgstr "Pipe"
+
+#: collect2.c:2096 collect2.c:2537
+msgid "fdopen"
+msgstr "fdopen"
+
+#: collect2.c:2122 collect2.c:2563
+#, c-format
+msgid "dup2 %d 1"
+msgstr "dup2 %d 1"
+
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, c-format
+msgid "close %d"
+msgstr "close %d"
+
+#: collect2.c:2131 collect2.c:2572
+#, c-format
+msgid "execv %s"
+msgstr "execv %s"
+
+#: collect2.c:2185
+#, c-format
+msgid "init function found in object %s"
+msgstr "init-Funktion im Objekt %s gefunden"
+
+#: collect2.c:2193
+#, c-format
+msgid "fini function found in object %s"
+msgstr "fini-Funktion im Objekt %s gefunden"
+
+#: collect2.c:2216 collect2.c:2621
+msgid "fclose"
+msgstr "fclose"
+
+#: collect2.c:2261
+#, c-format
+msgid "unable to open file '%s'"
+msgstr "kann Datei »%s« nicht öffnen"
+
+#: collect2.c:2263
+#, c-format
+msgid "unable to stat file '%s'"
+msgstr "kann Dateistatus für »%s« nicht ermitteln"
+
+#: collect2.c:2269
+#, c-format
+msgid "unable to mmap file '%s'"
+msgstr "kann mmap nicht auf Datei »%s« anwenden"
+
+#: collect2.c:2422
+msgid "not found\n"
+msgstr "nicht gefunden\n"
+
+#: collect2.c:2424 collect2.c:2600
+#, c-format
+msgid "dynamic dependency %s not found"
+msgstr "dynamische Abhängigkeit %s nicht gefunden"
+
+#: collect2.c:2444
+#, c-format
+msgid "bad magic number in file '%s'"
+msgstr "Falsche magische Zahl in Datei »%s«"
+
+#: collect2.c:2466
+msgid "dynamic dependencies.\n"
+msgstr "dynamische Abhängigkeiten.\n"
+
+#: collect2.c:2524
+msgid "cannot find `ldd'"
+msgstr "kann »ldd« nicht finden"
+
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"Ausgabe von ldd mit Konstruktoren/Destruktoren.\n"
+
+#: collect2.c:2612
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "kann dynamische Abhängigkeit »%s« nicht öffnen"
+
+#: collect2.c:2726
+#, c-format
+msgid "%s: not a COFF file"
+msgstr "%s: keine COFF-Datei"
+
+#: collect2.c:2845
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "kann %s nicht als COFF-Datei öffnen"
+
+#: collect2.c:2901
+#, c-format
+msgid "library lib%s not found"
+msgstr "Bibliothek lib%s nicht gefunden"
+
+#: collect2.c:3028
+#, c-format
+msgid "open %s"
+msgstr "öffne %s"
+
+#: collect2.c:3051
+msgid "incompatibilities between object file & expected values"
+msgstr "Inkompatibilitäten zwischen Objektdatei und erwarteten Werten"
+
+#: collect2.c:3124
+#, c-format
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+"\n"
+"Verarbeite Symboltabelle #%d, Versatz = 0x%.8lx, Art = %s\n"
+
+#: collect2.c:3133
+msgid "string section missing"
+msgstr "Zeichenkettenabschnitt fehlt"
+
+#: collect2.c:3136
+msgid "section pointer missing"
+msgstr "Abschnittszeiger fehlt"
+
+#: collect2.c:3184
+msgid "no symbol table found"
+msgstr "keine Symboltabelle gefunden"
+
+#: collect2.c:3197
+msgid "no cmd_strings found"
+msgstr "cmd_strings nicht gefunden"
+
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+"\n"
+"Aktualisiere Kopf und lokale Befehle.\n"
+"\n"
+
+#: collect2.c:3216
+#, c-format
+msgid "load command map, %d cmds, new size %ld.\n"
+msgstr "lade Befehlstabelle, %d Befehle, neue Größe: %ld.\n"
+
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+"schreibe Ladebefehle.\n"
+"\n"
+
+#: collect2.c:3267
+#, c-format
+msgid "close %s"
+msgstr "schließe %s"
+
+#: collect2.c:3341
+msgid "could not convert 0x%l.8x into a region"
+msgstr "konnte 0x%l.8x nicht in eine Region konvertieren"
+
+#: collect2.c:3345
+#, c-format
+msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+msgstr "Funktion %s, Region %d, Versatz = %ld (0x%.8lx)\n"
+
+#: collect2.c:3472
+msgid "bad magic number"
+msgstr "falsche magische Zahl"
+
+#: collect2.c:3473
+msgid "bad header version"
+msgstr "falsche Kopf-Version"
+
+#: collect2.c:3474
+msgid "bad raw header version"
+msgstr "falsche Version des Original-Kopfes"
+
+#: collect2.c:3475
+msgid "raw header buffer too small"
+msgstr "Original-Kopf-Puffer zu klein"
+
+#: collect2.c:3476
+msgid "old raw header file"
+msgstr "alte Original-Kopf-Datei"
+
+#: collect2.c:3477
+msgid "unsupported version"
+msgstr "nicht unterstützte Version"
+
+#: collect2.c:3479
+#, c-format
+msgid "unknown {de,en}code_mach_o_hdr return value %d"
+msgstr "unbekannter Rückgabewert %d für {de,en}code_mach_o_hdr"
+
+#: collect2.c:3499
+#, c-format
+msgid "fstat %s"
+msgstr "fstat %s"
+
+#: collect2.c:3536 collect2.c:3584
+#, c-format
+msgid "lseek %s 0"
+msgstr "lseek %s 0"
+
+#: collect2.c:3540
+#, c-format
+msgid "read %s"
+msgstr "Lese %s"
+
+#: collect2.c:3543
+#, c-format
+msgid "read %ld bytes, expected %ld, from %s"
+msgstr "%ld Bytes gelesen, %ld erwartet, von %s"
+
+#: collect2.c:3564
+#, c-format
+msgid "msync %s"
+msgstr "msync %s"
+
+#: collect2.c:3571
+#, c-format
+msgid "munmap %s"
+msgstr "munmap %s"
+
+#: collect2.c:3588
+#, c-format
+msgid "write %s"
+msgstr "schreibe %s"
+
+#: collect2.c:3591
+#, c-format
+msgid "wrote %ld bytes, expected %ld, to %s"
+msgstr "%ld Bytes geschrieben, %ld erwartet, nach %s"
+
+#: combine.c:13222
+#, c-format
+msgid ""
+";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+"\n"
+msgstr ""
+";; Kombinierer-Statistik: %d Versuche, %d Ersetzungen (%d benötigten neuen Platz),\n"
+";; %d Erfolge.\n"
+"\n"
+
+#: combine.c:13232
+#, c-format
+msgid ""
+"\n"
+";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+msgstr ""
+"\n"
+";; Kombinierer-Gesamtwerte: %d Versuche, %d Ersetzungen (%d benötigten neuen Platz),\n"
+";; %d Erfolge.\n"
+
+#: convert.c:69
+msgid "cannot convert to a pointer type"
+msgstr "kann nicht in Zeigertyp konvertieren"
+
+#: convert.c:102
+msgid "pointer value used where a floating point value was expected"
+msgstr "Zeigerwert verwendet, wo Gleitkommawert erwartet wurde"
+
+#: convert.c:106
+msgid "aggregate value used where a float was expected"
+msgstr "zusammengesetzten Wert verwendet, wo Gleitkomma erwartet wurde"
+
+#: convert.c:132
+msgid "conversion to incomplete type"
+msgstr "Konvertierung in unvollständigen Typen"
+
+#: convert.c:414 convert.c:494
+msgid "can't convert between vector values of different size"
+msgstr "kann nicht zwischen Vektorwerten verschiedener Größen konvertieren"
+
+#: convert.c:420
+msgid "aggregate value used where an integer was expected"
+msgstr "zusammengesetzter Wert verwendet, wo Ganzzahl erwartet wurde"
+
+#: convert.c:472 f/com.c:1100
+msgid "pointer value used where a complex was expected"
+msgstr "Zeigerwert verwendet, wo »complex« erwartet wurde"
+
+#: convert.c:476 f/com.c:1102
+msgid "aggregate value used where a complex was expected"
+msgstr "zusammengesetzer Wert verwendet, wo »complex« erwartet wurde"
+
+#: convert.c:500
+msgid "can't convert value to a vector"
+msgstr "kann Wert nicht in Vektor konvertieren"
+
+#: cpperror.c:113
+msgid "warning: "
+msgstr "Warnung: "
+
+#: cpperror.c:115
+msgid "internal error: "
+msgstr "interner Fehler: "
+
+#: cpperror.c:189
+msgid "stdout"
+msgstr "Standardausgabe"
+
+#: cpperror.c:191 gcc.c:6428
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "zu viele Dezimalpunkte in Zahl"
+
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ungültige Ziffer »%c« in Oktal-Konstante"
+
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "Verwendung von C99 hexadezimaler Gleitkommakonstante"
+
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "Exponent hat keine Ziffern"
+
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadezimale Gleitkommakonstanten benötigen Exponenten"
+
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ungültiger Suffix »%.*s« an Gleitkommakonstante"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionelles C lehnt den Suffix »%.*s« ab"
+
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ungültiger Suffix »%.*s« an Ganzzahlkonstante"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "C99 long long Ganzzahlkonstante verwendet"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginäre Konstanten sind eine GCC-Erweiterung"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "Ganzzahlkonstante ist zu groß für ihren Typ"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "Ganzzahlkonstante ist so groß, dass sie vorzeichenlos ist"
+
+#: cppexp.c:482
+msgid "missing ')' after \"defined\""
+msgstr "fehlendes ')' nach »defined«"
+
+#: cppexp.c:489
+msgid "operator \"defined\" requires an identifier"
+msgstr "Operator »defined« erfordert einen Bezeichner"
+
+#: cppexp.c:497
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(»%s« ist ein alternatives Token for »%s« in C++)"
+
+#: cppexp.c:507
+msgid "this use of \"defined\" may not be portable"
+msgstr "diese Verwendung von »defined« könnte nicht portierbar sein"
+
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "Gleitkommakonstante in Präprozessorausdruck"
+
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginäre Zahl in Präprozessorausdruck"
+
+#: cppexp.c:596
+#, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr "ISO-C++ lässt nicht »%s« in #if zu"
+
+#: cppexp.c:604
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "»%s« ist nicht definiert"
+
+#: cppexp.c:737 cppexp.c:772
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "fehlender binärer Operator vor Token »%s«"
+
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "ungültiges Zeichen '%c' in #if"
+
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "ungültiges Zeichen '\\%03o' in #if"
+
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken"
+
+#: cppexp.c:782
+msgid "void expression between '(' and ')'"
+msgstr "ungültiger Ausdruck zwischen '(' und ')'"
+
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if ohne Ausdruck"
+
+#: cppexp.c:787
+#, c-format
+msgid "operator '%s' has no right operand"
+msgstr "Operator »%s« hat keinen rechten Operanden"
+
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr " ':' ohne vorangehendes '?'"
+
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "unausgeglichener Keller in #if"
+
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "unmöglicher Operator '%u'"
+
+#: cppexp.c:954
+msgid "missing ')' in expression"
+msgstr "fehlendes ')' in Ausdruck"
+
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr "'?' ohne folgendes ':'"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "Ganzzahlüberlauf in Präprozessorausdruck"
+
+#: cppexp.c:990
+msgid "missing '(' in expression"
+msgstr "fehlendes '(' in Ausdruck"
+
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
+
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
+
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "Kommaoperator in Operand von #if"
+
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "Division durch null in #if"
+
+#: cppfiles.c:411
+#, c-format
+msgid "%s is too large"
+msgstr "%s ist zu groß"
+
+#: cppfiles.c:447
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s ist kürzer als erwartet"
+
+#: cppfiles.c:461
+#, c-format
+msgid "%s is a block device"
+msgstr "%s ist ein Block-Gerät"
+
+#: cppfiles.c:594
+#, c-format
+msgid "no include path in which to find %s"
+msgstr "Kein Include-Pfad, um %s zu finden"
+
+#: cppfiles.c:668
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
+
+#: cppfiles.c:1014
+msgid "absolute file name in remap_filename"
+msgstr "absoluter Dateiname in remap_filename"
+
+#: cppinit.c:224
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "nicht vorhandenes Verzeichnis »%s« wird ignoriert\n"
+
+#: cppinit.c:231
+#, c-format
+msgid "%s: Not a directory"
+msgstr "%s: Kein Verzeichnis"
+
+#: cppinit.c:287
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "doppeltes Verzeichnis »%s« wird ignoriert\n"
+
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " da es ein Nicht-Systemverzeichnis ist, das ein Systemverzeichnis dupliziert\n"
+
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t muss ein vorzeichenloser Typ sein"
+
+#: cppinit.c:895
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "Präprozessorarithmetik hat maximale Präzision von %lu Bits; Ziel erfordert %lu Bits"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-Arithmetik muss mindestens so präzise sein wie das Ziel int"
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "Ziel char ist weniger als 8 Bits breit"
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "Ziel wchar_t ist schmaler als Ziel char"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "Ziel int ist schmaler als Ziel char"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen"
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP kann auf diesem Computer keine Wide-Zeichenkonstanten über %lu Bits Breite behandeln, das Ziel benötigt %lu Bits"
+
+#: cppinit.c:972
+msgid "#include \"...\" search starts here:\n"
+msgstr "#include \"...\" Suche beginnt hier:\n"
+
+#: cppinit.c:976
+msgid "#include <...> search starts here:\n"
+msgstr "#include <...> Suche beginnt hier:\n"
+
+#: cppinit.c:979
+msgid "End of search list.\n"
+msgstr "Ende der Suchliste.\n"
+
+#: cppinit.c:1057
+msgid "<built-in>"
+msgstr "<eingebaut>"
+
+#: cppinit.c:1059
+msgid "<command line>"
+msgstr "<Kommandozeile>"
+
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, c-format
+msgid "assertion missing after %s"
+msgstr "Behauptung fehlt hinter %s"
+
+#: cppinit.c:1165
+#, c-format
+msgid "directory name missing after %s"
+msgstr "Verzeichnisname fehlt hinter %s"
+
+#: cppinit.c:1166
+#, c-format
+msgid "file name missing after %s"
+msgstr "Dateiname fehlt hinter %s"
+
+#: cppinit.c:1167
+#, c-format
+msgid "macro name missing after %s"
+msgstr "Makroname fehlt hinter %s"
+
+#: cppinit.c:1168
+#, c-format
+msgid "path name missing after %s"
+msgstr "Pfadname fehlt hinter %s"
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr "-I- doppelt angegeben"
+
+#: cpplex.c:149
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "Trigraph ??%c in %c konvertiert"
+
+#: cpplex.c:157
+#, c-format
+msgid "trigraph ??%c ignored"
+msgstr "Trigraph ??%c ignoriert"
+
+#: cpplex.c:214
+msgid "backslash and newline separated by space"
+msgstr "Backslash und Newline durch Leerzeichen getrennt"
+
+#: cpplex.c:221 cpptrad.c:158
+msgid "backslash-newline at end of file"
+msgstr "Backslash-Newline am Dateiende"
+
+#: cpplex.c:287 cpptrad.c:199
+msgid "\"/*\" within comment"
+msgstr "»/*« innerhalb des Kommentars"
+
+#: cpplex.c:395
+msgid "null character(s) ignored"
+msgstr "Null-Zeichen ignoriert"
+
+#: cpplex.c:402
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s in Präprozessordirektive"
+
+#: cpplex.c:475
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Versuch, schlechtes »%s« zu verwenden"
+
+#: cpplex.c:483
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kann nur in Erweiterung eines variadischen C99-Makros auftreten"
+
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "'$'-Zeichen in Bezeichner oder Zahl"
+
+#: cpplex.c:698
+#, c-format
+msgid "missing terminating %c character"
+msgstr "fehlendes abschließendes Zeichen %c"
+
+#: cpplex.c:711
+msgid "null character(s) preserved in literal"
+msgstr "Null-Zeichen im Literal erhalten"
+
+#: cpplex.c:915 cpptrad.c:487
+msgid "no newline at end of file"
+msgstr "Kein Newline am Dateiende"
+
+#: cpplex.c:1092 cpptrad.c:213
+msgid "unterminated comment"
+msgstr "nicht beendeter Kommentar"
+
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt"
+
+#: cpplex.c:1105
+msgid "(this will be reported only once per input file)"
+msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)"
+
+#: cpplex.c:1110
+msgid "multi-line comment"
+msgstr "mehrzeiliger Kommentar"
+
+#: cpplex.c:1425
+#, c-format
+msgid "unknown string token %s\n"
+msgstr "Unbekanntes Zeichenketten-Token %s\n"
+
+#: cpplex.c:1438
+#, c-format
+msgid "unspellable token %s"
+msgstr "nicht buchstabierbares Token %s"
+
+#: cpplex.c:1695
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "die Bedeutung von '\\%c' ist in traditionellem C anders"
+
+#: cpplex.c:1701
+msgid "incomplete universal-character-name"
+msgstr "unvollständiger Universal-Zeichen-Name"
+
+#: cpplex.c:1715
+#, c-format
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr "Nicht-Hex-Ziffer '%c' in Universal-Zeichen-Name"
+
+#: cpplex.c:1723
+msgid "universal-character-name on EBCDIC target"
+msgstr "Universal-Zeichen-Name auf EBCDIC Ziel"
+
+#: cpplex.c:1737
+msgid "universal-character-name out of range"
+msgstr "Universal-Zeichen-Name außerhalb des Wertebereiches"
+
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "die Bedeutung von '\\a' ist in traditionellem C anders"
+
+#: cpplex.c:1798
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "nicht-ISO-standardkonforme Fluchtsequenz '\\%c'"
+
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "die Bedeutung von '\\x' ist in traditionellem C anders"
+
+#: cpplex.c:1828 f/lex.c:585
+msgid "\\x used with no following hex digits"
+msgstr "\\x ohne folgende Hex-Ziffern verwendet"
+
+#: cpplex.c:1833
+msgid "hex escape sequence out of range"
+msgstr "Hex-Fluchtsequenz außerhalb des Wertebereiches"
+
+#: cpplex.c:1858
+msgid "octal escape sequence out of range"
+msgstr "Oktal-Fluchtsequenz außerhalb des Wertebereiches"
+
+#: cpplex.c:1874
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "unbekannte Fluchtsequenz '\\%c'"
+
+#: cpplex.c:1877
+#, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "unbekannte Fluchtsequenz: '\\%03o'"
+
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "Fluchtsequenz außerhalb des Wertebereiches seines Typs"
+
+#: cpplex.c:1973
+msgid "empty character constant"
+msgstr "Leere Zeichenkonstante"
+
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "Zeichenkonstante zu lang für ihren Typ"
+
+#: cpplex.c:1986
+msgid "multi-character character constant"
+msgstr "Zeichenkonstante mit mehreren Zeichen"
+
+#: cpplib.c:225
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "mehrere Token am Ende der Direktive #%s"
+
+#: cpplib.c:315
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s ist eine Erweiterung des GCC"
+
+#: cpplib.c:327
+msgid "suggest not using #elif in traditional C"
+msgstr "empfehle, in traditionellem C nicht #elif zu verwenden"
+
+#: cpplib.c:330
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionelles C ignoriert #%s mit eingerücktem #"
+
+#: cpplib.c:334
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "empfehle, #%s vor traditionellem C mit # zu verbergen"
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht portierbar"
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr "der Stil der line-Direktive ist eine Erweiterung des GCC"
+
+#: cpplib.c:428
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ungültige Präprozessordirektive #%s"
+
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "»defined« kann nicht als Makroname verwendet werden"
+
+#: cpplib.c:506
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "»%s« kann nicht als Makroname verwendet werden, da es ein Operator in C++ ist"
+
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "kein Makroname in Direktive #%s angegeben"
+
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr "Makronamen müssen Bezeichner sein"
+
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
+msgstr "un-definiere »%s«"
+
+#: cpplib.c:598
+msgid "missing terminating > character"
+msgstr "fehlendes abschließendes »>«-Zeichen"
+
+#: cpplib.c:637
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
+
+#: cpplib.c:648
+#, c-format
+msgid "empty file name in #%s"
+msgstr "leerer Dateiname in #%s"
+
+#: cpplib.c:667
+msgid "#include_next in primary source file"
+msgstr "#include_next in erster Quelldatei"
+
+#: cpplib.c:674
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr "#import ist veraltet, benutzen Sie einen #ifndef-Wrapper in der Header-Datei"
+
+#: cpplib.c:682
+msgid "#include nested too deeply"
+msgstr "#include ist zu tief geschachtelt"
+
+#: cpplib.c:739
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ungültiges Flag »%s« in line-Direktive"
+
+#: cpplib.c:814
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "»%s« hinter #line ist keine positive Ganzzahl"
+
+#: cpplib.c:820
+msgid "line number out of range"
+msgstr "Zeilennummer ist außerhalb des Wertebereiches"
+
+#: cpplib.c:831 cpplib.c:902
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "»%s« ist kein gültiger Dateiname"
+
+#: cpplib.c:866
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "»%s« hinter # ist keine positive Ganzzahl"
+
+#: cpplib.c:973
+msgid "invalid #ident directive"
+msgstr "ungültige #ident-Direktive"
+
+#: cpplib.c:1061
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registriere »%s« sowohl als Pragma als auch als Pragma-Namespace"
+
+#: cpplib.c:1064
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ist bereits registriert"
+
+#: cpplib.c:1067
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ist bereits registriert"
+
+#: cpplib.c:1143
+msgid "#pragma once is obsolete"
+msgstr "#pragma once ist veraltet"
+
+#: cpplib.c:1146
+msgid "#pragma once in main file"
+msgstr "#pragma once in Hauptdatei"
+
+#: cpplib.c:1170
+msgid "invalid #pragma GCC poison directive"
+msgstr "ungültige #pragma GCC Direktive"
+
+#: cpplib.c:1179
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "schlechtes existierendes Makro »%s«"
+
+#: cpplib.c:1201
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header außerhalb include-Datei ignoriert"
+
+#: cpplib.c:1226
+#, c-format
+msgid "cannot find source %s"
+msgstr "kann Quelle %s nicht finden"
+
+#: cpplib.c:1230
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuelle Datei ist älter als %s"
+
+#: cpplib.c:1346
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
+
+#: cpplib.c:1429
+msgid "#else without #if"
+msgstr "#else ohne #if"
+
+#: cpplib.c:1434
+msgid "#else after #else"
+msgstr "#else hinter #else"
+
+#: cpplib.c:1436 cpplib.c:1470
+msgid "the conditional began here"
+msgstr "die Bedingung begann hier"
+
+#: cpplib.c:1463
+msgid "#elif without #if"
+msgstr "#elif ohne #if"
+
+#: cpplib.c:1468
+msgid "#elif after #else"
+msgstr "#elif hinter #else"
+
+#: cpplib.c:1499
+msgid "#endif without #if"
+msgstr "#endif ohne #if"
+
+#: cpplib.c:1582
+msgid "missing '(' after predicate"
+msgstr "fehlendes '(' hinter Prädikat"
+
+#: cpplib.c:1597
+msgid "missing ')' to complete answer"
+msgstr "fehlendes ')', um Antwort abzuschließen"
+
+#: cpplib.c:1617
+msgid "predicate's answer is empty"
+msgstr "Prädikatantwort ist leer"
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
+msgstr "Behauptung ohne Prädikat"
+
+#: cpplib.c:1649
+msgid "predicate must be an identifier"
+msgstr "Prädikat muss ein Bezeichner sein"
+
+#: cpplib.c:1738
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "»%s« wieder behauptet"
+
+#: cpplib.c:1968
+#, c-format
+msgid "unterminated #%s"
+msgstr "unbeendetes #%s"
+
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Makro »%s« wird nicht benutzt"
+
+#: cppmacro.c:139 cppmacro.c:294
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ungültiges eingebautes Makro »%s«"
+
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "Datum und Zeit konnten nicht bestimmt werden"
+
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ungültiges Zeichenkettenliteral, ignoriere abschließendes '\\'"
+
+#: cppmacro.c:504
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "das Einfügen von »%s« und »%s« ergibt kein gültiges Präprozessor-Token"
+
+#: cppmacro.c:546
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO-C99 erfordert, dass Restargumente verwendet werden"
+
+#: cppmacro.c:551
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Makro »%s« erfordert %u Argumente, aber nur %u wurden angegeben"
+
+#: cppmacro.c:556
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es nimmt nur %u"
+
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
+
+#: cppmacro.c:776
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktionsähnliches Makro »%s« muss mit Argumenten in traditionellem C verwendet werden"
+
+#: cppmacro.c:1314
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "doppelter Makroparameter »%s«"
+
+#: cppmacro.c:1351
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "»%s« darf nicht in Makroparameterliste auftreten"
+
+#: cppmacro.c:1359
+msgid "macro parameters must be comma-separated"
+msgstr "Makroparameter müssen mit Komma getrennt sein"
+
+#: cppmacro.c:1376
+msgid "parameter name missing"
+msgstr "Parametername fehlt"
+
+#: cppmacro.c:1391
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme variadische Makros wurden in C99 eingeführt"
+
+#: cppmacro.c:1395
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO-C erlaubt keine benannten variadischen Makros"
+
+#: cppmacro.c:1404
+msgid "missing ')' in macro parameter list"
+msgstr "fehlendes ')' in Makroparameterliste"
+
+#: cppmacro.c:1472
+msgid "ISO C requires whitespace after the macro name"
+msgstr "ISO-C erfordert Whitespace hinter Makroname"
+
+#: cppmacro.c:1500
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' wird nicht von einem Makroparameter gefolgt"
+
+#: cppmacro.c:1519
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' kann nicht an Enden einer Makroexpansion auftreten"
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "»%s« redefiniert"
+
+#: cppmacro.c:1606
+msgid "this is the location of the previous definition"
+msgstr "dies ist die Stelle der vorherigen Definition"
+
+#: cppmacro.c:1657
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "Makroargument »%s« würde in traditionellem C zum String gewandelt werden"
+
+#: cppmacro.c:1682
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
+
+#: cppspec.c:109
+#, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "»%s« ist keine gültige Präprozessoroption"
+
+#: cppspec.c:133
+msgid "too many input files"
+msgstr "zu viele Eingabedateien"
+
+#: cpptrad.c:841
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "Rekursion bei Expansion des Makros »%s« entdeckt"
+
+#: cse.c:7195
+#, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; Bearbeite Block von %d bis %d, %d Sets.\n"
+
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr "((anonym))"
+
+#: diagnostic.c:928
+#, c-format
+msgid "%s: warnings being treated as errors\n"
+msgstr "%s: Warnungen als Fehler behandelt\n"
+
+#: diagnostic.c:963
+#, c-format
+msgid "%s: %s: "
+msgstr "%s: %s: "
+
+#: diagnostic.c:1054
+#, c-format
+msgid "%s "
+msgstr "%s "
+
+#: diagnostic.c:1056
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: diagnostic.c:1078
+msgid "At top level:"
+msgstr "Auf höchster Ebene:"
+
+#: diagnostic.c:1083
+#, c-format
+msgid "In member function `%s':"
+msgstr "In Memberfunktion »%s«:"
+
+#: diagnostic.c:1087
+#, c-format
+msgid "In function `%s':"
+msgstr "In Funktion »%s«:"
+
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr "Kompilierung beendet.\n"
+
+#: diagnostic.c:1193
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d: durch frühere Fehler verwirrt, Abbruch\n"
+
+#: diagnostic.c:1208 diagnostic.c:1316
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr ""
+"Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;\n"
+"bearbeiten Sie die Quellen zunächst mit einem Präprozessor, wenn es\n"
+"dienlich ist.\n"
+"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+"\n"
+"Gehen Sie gemäß den Hinweisen in %s vor.\n"
+
+#: diagnostic.c:1314
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Interner Compilerfehler: Fehlerbehandlungsroutinen doppelt betreten.\n"
+
+#: diagnostic.c:1376
+#, c-format
+msgid "in %s, at %s:%d"
+msgstr "in %s, bei %s:%d"
+
+#: diagnostic.c:1397
+#, c-format
+msgid "In file included from %s:%d"
+msgstr "In von %s:%d eingefügter Datei"
+
+#: diagnostic.c:1400
+#, c-format
+msgid ""
+",\n"
+" from %s:%d"
+msgstr ""
+",\n"
+" von %s:%d"
+
+#: diagnostic.c:1401
+msgid ":\n"
+msgstr ":\n"
+
+#: diagnostic.c:1445 diagnostic.c:1462
+#, c-format
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr "»%s« ist veraltet (deklariert bei %s:%d)"
+
+#: diagnostic.c:1465
+#, c-format
+msgid "`%s' is deprecated"
+msgstr "»%s« ist veraltet"
+
+#: diagnostic.c:1468
+#, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "Typ ist veraltet (in %s:%d deklariert)"
+
+#: diagnostic.c:1471
+msgid "type is deprecated"
+msgstr "Typ ist veraltet"
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "Herrscher über %d sollte %d sein, nicht %d"
+
+#: dwarf2out.c:3135
+#, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "DW_LOC_OP %s nicht implementiert\n"
+
+#: dwarfout.c:2066
+#, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "interner RegNr-Fehler: »%s« hat RegNr = %d\n"
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "Unterstützung für das DWARF1-Debugging-Format ist veraltet"
+
+#: dwarfout.c:6278
+msgid "can't get current directory"
+msgstr "kann aktuelles Verzeichnis nicht ermitteln"
+
+#: emit-rtl.c:1155
+msgid "can't access real part of complex value in hard register"
+msgstr "kann nicht auf realen Teil des komplexen Wertes im festen Register zugreifen"
+
+#: emit-rtl.c:1177
+msgid "can't access imaginary part of complex value in hard register"
+msgstr "kann nicht auf imaginären Teil des komplexen Wertes im festen Register zugreifen"
+
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr "ICE: emit_insn verwendet, wo emit_jump_insn erforderlich:\n"
+
+#: errors.c:136
+#, c-format
+msgid "abort in %s, at %s:%d"
+msgstr "Abbruch in %s, bei %s:%d"
+
+#: except.c:369
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "Ausnahmebehandlung ausgeschaltet, benutzen Sie -fexeptions zum Anschalten"
+
+#: except.c:2994
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr "Argument für »__builtin_eh_return_regno« muss konstant sein"
+
+#: except.c:3137
+msgid "__builtin_eh_return not supported on this target"
+msgstr "__builtin_eh_return für dieses Ziel nicht unterstützt"
+
+#: explow.c:1408
+msgid "stack limits not supported on this target"
+msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
+
+#: expr.c:3355
+msgid "function using short complex types cannot be inline"
+msgstr "Funktion, die komplexe »short«-Typen verwendet, kann nicht »inline« sein"
+
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+msgid "unsupported wide integer operation"
+msgstr "breite Ganzzahloperation nicht unterstützt"
+
+#: expr.c:6669
+#, c-format
+msgid "prior parameter's size depends on `%s'"
+msgstr "vorherige Parametergröße hängt von »%s« ab"
+
+#: expr.c:7005
+msgid "returned value in block_exit_expr"
+msgstr "zurückgelieferter Wert in block_exit_expr"
+
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+msgid "cannot take the address of an unaligned member"
+msgstr "die Adresse eines nicht ausgerichteten Members kann nicht ermittelt werden"
+
+#: final.c:1342
+msgid "negative insn length"
+msgstr "negative insn-Länge"
+
+#: final.c:2793
+msgid "could not split insn"
+msgstr "insn kann nicht aufgeteilt werden"
+
+#: final.c:3141
+msgid "invalid `asm': "
+msgstr "ungültiges »asm«: "
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
+msgstr "geschachtelte Assemblerdialekt-Alternativen"
+
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
+msgstr "unbeendete Assemblerdialekt-Alternative"
+
+#: final.c:3401
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr "Operandenzahl fehlt hinter %%-Buchstabe"
+
+#: final.c:3404 final.c:3443
+msgid "operand number out of range"
+msgstr "Operandenzahl außerhalb des Wertebereiches"
+
+#: final.c:3462
+#, c-format
+msgid "invalid %%-code"
+msgstr "ungültiger %%-Code"
+
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
+msgstr "»%%l«-Operand ist keine Marke"
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+msgid "floating constant misused"
+msgstr "Gleitkommakonstante falsch benutzt"
+
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+msgid "invalid expression as operand"
+msgstr "ungültiger Ausdruck als Operand"
+
+#: flow.c:352
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr "Funktion könnte möglicher Kandidat für Attribut »noreturn« sein"
+
+#: flow.c:357
+msgid "`noreturn' function does return"
+msgstr "»noreturn«-Funktion kehrt zurück"
+
+#: flow.c:378
+msgid "control reaches end of non-void function"
+msgstr "Kontrollfluss erreicht Ende einer Nicht-void-Funktion"
+
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "Versuch, Prolog/Epilog-insn zu löschen"
+
+#: fold-const.c:2546 fold-const.c:2559
+#, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "Vergleich ist immer %d wegen Breite des Bitfeldes"
+
+#: fold-const.c:3753 fold-const.c:3770
+#, c-format
+msgid "comparison is always %d"
+msgstr "Vergleich ist immer %d"
+
+#: fold-const.c:3901
+msgid "`or' of unmatched not-equal tests is always 1"
+msgstr "»oder« nicht passender Ungleichheits-Tests ist immer 1"
+
+#: fold-const.c:3906
+msgid "`and' of mutually exclusive equal-tests is always 0"
+msgstr "»und« gegenseitig ausschließender Gleichheits-Tests ist immer 0"
+
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "Größe der Variable »%s« ist zu hoch"
+
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr "unmögliche Bedingung in »asm«"
+
+#: function.c:5527
+#, c-format
+msgid "`%s' might be used uninitialized in this function"
+msgstr "»%s« könnte in dieser Funktion uninitialisiert bleiben"
+
+#: function.c:5534
+#, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "Variable »%s« könnte von »longjmp« oder »vfork« zerstört werden"
+
+#: function.c:5553
+#, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "Argument »%s« könnte von »longjmp« oder »vfork« zerstört werden"
+
+#: function.c:6420
+msgid "function returns an aggregate"
+msgstr "Funktion gibt Aggregat zurück"
+
+#: function.c:6925
+#, c-format
+msgid "unused parameter `%s'"
+msgstr "nicht benutzter Parameter »%s«"
+
+#: gcc.c:1107
+#, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "mehrdeutige Abkürzung %s"
+
+#: gcc.c:1134
+#, c-format
+msgid "incomplete `%s' option"
+msgstr "unvollständige »%s«-Option"
+
+#: gcc.c:1145
+#, c-format
+msgid "missing argument to `%s' option"
+msgstr "fehlendes Argument für »%s«-Option"
+
+#: gcc.c:1158
+#, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "zusätzliches (belangloses) Argument für »%s«-Option"
+
+#: gcc.c:1486
+msgid "Using built-in specs.\n"
+msgstr "Benutze eingebaute Spezifikationen.\n"
+
+#: gcc.c:1667
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+"Setze Spezifikation %s auf '%s'\n"
+"\n"
+
+#: gcc.c:1774
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr "Lese Spezifikationen von %s\n"
+
+#: gcc.c:1872 gcc.c:1891
+#, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "falsche %%include-Syntax für Spezifikationen nach %ld Zeichen"
+
+#: gcc.c:1899
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr "konnte Spezifikationsdatei %s nicht finden\n"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
+#, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "falsche %%rename-Syntax für Spezifikationen nach %ld Zeichen"
+
+#: gcc.c:1951
+#, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "keine %s-Spezifikation zum Umbenennen gefunden"
+
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s: Versuch, Spezifikation »%s« in bereits definierte Spezifikation »%s« umzubenennen"
+
+#: gcc.c:1963
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr "benenne Spezifikation %s nach %s um\n"
+
+#: gcc.c:1965
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+"Spezifikation ist '%s'\n"
+"\n"
+
+#: gcc.c:1978
+#, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "Spezifikation: unbekannter %%-Befehl nach %ld Zeichen"
+
+#: gcc.c:1989 gcc.c:2002
+#, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "Fehler in Spezifikationsdatei nach %ld Zeichen"
+
+#: gcc.c:2056
+msgid "spec file has no spec for linking"
+msgstr "Spezifikationsdatei hat keine Spezifikation zum Binden"
+
+#: gcc.c:2554
+msgid "-pipe not supported"
+msgstr "-pipe wird nicht unterstützt"
+
+# can we use j/n here, too?
+# 2002-04-23 18:57:43 CEST -ke-
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+"\n"
+"Fortfahren? (y oder n) "
+
+#: gcc.c:2735
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr ""
+"Interner Fehler: %s (Programm %s)\n"
+"Bitte senden Sie einen vollständigen Fehlerbericht\n"
+"auf Englisch ein; Fehler in der deutschen Ãœbersetzung\n"
+"sind an de@li.org zu melden.\n"
+"Gehen Sie gemäß den Hinweisen in %s vor."
+
+#: gcc.c:2753
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:2883
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Aufruf: %s [Optionen] Datei...\n"
+
+#: gcc.c:2884
+msgid "Options:\n"
+msgstr "Optionen:\n"
+
+#: gcc.c:2886
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes Ende mit höchstem Rückgabe-Code einer Phase\n"
+
+#: gcc.c:2887
+msgid " --help Display this information\n"
+msgstr " --help Diese Informationen anzeigen\n"
+
+#: gcc.c:2888
+msgid " --target-help Display target specific command line options\n"
+msgstr " --target-help Zielspezifische Kommandozeilenoptionen anzeigen\n"
+
+#: gcc.c:2890
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " ('-v --help' zum Anzeigen der Kommandozeilenoptionen von Subprozessen verwenden)\n"
+
+#: gcc.c:2891
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs Alle eingebauten Spezifikationszeichenketten anzeigen\n"
+
+#: gcc.c:2892
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion Compilerversion anzeigen\n"
+
+#: gcc.c:2893
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine Zielprozessor des Compilers anzeigen\n"
+
+#: gcc.c:2894
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr " -print-search-dirs Verzeichnisse im Suchpfad des Compilers anzeigen\n"
+
+#: gcc.c:2895
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr " -print-libgcc-file-name Name der Begleitbibliothek des Compilers anzeigen\n"
+
+#: gcc.c:2896
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<lib> Vollen Pfad zur Bibliothek <lib> anzeigen\n"
+
+#: gcc.c:2897
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr " -print-prog-name=<prog> Vollen Pfad zur Compilerkomponente <prog> anzeigen\n"
+
+#: gcc.c:2898
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory Wurzelverzeichnis für Versionen von libgcc anzeigen\n"
+
+#: gcc.c:2899
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr ""
+" -print-multi-lib Abbildung zwischen Kommandozeilenoptionen und\n"
+" mehreren Suchverzeichnissen für Bibliotheken anzeigen\n"
+
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr ""
+" -print-multi-os-directory Relativen Pfad zu Betriebssystembibliotheken\n"
+" anzeigen\n"
+
+#: gcc.c:2903
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<Optionen> Komma-getrennte <Optionen> an Assembler übergeben\n"
+
+#: gcc.c:2904
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<Optionen> Komma-getrennte <Optionen> an Präprozessor übergeben\n"
+
+#: gcc.c:2905
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<Optionen> Komma-getrennte <Optionen> an Linker übergeben\n"
+
+#: gcc.c:2906
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <arg> <arg> an den Linker übergeben\n"
+
+#: gcc.c:2907
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps Temporäre Dateien nicht löschen\n"
+
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe Pipes statt temporärer Dateien verwenden\n"
+
+#: gcc.c:2909
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time Zeit für Ausführung jedes Subprozesses stoppen\n"
+
+#: gcc.c:2910
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr ""
+" -specs=<Datei> Eingebaute Spezifikationen mit Inhalt der <Datei>\n"
+" überschreiben\n"
+
+#: gcc.c:2911
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr " -std=<Standard> Annehmen, dass die Eingabequellen für <Standard> sind\n"
+
+#: gcc.c:2912
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr " -B <Verzeichnis> <Verzeichnis> zum Suchpfad des Compilers hinzufügen\n"
+
+#: gcc.c:2913
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr ""
+" -b <Maschine> GCC für die Ziel-<Maschine> laufen lassen, falls\n"
+" installiert\n"
+
+#: gcc.c:2914
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr " -V <Version> GCC <Version> laufen lassen, falls installiert\n"
+
+#: gcc.c:2915
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v Vom Compiler aufgerufene Programme anzeigen\n"
+
+#: gcc.c:2916
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr ""
+" -### Wie -v, aber mit zitierten Optionen und nicht\n"
+" ausgeführten Befehlen\n"
+
+#: gcc.c:2917
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr ""
+" -E Nur Präprozessor, kein Compiler, Assembler oder\n"
+" Binder\n"
+
+#: gcc.c:2918
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S Nur kompilieren, nicht assemblieren oder binden\n"
+
+#: gcc.c:2919
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c Nur kompilieren und assemblieren, aber nicht binden\n"
+
+#: gcc.c:2920
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <Datei> Ausgabe in <Datei> schreiben\n"
+
+#: gcc.c:2921
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
+msgstr ""
+" -x <Sprache> Sprache der folgenden Eingabedateien angeben\n"
+" Zulässige Sprachen sind: c c++ assembler none\n"
+" 'none' bedeutet den Rückfall auf das Standard-\n"
+" verhalten, die Sprache aufgrund der Dateinamens-\n"
+" erweiterung zu vermuten\n"
+
+#: gcc.c:2928
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+"\n"
+"Optionen, die mit -g, -f, -m, -O, -W, oder --param beginnen, werden automatisch\n"
+" an die verschiedenen Subprozesse, die von %s aufgerufen werden, übergeben.\n"
+" Um andere Optionen an diese Prozesse zu übergeben, müssen die Optionen\n"
+" -W<Buchstabe> verwendet werden.\n"
+
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "Die Option »-%c« muss ein Argument haben"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr "konnte »%s« nicht ausführen: %s"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr "%s (GCC) %s\n"
+
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2003 Free Software Foundation, Inc.\n"
+
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+"Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es\n"
+"gibt KEINE Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.\n"
+"\n"
+
+#: gcc.c:3366
+msgid "argument to `-Xlinker' is missing"
+msgstr "Argument für »-Xlinker« fehlt"
+
+#: gcc.c:3374
+msgid "argument to `-l' is missing"
+msgstr "Argument für »-l« fehlt"
+
+#: gcc.c:3391
+msgid "argument to `-specs' is missing"
+msgstr "Argument für »-specs« fehlt"
+
+#: gcc.c:3406
+msgid "argument to `-specs=' is missing"
+msgstr "Argument für »-specs=« fehlt"
+
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr "»-%c« muss am Anfang der Kommandozeile stehen"
+
+#: gcc.c:3445
+msgid "argument to `-B' is missing"
+msgstr "Argument für »-B« fehlt"
+
+#: gcc.c:3618
+msgid "cannot specify -o with -c or -S and multiple compilations"
+msgstr "kann nicht -o mit -c oder -S und mehrere Kompilierungen angeben"
+
+#: gcc.c:3791
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "Warnung: -pipe ignoriert, da -save-temps angegeben"
+
+#: gcc.c:3795
+msgid "warning: -pipe ignored because -time specified"
+msgstr "Warnung: -pipe ignoriert, da -time angegeben"
+
+#: gcc.c:3807
+msgid "argument to `-x' is missing"
+msgstr "Argument für »-x« fehlt"
+
+#: gcc.c:3835
+#, c-format
+msgid "argument to `-%s' is missing"
+msgstr "Argument für »-%s« fehlt"
+
+#: gcc.c:3896
+#, c-format
+msgid "warning: `-x %s' after last input file has no effect"
+msgstr "Warnung: »-x %s« hinter letzter Eingabedatei hat keine Wirkung"
+
+#: gcc.c:4241
+msgid "invalid specification! Bug in cc"
+msgstr "ungültige Spezifikation! Fehler in cc"
+
+#: gcc.c:4395
+#, c-format
+msgid "%s\n"
+msgstr "%s\n"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
+#, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "Spezifikationsfehler: »%%*« wurde nicht durch Mustererkennung initialisiert"
+
+#: gcc.c:4964
+#, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "Warnung: Verwendung des veralteten Operators %%[ in Spezifikation"
+
+#: gcc.c:4982
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "Verarbeite Spezifikation %c%s%c, welche »%s« ist\n"
+
+#: gcc.c:5107
+#, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "Spezifikationsfehler: nicht erkannte Option »%c«"
+
+#: gcc.c:5188
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr "unbekannte Spezifikationsfunktion »%s«"
+
+#: gcc.c:5207
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr "Fehler in Argumenten für Spezifikationsfunktion »%s«"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr "schlechter Name für Spezifikationsfunktion"
+
+#. )
+#: gcc.c:5259
+msgid "no arguments for spec function"
+msgstr "keine Argumente für Spezifikationsfunktion"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr "schlechte Argumente für Spezifikationsfunktion"
+
+#: gcc.c:5386
+msgid "mismatched braces in specs"
+msgstr "unpassende geschweifte Klammern in Spezifikation"
+
+#: gcc.c:6081
+#, c-format
+msgid "unrecognized option `-%s'"
+msgstr "nicht erkannte Option »-%s«"
+
+#: gcc.c:6087
+#, c-format
+msgid "install: %s%s\n"
+msgstr "installiere: %s%s\n"
+
+#: gcc.c:6088
+#, c-format
+msgid "programs: %s\n"
+msgstr "Programme: %s\n"
+
+#: gcc.c:6089
+#, c-format
+msgid "libraries: %s\n"
+msgstr "Bibliotheken: %s\n"
+
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die\n"
+"folgenden Hinweise; Fehler in der deutschen Ãœbersetzung sind an de@li.org\n"
+"zu melden:\n"
+
+#: gcc.c:6162
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "Konfiguriert mit: %s\n"
+
+#: gcc.c:6176
+#, c-format
+msgid "Thread model: %s\n"
+msgstr "Thread-Modell: %s\n"
+
+#: gcc.c:6187
+#, c-format
+msgid "gcc version %s\n"
+msgstr "gcc-Version %s\n"
+
+#: gcc.c:6189
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "gcc-Treiberversion %s führt gcc Version %s aus\n"
+
+#: gcc.c:6197
+msgid "no input files"
+msgstr "keine Eingabedateien"
+
+#: gcc.c:6235
+#, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: %s-Compiler ist auf diesem System nicht installiert"
+
+#: gcc.c:6310
+#, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s: Eingabedateien des Binders unbenutzt, da keine Bindung geschieht"
+
+#: gcc.c:6353
+#, c-format
+msgid "language %s not recognized"
+msgstr "Sprache %s nicht erkannt"
+
+#: gcc.c:6456
+msgid "internal gcc abort"
+msgstr "interner Abruch des gcc"
+
+#: gcov.c:325
+msgid "Internal gcov abort.\n"
+msgstr "Interner gcov-Abbruch.\n"
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+"Aufruf: gcov [OPTION]... QUELLDATEI\n"
+"\n"
+
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+"Information zur Code-Ãœberdeckung ausgeben.\n"
+"\n"
+
+#: gcov.c:340
+msgid " -h, --help Print this help, then exit\n"
+msgstr " -h, --help Diese Hilfe anzeigen\n"
+
+#: gcov.c:341
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -v, --version Versionsnummer anzeigen\n"
+
+#: gcov.c:342
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr " -b, --branch-probabilities Zweigwahrscheinlichkeiten in Ausgabe aufnehmen\n"
+
+#: gcov.c:343
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr " -c, --branch-counts Angegebene Zweigzahlen statt Anteilen nehmen\n"
+
+#: gcov.c:345
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -n, --no-output Keine Ausgabedatei erzeugen\n"
+
+#: gcov.c:346
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr ""
+" -l, --long-file-names Lange Dateinamen für Ausgabedateien für\n"
+" eingefügte Quelldateien verwenden\n"
+
+#: gcov.c:348
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr " -f, --function-summaries Ausgabezusammenfassungen für jede Funktion\n"
+
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+" -o, --object-directory DIR|FILE In DIR oder aufgerufener Datei FILE nach\n"
+" Objektdateien suchen\n"
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths Alle Pfadnamenskomponenten bewahren\n"
+
+#: gcov.c:351
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+"\n"
+"Zum Einsenden von Fehlerberichten (auf Englisch) lesen Sie bitte die Hinweise in:\n"
+"%s.\n"
+"Fehler in der deutschen Ãœbersetzung sind an de@li.org zu melden.\n"
+
+#: gcov.c:361
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr "gcov (GCC) %s\n"
+
+#: gcov.c:362
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2001 Free Software Foundation, Inc.\n"
+
+#: gcov.c:500
+#, c-format
+msgid "Could not open basic block file %s.\n"
+msgstr "Konnte einfache Blockdatei %s nicht öffnen.\n"
+
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "Konnte Programmflussgraphdatei %s nicht öffnen.\n"
+
+#: gcov.c:524
+#, c-format
+msgid "Could not open data file %s.\n"
+msgstr "Konnte Datei %s nicht öffnen.\n"
+
+#: gcov.c:525
+msgid "Assuming that all execution counts are zero.\n"
+msgstr "Angenommen, dass alle Ausführungszähler null sind.\n"
+
+#: gcov.c:534
+#, c-format
+msgid "No executable code associated with file %s.\n"
+msgstr "Kein ausführbarer Code mit Datei %s verbunden.\n"
+
+#: gcov.c:1186
+#, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%s von %d Zeilen in %s %s ausgeführt\n"
+
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "Keine ausführbaren Zeilen in %s %s\n"
+
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%s von %d Zweigen in %s %s ausgeführt\n"
+
+#: gcov.c:1203
+#, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%s von %d Zweigen mindestens einmal in %s %s genommen\n"
+
+#: gcov.c:1209
+#, c-format
+msgid "No branches in %s %s\n"
+msgstr "Keine Zweige in %s %s\n"
+
+#: gcov.c:1211
+#, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%s von %d Aufrufe in %s %s ausgeführt\n"
+
+#: gcov.c:1216
+#, c-format
+msgid "No calls in %s %s\n"
+msgstr "Keine Aufrufe in %s %s\n"
+
+#: gcov.c:1351
+#, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "nicht alle bb-Einträge des Graphen wurden benutzt, Funktion %s\n"
+
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr "block_num = %ld, num_blocks = %d\n"
+
+#: gcov.c:1367
+#, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "FEHLER: nicht erwartete Zeilennummer %ld\n"
+
+#: gcov.c:1383
+#, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "FEHLER: zu viele Basis-Blöcke in Funktion %s\n"
+
+#: gcov.c:1398
+#, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "FEHLER: Zeilennummer außerhalb des Wertebereiches in Funktion %s\n"
+
+#: gcov.c:1470
+#, c-format
+msgid "Could not open source file %s.\n"
+msgstr "Konnte Quelldatei %s nicht öffnen.\n"
+
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Warnung: Quelldatei %s ist neuer als %s\n"
+
+#: gcov.c:1510
+#, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "Unerwartetes Dateiende beim Lesen der Quelldatei %s.\n"
+
+#: gcov.c:1532
+#, c-format
+msgid "call %2d never executed\n"
+msgstr "Aufruf %2d niemals ausgeführt\n"
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
+msgstr "Aufruf %2d gibt %s zurück\n"
+
+#: gcov.c:1543
+#, c-format
+msgid "branch %2d never executed\n"
+msgstr "Zweig %2d niemals ausgeführt\n"
+
+#: gcov.c:1546
+#, c-format
+msgid "branch %2d taken %s\n"
+msgstr "Zweig %2d genommen %s\n"
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr "Erzeuge %s.\n"
+
+#: gcov.c:1613
+#, c-format
+msgid "Error writing output file %s.\n"
+msgstr "Fehler beim Schreiben der Ausgabedatei %s.\n"
+
+#: gcov.c:1618
+#, c-format
+msgid "Could not open output file %s.\n"
+msgstr "Konnte Ausgabedatei %s nicht öffnen.\n"
+
+#: gcse.c:763
+#, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE ausgeschaltet: %d > 1000 Basis-Blöcke und %d >= 20 Kanten/Basis-Blöcke"
+
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE ausgeschaltet: %d Basis-Blöcke und %d Register"
+
+#: genautomata.c:1490
+#, c-format
+msgid "Name `%s' contains quotes"
+msgstr "Name »%s« enthält Anführungszeichen"
+
+#: genautomata.c:1621
+#, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "ungültige Zeichenkette »%s« in define_cpu_unit"
+
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "ungültige Zeichenkette »%s« in define_query_cpu_unit"
+
+#: genautomata.c:1682 genautomata.c:1685
+#, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "ungültige Zeichenkette »%s« in define_bypass"
+
+#: genautomata.c:1720
+#, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "ungültige erste Zeichenkette »%s« in exclusion_set"
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "ungültige zweite Zeichenkette »%s« in exclusion_set"
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "ungültige erste Zeichenkette »%s« in presence_set"
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "ungültige zweite Zeichenkette »%s« in presence_set"
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "ungültige erste Zeichenkette »%s« in absence_set"
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr "ungültige zweite Zeichenkette »%s« in absence_set"
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "ungültige Zeichenkette »%s« in define_automaton"
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "ungültige Option »%s« in automata_option"
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr "Müll hinter ) in Reservierung »%s«"
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "ungültiges »%s« in Reservierung »%s«"
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr "Wiederholung »%s« <= 1 in Reservierung »%s«"
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "Einheit »%s« ist nicht im Ausschluss deklariert"
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr "»%s« im Ausschluss ist keine Einheit"
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr "Einheit »%s« schließt sich selbst aus"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr "Einheiten »%s« und »%s« in Ausschlussmenge gehören zu verschiedenen Automaten"
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr "Einheit »%s« schließt »%s« aus und erfordert dessen Anwesenheit"
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr "Einheit »%s« erfordert die An- und Abwesenheit von »%s«"
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "wiederholte Deklaration des Automaten %s"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr "define_insn_reservation »%s« hat negative Latenzzeit"
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "»%s« wurde bereits als insn Reservierungsname verwendet"
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr "define_bypass »%s - %s« hat negative Latenzzeit"
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr "Automat »%s« wurde nicht deklariert"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr "define_unit »%s« ohne Automat trotz Automatendefinition"
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "»%s« wurde als CPU-Einheit deklariert"
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "»%s« wurde als CPU-Reservierung deklariert"
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "wiederholte Deklaration der Einheit »%s«"
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "wiederholte Deklaration der Reservierung »%s«"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "es gibt keine insn-Reservierung »%s«"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "die selbe Überbrückung »%s - %s« wurde bereits definiert"
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "Überbrückung »%s - %s« wurde bereits definiert"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr "Automat »%s« ist unbenutzt"
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "nicht deklarierte Einheit oder Reservierung »%s«"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr "Einheit »%s« wird nicht verwendet"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr "Reservierung »%s« ist unbenutzt"
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "Zyklus in Definition der Reservierung »%s«"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr "Einheiten »%s« und »%s« sollten im selben Automat sein"
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr "-split hat kein Argument."
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr "Option »-split« wurde noch nicht implementiert\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr "Automat »%s«: Insn »%s« wird nie verwendet"
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr "Insn »%s« wird nie verwendet"
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr "Fehler in DFA-Beschreibung"
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "Fehler beim Schreiben der DFA-Definitionsdatei %s"
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr "Kein Eingabedateiname."
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr "/dev/zero öffnen"
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, c-format
+msgid "can't open %s"
+msgstr "Es ist nicht möglich, »%s« zu öffnen"
+
+#: haifa-sched.c:196
+#, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "fix_sched_param: unbekannter Parameter: %s"
+
+#: integrate.c:174
+msgid "function cannot be inline"
+msgstr "Funktion kann nicht »inline« sein"
+
+#: integrate.c:178
+msgid "varargs function cannot be inline"
+msgstr "Varargs-Funktion kann nicht »inline« sein"
+
+#: integrate.c:181
+msgid "function using alloca cannot be inline"
+msgstr "alloca benutzende Funktion kann nicht »inline« sein"
+
+#: integrate.c:184
+msgid "function using setjmp cannot be inline"
+msgstr "setjmp benutzende Funktion kann nicht »inline« sein"
+
+#: integrate.c:187
+msgid "function uses __builtin_eh_return"
+msgstr "Funktion verwendet __builtin_eh_return"
+
+#: integrate.c:190
+msgid "function with nested functions cannot be inline"
+msgstr "Funktion mit geschachtelten Funktionen kann nicht »inline« sein"
+
+#: integrate.c:194
+msgid "function with label addresses used in initializers cannot inline"
+msgstr "Funktion mit Markenadressen in Initialisierungen kann nicht »inline« sein"
+
+#: integrate.c:201 integrate.c:245
+msgid "function too large to be inline"
+msgstr "Funktion zu groß um »inline« sein zu können"
+
+#: integrate.c:211
+msgid "no prototype, and parameter address used; cannot be inline"
+msgstr "kein Prototyp, und Parameteradresse verwendet; kann nicht »inline« sein"
+
+#: integrate.c:218 integrate.c:263
+msgid "inline functions not supported for this return value type"
+msgstr "»inline«-Funktionen für diesen Rückgabetyp nicht unterstützt"
+
+#: integrate.c:223
+msgid "function with varying-size return value cannot be inline"
+msgstr "Funktion mit Rückgabetyp variabler Größe kann nicht »inline« sein"
+
+#: integrate.c:230
+msgid "function with varying-size parameter cannot be inline"
+msgstr "Funktion mit Parameter variabler Größe kann nicht »inline« sein"
+
+#: integrate.c:233
+msgid "function with transparent unit parameter cannot be inline"
+msgstr "Funktion mit transparentem Einheiten-Parameter kann nicht »inline« sein"
+
+#: integrate.c:252
+msgid "function with computed jump cannot inline"
+msgstr "Funktion mit berechnetem Sprung kann nicht »inline« sein"
+
+#: integrate.c:256
+msgid "function with nonlocal goto cannot be inline"
+msgstr "Funktion mit nichtlokalem Goto kann nicht »inline« sein"
+
+#: integrate.c:270
+msgid "function with target specific attribute(s) cannot be inlined"
+msgstr "Funktion mit zielspezifischen Attributen kann nicht »inline« sein"
+
+#: line-map.c:198
+#, c-format
+msgid "In file included from %s:%u"
+msgstr "In Datei, eingefügt von %s:%u"
+
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ""
+",\n"
+" von %s:%u"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, c-format
+msgid "invalid parameter `%s'"
+msgstr "ungültiger Parameter »%s«"
+
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr "Profil passt nicht zum Flussgraphen der Funktion %s (veraltet?)"
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr ".da-Datei beschädigt"
+
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgstr "Info zum beschädigten Profil: Problem mit »%d-%d«, sollte %d sein"
+
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
+msgstr "Datei %s nicht gefunden, Ausführungszähler als null angenommen"
+
+#: protoize.c:542
+#, c-format
+msgid "%s: internal abort\n"
+msgstr "%s: interner Abbruch\n"
+
+#: protoize.c:633
+#, c-format
+msgid "%s: error writing file `%s': %s\n"
+msgstr "%s: Fehler beim Schreiben der Datei »%s«: %s\n"
+
+#: protoize.c:678
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s: Aufruf '%s [ -VqfnkN ] [ -i <istring> ] [ Dateiname ... ]'\n"
+
+#: protoize.c:681
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s: Aufruf '%s [ -VqfnkNlgC ] [ -B <VerzName> ] [ Dateiname ... ]'\n"
+
+#: protoize.c:788
+#, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr "%s: Warnung: kein Leserecht für Datei »%s«\n"
+
+#: protoize.c:796
+#, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr "%s: Warnung: kein Schreibrecht für Datei »%s«\n"
+
+#: protoize.c:804
+#, c-format
+msgid "%s: warning: no write access for dir containing `%s'\n"
+msgstr "%s: Warnung: kein Schreibrecht für Verzeichnis von »%s«\n"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s: ungültiger Dateiname: %s\n"
+
+#: protoize.c:1374
+#, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s: %s: kann Status nicht ermitteln: %s\n"
+
+#: protoize.c:1395
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s: kritischer Fehler: Datei mit Hilfsinformationen beschädigt in Zeile %d\n"
+
+#: protoize.c:1731
+#, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
+msgstr "%s:%d: Deklaration der Funktion »%s« nimmt verschiedene Formen an\n"
+
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr "%s: kompiliere »%s«\n"
+
+#: protoize.c:2012
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s: warte: %s\n"
+
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s: Subprozess empfing kritischen Fehler %d\n"
+
+#: protoize.c:2025
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s: %s beendet mit Status %d\n"
+
+#: protoize.c:2077
+#, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
+msgstr "%s: Warnung: SYSCALLS-Datei »%s« fehlt\n"
+
+#: protoize.c:2086 protoize.c:2115
+#, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
+msgstr "%s: kann Datei mit Hilfsinformationen »%s« nicht lesen: %s\n"
+
+#: protoize.c:2131 protoize.c:2159
+#, c-format
+msgid "%s: can't get status of aux info file `%s': %s\n"
+msgstr "%s: kann Status der Datei mit Hilfsinformationen »%s« nicht ermitteln: %s\n"
+
+#: protoize.c:2187
+#, c-format
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
+msgstr "%s: kann Datei mit Hilfsinformationen »%s« nicht zum Lesen öffnen: %s\n"
+
+#: protoize.c:2205
+#, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
+msgstr "%s: Fehler beim Lesen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#: protoize.c:2218
+#, c-format
+msgid "%s: error closing aux info file `%s': %s\n"
+msgstr "%s: Fehler beim Schließen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#: protoize.c:2234
+#, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
+msgstr "%s: Fehler beim Löschen der Datei mit Hilfsinformationen »%s«: %s\n"
+
+#: protoize.c:2316 protoize.c:4318
+#, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s: Fehler beim Löschen der Datei »%s«: %s\n"
+
+#: protoize.c:2395
+#, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr "%s: Warnung: Fehler beim Umbenennen der Datei »%s« in »%s«: %s\n"
+
+#: protoize.c:2520
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s: externe Definitionen von »%s« stehen in Konflikt\n"
+
+#: protoize.c:2524
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s: Deklarationen von »%s« werden nicht konvertiert\n"
+
+#: protoize.c:2526
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s: Konfliktliste für »%s« folgt:\n"
+
+#: protoize.c:2559
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+msgstr "%s: Warnung: Formalliste von %s(%d) für Funktion »%s« verwendet\n"
+
+#: protoize.c:2599
+#, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+msgstr "%s: %d: »%s« verwendet, fehlt jedoch in SYSCALLS\n"
+
+#: protoize.c:2605
+#, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
+msgstr "%s: %d: Warning: keine externe Definition für »%s«\n"
+
+#: protoize.c:2636
+#, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+msgstr "%s: Warnung: keine statische Definition für »%s« in Datei »%s«\n"
+
+#: protoize.c:2642
+#, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
+msgstr "%s: mehrere statische Definitionen von »%s« in Datei »%s«\n"
+
+#: protoize.c:2815 protoize.c:2818
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s: %d: Warnung: Quelle zu verworren\n"
+
+#: protoize.c:3024
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s: %d: Warnung: Funktionsdeklaration mit variablen Argumenten nicht konvertiert\n"
+
+#: protoize.c:3039
+#, c-format
+msgid "%s: declaration of function `%s' not converted\n"
+msgstr "%s: Deklaration der Funktion »%s« nicht konvertiert\n"
+
+#: protoize.c:3162
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+msgstr "%s: Warnung: zu viele Parameterlisten in Deklaration von »%s«\n"
+
+#: protoize.c:3183
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr ""
+"\n"
+"%s: Warnung: zu wenige Parameterlisten in Deklaration von »%s«\n"
+
+#: protoize.c:3281
+#, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+msgstr "%s: %d: Warnung: »%s« gefunden, aber »%s« erwartet\n"
+
+#: protoize.c:3459
+#, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
+msgstr "%s: lokale Deklaration für Funktion »%s« nicht eingefügt\n"
+
+#: protoize.c:3486
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr ""
+"\n"
+"%s: %d: Warnung: kann Deklaration von »%s« nicht zu Makro-Aufruf hinzufügen\n"
+
+#: protoize.c:3560
+#, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
+msgstr "%s: globale Deklarationen für Datei »%s« wurden nicht eingefügt\n"
+
+#: protoize.c:3651 protoize.c:3681
+#, c-format
+msgid "%s: definition of function `%s' not converted\n"
+msgstr "%s: Definition der Funktion »%s« nicht konvertiert\n"
+
+#: protoize.c:3670
+#, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s: %d: Warnung: Definition von %s nicht konvertiert\n"
+
+#: protoize.c:4000
+#, c-format
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr "%s: Definition von »%s« an Stelle %s(%d) gefunden\n"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+msgstr "%s: %d: Warnung: »%s« durch Präprozessor ausgeschlossen\n"
+
+#: protoize.c:4019
+#, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s: Funktionsdefinition nicht konvertiert\n"
+
+#: protoize.c:4078
+#, c-format
+msgid "%s: `%s' not converted\n"
+msgstr "%s: »%s« nicht konvertiert\n"
+
+#: protoize.c:4086
+#, c-format
+msgid "%s: would convert file `%s'\n"
+msgstr "%s: würde Datei »%s« konvertieren\n"
+
+#: protoize.c:4089
+#, c-format
+msgid "%s: converting file `%s'\n"
+msgstr "%s: Datei »%s« wird konvertiert\n"
+
+#: protoize.c:4099
+#, c-format
+msgid "%s: can't get status for file `%s': %s\n"
+msgstr "%s: Status der Datei »%s« kann nicht ermittelt werden: %s\n"
+
+#: protoize.c:4141
+#, c-format
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s: Datei »%s« kann nicht zum Schreiben geöffnet werden: %s\n"
+
+#: protoize.c:4156
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr ""
+"\n"
+"%s: Fehler beim Lesen der Eingabedatei »%s«: %s\n"
+
+#: protoize.c:4190
+#, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
+msgstr "%s: die leere Datei »%s« kann nicht erzeugt oder geöffnet werden: %s\n"
+
+#: protoize.c:4295
+#, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
+msgstr "%s: Warnung: Datei »%s« bereits in »%s« gesichert\n"
+
+#: protoize.c:4303
+#, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr "%s: die Datei »%s« kann nicht mit »%s« verbunden werden (Link): %s\n"
+
+#: protoize.c:4333
+#, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
+msgstr "%s: die Ausgabedatei »%s« kann nicht erzeugt oder geöffnet werden: %s\n"
+
+#: protoize.c:4366
+#, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
+msgstr "%s: Rechte der Datei »%s« können nicht geändert werden: %s\n"
+
+#: protoize.c:4541
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s: aktuelles Verzeichnis kann nicht ermittelt werden: %s\n"
+
+#: protoize.c:4639
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: Namen der Eingabedateien müssen Suffix ».c« haben: %s\n"
+
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr "Färbung konnte nicht gefunden werden.\n"
+
+#: reg-stack.c:673
+#, c-format
+msgid "output constraint %d must specify a single register"
+msgstr "Ausgabebedingung %d muss ein einzelnes Register angeben"
+
+#: reg-stack.c:683
+#, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "Ausgabebedingung %d kann nicht zusammen mit »%s« angegeben werden"
+
+#: reg-stack.c:706
+msgid "output regs must be grouped at top of stack"
+msgstr "Ausgaberegister müssen oben auf dem Stack gruppiert werden"
+
+#: reg-stack.c:743
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "implizit geholte (»pop«) Register müssen oben auf dem Stack gruppiert werden"
+
+#: reg-stack.c:762
+#, c-format
+msgid "output operand %d must use `&' constraint"
+msgstr "Ausgabeoperand %d muss »&«-Bedingung benutzen"
+
+#: regclass.c:756
+#, c-format
+msgid "can't use '%s' as a %s register"
+msgstr "»%s« kann nicht als ein %s-Register verwendet werden"
+
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, c-format
+msgid "unknown register name: %s"
+msgstr "unbekannter Registername: %s"
+
+#: regclass.c:782
+msgid "global register variable follows a function definition"
+msgstr "globale Registervariable folgt einer Funktionsdefinition"
+
+#: regclass.c:786
+msgid "register used for two global register variables"
+msgstr "Register für zwei globale Registervariablen verwendet"
+
+#: regclass.c:791
+msgid "call-clobbered register used for global register variable"
+msgstr "für Ruf vorgesehenes Register wurde für globale Registervariable verwendet"
+
+#: regrename.c:1899
+#, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "validate_value_data: [%u] Falsches next_regno für leere Kette (%u)"
+
+#: regrename.c:1911
+#, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "validate_value_data: Zyklus in regno-Kette (%u)"
+
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr "validate_value_data: [%u] Falsches oldest_regno (%u)"
+
+#: regrename.c:1926
+#, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "validate_value_data: [%u] Nicht leeres Register in Kette (%s %u %i)"
+
+#: reload.c:1229
+msgid "cannot reload integer constant operand in `asm'"
+msgstr "Ganzzahlkonstantenoperand kann in »asm« nicht neu geladen werden"
+
+#: reload.c:1251
+msgid "impossible register constraint in `asm'"
+msgstr "unmögliche Registerbedingung in »asm«"
+
+#: reload.c:3461
+msgid "`&' constraint used with no register class"
+msgstr "»&«-Bedingung ohne Registerklasse verwendet"
+
+#: reload.c:3629
+msgid "unable to generate reloads for:"
+msgstr "Neuladungen konnten nicht generiert werden für:"
+
+#: reload.c:3630 reload.c:3844
+msgid "inconsistent operand constraints in an `asm'"
+msgstr "inkonsistente Operandenbedingungen in einem »asm«"
+
+#: reload1.c:1250
+msgid "frame size too large for reliable stack checking"
+msgstr "Rahmengröße zu groß für zuverlässige Kellerüberprüfung"
+
+#: reload1.c:1253
+msgid "try reducing the number of local variables"
+msgstr "versuchen Sie, die Anzahl der lokalen Variablen zu verringern"
+
+#: reload1.c:1909
+#, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
+msgstr "in der Klasse »%s« konnte während des Neuladens von »asm« kein Register gefunden werden"
+
+#: reload1.c:1913
+#, c-format
+msgid "unable to find a register to spill in class `%s'"
+msgstr "in Klasse »%s« konnte kein Register für Überlauf gefunden werden"
+
+#: reload1.c:1915
+msgid "this is the insn:"
+msgstr "dies ist das insn:"
+
+#: reload1.c:3938
+msgid "`asm' operand requires impossible reload"
+msgstr "»asm«-Operand erfordert unmögliches Neuladen"
+
+#. It's the compiler's fault.
+#: reload1.c:5052
+msgid "could not find a spill register"
+msgstr "es konnte kein Ãœberlaufregister gefunden werden"
+
+#: reload1.c:5057
+msgid "`asm' operand constraint incompatible with operand size"
+msgstr "»asm«-Operandenbedingung inkompatibel mit Operandengröße"
+
+#. It's the compiler's fault.
+#: reload1.c:6679
+msgid "VOIDmode on an output"
+msgstr "VOIDmode bei einer Ausgabe"
+
+#: reload1.c:6680
+msgid "output operand is constant in `asm'"
+msgstr "Ausgabeoperand ist in »asm« konstant"
+
+#: rtl-error.c:140
+msgid "unrecognizable insn:"
+msgstr "unerkennbares insn:"
+
+#: rtl-error.c:142
+msgid "insn does not satisfy its constraints:"
+msgstr "insn erfüllt nicht seine Bedingungen:"
+
+#: rtl.c:535
+#, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Zugriff von Elt %d von »%s« mit letztem Elt %d in %s, bei %s:%d"
+
+#: rtl.c:550
+#, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Elt-%d-Typ %c erwartet, haben Typ %c (rtx %s) in %s, bei %s:%d"
+
+#: rtl.c:566
+#, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Elt-%d-Typ %c oder %c erwartet, haben Typ %c (rtx %s) in %s, bei %s:%d"
+
+#: rtl.c:579
+#, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Code »%s« erwartet, haben »%s« in %s, bei %s:%d"
+
+#: rtl.c:593
+#, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Code »%s« oder »%s« erwartet, haben »%s« in %s, bei %s:%d"
+
+#: rtl.c:608
+#, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr "RTL-Überprüfung: Zugriff von Elt %d von Vektor mit letztem Elt %d in %s, bei %s:%d"
+
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "RTL-Kennzeichenüberprüfung: %s mit unerwartetem RTX-Code »%s« in %s bei %s:%d verwendet"
+
+#: stmt.c:766
+#, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
+msgstr "Sprung zu »%s« springt ungültig in bindenden Querschnitt"
+
+#: stmt.c:1002 stmt.c:3766
+#, c-format
+msgid "label `%s' used before containing binding contour"
+msgstr "Marke »%s« verwendet vor enthaltendem bindenden Querschnitt"
+
+#: stmt.c:1190
+msgid "output operand constraint lacks `='"
+msgstr "Bedingung des Ausgabeoperanden erfordert »=«"
+
+#: stmt.c:1205
+#, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
+msgstr "Ausgabebedingung »%c« für Operand %d steht nicht am Anfang"
+
+#: stmt.c:1227
+msgid "operand constraint contains incorrectly positioned '+' or '='"
+msgstr "Operandenbedingung enthält falsch positioniertes »+« oder »=«"
+
+#: stmt.c:1233 stmt.c:1337
+#, c-format
+msgid "`%%' constraint used with last operand"
+msgstr "»%%«-Bedingung mit letztem Operanden verwendet"
+
+#: stmt.c:1252
+msgid "matching constraint not valid in output operand"
+msgstr "dazu passende Bedingung in Ausgabeoperanden ungültig"
+
+#: stmt.c:1328
+#, c-format
+msgid "input operand constraint contains `%c'"
+msgstr "Bedingung für Eingabeoperanden enthält »%c«"
+
+#: stmt.c:1368
+msgid "matching constraint references invalid operand number"
+msgstr "dazu passende Bedingung referenziert ungültige Operandennummer"
+
+#: stmt.c:1400
+#, c-format
+msgid "invalid punctuation `%c' in constraint"
+msgstr "ungültiges Zeichen »%c« in Bedingung"
+
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "asm-Spezifizierer für Variable »%s« steht in Konflikt mit asm-Konflikt-Liste"
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr "unbekannter Registername »%s« in »asm«"
+
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
+msgstr "mehr als %d Operanden in »asm«"
+
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
+msgstr "Ausgabezahl %d nicht direkt adressierbar"
+
+#: stmt.c:1728
+#, c-format
+msgid "asm operand %d probably doesn't match constraints"
+msgstr "asm-Operand %d passt wahrscheinlich nicht zu den Bedingungen"
+
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr "die Verwendung einer Speichereingabe ohne L-Wert in asm-Operand %d ist veraltet"
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr "asm-Konflikt mit Ausgabeoperand"
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr "asm-Konflikt mit Eingabeoperand"
+
+#: stmt.c:1929
+msgid "too many alternatives in `asm'"
+msgstr "zu viele Alternativen in »asm«"
+
+#: stmt.c:1941
+msgid "operand constraints for `asm' differ in number of alternatives"
+msgstr "Operandenbedingungen für »asm« unterscheiden sich in der Anzahl der Alternativen"
+
+#: stmt.c:1994
+#, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "doppelter asm-Operandenname »%s«"
+
+#: stmt.c:2081
+msgid "missing close brace for named operand"
+msgstr "schließende geschweifte Klammer für benannten Operanden fehlt"
+
+#: stmt.c:2109
+#, c-format
+msgid "undefined named operand '%s'"
+msgstr "benannter Operand »%s« ist nicht definiert"
+
+#: stmt.c:3703
+#, c-format
+msgid "unused variable `%s'"
+msgstr "Variable »%s« wird nicht verwendet"
+
+#: stmt.c:5189
+#, c-format
+msgid "enumeration value `%s' not handled in switch"
+msgstr "Aufzählungswert »%s« wird nicht von switch behandelt"
+
+#: stmt.c:5214 stmt.c:5234
+#, c-format
+msgid "case value `%ld' not in enumerated type"
+msgstr "case-Wert »%ld« nicht in Aufzählungstyp"
+
+#: stmt.c:5217 stmt.c:5237
+#, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
+msgstr "case-Wert »%ld« nicht in Aufzählungstyp »%s«"
+
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr "die Standardfallbehandlung in switch fehlt"
+
+#: stor-layout.c:178
+msgid "type size can't be explicitly evaluated"
+msgstr "die Typgröße kann nicht explizit ausgewertet werden"
+
+#: stor-layout.c:180
+msgid "variable-size type declared outside of any function"
+msgstr "Typ mit variabler Größe wurde außerhalb einer Funktion definiert"
+
+#: stor-layout.c:487
+#, c-format
+msgid "size of `%s' is %d bytes"
+msgstr "Größe von »%s« ist %d Bytes"
+
+#: stor-layout.c:489
+#, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "Größe von »%s« übertrifft %d Bytes"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
+msgstr "gepacktes Attribut verursacht ineffiziente Ausrichtung für »%s«"
+
+#: stor-layout.c:911 stor-layout.c:1327
+#, c-format
+msgid "packed attribute is unnecessary for `%s'"
+msgstr "gepacktes Attribut ist unnötig für »%s«"
+
+#: stor-layout.c:926
+#, c-format
+msgid "padding struct to align `%s'"
+msgstr "struct wird aufgefüllt, um »%s« auszurichten"
+
+#: stor-layout.c:1289
+msgid "padding struct size to alignment boundary"
+msgstr "struct wird bis zur Ausrichtungsgrenze aufgefüllt"
+
+#: stor-layout.c:1332
+msgid "packed attribute causes inefficient alignment"
+msgstr ""
+
+#: stor-layout.c:1334
+msgid "packed attribute is unnecessary"
+msgstr ""
+
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+
+#. Print total time.
+#: timevar.c:503
+msgid " TOTAL :"
+msgstr ""
+
+#: timevar.c:539
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr ""
+
+#: tlink.c:399
+#, c-format
+msgid "collect: reading %s\n"
+msgstr ""
+
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr ""
+
+#: tlink.c:674
+#, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr ""
+
+#: tlink.c:721
+msgid "collect: relinking\n"
+msgstr ""
+
+#: tlink.c:730
+#, c-format
+msgid "ld returned %d exit status"
+msgstr ""
+
+#: toplev.c:920
+msgid "Generate debugging info in default format"
+msgstr ""
+
+#: toplev.c:921
+msgid "Generate debugging info in default extended format"
+msgstr ""
+
+#: toplev.c:923
+msgid "Generate STABS format debug info"
+msgstr ""
+
+#: toplev.c:924
+msgid "Generate extended STABS format debug info"
+msgstr ""
+
+#: toplev.c:927
+msgid "Generate DWARF-1 format debug info"
+msgstr ""
+
+#: toplev.c:929
+msgid "Generate extended DWARF-1 format debug info"
+msgstr ""
+
+#: toplev.c:932
+msgid "Generate DWARF-2 debug info"
+msgstr ""
+
+#: toplev.c:935
+msgid "Generate XCOFF format debug info"
+msgstr ""
+
+#: toplev.c:936
+msgid "Generate extended XCOFF format debug info"
+msgstr ""
+
+#: toplev.c:939
+msgid "Generate COFF format debug info"
+msgstr ""
+
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr ""
+
+#: toplev.c:981
+msgid "Perform DWARF2 duplicate elimination"
+msgstr ""
+
+#: toplev.c:983
+msgid "Do not store floats in registers"
+msgstr ""
+
+#: toplev.c:985
+msgid "Consider all mem refs through pointers as volatile"
+msgstr ""
+
+#: toplev.c:987
+msgid "Consider all mem refs to global data to be volatile"
+msgstr ""
+
+#: toplev.c:989
+msgid "Consider all mem refs to static data to be volatile"
+msgstr ""
+
+#: toplev.c:991
+msgid "Defer popping functions args from stack until later"
+msgstr ""
+
+#: toplev.c:993
+msgid "When possible do not generate stack frames"
+msgstr ""
+
+#: toplev.c:995
+msgid "Optimize sibling and tail recursive calls"
+msgstr ""
+
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
+msgid "When running CSE, follow jumps to their targets"
+msgstr ""
+
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
+msgstr ""
+
+#: toplev.c:1003
+msgid "Perform a number of minor, expensive optimizations"
+msgstr ""
+
+#: toplev.c:1005
+msgid "Perform jump threading optimizations"
+msgstr ""
+
+#: toplev.c:1007
+msgid "Perform strength reduction optimizations"
+msgstr ""
+
+#: toplev.c:1009
+msgid "Perform loop unrolling when iteration count is known"
+msgstr ""
+
+#: toplev.c:1011
+msgid "Perform loop unrolling for all loops"
+msgstr ""
+
+#: toplev.c:1013
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr ""
+
+#: toplev.c:1015
+msgid "Force all loop invariant computations out of loops"
+msgstr ""
+
+#: toplev.c:1017
+msgid "Strength reduce all loop general induction variables"
+msgstr ""
+
+#: toplev.c:1019
+msgid "Store strings in writable data section"
+msgstr ""
+
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
+msgstr ""
+
+#: toplev.c:1023
+msgid "Copy memory operands into registers before using"
+msgstr ""
+
+#: toplev.c:1025
+msgid "Copy memory address constants into regs before using"
+msgstr ""
+
+#: toplev.c:1027
+msgid "Allow function addresses to be held in registers"
+msgstr ""
+
+#: toplev.c:1029
+msgid "Integrate simple functions into their callers"
+msgstr ""
+
+#: toplev.c:1031
+msgid "Generate code for funcs even if they are fully inlined"
+msgstr ""
+
+#: toplev.c:1033
+msgid "Pay attention to the 'inline' keyword"
+msgstr ""
+
+#: toplev.c:1035
+msgid "Emit static const variables even if they are not used"
+msgstr ""
+
+#: toplev.c:1037
+msgid "Check for syntax errors, then stop"
+msgstr ""
+
+#: toplev.c:1039
+msgid "Mark data as shared rather than private"
+msgstr ""
+
+#: toplev.c:1041
+msgid "Enable saving registers around function calls"
+msgstr ""
+
+#: toplev.c:1043
+msgid "Return 'short' aggregates in memory, not registers"
+msgstr ""
+
+#: toplev.c:1045
+msgid "Return 'short' aggregates in registers"
+msgstr ""
+
+#: toplev.c:1047
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr ""
+
+#: toplev.c:1049
+msgid "Perform the global common subexpression elimination"
+msgstr ""
+
+#: toplev.c:1051
+msgid "Perform enhanced load motion during global subexpression elimination"
+msgstr ""
+
+#: toplev.c:1053
+msgid "Perform store motion after global subexpression elimination"
+msgstr ""
+
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr ""
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr ""
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr ""
+
+#: toplev.c:1063
+msgid "Run CSE pass after loop optimizations"
+msgstr ""
+
+#: toplev.c:1065
+msgid "Run the loop optimizer twice"
+msgstr ""
+
+#: toplev.c:1067
+msgid "Delete useless null pointer checks"
+msgstr ""
+
+#: toplev.c:1069
+msgid "Reschedule instructions before register allocation"
+msgstr ""
+
+#: toplev.c:1071
+msgid "Reschedule instructions after register allocation"
+msgstr ""
+
+#: toplev.c:1073
+msgid "Enable scheduling across basic blocks"
+msgstr ""
+
+#: toplev.c:1075
+msgid "Allow speculative motion of non-loads"
+msgstr ""
+
+#: toplev.c:1077
+msgid "Allow speculative motion of some loads"
+msgstr ""
+
+#: toplev.c:1079
+msgid "Allow speculative motion of more loads"
+msgstr ""
+
+#: toplev.c:1081
+msgid "Replace add,compare,branch with branch on count reg"
+msgstr ""
+
+#: toplev.c:1083
+msgid "Generate position independent code, if possible"
+msgstr ""
+
+#: toplev.c:1086
+msgid "Enable exception handling"
+msgstr ""
+
+#: toplev.c:1088
+msgid "Just generate unwind tables for exception handling"
+msgstr ""
+
+#: toplev.c:1090
+msgid "Generate unwind tables exact at each instruction boundary"
+msgstr ""
+
+#: toplev.c:1092
+msgid "Support synchronous non-call exceptions"
+msgstr ""
+
+#: toplev.c:1094
+msgid "Insert arc based program profiling code"
+msgstr ""
+
+#: toplev.c:1096
+msgid "Create data files needed by gcov"
+msgstr ""
+
+#: toplev.c:1098
+msgid "Use profiling information for branch probabilities"
+msgstr ""
+
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr ""
+
+#: toplev.c:1102
+msgid "Reorder basic blocks to improve code placement"
+msgstr ""
+
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+
+#: toplev.c:1106
+msgid "Do the register renaming optimization pass"
+msgstr ""
+
+#: toplev.c:1108
+msgid "Do the register copy-propagation optimization pass"
+msgstr ""
+
+#: toplev.c:1110
+msgid "Do not put uninitialized globals in the common section"
+msgstr ""
+
+#: toplev.c:1112
+msgid "Do not generate .size directives"
+msgstr ""
+
+#: toplev.c:1114
+msgid "place each function into its own section"
+msgstr ""
+
+#: toplev.c:1116
+msgid "place data items into their own section"
+msgstr ""
+
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
+msgstr ""
+
+#: toplev.c:1120
+msgid "Output GNU ld formatted global initializers"
+msgstr ""
+
+#: toplev.c:1122
+msgid "Enables a register move optimization"
+msgstr ""
+
+#: toplev.c:1124
+msgid "Do the full regmove optimization pass"
+msgstr ""
+
+#: toplev.c:1126
+msgid "Pack structure members together without holes"
+msgstr ""
+
+#: toplev.c:1128
+msgid "Insert stack checking code into the program"
+msgstr ""
+
+#: toplev.c:1130
+msgid "Specify that arguments may alias each other & globals"
+msgstr ""
+
+#: toplev.c:1132
+msgid "Assume arguments may alias globals but not each other"
+msgstr ""
+
+#: toplev.c:1134
+msgid "Assume arguments do not alias each other or globals"
+msgstr ""
+
+#: toplev.c:1136
+msgid "Assume strict aliasing rules apply"
+msgstr ""
+
+#: toplev.c:1138
+msgid "Align the start of loops"
+msgstr ""
+
+#: toplev.c:1140
+msgid "Align labels which are only reached by jumping"
+msgstr ""
+
+#: toplev.c:1142
+msgid "Align all labels"
+msgstr ""
+
+#: toplev.c:1144
+msgid "Align the start of functions"
+msgstr ""
+
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
+msgstr ""
+
+#: toplev.c:1148
+msgid "Attempt to merge identical constants and constant variables"
+msgstr ""
+
+#: toplev.c:1150
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr ""
+
+#: toplev.c:1152
+msgid "Instrument function entry/exit with profiling calls"
+msgstr ""
+
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr ""
+
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
+msgstr ""
+
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
+msgstr ""
+
+#: toplev.c:1160
+msgid "Enable aggressive SSA dead code elimination"
+msgstr ""
+
+#: toplev.c:1162
+msgid "External symbols have a leading underscore"
+msgstr ""
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr ""
+
+#: toplev.c:1166
+msgid "Enables an rtl peephole pass run before sched2"
+msgstr ""
+
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
+msgid "Enables guessing of branch probabilities"
+msgstr ""
+
+#: toplev.c:1172
+msgid "Set errno after built-in math functions"
+msgstr ""
+
+#: toplev.c:1174
+msgid "Floating-point operations can trap"
+msgstr ""
+
+#: toplev.c:1176
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+msgstr ""
+
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr ""
+
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
+msgstr ""
+
+#: toplev.c:1182
+msgid "Convert floating point constant to single precision constant"
+msgstr ""
+
+#: toplev.c:1184
+msgid "Report time taken by each compiler pass at end of run"
+msgstr ""
+
+#: toplev.c:1186
+msgid "Report on permanent memory allocation at end of run"
+msgstr ""
+
+#: toplev.c:1188
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
+msgstr ""
+
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr ""
+
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr ""
+
+#: toplev.c:1209
+msgid "Determine language standard"
+msgstr ""
+
+#: toplev.c:1213
+msgid "Make bit-fields by unsigned by default"
+msgstr ""
+
+#: toplev.c:1217
+msgid "Make 'char' be signed by default"
+msgstr ""
+
+#: toplev.c:1219
+msgid "Make 'char' be unsigned by default"
+msgstr ""
+
+#: toplev.c:1225
+msgid "Do not recognize the 'asm' keyword"
+msgstr ""
+
+#: toplev.c:1228
+msgid "Do not recognize any built in functions"
+msgstr ""
+
+#: toplev.c:1230
+msgid "Assume normal C execution environment"
+msgstr ""
+
+#: toplev.c:1233
+msgid "Assume that standard libraries & main might not exist"
+msgstr ""
+
+#: toplev.c:1236
+msgid "Allow different types as args of ? operator"
+msgstr ""
+
+#: toplev.c:1239
+msgid "Allow the use of $ inside identifiers"
+msgstr ""
+
+#: toplev.c:1244
+msgid "Use the same size for double as for float"
+msgstr ""
+
+#: toplev.c:1247
+msgid "Use the smallest fitting integer to hold enums"
+msgstr ""
+
+#: toplev.c:1250
+msgid "Override the underlying type for wchar_t to `unsigned short'"
+msgstr ""
+
+#: toplev.c:1254
+msgid "Enable most warning messages"
+msgstr ""
+
+#: toplev.c:1256
+msgid "Warn about casting functions to incompatible types"
+msgstr ""
+
+#: toplev.c:1259
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr ""
+
+#: toplev.c:1262
+msgid "Warn about casts which discard qualifiers"
+msgstr ""
+
+#: toplev.c:1265
+msgid "Warn about subscripts whose type is 'char'"
+msgstr ""
+
+#: toplev.c:1268 toplev.c:1271
+msgid "Warn if nested comments are detected"
+msgstr ""
+
+#: toplev.c:1274
+msgid "Warn about possibly confusing type conversions"
+msgstr ""
+
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr ""
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr ""
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+msgstr ""
+
+#: toplev.c:1287
+msgid "Don't warn about too many arguments to format functions"
+msgstr ""
+
+#: toplev.c:1289
+msgid "Warn about non-string-literal format strings"
+msgstr ""
+
+#: toplev.c:1292
+msgid "Warn about possible security problems with format functions"
+msgstr ""
+
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr ""
+
+#: toplev.c:1298
+msgid "Warn about implicit function declarations"
+msgstr ""
+
+#: toplev.c:1302
+msgid "Warn when a declaration does not specify a type"
+msgstr ""
+
+#: toplev.c:1307
+msgid "Warn about the use of the #import directive"
+msgstr ""
+
+#: toplev.c:1311
+msgid "Do not warn about using 'long long' when -pedantic"
+msgstr ""
+
+#: toplev.c:1313
+msgid "Warn about suspicious declarations of main"
+msgstr ""
+
+#: toplev.c:1316
+msgid "Warn about possibly missing braces around initializers"
+msgstr ""
+
+#: toplev.c:1319
+msgid "Warn about global funcs without previous declarations"
+msgstr ""
+
+#: toplev.c:1322
+msgid "Warn about global funcs without prototypes"
+msgstr ""
+
+#: toplev.c:1325
+msgid "Warn about use of multicharacter literals"
+msgstr ""
+
+#: toplev.c:1328
+msgid "Warn about externs not at file scope level"
+msgstr ""
+
+#: toplev.c:1331
+msgid "Warn about possible missing parentheses"
+msgstr ""
+
+#: toplev.c:1334
+msgid "Warn about function pointer arithmetic"
+msgstr ""
+
+#: toplev.c:1337
+msgid "Warn about multiple declarations of the same object"
+msgstr ""
+
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr ""
+
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr ""
+
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr ""
+
+#: toplev.c:1349
+msgid "Warn about non-prototyped function decls"
+msgstr ""
+
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr ""
+
+#: toplev.c:1355
+msgid "Warn when trigraphs are encountered"
+msgstr ""
+
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr ""
+
+#: toplev.c:1363
+msgid "Mark strings as 'const char *'"
+msgstr ""
+
+#: toplev.c:1508
+msgid "Warn when a function is unused"
+msgstr ""
+
+#: toplev.c:1510
+msgid "Warn when a label is unused"
+msgstr ""
+
+#: toplev.c:1512
+msgid "Warn when a function parameter is unused"
+msgstr ""
+
+#: toplev.c:1514
+msgid "Warn when a variable is unused"
+msgstr ""
+
+#: toplev.c:1516
+msgid "Warn when an expression value is unused"
+msgstr ""
+
+#: toplev.c:1518
+msgid "Do not suppress warnings from system headers"
+msgstr ""
+
+#: toplev.c:1520
+msgid "Treat all warnings as errors"
+msgstr ""
+
+#: toplev.c:1522
+msgid "Warn when one local variable shadows another"
+msgstr ""
+
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr ""
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr ""
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr ""
+
+#: toplev.c:1530
+msgid "Warn about returning structures, unions or arrays"
+msgstr ""
+
+#: toplev.c:1532
+msgid "Warn about pointer casts which increase alignment"
+msgstr ""
+
+#: toplev.c:1534
+msgid "Warn about code that will never be executed"
+msgstr ""
+
+#: toplev.c:1536
+msgid "Warn about uninitialized automatic variables"
+msgstr ""
+
+#: toplev.c:1538
+msgid "Warn when an inlined function cannot be inlined"
+msgstr ""
+
+#: toplev.c:1540
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr ""
+
+#: toplev.c:1542
+msgid "Warn when padding is required to align struct members"
+msgstr ""
+
+#: toplev.c:1544
+msgid "Warn when an optimization pass is disabled"
+msgstr ""
+
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr ""
+
+#: toplev.c:1548
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr ""
+
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr ""
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, c-format
+msgid "invalid option `%s'"
+msgstr "ungültige Option »%s«"
+
+#: toplev.c:2031
+#, c-format
+msgid "`%s' used but never defined"
+msgstr "»%s« verwendet, aber nirgendwo definiert"
+
+#: toplev.c:2034
+#, c-format
+msgid "`%s' declared `static' but never defined"
+msgstr "»%s« als »static« deklariert, aber nirgendwo definiert"
+
+#: toplev.c:2057
+#, c-format
+msgid "`%s' defined but not used"
+msgstr "»%s« definiert, aber nicht verwendet"
+
+#: toplev.c:2280
+#, c-format
+msgid "invalid register name `%s' for register variable"
+msgstr ""
+
+#: toplev.c:3697
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr ""
+
+#: toplev.c:3698
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr ""
+
+#: toplev.c:3699
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr ""
+
+#: toplev.c:3700
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr ""
+
+#: toplev.c:3701
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr ""
+
+#: toplev.c:3702
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr ""
+
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr ""
+
+#: toplev.c:3719
+msgid " -Os Optimize for space rather than speed\n"
+msgstr ""
+
+#: toplev.c:3731
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr ""
+
+#: toplev.c:3732
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr ""
+
+#: toplev.c:3733
+msgid " -w Suppress warnings\n"
+msgstr ""
+
+#: toplev.c:3734
+msgid " -W Enable extra warnings\n"
+msgstr ""
+
+#: toplev.c:3745
+msgid " -Wunused Enable unused warnings\n"
+msgstr ""
+
+#: toplev.c:3746
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr ""
+
+#: toplev.c:3747
+msgid " -p Enable function profiling\n"
+msgstr ""
+
+#: toplev.c:3748
+msgid " -o <file> Place output into <file> \n"
+msgstr ""
+
+#: toplev.c:3749
+msgid ""
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
+msgstr ""
+
+#: toplev.c:3760
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr ""
+
+#: toplev.c:3761
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr ""
+
+#: toplev.c:3762
+msgid " -version Display the compiler's version\n"
+msgstr ""
+
+#: toplev.c:3763
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr ""
+
+#: toplev.c:3764
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr ""
+
+#: toplev.c:3766
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr ""
+
+#: toplev.c:3768
+msgid " --help Display this information\n"
+msgstr ""
+
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+
+#: toplev.c:3795
+#, c-format
+msgid " %-23.23s [undocumented]\n"
+msgstr ""
+
+#: toplev.c:3803 toplev.c:3817
+#, c-format
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr ""
+
+#: toplev.c:3807
+#, c-format
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr ""
+
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+
+#: toplev.c:3858 toplev.c:3877
+#, c-format
+msgid " -m%-23.23s [undocumented]\n"
+msgstr ""
+
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr ""
+
+#: toplev.c:3888
+msgid " They exist, but they are not documented.\n"
+msgstr ""
+
+#: toplev.c:3941
+#, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr ""
+
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr ""
+
+#: toplev.c:4034
+#, c-format
+msgid "unrecognized register name `%s'"
+msgstr ""
+
+#: toplev.c:4059 toplev.c:5012
+#, c-format
+msgid "unrecognized option `%s'"
+msgstr ""
+
+#: toplev.c:4107
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr ""
+
+#: toplev.c:4184
+#, c-format
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr ""
+
+#: toplev.c:4187
+msgid "use -gdwarf-2 for DWARF v2"
+msgstr ""
+
+#: toplev.c:4192
+#, c-format
+msgid "ignoring option `%s' due to invalid debug level specification"
+msgstr ""
+
+#: toplev.c:4215 toplev.c:5010
+#, c-format
+msgid "`%s': unknown or unsupported -g option"
+msgstr ""
+
+#: toplev.c:4222
+#, c-format
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr ""
+
+#: toplev.c:4304
+msgid "-param option missing argument"
+msgstr ""
+
+#: toplev.c:4313
+#, c-format
+msgid "invalid --param option: %s"
+msgstr ""
+
+#: toplev.c:4325
+#, c-format
+msgid "invalid parameter value `%s'"
+msgstr ""
+
+#: toplev.c:4565
+#, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
+msgstr ""
+
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
+msgid "options passed: "
+msgstr ""
+
+#: toplev.c:4659
+msgid "options enabled: "
+msgstr ""
+
+#: toplev.c:4718 java/jcf-write.c:3453
+#, c-format
+msgid "can't open %s for writing"
+msgstr ""
+
+#: toplev.c:5002
+#, c-format
+msgid "ignoring command line option '%s'"
+msgstr ""
+
+#: toplev.c:5005
+#, c-format
+msgid "(it is valid for %s but not the selected language)"
+msgstr ""
+
+#: toplev.c:5039
+msgid "-Wuninitialized is not supported without -O"
+msgstr ""
+
+#: toplev.c:5094
+msgid "instruction scheduling not supported on this target machine"
+msgstr ""
+
+#: toplev.c:5098
+msgid "this target machine does not have delayed branches"
+msgstr ""
+
+#: toplev.c:5112
+#, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr ""
+
+#: toplev.c:5175
+msgid "-ffunction-sections not supported for this target"
+msgstr ""
+
+#: toplev.c:5180
+msgid "-fdata-sections not supported for this target"
+msgstr ""
+
+#: toplev.c:5187
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr ""
+
+#: toplev.c:5194
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr ""
+
+#: toplev.c:5200
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr ""
+
+#: toplev.c:5209
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr ""
+
+#: toplev.c:5215
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr ""
+
+#: toplev.c:5327
+#, c-format
+msgid "error writing to %s"
+msgstr ""
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, c-format
+msgid "error closing %s"
+msgstr ""
+
+#: tree-dump.c:702
+#, c-format
+msgid "could not open dump file `%s'"
+msgstr ""
+
+#: tree-dump.c:778
+#, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr ""
+
+#: tree.c:3645
+msgid "arrays of functions are not meaningful"
+msgstr ""
+
+#: tree.c:3702
+msgid "function return type cannot be function"
+msgstr ""
+
+#: tree.c:4557
+msgid "invalid initializer for bit string"
+msgstr ""
+
+#: tree.c:4616
+#, c-format
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:4633
+#, c-format
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr ""
+
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: varasm.c:455 config/i386/winnt.c:611
+#, c-format
+msgid "%s causes a section type conflict"
+msgstr ""
+
+#: varasm.c:841
+#, c-format
+msgid "register name not specified for `%s'"
+msgstr ""
+
+#: varasm.c:843
+#, c-format
+msgid "invalid register name for `%s'"
+msgstr ""
+
+#: varasm.c:846
+#, c-format
+msgid "data type of `%s' isn't suitable for a register"
+msgstr ""
+
+#: varasm.c:849
+#, c-format
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr ""
+
+#: varasm.c:858
+msgid "global register variable has initial value"
+msgstr ""
+
+#: varasm.c:861
+msgid "volatile register variables don't work as you might wish"
+msgstr ""
+
+#: varasm.c:894
+#, c-format
+msgid "register name given for non-register variable `%s'"
+msgstr ""
+
+#: varasm.c:1542
+#, c-format
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+msgstr ""
+
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
+#, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr ""
+
+#: varasm.c:4048
+msgid "initializer for integer value is too complicated"
+msgstr ""
+
+#: varasm.c:4053
+msgid "initializer for floating value is not a floating constant"
+msgstr ""
+
+#: varasm.c:4120
+msgid "unknown set constructor type"
+msgstr ""
+
+#: varasm.c:4334
+#, c-format
+msgid "invalid initial value for member `%s'"
+msgstr ""
+
+#: varasm.c:4525 varasm.c:4568
+#, c-format
+msgid "weak declaration of `%s' must precede definition"
+msgstr ""
+
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr ""
+
+#: varasm.c:4575
+#, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr ""
+
+#: varasm.c:4602 varasm.c:4677
+msgid "only weak aliases are supported in this configuration"
+msgstr ""
+
+#: varasm.c:4685
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr ""
+
+#: varasm.c:4716
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr ""
+
+#: varray.c:134
+#, c-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr ""
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
+#, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr ""
+
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#»%s« wird von %s# nicht unterstützt"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr ""
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr ""
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr ""
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr ""
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr ""
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr ""
+
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr ""
+
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr ""
+
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
+msgstr ""
+
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr ""
+
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr ""
+
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr ""
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr ""
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr ""
+
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
+msgstr ""
+
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
+msgstr ""
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr ""
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr ""
+
+#: config/alpha/alpha.c:342
+#, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr ""
+
+#: config/alpha/alpha.c:366
+msgid "-mieee not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:377
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:394
+#, c-format
+msgid "bad value `%s' for -mtrap-precision switch"
+msgstr ""
+
+#: config/alpha/alpha.c:408
+#, c-format
+msgid "bad value `%s' for -mfp-rounding-mode switch"
+msgstr ""
+
+#: config/alpha/alpha.c:423
+#, c-format
+msgid "bad value `%s' for -mfp-trap-mode switch"
+msgstr ""
+
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr ""
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
+#, c-format
+msgid "bad value `%s' for -mcpu switch"
+msgstr ""
+
+#: config/alpha/alpha.c:473
+msgid "trap mode not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:480
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr ""
+
+#: config/alpha/alpha.c:496
+msgid "rounding mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.c:501
+msgid "trap mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.c:530
+#, c-format
+msgid "L%d cache latency unknown for %s"
+msgstr ""
+
+#: config/alpha/alpha.c:545
+#, c-format
+msgid "bad value `%s' for -mmemory-latency"
+msgstr ""
+
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, c-format
+msgid "invalid %%H value"
+msgstr ""
+
+#: config/alpha/alpha.c:5625
+#, c-format
+msgid "invalid %%J value"
+msgstr ""
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
+#, c-format
+msgid "invalid %%r value"
+msgstr ""
+
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
+#, c-format
+msgid "invalid %%R value"
+msgstr ""
+
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr ""
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr ""
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
+#, c-format
+msgid "invalid %%h value"
+msgstr ""
+
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr ""
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr ""
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr ""
+
+#: config/alpha/alpha.c:5772
+#, c-format
+msgid "invalid %%U value"
+msgstr ""
+
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
+#, c-format
+msgid "invalid %%s value"
+msgstr ""
+
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr ""
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
+#, c-format
+msgid "invalid %%E value"
+msgstr ""
+
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr ""
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
+#, c-format
+msgid "invalid %%xn code"
+msgstr ""
+
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
+msgid "Use hardware fp"
+msgstr ""
+
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
+msgid "Do not use hardware fp"
+msgstr ""
+
+#: config/alpha/alpha.h:281
+msgid "Use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:283
+msgid "Do not use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:284
+msgid "Do not assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:285
+msgid "Assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:287
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr ""
+
+#: config/alpha/alpha.h:289
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:291
+msgid "Emit IEEE-conformant code, with inexact exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:293
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr ""
+
+#: config/alpha/alpha.h:294
+msgid "Use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:295
+msgid "Do not use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:296
+msgid "Emit code for the byte/word ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:299
+msgid "Emit code for the motion video ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:302
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:304
+msgid "Emit code for the counting ISA extension"
+msgstr ""
+
+#: config/alpha/alpha.h:307
+msgid "Emit code using explicit relocation directives"
+msgstr ""
+
+#: config/alpha/alpha.h:310
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:312
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
+#. For -mcpu=
+#. For -mtune=
+#. For -mfp-rounding-mode=[n|m|c|d]
+#. For -mfp-trap-mode=[n|u|su|sui]
+#. For -mtrap-precision=[p|f|i]
+#. For -mmemory-latency=
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
+msgid "Use features of and schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:345
+msgid "Schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:347
+msgid "Control the generated fp rounding mode"
+msgstr ""
+
+#: config/alpha/alpha.h:349
+msgid "Control the IEEE trap mode"
+msgstr ""
+
+#: config/alpha/alpha.h:351
+msgid "Control the precision given to fp exceptions"
+msgstr ""
+
+#: config/alpha/alpha.h:353
+msgid "Tune expected memory latency"
+msgstr ""
+
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
+#, c-format
+msgid "bad value (%s) for -mcpu switch"
+msgstr ""
+
+#: config/arc/arc.c:362
+#, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr ""
+
+#: config/arc/arc.c:369
+#, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr ""
+
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr ""
+
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr ""
+
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr ""
+
+#: config/arc/arc.c:1774
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr ""
+
+#. Unknown flag.
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
+msgid "invalid operand output code"
+msgstr ""
+
+#: config/arm/arm.c:458
+#, c-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr ""
+
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
+#, c-format
+msgid "bad value (%s) for %s switch"
+msgstr ""
+
+#: config/arm/arm.c:604
+msgid "target CPU does not support APCS-32"
+msgstr ""
+
+#: config/arm/arm.c:609
+msgid "target CPU does not support APCS-26"
+msgstr ""
+
+#: config/arm/arm.c:615
+msgid "target CPU does not support interworking"
+msgstr ""
+
+#: config/arm/arm.c:621
+msgid "target CPU does not support THUMB instructions"
+msgstr ""
+
+#: config/arm/arm.c:635
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:638
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:641
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.c:647
+msgid "interworking forces APCS-32 to be used"
+msgstr ""
+
+#: config/arm/arm.c:653
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr ""
+
+#: config/arm/arm.c:661
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr ""
+
+#: config/arm/arm.c:664
+msgid "APCS reentrant code not supported. Ignored"
+msgstr ""
+
+#: config/arm/arm.c:672
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr ""
+
+#: config/arm/arm.c:680
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr ""
+
+#: config/arm/arm.c:709
+#, c-format
+msgid "invalid floating point emulation option: -mfpe-%s"
+msgstr ""
+
+#: config/arm/arm.c:733
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr ""
+
+#: config/arm/arm.c:741
+msgid "-mpic-register= is useless without -fpic"
+msgstr ""
+
+#: config/arm/arm.c:748
+#, c-format
+msgid "unable to use '%s' for PIC register"
+msgstr ""
+
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr ""
+
+#: config/arm/arm.c:9459
+msgid "unable to compute real location of stacked parameter"
+msgstr ""
+
+#: config/arm/arm.c:10138
+msgid "no low registers available for popping high registers"
+msgstr ""
+
+#: config/arm/arm.c:10389
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr ""
+
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr ""
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr ""
+
+#: config/arm/arm.h:416
+msgid "Generate APCS conformant stack frames"
+msgstr ""
+
+#: config/arm/arm.h:419
+msgid "Store function names in object code"
+msgstr ""
+
+#: config/arm/arm.h:423
+msgid "Use the 32-bit version of the APCS"
+msgstr ""
+
+#: config/arm/arm.h:425
+msgid "Use the 26-bit version of the APCS"
+msgstr ""
+
+#: config/arm/arm.h:429
+msgid "Pass FP arguments in FP registers"
+msgstr ""
+
+#: config/arm/arm.h:432
+msgid "Generate re-entrant, PIC code"
+msgstr ""
+
+#: config/arm/arm.h:435
+msgid "The MMU will trap on unaligned accesses"
+msgstr ""
+
+#: config/arm/arm.h:442
+msgid "Use library calls to perform FP operations"
+msgstr ""
+
+#: config/arm/arm.h:444 config/i960/i960.h:281
+msgid "Use hardware floating point instructions"
+msgstr ""
+
+#: config/arm/arm.h:446
+msgid "Assume target CPU is configured as big endian"
+msgstr ""
+
+#: config/arm/arm.h:448
+msgid "Assume target CPU is configured as little endian"
+msgstr ""
+
+#: config/arm/arm.h:450
+msgid "Assume big endian bytes, little endian words"
+msgstr ""
+
+#: config/arm/arm.h:452
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr ""
+
+#: config/arm/arm.h:455
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr ""
+
+#: config/arm/arm.h:458
+msgid "Do not move instructions into a function's prologue"
+msgstr ""
+
+#: config/arm/arm.h:461
+msgid "Do not load the PIC register in function prologues"
+msgstr ""
+
+#: config/arm/arm.h:464
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr ""
+
+#: config/arm/arm.h:467
+msgid "Compile for the Thumb not the ARM"
+msgstr ""
+
+#: config/arm/arm.h:471
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr ""
+
+#: config/arm/arm.h:474
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr ""
+
+#: config/arm/arm.h:477
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr ""
+
+#: config/arm/arm.h:481
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr ""
+
+#: config/arm/arm.h:491
+msgid "Specify the name of the target CPU"
+msgstr ""
+
+#: config/arm/arm.h:493
+msgid "Specify the name of the target architecture"
+msgstr ""
+
+#: config/arm/arm.h:497
+msgid "Specify the version of the floating point emulator"
+msgstr ""
+
+#: config/arm/arm.h:499
+msgid "Specify the minimum bit alignment of structures"
+msgstr ""
+
+#: config/arm/arm.h:501
+msgid "Specify the register to be used for PIC addressing"
+msgstr ""
+
+#: config/arm/pe.h:65
+msgid "Ignore dllimport attribute for functions"
+msgstr ""
+
+#: config/avr/avr.c:528
+#, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr ""
+
+#: config/avr/avr.c:1135
+msgid "bad address, not (reg+disp):"
+msgstr ""
+
+#: config/avr/avr.c:1143
+msgid "internal compiler error. Bad address:"
+msgstr ""
+
+#: config/avr/avr.c:1156
+msgid "internal compiler error. Unknown mode:"
+msgstr ""
+
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+msgid "invalid insn:"
+msgstr ""
+
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
+msgstr ""
+
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+msgid "unknown move insn:"
+msgstr ""
+
+#: config/avr/avr.c:3003
+msgid "bad shift insn:"
+msgstr ""
+
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+msgid "internal compiler error. Incorrect shift:"
+msgstr ""
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+msgid "only initialized variables can be placed into program memory area"
+msgstr ""
+
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr ""
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr ""
+
+#: config/avr/avr.h:78
+msgid "Assume int to be 8 bit integer"
+msgstr ""
+
+#: config/avr/avr.h:80
+msgid "Change the stack pointer without disabling interrupts"
+msgstr ""
+
+#: config/avr/avr.h:82
+msgid "Use subroutines for function prologue/epilogue"
+msgstr ""
+
+#: config/avr/avr.h:84
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr ""
+
+#: config/avr/avr.h:86
+msgid "Do not generate tablejump insns"
+msgstr ""
+
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
+msgid "Output instruction sizes to the asm file"
+msgstr ""
+
+#: config/avr/avr.h:108
+msgid "Specify the initial stack address"
+msgstr ""
+
+#: config/avr/avr.h:109
+msgid "Specify the MCU name"
+msgstr ""
+
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+msgid "trampolines not supported"
+msgstr ""
+
+#: config/c4x/c4x-c.c:69
+#, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:72
+#, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:79
+#, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:84
+#, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:87
+#, c-format
+msgid "junk at end of '#pragma %s'"
+msgstr ""
+
+#: config/c4x/c4x.c:280
+#, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr ""
+
+#: config/c4x/c4x.c:853
+#, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr ""
+
+#: config/c4x/c4x.c:1602
+msgid "using CONST_DOUBLE for address"
+msgstr ""
+
+#: config/c4x/c4x.c:1742
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr ""
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2422
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr ""
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+msgid "mode not QImode"
+msgstr ""
+
+#: config/c4x/c4x.c:3514
+msgid "invalid indirect memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3603
+msgid "invalid indirect (S) memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3944
+msgid "c4x_valid_operands: Internal error"
+msgstr ""
+
+#: config/c4x/c4x.c:4424
+msgid "c4x_operand_subword: invalid mode"
+msgstr ""
+
+#: config/c4x/c4x.c:4427
+msgid "c4x_operand_subword: invalid operand"
+msgstr ""
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr ""
+
+#: config/c4x/c4x.c:4459
+msgid "c4x_operand_subword: invalid address"
+msgstr ""
+
+#: config/c4x/c4x.c:4470
+msgid "c4x_operand_subword: address not offsettable"
+msgstr ""
+
+#: config/c4x/c4x.c:4670
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr ""
+
+#. Name of the c4x assembler.
+#. Name of the c4x linker.
+#. Define assembler options.
+#. Define linker options.
+#. Specify the end file to link with.
+#. Target compilation option flags.
+#. Small memory model.
+#. Use 24-bit MPYI for C3x.
+#. Fast fixing of floats.
+#. Allow use of RPTS.
+#. Emit C3x code.
+#. Be compatible with TI assembler.
+#. Be paranoid about DP reg. in ISRs.
+#. Pass arguments on stack.
+#. Enable features under development.
+#. Enable repeat block.
+#. Use BK as general register.
+#. Use decrement and branch for C3x.
+#. Enable debugging of GCC.
+#. Force constants into registers.
+#. Allow unsigned loop counters.
+#. Force op0 and op1 to be same.
+#. Save all 40 bits for floats.
+#. Allow parallel insns.
+#. Allow MPY||ADD, MPY||SUB insns.
+#. Assume mem refs possibly aliased.
+#. Emit C30 code.
+#. Emit C31 code.
+#. Emit C32 code.
+#. Emit C33 code.
+#. Emit C40 code.
+#. Emit C44 code.
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each pair being { "NAME", VALUE, "DESCRIPTION" }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/c4x/c4x.h:168
+msgid "Small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:170
+msgid "Big memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:172
+msgid "Use MPYI instruction for C3x"
+msgstr ""
+
+#: config/c4x/c4x.h:174
+msgid "Do not use MPYI instruction for C3x"
+msgstr ""
+
+#: config/c4x/c4x.h:176
+msgid "Use fast but approximate float to integer conversion"
+msgstr ""
+
+#: config/c4x/c4x.h:178
+msgid "Use slow but accurate float to integer conversion"
+msgstr ""
+
+#: config/c4x/c4x.h:180
+msgid "Enable use of RTPS instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:182
+msgid "Disable use of RTPS instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:184
+msgid "Enable use of RTPB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:186
+msgid "Disable use of RTPB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:188
+msgid "Generate code for C30 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:190
+msgid "Generate code for C31 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:192
+msgid "Generate code for C32 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:194
+msgid "Generate code for C33 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:196
+msgid "Generate code for C40 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:198
+msgid "Generate code for C44 CPU"
+msgstr ""
+
+#: config/c4x/c4x.h:200
+msgid "Emit code compatible with TI tools"
+msgstr ""
+
+#: config/c4x/c4x.h:202
+msgid "Emit code to use GAS extensions"
+msgstr ""
+
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
+msgid "Save DP across ISR in small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
+msgid "Don't save DP across ISR in small memory model"
+msgstr ""
+
+#: config/c4x/c4x.h:212
+msgid "Pass arguments on the stack"
+msgstr ""
+
+#: config/c4x/c4x.h:214
+msgid "Pass arguments in registers"
+msgstr ""
+
+#: config/c4x/c4x.h:216
+msgid "Enable new features under development"
+msgstr ""
+
+#: config/c4x/c4x.h:218
+msgid "Disable new features under development"
+msgstr ""
+
+#: config/c4x/c4x.h:220
+msgid "Use the BK register as a general purpose register"
+msgstr ""
+
+#: config/c4x/c4x.h:222
+msgid "Do not allocate BK register"
+msgstr ""
+
+#: config/c4x/c4x.h:224
+msgid "Enable use of DB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:226
+msgid "Disable use of DB instruction"
+msgstr ""
+
+#: config/c4x/c4x.h:228
+msgid "Enable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:230
+msgid "Disable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:232
+msgid "Force constants into registers to improve hoisting"
+msgstr ""
+
+#: config/c4x/c4x.h:234
+msgid "Don't force constants into registers"
+msgstr ""
+
+#: config/c4x/c4x.h:236
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr ""
+
+#: config/c4x/c4x.h:238
+msgid "Allow RTL generation to emit invalid 3 operand insns"
+msgstr ""
+
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr ""
+
+#: config/c4x/c4x.h:242
+msgid "Disallow unsigned iteration counts for RPTB/DB"
+msgstr ""
+
+#: config/c4x/c4x.h:244
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr ""
+
+#: config/c4x/c4x.h:246
+msgid "Only preserve 32 bits of FP reg across call"
+msgstr ""
+
+#: config/c4x/c4x.h:248
+msgid "Enable parallel instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:250
+msgid "Disable parallel instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:252
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:254
+msgid "Disable MPY||ADD and MPY||SUB instructions"
+msgstr ""
+
+#: config/c4x/c4x.h:256
+msgid "Assume that pointers may be aliased"
+msgstr ""
+
+#: config/c4x/c4x.h:258
+msgid "Assume that pointers not aliased"
+msgstr ""
+
+#: config/c4x/c4x.h:331
+msgid "Specify maximum number of iterations for RPTS"
+msgstr ""
+
+#: config/c4x/c4x.h:333
+msgid "Select CPU to generate code for"
+msgstr ""
+
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr ""
+
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr ""
+
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr ""
+
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr ""
+
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr ""
+
+#: config/cris/cris.c:1312
+msgid "invalid operand for 'b' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1324
+msgid "invalid operand for 'v' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1334
+msgid "invalid operand for 'P' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1341
+msgid "invalid operand for 'p' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1380
+msgid "invalid operand for 'z' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+msgid "invalid operand for 'H' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1417
+msgid "bad register"
+msgstr ""
+
+#: config/cris/cris.c:1455
+msgid "invalid operand for 'e' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1472
+msgid "invalid operand for 'm' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1497
+msgid "invalid operand for 'A' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1505
+msgid "invalid operand for 'D' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1519
+msgid "invalid operand for 'T' modifier"
+msgstr ""
+
+#: config/cris/cris.c:1528
+msgid "invalid operand modifier letter"
+msgstr ""
+
+#: config/cris/cris.c:1536
+#, c-format
+msgid "internal error: bad register: %d"
+msgstr ""
+
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
+msgstr ""
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+msgid "unrecognized address"
+msgstr ""
+
+#: config/cris/cris.c:2005
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr ""
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr ""
+
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+msgid "unrecognized supposed constant"
+msgstr ""
+
+#: config/cris/cris.c:2473
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr ""
+
+#: config/cris/cris.c:2492
+#, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr ""
+
+#: config/cris/cris.c:2520
+#, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr ""
+
+#: config/cris/cris.c:2556
+#, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr ""
+
+#: config/cris/cris.c:2574
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr ""
+
+#: config/cris/cris.c:2590
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr ""
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+msgid "unexpected side-effects in address"
+msgstr ""
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
+msgid "PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+msgid "unexpected address expression"
+msgstr ""
+
+#: config/cris/cris.c:3001
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:3010
+msgid "unexpected NOTE as addr_const:"
+msgstr ""
+
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr ""
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr ""
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr ""
+
+#: config/cris/cris.h:345
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr ""
+
+#: config/cris/cris.h:349
+msgid "Emit verbose debug information in assembly code"
+msgstr ""
+
+#: config/cris/cris.h:352
+msgid "Do not use condition codes from normal instructions"
+msgstr ""
+
+#: config/cris/cris.h:356
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr ""
+
+#: config/cris/cris.h:359
+msgid "Do not tune stack alignment"
+msgstr ""
+
+#: config/cris/cris.h:362
+msgid "Do not tune writable data alignment"
+msgstr ""
+
+#: config/cris/cris.h:365
+msgid "Do not tune code and read-only data alignment"
+msgstr ""
+
+#: config/cris/cris.h:374
+msgid "Align code and data to 32 bits"
+msgstr ""
+
+#: config/cris/cris.h:387
+msgid "Don't align items in code or data"
+msgstr ""
+
+#: config/cris/cris.h:390
+msgid "Do not emit function prologue or epilogue"
+msgstr ""
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr ""
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+msgid "Override -mbest-lib-options"
+msgstr ""
+
+#: config/cris/cris.h:432
+msgid "Generate code for the specified chip or CPU version"
+msgstr ""
+
+#: config/cris/cris.h:434
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr ""
+
+#: config/cris/cris.h:436
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr ""
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr ""
+
+#: config/cris/linux.h:71
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr ""
+
+#: config/d30v/d30v.c:207
+#, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr ""
+
+#: config/d30v/d30v.c:2666
+msgid "bad insn to d30v_print_operand_address:"
+msgstr ""
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr ""
+
+#: config/d30v/d30v.c:2851
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2860
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2867
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2921
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2932
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2939
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2957
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:3003
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr ""
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr ""
+
+#: config/d30v/d30v.c:3345
+msgid "bad call to d30v_move_2words"
+msgstr ""
+
+#: config/d30v/d30v.h:114
+msgid "Enable use of conditional move instructions"
+msgstr ""
+
+#: config/d30v/d30v.h:117
+msgid "Disable use of conditional move instructions"
+msgstr ""
+
+#: config/d30v/d30v.h:120
+msgid "Debug argument support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:123
+msgid "Debug stack support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:126
+msgid "Debug memory address support in compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:129
+msgid "Make adjacent short instructions parallel if possible"
+msgstr ""
+
+#: config/d30v/d30v.h:132
+msgid "Do not make adjacent short instructions parallel"
+msgstr ""
+
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
+msgid "Link programs/data to be in external memory by default"
+msgstr ""
+
+#: config/d30v/d30v.h:141
+msgid "Link programs/data to be in onchip memory by default"
+msgstr ""
+
+#: config/d30v/d30v.h:149
+msgid "Change the branch costs within the compiler"
+msgstr ""
+
+#: config/d30v/d30v.h:152
+msgid "Change the threshold for conversion to conditional execution"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+msgid "stack size > 32k"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1678
+msgid "invalid addressing mode"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1821
+msgid "bad register extension code"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1921
+msgid "invalid offset in ybase addressing"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:1924
+msgid "invalid register in ybase addressing"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2099
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2428
+msgid "invalid mode for gen_tst_reg"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2500
+msgid "invalid mode for integer comparison in gen_compare_reg"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/dsp16xx/dsp16xx.h:230
+msgid "Pass parameters in registers (default)"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:232
+msgid "Don't pass parameters in registers"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:234
+msgid "Generate code for near calls"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:236
+msgid "Don't generate code for near calls"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:238
+msgid "Generate code for near jumps"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:240
+msgid "Don't generate code for near jumps"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:242
+msgid "Generate code for a bit-manipulation unit"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:244
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:246
+msgid "Generate code for memory map1"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:248
+msgid "Generate code for memory map2"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:250
+msgid "Generate code for memory map3"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:252
+msgid "Generate code for memory map4"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:254
+msgid "Ouput extra code for initialized data"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:256
+msgid "Don't let reg. allocator use ybase registers"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:258
+msgid "Output extra debug info in Luxworks environment"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:260
+msgid "Save temp. files in Luxworks environment"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:272
+msgid "Specify alternate name for text section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:274
+msgid "Specify alternate name for data section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:276
+msgid "Specify alternate name for bss section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:278
+msgid "Specify alternate name for constant section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:280
+msgid "Specify alternate name for dsp16xx chip"
+msgstr ""
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+msgid "profiling not implemented yet"
+msgstr ""
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+msgid "trampolines not yet implemented"
+msgstr ""
+
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
+msgstr ""
+
+#: config/fr30/fr30.c:480
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr ""
+
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr ""
+
+#: config/fr30/fr30.c:521
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr ""
+
+#: config/fr30/fr30.c:529
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr ""
+
+#: config/fr30/fr30.c:546
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr ""
+
+#: config/fr30/fr30.c:553
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr ""
+
+#: config/fr30/fr30.c:570
+msgid "fr30_print_operand: unknown code"
+msgstr ""
+
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/fr30/fr30.h:63
+msgid "Assume small address space"
+msgstr ""
+
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr ""
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr ""
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr ""
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr ""
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr ""
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
+msgid "-ms2600 is used without -ms"
+msgstr ""
+
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
+msgstr ""
+
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
+msgstr ""
+
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr ""
+
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
+msgstr ""
+
+#: config/h8300/h8300.h:154
+msgid "Make integers 32 bits wide"
+msgstr ""
+
+#: config/h8300/h8300.h:157
+msgid "Use registers for argument passing"
+msgstr ""
+
+#: config/h8300/h8300.h:159
+msgid "Do not use registers for argument passing"
+msgstr ""
+
+#: config/h8300/h8300.h:161
+msgid "Consider access to byte sized memory slow"
+msgstr ""
+
+#: config/h8300/h8300.h:162
+msgid "Enable linker relaxing"
+msgstr ""
+
+#: config/h8300/h8300.h:164
+msgid "Generate H8/300H code"
+msgstr ""
+
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
+msgid "Do not generate H8/300H code"
+msgstr ""
+
+#: config/h8300/h8300.h:167
+msgid "Use H8/300 alignment rules"
+msgstr ""
+
+#: config/i370/i370-c.c:53
+msgid "junk at end of #pragma map"
+msgstr ""
+
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
+msgstr ""
+
+#: config/i370/i370.c:915
+msgid "real name is too long - alias ignored"
+msgstr ""
+
+#: config/i370/i370.c:920
+msgid "alias name is too long - alias ignored"
+msgstr ""
+
+#: config/i370/i370.c:1191
+msgid "internal error--no jump follows compare:"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a list in braces
+#. of pairs in braces, each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/i370/i370.h:75
+msgid "Generate char instructions"
+msgstr ""
+
+#: config/i370/i370.h:76
+msgid "Do not generate char instructions"
+msgstr ""
+
+#: config/i386/i386.c:1050
+#, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr ""
+
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr ""
+
+#: config/i386/i386.c:1075
+#, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr ""
+
+#: config/i386/i386.c:1078
+#, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1081
+msgid "code model `large' not supported yet"
+msgstr ""
+
+#: config/i386/i386.c:1083
+#, c-format
+msgid "%i-bit mode not compiled in"
+msgstr ""
+
+#: config/i386/i386.c:1113
+#, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr ""
+
+#: config/i386/i386.c:1124
+#, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr ""
+
+#: config/i386/i386.c:1141
+#, c-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr ""
+
+#: config/i386/i386.c:1154
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr ""
+
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
+#, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr ""
+
+#: config/i386/i386.c:1167
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr ""
+
+#: config/i386/i386.c:1180
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr ""
+
+#: config/i386/i386.c:1218
+#, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr ""
+
+#: config/i386/i386.c:1230
+#, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr ""
+
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr ""
+
+#: config/i386/i386.c:1263
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1265
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr ""
+
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr ""
+
+#: config/i386/i386.c:1297
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr ""
+
+#: config/i386/i386.c:1304
+#, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr ""
+
+#: config/i386/i386.c:1436
+#, c-format
+msgid "`%s' attribute requires an integer constant argument"
+msgstr ""
+
+#: config/i386/i386.c:1442
+#, c-format
+msgid "argument to `%s' attribute larger than %d"
+msgstr ""
+
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
+msgid "invalid UNSPEC as operand"
+msgstr ""
+
+#: config/i386/i386.c:6648
+msgid "extended registers have no high halves"
+msgstr ""
+
+#: config/i386/i386.c:6663
+msgid "unsupported operand size for extended register"
+msgstr ""
+
+#: config/i386/i386.c:6978
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr ""
+
+#: config/i386/i386.c:7024
+#, c-format
+msgid "invalid operand code `%c'"
+msgstr ""
+
+#: config/i386/i386.c:7071
+msgid "invalid constraints for operand"
+msgstr ""
+
+#: config/i386/i386.c:11271
+msgid "unknown insn mode"
+msgstr ""
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
+msgstr ""
+
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
+msgstr ""
+
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr ""
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
+#, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr ""
+
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
+#, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr ""
+
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr ""
+
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr ""
+
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr ""
+
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
+msgstr ""
+
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr ""
+
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr ""
+
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr ""
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr ""
+
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr ""
+
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr ""
+
+#: config/i386/djgpp.h:206
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr ""
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
+msgid "Alternate calling convention"
+msgstr ""
+
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
+msgid "Use normal calling convention"
+msgstr ""
+
+#: config/i386/i386.h:310
+msgid "Align some doubles on dword boundary"
+msgstr ""
+
+#: config/i386/i386.h:312
+msgid "Align doubles on word boundary"
+msgstr ""
+
+#: config/i386/i386.h:314
+msgid "Uninitialized locals in .bss"
+msgstr ""
+
+#: config/i386/i386.h:316
+msgid "Uninitialized locals in .data"
+msgstr ""
+
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
+msgid "Use IEEE math for fp comparisons"
+msgstr ""
+
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
+msgid "Do not use IEEE math for fp comparisons"
+msgstr ""
+
+#: config/i386/i386.h:322
+msgid "Return values of functions in FPU registers"
+msgstr ""
+
+#: config/i386/i386.h:324
+msgid "Do not return values of functions in FPU registers"
+msgstr ""
+
+#: config/i386/i386.h:326
+msgid "Do not generate sin, cos, sqrt for FPU"
+msgstr ""
+
+#: config/i386/i386.h:328
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr ""
+
+#: config/i386/i386.h:330
+msgid "Omit the frame pointer in leaf functions"
+msgstr ""
+
+#: config/i386/i386.h:333
+msgid "Enable stack probing"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/i386/i386.h:338
+msgid "Align destination of the string operations"
+msgstr ""
+
+#: config/i386/i386.h:340
+msgid "Do not align destination of the string operations"
+msgstr ""
+
+#: config/i386/i386.h:342
+msgid "Inline all known string operations"
+msgstr ""
+
+#: config/i386/i386.h:344
+msgid "Do not inline all known string operations"
+msgstr ""
+
+#: config/i386/i386.h:346 config/i386/i386.h:350
+msgid "Use push instructions to save outgoing arguments"
+msgstr ""
+
+#: config/i386/i386.h:348 config/i386/i386.h:352
+msgid "Do not use push instructions to save outgoing arguments"
+msgstr ""
+
+#: config/i386/i386.h:354
+msgid "Support MMX built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:356
+msgid "Do not support MMX built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:358
+msgid "Support 3DNow! built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:360
+msgid "Do not support 3DNow! built-in functions"
+msgstr ""
+
+#: config/i386/i386.h:362
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:364
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:366
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:368
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:370
+msgid "sizeof(long double) is 16"
+msgstr ""
+
+#: config/i386/i386.h:372
+msgid "sizeof(long double) is 12"
+msgstr ""
+
+#: config/i386/i386.h:374
+msgid "Generate 64bit x86-64 code"
+msgstr ""
+
+#: config/i386/i386.h:376
+msgid "Generate 32bit i386 code"
+msgstr ""
+
+#: config/i386/i386.h:378
+msgid "Use red-zone in the x86-64 code"
+msgstr ""
+
+#: config/i386/i386.h:380
+msgid "Do not use red-zone in the x86-64 code"
+msgstr ""
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
+msgid "Schedule code for given CPU"
+msgstr ""
+
+#: config/i386/i386.h:411
+msgid "Generate floating point mathematics using given instruction set"
+msgstr ""
+
+#: config/i386/i386.h:413
+msgid "Generate code for given CPU"
+msgstr ""
+
+#: config/i386/i386.h:415
+msgid "Number of registers used to pass integer arguments"
+msgstr ""
+
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
+msgid "Loop code aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
+msgid "Jump targets are aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
+msgid "Function starts are aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:424
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr ""
+
+#: config/i386/i386.h:426
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr ""
+
+#: config/i386/i386.h:428
+msgid "Use given x86-64 code model"
+msgstr ""
+
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+msgid "Use given assembler dialect"
+msgstr ""
+
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr ""
+
+#: config/i386/sco5.h:297
+msgid "Generate ELF output"
+msgstr ""
+
+#: config/i386/win32.h:53
+msgid "Use Mingw32 interface"
+msgstr ""
+
+#: config/i386/win32.h:55
+msgid "Use Cygwin interface"
+msgstr ""
+
+#: config/i386/win32.h:57
+msgid "Use bare Windows interface"
+msgstr ""
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:71
+msgid "environment variable DJGPP not defined"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:73
+#, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:76
+#, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr ""
+
+#: config/i960/i960-c.c:66
+msgid "sorry, not implemented: #pragma align NAME=SIZE"
+msgstr ""
+
+#: config/i960/i960-c.c:71
+msgid "malformed #pragma align - ignored"
+msgstr ""
+
+#: config/i960/i960-c.c:109
+msgid "sorry, not implemented: #pragma noalign NAME"
+msgstr ""
+
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr ""
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr ""
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr ""
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
+msgid "stack limit expression is not supported"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#. ??? Not all ten of these architecture variations actually exist, but I
+#. am not sure which are real and which aren't.
+#: config/i960/i960.h:240
+msgid "Generate SA code"
+msgstr ""
+
+#: config/i960/i960.h:243
+msgid "Generate SB code"
+msgstr ""
+
+#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
+#: config/i960/i960.h:248
+msgid "Generate KA code"
+msgstr ""
+
+#: config/i960/i960.h:251
+msgid "Generate KB code"
+msgstr ""
+
+#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
+#: config/i960/i960.h:256
+msgid "Generate JA code"
+msgstr ""
+
+#: config/i960/i960.h:258
+msgid "Generate JD code"
+msgstr ""
+
+#: config/i960/i960.h:261
+msgid "Generate JF code"
+msgstr ""
+
+#: config/i960/i960.h:263
+msgid "generate RP code"
+msgstr ""
+
+#: config/i960/i960.h:266
+msgid "Generate MC code"
+msgstr ""
+
+#: config/i960/i960.h:269
+msgid "Generate CA code"
+msgstr ""
+
+#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
+#: config/i960/i960.h:279
+msgid "Generate CF code"
+msgstr ""
+
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr ""
+
+#: config/i960/i960.h:285
+msgid "Use alternate leaf function entries"
+msgstr ""
+
+#: config/i960/i960.h:287
+msgid "Do not use alternate leaf function entries"
+msgstr ""
+
+#: config/i960/i960.h:289
+msgid "Perform tail call optimization"
+msgstr ""
+
+#: config/i960/i960.h:291
+msgid "Do not perform tail call optimization"
+msgstr ""
+
+#: config/i960/i960.h:293
+msgid "Use complex addressing modes"
+msgstr ""
+
+#: config/i960/i960.h:295
+msgid "Do not use complex addressing modes"
+msgstr ""
+
+#: config/i960/i960.h:297
+msgid "Align code to 8 byte boundary"
+msgstr ""
+
+#: config/i960/i960.h:299
+msgid "Do not align code to 8 byte boundary"
+msgstr ""
+
+#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
+#: config/i960/i960.h:305 config/i960/i960.h:307
+msgid "Enable compatibility with iC960 v2.0"
+msgstr ""
+
+#: config/i960/i960.h:309
+msgid "Enable compatibility with iC960 v3.0"
+msgstr ""
+
+#: config/i960/i960.h:311 config/i960/i960.h:313
+msgid "Enable compatibility with ic960 assembler"
+msgstr ""
+
+#: config/i960/i960.h:315
+msgid "Do not permit unaligned accesses"
+msgstr ""
+
+#: config/i960/i960.h:317
+msgid "Permit unaligned accesses"
+msgstr ""
+
+#: config/i960/i960.h:319
+msgid "Layout types like Intel's v1.3 gcc"
+msgstr ""
+
+#: config/i960/i960.h:321
+msgid "Do not layout types like Intel's v1.3 gcc"
+msgstr ""
+
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
+msgid "Use 64 bit long doubles"
+msgstr ""
+
+#: config/i960/i960.h:325
+msgid "Enable linker relaxation"
+msgstr ""
+
+#: config/i960/i960.h:327
+msgid "Do not enable linker relaxation"
+msgstr ""
+
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr ""
+
+#: config/ia64/ia64.c:4015
+msgid "ia64_print_operand: unknown code"
+msgstr ""
+
+#: config/ia64/ia64.c:4292
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr ""
+
+#: config/ia64/ia64.c:4319
+#, c-format
+msgid "%s-%s is an empty range"
+msgstr ""
+
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr ""
+
+#. This macro defines names of command options to set and clear bits in
+#. `target_flags'. Its definition is an initializer with a subgrouping for
+#. each command option.
+#: config/ia64/ia64.h:154
+msgid "Generate big endian code"
+msgstr ""
+
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
+msgid "Generate little endian code"
+msgstr ""
+
+#: config/ia64/ia64.h:158
+msgid "Generate code for GNU as"
+msgstr ""
+
+#: config/ia64/ia64.h:160
+msgid "Generate code for Intel as"
+msgstr ""
+
+#: config/ia64/ia64.h:162
+msgid "Generate code for GNU ld"
+msgstr ""
+
+#: config/ia64/ia64.h:164
+msgid "Generate code for Intel ld"
+msgstr ""
+
+#: config/ia64/ia64.h:166
+msgid "Generate code without GP reg"
+msgstr ""
+
+#: config/ia64/ia64.h:168
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr ""
+
+#: config/ia64/ia64.h:170
+msgid "Don't emit stop bits before and after volatile extended asms"
+msgstr ""
+
+#: config/ia64/ia64.h:172
+msgid "Emit code for Itanium (TM) processor B step"
+msgstr ""
+
+#: config/ia64/ia64.h:174
+msgid "Use in/loc/out register names"
+msgstr ""
+
+#: config/ia64/ia64.h:176
+msgid "Disable use of sdata/scommon/sbss"
+msgstr ""
+
+#: config/ia64/ia64.h:178
+msgid "Enable use of sdata/scommon/sbss"
+msgstr ""
+
+#: config/ia64/ia64.h:180
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr ""
+
+#: config/ia64/ia64.h:182
+msgid "Generate self-relocatable code"
+msgstr ""
+
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:192
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr ""
+
+#: config/ia64/ia64.h:194
+msgid "Disable Dwarf 2 line debug info via GNU as"
+msgstr ""
+
+#: config/ia64/ia64.h:223
+msgid "Specify range of registers to make fixed"
+msgstr ""
+
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr ""
+
+#: config/m32r/m32r.c:139
+#, c-format
+msgid "bad value (%s) for -mmodel switch"
+msgstr ""
+
+#: config/m32r/m32r.c:148
+#, c-format
+msgid "bad value (%s) for -msdata switch"
+msgstr ""
+
+#: config/m32r/m32r.c:319
+#, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr ""
+
+#: config/m32r/m32r.c:422
+msgid "const objects cannot go in .sdata/.sbss"
+msgstr ""
+
+#: config/m32r/m32r.c:2256
+#, c-format
+msgid "invalid operand to %%s code"
+msgstr ""
+
+#: config/m32r/m32r.c:2263
+#, c-format
+msgid "invalid operand to %%p code"
+msgstr ""
+
+#: config/m32r/m32r.c:2318
+msgid "bad insn for 'A'"
+msgstr ""
+
+#: config/m32r/m32r.c:2370
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr ""
+
+#: config/m32r/m32r.c:2393
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr ""
+
+#: config/m32r/m32r.c:2438
+msgid "pre-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2445
+msgid "pre-decrement address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2452
+msgid "post-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+msgid "bad address"
+msgstr ""
+
+#: config/m32r/m32r.c:2551
+msgid "lo_sum not of register"
+msgstr ""
+
+#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
+#: config/m32r/m32r.h:241
+msgid "Display compile time statistics"
+msgstr ""
+
+#: config/m32r/m32r.h:243
+msgid "Align all loops to 32 byte boundary"
+msgstr ""
+
+#: config/m32r/m32r.h:246
+msgid "Only issue one instruction per cycle"
+msgstr ""
+
+#: config/m32r/m32r.h:249
+msgid "Prefer branches over conditional execution"
+msgstr ""
+
+#: config/m32r/m32r.h:265
+msgid "Code size: small, medium or large"
+msgstr ""
+
+#: config/m32r/m32r.h:267
+msgid "Small data area: none, sdata, use"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:242
+#, c-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "Attribut »%s« wird ignoriert"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+msgid "move insn not handled"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+msgid "invalid register in the move instruction"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3613
+msgid "invalid operand in the instruction"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3920
+msgid "invalid register in the instruction"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3953
+msgid "operand 1 must be a hard register"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3970
+msgid "invalid rotate insn"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:4391
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+msgid "cannot do z-register replacement"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:5094
+msgid "invalid Z register replacement for insn"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a list in braces of
+#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
+#. to set or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE.
+#: config/m68hc11/m68hc11.h:172
+msgid "Compile with 16-bit integer mode"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:174
+msgid "Compile with 32-bit integer mode"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:176
+msgid "Auto pre/post decrement increment allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:178
+msgid "Auto pre/post decrement increment not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
+msgid "Do not use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
+msgid "Compile for a 68HC11"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
+msgid "Compile for a 68HC12"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/m68hc11/m68hc11.h:216
+msgid "Specify the register allocation order"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:218
+msgid "Indicate the number of soft registers available"
+msgstr ""
+
+#: config/m68k/m68k.c:158
+#, c-format
+msgid "-malign-loops=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:169
+#, c-format
+msgid "-malign-jumps=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:180
+#, c-format
+msgid "-malign-functions=%d is not between 1 and %d"
+msgstr ""
+
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+msgid "Generate code for a 68020"
+msgstr ""
+
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+msgid "Generate code for a 68000"
+msgstr ""
+
+#: config/m68k/m68k.h:174
+msgid "Use the bit-field instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:176
+msgid "Do not use the bit-field instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:178
+msgid "Use different calling convention using 'rtd'"
+msgstr ""
+
+#: config/m68k/m68k.h:182
+msgid "Consider type `int' to be 16 bits wide"
+msgstr ""
+
+#: config/m68k/m68k.h:184
+msgid "Consider type `int' to be 32 bits wide"
+msgstr ""
+
+#: config/m68k/m68k.h:186
+msgid "Generate code for a Sun FPA"
+msgstr ""
+
+#: config/m68k/m68k.h:189
+msgid "Do not generate code for a Sun FPA"
+msgstr ""
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+msgid "Generate code for a Sun Sky board"
+msgstr ""
+
+#: config/m68k/m68k.h:195
+msgid "Do not use Sky linkage convention"
+msgstr ""
+
+#: config/m68k/m68k.h:197
+msgid "Generate code for a 68881"
+msgstr ""
+
+#: config/m68k/m68k.h:200
+msgid "Generate code with library calls for floating point"
+msgstr ""
+
+#: config/m68k/m68k.h:202
+msgid "Generate code for a 68040, without any new instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:205
+msgid "Generate code for a 68060, without any new instructions"
+msgstr ""
+
+#: config/m68k/m68k.h:209
+msgid "Generate code for a 68030"
+msgstr ""
+
+#: config/m68k/m68k.h:212
+msgid "Generate code for a 68040"
+msgstr ""
+
+#: config/m68k/m68k.h:216
+msgid "Generate code for a 68060"
+msgstr ""
+
+#: config/m68k/m68k.h:221
+msgid "Generate code for a 520X"
+msgstr ""
+
+#: config/m68k/m68k.h:224
+msgid "Generate code for a 68851"
+msgstr ""
+
+#: config/m68k/m68k.h:226
+msgid "Do no generate code for a 68851"
+msgstr ""
+
+#: config/m68k/m68k.h:229
+msgid "Generate code for a 68302"
+msgstr ""
+
+#: config/m68k/m68k.h:232
+msgid "Generate code for a 68332"
+msgstr ""
+
+#: config/m68k/m68k.h:236
+msgid "Generate code for a cpu32"
+msgstr ""
+
+#: config/m68k/m68k.h:239
+msgid "Align variables on a 32-bit boundary"
+msgstr ""
+
+#: config/m68k/m68k.h:241
+msgid "Align variables on a 16-bit boundary"
+msgstr ""
+
+#: config/m68k/m68k.h:243
+msgid "Generate pc-relative code"
+msgstr ""
+
+#: config/m68k/m68k.h:245
+msgid "Do not use unaligned memory references"
+msgstr ""
+
+#: config/m68k/m68k.h:247
+msgid "Use unaligned memory references"
+msgstr ""
+
+#: config/m88k/m88k.c:903
+#, c-format
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr ""
+
+#: config/m88k/m88k.c:2302
+msgid "internal gcc error: Can't express symbolic location"
+msgstr ""
+
+#: config/m88k/m88k.c:2517
+#, c-format
+msgid "argument #%d is a structure"
+msgstr ""
+
+#: config/m88k/m88k.c:2816
+#, c-format
+msgid "%%R not followed by %%B/C/D/E"
+msgstr ""
+
+#: config/m88k/m88k.c:2884
+#, c-format
+msgid "invalid %%x/X value"
+msgstr ""
+
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr ""
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, c-format
+msgid "invalid %%q value"
+msgstr ""
+
+#: config/m88k/m88k.c:2913
+#, c-format
+msgid "invalid %%o value"
+msgstr ""
+
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
+#, c-format
+msgid "invalid %%p value"
+msgstr ""
+
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, c-format
+msgid "invalid %%s/S value"
+msgstr ""
+
+#: config/m88k/m88k.c:2949
+#, c-format
+msgid "invalid %%P operand"
+msgstr ""
+
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, c-format
+msgid "invalid %%B value"
+msgstr ""
+
+#: config/m88k/m88k.c:3010
+#, c-format
+msgid "invalid %%D value"
+msgstr ""
+
+#: config/m88k/m88k.c:3023
+#, c-format
+msgid "`%%d' operand isn't a register"
+msgstr ""
+
+#: config/m88k/m88k.c:3041
+msgid "operand is r0"
+msgstr ""
+
+#: config/m88k/m88k.c:3055
+msgid "operand is const_double"
+msgstr ""
+
+#: config/m88k/m88k.c:3074
+msgid "invalid code"
+msgstr ""
+
+#. Do any checking or such that is needed after processing the -m switches.
+#: config/m88k/m88k.h:277
+msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+msgstr ""
+
+#: config/m88k/m88k.h:299
+#, c-format
+msgid "invalid option `-mshort-data-%s'"
+msgstr ""
+
+#: config/m88k/m88k.h:304
+#, c-format
+msgid "-mshort-data-%s is too large "
+msgstr ""
+
+#: config/m88k/m88k.h:306
+#, c-format
+msgid "-mshort-data-%s and PIC are incompatible"
+msgstr ""
+
+#: config/mcore/mcore.c:3078
+#, c-format
+msgid "invalid option `-mstack-increment=%s'"
+msgstr ""
+
+#: config/mcore/mcore.h:126
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr ""
+
+#: config/mcore/mcore.h:128
+msgid "Inline constants if it only takes 1 instruction"
+msgstr ""
+
+#: config/mcore/mcore.h:130
+msgid "Set maximum alignment to 4"
+msgstr ""
+
+#: config/mcore/mcore.h:132
+msgid "Set maximum alignment to 8"
+msgstr ""
+
+#: config/mcore/mcore.h:136
+msgid "Do not use the divide instruction"
+msgstr ""
+
+#: config/mcore/mcore.h:140
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr ""
+
+#: config/mcore/mcore.h:142
+msgid "Always treat bit-field as int-sized"
+msgstr ""
+
+#: config/mcore/mcore.h:146
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr ""
+
+#: config/mcore/mcore.h:148
+msgid "Force functions to be aligned to a 2 byte boundary"
+msgstr ""
+
+#: config/mcore/mcore.h:150
+msgid "Emit call graph information"
+msgstr ""
+
+#: config/mcore/mcore.h:154
+msgid "Prefer word accesses over byte accesses"
+msgstr ""
+
+#: config/mcore/mcore.h:165
+msgid "Generate code for the M*Core M340"
+msgstr ""
+
+#: config/mcore/mcore.h:178
+msgid "Maximum amount for a single stack increment operation"
+msgstr ""
+
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr ""
+
+#: config/mips/mips.c:5158
+#, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr ""
+
+#: config/mips/mips.c:5165
+#, c-format
+msgid "bad value (%s) for -mips switch"
+msgstr ""
+
+#: config/mips/mips.c:5180
+#, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr ""
+
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr ""
+
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr ""
+
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr ""
+
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, c-format
+msgid "unsupported combination: %s"
+msgstr ""
+
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
+
+#: config/mips/mips.c:5299
+msgid "-G is incompatible with PIC code which is the default"
+msgstr ""
+
+#: config/mips/mips.c:5315
+msgid "-membedded-pic and -mabicalls are incompatible"
+msgstr ""
+
+#: config/mips/mips.c:5318
+msgid "-G and -membedded-pic are incompatible"
+msgstr ""
+
+#: config/mips/mips.c:5369
+#, c-format
+msgid "invalid option `entry%s'"
+msgstr ""
+
+#: config/mips/mips.c:5372
+msgid "-mentry is only meaningful with -mips-16"
+msgstr ""
+
+#: config/mips/mips.c:5781
+#, c-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5795
+#, c-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5808
+#, c-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5821
+#, c-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr ""
+
+#: config/mips/mips.c:5835
+#, c-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr ""
+
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
+msgid "PRINT_OPERAND null pointer"
+msgstr ""
+
+#: config/mips/mips.c:5975
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr ""
+
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr ""
+
+#: config/mips/mips.c:6242
+msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+msgstr ""
+
+#: config/mips/mips.c:6552
+msgid "can't rewind temp file"
+msgstr ""
+
+#: config/mips/mips.c:6556
+msgid "can't write to output file"
+msgstr ""
+
+#: config/mips/mips.c:6559
+msgid "can't read from temp file"
+msgstr ""
+
+#: config/mips/mips.c:6562
+msgid "can't close temp file"
+msgstr ""
+
+#: config/mips/mips.c:7003
+#, c-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr ""
+
+#: config/mips/mips.c:7112
+#, c-format
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr ""
+
+#: config/mips/mips.c:9335
+#, c-format
+msgid "can not handle inconsistent calls to `%s'"
+msgstr ""
+
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr ""
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
+msgid "No default crt0.o"
+msgstr ""
+
+#: config/mips/mips.h:530
+msgid "Use 64-bit int type"
+msgstr ""
+
+#: config/mips/mips.h:532
+msgid "Use 64-bit long type"
+msgstr ""
+
+#: config/mips/mips.h:534
+msgid "Use 32-bit long type"
+msgstr ""
+
+#: config/mips/mips.h:536
+msgid "Optimize lui/addiu address loads"
+msgstr ""
+
+#: config/mips/mips.h:538
+msgid "Don't optimize lui/addiu address loads"
+msgstr ""
+
+#: config/mips/mips.h:540
+msgid "Use MIPS as"
+msgstr ""
+
+#: config/mips/mips.h:542
+msgid "Use GNU as"
+msgstr ""
+
+#: config/mips/mips.h:544
+msgid "Use symbolic register names"
+msgstr ""
+
+#: config/mips/mips.h:546
+msgid "Don't use symbolic register names"
+msgstr ""
+
+#: config/mips/mips.h:548 config/mips/mips.h:550
+msgid "Use GP relative sdata/sbss sections"
+msgstr ""
+
+#: config/mips/mips.h:552 config/mips/mips.h:554
+msgid "Don't use GP relative sdata/sbss sections"
+msgstr ""
+
+#: config/mips/mips.h:556
+msgid "Output compiler statistics"
+msgstr ""
+
+#: config/mips/mips.h:558
+msgid "Don't output compiler statistics"
+msgstr ""
+
+#: config/mips/mips.h:560
+msgid "Don't optimize block moves"
+msgstr ""
+
+#: config/mips/mips.h:562
+msgid "Optimize block moves"
+msgstr ""
+
+#: config/mips/mips.h:564
+msgid "Use mips-tfile asm postpass"
+msgstr ""
+
+#: config/mips/mips.h:566
+msgid "Don't use mips-tfile asm postpass"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each triplet being { "NAME", VALUE, DOC }
+#. where VALUE is the bits to set or minus the bits to clear and DOC
+#. is the documentation for --help (NULL if intentionally undocumented).
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
+msgid "Use hardware floating point"
+msgstr ""
+
+#: config/mips/mips.h:572
+msgid "Use 64-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:574
+msgid "Use 32-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:576
+msgid "Use 64-bit general registers"
+msgstr ""
+
+#: config/mips/mips.h:578
+msgid "Use 32-bit general registers"
+msgstr ""
+
+#: config/mips/mips.h:580
+msgid "Use Irix PIC"
+msgstr ""
+
+#: config/mips/mips.h:582
+msgid "Don't use Irix PIC"
+msgstr ""
+
+#: config/mips/mips.h:584
+msgid "Use indirect calls"
+msgstr ""
+
+#: config/mips/mips.h:586
+msgid "Don't use indirect calls"
+msgstr ""
+
+#: config/mips/mips.h:588
+msgid "Use embedded PIC"
+msgstr ""
+
+#: config/mips/mips.h:590
+msgid "Don't use embedded PIC"
+msgstr ""
+
+#: config/mips/mips.h:592
+msgid "Use ROM instead of RAM"
+msgstr ""
+
+#: config/mips/mips.h:594
+msgid "Don't use ROM instead of RAM"
+msgstr ""
+
+#: config/mips/mips.h:596
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr ""
+
+#: config/mips/mips.h:598
+msgid "Don't put uninitialized constants in ROM"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
+msgid "Use big-endian byte order"
+msgstr ""
+
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
+msgid "Use little-endian byte order"
+msgstr ""
+
+#: config/mips/mips.h:604
+msgid "Use single (32-bit) FP only"
+msgstr ""
+
+#: config/mips/mips.h:606
+msgid "Don't use single (32-bit) FP only"
+msgstr ""
+
+#: config/mips/mips.h:608
+msgid "Use multiply accumulate"
+msgstr ""
+
+#: config/mips/mips.h:610
+msgid "Don't use multiply accumulate"
+msgstr ""
+
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+msgid "Don't generate fused multiply/add instructions"
+msgstr ""
+
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+msgid "Generate fused multiply/add instructions"
+msgstr ""
+
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:618
+msgid "Don't work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:620
+msgid "Trap on integer divide by zero"
+msgstr ""
+
+#: config/mips/mips.h:622
+msgid "Don't trap on integer divide by zero"
+msgstr ""
+
+#: config/mips/mips.h:624
+msgid "Trap on integer divide overflow"
+msgstr ""
+
+#: config/mips/mips.h:626
+msgid "Don't trap on integer divide overflow"
+msgstr ""
+
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
+msgid "Specify CPU for scheduling purposes"
+msgstr ""
+
+#: config/mips/mips.h:746
+msgid "Specify CPU for code generation purposes"
+msgstr ""
+
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
+msgid "Specify a Standard MIPS ISA"
+msgstr ""
+
+#: config/mips/mips.h:752
+msgid "Use mips16 entry/exit psuedo ops"
+msgstr ""
+
+#: config/mips/mips.h:754
+msgid "Don't use MIPS16 instructions"
+msgstr ""
+
+#: config/mips/mips.h:756
+msgid "Don't call any cache flush functions"
+msgstr ""
+
+#: config/mips/mips.h:758
+msgid "Specify cache flush function"
+msgstr ""
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2900
+msgid "mips16 function profiling"
+msgstr ""
+
+#: config/mmix/mmix.c:189
+#, c-format
+msgid "-f%s not supported: ignored"
+msgstr ""
+
+#: config/mmix/mmix.c:644
+#, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr ""
+
+#: config/mmix/mmix.c:826
+msgid "function_profiler support for MMIX"
+msgstr ""
+
+#: config/mmix/mmix.c:848
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr ""
+
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:1718
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr ""
+
+#: config/mmix/mmix.c:1737
+msgid "MMIX Internal: Expected a register, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1747
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr ""
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr ""
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr ""
+
+#: config/mmix/mmix.c:1891
+msgid "MMIX Internal: This is not a recognized address"
+msgstr ""
+
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr ""
+
+#: config/mmix/mmix.c:3006
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr ""
+
+#: config/mmix/mmix.c:3013
+msgid "MMIX Internal: What's the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3017
+msgid "MMIX Internal: What is the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3088
+msgid "MMIX Internal: This is not a constant:"
+msgstr ""
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+msgid "Set start-address of the program"
+msgstr ""
+
+#: config/mmix/mmix.h:134
+msgid "Set start-address of data"
+msgstr ""
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr ""
+
+#: config/mmix/mmix.h:201
+msgid "Use register stack for parameters and return value"
+msgstr ""
+
+#: config/mmix/mmix.h:203
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr ""
+
+#: config/mmix/mmix.h:205
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr ""
+
+#: config/mmix/mmix.h:208
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr ""
+
+#: config/mmix/mmix.h:211
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr ""
+
+#: config/mmix/mmix.h:215
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr ""
+
+#: config/mmix/mmix.h:217
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr ""
+
+#: config/mmix/mmix.h:219
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr ""
+
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr ""
+
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr ""
+
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr ""
+
+#: config/mn10300/mn10300.h:59
+msgid "Work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:60
+msgid "Do not work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:61
+msgid "Target the AM33 processor"
+msgstr ""
+
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
+msgstr ""
+
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
+msgid "Don't use hardware fp"
+msgstr ""
+
+#: config/ns32k/ns32k.h:143
+msgid "Alternative calling convention"
+msgstr ""
+
+#: config/ns32k/ns32k.h:145
+msgid "Pass some arguments in registers"
+msgstr ""
+
+#: config/ns32k/ns32k.h:146
+msgid "Pass all arguments on stack"
+msgstr ""
+
+#: config/ns32k/ns32k.h:147
+msgid "Optimize for 32532 cpu"
+msgstr ""
+
+#: config/ns32k/ns32k.h:148
+msgid "Optimize for 32332 cpu"
+msgstr ""
+
+#: config/ns32k/ns32k.h:150
+msgid "Optimize for 32032"
+msgstr ""
+
+#: config/ns32k/ns32k.h:152
+msgid "Register sb is zero. Use for absolute addressing"
+msgstr ""
+
+#: config/ns32k/ns32k.h:153
+msgid "Do not use register sb"
+msgstr ""
+
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:158
+msgid "Generate code for high memory"
+msgstr ""
+
+#: config/ns32k/ns32k.h:159
+msgid "Generate code for low memory"
+msgstr ""
+
+#: config/ns32k/ns32k.h:160
+msgid "32381 fpu"
+msgstr ""
+
+#: config/ns32k/ns32k.h:162
+msgid "Use multiply-accumulate fp instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:164
+msgid "Do not use multiply-accumulate fp instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:165
+msgid "\"Small register classes\" kludge"
+msgstr ""
+
+#: config/ns32k/ns32k.h:166
+msgid "No \"Small register classes\" kludge"
+msgstr ""
+
+#: config/pa/pa.c:261
+#, c-format
+msgid ""
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+msgstr ""
+
+#: config/pa/pa.c:286
+#, c-format
+msgid ""
+"unknown -march= option (%s).\n"
+"Valid options are 1.0, 1.1, and 2.0\n"
+msgstr ""
+
+#: config/pa/pa.c:299
+msgid "PIC code generation is not supported in the portable runtime model\n"
+msgstr ""
+
+#: config/pa/pa.c:304
+msgid "PIC code generation is not compatible with fast indirect calls\n"
+msgstr ""
+
+#: config/pa/pa.c:309
+msgid "-g is only supported when using GAS on this processor,"
+msgstr ""
+
+#: config/pa/pa.c:310
+msgid "-g option disabled"
+msgstr ""
+
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr ""
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr ""
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr ""
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr ""
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr ""
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr ""
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr ""
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr ""
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
+msgid "Do not use hardware floating point"
+msgstr ""
+
+#. return float result in ac0
+#: config/pdp11/pdp11.h:59
+msgid "Return floating point results in ac0"
+msgstr ""
+
+#: config/pdp11/pdp11.h:60
+msgid "Return floating point results in memory"
+msgstr ""
+
+#. is 11/40
+#: config/pdp11/pdp11.h:62
+msgid "Generate code for an 11/40"
+msgstr ""
+
+#. is 11/45
+#: config/pdp11/pdp11.h:65
+msgid "Generate code for an 11/45"
+msgstr ""
+
+#. is 11/10
+#: config/pdp11/pdp11.h:68
+msgid "Generate code for an 11/10"
+msgstr ""
+
+#. use movstrhi for bcopy
+#. use 32 bit for int
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
+msgid "Use 32 bit int"
+msgstr ""
+
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
+msgid "Use 16 bit int"
+msgstr ""
+
+#. use 32 bit for float
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
+msgid "Use 32 bit float"
+msgstr ""
+
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
+msgid "Use 64 bit float"
+msgstr ""
+
+#. allow abshi pattern? - can trigger "optimizations" which make code SLOW!
+#. is branching expensive - on a PDP, it's actually really cheap
+#. this is just to play around and check what code gcc generates
+#. split instruction and data memory?
+#: config/pdp11/pdp11.h:90
+msgid "Target has split I&D"
+msgstr ""
+
+#: config/pdp11/pdp11.h:91
+msgid "Target does not have split I&D"
+msgstr ""
+
+#. UNIX assembler syntax?
+#: config/pdp11/pdp11.h:93
+msgid "Use UNIX assembler syntax"
+msgstr ""
+
+#: config/pdp11/pdp11.h:94
+msgid "Use DEC assembler syntax"
+msgstr ""
+
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
+#, c-format
+msgid "invalid %%S value"
+msgstr ""
+
+#: config/romp/romp.c:726 config/romp/romp.c:733
+#, c-format
+msgid "invalid %%b value"
+msgstr ""
+
+#: config/romp/romp.c:773 config/romp/romp.c:784
+#, c-format
+msgid "invalid %%z value"
+msgstr ""
+
+#: config/romp/romp.c:792 config/romp/romp.c:800
+#, c-format
+msgid "invalid %%Z value"
+msgstr ""
+
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
+#, c-format
+msgid "invalid %%k value"
+msgstr ""
+
+#: config/romp/romp.c:908 config/romp/romp.c:951
+#, c-format
+msgid "invalid %%j value"
+msgstr ""
+
+#. Perform any needed actions needed for a function that is receiving a
+#. variable number of arguments.
+#.
+#. CUM is as above.
+#.
+#. MODE and TYPE are the mode and type of the current parameter.
+#.
+#. PRETEND_SIZE is a variable that should be set to the amount of stack
+#. that must be pushed by the prolog to pretend that our caller pushed
+#. it.
+#.
+#. Normally, this macro will push all remaining incoming registers on the
+#. stack and set PRETEND_SIZE to the length of the registers pushed.
+#: config/romp/romp.h:648
+msgid "can't have varargs with -mfp-arg-in-fp-regs"
+msgstr ""
+
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000.c:592
+msgid "-mmultiple is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:599
+msgid "-mstring is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.c:623
+#, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr ""
+
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:646
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr ""
+
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:772
+#, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4356
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4410
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4666
+#, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:5013
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr ""
+
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7511
+#, c-format
+msgid "invalid %%f value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7520
+#, c-format
+msgid "invalid %%F value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7529
+#, c-format
+msgid "invalid %%G value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7564
+#, c-format
+msgid "invalid %%j code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7574
+#, c-format
+msgid "invalid %%J code"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7604
+#, c-format
+msgid "invalid %%K value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7671
+#, c-format
+msgid "invalid %%O value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7793
+#, c-format
+msgid "invalid %%T value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7803
+#, c-format
+msgid "invalid %%u value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7812
+#, c-format
+msgid "invalid %%v value"
+msgstr ""
+
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
+msgstr ""
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
+msgstr ""
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr ""
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr ""
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr ""
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr ""
+
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/rs6000/rs6000.h:240
+msgid "Use POWER instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:243
+msgid "Use POWER2 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:245
+msgid "Do not use POWER2 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:248
+msgid "Do not use POWER instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:250
+msgid "Use PowerPC instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:253
+msgid "Do not use PowerPC instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:255
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:257
+msgid "Don't use PowerPC General Purpose group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:259
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:261
+msgid "Don't use PowerPC Graphics group optional instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:263
+msgid "Use PowerPC-64 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:265
+msgid "Don't use PowerPC-64 instruction set"
+msgstr ""
+
+#: config/rs6000/rs6000.h:267
+msgid "Use AltiVec instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:269
+msgid "Don't use AltiVec instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:271
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr ""
+
+#: config/rs6000/rs6000.h:273
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr ""
+
+#: config/rs6000/rs6000.h:276
+msgid "Put everything in the regular TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:278
+msgid "Place floating point constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:280
+msgid "Don't place floating point constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:282
+msgid "Place symbol+offset constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:284
+msgid "Don't place symbol+offset constants in TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:290
+msgid "Place variable addresses in the regular TOC"
+msgstr ""
+
+#: config/rs6000/rs6000.h:296
+msgid "Generate load/store multiple instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:298
+msgid "Do not generate load/store multiple instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:302
+msgid "Generate string instructions for block moves"
+msgstr ""
+
+#: config/rs6000/rs6000.h:304
+msgid "Do not generate string instructions for block moves"
+msgstr ""
+
+#: config/rs6000/rs6000.h:308
+msgid "Generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:310
+msgid "Do not generate load/store with update instructions"
+msgstr ""
+
+#: config/rs6000/rs6000.h:318
+msgid "Don't schedule the start and end of the procedure"
+msgstr ""
+
+#: config/rs6000/rs6000.h:324
+msgid "Return all structures in memory (AIX default)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:326
+msgid "Return small structures in registers (SVR4 default)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
+msgid "Use features of and schedule code for given CPU"
+msgstr ""
+
+#: config/rs6000/rs6000.h:394
+msgid "Enable debug output"
+msgstr ""
+
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
+msgid "Specify ABI to use"
+msgstr ""
+
+#: config/rs6000/rs6000.h:399
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
+#. Definitions for __builtin_return_address and __builtin_frame_address.
+#. __builtin_return_address (0) should give link register (65), enable
+#. this.
+#. This should be uncommented, so that the link register is used, but
+#. currently this would result in unmatched insns and spilling fixed
+#. registers so we'll leave it for another day. When these problems are
+#. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
+#. (mrs)
+#. #define RETURN_ADDR_IN_PREVIOUS_FRAME
+#. Number of bytes into the frame return addresses can be found. See
+#. rs6000_stack_info in rs6000.c for more information on how the different
+#. abi's store the return address.
+#: config/rs6000/rs6000.h:1884
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr ""
+
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
+msgstr ""
+
+#: config/rs6000/sysv4.h:88
+msgid "Select method for sdata handling"
+msgstr ""
+
+#: config/rs6000/sysv4.h:103
+msgid "Align to the base type of the bit-field"
+msgstr ""
+
+#: config/rs6000/sysv4.h:105
+msgid "Don't align to the base type of the bit-field"
+msgstr ""
+
+#: config/rs6000/sysv4.h:107
+msgid "Don't assume that unaligned accesses are handled by the system"
+msgstr ""
+
+#: config/rs6000/sysv4.h:109
+msgid "Assume that unaligned accesses are handled by the system"
+msgstr ""
+
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+msgid "Produce code relocatable at runtime"
+msgstr ""
+
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+msgid "Don't produce code relocatable at runtime"
+msgstr ""
+
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+msgid "Produce little endian code"
+msgstr ""
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+msgid "Produce big endian code"
+msgstr ""
+
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
+msgid "no description yet"
+msgstr ""
+
+#: config/rs6000/sysv4.h:132
+msgid "Use EABI"
+msgstr ""
+
+#: config/rs6000/sysv4.h:133
+msgid "Don't use EABI"
+msgstr ""
+
+#: config/rs6000/sysv4.h:136
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr ""
+
+#: config/rs6000/sysv4.h:138
+msgid "Use alternate register names"
+msgstr ""
+
+#: config/rs6000/sysv4.h:140
+msgid "Don't use alternate register names"
+msgstr ""
+
+#: config/rs6000/sysv4.h:144
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:146
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:148
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:150
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr ""
+
+#: config/rs6000/sysv4.h:152
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr ""
+
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
+#. Sometimes certain combinations of command options do not make sense
+#. on a particular target machine. You can define a macro
+#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
+#. defined, is executed once just after all the command options have
+#. been parsed.
+#.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control.
+#: config/rs6000/sysv4.h:214
+#, c-format
+msgid "bad value for -mcall-%s"
+msgstr ""
+
+#: config/rs6000/sysv4.h:230
+#, c-format
+msgid "bad value for -msdata=%s"
+msgstr ""
+
+#: config/rs6000/sysv4.h:247
+#, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:255
+#, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:264
+#, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:273
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:279
+#, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:286
+#, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:293
+msgid "-mcall-aixdesc must be big endian"
+msgstr ""
+
+#: config/s390/s390.c:3063
+msgid "invalid UNSPEC as operand (1)"
+msgstr ""
+
+#: config/s390/s390.c:3123
+msgid "invalid UNSPEC as operand (2)"
+msgstr ""
+
+#: config/s390/s390.c:3129
+msgid "UNKNOWN in s390_output_symbolic_const !?"
+msgstr ""
+
+#: config/s390/s390.c:3147
+msgid "Cannot decompose address."
+msgstr ""
+
+#: config/s390/s390.c:3308
+msgid "UNKNOWN in print_operand !?"
+msgstr ""
+
+#: config/s390/s390.c:4961
+msgid "Total size of local variables exceeds architecture limit."
+msgstr ""
+
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr ""
+
+#: config/s390/s390.h:71
+msgid "Don't set backchain (faster, but debug harder"
+msgstr ""
+
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
+msgstr ""
+
+#: config/s390/s390.h:73
+msgid "Don't use bras"
+msgstr ""
+
+#: config/s390/s390.h:74
+msgid "Additional debug prints"
+msgstr ""
+
+#: config/s390/s390.h:75
+msgid "Don't print additional debug prints"
+msgstr ""
+
+#: config/s390/s390.h:76
+msgid "64 bit mode"
+msgstr ""
+
+#: config/s390/s390.h:77
+msgid "31 bit mode"
+msgstr ""
+
+#: config/s390/s390.h:78
+msgid "mvcle use"
+msgstr ""
+
+#: config/s390/s390.h:79
+msgid "mvc&ex"
+msgstr ""
+
+#: config/sh/sh.c:5137
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr ""
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr ""
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr ""
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr ""
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+msgid "Profiling is not supported on this target."
+msgstr ""
+
+#: config/sparc/sparc.c:329
+#, c-format
+msgid "%s is not supported by this configuration"
+msgstr ""
+
+#: config/sparc/sparc.c:336
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr ""
+
+#: config/sparc/sparc.c:361
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr ""
+
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, c-format
+msgid "invalid %%Y operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6417
+#, c-format
+msgid "invalid %%A operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6427
+#, c-format
+msgid "invalid %%B operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6466
+#, c-format
+msgid "invalid %%c operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6467
+#, c-format
+msgid "invalid %%C operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6488
+#, c-format
+msgid "invalid %%d operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6489
+#, c-format
+msgid "invalid %%D operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6505
+#, c-format
+msgid "invalid %%f operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6519
+#, c-format
+msgid "invalid %%s operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6573
+msgid "long long constant not a valid immediate operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6576
+msgid "floating point constant not a valid immediate operand"
+msgstr ""
+
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr ""
+
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr ""
+
+#: config/sparc/sparc.h:532
+msgid "Assume possible double misalignment"
+msgstr ""
+
+#: config/sparc/sparc.h:534
+msgid "Assume all doubles are aligned"
+msgstr ""
+
+#: config/sparc/sparc.h:536
+msgid "Pass -assert pure-text to linker"
+msgstr ""
+
+#: config/sparc/sparc.h:538
+msgid "Do not pass -assert pure-text to linker"
+msgstr ""
+
+#: config/sparc/sparc.h:540
+msgid "Use flat register window model"
+msgstr ""
+
+#: config/sparc/sparc.h:542
+msgid "Do not use flat register window model"
+msgstr ""
+
+#: config/sparc/sparc.h:544
+msgid "Use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:546
+msgid "Do not use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:548
+msgid "Use hardware quad fp instructions"
+msgstr ""
+
+#: config/sparc/sparc.h:550
+msgid "Do not use hardware quad fp instructions"
+msgstr ""
+
+#: config/sparc/sparc.h:552
+msgid "Compile for v8plus ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:554
+msgid "Do not compile for v8plus ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:556
+msgid "Utilize Visual Instruction Set"
+msgstr ""
+
+#: config/sparc/sparc.h:558
+msgid "Do not utilize Visual Instruction Set"
+msgstr ""
+
+#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
+#: config/sparc/sparc.h:561
+msgid "Optimize for Cypress processors"
+msgstr ""
+
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
+msgstr ""
+
+#: config/sparc/sparc.h:565
+msgid "Optimize for F930 processors"
+msgstr ""
+
+#: config/sparc/sparc.h:567
+msgid "Optimize for F934 processors"
+msgstr ""
+
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr ""
+
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
+msgstr ""
+
+#. End of deprecated options.
+#: config/sparc/sparc.h:574
+msgid "Pointers are 64-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:576
+msgid "Pointers are 32-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:578
+msgid "Use 32-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:580
+msgid "Use 64-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:582
+msgid "Use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:584
+msgid "Do not use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:586
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr ""
+
+#: config/sparc/sparc.h:588
+msgid "Do not use structs on stronger alignment for double-word copies"
+msgstr ""
+
+#: config/sparc/sparc.h:590
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr ""
+
+#: config/sparc/sparc.h:592
+msgid "Do not optimize tail call instructions in assembler or linker"
+msgstr ""
+
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1192
+msgid "cannot use va_start in interrupt function"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1552
+msgid "`B' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1558
+msgid "`B' operand has multiple bits set"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1585
+msgid "`o' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1600
+msgid "xstormy16_print_operand: unknown code"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1650
+#, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr ""
+
+#: config/v850/v850-c.c:67
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.c:69
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.c:94
+msgid "cannot set interrupt attribute: no current function"
+msgstr ""
+
+#: config/v850/v850-c.c:102
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr ""
+
+#: config/v850/v850-c.c:148
+msgid "junk at end of #pragma ghs section"
+msgstr ""
+
+#: config/v850/v850-c.c:165
+#, c-format
+msgid "unrecognized section name \"%s\""
+msgstr ""
+
+#: config/v850/v850-c.c:180
+msgid "malformed #pragma ghs section"
+msgstr ""
+
+#: config/v850/v850-c.c:200
+msgid "junk at end of #pragma ghs interrupt"
+msgstr ""
+
+#: config/v850/v850-c.c:212
+msgid "junk at end of #pragma ghs starttda"
+msgstr ""
+
+#: config/v850/v850-c.c:224
+msgid "junk at end of #pragma ghs startsda"
+msgstr ""
+
+#: config/v850/v850-c.c:236
+msgid "junk at end of #pragma ghs startzda"
+msgstr ""
+
+#: config/v850/v850-c.c:248
+msgid "junk at end of #pragma ghs endtda"
+msgstr ""
+
+#: config/v850/v850-c.c:260
+msgid "junk at end of #pragma ghs endsda"
+msgstr ""
+
+#: config/v850/v850-c.c:272
+msgid "junk at end of #pragma ghs endzda"
+msgstr ""
+
+#: config/v850/v850.c:129
+#, c-format
+msgid "%s=%s is not numeric"
+msgstr ""
+
+#: config/v850/v850.c:136
+#, c-format
+msgid "%s=%s is too large"
+msgstr ""
+
+#: config/v850/v850.c:302
+msgid "const_double_split got a bad insn:"
+msgstr ""
+
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr ""
+
+#: config/v850/v850.c:2217
+msgid "a data area attribute cannot be specified for local variables"
+msgstr ""
+
+#: config/v850/v850.c:2228
+#, c-format
+msgid "data area of '%s' conflicts with previous declaration"
+msgstr ""
+
+#: config/v850/v850.c:2447
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
+#, c-format
+msgid "bad amount of stack space removal: %d"
+msgstr ""
+
+#: config/v850/v850.c:2646
+#, c-format
+msgid "bogus JARL construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
+msgstr ""
+
+#: config/v850/v850.h:161
+msgid "Prohibit PC relative function calls"
+msgstr ""
+
+#: config/v850/v850.h:164
+msgid "Reuse r30 on a per function basis"
+msgstr ""
+
+#: config/v850/v850.h:167
+msgid "Use stubs for function prologues"
+msgstr ""
+
+#: config/v850/v850.h:170
+msgid "Same as: -mep -mprolog-function"
+msgstr ""
+
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
+msgstr ""
+
+#: config/v850/v850.h:173
+msgid "Compile for the v850 processor"
+msgstr ""
+
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr ""
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr ""
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr ""
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr ""
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr ""
+
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
+msgstr ""
+
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
+msgstr ""
+
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
+msgstr ""
+
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
+msgstr ""
+
+#: config/xtensa/xtensa.c:1991
+msgid "invalid mask"
+msgstr ""
+
+#: config/xtensa/xtensa.c:2038
+msgid "invalid address"
+msgstr ""
+
+#: config/xtensa/xtensa.c:2063
+msgid "no register in address"
+msgstr ""
+
+#: config/xtensa/xtensa.c:2071
+msgid "address offset not a constant"
+msgstr ""
+
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:148
+msgid "Do not use the Xtensa boolean register option"
+msgstr ""
+
+#: config/xtensa/xtensa.h:150
+msgid "Use the Xtensa floating-point unit"
+msgstr ""
+
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
+msgstr ""
+
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr ""
+
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
+msgstr ""
+
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr ""
+
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
+msgstr ""
+
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
+msgstr ""
+
+#: cp/call.c:261 cp/init.c:1594
+msgid "qualified type `%T' does not match destructor name `~%T'"
+msgstr ""
+
+#: cp/call.c:270
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+msgstr ""
+
+#: cp/call.c:279
+msgid "`%D' is a namespace"
+msgstr ""
+
+#: cp/call.c:287
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:369
+msgid "unable to call pointer to member function here"
+msgstr ""
+
+#: cp/call.c:518
+msgid "destructors take no parameters"
+msgstr ""
+
+#: cp/call.c:522
+msgid "destructor name `~%T' does not match type `%T' of expression"
+msgstr ""
+
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr ""
+
+#: cp/call.c:2537
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2542
+msgid "%s %D(%T, %T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2546
+msgid "%s %D(%T) <built-in>"
+msgstr ""
+
+#: cp/call.c:2550
+msgid "%s %T <conversion>"
+msgstr ""
+
+#: cp/call.c:2552
+msgid "%s %+#D%s"
+msgstr ""
+
+#: cp/call.c:2726
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr ""
+
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "»%s« ist kein gültiger Klassenname"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr ""
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr ""
+
+#: cp/call.c:2933
+msgid "no matching function for call to `%D(%A)'"
+msgstr ""
+
+#: cp/call.c:2944 cp/call.c:5087
+msgid "call of overloaded `%D(%A)' is ambiguous"
+msgstr ""
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
+#, c-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr ""
+
+#: cp/call.c:3036
+msgid "no match for call to `(%T) (%A)'"
+msgstr ""
+
+#: cp/call.c:3046
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr ""
+
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
+
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr ""
+
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr ""
+
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
+
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr ""
+
+#: cp/call.c:3191
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr ""
+
+#: cp/call.c:3250
+#, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
+msgstr ""
+
+#: cp/call.c:3283 cp/call.c:3475
+msgid "operands to ?: have different types"
+msgstr ""
+
+#: cp/call.c:3428
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr ""
+
+#: cp/call.c:3435
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr ""
+
+#: cp/call.c:3516
+msgid "`%D' must be declared before use"
+msgstr ""
+
+#: cp/call.c:3706
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+msgstr ""
+
+#: cp/call.c:3753
+msgid "using synthesized `%#D' for copy assignment"
+msgstr ""
+
+#: cp/call.c:3755
+msgid " where cfront would use `%#D'"
+msgstr ""
+
+#: cp/call.c:3782
+msgid "comparison between `%#T' and `%#T'"
+msgstr ""
+
+#: cp/call.c:4021
+msgid "no suitable `operator delete' for `%T'"
+msgstr ""
+
+#: cp/call.c:4040
+msgid "`%+#D' is private"
+msgstr ""
+
+#: cp/call.c:4042
+msgid "`%+#D' is protected"
+msgstr ""
+
+#: cp/call.c:4044
+msgid "`%+#D' is inaccessible"
+msgstr ""
+
+#: cp/call.c:4045
+msgid "within this context"
+msgstr ""
+
+#: cp/call.c:4088
+msgid "invalid conversion from `%T' to `%T'"
+msgstr ""
+
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+msgid " initializing argument %P of `%D'"
+msgstr ""
+
+#: cp/call.c:4152 cp/call.c:4156
+msgid " initializing argument %P of `%D' from result of `%D'"
+msgstr ""
+
+#: cp/call.c:4162 cp/call.c:4165
+msgid " initializing temporary from result of `%D'"
+msgstr ""
+
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr ""
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
+msgstr ""
+
+#: cp/call.c:4523
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr ""
+
+#: cp/call.c:4542
+msgid "`%T' is not an accessible base of `%T'"
+msgstr ""
+
+#: cp/call.c:4786
+msgid "could not find class$ field in java interface type `%T'"
+msgstr ""
+
+#: cp/call.c:4974
+msgid "call to non-function `%D'"
+msgstr ""
+
+#: cp/call.c:5076
+msgid "no matching function for call to `%T::%D(%A)%#V'"
+msgstr ""
+
+#: cp/call.c:5106
+msgid "cannot call member function `%D' without object"
+msgstr ""
+
+#: cp/call.c:5704
+msgid "passing `%T' chooses `%T' over `%T'"
+msgstr ""
+
+#: cp/call.c:5706 cp/decl2.c:4154
+msgid " in call to `%D'"
+msgstr ""
+
+#: cp/call.c:5755
+msgid "choosing `%D' over `%D'"
+msgstr ""
+
+#: cp/call.c:5756
+msgid " for conversion from `%T' to `%T'"
+msgstr ""
+
+#: cp/call.c:5758
+msgid " because conversion sequence for the argument is better"
+msgstr ""
+
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr ""
+
+#: cp/call.c:5996
+msgid "could not convert `%E' to `%T'"
+msgstr ""
+
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr ""
+
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr ""
+
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr ""
+
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr ""
+
+#: cp/class.c:1076
+msgid "duplicate enum value `%D'"
+msgstr ""
+
+#: cp/class.c:1079
+msgid "duplicate field `%D' (as enum and non-enum)"
+msgstr ""
+
+#: cp/class.c:1086
+msgid "duplicate nested type `%D'"
+msgstr ""
+
+#: cp/class.c:1097
+msgid "duplicate field `%D' (as type and non-type)"
+msgstr ""
+
+#: cp/class.c:1101
+msgid "duplicate member `%D'"
+msgstr ""
+
+#: cp/class.c:1144
+msgid "conflicting access specifications for method `%D', ignored"
+msgstr ""
+
+#: cp/class.c:1146
+#, c-format
+msgid "conflicting access specifications for field `%s', ignored"
+msgstr ""
+
+#: cp/class.c:1194
+msgid "`%D' names constructor"
+msgstr ""
+
+#: cp/class.c:1199
+msgid "`%D' invalid in `%T'"
+msgstr ""
+
+#: cp/class.c:1207
+msgid "no members matching `%D' in `%#T'"
+msgstr ""
+
+#: cp/class.c:1239 cp/class.c:1247
+msgid "`%D' invalid in `%#T'"
+msgstr ""
+
+#: cp/class.c:1240
+msgid " because of local method `%#D' with same name"
+msgstr ""
+
+#: cp/class.c:1248
+msgid " because of local member `%#D' with same name"
+msgstr ""
+
+#: cp/class.c:1320
+msgid "base class `%#T' has a non-virtual destructor"
+msgstr ""
+
+#: cp/class.c:1340
+msgid "base `%T' with only non-default constructor in class without a constructor"
+msgstr ""
+
+#: cp/class.c:1912
+msgid "all member functions in class `%T' are private"
+msgstr ""
+
+#: cp/class.c:1926
+msgid "`%#T' only defines a private destructor and has no friends"
+msgstr ""
+
+#: cp/class.c:1969
+msgid "`%#T' only defines private constructors and has no friends"
+msgstr ""
+
+#: cp/class.c:2090 cp/class.c:5276
+msgid "redefinition of `%#T'"
+msgstr ""
+
+#: cp/class.c:2091
+msgid "previous definition of `%#T'"
+msgstr ""
+
+#: cp/class.c:2365
+msgid "no unique final overrider for `%D' in `%T'"
+msgstr ""
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+msgid "`%D' was hidden"
+msgstr ""
+
+#: cp/class.c:2713
+msgid " by `%D'"
+msgstr ""
+
+#: cp/class.c:2755
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/class.c:2760 cp/decl2.c:1331
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+msgstr ""
+
+#: cp/class.c:2766 cp/decl2.c:1337
+msgid "private member `%#D' in anonymous union"
+msgstr ""
+
+#: cp/class.c:2769 cp/decl2.c:1339
+msgid "protected member `%#D' in anonymous union"
+msgstr ""
+
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
+msgid "bit-field `%#D' with non-integral type"
+msgstr ""
+
+#: cp/class.c:2978
+msgid "bit-field `%D' width not an integer constant"
+msgstr ""
+
+#: cp/class.c:2984
+msgid "negative width in bit-field `%D'"
+msgstr ""
+
+#: cp/class.c:2989
+msgid "zero width for bit-field `%D'"
+msgstr ""
+
+#: cp/class.c:2995
+msgid "width of `%D' exceeds its type"
+msgstr ""
+
+#: cp/class.c:3004
+msgid "`%D' is too small to hold all values of `%#T'"
+msgstr ""
+
+#: cp/class.c:3088
+msgid "member `%#D' with constructor not allowed in union"
+msgstr ""
+
+#: cp/class.c:3091
+msgid "member `%#D' with destructor not allowed in union"
+msgstr ""
+
+#: cp/class.c:3094
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr ""
+
+#: cp/class.c:3121
+msgid "multiple fields in union `%T' initialized"
+msgstr ""
+
+#: cp/class.c:3234
+msgid "field `%D' in local class cannot be static"
+msgstr ""
+
+#: cp/class.c:3240
+msgid "field `%D' invalidly declared function type"
+msgstr ""
+
+#: cp/class.c:3247
+msgid "field `%D' invalidly declared method type"
+msgstr ""
+
+#: cp/class.c:3253
+msgid "field `%D' invalidly declared offset type"
+msgstr ""
+
+#. Unions cannot have static members.
+#: cp/class.c:3271
+msgid "field `%D' declared static in union"
+msgstr ""
+
+#: cp/class.c:3298
+msgid "non-static reference `%#D' in class without a constructor"
+msgstr ""
+
+#: cp/class.c:3333
+msgid "non-static const member `%#D' in class without a constructor"
+msgstr ""
+
+#: cp/class.c:3349
+msgid "field `%#D' with same name as class"
+msgstr ""
+
+#: cp/class.c:3367
+msgid "`%#T' has pointer data members"
+msgstr ""
+
+#: cp/class.c:3371
+msgid " but does not override `%T(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3373
+msgid " or `operator=(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3376
+msgid " but does not override `operator=(const %T&)'"
+msgstr ""
+
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
+msgid "initializer specified for non-virtual method `%D'"
+msgstr ""
+
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4861
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
+msgid "`%#T' has virtual functions but non-virtual destructor"
+msgstr ""
+
+#: cp/class.c:5516
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr ""
+
+#: cp/class.c:5982
+#, c-format
+msgid "language string `\"%s\"' not recognized"
+msgstr ""
+
+#: cp/class.c:6078
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr ""
+
+#: cp/class.c:6203
+msgid "no matches converting function `%D' to type `%#T'"
+msgstr ""
+
+#: cp/class.c:6226
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+msgstr ""
+
+#: cp/class.c:6252
+msgid "assuming pointer to member `%D'"
+msgstr ""
+
+#: cp/class.c:6255
+#, c-format
+msgid "(a pointer to member can only be formed with `&%E')"
+msgstr ""
+
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
+msgid "not enough type information"
+msgstr ""
+
+#: cp/class.c:6315
+msgid "argument of type `%T' does not match `%T'"
+msgstr ""
+
+#: cp/class.c:6461
+msgid "invalid operation on uninstantiated type"
+msgstr ""
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+msgid "declaration of `%#D'"
+msgstr ""
+
+#: cp/class.c:6746
+msgid "changes meaning of `%D' from `%+#D'"
+msgstr ""
+
+#: cp/cvt.c:88
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr ""
+
+#: cp/cvt.c:97
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+msgstr ""
+
+#: cp/cvt.c:126
+msgid "converting from `%T' to `%T'"
+msgstr ""
+
+#: cp/cvt.c:203 cp/cvt.c:207
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+msgstr ""
+
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr ""
+
+#: cp/cvt.c:504
+msgid "conversion from `%T' to `%T' discards qualifiers"
+msgstr ""
+
+#: cp/cvt.c:522
+msgid "casting `%T' to `%T' does not dereference pointer"
+msgstr ""
+
+#: cp/cvt.c:551
+msgid "cannot convert type `%T' to type `%T'"
+msgstr ""
+
+#: cp/cvt.c:683
+msgid "conversion from `%#T' to `%#T'"
+msgstr ""
+
+#: cp/cvt.c:695
+msgid "`%#T' used where a `%T' was expected"
+msgstr ""
+
+#: cp/cvt.c:712
+msgid "the address of `%D', will always be `true'"
+msgstr ""
+
+#: cp/cvt.c:732
+msgid "`%#T' used where a floating point value was expected"
+msgstr ""
+
+#: cp/cvt.c:779
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr ""
+
+#: cp/cvt.c:865
+msgid "object of incomplete type `%T' will not be accessed in %s"
+msgstr ""
+
+#: cp/cvt.c:868
+msgid "object of type `%T' will not be accessed in %s"
+msgstr ""
+
+#: cp/cvt.c:884
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+msgstr ""
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr ""
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
+#, c-format
+msgid "%s is a reference, not call, to function `%E'"
+msgstr ""
+
+#: cp/cvt.c:1039
+msgid "converting NULL to non-pointer type"
+msgstr ""
+
+#: cp/cvt.c:1115
+msgid "ambiguous default type conversion from `%T'"
+msgstr ""
+
+#: cp/cvt.c:1117
+msgid " candidate conversions include `%D' and `%D'"
+msgstr ""
+
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
+msgid "conflicts with previous declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:1467
+msgid "label `%D' used but not defined"
+msgstr ""
+
+#: cp/decl.c:1472
+msgid "label `%D' defined but not used"
+msgstr ""
+
+#: cp/decl.c:2489
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
+msgstr ""
+
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
+msgid "previous declaration of `%D'"
+msgstr ""
+
+#: cp/decl.c:3366 cp/decl.c:3404
+msgid "shadowing %s function `%#D'"
+msgstr ""
+
+#: cp/decl.c:3375
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr ""
+
+#: cp/decl.c:3380
+msgid "conflicts with built-in declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+msgid "new declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:3400
+msgid "ambiguates built-in declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:3464
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr ""
+
+#: cp/decl.c:3467
+msgid "previous declaration of `%#D'"
+msgstr ""
+
+#: cp/decl.c:3489
+msgid "declaration of template `%#D'"
+msgstr ""
+
+#: cp/decl.c:3505 cp/decl.c:3521
+msgid "ambiguates old declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:3513
+msgid "declaration of C function `%#D' conflicts with"
+msgstr ""
+
+#: cp/decl.c:3515
+msgid "previous declaration `%#D' here"
+msgstr ""
+
+#: cp/decl.c:3533
+msgid "conflicting types for `%#D'"
+msgstr ""
+
+#: cp/decl.c:3534
+msgid "previous declaration as `%#D'"
+msgstr ""
+
+#: cp/decl.c:3577
+msgid "`%#D' previously defined here"
+msgstr ""
+
+#: cp/decl.c:3578
+msgid "`%#D' previously declared here"
+msgstr ""
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+msgid "prototype for `%#D'"
+msgstr ""
+
+#: cp/decl.c:3588
+msgid "follows non-prototype definition here"
+msgstr ""
+
+#: cp/decl.c:3600
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr ""
+
+#: cp/decl.c:3602
+msgid "conflicts with new declaration with %L linkage"
+msgstr ""
+
+#: cp/decl.c:3625 cp/decl.c:3632
+msgid "default argument given for parameter %d of `%#D'"
+msgstr ""
+
+#: cp/decl.c:3627 cp/decl.c:3634
+msgid "after previous specification in `%#D'"
+msgstr ""
+
+#: cp/decl.c:3643
+msgid "`%#D' was used before it was declared inline"
+msgstr ""
+
+#: cp/decl.c:3645
+msgid "previous non-inline declaration here"
+msgstr ""
+
+#: cp/decl.c:3699
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr ""
+
+#: cp/decl.c:3780
+#, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr ""
+
+#: cp/decl.c:3782
+#, c-format
+msgid "than previous declaration `%F'"
+msgstr ""
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+msgid "explicit specialization of %D after first use"
+msgstr ""
+
+#: cp/decl.c:4187
+msgid "`%#D' used prior to declaration"
+msgstr ""
+
+#: cp/decl.c:4218
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr ""
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+msgid "invalid redeclaration of `%D'"
+msgstr ""
+
+#: cp/decl.c:4247
+msgid "as `%D'"
+msgstr ""
+
+#: cp/decl.c:4337
+msgid "previous external decl of `%#D'"
+msgstr ""
+
+#: cp/decl.c:4378
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr ""
+
+#: cp/decl.c:4438
+msgid "extern declaration of `%#D' doesn't match"
+msgstr ""
+
+#: cp/decl.c:4439
+msgid "global declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:4472
+msgid "declaration of `%#D' shadows a parameter"
+msgstr ""
+
+#: cp/decl.c:4492
+#, c-format
+msgid "declaration of `%s' shadows a member of `this'"
+msgstr ""
+
+#: cp/decl.c:4889
+msgid "`%#D' hides constructor for `%#T'"
+msgstr ""
+
+#: cp/decl.c:4904
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:4916
+msgid "previous non-function declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:4917
+msgid "conflicts with function declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:5007
+msgid "implicit declaration of function `%#D'"
+msgstr ""
+
+#: cp/decl.c:5167
+#, c-format
+msgid "label `%s' referenced outside of any function"
+msgstr ""
+
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+msgid "jump to label `%D'"
+msgstr ""
+
+#: cp/decl.c:5272 cp/decl.c:5296
+msgid "jump to case label"
+msgstr ""
+
+#: cp/decl.c:5280
+msgid " crosses initialization of `%#D'"
+msgstr ""
+
+#: cp/decl.c:5283 cp/decl.c:5403
+msgid " enters scope of non-POD `%#D'"
+msgstr ""
+
+#: cp/decl.c:5303 cp/decl.c:5407
+msgid " enters try block"
+msgstr ""
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
+msgid " enters catch block"
+msgstr ""
+
+#: cp/decl.c:5388
+msgid " from here"
+msgstr ""
+
+#: cp/decl.c:5401
+msgid " skips initialization of `%#D'"
+msgstr ""
+
+#: cp/decl.c:5437
+msgid "label named wchar_t"
+msgstr ""
+
+#: cp/decl.c:5440
+msgid "duplicate label `%D'"
+msgstr ""
+
+#: cp/decl.c:5525
+#, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr ""
+
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+msgid "`%#D' redeclared as %C"
+msgstr ""
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+msgid "invalid use of `%D'"
+msgstr ""
+
+#: cp/decl.c:5852
+msgid "`%D::%D' is not a template"
+msgstr ""
+
+#: cp/decl.c:5869
+msgid "`%D' undeclared in namespace `%D'"
+msgstr ""
+
+#: cp/decl.c:6002
+msgid "`%D' used without template parameters"
+msgstr ""
+
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+msgid "no class template named `%#T' in `%#T'"
+msgstr ""
+
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+msgid "no type named `%#T' in `%#T'"
+msgstr ""
+
+#: cp/decl.c:6329
+msgid "lookup of `%D' finds `%#D'"
+msgstr ""
+
+#: cp/decl.c:6331
+msgid " instead of `%D' from dependent base class"
+msgstr ""
+
+#: cp/decl.c:6333
+msgid " (use `typename %T::%D' if that's what you meant)"
+msgstr ""
+
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr ""
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+msgstr ""
+
+#: cp/decl.c:7432
+msgid "an anonymous union cannot have function members"
+msgstr ""
+
+#: cp/decl.c:7449
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7452
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7455
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.c:7493
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr ""
+
+#: cp/decl.c:7529
+msgid "multiple types in one declaration"
+msgstr ""
+
+#: cp/decl.c:7556
+msgid "missing type-name in typedef-declaration"
+msgstr ""
+
+#: cp/decl.c:7563
+msgid "ISO C++ prohibits anonymous structs"
+msgstr ""
+
+#: cp/decl.c:7570
+msgid "`%D' can only be specified for functions"
+msgstr ""
+
+#: cp/decl.c:7572
+msgid "`%D' can only be specified inside a class"
+msgstr ""
+
+#: cp/decl.c:7574
+msgid "`%D' can only be specified for constructors"
+msgstr ""
+
+#: cp/decl.c:7577
+msgid "`%D' can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr ""
+
+#: cp/decl.c:7724
+msgid "function `%#D' is initialized like a variable"
+msgstr ""
+
+#: cp/decl.c:7736
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr ""
+
+#: cp/decl.c:7770
+msgid "`%#D' is not a static member of `%#T'"
+msgstr ""
+
+#: cp/decl.c:7775
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr ""
+
+#: cp/decl.c:7786
+msgid "duplicate initialization of %D"
+msgstr ""
+
+#: cp/decl.c:7815
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr ""
+
+#: cp/decl.c:7865
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr ""
+
+#: cp/decl.c:7873 cp/decl.c:8432
+msgid "elements of array `%#D' have incomplete type"
+msgstr ""
+
+#: cp/decl.c:7889
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr ""
+
+#: cp/decl.c:7931
+msgid "`%D' declared as reference but not initialized"
+msgstr ""
+
+#: cp/decl.c:7940
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr ""
+
+#: cp/decl.c:7970
+msgid "cannot initialize `%T' from `%T'"
+msgstr ""
+
+#: cp/decl.c:8004
+msgid "initializer fails to determine size of `%D'"
+msgstr ""
+
+#: cp/decl.c:8009
+msgid "array size missing in `%D'"
+msgstr ""
+
+#: cp/decl.c:8021
+msgid "zero-size array `%D'"
+msgstr ""
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+msgid "storage size of `%D' isn't known"
+msgstr ""
+
+#: cp/decl.c:8081
+msgid "storage size of `%D' isn't constant"
+msgstr ""
+
+#: cp/decl.c:8137
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+msgstr ""
+
+#: cp/decl.c:8138
+msgid " you can work around this by removing the initializer"
+msgstr ""
+
+#: cp/decl.c:8164
+msgid "uninitialized const `%D'"
+msgstr ""
+
+#: cp/decl.c:8249
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr ""
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr ""
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr ""
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "zu viele Eingabedateien"
+
+#: cp/decl.c:8426
+msgid "variable-sized object `%D' may not be initialized"
+msgstr ""
+
+#: cp/decl.c:8437
+msgid "`%D' has incomplete type"
+msgstr ""
+
+#: cp/decl.c:8486
+msgid "`%D' must be initialized by constructor, not by `{...}'"
+msgstr ""
+
+#: cp/decl.c:8527
+msgid "structure `%D' with uninitialized const members"
+msgstr ""
+
+#: cp/decl.c:8529
+msgid "structure `%D' with uninitialized reference members"
+msgstr ""
+
+#: cp/decl.c:8770
+msgid "assignment (not initialization) in declaration"
+msgstr ""
+
+#: cp/decl.c:8785
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr ""
+
+#: cp/decl.c:8836
+msgid "shadowing previous type declaration of `%#D'"
+msgstr ""
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9298 cp/init.c:562
+msgid "multiple initializations given for `%D'"
+msgstr ""
+
+#: cp/decl.c:9390
+msgid "invalid catch parameter"
+msgstr ""
+
+#: cp/decl.c:9508
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr ""
+
+#: cp/decl.c:9511
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr ""
+
+#: cp/decl.c:9530
+msgid "`%D' declared as a `virtual' %s"
+msgstr ""
+
+#: cp/decl.c:9532
+msgid "`%D' declared as an `inline' %s"
+msgstr ""
+
+#: cp/decl.c:9534
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+msgstr ""
+
+#: cp/decl.c:9537
+msgid "`%D' declared as a friend"
+msgstr ""
+
+#: cp/decl.c:9543
+msgid "`%D' declared with an exception specification"
+msgstr ""
+
+#: cp/decl.c:9618
+msgid "cannot declare `::main' to be a template"
+msgstr ""
+
+#: cp/decl.c:9620
+msgid "cannot declare `::main' to be inline"
+msgstr ""
+
+#: cp/decl.c:9622
+msgid "cannot declare `::main' to be static"
+msgstr ""
+
+#: cp/decl.c:9625
+msgid "`main' must return `int'"
+msgstr ""
+
+#: cp/decl.c:9653
+msgid "non-local function `%#D' uses anonymous type"
+msgstr ""
+
+#: cp/decl.c:9656
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+msgstr ""
+
+#: cp/decl.c:9662
+msgid "non-local function `%#D' uses local type `%T'"
+msgstr ""
+
+#: cp/decl.c:9691
+msgid "%smember function `%D' cannot have `%T' method qualifier"
+msgstr ""
+
+#: cp/decl.c:9715
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr ""
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+msgid "invalid use of template-id `%D' in declaration of primary template"
+msgstr ""
+
+#: cp/decl.c:9753
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+msgstr ""
+
+#: cp/decl.c:9760
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+msgstr ""
+
+#: cp/decl.c:9822
+msgid "definition of implicitly-declared `%D'"
+msgstr ""
+
+#: cp/decl.c:9834 cp/decl2.c:785
+msgid "no `%#D' member function declared in class `%T'"
+msgstr ""
+
+#: cp/decl.c:9967
+msgid "non-local variable `%#D' uses local type `%T'"
+msgstr ""
+
+#: cp/decl.c:10064
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+msgstr ""
+
+#: cp/decl.c:10073
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr ""
+
+#: cp/decl.c:10076
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr ""
+
+#: cp/decl.c:10126
+msgid "size of array `%D' has non-integer type"
+msgstr ""
+
+#: cp/decl.c:10128
+msgid "size of array has non-integer type"
+msgstr ""
+
+#: cp/decl.c:10148
+msgid "size of array `%D' is negative"
+msgstr ""
+
+#: cp/decl.c:10150
+msgid "size of array is negative"
+msgstr ""
+
+#: cp/decl.c:10159
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr ""
+
+#: cp/decl.c:10161
+msgid "ISO C++ forbids zero-size array"
+msgstr ""
+
+#: cp/decl.c:10168
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.c:10171
+msgid "size of array is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.c:10189
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr ""
+
+#: cp/decl.c:10192
+msgid "ISO C++ forbids variable-size array"
+msgstr ""
+
+#: cp/decl.c:10203
+msgid "overflow in array dimension"
+msgstr ""
+
+#: cp/decl.c:10262
+msgid "declaration of `%D' as %s"
+msgstr "Deklaration von »%D« als %s"
+
+#: cp/decl.c:10264
+#, c-format
+msgid "creating %s"
+msgstr "Erzeugen von %s"
+
+#: cp/decl.c:10276
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.c:10279
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.c:10308
+msgid "return type specification for constructor invalid"
+msgstr ""
+
+#: cp/decl.c:10315
+msgid "return type specification for destructor invalid"
+msgstr ""
+
+#: cp/decl.c:10321
+msgid "operator `%T' declared to return `%T'"
+msgstr ""
+
+#: cp/decl.c:10323
+msgid "return type specified for `operator %T'"
+msgstr ""
+
+#: cp/decl.c:10491
+msgid "destructors must be member functions"
+msgstr ""
+
+#: cp/decl.c:10510
+msgid "destructor `%T' must match class name `%T'"
+msgstr ""
+
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
+msgid "invalid declarator"
+msgstr ""
+
+#: cp/decl.c:10617
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr ""
+
+#: cp/decl.c:10674
+msgid "type `%T' is not derived from type `%T'"
+msgstr ""
+
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+msgid "`%T' specified as declarator-id"
+msgstr ""
+
+#: cp/decl.c:10728
+msgid " perhaps you want `%T' for a constructor"
+msgstr ""
+
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr ""
+
+#: cp/decl.c:10770
+msgid "declaration of `%D' as non-function"
+msgstr ""
+
+#: cp/decl.c:10847
+msgid "`bool' is now a keyword"
+msgstr ""
+
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
+msgstr ""
+
+#: cp/decl.c:10865 cp/decl.c:10910
+msgid "multiple declarations `%T' and `%T'"
+msgstr ""
+
+#: cp/decl.c:10878
+msgid "ISO C++ does not support `long long'"
+msgstr ""
+
+#: cp/decl.c:10983 cp/decl.c:10986
+#, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr ""
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+msgid "`%T' is implicitly a typename"
+msgstr ""
+
+#: cp/decl.c:11032
+#, c-format
+msgid "short, signed or unsigned invalid for `%s'"
+msgstr ""
+
+#: cp/decl.c:11037
+#, c-format
+msgid "long and short specified together for `%s'"
+msgstr ""
+
+#: cp/decl.c:11048
+#, c-format
+msgid "signed and unsigned given together for `%s'"
+msgstr ""
+
+#: cp/decl.c:11157
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr ""
+
+#: cp/decl.c:11179
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr ""
+
+#: cp/decl.c:11188
+msgid "`%T::%D' is not a valid declarator"
+msgstr ""
+
+#: cp/decl.c:11200
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr ""
+
+#: cp/decl.c:11204
+msgid "typedef declaration invalid in parameter declaration"
+msgstr ""
+
+#: cp/decl.c:11217
+msgid "virtual outside class declaration"
+msgstr ""
+
+#: cp/decl.c:11278
+#, c-format
+msgid "storage class specified for %s `%s'"
+msgstr ""
+
+#: cp/decl.c:11325
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr ""
+
+#: cp/decl.c:11495
+msgid "destructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.c:11498
+#, c-format
+msgid "destructors may not be `%s'"
+msgstr ""
+
+#: cp/decl.c:11519
+msgid "constructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.c:11522
+msgid "constructors cannot be declared virtual"
+msgstr ""
+
+#: cp/decl.c:11527
+#, c-format
+msgid "constructors may not be `%s'"
+msgstr ""
+
+#: cp/decl.c:11537
+msgid "return value type specifier for constructor ignored"
+msgstr ""
+
+#: cp/decl.c:11556
+#, c-format
+msgid "can't initialize friend function `%s'"
+msgstr ""
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:11560
+msgid "virtual functions cannot be friends"
+msgstr ""
+
+#: cp/decl.c:11565
+msgid "friend declaration not in class definition"
+msgstr ""
+
+#: cp/decl.c:11567
+#, c-format
+msgid "can't define friend function `%s' in a local class definition"
+msgstr ""
+
+#: cp/decl.c:11591
+msgid "destructors may not have parameters"
+msgstr ""
+
+#: cp/decl.c:11622 cp/decl.c:11629
+msgid "cannot declare reference to `%#T'"
+msgstr ""
+
+#: cp/decl.c:11623
+msgid "cannot declare pointer to `%#T'"
+msgstr ""
+
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr ""
+
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
+msgstr ""
+
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
+msgstr ""
+
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
+msgstr ""
+
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:11918
+msgid "only declarations of constructors can be `explicit'"
+msgstr ""
+
+#: cp/decl.c:11926
+#, c-format
+msgid "non-member `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11931
+#, c-format
+msgid "non-object member `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11937
+#, c-format
+msgid "function `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11942
+#, c-format
+msgid "static `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11947
+#, c-format
+msgid "const `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11960
+msgid "template-id `%D' used as a declarator"
+msgstr ""
+
+#: cp/decl.c:11981
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/decl.c:12030
+msgid "typedef name may not be class-qualified"
+msgstr ""
+
+#: cp/decl.c:12038
+msgid "invalid type qualifier for non-member function type"
+msgstr ""
+
+#: cp/decl.c:12101
+msgid "type qualifiers specified for friend class declaration"
+msgstr ""
+
+#: cp/decl.c:12106
+msgid "`inline' specified for friend class declaration"
+msgstr ""
+
+#: cp/decl.c:12114
+msgid "template parameters cannot be friends"
+msgstr ""
+
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr ""
+
+#: cp/decl.c:12120
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
+msgstr ""
+
+#: cp/decl.c:12134
+msgid "trying to make class `%T' a friend of global scope"
+msgstr ""
+
+#: cp/decl.c:12145
+msgid "invalid qualifiers on non-member function type"
+msgstr ""
+
+#: cp/decl.c:12164
+msgid "abstract declarator `%T' used as declaration"
+msgstr ""
+
+#: cp/decl.c:12176
+msgid "unnamed variable or field declared void"
+msgstr ""
+
+#: cp/decl.c:12185
+msgid "variable or field declared void"
+msgstr ""
+
+#: cp/decl.c:12195
+msgid "cannot use `::' in parameter declaration"
+msgstr ""
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+msgid "invalid use of `::'"
+msgstr ""
+
+#: cp/decl.c:12246
+msgid "function `%D' cannot be declared friend"
+msgstr ""
+
+#: cp/decl.c:12258
+msgid "can't make `%D' into a method -- not in a class"
+msgstr ""
+
+#: cp/decl.c:12267
+msgid "function `%D' declared virtual inside a union"
+msgstr ""
+
+#: cp/decl.c:12279
+msgid "`%D' cannot be declared virtual, since it is always static"
+msgstr ""
+
+#: cp/decl.c:12355
+msgid "field `%D' has incomplete type"
+msgstr ""
+
+#: cp/decl.c:12357
+msgid "name `%T' has incomplete type"
+msgstr ""
+
+#: cp/decl.c:12366
+msgid " in instantiation of template `%T'"
+msgstr ""
+
+#: cp/decl.c:12376
+#, c-format
+msgid "`%s' is neither function nor member function; cannot be declared friend"
+msgstr ""
+
+#: cp/decl.c:12387
+msgid "member functions are implicitly friends of their class"
+msgstr ""
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr ""
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
+msgstr ""
+
+#: cp/decl.c:12460
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+msgstr ""
+
+#: cp/decl.c:12501
+#, c-format
+msgid "storage class `auto' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12503
+#, c-format
+msgid "storage class `register' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12516
+#, c-format
+msgid "storage class `static' invalid for function `%s' declared out of global scope"
+msgstr ""
+
+#: cp/decl.c:12518
+#, c-format
+msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+msgstr ""
+
+#: cp/decl.c:12525
+#, c-format
+msgid "virtual non-class function `%s'"
+msgstr ""
+
+#: cp/decl.c:12554
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr ""
+
+#. FIXME need arm citation
+#: cp/decl.c:12560
+msgid "cannot declare static function inside another function"
+msgstr ""
+
+#: cp/decl.c:12588
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr ""
+
+#: cp/decl.c:12594
+msgid "static member `%D' declared `register'"
+msgstr ""
+
+#: cp/decl.c:12599
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
+msgstr ""
+
+#: cp/decl.c:12774
+msgid "default argument for `%#D' has type `%T'"
+msgstr ""
+
+#: cp/decl.c:12777
+msgid "default argument for parameter of type `%T' has type `%T'"
+msgstr ""
+
+#: cp/decl.c:12794
+msgid "default argument `%E' uses local variable `%D'"
+msgstr ""
+
+#: cp/decl.c:12839
+#, c-format
+msgid "invalid string constant `%E'"
+msgstr ""
+
+#: cp/decl.c:12841
+msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+msgstr ""
+
+#: cp/decl.c:12879
+msgid "parameter `%D' invalidly declared method type"
+msgstr ""
+
+#: cp/decl.c:12885
+msgid "parameter `%D' invalidly declared offset type"
+msgstr ""
+
+#: cp/decl.c:12909
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+msgstr ""
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr ""
+
+#: cp/decl.c:13222
+msgid "`%D' must be a nonstatic member function"
+msgstr ""
+
+#: cp/decl.c:13228
+msgid "`%D' must be either a non-static member function or a non-member function"
+msgstr ""
+
+#: cp/decl.c:13245
+msgid "`%D' must have an argument of class or enumerated type"
+msgstr ""
+
+#: cp/decl.c:13277
+#, c-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr ""
+
+#. 13.4.0.3
+#: cp/decl.c:13284
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr ""
+
+#: cp/decl.c:13334
+msgid "postfix `%D' must take `int' as its argument"
+msgstr ""
+
+#: cp/decl.c:13338
+msgid "postfix `%D' must take `int' as its second argument"
+msgstr ""
+
+#: cp/decl.c:13345
+msgid "`%D' must take either zero or one argument"
+msgstr ""
+
+#: cp/decl.c:13347
+msgid "`%D' must take either one or two arguments"
+msgstr ""
+
+#: cp/decl.c:13368
+msgid "prefix `%D' should return `%T'"
+msgstr ""
+
+#: cp/decl.c:13374
+msgid "postfix `%D' should return `%T'"
+msgstr ""
+
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr ""
+
+#: cp/decl.c:13385 cp/decl.c:13393
+msgid "`%D' must take exactly one argument"
+msgstr ""
+
+#: cp/decl.c:13395
+msgid "`%D' must take exactly two arguments"
+msgstr ""
+
+#: cp/decl.c:13403
+msgid "user-defined `%D' always evaluates both arguments"
+msgstr ""
+
+#: cp/decl.c:13417
+msgid "`%D' should return by value"
+msgstr ""
+
+#: cp/decl.c:13429 cp/decl.c:13432
+msgid "`%D' cannot have default arguments"
+msgstr ""
+
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
+msgstr ""
+
+#: cp/decl.c:13481
+msgid "using template type parameter `%T' after `%s'"
+msgstr ""
+
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr ""
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr ""
+
+#: cp/decl.c:13663
+msgid "use of enum `%#D' without previous declaration"
+msgstr ""
+
+#: cp/decl.c:13749
+msgid "derived union `%T' invalid"
+msgstr ""
+
+#: cp/decl.c:13795
+msgid "base type `%T' fails to be a struct or class type"
+msgstr ""
+
+#: cp/decl.c:13805
+msgid "base class `%T' has incomplete type"
+msgstr ""
+
+#: cp/decl.c:13813
+msgid "recursive type `%T' undefined"
+msgstr ""
+
+#: cp/decl.c:13815
+msgid "duplicate base type `%T' invalid"
+msgstr ""
+
+#: cp/decl.c:13926
+msgid "multiple definition of `%#T'"
+msgstr ""
+
+#: cp/decl.c:13927
+msgid "previous definition here"
+msgstr ""
+
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
+msgid "enumerator value for `%D' not integer constant"
+msgstr ""
+
+#: cp/decl.c:14126
+msgid "overflow in enumeration values at `%D'"
+msgstr ""
+
+#: cp/decl.c:14195
+msgid "return type `%#T' is incomplete"
+msgstr ""
+
+#: cp/decl.c:14309
+msgid "semicolon missing after declaration of `%#T'"
+msgstr ""
+
+#: cp/decl.c:14330
+msgid "return type for `main' changed to `int'"
+msgstr ""
+
+#: cp/decl.c:14361
+msgid "`%D' implicitly declared before its definition"
+msgstr ""
+
+#: cp/decl.c:14383 cp/typeck.c:6314
+msgid "`operator=' should return a reference to `*this'"
+msgstr ""
+
+#: cp/decl.c:14643
+msgid "parameter `%D' declared void"
+msgstr ""
+
+#: cp/decl.c:15130
+msgid "`%D' is already defined in class `%T'"
+msgstr ""
+
+#: cp/decl.c:15348
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr ""
+
+#: cp/decl2.c:153
+#, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr ""
+
+#: cp/decl2.c:192
+msgid "template `%#D' instantiated in file without #pragma interface"
+msgstr ""
+
+#: cp/decl2.c:198
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr ""
+
+#: cp/decl2.c:365
+msgid "name missing for member function"
+msgstr ""
+
+#. Something has gone very wrong. Assume we are mistakenly reducing
+#. an expression instead of a declaration.
+#: cp/decl2.c:428
+msgid "parser may be lost: is there a '{' missing somewhere?"
+msgstr ""
+
+#: cp/decl2.c:459 cp/decl2.c:473
+msgid "ambiguous conversion for array subscript"
+msgstr ""
+
+#: cp/decl2.c:467
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr ""
+
+#: cp/decl2.c:515
+msgid "type `%#T' argument given to `delete', expected pointer"
+msgstr ""
+
+#: cp/decl2.c:523
+msgid "anachronistic use of array size in vector delete"
+msgstr ""
+
+#: cp/decl2.c:533
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+msgstr ""
+
+#: cp/decl2.c:540
+msgid "deleting `%T' is undefined"
+msgstr ""
+
+#: cp/decl2.c:548
+msgid "deleting array `%#D'"
+msgstr ""
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+msgid "invalid declaration of member template `%#D' in local class"
+msgstr ""
+
+#: cp/decl2.c:591
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr ""
+
+#: cp/decl2.c:601 cp/pt.c:2745
+msgid "template declaration of `%#D'"
+msgstr ""
+
+#: cp/decl2.c:651
+msgid "Java method '%D' has non-Java return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:660
+msgid "Java method '%D' has non-Java parameter type `%T'"
+msgstr ""
+
+#: cp/decl2.c:746
+msgid "prototype for `%#D' does not match any in class `%T'"
+msgstr ""
+
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr ""
+
+#: cp/decl2.c:836
+msgid "initializer invalid for static member with constructor"
+msgstr ""
+
+#: cp/decl2.c:839
+msgid "(an out of class initialization is required)"
+msgstr ""
+
+#: cp/decl2.c:898
+msgid "invalid data member initialization"
+msgstr ""
+
+#: cp/decl2.c:901
+msgid "(use `=' to initialize static data members)"
+msgstr ""
+
+#: cp/decl2.c:947
+msgid "member `%D' conflicts with virtual function table field name"
+msgstr ""
+
+#: cp/decl2.c:967
+msgid "`%D' is already defined in `%T'"
+msgstr ""
+
+#: cp/decl2.c:1014
+msgid "field initializer is not constant"
+msgstr ""
+
+#: cp/decl2.c:1038
+msgid "`asm' specifiers are not permitted on non-static data members"
+msgstr ""
+
+#: cp/decl2.c:1090
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr ""
+
+#: cp/decl2.c:1100
+msgid "cannot declare bit-field `%D' with function type"
+msgstr ""
+
+#: cp/decl2.c:1107
+msgid "`%D' is already defined in the class %T"
+msgstr ""
+
+#: cp/decl2.c:1114
+msgid "static member `%D' cannot be a bit-field"
+msgstr ""
+
+#: cp/decl2.c:1201
+msgid "initializer specified for non-member function `%D'"
+msgstr ""
+
+#: cp/decl2.c:1205
+msgid "invalid initializer for virtual method `%D'"
+msgstr ""
+
+#: cp/decl2.c:1319
+msgid "anonymous struct not inside named type"
+msgstr ""
+
+#: cp/decl2.c:1415
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr ""
+
+#: cp/decl2.c:1428
+msgid "anonymous aggregate with no members"
+msgstr ""
+
+#: cp/decl2.c:1497
+msgid "`operator new' must return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:1505
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr ""
+
+#: cp/decl2.c:1532
+msgid "`operator delete' must return type `%T'"
+msgstr ""
+
+#: cp/decl2.c:1540
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr ""
+
+#. Overflow occurred. That means there are at least 4 billion
+#. initialization functions.
+#: cp/decl2.c:2282
+msgid "too many initialization functions required"
+msgstr ""
+
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "»%s« verwendet, aber nirgendwo definiert"
+
+#: cp/decl2.c:3135
+msgid "use of old-style cast"
+msgstr ""
+
+#: cp/decl2.c:3860
+msgid "use of `%D' is ambiguous"
+msgstr ""
+
+#: cp/decl2.c:3861
+msgid " first declared as `%#D' here"
+msgstr ""
+
+#: cp/decl2.c:3864
+msgid " also declared as `%#D' here"
+msgstr ""
+
+#: cp/decl2.c:3879
+msgid "`%D' denotes an ambiguous type"
+msgstr ""
+
+#: cp/decl2.c:3880
+msgid " first type here"
+msgstr ""
+
+#: cp/decl2.c:3881
+msgid " other type here"
+msgstr ""
+
+#: cp/decl2.c:3982
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr ""
+
+#: cp/decl2.c:4016
+msgid "`%D' should have been declared inside `%D'"
+msgstr ""
+
+#: cp/decl2.c:4152
+msgid "`%D' is not a function,"
+msgstr ""
+
+#: cp/decl2.c:4153
+msgid " conflict with `%D'"
+msgstr ""
+
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+msgid "unknown namespace `%D'"
+msgstr ""
+
+#: cp/decl2.c:4507 cp/decl2.c:4794
+msgid "`%T' is not a namespace"
+msgstr ""
+
+#: cp/decl2.c:4509
+msgid "`%D' is not a namespace"
+msgstr ""
+
+#: cp/decl2.c:4518
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr ""
+
+#: cp/decl2.c:4532
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr ""
+
+#: cp/decl2.c:4561
+msgid "`%D' not declared"
+msgstr ""
+
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+msgid "`%D' is already declared in this scope"
+msgstr ""
+
+#: cp/decl2.c:4646
+msgid "using declaration `%D' introduced ambiguous type `%T'"
+msgstr ""
+
+#: cp/decl2.c:4740
+msgid "using-declaration for non-member at class scope"
+msgstr ""
+
+#: cp/decl2.c:4746
+msgid "using-declaration for destructor"
+msgstr ""
+
+#: cp/decl2.c:4752
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+msgstr ""
+
+#: cp/decl2.c:4788
+msgid "namespace `%T' undeclared"
+msgstr ""
+
+#: cp/decl2.c:4817
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr ""
+
+#: cp/decl2.c:4941
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr ""
+
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
+msgstr ""
+
+#: cp/decl2.c:4963
+msgid "`%T' is not a class or union type"
+msgstr ""
+
+#: cp/decl2.c:4977
+msgid "template argument is required for `%T'"
+msgstr ""
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr ""
+
+#: cp/error.c:35
+#, c-format
+msgid "`%s' not supported by %s"
+msgstr ""
+
+#: cp/error.c:571
+#, c-format
+msgid "<anonymous %s>"
+msgstr ""
+
+#: cp/error.c:810
+#, c-format
+msgid "(static %s for %s)"
+msgstr ""
+
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
+#, c-format
+msgid "In %s `%s':"
+msgstr ""
+
+#: cp/error.c:2530
+#, c-format
+msgid "%s: In instantiation of `%s':\n"
+msgstr ""
+
+#: cp/error.c:2554
+#, c-format
+msgid "%s:%d: instantiated from `%s'\n"
+msgstr ""
+
+#: cp/error.c:2559
+#, c-format
+msgid "%s:%d: instantiated from here\n"
+msgstr ""
+
+#. damn ICE suppression
+#: cp/error.c:2713
+#, c-format
+msgid "unexpected letter `%c' in locate_error\n"
+msgstr ""
+
+#. Can't throw a reference.
+#: cp/except.c:240
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
+msgstr ""
+
+#: cp/except.c:251
+msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+msgstr ""
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+msgid "type `%T' is not derived from `java::lang::Throwable'"
+msgstr ""
+
+#: cp/except.c:322
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr ""
+
+#: cp/except.c:639
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr ""
+
+#: cp/except.c:730
+msgid " in thrown expression"
+msgstr ""
+
+#: cp/except.c:856
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+msgstr ""
+
+#: cp/except.c:944
+msgid "exception of type `%T' will be caught"
+msgstr ""
+
+#: cp/except.c:947
+msgid " by earlier handler for `%T'"
+msgstr ""
+
+#: cp/except.c:968
+msgid "`...' handler must be the last handler for its try block"
+msgstr ""
+
+#: cp/friend.c:159
+msgid "`%D' is already a friend of class `%T'"
+msgstr ""
+
+#: cp/friend.c:161
+msgid "previous friend declaration of `%D'"
+msgstr ""
+
+#: cp/friend.c:206
+msgid "invalid type `%T' declared `friend'"
+msgstr ""
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+msgid "partial specialization `%T' declared `friend'"
+msgstr ""
+
+#: cp/friend.c:231
+msgid "class `%T' is implicitly friends with itself"
+msgstr ""
+
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+msgid "typename type `%#T' declared `friend'"
+msgstr ""
+
+#. template <class T> friend class T;
+#: cp/friend.c:255
+msgid "template parameter type `%T' declared `friend'"
+msgstr ""
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+msgid "`%#T' is not a template"
+msgstr ""
+
+#: cp/friend.c:276
+msgid "`%T' is already a friend of `%T'"
+msgstr ""
+
+#: cp/friend.c:376
+msgid "member `%D' declared as friend before type `%T' defined"
+msgstr ""
+
+#: cp/friend.c:431
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr ""
+
+#: cp/friend.c:434
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr ""
+
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, c-format
+msgid "argument to `%s' missing\n"
+msgstr ""
+
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
+msgid "default-initialization of `%#D', which has reference type"
+msgstr ""
+
+#: cp/init.c:389
+msgid "uninitialized reference member `%D'"
+msgstr ""
+
+#: cp/init.c:397
+msgid "initializer list treated as compound expression"
+msgstr ""
+
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
+msgstr ""
+
+#: cp/init.c:541
+msgid "base `%T' will be initialized after"
+msgstr ""
+
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr ""
+
+#: cp/init.c:546
+msgid " base `%T'"
+msgstr ""
+
+#: cp/init.c:564
+msgid "multiple initializations given for base `%T'"
+msgstr ""
+
+#: cp/init.c:631
+msgid "initializations for multiple members of `%T'"
+msgstr ""
+
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+msgstr ""
+
+#: cp/init.c:926
+msgid "class `%T' does not have any field named `%D'"
+msgstr ""
+
+#: cp/init.c:932
+msgid "field `%#D' is static; the only point of initialization is its definition"
+msgstr ""
+
+#: cp/init.c:965
+msgid "unnamed initializer for `%T', which has no base classes"
+msgstr ""
+
+#: cp/init.c:972
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
+msgstr ""
+
+#: cp/init.c:1007
+msgid "type `%D' is not a direct or virtual base of `%T'"
+msgstr ""
+
+#: cp/init.c:1010
+msgid "type `%D' is not a direct base of `%T'"
+msgstr ""
+
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+msgid "bad array initializer"
+msgstr ""
+
+#: cp/init.c:1311
+msgid "`%T' is not an aggregate type"
+msgstr ""
+
+#: cp/init.c:1334
+msgid "`%T' fails to be an aggregate typedef"
+msgstr ""
+
+#: cp/init.c:1343
+msgid "type `%T' is of non-aggregate type"
+msgstr ""
+
+#: cp/init.c:1446
+msgid "cannot call destructor `%T::~%T' without object"
+msgstr ""
+
+#: cp/init.c:1490
+msgid "invalid use of non-static field `%D'"
+msgstr ""
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+msgid "invalid use of member `%D'"
+msgstr ""
+
+#: cp/init.c:1509
+msgid "no method `%T::%D'"
+msgstr ""
+
+#: cp/init.c:1602
+msgid "incomplete type `%T' does not have member `%D'"
+msgstr ""
+
+#: cp/init.c:1676
+msgid "`%D' is not a member of type `%T'"
+msgstr ""
+
+#: cp/init.c:1695
+msgid "invalid pointer to bit-field `%D'"
+msgstr ""
+
+#: cp/init.c:1734
+msgid "object missing in use of pointer-to-member construct"
+msgstr ""
+
+#: cp/init.c:1774
+msgid "member `%D' is non-static but referenced as a static member"
+msgstr ""
+
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
+msgid "at this point in file"
+msgstr ""
+
+#: cp/init.c:1813
+#, c-format
+msgid "object missing in `%E'"
+msgstr ""
+
+#: cp/init.c:1944
+msgid "new of array type fails to specify size"
+msgstr ""
+
+#: cp/init.c:1955
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.c:1961
+msgid "zero size array reserves no space"
+msgstr ""
+
+#: cp/init.c:2026
+msgid "new cannot be applied to a reference type"
+msgstr ""
+
+#: cp/init.c:2032
+msgid "new cannot be applied to a function type"
+msgstr ""
+
+#: cp/init.c:2079
+msgid "call to Java constructor, while `jclass' undefined"
+msgstr ""
+
+#: cp/init.c:2095
+msgid "can't find class$"
+msgstr ""
+
+#: cp/init.c:2209
+msgid "invalid type `void' for new"
+msgstr ""
+
+#: cp/init.c:2261
+#, c-format
+msgid "call to Java constructor with `%s' undefined"
+msgstr ""
+
+#: cp/init.c:2369
+msgid "ISO C++ forbids initialization in array new"
+msgstr ""
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
+msgid "initializer list being treated as compound expression"
+msgstr ""
+
+#: cp/init.c:2397
+msgid "ISO C++ forbids aggregate initializer to new"
+msgstr ""
+
+#: cp/init.c:2485
+msgid "uninitialized const in `new' of `%#T'"
+msgstr ""
+
+#: cp/init.c:2864
+msgid "initializer ends prematurely"
+msgstr ""
+
+#: cp/init.c:2934
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr ""
+
+#: cp/init.c:3124
+msgid "unknown array size in delete"
+msgstr ""
+
+#: cp/init.c:3389
+msgid "type to vector delete is neither pointer or array type"
+msgstr ""
+
+#: cp/lex.c:136
+msgid "type name expected before `*'"
+msgstr ""
+
+#: cp/lex.c:158
+msgid "cannot declare references to references"
+msgstr ""
+
+#: cp/lex.c:163
+msgid "cannot declare pointers to references"
+msgstr ""
+
+#: cp/lex.c:167
+msgid "type name expected before `&'"
+msgstr ""
+
+#: cp/lex.c:894
+#, c-format
+msgid "semicolon missing after %s declaration"
+msgstr ""
+
+#: cp/lex.c:897
+msgid "semicolon missing after declaration of `%T'"
+msgstr ""
+
+#: cp/lex.c:945
+#, c-format
+msgid "junk at end of #pragma %s"
+msgstr ""
+
+#: cp/lex.c:952
+#, c-format
+msgid "invalid #pragma %s"
+msgstr ""
+
+#: cp/lex.c:961
+msgid "#pragma vtable no longer supported"
+msgstr ""
+
+#: cp/lex.c:1038
+#, c-format
+msgid "#pragma implementation for %s appears after file is included"
+msgstr ""
+
+#: cp/lex.c:1063
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr ""
+
+#: cp/lex.c:1107
+msgid "`%D' not defined"
+msgstr ""
+
+#: cp/lex.c:1110
+msgid "`%D' was not declared in this scope"
+msgstr ""
+
+#: cp/lex.c:1118
+msgid "`%D' undeclared (first use this function)"
+msgstr ""
+
+#: cp/lex.c:1122
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+msgstr ""
+
+#: cp/lex.c:1242
+msgid "`::%D' undeclared (first use here)"
+msgstr ""
+
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr ""
+
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr ""
+
+#: cp/method.c:154
+msgid "invalid use of member `%D' in static member function"
+msgstr ""
+
+#: cp/method.c:216
+msgid "use of namespace `%D' as expression"
+msgstr ""
+
+#: cp/method.c:221
+msgid "use of class template `%T' as expression"
+msgstr ""
+
+#: cp/method.c:234
+#, c-format
+msgid "use of %s from containing function"
+msgstr ""
+
+#: cp/method.c:237
+msgid " `%#D' declared here"
+msgstr ""
+
+#: cp/method.c:255
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+msgstr ""
+
+#: cp/method.c:458
+msgid "generic thunk code fails for method `%#D' which uses `...'"
+msgstr ""
+
+#: cp/method.c:697
+msgid "non-static const member `%#D', can't use default assignment operator"
+msgstr ""
+
+#: cp/method.c:702
+msgid "non-static reference member `%#D', can't use default assignment operator"
+msgstr ""
+
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
+msgstr ""
+
+#: parse.y:542
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr ""
+
+#: parse.y:646
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
+msgstr ""
+
+#: parse.y:943
+msgid "no base or member initializers given following ':'"
+msgstr ""
+
+#: parse.y:984
+msgid "anachronistic old style base class initializer"
+msgstr ""
+
+#. Handle `Class<Class<Type>>' without space in the `>>'
+#: parse.y:1117
+msgid "`>>' should be `> >' in template class name"
+msgstr ""
+
+#: parse.y:1164
+msgid "use of template qualifier outside template"
+msgstr ""
+
+#: parse.y:1193 parse.y:1202
+#, c-format
+msgid "ISO C++ forbids an empty condition for `%s'"
+msgstr ""
+
+#: parse.y:1225
+msgid "definition of class `%T' in condition"
+msgstr ""
+
+#: parse.y:1227
+msgid "definition of enum `%T' in condition"
+msgstr ""
+
+#: parse.y:1238
+msgid "definition of array `%#D' in condition"
+msgstr ""
+
+#: parse.y:1351
+msgid "old style placement syntax, use () instead"
+msgstr ""
+
+#: parse.y:1362
+msgid "`%T' is not a valid expression"
+msgstr ""
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr ""
+
+#: parse.y:1395
+msgid "ISO C++ forbids compound literals"
+msgstr ""
+
+#: parse.y:1642
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr ""
+
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ungültige Option »%s«"
+
+#: parse.y:2053 parse.y:2068
+msgid "sigof type specifier"
+msgstr ""
+
+#: parse.y:2058
+msgid "`sigof' applied to non-aggregate expression"
+msgstr ""
+
+#: parse.y:2073
+msgid "`sigof' applied to non-aggregate type"
+msgstr ""
+
+#: parse.y:2339
+msgid "using `typename' outside of template"
+msgstr ""
+
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
+#, c-format
+msgid "storage class specifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2419
+#, c-format
+msgid "type specifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2421
+#, c-format
+msgid "type qualifier `%s' not allowed after struct or class"
+msgstr ""
+
+#: parse.y:2423
+msgid "no body nor ';' separates two class, struct or union declarations"
+msgstr ""
+
+#: parse.y:2553
+msgid "no bases given following `:'"
+msgstr ""
+
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
+msgstr ""
+
+#: parse.y:2589
+msgid "multiple access specifiers"
+msgstr ""
+
+#: parse.y:2607
+msgid "multiple `virtual' specifiers"
+msgstr ""
+
+#: parse.y:2644
+msgid "missing ';' before right brace"
+msgstr ""
+
+#: parse.y:2865
+msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+msgstr ""
+
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+msgid "`%T' is not a class or namespace"
+msgstr ""
+
+#: parse.y:3377
+msgid "ISO C++ forbids label declarations"
+msgstr ""
+
+#: parse.y:3537
+msgid "ISO C++ forbids computed gotos"
+msgstr ""
+
+#: parse.y:3545
+msgid "label must be followed by statement"
+msgstr ""
+
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
+
+#: parse.y:3650
+msgid "ISO C++ forbids compound statements inside for initializations"
+msgstr ""
+
+#. This helps us recover from really nasty
+#. parse errors, for example, a missing right
+#. parenthesis.
+#: parse.y:3737 parse.y:3747
+msgid "possibly missing ')'"
+msgstr ""
+
+#: parse.y:3840
+msgid "type specifier omitted for parameter"
+msgstr ""
+
+#: parse.y:3849
+#, c-format
+msgid "`%E' is not a type, use `typename %E' to make it one"
+msgstr ""
+
+#: parse.y:3851
+msgid "no type `%D' in `%T'"
+msgstr ""
+
+#: parse.y:3854
+#, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr ""
+
+#: parse.y:3862
+msgid "'%D' is used as a type, but is not defined as a type."
+msgstr ""
+
+#: cp/pt.c:284
+msgid "data member `%D' cannot be a member template"
+msgstr ""
+
+#: cp/pt.c:296
+msgid "invalid member template declaration `%D'"
+msgstr ""
+
+#: cp/pt.c:691
+msgid "explicit specialization in non-namespace scope `%D'"
+msgstr ""
+
+#: cp/pt.c:703
+msgid "enclosing class templates are not explicitly specialized"
+msgstr ""
+
+#: cp/pt.c:792 cp/pt.c:833
+msgid "specializing `%#T' in different namespace"
+msgstr ""
+
+#: cp/pt.c:793 cp/pt.c:834
+msgid " from definition of `%#D'"
+msgstr ""
+
+#: cp/pt.c:801
+msgid "specialization of `%T' after instantiation"
+msgstr ""
+
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr ""
+
+#: cp/pt.c:860
+msgid "explicit specialization of non-template `%T'"
+msgstr ""
+
+#: cp/pt.c:992
+msgid "specialization of %D after instantiation"
+msgstr ""
+
+#: cp/pt.c:1096
+msgid "%s %+#D"
+msgstr ""
+
+#: cp/pt.c:1147
+msgid "`%D' is not a function template"
+msgstr ""
+
+#: cp/pt.c:1286
+msgid "template-id `%D' for `%+D' does not match any template declaration"
+msgstr ""
+
+#: cp/pt.c:1294
+msgid "ambiguous template specialization `%D' for `%+D'"
+msgstr ""
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+msgid "template-id `%D' in declaration of primary template"
+msgstr ""
+
+#: cp/pt.c:1534
+msgid "template parameter list used in explicit instantiation"
+msgstr ""
+
+#: cp/pt.c:1540
+msgid "definition provided for explicit instantiation"
+msgstr ""
+
+#: cp/pt.c:1546
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr ""
+
+#: cp/pt.c:1562
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr ""
+
+#: cp/pt.c:1579
+msgid "explicit specialization not preceded by `template <>'"
+msgstr ""
+
+#: cp/pt.c:1592
+msgid "partial specialization `%D' of function template"
+msgstr ""
+
+#: cp/pt.c:1624
+msgid "default argument specified in explicit specialization"
+msgstr ""
+
+#: cp/pt.c:1628
+msgid "template specialization with C linkage"
+msgstr ""
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+msgid "specialization of implicitly-declared special member function"
+msgstr ""
+
+#: cp/pt.c:1759
+msgid "no member function `%D' declared in `%T'"
+msgstr ""
+
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr ""
+
+#: cp/pt.c:2005
+msgid " shadows template parm `%#D'"
+msgstr ""
+
+#: cp/pt.c:2409
+msgid "template parameters not used in partial specialization:"
+msgstr ""
+
+#: cp/pt.c:2413
+msgid " `%D'"
+msgstr ""
+
+#: cp/pt.c:2425
+msgid "partial specialization `%T' does not specialize any template arguments"
+msgstr ""
+
+#: cp/pt.c:2450
+#, c-format
+msgid "template argument `%E' involves template parameter(s)"
+msgstr ""
+
+#: cp/pt.c:2494
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+msgstr ""
+
+#: cp/pt.c:2582
+msgid "no default argument for `%D'"
+msgstr ""
+
+#: cp/pt.c:2735
+msgid "template with C linkage"
+msgstr ""
+
+#: cp/pt.c:2738
+msgid "template class without a name"
+msgstr ""
+
+#: cp/pt.c:2815
+msgid "`%D' does not declare a template type"
+msgstr ""
+
+#: cp/pt.c:2821
+msgid "template definition of non-template `%#D'"
+msgstr ""
+
+#: cp/pt.c:2862
+msgid "expected %d levels of template parms for `%#D', got %d"
+msgstr ""
+
+#: cp/pt.c:2874
+msgid "got %d template parameters for `%#D'"
+msgstr ""
+
+#: cp/pt.c:2877
+msgid "got %d template parameters for `%#T'"
+msgstr ""
+
+#: cp/pt.c:2879
+#, c-format
+msgid " but %d required"
+msgstr ""
+
+#: cp/pt.c:2962
+msgid "`%T' is not a template type"
+msgstr ""
+
+#: cp/pt.c:2978
+msgid "previous declaration `%D'"
+msgstr ""
+
+#: cp/pt.c:2979
+#, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr ""
+
+#: cp/pt.c:2995
+msgid "template parameter `%#D'"
+msgstr ""
+
+#: cp/pt.c:2996
+msgid "redeclared here as `%#D'"
+msgstr ""
+
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+msgid "redefinition of default argument for `%#D'"
+msgstr ""
+
+#: cp/pt.c:3007
+msgid " original definition appeared here"
+msgstr ""
+
+#: cp/pt.c:3100
+#, c-format
+msgid "`%E' is not a valid template argument"
+msgstr ""
+
+#: cp/pt.c:3104
+msgid "it must be the address of a function with external linkage"
+msgstr ""
+
+#: cp/pt.c:3106
+msgid "it must be the address of an object with external linkage"
+msgstr ""
+
+#: cp/pt.c:3110
+msgid "it must be a pointer-to-member of the form `&X::Y'"
+msgstr ""
+
+#: cp/pt.c:3121
+#, c-format
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+msgstr ""
+
+#: cp/pt.c:3133
+#, c-format
+msgid "address of non-extern `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3144
+#, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3151
+#, c-format
+msgid "object `%E' cannot be used as template argument"
+msgstr ""
+
+#: cp/pt.c:3526
+#, c-format
+msgid "to refer to a type member of a template parameter, use `typename %E'"
+msgstr ""
+
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+msgstr ""
+
+#: cp/pt.c:3542
+msgid " expected a constant of type `%T', got `%T'"
+msgstr ""
+
+#: cp/pt.c:3546
+#, c-format
+msgid " expected a type, got `%E'"
+msgstr ""
+
+#: cp/pt.c:3558
+msgid " expected a type, got `%T'"
+msgstr ""
+
+#: cp/pt.c:3560
+msgid " expected a class template, got `%T'"
+msgstr ""
+
+#: cp/pt.c:3596
+msgid " expected a template of type `%D', got `%D'"
+msgstr ""
+
+#: cp/pt.c:3618
+msgid "template-argument `%T' uses anonymous type"
+msgstr ""
+
+#: cp/pt.c:3621
+msgid "template-argument `%T' uses local type `%T'"
+msgstr ""
+
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr ""
+
+#: cp/pt.c:3666
+msgid "could not convert template argument `%E' to `%T'"
+msgstr ""
+
+#: cp/pt.c:3710
+#, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr ""
+
+#: cp/pt.c:3714
+msgid "provided for `%D'"
+msgstr ""
+
+#: cp/pt.c:3761
+#, c-format
+msgid "template argument %d is invalid"
+msgstr ""
+
+#: cp/pt.c:3997
+msgid "non-template used as template"
+msgstr ""
+
+#: cp/pt.c:4139
+msgid "`%T' is not a template"
+msgstr ""
+
+#: cp/pt.c:4152
+msgid "non-template type `%T' used as a template"
+msgstr ""
+
+#: cp/pt.c:4154
+msgid "for template declaration `%D'"
+msgstr ""
+
+#: cp/pt.c:4770
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+msgstr ""
+
+#: cp/pt.c:5247
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr ""
+
+#: cp/pt.c:5254
+msgid "%s %+#T"
+msgstr ""
+
+#: cp/pt.c:6284 cp/pt.c:6396
+msgid "instantiation of `%D' as type `%T'"
+msgstr ""
+
+#: cp/pt.c:6440
+msgid "invalid parameter type `%T'"
+msgstr ""
+
+#: cp/pt.c:6442
+msgid "in declaration `%D'"
+msgstr ""
+
+#: cp/pt.c:6517
+msgid "creating pointer to member function of non-class type `%T'"
+msgstr ""
+
+#: cp/pt.c:6680
+msgid "creating array with size zero"
+msgstr ""
+
+#: cp/pt.c:6694
+#, c-format
+msgid "creating array with size zero (`%E')"
+msgstr ""
+
+#: cp/pt.c:6933
+msgid "forming reference to void"
+msgstr ""
+
+#: cp/pt.c:6935
+msgid "forming %s to reference type `%T'"
+msgstr ""
+
+#: cp/pt.c:6973
+msgid "creating pointer to member of non-class type `%T'"
+msgstr ""
+
+#: cp/pt.c:6979
+msgid "creating pointer to member reference type `%T'"
+msgstr ""
+
+#: cp/pt.c:7057
+msgid "creating array of `%T'"
+msgstr ""
+
+#: cp/pt.c:7100
+msgid "`%T' is not a class, struct, or union type"
+msgstr ""
+
+#: cp/pt.c:7213
+#, c-format
+msgid "use of `%s' in template"
+msgstr ""
+
+#: cp/pt.c:7975
+msgid "type `%T' composed from a local class is not a valid template-argument"
+msgstr ""
+
+#: cp/pt.c:7976
+msgid " trying to instantiate `%D'"
+msgstr ""
+
+#: cp/pt.c:8421
+msgid "incomplete type unification"
+msgstr ""
+
+#: cp/pt.c:9387
+#, c-format
+msgid "use of `%s' in template type unification"
+msgstr ""
+
+#: cp/pt.c:9821 cp/pt.c:9893
+msgid "explicit instantiation of non-template `%#D'"
+msgstr ""
+
+#: cp/pt.c:9837 cp/pt.c:9888
+msgid "no matching template for `%D' found"
+msgstr ""
+
+#: cp/pt.c:9843
+msgid "explicit instantiation of `%#D'"
+msgstr ""
+
+#: cp/pt.c:9880
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr ""
+
+#: cp/pt.c:9905
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+msgstr ""
+
+#: cp/pt.c:9909 cp/pt.c:9999
+msgid "storage class `%D' applied to template instantiation"
+msgstr ""
+
+#: cp/pt.c:9966
+msgid "explicit instantiation of non-template type `%T'"
+msgstr ""
+
+#: cp/pt.c:9980
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr ""
+
+#: cp/pt.c:9988
+#, c-format
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr ""
+
+#: cp/pt.c:10032
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr ""
+
+#: cp/pt.c:10412
+msgid "explicit instantiation of `%D' but no definition available"
+msgstr ""
+
+#: cp/pt.c:10815
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr ""
+
+#: cp/repo.c:271
+msgid "-frepo must be used with -c"
+msgstr ""
+
+#: cp/repo.c:361
+#, c-format
+msgid "mysterious repository information in %s"
+msgstr ""
+
+#: cp/repo.c:376
+#, c-format
+msgid "can't create repository information file `%s'"
+msgstr ""
+
+#: cp/rtti.c:240
+msgid "cannot use typeid with -fno-rtti"
+msgstr ""
+
+#: cp/rtti.c:246
+msgid "must #include <typeinfo> before using typeid"
+msgstr ""
+
+#: cp/rtti.c:320
+msgid "cannot create type information for type `%T' because its size is variable"
+msgstr ""
+
+#: cp/rtti.c:584 cp/rtti.c:598
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+msgstr ""
+
+#: cp/rtti.c:674
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+msgstr ""
+
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr ""
+
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr ""
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr ""
+
+#: cp/search.c:2050
+msgid "adjusting pointers for covariant returns"
+msgstr ""
+
+#: cp/search.c:2054 cp/search.c:2061
+msgid "invalid covariant return type for `%#D'"
+msgstr ""
+
+#: cp/search.c:2055
+msgid " overriding `%#D' (must be pointer or reference to class)"
+msgstr ""
+
+#: cp/search.c:2062
+msgid " overriding `%#D' (must use pointer or reference)"
+msgstr ""
+
+#: cp/search.c:2067
+msgid "conflicting return type specified for `%#D'"
+msgstr ""
+
+#: cp/search.c:2068
+msgid " overriding `%#D'"
+msgstr ""
+
+#: cp/search.c:2077
+#, c-format
+msgid "looser throw specifier for `%#F'"
+msgstr ""
+
+#: cp/search.c:2078
+#, c-format
+msgid " overriding `%#F'"
+msgstr ""
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+msgid "`%#D' cannot be declared"
+msgstr ""
+
+#: cp/search.c:2168
+msgid " since `%#D' declared in base class"
+msgstr ""
+
+#: cp/search.c:2309
+msgid "`%#D' needs a final overrider"
+msgstr ""
+
+#: cp/semantics.c:919
+#, c-format
+msgid "type of asm operand `%E' could not be determined"
+msgstr ""
+
+#: cp/semantics.c:1051
+msgid "ISO C++ does not permit named return values"
+msgstr ""
+
+#: cp/semantics.c:1060
+msgid "return identifier `%D' already in place"
+msgstr ""
+
+#: cp/semantics.c:1068
+msgid "can't redefine default return value for constructors"
+msgstr ""
+
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr ""
+
+#: cp/semantics.c:1343
+msgid "`this' is unavailable for static member functions"
+msgstr ""
+
+#: cp/semantics.c:1349
+msgid "invalid use of `this' in non-member function"
+msgstr ""
+
+#: cp/semantics.c:1351
+msgid "invalid use of `this' at top level"
+msgstr ""
+
+#: cp/semantics.c:1381
+msgid "calling type `%T' like a method"
+msgstr ""
+
+#: cp/semantics.c:1419
+msgid "destructor specifier `%T::~%T()' must have matching names"
+msgstr ""
+
+#: cp/semantics.c:1425
+msgid "`%E' is not of type `%T'"
+msgstr ""
+
+#: cp/semantics.c:1613
+msgid "template type parameters must use the keyword `class' or `typename'"
+msgstr ""
+
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
+
+#: cp/semantics.c:1694
+msgid "definition of `%#T' inside template parameter list"
+msgstr ""
+
+#: cp/semantics.c:1710
+msgid "invalid definition of qualified type `%T'"
+msgstr ""
+
+#: cp/semantics.c:2053
+msgid "invalid base-class specification"
+msgstr ""
+
+#: cp/semantics.c:2062
+msgid "base class `%T' has cv qualifiers"
+msgstr ""
+
+#: cp/semantics.c:2093
+msgid "multiple declarators in template declaration"
+msgstr ""
+
+#: cp/semantics.c:2120
+#, c-format
+msgid "type of `%E' is unknown"
+msgstr ""
+
+#: cp/spew.c:225
+#, c-format
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgstr ""
+
+#: cp/spew.c:1002 cp/spew.c:1340
+msgid "parse error at end of saved function text"
+msgstr ""
+
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
+msgid "parse error in method specification"
+msgstr ""
+
+#: cp/spew.c:1161
+msgid "function body for constructor missing"
+msgstr ""
+
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr ""
+
+#: cp/spew.c:1419
+msgid "circular dependency in default args of `%#D'"
+msgstr ""
+
+#: cp/spew.c:1483
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr ""
+
+#: cp/spew.c:1548
+#, c-format
+msgid "%s before `%s'"
+msgstr ""
+
+#: cp/spew.c:1550
+#, c-format
+msgid "%s before `%c'"
+msgstr ""
+
+#: cp/spew.c:1552
+#, c-format
+msgid "%s before `\\%o'"
+msgstr ""
+
+#: cp/spew.c:1555
+#, c-format
+msgid "%s before `%s' token"
+msgstr ""
+
+#: cp/tree.c:263 cp/tree.c:275
+#, c-format
+msgid "non-lvalue in %s"
+msgstr ""
+
+#: cp/tree.c:562
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr ""
+
+#: cp/tree.c:1941
+#, c-format
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr ""
+
+#: cp/tree.c:1971
+#, c-format
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr ""
+
+#: cp/tree.c:1977
+#, c-format
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+msgstr ""
+
+#: cp/tree.c:2002
+msgid "requested init_priority is not an integer constant"
+msgstr ""
+
+#: cp/tree.c:2023
+#, c-format
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+msgstr ""
+
+#: cp/tree.c:2031
+msgid "requested init_priority is out of range"
+msgstr ""
+
+#: cp/tree.c:2041
+msgid "requested init_priority is reserved for internal use"
+msgstr ""
+
+#: cp/tree.c:2051
+#, c-format
+msgid "`%s' attribute is not supported on this platform"
+msgstr ""
+
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.c:524
+#, c-format
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+msgstr ""
+
+#: cp/typeck.c:545
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+msgstr ""
+
+#: cp/typeck.c:1436
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+msgstr ""
+
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr ""
+
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr ""
+
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
+msgstr ""
+
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr ""
+
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
+msgstr ""
+
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr ""
+
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
+msgstr ""
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr ""
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr ""
+
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
+msgstr ""
+
+#: cp/typeck.c:2179
+msgid "`%T' is not a base of `%T'"
+msgstr ""
+
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr ""
+
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr ""
+
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
+msgstr ""
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+msgid "`%T' is not a pointer-to-object type"
+msgstr ""
+
+#: cp/typeck.c:2365
+#, c-format
+msgid "invalid use of `%s' on pointer to member"
+msgstr ""
+
+#: cp/typeck.c:2371
+msgid "invalid type argument"
+msgstr ""
+
+#: cp/typeck.c:2474
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr ""
+
+#: cp/typeck.c:2485
+msgid "subscripting array declared `register'"
+msgstr ""
+
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr ""
+
+#: cp/typeck.c:2674
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr ""
+
+#: cp/typeck.c:2699
+#, c-format
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+msgstr ""
+
+#: cp/typeck.c:2712
+#, c-format
+msgid "`%E' cannot be used as a function"
+msgstr ""
+
+#: cp/typeck.c:2824
+msgid "too many arguments to %s `%+#D'"
+msgstr ""
+
+#: cp/typeck.c:2865
+msgid "parameter type of called function is incomplete"
+msgstr ""
+
+#: cp/typeck.c:2928
+msgid "too few arguments to %s `%+#D'"
+msgstr ""
+
+#: cp/typeck.c:3056 cp/typeck.c:3066
+msgid "assuming cast to type `%T' from overloaded function"
+msgstr ""
+
+#: cp/typeck.c:3126
+#, c-format
+msgid "division by zero in `%E / 0'"
+msgstr ""
+
+#: cp/typeck.c:3128
+#, c-format
+msgid "division by zero in `%E / 0.'"
+msgstr ""
+
+#: cp/typeck.c:3158
+#, c-format
+msgid "division by zero in `%E %% 0'"
+msgstr ""
+
+#: cp/typeck.c:3160
+#, c-format
+msgid "division by zero in `%E %% 0.'"
+msgstr ""
+
+#: cp/typeck.c:3240
+#, c-format
+msgid "%s rotate count is negative"
+msgstr ""
+
+#: cp/typeck.c:3243
+#, c-format
+msgid "%s rotate count >= width of type"
+msgstr ""
+
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr ""
+
+#: cp/typeck.c:3553
+msgid "comparison between types `%#T' and `%#T'"
+msgstr ""
+
+#: cp/typeck.c:3589
+msgid "comparison between signed and unsigned integer expressions"
+msgstr ""
+
+#: cp/typeck.c:3654
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr ""
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+msgid "NULL used in arithmetic"
+msgstr ""
+
+#: cp/typeck.c:3743
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3745
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3747
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3749
+msgid "ISO C++ forbids using pointer to a member in subtraction"
+msgstr ""
+
+#: cp/typeck.c:3761
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr ""
+
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
+
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
+msgid "taking address of temporary"
+msgstr ""
+
+#: cp/typeck.c:4091
+#, c-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr ""
+
+#: cp/typeck.c:4103
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4110
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4135
+msgid "cast to non-reference type used as lvalue"
+msgstr ""
+
+#: cp/typeck.c:4169
+msgid "invalid use of `--' on bool variable `%D'"
+msgstr ""
+
+#. ARM $3.4
+#: cp/typeck.c:4202
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr ""
+
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+msgstr ""
+
+#: cp/typeck.c:4271
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr ""
+
+#: cp/typeck.c:4295
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr ""
+
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr ""
+
+#: cp/typeck.c:4444
+msgid "taking address of destructor"
+msgstr ""
+
+#: cp/typeck.c:4457
+msgid "taking address of bound pointer-to-member expression"
+msgstr ""
+
+#: cp/typeck.c:4473
+msgid "cannot create pointer to reference member `%D'"
+msgstr ""
+
+#: cp/typeck.c:4536
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr ""
+
+#: cp/typeck.c:4555
+msgid "address requested for `%D', which is declared `register'"
+msgstr ""
+
+#: cp/typeck.c:4682
+msgid "static_cast from type `%T' to type `%T' casts away constness"
+msgstr ""
+
+#: cp/typeck.c:4871
+msgid "invalid static_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4910
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4930
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
+msgstr ""
+
+#: cp/typeck.c:4943
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+msgstr ""
+
+#: cp/typeck.c:4952
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr ""
+
+#: cp/typeck.c:4958
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:4985
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr ""
+
+#: cp/typeck.c:4988
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr ""
+
+#: cp/typeck.c:5011
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5027
+msgid "invalid const_cast from type `%T' to type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5069 cp/typeck.c:5074
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5082
+msgid "invalid cast to function type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5138
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+msgstr ""
+
+#: cp/typeck.c:5184
+msgid "cast from `%T' to `%T' increases required alignment of target type"
+msgstr ""
+
+#: cp/typeck.c:5357
+msgid " in evaluation of `%Q(%#T, %#T)'"
+msgstr ""
+
+#: cp/typeck.c:5399
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+msgstr ""
+
+#: cp/typeck.c:5463
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr ""
+
+#: cp/typeck.c:5470
+msgid "ISO C++ forbids assignment of arrays"
+msgstr ""
+
+#: cp/typeck.c:5577
+msgid " in pointer to member function conversion"
+msgstr ""
+
+#: cp/typeck.c:5585
+msgid " in pointer to member conversion"
+msgstr ""
+
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+msgid "pointer to member cast via virtual base `%T' of `%T'"
+msgstr ""
+
+#: cp/typeck.c:5619
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
+msgstr ""
+
+#: cp/typeck.c:5695
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr ""
+
+#: cp/typeck.c:5860
+msgid "passing NULL used for non-pointer %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5863
+msgid "%s to non-pointer type `%T' from NULL"
+msgstr ""
+
+#: cp/typeck.c:5871
+msgid "passing `%T' for %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5874
+msgid "%s to `%T' from `%T'"
+msgstr ""
+
+#: cp/typeck.c:5884
+msgid "passing negative value `%E' for %s %P of `%D'"
+msgstr ""
+
+#: cp/typeck.c:5887
+msgid "%s of negative value `%E' to `%T'"
+msgstr ""
+
+#: cp/typeck.c:5982
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+msgstr ""
+
+#: cp/typeck.c:5985
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr ""
+
+#: cp/typeck.c:6073 cp/typeck.c:6075
+msgid "in passing argument %P of `%+D'"
+msgstr ""
+
+#: cp/typeck.c:6190
+msgid "returning reference to temporary"
+msgstr ""
+
+#: cp/typeck.c:6197
+msgid "reference to non-lvalue returned"
+msgstr ""
+
+#: cp/typeck.c:6209
+msgid "reference to local variable `%D' returned"
+msgstr ""
+
+#: cp/typeck.c:6212
+msgid "address of local variable `%D' returned"
+msgstr ""
+
+#: cp/typeck.c:6243
+msgid "returning a value from a destructor"
+msgstr ""
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr ""
+
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+msgid "returning a value from a constructor"
+msgstr ""
+
+#: cp/typeck.c:6271
+msgid "return-statement with no value, in function declared with a non-void return type"
+msgstr ""
+
+#: cp/typeck.c:6287
+msgid "return-statement with a value, in function declared with a void return type"
+msgstr ""
+
+#: cp/typeck.c:6308
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+msgstr ""
+
+#: cp/typeck2.c:54
+msgid "type `%T' is not a base type for type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:157
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:160
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:163
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:167
+msgid "invalid return type for member function `%#D'"
+msgstr ""
+
+#: cp/typeck2.c:169
+msgid "invalid return type for function `%#D'"
+msgstr ""
+
+#: cp/typeck2.c:172
+msgid "cannot allocate an object of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:179
+msgid " because the following virtual functions are abstract:"
+msgstr ""
+
+#: cp/typeck2.c:181
+msgid "\t%#D"
+msgstr ""
+
+#: cp/typeck2.c:184
+msgid " since type `%T' has abstract virtual functions"
+msgstr ""
+
+#: cp/typeck2.c:338
+msgid "constructor syntax used, but no constructor declared for type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:349
+msgid "comma expression used to initialize return value"
+msgstr ""
+
+#: cp/typeck2.c:358
+msgid "cannot initialize arrays using this syntax"
+msgstr ""
+
+#: cp/typeck2.c:473
+msgid "initializing array with parameter list"
+msgstr ""
+
+#: cp/typeck2.c:529
+msgid "initializer for scalar variable requires one element"
+msgstr ""
+
+#: cp/typeck2.c:536
+msgid "braces around scalar initializer for `%T'"
+msgstr ""
+
+#: cp/typeck2.c:539
+msgid "ignoring extra initializers for `%T'"
+msgstr ""
+
+#: cp/typeck2.c:551
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr ""
+
+#: cp/typeck2.c:561
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+msgstr ""
+
+#: cp/typeck2.c:627
+msgid "aggregate has a partly bracketed initializer"
+msgstr ""
+
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
+msgstr ""
+
+#: cp/typeck2.c:682
+msgid "non-empty initializer for array of empty elements"
+msgstr ""
+
+#: cp/typeck2.c:736
+msgid "initializer list for object of class with virtual base classes"
+msgstr ""
+
+#: cp/typeck2.c:742
+msgid "initializer list for object of class with base classes"
+msgstr ""
+
+#: cp/typeck2.c:748
+msgid "initializer list for object using virtual functions"
+msgstr ""
+
+#: cp/typeck2.c:811 cp/typeck2.c:827
+msgid "missing initializer for member `%D'"
+msgstr ""
+
+#: cp/typeck2.c:816
+msgid "uninitialized const member `%D'"
+msgstr ""
+
+#: cp/typeck2.c:818
+msgid "member `%D' with uninitialized const fields"
+msgstr ""
+
+#: cp/typeck2.c:821
+msgid "member `%D' is uninitialized reference"
+msgstr ""
+
+#: cp/typeck2.c:868
+msgid "index value instead of field name in union initializer"
+msgstr ""
+
+#: cp/typeck2.c:880
+msgid "no field `%D' in union being initialized"
+msgstr ""
+
+#: cp/typeck2.c:888
+msgid "union `%T' with no named members cannot be initialized"
+msgstr ""
+
+#: cp/typeck2.c:924
+msgid "excess elements in aggregate initializer"
+msgstr ""
+
+#: cp/typeck2.c:1038
+msgid "circular pointer delegation detected"
+msgstr ""
+
+#: cp/typeck2.c:1051
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1065
+msgid "result of `operator->()' yields non-pointer result"
+msgstr ""
+
+#: cp/typeck2.c:1067
+msgid "base operand of `->' is not a pointer"
+msgstr ""
+
+#: cp/typeck2.c:1133
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1140
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1149
+msgid "member type `%T::' incompatible with object type `%T'"
+msgstr ""
+
+#: cp/typeck2.c:1186
+msgid "`%T' fails to be a typedef or built-in type"
+msgstr ""
+
+#: cp/typeck2.c:1259
+#, c-format
+msgid "ISO C++ forbids defining types within %s"
+msgstr ""
+
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr ""
+
+#: cp/typeck2.c:1387
+msgid "call to function which throws incomplete type `%#T'"
+msgstr ""
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr ""
+
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
+msgstr ""
+
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
+msgstr ""
+
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
+msgstr ""
+
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
+msgstr ""
+
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr ""
+
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
+msgstr ""
+
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
+msgstr ""
+
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
+msgstr ""
+
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
+msgstr ""
+
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
+msgstr ""
+
+#: cp/lang-options.h:64
+msgid "Do not recognize GNU defined keywords"
+msgstr ""
+
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
+msgstr ""
+
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
+msgstr ""
+
+#: cp/lang-options.h:75
+msgid "Only emit explicit template instantiations"
+msgstr ""
+
+#: cp/lang-options.h:78
+msgid "Only emit explicit instantiations of inline templates"
+msgstr ""
+
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr ""
+
+#: cp/lang-options.h:87
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr ""
+
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
+msgstr ""
+
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
+msgstr ""
+
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr ""
+
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
+msgstr ""
+
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr ""
+
+#: cp/lang-options.h:106
+msgid "Use __cxa_atexit to register destructors"
+msgstr ""
+
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
+msgstr ""
+
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
+msgstr ""
+
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
+msgstr ""
+
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
+msgstr ""
+
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
+msgstr ""
+
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
+msgstr ""
+
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
+msgstr ""
+
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
+msgstr ""
+
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
+msgstr ""
+
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
+msgstr ""
+
+#: cp/lang-options.h:140
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr ""
+
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
+msgstr ""
+
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
+msgstr ""
+
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr ""
+
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
+msgstr ""
+
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr ""
+
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
+msgstr ""
+
+#: f/bad.c:387
+msgid "note:"
+msgstr ""
+
+#: f/bad.c:391
+msgid "warning:"
+msgstr ""
+
+#: f/bad.c:395
+msgid "fatal:"
+msgstr ""
+
+#: f/bad.c:437
+msgid "(continued):"
+msgstr ""
+
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr ""
+
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr ""
+
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr ""
+
+#: f/com.c:11623
+msgid "no INTEGER type can hold a pointer on this configuration"
+msgstr ""
+
+#: f/com.c:11844
+#, c-format
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+msgstr ""
+
+#: f/com.c:11846
+#, c-format
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr ""
+
+#: f/com.c:11848
+msgid "properly unless they all are 32 bits wide"
+msgstr ""
+
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
+msgstr "Bitte bedenken Sie dies, wenn Sie einen Fehlerbericht einsenden."
+
+#. I/O will probably crash.
+#: f/com.c:11857
+#, c-format
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
+msgstr ""
+
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
+#, c-format
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
+msgstr ""
+
+#: f/com.c:13681
+msgid "In statement function"
+msgstr ""
+
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
+msgstr ""
+
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr ""
+
+#: f/com.c:15497
+msgid "directory name must immediately follow -I"
+msgstr ""
+
+#: f/com.c:15640
+#, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr ""
+
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr ""
+
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr ""
+
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr ""
+
+#: f/g77spec.c:234
+#, c-format
+msgid "overflowed output arg list for `%s'"
+msgstr ""
+
+#: f/g77spec.c:373
+msgid "--driver no longer supported"
+msgstr ""
+
+#: f/g77spec.c:386
+#, c-format
+msgid "argument to `%s' missing"
+msgstr ""
+
+#: f/g77spec.c:390
+msgid "no input files; unwilling to write output files"
+msgstr ""
+
+#: f/implic.c:203
+#, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr ""
+
+#: f/lex.c:326
+#, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr ""
+
+#: f/lex.c:345
+#, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr ""
+
+#: f/lex.c:354
+#, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr ""
+
+#: f/lex.c:365
+#, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr ""
+
+#: f/lex.c:393
+#, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr ""
+
+#: f/lex.c:407
+#, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr ""
+
+#: f/lex.c:441
+#, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr ""
+
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr ""
+
+#: f/lex.c:648
+#, c-format
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr ""
+
+#: f/lex.c:661
+#, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr ""
+
+#: f/lex.c:665
+#, c-format
+msgid "unknown escape sequence `\\%c'"
+msgstr ""
+
+#: f/lex.c:667
+#, c-format
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr ""
+
+#: f/lex.c:744
+msgid "badly formed directive -- no closing quote"
+msgstr ""
+
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr ""
+
+#: f/lex.c:964
+msgid "bad directive -- missing close-quote"
+msgstr ""
+
+#: f/lex.c:1078
+#, c-format
+msgid "ignoring pragma: %s"
+msgstr ""
+
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr ""
+
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr ""
+
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr ""
+
+#: f/lex.c:1285 f/lex.c:1329
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr ""
+
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr ""
+
+#: f/lex.c:1432
+#, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr ""
+
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr ""
+
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr ""
+
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr ""
+
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
+msgstr ""
+
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr ""
+
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr ""
+
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr ""
+
+#: f/top.c:237
+#, c-format
+msgid "%s no longer supported -- try -fvxt"
+msgstr ""
+
+#: f/top.c:239
+#, c-format
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr ""
+
+#: f/top.c:307 f/top.c:309
+#, c-format
+msgid "%s disabled, use normal debugging flags"
+msgstr ""
+
+#: f/lang-options.h:33
+msgid "Print g77-specific compiler version info, run internal tests"
+msgstr ""
+
+#: f/lang-options.h:37
+msgid "Program is written in typical FORTRAN 66 dialect"
+msgstr ""
+
+#: f/lang-options.h:40
+msgid "Program is written in typical Unix f77 dialect"
+msgstr ""
+
+#: f/lang-options.h:42
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr ""
+
+#: f/lang-options.h:44
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr ""
+
+#: f/lang-options.h:48
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr ""
+
+#: f/lang-options.h:50
+msgid "Allow $ in symbol names"
+msgstr ""
+
+#: f/lang-options.h:54
+msgid "f2c-compatible code need not be generated"
+msgstr ""
+
+#: f/lang-options.h:57
+msgid "Unsupported; do not generate libf2c-calling code"
+msgstr ""
+
+#: f/lang-options.h:59
+msgid "Unsupported; affects code-generation of arrays"
+msgstr ""
+
+#: f/lang-options.h:62
+msgid "Program is written in Fortran-90-ish free form"
+msgstr ""
+
+#: f/lang-options.h:67
+msgid "Warn about use of (only a few for now) Fortran extensions"
+msgstr ""
+
+#: f/lang-options.h:70
+msgid "Program is written in VXT (Digital-like) FORTRAN"
+msgstr ""
+
+#: f/lang-options.h:73
+msgid "Disallow all ugly features"
+msgstr ""
+
+#: f/lang-options.h:76
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr ""
+
+#: f/lang-options.h:78
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr ""
+
+#: f/lang-options.h:81
+msgid "Dummy array dimensioned to (1) is assumed-size"
+msgstr ""
+
+#: f/lang-options.h:84
+msgid "Trailing comma in procedure call denotes null argument"
+msgstr ""
+
+#: f/lang-options.h:87
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+msgstr ""
+
+#: f/lang-options.h:91
+msgid "Initialization via DATA and PARAMETER is type-compatible"
+msgstr ""
+
+#: f/lang-options.h:93
+msgid "Allow INTEGER and LOGICAL interchangeability"
+msgstr ""
+
+#: f/lang-options.h:96
+msgid "Print internal debugging-related info"
+msgstr ""
+
+#: f/lang-options.h:99
+msgid "Initialize local vars and arrays to zero"
+msgstr ""
+
+#: f/lang-options.h:103
+msgid "Backslashes in character/hollerith constants not special (C-style)"
+msgstr ""
+
+#: f/lang-options.h:105
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+msgstr ""
+
+#: f/lang-options.h:109
+msgid "Disable the appending of underscores to externals"
+msgstr ""
+
+#: f/lang-options.h:112
+msgid "Never append a second underscore to externals"
+msgstr ""
+
+#: f/lang-options.h:114
+msgid "Intrinsics spelled as e.g. SqRt"
+msgstr ""
+
+#: f/lang-options.h:116
+msgid "Intrinsics in uppercase"
+msgstr ""
+
+#: f/lang-options.h:119
+msgid "Intrinsics letters in arbitrary cases"
+msgstr ""
+
+#: f/lang-options.h:121
+msgid "Language keywords spelled as e.g. IOStat"
+msgstr ""
+
+#: f/lang-options.h:123
+msgid "Language keywords in uppercase"
+msgstr ""
+
+#: f/lang-options.h:126
+msgid "Language keyword letters in arbitrary cases"
+msgstr ""
+
+#: f/lang-options.h:128
+msgid "Internally convert most source to uppercase"
+msgstr ""
+
+#: f/lang-options.h:131
+msgid "Internally preserve source case"
+msgstr ""
+
+#: f/lang-options.h:133
+msgid "Symbol names spelled in mixed case"
+msgstr ""
+
+#: f/lang-options.h:135
+msgid "Symbol names in uppercase"
+msgstr ""
+
+#: f/lang-options.h:137
+msgid "Symbol names in lowercase"
+msgstr ""
+
+#: f/lang-options.h:140
+msgid "Program written in uppercase"
+msgstr ""
+
+#: f/lang-options.h:142
+msgid "Program written in lowercase"
+msgstr ""
+
+#: f/lang-options.h:144
+msgid "Program written in strict mixed-case"
+msgstr ""
+
+#: f/lang-options.h:146
+msgid "Compile as if program written in uppercase"
+msgstr ""
+
+#: f/lang-options.h:148
+msgid "Compile as if program written in lowercase"
+msgstr ""
+
+#: f/lang-options.h:150
+msgid "Preserve all spelling (case) used in program"
+msgstr ""
+
+#: f/lang-options.h:152
+msgid "Delete libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:154
+msgid "Disable libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:157
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr ""
+
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr ""
+
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:201
+msgid "Treat initial values of 0 like non-zero values"
+msgstr ""
+
+#: f/lang-options.h:204
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+msgstr ""
+
+#: f/lang-options.h:207
+msgid "Take at least one trip through each iterative DO loop"
+msgstr ""
+
+#: f/lang-options.h:211
+msgid "Print names of program units as they are compiled"
+msgstr ""
+
+#: f/lang-options.h:214
+msgid "Disable fatal diagnostics about inter-procedural problems"
+msgstr ""
+
+#: f/lang-options.h:216
+msgid "Make prefix-radix non-decimal constants be typeless"
+msgstr ""
+
+#: f/lang-options.h:219
+msgid "Generate code to check subscript and substring bounds"
+msgstr ""
+
+#: f/lang-options.h:222
+msgid "Fortran-specific form of -fbounds-check"
+msgstr ""
+
+#: f/lang-options.h:226
+msgid "Disable warnings about inter-procedural problems"
+msgstr ""
+
+#: f/lang-options.h:230
+msgid "Warn about constructs with surprising meanings"
+msgstr ""
+
+#: f/lang-options.h:235
+msgid "Add a directory for INCLUDE searching"
+msgstr ""
+
+#: f/lang-options.h:237
+msgid "Set the maximum line length"
+msgstr ""
+
+#: f/bad.def:39
+#, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr ""
+
+#: f/bad.def:42
+#, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr ""
+
+#: f/bad.def:45
+#, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr ""
+
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr ""
+
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr ""
+
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr ""
+
+#: f/bad.def:65
+#, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr ""
+
+#: f/bad.def:77
+#, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr ""
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:91
+#, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr ""
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr ""
+
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr ""
+
+#: f/bad.def:100
+#, no-c-format
+msgid "Integer at %0 too large"
+msgstr ""
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr ""
+
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr ""
+
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr ""
+
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr ""
+
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr ""
+
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr ""
+
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:291
+#, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr ""
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:433
+#, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr ""
+
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr ""
+
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr ""
+
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr ""
+
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr ""
+
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr ""
+
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr ""
+
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr ""
+
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr ""
+
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr ""
+
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr ""
+
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr ""
+
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr ""
+
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr ""
+
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr ""
+
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr ""
+
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr ""
+
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr ""
+
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr ""
+
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr ""
+
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr ""
+
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr ""
+
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr ""
+
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr ""
+
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr ""
+
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr ""
+
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr ""
+
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr ""
+
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr ""
+
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr ""
+
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr ""
+
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr ""
+
+#: f/bad.def:578
+#, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr ""
+
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr ""
+
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:598
+#, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr ""
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr ""
+
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr ""
+
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr ""
+
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr ""
+
+#: f/bad.def:650
+#, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr ""
+
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr ""
+
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr ""
+
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr ""
+
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr ""
+
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr ""
+
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr ""
+
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr ""
+
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr ""
+
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr ""
+
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr ""
+
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
+msgstr ""
+
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr ""
+
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr ""
+
+#: f/bad.def:708
+#, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr ""
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr ""
+
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr ""
+
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr ""
+
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr ""
+
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr ""
+
+#: f/bad.def:821
+#, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr ""
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr ""
+
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr ""
+
+#: f/bad.def:854
+#, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
+msgstr ""
+
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr ""
+
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr ""
+
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr ""
+
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr ""
+
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr ""
+
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr ""
+
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr ""
+
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr ""
+
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr ""
+
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr ""
+
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr ""
+
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr ""
+
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr ""
+
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr ""
+
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
+msgstr ""
+
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr ""
+
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr ""
+
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr ""
+
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr ""
+
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr ""
+
+#: f/bad.def:1037
+#, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr ""
+
+#: f/bad.def:1040
+#, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr ""
+
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr ""
+
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr ""
+
+#: f/bad.def:1049
+#, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr ""
+
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr ""
+
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1085
+#, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr ""
+
+#: f/bad.def:1088
+#, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr ""
+
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr ""
+
+#: f/bad.def:1094
+#, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr ""
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
+msgstr ""
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr ""
+
+#: f/info-k.def:34
+msgid "In function"
+msgstr ""
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr ""
+
+#: f/info-k.def:36
+msgid "In program"
+msgstr ""
+
+#: f/info-k.def:37
+msgid "In block-data unit"
+msgstr ""
+
+#: f/info-k.def:38
+msgid "In common block"
+msgstr ""
+
+#: f/info-k.def:39
+msgid "In construct"
+msgstr ""
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr ""
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr ""
+
+#: java/check-init.c:917
+#, c-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr ""
+
+#: java/check-init.c:990
+#, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr ""
+
+#: java/class.c:539 java/class.c:564
+msgid "internal error - too many interface type"
+msgstr ""
+
+#: java/class.c:677
+msgid "bad method signature"
+msgstr ""
+
+#: java/class.c:726
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr ""
+
+#: java/class.c:728
+#, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr ""
+
+#: java/class.c:739
+#, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr ""
+
+#: java/class.c:1103
+#, c-format
+msgid "field '%s' not found in class"
+msgstr ""
+
+#: java/class.c:1365
+msgid "abstract method in non-abstract class"
+msgstr ""
+
+#: java/class.c:2078
+#, c-format
+msgid "non-static method '%s' overrides static method"
+msgstr ""
+
+#: java/decl.c:1541
+#, c-format
+msgid "In %s: overlapped variable and exception ranges at %d"
+msgstr ""
+
+#: java/decl.c:1622
+msgid "bad type in parameter debug info"
+msgstr ""
+
+#: java/decl.c:1632
+#, c-format
+msgid "bad PC range for debug info for local `%s'"
+msgstr ""
+
+#: java/expr.c:530
+msgid "stack underflow - dup* operation"
+msgstr ""
+
+#: java/expr.c:1534
+#, c-format
+msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+msgstr ""
+
+#: java/expr.c:1563
+#, c-format
+msgid "field `%s' not found"
+msgstr ""
+
+#: java/expr.c:1715
+msgid "ret instruction not implemented"
+msgstr ""
+
+#: java/expr.c:1857
+#, c-format
+msgid "method '%s' not found in class"
+msgstr ""
+
+#: java/expr.c:2060
+#, c-format
+msgid "failed to find class '%s'"
+msgstr ""
+
+#: java/expr.c:2070
+#, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr ""
+
+#: java/expr.c:2080
+msgid "invokestatic on non static method"
+msgstr ""
+
+#: java/expr.c:2085
+msgid "invokestatic on abstract method"
+msgstr ""
+
+#: java/expr.c:2093
+msgid "invoke[non-static] on static method"
+msgstr ""
+
+#: java/expr.c:2396
+#, c-format
+msgid "missing field '%s' in '%s'"
+msgstr ""
+
+#: java/expr.c:2402
+#, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr ""
+
+#: java/expr.c:2425
+#, c-format
+msgid "assignment to final field `%s' not in field's class"
+msgstr ""
+
+#: java/expr.c:2430
+#, c-format
+msgid "assignment to final static field `%s' not in class initializer"
+msgstr ""
+
+#: java/expr.c:2437
+#, c-format
+msgid "assignment to final field `%s' not in constructor"
+msgstr ""
+
+#: java/expr.c:2684
+#, c-format
+msgid "can't expand %s"
+msgstr ""
+
+#: java/expr.c:2861
+msgid "invalid PC in line number table"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2906
+#, c-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr ""
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2943
+#, c-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr ""
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3261
+msgid "unrecogized wide sub-instruction"
+msgstr ""
+
+#: java/jcf-io.c:543
+#, c-format
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+msgstr ""
+
+#: java/jcf-parse.c:338
+msgid "bad string constant"
+msgstr ""
+
+#: java/jcf-parse.c:356
+#, c-format
+msgid "bad value constant type %d, index %d"
+msgstr ""
+
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr ""
+
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr ""
+
+#: java/jcf-parse.c:619
+#, c-format
+msgid "cannot find file for class %s"
+msgstr ""
+
+#: java/jcf-parse.c:631
+msgid "not a valid Java .class file"
+msgstr ""
+
+#: java/jcf-parse.c:634
+msgid "error while parsing constant pool"
+msgstr ""
+
+#: java/jcf-parse.c:637
+#, c-format
+msgid "error in constant pool entry #%d\n"
+msgstr ""
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:649
+#, c-format
+msgid "reading class %s for the second time from %s"
+msgstr ""
+
+#: java/jcf-parse.c:667
+msgid "error while parsing fields"
+msgstr ""
+
+#: java/jcf-parse.c:670
+msgid "error while parsing methods"
+msgstr ""
+
+#: java/jcf-parse.c:673
+msgid "error while parsing final attributes"
+msgstr ""
+
+#: java/jcf-parse.c:687
+#, c-format
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+msgstr ""
+
+#: java/jcf-parse.c:777
+msgid "missing Code attribute"
+msgstr ""
+
+#: java/jcf-parse.c:1014
+msgid "source file seen twice on command line and will be compiled only once"
+msgstr ""
+
+#: java/jcf-parse.c:1030
+msgid "no input file specified"
+msgstr ""
+
+#: java/jcf-parse.c:1059
+#, c-format
+msgid "can't close input file %s"
+msgstr ""
+
+#: java/jcf-parse.c:1096
+#, c-format
+msgid "bad zip/jar file %s"
+msgstr ""
+
+#: java/jcf-write.c:2650
+#, c-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr ""
+
+#: java/jcf-write.c:2988
+msgid "field initializer type mismatch"
+msgstr ""
+
+#: java/jcf-write.c:3419
+#, c-format
+msgid "can't create directory %s"
+msgstr ""
+
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr "Es ist nicht möglich %s zu erzeugen"
+
+#: java/jv-scan.c:187
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr ""
+
+#: java/jv-scan.c:190
+#, c-format
+msgid "can't open output file `%s'"
+msgstr ""
+
+#: java/jv-scan.c:224
+#, c-format
+msgid "file not found `%s'"
+msgstr ""
+
+#: java/jvspec.c:426
+msgid "can't specify `-D' without `--main'\n"
+msgstr ""
+
+#: java/jvspec.c:429
+#, c-format
+msgid "`%s' is not a valid class name"
+msgstr "»%s« ist kein gültiger Klassenname"
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr "--resource erfordert -o"
+
+#: java/jvspec.c:442
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr ""
+
+#: java/jvspec.c:449
+msgid "cannot specify both -C and -o"
+msgstr "-C und -o können nicht zusammen angegeben werden"
+
+#: java/jvspec.c:461
+msgid "cannot create temporary file"
+msgstr "temporäre Datei konnte nicht angelegt werden"
+
+#: java/jvspec.c:489
+msgid "using both @FILE with multiple files not implemented"
+msgstr ""
+
+#: java/jvspec.c:538
+msgid "cannot specify `main' class when not linking"
+msgstr ""
+
+#: java/lang.c:548
+msgid "can't do dependency tracking with input from stdin"
+msgstr ""
+
+#: java/lang.c:564
+msgid "couldn't determine target name for dependency tracking"
+msgstr ""
+
+#: java/lex.c:303
+#, c-format
+msgid ""
+"unknown encoding: `%s'\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"`--encoding=UTF-8' option"
+msgstr ""
+
+#: java/mangle.c:85
+#, c-format
+msgid "can't mangle %s"
+msgstr ""
+
+#: java/mangle_name.c:144 java/mangle_name.c:216
+msgid "internal error - invalid Utf8 name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+msgid "';' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
+msgid "'*' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
+msgid "Class or interface declaration expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
+msgid "Missing class name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
+msgid "'{' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
+msgid "Missing super class name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
+msgid "Missing interface name"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
+msgid "Missing variable initializer"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
+msgid "Invalid declaration"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
+msgid "']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
+msgid "Unbalanced ']'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
+msgid "Invalid method declaration, method name required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
+msgid "Identifier expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
+msgid "Invalid method declaration, return type required"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
+msgid "')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
+msgid "Missing formal parameter term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
+msgid "Missing identifier"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
+msgid "Missing class type term"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
+msgid "Invalid interface type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
+msgid "':' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
+msgid "Invalid expression statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
+msgid "'(' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
+msgid "Missing term or ')'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
+msgid "Missing or invalid constant expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
+msgid "Missing term and ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
+msgid "Invalid control expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
+msgid "Invalid update expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
+msgid "Invalid init statement"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
+msgid "Missing term or ')' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
+msgid "'class' or 'this' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
+msgid "'class' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
+msgid "')' or term expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
+msgid "'[' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
+msgid "Field expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
+msgid "Missing term and ']' expected"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
+msgid "']' expected, invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
+msgid "Invalid type expression"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
+msgid "Invalid reference type"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
+msgid "Only constructors can invoke constructors"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
+#, c-format
+msgid ": `%s' JDK1.1(TM) feature"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
+#, c-format
+msgid ""
+"%s.\n"
+"%s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
+#, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
+#, c-format
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
+#, c-format
+msgid "missing static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
+#, c-format
+msgid "not a static field `%s'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, c-format
+msgid "No case for %s"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, c-format
+msgid "unregistered operator %s"
+msgstr ""
+
+#: java/typeck.c:553
+msgid "junk at end of signature string"
+msgstr ""
+
+#: java/verify.c:479
+msgid "bad pc in exception_table"
+msgstr ""
+
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
+#, c-format
+msgid "unknown opcode %d@pc=%d during verification"
+msgstr ""
+
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
+#, c-format
+msgid "verification error at PC=%d"
+msgstr ""
+
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
+msgstr ""
+
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
+msgstr ""
+
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
+msgstr ""
+
+#: java/lang-options.h:38
+msgid "Replace system path"
+msgstr ""
+
+#: java/lang-options.h:40
+msgid "Set class path"
+msgstr ""
+
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr ""
+
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
+msgstr ""
+
+#: java/lang-options.h:46
+msgid "Choose input encoding (default comes from locale)"
+msgstr ""
+
+#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr ""
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr ""
+
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
+msgstr ""
+
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
+msgstr ""
+
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr ""
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr ""
+
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
+msgstr ""
+
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
+msgstr ""
+
+#: objc/objc-act.c:651
+#, c-format
+msgid "object does not conform to the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:737 objc/objc-act.c:810
+#, c-format
+msgid "class `%s' does not implement the `%s' protocol"
+msgstr ""
+
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr ""
+
+#: objc/objc-act.c:963
+#, c-format
+msgid "unexpected type for `id' (%s)"
+msgstr ""
+
+#: objc/objc-act.c:968
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr ""
+
+#: objc/objc-act.c:1019
+#, c-format
+msgid "protocol `%s' has circular dependency"
+msgstr ""
+
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
+#, c-format
+msgid "cannot find protocol declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:1328
+#, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
+#, c-format
+msgid "cannot find class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2366
+#, c-format
+msgid "class `%s' already exists"
+msgstr ""
+
+#. fatal did not work with 2 args...should fix
+#: objc/objc-act.c:2473
+#, c-format
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr ""
+
+#: objc/objc-act.c:2480
+#, c-format
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
+msgid "inconsistent instance variable specification"
+msgstr ""
+
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
+#, c-format
+msgid "multiple declarations for method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4946
+#, c-format
+msgid "invalid receiver type `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
+#, c-format
+msgid "`%s' does not respond to `%s'"
+msgstr ""
+
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
+#, c-format
+msgid "no super class declared in interface for `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5081
+msgid "cannot find class (factory) method"
+msgstr ""
+
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
+#, c-format
+msgid "return type for `%s' defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5099
+#, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr ""
+
+#: objc/objc-act.c:5108
+msgid "return type defaults to id"
+msgstr ""
+
+#: objc/objc-act.c:5125
+msgid "cannot find method"
+msgstr ""
+
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr ""
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:5443
+#, c-format
+msgid "instance variable `%s' accessed in class method"
+msgstr ""
+
+#: objc/objc-act.c:5678
+#, c-format
+msgid "duplicate definition of class method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5684
+#, c-format
+msgid "duplicate declaration of class method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5720
+#, c-format
+msgid "duplicate definition of instance method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5726
+#, c-format
+msgid "duplicate declaration of instance method `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5766
+#, c-format
+msgid "duplicate interface declaration for category `%s(%s)'"
+msgstr ""
+
+#: objc/objc-act.c:5852
+#, c-format
+msgid "instance variable `%s' is declared private"
+msgstr ""
+
+#: objc/objc-act.c:5899
+#, c-format
+msgid "instance variable `%s' is declared %s"
+msgstr ""
+
+#: objc/objc-act.c:5909
+msgid "static access to object of type `id'"
+msgstr ""
+
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
+#, c-format
+msgid "incomplete implementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, c-format
+msgid "incomplete implementation of category `%s'"
+msgstr ""
+
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, c-format
+msgid "method definition for `%c%s' not found"
+msgstr ""
+
+#: objc/objc-act.c:6081
+#, c-format
+msgid "%s `%s' does not fully implement the `%s' protocol"
+msgstr "%s »%s« implementiert das »%s«-Protokoll nicht vollständig"
+
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+msgid "`@end' missing in implementation context"
+msgstr ""
+
+#: objc/objc-act.c:6167
+#, c-format
+msgid "reimplementation of class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6209
+#, c-format
+msgid "conflicting super class name `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6224
+#, c-format
+msgid "duplicate interface declaration for class `%s'"
+msgstr ""
+
+#: objc/objc-act.c:6506
+#, c-format
+msgid "duplicate declaration for protocol `%s'"
+msgstr ""
+
+#: objc/objc-act.c:7363
+msgid "[super ...] must appear in a method context"
+msgstr ""
+
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
+#, c-format
+msgid "potential selector conflict for method `%s'"
+msgstr ""
+
+#: objc-parse.y:2655
+msgid "`@end' must appear in an implementation context"
+msgstr ""
+
+#: objc-parse.y:2931
+msgid "method definition not in class context"
+msgstr ""
+
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
+msgstr ""
+
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
+msgstr "Code für die GNU-Laufzeitumgebung erzeugen"
+
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
+msgstr ""
+
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
+msgstr ""
+
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr ""
+
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
+msgstr "C-Header mit Plattform-spezifischen Merkmalen erzeugen"
+
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
+msgstr ""
+
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr ""
+
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr ""
+
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr ""
+
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr ""
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-keep_private_externs ist mit -dynamiclib nicht erlaubt"
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-private_bundle ist mit -dynamiclib nicht erlaubt"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "»-p« wird nicht unterstützt; verwenden Sie »-pg« und gprof(1)"
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr "-m32 und -m64 können nicht zusammen angegeben werden"
+
+#: config/arm/arm.h:178
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:180
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr ""
+
+#: config/arm/arm.h:182
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr ""
+
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "Profiling wird mit -mg nicht unterstützt\n"
+
+#: config/i386/sco5.h:196
+msgid "-p and -pp specified - pick one"
+msgstr ""
+
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
+msgstr ""
+
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr "GNU C unterstützt nicht -C ohne -E"
+
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C unterstützt nicht -CC ohne -E"
+
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr ""
+
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
+msgstr ""
+
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr ""
+
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr ""
+
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr ""
+
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr ""
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr ""
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "Profiling wird mit -mg nicht unterstützt\n"
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe wird nicht unterstützt"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
+msgstr ""
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr ""
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "I/O error on output"
+#~ msgstr "Ein-/Ausgabefehler bei der Ausgabe"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Interner Fehler in %s bei tradcpp.c:%d\n"
+#~ "Bitte senden Sie einen vollständigen Fehlerbericht\n"
+#~ "auf Englisch ein; Fehler in der deutschen Ãœbersetzung\n"
+#~ "sind an de@li.org zu melden.\n"
+#~ "Gehen Sie gemäß den Hinweisen in %s vor."
diff --git a/gcc/po/el.po b/gcc/po/el.po
index 0b432f328df..ac6a109df25 100644
--- a/gcc/po/el.po
+++ b/gcc/po/el.po
@@ -1,145 +1,68 @@
# Greek translation of gcc.
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Simos Xenitellis <simos@hellug.gr>, 2001.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Simos Xenitellis <simos@hellug.gr>, 2001, 2002.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.1-b20011219\n"
-"POT-Creation-Date: 2002-01-22 19:38-0800\n"
-"PO-Revision-Date: 2001-12-20 17:19+0000\n"
+"Project-Id-Version: gcc 3.2\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2002-08-18 15:46+0100\n"
"Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-7\n"
"Content-Transfer-Encoding: 8bit\n"
-#: attribs.c:310
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr ""
-#: attribs.c:318
+#: attribs.c:193
#, fuzzy, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "ëÜèïò áñéèìüò ïñéóìÜôùí"
-#: attribs.c:335
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
msgstr ""
-#: attribs.c:372
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
msgstr ""
-#: attribs.c:462 attribs.c:484 attribs.c:506 attribs.c:537 attribs.c:559
-#: attribs.c:582 attribs.c:612 attribs.c:650 attribs.c:697 attribs.c:727
-#: attribs.c:757 attribs.c:780 attribs.c:1026 attribs.c:1082 attribs.c:1138
-#: attribs.c:1199 attribs.c:1225 attribs.c:1427 config/arm/arm.c:2012
-#: config/arm/arm.c:2039 config/avr/avr.c:4683 config/h8300/h8300.c:3045
-#: config/h8300/h8300.c:3070 config/i386/i386.c:1261 config/i386/winnt.c:74
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr ""
-#: attribs.c:813
-#, fuzzy, c-format
-msgid "unknown machine mode `%s'"
-msgstr "Üãíùóôï óåô `%s'"
-
-#: attribs.c:816
-#, fuzzy, c-format
-msgid "no data type for mode `%s'"
-msgstr "äåí ïñßóôçêå âáñýôçôá ãéá ôï óýìâïëï `%s'"
-
-#: attribs.c:849
-msgid "section attribute cannot be specified for local variables"
-msgstr ""
-
-#: attribs.c:860
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr ""
-
-#: attribs.c:869
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr ""
-
-#: attribs.c:876
-#, fuzzy
-msgid "section attributes are not supported for this target"
-msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-
-#: attribs.c:918
-msgid "requested alignment is not a constant"
-msgstr ""
-
-#: attribs.c:923
-msgid "requested alignment is not a power of 2"
-msgstr ""
-
-#: attribs.c:928
-#, fuzzy
-msgid "requested alignment is too large"
-msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
-
-#: attribs.c:955
-#, fuzzy, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "ìüíï Ýíá üñéóìá ìðïñåß íá äçëùèåß"
-
-#: attribs.c:1000
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr ""
-
-#: attribs.c:1010
-msgid "alias arg not a string"
-msgstr ""
-
-#: attribs.c:1049 attribs.c:1105
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr ""
-
-#: attribs.c:1056 attribs.c:1112
-#, fuzzy, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-
-#: attribs.c:1196
-#, fuzzy, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-
-#: attribs.c:1253
-#, fuzzy, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
-
-#: attribs.c:1276 attribs.c:1281
-msgid "no vector mode with the size and type specified could be found"
-msgstr ""
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:759
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr ""
-#: builtins.c:766
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr ""
-#: builtins.c:773
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr ""
-#: builtins.c:780
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr ""
@@ -150,1297 +73,1474 @@ msgstr ""
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2759
+#: builtins.c:2875
#, fuzzy
msgid "__builtin_saveregs not supported by this target"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: builtins.c:2801
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr ""
-#: builtins.c:2807
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr ""
-#: builtins.c:2813
+#: builtins.c:2929
#, fuzzy
msgid "missing argument in `__builtin_args_info'"
msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: builtins.c:2845
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr ""
-#: builtins.c:2864
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr ""
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2869
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr ""
-#: builtins.c:2973
+#: builtins.c:3070
#, fuzzy
msgid "too many arguments to function `va_start'"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: builtins.c:3057
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr ""
-#: builtins.c:3085
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr ""
-#: builtins.c:3089
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr ""
-#: builtins.c:3213
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr ""
-#: builtins.c:3215
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr ""
-#: builtins.c:3229
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr ""
-#: builtins.c:3231
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr ""
-#: builtins.c:3399
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr ""
-#: builtins.c:3868
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr ""
-#: builtins.c:3882
-#, fuzzy
-msgid "__builtin_trap not supported by this target"
-msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-
#. just do library call, if unknown builtin
-#: builtins.c:3947 c-common.c:3685
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr ""
-#: c-common.c:550
-#, c-format
-msgid "`%s' is not defined outside of function scope"
+#: builtins.c:4165
+msgid "target format does not support infinity"
msgstr ""
-#: c-common.c:590
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
+#: c-common.c:1168
+#, c-format
+msgid "`%s' is not defined outside of function scope"
msgstr ""
-#: c-common.c:659
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
msgstr ""
-#: c-common.c:707 ch/decl.c:4100
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr ""
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr ""
-#: c-common.c:728
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr ""
-#: c-common.c:737
+#: c-common.c:1373
#, fuzzy
msgid "floating point overflow in expression"
msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
+#: c-common.c:1379
+#, fuzzy
+msgid "vector overflow in expression"
+msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
+
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:758
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-common.c:760
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-common.c:807
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-common.c:955
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr ""
-#: c-common.c:1246
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr ""
-#: c-common.c:1279 ch/actions.c:1027
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-common.c:1577
+#: c-common.c:2228
#, fuzzy
msgid "invalid truth-value expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: c-common.c:1628
+#: c-common.c:2279
#, fuzzy, c-format
msgid "invalid operands to binary %s"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: c-common.c:1863 c-common.c:1872
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-common.c:1865 c-common.c:1874
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-common.c:1940
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-common.c:1949
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-common.c:2000 f/com.c:14814
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr ""
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr ""
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr ""
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr ""
+
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr ""
-#: c-common.c:2004 f/com.c:14818
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr ""
-#: c-common.c:2008 f/com.c:14822
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr ""
-#: c-common.c:2123 f/com.c:14948
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-common.c:2167 c-common.c:2199
+#: c-common.c:2918 c-common.c:2950
#, fuzzy
msgid "invalid use of `restrict'"
msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò"
-#: c-common.c:2315
-msgid "__alignof__ applied to an incomplete type"
-msgstr ""
+#: c-common.c:3064
+#, fuzzy
+msgid "invalid application of `sizeof' to a function type"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: c-common.c:3074
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
+
+#: c-common.c:3080
+#, fuzzy, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "ìç Ýãêõñïò äåýôåñïò ôåëåóôÞò óå êáôÜóôáóç óõìâáôüôçôáò `%s'"
-#: c-common.c:2341
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr ""
-#: c-common.c:2783
+#: c-common.c:3618
#, fuzzy, c-format
msgid "cannot disable built-in function `%s'"
msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'"
-#: c-common.c:3064 c-typeck.c:1774
+#: c-common.c:3787 c-typeck.c:1748
#, fuzzy, c-format
msgid "too few arguments to function `%s'"
msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
-#: c-common.c:3070 c-typeck.c:1627
+#: c-common.c:3793 c-typeck.c:1601
#, fuzzy, c-format
msgid "too many arguments to function `%s'"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: c-common.c:3258
+#: c-common.c:3812
+#, fuzzy, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-common.c:3264
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr ""
-#: c-common.c:3266
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr ""
-#: c-common.c:3296
+#: c-common.c:4119
#, fuzzy
msgid "empty range specified"
msgstr "ìç ïñéóìÝíï"
-#: c-common.c:3347
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-common.c:3349
+#: c-common.c:4172
#, fuzzy
msgid "this is the first entry overlapping that value"
msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-#: c-common.c:3353 ch/actions.c:1125
+#: c-common.c:4176
#, fuzzy
msgid "duplicate case value"
msgstr "äéðëüò áñéèìüò ìçíýìáôïò"
-#: c-common.c:3354
+#: c-common.c:4177
msgid "previously used here"
msgstr ""
-#: c-common.c:3358
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr ""
-#: c-common.c:3359
+#: c-common.c:4182
#, fuzzy
msgid "this is the first default label"
msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-#: c-common.c:3387
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
msgstr ""
-#: c-common.c:3389
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
msgstr ""
-#: c-common.c:4023
-msgid "-Wformat-y2k ignored without -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
msgstr ""
-#: c-common.c:4025
-msgid "-Wformat-extra-args ignored without -Wformat"
+#: c-common.c:5654
+#, fuzzy, c-format
+msgid "unknown machine mode `%s'"
+msgstr "Üãíùóôï óåô `%s'"
+
+#: c-common.c:5657
+#, fuzzy, c-format
+msgid "no data type for mode `%s'"
+msgstr "äåí ïñßóôçêå âáñýôçôá ãéá ôï óýìâïëï `%s'"
+
+#: c-common.c:5666 c-common.c:6316
+#, fuzzy, c-format
+msgid "unable to emulate '%s'"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
+
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
msgstr ""
-#: c-common.c:4027
-msgid "-Wformat-nonliteral ignored without -Wformat"
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
msgstr ""
-#: c-common.c:4029
-msgid "-Wformat-security ignored without -Wformat"
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
msgstr ""
-#: c-common.c:4031
-msgid "-Wmissing-format-attribute ignored without -Wformat"
+#: c-common.c:5729
+#, fuzzy
+msgid "section attributes are not supported for this target"
+msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr ""
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
msgstr ""
-#: c-common.c:4122
+#: c-common.c:5781
+#, fuzzy
+msgid "requested alignment is too large"
+msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
+
+#: c-common.c:5808
+#, fuzzy, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "ìüíï Ýíá üñéóìá ìðïñåß íá äçëùèåß"
+
+#: c-common.c:5853
#, c-format
-msgid "declaration of `%s' shadows %s"
+msgid "`%s' defined both normally and as an alias"
msgstr ""
-#: c-convert.c:78 c-typeck.c:1031 c-typeck.c:4139 ch/convert.c:1164
-#: cp/typeck.c:1728 cp/typeck.c:6288
-msgid "void value not ignored as it ought to be"
+#: c-common.c:5863
+msgid "alias arg not a string"
msgstr ""
-#: c-convert.c:110 java/typeck.c:150
-msgid "conversion to non-scalar type requested"
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr ""
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr ""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
msgstr ""
-#: c-decl.c:470
-msgid "-traditional is deprecated and may be removed"
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
msgstr ""
-#: c-decl.c:560
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr ""
+
+#: c-common.c:5994 c-common.c:6050
#, fuzzy, c-format
-msgid "unknown C standard `%s'"
-msgstr "Üãíùóôï óåô `%s'"
+msgid "can't set `%s' attribute after definition"
+msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "Ôï åðþíõìï áíôéêåßìåíï äåí åßíáé áíáæçôÞóéìï"
+
+#: c-common.c:6183
+#, fuzzy, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
+
+#: c-common.c:6248
+#, fuzzy, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr ""
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr ""
-#: c-decl.c:842
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr ""
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr ""
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr ""
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr ""
+
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr ""
-#: c-decl.c:1018
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:1021
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:1024
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:1138 c-decl.c:1279 ch/decl.c:2920 java/decl.c:1373
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr ""
-#: c-decl.c:1144 c-decl.c:1286 ch/decl.c:2926 java/decl.c:1379
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr ""
-#: c-decl.c:1403 cp/decl.c:3138
+#: c-decl.c:893 cp/decl.c:3335
#, c-format
msgid "function `%s' redeclared as inline"
msgstr ""
-#: c-decl.c:1405 cp/decl.c:3140
+#: c-decl.c:895 cp/decl.c:3337
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr ""
-#: c-decl.c:1412 cp/decl.c:3147
+#: c-decl.c:902 cp/decl.c:3344
#, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr ""
-#: c-decl.c:1414 cp/decl.c:3149
+#: c-decl.c:904 cp/decl.c:3346
#, c-format
msgid "previous declaration of function `%s' was inline"
msgstr ""
-#: c-decl.c:1443 c-decl.c:1496
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr ""
-#: c-decl.c:1445
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr ""
-#: c-decl.c:1451
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr ""
-#: c-decl.c:1455 c-decl.c:1458
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr ""
-#: c-decl.c:1462 objc/objc-act.c:2334 objc/objc-act.c:6036
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr ""
-#: c-decl.c:1463 c-decl.c:1645 c-decl.c:1794 objc/objc-act.c:2336
-#: objc/objc-act.c:6038 objc/objc-act.c:6093
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr ""
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1549
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr ""
-#: c-decl.c:1592 c-decl.c:1611
+#: c-decl.c:1091 c-decl.c:1110
#, fuzzy, c-format
msgid "conflicting types for `%s'"
msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
-#: c-decl.c:1634
+#: c-decl.c:1133
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1640
+#: c-decl.c:1139
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
msgstr ""
-#: c-decl.c:1655 c-decl.c:1677
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr ""
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr ""
+
+#: c-decl.c:1175 c-decl.c:1198
#, fuzzy, c-format
msgid "redefinition of `%s'"
msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
-#: c-decl.c:1658
+#: c-decl.c:1178
#, fuzzy, c-format
msgid "redeclaration of `%s'"
msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
-#: c-decl.c:1661
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr ""
-#: c-decl.c:1670 c-decl.c:1682
-#, fuzzy, c-format
-msgid "`%s' previously defined here"
-msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç"
-
-#: c-decl.c:1671 c-decl.c:1683
-#, fuzzy, c-format
-msgid "`%s' previously declared here"
-msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç"
-
-#: c-decl.c:1704
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr ""
-#: c-decl.c:1705 c-decl.c:1713 c-decl.c:1729
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr ""
-#: c-decl.c:1712
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr ""
-#: c-decl.c:1727
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr ""
-#: c-decl.c:1745
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr ""
-#: c-decl.c:1751
+#: c-decl.c:1267
#, fuzzy, c-format
msgid "`%s' declared inline after its definition"
msgstr "%s: äéðëüò ïñéóìüò Ýêäïóçò êáôçãïñßáò"
-#: c-decl.c:1758
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr ""
-#: c-decl.c:1766
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr ""
-#: c-decl.c:1773
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr ""
-#: c-decl.c:1780
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr ""
-#: c-decl.c:1793
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr ""
-#: c-decl.c:2097 java/decl.c:1072
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
msgstr ""
-#: c-decl.c:2100 java/decl.c:1075
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
msgstr ""
-#: c-decl.c:2121 cp/decl.c:4220
+#: c-decl.c:1643 cp/decl.c:4479
#, fuzzy
msgid "a parameter"
msgstr "êáêü üñéóìá"
-#: c-decl.c:2123 cp/decl.c:4237
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
msgstr ""
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2127 cp/decl.c:4241
+#: c-decl.c:1649 cp/decl.c:4500
msgid "a global declaration"
msgstr ""
-#: c-decl.c:2171
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr ""
-#: c-decl.c:2191 java/decl.c:1025
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr ""
-#: c-decl.c:2206 c-decl.c:2421
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr ""
-#: c-decl.c:2316 cp/decl.c:4079
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr ""
-#: c-decl.c:2317
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr ""
-#: c-decl.c:2330
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "óöÜëìá ôáéñéÜóìáôïò ôýðïõ ìå ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç"
-#: c-decl.c:2332
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'"
-#: c-decl.c:2349
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr ""
-
-#: c-decl.c:2400
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr ""
-#: c-decl.c:2425
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr ""
-#: c-decl.c:2449
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr ""
-#: c-decl.c:2491
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr ""
-#: c-decl.c:2613
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr ""
-#: c-decl.c:2633 c-decl.c:2635
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "áõôïíüçôç äéáêýñçîç ôçò óõíÜñôçóçò `%s'"
-#: c-decl.c:2723
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr ""
-#: c-decl.c:2780
+#: c-decl.c:2253
#, fuzzy, c-format
msgid "duplicate label declaration `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: c-decl.c:2783
+#: c-decl.c:2256
#, fuzzy
msgid "this is a previous declaration"
msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-#: c-decl.c:3291
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr ""
-#: c-decl.c:3310
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr ""
-#: c-decl.c:3317
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr ""
-#: c-decl.c:3322 c-parse.y:725 c-parse.y:727 objc-parse.y:761 objc-parse.y:763
-#: objc-parse.y:2987 parse.y:728 parse.y:1808
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
#, fuzzy
msgid "empty declaration"
msgstr "êåíü áëöáñéèìçôéêü"
-#: c-decl.c:3352
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
msgstr ""
-#: c-decl.c:3354
-msgid "ISO C89 does not support `[*]' array declarators"
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
msgstr ""
-#: c-decl.c:3357
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr ""
-#: c-decl.c:3376
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:3450
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr ""
-#: c-decl.c:3464
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
msgstr ""
-#: c-decl.c:3471
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr ""
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3478
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr ""
-#: c-decl.c:3498 c-typeck.c:4907
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr ""
-#: c-decl.c:3504
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr ""
-#: c-decl.c:3510
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr ""
-#: c-decl.c:3523
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr ""
-#: c-decl.c:3558 c-decl.c:6198 cp/decl.c:7264 cp/decl.c:13533
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, c-format
msgid "inline function `%s' given attribute noinline"
msgstr ""
-#: c-decl.c:3639
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr ""
-#: c-decl.c:3644
+#: c-decl.c:3033
#, fuzzy, c-format
msgid "array size missing in `%s'"
msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôçò åéóüäïõ `%s'"
-#: c-decl.c:3660
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr ""
-#: c-decl.c:3688 ch/decl.c:4133
+#: c-decl.c:3077
#, fuzzy, c-format
msgid "storage size of `%s' isn't known"
msgstr "Ôï üíïìá `%s' åßíáé Üãíùóôï\n"
-#: c-decl.c:3698
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr ""
-#: c-decl.c:3757
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr ""
-#: c-decl.c:3832
+#: c-decl.c:3247
#, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr ""
-#: c-decl.c:4136 cp/decl.c:10069
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr ""
-#: c-decl.c:4141
-msgid "ISO C89 does not support `long long'"
-msgstr ""
+#: c-decl.c:3597
+#, fuzzy
+msgid "ISO C90 does not support `long long'"
+msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-#: c-decl.c:4146 cp/decl.c:10074
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, fuzzy, c-format
msgid "duplicate `%s'"
msgstr "äéðëü êëåéäß"
-#: c-decl.c:4152 cp/decl.c:10098
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr ""
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr ""
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr ""
-#: c-decl.c:4167 cp/decl.c:10103
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:4206
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr ""
-#: c-decl.c:4235
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr ""
-#: c-decl.c:4239 cp/decl.c:10217
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr ""
-#: c-decl.c:4246 cp/decl.c:10221
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr ""
-#: c-decl.c:4249
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr ""
-#: c-decl.c:4255
+#: c-decl.c:3737
#, fuzzy, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "ìç Ýãêõñïò äçëùôÞò ðåäßïõ: `%s'"
-#: c-decl.c:4257 cp/decl.c:10210
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr ""
-#: c-decl.c:4263 cp/decl.c:10230
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr ""
-#: c-decl.c:4282 cp/decl.c:10251
+#: c-decl.c:3763 cp/decl.c:11075
#, fuzzy, c-format
msgid "complex invalid for `%s'"
msgstr "Ìç Ýãêõñç ðñïôåñáéüôçôá `%s'"
-#: c-decl.c:4327
-msgid "ISO C89 does not support complex types"
-msgstr ""
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
+msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-#: c-decl.c:4339
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr ""
-#: c-decl.c:4345 c-decl.c:4357
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr ""
-#: c-decl.c:4372 c-decl.c:4811 cp/decl.c:10853
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
#, fuzzy
msgid "duplicate `const'"
msgstr "äéðëü êëåéäß"
-#: c-decl.c:4374 c-decl.c:4815 cp/decl.c:10857
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
#, fuzzy
msgid "duplicate `restrict'"
msgstr "äéðëü êëåéäß"
-#: c-decl.c:4376 c-decl.c:4813 cp/decl.c:10855
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
#, fuzzy
msgid "duplicate `volatile'"
msgstr "äéðëü êëåéäß"
-#: c-decl.c:4398 cp/decl.c:10402
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr ""
-#: c-decl.c:4407
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr ""
-#: c-decl.c:4409
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr ""
-#: c-decl.c:4411
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr ""
-#: c-decl.c:4424
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr ""
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr ""
-#: c-decl.c:4428 cp/decl.c:10449
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr ""
-#: c-decl.c:4431 cp/decl.c:10451
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr ""
-#: c-decl.c:4443 cp/decl.c:10465
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr ""
-#: c-decl.c:4445 cp/decl.c:10468
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr ""
-#: c-decl.c:4449 cp/decl.c:10472
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr ""
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr ""
-#: c-decl.c:4452 cp/decl.c:10476
+#: c-decl.c:3948 cp/decl.c:11319
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
msgstr ""
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4487 c-decl.c:4676
+#: c-decl.c:3987 c-decl.c:4188
msgid "static or type qualifiers in non-parameter array declarator"
msgstr ""
-#: c-decl.c:4531
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr ""
-#: c-decl.c:4537
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr ""
-#: c-decl.c:4558
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr ""
-#: c-decl.c:4563
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr ""
-#: c-decl.c:4570
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr ""
-#: c-decl.c:4583
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
msgstr ""
-#: c-decl.c:4586
+#: c-decl.c:4089
#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
+msgid "ISO C90 forbids variable-size array `%s'"
msgstr ""
-#: c-decl.c:4616 c-decl.c:4837 cp/decl.c:11074
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, fuzzy, c-format
msgid "size of array `%s' is too large"
msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
-#: c-decl.c:4633
-msgid "ISO C89 does not support flexible array members"
-msgstr ""
+#: c-decl.c:4145
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
+msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò"
-#: c-decl.c:4643
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr ""
-#: c-decl.c:4650 c-decl.c:4887
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4696 cp/decl.c:10613
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr ""
-#: c-decl.c:4701 cp/decl.c:10618
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr ""
-#: c-decl.c:4736
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
msgstr ""
-#: c-decl.c:4740
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4769 c-decl.c:4852 c-decl.c:4976 c-decl.c:5070
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4809 cp/decl.c:10849
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr ""
-#: c-decl.c:4907 cp/decl.c:11357
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr ""
-#: c-decl.c:4940
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4965
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr ""
-#: c-decl.c:5014
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr ""
-#: c-decl.c:5020
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr ""
-#: c-decl.c:5052 c-decl.c:5054 c-decl.c:5061
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, fuzzy, c-format
msgid "invalid storage class for function `%s'"
msgstr "ìç Ýãêõñç ôÜîç ÷áñáêôÞñùí `%s'"
-#: c-decl.c:5076
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr ""
-#: c-decl.c:5088
+#: c-decl.c:4594
#, fuzzy
msgid "cannot inline function `main'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï áñ÷åßï fifo `%s'"
-#: c-decl.c:5141
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr ""
-#: c-decl.c:5214 c-decl.c:6250
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr ""
-#: c-decl.c:5220
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:5252 c-decl.c:6641
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr ""
-#: c-decl.c:5255
+#: c-decl.c:4773
#, fuzzy
msgid "parameter has incomplete type"
msgstr "ìç ðëÞñçò åããñáöÞ"
-#: c-decl.c:5276
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr ""
-#: c-decl.c:5279
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr ""
-#: c-decl.c:5344
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr ""
-#: c-decl.c:5385
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr ""
-#: c-decl.c:5416
+#: c-decl.c:4934
#, c-format
msgid "`struct %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5419
+#: c-decl.c:4937
#, c-format
msgid "`union %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5422
+#: c-decl.c:4940
#, c-format
msgid "`enum %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5429
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr ""
-#: c-decl.c:5431
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr ""
-#: c-decl.c:5433
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr ""
-#: c-decl.c:5437
+#: c-decl.c:4955
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr ""
-#: c-decl.c:5516
+#: c-decl.c:5032
#, fuzzy, c-format
msgid "redefinition of `union %s'"
msgstr "Ïé ïñéóìïß ðçãÞ âñßóêïíôáé óôï ÁÑ×ÅÉÏ"
-#: c-decl.c:5519
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
msgstr ""
-#: c-decl.c:5558
-msgid "unnamed fields of type other than struct or union are not allowed"
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5599 c-decl.c:5602
+#: c-decl.c:5169 c-decl.c:5172
#, fuzzy, c-format
msgid "%s defined inside parms"
msgstr "óõíå÷ßæåôáé óôï ôìÞìá"
-#: c-decl.c:5600 c-decl.c:5603 c-decl.c:5614
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
-msgstr ""
+msgstr "Ýíùóç"
-#: c-decl.c:5600 c-decl.c:5603
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
-msgstr ""
+msgstr "äïìÞ"
# src/request.c:37
-#: c-decl.c:5613
+#: c-decl.c:5183
#, fuzzy, c-format
msgid "%s has no %s"
msgstr "%s óå %s"
-#: c-decl.c:5614
+#: c-decl.c:5184
msgid "struct"
-msgstr ""
+msgstr "äïìÞ"
-#: c-decl.c:5615
+#: c-decl.c:5185
msgid "named members"
-msgstr ""
+msgstr "åðþíõìá ìÝëç"
-#: c-decl.c:5615
+#: c-decl.c:5185
msgid "members"
-msgstr ""
+msgstr "ìÝëç"
-#: c-decl.c:5654
+#: c-decl.c:5224
#, fuzzy, c-format
msgid "nested redefinition of `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: c-decl.c:5667
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr ""
-#: c-decl.c:5678
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr ""
-#: c-decl.c:5690
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr ""
-#: c-decl.c:5702
+#: c-decl.c:5271
#, fuzzy, c-format
msgid "negative width in bit-field `%s'"
msgstr "Áñíçôéêü ðëÜôïò óôçí áðïôßìçóç"
-#: c-decl.c:5704
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr ""
-#: c-decl.c:5706
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr ""
-#: c-decl.c:5720
+#: c-decl.c:5289
#, fuzzy, c-format
msgid "`%s' is narrower than values of its type"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: c-decl.c:5765
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr ""
-#: c-decl.c:5767
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5769
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5794 ch/typeck.c:3060
+#: c-decl.c:5357
#, fuzzy, c-format
msgid "duplicate member `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: c-decl.c:5838
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr ""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5932
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr ""
-#: c-decl.c:5966
+#: c-decl.c:5592
#, fuzzy
msgid "enum defined inside parms"
msgstr "Ìç ïñéóìÝíï üíïìá %s"
-#: c-decl.c:5999
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:6108 ch/decl.c:4437
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr ""
-#: c-decl.c:6121 ch/decl.c:4449
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr ""
-#: c-decl.c:6126
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
msgstr ""
-#: c-decl.c:6204
+#: c-decl.c:5834
msgid "return type is an incomplete type"
msgstr ""
-#: c-decl.c:6212
+#: c-decl.c:5842
msgid "return type defaults to `int'"
msgstr "ï åðéóôñåöüìåíïò ôýðïò ðñïêáèïñßæåôáé óå `int'"
-#: c-decl.c:6259
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr ""
-#: c-decl.c:6266
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr ""
-#: c-decl.c:6272
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr ""
-#: c-decl.c:6279
+#: c-decl.c:5909
#, fuzzy, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý"
-#: c-decl.c:6303 c-decl.c:6884
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
-msgstr ""
+msgstr "ç åðéóôñåöüìåíç ôéìÞ ôçò `%s' äåí åßíáé `int'"
-#: c-decl.c:6319
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
-msgstr ""
+msgstr "ôï ðñþôï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `int'"
-#: c-decl.c:6328
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
-msgstr ""
+msgstr "ôï äåýôåñï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `char **'"
-#: c-decl.c:6337
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
-msgstr ""
+msgstr "ôï ôñßôï üñéóìá ôçò `%s' ðñÝðåé íá åßíáé `char **'"
-#: c-decl.c:6346
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
-msgstr ""
+msgstr "ç `%s' ðáßñíåé åßôå êáíÝíá åßôå äýï ïñßóìáôá"
-#: c-decl.c:6349
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
-msgstr ""
+msgstr "ç `%s' åßíáé óõíÞèùò ìç-óôáôéêÞ óõíÜñôçóç"
-#: c-decl.c:6459
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr ""
-#: c-decl.c:6480
+#: c-decl.c:6098
msgid "parameter name omitted"
-msgstr ""
+msgstr "Ý÷åé ðáñáëçöèåß ôï üíïìá ôçò ðáñáìÝôñïõ"
-#: c-decl.c:6484 c-decl.c:6586
+#: c-decl.c:6102 c-decl.c:6204
#, fuzzy, c-format
msgid "parameter `%s' declared void"
msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
-#: c-decl.c:6560
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr ""
-#: c-decl.c:6579
+#: c-decl.c:6197
#, fuzzy, c-format
msgid "multiple parameters named `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: c-decl.c:6610 c-decl.c:6612
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr ""
-#: c-decl.c:6648
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr ""
-#: c-decl.c:6696
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr ""
-#: c-decl.c:6726
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr ""
-#: c-decl.c:6740
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr ""
-#: c-decl.c:7054
+#: c-decl.c:6518 cp/decl.c:15049
+#, fuzzy
+msgid "no return statement in function returning non-void"
+msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü"
+
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr ""
-#: c-decl.c:7074
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr ""
-#: c-decl.c:7078
+#: c-decl.c:6733
#, fuzzy, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d"
@@ -1448,932 +1548,951 @@ msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7133
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:7157
+#: c-decl.c:6815
#, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:7160
+#: c-decl.c:6818
#, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:7163
+#: c-decl.c:6821
#, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:7171
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:7173
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:7175
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr ""
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
msgstr ""
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
msgstr ""
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
msgstr ""
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr ""
-#: c-format.c:252
+#: c-format.c:233
#, fuzzy
msgid "unrecognized format specifier"
msgstr "Üãíùóôï ðñüèåìá: %s"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr ""
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr ""
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr ""
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr ""
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr ""
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr ""
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr ""
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr ""
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr ""
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr ""
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr ""
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr ""
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr ""
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr ""
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr ""
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr ""
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1791
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
-msgstr ""
+msgstr "ìÝãåèïò ðåäßïõ"
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
msgstr ""
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
-msgstr ""
+msgstr "áêñßâåéá"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
msgstr ""
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr ""
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
msgstr ""
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr ""
-#: c-format.c:645
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
msgstr ""
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr ""
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr ""
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
msgstr ""
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
msgstr ""
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr ""
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr ""
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr ""
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr ""
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr ""
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr ""
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr ""
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr ""
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr ""
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
msgstr ""
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr ""
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr ""
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr ""
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr ""
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr ""
-#: c-format.c:690
+#: c-format.c:671
#, fuzzy
msgid "fill character"
msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ðáñáâïëÞò"
-#: c-format.c:690
+#: c-format.c:671
#, fuzzy
msgid "fill character in strfmon format"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï áñ÷åßï: "
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr ""
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr ""
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
msgstr ""
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr ""
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
msgstr ""
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr ""
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr ""
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr ""
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr ""
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr ""
-#: c-format.c:698
+#: c-format.c:679
#, fuzzy
msgid "right precision"
msgstr "ÅìöÜíéóç Ýêäïóçò ðñïãñÜììáôïò"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr ""
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr ""
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
msgstr ""
-#: c-format.c:1122 c-format.c:1143 c-format.c:2201
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
#, fuzzy
msgid "missing $ operand number in format"
msgstr "Ëåßðåé ï äåêáåîáäéêüò áñéèìüò óôïí ÷áñáêôÞñá äéáöõãÞò."
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
msgstr ""
-#: c-format.c:1160
+#: c-format.c:1145
#, fuzzy
msgid "operand number out of range in format"
msgstr "Ï áñéèìüò óýíäåóìïõ åßíáé Ýîù áðü ôï üñéï"
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr ""
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
msgstr ""
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
msgstr ""
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
msgstr ""
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
msgstr ""
-#: c-format.c:1359
+#: c-format.c:1351
#, fuzzy
msgid "too many arguments for format"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
msgstr ""
-#: c-format.c:1365
-msgid "zero-length format string"
-msgstr ""
+#: c-format.c:1357
+#, fuzzy, c-format
+msgid "zero-length %s format string"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-#: c-format.c:1368
+#: c-format.c:1361
#, fuzzy
msgid "format is a wide character string"
msgstr "ëßóôá ìå üëá ôá ãíùóôÜ óýíïëá ÷áñáêôÞñùí"
-#: c-format.c:1371
+#: c-format.c:1364
#, fuzzy
msgid "unterminated format string"
msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-#, fuzzy
-msgid "null format string"
-msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'"
-
-#: c-format.c:1670
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr ""
-#: c-format.c:1685
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr ""
-#: c-format.c:1724 c-format.c:1961
+#: c-format.c:1635 c-format.c:1872
#, fuzzy, c-format
msgid "repeated %s in format"
msgstr "repeated leap second moment"
-#: c-format.c:1737
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
msgstr ""
-#: c-format.c:1757 c-format.c:1875 c-format.c:2155 c-format.c:2208
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
#, fuzzy
msgid "too few arguments for format"
msgstr "ðïëý ëßãá ïñßóìáôá"
-#: c-format.c:1817
+#: c-format.c:1728
#, fuzzy, c-format
msgid "zero width in %s format"
msgstr "óöÜëìá åããñáöÞò %s"
-#: c-format.c:1836
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr ""
-#: c-format.c:1890
+#: c-format.c:1801
msgid "field precision"
msgstr ""
-#: c-format.c:1905
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr ""
-#: c-format.c:1945
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr ""
-#: c-format.c:1995
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr ""
-#: c-format.c:2006
+#: c-format.c:1917
#, fuzzy, c-format
msgid "unknown conversion type character `%c' in format"
msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'"
-#: c-format.c:2009
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr ""
-#: c-format.c:2016
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
msgstr ""
-#: c-format.c:2032
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
msgstr ""
-#: c-format.c:2041
+#: c-format.c:1952
#, fuzzy, c-format
msgid "%s does not support %s"
msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-#: c-format.c:2050
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
msgstr ""
-#: c-format.c:2083
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
msgstr ""
-#: c-format.c:2087
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
msgstr ""
-#: c-format.c:2093
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
msgstr ""
-#: c-format.c:2097
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr ""
-#: c-format.c:2116
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr ""
-#: c-format.c:2119
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr ""
#. The end of the format string was reached.
-#: c-format.c:2135
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr ""
-#: c-format.c:2148
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr ""
-#: c-format.c:2169
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
msgstr ""
-#: c-format.c:2184
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr ""
-#: c-format.c:2186
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
msgstr ""
-#: c-format.c:2305
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2314
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2334
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr ""
-#: c-format.c:2344
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr ""
-#: c-format.c:2351
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr ""
-#: c-format.c:2353
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr ""
-#: c-format.c:2424
+#: c-format.c:2330
msgid "pointer"
msgstr ""
-#: c-format.c:2426
+#: c-format.c:2332
#, fuzzy
msgid "different type"
msgstr "åßäïò ìïñöÞò"
-#: c-format.c:2447
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr ""
-#: c-format.c:2450
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr ""
-#: c-lex.c:292
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr ""
+
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
msgstr ""
-#: c-lex.c:342
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
msgstr ""
-#: c-lex.c:344
-#, fuzzy, c-format
-msgid "ignoring #pragma %s"
-msgstr "áãíïïýíôáé üëá ôá ïñßóìáôá"
-
-#: c-lex.c:394
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr ""
-#: c-lex.c:640
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr ""
-#: c-lex.c:730
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr ""
-
-#: c-lex.c:757
-#, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr ""
-
-#: c-lex.c:787
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
msgstr ""
-#: c-lex.c:789
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
msgstr ""
-#: c-lex.c:887
-msgid "too many decimal points in floating constant"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
msgstr ""
-#: c-lex.c:889
-msgid "decimal point in exponent - impossible!"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
msgstr ""
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:900
-msgid "underscore in number"
-msgstr ""
+#: c-lex.c:873
+#, fuzzy, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
-#: c-lex.c:962
-msgid "numeric constant with no digits"
-msgstr ""
+#: c-lex.c:941
+#, fuzzy, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: c-lex.c:965
-msgid "numeric constant contains digits beyond the radix"
-msgstr ""
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+#, fuzzy
+msgid "ignoring invalid multibyte character"
+msgstr "Ìç Ýãêõñï Þ áóõìðëÞñùôï multibyte Þ ðëáôýò ÷áñáêôÞñáò"
-#: c-lex.c:976
-msgid "floating constant may not be in radix 16"
-msgstr ""
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: c-lex.c:979
-msgid "hexadecimal floating constant has no exponent"
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
msgstr ""
-#: c-lex.c:991
-msgid "floating constant exponent has no digits"
-msgstr ""
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
-#: c-lex.c:1011
-msgid "more than one 'f' suffix on floating constant"
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
+
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
msgstr ""
-#: c-lex.c:1014
-msgid "traditional C rejects the 'f' suffix"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-lex.c:1021
-msgid "more than one 'l' suffix on floating constant"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
msgstr ""
-#: c-lex.c:1024
-msgid "traditional C rejects the 'l' suffix"
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
+
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
msgstr ""
-#: c-lex.c:1032
-msgid "more than one 'i' or 'j' suffix on floating constant"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
msgstr ""
-#: c-lex.c:1034 c-lex.c:1128
-msgid "ISO C forbids imaginary numeric constants"
+#: c-opts.c:1273
+msgid "output filename specified twice"
msgstr ""
-#: c-lex.c:1039
-#, fuzzy
-msgid "invalid suffix on floating constant"
-msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr ""
-#. We got an exception from parse_float()
-#: c-lex.c:1056
-#, fuzzy
-msgid "floating constant out of range"
-msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr ""
-#: c-lex.c:1068
-msgid "floating point number exceeds range of 'double'"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-lex.c:1097
-msgid "two 'u' suffixes on integer constant"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-lex.c:1100
-msgid "traditional C rejects the 'u' suffix"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-lex.c:1111
-msgid "three 'l' suffixes on integer constant"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr ""
-#: c-lex.c:1113
-#, fuzzy
-msgid "'lul' is not a valid integer suffix"
-msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
-#: c-lex.c:1115
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr ""
+#: c-opts.c:1474
+#, fuzzy, c-format
+msgid "opening dependency file %s"
+msgstr "äõíáìéêÝò åîáñôÞóåéò.\n"
-#: c-lex.c:1118
-msgid "ISO C89 forbids long long integer constants"
-msgstr ""
+#: c-opts.c:1484
+#, fuzzy, c-format
+msgid "closing dependency file %s"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: c-lex.c:1126
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr ""
+#: c-opts.c:1487
+#, fuzzy, c-format
+msgid "when writing output to %s"
+msgstr "óöÜëìá åããñáöÞò %s"
-#: c-lex.c:1133
-#, fuzzy
-msgid "invalid suffix on integer constant"
-msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr ""
-#: c-lex.c:1141
+#: c-opts.c:1715
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
msgstr ""
-#: c-lex.c:1231
-msgid "width of integer constant changes with -traditional"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
msgstr ""
-#: c-lex.c:1233
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
msgstr ""
-#: c-lex.c:1235
-msgid "width of integer constant may change on other systems with -traditional"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
msgstr ""
-#: c-lex.c:1245
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
msgstr ""
-#: c-lex.c:1248
-msgid "an unsigned long long int"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
msgstr ""
-#: c-lex.c:1249
-msgid "a long long int"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
msgstr ""
-#: c-lex.c:1250
-msgid "an unsigned long int"
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
msgstr ""
-#: c-lex.c:1254
-#, fuzzy
-msgid "decimal constant is so large that it is unsigned"
-msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
-
-#: c-lex.c:1263
-msgid "complex integer constant is too wide for 'complex int'"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
msgstr ""
-#: c-lex.c:1283
-#, fuzzy
-msgid "integer constant is larger than the maximum value for its type"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
msgstr ""
-"ï äçëùìÝíïò áñéèìüò bytes `%s' åßíáé ìåãáëýôåñïò áðü ôï ìÝãéóôï\n"
-"ðïõ ìðïñåß íá áíáðáñáóôáèåß áðü ôï ôýðï äåäïìÝíùí `long'"
-#: c-lex.c:1287
-#, c-format
-msgid "missing white space after number '%.*s'"
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
msgstr ""
-#: c-lex.c:1323 cpplex.c:1866
-#, fuzzy
-msgid "ignoring invalid multibyte character"
-msgstr "Ìç Ýãêõñï Þ áóõìðëÞñùôï multibyte Þ ðëáôýò ÷áñáêôÞñáò"
-
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 objc-parse.y:57 parse.y:51
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "óöÜëìá óýíôáîçò"
-#: /usr/share/bison/bison.simple:107 /usr/share/bison/bison.simple:110
-#: /usr/share/bison/bison.simple:172
+#: /usr/share/bison/bison.simple:179
#, fuzzy
msgid "syntax error: cannot back up"
msgstr "ï äéá÷ùñéóôÞò äå ìðïñåß íá åßíáé êåíüò"
-#: /usr/share/bison/bison.simple:358 /usr/share/bison/bison.simple:410
-#: /usr/share/bison/bison.simple:946
-#, fuzzy
-msgid "parser stack overflow"
-msgstr "Õðåñ÷åßëéóç ðßíáêá áñ÷åßïõ"
-
-#: c-parse.y:288 objc-parse.y:310
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
msgstr ""
-#: c-parse.y:321 c-typeck.c:6909 ch/parse.c:2113 objc-parse.y:343
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr ""
-#: c-parse.y:329 objc-parse.y:351
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr ""
-#: c-parse.y:331 objc-parse.y:353
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr ""
-#: c-parse.y:344 objc-parse.y:366
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr ""
-#: c-parse.y:404 cppexp.c:691
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr ""
-#: c-parse.y:466 objc-parse.y:488
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr ""
-#: c-parse.y:546 objc-parse.y:568
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr ""
-#: c-parse.y:593 objc-parse.y:615
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
msgstr ""
-#: c-parse.y:607 objc-parse.y:629
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
msgstr ""
-#: c-parse.y:638 objc-parse.y:660
+#: c-parse.y:677 objc-parse.y:699
msgid "first argument to __builtin_choose_expr not a constant"
msgstr ""
-#: c-parse.y:681
-msgid "traditional C rejects string concatenation"
-msgstr ""
-
-#: c-parse.y:696 objc-parse.y:732
-msgid "ISO C does not permit use of `varargs.h'"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
msgstr ""
-#: c-parse.y:957 c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:996
-#: c-parse.y:1002 c-parse.y:1008 c-parse.y:1014 c-parse.y:1047 c-parse.y:1053
-#: c-parse.y:1059 c-parse.y:1065 c-parse.y:1110 c-parse.y:1116 c-parse.y:1122
-#: c-parse.y:1128 objc-parse.y:993 objc-parse.y:999 objc-parse.y:1005
-#: objc-parse.y:1011 objc-parse.y:1032 objc-parse.y:1038 objc-parse.y:1044
-#: objc-parse.y:1050 objc-parse.y:1083 objc-parse.y:1089 objc-parse.y:1095
-#: objc-parse.y:1101 objc-parse.y:1146 objc-parse.y:1152 objc-parse.y:1158
-#: objc-parse.y:1164 parse.y:1888 parse.y:1895 parse.y:1934
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, fuzzy, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: c-parse.y:1410 objc-parse.y:1455
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1424 objc-parse.y:1469
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr ""
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr ""
-#: c-parse.y:1431 objc-parse.y:1476
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr ""
-#: c-parse.y:1460
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1468 c-parse.y:1498 objc-parse.y:1507 objc-parse.y:1537
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
msgstr ""
-#: c-parse.y:1672 objc-parse.y:1713
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
msgstr ""
-#: c-parse.y:1684 objc-parse.y:1725 parse.y:2346
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
#, fuzzy
msgid "comma at end of enumerator list"
msgstr "óêïõðßäéá óôï ôÝëïò ôïõ áñéèìïý"
-#: c-parse.y:1692 objc-parse.y:1733
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr ""
-#: c-parse.y:1701 objc-parse.y:1742 objc-parse.y:2809
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr ""
-#: c-parse.y:1714 objc-parse.y:1769
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr ""
-#: c-parse.y:1723 objc-parse.y:1778
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
msgstr ""
-#: c-parse.y:1872 c-parse.y:1876 c-parse.y:1880 objc-parse.y:1927
-#: objc-parse.y:1931 objc-parse.y:1935
-msgid "storage class specifier in array declarator"
-msgstr ""
-
-#: c-parse.y:1895 objc-parse.y:1950
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
msgstr ""
-#: c-parse.y:1912 objc-parse.y:1967
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
msgstr ""
-#: c-parse.y:1986 objc-parse.y:2045
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:2035 objc-parse.y:2094 parse.y:1588
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2160 objc-parse.y:2219
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr ""
-#: c-parse.y:2280 objc-parse.y:2339
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
msgstr ""
-#: c-parse.y:2378 objc-parse.y:2437
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
msgstr ""
@@ -2383,1430 +2502,1574 @@ msgstr ""
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2404 objc-parse.y:2463
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr ""
-#: c-parse.y:2498 objc-parse.y:2557
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr ""
-#: /usr/share/bison/bison.simple:639 /usr/share/bison/bison.simple:699
-msgid "parse error; also virtual memory exceeded"
+#: /usr/share/bison/bison.simple:795
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
msgstr "óöÜëìá åðåîåñãáóßáò· åðßóçò ç ìíÞìç åîáíôëÞèçêå"
-#: /usr/share/bison/bison.simple:643 /usr/share/bison/bison.simple:703
-#: /usr/share/bison/bison.simple:821 cp/spew.c:349
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "óöÜëìá åðåîåñãáóßáò"
-#: c-parse.y:2814 cp/spew.c:1477 objc-parse.y:3501
+#: /usr/share/bison/bison.simple:924
+#, fuzzy
+msgid "parser stack overflow"
+msgstr "Õðåñ÷åßëéóç ðßíáêá áñ÷åßïõ"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s óôï ôÝëïò ôçò åéóüäïõ"
-#: c-parse.y:2820 cp/spew.c:1483 objc-parse.y:3507
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%s ðñéí áðü %s'%c'"
-#: c-parse.y:2822 cp/spew.c:1485 objc-parse.y:3509
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
-msgstr ""
+msgstr "%s ðñéí áðü %s'\\x%x'"
-#: c-parse.y:2826 cp/spew.c:1489 objc-parse.y:3513
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, fuzzy, c-format
msgid "%s before string constant"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-#: c-parse.y:2828 cp/spew.c:1491 objc-parse.y:3515
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
-msgstr ""
+msgstr "%s ðñéí áðü áñéèìçôéêÞ óôáèåñÜ"
# src/request.c:37
-#: c-parse.y:2830 objc-parse.y:3517
-#, fuzzy, c-format
+#: c-parse.y:2854 objc-parse.y:3553
+#, c-format
msgid "%s before \"%s\""
-msgstr "%s óå %s"
+msgstr "%s ðñéí áðü \"%s\""
-#: c-parse.y:2832 objc-parse.y:3519
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
+msgstr "%s ðñéí áðü ôï óýìâïëï '%s'"
+
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
msgstr ""
-#: c-parse.y:2968 objc-parse.y:3698
-#, fuzzy, c-format
+#: c-parse.y:3047 objc-parse.y:3779
+#, c-format
msgid "syntax error at '%s' token"
-msgstr "óõíôáêôéêü óöÜëìá óôï ïñéóìü ôïõ %s: %s"
-
-#: c-parse.y:2998 ch/parse.c:4329 cp/lex.c:910 objc-parse.y:3728
-msgid "YYDEBUG not defined"
-msgstr ""
+msgstr "óõíôáêôéêü óöÜëìá óôï óýìâïëï '%s'"
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr ""
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
msgstr ""
-#: c-pragma.c:162
+#: c-pragma.c:145
#, fuzzy
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: c-pragma.c:164
+#: c-pragma.c:147
#, fuzzy
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
#, fuzzy
msgid "malformed '#pragma pack' - ignored"
msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: c-pragma.c:202
+#: c-pragma.c:185
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr ""
-#: c-pragma.c:204
+#: c-pragma.c:187
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr ""
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr ""
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
msgstr ""
-#: c-pragma.c:290 c-pragma.c:295
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: c-pragma.c:299
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr ""
-#: c-semantics.c:563
+#: c-pragma.c:372 c-pragma.c:377
+#, fuzzy
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
+
+#: c-pragma.c:382
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr ""
+
+#: c-pragma.c:420
+#, fuzzy
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
+
+#: c-pragma.c:425
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
+msgstr ""
+
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr ""
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr ""
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr ""
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr ""
-#: c-semantics.c:680
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr ""
-#: c-semantics.c:723 c-typeck.c:6937 cp/semantics.c:881
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr ""
-#: c-typeck.c:124
+#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr ""
-#: c-typeck.c:146 cp/call.c:2590
+#: c-typeck.c:145 cp/call.c:2865
#, fuzzy
msgid "invalid use of void expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: c-typeck.c:155 cp/typeck2.c:227
+#: c-typeck.c:153
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò"
+
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:163
+#: c-typeck.c:167
#, fuzzy, c-format
msgid "invalid use of undefined type `%s %s'"
msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:167
+#: c-typeck.c:171
#, fuzzy, c-format
msgid "invalid use of incomplete typedef `%s'"
msgstr "ìç Ýãêõñïò äåýôåñïò ôåëåóôÞò óå êáôÜóôáóç óõìâáôüôçôáò `%s'"
-#: c-typeck.c:398 c-typeck.c:412
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
msgstr ""
-#: c-typeck.c:572
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr ""
-#: c-typeck.c:725
-msgid "sizeof applied to a function type"
-msgstr ""
-
-#: c-typeck.c:731
-msgid "sizeof applied to a void type"
-msgstr ""
-
-#: c-typeck.c:738
-msgid "sizeof applied to an incomplete type"
-msgstr ""
-
-#: c-typeck.c:791 c-typeck.c:2809
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
-#: c-typeck.c:1179
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr ""
-#: c-typeck.c:1212
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr ""
-#: c-typeck.c:1244 ch/expr.c:810
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr ""
-#: c-typeck.c:1248 ch/expr.c:814
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
msgstr ""
-#: c-typeck.c:1265 cp/typeck.c:2380
+#: c-typeck.c:1225 cp/typeck.c:2369
#, fuzzy, c-format
msgid "invalid type argument of `%s'"
msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-#: c-typeck.c:1284 cp/typeck.c:2406
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr ""
-#: c-typeck.c:1305 cp/typeck.c:2448
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr ""
-#: c-typeck.c:1313 c-typeck.c:1402 cp/typeck.c:2455 cp/typeck.c:2534
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr ""
-#: c-typeck.c:1346
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
msgstr ""
-#: c-typeck.c:1348
-msgid "ISO C89 forbids subscripting non-lvalue array"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr ""
-#: c-typeck.c:1381
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr ""
-#: c-typeck.c:1397 cp/typeck.c:2529
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1451
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr ""
-#: c-typeck.c:1458
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr ""
-#: c-typeck.c:1463
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr ""
-#: c-typeck.c:1464
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr ""
-#: c-typeck.c:1481
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr ""
-#: c-typeck.c:1546
+#: c-typeck.c:1518
#, fuzzy
msgid "called object is not a function"
msgstr "Ôï åðþíõìï áíôéêåßìåíï äåí åßíáé áíáæçôÞóéìï"
-#: c-typeck.c:1630 cp/typeck.c:3171
+#: c-typeck.c:1604 cp/typeck.c:2829
#, fuzzy
msgid "too many arguments to function"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: c-typeck.c:1651
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:1664
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1667
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1670
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1673
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:1676
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:1679
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1689
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr ""
-#: c-typeck.c:1707
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr ""
-#: c-typeck.c:1741
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr ""
-#: c-typeck.c:1743
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr ""
-#: c-typeck.c:1777 cp/typeck.c:3279
+#: c-typeck.c:1751 cp/typeck.c:2933
#, fuzzy
msgid "too few arguments to function"
msgstr "ðïëý ëßãá ïñßóìáôá"
-#: c-typeck.c:1819
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr ""
-#: c-typeck.c:1826
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr ""
-#: c-typeck.c:1835
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr ""
-#: c-typeck.c:1838
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr ""
-#: c-typeck.c:1847
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr ""
-#: c-typeck.c:1850
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr ""
-#: c-typeck.c:1857
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr ""
-#: c-typeck.c:1860
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr ""
-#: c-typeck.c:1867
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr ""
-#: c-typeck.c:2027 c-typeck.c:2083 ch/expr.c:3951
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
-msgstr ""
+msgstr "äéáßñåóç ìå ìçäÝí"
-#: c-typeck.c:2128 cp/typeck.c:3565
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr ""
-#: c-typeck.c:2135 cp/typeck.c:3571
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr ""
-#: c-typeck.c:2160 cp/typeck.c:3590
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr ""
-#: c-typeck.c:2163 cp/typeck.c:3592
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr ""
-#: c-typeck.c:2188
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr ""
-#: c-typeck.c:2190
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr ""
-#: c-typeck.c:2211 cp/typeck.c:3627
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:2235 c-typeck.c:2241
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
msgstr ""
-#: c-typeck.c:2244 c-typeck.c:2286 c-typeck.c:2314
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:2259 c-typeck.c:2265 c-typeck.c:2335 c-typeck.c:2341
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
msgstr ""
-#: c-typeck.c:2281 c-typeck.c:2309
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c-typeck.c:2306
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c-typeck.c:2322 c-typeck.c:2329
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:2355 cp/typeck.c:3760
+#: c-typeck.c:2294 cp/typeck.c:3389
#, fuzzy
msgid "unordered comparison on non-floating point argument"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-#: c-typeck.c:2559
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr ""
-#: c-typeck.c:2605 cp/typeck.c:4006
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:2613 cp/typeck.c:4014
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: c-typeck.c:2675
-msgid "pointer of type `void *' used in arithmetic"
-msgstr ""
-
-#: c-typeck.c:2681
-msgid "pointer to a function used in arithmetic"
-msgstr ""
-
-#: c-typeck.c:2761
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
msgstr ""
-#: c-typeck.c:2763
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c-typeck.c:2860
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2871
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2883
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
msgstr ""
-#: c-typeck.c:2889
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2900
+#: c-typeck.c:2783
#, fuzzy
msgid "wrong type argument to abs"
msgstr "ëÜèïò áñéèìüò ïñéóìÜôùí"
-#: c-typeck.c:2912
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2926
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2969
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
msgstr ""
-#: c-typeck.c:2984 c-typeck.c:3016
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to increment"
msgstr ""
-#: c-typeck.c:2986 c-typeck.c:3018
+#: c-typeck.c:2869 c-typeck.c:2901
msgid "wrong type argument to decrement"
msgstr ""
-#: c-typeck.c:3007
+#: c-typeck.c:2890
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:3009
+#: c-typeck.c:2892
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:3082
-#, fuzzy
-msgid "invalid lvalue in increment"
-msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-
-#: c-typeck.c:3083
-#, fuzzy
-msgid "invalid lvalue in decrement"
-msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-
-#: c-typeck.c:3091 cp/typeck.c:4594
-msgid "increment"
-msgstr ""
-
-#: c-typeck.c:3091 cp/typeck.c:4594
-msgid "decrement"
-msgstr ""
-
-#: c-typeck.c:3146
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
msgstr ""
-#: c-typeck.c:3156
+#: c-typeck.c:3039
#, fuzzy
msgid "invalid lvalue in unary `&'"
msgstr "ìç Ýãêõñïò ÷ñüíïò áíáðÞäçò"
-#: c-typeck.c:3188
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr ""
-#. condition met at compile time
-#: c-typeck.c:3297 c-typeck.c:4686 c-typeck.c:4702 c-typeck.c:4718
-#: ch/expr.c:1782 ch/parse.c:361 ch/typeck.c:160 cp/typeck.c:4787 gcc.c:4467
-#: java/expr.c:387 java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
-#: rtl-error.c:121 tradcif.y:533 tradcpp.c:4123
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
-msgstr ""
+msgstr "%s"
-#: c-typeck.c:3358
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
msgstr ""
-#: c-typeck.c:3361
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
msgstr ""
-#: c-typeck.c:3364
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
msgstr ""
-#: c-typeck.c:3381
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr ""
-#: c-typeck.c:3385
+#: c-typeck.c:3268
#, fuzzy, c-format
msgid "%s of read-only variable `%s'"
msgstr "Ìç áíáãíùñßóéìç ìåôáâëçôÞ `%s'"
-#: c-typeck.c:3388
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr ""
-#: c-typeck.c:3406
+#: c-typeck.c:3290
#, fuzzy, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï áñ÷åßï fifo `%s'"
-#: c-typeck.c:3434 ch/typeck.c:3676 ch/xtypeck.c:62
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr ""
-#: c-typeck.c:3438 ch/typeck.c:3680 ch/xtypeck.c:66
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr ""
-#: c-typeck.c:3445 ch/typeck.c:3687 ch/xtypeck.c:73
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr ""
-#: c-typeck.c:3457 ch/typeck.c:3699 ch/xtypeck.c:85
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-typeck.c:3461 ch/typeck.c:3703 ch/xtypeck.c:89
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr ""
-#: c-typeck.c:3569
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr ""
-#: c-typeck.c:3576
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:3592 c-typeck.c:3599
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
msgstr ""
-#: c-typeck.c:3605
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3612 c-typeck.c:3622
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3636
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3707 cp/typeck.c:5044
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3746
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3752
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3762
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3781
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c-typeck.c:3797
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
msgstr ""
+#: c-typeck.c:3736
+msgid "cast adds new qualifiers to function type"
+msgstr ""
+
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3840
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3855
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3861 cp/typeck.c:5458
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c-typeck.c:3866
+#: c-typeck.c:3767
msgid "cast does not match function type"
msgstr ""
-#: c-typeck.c:3873 cp/typeck.c:5465
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
msgstr ""
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:4031
+#: c-typeck.c:3949
#, fuzzy
msgid "invalid lvalue in assignment"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
#. Convert new value to destination type.
-#: c-typeck.c:4040 c-typeck.c:4065 c-typeck.c:4082 ch/typeck.c:2334
-#: cp/typeck.c:5575 cp/typeck.c:5726
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
#, fuzzy
msgid "assignment"
msgstr "ðñïóðÝñáóìá ïñßóìáôïò"
-#: c-typeck.c:4249 c-typeck.c:4316
+#: c-typeck.c:4070
+#, fuzzy
+msgid "cannot pass rvalue to reference parameter"
+msgstr "äåí åßíáé äõíáôüí íá ãßíåé `stat' ôï locale áñ÷åßï `%s'"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:4253 c-typeck.c:4296
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:4259
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:4288
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
msgstr ""
-#: c-typeck.c:4305
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr ""
-#: c-typeck.c:4321
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr ""
-#: c-typeck.c:4337
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+#, fuzzy
+msgid "invalid use of non-lvalue array"
+msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò"
+
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
-msgstr ""
+msgstr "%s ìåôáôñÝðåé áêÝñáéï óå äåßêôç ÷ùñßò ìåôáôñïðÝá"
-#: c-typeck.c:4345
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:4359 c-typeck.c:4362
+#: c-typeck.c:4289 c-typeck.c:4292
#, fuzzy, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
-#: c-typeck.c:4366
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr ""
-#: c-typeck.c:4370
+#: c-typeck.c:4300
#, fuzzy, c-format
msgid "incompatible types in %s"
msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
#. Function name is known; supply it.
-#: c-typeck.c:4401
+#: c-typeck.c:4358
#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d áðü `%s'"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d ôïõ äåßêôç óôç óõíÜñôçóç"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
+#, c-format
msgid "passing arg %d of `%s'"
-msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
+msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d áðü `%s'"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4411
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
-msgstr ""
+msgstr "ôï ðÝñáóìá ôïõ ïñßóìáôïò %d ôïõ äåßêôç óôç óõíÜñôçóç"
-#: c-typeck.c:4478
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
msgstr ""
-#: c-typeck.c:4484
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4492
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
msgstr ""
-#: c-typeck.c:4494
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4501
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
# src/request.c:263
-#: c-typeck.c:4689 c-typeck.c:4705 c-typeck.c:4721
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, fuzzy, c-format
msgid "(near initialization for `%s')"
msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
-#: c-typeck.c:4773 cp/typeck2.c:531
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4780 cp/typeck2.c:538
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4798 cp/typeck2.c:554
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4834
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4851 c-typeck.c:4853 c-typeck.c:4869 c-typeck.c:4890
-#: c-typeck.c:6311
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
#, fuzzy
msgid "initializer element is not constant"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
# src/request.c:263
-#: c-typeck.c:4885
-#, fuzzy
+#: c-typeck.c:4873
msgid "initialization"
-msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
+msgstr "áñ÷éêïðïßçóç"
-#: c-typeck.c:4896 c-typeck.c:6316
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4933 c-typeck.c:4949 cp/typeck2.c:631
+#: c-typeck.c:4899 cp/typeck2.c:588
#, fuzzy
msgid "invalid initializer"
msgstr "ìç Ýãêõñï ìÝãåèïò ïñéæüíôéïõ óôçëïèÝôç: %s"
-#: c-typeck.c:5434
+#: c-typeck.c:5393
#, fuzzy
msgid "extra brace group at end of initializer"
msgstr "áêïëïõèïýí óêïõðßäéá óôï ôÝëïò ôçò ãñáììÞò"
-#: c-typeck.c:5454
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:5506
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:5554
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:5556
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:5587
+#: c-typeck.c:5554
#, fuzzy
msgid "missing initializer"
msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-#: c-typeck.c:5612
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:5617
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5703
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
msgstr ""
-#: c-typeck.c:5724 c-typeck.c:5795
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5729 c-typeck.c:5847
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5791 c-typeck.c:5793
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5798
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5809
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5818
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5859
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr ""
-#: c-typeck.c:5896 c-typeck.c:5917 c-typeck.c:6379
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:6589
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:6596 c-typeck.c:6642
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:6709
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6730
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6793
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6819
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr ""
+
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6930 ch/parse.c:2026
+#: c-typeck.c:6935
#, fuzzy
msgid "asm template is not a string constant"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-#: c-typeck.c:6962
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr ""
-#: c-typeck.c:7033
+#: c-typeck.c:7042
#, fuzzy
msgid "modification by `asm'"
msgstr "Ç ôñïðïðïßçóç áðÝôõ÷å"
-#: c-typeck.c:7052 cp/typeck.c:6576
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr ""
-#: c-typeck.c:7059
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr "`return' ÷ùñßò ôéìÞ, óå óõíÜñôçóç ðïõ åðéóôñÝöåé ìç-êåíü"
-#: c-typeck.c:7065
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr ""
-#: c-typeck.c:7069
+#: c-typeck.c:7078
msgid "return"
-msgstr ""
+msgstr "åðéóôñïöÞ"
-#: c-typeck.c:7120
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr ""
-#: c-typeck.c:7177 cp/semantics.c:525
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr ""
-#: c-typeck.c:7187
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr ""
-#: c-typeck.c:7222 cp/decl.c:5230
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr ""
-#: c-typeck.c:7224 cp/decl.c:5235
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
msgstr ""
-#: calls.c:1901
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr ""
-#: calls.c:1902 calls.c:2208
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr ""
-#: calls.c:2207
+#: calls.c:2270
#, fuzzy, c-format
msgid "can't inline call to `%s'"
msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'"
-#: calls.c:2237
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr ""
-#: calls.c:4539
-msgid "variable offset is passed partially in stack and in reg"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: calls.c:4541
-msgid "variable size is passed partially in stack and in reg"
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: cfgrtl.c:1578
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr ""
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr ""
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr ""
+
+#: cfgrtl.c:1800
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1592
+#: cfgrtl.c:1814
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1604
+#: cfgrtl.c:1826
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1623
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr ""
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: cfgrtl.c:1642
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1657
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1659
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:1666
+#: cfgrtl.c:1935
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfgrtl.c:1690
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr ""
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:1700
+#: cfgrtl.c:2014
#, c-format
msgid "basic block %d pred edge is corrupted"
msgstr ""
-#: cfgrtl.c:1717
+#: cfgrtl.c:2031
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:1721
+#: cfgrtl.c:2035
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:1735 cfgrtl.c:1745
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:1758
+#: cfgrtl.c:2072
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:1770
+#: cfgrtl.c:2084
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:1771
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:1790
+#: cfgrtl.c:2104
#, c-format
msgid "basic block %i edge lists are corrupted"
msgstr ""
-#: cfgrtl.c:1804
+#: cfgrtl.c:2119
msgid "basic blocks not numbered consecutively"
msgstr ""
-#: cfgrtl.c:1829
+#: cfgrtl.c:2144
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:1837
+#: cfgrtl.c:2152
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:1842
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cfgrtl.c:1846
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
msgstr ""
-#: collect2.c:439
-#, fuzzy
+#: collect2.c:425
msgid "internal error"
-msgstr "Åóùôåñéêü óöÜëìá NIS"
+msgstr "åóùôåñéêü óöÜëìá"
-#: collect2.c:940
-#, fuzzy
+#: collect2.c:934
msgid "no arguments"
-msgstr "ðïëý ëßãá ïñßóìáôá"
+msgstr "÷ùñßò ïñßóìáôá"
# src/getopt1.c:132
# src/getopt1.c:132
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
-#, fuzzy, c-format
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
msgid "fopen %s"
-msgstr "åðéëïãÞ %s"
+msgstr "fopen %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
-msgstr ""
+msgstr "fclose %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr ""
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr ""
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1514
+#: collect2.c:1508
#, fuzzy, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s: Ï ðñïåðåîåñãáóôÞò C áðÝôõ÷å ìå óÞìá %d\n"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr ""
-#: collect2.c:1561
+#: collect2.c:1555
#, fuzzy, c-format
msgid "[cannot find %s]"
msgstr "Äåí åßíáé äõíáôüí íá åêôåëåóôåß ôï %s"
-#: collect2.c:1576
+#: collect2.c:1570
#, fuzzy, c-format
msgid "cannot find `%s'"
msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr ""
-#: collect2.c:1633
+#: collect2.c:1627
#, fuzzy, c-format
msgid "[Leaving %s]\n"
msgstr "äéáãñáöÞ êáôáëüãïõ %s\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
-msgid "\nwrite_c_file - output name is %s, prefix is %s\n"
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2089
+#: collect2.c:2082
#, fuzzy
msgid "cannot find `nm'"
msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
-msgstr ""
+msgstr "óùëÞíùóç"
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
-msgstr ""
+msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
-msgstr ""
+msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574
-#: collect2.c:2577 collect2.c:2590
-#, fuzzy, c-format
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, c-format
msgid "close %d"
-msgstr "ôï %s åßíáé êëåéóôü"
+msgstr "close %d"
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr ""
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2223 collect2.c:2629
-#, fuzzy
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
-msgstr "áñ÷åßï"
+msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, fuzzy, c-format
msgid "unable to open file '%s'"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: collect2.c:2270
+#: collect2.c:2263
#, fuzzy, c-format
msgid "unable to stat file '%s'"
msgstr "áäõíáìßá ðñïóðÝëáóçò(stat()) áñ÷åßïõ `%s': %s"
-#: collect2.c:2276
+#: collect2.c:2269
#, fuzzy, c-format
msgid "unable to mmap file '%s'"
msgstr "Áäõíáìßá ìåôáöïñÜò óôç ìíÞìç (mmap) ôïõ áñ÷åßïõ %s.\n"
-#: collect2.c:2429
-#, fuzzy
+#: collect2.c:2422
msgid "not found\n"
-msgstr "Äå âñÝèçêå"
+msgstr "äå âñÝèçêå\n"
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2451
+#: collect2.c:2444
#, fuzzy, c-format
msgid "bad magic number in file '%s'"
msgstr "ìç Ýãêõñïò áñéèìüò áñ÷åßïõ óôç äÞëùóç ðåäßïõ: `%s'"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
-msgstr ""
+msgstr "äõíáìéêÝò åîáñôÞóåéò.\n"
-#: collect2.c:2532
+#: collect2.c:2524
#, fuzzy
msgid "cannot find `ldd'"
msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr ""
-
-#: collect2.c:2593
-msgid "\nldd output with constructors/destructors.\n"
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2734
+#: collect2.c:2726
#, fuzzy, c-format
msgid "%s: not a COFF file"
msgstr "%s: Äåí åßíáé êáíïíéêü áñ÷åßï"
-#: collect2.c:2853
+#: collect2.c:2845
#, fuzzy, c-format
msgid "%s: cannot open as COFF file"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ"
-#: collect2.c:2909
+#: collect2.c:2901
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "Ðéèáíüí äå âñÝèçêå"
# src/getopt1.c:132
# src/getopt1.c:132
-#: collect2.c:3038
-#, fuzzy, c-format
+#: collect2.c:3028
+#, c-format
msgid "open %s"
-msgstr "åðéëïãÞ %s"
+msgstr "open %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
msgstr ""
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
-msgid "\nProcessing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
msgstr ""
-#: collect2.c:3143
+#: collect2.c:3133
msgid "string section missing"
msgstr ""
-#: collect2.c:3146
+#: collect2.c:3136
#, fuzzy
msgid "section pointer missing"
msgstr "ïñéóìüò äéêáéùìÜôùí óôï %s"
-#: collect2.c:3194
+#: collect2.c:3184
#, fuzzy
msgid "no symbol table found"
msgstr "äåí äþèçêå óõìâïëéêü üíïìá"
-#: collect2.c:3207
+#: collect2.c:3197
#, fuzzy
msgid "no cmd_strings found"
msgstr "Äåí âñÝèçêå ìÝóï"
-#: collect2.c:3219
-msgid "\nUpdating header and load commands.\n\n"
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
msgstr ""
-#: collect2.c:3226
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr ""
-#: collect2.c:3257
+#: collect2.c:3247
#, fuzzy
-msgid "writing load commands.\n\n"
+msgid ""
+"writing load commands.\n"
+"\n"
msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
-#: collect2.c:3277
-#, fuzzy, c-format
+#: collect2.c:3267
+#, c-format
msgid "close %s"
-msgstr "Êëåßóéìï ôïõ `%s'"
+msgstr "close %s"
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr ""
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr ""
-#: collect2.c:3482
+#: collect2.c:3472
#, fuzzy
msgid "bad magic number"
msgstr "ÅóöáëìÝíïò áñéèìüò áñ÷åßïõ"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
-msgstr ""
+msgstr "åóöáëìÝíç Ýêäïóç êåöáëßäáò"
-#: collect2.c:3484
+#: collect2.c:3474
msgid "bad raw header version"
msgstr ""
-#: collect2.c:3485
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr ""
-#: collect2.c:3486
+#: collect2.c:3476
#, fuzzy
msgid "old raw header file"
msgstr "Äåí åßíáé åðþíõìï áñ÷åßï"
-#: collect2.c:3487
+#: collect2.c:3477
#, fuzzy
msgid "unsupported version"
msgstr "ÅìöÜíéóç Ýêäïóçò ðñïãñÜììáôïò"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr ""
# src/request.c:37
-#: collect2.c:3509
-#, fuzzy, c-format
+#: collect2.c:3499
+#, c-format
msgid "fstat %s"
-msgstr "%s óå %s"
+msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
-msgstr ""
+msgstr "lseek %s 0"
-#: collect2.c:3550
-#, fuzzy, c-format
+#: collect2.c:3540
+#, c-format
msgid "read %s"
-msgstr "óöÜëìá áíÜãíùóçò %s"
+msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr ""
-#: collect2.c:3574
+#: collect2.c:3564
#, c-format
msgid "msync %s"
-msgstr ""
+msgstr "msync %s"
-#: collect2.c:3581
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
-msgstr ""
+msgstr "munmap %s"
-#: collect2.c:3598
-#, fuzzy, c-format
+#: collect2.c:3588
+#, c-format
msgid "write %s"
-msgstr "óöÜëìá åããñáöÞò"
+msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr ""
-#: combine.c:12639
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3814,7 +4077,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12649
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3822,1062 +4085,952 @@ msgid ""
";; %d successes.\n"
msgstr ""
-#: convert.c:67
+#: convert.c:69
#, fuzzy
msgid "cannot convert to a pointer type"
msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ."
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
msgstr ""
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
msgstr ""
-#: convert.c:130
+#: convert.c:132
#, fuzzy
msgid "conversion to incomplete type"
msgstr "ìç ðëÞñçò åããñáöÞ"
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
msgid "can't convert between vector values of different size"
msgstr ""
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
msgstr ""
-#: convert.c:448 f/com.c:1073
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
msgstr ""
-#: convert.c:452 f/com.c:1075
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
msgstr ""
-#: convert.c:476
+#: convert.c:500
msgid "can't convert value to a vector"
msgstr ""
-#: cpperror.c:125
-#, fuzzy
-msgid "internal error: "
-msgstr "Åóùôåñéêü óöÜëìá NIS"
-
-#: cpperror.c:132 tradcpp.c:4679
+#: cpperror.c:113
msgid "warning: "
msgstr "ðñïåéäïðïßçóç: "
+#: cpperror.c:115
+msgid "internal error: "
+msgstr "åóùôåñéêü óöÜëìá: "
+
+#: cpperror.c:189
+#, fuzzy
+msgid "stdout"
+msgstr "äïìÞ"
+
# src/request.c:37
-#: cpperror.c:209 cpperror.c:299 cppfiles.c:691 gcc.c:6318 tradcpp.c:4717
-#, fuzzy, c-format
+#: cpperror.c:191 gcc.c:6428
+#, c-format
msgid "%s: %s"
-msgstr "%s óå %s"
+msgstr "%s: %s"
+
+#: cppexp.c:199
+#, fuzzy
+msgid "too many decimal points in number"
+msgstr "Õðåñâïëéêá ðïëëÜ áíïéêôÜ áñ÷åßá óôï óýóôçìá"
+
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
-#: cppexp.c:154
-msgid "floating point numbers are not valid in #if"
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
msgstr ""
-#: cppexp.c:176
-msgid "traditional C rejects the `U' suffix"
+#: cppexp.c:234
+msgid "exponent has no digits"
msgstr ""
-#: cppexp.c:179
-msgid "too many 'l' suffixes in integer constant"
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
-#: cppexp.c:183
-msgid "integer constant contains digits beyond the radix"
+#: cppexp.c:268
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: cppexp.c:289
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
msgstr ""
-#: cppexp.c:186
+#: cppexp.c:383
#, fuzzy
-msgid "integer constant out of range"
-msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
+msgid "integer constant is too large for its type"
+msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
-#: cppexp.c:192
+#: cppexp.c:395
#, fuzzy
msgid "integer constant is so large that it is unsigned"
msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
-#: cppexp.c:201
-#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
-msgstr ""
-
-#: cppexp.c:234
+#: cppexp.c:482
#, fuzzy
msgid "missing ')' after \"defined\""
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
-#: cppexp.c:240
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
msgstr ""
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr ""
-#: cppexp.c:305
-msgid "string constants are not valid in #if"
-msgstr ""
-
-#: cppexp.c:309
-#, fuzzy, c-format
-msgid "invalid character '%c' in #if"
-msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
+#: cppexp.c:545
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
-#: cppexp.c:311
-#, fuzzy, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
+#: cppexp.c:551
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò"
-#: cppexp.c:328
+#: cppexp.c:596
#, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
msgstr ""
-#: cppexp.c:339
+#: cppexp.c:604
#, fuzzy, c-format
msgid "\"%s\" is not defined"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cppexp.c:365
+#: cppexp.c:737 cppexp.c:772
#, fuzzy, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
+msgid "missing binary operator before token \"%s\""
+msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
-#: cppexp.c:380
-msgid "integer overflow in preprocessor expression"
-msgstr ""
+#: cppexp.c:756
+#, fuzzy, c-format
+msgid "invalid character '%c' in #if"
+msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
-#: cppexp.c:610
-#, fuzzy
-msgid "missing binary operator"
-msgstr "Áãíùóôïò äõáäéêüò ÷åéñéóôÞò."
+#: cppexp.c:758
+#, fuzzy, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
+
+#: cppexp.c:763
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
-#: cppexp.c:645
+#: cppexp.c:782
msgid "void expression between '(' and ')'"
msgstr ""
-#: cppexp.c:647
-#, c-format
-msgid "operator '%s' has no right operand"
+#: cppexp.c:785
+msgid "#if with no expression"
msgstr ""
-#: cppexp.c:659
+#: cppexp.c:787
#, c-format
-msgid "impossible operator '%s'"
+msgid "operator '%s' has no right operand"
msgstr ""
-#: cppexp.c:735 tradcif.y:111 tradcif.y:122
-#, fuzzy
-msgid "division by zero in #if"
-msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
-
-#: cppexp.c:769
-msgid "comma operator in operand of #if"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
msgstr ""
-#: cppexp.c:774
-#, fuzzy
-msgid "syntax error '?' without following ':'"
-msgstr "óõíôáêôéêü óöÜëìá óôïí ðñüëïãï: %s"
-
-#: cppexp.c:777
-msgid "syntax error ':' without preceding '?'"
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
msgstr ""
-#: cppexp.c:785
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "RPC: Ìç óõìâáôÝò åêäüóåéò ôïõ RPC"
+
+#: cppexp.c:954
#, fuzzy
msgid "missing ')' in expression"
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
-#: cppexp.c:792
+#: cppexp.c:975
+#, fuzzy
+msgid "'?' without following ':'"
+msgstr "óõíôáêôéêü óöÜëìá óôïí ðñüëïãï: %s"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: cppexp.c:990
#, fuzzy
msgid "missing '(' in expression"
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôéò èÝóåéò"
-#: cppexp.c:818
-#, fuzzy, c-format
-msgid "missing binary operator before '%s'"
-msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
-
-#: cppexp.c:824
+#: cppexp.c:1026
#, c-format
-msgid "operator '%s' has no left operand"
+msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
-#: cppexp.c:862
-msgid "unbalanced stack in #if"
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
-#: cppexp.c:865
-msgid "#if with no expression"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
msgstr ""
+#: cppexp.c:1551
+#, fuzzy
+msgid "division by zero in #if"
+msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
+
# src/shred.c:1134
-#: cppfiles.c:395
+#: cppfiles.c:411
#, fuzzy, c-format
msgid "%s is too large"
msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
-#: cppfiles.c:426
+#: cppfiles.c:447
#, fuzzy, c-format
msgid "%s is shorter than expected"
msgstr "%s: Áíáìåíüôáí äõáäéêüò ÷åéñéóôÞò.\n"
-#: cppfiles.c:440
+#: cppfiles.c:461
#, fuzzy, c-format
msgid "%s is a block device"
msgstr "Äåí Ýìåéíå êáèüëïõ ÷þñïò óôç óõóêåõÞ"
-#: cppfiles.c:566
+#: cppfiles.c:594
#, c-format
msgid "no include path in which to find %s"
msgstr ""
-#: cppfiles.c:639
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr ""
-#: cppfiles.c:1029
+#: cppfiles.c:1014
msgid "absolute file name in remap_filename"
msgstr ""
-#: cppinit.c:230
+#: cppinit.c:224
#, fuzzy, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "äéáãñáöÞ ìç-êáôáëüãïõ `%s'\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, fuzzy, c-format
msgid "%s: Not a directory"
msgstr "Äåí åßíáé êáôÜëïãïò"
-#: cppinit.c:284
+#: cppinit.c:287
#, fuzzy, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr "áäõíáìßá áëëáãÞò óôï êáôÜëïãï \"%s\""
-#: cppinit.c:312
-#, fuzzy, c-format
-msgid "changing search order for system directory \"%s\""
-msgstr "áäõíáìßá áëëáãÞò óôï êáôÜëïãï \"%s\""
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr ""
+
+#: cppinit.c:891
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
-#: cppinit.c:316
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
msgstr ""
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
msgstr ""
-#: cppinit.c:927
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
msgstr ""
-#: cppinit.c:931
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
msgstr ""
-#: cppinit.c:934
+#: cppinit.c:979
#, fuzzy
msgid "End of search list.\n"
msgstr "ÔÝëïò ôìÞìáôïò"
-#: cppinit.c:1001
+#: cppinit.c:1057
msgid "<built-in>"
msgstr ""
-#: cppinit.c:1003
+#: cppinit.c:1059
msgid "<command line>"
msgstr ""
-#: cppinit.c:1099 tradcpp.c:968 tradcpp.c:978 tradcpp.c:1069
-#, fuzzy
-msgid "I/O error on output"
-msgstr "ÓöÜëìá åéóüäïõ/åîüäïõ"
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1147
-#, fuzzy, c-format
-msgid "argument missing after %s"
-msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-
-#: cppinit.c:1148
+#: cppinit.c:1164
#, fuzzy, c-format
msgid "assertion missing after %s"
msgstr "ïñéóìüò äéêáéùìÜôùí óôï %s"
-#: cppinit.c:1149
+#: cppinit.c:1165
#, c-format
msgid "directory name missing after %s"
msgstr ""
-#: cppinit.c:1150
+#: cppinit.c:1166
#, fuzzy, c-format
msgid "file name missing after %s"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: cppinit.c:1151
+#: cppinit.c:1167
#, c-format
msgid "macro name missing after %s"
msgstr ""
-#: cppinit.c:1152
+#: cppinit.c:1168
#, c-format
msgid "path name missing after %s"
msgstr ""
-#: cppinit.c:1153
-#, fuzzy, c-format
-msgid "number missing after %s"
-msgstr "ïñéóìüò äéêáéùìÜôùí óôï %s"
-
-#: cppinit.c:1154
-#, fuzzy, c-format
-msgid "target missing after %s"
-msgstr "Áñ÷Þ áñ÷åßïõ %s\n"
-
-#: cppinit.c:1338
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr ""
-
-#: cppinit.c:1522 tradcpp.c:603
-msgid "output filename specified twice"
-msgstr ""
-
-#: cppinit.c:1634
+#: cppinit.c:1353
#, fuzzy
msgid "-I- specified twice"
msgstr "ìç ïñéóìÝíï"
-#: cppinit.c:1773
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr ""
-
-#: cppinit.c:1814 tradcpp.c:792
-msgid "you must additionally specify either -M or -MM"
-msgstr ""
-
-#: cppinit.c:1877
-#, c-format
-msgid "Usage: %s [switches] input output\n"
-msgstr ""
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1880
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-
-#: cppinit.c:1889
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-
-#: cppinit.c:1898
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-
-#: cppinit.c:1905
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-
-#: cppinit.c:1911
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-
-#: cppinit.c:1921
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-
-#: cppinit.c:1929
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-
-#: cppinit.c:1937
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-
-#: cppinit.c:1943
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-
-#: cppinit.c:1948
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question> (<answer>) Assert the <answer> to <question>\n"
-" -A-<question> (<answer>) Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-
-#: cppinit.c:1956
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-
-#: cppinit.c:1964
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files.\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-
-#: cpplex.c:154
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr ""
-#: cpplex.c:162
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr ""
-#: cpplex.c:218
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr ""
-#: cpplex.c:224
+#: cpplex.c:221 cpptrad.c:158
#, fuzzy
msgid "backslash-newline at end of file"
msgstr "ìç Ýãêõñç äéáöõãÞ ìå ðéóùêÜèåôï óôï ôÝëïò ôïõ áëöáñéèìçôéêïý"
-#: cpplex.c:290
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
msgstr ""
-#: cpplex.c:373
+#: cpplex.c:395
#, fuzzy
msgid "null character(s) ignored"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï áñ÷åßï: "
-#: cpplex.c:380
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
msgstr ""
-#: cpplex.c:447
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
-#: cpplex.c:455
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
-#: cpplex.c:508
-msgid "'$' character(s) in identifier"
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
msgstr ""
-#: cpplex.c:589
-#, fuzzy, c-format
+#: cpplex.c:698
+#, c-format
msgid "missing terminating %c character"
-msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-
-#: cpplex.c:594
-#, fuzzy
-msgid "possible start of unterminated string literal"
-msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr ""
+msgstr "Ý÷åé ðáñáëçöèåß ôåñìáôéêüò ÷áñáêôÞñáò %c"
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr ""
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
#, fuzzy
msgid "no newline at end of file"
msgstr "%s: ðñüùñï ôÝëïò áñ÷åßïõ"
-#: cpplex.c:1034 tradcpp.c:1456
+#: cpplex.c:1092 cpptrad.c:213
#, fuzzy
msgid "unterminated comment"
msgstr "Ìç ôåñìáôéóìÝíç åíôïëÞ `s'"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr ""
-#: cpplex.c:1052
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr ""
-#: cpplex.c:1367
+#: cpplex.c:1425
#, fuzzy, c-format
msgid "unknown string token %s\n"
msgstr "¶ãíùóôÞ åðéëïãÞ ãéá ôï `s'"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "%s: áäýíáôï ôï Üíïéãìá ôïõ %s: %m\n"
-#: cpplex.c:1635
+#: cpplex.c:1695
#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
+msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
-#: cpplex.c:1641
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr ""
-#: cpplex.c:1655
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr ""
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr ""
-#: cpplex.c:1677
+#: cpplex.c:1737
#, fuzzy
msgid "universal-character-name out of range"
msgstr "U+%04X: åêôüò ïñßùí ÷áñáêôÞñáò"
-#: cpplex.c:1722
-msgid "the meaning of '\\a' varies with -traditional"
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
-#: cpplex.c:1729
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: cpplex.c:1739
-msgid "the meaning of '\\x' varies with -traditional"
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
-#: cpplex.c:1758 f/lex.c:610
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr ""
-#: cpplex.c:1762
+#: cpplex.c:1833
#, fuzzy
msgid "hex escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: cpplex.c:1786
+#: cpplex.c:1858
#, fuzzy
msgid "octal escape sequence out of range"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
# src/main.c:663
-#: cpplex.c:1801
+#: cpplex.c:1874
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
# src/main.c:663
-#: cpplex.c:1803
+#: cpplex.c:1877
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
-#: cpplex.c:1807
-msgid "escape sequence out of range for character"
-msgstr ""
+#: cpplex.c:1882
+#, fuzzy
+msgid "escape sequence out of range for its type"
+msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: cpplex.c:1897
+#: cpplex.c:1973
#, fuzzy
msgid "empty character constant"
msgstr "êåíü áëöáñéèìçôéêü"
-#: cpplex.c:1901
+#: cpplex.c:1983
#, fuzzy
-msgid "character constant too long"
+msgid "character constant too long for its type"
msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-#: cpplex.c:1904
+#: cpplex.c:1986
#, fuzzy
msgid "multi-character character constant"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: cpplib.c:221
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
-#: cpplib.c:275
-msgid "style of line directive is a GCC extension"
-msgstr ""
-
-#: cpplib.c:283
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
-#: cpplib.c:294
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr ""
-#: cpplib.c:297
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
-#: cpplib.c:301
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
-#: cpplib.c:383
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
-#: cpplib.c:438
-#, c-format
-msgid "no macro name given in #%s directive"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
msgstr ""
-#: cpplib.c:442
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
-#: cpplib.c:445
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: cpplib.c:512
#, fuzzy
msgid "macro names must be identifiers"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
-#: cpplib.c:456
-#, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr ""
-
-#: cpplib.c:494
+#: cpplib.c:552
#, fuzzy, c-format
msgid "undefining \"%s\""
msgstr "Ìç ïñéóìÝíï üíïìá %s"
-#: cpplib.c:540
+#: cpplib.c:598
#, fuzzy
msgid "missing terminating > character"
msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-#: cpplib.c:575
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
-#: cpplib.c:586
+#: cpplib.c:648
#, fuzzy, c-format
msgid "empty file name in #%s"
msgstr "Ìç ïñéóìÝíï üíïìá %s"
-#: cpplib.c:605
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr ""
-#: cpplib.c:612
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr ""
-#: cpplib.c:620
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr ""
-#: cpplib.c:677
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
-#: cpplib.c:732
+#: cpplib.c:814
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: cpplib.c:739
+#: cpplib.c:820
#, fuzzy
msgid "line number out of range"
msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
-#: cpplib.c:777
+#: cpplib.c:831 cpplib.c:902
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: cpplib.c:846
+#: cpplib.c:866
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: cpplib.c:973
#, fuzzy
msgid "invalid #ident directive"
msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
-#: cpplib.c:934
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: cpplib.c:937
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: cpplib.c:939
+#: cpplib.c:1067
#, fuzzy, c-format
msgid "#pragma %s is already registered"
msgstr "ï ÷Üñôçò ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
-#: cpplib.c:1014
+#: cpplib.c:1143
msgid "#pragma once is obsolete"
msgstr ""
-#: cpplib.c:1017
+#: cpplib.c:1146
msgid "#pragma once in main file"
msgstr ""
-#: cpplib.c:1041
+#: cpplib.c:1170
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: cpplib.c:1050
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: cpplib.c:1070
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: cpplib.c:1095
+#: cpplib.c:1226
#, fuzzy, c-format
msgid "cannot find source %s"
msgstr "áäõíáìßá áíïßãìáôïò õðïäï÷Þò: %s"
-#: cpplib.c:1099
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: cpplib.c:1174
+#: cpplib.c:1346
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: cpplib.c:1273
+#: cpplib.c:1429
msgid "#else without #if"
msgstr ""
-#: cpplib.c:1278 tradcpp.c:3860
+#: cpplib.c:1434
msgid "#else after #else"
msgstr "#else ìåôÜ áðü #else"
-#: cpplib.c:1280 cpplib.c:1314
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
msgstr ""
-#: cpplib.c:1307
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr ""
-#: cpplib.c:1312 tradcpp.c:3555
+#: cpplib.c:1468
msgid "#elif after #else"
msgstr "#elif ìåôÜ áðü #else"
-#: cpplib.c:1343
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr ""
-#: cpplib.c:1426 tradcpp.c:3252
+#: cpplib.c:1582
msgid "missing '(' after predicate"
msgstr ""
-#: cpplib.c:1441 tradcpp.c:3266
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
msgstr ""
-#: cpplib.c:1461 tradcpp.c:3272
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr ""
-#: cpplib.c:1491 tradcpp.c:3320
+#: cpplib.c:1647
#, fuzzy
msgid "assertion without predicate"
msgstr "Ç ëåéôïõñãßá äåí åðéôñÝðåôáé"
-#: cpplib.c:1493 tradcpp.c:3322
+#: cpplib.c:1649
#, fuzzy
msgid "predicate must be an identifier"
msgstr "äéðëüò ðñïóäéïñéóôÞò ìçíýìáôïò"
-#: cpplib.c:1575 tradcpp.c:3419
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: cpplib.c:1805
+#: cpplib.c:1968
#, fuzzy, c-format
msgid "unterminated #%s"
msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-#: cppmacro.c:148
+#: cppmacro.c:94
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: cppmacro.c:139 cppmacro.c:294
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ìç Ýãêõñï ìÞêïò ãñáììÞò: %s"
-#: cppmacro.c:348
+#: cppmacro.c:234
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
+
+#: cppmacro.c:407
#, fuzzy
msgid "invalid string literal, ignoring final '\\'"
msgstr "ìç Ýãêõñïò áñ÷éêüò áñéèìüò ãñáììÞò: `%s'"
-#: cppmacro.c:440
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
-#: cppmacro.c:566
-msgid "directives may not be used inside a macro argument"
-msgstr ""
-
-#: cppmacro.c:578
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr ""
-
-#: cppmacro.c:595
+#: cppmacro.c:546
#, fuzzy
msgid "ISO C99 requires rest arguments to be used"
msgstr "ÊáêÞ áßôçóç ðáñáìÝôñùí"
-#: cppmacro.c:600
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
-#: cppmacro.c:611
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
-#: cppmacro.c:694
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: cppmacro.c:1190
+#: cppmacro.c:1314
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: cppmacro.c:1218
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: cppmacro.c:1225
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
msgstr ""
-#: cppmacro.c:1242
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr ""
-#: cppmacro.c:1256
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: cppmacro.c:1259
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: cppmacro.c:1268
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
msgstr ""
-#: cppmacro.c:1346
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: cppmacro.c:1376
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: cppmacro.c:1396
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: cppmacro.c:1432
+#: cppmacro.c:1601
#, fuzzy, c-format
msgid "\"%s\" redefined"
msgstr "áüñéóôï"
-#: cppmacro.c:1436
+#: cppmacro.c:1606
#, fuzzy
msgid "this is the location of the previous definition"
msgstr "áõôÞ åßíáé ç èÝóç ôïõ ðñþôïõ ïñéóìïý"
-#: cppmacro.c:1500
+#: cppmacro.c:1657
#, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
+msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: cppmacro.c:1524
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: cppmain.c:121
-#, c-format
-msgid "invalid option %s"
-msgstr "ìç Ýãêõñç åðéëïãÞ %s"
-
-#: cppspec.c:131
+#: cppspec.c:109
#, fuzzy, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr "õðåñâïëéêÜ ðïëëÜ áñ÷åßá åéóüäïõ"
-#: cse.c:7092
+#: cpptrad.c:841
#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
+msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
-#: diagnostic.c:784
-#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: ðñïåéäïðïßçóç: "
-
-#: diagnostic.c:791
+#: cse.c:7195
#, c-format
-msgid "%s: warning: "
-msgstr "%s: ðñïåéäïðïßçóç: "
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ""
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr "((áíþíõìï))"
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr ""
# src/request.c:37
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr "%s: %s: "
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr "óõããíþìç, ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß: "
-
-#: diagnostic.c:1076
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr "%s "
-#: diagnostic.c:1078
+#: diagnostic.c:1056
#, c-format
msgid " %s"
-msgstr ""
+msgstr " %s"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
msgstr ""
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, c-format
msgid "In member function `%s':"
-msgstr ""
+msgstr "Óôç óõíÜñôçóç ìÝëïò `%s':"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr "Óôç óõíÜñôçóç `%s':"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
#, fuzzy
msgid "compilation terminated.\n"
msgstr "Ç ëåéôïõñãßá äåí åðéôñÝðåôáé"
-#: diagnostic.c:1226
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr ""
-#: diagnostic.c:1240 diagnostic.c:1390
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4885,74 +5038,83 @@ msgid ""
"See %s for instructions.\n"
msgstr ""
-#: diagnostic.c:1388
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr ""
-#: diagnostic.c:1450
-#, fuzzy, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+#: diagnostic.c:1376
+#, c-format
+msgid "in %s, at %s:%d"
+msgstr ""
-#: diagnostic.c:1495
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr ""
-#: diagnostic.c:1498
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
" from %s:%d"
msgstr ""
-#: diagnostic.c:1499
+#: diagnostic.c:1401
msgid ":\n"
-msgstr ""
+msgstr ":\n"
-#: diagnostic.c:1532 diagnostic.c:1549
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1552
+#: diagnostic.c:1465
#, fuzzy, c-format
msgid "`%s' is deprecated"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: diagnostic.c:1555
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1558
+#: diagnostic.c:1471
msgid "type is deprecated"
msgstr ""
-#: dwarf2out.c:3034
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3135
#, fuzzy, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-#: dwarfout.c:2089
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr ""
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
msgstr ""
-#: dwarfout.c:6291
+#: dwarfout.c:6278
#, fuzzy
msgid "can't get current directory"
msgstr "Äåí åßíáé äõíáôüí íá ëçöèåß ï ôñÝ÷ùí êáôÜëïãïò."
-#: emit-rtl.c:1091
+#: emit-rtl.c:1155
msgid "can't access real part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:1113
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:3140
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
@@ -4961,248 +5123,272 @@ msgstr ""
msgid "abort in %s, at %s:%d"
msgstr ""
-#: except.c:360
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr ""
-#: except.c:3062
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr ""
-#: except.c:3173 except.c:3195
+#: except.c:3137
#, fuzzy
msgid "__builtin_eh_return not supported on this target"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: explow.c:1357
+#: explow.c:1408
#, fuzzy
msgid "stack limits not supported on this target"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: expr.c:2926
+#: expr.c:3355
msgid "function using short complex types cannot be inline"
msgstr ""
-#: expr.c:5766 expr.c:5775 expr.c:5784 expr.c:5789 expr.c:6075 expr.c:6091
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
msgstr ""
-#: expr.c:6140
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr ""
-#: expr.c:6474
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr ""
-#: final.c:1209
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï áñ÷åßï fifo `%s'"
+
+#: final.c:1342
msgid "negative insn length"
msgstr ""
-#: final.c:2627
+#: final.c:2793
#, fuzzy
msgid "could not split insn"
msgstr "áäõíáìßá åýñåóçò âñü÷ïõ"
-#: final.c:2971
-#, fuzzy, c-format
-msgid "invalid `asm': %s"
+#: final.c:3141
+#, fuzzy
+msgid "invalid `asm': "
msgstr "ìç Ýãêõñï ìÝãåèïò ïñéæüíôéïõ óôçëïèÝôç: %s"
-#: final.c:2973
-#, c-format
-msgid "output_operand: %s"
-msgstr ""
-
-#: final.c:3146
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3163 final.c:3175
+#: final.c:3345 final.c:3357
#, fuzzy
msgid "unterminated assembly dialect alternative"
msgstr "ìç ôåñìáôéæüìåíï óõìâïëéêü üíïìá"
-#: final.c:3219
-#, c-format
-msgid "operand number missing after %-letter"
-msgstr ""
+#: final.c:3401
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
+msgstr "ïñéóìüò äéêáéùìÜôùí óôï %s"
-#: final.c:3222 final.c:3261
+#: final.c:3404 final.c:3443
#, fuzzy
msgid "operand number out of range"
msgstr "Ï áñéèìüò óýíäåóìïõ åßíáé Ýîù áðü ôï üñéï"
-#: final.c:3280
+#: final.c:3462
#, fuzzy, c-format
msgid "invalid %%-code"
msgstr "ìç Ýãêõñï äéêáßùìá"
-#: final.c:3311
-msgid "`%l' operand isn't a label"
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
msgstr ""
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: config/i386/i386.c:5280 config/pdp11/pdp11.c:1570 final.c:3418
-#: vmsdbgout.c:478
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr ""
-#: config/i386/i386.c:5334 config/pdp11/pdp11.c:1617 final.c:3473
-#: vmsdbgout.c:535
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
#, fuzzy
msgid "invalid expression as operand"
msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
-#: flow.c:360
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr ""
-#: flow.c:365
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr ""
-#: flow.c:384
+#: flow.c:378
msgid "control reaches end of non-void function"
msgstr "ï Ýëåã÷ïò öèÜíåé óôï ôÝëïò ìç-êåíÞò óõíÜñôçóçò"
-#: flow.c:1569
+#: flow.c:1642
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3114 fold-const.c:3127
+#: fold-const.c:2546 fold-const.c:2559
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:4169 fold-const.c:4186
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4317
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4322
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr ""
-#: function.c:5378
+# src/shred.c:1134
+#: function.c:884 varasm.c:1503
+#, fuzzy, c-format
+msgid "size of variable `%s' is too large"
+msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
+
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr ""
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr ""
-#: function.c:5385
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:5404
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:6270
+#: function.c:6420
msgid "function returns an aggregate"
msgstr ""
-#: function.c:6789
+#: function.c:6925
#, fuzzy, c-format
msgid "unused parameter `%s'"
msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'"
# src/main.c:785
-#: gcc.c:1100
+#: gcc.c:1107
#, fuzzy, c-format
msgid "ambiguous abbreviation %s"
msgstr "ÁóáöÞò ìïñöÞ `%s'"
-#: gcc.c:1127
+#: gcc.c:1134
#, c-format
msgid "incomplete `%s' option"
msgstr ""
-#: gcc.c:1138
+#: gcc.c:1145
#, fuzzy, c-format
msgid "missing argument to `%s' option"
msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: gcc.c:1151
+#: gcc.c:1158
#, fuzzy, c-format
msgid "extraneous argument to `%s' option"
msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: gcc.c:1465
+#: gcc.c:1486
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1639
+#: gcc.c:1667
#, fuzzy, c-format
-msgid "Setting spec %s to '%s'\n\n"
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
msgstr "äçìéïõñãßá %s %s óôï %s"
-#: gcc.c:1737
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:1835 gcc.c:1854
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1862
+#: gcc.c:1899
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: gcc.c:1878 gcc.c:1886 gcc.c:1895 gcc.c:1904
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1913
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:1920
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
#, fuzzy, c-format
msgid "rename spec %s to %s\n"
msgstr "äçìéïõñãßá %s %s óôï %s"
-#: gcc.c:1922
+#: gcc.c:1965
#, c-format
-msgid "spec is '%s'\n\n"
+msgid ""
+"spec is '%s'\n"
+"\n"
msgstr ""
-#: gcc.c:1935
+#: gcc.c:1978
#, fuzzy, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "ëßóôá ìå üëá ôá ãíùóôÜ óýíïëá ÷áñáêôÞñùí"
-#: gcc.c:1946 gcc.c:1959
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2013
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2725
-#, fuzzy
+#: gcc.c:2554
msgid "-pipe not supported"
-msgstr "Ôï ai_socktype äåí õðïóôçñßæåôáé"
+msgstr "ôï -pipe äåí õðïóôçñßæåôáé"
-#: gcc.c:2779
-msgid "\nGo ahead? (y or n) "
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
msgstr ""
+"\n"
+"Íá óõíå÷ßóåôå; (y Þ n) "
-#: gcc.c:2878
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5210,156 +5396,171 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2896
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
-msgstr ""
+msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3029
-#, fuzzy, c-format
+#: gcc.c:2883
+#, c-format
msgid "Usage: %s [options] file...\n"
-msgstr "÷ñÞóç: %s áñ÷åßï_åéóüäïõ\n"
+msgstr "÷ñÞóç: %s [åðéëïãÝò] áñ÷åßï...\n"
-#: gcc.c:3030
-#, fuzzy
+#: gcc.c:2884
msgid "Options:\n"
-msgstr " (åðéëïãÝò:"
+msgstr "ÅðéëïãÝò:\n"
-#: gcc.c:3032
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
-msgstr ""
+msgstr " -pass-exit-codes ¸îïäïò ìå ôï õøçëüôåñï êùäéêü óöÜëìáôïò ôçò öÜóçò\n"
-#: gcc.c:3033
+#: gcc.c:2887
msgid " --help Display this information\n"
-msgstr ""
+msgstr " --help ÅìöÜíéóç áõôþí ôùí ðëçñïöïñéþí\n"
-#: gcc.c:3034
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
-msgstr ""
+msgstr " --target-help ÅìöÜíéóç åðéëïãÝò ãñáììþí åíôïëÞò ó÷åôéêÝò ìå ôï óôü÷ï\n"
-#: gcc.c:3036
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
-msgstr ""
+msgstr " (×ñÞóç '-v --help' ãéá ôçí åìöÜíéóç åðéëïãþí ãñáììÞò åíôïëÞò õðïäéåñãáóéþí)\n"
-#: gcc.c:3037
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
-msgstr ""
+msgstr " -dumpspecs ÅìöÜíéóç üëùí ôùí ðñïêáèïñéóìÝíùí áëöáñéèìçôéêþí ôùí ðñïóäéïñéóìþí\n"
-#: gcc.c:3038
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
-msgstr ""
+msgstr " -dumpversion ÅìöÜíéóç ôçò Ýêäïóçò ôïõ ìåôáãëùôôéóôÞ\n"
-#: gcc.c:3039
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
-msgstr ""
+msgstr " -dumpmachine ÅìöÜíéóç ôïõ åðåîåñãáóôÞ óôü÷ïõ ôïõ ìåôáãëùôôéóôÞ\n"
-#: gcc.c:3040
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
-msgstr ""
+msgstr " -print-search-dirs ÅìöÜíéóç ôùí êáôáëüãùí óôéò äéáäñïìÝò áíáæÞôçóçò ôïõ ìåôáãëùôôéóôÞ\n"
-#: gcc.c:3041
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
-msgstr ""
+msgstr " -print-libgcc-file-name ÅìöÜíéóç ôïõ ïíüìáôïò ôçò óõíïäåõôéêÞò âéâëéïèÞêçò ôïõ ìåôáãëùôôéóôÞ\n"
-#: gcc.c:3042
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
-msgstr ""
+msgstr " -print-file-name=<âéâëéïè> ÅìöÜíéóç ôçò ðëÞñçò äéáäñïìÞò óôç âéâëéïèÞêç <âéâëéïè>\n"
-#: gcc.c:3043
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
-msgstr ""
+msgstr " -print-prog-name=<ðñüãñ> ÅìöÜíéóç ôçò ðëÞñçò äéáäñïìÞò óôï óõóôáôéêü ìåôáãëùôôéóôÞ <ðñüãñ>\n"
-#: gcc.c:3044
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
-msgstr ""
+msgstr " -print-multi-directory ÅìöÜíéóç ôïõ ñéæéêïý êáôáëüãïõ ãéá åêäüóåéò ôçò libgcc\n"
-#: gcc.c:3045
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
msgstr ""
+" -print-multi-lib ÅìöÜíéóç ôçò áíôéóôïß÷éóçò ìåôáîý åðéëïãþí ãñáììÞò\n"
+" åíôïëÞò êáé êáôáëüãùí áíáæÞôçóçò ðïëëáðëþí\n"
+" âéâëéïèçêþí\n"
-#: gcc.c:3048
+#: gcc.c:2902
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-directory ÅìöÜíéóç ôïõ ñéæéêïý êáôáëüãïõ ãéá åêäüóåéò ôçò libgcc\n"
+
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
-msgstr ""
+msgstr " -Wa,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôï óõíáñìïëïãçôÞ\n"
-#: gcc.c:3049
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
-msgstr ""
+msgstr " -Wp,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôïí ðñï-åðåîåñãáóôÞ\n"
-#: gcc.c:3050
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
-msgstr ""
+msgstr " -Wl,<åðéëïãÝò> ÐÝñáóìá <åðéëïãþí> äéá÷ùñéóìÝíùí ìå êüììá óôï óõíäÝôç\n"
-#: gcc.c:3051
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
-msgstr ""
+msgstr " -Xlinker <üñéóìá> ÐÝñáóìá <ïñßóìáôïò> óôï óõíäÝôç\n"
-#: gcc.c:3052
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
-msgstr ""
+msgstr " -save-temps Íá ìç äéáãñáöïýí ôá åíäéÜìåóá áñ÷åßá\n"
-#: gcc.c:3053
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
-msgstr ""
+msgstr " -pipe ×ñÞóç óùëçíþóåùí áíôß åíäéÜìåóùí áñ÷åßùí\n"
-#: gcc.c:3054
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
-msgstr ""
+msgstr " -time ÌÝôñçóç ôïõ ÷ñüíïõ åêôÝëåóçò êÜèå õðïäéåñãáóßáò\n"
-#: gcc.c:3055
+#: gcc.c:2910
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
-msgstr ""
+msgstr " -specs=<áñ÷åßï> ×ñÞóç ôïõ ðåñéå÷ïìÝíïõ ôïõ <áñ÷åßïõ> áíôß ôùí ðñïêáèïñéóìÝíùí ðñïóäéïñéóìþí\n"
-#: gcc.c:3056
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
+" -std=<ðñüôõðï> Èåþñçóå üôé ïé ðçãÝò êþäéêá åßíáé ãéá ôï <ðñüôõðï>\n"
+"\n"
-#: gcc.c:3057
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
-msgstr ""
+msgstr " -B <êáôÜëïãïò> ÐñïóèÞêç ôïõ <êáôáëüãïõ> óôéò äéáäñïìÝò áíáæÞôçóçò ôïõ ìåôáãëùôôéóôÞ\n"
-#: gcc.c:3058
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
-msgstr ""
+msgstr " -b <ìç÷áíÞ> ÅêôÝëåóç ôïõ gcc ãéá ôï óôü÷ï <ìç÷áíÞ>, áí åßíáé åãêáôåóôçìÝíïò\n"
-#: gcc.c:3059
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
-msgstr ""
+msgstr " -V <Ýêäïóç> ÅêôÝëåóç ôçò Ýêäïóçò <Ýêäïóç> ôïõ gcc, áí åßíáé åãêáôåóôçìÝíç\n"
-#: gcc.c:3060
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
-msgstr ""
+msgstr " -v ÅìöÜíéóç ôùí ðñïãñáììÜôùí ðïõ êáëåß ï ìåôáãëùôôéóôÞò\n"
-#: gcc.c:3061
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
-msgstr ""
+msgstr " -E Ðñïåðåîåñãáóßá ìüíï· ü÷é ìåôáãëþôôéóç, óõíáñìïëüãçóç Þ óýíäåóç\n"
-#: gcc.c:3063
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
-msgstr ""
+msgstr " -S Ìåôáãëþôôéóç ìüíï· ü÷é óõíáñìïëüãçóç Þóýíäåóç\n"
-#: gcc.c:3064
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
-msgstr ""
+msgstr " -c Ìåôáãëþôôéóç êáé óõíáñìïëüãçóç, ü÷éüìùò óýíäåóç\n"
-#: gcc.c:3065
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
-msgstr ""
+msgstr " -o <áñ÷åßï> ÔïðïèÝôçóç ôçò åîüäïõ óôï <áñ÷åßï>\n"
-#: gcc.c:3066
+#: gcc.c:2921
+#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
+" -x <ãëþóóá> Êáèïñéóìüò ôçò ãëþóóáò ôùí åðüìåíùí áñ÷Ýéùí åéóüäïõ\n"
+" ÁðïäåêôÝò ãëþóóåò åßíáé: c c++ assembler none\n"
+" Ôï 'none' óçìáßíåé åðáíáöïñÜ óôçí åî ïñéóìïý\n"
+" óõìðåñéöïñÜ åýñåóçò ôçò ãëþóóáò âÜóåé ôçò åðÝêôáóçò\n"
+" ôïõ áñ÷åßïõ\n"
-#: gcc.c:3073
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5367,20 +5568,35 @@ msgid ""
" passed on to the various sub-processes invoked by %s. In order to pass\n"
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
+"\n"
+"Ïé åðéëïãÝò ðïõ îåêéíïýí ìå -g, -f, -m, -O, -W Þ --param ðåñíïýí áõôüìáôá\n"
+" óôéò äéÜöïñåò õðïäéåñãáóßåò ðïõ êáëåß ôï %s. Ãéá íá ðåñÜóåôå Üëëåò\n"
+" åðéëïãÝò óå áõôÝò ôéò äéåñãáóßåò, ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôéò åðéëïãÝò\n"
+" -W<ãñÜììá>.\n"
+
+#: gcc.c:3063
+#, fuzzy, c-format
+msgid "`-%c' option must have argument"
+msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3353
+#: gcc.c:3262
#, c-format
msgid "%s (GCC) %s\n"
-msgstr ""
+msgstr "%s (GCC) %s\n"
-#: gcc.c:3354
+#: gcc.c:3263
#, fuzzy
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
-msgstr "ÐíåõìáôéêÜ Äéêáéþìáôá (C) 2000 Free Software Foundation, Inc."
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "ÐíåõìáôéêÜ Äéêáéþìáôá (C) 2001 Free Software Foundation, Inc.\n"
# src/main.c:850
-#: gcc.c:3356 gcov.c:320
+#: gcc.c:3265 gcov.c:364
#, fuzzy
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
@@ -5391,79 +5607,69 @@ msgstr ""
"áíôéãñáöÞò. Äåí õðÜñ÷åé ÊÁÌÉÁ åããýçóç· ïýôå áêüìá ãéá ËÅÉÔÏÕÑÃÉÊÏÔÇÔÁ Þ \n"
"ÊÁÔÁËËÇËÏÔÇÔÁ ÃÉÁ ÅÍÁ ÓÕÃÊÅÊÑÉÌÅÍÏ ÓÊÏÐÏ.\n"
-#: gcc.c:3455
+#: gcc.c:3366
#, fuzzy
msgid "argument to `-Xlinker' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3463
+#: gcc.c:3374
#, fuzzy
msgid "argument to `-l' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3480
+#: gcc.c:3391
#, fuzzy
msgid "argument to `-specs' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3495
+#: gcc.c:3406
#, fuzzy
msgid "argument to `-specs=' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3526
-#, fuzzy
-msgid "argument to `-b' is missing"
-msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr ""
-#: gcc.c:3541
+#: gcc.c:3445
#, fuzzy
msgid "argument to `-B' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3611
-#, fuzzy
-msgid "argument to `-V' is missing"
-msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-
-#: gcc.c:3632 gcc.c:3639 gcc.c:3646
-#, fuzzy
-msgid "invalid version number format"
-msgstr "ìç Ýãêõñç äéáìüñöùóç óõíôüìåõóçò"
-
-#: gcc.c:3757
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr ""
-#: gcc.c:3928
+#: gcc.c:3791
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3932
+#: gcc.c:3795
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:3944
+#: gcc.c:3807
#, fuzzy
msgid "argument to `-x' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:3972
+#: gcc.c:3835
#, fuzzy, c-format
msgid "argument to `-%s' is missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: gcc.c:4033
+#: gcc.c:3896
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4332
+#: gcc.c:4241
#, fuzzy
msgid "invalid specification! Bug in cc"
msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)"
-#: gcc.c:4481
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr ""
@@ -5471,420 +5677,670 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5040
+#: gcc.c:4955
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5049
+#: gcc.c:4964
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5067
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5192
+#: gcc.c:5107
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "%s: ìç áíáãíùñßóéìç åðéëïãÞ `-%c'\n"
-#: gcc.c:5302
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "Óôç óõíÜñôçóç `%s':"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr ""
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr ""
-#: gcc.c:5980
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%s'"
-#: gcc.c:5986
-#, fuzzy, c-format
+#: gcc.c:6087
+#, c-format
msgid "install: %s%s\n"
-msgstr "Ôïðïèåóßá: %s%s\n"
+msgstr "åãêáôÜóôáóç: %s%s\n"
-#: gcc.c:5987
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
-msgstr ""
+msgstr "ðñïãñÜììáôá: %s\n"
-#: gcc.c:5988
-#, fuzzy, c-format
+#: gcc.c:6089
+#, c-format
msgid "libraries: %s\n"
-msgstr "áêáôÜëëçëç êáíïíéêÞ Ýêöñáóç: %s\n"
+msgstr "âéâëéïèÞêåò: %s\n"
-#: gcc.c:6036
-msgid "\nFor bug reporting instructions, please see:\n"
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
msgstr ""
+"\n"
+"Ãéá ïäçãßåò ãéá áíáöïñÝò óöáëìÜôùí. ðáñáêáëþ äåßôå:\n"
-#: gcc.c:6052
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
-msgstr ""
+msgstr "¸÷åé ñõèìéóôåß ìå: %s\n"
-#: gcc.c:6066
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
-msgstr ""
+msgstr "ÌïíôÝëï íçìÜôùí: %s\n"
-#: gcc.c:6077
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
-msgstr ""
+msgstr "Ýêäïóç gcc %s\n"
-#: gcc.c:6079
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
-msgstr ""
+msgstr "Ýêäïóç ïäçãïý gcc %s åêôåëåß ôçí Ýêäïóç gcc %s\n"
-#: gcc.c:6087
-#, fuzzy
+#: gcc.c:6197
msgid "no input files"
-msgstr "Äåí õðÜñ÷ïõí áñ÷åßá åéóüäïõ"
+msgstr "äåí õðÜñ÷ïõí áñ÷åßá åéóüäïõ"
-#: gcc.c:6125
-#, fuzzy, c-format
+#: gcc.c:6235
+#, c-format
msgid "%s: %s compiler not installed on this system"
-msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+msgstr "%s: ï ìåôáãëùôôéóôÞò %s äåí Ý÷åé åãêáôáóôáèåß óôï óýóôçìá áõôü"
-#: gcc.c:6200
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6243
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr ""
-#: gcc.c:6346
-#, fuzzy
+#: gcc.c:6456
msgid "internal gcc abort"
-msgstr "Åóùôåñéêü óöÜëìá NIS"
+msgstr "åóùôåñéêü óöÜëìá gcc"
# src/main.c:178
-#: gcov.c:282
+#: gcov.c:325
#, fuzzy
msgid "Internal gcov abort.\n"
msgstr "Åóùôåñéêü óöÜëìá (recoding)"
-#: gcov.c:295
-#, fuzzy
-msgid "Usage: gcov [OPTION]... SOURCEFILE\n\n"
-msgstr "×ñÞóç: %s [ÅÐÉËÏÃÇ]... [ÁÑ×ÅÉÏ]\n"
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+"×ñÞóç: gcov [ÅÐÉËÏÃÇ]... [ÁÑןÏÐÇÃÇÓ]\n"
+"\n"
-#: gcov.c:296
-#, fuzzy
-msgid "Print code coverage information.\n\n"
-msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ"
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+"EìöÜíéóç ðëçñïöïñéþí êÜëõøçò êþäéêá.\n"
+"\n"
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
-msgstr ""
+msgstr " -h, --help ÅìöÜíéóç áõôÞò ôçò âïÞèåéáò, ìåôÜ Ýîïäïò\n"
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
-msgstr ""
+msgstr " -v, --version ÅìöÜíéóç áñéèìïý Ýêäïóçò, ìåôÜ Ýîïäïò\n"
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr ""
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
-#: gcov.c:307
+#: gcov.c:351
#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
+"\n"
+"Ãéá ïäçãßåò óôéò áíáöïñÝò óöáëìÜôùí, ðáñáêáëþ äåßôå:\n"
+"%s.\n"
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
-msgstr ""
+msgstr "gcov (GCC) %s\n"
-#: gcov.c:318
-#, fuzzy
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
-msgstr "ÐíåõìáôéêÜ Äéêáéþìáôá (C) 2000 Free Software Foundation, Inc."
+msgstr "ÐíåõìáôéêÜ Äéêáéþìáôá (C) 2001 Free Software Foundation, Inc.\n"
-#: gcov.c:462
+#: gcov.c:500
#, fuzzy, c-format
msgid "Could not open basic block file %s.\n"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: gcov.c:471
+#: gcov.c:507
+#, fuzzy, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "Áäýíáôç ç äçìéïõñãßá áñ÷åßïõ êáôáãñáöþí \"%s\""
+
+#: gcov.c:524
#, fuzzy, c-format
msgid "Could not open data file %s.\n"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr ""
-#: gcov.c:478
-#, fuzzy, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "Áäýíáôç ç äçìéïõñãßá áñ÷åßïõ êáôáãñáöþí \"%s\""
-
-#: gcov.c:489
+#: gcov.c:534
#, fuzzy, c-format
msgid "No executable code associated with file %s.\n"
msgstr "ÊáìéÜ äéåýèõíóç äåí óõíäÝåôáé ìå ôï üíïìá"
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
+#: gcov.c:1186
+#, c-format
+msgid "%s of %d lines executed in %s %s\n"
msgstr ""
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
+#: gcov.c:1191
+#, fuzzy, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
+
+#: gcov.c:1198
+#, fuzzy, c-format
+msgid "%s of %d branches executed in %s %s\n"
msgstr ""
+"Äåí õðÜñ÷åé áñ÷åßï `%s'.\n"
+"\n"
-#: gcov.c:973
+#: gcov.c:1203
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr ""
+
+#: gcov.c:1209
+#, fuzzy, c-format
+msgid "No branches in %s %s\n"
msgstr ""
+"Äåí õðÜñ÷åé áñ÷åßï `%s'.\n"
+"\n"
-#: gcov.c:977
+#: gcov.c:1211
#, c-format
-msgid "No executable source lines in function %s\n"
+msgid "%s of %d calls executed in %s %s\n"
msgstr ""
-#: gcov.c:984
+#: gcov.c:1216
+#, fuzzy, c-format
+msgid "No calls in %s %s\n"
+msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
+
+#: gcov.c:1351
+#, fuzzy, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "äéáãñáöÞ üëùí ôùí åããñáöþí ôïõ êáôáëüãïõ %s\n"
+
+#: gcov.c:1353
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
+msgid "block_num = %ld, num_blocks = %d\n"
msgstr ""
-#: gcov.c:988
+#: gcov.c:1367
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+msgid "ERROR: unexpected line number %ld\n"
msgstr ""
-#: gcov.c:993
+#: gcov.c:1383
#, fuzzy, c-format
-msgid "No branches in function %s\n"
-msgstr "Äåí âñÝèçêáí ôáéñéÜóìáôá óôç ìïñöÞ `%s'.\n"
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: gcov.c:995
+#: gcov.c:1398
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
+msgid "ERROR: out of range line number in function %s\n"
msgstr ""
-#: gcov.c:999
+#: gcov.c:1470
#, fuzzy, c-format
-msgid "No calls in function %s\n"
-msgstr "Äåí âñÝèçêáí URL óôï %s.\n"
+msgid "Could not open source file %s.\n"
+msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: gcov.c:1126
-#, fuzzy, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
-msgstr "äéáãñáöÞ üëùí ôùí åããñáöþí ôïõ êáôáëüãïõ %s\n"
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr ""
-#: gcov.c:1128
+#: gcov.c:1510
#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
+msgid "Unexpected EOF while reading source file %s.\n"
msgstr ""
-#: gcov.c:1166
+#: gcov.c:1532
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
+msgid "call %2d never executed\n"
msgstr ""
-#: gcov.c:1243
+#: gcov.c:1535
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
+msgid "call %2d returns %s\n"
msgstr ""
-#: gcov.c:1247
+#: gcov.c:1543
#, c-format
-msgid "No executable source lines in file %s\n"
+msgid "branch %2d never executed\n"
+msgstr ""
+
+#: gcov.c:1546
+#, fuzzy, c-format
+msgid "branch %2d taken %s\n"
msgstr ""
+"Äåí õðÜñ÷åé áñ÷åßï `%s'.\n"
+"\n"
-#: gcov.c:1254
+#: gcov.c:1610
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
+msgid "Creating %s.\n"
+msgstr "Äçìéïõñãßá ôïõ %s.\n"
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "óöÜëìá åããñáöÞò %s"
+
+#: gcov.c:1618
+#, fuzzy, c-format
+msgid "Could not open output file %s.\n"
+msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
+
+#: gcse.c:763
+#, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr ""
+
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
msgstr ""
-#: gcov.c:1258
+#: genautomata.c:1490
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+msgid "Name `%s' contains quotes"
msgstr ""
-#: gcov.c:1263
+#: genautomata.c:1621
#, fuzzy, c-format
-msgid "No branches in file %s\n"
-msgstr "Äåí õðÜñ÷åé áñ÷åßï `%s'.\n\n"
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: gcov.c:1265
+#: genautomata.c:1650
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
msgstr ""
-#: gcov.c:1269
+#: genautomata.c:1682 genautomata.c:1685
#, fuzzy, c-format
-msgid "No calls in file %s\n"
-msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
+msgid "invalid string `%s' in define_bypass"
+msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
-#: gcov.c:1281
+#: genautomata.c:1720
#, fuzzy, c-format
-msgid "Could not open source file %s.\n"
-msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: gcov.c:1331
+#: genautomata.c:1724
#, fuzzy, c-format
-msgid "Could not open output file %s.\n"
-msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: gcov.c:1339
+#: genautomata.c:1760
#, c-format
-msgid "Creating %s.\n"
-msgstr "Äçìéïõñãßá ôïõ %s.\n"
+msgid "invalid first string `%s' in presence_set"
+msgstr ""
+
+#: genautomata.c:1764
+#, fuzzy, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "ìç Ýãêõñï üíïìá ìÞíá"
-#: gcov.c:1387
+#: genautomata.c:1800
#, c-format
-msgid "call %d never executed\n"
+msgid "invalid first string `%s' in absence_set"
msgstr ""
-#: gcov.c:1396
+#: genautomata.c:1804
#, c-format
-msgid "call %d returns = %s\n"
+msgid "invalid second string `%s' in absence_set"
msgstr ""
-#: gcov.c:1406
+#: genautomata.c:1837
#, c-format
-msgid "call %d returns = %s%%\n"
+msgid "invalid string `%s' in define_automaton"
msgstr ""
-#: gcov.c:1413
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
+
+#: genautomata.c:1890
#, c-format
-msgid "branch %d never executed\n"
+msgid "garbage after ) in reservation `%s'"
msgstr ""
-#: gcov.c:1423
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: genautomata.c:1932
#, c-format
-msgid "branch %d taken = %s\n"
+msgid "repetition `%s' <= 1 in reservation `%s'"
msgstr ""
-#: gcov.c:1433
+#: genautomata.c:2425
#, c-format
-msgid "branch %d taken = %s%%\n"
+msgid "unit `%s' in exclusion is not declared"
msgstr ""
-#: gcov.c:1444
+#: genautomata.c:2427
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
+msgid "`%s' in exclusion is not unit"
msgstr ""
-#: gcse.c:757
+#: genautomata.c:2465
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgid "unit `%s' excludes itself"
msgstr ""
-#: gcse.c:769
+#: genautomata.c:2473
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
msgstr ""
-#: ch/grant.c:2652 ch/lex.c:212 ch/lex.c:2189 f/com.c:14249 graph.c:421
-#: java/jcf-parse.c:981 java/jcf-parse.c:1133 java/lex.c:1782
-#: objc/objc-act.c:529 profile.c:950 profile.c:958 toplev.c:1845 toplev.c:4954
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr ""
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr ""
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "(ôï áñ÷åßï Þäç õðÜñ÷åé)"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, fuzzy, c-format
+msgid "automaton `%s' is not used"
+msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
+
+#: genautomata.c:2950
+#, fuzzy, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "ìç Ýãêõñïò äçëùôÞò ðåäßïõ: `%s'"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "ôï áñ÷åßï ÷Üñôç ÷áñáêôÞñùí `%s' äåí âñÝèçêå"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "Ïé ïñéóìïß ðçãÞ âñßóêïíôáé óôï ÁÑ×ÅÉÏ"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "÷ùñßò ïñßóìáôá"
+
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+#, fuzzy
+msgid "Errors in DFA description"
+msgstr "(÷ùñßò ðåñéãñáöÞ)"
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "óöÜëìá åããñáöÞò %s"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "äåí õðÜñ÷ïõí áñ÷åßá åéóüäïõ"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, fuzzy, c-format
msgid "can't open %s"
msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr ""
-#: integrate.c:185
+#: integrate.c:174
#, fuzzy
msgid "function cannot be inline"
msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr ""
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr ""
-#: integrate.c:196
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr ""
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr ""
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr ""
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
msgstr ""
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr ""
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr ""
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr ""
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr ""
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr ""
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr ""
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr ""
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr ""
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr ""
@@ -5918,55 +6374,56 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-#: profile.c:429
+#: profile.c:397
#, c-format
-msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgid "Profile does not match flowgraph of function %s (out of date?)"
msgstr ""
-#: profile.c:975
-#, c-format
-msgid "file %s not found, execution counts assumed to be zero"
+#: profile.c:400
+msgid ".da file corrupted"
msgstr ""
-#: profile.c:1022
-msgid ".da file contents exhausted too early"
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr ""
-#: profile.c:1025
-msgid ".da file contents not exhausted"
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
msgstr ""
-#: protoize.c:593
+#: protoize.c:542
#, fuzzy, c-format
msgid "%s: internal abort\n"
msgstr "Åóùôåñéêü óöÜëìá ôïõ áíáëõôÞ äéåõèýíóåùí"
-#: protoize.c:684
+#: protoize.c:633
#, fuzzy, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr "%s: ÓöÜëìá êáôÜ ôçí åããñáöÞ ôïõ %s\n"
-#: protoize.c:729
+#: protoize.c:678
#, fuzzy, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr "%s: ç ÷ñÞóç åßíáé %s [ -v ] [ -c äéáêïðÞ ] ïíïìáóßá æþíçò ...\n"
-#: protoize.c:732
+#: protoize.c:681
#, fuzzy, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: ç ÷ñÞóç åßíáé %s [ -v ] [ -c äéáêïðÞ ] ïíïìáóßá æþíçò ...\n"
-#: protoize.c:839
+#: protoize.c:788
#, fuzzy, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr "%s: Ðñïåéäïðïßçóç: ç uname áðÝôõ÷å: %s\n"
-#: protoize.c:847
+#: protoize.c:796
#, fuzzy, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr "%s: Ðñïåéäïðïßçóç: ç uname áðÝôõ÷å: %s\n"
-#: protoize.c:855
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr ""
@@ -5974,1625 +6431,1684 @@ msgstr ""
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1273
+#: protoize.c:1222
#, fuzzy, c-format
msgid "%s: invalid file name: %s\n"
msgstr "%s: ìç Ýãêõñï åßäïò áñ÷åßïõ"
-#: protoize.c:1425
+#: protoize.c:1374
#, fuzzy, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr "%s: áäõíáìßá ðñüóâáóçò óôï %s: %s\n"
-#: protoize.c:1446
+#: protoize.c:1395
#, c-format
-msgid "\n%s: fatal error: aux info file corrupted at line %d\n"
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
msgstr ""
-#: protoize.c:1782
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr ""
-#: protoize.c:2040
+#: protoize.c:1989
#, fuzzy, c-format
msgid "%s: compiling `%s'\n"
msgstr "%s: ÓöÜëìá êáôÜ ôçí åããñáöÞ ôïõ %s\n"
# src/request.c:37
-#: protoize.c:2063
+#: protoize.c:2012
#, fuzzy, c-format
msgid "%s: wait: %s\n"
msgstr "%s óå %s"
-#: protoize.c:2068
+#: protoize.c:2017
#, fuzzy, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr "%s: Ï ðñïåðåîåñãáóôÞò C áðÝôõ÷å ìå óÞìá %d\n"
-#: protoize.c:2076
+#: protoize.c:2025
#, fuzzy, c-format
msgid "%s: %s exited with status %d\n"
msgstr "%s: Ï ðñïåðåîåñãáóôÞò C áðÝôõ÷å ìå óÞìá %d\n"
-#: protoize.c:2128
+#: protoize.c:2077
#, fuzzy, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr "%s: Ðñïåéäïðïßçóç: ç uname áðÝôõ÷å: %s\n"
-#: protoize.c:2137 protoize.c:2166
+#: protoize.c:2086 protoize.c:2115
#, fuzzy, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr "%s: áäõíáìßá óôçí áíÜãíùóç %s: %s\n"
-#: protoize.c:2182 protoize.c:2210
+#: protoize.c:2131 protoize.c:2159
#, fuzzy, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr "áäõíáìßá ðñïóðÝëáóçò(stat()) áñ÷åßïõ `%s': %s"
-#: protoize.c:2238
+#: protoize.c:2187
#, fuzzy, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäï `%s' ãéá ôçí êáôçãïñßá `%s'"
# src/shred.c:1103
-#: protoize.c:2256
+#: protoize.c:2205
#, fuzzy, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr "%s: óöÜëìá åããñáöÞò óôç èÝóç %s"
-#: protoize.c:2269
+#: protoize.c:2218
#, fuzzy, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr "%s: ÓöÜëìá êáôÜ ôï êëåßóéìï ôïõ %s: %s\n"
-#: protoize.c:2285
+#: protoize.c:2234
#, fuzzy, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr "%s: Äå ìðïñåß íá äéáãñáöåß ôï %s: %s\n"
-#: protoize.c:2367 protoize.c:4369
+#: protoize.c:2316 protoize.c:4318
#, fuzzy, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr "%s: Äåí åßíáé äõíáôüí íá äçìéïõñãçèåß %s: %s\n"
-#: protoize.c:2446
+#: protoize.c:2395
#, fuzzy, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr "%s: Ðñïåéäïðïßçóç: ç uname áðÝôõ÷å: %s\n"
-#: protoize.c:2571
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr ""
-#: protoize.c:2575
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr ""
-#: protoize.c:2577
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr ""
-#: protoize.c:2610
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr ""
-#: protoize.c:2650
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr ""
-#: protoize.c:2656
+#: protoize.c:2605
#, fuzzy, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr "%s: ðñïåéäïðïßçóç: äå âñÝèçêå áñ÷Þ êåöáëßäáò"
-#: protoize.c:2687
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2693
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2866 protoize.c:2869
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr ""
-#: protoize.c:3075
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr ""
-#: protoize.c:3090
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3213
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr ""
-#: protoize.c:3234
+#: protoize.c:3183
#, fuzzy, c-format
-msgid "\n%s: warning: too few parameter lists in declaration of `%s'\n"
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
-#: protoize.c:3332
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr ""
-#: protoize.c:3510
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr ""
-#: protoize.c:3537
+#: protoize.c:3486
#, c-format
-msgid "\n%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
msgstr ""
-#: protoize.c:3611
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr ""
-#: protoize.c:3702 protoize.c:3732
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3721
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr ""
-#: protoize.c:4051
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr ""
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4067
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr ""
-#: protoize.c:4070
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr ""
-#: protoize.c:4129
+#: protoize.c:4078
#, fuzzy, c-format
msgid "%s: `%s' not converted\n"
msgstr "%s: `%s': äåí âñÝèçêå ôáßñéáóìá"
-#: protoize.c:4137
+#: protoize.c:4086
#, fuzzy, c-format
msgid "%s: would convert file `%s'\n"
msgstr "%s: ç Ýîïäïò èá åðéêáëýøåé ôï %s\n"
-#: protoize.c:4140
+#: protoize.c:4089
#, fuzzy, c-format
msgid "%s: converting file `%s'\n"
msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
-#: protoize.c:4150
+#: protoize.c:4099
#, fuzzy, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr "áäõíáìßá ðñïóðÝëáóçò(stat()) áñ÷åßïõ `%s': %s"
-#: protoize.c:4192
+#: protoize.c:4141
#, fuzzy, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr "%s: Äåí åßíáé äõíáôüí íá áíïé÷ôåß ôï %s: %s\n"
-#: protoize.c:4207
+#: protoize.c:4156
#, fuzzy, c-format
-msgid "\n%s: error reading input file `%s': %s\n"
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
msgstr "%s: ÓöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ %s\n"
-#: protoize.c:4241
+#: protoize.c:4190
#, fuzzy, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr "%s: Äåí åßíáé äõíáôüí íá äçìéïõñãçèåß %s: %s\n"
-#: protoize.c:4346
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr ""
-#: protoize.c:4354
+#: protoize.c:4303
#, fuzzy, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "%s: Äåí åßíáé äõíáôüí íá óõíäåèåß ôï %s ìå ôï %s: %s\n"
-#: protoize.c:4384
+#: protoize.c:4333
#, fuzzy, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
-#: protoize.c:4417
+#: protoize.c:4366
#, fuzzy, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr "%s: Äåí åßíáé äõíáôüí íá áöáéñåèåß ôï %s: %s\n"
-#: protoize.c:4592
+#: protoize.c:4541
#, fuzzy, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr "%s: äåí åßíáé äõíáôü íá ãñáöôåß ðÜíù óå êáôÜëïãï"
-#: protoize.c:4690
+#: protoize.c:4639
#, fuzzy, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: ôï áñ÷åßï åéóüäïõ åßíáé ôï áñ÷åßï åîüäïõ"
-#: real.c:824 real.c:1001
-#, fuzzy
-msgid "conversion from NaN to int"
-msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-
-#: real.c:847
-#, fuzzy
-msgid "conversion from NaN to unsigned int"
-msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-
-#: real.c:2730
-#, fuzzy
-msgid "floating point overflow"
-msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
-
-#: real.c:4395 real.c:6675 real.c:6756
-msgid "overflow on truncation to integer"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
msgstr ""
-#: real.c:4467
-msgid "overflow on truncation to unsigned integer"
-msgstr ""
-
-#: real.c:5812
-#, fuzzy, c-format
-msgid "%s: argument domain error"
-msgstr "%s: óöÜëìá áíÜãíùóçò"
-
-#: real.c:5813
-#, c-format
-msgid "%s: function singularity"
-msgstr ""
-
-#: real.c:5814
-#, fuzzy, c-format
-msgid "%s: overflow range error"
-msgstr "%s: óöÜëìá åããñáöÞò"
-
-#: real.c:5815
-#, fuzzy, c-format
-msgid "%s: underflow range error"
-msgstr "%s: óöÜëìá åããñáöÞò"
-
-#: real.c:5816
-#, c-format
-msgid "%s: total loss of precision"
-msgstr ""
-
-#: real.c:5817
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr ""
-
-#: real.c:5818
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr ""
-
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr ""
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: config/ia64/ia64.c:3856 config/ia64/ia64.c:3863 regclass.c:793
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, fuzzy, c-format
msgid "unknown register name: %s"
msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'"
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1821
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1833
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1836
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1848
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1207
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr ""
-#: reload.c:1229
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr ""
-#: reload.c:3387
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr ""
-#: reload.c:3555
+#: reload.c:3629
#, fuzzy
msgid "unable to generate reloads for:"
msgstr "Áäýíáôç ç äçìéïõñãßá äéåñãáóßáò óôïí åîõðçñåôçôÞ"
-#: reload.c:3556 reload.c:3770
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr ""
-#: reload1.c:1242
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr ""
-#: reload1.c:1245
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1892
+#: reload1.c:1909
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr ""
-#: reload1.c:1896
+#: reload1.c:1913
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr ""
-#: reload1.c:1898
+#: reload1.c:1915
#, fuzzy
msgid "this is the insn:"
msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-#: reload1.c:3917
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:5033
+#: reload1.c:5052
#, fuzzy
msgid "could not find a spill register"
msgstr "áäõíáìßá åýñåóçò âñü÷ïõ"
-#: reload1.c:5038
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6629
+#: reload1.c:6679
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6630
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr ""
-#: rtl-error.c:139
+#: rtl-error.c:140
#, fuzzy
msgid "unrecognizable insn:"
msgstr "Ìç áíáãíùñßóéìç ìåôáâëçôÞ `%s'"
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:707
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:722
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:738
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:751
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:765
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:780
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: stmt.c:927
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr ""
-#: stmt.c:1163 stmt.c:3895
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr ""
-#: stmt.c:1343
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr ""
-#: stmt.c:1358
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:1380
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr ""
-#: stmt.c:1386 stmt.c:1486
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr ""
-#: stmt.c:1405
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:1477
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr ""
-#: stmt.c:1517
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:1549
+#: stmt.c:1400
#, fuzzy, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: stmt.c:1645
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr ""
+
+#: stmt.c:1540
#, fuzzy, c-format
msgid "unknown register name `%s' in `asm'"
msgstr "Üãíùóôïò ÷áñáêôÞñáò óôï ðåäßï `%s' ôçò êáôçãïñßáò `%s'"
-#: stmt.c:1689
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr ""
-#: stmt.c:1748
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1817 stmt.c:1846
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr ""
-#: stmt.c:1992
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr ""
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr ""
+
+#: stmt.c:1929
#, fuzzy
msgid "too many alternatives in `asm'"
msgstr "Õðåñâïëéêá ðïëëÜ áíïéêôÜ áñ÷åßá óôï óýóôçìá"
-#: stmt.c:2004
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr ""
-#: stmt.c:2057
+#: stmt.c:1994
#, fuzzy, c-format
msgid "duplicate asm operand name '%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: stmt.c:2144
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:2164
+#: stmt.c:2109
#, fuzzy, c-format
msgid "undefined named operand '%s'"
msgstr "Ìç ïñéóìÝíï üíïìá %s"
-#: stmt.c:3832
-#, fuzzy, c-format
+#: stmt.c:3703
+#, c-format
msgid "unused variable `%s'"
-msgstr "Ìç áíáãíùñßóéìç ìåôáâëçôÞ `%s'"
+msgstr "á÷ñçóéìïðïßçôç ìåôáâëçôÞ `%s'"
-#: stmt.c:5284
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr ""
-#: stmt.c:5310 stmt.c:5330
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr ""
-#: stmt.c:5313 stmt.c:5333
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr ""
-#: stor-layout.c:172
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr ""
-#: stor-layout.c:174
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr ""
-#: stor-layout.c:455
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr ""
-#: stor-layout.c:457
+#: stor-layout.c:489
#, fuzzy, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d"
-#: stor-layout.c:836 stor-layout.c:1089
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr ""
-#: stor-layout.c:838 stor-layout.c:1091
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr ""
-#: stor-layout.c:853
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr ""
-#: stor-layout.c:1053
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr ""
-#: stor-layout.c:1096
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr ""
-#: stor-layout.c:1098
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr ""
-#: timevar.c:448
-msgid "\nExecution times (seconds)\n"
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
msgstr ""
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr " ÓÕÍÏËÉÊÁ :"
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
-#: tlink.c:428
+#: tlink.c:399
#, fuzzy, c-format
msgid "collect: reading %s\n"
msgstr "óöÜëìá áíÜãíùóçò %s"
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr ""
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr ""
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr ""
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ç ld åðÝóôñåøå êáôÜóôáóç åîüäïõ %d"
-#: toplev.c:913
+#: toplev.c:920
msgid "Generate debugging info in default format"
msgstr ""
-#: toplev.c:914
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr ""
-#: toplev.c:916
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr ""
-#: toplev.c:917
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr ""
-#: toplev.c:920
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr ""
-#: toplev.c:922
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr ""
-#: toplev.c:925
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr ""
-#: toplev.c:928
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr ""
-#: toplev.c:929
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr ""
-#: toplev.c:932
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr ""
-#: toplev.c:976
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr ""
+
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: toplev.c:978
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr ""
-#: toplev.c:980
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr ""
-#: toplev.c:982
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr ""
-#: toplev.c:984
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr ""
-#: toplev.c:986
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: toplev.c:988
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr ""
-#: toplev.c:990
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: toplev.c:992
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: toplev.c:994
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: toplev.c:996
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: toplev.c:998
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
msgstr ""
-#: toplev.c:1000
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr ""
-#: toplev.c:1002
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: toplev.c:1004
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr ""
-#: toplev.c:1006
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: toplev.c:1008
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr ""
-#: toplev.c:1010
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr ""
-#: toplev.c:1012
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr ""
-#: toplev.c:1014
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: toplev.c:1016
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr ""
-#: toplev.c:1018
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr ""
-#: toplev.c:1020
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: toplev.c:1022
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr ""
-#: toplev.c:1024
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr ""
-#: toplev.c:1026
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr ""
-#: toplev.c:1028
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: toplev.c:1030
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr ""
-#: toplev.c:1032
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr ""
-#: toplev.c:1034
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr ""
-#: toplev.c:1036
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr ""
-#: toplev.c:1038
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr ""
-#: toplev.c:1040
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: toplev.c:1042
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr ""
-#: toplev.c:1044
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr ""
-#: toplev.c:1046
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr ""
-#: toplev.c:1048
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr ""
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr ""
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr ""
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr ""
-#: toplev.c:1050
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr ""
-#: toplev.c:1052
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
msgstr ""
-#: toplev.c:1054
-msgid "Pretend that host and target use the same FP format"
-msgstr ""
-
-#: toplev.c:1056
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr ""
-#: toplev.c:1058
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr ""
-#: toplev.c:1060
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr ""
-#: toplev.c:1062
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr ""
-#: toplev.c:1064
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr ""
-#: toplev.c:1066
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr ""
-#: toplev.c:1068
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr ""
-#: toplev.c:1070
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr ""
-#: toplev.c:1073
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: toplev.c:1077
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr ""
-#: toplev.c:1079
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr ""
-#: toplev.c:1081
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr ""
-#: toplev.c:1083
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr ""
-#: toplev.c:1085
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: toplev.c:1087
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr ""
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: toplev.c:1089
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr ""
-#: toplev.c:1091
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr ""
-#: toplev.c:1093
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: toplev.c:1095
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr ""
-#: toplev.c:1097
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr ""
-#: toplev.c:1099
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr ""
-#: toplev.c:1101
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr ""
-#: toplev.c:1103
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
msgstr ""
-#: toplev.c:1105
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr ""
-#: toplev.c:1107
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr ""
-#: toplev.c:1109
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr ""
-#: toplev.c:1111
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr ""
-#: toplev.c:1113
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr ""
-#: toplev.c:1115
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: toplev.c:1117
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr ""
-#: toplev.c:1119
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr ""
-#: toplev.c:1121
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr ""
-#: toplev.c:1123
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: toplev.c:1125
+#: toplev.c:1142
msgid "Align all labels"
msgstr ""
-#: toplev.c:1127
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr ""
-#: toplev.c:1129
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: toplev.c:1131
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: toplev.c:1133
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: toplev.c:1135
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr ""
-#: toplev.c:1137
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr ""
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr ""
-#: toplev.c:1139
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr ""
-#: toplev.c:1141
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr ""
-#: toplev.c:1143
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr ""
-#: toplev.c:1145
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr ""
-#: toplev.c:1147
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr ""
-#: toplev.c:1149
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr ""
-#: toplev.c:1151
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr ""
-#: toplev.c:1153
+#: toplev.c:1174
#, fuzzy
msgid "Floating-point operations can trap"
msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
-#: toplev.c:1155
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
-#: toplev.c:1157
-msgid "Compile pointers as triples: value, base & end"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: toplev.c:1159
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
-msgstr ""
+#: toplev.c:1180
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
-#: toplev.c:1161
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr ""
-#: toplev.c:1165
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr ""
-#: toplev.c:1167
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr ""
-#: toplev.c:1184
-msgid "Compile just for ISO C89"
-msgstr ""
+#: toplev.c:1190
+#, fuzzy
+msgid "Use graph coloring register allocation."
+msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
-#: toplev.c:1186
-msgid "Do not promote floats to double if using -traditional"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
msgstr ""
-#: toplev.c:1188
+#: toplev.c:1209
msgid "Determine language standard"
msgstr ""
-#: toplev.c:1192
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
msgstr ""
-#: toplev.c:1196
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr ""
-#: toplev.c:1198
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr ""
-#: toplev.c:1204
-msgid "Attempt to support traditional K&R style C"
-msgstr ""
-
-#: toplev.c:1210
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr ""
-#: toplev.c:1213
+#: toplev.c:1228
msgid "Do not recognize any built in functions"
msgstr ""
-#: toplev.c:1215
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr ""
-#: toplev.c:1218
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
msgstr ""
-#: toplev.c:1221
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr ""
-#: toplev.c:1224
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr ""
-#: toplev.c:1229
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr ""
-#: toplev.c:1232
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr ""
-#: toplev.c:1235
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr ""
-#: toplev.c:1239
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr ""
-#: toplev.c:1241
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
msgstr ""
-#: toplev.c:1245
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-#: toplev.c:1248
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr ""
-#: toplev.c:1251
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr ""
-#: toplev.c:1254 toplev.c:1257
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr ""
-#: toplev.c:1260
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr ""
-#: toplev.c:1263
-msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
msgstr ""
-#: toplev.c:1267
-msgid "Don't warn about strftime formats yielding 2 digit years"
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr ""
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr ""
-#: toplev.c:1270
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr ""
-#: toplev.c:1272
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr ""
-#: toplev.c:1275
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr ""
-#: toplev.c:1278
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr ""
+
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr ""
-#: toplev.c:1282
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr ""
-#: toplev.c:1287
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr ""
-#: toplev.c:1291
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr ""
-#: toplev.c:1293
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr ""
-#: toplev.c:1296
+#: toplev.c:1316
msgid "Warn about possibly missing braces around initializers"
msgstr ""
-#: toplev.c:1299
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr ""
-#: toplev.c:1302
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr ""
-#: toplev.c:1305
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr ""
-#: toplev.c:1308
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr ""
-#: toplev.c:1311
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr ""
-#: toplev.c:1314
-msgid "Warn about possible violations of sequence point rules"
-msgstr ""
-
-#: toplev.c:1317
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
msgstr ""
-#: toplev.c:1320
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr ""
-#: toplev.c:1323
-msgid "Warn about signed/unsigned comparisons"
-msgstr ""
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "ï åðéóôñåöüìåíïò ôýðïò ðñïêáèïñßæåôáé óå `int'"
-#: toplev.c:1326
-msgid "Warn about testing equality of floating point numbers"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: toplev.c:1329
-msgid "Warn about unrecognized pragmas"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
msgstr ""
-#: toplev.c:1332
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr ""
-#: toplev.c:1335
-msgid "Warn about constructs whose meaning change in ISO C"
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
msgstr ""
-#: toplev.c:1338
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr ""
-#: toplev.c:1343
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr ""
+
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr ""
-#: toplev.c:1473
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr ""
-#: toplev.c:1475
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr ""
-#: toplev.c:1477
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr ""
-#: toplev.c:1479
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr ""
-#: toplev.c:1481
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr ""
-#: toplev.c:1483
+#: toplev.c:1518
#, fuzzy
msgid "Do not suppress warnings from system headers"
msgstr "Áðïóéþðçóç ðñïçäïðïéÞóåùí êáé ìçíõìÜôùí ðëçñïöüñçóçò"
-#: toplev.c:1485
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr ""
-#: toplev.c:1487
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
msgstr ""
-#: toplev.c:1489
-msgid "Warn about enumerated switches missing a specific case"
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr ""
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr ""
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: toplev.c:1491
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: toplev.c:1493
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: toplev.c:1495
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr ""
-#: toplev.c:1497
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: toplev.c:1499
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr ""
-#: toplev.c:1501
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: toplev.c:1503
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr ""
-#: toplev.c:1505
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: toplev.c:1507
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: toplev.c:1509
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr ""
-#: toplev.c:1580 toplev.c:4363 tradcpp.c:781
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr ""
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, c-format
msgid "invalid option `%s'"
msgstr "ìç Ýãêõñç åðéëïãÞ `%s'"
-#: toplev.c:1726
-#, fuzzy, c-format
-msgid "internal error: %s"
-msgstr "óöÜëìá óôçí áíÜãíùóç åéóüäïõ: %s"
-
-#: toplev.c:2026
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr ""
-#: toplev.c:2029
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr ""
-#: toplev.c:2051
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr ""
-#: toplev.c:2282
+#: toplev.c:2280
#, c-format
msgid "invalid register name `%s' for register variable"
msgstr ""
-#: toplev.c:3574
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr ""
-#: toplev.c:3575
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr ""
-#: toplev.c:3576
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr ""
-#: toplev.c:3577
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr ""
-#: toplev.c:3578
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr ""
-#: toplev.c:3579
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr ""
-#: toplev.c:3590
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
msgid " -O[number] Set optimization level to [number]\n"
msgstr ""
-#: toplev.c:3591
+#: toplev.c:3719
msgid " -Os Optimize for space rather than speed\n"
msgstr ""
-#: toplev.c:3603
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
msgstr ""
-#: toplev.c:3604
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr ""
-#: toplev.c:3605
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr ""
-#: toplev.c:3606
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr ""
-#: toplev.c:3617
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr ""
-#: toplev.c:3618
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr ""
-#: toplev.c:3619
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr ""
-#: toplev.c:3621
-msgid " -a Enable block profiling \n"
-msgstr ""
-
-#: toplev.c:3624
-msgid " -ax Enable jump profiling \n"
-msgstr ""
-
-#: toplev.c:3626
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr ""
-#: toplev.c:3627
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
msgstr ""
-#: toplev.c:3638
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr ""
-#: toplev.c:3639
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr ""
-#: toplev.c:3640
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr ""
-#: toplev.c:3641
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr ""
-#: toplev.c:3642
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr ""
-#: toplev.c:3644
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr ""
-#: toplev.c:3646
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr ""
-#: toplev.c:3661
-msgid "\nLanguage specific options:\n"
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
msgstr ""
-#: toplev.c:3673
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3681 toplev.c:3695
+#: toplev.c:3803 toplev.c:3817
#, c-format
-msgid "\nThere are undocumented %s specific options as well.\n"
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
msgstr ""
-#: toplev.c:3685
+#: toplev.c:3807
#, c-format
-msgid "\n Options for %s:\n"
+msgid ""
+"\n"
+" Options for %s:\n"
msgstr ""
-#: toplev.c:3722
+#: toplev.c:3844
#, fuzzy
-msgid "\nTarget specific options:\n"
+msgid ""
+"\n"
+"Target specific options:\n"
msgstr "äÞëùóç ðëÜôïõò"
-#: toplev.c:3736 toplev.c:3755
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3764
-msgid "\nThere are undocumented target specific options as well.\n"
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:3766
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:3819
+#: toplev.c:3941
#, fuzzy, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "%s: Üãíùóôï/ìç õðïóôçñéæüìåíï åßäïò áñ÷åßïõ.\n"
+
# src/request.c:806 src/request.c:912
-#: toplev.c:3889
+#: toplev.c:4034
#, fuzzy, c-format
msgid "unrecognized register name `%s'"
msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
-#: toplev.c:3914 toplev.c:4792
+#: toplev.c:4059 toplev.c:5012
#, fuzzy, c-format
msgid "unrecognized option `%s'"
msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
-#: toplev.c:3958
+#: toplev.c:4107
msgid "-Wid-clash-LEN is no longer supported"
msgstr ""
-#: toplev.c:4035
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr ""
-#: toplev.c:4038
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr ""
-#: toplev.c:4043
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr ""
-#: toplev.c:4066 toplev.c:4790
+#: toplev.c:4215 toplev.c:5010
#, fuzzy, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr "%s: Üãíùóôï/ìç õðïóôçñéæüìåíï åßäïò áñ÷åßïõ.\n"
-#: toplev.c:4073
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr ""
-#: toplev.c:4152
+#: toplev.c:4304
#, fuzzy
msgid "-param option missing argument"
msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
-#: toplev.c:4161
+#: toplev.c:4313
#, fuzzy, c-format
msgid "invalid --param option: %s"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: toplev.c:4173
+#: toplev.c:4325
#, fuzzy, c-format
msgid "invalid parameter value `%s'"
msgstr "Ìç Ýãêõñï äéÜóôçìá ÷ñüíïõ `%s'"
-#: toplev.c:4380
+#: toplev.c:4565
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7600,1179 +8116,929 @@ msgid ""
"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
# src/getopt1.c:132
# src/getopt1.c:132
-#: toplev.c:4436
+#: toplev.c:4630
#, fuzzy
msgid "options passed: "
msgstr "åðéëïãÞ %s"
# src/getopt1.c:155
# src/getopt1.c:155
-#: toplev.c:4465
+#: toplev.c:4659
#, fuzzy
msgid "options enabled: "
msgstr "åðéëïãÞ á\n"
-#: toplev.c:4524
+#: toplev.c:4718 java/jcf-write.c:3453
#, fuzzy, c-format
msgid "can't open %s for writing"
msgstr "%s: ÓöÜëìá åããñáöÞò "
-#: toplev.c:4782
+#: toplev.c:5002
#, fuzzy, c-format
msgid "ignoring command line option '%s'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: toplev.c:4785
+#: toplev.c:5005
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr ""
-#: toplev.c:4814
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: toplev.c:4870
+#: toplev.c:5094
#, fuzzy
msgid "instruction scheduling not supported on this target machine"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: toplev.c:4874
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:4883
-msgid "profiling does not work without a frame pointer"
-msgstr ""
-
-#: toplev.c:4898
+#: toplev.c:5112
#, fuzzy, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: toplev.c:4961
+#: toplev.c:5175
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: toplev.c:4966
+#: toplev.c:5180
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: toplev.c:4973
+#: toplev.c:5187
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:4980
+#: toplev.c:5194
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: toplev.c:4986
+#: toplev.c:5200
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:4993
+#: toplev.c:5209
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "ôï --no-dereference (-h) äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
+
+#: toplev.c:5215
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:5114
+#: toplev.c:5327
#, fuzzy, c-format
msgid "error writing to %s"
msgstr "óöÜëìá åããñáöÞò %s"
-#: java/jcf-parse.c:1000 toplev.c:5116
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, fuzzy, c-format
msgid "error closing %s"
msgstr "óöÜëìá áíÜãíùóçò %s"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr ""
-
-#: tradcif.y:277
-#, fuzzy
-msgid "invalid number in #if expression"
-msgstr "ìç Ýãêõñïò áñéèìüò áðü ãñáììÝò"
-
-#: tradcif.y:358
-#, fuzzy
-msgid "invalid character constant in #if"
-msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-
-#: tradcif.y:395
-msgid "double quoted strings not allowed in #if expressions"
-msgstr ""
-
-#: tradcif.y:408
-#, fuzzy
-msgid "invalid token in expression"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: tradcif.y:499
-#, fuzzy
-msgid "octal character constant does not fit in a byte"
-msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-
-#: tradcif.y:520
-#, fuzzy
-msgid "hex character constant does not fit in a byte"
-msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-
-#: tradcif.y:551
-msgid "empty #if expression"
-msgstr ""
-
-#: tradcif.y:565
-#, fuzzy
-msgid "Junk after end of expression."
-msgstr "Ðñüùñï ôÝëïò ôçò êáíïíéêÞò Ýêöñáóçò"
-
-#: tradcpp.c:138
-msgid "macro or #include recursion too deep"
-msgstr ""
-
-#: tradcpp.c:555
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr ""
-
-#: tradcpp.c:571
-#, fuzzy
-msgid "-traditional is not supported in C++"
-msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
-
-#: tradcpp.c:573
-#, fuzzy
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "ïé åðéëïãÝò --string êáé --check åßíáé áìïéâáßùò áðïêëåéüìåíåò"
-
-#: tradcpp.c:587
-msgid "filename missing after -i option"
-msgstr ""
-
-#: tradcpp.c:605
-msgid "filename missing after -o option"
-msgstr ""
-
-#: tradcpp.c:664
-#, c-format
-msgid "target missing after %s option"
-msgstr ""
-
-#: tradcpp.c:678
-#, c-format
-msgid "filename missing after %s option"
-msgstr ""
-
-#: tradcpp.c:703
-#, c-format
-msgid "macro name missing after -%c option"
-msgstr ""
-
-#: tradcpp.c:723
-#, fuzzy
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá"
-
-#: tradcpp.c:728
-#, fuzzy
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "ïé åðéëïãÝò --string êáé --check åßíáé áìïéâáßùò áðïêëåéüìåíåò"
-
-#: tradcpp.c:754
-msgid "directory name missing after -I option"
-msgstr ""
-
-#: tradcpp.c:1434 tradcpp.c:3926
-msgid "`/*' within comment"
-msgstr ""
-
-#: tradcpp.c:1810
-#, fuzzy, c-format
-msgid "unterminated #%s conditional"
-msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-
-#: tradcpp.c:2169
-#, fuzzy
-msgid "not in any file?!"
-msgstr "Äåí åßíáé åðþíõìï áñ÷åßï"
-
-#: tradcpp.c:2275
-msgid "`defined' must be followed by ident or (ident)"
-msgstr ""
-
-#: tradcpp.c:2279
-msgid "cccp error: invalid special hash type"
-msgstr ""
-
-#: tradcpp.c:2377 tradcpp.c:2447
-msgid "#include expects \"fname\" or <fname>"
-msgstr ""
-
-#: tradcpp.c:2532
-#, c-format
-msgid "no include path in which to find %.*s"
-msgstr ""
-
-#: tradcpp.c:2710
-#, fuzzy
-msgid "invalid macro name"
-msgstr "ìç Ýãêõñï üíïìá ìÞíá"
-
-#: tradcpp.c:2718
-#, fuzzy, c-format
-msgid "invalid macro name `%s'"
-msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-
-#: tradcpp.c:2723
-msgid "\"defined\" cannot be used as a macro name"
-msgstr ""
-
-#: tradcpp.c:2750
-msgid "parameter name starts with a digit in #define"
-msgstr ""
-
-#: tradcpp.c:2760
-msgid "badly punctuated parameter list in #define"
-msgstr ""
-
-#: tradcpp.c:2768
-#, fuzzy
-msgid "unterminated parameter list in #define"
-msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
-
-#: tradcpp.c:2816
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr ""
-
-#: tradcpp.c:3073
-msgid "# operator should be followed by a macro argument name"
-msgstr ""
-
-#: tradcpp.c:3120 tradcpp.c:3146 tradcpp.c:3160 tradcpp.c:3167 tradcpp.c:3192
-#, fuzzy
-msgid "invalid format #line command"
-msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'"
-
-#: tradcpp.c:3218
-#, fuzzy
-msgid "undefining `defined'"
-msgstr "áüñéóôï"
-
-#: tradcpp.c:3222
-#, fuzzy, c-format
-msgid "undefining `%s'"
-msgstr "¶íïéãìá ôïõ `%s'"
-
-#: tradcpp.c:3278
-msgid "extra text at end of directive"
-msgstr ""
-
-#: tradcpp.c:3385
-#, c-format
-msgid "#error%.*s"
-msgstr ""
-
-#: tradcpp.c:3395
-#, fuzzy, c-format
-msgid "#warning%.*s"
-msgstr "ðñïåéäïðïßçóç: "
-
-#: tradcpp.c:3551
-msgid "#elif not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3808
-#, c-format
-msgid "#%s not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3816
-msgid "#else or #elif after #else"
-msgstr ""
-
-#: tradcpp.c:3856
-msgid "#else not within a conditional"
-msgstr ""
-
-# src/dfa.c:652 src/dfa.c:655 src/dfa.c:682 src/dfa.c:686 src/dfa.c:687
-# src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
-# src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
-# src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
-#: tradcpp.c:3887
-#, fuzzy
-msgid "unbalanced #endif"
-msgstr "Ìç éóóïñïðçìÝíï ["
-
-#: tradcpp.c:3981
-#, fuzzy
-msgid "unterminated string or character constant"
-msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-
-#: tradcpp.c:4139
-#, fuzzy, c-format
-msgid "arguments given to macro `%s'"
-msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-
-#: tradcpp.c:4145
-#, fuzzy, c-format
-msgid "no args to macro `%s'"
-msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'"
-
-#: tradcpp.c:4147
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4149
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4151
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4748
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-
-#: tree-dump.c:841
+#: tree-dump.c:702
#, fuzzy, c-format
msgid "could not open dump file `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
-#: tree-dump.c:917
+#: tree-dump.c:778
#, fuzzy, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr "¶ãíùóôç åðéëïãÞ: %s %s %s"
-#: tree.c:3841
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:3898
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:4645
+#: tree.c:4557
#, fuzzy
msgid "invalid initializer for bit string"
msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'"
-#: tree.c:4704
+#: tree.c:4616
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:4721
+#: tree.c:4633
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr ""
-#: config/i386/winnt.c:522 varasm.c:451
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr ""
-#: varasm.c:877
+#: varasm.c:841
#, fuzzy, c-format
msgid "register name not specified for `%s'"
msgstr "ÅããñáöÞ ïíïìÜôùí ôùí åðéëåãìÝíùí ëÝîåùí-êëåéäéþí"
-#: varasm.c:879
+#: varasm.c:843
#, fuzzy, c-format
msgid "invalid register name for `%s'"
msgstr "ìç Ýãêõñïò áñéèìüò ðåäßïõ: `%s'"
-#: varasm.c:882
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr ""
-#: varasm.c:885
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr ""
-#: varasm.c:894
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr ""
-#: varasm.c:897
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr ""
-#: varasm.c:930
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr ""
-# src/shred.c:1134
-#: varasm.c:1537
-#, fuzzy, c-format
-msgid "size of variable `%s' is too large"
-msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
-
-#: varasm.c:1577
+#: varasm.c:1542
#, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr ""
-#: varasm.c:1628
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
#, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr ""
-#: varasm.c:4449
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:4454
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:4503
+#: varasm.c:4120
#, fuzzy
msgid "unknown set constructor type"
msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ."
-#: varasm.c:4717
+#: varasm.c:4334
#, fuzzy, c-format
msgid "invalid initial value for member `%s'"
msgstr "ìç Ýãêõñïò áñéèìüò ðåäßïõ: `%s'"
-#: varasm.c:4909
+#: varasm.c:4525 varasm.c:4568
#, c-format
-msgid "weak declaration of `%s' must be public"
+msgid "weak declaration of `%s' must precede definition"
msgstr ""
-#: varasm.c:4911
+#: varasm.c:4532
+#, fuzzy, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
+
+#: varasm.c:4566
#, c-format
-msgid "weak declaration of `%s' must precede definition"
+msgid "weak declaration of `%s' must be public"
msgstr ""
-#: varasm.c:4915
+#: varasm.c:4575
#, fuzzy, c-format
msgid "weak declaration of `%s' not supported"
msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
-#: varasm.c:5011
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:5016
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr ""
-#: varray.c:88
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ"
+
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr ""
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr ""
-#: params.def:46
-msgid "The maximum number of instructions in a function that is eligible for inlining"
-msgstr ""
-
-#: params.def:57
-msgid "The maximum number of instructions to consider to fill a delay slot"
-msgstr ""
-
-#: params.def:68
-msgid "The maximum number of instructions to consider to find accurate live register information"
-msgstr ""
-
-#: params.def:78
-msgid "The maximum length of scheduling's pending operations list"
-msgstr ""
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "Äåí õðïóôçñßæåôáé"
-#: params.def:85
-msgid "The maximum amount of memory to be allocated by GCSE"
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
msgstr ""
-#: params.def:90
-msgid "The maximum number of passes to make when doing GCSE"
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
msgstr ""
-#: config/darwin-c.c:76
-#, fuzzy
-msgid "too many #pragma options align=reset"
-msgstr "ÕðåñâïëéêÝò ðáñÜìåôñïé ðïõ äåí åßíáé åðéëïãÝò."
-
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103
-#: config/darwin-c.c:105
-#, fuzzy
-msgid "malformed '#pragma options', ignoring"
-msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-
-#: config/darwin-c.c:108
-msgid "junk at end of '#pragma options'"
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
msgstr ""
-#: config/darwin-c.c:118
-msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
msgstr ""
-#: config/darwin-c.c:131
-msgid "missing '(' after '#pragma unused', ignoring"
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
msgstr ""
-#: config/darwin-c.c:149
-msgid "missing ')' after '#pragma unused', ignoring"
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
msgstr ""
-#: config/darwin-c.c:152
-msgid "junk at end of '#pragma unused'"
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: config/nextstep.c:68
-msgid "optimization turned on"
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: config/nextstep.c:74
-msgid "optimization turned off"
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: config/nextstep.c:83
-msgid "optimization level restored"
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
-msgid "-msystem-v and -p are incompatible"
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
-msgid "-msystem-v and -mthreads are incompatible"
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.c:1028
-#, fuzzy, c-format
-msgid "invalid %%Q value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5355
-#, fuzzy, c-format
-msgid "invalid %%C value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5200
-#: config/rs6000/rs6000.c:6110
-#, fuzzy, c-format
-msgid "invalid %%N value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5271
-#: config/rs6000/rs6000.c:6072
-#, fuzzy, c-format
-msgid "invalid %%M value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5263
-#: config/rs6000/rs6000.c:6037
-#, fuzzy, c-format
-msgid "invalid %%m value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5224 config/romp/romp.c:690
-#, fuzzy, c-format
-msgid "invalid %%L value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:6118
-#, fuzzy, c-format
-msgid "invalid %%O value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:5208
-#: config/rs6000/rs6000.c:6138
-#, fuzzy, c-format
-msgid "invalid %%P value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.c:1175
-#, fuzzy, c-format
-msgid "invalid %%V value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
msgstr ""
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
msgstr ""
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
msgstr ""
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
msgstr ""
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
-msgstr ""
+#: config/darwin-c.c:75
+#, fuzzy
+msgid "too many #pragma options align=reset"
+msgstr "ÕðåñâïëéêÝò ðáñÜìåôñïé ðïõ äåí åßíáé åðéëïãÝò."
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr ""
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+#, fuzzy
+msgid "malformed '#pragma options', ignoring"
+msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
msgstr ""
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr ""
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
msgstr ""
-#: config/a29k/a29k.h:118 config/i960/i960.h:289 config/mips/mips.h:408
-msgid "Use software floating point"
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
msgstr ""
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
msgstr ""
-#: config/alpha/alpha.c:273
+#: config/alpha/alpha.c:342
#, fuzzy, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-#: config/alpha/alpha.c:297
+#: config/alpha/alpha.c:366
#, fuzzy
msgid "-mieee not supported on Unicos/Mk"
msgstr "Ôï servname äåí õðïóôçñßæåôáé áðü ôï ai_socktype"
-#: config/alpha/alpha.c:308
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:325
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr ""
-#: config/alpha/alpha.c:339
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr ""
-#: config/alpha/alpha.c:354
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:373 config/alpha/alpha.c:385
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr ""
-#: config/alpha/alpha.c:392
+#: config/alpha/alpha.c:473
#, fuzzy
msgid "trap mode not supported on Unicos/Mk"
msgstr "Ôï servname äåí õðïóôçñßæåôáé áðü ôï ai_socktype"
-#: config/alpha/alpha.c:399
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr ""
-#: config/alpha/alpha.c:415
+#: config/alpha/alpha.c:496
#, fuzzy
msgid "rounding mode not supported for VAX floats"
msgstr "Ôï servname äåí õðïóôçñßæåôáé áðü ôï ai_socktype"
-#: config/alpha/alpha.c:420
+#: config/alpha/alpha.c:501
#, fuzzy
msgid "trap mode not supported for VAX floats"
msgstr "Ôï servname äåí õðïóôçñßæåôáé áðü ôï ai_socktype"
-#: config/alpha/alpha.c:449
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr ""
-#: config/alpha/alpha.c:464
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr ""
-#: config/alpha/alpha.c:5164 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, fuzzy, c-format
msgid "invalid %%H value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5174
+#: config/alpha/alpha.c:5625
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5184 config/ia64/ia64.c:3525
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, fuzzy, c-format
msgid "invalid %%r value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5194 config/rs6000/rs6000.c:6184
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, fuzzy, c-format
msgid "invalid %%R value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5216 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, fuzzy, c-format
+msgid "invalid %%N value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, fuzzy, c-format
+msgid "invalid %%P value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, fuzzy, c-format
msgid "invalid %%h value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5306
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, fuzzy, c-format
+msgid "invalid %%L value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, fuzzy, c-format
+msgid "invalid %%m value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, fuzzy, c-format
+msgid "invalid %%M value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5772
#, fuzzy, c-format
msgid "invalid %%U value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5318 config/alpha/alpha.c:5332 config/romp/romp.c:698
-#: config/rs6000/rs6000.c:6192
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, fuzzy, c-format
msgid "invalid %%s value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5392 config/rs6000/rs6000.c:5899
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, fuzzy, c-format
+msgid "invalid %%C value"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, fuzzy, c-format
msgid "invalid %%E value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/alpha/alpha.c:5413 config/romp/romp.c:973
-#: config/rs6000/rs6000.c:6500
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ."
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, fuzzy, c-format
msgid "invalid %%xn code"
msgstr "ìç Ýãêõñï äéêáßùìá"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:220 config/i386/i386.h:285 config/i386/i386.h:287
-#: config/i386/i386.h:289 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329
-#: config/s390/s390.h:51 config/sparc/sparc.h:552 config/sparc/sparc.h:557
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:221 config/i386/i386.h:286 config/i386/i386.h:288
-#: config/rs6000/rs6000.h:331 config/sparc/sparc.h:554
-#: config/sparc/sparc.h:559
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr ""
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr ""
-#: config/alpha/alpha.h:225
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr ""
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr ""
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr ""
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:232
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr ""
-#: config/alpha/alpha.h:235
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:236
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr ""
-#: config/alpha/alpha.h:240
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr ""
-#: config/alpha/alpha.h:243
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr ""
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr ""
-#: config/alpha/alpha.h:248
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr ""
-#: config/alpha/alpha.h:251
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr ""
-#: config/alpha/alpha.h:253
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr ""
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:281
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr ""
-#: config/alpha/alpha.h:287
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr ""
-#: config/alpha/alpha.h:289
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr ""
-#: config/alpha/alpha.h:291
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr ""
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr ""
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, fuzzy, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2278
-#, fuzzy
-msgid "invalid operand to %R code"
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2301
-msgid "invalid operand to %H/%L code"
-msgstr ""
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2378
-#, fuzzy
-msgid "invalid operand to %U code"
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/arc/arc.c:1776
-#, fuzzy
-msgid "invalid operand to %V code"
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2417 config/sparc/sparc.c:6010
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
#, fuzzy
msgid "invalid operand output code"
msgstr "Ìç Ýãêõñïò êþäéêáò áßôçóçò"
-#: config/arm/arm.c:439
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr ""
-#: config/arm/arm.c:449 config/rs6000/rs6000.c:441 config/sparc/sparc.c:383
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr ""
-#: config/arm/arm.c:585
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr ""
-#: config/arm/arm.c:590
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr ""
-#: config/arm/arm.c:596
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:602
+#: config/arm/arm.c:621
msgid "target CPU does not support THUMB instructions"
msgstr ""
-#: config/arm/arm.c:616
+#: config/arm/arm.c:635
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:619
+#: config/arm/arm.c:638
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:622
+#: config/arm/arm.c:641
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:628
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr ""
-#: config/arm/arm.c:634
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:642
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:645
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:653
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:661
+#: config/arm/arm.c:680
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:690
+#: config/arm/arm.c:709
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-#: config/arm/arm.c:714
+#: config/arm/arm.c:733
msgid "structure size boundary can only be set to 8 or 32"
msgstr ""
-#: config/arm/arm.c:722
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:731
+#: config/arm/arm.c:748
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:1975 config/arm/arm.c:1998 config/avr/avr.c:4703
-#: config/c4x/c4x.c:4650 config/h8300/h8300.c:3019 config/i386/i386.c:1254
-#: config/i386/i386.c:1283 config/m68hc11/m68hc11.c:1160
-#: config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1044
-#: config/rs6000/rs6000.c:10412 config/sh/sh.c:4703 config/sh/sh.c:4723
-#: config/sh/sh.c:4762 config/stormy16/stormy16.c:1999 config/v850/v850.c:2044
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, c-format
msgid "`%s' attribute only applies to functions"
msgstr ""
-#: config/arm/arm.c:9265
+#: config/arm/arm.c:9459
msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:9945
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:10137
+#: config/arm/arm.c:10389
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
#, c-format
msgid "initialized variable `%s' is marked dllimport"
msgstr ""
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr ""
-#: config/arm/arm.h:424
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr ""
-#: config/arm/arm.h:427
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr ""
-#: config/arm/arm.h:431
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:433
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:437
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr ""
-#: config/arm/arm.h:440
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr ""
-#: config/arm/arm.h:443
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr ""
-#: config/arm/arm.h:450
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr ""
-#: config/arm/arm.h:452 config/i960/i960.h:287
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr ""
-#: config/arm/arm.h:454
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr ""
-#: config/arm/arm.h:456
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr ""
-#: config/arm/arm.h:458
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr ""
-#: config/arm/arm.h:460
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr ""
-#: config/arm/arm.h:463
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr ""
-#: config/arm/arm.h:466
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr ""
-#: config/arm/arm.h:469
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr ""
-#: config/arm/arm.h:472
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr ""
-#: config/arm/arm.h:475
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr ""
-#: config/arm/arm.h:479
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:482
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:485
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr ""
-#: config/arm/arm.h:489
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
msgstr ""
-#: config/arm/arm.h:499
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr ""
-#: config/arm/arm.h:501
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr ""
-#: config/arm/arm.h:505
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr ""
-#: config/arm/arm.h:507
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr ""
-#: config/arm/arm.h:509
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr ""
@@ -8780,103 +9046,95 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr ""
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr ""
-
-#: config/arm/riscix.h:86
-#, fuzzy
-msgid "Don't do symbol renaming"
-msgstr "äåí äþèçêå óõìâïëéêü üíïìá"
-
-#: config/avr/avr.c:221
-#, fuzzy, c-format
-msgid "MCU `%s' not supported"
-msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
#, fuzzy
msgid "invalid insn:"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957
-#: config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236
-#: config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
#, fuzzy
msgid "incorrect insn:"
msgstr "ëÜèïò óõíèçìáôéêü"
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307
-#: config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
#, fuzzy
msgid "unknown move insn:"
msgstr "Üãíùóôï óåô `%s'"
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
msgid "only initialized variables can be placed into program memory area"
msgstr ""
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr ""
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr ""
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr ""
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr ""
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr ""
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr ""
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr ""
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr ""
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
#, fuzzy
msgid "Specify the MCU name"
msgstr "Ïñéóìüò ïíüìáôïò ðñïãñÜììáôïò"
@@ -8889,135 +9147,135 @@ msgstr "Ïñéóìüò ïíüìáôïò ðñïãñÜììáôïò"
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2566
+#: config/avr/avr.h:2450
#, fuzzy
msgid "trampolines not supported"
msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, fuzzy, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr ""
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr ""
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr ""
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr ""
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr ""
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr ""
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr ""
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr ""
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr ""
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
#, fuzzy
msgid "mode not QImode"
msgstr "íåá_êáôÜóôáóç: êáôÜóôáóç ëåéôïõñãßáò\n"
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
#, fuzzy
msgid "invalid indirect memory address"
msgstr "ìç Ýãêõñïò ÷ñüíïò ëÞîçò"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr ""
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr ""
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr ""
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr ""
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr ""
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr ""
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr ""
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr ""
@@ -9025,7 +9283,6 @@ msgstr ""
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9061,525 +9318,552 @@ msgstr ""
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr ""
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr ""
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr ""
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr ""
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr ""
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr ""
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr ""
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr ""
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr ""
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr ""
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr ""
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr ""
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr ""
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr ""
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr ""
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
#, fuzzy
msgid "Do not allocate BK register"
msgstr "Äåí åßíáé äõíáôü íá äåóìåõôåß ìíÞìç"
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr ""
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr ""
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr ""
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr ""
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
#, fuzzy
msgid "Enable parallel instructions"
msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
#, fuzzy
msgid "Disable parallel instructions"
msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
msgstr ""
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
msgstr ""
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr ""
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr ""
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr ""
+#: config/cris/cris.c:1312
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr ""
+#: config/cris/cris.c:1324
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr ""
+#: config/cris/cris.c:1334
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr ""
+#: config/cris/cris.c:1341
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr ""
+#: config/cris/cris.c:1380
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr ""
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr ""
+#: config/cris/cris.c:1417
+#, fuzzy
+msgid "bad register"
+msgstr "Äåí åßíáé äõíáôÞ ç êáôá÷þñçóç ôçò õðçñåóßáò"
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr ""
+#: config/cris/cris.c:1455
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr ""
+#: config/cris/cris.c:1472
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/cris/cris.c:878
-#, c-format
-msgid "stackframe too big: %d bytes"
-msgstr ""
+#: config/cris/cris.c:1497
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/cris/cris.c:1193
-msgid "allocated but unused delay list in epilogue"
-msgstr ""
+#: config/cris/cris.c:1505
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/cris/cris.c:1203
-msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
-msgstr ""
+#: config/cris/cris.c:1519
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/cris/cris.c:1497
+#: config/cris/cris.c:1528
+#, fuzzy
+msgid "invalid operand modifier letter"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/cris/cris.c:1536
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-#: config/cris/cris.c:1966
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+#, fuzzy
+msgid "unexpected operand"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+# src/request.c:806 src/request.c:912
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+#, fuzzy
+msgid "unrecognized address"
+msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
+
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2253
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2335 config/cris/cris.c:2393
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "Üãíùóôï ðñüèåìá: %s"
-#: config/cris/cris.c:2434
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2453
+#: config/cris/cris.c:2492
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2481
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2517
+#: config/cris/cris.c:2556
#, fuzzy, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "ðÜñá ðïëëÝò äçëþóåéò ìåôáôñïðÞò óôçí êáôÜëçîç"
-#: config/cris/cris.c:2535
-msgid "-fPIC not supported in this configuration"
-msgstr ""
+#: config/cris/cris.c:2574
+#, fuzzy
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ"
-#: config/cris/cris.c:2551
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2742 config/cris/cris.c:2787
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr ""
-#: config/cris/cris.c:2888
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2901
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
#, fuzzy
msgid "unexpected address expression"
msgstr "Ìç Ýãêõñç ðñïðïñåõüìåíç êáíïíéêÞ Ýêöñáóç"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2915
-msgid "unexpected PIC symbol"
-msgstr ""
-
-#: config/cris/cris.c:2919
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2928
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr ""
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:333
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:338
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:342
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:345
+#: config/cris/cris.h:352
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:349
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:352
+#: config/cris/cris.h:359
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:355
+#: config/cris/cris.h:362
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:358
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:367
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:383
+#: config/cris/cris.h:390
msgid "Do not emit function prologue or epilogue"
msgstr ""
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:387
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr ""
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:393
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:425
+#: config/cris/cris.h:432
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:427
+#: config/cris/cris.h:434
msgid "Tune alignment for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:429
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1025
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr ""
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr ""
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775
-#: config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr ""
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr ""
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr ""
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr ""
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr ""
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
#, fuzzy
msgid "Debug argument support in compiler"
msgstr "%s: ç õðïóôÞñéîç åêóöáëìÜôùóçò äåí Ý÷åé óõìðåñéëçöèåß óôç ìåôáãëþôôéóç.\n"
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
#, fuzzy
msgid "Debug stack support in compiler"
msgstr "%s: ç õðïóôÞñéîç åêóöáëìÜôùóçò äåí Ý÷åé óõìðåñéëçöèåß óôç ìåôáãëþôôéóç.\n"
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr ""
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr ""
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr ""
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr ""
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr ""
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr ""
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr ""
@@ -9592,36 +9876,31 @@ msgstr ""
msgid "invalid addressing mode"
msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
#, fuzzy
msgid "bad register extension code"
msgstr "Äåí åßíáé äõíáôÞ ç êáôá÷þñçóç ôçò õðçñåóßáò"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
#, fuzzy
msgid "invalid offset in ybase addressing"
msgstr "ìç Ýãêõñïò ÷ñüíïò Ýíáñîçò"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
#, fuzzy
msgid "invalid register in ybase addressing"
msgstr "ìç Ýãêõñïò ÷ñüíïò Ýíáñîçò"
-#: config/dsp16xx/dsp16xx.c:1990
-#, fuzzy
-msgid "inline float constants not supported on this host"
-msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
msgid "invalid shift operator in emit_1600_core_shift"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:2469
+#: config/dsp16xx/dsp16xx.c:2428
#, fuzzy
msgid "invalid mode for gen_tst_reg"
msgstr "ìç Ýãêõñç êáôÜóôáóç ãéá ôçí dlopen()"
-#: config/dsp16xx/dsp16xx.c:2541
+#: config/dsp16xx/dsp16xx.c:2500
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr ""
@@ -9630,97 +9909,96 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
#, fuzzy
msgid "Generate code for near calls"
msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
#, fuzzy
msgid "Generate code for near jumps"
msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1219 config/dsp16xx/dsp16xx.h:1224
-#: config/dsp16xx/dsp16xx.h:1229 config/dsp16xx/dsp16xx.h:1809
-#: config/dsp16xx/dsp16xx.h:1814
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
#, fuzzy
msgid "profiling not implemented yet"
msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
@@ -9728,143 +10006,300 @@ msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1240 config/dsp16xx/dsp16xx.h:1252
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
#, fuzzy
msgid "trampolines not yet implemented"
msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
+#: config/fr30/fr30.c:480
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:456
-msgid "fr30_print_operand_address: unhandled address"
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:521
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr ""
+
+#: config/fr30/fr30.c:529
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/fr30/fr30.c:546
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "ìç Ýãêõñï äéêáßùìá"
+
+#: config/fr30/fr30.c:553
#, c-format
-msgid "fr30_print_operand: unrecognized %p code"
+msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:503
-msgid "fr30_print_operand: unrecognized %b code"
+#: config/fr30/fr30.c:570
+msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:524
-msgid "fr30_print_operand: unrecognized %B code"
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
msgstr ""
-#: config/fr30/fr30.c:532
-msgid "fr30_print_operand: invalid operand to %A code"
+#: config/fr30/fr30.h:63
+msgid "Assume small address space"
msgstr ""
-#: config/fr30/fr30.c:549
+#: config/frv/frv.c:410 config/frv/frv.c:428
#, c-format
-msgid "fr30_print_operand: invalid %x code"
+msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/fr30/fr30.c:556
-msgid "fr30_print_operand: invalid %F code"
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
msgstr ""
-#: config/fr30/fr30.c:572
-msgid "fr30_print_operand: unknown code"
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621
-#: config/fr30/fr30.c:634
-msgid "fr30_print_operand: unhandled MEM"
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
msgstr ""
-#: config/fr30/fr30.h:57
-msgid "Assume small address space"
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2847
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2872
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2880
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2896
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2949
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "ìç Ýãêõñï äéêáßùìá"
+
+#: config/frv/frv.c:5737
+#, fuzzy
+msgid "Bad output_move_single operand"
+msgstr "áñ÷åßï åîüäïõ"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+#, fuzzy
+msgid "Bad output_condmove_single operand"
+msgstr "áñ÷åßï åîüäïõ"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
msgstr ""
-#: config/h8300/h8300.c:141
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr ""
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç ñïõôßíá `%s'"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
msgid "-ms2600 is used without -ms"
msgstr ""
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr ""
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
#, fuzzy
msgid "Use registers for argument passing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr ""
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr ""
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr ""
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+#, fuzzy
+msgid "Enable the normal mode"
+msgstr "ìçäåíéóìÝíç åããñáöÞ êáé ãñÜøéìï ðÜíù óå áõôÞ (truncated)"
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr ""
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
#, fuzzy
msgid "malformed #pragma map, ignored"
msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr ""
@@ -9872,376 +10307,420 @@ msgstr ""
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
#, fuzzy
msgid "Generate char instructions"
msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr ""
-#: config/i386/i386.c:924
+#: config/i386/i386.c:1050
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:934 config/sparc/sparc.c:346
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:949
+#: config/i386/i386.c:1075
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr ""
-#: config/i386/i386.c:952
+#: config/i386/i386.c:1078
#, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr ""
-#: config/i386/i386.c:955
+#: config/i386/i386.c:1081
#, fuzzy
msgid "code model `large' not supported yet"
msgstr "åéäéêÜ áñ÷åßá ìðëïê äåí õðïóôçñßæïíôáé"
-#: config/i386/i386.c:957
+#: config/i386/i386.c:1083
#, fuzzy, c-format
msgid "%i-bit mode not compiled in"
msgstr "%s: ç õðïóôÞñéîç åêóöáëìÜôùóçò äåí Ý÷åé óõìðåñéëçöèåß óôç ìåôáãëþôôéóç.\n"
-#: config/i386/i386.c:987 config/mips/mips.c:4972
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:998 config/mips/mips.c:4928
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/i386/i386.c:1017
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1030
+#: config/i386/i386.c:1154
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1035 config/i386/i386.c:1048 config/i386/i386.c:1061
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1043
+#: config/i386/i386.c:1167
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1056
+#: config/i386/i386.c:1180
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1094
+#: config/i386/i386.c:1218
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1106
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1123
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1125
+#: config/i386/i386.c:1265
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1141 config/i386/i386.c:1152
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:1157
+#: config/i386/i386.c:1297
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:1164
+#: config/i386/i386.c:1304
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr ""
-#: config/i386/i386.c:1294
+#: config/i386/i386.c:1436
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:1300
+#: config/i386/i386.c:1442
#, fuzzy, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d"
-#: config/i386/i386.c:5328
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
#, fuzzy
msgid "invalid UNSPEC as operand"
msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC"
-#: config/i386/i386.c:5529
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:5544
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:5791
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
# src/grep.c:1133
-#: config/i386/i386.c:9774
+#: config/i386/i386.c:11271
#, fuzzy
msgid "unknown insn mode"
msgstr "Üãíùóôç ìÝèïäïò êáôáëüãùí"
#. @@@ better error message
-#: config/i386/i386.c:11617 config/i386/i386.c:11650
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
#, fuzzy
msgid "selector must be an immediate"
msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
#. @@@ better error message
-#: config/i386/i386.c:11808 config/i386/i386.c:11836
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
#, fuzzy
msgid "mask must be an immediate"
msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-#: config/i386/winnt.c:94
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
#, c-format
msgid "`%s' attribute only applies to variables"
msgstr ""
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
#, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr ""
-#: config/i386/cygwin.h:51
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr ""
-#: config/i386/cygwin.h:53
+#: config/i386/cygwin.h:46
msgid "Use the Mingw32 interface"
msgstr ""
-#: config/i386/cygwin.h:54
+#: config/i386/cygwin.h:47
msgid "Create GUI application"
msgstr ""
-#: config/i386/cygwin.h:55
+#: config/i386/cygwin.h:48
msgid "Don't set Windows defines"
msgstr ""
-#: config/i386/cygwin.h:56
+#: config/i386/cygwin.h:49
msgid "Set Windows defines"
msgstr ""
-#: config/i386/cygwin.h:58
+#: config/i386/cygwin.h:50
msgid "Create console application"
msgstr ""
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
msgid "Generate code for a DLL"
msgstr ""
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
msgid "Ignore dllimport for functions"
msgstr ""
-#: config/i386/cygwin.h:63
+#: config/i386/cygwin.h:55
msgid "Use Mingw-specific thread support"
msgstr ""
-#: config/i386/cygwin.h:257
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr ""
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr ""
-
-#: config/i386/dgux.h:62
-#, fuzzy
-msgid "Retain legend information"
-msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ"
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr ""
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr ""
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr ""
-
-# lib/argmatch.c:188
-#: config/i386/dgux.h:252
-#, fuzzy
-msgid "argument is a structure"
-msgstr "¸ãêõñá ïñßóìáôá åßíáé:"
-
-#: config/i386/djgpp.h:201
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr ""
-#: config/i386/i386.h:45 config/mips/mips.h:186
-msgid "half-pic init called on systems that don't support it"
-msgstr ""
-
#. Deprecated.
-#: config/i386/i386.h:297
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
#, fuzzy
msgid "Alternate calling convention"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-#: config/i386/i386.h:299 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:301
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:303
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:305
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:307
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:309 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:311
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:313
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:315
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:317
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:319
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:321
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:324
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:329
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:331
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:333
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:335
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:337 config/i386/i386.h:342
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:339 config/i386/i386.h:344
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:346
+#: config/i386/i386.h:354
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:348
+#: config/i386/i386.h:356
msgid "Do not support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:351
+#: config/i386/i386.h:358
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:360
msgid "Do not support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:356
+#: config/i386/i386.h:362
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:359
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:361
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:370
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:372
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:374
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:376
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:374
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:376
+#: config/i386/i386.h:380
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
@@ -10254,19 +10733,19 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:422 config/rs6000/rs6000.h:428 config/sparc/sparc.h:668
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:411
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr ""
@@ -10280,70 +10759,41 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:430 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:432 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:434 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:437
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:439
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:441
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr ""
-#: config/i386/i386.h:447
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr ""
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr ""
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr ""
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr ""
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr ""
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr ""
-
-#: config/i386/osfrose.h:77
-#, fuzzy
-msgid "Use mcount for profiling"
-msgstr "áäýíáôç ç öüñôùóç äåäïìÝíùí ðñïößë"
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
msgstr ""
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr ""
@@ -10375,34 +10825,32 @@ msgstr ""
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr ""
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr ""
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr ""
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
#, fuzzy
msgid "malformed #pragma align - ignored"
msgstr "êáêïäéáìïñöùìÝíç ãñáììÞ áãíïÞèçêå"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr ""
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8094
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr ""
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr ""
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr ""
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
#, fuzzy
msgid "stack limit expression is not supported"
msgstr "åéäéêÜ áñ÷åßá ìðëïê äåí õðïóôçñßæïíôáé"
@@ -10414,309 +10862,323 @@ msgstr "åéäéêÜ áñ÷åßá ìðëïê äåí õðïóôçñßæïíôáé"
#. An empty string NAME is used to identify the default VALUE.
#. ??? Not all ten of these architecture variations actually exist, but I
#. am not sure which are real and which aren't.
-#: config/i960/i960.h:246
+#: config/i960/i960.h:240
msgid "Generate SA code"
msgstr ""
-#: config/i960/i960.h:249
+#: config/i960/i960.h:243
msgid "Generate SB code"
msgstr ""
#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
-#: config/i960/i960.h:254
+#: config/i960/i960.h:248
msgid "Generate KA code"
msgstr ""
-#: config/i960/i960.h:257
+#: config/i960/i960.h:251
msgid "Generate KB code"
msgstr ""
#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
-#: config/i960/i960.h:262
+#: config/i960/i960.h:256
msgid "Generate JA code"
msgstr ""
-#: config/i960/i960.h:264
+#: config/i960/i960.h:258
msgid "Generate JD code"
msgstr ""
-#: config/i960/i960.h:267
+#: config/i960/i960.h:261
msgid "Generate JF code"
msgstr ""
-#: config/i960/i960.h:269
+#: config/i960/i960.h:263
msgid "generate RP code"
msgstr ""
-#: config/i960/i960.h:272
+#: config/i960/i960.h:266
msgid "Generate MC code"
msgstr ""
-#: config/i960/i960.h:275
+#: config/i960/i960.h:269
msgid "Generate CA code"
msgstr ""
#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
-#: config/i960/i960.h:285
+#: config/i960/i960.h:279
msgid "Generate CF code"
msgstr ""
-#: config/i960/i960.h:291
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr ""
+
+#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr ""
-#: config/i960/i960.h:293
+#: config/i960/i960.h:287
msgid "Do not use alternate leaf function entries"
msgstr ""
-#: config/i960/i960.h:295
+#: config/i960/i960.h:289
msgid "Perform tail call optimization"
msgstr ""
-#: config/i960/i960.h:297
+#: config/i960/i960.h:291
msgid "Do not perform tail call optimization"
msgstr ""
-#: config/i960/i960.h:299
+#: config/i960/i960.h:293
msgid "Use complex addressing modes"
msgstr ""
-#: config/i960/i960.h:301
+#: config/i960/i960.h:295
#, fuzzy
msgid "Do not use complex addressing modes"
msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
-#: config/i960/i960.h:303
+#: config/i960/i960.h:297
msgid "Align code to 8 byte boundary"
msgstr ""
-#: config/i960/i960.h:305
+#: config/i960/i960.h:299
msgid "Do not align code to 8 byte boundary"
msgstr ""
#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
-#: config/i960/i960.h:311 config/i960/i960.h:313
+#: config/i960/i960.h:305 config/i960/i960.h:307
msgid "Enable compatibility with iC960 v2.0"
msgstr ""
-#: config/i960/i960.h:315
+#: config/i960/i960.h:309
msgid "Enable compatibility with iC960 v3.0"
msgstr ""
-#: config/i960/i960.h:317 config/i960/i960.h:319
+#: config/i960/i960.h:311 config/i960/i960.h:313
msgid "Enable compatibility with ic960 assembler"
msgstr ""
-#: config/i960/i960.h:321
+#: config/i960/i960.h:315
msgid "Do not permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:323
+#: config/i960/i960.h:317
msgid "Permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:325
+#: config/i960/i960.h:319
msgid "Layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:327
+#: config/i960/i960.h:321
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:329 config/sparc/freebsd.h:80 config/sparc/linux.h:85
-#: config/sparc/linux64.h:138
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr ""
-#: config/i960/i960.h:331
+#: config/i960/i960.h:325
msgid "Enable linker relaxation"
msgstr ""
-#: config/i960/i960.h:333
+#: config/i960/i960.h:327
msgid "Do not enable linker relaxation"
msgstr ""
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:348 config/i960/i960.h:358
-msgid "conflicting architectures defined - using C series"
-msgstr ""
-
-#: config/i960/i960.h:353
-msgid "conflicting architectures defined - using K series"
-msgstr ""
-
-#: config/i960/i960.h:368
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr ""
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:379
-msgid "the -mlong-double-64 option does not work yet"
-msgstr ""
+# src/dfa.c:569 src/dfa.c:583 src/dfa.c:587
+# src/dfa.c:577 src/dfa.c:591 src/dfa.c:595
+#: config/ia64/ia64-c.c:51
+#, fuzzy
+msgid "malformed #pragma builtin"
+msgstr "êáêïó÷çìáôéóìÝíïò ìåôñçôÞò åðáíÜëçøçò"
-#: config/ia64/ia64.c:3570
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:3844
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:3871
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:3936
-msgid "cannot optimize division for both latency and throughput"
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
+
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:112
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:114 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:116
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:118
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:120
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:122
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:124
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:126
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:128
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:130
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr ""
-#: config/ia64/ia64.h:132
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:134
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:136
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:138
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:140
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:142
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:144
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:146
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:148
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:176
+#: config/ia64/ia64.h:223
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, fuzzy, c-format
msgid "invalid argument of `%s' attribute"
msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr ""
-#: config/m32r/m32r.c:2248
+#: config/m32r/m32r.c:2256
#, fuzzy, c-format
-msgid "invalid operand to %s code"
+msgid "invalid operand to %%s code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/m32r/m32r.c:2255
+#: config/m32r/m32r.c:2263
#, fuzzy, c-format
-msgid "invalid operand to %p code"
+msgid "invalid operand to %%p code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/m32r/m32r.c:2311
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2363
-msgid "invalid operand to %T/%B code"
-msgstr ""
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/m32r/m32r.c:2386
-#, fuzzy
-msgid "invalid operand to %N code"
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/m32r/m32r.c:2431
+#: config/m32r/m32r.c:2438
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2438
+#: config/m32r/m32r.c:2445
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2445
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2523 config/m32r/m32r.c:2539
-#: config/rs6000/rs6000.c:10712
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
#, fuzzy
msgid "bad address"
msgstr "ÅóöáëìÝíç äéåýèõíóç"
-#: config/m32r/m32r.c:2544
+#: config/m32r/m32r.c:2551
#, fuzzy
msgid "lo_sum not of register"
msgstr "RPC: Ôï ðñüãñáììá äåí Ý÷åé êáôá÷ùñçèåß"
@@ -10746,50 +11208,59 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3032 config/m68hc11/m68hc11.c:3406
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3252 config/m68hc11/m68hc11.c:3336
-#: config/m68hc11/m68hc11.c:3609
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
msgid "invalid register in the move instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3286
+#: config/m68hc11/m68hc11.c:3613
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: config/m68hc11/m68hc11.c:3583
+#: config/m68hc11/m68hc11.c:3920
#, fuzzy
msgid "invalid register in the instruction"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
-#: config/m68hc11/m68hc11.c:3616
+#: config/m68hc11/m68hc11.c:3953
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:3633
+#: config/m68hc11/m68hc11.c:3970
#, fuzzy
msgid "invalid rotate insn"
msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'."
-#: config/m68hc11/m68hc11.c:4053
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4373 config/m68hc11/m68hc11.c:4678
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
#, fuzzy
msgid "cannot do z-register replacement"
msgstr "Äåí åßíáé äõíáôÞ ç êáôá÷þñçóç ôçò õðçñåóßáò"
-#: config/m68hc11/m68hc11.c:4727
+#: config/m68hc11/m68hc11.c:5094
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10797,30 +11268,61 @@ msgstr ""
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:152
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:154
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:156
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:158
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:160 config/m68hc11/m68hc11.h:164
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+#, fuzzy
+msgid "Min/max instructions not allowed"
+msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
+#, fuzzy
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
+
+#: config/m68hc11/m68hc11.h:190
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr ""
-#: config/m68hc11/m68hc11.h:162 config/m68hc11/m68hc11.h:166
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr ""
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10830,30 +11332,34 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:180
+#: config/m68hc11/m68hc11.h:216
#, fuzzy
msgid "Specify the register allocation order"
msgstr "Áðïôõ÷ßá äÝóìåõóçò ðüñùí óõóôÞìáôïò"
-#: config/m68hc11/m68hc11.h:182
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr ""
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr ""
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -10976,120 +11482,84 @@ msgstr ""
msgid "Use unaligned memory references"
msgstr "Ìç Ýãêõñç ðéóù-ðáñáðïìðÞ"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr ""
-
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr ""
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
msgid "internal gcc error: Can't express symbolic location"
msgstr ""
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr ""
-#: config/m88k/m88k.c:2882
-msgid "%R not followed by %B/C/D/E"
+#: config/m88k/m88k.c:2816
+#, c-format
+msgid "%%R not followed by %%B/C/D/E"
msgstr ""
-#: config/m88k/m88k.c:2950
+#: config/m88k/m88k.c:2884
#, fuzzy, c-format
-msgid "invalid %x/X value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/m88k/m88k.c:2955
-#, fuzzy
-msgid "invalid %H value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/m88k/m88k.c:2961
-#, fuzzy
-msgid "invalid %h value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/m88k/m88k.c:2967
-#, fuzzy
-msgid "invalid %Q value"
+msgid "invalid %%x/X value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:2973
-#, fuzzy
-msgid "invalid %q value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/m88k/m88k.c:2979
+#: config/m88k/m88k.c:2901
#, fuzzy, c-format
-msgid "invalid %o value"
+msgid "invalid %%Q value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:2986
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
#, fuzzy, c-format
-msgid "invalid %p value"
+msgid "invalid %%q value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
+#: config/m88k/m88k.c:2913
#, fuzzy, c-format
-msgid "invalid %s/S value"
+msgid "invalid %%o value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3015
-#, fuzzy
-msgid "invalid %P operand"
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
+#, fuzzy, c-format
+msgid "invalid %%p value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3046
-#, fuzzy
-msgid "invalid %B value"
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3063
-#, fuzzy
-msgid "invalid %C value"
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3076
-#, fuzzy
-msgid "invalid %D value"
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, fuzzy, c-format
+msgid "invalid %%B value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3084
+#: config/m88k/m88k.c:3010
#, fuzzy, c-format
-msgid "invalid %E value"
+msgid "invalid %%D value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/m88k/m88k.c:3089
+#: config/m88k/m88k.c:3023
#, c-format
-msgid "`%d' operand isn't a register"
+msgid "`%%d' operand isn't a register"
msgstr ""
-#: config/m88k/m88k.c:3100
-#, fuzzy
-msgid "invalid %r value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr ""
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr ""
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
#, fuzzy
msgid "invalid code"
msgstr "ìç Ýãêõñï äéêáßùìá"
@@ -11114,7 +11584,7 @@ msgstr ""
msgid "-mshort-data-%s and PIC are incompatible"
msgstr ""
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, fuzzy, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
@@ -11140,7 +11610,7 @@ msgid "Do not use the divide instruction"
msgstr ""
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr ""
#: config/mcore/mcore.h:142
@@ -11172,223 +11642,236 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4824
-#, fuzzy, c-format
-msgid "-mips%d not supported"
-msgstr "Ôï ai_family äåí õðïóôçñßæåôáé"
-
-#: config/mips/mips.c:4831
-#, c-format
-msgid "bad value (%s) for -mips switch"
-msgstr ""
-
-#: config/mips/mips.c:4852
+#: config/mips/mips.c:5128
#, c-format
msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4890
-#, fuzzy, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "Ôï ai_socktype äåí õðïóôçñßæåôáé"
-
-#: config/mips/mips.c:4907
-msgid "this target does not support the -mabi switch"
+#: config/mips/mips.c:5158
+#, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:5017
+#: config/mips/mips.c:5165
#, c-format
-msgid "bad value (%s) for -mtune= switch"
+msgid "bad value (%s) for -mips switch"
msgstr ""
-#: config/mips/mips.c:5033
+#: config/mips/mips.c:5180
#, c-format
-msgid "-march=%s does not support -mips%d"
+msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:5040
-#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:5046
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
+#: config/mips/mips.c:5194
+#, fuzzy
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "×ñÞóç ABI 64-bit"
+
+#: config/mips/mips.c:5196
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "×ñÞóç ABI 32-bit"
+
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "ÅìöÜíéóç Ýêäïóçò ðñïãñÜììáôïò"
+
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:5067
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:5083
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr ""
-#: config/mips/mips.c:5086
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr ""
-#: config/mips/mips.c:5137
+#: config/mips/mips.c:5369
#, fuzzy, c-format
msgid "invalid option `entry%s'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: config/mips/mips.c:5140
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr ""
-#: config/mips/mips.c:5480
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5494
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5507
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5520
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5534
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:5543
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/mips/mips.c:5676
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
-#: config/mips/mips.c:5719
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/mips/mips.c:5943
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr ""
-#: config/mips/mips.c:6257
+#: config/mips/mips.c:6552
#, fuzzy
msgid "can't rewind temp file"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6556
#, fuzzy
msgid "can't write to output file"
msgstr "áäõíáìßá åããñáöÞò áñ÷åßùí åîüäïõ óôï `%s'"
-#: config/mips/mips.c:6264
+#: config/mips/mips.c:6559
#, fuzzy
msgid "can't read from temp file"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ"
-#: config/mips/mips.c:6267
+#: config/mips/mips.c:6562
#, fuzzy
msgid "can't close temp file"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ"
-#: config/mips/mips.c:6700
+#: config/mips/mips.c:7003
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:6862
+#: config/mips/mips.c:7112
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:8893
+#: config/mips/mips.c:9335
#, fuzzy, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'"
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr ""
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr ""
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr ""
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
#, fuzzy
msgid "Use symbolic register names"
msgstr "äåí äþèçêå óõìâïëéêü üíïìá"
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr ""
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr ""
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr ""
@@ -11398,267 +11881,251 @@ msgstr ""
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr ""
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr ""
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/mips/mips.h:444
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:446
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr ""
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr ""
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:590 config/mips/mips.h:592
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/mips/mips.h:594
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/mips/mips.h:596
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr ""
-#: config/mips/mips.h:598
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr ""
-#: config/mips/mips.h:600
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr ""
-#: config/mips/mips.h:604
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/mips/mips.h:606
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2869
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr ""
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, fuzzy, c-format
msgid "-f%s not supported: ignored"
msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-#: config/mmix/mmix.c:564
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr ""
-#: config/mmix/mmix.c:651
-msgid "stack frame too big"
-msgstr ""
-
-#: config/mmix/mmix.c:679
-#, fuzzy, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr "ï ßäéïò êáíüíáò óå ðïëëáðëÜ áñ÷åßá"
-
-#: config/mmix/mmix.c:1022
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1190
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mmix/mmix.c:1227
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr ""
-
-#: config/mmix/mmix.c:1233
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1556
-msgid "oops, not debugged; fixing up value:"
-msgstr ""
-
-#: config/mmix/mmix.c:2100 config/mmix/mmix.c:2234
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:2108 config/mmix/mmix.c:2132 config/mmix/mmix.c:2251
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:2179
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:2202
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:2212
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2244
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:2295
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:2354
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:2823 config/mmix/mmix.c:2892
+#: config/mmix/mmix.c:2082
+#, fuzzy, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "ï ßäéïò êáíüíáò óå ðïëëáðëÜ áñ÷åßá"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:3011
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:3018
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3022
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3093
+#: config/mmix/mmix.c:3088
msgid "MMIX Internal: This is not a constant:"
msgstr ""
@@ -11671,68 +12138,84 @@ msgstr ""
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
#. Provide default program start 0x100 unless -mno-set-program-start.
-#. Link to ELF if requested.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:135
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr ""
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr ""
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:175
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr ""
-#: config/mmix/mmix.h:178
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:180
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:182
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr ""
-#: config/mmix/mmix.h:185
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr ""
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr ""
-#: config/mmix/mmix.h:192
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr ""
-#: config/mmix/mmix.h:194
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr ""
-#: config/mmix/mmix.h:196
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr ""
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr ""
-#: config/mmix/mmix.h:200
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr ""
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:227
+#, fuzzy
+msgid "Do not use addresses that allocate global registers"
+msgstr "Äåí åßíáé äõíáôü íá äåóìåõôåß ìíÞìç"
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr ""
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr ""
@@ -11749,156 +12232,293 @@ msgstr ""
msgid "Enable linker relaxations"
msgstr ""
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:52
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr ""
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr ""
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr ""
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr ""
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr ""
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr ""
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
#, fuzzy
msgid "Do not use register sb"
msgstr "Äåí åßíáé äõíáôÞ ç êáôá÷þñçóç ôçò õðçñåóßáò"
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
-msgstr ""
-
-#: config/ns32k/ns32k.h:117
+#: config/ns32k/ns32k.h:155
#, fuzzy
msgid "Use bit-field instructions"
msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr ""
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr ""
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr ""
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr ""
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr ""
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:188
+#: config/pa/pa.c:261
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:213
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:218
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:223
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:228
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:229
+#: config/pa/pa.c:310
#, fuzzy
msgid "-g option disabled"
msgstr "Ç ëåéôïõñãßá NIS+ áðÝôõ÷å"
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr ""
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr ""
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+#, fuzzy
+msgid "Do not disable FP regs"
+msgstr "Äåí åßíáé äõíáôü íá äåóìåõôåß ìíÞìç"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+#, fuzzy
+msgid "Do not disable space regs"
+msgstr "Äåí åßíáé äõíáôü íá äåóìåõôåß ìíÞìç"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
+
+#: config/pa/pa.h:258
+#, fuzzy
+msgid "Use portable calling conventions"
+msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr ""
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "×ñÞóç îå÷ùñéóôÞò ëáíèÜíïõóáò ìíÞìçò ãéá êÜèå ÷ñÞóôç"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr ""
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr ""
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr ""
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
#, fuzzy
msgid "Return floating point results in ac0"
msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr ""
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr ""
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr ""
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr ""
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr ""
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr ""
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr ""
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr ""
@@ -11906,80 +12526,51 @@ msgstr ""
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr ""
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
#, fuzzy
msgid "Target does not have split I&D"
msgstr "-nt äåí äÝ÷åôáé -l\n"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr ""
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr ""
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr ""
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr ""
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr ""
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr ""
-
-#: config/romp/romp.c:682
-#, fuzzy, c-format
-msgid "invalid %%B value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6202
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, fuzzy, c-format
msgid "invalid %%S value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, fuzzy, c-format
msgid "invalid %%b value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, fuzzy, c-format
msgid "invalid %%z value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, fuzzy, c-format
msgid "invalid %%Z value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815
-#: config/rs6000/rs6000.c:5981
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, fuzzy, c-format
msgid "invalid %%k value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, fuzzy, c-format
msgid "invalid %%j value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
@@ -11997,150 +12588,216 @@ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr ""
-#: config/rs6000/rs6000.c:472
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+#, fuzzy
+msgid "ignoring malformed #pragma longcall"
+msgstr "áãíïïýíôáé üëá ôá ïñßóìáôá"
+
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá"
+
+#: config/rs6000/rs6000-c.c:60
+#, fuzzy
+msgid "missing number"
+msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
+
+#: config/rs6000/rs6000-c.c:62
+#, fuzzy
+msgid "missing close paren"
+msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#: config/rs6000/rs6000.c:592
#, fuzzy
msgid "-mmultiple is not supported on little endian systems"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: config/rs6000/rs6000.c:479
+#: config/rs6000/rs6000.c:599
#, fuzzy
msgid "-mstring is not supported on little endian systems"
msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: config/rs6000/rs6000.c:485
+#: config/rs6000/rs6000.c:623
#, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr ""
-
-#: config/rs6000/rs6000.c:494
-msgid "-ffunction-sections disabled on AIX when debugging"
+msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:500
-#, fuzzy
-msgid "-fdata-sections not supported on AIX"
-msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
-
-#: config/rs6000/rs6000.c:515
+#: config/rs6000/rs6000.c:635
#, c-format
-msgid "unknown -mdebug-%s switch"
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
msgstr ""
-#: config/rs6000/rs6000.c:525
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:590
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "Üãíùóôï óåô `%s'"
+
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "Üãíùóôï óåô `%s'"
+
+#: config/rs6000/rs6000.c:772
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "Üãíùóôï óåô `%s'"
-#: config/rs6000/rs6000.c:3810
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#: config/rs6000/rs6000.c:4356
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4410
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#: config/rs6000/rs6000.c:4666
#, fuzzy, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-#: config/rs6000/rs6000.c:5908
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000.c:7511
#, fuzzy, c-format
msgid "invalid %%f value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:5917
+#: config/rs6000/rs6000.c:7520
#, fuzzy, c-format
msgid "invalid %%F value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:5926
+#: config/rs6000/rs6000.c:7529
#, fuzzy, c-format
msgid "invalid %%G value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:5961
+#: config/rs6000/rs6000.c:7564
#, fuzzy, c-format
msgid "invalid %%j code"
msgstr "ìç Ýãêõñï äéêáßùìá"
-#: config/rs6000/rs6000.c:5971
+#: config/rs6000/rs6000.c:7574
#, fuzzy, c-format
msgid "invalid %%J code"
msgstr "ìç Ýãêõñï äéêáßùìá"
-#: config/rs6000/rs6000.c:6001
+#: config/rs6000/rs6000.c:7604
#, fuzzy, c-format
msgid "invalid %%K value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:6128
-#, fuzzy, c-format
-msgid "invalid %%p value"
-msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-
-#: config/rs6000/rs6000.c:6165
+#: config/rs6000/rs6000.c:7671
#, fuzzy, c-format
-msgid "invalid %%q value"
+msgid "invalid %%O value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:6228
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr ""
-
-#: config/rs6000/rs6000.c:6255
-#, c-format
-msgid "%%S computed all 0's mask"
-msgstr ""
-
-#: config/rs6000/rs6000.c:6265
+#: config/rs6000/rs6000.c:7793
#, fuzzy, c-format
msgid "invalid %%T value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:6275
+#: config/rs6000/rs6000.c:7803
#, fuzzy, c-format
msgid "invalid %%u value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/rs6000.c:6284
+#: config/rs6000/rs6000.c:7812
#, fuzzy, c-format
msgid "invalid %%v value"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/rs6000/aix.h:134 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
#, fuzzy
msgid "Always pass floating-point arguments in memory"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-#: config/rs6000/aix.h:136 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
#, fuzzy
msgid "Don't always pass floating-point arguments in memory"
msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr ""
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
msgid "-maix64 and POWER architecture are incompatible"
msgstr ""
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr ""
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr ""
@@ -12151,147 +12808,164 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
#, fuzzy
msgid "Use AltiVec instructions"
msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr ""
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:666
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr ""
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr ""
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr ""
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+#, fuzzy
+msgid "Avoid all range limits on call instructions"
+msgstr "ÁêáôÜëëçëç åíôïëÞ"
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12304,101 +12978,105 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1776
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr ""
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr ""
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
msgid "Align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr ""
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr ""
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128
-#: config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130
-#: config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132
-#: config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143
-#: config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
#: config/rs6000/sysv4.h:157
#, fuzzy
msgid "no description yet"
msgstr "(÷ùñßò ðåñéãñáöÞ)"
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr ""
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
#, fuzzy
msgid "Use alternate register names"
msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr ""
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr ""
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12407,3634 +13085,1341 @@ msgstr ""
#.
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control.
-#: config/rs6000/sysv4.h:212
+#: config/rs6000/sysv4.h:214
#, fuzzy, c-format
msgid "bad value for -mcall-%s"
msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
-#: config/rs6000/sysv4.h:228
+#: config/rs6000/sysv4.h:230
#, fuzzy, c-format
msgid "bad value for -msdata=%s"
msgstr "ÁêáôÜëëçëç ôéìÞ óôï ai_flags"
-#: config/rs6000/sysv4.h:245
+#: config/rs6000/sysv4.h:247
#, c-format
msgid "-mrelocatable and -msdata=%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:253
+#: config/rs6000/sysv4.h:255
#, c-format
msgid "-f%s and -msdata=%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:261
+#: config/rs6000/sysv4.h:264
#, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:268
+#: config/rs6000/sysv4.h:273
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:274
+#: config/rs6000/sysv4.h:279
#, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:281
+#: config/rs6000/sysv4.h:286
#, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:288
+#: config/rs6000/sysv4.h:293
#, fuzzy
msgid "-mcall-aixdesc must be big endian"
msgstr "ôá ìåãÝèç ôïõ óôçëïãíþìïíá ðñÝðåé íá åßíáé êáôÜ áýîïõóá óåéñÜ"
-#: config/s390/s390.c:1762
+#: config/s390/s390.c:3063
msgid "invalid UNSPEC as operand (1)"
msgstr ""
-#: config/s390/s390.c:1792
+#: config/s390/s390.c:3123
msgid "invalid UNSPEC as operand (2)"
msgstr ""
-#: config/s390/s390.c:1798
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr ""
-#: config/s390/s390.c:1814
+#: config/s390/s390.c:3147
#, fuzzy
msgid "Cannot decompose address."
msgstr "Äåí åßíáé äõíáôÞ ç åê÷þñçóç ôçò æçôçèÞóáò äéåýèõíóçò"
-#: config/s390/s390.c:1962
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:2507
-msgid "no code label found"
-msgstr ""
-
-#: config/s390/s390.c:2653
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.h:53
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr ""
-#: config/s390/s390.h:54
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr ""
-#: config/s390/s390.h:55
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr ""
-#: config/s390/s390.h:56
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr ""
-#: config/s390/s390.h:57
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr ""
-#: config/s390/s390.h:58
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr ""
-#: config/s390/s390.h:59
+#: config/s390/s390.h:76
msgid "64 bit mode"
-msgstr ""
+msgstr "êáôÜóôáóç 64 bit"
-#: config/s390/s390.h:60
+#: config/s390/s390.h:77
msgid "31 bit mode"
-msgstr ""
+msgstr "êáôÜóôáóç 31 bit"
-#: config/s390/s390.h:61
+#: config/s390/s390.h:78
#, fuzzy
msgid "mvcle use"
msgstr "Ç óõóêåõÞ åßíáé áðáó÷ïëçìÝíç"
-#: config/s390/s390.h:62
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr ""
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:4730 config/sh/sh.c:4769
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr ""
#. The argument must be a constant string.
-#: config/sh/sh.c:4737
+#: config/sh/sh.c:5720
#, fuzzy, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
#. The argument must be a constant integer.
-#: config/sh/sh.c:4776
+#: config/sh/sh.c:5759
#, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr ""
-#: config/sparc/sparc.c:319
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#: config/sparc/sparc.c:329
#, fuzzy, c-format
msgid "%s is not supported by this configuration"
msgstr "Ç ïéêïãÝíåéá äéåõèýíóåùí äåí õðïóôçñßæåôáé áðü ôçí ïéêïãÝíåéá ðñùôïêüëëïõ"
-#: config/sparc/sparc.c:326
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:351
+#: config/sparc/sparc.c:361
#, fuzzy
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
-#: config/sparc/sparc.c:439
-msgid "profiling does not support code models other than medlow"
-msgstr ""
-
-#: config/sparc/sparc.c:5834 config/sparc/sparc.c:5840
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:5910
+#: config/sparc/sparc.c:6417
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:5920
+#: config/sparc/sparc.c:6427
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:5959
+#: config/sparc/sparc.c:6466
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:5960
+#: config/sparc/sparc.c:6467
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC"
-#: config/sparc/sparc.c:5981
+#: config/sparc/sparc.c:6488
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:5982
+#: config/sparc/sparc.c:6489
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:6000
+#: config/sparc/sparc.c:6505
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: config/sparc/sparc.c:6050
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:6053
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr ""
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:86
-#: config/sparc/linux64.h:139
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:82 config/sparc/splet.h:29
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:83 config/sparc/splet.h:30
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr ""
-#. To make profiling work with -f{pic,PIC}, we need to emit the profiling
-#. code into the rtl. Also, if we are profiling, we cannot eliminate
-#. the frame pointer (because the return address will get smashed).
-#: config/sparc/sparc.h:388
-#, c-format
-msgid "%s and profiling conflict: disabling %s"
-msgstr ""
-
-#: config/sparc/sparc.h:562
-msgid "Use function_epilogue()"
-msgstr ""
-
-#: config/sparc/sparc.h:564
-msgid "Do not use function_epilogue()"
-msgstr ""
-
-#: config/sparc/sparc.h:566
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:570
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:576
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:578
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:580
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:582
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:584
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:586
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:588
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:590
+#: config/sparc/sparc.h:556
#, fuzzy
msgid "Utilize Visual Instruction Set"
msgstr "ÐáñÜíïìç ÅíôïëÞ"
-#: config/sparc/sparc.h:592
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr ""
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr ""
-#: config/sparc/sparc.h:597
-msgid "Optimize for SparcLite processors"
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
msgstr ""
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr ""
-#: config/sparc/sparc.h:601
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr ""
-#: config/sparc/sparc.h:603
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
msgstr ""
-#: config/sparc/sparc.h:605
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
msgstr ""
#. End of deprecated options.
-#: config/sparc/sparc.h:608
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:610
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:612
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
-msgstr ""
+msgstr "×ñÞóç ABI 32-bit"
-#: config/sparc/sparc.h:614
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
-msgstr ""
+msgstr "×ñÞóç ABI 64-bit"
-#: config/sparc/sparc.h:616
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:618
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:620
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:622
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:624
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:670
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
msgstr ""
-#: config/stormy16/stormy16.c:1168
+#: config/stormy16/stormy16.c:1192
msgid "cannot use va_start in interrupt function"
msgstr ""
-#: config/stormy16/stormy16.c:1525
+#: config/stormy16/stormy16.c:1552
msgid "`B' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1531
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr ""
-#: config/stormy16/stormy16.c:1558
+#: config/stormy16/stormy16.c:1585
msgid "`o' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1573
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr ""
-#: config/stormy16/stormy16.c:1623
+#: config/stormy16/stormy16.c:1650
#, c-format
msgid "switch statement of size %lu entries too large"
msgstr ""
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
msgid "cannot set interrupt attribute: no current function"
msgstr ""
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr ""
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr ""
# src/request.c:806 src/request.c:912
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, fuzzy, c-format
msgid "unrecognized section name \"%s\""
msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
# src/dfa.c:569 src/dfa.c:583 src/dfa.c:587
# src/dfa.c:577 src/dfa.c:591 src/dfa.c:595
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
#, fuzzy
msgid "malformed #pragma ghs section"
msgstr "êáêïó÷çìáôéóìÝíïò ìåôñçôÞò åðáíÜëçøçò"
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr ""
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr ""
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr ""
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr ""
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr ""
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr ""
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, c-format
msgid "%s=%s is not numeric"
msgstr ""
# src/shred.c:1134
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "%s: ôï áñ÷åßï åßíáé ðïëý ìåãÜëï"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
#, fuzzy
msgid "output_move_single:"
msgstr "áñ÷åßï åîüäïõ"
-#: config/v850/v850.c:2081
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2092
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2295
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2316 config/v850/v850.c:2518
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2494
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
-msgid "Support Green Hills ABI"
-msgstr ""
-
-#: config/v850/v850.h:123
-msgid "Prohibit PC relative function calls"
-msgstr ""
-
-#: config/v850/v850.h:126
-msgid "Reuse r30 on a per function basis"
-msgstr ""
-
-#: config/v850/v850.h:129
-msgid "Use stubs for function prologues"
-msgstr ""
-
-#: config/v850/v850.h:132
-msgid "Same as: -mep -mprolog-function"
-msgstr ""
-
-#: config/v850/v850.h:133
-msgid "Enable backend debugging"
-msgstr ""
-
-#: config/v850/v850.h:135
-msgid "Compile for the v850 processor"
-msgstr ""
-
-#: config/v850/v850.h:138
-msgid "Use 4 byte entries in switch tables"
-msgstr ""
-
-#: config/v850/v850.h:164
-msgid "Set the max size of data eligible for the TDA area"
-msgstr ""
-
-#: config/v850/v850.h:167
-msgid "Set the max size of data eligible for the SDA area"
-msgstr ""
-
-#: config/v850/v850.h:170
-msgid "Set the max size of data eligible for the ZDA area"
-msgstr ""
-
-#: ada/misc.c:219
-msgid "`-gnat' misspelled as `-gant'"
-msgstr ""
-
-#: ch/actions.c:118
-#, c-format
-msgid "%d errors, %d sorries, do granting"
-msgstr ""
-
-#: ch/actions.c:135
-msgid "GNU compiler does not support statically allocated objects"
-msgstr ""
-
-#: ch/actions.c:138 objc/objc-act.c:882
-#, c-format
-msgid "`%s' cannot be statically allocated"
-msgstr ""
-
-#: ch/actions.c:300
-#, c-format
-msgid "causing unhandled exception `%s' (this is flaged only once)"
-msgstr ""
-
-#: ch/actions.c:438
-msgid "range failure (not inside function)"
-msgstr ""
-
-#: ch/actions.c:440
-msgid "possible range failure (not inside function)"
-msgstr ""
-
-#: ch/actions.c:445
-msgid "expression will always cause RANGEFAIL"
-msgstr ""
-
-#: ch/actions.c:492
-msgid "right hand side of assignment is a mode"
-msgstr ""
-
-#: ch/actions.c:498
-#, c-format
-msgid "incompatible modes in %s"
-msgstr ""
-
-#: ch/actions.c:523
-#, fuzzy, c-format
-msgid "bad string length in %s"
-msgstr "åëÜ÷éóôï ìÝãåèïò áëöáñéèìçôéêïý"
-
-#: ch/actions.c:631 ch/actions.c:644
-#, fuzzy, c-format
-msgid "mode mismatch in %s expression"
-msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
-
-#: ch/actions.c:638
-#, c-format
-msgid "%s expression must be referable"
-msgstr ""
-
-#: ch/actions.c:667
-#, c-format
-msgid "%s not allowed outside a PROC"
-msgstr ""
-
-#: ch/actions.c:673
-#, c-format
-msgid "%s action in PROC with no declared RESULTS"
-msgstr ""
-
-#: ch/actions.c:704
-msgid "RETURN not allowed outside PROC"
-msgstr ""
-
-#: ch/actions.c:717
-msgid "RETURN with a value, in PROC returning void"
-msgstr ""
-
-#: ch/actions.c:726
-msgid "RETURN with no value and no RESULT action in procedure"
-msgstr ""
-
-# src/main.c:697 src/main.c:751
-#: ch/actions.c:749
-#, fuzzy, c-format
-msgid "no label named `%s'"
-msgstr "¶ãíùóôç ãëþóóá `%s'"
-
-#: ch/actions.c:751
-#, c-format
-msgid "cannot GOTO label `%s' outside current function"
-msgstr ""
-
-#: ch/actions.c:773
-#, c-format
-msgid "no EXITable label named `%s'"
-msgstr ""
-
-#: ch/actions.c:775
+#: config/v850/v850.c:3026
#, c-format
-msgid "cannot EXIT label `%s' outside current function"
-msgstr ""
-
-#: ch/actions.c:1018
-msgid "case selector not compatible with label"
-msgstr ""
-
-#: ch/actions.c:1044
-msgid "ELSE label not within a CASE statement"
-msgstr ""
-
-#: ch/actions.c:1048
-msgid "multiple default labels found in a CASE statement"
-msgstr ""
-
-#: ch/actions.c:1049
-#, fuzzy
-msgid "this is the first ELSE label"
-msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-
-#: ch/actions.c:1070
-msgid "label found outside of CASE statement"
+msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: ch/actions.c:1073
-#, fuzzy
-msgid "duplicate CASE value"
-msgstr "äéðëü êëåéäß"
-
-#: ch/actions.c:1074 ch/actions.c:1127
-#, fuzzy
-msgid "this is the first entry for that value"
-msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
-
-#: ch/actions.c:1077 ch/actions.c:1130
-#, fuzzy
-msgid "CASE value out of range"
-msgstr "Ï áñéèìüò ôùí êáíáëéþí åßíáé Ýîù áðü ôá üñéá"
-
-#: ch/actions.c:1079 ch/actions.c:1132
-#, fuzzy
-msgid "empty range"
-msgstr "êåíü áëöáñéèìçôéêü"
-
-#: ch/actions.c:1081 ch/actions.c:1134
-msgid "label within scope of cleanup or variable array"
-msgstr ""
-
-#: ch/actions.c:1105 ch/actions.c:1302
-msgid "mode in label is not discrete"
-msgstr ""
-
-#: ch/actions.c:1122
-msgid "label not within a CASE statement"
-msgstr ""
-
-#: ch/actions.c:1282
-msgid "lower bound of range must be a discrete literal expression"
-msgstr ""
-
-#: ch/actions.c:1287
-msgid "upper bound of range must be a discrete literal expression"
-msgstr ""
-
-#: ch/actions.c:1311
-msgid "CASE label is not valid"
-msgstr ""
-
-#: ch/actions.c:1357
-msgid "number of CASE selectors does not match the number of CASE label lists"
-msgstr ""
-
-#: ch/actions.c:1442
+#: config/v850/v850.c:3048
#, c-format
-msgid "incomplete CASE - %s not handled"
-msgstr ""
-
-#: ch/actions.c:1461
-msgid "CASE selector with variable range"
-msgstr ""
-
-#: ch/actions.c:1465
-msgid "too many cases to do CASE completeness testing"
-msgstr ""
-
-#: ch/actions.c:1550
-msgid "type of tuple cannot be implicit in multiple assignent"
-msgstr ""
-
-#: ch/actions.c:1552
-msgid "conditional expression cannot be used in multiple assignent"
+msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: ch/actions.c:1554
-#, fuzzy
-msgid "internal error - unknown type in multiple assignment"
-msgstr "åóùôåñéêü óöÜëìá - êëÞèçêå ç addtype ìå êáêü ttisgmt"
-
-#: ch/actions.c:1558
-msgid "no operator allowed in multiple assignment,"
-msgstr ""
-
-#: ch/actions.c:1568
-msgid "location modes in multiple assignment are not equivalent"
-msgstr ""
-
-#: ch/actions.c:1606
-msgid "you may not assign a value to a BUFFER or EVENT location"
-msgstr ""
-
-#: ch/actions.c:1614
-msgid "can't assign value to READonly location"
-msgstr ""
-
-#: ch/actions.c:1619
-msgid "cannot assign to location with non-value property"
-msgstr ""
-
-#: ch/actions.c:1639
-msgid "lefthand side of assignment is not a location"
-msgstr ""
-
-#: ch/actions.c:1715 ch/actions.c:1785
-msgid "bitstring slice"
-msgstr ""
-
-#: ch/actions.c:1810
-msgid "LENGTH on left-hand-side is non-portable"
-msgstr ""
-
-#: ch/actions.c:1814
-msgid "can only set LENGTH of array location"
-msgstr ""
-
-#: ch/convert.c:63
-msgid "internal error: trying to make loc-identity with non-location"
-msgstr ""
-
-#: ch/convert.c:117
-#, fuzzy
-msgid "cannot convert to a boolean mode"
-msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
-
-#: ch/convert.c:152
-#, fuzzy
-msgid "cannot convert to a char mode"
-msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
-
-#: ch/convert.c:248
-#, fuzzy
-msgid "powerset tuple element out of range"
-msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
-
-#: ch/convert.c:284 ch/convert.c:312
-#, c-format
-msgid "incompatible member of powerset tuple (at position #%d)"
-msgstr ""
-
-#: ch/convert.c:394
-#, c-format
-msgid "no initializer value for fixed field `%s'"
-msgstr ""
-
-#: ch/convert.c:436
-#, c-format
-msgid "non-constant value for tag field `%s'"
-msgstr ""
-
-#: ch/convert.c:488
+#: config/v850/v850.c:3224
#, c-format
-msgid "field `%s' in wrong variant"
+msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: ch/convert.c:495
-#, fuzzy, c-format
-msgid "missing variant fields (at least `%s')"
-msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-
-#: ch/convert.c:518
-#, fuzzy, c-format
-msgid "bad initializer for field `%s'"
-msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
-
-#: ch/convert.c:525
+#: config/v850/v850.c:3246
#, c-format
-msgid "no initializer value for variant field `%s'"
+msgid "Too much stack space to prepare: %d"
msgstr ""
-#: ch/convert.c:531
-msgid "no selected variant"
-msgstr ""
-
-#: ch/convert.c:546 ch/convert.c:912
-msgid "mixture of labelled and unlabelled tuple elements"
-msgstr ""
-
-#: ch/convert.c:557
-msgid "probably not a structure tuple"
-msgstr ""
-
-#: ch/convert.c:559
-#, c-format
-msgid "excess initializer for field `%s'"
-msgstr ""
-
-#: ch/convert.c:566
-msgid "excess unnamed initializers"
-msgstr ""
-
-#: ch/convert.c:693
-msgid "non-constant start index for tuple"
-msgstr ""
-
-#: ch/convert.c:736
-#, fuzzy
-msgid "invalid array tuple label"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ïíüìáôïò êëÜóçò"
-
-#: ch/convert.c:750
-msgid "non-constant array tuple index range"
-msgstr ""
-
-#: ch/convert.c:759
-#, c-format
-msgid "incompatible array tuple element %s"
-msgstr ""
-
-#: ch/convert.c:775
-msgid "multiple (*) or (ELSE) array tuple labels"
-msgstr ""
-
-#: ch/convert.c:784
-msgid "empty range in array tuple"
-msgstr ""
-
-#: ch/convert.c:801
-#, c-format
-msgid "array tuple has duplicate index %s"
-msgstr ""
-
-#: ch/convert.c:809
-#, fuzzy
-msgid "array tuple index out of range"
-msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
-
-#: ch/convert.c:811
-#, fuzzy
-msgid "too many array tuple values"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: ch/convert.c:883
-msgid "dynamic array tuple without (*) or (ELSE)"
-msgstr ""
-
-#: ch/convert.c:885
-#, fuzzy, c-format
-msgid "missing array tuple element %s"
-msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-
-#: ch/convert.c:892
-#, fuzzy, c-format
-msgid "missing array tuple elements %s : %s"
-msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-
-#: ch/convert.c:1086
-msgid "initializer is not an array or string mode"
-msgstr ""
-
-#: ch/convert.c:1096
-msgid "destination is too small"
-msgstr ""
-
-#: ch/convert.c:1152
-msgid "internal error: unknown type of expression"
-msgstr ""
-
-#: ch/decl.c:1033
-#, fuzzy, c-format
-msgid "`%s' must not be declared readonly"
-msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-
-#: ch/decl.c:1037
-msgid "declaration of readonly variable without initialization"
-msgstr ""
-
-# src/request.c:263
-#: ch/decl.c:1059
-#, fuzzy, c-format
-msgid "no initialization allowed for `%s'"
-msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
-
-#: ch/decl.c:1067
-#, c-format
-msgid "value for loc-identity `%s' is not a location"
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
msgstr ""
-#: ch/decl.c:1074
-#, fuzzy, c-format
-msgid "location for `%s' not read-compatible"
-msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
-
-#: ch/decl.c:1101
-#, c-format
-msgid "nonconstant initializer for `%s'"
+#: config/v850/v850.h:161
+msgid "Prohibit PC relative function calls"
msgstr ""
-#: ch/decl.c:1132
-msgid "do_decl: internal error: don't know what to initialize"
+#: config/v850/v850.h:164
+msgid "Reuse r30 on a per function basis"
msgstr ""
-#: ch/decl.c:1189
-msgid "RECURSIVE PROCs"
+#: config/v850/v850.h:167
+msgid "Use stubs for function prologues"
msgstr ""
-#: ch/decl.c:1445
-#, c-format
-msgid "`%s' must not be READonly"
+#: config/v850/v850.h:170
+msgid "Same as: -mep -mprolog-function"
msgstr ""
-#: ch/decl.c:1471
-msgid "POS may not be specified for a list of field declarations"
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
msgstr ""
-#: ch/decl.c:1525
-msgid "(ELSE) case label as well as ELSE variant"
+#: config/v850/v850.h:173
+msgid "Compile for the v850 processor"
msgstr ""
-#: ch/decl.c:1610 ch/decl.c:1613
-msgid "inconsistent modes between labels and tag field"
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
msgstr ""
-#: ch/decl.c:1618
-#, fuzzy
-msgid "too few tag labels"
-msgstr "ðïëý ëßãá ïñßóìáôá"
-
-#: ch/decl.c:1620
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
#, fuzzy
-msgid "too many tag labels"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: ch/decl.c:1658
-msgid "case label lower limit is not a discrete constant expression"
-msgstr ""
-
-#: ch/decl.c:1660
-msgid "case label upper limit is not a discrete constant expression"
-msgstr ""
-
-#: ch/decl.c:1670
-msgid "case label must be a discrete constant expression"
-msgstr ""
-
-#: ch/decl.c:1697
-msgid "variant label declared here..."
-msgstr ""
+msgid "Enable the use of the short load instructions"
+msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: ch/decl.c:1699
+#: config/v850/v850.h:180
#, fuzzy
-msgid "...is duplicated here"
-msgstr "äéðëü êëåéäß"
-
-#: ch/decl.c:1729
-#, c-format
-msgid "no field (yet) for tag %s"
-msgstr ""
-
-#: ch/decl.c:1824
-msgid "non-value mode may only returned by LOC"
-msgstr ""
-
-#: ch/decl.c:1847
-#, fuzzy, c-format
-msgid "mode of `%s' is not a mode"
-msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-
-#: ch/decl.c:1853
-#, c-format
-msgid "`%s' may only be passed by LOC"
-msgstr ""
-
-#: ch/decl.c:2281
-#, c-format
-msgid "nothing named `%s' to grant"
-msgstr ""
-
-#: ch/decl.c:2321
-#, fuzzy, c-format
-msgid "duplicate grant for `%s'"
-msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-
-#: ch/decl.c:2322
-#, fuzzy, c-format
-msgid "previous grant for `%s'"
-msgstr "äéáôÞñçóç ùñþí óôï %s"
-
-#: ch/decl.c:2409
-#, fuzzy, c-format
-msgid "duplicate definition `%s'"
-msgstr "äéðëüò ïñéóìüò óõíüëïõ"
-
-#: ch/decl.c:2410
-#, fuzzy, c-format
-msgid "previous definition of `%s'"
-msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
-
-# src/main.c:785
-#: ch/decl.c:3248 ch/decl.c:3258
-#, fuzzy, c-format
-msgid "ambiguous choice for seize `%s' -"
-msgstr "ÁóáöÞò ìïñöÞ `%s'"
-
-#: ch/decl.c:3249 ch/decl.c:3259
-#, c-format
-msgid " - can seize this `%s' -"
-msgstr ""
-
-#: ch/decl.c:3250 ch/decl.c:3261
-#, c-format
-msgid " - or this granted decl `%s'"
-msgstr ""
-
-#: ch/decl.c:4430
-#, fuzzy, c-format
-msgid "enumerator value for `%s' is less than 0"
-msgstr "%s: ïé ôéìÝò ôïõ ðåäßïõ `%s' äåí ðñÝðåé íá åßíáé ìåãáëýôåñåò áðü %d"
-
-#: ch/decl.c:4512
-#, c-format
-msgid "enumerators `%s' and `%s' have equal values"
-msgstr ""
-
-#: ch/decl.c:4618
-msgid "undefined value in SET mode is obsolete and deprecated"
-msgstr ""
-
-#: ch/decl.c:4794
-msgid "BASE variable never declared"
-msgstr ""
-
-#: ch/decl.c:4796
-msgid "cannot BASE a variable on a PROC/PROCESS name"
-msgstr ""
+msgid "Do not use the callt instruction"
+msgstr "ÁêáôÜëëçëç åíôïëÞ"
-#: ch/decl.c:4848
+#: config/v850/v850.h:187
#, fuzzy
-msgid "INTERNAL ERROR: handle_one_level is broken"
-msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò åßäïò áíôéêåéìÝíïõ óôï expand_token ()"
-
-#: ch/expr.c:126
-#, c-format
-msgid "tuple without specified mode not allowed in %s"
-msgstr ""
-
-#: ch/expr.c:128
-#, fuzzy, c-format
-msgid "conditional expression not allowed in %s"
-msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (ëÜèïò åßóïäïò): %s"
-
-#: ch/expr.c:130
-#, fuzzy, c-format
-msgid "internal error: unknown expression mode in %s"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-
-#: ch/expr.c:147
-msgid "CASE selector is not a discrete expression"
-msgstr ""
-
-#: ch/expr.c:215
-msgid "The number of CASE selectors does not match the number of CASE label lists"
-msgstr ""
+msgid "Do not use registers r2 and r5"
+msgstr "Äåí åßíáé äõíáôÞ ç êáôá÷þñçóç ôçò õðçñåóßáò"
-#: ch/expr.c:594
-msgid "powerset is not addressable"
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
msgstr ""
-#: ch/expr.c:639
-#, fuzzy
-msgid "array is not addressable"
-msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
-
-#: ch/expr.c:687
-#, c-format
-msgid "too few arguments in call to `%s'"
-msgstr "ðïëý ëßãá ïñßóìáôá óôç êëÞóç ôçò `%s'"
-
-#: ch/expr.c:689
-#, c-format
-msgid "too many arguments in call to `%s'"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç êëÞóç ôçò `%s'"
-
-#: ch/expr.c:758
-#, fuzzy
-msgid "cannot dereference, not a pointer"
-msgstr "Äåí ìðïñåß íá êáèïñéóôåß ôï üíïìá ôïõ óõóôÞìáôïò"
-
-#: ch/expr.c:768
-#, c-format
-msgid "missing '.' operator or undefined mode name `%s'"
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
msgstr ""
-#: ch/expr.c:771
-msgid "you have forgotten the '.' operator which must"
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
msgstr ""
-#: ch/expr.c:772
-#, c-format
-msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
msgstr ""
-#: ch/expr.c:786
-msgid "can't dereference PTR value using unary `->'"
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
msgstr ""
-#: ch/expr.c:831
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
#, fuzzy
-msgid "invalid type argument of `->'"
-msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-
-#: ch/expr.c:856 ch/expr.c:969
-msgid "operand of '.' is not a STRUCT"
-msgstr ""
-
-#: ch/expr.c:909
-#, fuzzy, c-format
-msgid "no field named `%s'"
-msgstr "Ìç ïñéóìÝíï üíïìá %s"
-
-#: ch/expr.c:1217
-msgid "ABS argument must be discrete or real mode"
-msgstr ""
-
-#: ch/expr.c:1250
-#, fuzzy, c-format
-msgid "argument %d to ABSTIME must be of integer type"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/expr.c:1288 ch/expr.c:1329
-msgid "parameter 1 must be referable"
-msgstr ""
+msgid "bad test"
+msgstr "ÅóöáëìÝíç äéåýèõíóç"
-#: ch/expr.c:1294 ch/expr.c:1335 ch/expr.c:1372
-msgid "mode mismatch in parameter 1"
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
msgstr ""
-#: ch/expr.c:1301 ch/expr.c:1342
+#: config/xtensa/xtensa.c:1991
#, fuzzy
-msgid "parameter 2 must be a positive integer"
-msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-
-#: ch/expr.c:1436
-msgid "CARD argument must be powerset mode"
-msgstr ""
-
-#: ch/expr.c:1487
-msgid "expression for DESCR-built-in must be referable"
-msgstr ""
-
-#: ch/expr.c:1535
-#, fuzzy, c-format
-msgid "argument to `%s' must be of integer type"
-msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/expr.c:1568
-#, fuzzy, c-format
-msgid "argument 1 to `%s' must be of floating point mode"
-msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/expr.c:1602
-#, fuzzy, c-format
-msgid "first argument to `%s' must be a mode"
-msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/expr.c:1609
-#, c-format
-msgid "READonly modes for %s must have a value"
-msgstr ""
-
-#: ch/expr.c:1692
-msgid "argument to TERMINATE must be a reference primitive value"
-msgstr ""
-
-#: ch/expr.c:1741
-msgid "argument 1 to INTTIME must be of mode TIME"
-msgstr ""
-
-#: ch/expr.c:1888
-msgid "LENGTH argument must be string, buffer, event mode, text location or mode"
-msgstr ""
-
-#: ch/expr.c:1917
-msgid "UPPER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1919
-msgid "LOWER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1953
-msgid "UPPER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1955
-msgid "LOWER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1991
-#, c-format
-msgid "%s argument must be POWERSET mode"
-msgstr ""
-
-#: ch/expr.c:2017
-#, c-format
-msgid "%s called for empty POWERSET"
-msgstr ""
-
-#: ch/expr.c:2098
-msgid "argument to NUM is not discrete"
-msgstr ""
-
-#: ch/expr.c:2110
-msgid "no integer mode which matches expression's mode"
-msgstr ""
-
-#: ch/expr.c:2119
-msgid "NUM's parameter is below its mode range"
-msgstr ""
-
-#: ch/expr.c:2122
-msgid "NUM's parameter is above its mode range"
-msgstr ""
-
-#: ch/expr.c:2161
-msgid "cannot take SUCC or PRED of a numbered SET"
-msgstr ""
-
-#: ch/expr.c:2169
-msgid "SUCC or PRED must not be done on a PTR"
-msgstr ""
-
-#: ch/expr.c:2172
-msgid "SUCC or PRED for a reference type is not standard"
-msgstr ""
-
-#: ch/expr.c:2182
-msgid "SUCC or PRED argument must be a discrete mode"
-msgstr ""
-
-#: ch/expr.c:2203
-#, c-format
-msgid "taking the %s of a value already at its %s value"
-msgstr ""
-
-#: ch/expr.c:2254
-msgid "size applied to a function mode"
-msgstr ""
-
-#: ch/expr.c:2260
-msgid "sizeof applied to a void mode"
-msgstr ""
-
-#: ch/expr.c:2265
-msgid "sizeof applied to an incomplete mode"
-msgstr ""
-
-#: ch/expr.c:2360
-msgid "cannot call a PROCESS, you START a PROCESS"
-msgstr ""
-
-#: ch/expr.c:2422
-#, fuzzy, c-format
-msgid "invalid %s"
+msgid "invalid mask"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: ch/expr.c:2437
-#, c-format
-msgid "%s parameter %d must be a location"
-msgstr ""
-
-#: ch/expr.c:2445
-#, c-format
-msgid "%s parameter %d is READ-only"
-msgstr ""
-
-#: ch/expr.c:2488
-#, c-format
-msgid "LOC actual parameter %d is a non-referable location"
-msgstr ""
-
-#: ch/expr.c:2494
-#, c-format
-msgid "mode mismatch in parameter %d"
-msgstr ""
-
-#: ch/expr.c:2518
-#, c-format
-msgid "too many arguments to procedure `%s'"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç ñïõôßíá `%s'"
-
-#: ch/expr.c:2521
-msgid "too many arguments to procedure"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç ñïõôßíá"
-
-#: ch/expr.c:2527
-#, fuzzy, c-format
-msgid "too few arguments to procedure `%s'"
-msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
-
-#: ch/expr.c:2530
-#, fuzzy
-msgid "too few arguments to procedure"
-msgstr "ðïëý ëßãá ïñßóìáôá"
-
-#: ch/expr.c:2596
-#, fuzzy
-msgid "syntax error (integer used as function)"
-msgstr "óõíôáêôéêü óöÜëìá óôïí êáèïñéóìü óåéñÜò"
-
-#: ch/expr.c:2616
-#, fuzzy
-msgid "syntax error - missing operator, comma, or '('?"
-msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü ôïõ ðßíáêá ñåðåñôïñßïõ: %s"
-
-#: ch/expr.c:2977
-#, c-format
-msgid "unimplemented built-in function `%s'"
-msgstr ""
-
-#: ch/expr.c:2981
-#, fuzzy, c-format
-msgid "internal error - bad built-in function `%s'"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-
-#: ch/expr.c:2995
-msgid "empty expression in string index"
-msgstr ""
-
-#: ch/expr.c:3000
-msgid "only one expression allowed in string index"
-msgstr ""
-
-#: ch/expr.c:3017
-msgid "invalid: primval ( untyped_exprlist )"
-msgstr ""
-
-#: ch/expr.c:3081 ch/expr.c:3095
-msgid "operand is variable-size bitstring/power-set"
-msgstr ""
-
-#: ch/expr.c:3245
-#, c-format
-msgid "tree code `%s' unhandled in build_compare_set_expr"
-msgstr ""
-
-#: ch/expr.c:3410
-msgid "incompatible modes in concat expression"
-msgstr ""
-
-#: ch/expr.c:3459
-#, fuzzy
-msgid "invalid operation on array of chars"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ðáñáâïëÞò"
-
-#: ch/expr.c:3504
-msgid "comparison of variant structures is unsafe"
-msgstr ""
-
-#: ch/expr.c:3511
-msgid "compare with variant records"
-msgstr ""
-
-#: ch/expr.c:3688 ch/expr.c:3924
-#, fuzzy, c-format
-msgid "incompatible operands to %s"
-msgstr "RPC: Ìç óõìâáôÝò åêäüóåéò ôïõ RPC"
-
-#: ch/expr.c:3740
-msgid "relational operator not allowed for this mode"
-msgstr ""
-
-#: ch/expr.c:3794
-#, c-format
-msgid "cannot use %s operator on PROC mode variable"
-msgstr ""
-
-#: ch/expr.c:3800
-#, fuzzy, c-format
-msgid "invalid left operand of %s"
-msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
-
-#: ch/expr.c:3805 ch/expr.c:4357
-#, fuzzy, c-format
-msgid "invalid right operand of %s"
-msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
-
-#: ch/expr.c:3819
-msgid "repetition expression must be constant"
-msgstr ""
-
-#: ch/expr.c:3829
-msgid "left argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3834
-msgid "right argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3891
-msgid "right operand of IN is not a powerset"
-msgstr ""
-
-#: ch/expr.c:3896
-msgid "left operand of IN incompatible with right operand"
-msgstr ""
-
-#: ch/expr.c:3987
-msgid "-> operator not allow in constant expression"
-msgstr ""
-
-#: ch/expr.c:4000
-msgid "taking the address of a string literal is non-standard"
-msgstr ""
-
-#: ch/expr.c:4002
-msgid "taking the address of a function is non-standard"
-msgstr ""
-
-#: ch/expr.c:4005
-#, fuzzy
-msgid "ADDR requires a LOCATION argument"
-msgstr "ç åðéëïãÞ `-k' áðáéôåß Ýíá üñéóìá"
-
-#: ch/expr.c:4035
-#, fuzzy
-msgid "-> expression is not addressable"
-msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
-
-#: ch/expr.c:4062
-msgid "ADDR parameter must be a LOCATION"
-msgstr ""
-
-#: ch/expr.c:4071
-msgid "possible internal error in build_chill_arrow_expr"
-msgstr ""
-
-#: ch/expr.c:4076
-#, fuzzy, c-format
-msgid "%s is not addressable"
-msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-
-#: ch/expr.c:4175
-msgid "repetition count is not an integer constant"
-msgstr ""
-
-#: ch/expr.c:4183
-msgid "repetition count < 0"
-msgstr ""
-
-#: ch/expr.c:4188
-msgid "repetition value not constant"
-msgstr ""
-
-#: ch/expr.c:4200
-msgid "bitstring repetition of non-constant boolean"
-msgstr ""
-
-#: ch/expr.c:4223
-msgid "string repetition operand is non-constant bitstring"
-msgstr ""
-
-#: ch/expr.c:4283
-msgid "non-char, non-bit string repetition"
-msgstr ""
-
-#: ch/expr.c:4311
-#, fuzzy, c-format
-msgid "invalid operand of %s"
-msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-
-#: ch/expr.c:4322
-#, c-format
-msgid "right operand of %s is not array of boolean"
-msgstr ""
-
-#: ch/expr.c:4335
-#, c-format
-msgid "%s operator applied to boolean variable"
-msgstr ""
-
-#: ch/expr.c:4406
-msgid "non-boolean mode in conditional expression"
-msgstr ""
-
-#: ch/grant.c:1978
-msgid "decode_constant: invalid component_ref"
-msgstr ""
-
-#: ch/grant.c:1986
-msgid "decode_constant: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:1989
-msgid "decode_constant: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2214
-msgid "decode_constant_selective: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:2217
-msgid "decode_constant_selective: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2677
-#, fuzzy, c-format
-msgid "can't write to %s"
-msgstr "áäõíáìßá åããñáöÞò áðïôåëÝóìáôïò: %s"
-
-#: ch/grant.c:2764
-#, fuzzy
-msgid "FORBID is not yet implemented"
-msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-
-#. this nerver should happen
-#: ch/grant.c:2825
-#, c-format
-msgid "function \"really_grant_this\" called for `%s'"
-msgstr ""
-
-#: ch/inout.c:1645
-msgid "non-integral text length"
-msgstr ""
-
-#: ch/inout.c:1650
-msgid "non-constant text length"
-msgstr ""
-
-#: ch/inout.c:1655
-#, fuzzy
-msgid "text length must be greater than 0"
-msgstr "%s: ï áñéèìüò ãñáììÞò ðñÝðåé íá åßíáé ìåãáëýôåñïò áðü ôï ìçäÝí"
-
-#: ch/inout.c:1755
-#, c-format
-msgid "argument %d of %s must be of mode ASSOCIATION"
-msgstr ""
-
-#: ch/inout.c:1760 ch/inout.c:2146 ch/inout.c:2516 ch/inout.c:2751
-#, fuzzy, c-format
-msgid "argument %d of %s must be a location"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:1795
-#, fuzzy
-msgid "argument 2 of ASSOCIATE must not be an empty string"
-msgstr "%s: ç ôéìÞ ãéá ôï ðåäßï `%s' äåí ðñÝðåé íá åßíáé Ýíá êåíü áëöáñéèìçôéêü"
-
-#: ch/inout.c:1811
-#, fuzzy
-msgid "argument 2 to ASSOCIATE must be a string"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:1850
-#, fuzzy
-msgid "argument 3 to ASSOCIATE must be a string"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:2031
-#, fuzzy
-msgid "too many arguments in call to MODIFY"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: ch/inout.c:2044
-#, fuzzy
-msgid "argument 2 of MODIFY must not be an empty string"
-msgstr "%s: ç ôéìÞ ãéá ôï ðåäßï `%s' äåí ðñÝðåé íá åßíáé Ýíá êåíü áëöáñéèìçôéêü"
-
-#: ch/inout.c:2060
-#, fuzzy
-msgid "argument 2 to MODIFY must be a string"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:2094
-#, fuzzy
-msgid "argument 3 to MODIFY must be a string"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:2141
-#, c-format
-msgid "argument %d of %s must be an ACCESS or TEXT mode"
-msgstr ""
-
-#: ch/inout.c:2355
-msgid "argument 4 of CONNECT must be of mode WHERE"
-msgstr ""
-
-#: ch/inout.c:2371
-msgid "index expression for ACCESS without index"
-msgstr ""
-
-#: ch/inout.c:2376 ch/inout.c:2554 ch/inout.c:2636 ch/inout.c:4356
-#: ch/inout.c:4504
-#, fuzzy
-msgid "incompatible index mode"
-msgstr "ìç Ýãêõñï äéêáßùìá"
-
-#: ch/inout.c:2476
-msgid "argument 3 to CONNECT must be of mode USAGE"
-msgstr ""
-
-#: ch/inout.c:2511
-#, fuzzy, c-format
-msgid "argument %d of %s must be of mode ACCESS"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:2545
-#, fuzzy
-msgid "too few arguments in call to `readrecord'"
-msgstr "ðïëý ëßãá bytes óôçí êùäéêïðïßçóç ÷áñáêôÞñá"
-
-#: ch/inout.c:2569 ch/inout.c:2648
-#, fuzzy
-msgid "incompatible record mode"
-msgstr "ìçäåíéóìÝíç åããñáöÞ êáé ãñÜøéìï ðÜíù óå áõôÞ (truncated)"
-
-#: ch/inout.c:2574
-msgid "store location must not be READonly"
-msgstr ""
-
-#: ch/inout.c:2616
-#, fuzzy
-msgid "too few arguments in call to `writerecord'"
-msgstr "ðïëý ëßãá bytes óôçí êùäéêïðïßçóç ÷áñáêôÞñá"
-
-#: ch/inout.c:2643
-msgid "transfer to ACCESS without record mode"
-msgstr ""
-
-#: ch/inout.c:2746
-#, fuzzy, c-format
-msgid "argument %d of %s must be of mode TEXT"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:2803
-msgid "TEXT doesn't have a location"
-msgstr ""
-
-#: ch/inout.c:2905
-msgid "incompatible index mode for SETETEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2915
-msgid "incompatible record mode for SETTEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2945
-msgid "parameter 2 must be a location"
-msgstr ""
-
-#: ch/inout.c:2955
-msgid "incompatible modes in parameter 2"
-msgstr ""
-
-#: ch/inout.c:3062
-msgid "conditional expression not allowed in this context"
-msgstr ""
-
-#: ch/inout.c:3064
-#, c-format
-msgid "untyped expression as argument %d"
-msgstr ""
-
-#: ch/inout.c:3141 ch/inout.c:3187
-#, c-format
-msgid "cannot process %d bits integer for READTEXT argument %d"
-msgstr ""
-
-#: ch/inout.c:3262
-#, c-format
-msgid "cannot process %d bits integer WRITETEXT argument %d"
-msgstr ""
-
-#: ch/inout.c:3283 ch/inout.c:3338 ch/inout.c:3417 ch/inout.c:3483
-#: ch/inout.c:3534 ch/inout.c:3619 ch/inout.c:3654
-#, c-format
-msgid "argument %d is READonly"
-msgstr ""
-
-#: ch/inout.c:3290 ch/inout.c:3345 ch/inout.c:3424 ch/inout.c:3491
-#: ch/inout.c:3542 ch/inout.c:3627 ch/inout.c:3659
-#, fuzzy, c-format
-msgid "argument %d must be referable"
-msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
-
-#: ch/inout.c:3578
-#, c-format
-msgid "cannot process argument %d of WRITETEXT, unknown size"
-msgstr ""
-
-#. datatype is not yet implemented, issue a warning
-#: ch/inout.c:3725
-#, c-format
-msgid "cannot process mode of argument %d for %sTEXT"
-msgstr ""
-
-#: ch/inout.c:3868
-#, fuzzy
-msgid "too few arguments for this format string"
-msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-
-#: ch/inout.c:3893 ch/inout.c:3902
-#, c-format
-msgid "type of argument %d invalid for conversion code at offset %d"
-msgstr ""
-
-#: ch/inout.c:4012
-msgid "unmatched open paren"
-msgstr ""
-
-#: ch/inout.c:4026 ch/inout.c:4221
-#, c-format
-msgid "bad format specification character (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4039
-#, c-format
-msgid "repetition factor overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4057 ch/inout.c:4064 ch/inout.c:4071
-#, c-format
-msgid "duplicate qualifier (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4093
-#, c-format
-msgid "clause width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4106
-#, c-format
-msgid "no fraction (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4124
-#, c-format
-msgid "no fraction width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4131
-#, c-format
-msgid "fraction width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4142
-#, c-format
-msgid "no exponent (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4160
-#, c-format
-msgid "no exponent width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4167
-#, c-format
-msgid "exponent width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4208
-#, fuzzy
-msgid "internal error in check_format_string"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-
-# src/recode.c:171
-#: ch/inout.c:4224
-#, fuzzy, c-format
-msgid "no padding character (offset %d)"
-msgstr "ÊáíÝíáò ÷áñáêôÞñáò äåí ìåôáôñÝðåôáé óå %3d"
-
-#. too may arguments for format string
-#: ch/inout.c:4256
-#, fuzzy
-msgid "too many arguments for this format string"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá óå áõôü ôï áëöáñéèìçôéêü ìïñöÞò"
-
-#: ch/inout.c:4354 ch/inout.c:4502
-#, fuzzy
-msgid "missing index expression"
-msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
-
-#: ch/inout.c:4361
-msgid "too few arguments in call to `writetext'"
-msgstr ""
-
-#: ch/inout.c:4374
-msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location"
-msgstr ""
-
-#: ch/inout.c:4397
-msgid "`format string' for WRITETEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/inout.c:4509
-#, fuzzy
-msgid "too few arguments in call to `readtext'"
-msgstr "ðïëý ëßãá ïñßóìáôá"
-
-#: ch/inout.c:4522
-msgid "argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] expression"
-msgstr ""
-
-#: ch/inout.c:4543
-msgid "`format string' for READTEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/lang.c:105
-#, fuzzy
-msgid "non-constant expression"
-msgstr "Áäõíáìßá ðñïóðÝëáóçò ôïõ áñ÷åßïõ ôçò áëëáãÞò"
-
-#: ch/lang.c:191
-msgid "ignoring case upon input and"
-msgstr ""
-
-#: ch/lang.c:192
-msgid "making special words uppercase wouldn't work"
-msgstr ""
-
-#: ch/lang.c:203
-msgid "making special words uppercase and"
-msgstr ""
-
-#: ch/lang.c:204
-msgid " ignoring case upon input wouldn't work"
-msgstr ""
-
-#: ch/lang.c:277 java/typeck.c:178
-#, fuzzy
-msgid "internal error - use of undefined type"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-
-#: ch/lex.c:502
-#, fuzzy
-msgid "invalid C'xx' "
-msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC"
-
-#: ch/lex.c:607 java/jcf-parse.c:611 java/jcf-write.c:3376
-#, fuzzy, c-format
-msgid "can't close %s"
-msgstr "äåí åßíáé äõíáôü íá áëëá÷ôïýí ôá äéêáéþìáôá ôïõ `%s'"
-
-#: ch/lex.c:711
-msgid "malformed exponent part of floating-point literal"
-msgstr ""
-
-#: ch/lex.c:728
-msgid "real number exceeds range of REAL"
-msgstr ""
-
-#: ch/lex.c:747 ch/lex.c:774
-msgid "end-of-file in '<>' directive"
-msgstr ""
-
-#: ch/lex.c:780
-#, fuzzy
-msgid "unrecognized compiler directive"
-msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
-
-#: ch/lex.c:788 ch/lex.c:834
-#, fuzzy, c-format
-msgid "unrecognized compiler directive `%s'"
-msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
-
-#: ch/lex.c:995
-#, fuzzy
-msgid "unterminated control sequence"
-msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-
-#: ch/lex.c:1010 ch/lex.c:1046
-msgid "invalid integer literal in control sequence"
-msgstr ""
-
-#: ch/lex.c:1021 ch/lex.c:1029
-msgid "control sequence overflow"
-msgstr ""
-
-#: ch/lex.c:1023 ch/lex.c:1031
-#, fuzzy
-msgid "invalid control sequence"
-msgstr "ìç Ýãêõñï üíïìá ìÞíá"
-
-#: ch/lex.c:1111
-msgid "invalid base in read control sequence"
-msgstr ""
-
-#: ch/lex.c:1118
-msgid "invalid digit in control sequence"
-msgstr ""
-
-#: ch/lex.c:1145
-#, fuzzy
-msgid "unterminated string literal"
-msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-
-#: ch/lex.c:1248 ch/lex.c:1334
-#, fuzzy, c-format
-msgid "invalid number format `%s'"
-msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'"
-
-#: ch/lex.c:1266
-msgid "integer literal too big"
-msgstr ""
-
-#: ch/lex.c:1395
-#, fuzzy, c-format
-msgid "can't find %s"
-msgstr "Äåí åßíáé äõíáôüí íá åêôåëåóôåß ôï %s"
-
-#: ch/lex.c:1421
-msgid "USE_SEIZE_FILE directive must be followed by string"
-msgstr ""
-
-#: ch/lex.c:1693 f/lex.c:1190
-#, fuzzy
-msgid "invalid #ident"
-msgstr "ìç Ýãêõñï äéêáßùìá"
-
-#: ch/lex.c:1711 f/lex.c:1207
-#, fuzzy
-msgid "undefined or invalid # directive"
-msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
-
-#: ch/lex.c:1765 ch/lex.c:1774 f/lex.c:1263
-#, fuzzy
-msgid "invalid #line"
-msgstr "ìç Ýãêõñïò áñéèìüò"
-
-#: ch/lex.c:1843 f/lex.c:836
-msgid "#-lines for entering and leaving files don't match"
-msgstr ""
-
-#: ch/lex.c:1868 f/lex.c:1373
-#, fuzzy
-msgid "invalid #-line"
-msgstr "ìç Ýãêõñïò áñéèìüò"
-
-#: ch/lex.c:1998
-msgid "missing `=' in compiler directive"
-msgstr ""
-
-#: ch/lex.c:2040 ch/lex.c:2050 ch/lex.c:2091
-msgid "invalid value follows `=' in compiler directive"
-msgstr ""
-
-#: ch/lex.c:2061
-#, fuzzy, c-format
-msgid "invalid `%c' character in name"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ïíüìáôïò êëÜóçò"
-
-#: ch/lex.c:2074
-#, c-format
-msgid "`%s' not integer constant synonym "
-msgstr ""
-
-#: ch/lex.c:2097
-msgid "value out of range in compiler directive"
-msgstr ""
-
-#: ch/lex.c:2214 java/jcf-parse.c:607
-#, fuzzy, c-format
-msgid "can't reopen %s"
-msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-
-#: ch/lex.c:2225
-msgid "no modules seen"
-msgstr ""
-
-#: ch/loop.c:480
-msgid "modeless tuple not allowed in this context"
-msgstr ""
-
-#: ch/loop.c:482
-msgid "IN expression does not have a mode"
-msgstr ""
-
-#: ch/loop.c:489
-msgid "location enumeration for BOOLS"
-msgstr ""
-
-#: ch/loop.c:517
-msgid "location enumeration for bit-packed arrays"
-msgstr ""
-
-#: ch/loop.c:526 ch/nloop.c:481
-msgid "loop's IN expression is not a composite object"
-msgstr ""
-
-#: ch/loop.c:541 ch/nloop.c:498
-msgid "start expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:547 ch/nloop.c:504
-msgid "DO FOR start expression is a numbered SET"
-msgstr ""
-
-#: ch/loop.c:555 ch/nloop.c:510
-msgid "TO expression is a numbered SET"
-msgstr ""
-
-#: ch/loop.c:560 ch/nloop.c:525
-msgid "TO expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:565 ch/nloop.c:531
-msgid "start expr and TO expr must be compatible"
-msgstr ""
-
-#: ch/loop.c:574 ch/nloop.c:546
-msgid "BY expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:579 ch/nloop.c:552
-msgid "start expr and BY expr must be compatible"
-msgstr ""
-
-#: ch/loop.c:595 ch/nloop.c:765
-#, fuzzy
-msgid "loop identifier undeclared"
-msgstr "áíáìåíüôáí óôáèåñÜ Þ ðñïóäéïñéóôÞò"
-
-#: ch/loop.c:606
-msgid "loop variable incompatible with start expression"
-msgstr ""
-
-#: ch/loop.c:633 ch/nloop.c:564
-msgid "body of DO FOR will never execute"
-msgstr ""
-
-#: ch/loop.c:648 ch/nloop.c:585
-#, fuzzy
-msgid "BY expression is negative or zero"
-msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
-
-#: ch/loop.c:847 ch/nloop.c:817
-msgid "can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/nloop.c:867
-msgid "Can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/parse.c:159
-#, c-format
-msgid "there was no start label to match the end label '%s'"
-msgstr ""
-
-#: ch/parse.c:162
-#, fuzzy, c-format
-msgid "start label '%s' does not match end label '%s'"
-msgstr "ôï áñ÷åßï äåäïìÝíùí ðñïößë `%s' äåí ôáéñéÜæåé ìå ôï äéáìïéñáæüìåíï áíôéêåßìåíï `%s'"
-
-#: ch/parse.c:192
-#, fuzzy, c-format
-msgid "`%s' not declared"
-msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-
-#: ch/parse.c:226
-msgid "no RETURN or RESULT in procedure"
-msgstr ""
-
-#: ch/parse.c:245
-msgid "PREFIXED clause with no prelix in unlabeled module"
-msgstr ""
-
-#: ch/parse.c:336
-#, c-format
-msgid "internal parser error - expected token %d"
-msgstr ""
-
-#: ch/parse.c:529
-#, c-format
-msgid "'%s!' is not followed by an identifier"
-msgstr ""
-
-#: ch/parse.c:545
-#, fuzzy
-msgid "expected a name here"
-msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
-
-#: ch/parse.c:560
-#, fuzzy
-msgid "expected a name string here"
-msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
-
-#: ch/parse.c:591
-#, c-format
-msgid "`%s' undeclared"
-msgstr ""
-
-#: ch/parse.c:669
-msgid "action not allowed in SPEC MODULE"
-msgstr ""
-
-#: ch/parse.c:691
-#, fuzzy
-msgid "missing defining occurrence"
-msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-
-#: ch/parse.c:702
-msgid "bad defining occurrence following ','"
-msgstr ""
-
-#: ch/parse.c:802
-#, fuzzy
-msgid "missing '(' in exception list"
-msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-
-#: ch/parse.c:827
-msgid "ON exception names must be unique"
-msgstr ""
-
-#: ch/parse.c:837
-#, fuzzy
-msgid "syntax error in exception list"
-msgstr "óõíôáêôéêü óöÜëìá óôï ïñéóìü ôïõ %s: %s"
-
-#: ch/parse.c:873
-#, fuzzy
-msgid "empty ON-condition"
-msgstr "Åðåßãïõóá êáôÜóôáóç åéóüäïõ/åîüäïõ"
-
-#: ch/parse.c:938
-msgid "INIT not allowed at loc-identity declaration"
-msgstr ""
-
-#: ch/parse.c:948
-msgid "'=' used where ':=' is required"
-msgstr ""
-
-#: ch/parse.c:956
-msgid "initialization is not allowed in spec module"
-msgstr ""
-
-#: ch/parse.c:964
-msgid "loc-identity declaration without initialization"
-msgstr ""
-
-#: ch/parse.c:1008
-msgid "bad syntax following FORBID"
-msgstr ""
-
-#: ch/parse.c:1023
-msgid "expected a postfix name here"
-msgstr ""
-
-#: ch/parse.c:1068
-#, fuzzy
-msgid "expected another rename clause"
-msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
-
-#: ch/parse.c:1128
-#, fuzzy
-msgid "syntax error in parameter name list"
-msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí"
-
-#: ch/parse.c:1221
-msgid "NONREF specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1223
-msgid "DYNAMIC specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1245
-msgid "exception names must be unique"
-msgstr ""
-
-#: ch/parse.c:1441
-msgid "must specify a PROCESS name"
-msgstr ""
-
-#: ch/parse.c:1448
-msgid "SIGNAL must be in global reach"
-msgstr ""
-
-#: ch/parse.c:1479
-#, fuzzy
-msgid "syntax error while parsing signal definition statement"
-msgstr "óõíôáêôéêü óöÜëìá óôï ïñéóìü ôïõ %s: %s"
-
-#: ch/parse.c:1593
-msgid "case range list"
-msgstr ""
-
-#: ch/parse.c:1660
-msgid "misplaced colon in case label"
-msgstr ""
-
-#: ch/parse.c:1707
-msgid "unrecognized case label list after ','"
-msgstr ""
-
-#: ch/parse.c:1971 ch/parse.c:1997
-msgid "bad ASM operand"
-msgstr ""
-
-#: ch/parse.c:2067
-msgid "readonly location modified by 'asm'"
-msgstr ""
-
-#: ch/parse.c:2198
-msgid "expected 'TO' in step enumeration"
-msgstr ""
-
-#: ch/parse.c:2213
-msgid "expected 'IN' in FOR control here"
-msgstr ""
-
-#: ch/parse.c:2314
-msgid "missing DELAY CASE alternative"
-msgstr ""
-
-#. This is probably not possible
-#: ch/parse.c:2348
-msgid "non-referable location in DO WITH"
-msgstr ""
-
-#: ch/parse.c:2360
-msgid "WITH element must be of STRUCT mode"
-msgstr ""
-
-#: ch/parse.c:2467
-msgid "missing ')' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2481
-msgid "misplaced 'IN' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2529
-msgid "missing RECEIVE alternative"
-msgstr ""
-
-#: ch/parse.c:2655
-msgid "PROCESS copy number must be integer"
-msgstr ""
-
-#: ch/parse.c:2882
-msgid "missing parenthesis for procedure call"
-msgstr ""
-
-#: ch/parse.c:2884
-#, fuzzy
-msgid "expression is not an action"
-msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
-
-#: ch/parse.c:2918
-#, fuzzy
-msgid "syntax error in action"
-msgstr "óõíôáêôéêü óöÜëìá óôïí êáèïñéóìü óåéñÜò"
-
-#: ch/parse.c:2945
-msgid "no handler is permitted on this action"
-msgstr ""
-
-#: ch/parse.c:2966
-msgid "definition follows action"
-msgstr ""
-
-#: ch/parse.c:3042
-#, fuzzy
-msgid "bad tuple field name list"
-msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
-
-#: ch/parse.c:3088
-#, fuzzy
-msgid "invalid syntax for label in tuple"
-msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
-
-#: ch/parse.c:3133
-msgid "bad syntax in tuple"
-msgstr ""
-
-#: ch/parse.c:3160
-msgid "non-mode name before tuple"
-msgstr ""
-
-#: ch/parse.c:3205
-msgid "invalid expression/location syntax"
-msgstr ""
-
-#: ch/parse.c:3262
-msgid "RECEIVE expression"
-msgstr ""
-
-#: ch/parse.c:3457
-msgid "there should not be a ';' here"
-msgstr ""
-
-#: ch/parse.c:3496
-msgid "missing ELSE/ELSIF in IF expression"
-msgstr ""
-
-#: ch/parse.c:3547
-msgid "conditional expression not allowed inside parentheses"
-msgstr ""
-
-#: ch/parse.c:3551
-msgid "mode-less tuple not allowed inside parentheses"
-msgstr ""
-
-#. Z.200 doesn't allow mixed numbered and unnumbered set elements,
-#. but we can do it. Print a warning
-#: ch/parse.c:3664
-msgid "mixed numbered and unnumbered set elements is not standard"
-msgstr ""
-
-#: ch/parse.c:3667
-msgid "SET mode must define at least one named value"
-msgstr ""
-
-#: ch/parse.c:3766
-msgid "POS not allowed for ARRAY"
-msgstr ""
-
-#: ch/parse.c:3776
-msgid "STEP not allowed in field definition"
-msgstr ""
-
-#: ch/parse.c:3792
-#, fuzzy
-msgid "missing field name"
-msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
-
-#: ch/parse.c:3801
-msgid "bad field name following ','"
-msgstr ""
-
-#: ch/parse.c:3861
-msgid "expected ':' in structure variant alternative"
-msgstr ""
-
-#: ch/parse.c:3912
-#, fuzzy
-msgid "missing field"
-msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
-
-#: ch/parse.c:4060
+#: config/xtensa/xtensa.c:2038
#, fuzzy
-msgid "VARYING bit-strings not implemented"
-msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-
-#: ch/parse.c:4121
-msgid "strings must be composed of chars"
-msgstr ""
-
-#: ch/parse.c:4171
-msgid "BUFFER modes may not be readonly"
-msgstr ""
-
-#: ch/parse.c:4178
-msgid "EVENT modes may not be readonly"
-msgstr ""
+msgid "invalid address"
+msgstr "ÁêáôÜëëçëç ÷ñÞóç ôïõ äéáìïñöùôÞ äéåýèõíóçò"
-#: ch/parse.c:4198
+#: config/xtensa/xtensa.c:2063
#, fuzzy
-msgid "SIGNAL is not a valid mode"
-msgstr "ìç Ýãêõñï äéêáßùìá"
+msgid "no register in address"
+msgstr "ìç Ýãêõñïò ÷ñüíïò Ýíáñîçò"
-#: ch/parse.c:4235
+#: config/xtensa/xtensa.c:2071
#, fuzzy
-msgid "syntax error - missing mode"
-msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìïý locale ìçíýìáôïò"
-
-#: ch/parse.c:4282
-msgid "syntax error - expected a module or end of file"
-msgstr ""
-
-#: ch/satisfy.c:58
-#, c-format
-msgid " `%s', which depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:90
-#, c-format
-msgid "cycle: `%s' depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:92
-#, c-format
-msgid " `%s'"
-msgstr " `%s'"
-
-#: ch/satisfy.c:151
-msgid "SYN of this mode not allowed"
-msgstr ""
-
-#: ch/satisfy.c:156
-msgid "mode of SYN incompatible with value"
-msgstr ""
-
-#: ch/satisfy.c:167
-msgid "SYN value outside range of its mode"
-msgstr ""
-
-#: ch/satisfy.c:176
-msgid "INIT string too large for mode"
-msgstr ""
-
-#: ch/satisfy.c:195
-#, fuzzy, c-format
-msgid "value of %s is not a valid constant"
+msgid "address offset not a constant"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: ch/satisfy.c:226
-msgid "mode with non-value property in signal definition"
-msgstr ""
-
-#: ch/satisfy.c:403
-#, fuzzy, c-format
-msgid "undeclared identifier `%s'"
-msgstr "ìç Ýãêõñïò äçëùôÞò ðåäßïõ: `%s'"
-
-#: ch/satisfy.c:456
-msgid "RETURNS spec with invalid mode"
-msgstr ""
-
-#: ch/satisfy.c:520
-msgid "operand to REF is not a mode"
-msgstr ""
-
-#: ch/satisfy.c:554
-msgid "field with non-value mode in variant structure not allowed"
-msgstr ""
-
-#: ch/satisfy.c:593
-msgid "buffer element mode must not have non-value property"
-msgstr ""
-
-#: ch/satisfy.c:602
-msgid "recordmode must not have the non-value property"
-msgstr ""
-
-#: ch/tasking.c:170 ch/tasking.c:218
-#, c-format
-msgid "tasking code %ld out of range for `%s'"
-msgstr ""
-
-#: ch/tasking.c:284
-#, c-format
-msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
-msgstr ""
-
-#: ch/tasking.c:325
-msgid "PROCESS may only be declared at module level"
-msgstr ""
-
-#: ch/tasking.c:549
-#, c-format
-msgid "process name %s never declared"
-msgstr ""
-
-#: ch/tasking.c:554
-msgid "you may only START a process, not a proc"
-msgstr ""
-
-#: ch/tasking.c:590
-msgid "SET expression not a location"
-msgstr ""
-
-#: ch/tasking.c:595
-msgid "SET location must be INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:632
-#, fuzzy, c-format
-msgid "too many arguments to process `%s'"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: ch/tasking.c:635
-#, fuzzy
-msgid "too many arguments to process"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: ch/tasking.c:640
-#, fuzzy, c-format
-msgid "too few arguments to process `%s'"
-msgstr "ðïëý ëßãá ïñßóìáôá"
-
-#: ch/tasking.c:643
-#, fuzzy
-msgid "too few arguments to process"
-msgstr "ðïëý ëßãá ïñßóìáôá"
-
-#: ch/tasking.c:983
-msgid "COPY_NUMBER argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1007
-msgid "GEN_CODE argument must be a process or signal name"
-msgstr ""
-
-#: ch/tasking.c:1029
-#, fuzzy
-msgid "GEN_INST parameter 2 must be an integer mode"
-msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-
-#: ch/tasking.c:1050
-msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
-msgstr ""
-
-#: ch/tasking.c:1076
-#, fuzzy, c-format
-msgid "%s is not a declared process"
-msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-
-#: ch/tasking.c:1097
-msgid "PROC_TYPE argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1139
-msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location"
-msgstr ""
-
-#: ch/tasking.c:1289
-#, c-format
-msgid "SEND requires a SIGNAL; %s is not a SIGNAL name"
-msgstr ""
-
-#: ch/tasking.c:1314
-#, c-format
-msgid "too many values for SIGNAL `%s'"
-msgstr ""
-
-#: ch/tasking.c:1320
-#, c-format
-msgid "too few values for SIGNAL `%s'"
-msgstr ""
-
-#: ch/tasking.c:1398
-msgid "signal sent without priority"
-msgstr ""
-
-#: ch/tasking.c:1399 ch/tasking.c:2927
-#, fuzzy
-msgid " and no default priority was set."
-msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ç ðñïôåñáéüôçôá."
-
-#: ch/tasking.c:1400 ch/tasking.c:2777 ch/tasking.c:2928
-msgid " PRIORITY defaulted to 0"
-msgstr ""
-
-#: ch/tasking.c:1415
-msgid "SEND without a destination instance"
-msgstr ""
-
-#: ch/tasking.c:1416
-#, fuzzy
-msgid " and no destination process specified"
-msgstr "Áðáéôåßôáé äéåýèõíóç ðñïïñéóìïý"
-
-#: ch/tasking.c:1417
-msgid " for the signal"
-msgstr ""
-
-#. as our system doesn't allow that and Z.200 specifies it,
-#. we issue a warning
-#: ch/tasking.c:1436
-#, c-format
-msgid "SEND to ANY copy of process `%s'"
-msgstr ""
-
-#: ch/tasking.c:1441
-msgid "SEND TO must be an INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:1455
-msgid "SEND WITH must have a mode"
-msgstr ""
-
-#: ch/tasking.c:1724
-msgid "internal error: RECEIVE CASE stack invalid"
-msgstr ""
-
-#: ch/tasking.c:1764 ch/tasking.c:2492
-msgid "SET requires INSTANCE location"
-msgstr ""
-
-#: ch/tasking.c:1843
-msgid "SIGNAL in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1844
-#, c-format
-msgid " a BUFFER name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1852
-#, c-format
-msgid "SIGNAL `%s' has no data fields"
-msgstr ""
-
-#: ch/tasking.c:1857
-#, c-format
-msgid "SIGNAL `%s' requires data fields"
-msgstr ""
-
-#: ch/tasking.c:1921
-#, c-format
-msgid "too few data fields provided for `%s'"
-msgstr ""
-
-#: ch/tasking.c:1924
-#, c-format
-msgid "too many data fields provided for `%s'"
-msgstr ""
-
-#: ch/tasking.c:1947
-msgid "BUFFER in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1948
-#, c-format
-msgid " a SIGNAL name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1956
-msgid "BUFFER in RECEIVE CASE alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:1962
-msgid "buffer receive alternative requires only 1 defining occurrence"
-msgstr ""
-
-#: ch/tasking.c:2043
-msgid "incompatible modes in receive buffer alternative"
-msgstr ""
-
-#: ch/tasking.c:2049
-msgid "defining occurrence in receive buffer alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:2086
-msgid "buffer receive alternative without `IN location'"
-msgstr ""
-
-#: ch/tasking.c:2092
-msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location"
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
msgstr ""
-#: ch/tasking.c:2331
-msgid "RECEIVE CASE without alternatives"
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
msgstr ""
-#: ch/tasking.c:2369
-msgid "CONTINUE requires an event location"
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
msgstr ""
-#: ch/tasking.c:2503 ch/tasking.c:2939
-msgid "PRIORITY must be of integer type"
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
msgstr ""
-#: ch/tasking.c:2581
-msgid "delay alternative must be an EVENT location"
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
msgstr ""
-#: ch/tasking.c:2636
-msgid "DELAY CASE without alternatives"
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
msgstr ""
-#: ch/tasking.c:2756
-msgid "DELAY action requires an event location"
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
msgstr ""
-#: ch/tasking.c:2767
-msgid "PRIORITY in DELAY action must be of integer type"
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
msgstr ""
-#: ch/tasking.c:2776
-msgid "DELAY action without priority."
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
msgstr ""
-#: ch/tasking.c:2867
-msgid "send buffer action requires a BUFFER location"
-msgstr ""
-
-#: ch/tasking.c:2884
-msgid "there must be only 1 value for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2905
-msgid "convert failed for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2911
-msgid "incompatible modes in send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2926
-msgid "buffer sent without priority"
-msgstr ""
-
-#: ch/tasking.c:2945
-msgid "WITH not allowed for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2950
-msgid "TO not allowed for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:3093
-#, c-format
-msgid "SEND requires a BUFFER; `%s' is not a BUFFER name"
-msgstr ""
-
-#: ch/tasking.c:3234
-msgid "non-integral max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3239
-msgid "non-constant max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3246
-msgid "max queue_size for EVENT/BUFFER is not positive"
-msgstr ""
-
-#: ch/timing.c:224
-msgid "absolute time value must be of mode TIME"
-msgstr ""
-
-#: ch/timing.c:281 ch/timing.c:364
-msgid "duration primitive value must be of mode DURATION"
-msgstr ""
-
-#: ch/tree.c:58
-msgid "string length > UPPER (UINT)"
-msgstr ""
-
-#: ch/tree.c:112
-msgid "can only build a powerset from a discrete mode"
-msgstr ""
-
-#: ch/tree.c:124
-msgid "non-constant bitstring size invalid"
-msgstr ""
-
-#: ch/tree.c:126
-msgid "non-constant powerset size invalid"
-msgstr ""
-
-#: ch/typeck.c:83
-msgid "array or string index is a mode (instead of a value)"
-msgstr ""
-
-#: ch/typeck.c:114
-msgid "index is not an integer expression"
-msgstr ""
-
-#: ch/typeck.c:122
-msgid "index not compatible with index mode"
-msgstr ""
-
-#. should never happen
-#: ch/typeck.c:132
-msgid "index is not discrete"
-msgstr ""
-
-#: ch/typeck.c:196
-msgid "possible internal error - slice argument is neither referable nor constant"
-msgstr ""
-
-#: ch/typeck.c:285
-msgid "bit array slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:325
-msgid "bitstring slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:338
-msgid "slice operation on non-array, non-bitstring value not supported"
-msgstr ""
-
-#: ch/typeck.c:390 ch/typeck.c:441
-msgid "can only take slice of array or string"
-msgstr ""
-
-#: ch/typeck.c:455
-msgid "slice length is not an integer"
-msgstr ""
-
-#: ch/typeck.c:488
-#, fuzzy
-msgid "slice length out-of-range"
-msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-
-#: ch/typeck.c:543
-#, fuzzy
-msgid "too many index expressions"
-msgstr "õðåñâïëéêÜ ðïëëÜ äåõôåñüëåðôá áíáðÞäçóçò"
-
-#: ch/typeck.c:595
-msgid "array index is not discrete"
-msgstr ""
-
-#: ch/typeck.c:675
-msgid "invalid compound index for bitstring mode"
-msgstr ""
-
-#: ch/typeck.c:1079
-msgid "conversions from variable_size value"
-msgstr ""
-
-#: ch/typeck.c:1084
-msgid "conversions to variable_size mode"
-msgstr ""
-
-#: ch/typeck.c:1098
-#, fuzzy
-msgid "cannot convert to float"
-msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
-
-#: ch/typeck.c:1103
-#, fuzzy
-msgid "cannot convert float to this mode"
-msgstr "yp_update: áäõíáìßá ìåôáôñïðÞò ïíüìáôïò óõóôÞìáôïò óå üíïìá äéêôýïõ\n"
-
-#: ch/typeck.c:1130
-msgid "OVERFLOW in expression conversion"
-msgstr ""
-
-#: ch/typeck.c:1159
-msgid "overflow (not inside function)"
-msgstr ""
-
-#: ch/typeck.c:1161
-msgid "possible overflow (not inside function)"
-msgstr ""
-
-#: ch/typeck.c:1166
-msgid "expression will always cause OVERFLOW"
-msgstr ""
-
-#: ch/typeck.c:1199
-msgid "not implemented: constant conversion from that kind of expression"
-msgstr ""
-
-#: ch/typeck.c:1205
-msgid "not implemented: constant conversion to that kind of mode"
-msgstr ""
-
-#: ch/typeck.c:1216
-msgid "non-standard, non-portable value conversion"
-msgstr ""
-
-#: ch/typeck.c:1222
-msgid "location conversion between differently-sized modes"
-msgstr ""
-
-#: ch/typeck.c:1224
-msgid "unsupported value conversion"
-msgstr ""
-
-#: ch/typeck.c:1272
-msgid "operand to bin must be a non-negative integer literal"
-msgstr ""
-
-#: ch/typeck.c:1288
-#, c-format
-msgid "size %d of BIN too big - no such integer mode"
-msgstr ""
-
-#: ch/typeck.c:1302
-msgid "BIN in pass 2"
-msgstr ""
-
-#: ch/typeck.c:1335
-msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET"
-msgstr ""
-
-#: ch/typeck.c:2108
-#, fuzzy
-msgid "internal error in chill_root_resulting_mode"
-msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-
-#: ch/typeck.c:2367
-msgid "string lengths not equal"
-msgstr ""
-
-#: ch/typeck.c:2382
-msgid "can't do ARRAY assignment - too large"
-msgstr ""
-
-#: ch/typeck.c:2400
-msgid "rhs of array assignment is not addressable"
-msgstr ""
-
-#: ch/typeck.c:2577
-msgid "non-constant expression for BIN"
-msgstr ""
-
-#: ch/typeck.c:2582
-msgid "expression for BIN must not be negative"
-msgstr ""
-
-#: ch/typeck.c:2587
-#, fuzzy
-msgid "cannot process BIN (>32)"
-msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ."
-
-#: ch/typeck.c:2603
-msgid "bounds of range are not compatible"
-msgstr ""
-
-#: ch/typeck.c:2612
-#, fuzzy
-msgid "negative string length"
-msgstr "åëÜ÷éóôï ìÝãåèïò áëöáñéèìçôéêïý"
-
-#: ch/typeck.c:2649
-msgid "range's lower bound and parent mode don't match"
-msgstr ""
-
-#: ch/typeck.c:2654
-msgid "range's upper bound and parent mode don't match"
-msgstr ""
-
-#: ch/typeck.c:2663
-msgid "making range from non-mode"
-msgstr ""
-
-#: ch/typeck.c:2669
-#, fuzzy
-msgid "floating point ranges"
-msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
-
-#: ch/typeck.c:2677
-msgid "range mode has non-constant limits"
-msgstr ""
-
-#: ch/typeck.c:2686
-msgid "range's high bound < mode's low bound"
-msgstr ""
-
-#: ch/typeck.c:2691
-msgid "range's high bound > mode's high bound"
-msgstr ""
-
-#: ch/typeck.c:2696
-msgid "range mode high bound < range mode low bound"
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
msgstr ""
-#: ch/typeck.c:2701
-msgid "range's low bound < mode's low bound"
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
msgstr ""
-#: ch/typeck.c:2706
-msgid "range's low bound > mode's high bound"
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
msgstr ""
-#: ch/typeck.c:2814
-msgid "stepsize in STEP must be an integer constant"
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
msgstr ""
-#: ch/typeck.c:2818
-msgid "stepsize in STEP must be > 0"
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
msgstr ""
-#: ch/typeck.c:2824
-msgid "stepsize in STEP must be the natural width of the array element mode"
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
msgstr ""
-#: ch/typeck.c:2830 ch/typeck.c:3131
+#: config/xtensa/xtensa.h:146
#, fuzzy
-msgid "starting word in POS must be an integer constant"
-msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-
-#: ch/typeck.c:2834 ch/typeck.c:3138
-msgid "starting word in POS must be >= 0"
-msgstr ""
-
-#: ch/typeck.c:2836
-msgid "starting word in POS within STEP must be 0"
-msgstr ""
-
-#: ch/typeck.c:2848 ch/typeck.c:3155
-msgid "starting bit in POS must be an integer constant"
-msgstr ""
+msgid "Use the Xtensa boolean register option"
+msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
-#: ch/typeck.c:2854
-msgid "starting bit in POS within STEP must be 0"
+#: config/xtensa/xtensa.h:148
+msgid "Do not use the Xtensa boolean register option"
msgstr ""
-#: ch/typeck.c:2858 ch/typeck.c:3163
-msgid "starting bit in POS must be >= 0"
+#: config/xtensa/xtensa.h:150
+msgid "Use the Xtensa floating-point unit"
msgstr ""
-#: ch/typeck.c:2866 ch/typeck.c:3171
-msgid "starting bit in POS must be < the width of a word"
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
msgstr ""
-#: ch/typeck.c:2880 ch/typeck.c:3185
-#, fuzzy
-msgid "length in POS must be an integer constant"
-msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-
-#: ch/typeck.c:2887 ch/typeck.c:3192
-msgid "length in POS must be > 0"
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: ch/typeck.c:2894 ch/typeck.c:3205
-#, fuzzy
-msgid "end bit in POS must be an integer constant"
-msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
-
-#: ch/typeck.c:2903 ch/typeck.c:3214
-msgid "end bit in POS must be >= the start bit"
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: ch/typeck.c:2909 ch/typeck.c:3219
-msgid "end bit in POS must be < the width of a word"
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
msgstr ""
-#: ch/typeck.c:2921
-msgid "the length specified on POS within STEP must be the natural length of the array element type"
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
msgstr ""
-#: ch/typeck.c:2926
-msgid "step size in STEP must be >= the length in POS"
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
msgstr ""
-#: ch/typeck.c:2952
-msgid "array index must be a range, not a single integer"
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
msgstr ""
-#: ch/typeck.c:2958
-msgid "array index is not a discrete mode"
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
msgstr ""
-#: ch/typeck.c:3229
-msgid "the length specified on POS must be the natural length of the field type"
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
msgstr ""
-#: ch/typeck.c:3238
-msgid "STRUCT fields must be layed out in monotonically increasing order"
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
msgstr ""
-#: ch/typeck.c:3301
-msgid "if one field has a POS layout, then all fields must have a POS layout"
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ch/typeck.c:3444
-msgid "parameterized structures not implemented"
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
msgstr ""
-#: ch/typeck.c:3449
-#, fuzzy
-msgid "invalid parameterized type"
-msgstr "%s: ìç Ýãêõñï åßäïò áñ÷åßïõ"
-
-#: cp/call.c:270 cp/init.c:1637
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr ""
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr ""
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr ""
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr ""
-#: cp/call.c:394
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:527
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr ""
-#: cp/call.c:534
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr ""
-#: cp/call.c:2343
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+# src/getopt.c:628
+# src/getopt.c:628
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2348
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2352
+#: cp/call.c:2546
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2356
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2358
+#: cp/call.c:2552
msgid "%s %+#D%s"
msgstr ""
-#: cp/call.c:2515
-msgid "no viable candidates"
-msgstr ""
-
-#: cp/call.c:2529
+#: cp/call.c:2726
#, fuzzy
msgid "conversion from `%T' to `%T' is ambiguous"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/call.c:2646
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr ""
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'"
+
+#: cp/call.c:2933
msgid "no matching function for call to `%D(%A)'"
msgstr ""
-#: cp/call.c:2657 cp/call.c:4642
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2684
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2753
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr ""
# src/getopt.c:813
# src/getopt.c:813
-#: cp/call.c:2763
+#: cp/call.c:3046
#, fuzzy
msgid "call of `(%T) (%A)' is ambiguous"
msgstr "%s: ç åðéëïãÞ `-W %s' åßíáé äéöïñïýìåíç\n"
-#: cp/call.c:2798
-msgid "%s for `%T ? %T : %T' operator"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
msgstr ""
-#: cp/call.c:2803
-msgid "%s for `%T %s' operator"
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
msgstr ""
-#: cp/call.c:2806
-msgid "%s for `%T [%T]' operator"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/call.c:2811
-msgid "%s for `%T %s %T' operator"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
msgstr ""
-#: cp/call.c:2814
-msgid "%s for `%s %T' operator"
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
msgstr ""
-#: cp/call.c:2906
+#: cp/call.c:3191
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:2965
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr ""
-#: cp/call.c:2998 cp/call.c:3198
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3151
+#: cp/call.c:3428
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr ""
-#: cp/call.c:3158
+#: cp/call.c:3435
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3239
+#: cp/call.c:3516
msgid "`%D' must be declared before use"
msgstr ""
-#: cp/call.c:3402
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr ""
-#: cp/call.c:3449
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr ""
-#: cp/call.c:3451
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr ""
-#: cp/call.c:3478
+#: cp/call.c:3782
msgid "comparison between `%#T' and `%#T'"
msgstr ""
-#: cp/call.c:3711
+#: cp/call.c:4021
msgid "no suitable `operator delete' for `%T'"
msgstr ""
-#: cp/call.c:3730
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr ""
-#: cp/call.c:3732
+#: cp/call.c:4042
msgid "`%+#D' is protected"
msgstr ""
-#: cp/call.c:3734
+#: cp/call.c:4044
#, fuzzy
msgid "`%+#D' is inaccessible"
msgstr "ôï `%s' åßíáé ìç-ðñïóðåëÜóéìï"
-#: cp/call.c:3735
+#: cp/call.c:4045
msgid "within this context"
msgstr ""
-#: cp/call.c:3777
+#: cp/call.c:4088
#, fuzzy
msgid "invalid conversion from `%T' to `%T'"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/call.c:3779 cp/call.c:3918 cp/call.c:3920
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
#, fuzzy
msgid " initializing argument %P of `%D'"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
-#: cp/call.c:3842 cp/call.c:3846
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr ""
-#: cp/call.c:3852 cp/call.c:3855
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:3989
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4014
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr ""
-#: cp/call.c:4156
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr ""
-#: cp/call.c:4404
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
+
+#: cp/call.c:4786
msgid "could not find class$ field in java interface type `%T'"
msgstr ""
-#: cp/call.c:4505 cp/typeck.c:2071
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr ""
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "Äåí âñÝèçêáí URL óôï %s.\n"
-#: cp/call.c:4631
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr ""
-#: cp/call.c:4655
-msgid "abstract virtual `%#D' called from constructor"
-msgstr ""
-
-#: cp/call.c:4656
-msgid "abstract virtual `%#D' called from destructor"
-msgstr ""
-
-#: cp/call.c:4661
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
msgstr ""
-#: cp/call.c:5274
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr ""
-#: cp/call.c:5276 cp/decl2.c:4496
+#: cp/call.c:5706 cp/decl2.c:4154
#, fuzzy
msgid " in call to `%D'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/call.c:5325 cp/call.c:5450
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr ""
-#: cp/call.c:5326
+#: cp/call.c:5756
#, fuzzy
msgid " for conversion from `%T' to `%T'"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/call.c:5328
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:5452
-msgid " because worst conversion for the former is better than worst conversion for the latter"
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
msgstr ""
-#: cp/call.c:5568 cp/call.c:5589
+#: cp/call.c:5996
#, fuzzy
msgid "could not convert `%E' to `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/class.c:286
-msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
msgstr ""
-#: cp/class.c:1012
-msgid "`%#D' and `%#D' cannot be overloaded"
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
msgstr ""
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1023
-msgid "`%D' has already been declared in `%T'"
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr ""
-#: cp/class.c:1104
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr ""
+
+#: cp/class.c:1076
#, fuzzy
msgid "duplicate enum value `%D'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: cp/class.c:1107
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr ""
-#: cp/class.c:1114
+#: cp/class.c:1086
#, fuzzy
msgid "duplicate nested type `%D'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: cp/class.c:1125
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr ""
-#: cp/class.c:1129
+#: cp/class.c:1101
#, fuzzy
msgid "duplicate member `%D'"
msgstr "äéðëüò áñéèìüò ìçíýìáôïò"
-#: cp/class.c:1172
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr ""
-#: cp/class.c:1174
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr ""
-#: cp/class.c:1217
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr ""
-#: cp/class.c:1223
+#: cp/class.c:1199
#, fuzzy
msgid "`%D' invalid in `%T'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/class.c:1231
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr ""
-#: cp/class.c:1263 cp/class.c:1271
+#: cp/class.c:1239 cp/class.c:1247
#, fuzzy
msgid "`%D' invalid in `%#T'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/class.c:1264
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr ""
-#: cp/class.c:1272
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr ""
-#: cp/class.c:1344
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1364
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr ""
-#: cp/class.c:1950
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr ""
-#: cp/class.c:1964
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:2007
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:2128 cp/class.c:5045
+#: cp/class.c:2090 cp/class.c:5276
#, fuzzy
msgid "redefinition of `%#T'"
msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
-#: cp/class.c:2129
+#: cp/class.c:2091
#, fuzzy
msgid "previous definition of `%#T'"
msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
-#: cp/class.c:2459
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2841
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr ""
-#: cp/class.c:2842
+#: cp/class.c:2713
msgid " by `%D'"
-msgstr ""
+msgstr " êáôÜ `%D'"
-#: cp/class.c:2884
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr ""
-#: cp/class.c:2889 cp/decl2.c:1898
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2895 cp/decl2.c:1904
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:2898 cp/decl2.c:1906
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:3050
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
msgid "bit-field `%#D' with non-integral type"
msgstr ""
-#: cp/class.c:3070
+#: cp/class.c:2978
msgid "bit-field `%D' width not an integer constant"
msgstr ""
-#: cp/class.c:3076
+#: cp/class.c:2984
#, fuzzy
msgid "negative width in bit-field `%D'"
msgstr "Áñíçôéêü ðëÜôïò óôçí áðïôßìçóç"
-#: cp/class.c:3081
+#: cp/class.c:2989
msgid "zero width for bit-field `%D'"
msgstr ""
-#: cp/class.c:3087
+#: cp/class.c:2995
msgid "width of `%D' exceeds its type"
msgstr ""
-#: cp/class.c:3096
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr ""
-#: cp/class.c:3179
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr ""
-#: cp/class.c:3182
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr ""
-#: cp/class.c:3185
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:3212
+#: cp/class.c:3121
msgid "multiple fields in union `%T' initialized"
msgstr ""
-#: cp/class.c:3333
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr ""
-#: cp/class.c:3339
+#: cp/class.c:3240
msgid "field `%D' invalidly declared function type"
msgstr ""
-#: cp/class.c:3346
+#: cp/class.c:3247
msgid "field `%D' invalidly declared method type"
msgstr ""
-#: cp/class.c:3352
+#: cp/class.c:3253
msgid "field `%D' invalidly declared offset type"
msgstr ""
#. Unions cannot have static members.
-#: cp/class.c:3370
+#: cp/class.c:3271
msgid "field `%D' declared static in union"
msgstr ""
-#: cp/class.c:3396
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3427
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3442
+#: cp/class.c:3349
#, fuzzy
msgid "field `%#D' with same name as class"
msgstr "ÕðÜñ÷åé áíôéêåßìåíï ìå ôï ßäéï üíïìá"
-#: cp/class.c:3460
+#: cp/class.c:3367
msgid "`%#T' has pointer data members"
msgstr ""
-#: cp/class.c:3464
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr ""
-#: cp/class.c:3466
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3469
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3937
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
msgid "initializer specified for non-virtual method `%D'"
msgstr ""
-#: cp/class.c:4721
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4791
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/class.c:5208
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5292
+#: cp/class.c:5516
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5749
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr ""
-#: cp/class.c:5845
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr ""
-#: cp/class.c:5966
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr ""
-#: cp/class.c:5989
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr ""
-#: cp/class.c:6015
+#: cp/class.c:6252
msgid "assuming pointer to member `%D'"
msgstr ""
-#: cp/class.c:6018
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
msgstr ""
-#: cp/class.c:6062 cp/class.c:6230 cp/class.c:6237
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
#, fuzzy
msgid "not enough type information"
msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ"
-#: cp/class.c:6071
+#: cp/class.c:6315
msgid "argument of type `%T' does not match `%T'"
msgstr ""
-#: cp/class.c:6214
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -16043,12 +14428,12 @@ msgstr ""
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6465 cp/decl.c:1030 cp/decl.c:3178 cp/pt.c:1839
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
#, fuzzy
msgid "declaration of `%#D'"
msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
-#: cp/class.c:6466
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr ""
@@ -16066,212 +14451,251 @@ msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
msgid "converting from `%T' to `%T'"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr ""
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
#, fuzzy
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
+
+#: cp/cvt.c:504
#, fuzzy
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/cvt.c:543
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
msgstr ""
-#: cp/cvt.c:572
+#: cp/cvt.c:551
#, fuzzy
msgid "cannot convert type `%T' to type `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/cvt.c:689
+#: cp/cvt.c:683
#, fuzzy
msgid "conversion from `%#T' to `%#T'"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr ""
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:793
+#: cp/cvt.c:779
#, fuzzy
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
-#: cp/cvt.c:878
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:881
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:897
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr ""
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:917
+#: cp/cvt.c:904
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr ""
#. Only warn when there is no &.
-#: cp/cvt.c:922
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr ""
-#: cp/cvt.c:1060
+#: cp/cvt.c:1039
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1136
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
msgstr ""
-#: cp/cvt.c:1138
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr ""
-#: cp/decl.c:1031 cp/decl.c:3278
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
msgid "conflicts with previous declaration `%#D'"
msgstr ""
-#: cp/decl.c:1220
+#: cp/decl.c:1467
msgid "label `%D' used but not defined"
msgstr ""
-#: cp/decl.c:1225
+#: cp/decl.c:1472
msgid "label `%D' defined but not used"
msgstr ""
-#: cp/decl.c:2305
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr ""
-#: cp/decl.c:3088 cp/decl.c:3476
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
msgid "previous declaration of `%D'"
msgstr ""
-#: cp/decl.c:3165 cp/decl.c:3200
+#: cp/decl.c:3366 cp/decl.c:3404
msgid "shadowing %s function `%#D'"
msgstr ""
-#: cp/decl.c:3174
+#: cp/decl.c:3375
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr ""
-#: cp/decl.c:3179
+#: cp/decl.c:3380
msgid "conflicts with built-in declaration `%#D'"
msgstr ""
-#: cp/decl.c:3195 cp/decl.c:3288 cp/decl.c:3304
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
msgid "new declaration `%#D'"
msgstr ""
-#: cp/decl.c:3196
+#: cp/decl.c:3400
msgid "ambiguates built-in declaration `%#D'"
msgstr ""
-#: cp/decl.c:3252
+#: cp/decl.c:3464
msgid "`%#D' redeclared as different kind of symbol"
msgstr ""
-#: cp/decl.c:3255
+#: cp/decl.c:3467
msgid "previous declaration of `%#D'"
msgstr ""
-#: cp/decl.c:3277
+#: cp/decl.c:3489
msgid "declaration of template `%#D'"
msgstr ""
-#: cp/decl.c:3289 cp/decl.c:3305
+#: cp/decl.c:3505 cp/decl.c:3521
msgid "ambiguates old declaration `%#D'"
msgstr ""
-#: cp/decl.c:3297
+#: cp/decl.c:3513
msgid "declaration of C function `%#D' conflicts with"
msgstr ""
-#: cp/decl.c:3299
+#: cp/decl.c:3515
msgid "previous declaration `%#D' here"
msgstr ""
-#: cp/decl.c:3315
+#: cp/decl.c:3533
msgid "conflicting types for `%#D'"
msgstr ""
-#: cp/decl.c:3316
+#: cp/decl.c:3534
msgid "previous declaration as `%#D'"
msgstr ""
-#: cp/decl.c:3359
+#: cp/decl.c:3577
msgid "`%#D' previously defined here"
msgstr ""
-#: cp/decl.c:3360
+#: cp/decl.c:3578
#, fuzzy
msgid "`%#D' previously declared here"
msgstr "Äåí õðÜñ÷åé ðñïçãïýìåíç êáíïíéêÞ Ýêöñáóç"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3368
+#: cp/decl.c:3587
msgid "prototype for `%#D'"
msgstr ""
-#: cp/decl.c:3369
+#: cp/decl.c:3588
msgid "follows non-prototype definition here"
msgstr ""
-#: cp/decl.c:3381
+#: cp/decl.c:3600
msgid "previous declaration of `%#D' with %L linkage"
msgstr ""
-#: cp/decl.c:3383
+#: cp/decl.c:3602
msgid "conflicts with new declaration with %L linkage"
msgstr ""
-#: cp/decl.c:3408 cp/decl.c:3416
+#: cp/decl.c:3625 cp/decl.c:3632
msgid "default argument given for parameter %d of `%#D'"
msgstr ""
-#: cp/decl.c:3410 cp/decl.c:3418
+#: cp/decl.c:3627 cp/decl.c:3634
#, fuzzy
msgid "after previous specification in `%#D'"
msgstr "%s: Ìç Ýãêõñç ñýèìéóç `%s'.\n"
-#: cp/decl.c:3427
+#: cp/decl.c:3643
msgid "`%#D' was used before it was declared inline"
msgstr ""
-#: cp/decl.c:3429
+#: cp/decl.c:3645
msgid "previous non-inline declaration here"
msgstr ""
-#: cp/decl.c:3475
+#: cp/decl.c:3699
msgid "redundant redeclaration of `%D' in same scope"
msgstr ""
-#: cp/decl.c:3558
+#: cp/decl.c:3780
+#, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr ""
-#: cp/decl.c:3560
+#: cp/decl.c:3782
+#, c-format
msgid "than previous declaration `%F'"
msgstr ""
@@ -16283,15 +14707,15 @@ msgstr ""
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3685
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr ""
-#: cp/decl.c:3930
+#: cp/decl.c:4187
msgid "`%#D' used prior to declaration"
msgstr ""
-#: cp/decl.c:3961
+#: cp/decl.c:4218
msgid "redeclaration of `wchar_t' as `%T'"
msgstr ""
@@ -16301,873 +14725,922 @@ msgstr ""
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:3989
+#: cp/decl.c:4246
#, fuzzy
msgid "invalid redeclaration of `%D'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/decl.c:3990
+#: cp/decl.c:4247
msgid "as `%D'"
msgstr ""
-#: cp/decl.c:4080
+#: cp/decl.c:4337
msgid "previous external decl of `%#D'"
msgstr ""
-#: cp/decl.c:4121
+#: cp/decl.c:4378
msgid "`%D' was previously implicitly declared to return `int'"
msgstr ""
-#: cp/decl.c:4181
+#: cp/decl.c:4438
msgid "extern declaration of `%#D' doesn't match"
msgstr ""
-#: cp/decl.c:4182
+#: cp/decl.c:4439
msgid "global declaration `%#D'"
msgstr ""
-#: cp/decl.c:4213
+#: cp/decl.c:4472
msgid "declaration of `%#D' shadows a parameter"
msgstr ""
-#: cp/decl.c:4233
+#: cp/decl.c:4492
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
msgstr ""
-#: cp/decl.c:4598
+#: cp/decl.c:4889
#, fuzzy
msgid "`%#D' hides constructor for `%#T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/decl.c:4613
+#: cp/decl.c:4904
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr ""
-#: cp/decl.c:4625
+#: cp/decl.c:4916
msgid "previous non-function declaration `%#D'"
msgstr ""
-#: cp/decl.c:4626
+#: cp/decl.c:4917
msgid "conflicts with function declaration `%#D'"
msgstr ""
-#: cp/decl.c:4716
+#: cp/decl.c:5007
msgid "implicit declaration of function `%#D'"
msgstr "áõôïíüçôç äéáêýñçîç ôçò óõíÜñôçóçò `%#D'"
-#: cp/decl.c:4874
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr ""
-#: cp/decl.c:4977 cp/decl.c:5001 cp/decl.c:5094
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
msgid "jump to label `%D'"
msgstr ""
-#: cp/decl.c:4979 cp/decl.c:5003
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:4987
+#: cp/decl.c:5280
msgid " crosses initialization of `%#D'"
msgstr ""
-#: cp/decl.c:4990 cp/decl.c:5110
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr ""
-#: cp/decl.c:5010 cp/decl.c:5114
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:5012 cp/decl.c:5106 cp/decl.c:5116
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:5095
+#: cp/decl.c:5388
msgid " from here"
msgstr ""
-#: cp/decl.c:5108
+#: cp/decl.c:5401
msgid " skips initialization of `%#D'"
msgstr ""
-#: cp/decl.c:5143
+#: cp/decl.c:5437
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:5147
+#: cp/decl.c:5440
#, fuzzy
msgid "duplicate label `%D'"
msgstr "äéðëü êëåéäß"
-#: cp/decl.c:5232
+#: cp/decl.c:5525
#, c-format
msgid "case label `%E' not within a switch statement"
msgstr ""
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5365 cp/decl.c:5385
+#: cp/decl.c:5704 cp/decl.c:5723
msgid "`%#D' redeclared as %C"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5474 cp/typeck.c:2033
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
#, fuzzy
msgid "invalid use of `%D'"
msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'."
-#: cp/decl.c:5515
+#: cp/decl.c:5852
#, fuzzy
msgid "`%D::%D' is not a template"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/decl.c:5527
+#: cp/decl.c:5869
msgid "`%D' undeclared in namespace `%D'"
msgstr ""
-#: cp/decl.c:5661
+#: cp/decl.c:6002
msgid "`%D' used without template parameters"
msgstr ""
-#: cp/decl.c:5672 cp/decl.c:5688 cp/decl.c:5759
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5706 cp/decl.c:5721
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
msgid "no type named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5938
+#: cp/decl.c:6329
msgid "lookup of `%D' finds `%#D'"
msgstr ""
-#: cp/decl.c:5940
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr ""
-#: cp/decl.c:5942
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr ""
-#: cp/decl.c:6115
+#: cp/decl.c:6364
+#, fuzzy
+msgid "name lookup of `%D' changed"
+msgstr "ç ïìÜäá ôïõ %s Üëëáîå óå %s\n"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+#, fuzzy
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "ç ïìÜäá ôïõ %s Üëëáîå óå %s\n"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr ""
-#: cp/decl.c:6938
+#: cp/decl.c:7432
msgid "an anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:6955
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6958
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6961
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6999
+#: cp/decl.c:7493
msgid "redeclaration of C++ built-in type `%T'"
msgstr ""
-#: cp/decl.c:7034
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:7037
-msgid "declaration does not declare anything"
-msgstr ""
-
-#: cp/decl.c:7061
+#: cp/decl.c:7556
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:7068
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:7075
+#: cp/decl.c:7570
msgid "`%D' can only be specified for functions"
msgstr ""
-#: cp/decl.c:7077
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr ""
-#: cp/decl.c:7079
+#: cp/decl.c:7574
msgid "`%D' can only be specified for constructors"
msgstr ""
-#: cp/decl.c:7082
+#: cp/decl.c:7577
msgid "`%D' can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:7226
-msgid "typedef `%D' is initialized"
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
msgstr ""
-#: cp/decl.c:7232
+#: cp/decl.c:7724
msgid "function `%#D' is initialized like a variable"
msgstr ""
-#: cp/decl.c:7244
+#: cp/decl.c:7736
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr ""
-#: cp/decl.c:7274
+#: cp/decl.c:7770
#, fuzzy
msgid "`%#D' is not a static member of `%#T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/decl.c:7279
+#: cp/decl.c:7775
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
msgstr ""
# src/request.c:263
-#: cp/decl.c:7290
+#: cp/decl.c:7786
#, fuzzy
msgid "duplicate initialization of %D"
msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
-#: cp/decl.c:7319
+#: cp/decl.c:7815
msgid "declaration of `%#D' outside of class is not definition"
msgstr ""
-#: cp/decl.c:7367
+#: cp/decl.c:7865
msgid "variable `%#D' has initializer but incomplete type"
msgstr ""
-#: cp/decl.c:7375 cp/decl.c:7726
+#: cp/decl.c:7873 cp/decl.c:8432
msgid "elements of array `%#D' have incomplete type"
msgstr ""
-#: cp/decl.c:7391
-msgid "aggregate `%#D' has incomplete type and cannot be initialized"
+#: cp/decl.c:7889
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:7430
+#: cp/decl.c:7931
msgid "`%D' declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:7439
+#: cp/decl.c:7940
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
msgstr ""
-#: cp/decl.c:7472
+#: cp/decl.c:7970
#, fuzzy
msgid "cannot initialize `%T' from `%T'"
msgstr "äåí åßíáé äõíáôü íá ìåôáíïìáóôåß ôï `.' Þ ôï `..'"
-#: cp/decl.c:7533
+#: cp/decl.c:8004
msgid "initializer fails to determine size of `%D'"
msgstr ""
-#: cp/decl.c:7538
+#: cp/decl.c:8009
#, fuzzy
msgid "array size missing in `%D'"
msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôçò åéóüäïõ `%s'"
-#: cp/decl.c:7550
+#: cp/decl.c:8021
msgid "zero-size array `%D'"
msgstr ""
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7583
+#: cp/decl.c:8059
msgid "storage size of `%D' isn't known"
msgstr ""
-#: cp/decl.c:7605
+#: cp/decl.c:8081
msgid "storage size of `%D' isn't constant"
msgstr ""
-#: cp/decl.c:7656
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:7657
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:7685
+#: cp/decl.c:8164
#, fuzzy
msgid "uninitialized const `%D'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/decl.c:7720
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr ""
+
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
+
+#: cp/decl.c:8426
msgid "variable-sized object `%D' may not be initialized"
msgstr ""
-#: cp/decl.c:7731 cp/typeck2.c:201
+#: cp/decl.c:8437
msgid "`%D' has incomplete type"
msgstr ""
-#: cp/decl.c:7763
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr ""
-#: cp/decl.c:7793
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
msgstr ""
-#: cp/decl.c:8060
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:8070
+#: cp/decl.c:8785
msgid "cannot initialize `%D' to namespace `%D'"
msgstr ""
-#: cp/decl.c:8127
+#: cp/decl.c:8836
msgid "shadowing previous type declaration of `%#D'"
msgstr ""
-#: cp/decl.c:8526
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9298 cp/init.c:562
msgid "multiple initializations given for `%D'"
msgstr ""
-#: cp/decl.c:8626
+#: cp/decl.c:9390
#, fuzzy
msgid "invalid catch parameter"
msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ðáñáâïëÞò"
-#: cp/decl.c:8744
+#: cp/decl.c:9508
msgid "destructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8747
+#: cp/decl.c:9511
msgid "constructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8766
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr ""
-#: cp/decl.c:8768
+#: cp/decl.c:9532
msgid "`%D' declared as an `inline' %s"
msgstr ""
-#: cp/decl.c:8770
+#: cp/decl.c:9534
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr ""
-#: cp/decl.c:8773
+#: cp/decl.c:9537
msgid "`%D' declared as a friend"
msgstr ""
-#: cp/decl.c:8779
+#: cp/decl.c:9543
msgid "`%D' declared with an exception specification"
msgstr ""
-#: cp/decl.c:8854
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr ""
-#: cp/decl.c:8856
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr ""
-#: cp/decl.c:8858
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr ""
-#: cp/decl.c:8861
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr ""
-#: cp/decl.c:8889
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr ""
-#: cp/decl.c:8892
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:8898
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:8921
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr ""
-#: cp/decl.c:8945
+#: cp/decl.c:9715
msgid "defining explicit specialization `%D' in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:8955
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/decl.c:8983
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:8990
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:9052
+#: cp/decl.c:9822
msgid "definition of implicitly-declared `%D'"
msgstr ""
-#: cp/decl.c:9064 cp/decl2.c:1384
+#: cp/decl.c:9834 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
msgstr ""
-#: cp/decl.c:9183
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:9273
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr ""
-#: cp/decl.c:9282
+#: cp/decl.c:10073
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
msgstr ""
-#: cp/decl.c:9285
+#: cp/decl.c:10076
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
msgstr ""
-#: cp/decl.c:9335
+#: cp/decl.c:10126
msgid "size of array `%D' has non-integer type"
msgstr ""
-#: cp/decl.c:9337
+#: cp/decl.c:10128
msgid "size of array has non-integer type"
msgstr ""
-#: cp/decl.c:9357
+#: cp/decl.c:10148
msgid "size of array `%D' is negative"
msgstr ""
-#: cp/decl.c:9359
+#: cp/decl.c:10150
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:9368
+#: cp/decl.c:10159
msgid "ISO C++ forbids zero-size array `%D'"
msgstr ""
-#: cp/decl.c:9370
+#: cp/decl.c:10161
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:9377
+#: cp/decl.c:10168
msgid "size of array `%D' is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:9380
+#: cp/decl.c:10171
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:9398
+#: cp/decl.c:10189
msgid "ISO C++ forbids variable-size array `%D'"
msgstr ""
-#: cp/decl.c:9401
+#: cp/decl.c:10192
msgid "ISO C++ forbids variable-size array"
msgstr ""
-#: cp/decl.c:9412
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:9471
+#: cp/decl.c:10262
msgid "declaration of `%D' as %s"
msgstr ""
-#: cp/decl.c:9473
+#: cp/decl.c:10264
#, fuzzy, c-format
msgid "creating %s"
msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
-#: cp/decl.c:9485
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9488
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9517
+#: cp/decl.c:10308
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:9524
+#: cp/decl.c:10315
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:9530
+#: cp/decl.c:10321
msgid "operator `%T' declared to return `%T'"
msgstr ""
-#: cp/decl.c:9532
+#: cp/decl.c:10323
msgid "return type specified for `operator %T'"
msgstr ""
-#: cp/decl.c:9702
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr ""
-#: cp/decl.c:9721
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr ""
-#: cp/decl.c:9771
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
#, fuzzy
msgid "invalid declarator"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: cp/decl.c:9824
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr ""
-#: cp/decl.c:9868
-#, fuzzy
-msgid "`%T::%D' is not a valid declarator"
-msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-
-#: cp/decl.c:9870
-msgid " perhaps you want `typename %T::%D' to make it a type"
-msgstr ""
-
-#: cp/decl.c:9882
+#: cp/decl.c:10674
msgid "type `%T' is not derived from type `%T'"
msgstr ""
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:9928
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr ""
-#: cp/decl.c:9930
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr ""
-#: cp/decl.c:9944
-#, fuzzy
-msgid "`%D' as declarator"
-msgstr "ôï `%s' åßíáé êáôÜëïãïò"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: cp/decl.c:9959
+#: cp/decl.c:10770
msgid "declaration of `%D' as non-function"
msgstr ""
-#: cp/decl.c:10036
+#: cp/decl.c:10847
#, fuzzy
msgid "`bool' is now a keyword"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-#: cp/decl.c:10038
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr ""
-#: cp/decl.c:10054 cp/decl.c:10088
+#: cp/decl.c:10865 cp/decl.c:10910
#, fuzzy
msgid "multiple declarations `%T' and `%T'"
msgstr "ðïëëáðëüò áñéèìüò åðéëïãþí ôçí åíôïëÞ `s'"
-#: cp/decl.c:10067
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
msgstr ""
-#: cp/decl.c:10159 cp/decl.c:10162
+#: cp/decl.c:10983 cp/decl.c:10986
#, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
msgstr ""
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10172
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr ""
-#: cp/decl.c:10208
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr ""
-#: cp/decl.c:10213
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr ""
-#: cp/decl.c:10224
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr ""
-#: cp/decl.c:10329
+#: cp/decl.c:11157
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr ""
-#: cp/decl.c:10357
+#: cp/decl.c:11179
msgid "member `%D' cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:10371
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
+
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:10375
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:10388
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:10442
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr ""
-#: cp/decl.c:10480
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:10584
-msgid "size of member `%D' is not constant"
-msgstr ""
-
-#: cp/decl.c:10663
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10666
+#: cp/decl.c:11498
#, c-format
msgid "destructors may not be `%s'"
msgstr ""
-#: cp/decl.c:10687
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10690
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:10695
+#: cp/decl.c:11527
#, c-format
msgid "constructors may not be `%s'"
msgstr ""
-#: cp/decl.c:10705
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr ""
-#: cp/decl.c:10724
+#: cp/decl.c:11556
#, fuzzy, c-format
msgid "can't initialize friend function `%s'"
msgstr "Äåí Þôáí äõíáôÞ ç åýñåóç åôéêÝôôáò ãéá ìåôáãùãÞ óôï `%s'"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10728
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:10733
+#: cp/decl.c:11565
#, fuzzy
msgid "friend declaration not in class definition"
msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí"
-#: cp/decl.c:10735
+#: cp/decl.c:11567
#, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr ""
-#: cp/decl.c:10759
+#: cp/decl.c:11591
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:10789
-#, fuzzy, c-format
-msgid "cannot declare %s to references"
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
msgstr "áäõíáìßá áëëáãÞò óôï êáôÜëïãï %s"
-#: cp/decl.c:10800
-msgid "cannot declare pointer to `%#T' member"
-msgstr ""
-
-#: cp/decl.c:10815
+#: cp/decl.c:11623
#, fuzzy
-msgid "invalid type: `void &'"
-msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'"
-
-#: cp/decl.c:10866
-msgid "discarding `const' applied to a reference"
-msgstr ""
+msgid "cannot declare pointer to `%#T'"
+msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/decl.c:10868
-msgid "discarding `volatile' applied to a reference"
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
msgstr ""
-#: cp/decl.c:10979
+#: cp/decl.c:11804
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr ""
-#: cp/decl.c:10989
+#: cp/decl.c:11814
msgid "cannot declare member function `%T::%s' within `%T'"
msgstr ""
-#: cp/decl.c:11004
+#: cp/decl.c:11829
#, fuzzy
msgid "cannot declare member `%T::%s' within `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11084
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr ""
-#: cp/decl.c:11092
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11097
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11103
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11108
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11113
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11126
+#: cp/decl.c:11960
msgid "template-id `%D' used as a declarator"
msgstr ""
-#: cp/decl.c:11147
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11194
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr ""
-#: cp/decl.c:11202
+#: cp/decl.c:12038
msgid "invalid type qualifier for non-member function type"
msgstr ""
-#: cp/decl.c:11218
-msgid "typedef declaration includes an initializer"
-msgstr ""
-
-#: cp/decl.c:11271
+#: cp/decl.c:12101
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:11276
+#: cp/decl.c:12106
msgid "`inline' specified for friend class declaration"
msgstr ""
-#: cp/decl.c:11286
+#: cp/decl.c:12114
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "ï äéá÷ùñéóôÞò äå ìðïñåß íá åßíáé êåíüò"
-#: cp/decl.c:11288
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr ""
-#: cp/decl.c:11293
+#: cp/decl.c:12120
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr ""
-#: cp/decl.c:11309
+#: cp/decl.c:12134
msgid "trying to make class `%T' a friend of global scope"
msgstr ""
-#: cp/decl.c:11320
+#: cp/decl.c:12145
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:11339
+#: cp/decl.c:12164
msgid "abstract declarator `%T' used as declaration"
msgstr ""
-#: cp/decl.c:11351
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:11360
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:11370
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:11416
+#: cp/decl.c:12234
#, fuzzy
msgid "invalid use of `::'"
msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
-#: cp/decl.c:11428
+#: cp/decl.c:12246
msgid "function `%D' cannot be declared friend"
msgstr ""
-#: cp/decl.c:11440
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr ""
-#: cp/decl.c:11449
+#: cp/decl.c:12267
msgid "function `%D' declared virtual inside a union"
msgstr ""
-#: cp/decl.c:11461
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:11534
+#: cp/decl.c:12355
msgid "field `%D' has incomplete type"
msgstr ""
-#: cp/decl.c:11536
+#: cp/decl.c:12357
msgid "name `%T' has incomplete type"
msgstr ""
-#: cp/decl.c:11545
+#: cp/decl.c:12366
msgid " in instantiation of template `%T'"
msgstr ""
-#: cp/decl.c:11555
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:11572
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -17183,94 +15656,99 @@ msgstr ""
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11614
+#: cp/decl.c:12434
msgid "ISO C++ forbids initialization of member `%D'"
msgstr ""
-#: cp/decl.c:11616
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr ""
-#: cp/decl.c:11640
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11681
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11683
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11694
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "ìç Ýãêõñç ôÜîç ÷áñáêôÞñùí `%s'"
+
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11696
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11703
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr ""
-#: cp/decl.c:11732
+#: cp/decl.c:12554
msgid "cannot declare member function `%D' to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:11738
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:11766
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:11772
+#: cp/decl.c:12594
msgid "static member `%D' declared `register'"
msgstr ""
-#: cp/decl.c:11777
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr ""
-#: cp/decl.c:11949
+#: cp/decl.c:12774
msgid "default argument for `%#D' has type `%T'"
msgstr ""
-#: cp/decl.c:11952
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr ""
-#: cp/decl.c:11969
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
msgstr ""
-#: cp/decl.c:12013
+#: cp/decl.c:12839
#, fuzzy, c-format
msgid "invalid string constant `%E'"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-#: cp/decl.c:12015
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr ""
-#: cp/decl.c:12049
+#: cp/decl.c:12879
msgid "parameter `%D' invalidly declared method type"
msgstr ""
-#: cp/decl.c:12055
+#: cp/decl.c:12885
msgid "parameter `%D' invalidly declared offset type"
msgstr ""
-#: cp/decl.c:12079
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr ""
@@ -17289,489 +15767,484 @@ msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12246
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr ""
-#: cp/decl.c:12397
+#: cp/decl.c:13222
msgid "`%D' must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:12403
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:12420
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:12452
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:12459
+#: cp/decl.c:13284
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:12509
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr ""
-#: cp/decl.c:12513
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr ""
-#: cp/decl.c:12520
+#: cp/decl.c:13345
msgid "`%D' must take either zero or one argument"
msgstr ""
-#: cp/decl.c:12522
+#: cp/decl.c:13347
msgid "`%D' must take either one or two arguments"
msgstr ""
-#: cp/decl.c:12543
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12549
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12558
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr ""
-#: cp/decl.c:12560 cp/decl.c:12568
+#: cp/decl.c:13385 cp/decl.c:13393
msgid "`%D' must take exactly one argument"
msgstr ""
-#: cp/decl.c:12570
+#: cp/decl.c:13395
msgid "`%D' must take exactly two arguments"
msgstr ""
-#: cp/decl.c:12578
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr ""
-#: cp/decl.c:12590
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr ""
-#: cp/decl.c:12602 cp/decl.c:12605
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
msgstr ""
-#: cp/decl.c:12698
-msgid "`%s %T' declares a new type at namespace scope"
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
msgstr ""
-#: cp/decl.c:12701
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+#: cp/decl.c:13481
+msgid "using template type parameter `%T' after `%s'"
msgstr ""
-#: cp/decl.c:12737
-msgid "using typedef-name `%D' after `%s'"
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
msgstr ""
-#: cp/decl.c:12740
-msgid "using template type parameter `%T' after `%s'"
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
msgstr ""
-#: cp/decl.c:12822
+#: cp/decl.c:13663
msgid "use of enum `%#D' without previous declaration"
msgstr ""
-#: cp/decl.c:12932
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr ""
-#: cp/decl.c:12976
+#: cp/decl.c:13795
msgid "base type `%T' fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:12988
+#: cp/decl.c:13805
msgid "base class `%T' has incomplete type"
msgstr ""
-#: cp/decl.c:12996
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr ""
-#: cp/decl.c:12998
+#: cp/decl.c:13815
#, fuzzy
msgid "duplicate base type `%T' invalid"
msgstr "äéðëüò ïñéóìüò óõíüëïõ"
-#: cp/decl.c:13109
+#: cp/decl.c:13926
#, fuzzy
msgid "multiple definition of `%#T'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: cp/decl.c:13110
+#: cp/decl.c:13927
msgid "previous definition here"
msgstr ""
-#: cp/decl.c:13285
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
msgid "enumerator value for `%D' not integer constant"
msgstr ""
-#: cp/decl.c:13305
+#: cp/decl.c:14126
msgid "overflow in enumeration values at `%D'"
msgstr ""
-#: cp/decl.c:13394
+#: cp/decl.c:14195
msgid "return type `%#T' is incomplete"
msgstr ""
-#: cp/decl.c:13503
+#: cp/decl.c:14309
msgid "semicolon missing after declaration of `%#T'"
msgstr ""
-#: cp/decl.c:13524
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr ""
-#: cp/decl.c:13555
+#: cp/decl.c:14361
msgid "`%D' implicitly declared before its definition"
msgstr ""
-#: cp/decl.c:13577 cp/typeck.c:6653
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr ""
-#: cp/decl.c:13858
+#: cp/decl.c:14643
msgid "parameter `%D' declared void"
msgstr ""
-#: cp/decl.c:14302
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
msgstr ""
-#: cp/decl.c:14453
-msgid "parser lost in parsing declaration of `%D'"
-msgstr ""
-
-#: cp/decl.c:14538
+#: cp/decl.c:15348
msgid "static member function `%#D' declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:529
-#, fuzzy, c-format
-msgid "-f%s is no longer supported"
-msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr ""
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr ""
-
-#: cp/decl2.c:624
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr ""
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr ""
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr ""
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1030
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr ""
-#: cp/decl2.c:1061 cp/decl2.c:1075
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:1069
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr ""
-#: cp/decl2.c:1117
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
msgstr ""
-#: cp/decl2.c:1125
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr ""
-#: cp/decl2.c:1135
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
msgstr ""
-#: cp/decl2.c:1142
+#: cp/decl2.c:540
msgid "deleting `%T' is undefined"
msgstr ""
-#: cp/decl2.c:1150
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1197
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:591
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr ""
-#: cp/decl2.c:1216 cp/pt.c:2559
+#: cp/decl2.c:601 cp/pt.c:2745
msgid "template declaration of `%#D'"
msgstr ""
-#: cp/decl2.c:1266
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr ""
-#: cp/decl2.c:1275
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr ""
-#: cp/decl2.c:1371
+#: cp/decl2.c:746
#, fuzzy
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr "ôï áñ÷åßï äåäïìÝíùí ðñïößë `%s' äåí ôáéñéÜæåé ìå ôï äéáìïéñáæüìåíï áíôéêåßìåíï `%s'"
-#: cp/decl2.c:1373
-msgid "candidate%s: %+#D"
-msgstr ""
-
-#: cp/decl2.c:1376
-msgid " %#D"
-msgstr " %#D"
+#: cp/decl2.c:828
+#, fuzzy
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/decl2.c:1432
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:1435
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:1494
+#: cp/decl2.c:898
msgid "invalid data member initialization"
msgstr ""
-#: cp/decl2.c:1497
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr ""
-#: cp/decl2.c:1537
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:1557
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr ""
-#: cp/decl2.c:1608
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:1631
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1683
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr ""
-#: cp/decl2.c:1693
+#: cp/decl2.c:1100
msgid "cannot declare bit-field `%D' with function type"
msgstr ""
-#: cp/decl2.c:1700
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr ""
-#: cp/decl2.c:1709
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr ""
-#: cp/decl2.c:1778
+#: cp/decl2.c:1201
msgid "initializer specified for non-member function `%D'"
msgstr ""
-#: cp/decl2.c:1782
+#: cp/decl2.c:1205
#, fuzzy
msgid "invalid initializer for virtual method `%D'"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
-#: cp/decl2.c:1886
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1982
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1992
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr ""
-#: cp/decl2.c:2059
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2067
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr ""
-#: cp/decl2.c:2094
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2102
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr ""
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2839
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
msgstr ""
-#: cp/decl2.c:3650
+#: cp/decl2.c:3006
+msgid "inline function `%D' used but never defined"
+msgstr ""
+
+#: cp/decl2.c:3135
#, fuzzy
msgid "use of old-style cast"
msgstr "ðáëáéïý åßäïõò èÝóç"
# src/getopt.c:628
# src/getopt.c:628
-#: cp/decl2.c:4208
+#: cp/decl2.c:3860
#, fuzzy
msgid "use of `%D' is ambiguous"
msgstr "%s: ç åðéëïãÞ `%s' åßíáé áóáöÞò\n"
-#: cp/decl2.c:4209
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4212
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4227
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr ""
-#: cp/decl2.c:4228
+#: cp/decl2.c:3880
msgid " first type here"
msgstr ""
-#: cp/decl2.c:4229
+#: cp/decl2.c:3881
msgid " other type here"
msgstr ""
-#: cp/decl2.c:4326
+#: cp/decl2.c:3982
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr ""
-#: cp/decl2.c:4360
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr ""
-#: cp/decl2.c:4494
+#: cp/decl2.c:4152
#, fuzzy
msgid "`%D' is not a function,"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-#: cp/decl2.c:4495
+#: cp/decl2.c:4153
msgid " conflict with `%D'"
msgstr ""
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4809
+#: cp/decl2.c:4473
#, fuzzy
msgid "unknown namespace `%D'"
msgstr "Üãíùóôï óåô `%s'"
-#: cp/decl2.c:4843 cp/decl2.c:5104
+#: cp/decl2.c:4507 cp/decl2.c:4794
#, fuzzy
msgid "`%T' is not a namespace"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/decl2.c:4845
+#: cp/decl2.c:4509
#, fuzzy
msgid "`%D' is not a namespace"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/decl2.c:4854
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr ""
-#: cp/decl2.c:4868
+#: cp/decl2.c:4532
msgid "namespace `%D' not allowed in using-declaration"
msgstr ""
-#: cp/decl2.c:4897
+#: cp/decl2.c:4561
#, fuzzy
msgid "`%D' not declared"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/decl2.c:4939
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
msgstr ""
-#: cp/decl2.c:4966
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr ""
-#: cp/decl2.c:5057
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/decl2.c:5063
+#: cp/decl2.c:4746
msgid "using-declaration for destructor"
msgstr ""
-#: cp/decl2.c:5069
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr ""
-#: cp/decl2.c:5098
+#: cp/decl2.c:4788
msgid "namespace `%T' undeclared"
msgstr ""
-#: cp/decl2.c:5127
+#: cp/decl2.c:4817
msgid "default argument missing for parameter %P of `%+#D'"
msgstr ""
-#: cp/decl2.c:5217
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr ""
-#: cp/decl2.c:5221
+#: cp/decl2.c:4945
#, fuzzy
msgid "`%T' does not have a class or union named `%D'"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/decl2.c:5234
+#: cp/decl2.c:4963
#, fuzzy
msgid "`%T' is not a class or union type"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr ""
+
#: cp/error.c:35
#, fuzzy, c-format
msgid "`%s' not supported by %s"
@@ -17782,219 +16255,215 @@ msgstr "Äåí õðïóôçñßæåôáé"
msgid "<anonymous %s>"
msgstr ""
-#: cp/error.c:808
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr ""
-#: cp/error.c:2432
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
msgstr ""
-#: cp/error.c:2487
+#: cp/error.c:2530
#, fuzzy, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "%s: Ìç Ýãêõñç ñýèìéóç `%s'.\n"
-#: cp/error.c:2511
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr ""
-#: cp/error.c:2516
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr ""
#. damn ICE suppression
-#: cp/error.c:2669
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr ""
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr ""
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr ""
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr ""
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr ""
-#: cp/friend.c:155
+#: cp/friend.c:159
msgid "`%D' is already a friend of class `%T'"
msgstr ""
-#: cp/friend.c:157
+#: cp/friend.c:161
msgid "previous friend declaration of `%D'"
msgstr ""
-#: cp/friend.c:197
+#: cp/friend.c:206
msgid "invalid type `%T' declared `friend'"
msgstr ""
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
msgid "partial specialization `%T' declared `friend'"
msgstr ""
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr ""
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
msgid "typename type `%#T' declared `friend'"
msgstr ""
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
msgid "template parameter type `%T' declared `friend'"
msgstr ""
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
#, fuzzy
msgid "`%#T' is not a template"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/friend.c:268
+#: cp/friend.c:276
#, fuzzy
msgid "`%T' is already a friend of `%T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/friend.c:364
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr ""
-#: cp/friend.c:419
+#: cp/friend.c:431
msgid "friend declaration `%#D' declares a non-template function"
msgstr ""
-#: cp/friend.c:422
+#: cp/friend.c:434
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr ""
-#: cp/g++spec.c:198 java/jvspec.c:381
+#: cp/g++spec.c:211 java/jvspec.c:423
#, fuzzy, c-format
msgid "argument to `%s' missing\n"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
msgstr ""
-#: cp/init.c:290
+#: cp/init.c:389
msgid "uninitialized reference member `%D'"
msgstr ""
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
msgstr ""
-#: cp/init.c:410
-msgid "member initializers for `%#D'"
-msgstr ""
-
-#: cp/init.c:412
-msgid " and `%#D'"
-msgstr ""
-
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr ""
-
-#: cp/init.c:428
-msgid "multiple initializations given for member `%D'"
-msgstr ""
-
-#: cp/init.c:500
-msgid "initializations for multiple members of `%T'"
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
msgstr ""
-#: cp/init.c:617
-msgid "base initializers for `%#T'"
-msgstr ""
+#: cp/init.c:541
+#, fuzzy
+msgid "base `%T' will be initialized after"
+msgstr "ç êëÜóç ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
-#: cp/init.c:618
-msgid " and `%#T'"
-msgstr ""
+#: cp/init.c:544
+#, fuzzy
+msgid " `%#D'"
+msgstr " `%s'"
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr ""
+#: cp/init.c:546
+#, fuzzy
+msgid " base `%T'"
+msgstr " êáôÜ `%D'"
-#: cp/init.c:631
+# src/request.c:263
+#: cp/init.c:564
#, fuzzy
-msgid "base class `%T' already initialized"
-msgstr "ç êëÜóç ÷áñáêôÞñùí `%s' ïñßóôçêå Þäç"
+msgid "multiple initializations given for base `%T'"
+msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
-#: cp/init.c:702
-msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+#: cp/init.c:631
+msgid "initializations for multiple members of `%T'"
msgstr ""
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr ""
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr ""
-#: cp/init.c:1032
+#: cp/init.c:965
msgid "unnamed initializer for `%T', which has no base classes"
msgstr ""
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr ""
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr ""
-#: cp/init.c:1071
+#: cp/init.c:1010
#, fuzzy
msgid "type `%D' is not a direct base of `%T'"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
@@ -18011,28 +16480,28 @@ msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1357
+#: cp/init.c:1311
#, fuzzy
msgid "`%T' is not an aggregate type"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/init.c:1380
+#: cp/init.c:1334
msgid "`%T' fails to be an aggregate typedef"
msgstr ""
-#: cp/init.c:1389
+#: cp/init.c:1343
msgid "type `%T' is of non-aggregate type"
msgstr ""
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr ""
-#: cp/init.c:1533
+#: cp/init.c:1490
#, fuzzy
msgid "invalid use of non-static field `%D'"
msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'"
@@ -18040,549 +16509,523 @@ msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1542 cp/method.c:194
+#: cp/init.c:1499 cp/method.c:160
#, fuzzy
msgid "invalid use of member `%D'"
msgstr "ìç Ýãêõñïò áñéèìüò ðåäßïõ: `%s'"
-#: cp/init.c:1552
+#: cp/init.c:1509
msgid "no method `%T::%D'"
msgstr ""
-#: cp/init.c:1645
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr ""
-#: cp/init.c:1714
+#: cp/init.c:1676
#, fuzzy
msgid "`%D' is not a member of type `%T'"
msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'"
-#: cp/init.c:1733
+#: cp/init.c:1695
#, fuzzy
-msgid "illegal pointer to bit-field `%D'"
+msgid "invalid pointer to bit-field `%D'"
msgstr "áêáôÜëëçëïò ôýðïò äéêôýïõ :`%s'\n"
-#: cp/init.c:1772
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
msgstr ""
-#: cp/init.c:1812
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr ""
-#: cp/init.c:1814 cp/typeck.c:3168 cp/typeck.c:3276
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr ""
-#: cp/init.c:1872 cp/typeck.c:2963
+#: cp/init.c:1813
#, c-format
msgid "object missing in `%E'"
msgstr ""
-#: cp/init.c:2004
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr ""
-#: cp/init.c:2015
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr ""
-#: cp/init.c:2021
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr ""
-#: cp/init.c:2086
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:2092
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:2139
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr ""
-#: cp/init.c:2155
+#: cp/init.c:2095
msgid "can't find class$"
msgstr ""
-#: cp/init.c:2268
+#: cp/init.c:2209
#, fuzzy
msgid "invalid type `void' for new"
msgstr "ìç Ýãêõñç êáôÜóôáóç ãéá ôçí dlopen()"
-#: cp/init.c:2320
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr ""
-#: cp/init.c:2429
+#: cp/init.c:2369
msgid "ISO C++ forbids initialization in array new"
msgstr ""
-#: cp/init.c:2447 cp/typeck2.c:383 cp/typeck2.c:1227
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
msgstr ""
-#: cp/init.c:2453
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
msgstr ""
-#: cp/init.c:2528
+#: cp/init.c:2485
msgid "uninitialized const in `new' of `%#T'"
msgstr ""
-#: cp/init.c:2892
+#: cp/init.c:2864
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2962
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:3137
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3402
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
msgstr ""
-#: cp/lex.c:144
+#: cp/lex.c:136
#, fuzzy
msgid "type name expected before `*'"
msgstr "ÅããñáöÞ ïíïìÜôùí ôùí åðéëåãìÝíùí êáôçãïñéþí"
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr ""
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr ""
-#: cp/lex.c:175
+#: cp/lex.c:167
#, fuzzy
msgid "type name expected before `&'"
msgstr "ÅããñáöÞ ïíïìÜôùí ôùí åðéëåãìÝíùí êáôçãïñéþí"
-#: cp/lex.c:1000
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr ""
-#: cp/lex.c:1003
+#: cp/lex.c:897
msgid "semicolon missing after declaration of `%T'"
msgstr ""
-#: cp/lex.c:1051
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr ""
-#: cp/lex.c:1058
+#: cp/lex.c:952
#, fuzzy, c-format
msgid "invalid #pragma %s"
msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-#: cp/lex.c:1067
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr ""
-#: cp/lex.c:1144
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr ""
-#: cp/lex.c:1169
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr ""
-#: cp/lex.c:1254
+#: cp/lex.c:1107
#, fuzzy
msgid "`%D' not defined"
msgstr "áüñéóôï"
-#: cp/lex.c:1259
+#: cp/lex.c:1110
msgid "`%D' was not declared in this scope"
msgstr ""
-#: cp/lex.c:1269
+#: cp/lex.c:1118
msgid "`%D' undeclared (first use this function)"
msgstr ""
-#: cp/lex.c:1273
+#: cp/lex.c:1122
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr ""
-#: cp/lex.c:1296
-#, fuzzy, c-format
-msgid "name lookup of `%s' changed"
-msgstr "ç ïìÜäá ôïõ %s Üëëáîå óå %s\n"
-
-#: cp/lex.c:1298
-msgid " matches this `%D' under ISO standard rules"
-msgstr ""
-
-#: cp/lex.c:1300
-msgid " matches this `%D' under old rules"
-msgstr ""
-
-#: cp/lex.c:1310 cp/lex.c:1317
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr ""
-
-#: cp/lex.c:1312
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr ""
-
-#: cp/lex.c:1319
-msgid " using obsolete binding at `%D'"
-msgstr ""
-
-#: cp/lex.c:1384
+#: cp/lex.c:1242
msgid "`::%D' undeclared (first use here)"
msgstr ""
-#: cp/mangle.c:1892
-msgid "real-valued template parameters when cross-compiling"
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr ""
-#: cp/method.c:166
-msgid "methods cannot be converted to function pointers"
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
msgstr ""
-# src/main.c:659
-#: cp/method.c:171
-#, fuzzy, c-format
-msgid "ambiguous request for method pointer `%s'"
-msgstr "ÁóáöÞò óõìâïëïóåéñÜ `%s'"
-
-#: cp/method.c:188
+#: cp/method.c:154
msgid "invalid use of member `%D' in static member function"
msgstr ""
-#: cp/method.c:236
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr ""
-#: cp/method.c:241
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr ""
-#: cp/method.c:254
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/method.c:257
+#: cp/method.c:237
msgid " `%#D' declared here"
msgstr ""
-#: cp/method.c:275
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/method.c:328
-msgid "implementation-reserved name `%D' used"
-msgstr ""
-
-#: cp/method.c:453
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr ""
-#: cp/method.c:683
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
msgstr ""
-#: cp/method.c:688
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
msgstr ""
-#: parse.y:498
+#: parse.y:262
+#, fuzzy
+msgid "`%s' tag used in naming `%#T'"
+msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
+
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr ""
-#: parse.y:602
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr ""
-# src/grep.c:785 src/grep.c:792
-# src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: parse.y:674
-#, fuzzy
-msgid "invalid default template argument"
-msgstr "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ"
-
-#: parse.y:905
-msgid "only constructors take base initializers"
-msgstr ""
-
-#: parse.y:907
+#: parse.y:943
msgid "no base or member initializers given following ':'"
msgstr ""
-#: parse.y:949 parse.y:955
+#: parse.y:984
msgid "anachronistic old style base class initializer"
msgstr ""
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1077
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr ""
-#: parse.y:1115
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr ""
-#: parse.y:1144 parse.y:1153
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr ""
-#: parse.y:1176
+#: parse.y:1225
msgid "definition of class `%T' in condition"
msgstr ""
-#: parse.y:1178
+#: parse.y:1227
msgid "definition of enum `%T' in condition"
msgstr ""
-#: parse.y:1189
+#: parse.y:1238
msgid "definition of array `%#D' in condition"
msgstr ""
-#: parse.y:1298
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr ""
-#: parse.y:1309
+#: parse.y:1362
#, fuzzy
msgid "`%T' is not a valid expression"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: parse.y:1320
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr ""
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
+msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: parse.y:1351
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
msgstr ""
-#: parse.y:1592
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ìç Ýãêõñïò áñéèìüò ðåäßïõ: `%s'"
+
# src/dfa.c:962
# src/dfa.c:970
-#: parse.y:1999 parse.y:2014
+#: parse.y:2053 parse.y:2068
#, fuzzy
msgid "sigof type specifier"
msgstr "Äåí ïñßóôçêå óõíôáêôéêü"
-#: parse.y:2004
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr ""
-#: parse.y:2019
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr ""
-#: parse.y:2283
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr ""
-#: parse.y:2352
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2354
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2356
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2358
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr ""
-#: parse.y:2490
+#: parse.y:2553
msgid "no bases given following `:'"
msgstr ""
-#: parse.y:2521 parse.y:2536
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr ""
-#: parse.y:2526
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr ""
-#: parse.y:2544
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr ""
-#: parse.y:2581
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr ""
-#: parse.y:2801
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr ""
-#: parse.y:3082 parse.y:3102 parse.y:3111 parse.y:3140
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
#, fuzzy
msgid "`%T' is not a class or namespace"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: parse.y:3307
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
msgstr ""
-#: parse.y:3462
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: parse.y:3470
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr ""
-#: parse.y:3566
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
+
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
msgstr ""
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3651 parse.y:3661
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr ""
-#: parse.y:3758
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr ""
-#: parse.y:3767
+#: parse.y:3849
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr ""
-#: parse.y:3769
+#: parse.y:3851
#, fuzzy
msgid "no type `%D' in `%T'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: parse.y:3772
+#: parse.y:3854
#, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr ""
-#: parse.y:3780
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr ""
-#: /usr/share/bison/bison.simple:817
-#, fuzzy
-msgid "parse error; also virtual memory exhausted"
-msgstr "óöÜëìá åðåîåñãáóßáò· åðßóçò ç ìíÞìç åîáíôëÞèçêå"
-
-#: cp/pt.c:208
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr ""
-#: cp/pt.c:220
+#: cp/pt.c:296
#, fuzzy
msgid "invalid member template declaration `%D'"
msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
-#: cp/pt.c:615
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr ""
-#: cp/pt.c:627
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:702
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr ""
-#: cp/pt.c:703
+#: cp/pt.c:793 cp/pt.c:834
#, fuzzy
msgid " from definition of `%#D'"
msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
-#: cp/pt.c:711
+#: cp/pt.c:801
msgid "specialization of `%T' after instantiation"
msgstr ""
-#: cp/pt.c:714
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "äéðëüò ïñéóìüò óõíüëïõ"
+
+#: cp/pt.c:860
msgid "explicit specialization of non-template `%T'"
msgstr ""
-#: cp/pt.c:846
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr ""
-#: cp/pt.c:949
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1000
+#: cp/pt.c:1147
msgid "`%D' is not a function template"
msgstr ""
-#: cp/pt.c:1123
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr ""
-#: cp/pt.c:1131
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1358 cp/pt.c:1432
+#: cp/pt.c:1521 cp/pt.c:1595
msgid "template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/pt.c:1371
+#: cp/pt.c:1534
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1377
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1383
+#: cp/pt.c:1546
msgid "too many template parameter lists in declaration of `%D'"
msgstr ""
-#: cp/pt.c:1399
+#: cp/pt.c:1562
msgid "too few template parameter lists in declaration of `%D'"
msgstr ""
-#: cp/pt.c:1416
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr ""
-#: cp/pt.c:1429
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr ""
-#: cp/pt.c:1461
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1465
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr ""
@@ -18594,104 +17037,104 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1553
+#: cp/pt.c:1715
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1596
+#: cp/pt.c:1759
msgid "no member function `%D' declared in `%T'"
msgstr ""
#. There are two many template parameter lists.
-#: cp/pt.c:1744
+#: cp/pt.c:1909
msgid "too many template parameter lists in declaration of `%T'"
msgstr ""
-#: cp/pt.c:1840
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
msgstr ""
-#: cp/pt.c:2244
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2248
+#: cp/pt.c:2413
msgid " `%D'"
msgstr " `%D'"
-#: cp/pt.c:2260
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2285
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2328
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2416
+#: cp/pt.c:2582
#, fuzzy
msgid "no default argument for `%D'"
msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-#: cp/pt.c:2549
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2552
+#: cp/pt.c:2738
#, fuzzy
msgid "template class without a name"
msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
-#: cp/pt.c:2627
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr ""
-#: cp/pt.c:2633
+#: cp/pt.c:2821
#, fuzzy
msgid "template definition of non-template `%#D'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: cp/pt.c:2674
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr ""
-#: cp/pt.c:2686
+#: cp/pt.c:2874
msgid "got %d template parameters for `%#D'"
msgstr ""
-#: cp/pt.c:2689
+#: cp/pt.c:2877
msgid "got %d template parameters for `%#T'"
msgstr ""
-#: cp/pt.c:2691
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr " áëëÜ %d áðáéôïýíôáé"
-#: cp/pt.c:2759
+#: cp/pt.c:2962
#, fuzzy
msgid "`%T' is not a template type"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/pt.c:2775
+#: cp/pt.c:2978
msgid "previous declaration `%D'"
msgstr ""
-#: cp/pt.c:2776
+#: cp/pt.c:2979
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr ""
-#: cp/pt.c:2792
+#: cp/pt.c:2995
#, fuzzy
msgid "template parameter `%#D'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: cp/pt.c:2793
+#: cp/pt.c:2996
msgid "redeclared here as `%#D'"
msgstr ""
@@ -18699,741 +17142,749 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2803
+#: cp/pt.c:3006
msgid "redefinition of default argument for `%#D'"
msgstr ""
-#: cp/pt.c:2804
+#: cp/pt.c:3007
msgid " original definition appeared here"
msgstr ""
-#: cp/pt.c:2897
+#: cp/pt.c:3100
#, fuzzy, c-format
msgid "`%E' is not a valid template argument"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: cp/pt.c:2901
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:2903
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr ""
-#: cp/pt.c:2907
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr ""
-#: cp/pt.c:2918
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr ""
-#: cp/pt.c:2930
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2941
+#: cp/pt.c:3144
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2948
+#: cp/pt.c:3151
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:3328
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr ""
-#: cp/pt.c:3341 cp/pt.c:3357 cp/pt.c:3396
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr ""
-#: cp/pt.c:3344
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr ""
-#: cp/pt.c:3348
+#: cp/pt.c:3546
#, fuzzy, c-format
msgid " expected a type, got `%E'"
msgstr "%s: áíáìåíüôáí áêÝñáéïò ìåôÜ ôï `%c'"
-#: cp/pt.c:3360
+#: cp/pt.c:3558
#, fuzzy
msgid " expected a type, got `%T'"
msgstr "%s: áíáìåíüôáí áêÝñáéïò ìåôÜ ôï `%c'"
-#: cp/pt.c:3362
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr ""
-#: cp/pt.c:3398
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr ""
-#: cp/pt.c:3420
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr ""
-#: cp/pt.c:3423
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr ""
-#: cp/pt.c:3458
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr ""
-#: cp/pt.c:3502
+#: cp/pt.c:3710
#, fuzzy, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "ëÜèïò áñéèìüò ïñéóìÜôùí"
-#: cp/pt.c:3506
+#: cp/pt.c:3714
msgid "provided for `%D'"
msgstr ""
-#: cp/pt.c:3553
+#: cp/pt.c:3761
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: cp/pt.c:3785
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:4139
#, fuzzy
msgid "`%T' is not a template"
msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
-#: cp/pt.c:3916
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr ""
-#: cp/pt.c:3918
+#: cp/pt.c:4154
msgid "for template declaration `%D'"
msgstr ""
-#: cp/pt.c:4481
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr ""
-#: cp/pt.c:4916
+#: cp/pt.c:5247
msgid "ambiguous class template instantiation for `%#T'"
msgstr ""
-#: cp/pt.c:4923
+#: cp/pt.c:5254
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:5942 cp/pt.c:6056
+#: cp/pt.c:6284 cp/pt.c:6396
msgid "instantiation of `%D' as type `%T'"
msgstr ""
-#: cp/pt.c:6098
+#: cp/pt.c:6440
#, fuzzy
msgid "invalid parameter type `%T'"
msgstr "Ìç Ýãêõñç ðñïôåñáéüôçôá `%s'"
-#: cp/pt.c:6100
+#: cp/pt.c:6442
msgid "in declaration `%D'"
msgstr ""
-#: cp/pt.c:6175
+#: cp/pt.c:6517
msgid "creating pointer to member function of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6338
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6352
+#: cp/pt.c:6694
#, c-format
msgid "creating array with size zero (`%E')"
msgstr ""
-#: cp/pt.c:6590
+#: cp/pt.c:6933
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:6592
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr ""
-#: cp/pt.c:6630
+#: cp/pt.c:6973
msgid "creating pointer to member of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6637
+#: cp/pt.c:6979
#, fuzzy
msgid "creating pointer to member reference type `%T'"
msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'"
-#: cp/pt.c:6715
+#: cp/pt.c:7057
#, fuzzy
msgid "creating array of `%T'"
msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
-#: cp/pt.c:6761
+#: cp/pt.c:7100
msgid "`%T' is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:6873
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr ""
-#: cp/pt.c:7630
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr ""
-#: cp/pt.c:7631
+#: cp/pt.c:7976
msgid " trying to instantiate `%D'"
msgstr ""
-#: cp/pt.c:8061
+#: cp/pt.c:8421
#, fuzzy
msgid "incomplete type unification"
msgstr "Ìåôáãëùôôéóìüò ðñïäéáãñáöþí ôïðéêþí ñõèìßóåùí"
-#: cp/pt.c:9016
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr ""
-#: cp/pt.c:9438 cp/pt.c:9506
+#: cp/pt.c:9821 cp/pt.c:9893
msgid "explicit instantiation of non-template `%#D'"
msgstr ""
-#: cp/pt.c:9454 cp/pt.c:9501
+#: cp/pt.c:9837 cp/pt.c:9888
#, fuzzy
msgid "no matching template for `%D' found"
msgstr "Ï Ýëåã÷ïò ìïíïðáôéïý ãéá ôï `%s' âñÞêå `%s'"
-#: cp/pt.c:9460
+#: cp/pt.c:9843
msgid "explicit instantiation of `%#D'"
msgstr ""
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9477
-msgid "explicit instantiation of `%#D' after"
-msgstr ""
-
-#: cp/pt.c:9478 cp/pt.c:9615
-msgid "explicit specialization here"
-msgstr ""
-
-#: cp/pt.c:9493
+#: cp/pt.c:9880
#, fuzzy
msgid "duplicate explicit instantiation of `%#D'"
msgstr "äéðëüò ïñéóìüò óõíüëïõ"
-#: cp/pt.c:9518
+#: cp/pt.c:9905
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9522 cp/pt.c:9600
+#: cp/pt.c:9909 cp/pt.c:9999
msgid "storage class `%D' applied to template instantiation"
msgstr ""
-#: cp/pt.c:9567
+#: cp/pt.c:9966
msgid "explicit instantiation of non-template type `%T'"
msgstr ""
-#: cp/pt.c:9581
+#: cp/pt.c:9980
msgid "explicit instantiation of `%#T' before definition of template"
msgstr ""
-#: cp/pt.c:9589
+#: cp/pt.c:9988
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9614
-msgid "explicit instantiation of `%#T' after"
-msgstr ""
-
-#: cp/pt.c:9632
+#: cp/pt.c:10032
#, fuzzy
msgid "duplicate explicit instantiation of `%#T'"
msgstr "äéðëüò ïñéóìüò óõíüëïõ"
-#: cp/pt.c:9973
+#: cp/pt.c:10412
msgid "explicit instantiation of `%D' but no definition available"
msgstr ""
-#: cp/pt.c:10345
+#: cp/pt.c:10815
#, fuzzy
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr ""
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr ""
-#: cp/repo.c:381
+#: cp/repo.c:376
#, fuzzy, c-format
msgid "can't create repository information file `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: cp/rtti.c:200
+#: cp/rtti.c:240
#, fuzzy
msgid "cannot use typeid with -fno-rtti"
msgstr "Äåí åßíáé äõíáôü íá ÷ñçóéìïðïéçèåß ç åðéëïãÞ -a ÷ùñßò ôï -n"
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr ""
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr ""
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr ""
-#: cp/search.c:340
+#: cp/search.c:332
#, fuzzy
-msgid "`%T' is an inaccessible base of `%T'"
+msgid "`%T' is an ambiguous base of `%T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
#: cp/search.c:350
#, fuzzy
-msgid "`%T' is an ambiguous base of `%T'"
+msgid "`%T' is an inaccessible base of `%T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/search.c:1826
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr ""
+
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
msgstr ""
-#: cp/search.c:1830 cp/search.c:1837
+#: cp/search.c:2054 cp/search.c:2061
#, fuzzy
msgid "invalid covariant return type for `%#D'"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
-#: cp/search.c:1831
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr ""
-#: cp/search.c:1838
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
msgstr ""
-#: cp/search.c:1843
+#: cp/search.c:2067
msgid "conflicting return type specified for `%#D'"
msgstr ""
-#: cp/search.c:1844
+#: cp/search.c:2068
#, fuzzy
msgid " overriding `%#D'"
msgstr "áíôéãñÜöåôáé áðü ðÜíù"
-#: cp/search.c:1853
+#: cp/search.c:2077
+#, c-format
msgid "looser throw specifier for `%#F'"
msgstr ""
-#: cp/search.c:1854
-#, fuzzy
+#: cp/search.c:2078
+#, fuzzy, c-format
msgid " overriding `%#F'"
msgstr "áíôéãñÜöåôáé áðü ðÜíù"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1944
+#: cp/search.c:2167
#, fuzzy
msgid "`%#D' cannot be declared"
msgstr "Äåí ìðïñåß íá ôåèåß ç çìåñïìçíßá."
-#: cp/search.c:1945
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr ""
-#: cp/search.c:2130
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr ""
-#: cp/semantics.c:903
+#: cp/semantics.c:919
#, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr ""
-#: cp/semantics.c:1045
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
msgstr ""
-#: cp/semantics.c:1054
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr ""
-#: cp/semantics.c:1062
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr ""
-#: cp/semantics.c:1129
-msgid "base initializer for `%T'"
-msgstr ""
-
-#: cp/semantics.c:1131
-msgid " will be re-ordered to precede member initializations"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
msgstr ""
-#: cp/semantics.c:1319
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:1325
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr ""
-#: cp/semantics.c:1327
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr ""
-#: cp/semantics.c:1365
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr ""
-#: cp/semantics.c:1401
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr ""
-#: cp/semantics.c:1407
+#: cp/semantics.c:1425
#, fuzzy
msgid "`%E' is not of type `%T'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/semantics.c:1619
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr ""
-#: cp/semantics.c:1678
+# src/grep.c:785 src/grep.c:792
+# src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
+#: cp/semantics.c:1652
+#, fuzzy
+msgid "invalid default template argument"
+msgstr "ìç Ýãêõñï üñéóìá ìÞêïõò ðåñéå÷ïìÝíïõ"
+
+#: cp/semantics.c:1694
msgid "definition of `%#T' inside template parameter list"
msgstr ""
-#: cp/semantics.c:1694
+#: cp/semantics.c:1710
#, fuzzy
msgid "invalid definition of qualified type `%T'"
msgstr "ìç Ýãêõñïò áñéèìüò áñ÷åßïõ óôç äÞëùóç ðåäßïõ: `%s'"
-#: cp/semantics.c:2046
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2079
+#: cp/semantics.c:2093
msgid "multiple declarators in template declaration"
msgstr ""
-#: cp/spew.c:245
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "ç åðéóôñåöüìåíç ôéìÞ ôçò `%s' äåí åßíáé `int'"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr ""
-#: cp/spew.c:1020 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr ""
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
#, fuzzy
msgid "parse error in method specification"
msgstr "óõíôáêôéêü óöÜëìá óôïí êáèïñéóìü óåéñÜò"
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr ""
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr ""
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr ""
-#: cp/spew.c:1435
+#: cp/spew.c:1483
#, fuzzy
msgid "invalid type `%T' for default argument to `%T'"
msgstr "Ìç Ýãêõñç áêÝñáéá ðáñÜìåôñïò `%s'"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "%s ðñéí áðü `%s'"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr "%s ðñéí áðü `%c'"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr "%s ðñéí áðü `\\%o'"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, fuzzy, c-format
msgid "%s before `%s' token"
msgstr "%s (ãéá êáíïíéêÞ Ýêöñáóç `%s')"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr ""
-#: cp/tree.c:536
-msgid "`%T' cannot be `restrict'-qualified"
-msgstr ""
-
-#: cp/tree.c:547
-msgid "`%T' cannot be `const'-, `volatile'-, or `restrict'-qualified"
-msgstr ""
+#: cp/tree.c:562
+#, fuzzy
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/tree.c:1888
+#: cp/tree.c:1941
#, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:1918
+#: cp/tree.c:1971
#, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:1924
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1949
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1970
+#: cp/tree.c:2023
#, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1978
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1988
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1998
+#: cp/tree.c:2051
#, fuzzy, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: cp/typeck.c:480
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.c:524
#, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
msgstr ""
-#: cp/typeck.c:501
+#: cp/typeck.c:545
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr ""
-#: cp/typeck.c:1485
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr ""
-#: cp/typeck.c:1555
-msgid "ISO C++ forbids applying `sizeof' to a function type"
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
msgstr ""
-#: cp/typeck.c:1561
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr ""
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-#: cp/typeck.c:1567
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
msgstr ""
-#: cp/typeck.c:1581
-msgid "`sizeof' applied to non-static member"
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
msgstr ""
-#: cp/typeck.c:1586
-msgid "`sizeof' applied to incomplete type `%T'"
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
msgstr ""
-#: cp/typeck.c:1616
-msgid "sizeof applied to a bit-field"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
msgstr ""
-#: cp/typeck.c:1619
-msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
-msgstr ""
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'"
-#: cp/typeck.c:1766
+#: cp/typeck.c:1957 cp/typeck.c:1978
#, fuzzy
-msgid "invalid use of non-lvalue array"
-msgstr "ìç Ýãêõñç þñá ôçò ìÝñáò"
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'"
-#: cp/typeck.c:1872
-msgid "deprecated conversion from string constant to `%T'"
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:1890
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
-msgstr ""
+#: cp/typeck.c:2168
+#, fuzzy
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "äåí åßóôå ìÝëïò ôçò ïìÜäáò `%s'"
+
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
-#: cp/typeck.c:2083
+#: cp/typeck.c:2199
msgid "destructor specifier `%T::~%T' must have matching names"
msgstr ""
-#: cp/typeck.c:2089
+#: cp/typeck.c:2205
#, fuzzy
msgid "type `%T' has no destructor"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-#: cp/typeck.c:2106 cp/typeck.c:2188
+#: cp/typeck.c:2244
#, fuzzy
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "Ìç Ýãêõñç ðñïðïñåõüìåíç êáíïíéêÞ Ýêöñáóç"
-
-#: cp/typeck.c:2111
-#, fuzzy
-msgid "invalid use of template `%#D' as expression"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: cp/typeck.c:2179
-msgid "`%#T' has no member named `%D'"
-msgstr ""
-
-#: cp/typeck.c:2223
-msgid "invalid reference to NULL ptr, use ptr-to-member instead"
-msgstr ""
+msgid "`%D' is not a member template function"
+msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2349
+#: cp/typeck.c:2338
#, fuzzy
msgid "`%T' is not a pointer-to-object type"
msgstr "Ôï `%s' äåí åßíáé êáôÜëïãïò."
-#: cp/typeck.c:2376
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
msgstr ""
-#: cp/typeck.c:2382
+#: cp/typeck.c:2371
#, fuzzy
msgid "invalid type argument"
msgstr "Ìç Ýãêõñç ðáñÜìåôñïò"
-#: cp/typeck.c:2485
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2496
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr ""
-#: cp/typeck.c:2671 cp/typeck.c:2821
-msgid "pointer to member function called, but not in class scope"
-msgstr ""
-
-#: cp/typeck.c:2695
-msgid "object missing in call to method `%D'"
-msgstr ""
-
-#: cp/typeck.c:2739
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr ""
-
-#: cp/typeck.c:2819
-msgid "invalid call to member function needing `this' in static member function scope"
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
msgstr ""
-#: cp/typeck.c:3003
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
msgstr ""
-#: cp/typeck.c:3028
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr ""
-#: cp/typeck.c:3041
+#: cp/typeck.c:2712
#, c-format
msgid "`%E' cannot be used as a function"
msgstr ""
-#: cp/typeck.c:3166
+#: cp/typeck.c:2824
#, fuzzy
msgid "too many arguments to %s `%+#D'"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: cp/typeck.c:3207
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr ""
-#: cp/typeck.c:3274
+#: cp/typeck.c:2928
#, fuzzy
msgid "too few arguments to %s `%+#D'"
msgstr "ðïëý ëßãá ïñßóìáôá"
-#: cp/typeck.c:3402 cp/typeck.c:3412
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr ""
-#: cp/typeck.c:3472
+#: cp/typeck.c:3126
#, c-format
msgid "division by zero in `%E / 0'"
msgstr ""
-#: cp/typeck.c:3474
+#: cp/typeck.c:3128
#, c-format
msgid "division by zero in `%E / 0.'"
msgstr ""
-#: cp/typeck.c:3529
+#: cp/typeck.c:3158
#, fuzzy, c-format
msgid "division by zero in `%E %% 0'"
msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
-#: cp/typeck.c:3531
+#: cp/typeck.c:3160
#, fuzzy, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "Äéáßñåóç ìå ìçäÝí óôçí áðïôßìçóç: %s"
-#: cp/typeck.c:3611
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3614
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3645 cp/typeck.c:3650 cp/typeck.c:3741 cp/typeck.c:3746
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:3926
+#: cp/typeck.c:3553
msgid "comparison between types `%#T' and `%#T'"
msgstr ""
-#: cp/typeck.c:3962
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
-#: cp/typeck.c:4027
+#: cp/typeck.c:3654
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr ""
@@ -19441,298 +17892,288 @@ msgstr ""
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:4049
+#: cp/typeck.c:3676
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:4101
-msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-msgstr ""
-
-#: cp/typeck.c:4107
-msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-msgstr ""
-
-#: cp/typeck.c:4113
-msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-msgstr ""
-
-#: cp/typeck.c:4119
-msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-msgstr ""
-
-#: cp/typeck.c:4190
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
msgstr ""
-#: cp/typeck.c:4192
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:4194
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:4196
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
msgstr ""
-#: cp/typeck.c:4208
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:4245
-msgid "attempt to take address of bit-field structure member `%D'"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
+
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
msgstr ""
-#: cp/typeck.c:4322
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:4524
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:4536
+#: cp/typeck.c:4103
msgid "cannot %s a pointer to incomplete type `%T'"
msgstr ""
-#: cp/typeck.c:4543
+#: cp/typeck.c:4110
msgid "ISO C++ forbids %sing a pointer of type `%T'"
msgstr ""
-#: cp/typeck.c:4568
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:4602
+#: cp/typeck.c:4169
#, fuzzy
msgid "invalid use of `--' on bool variable `%D'"
msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
#. ARM $3.4
-#: cp/typeck.c:4635
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
msgstr ""
#. An expression like &memfn.
-#: cp/typeck.c:4702
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4704
+#: cp/typeck.c:4271
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4728
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4744
-msgid "unary `&'"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
msgstr ""
-#: cp/typeck.c:4864
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4877
+#: cp/typeck.c:4457
msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: cp/typeck.c:4893
+#: cp/typeck.c:4473
#, fuzzy
msgid "cannot create pointer to reference member `%D'"
msgstr "äåí åßíáé äõíáôüí íá ãßíåé `stat' ôï locale áñ÷åßï `%s'"
-#: cp/typeck.c:4961
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4977
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr ""
-#: cp/typeck.c:5181
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr ""
-#: cp/typeck.c:5189
+#: cp/typeck.c:4871
#, fuzzy
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
-#: cp/typeck.c:5228
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5248
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr ""
-#: cp/typeck.c:5261
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr ""
-#: cp/typeck.c:5270
+#: cp/typeck.c:4952
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:5276
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5303
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5306
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5329
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5345
+#: cp/typeck.c:5027
#, fuzzy
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò `%c' óôï ôýðï áëöáñéèìçôéêïý `%s'"
-#: cp/typeck.c:5387 cp/typeck.c:5392
+#: cp/typeck.c:5069 cp/typeck.c:5074
msgid "ISO C++ forbids casting to an array type `%T'"
msgstr ""
-#: cp/typeck.c:5400
+#: cp/typeck.c:5082
#, fuzzy
msgid "invalid cast to function type `%T'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: cp/typeck.c:5452
+#: cp/typeck.c:5138
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr ""
-#: cp/typeck.c:5498
+#: cp/typeck.c:5184
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr ""
-#: cp/typeck.c:5667
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr ""
-#: cp/typeck.c:5709
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:5782
+#: cp/typeck.c:5463
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr ""
-#: cp/typeck.c:5789
+#: cp/typeck.c:5470
msgid "ISO C++ forbids assignment of arrays"
msgstr ""
-#: cp/typeck.c:5932
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5940
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5951 cp/typeck.c:5970
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:5974
+#: cp/typeck.c:5619
msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:6044
+#: cp/typeck.c:5695
msgid "invalid conversion to type `%T' from type `%T'"
msgstr ""
-#: cp/typeck.c:6209
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6212
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
msgstr ""
-#: cp/typeck.c:6220
+#: cp/typeck.c:5871
msgid "passing `%T' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6223
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr ""
-#: cp/typeck.c:6233
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6236
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr ""
-#: cp/typeck.c:6323
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr ""
-#: cp/typeck.c:6326
+#: cp/typeck.c:5985
#, fuzzy
msgid "cannot convert `%T' to `%T' in %s"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/typeck.c:6413 cp/typeck.c:6415
+#: cp/typeck.c:6073 cp/typeck.c:6075
#, fuzzy
msgid "in passing argument %P of `%+D'"
msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: cp/typeck.c:6529
+#: cp/typeck.c:6190
#, fuzzy
msgid "returning reference to temporary"
msgstr "xdr_reference: ç ìíÞìç åîáíôëÞèçêå\n"
-#: cp/typeck.c:6536
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6548
+#: cp/typeck.c:6209
msgid "reference to local variable `%D' returned"
msgstr ""
-#: cp/typeck.c:6551
+#: cp/typeck.c:6212
msgid "address of local variable `%D' returned"
msgstr ""
-#: cp/typeck.c:6582
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr ""
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6590
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
#. You can't return a value from a constructor.
-#: cp/typeck.c:6593
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6610
+#: cp/typeck.c:6271
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr ""
-#: cp/typeck.c:6626
+#: cp/typeck.c:6287
msgid "return-statement with a value, in function declared with a void return type"
msgstr ""
-#: cp/typeck.c:6647
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr ""
@@ -19740,246 +18181,187 @@ msgstr ""
msgid "type `%T' is not a base type for type `%T'"
msgstr ""
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
#, fuzzy
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
#, fuzzy
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr "äåí åßíáé äõíáôü íá äçìéïõñãçèåß ôï %s `%s' óôï `%s'"
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
#, fuzzy
msgid "cannot declare field `%D' to be of type `%T'"
msgstr "Üãíùóôïò ÷áñáêôÞñáò óôï ðåäßï `%s' ôçò êáôçãïñßáò `%s'"
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
msgid "invalid return type for member function `%#D'"
msgstr ""
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
#, fuzzy
msgid "invalid return type for function `%#D'"
msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
#, fuzzy
msgid "cannot allocate an object of type `%T'"
msgstr "áäõíáìßá áíÜãíùóçò êáôáëüãïõ locale `%s'"
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr ""
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr ""
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr ""
-#: cp/typeck2.c:213
-#, fuzzy
-msgid "invalid use of undefined type `%#T'"
-msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
-
-#: cp/typeck2.c:214
-msgid "forward declaration of `%#T'"
-msgstr ""
-
-#: cp/typeck2.c:218
-#, fuzzy
-msgid "invalid use of `%T'"
-msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'."
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr ""
-
-#: cp/typeck2.c:236
-msgid "invalid use of template type parameter"
-msgstr ""
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr ""
-
-#: cp/typeck2.c:270
-#, fuzzy, c-format
-msgid "internal error #%d"
-msgstr "Åóùôåñéêü óöÜëìá NIS"
-
-#: cp/typeck2.c:325
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr ""
-#: cp/typeck2.c:335
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:337
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:340 cp/typeck2.c:346 cp/typeck2.c:352
-msgid "initializer list construction invalid for `%D'"
-msgstr ""
-
-#: cp/typeck2.c:341
-msgid "due to the presence of a constructor"
-msgstr ""
-
-#: cp/typeck2.c:347 cp/typeck2.c:353
-msgid "due to non-public access of member `%D'"
-msgstr ""
-
-#: cp/typeck2.c:365
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
msgstr ""
-#: cp/typeck2.c:374
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:436
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr ""
-
-#: cp/typeck2.c:516
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:572
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:579
+#: cp/typeck2.c:536
msgid "braces around scalar initializer for `%T'"
msgstr ""
-#: cp/typeck2.c:582
+#: cp/typeck2.c:539
msgid "ignoring extra initializers for `%T'"
msgstr ""
-#: cp/typeck2.c:594
+#: cp/typeck2.c:551
msgid "variable-sized object of type `%T' may not be initialized"
msgstr ""
-#: cp/typeck2.c:604
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr ""
-#: cp/typeck2.c:670
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:700 cp/typeck2.c:801
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:717
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:767
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
msgstr ""
-#: cp/typeck2.c:773
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
msgstr ""
-#: cp/typeck2.c:779
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
msgstr ""
-#: cp/typeck2.c:842 cp/typeck2.c:859
+#: cp/typeck2.c:811 cp/typeck2.c:827
msgid "missing initializer for member `%D'"
msgstr ""
-#: cp/typeck2.c:847
+#: cp/typeck2.c:816
msgid "uninitialized const member `%D'"
msgstr ""
-#: cp/typeck2.c:850
+#: cp/typeck2.c:818
msgid "member `%D' with uninitialized const fields"
msgstr ""
-#: cp/typeck2.c:853
+#: cp/typeck2.c:821
msgid "member `%D' is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:896
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:908
+#: cp/typeck2.c:880
msgid "no field `%D' in union being initialized"
msgstr ""
-#: cp/typeck2.c:916
+#: cp/typeck2.c:888
msgid "union `%T' with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:952
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1057
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1070
+#: cp/typeck2.c:1051
msgid "base operand of `->' has non-pointer type `%T'"
msgstr ""
-#: cp/typeck2.c:1084
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1086
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
msgstr ""
-#: cp/typeck2.c:1152
+#: cp/typeck2.c:1133
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr ""
-#: cp/typeck2.c:1159
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: cp/typeck2.c:1168
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr ""
-#: cp/typeck2.c:1205
+#: cp/typeck2.c:1186
msgid "`%T' fails to be a typedef or built-in type"
msgstr ""
-#: cp/typeck2.c:1278
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
msgstr ""
-#: cp/xref.c:826
-#, fuzzy, c-format
-msgid "can't create cross-reference file `%s'"
-msgstr "äåí åßíáé äõíáôüí íá ãßíåé `stat' ôï locale áñ÷åßï `%s'"
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr ""
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "ìç ðëÞñçò åããñáöÞ"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3847
+#: cp/cp-tree.h:3936
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
@@ -20037,12 +18419,14 @@ msgid "Export functions even if they can be inlined"
msgstr ""
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
-msgstr ""
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "äéðëüò ïñéóìüò óõíüëïõ"
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
-msgstr ""
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "äéðëüò ïñéóìüò óõíüëïõ"
#: cp/lang-options.h:84
msgid "Don't pedwarn about uses of Microsoft extensions"
@@ -20145,278 +18529,301 @@ msgstr ""
msgid "Don't announce deprecation of compiler features"
msgstr ""
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
-msgstr ""
+msgstr "óçìåßùóç:"
-#: f/bad.c:390
+#: f/bad.c:391
#, fuzzy
msgid "warning:"
msgstr "ðñïåéäïðïßçóç: "
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
-msgstr ""
+msgstr "ìïéñáßï:"
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
-msgstr ""
+msgstr "(óõíå÷ßæåôáé):"
-#: f/bad.c:486 f/bad.c:504
-#, c-format
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
-msgstr ""
+msgstr "[ÁÍÁÖ¸ÑÅÔÅ ÔÏ ÓÖ¶ËÌÁ!!] %"
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
-msgstr ""
+msgstr "[ÁÍÁÖ¸ÑÅÔÅ ÔÏ ÓÖÁËÌÁ!!]"
-#: f/com.c:3116
+#: f/com.c:3132
+#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr ""
-#: f/com.c:11596
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
msgstr ""
-#: f/com.c:11821
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr ""
-#: f/com.c:11823
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
msgstr ""
-#: f/com.c:11825
+#: f/com.c:11848
msgid "properly unless they all are 32 bits wide"
msgstr ""
-#: f/com.c:11826
-msgid "Please keep this in mind before you report bugs. g77 should"
-msgstr ""
-
-#: f/com.c:11827
-msgid "support non-32-bit machines better as of version 0.6"
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
msgstr ""
#. I/O will probably crash.
-#: f/com.c:11835
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr ""
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11844
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
" ASSIGN statement might fail"
msgstr ""
-#: f/com.c:13678
+#: f/com.c:13681
#, fuzzy
msgid "In statement function"
msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-#: f/com.c:13688
+#: f/com.c:13691
msgid "Outside of any program unit:\n"
msgstr ""
-#: f/com.c:15376
+#: f/com.c:15320
+#, no-c-format
msgid "%A from %B at %0%C"
msgstr ""
-#: f/com.c:15553
+#: f/com.c:15497
msgid "directory name must immediately follow -I"
msgstr ""
-#: f/com.c:15695
+#: f/com.c:15640
+#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr ""
-#: f/com.c:15729
+#: f/com.c:15675
+#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr ""
-#: f/expr.c:9611
+#: f/expr.c:9614
+#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr ""
-#: f/expr.c:9660
+#: f/expr.c:9664
+#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
msgstr ""
-#: f/expr.c:10520
+#: f/expr.c:10525
+#, no-c-format
msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr ""
-#: f/expr.c:10890
+#: f/expr.c:10896
+#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
msgstr ""
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr ""
-#: f/g77spec.c:395
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr ""
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, fuzzy, c-format
msgid "argument to `%s' missing"
msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
-#: f/g77spec.c:412
+#: f/g77spec.c:390
#, fuzzy
msgid "no input files; unwilling to write output files"
msgstr "%s: ôï áñ÷åßï åéóüäïõ åßíáé ôï áñ÷åßï åîüäïõ"
-#: f/implic.c:202
-#, fuzzy
+#: f/implic.c:203
+#, fuzzy, no-c-format
msgid "Implicit declaration of `%A' at %0"
msgstr "ðñïçãïýìåíç áõôïíüçôç äéáêýñçîç ôïõ `%s'"
-#: f/lex.c:272
-msgid "The meaning of `\\x' (at %0) varies with -traditional"
-msgstr ""
-
-#: f/lex.c:322
-msgid "The meaning of `\\a' (at %0) varies with -traditional"
-msgstr ""
-
# src/main.c:663
-#: f/lex.c:351
-#, fuzzy
+#: f/lex.c:326
+#, fuzzy, no-c-format
msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
# src/main.c:663
-#: f/lex.c:369
-#, fuzzy
+#: f/lex.c:345
+#, fuzzy, no-c-format
msgid "Unknown escape sequence `\\%A' at %0"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
-#: f/lex.c:377
-#, fuzzy, c-format
+#: f/lex.c:354
+#, fuzzy, no-c-format
msgid "Unterminated escape sequence `\\' at %0"
msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-#: f/lex.c:387
+#: f/lex.c:365
+#, no-c-format
msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
msgstr ""
-#: f/lex.c:414
+#: f/lex.c:393
+#, no-c-format
msgid "\\x used at %0 with no following hex digits"
msgstr ""
-#: f/lex.c:427
-#, fuzzy, c-format
+#: f/lex.c:407
+#, fuzzy, no-c-format
msgid "Hex escape at %0 out of range"
msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: f/lex.c:460
-#, fuzzy, c-format
+#: f/lex.c:441
+#, fuzzy, no-c-format
msgid "Escape sequence at %0 out of range for character"
msgstr "ìç Ýãêõñç äéáäéêáóßá äéáöõãÞò óôï ôÝëïò ôïõ áëöáñéèìéôéêïý"
-#: f/lex.c:583
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr ""
-
-#: f/lex.c:620
+#: f/lex.c:595
#, fuzzy
msgid "hex escape out of range"
msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: f/lex.c:666
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr ""
-
-#: f/lex.c:682
+#: f/lex.c:648
#, c-format
msgid "non-ANSI-standard escape sequence, `\\%c'"
msgstr ""
# src/main.c:663
-#: f/lex.c:695
+#: f/lex.c:661
#, fuzzy, c-format
msgid "non-ISO escape sequence `\\%c'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
# src/main.c:663
-#: f/lex.c:699
+#: f/lex.c:665
#, fuzzy, c-format
msgid "unknown escape sequence `\\%c'"
msgstr "¶ãíùóôç óõìâïëïóåéñÜ `%s'"
-#: f/lex.c:701
+#: f/lex.c:667
#, c-format
msgid "unknown escape sequence: `\\' followed by char code 0x%x"
msgstr ""
-#: f/lex.c:778
+#: f/lex.c:744
msgid "badly formed directive -- no closing quote"
msgstr ""
-#: f/lex.c:998
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr ""
+
+#: f/lex.c:964
msgid "bad directive -- missing close-quote"
msgstr ""
-#: f/lex.c:1112
+#: f/lex.c:1078
#, fuzzy, c-format
msgid "ignoring pragma: %s"
msgstr "áãíïïýíôáé üëá ôá ïñßóìáôá"
-#: f/lex.c:1319 f/lex.c:1363
+#: f/lex.c:1156
+#, fuzzy
+msgid "invalid #ident"
+msgstr "ìç Ýãêõñï äéêáßùìá"
+
+#: f/lex.c:1173
+#, fuzzy
+msgid "undefined or invalid # directive"
+msgstr "%%%c: êáôåõèõíôÞñéïò ãñáììÞ ìç Ýãêõñç."
+
+#: f/lex.c:1229
+#, fuzzy
+msgid "invalid #line"
+msgstr "ìç Ýãêõñïò áñéèìüò"
+
+#: f/lex.c:1285 f/lex.c:1329
msgid "use `#line ...' instead of `# ...' in first line"
msgstr ""
-#: f/lex.c:1465
-#, fuzzy, c-format
+#: f/lex.c:1339
+#, fuzzy
+msgid "invalid #-line"
+msgstr "ìç Ýãêõñïò áñéèìüò"
+
+#: f/lex.c:1432
+#, fuzzy, no-c-format
msgid "Null character at %0 -- line ignored"
msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï áñ÷åßï: "
-#: f/stb.c:12077
-#, c-format
+#: f/stb.c:12078
+#, no-c-format
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr ""
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr ""
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2635
+#: f/ste.c:2624
+#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr ""
-#: f/ste.c:2964
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr ""
-#: f/ste.c:2992
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr ""
-#: f/stu.c:304
+#: f/stu.c:305
+#, no-c-format
msgid "Local adjustable symbol `%A' at %0"
msgstr ""
-#: f/top.c:238
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr ""
+
+#: f/top.c:237
#, c-format
msgid "%s no longer supported -- try -fvxt"
msgstr ""
-#: f/top.c:240
+#: f/top.c:239
#, c-format
msgid "%s no longer supported -- try -fno-vxt -ff90"
msgstr ""
-#: f/top.c:308 f/top.c:310
+#: f/top.c:307 f/top.c:309
#, c-format
msgid "%s disabled, use normal debugging flags"
msgstr ""
@@ -20730,1690 +19137,863 @@ msgstr ""
msgid "Set the maximum line length"
msgstr "åëÜ÷éóôï ìÝãåèïò áëöáñéèìçôéêïý"
-#: f/bad.def:38
-#, fuzzy, c-format
+#: f/bad.def:39
+#, fuzzy, no-c-format
msgid "Missing first operand for binary operator at %0"
msgstr "Áãíùóôïò äõáäéêüò ÷åéñéóôÞò."
-#: f/bad.def:40
-#, fuzzy, c-format
+#: f/bad.def:42
+#, fuzzy, no-c-format
msgid "Zero-length character constant at %0"
msgstr "êåíü áëöáñéèìçôéêü"
-#: f/bad.def:42
-#, fuzzy, c-format
+#: f/bad.def:45
+#, fuzzy, no-c-format
msgid "Invalid token at %0 in expression or subexpression at %1"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: f/bad.def:44
+#: f/bad.def:48
+#, no-c-format
msgid "Missing operand for operator at %1 at end of expression at %0"
msgstr ""
-#: f/bad.def:46
+#: f/bad.def:51
+#, no-c-format
msgid "Label %A already defined at %1 when redefined at %0"
msgstr ""
-#: f/bad.def:48
+#: f/bad.def:54
+#, no-c-format
msgid "Unrecognized character at %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:50
+#: f/bad.def:57
+#, no-c-format
msgid "Label definition %A at %0 on empty statement (as of %1)"
msgstr ""
-#: f/bad.def:52
-msgid "Extra label definition %A at %0 -- perhaps previous label definition %B at %1 should have CONTINUE statement?"
-msgstr ""
-
-#: f/bad.def:53
-msgid "Extra label definition %A at %0 following label definition %B at %1"
-msgstr ""
-
-#: f/bad.def:55
+#: f/bad.def:65
+#, no-c-format
msgid "Invalid first character at %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:57
+#: f/bad.def:68
+#, no-c-format
msgid "Line too long as of %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:59
-#, c-format
+#: f/bad.def:71
+#, no-c-format
msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:61
-#, c-format
+#: f/bad.def:74
+#, no-c-format
msgid "Label number at %0 not in range 1-99999"
msgstr ""
-#: f/bad.def:63
+#: f/bad.def:77
+#, no-c-format
msgid "At %0, '!' and '/*' are not valid comment delimiters"
msgstr ""
-#: f/bad.def:65
-#, c-format
+#: f/bad.def:80
+#, no-c-format
msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:67
+#: f/bad.def:83
+#, no-c-format
msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:69
-#, c-format
-msgid "Continuation indicator at %0 invalid on first non-comment line of file or following END or INCLUDE [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:70
-#, c-format
-msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:72
-#, fuzzy
+#: f/bad.def:91
+#, fuzzy, no-c-format
msgid "Character constant at %0 has no closing apostrophe at %1"
msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-#: f/bad.def:74
+#: f/bad.def:94
+#, no-c-format
msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
msgstr ""
-#: f/bad.def:76
-#, c-format
+#: f/bad.def:97
+#, no-c-format
msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
msgstr ""
-#: f/bad.def:78
-#, fuzzy
+#: f/bad.def:100
+#, fuzzy, no-c-format
msgid "Integer at %0 too large"
msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: f/bad.def:80
-msgid "Integer at %0 too large except as negative number (preceded by unary minus sign)"
-msgstr ""
-
-#: f/bad.def:81
-msgid "Non-negative integer at %0 too large"
-msgstr ""
-
-#: f/bad.def:83
-msgid "Integer at %0 too large; even though preceded by unary minus sign at %1, subsequent operator at %2 has precedence over unary minus -- enclose unary minus sign and integer in parentheses to force precedence"
-msgstr ""
-
-#: f/bad.def:84
-msgid "Integer at %0 too large (%2 has precedence over %1)"
-msgstr ""
-
-#: f/bad.def:86
-msgid "Integer at %0 too large; even though preceded by minus sign at %1, because minus sign is a binary, not unary, operator -- insert plus sign before minus sign to change it to a unary minus sign"
-msgstr ""
-
-#: f/bad.def:87
-msgid "Integer at %0 too large (needs unary, not binary, minus at %1)"
-msgstr ""
-
-#: f/bad.def:89
-msgid "Integer at %0 too large; even though preceded by minus sign at %1, subsequent operator at %2 has precedence over minus, and that minus sign should be a unary minus rather than a binary minus -- insert plus sign before minus sign to change it to a unary minus sign, and enclose unary minus sign and integer in parentheses to force precedence"
-msgstr ""
-
-#: f/bad.def:90
-msgid "Integer at %0 too large (%2 has precedence over %1, which needs to be unary, not binary, minus)"
-msgstr ""
-
-#: f/bad.def:92
-#, c-format
+#: f/bad.def:123
+#, no-c-format
msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
msgstr ""
-#: f/bad.def:94
+#: f/bad.def:126
+#, no-c-format
msgid "Missing close-period between `.%A' at %0 and %1"
msgstr ""
-#: f/bad.def:96
-msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
-msgstr ""
-
-#: f/bad.def:98
-msgid "Missing value at %1 for real-number exponent at %0"
-msgstr ""
-
-#: f/bad.def:100
-msgid "Expected binary operator between expressions at %0 and at %1"
-msgstr ""
-
-#: f/bad.def:102
-msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator"
-msgstr ""
-
-#: f/bad.def:103
-msgid "`.%A.' at %0 not a binary operator"
-msgstr ""
-
-#: f/bad.def:105
-#, c-format
-msgid "Double-quote at %0 not followed by a string of valid octal digits at %1"
-msgstr ""
-
-#: f/bad.def:106 f/bad.def:115 f/bad.def:124
-#, fuzzy, c-format
-msgid "Invalid octal constant at %0"
-msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-
-#: f/bad.def:108 f/bad.def:120
-#, c-format
-msgid "Invalid binary digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:109 f/bad.def:121
-#, fuzzy, c-format
-msgid "Invalid binary constant at %0"
-msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-
-#: f/bad.def:111 f/bad.def:126
-#, c-format
-msgid "Invalid hexadecimal digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:112 f/bad.def:127
-#, fuzzy, c-format
-msgid "Invalid hexadecimal constant at %0"
-msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-
-#: f/bad.def:114 f/bad.def:123
-#, c-format
-msgid "Invalid octal digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:117
-msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1"
-msgstr ""
-
-#: f/bad.def:118
-#, fuzzy, c-format
-msgid "Invalid typeless constant at %1"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
#: f/bad.def:129
-msgid "%A part of complex constant at %0 must be a real or integer constant -- otherwise use CMPLX() or COMPLEX() in place of ()"
-msgstr ""
-
-#: f/bad.def:130
-msgid "%A part of complex constant at %0 not a real or integer constant"
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
msgstr ""
#: f/bad.def:132
-msgid "Invalid keyword `%%%A' at %0 in this context"
-msgstr ""
-
-#: f/bad.def:133
-msgid "Invalid keyword `%%%A' at %0"
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
msgstr ""
#: f/bad.def:135
-msgid "Null expression between %0 and %1 invalid in this context"
-msgstr ""
-
-#: f/bad.def:136
-#, fuzzy
-msgid "Invalid null expression between %0 and %1"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:138
-msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but neither subexpression at %1 or %2 is of character type"
-msgstr ""
-
-#: f/bad.def:139
-msgid "Invalid operands at %1 and %2 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:141
-msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but the subexpression at %1 is not of character type"
-msgstr ""
-
-#: f/bad.def:142
-msgid "Invalid operand at %1 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:144
-msgid "Concatenation operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:145
-msgid "Invalid operand (is %A) at %1 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:147
-msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but neither subexpression at %1 or %2 is of arithmetic type"
-msgstr ""
-
-#: f/bad.def:148
-msgid "Invalid operands at %1 and %2 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:150
-msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but the subexpression at %1 is not of arithmetic type"
-msgstr ""
-
-#: f/bad.def:151
-msgid "Invalid operand at %1 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:153
-msgid "Arithmetic operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:154
-msgid "Invalid operand (is %A) at %1 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:156
-msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:157
-#, fuzzy
-msgid "Unterminated character constant at %0 [info -f g77 M LEX]"
-msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-
-#: f/bad.def:159
-#, c-format
-msgid "Continuation line at %0 must have initial `&' since it continues a character context [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:160 f/bad.def:163
-msgid "Missing initial `&' on continuation line at %0 [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:162
-#, c-format
-msgid "Continuation line at %0 must have initial `&' since it continues a split lexical token [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:165
-#, c-format
-msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character"
-msgstr ""
-
-#: f/bad.def:166
-#, fuzzy, c-format
-msgid "Invalid continuation line at %0"
-msgstr "ìç Ýãêõñç ìÝôñçóç åðáíÜëçøçò `%s' óôç êáôáóêåõÞ [c*n]"
-
-#: f/bad.def:168
-msgid "Statement at %0 begins with invalid token [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:169
-msgid "Invalid statement at %0 [info -f g77 M LEX]"
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
msgstr ""
-#: f/bad.def:171
-#, c-format
+#: f/bad.def:253
+#, no-c-format
msgid "Semicolon at %0 is an invalid token"
msgstr ""
-#: f/bad.def:173
-msgid "Unrecognized statement name at %0 and invalid form for assignment or statement-function definition at %1"
-msgstr ""
-
-#: f/bad.def:174
-#, fuzzy, c-format
-msgid "Invalid statement at %0"
-msgstr "Ìç Ýãêõñç ðáñÜìåôñïò"
-
-#: f/bad.def:176
-#, fuzzy
-msgid "Invalid form for %A statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:177
-#, fuzzy
-msgid "Invalid %A statement at %0"
-msgstr "Ìç Ýãêõñç ðáñÜìåôñïò"
-
-#: f/bad.def:179
-#, c-format
-msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))"
-msgstr ""
-
-#: f/bad.def:180
-#, c-format
-msgid "Enclose hollerith constant in statement at %0 in parentheses"
-msgstr ""
-
-#: f/bad.def:182
-#, c-format
+#: f/bad.def:271
+#, no-c-format
msgid "Extraneous comma in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:184
-#, c-format
+#: f/bad.def:274
+#, no-c-format
msgid "Missing comma in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:186
-#, c-format
+#: f/bad.def:277
+#, no-c-format
msgid "Spurious sign in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:188
-#, c-format
+#: f/bad.def:280
+#, no-c-format
msgid "Spurious number in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:190
-#, c-format
+#: f/bad.def:283
+#, no-c-format
msgid "Spurious text trailing number in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:192
-#, c-format
-msgid "nP control edit descriptor not followed by comma but followed by edit descriptor at %0 other than D, E, EN, F, or G"
-msgstr ""
-
-#: f/bad.def:193
-#, c-format
-msgid "Invalid edit descriptor at %0 following nP control edit descriptor"
-msgstr ""
-
-#: f/bad.def:195
-#, fuzzy, c-format
+#: f/bad.def:291
+#, fuzzy, no-c-format
msgid "Unrecognized FORMAT specifier at %0"
msgstr "Üãíùóôï ðñüèåìá: %s"
-#: f/bad.def:197
-#, c-format
-msgid "Invalid I specifier in FORMAT statement at %0 -- correct form: [r]Iw.[m]"
-msgstr ""
-
-#: f/bad.def:198
-#, fuzzy, c-format
-msgid "Invalid I specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:200
-#, c-format
-msgid "Invalid B specifier in FORMAT statement at %0 -- correct form: [r]Bw.[m]"
-msgstr ""
-
-#: f/bad.def:201
-#, fuzzy, c-format
-msgid "Invalid B specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:203
-#, c-format
-msgid "Invalid O specifier in FORMAT statement at %0 -- correct form: [r]Ow.[m]"
-msgstr ""
-
-#: f/bad.def:204
-#, fuzzy, c-format
-msgid "Invalid O specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:206
-#, c-format
-msgid "Invalid Z specifier in FORMAT statement at %0 -- correct form: [r]Zw.[m]"
-msgstr ""
-
-#: f/bad.def:207
-#, fuzzy, c-format
-msgid "Invalid Z specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:209
-#, c-format
-msgid "Invalid F specifier in FORMAT statement at %0 -- correct form: [r]Fw.d"
-msgstr ""
-
-#: f/bad.def:210
-#, fuzzy, c-format
-msgid "Invalid F specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:212
-#, c-format
-msgid "Invalid E specifier in FORMAT statement at %0 -- correct form: [r]Ew.d[Ee]"
-msgstr ""
-
-#: f/bad.def:213
-#, fuzzy, c-format
-msgid "Invalid E specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:215
-#, c-format
-msgid "Invalid EN specifier in FORMAT statement at %0 -- correct form: [r]ENw.d[Ee]"
-msgstr ""
-
-#: f/bad.def:216
-#, c-format
-msgid "Invalid EN specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:218
-#, c-format
-msgid "Invalid G specifier in FORMAT statement at %0 -- correct form: [r]Gw.d[Ee]"
-msgstr ""
-
-#: f/bad.def:219
-#, fuzzy, c-format
-msgid "Invalid G specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:221
-#, c-format
-msgid "Invalid L specifier in FORMAT statement at %0 -- correct form: [r]Lw"
-msgstr ""
-
-#: f/bad.def:222
-#, fuzzy, c-format
-msgid "Invalid L specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:224
-#, c-format
-msgid "Invalid A specifier in FORMAT statement at %0 -- correct form: [r]A[w]"
-msgstr ""
-
-#: f/bad.def:225
-#, fuzzy, c-format
-msgid "Invalid A specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:227
-#, c-format
-msgid "Invalid D specifier in FORMAT statement at %0 -- correct form: [r]Dw.d"
-msgstr ""
-
-#: f/bad.def:228
-#, fuzzy, c-format
-msgid "Invalid D specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:230
-#, c-format
-msgid "Invalid Q specifier in FORMAT statement at %0 -- correct form: Q"
-msgstr ""
-
-#: f/bad.def:231
-#, fuzzy, c-format
-msgid "Invalid Q specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:233
-#, c-format
-msgid "Invalid $ specifier in FORMAT statement at %0 -- correct form: $"
-msgstr ""
-
-#: f/bad.def:234
-#, fuzzy, c-format
-msgid "Invalid $ specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:236
-#, c-format
-msgid "Invalid P specifier in FORMAT statement at %0 -- correct form: kP"
-msgstr ""
-
-#: f/bad.def:237
-#, fuzzy, c-format
-msgid "Invalid P specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:239
-#, c-format
-msgid "Invalid T specifier in FORMAT statement at %0 -- correct form: Tn"
-msgstr ""
-
-#: f/bad.def:240
-#, fuzzy, c-format
-msgid "Invalid T specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:242
-#, c-format
-msgid "Invalid TL specifier in FORMAT statement at %0 -- correct form: TLn"
-msgstr ""
-
-#: f/bad.def:243
-#, c-format
-msgid "Invalid TL specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:245
-#, c-format
-msgid "Invalid TR specifier in FORMAT statement at %0 -- correct form: TRn"
-msgstr ""
-
-#: f/bad.def:246
-#, c-format
-msgid "Invalid TR specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:248
-#, c-format
-msgid "Invalid X specifier in FORMAT statement at %0 -- correct form: nX"
-msgstr ""
-
-#: f/bad.def:249
-#, fuzzy, c-format
-msgid "Invalid X specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:251
-#, c-format
-msgid "Invalid S specifier in FORMAT statement at %0 -- correct form: S"
-msgstr ""
-
-#: f/bad.def:252
-#, fuzzy, c-format
-msgid "Invalid S specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:254
-#, c-format
-msgid "Invalid SP specifier in FORMAT statement at %0 -- correct form: SP"
-msgstr ""
-
-#: f/bad.def:255
-#, c-format
-msgid "Invalid SP specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:257
-#, c-format
-msgid "Invalid SS specifier in FORMAT statement at %0 -- correct form: SS"
-msgstr ""
-
-#: f/bad.def:258
-#, c-format
-msgid "Invalid SS specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:260
-#, c-format
-msgid "Invalid BN specifier in FORMAT statement at %0 -- correct form: BN"
-msgstr ""
-
-#: f/bad.def:261
-#, c-format
-msgid "Invalid BN specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:263
-#, c-format
-msgid "Invalid BZ specifier in FORMAT statement at %0 -- correct form: BZ"
-msgstr ""
-
-#: f/bad.def:264
-#, c-format
-msgid "Invalid BZ specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:266
-#, c-format
-msgid "Invalid : specifier in FORMAT statement at %0 -- correct form: :"
-msgstr ""
-
-#: f/bad.def:267
-#, fuzzy, c-format
-msgid "Invalid : specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:269
-#, c-format
-msgid "Invalid H specifier in FORMAT statement at %0 -- correct form: nHcharacters !where n is an unsigned decimal constant, and characters !contains exactly n characters (including spaces)"
-msgstr ""
-
-#: f/bad.def:270
-#, fuzzy, c-format
-msgid "Invalid H specifier in FORMAT statement at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:272
-#, c-format
+#: f/bad.def:419
+#, no-c-format
msgid "Missing close-parenthese(s) in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:274
-#, c-format
+#: f/bad.def:422
+#, no-c-format
msgid "Missing number following period in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:276
-#, c-format
+#: f/bad.def:425
+#, no-c-format
msgid "Missing number following `E' in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:278
-#, c-format
-msgid "Invalid token with FORMAT run-time expression at %0 -- use the traditional operators .LT., .LE., .GT., .GE., .EQ., and .NE. in place of the newer tokens <, <=, >, >=, ==, and !=, because > ends an expression within a FORMAT statement"
-msgstr ""
-
-#: f/bad.def:279
-#, fuzzy, c-format
-msgid "Invalid token with FORMAT run-time expression at %0"
-msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-
-#: f/bad.def:281
-#, c-format
+#: f/bad.def:433
+#, no-c-format
msgid "Spurious trailing comma preceding terminator at %0"
msgstr ""
-#: f/bad.def:283
+#: f/bad.def:436
+#, no-c-format
msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
msgstr ""
-#: f/bad.def:285
+#: f/bad.def:439
+#, no-c-format
msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
msgstr ""
-#: f/bad.def:287
-#, c-format
-msgid "Defined operator at %0 contains a nonletter -- must contain only letters A-Z (or a-z)"
-msgstr ""
-
-#: f/bad.def:288
-#, fuzzy, c-format
-msgid "Nonletter in defined operator at %0"
-msgstr "ðïôÝ äåí äçëþèçêå ôï ðñüãñáììá %d\n"
-
-#: f/bad.def:290
-#, c-format
-msgid "Invalid type-declaration attribute at %0 -- must be one of: DIMENSION(array-spec), EXTERNAL, INTRINSIC, PARAMETER, or SAVE"
-msgstr ""
-
-#: f/bad.def:291
-#, fuzzy, c-format
-msgid "Invalid type-declaration attribute at %0"
-msgstr "Ìç Ýãêõñç áíôáëëáãÞ"
-
-#: f/bad.def:293
-#, c-format
+#: f/bad.def:452
+#, no-c-format
msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
msgstr ""
-#: f/bad.def:295
+#: f/bad.def:455
+#, no-c-format
msgid "Reference to label at %1 inconsistent with its definition at %0"
msgstr ""
-#: f/bad.def:297
+#: f/bad.def:458
+#, no-c-format
msgid "Reference to label at %1 inconsistent with earlier reference at %0"
msgstr ""
-#: f/bad.def:299
+#: f/bad.def:461
+#, no-c-format
msgid "DO-statement reference to label at %1 follows its definition at %0"
msgstr ""
-#: f/bad.def:301
+#: f/bad.def:464
+#, no-c-format
msgid "Reference to label at %1 is outside block containing definition at %0"
msgstr ""
-#: f/bad.def:303
+#: f/bad.def:467
+#, no-c-format
msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
msgstr ""
-#: f/bad.def:305
+#: f/bad.def:470
+#, no-c-format
msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
msgstr ""
-#: f/bad.def:307
-#, c-format
+#: f/bad.def:473
+#, no-c-format
msgid "Label definition at %0 invalid on this kind of statement"
msgstr ""
-#: f/bad.def:309
-#, c-format
+#: f/bad.def:476
+#, no-c-format
msgid "Statement at %0 invalid in this context"
msgstr ""
-#: f/bad.def:311
-#, c-format
+#: f/bad.def:479
+#, no-c-format
msgid "Statement at %0 invalid in context established by statement at %1"
msgstr ""
-#: f/bad.def:313
-#, c-format
+#: f/bad.def:482
+#, no-c-format
msgid "Statement at %0 must specify construct name specified at %1"
msgstr ""
-#: f/bad.def:315
-#, c-format
+#: f/bad.def:485
+#, no-c-format
msgid "Construct name at %0 superfluous, no construct name specified at %1"
msgstr ""
-#: f/bad.def:317
-#, c-format
+#: f/bad.def:488
+#, no-c-format
msgid "Construct name at %0 not the same as construct name at %1"
msgstr ""
-#: f/bad.def:319
-#, c-format
+#: f/bad.def:491
+#, no-c-format
msgid "Construct name at %0 does not match construct name for any containing DO constructs"
msgstr ""
-#: f/bad.def:321
-#, c-format
+#: f/bad.def:494
+#, no-c-format
msgid "Label definition missing at %0 for DO construct specifying label at %1"
msgstr ""
-#: f/bad.def:323
-#, c-format
+#: f/bad.def:497
+#, no-c-format
msgid "Statement at %0 follows ELSE block for IF construct at %1"
msgstr ""
-#: f/bad.def:325
-#, c-format
+#: f/bad.def:500
+#, no-c-format
msgid "No label definition for FORMAT statement at %0"
msgstr ""
-#: f/bad.def:327
+#: f/bad.def:503
+#, no-c-format
msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
msgstr ""
-#: f/bad.def:329
+#: f/bad.def:506
+#, no-c-format
msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
msgstr ""
-#: f/bad.def:331
+#: f/bad.def:509
+#, no-c-format
msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
msgstr ""
-#: f/bad.def:333
-#, c-format
+#: f/bad.def:512
+#, no-c-format
msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
msgstr ""
-#: f/bad.def:335
-#, c-format
+#: f/bad.def:515
+#, no-c-format
msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
msgstr ""
-#: f/bad.def:337
-#, c-format
+#: f/bad.def:518
+#, no-c-format
msgid "Program unit name at %0 not the same as name at %1"
msgstr ""
-#: f/bad.def:339
-#, c-format
+#: f/bad.def:521
+#, no-c-format
msgid "Type name at %0 not the same as name at %1"
msgstr ""
-#: f/bad.def:341
-#, c-format
+#: f/bad.def:524
+#, no-c-format
msgid "End of source file before end of block started at %0"
msgstr ""
-#: f/bad.def:343
-#, c-format
+#: f/bad.def:527
+#, no-c-format
msgid "Undefined label, first referenced at %0"
msgstr ""
-#: f/bad.def:345
+#: f/bad.def:530
+#, no-c-format
msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
msgstr ""
-#: f/bad.def:347
+#: f/bad.def:533
+#, no-c-format
msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
msgstr ""
-#: f/bad.def:349
-#, c-format
+#: f/bad.def:536
+#, no-c-format
msgid "RETURN statement at %0 invalid within a main program unit"
msgstr ""
-#: f/bad.def:351
-#, c-format
+#: f/bad.def:539
+#, no-c-format
msgid "Alternate return specifier at %0 invalid within a main program unit"
msgstr ""
-#: f/bad.def:353
-#, c-format
+#: f/bad.def:542
+#, no-c-format
msgid "Alternate return specifier at %0 invalid within a function"
msgstr ""
-#: f/bad.def:355
-#, c-format
+#: f/bad.def:545
+#, no-c-format
msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
msgstr ""
-#: f/bad.def:357
+#: f/bad.def:548
+#, no-c-format
msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
msgstr ""
-#: f/bad.def:359
-#, c-format
+#: f/bad.def:551
+#, no-c-format
msgid "No components specified as of %0 for derived-type definition beginning at %1"
msgstr ""
-#: f/bad.def:361
-#, c-format
+#: f/bad.def:554
+#, no-c-format
msgid "No components specified as of %0 for structure definition beginning at %1"
msgstr ""
-#: f/bad.def:363
-#, c-format
+#: f/bad.def:557
+#, no-c-format
msgid "Missing structure name for outer structure definition at %0"
msgstr ""
-#: f/bad.def:365
-#, c-format
+#: f/bad.def:560
+#, no-c-format
msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
msgstr ""
-#: f/bad.def:367
+#: f/bad.def:563
+#, no-c-format
msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
msgstr ""
-#: f/bad.def:369
-#, c-format
+#: f/bad.def:566
+#, no-c-format
msgid "No components specified as of %0 for map beginning at %1"
msgstr ""
-#: f/bad.def:371
+#: f/bad.def:569
+#, no-c-format
msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
msgstr ""
-#: f/bad.def:373
+#: f/bad.def:572
+#, no-c-format
msgid "Missing %A specifier in statement at %0"
msgstr ""
-#: f/bad.def:375
-#, c-format
+#: f/bad.def:575
+#, no-c-format
msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
msgstr ""
-#: f/bad.def:377
+#: f/bad.def:578
+#, no-c-format
msgid "Conflicting I/O control specifications at %0 and %1"
msgstr ""
-#: f/bad.def:379
-#, c-format
+#: f/bad.def:581
+#, no-c-format
msgid "No UNIT= specifier in I/O control list at %0"
msgstr ""
-#: f/bad.def:381
+#: f/bad.def:584
+#, no-c-format
msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
msgstr ""
-#: f/bad.def:383
+#: f/bad.def:587
+#, no-c-format
msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
msgstr ""
-#: f/bad.def:385
-msgid "Unrecognized value for character constant at %0 -- expecting %A"
-msgstr ""
-
-#: f/bad.def:386
-#, fuzzy, c-format
-msgid "Unrecognized value for character constant at %0"
-msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-
-#: f/bad.def:388
+#: f/bad.def:595
+#, no-c-format
msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
msgstr ""
-#: f/bad.def:390
+#: f/bad.def:598
+#, no-c-format
msgid "Duplicate or overlapping case values/ranges at %0 and %1"
msgstr ""
-#: f/bad.def:392
+#: f/bad.def:601
+#, no-c-format
msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
msgstr ""
-#: f/bad.def:394
-#, c-format
+#: f/bad.def:604
+#, no-c-format
msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
msgstr ""
-#: f/bad.def:396
-#, c-format
-msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT"
-msgstr ""
-
-#: f/bad.def:397
-#, fuzzy, c-format
-msgid "Range specification at %0 invalid"
-msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)"
-
-#: f/bad.def:399
-#, c-format
-msgid "Range specification at %0 useless; first expression greater than second expression in range, so range can never be matched by any selection expression"
-msgstr ""
-
-#: f/bad.def:400
-#, c-format
-msgid "Useless range at %0"
-msgstr ""
-
-#: f/bad.def:402
-#, c-format
+#: f/bad.def:617
+#, no-c-format
msgid "Fortran 90 feature at %0 unsupported"
msgstr ""
-#: f/bad.def:404
-msgid "Invalid kind at %0 for type at %1 -- unsupported or not permitted"
-msgstr ""
-
-#: f/bad.def:405
-#, fuzzy, c-format
-msgid "Invalid kind at %0 for type at %1"
-msgstr "Ìç Ýãêõñïò åîáêñéâùôÞò(verifier) åîõðçñåôïýìåíïõ"
-
-#: f/bad.def:407
-msgid "Cannot establish implicit type for initial letter `%A' at %0 -- already explicitly established or used to set implicit type of some name, or backwards order of letters in letter range"
-msgstr ""
-
-#: f/bad.def:408
-msgid "Cannot establish implicit type for initial letter `%A' at %0"
-msgstr ""
-
-#: f/bad.def:410
+#: f/bad.def:630
+#, no-c-format
msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
msgstr ""
-#: f/bad.def:412
-msgid "Label definition %A (at %0) invalid -- must be in columns 1-5"
-msgstr ""
-
-#: f/bad.def:413
-#, fuzzy
-msgid "Invalid label definition %A (at %0)"
-msgstr "ìç Ýãêõñïò áñéèìüò áñ÷åßïõ óôç äÞëùóç ðåäßïõ: `%s'"
-
-#: f/bad.def:415
-#, c-format
+#: f/bad.def:638
+#, no-c-format
msgid "Null element at %0 for array reference at %1"
msgstr ""
-#: f/bad.def:417
+#: f/bad.def:641
+#, no-c-format
msgid "Too few elements (%A missing) as of %0 for array reference at %1"
msgstr ""
-#: f/bad.def:419
-#, c-format
+#: f/bad.def:644
+#, no-c-format
msgid "Too many elements as of %0 for array reference at %1"
msgstr ""
-#: f/bad.def:421
-#, c-format
+#: f/bad.def:647
+#, no-c-format
msgid "Missing colon as of %0 in substring reference for %1"
msgstr ""
-#: f/bad.def:423
-#, c-format
+#: f/bad.def:650
+#, no-c-format
msgid "Invalid use at %0 of substring operator on %1"
msgstr ""
-#: f/bad.def:425
-#, c-format
+#: f/bad.def:653
+#, no-c-format
msgid "Substring begin/end point at %0 out of defined range"
msgstr ""
-#: f/bad.def:427
-#, c-format
+#: f/bad.def:656
+#, no-c-format
msgid "Array element value at %0 out of defined range"
msgstr ""
-#: f/bad.def:429
+#: f/bad.def:659
+#, no-c-format
msgid "Expression at %0 has incorrect data type or rank for its context"
msgstr ""
-#: f/bad.def:431
+#: f/bad.def:662
+#, no-c-format
msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
msgstr ""
-#: f/bad.def:433
+#: f/bad.def:665
+#, no-c-format
msgid "%A step count known to be 0 (zero) at %0"
msgstr ""
-#: f/bad.def:435
+#: f/bad.def:668
+#, no-c-format
msgid "%A end value plus step count known to overflow at %0"
msgstr ""
-#: f/bad.def:437
+#: f/bad.def:671
+#, no-c-format
msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
msgstr ""
-#: f/bad.def:439
+#: f/bad.def:674
+#, no-c-format
msgid "%A begin, end, and step-count values known to result in no iterations at %0"
msgstr ""
-#: f/bad.def:441
+#: f/bad.def:677
+#, no-c-format
msgid "Type disagreement between expressions at %0 and %1"
msgstr ""
-#: f/bad.def:443
-#, c-format
-msgid "Run-time expression at %0 in FORMAT statement that does not follow the first executable statement in the program unit -- move the statement"
-msgstr ""
-
-#: f/bad.def:444
-msgid "FORMAT at %0 with run-time expression must follow first executable statement"
-msgstr ""
-
-#: f/bad.def:446
-msgid "Unexpected token at %0 in implied-DO construct at %1 -- form of implied-DO is `(item-list,do-var=start,end[,incr])'"
-msgstr ""
-
-#: f/bad.def:447
-#, c-format
-msgid "Unexpected token at %0 in implied-DO construct at %1"
-msgstr ""
-
-#: f/bad.def:449
+#: f/bad.def:690
+#, no-c-format
msgid "No specification for implied-DO iterator `%A' at %0"
msgstr ""
-#: f/bad.def:451
-#, c-format
+#: f/bad.def:693
+#, no-c-format
msgid "Gratuitous parentheses surround implied-DO construct at %0"
msgstr ""
-#: f/bad.def:453
-#, fuzzy, c-format
+#: f/bad.def:696
+#, fuzzy, no-c-format
msgid "Zero-size specification invalid at %0"
msgstr "%s: Ìç Ýãêõñç ñýèìéóç `%s'.\n"
-#: f/bad.def:455
-#, c-format
+#: f/bad.def:699
+#, no-c-format
msgid "Zero-size array at %0"
msgstr ""
-#: f/bad.def:457
-#, c-format
+#: f/bad.def:702
+#, no-c-format
msgid "Target machine does not support complex entity of kind specified at %0"
msgstr ""
-#: f/bad.def:459
-#, c-format
+#: f/bad.def:705
+#, no-c-format
msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
msgstr ""
-#: f/bad.def:461
-#, c-format
+#: f/bad.def:708
+#, no-c-format
msgid "Attempt to raise constant zero to a power at %0"
msgstr ""
-#: f/bad.def:463
-msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but neither subexpression at %1 or %2 is of logical type"
-msgstr ""
-
-#: f/bad.def:464
-msgid "Invalid operands at %1 and %2 for boolean operator at %0"
-msgstr ""
-
-#: f/bad.def:466
-msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but the subexpression at %1 is not of logical type"
-msgstr ""
-
-#: f/bad.def:467
-#, fuzzy
-msgid "Invalid operand at %1 for boolean operator at %0"
-msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-
-#: f/bad.def:469
-msgid "Boolean/logical operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning logical scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:470
-msgid "Invalid operand (is %A) at %1 for boolean operator at %0"
-msgstr ""
-
-#: f/bad.def:472
-msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type"
-msgstr ""
-
-#: f/bad.def:473
-#, fuzzy
-msgid "Invalid operand at %1 for .NOT. operator at %0"
-msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-
-#: f/bad.def:475
-msgid ".NOT. operator at %0 must operate on scalar subexpressions -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:476
-msgid "Invalid operand (is %A) at %1 for .NOT. operator at %0"
-msgstr ""
-
-#: f/bad.def:478
-msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but neither subexpression at %1 or %2 is of arithmetic or character type"
-msgstr ""
-
-#: f/bad.def:479
-msgid "Invalid operands at %1 and %2 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:481
-msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but the subexpression at %1 is not of arithmetic or character type"
-msgstr ""
-
-#: f/bad.def:482
-msgid "Invalid operand at %1 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:484
-msgid "Equality operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:485
-msgid "Invalid operand (is %A) at %1 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:487
-msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but neither subexpression at %1 or %2 is of integer, real, or character type"
-msgstr ""
-
-#: f/bad.def:488
-msgid "Invalid operands at %1 and %2 for relational operator at %0"
-msgstr ""
-
-#: f/bad.def:490
-msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but the subexpression at %1 is not of integer, real, or character type"
-msgstr ""
-
-#: f/bad.def:491
-#, fuzzy
-msgid "Invalid operand at %1 for relational operator at %0"
-msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-
-#: f/bad.def:493
-msgid "Relational operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning integer, real, or character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:494
-msgid "Invalid operand (is %A) at %1 for relational operator at %0"
-msgstr ""
-
-#: f/bad.def:496
-msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type"
-msgstr ""
-
-#: f/bad.def:497
-#, fuzzy
-msgid "Invalid reference to intrinsic `%A' at %0"
-msgstr "Ìç Ýãêõñç ðéóù-ðáñáðïìðÞ"
-
-#: f/bad.def:499
-#, fuzzy
-msgid "Too few arguments passed to intrinsic `%A' at %0"
-msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
-
-#: f/bad.def:500
-#, fuzzy
-msgid "Too few arguments for intrinsic `%A' at %0"
-msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
-
-#: f/bad.def:502
-#, fuzzy
-msgid "Too many arguments passed to intrinsic `%A' at %0"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: f/bad.def:503
-#, fuzzy
-msgid "Too many arguments for intrinsic `%A' at %0"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
-
-#: f/bad.def:505
-msgid "Reference to disabled intrinsic `%A' at %0"
-msgstr ""
-
-#: f/bad.def:506
-msgid "Disabled intrinsic `%A' at %0"
-msgstr ""
-
-#: f/bad.def:508
-msgid "Reference to intrinsic subroutine `%A' as if it were a function at %0"
-msgstr ""
-
-#: f/bad.def:509
-msgid "Function reference to intrinsic subroutine `%A' at %0"
-msgstr ""
-
-#: f/bad.def:511
-msgid "Reference to intrinsic function `%A' as if it were a subroutine at %0"
-msgstr ""
-
-#: f/bad.def:512
-msgid "Subroutine reference to intrinsic function `%A' at %0"
-msgstr ""
-
-#: f/bad.def:514
-msgid "Reference to unimplemented intrinsic `%A' at %0 -- use EXTERNAL to reference user-written procedure with this name"
-msgstr ""
-
-#: f/bad.def:515
-msgid "Unimplemented intrinsic `%A' at %0"
-msgstr ""
-
-#: f/bad.def:517
-msgid "Reference to unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
-msgstr ""
-
-#: f/bad.def:518
-msgid "Unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
-msgstr ""
-
-#: f/bad.def:520
+#: f/bad.def:806
+#, no-c-format
msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
msgstr ""
-#: f/bad.def:522
+#: f/bad.def:809
+#, no-c-format
msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
msgstr ""
-#: f/bad.def:524
+#: f/bad.def:812
+#, no-c-format
msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
msgstr ""
-#: f/bad.def:526
+#: f/bad.def:815
+#, no-c-format
msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
msgstr ""
-#: f/bad.def:528
+#: f/bad.def:818
+#, no-c-format
msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
msgstr ""
-#: f/bad.def:530
-#, fuzzy
+#: f/bad.def:821
+#, fuzzy, no-c-format
msgid "Unable to open INCLUDE file `%A' at %0"
msgstr "Äåí ìðüñåóá íá áíïßîù ôï áñ÷åßï %s"
-#: f/bad.def:532
-msgid "Attempt to modify variable `%A' at %0 while it serves as DO-loop iterator at %1"
-msgstr ""
-
-#: f/bad.def:533 f/bad.def:536
-msgid "Modification of DO-loop iterator `%A' at %0"
-msgstr ""
-
-#: f/bad.def:535
-msgid "Attempt to modify variable `%A' via item #%B in list at %0 while it serves as implied-DO iterator at %1"
-msgstr ""
-
-#: f/bad.def:538
-#, c-format
-msgid "Array has too many dimensions, as of dimension specifier at %0"
-msgstr ""
-
-#: f/bad.def:539
-#, fuzzy, c-format
-msgid "Too many dimensions at %0"
-msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç êëÞóç ôçò `%s'"
-
-#: f/bad.def:541
-#, c-format
+#: f/bad.def:839
+#, no-c-format
msgid "Null argument at %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:543
-#, c-format
+#: f/bad.def:842
+#, no-c-format
msgid "Null argument at %0 for procedure invocation at %1"
msgstr ""
-#: f/bad.def:545
+#: f/bad.def:845
+#, no-c-format
msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:547
+#: f/bad.def:848
+#, no-c-format
msgid "%A too many arguments as of %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:549
+#: f/bad.def:851
+#, no-c-format
msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
msgstr ""
-#: f/bad.def:551
-#, c-format
+#: f/bad.def:854
+#, no-c-format
msgid "Unsupported FORMAT specifier at %0"
msgstr ""
-#: f/bad.def:553
-#, c-format
+#: f/bad.def:857
+#, no-c-format
msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
msgstr ""
-#: f/bad.def:555
-msgid "Unsupported OPEN control item at %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED=, and USEROPEN= are not supported"
-msgstr ""
-
-#: f/bad.def:556
-#, c-format
-msgid "Unsupported OPEN control item at %0"
-msgstr ""
-
-#: f/bad.def:558
-msgid "Unsupported INQUIRE control item at %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE=, and WRITE= are not supported"
-msgstr ""
-
-#: f/bad.def:559
-#, c-format
-msgid "Unsupported INQUIRE control item at %0"
-msgstr ""
-
-#: f/bad.def:561
-msgid "Unsupported READ control item at %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS=, and SIZE= are not supported"
-msgstr ""
-
-#: f/bad.def:562
-#, c-format
-msgid "Unsupported READ control item at %0"
-msgstr ""
-
-#: f/bad.def:564
-msgid "Unsupported WRITE control item at %0 -- ADVANCE= and EOR= are not supported"
-msgstr ""
-
-#: f/bad.def:565
-#, c-format
-msgid "Unsupported WRITE control item at %0"
-msgstr ""
-
-#: f/bad.def:567
-#, c-format
+#: f/bad.def:880
+#, no-c-format
msgid "Unsupported VXT statement at %0"
msgstr ""
-#: f/bad.def:569
+#: f/bad.def:883
+#, no-c-format
msgid "Attempt to specify second initial value for `%A' at %0"
msgstr ""
-#: f/bad.def:571
+#: f/bad.def:886
+#, no-c-format
msgid "Too few initial values in list of initializers for `%A' at %0"
msgstr ""
-#: f/bad.def:573
-#, c-format
+#: f/bad.def:889
+#, no-c-format
msgid "Too many initial values in list of initializers starting at %0"
msgstr ""
-#: f/bad.def:575
+#: f/bad.def:892
+#, no-c-format
msgid "Array or substring specification for `%A' out of range in statement at %0"
msgstr ""
-#: f/bad.def:577
+#: f/bad.def:895
+#, no-c-format
msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
msgstr ""
-#: f/bad.def:579
+#: f/bad.def:898
+#, no-c-format
msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
msgstr ""
-#: f/bad.def:581
+#: f/bad.def:901
+#, no-c-format
msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
msgstr ""
-#: f/bad.def:583
-#, c-format
+#: f/bad.def:904
+#, no-c-format
msgid "Not an integer constant expression in implied do-loop in statement at %0"
msgstr ""
-#: f/bad.def:585
+#: f/bad.def:907
+#, no-c-format
msgid "Attempt to specify second initial value for element of `%A' at %0"
msgstr ""
-#: f/bad.def:587
+#: f/bad.def:910
+#, no-c-format
msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
msgstr ""
-#: f/bad.def:589
+#: f/bad.def:913
+#, no-c-format
msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
msgstr ""
-#: f/bad.def:591
+#: f/bad.def:916
+#, no-c-format
msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
msgstr ""
-#: f/bad.def:593
+#: f/bad.def:919
+#, no-c-format
msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:595
+#: f/bad.def:922
+#, no-c-format
msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:597
+#: f/bad.def:925
+#, no-c-format
msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:599
+#: f/bad.def:928
+#, no-c-format
msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
msgstr ""
-#: f/bad.def:601
-msgid "Padding of %A %D required before `%B' in common block `%C' at %0 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:602
-msgid "Padding of %A %D required before `%B' in common block `%C' at %0"
-msgstr ""
-
-#: f/bad.def:604
+#: f/bad.def:936
+#, no-c-format
msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
msgstr ""
-#: f/bad.def:606
+#: f/bad.def:939
+#, no-c-format
msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:608
+#: f/bad.def:942
+#, no-c-format
msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:610
+#: f/bad.def:945
+#, no-c-format
msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
msgstr ""
-#: f/bad.def:612
-#, c-format
-msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
-msgstr ""
-
-#: f/bad.def:613
-#, fuzzy, c-format
-msgid "Invalid length specification at %0"
-msgstr "Ìç Ýãêõñç ñýèìéóç èýñáò (port)"
-
-#: f/bad.def:615
-msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
-msgstr ""
-
-#: f/bad.def:616
-msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s)"
-msgstr ""
-
-#: f/bad.def:618
+#: f/bad.def:958
+#, no-c-format
msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
msgstr ""
-#: f/bad.def:620
-msgid "Common block `%A' initialized at %0 already initialized at %1 -- only one program unit may specify initial values for a particular common block"
-msgstr ""
-
-#: f/bad.def:621
-msgid "Common block `%A' initialized at %0 already initialized at %1"
-msgstr ""
-
-#: f/bad.def:623
-msgid "Initial padding for common block `%A' is %B %C at %0 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:624
-msgid "Initial padding for common block `%A' is %B %C at %0"
-msgstr ""
-
-#: f/bad.def:626
-msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:627
-msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1"
-msgstr ""
-
-#: f/bad.def:629
+#: f/bad.def:976
+#, no-c-format
msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
msgstr ""
-#: f/bad.def:631
+#: f/bad.def:979
+#, no-c-format
msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
msgstr ""
-#: f/bad.def:633
-msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1 -- use consistent definitions or reorder program units in source file"
-msgstr ""
-
-#: f/bad.def:634
-msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1"
-msgstr ""
-
-#: f/bad.def:636
-#, c-format
+#: f/bad.def:987
+#, no-c-format
msgid "Blank common initialized at %0"
msgstr ""
-#: f/bad.def:638
+#: f/bad.def:990
+#, no-c-format
msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
msgstr ""
-#: f/bad.def:640
+#: f/bad.def:993
+#, no-c-format
msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
msgstr ""
-#: f/bad.def:642
+#: f/bad.def:996
+#, no-c-format
msgid "Character `%A' (for example) is upper-case in symbol name at %0"
msgstr ""
-#: f/bad.def:644
+#: f/bad.def:999
+#, no-c-format
msgid "Character `%A' (for example) is lower-case in symbol name at %0"
msgstr ""
-#: f/bad.def:646
+#: f/bad.def:1002
+#, no-c-format
msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
msgstr ""
-#: f/bad.def:648
+#: f/bad.def:1005
+#, no-c-format
msgid "Initial character `%A' is lower-case in symbol name at %0"
msgstr ""
-#: f/bad.def:650
-msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0 -- unexpected behavior likely"
-msgstr ""
-
-#: f/bad.def:651
-msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0"
-msgstr ""
-
-#: f/bad.def:653
+#: f/bad.def:1013
+#, no-c-format
msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
msgstr ""
-#: f/bad.def:655
-#, c-format
+#: f/bad.def:1016
+#, no-c-format
msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
msgstr ""
-#: f/bad.def:657
-msgid "Invalid actual argument at %0 -- replace hollerith constants with %%REF('string') and typeless constants with INTEGER constant equivalents, or use -fugly-args or -fugly"
-msgstr ""
-
-#: f/bad.def:658
-#, fuzzy, c-format
-msgid "Invalid actual argument at %0"
-msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
-
-#: f/bad.def:660
-msgid "Quadruple-precision floating-point unsupported -- treating constant at %0 as double-precision"
-msgstr ""
-
-#: f/bad.def:661
-msgid "Quadruple-precision floating-point unsupported"
-msgstr ""
-
-#: f/bad.def:663
-msgid "Initialization of large (%B-unit) aggregate area `%A' at %0 currently very slow and takes lots of memory during g77 compile -- to be improved in 0.6"
-msgstr ""
-
-#: f/bad.def:664
-msgid "This could take a while (initializing `%A' at %0)..."
-msgstr ""
-
-#: f/bad.def:666
-#, c-format
+#: f/bad.def:1034
+#, no-c-format
msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
msgstr ""
-#: f/bad.def:668
-#, fuzzy, c-format
+#: f/bad.def:1037
+#, fuzzy, no-c-format
msgid "Truncating characters on right side of character constant at %0"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: f/bad.def:670
-#, c-format
+#: f/bad.def:1040
+#, no-c-format
msgid "Truncating characters on right side of hollerith constant at %0"
msgstr ""
-#: f/bad.def:672
-#, c-format
+#: f/bad.def:1043
+#, no-c-format
msgid "Truncating non-zero data on left side of numeric constant at %0"
msgstr ""
-#: f/bad.def:674
-#, c-format
+#: f/bad.def:1046
+#, no-c-format
msgid "Truncating non-zero data on left side of typeless constant at %0"
msgstr ""
-#: f/bad.def:676
-#, fuzzy
+#: f/bad.def:1049
+#, fuzzy, no-c-format
msgid "Typeless constant at %0 too large"
msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: f/bad.def:678
-#, c-format
+#: f/bad.def:1052
+#, no-c-format
msgid "First-column ampersand continuation at %0"
msgstr ""
-#: f/bad.def:680 f/bad.def:682
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:684 f/bad.def:686
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:688 f/bad.def:690
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:692
+#: f/bad.def:1073
+#, no-c-format
msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:694
+#: f/bad.def:1076
+#, no-c-format
msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:696 f/bad.def:698
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:700
-#, fuzzy
+#: f/bad.def:1085
+#, fuzzy, no-c-format
msgid "Array `%A' at %0 is too large to handle"
msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
-#: f/bad.def:702
+#: f/bad.def:1088
+#, no-c-format
msgid "Statement function `%A' defined at %0 is not used"
msgstr ""
-#: f/bad.def:704
+#: f/bad.def:1091
+#, no-c-format
msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
msgstr ""
-#: f/bad.def:706
-#, fuzzy
+#: f/bad.def:1094
+#, fuzzy, no-c-format
msgid "Internal compiler error -- cannot perform operation"
msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
@@ -22430,25 +20010,24 @@ msgid "In entity"
msgstr ""
#: f/info-k.def:34
-#, fuzzy
msgid "In function"
-msgstr "Óôç óõíÜñôçóç `%s':"
+msgstr "Óôç óõíÜñôçóç"
#: f/info-k.def:35
msgid "In subroutine"
-msgstr ""
+msgstr "Óôçí õðïñïõôßíá"
#: f/info-k.def:36
msgid "In program"
-msgstr ""
+msgstr "Óôï ðñüãñáììá"
#: f/info-k.def:37
msgid "In block-data unit"
-msgstr ""
+msgstr "Óôç ìïíÜäá ìðëïê-äåäïìÝíùí"
#: f/info-k.def:38
msgid "In common block"
-msgstr ""
+msgstr "Óôï êïéíü ìðëïê"
#: f/info-k.def:39
msgid "In construct"
@@ -22462,321 +20041,336 @@ msgstr ""
msgid "In anything"
msgstr ""
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:988
+#: java/check-init.c:990
#, c-format
msgid "final field '%s' may not have been initialized"
msgstr ""
-#: java/class.c:567 java/class.c:592
+#: java/class.c:539 java/class.c:564
#, fuzzy
msgid "internal error - too many interface type"
msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-#: java/class.c:742
+#: java/class.c:677
msgid "bad method signature"
msgstr ""
-#: java/class.c:787
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr ""
-#: java/class.c:789
+#: java/class.c:728
#, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr ""
-#: java/class.c:800
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr ""
-#: java/class.c:1149
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr ""
-#: java/class.c:1407
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr ""
-#: java/class.c:2092
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr ""
-#: java/decl.c:1511
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1599
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1609
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr ""
-#: java/expr.c:550
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1504
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr ""
-#: java/expr.c:1533
+#: java/expr.c:1563
#, fuzzy, c-format
msgid "field `%s' not found"
msgstr "ôï áñ÷åßï ÷Üñôç ÷áñáêôÞñùí `%s' äåí âñÝèçêå"
-#: java/expr.c:1684
+#: java/expr.c:1715
#, fuzzy
msgid "ret instruction not implemented"
msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
-#: java/expr.c:1821
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2025
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2037
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2047
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2052
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2060
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2337
+#: java/expr.c:2396
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2343
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2366
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr ""
-#: java/expr.c:2371
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr ""
-#: java/expr.c:2378
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr ""
-#: java/expr.c:2616
+#: java/expr.c:2684
#, fuzzy, c-format
msgid "can't expand %s"
msgstr "%s: áäõíáìßá óôçí áíÜãíùóç %s: %s\n"
-#: java/expr.c:2792
+#: java/expr.c:2861
#, fuzzy
msgid "invalid PC in line number table"
msgstr "ìç Ýãêõñïò áñ÷éêüò áñéèìüò ãñáììÞò: `%s'"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2837
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2874
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3193
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr ""
-#: java/jcf-parse.c:379
+#: java/jcf-parse.c:338
#, fuzzy
msgid "bad string constant"
msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
-#: java/jcf-parse.c:435
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:693
+#: java/jcf-parse.c:528
+#, fuzzy, c-format
+msgid "can't reopen %s"
+msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
+
+#: java/jcf-parse.c:533
+#, fuzzy, c-format
+msgid "can't close %s"
+msgstr "äåí åßíáé äõíáôü íá áëëá÷ôïýí ôá äéêáéþìáôá ôïõ `%s'"
+
+#: java/jcf-parse.c:619
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "äå âñÝèçêå ï ðñïåðåîåñãáóôÞò C: %s \n"
-#: java/jcf-parse.c:705
+#: java/jcf-parse.c:631
#, fuzzy
msgid "not a valid Java .class file"
msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ïíüìáôïò êëÜóçò"
-#: java/jcf-parse.c:708
+#: java/jcf-parse.c:634
#, fuzzy
msgid "error while parsing constant pool"
msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôïõ áñ÷åßïõ åîüäïõ"
-#: java/jcf-parse.c:711
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:723
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:741
+#: java/jcf-parse.c:667
#, fuzzy
msgid "error while parsing fields"
msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôïõ áñ÷åßïõ åîüäïõ"
-#: java/jcf-parse.c:744
+#: java/jcf-parse.c:670
#, fuzzy
msgid "error while parsing methods"
msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôçò åéóüäïõ"
-#: java/jcf-parse.c:747
+#: java/jcf-parse.c:673
#, fuzzy
msgid "error while parsing final attributes"
msgstr "óöÜëìá êáôÜ ôï êëåßóéìï ôçò åéóüäïõ `%s'"
-#: java/jcf-parse.c:761
+#: java/jcf-parse.c:687
#, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr ""
-#: java/jcf-parse.c:846
+#: java/jcf-parse.c:777
#, fuzzy
msgid "missing Code attribute"
msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá"
-#: java/jcf-parse.c:1081
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1097
+#: java/jcf-parse.c:1030
#, fuzzy
msgid "no input file specified"
msgstr "Äåí õðÜñ÷ïõí áñ÷åßá åéóüäïõ"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1059
#, fuzzy, c-format
msgid "can't close input file %s"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åéóüäïõ `%s'"
-#: java/jcf-parse.c:1166
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-write.c:2626
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:2933
+#: java/jcf-write.c:2988
#, fuzzy
msgid "field initializer type mismatch"
msgstr "Êáêïóõíôáßñéáóìá ôýðùí êáôá÷þñçóçò/ðßíáêá"
-#: java/jcf-write.c:3342
+#: java/jcf-write.c:3419
#, fuzzy, c-format
msgid "can't create directory %s"
msgstr "%s: Äåí åßíáé äõíáôüí íá äçìéïõñãçèåß ï êáôÜëïãïò %s: %s\n"
-#: java/jcf-write.c:3369
+#: java/jcf-write.c:3473
#, fuzzy, c-format
-msgid "can't to open %s"
+msgid "can't create %s"
msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
-#: java/jv-scan.c:183
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, fuzzy, c-format
msgid "can't open output file `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ åîüäïõ `%s'"
-#: java/jv-scan.c:222
+#: java/jv-scan.c:224
#, fuzzy, c-format
msgid "file not found `%s'"
msgstr "Ìç Ýãêõñç åðéëïãÞ `%s'"
-#: java/jvspec.c:384
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr ""
-#: java/jvspec.c:390
+#: java/jvspec.c:429
+#, fuzzy, c-format
+msgid "`%s' is not a valid class name"
+msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
+
+#: java/jvspec.c:435
#, fuzzy
-msgid "-R requires -o"
+msgid "--resource requires -o"
msgstr "ÅóöáëìÝíïò êþäéêáò áßôçóçò"
-#: java/jvspec.c:397
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr ""
-#: java/jvspec.c:404
+#: java/jvspec.c:449
#, fuzzy
msgid "cannot specify both -C and -o"
msgstr "äåí åßíáé äõíáôü íá ðáñáëçöèåß ï ÷ñÞóôçò êáé ç ïìÜäá"
-#: java/jvspec.c:416
+#: java/jvspec.c:461
#, fuzzy
msgid "cannot create temporary file"
msgstr "ÓÖÁËÌÁ: Áäõíáìßá äçìéïõñãßáò ðñïóùñéíïý áñ÷åßïõ ãéá áëëáãÞ"
-#: java/jvspec.c:444
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr ""
-#: java/jvspec.c:501
+#: java/jvspec.c:538
#, fuzzy
msgid "cannot specify `main' class when not linking"
msgstr "Äåí åßíáé äõíáôü íá äçëùèåß áñéèìüò óôçëþí óôçí ðáñÜëëçëç åêôýðùóç."
-#: java/lang.c:433
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:449
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr ""
@@ -22795,140 +20389,140 @@ msgstr ""
msgid "can't mangle %s"
msgstr "Äåí åßíáé äõíáôüí íá åêôåëåóôåß ôï %s"
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
#, fuzzy
msgid "internal error - invalid Utf8 name"
msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
-#: ../../../gcc/vanilla/gcc/java/parse.y:748
-#: ../../../gcc/vanilla/gcc/java/parse.y:786
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
#, fuzzy
-msgid "Missing name"
+msgid "Missing term"
msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:750
-#: ../../../gcc/vanilla/gcc/java/parse.y:788
-#: ../../../gcc/vanilla/gcc/java/parse.y:813
-#: ../../../gcc/vanilla/gcc/java/parse.y:997
-#: ../../../gcc/vanilla/gcc/java/parse.y:1344
-#: ../../../gcc/vanilla/gcc/java/parse.y:1555
-#: ../../../gcc/vanilla/gcc/java/parse.y:1557
-#: ../../../gcc/vanilla/gcc/java/parse.y:1786
-#: ../../../gcc/vanilla/gcc/java/parse.y:1812
-#: ../../../gcc/vanilla/gcc/java/parse.y:1823
-#: ../../../gcc/vanilla/gcc/java/parse.y:1834
-#: ../../../gcc/vanilla/gcc/java/parse.y:1846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr "áíáìåíüôáí ';'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:811
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+#, fuzzy
+msgid "Missing name"
+msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
msgstr "áíáìåíüôáí '*'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:825
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:860
-#: ../../../gcc/vanilla/gcc/java/parse.y:862
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
#, fuzzy
msgid "Missing class name"
msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:865
-#: ../../../gcc/vanilla/gcc/java/parse.y:869
-#: ../../../gcc/vanilla/gcc/java/parse.y:877
-#: ../../../gcc/vanilla/gcc/java/parse.y:1042
-#: ../../../gcc/vanilla/gcc/java/parse.y:1290
-#: ../../../gcc/vanilla/gcc/java/parse.y:1292
-#: ../../../gcc/vanilla/gcc/java/parse.y:1621
-#: ../../../gcc/vanilla/gcc/java/parse.y:1857
-#: ../../../gcc/vanilla/gcc/java/parse.y:1889
-#: ../../../gcc/vanilla/gcc/java/parse.y:1941
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr "áíáìåíüôáí '{'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:879
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:889
-#: ../../../gcc/vanilla/gcc/java/parse.y:905
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
#, fuzzy
msgid "Missing interface name"
msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:976
-#: ../../../gcc/vanilla/gcc/java/parse.y:1309
-#: ../../../gcc/vanilla/gcc/java/parse.y:1370
-#: ../../../gcc/vanilla/gcc/java/parse.y:1579
-#: ../../../gcc/vanilla/gcc/java/parse.y:1801
-#: ../../../gcc/vanilla/gcc/java/parse.y:1810
-#: ../../../gcc/vanilla/gcc/java/parse.y:1821
-#: ../../../gcc/vanilla/gcc/java/parse.y:1832
-#: ../../../gcc/vanilla/gcc/java/parse.y:1844
-#: ../../../gcc/vanilla/gcc/java/parse.y:1861
-#: ../../../gcc/vanilla/gcc/java/parse.y:1863
-#: ../../../gcc/vanilla/gcc/java/parse.y:1934
-#: ../../../gcc/vanilla/gcc/java/parse.y:2105
-#: ../../../gcc/vanilla/gcc/java/parse.y:2167
-#: ../../../gcc/vanilla/gcc/java/parse.y:2319
-#: ../../../gcc/vanilla/gcc/java/parse.y:2331
-#: ../../../gcc/vanilla/gcc/java/parse.y:2338
-#: ../../../gcc/vanilla/gcc/java/parse.y:2345
-#: ../../../gcc/vanilla/gcc/java/parse.y:2356
-#: ../../../gcc/vanilla/gcc/java/parse.y:2358
-#: ../../../gcc/vanilla/gcc/java/parse.y:2396
-#: ../../../gcc/vanilla/gcc/java/parse.y:2398
-#: ../../../gcc/vanilla/gcc/java/parse.y:2400
-#: ../../../gcc/vanilla/gcc/java/parse.y:2421
-#: ../../../gcc/vanilla/gcc/java/parse.y:2423
-#: ../../../gcc/vanilla/gcc/java/parse.y:2425
-#: ../../../gcc/vanilla/gcc/java/parse.y:2441
-#: ../../../gcc/vanilla/gcc/java/parse.y:2443
-#: ../../../gcc/vanilla/gcc/java/parse.y:2464
-#: ../../../gcc/vanilla/gcc/java/parse.y:2466
-#: ../../../gcc/vanilla/gcc/java/parse.y:2468
-#: ../../../gcc/vanilla/gcc/java/parse.y:2496
-#: ../../../gcc/vanilla/gcc/java/parse.y:2498
-#: ../../../gcc/vanilla/gcc/java/parse.y:2500
-#: ../../../gcc/vanilla/gcc/java/parse.y:2502
-#: ../../../gcc/vanilla/gcc/java/parse.y:2520
-#: ../../../gcc/vanilla/gcc/java/parse.y:2522
-#: ../../../gcc/vanilla/gcc/java/parse.y:2533
-#: ../../../gcc/vanilla/gcc/java/parse.y:2544
-#: ../../../gcc/vanilla/gcc/java/parse.y:2555
-#: ../../../gcc/vanilla/gcc/java/parse.y:2566
-#: ../../../gcc/vanilla/gcc/java/parse.y:2577
-#: ../../../gcc/vanilla/gcc/java/parse.y:2590
-#: ../../../gcc/vanilla/gcc/java/parse.y:2594
-#: ../../../gcc/vanilla/gcc/java/parse.y:2596
-#: ../../../gcc/vanilla/gcc/java/parse.y:2609
-#, fuzzy
-msgid "Missing term"
-msgstr "¸÷åé ðáñáëçöèåß åíôïëÞ"
-
-#: ../../../gcc/vanilla/gcc/java/parse.y:991
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1008
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
#, fuzzy
msgid "Invalid declaration"
msgstr "Ìç Ýãêõñç áíôáëëáãÞ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1014
-msgid "Can't specify array dimension in a declaration"
-msgstr ""
-
-#: ../../../gcc/vanilla/gcc/java/parse.y:1016
-#: ../../../gcc/vanilla/gcc/java/parse.y:1092
-#: ../../../gcc/vanilla/gcc/java/parse.y:2142
-#: ../../../gcc/vanilla/gcc/java/parse.y:2164
-#: ../../../gcc/vanilla/gcc/java/parse.y:2168
-#: ../../../gcc/vanilla/gcc/java/parse.y:2203
-#: ../../../gcc/vanilla/gcc/java/parse.y:2280
-#: ../../../gcc/vanilla/gcc/java/parse.y:2290
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr "áíáìåíüôáí ']'"
@@ -22936,232 +20530,239 @@ msgstr "áíáìåíüôáí ']'"
# src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
# src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
# src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
-#: ../../../gcc/vanilla/gcc/java/parse.y:1020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
#, fuzzy
msgid "Unbalanced ']'"
msgstr "Ìç éóóïñïðçìÝíï ["
-#: ../../../gcc/vanilla/gcc/java/parse.y:1056
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1062
-#: ../../../gcc/vanilla/gcc/java/parse.y:1064
-#: ../../../gcc/vanilla/gcc/java/parse.y:2025
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
#, fuzzy
msgid "Identifier expected"
msgstr "ÐñïóäéïñéóôÞò áöáéñÝèçêå"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1067
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1090
-#: ../../../gcc/vanilla/gcc/java/parse.y:1535
-#: ../../../gcc/vanilla/gcc/java/parse.y:1542
-#: ../../../gcc/vanilla/gcc/java/parse.y:1551
-#: ../../../gcc/vanilla/gcc/java/parse.y:1553
-#: ../../../gcc/vanilla/gcc/java/parse.y:1581
-#: ../../../gcc/vanilla/gcc/java/parse.y:1689
-#: ../../../gcc/vanilla/gcc/java/parse.y:1970
-#: ../../../gcc/vanilla/gcc/java/parse.y:2023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr "áíáìåíüôáí '('"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1106
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
#, fuzzy
msgid "Missing formal parameter term"
msgstr "ÅëëéðÞò Þ êáêïó÷çìáôéóìÝíç éäéüôçôá"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1121
-#: ../../../gcc/vanilla/gcc/java/parse.y:1126
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
#, fuzzy
msgid "Missing identifier"
msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1146
-#: ../../../gcc/vanilla/gcc/java/parse.y:1155
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1307
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
#, fuzzy
msgid "Invalid interface type"
msgstr "Ìç Ýãêõñïò åîáêñéâùôÞò(verifier) åîõðçñåôïýìåíïõ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1499
-#: ../../../gcc/vanilla/gcc/java/parse.y:1668
-#: ../../../gcc/vanilla/gcc/java/parse.y:1670
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr "áíáìåíüôáí ':'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1521
-#: ../../../gcc/vanilla/gcc/java/parse.y:1526
-#: ../../../gcc/vanilla/gcc/java/parse.y:1531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
#, fuzzy
msgid "Invalid expression statement"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1549
-#: ../../../gcc/vanilla/gcc/java/parse.y:1577
-#: ../../../gcc/vanilla/gcc/java/parse.y:1617
-#: ../../../gcc/vanilla/gcc/java/parse.y:1685
-#: ../../../gcc/vanilla/gcc/java/parse.y:1753
-#: ../../../gcc/vanilla/gcc/java/parse.y:1859
-#: ../../../gcc/vanilla/gcc/java/parse.y:1927
-#: ../../../gcc/vanilla/gcc/java/parse.y:2017
-#: ../../../gcc/vanilla/gcc/java/parse.y:2019
-#: ../../../gcc/vanilla/gcc/java/parse.y:2027
-#: ../../../gcc/vanilla/gcc/java/parse.y:2263
-#: ../../../gcc/vanilla/gcc/java/parse.y:2265
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr "áíáìåíüôáí '('"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1619
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
#, fuzzy
msgid "Missing term or ')'"
msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1666
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
#, fuzzy
msgid "Missing or invalid constant expression"
msgstr "%s: ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç: %s"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1687
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1726
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
#, fuzzy
msgid "Invalid control expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1728
-#: ../../../gcc/vanilla/gcc/java/parse.y:1730
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
#, fuzzy
msgid "Invalid update expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1755
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
#, fuzzy
msgid "Invalid init statement"
msgstr "Ìç Ýãêõñç ðáñÜìåôñïò"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1930
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1972
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1974
-#: ../../../gcc/vanilla/gcc/java/parse.y:1976
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
#, fuzzy
msgid "'class' expected"
msgstr "áíáìåíüôáí ')'\n"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2021
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
#, fuzzy
msgid "')' or term expected"
msgstr "áíáìåíüôáí ')'\n"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2140
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr "áíáìåíüôáí '['"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2218
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
#, fuzzy
msgid "Field expected"
msgstr "Ç èõãáôñéêÞ äéåñãáóßá ôåñìáôßóôçêå"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2275
-#: ../../../gcc/vanilla/gcc/java/parse.y:2285
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2389
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
#, fuzzy
msgid "']' expected, invalid type expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2392
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
#, fuzzy
msgid "Invalid type expression"
msgstr "Ìç Ýãêõñç êáíïíéêÞ Ýêöñáóç"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2504
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
#, fuzzy
msgid "Invalid reference type"
msgstr "Ìç Ýãêõñç ðéóù-ðáñáðïìðÞ"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2982
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2984
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2993
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:3053
-#: ../../../gcc/vanilla/gcc/java/parse.y:3055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
+"%s.\n"
+"%s"
-#: ../../../gcc/vanilla/gcc/java/parse.y:6789
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:6860
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:12191
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field `%s'"
msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
-#: ../../../gcc/vanilla/gcc/java/parse.y:12196
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, fuzzy, c-format
msgid "not a static field `%s'"
msgstr "áäõíáìßá ðñïóðÝëáóçò(stat()) áñ÷åßïõ `%s': %s"
-#: ../../../gcc/vanilla/gcc/java/parse.y:12239
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, fuzzy, c-format
msgid "No case for %s"
msgstr "ÓöÜëìá åðåîåñãáóßáò: %s"
-#: ../../../gcc/vanilla/gcc/java/parse.y:13140
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, fuzzy, c-format
msgid "unregistered operator %s"
msgstr "ðïôÝ äåí äçëþèçêå ôï ðñüãñáììá %d\n"
-#: java/typeck.c:566
+#: java/typeck.c:553
#, fuzzy
msgid "junk at end of signature string"
msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
-#: java/verify.c:480
+#: java/verify.c:479
#, fuzzy
msgid "bad pc in exception_table"
msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -23171,169 +20772,196 @@ msgid "Disable automatic array bounds checking"
msgstr ""
#: java/lang-options.h:34
-msgid "Assume native functions are implemented using JNI"
+msgid "Disable assignability checks for stores into object arrays"
msgstr ""
#: java/lang-options.h:36
-msgid "Set class path and suppress system path"
+msgid "Assume native functions are implemented using JNI"
msgstr ""
#: java/lang-options.h:38
-msgid "Set class path"
+msgid "Replace system path"
msgstr ""
#: java/lang-options.h:40
-msgid "Choose class whose main method should be used"
+msgid "Set class path"
msgstr ""
#: java/lang-options.h:42
-msgid "Choose input encoding (default comes from locale)"
+msgid "Set class path (deprecated: use --classpath instead)"
msgstr ""
#: java/lang-options.h:44
-msgid "Add directory to class path"
+msgid "Choose class whose main method should be used"
msgstr ""
#: java/lang-options.h:46
-msgid "Directory where class files should be written"
+msgid "Choose input encoding (default comes from locale)"
msgstr ""
#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr ""
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr ""
+
+#: java/lang-options.h:52
#, fuzzy
msgid "Warn if modifiers are specified when not necessary"
msgstr "äå ìðïñïýí íá äçëþíïíôáé áñ÷åßá üôáí ãßíåôáé ÷ñÞóç ôïõ --string"
-#: java/lang-options.h:50
+#: java/lang-options.h:54
msgid "Warn if deprecated empty statements are found"
msgstr ""
-#: java/lang-options.h:52
+#: java/lang-options.h:56
msgid "Warn if .class files are out of date"
msgstr ""
-#: java/lang-options.h:54
+#: java/lang-options.h:58
msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: java/lang-options.h:56
+#: java/lang-options.h:60
msgid "Never optimize static class initialization code"
msgstr ""
-#: objc/objc-act.c:606
-msgid "no class name specified as argument to -fconstant-string-class"
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
msgstr ""
-#: objc/objc-act.c:757
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:801
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:939
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr ""
+
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr ""
-#: objc/objc-act.c:944
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr ""
-#: objc/objc-act.c:996
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr ""
-#: objc/objc-act.c:1018 objc/objc-act.c:5229
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, fuzzy, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "áäõíáìßá åéóáãùãÞò óôïé÷åßï ðáñáâïëÞò `%.*s'"
-#: objc-parse.y:1752 objc/objc-act.c:1279 objc/objc-act.c:5747
-#: objc/objc-act.c:6077 objc/objc-act.c:6126 objc/objc-act.c:6162
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, fuzzy, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "áäõíáìßá áíÜãíùóçò êåöáëßäáò áðü ôï `%s'"
-#: objc/objc-act.c:1304
+#: objc/objc-act.c:1328
#, fuzzy, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "äå âñÝèçêå ï ðñïåðåîåñãáóôÞò C: %s \n"
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
#, fuzzy, c-format
msgid "cannot find class `%s'"
msgstr "áäõíáìßá åêôÝëåóçò ioctl óôï `%s'"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, fuzzy, c-format
msgid "class `%s' already exists"
msgstr "(ôï áñ÷åßï Þäç õðÜñ÷åé)"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr ""
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr ""
-#: objc/objc-act.c:3500 objc/objc-act.c:3517
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
#, fuzzy
msgid "inconsistent instance variable specification"
msgstr "Ìåôáãëùôôéóìüò ðñïäéáãñáöþí ôïðéêþí ñõèìßóåùí"
-#: objc/objc-act.c:4710
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
#, fuzzy, c-format
msgid "multiple declarations for method `%s'"
msgstr "ðïëëáðëüò áñéèìüò åðéëïãþí ôçí åíôïëÞ `s'"
-#: objc/objc-act.c:4876
+#: objc/objc-act.c:4946
#, fuzzy, c-format
msgid "invalid receiver type `%s'"
msgstr "Ìç Ýãêõñç ðñïôåñáéüôçôá `%s'"
-#: objc/objc-act.c:4907 objc/objc-act.c:4933 objc/objc-act.c:4981
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, fuzzy, c-format
msgid "`%s' does not respond to `%s'"
msgstr "ôï `%s' åßíáé ðñüãïíïò ôïõ `%s'"
# src/outer.c:102
-#: objc/objc-act.c:4913 objc/objc-act.c:7197
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, fuzzy, c-format
msgid "no super class declared in interface for `%s'"
msgstr "Ï áíôéôïðïèåôçôÞò åðéöÜíåéáò Ý÷åé ôåèåß ðåñéóóüôåñï áðü ìéá öïñÜ ãéá ôï `%s'"
-#: objc/objc-act.c:5011
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr ""
-#: objc/objc-act.c:5012 objc/objc-act.c:5056
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr ""
-#: objc/objc-act.c:5029
+#: objc/objc-act.c:5099
#, fuzzy, c-format
msgid "method `%s' not implemented by protocol"
msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé áðü ôï ðñùôüêïëëï"
-#: objc/objc-act.c:5038
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr ""
# src/install.c:562
-#: objc/objc-act.c:5055
+#: objc/objc-act.c:5125
#, fuzzy
msgid "cannot find method"
msgstr "áäõíáìßá äéêñÜíùóçò"
+#: objc/objc-act.c:5399
+#, fuzzy, c-format
+msgid "undeclared selector `%s'"
+msgstr "ìç Ýãêõñïò äçëùôÞò ðåäßïõ: `%s'"
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -23343,109 +20971,109 @@ msgstr "áäõíáìßá äéêñÜíùóçò"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5298
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr ""
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5678
#, fuzzy, c-format
msgid "duplicate definition of class method `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5684
#, fuzzy, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: objc/objc-act.c:5590
+#: objc/objc-act.c:5720
#, fuzzy, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "áäõíáìßá áíïßãìáôïò áñ÷åßïõ ïñéóìïý locale `%s'"
-#: objc/objc-act.c:5596
+#: objc/objc-act.c:5726
#, fuzzy, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: objc/objc-act.c:5636
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr ""
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr ""
-#: objc/objc-act.c:5769
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr ""
-#: objc/objc-act.c:5779
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr ""
-#: objc/objc-act.c:5816 objc/objc-act.c:5909
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr ""
-#: objc/objc-act.c:5820 objc/objc-act.c:5914
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, fuzzy, c-format
msgid "incomplete implementation of category `%s'"
msgstr "áðïôõ÷ßá êáôÜ ôçí åããñáöÞ äåäïìÝíùí ãéá ôçí êáôçãïñßá `%s'"
-#: objc/objc-act.c:5825 objc/objc-act.c:5919
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr ""
-#: objc/objc-act.c:5963
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:6021 objc/objc-act.c:8118
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
msgid "`@end' missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr ""
# src/request.c:806 src/request.c:912
-#: objc/objc-act.c:6091
+#: objc/objc-act.c:6209
#, fuzzy, c-format
msgid "conflicting super class name `%s'"
msgstr "Ìç áíáãíùñßóçìï üíïìá åðéöÜíåéáò `%s'"
-#: objc/objc-act.c:6106
+#: objc/objc-act.c:6224
#, fuzzy, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: objc/objc-act.c:6388
+#: objc/objc-act.c:6506
#, fuzzy, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
-#: objc/objc-act.c:7238
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8220 objc/objc-act.c:8236
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr ""
-#: objc-parse.y:2602
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr ""
-#: objc-parse.y:2876
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr ""
@@ -23477,13 +21105,22 @@ msgstr ""
msgid "Specify the name of the class for constant strings"
msgstr ""
-#: config/mmix/mmix.h:112
-#, fuzzy
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
-msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
-#: f/lang-specs.h:35 gcc.c:677
-msgid "GNU C does not support -C without using -E"
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
msgstr ""
#: java/lang-specs.h:33
@@ -23498,160 +21135,990 @@ msgstr ""
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: config/mcore/mcore.h:60
-msgid "choose either big or little endian, not both"
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/mcore/mcore.h:63
-msgid "choose either m340 or m210 not both"
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
msgstr ""
-#: config/mcore/mcore.h:64
-msgid "the m210 does not have little endian support"
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/alpha/freebsd.h:36 config/i386/freebsd-aout.h:227
-#: config/ia64/freebsd.h:24 config/sparc/freebsd.h:31
-msgid "`-p' not supported; use `-pg' and gprof(1)"
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: ada/lang-specs.h:39 gcc.c:698 java/jvspec.c:74
-msgid "-pg and -fomit-frame-pointer are incompatible"
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
msgstr ""
-#: config/arm/arm.h:213
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+#, fuzzy
+msgid "may not use both -m32 and -m64"
+msgstr "äåí åßíáé äõíáôü íá ðáñáëçöèåß ï ÷ñÞóôçò êáé ç ïìÜäá"
+
+#: config/arm/arm.h:178
#, fuzzy
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr ""
"Ïé åðéëïãÝò ãéá íá åêôõðùèåß êáé íá ïñéóôåß ç þñá äåí ìðïñïýí íá\n"
"÷ñçóéìïðïéçèïýí ðáñÜëëçëá."
-#: config/arm/arm.h:225
+#: config/arm/arm.h:180
#, fuzzy
msgid "-msoft-float and -mhard_float may not be used together"
msgstr ""
"Ïé åðéëïãÝò ãéá íá åêôõðùèåß êáé íá ïñéóôåß ç þñá äåí ìðïñïýí íá\n"
"÷ñçóéìïðïéçèïýí ðáñÜëëçëá."
-#: config/arm/arm.h:236
+#: config/arm/arm.h:182
#, fuzzy
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr ""
"Ïé åðéëïãÝò ãéá íá åêôõðùèåß êáé íá ïñéóôåß ç þñá äåí ìðïñïýí íá\n"
"÷ñçóéìïðïéçèïýí ðáñÜëëçëá."
-#: config/arm/arm.h:254
-msgid "incompatible interworking options"
-msgstr ""
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "ðñïåéäïðïßçóç: ôï --pid=PID äåí õðïóôçñßæåôáé óå áõôü ôï óýóôçìá"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr ""
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "ìç ïñéóìÝíï"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr ""
+#: config/i386/sco5.h:271
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá"
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
msgstr ""
-#: config/nextstep.h:161 config/nextstep.h:164
-msgid "-p profiling is no longer supported. Use -pg instead"
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
msgstr ""
-#: gcc.c:846
-msgid "-E required when input is from standard input"
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
msgstr ""
-#: gcc.c:850
-msgid "compilation of header file requested"
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
msgstr ""
-#: config/i386/cygwin.h:169 config/i386/mingw32.h:69
-msgid "shared and mdll are not compatible"
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
msgstr ""
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
msgstr ""
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
msgstr ""
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
+#: gcc.c:847
+msgid "-E required when input is from standard input"
msgstr ""
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
+#: gcc.c:851
+msgid "compilation of header file requested"
msgstr ""
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr ""
+#: config/vax/vax.h:50 config/vax/vax.h:51
+#, fuzzy
+msgid "profiling not supported with -mg\n"
+msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr ""
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "ôï -pipe äåí õðïóôçñßæåôáé"
-#: config/dsp16xx/dsp16xx.h:103 config/dsp16xx/dsp16xx.h:112
-msgid "a -ifile option requires a -map option"
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
msgstr ""
-#: config/arc/arc.h:59 config/mips/mips.h:1007
-msgid "may not use both -EB and -EL"
+#: config/mips/r3900.h:35
+#, fuzzy
+msgid "-mhard-float not supported"
+msgstr "Ôï ðñùôüêïëëï äåí õðïóôçñßæåôáé"
+
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
msgstr ""
-#: config/i860/fx2800.h:290
#, fuzzy
-msgid "-p option not supported: use -pg instead"
-msgstr "ôï -C äåí óõíßóôáôáé ðéá, ÷ñçóéìïðïéÞóôå -Z"
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "Üãíùóôï óåô `%s'"
-#: config/mips/mips.h:837
#, fuzzy
-msgid "-pipe is not supported"
-msgstr "áñ÷åßá fifo äåí õðïóôçñßæïíôáé"
+#~ msgid "null format string"
+#~ msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'"
-#: config/mips/mips.h:1003
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr ""
+#, fuzzy
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "%s' äåí åßíáé éó÷ýùí èåôéêüò áêÝñáéïò."
-#: config/mips/mips.h:1004
-msgid "may not use both -mfp64 and -m4650"
-msgstr ""
+#, fuzzy
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "%s: ôï %s åßíáé ôüóï ìåãÜëï ðïõ äå ìðïñåß íá áíáðáñáóôáèåß"
-#: config/mips/mips.h:1006
-msgid "may not use both -mgp32 and -mfp64"
-msgstr ""
+#, fuzzy
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr ""
+#~ "ï äçëùìÝíïò áñéèìüò bytes `%s' åßíáé ìåãáëýôåñïò áðü ôï ìÝãéóôï\n"
+#~ "ðïõ ìðïñåß íá áíáðáñáóôáèåß áðü ôï ôýðï äåäïìÝíùí `long'"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
#, fuzzy
-msgid "-mhard-float not supported"
-msgstr "Ôï ðñùôüêïëëï äåí õðïóôçñßæåôáé"
+#~ msgid "integer constant out of range"
+#~ msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
-msgid "-msingle-float and -msoft-float can not both be specified"
-msgstr ""
+#, fuzzy
+#~ msgid "missing binary operator"
+#~ msgstr "Áãíùóôïò äõáäéêüò ÷åéñéóôÞò."
-#: config/i386/cygwin.h:114
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr ""
+#, fuzzy
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "áäõíáìßá áëëáãÞò óôï êáôÜëïãï \"%s\""
-#: config/vax/vax.h:42 config/vax/vax.h:43
#, fuzzy
-msgid "profiling not supported with -mg\n"
-msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
+#~ msgid "I/O error on output"
+#~ msgstr "ÓöÜëìá åéóüäïõ/åîüäïõ"
+
+#, fuzzy
+#~ msgid "argument missing after %s"
+#~ msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "number missing after %s"
+#~ msgstr "ïñéóìüò äéêáéùìÜôùí óôï %s"
+
+#, fuzzy
+#~ msgid "target missing after %s"
+#~ msgstr "Áñ÷Þ áñ÷åßïõ %s\n"
+
+#, fuzzy
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "äå óõíßóôáôáé ðéá ç ÷ñÞóç áëöáñéèìçôéêþí óôáèåñþí ðïëëáðëþí ãñáììþí"
+
+#~ msgid "invalid option %s"
+#~ msgstr "ìç Ýãêõñç åðéëïãÞ %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: ðñïåéäïðïßçóç: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: ðñïåéäïðïßçóç: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "óõããíþìç, ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß: "
+
+#, fuzzy
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "ÐíåõìáôéêÜ Äéêáéþìáôá (C) 2002 Free Software Foundation, Inc.\n"
+
+#, fuzzy
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "invalid version number format"
+#~ msgstr "ìç Ýãêõñç äéáìüñöùóç óõíôüìåõóçò"
+
+#, fuzzy
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Äåí âñÝèçêáí ôáéñéÜóìáôá óôç ìïñöÞ `%s'.\n"
+
+#, fuzzy
+#~ msgid "conversion from NaN to int"
+#~ msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
+
+#, fuzzy
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "ç ìåôáôñïðÞ áðü `%s' óå `%s' äåí õðïóôçñßæåôå"
+
+#, fuzzy
+#~ msgid "floating point overflow"
+#~ msgstr "Åîáßñåóç êéíçôÞò õðïäéáóôïëÞò"
+
+#, fuzzy
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: óöÜëìá áíÜãíùóçò"
+
+#, fuzzy
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: óöÜëìá åããñáöÞò"
+
+#, fuzzy
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: óöÜëìá åããñáöÞò"
+
+#, fuzzy
+#~ msgid "internal error: %s"
+#~ msgstr "óöÜëìá óôçí áíÜãíùóç åéóüäïõ: %s"
+
+#, fuzzy
+#~ msgid "invalid character constant in #if"
+#~ msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
-#~ #, fuzzy
+#, fuzzy
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
+
+#, fuzzy
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "ìç Ýãêõñïò óôáèåñüò ÷áñáêôÞñáò óôï áëöáñéèìéôéêü"
+
+#, fuzzy
+#~ msgid "Junk after end of expression."
+#~ msgstr "Ðñüùñï ôÝëïò ôçò êáíïíéêÞò Ýêöñáóçò"
+
+#, fuzzy
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
+
+#, fuzzy
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "ïé åðéëïãÝò --string êáé --check åßíáé áìïéâáßùò áðïêëåéüìåíåò"
+
+#, fuzzy
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "ïé åðéëïãÝò --string êáé --check åßíáé áìïéâáßùò áðïêëåéüìåíåò"
+
+#, fuzzy
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#, fuzzy
+#~ msgid "not in any file?!"
+#~ msgstr "Äåí åßíáé åðþíõìï áñ÷åßï"
+
+#, fuzzy
+#~ msgid "invalid macro name"
+#~ msgstr "ìç Ýãêõñï üíïìá ìÞíá"
+
+#, fuzzy
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
+
+#, fuzzy
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "ìç ôåñìáôéæüìåíï üíïìá âÜñïõò"
+
+#, fuzzy
+#~ msgid "invalid format #line command"
+#~ msgstr "Ç áëõóßäá ìïñöÞò äåí åßíáé Ýãêõñç: `%s'"
+
+#, fuzzy
+#~ msgid "undefining `defined'"
+#~ msgstr "áüñéóôï"
+
+#, fuzzy
+#~ msgid "undefining `%s'"
+#~ msgstr "¶íïéãìá ôïõ `%s'"
+
+#, fuzzy
+#~ msgid "#warning%.*s"
+#~ msgstr "ðñïåéäïðïßçóç: "
+
+# src/dfa.c:652 src/dfa.c:655 src/dfa.c:682 src/dfa.c:686 src/dfa.c:687
+# src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
+# src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
+# src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
+#, fuzzy
+#~ msgid "unbalanced #endif"
+#~ msgstr "Ìç éóóïñïðçìÝíï ["
+
+#, fuzzy
+#~ msgid "unterminated string or character constant"
+#~ msgstr "ìç ôåñìáôéæìÝíï áëöáñéèìçôéêü óôáèåñÜò"
+
+#, fuzzy
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
+
+#, fuzzy
+#~ msgid "no args to macro `%s'"
+#~ msgstr "Üãíùóôïò ÷áñáêôÞñáò `%s'"
+
+#, fuzzy
+#~ msgid "invalid %%V value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "äåí äþèçêå óõìâïëéêü üíïìá"
+
+#, fuzzy
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#, fuzzy
+#~ msgid "Retain legend information"
+#~ msgstr "åìöÜíéóç ðëçñïöïñéþí ðñïüäïõ"
+
+# lib/argmatch.c:188
+#, fuzzy
+#~ msgid "argument is a structure"
+#~ msgstr "¸ãêõñá ïñßóìáôá åßíáé:"
+
+#, fuzzy
+#~ msgid "Use mcount for profiling"
+#~ msgstr "áäýíáôç ç öüñôùóç äåäïìÝíùí ðñïößë"
+
+#, fuzzy
+#~ msgid "-mips%d not supported"
+#~ msgstr "Ôï ai_family äåí õðïóôçñßæåôáé"
+
+#, fuzzy
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "Ôï ai_socktype äåí õðïóôçñßæåôáé"
+
+#, fuzzy
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "Ç ëåéôïõñãßá äåí õðïóôçñßæåôáé"
+
+#, fuzzy
+#~ msgid "`%D' as declarator"
+#~ msgstr "ôï `%s' åßíáé êáôÜëïãïò"
+
+#, fuzzy
+#~ msgid "invalid type: `void &'"
+#~ msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#, fuzzy
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "Ìç Ýãêõñç ðñïðïñåõüìåíç êáíïíéêÞ Ýêöñáóç"
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "ìç Ýãêõñïò áñéèìüò áðü êåíÝò ãñáììÝò: `%s'"
+
+#, fuzzy
+#~ msgid "declaration of `%#T'"
+#~ msgstr "äçìéïõñãßá áñ÷åßïõ `%s'\n"
+
+#, fuzzy
+#~ msgid "invalid use of `%T'"
+#~ msgstr "Ìç Ýãêõñç çìåñïìçíßá `%s'."
+
+#, fuzzy
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+#, fuzzy
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "ôï -C äåí óõíßóôáôáé ðéá, ÷ñçóéìïðïéÞóôå -Z"
+
+#, fuzzy
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "\"Æþíç %s\" ãñáììÞ êáé åðéëïãÞ -l åßíáé áìïéâáßùò áðïêëåéüìåíá"
+
+#, fuzzy
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "óõìâïëéêïß óýíäåóìïé äåí õðïóôçñßæïíôáé óôï óýóôçìá áõôü"
+
+#, fuzzy
+#~ msgid "invalid %H value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %h value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %Q value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %q value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %p value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %B value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %C value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %E value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "invalid %r value"
+#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "bad string length in %s"
+#~ msgstr "åëÜ÷éóôï ìÝãåèïò áëöáñéèìçôéêïý"
+
+#, fuzzy
+#~ msgid "mode mismatch in %s expression"
+#~ msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
+
+# src/main.c:697 src/main.c:751
+#, fuzzy
+#~ msgid "no label named `%s'"
+#~ msgstr "¶ãíùóôç ãëþóóá `%s'"
+
+#, fuzzy
+#~ msgid "this is the first ELSE label"
+#~ msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
+
+#, fuzzy
+#~ msgid "duplicate CASE value"
+#~ msgstr "äéðëü êëåéäß"
+
+#, fuzzy
+#~ msgid "this is the first entry for that value"
+#~ msgstr "áõôüò åßíáé ï ðñþôïò ïñéóìüò"
+
+#, fuzzy
+#~ msgid "CASE value out of range"
+#~ msgstr "Ï áñéèìüò ôùí êáíáëéþí åßíáé Ýîù áðü ôá üñéá"
+
+#, fuzzy
+#~ msgid "empty range"
+#~ msgstr "êåíü áëöáñéèìçôéêü"
+
+#, fuzzy
+#~ msgid "internal error - unknown type in multiple assignment"
+#~ msgstr "åóùôåñéêü óöÜëìá - êëÞèçêå ç addtype ìå êáêü ttisgmt"
+
+#, fuzzy
+#~ msgid "cannot convert to a boolean mode"
+#~ msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
+
+#, fuzzy
+#~ msgid "cannot convert to a char mode"
+#~ msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
+
+#, fuzzy
+#~ msgid "powerset tuple element out of range"
+#~ msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
+
+#, fuzzy
+#~ msgid "missing variant fields (at least `%s')"
+#~ msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
+
+#, fuzzy
+#~ msgid "invalid array tuple label"
+#~ msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ïíüìáôïò êëÜóçò"
+
+#, fuzzy
+#~ msgid "array tuple index out of range"
+#~ msgstr "%s: áñéèìüò ãñáììÞò Ýîù áðü ôá üñéá"
+
+#, fuzzy
+#~ msgid "too many array tuple values"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "missing array tuple element %s"
+#~ msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
+
+#, fuzzy
+#~ msgid "missing array tuple elements %s : %s"
+#~ msgstr "Ëåßðåé ðáñÜìåôñïò ãéá `%s'"
+
+# src/request.c:263
+#, fuzzy
+#~ msgid "no initialization allowed for `%s'"
+#~ msgstr "Ôï âÞìá áñ÷éêïðïßçóçò áðÝôõ÷å"
+
+#, fuzzy
+#~ msgid "location for `%s' not read-compatible"
+#~ msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
+
+#, fuzzy
+#~ msgid "too few tag labels"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "too many tag labels"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "...is duplicated here"
+#~ msgstr "äéðëü êëåéäß"
+
+#, fuzzy
+#~ msgid "duplicate grant for `%s'"
+#~ msgstr "äéðëü üíïìá ÷áñáêôÞñá `%s'"
+
+#, fuzzy
+#~ msgid "previous grant for `%s'"
+#~ msgstr "äéáôÞñçóç ùñþí óôï %s"
+
+#, fuzzy
+#~ msgid "duplicate definition `%s'"
+#~ msgstr "äéðëüò ïñéóìüò óõíüëïõ"
+
+#, fuzzy
+#~ msgid "previous definition of `%s'"
+#~ msgstr "êáíÝíáò ïñéóìüò ôïõ `UNDEFINED'"
+
+# src/main.c:785
+#, fuzzy
+#~ msgid "ambiguous choice for seize `%s' -"
+#~ msgstr "ÁóáöÞò ìïñöÞ `%s'"
+
+#, fuzzy
+#~ msgid "INTERNAL ERROR: handle_one_level is broken"
+#~ msgstr "ÅÓÙÔÅÑÉÊÏ ÓÖÁËÌÁ: ËÜèïò åßäïò áíôéêåéìÝíïõ óôï expand_token ()"
+
+#, fuzzy
+#~ msgid "conditional expression not allowed in %s"
+#~ msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç (ëÜèïò åßóïäïò): %s"
+
+#, fuzzy
+#~ msgid "internal error: unknown expression mode in %s"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+#, fuzzy
+#~ msgid "array is not addressable"
+#~ msgstr "Ï êáôÜëïãïò `%s' äåí åßíáé ðñïóéôüò."
+
+#~ msgid "too few arguments in call to `%s'"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá óôç êëÞóç ôçò `%s'"
+
+#~ msgid "too many arguments in call to `%s'"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç êëÞóç ôçò `%s'"
+
+#, fuzzy
+#~ msgid "cannot dereference, not a pointer"
+#~ msgstr "Äåí ìðïñåß íá êáèïñéóôåß ôï üíïìá ôïõ óõóôÞìáôïò"
+
+#, fuzzy
+#~ msgid "invalid type argument of `->'"
+#~ msgstr "Ç ðáñÜìåôñïò `%s' äåí åßíáé Ýãêõñç."
+
+#, fuzzy
+#~ msgid "no field named `%s'"
+#~ msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#, fuzzy
+#~ msgid "argument %d to ABSTIME must be of integer type"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "parameter 2 must be a positive integer"
+#~ msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#, fuzzy
+#~ msgid "argument 1 to `%s' must be of floating point mode"
+#~ msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "first argument to `%s' must be a mode"
+#~ msgstr "Ç ðáñÜìåôñïò óôï `%s' ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#~ msgid "too many arguments to procedure"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá óôç ñïõôßíá"
+
+#, fuzzy
+#~ msgid "too few arguments to procedure `%s'"
+#~ msgstr "Ðñïåéäïðïßçóç: Ðïëý ëßãá ïñßóìáôá óôï åóùäïìçìÝíï `%s'"
+
+#, fuzzy
+#~ msgid "too few arguments to procedure"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "syntax error (integer used as function)"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôïí êáèïñéóìü óåéñÜò"
+
+#, fuzzy
+#~ msgid "syntax error - missing operator, comma, or '('?"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü ôïõ ðßíáêá ñåðåñôïñßïõ: %s"
+
+#, fuzzy
+#~ msgid "internal error - bad built-in function `%s'"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+#, fuzzy
+#~ msgid "invalid operation on array of chars"
+#~ msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ðáñáâïëÞò"
+
+#, fuzzy
+#~ msgid "invalid left operand of %s"
+#~ msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
+
+#, fuzzy
+#~ msgid "invalid right operand of %s"
+#~ msgstr "ìç Ýãêõñï åßäïò áëöáñéèìçôéêïý `%s'"
+
+#, fuzzy
+#~ msgid "ADDR requires a LOCATION argument"
+#~ msgstr "ç åðéëïãÞ `-k' áðáéôåß Ýíá üñéóìá"
+
+#, fuzzy
+#~ msgid "-> expression is not addressable"
+#~ msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
+
+#, fuzzy
+#~ msgid "%s is not addressable"
+#~ msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#, fuzzy
+#~ msgid "can't write to %s"
+#~ msgstr "áäõíáìßá åããñáöÞò áðïôåëÝóìáôïò: %s"
+
+#, fuzzy
+#~ msgid "FORBID is not yet implemented"
+#~ msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
+
+#, fuzzy
+#~ msgid "text length must be greater then 0"
+#~ msgstr "%s: ï áñéèìüò ãñáììÞò ðñÝðåé íá åßíáé ìåãáëýôåñïò áðü ôï ìçäÝí"
+
+#, fuzzy
+#~ msgid "argument 2 of ASSOCIATE must not be an empty string"
+#~ msgstr "%s: ç ôéìÞ ãéá ôï ðåäßï `%s' äåí ðñÝðåé íá åßíáé Ýíá êåíü áëöáñéèìçôéêü"
+
+#, fuzzy
+#~ msgid "argument 2 to ASSOCIATE must be a string"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "argument 3 to ASSOCIATE must be a string"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "too many arguments in call to MODIFY"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "argument 2 of MODIFY must not be an empty string"
+#~ msgstr "%s: ç ôéìÞ ãéá ôï ðåäßï `%s' äåí ðñÝðåé íá åßíáé Ýíá êåíü áëöáñéèìçôéêü"
+
+#, fuzzy
+#~ msgid "argument 2 to MODIFY must be a string"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "argument 3 to MODIFY must be a string"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "incompatible index mode"
+#~ msgstr "ìç Ýãêõñï äéêáßùìá"
+
+#, fuzzy
+#~ msgid "argument %d of %s must be of mode ACCESS"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "too few arguments in call to `readrecord'"
+#~ msgstr "ðïëý ëßãá bytes óôçí êùäéêïðïßçóç ÷áñáêôÞñá"
+
+#, fuzzy
+#~ msgid "too few arguments in call to `writerecord'"
+#~ msgstr "ðïëý ëßãá bytes óôçí êùäéêïðïßçóç ÷áñáêôÞñá"
+
+#, fuzzy
+#~ msgid "argument %d of %s must be of mode TEXT"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "argument %d must be referable"
+#~ msgstr "Ç ðáñÜìåôñïò óôï <%s> ðñÝðåé íá åßíáé Ýíáò áðëüò ÷áñáêôÞñáò"
+
+#, fuzzy
+#~ msgid "too few arguments for this format string"
+#~ msgstr "Ý÷ïõí ðáñáëçöèåß ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "internal error in check_format_string"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+# src/recode.c:171
+#, fuzzy
+#~ msgid "no padding character (offset %d)"
+#~ msgstr "ÊáíÝíáò ÷áñáêôÞñáò äåí ìåôáôñÝðåôáé óå %3d"
+
+#, fuzzy
+#~ msgid "too many arguments for this format string"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá óå áõôü ôï áëöáñéèìçôéêü ìïñöÞò"
+
+#, fuzzy
+#~ msgid "missing index expression"
+#~ msgstr "ðáñÜëçøç ïñßóìáôïò áñ÷åßïõ"
+
+#, fuzzy
+#~ msgid "too few arguments in call to `readtext'"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "non-constant expression"
+#~ msgstr "Áäõíáìßá ðñïóðÝëáóçò ôïõ áñ÷åßïõ ôçò áëëáãÞò"
+
+#, fuzzy
+#~ msgid "invalid C'xx' "
+#~ msgstr "ìç Ýãêõñç ìåôáôüðéóç UTC"
+
+#, fuzzy
+#~ msgid "unrecognized compiler directive"
+#~ msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
+
+#, fuzzy
+#~ msgid "unrecognized compiler directive `%s'"
+#~ msgstr "ìç áíáãíùñßóçìç åðéëïãÞ `-%c'"
+
+#, fuzzy
+#~ msgid "unterminated string literal"
+#~ msgstr "ìç ôåñìáôéæüìåío áëöáñéèìçôéêü"
+
+#, fuzzy
+#~ msgid "invalid number format `%s'"
+#~ msgstr "ìç Ýãêõñïò áñéèìüò áðü óôÞëåò: `%s'"
+
+#, fuzzy
+#~ msgid "can't find %s"
+#~ msgstr "Äåí åßíáé äõíáôüí íá åêôåëåóôåß ôï %s"
+
+#, fuzzy
+#~ msgid "invalid `%c' character in name"
+#~ msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò ïíüìáôïò êëÜóçò"
+
+#, fuzzy
+#~ msgid "loop identifier undeclared"
+#~ msgstr "áíáìåíüôáí óôáèåñÜ Þ ðñïóäéïñéóôÞò"
+
+#, fuzzy
+#~ msgid "BY expression is negative or zero"
+#~ msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
+
+#, fuzzy
+#~ msgid "start label '%s' does not match end label '%s'"
+#~ msgstr "ôï áñ÷åßï äåäïìÝíùí ðñïößë `%s' äåí ôáéñéÜæåé ìå ôï äéáìïéñáæüìåíï áíôéêåßìåíï `%s'"
+
+#, fuzzy
+#~ msgid "expected a name here"
+#~ msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
+
+#, fuzzy
+#~ msgid "expected a name string here"
+#~ msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
+
+#, fuzzy
+#~ msgid "missing defining occurrence"
+#~ msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
+
+#, fuzzy
+#~ msgid "missing '(' in exception list"
+#~ msgstr "Ý÷åé ðáñáëçöèåß ôï áñ÷åßï ðñïïñéóìïý"
+
+#, fuzzy
+#~ msgid "syntax error in exception list"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôï ïñéóìü ôïõ %s: %s"
+
+#, fuzzy
+#~ msgid "empty ON-condition"
+#~ msgstr "Åðåßãïõóá êáôÜóôáóç åéóüäïõ/åîüäïõ"
+
+#, fuzzy
+#~ msgid "expected another rename clause"
+#~ msgstr "%s: áíáìåíüôáí áñéèìçôéêÞ ôéìÞ."
+
+#, fuzzy
+#~ msgid "syntax error in parameter name list"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìü êëÜóçò ÷áñáêôÞñùí"
+
+#, fuzzy
+#~ msgid "syntax error while parsing signal definition statement"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôï ïñéóìü ôïõ %s: %s"
+
+#, fuzzy
+#~ msgid "expression is not an action"
+#~ msgstr "ËÜèïò Ýêöñáóç óôçí áðïôßìçóç: %s"
+
+#, fuzzy
+#~ msgid "syntax error in action"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôïí êáèïñéóìü óåéñÜò"
+
+#, fuzzy
+#~ msgid "bad tuple field name list"
+#~ msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
+
+#, fuzzy
+#~ msgid "invalid syntax for label in tuple"
+#~ msgstr "ìç Ýãêõñï byte Þ ëßóôá ðåäßùí"
+
+#, fuzzy
+#~ msgid "missing field"
+#~ msgstr "Ý÷åé ðáñáëçöèåß ç ëßóôá ìå ôá ðåäßá"
+
+#, fuzzy
+#~ msgid "VARYING bit-strings not implemented"
+#~ msgstr "Ç ëåéôïõñãßá äåí Ý÷åé õëïðïéçèåß"
+
+#, fuzzy
+#~ msgid "SIGNAL is not a valid mode"
+#~ msgstr "ìç Ýãêõñï äéêáßùìá"
+
+#, fuzzy
+#~ msgid "syntax error - missing mode"
+#~ msgstr "óõíôáêôéêü óöÜëìá óôïí ïñéóìïý locale ìçíýìáôïò"
+
+#, fuzzy
+#~ msgid "too many arguments to process `%s'"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "too many arguments to process"
+#~ msgstr "ðÜñá ðïëëÜ ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "too few arguments to process `%s'"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "too few arguments to process"
+#~ msgstr "ðïëý ëßãá ïñßóìáôá"
+
+#, fuzzy
+#~ msgid "GEN_INST parameter 2 must be an integer mode"
+#~ msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#, fuzzy
+#~ msgid "%s is not a declared process"
+#~ msgstr "ôï `%s' äåí åßíáé êáíïíéêü áñ÷åßï"
+
+#, fuzzy
+#~ msgid " and no default priority was set."
+#~ msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ç ðñïôåñáéüôçôá."
+
+#, fuzzy
+#~ msgid " and no destination process specified"
+#~ msgstr "Áðáéôåßôáé äéåýèõíóç ðñïïñéóìïý"
+
+#, fuzzy
+#~ msgid "slice length out-of-range"
+#~ msgstr "ó÷åôéêÞ èÝóç áñ÷åßïõ åßíáé åêôüò ïñßùí"
+
+#, fuzzy
+#~ msgid "too many index expressions"
+#~ msgstr "õðåñâïëéêÜ ðïëëÜ äåõôåñüëåðôá áíáðÞäçóçò"
+
+#, fuzzy
+#~ msgid "cannot convert to float"
+#~ msgstr "áäýíáôç ç ìåôáôñïðÞ ôïõ U+%04X óôï ôïðéêü óýíïëï ÷áñáêôÞñùí"
+
+#, fuzzy
+#~ msgid "cannot convert float to this mode"
+#~ msgstr "yp_update: áäõíáìßá ìåôáôñïðÞò ïíüìáôïò óõóôÞìáôïò óå üíïìá äéêôýïõ\n"
+
+#, fuzzy
+#~ msgid "internal error in chill_root_resulting_mode"
+#~ msgstr "åóùôåñéêü óöÜëìá óôï %s, ãñáììÞ %u"
+
+#, fuzzy
+#~ msgid "cannot process BIN (>32)"
+#~ msgstr "Äåí åßíáé äõíáôüí íá âñåèåß ï ôýðïò ôïõ åðåîåñãáóôÞ."
+
+#, fuzzy
+#~ msgid "negative string length"
+#~ msgstr "åëÜ÷éóôï ìÝãåèïò áëöáñéèìçôéêïý"
+
+#, fuzzy
+#~ msgid "floating point ranges"
+#~ msgstr "Ç ðáñÜìåôñïò êéíçôÞò õðïäéáóôïëÞò äåí åßíáé Ýãêõñç: %s"
+
+#, fuzzy
+#~ msgid "starting word in POS must be an integer constant"
+#~ msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#, fuzzy
+#~ msgid "length in POS must be an integer constant"
+#~ msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#, fuzzy
+#~ msgid "end bit in POS must be an integer constant"
+#~ msgstr "ç ôéìÞ ãéá ôï %s ðñÝðåé íá åßíáé áêÝñáéïò"
+
+#, fuzzy
+#~ msgid "invalid parameterized type"
+#~ msgstr "%s: ìç Ýãêõñï åßäïò áñ÷åßïõ"
+
+# src/main.c:659
+#, fuzzy
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "ÁóáöÞò óõìâïëïóåéñÜ `%s'"
+
+#, fuzzy
#~ msgid "invalid use of %D"
#~ msgstr "ìç Ýãêõñïò ÷ñÞóôçò"
+
+#, fuzzy
+#~ msgid "internal error #%d"
+#~ msgstr "Åóùôåñéêü óöÜëìá NIS"
+
+#, fuzzy
+#~ msgid "can't to open %s"
+#~ msgstr "áäõíáìßá áíïßãìáôïò ôïõ `%s'"
diff --git a/gcc/po/es.po b/gcc/po/es.po
index a9b5b4b00fe..d2e9bd0cb3b 100644
--- a/gcc/po/es.po
+++ b/gcc/po/es.po
@@ -1,138 +1,68 @@
-# Mensajes en español para gcc-3.1-b20020415
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002.
+# Mensajes en español para gcc-3.3
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.1-b20020415\n"
-"POT-Creation-Date: 2002-04-23 12:53+0200\n"
-"PO-Revision-Date: 2002-04-23 16:15-0600\n"
+"Project-Id-Version: gcc 3.3\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2003-06-29 15:48-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: attribs.c:314
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr "se ignora la directiva de atributo `%s'"
-#: attribs.c:322
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "se especificó el número equivocado de argumentos para el atributo `%s'"
-#: attribs.c:339
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
-msgstr "el atributo `%s' no aplica a tipos"
+msgstr "el atributo `%s' no se aplica a tipos"
-#: attribs.c:376
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
-msgstr "el atributo `%s' aplica solamente a tipos de funciones"
-
-#: attribs.c:468 attribs.c:490 attribs.c:512 attribs.c:543 attribs.c:565 attribs.c:590 attribs.c:613 attribs.c:643 attribs.c:681 attribs.c:728 attribs.c:758 attribs.c:788 attribs.c:811 attribs.c:1057 attribs.c:1113 attribs.c:1169 attribs.c:1230 attribs.c:1256 attribs.c:1458 config/arm/arm.c:2007 config/arm/arm.c:2034 config/avr/avr.c:4683 config/h8300/h8300.c:3071 config/h8300/h8300.c:3096 config/i386/i386.c:1267 config/i386/winnt.c:74
+msgstr "el atributo `%s' se aplica solamente a tipos de funciones"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr "se ignora el atributo `%s'"
-#: attribs.c:844
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "se desconoce el modo de máquina `%s'"
-
-#: attribs.c:847
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "no hay tipo de datos para el modo `%s'"
-
-#: attribs.c:880
-msgid "section attribute cannot be specified for local variables"
-msgstr "el atributo de sección no puede ser especificado para las variables locales"
-
-#: attribs.c:891
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "la sección de `%s' causa conflictos con la declaración previa"
-
-#: attribs.c:900
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "no se permite un atributo de sección para `%s'"
-
-#: attribs.c:907
-msgid "section attributes are not supported for this target"
-msgstr "no se da soporte a atributos de sección en este objetivo"
-
-#: attribs.c:949
-msgid "requested alignment is not a constant"
-msgstr "la alineación solicitada no es una constante"
-
-#: attribs.c:954
-msgid "requested alignment is not a power of 2"
-msgstr "la alineación solicitada no es una potencia de 2"
-
-#: attribs.c:959
-msgid "requested alignment is too large"
-msgstr "la alineación solicitada es demasiado grande"
-
-#: attribs.c:986
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "la alineación no puede ser especificada para `%s'"
-
-#: attribs.c:1031
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "`%s' definido normalmente y como un alias"
-
-#: attribs.c:1041
-msgid "alias arg not a string"
-msgstr "el argumento de alias no es una cadena"
-
-#: attribs.c:1080 attribs.c:1136
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "el atributo `%s' aplica solamente a funciones"
-
-#: attribs.c:1087 attribs.c:1143
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "no se puede establecer el atributo `%s' después de la definición"
-
-#: attribs.c:1227
-#, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr "se ignora el atributo `%s' para `%s'"
-
-#: attribs.c:1284
-#, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "tipo vector inválido para el atributo `%s'"
-
-#: attribs.c:1307 attribs.c:1312
-msgid "no vector mode with the size and type specified could be found"
-msgstr "no se puede encontrar un modo vector con el tamaño y tipo especificados"
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr "el desplazamiento fuera de los límites de la constante de cadena"
-#: builtins.c:759
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr "el segundo argumento de `__builtin_prefetch' debe ser una constante"
-#: builtins.c:766
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr "el segundo argumento para __builtin_prefetch es inválido; se usará cero"
-#: builtins.c:773
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr "el tercer argumento de `__builtin_prefetch' debe ser una constante"
-#: builtins.c:780
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr "el tercer argumento para __builtin_prefetch es inválido; se usará cero"
@@ -143,1286 +73,1444 @@ msgstr "el tercer argumento para __builtin_prefetch es inválido; se usará cero"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2760
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
msgstr "no se da soporte a __builtin_saveregs en este objetivo"
-#: builtins.c:2802
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "el argumento de `__builtin_args_info' debe ser constante"
-#: builtins.c:2808
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr "el argumento de `__builtin_args_info' está fuera de rango"
-#: builtins.c:2814
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "falta un argumento en `__builtin_args_info'"
-#: builtins.c:2846
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr "se usó `va_start' en una función con argumentos fijos"
-#: builtins.c:2865
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr "el segundo parámetro de `va_start' no es el último argumento nombrado"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2870
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "se llamó a `__builtin_next_arg' sin un argumento"
-#: builtins.c:2974
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "demasiados argumentos para la función `va_start'"
-#: builtins.c:3075
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr "el primer argumento para `va_arg' no es del tipo `va_list'"
#. Unfortunately, this is merely undefined, rather than a constraint
#. violation, so we cannot make this an error. If this call is never
#. executed, the program is still strictly conforming.
-#: builtins.c:3106
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr "`%s' se promueve a `%s' cuando pasa a través de `...'"
-#: builtins.c:3111
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr "(así que debe pasar `%s' y no `%s' a `va_arg')"
-#: builtins.c:3242
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr "argumento inválido para `__builtin_frame_address'"
-#: builtins.c:3244
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr "argumento inválido para `__builtin_return_address'"
-#: builtins.c:3258
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr "argumento sin soporte para `__builtin_frame_address'"
-#: builtins.c:3260
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr "argumento no soportado para `__builtin_return_address'"
-#: builtins.c:3428
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr "el segundo argumento de `__builtin_expect' debe ser una constante"
-#: builtins.c:3909
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr "el segundo argumento de __builtin_longjump debe ser 1"
#. just do library call, if unknown builtin
-#: builtins.c:3982 c-common.c:3811
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr "no se soporta actualmente la función interna `%s'"
-#: c-common.c:550
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "el formato objetivo no tiene soporte para infinito"
+
+#: c-common.c:1168
#, c-format
msgid "`%s' is not defined outside of function scope"
msgstr "`%s' no está definido fuera del ámbito de la función"
-#: c-common.c:590
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
-msgstr "la concatenación de literales de cadena con __FUNCTION__ está deprecado. Esta característica será eliminada en el futuro"
-
-#: c-common.c:659
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
-msgstr "la longitud de la cadena `%d' es mayor que la longitud `%d' que se requiere que los compiladores ISO C%d den soporte"
+msgstr "la longitud de la cadena `%d' es mayor que la longitud `%d', la máxima que los compiladores ISO C%d deben soportar"
-#: c-common.c:708
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "la concatenación de literales de cadena con __FUNCTION__ es obsoleta"
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "desbordamiento en la expresión constante"
-#: c-common.c:729
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "desbordamiento entero en la expresión"
-#: c-common.c:738
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "desbordamiento de coma flotante en la expresión"
-#: c-common.c:744
+#: c-common.c:1379
msgid "vector overflow in expression"
msgstr "desbordamiento vectorial en la expresión"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:765
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "entero grande truncado implícitamente al tipo unsigned"
-#: c-common.c:767
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "entero negativo truncado implícitamente al tipo unsigned"
-#: c-common.c:814
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "desbordamiento en la conversión implícita de constante"
-#: c-common.c:962
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
-msgstr "la operación sobre `%s' puede estar indefinida"
+msgstr "la operación sobre `%s' puede no estar definida"
-#: c-common.c:1253
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "la declaración de la expresión tiene tipo de dato incompleto"
-#: c-common.c:1286
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "la etiqueta de `case' no se reduce a una constante entera"
-#: c-common.c:1586
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "expresión de valor verdadero inválida"
-#: c-common.c:1637
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "operadores inválidos para el binario %s"
-#: c-common.c:1872 c-common.c:1881
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr "la comparación siempre es falsa debido al rango limitado del tipo de datos"
-#: c-common.c:1874 c-common.c:1883
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr "la comparación siempre es verdadera debido al rango limitado del tipo de datos"
-#: c-common.c:1949
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "la comparación de una expresión unsigned >= 0 siempre es verdadera"
-#: c-common.c:1958
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "la comparación de una expresión unsigned < 0 siempre es falsa"
-#: c-common.c:2005
+#: c-common.c:2641
msgid "pointer of type `void *' used in arithmetic"
-msgstr "se usó un apuntador de tipo `void *' en la aritmética"
+msgstr "se usó un puntero de tipo `void *' en la aritmética"
-#: c-common.c:2011
+#: c-common.c:2647
msgid "pointer to a function used in arithmetic"
-msgstr "se usó un apuntador a una función en la aritmética"
+msgstr "se usó un puntero a una función en la aritmética"
-#: c-common.c:2017
+#: c-common.c:2653
msgid "pointer to member function used in arithmetic"
-msgstr "se usó un apuntador a una función miembro en la aritmética"
+msgstr "se usó un puntero a una función miembro en la aritmética"
-#: c-common.c:2023
+#: c-common.c:2659
msgid "pointer to a member used in arithmetic"
-msgstr "se usó un apuntador a un miembro en la aritmética"
+msgstr "se usó un puntero a un miembro en la aritmética"
-#: c-common.c:2110 f/com.c:14823
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "se usa un valor de tipo struct cuando se requiere un escalar"
-#: c-common.c:2114 f/com.c:14827
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "se usa un valor de tipo union cuando se requiere un escalar"
-#: c-common.c:2118 f/com.c:14831
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "se usa un valor de tipo matriz cuando se requiere un escalar"
-#: c-common.c:2233 f/com.c:14957
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
msgstr "se sugieren paréntesis alrededor de la asignación usada como valor verdadero"
-#: c-common.c:2277 c-common.c:2309
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "uso inválido de `restrict'"
-#: c-common.c:2425
-msgid "__alignof__ applied to an incomplete type"
-msgstr "__alignof__ aplicado a un tipo de dato incompleto"
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "aplicación inválida de `sizeof' a un tipo de función"
+
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "aplicación inválida de `%s' a un tipo void"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "aplicación inválida de `%s' a un tipo de dato incompleto"
-#: c-common.c:2451
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr "`__alignof' applicado a un campo de bits"
-#: c-common.c:2893
+#: c-common.c:3618
#, c-format
msgid "cannot disable built-in function `%s'"
msgstr "no se puede desactivar la función interna `%s'"
-#: c-common.c:3174 c-typeck.c:1781
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "muy pocos argumentos para la función `%s'"
-#: c-common.c:3180 c-typeck.c:1634
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "demasiados argumentos para la función `%s'"
-#: c-common.c:3369
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "argumentos que no son de coma flotante para la función `%s'"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
-msgstr "los apuntadores no son permitidos como valores case"
+msgstr "no se permite usar punteros como valores case"
-#: c-common.c:3375
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
-msgstr "ISO C++ prohibe un rango de expresiones en las declaraciones switch"
+msgstr "ISO C++ prohíbe un rango de expresiones en las declaraciones switch"
-#: c-common.c:3377
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
-msgstr "ISO C prohibe un rango de expresiones en las declaraciones switch"
+msgstr "ISO C prohíbe un rango de expresiones en las declaraciones switch"
-#: c-common.c:3407
+#: c-common.c:4119
msgid "empty range specified"
msgstr "se especificó un rango vacío"
-#: c-common.c:3458
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
-msgstr "valor case duplicado (o traslapado)"
+msgstr "valor case duplicado (o con solapamiento de rangos)"
-#: c-common.c:3460
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
-msgstr "esta es la primera entrada que traslapa ese valor"
+msgstr "esta es la primera entrada que solapa ese valor"
-#: c-common.c:3464
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "valor de case duplicado"
-#: c-common.c:3465
+#: c-common.c:4177
msgid "previously used here"
msgstr "se usó previamente aquí"
-#: c-common.c:3469
+#: c-common.c:4181
msgid "multiple default labels in one switch"
-msgstr "múltiples etiquetas por omisión en un solo switch"
+msgstr "múltiples etiquetas por defecto en un solo switch"
-#: c-common.c:3470
+#: c-common.c:4182
msgid "this is the first default label"
-msgstr "esta es la primera etiqueta por omisión"
+msgstr "esta es la primera etiqueta por defecto"
-#: c-common.c:3498
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
-msgstr "ISO C++ prohibe tomar la dirección de una etiqueta"
+msgstr "ISO C++ prohíbe tomar la dirección de una etiqueta"
-#: c-common.c:3500
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
-msgstr "ISO C prohibe tomar la dirección de una etiqueta"
+msgstr "ISO C prohíbe tomar la dirección de una etiqueta"
-#: c-common.c:4148
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "se ignora -Wformat-y2k sin -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "la declaración de `%s' oscurece a %s"
-#: c-common.c:4150
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "se ignora -Wformat-extra-args sin -Wformat"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "se desconoce el modo de máquina `%s'"
-#: c-common.c:4152
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "se ignora -Wformat-nonliteral sin -Wformat"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "no hay tipo de datos para el modo `%s'"
-#: c-common.c:4154
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "se ignora -Wformat-security sin -Wformat"
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "no se puede emular '%s'"
-#: c-common.c:4156
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "se ignora -Wformat-attribute sin -Wformat"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "no se puede especificar el atributo de sección para las variables locales"
-#: c-common.c:4247
+#: c-common.c:5713
#, c-format
-msgid "declaration of `%s' shadows %s"
-msgstr "la declaración de `%s' obscurece a %s"
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "la sección de `%s' causa conflictos con la declaración previa"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "no se permite un atributo de sección para `%s'"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "no se soportan atributos de sección en este objetivo"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "la alineación solicitada no es una constante"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "la alineación solicitada no es una potencia de 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "la alineación solicitada es demasiado grande"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "la alineación no puede ser especificada para `%s'"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "`%s' definido normalmente y como un alias"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "el argumento de alias no es una cadena"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "el argumento de visibilidad no es una cadena"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "el argumento de visibilidad debe ser \"default\", \"hidden\", \"protected\" o \"internal\""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "el argumento de tls_model no es una cadena"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "el argumento de tls_model debe ser uno de \"local-exec\", \"initial-exec\", \"local-dynamic\" ó \"global-dynamic\""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "el atributo `%s' se aplica solamente a funciones"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "no se puede establecer el atributo `%s' después de la definición"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "la longitud de la rebanada no es un entero"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "el objeto llamado no es una función"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "se ignora el atributo `%s' para `%s'"
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "tipo vector inválido para el atributo `%s'"
-#: c-convert.c:78 c-typeck.c:1035 c-typeck.c:4047 cp/typeck.c:1673 cp/typeck.c:6165
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "no se puede encontrar un modo vector con el tamaño y tipo especificados"
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "atributo que no es nulo sin argumentos en uno que no es prototipo"
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "un argumento que no es nulo tiene un número inválido de operandos (arg %lu)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "un argumento que no es nulo con un número de operandos fuera de rango (arg %lu, operando %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (arg %lu, operando %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "un argumento nulo donde se requiere uno que no sea nulo (arg %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
msgid "void value not ignored as it ought to be"
msgstr "valor void no ignorado como debería de ser"
-#: c-convert.c:110 java/typeck.c:150
+#: c-convert.c:112 java/typeck.c:150
msgid "conversion to non-scalar type requested"
msgstr "se solicitó conversión a tipo no escalar"
-#: c-decl.c:476
-msgid "-traditional is deprecated and may be removed"
-msgstr "-traditional está deprecado y será eliminado"
-
-#: c-decl.c:566
-#, c-format
-msgid "unknown C standard `%s'"
-msgstr "no se conoce el estándard de C `%s'"
-
-#: c-decl.c:848
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr "se asume que la matriz `%s' tiene un elemento"
-#: c-decl.c:1024
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "el `struct %s' incompleto en el ámbito termina aquí"
-#: c-decl.c:1027
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "el `union %s' incompleto en el ámbito termina aquí"
-#: c-decl.c:1030
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "el `enum %s' incompleto en el ámbito termina aquí"
-#: c-decl.c:1144 c-decl.c:1285 java/decl.c:1377
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "se usa la etiqueta `%s' pero no está definida"
-#: c-decl.c:1150 c-decl.c:1292 java/decl.c:1383
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr "la etiqueta `%s' está definida pero no se usa"
-#: c-decl.c:1409 cp/decl.c:3128
+#: c-decl.c:893 cp/decl.c:3335
#, c-format
msgid "function `%s' redeclared as inline"
msgstr "la función `%s' es redeclarada como inline"
-#: c-decl.c:1411 cp/decl.c:3130
+#: c-decl.c:895 cp/decl.c:3337
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr "declaración previa de la función `%s' con el atributo noinline"
-#: c-decl.c:1418 cp/decl.c:3137
+#: c-decl.c:902 cp/decl.c:3344
#, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr "la función `%s' redeclarada con el atributo noinline"
-#: c-decl.c:1420 cp/decl.c:3139
+#: c-decl.c:904 cp/decl.c:3346
#, c-format
msgid "previous declaration of function `%s' was inline"
msgstr "la declaración previa de la función `%s' era inline"
-#: c-decl.c:1449 c-decl.c:1502
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
-msgstr "obscureciendo la función interna `%s'"
+msgstr "oscureciendo la función interna `%s'"
-#: c-decl.c:1451
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
-msgstr "obscureciendo la función de biblioteca `%s'"
+msgstr "oscureciendo la función de biblioteca `%s'"
-#: c-decl.c:1457
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr "la función de biblioteca `%s' no es declarada como función"
-#: c-decl.c:1461 c-decl.c:1464
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "la función interna `%s' no es declarada como función"
-#: c-decl.c:1468 objc/objc-act.c:2334 objc/objc-act.c:6036
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "`%s' redeclarado como un tipo diferente de símbolo"
-#: c-decl.c:1469 c-decl.c:1667 c-decl.c:1817 objc/objc-act.c:2336 objc/objc-act.c:6038 objc/objc-act.c:6093
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "declaración previa de `%s'"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1571
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr "tipos en conflicto para la función interna `%s'"
-#: c-decl.c:1614 c-decl.c:1633
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "tipos en conflicto para `%s'"
-#: c-decl.c:1656
+#: c-decl.c:1133
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr "una lista de parámetros con una elipsis no puede coincidir con una declaración de nombre de lista de parámetros vacía."
-#: c-decl.c:1662
+#: c-decl.c:1139
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
-msgstr "un tipo de argumento que tiene una promoción por omisión no puede coincidir con una declaración de nombre de lista de parámetros vacía."
+msgstr "un tipo de argumento que tiene una promoción por defecto no puede coincidir con una declaración de nombre de lista de parámetros vacía."
+
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "la declaración thread-local para `%s' a continuación de una que no es thread-local"
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "la declaración que no es thread-local para `%s' a continuación de una thread-local"
-#: c-decl.c:1677 c-decl.c:1700
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "redefinición de `%s'"
-#: c-decl.c:1680
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "redeclaración de `%s'"
-#: c-decl.c:1683
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "declaraciones de `%s' en conflicto"
-#: c-decl.c:1727
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr "el prototipo para '%s' a continuación"
-#: c-decl.c:1728 c-decl.c:1736 c-decl.c:1752
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "la definición del no prototipo aquí"
-#: c-decl.c:1735
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr "el prototipo para `%s' continúa y el número de argumentos no coincide"
-#: c-decl.c:1750
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr "el prototipo para `%s' a continuación y el argumento %d no coinciden"
-#: c-decl.c:1768
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr "`%s' declarado inline antes de ser llamado"
-#: c-decl.c:1774
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr "`%s' declarado inline después de su definición"
-#: c-decl.c:1781
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr "la declaración static para `%s' a continuación de una no static"
-#: c-decl.c:1789
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr "la declaración no static para `%s' a continuación de una static"
-#: c-decl.c:1796
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr "la declaración const para '%s' a continuación de una no const"
-#: c-decl.c:1803
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "los calificadores de tipo para `%s' generan conflicto con la declaración previa"
-#: c-decl.c:1816
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr "declaración redundante de `%s' en el mismo ámbito"
-#: c-decl.c:2120 java/decl.c:1076
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
-msgstr "la declaración de `%s' obscurece un parámetro"
+msgstr "la declaración de `%s' oscurece un parámetro"
-#: c-decl.c:2123 java/decl.c:1079
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
-msgstr "la declaración de `%s' obscurece un símbolo de la lista de parámetros"
+msgstr "la declaración de `%s' oscurece un símbolo de la lista de parámetros"
-#: c-decl.c:2144 cp/decl.c:4236
+#: c-decl.c:1643 cp/decl.c:4479
msgid "a parameter"
msgstr "un parámetro"
-#: c-decl.c:2146 cp/decl.c:4253
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
msgstr "un local previo"
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2150 cp/decl.c:4257
+#: c-decl.c:1649 cp/decl.c:4500
msgid "a global declaration"
msgstr "una declaración global"
-#: c-decl.c:2194
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "declaración externa anidada de `%s'"
-#: c-decl.c:2216 java/decl.c:1029
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr "se usa `%s' previo a la declaración"
-#: c-decl.c:2231 c-decl.c:2446
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "`%s' se declaró implícitamente `extern' y después `static'"
-#: c-decl.c:2341 cp/decl.c:4095
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr "no coinciden los tipos con la declaración externa previa"
-#: c-decl.c:2342
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "declaración externa previa de `%s'"
-#: c-decl.c:2355
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "no coinciden los tipos con la declaración implícita previa"
-#: c-decl.c:2357
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "declaración implícita previa de `%s'"
-#: c-decl.c:2374
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "el tamaño de `%s' externo no es global"
-
-#: c-decl.c:2425
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr "`%s' fue declarado previa e implícitamente para devolver `int'"
-#: c-decl.c:2450
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "`%s' fue declarado `extern' y después `static'"
-#: c-decl.c:2474
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "la declaración externa de `%s' no coincide con la global"
-#: c-decl.c:2516
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr "`%s' es externa localmente pero estática globalmente"
-#: c-decl.c:2638
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr "la función `%s' fue declarada previamente dentro de un bloque"
-#: c-decl.c:2658 c-decl.c:2660
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "declaración implícita de la función `%s'"
-#: c-decl.c:2748
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "la etiqueta %s es referenciada fuera de cualquier función"
-#: c-decl.c:2805
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "declaración de la etiqueta `%s' duplicada"
-#: c-decl.c:2808
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "esta es una declaración previa"
-#: c-decl.c:3320
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr "struct/union sin nombre que no define ninguna instancia"
-#: c-decl.c:3339
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "palabras claves inútiles o nombres de tipos en una declaración vacía"
-#: c-decl.c:3346
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "se especificaron dos tipos en una declaración vacía"
-#: c-decl.c:3351 c-parse.y:725 c-parse.y:727 parse.y:742 parse.y:1827 objc-parse.y:761 objc-parse.y:763 objc-parse.y:2997
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "declaración vacía"
-#: c-decl.c:3381
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
-msgstr "ISO C89 no tiene soporte para `static' o calificadores de tipo en las declaraciones de parámetros de matrices"
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C90 no tiene soporte para `static' o calificadores de tipo en los declaradores de parámetros de matrices"
-#: c-decl.c:3383
-msgid "ISO C89 does not support `[*]' array declarators"
-msgstr "ISO C89 no tiene soporte para declaradores de matriz `[*]'"
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C90 no tiene soporte para declaradores de matriz `[*]'"
-#: c-decl.c:3386
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr "GCC aún no implementa adecuadamente los declaradores de matriz `[*]'"
-#: c-decl.c:3405
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr "static o calificador de tipo en un declarador abstracto"
-#: c-decl.c:3479
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "`%s' generalmente es una función"
-#: c-decl.c:3493
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
-msgstr "typedef `%s' tiene valor inicial"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef `%s' está inicializado (utilice __typeof__ en su lugar)"
-#: c-decl.c:3500
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
-msgstr "la función `%s' tiene valor inicial como una variable"
+msgstr "la función `%s' está inicializada como una variable"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3507
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
-msgstr "el parámetro `%s' tiene valor inicial"
+msgstr "el parámetro `%s' está inicializado"
-#: c-decl.c:3527 c-typeck.c:4841
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
-msgstr "un objeto de tamaño variable no puede tener valor inicial"
+msgstr "un objeto de tamaño variable no puede ser inicializado"
-#: c-decl.c:3533
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
-msgstr "la variable `%s' tiene asignación de valor inicial, pero tipo de dato incompleto"
+msgstr "la variable `%s' tiene un inicializador, pero es de tipo de dato incompleto"
-#: c-decl.c:3539
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "algunos elementos de la matriz `%s' tienen tipo de dato incompleto"
-#: c-decl.c:3552
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
-msgstr "la declaración de `%s' tiene `extern' y tiene valor inicial"
+msgstr "la declaración de `%s' tiene `extern' y está inicializada"
-#: c-decl.c:3591 c-decl.c:6246 cp/decl.c:7368 cp/decl.c:13623
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, c-format
msgid "inline function `%s' given attribute noinline"
msgstr "se le dió a la función inline `%s' un atributo noinline"
-#: c-decl.c:3674
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
-msgstr "el iniciador no pudo determinar el tamaño de `%s'"
+msgstr "el inicializador no puede determinar el tamaño de `%s'"
-#: c-decl.c:3679
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr "falta el tamaño de la matriz en %s"
-#: c-decl.c:3695
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr "matriz `%s' de tamaño cero o negativo"
-#: c-decl.c:3723
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr "no se conoce el tamaño de almacenamiento de `%s'"
-#: c-decl.c:3733
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr "el tamaño de almacenamiento de `%s' no es constante"
-#: c-decl.c:3792
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "se ignora el especificador asm para la variable local no estática `%s'"
-#: c-decl.c:3867
+#: c-decl.c:3247
#, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
-msgstr "ISO C prohibe el obscurecimiento del parámetro `%s' de typedef"
+msgstr "ISO C prohíbe el oscurecimiento del parámetro `%s' de typedef"
-#: c-decl.c:4171 cp/decl.c:10171
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "`long long long' es demasiado largo para GCC"
-#: c-decl.c:4176
-msgid "ISO C89 does not support `long long'"
-msgstr "ISO C89 no da soporte a `long long'"
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO C90 no da soporte a `long long'"
-#: c-decl.c:4181 cp/decl.c:10176
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "`%s' duplicado"
-#: c-decl.c:4187 cp/decl.c:10200
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "`__thread' antes de `extern'"
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "`__thread' antes de `static'"
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "dos o más tipos de datos en la declaración de `%s'"
-#: c-decl.c:4207 cp/decl.c:10205
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr "`%s' falla al ser un typedef o un tipo interno del compilador"
-#: c-decl.c:4246
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
-msgstr "el tipo de dato por omisión es `int' en la declaración de `%s'"
+msgstr "el tipo de dato por defecto es `int' en la declaración de `%s'"
-#: c-decl.c:4275
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr "se especifica long y short al mismo tiempo para `%s'"
-#: c-decl.c:4279 cp/decl.c:10320
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "se especifica long ó short con char para `%s'"
-#: c-decl.c:4286 cp/decl.c:10324
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "se especifica long ó short con tipo floating para `%s'"
-#: c-decl.c:4289
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "la única combinación válida es `long double'"
-#: c-decl.c:4295
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "se especifica signed y unsigned al mismo tiempo para `%s'"
-#: c-decl.c:4297 cp/decl.c:10313
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "long, short, signed ó unsigned inválidos para `%s'"
-#: c-decl.c:4303 cp/decl.c:10333
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr "uso inválido de long, short, signed ó unsigned para `%s'"
-#: c-decl.c:4322 cp/decl.c:10354
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "complex inválido para `%s'"
-#: c-decl.c:4367
-msgid "ISO C89 does not support complex types"
-msgstr "ISO C89 no tiene soporte para tipos complejos"
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C90 no tiene soporte para tipos complejos"
-#: c-decl.c:4379
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr "ISO C no tiene soporte para `complex' simples que significan `double complex'"
-#: c-decl.c:4385 c-decl.c:4397
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr "ISO C no da soporte a tipos enteros complejos"
-#: c-decl.c:4412 c-decl.c:4851 cp/decl.c:10969
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "`const' duplicado"
-#: c-decl.c:4414 c-decl.c:4855 cp/decl.c:10973
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "`restrict' duplicado"
-#: c-decl.c:4416 c-decl.c:4853 cp/decl.c:10971
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
msgstr "`volatile' duplicado"
-#: c-decl.c:4438 cp/decl.c:10509
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "múltiples clases de almacenamiento en la declaración de `%s'"
-#: c-decl.c:4447
+#: c-decl.c:3892
msgid "function definition declared `auto'"
-msgstr "la definición de la función lo declaró como `auto'"
+msgstr "la definición de la función se declaró como `auto'"
-#: c-decl.c:4449
+#: c-decl.c:3894
msgid "function definition declared `register'"
-msgstr "la definición de la función lo declaró como `register'"
+msgstr "la definición de la función se declaró como `register'"
-#: c-decl.c:4451
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
-msgstr "la definición de la función lo declaró como `typedef'"
+msgstr "la definición de la función se declaró como `typedef'"
+
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "la definición de la función se declaró como `__thread'"
-#: c-decl.c:4464
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "se especificó una clase de almacenamiento para el campo de la estructura `%s'"
-#: c-decl.c:4468 cp/decl.c:10556
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "se especificó una clase de almacenamiento para el parámetro `%s'"
-#: c-decl.c:4471 cp/decl.c:10558
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
-#: c-decl.c:4483 cp/decl.c:10572
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
-msgstr "`%s' iniciado y declarado como `extern'"
+msgstr "`%s' inicializado y declarado como `extern'"
-#: c-decl.c:4485 cp/decl.c:10575
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
-msgstr "`%s' tiene `extern' y asignador de valor inicial al mismo tiempo"
+msgstr "`%s' tiene `extern' e inicializador al mismo tiempo"
-#: c-decl.c:4489 cp/decl.c:10579
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "la declaración del nivel superior de `%s' especifica `auto'"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "la función anidada `%s' se declaró `extern'"
-#: c-decl.c:4492 cp/decl.c:10583
+#: c-decl.c:3948 cp/decl.c:11319
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "la declaración del nivel superior de `%s' especifica `auto'"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "el ámbito de la función `%s' es implícitamente auto y declarada `__thread'"
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4527 c-decl.c:4716
+#: c-decl.c:3987 c-decl.c:4188
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "static o calificadores de tipo en un declarador de matriz que no es parámetro"
-#: c-decl.c:4571
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "la declaración de `%s' como una matriz de voids"
-#: c-decl.c:4577
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "la declaración de `%s' como una matriz de funciones"
-#: c-decl.c:4598
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "uso inválido de una estructura con un miembro de matriz flexible"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr "el tamaño de la matriz `%s' tiene un tipo no entero"
-#: c-decl.c:4603
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
-msgstr "ISO C prohibe la matriz `%s' de tamaño cero"
+msgstr "ISO C prohíbe la matriz `%s' de tamaño cero"
-#: c-decl.c:4610
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr "el tamaño de la matriz `%s' es negativo"
-#: c-decl.c:4623
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
-msgstr "ISO C89 prohibe la matriz `%s' cuyo tamaño no puede ser evaluado"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "ISO C90 prohíbe la matriz `%s' cuyo tamaño no se puede evaluar"
-#: c-decl.c:4626
+#: c-decl.c:4089
#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
-msgstr "ISO C89 prohibe la matriz `%s' de tamaño variable"
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO C90 prohíbe la matriz `%s' de tamaño variable"
-#: c-decl.c:4656 c-decl.c:4877 cp/decl.c:11179
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
msgstr "el tamaño de la matriz `%s' es demasiado grande"
-#: c-decl.c:4673
-msgid "ISO C89 does not support flexible array members"
-msgstr "ISO C89 no tiene soporte para miembros de matriz flexibles"
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C90 no tiene soporte para miembros de matriz flexibles"
-#: c-decl.c:4683
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr "el tipo matriz tiene tipo de elemento incompleto"
-#: c-decl.c:4690 c-decl.c:4927
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
-msgstr "ISO C prohibe los tipos de función const o volatile"
+msgstr "ISO C prohíbe los tipos de función const o volatile"
-#: c-decl.c:4736 cp/decl.c:10720
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "`%s' que es declarado como función devuelve una función"
-#: c-decl.c:4741 cp/decl.c:10725
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "`%s' que es declarado como función devuelve una matriz"
-#: c-decl.c:4776
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
-msgstr "ISO C prohibe el tipo calificado de devolución de una función void"
+msgstr "ISO C prohíbe el tipo calificado de devolución de una función void"
-#: c-decl.c:4780
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr "se ignoran los calificadores de tipo en el tipo de devolución de la función"
-#: c-decl.c:4809 c-decl.c:4892 c-decl.c:5016 c-decl.c:5110
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
-msgstr "ISO C prohibe los tipos de función calificados"
+msgstr "ISO C prohíbe los tipos de función calificados"
-#: c-decl.c:4849 cp/decl.c:10965
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
-msgstr "modificador de tipo inválido dentro de la declaración del apuntador"
+msgstr "modificador de tipo inválido dentro de la declaración del puntero"
-#: c-decl.c:4947 cp/decl.c:11457
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "variable o campo `%s' declarado void"
-#: c-decl.c:4980
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr "se ignoran los atributos en los declaradores de parámetros de matriz"
-#: c-decl.c:5005
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr "modificador de tipo inválido dentro de un declarador de matriz"
-#: c-decl.c:5054
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "el campo `%s' declarado como una función"
-#: c-decl.c:5060
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "el campo `%s' tiene tipo de dato incompleto"
-#: c-decl.c:5092 c-decl.c:5094 c-decl.c:5101
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "clase de almacenamiento inválida para la función `%s'"
-#: c-decl.c:5116
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr "la función `no return' devuelve un valor que no es void"
-#: c-decl.c:5131
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr "no se puede hacer inline la función `main'"
-#: c-decl.c:5184
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr "la variable `%s' fue declarada como `inline'"
-#: c-decl.c:5257 c-decl.c:6298
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "no se da soporte a almacenamiento thread-local para este objetivo"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr "la declaración de la función no es un prototipo"
-#: c-decl.c:5263
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr "nombres de parámetros (sin tipos) en la declaración de la función"
-#: c-decl.c:5295 c-decl.c:6689
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "el parámetro `%s' tiene tipo de dato incompleto"
-#: c-decl.c:5298
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "el parámetro tiene tipo incompleto"
-#: c-decl.c:5319
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr "el parámetro `%s' apunta a un tipo incompleto"
-#: c-decl.c:5322
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr "el parámetro apunta a un tipo incompleto"
-#: c-decl.c:5387
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr "el parámetro `%s' sólo tiene una declaración posterior"
-#: c-decl.c:5428
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "`void' en la lista de parámetros debe ser la lista completa"
-#: c-decl.c:5459
+#: c-decl.c:4934
#, c-format
msgid "`struct %s' declared inside parameter list"
msgstr "se declaró `struct %s' dentro de la lista de parámetros"
-#: c-decl.c:5462
+#: c-decl.c:4937
#, c-format
msgid "`union %s' declared inside parameter list"
msgstr "se declaró `union %s' dentro de la lista de parámetros"
-#: c-decl.c:5465
+#: c-decl.c:4940
#, c-format
msgid "`enum %s' declared inside parameter list"
msgstr "se declaró `enum %s' dentro de la lista de parámetros"
-#: c-decl.c:5472
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr "struct anónimo declarado dentro de una lista de parámetros"
-#: c-decl.c:5474
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr "union anónimo declarado dentro de una lista de parámetros"
-#: c-decl.c:5476
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr "enum anónimo declarado dentro de una lista de parámetros"
-#: c-decl.c:5480
+#: c-decl.c:4955
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no sea lo que desea"
-#: c-decl.c:5559
+#: c-decl.c:5032
#, c-format
msgid "redefinition of `union %s'"
msgstr "redefinición de `union %s'"
-#: c-decl.c:5562
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
msgstr "redefinición de `struct %s'"
-#: c-decl.c:5601
-msgid "unnamed fields of type other than struct or union are not allowed"
-msgstr "no se permiten campos sin nombre de otro tipo que no sea struct o union"
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "la declaración no declara nada}"
-#: c-decl.c:5642 c-decl.c:5645
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr "se definió %s dentro de los parámetros"
-#: c-decl.c:5643 c-decl.c:5646 c-decl.c:5657
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "unión"
-#: c-decl.c:5643 c-decl.c:5646
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "estructura"
-#: c-decl.c:5656
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
-msgstr "%s no tiene `%s'"
+msgstr "%s no tiene %s"
-#: c-decl.c:5657
+#: c-decl.c:5184
msgid "struct"
msgstr "struct"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "named members"
msgstr "miembros nombrados"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "members"
msgstr "miembros"
-#: c-decl.c:5697
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "redefinición anidada de `%s'"
-#: c-decl.c:5710
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr "la anchura del campo de bits `%s' no es una constante entera"
-#: c-decl.c:5721
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr "el campo de bits `%s' tiene un tipo inválido"
-#: c-decl.c:5733
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr "el tipo de campo de bit `%s' es inválido en ISO C"
-#: c-decl.c:5744
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "anchura negativa en el campo de bit `%s'"
-#: c-decl.c:5746
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr "la anchura de `%s' excede su tipo"
-#: c-decl.c:5748
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr "anchura cero para el campo de bits `%s'"
-#: c-decl.c:5762
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr "`%s' es más estrecho que los valores de su tipo"
-#: c-decl.c:5808
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr "miembro de matriz flexible en el union"
-#: c-decl.c:5810
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr "el miembro de matriz flexible no está al final del struct"
-#: c-decl.c:5812
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
msgstr "el miembro de matriz flexible sería de otra manera un struct vacío"
-#: c-decl.c:5837
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "miembro duplicado `%s'"
-#: c-decl.c:5881
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr "union no se puede hacer transparente"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5975
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr "redeclaración de `enum %s'"
-#: c-decl.c:6009
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr "enum definido dentro de los parámetros"
-#: c-decl.c:6042
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr "los valores de enumeración exceden el rango del entero más grande"
-#: c-decl.c:6151
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "el valor de enumerador para `%s' no es una constante entera"
-#: c-decl.c:6164
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "desbordamiento en valores de enumeración"
-#: c-decl.c:6169
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
msgstr "ISO C restringe los valores de enumeración al rango de `int'"
-#: c-decl.c:6252
+#: c-decl.c:5834
msgid "return type is an incomplete type"
msgstr "el tipo de devolución es un tipo de dato incompleto"
-#: c-decl.c:6260
+#: c-decl.c:5842
msgid "return type defaults to `int'"
-msgstr "el tipo de devolución por omisión es `int'"
+msgstr "el tipo de devolución por defecto es `int'"
-#: c-decl.c:6307
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr "no hay un prototipo previo para `%s'"
-#: c-decl.c:6314
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "se usó `%s' sin prototipo antes de su definición"
-#: c-decl.c:6320
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr "no hay declaración previa para `%s'"
-#: c-decl.c:6327
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "se usó `%s' sin declaración antes de su definición"
-#: c-decl.c:6351 c-decl.c:6936
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
msgstr "el tipo de devolución de `%s' no es `int'"
-#: c-decl.c:6367
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr "el primer argumento de `%s' debe ser `int'"
-#: c-decl.c:6376
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr "el segundo argumento de `%s' debe ser `char **'"
-#: c-decl.c:6385
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr "el tercer argumento de `%s' debería ser `char **'"
-#: c-decl.c:6394
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr "`%s' sólo toma cero o dos argumentos"
-#: c-decl.c:6397
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
msgstr "`%s' generalmente es una función no estática"
-#: c-decl.c:6507
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr "se dieron los tipos de los parámetros en la lista de parámetros y por separado"
-#: c-decl.c:6528
+#: c-decl.c:6098
msgid "parameter name omitted"
msgstr "se omitió el nombre del parámetro"
-#: c-decl.c:6532 c-decl.c:6634
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
msgstr "el parámetro `%s' se declaró void"
-#: c-decl.c:6608
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "falta el nombre del parámetro de la lista de parámetros"
-#: c-decl.c:6627
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
msgstr "múltiples parámetros nombrados `%s'"
-#: c-decl.c:6658 c-decl.c:6660
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
-msgstr "el tipo de `%s' es `int' por omisión"
+msgstr "el tipo de `%s' es `int' por defecto"
-#: c-decl.c:6696
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "existe la declaración para el parámetro `%s' pero no hay tal parámetro"
-#: c-decl.c:6744
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "el número de argumentos no coinciden con el prototipo"
-#: c-decl.c:6774
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr "el argumento promovido `%s' no coincide con el prototipo"
-#: c-decl.c:6788
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr "el argumento `%s' no coincide con el prototipo"
-#: c-decl.c:6968 cp/decl.c:14327
+#: c-decl.c:6518 cp/decl.c:15049
msgid "no return statement in function returning non-void"
msgstr "no hay una declaración de devolución en una función que no devuelve void"
-#: c-decl.c:7124
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr "esta función puede devolver con o sin un valor"
-#: c-decl.c:7144
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr "el tamaño del valor de devolución de `%s' es de %u bytes"
-#: c-decl.c:7148
+#: c-decl.c:6733
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "el tamaño del valor de devolución de `%s' es más grande que %d bytes"
@@ -1430,896 +1518,993 @@ msgstr "el tamaño del valor de devolución de `%s' es más grande que %d bytes"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7203
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
msgstr "se usó la declaración inicial del ciclo `for' fuera del modo C99"
-#: c-decl.c:7227
+#: c-decl.c:6815
#, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr "`struct %s' declarado en la declaración inicial del ciclo `for'"
-#: c-decl.c:7230
+#: c-decl.c:6818
#, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr "`union %s' declarado en la declaración inicial del ciclo `for'"
-#: c-decl.c:7233
+#: c-decl.c:6821
#, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr "`enum %s' declarado en la declaración inicial del ciclo `for'"
-#: c-decl.c:7241
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr "declaración de `%s' que no es variable en la declaración inicial del ciclo `for'"
-#: c-decl.c:7243
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr "declaración de la variable static `%s' en la declaración inicial del ciclo `for'"
-#: c-decl.c:7245
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr "declaración de la variable `extern' `%s' en la declaración inicial del ciclo `for'"
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr "el argumento de la cadena de formato no es del tipo cadena de texto"
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
msgstr "los argumentos que recibirán formato no son '...'"
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
msgstr "los formatos de strftime no pueden dar formato a los argumentos"
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
msgstr "la cadena de formato tiene un número de operadores inválido"
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr "la función no devuelve valores de tipo cadena"
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr "no se reconoce el especificador de formato"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr "`%s' es un formato de tipo de función no reconocido"
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr "el argumento de la cadena de formato sigue a los argumentos que recibirán formato"
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr "opción ` '"
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr "la opción de printf ` '"
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr "opción `+'"
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr "la opción de printf `+'"
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr "opción `#'"
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr "la opción de printf `#'"
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr "opción `0'"
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr "la opción de printf `0'"
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr "opción `-'"
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr "la opción de printf `-'"
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr "opción `''"
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr "la opción de printf `''"
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr "opción `I'"
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr "la opción de printf `I'"
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1790
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr "anchura de campo"
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
msgstr "anchura de campo en formato printf"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
msgstr "precisión"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
msgstr "precisión en formato printf"
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr "modificador de longitud"
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
msgstr "modificador de longitud en formato printf"
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr "supresión de la asignación"
-#: c-format.c:645
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
msgstr "la supresión de la asignación es una característica de scanf"
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr "opción `a'"
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr "la opción de scanf `a'"
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
msgstr "anchura de campo en formato scanf"
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
msgstr "modificador de longitud en formato scanf"
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr "la opción de scanf `''"
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr "la opción de scanf `I'"
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr "opción `_'"
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr "la opción de strftime `_'"
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr "la opción de strftime `-'"
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr "la opción de strftime `0'"
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr "opción `^'"
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr "la opción de strftime `^'"
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr "la opción de strftime `#'"
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
msgstr "anchura de campo en formato strftime"
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr "modificador `E'"
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr "el modificador de strftime `E'"
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr "modificador `O'"
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr "el modificador de strftime `O'"
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr "el modificador `O'"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character"
msgstr "carácter de relleno"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character in strfmon format"
msgstr "carácter de relleno en el formato de strfmon"
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr "la opción de strfmon `^'"
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr "la opción de strfmon `+'"
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
msgstr "opción `('"
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr "la opción de strfmon `('"
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
msgstr "opción `!'"
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr "la opción de strfmon `!'"
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr "la opción de strfmon `-'"
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr "anchura de campo en formato strfmon"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr "precisión izquierda"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr "precisión izquierda en formato strfmon"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
msgstr "precisión derecha"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr "precisión derecha en formato strfmon"
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr "modificador de longitud en formato strfmon"
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
msgstr "la función puede ser un candidato posible para el atributo de formato `%s'"
-#: c-format.c:1122 c-format.c:1143 c-format.c:2200
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
msgstr "falta el operando numérico $ en el formato"
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
msgstr "%s no tiene soporte para el operando de formato de número %%n$"
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
msgstr "operando numérico fuera de rango en el formato"
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr "se usa más de una vez el argumento de formato %d en el formato %s"
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
msgstr "no se usa el argumento de formato %d antes de usar el argumento %d en el formato de estilo-$"
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
msgstr "el formato no es una cadena literal, no se revisó la cadena de formato"
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
msgstr "el formato no es una cadena literal y no tiene argumentos de formato"
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
msgstr "el formato no es una cadena literal, no se revisaron los tipos de argumento"
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr "demasiados argumentos para el formato"
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
msgstr "no se usaron argumentos en el formato de estilo-$"
-#: c-format.c:1365
-msgid "zero-length format string"
-msgstr "cadena de formato de longitud cero"
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "cadena de formato %s de longitud cero"
-#: c-format.c:1368
+#: c-format.c:1361
msgid "format is a wide character string"
msgstr "el formato es una cadena de carácter ancha"
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
msgstr "constante de formato sin terminar"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr "formato de cadena nulo"
-
-#: c-format.c:1669
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr "`\\0' incrustado en el formato"
-#: c-format.c:1684
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr "`%%' final espurio en el formato"
-#: c-format.c:1723 c-format.c:1960
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
msgstr "se repitió %s en el formato"
-#: c-format.c:1736
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
msgstr "falta el carácter de relleno al final del formato strfmon"
-#: c-format.c:1756 c-format.c:1874 c-format.c:2154 c-format.c:2207
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr "muy pocos argumentos para el formato"
-#: c-format.c:1816
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
msgstr "anchura cero en el formato %s"
-#: c-format.c:1835
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr "precisión izquierda vacía en el formato %s"
-#: c-format.c:1889
+#: c-format.c:1801
msgid "field precision"
msgstr "precisión del campo"
-#: c-format.c:1904
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr "precisión vacía en el formato %s"
-#: c-format.c:1944
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
-msgstr "%s no tiene soporte para el modificador de longitud %s `%s'"
+msgstr "%1$s no tiene soporte para el modificador de longitud %3$s `%2$s'"
-#: c-format.c:1994
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr "la conversión carece de tipo al final del formato"
-#: c-format.c:2005
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr "se desconoce el carácter de tipo de conversión `%c' en el formato"
-#: c-format.c:2008
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr "se desconoce el carácter de tipo de conversión 0x%x en el formato"
-#: c-format.c:2015
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
-msgstr "%s no tiene soporte para el formato `%%%c' %s"
+msgstr "%1$s no tiene soporte para el formato %3$s `%%%2$c'"
-#: c-format.c:2031
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
-msgstr "se usó %s con el formato `%%%c' %s"
+msgstr "se usó %1$s con el formato %3$s `%%%2$c'"
-#: c-format.c:2040
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr "%s no tiene soporte para %s"
-#: c-format.c:2049
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
-msgstr "%s no tiene soporte para %s con el formato `%%%c' %s"
+msgstr "%1$s no tiene soporte para %2$s con el formato %4$s `%%%3$c'"
-#: c-format.c:2082
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
-msgstr "se ignora %s con %s y el formato `%%%c' %s"
+msgstr "se ignora %1$s con %2$s y el formato %4$s `%%%3$c'"
-#: c-format.c:2086
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
msgstr "se ignora %s con %s en el formato %s"
-#: c-format.c:2092
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
-msgstr "uso de %s y %s junto con el formato `%%%c' %s"
+msgstr "uso de %1$s y %2$s junto con el formato %4$s `%%%3$c'"
-#: c-format.c:2096
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr "uso de %s y %s juntos en el formato %s"
-#: c-format.c:2115
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr "`%%%c' sólo produce los dos últimos dígitos del año en algunos lugares"
-#: c-format.c:2118
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr "`%%%c' sólo produce los dos últimos dígitos del año"
#. The end of the format string was reached.
-#: c-format.c:2134
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr "no hay un `]' que cierre para el formato `%%['"
-#: c-format.c:2147
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr "uso del modificador de longitud `%s' con el carácter de tipo `%c'"
-#: c-format.c:2168
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
-msgstr "%s no tiene soporte para el formato `%%%s%c' %s"
+msgstr "%1$s no tiene soporte para el formato %4$s `%%%2$s%3$c'"
-#: c-format.c:2183
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr "número de operandos especificado con asignación suprimida"
-#: c-format.c:2185
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
msgstr "el número de operandos especificados para el formato no toma argumentos"
-#: c-format.c:2304
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
-msgstr "escribiendo a través de un apuntador nulo (argumento %d)"
+msgstr "escribiendo a través de un puntero nulo (argumento %d)"
-#: c-format.c:2313
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
-msgstr "leyendo a través de un apuntador nulo (argumento %d)"
+msgstr "leyendo a través de un puntero nulo (argumento %d)"
-#: c-format.c:2333
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr "escribiendo en un objeto constante (argumento %d)"
-#: c-format.c:2343
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr "calificadores de tipo extra en el argumento de formato (argumento %d)"
-#: c-format.c:2350
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
-msgstr "el argumento de formato no es un apuntador (argumento %d)"
+msgstr "el argumento de formato no es un puntero (argumento %d)"
-#: c-format.c:2352
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
-msgstr "el argumento de formato no es un apuntador a un apuntador (argumento %d)"
+msgstr "el argumento de formato no es un puntero a un puntero (argumento %d)"
-#: c-format.c:2423
+#: c-format.c:2330
msgid "pointer"
-msgstr "apuntador"
+msgstr "puntero"
-#: c-format.c:2425
+#: c-format.c:2332
msgid "different type"
msgstr "tipo diferente"
-#: c-format.c:2446
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr "%s no es del tipo %s (argumento %d)"
-#: c-format.c:2449
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr "formato %s, argumento %s (argumento %d)"
-#: c-lex.c:298
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "no se definió YYDEBUG"
+
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
msgstr "encabezados C mal anidados del preprocesador"
-#: c-lex.c:348
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
msgstr "ignorando el #pragma %s %s"
-#: c-lex.c:350
-#, c-format
-msgid "ignoring #pragma %s"
-msgstr "ignorando el #pragma %s"
-
-#: c-lex.c:400
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr "universal-character-name `\\U%08x' no es válido en el identificador"
-#: c-lex.c:646
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr "universal-character-name `\\u%04x' no es válido en el identificador"
-#: c-lex.c:736
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "se encuentran los sufijos `f' y `l' al mismo tiempo en una constante de coma flotante"
-
-#: c-lex.c:763
-#, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "el número de coma flotante excede el rango de '%s'"
-
-#: c-lex.c:793
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
msgstr "'%c' parásito en el programa"
-#: c-lex.c:795
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
msgstr "'\\%o' parásito en el programa"
-#: c-lex.c:893
-msgid "too many decimal points in floating constant"
-msgstr "demasiados puntos decimales en la constante de coma flotante"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "esta constante decimal sólo es unsigned en ISO C90"
-#: c-lex.c:895
-msgid "decimal point in exponent - impossible!"
-msgstr "punto decimal en el exponente - ¡Imposible!"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "esta constante decimal será unsigned en ISO C90"
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:906
-msgid "underscore in number"
-msgstr "subrayado en el número"
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "la constante entera es demasiado grande para el tipo \"%s\""
-#: c-lex.c:968
-msgid "numeric constant with no digits"
-msgstr "constante numérica sin dígitos"
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "el número de coma flotante excede el rango de \"%s\""
-#: c-lex.c:971
-msgid "numeric constant contains digits beyond the radix"
-msgstr "la constante numérica contiene dígitos más allá del radical"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "ignorando los carácteres multibyte inválidos"
-#: c-lex.c:982
-msgid "floating constant may not be in radix 16"
-msgstr "la constante de coma flotante no puede ser de radical 16"
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "faltan argumentos para \"-%s\""
-#: c-lex.c:985
-msgid "hexadecimal floating constant has no exponent"
-msgstr "la constante de coma flotante hexadecimal no tiene exponente"
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "no se especificó un nombre de clase con \"-%s\""
-#: c-lex.c:997
-msgid "floating constant exponent has no digits"
-msgstr "el exponente de la constante de coma flotante no tiene dígitos"
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "falta un nombre de fichero después de \"-%s\""
-#: c-lex.c:1017
-msgid "more than one 'f' suffix on floating constant"
-msgstr "más de un sufijo `f' en una constante de coma flotante"
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "falta un objetivo después de \"-%s\""
-#: c-lex.c:1020
-msgid "traditional C rejects the 'f' suffix"
-msgstr "C tradicional rechaza el sufijo 'f'"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "opciones de matriz ordenadas incorrectamente: %s está antes de %s"
-#: c-lex.c:1027
-msgid "more than one 'l' suffix on floating constant"
-msgstr "más de un sufijo `l' en una constante de coma flotante"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "demasiados nombres de ficheros. Teclee %s --help para información de modo de empleo"
-#: c-lex.c:1030
-msgid "traditional C rejects the 'l' suffix"
-msgstr "C tradicional rechaza el sufijo 'l'"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes no tiene soporte en C++"
-#: c-lex.c:1038
-msgid "more than one 'i' or 'j' suffix on floating constant"
-msgstr "más de un sufijo `i' o una `j' en una constante de coma flotante"
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "la opción \"%s\" ya no tiene soporte"
-#: c-lex.c:1040 c-lex.c:1134
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ISO C prohibe las constantes numéricas imaginarias"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "la opción \"%s\" es obsoleta, por favor vea la documentación para más detalles"
-#: c-lex.c:1045
-msgid "invalid suffix on floating constant"
-msgstr "sufijo inválido en una constante entera"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "se renombró -fhandle-exceptions a -fexceptions (y ahora está activado por defecto)"
-#. We got an exception from parse_float()
-#: c-lex.c:1062
-msgid "floating constant out of range"
-msgstr "constante de coma flotante fuera de rango"
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "se especificó dos veces el nombre del fichero de salida"
-#: c-lex.c:1074
-msgid "floating point number exceeds range of 'double'"
-msgstr "el número de coma flotante excede el rango de 'double'"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "se ignora -Wformat-y2k sin -Wformat"
-#: c-lex.c:1103
-msgid "two 'u' suffixes on integer constant"
-msgstr "dos sufijos 'u' en la constante entera"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "se ignora -Wformat-extra-args sin -Wformat"
-#: c-lex.c:1106
-msgid "traditional C rejects the 'u' suffix"
-msgstr "C tradicional rechaza el sufijo 'u'"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "se ignora -Wformat-zero-lenght sin -Wformat"
-#: c-lex.c:1117
-msgid "three 'l' suffixes on integer constant"
-msgstr "tres sufijos 'l' en la constante entera"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "se ignora -Wformat-nonliteral sin -Wformat"
-#: c-lex.c:1119
-msgid "'lul' is not a valid integer suffix"
-msgstr "'lul' no es un sufijo entero válido"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "se ignora -Wformat-security sin -Wformat"
-#: c-lex.c:1121
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr "'Ll' y 'lL' no son sufijos enteros válidos"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "se ignora -Wformat-attribute sin -Wformat"
-#: c-lex.c:1124
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ISO C89 prohibe constantes enteras long long"
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
+msgstr "abriendo el fichero de salida %s"
-#: c-lex.c:1132
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "más de un sufijo `i' o una `j' en una constante entera"
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr "abriendo el fichero de dependencias %s"
-#: c-lex.c:1139
-msgid "invalid suffix on integer constant"
-msgstr "sufijo inválido en una constante entera"
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "cerrando el fichero de dependencias %s"
-#: c-lex.c:1147
+#: c-opts.c:1487
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
-msgstr "la constante entera es muy grande para esta configuración del compilador - truncando a %d bits"
+msgid "when writing output to %s"
+msgstr "al escribir la salida a %s"
-#: c-lex.c:1237
-msgid "width of integer constant changes with -traditional"
-msgstr "la anchura de la constante entera cambia con -traditional"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "para generar dependencias debe especificar -M ó -MM"
-#: c-lex.c:1239
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "la constante entera es unsigned en ISO C, es signed con -traditional"
+#: c-opts.c:1715
+#, fuzzy, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "\"-%s\" es válido para %s pero no para %s"
-#: c-lex.c:1241
-msgid "width of integer constant may change on other systems with -traditional"
-msgstr "la anchura de la constante entera puede cambiar en otros sistemas con -traditional"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"Interruptores:\n"
+" -include <fichero> Incluye el contenido del <fichero> antes de otros ficheros\n"
+" -imacros <fichero> Aceptar definiciones de macros en el <fichero>\n"
+" -iprefix <ruta> Especificar la <ruta> como un prefijo para las siguientes dos opciones\n"
+" -iwithprefix <dir> Agregar el <dir>ectorio al final de la ruta de inclusión del sistema\n"
+" -iwithprefixbefore <dir> Agregar el <dir>ectorio al final de la ruta de inclusión principal\n"
+" -isystem <dir> Agregar el <dir>ectorio al inicio de la ruta de inclusión del sistema\n"
-#: c-lex.c:1251
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "la constante entera es más grande que el valor máximo de %s"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter <dir> Agregar el <dir>ectorio al final de la ruta de inclusión del sistema\n"
+" -I <dir> Agregar el <dir>ectorio al final de la ruta de inclusión principal\n"
+" -I- Control granula de la ruta de inclusión; vea los documentos info\n"
+" -nostdinc No buscar en los directorios de inclusión del sistema\n"
+" (aún se usarán los directorios especificados con -isystem)\n"
+" -nostdinc++ No buscar en los directorios de inclusión del sistema para C++\n"
+" -o <fichero> Poner la salida en el <fichero>\n"
-#: c-lex.c:1254
-msgid "an unsigned long long int"
-msgstr "un unsigned long long int"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs Permitir trigrafos ISO C\n"
+" -std=<nombre std> Especificar la concordancia con estándard; una de:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibir los mensajes de aviso\n"
+" -W[no-]trigraphs Avisar si se encuentran trigrafos\n"
+" -W[no-]comment{s} Avisar si un comentario inicia dentro de otro\n"
-#: c-lex.c:1255
-msgid "a long long int"
-msgstr "un long long int"
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Avisar sobre características no presentes en C tradicional\n"
+" -W[no-]undef Avisar si una macro sin definir es usada por #if\n"
+" -W[no-]import Avisar sobre el uso de la directiva #import\n"
-#: c-lex.c:1256
-msgid "an unsigned long int"
-msgstr "un unsigned long int"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error Tratar todos los avisos como errores\n"
+" -W[no-]system-headers No suprimir los avisos de los encabezados del sistema\n"
+" -W[no-]all Activar casi todos los avisos del preprocesador\n"
-#: c-lex.c:1260
-msgid "decimal constant is so large that it is unsigned"
-msgstr "la constante decimal es tan grande que es unsigned"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M Genera dependencias para make\n"
+" -MM Como -M, pero ignora los ficheros de encabezado del sistema\n"
+" -MD Genera dependencias para make y compila\n"
+" -MMD Como -MD, pero ignora los ficheros de encabezado del sistema\n"
+" -MF <fichero> Escribe la salida de la dependencia en el fichero dado\n"
+" -MG Trata los ficheros de encabezado faltantes como ficheros generados\n"
-#: c-lex.c:1269
-msgid "complex integer constant is too wide for 'complex int'"
-msgstr "la constante entera compleja es demasiado ancha para `complex int'"
+# ¿Estoy usando la traducción correcta de 'quoted'? cfuga
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Generar objetivos falsos para todos los encabezados\n"
+" -MQ <objetivo> Agregar un objetivo entrecomillado para MAKE\n"
+" -MT <objetivo> Agregar un objetivo sin comillas\n"
-#: c-lex.c:1289
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "la constante entera es más grande que el valor máximo para su tipo"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<macro> Define una <macro> con la cadena '1' como su valor\n"
+" -D<macro>=<valor> Define una <macro> con <valor> como su valor\n"
+" -A<pregunta>=<resp> Define la <resp>uesta para la <pregunta>\n"
+" -A-<pregunta>=<resp> Desactiva la <resp>uesta a la <pregunta>\n"
+" -U<macro> Borra la definición de <macro> \n"
+" -v Muestra el número de la versión\n"
-#: c-lex.c:1293
-#, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "falta un espacio en blanco después del número `%.*s'"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Muestra el nombre de los ficheros de encabezado cada vez que se usan\n"
+" -C No descarta los comentarios\n"
+" -dM Muestra una lista de definiciones de macro activas al final\n"
+" -dD Preserva las definiciones de macro en la salida\n"
+" -dN Como -dD excepto que sólo se preservan los nombres\n"
+" -dI Incluye directivas #include en la salida\n"
-#: c-lex.c:1329 cpplex.c:1873
-msgid "ignoring invalid multibyte character"
-msgstr "ignorando los carácteres multibyte inválidos"
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Trata el fichero de entrada como si ya fuera preprocesado\n"
+" -ftabstop=<número> Distancia entre los topes de tabulador para el reporte en columnas\n"
+" -P No genera directivas #line\n"
+" -remap Remapea los nombres de fichero cuando se incluyan ficheros\n"
+" --help Muestra esta información\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 parse.y:51 objc-parse.y:57
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "error sintáctico"
-#: /usr/share/bison/bison.simple:176 /usr/share/bison.simple:112
+#: /usr/share/bison/bison.simple:179
msgid "syntax error: cannot back up"
msgstr "error sintáctico: no se puede regresar"
-#: c-parse.y:288 objc-parse.y:310
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
-msgstr "ISO C prohibe un fichero fuente vacío"
+msgstr "ISO C prohíbe un fichero fuente vacío"
-#: c-parse.y:321 c-typeck.c:6895 objc-parse.y:343
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "el argumento de `asm' no es una cadena constante"
-#: c-parse.y:329 objc-parse.y:351
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
-msgstr "ISO C prohibe la definición de datos sin tipo o clase de almacenamiento"
+msgstr "ISO C prohíbe la definición de datos sin tipo o clase de almacenamiento"
-#: c-parse.y:331 objc-parse.y:353
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr "la definición de datos no tiene tipo o clase de almacenamiento"
-#: c-parse.y:344 objc-parse.y:366
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr "ISO C no permite ';' extra fuera de una función"
-#: c-parse.y:404 cppexp.c:693
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr "C tradicional rechaza el operador unario mas"
-#: c-parse.y:466 objc-parse.y:488
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "`sizeof' aplicado a un campo de bits"
-#: c-parse.y:546 objc-parse.y:568
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
-msgstr "ISO C prohibe la omisión del término medio de una expresión ?:"
+msgstr "ISO C prohíbe la omisión del término medio de una expresión ?:"
-#: c-parse.y:593 objc-parse.y:615
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
-msgstr "ISO C89 prohibe las literales compuestas"
+msgstr "ISO C89 prohíbe las literales compuestas"
-#: c-parse.y:607 objc-parse.y:629
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
-msgstr "ISO C prohibe grupos de llaves dentro de expresiones"
+msgstr "ISO C prohíbe grupos de llaves dentro de expresiones"
-#: c-parse.y:638 objc-parse.y:660
+#: c-parse.y:677 objc-parse.y:699
msgid "first argument to __builtin_choose_expr not a constant"
msgstr "el primer argumento de __builtin_choose_expr no es una constante"
-#: c-parse.y:681
-msgid "traditional C rejects string concatenation"
-msgstr "C tradicional rechaza la concatenación de cadenas"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "C tradicional rechaza la definición de funciones de estilo ISO C"
-#: c-parse.y:696 objc-parse.y:732
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C no permite el uso de `varargs.h'"
-
-#: c-parse.y:957 c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:996 c-parse.y:1002 c-parse.y:1008 c-parse.y:1014 c-parse.y:1047 c-parse.y:1053 c-parse.y:1059 c-parse.y:1065 c-parse.y:1110 c-parse.y:1116 c-parse.y:1122 c-parse.y:1128 parse.y:1907 parse.y:1914 parse.y:1949 objc-parse.y:993 objc-parse.y:999 objc-parse.y:1005 objc-parse.y:1011 objc-parse.y:1032 objc-parse.y:1038 objc-parse.y:1044 objc-parse.y:1050 objc-parse.y:1083 objc-parse.y:1089 objc-parse.y:1095 objc-parse.y:1101 objc-parse.y:1146 objc-parse.y:1152 objc-parse.y:1158 objc-parse.y:1164
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "`%s' no está en el inicio de la declaración"
-#: c-parse.y:1410 objc-parse.y:1455
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
-msgstr "ISO C prohibe las llaves de iniciador vacías"
+msgstr "ISO C prohíbe las llaves de inicializador vacías"
-#: c-parse.y:1424 objc-parse.y:1469
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
-msgstr "ISO C89 prohibe la especificación de subobjetos a iniciar"
+msgstr "ISO C89 prohíbe la especificación de subobjetos a inicializar"
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
-msgstr "uso obsoleto del iniciador designado sin `='"
+msgstr "uso obsoleto del inicializador designado sin `='"
-#: c-parse.y:1431 objc-parse.y:1476
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
-msgstr "uso obsoleto del iniciador asignado con `:'"
+msgstr "uso obsoleto del inicializador asignado con `:'"
-#: c-parse.y:1460
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
-msgstr "ISO C prohibe la especificación de rangos de elementos a iniciar"
+msgstr "ISO C prohíbe la especificación de rangos de elementos a inicializar"
-#: c-parse.y:1468 c-parse.y:1498 objc-parse.y:1507 objc-parse.y:1537
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
-msgstr "ISO C prohibe las funciones anidadas"
+msgstr "ISO C prohíbe las funciones anidadas"
-#: c-parse.y:1672 objc-parse.y:1713
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
-msgstr "ISO C prohibe las declaraciones posteriores para tipos `enum'"
+msgstr "ISO C prohíbe las declaraciones posteriores para tipos `enum'"
-#: c-parse.y:1684 parse.y:2364 objc-parse.y:1725
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "coma al final de la lista de enumeradores"
-#: c-parse.y:1692 objc-parse.y:1733
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr "no hay punto y coma al final del struct o union"
-#: c-parse.y:1701 objc-parse.y:1742 objc-parse.y:2819
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr "se especificó un punto y coma extra en un struct o union"
-#: c-parse.y:1714 objc-parse.y:1769
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr "ISO C no tiene soporte para structs/unions sin nombre"
-#: c-parse.y:1723 objc-parse.y:1778
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
-msgstr "ISO C prohibe declaraciones de miembros con no miembros"
-
-#: c-parse.y:1872 c-parse.y:1876 c-parse.y:1880 objc-parse.y:1927 objc-parse.y:1931 objc-parse.y:1935
-msgid "storage class specifier in array declarator"
-msgstr "especificadores de clase de almacenamiento en el declarador de una matriz"
+msgstr "ISO C prohíbe declaraciones de miembros con no miembros"
-#: c-parse.y:1895 objc-parse.y:1950
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
-msgstr "uso deprecado de la etiqueta al final de la declaración compuesta"
+msgstr "uso obsoleto de la etiqueta al final de la declaración compuesta"
-#: c-parse.y:1912 objc-parse.y:1967
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
-msgstr "ISO C89 prohibe las declaraciones mezcladas y código"
+msgstr "ISO C89 prohíbe las declaraciones mezcladas y código"
-#: c-parse.y:1986 objc-parse.y:2045
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
-msgstr "ISO C prohibe las declaraciones etiquetadas"
+msgstr "ISO C prohíbe las declaraciones etiquetadas"
-#: c-parse.y:2035 parse.y:1607 objc-parse.y:2094
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr "un grupo de llaves dentro de una expresión sólo se permite dentro de una función"
-#: c-parse.y:2161 objc-parse.y:2220
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr "cuerpo vacío en una declaración else"
-#: c-parse.y:2281 objc-parse.y:2340
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
-msgstr "ISO C prohibe `goto *expr;'"
+msgstr "ISO C prohíbe `goto *expr;'"
-#: c-parse.y:2379 objc-parse.y:2438
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
-msgstr "ISO C prohibe declaraciones adelantadas de parámetros"
+msgstr "ISO C prohíbe declaraciones adelantadas de parámetros"
#. Gcc used to allow this as an extension. However, it does
#. not work for all targets, and thus has been disabled.
@@ -2327,180 +2512,185 @@ msgstr "ISO C prohibe declaraciones adelantadas de parámetros"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2405 objc-parse.y:2464
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr "ISO C requiere un argumento con nombre antes de `...'"
-#: c-parse.y:2500 objc-parse.y:2559
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "`...' en una lista de identificadores de estilo antiguo"
-#: /usr/share/bison/bison.simple:821
+#: /usr/share/bison/bison.simple:795
msgid "parse error; also virtual memory exhausted"
msgstr "error de decodificación; también se agotó la memoria"
-#: /usr/share/bison/bison.simple:825 cp/spew.c:343 /usr/share/bison.simple:654
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "error de decodificación"
-#: /usr/share/bison/bison.simple:950 /usr/share/bison.simple:367
+#: /usr/share/bison/bison.simple:924
msgid "parser stack overflow"
msgstr "desbordamiento de la pila del decodificador"
-#: c-parse.y:2824 cp/spew.c:1477 objc-parse.y:3511
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s al final de la entrada"
-#: c-parse.y:2830 cp/spew.c:1483 objc-parse.y:3517
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%s antes de %s'%c'"
-#: c-parse.y:2832 cp/spew.c:1485 objc-parse.y:3519
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
msgstr "%s antes de %s'\\x%x'"
-#: c-parse.y:2836 cp/spew.c:1489 objc-parse.y:3523
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "%s antes de una constante de cadena"
-#: c-parse.y:2838 cp/spew.c:1491 objc-parse.y:3525
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
msgstr "%s antes de una constante numérica"
-#: c-parse.y:2840 objc-parse.y:3527
+#: c-parse.y:2854 objc-parse.y:3553
#, c-format
msgid "%s before \"%s\""
msgstr "%s antes de \"%s\""
-#: c-parse.y:2842 objc-parse.y:3529
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
msgstr "%s antes del elemento '%s'"
-#: c-parse.y:2978 objc-parse.y:3708
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "C tradicional rechaza la concatenación de cadenas"
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
msgstr "error sintáctico en el elemento '%s'"
-#: c-parse.y:3008 cp/lex.c:906 objc-parse.y:3738
-msgid "YYDEBUG not defined"
-msgstr "no se definió YYDEBUG"
-
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr "se encontró un #pragma pack (pop) sin un #pragma pack (push, <n>) coincidente"
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
msgstr "se encontró un #pragma pack (pop, %s) sin un #pragma pack (push, %s, <n>) coincidente"
-#: c-pragma.c:162
+#: c-pragma.c:145
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr "#pragma pack(push[, id], <n>) no tiene soporte en este objetivo"
-#: c-pragma.c:164
+#: c-pragma.c:147
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "#pragma pack(pop[, id], <n>) no tiene soporte en este objetivo"
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
msgstr "falta un '(' después de '#pragma pack' - ignorado"
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
msgid "malformed '#pragma pack' - ignored"
msgstr "'#pragma pack' mal formado - ignorado"
-#: c-pragma.c:202
+#: c-pragma.c:185
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr "'#pragma pack(push[, id], <n>)' mal formado - ignorado"
-#: c-pragma.c:204
+#: c-pragma.c:187
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr "'#pragma pack(pop[, id], <n>)' mal formado - ignorado"
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr "acción desconocida '%s' para '#pragma pack' - ignorado"
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr "basura al final de '#pragma pack'"
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
msgstr "la alineación debe ser una potencia pequeña de dos, no %d"
-#: c-pragma.c:329 c-pragma.c:334
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "la aplicación del #pragma weak `%s' después del primer uso resulta en conducta no especificada"
+
+#: c-pragma.c:328 c-pragma.c:333
msgid "malformed #pragma weak, ignored"
msgstr "#pragma weak malformado, ignorado"
-#: c-pragma.c:338
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr "basura al final de #pragma weak"
-#: c-pragma.c:369 c-pragma.c:374
+#: c-pragma.c:372 c-pragma.c:377
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname malformado, ignorado"
-#: c-pragma.c:379
+#: c-pragma.c:382
msgid "junk at end of #pragma redefine_extname"
msgstr "basura al final de #pragma redefine_extname"
-#: c-pragma.c:386 c-pragma.c:461
+#: c-pragma.c:389 c-pragma.c:470
msgid "#pragma redefine_extname conflicts with declaration"
msgstr "#pragma redefine_extname tiene conflictos con la declaración"
-#: c-pragma.c:410
+#: c-pragma.c:420
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix malformado, ignorado"
-#: c-pragma.c:415
+#: c-pragma.c:425
msgid "junk at end of #pragma extern_prefix"
msgstr "basura al final de #pragma extern_prefix"
-#: c-pragma.c:447
-msgid "asm declaration conficts with previous rename"
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
msgstr "la declaración asm causa conflictos con el renombrado previo"
-#: c-semantics.c:563
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "la declaración break no está dentro de un ciclo o switch"
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "la declaración continue no está dentro dentro de un ciclo"
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr "se necesita un destructor para `%#D'"
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr "donde la etiqueta case aparece aquí"
-#: c-semantics.c:680
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr "(las acciones adjuntas de declaraciones case previas requieren destructores en su propio ámbito.)"
-#: c-semantics.c:723 c-typeck.c:6923 cp/semantics.c:889
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
-msgstr "calificador %s ignorado en asm"
+msgstr "se ignora el calificador %s en asm"
#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr "`%s' tiene un tipo de dato incompleto"
-#: c-typeck.c:145 cp/call.c:2621
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "uso inválido de la expresión void"
@@ -2508,7 +2698,7 @@ msgstr "uso inválido de la expresión void"
msgid "invalid use of flexible array member"
msgstr "uso inválido de un miembro de matriz flexible"
-#: c-typeck.c:159 cp/typeck2.c:227
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr "uso inválido de matrices con límites sin especificar"
@@ -2523,967 +2713,1084 @@ msgstr "uso inválido del tipo indefinido `%s %s'"
msgid "invalid use of incomplete typedef `%s'"
msgstr "uso inválido del typedef incompleto `%s'"
-#: c-typeck.c:402 c-typeck.c:416
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
msgstr "los tipos de función no son totalmente compatibles en ISO C"
-#: c-typeck.c:576
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr "los tipos no son totalmente compatibles"
-#: c-typeck.c:729
-msgid "sizeof applied to a function type"
-msgstr "sizeof aplicado a un tipo de función"
-
-#: c-typeck.c:735
-msgid "sizeof applied to a void type"
-msgstr "sizeof aplicado a un tipo de dato void"
-
-#: c-typeck.c:742
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof aplicado a un tipo de dato incompleto"
-
-#: c-typeck.c:795 c-typeck.c:2704
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
-msgstr "aritmética en apuntador a un tipo de dato incompleto"
+msgstr "aritmética en puntero a un tipo de dato incompleto"
-#: c-typeck.c:1183
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s no tiene un miembro llamado `%s'"
-#: c-typeck.c:1216
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "petición del miembro `%s' en algo que no es estructura ó unión"
-#: c-typeck.c:1248
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
-msgstr "apuntador deferenciado a tipo de dato incompleto"
+msgstr "puntero deferenciado a tipo de dato incompleto"
-#: c-typeck.c:1252
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
-msgstr "deferenciando el apuntador `void *'"
+msgstr "deferenciando el puntero `void *'"
-#: c-typeck.c:1269 cp/typeck.c:2347
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "argumento de tipo inválido de `%s'"
-#: c-typeck.c:1288 cp/typeck.c:2373
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr "falta subíndice en la referencia de la matriz"
-#: c-typeck.c:1309 cp/typeck.c:2415
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr "el subíndice de la matriz tiene tipo `char'"
-#: c-typeck.c:1317 c-typeck.c:1406 cp/typeck.c:2422 cp/typeck.c:2501
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "el subíndice de la matriz no es un entero"
-#: c-typeck.c:1350
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
-msgstr "ISO C prohibe el subíndice de una matriz `register'"
+msgstr "ISO C prohíbe el subíndice de una matriz `register'"
-#: c-typeck.c:1352
-msgid "ISO C89 forbids subscripting non-lvalue array"
-msgstr "ISO C89 prohibe el subíndice de una matriz no-lvaluada"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C90 prohíbe el subíndice de una matriz no-lvaluada"
-#: c-typeck.c:1385
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr "el subíndice es de tipo `char'"
-#: c-typeck.c:1401 cp/typeck.c:2496
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
-msgstr "el valor indicado por el subíndice no es ni matriz ni apuntador"
+msgstr "el valor indicado por el subíndice no es ni matriz ni puntero"
-#: c-typeck.c:1455
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
-msgstr "`%s' no ha sido declarado aquí (no en una función)"
+msgstr "`%s' no se declaró aquí (no en una función)"
-#: c-typeck.c:1462
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
-msgstr "`%s' no ha sido declarado aquí (primero úselo en esta función)"
+msgstr "`%s' no se declaró aquí (primer uso en esta función)"
-#: c-typeck.c:1467
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(Cada identificador no declarado solamente se reporta una vez"
-#: c-typeck.c:1468
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "para cada funcion en la que aparece.)"
-#: c-typeck.c:1485
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr "la declaración local de `%s' oculta la variable de instancia"
-#: c-typeck.c:1550
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "el objeto llamado no es una función"
-#: c-typeck.c:1637 cp/typeck.c:3133
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "demasiados argumentos para la función"
-#: c-typeck.c:1658
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "el tipo de dato del parámetro formal %d está incompleto"
-#: c-typeck.c:1671
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr "%s como entero en lugar de coma flotante debido al prototipo"
-#: c-typeck.c:1674
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr "%s como entero en lugar de complejo debido al prototipo"
-#: c-typeck.c:1677
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr "%s como complejo en lugar de coma flotante debido al prototipo"
-#: c-typeck.c:1680
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr "%s como coma flotante en lugar de entero debido al prototipo"
-#: c-typeck.c:1683
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr "%s como complejo en lugar de entero debido al prototipo"
-#: c-typeck.c:1686
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr "%s como coma flotante en lugar de complejo debido al prototipo"
-#: c-typeck.c:1696
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr "%s como `float' en lugar de `double' debido al prototipo"
-#: c-typeck.c:1714
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr "%s con anchura diferente debido al prototipo"
-#: c-typeck.c:1748
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "%s como unsigned debido al prototipo"
-#: c-typeck.c:1750
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "%s como signed debido al prototipo"
-#: c-typeck.c:1784 cp/typeck.c:3241
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "muy pocos argumentos para la función"
-#: c-typeck.c:1826
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "se sugieren paréntesis alrededor de + o - dentro de un desplazamiento"
-#: c-typeck.c:1833
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "se sugieren paréntesis alrededor de && junto con ||"
-#: c-typeck.c:1842
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de |"
-#: c-typeck.c:1845
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de |"
-#: c-typeck.c:1854
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "se sugieren paréntesis alrededor de la aritmética para operandos de ^"
-#: c-typeck.c:1857
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de ^"
-#: c-typeck.c:1864
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr "se sugieren paréntesis alrededor de + o - para operandos de &"
-#: c-typeck.c:1867
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr "se sugieren paréntesis alrededor de las comparaciones para operandos de &"
-#: c-typeck.c:1874
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "las comparaciones como X<=Y<=Z no tienen su significado matemático"
-#: c-typeck.c:2034 c-typeck.c:2067
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
msgstr "división por cero"
-#: c-typeck.c:2112 cp/typeck.c:3502
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr "la cuenta de desplazamiento a la derecha es negativa"
-#: c-typeck.c:2119 cp/typeck.c:3508
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo"
-#: c-typeck.c:2144 cp/typeck.c:3527
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr "la cuenta de desplazamiento a la izquierda es negativa"
-#: c-typeck.c:2147 cp/typeck.c:3529
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr "cuenta de desplazamiento a la izquierda >= anchura del tipo"
-#: c-typeck.c:2172
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr "la cuenta de desplazamiento es negativa"
-#: c-typeck.c:2174
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "cuenta de desplazamiento >= anchura del tipo"
-#: c-typeck.c:2195 cp/typeck.c:3564
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr "no es segura la comparacion de coma flotante con == o !="
-#: c-typeck.c:2219 c-typeck.c:2225
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
-msgstr "ISO C prohibe la comparación de `void *' con un apuntador de función"
+msgstr "ISO C prohíbe la comparación de `void *' con un puntero de función"
-#: c-typeck.c:2228 c-typeck.c:2270 c-typeck.c:2298
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
-msgstr "la comparación de diferentes tipos de apuntador carece de una conversión"
+msgstr "la comparación de diferentes tipos de puntero carece de una conversión"
-#: c-typeck.c:2243 c-typeck.c:2249 c-typeck.c:2319 c-typeck.c:2325
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
-msgstr "comparación entre apuntador y entero"
+msgstr "comparación entre puntero y entero"
-#: c-typeck.c:2265 c-typeck.c:2293
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
-msgstr "ISO C prohibe la comparación entre apuntadores a funciones"
+msgstr "ISO C prohíbe la comparación entre punteros a funciones"
-#: c-typeck.c:2290
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
-msgstr "comparación de apuntadores completos e incompletos"
+msgstr "comparación de punteros completos e incompletos"
-#: c-typeck.c:2306 c-typeck.c:2313
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
-msgstr "comparación ordenada de apuntador con el entero cero"
+msgstr "comparación ordenada de puntero con el entero cero"
-#: c-typeck.c:2339 cp/typeck.c:3697
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
msgstr "comparación sin orden en argumento de coma no flotante"
-#: c-typeck.c:2543
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr "comparación entre signed y unsigned"
-#: c-typeck.c:2589 cp/typeck.c:3943
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr "comparación de un ~unsigned promovido con una constante"
-#: c-typeck.c:2597 cp/typeck.c:3951
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "comparación de un ~unsigned promovido con unsigned"
-#: c-typeck.c:2656
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
-msgstr "se usó un apuntador de tipo `void *' en la sustracción"
+msgstr "se usó un puntero de tipo `void *' en la sustracción"
-#: c-typeck.c:2658
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
-msgstr "se utilizó un apuntador a una función en la sustracción"
+msgstr "se utilizó un puntero a una función en la sustracción"
-#: c-typeck.c:2755
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr "argumento de tipo erróneo para el incremento unario"
-#: c-typeck.c:2766
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr "argumento de tipo erróneo para el decremento unario"
-#: c-typeck.c:2778
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
msgstr "ISO C no tiene soporte de `~' para conjugaciones complejas"
-#: c-typeck.c:2784
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "argumento de tipo erróneo para complemento de bits"
-#: c-typeck.c:2795
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "argumento de tipo erróneo para abs"
-#: c-typeck.c:2807
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "argumento de tipo erróneo para la conjugación"
-#: c-typeck.c:2821
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr "argumento de tipo erróneo para el signo de exclamación unario"
-#: c-typeck.c:2864
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
msgstr "ISO C no tiene soporte para `++' y `--' en tipos complejos"
-#: c-typeck.c:2879 c-typeck.c:2911
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to increment"
msgstr "argumento de tipo erróneo para el incremento"
-#: c-typeck.c:2881 c-typeck.c:2913
+#: c-typeck.c:2869 c-typeck.c:2901
msgid "wrong type argument to decrement"
msgstr "argumento de tipo erróneo para el decremento"
-#: c-typeck.c:2902
+#: c-typeck.c:2890
msgid "increment of pointer to unknown structure"
-msgstr "incremento de apuntador a estructura desconocida"
+msgstr "incremento de puntero a estructura desconocida"
-#: c-typeck.c:2904
+#: c-typeck.c:2892
msgid "decrement of pointer to unknown structure"
-msgstr "decremento de apuntador a estructura desconocida"
+msgstr "decremento de puntero a estructura desconocida"
-#: c-typeck.c:3041
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
-msgstr "ISO C prohibe la dirección de una expresión cast"
+msgstr "ISO C prohíbe la dirección de una expresión cast"
-#: c-typeck.c:3051
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
msgstr "l-valor inválido en `&' unario"
-#: c-typeck.c:3083
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%s'"
-#: c-typeck.c:3192 c-typeck.c:4618 c-typeck.c:4634 c-typeck.c:4650 final.c:2981 final.c:2983 gcc.c:4462 rtl-error.c:121 tradcif.y:532 tradcpp.c:4134 config/cris/cris.c:515 cp/typeck.c:4650 java/expr.c:386 java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3253
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
-msgstr "ISO C prohibe el uso de expresiones condicionales como l-valores"
+msgstr "ISO C prohíbe el uso de expresiones condicionales como l-valores"
-#: c-typeck.c:3256
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
-msgstr "ISO C prohibe el uso de expresiones compuestas como l-valores"
+msgstr "ISO C prohíbe el uso de expresiones compuestas como l-valores"
-#: c-typeck.c:3259
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
-msgstr "ISO C prohibe el uso de expresiones de conversión como l-valores"
+msgstr "ISO C prohíbe el uso de expresiones de conversión como l-valores"
-#: c-typeck.c:3276
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr "%s del miembro de sólo lectura `%s'"
-#: c-typeck.c:3280
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
msgstr "%s de la variable de sólo lectura `%s'"
-#: c-typeck.c:3283
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr "%s de la ubicación de sólo lectura"
-#: c-typeck.c:3301
+#: c-typeck.c:3290
#, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "no se puede tomar la dirección del campo de bits `%s'"
-#: c-typeck.c:3329
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "se usó la variable de registro global `%s' en funciones anidadas"
-#: c-typeck.c:3333
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr "se usó la variable de registro `%s' en funciones anidadas"
-#: c-typeck.c:3340
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "se solicitó la dirección de la variable de registro global `%s'"
-#: c-typeck.c:3352
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr "no se puede poner objeto con campo volatile en register"
-#: c-typeck.c:3356
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "se solicitó la dirección de la variable register `%s'"
-#: c-typeck.c:3464
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr "tipos signed y unsigned en la expresión condicional"
-#: c-typeck.c:3471
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
-msgstr "ISO C prohibe una expresión condicional con sólo un lado void"
+msgstr "ISO C prohíbe una expresión condicional con sólo un lado void"
-#: c-typeck.c:3487 c-typeck.c:3494
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
-msgstr "ISO C prohibe expresiones condicionales entre `void *' y apuntadores de funciones"
+msgstr "ISO C prohíbe expresiones condicionales entre `void *' y punteros de función"
-#: c-typeck.c:3500
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
-msgstr "los tipos de datos apuntadores no coinciden en la expresión condicional"
+msgstr "los tipos de datos punteros no coinciden en la expresión condicional"
-#: c-typeck.c:3507 c-typeck.c:3517
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
-msgstr "los tipos de datos apuntadores/enteros no coinciden en la expresión condicional"
+msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional"
-#: c-typeck.c:3531
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "los tipos de datos no coinciden en la expresión condicional"
-#: c-typeck.c:3602 cp/typeck.c:4907
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr "el operador del lado izquierdo de la expresión coma no tiene efecto"
-#: c-typeck.c:3641
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr "la conversión especifica el tipo matriz"
-#: c-typeck.c:3647
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr "la conversión especifica el tipo función"
-#: c-typeck.c:3657
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
-msgstr "ISO C prohibe la conversión de un no escalar al mismo tipo"
+msgstr "ISO C prohíbe la conversión de un no escalar al mismo tipo"
-#: c-typeck.c:3676
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
-msgstr "ISO C prohibe la conversión al tipo union"
+msgstr "ISO C prohíbe la conversión al tipo union"
-#: c-typeck.c:3692
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
msgstr "conversión a tipo union desde un tipo no presente en union"
-#: c-typeck.c:3743
+#: c-typeck.c:3736
msgid "cast adds new qualifiers to function type"
msgstr "la conversión agrega calificadores nuevos al tipo función"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3748
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
-msgstr "la conversión descarta los calificadores del tipo del destino del apuntador"
+msgstr "la conversión descarta los calificadores del tipo del destino del puntero"
-#: c-typeck.c:3763
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
msgstr "la conversión incrementa la alineación requerida del tipo del destino"
-#: c-typeck.c:3769 cp/typeck.c:5337
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
-msgstr "conversión de apuntador a entero de tamaño diferente"
+msgstr "conversión de puntero a entero de tamaño diferente"
-#: c-typeck.c:3774
+#: c-typeck.c:3767
msgid "cast does not match function type"
msgstr "la conversión no coincide con el tipo de la función"
-#: c-typeck.c:3781 cp/typeck.c:5344
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
-msgstr "conversión a apuntador desde un entero de tamaño diferente"
+msgstr "conversión a puntero desde un entero de tamaño diferente"
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "el castigo de tipo a tipo incompleto puede romper las reglas de alias estricto"
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto"
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:3939
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "l-valor inválido en la asignación"
#. Convert new value to destination type.
-#: c-typeck.c:3948 c-typeck.c:3973 c-typeck.c:3990 cp/typeck.c:5454 cp/typeck.c:5605
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "asignación"
-#: c-typeck.c:4157 c-typeck.c:4224
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "no se puede pasar un valor-r a un parámetro de referencia"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr "%s hace que la función calificada apunte desde una no calificada"
-#: c-typeck.c:4161 c-typeck.c:4204
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
-msgstr "%s descarta calificadores del tipo del destino del apuntador"
+msgstr "%s descarta calificadores del tipo del destino del puntero"
-#: c-typeck.c:4167
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
-msgstr "ISO C prohibe la conversión de argumentos a tipo union"
+msgstr "ISO C prohíbe la conversión de argumentos a tipo union"
-#: c-typeck.c:4196
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
-msgstr "ISO C prohibe %s entre apuntadores a función y `void *'"
+msgstr "ISO C prohíbe %s entre punteros a función y `void *'"
-#: c-typeck.c:4213
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
-msgstr "el apuntador que apunta a %s difiere en signo"
+msgstr "el puntero que apunta a %s difiere en signo"
-#: c-typeck.c:4229
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
-msgstr "%s de tipo de apuntador incompatible"
+msgstr "%s de tipo de puntero incompatible"
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "uso inválido de matriz no-lvaluada"
-#: c-typeck.c:4245
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
-msgstr "%s crea un apuntador desde un entero sin una conversión"
+msgstr "%s se crea un puntero desde un entero sin una conversión"
-#: c-typeck.c:4253
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
-msgstr "%s crea un entero desde un apuntador sin una conversión"
+msgstr "%s se crea un entero desde un puntero sin una conversión"
-#: c-typeck.c:4267 c-typeck.c:4270
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "tipo incompatible para el argumento %d de `%s'"
-#: c-typeck.c:4274
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr "tipo incompatible para el argumento %d de la llamada indirecta a función"
-#: c-typeck.c:4278
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "tipos incompatibles en %s"
#. Function name is known; supply it.
-#: c-typeck.c:4333
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "al pasar un argumento de `%s'"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "al pasar un argumento de puntero a la función"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
-msgstr "pasando el argumento %d de `%s'"
+msgstr "al pasar el argumento %d de `%s'"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4343
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
-msgstr "pasando el argumento %d del apuntador a la función"
+msgstr "al pasar el argumento %d del puntero a la función"
-#: c-typeck.c:4410
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
-msgstr "el valor inicial asignado para la variable estática no es una constante"
+msgstr "el inicializador para la variable estática no es una constante"
-#: c-typeck.c:4416
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
-msgstr "el valor inicial asignado para la variable estática usa aritmética complicada"
+msgstr "el inicializador para la variable estática usa aritmética complicada"
-#: c-typeck.c:4424
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
-msgstr "el iniciador agregado no es una constante"
+msgstr "el inicializador agregado no es una constante"
-#: c-typeck.c:4426
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
-msgstr "el iniciador agregado usa aritmética complicada"
+msgstr "el inicializador agregado usa aritmética complicada"
-#: c-typeck.c:4433
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
-msgstr "C tradicional rechaza la iniciación automática de agregados"
+msgstr "C tradicional rechaza la inicialización automática de agregados"
-#: c-typeck.c:4621 c-typeck.c:4637 c-typeck.c:4653
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
-msgstr "(cerca de la asignación de valores iniciales para `%s')"
+msgstr "(cerca de la inicialización de `%s')"
-#: c-typeck.c:4705 cp/typeck2.c:513
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
-msgstr "matriz de caracteres con valores iniciales asignados de una cadena ancha"
+msgstr "matriz de caracteres inicializada con una cadena ancha"
# no ancha -> angosta? cfuga
-#: c-typeck.c:4712 cp/typeck2.c:520
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
-msgstr "matriz de enteros con valores iniciales asignados de una cadena no ancha"
+msgstr "matriz de enteros inicializada con una cadena no ancha"
-#: c-typeck.c:4730 cp/typeck2.c:536
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
-msgstr "la cadena de valores iniciales para la matriz de caracteres es demasiado larga"
+msgstr "la cadena del inicializador para la matriz de caracteres es demasiado larga"
-#: c-typeck.c:4768
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
-msgstr "matriz con valores iniciales asignados de una expresión matrizal que no es constante"
+msgstr "matriz inicializada con una expresión matrizal que no es constante"
-#: c-typeck.c:4785 c-typeck.c:4787 c-typeck.c:4803 c-typeck.c:4824 c-typeck.c:6262
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
-msgstr "el elemento de valor inicial no es constante"
+msgstr "el elemento inicializador no es constante"
-#: c-typeck.c:4819
+#: c-typeck.c:4873
msgid "initialization"
-msgstr "asignación de valores iniciales"
+msgstr "inicialización"
-#: c-typeck.c:4830 c-typeck.c:6267
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
-msgstr "el elemento de valor inicial no es calculable al momento de la carga"
+msgstr "el elemento inicializador no es calculable al momento de la carga"
-#: c-typeck.c:4867 c-typeck.c:4883 cp/typeck2.c:613
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
-msgstr "valor inicial inválido"
+msgstr "inicializador inválido"
-#: c-typeck.c:5376
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
-msgstr "grupo extra de llaves al final de los valores iniciales"
+msgstr "grupo extra de llaves al final del inicializador"
-#: c-typeck.c:5396
+#: c-typeck.c:5413
msgid "missing braces around initializer"
-msgstr "faltan llaves alrededor de los valores iniciales"
+msgstr "faltan llaves alrededor del inicializador"
-#: c-typeck.c:5456
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
-msgstr "llaves alrededor del valor inicial escalar"
+msgstr "llaves alrededor del inicializador escalar"
-#: c-typeck.c:5504
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
-msgstr "iniciación de un miembro de matriz flexible en un contexto anidado"
+msgstr "inicialización de un miembro de matriz flexible en un contexto anidado"
-#: c-typeck.c:5506
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
-msgstr "iniciación de un miembro de matriz flexible"
+msgstr "inicialización de un miembro de matriz flexible"
-#: c-typeck.c:5537
+#: c-typeck.c:5554
msgid "missing initializer"
-msgstr "falta valor inicial"
+msgstr "falta el inicializador"
-#: c-typeck.c:5563
+#: c-typeck.c:5580
msgid "empty scalar initializer"
-msgstr "valor inicial escalar vacío"
+msgstr "inicializador escalar vacío"
-#: c-typeck.c:5568
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
-msgstr "elementos extras en valor inicial escalar"
+msgstr "elementos extras en el inicializador escalar"
-#: c-typeck.c:5654
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
-msgstr "no se pueden anidar los designadores de iniciación"
+msgstr "no se pueden anidar los designadores de inicialización"
-#: c-typeck.c:5675 c-typeck.c:5746
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
-msgstr "índice de matriz en valor inicial que no es de matriz"
+msgstr "índice de matriz en el inicializador que no es matriz"
-#: c-typeck.c:5680 c-typeck.c:5798
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
-msgstr "el nombre del campo no está en el iniciador de record o union"
+msgstr "el nombre del campo no está en el inicializador de record o union"
-#: c-typeck.c:5742 c-typeck.c:5744
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
-msgstr "índice de matriz no constante en valor inicial"
+msgstr "índice de matriz no constante en el inicializador"
-#: c-typeck.c:5749
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
-msgstr "el índice de matriz en el valor inicial excede los límites de la matriz"
+msgstr "el índice de matriz en el inicializador excede los límites de la matriz"
-#: c-typeck.c:5760
+#: c-typeck.c:5779
msgid "empty index range in initializer"
-msgstr "rango de índices vacío en valor inicial"
+msgstr "rango de índices vacío en el inicializador"
-#: c-typeck.c:5769
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
-msgstr "el rango de índices de la matriz en el valor inicial excede los límites de la matriz"
+msgstr "el rango de índices de la matriz en el inicializador excede los límites de la matriz"
-#: c-typeck.c:5810
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
-msgstr "campo `%s' desconocido especificado en el valor inicial"
+msgstr "campo `%s' desconocido especificado en el inicializador"
-#: c-typeck.c:5847 c-typeck.c:5868 c-typeck.c:6330
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
-msgstr "campo iniciado con efectos laterales sobreescritos"
+msgstr "campo inicializado con efectos laterales sobreescritos"
-#: c-typeck.c:6540
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
-msgstr "exceso de elementos en valores iniciales de matriz de caracteres"
+msgstr "exceso de elementos en el inicializador de matriz de caracteres"
-#: c-typeck.c:6547 c-typeck.c:6593
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
-msgstr "exceso de elementos en valores iniciales de struct"
+msgstr "exceso de elementos en el inicializador de struct"
-#: c-typeck.c:6608
+#: c-typeck.c:6626
msgid "non-static initialization of a flexible array member"
-msgstr "iniciación no estática de un miembro de matriz flexible"
+msgstr "inicialización no estática de un miembro de matriz flexible"
-#: c-typeck.c:6670
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
-msgstr "exceso de elementos en valores iniciales de union"
+msgstr "exceso de elementos en el inicializador de union"
-#: c-typeck.c:6691
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
-msgstr "C tradicional rechaza los valores iniciales de unions"
+msgstr "C tradicional rechaza la inicialización de unions"
-#: c-typeck.c:6754
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
-msgstr "exceso de elementos en valores iniciales de matriz"
+msgstr "exceso de elementos en el inicializador de matriz"
-#: c-typeck.c:6783
+#: c-typeck.c:6806
msgid "excess elements in vector initializer"
-msgstr "exceso de elementos en valor inicial vectorial"
+msgstr "exceso de elementos en el inicializador de vector"
-#: c-typeck.c:6805
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
-msgstr "exceso de elementos en valor inicial escalar"
+msgstr "exceso de elementos en el inicializador de escalar"
-#: c-typeck.c:6916
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr "la plantilla asm no es una cadena constante"
-#: c-typeck.c:6948
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
-msgstr "l-valor inválido en declaración asm"
+msgstr "l-valor inválido en la declaración asm"
-#: c-typeck.c:7019
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr "modificación por `asm'"
-#: c-typeck.c:7038 cp/typeck.c:6453
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr "la función declarada `noreturn' tiene una declaración `return'"
-#: c-typeck.c:7045
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr "`return' sin valores, en una función que no devuelve void"
-#: c-typeck.c:7051
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr "`return' con valor, en una función que devuelve void"
-#: c-typeck.c:7055
+#: c-typeck.c:7078
msgid "return"
msgstr "return"
-#: c-typeck.c:7107
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr "la función devuelve la dirección de una variable local"
-#: c-typeck.c:7163 cp/semantics.c:529
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "la cantidad de switch no es un entero"
-#: c-typeck.c:7173
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr "no se convierte la expresión de switch `long' a `int' en ISO C"
-#: c-typeck.c:7208 cp/decl.c:5232
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "la etiqueta case no se encuentra dentro de una declaración switch"
-#: c-typeck.c:7210 cp/decl.c:5237
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
msgstr "la etiqueta `default' no está dentro de una declaración switch"
# ¿Cómo traducir inlining de forma correcta? cfuga
-#: calls.c:1902
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr "el `inlining' falló en la llamada a `%s'"
-#: calls.c:1903 calls.c:2209
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr "llamado desde aquí"
-#: calls.c:2208
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr "no se pueden hacer la llamada inline a `%s'"
-#: calls.c:2238
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr "la llamada a la función tiene valor agregado"
-#: calls.c:4545
-msgid "variable offset is passed partially in stack and in reg"
-msgstr "se pasa parcialmente el desplazamiento de la variable a la pila y al registro"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "El tamaño del ciclo %d debe ser %d, no %d."
+
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Bb %d no pertenece al ciclo %d."
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "El encabezado del ciclo %d no tiene exactamente 2 entradas."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "El cerrojo del ciclo %d no tiene 1 sucesor exactamente."
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "El cerrojo del ciclo %d no tiene un encabezado como sucesor."
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "El cerrojo del ciclo %d no pertenece directamente a él."
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "El encabezado del ciclo %d no pertenece directamente a él."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "bb %d en el lugar equivocado"
-#: calls.c:4547
-msgid "variable size is passed partially in stack and in reg"
-msgstr "se pasa parcialemente el tamaño de la variable a la pila y al registro"
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "el prev_bb de %d debe ser %d, no %d"
-#: cfgrtl.c:1624
+#: cfgrtl.c:1800
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "el insn final %d para el bloque %d no se encuentra en el flujo insn"
-#: cfgrtl.c:1638
+#: cfgrtl.c:1814
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "insn %d está en múltiples bloques básicos (%d y %d)"
-#: cfgrtl.c:1650
+#: cfgrtl.c:1826
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "la cabeza insn %d para el bloque %d no se encuentra en el flujo insn"
-#: cfgrtl.c:1669
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB no coincide con la configuración %i %i"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Cuenta errónea del bloque %i %i"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Frecuencia errónea del bloque %i %i"
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr "verify_flow_info: Borde duplicado %i->%i"
-#: cfgrtl.c:1688
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: Probabilidad errónea del borde %i->%i %i"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Cuenta errónea del borde %i->%i %i"
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr "verify_flow_info: Bloques incorrectos para el respaldo %i->%i"
-#: cfgrtl.c:1703
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: Respaldo incorrecto %i->%i"
-#: cfgrtl.c:1705
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
msgstr "insn erróneo en el borde del respaldo"
-#: cfgrtl.c:1712
+#: cfgrtl.c:1935
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: El bloque básico %d succ edge está corrupto"
-#: cfgrtl.c:1736
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Falta la nota REG_EH_REGION al final de bb %i"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Demasiados bordes de ramificación de salida de bb %i"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Borde de caída después del salto incondicional %i"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Cantidad errónea de bordes de ramificación después del salto incondicional %i"
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Cantidad errónea de bordes de ramificación después del salto condicional %i"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "Bordes de llamada para una insn que no es llamada en bb %i"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "Bordes anormales sin ningún propósito en bb %i"
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr "falta una barrera después del bloque %i"
-#: cfgrtl.c:1746
+#: cfgrtl.c:2014
#, c-format
msgid "basic block %d pred edge is corrupted"
msgstr "el bloque básico %d pred edge está corrupto"
-#: cfgrtl.c:1763
+#: cfgrtl.c:2031
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr "insn %d está dentro del bloque básico %d pero block_for_insn es NULL"
-#: cfgrtl.c:1767
+#: cfgrtl.c:2035
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr "insn %d está dentro del bloque básico %d pero block_for_insn es %i"
-#: cfgrtl.c:1781 cfgrtl.c:1791
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK falta para el bloque %d"
-#: cfgrtl.c:1804
+#: cfgrtl.c:2072
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d en el medio del bloque básico %d"
-#: cfgrtl.c:1816
+#: cfgrtl.c:2084
#, c-format
msgid "in basic block %d:"
msgstr "en el bloque básico %d:"
-#: cfgrtl.c:1817
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
msgstr "control de flujo insn dentro de un bloque básico"
-#: cfgrtl.c:1836
+#: cfgrtl.c:2104
#, c-format
msgid "basic block %i edge lists are corrupted"
msgstr "las listas de borde del bloque básico %i están corruptas"
-#: cfgrtl.c:1850
+#: cfgrtl.c:2119
msgid "basic blocks not numbered consecutively"
msgstr "los bloques básicos no están numerados consecutivamente"
-#: cfgrtl.c:1875
+#: cfgrtl.c:2144
msgid "insn outside basic block"
msgstr "insn fuera del bloque básico"
-#: cfgrtl.c:1883
+#: cfgrtl.c:2152
msgid "return not followed by barrier"
msgstr "return no es seguido por una barrera"
-#: cfgrtl.c:1888
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "el número de notas bb en la cadena insn (%d) != n_basic_blocks (%d)"
-#: cfgrtl.c:1892
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
msgstr "falló verify_flow_info"
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr "error interno"
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr "sin argumentos"
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 versión %s"
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr "se encuentra(n) %d constructor(es)\n"
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr "se encuentra(n) %d destructor(es)\n"
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr "se encuentra(n) %d marcos de tabla(s)\n"
-#: collect2.c:1514
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s terminado con la señal %d [%s]%s"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr "%s devolvió el estado de salida %d"
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr "[no se puede encontrar %s]"
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr "no se puede encontrar `%s'"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr "redirigiendo salida estándard: %s"
-#: collect2.c:1633
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Dejando %s]\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
msgid ""
"\n"
@@ -3492,90 +3799,86 @@ msgstr ""
"\n"
"write_c_file - el nombre de salida es %s, el prefijo es %s\n"
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr "no se puede encontrar `nm'"
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574 collect2.c:2577 collect2.c:2590
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr "se encontró la función init en el objeto %s"
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr "se encontró la función fini en el objeto %s"
-#: collect2.c:2223 collect2.c:2629
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr "no se puede abrir el fichero '%s'"
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr "no se puede evaluar el fichero '%s'"
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr "no se puede hacer mmap al fichero '%s'"
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
msgstr "no se encuentra\n"
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr "no se encuentra la dependencia dinámica %s"
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr "número mágico erróneo en el fichero '%s'"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "dependencias dinámicas.\n"
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr "no se encuentra `ldd'"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr "execv %s"
-
-#: collect2.c:2593
+#: collect2.c:2585
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -3583,36 +3886,36 @@ msgstr ""
"\n"
"salida de ldd con constructores/destructores.\n"
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "no se puede abrir la dependencia dinámica '%s'"
-#: collect2.c:2734
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: no es un fichero COFF"
-#: collect2.c:2853
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: no se puede abrir como un fichero COFF"
-#: collect2.c:2909
+#: collect2.c:2901
#, c-format
msgid "library lib%s not found"
msgstr "no se encuentra la biblioteca lib%s"
-#: collect2.c:3038
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "abrir %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
msgstr "incompatibilidades entre el fichero objeto y los valores esperados"
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
msgid ""
"\n"
@@ -3621,23 +3924,23 @@ msgstr ""
"\n"
"Procesando la tabla de símbolos #%d, desfase = 0x%.8lx, tipo = %s\n"
-#: collect2.c:3143
+#: collect2.c:3133
msgid "string section missing"
msgstr "falta la sección de cadenas"
-#: collect2.c:3146
+#: collect2.c:3136
msgid "section pointer missing"
-msgstr "falta la sección de apuntadores"
+msgstr "falta la sección de punteros"
-#: collect2.c:3194
+#: collect2.c:3184
msgid "no symbol table found"
msgstr "no se encuentra la tabla de símbolos"
-#: collect2.c:3207
+#: collect2.c:3197
msgid "no cmd_strings found"
msgstr "no se encuentran cmd_strings"
-#: collect2.c:3219
+#: collect2.c:3209
msgid ""
"\n"
"Updating header and load commands.\n"
@@ -3647,12 +3950,12 @@ msgstr ""
"Actualizando las órdenes de encabezado y carga.\n"
"\n"
-#: collect2.c:3226
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr "cargar mapa de órdenes, %d órdenes, nuevo tamaño %ld.\n"
-#: collect2.c:3257
+#: collect2.c:3247
msgid ""
"writing load commands.\n"
"\n"
@@ -3660,90 +3963,90 @@ msgstr ""
"escribiendo las órdenes de carga.\n"
"\n"
-#: collect2.c:3277
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "cerrar %s"
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr "no se puede convertir 0x%l.8x en una región"
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr "función %s, región %d, desfase = %ld (0x%.8lx)\n"
-#: collect2.c:3482
+#: collect2.c:3472
msgid "bad magic number"
msgstr "número mágico erróneo"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
msgstr "versión de encabezado errónea"
-#: collect2.c:3484
+#: collect2.c:3474
msgid "bad raw header version"
msgstr "versión de encabezado textual errónea"
-#: collect2.c:3485
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "almacenamiento temporal de encabezado textual demasiado pequeño"
-#: collect2.c:3486
+#: collect2.c:3476
msgid "old raw header file"
msgstr "fichero de encabezado textual antiguo"
-#: collect2.c:3487
+#: collect2.c:3477
msgid "unsupported version"
msgstr "versión sin soporte"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr "valor de devolución {de,en}code_mach_o_hdr %d desconocido"
-#: collect2.c:3509
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "lseek %s 0"
-#: collect2.c:3550
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "%ld bytes leídos, se esperaban %ld, de %s"
-#: collect2.c:3574
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "msync %s"
-#: collect2.c:3581
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "munmap %s"
-#: collect2.c:3598
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "%ld bytes escritos, se esperaban %ld, a %s"
-#: combine.c:12769
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3754,7 +4057,7 @@ msgstr ""
";; %d éxitos.\n"
"\n"
-#: combine.c:12779
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3765,1096 +4068,908 @@ msgstr ""
";; Totales del combinador: %d intentos, %d sustituciones (%d requirieron espacio nuevo),\n"
";; %d éxitos.\n"
-#: convert.c:67
+#: convert.c:69
msgid "cannot convert to a pointer type"
-msgstr "no se puede convertir a un tipo apuntador"
+msgstr "no se puede convertir a un tipo puntero"
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
-msgstr "se usó un valor de apuntador donde se esperaba un valor de coma flotante"
+msgstr "se usó un valor de puntero donde se esperaba un valor de coma flotante"
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
msgstr "se usó un valor agregado donde se esperaba un float"
-#: convert.c:130
+#: convert.c:132
msgid "conversion to incomplete type"
msgstr "conversión a tipo de dato incompleto"
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
msgid "can't convert between vector values of different size"
msgstr "no se puede convertir entre valores vectoriales de tamaños diferentes"
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
msgstr "se usó un valor agregado donde se esperaba un entero"
-#: convert.c:448 f/com.c:1073
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
-msgstr "se usó un valor de apuntador donde se esperaba un complejo"
+msgstr "se usó un valor de puntero donde se esperaba un complejo"
-#: convert.c:452 f/com.c:1075
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
msgstr "se usó un valor agregado donde se esperaba un complejo"
-#: convert.c:476
+#: convert.c:500
msgid "can't convert value to a vector"
msgstr "no se puede convertir el valor a un vector"
-#: cpperror.c:125
+#: cpperror.c:113
+msgid "warning: "
+msgstr "aviso: "
+
+#: cpperror.c:115
msgid "internal error: "
msgstr "error interno: "
-#: cpperror.c:132 tradcpp.c:4690
-msgid "warning: "
-msgstr "aviso: "
+#: cpperror.c:189
+msgid "stdout"
+msgstr "salida estándard"
-#: cpperror.c:209 cpperror.c:299 cppfiles.c:691 gcc.c:6307 tradcpp.c:4728
+#: cpperror.c:191 gcc.c:6428
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: cppexp.c:154
-msgid "floating point numbers are not valid in #if"
-msgstr "los números de coma flotante no son válidos en #if"
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "demasiados puntos decimales en el número"
-#: cppexp.c:176
-msgid "traditional C rejects the `U' suffix"
-msgstr "C tradicional rechaza el sufijo `U'"
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "dígito \"%c\" inválido en la constante octal"
-#: cppexp.c:179
-msgid "too many 'l' suffixes in integer constant"
-msgstr "demasiados sufijos 'l' en constante entera"
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "uso de una constante de coma flotante hexadecimal C99"
-#: cppexp.c:183
-msgid "integer constant contains digits beyond the radix"
-msgstr "la constante entera contiene dígitos más allá del radical"
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "el exponente no tiene dígitos"
-#: cppexp.c:186
-msgid "integer constant out of range"
-msgstr "constante entera fuera de rango"
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "las constantes de coma flotante hexadecimal requieren un exponente"
-#: cppexp.c:192
-msgid "integer constant is so large that it is unsigned"
-msgstr "la constante entera es tan grande que es unsigned"
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante"
-#: cppexp.c:201
+#: cppexp.c:257 cppexp.c:282
#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
-msgstr "sufijo '%.*s' inválido en constante entera"
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C tradicional rechaza el sufijo \"%.*s\""
-#: cppexp.c:234
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufijo \"%.*s\" inválido en la constante entera"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "uso de una constante entera long long C99"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "las constantes imaginarias son una extensión GCC"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "la constante entera es demasiado grande para su tipo"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constante entera es tan grande que es unsigned"
+
+#: cppexp.c:482
msgid "missing ')' after \"defined\""
msgstr "falta `)' después de \"defined\""
-#: cppexp.c:240
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
msgstr "el operador \"defined\" requiere un identificador"
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(\"%s\" es un elemento alternativo para \"%s\" en C++)"
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr "este uso de \"defined\" puede no ser transportable"
-#: cppexp.c:307
-msgid "string constants are not valid in #if"
-msgstr "las constantes de cadena no son válidas en #if"
-
-#: cppexp.c:311
-#, c-format
-msgid "invalid character '%c' in #if"
-msgstr "Carácter inválido '%c' en #if"
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "constante de coma flotante en una expresión del preprocesador"
-#: cppexp.c:313
-#, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "Carácter inválido '\\%03o' en #if"
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "número imaginario en una expresión del preprocesador"
-#: cppexp.c:330
+#: cppexp.c:596
#, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
msgstr "ISO C++ no permite \"%s\" en #if"
-#: cppexp.c:341
+#: cppexp.c:604
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" no está definido"
-#: cppexp.c:367
+#: cppexp.c:737 cppexp.c:772
#, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "\"%s\" no es válido en las expresiones #if"
+msgid "missing binary operator before token \"%s\""
+msgstr "falta un operador binario antes del elemento \"%s\""
-#: cppexp.c:382
-msgid "integer overflow in preprocessor expression"
-msgstr "desbordamiento entero en expresión del preprocesador"
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "Carácter inválido '%c' en #if"
-#: cppexp.c:612
-msgid "missing binary operator"
-msgstr "falta un operador binario"
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "Carácter inválido '\\%03o' en #if"
+
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "el elemento \"%s\" no es válido en las expresiones del preprocesador"
-#: cppexp.c:647
+#: cppexp.c:782
msgid "void expression between '(' and ')'"
msgstr "expresión void entre '(' y ')'"
-#: cppexp.c:649
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if sin expresión"
+
+#: cppexp.c:787
#, c-format
msgid "operator '%s' has no right operand"
msgstr "el operador '%s' no tiene operando derecho"
-#: cppexp.c:661
-#, c-format
-msgid "impossible operator '%s'"
-msgstr "operador '%s' imposible"
-
-#: cppexp.c:737 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
-msgstr "división por cero en #if"
-
-#: cppexp.c:771
-msgid "comma operator in operand of #if"
-msgstr "operador coma en operando de #if"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr " ':' sin una '?' precedente"
-#: cppexp.c:776
-msgid "syntax error '?' without following ':'"
-msgstr "error sintáctico '?' sin ':' a continuación"
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "pila desbalanceada en #if"
-#: cppexp.c:779
-msgid "syntax error ':' without preceding '?'"
-msgstr "error sintáctico ':' sin una '?' precedente"
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador '%u' imposible"
-#: cppexp.c:787
+#: cppexp.c:954
msgid "missing ')' in expression"
msgstr "falta un ')' en la expresión"
-#: cppexp.c:794
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr "'?' sin ':' a continuación"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordamiento entero en expresión del preprocesador"
+
+#: cppexp.c:990
msgid "missing '(' in expression"
msgstr "falta un '(' en la expresión"
-#: cppexp.c:820
+#: cppexp.c:1026
#, c-format
-msgid "missing binary operator before '%s'"
-msgstr "falta un operador binario antes de `%s'"
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "el operando izquierdo de \"%s\" cambia el signo cuando es promovido"
-#: cppexp.c:826
+#: cppexp.c:1031
#, c-format
-msgid "operator '%s' has no left operand"
-msgstr "el operador `%s' no tiene operando izquierdo"
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "el operando derecho de \"%s\" cambia el signo cuando es promovido"
-#: cppexp.c:864
-msgid "unbalanced stack in #if"
-msgstr "pila desbalanceada en #if"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operando de #if"
-#: cppexp.c:867
-msgid "#if with no expression"
-msgstr "#if sin expresión"
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "división por cero en #if"
-#: cppfiles.c:395
+#: cppfiles.c:411
#, c-format
msgid "%s is too large"
msgstr "%s es demasiado grande"
-#: cppfiles.c:426
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
msgstr "%s es más corto de lo esperado"
-#: cppfiles.c:440
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr "%s es un dispositivo de bloques"
-#: cppfiles.c:566
+#: cppfiles.c:594
#, c-format
msgid "no include path in which to find %s"
msgstr "no hay ruta de inclusión en la cual se encuentre %s"
-#: cppfiles.c:639
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr "Guardias múltiples de include pueden ser útiles para:\n"
-#: cppfiles.c:1029
+#: cppfiles.c:1014
msgid "absolute file name in remap_filename"
msgstr "nombre de fichero absoluto en remap_filename"
-#: cppinit.c:230
+#: cppinit.c:224
#, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "ignorando el directorio inexistente \"%s\"\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, c-format
msgid "%s: Not a directory"
msgstr "%s: No es un directorio"
-#: cppinit.c:284
+#: cppinit.c:287
#, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr "ignorando el directorio duplicado \"%s\"\n"
-#: cppinit.c:312
-#, c-format
-msgid "changing search order for system directory \"%s\""
-msgstr "cambiando el orden de búsqueda para el directorio del sistema \"%s\""
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " porque es un directorio que no es del sistema que duplica un directorio del sistema\n"
-#: cppinit.c:316
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t debe ser de un tipo unsigned"
+
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
-msgstr " porque es el mismo que el directorio que no es del sistema \"%s\""
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bits; el objetivo requiere de %lu bits"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "la aritmética de CPP debe se al menos tan precisa como un int del objetivo"
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
-msgstr " porque ya ha sido especificado cmo un directorio que no es del sistema"
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "el char del objetivo tiene menos de 8 bits de ancho"
-#: cppinit.c:936
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "el int del objetivo es más estrecho que el char del objetivo"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "el medio-entero de CPP es más estrecho que el carácter de CPP"
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP no puede manejar constantes de carácter anchas más allá de %lu bits en este objetivo, pero el objetivo requiere %lu bits"
+
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
msgstr "la búsqueda de #include \"...\" inicia aquí:\n"
-#: cppinit.c:940
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
msgstr "la búsqueda de #include <...> inicia aquí:\n"
-#: cppinit.c:943
+#: cppinit.c:979
msgid "End of search list.\n"
msgstr "Fin de la lista de búsqueda.\n"
-#: cppinit.c:1010
+#: cppinit.c:1057
msgid "<built-in>"
msgstr "<interno>"
-#: cppinit.c:1012
+#: cppinit.c:1059
msgid "<command line>"
msgstr "<línea de orden>"
-#: cppinit.c:1108 tradcpp.c:979 tradcpp.c:989 tradcpp.c:1080
-msgid "I/O error on output"
-msgstr "error de E/S en la salida"
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1156
-#, c-format
-msgid "argument missing after %s"
-msgstr "falta un argumento después de %s"
-
-#: cppinit.c:1157
+#: cppinit.c:1164
#, c-format
msgid "assertion missing after %s"
msgstr "falta una aserción después de %s"
-#: cppinit.c:1158
+#: cppinit.c:1165
#, c-format
msgid "directory name missing after %s"
msgstr "falta el nombre de directorio después de %s"
-#: cppinit.c:1159
+#: cppinit.c:1166
#, c-format
msgid "file name missing after %s"
msgstr "falta el nombre de fichero después de %s"
-#: cppinit.c:1160
+#: cppinit.c:1167
#, c-format
msgid "macro name missing after %s"
msgstr "falta el nombre de macro después de %s"
-#: cppinit.c:1161
+#: cppinit.c:1168
#, c-format
msgid "path name missing after %s"
msgstr "falta el nombre de la ruta después de %s"
-#: cppinit.c:1162
-#, c-format
-msgid "number missing after %s"
-msgstr "falta el número después de %s"
-
-#: cppinit.c:1163
-#, c-format
-msgid "target missing after %s"
-msgstr "falta el objetivo después de %s"
-
-#: cppinit.c:1351
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr "demasiados nombres de ficheros. Teclee %s --help para información de modo de empleo"
-
-#: cppinit.c:1541 tradcpp.c:610
-msgid "output filename specified twice"
-msgstr "se especificó dos veces el nombre del fichero de salida"
-
-#: cppinit.c:1653
+#: cppinit.c:1353
msgid "-I- specified twice"
msgstr "se especificó -I- dos veces"
-#: cppinit.c:1794
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP versión %s (cpplib)"
-
-#: cppinit.c:1835 tradcpp.c:803
-msgid "you must additionally specify either -M or -MM"
-msgstr "debe especificar adicionalmente -M o -MM"
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1896
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-"Interruptores:\n"
-" -include <fichero> Incluye el contenido del <fichero> antes de otros ficheros\n"
-" -imacros <fichero> Aceptar definiciones de macros en el <fichero>\n"
-" -iprefix <ruta> Especificar la <ruta> como un prefijo para las siguientes dos opciones\n"
-" -iwithprefix <dir> Agregar el <dir>ectorio al final de la ruta de inclusión del sistema\n"
-" -iwithprefixbefore <dir> Agregar el <dir>ectorio al final de la ruta de inclusión principal\n"
-" -isystem <dir> Agregar el <dir>ectorio al inicio de la ruta de inclusión del sistema\n"
-
-#: cppinit.c:1905
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-" -idirafter <dir> Agregar el <dir>ectorio al final de la ruta de inclusión del sistema\n"
-" -I <dir> Agregar el <dir>ectorio al final de la ruta de inclusión principal\n"
-" -I- Control granula de la ruta de inclusión; vea los documentos info\n"
-" -nostdinc No buscar en los directorios de inclusión del sistema\n"
-" (aún se usarán los directorios especificados con -isystem)\n"
-" -nostdinc++ No buscar en los directorios de inclusión del sistema para C++\n"
-" -o <fichero> Poner la salida en el <fichero>\n"
-
-#: cppinit.c:1914
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-" -pedantic Habilita todos los avisos demandados por ISO C estricto\n"
-" -pedantic-errors Habilita los avisos -pedantic como errores\n"
-" -trigraphs Soporte para trigrafos de ISO C\n"
-" -lang-c Asumir que las fuentes de entrada están en C\n"
-" -lang-c89 Asumir que las fuentes de entrada están en C89\n"
-
-#: cppinit.c:1921
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-" -lang-c++ Asumir que las fuentes de entrada están en C++\n"
-" -lang-objc Asumir que las fuentes de entrada están en ObjectiveC\n"
-" -lang-objc++ Asumir que las fuentes de entrada están en ObjectiveC++\n"
-" -lang-asm Asumir que las fuentes de entrada están en ensamblador\n"
-
-#: cppinit.c:1927
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-" -std=<nombre std> Especificar la concordancia estándard; una de:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Permite el análisis de las características de estilo C++\n"
-" -w Inhibir los mensajes de aviso\n"
-" -Wtrigraphs Avisar si se encuentran trigrafos\n"
-" -Wno-trigraphs No avisar si se encuentran trigrafos\n"
-" -Wcomment{s} Avisar si un comentario inicia dentro de otro\n"
-
-#: cppinit.c:1937
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-" -Wno-comment{s} No avisar si se encuentran comentarios\n"
-" -Wtraditional Avisar sobre características no presentes en C tradicional\n"
-" -Wno-traditional No avisar sobre C tradicional\n"
-" -Wundef Avisar si una macro sin definir es usada por #if\n"
-" -Wno-undef No avisar sobre pruebas con macros sin definir\n"
-" -Wimport Avisar sobre el uso de la directiva #import\n"
-
-#: cppinit.c:1945
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-" -Wno-import No avisar sobre el uso de #import\n"
-" -Werror Tratar todos los avisos como errores\n"
-" -Wno-error No tratar los avisos como errores\n"
-" -Wsystem-headers No suprimir los avisos de los encabezados del sistema\n"
-" -Wno-system-headers Suprimir avisos de los encabezados del sistema\n"
-" -Wall Activar todas los avisos del preprocesador\n"
-
-#: cppinit.c:1953
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MD Generate make dependencies and compile\n"
-" -MMD As -MD, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-" -M Genera dependencias para make\n"
-" -MM Como -M, pero ignora los ficheros de encabezado del sistema\n"
-" -MD Genera dependencias para make y compila\n"
-" -MMD Como -MD, pero ignora los ficheros de encabezado del sistema\n"
-" -MF <fichero> Escribe la salida de la dependencia en el fichero dado\n"
-" -MG Trata los ficheros de encabezado faltantes como ficheros generados\n"
-
-# ¿Estoy usando la traducción correcta de 'quoted'? cfuga
-#: cppinit.c:1961
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-" -MP\t\t\t Generar objetivos falsos para todos los encabezados\n"
-" -MQ <objetivo> Agregar un objetivo entrecomillado para MAKE\n"
-" -MT <objetivo> Agregar un objetivo sin comillas\n"
-
-#: cppinit.c:1966
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question>=<answer> Assert the <answer> to <question>\n"
-" -A-<question>=<answer> Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-" -D<macro> Define una <macro> con la cadena '1' como su valor\n"
-" -D<macro>=<valor> Define una <macro> con <valor> como su valor\n"
-" -A<pregunta>=<resp> Define la <resp>uesta para la <pregunta>\n"
-" -A-<pregunta>=<resp> Desactiva la <resp>uesta a la <pregunta>\n"
-" -U<macro> Borra la definición de <macro> \n"
-" -v Muestra el número de la versión\n"
-
-#: cppinit.c:1974
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-" -H Muestra el nombre de los ficheros de encabezado cada vez que se usan\n"
-" -C No descarta los comentarios\n"
-" -dM Muestra una lista de definiciones de macro activas al final\n"
-" -dD Preserva las definiciones de macro en la salida\n"
-" -dN Como -dD excepto que sólo se preservan los nombres\n"
-" -dI Incluye directivas #include en la salida\n"
-
-#: cppinit.c:1982
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-" -fpreprocessed Trata el fichero de salida como si ya fuera preprocesado\n"
-" -ftabstop=<número> Distancia entre los topes de tabulador para el reporte en columnas\n"
-" -P No generar directivas #line\n"
-" -$ No permitir '$' en los identificadores\n"
-" -remap Remapear los nombres de fichero cuando se incluyan ficheros\n"
-" --version Muestra la información de la versión\n"
-" -h ó --help Muestra esta información\n"
-
-#: cpplex.c:154
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr "trigrafo ??%c convertido a %c"
-#: cpplex.c:162
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr "se ignora el trigrafo ??%c"
-#: cpplex.c:218
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr "caracteres de barra invertida y fin de línea separados por espacio"
-#: cpplex.c:224
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
msgstr "no hay caractér de barra invertida o fin de línea al final del fichero"
-#: cpplex.c:290
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
msgstr "\"/*\" dentro de un comentario"
-#: cpplex.c:373
+#: cpplex.c:395
msgid "null character(s) ignored"
msgstr "caracter(es) nulo(s) ignorados"
-#: cpplex.c:380
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
-msgstr "%s en directiva de preprocesamiento"
+msgstr "%s en la directiva de preprocesamiento"
-#: cpplex.c:447
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "intento de usar \"%s\" envenenado"
-#: cpplex.c:455
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr "__VA_ARGS__ solamente puede aparecer en la expansión de una macro variadic C99"
-#: cpplex.c:508
-msgid "'$' character(s) in identifier"
-msgstr "caracter(es) '$' en un identificador"
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "caracter(es) '$' en el identificador o número"
-#: cpplex.c:589
+#: cpplex.c:698
#, c-format
msgid "missing terminating %c character"
msgstr "falta carácter terminando %c"
-#: cpplex.c:594
-msgid "possible start of unterminated string literal"
-msgstr "posible inicio de la cadena literal sin terminar"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr "las literales de cadena en múltiples líneas están deprecadas"
-
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr "caracter(es) nulo(s) preservados en la literal"
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
msgid "no newline at end of file"
msgstr "no hay caractér de fin de línea al final del fichero"
-#: cpplex.c:1034 tradcpp.c:1467
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr "comentario sin terminar"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
-msgstr "los comentarios de estilo C++ no son permitidos en ISO C89"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "los comentarios de estilo C++ no se permiten en ISO C90"
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr "(esto se reportará solamente una vez por cada fichero de entrada)"
-#: cpplex.c:1052
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr "comentario en múltiples líneas"
-#: cpplex.c:1367
+#: cpplex.c:1425
#, c-format
msgid "unknown string token %s\n"
msgstr "cadena de elemento %s desconocida\n"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, c-format
msgid "unspellable token %s"
msgstr "elemento %s impronunciable"
-#: cpplex.c:1635
+#: cpplex.c:1695
#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
-msgstr "el significado de `\\%c' varía con -traditional"
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significado de '\\%c' es diferente en C tradicional"
-#: cpplex.c:1641
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr "universal-character-name incompleto"
-#: cpplex.c:1655
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr "dígito no hexadecimal '%c' en universal-character-name"
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr "universal-character-name en el objetivo EBCDIC"
-#: cpplex.c:1677
+#: cpplex.c:1737
msgid "universal-character-name out of range"
msgstr "universal-character-name fuera de rango"
-#: cpplex.c:1722
-msgid "the meaning of '\\a' varies with -traditional"
-msgstr "el significado de `\\a' varía con -traditional"
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significado de '\\a' es diferente en C tradicional"
-#: cpplex.c:1729
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
-#: cpplex.c:1739
-msgid "the meaning of '\\x' varies with -traditional"
-msgstr "el significado de '\\x' varía con -traditional"
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significado de '\\x' es diferente en C tradicional"
-#: cpplex.c:1758 f/lex.c:620
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr "se usó \\x sin dígitos hexadecimales a continuación"
-#: cpplex.c:1762
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr "secuencia de escape hexadecimal fuera de rango"
-#: cpplex.c:1786
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr "secuencia de escape octal fuera de rango"
-#: cpplex.c:1801
+#: cpplex.c:1874
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "secuencia de escape desconocida, '\\%c'"
-#: cpplex.c:1803
+#: cpplex.c:1877
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "secuencia de escape desconocida: '\\%03o'"
-#: cpplex.c:1807
-msgid "escape sequence out of range for character"
-msgstr "secuencia de escape fuera de rango por el carácter"
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "secuencia de escape fuera de rango por su tipo"
-#: cpplex.c:1904
+#: cpplex.c:1973
msgid "empty character constant"
msgstr "constante de carácter vacía"
-#: cpplex.c:1908
-msgid "character constant too long"
-msgstr "constante de carácter demasiado larga"
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "constante de carácter demasiado grande para su tipo"
-#: cpplex.c:1911
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr "constante de carácter con múltiples caracteres"
-#: cpplib.c:228
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "elementos extra al final de la directiva #%s"
-#: cpplib.c:281
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s es una extensión de GCC"
-#: cpplib.c:292
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr "se sugiere no usar #elif en C tradicional"
-#: cpplib.c:295
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "C tradicional ignora #%s con el # indentado"
-#: cpplib.c:299
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "se sugiere ocultar #%s de C tradicional con un # indentado"
-#: cpplib.c:333
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "imbuir una directiva dentro de los argumentos de una macro no es transportable"
+
+#: cpplib.c:378
msgid "style of line directive is a GCC extension"
msgstr "la directiva de estilo de línea es una extensión de GCC"
-#: cpplib.c:382
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "directiva de preprocesamiento #%s inválida"
-#: cpplib.c:437
-#, c-format
-msgid "no macro name given in #%s directive"
-msgstr "no se dio un nombre de macro en la directiva #%s"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no se puede usar como un nombre de macro"
-#: cpplib.c:441
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "no se puede usar \"%s\" como un nombre de macro porque es un operador en C++"
-#: cpplib.c:444
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "no se dio un nombre de macro en la directiva #%s"
+
+#: cpplib.c:512
msgid "macro names must be identifiers"
msgstr "los nombres de macro deben ser identificadores"
-#: cpplib.c:455
-#, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "no se puede usar \"%s\" como un nombre de macro"
-
-#: cpplib.c:493
+#: cpplib.c:552
#, c-format
msgid "undefining \"%s\""
msgstr "borrando la definición de \"%s\""
-#: cpplib.c:536
+#: cpplib.c:598
msgid "missing terminating > character"
msgstr "falta el carácter de terminación >"
-#: cpplib.c:574
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s espera \"NOMBRE_ARCHIVO\" ó <NOMBRE_ARCHIVO>"
-#: cpplib.c:585
+#: cpplib.c:648
#, c-format
msgid "empty file name in #%s"
msgstr "nombre de fichero vacío en #%s"
-#: cpplib.c:604
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr "#include_next en fichero primario de código fuente"
-#: cpplib.c:611
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr "#import es obsoleto, use una envoltura #ifndef en el fichero de encabezado"
-#: cpplib.c:619
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr "#include anidado con demasiada profundidad"
-#: cpplib.c:677
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "indicador \"%s\" inválido en la línea de la directiva"
-#: cpplib.c:759
+#: cpplib.c:814
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "\"%s\" después de #line no es un entero positivo"
-#: cpplib.c:765
+#: cpplib.c:820
msgid "line number out of range"
msgstr "número de línea fuera de rango"
-#: cpplib.c:776 cpplib.c:847
+#: cpplib.c:831 cpplib.c:902
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" no es un nombre de fichero válido"
-#: cpplib.c:811
+#: cpplib.c:866
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "\"%s\" después de # no es un entero positivo"
-#: cpplib.c:916
+#: cpplib.c:973
msgid "invalid #ident directive"
msgstr "directiva #ident inválida"
-#: cpplib.c:1004
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "registrando \"%s\" como un pragma y como un espacio de nombres de pragma"
-#: cpplib.c:1007
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s ya está registrado"
-#: cpplib.c:1009
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s ya está registrado"
-#: cpplib.c:1084
+#: cpplib.c:1143
msgid "#pragma once is obsolete"
msgstr "#pragma una vez es obsoleto"
-#: cpplib.c:1087
+#: cpplib.c:1146
msgid "#pragma once in main file"
msgstr "#pragma una vez en el fichero principal"
-#: cpplib.c:1111
+#: cpplib.c:1170
msgid "invalid #pragma GCC poison directive"
msgstr "directiva #pragma de GCC envenenada inválida"
-#: cpplib.c:1120
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "envenenando la macro existente \"%s\""
-#: cpplib.c:1140
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorado fuera del fichero a incluir"
-#: cpplib.c:1165
+#: cpplib.c:1226
#, c-format
msgid "cannot find source %s"
msgstr "no se puede encontrar la fuente %s"
-#: cpplib.c:1169
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr "el fichero actual es más antiguo que %s"
-#: cpplib.c:1244
+#: cpplib.c:1346
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma lleva una cadena literal entre paréntesis"
-#: cpplib.c:1343
+#: cpplib.c:1429
msgid "#else without #if"
msgstr "#else sin #if"
-#: cpplib.c:1348 tradcpp.c:3871
+#: cpplib.c:1434
msgid "#else after #else"
msgstr "#else después de #else"
-#: cpplib.c:1350 cpplib.c:1384
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
msgstr "el condicional empezó aquí"
-#: cpplib.c:1377
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr "#elif sin #if"
-#: cpplib.c:1382 tradcpp.c:3566
+#: cpplib.c:1468
msgid "#elif after #else"
msgstr "#elif después de #else"
-#: cpplib.c:1413
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr "#endif sin #if"
-#: cpplib.c:1496 tradcpp.c:3263
+#: cpplib.c:1582
msgid "missing '(' after predicate"
msgstr "falta '(' antes del predicado"
-#: cpplib.c:1511 tradcpp.c:3277
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
msgstr "falta ')' para completar la respuesta"
-#: cpplib.c:1531 tradcpp.c:3283
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr "el predicado de la respuesta está vacío"
-#: cpplib.c:1561 tradcpp.c:3331
+#: cpplib.c:1647
msgid "assertion without predicate"
msgstr "afirmación sin predicado"
-#: cpplib.c:1563 tradcpp.c:3333
+#: cpplib.c:1649
msgid "predicate must be an identifier"
msgstr "el predicado debe ser un identificador"
-#: cpplib.c:1645 tradcpp.c:3430
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" reafirmado"
-#: cpplib.c:1875
+#: cpplib.c:1968
#, c-format
msgid "unterminated #%s"
msgstr "#%s sin terminar"
-#: cppmacro.c:145
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro \"%s\" no se utiliza"
+
+#: cppmacro.c:139 cppmacro.c:294
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interna \"%s\" inválida"
-#: cppmacro.c:346
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "no se puede determinar la fecha y la hora"
+
+#: cppmacro.c:407
msgid "invalid string literal, ignoring final '\\'"
msgstr "cadena literal inválida, se ignora el '\\' finales"
-#: cppmacro.c:438
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "pegar \"%s\" y \"%s\" no da un elemento válido de preprocesamiento"
-#: cppmacro.c:564
-msgid "directives may not be used inside a macro argument"
-msgstr "no se pueden usar las directivas dentro de un argumento de macro"
-
-#: cppmacro.c:576
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
-
-#: cppmacro.c:593
+#: cppmacro.c:546
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 requiere que el resto de los argumentos sea usado"
-#: cppmacro.c:598
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "la macro \"%s\" requiere %u argumentos, pero solo se proporcionan %u"
-#: cppmacro.c:609
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "la macro \"%s\" recibió %u argumentos, pero solamente tomó %u"
-#: cppmacro.c:692
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "la función de macro \"%s\" se debe usar con argumentos en C tradicional"
-#: cppmacro.c:1188
+#: cppmacro.c:1314
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "parámetro de macro \"%s\" duplicado"
-#: cppmacro.c:1216
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" podría faltar en la lista de parámetro de macro"
-#: cppmacro.c:1223
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
msgstr "los parámetros de macro deben ser separados por comas"
-#: cppmacro.c:1240
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr "falta el nombre del parámetro"
-#: cppmacro.c:1254
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr "los macros variadic anónimos se introdujeron en C99"
-#: cppmacro.c:1257
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C no permite macros variadic nombrados"
-#: cppmacro.c:1266
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
msgstr "falta paréntesis derecho en la lista de parámetros de macro"
-#: cppmacro.c:1344
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C requiere espacios en blanco después del nombre de macro"
-#: cppmacro.c:1374
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
msgstr "'#' no es seguido por un parámetro de macro"
-#: cppmacro.c:1394
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' no puede aparece en o al final de una expansión de macro"
-#: cppmacro.c:1430
+#: cppmacro.c:1601
#, c-format
msgid "\"%s\" redefined"
-msgstr "\"%s\" redefinido"
+msgstr "se redefinió \"%s\""
-#: cppmacro.c:1434
+#: cppmacro.c:1606
msgid "this is the location of the previous definition"
msgstr "esta es la ubicación de la definición previa"
-#: cppmacro.c:1498
+#: cppmacro.c:1657
#, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
-msgstr "el argumento de macro \"%s\" debería ser convertido a cadena con -traditional"
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "el argumento de macro \"%s\" debería ser convertido a cadena en C tradicional"
-#: cppmacro.c:1522
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "tipo de hash %d inválido en cpp_macro_definition"
-#: cppmain.c:121
-#, c-format
-msgid "invalid option %s"
-msgstr "opción %s inválida"
-
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" no es una opción válida para el preprocesador"
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr "demasiados ficheros de entrada"
-#: cse.c:7112
-#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
-msgstr ";; Procesando el bloque de %d a %d, %d establecido.\n"
-
-#: diagnostic.c:784
+#: cpptrad.c:841
#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: aviso: "
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "se detectó recursión al expandir la macro \"%s\""
-#: diagnostic.c:791
+#: cse.c:7195
#, c-format
-msgid "%s: warning: "
-msgstr "%s: aviso: "
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; Procesando el bloque de %d a %d, %d establecido.\n"
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr "((anónimo))"
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr "%s: los avisos son tratados como errores\n"
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr "%s: %s: "
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr "lo sentimos, sin implementar: "
-
-#: diagnostic.c:1076
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr "%s "
-#: diagnostic.c:1078
+#: diagnostic.c:1056
#, c-format
msgid " %s"
msgstr " %s"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
msgstr "En el nivel principal:"
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, c-format
msgid "In member function `%s':"
msgstr "En la función miembro `%s':"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr "En la función `%s':"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
msgstr "compilación terminada.\n"
-#: diagnostic.c:1227
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: confusión por errores previos, saliendo\n"
-#: diagnostic.c:1242 diagnostic.c:1392
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4865,21 +4980,21 @@ msgstr ""
"con el código preprocesado si es apropiado.\n"
"Vea %s para más instrucciones.\n"
-#: diagnostic.c:1390
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr "Error interno del compilador: Error al reportar rutinas reentradas.\n"
-#: diagnostic.c:1452
+#: diagnostic.c:1376
#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "Error interno del compilador %s, en %s:%d"
+msgid "in %s, at %s:%d"
+msgstr "en %s, en %s:%d"
-#: diagnostic.c:1497
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr "En el fichero incluído de %s:%d"
-#: diagnostic.c:1500
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
@@ -4888,52 +5003,61 @@ msgstr ""
",\n"
" de %s:%d"
-#: diagnostic.c:1501
+#: diagnostic.c:1401
msgid ":\n"
msgstr ":\n"
-#: diagnostic.c:1534 diagnostic.c:1551
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
-msgstr "`%s' está deprecado (declarado en %s:%d)"
+msgstr "`%s' es obsoleto (declarado en %s:%d)"
-#: diagnostic.c:1554
+#: diagnostic.c:1465
#, c-format
msgid "`%s' is deprecated"
-msgstr "`%s' está deprecado"
+msgstr "`%s' es obsoleto"
-#: diagnostic.c:1557
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
-msgstr "el tipo está deprecado (declarado en %s:%d)"
+msgstr "el tipo es obsoleto (declarado en %s:%d)"
-#: diagnostic.c:1560
+#: diagnostic.c:1471
msgid "type is deprecated"
-msgstr "el tipo está deprecado"
+msgstr "el tipo es obsoleto"
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "el dominador de %d debería ser %d, no %d"
-#: dwarf2out.c:3056
+#: dwarf2out.c:3135
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s no está implementado\n"
-#: dwarfout.c:2089
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
-msgstr "regno interno fastidiado: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "regno interno fastidiado: `%s' tiene regno = %d\n"
-#: dwarfout.c:6291
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "el soporte para el formato de depuración DWARF1 es obsoleto"
+
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr "no se puede obtener el directorio actual"
-#: emit-rtl.c:1098
+#: emit-rtl.c:1155
msgid "can't access real part of complex value in hard register"
msgstr "no se puede accesar a la parte real de un valor complejo en un registro fijo"
-#: emit-rtl.c:1120
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
-msgstr "No se puede accesar a la parte imaginaria de un valor complejo en un registro fijo"
+msgstr "no se puede accesar a la parte imaginaria de un valor complejo en un registro fijo"
-#: emit-rtl.c:3271
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n"
@@ -4942,93 +5066,100 @@ msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n"
msgid "abort in %s, at %s:%d"
msgstr "aborto en %s, en %s:%d"
-#: except.c:382
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr "manejo de excepciones desactivado, use -fexceptions para activar"
-#: except.c:3235
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr "el argumento de `builtin_eh_return_regno' debe ser constante"
-#: except.c:3346 except.c:3368
+#: except.c:3137
msgid "__builtin_eh_return not supported on this target"
msgstr "no se da soporte a __builtin_eh_return en este objetivo"
-#: explow.c:1369
+#: explow.c:1408
msgid "stack limits not supported on this target"
msgstr "no se da soporte a límites de la pila en este objetivo"
-#: expr.c:2948
+#: expr.c:3355
msgid "function using short complex types cannot be inline"
msgstr "las funciones que usan tipos short complex no pueden ser inline"
-#: expr.c:5810 expr.c:5819 expr.c:5828 expr.c:5833 expr.c:6120 expr.c:6136
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
msgstr "operación de enteros anchos sin soporte"
-#: expr.c:6185
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr "el tamaño del parámetro previo depende de `%s'"
-#: expr.c:6531
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr "se regresó un valor en block_exit_expr"
-#: final.c:1209
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+msgid "cannot take the address of an unaligned member"
+msgstr "no se puede tomar la dirección de un miembro desalineado"
+
+#: final.c:1342
msgid "negative insn length"
msgstr "longitud de insn negativa"
-#: final.c:2628
+#: final.c:2793
msgid "could not split insn"
msgstr "no se puede dividir insn"
-#: final.c:2976
+#: final.c:3141
msgid "invalid `asm': "
msgstr "`asm' inválido: "
-#: final.c:3160
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr "alternativas de dialecto ensamblador anidadas"
-#: final.c:3177 final.c:3189
+#: final.c:3345 final.c:3357
msgid "unterminated assembly dialect alternative"
msgstr "alternativa de dialecto ensamblador sin terminar"
-#: final.c:3233
+#: final.c:3401
#, c-format
msgid "operand number missing after %%-letter"
msgstr "falta un número operando después de %%-letra"
-#: final.c:3236 final.c:3275
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr "número operando fuera de rango"
-#: final.c:3294
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr "%%-código inválido"
-#: final.c:3325
+#: final.c:3493
#, c-format
msgid "`%%l' operand isn't a label"
msgstr "el operando `%%l' no es una etiqueta"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3432 vmsdbgout.c:478 config/i386/i386.c:5315 config/pdp11/pdp11.c:1570
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr "constante de coma flotante mal usada"
-#: final.c:3488 vmsdbgout.c:535 config/i386/i386.c:5369 config/pdp11/pdp11.c:1617
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr "expresión inválida como operando"
-#: flow.c:354
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
-msgstr "la función sería un posible candidato para el atributo `noreturn'"
+msgstr "la función puede ser un posible candidato para el atributo `noreturn'"
-#: flow.c:359
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr "la función `noreturn' devuelve"
@@ -5036,82 +5167,86 @@ msgstr "la función `noreturn' devuelve"
msgid "control reaches end of non-void function"
msgstr "el control alcanza el final de una función que no es void"
-#: flow.c:1600
+#: flow.c:1642
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Se intentó borrar el insn de prólogo/epílogo"
-#: fold-const.c:3135 fold-const.c:3148
+#: fold-const.c:2546 fold-const.c:2559
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "la comparación siempre es %d debido a la anchura del campo de bit"
-#: fold-const.c:4190 fold-const.c:4207
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr "la comparación siempre es %d"
-#: fold-const.c:4338
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr "un `or' de pruebas no equivalentes sin coincidencia siempre es 1"
-#: fold-const.c:4343
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr "un `and' de pruebas equivalentes mutuamente exclusivas siempre es 0"
-#: function.c:906 varasm.c:1530
+#: function.c:884 varasm.c:1503
#, c-format
msgid "size of variable `%s' is too large"
msgstr "el tamaño de la variable `%s' es demasiado grande"
-#: function.c:5445
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr "restricción imposible en `asm'"
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
-msgstr "`%s' se debería usar sin iniciar en esta función"
+msgstr "puede ser que se utilice `%s' sin inicializar en esta función"
-#: function.c:5452
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
-msgstr "la variable `%s' podría ser sobreescrita por `longjmp' o `vfork'"
+msgstr "la variable `%s' puede ser sobreescrita por `longjmp' o `vfork'"
-#: function.c:5471
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
-msgstr "el argumento `%s' podría ser sobreescrito por `longjmp' o `vfork'"
+msgstr "el argumento `%s' puede ser sobreescrito por `longjmp' o `vfork'"
-#: function.c:6337
+#: function.c:6420
msgid "function returns an aggregate"
msgstr "la función devuelve un agregado"
-#: function.c:6856
+#: function.c:6925
#, c-format
msgid "unused parameter `%s'"
msgstr "parámetro `%s' sin uso"
-#: gcc.c:1102
+#: gcc.c:1107
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "abreviación ambigua %s"
-#: gcc.c:1129
+#: gcc.c:1134
#, c-format
msgid "incomplete `%s' option"
msgstr "opción `%s' incompleta"
-#: gcc.c:1140
+#: gcc.c:1145
#, c-format
msgid "missing argument to `%s' option"
msgstr "faltan argumentos para la opción `%s'"
-#: gcc.c:1153
+#: gcc.c:1158
#, c-format
msgid "extraneous argument to `%s' option"
msgstr "argumento extraño para la opción `%s'"
-#: gcc.c:1460
+#: gcc.c:1486
msgid "Using built-in specs.\n"
msgstr "Usando especificaciones internas.\n"
-#: gcc.c:1634
+#: gcc.c:1667
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5120,37 +5255,42 @@ msgstr ""
"Cambiando la especificación de %s a '%s'\n"
"\n"
-#: gcc.c:1732
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr "Leyendo especificaciones de %s\n"
-#: gcc.c:1830 gcc.c:1849
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs sintaxis mal formada de %%include después de %ld caracteres"
-#: gcc.c:1857
+#: gcc.c:1899
#, c-format
msgid "could not find specs file %s\n"
msgstr "no se puede encontrar el fichero de especificaciones %s\n"
-#: gcc.c:1873 gcc.c:1881 gcc.c:1890 gcc.c:1899
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs sintaxis mal formada de %%rename después de %ld caracteres"
-#: gcc.c:1908
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "specs la especificación %s no se encontró para ser renombrada"
-#: gcc.c:1915
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s: se intentó renombrar la especificación '%s' a la especificación '%s' que ya estaba definida"
+
+#: gcc.c:1963
#, c-format
msgid "rename spec %s to %s\n"
msgstr "renombrando especificación %s a %s\n"
-#: gcc.c:1917
+#: gcc.c:1965
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5159,25 +5299,25 @@ msgstr ""
"la especificacion es '%s'\n"
"\n"
-#: gcc.c:1930
+#: gcc.c:1978
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "specs comando %% desconocido después de %ld caracteres"
-#: gcc.c:1941 gcc.c:1954
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "specs fichero mal formado después de %ld caracteres"
-#: gcc.c:2008
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr "el fichero de especificaciones no tiene especificaciones para enlazar"
-#: gcc.c:2720
+#: gcc.c:2554
msgid "-pipe not supported"
msgstr "-pipe no tiene soporte"
-#: gcc.c:2774
+#: gcc.c:2609
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5185,7 +5325,7 @@ msgstr ""
"\n"
"¿Continuar? (s ó n) "
-#: gcc.c:2873
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5196,69 +5336,69 @@ msgstr ""
"Por favor envíe un reporte completo de error.\n"
"Vea %s para más instrucciones."
-#: gcc.c:2891
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3024
+#: gcc.c:2883
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Modo de empleo: %s [opciones] fichero...\n"
-#: gcc.c:3025
+#: gcc.c:2884
msgid "Options:\n"
msgstr "Opciones:\n"
-#: gcc.c:3027
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr " -pass-exit-codes Salir con el código de error más alto de una fase\n"
-#: gcc.c:3028
+#: gcc.c:2887
msgid " --help Display this information\n"
msgstr " --help Muestra esta información\n"
-#: gcc.c:3029
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Muestra opciones de línea de comando específicas del objetivo\n"
-#: gcc.c:3031
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr " (Use '-v --help' para mostrar las opciones de línea de comando de los subprocesos)\n"
-#: gcc.c:3032
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n"
-#: gcc.c:3033
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Muestra la versión del compilador\n"
-#: gcc.c:3034
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n"
-#: gcc.c:3035
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs Muestra los directorios en la ruta de búsqueda del compilador\n"
-#: gcc.c:3036
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr " -print-libgcc-file-name Muestra el nombre de la biblioteca que acompaña al compilador\n"
-#: gcc.c:3037
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr " -print-file-name=<bib> Muestra la ruta completa a la biblioteca <bib>\n"
-#: gcc.c:3038
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<prog> Muestra la ruta completa del programa componente del compilador <prog>\n"
-#: gcc.c:3039
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory Muestra el directorio raíz para las versiones de libgcc\n"
-#: gcc.c:3040
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5266,82 +5406,86 @@ msgstr ""
" -print-multi-lib Muestra el mapeo entre las opciones de línea de comando\n"
" y los múltiples directorios de la búsqueda de bibliotecas\n"
-#: gcc.c:3043
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n"
+
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<opciones> Pasa <opciones> separadas por coma al ensamblador\n"
-#: gcc.c:3044
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<opciones> Pasa <opciones> separadas por coma al preprocesador\n"
-#: gcc.c:3045
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<opciones> Pasa <opciones> separadas por coma al enlazador\n"
-#: gcc.c:3046
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <argumento> Pasa el <argumento> al enlazador\n"
-#: gcc.c:3047
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps No borra los ficheros intermedios\n"
-#: gcc.c:3048
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n"
-#: gcc.c:3049
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n"
-#: gcc.c:3050
+#: gcc.c:2910
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<fichero> Sobrepone las especificaciones internas con el contenido del <fichero>\n"
-#: gcc.c:3051
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
-msgstr " -std=<estándard> Asume que los ficheros de entrada son para el <staándard>\n"
+msgstr " -std=<estándard> Asume que los ficheros de entrada son para el <estándard>\n"
-#: gcc.c:3052
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <directorio> Agrega el <directorio> a las rutas de búsqueda del compilador\n"
-#: gcc.c:3053
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
-msgstr " -b <máquina> Ejecuta gcc para el objetivo <máquina>, si fue instalado\n"
+msgstr " -b <máquina> Ejecuta gcc para el objetivo <máquina>, si se instaló\n"
-#: gcc.c:3054
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
-msgstr " -V <versión> Ejecuta el gcc con número de versión <versión>, si fue instalado\n"
+msgstr " -V <versión> Ejecuta el gcc con número de versión <versión>, si se instaló\n"
-#: gcc.c:3055
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Muestra los programas invocados por el compilador\n"
-#: gcc.c:3056
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr " -### Como -v pero no se ejecutan las opciones entre comillas y los comandos\n"
-#: gcc.c:3057
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n"
-#: gcc.c:3058
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Solamente compila; no ensambla o enlaza\n"
-#: gcc.c:3059
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Compila y ensambla, pero no enlaza\n"
-#: gcc.c:3060
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fichero> Coloca la salida en el <fichero>\n"
-#: gcc.c:3061
+#: gcc.c:2921
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
@@ -5350,7 +5494,7 @@ msgstr ""
" 'none' significa revertir a la conducta habitual de\n"
" adivinar el lenguaje basado en la extensión del fichero\n"
-#: gcc.c:3068
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5363,17 +5507,27 @@ msgstr ""
" automáticamente a los varios subprocesos invocados por %s. Para pasar\n"
" otras opciones a estos procesos se deben usar las opciones -W<letra>.\n"
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "la opción `-%c' debe tener argumentos"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr "no se puede ejecutar `%s': %s"
+
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3348
+#: gcc.c:3262
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3349
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2003 Free Software Foundation, Inc.\n"
-#: gcc.c:3351 gcov.c:320
+#: gcc.c:3265 gcov.c:364
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -5384,69 +5538,62 @@ msgstr ""
"PARTICULAR\n"
"\n"
-#: gcc.c:3450
+#: gcc.c:3366
msgid "argument to `-Xlinker' is missing"
msgstr "falta el argumento para `-Xlinker'"
-#: gcc.c:3458
+#: gcc.c:3374
msgid "argument to `-l' is missing"
msgstr "falta el argumento para `-l'"
-#: gcc.c:3475
+#: gcc.c:3391
msgid "argument to `-specs' is missing"
msgstr "falta el argumento para `-specs'"
-#: gcc.c:3490
+#: gcc.c:3406
msgid "argument to `-specs=' is missing"
msgstr "falta el argumento para `-specs='"
-#: gcc.c:3521
-msgid "argument to `-b' is missing"
-msgstr "falta el argumento para `-b'"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr "`-%c' debe estar al inicio de la línea de comandos"
-#: gcc.c:3536
+#: gcc.c:3445
msgid "argument to `-B' is missing"
msgstr "falta el argumento para `-B'"
-#: gcc.c:3606
-msgid "argument to `-V' is missing"
-msgstr "falta el argumento para `-V'"
-
-#: gcc.c:3627 gcc.c:3634 gcc.c:3641
-msgid "invalid version number format"
-msgstr "formato de número de versión inválido"
-
-#: gcc.c:3752
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr "no se puede especificar -o con -c ó -S y con múltiples compilaciones"
-#: gcc.c:3923
+#: gcc.c:3791
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "aviso: se ignora -pipe porque se especificó -save-temps"
-#: gcc.c:3927
+#: gcc.c:3795
msgid "warning: -pipe ignored because -time specified"
msgstr "aviso: se ignora -pipe porque se especificó -time"
-#: gcc.c:3939
+#: gcc.c:3807
msgid "argument to `-x' is missing"
msgstr "falta el argumento para `-x'"
-#: gcc.c:3967
+#: gcc.c:3835
#, c-format
msgid "argument to `-%s' is missing"
msgstr "falta el argumento para `-%s'"
-#: gcc.c:4028
+#: gcc.c:3896
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr "aviso: `-x %s' después del último fichero de entrada no tiene efecto"
-#: gcc.c:4327
+#: gcc.c:4241
msgid "invalid specification! Bug in cc"
msgstr "¡Especificación inválida! `Bug' en cc"
-#: gcc.c:4476
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr "%s\n"
@@ -5454,51 +5601,74 @@ msgstr "%s\n"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5029
+#: gcc.c:4955
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
-msgstr "falla en spec: '%%*' no ha sido iniciado por coincidencia de patrón"
+msgstr "falla en spec: '%%*' no ha sido inicializado por coincidencia de patrón"
-#: gcc.c:5038
+#: gcc.c:4964
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "aviso: uso del operador obsoleto %%[ en especificación"
-#: gcc.c:5056
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "Procesando la especificación %c%s%c, el cual es '%s'\n"
-#: gcc.c:5181
+#: gcc.c:5107
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "falla en spec: opción de especificación '%c' no reconocida"
-#: gcc.c:5291
+#: gcc.c:5188
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr "función de especificación `%s' desconocida"
+
+#: gcc.c:5207
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr "error en los argumentos para la función de especificación `%s'"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr "nombre de la función de especificación malformado"
+
+#. )
+#: gcc.c:5259
+msgid "no arguments for spec function"
+msgstr "no hay argumentos para la función de especificación"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr "argumentos de la función de especificación malformados"
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr "llaves sin coincidencia en especificación"
-#: gcc.c:5969
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr "opción `-%s' no reconocida"
-#: gcc.c:5975
+#: gcc.c:6087
#, c-format
msgid "install: %s%s\n"
msgstr "instalar: %s%s\n"
-#: gcc.c:5976
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
msgstr "programas: %s\n"
-#: gcc.c:5977
+#: gcc.c:6089
#, c-format
msgid "libraries: %s\n"
msgstr "bibliotecas: %s\n"
-#: gcc.c:6025
+#: gcc.c:6146
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
@@ -5506,54 +5676,54 @@ msgstr ""
"\n"
"Para instrucciones de reporte de `bugs', por favor vea:\n"
-#: gcc.c:6041
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
msgstr "Configurado con: %s\n"
-#: gcc.c:6055
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
msgstr "Modelo de hilos: %s\n"
-#: gcc.c:6066
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
msgstr "gcc versión %s\n"
-#: gcc.c:6068
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "controlador gcc versión %s ejecutando gcc version %s\n"
-#: gcc.c:6076
+#: gcc.c:6197
msgid "no input files"
msgstr "no hay ficheros de entrada"
-#: gcc.c:6114
+#: gcc.c:6235
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: el compilador %s no está instalado en este sistema"
-#: gcc.c:6189
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: no se usó el fichero de entrada del enlazador porque no se hizo enlace"
-#: gcc.c:6232
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr "no se reconoce el lenguaje %s"
-#: gcc.c:6335
+#: gcc.c:6456
msgid "internal gcc abort"
msgstr "aborto interno de gcc"
-#: gcov.c:282
+#: gcov.c:325
msgid "Internal gcov abort.\n"
msgstr "Aborto interno de gcov.\n"
-#: gcov.c:295
+#: gcov.c:338
msgid ""
"Usage: gcov [OPTION]... SOURCEFILE\n"
"\n"
@@ -5561,7 +5731,7 @@ msgstr ""
"Modo de empleo: gcov [OPCIÓN]... FICHERO-FUENTE\n"
"\n"
-#: gcov.c:296
+#: gcov.c:339
msgid ""
"Print code coverage information.\n"
"\n"
@@ -5569,31 +5739,31 @@ msgstr ""
"Mostrar información de cobertura de código.\n"
"\n"
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
msgstr " -h, --help Muestra esta información, y finaliza\n"
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
msgstr " -v, --version Muestra el número de versión, y finaliza\n"
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr " -b, --branch-probabilities Incluye las probabilidades de ramificación en la salida\n"
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-" -c, --branch-counts Se muestran el número de ramificaciones\n"
+" -c, --branch-counts Se muestra el número de ramificaciones\n"
" en lugar de los porcentajes\n"
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr " -n, --no-output No crea un fichero de salida\n"
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
@@ -5601,15 +5771,19 @@ msgstr ""
" -l, --long-file-names Usar nombres largos de ficheros para los\n"
" ficheros fuentes incluidos\n"
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr " -f, --function-summaries Mostrar sumarios para cada función\n"
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
-msgstr " -o, --object-directory OBJDIR Buscar ficheros objeto en OBJDIR\n"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr " -o, --object-directory DIR|FICH Buscar ficheros objeto en el DIRectorio o en el FICHero nombrado\n"
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths Preserva todos los nombres de ruta de los componentes\n"
-#: gcov.c:307
+#: gcov.c:351
#, c-format
msgid ""
"\n"
@@ -5620,263 +5794,467 @@ msgstr ""
"Para instrucciones de reporte de `bugs', por favor vea:\n"
"%s.\n"
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr "gcov (GCC) %s\n"
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr "No se puede abrir fichero de bloque básico %s.\n"
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "No se puede abrir el fichero del grafo de flujo del programa %s.\n"
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr "No se puede abrir fichero de datos %s.\n"
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr "Asumiendo que todas las cuentas de ejecución son cero.\n"
-#: gcov.c:478
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "No se puede abrir el fichero del grafo de flujo del programa %s.\n"
-
-#: gcov.c:489
+#: gcov.c:534
#, c-format
msgid "No executable code associated with file %s.\n"
msgstr "No hay código ejecutable asociado al fichero %s.\n"
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
-msgstr "el contenido del fichero .da se agotó demasiado pronto\n"
-
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
-msgstr "el contenido del fichero .da no se agotó\n"
-
-#: gcov.c:973
+#: gcov.c:1186
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%6.2f%% de %d líneas de código fuente ejecutadas en la función %s\n"
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "se ejecutaron %s de %d líneas en %s %s\n"
-#: gcov.c:977
+#: gcov.c:1191
#, c-format
-msgid "No executable source lines in function %s\n"
-msgstr "No hay líneas de código fuente ejecutable en la función %s\n"
+msgid "No executable lines in %s %s\n"
+msgstr "No hay líneas de código ejecutables en %s %s\n"
-#: gcov.c:984
+#: gcov.c:1198
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%6.2f%% de %d ramificaciones ejecutadas en la función %s\n"
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "se ejecutaron %s de %d ramificaciones en %s %s\n"
-#: gcov.c:988
+#: gcov.c:1203
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%6.2f%% de %d ramificaciones visitadas al menos una vez en la función %s\n"
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "se visitaron %s de %d ramificaciones al menos una vez en %s %s\n"
-#: gcov.c:993
+#: gcov.c:1209
#, c-format
-msgid "No branches in function %s\n"
-msgstr "No hay ramificaciones en la función %s\n"
+msgid "No branches in %s %s\n"
+msgstr "No hay ramificaciones en %s %s\n"
-#: gcov.c:995
+#: gcov.c:1211
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%6.2f%% de %d llamadas ejecutadas en la función %s\n"
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "se ejecutaron %s de %d llamadas en %s %s\n"
-#: gcov.c:999
+#: gcov.c:1216
#, c-format
-msgid "No calls in function %s\n"
-msgstr "No hay llamadas en la función %s\n"
+msgid "No calls in %s %s\n"
+msgstr "No hay llamadas en %s %s\n"
-#: gcov.c:1126
+#: gcov.c:1351
#, c-format
msgid "didn't use all bb entries of graph, function %s\n"
msgstr "no se usaron todas las entradas bb del grafo, función %s\n"
-#: gcov.c:1128
+#: gcov.c:1353
#, c-format
msgid "block_num = %ld, num_blocks = %d\n"
msgstr "block_num = %ld, num_blocks = %d\n"
-#: gcov.c:1166
+#: gcov.c:1367
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
-msgstr "ERROR: demasiados bloques básicos en el fichero .bb %s\n"
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "ERROR: número de línea %ld inesperado\n"
-#: gcov.c:1243
+#: gcov.c:1383
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%6.2f%% de %d líneas de código fuente ejecutadas en el fichero %s\n"
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "ERROR: demasiados bloques básicos en la función %s\n"
-#: gcov.c:1247
+#: gcov.c:1398
#, c-format
-msgid "No executable source lines in file %s\n"
-msgstr "No hay líneas de código fuente ejecutable en el fichero %s\n"
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "ERROR: número de líneas fuera de rango en la función %s\n"
-#: gcov.c:1254
+#: gcov.c:1470
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
-msgstr "%6.2f%% de %d ramificaciones ejecutadas en el fichero %s\n"
+msgid "Could not open source file %s.\n"
+msgstr "No se puede abrir el fichero de código fuente %s.\n"
-#: gcov.c:1258
+#: gcov.c:1480
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
-msgstr "%6.2f%% de %d ramificaciones visitadas al menos una vez en el fichero %s\n"
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Aviso: el fichero fuente %s es más nuevo que %s\n"
-#: gcov.c:1263
+#: gcov.c:1510
#, c-format
-msgid "No branches in file %s\n"
-msgstr "No hay ramificaciones en el fichero %s\n"
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "EOF inesperado mientras se leía el fichero de código fuente %s.\n"
-#: gcov.c:1265
+#: gcov.c:1532
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr "%6.2f%% de %d llamadas ejecutadas en el fichero %s\n"
+msgid "call %2d never executed\n"
+msgstr "la llamada %2d nunca se ejecuta\n"
-#: gcov.c:1269
+#: gcov.c:1535
#, c-format
-msgid "No calls in file %s\n"
-msgstr "No hay llamadas en el fichero %s\n"
+msgid "call %2d returns %s\n"
+msgstr "la llamada %2d devuelve %s\n"
-#: gcov.c:1281
+#: gcov.c:1543
#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "No se puede abrir el fichero de código fuente %s.\n"
+msgid "branch %2d never executed\n"
+msgstr "la ramificacion %2d nunca se ejecuta\n"
-#: gcov.c:1331
+#: gcov.c:1546
#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "No se puede abrir el fichero de salida %s.\n"
+msgid "branch %2d taken %s\n"
+msgstr "ramificación %2d tomada %s\n"
-#: gcov.c:1339
+#: gcov.c:1610
#, c-format
msgid "Creating %s.\n"
msgstr "Creando %s.\n"
-#: gcov.c:1387
+#: gcov.c:1613
#, c-format
-msgid "call %d never executed\n"
-msgstr "la llamada %d nunca se ejecuta\n"
+msgid "Error writing output file %s.\n"
+msgstr "Error al escribir el fichero de salida %s.\n"
-#: gcov.c:1396
+#: gcov.c:1618
#, c-format
-msgid "call %d returns = %s\n"
-msgstr "la llamada %d devuelve = %s\n"
+msgid "Could not open output file %s.\n"
+msgstr "No se puede abrir el fichero de salida %s.\n"
-#: gcov.c:1406
+#: gcse.c:763
#, c-format
-msgid "call %d returns = %s%%\n"
-msgstr "la llamada %d devuelve = %s%%\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE desactivado: %d > 1000 bloques básicos y %d >= 20 bloques borde/básicos"
-#: gcov.c:1413
+#: gcse.c:775
#, c-format
-msgid "branch %d never executed\n"
-msgstr "la ramificacion %d nunca se ejecuta\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE desactivado: %d bloques básicos y %d registros"
-#: gcov.c:1423
+#: genautomata.c:1490
#, c-format
-msgid "branch %d taken = %s\n"
-msgstr "ramificación %d tomada = %s\n"
+msgid "Name `%s' contains quotes"
+msgstr "El nombre `%s' contiene comillas"
-#: gcov.c:1433
+#: genautomata.c:1621
#, c-format
-msgid "branch %d taken = %s%%\n"
-msgstr "ramificación %d tomada = %s%%\n"
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "cadena `%s' inválida en define_cpu_unit"
-#: gcov.c:1444
+#: genautomata.c:1650
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
-msgstr "EOF inesperado mientras se leía el fichero de código fuente %s.\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "cadena `%s' inválida en define_query_cpu_unit"
-#: gcse.c:758
+#: genautomata.c:1682 genautomata.c:1685
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "GCSE desactivado: %d > 1000 bloques básicos y %d >= 20 bloques borde/básicos"
+msgid "invalid string `%s' in define_bypass"
+msgstr "cadena `%s' inválida en define_bypass"
-#: gcse.c:770
+#: genautomata.c:1720
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
-msgstr "GCSE desactivado: %d bloques básicos y %d registros"
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "primera cadena `%s' inválida en exclusion_set"
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "segunda cadena `%s' inválida en exclusion_set"
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "primera cadena `%s' inválida en presence_set"
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "segunda cadena `%s' inválida en presence_set"
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "primera cadena `%s' inválida en absence_set"
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr "segunda cadena `%s' inválida en absence_set"
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "cadena `%s' inválida en define_automaton"
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "opción `%s' inválida en automata_option"
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr "basura después de ) en la reservación `%s'"
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "`%s' inválido en la reservación `%s'"
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr "repetición `%s' <= 1 en la reservación `%s'"
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "no se declaró la unidad `%s' en la exclusión"
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr "`%s' en la exclusión no es una unidad"
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr "la unidad `%s' se excluye a sí misma"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr "las unidades `%s' y `%s' en el conjunto de exclusión pertenece a autómatas diferentes"
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr "la unidad `%s' excluye y requiere la presencia de `%s'"
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr "la unidad `%s' requiere la ausencia y la presencia de `%s'"
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "declaración repetida del autómata `%s'"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr "define_insn_reservation `%s' tiene un tiempo de latencia negativo"
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "`%s' ya se utilizó como un nombre de reservación de insn"
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr "define_bypass `%s - %s' tiene un tiempo de latencia negativo"
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr "el autómata `%s' no se declaró"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr "define_unit `%s' sin un autómata cuando uno está definido"
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "`%s' está declarado como una unidad de cpu"
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "`%s' está declarado como una reservación de cpu"
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "declaración repetida de la unidad `%s'"
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "declaración repetida de la reservación `%s'"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "no hay reservación de insn `%s' previa"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "el mismo bypass `%s - %s' ya está definido"
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "el bypass `%s - %s' ya está definido"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr "el autómata `%s' no se utiliza"
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "unidad o reservación `%s' sin declarar"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr "la unidad `%s' no se utiliza"
-#: graph.c:421 profile.c:950 profile.c:958 toplev.c:1835 toplev.c:4978 f/com.c:14258 java/jcf-parse.c:950 java/jcf-parse.c:1099 java/lex.c:1790 objc/objc-act.c:529
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr "la reservación `%s' no se utiliza"
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "ciclo en la definición de la reservación `%s'"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr "Las unidades `%s' y `%s' deben estar en el mismo autómata"
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr "-split no tiene argumentos."
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr "la opción `-split' aún no se ha implementado\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr "Autómata `%s': Insn `%s' nunca se utilizará"
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr "Insn `%s' nunca se utilizará"
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr "Errores en la descripción DFA"
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "Error al escribir el fichero de descripción DFA %s"
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr "No hay nombre de fichero de entrada."
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, c-format
msgid "can't open %s"
-msgstr "no se puede abrir abrir %s"
+msgstr "no se puede abrir %s"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr "fix_sched_param: parámetro desconocido: %s"
-#: integrate.c:185
+#: integrate.c:174
msgid "function cannot be inline"
msgstr "la función no puede ser inline"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr "la función varargs no puede ser inline"
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr "la función que usa alloca no puede ser inline"
-#: integrate.c:196
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr "la función que usa setjmp no puede ser inline"
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr "la función usa __builtin_eh_return"
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr "la función con funciones anidadas no puede ser inline"
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
-msgstr "la función con direcciones de etiquetas usada en iniciadores no puede ser inline"
+msgstr "la función con direcciones de etiquetas usada en los inicializadores no puede ser inline"
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr "la función es demasiado grande para ser inline"
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr "no hay prototipo, y se usan direcciones de parámetro; no puede ser inline"
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr "no se da soport a funciones inline para este tipo de valor de devoluciòn"
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr "la función con valor de devolución de tamaño variable no puede ser inline"
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr "la función con parámetro de tamaño variable no puede ser inline"
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr "la función con parámetro de unidad transparente no puede ser inline"
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr "la función con salto calculado no puede ser inline"
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr "la función con goto no local no puede ser inline"
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr "la función con atributo(s) específicos del objetivo no puede ser inline"
@@ -5912,55 +6290,56 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "el parámetro `%s' es inválido"
-#: profile.c:429
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr "El análisis de perfil no coincide con la gráfica de flujo de la función %s (¿desactualizado?)"
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr "fichero .da corrupto"
+
+#: profile.c:634
#, c-format
msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr "información de análisis de perfil corrupta: la prueba para %d-%d debería ser %d"
-#: profile.c:975
+#: profile.c:1226
#, c-format
msgid "file %s not found, execution counts assumed to be zero"
msgstr "no se encuentra el fichero %s, se asume que la cuenta de ejecución es cero"
-#: profile.c:1022
-msgid ".da file contents exhausted too early"
-msgstr "el contenido del fichero .da se agotó demasiado pronto"
-
-#: profile.c:1025
-msgid ".da file contents not exhausted"
-msgstr "el contenido del fichero .da no se agotó"
-
-#: protoize.c:599
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr "%s: aborto interno\n"
-#: protoize.c:690
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr "%s: error al escribir al fichero `%s': %s\n"
-#: protoize.c:735
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr "%s: modo de empleo '%s [ -VqfnkN ] [ -i <cadena-i> ] [ nombre_fichero ... ]'\n"
-#: protoize.c:738
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: modo de empleo '%s [ -VqufnkNlgC ] [ -B <nombre_directorio> ] [ nombre_fichero ... ]'\n"
-#: protoize.c:845
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr "%s: aviso: no hay acceso de lectura para el fichero `%s'\n"
-#: protoize.c:853
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr "%s: aviso: no hay acceso de escritura para el fichero `%s'\n"
-#: protoize.c:861
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr "%s: aviso: no hay acceso de escritura para el directorio que contiene a `%s'\n"
@@ -5968,17 +6347,17 @@ msgstr "%s: aviso: no hay acceso de escritura para el directorio que contiene a
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1279
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr "%s: nombre de fichero inválido: %s\n"
-#: protoize.c:1431
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr "%s: %s: no se puede obtener el estado: %s\n"
-#: protoize.c:1452
+#: protoize.c:1395
#, c-format
msgid ""
"\n"
@@ -5987,137 +6366,137 @@ msgstr ""
"\n"
"%s: error fatal: fichero de información auxiliar corrupto en la línea %d\n"
-#: protoize.c:1788
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr "%s:%d: la declaración de la función `%s' toma formas diferentes\n"
-#: protoize.c:2046
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr "%s: compilando `%s'\n"
-#: protoize.c:2069
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr "%s: esperar: %s\n"
-#: protoize.c:2074
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr "%s: el subproceso recibió la señal fatal %d\n"
-#: protoize.c:2082
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr "%s: %s terminó con estado %d\n"
-#: protoize.c:2134
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr "%s: aviso: falta el fichero SYSCALLS `%s'\n"
-#: protoize.c:2143 protoize.c:2172
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr "%s: no se puede leer el fichero de información auxiliar `%s': %s\n"
-#: protoize.c:2188 protoize.c:2216
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr "%s: no se puede obtener el estado del fichero de información auxiliar `%s': %s\n"
-#: protoize.c:2244
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr "%s: no se puede abrir el fichero de información auxiliar `%s' para lectura: %s\n"
-#: protoize.c:2262
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr "%s: error al leer el fichero de información auxiliar `%s': %s\n"
-#: protoize.c:2275
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr "%s: error al cerrar el fichero de información auxiliar `%s': %s\n"
-#: protoize.c:2291
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr "%s: no se puede borrar el fichero de información auxiliar `%s': %s\n"
-#: protoize.c:2373 protoize.c:4375
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr "%s: no se puede borrar el fichero `%s': %s\n"
-#: protoize.c:2452
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr "%s: aviso: no se puede renombrar el fichero `%s' a `%s': %s\n"
-#: protoize.c:2577
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr "%s: definiciones extern de '%s' en conflicto\n"
-#: protoize.c:2581
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr "%s: las declaraciones de '%s' no se convertirán\n"
-#: protoize.c:2583
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: listas de conflictos para '%s' a continuación:\n"
-#: protoize.c:2616
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr "%s: aviso: usando listas formales de %s(%d) para la función `%s'\n"
-#: protoize.c:2656
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: se usa `%s' pero falta en SYSCALLS\n"
-#: protoize.c:2662
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr "%s: %d: aviso: no hay definición extern para `%s'\n"
-#: protoize.c:2693
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr "%s: aviso: no hay definición static para `%s' en el fichero `%s'\n"
-#: protoize.c:2699
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr "%s: definiciones static múltiples de `%s' en el fichero `%s'\n"
-#: protoize.c:2872 protoize.c:2875
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr "%s: %d: aviso: código fuente demasiado confuso\n"
-#: protoize.c:3081
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: aviso: no se convirtió la declaración de la función varargs\n"
-#: protoize.c:3096
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr "%s: no se convirtió la declaración de la función `%s'\n"
-#: protoize.c:3219
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr "%s: aviso: demasiadas listas de parámetros en la declaración de `%s'\n"
-#: protoize.c:3240
+#: protoize.c:3183
#, c-format
msgid ""
"\n"
@@ -6126,17 +6505,17 @@ msgstr ""
"\n"
"%s: aviso: muy pocas listas de parámetros en la declaración de `%s'\n"
-#: protoize.c:3338
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr "%s: %d: aviso: se encontró `%s' pero se esperaba `%s'\n"
-#: protoize.c:3516
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr "%s: no se insertó la declaración local para la función `%s'\n"
-#: protoize.c:3543
+#: protoize.c:3486
#, c-format
msgid ""
"\n"
@@ -6145,64 +6524,64 @@ msgstr ""
"\n"
"%s: %d: aviso: no se puede agregar la declaración de `%s' en la llamada a macro\n"
-#: protoize.c:3617
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr "%s: no se insertaron las declaraciones globales para el fichero `%s'\n"
-#: protoize.c:3708 protoize.c:3738
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr "%s: no se convirtió la definición de la función `%s'\n"
-#: protoize.c:3727
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: aviso: no se convirtió la definición de %s\n"
-#: protoize.c:4057
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr "%s: se encontró la definición de `%s' en %s(%d)\n"
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4073
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr "%s: %d: aviso: `%s' fue excluído por el preprocesamiento\n"
-#: protoize.c:4076
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr "%s: no se convirtió la definición de la función\n"
-#: protoize.c:4135
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr "%s: no se convirtió `%s'\n"
-#: protoize.c:4143
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr "%s: se podría convertir el fichero `%s'\n"
-#: protoize.c:4146
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr "%s: convirtiendo el fichero `%s'\n"
-#: protoize.c:4156
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr "%s: no se puede obtener el estado del fichero `%s': %s\n"
-#: protoize.c:4198
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr "%s: no se puede abrir el fichero `%s' para lectura: %s\n"
-#: protoize.c:4213
+#: protoize.c:4156
#, c-format
msgid ""
"\n"
@@ -6211,421 +6590,400 @@ msgstr ""
"\n"
"%s: error al leer el fichero de entrada `%s': %s\n"
-#: protoize.c:4247
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr "%s: no se puede crear/abrir el fichero limpio `%s': %s\n"
-#: protoize.c:4352
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr "%s: aviso: el fichero `%s' ya había sido guardado en `%s'\n"
-#: protoize.c:4360
+#: protoize.c:4303
#, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "%s: no se puede enlazar el fichero `%s' a `%s': %s\n"
-#: protoize.c:4390
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr "%s: no se puede crear/abrir el fichero de salida `%s': %s\n"
-#: protoize.c:4423
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr "%s: no se puede cambiar el modo del fichero `%s': %s\n"
-#: protoize.c:4598
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr "%s: no se puede obtener el directorio de trabajo: %s\n"
-#: protoize.c:4696
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: los nombres de fichero de entrada deben tener sufijos .c: %s\n"
-#: real.c:824 real.c:1001
-msgid "conversion from NaN to int"
-msgstr "conversión de NaN a int"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr "No se puede encontrar un coloreado.\n"
-#: real.c:847
-msgid "conversion from NaN to unsigned int"
-msgstr "conversión de NaNa a unsigned int"
-
-#: real.c:2730
-msgid "floating point overflow"
-msgstr "desbordamiento de coma flotante"
-
-#: real.c:4395 real.c:6675 real.c:6756
-msgid "overflow on truncation to integer"
-msgstr "desbordamiento en truncado a entero"
-
-#: real.c:4467
-msgid "overflow on truncation to unsigned integer"
-msgstr "desbordamiento en el truncado a unsigned integer"
-
-#: real.c:5812
-#, c-format
-msgid "%s: argument domain error"
-msgstr "%s: error de dominio del argumento"
-
-#: real.c:5813
-#, c-format
-msgid "%s: function singularity"
-msgstr "%s: singularidad de la función"
-
-#: real.c:5814
-#, c-format
-msgid "%s: overflow range error"
-msgstr "%s: desbordamiento del error de rango"
-
-#: real.c:5815
-#, c-format
-msgid "%s: underflow range error"
-msgstr "%s: desbordamiento por debajo del error de rango"
-
-#: real.c:5816
-#, c-format
-msgid "%s: total loss of precision"
-msgstr "%s: pérdida total de precisión"
-
-#: real.c:5817
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr "%s: pérdida parcial de precisión"
-
-#: real.c:5818
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr "%s: NaN - produciendo una operación"
-
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "la restricción de salida %d debe especificar un solo registro"
# ¿Cómo traducir 'clobber'? cfuga
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr "la restricción de salida %d no puede ser usada junto con el ataque \"%s\""
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr "los registros de salida deben ser agrupados en la parte superior de la pila"
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr "los registros extraídos implícitamente deben ser agrupados en la parte superior de la pila"
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr "el operando de salida %d debe usar la restricción `&'"
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "no se puede usar '%s' como un registro %s"
-#: regclass.c:793 config/ia64/ia64.c:3840 config/ia64/ia64.c:3847
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, c-format
msgid "unknown register name: %s"
msgstr "nombre de registro desconocido: %s"
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr "la variable de registro global sigue a una definiciónd de función"
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr "nombre de registro usado por dos variables de registro globales"
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr "registro de llamada alterada usado para una variable de registro global"
-#: regrename.c:1845
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr "validate_value_data: [%u] next_regno erróneo para la cadena vacía (%u)"
-#: regrename.c:1857
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: Ciclo en la cadena regno (%u)"
-#: regrename.c:1860
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno erróneo (%u)"
-#: regrename.c:1872
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr "validate_value_data: [%u] Registro no vacío en la cadena (%s %u %i)"
-#: reload.c:1208
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr "no se puede recargar operandos constantes enteros en `asm'"
-#: reload.c:1230
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr "es imposible inicio la restricción de registros en `asm'"
-#: reload.c:3389
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr "se usó la restricción `&' sin una clase de registro"
-#: reload.c:3557
+#: reload.c:3629
msgid "unable to generate reloads for:"
msgstr "no se pueden generar recargas para:"
-#: reload.c:3558 reload.c:3772
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr "restricciones de operandos inconsistentes en un `asm'"
-#: reload1.c:1247
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr "el tamaño del marco es demasiado grande para una revisión confiable de la pila"
-#: reload1.c:1250
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr "intente reducir el número de variables locales"
-#: reload1.c:1902
+#: reload1.c:1909
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr "no se puede encontrar un registro en la clase `%s' mientras se recarga `asm'"
-#: reload1.c:1906
+#: reload1.c:1913
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr "no se puede encontrar un registro para vaciar la clase `%s'"
-#: reload1.c:1908
+#: reload1.c:1915
msgid "this is the insn:"
msgstr "este es el insn:"
-#: reload1.c:3924
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr "el operando `asm' requiere una recarga imposible"
#. It's the compiler's fault.
-#: reload1.c:5040
+#: reload1.c:5052
msgid "could not find a spill register"
msgstr "no se puede encontrar un registro de vaciado"
-#: reload1.c:5045
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr "la restricción del operando `asm' es incompatible con el tamaño del operando"
#. It's the compiler's fault.
-#: reload1.c:6639
+#: reload1.c:6679
msgid "VOIDmode on an output"
msgstr "modoVOID en una salida"
-#: reload1.c:6640
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr "el operando de salida es constante en `asm'"
-#: rtl-error.c:139
+#: rtl-error.c:140
msgid "unrecognizable insn:"
msgstr "insn no reconocible:"
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr "insn no satisface sus restricciones:"
-#: rtl.c:627
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr "Revisión RTL: acceso de elt %d de `%s' con el último elt %d en %s, en %s:%d"
-#: rtl.c:642
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "Revisión RTL: se esperaba el tipo elt %d '%c', se tiene '%c' (rtx %s) en %s, en %s:%d"
-#: rtl.c:658
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "Revisión RTL: se esperaba el tipo elt %d '%c' ó '%c', se tiene '%c' (rtx %s) en %s, en%s:%d"
-#: rtl.c:671
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr "Revisión RTL: se esperaba el código `%s', se tiene `%s' en %s, en %s:%d"
-#: rtl.c:685
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr "Revisión RTL: se esperaba el código `%s' ó ``%s', se tiene `%s' en %s, en %s:%d"
-#: rtl.c:700
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr "Revisión RTL: acceso de elt %d de vector con el último elt %d en %s, en %s:%d"
-#: stmt.c:927
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "Revisión de opción RTL: se usó %s con el código rtx inesperado `%s' en %s, en %s:%d"
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr "el salto a `%s' salta de forma inválida a un contorno de unión"
-#: stmt.c:1163 stmt.c:3755
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr "se usó antes la etiqueta `%s' que contenía un contorno de unión"
-#: stmt.c:1343
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr "la restricción de operando de salida carece de `='"
-#: stmt.c:1358
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr "la restricción de salida `%c' para el operando %d no está al principio"
-#: stmt.c:1380
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr "la restriccion de operando contiene '+' ó '=' en una posición ilegal"
-#: stmt.c:1386 stmt.c:1486
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr "se usó la restricción `%%' con el último operando"
-#: stmt.c:1405
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr "la restricción coincidente no es válida en el operando de salida"
-#: stmt.c:1477
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr "la restrcción de operando de entrada contiene `%c'"
-#: stmt.c:1517
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr "la restricción de coincidencia hace referencia a un número de operando no válido"
-#: stmt.c:1549
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr "puntuación inválida `%c' en la restricción"
-#: stmt.c:1645
+# FIXME: encontrar una mejor traducción para `clobber' en este contexto. cfuga
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "los calificadores asm para la variable `%s' generan conflicto con la liasta de agrupación asm"
+
+#: stmt.c:1540
#, c-format
msgid "unknown register name `%s' in `asm'"
msgstr "nombre de registro `%s' desconocido en `asm'"
-#: stmt.c:1689
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr "más de %d operandos en `asm'"
-#: stmt.c:1748
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr "el número de salida %d no es directamente direccionable"
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1817 stmt.c:1846
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr "el operando asm %d probablemente no coincide con las restricciones"
-#: stmt.c:1992
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr "la agrupación asm causa conflictos con el operando de salida"
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr "la agrupación asm causa conflictos con el operando de entrada"
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr "demasiadas alternativas en `asm'"
-#: stmt.c:2004
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr "las restricciones de operandos para `asm' difieren en el número de alternativas"
-#: stmt.c:2057
+#: stmt.c:1994
#, c-format
msgid "duplicate asm operand name '%s'"
msgstr "nombre `%s' de operando asm duplicado"
-#: stmt.c:2144
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr "falta la llave final para el operando nombrado"
-#: stmt.c:2172
+#: stmt.c:2109
#, c-format
msgid "undefined named operand '%s'"
msgstr "operador '%s' nombrado sin definir"
-#: stmt.c:3692
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr "variable `%s' sin uso"
-#: stmt.c:5167
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr "el valor de enumeración `%s' no se maneja en un switch"
-#: stmt.c:5193 stmt.c:5213
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr "el valor de case `%ld' no es un tipo enumerado"
-#: stmt.c:5196 stmt.c:5216
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr "el valor de case `%ld' no es un tipo enumerado `%s'"
-#: stor-layout.c:173
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr "falta el case por defecto para un switch"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
-msgstr "el tamaño del tipo no puede ser evaluado explícitamente"
+msgstr "el tamaño del tipo no se puede evaluar explícitamente"
-#: stor-layout.c:175
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr "tipo de tamaño variable declarado fuera de cualquier función"
-#: stor-layout.c:456
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr "el tamaño de `%s' es de %d bytes"
-#: stor-layout.c:458
+#: stor-layout.c:489
#, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "el tamaño de `%s' es mayor que %d bytes"
-#: stor-layout.c:856 stor-layout.c:1157
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr "el atributo packed causa una alineación ineficiente para `%s'"
-#: stor-layout.c:858 stor-layout.c:1159
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr "no es necesario el atributo packed para `%s'"
-#: stor-layout.c:873
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr "estructura de relleno para alinear `%s'"
-#: stor-layout.c:1121
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr "tamaño de la estructura de relleno para los límites de alineación"
-#: stor-layout.c:1164
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
-msgstr "el atributo packed causa uan alineación ineficiente"
+msgstr "el atributo packed causa una alineación ineficiente"
-#: stor-layout.c:1166
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr "no es necesario el atributo packed"
-#: timevar.c:448
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr "no se puede hacer timevar_pop '%s' cuando el tope de la pila timevars es '%s'"
+
+#: timevar.c:453
msgid ""
"\n"
"Execution times (seconds)\n"
@@ -6634,760 +6992,803 @@ msgstr ""
"Tiempos de ejecución (segundos)\n"
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr " TOTAL :"
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "tiempo en %s: %ld.%06ld (%ld%%)\n"
-#: tlink.c:428
+#: tlink.c:399
#, c-format
msgid "collect: reading %s\n"
msgstr "collect: leyendo %s\n"
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr "collect: recompilando %s\n"
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr "collect: alterando %s en %s\n"
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr "collect: reenlazando\n"
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ld devolvió el estado de salida %d"
-#: toplev.c:895
+#: toplev.c:920
msgid "Generate debugging info in default format"
-msgstr "Generar información de depuración en el formato por omisión"
+msgstr "Generar información de depuración en el formato por defecto"
-#: toplev.c:896
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
-msgstr "Generar información de depuración en el formato extendido por omisión"
+msgstr "Generar información de depuración en el formato extendido por defecto"
-#: toplev.c:898
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr "Generar información de depuración en el formato STABS"
-#: toplev.c:899
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr "Generar información de depuración en el formato STABS extendido"
-#: toplev.c:902
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr "Generar información de depuración en el formato DWARF-1"
-#: toplev.c:904
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr "Generar información de depuración en el formato DWARF-1 extendido"
-#: toplev.c:907
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr "Generar información de depuración en el formato DWARF-2"
-#: toplev.c:910
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr "Generar información de depuración en el formato XCOFF"
-#: toplev.c:911
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr "Generar información de depuración en el formato XCOFF extendido"
-#: toplev.c:914
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr "Generar información de depuración en el formato XCOFF"
-#: toplev.c:917
+#: toplev.c:942
msgid "Generate VMS format debug info"
msgstr "Generar información de depuración en el formato VMS"
-#: toplev.c:961
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr "Realizar la eliminación de DWARF2 duplicados"
-#: toplev.c:963
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr "No guardar floats en registros"
-#: toplev.c:965
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
-msgstr "Considerar todas las referencias a memoria a través de apuntadores como volatile"
+msgstr "Considerar todas las referencias a memoria a través de punteros como volatile"
-#: toplev.c:967
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr "Considerar todas las referencias a datos globales como volatile"
-#: toplev.c:969
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr "Considerar todas las referencias a datos static como volatile"
-#: toplev.c:971
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr "Postergar la extracción de argumentos de funciones de la pila hasta más tarde"
-#: toplev.c:973
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr "Cuando sea posible no generar marcos de pila"
-#: toplev.c:975
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr "Optimizar las llamadas recursivas hermanadas y de extremo"
-#: toplev.c:977
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr "Realizar la formación de superbloques a través de la duplicación de colas"
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr "Cuando se esté ejecutando CSE, seguir a los saltos a sus objetivos"
-#: toplev.c:979
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr "Cuando se esté ejecutando CSE, seguir a los saltos condicionales"
-#: toplev.c:981
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr "Realizar un número de optimizaciones menores y costosas"
-#: toplev.c:983
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
msgstr "Realizar optimizaciones de hilado de saltos"
-#: toplev.c:985
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr "Realizar optimizaciones de reducción de fuerza"
-#: toplev.c:987
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr "Realizar el desenrollamiento del ciclo cuando se conoce la cuenta de iteración"
-#: toplev.c:989
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr "Realizar el desenrollamiento del ciclo para todos los ciclos"
-#: toplev.c:991
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr "Generar instrucciones de precargado, si están disponibles, para matrices en ciclos"
-#: toplev.c:993
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr "Forzar que todas las computaciones invariantes del ciclo sean fuera del ciclo"
-#: toplev.c:995
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr "Reducir la fuerza de todas las variables generales de inducción de ciclo"
-#: toplev.c:997
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr "Guardar las cadenas en la sección de datos modificables"
-#: toplev.c:999
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr "Activar las optimizaciones de mirilla específicas de la máquina"
-#: toplev.c:1001
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr "Copiar los operandos de memoria en registros antes de usarlos"
-#: toplev.c:1003
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr "Copiar las constantes de direcciones de memoria en registros antes de usarlos"
-#: toplev.c:1005
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr "Permitir que las direcciones de las funciones se conservern en registros"
-#: toplev.c:1007
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr "Integrar las funciones simples en sus invocadores"
-#: toplev.c:1009
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr "Generar códio para las funciones aún si están completamente inline"
-#: toplev.c:1011
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr "Poner atención a la palabra clave 'inline'"
-#: toplev.c:1013
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr "Emitir variables static const aún si no se usan"
-#: toplev.c:1015
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr "Buscar errores de sintaxis, y entonces detenerse"
-#: toplev.c:1017
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr "Marcar datos como compartidos en lugar de privados"
-#: toplev.c:1019
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr "Permitir guardar registros alrededor de llamadas de función"
-#: toplev.c:1021
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr "Devolver los agregados 'short' en memoria, no en registros"
-#: toplev.c:1023
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr "Devolver los agregados 'short' en registros"
-#: toplev.c:1025
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Intentar rellenar las ranuras de retraso de las instrucciones de ramificación"
-#: toplev.c:1027
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr "Realizar la eliminación de subexpresiones comunes globales"
-#: toplev.c:1029
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr "Realizar el movimiento de la carga mejorada durante la eliminación de subexpresiones globales"
-#: toplev.c:1031
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr "Realizar el movimiento de guardado después de la eliminación de subexpresiones globales"
-#: toplev.c:1033
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr "Realizar las optimizaciones de ciclo"
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr "Realizar optimizaciones de saltos cruzados"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "Realizar la conversión de saltos condicionales a equivalentes sin ramificación"
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Realizar la conversión de saltos condicionales a ejecución condicional"
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr "Ejecutar un paso CSE después de las optimizaciones de ciclos"
-#: toplev.c:1035
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr "Ejecutar el optimizador de ciclos dos veces"
-#: toplev.c:1037
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
-msgstr "Borrar las revisiones de apuntadores nulos sin uso"
+msgstr "Borrar las revisiones de punteros nulos sin uso"
-#: toplev.c:1039
-msgid "Pretend that host and target use the same FP format"
-msgstr "Pretender que el anfitrión y el objetivo utilizan el mismo formato de FP"
-
-#: toplev.c:1041
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr "Recalendarizar las instrucciones antes del alojamiento de registros"
-#: toplev.c:1043
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr "Recalendarizar las instrucciones después del alojamiento de registros"
-#: toplev.c:1045
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr "Activar la calendarización entre bloques básicos"
-#: toplev.c:1047
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr "Permitir el movimiento especulativo de ninguna carga"
-#: toplev.c:1049
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr "Permitir el movimiento especulativo de algunas cargas"
-#: toplev.c:1051
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr "Permitir el movimiento especulativo de más cargas"
-#: toplev.c:1053
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr "Reemplazar add,compare,branch con branch en la cuenta de registros"
-#: toplev.c:1055
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr "Generar código independiente de posición, si es posible"
-#: toplev.c:1058
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr "Activar el manejo de excepciones"
-#: toplev.c:1060
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr "Sólo generar tablas de desenredo para manejo de excepciones"
-#: toplev.c:1062
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr "Generar tablas de desenredo exactamente en cada límite de instrucción"
-#: toplev.c:1064
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr "Soporte para excepciones síncronas no de llamadas"
-#: toplev.c:1066
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr "Insertar código de análisis de perfil basado en el programa arc"
-#: toplev.c:1068
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr "Crear ficheros de datos necesarios para gcov"
-#: toplev.c:1070
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr "Usar la información de análisis de perfil para las probabilidades de ramificación"
-#: toplev.c:1072
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr "Activar el código básico de análisis de perfil del programa"
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr "Reordenar los bloques básicos para mejorar la ubicación del código"
-#: toplev.c:1074
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr "Reordenar las funciones para mejorar la ubicación del código"
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr "Hacer el paso de optimización de renombrado de registros"
-#: toplev.c:1076
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr "Hacer el paso de optimización de copia-propagación de registros"
-#: toplev.c:1078
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
-msgstr "No poner globales sin iniciar en la sección común"
+msgstr "No poner globales sin inicializar en la sección común"
-#: toplev.c:1080
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr "No generar directivas .size"
-#: toplev.c:1082
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr "colocar cada función en su propia sección"
-#: toplev.c:1084
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr "colocar los elementos de datos en su propia sección"
-#: toplev.c:1086
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr "Agregar comentarios extra a la salida de ensamblador"
-#: toplev.c:1088
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
-msgstr "Obtener iniciadores globales con formato para ld de GNU"
+msgstr "Obtener inicializadores globales con formato para ld de GNU"
-#: toplev.c:1090
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr "Permite una optimización de movimiento de registros"
-#: toplev.c:1092
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr "Hace el paso completo de optimización de movimiento de registros"
-#: toplev.c:1094
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros"
-#: toplev.c:1096
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr "Inserta código de revisión de la pila en el programa"
-#: toplev.c:1098
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr "Especifica que los argumentos pueden ser alias de cada otro y de los globales"
-#: toplev.c:1100
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr "Asumir que los argumentos pueden ser alias de globales pero no de cada otro"
-#: toplev.c:1102
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr "Asumir que los argumentos no pueden ser alias de globales o de cada otro"
-#: toplev.c:1104
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr "Asumir que se aplican las reglas estrictas de alias"
-#: toplev.c:1106
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr "Alinear el inicio de los ciclos"
-#: toplev.c:1108
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr "Alinear las etiquetas que solamente se alcanzan saltando"
-#: toplev.c:1110
+#: toplev.c:1142
msgid "Align all labels"
msgstr "Alinear todas las etiquetas"
-#: toplev.c:1112
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr "Alinear el inicio de las funciones"
-#: toplev.c:1114
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr "Intentar mezclar constantes idénticas a través de las unidades de compilación"
-#: toplev.c:1116
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr "Intentar mezclar constantes idénticas y variables constantes"
-#: toplev.c:1118
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "Suprimir la salida de notas de números de instrucción y números de linea en los volcados de depuración"
-#: toplev.c:1120
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr "Instrumentar funciones entrada/salida con llamadas de análisis de perfil"
-#: toplev.c:1122
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr "Poner datos inicializados a cero en la sección bss"
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr "Activar las optimizaciones SSA"
-#: toplev.c:1124
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr "Activar la propagación de las constantes condicionales SSA"
-#: toplev.c:1126
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr "Activar la eliminación agresiva de código muerto SSA"
-#: toplev.c:1128
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr "Los símbolos externos tienen un subrayado inicial"
-#: toplev.c:1130
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr "Procesar directivas #ident"
-#: toplev.c:1132
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr "Activa una ejecución de paso de mirilla rtl antes de sched2"
-#: toplev.c:1134
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr "Asumir que no se generan NaNs ó +-Infs"
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr "Activar la predicción de probabilidades de ramificación"
-#: toplev.c:1136
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr "Establecer errno después de las funciones matemáticas internas"
-#: toplev.c:1138
+#: toplev.c:1174
msgid "Floating-point operations can trap"
msgstr "Las operaciones de coma flotante pueden capturar"
-#: toplev.c:1140
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr "Permitir optimizaciones matemáticas que pueden violar los estándares IEEE ó ANSI"
-#: toplev.c:1142
-msgid "Compile pointers as triples: value, base & end"
-msgstr "Compilar los apuntadores como triples: valor, base y fin"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "Desactivar optimizaciones observables con IEEE señalando NaNs"
-#: toplev.c:1144
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
-msgstr "Generar código para revisar los límites antes de deferencias apuntadores y matrices"
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Generar código para revisar los límites antes de indizar matrices"
-#: toplev.c:1146
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr "Convertir constantes de coma flotante a constantes de precisión simple"
-#: toplev.c:1148
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr "Reportar el tiempo tomado por cada paso del compilador al final de la ejecución"
-#: toplev.c:1150
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr "Reportar el alojamiento en memoria permanente al final de la ejecución"
-#: toplev.c:1152
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr "Atrapar desbordamientos signed en adición / sustracción / multiplicación"
-#: toplev.c:1169
-msgid "Compile just for ISO C89"
-msgstr "Compilar sólo para ISO C89"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr "Utilizar coloración de grafos para el alojamiento de registros."
-#: toplev.c:1171
-msgid "Do not promote floats to double if using -traditional"
-msgstr "No promover floats a double si se usa -traditional"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr "Compilar sólo para ISO C90"
-#: toplev.c:1173
+#: toplev.c:1209
msgid "Determine language standard"
msgstr "Determinar el estándard de lenguaje"
-#: toplev.c:1177
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
-msgstr "Hacer por omisión unsigned los campos de bit"
+msgstr "Hacer por defecto unsigned los campos de bit"
-#: toplev.c:1181
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
-msgstr "Hacer que 'char' sea signed por omisión"
+msgstr "Hacer que 'char' sea signed por defecto"
-#: toplev.c:1183
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
-msgstr "Hacer que 'char' sea unsigned por omisión"
-
-#: toplev.c:1189
-msgid "Attempt to support traditional K&R style C"
-msgstr "Intentar dar soporte a C estilo K&R tradicional"
+msgstr "Hacer que 'char' sea unsigned por defecto"
-#: toplev.c:1195
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr "No reconocer la palabra clave 'asm'"
-#: toplev.c:1198
+#: toplev.c:1228
msgid "Do not recognize any built in functions"
msgstr "No reconocer ninguna función interna"
-#: toplev.c:1200
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr "Asumir el ambiente normal de ejecución C"
-#: toplev.c:1203
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
-msgstr "Asumir que podrían no existir las bibliotecas estándard y main"
+msgstr "Asumir que pueden no existir las bibliotecas estándard y main"
-#: toplev.c:1206
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr "Permitir tipos diferentes como argumentos del operador ?"
-#: toplev.c:1209
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr "Permitir el uso de $ dentro de los identificadores"
-#: toplev.c:1214
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr "Usar el mismo tamaño para double que para float"
-#: toplev.c:1217
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr "Usar el entero adecuado más pequeño para contener enumerados"
-#: toplev.c:1220
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr "Hacer de lado el tipo debajo de wchar_t por `unsigned short'"
-#: toplev.c:1224
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr "Activar casi todos los mensajes de aviso"
-#: toplev.c:1226
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
msgstr "Avisar por funciones de conversión a tipos incompatibles"
-#: toplev.c:1230
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
-msgstr "Avisar por funciones que podrían ser candidatas para atributos de formato"
+msgstr "Avisar por funciones que pueden ser candidatas para atributos de formato"
-#: toplev.c:1233
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr "Avisar sobre conversiones que descartan calificadores"
-#: toplev.c:1236
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr "Avisar sobre subíndices cuyo tipo es 'char'"
-#: toplev.c:1239 toplev.c:1242
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr "Avisar si se detectan comentarios anidados"
-#: toplev.c:1245
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr "Avisar sobre la posibilidad de conversión de tipos confusas"
-#: toplev.c:1248
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "No avisar sobre la división entera por cero en tiempo de compilación"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Avisar sobre la equidad de pruebas de números de coma flotante"
+
+#: toplev.c:1283
msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr "Avisar sobre anomalías de formato de printf/scanf/strftime/strfmon"
-#: toplev.c:1252
-msgid "Don't warn about strftime formats yielding 2 digit years"
-msgstr "No avisar sobre formatos de strftime que producen dos dígitos para el año"
-
-#: toplev.c:1255
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr "No avisar sobre demasiados argumentos para las funciones de formato"
-#: toplev.c:1257
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr "Avisar sobre cadenas de formato que no son cadenas literales"
-#: toplev.c:1260
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr "Avisar sobre posibles problemas de seguridad con funciones de formato"
-#: toplev.c:1263
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "No avisar sobre formatos de strftime que producen dos dígitos para el año"
+
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr "Avisar sobre la declaración implícita de funciones"
-#: toplev.c:1267
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr "Avisar cuando una declaración no especifique un tipo"
-#: toplev.c:1272
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr "Avisar sobre el uso de la directiva #import"
-#: toplev.c:1276
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr "No avisar sobre el uso de 'long long' cuando se use -pedantic"
-#: toplev.c:1278
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr "Avisar sobre declaraciones sospechosas de main"
-#: toplev.c:1281
+#: toplev.c:1316
msgid "Warn about possibly missing braces around initializers"
-msgstr "Avisar sobre posibles llaves faltantes alrededor de iniciadores"
+msgstr "Avisar sobre posibles llaves faltantes alrededor de los inicializadores"
-#: toplev.c:1284
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr "Avisar sobre funciones globales sin declaraciones previas"
-#: toplev.c:1287
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr "Avisar sobre funciones globales sin prototipos"
-#: toplev.c:1290
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr "Avisar sobre el uso de literales multicaracteres"
-#: toplev.c:1293
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr "Avisar sobre externs que no están en el nivel del alcance del fichero"
-#: toplev.c:1296
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr "Avisar sobre posibles paréntesis faltantes"
-#: toplev.c:1299
-msgid "Warn about possible violations of sequence point rules"
-msgstr "Avisar sobre posibles violaciones a las reglas de secuencia de punto"
-
-#: toplev.c:1302
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
-msgstr "Avisar sobre la aritmética de apuntadores de funciones"
+msgstr "Avisar sobre la aritmética de punteros de funciones"
-#: toplev.c:1305
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr "Avisar sobre declaraciones múltiples del mismo objeto"
-#: toplev.c:1308
-msgid "Warn about signed/unsigned comparisons"
-msgstr "Avisar sobre comparaciones signed/unsigned"
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "Avisar cuando el tipo de devolución por defecto de una función cambia a int"
-#: toplev.c:1311
-msgid "Warn about testing equality of floating point numbers"
-msgstr "Avisar sobre la equidad de pruebas de números de coma flotante"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Avisar sobre posibles violaciones a las reglas de secuencia de punto"
-#: toplev.c:1314
-msgid "Warn about unrecognized pragmas"
-msgstr "Avisar sobre pragmas no reconocidos"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Avisar sobre comparaciones signed/unsigned"
-#: toplev.c:1317
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr "Avisar sobre declaraciones de función sin prototipo"
-#: toplev.c:1320
-msgid "Warn about constructs whose meaning change in ISO C"
-msgstr "Avisar sobre construcciones cuyo significado cambia en ISO C"
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Avisar sobre construcciones cuyos significados cambian en ISO C"
-#: toplev.c:1323
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr "Avisar si se encuentran trigrafos"
-#: toplev.c:1328
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "Avisar sobre pragmas no reconocidos"
+
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr "Marcar las cadenas como 'const char *'"
-#: toplev.c:1458
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr "Avisar cuando no se use una función"
-#: toplev.c:1460
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr "Avisar cuando no se use una etiqueta"
-#: toplev.c:1462
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr "Avisar cuando no se use un parámetro de una función"
-#: toplev.c:1464
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr "Avisar cuando no se use una variable"
-#: toplev.c:1466
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr "Avisar cuando no se use un valor de una expresión"
-#: toplev.c:1468
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr "No suprimir los avisos de los encabezados del sistema"
-#: toplev.c:1470
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr "Tratar todos los avisos como errores"
-#: toplev.c:1472
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
-msgstr "Avisar cuando una variable local obscurece otra"
+msgstr "Avisar cuando una variable local oscurece otra"
+
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Avisar sobre switches enumerados, sin valor por defecto, que carezcan de un case"
-#: toplev.c:1474
-msgid "Warn about enumerated switches missing a specific case"
-msgstr "Avisar sobre switches enumerados que carezcan de un case específico"
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Avisar sobre switches enumerados que carezcan de un case por defecto"
-#: toplev.c:1476
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Avisar sobre todos los switches enumerados que carezcan de un case específico"
+
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr "Avisar sobre la devolución de estructuras, unions o matrices"
-#: toplev.c:1478
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
-msgstr "Avisar sobre conversión de apuntadores que incremente la alineación"
+msgstr "Avisar sobre conversión de punteros que incremente la alineación"
-#: toplev.c:1480
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr "Avisar sobre código que nunca se ejecutará"
-#: toplev.c:1482
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
-msgstr "Avisar sobre variables automáticas sin iniciar"
+msgstr "Avisar sobre variables automáticas sin inicializar"
-#: toplev.c:1484
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr "Avisar cuando una función inline no puede ser inline"
-#: toplev.c:1486
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr "Avisar cuando el atributo packed no tiene efecto en la disposición de un struct"
-#: toplev.c:1488
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr "Avisar cuando se requiere relleno para alinear a los miembros de un struct"
-#: toplev.c:1490
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr "Avisar cuando se desactivó un paso de optimización"
-#: toplev.c:1492
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
-msgstr "Avisar sobre usos de declaraciones __attribute__((deprecated))"
+msgstr "Avisar sobre usos de declaraciones __attribute__((obsoleto))"
-#: toplev.c:1494
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
-msgstr "Avisar sobre funciones que podrían ser candidatas para el atributo noreturn"
+msgstr "Avisar sobre funciones que pueden ser candidatas para el atributo noreturn"
+
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Avisar sobre código que pueda romper las reglas estrictas de aliases"
-#: toplev.c:1565 toplev.c:4379 tradcpp.c:792
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, c-format
msgid "invalid option `%s'"
msgstr "opción `%s' inválida"
-#: toplev.c:1711
-#, c-format
-msgid "internal error: %s"
-msgstr "error interno: %s"
-
-#: toplev.c:2024
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr "se usa `%s' pero nunca se definió"
-#: toplev.c:2027
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr "`%s' declarado `static' pero nunca se definió"
-#: toplev.c:2049
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr "se definió `%s' pero no se usó"
@@ -7397,84 +7798,87 @@ msgstr "se definió `%s' pero no se usó"
msgid "invalid register name `%s' for register variable"
msgstr "el nombre de registro `%s' no es válido para variable de registro"
-#: toplev.c:3279
-#, c-format
-msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "salto cruzado desactivado: %d > 1000 bloques básicos y %d >= 20 bloques borde/básicos"
-
-#: toplev.c:3590
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr " -ffixed-<registro> Marca el <registro> como no disponible para el compilador\n"
-#: toplev.c:3591
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr " -fcall-used-<registro> Marca el <registro> como corrupto para llamadas de función\n"
-#: toplev.c:3592
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr " -fcall-saved-<registro> Marcar el <registro> como preservado entre funciones\n"
-#: toplev.c:3593
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr " -finline-limit=<número> Limita el tamaño de funciones inline a <número>\n"
-#: toplev.c:3594
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr " -fmessage-length=<número> Limita la longitud de los mensajes de diagnóstico a <número> caracteres por línea. 0 suprime el corte de línea\n"
-#: toplev.c:3595
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr " -fdiagnostics-show-location=[once | every-line] Indica que tan seguido se debe emitir la información de ubicación del código, como prefijo, al inicio de los diagnósticos cuando está activado el corte de línea\n"
-#: toplev.c:3606
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indica el modelo de generación de código por defecto para almacenamiento thread-local\n"
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
msgid " -O[number] Set optimization level to [number]\n"
msgstr " -O[número] Establecer el nivel de optimización a [número]\n"
-#: toplev.c:3607
+#: toplev.c:3719
msgid " -Os Optimize for space rather than speed\n"
msgstr " -Os Optimizar para espacio en lugar de velocidad\n"
-#: toplev.c:3619
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
msgstr " -pedantic Activar los avisos necesarios para cumplir estrictamente con ISO C\n"
-#: toplev.c:3620
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr " -pedantic-errors Como -pedantic excepto que se producen errores\n"
-#: toplev.c:3621
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr " -w Suprimir avisos\n"
-#: toplev.c:3622
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr " -W Activar avisos extra\n"
-#: toplev.c:3633
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr " -Wunused Activar avisos sin usar\n"
-#: toplev.c:3634
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr " -Wlarger-than-<número> Avisar si un objeto es más grande que <número> bytes\n"
-#: toplev.c:3635
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr " -p Activar el análisis de perfil de funciones\n"
-#: toplev.c:3637
-msgid " -a Enable block profiling \n"
-msgstr " -a Activar el análisis de perfil de bloques\n"
-
-#: toplev.c:3640
-msgid " -ax Enable jump profiling \n"
-msgstr " -ax Activar el análisis de perfil de saltos\n"
-
-#: toplev.c:3642
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr " -o <fichero> Ubicar la salida en el <fichero>\n"
-#: toplev.c:3643
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
@@ -7482,35 +7886,35 @@ msgstr ""
" -G <número> Colocar los datos globales y estáticos más pequeños que <número>\n"
" bytes en una sección especial (en algunos objetivos)\n"
-#: toplev.c:3654
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr " -aux-info <fichero> Emitir la información de declaraciones en el <fichero>\n"
-#: toplev.c:3655
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr " -quiet No mostrar las funciones compiladas o el tiempo transcurrido\n"
-#: toplev.c:3656
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr " -version Muestra la versión del compilador\n"
-#: toplev.c:3657
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr " -d[letras] Activa los volcados desde pasos específicos del compilador\n"
-#: toplev.c:3658
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr " -dumpbase <fichero> Nombre base a usar para los volcados desde pasos específicos\n"
-#: toplev.c:3660
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr " -fsched-verbose=<número> Establece el nivel detalle del calendarizador\n"
-#: toplev.c:3662
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr " --help Muestra esta información\n"
-#: toplev.c:3677
+#: toplev.c:3783
msgid ""
"\n"
"Language specific options:\n"
@@ -7518,12 +7922,12 @@ msgstr ""
"\n"
"Opciones específicas del lenguaje:\n"
-#: toplev.c:3689
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr " %-23.23s [sin documentar]\n"
-#: toplev.c:3697 toplev.c:3711
+#: toplev.c:3803 toplev.c:3817
#, c-format
msgid ""
"\n"
@@ -7532,7 +7936,7 @@ msgstr ""
"\n"
"Además hay opciones específicas de %s sin documentar.\n"
-#: toplev.c:3701
+#: toplev.c:3807
#, c-format
msgid ""
"\n"
@@ -7541,7 +7945,7 @@ msgstr ""
"\n"
" Opciones para %s:\n"
-#: toplev.c:3738
+#: toplev.c:3844
msgid ""
"\n"
"Target specific options:\n"
@@ -7549,12 +7953,12 @@ msgstr ""
"\n"
"Opciones específicas del objetivo:\n"
-#: toplev.c:3752 toplev.c:3771
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr " -m%-23.23s [sin documentar]\n"
-#: toplev.c:3780
+#: toplev.c:3886
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
@@ -7562,68 +7966,73 @@ msgstr ""
"\n"
"Además hay opciones específicas del objetivo sin documentar.\n"
-#: toplev.c:3782
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr " Existen, pero no están documentadas.\n"
-#: toplev.c:3835
+#: toplev.c:3941
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "opción de depuración de gcc no reconocida: %c"
-#: toplev.c:3905
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "`%s': opción de tls-model desconocida"
+
+#: toplev.c:4034
#, c-format
msgid "unrecognized register name `%s'"
msgstr "no se reconoce el nombre de registro `%s'"
-#: toplev.c:3930 toplev.c:4808
+#: toplev.c:4059 toplev.c:5012
#, c-format
msgid "unrecognized option `%s'"
msgstr "opción `-%s' no reconocida"
-#: toplev.c:3974
+#: toplev.c:4107
msgid "-Wid-clash-LEN is no longer supported"
msgstr "-Wid-clash-LEN ya no tiene soporte"
-#: toplev.c:4051
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr "use -gdwarf -g%d para DWARF v1, nivel %d"
-#: toplev.c:4054
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr "use -dwarf-2 para DWARF v2"
-#: toplev.c:4059
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr "ignorando la opción `%s' debido a la especificación de un nivel de depuración inválido"
-#: toplev.c:4082 toplev.c:4806
+#: toplev.c:4215 toplev.c:5010
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr "`%s': opción -g desconocida o sin soporte"
-#: toplev.c:4089
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr "`%s' ignorado, tiene conflicto con `-g%s'"
-#: toplev.c:4168
+#: toplev.c:4304
msgid "-param option missing argument"
msgstr "falta el argumento para la opción -param"
-#: toplev.c:4177
+#: toplev.c:4313
#, c-format
msgid "invalid --param option: %s"
msgstr "opción de --param inválida: %s"
-#: toplev.c:4189
+#: toplev.c:4325
#, c-format
msgid "invalid parameter value `%s'"
msgstr "valor de parámetro `%s' inválido"
-#: toplev.c:4396
+#: toplev.c:4565
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7634,1126 +8043,908 @@ msgstr ""
"%s\t compilado por GNU C versión %s.\n"
"%s%s%s versión %s (%s) compilado por CC.\n"
-#: toplev.c:4452
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sGGC heurísticas: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#: toplev.c:4630
msgid "options passed: "
msgstr "opciones pasadas: "
-#: toplev.c:4481
+#: toplev.c:4659
msgid "options enabled: "
msgstr "opciones activadas: "
-#: toplev.c:4540 java/jcf-write.c:3373
+#: toplev.c:4718 java/jcf-write.c:3453
#, c-format
msgid "can't open %s for writing"
msgstr "no se puede abrir %s para escritura"
-#: toplev.c:4798
+#: toplev.c:5002
#, c-format
msgid "ignoring command line option '%s'"
msgstr "ignorando la opción de línea de comando '%s'"
-#: toplev.c:4801
+#: toplev.c:5005
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr "(es válida para %s pero no para el lenguaje seleccionado)"
-#: toplev.c:4835
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized no tiene soporte sin -O"
-#: toplev.c:4894
+#: toplev.c:5094
msgid "instruction scheduling not supported on this target machine"
msgstr "no se da soporte a la calendarización de instrucciones en este objetivo"
-#: toplev.c:4898
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr "esta máquina objetivo no tiene ramificaciones retardadas"
-#: toplev.c:4907
-msgid "profiling does not work without a frame pointer"
-msgstr "el análisis de perfil no funciona sin un apuntador de marco"
-
-#: toplev.c:4922
+#: toplev.c:5112
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "no se da soporte a -f%sleading-underscore en este objetivo"
-#: toplev.c:4985
+#: toplev.c:5175
msgid "-ffunction-sections not supported for this target"
msgstr "no se da soporte a -ffunction-sections para este objetivo"
-#: toplev.c:4990
+#: toplev.c:5180
msgid "-fdata-sections not supported for this target"
msgstr "no se da soporte a -fdata-sections para este objetivo"
-#: toplev.c:4997
+#: toplev.c:5187
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections desactivado; hace imposible el análisis de perfil"
-#: toplev.c:5004
+#: toplev.c:5194
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo"
-#: toplev.c:5010
+#: toplev.c:5200
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "no se da soporte a -fprefetch-loop-arrays para este objetivo (intente los interruptores -march)"
-#: toplev.c:5019
+#: toplev.c:5209
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays no tiene soporte con -Os"
-#: toplev.c:5025
+#: toplev.c:5215
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections podría afectar la depuración en algunos objetivos"
-#: toplev.c:5146
+#: toplev.c:5327
#, c-format
msgid "error writing to %s"
msgstr "error al escribir a %s"
-#: toplev.c:5148 java/jcf-parse.c:969 java/jcf-write.c:3380
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, c-format
msgid "error closing %s"
msgstr "error al cerrar %s"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "no se permiten números de coma flotante en expresiones #if"
-
-#: tradcif.y:277
-msgid "invalid number in #if expression"
-msgstr "número inválido en la expresión #if"
-
-#: tradcif.y:357
-msgid "invalid character constant in #if"
-msgstr "constante de carácter inválida en #if"
-
-#: tradcif.y:394
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "no se permite cadenas con comillas dobles en expresiones #if"
-
-#: tradcif.y:407
-msgid "invalid token in expression"
-msgstr "elemento inválido en la expresión"
-
-#: tradcif.y:498
-msgid "octal character constant does not fit in a byte"
-msgstr "la constante de carácter octal no cabe en un byte"
-
-#: tradcif.y:519
-msgid "hex character constant does not fit in a byte"
-msgstr "la constante de carácter hexadecimal no cabe en un byte"
-
-#: tradcif.y:550
-msgid "empty #if expression"
-msgstr "expresión #if vacía"
-
-#: tradcif.y:564
-msgid "Junk after end of expression."
-msgstr "Basura después del final de la expresión."
-
-#: tradcpp.c:145
-msgid "macro or #include recursion too deep"
-msgstr "recursión de macro o #include demasiado profunda"
-
-#: tradcpp.c:562
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr "modo de empleo: %s [interruptores] entrada salida"
-
-#: tradcpp.c:578
-msgid "-traditional is not supported in C++"
-msgstr "-traditional no tiene soporte en C++"
-
-#: tradcpp.c:580
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "-traditional y -ansi son mutuamente exclusivos"
-
-#: tradcpp.c:594
-msgid "filename missing after -i option"
-msgstr "falta el nombre del fichero después de la opción -i"
-
-#: tradcpp.c:612
-msgid "filename missing after -o option"
-msgstr "falta el nombre del fichero después de la opción -o"
-
-#: tradcpp.c:675
-#, c-format
-msgid "target missing after %s option"
-msgstr "falta el objetivo después de la opción %s"
-
-#: tradcpp.c:689
-#, c-format
-msgid "filename missing after %s option"
-msgstr "falta el nombre del fichero después de la opción %s"
-
-#: tradcpp.c:714
-#, c-format
-msgid "macro name missing after -%c option"
-msgstr "falta el nombre de macro después de la opción -%c"
-
-#: tradcpp.c:734
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-pedantic y -traditional son mutuamente exclusivos"
-
-#: tradcpp.c:739
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-trigraphs y -traditional son mutuamente exclusivos"
-
-#: tradcpp.c:765
-msgid "directory name missing after -I option"
-msgstr "falta el nombre de directorio después de la opción -I"
-
-#: tradcpp.c:1445 tradcpp.c:3937
-msgid "`/*' within comment"
-msgstr "`/*' dentro de un comentario"
-
-#: tradcpp.c:1821
-#, c-format
-msgid "unterminated #%s conditional"
-msgstr "condicional #%s sin terminar"
-
-#: tradcpp.c:2180
-msgid "not in any file?!"
-msgstr "¡¿No está en ningún fichero?!"
-
-#: tradcpp.c:2286
-msgid "`defined' must be followed by ident or (ident)"
-msgstr "`defined' debe ser seguido por ident o (ident)"
-
-#: tradcpp.c:2290
-msgid "cccp error: invalid special hash type"
-msgstr "error de cccp: tipo de dispersión especial inválido"
-
-#: tradcpp.c:2388 tradcpp.c:2458
-msgid "#include expects \"fname\" or <fname>"
-msgstr "#include espera \"fname\" ó <fname>"
-
-#: tradcpp.c:2543
-#, c-format
-msgid "no include path in which to find %.*s"
-msgstr "no hay ruta de inclusión en la cual se encuentre %.*s"
-
-#: tradcpp.c:2721
-msgid "invalid macro name"
-msgstr "nombre de macro inválido"
-
-#: tradcpp.c:2729
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr "nombre de macro `%s' inválido"
-
-#: tradcpp.c:2734
-msgid "\"defined\" cannot be used as a macro name"
-msgstr "\"defined\" no se puede usar como un nombre de macro"
-
-#: tradcpp.c:2761
-msgid "parameter name starts with a digit in #define"
-msgstr "el nombre de un parámetro empieza con un dígito en un #define"
-
-#: tradcpp.c:2771
-msgid "badly punctuated parameter list in #define"
-msgstr "lista de parámetros con puntuación errónea en un #define"
-
-#: tradcpp.c:2779
-msgid "unterminated parameter list in #define"
-msgstr "lista de parámetros en #define sin terminar"
-
-#: tradcpp.c:2827
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr "\"%.*s\" redefinido"
-
-#: tradcpp.c:3084
-msgid "# operator should be followed by a macro argument name"
-msgstr "el operador # debe continuar con un nombre de argumento de macro"
-
-#: tradcpp.c:3131 tradcpp.c:3157 tradcpp.c:3171 tradcpp.c:3178 tradcpp.c:3203
-msgid "invalid format #line command"
-msgstr "formato inválido de la orden #line"
-
-#: tradcpp.c:3229
-msgid "undefining `defined'"
-msgstr "borrando la definición de `defined'"
-
-#: tradcpp.c:3233
-#, c-format
-msgid "undefining `%s'"
-msgstr "borrando la definición de `%s'"
-
-#: tradcpp.c:3289
-msgid "extra text at end of directive"
-msgstr "texto extra al final de la directiva"
-
-#: tradcpp.c:3396
-#, c-format
-msgid "#error%.*s"
-msgstr "#error%.*s"
-
-#: tradcpp.c:3406
-#, c-format
-msgid "#warning%.*s"
-msgstr "#warning%.*s"
-
-#: tradcpp.c:3562
-msgid "#elif not within a conditional"
-msgstr "#elif no está dentro de un condicional"
-
-#: tradcpp.c:3819
-#, c-format
-msgid "#%s not within a conditional"
-msgstr "#%s no está dentro de un condicional"
-
-#: tradcpp.c:3827
-msgid "#else or #elif after #else"
-msgstr "#else o #elif después de #else"
-
-#: tradcpp.c:3867
-msgid "#else not within a conditional"
-msgstr "#else no está dentro de un condicional"
-
-#: tradcpp.c:3898
-msgid "unbalanced #endif"
-msgstr "#endif desbalanceado"
-
-#: tradcpp.c:3992
-msgid "unterminated string or character constant"
-msgstr "cadena sin terminar o constante de carácter"
-
-#: tradcpp.c:4150
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "argumentos dados a la macro `%s'"
-
-#: tradcpp.c:4156
-#, c-format
-msgid "no args to macro `%s'"
-msgstr "no hay argumentos para la macro `%s'"
-
-#: tradcpp.c:4158
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "sólo 1 argumento para la macro `%s'"
-
-#: tradcpp.c:4160
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr "sólo %d argumentos para la macro `%s'"
-
-#: tradcpp.c:4162
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "demasiados argumentos (%d) para la macro `%s'"
-
-#: tradcpp.c:4759
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"error interno en %s, en tradcpp.c:%d\n"
-"Por favor envíe un reporte completo de error.\n"
-"Vea %s para más instrucciones."
-
-#: tree-dump.c:848
+#: tree-dump.c:702
#, c-format
msgid "could not open dump file `%s'"
msgstr "no se puede abrir el fichero de volcado `%s'"
-#: tree-dump.c:924
+#: tree-dump.c:778
#, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr "ignorando la opción desconocida `%.*s' al final de `-f%s'"
-#: tree.c:3888
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr "las matrices de funciones no tienen significado"
-#: tree.c:3945
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr "el tipo de devolución de función no puede ser función"
-#: tree.c:4699
+#: tree.c:4557
msgid "invalid initializer for bit string"
-msgstr "iniciador inválido para cadena de bits"
+msgstr "inicializador inválido para la cadena de bits"
-#: tree.c:4758
+#: tree.c:4616
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr "revisión de árbol: se esperaba %s, se tiene %s en %s, en %s:%d"
-#: tree.c:4775
+#: tree.c:4633
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr "revisión de árbol: es esperaba la clase '%c', se tiene '%c' (%s) en %s, en %s:%d"
-#: varasm.c:454 config/i386/winnt.c:522
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d"
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr "%s causa un conflicto de tipo de sección"
-#: varasm.c:879
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr "no se especifica nombre de registro para `%s'"
-#: varasm.c:881
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr "nombre de registro inválido para `%s'"
-#: varasm.c:884
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr "el tipo de datos de `%s' no es adecuado para un registro"
-#: varasm.c:887
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr "el registro especificado por `%s' no es adecuado para el tipo de datos"
-#: varasm.c:896
+#: varasm.c:858
msgid "global register variable has initial value"
-msgstr "la variable de registro global tiene valor inicial"
+msgstr "la variable de registro global tiene el valor inicial"
-#: varasm.c:899
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr "las variables de registro volatile no funcionan como usted quisiera"
-#: varasm.c:932
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr "nombre de registro dado para una variable `%s' que no es registro"
-#: varasm.c:1570
+#: varasm.c:1542
#, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr "la alineación de `%s' es mayor que la alineación máxima del fichero objeto. Se usa %d"
-#: varasm.c:1621
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr "los datos COMMON thread-local no están implentados"
+
+#: varasm.c:1610
#, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr "la alineación solicitada para %s es mayor que la alineación implementada de %d"
-#: varasm.c:4570
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
-msgstr "el iniciador para un valor entero es demasiado complicado"
+msgstr "el inicializador para un valor entero es demasiado complicado"
-#: varasm.c:4575
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
-msgstr "el iniciador para un valor de coma flotante no es una constante de coma flotante"
+msgstr "el inicializador para un valor de coma flotante no es una constante de coma flotante"
-#: varasm.c:4625
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr "conjunto de tipo constructor desconocido"
-#: varasm.c:4839
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr "valor inicial inválido para el miembro `%s'"
-#: varasm.c:5000
-#, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "la declaración débil de `%s' debe ser public"
-
-#: varasm.c:5002
+#: varasm.c:4525 varasm.c:4568
#, c-format
msgid "weak declaration of `%s' must precede definition"
msgstr "la declaración débil de `%s' debe preceder a la definición"
-#: varasm.c:5009
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "la declaración débil de `%s' después del primer uso resulta en una conducta no especificada"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "la declaración débil de `%s' debe ser public"
+
+#: varasm.c:4575
#, c-format
msgid "weak declaration of `%s' not supported"
msgstr "la declaración débil de `%s' no tiene soporte"
-#: varasm.c:5036 varasm.c:5107
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr "sólo los aliases débiles tienen soporte en esta configuración"
-#: varasm.c:5116
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr "las definiciones de alias no tienen soporte en esta configuración; ignoradas"
-#: varray.c:88
+#: varasm.c:4716
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "los atributos de visibilidad no tienen soporte en esta configuración; ignorados"
+
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr "matriz virtual %s[%lu]: el elemento %lu está fuera del límite en %s, en %s:%d"
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr "no hay sclass para el stab %s (0x%x)\n"
-#: params.def:46
-msgid "The maximum number of instructions in a function that is eligible for inlining"
-msgstr "El número máximo de instrucciones en una función para ser elegible para inlining"
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#`%s' no tiene soporte para %s#"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "El número máximo de instrucciones en una sola función elegible para inlining"
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "El número máximo de instrucciones cuando se hace inlining automáticamente"
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr "El número máximo de instrucciones por inlining repetido antes de que gcc comience a descartar inlining"
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr "La pendiente de la función lineal de descarte de inlining antes de que se alcance el límite de inlining recursivo es dada por el valor recíproco negativo de este parámetro"
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr "El número de instrucciones en una sola función para ser aún elegible para inlining después de mucho inlining recursivo"
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "El número máximo de instrucciones para el inlineador de RTL"
-#: params.def:57
+#: params.def:131
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr "El número máximo de instrucciones para considerar el llenado de una ranura de retraso"
-#: params.def:68
+#: params.def:142
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr "El número máximo de instruccions para considerar la búsqueda de información de registros en vivo exacta"
-#: params.def:78
+#: params.def:152
msgid "The maximum length of scheduling's pending operations list"
msgstr "La longitud máxima de la lista de operaciones pendientes del calendarizador"
-#: params.def:85
+#: params.def:159
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr "La cantidad máxima de memoria a ser asignada por GCSE"
-#: params.def:90
+#: params.def:164
msgid "The maximum number of passes to make when doing GCSE"
msgstr "El número máximo de pasos a realizar cuando se hace GCSE"
-#: config/darwin-c.c:76
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "El número máximo de instrucciones para considerar el desenrollo en un ciclo"
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr "Seleccionar la fracción de la cuenta maximal de repeticiones del bloque básico en el programa dado el bloque básico necesita ser considerado caliente"
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr "Seleccionar la fracción de la frecuencia maximal de ejecuciones de bloque básico en la función dado el bloque básico necesita ser considerado caliente"
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr "El porcentaje de la función, evaluado por la frecuencia de ejecución, que debe ser cubierto por la información de rastreo. Se utiliza cuando está disponible la retroalimentación del análisis de perfil"
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr "El porcentaje de la función, evaluado por la frecuencia de ejecución, que debe ser cubierto por la información de rastreo. Se utiliza cuando la retroalimentación de análisis de perfil no está disponible"
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr "Crecimiento de código maximal causado por duplicación de colas (en porcentajes)"
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr "Detener el crecimiento inverso si la probabilidad reversa del mejor borde es menor a este intervalo (en porcentajes)"
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr "Detener el crecimiento hacia adelante si la probabilidad del mejor borde es menor que este intervalo. Se utiliza cuando la retroalimentación de análisis de perfil está disponible"
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr "Detener el crecimiento hacia adelante si la probabilidad del mejor borde es menor a este intervalo. Se utiliza cuando la retroalimentación de análisis de perfil no está disponible"
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "El número máximo de bordes de entrada para considerar el salto cruzado"
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr "Expansión mínima de la pila para iniciar la recolección de basura, como un porcentaje del tamaño total de la pila."
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr "Tamaño mínimo de la pila antes de comenzar a recolectar basura, en kilobytes."
+
+#: config/darwin-c.c:75
msgid "too many #pragma options align=reset"
msgstr "demasiadas opciones #pragma align=reset"
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103 config/darwin-c.c:105
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
msgid "malformed '#pragma options', ignoring"
msgstr "'#pragma options' malformado, ignorando"
-#: config/darwin-c.c:108
+#: config/darwin-c.c:107
msgid "junk at end of '#pragma options'"
msgstr "basura al final de '#pragma options'"
-#: config/darwin-c.c:118
+#: config/darwin-c.c:117
msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr "'#pragma options align={mac68k|power|reset}' malformado, ignorando"
-#: config/darwin-c.c:131
+#: config/darwin-c.c:130
msgid "missing '(' after '#pragma unused', ignoring"
msgstr "falta un '(' después de '#pragma unused', ignorando"
-#: config/darwin-c.c:149
+#: config/darwin-c.c:148
msgid "missing ')' after '#pragma unused', ignoring"
msgstr "falta un '(' después de '#pragma unused', ignorando"
-#: config/darwin-c.c:152
+#: config/darwin-c.c:151
msgid "junk at end of '#pragma unused'"
msgstr "basura al final de '#pragma unused'"
-#: config/nextstep.c:68
-msgid "optimization turned on"
-msgstr "nivel de optimización encendido"
-
-#: config/nextstep.c:74
-msgid "optimization turned off"
-msgstr "nivel de optimización apagado"
-
-#: config/nextstep.c:83
-msgid "optimization level restored"
-msgstr "nivel de optimización restaurado"
-
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
msgid "-msystem-v and -p are incompatible"
msgstr "-msystem-v y -p son incompatibles"
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
msgid "-msystem-v and -mthreads are incompatible"
msgstr "-msystem-v y -mthreads son incompatibles"
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
-msgstr "Usar alineación VAX-C"
-
-#: config/a29k/a29k.c:1028 config/m88k/m88k.c:2967
-#, c-format
-msgid "invalid %%Q value"
-msgstr "valor %%Q inválido"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5402 config/m88k/m88k.c:3063
-#, c-format
-msgid "invalid %%C value"
-msgstr "valor %%C inválido"
-
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5247 config/rs6000/rs6000.c:6454
-#, c-format
-msgid "invalid %%N value"
-msgstr "valor %%N inválido"
-
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5318 config/rs6000/rs6000.c:6416
-#, c-format
-msgid "invalid %%M value"
-msgstr "valor %%M inválido"
-
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5310 config/rs6000/rs6000.c:6381
-#, c-format
-msgid "invalid %%m value"
-msgstr "valor %%m inválido"
-
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5271 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
-msgstr "valor %%L inválido"
-
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:6462
-#, c-format
-msgid "invalid %%O value"
-msgstr "valor %%O inválido"
-
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:5255 config/rs6000/rs6000.c:6482
-#, c-format
-msgid "invalid %%P value"
-msgstr "valor %%P inválido"
-
-#: config/a29k/a29k.c:1175
-#, c-format
-msgid "invalid %%V value"
-msgstr "valor %%V inválido"
-
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
-msgstr "Generar código asumiendo que el bit DW está activado"
-
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
-msgstr "Generar código asumiendo que el bit DW no está activado"
-
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
-msgstr "Generar código usando escritura de byte"
-
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
-msgstr "No generar escritura de byte"
-
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
-msgstr "Usar modelo de memoria small"
-
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
-msgstr "Usar modelo de memoria normal"
-
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
-msgstr "Usar modelo de memoria large"
-
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
-msgstr "Generar código 29050"
-
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
-msgstr "Generar código 29000"
-
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
-msgstr "Usar registros globales del núcleo"
-
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
-msgstr "Usar registros globales del usuario"
-
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr "Emitir código de revisión de la pila"
-
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
-msgstr "No emitir código de revisión de la pila"
-
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
-msgstr "Evitar el bug de hardware storem"
-
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
-msgstr "No evitar el bug de hardware storem"
-
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
-msgstr "Almacenar los locales en los registros de argumento"
-
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
-msgstr "No almacenar los locales en los registros de argumento"
-
-#: config/a29k/a29k.h:118 config/i960/i960.h:283 config/mips/mips.h:408
-msgid "Use software floating point"
-msgstr "Usar coma flotante de software"
-
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
-msgstr "No generar instrucciones multm"
-
-#: config/alpha/alpha.c:271
+#: config/alpha/alpha.c:342
#, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "se ignora -f%s para Unicos/Mk (sin soporte)"
-#: config/alpha/alpha.c:295
+#: config/alpha/alpha.c:366
msgid "-mieee not supported on Unicos/Mk"
msgstr "-mieee no tiene soporte en Unicos/Mk"
-#: config/alpha/alpha.c:306
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact no tiene soporte en Unicos/Mk"
-#: config/alpha/alpha.c:323
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr "valor erróneo `%s' para el interruptor -mtrap-precision"
-#: config/alpha/alpha.c:337
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr "valor erróneo `%s' para el interruptor -mfp-rounding-mode"
-#: config/alpha/alpha.c:352
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr "valor erróneo `%s' para el interruptor -mfp-trap-mode"
-#: config/alpha/alpha.c:371 config/alpha/alpha.c:383
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "valor erróneo `%s' para el interruptor -mtls-size"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr "valor erróneo `%s' para el interruptor -mcpu"
-#: config/alpha/alpha.c:390
+#: config/alpha/alpha.c:473
msgid "trap mode not supported on Unicos/Mk"
msgstr "el modo de captura no tiene soporte en Unicos/Mk"
-#: config/alpha/alpha.c:397
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr "el completado por software de fp requiere una opción -mtrap-precision=i"
-#: config/alpha/alpha.c:413
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr "el modo de redondeo no tiene soporte para floats de VAX"
-#: config/alpha/alpha.c:418
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr "el modo de captura no tiene soporte para valores de coma flotante VAX"
-#: config/alpha/alpha.c:447
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr "latencia de caché L%d desconocida para %s"
-#: config/alpha/alpha.c:462
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "valor erróneo `%s' para -mmemory-latency"
-#: config/alpha/alpha.c:5211 config/m88k/m88k.c:2955 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr "valor %%H inválido"
-#: config/alpha/alpha.c:5221
+#: config/alpha/alpha.c:5625
#, c-format
msgid "invalid %%J value"
msgstr "valor %%J inválido"
-#: config/alpha/alpha.c:5231 config/ia64/ia64.c:3509 config/m88k/m88k.c:3100
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "valor %%r inválido"
-#: config/alpha/alpha.c:5241 config/rs6000/rs6000.c:6528
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "valor %%R inválido"
-#: config/alpha/alpha.c:5263 config/m88k/m88k.c:2961 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "valor %%N inválido"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "valor %%P inválido"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "valor %%h inválido"
-#: config/alpha/alpha.c:5353
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "valor %%L inválido"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "valor %%m inválido"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "valor %%M inválido"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "valor %%U inválido"
-#: config/alpha/alpha.c:5365 config/alpha/alpha.c:5379 config/romp/romp.c:698 config/rs6000/rs6000.c:6536
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "valor %%s inválido"
-#: config/alpha/alpha.c:5439 config/m88k/m88k.c:3084 config/rs6000/rs6000.c:6243
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "valor %%C inválido"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "valor %%E inválido"
-#: config/alpha/alpha.c:5460 config/romp/romp.c:973 config/rs6000/rs6000.c:6844
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr "reubicación unspec desconocida"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "código %%xn inválido"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr "fcode interno erróneo"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:214 config/i386/i386.h:291 config/i386/i386.h:293 config/i386/i386.h:295 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329 config/s390/s390.h:56 config/sparc/sparc.h:529 config/sparc/sparc.h:534
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr "Usar fp de hardware"
-#: config/alpha/alpha.h:215 config/i386/i386.h:292 config/i386/i386.h:294 config/rs6000/rs6000.h:331 config/sparc/sparc.h:531 config/sparc/sparc.h:536
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr "No usar fp de hardware"
-#: config/alpha/alpha.h:216
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr "Usar registros fp"
-#: config/alpha/alpha.h:218
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr "No usar registros fp"
-#: config/alpha/alpha.h:219
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr "No asumir GAS"
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr "Asumir GAS"
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr "Requerir rutinas de biblioteca matemática que cumplan con IEEE (OSF/1)"
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr "Emitir código que cumpla con IEEE, sin excepciones inexactas"
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr "Emitir código que cumpla con IEEE, con excepciones inexactas"
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr "No emitir constantes enteras complejas a memoria de sólo lectura"
-#: config/alpha/alpha.h:229
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr "Usar fp VAX"
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr "No usar fp VAX"
-#: config/alpha/alpha.h:231
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr "Emitir código para la extensión ISA byte/word"
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr "Emitir código para la extensión ISA de video en movimiento"
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr "Emitir código para la extensión ISA de move y sqrt de fp"
-#: config/alpha/alpha.h:239
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr "Emitir código para la extensión ISA de conteo"
-#: config/alpha/alpha.h:242
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr "Emitir código usando directivas explícitas de reubicación"
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr "Emitir reubicaciones de 16-bit a las áreas de datos small"
-#: config/alpha/alpha.h:247
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr "Emitir reubicaciones de 32-bit a las áreas de datos small"
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "Emitir rdval en lugar de rduniq para un puntero thread"
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:275
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr "Usar las características de y el calendarizador del CPU dado"
-#: config/alpha/alpha.h:277
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr "Calendarizador para el CPU dado"
-#: config/alpha/alpha.h:279
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr "Controlar el modo de redondeo generado de fp"
-#: config/alpha/alpha.h:281
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr "Controlar el modo de captura IEEE"
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr "Controlar la precisión dada a las excepciones de fp"
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr "Ajustar la latencia esperada de memoria"
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Especificar el tamaño de bit para los desplazamientos TLS inmediatos"
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "valor erróneo (%s) para el interruptor -mcpu"
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "el argumento del atributo `%s' no es una cadena constante"
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr "el argumento del atributo `%s' no es \"ilink1\" o \"ilink2\""
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2278
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
#, c-format
msgid "invalid operand to %%R code"
msgstr "operando inválido para el código %%R"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2301
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "operando inválido para el código %%H%%L"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2378
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
#, c-format
msgid "invalid operand to %%U code"
msgstr "operando inválido para el código %%U"
-#: config/arc/arc.c:1776
+#: config/arc/arc.c:1774
#, c-format
msgid "invalid operand to %%V code"
msgstr "operando inválido para el código %%V"
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2417 config/sparc/sparc.c:6145
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "operando inválido para el código de salida"
-#: config/arm/arm.c:436
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "el interruptor -mcpu=%s genera conflictos con el switch -march="
-#: config/arm/arm.c:446 config/rs6000/rs6000.c:444 config/sparc/sparc.c:381
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "valor erróneo (%s) para el interruptor %s"
-#: config/arm/arm.c:582
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr "el CPU objetivo no tiene soporte para APCS-32"
-#: config/arm/arm.c:587
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr "el CPU objetivo no tiene soporte para APCS-26"
-#: config/arm/arm.c:593
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr "el CPU objetivo no tiene soporte para trabajo interno"
-#: config/arm/arm.c:599
+#: config/arm/arm.c:621
msgid "target CPU does not support THUMB instructions"
msgstr "el CPU objetivo no tiene soporte para las instrucciones THUMB"
-#: config/arm/arm.c:613
+#: config/arm/arm.c:635
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "habilitar el soporte de rastreo hacia atrás sólo tiene significado cuando se compila para el Thumb"
# ¿callee? cfuga
-#: config/arm/arm.c:616
+#: config/arm/arm.c:638
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "habilitar el soporte de trabajo interno de llamadas sólo tiene significado cuando se compila para el Thumb"
-#: config/arm/arm.c:619
+#: config/arm/arm.c:641
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "habilitar el soporte de trabajo interno de llamado sólo tiene significado cuando se compila para el Thumb"
-#: config/arm/arm.c:625
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr "el trabajo interno forza el uso de APCS-32"
-#: config/arm/arm.c:631
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame"
-#: config/arm/arm.c:639
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic y -mapcs-reent son incompatibles"
-#: config/arm/arm.c:642
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr "no se soporta el código reentrante APCS. Ignorado"
-#: config/arm/arm.c:650
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g con -mno-apcs-frame no permite una depuración sensible"
-#: config/arm/arm.c:658
+#: config/arm/arm.c:680
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "aún no se soporta pasar argumentos de coma flotante en registros fp"
-#: config/arm/arm.c:687
+#: config/arm/arm.c:709
#, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "opción de emulación de coma flotante inválida: -mfpe-%s"
-#: config/arm/arm.c:711
+#: config/arm/arm.c:733
msgid "structure size boundary can only be set to 8 or 32"
msgstr "el límite del tamaño de la estructura sólo puede establecerse a 8 o 32"
-#: config/arm/arm.c:719
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= es inútil sin -fpic"
-#: config/arm/arm.c:726
+#: config/arm/arm.c:748
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "no se puede usar '%s' para registro PIC"
-#: config/arm/arm.c:1970 config/arm/arm.c:1993 config/avr/avr.c:4703 config/c4x/c4x.c:4650 config/h8300/h8300.c:3045 config/i386/i386.c:1260 config/i386/i386.c:1289 config/m68hc11/m68hc11.c:1220 config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1044 config/rs6000/rs6000.c:10760 config/sh/sh.c:5583 config/sh/sh.c:5603 config/sh/sh.c:5642 config/stormy16/stormy16.c:2010 config/v850/v850.c:2047
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, c-format
msgid "`%s' attribute only applies to functions"
-msgstr "el atributo `%s' aplica solamente a funciones"
+msgstr "el atributo `%s' se aplica solamente a funciones"
-#: config/arm/arm.c:9288
+#: config/arm/arm.c:9459
msgid "unable to compute real location of stacked parameter"
msgstr "no se puede calcular la ubicación real del parámetro apilado"
-#: config/arm/arm.c:9968
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr "no hay registros inferiores disponibles para almacenar registros superiores"
-#: config/arm/arm.c:10160
+#: config/arm/arm.c:10389
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb"
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
#, c-format
msgid "initialized variable `%s' is marked dllimport"
-msgstr "la variable iniciada `%s' está marcada como dllimport"
+msgstr "la variable inicializada `%s' está marcada como dllimport"
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr "la variable estática `%s' está marcada como dllimport"
-#: config/arm/arm.h:422
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr "Generar marcos de pila que cumplan con APCS"
-#: config/arm/arm.h:425
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr "Almacenar nombres de función en el código objeto"
-#: config/arm/arm.h:429
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr "Usar la versión 32-bit del APCS"
-#: config/arm/arm.h:431
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr "Usar la versión 26-bit del APCS"
-#: config/arm/arm.h:435
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr "Pasar los argumentos FP en los registros FP"
-#: config/arm/arm.h:438
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr "Generar código PIC reentrante"
-#: config/arm/arm.h:441
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr "La MMU atrapará los accesos no alineados"
-#: config/arm/arm.h:448
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr "Usar llamadas a bibliotecas para realizar las operaciones de FP"
-#: config/arm/arm.h:450 config/i960/i960.h:281
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr "Usar instrucciones de hardware para coma flotante"
-#: config/arm/arm.h:452
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr "Asumir que el CPU destino está configurado como big endian"
-#: config/arm/arm.h:454
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr "Asumir que el CPU destino está configurado como little endian"
-#: config/arm/arm.h:456
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr "Asumir bytes big endian, words little endian"
-#: config/arm/arm.h:458
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Soporte a llamadas entre los conjuntos de instrucciones Thumb y ARM"
-#: config/arm/arm.h:461
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr "Generar una llamada a abortar si una funcion noreturn devuelve"
-#: config/arm/arm.h:464
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr "No mover las instrucciones al prólogo de una función"
-#: config/arm/arm.h:467
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr "No cargar el registro PIC en los prólogos de función"
-#: config/arm/arm.h:470
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr "Generar las llamadas insns como llamadas indirectas, si es necesario"
-#: config/arm/arm.h:473
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr "Compilar para el Thumb on para el ARM"
-#: config/arm/arm.h:477
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr "Thumb: Generar marcos de pila (no-hojas) aún si no es necesario"
-#: config/arm/arm.h:480
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr "Thumb: Generar marcos de pila (hojas) aún si no es necesario"
-#: config/arm/arm.h:483
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr "Thumb: Asumir que las funciones no static pueden ser llamadas desde código ARM"
-#: config/arm/arm.h:487
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
-msgstr "Thumb: Asumir que los apuntadores de función pueden ir a código no informado sobre Thumb"
+msgstr "Thumb: Asumir que los punteros de función pueden ir a código no informado sobre Thumb"
-#: config/arm/arm.h:497
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr "Especificar el nombre del CPU destino"
-#: config/arm/arm.h:499
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr "Especificar el nombre de la arquitectura destino"
-#: config/arm/arm.h:503
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr "Especificar la versión del emulador de coma flotante"
-#: config/arm/arm.h:505
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr "Especificar la alineación mínima de bit de las estructuras"
-#: config/arm/arm.h:507
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr "Especificar el registro a usar para el direccionamiento PIC"
@@ -8761,96 +8952,92 @@ msgstr "Especificar el registro a usar para el direccionamiento PIC"
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorar el atributo dllimport para las funciones"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr "Renombrar los símbolos para BSD"
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr "Renombrar los símbolos para X/OPEN"
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr "No renombrar símbolos"
-
-#: config/avr/avr.c:221
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr "MCU `%s' no tiene soporte"
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
-msgstr "cambio de apuntador grande de marco (%d) con -mtiny-stack"
+msgstr "cambio de puntero de marco grande (%d) con -mtiny-stack"
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr "dirección errónea, no (reg+disp)"
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
msgid "internal compiler error. Bad address:"
msgstr "error interno del compilador. Dirección errónea:"
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
msgid "internal compiler error. Unknown mode:"
msgstr "error interno del compilador. Modo desconocido:"
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
msgid "invalid insn:"
msgstr "insn inválido:"
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957 config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236 config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr "insn incorrecto:"
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307 config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
msgid "unknown move insn:"
msgstr "movimiento insn desconocido:"
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr "desplazamiento insn erróneo:"
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
msgid "internal compiler error. Incorrect shift:"
msgstr "error interno del compilador. Desplazamiento incorrecto:"
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
msgid "only initialized variables can be placed into program memory area"
-msgstr "sólo las variables iniciadas se pueden ubicar en el área de memoria del programa"
+msgstr "sólo las variables inicializadas se pueden ubicar en el área de memoria del programa"
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit"
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU `%s' sólo tiene soporte para ensamblador"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr "Asumir que int sea entero de 8 bit"
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
-msgstr "Cambiar el apuntador de la pila sin desactivar las interrupciones"
+msgstr "Cambiar el puntero de la pila sin desactivar las interrupciones"
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr "Usar subrutinas para el prólogo/epílogo de función"
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
-msgstr "Cambiar sólo los 8 bits bajos del apuntador de pila"
+msgstr "Cambiar sólo los 8 bits bajos del puntero de pila"
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr "No generar insns de salto de tabla"
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr "Usar rjmp/rcall (rango limitado) en dispositivos >8K"
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr "Tamaños de instrucción de salida al fichero asm"
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr "Especificar la dirección inicial de la pila"
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr "Especificar el nombre MCU"
@@ -8862,136 +9049,136 @@ msgstr "Especificar el nombre MCU"
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2566
+#: config/avr/avr.h:2450
msgid "trampolines not supported"
msgstr "los trampolines no tienen soporte"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr "falta un '(' después de '#pragma %s' - ignorado"
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr "falta el nombre de la función en '#pragma %s' - ignorado"
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "'#pragma %s' malformado - ignorado"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr "falta el nombre de la sección en '#pragma %s' - ignorado"
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr "falta un ')' para '#pragma %s' - ignorado"
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr "basura al final de '#pragma %s'"
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr "versión desconocida de CPU %d, usando 40.\n"
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr "el ISR %s requiere de %d words de variables locales, el máximo es 32767"
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr "usando CONST_DOUBLE para las direcciones"
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr "c4x_address_cost: Modo inválido de direccionamiento"
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr "c4x_print_operand: inconsistencia %%L"
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr "c4x_print_operand: inconsistencia %%N"
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr "c4x_print_operand: inconsistencia %%O"
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr "c4x_print_operand: Operando case erróneo"
# FIXME: Revisar si post_modify es una instrucción en el código de
# gcc. cfuga
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr "c4x_print_operand_address: post_modify erróneo"
# FIXME: Revisar si pre_modify es una instrucción en el código de
# gcc. cfuga
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr "c4x_print_operand_address: pre_modify erróneo"
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr "c4x_print_operand_address: Operando case erróneo"
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr "c4x_rptb_insert: No se puede encontrar la etiqueta de inicio"
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
msgid "mode not QImode"
msgstr "el modo no es QImode"
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
msgid "invalid indirect memory address"
msgstr "dirección indirecta de memoria inválida"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr "dirección (S) indirecta de memoria inválida"
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr "c4x_valid_operands: Error interno"
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr "c4x_operand_subword: modo inválido"
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr "c4x_operand_subword: operando inválido"
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr "c4x_operand_subword: autoincremento inválido"
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr "c4x_operand_subword: dirección inválida"
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: dirección no desplazable"
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr "c4x_rptb_rpts_p: Se movió la etiqueta princiapl del bloque de repetición\n"
@@ -8999,7 +9186,6 @@ msgstr "c4x_rptb_rpts_p: Se movió la etiqueta princiapl del bloque de repetición
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9035,590 +9221,528 @@ msgstr "c4x_rptb_rpts_p: Se movió la etiqueta princiapl del bloque de repetición
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr "Modelo de memoria small"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr "Modelo de memoria big"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr "Usar instrucción MPYI para C3x"
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr "No usar instrucción MPYI para C3x"
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr "Usar conversión de coma flotante a entero rápida pero aproximada"
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr "Usar conversión de coma flotante a entero lenta pero exacta"
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr "Activar el uso de la instrucción RTPS"
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr "Desactivar el uso de la instrucción RTPS"
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr "Activar el uso de la instrucción RTPB"
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr "Desactivar el uso de la instrucción RTPB"
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr "Generar código para el CPU C30"
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr "Generar código para el CPU C31"
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr "Generar código para el CPU C32"
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr "Generar código para el CPU C33"
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr "Generar código para el CPU C40"
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr "Generar código para el CPU C44"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr "Emitir código compatible con las herramientas TI"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr "Emitir código para usar las extensiones de GAS"
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr "Guardar DP entre ISR en el modelo de memoria small"
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr "No guardar DP entre ISR en el modelo de memoria small"
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr "Pasar los argumenotos en la pila"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr "Pasar los argumentos en los registros"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr "Activar nuevas características en desarrollo"
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr "Desactivar nuevas características en desarrollo"
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr "Usar el registro BK como un registro de propósito general"
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr "No asignar el registro BK"
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr "Activar el uso de la instrucción DB"
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr "Desactivar el uso de la instrucción DB"
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr "Activar la depuración"
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr "Desactivar la depuración"
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr "Forzar las constantes dentro de registros para mejorar el levantamiento"
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr "No forzar las constantes en los registros"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr "Forzar que la generación de RTL emita 3 operandos insns válidos"
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr "Permitir que la generación de RTL emita 3 operandos insns inválidos"
-# Error de dedo de desarrolladores originales en interation. Avisar. cfuga
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr "Permitir cuentas de iteración unsigned para RPTB/DB"
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
-msgstr "No ermitir cuentas de iteración unsigned para RPTB/DB"
+msgstr "No permitir cuentas de iteración unsigned para RPTB/DB"
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr "Preservar los 40 bits del registro FP entre llamadas"
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr "Sólo preservar 32 bits del registro FP entre llamadas"
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr "Activar las funciones paralelas"
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr "Desactivar las funciones paralelas"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr "Activar las instrucciones MPY||ADD y MPY||SUB"
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr "Desactivar las instrucciones MPY||ADD y MPY||SUB"
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
-msgstr "Asumir que se pueden hacer alias de los apuntadores"
+msgstr "Asumir que se pueden hacer alias de los punteros"
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
-msgstr "Asumir que se hay alias de los apuntadores"
+msgstr "Asumir que no se pueden hacer alias de los punteros"
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr "Especificar el número máximo de iteraciones para RPTS"
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr "Seleccionar el CPU para el cual se genera código"
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr "Generar código para el C400"
-
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr "Generar código para el C300"
-
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
-msgstr "Generar código para el c1"
-
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
-msgstr "Generar código para el c2"
-
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
-msgstr "Generar código para el c32"
-
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr "Generar código para el c34"
-
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr "Usar secuencia de llamada estándard, con palabra de cuenta de argumentos"
-
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr "Colocar la cuenta de argumentos en una instrucción nop (más rápido que push)"
-
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr "No hacer push de la cuenta de argumentos, depender de la tabla de símbolos"
-
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr "Usar el caché de datos para referencias a memoria volatile (por omisión)"
-
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr "No usar el caché de datos para referencias a memoria volatile"
-
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr "Saltar el caché de datos para referencias a memoria volatile"
-
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr "Usar longs de 64-bit"
-
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr "Usar longs de 32-bit compatibles con cc y libc"
-
-#: config/cris/cris.c:569
+#: config/cris/cris.c:599
msgid "unexpected index-type in cris_print_index"
msgstr "tipo-índice inesperado en cris_print_index"
-#: config/cris/cris.c:585
+#: config/cris/cris.c:615
msgid "unexpected base-type in cris_print_base"
msgstr "tipo-base inesperado en cris_print_base"
-#: config/cris/cris.c:878
+#: config/cris/cris.c:908
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "marco de la pila demasiado grande: %d bytes"
-#: config/cris/cris.c:1193
+#: config/cris/cris.c:1223
msgid "allocated but unused delay list in epilogue"
msgstr "lista de retardo asignada pero sin uso en el epílogo"
-#: config/cris/cris.c:1203
+#: config/cris/cris.c:1233
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "el tipo de función inesperado necesita un ajuste de pila para __builtin_eh_return"
-#: config/cris/cris.c:1282
+#: config/cris/cris.c:1312
msgid "invalid operand for 'b' modifier"
msgstr "operando inválido para el modificador 'b'"
-#: config/cris/cris.c:1294
+#: config/cris/cris.c:1324
msgid "invalid operand for 'v' modifier"
msgstr "operando inválido para el modificador 'v'"
-#: config/cris/cris.c:1304
+#: config/cris/cris.c:1334
msgid "invalid operand for 'P' modifier"
msgstr "operando inválido para el modificador 'P'"
-#: config/cris/cris.c:1311
+#: config/cris/cris.c:1341
msgid "invalid operand for 'p' modifier"
msgstr "operador inválido para el modificador 'p'"
-#: config/cris/cris.c:1350
+#: config/cris/cris.c:1380
msgid "invalid operand for 'z' modifier"
msgstr "operando inválido para el modificador 'z'"
-#: config/cris/cris.c:1381 config/cris/cris.c:1411
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
msgid "invalid operand for 'H' modifier"
msgstr "operando inválido para el modificador 'H'"
-#: config/cris/cris.c:1387
+#: config/cris/cris.c:1417
msgid "bad register"
msgstr "registro erróneo"
-#: config/cris/cris.c:1425
+#: config/cris/cris.c:1455
msgid "invalid operand for 'e' modifier"
msgstr "operando inválido para el modificador 'e'"
-#: config/cris/cris.c:1442
+#: config/cris/cris.c:1472
msgid "invalid operand for 'm' modifier"
msgstr "operando inválido para el modificador 'm'"
-#: config/cris/cris.c:1467
+#: config/cris/cris.c:1497
msgid "invalid operand for 'A' modifier"
msgstr "operando inválido para el modificador 'A'"
-#: config/cris/cris.c:1475
+#: config/cris/cris.c:1505
msgid "invalid operand for 'D' modifier"
msgstr "operando inválido para el modificador 'D'"
-#: config/cris/cris.c:1489
+#: config/cris/cris.c:1519
msgid "invalid operand for 'T' modifier"
msgstr "operando inválido para el modificador 'T'"
-#: config/cris/cris.c:1498
+#: config/cris/cris.c:1528
msgid "invalid operand modifier letter"
msgstr "modificador de letra de operando inválido"
-#: config/cris/cris.c:1506
+#: config/cris/cris.c:1536
#, c-format
msgid "internal error: bad register: %d"
msgstr "error interno: registro erróneo: %d"
-#: config/cris/cris.c:1554
+#: config/cris/cris.c:1584
msgid "unexpected multiplicative operand"
msgstr "operando multiplicativo inesperado"
-#: config/cris/cris.c:1574
+#: config/cris/cris.c:1604
msgid "unexpected operand"
msgstr "operando inesperado"
-#: config/cris/cris.c:1609 config/cris/cris.c:1619
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
msgid "unrecognized address"
msgstr "no se reconoce la dirección"
-#: config/cris/cris.c:1975
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr "error interno: insn colateral afectando al efecto principal"
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2262
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr "error interno: cris_side_effect_mode_ok con operandos erróneos"
-#: config/cris/cris.c:2344 config/cris/cris.c:2402
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
msgid "unrecognized supposed constant"
msgstr "supuesta constante no reconocida"
-#: config/cris/cris.c:2443
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "supuesta constante no reconocida en cris_global_pic_symbol"
-#: config/cris/cris.c:2462
+#: config/cris/cris.c:2492
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "no se puede usar -max-stackframe=%d, no está entre 0 y %d"
-#: config/cris/cris.c:2490
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr "especificación de versión CRIS desconocida en -march= o -mcpu= : %s"
-#: config/cris/cris.c:2526
+#: config/cris/cris.c:2556
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "especificación de versión de cpu CRIS desconocida en -mtune= : %s"
-#: config/cris/cris.c:2544
+#: config/cris/cris.c:2574
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC y -fpic no tienen soporte en esta configuración"
-#: config/cris/cris.c:2560
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr "esa opción -g en particular es inválida con -maout y -melinux"
-#: config/cris/cris.c:2790 config/cris/cris.c:2835
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr "efectos colaterales inesperados en la dirección"
#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2932 config/cris/cris.c:2963
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
msgid "unexpected PIC symbol"
msgstr "símbolo PIC inesperado"
-#: config/cris/cris.c:2936
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr "el registro PIC aún no está preparado"
-#: config/cris/cris.c:2949 config/cris/cris.c:3032
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
msgid "unexpected address expression"
msgstr "expresión de dirección inesperada"
-#: config/cris/cris.c:2967
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr "emitiendo un operando PIC, pero el registro PIC aún no está preparado"
-#: config/cris/cris.c:2976
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr "NOTE inesperado como addr_const:"
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr "Compilar para el sistema elinux Etrax basado en 100 sin MMU"
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr "Para elinux, solicitar un tamaño de pila especificado para este programa"
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:336
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Compilar para ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:341
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Compilar para ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:345
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr "Emitir información de depuración detallada en el código ensamblador"
-#: config/cris/cris.h:348
+#: config/cris/cris.h:352
msgid "Do not use condition codes from normal instructions"
msgstr "No usar códigos de condición para las instrucciones normales"
-#: config/cris/cris.h:352
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "No emitir modos de direccionamiento con asignaciones colaterales"
-#: config/cris/cris.h:355
+#: config/cris/cris.h:359
msgid "Do not tune stack alignment"
msgstr "No ajustar la alineación de la pila"
-#: config/cris/cris.h:358
+#: config/cris/cris.h:362
msgid "Do not tune writable data alignment"
msgstr "No ajustar la alineación de los datos modificables"
-#: config/cris/cris.h:361
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr "No ajustar la alineación del código y de datos de sólo lectura"
-#: config/cris/cris.h:370
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr "Alinear código y datos a 32 bits"
-#: config/cris/cris.h:383
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr "No alinear elementos en el código o los datos"
-#: config/cris/cris.h:386
+#: config/cris/cris.h:390
msgid "Do not emit function prologue or epilogue"
msgstr "No emitir prólogo o epílogo de funciones"
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:390
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr "Usar la mayor cantidad de características permitidas por otras opciones"
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:396
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr "Anular -mbest-lib-options"
-#: config/cris/cris.h:428
+#: config/cris/cris.h:432
msgid "Generate code for the specified chip or CPU version"
msgstr "Generar código para el chip especificado o la versión de CPU"
-#: config/cris/cris.h:430
+#: config/cris/cris.h:434
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Ajustar alineación para el chip especificado o la versión de CPU"
-#: config/cris/cris.h:432
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr "Avisar cuando un marco de pila sea más grande que el tamaño especificado"
#. Node: Profiling
-#: config/cris/cris.h:1029
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "no hay FUNCTION_PROFILER para CRIS"
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "Junto con -fpic y -fPIC, no utilizar referencias GOTPLT"
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr "modes_tieable_p erróneos para el registro %s, modo1 %s, modo2 %s"
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr "insn errónea para d30v_print_operand_address:"
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775 config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr "insn erróneo para d30v_print_operand_memory_reference:"
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr "insn erróneo para d30v_print_operand, modificador 'f':"
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr "insn erróneo para d30v_print_operand, modificador 'A':"
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr "insn erróneo para d30v_print_operand, modificador 'M':"
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr "insn erróneo para print_operand, modificador 'F' o 'T':"
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr "insn erróneo para print_operand, modificador 'B':"
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr "insn erróneo para print_operand, modificador 'E':"
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr "insn erróneo para print_operand, modificador 'R':"
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr "insn erróneo para print_operand, modificador 's':"
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr "insn erróneo en d30v_print_operand, caso 0"
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr "d30v_emit_comparison"
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr "llamada errónea a d30v_move_2words"
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr "Activar el uso de las instrucciones condicionales move"
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr "Desactivar el uso de las instrucciones condicionales move"
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr "Soporte para depuración de argumentos en el compilador"
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr "Soporte para depuración de pila en el compilador"
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr "Soporte para depuración de direcciones de memoria en el compilador"
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr "Hacer paralelas las instrucciones adyacentes cortas si es posible"
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr "No hacer paralelas las instrucciones adyacentes"
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
-msgstr "Enlazar programas/datos para estar en la memoria externa por omisión"
+msgstr "Enlazar programas/datos para estar en la memoria externa por defecto"
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
-msgstr "Enlazar programas/datos para estar en la memoria del chip por omisión"
+msgstr "Enlazar programas/datos para estar en la memoria del chip por defecto"
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr "Cambiar los costos de ramificación dentro del compilador"
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr "Cambiar el umbral para la conversión a ejecución condicional"
@@ -9630,31 +9754,27 @@ msgstr "tamaño de la pila > 32k"
msgid "invalid addressing mode"
msgstr "modo de direccionamiento inválido"
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
msgid "bad register extension code"
msgstr "código de extensión de registro erróneo"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
msgid "invalid offset in ybase addressing"
msgstr "desplazamiento inválido en el direccionamiento de ybase"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
msgid "invalid register in ybase addressing"
msgstr "registro inválido en el direccionamiento de ybase"
-#: config/dsp16xx/dsp16xx.c:1990
-msgid "inline float constants not supported on this host"
-msgstr "no se da soporte a constantes inline float en este `host'"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
msgid "invalid shift operator in emit_1600_core_shift"
msgstr "operador de desplazamiento inválido en emit_1600_core_shift"
-#: config/dsp16xx/dsp16xx.c:2469
+#: config/dsp16xx/dsp16xx.c:2428
msgid "invalid mode for gen_tst_reg"
msgstr "modo inválido para gen_tst_reg"
-#: config/dsp16xx/dsp16xx.c:2541
+#: config/dsp16xx/dsp16xx.c:2500
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr "modo inválido para la comparación entera en gen_compare_reg"
@@ -9663,236 +9783,379 @@ msgstr "modo inválido para la comparación entera en gen_compare_reg"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
-msgstr "Pasar los parámetros en los registros (por omisión)"
+msgstr "Pasar los parámetros en los registros (por defecto)"
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr "No pasar los parámetros en los registros"
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
msgid "Generate code for near calls"
msgstr "Generar código para llamadas near"
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr "No generar código para llamadas near"
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
msgid "Generate code for near jumps"
msgstr "Generar código para saltos near"
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr "No generar código para saltos near"
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr "Generar código para una unidad de manipulación de bits"
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr "No generar código para una unidad de manipulación de bits"
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr "Generar código para memoria map1"
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr "Generar código para memoria map2"
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr "Generar código para memoria map3"
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr "Generar código para memoria map4"
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
-msgstr "Generar código extra para datos iniciados"
+msgstr "Generar código extra para datos inicializados"
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr "No permitir que el alojador de registros use registros ybase"
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr "Generar información extra de depuración en el ambiente Luxworks"
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr "Guardar los ficheros temporales en el ambiente Luxworks"
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr "Especificar un nombre alternativo para la sección de texto"
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr "Especificar un nombre alternativo para la sección de datos"
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr "Especificar un nombre alternativo para la sección bss"
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr "Especificar un nombre alternativo para la sección de constantes"
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr "Especificar un nombre alternativo para el chip dsp16xx"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1219 config/dsp16xx/dsp16xx.h:1224 config/dsp16xx/dsp16xx.h:1229 config/dsp16xx/dsp16xx.h:1809 config/dsp16xx/dsp16xx.h:1814
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
msgid "profiling not implemented yet"
msgstr "aún no se ha implementado el análisis de perfil"
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1240 config/dsp16xx/dsp16xx.h:1252
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
msgid "trampolines not yet implemented"
msgstr "aún no se han implementado trampolines"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr "Generar código que el ensamblador de unix pueda manejar"
-
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr "Generar código que un ensamblador imbuído pueda manejar"
-
-#: config/fr30/fr30.c:456
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: dirección sin manejar"
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:480
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: no se reconoce el código %%p"
-#: config/fr30/fr30.c:503
+#: config/fr30/fr30.c:500
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: no se reconoce el código %%b"
-#: config/fr30/fr30.c:524
+#: config/fr30/fr30.c:521
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: no se reconoce el código %%B"
-#: config/fr30/fr30.c:532
+#: config/fr30/fr30.c:529
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: operando inválido para el código %%A"
-#: config/fr30/fr30.c:549
+#: config/fr30/fr30.c:546
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: código %%x inválido"
-#: config/fr30/fr30.c:556
+#: config/fr30/fr30.c:553
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: código %%F inválido"
-#: config/fr30/fr30.c:572
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: código desconocido"
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621 config/fr30/fr30.c:634
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM sin manejar"
-#: config/fr30/fr30.h:57
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
msgstr "Asumiendo espacio de direcciones pequeño"
-#: config/h8300/h8300.c:142
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "cpu desconocido: -mcpu=%s"
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr "-fpic y -gdwarf son incompatibles (-fpic y -g/-gdwarf-2 están bien)"
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "insn errónea para frv_print_operand_address:"
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "Registro erróneo para frv_print_operand_memory_reference_reg:"
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "insn erróneo para frv_print_operand_memory_reference:"
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "insn erróneo en frv_print_operand, const_double errónea"
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'C':"
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'c':"
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'e':"
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'F':"
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'f':"
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'L':"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'M/N':"
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'O':"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "insn erróneo para frv_print_operand, modificador 'P':"
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "insn erróneo en frv_print_operand, caso z"
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "insn erróneo en frv_print_operand, caso 0"
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr "frv_print_operand: código desconocido"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr "Operando output_move_single erróneo"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr "Operando output_move_double erróneo"
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr "Operando output_condmove_single erróneo"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr "frv_registers_update"
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr "frv_registers_used_p"
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr "frv_registers_set_p"
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr "el acumulador no es una constante entera"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr "el número del acumulador está fuera de los límites"
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "acumulador inapropiado para `%s'"
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr "el atributo `%s' espera una constante como argumento"
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "el argumento constante está fuera de rango para `%s'"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr "las funciones de medios no están disponibles a menos que se use -mmedia"
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr "esta función de medios sólo está disponible en el fr500"
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr "esta función de medios sólo está disponible en el fr400"
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr " (frv)"
+
+#: config/h8300/h8300.c:314
msgid "-ms2600 is used without -ms"
msgstr "se usó -ms2600 sin -ms"
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr "se usó -mn sin -mh ó -ms"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
-msgstr "Generar código H8/S"
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
+msgstr "Generar código H8S"
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
-msgstr "No generar código H8/S"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
+msgstr "No generar código H8S"
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
-msgstr "Generar código H8/S2600"
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr "Generar código H8S/2600"
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
-msgstr "No generar código H8/S2600"
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
+msgstr "No generar código H8S/2600"
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr "Hacer enteros de 32 bits de anchura"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr "Usar registros para paso de parámetros"
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr "No usar registros para paso de parámetros"
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr "Considerar lento el acceso a la memoria de tamaño byte"
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr "Activar el relajamiento del enlazador"
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr "Generar código H8/300H"
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr "Activar el modo normal"
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr "No generar código H8/300H"
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr "Usar reglas de alineación H8/300"
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr "basura al final de #pragma map"
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
msgid "malformed #pragma map, ignored"
msgstr "#pragma map malformado, ignorado"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr "el nombre real es demasiado largo - se ignora el alias"
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr "el nombre de alias es demasiado largo - se ignora el alias"
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr "error interno--no hay saltos a continuación de la comparación:"
@@ -9900,331 +10163,366 @@ msgstr "error interno--no hay saltos a continuación de la comparación:"
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr "Generar instrucciones char"
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr "No generar instrucciones char"
-#: config/i386/i386.c:925
+#: config/i386/i386.c:1050
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "el modelo de código %s no tiene soporte en el modo PIC"
-#: config/i386/i386.c:935 config/sparc/sparc.c:344
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "valor erróneo (%s) para el interruptor -mcmodel="
-#: config/i386/i386.c:950
+#: config/i386/i386.c:1075
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "valor erróneo (%s) para el interruptor -masm="
-#: config/i386/i386.c:953
+#: config/i386/i386.c:1078
#, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr "el modelo de código `%s' no tiene soporte en el modo de bit %s"
-#: config/i386/i386.c:956
+#: config/i386/i386.c:1081
msgid "code model `large' not supported yet"
msgstr "aún no hay soporte para el modelo de código `large'"
-#: config/i386/i386.c:958
+#: config/i386/i386.c:1083
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "no está compilado el modo bit-%i"
-#: config/i386/i386.c:988 config/mips/mips.c:4989
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "valor erróneo (%s) para el interruptor -march="
-#: config/i386/i386.c:999 config/mips/mips.c:4945
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "valor erróneo (%s) para el interruptor -mcpu="
-#: config/i386/i386.c:1018
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d no está entre 0 y %d"
-#: config/i386/i386.c:1031
+#: config/i386/i386.c:1154
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops es obsoleto, use -falign-loops"
-#: config/i386/i386.c:1036 config/i386/i386.c:1049 config/i386/i386.c:1062
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d no está entre 0 y %d"
-#: config/i386/i386.c:1044
+#: config/i386/i386.c:1167
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps es obsoleto, use -falign-jumps"
-#: config/i386/i386.c:1057
+#: config/i386/i386.c:1180
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions es obsoleto, use -falign-functions"
-#: config/i386/i386.c:1095
+#: config/i386/i386.c:1218
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred-stack-boundary=%d no está entre %d y 12"
-#: config/i386/i386.c:1107
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d no está entre 0 y 5"
-#: config/i386/i386.c:1129
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "valor erróneo (%s) para el interruptor -mtls-dialect="
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double no tiene sentido en el modo 64bit"
-#: config/i386/i386.c:1131
+#: config/i386/i386.c:1265
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "la convención de llamadas -mrtd no tiene soporte en el modo de 64 bit"
-#: config/i386/i386.c:1147 config/i386/i386.c:1158
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "el conjunto de instrucciones SSE está desactivado, usando la aritmética 387"
-#: config/i386/i386.c:1163
+#: config/i386/i386.c:1297
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "el conjunto de instrucciones 387 está desactivado, usando la aritmética SSE"
-#: config/i386/i386.c:1170
+#: config/i386/i386.c:1304
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "valor erróneo (%s) para el interruptor -mfpmath="
-#: config/i386/i386.c:1300
+#: config/i386/i386.c:1436
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr "el atributo `%s' requiere una constante entera como argumento"
-#: config/i386/i386.c:1306
+#: config/i386/i386.c:1442
#, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "el argumento para el atributo `%s' es más grande que %d"
-#: config/i386/i386.c:5363
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
msgid "invalid UNSPEC as operand"
msgstr "UNSPEC inválido como operando"
-#: config/i386/i386.c:5596
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr "los registros extendidos no tiene mitades superiores"
-#: config/i386/i386.c:5611
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr "tamaño de operando sin soporte para el registro extendido"
-#: config/i386/i386.c:5884
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido"
-#: config/i386/i386.c:5930
+#: config/i386/i386.c:7024
#, c-format
msgid "invalid operand code `%c'"
msgstr "código de operando `%c' inválido"
-#: config/i386/i386.c:9867
+#: config/i386/i386.c:7071
+msgid "invalid constraints for operand"
+msgstr "restricciones inválidas para el operando"
+
+#: config/i386/i386.c:11271
msgid "unknown insn mode"
msgstr "modo insn desconocido"
#. @@@ better error message
-#: config/i386/i386.c:11730 config/i386/i386.c:11763
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
msgid "selector must be an immediate"
msgstr "el selector debe ser un inmediato"
#. @@@ better error message
-#: config/i386/i386.c:11921 config/i386/i386.c:11949
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
msgid "mask must be an immediate"
msgstr "la máscara debe ser un inmediato"
-#: config/i386/winnt.c:94
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr "el desplazamiento debe ser un inmediato"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "la definición de la función se declaró como `auto'"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "la variable estática `%s' está marcada como dllimport"
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
#, c-format
msgid "`%s' attribute only applies to variables"
-msgstr "el atributo `%s' solamente aplica a variables"
+msgstr "el atributo `%s' solamente se aplica a variables"
+
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "la función `%s' redeclarada con el atributo noinline"
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
#, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr "`%s' es declarado como exportado a e importado de una DLL al mismo tiempo"
-#: config/i386/cygwin.h:51
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr "Usar la interfaz Cygwin"
-#: config/i386/cygwin.h:53
+#: config/i386/cygwin.h:46
msgid "Use the Mingw32 interface"
msgstr "Usar la interfaz Mingw32"
-#: config/i386/cygwin.h:54
+#: config/i386/cygwin.h:47
msgid "Create GUI application"
msgstr "Crear una aplicación con interfaz gráfica de usuario (GUI)"
-#: config/i386/cygwin.h:55
+#: config/i386/cygwin.h:48
msgid "Don't set Windows defines"
msgstr "No establecer las definiciones de Windows"
-#: config/i386/cygwin.h:56
+#: config/i386/cygwin.h:49
msgid "Set Windows defines"
msgstr "Establecer las definiciones de Windows"
-#: config/i386/cygwin.h:58
+#: config/i386/cygwin.h:50
msgid "Create console application"
msgstr "Crear una aplicación de consola"
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
msgid "Generate code for a DLL"
msgstr "Generar código para una DLL"
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
msgid "Ignore dllimport for functions"
msgstr "Ignorar dllimport para funciones"
-#: config/i386/cygwin.h:63
+#: config/i386/cygwin.h:55
msgid "Use Mingw-specific thread support"
msgstr "Usar soporte de hilos específico de Mingw"
-#: config/i386/cygwin.h:257
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr "se ignora -f%s para el objetivo (todo el código es independiente de posición)"
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr "Retener la información MXDB estándard"
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr "Retener información de la leyenda"
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr "General información de leyenda externa"
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr "Emitir información de identificación en el fichero .s"
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr "Advertir cuando el argumento de una función es una estructura"
-
-#: config/i386/dgux.h:252
-msgid "argument is a structure"
-msgstr "el argumento es una estructura"
-
-#: config/i386/djgpp.h:201
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr "se ignora -mbnu210 (la opción es obsoleta)"
-#: config/i386/i386.h:45 config/mips/mips.h:186
-msgid "half-pic init called on systems that don't support it"
-msgstr "se llamó a half-pic init en sistemas que no le dan soporte"
-
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:303
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr "Convención de llamada alternativa"
-#: config/i386/i386.h:305 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Usar convención de llamada normal"
-#: config/i386/i386.h:307
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr "Alinear algunos doubles en límites de dword"
-#: config/i386/i386.h:309
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr "Alinear doubles en límites de word"
-#: config/i386/i386.h:311
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
-msgstr "Locales sin valores iniciales en .bss"
+msgstr "Locales sin inicializar en .bss"
-#: config/i386/i386.h:313
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
-msgstr "Locales sin valores iniciales en .data"
+msgstr "Locales sin inicializar en .data"
-#: config/i386/i386.h:315 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Usar matemática IEEE para comparaciones fp"
-#: config/i386/i386.h:317
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "No usar matemática IEEE para comparaciones fp"
-#: config/i386/i386.h:319
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr "Devolver valores de funciones en registros FPU"
-#: config/i386/i386.h:321
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr "No devolver valores de funciones en registros FPU"
-#: config/i386/i386.h:323
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "No generar sin, cos, sqrt para FPU"
-#: config/i386/i386.h:325
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generar sin, cos, sqrt para FPU"
-#: config/i386/i386.h:327
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr "Omitir el marco de referencia para las funciones hojas"
-#: config/i386/i386.h:330
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr "Habilitar la prueba de la pila"
#. undocumented
#. undocumented
-#: config/i386/i386.h:335
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr "Alinear destino de las operaciones de cadenas"
-#: config/i386/i386.h:337
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr "No alinear destino de las operaciones de cadenas"
-#: config/i386/i386.h:339
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr "Convertir a inline todas las operaciones de cadenas conocidas"
-#: config/i386/i386.h:341
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr "No convertir a inline todas las operaciones de cadenas conocidas"
-#: config/i386/i386.h:343 config/i386/i386.h:348
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr "Usar instrucciones push para guardar los argumentos de salida"
-#: config/i386/i386.h:345 config/i386/i386.h:350
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr "No usar instrucciones push para guardar los argumentos de salida"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:354
msgid "Support MMX built-in functions"
msgstr "Dar soporte para funciones internas MMX"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:356
msgid "Do not support MMX built-in functions"
msgstr "No dar soporte para funciones internas MMX"
-#: config/i386/i386.h:357
+#: config/i386/i386.h:358
msgid "Support 3DNow! built-in functions"
msgstr "Dar soporte para funciones internas 3DNow!"
@@ -10236,39 +10534,39 @@ msgstr "No dar soporte para funciones internas 3DNow!"
msgid "Support MMX and SSE built-in functions and code generation"
msgstr "Dar soporte para funciones internas y generación de código MMX y SSE"
-#: config/i386/i386.h:365
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr "No dar soporte para funciones internas y generación de código MMX y SSE"
-#: config/i386/i386.h:367
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Dar soporte para funciones internas y generación de código MMX, SSE y SSE2"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "No dar soporte para funciones internas y generación de código MMX, SSE y SSE2"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:370
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) es 16"
-#: config/i386/i386.h:374
+#: config/i386/i386.h:372
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) es 12"
-#: config/i386/i386.h:376
+#: config/i386/i386.h:374
msgid "Generate 64bit x86-64 code"
msgstr "Generar código x86-64 de 64bit"
-#: config/i386/i386.h:378
+#: config/i386/i386.h:376
msgid "Generate 32bit i386 code"
msgstr "Generar código i386 de 32bit"
-#: config/i386/i386.h:380
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr "Usar la zona roja en el código x86-64"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:380
msgid "Do not use red-zone in the x86-64 code"
msgstr "No usar la zona roja en el código x86-64"
@@ -10281,19 +10579,19 @@ msgstr "No usar la zona roja en el código x86-64"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:428 config/rs6000/rs6000.h:428 config/sparc/sparc.h:641
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr "Código de calendarizador para el CPU dado"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:411
msgid "Generate floating point mathematics using given instruction set"
msgstr "Generar matemáticas de coma flotante usando el conjunto de instrucciones dado"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr "Generar código para el CPU dado"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr "Número de registros usados para pasar argumentos enteros"
@@ -10307,71 +10605,41 @@ msgstr "Número de registros usados para pasar argumentos enteros"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:436 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "El código de ciclo es alineado a esta potencia de 2"
-#: config/i386/i386.h:438 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "Los objetivos de salto son alineados a esta potencia de 2"
-#: config/i386/i386.h:440 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "Los inicios de las funciones son alineados a esta potencia de 2"
-#: config/i386/i386.h:443
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Se trata de mantenter la pila alineada a esta potencia de 2"
-#: config/i386/i386.h:445
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Las ramificaciones son así de caras (1-5, unidades arbitrarias)"
-#: config/i386/i386.h:447
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr "Usar el modelo de código del x86-64 dado"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:453
+#: config/i386/i386.h:434
msgid "Use given assembler dialect"
msgstr "Usar el dialecto del ensamblador dado"
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr "El análisis de perfil usa mcount"
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr "Emitir código semi-PIC"
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr "Emitir código objeto ELF"
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr "Usar el dialecto de almacenamiento thread-local dado"
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr "Emitir código objeto ROSE"
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr "Los símbolos son precedidos por un subrayado"
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr "Alinear a límites >word"
-
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr "Usar mcount para análisis de perfil"
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
-msgstr "Usar mcount_ptr para análisis de perfil"
-
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr "Generar salida ELF"
@@ -10403,32 +10671,31 @@ msgstr "la variable de ambiente DJGPP apunta al fichero faltante '%s'"
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr "la variable de ambiente DJGPP apunta al fichero corrupto '%s'"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr "Generar código que use el FPU"
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29 config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr "No generar código que use el FPU"
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr "disculpe, no se ha implementado: #pragma align NOMBRE=TAMAÑO"
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
msgstr "#pragma align mal formado - ignorado"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr "disculpe, no se ha implementado: #pragma noalign NOMBRE"
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8437
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "se definieron arquitecturas en conflicto - usando las series C"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "se definieron arquitecturas en conflicto - usando las series K"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 e iC3.0 son incompatibles - usando iC3.0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
msgstr "no se da soporte a la expresión del límite de la pila"
@@ -10486,6 +10753,10 @@ msgstr "Generar código CA"
msgid "Generate CF code"
msgstr "Generar código CF"
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Usar coma flotante de software"
+
#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr "Usar entradas de función hojas alternadas"
@@ -10548,7 +10819,8 @@ msgstr "Presentar tipos como en el gcc v1.3 de Intel"
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr "No presentar tipos como en el gcc v1.3 de Intel"
-#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86 config/sparc/linux64.h:143 config/sparc/netbsd-elf.h:238
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr "Usar long doubles de 64 bit"
@@ -10560,186 +10832,192 @@ msgstr "Activar la relajación del enlazador"
msgid "Do not enable linker relaxation"
msgstr "Desactivar la relajación del enlazador"
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:342 config/i960/i960.h:352
-msgid "conflicting architectures defined - using C series"
-msgstr "se definieron arquitecturas en conflicto - usando las series C"
-
-#: config/i960/i960.h:347
-msgid "conflicting architectures defined - using K series"
-msgstr "se definieron arquitecturas en conflicto - usando las series K"
-
-#: config/i960/i960.h:362
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr "iC2.0 e iC3.0 son incompatibles - usando iC3.0"
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:373
-msgid "the -mlong-double-64 option does not work yet"
-msgstr "el soporte para -mlong-double-64 aún no funciona"
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr "#pragma interno malformado"
-#: config/ia64/ia64.c:3554
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: código desconocido"
-#: config/ia64/ia64.c:3828
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2"
-#: config/ia64/ia64.c:3855
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s es un rango vacío"
-#: config/ia64/ia64.c:3920
-msgid "cannot optimize division for both latency and throughput"
-msgstr "no se puede optimizar la división para latencia y salida al mismo tiempo"
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "no se puede optimizar la división de coma flotante para latencia y salida al mismo tiempo"
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "no se puede optimizar la división entera para latencia y salida al mismo tiempo"
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "valor erróneo (%s) para el interruptor -mtls-size="
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:119
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr "Generar código big endian"
-#: config/ia64/ia64.h:121 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr "Generar código little endian"
-#: config/ia64/ia64.h:123
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr "Generar código para as de GNU"
-#: config/ia64/ia64.h:125
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr "Generar código as de Intel"
-#: config/ia64/ia64.h:127
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr "Generar código para ld de GNU"
-#: config/ia64/ia64.h:129
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr "Generar código para ld de Intel"
-#: config/ia64/ia64.h:131
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr "Generar código sin registro GP"
-#: config/ia64/ia64.h:133
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr "Emitir bits de parada antes y después de asms extendidos con volatile"
-#: config/ia64/ia64.h:135
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "No emitir bits de parada antes y después de asms extendidos con volatile"
-#: config/ia64/ia64.h:137
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr "Emitir código para el procesador Itanium (TM) paso B"
-#: config/ia64/ia64.h:139
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr "Usar nombres de registro in/loc/out"
-#: config/ia64/ia64.h:141
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr "Desactivar el uso de sdata/scommon/sbss"
-#: config/ia64/ia64.h:143
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr "Activar el uso de sdata/scommon/sbss"
-#: config/ia64/ia64.h:145
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp es constante (pero hay save/restore de gp en llamadas indirectas)"
-#: config/ia64/ia64.h:147
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr "Generar código auto-reubicable"
-#: config/ia64/ia64.h:149
-msgid "Generate inline division, optimize for latency"
-msgstr "Generar división inline, optimizada para latencia"
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Generar división de coma flotante inline, optimizada para latencia"
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Generar división de coma flotante inline, optimizada para salida"
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Generar división entera inline, optimizada para latencia"
-#: config/ia64/ia64.h:151
-msgid "Generate inline division, optimize for throughput"
-msgstr "Generar división inline, optimizada para salida"
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Generar división entera inline, optimizada para salida"
-#: config/ia64/ia64.h:153
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "Activar la información de la línea de depuración Dwarf 2 a través de as de GNU"
-#: config/ia64/ia64.h:155
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "Desactivar la información de la línea de depuración Dwarf 2 a través de as de GNU"
-#: config/ia64/ia64.h:183
+#: config/ia64/ia64.h:223
msgid "Specify range of registers to make fixed"
msgstr "Especifica el rango de registros a convertir en fijos"
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr "operando erróneo"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "valor erróneo (%s) para el interruptor -mmodel"
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "valor erróneo (%s) para el interruptor -msdata"
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, c-format
msgid "invalid argument of `%s' attribute"
msgstr "argumento inválido del atributo `%s'"
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr "los objetos const no pueden ir en .sdata/.sbss"
-#: config/m32r/m32r.c:2248
+#: config/m32r/m32r.c:2256
#, c-format
msgid "invalid operand to %%s code"
msgstr "operando inválido para el código %%s"
-#: config/m32r/m32r.c:2255
+#: config/m32r/m32r.c:2263
#, c-format
msgid "invalid operand to %%p code"
msgstr "operador inválido para el código %%p"
-#: config/m32r/m32r.c:2311
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr "insn erróneo para 'A'"
-#: config/m32r/m32r.c:2363
+#: config/m32r/m32r.c:2370
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "operador inválido para el código %%T/%%B"
-#: config/m32r/m32r.c:2386
+#: config/m32r/m32r.c:2393
#, c-format
msgid "invalid operand to %%N code"
msgstr "operando inválido para el código %%N"
-#: config/m32r/m32r.c:2431
+#: config/m32r/m32r.c:2438
msgid "pre-increment address is not a register"
msgstr "la dirección de pre-incremento no es un registro"
-#: config/m32r/m32r.c:2438
+#: config/m32r/m32r.c:2445
msgid "pre-decrement address is not a register"
msgstr "la dirección de pre-decremento no es un registro"
-#: config/m32r/m32r.c:2445
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr "la dirección de post-incremento no es un registro"
-#: config/m32r/m32r.c:2523 config/m32r/m32r.c:2539 config/rs6000/rs6000.c:11065
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
msgid "bad address"
msgstr "dirección errónea"
-#: config/m32r/m32r.c:2544
+#: config/m32r/m32r.c:2551
msgid "lo_sum not of register"
msgstr "lo_sum no de un registro"
@@ -10768,46 +11046,55 @@ msgstr "Tamaño del código: small, medium o large"
msgid "Small data area: none, sdata, use"
msgstr "Área de datos small: none, sdata, use"
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "se ignora -f%s para 68HC11/68HC12 (sin soporte)"
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr "los atributos `trap' y `far' no son compatibles, se ignora `far'"
+
+#: config/m68hc11/m68hc11.c:1311
+msgid "`trap' attribute is already used"
+msgstr "el atributo `trap' ya está en uso"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3170 config/m68hc11/m68hc11.c:3544
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr "no se maneja move insn"
-#: config/m68hc11/m68hc11.c:3390 config/m68hc11/m68hc11.c:3474 config/m68hc11/m68hc11.c:3747
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
msgid "invalid register in the move instruction"
msgstr "registro inválido en la instrucción move"
-#: config/m68hc11/m68hc11.c:3424
+#: config/m68hc11/m68hc11.c:3613
msgid "invalid operand in the instruction"
msgstr "operando inválido en la instrucción"
-#: config/m68hc11/m68hc11.c:3721
+#: config/m68hc11/m68hc11.c:3920
msgid "invalid register in the instruction"
msgstr "registro inválido en la instrucción"
-#: config/m68hc11/m68hc11.c:3754
+#: config/m68hc11/m68hc11.c:3953
msgid "operand 1 must be a hard register"
msgstr "el operando 1 debe ser un registro fijo"
# FIXME: ¿O 'rotación de insn inválida'? Revisar en el código. cfuga
-#: config/m68hc11/m68hc11.c:3771
+#: config/m68hc11/m68hc11.c:3970
msgid "invalid rotate insn"
msgstr "rotate insn inválido"
-#: config/m68hc11/m68hc11.c:4196
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr "se usaron los registros IX, IY y Z en el mismo INSN"
-#: config/m68hc11/m68hc11.c:4521 config/m68hc11/m68hc11.c:4823
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr "no se puede reemplazar el registro-z"
-#: config/m68hc11/m68hc11.c:4886
+#: config/m68hc11/m68hc11.c:5094
msgid "invalid Z register replacement for insn"
msgstr "reemplazo de registro Z inválido para el insn"
@@ -10815,36 +11102,62 @@ msgstr "reemplazo de registro Z inválido para el insn"
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:155
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr "Compilar con el modo entero de 16-bit"
-#: config/m68hc11/m68hc11.h:157
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr "Compilar con el modo entero de 32-bit"
-#: config/m68hc11/m68hc11.h:159
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr "Se permite el auto pre/post decremento incremento"
-#: config/m68hc11/m68hc11.h:161
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr "No se permite el auto pre/post decremento incremento"
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr "Se permiten las instrucciones min/max"
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr "No se permiten las instrucciones min/max"
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr "Usar call y rtc para llamadas y devoluciones de función"
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Usar jsr y rts para llamadas y devoluciones de función"
+
# Ya sé que "soft" se refiere a un tipo de dato no fijo, pero no se me
# ocurre en este momento una mejor traducción. cfuga
-#: config/m68hc11/m68hc11.h:163
+#: config/m68hc11/m68hc11.h:188
msgid "Do not use direct addressing mode for soft registers"
msgstr "No usar modo de direccionamiento directo para los registros suaves"
-#: config/m68hc11/m68hc11.h:165 config/m68hc11/m68hc11.h:169
+# Ya sé que "soft" se refiere a un tipo de dato no fijo, pero no se me
+# ocurre en este momento una mejor traducción. cfuga
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr "Usar modo de direccionamiento directo para los registros suaves"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr "Compilar para un 68HC11"
-#: config/m68hc11/m68hc11.h:167 config/m68hc11/m68hc11.h:171
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr "Compilar para un 68HC12"
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr "Compilar para un 68HCS12"
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10854,29 +11167,33 @@ msgstr "Compilar para un 68HC12"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:185
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr "Especificar el orden de asignación de registros"
-#: config/m68hc11/m68hc11.h:187
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr "Indicar el número de registros suaves disponibles"
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d no está entre 1 y %d"
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d no está entre 1 y %d"
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d no está entre 1 y %d"
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "-fPIC actualmente no tiene soporte en el 68000 o 68010\n"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -10999,91 +11316,84 @@ msgstr "No permitir referencias a memoria sin alinear"
msgid "Use unaligned memory references"
msgstr "Usar referencias a memoria sin alinear"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr "-fPIC actualmente no tiene soporte en el 68000 o 68010\n"
-
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr "monitor interno de gcc: short-branch(%x)"
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
msgid "internal gcc error: Can't express symbolic location"
msgstr "error interno de gcc: No se puede expresar la ubicación simbólica"
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr "el argumento #%d es una estructura"
-#: config/m88k/m88k.c:2882
+#: config/m88k/m88k.c:2816
#, c-format
msgid "%%R not followed by %%B/C/D/E"
msgstr "%%R no es seguido por %%B/C/D/E"
-#: config/m88k/m88k.c:2950
+#: config/m88k/m88k.c:2884
#, c-format
msgid "invalid %%x/X value"
msgstr "valor %%x/X inválido"
-#: config/m88k/m88k.c:2973 config/rs6000/rs6000.c:6509
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "valor %%Q inválido"
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
#, c-format
msgid "invalid %%q value"
msgstr "valor %%q inválido"
-#: config/m88k/m88k.c:2979
+#: config/m88k/m88k.c:2913
#, c-format
msgid "invalid %%o value"
msgstr "valor %%o inválido"
-#: config/m88k/m88k.c:2986 config/rs6000/rs6000.c:6472
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
msgid "invalid %%p value"
msgstr "valor %%p inválido"
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
#, c-format
msgid "invalid %%s/S value"
msgstr "valor %%s/S inválido"
-#: config/m88k/m88k.c:3015
+#: config/m88k/m88k.c:2949
#, c-format
msgid "invalid %%P operand"
msgstr "operando %%P inválido"
-#: config/m88k/m88k.c:3046 config/romp/romp.c:682
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
msgid "invalid %%B value"
msgstr "valor %%B inválido"
-#: config/m88k/m88k.c:3076
+#: config/m88k/m88k.c:3010
#, c-format
msgid "invalid %%D value"
msgstr "valor %%D inválido"
-#: config/m88k/m88k.c:3089
+#: config/m88k/m88k.c:3023
#, c-format
msgid "`%%d' operand isn't a register"
msgstr "el operando `%%d' no es un registro"
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr "el operando es r0"
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr "el operando es const_double"
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "código inválido"
@@ -11107,7 +11417,7 @@ msgstr "-mshort-data-%s es demasiado grande "
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mshort-data-%s y PIC son incompatibles"
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "opción inválida `-mstack-increment=%s'"
@@ -11132,10 +11442,9 @@ msgstr "Establecer la alineación máxima a 8"
msgid "Do not use the divide instruction"
msgstr "No usar la instrucción divide"
-# Error de dedo. Avisar a los desarrolladores. cfuga
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
-msgstr "No mediar en tamaños arbitrarios en operaciones de bit"
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr "No mediar en inmediatos de tamaños arbitrarios en operaciones de bit"
#: config/mcore/mcore.h:142
msgid "Always treat bit-field as int-sized"
@@ -11165,217 +11474,229 @@ msgstr "Generar código para el M*Core M340"
msgid "Maximum amount for a single stack increment operation"
msgstr "Cantidad máxima para una sola operación de incremento de pila"
-#: config/mips/mips.c:4815
-msgid "The -march option is incompatible to -mipsN and therefore ignored."
-msgstr "La opción -march es incompatible con -mipsN y por lo tanto se ignora."
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "valor erróneo (%s) para el interruptor -mabi="
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:5158
#, c-format
-msgid "-mips%d not supported"
-msgstr "-mips%d no tiene soporte"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr "-mips%d tiene conflictos con las otras opciones de la arquitectura, las cuales especifican un procesador MIPS%d"
-#: config/mips/mips.c:4848
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr "valor erróneo (%s) para el interruptor -mips"
-#: config/mips/mips.c:4869
+#: config/mips/mips.c:5180
#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "valor erróneo (%s) para el interruptor -mabi="
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-march=%s no es compatible con la ABI seleccionada"
-#: config/mips/mips.c:4907
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "-mabi=%s no tiene soporte para -mips%d"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "se utiliza -mgp64 con un procesador de 32-bit"
-#: config/mips/mips.c:4924
-msgid "this target does not support the -mabi switch"
-msgstr "este objetivo no tiene soporte para el interruptor -mabi"
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "se utiliza -mgp32 cun una ABI de 64-bit"
-#: config/mips/mips.c:5034
-#, c-format
-msgid "bad value (%s) for -mtune= switch"
-msgstr "valor erróneo (%s) para el interruptor -mtune="
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "se utiliza -mgp64 con una ABI de 32-bit"
-#: config/mips/mips.c:5044
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mips%d not tiene soporte para registros fp de 64 bit"
+msgid "unsupported combination: %s"
+msgstr "combinación sin soporte: %s"
-#: config/mips/mips.c:5050
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mips%d no tiene soporte para registros gp de 64 bit"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "la generación de instrucciones Probables a Ramificar está activada, pero no tiene soporte por la arquitectura"
-#: config/mips/mips.c:5071
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
-msgstr "-G es incompatible con el código PIC el cual es por omisión"
+msgstr "-G es incompatible con el código PIC el cual es por defecto"
-#: config/mips/mips.c:5087
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr "-membedded-pic y -mabicalls son incompatibles"
-#: config/mips/mips.c:5090
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr "-G y -membedded-pic son incompatibles"
-#: config/mips/mips.c:5141
+#: config/mips/mips.c:5369
#, c-format
msgid "invalid option `entry%s'"
msgstr "opción inválida `entry%s'"
-#: config/mips/mips.c:5144
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr "-mentry sólo tiene significado con -mips-16"
-#: config/mips/mips.c:5484
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "error interno: se encontró %%) sin un %%( en el patrón del ensamblador"
-#: config/mips/mips.c:5498
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "error interno: se encontró %%] sin un %%[ en el patrón del ensamblador"
-#: config/mips/mips.c:5511
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "error interno: se encontró %%> sin un %%< en el patrón del ensamblador"
-#: config/mips/mips.c:5524
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "error interno: se encontró %%} sin un %%{ en el patrón del ensamblador"
-#: config/mips/mips.c:5538
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: puntuación desconocida '%c'"
-#: config/mips/mips.c:5547 config/xtensa/xtensa.c:1913
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
-msgstr "PRINT_OPERAND apuntador nulo"
+msgstr "PRINT_OPERAND puntero nulo"
-#: config/mips/mips.c:5680
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "uso inválido de %%d, %%x, o %%X"
-#: config/mips/mips.c:5723 config/xtensa/xtensa.c:2012
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
-msgstr "PRINT_OPERAND_ADDRESS, apuntador nulo"
+msgstr "PRINT_OPERAND_ADDRESS, puntero nulo"
-#: config/mips/mips.c:5947
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr "el formato ECOFF de MIPS no permite el cambio de nombres de fichero dentro de funciones con #line"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6552
msgid "can't rewind temp file"
msgstr "no se puede rebobinar el fichero temporal"
-#: config/mips/mips.c:6265
+#: config/mips/mips.c:6556
msgid "can't write to output file"
msgstr "no se puede escribir al fichero de salida"
-#: config/mips/mips.c:6268
+#: config/mips/mips.c:6559
msgid "can't read from temp file"
msgstr "no se puede leer desde el fichero temporal"
-#: config/mips/mips.c:6271
+#: config/mips/mips.c:6562
msgid "can't close temp file"
msgstr "no se puede cerrar el fichero temporal"
-#: config/mips/mips.c:6704
+#: config/mips/mips.c:7003
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "gp_offset (%ld) o end_offset (%ld) es menor a cero"
-#: config/mips/mips.c:6866
+#: config/mips/mips.c:7112
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "fp_offset (%ld) o end_offset (%ld) es menor a cero"
-#: config/mips/mips.c:8927
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "no se pueden manejar llamadas inconsistentes a `%s'"
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr "el nombre de cpu debe estar en minúsculas"
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr "valor erróneo (%s) para %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
-msgstr "No está el crt0.o por omisión"
+msgstr "No está el crt0.o por defecto"
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr "Usar tipo int de 64-bit"
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr "Usar tipo long de 64-bit"
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr "Usar tipo long de 32-bit"
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr "Optimizar las cargas de las direcciones lui/addiu"
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr "No ptimizar las cargas de las direcciones lui/addiu"
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr "Utilizar el as de MIPS"
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr "Utilizar el as de GNU"
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr "Usar nombres simbólicos de registro"
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr "No usar nombres simbólicos de registro"
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr "Utilizar secciones sdata/sbss relativas a GP"
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr "No utilizar secciones sdata/sbss relativas a GP"
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr "Mostrar la salida de estadísticas del compilador"
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr "No mostrar la salida de estadísticas del compilador"
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr "No optimizar los movimientos de bloques"
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr "Optimizar los movimientos de bloques"
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr "Usar el postpase asm mips-tfile"
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr "No usar el postpase asm mips-tfile"
@@ -11385,269 +11706,252 @@ msgstr "No usar el postpase asm mips-tfile"
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr "Usar coma flotante de hardware"
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr "Usar registros FP de 64-bit"
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr "Usar registros FP de 32-bit"
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr "Usar registros generales de 64-bit"
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr "Usar registros generales de 32-bit"
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr "Usar PIC de Irix"
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr "No usar PIC de Irix"
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr "Usar PIC de OSF"
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr "No usar PIC de OSF"
-
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr "Usar llamadas indirectas"
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr "No usar llamadas indirectas"
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr "Usar PIC imbuído"
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr "No usar PIC imbuído"
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr "Usar la ROM en lugar de la RAM"
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr "No usar la ROM en lugar de la RAM"
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
-msgstr "Poner las constantes sin valor inicial en ROM (necesita -membedded-data)"
+msgstr "Poner las constantes sin inicializar en ROM (necesita -membedded-data)"
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
-msgstr "No poner las constantes sin valor inicial en ROM"
+msgstr "No poner las constantes sin inicializar en ROM"
#. Macro to define tables used to set the flags.
-#: config/mips/mips.h:444 config/xtensa/xtensa.h:110
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr "Usar el orden de byte big-endian"
-#: config/mips/mips.h:446 config/xtensa/xtensa.h:112
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr "Usar el orden de byte little-endian"
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr "Usar únicamente una sola FP (32-bit)"
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr "No usar únicamente una sola FP (32-bit)"
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr "Usar el acumulador de multiplicación"
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr "No usar el acumulador de multiplicación"
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr "No generar instrucciones multiply/add de corto circuito"
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr "Generar instrucciones multiply/add de corto circuito"
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr "Evitar el bug del primer hardware 4300"
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr "No evitar el bug del primer hardware 4300"
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr "Optimizar para 3900"
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr "Optimizar para 4650"
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr "Atrapar la división entera por cero"
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr "No atrapar la división entera por cero"
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr "Atrapar desbordamientos en la división entera"
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr "No atrapar desbordamientos en la división entera"
-#: config/mips/mips.h:590 config/mips/mips.h:592
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr "Usar instrucciones Propensas a Ramificar, sobreponiendo el valor por defecto para la arquitectura"
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr "No utilizar instrucciones Propensas a Ramificar, sobreponiendo el valor por defecto para la arquitectura"
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr "Especificar el CPU para propósitos de calendarización"
-#: config/mips/mips.h:594
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
msgstr "Especificar el CPU para propósitos de generación de código"
-#: config/mips/mips.h:596
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr "Especificar un ABI"
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr "Especificar el ISA de MIPS Standard"
# Error de dedo de los desarrolladores originales. Avisar. cfuga
-#: config/mips/mips.h:598
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr "Usar pseudo ops mips16 de entry/exit"
-#: config/mips/mips.h:600
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr "No usar instrucciones MIPS16"
-#: config/mips/mips.h:604
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr "No llamar ninguna función de limpieza de caché"
-#: config/mips/mips.h:606
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr "Especificar la función de limpieza de caché"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2873
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr "análisis de perfil de las funciones mips16"
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, c-format
msgid "-f%s not supported: ignored"
msgstr "-f%s no tiene soporte: ignorado"
-#: config/mmix/mmix.c:596
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr "el valor del tipo de la función es demasiado grande, necesita %d registros, sólo se tienen %d registros para esto"
-#: config/mmix/mmix.c:677
-msgid "stack frame too big"
-msgstr "marco de pila demasiado grande"
-
-#: config/mmix/mmix.c:705
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr "el marco de pila no es un múltiplo de 8 bytes: %d"
-
-#: config/mmix/mmix.c:1044
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr "el marco de pila no es un múltiplo de octabyte: %d"
-
-#: config/mmix/mmix.c:1203
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr "soporte para function_profiler para MMIX"
-#: config/mmix/mmix.c:1240
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr "no hay varargs ni stdarg en mmix_setup_incoming_varargs"
-
-#: config/mmix/mmix.c:1246
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX Interno: El último vararg nombrado no cabe en un registro"
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1608
-msgid "oops, not debugged; fixing up value:"
-msgstr "ups, no depurado; componiendo el valor:"
-
-#: config/mmix/mmix.c:2184 config/mmix/mmix.c:2318
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX Interno: Se esperaba un CONST_INT, no esto"
-#: config/mmix/mmix.c:2192 config/mmix/mmix.c:2216 config/mmix/mmix.c:2335
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX Interno: Registro erróneo: %d"
-#: config/mmix/mmix.c:2263
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr "MMIX Interno: Valor erróneo para 'm', no es un CONST_INT"
-#: config/mmix/mmix.c:2286
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX Interno: Se esperaba un registro, no esto"
-#: config/mmix/mmix.c:2296
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr "MMIX Interno: Se esperaba una constante, no esto"
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2328
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr "MMIX Interno: Falta un case `%c' en mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:2379
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX Interno: No se puede decodificar este operando"
-#: config/mmix/mmix.c:2444
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX Interno: Esta no es una dirección reconocida"
-#: config/mmix/mmix.c:2940 config/mmix/mmix.c:3009
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "el marco de pila no es un múltiplo de 8 bytes: %d"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "el marco de pila no es un múltiplo de octabyte: %d"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr "MMIX Interno: %s no es un int desplazable"
-#: config/mmix/mmix.c:3128
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX Interno: Tratando de mostrar una condición invertida de forma inválida:"
-#: config/mmix/mmix.c:3135
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX Interno: ¿Cuál es el CC de esto?"
-#: config/mmix/mmix.c:3139
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX Interno: ¿Cuál es el CC de esto?"
-#: config/mmix/mmix.c:3210
+#: config/mmix/mmix.c:3088
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX Interno: Esto no es una constante:"
@@ -11660,8 +11964,6 @@ msgstr "MMIX Interno: Esto no es una constante:"
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
@@ -11670,67 +11972,75 @@ msgstr "MMIX Interno: Esto no es una constante:"
#. Don't do this if linking relocatably, with -r. For a final link,
#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr "Estableciendo la dirección de inicio del programa"
-#: config/mmix/mmix.h:139
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr "Estableciendo la dirección de inicio de los datos"
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr "Para la biblioteca de intrínsecos: pasar todos los parámetros en registros"
-#: config/mmix/mmix.h:191
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr "Usar la pila de registros para los parámetros y el valor de devolución"
-#: config/mmix/mmix.h:193
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr "Usar registros de llamada alterada para los parámetros y el valor de devolución"
-#: config/mmix/mmix.h:195
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr "Usar instrucciones de comparación de coma flotante que respeten epsilon"
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr "Usar cargas de memoria de extensión cero, no las de extensión con signo"
-#: config/mmix/mmix.h:201
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr "Generar resultados de división con residuo que tenga el mismo signo que el divisor (no el del dividendo)"
-#: config/mmix/mmix.h:205
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr "Preceder a los símbolos globales con \":\" (para usarse con PREFIJO)"
-#: config/mmix/mmix.h:207
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
-msgstr "No proveer una dirección de inicio por omisión 0x100 del programa"
+msgstr "No proveer una dirección de inicio por defecto 0x100 del programa"
-#: config/mmix/mmix.h:209
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr "Enlazar para emitir el programa en formato ELF (en lugar de mmo)"
-#: config/mmix/mmix.h:211
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr "Usar Mnemónicos-P para ramificaciones predichas estáticamente como tomadas"
-#: config/mmix/mmix.h:213
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr "No usar Mnemónicos-P para ramificaciones"
-#: config/mmix/mmix.h:215
+#: config/mmix/mmix.h:225
msgid "Use addresses that allocate global registers"
msgstr "Usar direcciones que reserven registros globales"
-#: config/mmix/mmix.h:217
+#: config/mmix/mmix.h:227
msgid "Do not use addresses that allocate global registers"
msgstr "No usar direcciones que reserven registros globales"
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr "Generar un sólo punto de salida para cada función"
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr "No generar un sólo punto de salida para cada función"
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr "Evitar el bug de multiplicación de hardware"
@@ -11747,88 +12057,88 @@ msgstr "Apuntar al procesador AM33"
msgid "Enable linker relaxations"
msgstr "Activar la relajación del enlazador"
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:57
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr "No usar fp de hardware"
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr "Convención de llamada alternativa"
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr "Pasar algunos argumentos en registros"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr "Pasar todos los argumentos en la pila"
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr "Optimizar para el cpu 32532"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr "Optimizar para el cpu 32332"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr "Optimizar para 32032"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr "El registro sb es cero. Se usa para direccionamiento absoluto"
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr "No usar el registro sb"
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
-msgstr "No usar instrucciones de campos de bit"
-
-#: config/ns32k/ns32k.h:117
+#: config/ns32k/ns32k.h:155
msgid "Use bit-field instructions"
msgstr "Usar instrucciones de campos de bit"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr "No usar instrucciones de campos de bit"
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr "Generar código para memoria alta"
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr "Generar código para memoria baja"
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr "fpu 32381"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr "Usar instrucciones de fp para multiplicar-acumular"
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr "No usar instrucciones de fp para multiplicar-acumular"
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr "Con truco sucio \"Clases de registro pequeñas\""
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr "Sin truco sucio \"Clases de registro pequeñas\""
-#: config/pa/pa.c:200
+#: config/pa/pa.c:261
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
"opción -mschedule= desconocida (%s).\n"
-"Las opciones válidas son 700, 7100, 7100LC, 7200, y 8000\n"
+"Las opciones válidas son 700, 7100, 7100LC, 7200, 7300, y 8000\n"
-#: config/pa/pa.c:225
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11837,66 +12147,195 @@ msgstr ""
"opción -march= desconocida (%s).\n"
"Las opciones válidas son 1.0, 1.1, y 2.0\n"
-#: config/pa/pa.c:230
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "La generación de código PIC no tiene soporte en el modelo transportable de tiempo de ejecución\n"
-#: config/pa/pa.c:235
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "La generación de código PIC no es compatible con las llamadas rápidas indirectas\n"
-#: config/pa/pa.c:240
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g sólo tiene soporte cuando se usa GAS en este procesador,"
-#: config/pa/pa.c:241
+#: config/pa/pa.c:310
msgid "-g option disabled"
msgstr "opción -g desactivada"
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr "Generar definiciones cpp para ES de servidor"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr "Generar definiciones cpp para ES de estación de trabajo"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr "Generar código PA1.1"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr "Generar código PA1.0"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "Generar código PA2.0 (requiere binutils 2.10 o superior)"
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr "Desactivar los registros FP"
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr "No desactivar registros FP"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr "Desactivar registros de espacio"
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr "No desactivar registros de espacio"
+
+# config/pa/pa.h:236
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr "Poner saltos en ranuras de retardo de llamadas"
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr "No poner saltos en ranuras de retardo de llamadas"
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr "Desactivar direccionamiento indizado"
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr "No desactivar direccionamiento indizado"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr "Usar convenciones de llamada transportable"
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr "No usar convenciones de llamada trasportable"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr "Asumir que el código será ensamblado por GAS"
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr "No asumir que el código será ensamblado por GAS"
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr "No usar coma flotante de software"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr "Emitir secuencias load/store long"
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr "No emitir secuencias load/store long"
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr "Generar llamadas indirectas rápidas"
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr "No generar llamadas indirectas rápidas"
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr "Generar código para declaraciones switch huge"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr "No generar código para declaraciones switch huge"
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr "Generar siempre llamadas long"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr "Generar llamadas long sólo cuando sean necesarias"
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr "Activar las optimizaciones del enlazador"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr "Especificar la arquitectura para la generación del código. Los valores son 1.0, 1.1, y 2.0. 2.0 requiere la versión de gas 19990413 o posterior."
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr "Asumir que el código será enlazado por ld de GNU"
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr "Asumir que el código será enlazado por ld de HP"
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr "No usar coma flotante de hardware"
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr "Devolución de resultados de coma flotante en ac0"
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr "Devolución de resultados de coma flotante en memoria"
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr "Generar código para un 11/40"
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr "Generar código para un 11/45"
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr "Generar código para un 11/10"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr "Usar int de 32 bit"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr "Usar int de 16 bit"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr "Usar float de 32 bit"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr "Usar float de 64 bit"
@@ -11904,73 +12343,50 @@ msgstr "Usar float de 64 bit"
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr "El objetivo tiene I&D dividido"
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr "El objetivo no tiene I&D dividido"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr "Usar sintaxis de ensamblador UNIX"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr "Usar sintaxis de ensamblador DEC"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr "Generar datos little endian"
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr "Generar datos big endian"
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr "Activar el código de prueba del mantenedor"
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr "Activar las extensiones picoJava de Transmeta"
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr "Desactivar las extensiones picoJava de Transmeta"
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr "Desactivar el paso de reorganización"
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6546
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr "valor %%S inválido"
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr "valor %%b inválido"
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr "valor %%z inválido"
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr "valor %%Z inválido"
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815 config/rs6000/rs6000.c:6325
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr "valor %%k inválido"
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr "valor %%j inválido"
@@ -11988,144 +12404,203 @@ msgstr "valor %%j inválido"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr "no se puede tener varargs con -mfp-arg-in-fp-regs"
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr "ignorando el #pragma longcall malformado"
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr "falta el paréntesis que abre"
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr "falta el número"
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr "falta el paréntesis que cierra"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr "el número debe ser 0 ó 1"
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr "basura al final de #pragma longcall"
+
# FIXME: ¿Traducción correcta al español de little endian? cfuga
-#: config/rs6000/rs6000.c:475
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple no tiene soporte en sistemas little endian"
-#: config/rs6000/rs6000.c:482
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring no tiene soporte en sistemas little endian"
-#: config/rs6000/rs6000.c:488 config/xtensa/xtensa.c:1846
-#, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr "se ignora -f%s (todo el código es independiente de posición)"
-
-#: config/rs6000/rs6000.c:497
-msgid "-ffunction-sections disabled on AIX when debugging"
-msgstr "se desactiva -ffunction-sections en AIX mientras se depura"
-
-#: config/rs6000/rs6000.c:503
-msgid "-fdata-sections not supported on AIX"
-msgstr "-fdata-sections no tiene soporte en AIX"
-
-#: config/rs6000/rs6000.c:518
+#: config/rs6000/rs6000.c:623
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "interruptor -mdebug-%s desconocido"
-#: config/rs6000/rs6000.c:528
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr "argumento de -mtraceback `%s' desconocido; se esperaba `full', `partial' o `none'"
+
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "Interruptor -mlong-double-%s desconocido"
-#: config/rs6000/rs6000.c:595
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "opción -misel= especificada desconocida: '%s'"
+
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "opción -mvrsave= especificada desconocida: '%s'"
+
+#: config/rs6000/rs6000.c:772
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ABI especificada desconocida: '%s'"
-#: config/rs6000/rs6000.c:3631
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "el argumento 1 debe ser una literal con signo de 5-bit"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "el argumento 2 debe ser una literal sin signo de 5-bit"
+
+#: config/rs6000/rs6000.c:4356
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante"
-#: config/rs6000/rs6000.c:3685
+#: config/rs6000/rs6000.c:4410
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango"
-#: config/rs6000/rs6000.c:4041
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "el argumento 3 debe ser una literal sin signo de 4-bit"
+
+#: config/rs6000/rs6000.c:4666
#, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
-msgstr "el argumento 3 para `%s' debe ser una literal de 2-bit"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "el argumento para `%s' debe ser una literal sin signo de 2-bit"
+
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "el argumento para dss debe ser una literal sin signo de 2-bit"
+
+#: config/rs6000/rs6000.c:5013
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante"
+
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango"
-#: config/rs6000/rs6000.c:6252
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr "valor %%f inválido"
-#: config/rs6000/rs6000.c:6261
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr "valor %%F inválido"
-#: config/rs6000/rs6000.c:6270
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr "valor %%G inválido"
-#: config/rs6000/rs6000.c:6305
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr "código %%j inválido"
-#: config/rs6000/rs6000.c:6315
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr "código %%J inválido"
-#: config/rs6000/rs6000.c:6345
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr "valor %%K inválido"
-#: config/rs6000/rs6000.c:6572
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "%%S computed all 1's mask"
-msgstr "%%S calculó una máscara con sólo 1's"
-
-#: config/rs6000/rs6000.c:6599
-#, c-format
-msgid "%%S computed all 0's mask"
-msgstr "%%S calculó una máscara con sólo 0's"
+msgid "invalid %%O value"
+msgstr "valor %%O inválido"
-#: config/rs6000/rs6000.c:6609
+#: config/rs6000/rs6000.c:7793
#, c-format
msgid "invalid %%T value"
msgstr "valor %%T inválido"
-#: config/rs6000/rs6000.c:6619
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr "valor %%u inválido"
-#: config/rs6000/rs6000.c:6628
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr "valor %%v inválido"
-#: config/rs6000/aix.h:137 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "no hay análisis de perfil del código de 64-bit para esta ABI"
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
msgid "Always pass floating-point arguments in memory"
msgstr "Pasar siempre los argumentos de coma flotante en memoria"
-#: config/rs6000/aix.h:139 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
msgid "Don't always pass floating-point arguments in memory"
msgstr "No pasar siempre los argumentos de coma flotante en memoria"
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr "Soporte para el paso de mensajes con el Ambiente Paralelo"
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
-msgstr "Compilar para apuntadores de 64-bit"
+msgstr "Compilar para punteros de 64-bit"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
-msgstr "Compilar para apuntadores de 32-bit"
+msgstr "Compilar para punteros de 32-bit"
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
msgid "-maix64 and POWER architecture are incompatible"
msgstr "-maix64 y la arquitectura POWER son incompatibles"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr "-maix64 requiere que la arquitectura PowerPC64 permanezca activada"
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr "se requiere -maix64: cálculo de 64 bits con direccionamiento de 32 bits no tiene soporte aún"
@@ -12136,146 +12611,162 @@ msgstr "se requiere -maix64: cálculo de 64 bits con direccionamiento de 32 bits
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr "Usar el conjunto de instrucciones POWER"
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr "Usar el conjunto de instrucciones POWER2"
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr "No usar el conjunto de instrucciones POWER2"
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr "No usar el conjunto de instrucciones POWER"
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr "Usar el conjunto de instrucciones PowerPC"
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr "No usar el conjunto de instrucciones PowerPC"
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr "Usar el grupo opcional de instrucciones PowerPC de Propósito General"
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr "No usar el grupo opcional de instrucciones PowerPC de Propósito General"
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr "Usar el grupo opcional de instrucciones PowerPC de Gráficas"
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr "No usar el grupo opcional de instrucciones PowerPC de Gráficas"
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr "Usar el conjunto de instrucciones PowerPC-64"
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr "No usar el conjunto de instrucciones PowerPC-64"
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
msgid "Use AltiVec instructions"
msgstr "Usar instrucciones AltiVec"
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr "No usar instrucciones AltiVec"
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr "Usar los mnemónicos nuevos para la arquitectura PowerPC"
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr "Usar los mnemónicos antiguos para la arquitectura PowerPC"
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr "Colocar todo en el TOC normal"
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr "Colocar las constantes de coma flotante en TOC"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr "No colocar las constantes de coma flotante en TOC"
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr "Colocar las constantes símbolo+desplazamiento en TOC"
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr "No colocar las constantes símbolo+desplazamiento en TOC"
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr "Colocar las direcciones variables en el TOC normal"
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr "Generar múltiples instrucciones load/store"
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr "No generar múltiples instrucciones load/store"
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr "Generar instrucciones de cadena para movimiento de bloques"
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr "No generar instrucciones de cadena para movimiento de bloques"
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr "Generar load/store con instrucciones de actualización"
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr "No generar load/store con instrucciones de actualización"
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr "No calendarizar el inicio y el final del procedimiento"
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
-msgstr "Regresar todas las estructuras en memoria (por omisión en AIX)"
+msgstr "Devolver todas las estructuras en memoria (por defecto en AIX)"
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
-msgstr "Regresar las estructuras pequeñas en registros (por omisión en SVR4)"
+msgstr "Devolver las estructuras pequeñas en registros (por defecto en SVR4)"
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:639
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr "Usar características del código de calendarizador and para el CPU dado"
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr "Activar la salida de depuración"
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr "Seleccionar la tabla full, part, ó sin traceback"
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr "Especificar el ABI a utilizar"
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr "Especificar el tamaño de long double (64 ó 128 bits)"
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr "Especificar sí/no si se deben generar las instrucciones isel"
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr "Especificar sí/no si se deben generar las instrucciones VRSAVE para AltiVec"
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr "Evitar todos los límites de rango en las instrucciones de llamadas"
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12288,94 +12779,103 @@ msgstr "Especificar el tamaño de long double (64 ó 128 bits)"
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1792
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET no tiene soporte"
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr "Seleccionar la convención de llamada ABI"
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr "Seleccionar el método para el manejo de sdata"
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
msgid "Align to the base type of the bit-field"
msgstr "Alinear al tipo base del campo de bit"
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr "No alinear al tipo base del campo de bit"
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr "No asumir que los accesos sin alinear son manejados por el sistema"
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr "Asumir que los accesos sin alinear son manejados por el sistema"
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr "Producir código reubicable en el momento de ejecución"
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr "No producir código reubicable en el momento de ejecución"
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr "Producir código little endian"
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr "Producir código big endian"
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132 config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143 config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155 config/rs6000/sysv4.h:157
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr "sin descripción aún"
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr "Usar EABI"
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr "No usar EABI"
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr "No permitir que los campos de bits crucen los límites de word"
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
msgid "Use alternate register names"
msgstr "Usar nombres de registro alternados"
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr "No usar nombres de registro alternados"
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr "Enlazar con libsim.a, libc.a y sim-crt0.o"
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr "Enlazar con libads.a, libc.a y crt0.o"
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr "Enlazar con libyk.a, libc.a y crt0.o"
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr "Enlazar con libmvme.a, libc.a y crt0.o"
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr "Establecer el bit PPC_EMB en los interruptores del encabezado ELF"
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr "Usar el simulador WindISS"
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12404,184 +12904,193 @@ msgstr "-mrelocatable y -msdata=%s son incompatibles"
msgid "-f%s and -msdata=%s are incompatible"
msgstr "-f%s y -msdata=%s son incompatibles"
-#: config/rs6000/sysv4.h:263
+#: config/rs6000/sysv4.h:264
#, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr "-msdata=%s y -mcall-%s son incompatibles"
-#: config/rs6000/sysv4.h:270
+#: config/rs6000/sysv4.h:273
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr "-mrelocatable y -mno-minimal-toc son incompatibles"
-#: config/rs6000/sysv4.h:276
+#: config/rs6000/sysv4.h:279
#, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr "-mrelocatable y -mcall-%s son incompatibles"
-#: config/rs6000/sysv4.h:283
+#: config/rs6000/sysv4.h:286
#, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr "-fPIC y -mcall-%s son incompatibles"
-#: config/rs6000/sysv4.h:290
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc debe ser big endian"
-#: config/s390/s390.c:1910
+#: config/s390/s390.c:3063
msgid "invalid UNSPEC as operand (1)"
msgstr "UNSPEC inválido como operando (1)"
-#: config/s390/s390.c:1940
+#: config/s390/s390.c:3123
msgid "invalid UNSPEC as operand (2)"
msgstr "UNSPEC inválido como operando (2)"
-#: config/s390/s390.c:1946
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr "UNKNOWN en s390_output_symbolic_const !?"
-#: config/s390/s390.c:1962
+#: config/s390/s390.c:3147
msgid "Cannot decompose address."
msgstr "No se puede descomponer la dirección."
-#: config/s390/s390.c:2110
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr "UNKNOWN en print_operand !?"
-#: config/s390/s390.c:2703
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr "El tamaño total de las variables locales excede el límite de la arquitectura."
-#: config/s390/s390.h:58
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr "Establecer la cadena hacia atrás"
-#: config/s390/s390.h:59
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr "No establecer la cadena hacia atrás (más rápido, pero más difícil de depurar"
-# Error de dedo del autor original. Avisar. cfuga
-#: config/s390/s390.h:60
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr "Usar bras para el ejecutable < 64k"
-#: config/s390/s390.h:61
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr "No usar bras"
-#: config/s390/s390.h:62
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr "Impresiones adicionales de depuración"
-#: config/s390/s390.h:63
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr "No mostrar impresiones adicionales de depuración"
-#: config/s390/s390.h:64
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr "modo de 64 bit"
-#: config/s390/s390.h:65
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr "modo de 31 bit"
-#: config/s390/s390.h:66
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr "uso de mvcle"
-#: config/s390/s390.h:67
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr "mvc&ex"
-#: config/sh/sh.c:5060
+#: config/sh/sh.c:5137
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "no se da soporte a __builtin_saveregs en este subobjetivo"
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "el atributo interrupt_handler no es compatible con -m5-compact"
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:5610 config/sh/sh.c:5649
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, c-format
msgid "`%s' attribute only applies to interrupt functions"
-msgstr "el atributo `%s' aplica solamente a funciones de interrupción"
+msgstr "el atributo `%s' se aplica solamente a funciones de interrupción"
#. The argument must be a constant string.
-#: config/sh/sh.c:5617
+#: config/sh/sh.c:5720
#, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "el argumento del atributo `%s' no es una cadena constante"
#. The argument must be a constant integer.
-#: config/sh/sh.c:5656
+#: config/sh/sh.c:5759
#, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr "el argumento del atributo `%s' no es una constante entera"
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
-#: config/sh/sh.h:367
+#: config/sh/sh.h:437
msgid "Profiling is not supported on this target."
msgstr "No se da soporte a análisis de perfil en este objetivo."
-#: config/sparc/sparc.c:317
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s no tiene soporte en esta configuración"
-#: config/sparc/sparc.c:324
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr "no se permite -mlong-double-64 con -m64"
-#: config/sparc/sparc.c:349
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= no tiene soporte en sistemas de 32 bit"
-#: config/sparc/sparc.c:5971 config/sparc/sparc.c:5977
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, c-format
msgid "invalid %%Y operand"
msgstr "operando %%Y inválido"
-#: config/sparc/sparc.c:6047
+#: config/sparc/sparc.c:6417
#, c-format
msgid "invalid %%A operand"
msgstr "operando %%A inválido"
-#: config/sparc/sparc.c:6057
+#: config/sparc/sparc.c:6427
#, c-format
msgid "invalid %%B operand"
msgstr "operando %%B inválido"
-#: config/sparc/sparc.c:6096
+#: config/sparc/sparc.c:6466
#, c-format
msgid "invalid %%c operand"
msgstr "operando %%c inválido"
-#: config/sparc/sparc.c:6097
+#: config/sparc/sparc.c:6467
#, c-format
msgid "invalid %%C operand"
msgstr "operando %%C inválido"
-#: config/sparc/sparc.c:6118
+#: config/sparc/sparc.c:6488
#, c-format
msgid "invalid %%d operand"
msgstr "operando %%d inválido"
-#: config/sparc/sparc.c:6119
+#: config/sparc/sparc.c:6489
#, c-format
msgid "invalid %%D operand"
msgstr "operando %%D inválido"
-#: config/sparc/sparc.c:6135
+#: config/sparc/sparc.c:6505
#, c-format
msgid "invalid %%f operand"
msgstr "operando %%f inválido"
-#: config/sparc/sparc.c:6185
+#: config/sparc/sparc.c:6519
+#, c-format
+msgid "invalid %%s operand"
+msgstr "operando %%s inválido"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr "la constante long long no es un operando inmediato válido"
-#: config/sparc/sparc.c:6188
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr "la constante de coma flotante no es un operando inmediato válido"
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:144 config/sparc/netbsd-elf.h:239
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr "Usar long doubles de 128 bit"
@@ -12593,334 +13102,380 @@ msgstr "Generar código para big endian"
msgid "Generate code for little endian"
msgstr "Generar código para little endian"
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr "Usar el orden de byte little-endian para los datos"
-#: config/sparc/sparc.h:539
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr "Asumir desalineación de double posible"
-#: config/sparc/sparc.h:541
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr "Asumir que todos los doubles están alineados"
-#: config/sparc/sparc.h:543
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr "Pasar el texto puro de -assert al enlazador"
-#: config/sparc/sparc.h:545
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr "No pasar el texto puro de -assert al enlazador"
-#: config/sparc/sparc.h:547
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr "Usar el modelo plano de ventana de registro"
-#: config/sparc/sparc.h:549
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr "No usar el modelo plano de ventana de registro"
-#: config/sparc/sparc.h:551
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr "Usar los registros ABI reservados"
-#: config/sparc/sparc.h:553
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr "No usar los registros ABI reservados"
-#: config/sparc/sparc.h:555
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr "Usar instrucciones de fp quad de hardware"
-#: config/sparc/sparc.h:557
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr "No usar instrucciones de fp quad de hardware"
-#: config/sparc/sparc.h:559
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr "Compilar para el ABI de v8plus"
-#: config/sparc/sparc.h:561
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr "No compilar para el ABI de v8plus"
-#: config/sparc/sparc.h:563
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr "Utilizar el Conjunto de Instrucciones Visuales"
-#: config/sparc/sparc.h:565
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr "No utilizar el Conjunto de Instrucciones Visuales"
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr "Optimizar para los procesadores Cypress"
-#: config/sparc/sparc.h:570
-msgid "Optimize for SparcLite processors"
-msgstr "Optimizar para los procesadores SparcLite"
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
+msgstr "Optimizar para los procesadores SPARCLite"
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr "Optimizar para los procesadores F930"
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr "Optimizar para los procesadores F934"
-#: config/sparc/sparc.h:576
-msgid "Use V8 Sparc ISA"
-msgstr "Usar el ISA V8 Sparc"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr "Usar el ISA V8 de SPARC"
-#: config/sparc/sparc.h:578
-msgid "Optimize for SuperSparc processors"
-msgstr "Optimizar para procesadores SuperSparc"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
+msgstr "Optimizar para procesadores SuperSPARC"
#. End of deprecated options.
-#: config/sparc/sparc.h:581
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
-msgstr "Los apuntadores son 64-bit"
+msgstr "Los punteros son de 64-bit"
-#: config/sparc/sparc.h:583
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
-msgstr "Los apuntadores son 32-bit"
+msgstr "Los punteros son de 32-bit"
-#: config/sparc/sparc.h:585
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr "Usar ABI de 32-bit"
-#: config/sparc/sparc.h:587
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr "Usar ABI de 64-bit"
-#: config/sparc/sparc.h:589
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr "Usar tendencia de la pila"
-#: config/sparc/sparc.h:591
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr "No usar la tendencia de la pila"
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr "Usar structs en alineación más fuerte para copias double-word"
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "No usar structs en alineación más fuerte para copias double-word"
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Optimizar las instrucciones de la llamada del extremo en el ensamblador y el enlazador"
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "No optimizar las instrucciones de la llamada del extremo en el ensamblador y el enlazador"
-#: config/sparc/sparc.h:643
-msgid "Use given Sparc code model"
-msgstr "Usar el modelo de código del Sparc dado"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr "Usar el modelo de código del SPARC dado"
-#: config/stormy16/stormy16.c:1179
+#: config/stormy16/stormy16.c:1192
msgid "cannot use va_start in interrupt function"
msgstr "no se puede usar va_start en una función de interrupción"
-#: config/stormy16/stormy16.c:1536
+#: config/stormy16/stormy16.c:1552
msgid "`B' operand is not constant"
msgstr "el operando `B' no es una constante"
-#: config/stormy16/stormy16.c:1542
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr "el operando `B' tiene establecidos múltiples bits"
-#: config/stormy16/stormy16.c:1569
+#: config/stormy16/stormy16.c:1585
msgid "`o' operand is not constant"
msgstr "el operando `o' no es una constante"
-#: config/stormy16/stormy16.c:1584
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr "xstormy16_print_operand: código desconocido"
-#: config/stormy16/stormy16.c:1634
+#: config/stormy16/stormy16.c:1650
#, c-format
msgid "switch statement of size %lu entries too large"
msgstr "la declaración switch de tamaño de %lu entradas es demasiado grande"
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr "se encontró un #pragma GHS endXXXX sin un startXXX previo"
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr "el #pragma GHS endXXXX no coincide con el startXXX previo"
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
msgid "cannot set interrupt attribute: no current function"
msgstr "no se puede establecer el atributo de interrupción: no hay función actual"
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr "no se puede establecer el atributo de interrupción: no hay tal identificador"
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr "basura al final de la sección #pragma ghs"
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, c-format
msgid "unrecognized section name \"%s\""
msgstr "no se reconoce el nombre de sección \"%s\""
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr "sección #pragma ghs malformada"
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr "basura al final del #pragma ghs interrupt"
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr "basura al final del #pragma ghs starttda"
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr "basura al final del #pragma ghs startsda"
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr "basura al final del #pragma ghs startzda"
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr "basura al final del #pragma ghs endtda"
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr "basura al final del #pragma ghs endsda"
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr "basura al final del #pragma ghs endzda"
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s no es numérico"
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s es demasiado grande"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr "const_double_split recibió un insn erróneo:"
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2084
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr "no se puede especificar un atributo de área de datos para variables locales"
-#: config/v850/v850.c:2095
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr "el área de datos de '%s' en conflicto con una declaración previa"
-#: config/v850/v850.c:2298
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "construcción JR ambigua: %d\n"
-#: config/v850/v850.c:2319 config/v850/v850.c:2521
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "cantidad errónea de eliminación de espacio de pila: %d"
-#: config/v850/v850.c:2497
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "construcción JARL ambigua: %d\n"
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "construcción DISPOSE ambigua: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr "Demasiado espacio de pila para disponer de él: %d"
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "construcción PREPARE ambigua: %d\n"
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "Demasiado espacio de pila para preparar: %d"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr "Soporte para el ABI Green Hills"
-#: config/v850/v850.h:123
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr "Prohibir la llamada a funciones relativas al PC"
-#: config/v850/v850.h:126
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr "Reusar r30 basado por función"
-#: config/v850/v850.h:129
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr "Usar cabos para los prólogos de función"
-#: config/v850/v850.h:132
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr "Igual que: -mep -mprolog-function"
# No me gusta mucho esta traducción. cfuga
-#: config/v850/v850.h:133
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr "Habilitar la depuración del extremo trasero"
-#: config/v850/v850.h:135
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr "Compilar para el procesador v850"
-#: config/v850/v850.h:138
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr "Compilar para el procesador v850e"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr "Activar el uso de las instrucciones short load"
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr "No usar la instrucción callt"
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr "No usar los registros r2 y r5"
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr "Reforzar la alineación estricta"
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
msgstr "Usar entradas de 4 byte en las tablas de switch"
-#: config/v850/v850.h:164
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
msgstr "Establecer el tamaño máximo de datos elegibles para el área TDA"
-#: config/v850/v850.h:167
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
msgstr "Establecer el tamaño máximo de datos elegibles para el área SDA"
-#: config/v850/v850.h:170
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
msgstr "Establecer el tamaño máximo de datos elegibles para el área ZDA"
-#: config/xtensa/xtensa.c:1048 config/xtensa/xtensa.c:1082 config/xtensa/xtensa.c:1091
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
msgid "bad test"
msgstr "prueba errónea"
-#: config/xtensa/xtensa.c:1790
+#: config/xtensa/xtensa.c:1824
msgid "boolean registers required for the floating-point option"
msgstr "se requieren registros booleanos para la opción de coma flotante"
-#: config/xtensa/xtensa.c:1965
+#: config/xtensa/xtensa.c:1991
msgid "invalid mask"
msgstr "máscara inválida"
-#: config/xtensa/xtensa.c:2017
+#: config/xtensa/xtensa.c:2038
msgid "invalid address"
msgstr "dirección inválida"
-#: config/xtensa/xtensa.c:2042
+#: config/xtensa/xtensa.c:2063
msgid "no register in address"
msgstr "no hay registro en la dirección"
-#: config/xtensa/xtensa.c:2050
+#: config/xtensa/xtensa.c:2071
msgid "address offset not a constant"
msgstr "el desplazamiento de dirección no es una constante"
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "sólo las variables sin inicializar se pueden colocar en una sección .bss"
+
#: config/xtensa/xtensa.h:114
msgid "Use the Xtensa code density option"
msgstr "Usar la opción de densidad del código Xtensa"
@@ -13043,513 +13598,585 @@ msgstr "Usar instrucciones CALLXn indirectas para programas grandes"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Usar instrucciones CALLn directas para llamadas rápidas"
-#: ada/misc.c:219
+#: ada/misc.c:233
msgid "`-gnat' misspelled as `-gant'"
msgstr "`-gnat' mal deletreado como `-gant'"
-#: cp/call.c:270 cp/init.c:1635
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr "el tipo calificado `%T' no coincide con el nombre del destructor `~%T'"
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr "el tipo de `%E' no coincide con el tipo del destructor `%T' (el tipo era `%T')"
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr "`%D' es un nombre de espacio"
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr "el objeto base `%E' de la llamada de método del ambiente es del tipo no agregado `%T'"
-#: cp/call.c:394
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
-msgstr "no se puede llamar un apuntador a una función miembro aquí"
+msgstr "no se puede llamar un puntero a una función miembro aquí"
-#: cp/call.c:530
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr "los destructores no tienen parámetros"
-#: cp/call.c:537
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr "el nombre del destructor `~%T' no coincide con el tipo `%T' de la expresión"
-#: cp/call.c:2374
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "solicitud por el miembro `%D' en `%E' el cual es del tipo no agregado `%T'"
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr "la petición para el miembro `%D' es ambigua"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <interno>"
-#: cp/call.c:2379
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <interno>"
-#: cp/call.c:2383
+#: cp/call.c:2546
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <interno>"
-#: cp/call.c:2387
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr "%s %T <conversión>"
-#: cp/call.c:2389
+#: cp/call.c:2552
msgid "%s %+#D%s"
msgstr "%s %+#D%s"
-#: cp/call.c:2546
-msgid "no viable candidates"
-msgstr "no hay candidatos viables"
-
-#: cp/call.c:2560
+#: cp/call.c:2726
msgid "conversion from `%T' to `%T' is ambiguous"
msgstr "la conversión de `%T' a `%T' es ambigua"
-#: cp/call.c:2677
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "%T no es un tipo de clase"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "el tipo incompleto `%T' no se puede utilizar para nombrar un ámbito"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr "'%D' no tiene un miembro llamado '%E'"
+
+#: cp/call.c:2933
msgid "no matching function for call to `%D(%A)'"
msgstr "no hay una función coincidente para la llamada a `%D(%A)'"
-#: cp/call.c:2688 cp/call.c:4681
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr "la llamada del `%D(%A)' sobrecargado es ambigua"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2715
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
-msgstr "la función apuntador-a-miembro %E no se puede llamar dentro de un objeto; considere utilizar .* o ->*"
+msgstr "la función puntero-a-miembro %E no se puede llamar dentro de un objeto; considere utilizar .* o ->*"
-#: cp/call.c:2784
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr "no hay coincidencia para la llamada a `(%T) (%A)'"
-#: cp/call.c:2794
+#: cp/call.c:3046
msgid "call of `(%T) (%A)' is ambiguous"
msgstr "la llamada de `(%T) (%A)' es ambigua"
-#: cp/call.c:2829
-msgid "%s for `%T ? %T : %T' operator"
-msgstr "%s para el operador `%T ? %T : %T'"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
-#: cp/call.c:2834
-msgid "%s for `%T %s' operator"
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
msgstr "%s para el operador `%T %s'"
-#: cp/call.c:2837
-msgid "%s for `%T [%T]' operator"
-msgstr "%s para el operador `%T [%T]'"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr ""
-#: cp/call.c:2842
-msgid "%s for `%T %s %T' operator"
-msgstr "%s para el operador `%T %s %T'"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
-#: cp/call.c:2845
-msgid "%s for `%s %T' operator"
-msgstr "%s para el operador `%s %T'"
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s para el operador `%T %s'"
-#: cp/call.c:2937
+#: cp/call.c:3191
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
-msgstr "ISO C++ prohibe la omisión del término medio de una expresión ?:"
+msgstr "ISO C++ prohíbe la omisión del término medio de una expresión ?:"
-#: cp/call.c:2996
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr "`%E' tiene tipo `void' y no es una expresión throw"
-#: cp/call.c:3029 cp/call.c:3229
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr "los operandos de ?: tienen tipos diferentes"
-#: cp/call.c:3182
+#: cp/call.c:3428
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr "no coincide el enumeral en la expresión condicional: `%T' vs `%T'"
-#: cp/call.c:3189
+#: cp/call.c:3435
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "tipos enumeral y no enumeral en la expresión condicional"
-#: cp/call.c:3270
+#: cp/call.c:3516
msgid "`%D' must be declared before use"
msgstr "se debe declarar `%D' antes de su uso"
-#: cp/call.c:3433
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr "no se declaró `%D(int)' para el `%s' postfijo, intentando en su lugar el operador prefijo"
-#: cp/call.c:3480
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr "usando `%#D' sintetizado para asignación de copia"
-#: cp/call.c:3482
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr " donde cfront podría usar `%#D'"
-#: cp/call.c:3509
+#: cp/call.c:3782
msgid "comparison between `%#T' and `%#T'"
msgstr "comparación entre `%#T' y `%#T'"
-#: cp/call.c:3748
+#: cp/call.c:4021
msgid "no suitable `operator delete' for `%T'"
msgstr "no hay un operador `operator delete' adecuado para `%T'"
-#: cp/call.c:3767
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr "`%+#D' es privado"
-#: cp/call.c:3769
+#: cp/call.c:4042
msgid "`%+#D' is protected"
msgstr "`%+#D' está protegido"
-#: cp/call.c:3771
+#: cp/call.c:4044
msgid "`%+#D' is inaccessible"
msgstr "`%+#D' es inaccesible"
-#: cp/call.c:3772
+#: cp/call.c:4045
msgid "within this context"
msgstr "desde este contexto"
-#: cp/call.c:3814
+#: cp/call.c:4088
msgid "invalid conversion from `%T' to `%T'"
msgstr "conversión inválida de `%T' a `%T'"
-#: cp/call.c:3816 cp/call.c:3955 cp/call.c:3957
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
msgid " initializing argument %P of `%D'"
-msgstr " argumento de iniciación %P de `%D'"
+msgstr " argumento de inicialización %P de `%D'"
-#: cp/call.c:3879 cp/call.c:3883
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
-msgstr " argumento de iniciación %P de `%D' a partir del resultado de `%D'"
+msgstr " argumento de inicialización %P de `%D' a partir del resultado de `%D'"
-#: cp/call.c:3889 cp/call.c:3892
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
-msgstr " iniciando el temporal a partir del resultado de `%D'"
+msgstr " inicializando el temporal a partir del resultado de `%D'"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4026
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
-msgstr "no se puede pasar objetos de tipo `%#T' que no es POD a través de `...'"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr "no se puede pasar objetos de tipo `%#T' que no es POD a través de `...'; la llamada abortará en tiempo de ejecución"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4051
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr "no se puede recibir objetos de tipo `%#T' que no es POD a través de `...'"
-#: cp/call.c:4193
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr "pasar `%T' como el argumento `this' de `%#D' descarta a los calificadores"
-#: cp/call.c:4443
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "`%T' es una base inaccesible de `%T'"
+
+#: cp/call.c:4786
msgid "could not find class$ field in java interface type `%T'"
msgstr "no se pudo encontrar un campo class$ en el tipo de interfaz java `%T'"
-#: cp/call.c:4544 cp/typeck.c:2018
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr "solicitud por el miembro `%D' en `%E' el cual es del tipo no agregado `%T'"
+#: cp/call.c:4974
+msgid "call to non-function `%D'"
+msgstr "llamada a `%D' que no es función"
-#: cp/call.c:4670
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr "no se encuentra una función coincidente para la llamada a `%T::%D(%A)%#V'"
-#: cp/call.c:4700
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
msgstr "no se puede llamar a la función miembro `%D' sin un objeto"
-#: cp/call.c:5313
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr "pasar `%T' escoge `%T'n sobre `%T'"
-#: cp/call.c:5315 cp/decl2.c:4508
+#: cp/call.c:5706 cp/decl2.c:4154
msgid " in call to `%D'"
msgstr " en la llamada a `%D'"
-#: cp/call.c:5364 cp/call.c:5489
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr "escogiendo `%D' sobre `%D'"
-#: cp/call.c:5365
+#: cp/call.c:5756
msgid " for conversion from `%T' to `%T'"
msgstr " para la conversión de `%T' a `%T'"
-#: cp/call.c:5367
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr " porque la secuencia de conversión para el argumento es mejor"
-#: cp/call.c:5491
-msgid " because worst conversion for the former is better than worst conversion for the latter"
-msgstr " porque la peor conversión para el anterior es mejor que la peor conversión para el posterior"
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr "ISO C++ dice que `%D' y `%D' son ambiguos aún cuando la peor conversión para el primero es mejor que la peor conversión para el segundo"
-#: cp/call.c:5607 cp/call.c:5628
+#: cp/call.c:5996
msgid "could not convert `%E' to `%T'"
msgstr "no se puede convertir `%E' a `%T'"
+#: cp/call.c:6105
+#, fuzzy
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "const_cast inválido de un valor-r de tipo `%T' al tipo `%T'"
+
+#: cp/call.c:6109
+#, fuzzy
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "conversión inválida del tipo `%T' a partir del tipo `%T'"
+
#: cp/class.c:287
msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr "no se puede convertir de la base `%T' al tipo derivado `%T' a través de la base virtual `%T'"
-#: cp/class.c:1020
+#: cp/class.c:992
msgid "`%#D' and `%#D' cannot be overloaded"
msgstr "no se pueden sobrecargar `%#D' y `%#D'"
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1031
-msgid "`%D' has already been declared in `%T'"
-msgstr "`%D' ya ha sido declarado en `%T'"
-
-#: cp/class.c:1112
+#: cp/class.c:1076
msgid "duplicate enum value `%D'"
msgstr "valor enum duplicado `%D'"
-#: cp/class.c:1115
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr "campo duplicado `%D' (como enum y no enum)"
-#: cp/class.c:1122
+#: cp/class.c:1086
msgid "duplicate nested type `%D'"
msgstr "tipo anidado duplicado `%D'"
-#: cp/class.c:1133
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr "campo duplicado `%D' (como tipo y no tipo)"
-#: cp/class.c:1137
+#: cp/class.c:1101
msgid "duplicate member `%D'"
msgstr "miembro duplicado `%D'"
-#: cp/class.c:1180
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr "especificaciones de acceso en conflicto para el método `%D', ignorado"
-#: cp/class.c:1182
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr "especificaciones de acceso en conflicto para el campo `%s', ignorado"
-#: cp/class.c:1225
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr "`%D' nombra al constructor"
-#: cp/class.c:1231
+#: cp/class.c:1199
msgid "`%D' invalid in `%T'"
msgstr "`%D' inválido en `%T'"
-#: cp/class.c:1239
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr "no hay miembros que coincidan con `%D' en `%#T'"
-#: cp/class.c:1271 cp/class.c:1279
+#: cp/class.c:1239 cp/class.c:1247
msgid "`%D' invalid in `%#T'"
msgstr "`%D' inválido en `%#T'"
-#: cp/class.c:1272
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr " debido al método local `%#D' con el mismo nombre"
-#: cp/class.c:1280
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr " debido al miembro local `%#D' con el mismo nombre"
-#: cp/class.c:1352
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr "la clase base `%#T' tiene un destructor no virtual"
-#: cp/class.c:1372
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
-msgstr "base `%T' con sólo un constructor que no es por omisión en una clase sin un constructor"
+msgstr "base `%T' con sólo un constructor que no es por defecto en una clase sin un constructor"
-#: cp/class.c:1959
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr "todos las funciones miembros en la clase `%T' son privadas"
-#: cp/class.c:1973
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr "`%#T' solamente define un destructor privado y no tiene friends"
-#: cp/class.c:2016
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr "`%#T' solamente define constructores privados y no tiene friends"
-#: cp/class.c:2137 cp/class.c:5064
+#: cp/class.c:2090 cp/class.c:5276
msgid "redefinition of `%#T'"
msgstr "redefinición de `%#T'"
-#: cp/class.c:2138
+#: cp/class.c:2091
msgid "previous definition of `%#T'"
msgstr "definición previa de `%#T'"
# Ojo, no es impostor, sino impositor, el que impone. cfuga
-#: cp/class.c:2468
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr "no hay un impositor único final para `%D' en `%T'"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2850
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr "`%D' estaba escondido"
-#: cp/class.c:2851
+#: cp/class.c:2713
msgid " by `%D'"
msgstr " por `%D'"
-#: cp/class.c:2893
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
-msgstr "ISO C++ prohibe que el miembro `%D' tenga el mismo nombre que la clase que lo contiene"
+msgstr "ISO C++ prohíbe que el miembro `%D' tenga el mismo nombre que la clase que lo contiene"
-#: cp/class.c:2898 cp/decl2.c:1883
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr "`%#D' inválido; un union anónimo sólo puede tener miembros con datos no estáticos"
-#: cp/class.c:2904 cp/decl2.c:1889
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr "miembro privado `%#D' en union anónima"
-#: cp/class.c:2907 cp/decl2.c:1891
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr "miembro protegido `%#D' en union anónima"
-#: cp/class.c:3059
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr "la disposición vtable para la clase `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC debido al destructor virtual implícito"
+
+#: cp/class.c:2958
msgid "bit-field `%#D' with non-integral type"
msgstr "campo de bits `%#D' con tipo no entero"
-#: cp/class.c:3079
+#: cp/class.c:2978
msgid "bit-field `%D' width not an integer constant"
msgstr "la anchura del campo de bits `%D' no es una constante entera"
-#: cp/class.c:3085
+#: cp/class.c:2984
msgid "negative width in bit-field `%D'"
msgstr "anchura negativa en el campo de bit `%D'"
-#: cp/class.c:3090
+#: cp/class.c:2989
msgid "zero width for bit-field `%D'"
msgstr "anchura cero para el campo de bits `%D'"
-#: cp/class.c:3096
+#: cp/class.c:2995
msgid "width of `%D' exceeds its type"
msgstr "la anchura de `%D' excede su tipo"
-#: cp/class.c:3105
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr "`%D' es demasiado pequeño para guardar todos los valores de `%#T'"
-#: cp/class.c:3189
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr "no se permite el miembro `%#D' con constructor en la union"
-#: cp/class.c:3192
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr "no se permite el miembro `%#D' con destructor en la union"
-#: cp/class.c:3195
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr "no se permite el miembro `%#D' con operador de asignación de copia en la union"
-#: cp/class.c:3222
+#: cp/class.c:3121
msgid "multiple fields in union `%T' initialized"
-msgstr "múltiples campos iniciados en la unión `%T'"
+msgstr "múltiples campos inicializados en la unión `%T'"
-#: cp/class.c:3341
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr "el campo `%D' en la clase local no puede ser static"
-#: cp/class.c:3347
+#: cp/class.c:3240
msgid "field `%D' invalidly declared function type"
msgstr "el campo `%D' es declarado inválidamente como un tipo de función"
-#: cp/class.c:3354
+#: cp/class.c:3247
msgid "field `%D' invalidly declared method type"
msgstr "el campo `%D' es declarado inválidamente como un tipo de método"
-#: cp/class.c:3360
+#: cp/class.c:3253
msgid "field `%D' invalidly declared offset type"
msgstr "el campo `%D' es declarado inválidamente como un tipo de desplazamiento"
#. Unions cannot have static members.
-#: cp/class.c:3378
+#: cp/class.c:3271
msgid "field `%D' declared static in union"
msgstr "el campo `%s' es declarado como static en la unión"
-#: cp/class.c:3404
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr "referencia `%#D' que no es static en una clase sin un constructor"
-#: cp/class.c:3435
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr "miembro const `%#D' que no es static en una clase sin un constructor"
-#: cp/class.c:3450
+#: cp/class.c:3349
msgid "field `%#D' with same name as class"
msgstr "campo `%#D' con el mismo nombre que la clase"
-#: cp/class.c:3468
+#: cp/class.c:3367
msgid "`%#T' has pointer data members"
-msgstr "`%#T' tiene miembros apuntadores a datos"
+msgstr "`%#T' tiene miembros punteros a datos"
-#: cp/class.c:3472
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr " pero no se impone a `%T(const %T&)'"
-#: cp/class.c:3474
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr " o a `operator=(cont %T&)'"
-#: cp/class.c:3477
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr " pero no se impone a `operator=(const %T&)'"
-#: cp/class.c:3943
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "el desplazamiento de la base vacía `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC"
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr "la clase `%T' se considerará casi vacía en una versión futura de GCC"
+
+#: cp/class.c:4025
msgid "initializer specified for non-virtual method `%D'"
-msgstr "iniciador especificado para el método no virtual `%D'"
+msgstr "se especificó un inicializador para el método no virtual `%D'"
-#: cp/class.c:4728
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
-msgstr "base virtual `%T' inaccesible en `%T' debido a ambigüedad"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr "el desplazamiento de la base virtual `%T' no cumple con la ABI y puede cambiar en una versión futura de GCC"
-#: cp/class.c:4798
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr "base directa `%T' inaccesible en `%T' debido a ambigüedad"
-#: cp/class.c:5225
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "base virtual `%T' inaccesible en `%T' debido a ambigüedad"
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "el tamaño asignado a `%T' puede no cumplir con la ABI y puede cambiar en una versión futura de GCC"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+#, fuzzy
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "el desplazamiento de `%D' no cumple con la ABI y puede cambiar en una versión futura de GCC"
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr "el desplazamiento de `%D' no cumple con la ABI y puede cambiar en una versión futura de GCC"
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "`%D' contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC"
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr "la disposición de clases derivadas de la clase vacía `%T' puede cambiar en una versión futura de GCC"
+
+#: cp/class.c:5432
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr "`%#T' tiene funciones virtuales pero destructores no virtuales"
-#: cp/class.c:5309
+#: cp/class.c:5516
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación"
-#: cp/class.c:5766
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr "cadena de lenguaje `\"%s\"' no se reconocen"
-#: cp/class.c:5862
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr "no se puede resolver la función sobrecargada `%D' basándose en la conversión al tipo `%T'"
-#: cp/class.c:5983
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr "no hay coincidencias al convertir la función `%D' al tipo `%#T'"
-#: cp/class.c:6006
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr "la conversión de la función sobrecargada `%D' al tipo `%#T' es ambigua"
-#: cp/class.c:6032
+#: cp/class.c:6252
msgid "assuming pointer to member `%D'"
-msgstr "asumiendo el apuntador a miembro `%D'"
+msgstr "asumiendo el puntero a miembro `%D'"
-#: cp/class.c:6035
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
-msgstr "(un apuntador a miembro solamente se puede formar con `&%E')"
+msgstr "(un puntero a miembro solamente se puede formar con `&%E')"
-#: cp/class.c:6079 cp/class.c:6247 cp/class.c:6254
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr "no hay suficiente información de tipo"
-#: cp/class.c:6088
+#: cp/class.c:6315
msgid "argument of type `%T' does not match `%T'"
msgstr "el argumento de tipo `%T' no coincide con `%T'"
-#: cp/class.c:6231
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr "operación inválida en tipo no instanciado"
@@ -13558,11 +14185,11 @@ msgstr "operación inválida en tipo no instanciado"
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6483 cp/decl.c:1032 cp/decl.c:3172 cp/pt.c:1842
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
msgid "declaration of `%#D'"
msgstr "la declaración de `%#D'"
-#: cp/class.c:6484
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr "cambia el significado de `%D' a partir de `%+#D'"
@@ -13578,206 +14205,242 @@ msgstr "la conversión de `%E' desde `%T' a `%T' es ambigua"
msgid "converting from `%T' to `%T'"
msgstr "convirtiendo de `%T' a `%T'"
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
-msgstr "apuntador a la conversión de miembro de `%T' a `%T' es a través de una base virtual"
+msgstr "puntero a la conversión de miembro de `%T' a `%T' es a través de una base virtual"
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr "no se puede convertir `%E' desde el tipo `%T' al tipo `%T'"
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "conversión inválida de '%T' a '%T'"
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr "la conversión de `%T' a `%T' descarta los calificadores"
-#: cp/cvt.c:543
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
-msgstr "la conversión de `%T' a `%T' no dereferencía a los apuntadores"
+msgstr "la conversión de `%T' a `%T' no dereferencía a los punteros"
-#: cp/cvt.c:572
+#: cp/cvt.c:551
msgid "cannot convert type `%T' to type `%T'"
msgstr "no se puede convertir del tipo `%T' al tipo `%T'"
-#: cp/cvt.c:689
+#: cp/cvt.c:683
msgid "conversion from `%#T' to `%#T'"
msgstr "conversión de `%#T' a `%#T'"
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr "se usó un `%#T' donde se esperaba un `%T'"
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr "la dirección de `%D', siempre será `true'"
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr "se usó un `%#T' donde se esperaba un valor de coma flotante"
-#: cp/cvt.c:793
+#: cp/cvt.c:779
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "se solicitó la conversión desde `%T' al tipo no escalar `%T'"
-#: cp/cvt.c:879
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr "el objeto de tipo incompleto `%T' no se accesará en %s"
-#: cp/cvt.c:882
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr "el objeto de tipo `%T' no se accesará en %s"
-#: cp/cvt.c:898
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr "el objeto `%E' de tipo incompleto `%T' no se accesará en %s"
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:918
+#: cp/cvt.c:904
#, c-format
msgid "%s cannot resolve address of overloaded function"
-msgstr "%s no puede resolver la dirección de la función sobrecargada"
+msgstr "%s no se puede resolver la dirección de la función sobrecargada"
#. Only warn when there is no &.
-#: cp/cvt.c:923
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr "%s es una referencia, no una llamada, a la función `%E'"
-#: cp/cvt.c:1061
+#: cp/cvt.c:1039
msgid "converting NULL to non-pointer type"
-msgstr "convirtiendo NULL a un tipo que no es apuntador"
+msgstr "convirtiendo NULL a un tipo que no es puntero"
-#: cp/cvt.c:1137
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
-msgstr "conversión de tipo por omisión ambigua desde `%T'"
+msgstr "conversión de tipo por defecto ambigua desde `%T'"
-#: cp/cvt.c:1139
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr " las conversiones candidatas incluyen `%D' y `%D'"
-#: cp/decl.c:1033 cp/decl.c:3275
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
msgid "conflicts with previous declaration `%#D'"
msgstr "causa conflictos con la declaración previa `%#D'"
-#: cp/decl.c:1222
+#: cp/decl.c:1467
msgid "label `%D' used but not defined"
msgstr "se usa la etiqueta `%D' pero no está definida"
-#: cp/decl.c:1227
+#: cp/decl.c:1472
msgid "label `%D' defined but not used"
msgstr "la etiqueta `%D' está definida pero no se usa"
-#: cp/decl.c:2294
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr "no se permite aquí el alias del espacio de nombres `%D', asumiendo que es `%D'"
-#: cp/decl.c:3078 cp/decl.c:3483
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
msgid "previous declaration of `%D'"
msgstr "declaración previa de `%D'"
-#: cp/decl.c:3159 cp/decl.c:3197
+#: cp/decl.c:3366 cp/decl.c:3404
msgid "shadowing %s function `%#D'"
-msgstr "obscureciendo la función de biblioteca `%#D'"
+msgstr "oscureciendo la función de biblioteca `%#D'"
-#: cp/decl.c:3168
+#: cp/decl.c:3375
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr "la función de biblioteca `%#D' es redeclarada como `%#D' que no es función"
-#: cp/decl.c:3173
+#: cp/decl.c:3380
msgid "conflicts with built-in declaration `%#D'"
msgstr "causa conflicto con la declaración interna `%#D'"
-#: cp/decl.c:3192 cp/decl.c:3285 cp/decl.c:3301
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
msgid "new declaration `%#D'"
msgstr "declaración nueva `%#D'"
-#: cp/decl.c:3193
+#: cp/decl.c:3400
msgid "ambiguates built-in declaration `%#D'"
msgstr "hace ambigua la declaración interna `%#D'"
-#: cp/decl.c:3249
+#: cp/decl.c:3464
msgid "`%#D' redeclared as different kind of symbol"
msgstr "`%#D' redeclarado como un tipo diferente de símbolo"
-#: cp/decl.c:3252
+#: cp/decl.c:3467
msgid "previous declaration of `%#D'"
msgstr "declaración previa de `%#D'"
-#: cp/decl.c:3274
+#: cp/decl.c:3489
msgid "declaration of template `%#D'"
msgstr "redeclaración de la plantilla `%#D'"
-#: cp/decl.c:3286 cp/decl.c:3302
+#: cp/decl.c:3505 cp/decl.c:3521
msgid "ambiguates old declaration `%#D'"
msgstr "hace ambigua la declaración antigua `%#D'"
-#: cp/decl.c:3294
+#: cp/decl.c:3513
msgid "declaration of C function `%#D' conflicts with"
msgstr "la declaración de la función C `%#D' tiene conflictos con"
-#: cp/decl.c:3296
+#: cp/decl.c:3515
msgid "previous declaration `%#D' here"
msgstr "declaración previa de `%#D' aquí"
-#: cp/decl.c:3312
+#: cp/decl.c:3533
msgid "conflicting types for `%#D'"
msgstr "tipos en conflicto para `%#D'"
-#: cp/decl.c:3313
+#: cp/decl.c:3534
msgid "previous declaration as `%#D'"
msgstr "declaración previa como `%#D'"
-#: cp/decl.c:3356
+#: cp/decl.c:3577
msgid "`%#D' previously defined here"
msgstr "se definió `%#D' previamente aquí"
-#: cp/decl.c:3357
+#: cp/decl.c:3578
msgid "`%#D' previously declared here"
msgstr "se declaró `%#D' previamente aquí"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3366
+#: cp/decl.c:3587
msgid "prototype for `%#D'"
msgstr "el prototipo para '%#D'"
-#: cp/decl.c:3367
+#: cp/decl.c:3588
msgid "follows non-prototype definition here"
msgstr "a continuación la definición del no prototipo aquí"
-#: cp/decl.c:3379
+#: cp/decl.c:3600
msgid "previous declaration of `%#D' with %L linkage"
msgstr "declaración previa de `%#D' con el enlace %L"
-#: cp/decl.c:3381
+#: cp/decl.c:3602
msgid "conflicts with new declaration with %L linkage"
msgstr "tiene conflictos con la declaración nueva con el enlace %L"
-#: cp/decl.c:3404 cp/decl.c:3411
+#: cp/decl.c:3625 cp/decl.c:3632
msgid "default argument given for parameter %d of `%#D'"
-msgstr "argumento por omisión dado para el parámetro %d de `%#D'"
+msgstr "argumento por defecto dado para el parámetro %d de `%#D'"
-#: cp/decl.c:3406 cp/decl.c:3413
+#: cp/decl.c:3627 cp/decl.c:3634
msgid "after previous specification in `%#D'"
msgstr "después de la especificación previa en `%#D'"
-#: cp/decl.c:3422
+#: cp/decl.c:3643
msgid "`%#D' was used before it was declared inline"
msgstr "se usó `%#D' antes de que fuera declarado inline"
-#: cp/decl.c:3424
+#: cp/decl.c:3645
msgid "previous non-inline declaration here"
msgstr "declaración previa no inline aquí"
-#: cp/decl.c:3482
+#: cp/decl.c:3699
msgid "redundant redeclaration of `%D' in same scope"
msgstr "declaración redundante de `%D' en el mismo ámbito"
-#: cp/decl.c:3566
+#: cp/decl.c:3780
#, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr "la declaración de `%F' arroja excepciones diferentes"
-#: cp/decl.c:3568
+#: cp/decl.c:3782
#, c-format
msgid "than previous declaration `%F'"
msgstr "que la declaración previa `%F'"
@@ -13790,15 +14453,15 @@ msgstr "que la declaración previa `%F'"
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3701
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr "especialización explícita de %D después del primer uso"
-#: cp/decl.c:3946
+#: cp/decl.c:4187
msgid "`%#D' used prior to declaration"
msgstr "se usa `%#D' previo a la declaración"
-#: cp/decl.c:3977
+#: cp/decl.c:4218
msgid "redeclaration of `wchar_t' as `%T'"
msgstr "redeclaración de `wchar_t' como `%T'"
@@ -13808,839 +14471,895 @@ msgstr "redeclaración de `wchar_t' como `%T'"
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:4005
+#: cp/decl.c:4246
msgid "invalid redeclaration of `%D'"
msgstr "redeclaración inválida de `%D'"
-#: cp/decl.c:4006
+#: cp/decl.c:4247
msgid "as `%D'"
msgstr "como `%D'"
-#: cp/decl.c:4096
+#: cp/decl.c:4337
msgid "previous external decl of `%#D'"
msgstr "declaración externa previa de `%#D'"
-#: cp/decl.c:4137
+#: cp/decl.c:4378
msgid "`%D' was previously implicitly declared to return `int'"
msgstr "`%D' fue declarado previa e implícitamente para devolver `int'"
-#: cp/decl.c:4197
+#: cp/decl.c:4438
msgid "extern declaration of `%#D' doesn't match"
msgstr "la declaración externa de `%#D' no coincide"
-#: cp/decl.c:4198
+#: cp/decl.c:4439
msgid "global declaration `%#D'"
msgstr "con la declaración global `%#D'"
-#: cp/decl.c:4229
+#: cp/decl.c:4472
msgid "declaration of `%#D' shadows a parameter"
-msgstr "la declaración de `%#D' obscurece un parámetro"
+msgstr "la declaración de `%#D' oscurece un parámetro"
-#: cp/decl.c:4249
+#: cp/decl.c:4492
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
-msgstr "la declaración de `%s' obscurece a un miembro de `this'"
+msgstr "la declaración de `%s' oscurece a un miembro de `this'"
-#: cp/decl.c:4600
+#: cp/decl.c:4889
msgid "`%#D' hides constructor for `%#T'"
msgstr "`%#D' esconde el destructor para `%#T'"
-#: cp/decl.c:4615
+#: cp/decl.c:4904
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr "`%#D' causa conflicto con la declaración previa en uso `%#D'"
-#: cp/decl.c:4627
+#: cp/decl.c:4916
msgid "previous non-function declaration `%#D'"
msgstr "la declaración previa `%#D' que no es función"
-#: cp/decl.c:4628
+#: cp/decl.c:4917
msgid "conflicts with function declaration `%#D'"
msgstr "causa conflicto con la declaración de la función `%#D'"
-#: cp/decl.c:4718
+#: cp/decl.c:5007
msgid "implicit declaration of function `%#D'"
msgstr "declaración implícita de la función `%#D'"
-#: cp/decl.c:4876
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
-msgstr "la etiqueta `%s' se ha referenciado fuera de cualquier función"
+msgstr "la etiqueta `%s' se referenció fuera de cualquier función"
-#: cp/decl.c:4979 cp/decl.c:5003 cp/decl.c:5096
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
msgid "jump to label `%D'"
msgstr "salto a la etiqueta `%D'"
-#: cp/decl.c:4981 cp/decl.c:5005
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr "salto a la etiqueta case"
-#: cp/decl.c:4989
+#: cp/decl.c:5280
msgid " crosses initialization of `%#D'"
-msgstr " cruza la asignación de valores iniciales de `%#D'"
+msgstr " cruza la inicialización de `%#D'"
-#: cp/decl.c:4992 cp/decl.c:5112
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr " entra en el ámbito de `%#D' que no es POD"
-#: cp/decl.c:5012 cp/decl.c:5116
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr " entra intento de bloque"
#. Can't skip init of __exception_info.
-#: cp/decl.c:5014 cp/decl.c:5108 cp/decl.c:5118
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr " entra captura de bloque"
-#: cp/decl.c:5097
+#: cp/decl.c:5388
msgid " from here"
msgstr " desde aquí"
-#: cp/decl.c:5110
+#: cp/decl.c:5401
msgid " skips initialization of `%#D'"
-msgstr " salta la asignación de valores iniciales de `%#D'"
+msgstr " salta la inicialización de `%#D'"
-#: cp/decl.c:5145
+#: cp/decl.c:5437
msgid "label named wchar_t"
msgstr "etiqueta nombrada wchar_t"
-#: cp/decl.c:5149
+#: cp/decl.c:5440
msgid "duplicate label `%D'"
msgstr "etiqueta duplicada `%D'"
-#: cp/decl.c:5234
+#: cp/decl.c:5525
#, c-format
msgid "case label `%E' not within a switch statement"
msgstr "la etiqueta case `%E' no se encuentra dentro de una declaración switch"
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5411 cp/decl.c:5430
+#: cp/decl.c:5704 cp/decl.c:5723
msgid "`%#D' redeclared as %C"
msgstr "`%#D' redeclarado como %C"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5518 cp/typeck.c:1980
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
msgid "invalid use of `%D'"
msgstr "uso inválido de `%D'"
-#: cp/decl.c:5559
+#: cp/decl.c:5852
msgid "`%D::%D' is not a template"
msgstr "`%D::%D' no es una plantilla"
-#: cp/decl.c:5576
+#: cp/decl.c:5869
msgid "`%D' undeclared in namespace `%D'"
msgstr "`%D' no declarado en el espacio de nombres `%D'"
-#: cp/decl.c:5713
+#: cp/decl.c:6002
msgid "`%D' used without template parameters"
msgstr "se usa `%D' sin parámetros de plantilla"
-#: cp/decl.c:5724 cp/decl.c:5740 cp/decl.c:5828
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr "no hay una plantilla de clase llamada `%#T' en `%#T'"
-#: cp/decl.c:5758 cp/decl.c:5788
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
msgid "no type named `%#T' in `%#T'"
msgstr "no hay un tipo llamado `%#T' en `%#T'"
-#: cp/decl.c:6011
+#: cp/decl.c:6329
msgid "lookup of `%D' finds `%#D'"
msgstr "la búsqueda de `%D' encuentra a `%#D'"
-#: cp/decl.c:6013
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr " en lugar de `%D' de la clase base dependiente"
-#: cp/decl.c:6015
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr " (use `typename %T::%D' si eso es lo que quería)"
-#: cp/decl.c:6188
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr "la búsqueda de nombre de `%D' cambió"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr " coincide con este `%D' bajo las reglas de ISO estándard"
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr " coincide con este `%D' bajo las reglas antiguas"
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "la búsqueda de nombre de `%D' cambió por el nuevo alcance ISO de `for'"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr " no se puede usar la asignación obsoleta en `%D' porque tiene un destructor"
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr " usando la asignación obsoleta en `%D'"
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr "la búsqueda de `%D' en el ámbito de `%#T' (`%#D') no coincide con la búsqueda en el ámbito actual (`%#D')"
-#: cp/decl.c:7033
+#: cp/decl.c:7432
msgid "an anonymous union cannot have function members"
msgstr "un union anónimo no puede tener funciones miembro"
-#: cp/decl.c:7050
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr "no se permite el miembro %#D' con constructor en un agregado anónimo"
-#: cp/decl.c:7053
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr "no se permite el miembro %#D' con destructor en un agregado anónimo"
-#: cp/decl.c:7056
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr "no se permite el miembro %#D' con operador de asignación de copia en un agregado anónimo"
-#: cp/decl.c:7094
+#: cp/decl.c:7493
msgid "redeclaration of C++ built-in type `%T'"
msgstr "redeclaración del tipo interno de C++ `%T'"
-#: cp/decl.c:7129
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr "tipos múltiples en una declaración"
-#: cp/decl.c:7132
-msgid "declaration does not declare anything"
-msgstr "la declaración no declara nada}"
-
-#: cp/decl.c:7156
+#: cp/decl.c:7556
msgid "missing type-name in typedef-declaration"
msgstr "falta el nombre del tipo en la declaración typedef"
-#: cp/decl.c:7163
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
-msgstr "ISO C++ prohibe structs anónimos"
+msgstr "ISO C++ prohíbe structs anónimos"
-#: cp/decl.c:7170
+#: cp/decl.c:7570
msgid "`%D' can only be specified for functions"
msgstr "`%D' sólo puede ser especificado para funciones"
-#: cp/decl.c:7172
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr "`%D' sólo puede ser especificado dentro de una clase"
-#: cp/decl.c:7174
+#: cp/decl.c:7574
msgid "`%D' can only be specified for constructors"
msgstr "`%D' sólo puede ser especificado para constructores"
-#: cp/decl.c:7177
+#: cp/decl.c:7577
msgid "`%D' can only be specified for objects and functions"
msgstr "`%D' sólo puede ser especificado para objetos y funciones"
-#: cp/decl.c:7326
-msgid "typedef `%D' is initialized"
-msgstr "typedef `%D' tiene valor inicial"
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "typedef `%D' está inicializado (utilice __typeof__ en su lugar)"
-#: cp/decl.c:7332
+#: cp/decl.c:7724
msgid "function `%#D' is initialized like a variable"
-msgstr "la función `%#D' tiene valor inicial como una variable"
+msgstr "la función `%#D' está inicializada como una variable"
-#: cp/decl.c:7344
+#: cp/decl.c:7736
msgid "declaration of `%#D' has `extern' and is initialized"
-msgstr "la declaración de `%#D' tiene `extern' y tiene valor inicial"
+msgstr "la declaración de `%#D' tiene `extern' y está inicializada"
-#: cp/decl.c:7378
+#: cp/decl.c:7770
msgid "`%#D' is not a static member of `%#T'"
msgstr "`%#D' no es un miembro static de `%#T'"
-#: cp/decl.c:7383
+#: cp/decl.c:7775
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
-msgstr "ISO C++ no permite que `%T::%D' sea definido como `%T::%D'"
+msgstr "ISO C++ no permite que `%T::%D' se defina como `%T::%D'"
-#: cp/decl.c:7394
+#: cp/decl.c:7786
msgid "duplicate initialization of %D"
-msgstr "asignación de valores iniciales duplicada de %D"
+msgstr "inicialización duplicada de %D"
-#: cp/decl.c:7423
+#: cp/decl.c:7815
msgid "declaration of `%#D' outside of class is not definition"
msgstr "la declaración de `%#D' fuera de la clase no es una definición"
-#: cp/decl.c:7471
+#: cp/decl.c:7865
msgid "variable `%#D' has initializer but incomplete type"
-msgstr "la variable `%#D' tiene asignación de valor inicial, pero tipo de dato incompleto"
+msgstr "la variable `%#D' tiene inicializador pero de tipo de dato incompleto"
-#: cp/decl.c:7479 cp/decl.c:7830
+#: cp/decl.c:7873 cp/decl.c:8432
msgid "elements of array `%#D' have incomplete type"
msgstr "algunos elementos de la matriz `%#D' tienen tipo de dato incompleto"
-#: cp/decl.c:7495
+#: cp/decl.c:7889
msgid "aggregate `%#D' has incomplete type and cannot be defined"
msgstr "el agregado `%#D' tiene un tipo incompleto y no se puede definir"
-#: cp/decl.c:7534
+#: cp/decl.c:7931
msgid "`%D' declared as reference but not initialized"
-msgstr "`%D' declarado como referencia pero no es iniciado"
+msgstr "`%D' declarado como referencia pero no está inicializado"
-#: cp/decl.c:7543
+#: cp/decl.c:7940
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
-msgstr "ISO C++ prohibe el uso de una lista de iniciadores para iniciar la referencia `%D'"
+msgstr "ISO C++ prohíbe el uso de una lista de inicializadores para inicializar la referencia `%D'"
-#: cp/decl.c:7576
+#: cp/decl.c:7970
msgid "cannot initialize `%T' from `%T'"
-msgstr "no se pueden iniciar `%T' desde `%T'"
+msgstr "no se pueden inicializar `%T' desde `%T'"
-#: cp/decl.c:7637
+#: cp/decl.c:8004
msgid "initializer fails to determine size of `%D'"
-msgstr "el iniciador no pudo determinar el tamaño de `%D'"
+msgstr "el inicializador no puede determinar el tamaño de `%D'"
-#: cp/decl.c:7642
+#: cp/decl.c:8009
msgid "array size missing in `%D'"
msgstr "falta el tamaño de la matriz en `%D'"
-#: cp/decl.c:7654
+#: cp/decl.c:8021
msgid "zero-size array `%D'"
msgstr "matriz `%D' de tamaño cero"
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7687
+#: cp/decl.c:8059
msgid "storage size of `%D' isn't known"
msgstr "no se conoce el tamaño de almacenamiento de `%D'"
-#: cp/decl.c:7709
+#: cp/decl.c:8081
msgid "storage size of `%D' isn't constant"
msgstr "el tamaño de almacenamiento de `%D' no es constante"
-#: cp/decl.c:7760
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr "perdón: la semántica de los datos static de la función inline `%#D' es errónea (terminará con múltiples copias)"
-#: cp/decl.c:7761
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
-msgstr " puede evitar esto eliminando el iniciador"
+msgstr " puede evitar esto eliminando el inicializador"
-#: cp/decl.c:7789
+#: cp/decl.c:8164
msgid "uninitialized const `%D'"
-msgstr "const `%D' sin iniciar"
+msgstr "const `%D' sin inicializar"
+
+#: cp/decl.c:8249
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "se utilizó un inicializador encerrado entre llaves para inicializar a `%T'"
-#: cp/decl.c:7824
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "el inicializador para `%T' debe estar encerrado entre llaves"
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ no permite inicializadores designados"
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "`%T' no tiene un dato miembro que no es static llamado `%D'"
+
+#: cp/decl.c:8389
+msgid "too many initializers for `%T'"
+msgstr "demasiados inicializadores para `%T'"
+
+#: cp/decl.c:8426
msgid "variable-sized object `%D' may not be initialized"
-msgstr "el objeto de tamaño variable `%D' no puede tener valor inicial"
+msgstr "el objeto de tamaño variable `%D' no puede ser inicializado"
-#: cp/decl.c:7835 cp/typeck2.c:201
+#: cp/decl.c:8437
msgid "`%D' has incomplete type"
msgstr "`%D' tiene un tipo de dato incompleto"
-#: cp/decl.c:7867
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
-msgstr "`%D' debe ser iniciado por un constructor, no por `{...}'"
+msgstr "`%D' debe ser inicializado por un constructor, no por `{...}'"
-#: cp/decl.c:7897
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
-msgstr "estructura `%D' con miembros constantes sin iniciar"
+msgstr "estructura `%D' con miembros const sin inicializar"
-#: cp/decl.c:7899
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
-msgstr "estructura `%D' con miembros de referencia sin iniciar"
+msgstr "estructura `%D' con miembros de referencia sin inicializar"
-#: cp/decl.c:8166
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
-msgstr "asignación (no asignación de valores iniciales) en la declaración"
+msgstr "asignación (no inicialización) en la declaración"
-#: cp/decl.c:8178
+#: cp/decl.c:8785
msgid "cannot initialize `%D' to namespace `%D'"
-msgstr "no se pueden iniciar `%D' para el espacio de nombres `%D'"
+msgstr "no se pueden inicializar `%D' para el espacio de nombres `%D'"
-#: cp/decl.c:8235
+#: cp/decl.c:8836
msgid "shadowing previous type declaration of `%#D'"
-msgstr "obscureciendo la declaración de tipo previa de `%#D'"
+msgstr "oscureciendo la declaración de tipo previa de `%#D'"
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "`%D' no puede ser thread-local porque es de tipo `%T' que no es POD"
-#: cp/decl.c:8631
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "`%D' es thread-local y por lo tanto no se puede inicializar dinámicamente"
+
+#: cp/decl.c:9298 cp/init.c:562
msgid "multiple initializations given for `%D'"
-msgstr "se asignaron múltiples valores iniciales para `%D'"
+msgstr "se dieron inicializaciones múltiples para `%D'"
-#: cp/decl.c:8731
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr "parámetro de captura inválido"
-#: cp/decl.c:8849
+#: cp/decl.c:9508
msgid "destructor for alien class `%T' cannot be a member"
msgstr "el destructor para la clase extranjera `%T' no puede ser un miembro"
-#: cp/decl.c:8852
+#: cp/decl.c:9511
msgid "constructor for alien class `%T' cannot be a member"
msgstr "el constructor para la clase extranjera `%T' no puede ser un miembro"
-#: cp/decl.c:8871
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr "`%D' fue declarado como un %s `virtual'"
-#: cp/decl.c:8873
+#: cp/decl.c:9532
msgid "`%D' declared as an `inline' %s"
msgstr "`%D' fue declarado como un %s `inline'"
-#: cp/decl.c:8875
+#: cp/decl.c:9534
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr "especificadores de función `const' y `volatile' en `%D' inválidos en la declaración %s"
-#: cp/decl.c:8878
+#: cp/decl.c:9537
msgid "`%D' declared as a friend"
msgstr "`%D' declarado como un friend"
-#: cp/decl.c:8884
+#: cp/decl.c:9543
msgid "`%D' declared with an exception specification"
msgstr "`%D' declarado con una excepción de especificación"
-#: cp/decl.c:8959
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr "no se puede declarar `::main' como template"
-#: cp/decl.c:8961
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr "no se puede declarar `::main' como inline"
-#: cp/decl.c:8963
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr "no se puede declarar `::main' como static"
-#: cp/decl.c:8966
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr "`main' debe devolver `int'"
-#: cp/decl.c:8994
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr "la función `%#D' que no es local usa un tipo anónimo"
-#: cp/decl.c:8997
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr "`%#D' no se refiere al tipo sin calificar, así que no se usa para el enlazado"
-#: cp/decl.c:9003
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr "la función `%#D' que no es local utiliza el tipo local `%T'"
-#: cp/decl.c:9026
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr "%sfunción miembro `%D' no puede tener el calificador de método `%T'"
-#: cp/decl.c:9050
+#: cp/decl.c:9715
msgid "defining explicit specialization `%D' in friend declaration"
msgstr "definiendo la especialización explícita `%D' en la declaración friend"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:9060
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr "uso inválido del id de plantilla `%D' en la declaración de la plantilla primaria"
-#: cp/decl.c:9088
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
-msgstr "no se permiten los argumento por omisión en la declaración de la especialización friend de la plantilla `%D'"
+msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla `%D'"
-#: cp/decl.c:9095
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr "no se permiten `inline' en la declaración de la especialización friend de la plantilla `%D'"
-#: cp/decl.c:9157
+#: cp/decl.c:9822
msgid "definition of implicitly-declared `%D'"
msgstr "la definición de `%D' declarado implícitamente"
-#: cp/decl.c:9169 cp/decl2.c:1367
+#: cp/decl.c:9834 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
msgstr "no hay una función miembro `%#D' declarada en la clase `%T'"
-#: cp/decl.c:9288
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr "la variable `%#D' que no es local usa el tipo local `%T'"
-#: cp/decl.c:9378
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
-msgstr "iniciación en la clase inválida para el miembro de datos static de tipo `%T' que no es integral"
+msgstr "inicialización en la clase inválida para el miembro de datos static de tipo `%T' que no es integral"
-#: cp/decl.c:9387
+#: cp/decl.c:10073
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
-msgstr "ISO C++ prohibe la iniciación en la clase del miembro static `%D' que no es constante"
+msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static `%D' que no es constante"
-#: cp/decl.c:9390
+#: cp/decl.c:10076
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
-msgstr "ISO C++ prohibe la iniciación del miembro constante `%D' del tipo `%T' que no es entero"
+msgstr "ISO C++ prohíbe la inicialización del miembro constante `%D' del tipo `%T' que no es entero"
-#: cp/decl.c:9440
+#: cp/decl.c:10126
msgid "size of array `%D' has non-integer type"
msgstr "el tamaño de la matriz `%D' tiene un tipo no entero"
-#: cp/decl.c:9442
+#: cp/decl.c:10128
msgid "size of array has non-integer type"
msgstr "el tamaño de la matriz tiene un tipo no entero"
-#: cp/decl.c:9462
+#: cp/decl.c:10148
msgid "size of array `%D' is negative"
msgstr "el tamaño de la matriz `%D' es negativo"
-#: cp/decl.c:9464
+#: cp/decl.c:10150
msgid "size of array is negative"
msgstr "el tamaño de la matriz es negativo"
-#: cp/decl.c:9473
+#: cp/decl.c:10159
msgid "ISO C++ forbids zero-size array `%D'"
-msgstr "ISO C++ prohibe la matriz `%D' de tamaño cero"
+msgstr "ISO C++ prohíbe la matriz `%D' de tamaño cero"
-#: cp/decl.c:9475
+#: cp/decl.c:10161
msgid "ISO C++ forbids zero-size array"
-msgstr "ISO C++ prohibe una matriz de tamaño cero"
+msgstr "ISO C++ prohíbe una matriz de tamaño cero"
-#: cp/decl.c:9482
+#: cp/decl.c:10168
msgid "size of array `%D' is not an integral constant-expression"
msgstr "el tamaño de la matriz `%D' no es una expresion constante integral"
-#: cp/decl.c:9485
+#: cp/decl.c:10171
msgid "size of array is not an integral constant-expression"
msgstr "el tamaño de la matriz no es una expresion constante integral"
-#: cp/decl.c:9503
+#: cp/decl.c:10189
msgid "ISO C++ forbids variable-size array `%D'"
-msgstr "ISO C++ prohibe la matriz `%D' de tamaño variable"
+msgstr "ISO C++ prohíbe la matriz `%D' de tamaño variable"
-#: cp/decl.c:9506
+#: cp/decl.c:10192
msgid "ISO C++ forbids variable-size array"
-msgstr "ISO C++ prohibe la matriz de tamaño variable"
+msgstr "ISO C++ prohíbe la matriz de tamaño variable"
-#: cp/decl.c:9517
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr "desbordamiento en la dimensión de la matriz"
-#: cp/decl.c:9576
+#: cp/decl.c:10262
msgid "declaration of `%D' as %s"
msgstr "redeclaración de `%D' como %s"
-#: cp/decl.c:9578
+#: cp/decl.c:10264
#, c-format
msgid "creating %s"
msgstr "creando %s"
-#: cp/decl.c:9590
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr "la declaración de `%D' como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera"
-#: cp/decl.c:9593
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera"
-#: cp/decl.c:9622
+#: cp/decl.c:10308
msgid "return type specification for constructor invalid"
msgstr "la especificación del tipo de devolución para el constructor es inválido"
-#: cp/decl.c:9629
+#: cp/decl.c:10315
msgid "return type specification for destructor invalid"
msgstr "la especificación del tipo de devolución para el destructor es inválido"
-#: cp/decl.c:9635
+#: cp/decl.c:10321
msgid "operator `%T' declared to return `%T'"
msgstr "el operador `%T' se declaró para devolver `%T'"
-#: cp/decl.c:9637
+#: cp/decl.c:10323
msgid "return type specified for `operator %T'"
msgstr "se especificó un tipo de devolución para `operator %T'"
-#: cp/decl.c:9805
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr "los destructores deben ser funciones miembro"
-#: cp/decl.c:9824
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr "el destructor `%T' debe coincidir con el nombre de la clase `%T'"
-#: cp/decl.c:9874
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr "no se permite aquí la declaración de variables"
+
+#: cp/decl.c:10566
msgid "invalid declarator"
msgstr "declarador inválido"
-#: cp/decl.c:9927
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr "falta el id del declarador; utilizando la palabra reservada `%D'"
-#: cp/decl.c:9984
+#: cp/decl.c:10674
msgid "type `%T' is not derived from type `%T'"
msgstr "el tipo `%T' no es derivado del tipo `%T'"
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:10030
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr "`%T' especificado como id de declarador"
-#: cp/decl.c:10032
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr " tal vez quiere `%T' para un constructor"
-#: cp/decl.c:10046
-msgid "`%D' as declarator"
-msgstr "`%D' como declarador"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "uso inválido del nombre de plantilla `%E' en un declarador"
-#: cp/decl.c:10061
+#: cp/decl.c:10770
msgid "declaration of `%D' as non-function"
msgstr "la declaración de `%D' como una no función"
-#: cp/decl.c:10138
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr "`bool' ahora es una palabra clave"
-#: cp/decl.c:10140
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr "`%T' extra ignorado"
-#: cp/decl.c:10156 cp/decl.c:10189
+#: cp/decl.c:10865 cp/decl.c:10910
msgid "multiple declarations `%T' and `%T'"
msgstr "declaraciones múltiples `%T' y `%T'"
-#: cp/decl.c:10169
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
msgstr "ISO C++ no da soporte a `long long'"
-#: cp/decl.c:10262 cp/decl.c:10265
+#: cp/decl.c:10983 cp/decl.c:10986
#, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
-msgstr "ISO C++ prohibe la declaración de `%s' sin tipo"
+msgstr "ISO C++ prohíbe la declaración de `%s' sin tipo"
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10275
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr "`%T' implícitamente es un nombre de tipo"
-#: cp/decl.c:10311
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr "short, signed ó unsigned inválido para `%s'"
-#: cp/decl.c:10316
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr "long y short especificados juntos para `%s'"
-#: cp/decl.c:10327
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr "se dieron juntos signed y unsigned para `%s'"
-#: cp/decl.c:10436
+#: cp/decl.c:11157
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr "no se permiten calificadores en la declaración de `operator %T'"
-#: cp/decl.c:10458
+#: cp/decl.c:11179
msgid "member `%D' cannot be declared both virtual and static"
msgstr "el miembro `%D' no puede ser declarado como virtual y static al mismo tiempo"
-#: cp/decl.c:10467
+#: cp/decl.c:11188
msgid "`%T::%D' is not a valid declarator"
msgstr "`%T::%D' no es una declaración válida"
-#: cp/decl.c:10478
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros"
-#: cp/decl.c:10482
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr "declaración typedef inválida en la declaración de parámetros"
-#: cp/decl.c:10495
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr "declaración de virtual fuera de class"
-#: cp/decl.c:10549
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr "clase de almacenamiento especificada por %s `%s'"
-#: cp/decl.c:10587
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend"
-#: cp/decl.c:10691
-msgid "size of member `%D' is not constant"
-msgstr "el tamaño del miembro `%D' no es constante"
-
-#: cp/decl.c:10770
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr "el destructor no puede ser una función miembro de tipo static"
-#: cp/decl.c:10773
+#: cp/decl.c:11498
#, c-format
msgid "destructors may not be `%s'"
msgstr "los destructores no pueden ser `%s'"
-#: cp/decl.c:10794
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr "el constructor no puede ser una función miembro de tipo static"
-#: cp/decl.c:10797
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr "los constructores no pueden ser declarados virtual"
-#: cp/decl.c:10802
+#: cp/decl.c:11527
#, c-format
msgid "constructors may not be `%s'"
msgstr "los constructores no pueden ser `%s'"
-#: cp/decl.c:10812
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr "el especificador de tipo del valor devuelto para el constructor es ignorado"
-#: cp/decl.c:10831
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
-msgstr "no se pueden iniciar la función friend `%s'"
+msgstr "no se puede inicializar la función friend `%s'"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10835
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr "las funciones virtual no pueden ser friend"
-#: cp/decl.c:10840
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr "la declaración friend no está en una definición de clase"
-#: cp/decl.c:10842
+#: cp/decl.c:11567
#, c-format
msgid "can't define friend function `%s' in a local class definition"
-msgstr "la no se puede definir la función friend `%s' en una definición de clase local"
+msgstr "no se puede definir la función friend `%s' en una definición de clase local"
-#: cp/decl.c:10866
+#: cp/decl.c:11591
msgid "destructors may not have parameters"
msgstr "los destructores no pueden tener parámetros"
-#: cp/decl.c:10896
-#, c-format
-msgid "cannot declare %s to references"
-msgstr "no se puede declarar %s a referencias"
+#: cp/decl.c:11622 cp/decl.c:11629
+msgid "cannot declare reference to `%#T'"
+msgstr "no se pueden declarar referencias a `%#T'"
-#: cp/decl.c:10907
-msgid "cannot declare pointer to `%#T' member"
-msgstr "no se pueden declarar un apuntador al miembro `%#T'"
+#: cp/decl.c:11623
+msgid "cannot declare pointer to `%#T'"
+msgstr "no se pueden declarar punteros a `%#T'"
-#: cp/decl.c:10922
-msgid "invalid type: `void &'"
-msgstr "tipo inválido: `void &'"
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr "no se pueden declarar un puntero al miembro `%#T'"
-#: cp/decl.c:11084
+#: cp/decl.c:11804
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr "se ignora la calificación extra `%T::' en el miembro `%s'"
-#: cp/decl.c:11094
+#: cp/decl.c:11814
msgid "cannot declare member function `%T::%s' within `%T'"
msgstr "no se puede declarar la función miembro `%T::%s' dentro de `%T'"
-#: cp/decl.c:11109
+#: cp/decl.c:11829
msgid "cannot declare member `%T::%s' within `%T'"
msgstr "no se puede declarar el miembro `%T::%s' dentro de `%T'"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr "los datos miembro pueden no tener el tipo modificado variablemente `%T'"
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr "el parámetro puede no tener el tipo modificado variablemente `%T'"
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11189
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr "solamente las declaraciones de constructores pueden ser `explicit'"
-#: cp/decl.c:11197
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr "el no-miembro `%s' no puede ser declarado `mutable'"
-#: cp/decl.c:11202
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr "el miembro no-objeto `%s' no puede ser declarado `mutable'"
-#: cp/decl.c:11208
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "la función `%s' no puede ser declarada `mutable'"
-#: cp/decl.c:11213
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr "static `%s' no puede ser declarado `mutable'"
-#: cp/decl.c:11218
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr "const `%s' no puede ser declarado `mutable'"
-#: cp/decl.c:11231
+#: cp/decl.c:11960
msgid "template-id `%D' used as a declarator"
msgstr "el id de plantilla `%D' se usa como un declarador"
-#: cp/decl.c:11252
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
-msgstr "ISO C++ prohibe el tipo anidado `%D' con el mismo nombre que la clase que lo contiene"
+msgstr "ISO C++ prohíbe el tipo anidado `%D' con el mismo nombre que la clase que lo contiene"
-#: cp/decl.c:11299
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr "el nombre de la definición de tipo puede no ser calificada para la clase"
-#: cp/decl.c:11307
+#: cp/decl.c:12038
msgid "invalid type qualifier for non-member function type"
msgstr "calificador de tipo inválido para el tipo de función no miembro"
-#: cp/decl.c:11323
-msgid "typedef declaration includes an initializer"
-msgstr "la declaración typedef incluye una asignación inicial de valores"
-
-#: cp/decl.c:11373
+#: cp/decl.c:12101
msgid "type qualifiers specified for friend class declaration"
msgstr "se especificaron calificadores de tipo en una declaración de clase friend"
-#: cp/decl.c:11378
+#: cp/decl.c:12106
msgid "`inline' specified for friend class declaration"
msgstr "se especificó `inline' para la declaración de clase friend"
-#: cp/decl.c:11388
+#: cp/decl.c:12114
msgid "template parameters cannot be friends"
msgstr "los parámetros de la plantilla no pueden ser friends"
-#: cp/decl.c:11390
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
-msgstr "la declaración friend requere una llave de clase, p.e. `friend class %T::%T'"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr "la declaración friend requere una llave de clase, p.e. `friend class %T::%D'"
-#: cp/decl.c:11395
+#: cp/decl.c:12120
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr "la declaración friend requiere una llave de clase, p.e. `friend %#T'"
-#: cp/decl.c:11409
+#: cp/decl.c:12134
msgid "trying to make class `%T' a friend of global scope"
msgstr "tratando hacer que la clase `%T' sea un friend de ámbito global"
-#: cp/decl.c:11420
+#: cp/decl.c:12145
msgid "invalid qualifiers on non-member function type"
msgstr "calificadores inválidos en el tipo de función no miembro"
-#: cp/decl.c:11439
+#: cp/decl.c:12164
msgid "abstract declarator `%T' used as declaration"
msgstr "el declarador abstracto `%T' se utilizó como una declaración"
-#: cp/decl.c:11451
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr "variable sin nombre o campo declarado void"
-#: cp/decl.c:11460
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr "variable o campo declarado void"
-#: cp/decl.c:11470
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr "no se puede usar `::' en la declaración de parámetros"
#. Something like struct S { int N::j; };
-#: cp/decl.c:11516
+#: cp/decl.c:12234
msgid "invalid use of `::'"
msgstr "uso inválido de `::'"
-#: cp/decl.c:11528
+#: cp/decl.c:12246
msgid "function `%D' cannot be declared friend"
msgstr "la función `%D' no puede ser declarada friend"
-#: cp/decl.c:11540
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr "no se puede hacer `%D' en un método -- no está en una clase"
-#: cp/decl.c:11549
+#: cp/decl.c:12267
msgid "function `%D' declared virtual inside a union"
msgstr "la función `%s' se declaró virtual dentro de un union"
-#: cp/decl.c:11561
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr "`%D' no se puede declarar virtual, ya que siempre es static"
-#: cp/decl.c:11634
+#: cp/decl.c:12355
msgid "field `%D' has incomplete type"
msgstr "el campo `%D' tiene tipo de dato incompleto"
-#: cp/decl.c:11636
+#: cp/decl.c:12357
msgid "name `%T' has incomplete type"
msgstr "el nombre `%T' tiene tipo de dato incompleto"
-#: cp/decl.c:11645
+#: cp/decl.c:12366
msgid " in instantiation of template `%T'"
msgstr " en la instanciación de la plantilla `%T'"
-#: cp/decl.c:11655
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr "`%s' no es ni función ni función miembro; no puede ser declarado friend"
-#: cp/decl.c:11666
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
msgstr "las funciones miembros son implícitamente friends de su clase"
@@ -14656,94 +15375,99 @@ msgstr "las funciones miembros son implícitamente friends de su clase"
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11713
+#: cp/decl.c:12434
msgid "ISO C++ forbids initialization of member `%D'"
-msgstr "ISO C++ prohibe la iniciación del miembro `%D'"
+msgstr "ISO C++ prohíbe la inicialización del miembro `%D'"
-#: cp/decl.c:11715
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr "haciendo a `%D' static"
-#: cp/decl.c:11739
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
-msgstr "ISO C++ prohibe que el miembro de datos static `%D' tenga el mismo nombre que la clase que lo contiene"
+msgstr "ISO C++ prohíbe que el miembro de datos static `%D' tenga el mismo nombre que la clase que lo contiene"
-#: cp/decl.c:11780
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
-msgstr "clase de almacenamiento `auto' inválida para la función `%s'"
+msgstr "la clase de almacenamiento `auto' es inválida para la función `%s'"
-#: cp/decl.c:11782
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
-msgstr "clase de almacenamiento `register' inválida para la función `%s'"
+msgstr "la clase de almacenamiento `register' es inválida para la función `%s'"
+
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "la clase de almacenamiento `__thread' es inválida para la función `%s'"
-#: cp/decl.c:11793
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr "la clase de almacenamiento `static' es inválida para la función `%s' declarada fuera del ámbito global"
-#: cp/decl.c:11795
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr "la clase de almacenamiento `inline' es inválida para la función `%s' declarada fuera del ámbito global"
-#: cp/decl.c:11802
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr "la función virtual `%s' no es clase"
-#: cp/decl.c:11831
+#: cp/decl.c:12554
msgid "cannot declare member function `%D' to have static linkage"
msgstr "no se puede declarar que la función miembro `%D' tenga enlazado estático"
#. FIXME need arm citation
-#: cp/decl.c:11837
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr "no se puede declarar una función static dentro de otra función"
-#: cp/decl.c:11865
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr "`static' puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static"
-#: cp/decl.c:11871
+#: cp/decl.c:12594
msgid "static member `%D' declared `register'"
msgstr "se declaró el miembro static `%D' como `register'"
-#: cp/decl.c:11876
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr "no se puede declarar explícitamente que el miembro `%#D' tenga un enlazado externo"
-#: cp/decl.c:12048
+#: cp/decl.c:12774
msgid "default argument for `%#D' has type `%T'"
-msgstr "el argumento por omisión de `%#D' tiene tipo `%T'"
+msgstr "el argumento por defecto de `%#D' tiene tipo `%T'"
-#: cp/decl.c:12051
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
-msgstr "el argumento por omisión para el parámetro del tipo `%T' tiene el tipo `%T'"
+msgstr "el argumento por defecto para el parámetro del tipo `%T' tiene el tipo `%T'"
-#: cp/decl.c:12068
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
-msgstr "el argumento por omisión `%E' usa la variable local `%D'"
+msgstr "el argumento por defecto `%E' usa la variable local `%D'"
-#: cp/decl.c:12113
+#: cp/decl.c:12839
#, c-format
msgid "invalid string constant `%E'"
msgstr "constante de cadena inválida `%E'"
-#: cp/decl.c:12115
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr "constante entera inválida en la lista de parámetros, ¿olvidó proporcionar nombre(s) de parámetro(s)?"
-#: cp/decl.c:12153
+#: cp/decl.c:12879
msgid "parameter `%D' invalidly declared method type"
msgstr "el parámetro `%D' se declaró inválidamente como tipo de método"
-#: cp/decl.c:12159
+#: cp/decl.c:12885
msgid "parameter `%D' invalidly declared offset type"
msgstr "el parámetro `%D' se declaró inválidamente como tipo de desplazamiento"
-#: cp/decl.c:12183
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr "el parámetro `%D' incluye %s para la matriz `%T' de límite desconocido"
@@ -14762,694 +15486,679 @@ msgstr "el parámetro `%D' incluye %s para la matriz `%T' de límite desconocido"
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12350
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr "constructor inválido; tal vez quiso decir `%T (const %T&)'"
-#: cp/decl.c:12501
+#: cp/decl.c:13222
msgid "`%D' must be a nonstatic member function"
msgstr "`%D' debe ser una función miembro que no sea static"
-#: cp/decl.c:12507
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr "`%D' debe ser una función miembro no estático o una función no miembro"
-#: cp/decl.c:12524
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr "`%D' debe tener un argumento de tipo clase o enumerado"
-#: cp/decl.c:12556
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr "la conversión a %s%s nunca usará un operador de conversión de tipo"
#. 13.4.0.3
-#: cp/decl.c:12563
+#: cp/decl.c:13284
msgid "ISO C++ prohibits overloading operator ?:"
-msgstr "ISO C++ prohibe la sobrecarga del operador ?:"
+msgstr "ISO C++ prohíbe la sobrecarga del operador ?:"
-#: cp/decl.c:12613
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr "el postfijo `%D' debe tomar `int' como su argumento"
-#: cp/decl.c:12617
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr "el postfijo `%D' debe tomar `int' como su segundo argumento"
-#: cp/decl.c:12624
+#: cp/decl.c:13345
msgid "`%D' must take either zero or one argument"
msgstr "`%D' debe tomar cero o un argumentos"
-#: cp/decl.c:12626
+#: cp/decl.c:13347
msgid "`%D' must take either one or two arguments"
msgstr "`%D' debe tomar uno o dos argumentos"
-#: cp/decl.c:12647
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr "el prefijo `%D' debe regresar `%T'"
-#: cp/decl.c:12653
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr "el postfijo `%D' debe regresar `%T'"
-#: cp/decl.c:12662
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr "`%D' debe tomar `void'"
-#: cp/decl.c:12664 cp/decl.c:12672
+#: cp/decl.c:13385 cp/decl.c:13393
msgid "`%D' must take exactly one argument"
msgstr "`%D' debe tomar cero o un argumentos exactamente"
-#: cp/decl.c:12674
+#: cp/decl.c:13395
msgid "`%D' must take exactly two arguments"
msgstr "`%s' debe tomar cero o dos argumentos exactamente"
-#: cp/decl.c:12682
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr "el `%D' definido por el usuario siempre evalúa ambos argumentos"
-#: cp/decl.c:12694
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr "`%D' debe regresar por valor"
-#: cp/decl.c:12706 cp/decl.c:12709
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
-msgstr "`%D' no puede tener argumentos por omisión"
-
-#: cp/decl.c:12800
-msgid "`%s %T' declares a new type at namespace scope"
-msgstr "`%s %T' declara un tipo nuevo en el ámbito del nombre de espacio"
+msgstr "`%D' no puede tener argumentos por defecto"
-#: cp/decl.c:12803
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
-msgstr " los nombres de las clases bases dependientes no son visibles para la búsqueda de nombres sin calificar - para referirse al tipo heredado, utilice `%s %T::%T'"
-
-#: cp/decl.c:12841
+#: cp/decl.c:13475
msgid "using typedef-name `%D' after `%s'"
msgstr " usando el nombre de definición de tipo `%D' después de `%s'"
-#: cp/decl.c:12846
+#: cp/decl.c:13481
msgid "using template type parameter `%T' after `%s'"
msgstr "usando el parámetro de tipo plantilla `%T' después de `%s'"
-#: cp/decl.c:12926
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "`%s %T' declara un tipo nuevo en el ámbito del nombre de espacio"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr " los nombres de las clases bases dependientes no son visibles para la búsqueda de nombres sin calificar - para referirse al tipo heredado, utilice `%s %T::%T'"
+
+#: cp/decl.c:13663
msgid "use of enum `%#D' without previous declaration"
msgstr "uso del enum `%#D' sin declaración previa"
-#: cp/decl.c:13024
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr "union derivada `%T' inválida"
-#: cp/decl.c:13068
+#: cp/decl.c:13795
msgid "base type `%T' fails to be a struct or class type"
msgstr "el tipo base `%T' falla en ser un tipo struct o clase"
-#: cp/decl.c:13078
+#: cp/decl.c:13805
msgid "base class `%T' has incomplete type"
msgstr "la clase base `%T' tiene tipo de dato incompleto"
-#: cp/decl.c:13086
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr "tipo recursivo `%T' sin definir"
-#: cp/decl.c:13088
+#: cp/decl.c:13815
msgid "duplicate base type `%T' invalid"
msgstr "tipo base duplicado `%T' inválido"
-#: cp/decl.c:13199
+#: cp/decl.c:13926
msgid "multiple definition of `%#T'"
msgstr "definición múltiple de `%#T'"
-#: cp/decl.c:13200
+#: cp/decl.c:13927
msgid "previous definition here"
msgstr "definición previa aquí"
-#: cp/decl.c:13371
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
msgid "enumerator value for `%D' not integer constant"
msgstr "el valor de enumerador para `%D' no es una constante entera"
-#: cp/decl.c:13391
+#: cp/decl.c:14126
msgid "overflow in enumeration values at `%D'"
msgstr "desbordamiento en valores de enumeración en `%D'"
-#: cp/decl.c:13477
+#: cp/decl.c:14195
msgid "return type `%#T' is incomplete"
msgstr "el tipo de devolución `%#T' es un tipo de dato incompleto"
-#: cp/decl.c:13593
+#: cp/decl.c:14309
msgid "semicolon missing after declaration of `%#T'"
msgstr "falta punto y coma después de la declaración de `%#T'"
-#: cp/decl.c:13614
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr "el tipo de devolución para `main' cambió a `int'"
-#: cp/decl.c:13645
+#: cp/decl.c:14361
msgid "`%D' implicitly declared before its definition"
msgstr "`%D' declarado implícitamente antes de su definición"
-#: cp/decl.c:13667 cp/typeck.c:6530
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr "`operator=' debe devolver una referencia a `*this'"
-#: cp/decl.c:13931
+#: cp/decl.c:14643
msgid "parameter `%D' declared void"
msgstr "el parámetro `%D' se declaró void"
-#: cp/decl.c:14408
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
-msgstr "`%D' ya se ha definido en la clase `%T'"
+msgstr "`%D' ya se definió en la clase `%T'"
-#: cp/decl.c:14625
+#: cp/decl.c:15348
msgid "static member function `%#D' declared with type qualifiers"
msgstr "la función miembro static `%#D' es declarada con calificadores de tipo"
-#: cp/decl2.c:529
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr "-f%s ya no tiene soporte"
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr "se renombró -fhandle-exceptions a -fexceptions (y ahora está activado por omisión)"
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr "-fname-mangling-version ya no tiene soporte"
-
-#: cp/decl2.c:624
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-Wno-strict-prototypes no tiene soporte en C++"
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr "calificadores de tipo duplicados en la declaración %s"
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr "se instanció la plantilla `%#D' en el fichero sin #pragma interface"
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr "se definió la plantilla `%#D' en el fichero sin #pragma interface"
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr "falta el nombre para la función miembro"
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1026
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
-msgstr "el decodificador se ha perdido: ¿falta algún '{' en algún lugar?"
+msgstr "el decodificador tal vez se perdió: ¿falta algún '{' en algún lugar?"
-#: cp/decl2.c:1057 cp/decl2.c:1071
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr "conversión ambigua para índice de matriz"
-#: cp/decl2.c:1065
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr "tipos inválidos `%T[%T]' para índice de matriz"
-#: cp/decl2.c:1113
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
-msgstr "se dió un argumento de tipo `%#T' a `delete', se esperaba un apuntador"
+msgstr "se dió un argumento de tipo `%#T' a `delete', se esperaba un puntero"
-#: cp/decl2.c:1121
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr "uso anacrónico del tamaño de la matriz desconocida en vector delete"
-#: cp/decl2.c:1131
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
-msgstr "no se puede borrar una función. Solamente los apuntadores a objetos son argumentos válidos para `delete'"
+msgstr "no se puede borrar una función. Solamente los punteros a objetos son argumentos válidos para `delete'"
-#: cp/decl2.c:1138
+#: cp/decl2.c:540
msgid "deleting `%T' is undefined"
msgstr "el borrar `%T' está indefinido"
-#: cp/decl2.c:1146
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr "borrando la matriz `%#D'"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1180
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr "declaración inválida de la plantilla miembro `%#D' en la clase local"
-#: cp/decl2.c:1189
+#: cp/decl2.c:591
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr "uso inválido de `virtual' en la declaración de plantilla de `%#D'"
-#: cp/decl2.c:1199 cp/pt.c:2562
+#: cp/decl2.c:601 cp/pt.c:2745
msgid "template declaration of `%#D'"
msgstr "redeclaración en plantilla de `%#D'"
-#: cp/decl2.c:1249
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr "el método Java `%D' tiene un tipo de devolución `%T' que no es de Java"
-#: cp/decl2.c:1258
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr "el método Java `%D' tiene un tipo de parámetro `%T' que no es de Java"
-#: cp/decl2.c:1354
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr "el prototipo para `%#D' no coincide con ningún otro en la clase `%T'"
-#: cp/decl2.c:1356
-msgid "candidate%s: %+#D"
-msgstr "candidato%s: %+#D"
-
-#: cp/decl2.c:1359
-msgid " %#D"
-msgstr " %#D"
-
-#: cp/decl2.c:1411
+#: cp/decl2.c:828
msgid "local class `%#T' shall not have static data member `%#D'"
msgstr "la clase local `%#T' no debe tener el miembro static `%#D'"
-#: cp/decl2.c:1419
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
-msgstr "iniciador inválido para miembro static con constructor"
+msgstr "inicializador inválido para el miembro static con constructor"
-#: cp/decl2.c:1422
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
-msgstr "(se requiere un inicio fuera de la clase)"
+msgstr "(se requiere una inicialización fuera de la clase)"
-#: cp/decl2.c:1481
+#: cp/decl2.c:898
msgid "invalid data member initialization"
-msgstr "iniciación del dato miembro inválida"
+msgstr "inicialización del dato miembro inválida"
-#: cp/decl2.c:1484
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
-msgstr "(use `=' para iniciar datos miembros static)"
+msgstr "(use `=' para inicializar miembros de datos static)"
-#: cp/decl2.c:1524
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr "el miembro `%D' tiene conflictos con el nombre de campo de la tabla de funciones virtuales"
-#: cp/decl2.c:1544
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr "`%D' ya está definido en `%T'"
-#: cp/decl2.c:1595
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
-msgstr "iniciador del campo no es constat"
+msgstr "el inicializador del campo no es constante"
-#: cp/decl2.c:1618
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr "no se permiten los especificadores `asm' en miembros de datos no estáticos"
-#: cp/decl2.c:1670
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr "no se puede declarar `%D' que sea un tipo de campo de bits"
-#: cp/decl2.c:1680
+#: cp/decl2.c:1100
msgid "cannot declare bit-field `%D' with function type"
msgstr "no se puede declarar el campo de bits `%D' con un tipo de función"
-#: cp/decl2.c:1687
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr "`%D' ya está definido en la clase %T"
-#: cp/decl2.c:1694
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr "el miembro static `%D' no puede ser un campo de bits"
-#: cp/decl2.c:1763
+#: cp/decl2.c:1201
msgid "initializer specified for non-member function `%D'"
-msgstr "iniciador especificado para la función no-miembro `%D'"
+msgstr "se especificó un inicializador para la función no-miembro `%D'"
-#: cp/decl2.c:1767
+#: cp/decl2.c:1205
msgid "invalid initializer for virtual method `%D'"
-msgstr "iniciador inválido para el método virtual `%D'"
+msgstr "inicializador inválido para el método virtual `%D'"
-#: cp/decl2.c:1871
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr "struct anónimo no se encuentra dentro de un tipo nombrado"
-#: cp/decl2.c:1967
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr "los agregados anónimos de alcance de nombre de espacio deben ser static"
-#: cp/decl2.c:1977
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr "agregado anónimo sin miembros"
-#: cp/decl2.c:2044
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr "`operator new' debe devolver el tipo `%T'"
-#: cp/decl2.c:2052
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr "`operator new' toma el tipo `size_t' (`%T') como primer argumento"
-#: cp/decl2.c:2079
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr "`operator delete' debe devolver el tipo `%T'"
-#: cp/decl2.c:2087
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr "`operator delete' toma el tipo `%T' como primer argumento"
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2828
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
-msgstr "se requieren demasiados argumentos para el inicio de la función"
+msgstr "se requieren demasiadas funciones de inicialización"
-#: cp/decl2.c:3639
+#: cp/decl2.c:3006
+msgid "inline function `%D' used but never defined"
+msgstr "se usa la función inline `%D' pero nunca se definió"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
msgstr "uso de la conversión de estilo antiguo"
-#: cp/decl2.c:4220
+#: cp/decl2.c:3860
msgid "use of `%D' is ambiguous"
msgstr "el uso de `%D' es ambiguo"
-#: cp/decl2.c:4221
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
-msgstr " primero declarado como `%#D' aquí"
+msgstr " declarado inicialmente como `%#D' aquí"
-#: cp/decl2.c:4224
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr " también declarado como `%#D' aquí"
-#: cp/decl2.c:4239
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr "`%D' denota un tipo ambiguo"
-#: cp/decl2.c:4240
+#: cp/decl2.c:3880
msgid " first type here"
msgstr " primer tipo aquí"
-#: cp/decl2.c:4241
+#: cp/decl2.c:3881
msgid " other type here"
msgstr " otro tipo aquí"
-#: cp/decl2.c:4338
+#: cp/decl2.c:3982
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr "la declaración de `%D' no está en un espacio de nombres alrededor de `%D'"
-#: cp/decl2.c:4372
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr "`%D' debería ser declarado dentro de `%D'"
-#: cp/decl2.c:4506
+#: cp/decl2.c:4152
msgid "`%D' is not a function,"
msgstr "`%D' no es una función,"
-#: cp/decl2.c:4507
+#: cp/decl2.c:4153
msgid " conflict with `%D'"
msgstr " tiene conflicto con `%D'"
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4821
+#: cp/decl2.c:4473
msgid "unknown namespace `%D'"
msgstr "espacio de nombres `%D' desconocido"
-#: cp/decl2.c:4855 cp/decl2.c:5125
+#: cp/decl2.c:4507 cp/decl2.c:4794
msgid "`%T' is not a namespace"
msgstr "`%T' no es un nombre de espacio"
-#: cp/decl2.c:4857
+#: cp/decl2.c:4509
msgid "`%D' is not a namespace"
msgstr "`%D' no es un nombre de espacio"
-#: cp/decl2.c:4866
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr "una declaración de uso no puede especificar un id de plantilla. Intente `using %D'"
-#: cp/decl2.c:4880
+#: cp/decl2.c:4532
msgid "namespace `%D' not allowed in using-declaration"
msgstr "no se permite el espacio de nombres `%D' en la declaración de uso"
-#: cp/decl2.c:4909
+#: cp/decl2.c:4561
msgid "`%D' not declared"
msgstr "no se declaró `%D'"
-#: cp/decl2.c:4960
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
-msgstr "`%D' ya se ha declarado en este ámbito"
+msgstr "`%D' ya se declaró en este ámbito"
-#: cp/decl2.c:4987
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr "el uso de la declaración `%D' introdujo el tipo ambiguo `%T'"
-#: cp/decl2.c:5078
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr "declaración de uso para un no miembro en el ámbito de la clase"
-#: cp/decl2.c:5084
+#: cp/decl2.c:4746
msgid "using-declaration for destructor"
msgstr "declaración de uso para el destructor"
-#: cp/decl2.c:5090
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr "una declaración de uso no puede especificar un id de plantilla. Intente `using %T::%D'"
-#: cp/decl2.c:5119
+#: cp/decl2.c:4788
msgid "namespace `%T' undeclared"
msgstr "espacio de nombres `%T' sin declarar"
-#: cp/decl2.c:5148
+#: cp/decl2.c:4817
msgid "default argument missing for parameter %P of `%+#D'"
-msgstr "falta el argumento por omisión para el parámetro %P de `%+#D'"
+msgstr "falta el argumento por defecto para el parámetro %P de `%+#D'"
-#: cp/decl2.c:5238
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr "se ignora la calificación extra `%T::' en el miembro `%D'"
-#: cp/decl2.c:5242
+#: cp/decl2.c:4945
msgid "`%T' does not have a class or union named `%D'"
msgstr "`%T' no tiene una clase o union llamado `%D'"
-#: cp/decl2.c:5255
+#: cp/decl2.c:4963
msgid "`%T' is not a class or union type"
msgstr "`%T' no es una clase o tipo union"
+#: cp/decl2.c:4977
+msgid "template argument is required for `%T'"
+msgstr "se requiere un argumento de plantilla para `%T'"
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "la declaración de `%D' en `%D' la cual no incluye a `%D'"
+
#: cp/error.c:35
#, c-format
msgid "`%s' not supported by %s"
msgstr "`%s' no tiene soporte para %s"
-#: cp/error.c:577
+#: cp/error.c:571
#, c-format
msgid "<anonymous %s>"
msgstr "<%s anónimo>"
-#: cp/error.c:814
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr "(% static para %s)"
-#: cp/error.c:2438
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr "\\x%x"
+
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
msgstr "En %s `%s':"
-#: cp/error.c:2493
+#: cp/error.c:2530
#, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "%s: En la instanciación de `%s':\n"
-#: cp/error.c:2517
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr "%s:%d: instanciado desde `%s'\n"
-#: cp/error.c:2522
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr "%s:%d: instanciado desde aquí\n"
#. damn ICE suppression
-#: cp/error.c:2675
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr "letra `%c' inesperada en locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr "el tipo `%T' no está permitido en `throw' o `catch' de Java"
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr "llamada a `catch' ó `throw' de Java con `jthrowable' sin definir"
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr "el tipo `%T' no es derivado de `java::lang::Throwable'"
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "mezclando `catch'es de C++ y Java en una sola unidad de traducción"
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
-msgstr "arrojando NULL, que tiene un tipo integral, no apuntador"
+msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero"
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
-msgstr " en expresión thrown"
+msgstr " en la expresión thrown"
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr "no se puede usar la expresión '%E' del tipo de clase abstracta '%T' en las expresiones thrown"
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr "la excepción del tipo `%T' será atrapada"
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr " por un manejador anterior para `%T'"
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr "el manejador `...' debe ser el último manejador para su bloque try"
-#: cp/friend.c:155
+#: cp/friend.c:159
msgid "`%D' is already a friend of class `%T'"
msgstr "`%D' ya es un friend de la clase `%T'"
-#: cp/friend.c:157
+#: cp/friend.c:161
msgid "previous friend declaration of `%D'"
msgstr "declaración friend previa de `%D'"
-#: cp/friend.c:197
+#: cp/friend.c:206
msgid "invalid type `%T' declared `friend'"
msgstr "el tipo inválido `%T' fue declarado `friend'"
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
msgid "partial specialization `%T' declared `friend'"
msgstr "la especialización parcial `%T' se declaró `friend'"
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr "la clase `%T' es implícitamente friend con sí misma"
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
msgid "typename type `%#T' declared `friend'"
msgstr "el tipo de nombre de tipo `%#T' se declaró `friend'"
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
msgid "template parameter type `%T' declared `friend'"
msgstr "el tipo de parámetro de plantilla `%T' se declaró `friend'"
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
msgid "`%#T' is not a template"
msgstr "`%#T' no es una plantilla"
-#: cp/friend.c:266
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr "`%T' ya es un friend de `%T'"
-#: cp/friend.c:362
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr "el miembro `%D' es declarado friend antes que se defina el tipo `%T'"
-#: cp/friend.c:417
+#: cp/friend.c:431
msgid "friend declaration `%#D' declares a non-template function"
msgstr "la declaración friend `%#D' declara una función que no es plantilla"
-#: cp/friend.c:420
+#: cp/friend.c:434
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr "(si esta no es su intención, asegúrese que la plantilla de la función ya ha sido declarada y agregue <> aquí después del nombre de la función) -Wno-non-template-friend desactiva este aviso"
-#: cp/g++spec.c:198 java/jvspec.c:424
+#: cp/g++spec.c:211 java/jvspec.c:423
#, c-format
msgid "argument to `%s' missing\n"
msgstr "falta el argumento para `%s'\n"
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr "`%D' se debe inicializar en la lista de inicialización de miembros"
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
-msgstr "la iniciación por omisión de `%#D', el cual tiene el tipo de referencia"
+msgstr "la inicialización por defecto de `%#D', el cual tiene el tipo de referencia"
-#: cp/init.c:290
+#: cp/init.c:389
msgid "uninitialized reference member `%D'"
-msgstr "referencia del miembro `%D' sin iniciar"
+msgstr "miembro referencia `%D' sin inicializar"
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
-msgstr "la lista de iniciadores tratada como una expresión compuesta"
-
-#: cp/init.c:410
-msgid "member initializers for `%#D'"
-msgstr "iniciadores miembro para `%#D'"
-
-#: cp/init.c:412
-msgid " and `%#D'"
-msgstr " y `%#D'"
+msgstr "la lista de inicializadores se trata como una expresión compuesta"
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr " se reordenará para coincidir con el orden de la declaración"
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
+msgstr "`%D' se inicializará después de"
-#: cp/init.c:428
-msgid "multiple initializations given for member `%D'"
-msgstr "se dieron iniciaciones múltiples para el miembro `%D'"
-
-#: cp/init.c:500
-msgid "initializations for multiple members of `%T'"
-msgstr "iniciaciones para múltiples miembros de `%T'"
+#: cp/init.c:541
+msgid "base `%T' will be initialized after"
+msgstr "la base `%T' se inicializará después de"
-#: cp/init.c:617
-msgid "base initializers for `%#T'"
-msgstr "iniciadores base para `%#T'"
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr " `%#D'"
-#: cp/init.c:618
-msgid " and `%#T'"
-msgstr " y `%#T'"
+#: cp/init.c:546
+msgid " base `%T'"
+msgstr " base `%T'"
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr " se reordenará para coincidir con el orden de herencia"
+#: cp/init.c:564
+msgid "multiple initializations given for base `%T'"
+msgstr "se dieron inicializaciones múltiples para la base `%T'"
#: cp/init.c:631
-msgid "base class `%T' already initialized"
-msgstr "la clase base `%T' ya se ha iniciado"
+msgid "initializations for multiple members of `%T'"
+msgstr "inicializaciones para múltiples miembros de `%T'"
-#: cp/init.c:702
+#: cp/init.c:688
msgid "base class `%#T' should be explicitly initialized in the copy constructor"
-msgstr "la clase base `%#T' debe ser iniciada explícitamente en la copia del constructor"
-
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
-msgstr "`%D' debe ser iniciado explícitamente en la lista de iniciación de miembros"
+msgstr "la clase base `%#T' debe ser inicializada explícitamente en la copia del constructor"
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr "la clase `%T' no tiene ningún campo llamado `%D'"
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
-msgstr "el campo `%#D' es static; el único punto de iniciación es su definición"
+msgstr "el campo `%#D' es static; el único punto de inicialización es su definición"
-#: cp/init.c:1032
+#: cp/init.c:965
msgid "unnamed initializer for `%T', which has no base classes"
-msgstr "iniciador sin nombre para `%T', el cual no tiene una clase base"
+msgstr "inicializador sin nombre para `%T', el cual no tiene una clase base"
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
-msgstr "iniciador sin nombre para `%T', el cual usa herencia múltiple"
+msgstr "inicializador sin nombre para `%T', el cual usa herencia múltiple"
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr "el tipo `%D' no es una base directa o virtual de `%T'"
-#: cp/init.c:1071
+#: cp/init.c:1010
msgid "type `%D' is not a direct base of `%T'"
msgstr "el tipo `%D' no es una base directa de `%T'"
@@ -15465,551 +16174,533 @@ msgstr "el tipo `%D' no es una base directa de `%T'"
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
-msgstr "iniciador de matriz erróneo"
+msgstr "inicializador de matriz erróneo"
-#: cp/init.c:1357
+#: cp/init.c:1311
msgid "`%T' is not an aggregate type"
msgstr "`%T' no es un tipo agregado"
-#: cp/init.c:1380
+#: cp/init.c:1334
msgid "`%T' fails to be an aggregate typedef"
msgstr "`%T' falla en ser un tipo agregado"
-#: cp/init.c:1389
+#: cp/init.c:1343
msgid "type `%T' is of non-aggregate type"
msgstr "el tipo `%T' es de un tipo no agregado"
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr "no se puede llamar al destructor `%T::~%T' sin un objeto"
-#: cp/init.c:1531
+#: cp/init.c:1490
msgid "invalid use of non-static field `%D'"
msgstr "uso inválido del campo no static `%D'"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1540 cp/method.c:163
+#: cp/init.c:1499 cp/method.c:160
msgid "invalid use of member `%D'"
msgstr "uso inválido del miembro `%D'"
-#: cp/init.c:1550
+#: cp/init.c:1509
msgid "no method `%T::%D'"
msgstr "no hay un método `%T::%D'"
-#: cp/init.c:1643
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr "el tipo incompleto `%T' no tiene al miembro `%D'"
-#: cp/init.c:1712
+#: cp/init.c:1676
msgid "`%D' is not a member of type `%T'"
msgstr "`%D' no es un miembro de tipo `%T'"
-#: cp/init.c:1731
-msgid "illegal pointer to bit-field `%D'"
-msgstr "apuntador ilegal al campo de bit `%D'"
+#: cp/init.c:1695
+msgid "invalid pointer to bit-field `%D'"
+msgstr "puntero inválido al campo de bit `%D'"
-#: cp/init.c:1770
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
msgstr "falta objeto en el uso de una consctrucción que apunta a miembros"
-#: cp/init.c:1810
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr "el miembro `%D' no es static pero es referenciado como un miembro static"
-#: cp/init.c:1812 cp/typeck.c:3130 cp/typeck.c:3238
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr "en este punto en el fichero"
-#: cp/init.c:1853 cp/typeck.c:2929
+#: cp/init.c:1813
#, c-format
msgid "object missing in `%E'"
msgstr "falta un objeto en `%E'"
-#: cp/init.c:1984
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr "new de matriz falla al especificar el tamaño"
-#: cp/init.c:1995
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr "el tamaño de la matriz nueva debe tener un tipo integral"
-#: cp/init.c:2001
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr "la matriz de tamaño cero no reserva espacio"
-#: cp/init.c:2066
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
-msgstr "new no puede ser aplicado a un tipo de referencia"
+msgstr "new no se puede aplicar a un tipo de referencia"
-#: cp/init.c:2072
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
-msgstr "new no puede ser aplicado a un tipo de referencia"
+msgstr "new no se puede aplicar a un tipo de función"
-#: cp/init.c:2119
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr "llamado a constructor Java, mientras `jclass' está indefinido"
-#: cp/init.c:2135
+#: cp/init.c:2095
msgid "can't find class$"
msgstr "no se puede encontrar class$"
-#: cp/init.c:2249
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr "tipo `void' inválido para new"
-#: cp/init.c:2301
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr "llamado a constructor Java con `%s' sin definir"
-#: cp/init.c:2408
+#: cp/init.c:2369
msgid "ISO C++ forbids initialization in array new"
-msgstr "ISO C++ prohibe la iniciación en la matriz new"
+msgstr "ISO C++ prohíbe la inicialización en la matriz new"
-#: cp/init.c:2426 cp/typeck2.c:359 cp/typeck2.c:1217
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
-msgstr "se trata la lista de iniciadores como una expresión compuesta"
+msgstr "se trata la lista de inicializadores como una expresión compuesta"
-#: cp/init.c:2432
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
-msgstr "ISO C++ prohibe un iniciador agregado para new"
+msgstr "ISO C++ prohíbe un inicializador agregado para new"
-#: cp/init.c:2516
+#: cp/init.c:2485
msgid "uninitialized const in `new' of `%#T'"
-msgstr "const sin iniciar en `new' de `%#T'"
+msgstr "const sin inicializar en `new' de `%#T'"
-#: cp/init.c:2880
+#: cp/init.c:2864
msgid "initializer ends prematurely"
-msgstr "el iniciador termina prematuramente"
+msgstr "el inicializador termina prematuramente"
-#: cp/init.c:2950
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
-msgstr "no se pueden asignar valores iniciales a matrices multidimensionales con el iniciador"
+msgstr "no se pueden inicializar matrices multidimensionales con el inicializador"
-#: cp/init.c:3125
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr "tamaño de matriz desconocida en delete"
-#: cp/init.c:3398
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
-msgstr "el tipo de vector delete no es del tipo apuntador ni matriz"
+msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
-msgstr "se esperaba nombre de tipo antes de `*'"
+msgstr "se esperaba un nombre de tipo antes de `*'"
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr "no se pueden declarar referencias a referencias"
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
-msgstr "no se pueden declarar apuntadores a referencias"
+msgstr "no se pueden declarar punteros a referencias"
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
-msgstr "se esperaba nombre de tipo antes de `&'"
+msgstr "se esperaba un nombre de tipo antes de `&'"
-#: cp/lex.c:993
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr "falta punto y coma después de la declaración %s"
-#: cp/lex.c:996
+#: cp/lex.c:897
msgid "semicolon missing after declaration of `%T'"
msgstr "falta punto y coma después de la declaración de `%T'"
-#: cp/lex.c:1044
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr "basura al final de #pragma %s"
-#: cp/lex.c:1051
+#: cp/lex.c:952
#, c-format
msgid "invalid #pragma %s"
msgstr "#pragma %s inválida"
-#: cp/lex.c:1060
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr "#pragma vtable ya no tiene soporte"
-#: cp/lex.c:1137
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "implementación de #pragma para %s aparece después de que el fichero es incluído"
-#: cp/lex.c:1162
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr "basura al final del #pragma GCC java_exceptions"
-#: cp/lex.c:1247
+#: cp/lex.c:1107
msgid "`%D' not defined"
msgstr "`%D' no está definido"
-#: cp/lex.c:1252
+#: cp/lex.c:1110
msgid "`%D' was not declared in this scope"
-msgstr "`%D' no fue declarado en este ámbito"
+msgstr "`%D' no se declaró en este ámbito"
-#: cp/lex.c:1262
+#: cp/lex.c:1118
msgid "`%D' undeclared (first use this function)"
-msgstr "`%D' sin declarar (primero use esta función)"
+msgstr "`%D' sin declarar (primer uso en esta función)"
-#: cp/lex.c:1266
+#: cp/lex.c:1122
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr "(Cada identificador sin declarar es reportado sólo una vez para cada función en el que aparece.)"
-#: cp/lex.c:1289
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr "la búsqueda de nombre de `%s' cambió"
-
-#: cp/lex.c:1291
-msgid " matches this `%D' under ISO standard rules"
-msgstr " coincide con este `%D' bajo las reglas de ISO estándard"
-
-#: cp/lex.c:1293
-msgid " matches this `%D' under old rules"
-msgstr " coincide con este `%D' bajo las reglas antiguas"
-
-#: cp/lex.c:1303 cp/lex.c:1310
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr "la búsqueda de nombre de `%s' cambió por el nuevo alcance ISO de `for'"
-
-#: cp/lex.c:1305
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr " no se puede usar la asignación obsoleta en `%D' porque tiene un destructor"
-
-#: cp/lex.c:1312
-msgid " using obsolete binding at `%D'"
-msgstr " usando la asignación obsoleta en `%D'"
-
-#: cp/lex.c:1378
+#: cp/lex.c:1242
msgid "`::%D' undeclared (first use here)"
msgstr "`::%D' sin declarar (primer uso aquí)"
-#: cp/mangle.c:1912
-msgid "real-valued template parameters when cross-compiling"
-msgstr "parámetros de una plantilla con valores reales cuando se hizo una compilación cruzada"
+#: cp/mangle.c:2051
+#, fuzzy
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "new no se puede aplicar a un tipo de función"
-#: cp/method.c:157
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr "el nombre revuelto de `%D' cambiará en una versión futura de GCC"
+
+#: cp/method.c:154
msgid "invalid use of member `%D' in static member function"
msgstr "uso inválido del miembro `%D' en la función miembro static"
-#: cp/method.c:205
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr "uso del espacio de nombres `%D' como una expresión"
-#: cp/method.c:210
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr "uso de la plantilla de clase `%T' como una expresión"
-#: cp/method.c:223
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr "uso de %s desde una función contenedora"
-#: cp/method.c:226
+#: cp/method.c:237
msgid " `%#D' declared here"
msgstr " `%#D' declarado aquí"
-#: cp/method.c:244
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr "la petición por el miembro `%D' es ambigua en la red de herencia múltiple"
-#: cp/method.c:297
-msgid "implementation-reserved name `%D' used"
-msgstr "se usó el nombre `%D' reservado para la implementación"
-
-#: cp/method.c:428
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr "el código de thunk genérico falló para el método `%#D' que utiliza `...'"
-#: cp/method.c:653
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
-msgstr "el miembro const `%#D' que no es static, no puede usar el operador de asignación por omisión"
+msgstr "el miembro const `%#D' que no es static, no puede usar el operador de asignación por defecto"
-#: cp/method.c:658
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
-msgstr "el miembro de referencia `%#D' que no es static, no puede usar el operador de asignación por omisión"
+msgstr "el miembro de referencia `%#D' que no es static, no puede usar el operador de asignación por defecto"
-#: parse.y:218
+#: parse.y:262
msgid "`%s' tag used in naming `%#T'"
msgstr "se usó la marca `%s' al nombrar a`%#T'"
-#: parse.y:510
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr "la palabra clave `export' no está implementada, y será ignorada"
-#: parse.y:615
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr "el uso de la especificación de enlazado `%D' es diferente de la especificación previa `%D'"
-#: parse.y:688
-msgid "invalid default template argument"
-msgstr "argumento de la plantilla por omisión inválido"
-
-#: parse.y:919
-msgid "only constructors take base initializers"
-msgstr "solamente los constructores toman iniciadores base"
-
-#: parse.y:921
+#: parse.y:943
msgid "no base or member initializers given following ':'"
-msgstr "no hay iniciadores de base o miembros dados después de ':'"
+msgstr "no hay inicializadores de base o miembros dados después de ':'"
-#: parse.y:963 parse.y:969
+#: parse.y:984
msgid "anachronistic old style base class initializer"
-msgstr "iniciador de clase base de estilo antiguo anacrónico"
+msgstr "inicializador de clase base de estilo antiguo anacrónico"
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1095
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr "`>>' debe ser `> >' en el nombre de clase de la plantilla"
-#: parse.y:1133
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr "uso del calificador de plantilla fuera de la plantilla"
-#: parse.y:1162 parse.y:1171
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
-msgstr "ISO C++ prohibe una condición vacía para `%s'"
+msgstr "ISO C++ prohíbe una condición vacía para `%s'"
-#: parse.y:1194
+#: parse.y:1225
msgid "definition of class `%T' in condition"
msgstr "definición de la clase `%T' en una condición"
-#: parse.y:1196
+#: parse.y:1227
msgid "definition of enum `%T' in condition"
msgstr "definición del enum `%T' en una condición"
-#: parse.y:1207
+#: parse.y:1238
msgid "definition of array `%#D' in condition"
msgstr "definición de la matriz `%#D' en una condición"
-#: parse.y:1316
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr "sintaxis de ubicación de estilo antiguo, use en su lugar ()"
-#: parse.y:1327
+#: parse.y:1362
msgid "`%T' is not a valid expression"
msgstr "`%T' no es una expresión válida"
-#: parse.y:1338
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr "ISO C++ prohibe la iniciación de la expresión new con `='"
-
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr "inicialización de la expresión new con `='"
+
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
-msgstr "ISO C++ prohibe literales compuestos"
+msgstr "ISO C++ prohíbe literales compuestos"
-#: parse.y:1611
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
-msgstr "ISO C++ prohibe grupos de llaves dentro de las expresiones"
+msgstr "ISO C++ prohíbe grupos de llaves dentro de las expresiones"
+
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "uso inválido del miembro `%D'"
-#: parse.y:2013 parse.y:2028
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
msgstr "especificador de tipo sigof"
-#: parse.y:2018
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr "`sigof' aplicado a una expresión no agregada"
-#: parse.y:2033
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr "`sigof' aplicado a un tipo no agregado"
-#: parse.y:2299
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr "usando `typename' fuera de la plantilla"
-#: parse.y:2370
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr "no se permite el especificador de clase de almacenamiento `%s' después de struct ó class"
-#: parse.y:2372
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr "no se permite el especificador de tipo `%s' después de struct ó class"
-#: parse.y:2374
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr "no se permite el calificador de tipo `%s' después de struct ó class"
-#: parse.y:2376
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr "no hay cuerpo ni ';' separa dos declaraciones class, struct ó union"
-#: parse.y:2508
+#: parse.y:2553
msgid "no bases given following `:'"
msgstr "no hay bases dado el siguiente `:'"
-#: parse.y:2539 parse.y:2554
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr "acceso `%D'"
-#: parse.y:2544
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr "especificadores de acceso múltiples"
-#: parse.y:2562
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr "especificadores `virtual' múltiples"
-#: parse.y:2599
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr "falta ';' antes de la llave derecha"
-#: parse.y:2820
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
-msgstr "ISO C++ prohibe las dimensiones de matriz con tipos con paréntesis en new"
+msgstr "ISO C++ prohíbe las dimensiones de matriz con tipos con paréntesis en new"
-#: parse.y:3107 parse.y:3127 parse.y:3136 parse.y:3165
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
msgid "`%T' is not a class or namespace"
msgstr "`%T' no es una claso o un espacio de nombres"
-#: parse.y:3332
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
-msgstr "ISO C++ prohibe declaraciones etiquetadas"
+msgstr "ISO C++ prohíbe declaraciones etiquetadas"
-#: parse.y:3492
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
-msgstr "ISO C++ prohibe gotos calculados"
+msgstr "ISO C++ prohíbe gotos calculados"
-#: parse.y:3500
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr "la etiqueta debe ser seguida de una declaración"
-#: parse.y:3545
+#: parse.y:3590
msgid "must have at least one catch per try block"
msgstr "se debe tener por lo menos un catch por cada bloque try"
-#: parse.y:3605
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
-msgstr "ISO C++ prohibe las declaraciones compuestas internas para iniciaciones"
+msgstr "ISO C++ prohíbe las declaraciones compuestas internas para inicializaciones"
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3690 parse.y:3700
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr "posible ')' faltante"
-#: parse.y:3793
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr "especificador de tipo omitido para el parámetro"
-#: parse.y:3802
+#: parse.y:3849
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr "`%E' no es un tipo, use `typename %E' para hacerlo un tipo"
-#: parse.y:3804
+#: parse.y:3851
msgid "no type `%D' in `%T'"
msgstr "no hay un tipo `%D' en `%T'"
-#: parse.y:3807
+#: parse.y:3854
#, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr "se omitió el especificador para el parámetro `%E'"
-#: parse.y:3815
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr "se usa '%D' como un tipo, pero no está definido como un tipo."
-#: cp/pt.c:211
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr "los datos miembros `%D' no puede ser una plantilla miembro"
-#: cp/pt.c:223
+#: cp/pt.c:296
msgid "invalid member template declaration `%D'"
msgstr "declaración de la plantilla miembro `%D' inválida"
-#: cp/pt.c:618
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr "especialización explícita en el ámbito `%D' que no es espacio de nombres"
-#: cp/pt.c:630
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr "las plantillas de clase contenidas no son especializadas explícitamente"
-#: cp/pt.c:705
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr "especializando `%#T' en diferentes espacios de nombres"
-#: cp/pt.c:706
+#: cp/pt.c:793 cp/pt.c:834
msgid " from definition of `%#D'"
msgstr " de la definición de `%#D'"
-#: cp/pt.c:714
+#: cp/pt.c:801
msgid "specialization of `%T' after instantiation"
msgstr "especialización de `%T' después de la instanciación"
-#: cp/pt.c:717
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "especialización de `%T' después de la instanciación `%T'"
+
+#: cp/pt.c:860
msgid "explicit specialization of non-template `%T'"
msgstr "especialización explícita de `%T' que no es plantilla"
-#: cp/pt.c:849
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr "especialización de %D después de la instanciación"
-#: cp/pt.c:952
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1003
+#: cp/pt.c:1147
msgid "`%D' is not a function template"
msgstr "`%D' no es una plantilla de función"
-#: cp/pt.c:1126
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr "el id de plantilla `%D' para `%+D' no coincide con ninguna declaración de plantilla"
-#: cp/pt.c:1134
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr "especialización de plantilla ambigua `%D' para `%+D'"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1361 cp/pt.c:1435
+#: cp/pt.c:1521 cp/pt.c:1595
msgid "template-id `%D' in declaration of primary template"
msgstr "id de plantilla `%D' en la declaración de la plantilla primaria"
-#: cp/pt.c:1374
+#: cp/pt.c:1534
msgid "template parameter list used in explicit instantiation"
msgstr "se usó una lista de parámetros de plantilla en una instanciación explícita"
-#: cp/pt.c:1380
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr "se provee una definición para instanciación explícita"
-#: cp/pt.c:1386
+#: cp/pt.c:1546
msgid "too many template parameter lists in declaration of `%D'"
msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%D'"
-#: cp/pt.c:1402
+#: cp/pt.c:1562
msgid "too few template parameter lists in declaration of `%D'"
msgstr "muy pocas listas de parámetros de plantilla en la declaración de `%D'"
-#: cp/pt.c:1419
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr "especialización explícita no precedida por `template <>'"
-#: cp/pt.c:1432
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr "especialización parcial `%D' de la plantilla de función"
-#: cp/pt.c:1464
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
-msgstr "se especificó un argumento por omisión en la especialización explícita"
+msgstr "se especificó un argumento por defecto en la especialización explícita"
-#: cp/pt.c:1468
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr "especialización de plantilla con enlace C"
@@ -16021,99 +16712,99 @@ msgstr "especialización de plantilla con enlace C"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1556
+#: cp/pt.c:1715
msgid "specialization of implicitly-declared special member function"
msgstr "especialización de la función miembro especial declarada implícitamente"
-#: cp/pt.c:1599
+#: cp/pt.c:1759
msgid "no member function `%D' declared in `%T'"
msgstr "la función no miembro `%D' se declaró en `%T'"
#. There are two many template parameter lists.
-#: cp/pt.c:1747
+#: cp/pt.c:1909
msgid "too many template parameter lists in declaration of `%T'"
msgstr "demasiadas listas de parámetros de plantilla en la declaración de `%T'"
-#: cp/pt.c:1843
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
-msgstr " obscurece el parámetro de plantilla `%#D'"
+msgstr " oscurece el parámetro de plantilla `%#D'"
-#: cp/pt.c:2247
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr "no se usan los parámetros de plantilla en la especialización parcial:"
-#: cp/pt.c:2251
+#: cp/pt.c:2413
msgid " `%D'"
msgstr " `%D'"
-#: cp/pt.c:2263
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr "la especialización parcial `%T' no especializa ningún argumento de plantilla"
-#: cp/pt.c:2288
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr "el argumento de plantilla `%E' involucra a el(los) parámetro(s) de plantilla"
-#: cp/pt.c:2331
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr "el tipo `%T' del argumento de plantilla `%E' depende de el(los) parámetro(s) de plantilla"
-#: cp/pt.c:2419
+#: cp/pt.c:2582
msgid "no default argument for `%D'"
-msgstr "no hay un argumento por omisión para `%D'"
+msgstr "no hay un argumento por defecto para `%D'"
-#: cp/pt.c:2552
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr "plantilla con enlace C"
-#: cp/pt.c:2555
+#: cp/pt.c:2738
msgid "template class without a name"
msgstr "clase de plantilla sin nombre"
-#: cp/pt.c:2632
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr "`%D' no declara un tipo de plantilla"
-#: cp/pt.c:2638
+#: cp/pt.c:2821
msgid "template definition of non-template `%#D'"
msgstr "definición de plantilla de `%#D' que no es plantilla"
-#: cp/pt.c:2679
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr "se esperaban %d niveles de parámetros de plantilla para `%#D', se obtuvieron %d"
-#: cp/pt.c:2691
+#: cp/pt.c:2874
msgid "got %d template parameters for `%#D'"
msgstr "se obtuvieron %d parámetros de plantilla para `%#D'"
-#: cp/pt.c:2694
+#: cp/pt.c:2877
msgid "got %d template parameters for `%#T'"
msgstr "se obtuvieron %d parámetros de plantilla para `%#T'"
-#: cp/pt.c:2696
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr " pero se requieren %d"
-#: cp/pt.c:2764
+#: cp/pt.c:2962
msgid "`%T' is not a template type"
msgstr "`%T' no es un tipo plantilla"
-#: cp/pt.c:2780
+#: cp/pt.c:2978
msgid "previous declaration `%D'"
msgstr "declaración previa de `%D'"
-#: cp/pt.c:2781
+#: cp/pt.c:2979
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "se usaron %d parámetro%s de plantilla en lugar de %d"
-#: cp/pt.c:2797
+#: cp/pt.c:2995
msgid "template parameter `%#D'"
msgstr "parámetro de plantilla `%#D'"
-#: cp/pt.c:2798
+#: cp/pt.c:2996
msgid "redeclared here as `%#D'"
msgstr "redeclarado aquí como `%#D'"
@@ -16121,714 +16812,716 @@ msgstr "redeclarado aquí como `%#D'"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2808
+#: cp/pt.c:3006
msgid "redefinition of default argument for `%#D'"
-msgstr "redefinición del argumento por omisión para `%#D'"
+msgstr "redefinición del argumento por defecto para `%#D'"
-#: cp/pt.c:2809
+#: cp/pt.c:3007
msgid " original definition appeared here"
-msgstr " la definición original aparece aquí"
+msgstr " la definición original apareció aquí"
-#: cp/pt.c:2902
+#: cp/pt.c:3100
#, c-format
msgid "`%E' is not a valid template argument"
msgstr "`%E' no es un argumento de plantilla válido"
-#: cp/pt.c:2906
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr "debe ser la dirección de una función con enlace externo"
-#: cp/pt.c:2908
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr "debe ser la dirección de un objeto con enlace externo"
-#: cp/pt.c:2912
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
-msgstr "debe ser un apuntador-a-miembro de la forma `&X::Y'"
+msgstr "debe ser un puntero-a-miembro de la forma `&X::Y'"
-#: cp/pt.c:2923
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr "la cadena literal %E no es un argumento válido de plantilla porque es la dirección de un objeto con enlace estático"
-#: cp/pt.c:2935
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr "no se puede usar la dirección de `%E' que no es externo como un argumento de plantilla"
-#: cp/pt.c:2946
+#: cp/pt.c:3144
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr "`%E' que no es constante no se puede usar como un argumento de plantilla"
-#: cp/pt.c:2953
+#: cp/pt.c:3151
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr "el objeto `%E' no se puede usar como un argumento de plantilla"
-#: cp/pt.c:3333
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use `typename %E'"
-#: cp/pt.c:3346 cp/pt.c:3362 cp/pt.c:3401
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para `%D'"
-#: cp/pt.c:3349
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr " se esperaba una constante de tipo `%T', se obtuvo `%T'"
-#: cp/pt.c:3353
+#: cp/pt.c:3546
#, c-format
msgid " expected a type, got `%E'"
msgstr " se esperaba un tipo, se obtuvo `%E'"
-#: cp/pt.c:3365
+#: cp/pt.c:3558
msgid " expected a type, got `%T'"
msgstr " se esperaba un tipo, se obtuvo `%T'"
-#: cp/pt.c:3367
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr " se esperaba una plantilla de clase, se obtuvo `%T'"
-#: cp/pt.c:3403
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr " se esperaba una plantilla de tipo `%D', se obtuvo `%D'"
-#: cp/pt.c:3425
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr "el argumento de plantilla `%T' usa un tipo anónimo"
-#: cp/pt.c:3428
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr "el argumento de plantilla `%T' usa el tipo local `%T'"
-#: cp/pt.c:3463
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr "el argumento de plantilla `%T' es un tipo modificado variablemente"
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr "no se puede convertir el argumento de plantilla `%E' a `%T'"
-#: cp/pt.c:3507
+#: cp/pt.c:3710
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "número erróneo de argumentos de plantilla (%d, debería ser %d)"
-#: cp/pt.c:3511
+#: cp/pt.c:3714
msgid "provided for `%D'"
msgstr "provisto por `%D'"
-#: cp/pt.c:3558
+#: cp/pt.c:3761
#, c-format
msgid "template argument %d is invalid"
msgstr "el argumento de plantilla %d es inválido"
-#: cp/pt.c:3790
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr "se usa una no plantilla como plantilla"
-#: cp/pt.c:3908
+#: cp/pt.c:4139
msgid "`%T' is not a template"
msgstr "`%T' no es una plantilla"
-#: cp/pt.c:3921
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr "se usa el tipo `%T' que no es plantilla como una plantilla"
-#: cp/pt.c:3923
+#: cp/pt.c:4154
msgid "for template declaration `%D'"
msgstr "para la declaración de plantilla `%D'"
-#: cp/pt.c:4486
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth-NN para incrementar el máximo) al instanciar `%D'"
-#: cp/pt.c:4921
+#: cp/pt.c:5247
msgid "ambiguous class template instantiation for `%#T'"
msgstr "instanciación de plantilla clase ambigua para `%#T'"
-#: cp/pt.c:4928
+#: cp/pt.c:5254
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:5949 cp/pt.c:6054
+#: cp/pt.c:6284 cp/pt.c:6396
msgid "instantiation of `%D' as type `%T'"
msgstr "instanciación de `%D' como tipo `%T'"
-#: cp/pt.c:6096
+#: cp/pt.c:6440
msgid "invalid parameter type `%T'"
msgstr "tipo de parámetro `%T' inválido"
-#: cp/pt.c:6098
+#: cp/pt.c:6442
msgid "in declaration `%D'"
msgstr "en la declaración `%D'"
-#: cp/pt.c:6173
+#: cp/pt.c:6517
msgid "creating pointer to member function of non-class type `%T'"
-msgstr "creando un apuntador a función miembro del tipo `%T' que no es clase"
+msgstr "creando un puntero a función miembro del tipo `%T' que no es clase"
-#: cp/pt.c:6336
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr "creando la matriz con tamaño cero"
-#: cp/pt.c:6350
+#: cp/pt.c:6694
#, c-format
msgid "creating array with size zero (`%E')"
msgstr "creando la matriz con tamaño cero (`%E')"
-#: cp/pt.c:6589
+#: cp/pt.c:6933
msgid "forming reference to void"
msgstr "formando la referencia a void"
-#: cp/pt.c:6591
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr "formando %s para referenciar al tipo `%T'"
-#: cp/pt.c:6629
+#: cp/pt.c:6973
msgid "creating pointer to member of non-class type `%T'"
-msgstr "creando un apuntador al miembro del tipo `%T' que no es clase"
+msgstr "creando un puntero al miembro del tipo `%T' que no es clase"
-#: cp/pt.c:6635
+#: cp/pt.c:6979
msgid "creating pointer to member reference type `%T'"
-msgstr "creando un apuntador al miembro de referencia de tipo `%T'"
+msgstr "creando un puntero al miembro de referencia de tipo `%T'"
-#: cp/pt.c:6713
+#: cp/pt.c:7057
msgid "creating array of `%T'"
msgstr "creando la matriz de `%T'"
-#: cp/pt.c:6756
+#: cp/pt.c:7100
msgid "`%T' is not a class, struct, or union type"
msgstr "`%T' no es de tipo clase, struct o union"
-#: cp/pt.c:6866
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr "uso de `%s' en la plantilla"
-#: cp/pt.c:7629
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr "el tipo `%T' compuesto desde una clase local no es un argumento de plantilla válido"
-#: cp/pt.c:7630
+#: cp/pt.c:7976
msgid " trying to instantiate `%D'"
msgstr " tratando de instanciar `%D'"
-#: cp/pt.c:8060
+#: cp/pt.c:8421
msgid "incomplete type unification"
msgstr "unificación de tipo incompleto"
-#: cp/pt.c:9027
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr "uso de `%s' en la unificación de tipo de la plantilla"
-#: cp/pt.c:9447 cp/pt.c:9515
+#: cp/pt.c:9821 cp/pt.c:9893
msgid "explicit instantiation of non-template `%#D'"
msgstr "instanciación explícita de `%#D' que no es plantilla"
-#: cp/pt.c:9463 cp/pt.c:9510
+#: cp/pt.c:9837 cp/pt.c:9888
msgid "no matching template for `%D' found"
msgstr "no se encuentra una plantilla coincidente para `%D'"
-#: cp/pt.c:9469
+#: cp/pt.c:9843
msgid "explicit instantiation of `%#D'"
msgstr "instanciación explícita de `%#D'"
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9486
-msgid "explicit instantiation of `%#D' after"
-msgstr "instanciación explícita de `%#D' después de"
-
-#: cp/pt.c:9487 cp/pt.c:9624
-msgid "explicit specialization here"
-msgstr "especialización explícita aquí"
-
-#: cp/pt.c:9502
+#: cp/pt.c:9880
msgid "duplicate explicit instantiation of `%#D'"
msgstr "instanciación explícita duplicada de `%#D'"
-#: cp/pt.c:9527
+#: cp/pt.c:9905
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
-msgstr "ISO C++ prohibe el uso de `extern' en instanciaciones explícitas"
+msgstr "ISO C++ prohíbe el uso de `extern' en instanciaciones explícitas"
-#: cp/pt.c:9531 cp/pt.c:9609
+#: cp/pt.c:9909 cp/pt.c:9999
msgid "storage class `%D' applied to template instantiation"
msgstr "clase de almacenamiento `%D' aplicada a la instanciación de una plantilla"
-#: cp/pt.c:9576
+#: cp/pt.c:9966
msgid "explicit instantiation of non-template type `%T'"
msgstr "instanciación explícita del tipo `%T' del tipo no plantilla"
-#: cp/pt.c:9590
+#: cp/pt.c:9980
msgid "explicit instantiation of `%#T' before definition of template"
msgstr "instanciación explícita de `%#T' antes de la definición de la plantilla"
-#: cp/pt.c:9598
+#: cp/pt.c:9988
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
-msgstr "ISO C++ prohibe el uso de `%s' en las instanciaciones explícitas"
+msgstr "ISO C++ prohíbe el uso de `%s' en las instanciaciones explícitas"
-#: cp/pt.c:9623
-msgid "explicit instantiation of `%#T' after"
-msgstr "instanciación explícita de `%#T' después de"
-
-#: cp/pt.c:9641
+#: cp/pt.c:10032
msgid "duplicate explicit instantiation of `%#T'"
msgstr "instanciación explícita duplicada de `%#T'"
-#: cp/pt.c:10003
+#: cp/pt.c:10412
msgid "explicit instantiation of `%D' but no definition available"
msgstr "instanciación explícita de `%D' pero no hay una definición disponible"
-#: cp/pt.c:10375
+#: cp/pt.c:10815
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr "`%#T' no es un tipo válido para un parámetro constante de plantilla"
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr "-frepo debe ser usado con -c"
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr "información de repositorio misteriosa en %s"
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr "no se puede crear el fichero de información de repositorio `%s'"
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr "no se puede usar typeid sin -fno-rtti"
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr "debe hacer #include <typeinfo> antes de usar typeid"
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr "no se puede crear la información de tipo para el tipo `%T' porque su tamaño es variable"
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr "dynamic_cast de `%#D' a `%#T' nunca podrá tener éxito"
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr "no se puede hacer dynamic_cast `%E' (de tipo `%#T') al tipo `%#T' (%s)"
-#: cp/search.c:340
-msgid "`%T' is an inaccessible base of `%T'"
-msgstr "`%T' es una base inaccesible de `%T'"
-
-#: cp/search.c:350
+#: cp/search.c:332
msgid "`%T' is an ambiguous base of `%T'"
msgstr "`%T' es una base ambigua de `%T'"
-#: cp/search.c:1820
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr "`%T' es una base inaccesible de `%T'"
+
+# No me gusta mucho esta traducción. - cfuga
+#
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "asignación al miembro `%D' que no es static de la clase incluyente `%T'"
+
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
-msgstr "ajustando los apuntadores de devoluciones covariantes"
+msgstr "ajustando los punteros para devoluciones covariantes"
-#: cp/search.c:1824 cp/search.c:1831
+#: cp/search.c:2054 cp/search.c:2061
msgid "invalid covariant return type for `%#D'"
msgstr "tipo de devolución covariante inválido para `%#D'"
-#: cp/search.c:1825
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
-msgstr " sustituyendo a `%#D' (debe ser apuntador o referencia a una clase)"
+msgstr " sustituyendo a `%#D' (debe ser puntero o referencia a una clase)"
-#: cp/search.c:1832
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
-msgstr " sustituyendo a `%#D' (debe ser apuntador o referencia)"
+msgstr " sustituyendo a `%#D' (debe ser puntero o referencia)"
-#: cp/search.c:1837
+#: cp/search.c:2067
msgid "conflicting return type specified for `%#D'"
msgstr "tipos de devolución en conflicto especificados para `%#D'"
-#: cp/search.c:1838
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr " sustituyendo `%#D'"
-#: cp/search.c:1847
+#: cp/search.c:2077
#, c-format
msgid "looser throw specifier for `%#F'"
msgstr "especificador thrown más flexible para `%#F'"
-#: cp/search.c:1848
+#: cp/search.c:2078
#, c-format
msgid " overriding `%#F'"
msgstr " sustituyendo `%#F'"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1938
+#: cp/search.c:2167
msgid "`%#D' cannot be declared"
msgstr "`%#D' no puede ser declarado"
-#: cp/search.c:1939
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr " ya que se declaró `%#D' en la clase base"
-#: cp/search.c:2080
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr "`%#D' necesita un impositor final"
-#: cp/semantics.c:911
+#: cp/semantics.c:919
#, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr "no se puede determinar el tipo del operando asm `%E'"
-#: cp/semantics.c:1053
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
msgstr "ISO C++ no permite valores nombrados de devolución"
-#: cp/semantics.c:1062
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr "el identificador de devolución `%D' ya está en su lugar"
-#: cp/semantics.c:1070
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
-msgstr "no se puede redefinir el valor por omisión de devoluciòn para los constructores"
+msgstr "no se puede redefinir el valor por defecto de devoluciòn para los constructores"
-#: cp/semantics.c:1137
-msgid "base initializer for `%T'"
-msgstr "iniciador base para `%T'"
-
-#: cp/semantics.c:1139
-msgid " will be re-ordered to precede member initializations"
-msgstr " será reordenado para preceder la iniciaciones de los miembros"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr "solamente los constructores toman inicializadores base"
-#: cp/semantics.c:1327
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr "`this' no está disponible para funciones miembro static"
-#: cp/semantics.c:1333
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr "uso inválido de `this' en la función no miembro"
-#: cp/semantics.c:1335
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr "uso inválido de `this' en el nivel principal"
-#: cp/semantics.c:1373
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr "llamando al tipo `%T' como un método"
-#: cp/semantics.c:1409
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr "el especificador del destructor `%T::~%T()' debe tener nombres coincidentes"
-#: cp/semantics.c:1415
+#: cp/semantics.c:1425
msgid "`%E' is not of type `%T'"
msgstr "`%E' no es de tipo `%T'"
-#: cp/semantics.c:1608
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr "los parámetros de tipo plantilla debe usar la palabra clave `class' o `typename'"
-#: cp/semantics.c:1670
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr "argumento de la plantilla por defecto inválido"
+
+#: cp/semantics.c:1694
msgid "definition of `%#T' inside template parameter list"
msgstr "la definición de `%#T' dentro de la lista de parámetros de plantilla"
-#: cp/semantics.c:1686
+#: cp/semantics.c:1710
msgid "invalid definition of qualified type `%T'"
msgstr "definición inválida del tipo calificado `%T'"
-#: cp/semantics.c:2039
+#: cp/semantics.c:2053
+msgid "invalid base-class specification"
+msgstr "especificación de clase base inválida"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr "la clase base `%T' tiene calificadores cv"
-#: cp/semantics.c:2072
+#: cp/semantics.c:2093
msgid "multiple declarators in template declaration"
msgstr "múltiples declaradores en una declaración de plantilla"
-#: cp/spew.c:239
+#: cp/semantics.c:2120
+#, c-format
+msgid "type of `%E' is unknown"
+msgstr "el tipo de '%E' es desconocido"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr "el nombre de identificador `%s' causa conflictos con la estrategia interna de nombrado del C++ de GNU"
-#: cp/spew.c:1017 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr "error de decodificación al final del texto de la función guardada"
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr "%Hlectura de final de fichero dentro de la definición"
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr "error de decodificación en la especificación del método"
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr "falta el cuerpo de la función para el constructor"
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr "%Hlectura de final de fichero dentro del argumento por defecto"
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
-msgstr "dependencia circular en los argumentos por omisión de `%#D'"
+msgstr "dependencia circular en los argumentos por defecto de `%#D'"
-#: cp/spew.c:1435
+#: cp/spew.c:1483
msgid "invalid type `%T' for default argument to `%T'"
-msgstr "tipo `%T' inválido para el argumento por omisión de `%T'"
+msgstr "tipo `%T' inválido para el argumento por defecto de `%T'"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "%s antes de `%s'"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr "%s antes de `%c'"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr "%s antes de `\\%o'"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, c-format
msgid "%s before `%s' token"
msgstr "%s antes del elemento `%s'"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr "no es valor-l en %s"
-#: cp/tree.c:578
+#: cp/tree.c:562
msgid "`%V' qualifiers cannot be applied to `%T'"
msgstr "los calificadores `%V' no se pueden aplicar a `%T'"
-#: cp/tree.c:581
-msgid "ignoring `%V' qualifiers on `%T'"
-msgstr "se ignoran los calificadores `%V' para `%T'"
-
-#: cp/tree.c:1920
+#: cp/tree.c:1941
#, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clases Java"
-#: cp/tree.c:1950
+#: cp/tree.c:1971
#, c-format
msgid "`%s' attribute can only be applied to class definitions"
-msgstr "el atributo `%s' solo se puede aplicar a definiciones de clase"
+msgstr "el atributo `%s' sólo se puede aplicar a definiciones de clase"
-#: cp/tree.c:1956
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
-msgstr "`%s' es obsoleto; las vtables de g++ ahora son compatibles con COM por omisión"
+msgstr "`%s' es obsoleto; las vtables de g++ ahora son compatibles con COM por defecto"
-#: cp/tree.c:1981
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr "la init_priority solicitada no es una constante entera"
-#: cp/tree.c:2002
+#: cp/tree.c:2023
#, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr "solo se puede usar el atributo `%s' en definiciones de rango de fichero de objetos de tipo class"
-#: cp/tree.c:2010
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr "la init_priority solicitada está fuera de rango"
-#: cp/tree.c:2020
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr "la init_priority solicitada está reservada para uso interno"
-#: cp/tree.c:2030
+#: cp/tree.c:2051
#, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "el atributo `%s' no tiene soporte en esta plataforma"
-#: cp/typeck.c:518
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "revisión lang_*: falló en %s, en %s:%d"
+
+#: cp/typeck.c:524
#, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
-msgstr "ISO C++ prohibe %s entre apuntadores de tipo `void *' y apuntadores a funciones"
+msgstr "ISO C++ prohíbe %s entre punteros de tipo `void *' y punteros a funciones"
-#: cp/typeck.c:539
+#: cp/typeck.c:545
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
-msgstr "%s de diferentes tipos de apuntador `%T' y `%T' carece de una conversión"
+msgstr "%s entre diferentes tipos de punteros `%T' y `%T' carece de una conversión"
-#: cp/typeck.c:1430
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
-msgstr "ISO C++ prohibe la conversión de `%#T' a `(...)'"
-
-#: cp/typeck.c:1500
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ prohibe la aplicación de `sizeof' a un tipo de función"
-
-#: cp/typeck.c:1506
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ prohibe la aplicación de `sizeof' a una función miembro"
+msgstr "ISO C++ prohíbe la conversión de `%#T' a `(...)'"
-#: cp/typeck.c:1512
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr "ISO C++ prohibe aplicar `sizeof' al tipo `void' el cual es un tipo incompleto"
-
-#: cp/typeck.c:1526
-msgid "`sizeof' applied to non-static member"
-msgstr "`sizeof' aplicado a miembro que no es static"
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "aplicación inválida de `%s' a una función miembro"
-#: cp/typeck.c:1531
-msgid "`sizeof' applied to incomplete type `%T'"
-msgstr "sizeof aplicado a un tipo de dato incompleto `%T'"
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "aplicación inválida de `%s' a un miembro que no es static"
-#: cp/typeck.c:1561
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr "sizeof aplicado a un campo de bits"
-#: cp/typeck.c:1564
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
-msgstr "ISO C++ prohibe la aplicación de `sizeof' a una expresión de tipo de función"
+msgstr "ISO C++ prohíbe la aplicación de `sizeof' a una expresión de tipo de función"
-#: cp/typeck.c:1711
-msgid "invalid use of non-lvalue array"
-msgstr "uso inválido de matriz no-lvaluada"
-
-#: cp/typeck.c:1817
+#: cp/typeck.c:1759
msgid "deprecated conversion from string constant to `%T'"
-msgstr "conversión deprecada de una constante de cadena a `%T'"
+msgstr "conversión obsoleta de una constante de cadena a `%T'"
+
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "solicitud por el miembro `%D' en `%E', el cual es del tipo `%T' que no es clase"
+
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
+msgstr "`%D' no es un miembro de `%T'"
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "acceso inválido a datos del miembro que no es static `%D' del objeto NULL"
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr "(tal vez se utilizó incorrectamente la macro `offsetof')"
-#: cp/typeck.c:1835
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
-msgstr "petición por el miembro `%T::%D' en la expresión de tipo no agregado `%T'"
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "`%D::%D' no es un miembro de `%T'"
-#: cp/typeck.c:2030
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "`%D' no es un miembro de `%T'"
+
+#: cp/typeck.c:2199
msgid "destructor specifier `%T::~%T' must have matching names"
msgstr "el especificador del destructor `%T::~%T' debe tener nombres coincidentes"
-#: cp/typeck.c:2036
+#: cp/typeck.c:2205
msgid "type `%T' has no destructor"
msgstr "el tipo `%T' no tiene destructor"
-#: cp/typeck.c:2053 cp/typeck.c:2135
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "uso inválido de la declaración de tipo `%#D' como una expresión"
-
-#: cp/typeck.c:2058
-msgid "invalid use of template `%#D' as expression"
-msgstr "uso inválido de la plantilla `%#D' como una expresión"
-
-#: cp/typeck.c:2126
-msgid "`%#T' has no member named `%D'"
-msgstr "`%#T' no tiene un miembro llamado `%D'"
-
-#: cp/typeck.c:2176 cp/typeck.c:2205
-msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
-msgstr "desplazamiento inválido desde un tipo `%#T' que no es POD; use en su lugar un apuntador a miembro"
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
+msgstr "`%D' no es una función plantilla miembro"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2316
+#: cp/typeck.c:2338
msgid "`%T' is not a pointer-to-object type"
-msgstr "`%T' no es de tipo apuntador-a-objeto"
+msgstr "`%T' no es de tipo puntero-a-objeto"
-#: cp/typeck.c:2343
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
-msgstr "uso inválido de `%s' en apuntador a miembro"
+msgstr "uso inválido de `%s' en puntero a miembro"
-#: cp/typeck.c:2349
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr "argumento de tipo inválido"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
-msgstr "ISO C++ prohibe el subíndice de una matriz de l-valores"
+msgstr "ISO C++ prohíbe el subíndice de una matriz de l-valores"
-#: cp/typeck.c:2463
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr "se declaró el subíndice de la matriz como `register'"
-#: cp/typeck.c:2638 cp/typeck.c:2788
-msgid "pointer to member function called, but not in class scope"
-msgstr "se llamó a apuntador a función miembro, pero no en el alcance de la clase"
-
-#: cp/typeck.c:2662
-msgid "object missing in call to method `%D'"
-msgstr "falta un objeto en la llamada al método `%D'"
-
-#: cp/typeck.c:2706
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr "¿!¿se declaró la función `%D' sobrecargada, pero no aparece ninguna definición con la cual resolverlo?!?"
-
-#: cp/typeck.c:2786
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr "llamada inválida a función miembro requiere `this' en el alcance de la función miembro static"
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr "falta un objeto en el uso de `%E'"
-#: cp/typeck.c:2965
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
-msgstr "ISO C++ prohibe la llamada `::main' dentro del mismo programa"
+msgstr "ISO C++ prohíbe la llamada `::main' dentro del mismo programa"
-#: cp/typeck.c:2990
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
-msgstr "se debe usar .* o ->* en la llamada a la función apuntador-a-miembro en `%E (...)'"
+msgstr "se debe usar .* o ->* en la llamada a la función puntero-a-miembro en `%E (...)'"
-#: cp/typeck.c:3003
+#: cp/typeck.c:2712
#, c-format
msgid "`%E' cannot be used as a function"
msgstr "no se puede usar `%E' como una función"
-#: cp/typeck.c:3128
+#: cp/typeck.c:2824
msgid "too many arguments to %s `%+#D'"
msgstr "demasiados argumentos para %s `%+#D'"
-#: cp/typeck.c:3169
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr "el tipo del parámetro de la función llamada es incompleto"
-#: cp/typeck.c:3236
+#: cp/typeck.c:2928
msgid "too few arguments to %s `%+#D'"
msgstr "muy pocos argumentos para %s `%+#D'"
-#: cp/typeck.c:3364 cp/typeck.c:3374
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr "asumiendo la conversión al tipo `%T' desde la función sobrecargada"
-#: cp/typeck.c:3434
+#: cp/typeck.c:3126
#, c-format
msgid "division by zero in `%E / 0'"
msgstr "división por cero en `%E / 0'"
-#: cp/typeck.c:3436
+#: cp/typeck.c:3128
#, c-format
msgid "division by zero in `%E / 0.'"
msgstr "división por cero en `%E / 0.'"
-#: cp/typeck.c:3466
+#: cp/typeck.c:3158
#, c-format
msgid "division by zero in `%E %% 0'"
msgstr "división por cero en `%E %% 0'"
-#: cp/typeck.c:3468
+#: cp/typeck.c:3160
#, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "división por cero en `%E %% 0.'"
-#: cp/typeck.c:3548
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr "la cuenta de rotación %s es negativa"
-#: cp/typeck.c:3551
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr "la cuenta de rotación %s >= anchura del tipo"
-#: cp/typeck.c:3582 cp/typeck.c:3587 cp/typeck.c:3678 cp/typeck.c:3683
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
-msgstr "ISO C++ prohibe la comparación entre apuntadores y enteros"
+msgstr "ISO C++ prohíbe la comparación entre puntero y entero"
-#: cp/typeck.c:3863
+#: cp/typeck.c:3553
msgid "comparison between types `%#T' and `%#T'"
msgstr "comparación entre los tipos `%#T' y `%#T'"
-#: cp/typeck.c:3899
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr "comparación entre expresiones enteras signed y unsigned"
-#: cp/typeck.c:3964
+#: cp/typeck.c:3654
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr "operadores inválidos de tipos `%T' y `%T' para el binario `%O'"
@@ -16836,276 +17529,283 @@ msgstr "operadores inválidos de tipos `%T' y `%T' para el binario `%O'"
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:3986
+#: cp/typeck.c:3676
msgid "NULL used in arithmetic"
msgstr "se usó NULL en la aritmética"
-#: cp/typeck.c:4053
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
-msgstr "ISO C++ prohibe el uso de un apuntador de tipo `void *' en la sustracción"
+msgstr "ISO C++ prohíbe el uso de un puntero de tipo `void *' en la sustracción"
-#: cp/typeck.c:4055
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
-msgstr "ISO C++ prohibe el uso de un apuntador a una función en la sustracción"
+msgstr "ISO C++ prohíbe el uso de un puntero a una función en la sustracción"
-#: cp/typeck.c:4057
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
-msgstr "ISO C++ prohibe el uso de un apuntador a un método en la sustracción"
+msgstr "ISO C++ prohíbe el uso de un puntero a un método en la sustracción"
-#: cp/typeck.c:4059
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
-msgstr "ISO C++ prohibe el uso de un apuntador a un miembro en la sustracción"
+msgstr "ISO C++ prohíbe el uso de un puntero a un miembro en la sustracción"
-#: cp/typeck.c:4071
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
-msgstr "uso inválido de un apuntador a un tipo incompleto en aitmética de apuntadores"
+msgstr "uso inválido de un puntero a un tipo incompleto en aritmética de punteros"
-#: cp/typeck.c:4108
-msgid "attempt to take address of bit-field structure member `%D'"
-msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%D'"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr "uso inválido de '%E' para formar una función puntero a miembro. Use un identificador calificado."
-#: cp/typeck.c:4185
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr "no se pueden usar paréntesis alrededor de '%E' para formar una función puntero a miembro"
+
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr "tomando la dirección del temporal"
-#: cp/typeck.c:4387
+# Esta cadena solamente funciona bien en inglés. cfuga
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
-msgstr "ISO C++ prohibe %sing un enum"
+msgstr "ISO C++ prohíbe %sing un enum"
-#: cp/typeck.c:4399
+#: cp/typeck.c:4103
msgid "cannot %s a pointer to incomplete type `%T'"
-msgstr "no se puede %s un apuntador a un tipo incompleto `%T'"
+msgstr "no se puede %s un puntero a un tipo incompleto `%T'"
-#: cp/typeck.c:4406
+#: cp/typeck.c:4110
msgid "ISO C++ forbids %sing a pointer of type `%T'"
-msgstr "ISO C++ prohibe el %s un apuntador de tipo `%T'"
+msgstr "ISO C++ prohíbe el %s un puntero de tipo `%T'"
-#: cp/typeck.c:4431
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
msgstr "se usa la conversión a un tipo no referenciado como un l-valor"
-#: cp/typeck.c:4465
+#: cp/typeck.c:4169
msgid "invalid use of `--' on bool variable `%D'"
msgstr "uso inválido de `--' en la variable booleana `%D'"
#. ARM $3.4
-#: cp/typeck.c:4498
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
-msgstr "ISO C++ prohibe tomar la dirección de la función `::main'"
+msgstr "ISO C++ prohíbe tomar la dirección de la función `::main'"
#. An expression like &memfn.
-#: cp/typeck.c:4565
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ prohibe tomar la dirección de una función miembro no estática sin calificar para formar un apuntador a la función miembro. Como `&%T::%D'"
+msgstr "ISO C++ prohíbe tomar la dirección de una función miembro no estática sin calificar para formar un puntero a la función miembro. Como `&%T::%D'"
-#: cp/typeck.c:4567
+#: cp/typeck.c:4271
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ prohibe tomar la dirección de una función miembro limitada para formar un apuntador a la función miembro. Como `&%T::%D'"
+msgstr "ISO C++ prohíbe tomar la dirección de una función miembro limitada para formar un puntero a la función miembro. Como `&%T::%D'"
-#: cp/typeck.c:4591
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
-msgstr "ISO C++ prohibe tomar la dirección de una conversión a una expresión no l-valuada"
+msgstr "ISO C++ prohíbe tomar la dirección de una conversión a una expresión no l-valuada"
-#: cp/typeck.c:4607
-msgid "unary `&'"
-msgstr "`&' unario"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "se intentó tomar la dirección del miembro de la estructura de campos de bits `%D'"
-#: cp/typeck.c:4727
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr "tomando la dirección del destructor"
# FIXME
# ¿bound se utiliza aquí como 'limitada' o 'sujeta'? Revisar el código. cfuga
-#: cp/typeck.c:4740
+#: cp/typeck.c:4457
msgid "taking address of bound pointer-to-member expression"
-msgstr "tomando la dirección de la expresión limitada apuntador-a-miembro"
+msgstr "tomando la dirección de la expresión limitada puntero-a-miembro"
-#: cp/typeck.c:4756
+#: cp/typeck.c:4473
msgid "cannot create pointer to reference member `%D'"
-msgstr "no se pueden crear un apuntador al miembro referencia `%D'"
+msgstr "no se puede crear un puntero al miembro referencia `%D'"
-#: cp/typeck.c:4824
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr "no se puede tomar la dirección de `this' que es una expresión rvalue"
-#: cp/typeck.c:4840
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr "se solicitó la dirección de `%D', el cual se declaró como `register'"
-#: cp/typeck.c:5060
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr "static_cast del tipo `%T' al tipo `%T' proscribe la constancia"
-#: cp/typeck.c:5068
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr "static_cast inválido del tipo `%T' al tipo `%T'"
-#: cp/typeck.c:5107
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr "reinterpret_cast inválido de una expresión valor-r del tipo `%T' al tipo `%T'"
-#: cp/typeck.c:5127
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr "reinterpret_cast de `%T' a `%T' pierde precisión"
-#: cp/typeck.c:5140
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr "reinterpret_cast de `%T' a `%T' proscribe a const (o volatile)"
-#: cp/typeck.c:5149
+#: cp/typeck.c:4952
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
-msgstr "ISO C++ prohibe la conversión entre entre apuntador a función y apuntador a objeto"
+msgstr "ISO C++ prohíbe la conversión entre entre puntero a función y puntero a objeto"
-#: cp/typeck.c:5155
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr "reinterpret_cast inválido del tipo `%T' al tipo `%T'"
-#: cp/typeck.c:5182
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
-msgstr "uso inválido de const_cast con tipo `%T', que no es apuntador, referencia, ni un tipo apuntador-a-datos-miembros"
+msgstr "uso inválido de const_cast con tipo `%T', que no es puntero, referencia, ni un tipo puntero-a-datos-miembros"
-#: cp/typeck.c:5185
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
-msgstr "uso inválido de const_cast con tipo `%T', el cual es un apuntador o referencia a un tipo de función"
+msgstr "uso inválido de const_cast con tipo `%T', el cual es un puntero o referencia a un tipo de función"
-#: cp/typeck.c:5208
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr "const_cast inválido de un valor-r de tipo `%T' al tipo `%T'"
-#: cp/typeck.c:5224
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr "const_cast inválido del tipo `%T' al tipo `%T'"
-#: cp/typeck.c:5266 cp/typeck.c:5271
+#: cp/typeck.c:5069 cp/typeck.c:5074
msgid "ISO C++ forbids casting to an array type `%T'"
-msgstr "ISO C++ prohibe la conversión a un tipo de matriz `%T'"
+msgstr "ISO C++ prohíbe la conversión a un tipo de matriz `%T'"
-#: cp/typeck.c:5279
+#: cp/typeck.c:5082
msgid "invalid cast to function type `%T'"
msgstr "conversión inválida al tipo de función `%T'"
-#: cp/typeck.c:5331
+#: cp/typeck.c:5138
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
-msgstr "la conversión de `%T' a `%T' descarta los calificadores del tipo del destino del apuntador"
+msgstr "la conversión de `%T' a `%T' descarta los calificadores del tipo del destino del puntero"
-#: cp/typeck.c:5377
+#: cp/typeck.c:5184
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr "la conversión de `%T' a `%T' incrementa la alineación requerida del tipo del destino"
-#: cp/typeck.c:5546
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr " en la evaluación de `%Q(%#T, %#T)'"
-#: cp/typeck.c:5588
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
-msgstr "ISO C++ prohibe la conversión a un tipo no referente usado como l-valor"
+msgstr "ISO C++ prohíbe la conversión a un tipo no referente usado como l-valor"
-#: cp/typeck.c:5659
+#: cp/typeck.c:5463
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr "tipos incompatible en la asignación de `%T' a `%T'"
-#: cp/typeck.c:5666
+#: cp/typeck.c:5470
msgid "ISO C++ forbids assignment of arrays"
-msgstr "ISO C++ prohibe la asignación de matrices"
+msgstr "ISO C++ prohíbe la asignación de matrices"
-#: cp/typeck.c:5809
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
-msgstr " en la conversión del apuntador a función miembro"
+msgstr " en la conversión del puntero a función miembro"
-#: cp/typeck.c:5817
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
-msgstr " en la conversión del apuntador a miembro"
+msgstr " en la conversión del puntero a miembro"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5828 cp/typeck.c:5847
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
-msgstr "apuntador a la conversión miembro a través de la base virtual `%T' de `%T'"
+msgstr "puntero a la conversión miembro a través de la base virtual `%T' de `%T'"
-#: cp/typeck.c:5851
+#: cp/typeck.c:5619
msgid "pointer to member conversion via virtual base `%T' of `%T'"
-msgstr "apuntador a la conversión miembro a través de la base virtual `%T' de `%T'"
+msgstr "puntero a la conversión miembro a través de la base virtual `%T' de `%T'"
-#: cp/typeck.c:5921
+#: cp/typeck.c:5695
msgid "invalid conversion to type `%T' from type `%T'"
msgstr "conversión inválida del tipo `%T' a partir del tipo `%T'"
-#: cp/typeck.c:6086
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
-msgstr "pasando NULL usado para el no apuntador %s %P de `%D'"
+msgstr "pasando NULL usado para el no puntero %s %P de `%D'"
-#: cp/typeck.c:6089
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
-msgstr "%s al tipo `%T' que no es apuntador desde NULL"
+msgstr "%s al tipo `%T' que no es puntero desde NULL"
-#: cp/typeck.c:6097
+#: cp/typeck.c:5871
msgid "passing `%T' for %s %P of `%D'"
msgstr "pasando `%T' para %s %P de `%D'"
-#: cp/typeck.c:6100
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr "%s a `%T' desde `%T'"
-#: cp/typeck.c:6110
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr "pasando el valor negativo `%E' para %s %P de `%D'"
-#: cp/typeck.c:6113
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr "%s de valor negatio `%E' a `%T'"
-#: cp/typeck.c:6200
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr "no se puede convertir `%T' a `%T' para el argumento `%P' para `%D'"
-#: cp/typeck.c:6203
+#: cp/typeck.c:5985
msgid "cannot convert `%T' to `%T' in %s"
msgstr "no se puede convertir `%T' a `%T' en %s"
-#: cp/typeck.c:6290 cp/typeck.c:6292
+#: cp/typeck.c:6073 cp/typeck.c:6075
msgid "in passing argument %P of `%+D'"
msgstr "en el paso del argumento %P de `%+D'"
-#: cp/typeck.c:6406
+#: cp/typeck.c:6190
msgid "returning reference to temporary"
msgstr "devolviendo la referencia al temporal"
-#: cp/typeck.c:6413
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
msgstr "se devolvió una referencia a un valor que no es l-valor"
-#: cp/typeck.c:6425
+#: cp/typeck.c:6209
msgid "reference to local variable `%D' returned"
msgstr "se devolvió una referencia a la variable local `%D'"
-#: cp/typeck.c:6428
+#: cp/typeck.c:6212
msgid "address of local variable `%D' returned"
msgstr "se devolvió la dirección de la variable local `%D'"
-#: cp/typeck.c:6459
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr "devolviendo un valor de un destructor"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6467
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr "no se puede regresar de un manejador de una función-intenta-bloque de un constructor"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6470
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr "devolviendo un valor de un constructor"
-#: cp/typeck.c:6487
+#: cp/typeck.c:6271
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr "sentencia de devolución sin valor, en una función declarada con un tipo de devolución que no es void"
-#: cp/typeck.c:6503
+#: cp/typeck.c:6287
msgid "return-statement with a value, in function declared with a void return type"
msgstr "declaración de devolución con un valor, en una función declarada con un tipo de devolución void"
-#: cp/typeck.c:6524
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr "`operator new' no debe regresar NULL a menos que se declare `throw()' (o -fcheck-new esté en efecto)"
@@ -17113,232 +17813,184 @@ msgstr "`operator new' no debe regresar NULL a menos que se declare `throw()' (o
msgid "type `%T' is not a base type for type `%T'"
msgstr "el tipo `%T' no es un tipo base para el tipo `%T'"
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr "no se puede declarar que la variable `%D' sea de tipo `%T'"
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr "no se puede declarar que el parámetro `%D' sea de tipo `%T'"
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
msgid "cannot declare field `%D' to be of type `%T'"
msgstr "no se puede declarar que el campo `%D' sea de tipo `%T'"
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
msgid "invalid return type for member function `%#D'"
msgstr "tipo de devolución inválido para la función miembro `%#D'"
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
msgid "invalid return type for function `%#D'"
msgstr "tipo de devolución inválido para la función `%#D'"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
msgid "cannot allocate an object of type `%T'"
msgstr "no se puede asignar un objeto de tipo `%T'"
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr " porque las siguientes funciones virtual son abstractas:"
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr "\t%#D"
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr " ya que el tipo `%T' tiene funciones virtuales abstractas"
-#: cp/typeck2.c:213
-msgid "invalid use of undefined type `%#T'"
-msgstr "uso inválido del tipo indefinido `%#T'"
-
-#: cp/typeck2.c:214
-msgid "forward declaration of `%#T'"
-msgstr "declaración hacia adelante de `%#T'"
-
-#: cp/typeck2.c:218
-msgid "invalid use of `%T'"
-msgstr "uso inválido de `%T'"
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr "uso inválido del miembro (¿olvidó el `&'?)"
-
-#: cp/typeck2.c:236
-msgid "invalid use of template type parameter"
-msgstr "uso inválido del parámetro de tipo plantilla"
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr "dirección de la función sobrecargada sin información contextual de tipo"
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr "función sobrecargada sin información contextual de tipo"
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr "información contextual insuficiente para determinar el tipo"
-
-#: cp/typeck2.c:301
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr "se usó la sintaxis de constructor, pero no se declaró un constructor para el tipo `%T'"
-#: cp/typeck2.c:311
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr "construcción de la lista de iniciadores inválida para el objeto de la clase derivada `%D'"
-
-#: cp/typeck2.c:313
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr "construcción de la lista de iniciadores inválida para el objeto de la clase polimórfica `%D'"
-
-#: cp/typeck2.c:316 cp/typeck2.c:322 cp/typeck2.c:328
-msgid "initializer list construction invalid for `%D'"
-msgstr "construcción de la lista de iniciadores inválida para `%D'"
-
-#: cp/typeck2.c:317
-msgid "due to the presence of a constructor"
-msgstr "debido a la presencia de un constructor"
-
-#: cp/typeck2.c:323 cp/typeck2.c:329
-msgid "due to non-public access of member `%D'"
-msgstr "debido al acceso no público del miembro `%D'"
-
-#: cp/typeck2.c:341
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
-msgstr "expresión coma utilizada para iniciar el valor de devolución"
+msgstr "se usó una expresión coma para inicializar el valor de devolución"
-#: cp/typeck2.c:350
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
-msgstr "no se pueden asignar valores iniciales a matrices usando esta sintaxis"
-
-#: cp/typeck2.c:412
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr "ISO C++ prohibe las expresiones agregadas iniciadoras que no son constantes"
+msgstr "no se pueden inicializar matrices usando esta sintaxis"
-#: cp/typeck2.c:498
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
-msgstr "asignando valores iniciales a una matriz con una lista de parámetros"
+msgstr "inicializando una matriz con una lista de parámetros"
-#: cp/typeck2.c:554
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
-msgstr "iniciador para una variable escalar requiere un elemento"
+msgstr "inicializador para una variable escalar requiere un elemento"
-#: cp/typeck2.c:561
+#: cp/typeck2.c:536
msgid "braces around scalar initializer for `%T'"
-msgstr "llaves alrededor del valor inicial escalar para `%T'"
+msgstr "llaves alrededor del inicializador para `%T'"
-#: cp/typeck2.c:564
+#: cp/typeck2.c:539
msgid "ignoring extra initializers for `%T'"
-msgstr "ignorando los iniciadores extra para `%T'"
+msgstr "ignorando los inicializadores extra para `%T'"
-#: cp/typeck2.c:576
+#: cp/typeck2.c:551
msgid "variable-sized object of type `%T' may not be initialized"
-msgstr "un objeto de tamaño variable de tipo `%T' no puede tener valor inicial"
+msgstr "un objeto de tamaño variable de tipo `%T' no puede ser inicializado"
-#: cp/typeck2.c:586
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
-msgstr "el subobjeto de tipo `%T' debe ser iniciado por un constructor, no por `%E'"
+msgstr "el subobjeto de tipo `%T' debe ser inicializado por un constructor, no por `%E'"
-#: cp/typeck2.c:652
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
-msgstr "el agregado tiene un iniciador con llaves parciales"
+msgstr "el agregado tiene un inicializador con llaves parciales"
-#: cp/typeck2.c:690 cp/typeck2.c:791
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
-msgstr "iniciadores etiquetados como no triviales"
+msgstr "inicializadores etiquetados como no triviales"
-#: cp/typeck2.c:707
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
-msgstr "iniciador no-vacío para una matriz de elementos vacíos"
+msgstr "inicializador no-vacío para una matriz de elementos vacíos"
-#: cp/typeck2.c:757
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
-msgstr "lista de iniciadores para un objeto de una clase con clases base virtual"
+msgstr "lista de inicializadores para un objeto de una clase con clases base virtual"
-#: cp/typeck2.c:763
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
-msgstr "lista de iniciadores para un objeto de una clase con clases base"
+msgstr "lista de inicializadores para un objeto de una clase con clases base"
-#: cp/typeck2.c:769
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
-msgstr "lista de iniciadores para un objeto que usa funciones virtuales"
+msgstr "lista de inicializadores para un objeto que usa funciones virtuales"
-#: cp/typeck2.c:832 cp/typeck2.c:849
+#: cp/typeck2.c:811 cp/typeck2.c:827
msgid "missing initializer for member `%D'"
-msgstr "falta el iniciador para el miembro `%D'"
+msgstr "falta el inicializador para el miembro `%D'"
-#: cp/typeck2.c:837
+#: cp/typeck2.c:816
msgid "uninitialized const member `%D'"
-msgstr "miembro const `%D' sin iniciar"
+msgstr "miembro const `%D' sin inicializar"
-#: cp/typeck2.c:840
+#: cp/typeck2.c:818
msgid "member `%D' with uninitialized const fields"
-msgstr "miembro `%D' con campos const sin iniciar"
+msgstr "miembro `%D' con campos const sin inicializar"
-#: cp/typeck2.c:843
+#: cp/typeck2.c:821
msgid "member `%D' is uninitialized reference"
-msgstr "el miembro `%D' es una referencia sin iniciar"
+msgstr "el miembro `%D' es una referencia sin inicializar"
-#: cp/typeck2.c:886
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
-msgstr "valor de índice en lugar del nombre del campo en el iniciador de union"
+msgstr "valor de índice en lugar del nombre del campo en el inicializador de union"
-#: cp/typeck2.c:898
+#: cp/typeck2.c:880
msgid "no field `%D' in union being initialized"
-msgstr "no existe el campo `%D' en la union que se está iniciando"
+msgstr "no existe el campo `%D' en la union que se está inicializando"
-#: cp/typeck2.c:906
+#: cp/typeck2.c:888
msgid "union `%T' with no named members cannot be initialized"
-msgstr "no se puede iniciar la union `%T' sin miembros nombrados"
+msgstr "no se puede inicializar la union `%T' sin miembros nombrados"
-#: cp/typeck2.c:942
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
-msgstr "exceso de elementos en iniciador agregado"
+msgstr "exceso de elementos en el inicializador agregado"
-#: cp/typeck2.c:1047
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
-msgstr "se detectó una delegación de apuntador circular"
+msgstr "se detectó una delegación de puntero circular"
-#: cp/typeck2.c:1060
+#: cp/typeck2.c:1051
msgid "base operand of `->' has non-pointer type `%T'"
-msgstr "el operando base de `->' tiene el tipo `%T' que no es apuntador"
+msgstr "el operando base de `->' tiene el tipo `%T' que no es puntero"
-#: cp/typeck2.c:1074
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
-msgstr "el resultado de `operator->()' produce un resultado que no es apuntador"
+msgstr "el resultado de `operator->()' produce un resultado que no es puntero"
-#: cp/typeck2.c:1076
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
-msgstr "el operando base de `->' no es un apuntador"
+msgstr "el operando base de `->' no es un puntero"
-#: cp/typeck2.c:1142
+#: cp/typeck2.c:1133
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
-msgstr "no se puede usar `%E' como un apuntador miembro, porque es de tipo `%T'"
+msgstr "no se puede usar `%E' como un puntero miembro, porque es de tipo `%T'"
-#: cp/typeck2.c:1149
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
-msgstr "no se puede aplicar el apuntador a miembro `%E' a `%E', el cual es del tipo no agregado `%T'"
+msgstr "no se puede aplicar el puntero a miembro `%E' a `%E', el cual es del tipo no agregado `%T'"
-#: cp/typeck2.c:1158
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr "el tipo de miembro `%T::' es incompatible con el tipo objeto `%T'"
-#: cp/typeck2.c:1195
+#: cp/typeck2.c:1186
msgid "`%T' fails to be a typedef or built-in type"
msgstr "`%T' falla al ser un typedef o un tipo interno"
-#: cp/typeck2.c:1268
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
-msgstr "ISO C++ prohibe la definición de tipos dentro de %s"
+msgstr "ISO C++ prohíbe la definición de tipos dentro de %s"
+
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "llamada a la función `%D' la cual arroja el tipo incompleto `%#T'"
+
+#: cp/typeck2.c:1387
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "llamada a una función la cual arroja el tipo incompleto `%#T'"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3854
+#: cp/cp-tree.h:3936
#, c-format
msgid "%s is deprecated, please see the documentation for details"
-msgstr "%s está deprecado, por favor vea la documentación para más detalles"
+msgstr "%s es obsoleto, por favor vea la documentación para más detalles"
#: cp/lang-options.h:29
msgid "Do not obey access control semantics"
@@ -17366,7 +18018,7 @@ msgstr "Volcar la unidad de traducción completa a un fichero"
#: cp/lang-options.h:48
msgid "Do not inline member functions by default"
-msgstr "No hacer inline por omisión a las funciones miembro"
+msgstr "No hacer inline por defecto a las funciones miembro"
#: cp/lang-options.h:51
msgid "Do not generate run time type descriptor information"
@@ -17393,12 +18045,12 @@ msgid "Export functions even if they can be inlined"
msgstr "Exportar funciones aún si pueden ser inline"
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
+msgid "Only emit explicit template instantiations"
msgstr "Emitir solamente instanciaciones explícitas de plantillas"
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
-msgstr "Emitir solamente instanciaciones explícitas para plantillas inline"
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "Emitir solamente instanciaciones explícitas de plantillas inline"
#: cp/lang-options.h:84
msgid "Don't pedwarn about uses of Microsoft extensions"
@@ -17478,7 +18130,7 @@ msgstr "Avisar cuando el comportamiento de síntesis difiera de Cfront"
#: cp/lang-options.h:144
msgid "Don't warn when type converting pointers to member functions"
-msgstr "No avisar cuando el tipo convierte apuntadores a funciones miembro"
+msgstr "No avisar sobre punteros a funciones miembro que conviertan tipos de datos"
#: cp/lang-options.h:146
msgid "Warn about violations of Effective C++ style rules"
@@ -17498,137 +18150,137 @@ msgstr "No avisar cuando las funciones friend sin plantillas son declaradas dent
#: cp/lang-options.h:159
msgid "Don't announce deprecation of compiler features"
-msgstr "No anunciar características deprecadas del compilador"
+msgstr "No anunciar características obsoletas del compilador"
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
msgstr "nota:"
-#: f/bad.c:390
+#: f/bad.c:391
msgid "warning:"
msgstr "aviso:"
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
msgstr "fatal:"
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
msgstr "(continuado):"
-#: f/bad.c:486 f/bad.c:504
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
msgstr "[¡¡REPORTAR BICHO!!] %"
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
msgstr "[¡¡REPORTAR BICHO!!]"
-#: f/com.c:3122
+#: f/com.c:3132
#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr "la etiqueta ASSIGNada no cabe en `%A' en %0 -- utilizando una similar más ancho"
-#: f/com.c:11606
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
-msgstr "ningún tipo INTEGER puede guardar una apuntador en esta configuración"
+msgstr "ningún tipo INTEGER puede guardar un puntero en esta configuración"
-#: f/com.c:11831
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr "configuration: REAL, INTEGER, y LOGICAL son de %d bits de anchura,"
-#: f/com.c:11833
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
-msgstr "y los apuntadores son de %d bits de anchura, pero g77 aún no trabaja"
+msgstr "y los punteros son de %d bits de anchura, pero g77 aún no trabaja"
-#: f/com.c:11835
+#: f/com.c:11848
msgid "properly unless they all are 32 bits wide"
msgstr "de forma adecuada a menos que todos sean de 32 bits de anchura"
-#: f/com.c:11836
+#: f/com.c:11849
msgid "Please keep this in mind before you report bugs."
msgstr "Por favor tenga esto presente antes de reportar `bugs'."
#. I/O will probably crash.
-#: f/com.c:11844
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr "configuration: char * guarda %d bits, pero ftnlen sólo %d"
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11853
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
" ASSIGN statement might fail"
msgstr ""
"configuration: char * guarda %d bits, pero INTEGER sólo %d --\n"
-" la declaración ASSIGN podría fallar"
+" la declaración ASSIGN puede fallar"
-#: f/com.c:13687
+#: f/com.c:13681
msgid "In statement function"
msgstr "En la declaración de la función"
-#: f/com.c:13697
+#: f/com.c:13691
msgid "Outside of any program unit:\n"
msgstr "Fuera de cualquier unidad de programa:\n"
-#: f/com.c:15386
+#: f/com.c:15320
#, no-c-format
msgid "%A from %B at %0%C"
msgstr "%A desde %B en %0%C"
-#: f/com.c:15563
+#: f/com.c:15497
msgid "directory name must immediately follow -I"
msgstr "el nombre del directorio debe seguir inmediatamente a -I"
-#: f/com.c:15706
+#: f/com.c:15640
#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr "En %0, el fichero INCLUDE %A existe, pero no es legible"
-#: f/com.c:15741
+#: f/com.c:15675
#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr "En %0, la anidación de INCLUDE es demasiado profunda"
-#: f/expr.c:9613
+#: f/expr.c:9614
#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr "Dos operadores aritméticos en una fila en %0 y %1 -- use paréntesis"
-#: f/expr.c:9663
+#: f/expr.c:9664
#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
msgstr "El operador en %0 tiene una preferencia menor que aquél en %1 -- use paréntesis"
-#: f/expr.c:10524
+#: f/expr.c:10525
#, no-c-format
msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr "Use .EQV./.NEQV. en lugar de .EQ./.NE. en %0 para los operandos LOGICAL en %1 y %2"
-#: f/expr.c:10895
+#: f/expr.c:10896
#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
-msgstr "Operando sin soporte para ** en %1 -- se convirtió a INTEGER por omisión"
+msgstr "Operando sin soporte para ** en %1 -- se convirtió a INTEGER por defecto"
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr "lista de argumentos de salida desbordada para `%s'"
-#: f/g77spec.c:395
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr "--driver ya no tiene soporte"
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, c-format
msgid "argument to `%s' missing"
msgstr "falta el argumento para `%s'"
-#: f/g77spec.c:412
+#: f/g77spec.c:390
msgid "no input files; unwilling to write output files"
msgstr "no hay ficheros de entrada; incapaz de escribir ficheros de salida"
@@ -17637,121 +18289,103 @@ msgstr "no hay ficheros de entrada; incapaz de escribir ficheros de salida"
msgid "Implicit declaration of `%A' at %0"
msgstr "Declaración implícita de `%A' en %0"
-#: f/lex.c:274
-#, no-c-format
-msgid "The meaning of `\\x' (at %0) varies with -traditional"
-msgstr "el significado de `\\x' (en %0) varía con -traditional"
-
-#: f/lex.c:325
-#, no-c-format
-msgid "The meaning of `\\a' (at %0) varies with -traditional"
-msgstr "el significado de `\\a' (en %0) varía con -traditional"
-
-#: f/lex.c:355
+#: f/lex.c:326
#, no-c-format
msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
msgstr "Secuencia de escape que no es estándard ISO `\\%A' en %0"
-#: f/lex.c:374
+#: f/lex.c:345
#, no-c-format
msgid "Unknown escape sequence `\\%A' at %0"
msgstr "Secuencia de escape desconocida `\\%A' en %0"
-#: f/lex.c:383
+#: f/lex.c:354
#, no-c-format
msgid "Unterminated escape sequence `\\' at %0"
msgstr "Secuencia de escape sin terminar `\\' en %0"
-#: f/lex.c:394
+#: f/lex.c:365
#, no-c-format
msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
msgstr "Secuencia de escape desconocida: `\\' seguida por el código de caracter 0x%A en %0"
-#: f/lex.c:422
+#: f/lex.c:393
#, no-c-format
msgid "\\x used at %0 with no following hex digits"
msgstr "se usó \\x en %0 sin dígitos hexadecimales a continuación"
-#: f/lex.c:436
+#: f/lex.c:407
#, no-c-format
msgid "Hex escape at %0 out of range"
msgstr "Secuencia de escape hexadecimal en %0 fuera de rango"
-#: f/lex.c:470
+#: f/lex.c:441
#, no-c-format
msgid "Escape sequence at %0 out of range for character"
-msgstr "Secuencia de escape en %0 fuera de rango por el carácter"
+msgstr "Secuencia de escape en %0 fuera de rango para el carácter"
-#: f/lex.c:593
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "el significado de `\\x' varía con -traditional"
-
-#: f/lex.c:630
+#: f/lex.c:595
msgid "hex escape out of range"
msgstr "secuencia de escape hexadecimal fuera de rango"
-#: f/lex.c:676
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "el significado de `\\a' varía con -traditional"
-
-#: f/lex.c:692
+#: f/lex.c:648
#, c-format
msgid "non-ANSI-standard escape sequence, `\\%c'"
msgstr "secuencia de escape que no es estándar ANSI, `\\%c'"
-#: f/lex.c:705
+#: f/lex.c:661
#, c-format
msgid "non-ISO escape sequence `\\%c'"
msgstr "secuencia de escape que no es ISO, `\\%c'"
-#: f/lex.c:709
+#: f/lex.c:665
#, c-format
msgid "unknown escape sequence `\\%c'"
msgstr "secuencia de escape desconocida, `\\%c'"
-#: f/lex.c:711
+#: f/lex.c:667
#, c-format
msgid "unknown escape sequence: `\\' followed by char code 0x%x"
msgstr "secuencia de escape desconocida: `\\' seguida por el código de caracter 0x%x"
-#: f/lex.c:788
+#: f/lex.c:744
msgid "badly formed directive -- no closing quote"
msgstr "directiva mal formada -- comilla sin cerrar"
-#: f/lex.c:846
+#: f/lex.c:802
msgid "#-lines for entering and leaving files don't match"
msgstr "el número de #-lines para entrar y salir de los ficheros no coinciden"
-#: f/lex.c:1008
+#: f/lex.c:964
msgid "bad directive -- missing close-quote"
msgstr "directiva errónea -- falta una comilla que cierre"
-#: f/lex.c:1122
+#: f/lex.c:1078
#, c-format
msgid "ignoring pragma: %s"
msgstr "ignorando el pragma: %s"
-#: f/lex.c:1200
+#: f/lex.c:1156
msgid "invalid #ident"
msgstr "instrucción #ident inválida"
-#: f/lex.c:1217
+#: f/lex.c:1173
msgid "undefined or invalid # directive"
msgstr "directiva # no definida o inválida"
-#: f/lex.c:1273
+#: f/lex.c:1229
msgid "invalid #line"
msgstr "instrucción #line inválida"
-#: f/lex.c:1329 f/lex.c:1373
+#: f/lex.c:1285 f/lex.c:1329
msgid "use `#line ...' instead of `# ...' in first line"
msgstr "use `#line ...' en lugar de `# ...' en la primera línea"
-#: f/lex.c:1383
+#: f/lex.c:1339
msgid "invalid #-line"
msgstr "instrucción #-line inválida"
-#: f/lex.c:1476
+#: f/lex.c:1432
#, no-c-format
msgid "Null character at %0 -- line ignored"
msgstr "Carácter nulo en %0 -- línea ignorada"
@@ -17761,21 +18395,25 @@ msgstr "Carácter nulo en %0 -- línea ignorada"
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr "INCLUDE en %0 no es la primera declaración en la línea de código"
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr "el especificador de FORMATo ASSIGNado es demasiado pequeño"
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2636
+#: f/ste.c:2624
#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr "SELECT CASE en el tipo CHARACTER (en %0) no tiene soporte -- perdón"
-#: f/ste.c:2965
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr "SELECT (en %0) tiene casos duplicados -- revise el desbordamiento entero de los CASE(s)"
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr "ASSIGN a una variable que es demasiado pequeña"
-#: f/ste.c:2993
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr "la variable ASSIGNada del objetivo GOTO es demasiado pequeña"
@@ -17784,21 +18422,21 @@ msgstr "la variable ASSIGNada del objetivo GOTO es demasiado pequeña"
msgid "Local adjustable symbol `%A' at %0"
msgstr "Símbolo local ajustable `%A' en %0"
-#: f/target.c:2560
+#: f/target.c:2550
msgid "data initializer on host with different endianness"
-msgstr "iniciador de datos en el anfitrión con `endianness' diferente"
+msgstr "inicializador de datos en el anfitrión con `endianness' diferente"
-#: f/top.c:238
+#: f/top.c:237
#, c-format
msgid "%s no longer supported -- try -fvxt"
msgstr "%s ya no tiene soporte -- intente -fvxt"
-#: f/top.c:240
+#: f/top.c:239
#, c-format
msgid "%s no longer supported -- try -fno-vxt -ff90"
msgstr "%s ya no tiene soporte -- intente -fno-vxt -ff90"
-#: f/top.c:308 f/top.c:310
+#: f/top.c:307 f/top.c:309
#, c-format
msgid "%s disabled, use normal debugging flags"
msgstr "%s desactivado, use los interruptores normales de depuración"
@@ -17881,7 +18519,7 @@ msgstr "Permite que REAL(Z) y AIMAG(Z) reciban DOUBLE COMPLEX Z"
#: f/lang-options.h:91
msgid "Initialization via DATA and PARAMETER is type-compatible"
-msgstr "La iniciación a través de DATA y PARAMETER es de tipos compatibles"
+msgstr "La inicialización a través de DATA y PARAMETER es de tipos compatibles"
#: f/lang-options.h:93
msgid "Allow INTEGER and LOGICAL interchangeability"
@@ -17893,7 +18531,7 @@ msgstr "Muestra la información interna relacionada con la depuración"
#: f/lang-options.h:99
msgid "Initialize local vars and arrays to zero"
-msgstr "Iniciando las variables locales y matrices a cero"
+msgstr "Inicializa las variables locales y matrices a cero"
#: f/lang-options.h:103
msgid "Backslashes in character/hollerith constants not special (C-style)"
@@ -18424,7 +19062,7 @@ msgstr "Etiqueta indefinida, primero referenciada en %0"
#: f/bad.def:530
#, no-c-format
msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
-msgstr "La declaración o atributo SAVE en %1 no se puede espeficicar junto con la declaración o atributo SAVE en %0"
+msgstr "La declaración o atributo SAVE en %1 no se puede especificar junto con la declaración o atributo SAVE en %0"
#: f/bad.def:533
#, no-c-format
@@ -18529,7 +19167,7 @@ msgstr "Segunda ocurrencia de CASE DEFAULT en %0 dentro de un SELECT CASE en %1"
#: f/bad.def:598
#, no-c-format
msgid "Duplicate or overlapping case values/ranges at %0 and %1"
-msgstr "Valores/rangos case duplicados o traslapados en %0 y %1"
+msgstr "Valores/rangos case duplicados o con solapamientos en %0 y %1"
#: f/bad.def:601
#, no-c-format
@@ -18735,12 +19373,12 @@ msgstr "Se intentó especificar un segundo valor inicial para `%A' en %0"
#: f/bad.def:886
#, no-c-format
msgid "Too few initial values in list of initializers for `%A' at %0"
-msgstr "Muy pocos valores iniciales en la lista de iniciadores para `%A' en %0"
+msgstr "Muy pocos valores iniciales en la lista de inicializadores para `%A' en %0"
#: f/bad.def:889
#, no-c-format
msgid "Too many initial values in list of initializers starting at %0"
-msgstr "Demasiados valores iniciales en la lista de iniciadores que comienza en %0"
+msgstr "Demasiados valores iniciales en la lista de inicializadores que comienza en %0"
#: f/bad.def:892
#, no-c-format
@@ -18750,7 +19388,7 @@ msgstr "La especificación de matriz o subcadena para `%A' está fuera de rango en
#: f/bad.def:895
#, no-c-format
msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
-msgstr "El subíndice de matriz #%B está fuera de rango para la iniciación de `%A' en la declaración en %0"
+msgstr "El subíndice de matriz #%B está fuera de rango para la inicialización de `%A' en la declaración en %0"
#: f/bad.def:898
#, no-c-format
@@ -18845,7 +19483,7 @@ msgstr "El bloque común `%A' es %B %D en longitud en %0 pero %C %E en %1"
#: f/bad.def:987
#, no-c-format
msgid "Blank common initialized at %0"
-msgstr "Común en blanco iniciado en %0"
+msgstr "Común en blanco inicializado en %0"
#: f/bad.def:990
#, no-c-format
@@ -18925,7 +19563,7 @@ msgstr "Continuación con signo & en la primera columna en %0"
#: f/bad.def:1055 f/bad.def:1058
#, no-c-format
msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
-msgstr "El nombre global `%A' definido en %0 ya se había definido en %1 [info -f g77 M GLOBALS]"
+msgstr "El nombre global `%A' definido en %0 ya estaba definido en %1 [info -f g77 M GLOBALS]"
#: f/bad.def:1061 f/bad.def:1064
#, no-c-format
@@ -19018,319 +19656,324 @@ msgstr "En la lista de nombres"
msgid "In anything"
msgstr "En cualquier"
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "error interno en check-init: árbol de código no implementado: %s"
-#: java/check-init.c:988
+#: java/check-init.c:990
#, c-format
msgid "final field '%s' may not have been initialized"
-msgstr "el campo final '%s' puede no haber sido iniciado"
+msgstr "el campo final '%s' puede no haber sido inicializado"
-#: java/class.c:568 java/class.c:593
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr "error interno - demasiados tipos de interfaz"
-#: java/class.c:744
+#: java/class.c:677
msgid "bad method signature"
msgstr "firma de método errónea"
-#: java/class.c:793
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr "atributo ConstantValue mal colocado (no está en ningún campo)"
-#: java/class.c:795
+#: java/class.c:728
#, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr "atributo ConstantValue duplicado para el campo '%s'"
-#: java/class.c:806
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr "el atributo ConstantValue del campo '%s' tiene un tipo erróneo"
-#: java/class.c:1170
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr "no se encuentra el campo '%s' en la clase"
-#: java/class.c:1432
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr "método abstracto en la clase que no es abstracta"
-#: java/class.c:2133
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr "el método '%s' que no es estático anula al método estático"
-#: java/decl.c:1515
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr "En %s: variable sobreescrita y rangos de excepción en %d"
-#: java/decl.c:1603
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr "tipo erróneo en la información de parámetros de depuración"
-#: java/decl.c:1613
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr "rango de PC erróneo para la información de depuración para `%s' local"
-#: java/expr.c:549
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr "desbordamiento de la pila - operación dup*"
-#: java/expr.c:1541
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr "la referencia `%s' es ambigua: aparece en la interfaz `%s' y en la interfaz `%s'"
-#: java/expr.c:1570
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr "no se encuentra el campo `%s'"
-#: java/expr.c:1725
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr "no se ha implementado aún la instrucción ret"
-#: java/expr.c:1862
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr "no se encuentra el método '%s' en la clase"
-#: java/expr.c:2066
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr "no se encontró la clase '%s'"
-#: java/expr.c:2078
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "la clase '%s' no tiene un método llamado '%s' que coincida con la firma '%s'"
-#: java/expr.c:2088
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr "invokestatic en un método no estático"
-#: java/expr.c:2093
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr "invokestatic en un método abstracto"
-#: java/expr.c:2101
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr "invoke[no-estático] en un método estático"
-#: java/expr.c:2386
+#: java/expr.c:2396
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "falta el campo '%s' en '%s'"
-#: java/expr.c:2392
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "no coincide la firma para el campo '%s' en '%s'"
-#: java/expr.c:2415
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr "la asignación para el campo final `%s' no está en el campo de la clase"
-#: java/expr.c:2420
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
-msgstr "la asignación para el campo final estático `%s' no está en el iniciador de la clase"
+msgstr "la asignación para el campo final estático `%s' no está en el inicializador de la clase"
-#: java/expr.c:2427
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr "la asignación al campo final `%s' no está en el constructor"
-#: java/expr.c:2665
+#: java/expr.c:2684
#, c-format
msgid "can't expand %s"
msgstr "no se puede expandir %s"
-#: java/expr.c:2841
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr "PC inválido en la tabla de números de línea"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2886
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "bytecode inalcanzable desde %d hasta antes de %d"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2923
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "bytecode inalcanzable desde %d hasta el final del método"
#. duplicate code from LOAD macro
-#: java/expr.c:3237
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr "no se reconoce la sub-instrucción ancha"
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr "el fichero fuente para la clase `%s' es más nuevo que su fichero de clase coincidente. Se usa entonces el fichero fuente `%s'"
-#: java/jcf-parse.c:376
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr "constante de cadena errónea"
-#: java/jcf-parse.c:394
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "valor erróneo del tipo constante %d, índice %d"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:528
#, c-format
msgid "can't reopen %s"
msgstr "no se puede reabrir %s"
-#: java/jcf-parse.c:571
+#: java/jcf-parse.c:533
#, c-format
msgid "can't close %s"
msgstr "no se puede cerrar %s"
-#: java/jcf-parse.c:653
+#: java/jcf-parse.c:619
#, c-format
msgid "cannot find file for class %s"
msgstr "no se puede encontrar el fichero para la clase %s"
-#: java/jcf-parse.c:665
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
msgstr "no es un fichero .class de Java válido"
-#: java/jcf-parse.c:668
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
msgstr "error mientras se analizaba el conjunto de constantes"
-#: java/jcf-parse.c:671
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "error en la entrada de #%d del conjunto de constantes\n"
#. FIXME - where was first time
-#: java/jcf-parse.c:683
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "leyendo la clase %s por segunda vez desde %s"
-#: java/jcf-parse.c:701
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr "error mientras se analizaban los campos"
-#: java/jcf-parse.c:704
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr "error mientras se analizaban los métodos"
-#: java/jcf-parse.c:707
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr "error mientras se analizaban los atributos finales"
-#: java/jcf-parse.c:721
+#: java/jcf-parse.c:687
#, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr "el `java.lang.Object' que se encontró en `%s' no tiene el atributo especial de longitud cero `gnu.gcj.gcj-compiled'. Esto significa generalmente que su ruta de clases está establecida incorrectamente. Use `info gcj \"Input Options\"' para ver la página de info que describe cómo establecer la ruta de clases"
-#: java/jcf-parse.c:811
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr "falta el atributo Code"
-#: java/jcf-parse.c:1050
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr "el fichero fuente se vio dos veces en la línea de comando y se compilará solo una vez"
-#: java/jcf-parse.c:1066
+#: java/jcf-parse.c:1030
msgid "no input file specified"
msgstr "no se especificaron ficheros de entrada"
-#: java/jcf-parse.c:1095
+#: java/jcf-parse.c:1059
#, c-format
msgid "can't close input file %s"
msgstr "no se puede cerrar el fichero de entrada %s"
-#: java/jcf-parse.c:1132
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr "fichero zip/jar %s erróneo"
-#: java/jcf-write.c:2630
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "error interno en generate_bytecode_insn - no se ha implementado el árbol de código: %s"
-#: java/jcf-write.c:2937
+#: java/jcf-write.c:2988
msgid "field initializer type mismatch"
-msgstr "no coincide el tipo del iniciador del campo"
+msgstr "no coincide el tipo del inicializador del campo"
-#: java/jcf-write.c:3346
+#: java/jcf-write.c:3419
#, c-format
msgid "can't create directory %s"
msgstr "no se puede crear el directorio %s"
-#: java/jv-scan.c:183
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr "no se puede crear %s"
+
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr "sólo se permite uno de `--print-main', `--list-class' y `--complexity'"
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, c-format
msgid "can't open output file `%s'"
msgstr "no se puede abrir el fichero de salida `%s'"
-#: java/jv-scan.c:220
+#: java/jv-scan.c:224
#, c-format
msgid "file not found `%s'"
msgstr "no se puede encontrar el fichero `%s'"
-#: java/jvspec.c:427
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr "no se puede especificar `-D' sin `--main'\n"
-#: java/jvspec.c:430
+#: java/jvspec.c:429
#, c-format
msgid "`%s' is not a valid class name"
msgstr "`%s' no es un nombre de clase válido"
-#: java/jvspec.c:436
-msgid "-R requires -o"
-msgstr "-R requiere -o"
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr "--resource requiere -o"
-#: java/jvspec.c:443
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr "aviso: se ignoraron los ficheros .class que ya fueron compilados con -C"
-#: java/jvspec.c:450
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
msgstr "no se pueden especificar -C y -o al mismo tiempo"
-#: java/jvspec.c:462
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr "no se puede crear el fichero temporal"
-#: java/jvspec.c:490
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr "no está implementado usar ambos @FILE con ficheros múltiples"
-#: java/jvspec.c:548
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr "no se puede especificar la clase `main' cuando no se está enlazando"
-#: java/lang.c:453
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr "no se puede hacer la revisión de dependencias con entrada desde entrada estándard"
-#: java/lang.c:469
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr "no se puede determinar el nombre del objetivo para la revisión de dependencias"
-#: java/lex.c:308
+#: java/lex.c:303
#, c-format
msgid ""
"unknown encoding: `%s'\n"
@@ -19350,192 +19993,295 @@ msgstr ""
msgid "can't mangle %s"
msgstr "no se puede deshacer %s"
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr "error interno - nombre Utf8 inválido"
-#: /usr/share/bison.simple:650
-msgid "parse error; also virtual memory exceeded"
-msgstr "error de decodificación; también se excedió la memoria"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:747 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:785
-msgid "Missing name"
-msgstr "Falta el nombre"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr "Falta el término"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:749 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:787 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:812 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:996 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1343 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1556 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1785 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1811 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1822 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1833 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1845
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr "se esperaba ';'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:810
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr "Falta el nombre"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
msgstr "se esperaba '*'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:824
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr "se esperaba una declaración de clase o interfaz"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:859 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:861
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
msgstr "Falta el nombre de la clase"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:864 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:868 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:876 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1041 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1289 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1291 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1620 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1856 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1940
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr "Se esperaba '{'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:878
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr "No se encuentra el nombre de la super clase"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
msgstr "No se encuentra el nombre de la interfaz"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:975 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1308 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1369 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1578 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1800 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1809 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1820 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1831 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1843 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1860 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1862 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1933 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2104 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2166 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2318 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2330 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2337 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2344 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2355 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2357 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2395 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2397 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2399 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2420 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2422 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2424 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2440 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2442 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2463 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2465 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2467 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2495 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2497 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2499 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2501 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2519 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2521 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2532 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2543 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2565 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2589 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2593 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2595 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2608
-msgid "Missing term"
-msgstr "Falta el término"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:990
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
-msgstr "Falta la variable de inicio"
+msgstr "Falta el inicializador de la variable"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1007
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
msgid "Invalid declaration"
msgstr "Declaración inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1013
-msgid "Can't specify array dimension in a declaration"
-msgstr "No se puede especificar la dimensión de una matriz en una declaración"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1015 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1091 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2141 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2163 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2167 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2202 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2279 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2289
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr "Se esperaba ']'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1019
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
msgid "Unbalanced ']'"
msgstr "']' desbalanceado"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr "Declaración de método inválida, se requiere un nombre de método"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1061 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1063 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2024
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
msgstr "Se esperaba un identificador"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1066
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr "Declaración de método inválida, se requiere un tipo de devolución"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1089 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1534 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1541 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1550 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1552 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1580 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1688 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1969 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2022
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr "Se esperaba ')'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1105
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
msgid "Missing formal parameter term"
msgstr "Falta el término de parámetro formal"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1120 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1125
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
msgid "Missing identifier"
msgstr "Falta el identificador"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1145 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1154
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr "Falta el término de tipo de clase"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1306
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
msgid "Invalid interface type"
msgstr "Tipo de interfaz inválido"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1498 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1667 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1669
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr "Se esperaba ':'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1520 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1525 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
msgid "Invalid expression statement"
msgstr "Declaración de expresión inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1548 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1616 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1684 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1752 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1858 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1926 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2016 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2018 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2026 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2262 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2264
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr "Se esperaba '('"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1618
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
msgstr "Falta término o ')'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1665
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
msgid "Missing or invalid constant expression"
msgstr "Expresión constante faltante o inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1686
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr "Faltan término y ')' esperados"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1725
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
msgid "Invalid control expression"
msgstr "Expresión de control inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1727 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1729
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
msgid "Invalid update expression"
msgstr "Expresión de actualización inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1754
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
msgid "Invalid init statement"
msgstr "Declaración de inicio inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1929
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr "Faltan término o ')' esperados"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1971
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr "Se esperaba 'class' o 'this'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1973 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1975
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
msgstr "Se esperaba 'class'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
msgstr "Se esperaba ')' o término"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2139
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr "Se esperaba '['"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2217
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
msgstr "Se esperaba un campo"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2274 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr "Faltan término y ']' esperados"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2388
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
msgid "']' expected, invalid type expression"
msgstr "Se esperaba ']', expresión de tipo inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2391
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
msgid "Invalid type expression"
msgstr "Expresión de tipo inválida"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2503
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
msgid "Invalid reference type"
msgstr "Tipo de referencia inválido"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr "La invocación del constructor debe ser el primer elemento en un constructor"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr "Solamente los constructores pueden invocar constructores"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2992
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ": `%s' es una característica de JDK1.1(MR)"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3052 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3054
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
@@ -19544,54 +20290,54 @@ msgstr ""
"%s.\n"
"%s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6833
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "archivo .zip malformado en CLASSPATH: %s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
-msgstr "No se puede encontrar el paquete por omisión `%s'. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
+msgstr "No se puede encontrar el paquete por defecto `%s'. Revise la variable de ambiente CLASSPATH y el acceso a los archivos"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12228
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, c-format
msgid "missing static field `%s'"
msgstr "falta el campo static `%s'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12233
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
msgid "not a static field `%s'"
msgstr "'%s' no es un campo static"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12276
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "No hay case para %s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:13122
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, c-format
msgid "unregistered operator %s"
msgstr "operador %s sin registrar"
-#: java/typeck.c:178
-msgid "internal error - use of undefined type"
-msgstr "error interno - uso de tipo indefinido"
-
-#: java/typeck.c:566
+#: java/typeck.c:553
msgid "junk at end of signature string"
msgstr "basura al final de la cadena de firma"
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr "pc erróneo en exception_table"
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr "manejador de excepciones dentro del código que se está protegiendo"
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "opcode desconocido %d@pc=%d durante la verificación"
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr "error de verificación en PC=%d"
@@ -19618,7 +20364,7 @@ msgstr "Establecer la ruta de clases"
#: java/lang-options.h:42
msgid "Set class path (deprecated: use --classpath instead)"
-msgstr "Establecer la ruta de clases (deprecado: utilice en su lugar --classpath)"
+msgstr "Establecer la ruta de clases (obsoleto: utilice en su lugar --classpath)"
#: java/lang-options.h:44
msgid "Choose class whose main method should be used"
@@ -19626,7 +20372,7 @@ msgstr "Escoger la clase cuyo método main debería ser usado"
#: java/lang-options.h:46
msgid "Choose input encoding (default comes from locale)"
-msgstr "Escoger la codificación de entrada (por omisión viene del local)"
+msgstr "Escoger la codificación de entrada (por defecto viene del local)"
#: java/lang-options.h:48
msgid "Add directory to class path"
@@ -19642,7 +20388,7 @@ msgstr "Avisar si se especifican modificadores cuando no son necesarios"
#: java/lang-options.h:54
msgid "Warn if deprecated empty statements are found"
-msgstr "Avisar si se encuentran declaraciones vacías deprecadas"
+msgstr "Avisar si se encuentran declaraciones vacías obsoletas"
#: java/lang-options.h:56
msgid "Warn if .class files are out of date"
@@ -19654,127 +20400,138 @@ msgstr "Revisar siempre por archivos de clases no generados por gcj"
#: java/lang-options.h:60
msgid "Never optimize static class initialization code"
-msgstr "Nunca optimizar el código de iniciación de las clases static"
+msgstr "Nunca optimizar el código de inicialización de las clases static"
#: java/lang-options.h:62
msgid "Use offset tables for virtual method calls"
msgstr "Utilizar tablas de desplazamiento para llamadas a métodos virtuales"
-#: objc/objc-act.c:606
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr "no se especificó un nombre de clase como argumento para -fconstant-string-class"
-
-#: objc/objc-act.c:757
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr "el objeto no es conforme con el protocolo `%s'"
-#: objc/objc-act.c:801
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr "la clase `%s' no implementa el protocolo `%s'"
-#: objc/objc-act.c:882
+#: objc/objc-act.c:914
#, c-format
msgid "`%s' cannot be statically allocated"
msgstr "`%s' no se puede ubicar estáticamente"
-#: objc/objc-act.c:939
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr "tipo inesperado para `id' (%s)"
-#: objc/objc-act.c:944
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr "tipo `id' indefinido, por favor importe <objc/objc.h>"
-#: objc/objc-act.c:996
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr "el protocolo `%s' tiene una dependencia circular"
-#: objc/objc-act.c:1018 objc/objc-act.c:5229
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "no se puede encontrar la declaración de protocolo para `%s'"
-#: objc/objc-act.c:1279 objc/objc-act.c:5747 objc/objc-act.c:6077 objc/objc-act.c:6126 objc/objc-act.c:6162 objc-parse.y:1752
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "no se puede encontrar la declaración de interfaz para `%s'"
-#: objc/objc-act.c:1304
+#: objc/objc-act.c:1328
#, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "no se puede encontrar la marca de referencia para la clase %s"
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr "creaundo un selector para el método `%s' que no existe"
+
+#: objc/objc-act.c:2364
#, c-format
msgid "cannot find class `%s'"
msgstr "no se puede encontrar la clase `%s'"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, c-format
msgid "class `%s' already exists"
msgstr "ya existe la clase `%s'"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr "no se puede encontrar la declaración de interfaz para `%s', superclase de `%s'"
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr "herencia circular en la declaración de interfaz para `%s'"
-#: objc/objc-act.c:3500 objc/objc-act.c:3517
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr "especificación de instancia de variable inconsistente"
-#: objc/objc-act.c:4710
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr "no se puede usar un objeto como un parámetro para un método\n"
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr "declaraciones múltiples para el método `%s'"
-#: objc/objc-act.c:4876
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr "tipo receptor `%s' inválido"
-#: objc/objc-act.c:4907 objc/objc-act.c:4933 objc/objc-act.c:4981
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr "`%s' no responde a `%s'"
-#: objc/objc-act.c:4913 objc/objc-act.c:7197
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr "no se declaró una super clase en la interfaz para `%s'"
-#: objc/objc-act.c:5011
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr "no se puede encontrar el método de la clase (de fábrica)"
-#: objc/objc-act.c:5012 objc/objc-act.c:5056
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
-msgstr "el tipo de devolución para `%s' por omisión es id"
+msgstr "el tipo de devolución para `%s' por defecto es id"
-#: objc/objc-act.c:5029
+#: objc/objc-act.c:5099
#, c-format
msgid "method `%s' not implemented by protocol"
msgstr "el método `%s' no se ha implementado por el protocolo"
-#: objc/objc-act.c:5038
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
-msgstr "el tipo de devolución por omisión es id"
+msgstr "el tipo de devolución por defecto es id"
-#: objc/objc-act.c:5055
+#: objc/objc-act.c:5125
msgid "cannot find method"
msgstr "no se puede encontrar el método"
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr "selector `%s' sin declarar"
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -19784,108 +20541,108 @@ msgstr "no se puede encontrar el método"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5298
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr "la variable de instancia `%s' es accessada en el método de la clase"
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5678
#, c-format
msgid "duplicate definition of class method `%s'"
msgstr "definición duplicada del método de la clase `%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5684
#, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "declaración duplicada del método de la clase `%s'"
-#: objc/objc-act.c:5590
+#: objc/objc-act.c:5720
#, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "definición duplicada del método de la instancia `%s'"
-#: objc/objc-act.c:5596
+#: objc/objc-act.c:5726
#, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "declaración duplicada del método de la instancia `%s'"
-#: objc/objc-act.c:5636
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr "declaración de interfaz duplicada para la categoría `%s(%s)'"
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr "la variable de instancia `%s' es declarada privada"
-#: objc/objc-act.c:5769
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr "la variable de instancia `%s' es declarada %s"
-#: objc/objc-act.c:5779
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr "acceso estático al objeto de tipo `id'"
-#: objc/objc-act.c:5816 objc/objc-act.c:5909
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr "implementación incompleta de la clase `%s'"
-#: objc/objc-act.c:5820 objc/objc-act.c:5914
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr "implementación incompleta de la categoría `%s'"
-#: objc/objc-act.c:5825 objc/objc-act.c:5919
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr "no se encuentra la definición de método para `%c%s'"
-#: objc/objc-act.c:5963
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr "%s `%s' no implementa completamente el protocolo `%s'"
-#: objc/objc-act.c:6021 objc/objc-act.c:8118
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
msgid "`@end' missing in implementation context"
msgstr "falta un `@end' en el contexto de una implementación"
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr "reimplementación de la clase `%s'"
-#: objc/objc-act.c:6091
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr "el nombre de la super clase `%s' causa conflicto"
-#: objc/objc-act.c:6106
+#: objc/objc-act.c:6224
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr "declaración de interfaz duplicada para la clase `%s'"
-#: objc/objc-act.c:6388
+#: objc/objc-act.c:6506
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr "declaración duplicada para el protocolo `%s'"
-#: objc/objc-act.c:7238
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr "[super ...] debe aparecer en el contexto de un método"
-#: objc/objc-act.c:8220 objc/objc-act.c:8236
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr "conflicto potencial de selectores para el método `%s'"
-#: objc-parse.y:2612
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr "`@end' debe aparecer en el contexto de una implementación"
-#: objc-parse.y:2886
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr "la definición de método no está en el contexto de la clase"
@@ -19917,6 +20674,24 @@ msgstr "Generar encabezado C de características específicas de la plataforma"
msgid "Specify the name of the class for constant strings"
msgstr "Especificar el nombre de la clase para cadenas constantes"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr "(depuracion) proceso de decodificación de rastreo"
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr "(depuración) análisis léxico de rastreo"
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr " se usan interruptores de estilo de generación de código en conflicto"
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr "shared y mdll no son compatibles."
+
#: java/lang-specs.h:33
msgid "-fjni and -femit-class-files are incompatible"
msgstr "-fjni y -femit-class-files son incompatibles"
@@ -19929,45 +20704,96 @@ msgstr "-fjni y -femit-class-file son incompatibles"
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr "-femit-class-file se debe usar junto con -fsyntax-only"
-#: config/nextstep.h:161 config/nextstep.h:164
-msgid "-p profiling is no longer supported. Use -pg instead"
-msgstr "la creación de perfil con -p ya no tiene soporte. Use en su lugar -pg"
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg y -fomit-frame-pointer son incompatibles"
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr "se requiere -c o -S para Ada"
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "sólo se permite -current_version con -dynamiclib"
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "sólo se permite -install_name con -dynamiclib"
+
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "no se permite -bundle con -dynamiclib"
+
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "no se permite -bundle_loader con -dynamiclib"
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "no se permite -client_name con -dynamiclib"
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr "no se permite -force_cpusubtype_ALL con -dynamiclib"
-#: config/arm/arm.h:211
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "no se permite -force_flat_namespace con -dynamiclib"
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "no se permite keep_private_externs con -dynamiclib"
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "no se permite -private_bundle con -dynamiclib"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "`-p' no tiene soporte; use `-pg' y gprof(1)"
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr "no se pueden usar -m32 y -m64 al mismo tiempo"
+
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "no se pueden usar juntos -mapcs-26 y -mapcs-32"
-#: config/arm/arm.h:223
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "no se pueden usar juntos -msoft-float y -mhard_float"
-#: config/arm/arm.h:234
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "no se pueden usar juntos -mbig-endian y -mlittle-endian"
-#: config/arm/arm.h:252
-msgid "incompatible interworking options"
-msgstr "opciones de trabajo interno incompatibles"
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "el atributo `%s' no tiene soporte en esta plataforma"
-#: config/sparc/freebsd.h:31 config/ia64/freebsd.h:23 config/alpha/freebsd.h:36 config/i386/freebsd-aout.h:227
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "`-p' no tiene soporte; use `-pg' y gprof(1)"
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "se especificó -I- dos veces"
-#: gcc.c:672 f/lang-specs.h:35
+#: config/i386/sco5.h:271
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "-pedantic y -traditional son mutuamente exclusivos"
+
+#: f/lang-specs.h:38 gcc.c:689
msgid "GNU C does not support -C without using -E"
msgstr "GNU C no da soporte a -C sin usar -E"
-#: gcc.c:699 ada/lang-specs.h:39 java/jvspec.c:77
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg y -fomit-frame-pointer son incompatibles"
-
-#: gcc.c:846
-msgid "-E required when input is from standard input"
-msgstr "se requiere -E cuando la entrada es de entrada estándar"
-
-#: gcc.c:850
-msgid "compilation of header file requested"
-msgstr "se solicitó la compilación de fichero de encabezado"
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C no da soporte a -CC sin usar -E"
#: config/mcore/mcore.h:60
msgid "choose either big or little endian, not both"
@@ -19981,97 +20807,1125 @@ msgstr "escoja entre m340 o m210, no ambos"
msgid "the m210 does not have little endian support"
msgstr "el m210 no tiene soporte para little endian"
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
-msgstr "se requiere -c o -S para Ada"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "-mno-cygwin y -mno-win32 no son compatibles"
+
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "La opción -shared no se soporta actualmente para ELF de VAX."
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg ó -p y -fomit-frame-pointer son incompatibles"
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "se requiere -E cuando la entrada es de entrada estándar"
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr "se solicitó la compilación de fichero de encabezado"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "la creación de perfil no tiene soporte con -mg\n"
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe no tiene soporte"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "no se pueden usar -EB y -EL al mismo tiempo"
+
+#: config/mips/r3900.h:35
msgid "-mhard-float not supported"
msgstr "-mhard-float no tiene soporte"
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
+#: config/mips/r3900.h:37
msgid "-msingle-float and -msoft-float can not both be specified"
msgstr "-msingle-float y -msoft-float no se pueden especificar al mismo tiempo"
-#: config/mmix/mmix.h:112
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
-msgstr "las opciones -mabi=mmixware y -mabi=gnu son mutuamente exclusivas"
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s para el operador `%T ? %T : %T'"
-#: config/i860/fx2800.h:290
-msgid "-p option not supported: use -pg instead"
-msgstr "la opción -p no tiene soporte: en su lugar use -pg"
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s para el operador `%T [%T]'"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd y -pedantic son incompatibles"
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s para el operador `%T %s %T'"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd y -mxopen son incompatibles"
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s para el operador `%s %T'"
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen y -pedantic son incompatibles"
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "parámetros de una plantilla con valores reales cuando se hizo una compilación cruzada"
-#: config/arc/arc.h:59 config/mips/mips.h:1007
-msgid "may not use both -EB and -EL"
-msgstr "no se pueden usar -EB y -EL al mismo tiempo"
+#~ msgid "due to a defect in the G++ 3.2 ABI, G++ has assigned the same mangled name to two different types"
+#~ msgstr "debido a un defecto en el ABI de G++ 3.2, G++ asignó el misno nombre revuelto a dos tipos diferentes"
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
-msgstr "la creación de perfil no tiene soporte con -mg\n"
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static no es válido con -mcoff"
-#: config/i386/cygwin.h:114
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "-mno-cygwin y -mno-win32 no son compatibles"
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared no es válido con -mcoff"
-#: config/i386/cygwin.h:169 config/i386/mingw32.h:69
-msgid "shared and mdll are not compatible"
-msgstr "shared y mdll no son compatibles."
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic no es válido con -mcoff"
-#: config/mips/mips.h:837
-msgid "-pipe is not supported"
-msgstr "-pipe no tiene soporte"
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic no es válido con -mcoff"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC no es válido con -mcoff"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic no es válido con -mcoff"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC no es válido con -mcoff"
+
+#~ msgid "__alignof__ applied to an incomplete type"
+#~ msgstr "__alignof__ aplicado a un tipo de dato incompleto"
+
+#~ msgid "-traditional is deprecated and may be removed"
+#~ msgstr "-traditional es obsoleto y será eliminado"
+
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "no se conoce el estándard de C `%s'"
+
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "el tamaño de `%s' externo no es global"
+
+#~ msgid "typedef `%s' is initialized"
+#~ msgstr "la definición de tipo `%s' está inicializada"
+
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "no se permiten campos sin nombre de otro tipo que no sea struct o union"
+
+#~ msgid "null format string"
+#~ msgstr "formato de cadena nulo"
+
+#~ msgid "ignoring #pragma %s"
+#~ msgstr "ignorando el #pragma %s"
+
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "se encuentran los sufijos `f' y `l' al mismo tiempo en una constante de coma flotante"
+
+#~ msgid "floating point number exceeds range of '%s'"
+#~ msgstr "el número de coma flotante excede el rango de '%s'"
+
+#~ msgid "decimal point in exponent - impossible!"
+#~ msgstr "punto decimal en el exponente - ¡Imposible!"
+
+#~ msgid "underscore in number"
+#~ msgstr "subrayado en el número"
+
+#~ msgid "numeric constant with no digits"
+#~ msgstr "constante numérica sin dígitos"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "la constante numérica contiene dígitos más allá del radical"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "la constante de coma flotante no puede ser de radical 16"
+
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "más de un sufijo `f' en una constante de coma flotante"
+
+#~ msgid "traditional C rejects the 'f' suffix"
+#~ msgstr "C tradicional rechaza el sufijo 'f'"
+
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "más de un sufijo `l' en una constante de coma flotante"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "C tradicional rechaza el sufijo 'l'"
+
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "más de un sufijo `i' o una `j' en una constante de coma flotante"
+
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C prohíbe las constantes numéricas imaginarias"
+
+#~ msgid "floating constant out of range"
+#~ msgstr "constante de coma flotante fuera de rango"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "el número de coma flotante excede el rango de 'double'"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "dos sufijos 'u' en la constante entera"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "C tradicional rechaza el sufijo 'u'"
+
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "tres sufijos 'l' en la constante entera"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul' no es un sufijo entero válido"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "'Ll' y 'lL' no son sufijos enteros válidos"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "más de un sufijo `i' o una `j' en una constante entera"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "sufijo inválido en una constante entera"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "la constante entera es muy grande para esta configuración del compilador - truncando a %d bits"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "la anchura de la constante entera cambia con -traditional"
+
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "la constante entera es unsigned en ISO C, es signed con -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "la anchura de la constante entera puede cambiar en otros sistemas con -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "la constante entera es más grande que el valor máximo de %s"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "un unsigned long long int"
+
+#~ msgid "a long long int"
+#~ msgstr "un long long int"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "un unsigned long int"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "la constante decimal es tan grande que es unsigned"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "la constante entera compleja es demasiado ancha para `complex int'"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "la constante entera es más grande que el valor máximo para su tipo"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "falta un espacio en blanco después del número `%.*s'"
+
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C no permite el uso de `varargs.h'"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "especificadores de clase de almacenamiento en el declarador de una matriz"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof aplicado a un tipo de función"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof aplicado a un tipo de dato void"
+
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof aplicado a un tipo de dato incompleto"
+
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "se pasa parcialmente el desplazamiento de la variable a la pila y al registro"
+
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "se pasa parcialemente el tamaño de la variable a la pila y al registro"
-#: config/mips/mips.h:1003
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "no se pueden usar -mfp64 y -msingle-float al mismo tiempo"
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
-#: config/mips/mips.h:1004
-msgid "may not use both -mfp64 and -m4650"
-msgstr "no se pueden usar -mfp64 y -m4650 al mismo tiempo"
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "los números de coma flotante no son válidos en #if"
-#: config/mips/mips.h:1006
-msgid "may not use both -mgp32 and -mfp64"
-msgstr "no se pueden usar -mgp32 y -mfp64 al mismo tiempo"
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "C tradicional rechaza el sufijo `U'"
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
-msgstr "-static no es válido con -mcoff"
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "demasiados sufijos 'l' en constante entera"
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
-msgstr "-shared no es válido con -mcoff"
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "la constante entera contiene dígitos más allá del radical"
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic no es válido con -mcoff"
+#~ msgid "integer constant out of range"
+#~ msgstr "constante entera fuera de rango"
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic no es válido con -mcoff"
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "las constantes de cadena no son válidas en #if"
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC no es válido con -mcoff"
+#~ msgid "missing binary operator"
+#~ msgstr "falta un operador binario"
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic no es válido con -mcoff"
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "el operador `%s' no tiene operando izquierdo"
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC no es válido con -mcoff"
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "cambiando el orden de búsqueda para el directorio del sistema \"%s\""
+
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " porque es el mismo que el directorio que no es del sistema \"%s\""
+
+#~ msgid " as it has already been specified as a non-system directory"
+#~ msgstr " porque ya se había especificado como un directorio que no es del sistema"
+
+#~ msgid "I/O error on output"
+#~ msgstr "error de E/S en la salida"
+
+#~ msgid "argument missing after %s"
+#~ msgstr "falta un argumento después de %s"
+
+#~ msgid "number missing after %s"
+#~ msgstr "falta el número después de %s"
+
+#~ msgid "target missing after %s"
+#~ msgstr "falta el objetivo después de %s"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP versión %s (cpplib)"
+
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic Habilita todos los avisos demandados por ISO C estricto\n"
+#~ " -pedantic-errors Habilita los avisos -pedantic como errores\n"
+#~ " -trigraphs Soporte para trigrafos de ISO C\n"
+#~ " -lang-c Asumir que las fuentes de entrada están en C\n"
+#~ " -lang-c89 Asumir que las fuentes de entrada están en C89\n"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Asumir que las fuentes de entrada están en C++\n"
+#~ " -lang-objc Asumir que las fuentes de entrada están en ObjectiveC\n"
+#~ " -lang-objc++ Asumir que las fuentes de entrada están en ObjectiveC++\n"
+#~ " -lang-asm Asumir que las fuentes de entrada están en ensamblador\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "posible inicio de la cadena literal sin terminar"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "las literales de cadena en múltiples líneas son obsoletas"
+
+#~ msgid "the meaning of '\\%c' varies with -traditional"
+#~ msgstr "el significado de '\\%c' varía con -traditional"
+
+#~ msgid "the meaning of '\\a' varies with -traditional"
+#~ msgstr "el significado de '\\a' varía con -traditional"
+
+#~ msgid "the meaning of '\\x' varies with -traditional"
+#~ msgstr "el significado de '\\x' varía con -traditional"
+
+#~ msgid "escape sequence out of range for character"
+#~ msgstr "secuencia de escape fuera de rango para el carácter"
+
+#~ msgid "\"%s\" cannot be used as a macro name"
+#~ msgstr "no se puede usar \"%s\" como un nombre de macro"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "no se pueden usar las directivas dentro de un argumento de macro"
+
+#~ msgid "invalid option %s"
+#~ msgstr "opción %s inválida"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: aviso: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: aviso: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "lo sentimos, sin implementar: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Error interno del compilador %s, en %s:%d"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "falta el argumento para `-b'"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "falta el argumento para `-V'"
+
+#~ msgid "invalid version number format"
+#~ msgstr "formato de número de versión inválido"
+
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr "el contenido del fichero .da se agotó demasiado pronto\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "el contenido del fichero .da no se agotó\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% de %d líneas de código fuente ejecutadas en la función %s\n"
+
+#~ msgid "No executable source lines in function %s\n"
+#~ msgstr "No hay líneas de código ejecutables en la función %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% de %d ramificaciones ejecutadas en la función %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%% de %d ramificaciones visitadas al menos una vez en la función %s\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "No hay ramificaciones en la función %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%% de %d llamadas ejecutadas en la función %s\n"
+
+#~ msgid "No calls in function %s\n"
+#~ msgstr "No hay llamadas en la función %s\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in file %s\n"
+#~ msgstr "%6.2f%% de %d líneas de código fuente ejecutadas en el fichero %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in file %s\n"
+#~ msgstr "%6.2f%% de %d ramificaciones ejecutadas en el fichero %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+#~ msgstr "%6.2f%% de %d ramificaciones visitadas al menos una vez en el fichero %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in file %s\n"
+#~ msgstr "%6.2f%% de %d llamadas ejecutadas en el fichero %s\n"
+
+#~ msgid "call %d returns = %s\n"
+#~ msgstr "la llamada %d devuelve = %s\n"
+
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "la llamada %d devuelve = %s%%\n"
+
+#~ msgid "branch %d taken = %s\n"
+#~ msgstr "ramificación %d tomada = %s\n"
+
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "ramificación %d tomada = %s%%\n"
+
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr "el contenido del fichero .da se agotó demasiado pronto"
+
+#~ msgid ".da file contents not exhausted"
+#~ msgstr "el contenido del fichero .da no se agotó"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "conversión de NaN a int"
+
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "conversión de NaNa a unsigned int"
+
+#~ msgid "floating point overflow"
+#~ msgstr "desbordamiento de coma flotante"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "desbordamiento en truncado a entero"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "desbordamiento en el truncado a unsigned integer"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: error de dominio del argumento"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: singularidad de la función"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: desbordamiento del error de rango"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: desbordamiento por debajo del error de rango"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: pérdida total de precisión"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: pérdida parcial de precisión"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - produciendo una operación"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Pretender que el anfitrión y el objetivo utilizan el mismo formato de FP"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Compilar los apuntadores como triples: valor, base y fin"
+
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "No promover floats a double si se usa -traditional"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Intentar dar soporte a C estilo K&R tradicional"
+
+#~ msgid "internal error: %s"
+#~ msgstr "error interno: %s"
+
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "salto cruzado desactivado: %d > 1000 bloques básicos y %d >= 20 bloques borde/básicos"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a Activar el análisis de perfil de bloques\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Activar el análisis de perfil de saltos\n"
+
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "el análisis de perfil no funciona sin un apuntador de marco"
+
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "no se permiten números de coma flotante en expresiones #if"
+
+#~ msgid "invalid number in #if expression"
+#~ msgstr "número inválido en la expresión #if"
+
+#~ msgid "invalid character constant in #if"
+#~ msgstr "constante de carácter inválida en #if"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "no se permite cadenas con comillas dobles en expresiones #if"
+
+#~ msgid "invalid token in expression"
+#~ msgstr "elemento inválido en la expresión"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "la constante de carácter octal no cabe en un byte"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "la constante de carácter hexadecimal no cabe en un byte"
+
+#~ msgid "empty #if expression"
+#~ msgstr "expresión #if vacía"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "Basura después del final de la expresión."
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "recursión de macro o #include demasiado profunda"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "modo de empleo: %s [interruptores] entrada salida"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional no tiene soporte en C++"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional y -ansi son mutuamente exclusivos"
+
+#~ msgid "filename missing after -i option"
+#~ msgstr "falta el nombre del fichero después de la opción -i"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "falta el nombre del fichero después de la opción -o"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "falta el objetivo después de la opción %s"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "falta el nombre del fichero después de la opción %s"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "falta el nombre de macro después de la opción -%c"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs y -traditional son mutuamente exclusivos"
+
+#~ msgid "directory name missing after -I option"
+#~ msgstr "falta el nombre de directorio después de la opción -I"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "`/*' dentro de un comentario"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "condicional #%s sin terminar"
+
+#~ msgid "not in any file?!"
+#~ msgstr "¡¿No está en ningún fichero?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "`defined' debe ser seguido por ident o (ident)"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "error de cccp: tipo de dispersión especial inválido"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include espera \"fname\" ó <fname>"
+
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "no hay ruta de inclusión en la cual se encuentre %.*s"
+
+#~ msgid "invalid macro name"
+#~ msgstr "nombre de macro inválido"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "nombre de macro `%s' inválido"
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "el nombre de un parámetro empieza con un dígito en un #define"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "lista de parámetros con puntuación errónea en un #define"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "lista de parámetros en #define sin terminar"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" redefinido"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "el operador # debe continuar con un nombre de argumento de macro"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "formato inválido de la orden #line"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "borrando la definición de `defined'"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "borrando la definición de `%s'"
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "texto extra al final de la directiva"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif no está dentro de un condicional"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s no está dentro de un condicional"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else o #elif después de #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else no está dentro de un condicional"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "#endif desbalanceado"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "cadena sin terminar o constante de carácter"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "argumentos dados a la macro `%s'"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "no hay argumentos para la macro `%s'"
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "sólo 1 argumento para la macro `%s'"
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "sólo %d argumentos para la macro `%s'"
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "demasiados argumentos (%d) para la macro `%s'"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "error interno en %s, en tradcpp.c:%d\n"
+#~ "Por favor envíe un reporte completo de error.\n"
+#~ "Vea %s para más instrucciones."
+
+#~ msgid "optimization turned on"
+#~ msgstr "nivel de optimización encendido"
+
+#~ msgid "optimization turned off"
+#~ msgstr "nivel de optimización apagado"
+
+#~ msgid "optimization level restored"
+#~ msgstr "nivel de optimización restaurado"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "Usar alineación VAX-C"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "valor %%V inválido"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Generar código asumiendo que el bit DW está activado"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Generar código asumiendo que el bit DW no está activado"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Generar código usando escritura de byte"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "No generar escritura de byte"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Usar modelo de memoria small"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Usar modelo de memoria normal"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Usar modelo de memoria large"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "Generar código 29050"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Generar código 29000"
+
+#~ msgid "Use kernel global registers"
+#~ msgstr "Usar registros globales del núcleo"
+
+#~ msgid "Use user global registers"
+#~ msgstr "Usar registros globales del usuario"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Emitir código de revisión de la pila"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "No emitir código de revisión de la pila"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Evitar el bug de hardware storem"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "No evitar el bug de hardware storem"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Almacenar los locales en los registros de argumento"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "No almacenar los locales en los registros de argumento"
+
+#~ msgid "Do not generate multm instructions"
+#~ msgstr "No generar instrucciones multm"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Renombrar los símbolos para BSD"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Renombrar los símbolos para X/OPEN"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "No renombrar símbolos"
+
+#~ msgid "MCU `%s' not supported"
+#~ msgstr "El MCU `%s' no tiene soporte"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Generar código para el C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Generar código para el C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Generar código para el c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Generar código para el c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Generar código para el c32"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Generar código para el c34"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Usar secuencia de llamada estándard, con palabra de cuenta de argumentos"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Colocar la cuenta de argumentos en una instrucción nop (más rápido que push)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "No hacer push de la cuenta de argumentos, depender de la tabla de símbolos"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Usar el caché de datos para referencias a memoria volatile (por omisión)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "No usar el caché de datos para referencias a memoria volatile"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Saltar el caché de datos para referencias a memoria volatile"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Usar longs de 64-bit"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "Usar longs de 32-bit compatibles con cc y libc"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "no se da soporte a constantes inline float en este `host'"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Generar código que el ensamblador de unix pueda manejar"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Generar código que un ensamblador imbuído pueda manejar"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Retener la información MXDB estándard"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Retener información de la leyenda"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "General información de leyenda externa"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr "Emitir información de identificación en el fichero .s"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Advertir cuando el argumento de una función es una estructura"
+
+#~ msgid "argument is a structure"
+#~ msgstr "el argumento es una estructura"
+
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "se llamó a half-pic init en sistemas que no le dan soporte"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "El análisis de perfil usa mcount"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Emitir código semi-PIC"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "Emitir código objeto ELF"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Emitir código objeto ROSE"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Los símbolos son precedidos por un subrayado"
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Alinear a límites >word"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Usar mcount para análisis de perfil"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Usar mcount_ptr para análisis de perfil"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Generar código que use el FPU"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "No generar código que use el FPU"
+
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "el soporte para -mlong-double-64 aún no funciona"
+
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr "La opción -march es incompatible con -mipsN y por lo tanto se ignora."
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d no tiene soporte"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s no tiene soporte para -mips%d"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "este objetivo no tiene soporte para el interruptor -mabi"
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "valor erróneo (%s) para el interruptor -mtune="
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d not tiene soporte para registros fp de 64 bit"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d no tiene soporte para registros gp de 64 bit"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "Usar PIC de OSF"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "No usar PIC de OSF"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimizar para 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimizar para 4650"
+
+#~ msgid "stack frame too big"
+#~ msgstr "marco de pila demasiado grande"
+
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "no hay varargs ni stdarg en mmix_setup_incoming_varargs"
+
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "ups, no depurado; componiendo el valor:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Generar datos little endian"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Generar datos big endian"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Activar el código de prueba del mantenedor"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Activar las extensiones picoJava de Transmeta"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Desactivar las extensiones picoJava de Transmeta"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Desactivar el paso de reorganización"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "se ignora -f%s (todo el código es independiente de posición)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "se desactiva -ffunction-sections en AIX mientras se depura"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections no tiene soporte en AIX"
+
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "el argumento 3 para `%s' debe ser una literal de 2-bit"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S calculó una máscara con sólo 1's"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S calculó una máscara con sólo 0's"
+
+#~ msgid "no viable candidates"
+#~ msgstr "no hay candidatos viables"
+
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#~ msgstr "no se puede pasar objetos de tipo `%#T' que no es POD a través de `...'"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "`%D' ya ha sido declarado en `%T'"
+
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "la definición de tipo `%D' está inicializada"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "`%D' como declarador"
+
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "el tamaño del miembro `%D' no es constante"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "no se puede declarar %s a referencias"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "tipo inválido: `void &'"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "la declaración typedef incluye un inicializador"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version ya no tiene soporte"
+
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "candidato%s: %+#D"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "inicializadores miembro para `%#D'"
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " se reordenará para coincidir con el orden de la declaración"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "se dieron inicializadores múltiples para el miembro `%D'"
+
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "inicializadores base para `%T'"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " se reordenará para coincidir con el orden de herencia"
+
+#~ msgid "base class `%T' already initialized"
+#~ msgstr "la clase base `%T' ya está inicializada"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "se usó el nombre `%D' reservado para la implementación"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "instanciación explícita de `%#D' después de"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "especialización explícita aquí"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "instanciación explícita de `%#T' después de"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "inicializador base para `%T'"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " será reordenado para preceder las inicializaciones de los miembros"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "se ignoran los calificadores `%V' para `%T'"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a function type"
+#~ msgstr "ISO C++ prohíbe la aplicación de `sizeof' a un tipo de función"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ prohíbe la aplicación de `sizeof' a una función miembro"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ prohíbe aplicar `sizeof' al tipo `void' el cual es un tipo incompleto"
+
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr "`sizeof' aplicado a miembro que no es static"
+
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "sizeof aplicado a un tipo de dato incompleto `%T'"
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "petición por el miembro `%T::%D' en la expresión de tipo no agregado `%T'"
+
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "uso inválido de la declaración de tipo `%#D' como una expresión"
+
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "uso inválido de la plantilla `%#D' como una expresión"
+
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "desplazamiento inválido desde un tipo `%#T' que no es POD; use en su lugar un apuntador a miembro"
+
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "se llamó a apuntador a función miembro, pero no en el alcance de la clase"
+
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "falta un objeto en la llamada al método `%D'"
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "¿!¿se declaró la función `%D' sobrecargada, pero no aparece ninguna definición con la cual resolverlo?!?"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "llamada inválida a función miembro requiere `this' en el alcance de la función miembro static"
+
+#~ msgid "unary `&'"
+#~ msgstr "`&' unario"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "uso inválido del tipo indefinido `%#T'"
+
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "declaración hacia adelante de `%#T'"
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "uso inválido de `%T'"
+
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "uso inválido del miembro (¿olvidó el `&'?)"
+
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "uso inválido del parámetro de tipo plantilla"
+
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "dirección de la función sobrecargada sin información contextual de tipo"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "función sobrecargada sin información contextual de tipo"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "información contextual insuficiente para determinar el tipo"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "construcción de la lista de inicializadores inválida para el objeto de la clase derivada `%D'"
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "construcción de la lista de inicializadores inválida para el objeto de la clase polimórfica `%D'"
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "construcción de la lista de inicializadores inválida para `%D'"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "debido a la presencia de un constructor"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "debido al acceso no público del miembro `%D'"
+
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ prohíbe las expresiones inicializadoras agregadas que no son constantes"
+
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "el significado de `\\x' (en %0) varía con -traditional"
+
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "el significado de `\\a' (en %0) varía con -traditional"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "el significado de `\\x' varía con -traditional"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "el significado de `\\a' varía con -traditional"
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "error de decodificación; también se excedió la memoria"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "No se puede especificar la dimensión de una matriz en una declaración"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "error interno - uso de tipo indefinido"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "no se especificó un nombre de clase como argumento para -fconstant-string-class"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "la creación de perfil con -p ya no tiene soporte. Use en su lugar -pg"
+
+#~ msgid "incompatible interworking options"
+#~ msgstr "opciones de trabajo interno incompatibles"
+
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "las opciones -mabi=mmixware y -mabi=gnu son mutuamente exclusivas"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "la opción -p no tiene soporte: en su lugar use -pg"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd y -pedantic son incompatibles"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd y -mxopen son incompatibles"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen y -pedantic son incompatibles"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "no se pueden usar -mfp64 y -msingle-float al mismo tiempo"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "no se pueden usar -mfp64 y -m4650 al mismo tiempo"
+
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "no se pueden usar -mgp32 y -mfp64 al mismo tiempo"
+
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "Sólo las variables inicializadas se pueden ubicar en el área de memoria del programa."
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "la declaración de `%#T'"
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "una opción -ifile requiere una opción -map"
#~ msgid "__builtin_trap not supported by this target"
#~ msgstr "no se da soporte a __builtin_trap en este objetivo"
@@ -20205,9 +22059,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "cannot EXIT label `%s' outside current function"
#~ msgstr "no se puede hacer EXIT a la etiqueta `%s' fuera de la función actual"
-#~ msgid "case selector not compatible with label"
-#~ msgstr "el selector del case no es compatible con la etiqueta"
-
#~ msgid "ELSE label not within a CASE statement"
#~ msgstr "la etiqueta ELSE no se encuentra dentro de una declaración CASE"
@@ -20317,7 +22168,7 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "miembro incompatible de la tupla powerset (en la posición #%d)"
#~ msgid "no initializer value for fixed field `%s'"
-#~ msgstr "no hay valor inicial para el campo fijo `%s'"
+#~ msgstr "no hay valor inicializador para el campo fijo `%s'"
#~ msgid "non-constant value for tag field `%s'"
#~ msgstr "valor no constante para el campo de marcado '%s'"
@@ -20329,10 +22180,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "falta los campos variantes (por lo menos `%s')"
#~ msgid "bad initializer for field `%s'"
-#~ msgstr "iniciador inválido para el campo `%s'"
+#~ msgstr "inicializador inválido para el campo `%s'"
#~ msgid "no initializer value for variant field `%s'"
-#~ msgstr "no hay un valor iniciador para el campo variante `%s'"
+#~ msgstr "no hay un valor inicializador para el campo variante `%s'"
#~ msgid "no selected variant"
#~ msgstr "no se ha escogido un variant"
@@ -20344,10 +22195,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "probablemente no es una estructura de tupla"
#~ msgid "excess initializer for field `%s'"
-#~ msgstr "exceso de iniciadores para el campo `%s'"
+#~ msgstr "exceso de inicializadores para el campo `%s'"
#~ msgid "excess unnamed initializers"
-#~ msgstr "exceso de iniciadores sin nombre"
+#~ msgstr "exceso de inicializadores sin nombre"
#~ msgid "non-constant start index for tuple"
#~ msgstr "índice de inicio no constante para la tupla"
@@ -20386,7 +22237,7 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "falta los elementos %s : %s de la tupla matriz"
#~ msgid "initializer is not an array or string mode"
-#~ msgstr "el iniciador no es un modo matriz o cadena"
+#~ msgstr "el inicializador no es un modo matriz o cadena"
#~ msgid "destination is too small"
#~ msgstr "el destino es muy pequeño"
@@ -20398,10 +22249,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "`%s' no debe ser declarado readonly"
#~ msgid "declaration of readonly variable without initialization"
-#~ msgstr "declaración de una variable readonly sin iniciación"
+#~ msgstr "declaración de una variable readonly sin inicialización"
#~ msgid "no initialization allowed for `%s'"
-#~ msgstr "no se permite iniciación para `%s'"
+#~ msgstr "no se permite la inicialización para `%s'"
#~ msgid "value for loc-identity `%s' is not a location"
#~ msgstr "el valor para la loc-identity `%s' no es una ubicación"
@@ -20410,10 +22261,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "la ubicación para `%s' no es compatible con la lectura"
#~ msgid "nonconstant initializer for `%s'"
-#~ msgstr "iniciador no constante para `%s'"
+#~ msgstr "inicializador no constante para `%s'"
#~ msgid "do_decl: internal error: don't know what to initialize"
-#~ msgstr "do_decl: error interno: no se sabe qué hay que iniciar"
+#~ msgstr "do_decl: error interno: no se sabe qué hay que inicializar"
#~ msgid "RECURSIVE PROCs"
#~ msgstr "PROCs RECURSIVE"
@@ -20457,9 +22308,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "non-value mode may only returned by LOC"
#~ msgstr "un modo que no es valor sólo puede ser devuelto por LOC"
-#~ msgid "mode of `%s' is not a mode"
-#~ msgstr "el modo de `%s' no es un modo"
-
#~ msgid "`%s' may only be passed by LOC"
#~ msgstr "`%s' sólo puede ser pasado por LOC"
@@ -20883,9 +22731,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "too few arguments in call to `readrecord'"
#~ msgstr "muy pocos argumentos en la llamada a `readrecord'"
-#~ msgid "incompatible record mode"
-#~ msgstr "modo de registro incompatible"
-
#~ msgid "store location must not be READonly"
#~ msgstr "la ubicación de almacenamiento no debe ser READonly"
@@ -21048,15 +22893,9 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "control sequence overflow"
#~ msgstr "desbordamiento de la secuencia de control"
-#~ msgid "invalid control sequence"
-#~ msgstr "secuencia de control inválida"
-
#~ msgid "invalid base in read control sequence"
#~ msgstr "base inválida en la secuencia de control de lectura"
-#~ msgid "invalid digit in control sequence"
-#~ msgstr "dígito inválido en la secuencia de control"
-
#~ msgid "unterminated string literal"
#~ msgstr "cadena literal sin terminar"
@@ -21150,9 +22989,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "start label '%s' does not match end label '%s'"
#~ msgstr "la etiqueta de inicio '%s' no coincide con la etiqueta final '%s'"
-#~ msgid "`%s' not declared"
-#~ msgstr "no se declaró `%s'"
-
#~ msgid "no RETURN or RESULT in procedure"
#~ msgstr "no hay RETURN o RESULT en el procedimiento"
@@ -21202,11 +23038,8 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "'=' used where ':=' is required"
#~ msgstr "se usa '=' cuando se requiere ':='"
-#~ msgid "initialization is not allowed in spec module"
-#~ msgstr "no se permite la iniciación en el módulo de especificaciones"
-
#~ msgid "loc-identity declaration without initialization"
-#~ msgstr "declaración loc-identity sin iniciación"
+#~ msgstr "declaración loc-identity sin inicialización"
#~ msgid "bad syntax following FORBID"
#~ msgstr "sintaxis errónea a continuación de FORBID"
@@ -21247,9 +23080,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "unrecognized case label list after ','"
#~ msgstr "no se reconoce la lista de etiquetas case después de ','"
-#~ msgid "bad ASM operand"
-#~ msgstr "operando ASM erróneo"
-
#~ msgid "readonly location modified by 'asm'"
#~ msgstr "ubicación de sólo lectura modificada por 'asm'"
@@ -21334,12 +23164,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "POS not allowed for ARRAY"
#~ msgstr "no se permite POS en ARRAY"
-#~ msgid "STEP not allowed in field definition"
-#~ msgstr "no se permite STEP en la definición de campos"
-
-#~ msgid "missing field name"
-#~ msgstr "falta el nombre del campo"
-
#~ msgid "bad field name following ','"
#~ msgstr "nombre de campo erróneo a continuación de ','"
@@ -21397,9 +23221,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "mode with non-value property in signal definition"
#~ msgstr "modo sin propiedad que no es valor en la definición de la señal"
-#~ msgid "undeclared identifier `%s'"
-#~ msgstr "identificador sin declarar `%s'"
-
#~ msgid "RETURNS spec with invalid mode"
#~ msgstr "especificación de RETURNS con modo inválido"
@@ -21415,9 +23236,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "recordmode must not have the non-value property"
#~ msgstr "el modo de grabación no debe tener la propiedad que no es valor"
-#~ msgid "tasking code %ld out of range for `%s'"
-#~ msgstr "el código de tarea %ld está fuera de rango para `%s'"
-
#~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
#~ msgstr "atributo inválido para el argumento `%s' (solamente se permiten IN o LOC)"
@@ -21655,9 +23473,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "can only take slice of array or string"
#~ msgstr "sólo se puede tomar una rebanada de una matriz o una cadena"
-#~ msgid "slice length is not an integer"
-#~ msgstr "la longitud de la rebanada no es un entero"
-
#~ msgid "slice length out-of-range"
#~ msgstr "longitud de la rebanada fuera de rango"
@@ -21709,9 +23524,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "location conversion between differently-sized modes"
#~ msgstr "conversión de ubicaciones entre modos de tamaños diferentes"
-#~ msgid "unsupported value conversion"
-#~ msgstr "conversión de valor sin soporte"
-
#~ msgid "operand to bin must be a non-negative integer literal"
#~ msgstr "el operando para bin debe ser una literal entera no negativa"
@@ -21878,16 +23690,16 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "`%T' no puede ser calificado con `const', `volatile' o `restrict'"
#~ msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-#~ msgstr "ISO C++ prohibe el uso de un apuntador a un tipo de tipo `void *' en la aritmética de apuntadores"
+#~ msgstr "ISO C++ prohíbe el uso de un apuntador a un tipo de tipo `void *' en la aritmética de apuntadores"
#~ msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-#~ msgstr "ISO C++ prohibe el uso de un apuntador a función en la aritmética de apuntadores"
+#~ msgstr "ISO C++ prohíbe el uso de un apuntador a función en la aritmética de apuntadores"
#~ msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-#~ msgstr "ISO C++ prohibe el uso de un apuntador a una función miembro en la aritmética de apuntadores"
+#~ msgstr "ISO C++ prohíbe el uso de un apuntador a una función miembro en la aritmética de apuntadores"
#~ msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-#~ msgstr "ISO C++ prohibe el uso de un apuntador a un miembro en la aritmética de apuntadores"
+#~ msgstr "ISO C++ prohíbe el uso de un apuntador a un miembro en la aritmética de apuntadores"
#~ msgid "Extra label definition %A at %0 -- perhaps previous label definition %B at %1 should have CONTINUE statement?"
#~ msgstr "Definición de etiqueta extra %A en %0 -- ¿tal vez la definición de la etiqueta anterior %B en %1 debe tener una declaración CONTINUE?"
@@ -22442,9 +24254,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
#~ msgstr "Especificación de longitud inválida en %0 para la declaración IMPLICIT -- debe ser una expresión constante entera"
-#~ msgid "Invalid length specification at %0"
-#~ msgstr "Especificación de longitud inválida en %0"
-
#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
#~ msgstr "El tipo del punto ENTRY en %0 a la función tiene conflictos con el(los) tipo(s) de punto(s) de entrada previo(s) -- deben ser todos CHARACTER de longitud idéntica o ninguno debe ser de tipo CHARACTER"
@@ -22452,10 +24261,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "El tipo del punto ENTRY en %0 a la función tiene conflictos con el(los) tipo(s) de punto(s) de entrada previo(s)"
#~ msgid "Common block `%A' initialized at %0 already initialized at %1 -- only one program unit may specify initial values for a particular common block"
-#~ msgstr "El bloque común `%A' iniciado en %0 ya se habia iniciado en %1 -- solamente una unidad de programa puede especificar valores iniciales para un bloque común en particular"
+#~ msgstr "El bloque común `%A' inicializado en %0 ya se habia inicializado en %1 -- solamente una unidad de programa puede especificar valores iniciales para un bloque común en particular"
#~ msgid "Common block `%A' initialized at %0 already initialized at %1"
-#~ msgstr "El bloque común `%A' iniciado en %0 ya se habia iniciado en %1"
+#~ msgstr "El bloque común `%A' inicializado en %0 ya se habia inicializado en %1"
#~ msgid "Initial padding for common block `%A' is %B %C at %0 -- consider reordering members, largest-type-size first"
#~ msgstr "El relleno inicial para el bloque común `%A' es %B %C en %0 -- considere reordenar a los miembros, primero los de tamaño de tipo más grande"
@@ -22470,10 +24279,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "El relleno inicial para el bloque común `%A' es %B %D en %0 pero %C %E en %1"
#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1 -- use consistent definitions or reorder program units in source file"
-#~ msgstr "El bloque común `%A' está iniciado a %B %D de longitud en %0 pero agrandado a %C %E en %1 -- utilice definiciones consistentes o reordene las unidades de programa en el fichero fuente"
+#~ msgstr "El bloque común `%A' está inicializado a %B %D de longitud en %0 pero agrandado a %C %E en %1 -- utilice definiciones consistentes o reordene las unidades de programa en el fichero fuente"
#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1"
-#~ msgstr "El bloque común `%A' está iniciado a %B %D de longitud en %0 pero agrandado a %C %E en %1"
+#~ msgstr "El bloque común `%A' está inicializado a %B %D de longitud en %0 pero agrandado a %C %E en %1"
#~ msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0 -- unexpected behavior likely"
#~ msgstr "La variable DO `%A' es de tipo REAL o DOUBLE PRECISION en %0 -- es probable que tenga una conducta inesperada"
@@ -22494,10 +24303,10 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "Coma flotante de precisión cuádruple sin soporte"
#~ msgid "Initialization of large (%B-unit) aggregate area `%A' at %0 slow and takes lots of memory during g77 compile"
-#~ msgstr "La iniciación del área agregada grande (unidad-%B) `%A' en %0 es actualmente muy lenta y toma mucha memoria durante la compilación de g77"
+#~ msgstr "La inicialización del área agregada grande (unidad-%B) `%A' en %0 es actualmente muy lenta y toma mucha memoria durante la compilación de g77"
#~ msgid "This could take a while (initializing `%A' at %0)..."
-#~ msgstr "Esto puede tardar un rato (iniciando `%A' en %0)..."
+#~ msgstr "Esto puede tardar un rato (inicializando `%A' en %0)..."
#~ msgid "can't to open %s"
#~ msgstr "no se puede abrir %s"
@@ -22505,9 +24314,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "Set class path and suppress system path"
#~ msgstr "Establecer la ruta de clases y suprimir la ruta del sistema"
-#~ msgid "a -ifile option requires a -map option"
-#~ msgstr "una opción -ifile requiere una opción -map"
-
#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
#~ msgstr "referencia inválida a NULL ptr, use en su lugar ptr-a-miembro"
@@ -22538,9 +24344,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "no file-scope type named `%D'"
#~ msgstr "no hay un tipo de ámbito de fichero llamado `%D'"
-#~ msgid "%T is not a class type"
-#~ msgstr "%T no es un tipo de clase"
-
#~ msgid "base clause without member specification for `%#T'"
#~ msgstr "cláusula base sin una especificación de miembro para `%#T'"
@@ -22551,7 +24354,7 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "uso inválido de %D"
#~ msgid "return value from function receives multiple initializations"
-#~ msgstr "el valor de de devolución de la función recibe iniciaciones múltiples"
+#~ msgstr "el valor de de devolución de la función recibe inicializaciones múltiples"
#~ msgid "Can't use '$' as a separator for inner classes"
#~ msgstr "No se puede usar '$' como un separador para las clases interiores"
@@ -22566,7 +24369,7 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "la declaración de `%s' obscurece a una declaración local previa"
#~ msgid "ANSI C forbids const or volatile function types"
-#~ msgstr "ANSI C prohibe los tipos de función const o volatile"
+#~ msgstr "ANSI C prohíbe los tipos de función const o volatile"
#~ msgid "leaving more files than we entered"
#~ msgstr "dejando más ficheros de los que se introducieron"
@@ -22578,7 +24381,7 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "secuencia de escape desconocida, '\\' seguida por el carácter 0x%x"
#~ msgid "ISO C forbids `&&'"
-#~ msgstr "ISO C prohibe `&&'"
+#~ msgstr "ISO C prohíbe `&&'"
#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
#~ msgstr "`[*]' en la declaración de parámetros solamente se permite en ISO C 99"
@@ -22587,29 +24390,23 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgstr "argumento de tipo erróneo para %s"
#~ msgid "deprecated initialization of zero-length array"
-#~ msgstr "iniciación deprecada de una matriz de longitud cero"
+#~ msgstr "inicialización obsoleta de una matriz de longitud cero"
#~ msgid "initialization of zero-length array before end of structure"
-#~ msgstr "iniciación de una matriz de longitud cero antes del fin de la estructura"
+#~ msgstr "inicialización de una matriz de longitud cero antes del fin de la estructura"
#~ msgid "initialization of zero-length array inside a nested context"
-#~ msgstr "iniciación de una matriz de longitud cero dentro de un contexto anidado"
+#~ msgstr "inicialización de una matriz de longitud cero dentro de un contexto anidado"
#~ msgid "Unable to find a temporary location for static chain register"
#~ msgstr "No se puede encontrar una ubicación temporal para el registro estático de cadena"
-#~ msgid "Only initialized variables can be placed into the 8-bit area."
-#~ msgstr "Sólo las variables con valor inicial pueden ser colocadas en el área de 8-bit."
-
#~ msgid "Internal gcc abort from %s:%d"
#~ msgstr "Aborto interno de gcc de %s:%d"
#~ msgid "The local variable `insn' has the value:"
#~ msgstr "La variable local `insn' tiene el valor:"
-#~ msgid "Register '%c' is unknown"
-#~ msgstr "El registro '%c' es desconocido"
-
#~ msgid "Register '%c' already specified in allocation order"
#~ msgstr "El registro '%c' ya fue especificado en el orden de alojamiento"
@@ -22655,17 +24452,14 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "`__alignof__' applied to a bit-field"
#~ msgstr "`__alignof__' aplicado a un campo de bits"
-#~ msgid "base class initializer specified, but no base class to initialize"
-#~ msgstr "se especificó el iniciador de la clase base, pero no hay clase base a iniciar"
-
#~ msgid "initializer for unnamed base class ambiguous"
-#~ msgstr "iniciador para clase base sin nombre ambiguo"
+#~ msgstr "inicializador para clase base sin nombre ambiguo"
#~ msgid "Do not treat the namespace `std' as a normal namespace"
#~ msgstr "No tratar al espacio de nombres `std' como un espacio de nombres normal"
#~ msgid "ISO C++ forbids `&&'"
-#~ msgstr "ISO C++ prohibe `&&'"
+#~ msgstr "ISO C++ prohíbe `&&'"
#~ msgid "taking dynamic typeid of object with -fno-rtti"
#~ msgstr "tomando typeid dinámico de objeto con -fno-rtti"
@@ -22697,9 +24491,6 @@ msgstr "-fPIC no es válido con -mcoff"
#~ msgid "expected to return to file \"%s\""
#~ msgstr "se esperaba regresar al fichero \"%s\""
-#~ msgid "expected to return to line number %u"
-#~ msgstr "se esperaba regresar a la línea número %u"
-
#~ msgid "header flags for \"%s\" have changed"
#~ msgstr "los interruptores del encabezado para \"%s\" han cambiado"
diff --git a/gcc/po/fr.po b/gcc/po/fr.po
index ab6742a244e..fdaa5e68374 100644
--- a/gcc/po/fr.po
+++ b/gcc/po/fr.po
@@ -1,140 +1,177 @@
# Messages français pour GNU concernant gcc.
# Copyright © 2001 Free Software Foundation, Inc.
-# Michel Robitaille <robitail@IRO.UMontreal.CA>, since 1996.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
+#
+# Vocabulaire utilisé
+# lvalue = membre gauche
+# deprecated = obsolète
+# out of range = hors des limites
+# range = gamme
+# scope = porté, champ
+# shadowing = masquer
+# embedded PIC = PIC enchâssé
+# CPU = processeur
+# structure with flexible member
+# = structure ayant un membre flexible
+# flag = fanion
+# forward declaration
+# = déclaration anticipée
+# token = élément lexical (dans le contexte du parsing)
+# to subscript = indicer
+# top-level = hors de toute fonction
+# member function = fonction membre
+#
+# Pas traduit:
+# thread
+#
+# J'ai des doutes pour :
+# inline = en-ligne (pas systématiquement)
+# section attribute attribut de section
+# wide char caractère long
+#
+# ------
+# literals littéral, ou mot composé ?
+# msgid "ISO C89 forbids compound literals"
+# msgstr "le C89 ISO interdit les mots composés"
+#
+# symbol table table des symboles ou table de symbole
+# command map carte des commandes
+# Combiner combinateur
+# msgid ""
+# ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+# ";; %d successes.\n"
+# "\n"
+# msgstr ""
+# ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
+# ";; %d succès.\n"
+# "\n"
+#
+# promote promouvoir
+# msgid "the left operand of \"%s\" changes sign when promoted"
+# msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
+#
+# include guards ???
+# msgid "Multiple include guards may be useful for:\n"
+# msgstr "De multiples balises pour les inclusions peuvent être utiles pour :\n"
+#
+#
+# universal-character-name ???
+# msgid "incomplete universal-character-name"
+# msgid "non-hex digit '%c' in universal-character-name"
+# msgid "universal-character-name on EBCDIC target"
+#
+# poisoning empoisonnement
+# msgid "poisoning existing macro \"%s\""
+# msgstr "empoisonnement de la macro existente « %s »"
+#
+#
+# Autres règles:
+# - j'ai ajouté un adjectif par rapport à l'anglais si le message est
+# une phrase avec verbe conjugé.
+# - ISO est considéré comme un adjectif dans « C ISO »
+#
+# Erreurs corrigées:
+# librairies, assumer
+#
+# A faire:
+# - s/en ligne/en-ligne/
+# - hors gamme
+# - literal
+# - chaine de format => formatage
+# - scope
+# - supporté est un faux ami
+#
+# A rapporter upstream:
+# <<<<<<<<
+# In c-opts.c, begining line 1732, a lot of options are of the kind:
+# " -W[no-]trigraphs Warn if trigraphs are encountered\n"
+# I guess it would be better to change them all to something like
+# " -W[no-]trigraphs Warn [or not] if trigraphs are encountered\n"
+#
+#
+# #: c-opts.c:1759
+# " -MP\t\t\t Generate phony targets for all headers\n"
+# you may want to change the \t to spaces, as it is done for the other lines.
+#
+# #: c-typeck.c:3166 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664
+# #: final.c:3146 final.c:3148 gcc.c:4397 rtl-error.c:122 toplev.c:1694
+# #: config/cris/cris.c:529 cp/typeck.c:4341 java/expr.c:364 java/verify.c:1467
+# #: java/verify.c:1468 java/verify.c:1483
+# #, c-format
+# msgid "%s"
+# msgstr "%s"
+#
+# Are you sure you want to translate the messages in cfgrtl.c, or are they
+# debugging informations ?
+#
+# You may want to use ngettext instead of putting (s) in text.
+# msgid "null character(s) preserved in literal"
+#
+# >>>>>>>>>
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU gcc 3.1-b20020415\n"
-"POT-Creation-Date: 2002-04-23 12:53+0200\n"
-"PO-Revision-Date: 2002-04-29 14:00-0500\n"
+"Project-Id-Version: GNU gcc 3.3-b20021230\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2003-03-05 23:20+0100\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: attribs.c:314
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
-msgstr "« %s » attribut de la directive ignoré"
+msgstr "attribut de directive « %s » ignoré"
-#: attribs.c:322
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "nombre erroné d'arguments spécifié pour l'attribut « %s »"
-#: attribs.c:339
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
-msgstr "« %s » attribut ne s'applique pas à ces types"
+msgstr "l'attribut « %s » ne s'applique pas aux types"
-#: attribs.c:376
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
-msgstr "attribut « %s » ne s'applique seulement qu'à des types de fonction"
-
-#: attribs.c:468 attribs.c:490 attribs.c:512 attribs.c:543 attribs.c:565 attribs.c:590 attribs.c:613 attribs.c:643 attribs.c:681 attribs.c:728 attribs.c:758 attribs.c:788 attribs.c:811 attribs.c:1057 attribs.c:1113 attribs.c:1169 attribs.c:1230 attribs.c:1256 attribs.c:1458 config/arm/arm.c:2007 config/arm/arm.c:2034 config/avr/avr.c:4683 config/h8300/h8300.c:3071 config/h8300/h8300.c:3096 config/i386/i386.c:1267 config/i386/winnt.c:74
+msgstr "l'attribut « %s » ne s'applique qu'à des types de fonction"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
-msgstr "« %s » attribut ignoré"
-
-#: attribs.c:844
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "mode machine inconnu « %s »"
-
-#: attribs.c:847
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "aucun type de données pour le mode « %s »"
-
-#: attribs.c:880
-msgid "section attribute cannot be specified for local variables"
-msgstr "attribut de section ne peut être spécifié pour des variables locales"
-
-#: attribs.c:891
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "section de « %s » en conflit avec une déclaration précédente"
+msgstr "attribut « %s » ignoré"
-#: attribs.c:900
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "attribut de section n'est pas permis pour « %s »"
-
-#: attribs.c:907
-msgid "section attributes are not supported for this target"
-msgstr "attribut de section ne sont pas supportés pour la cible"
-
-#: attribs.c:949
-msgid "requested alignment is not a constant"
-msgstr "alignement demandé n'est pas une constante"
-
-#: attribs.c:954
-msgid "requested alignment is not a power of 2"
-msgstr "alignement demandé n'est pas une puissance de 2"
-
-#: attribs.c:959
-msgid "requested alignment is too large"
-msgstr "alignement demandé est trop grand"
-
-#: attribs.c:986
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "alignement ne peut pas être spécifié pour « %s »"
-
-#: attribs.c:1031
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "« %s » défini à la fois comme normal et comme alias"
-
-#: attribs.c:1041
-msgid "alias arg not a string"
-msgstr "argument d'alias n'est pas une chaîne"
-
-#: attribs.c:1080 attribs.c:1136
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "attribut « %s » ne s'applique seulement qu'à des fonctions"
-
-#: attribs.c:1087 attribs.c:1143
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "ne peut initialiser l'attribut « %s » après définition"
-
-#: attribs.c:1227
-#, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr "« %s » attribut ignoré pour « %s »"
-
-#: attribs.c:1284
-#, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "type de vecteur invalide pour l'attribut « %s »"
-
-#: attribs.c:1307 attribs.c:1312
-msgid "no vector mode with the size and type specified could be found"
-msgstr "aucun mode vecteur avec la taille et le type spécifié n'a pas été répéré"
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
-msgstr "décalage hors gamme d'une chaîne de constante"
+msgstr "décalage hors des limites d'une chaîne de constante"
-#: builtins.c:759
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr "second argument de « __builtin_prefetch » doit être une constante"
-#: builtins.c:766
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
-msgstr "second argument invalide de « __builtin_prefetch »; utilise zéro"
+msgstr "second argument invalide de « __builtin_prefetch »; utilisation de zéro"
-#: builtins.c:773
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr "troisième argument de « __builtin_prefetch » doit être une constante"
-#: builtins.c:780
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
-msgstr "troisième argument invalide de « __builtin_prefetch »; utilise zéro"
+msgstr "troisième argument invalide de « __builtin_prefetch »; utilisation de zéro"
#. ??? We used to try and build up a call to the out of line function,
#. guessing about what registers needed saving etc. This became much
@@ -143,2183 +180,2446 @@ msgstr "troisième argument invalide de « __builtin_prefetch »; utilise zéro"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2760
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
-msgstr "« __builtin_saveregs » n'est pas supporté par la cible"
+msgstr "« __builtin_saveregs » n'est pas supporté par cette cible"
-#: builtins.c:2802
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "argument de « __builtin_args_info » doit être une constante"
-#: builtins.c:2808
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
-msgstr "argument de « __builtin_args_info » hors gamme"
+msgstr "argument de « __builtin_args_info » hors des limites"
-#: builtins.c:2814
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "argument manquant dans « __builtin_args_info »"
-#: builtins.c:2846
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
-msgstr "« va_start » utilisé dans la fonction avec des arguments fixes"
+msgstr "« va_start » utilisé dans une fonction ayant des arguments fixes"
-#: builtins.c:2865
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr "second paramètre de « va_start » n'est pas le dernier argument nommé"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2870
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "« __builtin_next_arg » appelé sans argument"
-#: builtins.c:2974
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "trop d'arguments pour la function « va_start »"
-#: builtins.c:3075
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
-msgstr "premier argument de « va_arg » n'est pas de type « va_list "
+msgstr "premier argument de « va_arg » n'est pas de type « va_list »"
#. Unfortunately, this is merely undefined, rather than a constraint
#. violation, so we cannot make this an error. If this call is never
#. executed, the program is still strictly conforming.
-#: builtins.c:3106
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
-msgstr "« %s » a été promu à « %s » lorsque passé à travers « ... »"
+msgstr "« %s » a été promu à « %s » lors du passage à travers « ... »"
-#: builtins.c:3111
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
-msgstr "(vous devriez passer « %s » mais non pas « %s » à « va_arg »)"
+msgstr "(vous devriez donc passer « %s » et non « %s » à « va_arg »)"
-#: builtins.c:3242
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
-msgstr "argument invalid de « __builtin_frame_address »"
+msgstr "argument de « __builtin_frame_address » invalide"
-#: builtins.c:3244
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
-msgstr "argument invalid de « __builtin_return_address »"
+msgstr "argument de « __builtin_return_address » invalide"
-#: builtins.c:3258
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
-msgstr "argument non supporté de « __builtin_frame_address »"
+msgstr "argument de « __builtin_frame_address » non supporté"
-#: builtins.c:3260
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
-msgstr "argument non supporté de « __builtin_return_address »"
+msgstr "argument de « __builtin_return_address » non supporté"
-#: builtins.c:3428
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
-msgstr "second argument de « __builtin_expect » doit être une constante"
+msgstr "le second argument de « __builtin_expect » doit être une constante"
-#: builtins.c:3909
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
-msgstr "second argument de « __builtin_longjmp » doit être 1"
+msgstr "le second argument de « __builtin_longjmp » doit être 1"
#. just do library call, if unknown builtin
-#: builtins.c:3982 c-common.c:3811
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
-msgstr "fonction interne « %s » n'est pas couramment supportée"
+msgstr "fonction interne « %s » n'est pas actuellement supportée"
-#: c-common.c:550
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "le format cible ne supporte pas l'infini"
+
+#: c-common.c:1168
#, c-format
msgid "`%s' is not defined outside of function scope"
-msgstr "« %s » n'est pas défini à l'extérieur de l'étendue de la fonction"
-
-#: c-common.c:590
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
-msgstr "concaténation de litéraux de chaîne avec « __FUNCTION__ » est dépréciée. Cette option ne sera plus disponible dans le futur."
+msgstr "« %s » n'est pas défini à l'extérieur de la portée de la fonction"
-#: c-common.c:659
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
-msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que le compilateur ISO C%d requiert pour le support"
+msgstr "longueur de la chaîne « %d » plus grande que la longueur « %d » que les compilateurs C%d ISO doivent supporter"
+
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "la concaténation de chaînes de litéraux avec « __FUNCTION__ » est obsolète"
-#: c-common.c:708
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "débordement dans l'expression de la constante"
-#: c-common.c:729
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "débordement d'entier dans l'expression"
-#: c-common.c:738
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "débordement d'un nombre en virgule flottante dans l'expression"
-#: c-common.c:744
+#: c-common.c:1379
msgid "vector overflow in expression"
msgstr "débordement du vecteur dans l'expression"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:765
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "grand entier implicitement tronqué pour un type non signé"
-#: c-common.c:767
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "entier négatif implicitement converti en un type non signé"
-#: c-common.c:814
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "débordement dans la conversion implicte de la constante"
-#: c-common.c:962
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
-msgstr "opération portant sur « %s » est peut être indéfinie"
+msgstr "l'opération portant sur « %s » est peut être indéfinie"
-#: c-common.c:1253
+#: c-common.c:1891
msgid "expression statement has incomplete type"
-msgstr "déclaration de l'expression a un type incomplet"
+msgstr "la déclaration de l'expression a un type incomplet"
-#: c-common.c:1286
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "l'étiquette du « case » ne se réduit pas en une constante entière"
-#: c-common.c:1586
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "expression valeur de vérité invalide"
-#: c-common.c:1637
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "opérandes invalides pour le binaire %s"
-#: c-common.c:1872 c-common.c:1881
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr "comparaison est toujours fausse en raison d'une gamme limitée de type de données"
-#: c-common.c:1874 c-common.c:1883
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr "comparaison est toujours vraie en raison d'une gamme limitée de type de données"
-#: c-common.c:1949
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "comparaison d'une expression non signée >=0 est toujours vraie"
-#: c-common.c:1958
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "comparaison d'une expression non signée < 0 est toujours fausse"
-#: c-common.c:2005
+#: c-common.c:2641
msgid "pointer of type `void *' used in arithmetic"
-msgstr "pointeur de type « void * » utilisé en arithmétique"
+msgstr "usage en arithmétique d'un pointeur de type « void * »"
-#: c-common.c:2011
+#: c-common.c:2647
msgid "pointer to a function used in arithmetic"
-msgstr "pointeur vers une fonction utilisé en arithmétique"
+msgstr "usage en arithmétique d'un pointeur vers une fonction"
-#: c-common.c:2017
+#: c-common.c:2653
msgid "pointer to member function used in arithmetic"
-msgstr "pointeur vers le membre d'une fonction utilisée dans l'arithmétique"
+msgstr "usage en arithmétique d'un pointeur vers une fonction membre"
-#: c-common.c:2023
+#: c-common.c:2659
msgid "pointer to a member used in arithmetic"
-msgstr "pointeur vers un membre utilisé dans l'arithmétique"
+msgstr "usage en arithmétique d'un pointeur vers un membre"
-#: c-common.c:2110 f/com.c:14823
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
-msgstr "valeur du type struct utilisé nécessite un scalaire"
+msgstr "valeur de type « struct » utilisé là où un scalaire est attendu"
-#: c-common.c:2114 f/com.c:14827
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
-msgstr "valeur du type union utilisé nécessite un scalaire"
+msgstr "valeur de type « union » utilisé là où un scalaire est attendu"
-#: c-common.c:2118 f/com.c:14831
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
-msgstr "valeur du type array utilisé nécessite un scalaire"
+msgstr "valeur de type « array » utilisé là où un scalaire est attendu"
-#: c-common.c:2233 f/com.c:14957
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
-msgstr "parenthèses suggérées autour de l'affectation utilisées comme valeur de vérité"
+msgstr "parenthèses suggérées autour de l'affectation utilisée comme valeur de vérité"
-#: c-common.c:2277 c-common.c:2309
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
-msgstr "utilisation invalide de « restrict »"
+msgstr "usage de « restrict » invalide"
-#: c-common.c:2425
-msgid "__alignof__ applied to an incomplete type"
-msgstr "« __alignof__ » appliqué sur un type incomplet"
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "application de « sizeof » sur un type de fonction invalide"
-#: c-common.c:2451
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "application invalide de « %s » sur un type void"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "application invalide de « %s » sur un type incomplet"
+
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr "« __alignof » appliqué sur un champ de bits"
-#: c-common.c:2893
+#: c-common.c:3618
#, c-format
msgid "cannot disable built-in function `%s'"
msgstr "ne peut désactiver la fonction interne « %s »"
-#: c-common.c:3174 c-typeck.c:1781
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
-msgstr "pas assez d'argument pour la fonction « %s »"
+msgstr "pas assez d'arguments pour la fonction « %s »"
-#: c-common.c:3180 c-typeck.c:1634
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "trop d'arguments pour la fonction « %s »"
-#: c-common.c:3369
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "argument pour la fonction « %s » n'étant pas en virgule flottante"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr "les pointeurs ne sont pas permis comme valeurs de « case »"
-#: c-common.c:3375
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
-msgstr "ISO C++ interdit les expressions de bornes dans les déclarations de « switch »"
+msgstr "le C++ ISO interdit les intervalles dans les déclarations de « switch »"
-#: c-common.c:3377
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
-msgstr "ISO C interdit les expressions de bornes dans les déclarations de « switch »"
+msgstr "le C ISO interdit les intervalles dans les « switch »"
-#: c-common.c:3407
+#: c-common.c:4119
msgid "empty range specified"
-msgstr "bornes spécifiées sont vides"
+msgstr "intervalle vide spécifié"
-#: c-common.c:3458
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
-msgstr "valeur de « case » double ou qui en chevauche un autre"
+msgstr "valeur du « case » duppliquée (ou en chevauchant une autre)"
-#: c-common.c:3460
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
-msgstr "c'est la première entrée qui chevauche cette valeur"
+msgstr "ceci est la première entrée chevauchant cette valeur"
-#: c-common.c:3464
+#: c-common.c:4176
msgid "duplicate case value"
-msgstr "valeur de « case » double"
+msgstr "valeur du « case » duppliquée"
-#: c-common.c:3465
+#: c-common.c:4177
msgid "previously used here"
msgstr "précédemment utilisé ici"
-#: c-common.c:3469
+#: c-common.c:4181
msgid "multiple default labels in one switch"
-msgstr "étiquettes multiples de défaut dans un « case »"
+msgstr "plusieurs étiquettes par défaut dans un « switch »"
-#: c-common.c:3470
+#: c-common.c:4182
msgid "this is the first default label"
msgstr "ceci est la première étiquette de défaut"
-#: c-common.c:3498
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
-msgstr "ISO C++ interdit de prendre l'adresse d'une étiquette"
+msgstr "le C++ ISO interdit de prendre l'adresse d'une étiquette"
-#: c-common.c:3500
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
-msgstr "ISO C interdit l'adresse d'une expression d'une étiquette"
+msgstr "le C ISO interdit de prendre l'adresse d'une étiquette"
-#: c-common.c:4148
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "-Wformat-y2k ignorée sans -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "la déclaration de « %s » masque %s"
-#: c-common.c:4150
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "-Wformat-extra-args ignorée sans -Wformat"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "mode machine « %s » inconnu"
-#: c-common.c:4152
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "-Wformat-nonliteral ignorée sans -Wformat"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "aucun type de données pour le mode « %s »"
-#: c-common.c:4154
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "-Wformat-security ignorée sans -Wformat"
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "impossible d'émuler « %s »"
-#: c-common.c:4156
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "-Wmissing-format-attribute ignorée sans -Wformat"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "l'attribut de section ne peut être spécifié pour des variables locales"
-#: c-common.c:4247
+#: c-common.c:5713
#, c-format
-msgid "declaration of `%s' shadows %s"
-msgstr "déclaration de « %s » fait ombrage à %s"
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "section de « %s » en conflit avec une déclaration précédente"
-#: c-convert.c:78 c-typeck.c:1035 c-typeck.c:4047 cp/typeck.c:1673 cp/typeck.c:6165
-msgid "void value not ignored as it ought to be"
-msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être"
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "attribut de section n'est pas permis pour « %s »"
-#: c-convert.c:110 java/typeck.c:150
-msgid "conversion to non-scalar type requested"
-msgstr "conversion vers un type non scalaire demandé"
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "attribut de section ne sont pas supportés pour la cible"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "l'alignement demandé n'est pas une constante"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "l'alignement demandé n'est pas une puissance de 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "l'alignement demandé est trop grand"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "l'alignement ne peut pas être spécifié pour « %s »"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "« %s » défini à la fois normalement et en tant qu'alias"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "l'argument d'alias n'est pas une chaîne"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "l'argument de visibilité n'est pas une chaîne"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "l'argument de visibilité doit être l'un de « default » (par défaut), « hidden » (masqué), « protected » (protégé) ou « internal » (interne)"
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "l'argument de tls_model n'est pas une chaîne"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "l'argument de tls_model doit être l'un de « local-exec », « initial-exec », « local-dynamic » or « global-dynamic »"
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "l'attribut « %s » ne s'applique seulement qu'à des fonctions"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "ne peut initialiser l'attribut « %s » après définition"
-#: c-decl.c:476
-msgid "-traditional is deprecated and may be removed"
-msgstr "-traditional est dépréciée et peut être enlevée dans le futur"
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "tranche de la longueur n'est pas un entier"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "l'objet appelé n'est pas une fonction"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "attribut « %s » ignoré pour « %s »"
-#: c-decl.c:566
+#: c-common.c:6248
#, c-format
-msgid "unknown C standard `%s'"
-msgstr "standard C « %s » inconnu"
+msgid "invalid vector type for attribute `%s'"
+msgstr "type de vecteur invalide pour l'attribut « %s »"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "aucun mode vecteur avec la taille et le type spécifié n'a été trouvé"
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "attribut non nul sans argument sur un non-prototype"
-#: c-decl.c:848
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "un argument non nul a un nombre d'opérande invalide (argument %lu)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "un argument non nul a un nombre d'opérande hors des bornes (arg %lu, opérande %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "un argument non nul référence une opérande qui n'est pas un pointeur (arg %lu, opérande %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "argument nul là où un non-nul est requis (arg %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr "valeur void n'a pas été ignorée comme elle aurait dû l'être"
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr "conversion vers un type non scalaire demandée"
+
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
-msgstr "on assume que le tableau « %s » a un élément"
+msgstr "il est supposé que le tableau « %s » a un élément"
-#: c-decl.c:1024
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
-msgstr "« struct %s » incomplet dans le champ final ici"
+msgstr "« struct %s » incomplète dans le champ terminant ici"
-#: c-decl.c:1027
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
-msgstr "« union %s » incomplet dans le champs final ici"
+msgstr "« union %s » incomplète dans le champ terminant ici"
-#: c-decl.c:1030
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
-msgstr "« enum %s » incomplet dans le champ final ici"
+msgstr "« enum %s » incomplète dans le champ terminant ici"
-#: c-decl.c:1144 c-decl.c:1285 java/decl.c:1377
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "étiquette « %s » utilisée mais non définie"
-#: c-decl.c:1150 c-decl.c:1292 java/decl.c:1383
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
-msgstr "étiquette « %s » définie mais non utilisée"
+msgstr "étiquette « %s » définie mais pas utilisée"
-#: c-decl.c:1409 cp/decl.c:3128
+#: c-decl.c:893 cp/decl.c:3335
#, c-format
msgid "function `%s' redeclared as inline"
msgstr "fonction « %s » redéclarée comme étant inline"
-#: c-decl.c:1411 cp/decl.c:3130
+#: c-decl.c:895 cp/decl.c:3337
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr "déclaration précédente de la fonction « %s » avec l'attribut noinline"
-#: c-decl.c:1418 cp/decl.c:3137
+#: c-decl.c:902 cp/decl.c:3344
#, c-format
msgid "function `%s' redeclared with attribute noinline"
-msgstr "fonction « %s » redéclarée à l'intérieur noinline"
+msgstr "fonction « %s » redéclarée avec l'attribut noinline"
-#: c-decl.c:1420 cp/decl.c:3139
+#: c-decl.c:904 cp/decl.c:3346
#, c-format
msgid "previous declaration of function `%s' was inline"
-msgstr "déclaration précédente de la fonction « %s » était inline"
+msgstr "la déclaration précédente de la fonction « %s » était inline"
-#: c-decl.c:1449 c-decl.c:1502
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
-msgstr "fait ombrage à la fonction interne « %s »"
+msgstr "masquage de la fonction interne « %s »"
-#: c-decl.c:1451
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
-msgstr "fait ombrage à fonction « %s » de la librairie"
+msgstr "masquage de la fonction « %s » de la bibliothèque"
-#: c-decl.c:1457
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
-msgstr "fonction « %s » de la librairie déclarée comme n'étant pas une fonction"
+msgstr "fonction « %s » de la bibliothèque déclarée comme n'étant pas une fonction"
-#: c-decl.c:1461 c-decl.c:1464
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "fonction interne « %s » n'est pas déclarée comme une fonction"
-#: c-decl.c:1468 objc/objc-act.c:2334 objc/objc-act.c:6036
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
-msgstr "« %s » redéclaré comme une sorte différente de symbole"
+msgstr "« %s » redéclaré comme une autre sorte de symbole"
-#: c-decl.c:1469 c-decl.c:1667 c-decl.c:1817 objc/objc-act.c:2336 objc/objc-act.c:6038 objc/objc-act.c:6093
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "déclaration précédente de « %s »"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1571
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
-msgstr "type conflictuels pour la fonction interne « %s »"
+msgstr "types conflictuels pour la fonction interne « %s »"
-#: c-decl.c:1614 c-decl.c:1633
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "types conflictuels pour « %s »"
-#: c-decl.c:1656
+#: c-decl.c:1133
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr "un paramètre de la liste avec une ellipse ne peut concorder une déclaration vide de liste de noms de paramètres"
-#: c-decl.c:1662
+#: c-decl.c:1139
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
-msgstr "un type d'argument qui a une promotion par défaut ne peut concorder avec une déclaration vide de noms de paramètres"
+msgstr "un type d'argument ayant une promotion par défaut ne peut concorder avec une déclaration vide de noms de paramètres"
+
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "déclaration locale au thread de « %s » après une déclaration non locale au thread"
-#: c-decl.c:1677 c-decl.c:1700
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "déclaration non locale au thread de « %s » après une déclaration locale au thread"
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "redéfinition de « %s »"
-#: c-decl.c:1680
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "redéclaration de « %s »"
-#: c-decl.c:1683
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "déclarations conflictuelles de « %s »"
-#: c-decl.c:1727
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
-msgstr "prototype de « %s » suit"
+msgstr "le prototype de « %s » suit"
-#: c-decl.c:1728 c-decl.c:1736 c-decl.c:1752
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "définition d'un non prototype ici"
-#: c-decl.c:1735
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
-msgstr "prototype de « %s » suit mais le nombre d'arguments ne concorde pas"
+msgstr "le prototype de « %s » suit mais le nombre d'arguments ne concorde pas"
-#: c-decl.c:1750
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
-msgstr "prototype de « %s » suit mais le nombre d'arguments %d ne concorde pas"
+msgstr "le prototype de « %s » suit mais le nombre d'arguments %d ne concorde pas"
-#: c-decl.c:1768
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
-msgstr "« %s » déclaré en ligne après avoir été appelé"
+msgstr "« %s » déclaré en-ligne après avoir été appelé"
-#: c-decl.c:1774
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
-msgstr "« %s » déclaré en ligne après sa définition"
+msgstr "« %s » déclaré en-ligne après sa définition"
-#: c-decl.c:1781
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
-msgstr "la déclaration « static» de « %s » en suit une non « static »"
+msgstr "la déclaration de « %s » comme statique après une déclaration comme non statique"
-#: c-decl.c:1789
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
-msgstr "la déclaration non « static» de « %s » en suit une « static »"
+msgstr "la déclaration de « %s » comme non statique après une déclaration comme statique"
-#: c-decl.c:1796
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
-msgstr "la déclaration constante de « %s » en suit une non constante"
+msgstr "la déclaration de « %s » comme constante après une déclaration comme non constante"
-#: c-decl.c:1803
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "le qualificateur du type de « %s » est en conflit avec une déclaration précédente"
-#: c-decl.c:1816
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
-msgstr "re-déclaration redondante de « %s » dans le même champ."
+msgstr "redéclaration redondante de « %s » dans le même champ"
-#: c-decl.c:2120 java/decl.c:1076
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
-msgstr "déclaration de « %s » cache un paramètre"
+msgstr "la déclaration de « %s » masque un paramètre"
-#: c-decl.c:2123 java/decl.c:1079
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
-msgstr "déclaration de « %s » cache un symbole de la liste des paramètres"
+msgstr "la déclaration de « %s » masque un symbole de la liste des paramètres"
-#: c-decl.c:2144 cp/decl.c:4236
+#: c-decl.c:1643 cp/decl.c:4479
msgid "a parameter"
msgstr "un paramètre"
-#: c-decl.c:2146 cp/decl.c:4253
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
-msgstr "un local antérieur"
+msgstr "une locale précédente"
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2150 cp/decl.c:4257
+#: c-decl.c:1649 cp/decl.c:4500
msgid "a global declaration"
msgstr "une déclaration globale"
-#: c-decl.c:2194
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "déclaration de « %s » externe imbriquée"
-#: c-decl.c:2216 java/decl.c:1029
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
-msgstr "« %s » utilisé précédemment avant sa déclaration"
+msgstr "« %s » utilisé avant sa déclaration"
-#: c-decl.c:2231 c-decl.c:2446
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "« %s » a été déclaré implicitement « extern » et plus loin « static »"
-#: c-decl.c:2341 cp/decl.c:4095
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
-msgstr "pas de concordance de type avec une déclaration externe précédente"
+msgstr "non concordance de type avec la déclaration externe précédente"
-#: c-decl.c:2342
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "déclaration externe précédente de « %s »"
-#: c-decl.c:2355
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "non concordance de type avec la déclaration implicite précédente"
-#: c-decl.c:2357
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "déclaration précédente implicite de « %s »"
-#: c-decl.c:2374
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "le type de l'externe « %s » n'est pas global"
-
-#: c-decl.c:2425
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
-msgstr "« %s » a été précédemment implicitement déclaré comme retournant un « int »"
+msgstr "« %s » a été précédemment déclaré implicitement comme retournant un « int »"
-#: c-decl.c:2450
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "« %s » a été déclaré « extern » et plus loin « static »"
-#: c-decl.c:2474
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "déclaration externe de « %s » ne concorde pas avec la globale"
-#: c-decl.c:2516
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
-msgstr "« %s » localement externe mais globalement static"
+msgstr "« %s » localement externe mais globalement statique"
-#: c-decl.c:2638
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
-msgstr "fonction « %s » a été précédemment déclarée à l'intérieur d'un bloc"
+msgstr "la fonction « %s » a été précédemment déclarée à l'intérieur d'un bloc"
-#: c-decl.c:2658 c-decl.c:2660
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "déclaration implicite de la fonction « %s »"
-#: c-decl.c:2748
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
-msgstr "étiquette %s référencée à l'extérieur de n'importe quelle fonction"
+msgstr "étiquette %s référencée à l'extérieur de toute fonction"
-#: c-decl.c:2805
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
-msgstr "déclaration de l'étiquette « %s » est double"
+msgstr "déclaration de l'étiquette « %s » en double"
-#: c-decl.c:2808
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "ceci est une déclaration précédente"
-#: c-decl.c:3320
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
-msgstr "struct/union sans nom qui définit aucune instance"
+msgstr "struct/union sans nom ne définissant aucune instance"
-#: c-decl.c:3339
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "mot clé ou nom de type inutile dans une déclaration vide"
-#: c-decl.c:3346
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "deux types spécifiés dans une déclaration vide"
-#: c-decl.c:3351 c-parse.y:725 c-parse.y:727 parse.y:742 parse.y:1827 objc-parse.y:761 objc-parse.y:763 objc-parse.y:2997
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "déclaration vide"
-#: c-decl.c:3381
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
-msgstr "ISO C89 ne supporte pas « static » ou les qualificateurs de type dans les déclarateurs de tableau de paramètres"
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "le C90 ISO ne supporte pas « static » ou les qualificateurs de type dans les déclarateurs de tableau de paramètres"
-#: c-decl.c:3383
-msgid "ISO C89 does not support `[*]' array declarators"
-msgstr "ISO C89 ne supporte pas « [*] » dans les déclarateurs de tableau"
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "le C90 ISO ne supporte pas « [*] » dans les déclarateurs de tableau"
-#: c-decl.c:3386
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
-msgstr "GCC ne supporte pas encore adéquatement « [* ]» dans les déclarateurs de tableau"
+msgstr "GCC n'implémente pas encore correctement les déclarateurs de tableau « [*] »"
-#: c-decl.c:3405
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr "static ou qualificateurs de type dans un déclarateur abstrait"
-#: c-decl.c:3479
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "« %s » est habituellement une fonction"
-#: c-decl.c:3493
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
-msgstr "typedef « %s » est initialisé"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef « %s » est initialisé (utilisez __typeof__ à la place)"
-#: c-decl.c:3500
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
-msgstr "fonction « %s » est initialisée comme une variable"
+msgstr "la fonction « %s » est initialisée comme une variable"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3507
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
-msgstr "paramètre « %s » est initialisé"
+msgstr "le paramètre « %s » est initialisé"
-#: c-decl.c:3527 c-typeck.c:4841
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
-msgstr "objet de taille variable peut ne pas être initialisé"
+msgstr "un objet de taille variable peut ne pas être initialisé"
-#: c-decl.c:3533
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
-msgstr "variable « %s » a un initialiseur mais un type incomplet"
+msgstr "la variable « %s » est initialisée alors qu'elle est de type incomplet"
-#: c-decl.c:3539
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
-msgstr "éléments du tableau « %s » ont des types incomplets"
+msgstr "les éléments du tableau « %s » ont des types incomplets"
-#: c-decl.c:3552
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
-msgstr "déclaration de « %s » est « extern » et est initialisé"
+msgstr "« %s » initialisé et déclaré « extern »"
-#: c-decl.c:3591 c-decl.c:6246 cp/decl.c:7368 cp/decl.c:13623
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, c-format
msgid "inline function `%s' given attribute noinline"
-msgstr "fonction inline « %s » a reçu l'attribut noinline"
+msgstr "la fonction inline « %s » a reçu l'attribut noinline"
-#: c-decl.c:3674
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
-msgstr "échec de l'initialiseur pour déterminer la taille de « %s »"
+msgstr "l'initialisation n'a pas pu déterminer la taille de « %s »"
-#: c-decl.c:3679
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
-msgstr "taille du tableau manquant dans « %s »"
+msgstr "taille du tableau manquante dans « %s »"
-#: c-decl.c:3695
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
-msgstr "tableau de taille zéro ou négative « %s »"
+msgstr "tableau « %s » de taille zéro ou négative"
-#: c-decl.c:3723
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
-msgstr "taille de stockage de « %s » n'est pas connue"
+msgstr "taille de stockage de « %s » inconnue"
-#: c-decl.c:3733
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
-msgstr "taille de stockage de « %s » n'est pas une constante"
+msgstr "la taille de stockage de « %s » n'est pas une constante"
-#: c-decl.c:3792
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "spécificateur asm ignorés pour la variable locale non statique « %s »"
-#: c-decl.c:3867
+#: c-decl.c:3247
#, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
-msgstr "ISO C interdit le paramètre « %s » faisant ombrage au typedef"
+msgstr "le C ISO interdit que le paramètre « %s » masque un typedef"
-#: c-decl.c:4171 cp/decl.c:10171
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "« long long long » est trop long pour GCC"
-#: c-decl.c:4176
-msgid "ISO C89 does not support `long long'"
-msgstr "ISO C89 ne supporte pas « long long »"
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "le C90 ISO ne permet pas « long long »"
-#: c-decl.c:4181 cp/decl.c:10176
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "« %s » apparaît en double"
-#: c-decl.c:4187 cp/decl.c:10200
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "« __thread » avant « extern »"
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "« __thread » avant « static »"
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "deux types de données ou plus dans la déclaration de « %s »"
-#: c-decl.c:4207 cp/decl.c:10205
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
-msgstr "« %s » a échoué pour devenir un typedef ou un type construit"
+msgstr "« %s » n'a pu devenir un typedef ou un type construit"
-#: c-decl.c:4246
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
-msgstr "type utilisé par défaut « int» dans la déclaration de « %s »"
+msgstr "dans la déclaration de « %s », utilisation de « int » par défaut pour le type"
-#: c-decl.c:4275
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
-msgstr "« long » et « short » spécifiés à la fois pour « %s »"
+msgstr "« long » et « short » spécifiés à la fois pour « %s »"
-#: c-decl.c:4279 cp/decl.c:10320
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
-msgstr "« long » ou « short » spécifié avec «char» pour « %s »"
+msgstr "« long » ou « short » spécifié avec « char » pour « %s »"
-#: c-decl.c:4286 cp/decl.c:10324
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
-msgstr "« long » ou « short » spécifié avec un type flottant pour « %s »"
+msgstr "« long » ou « short » spécifié avec un type flottant pour « %s »"
-#: c-decl.c:4289
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "la seule combinaison valide est « long double »"
-#: c-decl.c:4295
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
-msgstr "signé et non signé spécifiés à la fois pour « %s »"
+msgstr "« %s » est à la fois signé et non signé"
-#: c-decl.c:4297 cp/decl.c:10313
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
-msgstr "« long », « short », signé ou non signé est invalide pour « %s »"
+msgstr "« long », « short », « signed » ou « unsigned » invalide pour « %s »"
-#: c-decl.c:4303 cp/decl.c:10333
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
-msgstr "« long », « short », signé ou non signé utilisé incorrectement pour « %s »"
+msgstr "« long », « short », « signed » ou « unsigned » utilisé incorrectement pour « %s »"
-#: c-decl.c:4322 cp/decl.c:10354
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
-msgstr "« complex » invalide pour « %s »"
+msgstr "« complex » invalide pour « %s »"
-#: c-decl.c:4367
-msgid "ISO C89 does not support complex types"
-msgstr "ISO C89 ne supporte pas les types « complex »"
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "le C90 ISO ne permet pas les types « complex »"
-#: c-decl.c:4379
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
-msgstr "ISO C ne supporte pas les « complex » utilisé comme «double complex »"
+msgstr "le C ISO ne permet pas d'utiliser « complex » à la place de « double complex »"
-#: c-decl.c:4385 c-decl.c:4397
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
-msgstr "ISO C ne supporte pas les type « complex » d'entiers"
+msgstr "le C ISO interdit le type d'entiers complexes"
-#: c-decl.c:4412 c-decl.c:4851 cp/decl.c:10969
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "« const » apparaît en double"
-#: c-decl.c:4414 c-decl.c:4855 cp/decl.c:10973
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "« restrict » apparaît en double"
-#: c-decl.c:4416 c-decl.c:4853 cp/decl.c:10971
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
-msgstr "volatile» apparaît en double"
+msgstr "« volatile » apparaît en double"
-#: c-decl.c:4438 cp/decl.c:10509
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "multiples classes de stockage dans la déclaration de « %s »"
-#: c-decl.c:4447
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr "définition de fonction déclaré « auto »"
-#: c-decl.c:4449
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "définition de fonction déclarée « register »"
-#: c-decl.c:4451
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "définition de fonction déclarée « typedef »"
-#: c-decl.c:4464
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "définition de fonction déclarée « __thread »"
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
-msgstr "classe de stockage spécifiée pour la structure du champ « %s »"
+msgstr "classe de stockage spécifiée pour le champ de structure « %s »"
-#: c-decl.c:4468 cp/decl.c:10556
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "classe de stockage spécifiée pour le paramètre « %s »"
-#: c-decl.c:4471 cp/decl.c:10558
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "classe de stockage spécifié pour un typename"
-#: c-decl.c:4483 cp/decl.c:10572
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr "« %s » initialisé et déclaré « extern »"
-#: c-decl.c:4485 cp/decl.c:10575
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
-msgstr "« %s » est à la fois « extern » et initialiseur"
+msgstr "« %s » initialisé et marqué « extern »"
-#: c-decl.c:4489 cp/decl.c:10579
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "la déclaration hors de toute fonction de « %s » a spécifié « auto »"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "fonction imbriquée « %s » déclarée « extern »"
-#: c-decl.c:4492 cp/decl.c:10583
+#: c-decl.c:3948 cp/decl.c:11319
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "la déclaration de haut niveau de « %s » a spécifié «auto »"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "« %s » dans le champ de la fonction est implicitement déclaré auto, et déclaré « __thread »"
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4527 c-decl.c:4716
+#: c-decl.c:3987 c-decl.c:4188
msgid "static or type qualifiers in non-parameter array declarator"
-msgstr "static ou qualificateurs de type dans un déclarateur d'un tableau de non paramètres"
+msgstr "static ou qualificateurs de type dans un déclarateur de tableau n'étant pas un paramètre"
-#: c-decl.c:4571
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
-msgstr "déclaration de « %s » comme un tableau de « voids »"
+msgstr "déclaration de « %s » comme un tableau de « void »"
-#: c-decl.c:4577
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "déclaration de « %s » comme un tableau de fonctions"
-#: c-decl.c:4598
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "utilisation invalide d'une structure ayant un membre flexible"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
-msgstr "taille du tableau « %s » n'est pas de type entier"
+msgstr "la taille du tableau « %s » n'est pas de type entier"
-#: c-decl.c:4603
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
-msgstr "ISO C interdit les tableaux de taille zéro « %s »"
+msgstr "le C ISO interdit le tableau de taille zéro « %s »"
-#: c-decl.c:4610
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
-msgstr "taille du tableau « %s » est négative"
+msgstr "la taille du tableau « %s » est négative"
-#: c-decl.c:4623
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
-msgstr "ISO C89 interdit le tableau « %s » dont la taille ne peut être évaluée"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "le C90 ISO interdit le tableau « %s » dont la taille ne peut être évaluée"
-#: c-decl.c:4626
+#: c-decl.c:4089
#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
-msgstr "ISO C89 interdit le tableau de taille variable « %s »"
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "le C90 ISO interdit le tableau « %s » de taille variable"
-#: c-decl.c:4656 c-decl.c:4877 cp/decl.c:11179
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
-msgstr "taille du tableau « %s » est trop grande"
+msgstr "la taille du tableau « %s » est trop grande"
-#: c-decl.c:4673
-msgid "ISO C89 does not support flexible array members"
-msgstr "ISO C89 ne supporte pas les membres flexibles d'un tableau"
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "le C90 ISO interdit les tableaux ayant des membres flexibles"
-#: c-decl.c:4683
+#: c-decl.c:4155
msgid "array type has incomplete element type"
-msgstr "type tableau a un type d'élément incomplet"
+msgstr "les éléments du tableau sont de type incomplet"
-#: c-decl.c:4690 c-decl.c:4927
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
-msgstr "ISO C interdit les types volatile ou de constante de fonction"
+msgstr "le C ISO interdit les fonction de type volatile ou constante"
-#: c-decl.c:4736 cp/decl.c:10720
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "« %s » déclaré comme une fonction retournant une fonction"
-#: c-decl.c:4741 cp/decl.c:10725
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "« %s » déclaré comme une fonction retournant un tableau"
-#: c-decl.c:4776
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
-msgstr "ISO C interdit les type retourné d'une fonction void qualifié"
+msgstr "le C ISO interdit d'utiliser un void qualifié en valeur de retour de fonction"
-#: c-decl.c:4780
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
-msgstr "qualificateurs de type ignorés pour le type retourné d'une fonction"
+msgstr "qualificateurs de type ignorés pour le type retourné par la fonction"
-#: c-decl.c:4809 c-decl.c:4892 c-decl.c:5016 c-decl.c:5110
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
-msgstr "ISO C interdit les types de fonction qualifiées"
+msgstr "le C ISO interdit les types de fonction qualifiés"
-#: c-decl.c:4849 cp/decl.c:10965
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr "modificateur de type invalide dans la déclaration de pointeur"
-#: c-decl.c:4947 cp/decl.c:11457
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
-msgstr "variable ou champ « %s » déclaré «void »"
+msgstr "variable ou champ « %s » déclaré « void »"
-#: c-decl.c:4980
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
-msgstr "les attributs dans un paramètre déclarateur de tableau sont ignorés"
+msgstr "les attributs dans un déclarateur de tableau de paramètres sont ignorés"
-#: c-decl.c:5005
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr "modificateur invalide de type à l'intérieur d'un déclarateur de tableau"
-#: c-decl.c:5054
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "champ « %s » déclaré comme une fonction"
-#: c-decl.c:5060
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
-msgstr "champ « %s » a un type incomplet"
+msgstr "champ « %s » est de type incomplet"
-#: c-decl.c:5092 c-decl.c:5094 c-decl.c:5101
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "classe de stockage invalide pour la fonction « %s »"
-#: c-decl.c:5116
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
-msgstr "fonction « noreturn» retourne une valeur non «void »"
+msgstr "fonction marquée « noreturn » retourne une valeur n'étant pas de type « void »"
-#: c-decl.c:5131
+#: c-decl.c:4594
msgid "cannot inline function `main'"
-msgstr "ne peut rendre en ligne « main » en fonction en ligne"
+msgstr "ne peut transformer « main » en fonction en ligne"
-#: c-decl.c:5184
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
-msgstr "variable « %s » déclarée «inline »"
+msgstr "variable « %s » déclarée « inline »"
-#: c-decl.c:5257 c-decl.c:6298
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "cette cible ne permet pas le stockage en local au thread"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
-msgstr "déclaration de fonction n'est pas un prototype"
+msgstr "la déclaration de fonction n'est pas un prototype valide"
-#: c-decl.c:5263
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
-msgstr "noms de paramètres (sans types) dans la déclaration de fonction"
+msgstr "noms de paramètres (sans type) dans la déclaration de fonction"
-#: c-decl.c:5295 c-decl.c:6689
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
-msgstr "paramètre « %s » a un type incomplet"
+msgstr "le paramètre « %s » a un type incomplet"
-#: c-decl.c:5298
+#: c-decl.c:4773
msgid "parameter has incomplete type"
-msgstr "paramètre a un type incomplet"
+msgstr "le paramètre a un type incomplet"
-#: c-decl.c:5319
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
-msgstr "paramètre « %s » pointe vers un type incomplet"
+msgstr "le paramètre « %s » pointe vers un type incomplet"
-#: c-decl.c:5322
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
-msgstr "paramètre pointe vers un type incomplet"
+msgstr "le paramètre pointe vers un type incomplet"
-#: c-decl.c:5387
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
-msgstr "paramètre « %s » n'a qu'une déclaration vers l'avant"
+msgstr "le paramètre « %s » n'a qu'une déclaration anticipée"
-#: c-decl.c:5428
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
-msgstr "« void » dans la liste des paramètres doit être la liste entière"
+msgstr "si « void » est dans une liste de paramètres, toute la liste doit l'être"
-#: c-decl.c:5459
+#: c-decl.c:4934
#, c-format
msgid "`struct %s' declared inside parameter list"
-msgstr "« struct %s » déclaré à l'intérieur de la liste de paramètres"
+msgstr "« struct %s » déclarée à l'intérieur de la liste de paramètres"
-#: c-decl.c:5462
+#: c-decl.c:4937
#, c-format
msgid "`union %s' declared inside parameter list"
-msgstr "« union %s » déclaré à l'intérieur de la liste de paramètres"
+msgstr "« union %s » déclarée à l'intérieur de la liste de paramètres"
-#: c-decl.c:5465
+#: c-decl.c:4940
#, c-format
msgid "`enum %s' declared inside parameter list"
-msgstr "« enum %s » déclaré à l'intérieur de la liste de paramètres"
+msgstr "« enum %s » déclarée à l'intérieur de la liste de paramètres"
-#: c-decl.c:5472
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
-msgstr "« struct » anonyme déclaré à l'intérieur de la liste des paramètres"
+msgstr "structure anonyme déclarée à l'intérieur de la liste des paramètres"
-#: c-decl.c:5474
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
-msgstr "« union » anonyme déclaré à l'intérieur de la liste des paramètres"
+msgstr "union anonyme déclarée à l'intérieur de la liste des paramètres"
-#: c-decl.c:5476
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
-msgstr "« enum » anonyme déclaré à l'intérieur de la liste des paramètres"
+msgstr "énumération anonyme déclarée à l'intérieur de la liste des paramètres"
-#: c-decl.c:5480
+#: c-decl.c:4955
msgid "its scope is only this definition or declaration, which is probably not what you want"
-msgstr "son étendue ne vaut que pour cette définition ou déclaration, laquelle n'est probablement celle que vous désirez."
+msgstr "visible uniquement depuis cette définition ou déclaration, ce qui n'est probablement pas ce que vous désirez"
-#: c-decl.c:5559
+#: c-decl.c:5032
#, c-format
msgid "redefinition of `union %s'"
-msgstr "redéfinition de «union %s'"
+msgstr "redéfinition de « union %s »"
-#: c-decl.c:5562
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
-msgstr "redéfinition de «struct %s'"
+msgstr "redéfinition de « struct %s »"
-#: c-decl.c:5601
-msgid "unnamed fields of type other than struct or union are not allowed"
-msgstr "champs sans nom de type autre que struct ou union ne sont pas permis"
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "déclaration ne déclarant rien du tout"
-#: c-decl.c:5642 c-decl.c:5645
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr "%s défini à l'intérieur des paramètres"
-#: c-decl.c:5643 c-decl.c:5646 c-decl.c:5657
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "union"
-#: c-decl.c:5643 c-decl.c:5646
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "structure"
-#: c-decl.c:5656
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
msgstr "%s n'a pas de %s"
-#: c-decl.c:5657
+#: c-decl.c:5184
msgid "struct"
msgstr "struct"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "named members"
msgstr "membres nommés"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "members"
msgstr "membres"
-#: c-decl.c:5697
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "redéfinition imbriquée de « %s »"
-#: c-decl.c:5710
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
-msgstr "largeur du champ de bits « %s » n'est pas une constante entière"
+msgstr "la largeur du champ de bits « %s » n'est pas une constante entière"
-#: c-decl.c:5721
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
-msgstr "champ de bits « %s » a un type invalide"
+msgstr "le champ de bits « %s » a un type invalide"
-#: c-decl.c:5733
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
-msgstr "champ de bits « %s » a un type invalide en ISO C"
+msgstr "le champ de bits « %s » a un type invalide en C ISO"
-#: c-decl.c:5744
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "largeur négative du champ de bits « %s »"
-#: c-decl.c:5746
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
-msgstr "largeur de « %s » excède son type"
+msgstr "la largeur de « %s » excède son type"
-#: c-decl.c:5748
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
-msgstr "largeur zéro pour le champ de bits « %s »"
+msgstr "largeur nulle pour le champ de bits « %s »"
-#: c-decl.c:5762
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr "« %s » est plus étroit que les valeurs de son type"
-#: c-decl.c:5808
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr "membre flexible de tableau dans l'union"
-#: c-decl.c:5810
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
-msgstr "membre flexible de tableau n'est pas à la fin du struct"
+msgstr "le membre flexible de tableau n'est pas à la fin de la structure"
-#: c-decl.c:5812
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
-msgstr "membre flexible de tableau dans un autre struct vide"
+msgstr "membre flexible de tableau dans une structure vide par ailleurs"
-#: c-decl.c:5837
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "membre « %s » apparaît en double"
-#: c-decl.c:5881
+#: c-decl.c:5448
msgid "union cannot be made transparent"
-msgstr "union ne peut pas être faite de façon transparente"
+msgstr "union ne peut pas être rendu transparente"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5975
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
-msgstr "redéclaration de «enum %s'"
+msgstr "redéclaration de « enum %s »"
-#: c-decl.c:6009
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr "enum défini à l'intérieur des paramètres"
-#: c-decl.c:6042
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr "valeurs d'énumération excède les bornes du plus grand entier"
-#: c-decl.c:6151
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "valeur de l'énumérateur pour « %s » n'est pas une constante entière"
-#: c-decl.c:6164
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "débordement dans les valeurs de l'énumération"
-#: c-decl.c:6169
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
-msgstr "ISO C restreint les valeurs de l'énumérateur aux bornes d'un « int »"
+msgstr "le C ISO restreint les valeurs de l'énumérateur aux bornes d'un « int »"
-#: c-decl.c:6252
+#: c-decl.c:5834
msgid "return type is an incomplete type"
-msgstr "type retourné est d'un type incomplet"
+msgstr "le type du retour est incomplet"
-#: c-decl.c:6260
+#: c-decl.c:5842
msgid "return type defaults to `int'"
-msgstr "le défaut choisi du type retourné est « int »"
+msgstr "le type du retour est « int » par défaut"
-#: c-decl.c:6307
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
-msgstr "aucun prototype précédent pour « %s »"
+msgstr "aucun prototype anticipé pour « %s »"
-#: c-decl.c:6314
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "« %s » a été utilisé sans prototype avant sa définition"
-#: c-decl.c:6320
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
-msgstr "aucune déclaration précédente pour « %s »"
+msgstr "aucune déclaration anticipée pour « %s »"
-#: c-decl.c:6327
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "« %s » a été utilisé sans déclaration avant sa définition"
-#: c-decl.c:6351 c-decl.c:6936
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
-msgstr "type retourné de « %s » n'est pas «int »"
+msgstr "le type de retour de « %s » n'est pas « int »"
-#: c-decl.c:6367
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
-msgstr "premier argument de « %s » devrait être «int »"
+msgstr "le premier argument de « %s » devrait être « int »"
-#: c-decl.c:6376
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
-msgstr "second argument de « %s » devrait être «char ** »"
+msgstr "le second argument de « %s » devrait être « char ** »"
-#: c-decl.c:6385
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
-msgstr "troisième argument de « %s » devrait probablement être «char ** »"
+msgstr "le troisième argument de « %s » devrait probablement être « char ** »"
-#: c-decl.c:6394
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
-msgstr "« %s » prend seulement aucun OU deux arguments"
+msgstr "« %s » prend soit aucun argument soit deux arguments"
-#: c-decl.c:6397
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
-msgstr "« %s » est normalement une fonction non «static »"
+msgstr "« %s » n'est normalement pas une fonction statique"
-#: c-decl.c:6507
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
-msgstr "type de paramètres à la fois donné dans la liste et séparément"
+msgstr "types des paramètres à la fois donnés dans la liste et séparément"
-#: c-decl.c:6528
+#: c-decl.c:6098
msgid "parameter name omitted"
-msgstr "nom de paramètre a été omis"
+msgstr "nom de paramètre omis"
-#: c-decl.c:6532 c-decl.c:6634
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
-msgstr "paramètre « %s » déclaré «void »"
+msgstr "paramètre « %s » déclaré « void »"
-#: c-decl.c:6608
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "nom du paramètre manquant dans la liste des paramètres"
-#: c-decl.c:6627
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
-msgstr "multiples paramètres nommés « %s »"
+msgstr "plusieurs paramètres nommés « %s »"
-#: c-decl.c:6658 c-decl.c:6660
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
-msgstr "type de « %s » utilisé par défaut est «int »"
+msgstr "le type de « %s » est « int » par défaut"
-#: c-decl.c:6696
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "déclaration du paramètre « %s » mais pas de tel paramètre"
-#: c-decl.c:6744
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
-msgstr "nombre d'arguments ne concorde pas avec celui du prototype"
+msgstr "le nombre d'arguments ne concorde pas avec celui du prototype"
-#: c-decl.c:6774
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
-msgstr "argument promu « %s » ne concorde pas avec celui du prototype"
+msgstr "argument promu « %s » ne concorde pas avec le prototype"
-#: c-decl.c:6788
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
-msgstr "argument « %s » ne concorde pas avec celui du prototype"
+msgstr "argument « %s » ne concorde pas avec le prototype"
-#: c-decl.c:6968 cp/decl.c:14327
+#: c-decl.c:6518 cp/decl.c:15049
msgid "no return statement in function returning non-void"
-msgstr "pas de déclaration « return » dans la fonction retournant un non void"
+msgstr "« return » manquant dans une fonction devant retourner une valeur"
-#: c-decl.c:7124
+#: c-decl.c:6525
msgid "this function may return with or without a value"
-msgstr "cette fonction peut ou ne peut pas retourner une valeur"
+msgstr "cette fonction devrait finir en retournant ou non une valeur"
-#: c-decl.c:7144
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
-msgstr "taille de la valeur retournée de « %s » est %u octets"
+msgstr "la taille de la valeur retournée par « %s » est %u octets"
-#: c-decl.c:7148
+#: c-decl.c:6733
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
-msgstr "taille de la valeur retournée de « %s » est plus grande que %d octets"
+msgstr "la taille de la valeur retournée par « %s » supérieure à %d octets"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7203
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
-msgstr "déclaration initiale de la boucle « for » utilisée en dehords du mode C99"
+msgstr "déclaration initiale de la boucle « for » utilisée en dehors du mode C99"
-#: c-decl.c:7227
+#: c-decl.c:6815
#, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
-msgstr "« struct %s» déclaré dans la déclaration initiale de la boucle «for »"
+msgstr "« struct %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:7230
+#: c-decl.c:6818
#, c-format
msgid "`union %s' declared in `for' loop initial declaration"
-msgstr "« union %s» déclaré dans la déclaration initiale de la boucle «for »"
+msgstr "« union %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:7233
+#: c-decl.c:6821
#, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
-msgstr "« enum %s» déclaré dans la déclaration initiale de la boucle «for »"
+msgstr "« enum %s » déclarée dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:7241
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
-msgstr "déclaration de « %s » qui n'est pas une variable dans la déclaration initiale de «for »"
+msgstr "déclaration de « %s » (qui n'est pas une variable) dans la déclaration initiale de « for »"
-#: c-decl.c:7243
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
-msgstr "déclaration d'une variable « static» « %s » dans la déclaration initiale de la boucle «for »"
+msgstr "déclaration de la variable statique « %s » dans la déclaration initiale de la boucle « for »"
-#: c-decl.c:7245
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
-msgstr "déclaration d'une variable « extern » « %s » dans la déclaration initiale «for »"
+msgstr "déclaration de la variable externe « %s » dans la déclaration initiale « for »"
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr "l'argument de la chaîne de format n'est pas de type « string »"
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
-msgstr "arguments à être formattés ne sont pas « ... »"
+msgstr "les arguments devant être formatés ne sont pas « ... »"
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
-msgstr "Les formats de strftime ne peuvent formater les arguments"
+msgstr "Les formats de strftime ne peuvent pas formater d'argument"
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
-msgstr "chaîne de format a un nombre invalide d'opérandes"
+msgstr "la chaîne de format a un nombre invalide d'opérandes"
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr "fonction ne retourne pas un type « string »"
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr "spécificateur de format non reconnu"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
-msgstr "« %s » a un format non reconnu de type de fonction"
+msgstr "« %s » a un format de type de fonction non reconnu"
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
-msgstr "l'argument de la chaîne de format suit les arguments devant être formattés"
+msgstr "l'argument de la chaîne de format suit les arguments devant être formatés"
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr "fanion « »"
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr "le fanion « » de printf"
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
-msgstr "fanion «+»"
+msgstr "fanion « + »"
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
-msgstr "le fanion «+» de printf"
+msgstr "le fanion « + » de printf"
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
-msgstr "fanion «#»"
+msgstr "fanion « # »"
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
-msgstr "le fanion «#» de printf"
+msgstr "le fanion « # » de printf"
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr "fanion « 0 »"
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr "le fanion « 0 » de printf"
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr "fanion « - »"
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr "le fanion « - » de printf"
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr "fanion « ' »"
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr "le fanion « ' » de printf"
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr "fanion « I »"
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr "le fanion « I » de printf"
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1790
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr "largeur de champ"
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
msgstr "largeur de champ dans le format de printf"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
msgstr "précision"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
msgstr "précision dans le format de printf"
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
-msgstr "longueur du modificateur"
+msgstr "modificateur de longueur"
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
-msgstr "longueur du modificateur dans le format printf"
+msgstr "modificateur de longueur dans le format printf"
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr "suppression d'affectation"
-#: c-format.c:645
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
msgstr "options de scanf pour la suppression d'affectation"
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr "fanion « a »"
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr "le fanion « a » de scanf"
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
msgstr "largeur de champ dans le format de scanf"
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
-msgstr "longueur du modificateur dans le format de scanf"
+msgstr "modificateur de longueur dans le format de scanf"
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr "la fanion « ' » de scanf"
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr "le fanion « I » de scanf"
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr "fanion « _ »"
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr "le fanion « _ » de strftime"
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr "le fanion « - » de strftime"
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr "le fanion « 0 » de strftime"
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr "fanion « ^ »"
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr "la fanion « ^ » de strftime"
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr "le fanion « # » de strftime"
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
msgstr "largeur de champ dans le format de strftime"
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr "modificateur « E »"
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr "le modificateur « E » de strftime"
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr "modificateur « O »"
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr "le modificateur « O » de strftime"
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr "le modificateur « O »"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character"
msgstr "caractère de remplissage"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character in strfmon format"
msgstr "caractère de remplissage dans le format de strfmon"
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
-msgstr "le fanion «^» de strfmon"
+msgstr "le fanion « ^ » de strfmon"
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
-msgstr "le fanion «+» de strfmon"
+msgstr "le fanion « + » de strfmon"
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
-msgstr "fanion «(»"
+msgstr "fanion « ( »"
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
-msgstr "le fanion «(» de strfmon"
+msgstr "le fanion « ( » de strfmon"
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
-msgstr "fanion «!»"
+msgstr "fanion « ! »"
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
-msgstr "le fanion «!» de strfmon"
+msgstr "le fanion « ! » de strfmon"
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
-msgstr "le fanion «-» de strfmon"
+msgstr "le fanion « - » de strfmon"
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr "largeur de champ dans le format de strfmon"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr "précision de gauche"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr "précision de gauche dans le format de strfmon"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
msgstr "précision de droite"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr "précision de droite dans le format de strfmon"
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr "modificateur de longueur dans le format de strfmon"
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
-msgstr "fonction peut être un candidat possible pour l'attribut du format de « %s »"
+msgstr "la fonction est peut être candidate pour l'attribut de format de « %s »"
-#: c-format.c:1122 c-format.c:1143 c-format.c:2200
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
-msgstr "opérande $ de nombre manquant dans le format"
+msgstr "nombre manquant dans le format pour l'opérande $"
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
-msgstr "%s ne supporte pas le format d'opérande de nombre %%n$"
+msgstr "%s ne permet pas le format d'opérande de nombre %%n$"
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
-msgstr "opérande de nombre hors gamme dans le format"
+msgstr "opérande de nombre au delà de la limite dans le format"
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr "argument de format %d utilisé plus d'une fois dans le format %s"
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
-msgstr "argument de format %d inutilisé avant l'utilisation de l'argument %d dans le format $-style"
+msgstr "argument de format %d inutilisé avant l'utilisation de l'argument %d dans le format de style $"
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
-msgstr "format n'est pas une chaîne de mots, chaîne du format n'est pas vérifée"
+msgstr "le format n'est pas une chaîne littérale, le format n'est pas vérifé"
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
-msgstr "format n'est pas une chaîne de mots et pas d'arguments de format"
+msgstr "le format n'est pas une chaîne littérale et pas d'argument de format"
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
-msgstr "format n'est pas une chaîne de mots, types d'arguments ne sont pas vérifiés"
+msgstr "le format n'est pas une chaîne littérale, le type des arguments n'est pas vérifié"
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr "trop d'arguments pour le format"
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
-msgstr "arguments non utilisés dans le format $-style"
+msgstr "arguments inutilisés dans le format de style $"
-#: c-format.c:1365
-msgid "zero-length format string"
-msgstr "chaîne de longueur zéro dans le format"
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "chaîne de format de longueur nulle %s"
-#: c-format.c:1368
+#: c-format.c:1361
msgid "format is a wide character string"
-msgstr "format est une longue chaîne de caractères"
+msgstr "le format est chaîne de caractères longs (wide characters)"
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
msgstr "chaîne de format non terminée"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr "chaîne de format nulle"
-
-#: c-format.c:1669
+#: c-format.c:1581
msgid "embedded `\\0' in format"
-msgstr "«\\0» enchâssé dans le format"
+msgstr "« \\0 » inclu dans le format"
-#: c-format.c:1684
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
-msgstr "faux caractères « %% » qui traînent dans le format"
+msgstr "des caractères « %% » douteux traînent dans le format"
-#: c-format.c:1723 c-format.c:1960
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
msgstr "%s répété dans le format"
-#: c-format.c:1736
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
-msgstr "caractère de remplissage manquant à la fin du format strfmon"
+msgstr "caractère de remplissage manquant à la fin du format pour strfmon"
-#: c-format.c:1756 c-format.c:1874 c-format.c:2154 c-format.c:2207
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr "trop peu d'arguments dans le format"
-#: c-format.c:1816
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
msgstr "largeur zéro dans le format %s"
-#: c-format.c:1835
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr "précision de gauche vide dans le format %s"
-#: c-format.c:1889
+#: c-format.c:1801
msgid "field precision"
msgstr "champ de précision"
-#: c-format.c:1904
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr "précision vide dans le format %s"
-#: c-format.c:1944
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr "%s ne supporte pas « %s » %s comme modificateur de longueur"
-#: c-format.c:1994
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr "il manque un type pour la conversion à la fin du format"
-#: c-format.c:2005
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr "type de caractère de conversion inconnu « %c » dans le format"
-#: c-format.c:2008
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr "type de caractère de conversion inconnu 0x%x dans le format"
-#: c-format.c:2015
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
-msgstr "%s ne supporte pas le format «%%%c» %s"
+msgstr "%s ne supporte pas le format « %%%c » %s"
-#: c-format.c:2031
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
-msgstr "%s utilisé avec le format «%%%c» %s"
+msgstr "%s utilisé avec le format « %%%c » %s"
-#: c-format.c:2040
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr "%s ne supporte pas %s"
-#: c-format.c:2049
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
-msgstr "%s ne supporte pas %s avec le format «%%%c» %s "
+msgstr "%s ne supporte pas %s avec le format « %%%c » %s "
-#: c-format.c:2082
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
msgstr "%s ignoré avec %s et le format «%%%c» %s"
-#: c-format.c:2086
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
-msgstr "%s ignoré avec %s et le format %s"
+msgstr "%s ignoré avec %s dans le format %s"
-#: c-format.c:2092
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
-msgstr "utilisation de %s et de %s ensemble dans le format «%%%c» %s"
+msgstr "utilisation de %s et de %s ensemble dans le format « %%%c » %s"
-#: c-format.c:2096
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr "utilisation de %s et de %s ensemble dans le format %s"
-#: c-format.c:2115
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
-msgstr "«%%%c» laisse seulement les 2 dernies chiffres de l'année dans certaines localisation"
+msgstr "« %%%c » laisse seulement les 2 derniers chiffres de l'année avec certaines locales"
-#: c-format.c:2118
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
-msgstr "«%%%c» laisse seulement les 2 derniers chiffres de l'année"
+msgstr "« %%%c » laisse seulement les 2 derniers chiffres de l'année"
#. The end of the format string was reached.
-#: c-format.c:2134
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
-msgstr "pas de «]» de fermeture pour le format «%%[»"
+msgstr "pas de « ] » fermant pour le format « %%[ »"
-#: c-format.c:2147
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr "utilisation du modificateur de longueur « %s » avec le type de caractère « %c »"
-#: c-format.c:2168
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
msgstr "%s ne supporte par le format «%%%s%c» %s"
-#: c-format.c:2183
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr "nombre d'opérandes spécifié avec des affectations suprimées"
-#: c-format.c:2185
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
-msgstr "nombre d'opérandes spécifié pour un format n'acceptan aucun argument"
+msgstr "nombre d'opérandes spécifié pour un format n'acceptant aucun argument"
-#: c-format.c:2304
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
msgstr "écriture à travers un pointeur nul (arg %d)"
-#: c-format.c:2313
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
msgstr "lecture à l'aide d'un pointeur nul (arg %d)"
-#: c-format.c:2333
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
-msgstr "écriture dans une constante objet (arg %d)"
+msgstr "écriture dans un objet constant (arg %d)"
-#: c-format.c:2343
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr "qualificateur de type additionnel dans l'argument du format (arg %d)"
-#: c-format.c:2350
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr "l'argument de format n'est pas un pointeur (arg %d)"
-#: c-format.c:2352
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr "l'argument de format n'est pas un pointeur de pointeur (arg %d)"
-#: c-format.c:2423
+#: c-format.c:2330
msgid "pointer"
msgstr "pointeur"
-#: c-format.c:2425
+#: c-format.c:2332
msgid "different type"
msgstr "type différent"
-#: c-format.c:2446
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr "%s n'est pas de type %s (arg %d)"
-#: c-format.c:2449
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr "format %s, arg %s (arg %d)"
-#: c-lex.c:298
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG n'est pas défini"
+
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
-msgstr "en-têtes C incorrectement imbriquées du préprocesseur"
+msgstr "en-têtes C du préprocesseur incorrectement imbriqués"
-#: c-lex.c:348
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
-msgstr "#pragma ignoré %s %s"
+msgstr "#pragma %s %s ignoré"
-#: c-lex.c:350
-#, c-format
-msgid "ignoring #pragma %s"
-msgstr "#pragma ignoré %s"
-
-#: c-lex.c:400
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
-msgstr "nom-de-caractère-universel invalide '\\U%08x» invalide dans l'identificcateur"
+msgstr "nom-de-caractère-universel « \\U%08x » invalide dans l'identificcateur"
-#: c-lex.c:646
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
-msgstr "nom-de-caractère-universel invalide '\\U%04x» invalide dans l'identificcateur"
-
-#: c-lex.c:736
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "les suffixes « f » et « l » ensembles sur une constante flottante"
-
-#: c-lex.c:763
-#, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "nombre flottant excède les limites de « %s »"
+msgstr "nom-de-caractère-universel « \\U%04x » invalide dans l'identificcateur"
-#: c-lex.c:793
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
-msgstr "stray « %c » dans le programme"
+msgstr "« %c » perdu dans le programme"
-#: c-lex.c:795
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
-msgstr "stray '\\%o» dans le programme"
-
-#: c-lex.c:893
-msgid "too many decimal points in floating constant"
-msgstr "trop de points décimaux dans la constante flottante"
-
-#: c-lex.c:895
-msgid "decimal point in exponent - impossible!"
-msgstr "point décimal dans l'exposant - impossible!"
+msgstr "« \\%o » perdu dans le programme"
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:906
-msgid "underscore in number"
-msgstr "souligné présent dans le nombre"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "cette constante décimale est « unsigned » seulement en C90 ISO"
-#: c-lex.c:968
-msgid "numeric constant with no digits"
-msgstr "constante numérique sans chiffre"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "cette constante décimale serait « unsigned » en C90 ISO"
-#: c-lex.c:971
-msgid "numeric constant contains digits beyond the radix"
-msgstr "constante numérique contient des chiffres en dehors la base numérique"
-
-#: c-lex.c:982
-msgid "floating constant may not be in radix 16"
-msgstr "constante flottante peut ne pas être en base 16"
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "constante entière trop grande pour le type « %s »"
-#: c-lex.c:985
-msgid "hexadecimal floating constant has no exponent"
-msgstr "contante flottante hexadécimal n'a pas d'exposant"
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "constante en nombre flottant excédant les limites de « %s »"
-#: c-lex.c:997
-msgid "floating constant exponent has no digits"
-msgstr "exposant de la constante flottante n'a pas de chiffre"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "caractère multioctet invalide ignoré"
-#: c-lex.c:1017
-msgid "more than one 'f' suffix on floating constant"
-msgstr "plus d'un « f » en suffixe sur une constante flottante"
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "argument manquant à « -%s »"
-#: c-lex.c:1020
-msgid "traditional C rejects the 'f' suffix"
-msgstr "C traditionnel rejette le suffixe « f »"
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "aucun nom de classe spécifié avec « -%s »"
-#: c-lex.c:1027
-msgid "more than one 'l' suffix on floating constant"
-msgstr "plus d'un « l » en suffixe sur une constante flottante"
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "nom de fichier manquant après « -%s »"
-#: c-lex.c:1030
-msgid "traditional C rejects the 'l' suffix"
-msgstr "C traditionnel rejette le suffixe « l »"
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "cible manquante après « -%s »"
-#: c-lex.c:1038
-msgid "more than one 'i' or 'j' suffix on floating constant"
-msgstr "plus d'un « i » ou « j » en suffixe sur une constante flottante"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "tableau des options mal trié : %s est avant %s"
-#: c-lex.c:1040 c-lex.c:1134
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ISO C interdit les constante numérique de nombres imaginaires"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "trop de noms de fichiers. Taper %s --help pour en connaître l'usage"
-#: c-lex.c:1045
-msgid "invalid suffix on floating constant"
-msgstr "suffixe invalide pour une constante entière"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes n'est pas permis en C++"
-#. We got an exception from parse_float()
-#: c-lex.c:1062
-msgid "floating constant out of range"
-msgstr "constante flottante est hors gamme"
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "l'option « %s » n'est plus supportée"
-#: c-lex.c:1074
-msgid "floating point number exceeds range of 'double'"
-msgstr "nombre en virgule flottante excède les limites de « double »"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "l'option %s est obsolète, reportez-vous à la documentation pour les détails"
-#: c-lex.c:1103
-msgid "two 'u' suffixes on integer constant"
-msgstr "deux « u » en suffixe sur une constante entière"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions a été renommé -fexceptions (et est maintenant utilisé par défaut)"
-#: c-lex.c:1106
-msgid "traditional C rejects the 'u' suffix"
-msgstr "C traditionnel rejette le suffixe « u »"
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "nom du fichier de sortie spécifié deux fois"
-#: c-lex.c:1117
-msgid "three 'l' suffixes on integer constant"
-msgstr "trois « l » en suffixe sur une constante entière"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k ignorée sans -Wformat"
-#: c-lex.c:1119
-msgid "'lul' is not a valid integer suffix"
-msgstr "'lul» n'est pas un suffixe valide pour un entier"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args ignorée sans -Wformat"
-#: c-lex.c:1121
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr "« Ll» et «1L » ne sont pas des suffixes valides pour un entier"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length ignorée sans -Wformat"
-#: c-lex.c:1124
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ISO C89 interdit les constantes entières de type long long"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral ignorée sans -Wformat"
-#: c-lex.c:1132
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "plus d'un « i » ou « j » en suffixe sur une constante entière"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security ignorée sans -Wformat"
-#: c-lex.c:1139
-msgid "invalid suffix on integer constant"
-msgstr "suffixe invalide pour une constante entière"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute ignorée sans -Wformat"
-#: c-lex.c:1147
+#: c-opts.c:1419
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
-msgstr "constante entière trop grande pour la configuration du compilateur - tronqué à %d bits"
-
-#: c-lex.c:1237
-msgid "width of integer constant changes with -traditional"
-msgstr "largeur de la constante entière change avec -traditional"
+msgid "opening output file %s"
+msgstr "ouverture du fichier de sortie %s"
-#: c-lex.c:1239
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "constante entìère est non signée en ISO C, signé avec -traditional"
-
-#: c-lex.c:1241
-msgid "width of integer constant may change on other systems with -traditional"
-msgstr "largeur de la constante entière peut changer sur d'autres système avec -traditional"
-
-#: c-lex.c:1251
+#: c-opts.c:1474
#, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "constante entière plus grande que la valeur maximale de %s"
+msgid "opening dependency file %s"
+msgstr "ouverture du fichier de dépendances %s"
-#: c-lex.c:1254
-msgid "an unsigned long long int"
-msgstr "un entier long long non signé"
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "fermeture du fichier de dépendances %s"
-#: c-lex.c:1255
-msgid "a long long int"
-msgstr "un entier long long"
+#: c-opts.c:1487
+#, c-format
+msgid "when writing output to %s"
+msgstr "lors de l'écriture de la sortie dans %s"
-#: c-lex.c:1256
-msgid "an unsigned long int"
-msgstr "un entier long non signé"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "pour générer les dépendances, vous devez spécifier -M ou -MM"
-#: c-lex.c:1260
-msgid "decimal constant is so large that it is unsigned"
-msgstr "constante décimale est tellement grande qu'elle est non signée"
+#: c-opts.c:1715
+#, fuzzy, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "« -%s » est valide pour %s mais pas pour %s"
-#: c-lex.c:1269
-msgid "complex integer constant is too wide for 'complex int'"
-msgstr "constante complexe entière est trop grande pour le type 'complex int'"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"Options:\n"
+" -include <fichier> Inclure le contenu du <fichier> avant d'autres fichiers\n"
+" -imacros <fichier> Accepter la définition de macros dans le <fichier>\n"
+" -iprefix <chemin> Spécifier le <chemin> comme un préfixe aux prochaines deux options\n"
+" -iwithprefix <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion système\n"
+" -iwithprefixbefore <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion principal\n"
+" -isystem <rép> Ajouter le <rép>ertoire au début du chemin d'inclusion système\n"
+
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion système\n"
+" -I <rép> Ajouter le <rép>ertoire à la fin du chemin d'inclusion principal\n"
+" -I- Raffiner le contrôle du chemin d'inclusion; consulter la doc\n"
+" -nostdinc Ne pas rechercher dans les répertoires d'inclusion système\n"
+" (les rép spécifiés avec -isystem seront encore utilisés)\n"
+" -nostdinc++ Ne pas rechercher dans les répertoires d'inclusion système pour C++\n"
+" -o <fichier> Produire la sortie dans le <fichier>\n"
+
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs Permettre les trigraphes C ISO\n"
+" -std=<standard> Spécifier le <standard> de conformité à utiliser; soit:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhiber les messages d'avertissement\n"
+" -W[no-]trigraphs Avertir [ou non] si des trigraphes sont rencontrés\n"
+" -W[no-]comment{s} Avertir [ou non] si un commentaire débute à l'intérieur \n"
+" d'un autre\n"
+
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Avertir [ou non] à propos des fonctionnalités absentes\n"
+" en C traditionnel\n"
+" -W[no-]undef Avertir [ou non] à propos des macros utilisées dans des\n"
+" #if sans être définies\n"
+" -W[no-]import Avertir [ou non] de l'utilisation de la directive #import\n"
-#: c-lex.c:1289
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "constante entière est plus grande que la valeur maximale pour ce type"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error Changer [ou non] les avertissements en erreurs\n"
+" -W[no-]system-headers Supprimer [ou non] les avertissements à propos des \n"
+" en-têtes système\n"
+" -W[no-]all Générer [ou non] la plupart des avertissements du\n"
+" préprocesseur\n"
-#: c-lex.c:1293
-#, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "espace blanc manquant après le nombre '%.*s'"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M Générer les dépendances pour make\n"
+" -MM Comme -M, en ignorant les fichiers d'en-têtes système\n"
+" -MD Générer les dépendances pour make et compiler\n"
+" -MMD Comme -MD, en ignorant les fichiers d'en-têtes système\n"
+" -MF <fichier> Écrire les dépendances dans le <fichier>\n"
+" -MG Traiter les en-têtes manquants comme des fichiers générés\n"
+
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Générer des cibles factices pour tous les en-têtes\n"
+" -MQ <target> Ajouter une cible protégée pour MAKE\n"
+" -MT <target> Ajouter une cible non protégée\n"
-#: c-lex.c:1329 cpplex.c:1873
-msgid "ignoring invalid multibyte character"
-msgstr "caractère multioctet invalide ignoré"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<macro> Définir une <macro> avec la chaîne « 1 » pour valeur\n"
+" -D<macro>=<valeur> Définir une <macro> de <valeur>\n"
+" -A<question>=(<réponse>) Créer une assertion <question>=<réponse>\n"
+" -A-<question>=(<réponse>) Dissocier la <réponse> à la <question>\n"
+" -U<macro> Oublier la définition de la <macro> \n"
+" -v Afficher le numéro de version\n"
+
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Afficher le nom des fichiers en-tête tel qu'utilisés\n"
+" -C Ne pas mettre de côté les commantaires\n"
+" -dM Afficher la liste des définitions de macro actives à la fin\n"
+" -dD Préserver les définitions de macros dans la sortie\n"
+" -dN Comme -dD, mais seuls les noms sont préservés\n"
+" -dI Inclure la directive #include dans la sortie\n"
+
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Considérer [ou non] que le fichier d'entrée est \n"
+" déjà pré-traité\n"
+" -ftabstop=<nombre> Largeur des tabulations pour indiquer la colonne\n"
+" -P Ne pas générer des directives #line\n"
+" -remap Refaire la table des noms de fichiers lors de\n"
+" l'inclusion de fichiers\n"
+" --help Afficher cet l'aide-mémoire\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 parse.y:51 objc-parse.y:57
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
-msgstr "erreur de syntaxes"
+msgstr "erreur de syntaxe"
-#: /usr/share/bison/bison.simple:176 /usr/share/bison.simple:112
+# FIXME
+#: /usr/share/bison/bison.simple:179
msgid "syntax error: cannot back up"
-msgstr "erreur de syntaxe: ne reculer en arrière"
+msgstr "erreur de syntaxe : impossible de reculer"
-#: c-parse.y:288 objc-parse.y:310
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
-msgstr "ISO C interdit un fichier source vide"
+msgstr "le C ISO interdit un fichier source vide"
-#: c-parse.y:321 c-typeck.c:6895 objc-parse.y:343
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
-msgstr "argument de « asm » n'est pas une chaîne de constante"
+msgstr "l'argument de « asm » n'est pas une chaîne de constante"
-#: c-parse.y:329 objc-parse.y:351
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
-msgstr "ISO C interdit la définition de données sans type ou classe de stockage"
+msgstr "le C ISO interdit la définition de données sans type ni classe de stockage"
-#: c-parse.y:331 objc-parse.y:353
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
-msgstr "définition de données n'a pas de type ou de classe de stockage"
+msgstr "la définition de données n'a pas de type ni de classe de stockage"
-#: c-parse.y:344 objc-parse.y:366
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
-msgstr "ISO C ne permet pas de «;» additionnel en dehors d'une fonction"
+msgstr "le C ISO ne permet pas de « ; » additionnel en dehors d'une fonction"
-#: c-parse.y:404 cppexp.c:693
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
-msgstr "C traditionnel rejette l'opérateur unaire +"
+msgstr "le C traditionnel rejette le plus unaire"
-#: c-parse.y:466 objc-parse.y:488
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "« sizeof » appliqué à un champ de bits"
-#: c-parse.y:546 objc-parse.y:568
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
-msgstr "ISO C interdit l'omission du terme milieu de l'expression ?:"
+msgstr "le C ISO interdit l'omission du terme central de l'expression ?:"
-#: c-parse.y:593 objc-parse.y:615
+# FIXME
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
-msgstr "ISO C89 interdit les mots composés"
+msgstr "le C89 ISO interdit les mots composés"
-#: c-parse.y:607 objc-parse.y:629
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
-msgstr "ISO C interdit les groupes d'accolades à l'intérieur d'expressions"
+msgstr "le C ISO interdit les groupes d'accolades à l'intérieur d'expressions"
-#: c-parse.y:638 objc-parse.y:660
+#: c-parse.y:677 objc-parse.y:699
msgid "first argument to __builtin_choose_expr not a constant"
-msgstr "premier argument de « __builtin_choose_expr » n'est pas une constante"
+msgstr "le premier argument de « __builtin_choose_expr » n'est pas une constante"
-#: c-parse.y:681
-msgid "traditional C rejects string concatenation"
-msgstr "C traditionel rejette la concaténation de chaînes"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "le C traditionel rejette les définitions de fonction au style C ISO"
-#: c-parse.y:696 objc-parse.y:732
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C ne permet pas l'usage de « varargs.h »"
-
-#: c-parse.y:957 c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:996 c-parse.y:1002 c-parse.y:1008 c-parse.y:1014 c-parse.y:1047 c-parse.y:1053 c-parse.y:1059 c-parse.y:1065 c-parse.y:1110 c-parse.y:1116 c-parse.y:1122 c-parse.y:1128 parse.y:1907 parse.y:1914 parse.y:1949 objc-parse.y:993 objc-parse.y:999 objc-parse.y:1005 objc-parse.y:1011 objc-parse.y:1032 objc-parse.y:1038 objc-parse.y:1044 objc-parse.y:1050 objc-parse.y:1083 objc-parse.y:1089 objc-parse.y:1095 objc-parse.y:1101 objc-parse.y:1146 objc-parse.y:1152 objc-parse.y:1158 objc-parse.y:1164
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "« %s » n'est pas au début de la déclaration"
-#: c-parse.y:1410 objc-parse.y:1455
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
-msgstr "ISO C interdit les accolades vides d'initialiseurs"
+msgstr "le C ISO interdit d'initialiser avec des accolades vides"
-#: c-parse.y:1424 objc-parse.y:1469
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
-msgstr "ISO C89 interdit la spécification d'objets à initialiser"
+msgstr "le C89 ISO interdit de spécifier des sous-objets à initialiser"
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
-msgstr "utilisation obsolète de l'initialisateur désigné sans «=»"
+msgstr "utilisation obsolète d'une initialisation désignée sans « = »"
-#: c-parse.y:1431 objc-parse.y:1476
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
-msgstr "utilisation obsolète d'un initialiseur désigné avec «:»"
+msgstr "utilisation obsolète d'une initialisation désignée avec « : »"
-#: c-parse.y:1460
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
-msgstr "ISO C interdit de spécifier les bornes des éléments à initaliser"
+msgstr "le C ISO interdit de spécifier les bornes des éléments à initaliser"
-#: c-parse.y:1468 c-parse.y:1498 objc-parse.y:1507 objc-parse.y:1537
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
-msgstr "ISO C interdit les fonctions imbriquées"
+msgstr "le C ISO interdit les fonctions imbriquées"
-#: c-parse.y:1672 objc-parse.y:1713
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
-msgstr "ISO C interdit les références avant vers un type « enum »"
+msgstr "le C ISO interdit les références anticipée vers un type « enum »"
-#: c-parse.y:1684 parse.y:2364 objc-parse.y:1725
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "virgule à la fin de liste d'énumerateurs"
-#: c-parse.y:1692 objc-parse.y:1733
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
-msgstr "pas de point virgule à la fin du struct ou de l'union"
+msgstr "pas de point virgule à la fin de la structure ou de l'union"
-#: c-parse.y:1701 objc-parse.y:1742 objc-parse.y:2819
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
-msgstr "point virgule superflu dans le struct ou l'union spécifié"
+msgstr "point virgule superflu dans la structure ou dans l'union"
-#: c-parse.y:1714 objc-parse.y:1769
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
-msgstr "ISO C ne supporte pas les structs/unions sans nom"
+msgstr "le C ISO ne permet pas les structures et unions sans nom"
-#: c-parse.y:1723 objc-parse.y:1778
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
-msgstr "ISO C interdit la déclaration de membre sans aucun membre"
-
-#: c-parse.y:1872 c-parse.y:1876 c-parse.y:1880 objc-parse.y:1927 objc-parse.y:1931 objc-parse.y:1935
-msgid "storage class specifier in array declarator"
-msgstr "spécificateur de classe de stockage dans le déclarateur de tableau"
+msgstr "le C ISO interdit les déclarations de membre sans aucun membre"
-#: c-parse.y:1895 objc-parse.y:1950
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
-msgstr "utilisation déprécié d'étiquette à la fin de la déclaration composée"
+msgstr "utilisation obsolète d'étiquette à la fin d'une déclaration composée"
-#: c-parse.y:1912 objc-parse.y:1967
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
-msgstr "ISO C89 interdit les déclarations mélangés et de code"
+msgstr "le C89 ISO interdit les déclarations mélangés au code"
-#: c-parse.y:1986 objc-parse.y:2045
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
-msgstr "ISO C interdit la déclaration d'étiquette"
+msgstr "le C ISO interdit la déclaration d'étiquette"
-#: c-parse.y:2035 parse.y:1607 objc-parse.y:2094
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
-msgstr "groupe d'accolades à l'intérieur d'expression permis seulement à l'intérieur d'une fonction"
+msgstr "groupe entre accolades à l'intérieur d'expression permis seulement à l'intérieur d'une fonction"
-#: c-parse.y:2161 objc-parse.y:2220
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
-msgstr "corps vide de la déclaration du else"
+msgstr "le corps du else est vide"
-#: c-parse.y:2281 objc-parse.y:2340
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
-msgstr "ISO C interdit « goto *expr; »"
+msgstr "le C ISO interdit « goto *expr; »"
-#: c-parse.y:2379 objc-parse.y:2438
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
-msgstr "ISO C interdit la déclaration de paramètres vers l'avant"
+msgstr "le C ISO interdit la déclaration anticipée de paramètres"
#. Gcc used to allow this as an extension. However, it does
#. not work for all targets, and thus has been disabled.
@@ -2327,170 +2627,177 @@ msgstr "ISO C interdit la déclaration de paramètres vers l'avant"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2405 objc-parse.y:2464
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
-msgstr "ISO C requiert un argument nommé devant « ... »"
+msgstr "le C ISO requiert un argument nommé devant « ... »"
-#: c-parse.y:2500 objc-parse.y:2559
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "« ... » dans une liste d'identificateurs de style ancien"
-#: /usr/share/bison/bison.simple:821
+#: /usr/share/bison/bison.simple:795
msgid "parse error; also virtual memory exhausted"
msgstr "erreur d'analyse syntaxique; de plus la mémoire virtuelle est épuisée"
-#: /usr/share/bison/bison.simple:825 cp/spew.c:343 /usr/share/bison.simple:654
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "erreur d'analyse syntaxique"
-#: /usr/share/bison/bison.simple:950 /usr/share/bison.simple:367
+#: /usr/share/bison/bison.simple:924
msgid "parser stack overflow"
msgstr "débordement de la pile de l'analyseur syntaxique"
-#: c-parse.y:2824 cp/spew.c:1477 objc-parse.y:3511
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s à la fin de l'entrée"
-#: c-parse.y:2830 cp/spew.c:1483 objc-parse.y:3517
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%s avant %s« %c »"
-#: c-parse.y:2832 cp/spew.c:1485 objc-parse.y:3519
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
msgstr "%s avant %s'\\x%x'"
-#: c-parse.y:2836 cp/spew.c:1489 objc-parse.y:3523
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
-msgstr "%s avant la constante chaîne"
+msgstr "%s avant une chaîne constante"
-#: c-parse.y:2838 cp/spew.c:1491 objc-parse.y:3525
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
-msgstr "%s avant la constante numérique"
+msgstr "%s avant une constante numérique"
-#: c-parse.y:2840 objc-parse.y:3527
+#: c-parse.y:2854 objc-parse.y:3553
#, c-format
msgid "%s before \"%s\""
msgstr "%s avant « %s »"
-#: c-parse.y:2842 objc-parse.y:3529
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
-msgstr "%s avant le jeton « %s »"
+msgstr "%s avant un élément lexical « %s »"
-#: c-parse.y:2978 objc-parse.y:3708
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "le C traditionel rejette la concaténation de chaînes"
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
-msgstr "erreur de syntaxe au jeton « %s »"
+msgstr "erreur de syntaxe à l'élément lexical « %s »"
-#: c-parse.y:3008 cp/lex.c:906 objc-parse.y:3738
-msgid "YYDEBUG not defined"
-msgstr "YYDEBUG n'est pas défini"
-
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
-msgstr "#pragma pack (pop) rencontré sans #pragma pack (push, <n>) concordant"
+msgstr "#pragma pack (pop) rencontré sans #pragma pack (push, <n>) correspondant"
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
-msgstr "#pragma pack(pop, %s) rencontré sans #pragma pack(push, %s, <n>) concordant"
+msgstr "#pragma pack(pop, %s) rencontré sans #pragma pack(push, %s, <n>) correspondant"
-#: c-pragma.c:162
+#: c-pragma.c:145
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
-msgstr "#pragma pack(push[, id], <n>) n'est pas supporté sur cette cible"
+msgstr "#pragma pack(push[, id], <n>) n'est pas permis sur cette cible"
-#: c-pragma.c:164
+#: c-pragma.c:147
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
-msgstr "#pragma pack(pop[, id], <n>) n'est pas supporté sur cette cible"
+msgstr "#pragma pack(pop[, id], <n>) n'est pas permis sur cette cible"
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
-msgstr "«(» manquante après «#pragma pack» - ignoré"
+msgstr "« ( » manquante après « #pragma pack » - ignoré"
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
msgid "malformed '#pragma pack' - ignored"
-msgstr "«#pragma pack» mal composé - ignoré"
+msgstr "« #pragma pack » mal composée - ignoré"
-#: c-pragma.c:202
+#: c-pragma.c:185
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
-msgstr "«#pragma pack(push[, id], <n>)» mal composé - ignoré"
+msgstr "« #pragma pack(push[, id], <n>) » mal composée - ignoré"
-#: c-pragma.c:204
+#: c-pragma.c:187
msgid "malformed '#pragma pack(pop[, id])' - ignored"
-msgstr "«#pragma pack(pop[, id])» mal composé, ignoré"
+msgstr "« #pragma pack(pop[, id]) » mal composée, ignoré"
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
-msgstr "« %s » action inconnue pour «#pragma pack» - ignoré"
+msgstr "action « %s » inconnue pour « #pragma pack » - ignoré"
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
-msgstr "rebut à la fin de «#pragma pack»"
+msgstr "rebut à la fin de « #pragma pack »"
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
-msgstr "l'alignement doit être une puissance faible de 2, pas %d"
+msgstr "l'alignement doit être une petite puissance de 2, pas %d"
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "application de la #pragma weak « %s » après la première utilisation conduit à un comportement non spécifié"
-#: c-pragma.c:329 c-pragma.c:334
+#: c-pragma.c:328 c-pragma.c:333
msgid "malformed #pragma weak, ignored"
-msgstr "#pragma weak mal composé, ignoré"
+msgstr "#pragma weak mal composée, ignoré"
-#: c-pragma.c:338
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr "rebut à la fin de #pragma weak"
-#: c-pragma.c:369 c-pragma.c:374
+#: c-pragma.c:372 c-pragma.c:377
msgid "malformed #pragma redefine_extname, ignored"
-msgstr "#pragma redefine_extname mal composé, ignoré"
+msgstr "#pragma redefine_extname mal composée, ignoré"
-#: c-pragma.c:379
+#: c-pragma.c:382
msgid "junk at end of #pragma redefine_extname"
msgstr "rebut à la fin de #pragma redefine_extname"
-#: c-pragma.c:386 c-pragma.c:461
+#: c-pragma.c:389 c-pragma.c:470
msgid "#pragma redefine_extname conflicts with declaration"
msgstr "#pragma redefine_extname en conflit avec la déclaration"
-#: c-pragma.c:410
+#: c-pragma.c:420
msgid "malformed #pragma extern_prefix, ignored"
-msgstr "#pragma extern_prefix mal composé, ignoré"
+msgstr "#pragma extern_prefix mal composée, ignoré"
-#: c-pragma.c:415
+#: c-pragma.c:425
msgid "junk at end of #pragma extern_prefix"
msgstr "rebut à la fin de #pragma extern_prefix"
-#: c-pragma.c:447
-msgid "asm declaration conficts with previous rename"
-msgstr "déclaration asm en conflit avec le changement de nom précédent"
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "déclaration asm en conflit avec le précédent changement de nom"
-#: c-semantics.c:563
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
-msgstr "déclaration de « break» n'est pas à l'intérieur d'une boucle ou d'un «switch »"
+msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »"
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
-msgstr "déclaration de « continue » n'est pas à l'intérieur d'une boucle"
+msgstr "mot-clé « continue » à l'extérieur de toute boucle"
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
-msgstr "destructeur requis pour «%#D»'"
+msgstr "destructeur requis pour « %#D »"
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr "où les étiquettes de « case » apparaissent ici"
-#: c-semantics.c:680
+# FIXME
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
-msgstr "(les actions enfermées du case précédent de la déclaration requiert des destructeurs dans leur propre champ.)"
+msgstr "(les actions dans les « case » précédents requierent des destructeurs dans leur propre champ.)"
-#: c-semantics.c:723 c-typeck.c:6923 cp/semantics.c:889
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr "%s qualificateur ignoré avec asm"
@@ -2500,22 +2807,22 @@ msgstr "%s qualificateur ignoré avec asm"
msgid "`%s' has an incomplete type"
msgstr "« %s » a un type incomplet"
-#: c-typeck.c:145 cp/call.c:2621
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
-msgstr "utilisation de l'expression voir invalide"
+msgstr "utilisation invalide d'expression void"
#: c-typeck.c:153
msgid "invalid use of flexible array member"
-msgstr "utilisation invalide d'un membre de tableau flexible"
+msgstr "utilisation invalide d'un membre flexible de tableau"
-#: c-typeck.c:159 cp/typeck2.c:227
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
-msgstr "utilisation invalide d'un tableau avec bornes non spécifiées"
+msgstr "utilisation invalide d'un tableau sans borne spécifiée"
#: c-typeck.c:167
#, c-format
msgid "invalid use of undefined type `%s %s'"
-msgstr "utilisation invalide d'un type indéfini «%s %s»"
+msgstr "utilisation invalide d'un type indéfini « %s %s »"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
#: c-typeck.c:171
@@ -2523,1057 +2830,1187 @@ msgstr "utilisation invalide d'un type indéfini «%s %s»"
msgid "invalid use of incomplete typedef `%s'"
msgstr "utilisation invalide d'un typedef incomplet « %s »"
-#: c-typeck.c:402 c-typeck.c:416
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
-msgstr "types de fonction ne sont pas vraiment compatibles en ISO C"
+msgstr "types de fonction pas vraiment compatibles en C ISO"
-#: c-typeck.c:576
+#: c-typeck.c:603
msgid "types are not quite compatible"
-msgstr "types ne sont pas très compatibles"
-
-#: c-typeck.c:729
-msgid "sizeof applied to a function type"
-msgstr "sizeof appliqué sur un type de fonction"
-
-#: c-typeck.c:735
-msgid "sizeof applied to a void type"
-msgstr "sizeof appliqué sur un type void"
+msgstr "les types ne sont pas vraiment compatibles"
-#: c-typeck.c:742
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof appliqué sur un type incomplet"
-
-#: c-typeck.c:795 c-typeck.c:2704
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
-msgstr "arithmétique sur un pointeur appliqué sur un type incomplet"
+msgstr "arithmétique sur un pointeur vers un type incomplet"
-#: c-typeck.c:1183
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s n'a pas de membre nommé « %s »"
-#: c-typeck.c:1216
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
-msgstr "requête pour le membre « %s » dans quelque chose qui n'est pas une structure ou un union"
+msgstr "requête du membre « %s » dans quelque chose n'étant ni une structure ni une union"
-#: c-typeck.c:1248
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
-msgstr "déréférence d'un pointeur en un type incomplet"
+msgstr "déréférencement d'un pointeur de type incomplet"
-#: c-typeck.c:1252
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
-msgstr "déréférence d'un pointeur « void * »"
+msgstr "déréférencement d'un pointeur « void * »"
-#: c-typeck.c:1269 cp/typeck.c:2347
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "type d'argument invalide pour « %s »"
-#: c-typeck.c:1288 cp/typeck.c:2373
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
-msgstr "souscript manquant dans la référence du tableau"
+msgstr "indice manquant dans la référence du tableau"
-#: c-typeck.c:1309 cp/typeck.c:2415
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
-msgstr "souscript de tableau a un type « char »"
+msgstr "l'indice du tableau est de type « char »"
-#: c-typeck.c:1317 c-typeck.c:1406 cp/typeck.c:2422 cp/typeck.c:2501
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
-msgstr "souscript de tableau n'est pas un entier"
+msgstr "l'indice du tableau n'est pas un entier"
-#: c-typeck.c:1350
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
-msgstr "ISO C interdit le souscriptage de type « register » de tableau"
+msgstr "le C ISO interdit d'indicer des tableaux marqués « register »"
-#: c-typeck.c:1352
-msgid "ISO C89 forbids subscripting non-lvalue array"
-msgstr "ISO C89 interdit le souscriptage de tableau non lvalue"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "le C90 ISO interdit d'indicer de tableau n'étant pas membre gauche"
-#: c-typeck.c:1385
+#: c-typeck.c:1341
msgid "subscript has type `char'"
-msgstr "souscript a un type « char »"
+msgstr "indice de type « char »"
-#: c-typeck.c:1401 cp/typeck.c:2496
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
-msgstr "valeur sourcripté n'est ni un tableau ni un pointeur"
+msgstr "la valeur indicée n'est ni un tableau ni un pointeur"
-#: c-typeck.c:1455
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
-msgstr "« %s » non déclaré ici (n'est pas dans une fonction)"
+msgstr "« %s » non déclaré ici (hors de toute fonction)"
-#: c-typeck.c:1462
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "« %s » non déclaré (première utilisation dans cette fonction)"
-#: c-typeck.c:1467
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(Chaque identificateur non déclaré est rapporté une seule fois"
-#: c-typeck.c:1468
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "pour chaque fonction dans laquelle il apparaît.)"
-#: c-typeck.c:1485
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
-msgstr "la déclaration locale de « %s » cache l'instance d'une variable"
+msgstr "la déclaration locale de « %s » masque l'instance d'une variable"
-#: c-typeck.c:1550
+#: c-typeck.c:1518
msgid "called object is not a function"
-msgstr "objet appelé n'est pas une fonction"
+msgstr "l'objet appelé n'est pas une fonction"
-#: c-typeck.c:1637 cp/typeck.c:3133
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "trop d'arguments pour la fonction"
-#: c-typeck.c:1658
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
-msgstr "type de paramètre formel %d est incomplet"
+msgstr "le type du paramètre formel %d est incomplet"
-#: c-typeck.c:1671
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr "%s est entier plutôt que flottant en raison du prototype"
-#: c-typeck.c:1674
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr "%s est entier plutôt que complexe en raison du prototype"
-#: c-typeck.c:1677
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr "%s est complexe plutôt que flottant en raison du prototype"
-#: c-typeck.c:1680
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr "%s est flottant plutôt qu'entier en raison du prototype"
-#: c-typeck.c:1683
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr "%s est complexe plutôt qu'entier en raison du prototype"
-#: c-typeck.c:1686
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr "%s est flottant plutôt que complexe en raison du prototype"
-#: c-typeck.c:1696
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
-msgstr "%s est « float» plutôt que «double » en raison du prototype"
+msgstr "%s est « float » plutôt que « double » en raison du prototype"
-#: c-typeck.c:1714
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr "%s a une largeur différente en raison du prototype"
-#: c-typeck.c:1748
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "%s est non signé en raison du prototype"
-#: c-typeck.c:1750
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "%s est signé en raison du prototype"
-#: c-typeck.c:1784 cp/typeck.c:3241
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "trop peu d'arguments pour la fonction"
-#: c-typeck.c:1826
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "parenthèses suggérées autour de + ou - à l'intérieur du décalage"
-#: c-typeck.c:1833
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "parenthèses suggérées autour de && à l'intérieur de ||"
-#: c-typeck.c:1842
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
-msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande |"
+msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de |"
-#: c-typeck.c:1845
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
-msgstr "parenthèses suggérées autour de la comparaison dans l'opérande |"
+msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de |"
-#: c-typeck.c:1854
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
-msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande ^"
+msgstr "parenthèses suggérées autour de l'arithmétique dans l'opérande de ^"
-#: c-typeck.c:1857
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
-msgstr "parenthèses suggérées autour de la comparaison dans l'opérande ^"
+msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de ^"
-#: c-typeck.c:1864
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
-msgstr "parenthèses suggérées autour de + ou - dans l'opérande &"
+msgstr "parenthèses suggérées autour de + ou - dans l'opérande de &"
-#: c-typeck.c:1867
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
-msgstr "parenthèses suggérées autour de la comparaison dans l'opérande &"
+msgstr "parenthèses suggérées autour de la comparaison dans l'opérande de &"
-#: c-typeck.c:1874
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
-msgstr "comparaisons comme X<=Y<=Z n'ont pas de signification mathématique"
+msgstr "les comparaisons telles que X<=Y<=Z n'ont pas de signification mathématique"
-#: c-typeck.c:2034 c-typeck.c:2067
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
msgstr "division par zéro"
-#: c-typeck.c:2112 cp/typeck.c:3502
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
-msgstr "compteur de décalage à droite est négatif"
+msgstr "le compteur de décalage vers la droite est négatif"
-#: c-typeck.c:2119 cp/typeck.c:3508
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
-msgstr "compteur de décalage à droite >= à la largeur du type"
+msgstr "compteur de décalage vers la droite >= à la largeur du type"
-#: c-typeck.c:2144 cp/typeck.c:3527
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
-msgstr "compteur de décalage à gauche est négatif"
+msgstr "le compteur de décalage vers la gauche est négatif"
-#: c-typeck.c:2147 cp/typeck.c:3529
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
-msgstr "compteur de décalage à gauche >= à la largeur du type"
+msgstr "compteur de décalage vers la gauche >= à la largeur du type"
-#: c-typeck.c:2172
+#: c-typeck.c:2133
msgid "shift count is negative"
-msgstr "compteur de décalage est négatif"
+msgstr "le compteur de décalage est négatif"
-#: c-typeck.c:2174
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "compteur de décalage >= à la largeur du type"
-#: c-typeck.c:2195 cp/typeck.c:3564
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
-msgstr "comparaison d'un nombre flottant à l'aide de == ou != n'est pas sûre"
+msgstr "comparer des nombres flottants à l'aide de == ou != n'est pas sûr"
-#: c-typeck.c:2219 c-typeck.c:2225
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
-msgstr "ISO C interdit la comparaison de « void * » avec un pointeur de fonction pointer"
+msgstr "le C ISO interdit la comparaison de « void * » avec un pointeur de fonction"
-#: c-typeck.c:2228 c-typeck.c:2270 c-typeck.c:2298
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
-msgstr "comparaison entre des types distincs de pointeur manque de transtypage"
+msgstr "il manque un transtypage pour comparer des types distincts de pointeur"
-#: c-typeck.c:2243 c-typeck.c:2249 c-typeck.c:2319 c-typeck.c:2325
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
msgstr "comparaison entre un pointeur et un entier"
-#: c-typeck.c:2265 c-typeck.c:2293
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
-msgstr "ISO C interdit les comparaisons ordonnées de pointeurs à des fonctions"
+msgstr "le C ISO interdit les comparaisons ordonnées de pointeurs vers des fonctions"
-#: c-typeck.c:2290
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
msgstr "comparaison de pointeurs complet et incomplet"
-#: c-typeck.c:2306 c-typeck.c:2313
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
-msgstr "comparaison ordonné de pointeur avec un entier zéro"
+msgstr "comparaison ordonnée de pointeur avec le zéro entier"
-#: c-typeck.c:2339 cp/typeck.c:3697
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
-msgstr "comparaison non ordonné sur un argument qui n'est pas en virgule flottante"
+msgstr "comparaison non ordonnée sur un argument n'étant pas en virgule flottante"
-#: c-typeck.c:2543
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
-msgstr "comparaison entre un signé et un non signé"
+msgstr "comparaison entre élément signé et élément non signé"
-#: c-typeck.c:2589 cp/typeck.c:3943
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
-msgstr "comparaison d'un non signé promu avec une constante"
+msgstr "comparaison entre élément promu ~unsigned et une constante"
-#: c-typeck.c:2597 cp/typeck.c:3951
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
-msgstr "comparaison d'un non signé promu avec un non signé"
+msgstr "comparaison entre élément promu ~unsigned et un élément non signé"
-#: c-typeck.c:2656
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
msgstr "pointeur de type « void * » utilisé dans une soustraction"
-#: c-typeck.c:2658
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
msgstr "pointeur vers un fonction utilisé dans une soustraction"
-#: c-typeck.c:2755
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
-msgstr "type d'argument erroné pour l'unaire +"
+msgstr "type d'argument erroné pour le plus unaire"
-#: c-typeck.c:2766
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
-msgstr "type d'argument erroné pour l'unaire -"
+msgstr "type d'argument erroné pour le moins unaire"
-#: c-typeck.c:2778
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
-msgstr "ISO C ne supporte pas «~» pour une conjugaison complexe"
+msgstr "le C ISO ne permet pas d'utiliser « ~ » pour le complexe conjugué"
-#: c-typeck.c:2784
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "type d'argument erroné pour un complément de bit"
-#: c-typeck.c:2795
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "type d'argument erroné pour abs"
-#: c-typeck.c:2807
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "type d'argument erroné pour la conjugaison"
-#: c-typeck.c:2821
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
-msgstr "type d'argument erroné pour l'unaire point d'exclamation"
+msgstr "type d'argument erroné pour le point d'exclamation unaire"
-#: c-typeck.c:2864
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
-msgstr "ISO C ne supporte «++» et «--» sur les types complexes"
+msgstr "le C ISO ne permet pas «++» ni «--» sur les types complexes"
-#: c-typeck.c:2879 c-typeck.c:2911
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to increment"
msgstr "type d'argument erroné pour un incrément"
-#: c-typeck.c:2881 c-typeck.c:2913
+#: c-typeck.c:2869 c-typeck.c:2901
msgid "wrong type argument to decrement"
msgstr "type d'argument erroné pour un décrément"
-#: c-typeck.c:2902
+#: c-typeck.c:2890
msgid "increment of pointer to unknown structure"
-msgstr "incérment d'un pointeur vers une structure inconnue"
+msgstr "incrément d'un pointeur vers une structure inconnue"
-#: c-typeck.c:2904
+#: c-typeck.c:2892
msgid "decrement of pointer to unknown structure"
msgstr "décrément d'un pointeur vers une structure inconnue"
-#: c-typeck.c:3041
+# FIXME
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
-msgstr "ISO C interdit l'adresse d'une expression transtypée"
+msgstr "le C ISO interdit l'adresse d'une expression transtypée"
-#: c-typeck.c:3051
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
-msgstr "lvalue invalide dans l'unaire «&»"
+msgstr "membre gauche invalide pour le « & » unaire"
-#: c-typeck.c:3083
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
-msgstr "tentative de prise d'adresse du membre « %s » d'une structure de champ de bits"
+msgstr "tentative pour prendre l'adresse du membre « %s » d'une structure de champ de bits"
-#: c-typeck.c:3192 c-typeck.c:4618 c-typeck.c:4634 c-typeck.c:4650 final.c:2981 final.c:2983 gcc.c:4462 rtl-error.c:121 tradcif.y:532 tradcpp.c:4134 config/cris/cris.c:515 cp/typeck.c:4650 java/expr.c:386 java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3253
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
-msgstr "ISO C interdit l'utilisation d'expressions conditionnelles comme lvalue"
+msgstr "le C ISO interdit l'utilisation d'expressions conditionnelles comme membre gauche"
-#: c-typeck.c:3256
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
-msgstr "ISO C interdit l'utilisation d'expressions composées comme lvalue"
+msgstr "le C ISO interdit l'utilisation d'expressions composées comme membre gauche"
-#: c-typeck.c:3259
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
-msgstr "ISO C interdit l'utilisation de transtypage d'une expression comme lvalues"
+msgstr "le C ISO interdit l'utilisation de transtypage d'expression comme membre gauche"
-#: c-typeck.c:3276
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
-msgstr "%s d'un membre en lecture seulement « %s »"
+msgstr "%s d'un membre en lecture seule « %s »"
-#: c-typeck.c:3280
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
-msgstr "%s d'une variable en lecture seulement « %s »"
+msgstr "%s d'une variable en lecture seule « %s »"
-#: c-typeck.c:3283
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
-msgstr "%s d'une location en lecture seulement"
+msgstr "%s d'une position en lecture seule"
-#: c-typeck.c:3301
+#: c-typeck.c:3290
#, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "ne peut prendre l'adresse du champ de bits « %s »"
-#: c-typeck.c:3329
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
-msgstr "variable registre globale « %s » utilisée dans une fonction imbriquée"
+msgstr "variable globale de registre « %s » utilisée dans une fonction imbriquée"
-#: c-typeck.c:3333
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
-msgstr "variable registre « %s » utilisée dans une fonction imbriquée"
+msgstr "variable de registre « %s » utilisée dans une fonction imbriquée"
-#: c-typeck.c:3340
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "adresse d'une variable registre globale « %s » requise"
-#: c-typeck.c:3352
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
-msgstr "ne peut mettre un objet avec un champ volatile dans un registre"
+msgstr "impossible de mettre un objet avec un champ volatile dans un registre"
-#: c-typeck.c:3356
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "adresse d'une variable registre « %s » requise"
-#: c-typeck.c:3464
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr "type signé et non signé dans une expression conditionnelle"
-#: c-typeck.c:3471
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
-msgstr "ISO C interdit une expression conditionnelle dont un seul côté est « void »"
+msgstr "le C ISO interdit une expression conditionnelle dont un seul côté est « void »"
-#: c-typeck.c:3487 c-typeck.c:3494
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
-msgstr "ISO C interdit une expression conditionnelle entre « void * » et un pointeur de fonction"
+msgstr "le C ISO interdit une expression conditionnelle entre « void * » et un pointeur de fonction"
-#: c-typeck.c:3500
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
-msgstr "non concordance de type de pointeur dans un expression conditionnelle"
+msgstr "non concordance de type de pointeurs dans un expression conditionnelle"
-#: c-typeck.c:3507 c-typeck.c:3517
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
-msgstr "non concordance de type pointeur/entier dans une expression conditionnelle"
+msgstr "non concordance entre pointeur et entier dans une expression conditionnelle"
-#: c-typeck.c:3531
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "non concordance de type dans une expression conditionnelle"
-#: c-typeck.c:3602 cp/typeck.c:4907
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
-msgstr "l'opérande à gauche de la virgule dans l'expression n'a pas d'effet"
+msgstr "l'opérande à gauche de la virgule n'a pas d'effet"
-#: c-typeck.c:3641
+#: c-typeck.c:3635
msgid "cast specifies array type"
-msgstr "le transtypage spécifie le type de tableau"
+msgstr "le transtypage spécifie un type de tableau"
-#: c-typeck.c:3647
+#: c-typeck.c:3641
msgid "cast specifies function type"
-msgstr "le transtypage spécifie le type de fonction"
+msgstr "le transtypage spécifie un type de fonction"
-#: c-typeck.c:3657
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
-msgstr "ISO C interdit le transtypage non scalaire au même type"
+msgstr "le C ISO interdit le transtypage d'un type non scalaire vers lui-même"
-#: c-typeck.c:3676
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
-msgstr "ISO C interdit le transtypage vers un type union"
+msgstr "le C ISO interdit le transtypage vers un type union"
-#: c-typeck.c:3692
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
-msgstr "transtypage vers un type union d'un type non présent dans l'union"
+msgstr "transtypage vers un type union depuis un type absent de l'union"
-#: c-typeck.c:3743
+#: c-typeck.c:3736
msgid "cast adds new qualifiers to function type"
-msgstr "le transtypage ajoute un nouveau qualifacateur au type de la fonction"
+msgstr "le transtypage ajoute un nouveau qualificateur au type de la fonction"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3748
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
-msgstr "transtypage écarte les qualificateurs du type cible du pointeur"
+msgstr "le transtypage annule des qualificateurs du type pointeur ciblé"
-#: c-typeck.c:3763
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
-msgstr "transtypage augmente l'alignement requis pour le type ciblé"
+msgstr "le transtypage augmente l'alignement requis pour le type ciblé"
-#: c-typeck.c:3769 cp/typeck.c:5337
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr "transtypage d'un pointeur vers un entier de taille différente"
-#: c-typeck.c:3774
+#: c-typeck.c:3767
msgid "cast does not match function type"
-msgstr "transtypage ne concorde pas avec le type de la fonction"
+msgstr "le transtypage ne concorde pas avec le type de la fonction"
-#: c-typeck.c:3781 cp/typeck.c:5344
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
-msgstr "transtypage vers un pointeur d'un entier de taille différente"
+msgstr "transtypage vers un pointeur depuis un entier de taille différente"
+
+# FIXME
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+# FIXME
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:3939
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
-msgstr "lvalue invalide dans l'affectation"
+msgstr "membre gauche de l'affectation invalide"
#. Convert new value to destination type.
-#: c-typeck.c:3948 c-typeck.c:3973 c-typeck.c:3990 cp/typeck.c:5454 cp/typeck.c:5605
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "affectation"
-#: c-typeck.c:4157 c-typeck.c:4224
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "impossible de passer un membre droit en paramètre par référence"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
-msgstr "%s a rendu un pointeur de fonction qualifié à partir d'un non qualifié"
+msgstr "%s qualifie un pointeur de fonction non qualifié"
-#: c-typeck.c:4161 c-typeck.c:4204
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
-msgstr "%s écarte le qualificateur du type du pointeur cible"
+msgstr "%s annule des qualificateurs du type du pointeur cible"
-#: c-typeck.c:4167
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
-msgstr "ISO C interdit la conversion d'argument pour un type union"
+msgstr "le C ISO interdit la conversion d'argument en type union"
-#: c-typeck.c:4196
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
-msgstr "ISO C interdit %s entre le pointeur de fonction et « void * »"
+msgstr "le C ISO interdit %s entre pointeur de fonction et « void * »"
-#: c-typeck.c:4213
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
-msgstr "pointeurs ciblés dans %s diffèrent au niveau du signe"
+msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
-#: c-typeck.c:4229
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr "%s d'un type pointeur incompatible"
-#: c-typeck.c:4245
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "utilisation invalide d'un tableau n'étant pas membre gauche"
+
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
-msgstr "%s transforme en pointeur un entier sans transtypage"
+msgstr "%s transforme un entier en pointeur sans transtypage"
-#: c-typeck.c:4253
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
-msgstr "%s transforme en entier un pointeur sans transtypage"
+msgstr "%s transforme un pointeur en entier sans transtypage"
-#: c-typeck.c:4267 c-typeck.c:4270
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
-msgstr "type incompatible pour l'argument %d de « %s »"
+msgstr "type incompatible pour l'argument n°%d de « %s »"
-#: c-typeck.c:4274
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
-msgstr "type incompatible pour l'argument %d de l'appel indirect de fonction"
+msgstr "type incompatible pour l'argument n°%d de l'appel indirect de fonction"
-#: c-typeck.c:4278
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "type incompatibles dans %s"
#. Function name is known; supply it.
-#: c-typeck.c:4333
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "passage des arguments de « %s »"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "passage des arguments au pointeur de fonction"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
-msgstr "passage de arg %d de « %s »"
+msgstr "passage de l'argument n°%d de « %s »"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4343
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
-msgstr "passage de arg %d du pointeur vers la fonction"
+msgstr "passage de l'argument n°%d au pointeur de fonction"
-#: c-typeck.c:4410
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
-msgstr "initialisateur de variable « static » n'est pas une constante"
+msgstr "l'initialisation d'une variable statique n'est pas une constante"
-#: c-typeck.c:4416
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
-msgstr "initialisateur de variable « static » utilise une artihmétique compliquée"
+msgstr "l'initialisation d'une variable statique utilise une artihmétique compliquée"
-#: c-typeck.c:4424
+# FIXME
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
-msgstr "initialiseur d'aggrégat n'est pas une constante"
+msgstr "l'initialisation d'aggrégat n'est pas une constante"
-#: c-typeck.c:4426
+# FIXME
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
-msgstr "initialiseur d'aggrégat utilise une arithmétique compliquée"
+msgstr "l'initialisation d'un aggrégat utilise une arithmétique compliquée"
-#: c-typeck.c:4433
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
-msgstr "C traditionel rejette l'initialisation automatique d'aggrégats"
+msgstr "le C traditionel rejette l'initialisation automatique d'aggrégats"
-#: c-typeck.c:4621 c-typeck.c:4637 c-typeck.c:4653
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
-msgstr "(près de l'initialisation pour « %s »)"
+msgstr "(près de l'initialisation de « %s »)"
-#: c-typeck.c:4705 cp/typeck2.c:513
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
-msgstr "tableau de caractères initialisé à l'aide d'une grande chaîne"
+msgstr "tableau de caractères initialisé à l'aide d'une chaîne de caractères longs"
-#: c-typeck.c:4712 cp/typeck2.c:520
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
-msgstr "tableau d'entier initialisé à l'aide d'un chaîne courte"
+msgstr "tableau d'entier initialisé à l'aide d'un chaîne de caractères courts"
-#: c-typeck.c:4730 cp/typeck2.c:536
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
-msgstr "chaîne d'initialisateur pour le tableau de caractères est trop longue"
+msgstr "la chaîne d'initialisation est trop longue pour le tableau de caractères"
-#: c-typeck.c:4768
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
-msgstr "tableau initialisé à l'aide de l'expression d'un tableau de non constantes"
+msgstr "tableau initialisé à l'aide de l'expression de tableau non constante"
-#: c-typeck.c:4785 c-typeck.c:4787 c-typeck.c:4803 c-typeck.c:4824 c-typeck.c:6262
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
-msgstr "élément initialiseur n'est pas une constante"
+msgstr "un élément de l'initialisation n'est pas une constante"
-#: c-typeck.c:4819
+#: c-typeck.c:4873
msgid "initialization"
msgstr "initialisation"
-#: c-typeck.c:4830 c-typeck.c:6267
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
-msgstr "élément initialisateur n'est pas évaluable au moment du chargement"
+msgstr "un élément de l'initialisation n'est pas évaluable lors du chargement"
-#: c-typeck.c:4867 c-typeck.c:4883 cp/typeck2.c:613
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
-msgstr "initialiseur invalide"
+msgstr "initialisation invalide"
-#: c-typeck.c:5376
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
-msgstr "groupe d'accolades superflu à la fin de l'initialiseur"
+msgstr "groupe d'accolades superflu à la fin de l'initialisation"
-#: c-typeck.c:5396
+#: c-typeck.c:5413
msgid "missing braces around initializer"
-msgstr "accolades manquantes autour de l'initialiseur"
+msgstr "accolades manquantes autour de l'initialisation"
-#: c-typeck.c:5456
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
-msgstr "accolades autour de l'initialiseur scalaire"
+msgstr "accolades autour d'une initialisation de scalaire"
-#: c-typeck.c:5504
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr "initialisation d'un membre de tableau flexible dans un contexte imbriqué"
-#: c-typeck.c:5506
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr "initialisation d'un membre de tableau flexible"
-#: c-typeck.c:5537
+#: c-typeck.c:5554
msgid "missing initializer"
-msgstr "initialiseur manquant"
+msgstr "initialisation manquante"
-#: c-typeck.c:5563
+#: c-typeck.c:5580
msgid "empty scalar initializer"
-msgstr "initialiseur scalaire vide"
+msgstr "initialisation vide de scalaire"
-#: c-typeck.c:5568
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
-msgstr "éléments superflus dans l'initialiseur scalaire"
+msgstr "éléments superflus dans l'initialisation de scalaire"
-#: c-typeck.c:5654
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
-msgstr "initialisation des désignateurs ne doit pas être imbriquée"
+msgstr "l'initialisation des désignateurs ne doit pas être imbriquée"
-#: c-typeck.c:5675 c-typeck.c:5746
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
-msgstr "index de tableau dans un initialiseur qui n'est pas pour tableau"
+msgstr "index de tableau dans l'initialisation de quelque chose n'étant pas un tableau"
-#: c-typeck.c:5680 c-typeck.c:5798
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
-msgstr "nom du champ n'est pas dans l'initialiseur de l'enregistrement ou de l'union"
+msgstr "nom de champ dans l'initialisation de quelque chose n'étant ni un enregistrement ni une union"
-#: c-typeck.c:5742 c-typeck.c:5744
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
-msgstr "index de tableau non constante dans l'initialiseur"
+msgstr "index de tableau non constant dans l'initialisation"
-#: c-typeck.c:5749
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
-msgstr "index de tableau dans l'initialiseur excèdes les bornes du tableau"
+msgstr "index de tableau hors limites lors de l'initialisation"
-#: c-typeck.c:5760
+#: c-typeck.c:5779
msgid "empty index range in initializer"
-msgstr "bornes vides d'index dans l'initialiseur"
+msgstr "borne d'index vide lors de l'initialisation"
-#: c-typeck.c:5769
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
-msgstr "plage d'index du tableau dans l'initialiseur excède les bornes du tableau"
+msgstr "plage d'index du tableau excédant les bornes lors de l'initialisation"
-#: c-typeck.c:5810
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
-msgstr "champ inconnu « %s » spécifié dans l'initialisateur"
+msgstr "champ inconnu « %s » spécifié lors de l'initialisation"
-#: c-typeck.c:5847 c-typeck.c:5868 c-typeck.c:6330
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
-msgstr "champ initialisé avec effets de bord a été écrasé"
+msgstr "le champ initialisé par effet de bord a été écrasé"
-#: c-typeck.c:6540
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
-msgstr "éléments en excès dans l'initialisateur de tableau de caractères"
+msgstr "éléments en excès dans l'initialisation de tableau de caractères"
-#: c-typeck.c:6547 c-typeck.c:6593
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
-msgstr "éléments en excès dans l'initialisateur de struct"
+msgstr "éléments en excès dans l'initialisation de la structure"
-#: c-typeck.c:6608
+#: c-typeck.c:6626
msgid "non-static initialization of a flexible array member"
msgstr "initialisation non statique d'un membre de tableau flexible"
-#: c-typeck.c:6670
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
-msgstr "éléments en excès dans l'initialisateur d'union"
+msgstr "éléments en excès dans l'initialisation d'union"
-#: c-typeck.c:6691
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
-msgstr "C traditionel rejette l'initialisation d'unions"
+msgstr "le C traditionel rejette l'initialisation d'union"
-#: c-typeck.c:6754
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr "éléments en excès dans l'initialisation de tableau"
-#: c-typeck.c:6783
+#: c-typeck.c:6806
msgid "excess elements in vector initializer"
-msgstr "éléments en excès dans l'initialisateur du vecteur"
+msgstr "éléments en excès dans l'initialisation du vecteur"
-#: c-typeck.c:6805
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
-msgstr "éléments en excès dans l'initialisateur de scalaire"
+msgstr "éléments en excès dans l'initialisation d'un scalaire"
-#: c-typeck.c:6916
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
-msgstr "patron asm n'est pas une chaîne de constante"
+msgstr "le patron asm n'est pas une chaîne de constante"
-#: c-typeck.c:6948
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
-msgstr "lvalue invalide dans la déclaration asm"
+msgstr "membre gauche invalide avec asm"
-#: c-typeck.c:7019
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr "modification par « asm »"
-#: c-typeck.c:7038 cp/typeck.c:6453
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
-msgstr "fonction déclarée avec « noreturn» a une déclaraion avec «return »"
+msgstr "fonction déclarée avec « noreturn» utilisant le mot-clé « return »"
-#: c-typeck.c:7045
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
-msgstr "« return » sans valeur, dans la fonction ne retournant pas un void"
+msgstr "« return » sans valeur dans une fonction retournant autre chose que void"
-#: c-typeck.c:7051
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
-msgstr "« return » avec une valeur, dans la fonction retournant un void"
+msgstr "« return » avec une valeur dans une fonction retournant un void"
-#: c-typeck.c:7055
+#: c-typeck.c:7078
msgid "return"
msgstr "return"
-#: c-typeck.c:7107
+#: c-typeck.c:7130
msgid "function returns address of local variable"
-msgstr "fonction retourne l'adresse d'une variable locale"
+msgstr "cette fonction retourne l'adresse d'une variable locale"
-#: c-typeck.c:7163 cp/semantics.c:529
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "quantité du switch n'est pas un entier"
-#: c-typeck.c:7173
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
-msgstr "expression « long» du switch pas converti à «int » en ISO C"
+msgstr "expression « long » du switch non convertie en « int » par le C ISO"
-#: c-typeck.c:7208 cp/decl.c:5232
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
-msgstr "étiquette du 'case« n»est pas à l'intérieur de la déclaration du switch"
+msgstr "étiquette de « case » en dehors de tout switch"
-#: c-typeck.c:7210 cp/decl.c:5237
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
-msgstr "étiquette « default » n'est pas à l'intérieur de la déclaration du switch"
+msgstr "étiquette « default » en dehors de tout switch"
-#: calls.c:1902
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
-msgstr "enlignage a échoué dans l'appel à « %s »"
+msgstr "l'enlignage de l'appel à « %s » a échoué"
-#: calls.c:1903 calls.c:2209
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr "appelé d'ici"
-#: calls.c:2208
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
-msgstr "ne peut enligner l'appel de « %s »"
+msgstr "impossible d'enligner l'appel à « %s »"
-#: calls.c:2238
+#: calls.c:2300
msgid "function call has aggregate value"
-msgstr "appel de fonction a une valeur d'aggrégat"
+msgstr "l'appel de fonction a une valeur d'aggrégat"
+
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "La taille de la boucle %d devrait être %d, et non %d."
+
+# FIXME
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Bb %d n'appartient pas à la boucle %d."
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "L'en-tête de la boucle %d n'a pas exactement 2 entrées."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
-#: calls.c:4545
-msgid "variable offset is passed partially in stack and in reg"
-msgstr "décalage de variable est passé partiellement dans la pile et dans le registre"
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "L'entête de la boucle %d ne lui appartient pas directement."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "bb %d au mauvais endroit"
-#: calls.c:4547
-msgid "variable size is passed partially in stack and in reg"
-msgstr "taille de la variable est passée partiellement dans la pile et le registre"
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "prev_bb de %d devrait être %d, pas %d"
-#: cfgrtl.c:1624
+#: cfgrtl.c:1800
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "fin insn %d du bloc %d n'a pas été repéré dans le flot insn"
-#: cfgrtl.c:1638
+#: cfgrtl.c:1814
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "insn %d est dans de multiples blocs de base (%d et %d)"
-#: cfgrtl.c:1650
+#: cfgrtl.c:1826
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "en-tête insn %d du bloc %d n'a pas été repérée dans le flot insn"
-#: cfgrtl.c:1669
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB ne correspond pas à la config %i %i"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: Nombre de blocs erroné %i %i"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: Fréquence de blocs erronée %i %i"
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
-msgstr "verify_flow_info: bordure dupliquée %i->%i"
+msgstr "verify_flow_info: arrête dupliquée %i->%i"
-#: cfgrtl.c:1688
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: probabilité de l'arrête %i->%i %i erronée"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: Mauvais nombre d'arrête %i->%i %i"
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr "verify_flow_info: blocs incorrects pour le fallthru %i->%i"
-#: cfgrtl.c:1703
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: fallthru incorrect %i->%i"
-#: cfgrtl.c:1705
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
-msgstr "insn erronée dans la bordure fallthru"
+msgstr "insn erronée dans l'arrête fallthru"
-#: cfgrtl.c:1712
+#: cfgrtl.c:1935
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
-msgstr "verify_flow_info: bordure suivante du bloc de base %d est corrompue"
+msgstr "verify_flow_info: l'arrête succ du bloc de base %d est corrompue"
+
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "REG_EH_REGION note manquante à la fin du bb %i"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Trop d'arrêtes de branchement sortantes dans le bb %i"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Arrête fallthru après le branchement inconditionnel %i"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Mauvais nombre d'arrêtes de branchement après le branchement inconditionnel %i"
-#: cfgrtl.c:1736
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Mauvais nombre d'arrêtes de branchement après le branchement conditionnel %i"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "Arrêtes d'appel pour un insn n'étant pas d'appel dans le bb %i"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "Arrête anormale sans but dans le bb %i"
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr "barrière manquante après le boc %i"
-#: cfgrtl.c:1746
+#: cfgrtl.c:2014
#, c-format
msgid "basic block %d pred edge is corrupted"
-msgstr "bordure précédente du bloc de base %d est corrompue"
+msgstr "arrête pred du bloc de base %d corrompue"
-#: cfgrtl.c:1763
+#: cfgrtl.c:2031
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr "insn %d à l'intérieur du bloc de base %d mais block_for_insn est NULL"
-#: cfgrtl.c:1767
+#: cfgrtl.c:2035
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
-msgstr "insn %d à l'intérieur du bloc de base %d mais block_for_insn est %i"
+msgstr "insn %d à l'intérieur du bloc de base %d mais block_for_insn est %i"
-#: cfgrtl.c:1781 cfgrtl.c:1791
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
-msgstr "NOTE_INSN_BASIC_BLOCK est manquant pour le bloc %d"
+msgstr "NOTE_INSN_BASIC_BLOCK manquant pour le bloc %d"
-#: cfgrtl.c:1804
+#: cfgrtl.c:2072
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
-msgstr "NOTE_INSN_BASIC_BLOCK %d dans le milieu du bloc de base %d"
+msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d"
-#: cfgrtl.c:1816
+#: cfgrtl.c:2084
#, c-format
msgid "in basic block %d:"
-msgstr "dans le bloc de base %d:"
+msgstr "dans le bloc de base %d :"
-#: cfgrtl.c:1817
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
-msgstr "contrôle de flot insn à l'intérieur d'un bloc de base"
+msgstr "insn de contrôle de flot à l'intérieur d'un bloc de base"
-#: cfgrtl.c:1836
+#: cfgrtl.c:2104
#, c-format
msgid "basic block %i edge lists are corrupted"
-msgstr "listes des bordures du bloc de base %i sont corrompues"
+msgstr "les listes d'arrêtes du bloc de base %i sont corrompues"
-#: cfgrtl.c:1850
+#: cfgrtl.c:2119
msgid "basic blocks not numbered consecutively"
-msgstr "blocs de base ne sont pas numérotés consécutivement"
+msgstr "les blocs de base ne sont pas numérotés consécutivement"
-#: cfgrtl.c:1875
+#: cfgrtl.c:2144
msgid "insn outside basic block"
-msgstr "insn à l'extérieur du bloc de base"
+msgstr "insn à l'extérieur de tout bloc de base"
-#: cfgrtl.c:1883
+#: cfgrtl.c:2152
msgid "return not followed by barrier"
msgstr "return n'est pas suivi d'une barrière"
-#: cfgrtl.c:1888
+# FIXME
+# bb est une abréviation courante dans cette partie du fichier pour « basic block »
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
-msgstr "nombre de notes bb dans la chaîne insn (%d) != n_basic_blocks (%d)"
+msgstr "nombre de bb noté dans la chaîne d'insn (%d) != n_basic_blocks (%d)"
-#: cfgrtl.c:1892
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
-msgstr "verify_flow_info failed"
+msgstr "verify_flow_info a échoué"
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr "erreur interne"
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr "pas d'argument"
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+# I18N
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr "fopen() %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+# I18N
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr "fclose() %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
-msgstr "%d constructeur(s) repéré(s)\n"
+msgstr "%d constructeur(s) trouvé(s)\n"
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
-msgstr "%d destructeur(s) repéré(s)\n"
+msgstr "%d destructeur(s) trouvé(s)\n"
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
-msgstr "%d table(s) de trame repéré(s)\n"
+msgstr "%d table(s) de trame trouvée(s)\n"
-#: collect2.c:1514
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s terminé par le signal %d [%s]%s"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
-msgstr "%s a retourné %d comme valeur d'état "
+msgstr "%s a retourné %d comme valeur de sortie"
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
-msgstr "[ne peut repérer %s]"
+msgstr "[%s introuvable]"
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
-msgstr "ne peut repérer « %s »"
+msgstr "« %s » introuvable"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
-msgstr "redirection de stdout: %s"
+msgstr "redirection de stdout : %s"
-#: collect2.c:1633
+# FIXME
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[Laissant %s]\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
"\n"
-"write_c_file - nom de sortie est %s, préfixe est %s\n"
+"write_c_file - le nom de sortie est %s, le préfixe est %s\n"
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
-msgstr "ne peut repérer « nm »"
+msgstr "« nm » introuvable"
-#: collect2.c:2099 collect2.c:2541
+# I18N
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2103 collect2.c:2545
+# I18N
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+# I18N
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574 collect2.c:2577 collect2.c:2590
+# I18N
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2138
+# I18N
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
-msgstr "fonction init repérée dans l'objet %s"
+msgstr "fonction init trouvée dans l'objet %s"
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
-msgstr "fonction fini() repérée dans l'objet %s"
+msgstr "fonction fini() trouvée dans l'objet %s"
-#: collect2.c:2223 collect2.c:2629
+# I18N
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
-msgstr "incapable d'ouvrir le fichier « %s »"
+msgstr "impossible d'ouvrir le fichier « %s »"
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
-msgstr "incapable d'évaluer par stat() le fichier « %s »"
+msgstr "impossible d'analyser le fichier « %s » avec stat()"
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
-msgstr "incpable de projeter en mémoire (mmap) le fichier « %s »"
+msgstr "incpable de projeter en mémoire le fichier « %s » avec nmap()"
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
-msgstr "pas repéré\n"
+msgstr "introuvable\n"
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
-msgstr "dépendance dynamique %s n'a pas été repéré"
+msgstr "dépendance dynamique %s introuvable"
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
-msgstr "nombre magique erroné pour le fichier « %s »"
+msgstr "le nombre magique du fichier « %s » est erroné"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "dépendances dynamiques.\n"
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
-msgstr "ne peut repérer « ldd »"
+msgstr "« ldd » introuvable"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr "execv %s"
-
-#: collect2.c:2593
+#: collect2.c:2585
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -3581,76 +4018,80 @@ msgstr ""
"\n"
"sortie de ldd avec constructeurs/destructeurs.\n"
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
-msgstr "incapable d'ouvrir une dépendance dynamique « %s »"
+msgstr "incapable d'ouvrir la dépendance dynamique « %s »"
-#: collect2.c:2734
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
-msgstr "%s: n'est pas un fichier COFF"
+msgstr "%s : n'est pas un fichier COFF"
-#: collect2.c:2853
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
-msgstr "%s: ne peut ouvrir un fichier COFF"
+msgstr "%s : ne peut ouvrir en tant que fichier COFF"
-#: collect2.c:2909
+# I18N
+#: collect2.c:2901
#, c-format
msgid "library lib%s not found"
-msgstr "librarie lib%s n'a pas été trouvé"
+msgstr "bibliothèque lib%s introuvable"
-#: collect2.c:3038
+# I18N
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "open %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
-msgstr "incompatibilités entre le fichier objet & les valeurs attendues"
+msgstr "incompatibilités entre le fichier objet et les valeurs attendues"
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
msgid ""
"\n"
"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
msgstr ""
"\n"
-"Table de symboles de traitement #%d, décalage = 0x%.8lx, sorte = %s\n"
+"Traitement de la table des symboles #%d, décalage = 0x%.8lx, sorte = %s\n"
-#: collect2.c:3143
+# FIXME
+#: collect2.c:3133
msgid "string section missing"
msgstr "chaîne de section manquante"
-#: collect2.c:3146
+#: collect2.c:3136
msgid "section pointer missing"
msgstr "pointeur de section manquant"
-#: collect2.c:3194
+#: collect2.c:3184
msgid "no symbol table found"
-msgstr "pas de table de symbole trouvée"
+msgstr "aucune table des symboles trouvée"
-#: collect2.c:3207
+#: collect2.c:3197
msgid "no cmd_strings found"
-msgstr "pas de cmd_strings trouvé"
+msgstr "aucun cmd_strings trouvé"
-#: collect2.c:3219
+#: collect2.c:3209
msgid ""
"\n"
"Updating header and load commands.\n"
"\n"
msgstr ""
"\n"
-"Mise à jour d'en-tête et chargement des commandes.\n"
+"Mise à jour des en-têtes et des commandes de chargement.\n"
"\n"
-#: collect2.c:3226
+# FIXME
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
-msgstr "charger la commande map, %d commandes, nouvelle taille %ld.\n"
+msgstr "Chargement de la carte des commandes, %d commandes, nouvelle taille %ld.\n"
-#: collect2.c:3257
+#: collect2.c:3247
msgid ""
"writing load commands.\n"
"\n"
@@ -3658,101 +4099,110 @@ msgstr ""
"écriture des commandes de chargement.\n"
"\n"
-#: collect2.c:3277
+# I18N
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "close %s"
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
-msgstr "ne peut convertir 0x%l.8x dans une région"
+msgstr "ne peut convertir 0x%l.8x en région"
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr "fonction %s, région %d, décalage = %ld (0x%.8lx)\n"
-#: collect2.c:3482
+#: collect2.c:3472
msgid "bad magic number"
msgstr "nombre magique erroné"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
-msgstr "version d'en-tête erroné"
+msgstr "version d'en-tête erronée"
-#: collect2.c:3484
+# FIXME: ou version d'en-tête brut erronée
+#: collect2.c:3474
msgid "bad raw header version"
-msgstr "version brute d'en-tête erroné"
+msgstr "version brute d'en-tête erronée"
-#: collect2.c:3485
+# FIXME: ou tampon d'en-tête brut trop petit
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "tampon brut d'en-tête trop petit"
-#: collect2.c:3486
+#: collect2.c:3476
msgid "old raw header file"
msgstr "ancien fichier d'en-tête brute"
-#: collect2.c:3487
+#: collect2.c:3477
msgid "unsupported version"
-msgstr "version non supportée"
+msgstr "version non reconnue"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
-msgstr "mauvais {de,en}code_mach_o_hdr valeur retourné %d"
+msgstr "mauvaise valeur de retour (%d) de {de,en}code_mach_o_hdr"
-#: collect2.c:3509
+# I18N
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+# I18N
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "lseek %s 0"
-#: collect2.c:3550
+# I18N
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "lu %ld octets, attendu %ld, de %s"
-#: collect2.c:3574
+# I18N
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "msync %s"
-#: collect2.c:3581
+# I18N
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "munmap %s"
-#: collect2.c:3598
+# I18N
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "écrit %ld octets, attendu %ld, vers %s"
-#: combine.c:12769
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
";; %d successes.\n"
"\n"
msgstr ""
-";; Statistiques combinées: %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
+";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
";; %d succès.\n"
"\n"
-#: combine.c:12779
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3760,1274 +4210,1125 @@ msgid ""
";; %d successes.\n"
msgstr ""
"\n"
-";; Totaux combinés: %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
+";; Totaux du combinateur : %d tentatives, %d substitutions (%d requérant un nouvel espace),\n"
";; %d succès.\n"
"\n"
-#: convert.c:67
+#: convert.c:69
msgid "cannot convert to a pointer type"
msgstr "ne peut convertir en un type pointeur"
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
-msgstr "valeur du pointeur utilisé où une valeur flottante était attendue"
+msgstr "valeur de pointeur utilisée là où une valeur à virgule flottante était attendue"
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
-msgstr "valeur d'aggrégat utilisé où un flottant était attendu"
+msgstr "valeur d'aggrégat utilisée là où un flottant était attendu"
-#: convert.c:130
+#: convert.c:132
msgid "conversion to incomplete type"
msgstr "conversion vers un type incomplet"
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
msgid "can't convert between vector values of different size"
msgstr "ne peut convertir entre des valeurs de vecteurs de tailles différentes"
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
-msgstr "valeur d'aggrégat utilisé où un entier était attendu"
+msgstr "valeur d'aggrégat utilisée là où un entier était attendu"
-#: convert.c:448 f/com.c:1073
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
-msgstr "valeur de pointeur utilisé où un complexe était attendu"
+msgstr "valeur de pointeur utilisée là où un complexe était attendu"
-#: convert.c:452 f/com.c:1075
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
-msgstr "valeur d'aggrégat utilisé où un complexe était attendu"
+msgstr "valeur d'aggrégat utilisée là où un complexe était attendu"
-#: convert.c:476
+#: convert.c:500
msgid "can't convert value to a vector"
-msgstr "ne peut convertir une valeur en un vecteur"
+msgstr "ne peut convertir une valeur en vecteur"
+
+#: cpperror.c:113
+msgid "warning: "
+msgstr "attention : "
-#: cpperror.c:125
+#: cpperror.c:115
msgid "internal error: "
-msgstr "erreur interne: "
+msgstr "erreur interne : "
-#: cpperror.c:132 tradcpp.c:4690
-msgid "warning: "
-msgstr "AVERTISSEMENT: "
+#: cpperror.c:189
+msgid "stdout"
+msgstr "stdout"
-#: cpperror.c:209 cpperror.c:299 cppfiles.c:691 gcc.c:6307 tradcpp.c:4728
+#: cpperror.c:191 gcc.c:6428
#, c-format
msgid "%s: %s"
-msgstr "%s: %s"
+msgstr "%s : %s"
-#: cppexp.c:154
-msgid "floating point numbers are not valid in #if"
-msgstr "nombres flottants ne sont pas valides dans un #if"
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "trop de points décimaux dans le nombre"
-#: cppexp.c:176
-msgid "traditional C rejects the `U' suffix"
-msgstr "C traditionel rejette le suffixe « U »"
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "chiffre « %c » invalide dans la constante en base 8"
-#: cppexp.c:179
-msgid "too many 'l' suffixes in integer constant"
-msgstr "trop de « l » en suffixe dans les constantes entières"
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "usage d'une constante hexadécimale constante à la C99"
-#: cppexp.c:183
-msgid "integer constant contains digits beyond the radix"
-msgstr "constante entière contient des chiffres en dehors la base numérique"
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "l'exposant n'a pas de chiffre"
-#: cppexp.c:186
-msgid "integer constant out of range"
-msgstr "constante entière est hors gamme"
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "la contante hexadécimale flottante requière un exposant"
-#: cppexp.c:192
-msgid "integer constant is so large that it is unsigned"
-msgstr "constante entière est si grande qu'ell est non signée"
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "suffixe « %.*s » invalide pour une constante flottante"
-#: cppexp.c:201
+#: cppexp.c:257 cppexp.c:282
#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
-msgstr "suffixe invalide '%.*s» pour une constante entière"
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "le C traditionnel interdit le suffixe « %.*s »"
-#: cppexp.c:234
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "suffixe « %.*s » invalide pour une constante entière"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "usage d'une constante entière « long long » à la C99"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "les constantes imaginaires sont une extension GCC"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "constante entière trop grande pour tenir dans son type"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "cette constante entière est si grande qu'elle ne peut être signée"
+
+#: cppexp.c:482
msgid "missing ')' after \"defined\""
-msgstr "« )» manquant après «defined »"
+msgstr "« ) » manquant après « defined »"
-#: cppexp.c:240
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
-msgstr "opérateur « defined » requiert un identificateur"
+msgstr "l'opérateur « defined » requiert un identificateur"
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
-msgstr "(« %s » est un jeton alternatif pour « %s » en C++)"
+msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)"
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr "cette utilisation de « defined » peut ne pas être portable"
-#: cppexp.c:307
-msgid "string constants are not valid in #if"
-msgstr "constantes de chaîne ne sont pas valides dasn un #if"
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "constante flottante dans une expresion pour le préprocesseur"
-#: cppexp.c:311
-#, c-format
-msgid "invalid character '%c' in #if"
-msgstr "caractère « %c » invalide dans le #if"
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "constante complexe dans une expresion pour le préprocesseur"
-#: cppexp.c:313
-#, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "caractère invalide '\\%03o» dans le #if"
-
-#: cppexp.c:330
+#: cppexp.c:596
#, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
-msgstr "ISO C++ ne permet pas « %s » dans #if"
+msgstr "le C++ ISO n'autorise pas « %s » dans #if"
-#: cppexp.c:341
+#: cppexp.c:604
#, c-format
msgid "\"%s\" is not defined"
msgstr "« %s » n'est pas défini"
-#: cppexp.c:367
+#: cppexp.c:737 cppexp.c:772
#, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "« %s » n'est pas valide des les expressions #if"
+msgid "missing binary operator before token \"%s\""
+msgstr "opérateur binaire manquant avant l'élément lexical « %s »"
-#: cppexp.c:382
-msgid "integer overflow in preprocessor expression"
-msgstr "débordement entier dans l'expresion du préprocesseur"
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "caractère « %c » invalide dans #if"
+
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "caractère « \\%03o » invalide dans #if"
-#: cppexp.c:612
-msgid "missing binary operator"
-msgstr "opérateur binaire manquant"
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "l'élément lexical « %s » n'est pas valide dans les expressions pour le préprocesseur"
-#: cppexp.c:647
+#: cppexp.c:782
msgid "void expression between '(' and ')'"
-msgstr "expression void entre «(» et «)»"
+msgstr "expression void entre parenthèses"
-#: cppexp.c:649
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if sans expression"
+
+#: cppexp.c:787
#, c-format
msgid "operator '%s' has no right operand"
msgstr "l'opérateur « %s » n'a pas d'opérande droite"
-#: cppexp.c:661
-#, c-format
-msgid "impossible operator '%s'"
-msgstr "opérateur impossible « %s »"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr "« : » n'est pas précédé de « ? »"
-#: cppexp.c:737 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
-msgstr "division par zéro dans #if"
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "pile non balancée dans #if"
-#: cppexp.c:771
-msgid "comma operator in operand of #if"
-msgstr "opérateur virgule dans l'opérande #if"
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "opérateur impossible « %u »"
-#: cppexp.c:776
-msgid "syntax error '?' without following ':'"
-msgstr "erreur de syntaxe «?» sans être suivi de «:»"
+#: cppexp.c:954
+msgid "missing ')' in expression"
+msgstr "« ) » manquante dans l'expresion"
-#: cppexp.c:779
-msgid "syntax error ':' without preceding '?'"
-msgstr "erreur de syntaxe «:» sans être précédé de «?»"
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr "« ? » n'est pas suivi de « : »"
-#: cppexp.c:787
-msgid "missing ')' in expression"
-msgstr "«)» manquante dans l'expresion"
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "débordement d'entier dans l'expresion pour le préprocesseur"
-#: cppexp.c:794
+#: cppexp.c:990
msgid "missing '(' in expression"
-msgstr "«(» manquante dans l'expresion"
+msgstr "« ( » manquante dans l'expresion"
-#: cppexp.c:820
+#: cppexp.c:1026
#, c-format
-msgid "missing binary operator before '%s'"
-msgstr "opérateur binaire manquant avant « %s »"
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "L'opérande gauche de « %s » change de signe lors de sa promotion"
-#: cppexp.c:826
+#: cppexp.c:1031
#, c-format
-msgid "operator '%s' has no left operand"
-msgstr "opérateur « %s » n'a pas d'opérande gauche"
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "L'opérande droite de « %s » change de signe lors de sa promotion"
-#: cppexp.c:864
-msgid "unbalanced stack in #if"
-msgstr "pile non balancés dans le #if"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "opérateur virgule dans l'opérande de #if"
-#: cppexp.c:867
-msgid "#if with no expression"
-msgstr "#if sans expression"
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "division par zéro dans #if"
-#: cppfiles.c:395
+#: cppfiles.c:411
#, c-format
msgid "%s is too large"
msgstr "%s est trop grand"
-#: cppfiles.c:426
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
-msgstr "%s est plus petit que prévue"
+msgstr "%s est plus petit que prévu"
-#: cppfiles.c:440
+# FIXME
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr "%s est un périphérique de blocs"
-#: cppfiles.c:566
+#: cppfiles.c:594
#, c-format
msgid "no include path in which to find %s"
-msgstr "pas de chemin d'inclusion afin de retrouver %s"
+msgstr "aucun chemin d'inclusion ne permet de trouver %s"
-#: cppfiles.c:639
+# FIXME
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr "De multiples balises pour les inclusions peuvent être utiles pour:\n"
-#: cppfiles.c:1029
+#: cppfiles.c:1014
msgid "absolute file name in remap_filename"
msgstr "nom de fichier absolu dans remap_filename"
-#: cppinit.c:230
+#: cppinit.c:224
#, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
-msgstr "répertoires « %s » inexistents sont ignorés\n"
+msgstr "le répertoire « %s » est ignoré car inexistant\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, c-format
msgid "%s: Not a directory"
-msgstr "%s: n'est pas un répertoire"
+msgstr "%s : ce n'est pas un répertoire"
-#: cppinit.c:284
+#: cppinit.c:287
#, c-format
msgid "ignoring duplicate directory \"%s\"\n"
-msgstr "répertoires « %s » doubles sont ignorés\n"
+msgstr "le répertoire « %s » est ignoré car présent deux fois\n"
-#: cppinit.c:312
-#, c-format
-msgid "changing search order for system directory \"%s\""
-msgstr "modification de l'ordonnancement de recherche du répertoire système « %s »"
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " car il s'agit d'un répertoire non système dupliquant un répertoire système\n"
+
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t doit être d'un type non signé"
-#: cppinit.c:316
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
-msgstr " comme c'est le même qu'un répertoire non système « %s »"
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la cible requière %lu bits"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'arithmétique de CPP doit être au moins aussi précise que le type int de la cible"
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
-msgstr " comme il a été déjà spécifié comme répertoire non système"
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "sur la cible, « char » fait moins de 8 bits"
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "sur la cible, « wchar_t » est plus petit que « char »"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "sur la cible, « int » est plus petit que « char »"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "les demi-entiers de CPP sont plus petit que les caractères de CPP"
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP sur cette machine ne peut gérer les caractères longs constants de plus de %lu bits, mais la cible requière %lu bits"
-#: cppinit.c:936
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
-msgstr "#include «...» la recherche débute ici:\n"
+msgstr "la recherche pour #include \"...\" débute ici :\n"
-#: cppinit.c:940
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
-msgstr "#include <...> la recherche débute ici:\n"
+msgstr "la recherche pour #include <...> débute ici:\n"
-#: cppinit.c:943
+#: cppinit.c:979
msgid "End of search list.\n"
msgstr "Fin de la liste de recherche.\n"
-#: cppinit.c:1010
+#: cppinit.c:1057
msgid "<built-in>"
msgstr "<interne>"
-#: cppinit.c:1012
+#: cppinit.c:1059
msgid "<command line>"
msgstr "<ligne de commande>"
-#: cppinit.c:1108 tradcpp.c:979 tradcpp.c:989 tradcpp.c:1080
-msgid "I/O error on output"
-msgstr "Erreur E/S sur la sortie"
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1156
-#, c-format
-msgid "argument missing after %s"
-msgstr "argument manquant après %s"
-
-#: cppinit.c:1157
+#: cppinit.c:1164
#, c-format
msgid "assertion missing after %s"
msgstr "assertion manquante après %s"
-#: cppinit.c:1158
+#: cppinit.c:1165
#, c-format
msgid "directory name missing after %s"
msgstr "nom de répertoire manquant après %s"
-#: cppinit.c:1159
+#: cppinit.c:1166
#, c-format
msgid "file name missing after %s"
msgstr "nom de fichier manquant après %s"
-#: cppinit.c:1160
+#: cppinit.c:1167
#, c-format
msgid "macro name missing after %s"
msgstr "nom de macro manquant après %s"
-#: cppinit.c:1161
+#: cppinit.c:1168
#, c-format
msgid "path name missing after %s"
msgstr "nom de chemin manquant après %s"
-#: cppinit.c:1162
-#, c-format
-msgid "number missing after %s"
-msgstr "nombre manquant après %s"
-
-#: cppinit.c:1163
-#, c-format
-msgid "target missing after %s"
-msgstr "cible manquante après %s"
-
-#: cppinit.c:1351
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr "trop de noms de fichiers. Taper %s --help pour en connaître l'usage"
-
-#: cppinit.c:1541 tradcpp.c:610
-msgid "output filename specified twice"
-msgstr "nom de fichier de sortie spécifié deux fois"
-
-#: cppinit.c:1653
+#: cppinit.c:1353
msgid "-I- specified twice"
msgstr "-I- spécifié deux fois"
-#: cppinit.c:1794
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP version %s (cpplib)"
-
-#: cppinit.c:1835 tradcpp.c:803
-msgid "you must additionally specify either -M or -MM"
-msgstr "vous devez en plus spécifier soit -M ou -MM"
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1896
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-"Options:\n"
-" -include <fichier> inclure le contenu du <fichier> avant d'autres fichiers\n"
-" -imacros <fichier> accepter la définition de macros dans le <fichier>\n"
-" -iprefix <chemin> spécifier le <chemin> comme un préfixe aux prochaines deux options\n"
-" -iwithprefix <rép> ajouter le <rép>ertoire à la fin du chemin d'inclusion système\n"
-" -iwithprefixbefore <rép> ajouter le <rép>ertoire à la fin du chemin d'inclusion principal\n"
-" -isystem <rép> ajouter le <rép>ertoire au début du chemin d'inclusion système\n"
-
-#: cppinit.c:1905
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-" -idirafter <rép> ajouter le <rép>ertoire à la fin du chemind'inclusion système\n"
-" -I <rép> ajouter le <rép>ertoire à la fin du chemind'inclusion principal\n"
-" -I- raffiner le contrôle du chemin d'inclusion; consulter la doc\n"
-" -nostdinc ne pas rechercher à travers les répertoires d'inclusion système\n"
-" (rép spécifiés avec -isystem seront encode utilisés)\n"
-" -nostdinc++ ne pas rechercher à travers les répertoires d'inclusion système pour C++\n"
-" -o <fichier> produire la sortie dans le <fichier>\n"
-
-#: cppinit.c:1914
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-" -pedantic émettre tous les avertissements relatifs à la conformité stricte ISO C\n"
-" -pedantic-errors transformer les avertissements -pedantic en erreurs à la place\n"
-" -trigraphs supporter les trigraphes ISO C\n"
-" -lang-c assumer que les sources à l'entrée sont en C\n"
-" -lang-c89 assumer que les sources à l'entrée sont en C89\n"
-
-#: cppinit.c:1921
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-" -lang-c++ assumer que les sources sont en C++\n"
-" -lang-objc assumer que les sources sont en ObjectiveC\n"
-" -lang-objc++ assumer que les sources sont en ObjectiveC++\n"
-" -lang-asm assumer que les sources sont en assembleur\n"
-
-#: cppinit.c:1927
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-" -std=<standard> spécifier le <standard> de conformité à utiliser; soit:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ permettre l'analyse des options de style C++\n"
-" -w inhiber les messages d'avertissement\n"
-" -Wtrigraphs avertir si des trigraphes sont rencontrés\n"
-" -Wno-trigraphs ne pas avertir à propos des trigraphes\n"
-" -Wcomment{s} avertir si un commentaire débute à l'intérieur d'un autre\n"
-
-#: cppinit.c:1937
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-" -Wno-comment{s} ne pas avertir à propos des commentaires\n"
-" -Wtraditional avertir à propos des options non présentes en C traditionnel\n"
-" -Wno-traditional ne pas avertir à propos du C traditionel\n"
-" -Wundef avertir à propos de macros indéfinies si utilisé dans un #if\n"
-" -Wno-undef ne pas avertir à propos de la vérification des macros indéfinies\n"
-" -Wimport avertir de l'utilisation de la directive #import\n"
-
-#: cppinit.c:1945
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-" -Wno-import ne pas avertir à propos de l'utilisation de #import\n"
-" -Werror traiter tous les avertissements comme des erreurs\n"
-" -Wno-error ne pas traiter tous les avertissements comme des erreurs\n"
-" -Wsystem-headers ne pas supprimer les avertissements dans les en-têtes système\n"
-" -Wno-system-headers supprimer les avertissements dans les en-têtes système\n"
-" -Wall autoriser tous les avertissements du préprocesseur\n"
-
-#: cppinit.c:1953
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MD Generate make dependencies and compile\n"
-" -MMD As -MD, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-" -M générer les dépendances pour make\n"
-" -MM identique à -M, mais ignorer les en-têtes systèmes de fichiers\n"
-" -MD générer les dépendances pour make et compiler\n"
-" -MMD identique à -MD, mais ignorer les fichiers d'en-tête système\n"
-" -MF <fichier> écrire les dépendances dans le <fichier>\n"
-" -MG traiter les en-têtes de fichiers comme des fichiers générés\n"
-
-#: cppinit.c:1961
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-" -MP\t\t\t générer des cibles factices pour toutes les en-têtes\n"
-" -MQ <target> ajouter une cible MAKE-quoted\n"
-" -MT <target> ajouter une cible non « quoted »\n"
-
-#: cppinit.c:1966
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question>=<answer> Assert the <answer> to <question>\n"
-" -A-<question>=<answer> Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-" -D<macro> définir une <macro> avec la chaîne « 1 » pour valeur\n"
-" -D<macro>=<valeur> définir une <macro> de <valeur>\n"
-" -A<question>=(<réponse>) associer la <réponse> à la <question>\n"
-" -A-<question>=(<réponse>) dissocier la <réponse> à la <question>\n"
-" -U<macro> ne plus définir la <macro> \n"
-" -v afficher le numéro de version\n"
-
-#: cppinit.c:1974
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-" -H afficher le nom des fichiers en-tête tel qu'utilisés\n"
-" -C ne pas mettre de côté les commantaires\n"
-" -dM afficher la liste des définitions de macro actives à la fin\n"
-" -dD préserver les définitions de macros à la sortie\n"
-" -dN identique à -dD sauf que seuls les noms sont préservés\n"
-" -dI inclure la directive #include à la sortie\n"
-
-#: cppinit.c:1982
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-" -fpreprocessed traiter le fichier d'entrée comme étant déjà pré-traitée\n"
-" -ftabstop=<nombre> sélectionner la largeur de tabulation pour les rapports\n"
-" -P ne pas générer des directives #line\n"
-" -$ ne pas permettre «$» dans les identificateurs\n"
-" -remap refaire la table des noms de fichiers\n"
-" lors de l'inclusion de fichiers\n"
-" --version afficher le numéro de version\n"
-" -h or --help afficher l'aide mémoire\n"
-
-#: cpplex.c:154
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
-msgstr "trigraphe ??%c converti à %c"
+msgstr "trigraphe ??%c converti en %c"
-#: cpplex.c:162
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr "trigraphe ??%c ignoré"
-#: cpplex.c:218
+#: cpplex.c:214
msgid "backslash and newline separated by space"
-msgstr "barre oblique inverse et retour de chariot séparé par un blanc"
+msgstr "« \\ » et retour de chariot séparés par un blanc"
-#: cpplex.c:224
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
-msgstr "barre oblique inverse et retour de chariot à la fin du fichier"
+msgstr "« \\ » en fin de ligne à la fin du fichier"
-#: cpplex.c:290
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
-msgstr "«/*» à l'intérieur du commentaire"
+msgstr "« /* » à l'intérieur d'un commentaire"
-#: cpplex.c:373
+# I18N
+#: cpplex.c:395
msgid "null character(s) ignored"
-msgstr "caractère null ignoré"
+msgstr "caractère(s) nul(s) ignoré(s)"
-#: cpplex.c:380
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
-msgstr "%s dans la directive de pré-traitement"
+msgstr "%s dans la directive du préprocesseur"
-#: cpplex.c:447
+# FIXME
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
-msgstr "tentative d'utilisation empoisonée de « %s »"
+msgstr "tentative d'utilisation d'un « %s » empoisonné"
-#: cpplex.c:455
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
-msgstr "« __VA_ARGS__ » peut seulement appraître dans l'expansion des macros C99 variadic"
+msgstr "« __VA_ARGS__ » peut seulement appraître dans l'expansion des macros C99 à nombre variable d'arguments"
-#: cpplex.c:508
-msgid "'$' character(s) in identifier"
-msgstr "caractère(s) «$» dans l'identificateur"
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "caractère(s) « $ » dans un identificateur ou un nombre"
-#: cpplex.c:589
+#: cpplex.c:698
#, c-format
msgid "missing terminating %c character"
msgstr "caractère %c de terminaison manquant"
-#: cpplex.c:594
-msgid "possible start of unterminated string literal"
-msgstr "début possible d'une chaîne de mot non terminée"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr "chaîne de mots multi-lignes sont dépréciés"
-
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr "caractère(s) nul préservé(s) dans la chaîne"
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
msgid "no newline at end of file"
-msgstr "pas de nouvelle ligne à la fin du fichier"
+msgstr "pas de retour chariot à la fin du fichier"
-#: cpplex.c:1034 tradcpp.c:1467
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr "commentaire non terminé"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
-msgstr "Le style des commentaires en C++ n'est pas permis en ISO C89"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Les commentaires à la C++ ne sont pas permis en C89 ISO"
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
-msgstr "(ceci sera rapporté seulement une seule fois par fichier d'entrée)"
+msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)"
-#: cpplex.c:1052
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr "commentaire multi-lignes"
-#: cpplex.c:1367
+#: cpplex.c:1425
#, c-format
msgid "unknown string token %s\n"
-msgstr "jeton de chaîne inconnu %s\n"
+msgstr "élément lexical %s inconnu\n"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, c-format
msgid "unspellable token %s"
-msgstr "jeton %s ne peut être épelé"
+msgstr "l'élément lexical %s ne peut être épelé"
-#: cpplex.c:1635
+#: cpplex.c:1695
#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
-msgstr "la signification de «\\%c» varie avec l'option -traditional"
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "la signification de « \\%c » est différente en C traditionel"
-#: cpplex.c:1641
+# FIXME
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr "nom-de-caractère-universel incomplet"
-#: cpplex.c:1655
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
-msgstr "chiffre « %c » n'est pas hexadécimal dans le nom-de-caractère-universel"
+msgstr "chiffre « %c » non hexadécimal dans le nom-de-caractère-universel"
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr "nom-de-caractère-universel pour une cible EBCDIC"
-#: cpplex.c:1677
+#: cpplex.c:1737
msgid "universal-character-name out of range"
msgstr "nom-de-caractère-universel est hors gamme"
-#: cpplex.c:1722
-msgid "the meaning of '\\a' varies with -traditional"
-msgstr "la signification de «\\a» varie avec l'option -traditional"
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "la signification de « \\a » est différente en C traditionel"
-#: cpplex.c:1729
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
-msgstr "séquence d'échappement n'est conforme au standard ISO, '\\%c'"
+msgstr "séquence d'échappement « \\%c » non conforme au standard ISO"
-#: cpplex.c:1739
-msgid "the meaning of '\\x' varies with -traditional"
-msgstr "la signification de «\\x» varie avec l'option -traditional"
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "la signification de « \\x » est différente en C traditionel"
-#: cpplex.c:1758 f/lex.c:620
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
-msgstr "\\x utilisé sans être suivi des chiffres hexdécimaux"
+msgstr "\\x utilisé sans être suivi de chiffres en hexdécimal"
-#: cpplex.c:1762
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr "séquence d'échappement hexadécimale hors gamme"
-#: cpplex.c:1786
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr "séquence d'échappement octale hors gamme"
-#: cpplex.c:1801
+#: cpplex.c:1874
#, c-format
msgid "unknown escape sequence '\\%c'"
-msgstr "séquence d'échappement inconnue '\\%c'"
+msgstr "séquence d'échappement « \\%c » inconnue"
-#: cpplex.c:1803
+#: cpplex.c:1877
#, c-format
msgid "unknown escape sequence: '\\%03o'"
-msgstr "séquence d'échappement inconnue '\\%03o'"
+msgstr "séquence d'échappement « \\%03o » inconnue"
-#: cpplex.c:1807
-msgid "escape sequence out of range for character"
-msgstr "séquence d'échappement hors gamme pour le type caractère"
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "séquence d'échappement hors gamme pour son type"
-#: cpplex.c:1904
+#: cpplex.c:1973
msgid "empty character constant"
msgstr "constante caractère vide"
-#: cpplex.c:1908
-msgid "character constant too long"
-msgstr "constante caractère trop longue"
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "constante caractère trop longue pour son type"
-#: cpplex.c:1911
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr "constante caractère multi-caractères"
-#: cpplib.c:228
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
-msgstr "jetons superflus à la fin de la directive #%s"
+msgstr "éléments lexicaux superflus à la fin de la directive #%s"
-#: cpplib.c:281
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s est une extension GCC"
-#: cpplib.c:292
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
-msgstr "suggéré de ne pas utiliser #elif en C traditionnel"
+msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel"
-#: cpplib.c:295
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
-msgstr "C traditionel ignore #%s avec le # d'indentation"
+msgstr "le C traditionel ignore la directive #%s si le caractère # est indenté"
-#: cpplib.c:299
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
-msgstr "suggéré de cacher #%s en C traditionel avec l'indentation #"
+msgstr "il est suggéré de cacher #%s au C traditionel en indentant le « # »"
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "placer une directive dans les arguments d'une macro n'est pas portable"
-#: cpplib.c:333
+#: cpplib.c:378
msgid "style of line directive is a GCC extension"
-msgstr "style de ligne de directive est extension GCC"
+msgstr "la directive de style de ligne est extension GCC"
-#: cpplib.c:382
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
-msgstr "directive de pré-traitement invalide #%s"
+msgstr "directive de pré-traitement #%s invalide"
-#: cpplib.c:437
-#, c-format
-msgid "no macro name given in #%s directive"
-msgstr "aucun nom de macro donné dans la directive #%s"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "« defined » ne peut être utilisé comme nom de macro"
-#: cpplib.c:441
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
-msgstr "« %s » ne peut être utilisé comme nom de macro alors que c,est un opérateur en C++"
-
-#: cpplib.c:444
-msgid "macro names must be identifiers"
-msgstr "noms de macro doivent être des identificateurs"
+msgstr "« %s » ne peut être utilisé comme nom de macro car c'est un opérateur en C++"
-#: cpplib.c:455
+#: cpplib.c:509
#, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "« %s » ne peut être utilisé comme nom de macro"
+msgid "no macro name given in #%s directive"
+msgstr "aucun nom de macro donné dans la directive #%s"
-#: cpplib.c:493
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr "les noms de macro doivent être des identificateurs"
+
+#: cpplib.c:552
#, c-format
msgid "undefining \"%s\""
msgstr "indéfinition de « %s »"
-#: cpplib.c:536
+#: cpplib.c:598
msgid "missing terminating > character"
-msgstr "caractère > de terminaison est manquant"
+msgstr "caractère > de terminaison manquant"
-#: cpplib.c:574
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
-msgstr "#%s attend « FILENAME » ou <FILENAME>"
+msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
-#: cpplib.c:585
+#: cpplib.c:648
#, c-format
msgid "empty file name in #%s"
msgstr "nom de fichier vide dans #%s"
-#: cpplib.c:604
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr "#include_next dans un fichier source primaire"
-#: cpplib.c:611
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
-msgstr "#import est obsolète, utiliser une enveloppe #ifndef dans le fichier d'en-tête"
+msgstr "#import est obsolète, enveloppez le avec #ifndef dans le fichier d'en-tête"
-#: cpplib.c:619
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr "#include imbriqué trop profondément"
-#: cpplib.c:677
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
-msgstr "fanion « %s » invalide dans la ligne de directives"
+msgstr "fanion « %s » invalide dans la ligne de directive"
-#: cpplib.c:759
+#: cpplib.c:814
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "« %s » après #line n'est pas un nombre entier positif"
-#: cpplib.c:765
+#: cpplib.c:820
msgid "line number out of range"
msgstr "numéro de ligne hors gamme"
-#: cpplib.c:776 cpplib.c:847
+#: cpplib.c:831 cpplib.c:902
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "« %s » n'est pas un nom de fichier valide"
-#: cpplib.c:811
+#: cpplib.c:866
#, c-format
msgid "\"%s\" after # is not a positive integer"
-msgstr "\"%s\" après # n'est pas un nombre entier positif"
+msgstr "« %s » après # n'est pas un nombre entier positif"
-#: cpplib.c:916
+#: cpplib.c:973
msgid "invalid #ident directive"
msgstr "directive #ident invalide"
-#: cpplib.c:1004
+# FIXME
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
-msgstr "enregistrement de \"%s\" à la fois comme pragma et pragma d'espace de noms"
+msgstr "enregistrement de \"%s\" à la fois comme une pragma un espace de nom de pragma"
-#: cpplib.c:1007
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
-msgstr "#pragma %s %s est déjà enregistré"
+msgstr "la #pragma %s %s est déjà enregistrée"
-#: cpplib.c:1009
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
-msgstr "#pragma %s est déjà enregistré"
+msgstr "la #pragma %s est déjà enregistrée"
-#: cpplib.c:1084
+# FIXME
+#: cpplib.c:1143
msgid "#pragma once is obsolete"
-msgstr "utilisation une seule fois de #pragma est obsolète"
+msgstr "utiliser #pragma une seule fois est obsolète"
-#: cpplib.c:1087
+# FIXME
+#: cpplib.c:1146
msgid "#pragma once in main file"
-msgstr "#pragma utilisé une fois dans le fichier principal"
+msgstr "#pragma utilisé une seule fois dans le fichier principal"
-#: cpplib.c:1111
+# FIXME
+#: cpplib.c:1170
msgid "invalid #pragma GCC poison directive"
-msgstr "#pragma GCC directive empoisonée invalide"
+msgstr "la directive empoisonée #pragma GCC est invalide"
-#: cpplib.c:1120
+# FIXME
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "empoisonnement de la macro existente « %s »"
-#: cpplib.c:1140
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr "#pragma system_header ignorée en dehors du fichier d'inclusion"
-#: cpplib.c:1165
+#: cpplib.c:1226
#, c-format
msgid "cannot find source %s"
-msgstr "ne peut repérer le source %s"
+msgstr "impossible de trouver le source %s"
-#: cpplib.c:1169
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr "le fichier courant est plus vieux que %s"
-#: cpplib.c:1244
+#: cpplib.c:1346
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma prend une chaîne entourée de parenthèrese"
-#: cpplib.c:1343
+#: cpplib.c:1429
msgid "#else without #if"
msgstr "#else sans #if"
-#: cpplib.c:1348 tradcpp.c:3871
+#: cpplib.c:1434
msgid "#else after #else"
msgstr "#else après #else"
-#: cpplib.c:1350 cpplib.c:1384
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
-msgstr "le conditionel débute ici"
+msgstr "la condition débute ici"
-#: cpplib.c:1377
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr "#elif sans #if"
-#: cpplib.c:1382 tradcpp.c:3566
+#: cpplib.c:1468
msgid "#elif after #else"
msgstr "#elif après #else"
-#: cpplib.c:1413
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr "#endif sans #if"
-#: cpplib.c:1496 tradcpp.c:3263
+#: cpplib.c:1582
msgid "missing '(' after predicate"
-msgstr "«(» manquante après le prédicat"
+msgstr "« ( » manquante après le prédicat"
-#: cpplib.c:1511 tradcpp.c:3277
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
-msgstr "«)» manquante pour completer la réponse"
+msgstr "« ) » manquante pour completer la réponse"
-#: cpplib.c:1531 tradcpp.c:3283
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr "la réponse du prédicat est vide"
-#: cpplib.c:1561 tradcpp.c:3331
+#: cpplib.c:1647
msgid "assertion without predicate"
msgstr "assertion sans prédicat"
-#: cpplib.c:1563 tradcpp.c:3333
+#: cpplib.c:1649
msgid "predicate must be an identifier"
-msgstr "prédicat doit être un identificateur"
+msgstr "le prédicat doit être un identificateur"
-#: cpplib.c:1645 tradcpp.c:3430
+# FIXME
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr "« %s » re-asserti"
-#: cpplib.c:1875
+#: cpplib.c:1968
#, c-format
msgid "unterminated #%s"
msgstr "#%s non terminé"
-#: cppmacro.c:145
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro « %s » n'est pas utilisée"
+
+#: cppmacro.c:139 cppmacro.c:294
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "macro interne invalide « %s »"
-#: cppmacro.c:346
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "ne peut déterminer la date et l'heure"
+
+#: cppmacro.c:407
msgid "invalid string literal, ignoring final '\\'"
-msgstr "chaîne invalide, «\\» final est ignoré"
+msgstr "chaîne invalide, « \\ » final ignoré"
-#: cppmacro.c:438
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
-msgstr "collage de « %s » et de « %s » n'a pas donné des jetons valide de pré-traitement"
-
-#: cppmacro.c:564
-msgid "directives may not be used inside a macro argument"
-msgstr "directives ne peuvent être utilisées à l'intérieur d'un argument macro"
+msgstr "le collage de « %s » et de « %s » ne donne pas d'élément lexical de pré-traitement valide"
-#: cppmacro.c:576
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr "liste d'arguments non terminé invoquant la macro « %s »"
-
-#: cppmacro.c:593
+#: cppmacro.c:546
msgid "ISO C99 requires rest arguments to be used"
-msgstr "ISO C99 requiert que les arguments restants soient utilisés"
+msgstr "le C99 ISO requiert que tous les arguments soient utilisés"
-#: cppmacro.c:598
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
-msgstr "macro « %s » requiert %u arguments, mais seulement %u ont été donnés"
+msgstr "macro « %s » requiert %u arguments, mais seulement %u ont été passés"
-#: cppmacro.c:609
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
-msgstr "macro « %s » a passé %u arguments, mais seulement %u ont été pris"
+msgstr "la macro « %s » a reçu %u arguments, mais elle n'en prend que %u"
-#: cppmacro.c:692
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "liste d'arguments non terminée invoquant la macro « %s »"
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
-msgstr "macro « %s » identique à une fonction doit être utilisé avec des arguments en C traditionnel"
+msgstr "la macro « %s » ressemblant à une fonction doit utilisée avec des arguments en C traditionnel"
-#: cppmacro.c:1188
+#: cppmacro.c:1314
#, c-format
msgid "duplicate macro parameter \"%s\""
-msgstr "paramètre de macro en double « %s »"
+msgstr "paramètre de macro « %s » en double"
-#: cppmacro.c:1216
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
-msgstr "« %s » peut ne pas apparaître dans la liste des paramètres des macros"
+msgstr "« %s » peut ne pas apparaître parmi les paramètres de macros"
-#: cppmacro.c:1223
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
-msgstr "paramètres de macro doivent être séparés par des virgules"
+msgstr "les paramètres de macro doivent être séparés par des virgules"
-#: cppmacro.c:1240
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr "nom de paramètre manquant"
-#: cppmacro.c:1254
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
-msgstr "macros anonymes variables ont été introduites avec le C99"
+msgstr "les macros anonymes à nombre variable d'arguments ont été introduites avec le C99"
-#: cppmacro.c:1257
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
-msgstr "ISO C ne permet les macros variables nommées"
+msgstr "le C ISO ne permet pas les macros nommées à nombre variable d'arguments"
-#: cppmacro.c:1266
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
-msgstr "«)» manquante dans la liste des paramètres de macros"
+msgstr "« ) » manquante dans la liste des paramètres de macros"
-#: cppmacro.c:1344
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
-msgstr "ISO C requiert des blancs après le nom de macro"
+msgstr "le C ISO requiert un blanc après le nom de la macro"
-#: cppmacro.c:1374
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
-msgstr "«#» n'est pas suivi d'un paramètre de macro"
+msgstr "« # » n'est pas suivi d'un paramètre de macro"
-#: cppmacro.c:1394
+# FIXME
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
-msgstr "«##» ne peut apparaître à chacune des fins de l'expansion de macros"
+msgstr "« ## » ne peut apparaître à chacune des fins de l'expansion de macros"
-#: cppmacro.c:1430
+#: cppmacro.c:1601
#, c-format
msgid "\"%s\" redefined"
msgstr "« %s » redéfini"
-#: cppmacro.c:1434
+#: cppmacro.c:1606
msgid "this is the location of the previous definition"
msgstr "ceci est la localisation d'une précédente définition"
-#: cppmacro.c:1498
+#: cppmacro.c:1657
#, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
-msgstr "argument macro « %s » devrait être déclaré de champ de chaîne avec -traditional."
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "l'argument macro « %s » serait changé en chaine en C traditionnel"
-#: cppmacro.c:1522
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
-msgstr "type de hachage invalide %d dans cpp_macro_definition"
-
-#: cppmain.c:121
-#, c-format
-msgid "invalid option %s"
-msgstr "option invalide %s"
+msgstr "type de hachage %d invalide dans cpp_macro_definition"
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "« %s » n'est pas une option valide pour le préprocesseur"
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr "trop de fichiers d'entrée"
-#: cse.c:7112
-#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
-msgstr ";; traitement de blocs de %d à %d, %d initialisés.\n"
-
-#: diagnostic.c:784
+#: cpptrad.c:841
#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: AVERTISSEMENT: "
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "récursion détectée lors de l'expansion de la macro « %s »"
-#: diagnostic.c:791
+# FIXME: Initialisé, ou ensembles?
+#: cse.c:7195
#, c-format
-msgid "%s: warning: "
-msgstr "%s: AVERTISSEMENT: "
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; traitement du bloc de %d à %d, %d initialisés.\n"
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr "((anonyme))"
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
-msgstr "%s: avertissements ont été traités commes des erreurs\n"
+msgstr "%s : les avertissements sont traités commes des erreurs\n"
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
-msgstr "%s: %s: "
-
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr "désolé, pas implanté: "
+msgstr "%s : %s : "
-#: diagnostic.c:1076
+# I18N
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr "%s "
-#: diagnostic.c:1078
+# I18N
+#: diagnostic.c:1056
#, c-format
msgid " %s"
msgstr " %s"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
-msgstr "Au niveau supérieur:"
+msgstr "Hors de toute fonction :"
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, c-format
msgid "In member function `%s':"
-msgstr "Dans le membre de la fonction « %s »:"
+msgstr "Dans la fonction membre « %s » :"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr "Dans la fonction « %s »:"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
-msgstr "compilation terminatée.\n"
+msgstr "compilation terminée.\n"
-#: diagnostic.c:1227
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
-msgstr "%s:%d: rendu confus par les erreurs précédentes, abandon\n"
+msgstr "%s:%d: embrouillé par les erreurs précédentes, abandon\n"
-#: diagnostic.c:1242 diagnostic.c:1392
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
"with preprocessed source if appropriate.\n"
"See %s for instructions.\n"
msgstr ""
-"SVP soumettre un rapport complet d'anomalies,\n"
-"avec le source pré-traité si cela est approprié.\n"
-"Consulter %s pour les instructions.\n"
+"Veuillez soumettre un rapport complet d'anomalies,\n"
+"avec le source pré-traité si nécessaire.\n"
+"Consultez %s pour plus de détail.\n"
-#: diagnostic.c:1390
+# FIXME
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
-msgstr "erreur interne de compilateur: erreur pour rapporter une routine ré-entée\n"
+msgstr "erreur interne au compilateur : routine de rapport d'erreur préemptée.\n"
-#: diagnostic.c:1452
+#: diagnostic.c:1376
#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "Erreur internal du compilateur dans %s, à %s:%d"
+msgid "in %s, at %s:%d"
+msgstr "dans %s, à %s:%d"
-#: diagnostic.c:1497
+# FRONT
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
-msgstr "Dans le fichier inclus à partir de %s:%d"
+msgstr "Dans le fichier inclus depuis %s:%d"
-#: diagnostic.c:1500
+# I18N: This line should be indented with the previous entry
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
" from %s:%d"
msgstr ""
",\n"
-" à partir de %s:%d"
+" depuis %s:%d"
-#: diagnostic.c:1501
+# I18N
+#: diagnostic.c:1401
msgid ":\n"
msgstr ":\n"
-#: diagnostic.c:1534 diagnostic.c:1551
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
-msgstr "« %s » est déprécié (déclaré à %s:%d)"
+msgstr "« %s » est obsolète (déclaré à %s:%d)"
-#: diagnostic.c:1554
+#: diagnostic.c:1465
#, c-format
msgid "`%s' is deprecated"
-msgstr "« %s » est déprécié"
+msgstr "« %s » est obsolète"
-#: diagnostic.c:1557
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
-msgstr "type déprécié (déclaré à %s:%d)"
+msgstr "type est obsolète (déclaré à %s:%d)"
-#: diagnostic.c:1560
+#: diagnostic.c:1471
msgid "type is deprecated"
-msgstr "type déprécié"
+msgstr "type est obsolète"
+
+# FIXME
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "le dominateur de %d devrait être %d, et non %d"
-#: dwarf2out.c:3056
+#: dwarf2out.c:3135
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s n'est pas implanté\n"
-#: dwarfout.c:2089
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
-msgstr "regno interne mal fait: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "regno interne mal fait : « %s » a regno = %d\n"
-#: dwarfout.c:6291
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "le support du format de débogage DWARF1 est obsolète"
+
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr "ne peut repérer le répertoire courant"
-#: emit-rtl.c:1098
+#: emit-rtl.c:1155
msgid "can't access real part of complex value in hard register"
-msgstr "ne peut accéder la partie réelle d'une valeur complexe dans le registre matériel"
+msgstr "ne peut accéder à la partie réelle d'une valeur complexe dans un registre matériel"
-#: emit-rtl.c:1120
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
-msgstr "ne peut accéder la partie imaginaire d'une valeur complexe dans le registre matériel"
+msgstr "ne peut accéder à la partie imaginaire d'une valeur complexe dans un registre matériel"
-#: emit-rtl.c:3271
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
-msgstr "ICE: emit_insn utilisé où emit_jump_insn est attendu:\n"
+msgstr "ICE : emit_insn utilisé là où emit_jump_insn était attendu :\n"
#: errors.c:136
#, c-format
msgid "abort in %s, at %s:%d"
msgstr "abandon dans %s, à %s:%d"
-#: except.c:382
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
-msgstr "traitement d'exceptions désactivé, utiliser -fexceptions pour l'activer"
+msgstr "traitement des exceptions désactivé, utiliser -fexceptions pour l'activer"
-#: except.c:3235
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
-msgstr "argument de « __builtin_eh_return_regno » doit être une constante"
+msgstr "l'argument de « __builtin_eh_return_regno » doit être une constante"
-#: except.c:3346 except.c:3368
+#: except.c:3137
msgid "__builtin_eh_return not supported on this target"
-msgstr "« __builtin_eh_return » n'est pas supportée sur cette cible"
+msgstr "« __builtin_eh_return » n'est pas possible sur cette cible"
-#: explow.c:1369
+# FIXME
+#: explow.c:1408
msgid "stack limits not supported on this target"
-msgstr "limites de pile ne sont pas supportées sur cette cible"
+msgstr "les limites de la pile ne sont pas supportées sur cette cible"
-#: expr.c:2948
+#: expr.c:3355
msgid "function using short complex types cannot be inline"
-msgstr "foncton utilsant un type complex short ne peut être en ligne"
+msgstr "un foncton utilisant un type « complex short » ne peut être en ligne"
-#: expr.c:5810 expr.c:5819 expr.c:5828 expr.c:5833 expr.c:6120 expr.c:6136
+# FRONT
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
-msgstr "opération sur de large entier n'est pas supportée"
+msgstr "opération sur de large entier non supportée"
-#: expr.c:6185
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr "taille du paramètre précédent dépend de « %s »"
-#: expr.c:6531
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr "valeur retournée dans block_exit_expr"
-#: final.c:1209
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "ne peut prendre l'adresse de « ceci », laquelle est une expression rvalue"
+
+#: final.c:1342
msgid "negative insn length"
msgstr "longueur négative insn"
-#: final.c:2628
+#: final.c:2793
msgid "could not split insn"
msgstr "n'a pu séparer insn"
-#: final.c:2976
+#: final.c:3141
msgid "invalid `asm': "
msgstr "« asm » invalide: "
-#: final.c:3160
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr "assemblage de dialectes alternatifs imbriqués"
-#: final.c:3177 final.c:3189
+#: final.c:3345 final.c:3357
msgid "unterminated assembly dialect alternative"
msgstr "assemblage de dialectes alternatifs non terminé"
-#: final.c:3233
+#: final.c:3401
#, c-format
msgid "operand number missing after %%-letter"
msgstr "numéro d'opérande manquant après %%-letter"
-#: final.c:3236 final.c:3275
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr "nombre d'opérandes hors gamme"
-#: final.c:3294
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr "%%-code est invalide"
-#: final.c:3325
+#: final.c:3493
#, c-format
msgid "`%%l' operand isn't a label"
msgstr "opérande «%%l» n'est pas une étiquette"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3432 vmsdbgout.c:478 config/i386/i386.c:5315 config/pdp11/pdp11.c:1570
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr "constante flottante mal utilisée"
-#: final.c:3488 vmsdbgout.c:535 config/i386/i386.c:5369 config/pdp11/pdp11.c:1617
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr "expression invalide comme opérande"
-#: flow.c:354
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr "fonction peut être une possible candidate pour l'attribut « norreturn »"
-#: flow.c:359
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr "fonction avec « noreturn » effectue des retour"
@@ -5035,82 +5336,87 @@ msgstr "fonction avec « noreturn » effectue des retour"
msgid "control reaches end of non-void function"
msgstr "contrôle a atteint la fin non void de la fonction"
-#: flow.c:1600
+#: flow.c:1642
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Tentative pour détruire le prologue/épilogue insn:"
-#: fold-const.c:3135 fold-const.c:3148
+#: fold-const.c:2546 fold-const.c:2559
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "comparaison est toujours %d en raison de la largeur du champ de bits"
-#: fold-const.c:4190 fold-const.c:4207
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr "comparaison est toujours %d"
-#: fold-const.c:4338
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr "« or » de tests non pairé de non égalité est troujours 1"
-#: fold-const.c:4343
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr "« and » de tests d'égalité mutuellement exclusifs est toujours 0"
-#: function.c:906 varasm.c:1530
+#: function.c:884 varasm.c:1503
#, c-format
msgid "size of variable `%s' is too large"
msgstr "taille de la variable « %s » est trop grande"
-#: function.c:5445
+#: function.c:3772
+#, fuzzy
+msgid "impossible constraint in `asm'"
+msgstr "impossible de contraindre les registres en « asm »"
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr "« %s » pourrait être utilisé sans être initialisé dans cette fonction"
-#: function.c:5452
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "variable « %s » pourrait être maltraitée par un «longjmp» ou un «vfork »"
-#: function.c:5471
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "argument « %s » pourrait être maltraitée par un «longjmp» ou un «vfork »"
-#: function.c:6337
+#: function.c:6420
msgid "function returns an aggregate"
msgstr "fonction retourne un aggrégat"
-#: function.c:6856
+#: function.c:6925
#, c-format
msgid "unused parameter `%s'"
msgstr "paramètre « %s » inutilisé"
-#: gcc.c:1102
+#: gcc.c:1107
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "abréviation %s est ambiguë"
-#: gcc.c:1129
+#: gcc.c:1134
#, c-format
msgid "incomplete `%s' option"
msgstr "option « %s » est incomplète"
-#: gcc.c:1140
+#: gcc.c:1145
#, c-format
msgid "missing argument to `%s' option"
msgstr "argument manquant à l'option « %s »"
-#: gcc.c:1153
+#: gcc.c:1158
#, c-format
msgid "extraneous argument to `%s' option"
msgstr "argument superflu à l'option « %s »"
-#: gcc.c:1460
+#: gcc.c:1486
msgid "Using built-in specs.\n"
msgstr "Utilisation des specs internes.\n"
-#: gcc.c:1634
+#: gcc.c:1667
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5119,37 +5425,42 @@ msgstr ""
"Initialisation des spec %s à « %s »\n"
"\n"
-#: gcc.c:1732
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr "Lecture des spécification à partir de %s\n"
-#: gcc.c:1830 gcc.c:1849
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "syntaxe des specs %%include mal composée après %ld caractères"
-#: gcc.c:1857
+#: gcc.c:1899
#, c-format
msgid "could not find specs file %s\n"
msgstr "ne peut repérer le fichiers des specs %s\n"
-#: gcc.c:1873 gcc.c:1881 gcc.c:1890 gcc.c:1899
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs de la syntaxe %%rename mal composées après %ld caractères"
-#: gcc.c:1908
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "specs de la spécification %s n'a pas été trouvé pour être renommer"
-#: gcc.c:1915
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
#, c-format
msgid "rename spec %s to %s\n"
msgstr "renommé les specs %s à %s\n"
-#: gcc.c:1917
+#: gcc.c:1965
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5158,25 +5469,25 @@ msgstr ""
"spec est « %s »\n"
"\n"
-#: gcc.c:1930
+#: gcc.c:1978
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "specs inconnus de la commande %% après %ld caractères"
-#: gcc.c:1941 gcc.c:1954
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "fichier de specs mal composé après %ld caractères"
-#: gcc.c:2008
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr "fichier de specs n'a pas de spécification pour l'édition de liens"
-#: gcc.c:2720
+#: gcc.c:2554
msgid "-pipe not supported"
msgstr "-pipe n'est pas supporté"
-#: gcc.c:2774
+#: gcc.c:2609
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5184,7 +5495,7 @@ msgstr ""
"\n"
"Aller de l'avant? (y ou n) "
-#: gcc.c:2873
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5195,152 +5506,159 @@ msgstr ""
"SVP soumettre un rapport complet d'anomalies.\n"
"Consulter %s pour les instructions."
-#: gcc.c:2891
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3024
+#: gcc.c:2883
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Usage: %s [options] fichier...\n"
-#: gcc.c:3025
+#: gcc.c:2884
msgid "Options:\n"
msgstr "Options:\n"
-#: gcc.c:3027
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr " -pass-exit-codes quitter avec le plus grand code d'erreur de la phase\n"
-#: gcc.c:3028
+#: gcc.c:2887
msgid " --help Display this information\n"
msgstr " --help afficher l'aide mémoire\n"
-#: gcc.c:3029
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help afficher les options spécifiques de la ligne de commande\n"
-#: gcc.c:3031
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr " (Utiliser «-v --help» pour afficher les options de la ligne de commande des sous-processus)\n"
-#: gcc.c:3032
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs afficher tous les construits des chaînes de specs\n"
-#: gcc.c:3033
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion afficher la version du compilateur\n"
-#: gcc.c:3034
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine afficher le processeur ciblé par le compilateur\n"
-#: gcc.c:3035
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs afficher les répertoires du chemin de recherche du compiltateur\n"
-#: gcc.c:3036
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
-msgstr " -print-libgcc-file-name afficher le nom de la librairie compagne du compilateur\n"
+msgstr " -print-libgcc-file-name afficher le nom de la bibliothèque compagne du compilateur\n"
-#: gcc.c:3037
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
-msgstr " -print-file-name=<lib> afficher le chemin d'accès complet vers la librairie <lib>\n"
+msgstr " -print-file-name=<lib> afficher le chemin d'accès complet vers la bibliothèque <lib>\n"
-#: gcc.c:3038
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<prog> afficher le chemin d'accès complet vers le composant du compilateur <prog>\n"
-#: gcc.c:3039
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory afficher la racine du répertoire des version libgcc\n"
-#: gcc.c:3040
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
msgstr ""
-" -print-multi-lib afficher la table de projection entre les options de la ligne de commande\n"
-" les multiples répertoires de recherches des librairies\n"
+" -print-multi-lib Afficher la table de projection entre les options de\n"
+" la ligne de commande et les multiples répertoires de\n"
+" recherches des bibliothèques\n"
+
+#: gcc.c:2902
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-directory afficher la racine du répertoire des version libgcc\n"
-#: gcc.c:3043
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<options> passer les <options> séparées par des virgules à l'assembleur\n"
-#: gcc.c:3044
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<options> passer les <options> séparées par des virgules au préprocesseur\n"
-#: gcc.c:3045
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<options> passer les <options> séparées par des virgules à l'éditeur de liens\n"
-#: gcc.c:3046
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <argument> passer l'<argument> à l'éditeur de liens\n"
-#: gcc.c:3047
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps ne pas détruire les fichiers intermédiaires\n"
-#: gcc.c:3048
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe utiliser des pipes au lieu de fichiers intermédiares\n"
-#: gcc.c:3049
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
msgstr " -time mesurer le temps d'exécution de chaque sous-processus\n"
-#: gcc.c:3050
+#: gcc.c:2910
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<fichier> écraser les specs internes à l'aide du contenu du <fichier>\n"
-#: gcc.c:3051
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
-msgstr " -std=<standard> assumer que les fichiers sources respectent le <standard>\n"
+msgstr " -std=<standard> Présumer que les fichiers sources respectent le <standard>\n"
-#: gcc.c:3052
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <répertoire> ajouter le <répertoire> aux chemins de recherche du compilateur\n"
-#: gcc.c:3053
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr " -b <machine> exécuter gcc pour la <machine> cible, si installé\n"
-#: gcc.c:3054
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr " -V <version> exécuter le numéro de <version> de gcc, si installée\n"
-#: gcc.c:3055
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v afficher les programmes invoqués par le compilateur\n"
-#: gcc.c:3056
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr " -### identique à -v mais les options et les commandes entre guillemets ne sont pas exécutées\n"
-#: gcc.c:3057
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E pré-traiter seulement; ne pas compiler, assembler ou éditer les liens\n"
-#: gcc.c:3058
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S compiler seulement; ne pas assembler ou éditer les liens\n"
-#: gcc.c:3059
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
msgstr " -S compiler et assembler, mais ne pas éditer les liens\n"
-#: gcc.c:3060
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <fichier> placer la sortie dans le <fichier>\n"
-#: gcc.c:3061
+#: gcc.c:2921
+#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
@@ -5349,7 +5667,7 @@ msgstr ""
" « none » signifiant d'utiliser le comportement par défaut\n"
" en tentant d'identifier le langage par l'extension du fichier\n"
-#: gcc.c:3068
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5362,17 +5680,28 @@ msgstr ""
" passés aux divers sous-processus invoqués par %s. Afin de passer\n"
" les autres options à ces processus l'option -W<lettre> doit être utilisé.\n"
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "l'option « -%c » requière un argument"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr "impossible d'exécuter « %s » : %s"
+
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3348
+#: gcc.c:3262
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3349
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
-msgstr "Copyright © 2002 Free Software Foundation, Inc.\n"
+#: gcc.c:3263
+#, fuzzy
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2001 Free Software Foundation, Inc.\n"
-#: gcc.c:3351 gcov.c:320
+#: gcc.c:3265 gcov.c:364
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -5382,69 +5711,62 @@ msgstr ""
"GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.\n"
"\n"
-#: gcc.c:3450
+#: gcc.c:3366
msgid "argument to `-Xlinker' is missing"
msgstr "argument de «-Xlinker» est manquant"
-#: gcc.c:3458
+#: gcc.c:3374
msgid "argument to `-l' is missing"
msgstr "argument pour «-l» est manquant"
-#: gcc.c:3475
+#: gcc.c:3391
msgid "argument to `-specs' is missing"
msgstr "argument de «-specs» est manquant"
-#: gcc.c:3490
+#: gcc.c:3406
msgid "argument to `-specs=' is missing"
msgstr "argument de «-specs=» est manquant"
-#: gcc.c:3521
-msgid "argument to `-b' is missing"
-msgstr "argument de «-b» est manquant"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr ""
-#: gcc.c:3536
+#: gcc.c:3445
msgid "argument to `-B' is missing"
msgstr "argument de «-B» est manquant"
-#: gcc.c:3606
-msgid "argument to `-V' is missing"
-msgstr "argument de «-V» est manquant"
-
-#: gcc.c:3627 gcc.c:3634 gcc.c:3641
-msgid "invalid version number format"
-msgstr "format de numéro de verson invalide"
-
-#: gcc.c:3752
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr "ne peut spécifier -o avec -c ou -S et de multiples compilations"
-#: gcc.c:3923
+#: gcc.c:3791
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "AVERTISSEMENT: -pipe ignoré parce que -save-temps a été spécifié"
-#: gcc.c:3927
+#: gcc.c:3795
msgid "warning: -pipe ignored because -time specified"
msgstr "AVERTISSEMENT: -pipe ignoré parce que -time a été spécifié"
-#: gcc.c:3939
+#: gcc.c:3807
msgid "argument to `-x' is missing"
msgstr "argument pour «-x» est manquant"
-#: gcc.c:3967
+#: gcc.c:3835
#, c-format
msgid "argument to `-%s' is missing"
msgstr "argument pour «-%s» est manquant"
-#: gcc.c:4028
+#: gcc.c:3896
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr "AVERTISSEMENT: «-x %s» après le dernier fichier d'entrée n'a pas d'effet"
-#: gcc.c:4327
+#: gcc.c:4241
msgid "invalid specification! Bug in cc"
msgstr "spécification invalide! Bug dans cc."
-#: gcc.c:4476
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr "%s\n"
@@ -5452,51 +5774,76 @@ msgstr "%s\n"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5029
+#: gcc.c:4955
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
-msgstr "échec du spec: «%%*» n'a pas été initialisé par concordance du patron"
+msgstr "échec du spec: « %%* » n'a pas été initialisé par concordance du patron"
-#: gcc.c:5038
+#: gcc.c:4964
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "AVERTISSEMENT: utilisation obsolète de l'opérateur %%[ dans les specs"
-#: gcc.c:5056
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "Traitement du spec %c%s%c, lequel est « %s »\n"
-#: gcc.c:5181
+#: gcc.c:5107
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "échec de spec: option « %c » de spec non reconnue"
-#: gcc.c:5291
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "Dans la fonction « %s »:"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "trop d'arguments pour la fonction « %s »"
+
+#: gcc.c:5256
+#, fuzzy
+msgid "malformed spec function name"
+msgstr "le transtypage spécifie le type de fonction"
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "trop peu d'arguments pour la fonction"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr "accolades non concordantes dans les specs"
-#: gcc.c:5969
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr "option «-%s» non reconnue"
-#: gcc.c:5975
+#: gcc.c:6087
#, c-format
msgid "install: %s%s\n"
msgstr "installés: %s%s\n"
-#: gcc.c:5976
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
msgstr "programmes: %s\n"
-#: gcc.c:5977
+#: gcc.c:6089
#, c-format
msgid "libraries: %s\n"
msgstr "libraries: %s\n"
-#: gcc.c:6025
+#: gcc.c:6146
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
@@ -5504,54 +5851,54 @@ msgstr ""
"\n"
"Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
-#: gcc.c:6041
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
msgstr "Configuré avec: %s\n"
-#: gcc.c:6055
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
msgstr "Modèle de thread: %s\n"
-#: gcc.c:6066
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
msgstr "version gcc %s\n"
-#: gcc.c:6068
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "version du pilote gcc %s exécutant le version %s de gcc\n"
-#: gcc.c:6076
+#: gcc.c:6197
msgid "no input files"
msgstr "pas de fichier à l'entrée"
-#: gcc.c:6114
+#: gcc.c:6235
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s compilateur n'est pas installé sur ce système"
-#: gcc.c:6189
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite"
-#: gcc.c:6232
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr "language %s n'est pas reconnu"
-#: gcc.c:6335
+#: gcc.c:6456
msgid "internal gcc abort"
msgstr "abandon interne de gcc"
-#: gcov.c:282
+#: gcov.c:325
msgid "Internal gcov abort.\n"
msgstr "Abandon interne de gcov.\n"
-#: gcov.c:295
+#: gcov.c:338
msgid ""
"Usage: gcov [OPTION]... SOURCEFILE\n"
"\n"
@@ -5559,7 +5906,7 @@ msgstr ""
"Usage: gcov [OPTION]... FICHIER-SOURCE\n"
"\n"
-#: gcov.c:296
+#: gcov.c:339
msgid ""
"Print code coverage information.\n"
"\n"
@@ -5567,19 +5914,19 @@ msgstr ""
"Produire les informations de la couverture du code.\n"
"\n"
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
msgstr " -h, --help afficher l'aide mémoire\n"
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
msgstr " -v, --version exécuter le numéro de <version> de gcc, si installée\n"
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr " -b, --branch-probabilities inclure les probabilités de branchement dans la sortie\n"
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
@@ -5587,11 +5934,11 @@ msgstr ""
" -c, --branch-counts donner le décompte de branchements pris\n"
" plutôt que les pourcentages\n"
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr " -n, --no-output ne créer de fichier de sortie\n"
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
@@ -5599,15 +5946,20 @@ msgstr ""
" -l, --long-file-names utiliser des longs noms de fichiers pour\n"
" les fichier sources d'inclusion\n"
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr " -f, --function-summaries produire un sommaire pour chaque fonction\n"
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
+#: gcov.c:349
+#, fuzzy
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
msgstr " -o, --object-directory RÉP rechercher les fichiers objets dans le RÉPertoire\n"
-#: gcov.c:307
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr ""
+
+#: gcov.c:351
#, c-format
msgid ""
"\n"
@@ -5618,263 +5970,472 @@ msgstr ""
"Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
"%s.\n"
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr "gcov (GCC) %s\n"
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr "Copyright © 2001 Free Software Foundation, Inc.\n"
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr "Ne pourrait pas ouvrir le fichier de blocs de base %s.\n"
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "Ne pourrait pas ouvrir le fichier de flux du programm %s.\n"
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr "Ne pourrait pas ouvrir le fichier de données %s.\n"
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
-msgstr "Assumer que tous les compteurs d'exécution sont à zéro.\n"
-
-#: gcov.c:478
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "Ne pourrait pas ouvrir le fichier de flux du programm %s.\n"
+msgstr "Suppose que tous les compteurs d'exécution sont à zéro.\n"
-#: gcov.c:489
+#: gcov.c:534
#, c-format
msgid "No executable code associated with file %s.\n"
msgstr "Aucun code exécutable associé avec le fichier %s.\n"
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
-msgstr "Le contenu du fichier .da a été épuisé trop rapidement\n"
+#: gcov.c:1186
+#, fuzzy, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%6.2f%% de lignes sources %d exécutés dans le fichier %s\n"
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
-msgstr "Le contenu du fichier .da n'a pas été épuisé\n"
+#: gcov.c:1191
+#, fuzzy, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "Pas de ligne exécutable dans le fichier %s\n"
-#: gcov.c:973
+#: gcov.c:1198
+#, fuzzy, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%6.2f%% de branchements %d exécutés dans le fichier %s\n"
+
+#: gcov.c:1203
+#, fuzzy, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%6.2f%% de branchements %d pris au moins une fois dans le fichier %s\n"
+
+#: gcov.c:1209
+#, fuzzy, c-format
+msgid "No branches in %s %s\n"
+msgstr "Pas de branchement dans le fichier %s\n"
+
+#: gcov.c:1211
+#, fuzzy, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%6.2f%% d'appels %d exécutés dans le fichier %s\n"
+
+#: gcov.c:1216
+#, fuzzy, c-format
+msgid "No calls in %s %s\n"
+msgstr "Pas d'appel dans le fichier %s\n"
+
+#: gcov.c:1351
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%6.2f%% des lignes sources %d exécutées dans la fonction %s\n"
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "N'a pas utiliser toutes les entrées bb du graphe, fonction %s\n"
-#: gcov.c:977
+#: gcov.c:1353
#, c-format
-msgid "No executable source lines in function %s\n"
-msgstr "Pas de lignes sources exécutables dans la fonction %s\n"
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr "block_num = %ld, num_blocks = %d\n"
-#: gcov.c:984
+#: gcov.c:1367
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%6.2f%% de branchements %d exécutés dans la fonction %s\n"
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "ERREUR : ligne numéro %ld inattendue\n"
-#: gcov.c:988
+#: gcov.c:1383
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%6.2f%% de branchements %d pris au mons une fois dans la fonction %s\n"
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "ERREUR : trop de blocs de base dans la fonction %s\n"
+
+#: gcov.c:1398
+#, fuzzy, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "Pas de lignes sources exécutables dans la fonction %s\n"
-#: gcov.c:993
+#: gcov.c:1470
#, c-format
-msgid "No branches in function %s\n"
-msgstr "Pas de branchement dans la fonction %s\n"
+msgid "Could not open source file %s.\n"
+msgstr "N'a pu ouvrir le fichier source %s.\n"
-#: gcov.c:995
+#: gcov.c:1480
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%6.2f%% d'appels %d exécutés dans la fonction %s\n"
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Attention : le fichier source %s est plus récent que %s\n"
-#: gcov.c:999
+#: gcov.c:1510
#, c-format
-msgid "No calls in function %s\n"
-msgstr "Pas d'appel dans la fonction %s\n"
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "EOF inattendue lors de la lecture du fichier source %s.\n"
-#: gcov.c:1126
+# FIXME: c'est de l'assembleur ?
+#: gcov.c:1532
#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
-msgstr "N'a pas utiliser toutes les entrées bb du graphe, fonction %s\n"
+msgid "call %2d never executed\n"
+msgstr "call %2d n'est jamais été exécuté\n"
+
+#: gcov.c:1535
+#, fuzzy, c-format
+msgid "call %2d returns %s\n"
+msgstr "appel %d a retourné = %s\n"
-#: gcov.c:1128
+#: gcov.c:1543
+#, fuzzy, c-format
+msgid "branch %2d never executed\n"
+msgstr "branchement %d n'a jamais été exécuté\n"
+
+#: gcov.c:1546
+#, fuzzy, c-format
+msgid "branch %2d taken %s\n"
+msgstr "branchement %d a pris = %s\n"
+
+#: gcov.c:1610
#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
-msgstr "block_num = %ld, num_blocks = %d\n"
+msgid "Creating %s.\n"
+msgstr "Création de %s.\n"
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "erreur d'écriture dans %s"
-#: gcov.c:1166
+#: gcov.c:1618
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
-msgstr "ERREUR: trop de blocs de base dans le fichier .bb %s\n"
+msgid "Could not open output file %s.\n"
+msgstr "N'a pu ouvrir le fichier d'entrée %s.\n"
-#: gcov.c:1243
+#: gcse.c:763
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%6.2f%% de lignes sources %d exécutés dans le fichier %s\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE désactivé: %d > 1000 blocs de base et %d >= 20 blocs edges/basic"
-#: gcov.c:1247
+#: gcse.c:775
#, c-format
-msgid "No executable source lines in file %s\n"
-msgstr "Pas de ligne exécutable dans le fichier %s\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE désactivé: %d vlocs de base et %d registres"
-#: gcov.c:1254
+#: genautomata.c:1490
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
-msgstr "%6.2f%% de branchements %d exécutés dans le fichier %s\n"
+msgid "Name `%s' contains quotes"
+msgstr ""
-#: gcov.c:1258
+#: genautomata.c:1621
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "ponctuation invalide « %c » dans la contrainte"
+
+#: genautomata.c:1650
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
-msgstr "%6.2f%% de branchements %d pris au moins une fois dans le fichier %s\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr ""
+
+#: genautomata.c:1682 genautomata.c:1685
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "utilisation invalide d'un type indéfini «%s %s»"
-#: gcov.c:1263
+#: genautomata.c:1720
+#, fuzzy, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "ponctuation invalide « %c » dans la contrainte"
+
+#: genautomata.c:1724
+#, fuzzy, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "ponctuation invalide « %c » dans la contrainte"
+
+#: genautomata.c:1760
#, c-format
-msgid "No branches in file %s\n"
-msgstr "Pas de branchement dans le fichier %s\n"
+msgid "invalid first string `%s' in presence_set"
+msgstr ""
-#: gcov.c:1265
+#: genautomata.c:1764
+#, fuzzy, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "séquence de contrôle invalide"
+
+#: genautomata.c:1800
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr "%6.2f%% d'appels %d exécutés dans le fichier %s\n"
+msgid "invalid first string `%s' in absence_set"
+msgstr ""
-#: gcov.c:1269
+#: genautomata.c:1804
#, c-format
-msgid "No calls in file %s\n"
-msgstr "Pas d'appel dans le fichier %s\n"
+msgid "invalid second string `%s' in absence_set"
+msgstr ""
-#: gcov.c:1281
+#: genautomata.c:1837
#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "N'a pu ouvrir le fichier source %s.\n"
+msgid "invalid string `%s' in define_automaton"
+msgstr ""
-#: gcov.c:1331
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "ponctuation invalide « %c » dans la contrainte"
+
+#: genautomata.c:1890
#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "N'a pu ouvrir le fichier d'entrée %s.\n"
+msgid "garbage after ) in reservation `%s'"
+msgstr ""
-#: gcov.c:1339
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "redéclaration invalide de « %D »"
+
+#: genautomata.c:1932
#, c-format
-msgid "Creating %s.\n"
-msgstr "Création de %s.\n"
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2425
+#, fuzzy, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "« %s » n'est pas déclaré"
-#: gcov.c:1387
+#: genautomata.c:2427
#, c-format
-msgid "call %d never executed\n"
-msgstr "appel %d n'a jamais été exécuté\n"
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, fuzzy, c-format
+msgid "unit `%s' excludes itself"
+msgstr "largeur de « %s » excède son type"
-#: gcov.c:1396
+#: genautomata.c:2473
#, c-format
-msgid "call %d returns = %s\n"
-msgstr "appel %d a retourné = %s\n"
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
-#: gcov.c:1406
+#: genautomata.c:2603 genautomata.c:2609
#, c-format
-msgid "call %d returns = %s%%\n"
-msgstr "appel %d a retourné = %s%%\n"
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
-#: gcov.c:1413
+#: genautomata.c:2623 genautomata.c:2629
#, c-format
-msgid "branch %d never executed\n"
-msgstr "branchement %d n'a jamais été exécuté\n"
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "duplication de déclaration de la méthode de classe « %s »"
-#: gcov.c:1423
+#: genautomata.c:2711
#, c-format
-msgid "branch %d taken = %s\n"
-msgstr "branchement %d a pris = %s\n"
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
-#: gcov.c:1433
+#: genautomata.c:2717
+#, fuzzy, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "« %D » est déjà déclaré dans cette portée"
+
+#: genautomata.c:2723
#, c-format
-msgid "branch %d taken = %s%%\n"
-msgstr "branchement %d a pris = %s%%\n"
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
-#: gcov.c:1444
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "« %s » n'est pas déclaré"
+
+#: genautomata.c:2747
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
-msgstr "EOF inattendue lors de la lecture du fichier source %s.\n"
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "champ « %s » déclaré comme une fonction"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "« %D » déclaré comme un ami"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "redéclaration de « %s »"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "duplication de déclaration de la méthode de classe « %s »"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, fuzzy, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "qu'une précédente déclaratio « %F »"
-#: gcse.c:758
+#: genautomata.c:2810 genautomata.c:2815
+#, fuzzy, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "#pragma %s %s est déjà enregistré"
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "#pragma %s %s est déjà enregistré"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, fuzzy, c-format
+msgid "automaton `%s' is not used"
+msgstr "mode de %s n'est pas un mode"
+
+#: genautomata.c:2950
+#, fuzzy, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "identificateur « %s » non déclaré"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "« %s » défini mais n'a pas été utilisé"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "déclaration faible de « %s » n'est pas supportée"
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "redéfinition de «union %s'"
+
+#: genautomata.c:5333
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "GCSE désactivé: %d > 1000 blocs de base et %d >= 20 blocs edges/basic"
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "pas d'argument"
+
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "profilage n'est pas implanté encore"
-#: gcse.c:770
+#: genautomata.c:9486 genautomata.c:9491
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
-msgstr "GCSE désactivé: %d vlocs de base et %d registres"
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
-#: graph.c:421 profile.c:950 profile.c:958 toplev.c:1835 toplev.c:4978 f/com.c:14258 java/jcf-parse.c:950 java/jcf-parse.c:1099 java/lex.c:1790 objc/objc-act.c:529
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+#, fuzzy
+msgid "Errors in DFA description"
+msgstr "aucune description encore"
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "erreur d'écriture dans %s"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "pas de fichier à l'entrée"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, c-format
msgid "can't open %s"
msgstr "ne peut ouvrir %s"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr "fix_sched_param: paramètre inconnu: %s"
-#: integrate.c:185
+#: integrate.c:174
msgid "function cannot be inline"
msgstr "fonction ne pas pas être en ligne"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr "varargs de fonction ne peuvent par être en ligne"
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr "fonction utilisant alloca ne pas pas être en ligne"
-#: integrate.c:196
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr "fonction utilisant setjmp ne pas pas être en ligne"
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr "fonction utilise « __builtin_eh_return »"
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr "fonction avec fonctions imbriquées ne peut pas être en ligne"
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
-msgstr "fonction avec étiquette d'adresses utilisée avec les initialiseurs ne peut pas être en ligne"
+msgstr "un fonction avec étiquette d'adresses utilisée pour l'initialisation ne peut pas être en-ligne (inline)"
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr "fonction trop grande pour être en ligne"
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr "pas de prototpe, et de adresse de paramètre utilisée; ne peut pas être en ligne"
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr "fonctions en ligne ne peuvent pas être supportées pour ce type de valeur retournée"
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr "fonction avec une valeur retournée de taille variable ne peut pas être en ligne"
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr "fonction avec un paramètre de taille variable ne peut pas être en ligne"
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr "fonction avec une unité transparente de paramètre ne peut pas être en ligne"
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr "fonction avec un saut calculé ne peut pas être en ligne"
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr "fonction avec un goto non local ne peut pas être en ligne"
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr "fonction avec des attributs spécifiques à la cible ne peut pas être en ligne"
@@ -5910,55 +6471,57 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "paramètre invalide « %s »"
-#: profile.c:429
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr ""
+
+#: profile.c:400
+#, fuzzy
+msgid ".da file corrupted"
+msgstr "Le contenu du fichier .da n'a pas été épuisé"
+
+#: profile.c:634
#, c-format
msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr "info de profilage corrompu: prob pour %d-%d pense être %d "
-#: profile.c:975
+#: profile.c:1226
#, c-format
msgid "file %s not found, execution counts assumed to be zero"
msgstr "fichier %s non repéré, compteur d'exécution assumé être à zéro"
-#: profile.c:1022
-msgid ".da file contents exhausted too early"
-msgstr "Le contenu du fichier .da a été épuisé trop rapidement"
-
-#: profile.c:1025
-msgid ".da file contents not exhausted"
-msgstr "Le contenu du fichier .da n'a pas été épuisé"
-
-#: protoize.c:599
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr "%s: abandon interne\n"
-#: protoize.c:690
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr "%s: erreur d'écriture au fichier « %s »: %s\n"
-#: protoize.c:735
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr "%s: usage «%s [ -VqfnkN ] [ -i <chaîne> ] [ nom-de-fichier ... ]»\n"
-#: protoize.c:738
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: usage «%s [ -VqfnkNlgC ] [ -B <répertoire> ] [ nom-de-fichier ... ]»\n"
-#: protoize.c:845
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr "%s: AVERTISSEMENT: aucun accès en lecture du fichier « %s »\n"
-#: protoize.c:853
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr "%s: AVERTISSEMENT: aucun accès en écriture du fichier « %s »\n"
-#: protoize.c:861
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr "%s: AVERTISSEMENT: aucun accès en écriture du répertoire contenant « %s »\n"
@@ -5966,17 +6529,17 @@ msgstr "%s: AVERTISSEMENT: aucun accès en écriture du répertoire contenant « %s
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1279
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr "%s: nom de fichier invalide: %s\n"
-#: protoize.c:1431
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr "%s: %s: ne peut obtenir l'état: %s\n"
-#: protoize.c:1452
+#: protoize.c:1395
#, c-format
msgid ""
"\n"
@@ -5985,137 +6548,137 @@ msgstr ""
"\n"
"%s: erreur fatale: fichier auxiliaire d'infos à la ligne %d\n"
-#: protoize.c:1788
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr "%s:%d: déclaration de fonction « %s » prend différentes formes\n"
-#: protoize.c:2046
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr "%s: en compilation « %s »\n"
-#: protoize.c:2069
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr "%s: en attente: %s\n"
-#: protoize.c:2074
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr "%s: sous-processus a reçu le signal fatal %d\n"
-#: protoize.c:2082
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr "%s: %s a terminé avec le statut %d\n"
-#: protoize.c:2134
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr "%s: AVERTISSEMENT: fichier des SYSCALLS « %s » est manquant\n"
-#: protoize.c:2143 protoize.c:2172
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr "%s: ne peut lire le fichier auxiliaire d'infos « %s »: %s\n"
-#: protoize.c:2188 protoize.c:2216
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr "%s: ne peut obtenir l'état du fichier auxiliaire d'infos « %s »: %s\n"
-#: protoize.c:2244
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr "%s: ne peut ouvrir le fichier auxiliaire d'infos « %s » en lecture: %s\n"
-#: protoize.c:2262
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr "%s: erreur lors de la lecture du fichier auxilaire d'infos « %s »: %s\n"
-#: protoize.c:2275
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr "%s: erreur lors de la fermeture du fichier auxiliaire d'infos « %s »: %s\n"
-#: protoize.c:2291
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr "%s: ne peut détruire le fichier auxiliaire d'infos « %s »: %s\n"
-#: protoize.c:2373 protoize.c:4375
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr "%s: ne peut détruire le fichier « %s »: %s\n"
-#: protoize.c:2452
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr "%s: AVERTISSEMENT: ne peut renommer le fichier « %s » à « %s »: %s\n"
-#: protoize.c:2577
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr "%s: définitions externes conflictuelles de « %s »\n"
-#: protoize.c:2581
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr "%s: déclarations de « %s » ne seront pas converties\n"
-#: protoize.c:2583
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: liste conflictuelle pour « %s » suit:\n"
-#: protoize.c:2616
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr "%s: AVERTISSEMENT: using la liste des formels de %s(%d) pour la fonction « %s »\n"
-#: protoize.c:2656
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: « %s » utilisé mais manquant dans les SYSCALLS\n"
-#: protoize.c:2662
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr "%s: %d: AVERTISSEMENT: pas de définition externe pour « %s »\n"
-#: protoize.c:2693
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr "%s: AVERTISSEMENT: pas de définition statique pour « %s » dans le fichier« %s »\n"
-#: protoize.c:2699
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr "%s: multiples définitions statiques de « %s » dans le fichier « %s »\n"
-#: protoize.c:2872 protoize.c:2875
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr "%s: %d: AVERTISSEMENT: trop de confusions dans le source\n"
-#: protoize.c:3081
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: AVERTISSEMENT: déclaration de varargs de fonction non convertis\n"
-#: protoize.c:3096
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr "%s: déclaration de la fonction « %s » non convertie\n"
-#: protoize.c:3219
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr "%s: AVERTISSEMENT: trop de paramètres de listes dans la déclaration de « %s »\n"
-#: protoize.c:3240
+#: protoize.c:3183
#, c-format
msgid ""
"\n"
@@ -6124,17 +6687,17 @@ msgstr ""
"\n"
"%s: AVERTISSEMENT: trop peu de paramètres de listes dans la déclaration de « %s »\n"
-#: protoize.c:3338
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr "%s: %d: AVERTISSEMENT: a obtenu « %s » mais attendait « %s »\n"
-#: protoize.c:3516
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr "%s: déclaration locale pour la fonction « %s » n'a pas été insérée\n"
-#: protoize.c:3543
+#: protoize.c:3486
#, c-format
msgid ""
"\n"
@@ -6143,64 +6706,64 @@ msgstr ""
"\n"
"%s: %d: AVERTISSEMENT: ne peut ajouter une déclaration de « %s » dans l'appel macro\n"
-#: protoize.c:3617
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr "%s: déclarations globale du fichier « %s » n'ont pas été insérées\n"
-#: protoize.c:3708 protoize.c:3738
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr "%s: définition de la fonction « %s » n'a pas été convertie\n"
-#: protoize.c:3727
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: AVERTISSEMENT: définition de %s n'a pas été convertie\n"
-#: protoize.c:4057
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr "%s: définition de « %s » trouvé à %s(%d)\n"
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4073
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr "%s: %d: AVERTISSEMENT: « %s » exclu par le préprocesseur\n"
-#: protoize.c:4076
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr "%s: définition de fonction n'a pas été convertie\n"
-#: protoize.c:4135
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr "%s: « %s » n'a pas été converti\n"
-#: protoize.c:4143
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr "%s: devrait convertir le fichier « %s »\n"
-#: protoize.c:4146
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr "%s: conversion du fichier « %s »\n"
-#: protoize.c:4156
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr "%s: ne peut obtenur l'état du fichier « %s »: %s\n"
-#: protoize.c:4198
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr "%s: ne peut ouvrir le fichier « %s » en lecture: %s\n"
-#: protoize.c:4213
+#: protoize.c:4156
#, c-format
msgid ""
"\n"
@@ -6209,420 +6772,401 @@ msgstr ""
"\n"
"%s: erreur de lecture du fichier d'entrée « %s »: %s\n"
-#: protoize.c:4247
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr "%s: ne peut créer/ouvrir un fichier propre « %s »: %s\n"
-#: protoize.c:4352
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr "%s: AVERTISSEMENT: fichier « %s » est déjà sauvegardé dans « %s »\n"
-#: protoize.c:4360
+#: protoize.c:4303
#, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "%s: ne peut lier le fichier « %s » à « %s »: %s\n"
-#: protoize.c:4390
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr "%s: ne peut créer/ouvrier le fichier de sortie « %s »: %s\n"
-#: protoize.c:4423
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr "%s: ne peut changer le mode du fichier « %s »: %s\n"
-#: protoize.c:4598
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr "%s: ne peut repérer le répertoire de travail: %s\n"
-#: protoize.c:4696
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: noms de fichiers d'entrée doivent avoir le suffixe .c: %s\n"
-#: real.c:824 real.c:1001
-msgid "conversion from NaN to int"
-msgstr "conversion de NaN en int"
-
-#: real.c:847
-msgid "conversion from NaN to unsigned int"
-msgstr "conversion de NaN en un int non signé"
-
-#: real.c:2730
-msgid "floating point overflow"
-msgstr "débordement de virgule flottante"
-
-#: real.c:4395 real.c:6675 real.c:6756
-msgid "overflow on truncation to integer"
-msgstr "débordement de troncation d'un entier"
-
-#: real.c:4467
-msgid "overflow on truncation to unsigned integer"
-msgstr "débordement lors de la troncation d'un entier non signé"
-
-#: real.c:5812
-#, c-format
-msgid "%s: argument domain error"
-msgstr "%s: erreur d'argument de domaine"
-
-#: real.c:5813
-#, c-format
-msgid "%s: function singularity"
-msgstr "%s: singularité de fonction"
-
-#: real.c:5814
-#, c-format
-msgid "%s: overflow range error"
-msgstr "%s: erreur de débordement de bornes"
-
-#: real.c:5815
-#, c-format
-msgid "%s: underflow range error"
-msgstr "%s: erreur de sous débordement de bornes"
-
-#: real.c:5816
-#, c-format
-msgid "%s: total loss of precision"
-msgstr "%s: perte totale de précision"
-
-#: real.c:5817
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr "%s: perte partielle de précision"
-
-#: real.c:5818
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr "%s: NaN - opération produite"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr ""
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "Contrainte de sortie %d doit spécifier un simple registre"
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr "contrainte de sortie %d ne doit pas être spécifié avec « %s » clobber"
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr "registres de sortie doivent être regroupés au haut de la pile"
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr "les registres implicitement dépilés doivent être groupés au haut de la pile"
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr "opérande de sortie %d doit utiliser la contrainte «&»"
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "ne peut utiliser « %s » comme le registre %s"
-#: regclass.c:793 config/ia64/ia64.c:3840 config/ia64/ia64.c:3847
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, c-format
msgid "unknown register name: %s"
msgstr "nom de registre inconnu: %s"
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr "variable registre globale suit la définition d'une fonction"
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr "registre utilisé pour deux variables registres globales"
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr "registre maltraité par un appel utilisé par un variable registre globale"
-#: regrename.c:1845
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr "validate_value_data: [%u] next_regno erroné pour une chaîne vide (%u)"
-#: regrename.c:1857
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: boucle dans la chaîne regno (%u)"
-#: regrename.c:1860
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno erroné (%u)"
-#: regrename.c:1872
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr "validate_value_data: [%u] registre non vide dans la chaîne (%s %u %i)"
-#: reload.c:1208
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr "ne peut recharger l'opérande de constante entière dans « asm »"
-#: reload.c:1230
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr "impossible de contraindre les registres en « asm »"
-#: reload.c:3389
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr "contrainte «&» utilisé sans classe registre"
-#: reload.c:3557
+#: reload.c:3629
msgid "unable to generate reloads for:"
msgstr "incapable de générer des recharges pour:"
-#: reload.c:3558 reload.c:3772
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr "contrainte d'opérande inconsistente en « asm »"
-#: reload1.c:1247
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr "taille de trame trop grande pour une vérification fiable de la pile"
-#: reload1.c:1250
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr "essayer de réduire le nombre de variables locales"
-#: reload1.c:1902
+#: reload1.c:1909
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr "ne peut repérer un registre dans la classe « %s » durant le rechargement «asm »"
-#: reload1.c:1906
+#: reload1.c:1913
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr "incapable de trouver un registre de déversement dans la classe « %s »"
-#: reload1.c:1908
+#: reload1.c:1915
msgid "this is the insn:"
msgstr "ceci est le insn:"
-#: reload1.c:3924
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr "opérande « asm » requiert une recharge impossible"
#. It's the compiler's fault.
-#: reload1.c:5040
+#: reload1.c:5052
msgid "could not find a spill register"
msgstr "ne peut repérer un registre de déversement"
-#: reload1.c:5045
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr "contrainte de l'opérande « asm » incompatible avec la taille de l'opérande"
#. It's the compiler's fault.
-#: reload1.c:6639
+#: reload1.c:6679
msgid "VOIDmode on an output"
msgstr "mode VOID sur une sortie"
-#: reload1.c:6640
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr "opérande de sortie est une constante dans « asm »"
-#: rtl-error.c:139
+#: rtl-error.c:140
msgid "unrecognizable insn:"
msgstr "insn non reconnaissable:"
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr "insn ne satisfait pas à ses contraintes:"
-#: rtl.c:627
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr "vérification RTL: accès de elt %d de « %s » avec le dernier elt %d dans %s, à %s:%d"
-#: rtl.c:642
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "vérification RTL: attendu elt %d de type « %c », a « %c » (rtx %s) dans %s, à %s:%d"
-#: rtl.c:658
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "vérification RTL: attendu elt %d de type « %c » ou « %c », a « %c » (rtx %s) dans %s, à %s:%d"
-#: rtl.c:671
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr "vérification RTL: code attendu « %s », a « %s » dans %s, à %s:%d"
-#: rtl.c:685
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr "vérification RTL: code attendu « %s » ou « %s », a « %s » dans %s, à %s:%d"
-#: rtl.c:700
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr "vérification RTL: accès de elt %d du vecteur avec le dernier elt %d dans %s, à %s:%d"
-#: stmt.c:927
+#: rtl.c:623
+#, fuzzy, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "vérification RTL: code attendu « %s », a « %s » dans %s, à %s:%d"
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr "saut vers « %s » saute de manière invalide dans un contour de binding"
-#: stmt.c:1163 stmt.c:3755
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr "étiquette « %s » utilisé avant de contenir le contour de binding"
-#: stmt.c:1343
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr "contrainte de sortie de l'opérande manque «=»"
-#: stmt.c:1358
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr "contrainte de sortie « %c » pour l'opérande %d n'est pas au début"
-#: stmt.c:1380
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr "contrainte de l'opérande contient «+» ou «-» incorrectement positionné"
-#: stmt.c:1386 stmt.c:1486
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr "contrainte «%%» utilisée avec la dernière opérande"
-#: stmt.c:1405
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr "contrainte concordante n'est pas valide dans une opérande de sortie"
-#: stmt.c:1477
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr "contrainte d'entrée de l'opérande contient « %c »"
-#: stmt.c:1517
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr "nombre d'opérandes invalides pour références de containte concordantes"
-#: stmt.c:1549
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr "ponctuation invalide « %c » dans la contrainte"
-#: stmt.c:1645
+#: stmt.c:1450
+#, fuzzy, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "le qualificateur du type de « %s » est en conflit avec une déclaration précédente"
+
+#: stmt.c:1540
#, c-format
msgid "unknown register name `%s' in `asm'"
msgstr "nom de registre inconnu « %s » dans «asm »"
-#: stmt.c:1689
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr "plus que %d opérandes dans « asm »"
-#: stmt.c:1748
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr "nombre de sortie %d n,est pas directement adressable"
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1817 stmt.c:1846
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr "opérande asm %d ne concorde pas probablement avec les contraintes"
-#: stmt.c:1992
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+#, fuzzy
+msgid "asm clobber conflict with output operand"
+msgstr "déclaration asm en conflit avec le changement de nom précédent"
+
+#: stmt.c:1894
+#, fuzzy
+msgid "asm clobber conflict with input operand"
+msgstr "déclaration asm en conflit avec le changement de nom précédent"
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr "trop d'alternatives dans « asm »"
-#: stmt.c:2004
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr "contraintes de l'opérande pour « asm » diffèrent en nombre d'alternatives"
-#: stmt.c:2057
+#: stmt.c:1994
#, c-format
msgid "duplicate asm operand name '%s'"
msgstr "nom d'opérande asm « %s » apparaît en double"
-#: stmt.c:2144
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr "accolade de fermeture manquante pour l'opérandé nommée"
-#: stmt.c:2172
+#: stmt.c:2109
#, c-format
msgid "undefined named operand '%s'"
msgstr "opérande nommée « %s » indéfinie"
-#: stmt.c:3692
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr "variable inutilisée « %s »"
-#: stmt.c:5167
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr "valeur d'énumération « %s » n'est pas traitée dans le switch"
-#: stmt.c:5193 stmt.c:5213
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr "valeur du case «%ld» n'est pas dans le type énuméré"
-#: stmt.c:5196 stmt.c:5216
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr "valeur du case «%ld» n'est pas dans le type énuméré « %s »"
-#: stor-layout.c:173
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "ceci est la première étiquette de défaut"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr "taille du type ne peut être explicitement évaluée"
-#: stor-layout.c:175
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr "type de taille variable déclaré à l'extérieur den'importe quelle fonction"
-#: stor-layout.c:456
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr "taille de « %s » est de %d octets"
-#: stor-layout.c:458
+#: stor-layout.c:489
#, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "taille de « %s » est plus grande que %d octets"
-#: stor-layout.c:856 stor-layout.c:1157
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr "attribut empaqueté provoque un alignement inefficient pour « %s »"
-#: stor-layout.c:858 stor-layout.c:1159
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr "attribut empaqueté n'est pas nécessaire pour « %s »"
-#: stor-layout.c:873
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr "remplissage du struct pour aligner « %s »"
-#: stor-layout.c:1121
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr "remplissage la taille du struct pour aligner les frontières"
-#: stor-layout.c:1164
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr "attribut empaqueté provoque un alignement inefficient"
-#: stor-layout.c:1166
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr "attribut empaqueté n'est pas nécessaire"
-#: timevar.c:448
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
msgid ""
"\n"
"Execution times (seconds)\n"
@@ -6631,760 +7175,819 @@ msgstr ""
"Temps d'exécution (secondes)\n"
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr " TOTAL :"
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "temps passé dans %s: %ld.%06ld (%ld%%)\n"
-#: tlink.c:428
+#: tlink.c:399
#, c-format
msgid "collect: reading %s\n"
msgstr "collect: lecture de %s\n"
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr "collect: recompilation de %s\n"
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr "collect: tordage de %s dans %s\n"
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr "collect: ré-édition des liens\n"
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ld a retourné %d code d'état d'exécution"
-#: toplev.c:895
+#: toplev.c:920
msgid "Generate debugging info in default format"
msgstr "Générer les information de mise au point dans le format par défaut"
-#: toplev.c:896
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr "Générer les information de mise au point dans le format étendu"
-#: toplev.c:898
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr "Générer des infos de mise au point de format STABS"
-#: toplev.c:899
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr "Générer des infos de mise au point de format STABS étendu"
-#: toplev.c:902
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr "Générer les informations de mise au point du format DWARF-1"
-#: toplev.c:904
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr "Générer les extensions des informations de mise au point du format DWARF-1"
-#: toplev.c:907
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr "Générer les informations de mise au point DWARF-2"
-#: toplev.c:910
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr "Générer les informations de mise au point du format XCOFF"
-#: toplev.c:911
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr "Générer les extensions de mise au point du format XCOFF"
-#: toplev.c:914
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr "Générer les informations de mise au point du format COFF"
-#: toplev.c:917
+#: toplev.c:942
msgid "Generate VMS format debug info"
msgstr "Générer des infos de mise au point de format VMS"
-#: toplev.c:961
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr "Exécuter une élimination DAWRF2 des doublons"
-#: toplev.c:963
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr "Ne pas stocker les flottants dans les registres"
-#: toplev.c:965
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr "Considérer toutes les référence en mémoire comme faite par des pointeurs volatiles"
-#: toplev.c:967
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr "Considérer toutes les références mémoire à des données globales comme volatiles"
-#: toplev.c:969
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr "Considérer toutes les références mémoire à des données statiques comme volatiles"
-#: toplev.c:971
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr "Déférer le dépilage des arguments de fonction de la pile plus tard"
-#: toplev.c:973
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr "Lorsque c'est possible ne pas générer des trames de pile"
-#: toplev.c:975
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr "Optimiser sur mesure les appels enfants et récursif"
-#: toplev.c:977
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr "Lorsque CSE s'exécute, suivre les sauts vers leurs cibles"
-#: toplev.c:979
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr "Lorsque CSE s'exécute, suivre les sauts considitionnels vers leurs cibles"
-#: toplev.c:981
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr "Effectuer un nombre mineur d'optimisations coûteuses"
-#: toplev.c:983
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
msgstr "Exécuter des optimisations de sauts de thread"
-#: toplev.c:985
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr "Exécuter un réduction en force des optimisations"
-#: toplev.c:987
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr "Exécuter un dé-roulement des boucles lorsque le compteur d'itération est connu"
-#: toplev.c:989
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr "Exécuter la boucle par désenroulement de toutes les boucles"
-#: toplev.c:991
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr "Générer des instructions prérecherchées, si disponible, pour les tableaux dans les boucles"
-#: toplev.c:993
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr "Forcer pour toutes les boucles des calculs invariants en dehors des boucles"
-#: toplev.c:995
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr "Renforcer la réduction de toutes les boucles par induction des variables"
-#: toplev.c:997
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr "Stocker les chaînes dans les sections d'écriture des données"
-#: toplev.c:999
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr "Autoriser les optimisations des trous spécifiques à une machine"
-#: toplev.c:1001
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr "Copier les opérandes mémoire dans les registres avant de les utiliser"
-#: toplev.c:1003
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr "Copier les constantes d'adresses mémoire dans les registres avant de les utiliser"
-#: toplev.c:1005
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr "Autoriser le maintien des adresses de fonction dans les registres"
-#: toplev.c:1007
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr "Intégrer les fonctions simples à l'intérieur des appelants"
-#: toplev.c:1009
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr "Générer le code pour les fonctions même si elles sont complètement en ligne"
-#: toplev.c:1011
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr "Porter attention au mot clé « inline »"
-#: toplev.c:1013
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr "Produire des variables constantes statiques même si elles ne sont pas utilisées"
-#: toplev.c:1015
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr "Vérifier les erreurs de syntaxes et puis stopper"
-#: toplev.c:1017
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr "Marquer les données comme partagées au lieu de privées"
-#: toplev.c:1019
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr "Autoriser la sauvegarde autour des appels de fonction"
-#: toplev.c:1021
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr "Retourner des aggrégats de type « short » en mémoire, pas dans les registres"
-#: toplev.c:1023
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr "Retourner des aggrégats de type « short » dans les registres"
-#: toplev.c:1025
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr "Tented de remplir de délais les fentes des instructions de branchement"
-#: toplev.c:1027
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr "Exécuter l'élimination de sous-expression du commun global"
-#: toplev.c:1029
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr "Exécuter un chargement efficace lors de l'élimination de sous-expression globale"
-#: toplev.c:1031
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr "Exécuter un stockage efficace lors de l'élimination de sous-expression globale"
-#: toplev.c:1033
+#: toplev.c:1055
+#, fuzzy
+msgid "Perform the loop optimizations"
+msgstr "Effectuer une optimisation sur mesure des appels"
+
+#: toplev.c:1057
+#, fuzzy
+msgid "Perform cross-jumping optimization"
+msgstr "Exécuter des optimisations de sauts de thread"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Changer le seuil pour la conversion en une exécution conditionnelle"
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr "Exécuter une passe CSE après une optimisation des boucles"
-#: toplev.c:1035
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr "Exécuter l'optimiseur de boucle deux fois"
-#: toplev.c:1037
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
msgstr "Détruire les vérifications de pointeurs nul inutiles"
-#: toplev.c:1039
-msgid "Pretend that host and target use the same FP format"
-msgstr "Prétendre que l'hôte et la cible utilise le format FP"
-
-#: toplev.c:1041
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
-msgstr "Reçéduler les instructions avant l'allocation de registres"
+msgstr "Réordonnancer les instructions avant l'allocation de registres"
-#: toplev.c:1043
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
-msgstr "Reçédulers les instructions après l'allocation de registres"
+msgstr "Réordonnancer les instructions après l'allocation de registres"
-#: toplev.c:1045
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
-msgstr "Autoriser le çédulage à travers les blocs de base"
+msgstr "Autoriser l'ordonnancement à travers les blocs de base"
-#: toplev.c:1047
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr "Autoriser le mouvement spéculatif de non chargements"
-#: toplev.c:1049
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr "Autoriser le mouvement spéculatif de quelques chargements"
-#: toplev.c:1051
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr "Autoriser le mouvement spéculatif de plusieurs chargements"
-#: toplev.c:1053
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr "Remplacer add,compare,branch avec des branchements utilisant un compteur registre"
-#: toplev.c:1055
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr "Générer du code indépendant de la position, si possible"
-#: toplev.c:1058
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr "Autoriser le traitement des exceptions"
-#: toplev.c:1060
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr "Générer simplement des tables étendues pour le traitement des exceptions"
-#: toplev.c:1062
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr "Générer des tables étendues exactes pour chaque bornes d'instruction"
-#: toplev.c:1064
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr "Supporter les exceptions synchrones des non appels"
-#: toplev.c:1066
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr "Insérer le code de profilage du programme de base"
-#: toplev.c:1068
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr "Créer les fichiers de données nécessaires par gcov"
-#: toplev.c:1070
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr "Utiliser les informations de profilage pour les probabilités de branchements"
-#: toplev.c:1072
+#: toplev.c:1100
+#, fuzzy
+msgid "Enable basic program profiling code"
+msgstr "Insérer le code de profilage du programme de base"
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr "Ré-ordonner les blocs de base pour améliorer l'emplacement de code"
-#: toplev.c:1074
+#: toplev.c:1104
+#, fuzzy
+msgid "Reorder functions to improve code placement"
+msgstr "Ré-ordonner les blocs de base pour améliorer l'emplacement de code"
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr "Renommer les registres lors de la passe d'optimisation"
-#: toplev.c:1076
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr "Effectuer la passe d'optimisation de la propagation-de-copie par registre"
-#: toplev.c:1078
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
msgstr "Ne pas placer de globaux non initialisés dans la section commune"
-#: toplev.c:1080
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr "Ne pas générer de directives .size"
-#: toplev.c:1082
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr "placer chaque fonction dans sa propre section"
-#: toplev.c:1084
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr "placer les items des données dans leur propre section"
-#: toplev.c:1086
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+#, fuzzy
+msgid "Add extra commentary to assembler output"
msgstr "Ajouter des commentaires additionnels à la sortie de l'assembleur"
-#: toplev.c:1088
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
-msgstr "Produire les initialiseurs globaux formattés pour GNU ld"
+msgstr "Produire des initialisations de globlales au format GNU ld"
-#: toplev.c:1090
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr "Autoriser l'optimisation des déplacements par registre"
-#: toplev.c:1092
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr "Effectuer la passe d'optimisation complète des des déplacements par les registres"
-#: toplev.c:1094
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr "Empaqueter les membres des structures ensembles sans trous"
-#: toplev.c:1096
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr "Insérer du code de vérificaion de la pile dans le programme"
-#: toplev.c:1098
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
-msgstr "Assumer que les arguments peuvent avoir des alias l'un vers l'autre et globaux"
+msgstr "Présumer que les arguments peuvent avoir des alias l'un vers l'autre et globaux"
-#: toplev.c:1100
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
-msgstr "Assumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre"
+msgstr "Présumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre"
-#: toplev.c:1102
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
-msgstr "Assumer que les arguments n'ont pas d'alias l'un vers l'autre ou globaux"
+msgstr "Présumer que les arguments n'ont pas d'alias l'un vers l'autre ou globaux"
-#: toplev.c:1104
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
-msgstr "Assumer que des règles stricts d'alias s'appliquent"
+msgstr "Présumer que des règles stricts d'alias s'appliquent"
-#: toplev.c:1106
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr "Aligner le début des boucles"
-#: toplev.c:1108
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr "Aligner les étiquettes qui sont seulement atteintes par sauts"
-#: toplev.c:1110
+#: toplev.c:1142
msgid "Align all labels"
msgstr "Aligner toutes les étiquettes"
-#: toplev.c:1112
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr "Aligner le début des fonctions"
-#: toplev.c:1114
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+#, fuzzy
+msgid "Attempt to merge identical constants across compilation units"
msgstr "Tentative de fusion de constantes identiques à travers des unités de compilation"
-#: toplev.c:1116
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr "Tentative de fusion de constantes identique et des variables constantes"
-#: toplev.c:1118
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "Supprimer dans la sortie les numéros d'instructions et de notes de lignes dans les vidanges de mises au point"
-#: toplev.c:1120
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr "Traiter les entrées/sorties des fonctins avec appels de profilage"
-#: toplev.c:1122
+#: toplev.c:1154
+#, fuzzy
+msgid "Put zero initialized data in the bss section"
+msgstr "Ne pas placer de globaux non initialisés dans la section commune"
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr "Autoriser les optimisations SSA"
-#: toplev.c:1124
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr "Autoriser la propagation SSA de constante conditionnelle"
-#: toplev.c:1126
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr "Autoriser l'élimination agressive SSA du code mort"
-#: toplev.c:1128
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr "Les symboles externes sont préfixés d'un caractère de soulignement"
-#: toplev.c:1130
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr "Traiter les directive #ident"
-#: toplev.c:1132
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr "Autoriser l'exécution de la passe rtl sur les trous avant sched2"
-#: toplev.c:1134
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr "Autoriser l'estimation des probabilités de branchement"
-#: toplev.c:1136
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr "Initialiser errno après les fonctions internes mathématiques"
-#: toplev.c:1138
+#: toplev.c:1174
msgid "Floating-point operations can trap"
msgstr "les opérations virgule flottante peuvent être attrappées"
-#: toplev.c:1140
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr "Permettre l'optimisation des maths qui peut violer les standards IEEE ou ANSI"
-#: toplev.c:1142
-msgid "Compile pointers as triples: value, base & end"
-msgstr "Compiler les pointeurs comme des triplets: valeur, base et fin"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr ""
-#: toplev.c:1144
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
+#: toplev.c:1180
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
msgstr "Générer du code pour vérifier les bornes avant de dé-référencer les pointeurs et les tableaux"
-#: toplev.c:1146
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr "Convertir les constantes flottantes en constantes en simple précision"
-#: toplev.c:1148
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr "Rapporter le temps pris par chaque passe de compilation à la fin de l'exécution"
-#: toplev.c:1150
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr "Rapporter toute allocation de mémoire permanente à la fin de l'exécution"
-#: toplev.c:1152
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr "Attrapper les débordements de signe dans addition/soustraction/multiplication"
-#: toplev.c:1169
-msgid "Compile just for ISO C89"
-msgstr "Compiler seulement pour ISO C89"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr "Utiliser l'allocation des registres par coloriage de graphe"
-#: toplev.c:1171
-msgid "Do not promote floats to double if using -traditional"
-msgstr "Ne pas promouvoir les flottants à des doubles avec -traditional"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr "Compiler seulement pour le C90 ISO"
-#: toplev.c:1173
+#: toplev.c:1209
msgid "Determine language standard"
msgstr "Déterminer le standard du langage"
-#: toplev.c:1177
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
msgstr "Rendre les champs de bits non signés par défaut"
-#: toplev.c:1181
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr "Rendre les « char » signés par défaut"
-#: toplev.c:1183
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr "Rendre les « char » non signés par défaut"
-#: toplev.c:1189
-msgid "Attempt to support traditional K&R style C"
-msgstr "Tenter de supporter le style de langage C traditionnel K&R"
-
-#: toplev.c:1195
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr "Ne pas reconnaître le mot clé « asm »"
-#: toplev.c:1198
+#: toplev.c:1228
msgid "Do not recognize any built in functions"
msgstr "Ne pas reocnnaître aucun construit dans les fonctions"
-#: toplev.c:1200
+#: toplev.c:1230
msgid "Assume normal C execution environment"
-msgstr "Assumer un environnement d'exécution normal C"
+msgstr "Présumer que l'environnement d'exécution C est normal"
-#: toplev.c:1203
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
-msgstr "Assumer que les librairies standards & main peuvent ne pas exister"
+msgstr "Présumer que les bibliothèques standards et main peuvent ne pas exister"
-#: toplev.c:1206
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr "Permettre des types différents pour les arguments de l'opérateur ?"
-#: toplev.c:1209
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr "Permettre l'utilisation de $ à l'intérieur d'identificateurs"
-#: toplev.c:1214
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr "Utiliser la même taille pour un double que pour un flottant"
-#: toplev.c:1217
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr "Utiliser le plus petit entier pour contenir l'énumération (enums)"
-#: toplev.c:1220
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr "Écraser le type sous-jacent de wchar_t vers « unsigned short »"
-#: toplev.c:1224
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr "Autoriser la plupart des messages d'avertissement"
-#: toplev.c:1226
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
msgstr "Avertir à propos des fonctions de transtypage avec des types incompatibles"
-#: toplev.c:1230
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
msgstr "Avertir à propos des fonctions qui pourraient être candidates pour les attributs de format"
-#: toplev.c:1233
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr "Avertir à propos des transtypage qui écartent les qualificateurs"
-#: toplev.c:1236
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr "Avertir à propose des souscripts dont le type est « char »"
-#: toplev.c:1239 toplev.c:1242
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr "Avertir si des commentaires imbriqués sont détectés"
-#: toplev.c:1245
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr "Avertir à propos des type de conversions confuses"
-#: toplev.c:1248
+#: toplev.c:1278
+#, fuzzy
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "Ne pas intercepter les divisions par zéros sur des entiers"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Avertir à propos des tests d'égalité sur des nombres flottants"
+
+#: toplev.c:1283
msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr "Avertir à propos des anomalies de format de printf/scanf/strftime/strfmon"
-#: toplev.c:1252
-msgid "Don't warn about strftime formats yielding 2 digit years"
-msgstr "Ne pas avertir à propos des formats de strftime ne laissant que 2 chiffres pour l'année"
-
-#: toplev.c:1255
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr "Ne pas avertir à propos d'un surplus d'arguments pour des fonctions de format"
-#: toplev.c:1257
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr "Avertir à propos des chaînes de format qui ne sont pas des chaînes"
-#: toplev.c:1260
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr "Avertir à propos des problèmes possibles de sécurité avec les formats de fonction"
-#: toplev.c:1263
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "Ne pas avertir à propos des formats de strftime ne laissant que 2 chiffres pour l'année"
+
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr "Avertir à propos des déclarations de fonctions implicites"
-#: toplev.c:1267
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr "Avertir lorsqu'une déclaration ne spécifie pas le type"
-#: toplev.c:1272
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr "Avertir à propos de l'utilisation de la directive #import"
-#: toplev.c:1276
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr "Ne pas avertir à propos de l'utilisation de « long long » avec -pedantic"
-#: toplev.c:1278
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr "Avertir à propos des déclarations douteuses de main"
-#: toplev.c:1281
+#: toplev.c:1316
msgid "Warn about possibly missing braces around initializers"
-msgstr "Avertir à propos des accolades possiblement manquantes autour des initialiseurs"
+msgstr "Avertir à propos des possibles accolades manquantes autour des initialisations"
-#: toplev.c:1284
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr "Avertir à propos des fonctions globales sans déclaration précédente"
-#: toplev.c:1287
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr "Avertir à propos des fonctions globales sans prototype"
-#: toplev.c:1290
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr "Avertir à propose de l'utilisation des chaînes de multi-caractères"
-#: toplev.c:1293
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr "Avertir à propos des externes qui n'est pas au niveau dans le champ du fichier"
-#: toplev.c:1296
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr "Avertir à propos du manque possible de parenthèses"
-#: toplev.c:1299
-msgid "Warn about possible violations of sequence point rules"
-msgstr "Avertir à propos des violations possibles des règles de séquence de points"
-
-#: toplev.c:1302
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
msgstr "Avertir à propos d'arithmétique portant sur un pointeur de fonction"
-#: toplev.c:1305
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr "Avertir à propos des déclarations multiples portant sur le même objet"
-#: toplev.c:1308
-msgid "Warn about signed/unsigned comparisons"
-msgstr "Avertir à propos des comparaisons signés/non signés"
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "le défaut choisi du type retourné est « int »"
-#: toplev.c:1311
-msgid "Warn about testing equality of floating point numbers"
-msgstr "Avertir à propos des tests d'égalité sur des nombres flottants"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Avertir à propos des violations possibles des règles de séquence de points"
-#: toplev.c:1314
-msgid "Warn about unrecognized pragmas"
-msgstr "Avertir à propos des pragmas non reconnus"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Avertir à propos des comparaisons signés/non signés"
-#: toplev.c:1317
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr "Avertir à propos des déclarations de fonction sans prototype"
-#: toplev.c:1320
-msgid "Warn about constructs whose meaning change in ISO C"
-msgstr "Avertir à propos de construits dont le sens change en ISO C"
+#: toplev.c:1352
+#, fuzzy
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Avertir à propos de construits dont le sens change en C ISO"
-#: toplev.c:1323
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr "Avertir lorsque des trigraphes sont rencontrés"
-#: toplev.c:1328
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "Avertir à propos des pragmas non reconnus"
+
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr "Marque les chaînes comme étant 'const char *'"
-#: toplev.c:1458
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr "Avertir lorsqu'une fonction est inutilisée"
-#: toplev.c:1460
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr "Avertir lorsqu'une étiquette est inutilisée"
-#: toplev.c:1462
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr "Avertir lorsqu'un paramètre de fonction est inutilisé"
-#: toplev.c:1464
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr "Avertir lorsque 'une variable est inutilisée"
-#: toplev.c:1466
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr "Avertir lorsque la valeur d'une expression n'est pas utilisée"
-#: toplev.c:1468
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr "Ne pas supprimer les avertissements pour les en-têtes système"
-#: toplev.c:1470
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr "Traiter tous les avertissements commes des erreurs"
-#: toplev.c:1472
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
-msgstr "Avertir lorsqu'une variable locale fait ombrage à une autre"
+msgstr "Avertir lorsqu'une variable locale masque une autre"
-#: toplev.c:1474
-msgid "Warn about enumerated switches missing a specific case"
+#: toplev.c:1524
+#, fuzzy
+msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "Avertir à propos d'un switch énuméré où un case spécific manque"
-#: toplev.c:1476
+#: toplev.c:1526
+#, fuzzy
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Avertir à propos d'un switch énuméré où un case spécific manque"
+
+#: toplev.c:1528
+#, fuzzy
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Avertir à propos d'un switch énuméré où un case spécific manque"
+
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr "Avertir à propos de structures retournés, unions ou tableaux"
-#: toplev.c:1478
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
msgstr "Avertir à propos des pointeurs convertis lesquels augment l'alignement"
-#: toplev.c:1480
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr "Avertir à propos du code qui ne sera jamais exécuté"
-#: toplev.c:1482
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
msgstr "Avertir à propos des variables automatiques non initialisées"
-#: toplev.c:1484
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr "Avertir lorsque des fonctions en ligne ne peuvent être en ligne"
-#: toplev.c:1486
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr "Avertir lorsque les attributs paquetés n'ont pas d'effet sur l'organtisation d'un struct"
-#: toplev.c:1488
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr "Avertir lorsque le remplissage est requis pour aligner les membres d'un struct"
-#: toplev.c:1490
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr "Avertir lorsque la passe d'optimisation est désactivée"
-#: toplev.c:1492
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr "Avertir à propos de l'utilisation des déclarations « __attribute__ ((deprecated)) »"
-#: toplev.c:1494
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr "Avertir à propos des fonctions qui seraient candidates pour des attributs non retournés"
-#: toplev.c:1565 toplev.c:4379 tradcpp.c:792
+#: toplev.c:1550
+#, fuzzy
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Avertir à propos des fonctions qui pourraient être candidates pour les attributs de format"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, c-format
msgid "invalid option `%s'"
msgstr "option invalide « %s »"
-#: toplev.c:1711
-#, c-format
-msgid "internal error: %s"
-msgstr "erreur interne: %s"
-
-#: toplev.c:2024
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr "« %s » utilisé mais n'a jamais été défini"
-#: toplev.c:2027
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr "« %s » déclaré «static » mais n'a jamais été défiie"
-#: toplev.c:2049
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr "« %s » défini mais n'a pas été utilisé"
@@ -7394,84 +7997,87 @@ msgstr "« %s » défini mais n'a pas été utilisé"
msgid "invalid register name `%s' for register variable"
msgstr "nom de registre invalide « %s » pour un variable registre"
-#: toplev.c:3279
-#, c-format
-msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "saut croisé désactivé: %d > 1000 blocs de base et %d >= 20 blocs edges/basic"
-
-#: toplev.c:3590
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr " -ffixed-<registre> marque le <registre> qui est rendu indisponibles pour le compilateur\n"
-#: toplev.c:3591
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr " -fcall-used-<registre> marquer le <registre> qui est corrompu par les appels de fonctions\n"
-#: toplev.c:3592
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr " -fcall-saved-<registre> marquer le <registre> qui est préservé à travers les fonctions\n"
-#: toplev.c:3593
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr " -finline-limit=<nombre> limiter la taille des fonction en ligne à <nombre>\n"
-#: toplev.c:3594
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr " -fmessage-length=<nombre> limiter la longueur des messages de diagnotiques à <nombre> de caractères par ligne. 0 supprime l'enroulement de ligne\n"
-#: toplev.c:3595
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr " -fdiagnostics-show-location=[once | every-line] indiquer combien de fois les information de localisation des sources doivent être produites, comme préfixe, au début d'un diagnostique lorsque les lignes doivent s'enrouler sur d'autres\n"
-#: toplev.c:3606
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
msgid " -O[number] Set optimization level to [number]\n"
msgstr " -O[NIVEAU] utiliser le NIVEAU d'optimisation\n"
-#: toplev.c:3607
+#: toplev.c:3719
msgid " -Os Optimize for space rather than speed\n"
msgstr " -Os optimiser l'utilisation de l'espace plutôt que la vitesse\n"
-#: toplev.c:3619
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
-msgstr " -pedantic émettre les avertissements nécessaires pour être conforme de façon stricte à ISO C\n"
+msgstr " -pedantic émettre les avertissements nécessaires pour être conforme de façon stricte au C ISO\n"
-#: toplev.c:3620
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr " -pedantic-errors identique à -pedantic sauf que les erreurs sont produites\n"
-#: toplev.c:3621
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr " -w supprimer les avertissements\n"
-#: toplev.c:3622
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr " -W autoriser les avertissements additionnels\n"
-#: toplev.c:3633
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr " -Wunused autoriser les avertissements pour signaler les non utilisés\n"
-#: toplev.c:3634
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr " -Wlarger-than-<nombre> avertir si un objet est plus grand que <nombre> d'octets\n"
-#: toplev.c:3635
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr " -p autoriser le profilage des fonctions\n"
-#: toplev.c:3637
-msgid " -a Enable block profiling \n"
-msgstr " -a autoriser le profilage des blocs \n"
-
-#: toplev.c:3640
-msgid " -ax Enable jump profiling \n"
-msgstr " -ax autoriser le profilage des sauts \n"
-
-#: toplev.c:3642
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr " -o <fichier> produire la sortie dans le <fichier> \n"
-#: toplev.c:3643
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
@@ -7480,35 +8086,35 @@ msgstr ""
" petites que <nombre> d'octets dans une section\n"
" spéciale (sur certaine cible)\n"
-#: toplev.c:3654
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr " -aux-info <fichier> produire une info de déclaration dans le <fichier>\n"
-#: toplev.c:3655
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr " -quiet ne pas afficher les fonctions compilées ou le temps écoulé\n"
-#: toplev.c:3656
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr " -version afficher la version du compilateur\n"
-#: toplev.c:3657
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr " -d[lettres] autoriser les vidanges pour des passes spécifiques du compilateur\n"
-#: toplev.c:3658
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr " -dumpbase <fichier> nom de base à utiliser pour les vidanges de passes spécifiques\n"
-#: toplev.c:3660
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
-msgstr " -fsched-verbose=<numéro> initialiser le niveau de verbosité du céduleur\n"
+msgstr " -fsched-verbose=<numéro> initialiser le niveau de verbosité de l'ordonnanceur\n"
-#: toplev.c:3662
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr " --help afficher l'aide-mémoire\n"
-#: toplev.c:3677
+#: toplev.c:3783
msgid ""
"\n"
"Language specific options:\n"
@@ -7516,12 +8122,12 @@ msgstr ""
"\n"
"Options spécifiques au langage:\n"
-#: toplev.c:3689
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr " %-23.23s [non documenté]\n"
-#: toplev.c:3697 toplev.c:3711
+#: toplev.c:3803 toplev.c:3817
#, c-format
msgid ""
"\n"
@@ -7530,7 +8136,7 @@ msgstr ""
"\n"
"Il y a des options spécifiques %s qui ne sont pas documentés aussi.\n"
-#: toplev.c:3701
+#: toplev.c:3807
#, c-format
msgid ""
"\n"
@@ -7539,7 +8145,7 @@ msgstr ""
"\n"
" Options pour %s:\n"
-#: toplev.c:3738
+#: toplev.c:3844
msgid ""
"\n"
"Target specific options:\n"
@@ -7547,12 +8153,12 @@ msgstr ""
"\n"
"Options spécifiques à la cible:\n"
-#: toplev.c:3752 toplev.c:3771
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr " -m%-23.23s [non documenté]\n"
-#: toplev.c:3780
+#: toplev.c:3886
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
@@ -7560,68 +8166,73 @@ msgstr ""
"\n"
"Il y a des options spécifiques à la cible qui ne sont pas documentés aussi.\n"
-#: toplev.c:3782
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr " Ils existent, mais ils ne sont pas documentés.\n"
-#: toplev.c:3835
+#: toplev.c:3941
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "option gcc de mise au point non reconnue: %c"
-#: toplev.c:3905
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "« %s »: inconnu ou non supporté option -g"
+
+#: toplev.c:4034
#, c-format
msgid "unrecognized register name `%s'"
msgstr "nom de registre non reconnue « %s »"
-#: toplev.c:3930 toplev.c:4808
+#: toplev.c:4059 toplev.c:5012
#, c-format
msgid "unrecognized option `%s'"
msgstr "option « %s » non reconnue"
-#: toplev.c:3974
+#: toplev.c:4107
msgid "-Wid-clash-LEN is no longer supported"
msgstr "-Wid-clash-LEN n'est plus supportée"
-#: toplev.c:4051
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr "utiliser -gdwarf -g%d pour DWARF v1, niveau %d"
-#: toplev.c:4054
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr "utiliser -gdwarf-2 pour DWARF v2"
-#: toplev.c:4059
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr "option « %s » ignorée en raison de la spécification du niveau de mise au poitn invalide"
-#: toplev.c:4082 toplev.c:4806
+#: toplev.c:4215 toplev.c:5010
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr "« %s »: inconnu ou non supporté option -g"
-#: toplev.c:4089
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr "« %s » ignoré, en conflit avec «-g%s»"
-#: toplev.c:4168
+#: toplev.c:4304
msgid "-param option missing argument"
msgstr "argument manquant pour l'option -param"
-#: toplev.c:4177
+#: toplev.c:4313
#, c-format
msgid "invalid --param option: %s"
msgstr "option invalide --param: %s"
-#: toplev.c:4189
+#: toplev.c:4325
#, c-format
msgid "invalid parameter value `%s'"
msgstr "valeur du paramètre invalide « %s »"
-#: toplev.c:4396
+#: toplev.c:4565
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7632,1125 +8243,916 @@ msgstr ""
"%s\tcompilé par GNU C version %s.\n"
"%s%s%s version %s (%s) compilé par CC.\n"
-#: toplev.c:4452
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
msgid "options passed: "
msgstr "options passées: "
-#: toplev.c:4481
+#: toplev.c:4659
msgid "options enabled: "
msgstr "options autorisées: "
-#: toplev.c:4540 java/jcf-write.c:3373
+#: toplev.c:4718 java/jcf-write.c:3453
#, c-format
msgid "can't open %s for writing"
msgstr "ne peut ouvrir %s en écriture"
-#: toplev.c:4798
+#: toplev.c:5002
#, c-format
msgid "ignoring command line option '%s'"
msgstr "option « %s » de la ligne de commande est ignorée"
-#: toplev.c:4801
+#: toplev.c:5005
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr "(c'est valide pour %s mais pas pour le langage séclectionné)"
-#: toplev.c:4835
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized n'est pas supporté sans -O"
-#: toplev.c:4894
+#: toplev.c:5094
msgid "instruction scheduling not supported on this target machine"
-msgstr "instruction de cédulage n'est pas supportée sur cette machine cible"
+msgstr "instruction d'ordonnancement n'est pas supportée sur cette machine cible"
-#: toplev.c:4898
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr "cette machine cible n'a pas de branchments avec délais"
-#: toplev.c:4907
-msgid "profiling does not work without a frame pointer"
-msgstr "profilage ne fonctionne pas sans un pointeur de trames"
-
-#: toplev.c:4922
+#: toplev.c:5112
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore n'est pas supporté sur cette machine cible"
-#: toplev.c:4985
+#: toplev.c:5175
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections n'est pas supporté pour cette cible"
-#: toplev.c:4990
+#: toplev.c:5180
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections n'est pas supporté pour cette machine cible"
-#: toplev.c:4997
+#: toplev.c:5187
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections désactivé; cela rend le profilage impossible"
-#: toplev.c:5004
+#: toplev.c:5194
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fprefetch-loop-arrays n'est pas supporté pour cette machine cible"
-#: toplev.c:5010
+#: toplev.c:5200
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "-fprefetch-loop-arrays n'est pas supporté sur cette machine cible (essayer -march options)"
-#: toplev.c:5019
+#: toplev.c:5209
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays n'est pas supporté avec -Os"
-#: toplev.c:5025
+#: toplev.c:5215
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections peut affecter la mise au point sur quelques machines cibles."
-#: toplev.c:5146
+#: toplev.c:5327
#, c-format
msgid "error writing to %s"
msgstr "erreur d'écriture dans %s"
-#: toplev.c:5148 java/jcf-parse.c:969 java/jcf-write.c:3380
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, c-format
msgid "error closing %s"
msgstr "erreur de fermeture %s"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "nombres flottants ne sont pas permis dans les expressions #if"
-
-#: tradcif.y:277
-msgid "invalid number in #if expression"
-msgstr "nombre invalide dans l'expression #if"
-
-#: tradcif.y:357
-msgid "invalid character constant in #if"
-msgstr "constante de caractères invalide dans le #if"
-
-#: tradcif.y:394
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "chaînes entre quillemets ne sont pas allouées dans les expression #if"
-
-#: tradcif.y:407
-msgid "invalid token in expression"
-msgstr "jeton invalide dans l'expression"
-
-#: tradcif.y:498
-msgid "octal character constant does not fit in a byte"
-msgstr "constante de caractères en octal ne peut être insérée dans un octet"
-
-#: tradcif.y:519
-msgid "hex character constant does not fit in a byte"
-msgstr "constante de caractères en hexadémical ne peut être insérée dans un octet"
-
-#: tradcif.y:550
-msgid "empty #if expression"
-msgstr "expression #if vide"
-
-#: tradcif.y:564
-msgid "Junk after end of expression."
-msgstr "Rebut à la fin de l'expression."
-
-#: tradcpp.c:145
-msgid "macro or #include recursion too deep"
-msgstr "macro ou récursion de #include trop profonde"
-
-#: tradcpp.c:562
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr "usage: %s [options] entrée sortie"
-
-#: tradcpp.c:578
-msgid "-traditional is not supported in C++"
-msgstr "-traditional n'est pas supporté en C++"
-
-#: tradcpp.c:580
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "-traditional et -ansi sont mutuellement exclusives"
-
-#: tradcpp.c:594
-msgid "filename missing after -i option"
-msgstr "nom de fichier manquant après l'option -i"
-
-#: tradcpp.c:612
-msgid "filename missing after -o option"
-msgstr "nom de fichier manquant après l'option -o"
-
-#: tradcpp.c:675
-#, c-format
-msgid "target missing after %s option"
-msgstr "cible manquante après l'option %s"
-
-#: tradcpp.c:689
-#, c-format
-msgid "filename missing after %s option"
-msgstr "nom de fichier manquant après l'option %s"
-
-#: tradcpp.c:714
-#, c-format
-msgid "macro name missing after -%c option"
-msgstr "nom de macro manquant après l'option -%c"
-
-#: tradcpp.c:734
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-pedantic et -traditional sont mutuellement exclusives"
-
-#: tradcpp.c:739
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-trigraphs et -traditional sont mutuellement exclusives"
-
-#: tradcpp.c:765
-msgid "directory name missing after -I option"
-msgstr "nom de répertoire manquant après l'option -I"
-
-#: tradcpp.c:1445 tradcpp.c:3937
-msgid "`/*' within comment"
-msgstr "«/*» à l'intérieur d'un commentaire"
-
-#: tradcpp.c:1821
-#, c-format
-msgid "unterminated #%s conditional"
-msgstr "#%s conditionel non terminé"
-
-#: tradcpp.c:2180
-msgid "not in any file?!"
-msgstr "n'est pas dans aucun fichier?!"
-
-#: tradcpp.c:2286
-msgid "`defined' must be followed by ident or (ident)"
-msgstr "« defined » doit être suivi par ident ou (ident)"
-
-#: tradcpp.c:2290
-msgid "cccp error: invalid special hash type"
-msgstr "erreur cccp: type de hachage spécial invalide"
-
-#: tradcpp.c:2388 tradcpp.c:2458
-msgid "#include expects \"fname\" or <fname>"
-msgstr "#include espère « fname » ou <fname>"
-
-#: tradcpp.c:2543
-#, c-format
-msgid "no include path in which to find %.*s"
-msgstr "pas de chemin d'inclusion dans lequel trouver %.*s"
-
-#: tradcpp.c:2721
-msgid "invalid macro name"
-msgstr "nom de macro invalide"
-
-#: tradcpp.c:2729
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr "nom de macro invalide « %s »"
-
-#: tradcpp.c:2734
-msgid "\"defined\" cannot be used as a macro name"
-msgstr "« defined » ne peut être utilisé comme nom de macro"
-
-#: tradcpp.c:2761
-msgid "parameter name starts with a digit in #define"
-msgstr "nom de paramètre débute avec un chiffre dans #define"
-
-#: tradcpp.c:2771
-msgid "badly punctuated parameter list in #define"
-msgstr "liste de paramètres incorrectement ponctués dans #define"
-
-#: tradcpp.c:2779
-msgid "unterminated parameter list in #define"
-msgstr "liste de paramètres non terminée dans #define"
-
-#: tradcpp.c:2827
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr "\"%.*s\" redéfini"
-
-#: tradcpp.c:3084
-msgid "# operator should be followed by a macro argument name"
-msgstr "# opérator derait être suivi par le nom d'un argument macro"
-
-#: tradcpp.c:3131 tradcpp.c:3157 tradcpp.c:3171 tradcpp.c:3178 tradcpp.c:3203
-msgid "invalid format #line command"
-msgstr "format invalide dans la commande #line"
-
-#: tradcpp.c:3229
-msgid "undefining `defined'"
-msgstr "indéfinition « defined »"
-
-#: tradcpp.c:3233
-#, c-format
-msgid "undefining `%s'"
-msgstr "indéfinition « %s »"
-
-#: tradcpp.c:3289
-msgid "extra text at end of directive"
-msgstr "texte superflu à la fin de la directive"
-
-#: tradcpp.c:3396
-#, c-format
-msgid "#error%.*s"
-msgstr "#error%.*s"
-
-#: tradcpp.c:3406
-#, c-format
-msgid "#warning%.*s"
-msgstr "#warning%.*s"
-
-#: tradcpp.c:3562
-msgid "#elif not within a conditional"
-msgstr "#elif n'est pas à l'intérieur d'un conditionel"
-
-#: tradcpp.c:3819
-#, c-format
-msgid "#%s not within a conditional"
-msgstr "#%s n'est pas à l'intérieur d'un conditionel"
-
-#: tradcpp.c:3827
-msgid "#else or #elif after #else"
-msgstr "#else ou #elif après #else"
-
-#: tradcpp.c:3867
-msgid "#else not within a conditional"
-msgstr "#else n'est pas à l'intérieur d'un conditionel"
-
-#: tradcpp.c:3898
-msgid "unbalanced #endif"
-msgstr "#endif non pairé"
-
-#: tradcpp.c:3992
-msgid "unterminated string or character constant"
-msgstr "chaîne non terminée ou constante caractère"
-
-#: tradcpp.c:4150
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "argument donnée à la macro « %s »"
-
-#: tradcpp.c:4156
-#, c-format
-msgid "no args to macro `%s'"
-msgstr "aucun argument pour la macro « %s »"
-
-#: tradcpp.c:4158
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "seulement 1 argument pour la macro « %s »"
-
-#: tradcpp.c:4160
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr "seulement %d arguments pour la macro « %s »"
-
-#: tradcpp.c:4162
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "trop d'arguments (%d) pour la macro « %s »"
-
-#: tradcpp.c:4759
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"Erreur interne dans %s, à tradcpp.c:%d\n"
-"SVP soumettre un rapport complet des anomalies rencontrées.\n"
-"Consulter %s pour les instructions."
-
-#: tree-dump.c:848
+#: tree-dump.c:702
#, c-format
msgid "could not open dump file `%s'"
msgstr "ne peut ouvrir le fichier de vidange « %s »"
-#: tree-dump.c:924
+#: tree-dump.c:778
#, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr "option inconnue «%.*s» ignorée dans «-f%s»"
-#: tree.c:3888
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr "tableaux de fonctions n'a pas grand sens"
-#: tree.c:3945
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr "Le type retourné d'une fonction ne peut être une fonction"
-#: tree.c:4699
+#: tree.c:4557
msgid "invalid initializer for bit string"
-msgstr "initialiseur invalide pour une chaîne de bits"
+msgstr "initialisation invalide pour une chaîne de bits"
-#: tree.c:4758
+#: tree.c:4616
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d"
-#: tree.c:4775
+#: tree.c:4633
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr "vérification de l'arbre: attendait classe « %c », obtenu « %c » (%s) dans %s, à %s:%d"
-#: varasm.c:454 config/i386/winnt.c:522
+#: tree.c:4650
+#, fuzzy, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "vérification RTL: accès de elt %d du vecteur avec le dernier elt %d dans %s, à %s:%d"
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr "%s cause un conflit du type de section"
-#: varasm.c:879
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr "nom de registre n'est pas spécifié pour « %s »"
-#: varasm.c:881
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr "nom de registre invalide pour « %s »"
-#: varasm.c:884
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr "type de données de « %s » n'est pas applicable pour un registre"
-#: varasm.c:887
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr "registre spécifié pour « %s » n'est applicable à un type de données"
-#: varasm.c:896
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr "variable globale registre a une valeur initiale"
-#: varasm.c:899
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr "variables resgistres volatiles ne fonctionne pas comme vous le souhaiteriez"
-#: varasm.c:932
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr "nom de registre donné pour une variable non registre « %s »"
-#: varasm.c:1570
+#: varasm.c:1542
#, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr "alignement de « %s » est plus grand que l'alignement maximal du fichier objet. %d est utilisé."
-#: varasm.c:1621
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
#, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr "alignement requis pour %s est plus grand que l'alignement implanté de %d"
-#: varasm.c:4570
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
-msgstr "initialiseur pour une valeur entière est trop compliquée"
+msgstr "initialisation d'entier trop compliquée"
-#: varasm.c:4575
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
-msgstr "initialiseur pour une valeur flottante n'est pas une constante flottante"
+msgstr "l'initialisation d'une valeur à virgule flottante n'est pas une constante à virgule flottante"
-#: varasm.c:4625
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr "type de jeu de constructeurs inconnu"
-#: varasm.c:4839
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr "valeur initiale invalide pour le membre « %s »"
-#: varasm.c:5000
-#, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "déclaration faible de « %s » doit être publique"
-
-#: varasm.c:5002
+#: varasm.c:4525 varasm.c:4568
#, c-format
msgid "weak declaration of `%s' must precede definition"
msgstr "déclaraion faible de « %s » qui doit être précédée d'une définition"
-#: varasm.c:5009
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "déclaraion faible de « %s » après une première utilisation des résultats d'un comportement non spécifié"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "déclaration faible de « %s » doit être publique"
+
+#: varasm.c:4575
#, c-format
msgid "weak declaration of `%s' not supported"
msgstr "déclaration faible de « %s » n'est pas supportée"
-#: varasm.c:5036 varasm.c:5107
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr "seulement les alias faibles sont supportés dans cette configuration"
-#: varasm.c:5116
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr "définitions d'alias ne sont pas supportés dans cette configuration; ignoré"
-#: varray.c:88
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "définitions d'alias ne sont pas supportés dans cette configuration; ignoré"
+
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr "tableau virtuel %s[%lu]: élément %lu hors gamme dans %s, à %s:%d"
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr "pas de sclass pour le stab %s (0x%x)\n"
-#: params.def:46
-msgid "The maximum number of instructions in a function that is eligible for inlining"
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "« %s » n'est pas supporté par %s"
+
+#: params.def:53
+#, fuzzy
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "Le nombre maximum d'instructions dans une fonction qui est éligible au type enligne"
+
+#: params.def:65
+#, fuzzy
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "Le nombre maximum d'instructions dans une fonction qui est éligible au type enligne"
+
+#: params.def:84
+#, fuzzy
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr "Le nombre maximum d'instructions dans une fonction qui est éligible au type enligne"
+
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr ""
+
+#: params.def:110
+#, fuzzy
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
msgstr "Le nombre maximum d'instructions dans une fonction qui est éligible au type enligne"
-#: params.def:57
+#: params.def:120
+#, fuzzy
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
+
+#: params.def:131
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
-#: params.def:68
+#: params.def:142
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr "Le nombre maximum d'instructions à considérer pour repérer un registre d'information actif et précis"
-#: params.def:78
+#: params.def:152
msgid "The maximum length of scheduling's pending operations list"
-msgstr "La longueur maximum de la liste des opération çédulées en attente"
+msgstr "La longueur maximale de la liste des opération en attente d'ordonnancement"
-#: params.def:85
+#: params.def:159
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr "La taille maximale de mémoire à être alloué par GCSE"
-#: params.def:90
+#: params.def:164
msgid "The maximum number of passes to make when doing GCSE"
msgstr "Le nombre maxium de passes à effectuer lors de l'exécution de GCSE"
-#: config/darwin-c.c:76
+#: params.def:171
+#, fuzzy
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:217
+#, fuzzy
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "Le nombre maximum d'instructions à considérer pour remplir une slot délai"
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: config/darwin-c.c:75
msgid "too many #pragma options align=reset"
msgstr "trop d'options pour #pragma pour align=reset"
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103 config/darwin-c.c:105
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
msgid "malformed '#pragma options', ignoring"
msgstr "'#pragma options» mal composé, ignoré"
-#: config/darwin-c.c:108
+#: config/darwin-c.c:107
msgid "junk at end of '#pragma options'"
msgstr "rebut à la fin de '#pragma options'"
-#: config/darwin-c.c:118
+#: config/darwin-c.c:117
msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr "'#pragma options align={mac68k|power|reset}» mal composé, ignoré"
-#: config/darwin-c.c:131
+#: config/darwin-c.c:130
msgid "missing '(' after '#pragma unused', ignoring"
msgstr "«(» manquante après '#pragma unused', ignoré"
-#: config/darwin-c.c:149
+#: config/darwin-c.c:148
msgid "missing ')' after '#pragma unused', ignoring"
msgstr "«(» manquante après '#pragma unused', ignoré"
-#: config/darwin-c.c:152
+#: config/darwin-c.c:151
msgid "junk at end of '#pragma unused'"
msgstr "rebut à la fin de '#pragma unused'"
-#: config/nextstep.c:68
-msgid "optimization turned on"
-msgstr "optimisation activée"
-
-#: config/nextstep.c:74
-msgid "optimization turned off"
-msgstr "optimisation désactivée"
-
-#: config/nextstep.c:83
-msgid "optimization level restored"
-msgstr "niveau d'optimisation restauré"
-
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
msgid "-msystem-v and -p are incompatible"
msgstr "-msystem-v et -p sont incompatibles"
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
msgid "-msystem-v and -mthreads are incompatible"
msgstr "-msystem-v et -mthreads sont incompatibles"
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
-msgstr "Utiliser l'alignement VAX-C"
-
-#: config/a29k/a29k.c:1028 config/m88k/m88k.c:2967
-#, c-format
-msgid "invalid %%Q value"
-msgstr "valeur %%Q invalide"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5402 config/m88k/m88k.c:3063
-#, c-format
-msgid "invalid %%C value"
-msgstr "valeur %%C invalide"
-
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5247 config/rs6000/rs6000.c:6454
-#, c-format
-msgid "invalid %%N value"
-msgstr "valeur %%N invalide"
-
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5318 config/rs6000/rs6000.c:6416
-#, c-format
-msgid "invalid %%M value"
-msgstr "valeur %%M invalide"
-
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5310 config/rs6000/rs6000.c:6381
-#, c-format
-msgid "invalid %%m value"
-msgstr "valeur %%m invalide"
-
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5271 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
-msgstr "valeur %%L invalide"
-
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:6462
-#, c-format
-msgid "invalid %%O value"
-msgstr "valeur %%O invalide"
-
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:5255 config/rs6000/rs6000.c:6482
-#, c-format
-msgid "invalid %%P value"
-msgstr "valeur %%P invalide"
-
-#: config/a29k/a29k.c:1175
-#, c-format
-msgid "invalid %%V value"
-msgstr "valeur %%V invalide"
-
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
-msgstr "Générer le code en assumant que le bit DW est initialisé"
-
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
-msgstr "Générer le code en assumant que le bit DW n'est pas initialisé"
-
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
-msgstr "Générer le code en utilisant des écritures par octets"
-
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
-msgstr "Ne pas générer des écritures par octets"
-
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
-msgstr "Utiliser le modèle de petite mémoire"
-
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
-msgstr "Utiliser le modèle normal de mémoire"
-
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
-msgstr "Utiliser le modèle de grande mémoire"
-
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
-msgstr "Générer le code 29050"
-
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
-msgstr "Générer le code 29000"
-
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
-msgstr "Utiliser les registres globaux du kernel"
-
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
-msgstr "Utiliser les registres globaux"
-
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr "Produire le code de vérification de la pile"
-
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
-msgstr "Ne pas produire le code de vérification de la pile"
-
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
-msgstr "Contourner le bug matériel de stockage"
-
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
-msgstr "Ne pas contourner le bug matériel de stockage"
-
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
-msgstr "Stocker les var. locales dans redistres d'arguments"
-
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
-msgstr "Ne pas stocker les var. locales dans redistres d'arguments"
-
-#: config/a29k/a29k.h:118 config/i960/i960.h:283 config/mips/mips.h:408
-msgid "Use software floating point"
-msgstr "Utiliser le traitement par logiciel des nombres flottants"
-
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
-msgstr "Ne pas générer des instructions multm"
-
-#: config/alpha/alpha.c:271
+#: config/alpha/alpha.c:342
#, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "-f%s ignoré pour Unicos/Mk (non supporté)"
-#: config/alpha/alpha.c:295
+#: config/alpha/alpha.c:366
msgid "-mieee not supported on Unicos/Mk"
msgstr "-mieee n'est pas supporté sur Unicos/Mk"
-#: config/alpha/alpha.c:306
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact n'est pas supporté sur Unicos/Mk"
-#: config/alpha/alpha.c:323
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr "valeur « %s » erronée pour l'option -mtrap-precision"
-#: config/alpha/alpha.c:337
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr "valeur « %s » erronée pour l'option -mfp-rounding-mode"
-#: config/alpha/alpha.c:352
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr "valeur « %s » erronée pour l'option -mfp-trap-mode"
-#: config/alpha/alpha.c:371 config/alpha/alpha.c:383
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "valeur « %s » erronée pour l'option -mcpu"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr "valeur « %s » erronée pour l'option -mcpu"
-#: config/alpha/alpha.c:390
+#: config/alpha/alpha.c:473
msgid "trap mode not supported on Unicos/Mk"
msgstr "mode trappe n'est pas supporté sur Unicos/Mk"
-#: config/alpha/alpha.c:397
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr "complétion logicielle FP requiert -mtrap-precision=i"
-#: config/alpha/alpha.c:413
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr "mode d'arondissement n'est pas supporté pour les flottants sur VAX"
-#: config/alpha/alpha.c:418
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr "mode trappe n'est pas supporté avec les flottants sur VAX"
-#: config/alpha/alpha.c:447
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr "latence de la cache L%d inconnue pour %s"
-#: config/alpha/alpha.c:462
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "valeur « %s » erronée pour -mmemory-latency"
-#: config/alpha/alpha.c:5211 config/m88k/m88k.c:2955 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr "valeur %%H invalide"
-#: config/alpha/alpha.c:5221
+#: config/alpha/alpha.c:5625
#, c-format
msgid "invalid %%J value"
msgstr "valeur %%J invalide"
-#: config/alpha/alpha.c:5231 config/ia64/ia64.c:3509 config/m88k/m88k.c:3100
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "valeur %%r invalide"
-#: config/alpha/alpha.c:5241 config/rs6000/rs6000.c:6528
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "valeur %%R invalide"
-#: config/alpha/alpha.c:5263 config/m88k/m88k.c:2961 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "valeur %%N invalide"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "valeur %%P invalide"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "valeur %%h invalide"
-#: config/alpha/alpha.c:5353
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "valeur %%L invalide"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "valeur %%m invalide"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "valeur %%M invalide"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "valeur %%U invalide"
-#: config/alpha/alpha.c:5365 config/alpha/alpha.c:5379 config/romp/romp.c:698 config/rs6000/rs6000.c:6536
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "valeur %%s invalide"
-#: config/alpha/alpha.c:5439 config/m88k/m88k.c:3084 config/rs6000/rs6000.c:6243
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "valeur %%C invalide"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "valeur %%E invalide"
-#: config/alpha/alpha.c:5460 config/romp/romp.c:973 config/rs6000/rs6000.c:6844
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "type de jeu de constructeurs inconnu"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "valeur %%xn invalide"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:214 config/i386/i386.h:291 config/i386/i386.h:293 config/i386/i386.h:295 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329 config/s390/s390.h:56 config/sparc/sparc.h:529 config/sparc/sparc.h:534
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr "Utiliser le FP matériel"
-#: config/alpha/alpha.h:215 config/i386/i386.h:292 config/i386/i386.h:294 config/rs6000/rs6000.h:331 config/sparc/sparc.h:531 config/sparc/sparc.h:536
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr "Ne pas utiliser l'unité FP matérielle"
-#: config/alpha/alpha.h:216
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr "Utiliser les registres FP"
-#: config/alpha/alpha.h:218
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr "Ne pas utiliser les registres FP"
-#: config/alpha/alpha.h:219
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
-msgstr "Ne pas assumer la présence de GAS"
+msgstr "Ne pas présumer la présence de GAS"
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
-msgstr "Assumer la présence de GAS"
+msgstr "Présumer la présence de GAS"
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
-msgstr "Requête des routine de la librairie mathématique conforme IEEE (OSF/1)"
+msgstr "Requête des routine de la bibliothèque mathématique conforme IEEE (OSF/1)"
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr "Produire du code conforme IEEE, sans exceptions inexactes"
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr "Produire du code conforme IEEE, avec exceptions inexactes"
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr "Ne pas produire des constantes entières complexes en mémoire en mode lecture seulement"
-#: config/alpha/alpha.h:229
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr "Utiliser les registres FP sur VAX"
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr "Ne pas utiliser les registres FP sur VAX"
-#: config/alpha/alpha.h:231
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr "Produire du code pour les octets/mots des extensions ISA"
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr "Produire du code pour les extensions vidéo ISA"
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr "Produire du code pour les déplacements FP et sqrt des extensions ISA"
-#: config/alpha/alpha.h:239
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr "Produire du code pour les extensions ISA de comptage"
-#: config/alpha/alpha.h:242
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr "Produire du code utilisant des directives explicites de relocalisation"
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr "Produire du code de 16 bits pour le relocalisation des petites zones de données"
-#: config/alpha/alpha.h:247
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr "Produire du code de 32 bits pour le relocalisation des petites zones de données"
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:275
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
-msgstr "Utiliser les options de et çéduler le CPU donné"
+msgstr "Utiliser les options et ordonnancer pour le processeur donné "
-#: config/alpha/alpha.h:277
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
-msgstr "Çéduler le CPU donné"
+msgstr "Ordonnancer le processeur donné"
-#: config/alpha/alpha.h:279
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr "Contrôler le mode d'arondissement FP généré"
-#: config/alpha/alpha.h:281
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr "Contrôler le mode trappe IEEE"
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr "Contrôler la précision donnée des exceptions FP"
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr "Ajuster la latence mémoire attendue"
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "valeur (%s) erronée pour l'option -mcpu"
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "argument de l'attribut « %s » n'est pas une chaîne de constante"
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr "l'argument de l'attribut « %s » n'est pas «ilink1» ou «ilink2 »"
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2278
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
#, c-format
msgid "invalid operand to %%R code"
msgstr "opérande invalide pour le code %%R"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2301
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "opérande invalide pour le code %%H/%%L"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2378
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
#, c-format
msgid "invalid operand to %%U code"
msgstr "opérande invalide pour le code %%U"
-#: config/arc/arc.c:1776
+#: config/arc/arc.c:1774
#, c-format
msgid "invalid operand to %%V code"
msgstr "opérande invalide pour le code %%V"
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2417 config/sparc/sparc.c:6145
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "opérande invalide pour le code de sortie"
-#: config/arm/arm.c:436
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "l'option -mcpu=%s est en conflit avec l'option -march= "
-#: config/arm/arm.c:446 config/rs6000/rs6000.c:444 config/sparc/sparc.c:381
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "valeur (%s) erronée pour l'option %s"
-#: config/arm/arm.c:582
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
-msgstr "CPU cible ne supporte pas APCS-32"
+msgstr "le processeur cible ne supporte pas APCS-32"
-#: config/arm/arm.c:587
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
-msgstr "CPU cible ne supporte pas APCS-26"
+msgstr "le processeur cible ne supporte pas APCS-26"
-#: config/arm/arm.c:593
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
-msgstr "CPU cible ne supporte pas l'inter-réseautage"
+msgstr "le processeur cible ne supporte pas l'inter-réseautage"
-#: config/arm/arm.c:599
+#: config/arm/arm.c:621
msgid "target CPU does not support THUMB instructions"
-msgstr "CPU cible ne supporte pas les instructions THUMB"
+msgstr "le processeur cible ne supporte pas les instructions THUMB"
-#: config/arm/arm.c:613
+#: config/arm/arm.c:635
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "autoriser le support de pistage arrière si seulement significatif lors de la compilation pour le Thumb"
-#: config/arm/arm.c:616
+#: config/arm/arm.c:638
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "autoriser le support d'inter-réseautage des appelés si seulement significatif lors de la compilation pour le Thumb"
-#: config/arm/arm.c:619
+#: config/arm/arm.c:641
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "autoriser le support d'inter-réseautage des appelants si seulement significatif lors de la compilation pour le Thumb"
-#: config/arm/arm.c:625
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr "l'inter-réseautage force l'utilisation de APCS-32"
-#: config/arm/arm.c:631
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check incompatible avec -mno-apcs-frame"
-#: config/arm/arm.c:639
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic et -mapcs-reent sont incompatibles"
-#: config/arm/arm.c:642
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr "Code réentrant APCS n'est pas supporté. Ignoré"
-#: config/arm/arm.c:650
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g avec -mno-apcs-frame peut ne pas donner une mise au point sensée"
-#: config/arm/arm.c:658
+#: config/arm/arm.c:680
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "passage d'argument en virgule flottante dans les registres FP n'est pas encore supporté"
-#: config/arm/arm.c:687
+#: config/arm/arm.c:709
#, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "option d'émulation en virgule flottante invalide: -mfpe-%s"
-#: config/arm/arm.c:711
+#: config/arm/arm.c:733
msgid "structure size boundary can only be set to 8 or 32"
msgstr "taille des bornes de la structure peut seulement être 8 ou 32"
-#: config/arm/arm.c:719
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= est inutile sans -fpic"
-#: config/arm/arm.c:726
+#: config/arm/arm.c:748
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "incapable d'utiliser « %s » pour un registre PIC"
-#: config/arm/arm.c:1970 config/arm/arm.c:1993 config/avr/avr.c:4703 config/c4x/c4x.c:4650 config/h8300/h8300.c:3045 config/i386/i386.c:1260 config/i386/i386.c:1289 config/m68hc11/m68hc11.c:1220 config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1044 config/rs6000/rs6000.c:10760 config/sh/sh.c:5583 config/sh/sh.c:5603 config/sh/sh.c:5642 config/stormy16/stormy16.c:2010 config/v850/v850.c:2047
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, c-format
msgid "`%s' attribute only applies to functions"
msgstr "attribut « %s » s'applique seulement aux fonctions"
-#: config/arm/arm.c:9288
+#: config/arm/arm.c:9459
msgid "unable to compute real location of stacked parameter"
msgstr "incapable de calculer la localisation réelle de la pile de paramètres"
-#: config/arm/arm.c:9968
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr "pas de registre bas disponible pour faire ressortir les registres du haut"
-#: config/arm/arm.c:10160
+#: config/arm/arm.c:10389
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "routines d'interruption de service ne peuvent être codées en mode THUMB"
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
#, c-format
msgid "initialized variable `%s' is marked dllimport"
msgstr "variable initialisé « %s » est marquée dllimport"
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr "variable static « %s » est marquée dllimport"
-#: config/arm/arm.h:422
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr "Générer des trames de pile conformes à APCS"
-#: config/arm/arm.h:425
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr "Sotcker les noms de fonctions dans le code objet"
-#: config/arm/arm.h:429
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr "Utilise la version 32 bts de APCS"
-#: config/arm/arm.h:431
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr "Utiliser la version 26 bits de APCS"
-#: config/arm/arm.h:435
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr "Passer les arguments FP par les registres FP"
-#: config/arm/arm.h:438
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr "Générer du code PIC ré-entrant"
-#: config/arm/arm.h:441
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr "Le MMU va intercepter les accès mal alignés"
-#: config/arm/arm.h:448
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
-msgstr "Utiliser les appels de librairie pour exécuter les opérations FP"
+msgstr "Utiliser les appels de bibliothèque pour exécuter les opérations FP"
-#: config/arm/arm.h:450 config/i960/i960.h:281
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr "Utiliser les instructions matérielles en virgule flottante"
-#: config/arm/arm.h:452
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
-msgstr "Assumer que le CPU cible est un système à octets de poids fort"
+msgstr "Présumer que le processeur cible est un système à octets de poids fort"
-#: config/arm/arm.h:454
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
-msgstr "Assumer que le CPU cible est un système à octets de poids faible"
+msgstr "Présumer que le processeur cible est un système à octets de poids faible"
-#: config/arm/arm.h:456
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
-msgstr "Assumer un système à octets de poids fort pour les octets et faible pour les mots"
+msgstr "Présumer un système à octets de poids fort pour les octets et faible pour les mots"
-#: config/arm/arm.h:458
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Supporter les appels des jeux d'instructions THUMB et ARM"
-#: config/arm/arm.h:461
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr "Générer un appel pour stopper si une fonction sans retour retourne un résultat"
-#: config/arm/arm.h:464
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr "Ne pas déplacer les instruction dans le prologue de fonction"
-#: config/arm/arm.h:467
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr "Ne pas charger le registre PIC dans les prologue de fonction"
-#: config/arm/arm.h:470
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr "Générer l'appel insn comme un appel indirect, si nécessaire"
-#: config/arm/arm.h:473
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr "Compiler pour le THUMB et non pas le ARM"
-#: config/arm/arm.h:477
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr "Thumb: générer (non feuilles) trames de pile même si non nécessaire"
-#: config/arm/arm.h:480
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
-msgstr "Thumb: générer (feuilles) trames de pile même si non nécessaire"
+msgstr "Thumb : Générer (feuilles) trames de pile même si non nécessaire"
-#: config/arm/arm.h:483
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
-msgstr "Thumb: assumer que les fonctions non statiques peuvent être appelées du code ARM"
+msgstr "Thumb : Présumer que les fonctions non statiques peuvent être appelées du code ARM"
-#: config/arm/arm.h:487
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
-msgstr "Thumb: assumer que les pointeurs de fonction peuvent tomber dans le code en dehors non sensible au Thumb"
+msgstr "Thumb : Présumer que les pointeurs de fonction peuvent tomber dans le code en dehors non sensible au Thumb"
-#: config/arm/arm.h:497
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
-msgstr "Spécifier le nom du CPU cible"
+msgstr "Spécifier le nom du processeur cible"
-#: config/arm/arm.h:499
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr "Spécifier le nom de l'architecture cible"
-#: config/arm/arm.h:503
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr "Spécifier la version de l'émulateur en virgule flottante"
-#: config/arm/arm.h:505
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr "Spécifier le minimum de bits pour l'alignement de structures"
-#: config/arm/arm.h:507
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr "Spécifier le registre à utiliser pour l'adressage PIC"
@@ -8758,96 +9160,93 @@ msgstr "Spécifier le registre à utiliser pour l'adressage PIC"
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorer l'attribut dllimport pour les fonctions"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr "Ne pas renommer les symboles pour BSD"
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr "Ne pas renommer les symboles pour X/OPEN"
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr "Ne pas renommer les symboles"
-
-#: config/avr/avr.c:221
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr "MCU « %s » n'est pas supporté"
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "grand pointeur de trames change (%d) avec -mtiny-stack"
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr "adresse erronée, pas (reg+disp):"
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
msgid "internal compiler error. Bad address:"
msgstr "erreur internal du compilateur. Adresse erronée:"
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
msgid "internal compiler error. Unknown mode:"
msgstr "erreur internal du compilateur. Mode inconnu:"
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
msgid "invalid insn:"
msgstr "insn invalide:"
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957 config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236 config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr "insn incoorect:"
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307 config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
msgid "unknown move insn:"
msgstr "insn de déplacement inconnu:"
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr "décalage insn erroné:"
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
msgid "internal compiler error. Incorrect shift:"
msgstr "erreur internal du compilateur. Décalage incorrect:"
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
msgid "only initialized variables can be placed into program memory area"
msgstr "seules les variables initialisées peuvent être placées dans la zone mémoire du programme"
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Seuls les variables initialisées peuvent être placées dans une aire de 8 bits"
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU « %s » n'est pas supporté"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
-msgstr "Assumer que les int sont des entiers de 8 bits"
+msgstr "Présumer que les int sont des entiers de 8 bits"
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr "Changer le pointeur de pile sans désactiver les interruptions"
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr "Utiliser des sous-routines pour le prologue/epilogue de fonction"
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr "Changer seulement les 8 bits du bas du pointeur de pile"
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr "Ne pas générer les sauts de table insns"
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr "Produire les tailles d'instructions dans le fichier asm"
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr "Spécifier l'adresse initiale de la pile"
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr "Spécifier le nom du MCU"
@@ -8859,132 +9258,132 @@ msgstr "Spécifier le nom du MCU"
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2566
+#: config/avr/avr.h:2450
msgid "trampolines not supported"
msgstr "trampolines ne sont pas supportées"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr "«(» manquante après «#pragma %s» - ignoré"
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr "nom de fonction manquant dans «#pragma %s» - ignoré"
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "«#pragma %s» mal composé - ignoré"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr "nom de section manquant dans «#pragma %s» - ignoré"
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr "«)» manquante pour «#pragma %s» - ignoré"
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr "rebut à la fin de «#pragma %s'"
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
-msgstr "version de CPU %d inconnue, 40 est utilisé.\n"
+msgstr "version de processeur %d inconnue, 40 est utilisé.\n"
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr "ISR %s requiert %d mots de var. locales, max est 32767."
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr "CONST_DOUBLE utilisé pour l'adresse"
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr "c4x_address_cost: mode d'adressage invalide"
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr "c4x_print_operand: %%L inconsistent"
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr "c4x_print_operand: %%N inconsistent"
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr "c4x_print_operand: %%O inconsisten"
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr "c4x_print_operand: opérande erronée pour un case"
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr "c4x_print_operand_address: post-modification erronée"
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr "c4x_print_operand_address: pré-modification erronée"
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr "c4x_print_operand_address: opérande erronée pour un case"
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr "c4x_rptb_insert: ne peut repérer l'étiquette de départ"
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
msgid "mode not QImode"
msgstr "mode n'est pas QImode"
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
msgid "invalid indirect memory address"
msgstr "adresse mémoire d'indirection invalide"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr "adresse mémoire (S) d'indirection invalide"
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr "c4x_valid_operands: erreur interne"
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr "c4x_oprande_subword: mode invalide"
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr "c4x_operand_subword: opérande invalide"
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr "c4x_operand_subword: autoincrement invalide"
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr "c4x_operand_subword: adresse invalide"
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: un décalage d'adresse ne peut s'appliquer sur cette adresse"
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr "c4x_rptb_rpts_p: étiquette supérieur de bloc de répétition déplacée\n"
@@ -8992,7 +9391,6 @@ msgstr "c4x_rptb_rpts_p: étiquette supérieur de bloc de répétition déplacée\n"
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9028,589 +9426,529 @@ msgstr "c4x_rptb_rpts_p: étiquette supérieur de bloc de répétition déplacée\n"
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr "Modèle de mémoire petite"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr "Modèle de mémoire grande"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr "Utiliser les instructions MPYI pour C3x"
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr "Ne pas utiliser les instructions MPYI pour C3x"
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr "Utiliser le mode rapide mais approprié de conversion de flottans à entiers"
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr "Utiliser le mode lent mais précis de conversion de flottans à entiers"
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr "Autoriser l'utilisation de l'instruction RTPS"
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr "Interdire l'utilisation de l'instruction RTPS"
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr "Autoriser l'utilisation de l'instruction RTPB"
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr "Interdire l'utilisation de l'instruction RTPB"
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
-msgstr "Générer du code pour CPU C30"
+msgstr "Générer du code pour processeur C30"
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
-msgstr "Générer du code pour CPU C31"
+msgstr "Générer du code pour processeur C31"
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
-msgstr "Générer du code pour CPU C32"
+msgstr "Générer du code pour processeur C32"
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
-msgstr "Générer du code pour CPU C33"
+msgstr "Générer du code pour processeur C33"
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
-msgstr "Générer du code pour CPU C40"
+msgstr "Générer du code pour processeur C40"
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
-msgstr "Générer du code pour CPU C44"
+msgstr "Générer du code pour processeur C44"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr "Produire du code compatible avec les outils TI"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr "Produire du code pour utiliser les extensions GAS"
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
-msgstr "Sauvegarder DP à travers ISR dans le modèle de mémoire petite"
+msgstr "Sauvegarder DP à travers ISR dans le modèle de mémoire restreinte"
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
-msgstr "Ne pas sauvegarder DP à travers ISR dans le modèle de mémoire petite"
+msgstr "Ne pas sauvegarder DP à travers ISR dans le modèle de mémoire restreinte"
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr "Passer les arguments sur la pile"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr "Passer les arguments par les registres"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr "Autoriser les nouvelles options en développement"
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr "Désactiver les nouvelles options en développement"
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr "Utiliser le registre BK comme registre général tout usage"
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr "Ne pas allouer de registre BK"
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr "Activer l'utilisation d'instruction DB"
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr "Désactiver l'utilisation d'instruction DB"
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr "Permettre la mise au point"
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr "Désactiver la mise au point"
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr "Forcer les constantes dans les registres pour améliorer la montée"
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr "Ne pas forcer les constantes dans les registres"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr "Forcer la génération RTL pour produire des opérandes insn 3 valides"
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr "Autoriser la génération RTL pour produire des opérandes insn 3 invalides"
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+#, fuzzy
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr "Autoriser un compteur non signé d'itération pour RPTB/DB"
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr "Interdire un compteur non signé d'itération pour RPTB/DB"
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr "Préserver tous les 40 bits du registre FP à travers les appels"
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr "Préserver seulement 32 bits du registre FP à travers les appels"
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr "Autoriser les instructions parallèles"
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr "Interdire les instructions parallèles"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr "Autoriser les instructions MPY||ADD et MPY||SUB"
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr "Interdire les instructions MPY||ADD et MPY||SUB"
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
-msgstr "Assumer que les pointeurs peuvent être aliasés"
+msgstr "Présumer que les pointeurs peuvent être aliasés"
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
-msgstr "Assumer que les pointeurs ne peuvent pas être aliasés"
+msgstr "Présumer que les pointeurs ne peuvent pas être aliasés"
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr "Spécifier le nombre maximum d'itérations pour RPTS"
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
-msgstr "Sélectionner le CPU pour lequel le code doit être généré"
-
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr "Générer le code pour le C400"
-
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr "Générer le code pour le C300"
+msgstr "Sélectionner le processeur pour lequel le code doit être généré"
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
-msgstr "Générer le code pour le c1"
-
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
-msgstr "Générer le code pour le c2"
-
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
-msgstr "Générer le code pour le c3"
-
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr "Générer le code pour le c34"
-
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr "Utiliser la séquence standard d'appel, avec arg et mot compteur"
-
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr "Placer le compteur d'arg dans une instruction NOP (plus rapide que push)"
-
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr "Ne pas empiler le compteur d'arg, dépend de la table de symboles"
-
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr "Utiliser la cache de données pour les réf. mémoire volatiles (par défaut)"
-
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr "Ne pas utiliser la cache de données pour les réf. mémoire volatiles"
-
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr "Éviter la cache de données pour les réf. mémoire volatiles"
-
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr "Utiliser des longs de 64 bits"
-
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr "Utiliser cc- et libc-compatible longs de 32 bits"
-
-#: config/cris/cris.c:569
+#: config/cris/cris.c:599
msgid "unexpected index-type in cris_print_index"
msgstr "type d'index inattendu dans cris_print_index"
-#: config/cris/cris.c:585
+#: config/cris/cris.c:615
msgid "unexpected base-type in cris_print_base"
msgstr "type de base inattendu dans cris_print_base"
-#: config/cris/cris.c:878
+#: config/cris/cris.c:908
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "trame de pile trop grande: %d octets"
-#: config/cris/cris.c:1193
+#: config/cris/cris.c:1223
msgid "allocated but unused delay list in epilogue"
msgstr "alloué mais liste de délai non utilisée dans l'épilogue"
-#: config/cris/cris.c:1203
+#: config/cris/cris.c:1233
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "type de fonction inattendue ajustement de la pile nécessaire pour « __builtin_eh_return »"
-#: config/cris/cris.c:1282
+#: config/cris/cris.c:1312
msgid "invalid operand for 'b' modifier"
msgstr "opérande invalide pour le modificateur « b »"
-#: config/cris/cris.c:1294
+#: config/cris/cris.c:1324
msgid "invalid operand for 'v' modifier"
msgstr "opérande invalide pour le modificateur « v »"
-#: config/cris/cris.c:1304
+#: config/cris/cris.c:1334
msgid "invalid operand for 'P' modifier"
msgstr "opérande invalide pour le modificateur « P »"
-#: config/cris/cris.c:1311
+#: config/cris/cris.c:1341
msgid "invalid operand for 'p' modifier"
msgstr "opérande invalide pour le modificateur « p »"
-#: config/cris/cris.c:1350
+#: config/cris/cris.c:1380
msgid "invalid operand for 'z' modifier"
msgstr "opérande invalide pour le modificateur « z »"
-#: config/cris/cris.c:1381 config/cris/cris.c:1411
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
msgid "invalid operand for 'H' modifier"
msgstr "opérande invalide pour le modificateur « H »"
-#: config/cris/cris.c:1387
+#: config/cris/cris.c:1417
msgid "bad register"
msgstr "registre erroné"
-#: config/cris/cris.c:1425
+#: config/cris/cris.c:1455
msgid "invalid operand for 'e' modifier"
msgstr "opérande invalide pour le modificateur « e »"
-#: config/cris/cris.c:1442
+#: config/cris/cris.c:1472
msgid "invalid operand for 'm' modifier"
msgstr "opérande invalide pour le modificateur « m »"
-#: config/cris/cris.c:1467
+#: config/cris/cris.c:1497
msgid "invalid operand for 'A' modifier"
msgstr "opérande invalide pour le modificateur « A »"
-#: config/cris/cris.c:1475
+#: config/cris/cris.c:1505
msgid "invalid operand for 'D' modifier"
msgstr "opérande invalide pour le modificateur « D »"
-#: config/cris/cris.c:1489
+#: config/cris/cris.c:1519
msgid "invalid operand for 'T' modifier"
msgstr "opérande invalide pour le modificateur « T »"
-#: config/cris/cris.c:1498
+#: config/cris/cris.c:1528
msgid "invalid operand modifier letter"
msgstr "opérande invalide pour le modificateur de lettre"
-#: config/cris/cris.c:1506
+#: config/cris/cris.c:1536
#, c-format
msgid "internal error: bad register: %d"
msgstr "erreur interne: registre erroné: %d"
-#: config/cris/cris.c:1554
+#: config/cris/cris.c:1584
msgid "unexpected multiplicative operand"
msgstr "opérande multiplicative inattendue"
-#: config/cris/cris.c:1574
+#: config/cris/cris.c:1604
msgid "unexpected operand"
msgstr "opérande inattendue"
-#: config/cris/cris.c:1609 config/cris/cris.c:1619
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
msgid "unrecognized address"
msgstr "adresse non reconnue"
-#: config/cris/cris.c:1975
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr "erreur interne: effet de bord de insn sideeffect-insn ayant un effet principal"
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2262
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr "erreur interne: cris_side_effect_mode_ok avec des opérandes erronées"
-#: config/cris/cris.c:2344 config/cris/cris.c:2402
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
msgid "unrecognized supposed constant"
msgstr "supposée constante non reconnue"
-#: config/cris/cris.c:2443
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "supposée constante non reconnue dans cris_global_pic_symbol"
-#: config/cris/cris.c:2462
+#: config/cris/cris.c:2492
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-max-stackframe=%d n'est pas utilisable, n'est pas entre 0 et %d"
-#: config/cris/cris.c:2490
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr "spécification de version CRIS inconnue dans -march= ou -mcpu= : %s"
-#: config/cris/cris.c:2526
+#: config/cris/cris.c:2556
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "spécification de version CRIS inconnue dans -mtune= : %s"
-#: config/cris/cris.c:2544
+#: config/cris/cris.c:2574
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC et -fpic ne sont pas supportées par cette configuration"
-#: config/cris/cris.c:2560
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr "l'option particulière -g est invalide avec -maout et -melinux"
-#: config/cris/cris.c:2790 config/cris/cris.c:2835
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr "effets de bord inattendue dans l'adresse"
#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2932 config/cris/cris.c:2963
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
msgid "unexpected PIC symbol"
msgstr "symbole PIC inattendue"
-#: config/cris/cris.c:2936
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr "le registre n'est pas initialisé"
-#: config/cris/cris.c:2949 config/cris/cris.c:3032
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
msgid "unexpected address expression"
msgstr "expression d'adresse inattendue"
-#: config/cris/cris.c:2967
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr "génération d'une opérande PIC mais le registre PIC n'est pas initialisé"
-#: config/cris/cris.c:2976
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr "NOTE inattendu comme addr_conts:"
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr "Compiler pour le MMU-less Etrax 100-based de système elinux"
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr "Pour elinux, faire la requête pour un taille de pile spécifique pour ce programme"
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:336
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "Compilé pour ETRAX 4 (CRIS v3)"
-#: config/cris/cris.h:341
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "Compile pour ETRAX 100 (CRIS v8)"
-#: config/cris/cris.h:345
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr "Produire des informations de mise au point dans le code assemblé"
-#: config/cris/cris.h:348
+#: config/cris/cris.h:352
msgid "Do not use condition codes from normal instructions"
msgstr "Ne pas utiliser du code conditionnel pour des instructions normales"
-#: config/cris/cris.h:352
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "Ne pas produire de modes d'adressage avec des affectations avec effet de bord"
-#: config/cris/cris.h:355
+#: config/cris/cris.h:359
msgid "Do not tune stack alignment"
msgstr "Ne pas ajuster l'alignement de la pile"
-#: config/cris/cris.h:358
+#: config/cris/cris.h:362
msgid "Do not tune writable data alignment"
msgstr "Ne pas ajuster l'alignement les sections de données dynamiques"
-#: config/cris/cris.h:361
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr "Ne pas ajuster l'alignement du code et des sections de données statiques"
-#: config/cris/cris.h:370
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr "Aligner le code et les données sur 32 bits"
-#: config/cris/cris.h:383
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr "Ne pas aligner les items dans le code ou les données"
-#: config/cris/cris.h:386
+#: config/cris/cris.h:390
msgid "Do not emit function prologue or epilogue"
msgstr "Ne pas générer de prologue ou d'épilogue de fonction"
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:390
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr "Utiliser le plus d'options autorisant autorisant des options permises par les autres options"
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:396
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr "Écraser -mbest-lib-options"
-#: config/cris/cris.h:428
+#: config/cris/cris.h:432
msgid "Generate code for the specified chip or CPU version"
-msgstr "Générer le code pour la version de CPU ou le circuit spécifique"
+msgstr "Générer le code pour la version de processeur ou de circuit spécifiée"
-#: config/cris/cris.h:430
+#: config/cris/cris.h:434
msgid "Tune alignment for the specified chip or CPU version"
-msgstr "ajuster l'alignement pour la version de CPU ou le circuit spécifique"
+msgstr "Ajuster l'alignement pour la version de processeur ou de circuit spécifiée"
-#: config/cris/cris.h:432
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr "Avertir lorsqu'une trame de pile est plus grande que la taille spécifiée"
#. Node: Profiling
-#: config/cris/cris.h:1029
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "pas de FUNCTION_PROFILER pour CRIS"
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "ensemble avec -fpic et -fPIC, ne pas utiliser les références GOTPLT"
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr "modes_tieable_p erronée pour le registre %s, mode1 %s, mode2 %s"
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr "insn erroné pour d30v_print_operand_addresse:"
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775 config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr "insn erroné pour d30v_print_operand_memory_reference:"
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr "insn erroné pour d30v_print_operand, modificateur « f »:"
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr "insn erroné pour d30v_print_operand, modificateur « A »:"
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr "insn erroné pour d30v_print_operand, modificateur « M »:"
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr "insn erroné pour print_operand, modificateur « F » ou « T »:"
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr "insn erroné pour print_operand, modificateur « B »:"
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr "insn erroné pour print_operand, modificateur « E »:"
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr "insn erroné to print_operand, modificateur « R »:"
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr "insn erroné to print_operand, modificateur « s »:"
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr "insn erroné dans d30v_print_operand, cas 0"
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr "d30v_emit_comparison"
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr "appel erroné à d30v_move_2words"
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr "Autoriser l'utilisation des instructions conditionnelles move"
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr "Interdire l'utilisation des instructions conditionnelles move"
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr "Mettre au point le support d'argument dans le compilateur"
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr "Mettre au point le support de la pile dans le compilateur"
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr "Mettre au point le support d'adresses dans le compilateur"
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr "Rendre adjacentes les instructions short en instructions parallèles si possible"
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr "Ne pas rendre adjacentes les instructions short en instructions parallèles"
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr "Faire l'édition de lien des programmes/données comme étant externe à la mémoire par défaut"
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr "Faire l'édition de lien des programmes/données comme étant interne dans la circuiterie de la mémoire par défaut"
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr "Changer les coûts de branchement à l'intérieur du compilateur"
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr "Changer le seuil pour la conversion en une exécution conditionnelle"
@@ -9622,31 +9960,27 @@ msgstr "taille de la pile > 32k"
msgid "invalid addressing mode"
msgstr "mode d'adressage invalide"
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
msgid "bad register extension code"
msgstr "code d'extension de registre erroné"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
msgid "invalid offset in ybase addressing"
msgstr "décalage invalide dans l'adresse ybase"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
msgid "invalid register in ybase addressing"
msgstr "registre invalide dans l'adressage ybase"
-#: config/dsp16xx/dsp16xx.c:1990
-msgid "inline float constants not supported on this host"
-msgstr "enlignage des constantes flottantes n'est pas supporté sur cet hôte"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
msgid "invalid shift operator in emit_1600_core_shift"
msgstr "opérateur de décalage invalide dans emit_1600_core_shift"
-#: config/dsp16xx/dsp16xx.c:2469
+#: config/dsp16xx/dsp16xx.c:2428
msgid "invalid mode for gen_tst_reg"
msgstr "mode invalide pour gen_tst_reg"
-#: config/dsp16xx/dsp16xx.c:2541
+#: config/dsp16xx/dsp16xx.c:2500
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr "mode invalide pour la comparaison d'entiers dans gen_compare_reg"
@@ -9655,236 +9989,403 @@ msgstr "mode invalide pour la comparaison d'entiers dans gen_compare_reg"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
msgstr "Passer les paramètres par les registres (par défaut)"
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr "Ne pas passer les paramètres par les registres"
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
msgid "Generate code for near calls"
msgstr "Générer du code pour les appels proches"
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr "Ne pas générer du code pour les appels proches"
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
msgid "Generate code for near jumps"
msgstr "Générer du code pour les sauts proches"
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr "Ne pas générer du code pour les sauts proches"
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr "Générer du code pour une unité de manipulation de bits"
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr "Ne pas générer du code pour une unité de manipulation de bits"
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr "Générer du code pour la mémoire map1"
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr "Générer du code pour la mémoire map2"
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr "Générer du code pour la mémoire map3"
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr "Générer du code pour la mémoire map4"
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr "Produire du code additionnel pour les données initialisées"
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr "Ne pas laisser l'allocateur de registres utiliser les registres ybase"
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr "Produire des informations supplémentaires de mise au point dans l'environnement Luxworks"
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr "Sauvegarder les fichiers temporaires dans l'environnement Luxworks"
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr "Spécifier un nom alternatif pour la section texte"
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr "Spécifier un nom alternatif pour la section données"
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr "Spécifier un nom alternatif pour la section bss"
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr "Spécifier un nom alternatif pour la section des constantes"
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr "Spécifier un nom alternatif pour le cirsuit dsp16xx"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1219 config/dsp16xx/dsp16xx.h:1224 config/dsp16xx/dsp16xx.h:1229 config/dsp16xx/dsp16xx.h:1809 config/dsp16xx/dsp16xx.h:1814
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
msgid "profiling not implemented yet"
msgstr "profilage n'est pas implanté encore"
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1240 config/dsp16xx/dsp16xx.h:1252
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
msgid "trampolines not yet implemented"
msgstr "trampolines ne sont pas encore implantées"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr "Générer du code que l'assembleur UNIX peut traiter"
-
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr "Générer du code qu'un assembleur enchâssé peut traiter"
-
-#: config/fr30/fr30.c:456
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: adresse non traitée"
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:480
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: code %%p non reconnue"
-#: config/fr30/fr30.c:503
+#: config/fr30/fr30.c:500
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: code %%b non reconnue"
-#: config/fr30/fr30.c:524
+#: config/fr30/fr30.c:521
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: code %%B non reconnu"
-#: config/fr30/fr30.c:532
+#: config/fr30/fr30.c:529
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: opérande invalide pour code %%A"
-#: config/fr30/fr30.c:549
+#: config/fr30/fr30.c:546
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: code %%x invalide"
-#: config/fr30/fr30.c:556
+#: config/fr30/fr30.c:553
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: code %%F invalide"
-#: config/fr30/fr30.c:572
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: code inconnu"
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621 config/fr30/fr30.c:634
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: MEM non traité"
-#: config/fr30/fr30.h:57
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
-msgstr "Assumer un petit espace d'adressage"
+msgstr "Présumer un petit espace d'adressage"
+
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "Processeur inconnu : -mcpu=%s"
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr "-fpic et -gdwarf sont incompatibles (-fpic et -g/-gdwarf-2 sont acceptables)"
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "insn erroné pour frv_print_operand_addresse:"
+
+#: config/frv/frv.c:2533
+#, fuzzy
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "insn erroné pour d30v_print_operand_memory_reference:"
-#: config/h8300/h8300.c:142
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+#, fuzzy
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "insn erroné pour d30v_print_operand_memory_reference:"
+
+#: config/frv/frv.c:2779
+#, fuzzy
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "insn erroné dans d30v_print_operand, cas 0"
+
+#: config/frv/frv.c:2824
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:2847
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:2872
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:2880
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:2896
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "insn erroné pour d30v_print_operand, modificateur « f »:"
+
+#: config/frv/frv.c:2949
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:2962
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "insn erroné pour d30v_print_operand, modificateur « M »:"
+
+#: config/frv/frv.c:2983
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:3001
+#, fuzzy
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "insn erroné pour print_operand, modificateur « B »:"
+
+#: config/frv/frv.c:3021
+#, fuzzy
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "insn erroné dans d30v_print_operand, cas 0"
+
+#: config/frv/frv.c:3049
+#, fuzzy
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "insn erroné dans d30v_print_operand, cas 0"
+
+#: config/frv/frv.c:3054
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "fr30_print_operand: code inconnu"
+
+#: config/frv/frv.c:5737
+#, fuzzy
+msgid "Bad output_move_single operand"
+msgstr "output_move_single:"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+#, fuzzy
+msgid "Bad output_condmove_single operand"
+msgstr "output_move_single:"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "argument de « asm » n'est pas une chaîne de constante"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "aucune déclaration précédente pour « %s »"
+
+#: config/frv/frv.c:9253
+#, fuzzy, c-format
+msgid "`%s' expects a constant argument"
+msgstr "l'attribut « %s » requiert un argument de type constante entière"
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "code de tache %ld hors gamme pour « %s »"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
msgid "-ms2600 is used without -ms"
msgstr "-ms2600 est utilisé sans -ms"
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "-ms2600 est utilisé sans -ms"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+#, fuzzy
+msgid "Generate H8S code"
msgstr "Générer du code H8/S"
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+#, fuzzy
+msgid "Do not generate H8S code"
msgstr "Ne pas générer du code H8/S"
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+#, fuzzy
+msgid "Generate H8S/2600 code"
msgstr "Générer du code H8/S2600"
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
msgstr "Ne pas générer du code H8/S2600"
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr "Rendre les entiers larges de 32 bits"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr "Utiliser les registres pour le passage d'arguments"
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr "Ne pas utiliser les registres pour le passage d'arguments"
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr "Considérer l'accès mémoire lent pour la taille d'octets"
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr "Auoriser la rélâche par l'éditeur de liens"
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr "Générer du code H8/300H"
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+#, fuzzy
+msgid "Enable the normal mode"
+msgstr "mode incompatible d'enregistrement"
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr "Ne pas générer du code H8/300H"
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr "Utiliser les règles d'alignement H8/300"
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr "rebut à la fin de #pragma map"
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
msgid "malformed #pragma map, ignored"
msgstr "#pragma map mal composé, ignoré"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr "nom réel est trop long - alias ignoré"
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr "nom d'alias est trop long - alias ignoré"
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr "erreur interne--pas de saut suivant la comparaison:"
@@ -9892,331 +10393,368 @@ msgstr "erreur interne--pas de saut suivant la comparaison:"
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr "Générer des instructions « char »"
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr "Ne pas générer des instructions « char »"
-#: config/i386/i386.c:925
+#: config/i386/i386.c:1050
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "model de code %s n'est pas supporté en mode PIC"
-#: config/i386/i386.c:935 config/sparc/sparc.c:344
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "valeur erronée (%s) pour l'opton -mcmodel="
-#: config/i386/i386.c:950
+#: config/i386/i386.c:1075
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "valeur erronée (%s) pour l'option -masm"
-#: config/i386/i386.c:953
+#: config/i386/i386.c:1078
#, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr "model de code « %s » n'est pas supporté dans le mode %s bits"
-#: config/i386/i386.c:956
+#: config/i386/i386.c:1081
msgid "code model `large' not supported yet"
msgstr "model de code « large » n'est pas supporté encore"
-#: config/i386/i386.c:958
+#: config/i386/i386.c:1083
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "mode %i bits pas compilé en"
-#: config/i386/i386.c:988 config/mips/mips.c:4989
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "valeur erronée (%s) pour l'option -march="
-#: config/i386/i386.c:999 config/mips/mips.c:4945
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "valeur erronée (%s) pour l'option -mcpu="
-#: config/i386/i386.c:1018
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d n'est pas entre 0 et %d"
-#: config/i386/i386.c:1031
+#: config/i386/i386.c:1154
msgid "-malign-loops is obsolete, use -falign-loops"
-msgstr "-malign-loops=%d est obsolète, utiliser -falign-loops"
+msgstr "-malign-loops est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1036 config/i386/i386.c:1049 config/i386/i386.c:1062
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d n'est pas entre 0 et %d"
-#: config/i386/i386.c:1044
+#: config/i386/i386.c:1167
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1057
+#: config/i386/i386.c:1180
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions est obsolète, utiliser -falign-loops"
-#: config/i386/i386.c:1095
+#: config/i386/i386.c:1218
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred-stack-boundary=%d n'est pas entre %d et 12"
-#: config/i386/i386.c:1107
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d n'est pas entre 0 et 5"
-#: config/i386/i386.c:1129
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "valeur erronée (%s) pour l'option -msdata"
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double n'a aucun sens en mode 64 bits"
-#: config/i386/i386.c:1131
+#: config/i386/i386.c:1265
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "la conversion d'appel -mrtd n'est pas supporté en mode 64 bits"
-#: config/i386/i386.c:1147 config/i386/i386.c:1158
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "jeu d'instructions SSE désactivé, arithmétique 387 est utilisé"
-#: config/i386/i386.c:1163
+#: config/i386/i386.c:1297
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "jeu d'instructions 387 désactivé, arithmétique SSE est utilisé"
-#: config/i386/i386.c:1170
+#: config/i386/i386.c:1304
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "valeur erronée (%s) pour l'option -mfpmath"
-#: config/i386/i386.c:1300
+#: config/i386/i386.c:1436
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr "l'attribut « %s » requiert un argument de type constante entière"
-#: config/i386/i386.c:1306
+#: config/i386/i386.c:1442
#, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "l'argument pour l'attribut « %s » est plus grand que %d"
-#: config/i386/i386.c:5363
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
msgid "invalid UNSPEC as operand"
msgstr "UNSPEC invalide comme opérande"
-#: config/i386/i386.c:5596
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr "registres étendus n'a pas de demis hauts"
-#: config/i386/i386.c:5611
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr "taille d'opérande non supportée pour un registre étendu"
-#: config/i386/i386.c:5884
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr "l'opérande n'est ni une constante ni du code de condition, code d'opérande invalide « c »"
-#: config/i386/i386.c:5930
+#: config/i386/i386.c:7024
#, c-format
msgid "invalid operand code `%c'"
msgstr "opérande invalide pour « %c »"
-#: config/i386/i386.c:9867
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "opérande %%c invalide"
+
+#: config/i386/i386.c:11271
msgid "unknown insn mode"
msgstr "mode insn inconnu"
#. @@@ better error message
-#: config/i386/i386.c:11730 config/i386/i386.c:11763
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
msgid "selector must be an immediate"
msgstr "sélecteur doit être un immédiat"
#. @@@ better error message
-#: config/i386/i386.c:11921 config/i386/i386.c:11949
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
msgid "mask must be an immediate"
msgstr "masque doit être un immédiat"
-#: config/i386/winnt.c:94
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "masque doit être un immédiat"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "définition de fonction déclaré « auto »"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "variable static « %s » est marquée dllimport"
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
#, c-format
msgid "`%s' attribute only applies to variables"
msgstr "attribut « %s » s'applique seulement aux variables"
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "fonction « %s » redéclarée avec l'attribut noinline"
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
#, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr "« %s » déclaré à la fois comme exporté et importé d'une DLL"
-#: config/i386/cygwin.h:51
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr "Utiliser l'interface Cygwin"
-#: config/i386/cygwin.h:53
+#: config/i386/cygwin.h:46
msgid "Use the Mingw32 interface"
msgstr "Utiliser l'interface Mingw32"
-#: config/i386/cygwin.h:54
+#: config/i386/cygwin.h:47
msgid "Create GUI application"
msgstr "Créer une application de type GUI"
-#: config/i386/cygwin.h:55
+#: config/i386/cygwin.h:48
msgid "Don't set Windows defines"
msgstr "Ne pas initialiser les définitions Windows"
-#: config/i386/cygwin.h:56
+#: config/i386/cygwin.h:49
msgid "Set Windows defines"
msgstr "Initialiser les définitions Windows"
-#: config/i386/cygwin.h:58
+#: config/i386/cygwin.h:50
msgid "Create console application"
msgstr "Créer une application de type console"
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
msgid "Generate code for a DLL"
msgstr "Générer le code pour un DLL"
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
msgid "Ignore dllimport for functions"
msgstr "Ignorer dllimport pour fonctions"
-#: config/i386/cygwin.h:63
+#: config/i386/cygwin.h:55
msgid "Use Mingw-specific thread support"
msgstr "Utilise le support de thread spécifique à Mingw"
-#: config/i386/cygwin.h:257
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr "-f%s ignoré pour la cible (tout le code set indépendant de la position)"
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr "Retenir l'information standard MXDB"
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr "Retenir les informations de légende"
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr "Générer les informations externes de légende"
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr "Produire les infos d'identification dans le fichier .s"
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr "Avertir lorsque l'arg d'une fonction est une structure"
-
-#: config/i386/dgux.h:252
-msgid "argument is a structure"
-msgstr "argument est une structure"
-
-#: config/i386/djgpp.h:201
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr "-mbnu210 est ignoré (option obsolète)"
-#: config/i386/i386.h:45 config/mips/mips.h:186
-msgid "half-pic init called on systems that don't support it"
-msgstr "init à demi PIC appelé sur un système qui ne le supporte pas"
-
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:303
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr "Convention alternative d'appels"
-#: config/i386/i386.h:305 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Utiliser la convention normale d'appels"
-#: config/i386/i386.h:307
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr "Aligner quelques doubles sur des frontières de mots doubles"
-#: config/i386/i386.h:309
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr "Aligner les doubles sur des frontières de mots"
-#: config/i386/i386.h:311
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr "Var. locales non initialisées dans .bss"
-#: config/i386/i386.h:313
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr "Var. locales non initialisées dans .data"
-#: config/i386/i386.h:315 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Utiliser les mathématiques IEEE pour les comparaisons FP"
-#: config/i386/i386.h:317
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "Ne pas utiliser les mathématiques IEEE pour les comparaisons FP"
-#: config/i386/i386.h:319
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr "Retourner les valeurs de fonctions dans les registres FPU"
-#: config/i386/i386.h:321
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr "Ne pas retourner les valeurs de fonctions dans les registres FPU"
-#: config/i386/i386.h:323
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "Ne pas générer sin, cos, sqrt pour le FPU"
-#: config/i386/i386.h:325
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Générer sin, cos, sqrt pour le FPU"
-#: config/i386/i386.h:327
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr "Omettre le pointeur de trame dans les fonctions feuilles"
-#: config/i386/i386.h:330
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr "Autoriser le sondage de la pile"
#. undocumented
#. undocumented
-#: config/i386/i386.h:335
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr "Aligner la destination des opérations sur les chaînes"
-#: config/i386/i386.h:337
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr "Ne pas aligner la destination des opérations sur les chaînes"
-#: config/i386/i386.h:339
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr "Permettre l'enlignage dans toutes les opérations portant sur les chaînes"
-#: config/i386/i386.h:341
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr "Ne pas permettre l'enlignage dans toutes les opérations portant sur les chaînes"
-#: config/i386/i386.h:343 config/i386/i386.h:348
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr "Utiliser les instructions push pour sauvegardes les arguments sortants"
-#: config/i386/i386.h:345 config/i386/i386.h:350
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr "Ne pas utiliser les instructions push pour sauvegardes les arguments sortants"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:354
msgid "Support MMX built-in functions"
msgstr "Supporte les fonctions internes MMX"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:356
msgid "Do not support MMX built-in functions"
msgstr "Ne supporte pas les fonctions internes MMX"
-#: config/i386/i386.h:357
+#: config/i386/i386.h:358
msgid "Support 3DNow! built-in functions"
msgstr "Supporte les fonctions internes 3DNOW!"
@@ -10228,39 +10766,39 @@ msgstr "Ne supporte pas les fonctions internes 3DNOW!"
msgid "Support MMX and SSE built-in functions and code generation"
msgstr "Supporte les fonctions internes MMX et SSE et la génération de code"
-#: config/i386/i386.h:365
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr "Ne supporte pas les fonctions internes MMX et SSE et la génération de code"
-#: config/i386/i386.h:367
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Supporte les fonctions internes MMX, SSE et SSE2 et la génération de code"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr "Ne supporte pas les fonctions internes MMX, SSE et SSE2 et la génération de code"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:370
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) est 16"
-#: config/i386/i386.h:374
+#: config/i386/i386.h:372
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) est 12"
-#: config/i386/i386.h:376
+#: config/i386/i386.h:374
msgid "Generate 64bit x86-64 code"
msgstr "Générer du code 64 bits pour x86-64"
-#: config/i386/i386.h:378
+#: config/i386/i386.h:376
msgid "Generate 32bit i386 code"
msgstr "Générer du code 32 bits pour i386"
-#: config/i386/i386.h:380
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr "Utiliser la zone-rouge pour le code x86-64"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:380
msgid "Do not use red-zone in the x86-64 code"
msgstr "Ne pas utiliser la zone-rouge pour le code x86-64"
@@ -10273,21 +10811,21 @@ msgstr "Ne pas utiliser la zone-rouge pour le code x86-64"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:428 config/rs6000/rs6000.h:428 config/sparc/sparc.h:641
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
-msgstr "Çéduler le code pour le CPU donné"
+msgstr "Ordonnancer le code pour le processeur donné"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:411
msgid "Generate floating point mathematics using given instruction set"
msgstr "Générer les mathématiques en virgule flottante avec le jeu d'instructions données"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
-msgstr "Générer le code pour le CPU donné"
+msgstr "Générer le code pour le processeur donné"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
-msgstr "Nombre de registre utiliser pour passer les arguments entiers"
+msgstr "Nombre de registres utilisés pour passer les arguments entiers"
#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
#. This macro is similar to `TARGET_SWITCHES' but defines names of
@@ -10299,71 +10837,42 @@ msgstr "Nombre de registre utiliser pour passer les arguments entiers"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:436 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "Codes de boucles alignés selon une puissance de 2"
-#: config/i386/i386.h:438 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "Sauts de cibles alignés selon une puissance de 2"
-#: config/i386/i386.h:440 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "Débuts des fonction alignés selon une puissance de 2"
-#: config/i386/i386.h:443
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Tentative de conservation de la pile alignée selon une puissance de 2"
-#: config/i386/i386.h:445
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Branchements coûteux à ce point (1-4, unités arbitraires)"
-#: config/i386/i386.h:447
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr "Utiliser le modèle de x86-64 donné"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:453
+#: config/i386/i386.h:434
msgid "Use given assembler dialect"
msgstr "Utiliser la syntaxe de l'assembleur donné"
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr "Profilage utilise mcount"
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr "Produire du code à moitié PIC"
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr "Produire du code objet ELF"
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr "Produire du code objet ROSE"
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr "Les symboles sont précédées d'un caractère de soulignement "
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr "Aligner sur >frontières de mots"
-
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr "Utiliser mcount pour le profilage"
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
-msgstr "Utiliser mcount_ptr pour le profilage"
+#: config/i386/i386.h:436
+#, fuzzy
+msgid "Use given thread-local storage dialect"
+msgstr "Utiliser la syntaxe de l'assembleur donné"
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr "Générer la sortie ELF"
@@ -10395,32 +10904,31 @@ msgstr "variable d'environment DJGPP pointe sur un fichier manquant « %s »"
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr "variable d'environment DJGPP pointe vers un fichier corrompu « %s »"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr "Générer du code qui utilise le FPU"
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29 config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr "Ne pas générer du code qui utilise le FPU"
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr "désolé, pas implanté: #pragma align NOM=TAILLE"
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
msgstr "#pragma align mal composé - ignoré"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr "désolé, pas implanté: #pragma noalign NOM"
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8437
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "architectures conflictuelles définies - utilise les séries C"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "architectures conflictuelles définies - utilise les séries K"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 et iC3.0 sont incompatibles - utilise iC3.0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
msgstr "expression limitant la pile n'est pas supportée"
@@ -10478,6 +10986,10 @@ msgstr "Générer du code CA"
msgid "Generate CF code"
msgstr "Générer du code CF"
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Utiliser le traitement par logiciel des nombres flottants"
+
#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr "Utiliser les entrées alternatives pour les fonctions de feuilles"
@@ -10539,7 +11051,8 @@ msgstr "Utiliser une disposition de type Intel's v1.3 gcc"
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr "Ne pas utiliser une disposition de type Intel's v1.3 gcc"
-#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86 config/sparc/linux64.h:143 config/sparc/netbsd-elf.h:238
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr "Utiliser les doubles longs de 64 bits"
@@ -10551,186 +11064,200 @@ msgstr "Autoriser la relâche par l'éditeur de liens"
msgid "Do not enable linker relaxation"
msgstr "Ne pas autoriser la relâche par l'éditeur de liens"
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:342 config/i960/i960.h:352
-msgid "conflicting architectures defined - using C series"
-msgstr "architectures conflictuelles définies - utilise les séries C"
-
-#: config/i960/i960.h:347
-msgid "conflicting architectures defined - using K series"
-msgstr "architectures conflictuelles définies - utilise les séries K"
-
-#: config/i960/i960.h:362
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr "iC2.0 et iC3.0 sont incompatibles - utilise iC3.0"
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:373
-msgid "the -mlong-double-64 option does not work yet"
-msgstr "l'option -mlong-double-64 n'est pas fonctionnelle encore"
+#: config/ia64/ia64-c.c:51
+#, fuzzy
+msgid "malformed #pragma builtin"
+msgstr "sectin mal composée #pragma ghs"
-#: config/ia64/ia64.c:3554
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: code inconnu"
-#: config/ia64/ia64.c:3828
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "valeur de -mfixed-range doit avoir la forme REG1-REG2"
-#: config/ia64/ia64.c:3855
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s est une étendue vide"
-#: config/ia64/ia64.c:3920
-msgid "cannot optimize division for both latency and throughput"
+#: config/ia64/ia64.c:4350
+#, fuzzy
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "ne peut optimiser la division à la fois pour la latence et la quantité produite"
+
+#: config/ia64/ia64.c:4356
+#, fuzzy
+msgid "cannot optimize integer division for both latency and throughput"
msgstr "ne peut optimiser la division à la fois pour la latence et la quantité produite"
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "valeur erronée (%s) pour l'option -mtune"
+
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:119
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr "Générer du code de système à octets de poids fort"
-#: config/ia64/ia64.h:121 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr "Générer du code de système à octets de poids faible"
-#: config/ia64/ia64.h:123
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr "Générer du code pour GNU tel que"
-#: config/ia64/ia64.h:125
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr "Générer du code pour Intel tel que"
-#: config/ia64/ia64.h:127
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr "Générer du code pour GNU ld"
-#: config/ia64/ia64.h:129
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr "Générer du code pour Intel ld"
-#: config/ia64/ia64.h:131
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr "Générer du code sans registre GP"
-#: config/ia64/ia64.h:133
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr "Produire de stop bits avant et après les asms étendus"
-#: config/ia64/ia64.h:135
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "Ne pas produire de stop bits avant et après les asms étendus"
-#: config/ia64/ia64.h:137
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr "Produire du code pour le processeur B Itanium (TM)"
-#: config/ia64/ia64.h:139
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr "Utilise les noms des registres in/loc/out "
-#: config/ia64/ia64.h:141
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr "Interdire l'utilisation de sdata/scommon/sbss"
-#: config/ia64/ia64.h:143
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr "Autoriser l'utilisation de sdata/scommon/sbss"
-#: config/ia64/ia64.h:145
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp est une constante (mais save/restore gp fait par appels indirects)"
-#: config/ia64/ia64.h:147
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr "Générer du code auto-relocalisable"
-#: config/ia64/ia64.h:149
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:184
+#, fuzzy
+msgid "Generate inline floating point division, optimize for latency"
msgstr "Générer les divisions en ligne, optimisées pour la latence"
-#: config/ia64/ia64.h:151
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:186
+#, fuzzy
+msgid "Generate inline floating point division, optimize for throughput"
msgstr "Générer les divisions en ligne, optimisées pour la quantité"
-#: config/ia64/ia64.h:153
+#: config/ia64/ia64.h:188
+#, fuzzy
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Générer les divisions en ligne, optimisées pour la latence"
+
+#: config/ia64/ia64.h:190
+#, fuzzy
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Générer les divisions en ligne, optimisées pour la quantité"
+
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "Autoriser les infos de lignes de mise au point Dwarf 2 via GNU tel que"
-#: config/ia64/ia64.h:155
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "Interdire les infos de lignes de mise au point Dwarf 2 via GNU tel que"
-#: config/ia64/ia64.h:183
+#: config/ia64/ia64.h:223
msgid "Specify range of registers to make fixed"
msgstr "spécifier l'étendue des registres pour la rendre fixe"
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "opérande ASM erronée"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "valeur erronée (%s) pour l'option -mmodel"
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "valeur erronée (%s) pour l'option -msdata"
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, c-format
msgid "invalid argument of `%s' attribute"
msgstr "type d'argument invalide pour l'attribut « %s »"
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr "constantes objets ne peuvent aller dans .sdata/.sbss"
-#: config/m32r/m32r.c:2248
+#: config/m32r/m32r.c:2256
#, c-format
msgid "invalid operand to %%s code"
msgstr "opérande invalide pour le code %%s"
-#: config/m32r/m32r.c:2255
+#: config/m32r/m32r.c:2263
#, c-format
msgid "invalid operand to %%p code"
msgstr "opérande invalide pour le code %%p"
-#: config/m32r/m32r.c:2311
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr "insn erroné pour « A »"
-#: config/m32r/m32r.c:2363
+#: config/m32r/m32r.c:2370
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "opérande invalide pour le code %%T/%%B"
-#: config/m32r/m32r.c:2386
+#: config/m32r/m32r.c:2393
#, c-format
msgid "invalid operand to %%N code"
msgstr "opérande invalide pour le code %%N"
-#: config/m32r/m32r.c:2431
+#: config/m32r/m32r.c:2438
msgid "pre-increment address is not a register"
msgstr "pré-incrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2438
+#: config/m32r/m32r.c:2445
msgid "pre-decrement address is not a register"
msgstr "pré-décrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2445
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr "post-incrément d'adresse n'est pas un registre"
-#: config/m32r/m32r.c:2523 config/m32r/m32r.c:2539 config/rs6000/rs6000.c:11065
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
msgid "bad address"
msgstr "adresse erronée"
-#: config/m32r/m32r.c:2544
+#: config/m32r/m32r.c:2551
msgid "lo_sum not of register"
msgstr "lo_sum n'est pas un registre"
@@ -10759,45 +11286,55 @@ msgstr "Taille du code: small, medium ou large"
msgid "Small data area: none, sdata, use"
msgstr "Petite zone de données: none, sdata, use"
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s ignoré pour 68HC11/68HC12 (non supporté)"
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "attribut « %s » ignoré"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3170 config/m68hc11/m68hc11.c:3544
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr "déplacement insn non traité"
-#: config/m68hc11/m68hc11.c:3390 config/m68hc11/m68hc11.c:3474 config/m68hc11/m68hc11.c:3747
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
msgid "invalid register in the move instruction"
msgstr "registre invalide dans l'instruction de déplacement"
-#: config/m68hc11/m68hc11.c:3424
+#: config/m68hc11/m68hc11.c:3613
msgid "invalid operand in the instruction"
msgstr "opérande invalide dans l'instruction"
-#: config/m68hc11/m68hc11.c:3721
+#: config/m68hc11/m68hc11.c:3920
msgid "invalid register in the instruction"
msgstr "registre invalide dans l'instruction"
-#: config/m68hc11/m68hc11.c:3754
+#: config/m68hc11/m68hc11.c:3953
msgid "operand 1 must be a hard register"
msgstr "l'opérande 1 doit être un registre matériel"
-#: config/m68hc11/m68hc11.c:3771
+#: config/m68hc11/m68hc11.c:3970
msgid "invalid rotate insn"
msgstr "rotation invalide insn"
-#: config/m68hc11/m68hc11.c:4196
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr "registres IX, IY et Z utilisés dans le même INSN"
-#: config/m68hc11/m68hc11.c:4521 config/m68hc11/m68hc11.c:4823
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr "ne peut effectuer le remplacement d'un registre z"
-#: config/m68hc11/m68hc11.c:4886
+#: config/m68hc11/m68hc11.c:5094
msgid "invalid Z register replacement for insn"
msgstr "remplacement invalide de registre Z pour insn"
@@ -10805,34 +11342,63 @@ msgstr "remplacement invalide de registre Z pour insn"
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:155
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr "Compiler en mode entier de 16 bits"
-#: config/m68hc11/m68hc11.h:157
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr "Compiler en mode entier de 32 bits"
-#: config/m68hc11/m68hc11.h:159
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr "Auto pré/post décrementation incrémentation permise"
-#: config/m68hc11/m68hc11.h:161
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr "Auto pré/post décrementation incrémentation non permise"
-#: config/m68hc11/m68hc11.h:163
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+#, fuzzy
+msgid "Min/max instructions not allowed"
+msgstr "instruction ret n'est pas implantée"
+
+#: config/m68hc11/m68hc11.h:184
+#, fuzzy
+msgid "Use call and rtc for function calls and returns"
+msgstr "Générer un appel pour stopper si une fonction sans retour retourne un résultat"
+
+#: config/m68hc11/m68hc11.h:186
+#, fuzzy
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Utiliser des stubs pour les prologues de fonction"
+
+#: config/m68hc11/m68hc11.h:188
msgid "Do not use direct addressing mode for soft registers"
msgstr "Ne pas utiliser les modes directs d'adressage pour des registres logiciels"
-#: config/m68hc11/m68hc11.h:165 config/m68hc11/m68hc11.h:169
+#: config/m68hc11/m68hc11.h:190
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "Ne pas utiliser les modes directs d'adressage pour des registres logiciels"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr "Compiler pour un 68HC11"
-#: config/m68hc11/m68hc11.h:167 config/m68hc11/m68hc11.h:171
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr "Compiler pour un 68HC12"
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+#, fuzzy
+msgid "Compile for a 68HCS12"
+msgstr "Compiler pour un 68HC12"
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10842,29 +11408,33 @@ msgstr "Compiler pour un 68HC12"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:185
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr "Spécifier l'ordre d'allocation des registres"
-#: config/m68hc11/m68hc11.h:187
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr "Indiquer le nombre de registres logiciels disponibles"
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d n'est pas entre 1 et %d"
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d n'est pas entre 1 et %d"
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d n'est pas entre 1 et %d"
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "-fPIC n'est pas couramment supporté pour le 68000 ou 68010\n"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -10916,23 +11486,23 @@ msgstr "Ne pas utiliser la convention d'édition de lien Sky"
#: config/m68k/m68k.h:197
msgid "Generate code for a 68881"
-msgstr "Générer le code pour un 68881"
+msgstr "Générer du code pour un 68881"
#: config/m68k/m68k.h:200
msgid "Generate code with library calls for floating point"
-msgstr "Générer le code avec les appels de librairies en virgule flottante"
+msgstr "Générer du code avec les appels de bibliothèques pour la virgule flottante"
#: config/m68k/m68k.h:202
msgid "Generate code for a 68040, without any new instructions"
-msgstr "Générer le code pour un 68040 sans les nouvelles instructions"
+msgstr "Générer du code pour un 68040 sans les nouvelles instructions"
#: config/m68k/m68k.h:205
msgid "Generate code for a 68060, without any new instructions"
-msgstr "Générer le code pour un 68060 sans les nouvelles instructions"
+msgstr "Générer du code pour un 68060 sans les nouvelles instructions"
#: config/m68k/m68k.h:209
msgid "Generate code for a 68030"
-msgstr "Générer le code pour un 68030"
+msgstr "Générer du code pour un 68030"
#: config/m68k/m68k.h:212
msgid "Generate code for a 68040"
@@ -10940,11 +11510,11 @@ msgstr "Générer du code pour un 68040"
#: config/m68k/m68k.h:216
msgid "Generate code for a 68060"
-msgstr "Générer le code pour un 68060"
+msgstr "Générer du code pour un 68060"
#: config/m68k/m68k.h:221
msgid "Generate code for a 520X"
-msgstr "Générer le code pour un 520X"
+msgstr "Générer du code pour un 520X"
#: config/m68k/m68k.h:224
msgid "Generate code for a 68851"
@@ -10952,19 +11522,19 @@ msgstr "Générer le code pour un 68851"
#: config/m68k/m68k.h:226
msgid "Do no generate code for a 68851"
-msgstr "Ne pas générer le code pour un 68851"
+msgstr "Ne pas générer de code pour un 68851"
#: config/m68k/m68k.h:229
msgid "Generate code for a 68302"
-msgstr "Générer le code pour un 68302"
+msgstr "Générer du code pour un 68302"
#: config/m68k/m68k.h:232
msgid "Generate code for a 68332"
-msgstr "Générer le code pour un 68332"
+msgstr "Générer du code pour un 68332"
#: config/m68k/m68k.h:236
msgid "Generate code for a cpu32"
-msgstr "Générer le code pour un cpu32"
+msgstr "Générer du code pour un cpu32"
#: config/m68k/m68k.h:239
msgid "Align variables on a 32-bit boundary"
@@ -10986,91 +11556,84 @@ msgstr "Ne pas utiliser des références mémoire non alignées"
msgid "Use unaligned memory references"
msgstr "Utiliser des références mémoire non alignées"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr "-fPIC n'est pas couramment supporté pour le 68000 ou 68010\n"
-
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr "moniteur interne gcc: branchement court(%x)"
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
msgid "internal gcc error: Can't express symbolic location"
msgstr "erreur interne gcc: ne peut exprimer la localisation symbolique"
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr "argument #%d est une structure"
-#: config/m88k/m88k.c:2882
+#: config/m88k/m88k.c:2816
#, c-format
msgid "%%R not followed by %%B/C/D/E"
msgstr "%%R n'est pas suivi de %%B/C/D/E"
-#: config/m88k/m88k.c:2950
+#: config/m88k/m88k.c:2884
#, c-format
msgid "invalid %%x/X value"
msgstr "valeur %%x/X invalide"
-#: config/m88k/m88k.c:2973 config/rs6000/rs6000.c:6509
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "valeur %%Q invalide"
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
#, c-format
msgid "invalid %%q value"
msgstr "valeur %%q invalide"
-#: config/m88k/m88k.c:2979
+#: config/m88k/m88k.c:2913
#, c-format
msgid "invalid %%o value"
msgstr "valeur %%o invalide"
-#: config/m88k/m88k.c:2986 config/rs6000/rs6000.c:6472
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
msgid "invalid %%p value"
msgstr "valeur %%p invalide"
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
#, c-format
msgid "invalid %%s/S value"
msgstr "valeur %%s/S invalide"
-#: config/m88k/m88k.c:3015
+#: config/m88k/m88k.c:2949
#, c-format
msgid "invalid %%P operand"
msgstr "opérande %%P invalide"
-#: config/m88k/m88k.c:3046 config/romp/romp.c:682
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
msgid "invalid %%B value"
msgstr "valeur %%B invalide"
-#: config/m88k/m88k.c:3076
+#: config/m88k/m88k.c:3010
#, c-format
msgid "invalid %%D value"
msgstr "valeur %%D invalide"
-#: config/m88k/m88k.c:3089
+#: config/m88k/m88k.c:3023
#, c-format
msgid "`%%d' operand isn't a register"
msgstr "l'opérande «%%d» n'est pas un registre"
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr "opérande est R0"
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr "opérande est de type const_double"
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "code invalide"
@@ -11094,7 +11657,7 @@ msgstr "-mshort-data-%s est trop grande "
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mshort-data-%s et PIC sont incompatibles"
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "opton invalide «-mstack-increment=%s'"
@@ -11120,7 +11683,8 @@ msgid "Do not use the divide instruction"
msgstr "Ne pas utiliser l'instruction de division"
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+#, fuzzy
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr "Ne pas calculer la taille des immédiats dans les opérations sur les bits"
#: config/mcore/mcore.h:142
@@ -11151,217 +11715,232 @@ msgstr "Générer du code pour M*Core M340"
msgid "Maximum amount for a single stack increment operation"
msgstr "Montant maximal pour une opération d'incrémentation simple de la pile"
-#: config/mips/mips.c:4815
-msgid "The -march option is incompatible to -mipsN and therefore ignored."
-msgstr "L'option -march est incompatible avec -mipsN et est alors ignorée."
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "valeur erronée (%s) pour l'option -mabi"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:5158
#, c-format
-msgid "-mips%d not supported"
-msgstr "-mips%d n'est pas supporté"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr ""
-#: config/mips/mips.c:4848
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr "valeur erronée (%s) pour l'option -mips"
-#: config/mips/mips.c:4869
-#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "valeur erronée (%s) pour l'option -mabi"
+#: config/mips/mips.c:5180
+#, fuzzy, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "le sélecteur de CASE n'est pas compatible avec l'étiquette"
-#: config/mips/mips.c:4907
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "-mabi=%s ne supporte pas -mips%d"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr ""
-#: config/mips/mips.c:4924
-msgid "this target does not support the -mabi switch"
-msgstr "cette cible ne supporte pas l'option -mabi"
+#: config/mips/mips.c:5194
+#, fuzzy
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "Utiliser ABI de 64 bits"
-#: config/mips/mips.c:5034
-#, c-format
-msgid "bad value (%s) for -mtune= switch"
-msgstr "valeur erronée (%s) pour l'option -mtune"
+#: config/mips/mips.c:5196
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "Utiliser ABI de 32 bits"
-#: config/mips/mips.c:5044
-#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mips%d ne supporte pas les registres FP de 64 bits"
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "valeur de conversion non supportée"
-#: config/mips/mips.c:5050
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mips%d ne supporte pas les registres GP de 64 bits"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
-#: config/mips/mips.c:5071
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G est incompatible avec le code PIC par défaut"
-#: config/mips/mips.c:5087
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr "-membedded-pic et -mabicalls sont incompatibles"
-#: config/mips/mips.c:5090
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr "-G et -membedded-pic sont incompatibles"
-#: config/mips/mips.c:5141
+#: config/mips/mips.c:5369
#, c-format
msgid "invalid option `entry%s'"
msgstr "option invalide «entry%s'"
-#: config/mips/mips.c:5144
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr "-mentry n'a de sens qu'avec -mips-16"
-#: config/mips/mips.c:5484
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "erreur interne: %%) trouvé sans %%( dans le patron d'aswsemblage"
-#: config/mips/mips.c:5498
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "erreur interne: %%] trouvé sans %%[ dans le patron d'assemblage"
-#: config/mips/mips.c:5511
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "erreur interne: %%> trouvé sans %%< dans le patron d'assemblage"
-#: config/mips/mips.c:5524
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "erreur interne: %%} trouvé sans %%{ dans le patron d'assemblage"
-#: config/mips/mips.c:5538
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ponctuation « %c » inconnue"
-#: config/mips/mips.c:5547 config/xtensa/xtensa.c:1913
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND pointeur nul"
-#: config/mips/mips.c:5680
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "utilisation invalide de %%d, %%x, ou %%X"
-#: config/mips/mips.c:5723 config/xtensa/xtensa.c:2012
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, pointeur nul"
-#: config/mips/mips.c:5947
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr "format MIPS ECOFF ne permet pas de changer le nom des fichiers à l'intérieur des fonction avec #line"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6552
msgid "can't rewind temp file"
msgstr "ne peut rembobiner le fichier temporaire"
-#: config/mips/mips.c:6265
+#: config/mips/mips.c:6556
msgid "can't write to output file"
msgstr "ne peut écrire dans le fichier de sortie"
-#: config/mips/mips.c:6268
+#: config/mips/mips.c:6559
msgid "can't read from temp file"
msgstr "ne peut lire du fichier temporaire"
-#: config/mips/mips.c:6271
+#: config/mips/mips.c:6562
msgid "can't close temp file"
msgstr "ne peut fermer le fichier temporaire"
-#: config/mips/mips.c:6704
+#: config/mips/mips.c:7003
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "gp_offset (%ld) ou end_offset (%ld) est plus petit que zéro"
-#: config/mips/mips.c:6866
+#: config/mips/mips.c:7112
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "fp_offset (%ld) ou end_offset (%ld) est plus petit que zéro"
-#: config/mips/mips.c:8927
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "ne peut traiter des appels inconsistents à « %s »"
+#: config/mips/mips.c:10467
+#, fuzzy
+msgid "the cpu name must be lower case"
+msgstr "Noms de symboles en minuscules"
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "valeur (%s) erronée pour l'option %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr "Aucun défaut pour crt0.o"
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr "Utiliser le type int de 64 bits"
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr "Utiliser le type long de 64 bits"
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr "Utiliser le type long de 32 bits"
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr "Optimiser les chargements d'adresses lui/addiu"
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr "Ne pas optimiser les chargements d'adresses lui/addiu"
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr "Utiliser MIPS tel que"
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr "Utiliser GNU tel que"
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr "Utiliser les noms de registres symboliques"
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr "Ne pas utiliser les noms de registres symboliques"
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr "Utiliser GP en mode relatif aux sections sdata/sbss"
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss"
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr "Afficher les statistiques de compilation"
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr "Ne pas afficher les statistiques de compilation"
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr "Ne pas optimiser les déplacements de blocs"
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr "Optimiser les déplacements de blocs"
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr "Utiliser la post-passe de type mips-tfile de l'assembleur"
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr "Ne pas utiliser la post-passe de type mips-tfile de l'assembleur"
@@ -11371,268 +11950,251 @@ msgstr "Ne pas utiliser la post-passe de type mips-tfile de l'assembleur"
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr "Utiliser l'unité matérielle en virgule flottante"
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr "Utiliser les registres FP de 64 bits"
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr "Utiliser les registres FP de 32 bits"
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr "Utiliser les registres généraux de 64 bits"
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr "Utiliser les registres généraux de 32 bits"
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr "Utiliser le code PIC Irix"
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
-msgstr "Utiliser le code PIC Irix"
-
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr "Utiliser le code PIC OSF"
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr "Ne pas utiliser le code PIC OSF"
+msgstr "Ne pas utiliser le code PIC Irix"
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr "Utiliser les appels indirects"
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr "Ne pas utiliser les appels indirects"
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr "Utiliser le code PIC enchâssé"
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr "Ne pas utiliser le code PIC enchâssé"
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr "Utiliser le ROM au lieu de la RAM"
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr "Ne pas utiliser le ROM au lieu de la RAM"
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Placer les constantes non itialisées dans le ROM (a besoin de -membedded-data)"
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr "Ne pas placer les constantes non itialisées dans le ROM (a besoin de -membedded-data)"
#. Macro to define tables used to set the flags.
-#: config/mips/mips.h:444 config/xtensa/xtensa.h:110
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr "Utiliser l'ordre des octets pour système à octets de poids fort"
-#: config/mips/mips.h:446 config/xtensa/xtensa.h:112
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr "Utiliser l'ordre des octets pour système à octets de poids faible"
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr "Utiliser un simple FP (32 bits) seulement"
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr "Ne pas utiliser un simple FP (32 bits) seulement"
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr "Utiliser les multiplications par accumulations"
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr "Ne pas utiliser les multiplications par accumulations"
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr "Ne pas générer des instructions fusionnés de multiplication/addition"
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr "Générer des instructions fusionnés de multiplication/addition"
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr "Contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr "Ne pas contourner le bug matériel des premiers 4300"
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr "Optimiser pour le 3900"
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr "Optimiser pour le 4650"
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr "Intercepter les divisions par zéros sur des entiers"
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr "Ne pas intercepter les divisions par zéros sur des entiers"
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr "Intercepter les débordements lors de divisions avec des entiers"
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr "Ne pas intercepter les débordement lors de divisions avec des entiers"
-#: config/mips/mips.h:590 config/mips/mips.h:592
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
-msgstr "Spécifier le CPU pour les besoins de cédulage"
+msgstr "Spécifier le processeur pour les besoins de l'ordonnancement"
-#: config/mips/mips.h:594
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
-msgstr "Spécifier le CPU pour les besoins de la génération de code"
+msgstr "Spécifier le processeur pour les besoins de la génération de code"
-#: config/mips/mips.h:596
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr "Spécifier une ABI"
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr "Spécifier le standard MIPS ISA"
-#: config/mips/mips.h:598
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr "Utiliser les pseudo-op mips16 d'entrée/sortie"
-#: config/mips/mips.h:600
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr "Ne pas utiliser les instructions MIPS16"
-#: config/mips/mips.h:604
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr "Ne pas faire d'appel de fonction de vidange de la cache"
-#: config/mips/mips.h:606
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr "Spécifier la fonction de vidange de la cache"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2873
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr "profilage de fonction mips16"
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, c-format
msgid "-f%s not supported: ignored"
msgstr "-f%s n'est pas supporté: ignoré"
-#: config/mmix/mmix.c:596
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr "valeur de type de fonction trop grande, a besoin de %d registres mais seuls %d disponibles"
-#: config/mmix/mmix.c:677
-msgid "stack frame too big"
-msgstr "trame de pile trop grande"
-
-#: config/mmix/mmix.c:705
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
-
-#: config/mmix/mmix.c:1044
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
-
-#: config/mmix/mmix.c:1203
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr "function_profiler supporté pour MMIX"
-#: config/mmix/mmix.c:1240
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr "ni varargs ou stdarg dans mmix_setup_incoming_varargs"
-
-#: config/mmix/mmix.c:1246
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX interne: dernier vararg nommé ne pourra être inséré dans un registre"
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1608
-msgid "oops, not debugged; fixing up value:"
-msgstr "oops, pas mis au point; correction de la valeur:"
-
-#: config/mmix/mmix.c:2184 config/mmix/mmix.c:2318
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX interne: attendait CONST_INT, pas ceci"
-#: config/mmix/mmix.c:2192 config/mmix/mmix.c:2216 config/mmix/mmix.c:2335
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX interne: registre erroné: %d"
-#: config/mmix/mmix.c:2263
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr "MMIX interne: valeur erronée pour « m », pas un CONST_INT"
-#: config/mmix/mmix.c:2286
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX interne: attendait un registre, pas ceci"
-#: config/mmix/mmix.c:2296
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr "MMIX interne: attendait une constante, pas ceci"
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2328
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr "MMIX interne: cas « %c » manquant dans mmix_print_operand"
#. We need the original here.
-#: config/mmix/mmix.c:2379
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX interne: ne peut décoder cette opérande"
-#: config/mmix/mmix.c:2444
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX interne: ce n'est pas une adresse reconnue"
-#: config/mmix/mmix.c:2940 config/mmix/mmix.c:3009
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr "MMIX interne: %s n'est pas un entier pouvant décalé"
-#: config/mmix/mmix.c:3128
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX interne: tentative de produire incorrectement une condition renversée:"
-#: config/mmix/mmix.c:3135
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX interne: quel sorte de CC est-ce?"
-#: config/mmix/mmix.c:3139
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX interne: quel sorte de CC est-ce?"
-#: config/mmix/mmix.c:3210
+#: config/mmix/mmix.c:3088
msgid "MMIX Internal: This is not a constant:"
msgstr "interne MMIX: ce n'est pas une constante:"
@@ -11645,8 +12207,6 @@ msgstr "interne MMIX: ce n'est pas une constante:"
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
@@ -11655,67 +12215,77 @@ msgstr "interne MMIX: ce n'est pas une constante:"
#. Don't do this if linking relocatably, with -r. For a final link,
#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr "Adress de départ du programme fixée"
-#: config/mmix/mmix.h:139
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr "Adresse de départ des données fixée"
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
-msgstr "Pour les librairies intrinsèques: passer tous les paramètres dans les registres"
+msgstr "Pour les bibliothèques intrinsèques : passer tous les paramètres par registre"
-#: config/mmix/mmix.h:191
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr "Utiliser le registre de la pile pour les paramètres et la valeur retournée"
-#: config/mmix/mmix.h:193
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr "utiliser les registres d'appels maltraités pour les paramètres et les valeurs retournées"
-#: config/mmix/mmix.h:195
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr "Utiliser un epsilon respectant les instructions de comparaison en virgule flottante"
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr "utiliser des chargements mémoire avec zéro extension, pas celles avec signe d'extension"
-#: config/mmix/mmix.h:201
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr "générer des résultats de division avec reste ayant le même signe que le diviseur (pas le dividende)"
-#: config/mmix/mmix.h:205
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr "pré ajouter les symboles globaux avec «:» (pour l'utilisation avec PREFIX)"
-#: config/mmix/mmix.h:207
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr "Ne pas fournir d'adresse de départ par défaut 0x100 du programme"
-#: config/mmix/mmix.h:209
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr "Faire l'édition de liens pour produire le programme en format ELF (au lieu de mmo)"
-#: config/mmix/mmix.h:211
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr "Utiliser les mnémoniques P pour les branchements statiquement prévus à être pris"
-#: config/mmix/mmix.h:213
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr "Ne pas utiliser les mnémoniques P pour les branchements"
-#: config/mmix/mmix.h:215
+#: config/mmix/mmix.h:225
msgid "Use addresses that allocate global registers"
msgstr "Utiliser les adresses qui allouent des registres globaux"
-#: config/mmix/mmix.h:217
+#: config/mmix/mmix.h:227
msgid "Do not use addresses that allocate global registers"
msgstr "Ne pas utiliser des adresses qui allouent des registres globaux"
+#: config/mmix/mmix.h:229
+#, fuzzy
+msgid "Generate a single exit point for each function"
+msgstr "Générer un appel pour stopper si une fonction sans retour retourne un résultat"
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "Ne pas générer des instructions multm"
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr "Contourner le bug matériel de la multiplication"
@@ -11732,88 +12302,88 @@ msgstr "Cible le processeur AM33"
msgid "Enable linker relaxations"
msgstr "Autoriser la relâche de l'éditeur de liens"
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:57
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr "Ne pas utiliser le FP matériel"
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr "Convention alternative d'appels"
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr "Passer quelques arguments par les registres"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr "PAsser tous les arguments par la pile"
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
-msgstr "Optimiser pour le CPU 32532"
+msgstr "Optimiser pour le processeur 32532"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
-msgstr "Optimiser pour le CPU 32332"
+msgstr "Optimiser pour le processeur 32332"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr "Optimiser pour le 32022"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr "Registre sb est zéro. Utilisé pour l'adressage absolu"
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr "Ne pas utiliser le registre sb"
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
-msgstr "Ne pas utiliser les instructions de champs de bits"
-
-#: config/ns32k/ns32k.h:117
+#: config/ns32k/ns32k.h:155
msgid "Use bit-field instructions"
msgstr "Utiliser les instructions de champs de bits"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr "Ne pas utiliser les instructions de champs de bits"
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr "Générer du code pour la partie haute de la mémoire"
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr "Générer du code pour la partie basse de la mémoire"
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr "FPU 32381"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr "Utiliser les instructions FP de multiplications avec accumulations"
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr "Ne pas utiliser les instructions FP de multiplications avec accumulations"
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr "\"Petites classes de registres\" kludge"
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr "Pas de \"Petites classes de registres\" kludge"
-#: config/pa/pa.c:200
-#, c-format
+#: config/pa/pa.c:261
+#, fuzzy, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
"Option inconnue -mschedule= (%s)\n"
"Les options valides sont 700, 7100, 7100LC, 7200 et 8000\n"
-#: config/pa/pa.c:225
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11822,66 +12392,207 @@ msgstr ""
"Option inconnue -march= (%s)\n"
"Les options valides sont 1.0, 1.1 et 2.0\n"
-#: config/pa/pa.c:230
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "La génération de code PIC n'est pas supportée dans le modèle portable d'exécution\n"
-#: config/pa/pa.c:235
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "La génération de code PIC n'est pas compatible avec les appels indirects rapides.\n"
-#: config/pa/pa.c:240
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr "L'option -g est seulement supportée lorsque GAS est utilisé sur ce processeur,"
-#: config/pa/pa.c:241
+#: config/pa/pa.c:310
msgid "-g option disabled"
msgstr "option -g désactivée"
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr "Générer les defines pour les IO d'un serveur"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr "Générer les defines pour les IO d'une station de travail"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr "Générer du code PA1.1"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr "Générer du code PA1.0"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "Générer du code PA2.0 (nécessite binutils 2.10 ou supérieur)"
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr "Désactiver les registres FP"
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr "Ne pas désactiver les registres FP"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+#, fuzzy
+msgid "Do not disable space regs"
+msgstr "Ne pas utiliser les registres FP"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "mode d'adressage invalide"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "Ne pas utiliser les modes d'adressage complexes"
+
+#: config/pa/pa.h:258
+#, fuzzy
+msgid "Use portable calling conventions"
+msgstr "Utiliser la convention normale d'appels"
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "Utiliser la convention normale d'appels"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "Ne pas utiliser le matériel pour virgule flottante"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+#, fuzzy
+msgid "Do not emit long load/store sequences"
+msgstr "Ne pas générer les instructions multiples de chargement/stockage"
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "Ne pas utiliser les appels indirects"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr "Ne pas générer de directives .size"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "Générer du code pour la partie haute de la mémoire"
+
+#: config/pa/pa.h:280
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "Ne pas générer du code pour les appels proches"
+
+#: config/pa/pa.h:282
+#, fuzzy
+msgid "Always generate long calls"
+msgstr "Ne pas générer du code pour les appels proches"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Enable linker optimizations"
+msgstr "Autoriser les optimisations SSA"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr "Ne pas utiliser le matériel pour virgule flottante"
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr "Le résultat retourné en virgule flottante se retrouve dans AC0."
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr "Le résultat retourné en virgule flottante se retrouve en mémoire."
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr "Générer du code pour un 11/40"
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr "Générer du code pour un 11/45"
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr "Générer du code pour un 11/10"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr "Utiliser des int de 32 bits"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr "Utiliser des int de 16 bits"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr "Utiliser des flottants de 32 bits"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr "Utiliser des flottants de 64 bits"
@@ -11889,73 +12600,50 @@ msgstr "Utiliser des flottants de 64 bits"
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr "Cible a un I&D séparé"
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr "Cible n'a pas un I&D séparé"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr "Utliser la syntaxe de l'assembleur UNIX"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr "Utliser la syntaxe de l'assembleur DEC"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr "Générer des données pour systèmes à octets de poids faible"
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr "Générer des données pour systèmes à octets de poids fort"
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr "Mettre en marche le code d'entretien de mise au point"
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr "Autoriser les extensions Transmeta picoJava"
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr "Interdire les extensions Transmeta picoJava"
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr "Désactiver la passe de réorganisation"
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6546
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr "valeur %%S invalide"
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr "valeur %%b invalide"
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr "valeur %%z invalide"
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr "valeur %%Z invalide"
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815 config/rs6000/rs6000.c:6325
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr "valeur %%k invalide"
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr "valeur %%j invalide"
@@ -11973,143 +12661,213 @@ msgstr "valeur %%j invalide"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr "ne peut avoir varargs avec -mfp-arg-in-fp-regs"
-#: config/rs6000/rs6000.c:475
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+#, fuzzy
+msgid "ignoring malformed #pragma longcall"
+msgstr "#pragma ignoré %s"
+
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "attribut Code manquant"
+
+#: config/rs6000/rs6000-c.c:60
+#, fuzzy
+msgid "missing number"
+msgstr "Nom manquant"
+
+#: config/rs6000/rs6000-c.c:62
+#, fuzzy
+msgid "missing close paren"
+msgstr "Nom de classe manquant"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "rebut à la fin de #pragma map"
+
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple n'est pas supporté sur des système à octets de poids faible"
-#: config/rs6000/rs6000.c:482
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring n'est pas supporté sur des système à octets de poids faible"
-#: config/rs6000/rs6000.c:488 config/xtensa/xtensa.c:1846
-#, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr "-f%s ignoré (tout le code est indépendant de la position)"
-
-#: config/rs6000/rs6000.c:497
-msgid "-ffunction-sections disabled on AIX when debugging"
-msgstr "-ffunction-sections désactivé sur AIX lors de la mise au point"
-
-#: config/rs6000/rs6000.c:503
-msgid "-fdata-sections not supported on AIX"
-msgstr "-fdata-sections n'est pas supporté sur AIX"
-
-#: config/rs6000/rs6000.c:518
+#: config/rs6000/rs6000.c:623
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "option -mdebug-%s inconnue"
-#: config/rs6000/rs6000.c:528
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "option -mlong-double-%s inconnue"
-#: config/rs6000/rs6000.c:595
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "ABI spécifié inconnu: « %s »"
+
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "ABI spécifié inconnu: « %s »"
+
+#: config/rs6000/rs6000.c:772
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ABI spécifié inconnu: « %s »"
-#: config/rs6000/rs6000.c:3631
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "argument 3 de « %s » doit être un litéral de 2 bits"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "argument 3 de « %s » doit être un litéral de 2 bits"
+
+#: config/rs6000/rs6000.c:4356
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "argument 1 de « __builtin_altivec_predicate » doit être une constante"
-#: config/rs6000/rs6000.c:3685
+#: config/rs6000/rs6000.c:4410
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "argument 1 de « __builtin_altivec_predicate » est hors gamme"
-#: config/rs6000/rs6000.c:4041
-#, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "argument 3 de « %s » doit être un litéral de 2 bits"
+
+#: config/rs6000/rs6000.c:4666
+#, fuzzy, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "argument 3 de « %s » doit être un litéral de 2 bits"
+
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
msgstr "argument 3 de « %s » doit être un litéral de 2 bits"
-#: config/rs6000/rs6000.c:6252
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "argument 1 de « __builtin_altivec_predicate » doit être une constante"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "argument 1 de « __builtin_altivec_predicate » est hors gamme"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr "valeur %%f invalide"
-#: config/rs6000/rs6000.c:6261
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr "valeur %%F invalide"
-#: config/rs6000/rs6000.c:6270
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr "valeur %%G invalide"
-#: config/rs6000/rs6000.c:6305
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr "valeur %%j invalide"
-#: config/rs6000/rs6000.c:6315
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr "valeur %%J invalide"
-#: config/rs6000/rs6000.c:6345
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr "valeur %%K invalide"
-#: config/rs6000/rs6000.c:6572
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr "%%S calculé avec un masque que uns"
-
-#: config/rs6000/rs6000.c:6599
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "%%S computed all 0's mask"
-msgstr "%%S calculé avec un masque de zéros"
+msgid "invalid %%O value"
+msgstr "valeur %%O invalide"
-#: config/rs6000/rs6000.c:6609
+#: config/rs6000/rs6000.c:7793
#, c-format
msgid "invalid %%T value"
msgstr "valeur %%T invalide"
-#: config/rs6000/rs6000.c:6619
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr "valeur %%u invalide"
-#: config/rs6000/rs6000.c:6628
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr "valeur %%v invalide"
-#: config/rs6000/aix.h:137 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
msgid "Always pass floating-point arguments in memory"
msgstr "Toujours passer des arguments en virgule flottante en mémoire"
-#: config/rs6000/aix.h:139 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
msgid "Don't always pass floating-point arguments in memory"
msgstr "Na pas toujours passer des arguments en virgule flottante en mémoire"
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr "Supporter le passage de messages dans un environnement parallèle"
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
msgstr "Compiler pour des pointeurs de 64 bits"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
msgstr "Compiler pour des pointeurs de 32 bits"
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
msgid "-maix64 and POWER architecture are incompatible"
msgstr "-maix64 et architecture POWER sont incompatibles"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr "-maix64 requiert une architecture PowerPC64 qui demeure sélectionnée"
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr "-maix64 requis: calcul en 64 bits avec un adressage de 32 bits n'est pas encore supporté"
@@ -12120,146 +12878,163 @@ msgstr "-maix64 requis: calcul en 64 bits avec un adressage de 32 bits n'est pas
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr "Utiliser le jeu d'instructions du POWER"
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr "Utiliser le jeu d'instructions du POWER2"
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr "Ne pas utiliser le jeu d'instructions du POWER2"
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr "Ne pas utiliser le jeu d'instructions du POWER"
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr "Utiliser le jeu d'instructions du PowerPC"
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr "Ne pas utiliser le jeu d'instructions du PowerPC"
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr "Utiliser le groupe d'instructions optionnelles d'utilité général du PowerPC"
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr "Ne pas utiliser le groupe d'instructions optionnelles d'utilité général du PowerPC"
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr "Utiliser le groupe d'instructions graphiques optionnelles du PowerPC"
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr "Ne pas utiliser le groupe d'instructions graphiques optionnelles du PowerPC"
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr "Utiliser le jeu d'instructions du PowerPC-64"
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr "Ne pas utiliser le jeu d'instructions du PowerPC-64"
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
msgid "Use AltiVec instructions"
msgstr "Utiliser les instructions AltiVec"
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr "Ne pas utiliser les instructions AltiVec"
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr "Utiliser les nouvelles mnémoniques pour l'architecture du PowerPC"
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr "Utiliser les anciennes mnémoniques pour l'architecture du PowerPC"
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr "Place tout dans le TOC régulier"
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr "Placer les constantes en virgule flottante dans le TOC"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr "Ne pas placer les constantes en virgule flottante dans le TOC"
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr "Placer les constantes symboles+décalages dans le TOC"
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr "Ne pas placer les constantes symboles+décalages dans le TOC"
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr "Placer les adresses variables dans un TOC régulier"
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr "Générer les instructions multiples de chargement/stockage"
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr "Ne pas générer les instructions multiples de chargement/stockage"
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr "Générer les instructions chaînes pour les déplacements de blocs"
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr "Ne pas générer les instructions chaînes pour les déplacements de blocs"
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr "Générer les instructions de mise à jour de chargement/stockage"
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr "Ne pas générer les instructions de mise à jour de chargement/stockage"
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
-msgstr "Ne pas çéduler le début et la fin de la procédure"
+msgstr "Ne pas ordonnancer le début et la fin de la procédure"
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr "Retourner toutes les structures en mémoire (par défaut sur AIX)"
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
-msgstr "Retourner toutes les petites structures dans les registres (par défaut sur SVR4)"
+msgstr "Retourner les petites structures par les registres (par défaut sur SVR4)"
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:639
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
-msgstr "Utiliser les options et çéduler le code pour le CPU donné"
+msgstr "Utiliser les options et ordonnancer le code pour le processeur donné"
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr "Autoriser la sortie lors de la mise au point"
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr "Spécifier l'ABI à utiliser"
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr "Spécifier la taille des long double (64 ou 128 bits)"
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+#, fuzzy
+msgid "Avoid all range limits on call instructions"
+msgstr "Interdire les instructions parallèles"
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12272,94 +13047,103 @@ msgstr "Spécifier la taille des long double (64 ou 128 bits)"
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1792
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET n'est pas supporté"
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr "Sélectionner la convention d'appel ABI"
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr "Sélectionner la méthode de traitement sdata"
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
msgid "Align to the base type of the bit-field"
msgstr "Aligner à la base du type du champ de bits"
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr "Ne pas aligner à la base du type du champ de bits"
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
-msgstr "Ne pas assumer que les accès non alignées sont traités par le système"
+msgstr "Ne pas présumer que les accès non alignées sont traités par le système"
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
-msgstr "Assumer que les accès non alignées sont traités par le système"
+msgstr "Présumer que les accès non alignées sont traités par le système"
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr "Produire du code relocalisable au moment de l'exécution"
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr "Ne pas produire du code relocalisable au moment de l'exécution"
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr "Produire du code pour système à octets de poids faible (little endian)"
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr "Produire du code pour système à octets de poids fort (big endian)"
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132 config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143 config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155 config/rs6000/sysv4.h:157
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr "aucune description encore"
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr "Utiliser EABI"
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr "Ne pas utiliser EABI"
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr "Ne pas permettre les champs de bits de traverser des frontières de mots"
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
msgid "Use alternate register names"
msgstr "Utiliser les noms alternatifs de registres"
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr "Ne pas utiliser les noms alternatifs de registres"
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr "Faire l'édition de liens avec libsim.a, libc.a et sim-crt0.o"
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr "Faire l'édition de liens avec libads.a, libc.a and crt0.o"
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr "Faire l'édition de liens avec libyk.a, libc.a and crt0.o"
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr "Faire l'édition de liens avec libmvme.a, libc.a and crt0.o"
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr "Initialiser le bit PPC_EMB bit dans l'en-tête des fanions ELF"
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12388,183 +13172,194 @@ msgstr "-mrelocatable et -msdata=%s sont incompatibles"
msgid "-f%s and -msdata=%s are incompatible"
msgstr "-f%s et -msdata=%s sont incompatibles"
-#: config/rs6000/sysv4.h:263
+#: config/rs6000/sysv4.h:264
#, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr "-msdata=%s et -mcall-%s sont incompatibles"
-#: config/rs6000/sysv4.h:270
+#: config/rs6000/sysv4.h:273
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr "-mrelocatable et -mno-minimal-toc sont incompatibles"
-#: config/rs6000/sysv4.h:276
+#: config/rs6000/sysv4.h:279
#, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr "-mrelocatable et -mcall-%s sont incompatibles"
-#: config/rs6000/sysv4.h:283
+#: config/rs6000/sysv4.h:286
#, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr "-fPIC et -mcall-%s sont incompatibles"
-#: config/rs6000/sysv4.h:290
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc doit être pour un système à octets de poids fort"
-#: config/s390/s390.c:1910
+#: config/s390/s390.c:3063
msgid "invalid UNSPEC as operand (1)"
msgstr "UNSPEC invalide comme opérande (1)"
-#: config/s390/s390.c:1940
+#: config/s390/s390.c:3123
msgid "invalid UNSPEC as operand (2)"
msgstr "UNSPEC invalide comme opérande (2)"
-#: config/s390/s390.c:1946
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr "INCONNU dans s390_output_symbolic_const !?"
-#: config/s390/s390.c:1962
+#: config/s390/s390.c:3147
msgid "Cannot decompose address."
msgstr "Ne pas décomposer l'adresse"
-#: config/s390/s390.c:2110
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr "INCONNNU dans print_operand !?"
-#: config/s390/s390.c:2703
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr "Taille totale des variables locales excède la limite de l'architecture"
-#: config/s390/s390.h:58
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr "Fixer la chaîne arrière"
-#: config/s390/s390.h:59
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr "Ne pas fixer la chaîne arrière (plus rapide mais plus difficle à mettre au point)"
-#: config/s390/s390.h:60
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+#, fuzzy
+msgid "Use bras for executable < 64k"
msgstr "Utiliser bras pour les exécutables < 64k"
-#: config/s390/s390.h:61
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr "Ne pas utiliser bras"
-#: config/s390/s390.h:62
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr "Imprimer des informations additionnelles en mode débug"
-#: config/s390/s390.h:63
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr "Ne pas imprimer des informations additionnelles en mode débug"
-#: config/s390/s390.h:64
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr "mode 64 bits"
-#: config/s390/s390.h:65
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr "mode 31 bits"
-#: config/s390/s390.h:66
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr "mvcle utilisé"
-#: config/s390/s390.h:67
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr "mvc&ex"
-#: config/sh/sh.c:5060
+#: config/sh/sh.c:5137
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "« __builtin_saveregs » n'est pas supporté par la sous-cible"
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:5610 config/sh/sh.c:5649
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr "attribut « %s » s'applique seulement à des fonctions d'interruption"
#. The argument must be a constant string.
-#: config/sh/sh.c:5617
+#: config/sh/sh.c:5720
#, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "l'attribut « %s » de l'argument n'est pas une contante chaîne"
#. The argument must be a constant integer.
-#: config/sh/sh.c:5656
+#: config/sh/sh.c:5759
#, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr "l'attribut « %s » de l'argument n'est pas une contante entière"
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
-#: config/sh/sh.h:367
+#: config/sh/sh.h:437
msgid "Profiling is not supported on this target."
msgstr "le profilage n'est pas supporté sur cette cible"
-#: config/sparc/sparc.c:317
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s n'est pas supporté par cette configuration"
-#: config/sparc/sparc.c:324
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 n'est pas permis avec -m64"
-#: config/sparc/sparc.c:349
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= n'est pas supporté sur les systèmes de 32 bits"
-#: config/sparc/sparc.c:5971 config/sparc/sparc.c:5977
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, c-format
msgid "invalid %%Y operand"
msgstr "opérande %%Y invalide"
-#: config/sparc/sparc.c:6047
+#: config/sparc/sparc.c:6417
#, c-format
msgid "invalid %%A operand"
msgstr "opérande %%A invalide"
-#: config/sparc/sparc.c:6057
+#: config/sparc/sparc.c:6427
#, c-format
msgid "invalid %%B operand"
msgstr "Opérande %%B invalide"
-#: config/sparc/sparc.c:6096
+#: config/sparc/sparc.c:6466
#, c-format
msgid "invalid %%c operand"
msgstr "opérande %%c invalide"
-#: config/sparc/sparc.c:6097
+#: config/sparc/sparc.c:6467
#, c-format
msgid "invalid %%C operand"
msgstr "opérande %%C invalide"
-#: config/sparc/sparc.c:6118
+#: config/sparc/sparc.c:6488
#, c-format
msgid "invalid %%d operand"
msgstr "opérande %%d invalide"
-#: config/sparc/sparc.c:6119
+#: config/sparc/sparc.c:6489
#, c-format
msgid "invalid %%D operand"
msgstr "opérande %%D invalide"
-#: config/sparc/sparc.c:6135
+#: config/sparc/sparc.c:6505
#, c-format
msgid "invalid %%f operand"
msgstr "opérande %%f invalide"
-#: config/sparc/sparc.c:6185
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "opérande %%f invalide"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr "constante long long n'est pas une opérande immédiate valide"
-#: config/sparc/sparc.c:6188
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr "constante en virgule flottante n'est pas une opérande immédiate valide"
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:144 config/sparc/netbsd-elf.h:239
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr "Utiliser des longs doubles de 128 bits"
@@ -12576,333 +13371,389 @@ msgstr "Générer du code pour un système à octets de poids fort"
msgid "Generate code for little endian"
msgstr "Générer du code pour un système à octets de poids faible"
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr "Utiliser l'ordre des octets de poids faible pour les données"
-#: config/sparc/sparc.h:539
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
-msgstr "Assumer un mauvais alignement possible des doubles"
+msgstr "Présumer un possible mauvais alignement des doubles"
-#: config/sparc/sparc.h:541
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
-msgstr "Assumer que tous les doubles sont alignés"
+msgstr "Présumer que tous les doubles sont alignés"
-#: config/sparc/sparc.h:543
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr "Passer -assert pure-text à l'éditeur de liens"
-#: config/sparc/sparc.h:545
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr "Ne pas passer -assert pure-text à l'éditeur de liens"
-#: config/sparc/sparc.h:547
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr "Utiliser le modèle de fenêtre de registre plat"
-#: config/sparc/sparc.h:549
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr "Ne pas utiliser le modèle de fenêtre de registre plat"
-#: config/sparc/sparc.h:551
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr "Utiliser les registres réservés ABI"
-#: config/sparc/sparc.h:553
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr "Ne pas utiliser les registres réservés ABI"
-#: config/sparc/sparc.h:555
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr "Utiliser les instructions matérielles quad FP"
-#: config/sparc/sparc.h:557
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr "Ne pas utiliser les instructions matérielles quad FP"
-#: config/sparc/sparc.h:559
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr "Compiler pour ABI v8plus"
-#: config/sparc/sparc.h:561
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr "Ne pas compiler pour ABI v8plus"
-#: config/sparc/sparc.h:563
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr "Utiliser le jeu d'instructions Visual"
-#: config/sparc/sparc.h:565
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr "Ne pas utiliser le jeu d'instructions Visual"
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr "Optimiser pour les processeurs Cypress"
-#: config/sparc/sparc.h:570
-msgid "Optimize for SparcLite processors"
+#: config/sparc/sparc.h:563
+#, fuzzy
+msgid "Optimize for SPARCLite processors"
msgstr "Optimiser pour les processeurs SparLite"
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr "Optimiser pour les processeurs F930"
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr "Optimiser pour les processeurs F934"
-#: config/sparc/sparc.h:576
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+#, fuzzy
+msgid "Use V8 SPARC ISA"
msgstr "Utiliser le Sparc V8 ISA"
-#: config/sparc/sparc.h:578
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+#, fuzzy
+msgid "Optimize for SuperSPARC processors"
msgstr "Optimiser pour les processeurs SuperSparc"
#. End of deprecated options.
-#: config/sparc/sparc.h:581
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr "Pointeurs sont de 64 bits"
-#: config/sparc/sparc.h:583
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr "Pointeurs sont de 32 bits"
-#: config/sparc/sparc.h:585
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr "Utiliser ABI de 32 bits"
-#: config/sparc/sparc.h:587
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr "Utiliser ABI de 64 bits"
-#: config/sparc/sparc.h:589
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr "Utiliser le biais de la pile"
-#: config/sparc/sparc.h:591
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr "Ne pas utiliser le biais de la pile"
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr "Utiliser des structs avec alignement plus fort pour les copies de mots-doubles"
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "Ne pas utiliser des structs avec alignement plus fort pour les copies de mots-doubles"
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Optimiser sur mesure les instructions d'appel avec l'assembleur et l'éditeur de liens"
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "Ne pas optimiser sur mesure les instructions d'appel avec l'assembleur et l'éditeur de liens"
-#: config/sparc/sparc.h:643
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+#, fuzzy
+msgid "Use given SPARC code model"
msgstr "Utiliser le modèle donné de code pour le Sparc"
-#: config/stormy16/stormy16.c:1179
+#: config/stormy16/stormy16.c:1192
msgid "cannot use va_start in interrupt function"
msgstr "ne peut utiliser va-start dans une fonction d'interruption"
-#: config/stormy16/stormy16.c:1536
+#: config/stormy16/stormy16.c:1552
msgid "`B' operand is not constant"
msgstr "opérande « B » n'est pas une constante"
-#: config/stormy16/stormy16.c:1542
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr "l'opérande « B » a de multiples jeux de bits"
-#: config/stormy16/stormy16.c:1569
+#: config/stormy16/stormy16.c:1585
msgid "`o' operand is not constant"
msgstr "opérande « o » n'est pas une constante"
-#: config/stormy16/stormy16.c:1584
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr "xstormy16_print_operand: code inconnu"
-#: config/stormy16/stormy16.c:1634
+#: config/stormy16/stormy16.c:1650
#, c-format
msgid "switch statement of size %lu entries too large"
msgstr "déclaration de switch de taille %lu entrée est trop grande"
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr "#pragma GHS endXXXX repéré sans être précédé de startXXX"
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr "#pragma GHS endXXX ne concorde pas avec le précédent startXXX"
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
msgid "cannot set interrupt attribute: no current function"
msgstr "ne peut initialiser l'attribut d'interruption: aucune fonction courante"
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr "ne peut initialiser l'attribut d'interruption: pas de tel identificateur"
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr "rebut à la fin de la section #pragma ghs"
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, c-format
msgid "unrecognized section name \"%s\""
msgstr "nom de section non reconnue « %s »"
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr "sectin mal composée #pragma ghs"
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr "rebut à la fin de l'interruption #pragma ghs"
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr "rebut à la fin de #pragma ghs starttda"
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr "rebut à la fin de #pragma ghs startsda"
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr "rebut à la fin de #pragma ghs startzda"
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr "rebut à la fin de #pragma ghs endtda"
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr "rebut à la fin de #pragma ghs endsda"
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr "rebut à la fin de #pragma ghs endzda"
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s n'est pas numérique"
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s est trop grand"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr "const_double_split a reçu un insn erroné:"
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2084
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr "un attribut de zone de donnéées ne peut pas être spécifié pour des variables locales"
-#: config/v850/v850.c:2095
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr "la zone de données de « %s » entre en conflit avec un déclaration précédente"
-#: config/v850/v850.c:2298
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "construction JR boggé: %d\n"
-#: config/v850/v850.c:2319 config/v850/v850.c:2521
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "taille erronée pour l'enlèvement d'espace de la pile: %d"
-#: config/v850/v850.c:2497
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "construction JARL boggée: %d\n"
+#: config/v850/v850.c:3026
+#, fuzzy, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "construction JR boggé: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, fuzzy, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "construction JARL boggée: %d\n"
+
+#: config/v850/v850.c:3246
+#, fuzzy, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "taille erronée pour l'enlèvement d'espace de la pile: %d"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr "Supporter l'ABI Green Hills"
-#: config/v850/v850.h:123
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr "Interdire les appels relatifs de fonctions par le PC"
-#: config/v850/v850.h:126
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr "Ré-utiliser R30 sur une base par fonction"
-#: config/v850/v850.h:129
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr "Utiliser des stubs pour les prologues de fonction"
-#: config/v850/v850.h:132
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr "Identique à: -mep -mprolog-function"
-#: config/v850/v850.h:133
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr "Autoriser la mise au point par la fin"
-#: config/v850/v850.h:135
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr "Compiler pour le processeur v850"
-#: config/v850/v850.h:138
+#: config/v850/v850.h:175
+#, fuzzy
+msgid "Compile for v850e processor"
+msgstr "Compiler pour le processeur v850"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+#, fuzzy
+msgid "Enable the use of the short load instructions"
+msgstr "Activer l'utilisation d'instruction DB"
+
+#: config/v850/v850.h:180
+#, fuzzy
+msgid "Do not use the callt instruction"
+msgstr "Ne pas utiliser l'instruction de division"
+
+#: config/v850/v850.h:187
+#, fuzzy
+msgid "Do not use registers r2 and r5"
+msgstr "Ne pas utiliser le registre sb"
+
+#: config/v850/v850.h:189
+#, fuzzy
+msgid "Enforce strict alignment"
+msgstr "Ne pas ajuster l'alignement de la pile"
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
msgstr "Utiliser des entrées de 4 octets dans les tables de switch"
-#: config/v850/v850.h:164
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
msgstr "Initialiser la taille maximale des données éligibles pour la zone TDA"
-#: config/v850/v850.h:167
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
msgstr "Initialiser la taille maximale des données éligibles pour la zone SDA"
-#: config/v850/v850.h:170
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
msgstr "Initialiser la taille maximale des données éligibles pour la zone ZDA"
-#: config/xtensa/xtensa.c:1048 config/xtensa/xtensa.c:1082 config/xtensa/xtensa.c:1091
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
msgid "bad test"
msgstr "test erroné"
-#: config/xtensa/xtensa.c:1790
+#: config/xtensa/xtensa.c:1824
msgid "boolean registers required for the floating-point option"
msgstr "registres booléens requis pour l'option de virgule flottante"
-#: config/xtensa/xtensa.c:1965
+#: config/xtensa/xtensa.c:1991
msgid "invalid mask"
msgstr "masque invalide"
-#: config/xtensa/xtensa.c:2017
+#: config/xtensa/xtensa.c:2038
msgid "invalid address"
msgstr "adresse invalide"
-#: config/xtensa/xtensa.c:2042
+#: config/xtensa/xtensa.c:2063
msgid "no register in address"
msgstr "pas de registre dans l'adresse"
-#: config/xtensa/xtensa.c:2050
+#: config/xtensa/xtensa.c:2071
msgid "address offset not a constant"
msgstr "décalage d'adresse n'est pas une constante"
+#: config/xtensa/xtensa.c:2794
+#, fuzzy
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "Seuls les variables initialisées peuvent être placées dans une aire de 8 bits"
+
#: config/xtensa/xtensa.h:114
msgid "Use the Xtensa code density option"
msgstr "Utiliser l'option de densité du code Xtensa"
@@ -13025,512 +13876,589 @@ msgstr "Utiliser les instructions indirectes CALLXn pour les grands programmes"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Utiliser les instructions directes CALLn pour des appels rapides"
-#: ada/misc.c:219
+#: ada/misc.c:233
msgid "`-gnat' misspelled as `-gant'"
msgstr "«-gnat» mal épellé comme «-gant»"
-#: cp/call.c:270 cp/init.c:1635
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr "type qualifé « %T » ne concorde pas le nom du destructeur «~%T»"
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr "type de « %E » ne concorde pas avec le type du destructeur « %T » (type était « %T »)"
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr "« %D » est un nom d'espace"
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr "objet de base « %E » de la portée d'appel de la méthode n'est pas de type aggrégat « %T »"
-#: cp/call.c:394
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
-msgstr "incapable de faire l'appel avec le pointeur vers le membre d'une fonction ici"
+msgstr "incapable de faire l'appel avec le pointeur vers la fonction membre ici"
-#: cp/call.c:530
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr "destructeurs ne prend aucun paramètre"
-#: cp/call.c:537
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr "nom du destructeur «~%T» ne concorde pas avec le type « %T » de l'expression"
-#: cp/call.c:2374
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %T »"
+
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "utilisation de « %D » est ambiguë"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <construit-interne>"
-#: cp/call.c:2379
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <construit-interne>"
-#: cp/call.c:2383
+#: cp/call.c:2546
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <interne>"
-#: cp/call.c:2387
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr "%s %T <conversion>"
-#: cp/call.c:2389
+#: cp/call.c:2552
msgid "%s %+#D%s"
msgstr "%s %+#D%s"
-#: cp/call.c:2546
-msgid "no viable candidates"
-msgstr "pas de candidats viables"
-
-#: cp/call.c:2560
+#: cp/call.c:2726
msgid "conversion from `%T' to `%T' is ambiguous"
msgstr "conversion de « %T » vers « %T » est ambiguë"
-#: cp/call.c:2677
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "%T n'est pas un type de classe"
+
+#: cp/call.c:2811
+#, fuzzy
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "objet de type incomplet « %T » ne sera pas accessible dans %s"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "%s n'a pas de membre nommé « %s »"
+
+#: cp/call.c:2933
msgid "no matching function for call to `%D(%A)'"
msgstr "pas de fonction concordante pour l'appel de «%D(%A)»"
-#: cp/call.c:2688 cp/call.c:4681
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr "appel du surchargé «%D(%A)» est ambigu"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2715
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
-msgstr "fonction de pointeur vers un membre %E ne peut être appelée sans un objet; considérer l'utilisation de .* ou ->*"
+msgstr "pointeur vers fonction membre %E ne peut être appelé sans un objet; utilisez .* ou ->*"
-#: cp/call.c:2784
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr "pas de concordance pour l'appel de «(%T) (%A)»"
-#: cp/call.c:2794
+#: cp/call.c:3046
msgid "call of `(%T) (%A)' is ambiguous"
msgstr "appel de «(%T) (%A)» est ambigu"
-#: cp/call.c:2829
-msgid "%s for `%T ? %T : %T' operator"
-msgstr "%s pour «%T ? %T : %T» comme opérateur"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr ""
-#: cp/call.c:2834
-msgid "%s for `%T %s' operator"
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
msgstr "%s pour l'opérateur «%T %s»"
-#: cp/call.c:2837
-msgid "%s for `%T [%T]' operator"
-msgstr "%s pour l'opérateur «%T [%T]»"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr ""
-#: cp/call.c:2842
-msgid "%s for `%T %s %T' operator"
-msgstr "%s pour l'opérateur «%t [%T]»"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
-#: cp/call.c:2845
-msgid "%s for `%s %T' operator"
-msgstr "%s pour l'opérateur «%t [%T]»"
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s pour l'opérateur «%T %s»"
-#: cp/call.c:2937
+#: cp/call.c:3191
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
-msgstr "ISO C++ inerdit l'omission du terme milieu de l'expression ?:"
+msgstr "le C++ ISO interdit l'omission du terme milieu de l'expression ?:"
-#: cp/call.c:2996
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr "« %E» a le type «void » et n'est pas une expresion de retour de type throw"
-#: cp/call.c:3029 cp/call.c:3229
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr "opérande vers ?: a différents types"
-#: cp/call.c:3182
+#: cp/call.c:3428
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr "non concordance de type énuméré dans l'expression conditionnelle: « %T » vs « %T »"
-#: cp/call.c:3189
+#: cp/call.c:3435
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "type énuméré et non énuméré dans l'expression conditionnelle"
-#: cp/call.c:3270
+#: cp/call.c:3516
msgid "`%D' must be declared before use"
msgstr "« %D » doit être déclaré avant son usage"
-#: cp/call.c:3433
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr "pas «%D(int)» déclaré pour le postfixe « %s », essaie avec l'oprateur préfixe à la place"
-#: cp/call.c:3480
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr "utilisation du synthétisé «%#D» pour l'affectaion par copie"
-#: cp/call.c:3482
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr " où cfront utiliserait «%#D»"
-#: cp/call.c:3509
+#: cp/call.c:3782
msgid "comparison between `%#T' and `%#T'"
msgstr "comparaison entre «%#T» et «%#T»"
-#: cp/call.c:3748
+#: cp/call.c:4021
msgid "no suitable `operator delete' for `%T'"
msgstr "« operator delete» pas adapté pour «%T »"
-#: cp/call.c:3767
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr "«%+#D» est privé"
-#: cp/call.c:3769
+#: cp/call.c:4042
msgid "`%+#D' is protected"
msgstr "«%+#D» est protégé"
-#: cp/call.c:3771
+#: cp/call.c:4044
msgid "`%+#D' is inaccessible"
msgstr "«%+#D» et inaccessible"
-#: cp/call.c:3772
+#: cp/call.c:4045
msgid "within this context"
msgstr "à l'intérieur du contexte"
-#: cp/call.c:3814
+#: cp/call.c:4088
msgid "invalid conversion from `%T' to `%T'"
msgstr "conversion invalide de « %T » vers « %T »"
-#: cp/call.c:3816 cp/call.c:3955 cp/call.c:3957
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
msgid " initializing argument %P of `%D'"
msgstr " initialisation de l'argument %P de « %D »"
-#: cp/call.c:3879 cp/call.c:3883
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr " initialisation de l'argument %P de « %D » à partir du résultat « %D »"
-#: cp/call.c:3889 cp/call.c:3892
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
msgstr " initialisation temporaire à partir du résultat « %D »"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4026
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+#, fuzzy
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
msgstr "ne peut recevoir d'objets de type non POD «%#T» through « ... »"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4051
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr "ne peut recevoir d'objets de type non POD «%#T» through « ... »"
-#: cp/call.c:4193
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr "passant « %T» comme «cet» argument de «%#D » écarte les qualificateurs"
-#: cp/call.c:4443
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "« %T » est une base inaccessible de « %T »"
+
+#: cp/call.c:4786
msgid "could not find class$ field in java interface type `%T'"
msgstr "ne peut repérer le champ classe$ dans le type d'interface JAVA « %T »"
-#: cp/call.c:4544 cp/typeck.c:2018
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %T »"
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "fonction virtuelle d'une non classe « %s »"
-#: cp/call.c:4670
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr "pas de fonction concordante pour l'appel à «%T::%D(%A)%#V»"
-#: cp/call.c:4700
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
-msgstr "ne peut appeler un membre de fonction « %D » sans objet"
+msgstr "ne peut appeler la fonction membre « %D » sans objet"
-#: cp/call.c:5313
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr "passant « %T » à choisit « %T » au lieu de « %T »"
-#: cp/call.c:5315 cp/decl2.c:4508
+#: cp/call.c:5706 cp/decl2.c:4154
msgid " in call to `%D'"
msgstr " dans l'appel de « %D »"
-#: cp/call.c:5364 cp/call.c:5489
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr "choix de « %D » à la place de « %D »"
-#: cp/call.c:5365
+#: cp/call.c:5756
msgid " for conversion from `%T' to `%T'"
msgstr " pour la conversion de « %T » vers « %T »"
-#: cp/call.c:5367
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr " parce que la séquence de conversion pour l'argument est meilleure"
-#: cp/call.c:5491
-msgid " because worst conversion for the former is better than worst conversion for the latter"
+#: cp/call.c:5879
+#, fuzzy
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
msgstr " parce la plus mauvaise conversion de la déclaration initiale est meilleure que la plus mauvaise conversion de la dernière déclaration"
-#: cp/call.c:5607 cp/call.c:5628
+#: cp/call.c:5996
msgid "could not convert `%E' to `%T'"
msgstr "ne peut convertir « %E » vers « %T »"
+#: cp/call.c:6105
+#, fuzzy
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "const_cast invalide de la rvalue du type « %T » vers le type « %T »"
+
+#: cp/call.c:6109
+#, fuzzy
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "conversion invalide vers un type « %T » à partir du type « %T »"
+
#: cp/class.c:287
msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr "ne peut convertir de la base « %T » à un type dérivé « %T » via la base virtuel « %T »"
-#: cp/class.c:1020
+#: cp/class.c:992
msgid "`%#D' and `%#D' cannot be overloaded"
msgstr "«%#D» et «%#D» ne peut être surchargé"
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1031
-msgid "`%D' has already been declared in `%T'"
-msgstr "« %D » a déjà été déclaré dans « %T »"
-
-#: cp/class.c:1112
+#: cp/class.c:1076
msgid "duplicate enum value `%D'"
msgstr "valeur d'énumérateur « %D » en double"
-#: cp/class.c:1115
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr "champ « %D » en double (comme enum et non enum)"
-#: cp/class.c:1122
+#: cp/class.c:1086
msgid "duplicate nested type `%D'"
msgstr "type « %D » imbriqué en double"
-#: cp/class.c:1133
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr "duplicattion du champ « %D » (comme type et non type)"
-#: cp/class.c:1137
+#: cp/class.c:1101
msgid "duplicate member `%D'"
msgstr "membre « %D » est double"
-#: cp/class.c:1180
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr "spécifications d'accès conflictuelles pour la méthode « %D », ignoré"
-#: cp/class.c:1182
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr "spécifications d'accès conflictuelles pour le champ « %s », ignoré"
-#: cp/class.c:1225
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr "« %D » nomme le constructeur"
-#: cp/class.c:1231
+#: cp/class.c:1199
msgid "`%D' invalid in `%T'"
msgstr "« %D » invalide dans « %T »"
-#: cp/class.c:1239
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr "aucun membre concordant « %D » dans «%#T»"
-#: cp/class.c:1271 cp/class.c:1279
+#: cp/class.c:1239 cp/class.c:1247
msgid "`%D' invalid in `%#T'"
msgstr "« %D » invalide dans «%#T»"
-#: cp/class.c:1272
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr " parce que la méthode locale «%#D» a le même nom"
-#: cp/class.c:1280
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr " parce que le membre local «%#D» a le même nom"
-#: cp/class.c:1352
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr "classe de base «%#T» a un destructeur non virtuel"
-#: cp/class.c:1372
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr "base « %T » avec seulement le constructeur non par défaut dans la classe sans un constructeur"
-#: cp/class.c:1959
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
-msgstr "tous les membres de fonctions dans la classe « %T » sont privés"
+msgstr "toutes les fonctions membres de la classe « %T » sont privés"
-#: cp/class.c:1973
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr "«%#T» définit seulement les constructeurs privés et n'a pas d'amis"
-#: cp/class.c:2016
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr "«%#T» définit seulement les constructeurs privés et n'a pas d'amis"
-#: cp/class.c:2137 cp/class.c:5064
+#: cp/class.c:2090 cp/class.c:5276
msgid "redefinition of `%#T'"
msgstr "redéfinition de «%#T»"
-#: cp/class.c:2138
+#: cp/class.c:2091
msgid "previous definition of `%#T'"
msgstr "définition précédente de «%#T»"
-#: cp/class.c:2468
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr "pas d'écraseur unique final pour « %D » dans « %T »"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2850
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr "« %D » était caché"
-#: cp/class.c:2851
+#: cp/class.c:2713
msgid " by `%D'"
msgstr " par « %D »"
-#: cp/class.c:2893
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
-msgstr "ISO C++ interdit le membre « %D » avec le même non de la classe de fermeture"
+msgstr "le C++ ISO interdit le membre « %D » avec le même non de la classe de fermeture"
-#: cp/class.c:2898 cp/decl2.c:1883
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr "«%#D» invalide; une union anonyme peut seulement avoir des données non statiques de membres"
-#: cp/class.c:2904 cp/decl2.c:1889
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr "membre privé «%#D» dans une union anonyme"
-#: cp/class.c:2907 cp/decl2.c:1891
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr "membre protégé «%#D» dans une union anonyme"
-#: cp/class.c:3059
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
msgid "bit-field `%#D' with non-integral type"
msgstr "largeur du champ de bits «%#D» n'est pas une constante entière"
-#: cp/class.c:3079
+#: cp/class.c:2978
msgid "bit-field `%D' width not an integer constant"
msgstr "largeur du champ de bits « %D » n'est pas une constante entière"
-#: cp/class.c:3085
+#: cp/class.c:2984
msgid "negative width in bit-field `%D'"
msgstr "largeur négative du champ de bits « %D »"
-#: cp/class.c:3090
+#: cp/class.c:2989
msgid "zero width for bit-field `%D'"
msgstr "largeur zéro pour le champ de bits « %D »"
-#: cp/class.c:3096
+#: cp/class.c:2995
msgid "width of `%D' exceeds its type"
msgstr "largeur de « %D » excède son type"
-#: cp/class.c:3105
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr "« %D » est trop petit pour contenir toutes les valeurs de «%#T»"
-#: cp/class.c:3189
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr "membre «%#D» avec consructeur n'est pas permis dans l'union"
-#: cp/class.c:3192
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr "membre «%#D» avec destructeur n'est pas permis dans l'union"
-#: cp/class.c:3195
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr "membre «%#D» avec opérateur d,affectation par copie n'st pas permis dans l'union"
-#: cp/class.c:3222
+#: cp/class.c:3121
msgid "multiple fields in union `%T' initialized"
msgstr "champs multiples dans l'union « %T » initialisés"
-#: cp/class.c:3341
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr "champ « %D » dans une classe locale ne peut être statique"
-#: cp/class.c:3347
+#: cp/class.c:3240
msgid "field `%D' invalidly declared function type"
msgstr "champ « %D » incorrectement validé comme un type de fonction"
-#: cp/class.c:3354
+#: cp/class.c:3247
msgid "field `%D' invalidly declared method type"
msgstr "champ « %D » incorrectement validé comme un type de méthode"
-#: cp/class.c:3360
+#: cp/class.c:3253
msgid "field `%D' invalidly declared offset type"
msgstr "champ « %D » incorrectement validé comme type de décalage"
#. Unions cannot have static members.
-#: cp/class.c:3378
+#: cp/class.c:3271
msgid "field `%D' declared static in union"
msgstr "champ « %D » déclaré statique dans l'union"
-#: cp/class.c:3404
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr "référence non statique «%#D» dans la classe sans un constructeur"
-#: cp/class.c:3435
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr "constante non statique de membre «%#D» dans la classe sans un constructeur"
-#: cp/class.c:3450
+#: cp/class.c:3349
msgid "field `%#D' with same name as class"
msgstr "champ «%#D» avec le même nom qu'une classe"
-#: cp/class.c:3468
+#: cp/class.c:3367
msgid "`%#T' has pointer data members"
msgstr "«%#T» a un pointeur vers un membre de données"
-#: cp/class.c:3472
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr " mais n'écrase pas «%T(const %T&)»"
-#: cp/class.c:3474
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr " ou « operator=(const %T&) »"
-#: cp/class.c:3477
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr " mais n'écrase pas « operator=(const %T&) »"
-#: cp/class.c:3943
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
msgid "initializer specified for non-virtual method `%D'"
-msgstr "initialiseur spécifié pour une méthode non virtuelle « %D »"
+msgstr "initialisation spécifiée pour une méthode non virtuelle « %D »"
-#: cp/class.c:4728
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
-msgstr "base virtuelle « %T » inaccessible dans « %T » en raison de l'ambiguité"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
-#: cp/class.c:4798
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr "base directe « %T » inaccessible dans « %T » en raison de l'ambiguité"
-#: cp/class.c:5225
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "base virtuelle « %T » inaccessible dans « %T » en raison de l'ambiguité"
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr "«%#T» a des fonctions virtuelles mais un destructeur non virtuel"
-#: cp/class.c:5309
+#: cp/class.c:5516
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "tentative de complétion du struct, mais a été stoppé en raison d'erreurs précédentes d'analyses syntaxiques"
-#: cp/class.c:5766
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr "chaîne du langage «\"%s\"» n'est pas reconnue"
-#: cp/class.c:5862
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr "ne peut résoudre la fonction surchargé « %D » basé sur la conversion vers le type « %T »"
-#: cp/class.c:5983
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr "pas de concordance de conversion de fonction « %D » vers le type «%#T'"
-#: cp/class.c:6006
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr "conversion d'une fonction surchargée « %D » vers le type «%#T» est ambiguë"
-#: cp/class.c:6032
+#: cp/class.c:6252
msgid "assuming pointer to member `%D'"
msgstr "pointeur assumé vers le membre « %D »"
-#: cp/class.c:6035
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
msgstr "(un pointeur vers un membre peut seulement être formé avec «&%E»)"
-#: cp/class.c:6079 cp/class.c:6247 cp/class.c:6254
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr "pas assez d'information sur le type"
-#: cp/class.c:6088
+#: cp/class.c:6315
msgid "argument of type `%T' does not match `%T'"
msgstr "argument de type « %T » ne concorde pas avec « %T »"
-#: cp/class.c:6231
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr "opération invalide sur un type non instancié"
@@ -13539,11 +14467,11 @@ msgstr "opération invalide sur un type non instancié"
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6483 cp/decl.c:1032 cp/decl.c:3172 cp/pt.c:1842
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
msgid "declaration of `%#D'"
msgstr "déclaration de «%#D»"
-#: cp/class.c:6484
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr "changements signifiant de « %D » à partir de «%+#D»"
@@ -13559,206 +14487,243 @@ msgstr "conversion de « %E » à partir de « %T » vers « %T » est ambiguë"
msgid "converting from `%T' to `%T'"
msgstr "conversion de « %T » vers « %T »"
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr "pointeur vers un membre transtypé de « %T » à « %T » est fait via une base virtuelle"
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr "ne peut convertir « %E » du type « %T » vers le type « %T »"
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "conversion invalide de « %T » vers « %T »"
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr "conversion de « %T » à « %T » écarte les qualificateurs"
-#: cp/cvt.c:543
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
msgstr "transtypage de « %T » vers « %T » ne fait pas de dé-référence de pointeur"
-#: cp/cvt.c:572
+#: cp/cvt.c:551
msgid "cannot convert type `%T' to type `%T'"
msgstr "ne peut convertir type « %T » vers le type « %T »"
-#: cp/cvt.c:689
+#: cp/cvt.c:683
msgid "conversion from `%#T' to `%#T'"
msgstr "conversion de «%#T» vers «%#T'"
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr "«%#T» utilisé où « %T » était attendu"
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr "l'adresse de « %D», sera toujours «true »"
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr "«%#T» utilisé où un nombre flottant était attendu"
-#: cp/cvt.c:793
+#: cp/cvt.c:779
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "conversion de « %T » vers un type non scalaire « %T » demandée"
-#: cp/cvt.c:879
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr "objet de type incomplet « %T » ne sera pas accessible dans %s"
-#: cp/cvt.c:882
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr "objet de type « %T » ne sera pas acccessible dans %s"
-#: cp/cvt.c:898
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr "objet « %E » d'un type incomplet « %T » ne sera pas accessible dans %s"
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:918
+#: cp/cvt.c:904
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "%s ne peut résoudre l'adresse la fonction surchargée"
#. Only warn when there is no &.
-#: cp/cvt.c:923
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr "%s est un référence, pas un appel, à la fonction « %E »"
-#: cp/cvt.c:1061
+#: cp/cvt.c:1039
msgid "converting NULL to non-pointer type"
msgstr "conversion d'un NULL vers un type non pointeur"
-#: cp/cvt.c:1137
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
msgstr "conversion de type par défaut ambiguë à partir de « %T »"
-#: cp/cvt.c:1139
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr " conversions de candidat inclut « %D » et « %D »"
-#: cp/decl.c:1033 cp/decl.c:3275
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
msgid "conflicts with previous declaration `%#D'"
msgstr "conflits avec la déclaration précédente de «%#D»"
-#: cp/decl.c:1222
+#: cp/decl.c:1467
msgid "label `%D' used but not defined"
msgstr "étiquette « %D » utilisée mais non définie"
-#: cp/decl.c:1227
+#: cp/decl.c:1472
msgid "label `%D' defined but not used"
msgstr "étiquette « %D » définie mais non utilisée"
-#: cp/decl.c:2294
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr "alias d'espace de noms « %D » n'est pas permis ici, on assume « %D »"
-#: cp/decl.c:3078 cp/decl.c:3483
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
msgid "previous declaration of `%D'"
msgstr "déclaration précédente de « %D »"
-#: cp/decl.c:3159 cp/decl.c:3197
+#: cp/decl.c:3366 cp/decl.c:3404
msgid "shadowing %s function `%#D'"
-msgstr "%s fait ombrage à la fonction «%#D»"
+msgstr "%s masque la fonction «%#D»"
-#: cp/decl.c:3168
+#: cp/decl.c:3375
msgid "library function `%#D' redeclared as non-function `%#D'"
-msgstr "fonction «%#D» de la librairie redéclarée comme n'étant pas une fonction «%#D»"
+msgstr "fonction «%#D» de la bibliothèque redéclarée comme n'étant pas une fonction «%#D»"
-#: cp/decl.c:3173
+#: cp/decl.c:3380
msgid "conflicts with built-in declaration `%#D'"
msgstr "conflits avec la déclaration interne de «%#D»"
-#: cp/decl.c:3192 cp/decl.c:3285 cp/decl.c:3301
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
msgid "new declaration `%#D'"
msgstr "nouvelle déclaration de «%#D»"
-#: cp/decl.c:3193
+#: cp/decl.c:3400
msgid "ambiguates built-in declaration `%#D'"
msgstr "ambiguités de la déclaration interne de «%#D»"
-#: cp/decl.c:3249
+#: cp/decl.c:3464
msgid "`%#D' redeclared as different kind of symbol"
-msgstr "« %D » redéclaré comme une sorte différente de symbole"
+msgstr "« %#D » redéclaré comme une sorte différente de symbole"
-#: cp/decl.c:3252
+#: cp/decl.c:3467
msgid "previous declaration of `%#D'"
msgstr "déclaration précédente de «%#D»"
-#: cp/decl.c:3274
+#: cp/decl.c:3489
msgid "declaration of template `%#D'"
msgstr "déclaration du patron «%#D»"
-#: cp/decl.c:3286 cp/decl.c:3302
+#: cp/decl.c:3505 cp/decl.c:3521
msgid "ambiguates old declaration `%#D'"
msgstr "ambiguités d'une vieille déclaration de «%#D»"
-#: cp/decl.c:3294
+#: cp/decl.c:3513
msgid "declaration of C function `%#D' conflicts with"
msgstr "déclaration de la fonction C «%#D» en conflit avec"
-#: cp/decl.c:3296
+#: cp/decl.c:3515
msgid "previous declaration `%#D' here"
msgstr "déclaration précédente de «%#D» ici"
-#: cp/decl.c:3312
+#: cp/decl.c:3533
msgid "conflicting types for `%#D'"
msgstr "types conflictuels pour «%#D'"
-#: cp/decl.c:3313
+#: cp/decl.c:3534
msgid "previous declaration as `%#D'"
msgstr "déclaration précédente de «%#D'"
-#: cp/decl.c:3356
+#: cp/decl.c:3577
msgid "`%#D' previously defined here"
msgstr "«%#D» précédemment défini ici"
-#: cp/decl.c:3357
+#: cp/decl.c:3578
msgid "`%#D' previously declared here"
msgstr "«%#D» précédemment déclaré ici"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3366
+#: cp/decl.c:3587
msgid "prototype for `%#D'"
msgstr "prototype de «%#D'"
-#: cp/decl.c:3367
+#: cp/decl.c:3588
msgid "follows non-prototype definition here"
msgstr "suit la définition d'un non prototype ici"
-#: cp/decl.c:3379
+#: cp/decl.c:3600
msgid "previous declaration of `%#D' with %L linkage"
msgstr "déclaration précédente de «%#D» avec le lien %L"
-#: cp/decl.c:3381
+#: cp/decl.c:3602
msgid "conflicts with new declaration with %L linkage"
msgstr "conflits avec la nouvelle déclaration avec le lien %L"
-#: cp/decl.c:3404 cp/decl.c:3411
+#: cp/decl.c:3625 cp/decl.c:3632
msgid "default argument given for parameter %d of `%#D'"
msgstr "argument par défaut donné pour le paramètre %d de «%#D»"
-#: cp/decl.c:3406 cp/decl.c:3413
+#: cp/decl.c:3627 cp/decl.c:3634
msgid "after previous specification in `%#D'"
msgstr "après la déclaration précédente dans «%#D»"
-#: cp/decl.c:3422
+#: cp/decl.c:3643
msgid "`%#D' was used before it was declared inline"
msgstr "«%#D» a été utilisé avant qu'il ne soit déclaré en ligne"
-#: cp/decl.c:3424
+#: cp/decl.c:3645
msgid "previous non-inline declaration here"
msgstr "déclaration précédente non en ligne ici"
-#: cp/decl.c:3482
+#: cp/decl.c:3699
msgid "redundant redeclaration of `%D' in same scope"
msgstr "déclaration redondante de « %D » dans la même étendue"
-#: cp/decl.c:3566
+#: cp/decl.c:3780
#, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr "déclaration de « %F » amène différentes exceptions"
-#: cp/decl.c:3568
+#: cp/decl.c:3782
#, c-format
msgid "than previous declaration `%F'"
msgstr "qu'une précédente déclaratio « %F »"
@@ -13771,15 +14736,15 @@ msgstr "qu'une précédente déclaratio « %F »"
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3701
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr "spécialisation explicite de %D après la première utilisation"
-#: cp/decl.c:3946
+#: cp/decl.c:4187
msgid "`%#D' used prior to declaration"
msgstr "«%#D» utilisé précédemment avant sa déclaration"
-#: cp/decl.c:3977
+#: cp/decl.c:4218
msgid "redeclaration of `wchar_t' as `%T'"
msgstr "redéclaration de « wchar_t» comme «%T »"
@@ -13789,841 +14754,911 @@ msgstr "redéclaration de « wchar_t» comme «%T »"
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:4005
+#: cp/decl.c:4246
msgid "invalid redeclaration of `%D'"
msgstr "redéclaration invalide de « %D »"
-#: cp/decl.c:4006
+#: cp/decl.c:4247
msgid "as `%D'"
msgstr "comme « %D »"
-#: cp/decl.c:4096
+#: cp/decl.c:4337
msgid "previous external decl of `%#D'"
msgstr "déclaration externe précédente de « %#D »"
-#: cp/decl.c:4137
+#: cp/decl.c:4378
msgid "`%D' was previously implicitly declared to return `int'"
msgstr "« %D » a été précédemment implicitement déclaré comme retournant un entier"
-#: cp/decl.c:4197
+#: cp/decl.c:4438
msgid "extern declaration of `%#D' doesn't match"
msgstr "déclaration externe de «%#D» ne concorde pas"
-#: cp/decl.c:4198
+#: cp/decl.c:4439
msgid "global declaration `%#D'"
msgstr "déclaration globale «%#D»"
-#: cp/decl.c:4229
+#: cp/decl.c:4472
msgid "declaration of `%#D' shadows a parameter"
-msgstr "déclaration de «%#D» cache un paramètre"
+msgstr "déclaration de «%#D» masque un paramètre"
-#: cp/decl.c:4249
+#: cp/decl.c:4492
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
-msgstr "déclaration de « %s » fait ombrage au membre de « this »"
+msgstr "déclaration de « %s » masque un membre de « this »"
-#: cp/decl.c:4600
+#: cp/decl.c:4889
msgid "`%#D' hides constructor for `%#T'"
msgstr "«%#D» cache un constructeur pour «%#T»"
-#: cp/decl.c:4615
+#: cp/decl.c:4904
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr "«%#D» en conflit avec une déclaration précédente «%#D»"
-#: cp/decl.c:4627
+#: cp/decl.c:4916
msgid "previous non-function declaration `%#D'"
msgstr "déclaration précédente d'un non fonction «%#D»"
-#: cp/decl.c:4628
+#: cp/decl.c:4917
msgid "conflicts with function declaration `%#D'"
msgstr "conflits avec la déclaration de fonction de «%#D»"
-#: cp/decl.c:4718
+#: cp/decl.c:5007
msgid "implicit declaration of function `%#D'"
msgstr "déclaration implicite de la fonction «%#D»"
-#: cp/decl.c:4876
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr "étiquette « %s » référencée à l'extérieur de n'importe quelle fonction"
-#: cp/decl.c:4979 cp/decl.c:5003 cp/decl.c:5096
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
msgid "jump to label `%D'"
msgstr "saut à l'étiquette « %D »"
-#: cp/decl.c:4981 cp/decl.c:5005
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr "saut à l'étiquette du « case »"
-#: cp/decl.c:4989
+#: cp/decl.c:5280
msgid " crosses initialization of `%#D'"
msgstr " initialisation croisée pour «%#D»"
-#: cp/decl.c:4992 cp/decl.c:5112
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr " entre dans la porté d'un non POD «%#D»"
-#: cp/decl.c:5012 cp/decl.c:5116
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr " entre dans le bloc d'essais"
#. Can't skip init of __exception_info.
-#: cp/decl.c:5014 cp/decl.c:5108 cp/decl.c:5118
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr " entre dans le bloc d'interceptions"
-#: cp/decl.c:5097
+#: cp/decl.c:5388
msgid " from here"
msgstr " à partir d'ici"
-#: cp/decl.c:5110
+#: cp/decl.c:5401
msgid " skips initialization of `%#D'"
msgstr " saut d'initialisation pour «%#D»"
-#: cp/decl.c:5145
+#: cp/decl.c:5437
msgid "label named wchar_t"
msgstr "étiquette nommée wchar_t"
-#: cp/decl.c:5149
+#: cp/decl.c:5440
msgid "duplicate label `%D'"
msgstr "étiquette « %D » apparaît en double"
-#: cp/decl.c:5234
+#: cp/decl.c:5525
#, c-format
msgid "case label `%E' not within a switch statement"
msgstr "étiquette du CASE « %E » n'est pas à l'intérieur de la déclaration du SWITCH"
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5411 cp/decl.c:5430
+#: cp/decl.c:5704 cp/decl.c:5723
msgid "`%#D' redeclared as %C"
msgstr "«%#D» rédéclaré comme %C"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5518 cp/typeck.c:1980
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
msgid "invalid use of `%D'"
msgstr "utilisation invalide de « %D »"
-#: cp/decl.c:5559
+#: cp/decl.c:5852
msgid "`%D::%D' is not a template"
msgstr "«%D::%D» n'est pas un patron"
-#: cp/decl.c:5576
+#: cp/decl.c:5869
msgid "`%D' undeclared in namespace `%D'"
msgstr "« %D » non déclaré dans l'espace de noms « %D »"
-#: cp/decl.c:5713
+#: cp/decl.c:6002
msgid "`%D' used without template parameters"
msgstr "« %D » utilisé sans patron de paramétres"
-#: cp/decl.c:5724 cp/decl.c:5740 cp/decl.c:5828
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr "pas de patron de classe nommé «%#T» in «%#T»"
-#: cp/decl.c:5758 cp/decl.c:5788
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
msgid "no type named `%#T' in `%#T'"
msgstr "pas de type nommé dans «%#T» dans «%#T»"
-#: cp/decl.c:6011
+#: cp/decl.c:6329
msgid "lookup of `%D' finds `%#D'"
msgstr "recherche de « %D » a repéré «%#D»"
-#: cp/decl.c:6013
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr " au lieu de « %D » à partir d'un classe de base dépendante"
-#: cp/decl.c:6015
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr " (utiliser « typename %T::%D » si c'est ce que vous voulez dire)"
-#: cp/decl.c:6188
+#: cp/decl.c:6364
+#, fuzzy
+msgid "name lookup of `%D' changed"
+msgstr "recherche du nom « %s » a changé"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr " concorde avec « %D » selon les règles standards ISO"
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr " concorde avec « %D » selon les vieilles règles"
+
+#: cp/decl.c:6382 cp/decl.c:6389
+#, fuzzy
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "recherche du nom « %s » changé pour le nouveau ISO «for » d'étendue de champ"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr " ne peut utiliser une liaison obsolète à « %D » parce qu'il a un destructeur"
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr " utilisation de liaison obsolète à « %D »"
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr "recherche de « %D » dans la portée de «%#T» («%#D») ne concorde pas avec la recherche dans la portée courante («%#D»)"
-#: cp/decl.c:7033
+#: cp/decl.c:7432
msgid "an anonymous union cannot have function members"
msgstr "un UNION anonyme ne peut avoir de fonction membre"
-#: cp/decl.c:7050
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr "membre «%#D» avec constructeur n'est pas permis dans un aggrégat anonyme"
-#: cp/decl.c:7053
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr "membre «%#D» avec destructeur n'est pas permis dans un aggrégat anonyme"
-#: cp/decl.c:7056
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr "membre «%#D» avec opérateur d'affectation par copie n'est pas permis dans un aggrégat anonyme"
-#: cp/decl.c:7094
+#: cp/decl.c:7493
msgid "redeclaration of C++ built-in type `%T'"
msgstr "redéclaration du type interne C++ « %T »"
-#: cp/decl.c:7129
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr "types multiples dans une déclaration"
-#: cp/decl.c:7132
-msgid "declaration does not declare anything"
-msgstr "déclaration ne déclare rien du tout!"
-
-#: cp/decl.c:7156
+#: cp/decl.c:7556
msgid "missing type-name in typedef-declaration"
msgstr "nom de type manquant dans la déclaration typedef"
-#: cp/decl.c:7163
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
-msgstr "ISO C++ interdit les structs anonymes"
+msgstr "le C++ ISO interdit les structures anonymes"
-#: cp/decl.c:7170
+#: cp/decl.c:7570
msgid "`%D' can only be specified for functions"
msgstr "« %D » ne peut seulement être spécifier pour les fonctions"
-#: cp/decl.c:7172
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr "« %D » peut seulement être spécifié à l'intérieur d'une classe"
-#: cp/decl.c:7174
+#: cp/decl.c:7574
msgid "`%D' can only be specified for constructors"
msgstr "« %D » ne peut seulement être spécifié pour les constructeurs"
-#: cp/decl.c:7177
+#: cp/decl.c:7577
msgid "`%D' can only be specified for objects and functions"
msgstr "« %D » ne peut seulement être spécifié pour les objets et les fonctions"
-#: cp/decl.c:7326
-msgid "typedef `%D' is initialized"
+#: cp/decl.c:7719 cp/decl2.c:936
+#, fuzzy
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
msgstr "typedef « %D » est initialisé"
-#: cp/decl.c:7332
+#: cp/decl.c:7724
msgid "function `%#D' is initialized like a variable"
-msgstr "fonction « %D » est initialisée comme une variable"
+msgstr "fonction « %#D » est initialisée comme une variable"
-#: cp/decl.c:7344
+#: cp/decl.c:7736
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr "déclaration de «%#D» est externe et initialisé"
-#: cp/decl.c:7378
+#: cp/decl.c:7770
msgid "`%#D' is not a static member of `%#T'"
msgstr "«%#D» n'est pas un membre statique de «%#T»"
-#: cp/decl.c:7383
+#: cp/decl.c:7775
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
-msgstr "ISO C++ ne permet pas «%T::%D» d'être défini comme «%T::%D»"
+msgstr "le C++ ISO ne permet pas que « %T::%D » soit défini comme « %T::%D »"
-#: cp/decl.c:7394
+#: cp/decl.c:7786
msgid "duplicate initialization of %D"
msgstr "initialisation en double de %D"
-#: cp/decl.c:7423
+#: cp/decl.c:7815
msgid "declaration of `%#D' outside of class is not definition"
-msgstr "déclaraion de «%#D» en dehors de la classe n'est pas une définition"
+msgstr "déclaraion de « %#D » en dehors de la classe n'est pas une définition"
-#: cp/decl.c:7471
+#: cp/decl.c:7865
msgid "variable `%#D' has initializer but incomplete type"
-msgstr "variable «%#D» a un initialiseur mais un type incomplet"
+msgstr "la variable « %#D » est initialisée, mais a un type incomplet"
-#: cp/decl.c:7479 cp/decl.c:7830
+#: cp/decl.c:7873 cp/decl.c:8432
msgid "elements of array `%#D' have incomplete type"
-msgstr "éléments du tableau « %D » a un type incomplet"
+msgstr "éléments du tableau « %#D » ont un type incomplet"
-#: cp/decl.c:7495
+#: cp/decl.c:7889
msgid "aggregate `%#D' has incomplete type and cannot be defined"
-msgstr "aggrégat «%#D» a un type incomplet et ne peut être défini"
+msgstr "aggrégat « %#D » a un type incomplet et ne peut être défini"
-#: cp/decl.c:7534
+#: cp/decl.c:7931
msgid "`%D' declared as reference but not initialized"
msgstr "« %D » déclaré comme référence mais n'est pas initialisé"
-#: cp/decl.c:7543
+#: cp/decl.c:7940
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
-msgstr "ISO C++ interdit l'usage de liste d'initialiseur pour initialiser la référence « %D »"
+msgstr "le C++ ISO interdit l'usage de liste d'initialiseur pour initialiser la référence « %D »"
-#: cp/decl.c:7576
+#: cp/decl.c:7970
msgid "cannot initialize `%T' from `%T'"
msgstr "ne peut initialiser « %T » à partir de « %T »"
-#: cp/decl.c:7637
+#: cp/decl.c:8004
msgid "initializer fails to determine size of `%D'"
-msgstr "initialiseur a échoué lors de la détermination de la taille de « %D »"
+msgstr "l'initialisation n'a pu déterminer la taille de « %D »"
-#: cp/decl.c:7642
+#: cp/decl.c:8009
msgid "array size missing in `%D'"
-msgstr "taille du tableau manquant dans « %D »"
+msgstr "taille de tableau manquante dans « %D »"
-#: cp/decl.c:7654
+#: cp/decl.c:8021
msgid "zero-size array `%D'"
-msgstr "tableau de taille zéro « %D »"
+msgstr "tableau « %D » de taille zéro"
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7687
+#: cp/decl.c:8059
msgid "storage size of `%D' isn't known"
msgstr "taille de stockage de « %D » n'est pas connue"
-#: cp/decl.c:7709
+#: cp/decl.c:8081
msgid "storage size of `%D' isn't constant"
msgstr "taille de stockage de « %D » n'est pas une constante"
-#: cp/decl.c:7760
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr "désolé: sémantique de fonction en ligne de données statiques «%#D» est erronée (vous obtiendrez de multiples copies)"
-#: cp/decl.c:7761
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
-msgstr " vous pouvez contourner cela en enlevant l'initialiseur"
+msgstr " vous pouvez contourner cela en enlevant l'initialisation"
-#: cp/decl.c:7789
+#: cp/decl.c:8164
msgid "uninitialized const `%D'"
msgstr "constante « %D » non initialisée"
-#: cp/decl.c:7824
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "classe de base d'initialisation spécifié, mais aucune classe de base à initialiser"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "l'initialisation de « %T » doit être entre acolades"
+
+#: cp/decl.c:8328
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "le C++ ISO ne permet pas les valeurs retournées nommées"
+
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "«%#T» n'a pas de membre nommé « %D »"
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "trop d'initialiseurs pour « %T »"
+
+#: cp/decl.c:8426
msgid "variable-sized object `%D' may not be initialized"
msgstr "objet de taille variable « %D » peut ne pas être initialisé"
-#: cp/decl.c:7835 cp/typeck2.c:201
+#: cp/decl.c:8437
msgid "`%D' has incomplete type"
msgstr "« %D » a un type incomplet"
-#: cp/decl.c:7867
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr "« %D » doit être initialisé par un constructeur, non pas par « {...} »"
-#: cp/decl.c:7897
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
msgstr "structure « %D » avec constantes non initialisées de membres"
-#: cp/decl.c:7899
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
msgstr "structure « %D » avec références non initialisées de membres"
-#: cp/decl.c:8166
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr "affectation (non pas l'initialisation) dans la déclaration"
-#: cp/decl.c:8178
+#: cp/decl.c:8785
msgid "cannot initialize `%D' to namespace `%D'"
msgstr "ne peut initialiser « %D » à l'espace de noms « %D »"
-#: cp/decl.c:8235
+#: cp/decl.c:8836
msgid "shadowing previous type declaration of `%#D'"
-msgstr "fait ombrage à la déclaration précédente de «%#D»"
+msgstr "masque la déclaration précédente de «%#D»"
+
+#: cp/decl.c:8883
+#, fuzzy
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "« %E » ne peut être utilisé comme pointeur de membre, alors qu'il est de type « %T »"
-#: cp/decl.c:8631
+#: cp/decl.c:8898
+#, fuzzy
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "aggrégat « %T » sans mambre nommé ne peut être initialisé"
+
+#: cp/decl.c:9298 cp/init.c:562
msgid "multiple initializations given for `%D'"
msgstr "multiples initialisations données pour « %D »"
-#: cp/decl.c:8731
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr "paramètre d'interception invalide"
-#: cp/decl.c:8849
+#: cp/decl.c:9508
msgid "destructor for alien class `%T' cannot be a member"
msgstr "destructeur pour la classe étrangère « %T » ne peut être un membre"
-#: cp/decl.c:8852
+#: cp/decl.c:9511
msgid "constructor for alien class `%T' cannot be a member"
msgstr "constructeur pour la classe étrangère « %T » ne peut être un membre"
-#: cp/decl.c:8871
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr "« %D» déclaré comme « virtual » %s"
-#: cp/decl.c:8873
+#: cp/decl.c:9532
msgid "`%D' declared as an `inline' %s"
msgstr "« %D» déclaré comme « inline » %s"
-#: cp/decl.c:8875
+#: cp/decl.c:9534
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr "spécificateurs de fonction « const» et «volatile» invalide pour «%D » dans la déclaration %s"
-#: cp/decl.c:8878
+#: cp/decl.c:9537
msgid "`%D' declared as a friend"
msgstr "« %D » déclaré comme un ami"
-#: cp/decl.c:8884
+#: cp/decl.c:9543
msgid "`%D' declared with an exception specification"
msgstr "« %D » déclaré avec une exception de spécification"
-#: cp/decl.c:8959
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr "ne peut déclarer « ::main » comme étant un patron"
-#: cp/decl.c:8961
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr "ne peut déclarer «::main» à être en ligne"
-#: cp/decl.c:8963
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr "ne peut déclarer « ::main » comme étant static"
-#: cp/decl.c:8966
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr "« main» doit retourner « int »"
-#: cp/decl.c:8994
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr "fonction non locale «%#D» utilise un type anonyme"
-#: cp/decl.c:8997
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr "«%#D» ne réfère pas à un type non qualifié, aussi il n'est pas utilisé pour la liaison"
-#: cp/decl.c:9003
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr "fonction non locale «%#D» utilise un type local « %T »"
-#: cp/decl.c:9026
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
-msgstr "%smembre de fonction « %D » ne peut avoir « %T » comme qualificateur de méthode"
+msgstr "%sfonction membre « %D » ne peut avoir « %T » comme qualificateur de méthode"
-#: cp/decl.c:9050
+#: cp/decl.c:9715
msgid "defining explicit specialization `%D' in friend declaration"
msgstr "définition explicite de spécialisation « %D » dans lka déclaration ami"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:9060
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr "utilisation invalide du template-id « %D » dans la déclaration du patron primaire"
-#: cp/decl.c:9088
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr "arguments par défaut ne sont pas permis dans la déclaration amie de la spécialisation du patron « %D »"
-#: cp/decl.c:9095
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr "« inline» n'estpas permis dans la déclaration amie de la spécialisation du patron «%D »"
-#: cp/decl.c:9157
+#: cp/decl.c:9822
msgid "definition of implicitly-declared `%D'"
msgstr "définition implicitement déclarée « %D »"
-#: cp/decl.c:9169 cp/decl2.c:1367
+#: cp/decl.c:9834 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
-msgstr "pas de membre de fontion «%#D» déclarée dans la classe « %T »"
+msgstr "pas de fonction membre « %#D » déclarée dans la classe « %T »"
-#: cp/decl.c:9288
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr "variable non locale «%#D» utilise un type local « %T »"
-#: cp/decl.c:9378
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr "initialisation invalide dans la class de données de membre statiques d'un non entier de type « %T »"
-#: cp/decl.c:9387
+#: cp/decl.c:10073
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
-msgstr "ISO C++ interdit l'initialisation intra-classe d'un membre statique non constant « %D »"
+msgstr "le C++ ISO interdit l'initialisation intra-classe d'un membre statique non constant « %D »"
-#: cp/decl.c:9390
+#: cp/decl.c:10076
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
-msgstr "ISO C++ interdit l'initialisation d'une membre constant « %D » d'un type non entier « %T »"
+msgstr "le C++ ISO interdit l'initialisation d'une membre constant « %D » d'un type non entier « %T »"
-#: cp/decl.c:9440
+#: cp/decl.c:10126
msgid "size of array `%D' has non-integer type"
msgstr "taille du tableau « %D » n'est pas de type entier"
-#: cp/decl.c:9442
+#: cp/decl.c:10128
msgid "size of array has non-integer type"
msgstr "taille du tableau a type non entier"
-#: cp/decl.c:9462
+#: cp/decl.c:10148
msgid "size of array `%D' is negative"
msgstr "taille du tableau « %D » est négative"
-#: cp/decl.c:9464
+#: cp/decl.c:10150
msgid "size of array is negative"
msgstr "taille du tableau est négative"
-#: cp/decl.c:9473
+#: cp/decl.c:10159
msgid "ISO C++ forbids zero-size array `%D'"
-msgstr "ISO C++ interdit les tableaux de taille zéro « %D »"
+msgstr "le C++ ISO interdit les tableaux de taille zéro « %D »"
-#: cp/decl.c:9475
+#: cp/decl.c:10161
msgid "ISO C++ forbids zero-size array"
-msgstr "ISO C++ interdit les tableaux de taille zéro"
+msgstr "le C++ ISO interdit les tableaux de taille zéro"
-#: cp/decl.c:9482
+#: cp/decl.c:10168
msgid "size of array `%D' is not an integral constant-expression"
msgstr "taille du tableau « %D » n'a pas une expression de constante de type entier"
-#: cp/decl.c:9485
+#: cp/decl.c:10171
msgid "size of array is not an integral constant-expression"
msgstr "taille du tableau n'est pas une expression de constante de type entier"
-#: cp/decl.c:9503
+#: cp/decl.c:10189
msgid "ISO C++ forbids variable-size array `%D'"
-msgstr "ISO C++ interdit les tableaus de taille variable « %D »"
+msgstr "le C++ ISO interdit les tableaus de taille variable « %D »"
-#: cp/decl.c:9506
+#: cp/decl.c:10192
msgid "ISO C++ forbids variable-size array"
-msgstr "ISO C++ interdit le tableau de taille variable"
+msgstr "le C++ ISO interdit le tableau de taille variable"
-#: cp/decl.c:9517
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr "débordement dans les dimensions du tableau"
-#: cp/decl.c:9576
+#: cp/decl.c:10262
msgid "declaration of `%D' as %s"
msgstr "déclaration de « %D » comme « %s »"
-#: cp/decl.c:9578
+#: cp/decl.c:10264
#, c-format
msgid "creating %s"
msgstr "création de %s"
-#: cp/decl.c:9590
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr "déclaration de « %D » comme tableau multidimensionel doit avoir des bornes pour chaque dimension excepté pour la première"
-#: cp/decl.c:9593
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr "tableau multidimensionel doit avoir des bornes pour chaque dimension excepté pour la première"
-#: cp/decl.c:9622
+#: cp/decl.c:10308
msgid "return type specification for constructor invalid"
msgstr "spécification de type retourné pour un constructeur est invalide"
-#: cp/decl.c:9629
+#: cp/decl.c:10315
msgid "return type specification for destructor invalid"
msgstr "spécification de type retourné pour un destructeur est invalide"
-#: cp/decl.c:9635
+#: cp/decl.c:10321
msgid "operator `%T' declared to return `%T'"
msgstr "opérateur « %T » déclaré comme retournant « %T »"
-#: cp/decl.c:9637
+#: cp/decl.c:10323
msgid "return type specified for `operator %T'"
msgstr "type spécifié retourné pour l'opérateur « %T »"
-#: cp/decl.c:9805
+#: cp/decl.c:10491
msgid "destructors must be member functions"
-msgstr "destructeur doit être membres de la fonction"
+msgstr "les destructeurs doivent être des fonctions membres"
-#: cp/decl.c:9824
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr "destructeur « %T » doit concorder avec le nom de la classe « %T »"
-#: cp/decl.c:9874
+#: cp/decl.c:10539
+#, fuzzy
+msgid "variable declaration is not allowed here"
+msgstr "initialisation n'est pas permise dans un module SPEC"
+
+#: cp/decl.c:10566
msgid "invalid declarator"
msgstr "déclarateur invalide"
-#: cp/decl.c:9927
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr "declarator-id manquant; utilisation du mot réservé « %D »"
-#: cp/decl.c:9984
+#: cp/decl.c:10674
msgid "type `%T' is not derived from type `%T'"
msgstr "type « %T » n'est pas dérivé du type « %T »"
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:10030
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr "« %T » spécifié comme declarator-id"
-#: cp/decl.c:10032
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr " peut-être que vous voulez « %T » comme constructeur"
-#: cp/decl.c:10046
-msgid "`%D' as declarator"
-msgstr "« %D » comme déclarateur"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "utilisation invalide du template-id « %D » dans la déclaration du patron primaire"
-#: cp/decl.c:10061
+#: cp/decl.c:10770
msgid "declaration of `%D' as non-function"
msgstr "déclaration de « %D » comme non-fonction"
-#: cp/decl.c:10138
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr "« bool » est maintenant un mot clé"
-#: cp/decl.c:10140
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr "« %T » surperflu ignoré"
-#: cp/decl.c:10156 cp/decl.c:10189
+#: cp/decl.c:10865 cp/decl.c:10910
msgid "multiple declarations `%T' and `%T'"
msgstr "multiples déclarations « %T » et « %T »"
-#: cp/decl.c:10169
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
-msgstr "ISO C++ ne supporte pas « long long »"
+msgstr "le C++ ISO ne permet pas « long long »"
-#: cp/decl.c:10262 cp/decl.c:10265
+#: cp/decl.c:10983 cp/decl.c:10986
#, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
-msgstr "ISO C++ interdit la déclaration de « %s » sans type"
+msgstr "le C++ ISO interdit la déclaration de « %s » sans type"
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10275
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr "« %T » est implicitement un typename"
-#: cp/decl.c:10311
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr "short, signed ou unsigned est invalide pour « %s »"
-#: cp/decl.c:10316
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr "long et short spécifiés ensembles pour « %s »"
-#: cp/decl.c:10327
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr "signed et unsigned donnés ensembles pour « %s »"
-#: cp/decl.c:10436
+#: cp/decl.c:11157
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr "qualificateurs ne sont pas permis dans la déclaration de « operator %T »"
-#: cp/decl.c:10458
+#: cp/decl.c:11179
msgid "member `%D' cannot be declared both virtual and static"
msgstr "membre « %D » ne peut être déclaré virtuel et statique"
-#: cp/decl.c:10467
+#: cp/decl.c:11188
msgid "`%T::%D' is not a valid declarator"
msgstr "«%T::%D» n'est pas un déclarateur valide"
-#: cp/decl.c:10478
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr "spécificateurs de classe de stockage invalides dans la déclaration des paramètres"
-#: cp/decl.c:10482
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr "déclaration typedef invalide dans le paramètre de la déclaration"
-#: cp/decl.c:10495
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr "virtuel en dehors de la déclaration de classe"
-#: cp/decl.c:10549
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr "classe de stockage spécifiée pour %s « %s »"
-#: cp/decl.c:10587
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr "spécificateurs de classe de stockage invalide dans les déclarations de fonction amie"
-#: cp/decl.c:10691
-msgid "size of member `%D' is not constant"
-msgstr "taille du membre « %D » n'est pas constant"
-
-#: cp/decl.c:10770
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
-msgstr "destructeur ne peut être un membre statique d'une fonction"
+msgstr "le destructeur ne peut être une fonction membre statique"
-#: cp/decl.c:10773
+#: cp/decl.c:11498
#, c-format
msgid "destructors may not be `%s'"
msgstr "destructeurs ne peut être « %s »"
-#: cp/decl.c:10794
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
-msgstr "constructeur ne peut être un membre statique d'une fonction"
+msgstr "le constructeur ne peut être une fonction membre statique"
-#: cp/decl.c:10797
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr "constructeurs ne peut être déclarés virtuels"
-#: cp/decl.c:10802
+#: cp/decl.c:11527
#, c-format
msgid "constructors may not be `%s'"
msgstr "constructeurs ne peuvent pas être « %s »"
-#: cp/decl.c:10812
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr "type de valeur retournée d'un spécificateur pour un constructeur est ignoré"
-#: cp/decl.c:10831
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
msgstr "ne peut initialiser la fonction amie « %s »"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10835
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr "fonctions virtuelles ne peuvent être amies"
-#: cp/decl.c:10840
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr "déclaration amie n'est pas dans la définition de classe"
-#: cp/decl.c:10842
+#: cp/decl.c:11567
#, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr "ne peut définir une fonction amie « %s » dans une définition locale de classe"
-#: cp/decl.c:10866
+#: cp/decl.c:11591
msgid "destructors may not have parameters"
msgstr "destructeurs ne peuvent pas avoir de paramètre"
-#: cp/decl.c:10896
-#, c-format
-msgid "cannot declare %s to references"
-msgstr "ne peut déclarer %s comme références"
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "ne peut décalrer des références vers des références"
-#: cp/decl.c:10907
-msgid "cannot declare pointer to `%#T' member"
+#: cp/decl.c:11623
+#, fuzzy
+msgid "cannot declare pointer to `%#T'"
msgstr "ne peut déclarer un pointeur vers le membre «%#T»"
-#: cp/decl.c:10922
-msgid "invalid type: `void &'"
-msgstr "type invalide: « void & »"
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr "ne peut déclarer un pointeur vers le membre «%#T»"
-#: cp/decl.c:11084
+#: cp/decl.c:11804
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr "qualification additionnelle «%T::» sur le membre « %s » est ignorée"
-#: cp/decl.c:11094
+#: cp/decl.c:11814
msgid "cannot declare member function `%T::%s' within `%T'"
-msgstr "ne peut déclarer le membre de fonction «%T::%s» à l'intérieur de « %T »"
+msgstr "ne peut déclarer la fonction membre «%T::%s» à l'intérieur de « %T »"
-#: cp/decl.c:11109
+#: cp/decl.c:11829
msgid "cannot declare member `%T::%s' within `%T'"
msgstr "ne peut déclarer le membre «%T::%s» à l'intérieur de « %T »"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+#, fuzzy
+msgid "parameter may not have variably modified type `%T'"
+msgstr "argument du patron « %T » utilise un type anonyme"
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11189
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr "seuls les déclarations de constructeurs peuvent être « explicit »"
-#: cp/decl.c:11197
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr "le non membre « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:11202
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr "un membre non objet « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:11208
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "fonction « %s » ne peut être déclarée « mutable »"
-#: cp/decl.c:11213
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr "static « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:11218
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr "const « %s » ne peut être déclaré « mutable »"
-#: cp/decl.c:11231
+#: cp/decl.c:11960
msgid "template-id `%D' used as a declarator"
msgstr "identificateur de patron « %D » utilisé comme déclarateur"
-#: cp/decl.c:11252
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
-msgstr "ISO C++ interdit le type imbriqué « %D » avec le même nom que la classe de fermeture"
+msgstr "le C++ ISO interdit le type imbriqué « %D » avec le même nom que la classe de fermeture"
-#: cp/decl.c:11299
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr "nom du typedef peut ne pas être qualifié pour la classe"
-#: cp/decl.c:11307
+#: cp/decl.c:12038
msgid "invalid type qualifier for non-member function type"
-msgstr "qualificateur de type invalide pour un type de fonction non membre"
-
-#: cp/decl.c:11323
-msgid "typedef declaration includes an initializer"
-msgstr "déclaration typedef inclut un initialiseur"
+msgstr "qualificateur de type invalide pour un type de fonction (autre que fonction membre)"
-#: cp/decl.c:11373
+#: cp/decl.c:12101
msgid "type qualifiers specified for friend class declaration"
msgstr "qulificateurs de types spécifiés pour la déclaration d'une classe amie"
-#: cp/decl.c:11378
+#: cp/decl.c:12106
msgid "`inline' specified for friend class declaration"
msgstr "« inline » spécifié pour la déclaration d'une classe amie"
-#: cp/decl.c:11388
+#: cp/decl.c:12114
msgid "template parameters cannot be friends"
msgstr "paramètres du patron ne peuvent pas être amis"
-#: cp/decl.c:11390
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
+#: cp/decl.c:12116
+#, fuzzy
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr "déclaration ami requiert une clé de classe, i.e. « friend class %T::%T'"
-#: cp/decl.c:11395
+#: cp/decl.c:12120
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr "déclaration amie requiert une clé de classes, i.e. « friend %#T'"
-#: cp/decl.c:11409
+#: cp/decl.c:12134
msgid "trying to make class `%T' a friend of global scope"
msgstr "tentative de rendre la classe « %T » un ami de la portée globale"
-#: cp/decl.c:11420
+#: cp/decl.c:12145
msgid "invalid qualifiers on non-member function type"
-msgstr "qualificteurs invalide pour un type de fonction non membre"
+msgstr "qualificteurs invalide pour un type de fonction (autre que fonction membre)"
-#: cp/decl.c:11439
+#: cp/decl.c:12164
msgid "abstract declarator `%T' used as declaration"
msgstr "déclaration abstrait « %T » utilisé dans la déclaration"
-#: cp/decl.c:11451
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr "variable non nommée ou champ déclaré void"
-#: cp/decl.c:11460
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr "variable ou champ déclaré void"
-#: cp/decl.c:11470
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr "ne peut utiliser «::» dans le paramètre d'un déclaration"
#. Something like struct S { int N::j; };
-#: cp/decl.c:11516
+#: cp/decl.c:12234
msgid "invalid use of `::'"
msgstr "utilisation invalide de « :: »"
-#: cp/decl.c:11528
+#: cp/decl.c:12246
msgid "function `%D' cannot be declared friend"
msgstr "fonction « %D » ne peut être déclarée amie"
-#: cp/decl.c:11540
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr "ne peut rendre « %D » dans la méthode -- n'est pas dans la classe"
-#: cp/decl.c:11549
+#: cp/decl.c:12267
msgid "function `%D' declared virtual inside a union"
msgstr "fonction « %D » déclaré comme virtuelle à l'intérieur d'un agrégat"
-#: cp/decl.c:11561
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr "« %D » ne peut être déclaré virtuel, alors qu'il est toujours statique"
-#: cp/decl.c:11634
+#: cp/decl.c:12355
msgid "field `%D' has incomplete type"
msgstr "champ « %D » a un type incomplet"
-#: cp/decl.c:11636
+#: cp/decl.c:12357
msgid "name `%T' has incomplete type"
msgstr "nom « %T » a un type incomplet"
-#: cp/decl.c:11645
+#: cp/decl.c:12366
msgid " in instantiation of template `%T'"
msgstr " dans l'instanciation du patron « %T »"
-#: cp/decl.c:11655
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
-msgstr "« %s » n'est ni une fonction ni le membre d'une fonction; ne peut être déclaré ami"
+msgstr "« %s » n'est ni une fonction ni une fonction membre ; ne peut être déclaré ami"
-#: cp/decl.c:11666
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
-msgstr "membres de fonctions sont implicitement amis de leur classe"
+msgstr "les fonctions membres sont implicitement amis de leur classe"
#. An attempt is being made to initialize a non-static
#. member. But, from [class.mem]:
@@ -14637,94 +15672,99 @@ msgstr "membres de fonctions sont implicitement amis de leur classe"
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11713
+#: cp/decl.c:12434
msgid "ISO C++ forbids initialization of member `%D'"
-msgstr "ISO C++ interdit l'initialisation d'un membre « %D »"
+msgstr "le C++ ISO interdit l'initialisation du membre « %D »"
-#: cp/decl.c:11715
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr "rendant « %D » statique"
-#: cp/decl.c:11739
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
-msgstr "ISO C++ interdit les données de mmebres statiques « %D » avec le même nom comme classe de fermeture"
+msgstr "le C++ ISO interdit les données de membres statiques « %D » avec le même nom comme classe de fermeture"
-#: cp/decl.c:11780
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr "classe de stockage « auto» invalide pour une fonction « %s »"
-#: cp/decl.c:11782
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr "classe de stockage « register» invalide pour une fonction « %s »"
-#: cp/decl.c:11793
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "classe de stockage « auto» invalide pour une fonction « %s »"
+
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr "classe de stockage « static» invalide pour une fonction « %s » déclarée en dehors de la portée globale"
-#: cp/decl.c:11795
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr "classe de stockage « inline» invalide pour une fonction « %s » déclarée en dehors de la portée globale"
-#: cp/decl.c:11802
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr "fonction virtuelle d'une non classe « %s »"
-#: cp/decl.c:11831
+#: cp/decl.c:12554
msgid "cannot declare member function `%D' to have static linkage"
msgstr "ne peut déclarer la fonction membre « %D » comme ayant un lien statique"
#. FIXME need arm citation
-#: cp/decl.c:11837
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr "ne peut déclarer une fonction statique à l'intérieur d'une autre fonction"
-#: cp/decl.c:11865
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr "« static » ne peut pas être utilisé lors de la définition (contrairement à la déclaration) de données de membres statiques"
-#: cp/decl.c:11871
+#: cp/decl.c:12594
msgid "static member `%D' declared `register'"
msgstr "mambre statique « %D» déclaré «register »"
-#: cp/decl.c:11876
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr "ne peut explicitement déclarer le membre «%#D» comme ayant une liaison externe"
-#: cp/decl.c:12048
+#: cp/decl.c:12774
msgid "default argument for `%#D' has type `%T'"
msgstr "argument par défaut pour «%#D» à un type « %T »"
-#: cp/decl.c:12051
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr "argument par défaut pour le paramètre de type « %T » a le type « %T »"
-#: cp/decl.c:12068
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
msgstr "argument par défaut « %E » utiliser une variable locale « %D »"
-#: cp/decl.c:12113
+#: cp/decl.c:12839
#, c-format
msgid "invalid string constant `%E'"
msgstr "constante chaîne invalide « %E »"
-#: cp/decl.c:12115
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr "constante entière invalide dans la liste de paramètre, avez-vous oublier de donner un nom de paramètre?"
-#: cp/decl.c:12153
+#: cp/decl.c:12879
msgid "parameter `%D' invalidly declared method type"
msgstr "paramètre « %D » incorrectement validé comme type de méthode"
-#: cp/decl.c:12159
+#: cp/decl.c:12885
msgid "parameter `%D' invalidly declared offset type"
msgstr "paramètre « %D » incorrectement validé comme type de décalage"
-#: cp/decl.c:12183
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr "paramètre « %D » inclut %s au tableau de bornes inconnues « %T »"
@@ -14743,694 +15783,687 @@ msgstr "paramètre « %D » inclut %s au tableau de bornes inconnues « %T »"
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12350
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr "constructeur invalide; vous vouliez probablement dire «%T (const %T&)»"
-#: cp/decl.c:12501
+#: cp/decl.c:13222
msgid "`%D' must be a nonstatic member function"
msgstr "« %D » doit être une fonction membre non statique"
-#: cp/decl.c:12507
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr "« %D » doit être soit un membre non statique de fonction ou une fonction non membre"
-#: cp/decl.c:12524
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr "« %D » doit avoir un argument de classe ou de type énuméré"
-#: cp/decl.c:12556
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr "conversion de %s%s ne sera jamais utilisé dans un type d'opérateur de conversion"
#. 13.4.0.3
-#: cp/decl.c:12563
+#: cp/decl.c:13284
msgid "ISO C++ prohibits overloading operator ?:"
-msgstr "ISO C++ interdit la surcharge d'opérateur ?:"
+msgstr "le C++ ISO interdit la surcharge de l'opérateur ?:"
-#: cp/decl.c:12613
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr "postfixe « %D» doit prendre « int » comme argument"
-#: cp/decl.c:12617
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr "postfixe « %D» doit prndre « int » pour son second argument"
-#: cp/decl.c:12624
+#: cp/decl.c:13345
msgid "`%D' must take either zero or one argument"
msgstr "« %D » doit prendre seulement zéro ou un autre argument"
-#: cp/decl.c:12626
+#: cp/decl.c:13347
msgid "`%D' must take either one or two arguments"
msgstr "« %D » doit prendre seulement un OU deux arguments"
-#: cp/decl.c:12647
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr "préfixe « %D » devrait retourner « %T »"
-#: cp/decl.c:12653
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr "postfixe « %D » devrait retourner « %T »"
-#: cp/decl.c:12662
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr "« %D» doit prendre « void »"
-#: cp/decl.c:12664 cp/decl.c:12672
+#: cp/decl.c:13385 cp/decl.c:13393
msgid "`%D' must take exactly one argument"
msgstr "« %D » doit prendre exactement un argument"
-#: cp/decl.c:12674
+#: cp/decl.c:13395
msgid "`%D' must take exactly two arguments"
msgstr "« %D » doit prendre exactemenr deux arguments"
-#: cp/decl.c:12682
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr "« %D » défini par l'usager évalue toujours les 2 arguments"
-#: cp/decl.c:12694
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr "« %D » devrait retourner par valeur"
-#: cp/decl.c:12706 cp/decl.c:12709
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
msgstr "« %D » ne peut avoir d'arguments par défaut"
-#: cp/decl.c:12800
-msgid "`%s %T' declares a new type at namespace scope"
-msgstr "«%s %R» déclare un nouveau type dans l'étendue de l'espace de noms"
-
-#: cp/decl.c:12803
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
-msgstr " noms des classes de base dépendantes ne sont pas visibles à la recherche de nom non qualifié - pour référer à type par héritage, disons «%s %T::%T»"
-
-#: cp/decl.c:12841
+#: cp/decl.c:13475
msgid "using typedef-name `%D' after `%s'"
msgstr "utilisation d'un nom de typedef « %D » après « %s »"
-#: cp/decl.c:12846
+#: cp/decl.c:13481
msgid "using template type parameter `%T' after `%s'"
msgstr "utilisation de type de patron de paramètre « %T » après « %s »"
-#: cp/decl.c:12926
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "« %s %T » déclare un nouveau type dans l'étendue de l'espace de noms"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr " noms des classes de base dépendantes ne sont pas visibles à la recherche de nom non qualifié - pour référer à type par héritage, disons «%s %T::%T»"
+
+#: cp/decl.c:13663
msgid "use of enum `%#D' without previous declaration"
msgstr "utilisation de enum «%#D» sans déclaration précédente"
-#: cp/decl.c:13024
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr "union dérivée « %T » invalide"
-#: cp/decl.c:13068
+#: cp/decl.c:13795
msgid "base type `%T' fails to be a struct or class type"
msgstr "type de base « %T » a échoué pour devenir un type de classe ou un type construit"
-#: cp/decl.c:13078
+#: cp/decl.c:13805
msgid "base class `%T' has incomplete type"
msgstr "classe de base « %T » a un type incomplet"
-#: cp/decl.c:13086
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr "type récursif « %T » non défini"
-#: cp/decl.c:13088
+#: cp/decl.c:13815
msgid "duplicate base type `%T' invalid"
msgstr "duplication du type de base « %T » invalide"
-#: cp/decl.c:13199
+#: cp/decl.c:13926
msgid "multiple definition of `%#T'"
msgstr "définition multiple de «%#T»"
-#: cp/decl.c:13200
+#: cp/decl.c:13927
msgid "previous definition here"
msgstr "définition précédente ici"
-#: cp/decl.c:13371
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
msgid "enumerator value for `%D' not integer constant"
msgstr "valeur de l'énumérateur pour « %D » n'est pas une constante entière"
-#: cp/decl.c:13391
+#: cp/decl.c:14126
msgid "overflow in enumeration values at `%D'"
msgstr "débordement dans les valeurs de l'énumération à « %D »"
-#: cp/decl.c:13477
+#: cp/decl.c:14195
msgid "return type `%#T' is incomplete"
msgstr "type retourné «%#T» est incomplet"
-#: cp/decl.c:13593
+#: cp/decl.c:14309
msgid "semicolon missing after declaration of `%#T'"
msgstr "point-virgule manquant après la déclaration %#T"
-#: cp/decl.c:13614
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr "type retourné pour « main » est changé pour «int »"
-#: cp/decl.c:13645
+#: cp/decl.c:14361
msgid "`%D' implicitly declared before its definition"
msgstr "« %D » implicitement déclaré avant sa définition"
-#: cp/decl.c:13667 cp/typeck.c:6530
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr "« operator= » devrait retourner une référence à «*ceci »"
-#: cp/decl.c:13931
+#: cp/decl.c:14643
msgid "parameter `%D' declared void"
msgstr "paramètre « %D » déclaré «void »"
-#: cp/decl.c:14408
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
msgstr "« %D » est déjà défini dans la classe « %T »"
-#: cp/decl.c:14625
+#: cp/decl.c:15348
msgid "static member function `%#D' declared with type qualifiers"
msgstr "membre de fonction statique «%#D» déclaré avec des qualificateurs de tyep"
-#: cp/decl2.c:529
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr "-f%s n'est plus supportée"
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr "-fhandle-exceptions a été renommé -fexceptions (et est utilisé par défaut maintenant)"
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr "-fname-mangling-version n'est plus supportée"
-
-#: cp/decl2.c:624
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-Wno-strict-prototypes n'est pas supportée en C++"
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr "qualificateurs de types dupliqués dans déclaration %s"
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr "patron «%#D» instancié dans le fichier sans interface #pragma"
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr "patron «%#D» défini dans le fichier sans interface #pragma"
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr "nom manquant pour le membre d'une fonction"
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1026
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr "analyseur syntaxique est perdu: y-a-t-il un «{» manquant quelque part?"
-#: cp/decl2.c:1057 cp/decl2.c:1071
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr "comversion ambigue pour un sous-tableau"
-#: cp/decl2.c:1065
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr "types invalides «%T[%T]» pour un sous-script de tableau"
-#: cp/decl2.c:1113
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
msgstr "type « %#T» de l'argument donné pour « delete », attendait un pointeur"
-#: cp/decl2.c:1121
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr "utilisation anachronique de la taille d'un tableau dans un vecteur delete"
-#: cp/decl2.c:1131
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
msgstr "ne peut détruire une fonction. Seuls les pointeurs-d'objets sont des arguments valable pour destruction"
-#: cp/decl2.c:1138
+#: cp/decl2.c:540
msgid "deleting `%T' is undefined"
msgstr "destruction de « %T » est indéfinie"
-#: cp/decl2.c:1146
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr "destruction du tableau «%#D'"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1180
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr "déclaration invalide du patron de membre «%#D» dans la classe locale"
-#: cp/decl2.c:1189
+#: cp/decl2.c:591
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr "utilisation invalide de « virtual» dans la déclaration d'un patron de «%#D »"
-#: cp/decl2.c:1199 cp/pt.c:2562
+#: cp/decl2.c:601 cp/pt.c:2745
msgid "template declaration of `%#D'"
msgstr "déclaration du patron de «%#D»"
-#: cp/decl2.c:1249
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr "méthode Java « %D » a un type non Java retourné « %T »"
-#: cp/decl2.c:1258
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr "méthode Java « %D » a un paramètre non Java de type « %T »"
-#: cp/decl2.c:1354
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr "prototype pour «%#D» ne concorde avec aucun dans la classe « %T »"
-#: cp/decl2.c:1356
-msgid "candidate%s: %+#D"
-msgstr "candidat%s: %+#D"
-
-#: cp/decl2.c:1359
-msgid " %#D"
-msgstr " %#D"
-
-#: cp/decl2.c:1411
+#: cp/decl2.c:828
msgid "local class `%#T' shall not have static data member `%#D'"
msgstr "la classe locale «%#T» ne doit pas être un membre de données statiques de «%#D»"
-#: cp/decl2.c:1419
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
-msgstr "initialiseur invalide pour un membre statique avec constructeur"
+msgstr "initialisation invalide pour un membre statique avec constructeur"
-#: cp/decl2.c:1422
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr "(une initialisation en dehors de la classe est requise)"
-#: cp/decl2.c:1481
+#: cp/decl2.c:898
msgid "invalid data member initialization"
msgstr "initialisation de données membres invalide"
-#: cp/decl2.c:1484
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr "(utiliser «=» pour initialiser les données de membres)"
-#: cp/decl2.c:1524
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr "membre « %D » en conflit avec un nom de champ de table d'une fonction virtuelle"
-#: cp/decl2.c:1544
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr "« %D » est déjà défini dans « %T »"
-#: cp/decl2.c:1595
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
-msgstr "initialiseuur du champ n'est pas une constante"
+msgstr "l'initialisation du champ n'est pas une constante"
-#: cp/decl2.c:1618
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr "spécificateurs « asm » ne sont pas permis pour des données de membres non statiques"
-#: cp/decl2.c:1670
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr "ne peut déclarer « %D » comme étant un type de champ de bits"
-#: cp/decl2.c:1680
+#: cp/decl2.c:1100
msgid "cannot declare bit-field `%D' with function type"
msgstr "ne peut déclarer un champ de bits « %D » avec un type de fonction"
-#: cp/decl2.c:1687
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr "« %D » est déjà défini dans la classe %T"
-#: cp/decl2.c:1694
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr "membre statique « %D » ne peut être un champ de bits"
-#: cp/decl2.c:1763
+#: cp/decl2.c:1201
msgid "initializer specified for non-member function `%D'"
-msgstr "initialiseur spécifié pour une fonction non membre «%#D»"
+msgstr "initialisation spécifiée pour une fonction « %D » n'étant pas membre"
-#: cp/decl2.c:1767
+#: cp/decl2.c:1205
msgid "invalid initializer for virtual method `%D'"
-msgstr "initialiseur invalide pour une méthode virtuelle «%#D»"
+msgstr "initialisation invalide pour la méthode virtuelle « %D »"
-#: cp/decl2.c:1871
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr "struct anonyme n'est pas l'intérieur du type nommé"
-#: cp/decl2.c:1967
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr "aggrégats anonymes de champs d'espace nom doit être statique"
-#: cp/decl2.c:1977
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr "aggrégat anonyme sans aucun membre"
-#: cp/decl2.c:2044
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr "« operator new » doit retourner un type «%T »"
-#: cp/decl2.c:2052
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr "« operator new » prend le type « size_t » (« %T ») comme premier paramètre"
-#: cp/decl2.c:2079
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr "« operator delete » doit retourner le type « %T »"
-#: cp/decl2.c:2087
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr "« operator delete » prend le type «%T » comme premier paramètre"
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2828
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
msgstr "trop d'initialisations de fonctions requises"
-#: cp/decl2.c:3639
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "« %s » utilisé mais n'a jamais été défini"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
msgstr "utilisation d'un vieux style de transtypage (cast)"
-#: cp/decl2.c:4220
+#: cp/decl2.c:3860
msgid "use of `%D' is ambiguous"
-msgstr "utilisation de « %T » est ambiguë"
+msgstr "utilisation de « %D » est ambiguë"
-#: cp/decl2.c:4221
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
msgstr " d'abord déclaré comme «%#D» ici"
-#: cp/decl2.c:4224
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr " aussi déclaré comme «%#D» ici"
-#: cp/decl2.c:4239
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr "« %D » dénote un type ambigu"
-#: cp/decl2.c:4240
+#: cp/decl2.c:3880
msgid " first type here"
msgstr " premier type ici"
-#: cp/decl2.c:4241
+#: cp/decl2.c:3881
msgid " other type here"
msgstr " autre type ici"
-#: cp/decl2.c:4338
+#: cp/decl2.c:3982
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr "déclaration de « %D » n'est pas dans l'espace de noms entourant « %D »"
-#: cp/decl2.c:4372
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr "« %D » devrait avoir été déclaré à l'intérieur de « %D »"
-#: cp/decl2.c:4506
+#: cp/decl2.c:4152
msgid "`%D' is not a function,"
msgstr "« %D » n'est pas une fonction"
-#: cp/decl2.c:4507
+#: cp/decl2.c:4153
msgid " conflict with `%D'"
msgstr " en conflit avec « %D »"
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4821
+#: cp/decl2.c:4473
msgid "unknown namespace `%D'"
msgstr "espace de nomes inconnu « %D »"
-#: cp/decl2.c:4855 cp/decl2.c:5125
+#: cp/decl2.c:4507 cp/decl2.c:4794
msgid "`%T' is not a namespace"
msgstr "« %T » n'est pas un espace de noms"
-#: cp/decl2.c:4857
+#: cp/decl2.c:4509
msgid "`%D' is not a namespace"
msgstr "« %D » n'est pas un espace de noms"
-#: cp/decl2.c:4866
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr "l'utilisation d'une déclaration ne peut spécifier un template-id. Essayer « using %D »"
-#: cp/decl2.c:4880
+#: cp/decl2.c:4532
msgid "namespace `%D' not allowed in using-declaration"
msgstr "espace de noms « %D » n'est pas permis dans l'utilisation d'une déclaration"
-#: cp/decl2.c:4909
+#: cp/decl2.c:4561
msgid "`%D' not declared"
msgstr "« %D » n'est pas déclaré"
-#: cp/decl2.c:4960
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
msgstr "« %D » est déjà déclaré dans cette portée"
-#: cp/decl2.c:4987
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr "l'utlisation de la déclaration « %D » introduit un type ambigu « %T »"
-#: cp/decl2.c:5078
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr "l'utilisation de déclaration pour un non membre au niveau de la portée de la classe"
-#: cp/decl2.c:5084
+#: cp/decl2.c:4746
msgid "using-declaration for destructor"
msgstr "utilisation de déclaration pour un destructeur"
-#: cp/decl2.c:5090
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr "l'utilisation de déclaration ne peut spécifier template-id. Essayer «using %T::%D'"
-#: cp/decl2.c:5119
+#: cp/decl2.c:4788
msgid "namespace `%T' undeclared"
msgstr "espace de noms « %T » n'est pas déclaré"
-#: cp/decl2.c:5148
+#: cp/decl2.c:4817
msgid "default argument missing for parameter %P of `%+#D'"
msgstr "argument par défaut manquant pour le paramètre %P de «%+#D»"
-#: cp/decl2.c:5238
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr "qualification additionnelle «%T::» sur le membre « %D » ignoré"
-#: cp/decl2.c:5242
+#: cp/decl2.c:4945
msgid "`%T' does not have a class or union named `%D'"
msgstr "« %T » n'a pas de classe ou d'union nommé « %D »"
-#: cp/decl2.c:5255
+#: cp/decl2.c:4963
msgid "`%T' is not a class or union type"
msgstr "« %T » n'est pas une classe ou un type d'union"
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "a obtenu %d paramètres de patron pour «%#T»"
+
+#: cp/decl2.c:4995
+#, fuzzy
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "déclaration de « %D » n'est pas dans l'espace de noms entourant « %D »"
+
#: cp/error.c:35
#, c-format
msgid "`%s' not supported by %s"
msgstr "« %s » n'est pas supporté par %s"
-#: cp/error.c:577
+#: cp/error.c:571
#, c-format
msgid "<anonymous %s>"
msgstr "<anonymous %s>"
-#: cp/error.c:814
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr "(static %s pour %s)"
-#: cp/error.c:2438
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
msgstr "Dans %s « %s »:"
-#: cp/error.c:2493
+#: cp/error.c:2530
#, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "%s: dans l'instanciation de « %s »:\n"
-#: cp/error.c:2517
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr "%s:%d: instancié à partir de « %s »\n"
-#: cp/error.c:2522
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr "%s:%d: instancié à partir d'ici\n"
#. damn ICE suppression
-#: cp/error.c:2675
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr "lettre inattendue « %c » dans locate_error\n"
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr "type « %T» n'est pas permis en Java «throw» ou «catch »"
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr "appel en Java de « catch» ou «throw» avec «jthrowable » undéfini"
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr "type « %T» n'est pas dérivé de «java::lang::Throwable »"
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "mélange des interceptions C++ et Java dans une unité simple de traduction "
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
msgstr "retounrnant NULL (par throw), lequel est entier, pas de type pointeur"
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
msgstr " dans l'expression projetée"
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr "expression « %E » de la classe abstraite de type « %T » ne peut être utilisé dans une expression throw"
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr "exception du type « %T » sera interceptée"
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr " par un handler antérieur pour « %T »"
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr "« ... » handler doit être le dernier handler de son bloc d'essai"
-#: cp/friend.c:155
+#: cp/friend.c:159
msgid "`%D' is already a friend of class `%T'"
msgstr "« %D » est déjà un ami de la classe « %T »"
-#: cp/friend.c:157
+#: cp/friend.c:161
msgid "previous friend declaration of `%D'"
msgstr "déclaration amie précédente de « %D »"
-#: cp/friend.c:197
+#: cp/friend.c:206
msgid "invalid type `%T' declared `friend'"
msgstr "type invalide « %T» déclaré «friend »"
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
msgid "partial specialization `%T' declared `friend'"
msgstr "spécialisation partielle « %T» déclarée «friend »"
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr "classe « %T » est implicitement ami avec elle-même"
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
msgid "typename type `%#T' declared `friend'"
msgstr "type typename « %#T» déclaré «friend »"
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
msgid "template parameter type `%T' declared `friend'"
msgstr "type paramètre du patron « %T» déclaré «friend »"
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
msgid "`%#T' is not a template"
msgstr "«%#T» n'est pas un patron"
-#: cp/friend.c:266
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr "« %T » est déjà un ami de « %T »"
-#: cp/friend.c:362
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr "membre « %D » déclaré comme ami avant la définition du type « %T »"
-#: cp/friend.c:417
+#: cp/friend.c:431
msgid "friend declaration `%#D' declares a non-template function"
msgstr "déclaration amie «%#D» déclare une fonction non patron"
-#: cp/friend.c:420
+#: cp/friend.c:434
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr "(si ce n'est pas ce que vous vouliez faire, soyez sûr que le patron de la fonction a déjà été déclaré et ajouter <> après le nom de la fonction ici) -Wno-non-template-friend désactive le présent avertissement"
-#: cp/g++spec.c:198 java/jvspec.c:424
+#: cp/g++spec.c:211 java/jvspec.c:423
#, c-format
msgid "argument to `%s' missing\n"
msgstr "argument pour « %s » est manquant\n"
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr "« %D » devrait être initialisé dans la liste d'initialisation du membre"
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
msgstr "initialisation par défaut de «%#D», lequel a un type référencé"
-#: cp/init.c:290
+#: cp/init.c:389
msgid "uninitialized reference member `%D'"
msgstr "référence de membre non initialisé « %D »"
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
msgstr "liste d'initialiseurs traitée comme une expression composée"
-#: cp/init.c:410
-msgid "member initializers for `%#D'"
-msgstr "initialiseur du membre pour «%#D»"
-
-#: cp/init.c:412
-msgid " and `%#D'"
-msgstr " et «%#D»"
-
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr " sera ré-odonné pour concorder avec l'ordre déclaré"
-
-#: cp/init.c:428
-msgid "multiple initializations given for member `%D'"
-msgstr "initialisations multiples données pour le membre « %D »"
+#: cp/init.c:538
+#, fuzzy
+msgid "`%D' will be initialized after"
+msgstr "membre « %D » est une référence non initialisée"
-#: cp/init.c:500
-msgid "initializations for multiple members of `%T'"
-msgstr "initialisation de multiples membres de « %T »"
+#: cp/init.c:541
+#, fuzzy
+msgid "base `%T' will be initialized after"
+msgstr "classe de base « %T » déjà initialisée"
-#: cp/init.c:617
-msgid "base initializers for `%#T'"
-msgstr "initialiseurs de base pour «%#T»"
+#: cp/init.c:544
+#, fuzzy
+msgid " `%#D'"
+msgstr " et «%#D»"
-#: cp/init.c:618
-msgid " and `%#T'"
+#: cp/init.c:546
+#, fuzzy
+msgid " base `%T'"
msgstr " et «%#T»"
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr " sera ré-ordonné pour concorder avec l'ordre d'héritage"
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "multiples initialisations données pour « %D »"
#: cp/init.c:631
-msgid "base class `%T' already initialized"
-msgstr "classe de base « %T » déjà initialisée"
+msgid "initializations for multiple members of `%T'"
+msgstr "initialisation de multiples membres de « %T »"
-#: cp/init.c:702
+#: cp/init.c:688
msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr "classe de base «%#T» devrait être explicitement initialisé dans la copie du constructeur"
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
-msgstr "« %D » devrait être initialisé dans la liste d'initialisation du membre"
-
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr "classe « %T » n'a pas aucun champ nommé « %D »"
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr "champ «%#D» est statique; le seul point d'initialisation est sa définition"
-#: cp/init.c:1032
+#: cp/init.c:965
msgid "unnamed initializer for `%T', which has no base classes"
msgstr "initialiseur sans nom pour « %T », lequel n'a pas de classe de base"
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr "initialiseur sans nom pour « %T », lequel utilise de multiples héritages"
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr "type « %D » n'est pas une base directe ou virtuelle de « %T »"
-#: cp/init.c:1071
+#: cp/init.c:1010
msgid "type `%D' is not a direct base of `%T'"
msgstr "type « %D » n'est pas une base directe de « %T »"
@@ -15446,551 +16479,536 @@ msgstr "type « %D » n'est pas une base directe de « %T »"
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
-msgstr "initialiseur de base erroné"
+msgstr "mauvaise initialisation de tableau"
-#: cp/init.c:1357
+#: cp/init.c:1311
msgid "`%T' is not an aggregate type"
msgstr "« %T » n'est pas de type aggrégat"
-#: cp/init.c:1380
+#: cp/init.c:1334
msgid "`%T' fails to be an aggregate typedef"
msgstr "« %T » a échoué à être un typedef d'aggrégat"
-#: cp/init.c:1389
+#: cp/init.c:1343
msgid "type `%T' is of non-aggregate type"
msgstr "type « %T » est un type qui n'est pas d'aggrégat"
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr "ne peut appeler le destructeur «%T::~%T» sans objet"
-#: cp/init.c:1531
+#: cp/init.c:1490
msgid "invalid use of non-static field `%D'"
msgstr "utilisation invalide d'un champ non statique « %D »"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1540 cp/method.c:163
+#: cp/init.c:1499 cp/method.c:160
msgid "invalid use of member `%D'"
msgstr "utilisation invalide du membre « %D »"
-#: cp/init.c:1550
+#: cp/init.c:1509
msgid "no method `%T::%D'"
msgstr "pas de méthode «%T::%D»"
-#: cp/init.c:1643
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr "type incomplet « %T » n'a pas de membre « %D »"
-#: cp/init.c:1712
+#: cp/init.c:1676
msgid "`%D' is not a member of type `%T'"
msgstr "« %D » n'est pas un membre de type « %T »"
-#: cp/init.c:1731
-msgid "illegal pointer to bit-field `%D'"
+#: cp/init.c:1695
+#, fuzzy
+msgid "invalid pointer to bit-field `%D'"
msgstr "pointeur illégal pour un champ de bits « %D »"
-#: cp/init.c:1770
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
msgstr "objet manquant dans l'utilisation du construit pointeur-à-membre"
-#: cp/init.c:1810
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr "membre « %D » est non statique mais référencé comme membre statique"
-#: cp/init.c:1812 cp/typeck.c:3130 cp/typeck.c:3238
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr "à ce point dans le fichier"
-#: cp/init.c:1853 cp/typeck.c:2929
+#: cp/init.c:1813
#, c-format
msgid "object missing in `%E'"
msgstr "objet manquant dans « %E »"
-#: cp/init.c:1984
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr "new sur un type tableau a échoué dans l'évaluation de la taille"
-#: cp/init.c:1995
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr "taille d'un nouveau tableau (new) doit avoir un type entier"
-#: cp/init.c:2001
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr "tableau de taille zéro ne réserve pas d'espace"
-#: cp/init.c:2066
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr "new ne peut être appliqué à un type référencé"
-#: cp/init.c:2072
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr "new ne peut être appliqué à un type de fonction"
-#: cp/init.c:2119
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr "appel d'un constructeur Java, alors que « jclass » est indéfini"
-#: cp/init.c:2135
+#: cp/init.c:2095
msgid "can't find class$"
msgstr "ne peut repérer class$"
-#: cp/init.c:2249
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr "type « void » invalide pour new"
-#: cp/init.c:2301
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr "appel au constructeur Java avec « %s » indéfini"
-#: cp/init.c:2408
+#: cp/init.c:2369
msgid "ISO C++ forbids initialization in array new"
-msgstr "ISO C++ interdit l'initialisation d'un nouveau tableau"
+msgstr "le C++ ISO interdit l'initialisation d'un nouveau tableau"
-#: cp/init.c:2426 cp/typeck2.c:359 cp/typeck2.c:1217
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
msgstr "liste d'initaliseurs a été traité comme une expression composée"
-#: cp/init.c:2432
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
-msgstr "ISO C++ interdit l'aggrégation d'initialiseur à new"
+msgstr "le C++ ISO interdit l'aggrégation d'initialiseur à new"
-#: cp/init.c:2516
+#: cp/init.c:2485
msgid "uninitialized const in `new' of `%#T'"
msgstr "constante non initialisée dans « new» pour «%#T »"
-#: cp/init.c:2880
+#: cp/init.c:2864
msgid "initializer ends prematurely"
-msgstr "fin prématurée de l'initialiseur"
+msgstr "fin prématurée de l'initialisation"
-#: cp/init.c:2950
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "ne peut initialiser un table multi-dimensionnel avec initialiseur"
-#: cp/init.c:3125
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr "taille du tableau inconnue dans delete"
-#: cp/init.c:3398
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
msgstr "type du vesteur delete n'est ni un pointeur ou un type tableau"
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr "nom de type attendu avec «*»"
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr "ne peut décalrer des références vers des références"
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr "ne peut déclarer des pointeurs vers des références"
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr "nom de type attendu avant «&»"
-#: cp/lex.c:993
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr "«;» manquant après la déclaration de %s"
-#: cp/lex.c:996
+#: cp/lex.c:897
msgid "semicolon missing after declaration of `%T'"
msgstr "«;» manquant après la déclaration « %T »"
-#: cp/lex.c:1044
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr "rebut à la fin de #pragma %s"
-#: cp/lex.c:1051
+#: cp/lex.c:952
#, c-format
msgid "invalid #pragma %s"
msgstr "#pragma %s invalde"
-#: cp/lex.c:1060
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr "#pragma vtable n'est plus supporté"
-#: cp/lex.c:1137
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "implantation de #pragma pour %s apparaît après l'inclusion du fichier"
-#: cp/lex.c:1162
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr "rebut à la fin de #pragma GCC java_exceptions"
-#: cp/lex.c:1247
+#: cp/lex.c:1107
msgid "`%D' not defined"
msgstr "« %D » n'est pas défini"
-#: cp/lex.c:1252
+#: cp/lex.c:1110
msgid "`%D' was not declared in this scope"
msgstr "« %D » n'a pas été déclaré dans cet horizon"
-#: cp/lex.c:1262
+#: cp/lex.c:1118
msgid "`%D' undeclared (first use this function)"
msgstr "« %D » non déclaré (première utilisation dans cette fonction)"
-#: cp/lex.c:1266
+#: cp/lex.c:1122
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr "(Chaque identificateur non déclaré est rapporté seulement une seule fois pour la fonction dans laquelle il apparaît.)"
-#: cp/lex.c:1289
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr "recherche du nom « %s » a changé"
-
-#: cp/lex.c:1291
-msgid " matches this `%D' under ISO standard rules"
-msgstr " concorde avec « %D » selon les règles standards ISO"
-
-#: cp/lex.c:1293
-msgid " matches this `%D' under old rules"
-msgstr " concorde avec « %D » selon les vieilles règles"
-
-#: cp/lex.c:1303 cp/lex.c:1310
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr "recherche du nom « %s » changé pour le nouveau ISO «for » d'étendue de champ"
-
-#: cp/lex.c:1305
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr " ne peut utiliser une liaison obsolète à « %D » parce qu'il a un destructeur"
-
-#: cp/lex.c:1312
-msgid " using obsolete binding at `%D'"
-msgstr " utilisation de liaison obsolète à « %D »"
-
-#: cp/lex.c:1378
+#: cp/lex.c:1242
msgid "`::%D' undeclared (first use here)"
msgstr "«::%D» non déclaré (première utilisation ici)"
-#: cp/mangle.c:1912
-msgid "real-valued template parameters when cross-compiling"
-msgstr "patron de paramètre en valeur réelle lors de la compilation croisée"
+#: cp/mangle.c:2051
+#, fuzzy
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "new ne peut être appliqué à un type de fonction"
+
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr ""
-#: cp/method.c:157
+#: cp/method.c:154
msgid "invalid use of member `%D' in static member function"
msgstr "utilisation invalide du membre « %D » dans un membre statique de fonction"
-#: cp/method.c:205
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr "utilisation d'un espace de dnomes « %D » comme expression"
-#: cp/method.c:210
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr "utilisation du patron de classe « %T » comme expression"
-#: cp/method.c:223
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr "utilisation de %s d'un fonction contenante"
-#: cp/method.c:226
+#: cp/method.c:237
msgid " `%#D' declared here"
msgstr " «%#D» déclaré ici"
-#: cp/method.c:244
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr "requête du membre « %D » est ambiquë dans de mutliples héritage de treillis"
-#: cp/method.c:297
-msgid "implementation-reserved name `%D' used"
-msgstr "nom d'implantation réservé « %D » est utilisé"
-
-#: cp/method.c:428
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr "code « thunk» générique a échoué pour la méthode «%#D» laquelle utilise « ... »"
-#: cp/method.c:653
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
msgstr "constante non statique du membre «%#D», ne peut utiliser l'opérateur d'affectation par défaut"
-#: cp/method.c:658
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
msgstr "référence non statique du membre «%#D», ne peut utiliser l'opérateur d'affectation par défaut"
-#: parse.y:218
+#: parse.y:262
msgid "`%s' tag used in naming `%#T'"
-msgstr "étiquette « union» utilisée dans la dénomination de «%#T »"
+msgstr "étiquette « %s » utilisée dans la dénomination de « %#T »"
-#: parse.y:510
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr "mot clé « export » n'est pas implanté et sera ignoré"
-#: parse.y:615
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr "utilisation de spéc de liaisons « %D » est différente de la spec précédente « %D »"
-#: parse.y:688
-msgid "invalid default template argument"
-msgstr "argument invalide pour le patron par défaut"
-
-#: parse.y:919
-msgid "only constructors take base initializers"
-msgstr "seuls les constructeurs prennent des initialiseurs de base"
-
-#: parse.y:921
+#: parse.y:943
msgid "no base or member initializers given following ':'"
msgstr "pas d'initialiseur de base ou membre donné après «:»"
-#: parse.y:963 parse.y:969
+#: parse.y:984
msgid "anachronistic old style base class initializer"
msgstr "ancien style anachronique d'initialiseur de classe de base"
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1095
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr "«>>» devrait être «> >» dans le nom du patron de la classe"
-#: parse.y:1133
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr "utilisation d'un qualificateur de patron en dehors d'un patron"
-#: parse.y:1162 parse.y:1171
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
-msgstr "ISO C++ interdit une condition vide pour « %s »"
+msgstr "le C++ ISO interdit une condition vide pour « %s »"
-#: parse.y:1194
+#: parse.y:1225
msgid "definition of class `%T' in condition"
msgstr "définition de la classe « %T » dans la condition"
-#: parse.y:1196
+#: parse.y:1227
msgid "definition of enum `%T' in condition"
msgstr "définition de l'aggrégat « %T » dans la condition"
-#: parse.y:1207
+#: parse.y:1238
msgid "definition of array `%#D' in condition"
msgstr "définition du tableau «%#D» dans la condition"
-#: parse.y:1316
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr "ancien style de syntaxe de positionnement, utiliser () à la place"
-#: parse.y:1327
+#: parse.y:1362
msgid "`%T' is not a valid expression"
msgstr "« %T » n'est pas une expression valide"
-#: parse.y:1338
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr "ISO C++ interdit l'initialisation d'une nouvelle expression avec «=»"
-
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
+msgstr "le C++ ISO interdit l'initialisation d'une nouvelle expression avec «=»"
+
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
-msgstr "ISO C++ interdit les chaînes composées"
+msgstr "le C++ ISO interdit les chaînes composées"
-#: parse.y:1611
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
-msgstr "ISO C++ interdit les groupes d'accolades à l'intérieur des expressions"
+msgstr "le C++ ISO interdit les groupes d'accolades à l'intérieur des expressions"
-#: parse.y:2013 parse.y:2028
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "utilisation invalide du membre « %D »"
+
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
msgstr "spécificateur du type sigof"
-#: parse.y:2018
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr "« sigof » appliqué à une expression de non aggrégats"
-#: parse.y:2033
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr "« sigof » appliqué à un type non aggrégat"
-#: parse.y:2299
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr "utilisation de « typename » en dehors du patron"
-#: parse.y:2370
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr "spécificateur de classe de stockages « %s » n'est pas permis après struct ou class"
-#: parse.y:2372
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr "spécificateur de type « %s » n'est pas permis après struct ou class"
-#: parse.y:2374
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr "qualificateur de type « %s » n'est pas permis après struct ou class"
-#: parse.y:2376
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr "pas de corps ni de «;» séparant les deux déclarations de classes, struct ou union"
-#: parse.y:2508
+#: parse.y:2553
msgid "no bases given following `:'"
msgstr "pas de base donnée après «:»"
-#: parse.y:2539 parse.y:2554
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr "« %D » accès"
-#: parse.y:2544
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr "spécificateurs d'accès multiples"
-#: parse.y:2562
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr "spécificateurs « virtual » multiples"
-#: parse.y:2599
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr "«;» manquant avant l'accolade de droite"
-#: parse.y:2820
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
-msgstr "ISO C++ interdit l'utilisation de parenthèses autour du type pour les dimensions de tableaux avec new"
+msgstr "le C++ ISO interdit l'utilisation de parenthèses autour du type pour les dimensions de tableaux avec new"
-#: parse.y:3107 parse.y:3127 parse.y:3136 parse.y:3165
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
msgid "`%T' is not a class or namespace"
msgstr "« %T » n'est pas une classe ou un espace de noms"
-#: parse.y:3332
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
-msgstr "ISO C++ interdit la déclaration d'étiquette"
+msgstr "le C++ ISO interdit la déclaration d'étiquette"
-#: parse.y:3492
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
-msgstr "ISO C++ interdit les gotos calculés"
+msgstr "le C++ ISO interdit les gotos calculés"
-#: parse.y:3500
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr "l'étiquette doit être suivie d'une déclaration"
-#: parse.y:3545
+#: parse.y:3590
msgid "must have at least one catch per try block"
msgstr "doit avoir au moins un intercepteur par bloc d'essais"
-#: parse.y:3605
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
-msgstr "ISO C++ interdit les déclarations composées à l'intérieur des initialisations"
+msgstr "le C++ ISO interdit les déclarations composées à l'intérieur des initialisations"
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3690 parse.y:3700
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr "«)» possiblement manquante"
-#: parse.y:3793
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr "spécificateur de type omis pour le paramètre"
-#: parse.y:3802
+#: parse.y:3849
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr "« %E» n'est pas un type, utiliser «typename %E » pour en faire un"
-#: parse.y:3804
+#: parse.y:3851
msgid "no type `%D' in `%T'"
msgstr "pas de type « %D » dans « %T »"
-#: parse.y:3807
+#: parse.y:3854
#, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr "spécificateur de type omis pour le paramètre « %E »"
-#: parse.y:3815
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr "« %D » est utilisé comme type, mais n'est pas défini comme type."
-#: cp/pt.c:211
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr "membre de données « %D » ne peut être membre du patron"
-#: cp/pt.c:223
+#: cp/pt.c:296
msgid "invalid member template declaration `%D'"
msgstr "déclaration de membre de patron invalide « %D »"
-#: cp/pt.c:618
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr "spécialisation explicite dans la portée d'un non espace de noms « %D »"
-#: cp/pt.c:630
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr "fermetures de patrons de classe ne sont pas explicitement spécialisées"
-#: cp/pt.c:705
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr "spécialisation de «%#T» dans différents espaces de noms"
-#: cp/pt.c:706
+#: cp/pt.c:793 cp/pt.c:834
msgid " from definition of `%#D'"
msgstr " à partir de la définition de «%#D»"
-#: cp/pt.c:714
+#: cp/pt.c:801
msgid "specialization of `%T' after instantiation"
msgstr "spécialisation de « %T » après instanciation"
-#: cp/pt.c:717
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "spécialisation de « %T » après instanciation"
+
+#: cp/pt.c:860
msgid "explicit specialization of non-template `%T'"
msgstr "spécialisation explicite du non patron « %T »"
-#: cp/pt.c:849
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr "spécialisation de %D après instanciation"
-#: cp/pt.c:952
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1003
+#: cp/pt.c:1147
msgid "`%D' is not a function template"
msgstr "« %D » n'est pas un patron de fonction"
-#: cp/pt.c:1126
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr "template-id « %D » pour «%+D» ne concorde pas avec aucune déclaration de patron"
-#: cp/pt.c:1134
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr "spécialisation de patron amibiguë « %D » pour «%+D»"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1361 cp/pt.c:1435
+#: cp/pt.c:1521 cp/pt.c:1595
msgid "template-id `%D' in declaration of primary template"
msgstr "template-id « %D » dans la déclaration de patron primaire"
-#: cp/pt.c:1374
+#: cp/pt.c:1534
msgid "template parameter list used in explicit instantiation"
msgstr "patron de liste de paramètres utilisé dans une instanciation explicite"
-#: cp/pt.c:1380
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr "définition fournie pour une instanciation explicite"
-#: cp/pt.c:1386
+#: cp/pt.c:1546
msgid "too many template parameter lists in declaration of `%D'"
msgstr "trop de patrons de listes de paramètres dans la déclaration de « %D »"
-#: cp/pt.c:1402
+#: cp/pt.c:1562
msgid "too few template parameter lists in declaration of `%D'"
msgstr "trop peu de patrons de listes de paramètres dans la déclaration de « %D »"
-#: cp/pt.c:1419
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr "spécialisation explicite n'est pas précédée de « template <> »"
-#: cp/pt.c:1432
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr "spécialisation partielle « %D » du patron de fonction"
-#: cp/pt.c:1464
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
msgstr "argument par défaut spécifié dans la spécialisation explicite"
-#: cp/pt.c:1468
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr "spécialisation de patron avec édition de liens C"
@@ -16002,99 +17020,99 @@ msgstr "spécialisation de patron avec édition de liens C"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1556
+#: cp/pt.c:1715
msgid "specialization of implicitly-declared special member function"
msgstr "spécialisation d'un membre spécial d'nue fonction déclaré implicitement"
-#: cp/pt.c:1599
+#: cp/pt.c:1759
msgid "no member function `%D' declared in `%T'"
msgstr "pas de membre de fonction « %D » déclaré dans « %T »"
#. There are two many template parameter lists.
-#: cp/pt.c:1747
+#: cp/pt.c:1909
msgid "too many template parameter lists in declaration of `%T'"
msgstr "trop de patrons de listes de paramètres dans la déclaration de « %T »"
-#: cp/pt.c:1843
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
-msgstr " fait ombrage au paramètre du patron «%#D»"
+msgstr " masque le paramètre du patron «%#D»"
-#: cp/pt.c:2247
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr "paramètres du patron ne sont pas utilisés dans la spécialisation partielle:"
-#: cp/pt.c:2251
+#: cp/pt.c:2413
msgid " `%D'"
msgstr " « %D »"
-#: cp/pt.c:2263
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr "spécialisation partielle « %T » ne spécialise pas aucun patron d'arguments"
-#: cp/pt.c:2288
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr "patron d'argument « %E » implique des paramètres du patron"
-#: cp/pt.c:2331
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr "type « %T » du patron d'argument « %E » dépend des paramètres du patron"
-#: cp/pt.c:2419
+#: cp/pt.c:2582
msgid "no default argument for `%D'"
msgstr "pas d'argument par défaut pour « %D »"
-#: cp/pt.c:2552
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr "patron avec liaison C"
-#: cp/pt.c:2555
+#: cp/pt.c:2738
msgid "template class without a name"
msgstr "patron de classe sans nom"
-#: cp/pt.c:2632
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr "« %D » ne déclare pas un type de patron"
-#: cp/pt.c:2638
+#: cp/pt.c:2821
msgid "template definition of non-template `%#D'"
msgstr "définition de patron d'un non patron «%#D»"
-#: cp/pt.c:2679
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr "attendait %d niveaux de patron de paramètres pour «%#D», obtenu %d"
-#: cp/pt.c:2691
+#: cp/pt.c:2874
msgid "got %d template parameters for `%#D'"
msgstr "a obtenu %d paramètres de patron pour «%#D»"
-#: cp/pt.c:2694
+#: cp/pt.c:2877
msgid "got %d template parameters for `%#T'"
msgstr "a obtenu %d paramètres de patron pour «%#T»"
-#: cp/pt.c:2696
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr " mais %d son requis"
-#: cp/pt.c:2764
+#: cp/pt.c:2962
msgid "`%T' is not a template type"
msgstr "« %T » n'est pas un type patron"
-#: cp/pt.c:2780
+#: cp/pt.c:2978
msgid "previous declaration `%D'"
msgstr "déclaration précédente de « %D »"
-#: cp/pt.c:2781
+#: cp/pt.c:2979
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "utilisé %d patrons paramètre%s au lieu de %d"
-#: cp/pt.c:2797
+#: cp/pt.c:2995
msgid "template parameter `%#D'"
msgstr "patron de paramètre «%#D»"
-#: cp/pt.c:2798
+#: cp/pt.c:2996
msgid "redeclared here as `%#D'"
msgstr "redéclaré ici comme «%#D»"
@@ -16102,714 +17120,724 @@ msgstr "redéclaré ici comme «%#D»"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2808
+#: cp/pt.c:3006
msgid "redefinition of default argument for `%#D'"
msgstr "redéfinition de l'argument par défaut pour «%#D»"
-#: cp/pt.c:2809
+#: cp/pt.c:3007
msgid " original definition appeared here"
msgstr " définition originale apparaît ici"
-#: cp/pt.c:2902
+#: cp/pt.c:3100
#, c-format
msgid "`%E' is not a valid template argument"
msgstr "« %E » n'est pas un argument valide pour le patron"
-#: cp/pt.c:2906
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr "il doit être l'adresse d'une fonction avec lien externe"
-#: cp/pt.c:2908
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr "il doît être l'adresse d'un objet avec lien externe"
-#: cp/pt.c:2912
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr "il doit être un pointeur-vers-un-membre de la forme «&X::Y»"
-#: cp/pt.c:2923
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr "chaîne %E n'est pas un patron d'argument valide parce que c'est l'adresse d'un objet avec lien statique"
-#: cp/pt.c:2935
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr "adresse du non externe « %E » ne peut être utilisé comme patron d'argument"
-#: cp/pt.c:2946
+#: cp/pt.c:3144
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr "la non const « %E » ne peut être utilisé comme un patron d'argument"
-#: cp/pt.c:2953
+#: cp/pt.c:3151
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr "objet « %E » ne peut être utilisé comme un patron d'argument"
-#: cp/pt.c:3333
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr "pour référencer un type de membre de patron de paramètres, utiliser « typename %E »"
-#: cp/pt.c:3346 cp/pt.c:3362 cp/pt.c:3401
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramètres du patron de « %D »"
-#: cp/pt.c:3349
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr " attendait une constante de type « %T », a obtenu « %T »"
-#: cp/pt.c:3353
+#: cp/pt.c:3546
#, c-format
msgid " expected a type, got `%E'"
msgstr " attendait un type, a obtenu « %E »"
-#: cp/pt.c:3365
+#: cp/pt.c:3558
msgid " expected a type, got `%T'"
msgstr " attendait un type, a obtenu « %T »"
-#: cp/pt.c:3367
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr " attendait un patron de classe, a obtenu « %T »"
-#: cp/pt.c:3403
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr " attendait un patron de type « %D », a obtenu « %D »"
-#: cp/pt.c:3425
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr "argument du patron « %T » utilise un type anonyme"
-#: cp/pt.c:3428
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr "argument du patron « %T » utilise un type local « %T »"
-#: cp/pt.c:3463
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "argument du patron « %T » utilise un type anonyme"
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr "ne peut convertir l'argument du patron « %E » vers « %T »"
-#: cp/pt.c:3507
+#: cp/pt.c:3710
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "nombre erroné d'arguments du patron (%d devrait être %d)"
-#: cp/pt.c:3511
+#: cp/pt.c:3714
msgid "provided for `%D'"
msgstr "fournie pour « %D »"
-#: cp/pt.c:3558
+#: cp/pt.c:3761
#, c-format
msgid "template argument %d is invalid"
msgstr "patron de l'argument %d est invalide"
-#: cp/pt.c:3790
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr "non patron utilisé comme patron"
-#: cp/pt.c:3908
+#: cp/pt.c:4139
msgid "`%T' is not a template"
msgstr "« %T » n'est pas un patron"
-#: cp/pt.c:3921
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr "type non patron « %T » utilisé comme un patron"
-#: cp/pt.c:3923
+#: cp/pt.c:4154
msgid "for template declaration `%D'"
msgstr "pour la déclaration du patron « %D »"
-#: cp/pt.c:4486
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr "instantiation de la profondeur du patron excède le maximum de %d (utiliser -ftemplate-depth-NN pour augmenter le maximum) lors de l'instanciation de « %D »"
-#: cp/pt.c:4921
+#: cp/pt.c:5247
msgid "ambiguous class template instantiation for `%#T'"
msgstr "instanciation ambiguë de patron de classe pour «%#T»"
-#: cp/pt.c:4928
+#: cp/pt.c:5254
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:5949 cp/pt.c:6054
+#: cp/pt.c:6284 cp/pt.c:6396
msgid "instantiation of `%D' as type `%T'"
msgstr "instanciation de « %D » comme type « %T »"
-#: cp/pt.c:6096
+#: cp/pt.c:6440
msgid "invalid parameter type `%T'"
msgstr "paramètre invalide pour le type « %T »"
-#: cp/pt.c:6098
+#: cp/pt.c:6442
msgid "in declaration `%D'"
msgstr "dans la déclaration de « %D »"
-#: cp/pt.c:6173
+#: cp/pt.c:6517
msgid "creating pointer to member function of non-class type `%T'"
msgstr "création d'un pointeur vers le membre d'une fonction d'un type non classe « %T »"
-#: cp/pt.c:6336
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr "création d'un tableau de taille zéro"
-#: cp/pt.c:6350
+#: cp/pt.c:6694
#, c-format
msgid "creating array with size zero (`%E')"
msgstr "création d'un tableau de taille zéro (« %E »)"
-#: cp/pt.c:6589
+#: cp/pt.c:6933
msgid "forming reference to void"
msgstr "formation d'une référence en void"
-#: cp/pt.c:6591
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr "formant %s pour référencer le type « %T »"
-#: cp/pt.c:6629
+#: cp/pt.c:6973
msgid "creating pointer to member of non-class type `%T'"
msgstr "création d'un pointeur vers le membre d'un type non classe « %T »"
-#: cp/pt.c:6635
+#: cp/pt.c:6979
msgid "creating pointer to member reference type `%T'"
msgstr "création d'un pointeur vers le membre de référence du type « %T »"
-#: cp/pt.c:6713
+#: cp/pt.c:7057
msgid "creating array of `%T'"
msgstr "création du tableau « %T »"
-#: cp/pt.c:6756
+#: cp/pt.c:7100
msgid "`%T' is not a class, struct, or union type"
msgstr "« %T » n'est pas une classe, struct ou un type d'union"
-#: cp/pt.c:6866
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr "utilisation de « %s » dans le patron"
-#: cp/pt.c:7629
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr "type « %T » composé à partir d'une classe locale n'est pas un patron d'argument valide"
-#: cp/pt.c:7630
+#: cp/pt.c:7976
msgid " trying to instantiate `%D'"
msgstr " tentative d'instanciation « %D »"
-#: cp/pt.c:8060
+#: cp/pt.c:8421
msgid "incomplete type unification"
msgstr "type d'unification incomplète"
-#: cp/pt.c:9027
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr "utilisation de « %s » dans le patron du type d'unification"
-#: cp/pt.c:9447 cp/pt.c:9515
+#: cp/pt.c:9821 cp/pt.c:9893
msgid "explicit instantiation of non-template `%#D'"
msgstr "instanciation explicite d'un non patron «%#D»"
-#: cp/pt.c:9463 cp/pt.c:9510
+#: cp/pt.c:9837 cp/pt.c:9888
msgid "no matching template for `%D' found"
msgstr "non concordance de patron pour « %D » repéré"
-#: cp/pt.c:9469
+#: cp/pt.c:9843
msgid "explicit instantiation of `%#D'"
msgstr "instanciation explicite de «%#D»"
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9486
-msgid "explicit instantiation of `%#D' after"
-msgstr "instanciation explicite de «%#D» après"
-
-#: cp/pt.c:9487 cp/pt.c:9624
-msgid "explicit specialization here"
-msgstr "spécialisation explicite ici"
-
-#: cp/pt.c:9502
+#: cp/pt.c:9880
msgid "duplicate explicit instantiation of `%#D'"
msgstr "duplication d'instanciation explicite de «%#D»"
-#: cp/pt.c:9527
+#: cp/pt.c:9905
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
-msgstr "ISO C++ interdit l'utilisation de « extern » sur instanciations explicites"
+msgstr "le C++ ISO interdit l'utilisation de « extern » sur instanciations explicites"
-#: cp/pt.c:9531 cp/pt.c:9609
+#: cp/pt.c:9909 cp/pt.c:9999
msgid "storage class `%D' applied to template instantiation"
msgstr "classe de stockage « %D » appliqué à l'instanciation du patron"
-#: cp/pt.c:9576
+#: cp/pt.c:9966
msgid "explicit instantiation of non-template type `%T'"
msgstr "instanciation explicite de type non patron « %T »"
-#: cp/pt.c:9590
+#: cp/pt.c:9980
msgid "explicit instantiation of `%#T' before definition of template"
msgstr "instanciation explicite de «%#T» avant la définition de patron"
-#: cp/pt.c:9598
+#: cp/pt.c:9988
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
-msgstr "ISO C++ interdit l'utilisation de « %s » sur instanciations explicites"
+msgstr "le C++ ISO interdit l'utilisation de « %s » sur instanciations explicites"
-#: cp/pt.c:9623
-msgid "explicit instantiation of `%#T' after"
-msgstr "instanciation explicite de «%#T» après"
-
-#: cp/pt.c:9641
+#: cp/pt.c:10032
msgid "duplicate explicit instantiation of `%#T'"
msgstr "duplication d'instanciation explicite de «%#T»"
-#: cp/pt.c:10003
+#: cp/pt.c:10412
msgid "explicit instantiation of `%D' but no definition available"
msgstr "instanciation explicite de « %D » mais pas de définition disponible"
-#: cp/pt.c:10375
+#: cp/pt.c:10815
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr "«%#T» n'a pas un type valide pour un patron de parametre de constante"
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr "-frepo doit être utilisé avec -c"
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr "dépôt mystérieux d'informations dans %s"
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr "ne peut créer le fichier « %s » pour dépôt d'informations"
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr "ne peut utiliser typeid avec -fno-rtti"
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr "doit utiliser #include <typeinfo> avant d'utiliser typeid"
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr "ne peut créer une information pour le type « %T » parce que sa taille est variable"
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr "dynamic_cast de «%#D» vers «%#T» ne pourra jamais réussir"
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr "ne peut effectuer un dynamic_cast « %E » (du type «%#T') vers le type «%#T» (%s)"
-#: cp/search.c:340
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr "« %T » est une base ambiguë de « %T »"
+
+#: cp/search.c:350
msgid "`%T' is an inaccessible base of `%T'"
msgstr "« %T » est une base inaccessible de « %T »"
-#: cp/search.c:350
-msgid "`%T' is an ambiguous base of `%T'"
-msgstr "« %T » est une base ambiguë de « %T »"
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+#, fuzzy
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "affectation au champ statique final « %s » n'est pas dans l'initialiseur de la classe"
-#: cp/search.c:1820
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
msgstr "ajuster les pointeurs pour des retours co-variants"
-#: cp/search.c:1824 cp/search.c:1831
+#: cp/search.c:2054 cp/search.c:2061
msgid "invalid covariant return type for `%#D'"
msgstr "type retourné covariant invalide pour «%#D»"
-#: cp/search.c:1825
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr " écrasant «%#D» (doit être un pointeur ou une référence vers un classe)"
-#: cp/search.c:1832
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
msgstr " écrasant «%#D» (doit utiliser un pointeur ou un référence)"
-#: cp/search.c:1837
+#: cp/search.c:2067
msgid "conflicting return type specified for `%#D'"
msgstr "types retournés conflictuels spécifiés pour «%#D»"
-#: cp/search.c:1838
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr " écrasant «%#D»"
-#: cp/search.c:1847
+#: cp/search.c:2077
#, c-format
msgid "looser throw specifier for `%#F'"
msgstr "a placé un spécificateur pour «%#F»"
-#: cp/search.c:1848
+#: cp/search.c:2078
#, c-format
msgid " overriding `%#F'"
msgstr " écrasant «%#F»"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1938
+#: cp/search.c:2167
msgid "`%#D' cannot be declared"
msgstr "«%#D» ne peut être déclaré"
-#: cp/search.c:1939
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr " alors que «%#D» est déclaré dans la classe de base"
-#: cp/search.c:2080
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr "«%#D» a besoin d'un écraseur final"
-#: cp/semantics.c:911
+#: cp/semantics.c:919
#, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr "type d'opérande asm « %E » ne peut être déterminé"
-#: cp/semantics.c:1053
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
-msgstr "ISO C++ ne permet pas les valeurs retournées nommées"
+msgstr "le C++ ISO ne permet pas les valeurs retournées nommées"
-#: cp/semantics.c:1062
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr "identificateur retourné « %D » est déjà en place"
-#: cp/semantics.c:1070
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr "ne peut redéfinir la valeur retournée par défaut pour les constructeurs"
-#: cp/semantics.c:1137
-msgid "base initializer for `%T'"
-msgstr "initialiseur de base « %T »"
-
-#: cp/semantics.c:1139
-msgid " will be re-ordered to precede member initializations"
-msgstr " sera ré-ordonné pour précéder les initialisations de membre"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr "seuls les constructeurs prennent des initialiseurs de base"
-#: cp/semantics.c:1327
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr "« this » n'est pas disponible pour les membres statiques de fonctions"
-#: cp/semantics.c:1333
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr "utilisation invalide de « ceci » dans un non membre de fonction"
-#: cp/semantics.c:1335
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
-msgstr "utilisation invalide de « ceci » au niveau supérieur"
+msgstr "utilisation invalide de « this » hors de toute fonction"
-#: cp/semantics.c:1373
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr "appel du type « %T » comme une méthode"
-#: cp/semantics.c:1409
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr "spécificateur du destructeur «%T::~%T()» doit avoir des noms concordants"
-#: cp/semantics.c:1415
+#: cp/semantics.c:1425
msgid "`%E' is not of type `%T'"
msgstr "« %E » n'est pas un type « %T »"
-#: cp/semantics.c:1608
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr "patron de type de paramètres doit utiliser le mot clé « class» ou «typename »"
-#: cp/semantics.c:1670
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr "argument invalide pour le patron par défaut"
+
+#: cp/semantics.c:1694
msgid "definition of `%#T' inside template parameter list"
msgstr "définition de «%#T» à l'intérieur d'un patron de liste de paramètres"
-#: cp/semantics.c:1686
+#: cp/semantics.c:1710
msgid "invalid definition of qualified type `%T'"
msgstr "définition invalide d'un type qualifié « %T »"
-#: cp/semantics.c:2039
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "spécification de longueur invalide à %0"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr "classe de base « %T » a des qualificateurs cv"
-#: cp/semantics.c:2072
+#: cp/semantics.c:2093
msgid "multiple declarators in template declaration"
msgstr "déclarateurs multiples dans la déclaration de patron"
-#: cp/spew.c:239
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "Registre '%c' est inconnu"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr "nom d'identificateur « %s » entre en conflit avec la stratégie interne de dénomination de GNU C++"
-#: cp/spew.c:1017 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr "erreur d'analyse syntaxique à la fin de la sauvegarde de la fonction texte"
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+#, fuzzy
+msgid "%Hend of file read inside definition"
+msgstr "PAS n'est pas alloué dans la définition d'un champ"
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr "erreur d'analyse syntaxique dans la spécification de fonction"
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr "corps de fonction pour le constructeur est manquante"
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+#, fuzzy
+msgid "%Hend of file read inside default argument"
+msgstr "« %D » ne peut avoir d'arguments par défaut"
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr "dépendance circulaire dans les arguments par défaut de «%#D»"
-#: cp/spew.c:1435
+#: cp/spew.c:1483
msgid "invalid type `%T' for default argument to `%T'"
msgstr "type invalide « %T » pour l'argument par défaut « %T »"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "%s avant « %s »"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr "%s avant « %c »"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr "%s avant «\\%o»"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, c-format
msgid "%s before `%s' token"
-msgstr "%s avantle jeton « %s »"
+msgstr "%s avant l'élément lexical « %s »"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
-msgstr "n'est pas un lvalue dans %s"
+msgstr "n'est pas un membre gauche dans %s"
-#: cp/tree.c:578
+#: cp/tree.c:562
msgid "`%V' qualifiers cannot be applied to `%T'"
msgstr "qualificateur « %V » ne peut pas être appliqué à « %T »"
-#: cp/tree.c:581
-msgid "ignoring `%V' qualifiers on `%T'"
-msgstr "qualificateurs « %V » ignorés pour « %T »"
-
-#: cp/tree.c:1920
+#: cp/tree.c:1941
#, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes Java"
-#: cp/tree.c:1950
+#: cp/tree.c:1971
#, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr "attribut « %s » peut seulement être appliqué aux définitions de classes"
-#: cp/tree.c:1956
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr "« %s » est obsolète; vtables g++ sont maintenant COM-compatibles par défaut"
-#: cp/tree.c:1981
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr "init_priority demandé n'est pas une constante entière"
-#: cp/tree.c:2002
+#: cp/tree.c:2023
#, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr "peut seulement utiliser l'attribut « %s » sur la portée de fichier de définitions des objets de type de classe"
-#: cp/tree.c:2010
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr "init_priority demandé est hors gamme"
-#: cp/tree.c:2020
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr "init_priority demandé est réservé pour un usage interne"
-#: cp/tree.c:2030
+#: cp/tree.c:2051
#, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "attribut « %s » n'est pas supporté sur cette plate-forme"
-#: cp/typeck.c:518
+#: cp/tree.c:2588
+#, fuzzy, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "vérification de l'arbre: attendait %s, obtenu %s dans %s, à %s:%d"
+
+#: cp/typeck.c:524
#, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
-msgstr "ISO C++ interdit %s entre les pointeurs de type « void * » et les pointeurs de fonctions"
+msgstr "le C++ ISO interdit %s entre les pointeurs de type « void * » et les pointeurs de fonctions"
-#: cp/typeck.c:539
+#: cp/typeck.c:545
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr "%s entre des types distincs de pointeurs « %T » et « %T » manque de transtypage"
-#: cp/typeck.c:1430
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
-msgstr "ISO C++ interdit la conversion de «%#T» en « (...) »"
+msgstr "le C++ ISO interdit la conversion de «%#T» en « (...) »"
-#: cp/typeck.c:1500
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ interdit l'application de « sizeof » sur un type de fonction"
-
-#: cp/typeck.c:1506
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ interdit l'application de « sizeof » sur le membre d'une fonction"
-
-#: cp/typeck.c:1512
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr "ISO C++ interdit l'application de « sizeof» sur un type «void » qui est un type incomplet"
-
-#: cp/typeck.c:1526
-msgid "`sizeof' applied to non-static member"
-msgstr "« sizeof » appliqué à un membre non statique"
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "application invalide de « %s » à une fonction membre"
-#: cp/typeck.c:1531
-msgid "`sizeof' applied to incomplete type `%T'"
-msgstr "« sizeof» appliqué sur un type incomplet «%T »"
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "utilisation invalide de « %s » sur un pointeur vers un membre"
-#: cp/typeck.c:1561
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr "sizeof appliqué sur un champ de bits"
-#: cp/typeck.c:1564
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
-msgstr "ISO C++ interdit l'application de « sizeof » sur l'expression d'un type de fonction"
+msgstr "le C++ ISO interdit l'application de « sizeof » sur l'expression d'un type de fonction"
-#: cp/typeck.c:1711
-msgid "invalid use of non-lvalue array"
-msgstr "utilisation invalide d'un tableau sans lvalue"
-
-#: cp/typeck.c:1817
+#: cp/typeck.c:1759
msgid "deprecated conversion from string constant to `%T'"
msgstr "conversion dépréciée de la chaîne de constante vers « %T »"
-#: cp/typeck.c:1835
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
-msgstr "requête du membre «%T::%D» dans l'expression du type non aggrégat « %T »"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+#, fuzzy
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "requête du membre « %D » dans « %E », lequel n'est pas de type aggrégat « %T »"
+
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "« %D » n'est pas un membre de type « %T »"
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+#, fuzzy
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "utilisation invalide d'un champ non statique « %D »"
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr ""
+
+#: cp/typeck.c:2168
+#, fuzzy
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "« %D » n'est pas un membre de type « %T »"
-#: cp/typeck.c:2030
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "« %D » n'est pas un membre de type « %T »"
+
+#: cp/typeck.c:2199
msgid "destructor specifier `%T::~%T' must have matching names"
msgstr "spécificateur du destructeur «%T::~%T» doit des noms concordants"
-#: cp/typeck.c:2036
+#: cp/typeck.c:2205
msgid "type `%T' has no destructor"
msgstr "type « %T » n'a pas de destructeur"
-#: cp/typeck.c:2053 cp/typeck.c:2135
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "utilisation invalide du type decl «%#D» comme expression"
-
-#: cp/typeck.c:2058
-msgid "invalid use of template `%#D' as expression"
-msgstr "utilisation invalide du patron «%#D» comme expression"
-
-#: cp/typeck.c:2126
-msgid "`%#T' has no member named `%D'"
-msgstr "«%#T» n'a pas de membre nommé « %D »"
-
-#: cp/typeck.c:2176 cp/typeck.c:2205
-msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
-msgstr "offsetof invalide du type non POD «%#T»; utiliser un pointeur vers un membre à la place"
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "« %D » n'est pas une fonction"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2316
+#: cp/typeck.c:2338
msgid "`%T' is not a pointer-to-object type"
msgstr "« %T » n'est pas un type pointeur-vers-objet"
-#: cp/typeck.c:2343
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
msgstr "utilisation invalide de « %s » sur un pointeur vers un membre"
-#: cp/typeck.c:2349
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr "type d'argument invalide"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
-msgstr "ISO C++ interdit le souscriptage de non lvalue de tableau"
+msgstr "le C++ ISO interdit le souscriptage de non lvalue de tableau"
-#: cp/typeck.c:2463
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr "souscriptage de tableau déclaré « register »"
-#: cp/typeck.c:2638 cp/typeck.c:2788
-msgid "pointer to member function called, but not in class scope"
-msgstr "appel d'un pointeur vers un membre de fonction, mais n'est pas dans le champ de la classe"
-
-#: cp/typeck.c:2662
-msgid "object missing in call to method `%D'"
-msgstr "objet manquant dans l'appel de la méthode « %D »"
-
-#: cp/typeck.c:2706
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr "fontion « %D » déclarée surchargée, mais aucune définition n'apparaît pour la résoudre?!?"
-
-#: cp/typeck.c:2786
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr "appel invalide vers un membre de fonction ayant besoin de « ceci » dans le champ du membre statique de la fonction"
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr "objet manquant dans l'usage de « %E »"
-#: cp/typeck.c:2965
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
-msgstr "ISO C++ interdit l'appel de «::main» à partir de l'intérieur du programme"
+msgstr "le C++ ISO interdit l'appel de «::main» depuis l'intérieur du programme"
-#: cp/typeck.c:2990
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr "doit utiliser .* ou ->* pour l'appel de la fonction pointer-to-member dans « %E (...) »"
-#: cp/typeck.c:3003
+#: cp/typeck.c:2712
#, c-format
msgid "`%E' cannot be used as a function"
msgstr "« %E » ne peut être utilisé comme une fonction"
-#: cp/typeck.c:3128
+#: cp/typeck.c:2824
msgid "too many arguments to %s `%+#D'"
-msgstr "trop d'arguments pour %s «%+#D»"
+msgstr "trop d'arguments pour %s « %+#D »"
-#: cp/typeck.c:3169
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr "type de paramètre de la fonction appelée est incomplet"
-#: cp/typeck.c:3236
+#: cp/typeck.c:2928
msgid "too few arguments to %s `%+#D'"
-msgstr "pas assez d'argument pour %s «%+#D»"
+msgstr "pas assez d'argument pour %s « %+#D »"
-#: cp/typeck.c:3364 cp/typeck.c:3374
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr "transtypage vers le type « %T » est assumé à partir de la fonction surchargée"
-#: cp/typeck.c:3434
+#: cp/typeck.c:3126
#, c-format
msgid "division by zero in `%E / 0'"
msgstr "division par zéro dans «%E / 0»"
-#: cp/typeck.c:3436
+#: cp/typeck.c:3128
#, c-format
msgid "division by zero in `%E / 0.'"
msgstr "division par zéro dans «%E / 0.»"
-#: cp/typeck.c:3466
+#: cp/typeck.c:3158
#, c-format
msgid "division by zero in `%E %% 0'"
msgstr "division par zéro dans «%E %% 0»"
-#: cp/typeck.c:3468
+#: cp/typeck.c:3160
#, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "division par zéro dans «%E %% 0.»"
-#: cp/typeck.c:3548
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr "compteur de rotation %s est négatif"
-#: cp/typeck.c:3551
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr "compteur de rotation %s >= largeur du type"
-#: cp/typeck.c:3582 cp/typeck.c:3587 cp/typeck.c:3678 cp/typeck.c:3683
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
-msgstr "ISO C++ interdit la comparaison entre un pointeur et un entier"
+msgstr "le C++ ISO interdit la comparaison entre un pointeur et un entier"
-#: cp/typeck.c:3863
+#: cp/typeck.c:3553
msgid "comparison between types `%#T' and `%#T'"
msgstr "comparaison entre les types «%#T» et «%#T»"
-#: cp/typeck.c:3899
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr "comparaison entre des expressions entières signée et non signée"
-#: cp/typeck.c:3964
+#: cp/typeck.c:3654
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr "opérandes invalides pour les types « %T » et « %T » en binaire « %O »"
@@ -16817,274 +17845,281 @@ msgstr "opérandes invalides pour les types « %T » et « %T » en binaire « %O »"
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:3986
+#: cp/typeck.c:3676
msgid "NULL used in arithmetic"
msgstr "NULL utilisé en arithmétique"
-#: cp/typeck.c:4053
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
-msgstr "ISO C++ interdit l'utilisation d'un pointeur de type « void * » dans une soustraction"
+msgstr "le C++ ISO interdit l'utilisation d'un pointeur de type « void * » dans une soustraction"
-#: cp/typeck.c:4055
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
-msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une fonction dans une soustraction"
+msgstr "le C++ ISO interdit l'utilisation d'un pointeur survers une fonction dans une soustraction"
-#: cp/typeck.c:4057
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
-msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une méthode dans une soustraction"
+msgstr "le C++ ISO interdit l'utilisation d'un pointeur survers une méthode dans une soustraction"
-#: cp/typeck.c:4059
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
-msgstr "ISO C++ interdit l'utilisation d'un pointeur vers un membre dans une soustraction"
+msgstr "le C++ ISO interdit l'utilisation d'un pointeur vers un membre dans une soustraction"
-#: cp/typeck.c:4071
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "utilisation invalide d'un pointeur vers un type incomplet dans un pointeur arithmétique"
-#: cp/typeck.c:4108
-msgid "attempt to take address of bit-field structure member `%D'"
-msgstr "tentative de prise d'adresse du membre « %D » d'une structure de champ de bits"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
-#: cp/typeck.c:4185
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr "prise de l'adresse du temporaire"
-#: cp/typeck.c:4387
+# FIXME: I18N
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
-msgstr "ISO C++ interdit %sing un enum"
+msgstr "le C++ ISO interdit de %ser un enum"
-#: cp/typeck.c:4399
+#: cp/typeck.c:4103
msgid "cannot %s a pointer to incomplete type `%T'"
msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »"
-#: cp/typeck.c:4406
+#: cp/typeck.c:4110
msgid "ISO C++ forbids %sing a pointer of type `%T'"
-msgstr "ISO C++ interdit %utilisation d'un pointeur de type « %T »"
+msgstr "le C++ ISO interdit %s utilisation d'un pointeur de type « %T »"
-#: cp/typeck.c:4431
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
-msgstr "transtypage d'un type non référencé utilisé comme lvalue"
+msgstr "transtypage d'un type non référencé utilisé comme membre gauche"
-#: cp/typeck.c:4465
+#: cp/typeck.c:4169
msgid "invalid use of `--' on bool variable `%D'"
msgstr "utilisation invalide de «--» sur une variable booléenne « %D »"
#. ARM $3.4
-#: cp/typeck.c:4498
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
-msgstr "ISO C++ interdit de prendre l'adresse d'une fonction «::main»"
+msgstr "le C++ ISO interdit de prendre l'adresse d'une fonction «::main»"
#. An expression like &memfn.
-#: cp/typeck.c:4565
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ interdit de prendre l'adress d'un membre de fonction non statique non qualifié pour former un pointeur d'un membre de fonction. Disons «&%T::%D»"
+msgstr "le C++ ISO interdit de prendre l'adress d'un membre de fonction non statique non qualifié pour former un pointeur d'un membre de fonction. Disons «&%T::%D»"
-#: cp/typeck.c:4567
+#: cp/typeck.c:4271
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ interdit de prendre l'adresse d'une borne d'un membre de fontion pour former un membre à la fonction. Disons «&%T::%D»"
+msgstr "le C++ ISO interdit de prendre l'adresse d'une borne d'un membre de fontion pour former un membre à la fonction. Disons «&%T::%D»"
-#: cp/typeck.c:4591
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
-msgstr "ISO C++ interdit de prendre l'adresse du transtypage vers une expression non lvalue"
+msgstr "le C++ ISO interdit de prendre l'adresse du transtypage vers une expression n'etant pas membre gauche"
-#: cp/typeck.c:4607
-msgid "unary `&'"
-msgstr "unaire «&»"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "tentative de prise d'adresse du membre « %D » d'une structure de champ de bits"
-#: cp/typeck.c:4727
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr "prise de l'adresse du destructeur"
-#: cp/typeck.c:4740
+#: cp/typeck.c:4457
msgid "taking address of bound pointer-to-member expression"
msgstr "prise de l'adresse de la borne de l'expression d'un pointeur-vers-un membre"
-#: cp/typeck.c:4756
+#: cp/typeck.c:4473
msgid "cannot create pointer to reference member `%D'"
msgstr "ne peut déclarer un pointeur vers le membre de référence « %D »"
-#: cp/typeck.c:4824
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr "ne peut prendre l'adresse de « ceci », laquelle est une expression rvalue"
-#: cp/typeck.c:4840
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr "adresse requise pour « %D», lequel est déclaré «register »"
-#: cp/typeck.c:5060
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr "static_cast du type « %T » vers le type « %T » fait un transtypage sans constante"
-#: cp/typeck.c:5068
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr "static_cast invalide du type « %T » au type « %T »"
-#: cp/typeck.c:5107
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr "reinterpret_cast invalide d'une expression rvalue de type « %T » vers le type « %T »"
-#: cp/typeck.c:5127
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr "reinterpret_cast de « %T » vers « %T » génère une perte de précision"
-#: cp/typeck.c:5140
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr "reinterpret_cast de « %T » vers « %T » fait un transtypage écartant la constante (ou volatile)"
-#: cp/typeck.c:5149
+#: cp/typeck.c:4952
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
-msgstr "ISO C++ interdit le transtypage entre un pointeur de fonction et un pointeur d'objet"
+msgstr "le C++ ISO interdit le transtypage entre un pointeur de fonction et un pointeur d'objet"
-#: cp/typeck.c:5155
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr "reinterpret_cast invalide à partir du type « %T » vers le type « %T »"
-#: cp/typeck.c:5182
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr "utilisation invalide de const_cast avec le type « %T », lequel n'est pas un pointeur, une référence, ni un type pointeur-vers-données-membre"
-#: cp/typeck.c:5185
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
msgstr "utilisation invalide de const_cast avec le type « %T », lequel est un pointeur ou un référence à un type de fonction"
-#: cp/typeck.c:5208
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr "const_cast invalide de la rvalue du type « %T » vers le type « %T »"
-#: cp/typeck.c:5224
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr "const_cast invalide à partir du type « %T » vers le type « %T »"
-#: cp/typeck.c:5266 cp/typeck.c:5271
+#: cp/typeck.c:5069 cp/typeck.c:5074
msgid "ISO C++ forbids casting to an array type `%T'"
-msgstr "ISO C++ interdit le transtypage vers un type tableau « %T »"
+msgstr "le C++ ISO interdit le transtypage vers un type tableau « %T »"
-#: cp/typeck.c:5279
+#: cp/typeck.c:5082
msgid "invalid cast to function type `%T'"
msgstr "transtypage invalide pour un type de fonction « %T »"
-#: cp/typeck.c:5331
+#: cp/typeck.c:5138
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr "transtypage de « %T » vers « %T » écarte les qualificateurs du type cible du pointeur"
-#: cp/typeck.c:5377
+#: cp/typeck.c:5184
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr "transtypage de « %T » vers « %T » augmente l'alignement requis pour le type ciblé"
-#: cp/typeck.c:5546
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr " lors de l'évaluation de «%Q(%#T, %#T)»"
-#: cp/typeck.c:5588
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
-msgstr "ISO C++ interdit le transtypage d'un type non référencé utilisé comme lvalue"
+msgstr "le C++ ISO interdit le transtypage d'un type non référencé utilisé comme membre gauche"
-#: cp/typeck.c:5659
+#: cp/typeck.c:5463
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr "type incompatible dans l'affectation de « %T » vers « %T »"
-#: cp/typeck.c:5666
+#: cp/typeck.c:5470
msgid "ISO C++ forbids assignment of arrays"
-msgstr "ISO C++ interdit l'affectation de tableaux"
+msgstr "le C++ ISO interdit l'affectation de tableaux"
-#: cp/typeck.c:5809
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
msgstr " dans la conversion d'un pointeur vers un membre de fonction"
-#: cp/typeck.c:5817
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
msgstr " dans la conversion d'un pointeur vers un membre"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5828 cp/typeck.c:5847
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr "pointeur vers un membre transtypé via la base virtuelle « %T » de « %T »"
-#: cp/typeck.c:5851
+#: cp/typeck.c:5619
msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr "conversion de pointeur à membre à l'aide de la base virtuelle « %T » vers « %T »"
-#: cp/typeck.c:5921
+#: cp/typeck.c:5695
msgid "invalid conversion to type `%T' from type `%T'"
msgstr "conversion invalide vers un type « %T » à partir du type « %T »"
-#: cp/typeck.c:6086
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr "passage d'un NULL utilisé pour un non pointeur %s %P de « %D »"
-#: cp/typeck.c:6089
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
msgstr "%s vers un type non pointeur « %T » à partir d'un NULL"
-#: cp/typeck.c:6097
+#: cp/typeck.c:5871
msgid "passing `%T' for %s %P of `%D'"
msgstr "passage « %T » pour %s %P de « %D »"
-#: cp/typeck.c:6100
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr "%s vers « %T » à partir de « %T »"
-#: cp/typeck.c:6110
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr "passage de valeur négative « %E » pour %s %P de « %D »"
-#: cp/typeck.c:6113
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr "%s de valeur négative « %E » vers « %T »"
-#: cp/typeck.c:6200
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr "ne peut convertir « %T » à « %T » pour l'argument « %P » vers « %D »"
-#: cp/typeck.c:6203
+#: cp/typeck.c:5985
msgid "cannot convert `%T' to `%T' in %s"
msgstr "ne peut convertir « %T » vers « %T » dans %s"
-#: cp/typeck.c:6290 cp/typeck.c:6292
+#: cp/typeck.c:6073 cp/typeck.c:6075
msgid "in passing argument %P of `%+D'"
msgstr "dans le passage de l'argument %P de «%+D»"
-#: cp/typeck.c:6406
+#: cp/typeck.c:6190
msgid "returning reference to temporary"
msgstr "retourné la référence vers le temporaire"
-#: cp/typeck.c:6413
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
-msgstr "référence vers un non lvalue a été retourné"
+msgstr "une référence vers quelque chose n'étant pas un membre gauche a été retourné"
-#: cp/typeck.c:6425
+#: cp/typeck.c:6209
msgid "reference to local variable `%D' returned"
msgstr "référence vers une variable locale « %D » retourné"
-#: cp/typeck.c:6428
+#: cp/typeck.c:6212
msgid "address of local variable `%D' returned"
msgstr "adresse d'une variable locale « %D » retournée"
-#: cp/typeck.c:6459
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr "retourné une valeur du destructeur"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6467
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr "ne peut retourner d'un handler d'une fonction try-block d'un constructeur"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6470
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr "retourné une valeur d'un constructeur"
-#: cp/typeck.c:6487
+#: cp/typeck.c:6271
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr "déclaration d'un retour sans valeur, dans la fonction déclarée avec un type retourné non void"
-#: cp/typeck.c:6503
+#: cp/typeck.c:6287
msgid "return-statement with a value, in function declared with a void return type"
msgstr "déclaration d'un retour sans valeur, dans la fonction déclarée avec un type retourné void"
-#: cp/typeck.c:6524
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr "« operator new» ne doit pas retourner NULL à moins qu'il ne soit déclaré «throw() » (ou -fcheck-new est utilisée)"
@@ -17092,229 +18127,183 @@ msgstr "« operator new» ne doit pas retourner NULL à moins qu'il ne soit déclaré
msgid "type `%T' is not a base type for type `%T'"
msgstr "type « %T » n'est pas un type de base pour le type « %T »"
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr "ne peut déclarer la variable « %D » comme étant de type « %T »"
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr "ne peut déclarer la paramètre « %D » comme étant de type « %T »"
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
msgid "cannot declare field `%D' to be of type `%T'"
msgstr "ne peut déclarer la champ « %D » comme étant de type « %T »"
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
msgid "invalid return type for member function `%#D'"
msgstr "type retourné invalide pour le membre de la fonction «%#D»"
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
msgid "invalid return type for function `%#D'"
msgstr "type retourné invalide pour la fonction «%#D»"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
msgid "cannot allocate an object of type `%T'"
msgstr "ne peut allouer un objet de type « %T »"
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr " parce que les fonctions viruelles suivantes sont abstraites:"
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr "\t%#D"
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr " depuis que le type « %T » a des fonctions virtuelles abstraites"
-#: cp/typeck2.c:213
-msgid "invalid use of undefined type `%#T'"
-msgstr "utilisation invalide d'un type indéfini «%#T»"
-
-#: cp/typeck2.c:214
-msgid "forward declaration of `%#T'"
-msgstr "déclaration par l'avant (forward) de «%#T»"
-
-#: cp/typeck2.c:218
-msgid "invalid use of `%T'"
-msgstr "utilisation invalide de « %T »"
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr "utilisation invalide de membre (avez-vous oublié le «&» ?)"
-
-#: cp/typeck2.c:236
-msgid "invalid use of template type parameter"
-msgstr "utilisation invalide de patron de type de paramètres"
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr "adresse de la fonction surchargée sans information contextuelle de type"
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr "fonction surchargée sans information contextuelle de type"
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr "information contextuelle insuffisante pour déterminer le type"
-
-#: cp/typeck2.c:301
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr "syntaxe de constructeur utilisé mais aucun constructeur déclaré pour le type « %T »"
-#: cp/typeck2.c:311
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr "initialiseur de construction de liste invalide pour l'objet de classe dérivée « %D »"
-
-#: cp/typeck2.c:313
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr "initialiseur de construction de liste invalide pour l'objet de classe polymorphique « %D »"
-
-#: cp/typeck2.c:316 cp/typeck2.c:322 cp/typeck2.c:328
-msgid "initializer list construction invalid for `%D'"
-msgstr "construction de la liste d'initialiseurs invalide pour « %D »"
-
-#: cp/typeck2.c:317
-msgid "due to the presence of a constructor"
-msgstr "en raison de la présence d'un constructeur"
-
-#: cp/typeck2.c:323 cp/typeck2.c:329
-msgid "due to non-public access of member `%D'"
-msgstr "en raison d'un accès non public du membre « %D »"
-
-#: cp/typeck2.c:341
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
msgstr "expression virgule utilsée pour initialiser la valeur de retour"
-#: cp/typeck2.c:350
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
msgstr "ne peut initialiser les tableaux en utilisant la syntaxe"
-#: cp/typeck2.c:412
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr "ISO C++ interdit les expressions d'initialiseur d'aggrégat de non constante"
-
-#: cp/typeck2.c:498
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
msgstr "initialise le tableau avec la liste des paramètres"
-#: cp/typeck2.c:554
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
-msgstr "initialiseur pour la variable scalaire requiert un élément"
+msgstr "l'initialisation de variable scalaire requiert un élément"
-#: cp/typeck2.c:561
+#: cp/typeck2.c:536
msgid "braces around scalar initializer for `%T'"
msgstr "accolades autour de l'initialiseur scalaire pour « %T »"
-#: cp/typeck2.c:564
+#: cp/typeck2.c:539
msgid "ignoring extra initializers for `%T'"
-msgstr "initialiseurs superflus ignorés pour « %T »"
+msgstr "initialiseurs superflus pour « %T » ignorés"
-#: cp/typeck2.c:576
+#: cp/typeck2.c:551
msgid "variable-sized object of type `%T' may not be initialized"
-msgstr "objet de taille variable de type « %T » peut ne pas être initialisé"
+msgstr "un objet de taille variable de type « %T » peut ne pas être initialisé"
-#: cp/typeck2.c:586
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr "sous-objet de type « %T » doit être initialisé par un constructeur, non pas par « %E »"
-#: cp/typeck2.c:652
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
-msgstr "aggrégat a un initialiseur partiellement entourée d'accolades"
+msgstr "aggrégat a un initialiseur partiellement entouré d'accolades"
-#: cp/typeck2.c:690 cp/typeck2.c:791
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
-msgstr "initialiseur étiquetée non trivial"
+msgstr "initialiseur étiqueté de manière non trivial"
-#: cp/typeck2.c:707
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
-msgstr "initialiseurs non vides pour le tableau d'éléments vides"
+msgstr "initialiseurs non vides pour un tableau d'éléments vides"
-#: cp/typeck2.c:757
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
msgstr "liste d'initialiseurs pour les objets de classe avec classes de base virtuelles"
-#: cp/typeck2.c:763
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
msgstr "liste d'initialiseurs pour les objets de classe avec classes de base"
-#: cp/typeck2.c:769
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
msgstr "liste d'initialiseurs pour objet utilisant des fonctions virtuelles"
-#: cp/typeck2.c:832 cp/typeck2.c:849
+#: cp/typeck2.c:811 cp/typeck2.c:827
msgid "missing initializer for member `%D'"
msgstr "initialiseur manquant pour le membre « %D »"
-#: cp/typeck2.c:837
+#: cp/typeck2.c:816
msgid "uninitialized const member `%D'"
msgstr "membre de constante non initialisé pour « %D »"
-#: cp/typeck2.c:840
+#: cp/typeck2.c:818
msgid "member `%D' with uninitialized const fields"
msgstr "membre « %D » avec des champs de constantes non initialisée"
-#: cp/typeck2.c:843
+#: cp/typeck2.c:821
msgid "member `%D' is uninitialized reference"
msgstr "membre « %D » est une référence non initialisée"
-#: cp/typeck2.c:886
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
msgstr "valeur index au lieu du nom de champ dans l'initialiseur d'union"
-#: cp/typeck2.c:898
+#: cp/typeck2.c:880
msgid "no field `%D' in union being initialized"
msgstr "pas de champ « %D » dans l'aggrégat n'a été initialisé"
-#: cp/typeck2.c:906
+#: cp/typeck2.c:888
msgid "union `%T' with no named members cannot be initialized"
msgstr "aggrégat « %T » sans mambre nommé ne peut être initialisé"
-#: cp/typeck2.c:942
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
msgstr "éléments en excès dans l'initialiseur d'aggrégat"
-#: cp/typeck2.c:1047
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
msgstr "délégation de pointeur circulaire détecté"
-#: cp/typeck2.c:1060
+#: cp/typeck2.c:1051
msgid "base operand of `->' has non-pointer type `%T'"
msgstr "l'opérande de base de «->» a un type non pointeur « %T »"
-#: cp/typeck2.c:1074
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
msgstr "résultat de « operator->() » laisse comme résultat un non pointeur"
-#: cp/typeck2.c:1076
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
msgstr "l'opérande de base de «->» n'est pas un pointeur"
-#: cp/typeck2.c:1142
+#: cp/typeck2.c:1133
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr "« %E » ne peut être utilisé comme pointeur de membre, alors qu'il est de type « %T »"
-#: cp/typeck2.c:1149
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr "ne peut appliquer un pointeur de membre « %E » à « %E », lequel n'est pas un type d'aggrégat « %T »"
-#: cp/typeck2.c:1158
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr "type du membre «%T::» incompatible avec le type d'objet « %T »"
-#: cp/typeck2.c:1195
+#: cp/typeck2.c:1186
msgid "`%T' fails to be a typedef or built-in type"
msgstr "« %T » a échoué à devenir un typedef ou un type construit interne"
-#: cp/typeck2.c:1268
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
-msgstr "ISO C++ interdit la définition de types à l'intérieur de %s"
+msgstr "le C++ ISO interdit la définition de types à l'intérieur de %s"
+
+#: cp/typeck2.c:1384
+#, fuzzy
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »"
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "ne peut utiliser %s comme pointeur sur un type incomplet « %T »"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3854
+#: cp/cp-tree.h:3936
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s est déprécié, SVP voir la documentation pour les détails"
@@ -17372,11 +18361,13 @@ msgid "Export functions even if they can be inlined"
msgstr "Exporter les fonctions même si elles peuvent être inline"
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
+#, fuzzy
+msgid "Only emit explicit template instantiations"
msgstr "Produire seulement des instanciations explicites du patron"
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
msgstr "Produire les instanciations explicites de patrons en ligne"
#: cp/lang-options.h:84
@@ -17479,65 +18470,65 @@ msgstr "Ne pas avertir lorsque des fonctions amis sans patron sont déclarés à l'
msgid "Don't announce deprecation of compiler features"
msgstr "Ne pas annoncer la dépréciation des options du compilateur"
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
-msgstr "note:"
+msgstr "note :"
-#: f/bad.c:390
+#: f/bad.c:391
msgid "warning:"
-msgstr "AVERTISSEMENT:"
+msgstr "avertissement :"
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
-msgstr "FATAL:"
+msgstr "fatal :"
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
-msgstr "(poursuite)"
+msgstr "(suite) :"
-#: f/bad.c:486 f/bad.c:504
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
-msgstr "[RAPPORTER L'ANOMALIE!!]"
+msgstr "[RAPPORTER L'ANOMALIE!!] %"
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
msgstr "[RAPPORTER L'ANOMALIE!!]"
-#: f/com.c:3122
+#: f/com.c:3132
#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr "l'étiquette affectée ne peut s'insérer dans « %A » à %0 - utilisation d'un voisinage plus grand"
-#: f/com.c:11606
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
msgstr "AUCUN type ENTIER ne peut tenir un pointeur sur cette configuration"
-#: f/com.c:11831
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
-msgstr "configuration: REAL, INTEGER, et LOGICAL ont %d bits,"
+msgstr "configuration : REAL, INTEGER, et LOGICAL ont %d bits,"
-#: f/com.c:11833
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
-msgstr "et les pointeura ont %d bits, mais g77 ne fonctionne pas encore"
+msgstr "et les pointeurs ont %d bits, mais g77 ne fonctionne pas encore"
-#: f/com.c:11835
+#: f/com.c:11848
msgid "properly unless they all are 32 bits wide"
msgstr "correctement à moins qu'ils aient tous 32 bits de largeur"
-#: f/com.c:11836
+#: f/com.c:11849
msgid "Please keep this in mind before you report bugs."
msgstr "SVP garder cela en tête avant de rapporter les anomalies."
#. I/O will probably crash.
-#: f/com.c:11844
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr "configuration: char * contient %d bits, mais ftnlen seulement %d"
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11853
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
@@ -17546,68 +18537,68 @@ msgstr ""
"configuration: char * contient %d bits, mais INTEGER seulement %d --\n"
" déclaration ASSIGN pourrait échouer"
-#: f/com.c:13687
+#: f/com.c:13681
msgid "In statement function"
msgstr "Dans la déclaration de fonction"
-#: f/com.c:13697
+#: f/com.c:13691
msgid "Outside of any program unit:\n"
msgstr "En dehors de toute unité de programme:\n"
-#: f/com.c:15386
+#: f/com.c:15320
#, no-c-format
msgid "%A from %B at %0%C"
msgstr "%A à partir de %B à %0%C"
-#: f/com.c:15563
+#: f/com.c:15497
msgid "directory name must immediately follow -I"
msgstr "nom du répertoire doit suivre immédiatement -I"
-#: f/com.c:15706
+#: f/com.c:15640
#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr "À %0, fichier INCLUDE %A existe mais n'est pas lisible"
-#: f/com.c:15741
+#: f/com.c:15675
#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr "À %0, imbrication du INCLUDE est trop profonde"
-#: f/expr.c:9613
+#: f/expr.c:9614
#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr "Deux opérateurs arithmétiques dans la rangée à %0 et %1 -- utiliser des parenthèses"
-#: f/expr.c:9663
+#: f/expr.c:9664
#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
msgstr "L'opérateur à %0 a une précédence plus basse que celui à %1 -- utiliser des parenthèses"
-#: f/expr.c:10524
+#: f/expr.c:10525
#, no-c-format
msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr "Utiliser .EQV./.NEQV. au lieu de .EQ./.NE. à %0 pour les opérandes LOGICAL à %1 et %2"
-#: f/expr.c:10895
+#: f/expr.c:10896
#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
msgstr "Opérande non supportée pour ** à %1 -- conversion à INTEGER par défaut"
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr "débordement de la liste d'arguments de sortie pour « %s »"
-#: f/g77spec.c:395
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr "--driver n'est plus supporté"
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, c-format
msgid "argument to `%s' missing"
msgstr "argument pour « %s » est manquant"
-#: f/g77spec.c:412
+#: f/g77spec.c:390
msgid "no input files; unwilling to write output files"
msgstr "aucun fichier d'entrée; pas d'accord pour écrire dans les fichiers de sortie"
@@ -17616,121 +18607,103 @@ msgstr "aucun fichier d'entrée; pas d'accord pour écrire dans les fichiers de so
msgid "Implicit declaration of `%A' at %0"
msgstr "déclaration implicite de « %A » à %0"
-#: f/lex.c:274
-#, no-c-format
-msgid "The meaning of `\\x' (at %0) varies with -traditional"
-msgstr "La signification de «\\x» (à %0) varie avec l'option -traditional"
-
-#: f/lex.c:325
-#, no-c-format
-msgid "The meaning of `\\a' (at %0) varies with -traditional"
-msgstr "La signification de «\\a»(à %0) varie avec -traditional"
-
-#: f/lex.c:355
+#: f/lex.c:326
#, no-c-format
msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
-msgstr "séquence d'échappement non conforme au standard ISO-C «\\%A» à %0"
+msgstr "séquence d'échappement non conforme au standard C ISO «\\%A» à %0"
-#: f/lex.c:374
+#: f/lex.c:345
#, no-c-format
msgid "Unknown escape sequence `\\%A' at %0"
msgstr "séquence d'échappement inconnue «\\%A» à %0"
-#: f/lex.c:383
+#: f/lex.c:354
#, no-c-format
msgid "Unterminated escape sequence `\\' at %0"
msgstr "séquence d'échappement non terminée «\\» at %0"
-#: f/lex.c:394
+#: f/lex.c:365
#, no-c-format
msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
msgstr "séquence d'échappement inconnue «\\» suivi par le code de caractères 0x%A at %0"
-#: f/lex.c:422
+#: f/lex.c:393
#, no-c-format
msgid "\\x used at %0 with no following hex digits"
msgstr "\\x utilisé à %0 sans être suivi des chiffres hexdécimaux"
-#: f/lex.c:436
+#: f/lex.c:407
#, no-c-format
msgid "Hex escape at %0 out of range"
msgstr "échappement hexadécimal à %0 hors gamme"
-#: f/lex.c:470
+#: f/lex.c:441
#, no-c-format
msgid "Escape sequence at %0 out of range for character"
msgstr "séquence d'échappement à %0 hors gamme pour le type caractère"
-#: f/lex.c:593
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "la signification de «\\x» varie avec l'option -traditional"
-
-#: f/lex.c:630
+#: f/lex.c:595
msgid "hex escape out of range"
msgstr "échappement hexadécimal hors gamme"
-#: f/lex.c:676
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "le sens de «\\a» varie avec -traditional"
-
-#: f/lex.c:692
+#: f/lex.c:648
#, c-format
msgid "non-ANSI-standard escape sequence, `\\%c'"
msgstr "séquence d'échappement n'est pas ANSI standard: «\\%c'"
-#: f/lex.c:705
+#: f/lex.c:661
#, c-format
msgid "non-ISO escape sequence `\\%c'"
msgstr "séquence d'échappement non ISO «\\%c'"
-#: f/lex.c:709
+#: f/lex.c:665
#, c-format
msgid "unknown escape sequence `\\%c'"
msgstr "séquence d'échappement inconnue: «\\%c'"
-#: f/lex.c:711
+#: f/lex.c:667
#, c-format
msgid "unknown escape sequence: `\\' followed by char code 0x%x"
msgstr "séquence d'échappement inconnue: «\\» suivi par le code de caractères 0x%x"
-#: f/lex.c:788
+#: f/lex.c:744
msgid "badly formed directive -- no closing quote"
msgstr "directive mal composée -- pas de guillement ou d'apostrophe de fermeture"
-#: f/lex.c:846
+#: f/lex.c:802
msgid "#-lines for entering and leaving files don't match"
msgstr "#-lines pour entrer et quitter les fichiers ne concordent pas"
-#: f/lex.c:1008
+#: f/lex.c:964
msgid "bad directive -- missing close-quote"
msgstr "directive erronée -- manque un apostrophe ou un guillemet de fermeture"
-#: f/lex.c:1122
+#: f/lex.c:1078
#, c-format
msgid "ignoring pragma: %s"
msgstr "pragma: %s ignoré"
-#: f/lex.c:1200
+#: f/lex.c:1156
msgid "invalid #ident"
msgstr "#ident invalide"
-#: f/lex.c:1217
+#: f/lex.c:1173
msgid "undefined or invalid # directive"
msgstr "directive # non définie ou invalide"
-#: f/lex.c:1273
+#: f/lex.c:1229
msgid "invalid #line"
msgstr "#line invalide"
-#: f/lex.c:1329 f/lex.c:1373
+#: f/lex.c:1285 f/lex.c:1329
msgid "use `#line ...' instead of `# ...' in first line"
msgstr "utiliser « #line ... » au lieu de « # ... » dans la première ligne"
-#: f/lex.c:1383
+#: f/lex.c:1339
msgid "invalid #-line"
msgstr "#-line invalide"
-#: f/lex.c:1476
+#: f/lex.c:1432
#, no-c-format
msgid "Null character at %0 -- line ignored"
msgstr "caractère null à %0 -- ligne ignorée"
@@ -17740,21 +18713,25 @@ msgstr "caractère null à %0 -- ligne ignorée"
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr "INCLUDE à %0 n'est pas la seule déclaration sur la ligne source"
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr "spécificateur dans ASSIGN FORMAT est trop petit"
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2636
+#: f/ste.c:2624
#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr "SÉLECTION du CASE sur un type CHARACTER (à %0) n'est pas supporté -- désolé"
-#: f/ste.c:2965
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr "ASSIGN à la variable est trop petit"
-#: f/ste.c:2993
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr "variable cible par ASSIGN GOTO est trop petite"
@@ -17763,21 +18740,21 @@ msgstr "variable cible par ASSIGN GOTO est trop petite"
msgid "Local adjustable symbol `%A' at %0"
msgstr "Symbole local ajustable « %A » à %0"
-#: f/target.c:2560
+#: f/target.c:2550
msgid "data initializer on host with different endianness"
msgstr "initialiseur de données sur l'hôte a un alignement des octets différent (endian)"
-#: f/top.c:238
+#: f/top.c:237
#, c-format
msgid "%s no longer supported -- try -fvxt"
msgstr "%s n'est plus supporté -- essayer -fvxt"
-#: f/top.c:240
+#: f/top.c:239
#, c-format
msgid "%s no longer supported -- try -fno-vxt -ff90"
msgstr "%s n'est plus supporté -- essayer -fno-vxt -ff90"
-#: f/top.c:308 f/top.c:310
+#: f/top.c:307 f/top.c:309
#, c-format
msgid "%s disabled, use normal debugging flags"
msgstr "%s désactivé, utiliser le fanion normal de mise au point"
@@ -18103,7 +19080,7 @@ msgstr "constante caractère de longueur zéro à %0"
#: f/bad.def:45
#, no-c-format
msgid "Invalid token at %0 in expression or subexpression at %1"
-msgstr "jeton invalide à %0 dans l'expression ou la sous-expression à %0"
+msgstr "élément lexical invalide à %0 dans l'expression ou la sous-expression à %1"
#: f/bad.def:48
#, no-c-format
@@ -18148,7 +19125,7 @@ msgstr "Numéro d'étiquette à %0 n'est pas entre les bornes 1-99999"
#: f/bad.def:77
#, no-c-format
msgid "At %0, '!' and '/*' are not valid comment delimiters"
-msgstr "À %0, «!» et «/*» ne sont pas des délimiteurs de commentaire valides"
+msgstr "À %0, « ! » et « /* » ne sont pas des délimiteurs de commentaire valides"
#: f/bad.def:80
#, no-c-format
@@ -18208,7 +19185,7 @@ msgstr "Opérateur binaire attendu entre les expressions à %0 et à %1"
#: f/bad.def:253
#, no-c-format
msgid "Semicolon at %0 is an invalid token"
-msgstr "«;» à %0 est une jeton invalide"
+msgstr "Point-virgule (« ; ») en %0 est un élément lexical invalide"
#: f/bad.def:271
#, no-c-format
@@ -18713,12 +19690,12 @@ msgstr "Tentative de spécifier une seconde valeur initial pour « %A » à %0"
#: f/bad.def:886
#, no-c-format
msgid "Too few initial values in list of initializers for `%A' at %0"
-msgstr "Trop peu de valeurs initiales dans la liste des initialisateurs pour « %A » à %0"
+msgstr "Trop peu de valeurs initiales dans la liste des initialisations pour « %A » à %0"
#: f/bad.def:889
#, no-c-format
msgid "Too many initial values in list of initializers starting at %0"
-msgstr "Trop de valeurs initiales dans la liste des initialisateurs débutant à %0"
+msgstr "Trop de valeurs initiales dans la liste des initialisations débutant à %0"
#: f/bad.def:892
#, no-c-format
@@ -18858,7 +19835,7 @@ msgstr "caractère initial « %A » est en minuscule dans le nom de symbole à %0"
#: f/bad.def:1013
#, no-c-format
msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
-msgstr "nom de liste n'est pas adéquatement supporté par la librairie d'exécution pour les fichiers source avec une casse préservée"
+msgstr "nom de liste n'est pas adéquatement supporté par la bibliothèque d'exécution pour les fichiers source avec une casse préservée"
#: f/bad.def:1016
#, no-c-format
@@ -18992,319 +19969,325 @@ msgstr "Dans la liste de noms"
msgid "In anything"
msgstr "Dans n'importe quoi"
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "erreur interne dans check-init: arbre de code n'est pas implanté: %s"
-#: java/check-init.c:988
+#: java/check-init.c:990
#, c-format
msgid "final field '%s' may not have been initialized"
msgstr "champ final « %s » peut ne pas avoir été initialisé"
-#: java/class.c:568 java/class.c:593
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr "erreur interne - trop de type d'interface"
-#: java/class.c:744
+#: java/class.c:677
msgid "bad method signature"
msgstr "méthode de signature erronée"
-#: java/class.c:793
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr "attribut ConstantValue mal positionné (n'est dans aucun champ)"
-#: java/class.c:795
+#: java/class.c:728
#, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr "duplication de l'attribut ConstanValue pour le champ « %s »"
-#: java/class.c:806
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr "attribut ConstanValue du champ « %s » a un type erroné"
-#: java/class.c:1170
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr "champ « %s » n'a pas été repéré dans la classe"
-#: java/class.c:1432
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr "méthode abstraite dans une classe non abstraite"
-#: java/class.c:2133
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr "méthode non statique « %s » écrase la méthode statique"
-#: java/decl.c:1515
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr "Dans %s: chevauchement de variable et plage d'exception à %d"
-#: java/decl.c:1603
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr "type erroné dans les paramètres d'informations de mise au point"
-#: java/decl.c:1613
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr "plage PC erroné pour les infos de débug pour la var. locale « %s »"
-#: java/expr.c:549
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr "sous débordement de la pile - opération dup*"
-#: java/expr.c:1541
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr "référence « %s » est ambigue: apparaît dans l'interface « %s » et l'interface « %s »"
-#: java/expr.c:1570
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr "champ « %s » n'a pas été trouvé"
-#: java/expr.c:1725
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr "instruction ret n'est pas implantée"
-#: java/expr.c:1862
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr "méthode « %s » n'a pas été repéré dans la classe"
-#: java/expr.c:2066
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr "échec de repérage de la classe « %s »"
-#: java/expr.c:2078
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "classe « %s » n'a pas de méthode nommée « %s » concordant avec la signature « %s »"
-#: java/expr.c:2088
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr "invocation statique sur un méthode non statique"
-#: java/expr.c:2093
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr "invocation statique sur un méthode abstraite"
-#: java/expr.c:2101
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr "invocation non statique sur un méthode statique"
-#: java/expr.c:2386
+#: java/expr.c:2396
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "champ « %s » manquant dans « %s »"
-#: java/expr.c:2392
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "aignature ne concorde pas pour le champ « %s » dans « %s »"
-#: java/expr.c:2415
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr "affectation au champ final « %s » n'est pas le champ de la classe"
-#: java/expr.c:2420
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr "affectation au champ statique final « %s » n'est pas dans l'initialiseur de la classe"
-#: java/expr.c:2427
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr "affectation au champ final « %s » n'est pas dans le constructeur"
-#: java/expr.c:2665
+#: java/expr.c:2684
#, c-format
msgid "can't expand %s"
msgstr "ne peut faire l'expansion de %s"
-#: java/expr.c:2841
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr "PC invalide dans la numéro de ligne de la table"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2886
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "bytcode n'est pas atteignable à partir de %d jusqu'à %d"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2923
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "bytcode n'est pas atteignable à partir de %d jusqu'à la fin de la méthode."
#. duplicate code from LOAD macro
-#: java/expr.c:3237
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr "sous-instruction très large non reconnue"
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr "fichier source de la classe « %s » est plus récent que son fichier de classe concordant. Fichier source « %s » utilisé à la place."
-#: java/jcf-parse.c:376
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr "constante chaîne erronée"
-#: java/jcf-parse.c:394
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "valeur %d de type de constante erronée, index %d"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:528
#, c-format
msgid "can't reopen %s"
msgstr "ne peut ré-ouvrir %s"
-#: java/jcf-parse.c:571
+#: java/jcf-parse.c:533
#, c-format
msgid "can't close %s"
msgstr "ne peut fermer %s"
-#: java/jcf-parse.c:653
+#: java/jcf-parse.c:619
#, c-format
msgid "cannot find file for class %s"
msgstr "ne peut repérer le fichier pour la classe %s."
-#: java/jcf-parse.c:665
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
msgstr "n'est pas un fichier Java .class valide"
-#: java/jcf-parse.c:668
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
msgstr "error lors de l'analyse syntaxique du lots de constantes"
-#: java/jcf-parse.c:671
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "erreur dans l'entrée #%d du lot de constantes\n"
#. FIXME - where was first time
-#: java/jcf-parse.c:683
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "lecture de la classe %s pour la seconde fois depuis %s"
-#: java/jcf-parse.c:701
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr "erreur lors de l'analyse syntaxique des champs"
-#: java/jcf-parse.c:704
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr "erreur lors de l'analyse syntaxique des méthodes"
-#: java/jcf-parse.c:707
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr "erreur lors de l'analyse syntaxique des attributs"
-#: java/jcf-parse.c:721
+#: java/jcf-parse.c:687
#, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr "« java.lang.Object» qui a été repéré dans « %s » n'avait pas l'attribut spécial de longueur zéro «gnu.gcj.gcj-compiled». Cela généralement signifie que le chemin d'accès aux classes est incorrectement initialisé. Utiliser «info gcj \"Input Options\" » pour accéder aux informations décrivant comment initialiser le chemin d'accès des classes."
-#: java/jcf-parse.c:811
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr "attribut Code manquant"
-#: java/jcf-parse.c:1050
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr "fichier source vu deux fois sur la ligne de commande et ne sera compilé une seule fois"
-#: java/jcf-parse.c:1066
+#: java/jcf-parse.c:1030
msgid "no input file specified"
msgstr "aucun fichier n'a été spécifié à l'entrée"
-#: java/jcf-parse.c:1095
+#: java/jcf-parse.c:1059
#, c-format
msgid "can't close input file %s"
msgstr "ne peut fermer le fichier d'entrée %s"
-#: java/jcf-parse.c:1132
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr "fichier zip/jar erroné %s"
-#: java/jcf-write.c:2630
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "erreur interne dans generate_bytecode_insn - arbre de code n'est pas implanté: %s"
-#: java/jcf-write.c:2937
+#: java/jcf-write.c:2988
msgid "field initializer type mismatch"
msgstr "type de initialiseur du champ ne concorde pas"
-#: java/jcf-write.c:3346
+#: java/jcf-write.c:3419
#, c-format
msgid "can't create directory %s"
msgstr "ne peut créer le répertoire %s"
-#: java/jv-scan.c:183
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr "ne peut créer %s"
+
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr "seule une des options «--print-main», «--list-class» et «--complexity» est permise"
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, c-format
msgid "can't open output file `%s'"
msgstr "ne peut ouvrir le fichier de sortie « %s »"
-#: java/jv-scan.c:220
+#: java/jv-scan.c:224
#, c-format
msgid "file not found `%s'"
msgstr "fichier non repéré « %s »"
-#: java/jvspec.c:427
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr "ne peut spécifier «-D» sans «--main»\n"
-#: java/jvspec.c:430
+#: java/jvspec.c:429
#, c-format
msgid "`%s' is not a valid class name"
msgstr "« %s » n'est pas un nom de classe valide"
-#: java/jvspec.c:436
-msgid "-R requires -o"
+#: java/jvspec.c:435
+#, fuzzy
+msgid "--resource requires -o"
msgstr "-R requiert -o"
-#: java/jvspec.c:443
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr "AVERTISSEMENT: fichiers .class déjà compilés ignorés avec -C"
-#: java/jvspec.c:450
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
msgstr "ne peut spécéfier à la fois -C et -o"
-#: java/jvspec.c:462
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr "ne peut créer un fichier temporaire"
-#: java/jvspec.c:490
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr "utilisé ensemble @FICHIER avec de multiples fichiers bMest pas implanté"
-#: java/jvspec.c:548
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr "ne peut spécifier la classe « main » lorsqu'il n'y a pas d'édition de liens"
-#: java/lang.c:453
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr "ne peut faire le tracking de dépendance avec l'entrée à partir de stdin"
-#: java/lang.c:469
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr "ne peut déterminer le nom de la cible pour le tracking de dépendance"
-#: java/lex.c:308
+#: java/lex.c:303
#, c-format
msgid ""
"unknown encoding: `%s'\n"
@@ -19324,192 +20307,295 @@ msgstr ""
msgid "can't mangle %s"
msgstr "ne peut mutiler %s"
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr "erreur interne - nom Utf8 invalide"
-#: /usr/share/bison.simple:650
-msgid "parse error; also virtual memory exceeded"
-msgstr "erreur d,analyse syntaxique; aussi la mémoire virtuelle est épuisée"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:747 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:785
-msgid "Missing name"
-msgstr "Nom manquant"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr "Terme manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:749 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:787 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:812 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:996 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1343 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1556 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1785 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1811 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1822 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1833 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1845
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr "«;» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:810
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr "Nom manquant"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
-msgstr "«*» attendu"
+msgstr "« * » attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:824
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr "Déclaration de classe ou d'interface attendue"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:859 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:861
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
msgstr "Nom de classe manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:864 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:868 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:876 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1041 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1289 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1291 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1620 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1856 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1940
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr "«{» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:878
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr "Nom de super classe manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
msgstr "Nom d'interface manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:975 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1308 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1369 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1578 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1800 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1809 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1820 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1831 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1843 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1860 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1862 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1933 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2104 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2166 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2318 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2330 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2337 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2344 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2355 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2357 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2395 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2397 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2399 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2420 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2422 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2424 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2440 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2442 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2463 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2465 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2467 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2495 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2497 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2499 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2501 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2519 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2521 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2532 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2543 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2565 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2589 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2593 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2595 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2608
-msgid "Missing term"
-msgstr "Terme manquant"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:990
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
msgstr "Initialiseur de variable manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1007
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
msgid "Invalid declaration"
msgstr "Déclaration invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1013
-msgid "Can't specify array dimension in a declaration"
-msgstr "Ne peut spécifier la dimension du tableau dans la déclaration"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1015 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1091 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2141 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2163 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2167 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2202 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2279 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2289
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr "«]» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1019
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
msgid "Unbalanced ']'"
msgstr "«]» non pairé"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr "Déclaration de méthode invalide, nom de méthode requis"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1061 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1063 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2024
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
msgstr "Identificateur attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1066
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr "Déclaration de méthode invalide, type retourné requis"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1089 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1534 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1541 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1550 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1552 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1580 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1688 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1969 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2022
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr "«)» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1105
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
msgid "Missing formal parameter term"
msgstr "Paramètre term formel manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1120 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1125
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
msgid "Missing identifier"
msgstr "Identificateur manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1145 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1154
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr "Type term de classe manquant"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1306
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
msgid "Invalid interface type"
msgstr "Type d'interface invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1498 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1667 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1669
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr "«:» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1520 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1525 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
msgid "Invalid expression statement"
msgstr "Déclaration d'expression invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1548 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1616 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1684 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1752 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1858 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1926 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2016 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2018 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2026 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2262 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2264
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr "«(» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1618
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
msgstr "Terme manquant ou «)»"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1665
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
msgid "Missing or invalid constant expression"
msgstr "Expresion de constante manquante ou invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1686
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr "Terme manquant et «)» attendus"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1725
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
msgid "Invalid control expression"
msgstr "Expression de contrôle invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1727 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1729
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
msgid "Invalid update expression"
msgstr "Expression de mise à jour invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1754
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
msgid "Invalid init statement"
msgstr "Déclaration init invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1929
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr "Terme manquant ou «)» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1971
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr "« class» ou «ceci » attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1973 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1975
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
msgstr "« class » attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
msgstr "«)» or terme attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2139
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr "«[» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2217
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
msgstr "Champ attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2274 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr "Terme manquant et «]» attendu"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2388
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
msgid "']' expected, invalid type expression"
msgstr "«]» attendu, type d'expression invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2391
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
msgid "Invalid type expression"
msgstr "Type d'expression invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2503
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
msgid "Invalid reference type"
msgstr "Type de référence invalide"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr "L'invaocation d'un constructeur doit être la première chose dans un constructeur"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr "Seuls les constructeurs peuvent invoquer des constructeurs"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2992
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ": « %s » option JDK1.1(TM)"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3052 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3054
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
@@ -19518,54 +20604,54 @@ msgstr ""
"%s.\n"
"%s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6833
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "archive .zip mal composée dans CLASSPATH: %s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
msgstr "ne peut repérer le package par défaut « %s ». Vérifier la variable d'environnement CLASSPATH et l'accès aux archives."
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12228
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, c-format
msgid "missing static field `%s'"
msgstr "champ statique manquant « %s »"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12233
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
msgid "not a static field `%s'"
msgstr "n'est pas un champ statique « %s »"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12276
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "Oas de case pour %s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:13122
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, c-format
msgid "unregistered operator %s"
msgstr "opérator %s non enregistré"
-#: java/typeck.c:178
-msgid "internal error - use of undefined type"
-msgstr "erreur interne - utilisation d'un type non défini"
-
-#: java/typeck.c:566
+#: java/typeck.c:553
msgid "junk at end of signature string"
msgstr "rebut à la fin de la chaîne de signature"
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr "PC erroné dans exception_table"
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "code-op inconnu %d@pc=%d durant la vérification"
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr "erreur de vérification au PC=%d"
@@ -19580,7 +20666,7 @@ msgstr "Désactiver la vérificaitions des affectations dans les tableaux d'objets
#: java/lang-options.h:36
msgid "Assume native functions are implemented using JNI"
-msgstr "Assumer que les fonctions natives sont implantées et qu'elles utilisent JNI"
+msgstr "Présumer que les fonctions natives sont implantées et qu'elles utilisent JNI"
#: java/lang-options.h:38
msgid "Replace system path"
@@ -19634,121 +20720,132 @@ msgstr "Ne jamais optimiser le code d'initialisation de classe statique"
msgid "Use offset tables for virtual method calls"
msgstr "Utiliser des tables de décalage pour les appels de méthodes virtuelles"
-#: objc/objc-act.c:606
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr "pas de nom de classe spécifier dans l'argument à -fconstant-string-class"
-
-#: objc/objc-act.c:757
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr "objet n'est pas conforme au protocole « %s »"
-#: objc/objc-act.c:801
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr "classe « %s » n'implante pas le protocole « %s »"
-#: objc/objc-act.c:882
+#: objc/objc-act.c:914
#, c-format
msgid "`%s' cannot be statically allocated"
msgstr "« %s » ne peut être statiquement alloué"
-#: objc/objc-act.c:939
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr "type inattendu pour « id » (%s)"
-#: objc/objc-act.c:944
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr "type « id » indéfini, SVP importer <objc/objc.h>"
-#: objc/objc-act.c:996
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr "le protocole « %s » a une dépendance circulaire"
-#: objc/objc-act.c:1018 objc/objc-act.c:5229
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "ne peut repérer la déclaration de protocole pour « %s »"
-#: objc/objc-act.c:1279 objc/objc-act.c:5747 objc/objc-act.c:6077 objc/objc-act.c:6126 objc/objc-act.c:6162 objc-parse.y:1752
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "ne peut repérer la déclaration d'interface pour « %s »"
-#: objc/objc-act.c:1304
+#: objc/objc-act.c:1328
#, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "ne peut repérer la référence pour l'étiquette de classe %s."
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, fuzzy, c-format
+msgid "creating selector for non existant method %s"
+msgstr "conflit potentiel sur le sélecteur pour la méthode « %s »"
+
+#: objc/objc-act.c:2364
#, c-format
msgid "cannot find class `%s'"
msgstr "ne peut repérer la classe « %s »"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, c-format
msgid "class `%s' already exists"
msgstr "classe « %s » existe déjà"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr "ne peut repérer une déclaration d'interface pour « %s », super classe de « %s »"
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr "héritage circulaire dans la déclaration de l'interface pour « %s »"
-#: objc/objc-act.c:3500 objc/objc-act.c:3517
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr "spécification inconsistente avec l'instance de la vairable"
-#: objc/objc-act.c:4710
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr "multiples déclarations pour la méthode « %s »"
-#: objc/objc-act.c:4876
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr "type du receveur invalide « %s »"
-#: objc/objc-act.c:4907 objc/objc-act.c:4933 objc/objc-act.c:4981
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr "« %s » ne répond pas à « %s »"
-#: objc/objc-act.c:4913 objc/objc-act.c:7197
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr "pas de super classe déclarée dans l'interface pour « %s »"
-#: objc/objc-act.c:5011
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr "ne peut repérer de méthode de classe (manufacturé)"
-#: objc/objc-act.c:5012 objc/objc-act.c:5056
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr "type retourné pour « %s » par défaut est id"
-#: objc/objc-act.c:5029
+#: objc/objc-act.c:5099
#, c-format
msgid "method `%s' not implemented by protocol"
msgstr "méthode « %s » n'est pas implantée dans le protocole."
-#: objc/objc-act.c:5038
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr "type retourné par défaut est id"
-#: objc/objc-act.c:5055
+#: objc/objc-act.c:5125
msgid "cannot find method"
msgstr "ne peut repérer la méthode"
+#: objc/objc-act.c:5399
+#, fuzzy, c-format
+msgid "undeclared selector `%s'"
+msgstr "identificateur « %s » non déclaré"
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -19758,108 +20855,108 @@ msgstr "ne peut repérer la méthode"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5298
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr "instance « %s » de la variable accédé par la méthode de classe"
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5678
#, c-format
msgid "duplicate definition of class method `%s'"
msgstr "duplication de définition de la méthode de la classe « %s »"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5684
#, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "duplication de déclaration de la méthode de classe « %s »"
-#: objc/objc-act.c:5590
+#: objc/objc-act.c:5720
#, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "duplication de définition de la méthode d'instanciation « %s »"
-#: objc/objc-act.c:5596
+#: objc/objc-act.c:5726
#, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "duplication de déclaration de la méthode d'instanciation « %s »"
-#: objc/objc-act.c:5636
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr "duplication de déclaration d'interface pour la catégorie «%s(%s)»"
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr "instance de la variable « %s » est déclaré privée"
-#: objc/objc-act.c:5769
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr "instance de la variable « %s » est déclaré %s"
-#: objc/objc-act.c:5779
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr "accès statique à un objket de type « id »"
-#: objc/objc-act.c:5816 objc/objc-act.c:5909
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr "implantation incomplète de la classe « %s »"
-#: objc/objc-act.c:5820 objc/objc-act.c:5914
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr "implantation incomplète de la catégorie « %s »"
-#: objc/objc-act.c:5825 objc/objc-act.c:5919
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr "définition de la méthode pour «%c%s» n'a pas été repérée"
-#: objc/objc-act.c:5963
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr "%s « %s » n'implante pas complètement le protocole « %s »"
-#: objc/objc-act.c:6021 objc/objc-act.c:8118
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
msgid "`@end' missing in implementation context"
msgstr "«@end» manquant dans l'implantation du contexte"
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr "ré-implantation de la classe « %s »"
-#: objc/objc-act.c:6091
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr "nom de super classe « %s » est conflictuel"
-#: objc/objc-act.c:6106
+#: objc/objc-act.c:6224
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr "double déclaration d'interface pour la classe « %s »"
-#: objc/objc-act.c:6388
+#: objc/objc-act.c:6506
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr "double déclaration pour le protocole « %s »"
-#: objc/objc-act.c:7238
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr "[super ...] doit apparaître dans une méthode du contexte"
-#: objc/objc-act.c:8220 objc/objc-act.c:8236
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr "conflit potentiel sur le sélecteur pour la méthode « %s »"
-#: objc-parse.y:2612
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr "«@end» doit appraître dans un contaxte d'implantation"
-#: objc-parse.y:2886
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr "méthode de définition n'est pas dans un contexte de classe"
@@ -19891,6 +20988,24 @@ msgstr "Générer des en-têtes C pour les options spécifiques de la plate-forme"
msgid "Specify the name of the class for constant strings"
msgstr "Spécifier le nom de la classe pour les constantes chaînes"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr "shared et mdll ne sont pas compatibles"
+
#: java/lang-specs.h:33
msgid "-fjni and -femit-class-files are incompatible"
msgstr "-fjni et -femit-class-files sont incompatibles"
@@ -19903,45 +21018,101 @@ msgstr "-fjni et -femit-class-file sont incompatibles"
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr "-femit-class-file dervait être utilisé avec -fsyntax-only"
-#: config/nextstep.h:161 config/nextstep.h:164
-msgid "-p profiling is no longer supported. Use -pg instead"
-msgstr "-p profilage n'est plus supporté. Utiliser -pg à la place."
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg et -fomit-frame-pointer sont incompatibles"
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr "-c ou -S requis pour Ada"
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
-#: config/arm/arm.h:211
+#: config/darwin.h:220
+#, fuzzy
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-mlong-double-64 n'est pas permis avec -m64"
+
+#: config/darwin.h:221
+#, fuzzy
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-mlong-double-64 n'est pas permis avec -m64"
+
+#: config/darwin.h:222
+#, fuzzy
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-mlong-double-64 n'est pas permis avec -m64"
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:229
+#, fuzzy
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-mlong-double-64 n'est pas permis avec -m64"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "«-p» n'est pas supporté; utiliser «-pg» et gprof(1)"
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr "ne peut utiliser ensemble -m32 et -m64"
+
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "-mapcs-26 et -mapcs-32 ne peuvent être utilisés ensembles"
-#: config/arm/arm.h:223
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "-msoft-float et -mhard_float ne peuvent être utilisées ensembles"
-#: config/arm/arm.h:234
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "-mbig-endian et -mlittle-endian ne peuvent être utilisés ensemble"
-#: config/arm/arm.h:252
-msgid "incompatible interworking options"
-msgstr "options d'inter-réseautage incompatibles"
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "attribut « %s » n'est pas supporté sur cette plate-forme"
+
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "-I- spécifié deux fois"
-#: config/sparc/freebsd.h:31 config/ia64/freebsd.h:23 config/alpha/freebsd.h:36 config/i386/freebsd-aout.h:227
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "«-p» n'est pas supporté; utiliser «-pg» et gprof(1)"
+#: config/i386/sco5.h:271
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "-pedantic et -traditional sont mutuellement exclusives"
-#: gcc.c:672 f/lang-specs.h:35
+#: f/lang-specs.h:38 gcc.c:689
msgid "GNU C does not support -C without using -E"
msgstr "GNU C ne supporte pas -C sans utiliser -E"
-#: gcc.c:699 ada/lang-specs.h:39 java/jvspec.c:77
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg et -fomit-frame-pointer sont incompatibles"
-
-#: gcc.c:846
-msgid "-E required when input is from standard input"
-msgstr "-E est requis lorsque l'entrée est faite à partir de l'entrée standard"
-
-#: gcc.c:850
-msgid "compilation of header file requested"
-msgstr "fichier d'en-tête requis pour la compilation"
+#: f/lang-specs.h:39 gcc.c:690
+#, fuzzy
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C ne supporte pas -C sans utiliser -E"
#: config/mcore/mcore.h:60
msgid "choose either big or little endian, not both"
@@ -19955,97 +21126,984 @@ msgstr "choisir m340 ou m210 mais pas les deux"
msgid "the m210 does not have little endian support"
msgstr "Le m210 ne supporte pas le code pour système à octets de poids faible"
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
-msgstr "-c ou -S requis pour Ada"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "mno-cygwin et mno-win32 ne sont pas compatibles"
+
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "fonction interne « %s » n'est pas couramment supportée"
+
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg et -fomit-frame-pointer sont incompatibles"
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "-E est requis lorsque l'entrée est faite à partir de l'entrée standard"
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr "fichier d'en-tête requis pour la compilation"
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "profilage n'est pas supporté avec -mg\n"
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe n'est pas supporté"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "ne peut utiliser ensemble -EB et -EL"
+
+#: config/mips/r3900.h:35
msgid "-mhard-float not supported"
msgstr "-mhard-float n'est pas supporté"
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
+#: config/mips/r3900.h:37
msgid "-msingle-float and -msoft-float can not both be specified"
msgstr "-msingle-float et -msoft-float ne peuvent être spécifiés ensembles"
-#: config/mmix/mmix.h:112
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
-msgstr "options -mabi=mmixware et -mabi=gnu sont mutuellement exclusives"
+# FIXME
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "le décalage de variable est passé partiellement dans la pile et dans le registre"
-#: config/i860/fx2800.h:290
-msgid "-p option not supported: use -pg instead"
-msgstr "l'option -p n'est pas supportée: utitilse -pg à la place"
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "la taille de la variable est passée partiellement dans la pile et le registre"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd et -pedantic incompatibles"
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2002 Free Software Foundation, Inc.\n"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd et -mxopen incompatibles"
+#, fuzzy
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "seules les variables initialisées peuvent être placées dans la zone mémoire du programme"
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen et -pedantic incompatibles"
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s pour «%T ? %T : %T» comme opérateur"
-#: config/arc/arc.h:59 config/mips/mips.h:1007
-msgid "may not use both -EB and -EL"
-msgstr "ne peut utiliser ensemble -EB et -EL"
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s pour l'opérateur «%T [%T]»"
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
-msgstr "profilage n'est pas supporté avec -mg\n"
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s pour l'opérateur «%T %s [%T]»"
-#: config/i386/cygwin.h:114
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "mno-cygwin et mno-win32 ne sont pas compatibles"
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s pour l'opérateur «%s [%T]»"
-#: config/i386/cygwin.h:169 config/i386/mingw32.h:69
-msgid "shared and mdll are not compatible"
-msgstr "shared et mdll ne sont pas compatibles"
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "patron de paramètre en valeur réelle lors de la compilation croisée"
-#: config/mips/mips.h:837
-msgid "-pipe is not supported"
-msgstr "-pipe n'est pas supporté"
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "le C++ ISO interdit les expressions d'initialiseur d'aggrégat de non constante"
+
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static n'est pas valide avec -mcoff"
+
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared n'est pas valide avec -mcoff"
+
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic n'est pas valide avec -mcoff"
+
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic n'est pas valide avec -mcoff"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPic n'est pas valide avec -mcoff"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic n'est pas valide avec -mcoff"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC n'est pas valide avec -mcoff"
+
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "champs sans nom de type autre que struct ou union ne sont pas permis"
+
+#~ msgid "numeric constant with no digits"
+#~ msgstr "constante numérique sans chiffre"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "constante numérique contient des chiffres en dehors la base numérique"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "constante flottante peut ne pas être en base 16"
+
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "plus d'un « f » en suffixe sur une constante flottante"
+
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "plus d'un « l » en suffixe sur une constante flottante"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "C traditionnel rejette le suffixe « l »"
+
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "plus d'un « i » ou « j » en suffixe sur une constante flottante"
+
+#~ msgid "floating constant out of range"
+#~ msgstr "constante flottante est hors gamme"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "nombre en virgule flottante excède les limites de « double »"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "deux « u » en suffixe sur une constante entière"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "C traditionnel rejette le suffixe « u »"
+
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "trois « l » en suffixe sur une constante entière"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul» n'est pas un suffixe valide pour un entier"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "« Ll» et «1L » ne sont pas des suffixes valides pour un entier"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "plus d'un « i » ou « j » en suffixe sur une constante entière"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "suffixe invalide pour une constante entière"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "constante entière trop grande pour la configuration du compilateur - tronqué à %d bits"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "largeur de la constante entière change avec -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "largeur de la constante entière peut changer sur d'autres système avec -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "constante entière plus grande que la valeur maximale de %s"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "un entier long long non signé"
+
+#~ msgid "a long long int"
+#~ msgstr "un entier long long"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "un entier long non signé"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "constante décimale est tellement grande qu'elle est non signée"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "constante complexe entière est trop grande pour le type 'complex int'"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "constante entière est plus grande que la valeur maximale pour ce type"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "espace blanc manquant après le nombre '%.*s'"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "spécificateur de classe de stockage dans le déclarateur de tableau"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof appliqué sur un type de fonction"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof appliqué sur un type void"
+
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof appliqué sur un type incomplet"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "nombres flottants ne sont pas valides dans un #if"
+
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "C traditionel rejette le suffixe « U »"
+
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "trop de « l » en suffixe dans les constantes entières"
+
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "constante entière contient des chiffres en dehors la base numérique"
+
+#~ msgid "integer constant out of range"
+#~ msgstr "constante entière est hors gamme"
+
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "constantes de chaîne ne sont pas valides dasn un #if"
+
+#~ msgid "missing binary operator"
+#~ msgstr "opérateur binaire manquant"
-#: config/mips/mips.h:1003
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "ne peut utiliser ensemble -mfp64 et -msingle-float"
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "opérateur « %s » n'a pas d'opérande gauche"
-#: config/mips/mips.h:1004
-msgid "may not use both -mfp64 and -m4650"
-msgstr "ne peut utiliser ensemble -mfp64 et -m4650"
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "modification de l'ordonnancement de recherche du répertoire système « %s »"
-#: config/mips/mips.h:1006
-msgid "may not use both -mgp32 and -mfp64"
-msgstr "ne peut utiliser ensemble -mfp32 et -mfp64"
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " comme c'est le même qu'un répertoire non système « %s »"
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
-msgstr "-static n'est pas valide avec -mcoff"
+#~ msgid "I/O error on output"
+#~ msgstr "Erreur E/S sur la sortie"
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
-msgstr "-shared n'est pas valide avec -mcoff"
+#~ msgid "argument missing after %s"
+#~ msgstr "argument manquant après %s"
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic n'est pas valide avec -mcoff"
+#~ msgid "number missing after %s"
+#~ msgstr "nombre manquant après %s"
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic n'est pas valide avec -mcoff"
+#~ msgid "target missing after %s"
+#~ msgstr "cible manquante après %s"
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPic n'est pas valide avec -mcoff"
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic n'est pas valide avec -mcoff"
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Présumer que les sources sont en C++\n"
+#~ " -lang-objc Présumer que les sources sont en ObjectiveC\n"
+#~ " -lang-objc++ Présumer que les sources sont en ObjectiveC++\n"
+#~ " -lang-asm Présumer que les sources sont en assembleur\n"
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC n'est pas valide avec -mcoff"
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "début possible d'une chaîne de mot non terminée"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "chaîne de mots multi-lignes sont dépréciés"
+
+#~ msgid "\"%s\" cannot be used as a macro name"
+#~ msgstr "« %s » ne peut être utilisé comme nom de macro"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "directives ne peuvent être utilisées à l'intérieur d'un argument macro"
+
+#~ msgid "invalid option %s"
+#~ msgstr "option invalide %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: AVERTISSEMENT: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: AVERTISSEMENT: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "désolé, pas implanté: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Erreur internal du compilateur dans %s, à %s:%d"
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "argument de «-b» est manquant"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "argument de «-V» est manquant"
+
+#~ msgid "invalid version number format"
+#~ msgstr "format de numéro de verson invalide"
+
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr "Le contenu du fichier .da a été épuisé trop rapidement\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "Le contenu du fichier .da n'a pas été épuisé\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% des lignes sources %d exécutées dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% de branchements %d exécutés dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%% de branchements %d pris au mons une fois dans la fonction %s\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Pas de branchement dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%% d'appels %d exécutés dans la fonction %s\n"
+
+#~ msgid "No calls in function %s\n"
+#~ msgstr "Pas d'appel dans la fonction %s\n"
+
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "appel %d a retourné = %s%%\n"
+
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "branchement %d a pris = %s%%\n"
+
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr "Le contenu du fichier .da a été épuisé trop rapidement"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "conversion de NaN en int"
+
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "conversion de NaN en un int non signé"
+
+#~ msgid "floating point overflow"
+#~ msgstr "débordement de virgule flottante"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "débordement de troncation d'un entier"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "débordement lors de la troncation d'un entier non signé"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: erreur d'argument de domaine"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: singularité de fonction"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: erreur de débordement de bornes"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: erreur de sous débordement de bornes"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: perte totale de précision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: perte partielle de précision"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - opération produite"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Prétendre que l'hôte et la cible utilise le format FP"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Compiler les pointeurs comme des triplets: valeur, base et fin"
+
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "Ne pas promouvoir les flottants à des doubles avec -traditional"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Tenter de supporter le style de langage C traditionnel K&R"
+
+#~ msgid "internal error: %s"
+#~ msgstr "erreur interne: %s"
+
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "saut croisé désactivé: %d > 1000 blocs de base et %d >= 20 blocs edges/basic"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a autoriser le profilage des blocs \n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax autoriser le profilage des sauts \n"
+
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "profilage ne fonctionne pas sans un pointeur de trames"
+
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "nombres flottants ne sont pas permis dans les expressions #if"
+
+#~ msgid "invalid number in #if expression"
+#~ msgstr "nombre invalide dans l'expression #if"
+
+#~ msgid "invalid character constant in #if"
+#~ msgstr "constante de caractères invalide dans le #if"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "chaînes entre quillemets ne sont pas allouées dans les expression #if"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "constante de caractères en octal ne peut être insérée dans un octet"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "constante de caractères en hexadémical ne peut être insérée dans un octet"
+
+#~ msgid "empty #if expression"
+#~ msgstr "expression #if vide"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "Rebut à la fin de l'expression."
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "macro ou récursion de #include trop profonde"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "usage: %s [options] entrée sortie"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional n'est pas supporté en C++"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional et -ansi sont mutuellement exclusives"
+
+#~ msgid "filename missing after -i option"
+#~ msgstr "nom de fichier manquant après l'option -i"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "nom de fichier manquant après l'option -o"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "cible manquante après l'option %s"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "nom de fichier manquant après l'option %s"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "nom de macro manquant après l'option -%c"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs et -traditional sont mutuellement exclusives"
+
+#~ msgid "directory name missing after -I option"
+#~ msgstr "nom de répertoire manquant après l'option -I"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "« /* » à l'intérieur d'un commentaire"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "#%s conditionel non terminé"
+
+#~ msgid "not in any file?!"
+#~ msgstr "n'est pas dans aucun fichier?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "« defined » doit être suivi par ident ou (ident)"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "erreur cccp: type de hachage spécial invalide"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include espère « fname » ou <fname>"
+
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "pas de chemin d'inclusion dans lequel trouver %.*s"
+
+#~ msgid "invalid macro name"
+#~ msgstr "nom de macro invalide"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "nom de macro invalide « %s »"
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "nom de paramètre débute avec un chiffre dans #define"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "liste de paramètres incorrectement ponctués dans #define"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "liste de paramètres non terminée dans #define"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" redéfini"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "# opérator derait être suivi par le nom d'un argument macro"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "format invalide dans la commande #line"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "indéfinition « defined »"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "indéfinition « %s »"
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "texte superflu à la fin de la directive"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif n'est pas à l'intérieur d'un conditionel"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s n'est pas à l'intérieur d'un conditionel"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else ou #elif après #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else n'est pas à l'intérieur d'un conditionel"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "#endif non pairé"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "chaîne non terminée ou constante caractère"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "argument donnée à la macro « %s »"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "aucun argument pour la macro « %s »"
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "seulement 1 argument pour la macro « %s »"
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "seulement %d arguments pour la macro « %s »"
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "trop d'arguments (%d) pour la macro « %s »"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Erreur interne dans %s, à tradcpp.c:%d\n"
+#~ "SVP soumettre un rapport complet des anomalies rencontrées.\n"
+#~ "Consulter %s pour les instructions."
+
+#~ msgid "optimization turned on"
+#~ msgstr "optimisation activée"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimisation désactivée"
+
+#~ msgid "optimization level restored"
+#~ msgstr "niveau d'optimisation restauré"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "Utiliser l'alignement VAX-C"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "valeur %%V invalide"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Générer le code en assumant que le bit DW est initialisé"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Générer le code en assumant que le bit DW n'est pas initialisé"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Générer le code en utilisant des écritures par octets"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Ne pas générer des écritures par octets"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Utiliser le modèle de petite mémoire"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Utiliser le modèle normal de mémoire"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Utiliser le modèle de grande mémoire"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "Générer le code 29050"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Générer le code 29000"
+
+#~ msgid "Use kernel global registers"
+#~ msgstr "Utiliser les registres globaux du kernel"
+
+#~ msgid "Use user global registers"
+#~ msgstr "Utiliser les registres globaux"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Produire le code de vérification de la pile"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Ne pas produire le code de vérification de la pile"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Contourner le bug matériel de stockage"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Ne pas contourner le bug matériel de stockage"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Stocker les var. locales dans redistres d'arguments"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "Ne pas stocker les var. locales dans redistres d'arguments"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Ne pas renommer les symboles pour BSD"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Ne pas renommer les symboles pour X/OPEN"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Ne pas renommer les symboles"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Générer le code pour le C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Générer le code pour le C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Générer le code pour le c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Générer le code pour le c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Générer le code pour le c3"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Générer le code pour le c34"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Utiliser la séquence standard d'appel, avec arg et mot compteur"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Placer le compteur d'arg dans une instruction NOP (plus rapide que push)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "Ne pas empiler le compteur d'arg, dépend de la table de symboles"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Utiliser la cache de données pour les réf. mémoire volatiles (par défaut)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Ne pas utiliser la cache de données pour les réf. mémoire volatiles"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Éviter la cache de données pour les réf. mémoire volatiles"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Utiliser des longs de 64 bits"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "Utiliser cc- et libc-compatible longs de 32 bits"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "enlignage des constantes flottantes n'est pas supporté sur cet hôte"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Générer du code que l'assembleur UNIX peut traiter"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Retenir l'information standard MXDB"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Retenir les informations de légende"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Générer les informations externes de légende"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr "Produire les infos d'identification dans le fichier .s"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Avertir lorsque l'arg d'une fonction est une structure"
+
+#~ msgid "argument is a structure"
+#~ msgstr "argument est une structure"
+
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "init à demi PIC appelé sur un système qui ne le supporte pas"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Profilage utilise mcount"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Produire du code à moitié PIC"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "Produire du code objet ELF"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Produire du code objet ROSE"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Les symboles sont précédées d'un caractère de soulignement "
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Aligner sur >frontières de mots"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Utiliser mcount pour le profilage"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Utiliser mcount_ptr pour le profilage"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Générer du code qui utilise le FPU"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Ne pas générer du code qui utilise le FPU"
+
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "l'option -mlong-double-64 n'est pas fonctionnelle encore"
+
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr "L'option -march est incompatible avec -mipsN et est alors ignorée."
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d n'est pas supporté"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s ne supporte pas -mips%d"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "cette cible ne supporte pas l'option -mabi"
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d ne supporte pas les registres FP de 64 bits"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d ne supporte pas les registres GP de 64 bits"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "Utiliser le code PIC OSF"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Ne pas utiliser le code PIC OSF"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimiser pour le 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimiser pour le 4650"
+
+#~ msgid "stack frame too big"
+#~ msgstr "trame de pile trop grande"
+
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "ni varargs ou stdarg dans mmix_setup_incoming_varargs"
+
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "oops, pas mis au point; correction de la valeur:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Générer des données pour systèmes à octets de poids faible"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Générer des données pour systèmes à octets de poids fort"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Mettre en marche le code d'entretien de mise au point"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Autoriser les extensions Transmeta picoJava"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Interdire les extensions Transmeta picoJava"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Désactiver la passe de réorganisation"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignoré (tout le code est indépendant de la position)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "-ffunction-sections désactivé sur AIX lors de la mise au point"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections n'est pas supporté sur AIX"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S calculé avec un masque que uns"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S calculé avec un masque de zéros"
+
+#~ msgid "no viable candidates"
+#~ msgstr "pas de candidats viables"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "« %D » a déjà été déclaré dans « %T »"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "« %D » comme déclarateur"
+
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "taille du membre « %D » n'est pas constant"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "ne peut déclarer %s comme références"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "type invalide: « void & »"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "déclaration typedef inclut un initialiseur"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version n'est plus supportée"
+
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "candidat%s: %+#D"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "initialiseur du membre pour «%#D»"
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " sera ré-odonné pour concorder avec l'ordre déclaré"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "initialisations multiples données pour le membre « %D »"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " sera ré-ordonné pour concorder avec l'ordre d'héritage"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "nom d'implantation réservé « %D » est utilisé"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "instanciation explicite de «%#D» après"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "spécialisation explicite ici"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "instanciation explicite de «%#T» après"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "initialiseur de base « %T »"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " sera ré-ordonné pour précéder les initialisations de membre"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "qualificateurs « %V » ignorés pour « %T »"
+
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr "« sizeof » appliqué à un membre non statique"
+
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "« sizeof» appliqué sur un type incomplet «%T »"
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "requête du membre «%T::%D» dans l'expression du type non aggrégat « %T »"
+
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "utilisation invalide du type decl «%#D» comme expression"
+
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "utilisation invalide du patron «%#D» comme expression"
+
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "offsetof invalide du type non POD «%#T»; utiliser un pointeur vers un membre à la place"
+
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "appel d'un pointeur vers un membre de fonction, mais n'est pas dans le champ de la classe"
+
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "objet manquant dans l'appel de la méthode « %D »"
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "fontion « %D » déclarée surchargée, mais aucune définition n'apparaît pour la résoudre?!?"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "appel invalide vers un membre de fonction ayant besoin de « ceci » dans le champ du membre statique de la fonction"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "utilisation invalide d'un type indéfini «%#T»"
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "utilisation invalide de « %T »"
+
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "utilisation invalide de membre (avez-vous oublié le «&» ?)"
+
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "utilisation invalide de patron de type de paramètres"
+
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "adresse de la fonction surchargée sans information contextuelle de type"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "fonction surchargée sans information contextuelle de type"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "information contextuelle insuffisante pour déterminer le type"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe dérivée « %D »"
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe polymorphique « %D »"
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "construction de la liste d'initialiseurs invalide pour « %D »"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "en raison de la présence d'un constructeur"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "en raison d'un accès non public du membre « %D »"
+
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "La signification de «\\x» (à %0) varie avec l'option -traditional"
+
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "La signification de «\\a»(à %0) varie avec -traditional"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "la signification de «\\x» varie avec l'option -traditional"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "le sens de «\\a» varie avec -traditional"
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "erreur d,analyse syntaxique; aussi la mémoire virtuelle est épuisée"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Ne peut spécifier la dimension du tableau dans la déclaration"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "erreur interne - utilisation d'un type non défini"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "pas de nom de classe spécifier dans l'argument à -fconstant-string-class"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "-p profilage n'est plus supporté. Utiliser -pg à la place."
+
+#~ msgid "incompatible interworking options"
+#~ msgstr "options d'inter-réseautage incompatibles"
+
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "options -mabi=mmixware et -mabi=gnu sont mutuellement exclusives"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "l'option -p n'est pas supportée: utitilse -pg à la place"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd et -pedantic incompatibles"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd et -mxopen incompatibles"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen et -pedantic incompatibles"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "ne peut utiliser ensemble -mfp64 et -msingle-float"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "ne peut utiliser ensemble -mfp64 et -m4650"
+
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "ne peut utiliser ensemble -mfp32 et -mfp64"
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "déclaration de «%#T»"
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "l'option -ifile requiert l'option -map"
#~ msgid "__builtin_trap not supported by this target"
#~ msgstr "__builtin_trap n'est pas supporté par la cible"
@@ -20056,12 +22114,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "`%s' previously declared here"
#~ msgstr "« %s » précédemment déclaré ici"
-#~ msgid "invalid lvalue in increment"
-#~ msgstr "lvalue invalide dans l'incrémentation"
-
-#~ msgid "invalid lvalue in decrement"
-#~ msgstr "lvalue invalide dans la décrémentation"
-
#~ msgid "increment"
#~ msgstr "incrément"
@@ -20179,9 +22231,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "cannot EXIT label `%s' outside current function"
#~ msgstr "ne sortir à l'aide de l'étiquette « %s » en dehors de la fonction courante"
-#~ msgid "case selector not compatible with label"
-#~ msgstr "le sélecteur de CASE n'est pas compatible avec l'étiquette"
-
#~ msgid "ELSE label not within a CASE statement"
#~ msgstr "étiquette du ELSE n'est pas n'est pas à l'intérieur de la déclaration du CASE"
@@ -20287,9 +22336,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "incompatible member of powerset tuple (at position #%d)"
#~ msgstr "membre incompatible du tuple du powerset ( à la position #%d)"
-#~ msgid "no initializer value for fixed field `%s'"
-#~ msgstr "pas de valeur pour l'initialisateur du champ fixe « %s »"
-
#~ msgid "non-constant value for tag field `%s'"
#~ msgstr "valeur non constante pour l'étiquette de champ « %s »"
@@ -20428,9 +22474,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "non-value mode may only returned by LOC"
#~ msgstr "mode non-valeur peut seulement être retourné par LOC"
-#~ msgid "mode of `%s' is not a mode"
-#~ msgstr "mode de %s n'est pas un mode"
-
#~ msgid "`%s' may only be passed by LOC"
#~ msgstr "« %s » peut seulement être passé par LOC"
@@ -20515,9 +22558,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
#~ msgstr " précède une référence sur champ STRUCT ou « %s » est un mode indéfini"
-#~ msgid "can't dereference PTR value using unary `->'"
-#~ msgstr "ne peut dé-référencer une valeur PTR utilisant l'unaire «->»"
-
#~ msgid "invalid type argument of `->'"
#~ msgstr "type d'argument invalide de «->»"
@@ -20851,9 +22891,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "too few arguments in call to `readrecord'"
#~ msgstr "pas assez d'arguments dans l'appel de readrecord()"
-#~ msgid "incompatible record mode"
-#~ msgstr "mode incompatible d'enregistrement"
-
#~ msgid "store location must not be READonly"
#~ msgstr "localisation de stockage ne doit pas être en LECTURE seulement"
@@ -21016,15 +23053,9 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "control sequence overflow"
#~ msgstr "débordement de la chaîne de contrôle"
-#~ msgid "invalid control sequence"
-#~ msgstr "séquence de contrôle invalide"
-
#~ msgid "invalid base in read control sequence"
#~ msgstr "base invalide dans la séquence de contrôle de lecture"
-#~ msgid "invalid digit in control sequence"
-#~ msgstr "chiffre invalide dans la séquence de contrôle"
-
#~ msgid "unterminated string literal"
#~ msgstr "chaîne litérale non terminée"
@@ -21118,18 +23149,12 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "start label '%s' does not match end label '%s'"
#~ msgstr "étiquette de départ « %s » ne concorde pas avec l'étiquette de fin « %s »"
-#~ msgid "`%s' not declared"
-#~ msgstr "« %s » n'est pas déclaré"
-
#~ msgid "no RETURN or RESULT in procedure"
#~ msgstr "pas de RETURN ou RESULT dans la procédure"
#~ msgid "PREFIXED clause with no prelix in unlabeled module"
#~ msgstr "cluase PREFIXÉ sans no prelix dans un module sans étiquette"
-#~ msgid "internal parser error - expected token %d"
-#~ msgstr "erreur interne d'analyse syntaxique - jeton attendu %d"
-
#~ msgid "'%s!' is not followed by an identifier"
#~ msgstr "« %s » n'est pas suivi d'un identificateur"
@@ -21169,9 +23194,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "'=' used where ':=' is required"
#~ msgstr "«=» utilisé où «:=» est requis"
-#~ msgid "initialization is not allowed in spec module"
-#~ msgstr "initialisation n'est pas permise dans un module SPEC"
-
#~ msgid "loc-identity declaration without initialization"
#~ msgstr "déclaration de loc n'a pas d'initialisation"
@@ -21214,9 +23236,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "unrecognized case label list after ','"
#~ msgstr "étiquette non reconnue du CASE après «,»"
-#~ msgid "bad ASM operand"
-#~ msgstr "opérande ASM erronée"
-
#~ msgid "readonly location modified by 'asm'"
#~ msgstr "localisation en lecture seulement modifiée par «asm»"
@@ -21301,12 +23320,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "POS not allowed for ARRAY"
#~ msgstr "POSITION n'est pas permise pour un TABLEAU"
-#~ msgid "STEP not allowed in field definition"
-#~ msgstr "PAS n'est pas alloué dans la définition d'un champ"
-
-#~ msgid "missing field name"
-#~ msgstr "nom de champ manquant"
-
#~ msgid "bad field name following ','"
#~ msgstr "nom de champ erroné après «,»"
@@ -21361,9 +23374,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "mode with non-value property in signal definition"
#~ msgstr "mode sans propriété de non valeur dans la définition de signal"
-#~ msgid "undeclared identifier `%s'"
-#~ msgstr "identificateur « %s » non déclaré"
-
#~ msgid "RETURNS spec with invalid mode"
#~ msgstr "spécification de RETOUR avec un mode invalide"
@@ -21379,9 +23389,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "recordmode must not have the non-value property"
#~ msgstr "mode d'enregistrement ne doit pas avoir une propriété de non valeur"
-#~ msgid "tasking code %ld out of range for `%s'"
-#~ msgstr "code de tache %ld hors gamme pour « %s »"
-
#~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
#~ msgstr "attribue invalide pour l'argument « %s » (seul IN ou LOC est permis)"
@@ -21619,9 +23626,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "can only take slice of array or string"
#~ msgstr "peut seulement faire le découpage d'un tableau ou d'une chaîne"
-#~ msgid "slice length is not an integer"
-#~ msgstr "tranche de la longueur n'est pas un entier"
-
#~ msgid "slice length out-of-range"
#~ msgstr "tranche de la longueur est hors gamme"
@@ -21670,9 +23674,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "location conversion between differently-sized modes"
#~ msgstr "conversion de localisation entre des mode de taille différentes"
-#~ msgid "unsupported value conversion"
-#~ msgstr "valeur de conversion non supportée"
-
#~ msgid "operand to bin must be a non-negative integer literal"
#~ msgstr "opérande à bin doit être un litéral entier non négatif"
@@ -21847,18 +23848,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
#~ msgstr "référence invalide à un pointeur NUL, utiliser pointeur de membre à la place"
-#~ msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur de type «void *» dans un pointeur arithmétique"
-
-#~ msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur sur une fonction dans un opinteur arithmétique"
-
-#~ msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur sur un membre de fonction dans un pointeur arithmétique"
-
-#~ msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur sur un membre dans un pointeur arithmétique"
-
#~ msgid "internal error #%d"
#~ msgstr "erreur interne #%d"
@@ -21880,30 +23869,12 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]"
#~ msgstr "Indicateur de continuation à %0 invalide ici [info -f g77 M LEX]"
-#~ msgid "Integer at %0 too large except as negative number (preceded by unary minus sign)"
-#~ msgstr "Entier à %0 trop grand sauf comme nombre négatif (si précédé du signe unaire moins)"
-
#~ msgid "Non-negative integer at %0 too large"
#~ msgstr "Entier non négatif à %0 trop grand"
-#~ msgid "Integer at %0 too large; even though preceded by unary minus sign at %1, subsequent operator at %2 has precedence over unary minus -- enclose unary minus sign and integer in parentheses to force precedence"
-#~ msgstr "Entier à %0 trop grand; même en étant précédé du signe unaire moins à %1, l'oérateur subséquent à %2 a précédence sur l'unaire moins -- encapsuler le signe unaire moins et l'entier entre parenthèses"
-
#~ msgid "Integer at %0 too large (%2 has precedence over %1)"
#~ msgstr "Entier à %0 trop grand (%2 a précédence sur %1)"
-#~ msgid "Integer at %0 too large; even though preceded by minus sign at %1, because minus sign is a binary, not unary, operator -- insert plus sign before minus sign to change it to a unary minus sign"
-#~ msgstr "Entier à %0 trop grand; même précédé du signe moins à %1, parce que le signe moins est un opérateur binaire, non pas unaire -- insérer avant un signe plus pour le changer en un signe unaire moins "
-
-#~ msgid "Integer at %0 too large (needs unary, not binary, minus at %1)"
-#~ msgstr "Entier à %0 trop grand (nécessite l'unaire moins, non pas binaire, à %1)"
-
-#~ msgid "Integer at %0 too large; even though preceded by minus sign at %1, subsequent operator at %2 has precedence over minus, and that minus sign should be a unary minus rather than a binary minus -- insert plus sign before minus sign to change it to a unary minus sign, and enclose unary minus sign and integer in parentheses to force precedence"
-#~ msgstr "Entier à %0 trop grand; même précédé du signe moins à %1, l'opérateur subséquent à %2 a précédence sur le moins et le signe moins doit être un signe unaire moins au lieu d'un signe binaire moins -- insérer avant un signe plus pour le changer en un signe unaire moins et encapsuler le signe unaire moins et l'entier entre parenthèse pour forcer la précédence"
-
-#~ msgid "Integer at %0 too large (%2 has precedence over %1, which needs to be unary, not binary, minus)"
-#~ msgstr "Entier à %0 trop grand (%2 a précédence sur %1, lequel nécessite l'unaire moins, non pas bianire)"
-
#~ msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator"
#~ msgstr "Période à %0 n'est pas suivie d'un mot clé valide formant un opérateut binaire valide; «.%A,» n'est pas un opérateur binaire valide"
@@ -21997,26 +23968,15 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Unterminated character constant at %0 [info -f g77 M LEX]"
#~ msgstr "constante de caractères non terminée à %0 [info -f g77 M LEX]"
-#, fuzzy
-#~ msgid "Continuation line at %0 must have initial `&' since it continues a character context [info -f g77 M LEX]"
-#~ msgstr "La ligne de continuation à %0 doit avoir un «&» initial puisqu'elle est la suite du contexte caractère [info -f g77 M LEX]"
-
#~ msgid "Missing initial `&' on continuation line at %0 [info -f g77 M LEX]"
#~ msgstr "«&» initial manquant sur la ligne de continuation à %0 [info -f g77 M LEX]"
-#, fuzzy
-#~ msgid "Continuation line at %0 must have initial `&' since it continues a split lexical token [info -f g77 M LEX]"
-#~ msgstr "Ligne de continuation à %0 doit avoir un «&» initial puisqu'elle est la suite d'un jeton lexical scindé [info -f g77 M LEX]"
-
#~ msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character"
#~ msgstr "Ligne de continuation à %0 invalide parce qu'elle contient seulement un simple «&» comme seul caractère non blanc"
#~ msgid "Invalid continuation line at %0"
#~ msgstr "ligne de continuation invalide à %0"
-#~ msgid "Statement at %0 begins with invalid token [info -f g77 M LEX]"
-#~ msgstr "Déclaration à %0 débute avec un jeton invalide [info -f g77 M LEX]"
-
#~ msgid "Invalid statement at %0 [info -f g77 M LEX]"
#~ msgstr "Déclaration invalide à %0 [info -f g77 M LEX]"
@@ -22035,210 +23995,84 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))"
#~ msgstr "Utilisation invalide d'une constante Hollerith à la déclaration à %0 -- encapsuler la constante entre paranthèses (par exemple, changer BACKSPACE 2HAB en BACKSPACE (2HAB) )"
-#, fuzzy
-#~ msgid "Enclose hollerith constant in statement at %0 in parentheses"
-#~ msgstr "Encapsuler la constante Hollerith dans la déclaration à %0 entre parenthèses"
-
-#, fuzzy
-#~ msgid "nP control edit descriptor not followed by comma but followed by edit descriptor at %0 other than D, E, EN, F, or G"
-#~ msgstr "descripteur nP de contrôle d'édition n'est pas suivi par une virgule mais par un descripteur d'édition à %0 autre que D, E, EN, F ou G"
-
-#, fuzzy
-#~ msgid "Invalid edit descriptor at %0 following nP control edit descriptor"
-#~ msgstr "Descripteur d'édition invalide à %0 suivant le descripteur nP de contrôle d'édition"
-
-#, fuzzy
-#~ msgid "Invalid I specifier in FORMAT statement at %0 -- correct form: [r]Iw.[m]"
-#~ msgstr "Spécificateur I invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Iw.[m]"
-
#~ msgid "Invalid I specifier in FORMAT statement at %0"
#~ msgstr "spécificateur I invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid B specifier in FORMAT statement at %0 -- correct form: [r]Bw.[m]"
-#~ msgstr "Spécificateur B invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Bw.[m]"
-
#~ msgid "Invalid B specifier in FORMAT statement at %0"
#~ msgstr "spécificateur B invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid O specifier in FORMAT statement at %0 -- correct form: [r]Ow.[m]"
-#~ msgstr "Spécificateur O invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Ow.[m]"
-
#~ msgid "Invalid O specifier in FORMAT statement at %0"
#~ msgstr "spécificateur O invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid Z specifier in FORMAT statement at %0 -- correct form: [r]Zw.[m]"
-#~ msgstr "Spécificateur Z invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Zw.[m]"
-
#~ msgid "Invalid Z specifier in FORMAT statement at %0"
#~ msgstr "spécificateur Z invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid F specifier in FORMAT statement at %0 -- correct form: [r]Fw.d"
-#~ msgstr "Spécificateur F invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Fw.d"
-
#~ msgid "Invalid F specifier in FORMAT statement at %0"
#~ msgstr "spécificateur F invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid E specifier in FORMAT statement at %0 -- correct form: [r]Ew.d[Ee]"
-#~ msgstr "Spécificateur E invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Ew.d[Ee]"
-
#~ msgid "Invalid E specifier in FORMAT statement at %0"
#~ msgstr "spécificateur E invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid EN specifier in FORMAT statement at %0 -- correct form: [r]ENw.d[Ee]"
-#~ msgstr "Spécificateur EN invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]ENw.d[Ee]"
-
#~ msgid "Invalid EN specifier in FORMAT statement at %0"
#~ msgstr "spécificateur EN invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid G specifier in FORMAT statement at %0 -- correct form: [r]Gw.d[Ee]"
-#~ msgstr "Spécificateur G invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Gw.d[Ee]"
-
#~ msgid "Invalid G specifier in FORMAT statement at %0"
#~ msgstr "spécificateur G invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid L specifier in FORMAT statement at %0 -- correct form: [r]Lw"
-#~ msgstr "Spécificateur L invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Lw"
-
#~ msgid "Invalid L specifier in FORMAT statement at %0"
#~ msgstr "spécificateur L invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid A specifier in FORMAT statement at %0 -- correct form: [r]A[w]"
-#~ msgstr "Spécificateur A invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]A[w]"
-
#~ msgid "Invalid A specifier in FORMAT statement at %0"
#~ msgstr "spécificateur A invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid D specifier in FORMAT statement at %0 -- correct form: [r]Dw.d"
-#~ msgstr "Spécificateur D invalide dans la déclaration de FORMAT à %0 -- forme correcte: [r]Dw.d"
-
#~ msgid "Invalid D specifier in FORMAT statement at %0"
#~ msgstr "spécificateur D invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid Q specifier in FORMAT statement at %0 -- correct form: Q"
-#~ msgstr "Spécificateur Q invalide dans la déclaration de FORMAT à %0 -- forme correcte: Q"
-
#~ msgid "Invalid Q specifier in FORMAT statement at %0"
#~ msgstr "spécificateur Q invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid $ specifier in FORMAT statement at %0 -- correct form: $"
-#~ msgstr "Spécificateur $ invalide dans la déclaration de FORMAT à %0 -- forme correcte: $"
-
#~ msgid "Invalid $ specifier in FORMAT statement at %0"
#~ msgstr "spécificateur $ invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid P specifier in FORMAT statement at %0 -- correct form: kP"
-#~ msgstr "Spécificateur P invalide dans la déclaration de FORMAT à %0 -- forme correcte: kP"
-
#~ msgid "Invalid P specifier in FORMAT statement at %0"
#~ msgstr "spécificateur P invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid T specifier in FORMAT statement at %0 -- correct form: Tn"
-#~ msgstr "Spécificateur T invalide dans la déclaration de FORMAT à %0 -- forme correcte: Tn"
-
#~ msgid "Invalid T specifier in FORMAT statement at %0"
#~ msgstr "spécificateur T invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid TL specifier in FORMAT statement at %0 -- correct form: TLn"
-#~ msgstr "Spécificateur TL invalide dans la déclaration de FORMAT à %0 -- forme correcte: TLn"
-
#~ msgid "Invalid TL specifier in FORMAT statement at %0"
#~ msgstr "spécificateur TL invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid TR specifier in FORMAT statement at %0 -- correct form: TRn"
-#~ msgstr "Spécificateur TR invalide dans la déclaration de FORMAT à %0 -- forme correcte: TRn"
-
#~ msgid "Invalid TR specifier in FORMAT statement at %0"
#~ msgstr "spécificateur TR invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid X specifier in FORMAT statement at %0 -- correct form: nX"
-#~ msgstr "Spécificateur X invalide dans la déclaration de FORMAT à %0 -- forme correcte: nX"
-
#~ msgid "Invalid X specifier in FORMAT statement at %0"
#~ msgstr "spécificateur X invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid S specifier in FORMAT statement at %0 -- correct form: S"
-#~ msgstr "Spécificateur S invalide dans la déclaration de FORMAT à %0 -- forme correcte: S"
-
#~ msgid "Invalid S specifier in FORMAT statement at %0"
#~ msgstr "spécificateur S invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid SP specifier in FORMAT statement at %0 -- correct form: SP"
-#~ msgstr "Spécificateur SP invalide dans la déclaration de FORMAT à %0 -- forme correcte: SP"
-
#~ msgid "Invalid SP specifier in FORMAT statement at %0"
#~ msgstr "spécificateur SP invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid SS specifier in FORMAT statement at %0 -- correct form: SS"
-#~ msgstr "Spécificateur SS invalide dans la déclaration de FORMAT à %0 -- forme correcte: SS"
-
#~ msgid "Invalid SS specifier in FORMAT statement at %0"
#~ msgstr "spécificateur SS invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid BN specifier in FORMAT statement at %0 -- correct form: BN"
-#~ msgstr "Spécificateur BN invalide dans la déclaration de FORMAT à %0 -- forme correcte: BN"
-
#~ msgid "Invalid BN specifier in FORMAT statement at %0"
#~ msgstr "spécificateur BN invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid BZ specifier in FORMAT statement at %0 -- correct form: BZ"
-#~ msgstr "Spécificateur BZ invalide dans la déclaration de FORMAT à %0 -- forme correcte: BZ"
-
#~ msgid "Invalid BZ specifier in FORMAT statement at %0"
#~ msgstr "spécificateur BZ invalide dans la déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid : specifier in FORMAT statement at %0 -- correct form: :"
-#~ msgstr "Invalide : spécificateur dans la déclaration de FORMAT à %0 -- forme correcte : :"
-
#~ msgid "Invalid : specifier in FORMAT statement at %0"
#~ msgstr "Invalide: spécificateur de déclaration de FORMAT à %0"
-#, fuzzy
-#~ msgid "Invalid H specifier in FORMAT statement at %0 -- correct form: nHcharacters !where n is an unsigned decimal constant, and characters !contains exactly n characters (including spaces)"
-#~ msgstr "Spécificateur H invalide dans la déclaration de FORMAT à %0 -- forme correcte: nHcaractères !où n est une constante décimale non signée et les caractères !contiennte exactement n caractères (incluant les espaces)"
-
#~ msgid "Invalid H specifier in FORMAT statement at %0"
#~ msgstr "spécificateur H invalide dans la déclaration de FORMAT à %0"
-#~ msgid "Invalid token with FORMAT run-time expression at %0 -- use the traditional operators .LT., .LE., .GT., .GE., .EQ., and .NE. in place of the newer tokens <, <=, >, >=, ==, and !=, because > ends an expression within a FORMAT statement"
-#~ msgstr "Jeton invalide dans le FORMAT de l'expression d'exécution à %0 -- utiliser les opérateurs tradictionnels .LT., .LE., .GT., .GE., .EQ. et .NE. à la place des nouveaux jetons <, <=, >, >=, == et != parce que > termine l'expression dans la déclaration de FORMAT"
-
-#~ msgid "Invalid token with FORMAT run-time expression at %0"
-#~ msgstr "jeton invalide avec le FORMAT de l'expression d'exécution à %0"
-
-#, fuzzy
-#~ msgid "Defined operator at %0 contains a nonletter -- must contain only letters A-Z (or a-z)"
-#~ msgstr "L'opérateur défini à %0 ne contient pas une lettre -- doit contenir seulement des lettres A-Z (pas a-z)"
-
#~ msgid "Nonletter in defined operator at %0"
#~ msgstr "ne contient pas une non lettre dans l'opérateur défini à %0"
-#, fuzzy
-#~ msgid "Invalid type-declaration attribute at %0 -- must be one of: DIMENSION(array-spec), EXTERNAL, INTRINSIC, PARAMETER, or SAVE"
-#~ msgstr "Attribut de type invalide dans la déclaration à %0 -- doit être un de: DIMENSION(array-spec), EXTERNAL, INTRINSIC, PARAMETER, or SAVE"
-
#~ msgid "Invalid type-declaration attribute at %0"
#~ msgstr "type d'attribut de déclaration invalide à %0"
@@ -22254,10 +24088,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Range specification at %0 invalid"
#~ msgstr "spécification d'étendue à %0 invalide"
-#, fuzzy
-#~ msgid "Range specification at %0 useless; first expression greater than second expression in range, so range can never be matched by any selection expression"
-#~ msgstr "spécification d'étendue à %0 inutile; première expression plus grande que la seconde expression dans l'étendue, aussi l'étendue ne peut jamais être en concordance avec une expression de sélection"
-
#~ msgid "Useless range at %0"
#~ msgstr "étendue inutile à %0"
@@ -22285,12 +24115,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "FORMAT at %0 with run-time expression must follow first executable statement"
#~ msgstr "FORMAT à %0 dans l'expression lors de l'exécution doit suivre la première déclaration exécutable"
-#~ msgid "Unexpected token at %0 in implied-DO construct at %1 -- form of implied-DO is `(item-list,do-var=start,end[,incr])'"
-#~ msgstr "Jeton inattendu à %0 dans le construit DO implicite à %1 -- forme du DO implicite est «(item-list,do-var=start,end[,incr])»"
-
-#~ msgid "Unexpected token at %0 in implied-DO construct at %1"
-#~ msgstr "jeton inattendu à %0 dans le construit DO implcite à %1"
-
#~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but neither subexpression at %1 or %2 is of logical type"
#~ msgstr "opérateur booléen/logique à %0 doit opérer sur deux sous-expressions de type logique mais aucune des sous-expressions à %1 ou %2 n'est de type logique"
@@ -22450,13 +24274,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Padding of %A %D required before `%B' in common block `%C' at %0"
#~ msgstr "Remplissage de %A %D requis avant «%B» dans le bloc commun «%C» à %0"
-#, fuzzy
-#~ msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
-#~ msgstr "longueur de spécification invalide à %0 pour la déclaration IMPLICIT -- doit être l'expression d'une constante entière "
-
-#~ msgid "Invalid length specification at %0"
-#~ msgstr "spécification de longueur invalide à %0"
-
#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
#~ msgstr "Type du point d'entrée à %0 de la fonction est en conflit avec le type de point d'entrée précédent de la fonction -- doit être de longueur indentique ou zéro pour un type caractère"
@@ -22517,9 +24334,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Set class path and suppress system path"
#~ msgstr "Initialiser le chemin des classes et supprimer le chemin systèmes"
-#~ msgid "a -ifile option requires a -map option"
-#~ msgstr "l'option -ifile requiert l'option -map"
-
#~ msgid "<stdin>"
#~ msgstr "<stdin>"
@@ -22532,9 +24346,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "no file-scope type named `%D'"
#~ msgstr "pas de type de portée de fichier nommé `%D'"
-#~ msgid "%T is not a class type"
-#~ msgstr "%T n'est pas un type de classe"
-
#~ msgid "base clause without member specification for `%#T'"
#~ msgstr "clause de base sans spécification de membre pour `%#T'"
@@ -22556,9 +24367,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "type with more precision than %s"
#~ msgstr "type avec plus de precision que %s"
-#~ msgid "declaration of `%s' shadows previous local"
-#~ msgstr "déclaration de `%s' cache la déclaration locale précédente"
-
#~ msgid "ANSI C forbids const or volatile function types"
#~ msgstr "C ANSI interdit les types `const' ou de fonctions volatiles"
@@ -22571,12 +24379,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "unknown escape sequence: '\\' followed by char 0x%x"
#~ msgstr "séquence d'échappement inconnue: '\\' suivi du caractère 0x%x"
-#~ msgid "ISO C forbids `&&'"
-#~ msgstr "ISO C interdit `&&'"
-
-#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
-#~ msgstr "`[*]' dans la déclaration de paramètres est permis seulement avec ISO C 99"
-
#~ msgid "wrong type argument to %s"
#~ msgstr "type d'argument erroné pour %s"
@@ -22592,18 +24394,12 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Unable to find a temporary location for static chain register"
#~ msgstr "Incapable de trouver une location temporaire pour un registre chaîné statique"
-#~ msgid "Only initialized variables can be placed into the 8-bit area."
-#~ msgstr "Seuls les variables initialisées peuvent être placées dans une aire de 8 bits"
-
#~ msgid "Internal gcc abort from %s:%d"
#~ msgstr "Abandon interne gcc à partir de %s:%d"
#~ msgid "The local variable `insn' has the value:"
#~ msgstr "La variable locale `insn' a la valeur:"
-#~ msgid "Register '%c' is unknown"
-#~ msgstr "Registre '%c' est inconnu"
-
#~ msgid "Register '%c' already specified in allocation order"
#~ msgstr "Registre '%c' est déjà spécifié dans l'ordre d'allocation"
@@ -22649,18 +24445,9 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "`__alignof__' applied to a bit-field"
#~ msgstr "`__alignof__' appliqué à un champ de bits"
-#~ msgid "base class initializer specified, but no base class to initialize"
-#~ msgstr "classe de base d'initialiseurs spécifié, mais aucune classe de base éa initialiser"
-
-#~ msgid "initializer for unnamed base class ambiguous"
-#~ msgstr "initialiseur ambigü pour une classe de base non nommé"
-
#~ msgid "Do not treat the namespace `std' as a normal namespace"
#~ msgstr "Ne pas traiter l'espace nom `std' comme un espace nom normal"
-#~ msgid "ISO C++ forbids `&&'"
-#~ msgstr "ISO C++ interdit `&&'"
-
#~ msgid "taking dynamic typeid of object with -fno-rtti"
#~ msgstr "prendre le typeid dynamique d'objet avec -fno-rtti"
@@ -22691,9 +24478,6 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "expected to return to file \"%s\""
#~ msgstr "attendait retourner au fichier \"%s\""
-#~ msgid "expected to return to line number %u"
-#~ msgstr "attendait retourner au numéro de ligne %u"
-
#~ msgid "header flags for \"%s\" have changed"
#~ msgstr "fanion d'en-tête de \"%s\" a changé"
@@ -22768,12 +24552,3 @@ msgstr "-fPIC n'est pas valide avec -mcoff"
#~ msgid "Data size %ld.\n"
#~ msgstr "Taille des données %ld.\n"
-
-#~ msgid "bx]"
-#~ msgstr "bx]"
-
-#~ msgid "bx"
-#~ msgstr "bx"
-
-#~ msgid "cx"
-#~ msgstr "cx"
diff --git a/gcc/po/gcc.pot b/gcc/po/gcc.pot
index fd7713d79c6..3b51439c6c4 100644
--- a/gcc/po/gcc.pot
+++ b/gcc/po/gcc.pot
@@ -7,7 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-04-23 14:22+0200\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-05-03 04:30-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,140 +16,56 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: attribs.c:307
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr ""
-#: attribs.c:315
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr ""
-#: attribs.c:332
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
msgstr ""
-#: attribs.c:369
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
msgstr ""
-#: attribs.c:461 attribs.c:483 attribs.c:505 attribs.c:536 attribs.c:558
-#: attribs.c:583 attribs.c:606 attribs.c:636 attribs.c:674 attribs.c:721
-#: attribs.c:751 attribs.c:781 attribs.c:804 attribs.c:1049 attribs.c:1071
-#: attribs.c:1147 attribs.c:1203 attribs.c:1264 attribs.c:1298 attribs.c:1549
-#: config/arm/arm.c:2007 config/arm/arm.c:2034 config/avr/avr.c:4683
-#: config/h8300/h8300.c:3407 config/h8300/h8300.c:3432 config/i386/i386.c:1268
-#: config/i386/winnt.c:74
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2105
+#: config/arm/arm.c:2132 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1429 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr ""
-#: attribs.c:837
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr ""
-
-#: attribs.c:840
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr ""
-
-#: attribs.c:873
-msgid "section attribute cannot be specified for local variables"
-msgstr ""
-
-#: attribs.c:884
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr ""
-
-#: attribs.c:893
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr ""
-
-#: attribs.c:900
-msgid "section attributes are not supported for this target"
-msgstr ""
-
-#: attribs.c:942
-msgid "requested alignment is not a constant"
-msgstr ""
-
-#: attribs.c:947
-msgid "requested alignment is not a power of 2"
-msgstr ""
-
-#: attribs.c:952
-msgid "requested alignment is too large"
-msgstr ""
-
-#: attribs.c:979
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr ""
-
-#: attribs.c:1024
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr ""
-
-#: attribs.c:1034
-msgid "alias arg not a string"
-msgstr ""
-
-#: attribs.c:1081
-msgid "visibility arg not a string"
-msgstr ""
-
-#: attribs.c:1089
-msgid "visibility arg must be one of \"hidden\", \"protected\" or \"internal\""
-msgstr ""
-
-#: attribs.c:1114 attribs.c:1170
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr ""
-
-#: attribs.c:1121 attribs.c:1177
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr ""
-
-#: attribs.c:1261
-#, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr ""
-
-#: attribs.c:1326
-#, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr ""
-
-#: attribs.c:1350 attribs.c:1382
-msgid "no vector mode with the size and type specified could be found"
-msgstr ""
-
-#: builtins.c:281
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr ""
-#: builtins.c:761
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr ""
-#: builtins.c:768
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr ""
-#: builtins.c:775
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr ""
-#: builtins.c:782
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr ""
@@ -159,1297 +76,1457 @@ msgstr ""
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2764
+#: builtins.c:2984
msgid "__builtin_saveregs not supported by this target"
msgstr ""
-#: builtins.c:2806
+#: builtins.c:3026
msgid "argument of `__builtin_args_info' must be constant"
msgstr ""
-#: builtins.c:2812
+#: builtins.c:3032
msgid "argument of `__builtin_args_info' out of range"
msgstr ""
-#: builtins.c:2818
+#: builtins.c:3038
msgid "missing argument in `__builtin_args_info'"
msgstr ""
-#: builtins.c:2850
+#: builtins.c:3069
msgid "`va_start' used in function with fixed args"
msgstr ""
-#: builtins.c:2869
+#: builtins.c:3088
msgid "second parameter of `va_start' not last named argument"
msgstr ""
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2874
+#: builtins.c:3093
msgid "`__builtin_next_arg' called without an argument"
msgstr ""
-#: builtins.c:2978
+#: builtins.c:3179
msgid "too many arguments to function `va_start'"
msgstr ""
-#: builtins.c:3079
+#: builtins.c:3281
msgid "first argument to `va_arg' not of type `va_list'"
msgstr ""
#. Unfortunately, this is merely undefined, rather than a constraint
#. violation, so we cannot make this an error. If this call is never
#. executed, the program is still strictly conforming.
-#: builtins.c:3111
+#: builtins.c:3313
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr ""
-#: builtins.c:3116
+#: builtins.c:3318
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr ""
-#: builtins.c:3247
+#: builtins.c:3449
msgid "invalid arg to `__builtin_frame_address'"
msgstr ""
-#: builtins.c:3249
+#: builtins.c:3451
msgid "invalid arg to `__builtin_return_address'"
msgstr ""
-#: builtins.c:3263
+#: builtins.c:3465
msgid "unsupported arg to `__builtin_frame_address'"
msgstr ""
-#: builtins.c:3265
+#: builtins.c:3467
msgid "unsupported arg to `__builtin_return_address'"
msgstr ""
-#: builtins.c:3433
+#: builtins.c:3639
msgid "second arg to `__builtin_expect' must be a constant"
msgstr ""
-#: builtins.c:3914
+#: builtins.c:4125
msgid "__builtin_longjmp second argument must be 1"
msgstr ""
#. just do library call, if unknown builtin
-#: builtins.c:3987 c-common.c:3829
+#: builtins.c:4189 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr ""
-#: c-common.c:554
-#, c-format
-msgid "`%s' is not defined outside of function scope"
+#: builtins.c:4262
+msgid "target format does not support infinity"
msgstr ""
-#: c-common.c:594
-msgid ""
-"concatenation of string literals with __FUNCTION__ is deprecated. This "
-"feature will be removed in future"
+#: c-common.c:1168
+#, c-format
+msgid "`%s' is not defined outside of function scope"
msgstr ""
-#: c-common.c:663
+#: c-common.c:1189
#, c-format
msgid ""
"string length `%d' is greater than the length `%d' ISO C%d compilers are "
"required to support"
msgstr ""
-#: c-common.c:711
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr ""
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr ""
-#: c-common.c:732
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr ""
-#: c-common.c:741
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr ""
-#: c-common.c:747
+#: c-common.c:1379
msgid "vector overflow in expression"
msgstr ""
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:770
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr ""
-#: c-common.c:772
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr ""
-#: c-common.c:820
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr ""
-#: c-common.c:968
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr ""
-#: c-common.c:1259
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr ""
-#: c-common.c:1292
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr ""
-#: c-common.c:1593
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr ""
-#: c-common.c:1644
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr ""
-#: c-common.c:1880 c-common.c:1889
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr ""
-#: c-common.c:1882 c-common.c:1891
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr ""
-#: c-common.c:1961
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr ""
-#: c-common.c:1970
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr ""
-#: c-common.c:2017
+#: c-common.c:2641
msgid "pointer of type `void *' used in arithmetic"
msgstr ""
-#: c-common.c:2023
+#: c-common.c:2647
msgid "pointer to a function used in arithmetic"
msgstr ""
-#: c-common.c:2029
+#: c-common.c:2653
msgid "pointer to member function used in arithmetic"
msgstr ""
-#: c-common.c:2035
+#: c-common.c:2659
msgid "pointer to a member used in arithmetic"
msgstr ""
-#: c-common.c:2122 f/com.c:14845
+#: c-common.c:2746 f/com.c:14764
msgid "struct type value used where scalar is required"
msgstr ""
-#: c-common.c:2126 f/com.c:14849
+#: c-common.c:2750 f/com.c:14768
msgid "union type value used where scalar is required"
msgstr ""
-#: c-common.c:2130 f/com.c:14853
+#: c-common.c:2754 f/com.c:14772
msgid "array type value used where scalar is required"
msgstr ""
-#: c-common.c:2250 f/com.c:14979
+#: c-common.c:2874 f/com.c:14905
msgid "suggest parentheses around assignment used as truth value"
msgstr ""
-#: c-common.c:2294 c-common.c:2326
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr ""
-#: c-common.c:2441
-msgid "__alignof__ applied to an incomplete type"
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
msgstr ""
-#: c-common.c:2467
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr ""
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr ""
+
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr ""
-#: c-common.c:2960
+#: c-common.c:3618
#, c-format
msgid "cannot disable built-in function `%s'"
msgstr ""
-#: c-common.c:3137 c-typeck.c:1794
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr ""
-#: c-common.c:3143 c-typeck.c:1647
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr ""
-#: c-common.c:3162
+#: c-common.c:3812
#, c-format
msgid "non-floating-point argument to function `%s'"
msgstr ""
-#: c-common.c:3431
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr ""
-#: c-common.c:3437
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr ""
-#: c-common.c:3439
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr ""
-#: c-common.c:3469
+#: c-common.c:4119
msgid "empty range specified"
msgstr ""
-#: c-common.c:3520
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr ""
-#: c-common.c:3522
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
msgstr ""
-#: c-common.c:3526
+#: c-common.c:4176
msgid "duplicate case value"
msgstr ""
-#: c-common.c:3527
+#: c-common.c:4177
msgid "previously used here"
msgstr ""
-#: c-common.c:3531
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr ""
-#: c-common.c:3532
+#: c-common.c:4182
msgid "this is the first default label"
msgstr ""
-#: c-common.c:3560
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
msgstr ""
-#: c-common.c:3562
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
msgstr ""
-#: c-common.c:4166
-msgid "-Wformat-y2k ignored without -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
msgstr ""
-#: c-common.c:4168
-msgid "-Wformat-extra-args ignored without -Wformat"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
msgstr ""
-#: c-common.c:4170
-msgid "-Wformat-nonliteral ignored without -Wformat"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
msgstr ""
-#: c-common.c:4172
-msgid "-Wformat-security ignored without -Wformat"
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
msgstr ""
-#: c-common.c:4174
-msgid "-Wmissing-format-attribute ignored without -Wformat"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
msgstr ""
-#: c-common.c:4272
+#: c-common.c:5713
#, c-format
-msgid "declaration of `%s' shadows %s"
+msgid "section of `%s' conflicts with previous declaration"
msgstr ""
-#: c-convert.c:80 c-typeck.c:1048 c-typeck.c:4049 cp/typeck.c:1675
-#: cp/typeck.c:6176
-msgid "void value not ignored as it ought to be"
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
msgstr ""
-#: c-convert.c:112 java/typeck.c:150
-msgid "conversion to non-scalar type requested"
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
msgstr ""
-#: c-decl.c:587
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr ""
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr ""
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr ""
+
+#: c-common.c:5808
#, c-format
-msgid "unknown C standard `%s'"
+msgid "alignment may not be specified for `%s'"
msgstr ""
-#: c-decl.c:748
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr ""
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr ""
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr ""
+
+#: c-common.c:5919
+msgid ""
+"visibility arg must be one of \"default\", \"hidden\", \"protected\" or "
+"\"internal\""
+msgstr ""
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr ""
+
+#: c-common.c:5962
+msgid ""
+"tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-"
+"dynamic\" or \"global-dynamic\""
+msgstr ""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr ""
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr ""
+
+#: c-common.c:6114
+msgid "cleanup arg not an identifier"
+msgstr ""
+
+#: c-common.c:6121
+msgid "cleanup arg not a function"
+msgstr ""
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr ""
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr ""
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr ""
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr ""
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr ""
+
+#: c-common.c:6437
+#, c-format
+msgid ""
+"nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr ""
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4056 cp/typeck.c:1615
+#: cp/typeck.c:5943
+msgid "void value not ignored as it ought to be"
+msgstr ""
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr ""
+
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr ""
-#: c-decl.c:924
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:927
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:930
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr ""
-#: c-decl.c:1044 c-decl.c:1185 java/decl.c:1371
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr ""
-#: c-decl.c:1050 c-decl.c:1192 java/decl.c:1377
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr ""
-#: c-decl.c:1309 cp/decl.c:3125
+#: c-decl.c:893 cp/decl.c:3341
#, c-format
msgid "function `%s' redeclared as inline"
msgstr ""
-#: c-decl.c:1311 cp/decl.c:3127
+#: c-decl.c:895 cp/decl.c:3343
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr ""
-#: c-decl.c:1318 cp/decl.c:3134
+#: c-decl.c:902 cp/decl.c:3350
#, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr ""
-#: c-decl.c:1320 cp/decl.c:3136
+#: c-decl.c:904 cp/decl.c:3352
#, c-format
msgid "previous declaration of function `%s' was inline"
msgstr ""
-#: c-decl.c:1349 c-decl.c:1395
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr ""
-#: c-decl.c:1351
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr ""
-#: c-decl.c:1357
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr ""
-#: c-decl.c:1361 c-decl.c:1364
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr ""
-#: c-decl.c:1368 objc/objc-act.c:2292 objc/objc-act.c:5994
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6157
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr ""
-#: c-decl.c:1369 c-decl.c:1560 c-decl.c:1705 objc/objc-act.c:2294
-#: objc/objc-act.c:5996 objc/objc-act.c:6051
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6159 objc/objc-act.c:6214
#, c-format
msgid "previous declaration of `%s'"
msgstr ""
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1464
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr ""
-#: c-decl.c:1507 c-decl.c:1526
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr ""
-#: c-decl.c:1549
+#: c-decl.c:1133
msgid ""
"a parameter list with an ellipsis can't match an empty parameter name list "
"declaration"
msgstr ""
-#: c-decl.c:1555
+#: c-decl.c:1139
msgid ""
"an argument type that has a default promotion can't match an empty parameter "
"name list declaration"
msgstr ""
-#: c-decl.c:1570 c-decl.c:1593
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr ""
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr ""
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr ""
-#: c-decl.c:1573
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr ""
-#: c-decl.c:1576
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr ""
-#: c-decl.c:1620
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr ""
-#: c-decl.c:1621 c-decl.c:1629 c-decl.c:1640
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr ""
-#: c-decl.c:1628
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr ""
-#: c-decl.c:1638
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr ""
-#: c-decl.c:1656
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr ""
-#: c-decl.c:1662
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr ""
-#: c-decl.c:1669
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr ""
-#: c-decl.c:1677
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr ""
-#: c-decl.c:1684
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr ""
-#: c-decl.c:1691
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr ""
-#: c-decl.c:1704
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr ""
-#: c-decl.c:2008 java/decl.c:1070
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
msgstr ""
-#: c-decl.c:2011 java/decl.c:1073
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
msgstr ""
-#: c-decl.c:2032 cp/decl.c:4233
+#: c-decl.c:1643 cp/decl.c:4500
msgid "a parameter"
msgstr ""
-#: c-decl.c:2034 cp/decl.c:4250
+#: c-decl.c:1645 cp/decl.c:4517
msgid "a previous local"
msgstr ""
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2038 cp/decl.c:4254
+#: c-decl.c:1649 cp/decl.c:4521
msgid "a global declaration"
msgstr ""
-#: c-decl.c:2082
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr ""
-#: c-decl.c:2101 java/decl.c:1023
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr ""
-#: c-decl.c:2115 c-decl.c:2290
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr ""
-#: c-decl.c:2218 cp/decl.c:4092
+#: c-decl.c:1829 cp/decl.c:4357
msgid "type mismatch with previous external decl"
msgstr ""
-#: c-decl.c:2219
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr ""
-#: c-decl.c:2232
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr ""
-#: c-decl.c:2234
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr ""
-#: c-decl.c:2269
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr ""
-#: c-decl.c:2294
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr ""
-#: c-decl.c:2318
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr ""
-#: c-decl.c:2360
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr ""
-#: c-decl.c:2481
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr ""
-#: c-decl.c:2501 c-decl.c:2503
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr ""
-#: c-decl.c:2582
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr ""
-#: c-decl.c:2639
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr ""
-#: c-decl.c:2642
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr ""
-#: c-decl.c:3098
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr ""
-#: c-decl.c:3117
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr ""
-#: c-decl.c:3124
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr ""
-#: c-decl.c:3129 c-parse.y:731 c-parse.y:733 parse.y:739 parse.y:1824
-#: objc-parse.y:768 objc-parse.y:770 objc-parse.y:3002
+#: c-decl.c:2710 c-parse.y:711 c-parse.y:713 parse.y:724 parse.y:1765
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3043
msgid "empty declaration"
msgstr ""
-#: c-decl.c:3159
+#: c-decl.c:2740
msgid ""
-"ISO C89 does not support `static' or type qualifiers in parameter array "
+"ISO C90 does not support `static' or type qualifiers in parameter array "
"declarators"
msgstr ""
-#: c-decl.c:3161
-msgid "ISO C89 does not support `[*]' array declarators"
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
msgstr ""
-#: c-decl.c:3164
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr ""
-#: c-decl.c:3183
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:3257
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr ""
-#: c-decl.c:3271
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
msgstr ""
-#: c-decl.c:3278
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr ""
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3285
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr ""
-#: c-decl.c:3305 c-typeck.c:4846
+#: c-decl.c:2880 c-typeck.c:4890
msgid "variable-sized object may not be initialized"
msgstr ""
-#: c-decl.c:3311
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr ""
-#: c-decl.c:3317
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr ""
-#: c-decl.c:3330
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr ""
-#: c-decl.c:3369 c-decl.c:5999 cp/decl.c:7359 cp/decl.c:13616
+#: c-decl.c:2954 c-decl.c:5837 cp/decl.c:7785 cp/decl.c:14408
#, c-format
msgid "inline function `%s' given attribute noinline"
msgstr ""
-#: c-decl.c:3452
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr ""
-#: c-decl.c:3457
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr ""
-#: c-decl.c:3473
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr ""
-#: c-decl.c:3501
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr ""
-#: c-decl.c:3511
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr ""
-#: c-decl.c:3570
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr ""
-#: c-decl.c:3634
+#: c-decl.c:3247
#, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr ""
-#: c-decl.c:3938 cp/decl.c:10164
+#: c-decl.c:3592 cp/decl.c:10963
msgid "`long long long' is too long for GCC"
msgstr ""
-#: c-decl.c:3943
-msgid "ISO C89 does not support `long long'"
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
msgstr ""
-#: c-decl.c:3948 cp/decl.c:10169
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10968
#, c-format
msgid "duplicate `%s'"
msgstr ""
-#: c-decl.c:3954 cp/decl.c:10193
+#: c-decl.c:3619 cp/decl.c:10975
+msgid "`__thread' before `extern'"
+msgstr ""
+
+#: c-decl.c:3621 cp/decl.c:10977
+msgid "`__thread' before `static'"
+msgstr ""
+
+#: c-decl.c:3629 cp/decl.c:11004
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr ""
-#: c-decl.c:3974 cp/decl.c:10198
+#: c-decl.c:3649 cp/decl.c:11009
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:4013
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr ""
-#: c-decl.c:4042
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr ""
-#: c-decl.c:4046 cp/decl.c:10313
+#: c-decl.c:3721 cp/decl.c:11124
#, c-format
msgid "long or short specified with char for `%s'"
msgstr ""
-#: c-decl.c:4053 cp/decl.c:10317
+#: c-decl.c:3728 cp/decl.c:11128
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr ""
-#: c-decl.c:4056
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr ""
-#: c-decl.c:4062
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr ""
-#: c-decl.c:4064 cp/decl.c:10306
+#: c-decl.c:3739 cp/decl.c:11117
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr ""
-#: c-decl.c:4070 cp/decl.c:10326
+#: c-decl.c:3745 cp/decl.c:11137
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr ""
-#: c-decl.c:4089 cp/decl.c:10347
+#: c-decl.c:3763 cp/decl.c:11158
#, c-format
msgid "complex invalid for `%s'"
msgstr ""
-#: c-decl.c:4131
-msgid "ISO C89 does not support complex types"
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
msgstr ""
-#: c-decl.c:4143
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr ""
-#: c-decl.c:4149 c-decl.c:4161
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr ""
-#: c-decl.c:4176 c-decl.c:4608 cp/decl.c:10962
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11771
msgid "duplicate `const'"
msgstr ""
-#: c-decl.c:4178 c-decl.c:4612 cp/decl.c:10966
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11775
msgid "duplicate `restrict'"
msgstr ""
-#: c-decl.c:4180 c-decl.c:4610 cp/decl.c:10964
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11773
msgid "duplicate `volatile'"
msgstr ""
-#: c-decl.c:4202 cp/decl.c:10502
+#: c-decl.c:3882 cp/decl.c:11321
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr ""
-#: c-decl.c:4211
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr ""
-#: c-decl.c:4213
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr ""
-#: c-decl.c:4215
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr ""
-#: c-decl.c:4228
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr ""
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr ""
-#: c-decl.c:4232 cp/decl.c:10549
+#: c-decl.c:3915 cp/decl.c:11368
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr ""
-#: c-decl.c:4235 cp/decl.c:10551
+#: c-decl.c:3918 cp/decl.c:11370
msgid "storage class specified for typename"
msgstr ""
-#: c-decl.c:4247 cp/decl.c:10565
+#: c-decl.c:3930 cp/decl.c:11385
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr ""
-#: c-decl.c:4249 cp/decl.c:10568
+#: c-decl.c:3932 cp/decl.c:11388
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr ""
-#: c-decl.c:4253 cp/decl.c:10572
+#: c-decl.c:3937 cp/decl.c:11396
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr ""
+
+#: c-decl.c:3942 cp/decl.c:11392
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr ""
-#: c-decl.c:4256 cp/decl.c:10576
+#: c-decl.c:3948 cp/decl.c:11402
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
msgstr ""
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4291 c-decl.c:4480
+#: c-decl.c:3987 c-decl.c:4188
msgid "static or type qualifiers in non-parameter array declarator"
msgstr ""
-#: c-decl.c:4335
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr ""
-#: c-decl.c:4341
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr ""
-#: c-decl.c:4362
+#: c-decl.c:4042 c-decl.c:5341
+msgid "invalid use of structure with flexible array member"
+msgstr ""
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr ""
-#: c-decl.c:4367
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr ""
-#: c-decl.c:4374
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr ""
-#: c-decl.c:4387
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
msgstr ""
-#: c-decl.c:4390
+#: c-decl.c:4089
#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
+msgid "ISO C90 forbids variable-size array `%s'"
msgstr ""
-#: c-decl.c:4420 c-decl.c:4634 cp/decl.c:11172
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11980
#, c-format
msgid "size of array `%s' is too large"
msgstr ""
-#: c-decl.c:4437
-msgid "ISO C89 does not support flexible array members"
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
msgstr ""
-#: c-decl.c:4447
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr ""
-#: c-decl.c:4454 c-decl.c:4684
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
msgstr ""
-#: c-decl.c:4500 cp/decl.c:10713
+#: c-decl.c:4208 cp/decl.c:11528
#, c-format
msgid "`%s' declared as function returning a function"
msgstr ""
-#: c-decl.c:4505 cp/decl.c:10718
+#: c-decl.c:4213 cp/decl.c:11533
#, c-format
msgid "`%s' declared as function returning an array"
msgstr ""
-#: c-decl.c:4533
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
msgstr ""
-#: c-decl.c:4537
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4566 c-decl.c:4649 c-decl.c:4773 c-decl.c:4863
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4606 cp/decl.c:10958
+#: c-decl.c:4314 cp/decl.c:11767
msgid "invalid type modifier within pointer declarator"
msgstr ""
-#: c-decl.c:4704 cp/decl.c:11450
+#: c-decl.c:4412 cp/decl.c:12265
#, c-format
msgid "variable or field `%s' declared void"
msgstr ""
-#: c-decl.c:4737
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4762
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr ""
-#: c-decl.c:4807
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr ""
-#: c-decl.c:4813
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr ""
-#: c-decl.c:4845 c-decl.c:4847 c-decl.c:4854
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr ""
-#: c-decl.c:4869
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr ""
-#: c-decl.c:4884
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr ""
-#: c-decl.c:4937
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr ""
-#: c-decl.c:5010 c-decl.c:6051
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:10035
+msgid "thread-local storage not supported for this target"
+msgstr ""
+
+#: c-decl.c:4732 c-decl.c:5889
msgid "function declaration isn't a prototype"
msgstr ""
-#: c-decl.c:5016
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:5048 c-decl.c:6431
+#: c-decl.c:4770 c-decl.c:6259
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr ""
-#: c-decl.c:5051
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr ""
-#: c-decl.c:5072
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr ""
-#: c-decl.c:5075
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr ""
-#: c-decl.c:5140
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr ""
-#: c-decl.c:5181
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr ""
-#: c-decl.c:5212
+#: c-decl.c:4934
#, c-format
msgid "`struct %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5215
+#: c-decl.c:4937
#, c-format
msgid "`union %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5218
+#: c-decl.c:4940
#, c-format
msgid "`enum %s' declared inside parameter list"
msgstr ""
-#: c-decl.c:5225
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr ""
-#: c-decl.c:5227
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr ""
-#: c-decl.c:5229
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr ""
-#: c-decl.c:5233
+#: c-decl.c:4955
msgid ""
"its scope is only this definition or declaration, which is probably not what "
"you want"
msgstr ""
-#: c-decl.c:5312
+#: c-decl.c:5032
#, c-format
msgid "redefinition of `union %s'"
msgstr ""
-#: c-decl.c:5315
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
msgstr ""
-#: c-decl.c:5354
-msgid "unnamed fields of type other than struct or union are not allowed"
+#: c-decl.c:5105 cp/decl.c:7557
+msgid "declaration does not declare anything"
msgstr ""
-#: c-decl.c:5395 c-decl.c:5398
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr ""
-#: c-decl.c:5396 c-decl.c:5399 c-decl.c:5410
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr ""
-#: c-decl.c:5396 c-decl.c:5399
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr ""
-#: c-decl.c:5409
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
msgstr ""
-#: c-decl.c:5410
+#: c-decl.c:5184
msgid "struct"
msgstr ""
-#: c-decl.c:5411
+#: c-decl.c:5185
msgid "named members"
msgstr ""
-#: c-decl.c:5411
+#: c-decl.c:5185
msgid "members"
msgstr ""
-#: c-decl.c:5450
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr ""
-#: c-decl.c:5463
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr ""
-#: c-decl.c:5474
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr ""
-#: c-decl.c:5486
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr ""
-#: c-decl.c:5497
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr ""
-#: c-decl.c:5499
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr ""
-#: c-decl.c:5501
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr ""
-#: c-decl.c:5515
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr ""
-#: c-decl.c:5561
+#: c-decl.c:5324
msgid "flexible array member in union"
msgstr ""
-#: c-decl.c:5563
+#: c-decl.c:5329
msgid "flexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5565
+#: c-decl.c:5334
msgid "flexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5590
+#: c-decl.c:5366
#, c-format
msgid "duplicate member `%s'"
msgstr ""
-#: c-decl.c:5634
+#: c-decl.c:5457
msgid "union cannot be made transparent"
msgstr ""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5728
+#: c-decl.c:5567
#, c-format
msgid "redeclaration of `enum %s'"
msgstr ""
-#: c-decl.c:5762
+#: c-decl.c:5601
msgid "enum defined inside parms"
msgstr ""
-#: c-decl.c:5795
+#: c-decl.c:5634
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5904
+#: c-decl.c:5743
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr ""
-#: c-decl.c:5917
+#: c-decl.c:5756
msgid "overflow in enumeration values"
msgstr ""
-#: c-decl.c:5922
+#: c-decl.c:5761
msgid "ISO C restricts enumerator values to range of `int'"
msgstr ""
-#: c-decl.c:6005
+#: c-decl.c:5843
msgid "return type is an incomplete type"
msgstr ""
-#: c-decl.c:6013
+#: c-decl.c:5851
msgid "return type defaults to `int'"
msgstr ""
-#: c-decl.c:6060
+#: c-decl.c:5898
#, c-format
msgid "no previous prototype for `%s'"
msgstr ""
-#: c-decl.c:6067
+#: c-decl.c:5905
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr ""
-#: c-decl.c:6073
+#: c-decl.c:5911
#, c-format
msgid "no previous declaration for `%s'"
msgstr ""
-#: c-decl.c:6080
+#: c-decl.c:5918
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr ""
-#: c-decl.c:6104 c-decl.c:6667
+#: c-decl.c:5942 c-decl.c:6495
#, c-format
msgid "return type of `%s' is not `int'"
msgstr ""
-#: c-decl.c:6120
+#: c-decl.c:5958
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr ""
-#: c-decl.c:6129
+#: c-decl.c:5967
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr ""
-#: c-decl.c:6138
+#: c-decl.c:5976
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr ""
-#: c-decl.c:6147
+#: c-decl.c:5985
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr ""
-#: c-decl.c:6150
+#: c-decl.c:5988
#, c-format
msgid "`%s' is normally a non-static function"
msgstr ""
-#: c-decl.c:6258
+#: c-decl.c:6086
msgid "parm types given both in parmlist and separately"
msgstr ""
-#: c-decl.c:6279
+#: c-decl.c:6107
msgid "parameter name omitted"
msgstr ""
-#: c-decl.c:6283 c-decl.c:6385
+#: c-decl.c:6111 c-decl.c:6213
#, c-format
msgid "parameter `%s' declared void"
msgstr ""
-#: c-decl.c:6359
+#: c-decl.c:6187
msgid "parameter name missing from parameter list"
msgstr ""
-#: c-decl.c:6378
+#: c-decl.c:6206
#, c-format
msgid "multiple parameters named `%s'"
msgstr ""
-#: c-decl.c:6400 c-decl.c:6402
+#: c-decl.c:6228 c-decl.c:6230
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr ""
-#: c-decl.c:6438
+#: c-decl.c:6266
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr ""
-#: c-decl.c:6486
+#: c-decl.c:6314
msgid "number of arguments doesn't match prototype"
msgstr ""
-#: c-decl.c:6516
+#: c-decl.c:6344
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr ""
-#: c-decl.c:6526
+#: c-decl.c:6354
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr ""
-#: c-decl.c:6699 cp/decl.c:14311
+#: c-decl.c:6527 cp/decl.c:15118
msgid "no return statement in function returning non-void"
msgstr ""
-#: c-decl.c:6855
+#: c-decl.c:6534
msgid "this function may return with or without a value"
msgstr ""
-#: c-decl.c:6875
+#: c-decl.c:6738
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr ""
-#: c-decl.c:6879
+#: c-decl.c:6742
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr ""
@@ -1457,889 +1534,947 @@ msgstr ""
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:6934
+#: c-decl.c:6800
msgid "`for' loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6958
+#: c-decl.c:6824
#, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6961
+#: c-decl.c:6827
#, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6964
+#: c-decl.c:6830
#, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6972
+#: c-decl.c:6838
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6974
+#: c-decl.c:6840
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6976
+#: c-decl.c:6842
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr ""
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
msgstr ""
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
msgstr ""
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
msgstr ""
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr ""
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr ""
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr ""
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr ""
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr ""
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr ""
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr ""
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr ""
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr ""
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr ""
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr ""
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr ""
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr ""
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr ""
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr ""
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr ""
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr ""
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr ""
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1790
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr ""
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
msgstr ""
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
msgstr ""
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
msgstr ""
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr ""
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
msgstr ""
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr ""
-#: c-format.c:645
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
msgstr ""
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr ""
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr ""
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
msgstr ""
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
msgstr ""
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr ""
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr ""
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr ""
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr ""
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr ""
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr ""
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr ""
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr ""
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr ""
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
msgstr ""
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr ""
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr ""
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr ""
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr ""
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr ""
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character"
msgstr ""
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character in strfmon format"
msgstr ""
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr ""
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr ""
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
msgstr ""
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr ""
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
msgstr ""
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr ""
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr ""
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr ""
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr ""
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr ""
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
msgstr ""
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr ""
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr ""
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
msgstr ""
-#: c-format.c:1122 c-format.c:1143 c-format.c:2200
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
msgstr ""
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
msgstr ""
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
msgstr ""
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr ""
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
msgstr ""
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
msgstr ""
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
msgstr ""
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
msgstr ""
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr ""
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
msgstr ""
-#: c-format.c:1365
-msgid "zero-length format string"
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
msgstr ""
-#: c-format.c:1368
+#: c-format.c:1361
msgid "format is a wide character string"
msgstr ""
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
msgstr ""
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr ""
-
-#: c-format.c:1669
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr ""
-#: c-format.c:1684
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr ""
-#: c-format.c:1723 c-format.c:1960
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
msgstr ""
-#: c-format.c:1736
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
msgstr ""
-#: c-format.c:1756 c-format.c:1874 c-format.c:2154 c-format.c:2207
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr ""
-#: c-format.c:1816
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
msgstr ""
-#: c-format.c:1835
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr ""
-#: c-format.c:1889
+#: c-format.c:1801
msgid "field precision"
msgstr ""
-#: c-format.c:1904
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr ""
-#: c-format.c:1944
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr ""
-#: c-format.c:1994
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr ""
-#: c-format.c:2005
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr ""
-#: c-format.c:2008
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr ""
-#: c-format.c:2015
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
msgstr ""
-#: c-format.c:2031
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
msgstr ""
-#: c-format.c:2040
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr ""
-#: c-format.c:2049
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
msgstr ""
-#: c-format.c:2082
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
msgstr ""
-#: c-format.c:2086
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
msgstr ""
-#: c-format.c:2092
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
msgstr ""
-#: c-format.c:2096
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr ""
-#: c-format.c:2115
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr ""
-#: c-format.c:2118
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr ""
#. The end of the format string was reached.
-#: c-format.c:2134
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr ""
-#: c-format.c:2147
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr ""
-#: c-format.c:2168
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
msgstr ""
-#: c-format.c:2183
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr ""
-#: c-format.c:2185
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
msgstr ""
-#: c-format.c:2299
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2308
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2328
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr ""
-#: c-format.c:2338
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr ""
-#: c-format.c:2345
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr ""
-#: c-format.c:2347
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr ""
-#: c-format.c:2418
+#: c-format.c:2330
msgid "pointer"
msgstr ""
-#: c-format.c:2420
+#: c-format.c:2332
msgid "different type"
msgstr ""
-#: c-format.c:2441
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr ""
-#: c-format.c:2444
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr ""
-#: c-lex.c:298
-msgid "badly nested C headers from preprocessor"
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
msgstr ""
-#: c-lex.c:348
-#, c-format
-msgid "ignoring #pragma %s %s"
+#: c-lex.c:293
+msgid "badly nested C headers from preprocessor"
msgstr ""
-#: c-lex.c:350
+#: c-lex.c:336
#, c-format
-msgid "ignoring #pragma %s"
+msgid "ignoring #pragma %s %s"
msgstr ""
-#: c-lex.c:400
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr ""
-#: c-lex.c:646
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr ""
-#: c-lex.c:732
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
msgstr ""
-#: c-lex.c:734
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
msgstr ""
-#: c-lex.c:832
-msgid "too many decimal points in floating constant"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
msgstr ""
-#: c-lex.c:834
-msgid "decimal point in exponent - impossible!"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
msgstr ""
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:845
-msgid "underscore in number"
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
msgstr ""
-#: c-lex.c:907
-msgid "numeric constant with no digits"
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
msgstr ""
-#: c-lex.c:910
-msgid "numeric constant contains digits beyond the radix"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
msgstr ""
-#: c-lex.c:921
-msgid "hexadecimal floating constant has no exponent"
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
msgstr ""
-#: c-lex.c:933
-msgid "floating constant exponent has no digits"
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
msgstr ""
-#: c-lex.c:953
-msgid "more than one 'f' suffix on floating constant"
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
msgstr ""
-#: c-lex.c:956
-msgid "traditional C rejects the 'f' suffix"
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
msgstr ""
-#: c-lex.c:963
-msgid "more than one 'l' suffix on floating constant"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
msgstr ""
-#: c-lex.c:966
-msgid "traditional C rejects the 'l' suffix"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-lex.c:974
-msgid "more than one 'i' or 'j' suffix on floating constant"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
msgstr ""
-#: c-lex.c:976 c-lex.c:1081
-msgid "ISO C forbids imaginary numeric constants"
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
msgstr ""
-#: c-lex.c:981
-msgid "invalid suffix on floating constant"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
msgstr ""
-#: c-lex.c:990
-msgid "both 'f' and 'l' suffixes on floating constant"
+#: c-opts.c:1153
+msgid ""
+"-fhandle-exceptions has been renamed to -fexceptions (and is now on by "
+"default)"
msgstr ""
-#: c-lex.c:1008
-msgid "hexadecimal floating constants are only valid in C99"
+#: c-opts.c:1273
+msgid "output filename specified twice"
msgstr ""
-#: c-lex.c:1022
-msgid "floating point number exceeds range of 'double'"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
msgstr ""
-#: c-lex.c:1050
-msgid "two 'u' suffixes on integer constant"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
msgstr ""
-#: c-lex.c:1053
-msgid "traditional C rejects the 'u' suffix"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
msgstr ""
-#: c-lex.c:1064
-msgid "three 'l' suffixes on integer constant"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
msgstr ""
-#: c-lex.c:1066
-msgid "'lul' is not a valid integer suffix"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
msgstr ""
-#: c-lex.c:1068
-msgid "'Ll' and 'lL' are not valid integer suffixes"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
msgstr ""
-#: c-lex.c:1071
-msgid "ISO C89 forbids long long integer constants"
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
msgstr ""
-#: c-lex.c:1079
-msgid "more than one 'i' or 'j' suffix on integer constant"
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
msgstr ""
-#: c-lex.c:1086
-msgid "invalid suffix on integer constant"
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
msgstr ""
-#: c-lex.c:1094
+#: c-opts.c:1487
#, c-format
-msgid ""
-"integer constant is too large for this configuration of the compiler - "
-"truncated to %d bits"
+msgid "when writing output to %s"
msgstr ""
-#: c-lex.c:1178
-msgid "width of integer constant is different in traditional C"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
msgstr ""
-#: c-lex.c:1180
-msgid "integer constant is unsigned in ISO C, signed in traditional C"
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
msgstr ""
-#: c-lex.c:1182
-msgid "width of integer constant may change on other systems in traditional C"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other "
+"files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include "
+"path\n"
msgstr ""
-#: c-lex.c:1192
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info "
+"docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be "
+"used)\n"
+" -nostdinc++ Do not search system include directories for C+"
+"+\n"
+" -o <file> Put output into <file>\n"
msgstr ""
-#: c-lex.c:1195
-msgid "an unsigned long long int"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
msgstr ""
-#: c-lex.c:1196
-msgid "a long long int"
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional "
+"C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
msgstr ""
-#: c-lex.c:1197
-msgid "an unsigned long int"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
msgstr ""
-#: c-lex.c:1201
-msgid "decimal constant is so large that it is unsigned"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
msgstr ""
-#: c-lex.c:1210
-msgid "complex integer constant is too wide for 'complex int'"
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
msgstr ""
-#: c-lex.c:1221
-msgid "integer constant is larger than the maximum value for its type"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
msgstr ""
-#: c-lex.c:1225
-#, c-format
-msgid "missing white space after number '%.*s'"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at "
+"end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
msgstr ""
-#: c-lex.c:1261 cpplex.c:1850
-msgid "ignoring invalid multibyte character"
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
msgstr ""
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 parse.y:51 objc-parse.y:57
+#: c-parse.y:31 parse.y:26 objc-parse.y:55 op27972.c:6663
msgid "syntax error"
msgstr ""
-#: /usr/share/bison/bison.simple:176 /usr/share/bison.simple:112
+#: c-p30735.c:2081 gengtype-yacc.c:549 p11385.c:4875 ps13358.c:1939
+#: p14754.c:2922 op27972.c:2705
msgid "syntax error: cannot back up"
msgstr ""
-#: c-parse.y:286 objc-parse.y:308
+#: c-parse.y:290 objc-parse.y:346
msgid "ISO C forbids an empty source file"
msgstr ""
-#: c-parse.y:322 c-typeck.c:6861 objc-parse.y:345
+#: c-parse.y:329 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr ""
-#: c-parse.y:330 objc-parse.y:353
+#: c-parse.y:337 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr ""
-#: c-parse.y:332 objc-parse.y:355
+#: c-parse.y:339 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr ""
-#: c-parse.y:345 objc-parse.y:368
+#: c-parse.y:352 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr ""
-#: c-parse.y:405 cppexp.c:697
+#: c-parse.y:412 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr ""
-#: c-parse.y:467 objc-parse.y:490
+#: c-parse.y:459 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr ""
-#: c-parse.y:550 objc-parse.y:573
+#: c-parse.y:546 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr ""
-#: c-parse.y:599 objc-parse.y:622
+#: c-parse.y:595 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
msgstr ""
-#: c-parse.y:613 objc-parse.y:636
+#: c-parse.y:609 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
msgstr ""
-#: c-parse.y:644 objc-parse.y:667
+#: c-parse.y:640 objc-parse.y:699
msgid "first argument to __builtin_choose_expr not a constant"
msgstr ""
-#: c-parse.y:687
-msgid "traditional C rejects string concatenation"
+#: c-parse.y:684 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
msgstr ""
-#: c-parse.y:702 objc-parse.y:739
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr ""
-
-#: c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:981 c-parse.y:1002
-#: c-parse.y:1008 c-parse.y:1014 c-parse.y:1020 c-parse.y:1053 c-parse.y:1059
-#: c-parse.y:1065 c-parse.y:1071 c-parse.y:1116 c-parse.y:1122 c-parse.y:1128
-#: c-parse.y:1134 parse.y:1904 parse.y:1911 parse.y:1946 objc-parse.y:1000
-#: objc-parse.y:1006 objc-parse.y:1012 objc-parse.y:1018 objc-parse.y:1039
-#: objc-parse.y:1045 objc-parse.y:1051 objc-parse.y:1057 objc-parse.y:1090
-#: objc-parse.y:1096 objc-parse.y:1102 objc-parse.y:1108 objc-parse.y:1153
-#: objc-parse.y:1159 objc-parse.y:1165 objc-parse.y:1171
+#: c-parse.y:888 c-parse.y:894 c-parse.y:900 c-parse.y:906 c-parse.y:927
+#: c-parse.y:933 c-parse.y:939 c-parse.y:945 c-parse.y:978 c-parse.y:984
+#: c-parse.y:990 c-parse.y:996 c-parse.y:1041 c-parse.y:1047 c-parse.y:1053
+#: c-parse.y:1059 parse.y:1841 parse.y:1848 parse.y:1873 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr ""
-#: c-parse.y:1421 objc-parse.y:1467
+#: c-parse.y:1323 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1435 objc-parse.y:1481
+#: c-parse.y:1336 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr ""
-#: c-parse.y:1438 objc-parse.y:1484
+#: c-parse.y:1339 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr ""
-#: c-parse.y:1442 objc-parse.y:1488
+#: c-parse.y:1343 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr ""
-#: c-parse.y:1471
+#: c-parse.y:1370 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1479 c-parse.y:1509 objc-parse.y:1519 objc-parse.y:1549
+#: c-parse.y:1378 c-parse.y:1404 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
msgstr ""
-#: c-parse.y:1683 objc-parse.y:1725
+#: c-parse.y:1557 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
msgstr ""
-#: c-parse.y:1695 parse.y:2361 objc-parse.y:1737
+#: c-parse.y:1569 parse.y:2292 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr ""
-#: c-parse.y:1703 objc-parse.y:1745
+#: c-parse.y:1577 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr ""
-#: c-parse.y:1712 objc-parse.y:1754 objc-parse.y:2824
+#: c-parse.y:1586 objc-parse.y:1789 objc-parse.y:2865
msgid "extra semicolon in struct or union specified"
msgstr ""
-#: c-parse.y:1725 objc-parse.y:1781
+#: c-parse.y:1599 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr ""
-#: c-parse.y:1734 objc-parse.y:1790
+#: c-parse.y:1608 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
msgstr ""
-#: c-parse.y:1893 objc-parse.y:1949
+#: c-parse.y:1760 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
msgstr ""
-#: c-parse.y:1910 objc-parse.y:1966
+#: c-parse.y:1777 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
msgstr ""
-#: c-parse.y:1985 objc-parse.y:2045
+#: c-parse.y:1849 objc-parse.y:2080
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:2035 parse.y:1604 objc-parse.y:2095
+#: c-parse.y:1898 parse.y:1588 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2162 objc-parse.y:2222
+#: c-parse.y:2013 objc-parse.y:2258
msgid "empty body in an else-statement"
msgstr ""
-#: c-parse.y:2283 objc-parse.y:2343
+#: c-parse.y:2125 objc-parse.y:2379
msgid "ISO C forbids `goto *expr;'"
msgstr ""
-#: c-parse.y:2383 objc-parse.y:2443
+#: c-parse.y:2218 objc-parse.y:2479
msgid "ISO C forbids forward parameter declarations"
msgstr ""
@@ -2349,175 +2484,184 @@ msgstr ""
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2409 objc-parse.y:2469
+#: c-parse.y:2243 objc-parse.y:2505
msgid "ISO C requires a named argument before `...'"
msgstr ""
-#: c-parse.y:2504 objc-parse.y:2564
+#: c-parse.y:2336 objc-parse.y:2602
msgid "`...' in old-style identifier list"
msgstr ""
-#: /usr/share/bison/bison.simple:821
+#: c-p30735.c:5287 gengtype-yacc.c:1464 p11385.c:10249 ps13358.c:3020
+#: p14754.c:6075
msgid "parse error; also virtual memory exhausted"
msgstr ""
-#: /usr/share/bison/bison.simple:825 /usr/share/bison.simple:654 cp/spew.c:343
+#: c-p30735.c:5291 gengtype-yacc.c:1468 p11385.c:10253 cp/spew.c:364
+#: ps13358.c:3024 p14754.c:6079
msgid "parse error"
msgstr ""
-#: /usr/share/bison/bison.simple:950 /usr/share/bison.simple:367
+#: c-p30735.c:5406 gengtype-yacc.c:1583 p11385.c:10368 ps13358.c:3139
+#: p14754.c:6194 op27972.c:6778
msgid "parser stack overflow"
msgstr ""
-#: c-parse.y:2826 cp/spew.c:1477 objc-parse.y:3514
+#: c-parse.y:2648 cp/spew.c:1525 objc-parse.y:3538
#, c-format
msgid "%s at end of input"
msgstr ""
-#: c-parse.y:2832 cp/spew.c:1483 objc-parse.y:3520
+#: c-parse.y:2654 cp/spew.c:1533 objc-parse.y:3544
#, c-format
msgid "%s before %s'%c'"
msgstr ""
-#: c-parse.y:2834 cp/spew.c:1485 objc-parse.y:3522
+#: c-parse.y:2656 cp/spew.c:1535 objc-parse.y:3546
#, c-format
msgid "%s before %s'\\x%x'"
msgstr ""
-#: c-parse.y:2838 cp/spew.c:1489 objc-parse.y:3526
+#: c-parse.y:2660 cp/spew.c:1542 objc-parse.y:3550
#, c-format
msgid "%s before string constant"
msgstr ""
-#: c-parse.y:2840 cp/spew.c:1491 objc-parse.y:3528
+#: c-parse.y:2662 cp/spew.c:1544 objc-parse.y:3552
#, c-format
msgid "%s before numeric constant"
msgstr ""
-#: c-parse.y:2842 objc-parse.y:3530
+#: c-parse.y:2664 objc-parse.y:3554
#, c-format
msgid "%s before \"%s\""
msgstr ""
-#: c-parse.y:2844 objc-parse.y:3532
+#: c-parse.y:2666 objc-parse.y:3556
#, c-format
msgid "%s before '%s' token"
msgstr ""
-#: c-parse.y:2980 objc-parse.y:3711
-#, c-format
-msgid "syntax error at '%s' token"
+#: c-parse.y:2731
+msgid "traditional C rejects string concatenation"
msgstr ""
-#: c-parse.y:3010 cp/lex.c:861 objc-parse.y:3741
-msgid "YYDEBUG not defined"
+#: c-parse.y:2857 objc-parse.y:3780
+#, c-format
+msgid "syntax error at '%s' token"
msgstr ""
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid ""
"#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr ""
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid ""
"#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, "
"<n>)"
msgstr ""
-#: c-pragma.c:162
+#: c-pragma.c:145
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr ""
-#: c-pragma.c:164
+#: c-pragma.c:147
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr ""
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
msgid "malformed '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:202
+#: c-pragma.c:185
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr ""
-#: c-pragma.c:204
+#: c-pragma.c:187
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr ""
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr ""
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
msgstr ""
-#: c-pragma.c:329 c-pragma.c:334
+#: c-pragma.c:280
+#, c-format
+msgid ""
+"applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
msgid "malformed #pragma weak, ignored"
msgstr ""
-#: c-pragma.c:338
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr ""
-#: c-pragma.c:369 c-pragma.c:374
+#: c-pragma.c:372 c-pragma.c:377
msgid "malformed #pragma redefine_extname, ignored"
msgstr ""
-#: c-pragma.c:379
+#: c-pragma.c:382
msgid "junk at end of #pragma redefine_extname"
msgstr ""
-#: c-pragma.c:386 c-pragma.c:461
+#: c-pragma.c:389 c-pragma.c:470
msgid "#pragma redefine_extname conflicts with declaration"
msgstr ""
-#: c-pragma.c:410
+#: c-pragma.c:420
msgid "malformed #pragma extern_prefix, ignored"
msgstr ""
-#: c-pragma.c:415
+#: c-pragma.c:425
msgid "junk at end of #pragma extern_prefix"
msgstr ""
-#: c-pragma.c:447
-msgid "asm declaration conficts with previous rename"
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
msgstr ""
-#: c-semantics.c:563
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr ""
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr ""
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr ""
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr ""
-#: c-semantics.c:680
+#: c-semantics.c:682
msgid ""
"(enclose actions of previous case statements requiring destructors in their "
"own scope.)"
msgstr ""
-#: c-semantics.c:723 c-typeck.c:6889 cp/semantics.c:872
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr ""
@@ -2527,7 +2671,7 @@ msgstr ""
msgid "`%s' has an incomplete type"
msgstr ""
-#: c-typeck.c:145 cp/call.c:2592
+#: c-typeck.c:145 cp/call.c:2869
msgid "invalid use of void expression"
msgstr ""
@@ -2535,7 +2679,7 @@ msgstr ""
msgid "invalid use of flexible array member"
msgstr ""
-#: c-typeck.c:159 cp/typeck2.c:227
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr ""
@@ -2554,1280 +2698,1327 @@ msgstr ""
msgid "function types not truly compatible in ISO C"
msgstr ""
-#: c-typeck.c:598
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr ""
-#: c-typeck.c:751
-msgid "sizeof applied to a function type"
-msgstr ""
-
-#: c-typeck.c:757
-msgid "sizeof applied to a void type"
-msgstr ""
-
-#: c-typeck.c:764
-msgid "sizeof applied to an incomplete type"
-msgstr ""
-
-#: c-typeck.c:817 c-typeck.c:2706
+#: c-typeck.c:757 c-typeck.c:2685
msgid "arithmetic on pointer to an incomplete type"
msgstr ""
-#: c-typeck.c:1196
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr ""
-#: c-typeck.c:1229
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr ""
-#: c-typeck.c:1261
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr ""
-#: c-typeck.c:1265
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
msgstr ""
-#: c-typeck.c:1282 cp/typeck.c:2357
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr ""
-#: c-typeck.c:1301 cp/typeck.c:2383
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr ""
-#: c-typeck.c:1322 cp/typeck.c:2425
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr ""
-#: c-typeck.c:1330 c-typeck.c:1419 cp/typeck.c:2432 cp/typeck.c:2511
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr ""
-#: c-typeck.c:1363
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
msgstr ""
-#: c-typeck.c:1365
-msgid "ISO C89 forbids subscripting non-lvalue array"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr ""
-#: c-typeck.c:1398
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr ""
-#: c-typeck.c:1414 cp/typeck.c:2506
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1468
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr ""
-#: c-typeck.c:1475
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr ""
-#: c-typeck.c:1480
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr ""
-#: c-typeck.c:1481
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr ""
-#: c-typeck.c:1498
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr ""
-#: c-typeck.c:1563
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr ""
-#: c-typeck.c:1650 cp/typeck.c:3145
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr ""
-#: c-typeck.c:1671
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:1684
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1687
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1690
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1693
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:1696
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:1699
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1709
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr ""
-#: c-typeck.c:1727
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr ""
-#: c-typeck.c:1761
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr ""
-#: c-typeck.c:1763
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr ""
-#: c-typeck.c:1797 cp/typeck.c:3253
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr ""
-#: c-typeck.c:1839
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr ""
-#: c-typeck.c:1846
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr ""
-#: c-typeck.c:1855
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr ""
-#: c-typeck.c:1858
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr ""
-#: c-typeck.c:1867
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr ""
-#: c-typeck.c:1870
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr ""
-#: c-typeck.c:1877
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr ""
-#: c-typeck.c:1880
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr ""
-#: c-typeck.c:1887
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr ""
-#: c-typeck.c:2047 c-typeck.c:2080
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
msgstr ""
-#: c-typeck.c:2125 cp/typeck.c:3514
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr ""
-#: c-typeck.c:2132 cp/typeck.c:3520
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr ""
-#: c-typeck.c:2153 cp/typeck.c:3539
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr ""
-#: c-typeck.c:2156 cp/typeck.c:3541
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr ""
-#: c-typeck.c:2177
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr ""
-#: c-typeck.c:2179
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr ""
-#: c-typeck.c:2196 cp/typeck.c:3576
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:2220 c-typeck.c:2226
+#: c-typeck.c:2176 c-typeck.c:2182
msgid "ISO C forbids comparison of `void *' with function pointer"
msgstr ""
-#: c-typeck.c:2229 c-typeck.c:2269 c-typeck.c:2297
+#: c-typeck.c:2185 c-typeck.c:2225 c-typeck.c:2253
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:2243 c-typeck.c:2248 c-typeck.c:2317 c-typeck.c:2322
+#: c-typeck.c:2199 c-typeck.c:2204 c-typeck.c:2273 c-typeck.c:2278
msgid "comparison between pointer and integer"
msgstr ""
-#: c-typeck.c:2264 c-typeck.c:2292
+#: c-typeck.c:2220 c-typeck.c:2248
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr ""
-#: c-typeck.c:2289
+#: c-typeck.c:2245
msgid "comparison of complete and incomplete pointers"
msgstr ""
-#: c-typeck.c:2305 c-typeck.c:2312
+#: c-typeck.c:2261 c-typeck.c:2268
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:2336 cp/typeck.c:3709
+#: c-typeck.c:2292 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: c-typeck.c:2545
+#: c-typeck.c:2503
msgid "comparison between signed and unsigned"
msgstr ""
-#: c-typeck.c:2591 cp/typeck.c:3953
+#: c-typeck.c:2549 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:2599 cp/typeck.c:3961
+#: c-typeck.c:2557 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: c-typeck.c:2658
+#: c-typeck.c:2637
msgid "pointer of type `void *' used in subtraction"
msgstr ""
-#: c-typeck.c:2660
+#: c-typeck.c:2639
msgid "pointer to a function used in subtraction"
msgstr ""
-#: c-typeck.c:2757
+#: c-typeck.c:2736
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2768
+#: c-typeck.c:2749
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2780
+#: c-typeck.c:2766
msgid "ISO C does not support `~' for complex conjugation"
msgstr ""
-#: c-typeck.c:2786
+#: c-typeck.c:2772
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2797
+#: c-typeck.c:2781
msgid "wrong type argument to abs"
msgstr ""
-#: c-typeck.c:2809
+#: c-typeck.c:2793
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2823
+#: c-typeck.c:2807
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2866
+#: c-typeck.c:2850
msgid "ISO C does not support `++' and `--' on complex types"
msgstr ""
-#: c-typeck.c:2881 c-typeck.c:2913
+#: c-typeck.c:2865 c-typeck.c:2897
msgid "wrong type argument to increment"
msgstr ""
-#: c-typeck.c:2883 c-typeck.c:2915
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to decrement"
msgstr ""
-#: c-typeck.c:2904
+#: c-typeck.c:2888
msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:2906
+#: c-typeck.c:2890
msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:3043
+#: c-typeck.c:3027
msgid "ISO C forbids the address of a cast expression"
msgstr ""
-#: c-typeck.c:3053
+#: c-typeck.c:3037
msgid "invalid lvalue in unary `&'"
msgstr ""
-#: c-typeck.c:3085
+#: c-typeck.c:3069
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr ""
-#: c-typeck.c:3194 c-typeck.c:4624 c-typeck.c:4640 c-typeck.c:4656
-#: final.c:2975 final.c:2977 gcc.c:4466 rtl-error.c:121 tradcif.y:532
-#: tradcpp.c:4138 config/cris/cris.c:515 cp/typeck.c:4661 java/expr.c:386
-#: java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
+#: c-typeck.c:3178 c-typeck.c:4646 c-typeck.c:4662 c-typeck.c:4678
+#: final.c:3146 final.c:3148 gcc.c:4460 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:565 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr ""
-#: c-typeck.c:3255
-msgid "ISO C forbids use of conditional expressions as lvalues"
+#: c-typeck.c:3238
+msgid "use of conditional expressions as lvalues is deprecated"
msgstr ""
-#: c-typeck.c:3258
-msgid "ISO C forbids use of compound expressions as lvalues"
+#: c-typeck.c:3241
+msgid "use of compound expressions as lvalues is deprecated"
msgstr ""
-#: c-typeck.c:3261
-msgid "ISO C forbids use of cast expressions as lvalues"
+#: c-typeck.c:3244
+msgid "use of cast expressions as lvalues is deprecated"
msgstr ""
-#: c-typeck.c:3278
+#: c-typeck.c:3261
#, c-format
msgid "%s of read-only member `%s'"
msgstr ""
-#: c-typeck.c:3282
+#: c-typeck.c:3265
#, c-format
msgid "%s of read-only variable `%s'"
msgstr ""
-#: c-typeck.c:3285
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only location"
msgstr ""
-#: c-typeck.c:3304
+#: c-typeck.c:3287
#, c-format
msgid "cannot take address of bit-field `%s'"
msgstr ""
-#: c-typeck.c:3332
+#: c-typeck.c:3315
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr ""
-#: c-typeck.c:3336
+#: c-typeck.c:3319
#, c-format
msgid "register variable `%s' used in nested function"
msgstr ""
-#: c-typeck.c:3343
+#: c-typeck.c:3326
#, c-format
msgid "address of global register variable `%s' requested"
msgstr ""
-#: c-typeck.c:3355
+#: c-typeck.c:3338
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-typeck.c:3359
+#: c-typeck.c:3342
#, c-format
msgid "address of register variable `%s' requested"
msgstr ""
-#: c-typeck.c:3467
+#: c-typeck.c:3450
msgid "signed and unsigned type in conditional expression"
msgstr ""
-#: c-typeck.c:3474
+#: c-typeck.c:3457
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:3490 c-typeck.c:3497
+#: c-typeck.c:3473 c-typeck.c:3480
msgid "ISO C forbids conditional expr between `void *' and function pointer"
msgstr ""
-#: c-typeck.c:3503
+#: c-typeck.c:3486
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3510 c-typeck.c:3520
+#: c-typeck.c:3493 c-typeck.c:3503
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3534
+#: c-typeck.c:3517
msgid "type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3605 cp/typeck.c:4918
+#: c-typeck.c:3588 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3644
+#: c-typeck.c:3632
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3650
+#: c-typeck.c:3638
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3660
+#: c-typeck.c:3648
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3679
+#: c-typeck.c:3667
msgid "ISO C forbids casts to union type"
msgstr ""
-#: c-typeck.c:3694
+#: c-typeck.c:3682
msgid "cast to union type from type not present in union"
msgstr ""
-#: c-typeck.c:3745
+#: c-typeck.c:3733
msgid "cast adds new qualifiers to function type"
msgstr ""
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3750
+#: c-typeck.c:3738
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3765
+#: c-typeck.c:3753
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3771 cp/typeck.c:5348
+#: c-typeck.c:3759 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr ""
-#: c-typeck.c:3776
+#: c-typeck.c:3764
msgid "cast does not match function type"
msgstr ""
-#: c-typeck.c:3783 cp/typeck.c:5355
+#: c-typeck.c:3771 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
msgstr ""
+#: c-typeck.c:3783
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3787
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:3941
+#: c-typeck.c:3946
msgid "invalid lvalue in assignment"
msgstr ""
#. Convert new value to destination type.
-#: c-typeck.c:3950 c-typeck.c:3975 c-typeck.c:3992 cp/typeck.c:5465
-#: cp/typeck.c:5616
+#. Check this here to avoid odd errors when trying to convert
+#. a throw to the type of the COND_EXPR.
+#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
+#. Reject anything strange now.
+#: c-typeck.c:3955 c-typeck.c:3980 c-typeck.c:3997 cp/typeck.c:5266
+#: cp/typeck.c:5416 cp/typeck.c:5431
msgid "assignment"
msgstr ""
-#: c-typeck.c:4060
+#: c-typeck.c:4067
msgid "cannot pass rvalue to reference parameter"
msgstr ""
-#: c-typeck.c:4164 c-typeck.c:4231
+#: c-typeck.c:4171 c-typeck.c:4238
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:4168 c-typeck.c:4211
+#: c-typeck.c:4175 c-typeck.c:4218
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:4174
+#: c-typeck.c:4181
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:4203
+#: c-typeck.c:4210
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
msgstr ""
-#: c-typeck.c:4220
+#: c-typeck.c:4227
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr ""
-#: c-typeck.c:4236
+#: c-typeck.c:4243
#, c-format
msgid "%s from incompatible pointer type"
msgstr ""
-#: c-typeck.c:4252
+#: c-typeck.c:4249 c-typeck.c:4799 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr ""
+
+#: c-typeck.c:4263
#, c-format
msgid "%s makes pointer from integer without a cast"
msgstr ""
-#: c-typeck.c:4260
+#: c-typeck.c:4270
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:4274 c-typeck.c:4277
+#: c-typeck.c:4284 c-typeck.c:4287
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr ""
-#: c-typeck.c:4281
+#: c-typeck.c:4291
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr ""
-#: c-typeck.c:4285
+#: c-typeck.c:4295
#, c-format
msgid "incompatible types in %s"
msgstr ""
#. Function name is known; supply it.
-#: c-typeck.c:4340
+#: c-typeck.c:4353
+#, c-format
+msgid "passing arg of `%s'"
+msgstr ""
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4363
+msgid "passing arg of pointer to function"
+msgstr ""
+
+#. Function name is known; supply it.
+#: c-typeck.c:4371
#, c-format
msgid "passing arg %d of `%s'"
msgstr ""
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4350
+#: c-typeck.c:4381
#, c-format
msgid "passing arg %d of pointer to function"
msgstr ""
-#: c-typeck.c:4416
+#: c-typeck.c:4447
msgid "initializer for static variable is not constant"
msgstr ""
-#: c-typeck.c:4422
+#: c-typeck.c:4453
msgid "initializer for static variable uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4430
+#: c-typeck.c:4461
msgid "aggregate initializer is not constant"
msgstr ""
-#: c-typeck.c:4432
+#: c-typeck.c:4463
msgid "aggregate initializer uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4439
+#: c-typeck.c:4470
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
-#: c-typeck.c:4627 c-typeck.c:4643 c-typeck.c:4659
+#: c-typeck.c:4649 c-typeck.c:4665 c-typeck.c:4681
#, c-format
msgid "(near initialization for `%s')"
msgstr ""
-#: c-typeck.c:4710 cp/typeck2.c:513
+#: c-typeck.c:4732 cp/typeck2.c:590
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4717 cp/typeck2.c:520
+#: c-typeck.c:4739 cp/typeck2.c:597
msgid "int-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4735 cp/typeck2.c:536
+#: c-typeck.c:4757 cp/typeck2.c:613
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4773
+#: c-typeck.c:4817
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4790 c-typeck.c:4792 c-typeck.c:4808 c-typeck.c:4829
-#: c-typeck.c:6229
+#: c-typeck.c:4834 c-typeck.c:4836 c-typeck.c:4852 c-typeck.c:4873
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr ""
-#: c-typeck.c:4824
+#: c-typeck.c:4868
msgid "initialization"
msgstr ""
-#: c-typeck.c:4835 c-typeck.c:6234
+#: c-typeck.c:4879 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4850 cp/typeck2.c:613
+#: c-typeck.c:4894 cp/typeck2.c:690
msgid "invalid initializer"
msgstr ""
-#: c-typeck.c:5343
+#: c-typeck.c:5388
msgid "extra brace group at end of initializer"
msgstr ""
-#: c-typeck.c:5363
+#: c-typeck.c:5408
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:5423
+#: c-typeck.c:5468
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:5471
+#: c-typeck.c:5520
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:5473
+#: c-typeck.c:5522
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:5504
+#: c-typeck.c:5553
msgid "missing initializer"
msgstr ""
-#: c-typeck.c:5530
+#: c-typeck.c:5575
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:5535
+#: c-typeck.c:5580
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5621
+#: c-typeck.c:5666
msgid "initialization designators may not nest"
msgstr ""
-#: c-typeck.c:5642 c-typeck.c:5713
+#: c-typeck.c:5687 c-typeck.c:5758
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5647 c-typeck.c:5765
+#: c-typeck.c:5692 c-typeck.c:5812
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5709 c-typeck.c:5711
+#: c-typeck.c:5754 c-typeck.c:5756
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5716
+#: c-typeck.c:5760 c-typeck.c:5763
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5727
+#: c-typeck.c:5774
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5736
+#: c-typeck.c:5783
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5777
+#: c-typeck.c:5824
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr ""
-#: c-typeck.c:5814 c-typeck.c:5835 c-typeck.c:6296
+#: c-typeck.c:5861 c-typeck.c:5882 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:6506
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:6513 c-typeck.c:6559
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:6574
+#: c-typeck.c:6626
msgid "non-static initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:6636
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6657
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6720
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6749
+#: c-typeck.c:6806
msgid "excess elements in vector initializer"
msgstr ""
-#: c-typeck.c:6771
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6882
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr ""
-#: c-typeck.c:6914
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr ""
-#: c-typeck.c:6985
+#: c-typeck.c:7042 cp/typeck.c:6153
msgid "modification by `asm'"
msgstr ""
-#: c-typeck.c:7004 cp/typeck.c:6464
+#: c-typeck.c:7061 cp/typeck.c:6241
msgid "function declared `noreturn' has a `return' statement"
msgstr ""
-#: c-typeck.c:7011
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr ""
-#: c-typeck.c:7017
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr ""
-#: c-typeck.c:7021
+#: c-typeck.c:7078
msgid "return"
msgstr ""
-#: c-typeck.c:7073
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr ""
-#: c-typeck.c:7129 cp/semantics.c:527
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr ""
-#: c-typeck.c:7139
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr ""
-#: c-typeck.c:7174 cp/decl.c:5229
+#: c-typeck.c:7231 cp/decl.c:5548
msgid "case label not within a switch statement"
msgstr ""
-#: c-typeck.c:7176 cp/decl.c:5234
+#: c-typeck.c:7233 cp/decl.c:5553
msgid "`default' label not within a switch statement"
msgstr ""
-#: calls.c:1903
+#: calls.c:1934 tree-inline.c:1179
#, c-format
msgid "inlining failed in call to `%s'"
msgstr ""
-#: calls.c:1904 calls.c:2210
+#: calls.c:1935 calls.c:2271 tree-inline.c:1180
msgid "called from here"
msgstr ""
-#: calls.c:2209
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr ""
-#: calls.c:2239
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr ""
-#: calls.c:4551
-msgid "variable offset is passed partially in stack and in reg"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: calls.c:4553
-msgid "variable size is passed partially in stack and in reg"
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr ""
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr ""
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
msgstr ""
-#: cfgrtl.c:1723
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr ""
+
+#: cfgrtl.c:1804
+#, c-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfgrtl.c:1810
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr ""
+
+#: cfgrtl.c:1830
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1737
+#: cfgrtl.c:1844
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1749
+#: cfgrtl.c:1856
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1771
+#: cfgrtl.c:1878
#, c-format
msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
msgstr ""
-#: cfgrtl.c:1778
+#: cfgrtl.c:1885
#, c-format
msgid "verify_flow_info: Wrong count of block %i %i"
msgstr ""
-#: cfgrtl.c:1784
+#: cfgrtl.c:1891
#, c-format
msgid "verify_flow_info: Wrong frequency of block %i %i"
msgstr ""
-#: cfgrtl.c:1792
+#: cfgrtl.c:1899
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: cfgrtl.c:1798
+#: cfgrtl.c:1905
#, c-format
msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
msgstr ""
-#: cfgrtl.c:1804
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Wrong count of edge %i->%i %i"
msgstr ""
-#: cfgrtl.c:1834
+#: cfgrtl.c:1941
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1849
+#: cfgrtl.c:1956
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1851
+#: cfgrtl.c:1958
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:1858
+#: cfgrtl.c:1965
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfgrtl.c:1874
+#: cfgrtl.c:1981
#, c-format
msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: cfgrtl.c:1882
+#: cfgrtl.c:1989
#, c-format
msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: cfgrtl.c:1887
+#: cfgrtl.c:1994
#, c-format
msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:1892
+#: cfgrtl.c:1999
#, c-format
msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
-#: cfgrtl.c:1898
+#: cfgrtl.c:2005
#, c-format
msgid "Wrong amount of branch edges after conditional jump %i"
msgstr ""
-#: cfgrtl.c:1903
+#: cfgrtl.c:2010
#, c-format
msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: cfgrtl.c:1912
+#: cfgrtl.c:2019
#, c-format
msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: cfgrtl.c:1927
+#: cfgrtl.c:2034
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:1937
+#: cfgrtl.c:2044
#, c-format
msgid "basic block %d pred edge is corrupted"
msgstr ""
-#: cfgrtl.c:1954
+#: cfgrtl.c:2061
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:1958
+#: cfgrtl.c:2065
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:1972 cfgrtl.c:1982
+#: cfgrtl.c:2079 cfgrtl.c:2089
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:1995
+#: cfgrtl.c:2102
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:2007
+#: cfgrtl.c:2114
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:2008
+#: cfgrtl.c:2115
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:2027
+#: cfgrtl.c:2134
#, c-format
msgid "basic block %i edge lists are corrupted"
msgstr ""
-#: cfgrtl.c:2041
+#: cfgrtl.c:2149
msgid "basic blocks not numbered consecutively"
msgstr ""
-#: cfgrtl.c:2066
+#: cfgrtl.c:2174
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:2074
+#: cfgrtl.c:2182
msgid "return not followed by barrier"
msgstr ""
-#: cfgrtl.c:2079
+#: cfgrtl.c:2187
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cfgrtl.c:2083
+#: cfgrtl.c:2191
msgid "verify_flow_info failed"
msgstr ""
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr ""
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr ""
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr ""
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr ""
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr ""
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr ""
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr ""
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr ""
-#: collect2.c:1514
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr ""
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr ""
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr ""
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr ""
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr ""
-#: collect2.c:1633
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr ""
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
msgid ""
"\n"
"write_c_file - output name is %s, prefix is %s\n"
msgstr ""
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr ""
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr ""
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr ""
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr ""
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574
-#: collect2.c:2577 collect2.c:2590
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr ""
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
+msgid "execv %s"
msgstr ""
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr ""
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr ""
-#: collect2.c:2223 collect2.c:2629
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr ""
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr ""
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr ""
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr ""
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
msgstr ""
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr ""
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr ""
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr ""
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr ""
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr ""
-
-#: collect2.c:2593
+#: collect2.c:2585
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
msgstr ""
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: collect2.c:2734
+#: collect2.c:2738
#, c-format
msgid "%s: not a COFF file"
msgstr ""
-#: collect2.c:2853
+#: collect2.c:2857
#, c-format
msgid "%s: cannot open as COFF file"
msgstr ""
-#: collect2.c:2909
+#: collect2.c:2913
#, c-format
msgid "library lib%s not found"
msgstr ""
-#: collect2.c:3036
+#: collect2.c:3040
#, c-format
msgid "open %s"
msgstr ""
-#: collect2.c:3059
+#: collect2.c:3063
msgid "incompatibilities between object file & expected values"
msgstr ""
-#: collect2.c:3132
+#: collect2.c:3136
#, c-format
msgid ""
"\n"
"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
msgstr ""
-#: collect2.c:3141
+#: collect2.c:3145
msgid "string section missing"
msgstr ""
-#: collect2.c:3144
+#: collect2.c:3148
msgid "section pointer missing"
msgstr ""
-#: collect2.c:3192
+#: collect2.c:3196
msgid "no symbol table found"
msgstr ""
-#: collect2.c:3205
+#: collect2.c:3209
msgid "no cmd_strings found"
msgstr ""
-#: collect2.c:3217
+#: collect2.c:3221
msgid ""
"\n"
"Updating header and load commands.\n"
"\n"
msgstr ""
-#: collect2.c:3224
+#: collect2.c:3228
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr ""
-#: collect2.c:3255
+#: collect2.c:3259
msgid ""
"writing load commands.\n"
"\n"
msgstr ""
-#: collect2.c:3275
+#: collect2.c:3279
#, c-format
msgid "close %s"
msgstr ""
-#: collect2.c:3349
+#: collect2.c:3353
msgid "could not convert 0x%l.8x into a region"
msgstr ""
-#: collect2.c:3353
+#: collect2.c:3357
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr ""
-#: collect2.c:3480
+#: collect2.c:3484
msgid "bad magic number"
msgstr ""
-#: collect2.c:3481
+#: collect2.c:3485
msgid "bad header version"
msgstr ""
-#: collect2.c:3482
+#: collect2.c:3486
msgid "bad raw header version"
msgstr ""
-#: collect2.c:3483
+#: collect2.c:3487
msgid "raw header buffer too small"
msgstr ""
-#: collect2.c:3484
+#: collect2.c:3488
msgid "old raw header file"
msgstr ""
-#: collect2.c:3485
+#: collect2.c:3489
msgid "unsupported version"
msgstr ""
-#: collect2.c:3487
+#: collect2.c:3491
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr ""
-#: collect2.c:3507
+#: collect2.c:3511
#, c-format
msgid "fstat %s"
msgstr ""
-#: collect2.c:3544 collect2.c:3592
+#: collect2.c:3548 collect2.c:3596
#, c-format
msgid "lseek %s 0"
msgstr ""
-#: collect2.c:3548
+#: collect2.c:3552
#, c-format
msgid "read %s"
msgstr ""
-#: collect2.c:3551
+#: collect2.c:3555
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr ""
-#: collect2.c:3572
+#: collect2.c:3576
#, c-format
msgid "msync %s"
msgstr ""
-#: collect2.c:3579
+#: collect2.c:3583
#, c-format
msgid "munmap %s"
msgstr ""
-#: collect2.c:3596
+#: collect2.c:3600
#, c-format
msgid "write %s"
msgstr ""
-#: collect2.c:3599
+#: collect2.c:3603
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr ""
-#: combine.c:12783
+#: combine.c:13219
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new "
@@ -3836,7 +4027,7 @@ msgid ""
"\n"
msgstr ""
-#: combine.c:12793
+#: combine.c:13229
#, c-format
msgid ""
"\n"
@@ -3860,203 +4051,231 @@ msgstr ""
msgid "conversion to incomplete type"
msgstr ""
-#: convert.c:396 convert.c:476
+#: convert.c:434 convert.c:514
msgid "can't convert between vector values of different size"
msgstr ""
-#: convert.c:402
+#: convert.c:440
msgid "aggregate value used where an integer was expected"
msgstr ""
-#: convert.c:454 f/com.c:1081
+#: convert.c:492 f/com.c:1102
msgid "pointer value used where a complex was expected"
msgstr ""
-#: convert.c:458 f/com.c:1083
+#: convert.c:496 f/com.c:1104
msgid "aggregate value used where a complex was expected"
msgstr ""
-#: convert.c:482
+#: convert.c:520
msgid "can't convert value to a vector"
msgstr ""
-#: cpperror.c:118 tradcpp.c:4694
+#: cpperror.c:113
msgid "warning: "
msgstr ""
-#: cpperror.c:120
+#: cpperror.c:115
msgid "internal error: "
msgstr ""
-#: cpperror.c:183
+#: cpperror.c:189
msgid "stdout"
msgstr ""
-#: cpperror.c:185 gcc.c:6311 tradcpp.c:4732
+#: cpperror.c:191 gcc.c:6517
#, c-format
msgid "%s: %s"
msgstr ""
-#: cppexp.c:151
-msgid "floating point numbers are not valid in #if"
+#: cppexp.c:199
+msgid "too many decimal points in number"
msgstr ""
-#: cppexp.c:173
-msgid "traditional C rejects the `U' suffix"
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
msgstr ""
-#: cppexp.c:177
-msgid "too many 'l' suffixes in integer constant"
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
msgstr ""
-#: cppexp.c:182
-msgid "integer constant contains digits beyond the radix"
+#: cppexp.c:234
+msgid "exponent has no digits"
msgstr ""
-#: cppexp.c:185
-msgid "integer constant out of range"
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
msgstr ""
-#: cppexp.c:192
-msgid "integer constant is so large that it is unsigned"
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
msgstr ""
-#: cppexp.c:201
+#: cppexp.c:257 cppexp.c:282
#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
+msgid "traditional C rejects the \"%.*s\" suffix"
msgstr ""
-#: cppexp.c:234
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr ""
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: cppexp.c:482
msgid "missing ')' after \"defined\""
msgstr ""
-#: cppexp.c:241
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
msgstr ""
-#: cppexp.c:249
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
-#: cppexp.c:261
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr ""
-#: cppexp.c:309
-msgid "string constants are not valid in #if"
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
msgstr ""
-#: cppexp.c:313
-#, c-format
-msgid "invalid character '%c' in #if"
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
msgstr ""
-#: cppexp.c:315
+#: cppexp.c:596
#, c-format
-msgid "invalid character '\\%03o' in #if"
+msgid "ISO C++ does not permit \"%s\" in #if"
msgstr ""
-#: cppexp.c:333
+#: cppexp.c:604
#, c-format
-msgid "ISO C++ does not permit \"%s\" in #if"
+msgid "\"%s\" is not defined"
msgstr ""
-#: cppexp.c:344
+#: cppexp.c:737 cppexp.c:772
#, c-format
-msgid "\"%s\" is not defined"
+msgid "missing binary operator before token \"%s\""
msgstr ""
-#: cppexp.c:370
+#: cppexp.c:756
#, c-format
-msgid "\"%s\" is not valid in #if expressions"
+msgid "invalid character '%c' in #if"
msgstr ""
-#: cppexp.c:386
-msgid "integer overflow in preprocessor expression"
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
msgstr ""
-#: cppexp.c:616
-msgid "missing binary operator"
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
msgstr ""
-#: cppexp.c:651
+#: cppexp.c:782
msgid "void expression between '(' and ')'"
msgstr ""
-#: cppexp.c:653
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr ""
+
+#: cppexp.c:787
#, c-format
msgid "operator '%s' has no right operand"
msgstr ""
-#: cppexp.c:665
-#, c-format
-msgid "impossible operator '%s'"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
msgstr ""
-#: cppexp.c:741 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
msgstr ""
-#: cppexp.c:776
-msgid "comma operator in operand of #if"
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
msgstr ""
-#: cppexp.c:781
-msgid "syntax error '?' without following ':'"
+#: cppexp.c:954
+msgid "missing ')' in expression"
msgstr ""
-#: cppexp.c:784
-msgid "syntax error ':' without preceding '?'"
+#: cppexp.c:975
+msgid "'?' without following ':'"
msgstr ""
-#: cppexp.c:792
-msgid "missing ')' in expression"
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
msgstr ""
-#: cppexp.c:799
+#: cppexp.c:990
msgid "missing '(' in expression"
msgstr ""
-#: cppexp.c:825
+#: cppexp.c:1026
#, c-format
-msgid "missing binary operator before '%s'"
+msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
-#: cppexp.c:831
+#: cppexp.c:1031
#, c-format
-msgid "operator '%s' has no left operand"
+msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
-#: cppexp.c:870
-msgid "unbalanced stack in #if"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
msgstr ""
-#: cppexp.c:875
-msgid "#if with no expression"
+#: cppexp.c:1551
+msgid "division by zero in #if"
msgstr ""
-#: cppfiles.c:395
+#: cppfiles.c:411
#, c-format
msgid "%s is too large"
msgstr ""
-#: cppfiles.c:426
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
msgstr ""
-#: cppfiles.c:440
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr ""
-#: cppfiles.c:566
+#: cppfiles.c:594
#, c-format
msgid "no include path in which to find %s"
msgstr ""
-#: cppfiles.c:640
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr ""
@@ -4064,803 +4283,668 @@ msgstr ""
msgid "absolute file name in remap_filename"
msgstr ""
-#: cppinit.c:230
+#: cppinit.c:224
#, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr ""
-#: cppinit.c:237
+#: cppinit.c:231
#, c-format
msgid "%s: Not a directory"
msgstr ""
-#: cppinit.c:284
+#: cppinit.c:287
#, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr ""
-#: cppinit.c:312
+#: cppinit.c:325
#, c-format
-msgid "changing search order for system directory \"%s\""
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr ""
+
+#: cppinit.c:915
+msgid "cppchar_t must be an unsigned type"
msgstr ""
-#: cppinit.c:316
+#: cppinit.c:919
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
+msgid ""
+"preprocessor arithmetic has maximum precision of %lu bits; target requires %"
+"lu bits"
+msgstr ""
+
+#: cppinit.c:925
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: cppinit.c:928
+msgid "target char is less than 8 bits wide"
msgstr ""
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
+#: cppinit.c:932
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: cppinit.c:936
+msgid "target int is narrower than target char"
msgstr ""
#: cppinit.c:940
-msgid "#include \"...\" search starts here:\n"
+msgid "CPP half-integer narrower than CPP character"
msgstr ""
#: cppinit.c:944
+#, c-format
+msgid ""
+"CPP on this host cannot handle wide character constants over %lu bits, but "
+"the target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:996
+#, c-format
+msgid "#include \"...\" search starts here:\n"
+msgstr ""
+
+#: cppinit.c:1000
+#, c-format
msgid "#include <...> search starts here:\n"
msgstr ""
-#: cppinit.c:947
+#: cppinit.c:1003
+#, c-format
msgid "End of search list.\n"
msgstr ""
-#: cppinit.c:1014
+#: cppinit.c:1081
msgid "<built-in>"
msgstr ""
-#: cppinit.c:1016
+#: cppinit.c:1083
msgid "<command line>"
msgstr ""
-#: cppinit.c:1091 tradcpp.c:983 tradcpp.c:993 tradcpp.c:1084
-msgid "I/O error on output"
-msgstr ""
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1139
-#, c-format
-msgid "argument missing after %s"
-msgstr ""
-
-#: cppinit.c:1140
+#: cppinit.c:1188
#, c-format
msgid "assertion missing after %s"
msgstr ""
-#: cppinit.c:1141
+#: cppinit.c:1189
#, c-format
msgid "directory name missing after %s"
msgstr ""
-#: cppinit.c:1142
+#: cppinit.c:1190
#, c-format
msgid "file name missing after %s"
msgstr ""
-#: cppinit.c:1143
+#: cppinit.c:1191
#, c-format
msgid "macro name missing after %s"
msgstr ""
-#: cppinit.c:1144
+#: cppinit.c:1192
#, c-format
msgid "path name missing after %s"
msgstr ""
-#: cppinit.c:1145
-#, c-format
-msgid "number missing after %s"
-msgstr ""
-
-#: cppinit.c:1146
-#, c-format
-msgid "target missing after %s"
-msgstr ""
-
-#: cppinit.c:1336
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr ""
-
-#: cppinit.c:1532 tradcpp.c:610
-msgid "output filename specified twice"
-msgstr ""
-
-#: cppinit.c:1644
+#: cppinit.c:1382
msgid "-I- specified twice"
msgstr ""
-#: cppinit.c:1789
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr ""
-
-#: cppinit.c:1831 tradcpp.c:807
-msgid "you must additionally specify either -M or -MM"
-msgstr ""
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1892
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other "
-"files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include "
-"path\n"
-msgstr ""
-
-#: cppinit.c:1901
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info "
-"docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be "
-"used)\n"
-" -nostdinc++ Do not search system include directories for C+"
-"+\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-
-#: cppinit.c:1910
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-
-#: cppinit.c:1917
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC+"
-"+\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-
-#: cppinit.c:1923
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-
-#: cppinit.c:1933
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional "
-"C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-
-#: cppinit.c:1941
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-
-#: cppinit.c:1949
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MD Generate make dependencies and compile\n"
-" -MMD As -MD, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-
-#: cppinit.c:1957
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-
-#: cppinit.c:1962
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question>=<answer> Assert the <answer> to <question>\n"
-" -A-<question>=<answer> Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-
-#: cppinit.c:1970
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at "
-"end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-
-#: cppinit.c:1978
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-
-#: cpplex.c:155
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr ""
-#: cpplex.c:163
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr ""
-#: cpplex.c:220
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr ""
-#: cpplex.c:227
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
msgstr ""
-#: cpplex.c:293
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
msgstr ""
-#: cpplex.c:376
+#: cpplex.c:395
msgid "null character(s) ignored"
msgstr ""
-#: cpplex.c:383
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
msgstr ""
-#: cpplex.c:456
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
-#: cpplex.c:464
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
-#: cpplex.c:536
+#: cpplex.c:555
msgid "'$' character(s) in identifier or number"
msgstr ""
-#: cpplex.c:653
+#: cpplex.c:698
#, c-format
msgid "missing terminating %c character"
msgstr ""
-#: cpplex.c:666
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr ""
-#: cpplex.c:889
+#: cpplex.c:915 cpptrad.c:491
msgid "no newline at end of file"
msgstr ""
-#: cpplex.c:1009 tradcpp.c:1471
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr ""
-#: cpplex.c:1020
-msgid "C++ style comments are not allowed in ISO C89"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
-#: cpplex.c:1022
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr ""
-#: cpplex.c:1027
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr ""
-#: cpplex.c:1342
+#: cpplex.c:1425
#, c-format
msgid "unknown string token %s\n"
msgstr ""
-#: cpplex.c:1355
+#: cpplex.c:1438
#, c-format
msgid "unspellable token %s"
msgstr ""
-#: cpplex.c:1612
+#: cpplex.c:1695
#, c-format
msgid "the meaning of '\\%c' is different in traditional C"
msgstr ""
-#: cpplex.c:1618
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr ""
-#: cpplex.c:1632
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr ""
-#: cpplex.c:1640
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr ""
-#: cpplex.c:1654
+#: cpplex.c:1737
msgid "universal-character-name out of range"
msgstr ""
-#: cpplex.c:1698
+#: cpplex.c:1791
msgid "the meaning of '\\a' is different in traditional C"
msgstr ""
-#: cpplex.c:1705
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: cpplex.c:1716
+#: cpplex.c:1809
msgid "the meaning of '\\x' is different in traditional C"
msgstr ""
-#: cpplex.c:1735 f/lex.c:585
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr ""
-#: cpplex.c:1740
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr ""
-#: cpplex.c:1765
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr ""
-#: cpplex.c:1780
+#: cpplex.c:1874
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr ""
-#: cpplex.c:1782
+#: cpplex.c:1877
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr ""
-#: cpplex.c:1786
-msgid "escape sequence out of range for type"
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
msgstr ""
-#: cpplex.c:1881
+#: cpplex.c:1973
msgid "empty character constant"
msgstr ""
-#: cpplex.c:1885
-msgid "character constant too long"
+#: cpplex.c:1983
+msgid "character constant too long for its type"
msgstr ""
-#: cpplex.c:1888
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr ""
-#: cpplib.c:228
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ""
-#: cpplib.c:281
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
-#: cpplib.c:293
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr ""
-#: cpplib.c:296
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
-#: cpplib.c:300
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
-#: cpplib.c:324
+#: cpplib.c:358
msgid "embedding a directive within macro arguments is not portable"
msgstr ""
-#: cpplib.c:344
+#: cpplib.c:378
msgid "style of line directive is a GCC extension"
msgstr ""
-#: cpplib.c:393
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr ""
-#: cpplib.c:471
-#, c-format
-msgid "no macro name given in #%s directive"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
msgstr ""
-#: cpplib.c:475
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
-#: cpplib.c:478
-msgid "macro names must be identifiers"
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
msgstr ""
-#: cpplib.c:489
-#, c-format
-msgid "\"%s\" cannot be used as a macro name"
+#: cpplib.c:512
+msgid "macro names must be identifiers"
msgstr ""
-#: cpplib.c:527
+#: cpplib.c:552
#, c-format
msgid "undefining \"%s\""
msgstr ""
-#: cpplib.c:570
+#: cpplib.c:598
msgid "missing terminating > character"
msgstr ""
-#: cpplib.c:609
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
-#: cpplib.c:620
+#: cpplib.c:648
#, c-format
msgid "empty file name in #%s"
msgstr ""
-#: cpplib.c:639
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr ""
-#: cpplib.c:646
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr ""
-#: cpplib.c:654
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr ""
-#: cpplib.c:712
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr ""
-#: cpplib.c:795
+#: cpplib.c:814
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr ""
-#: cpplib.c:801
+#: cpplib.c:820
msgid "line number out of range"
msgstr ""
-#: cpplib.c:812 cpplib.c:883
+#: cpplib.c:831 cpplib.c:902
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr ""
-#: cpplib.c:847
+#: cpplib.c:866
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr ""
-#: cpplib.c:954
+#: cpplib.c:973
msgid "invalid #ident directive"
msgstr ""
-#: cpplib.c:1042
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: cpplib.c:1045
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: cpplib.c:1048
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: cpplib.c:1123
+#: cpplib.c:1140
msgid "#pragma once is obsolete"
msgstr ""
-#: cpplib.c:1126
+#: cpplib.c:1143
msgid "#pragma once in main file"
msgstr ""
-#: cpplib.c:1150
+#: cpplib.c:1167
msgid "invalid #pragma GCC poison directive"
msgstr ""
-#: cpplib.c:1159
+#: cpplib.c:1176
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: cpplib.c:1181
+#: cpplib.c:1198
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: cpplib.c:1206
+#: cpplib.c:1223
#, c-format
msgid "cannot find source %s"
msgstr ""
-#: cpplib.c:1210
+#: cpplib.c:1227
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: cpplib.c:1286
+#: cpplib.c:1343
msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: cpplib.c:1385
+#: cpplib.c:1426
msgid "#else without #if"
msgstr ""
-#: cpplib.c:1390 tradcpp.c:3875
+#: cpplib.c:1431
msgid "#else after #else"
msgstr ""
-#: cpplib.c:1392 cpplib.c:1426
+#: cpplib.c:1433 cpplib.c:1467
msgid "the conditional began here"
msgstr ""
-#: cpplib.c:1419
+#: cpplib.c:1460
msgid "#elif without #if"
msgstr ""
-#: cpplib.c:1424 tradcpp.c:3570
+#: cpplib.c:1465
msgid "#elif after #else"
msgstr ""
-#: cpplib.c:1455
+#: cpplib.c:1496
msgid "#endif without #if"
msgstr ""
-#: cpplib.c:1538 tradcpp.c:3267
+#: cpplib.c:1579
msgid "missing '(' after predicate"
msgstr ""
-#: cpplib.c:1553 tradcpp.c:3281
+#: cpplib.c:1594
msgid "missing ')' to complete answer"
msgstr ""
-#: cpplib.c:1573 tradcpp.c:3287
+#: cpplib.c:1614
msgid "predicate's answer is empty"
msgstr ""
-#: cpplib.c:1603 tradcpp.c:3335
+#: cpplib.c:1644
msgid "assertion without predicate"
msgstr ""
-#: cpplib.c:1605 tradcpp.c:3337
+#: cpplib.c:1646
msgid "predicate must be an identifier"
msgstr ""
-#: cpplib.c:1687 tradcpp.c:3434
+#: cpplib.c:1735
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: cpplib.c:1917
+#: cpplib.c:1965
#, c-format
msgid "unterminated #%s"
msgstr ""
-#: cppmacro.c:146
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: cppmacro.c:139 cppmacro.c:294
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr ""
-#: cppmacro.c:349
-msgid "invalid string literal, ignoring final '\\'"
+#: cppmacro.c:234
+msgid "could not determine date and time"
msgstr ""
-#: cppmacro.c:441
-#, c-format
-msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
msgstr ""
-#: cppmacro.c:561
+#: cppmacro.c:504
#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
-#: cppmacro.c:579
+#: cppmacro.c:546
msgid "ISO C99 requires rest arguments to be used"
msgstr ""
-#: cppmacro.c:584
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
-#: cppmacro.c:595
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
-#: cppmacro.c:683
+#: cppmacro.c:669 cpptrad.c:778
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: cppmacro.c:1185
+#: cppmacro.c:1314
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr ""
-#: cppmacro.c:1221
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: cppmacro.c:1229
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
msgstr ""
-#: cppmacro.c:1246
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr ""
-#: cppmacro.c:1260
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: cppmacro.c:1264
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: cppmacro.c:1273
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
msgstr ""
-#: cppmacro.c:1352
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: cppmacro.c:1383
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: cppmacro.c:1403
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: cppmacro.c:1439
+#: cppmacro.c:1601
#, c-format
msgid "\"%s\" redefined"
msgstr ""
-#: cppmacro.c:1443
+#: cppmacro.c:1606
msgid "this is the location of the previous definition"
msgstr ""
-#: cppmacro.c:1507
+#: cppmacro.c:1657
#, c-format
msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: cppmacro.c:1532
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr ""
-#: cse.c:7113
+#: cpptrad.c:845
#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
+msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
-#: diagnostic.c:777
+#: cse.c:7216
#, c-format
-msgid "%s:%d: warning: "
-msgstr ""
-
-#: diagnostic.c:784
-#, c-format
-msgid "%s: warning: "
+msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
-#: diagnostic.c:864
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr ""
-#: diagnostic.c:934
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr ""
-#: diagnostic.c:971
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr ""
-#: diagnostic.c:1050
-msgid "sorry, not implemented: "
-msgstr ""
-
-#: diagnostic.c:1069
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr ""
-#: diagnostic.c:1071
+#: diagnostic.c:1056
#, c-format
msgid " %s"
msgstr ""
-#: diagnostic.c:1095
+#: diagnostic.c:1078
msgid "At top level:"
msgstr ""
-#: diagnostic.c:1100
+#: diagnostic.c:1083
#, c-format
msgid "In member function `%s':"
msgstr ""
-#: diagnostic.c:1104
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr ""
-#: diagnostic.c:1188
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
msgstr ""
-#: diagnostic.c:1220
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr ""
-#: diagnostic.c:1235 diagnostic.c:1385
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4868,73 +4952,82 @@ msgid ""
"See %s for instructions.\n"
msgstr ""
-#: diagnostic.c:1383
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr ""
-#: diagnostic.c:1445
+#: diagnostic.c:1376
#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
+msgid "in %s, at %s:%d"
msgstr ""
-#: diagnostic.c:1490
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr ""
-#: diagnostic.c:1493
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
" from %s:%d"
msgstr ""
-#: diagnostic.c:1494
+#: diagnostic.c:1401
msgid ":\n"
msgstr ""
-#: diagnostic.c:1527 diagnostic.c:1544
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1547
+#: diagnostic.c:1465
#, c-format
msgid "`%s' is deprecated"
msgstr ""
-#: diagnostic.c:1550
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1553
+#: diagnostic.c:1471
msgid "type is deprecated"
msgstr ""
-#: dwarf2out.c:3075
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3136
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr ""
-#: dwarfout.c:2087
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
msgstr ""
-#: dwarfout.c:6287
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr ""
+
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr ""
-#: emit-rtl.c:1018
+#: emit-rtl.c:1157
msgid "can't access real part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:1040
+#: emit-rtl.c:1179
msgid "can't access imaginary part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:3145
+#: emit-rtl.c:3462
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
@@ -4943,251 +5036,264 @@ msgstr ""
msgid "abort in %s, at %s:%d"
msgstr ""
-#: except.c:377
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr ""
-#: except.c:3183
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr ""
-#: except.c:3294 except.c:3316
+#: except.c:3137
msgid "__builtin_eh_return not supported on this target"
msgstr ""
-#: explow.c:1369
+#: explow.c:1415
msgid "stack limits not supported on this target"
msgstr ""
-#: expr.c:2948
+#: expr.c:3388
msgid "function using short complex types cannot be inline"
msgstr ""
-#: expr.c:5815 expr.c:5824 expr.c:5833 expr.c:5838 expr.c:6125 expr.c:6141
+#: expr.c:6319 expr.c:6328 expr.c:6337 expr.c:6342 expr.c:6651 expr.c:6667
msgid "unsupported wide integer operation"
msgstr ""
-#: expr.c:6190
+#: expr.c:6716
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr ""
-#: expr.c:6537
+#: expr.c:7052
msgid "returned value in block_exit_expr"
msgstr ""
-#: final.c:1205
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9252
+msgid "cannot take the address of an unaligned member"
+msgstr ""
+
+#: final.c:1342
msgid "negative insn length"
msgstr ""
-#: final.c:2622
+#: final.c:2793
msgid "could not split insn"
msgstr ""
-#: final.c:2970
+#: final.c:3141
msgid "invalid `asm': "
msgstr ""
-#: final.c:3154
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3171 final.c:3183
+#: final.c:3345 final.c:3357
msgid "unterminated assembly dialect alternative"
msgstr ""
-#: final.c:3227
+#: final.c:3401
#, c-format
msgid "operand number missing after %%-letter"
msgstr ""
-#: final.c:3230 final.c:3269
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr ""
-#: final.c:3288
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr ""
-#: final.c:3319
+#: final.c:3493
#, c-format
msgid "`%%l' operand isn't a label"
msgstr ""
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3426 vmsdbgout.c:475 config/i386/i386.c:5337
-#: config/pdp11/pdp11.c:1570
+#. We can't handle floating point constants; PRINT_OPERAND must
+#. handle them.
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6352
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr ""
-#: final.c:3482 vmsdbgout.c:532 config/i386/i386.c:5391
-#: config/pdp11/pdp11.c:1617
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6430
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr ""
-#: flow.c:356
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr ""
-#: flow.c:361
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr ""
-#: flow.c:380
+#: flow.c:378
msgid "control reaches end of non-void function"
msgstr ""
-#: flow.c:1655
+#: flow.c:1641
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:2476 fold-const.c:2489
+#: fold-const.c:2546 fold-const.c:2559
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr ""
-#: fold-const.c:3532 fold-const.c:3549
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:3680
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:3685
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr ""
-#: function.c:901 varasm.c:1531
+#: function.c:889 varasm.c:1503
#, c-format
msgid "size of variable `%s' is too large"
msgstr ""
-#: function.c:5492
+#: function.c:3802
+msgid "impossible constraint in `asm'"
+msgstr ""
+
+#: function.c:5557
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr ""
-#: function.c:5499
+#: function.c:5564
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:5518
+#: function.c:5583
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:6383
+#: function.c:6450
msgid "function returns an aggregate"
msgstr ""
-#: function.c:6905
+#: function.c:6956
#, c-format
msgid "unused parameter `%s'"
msgstr ""
-#: gcc.c:1101
+#: gcc.c:1124
#, c-format
msgid "ambiguous abbreviation %s"
msgstr ""
-#: gcc.c:1128
+#: gcc.c:1151
#, c-format
msgid "incomplete `%s' option"
msgstr ""
-#: gcc.c:1139
+#: gcc.c:1162
#, c-format
msgid "missing argument to `%s' option"
msgstr ""
-#: gcc.c:1152
+#: gcc.c:1175
#, c-format
msgid "extraneous argument to `%s' option"
msgstr ""
-#: gcc.c:1459
+#: gcc.c:1507
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1633
+#: gcc.c:1694
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1731
+#: gcc.c:1801
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:1829 gcc.c:1848
+#: gcc.c:1899 gcc.c:1918
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1856
+#: gcc.c:1926
#, c-format
msgid "could not find specs file %s\n"
msgstr ""
-#: gcc.c:1873 gcc.c:1881 gcc.c:1890 gcc.c:1899
+#: gcc.c:1943 gcc.c:1951 gcc.c:1960 gcc.c:1969
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1908
+#: gcc.c:1978
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:1915
+#: gcc.c:1985
#, c-format
msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: gcc.c:1920
+#: gcc.c:1990
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:1922
+#: gcc.c:1992
#, c-format
msgid ""
"spec is '%s'\n"
"\n"
msgstr ""
-#: gcc.c:1935
+#: gcc.c:2005
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:1946 gcc.c:1959
+#: gcc.c:2016 gcc.c:2029
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2013
+#: gcc.c:2083
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2725
+#: gcc.c:2608
msgid "-pipe not supported"
msgstr ""
-#: gcc.c:2779
+#: gcc.c:2670
msgid ""
"\n"
"Go ahead? (y or n) "
msgstr ""
-#: gcc.c:2878
+#: gcc.c:2796
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5195,183 +5301,187 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2896
+#: gcc.c:2814
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr ""
-#: gcc.c:3029
+#: gcc.c:2944
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: gcc.c:3030
+#: gcc.c:2945
msgid "Options:\n"
msgstr ""
-#: gcc.c:3032
+#: gcc.c:2947
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
-#: gcc.c:3033
+#: gcc.c:2948
msgid " --help Display this information\n"
msgstr ""
-#: gcc.c:3034
+#: gcc.c:2949
msgid ""
" --target-help Display target specific command line options\n"
msgstr ""
-#: gcc.c:3036
+#: gcc.c:2951
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr ""
-#: gcc.c:3037
+#: gcc.c:2952
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr ""
-#: gcc.c:3038
+#: gcc.c:2953
msgid " -dumpversion Display the version of the compiler\n"
msgstr ""
-#: gcc.c:3039
+#: gcc.c:2954
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr ""
-#: gcc.c:3040
+#: gcc.c:2955
msgid ""
" -print-search-dirs Display the directories in the compiler's search "
"path\n"
msgstr ""
-#: gcc.c:3041
+#: gcc.c:2956
msgid ""
" -print-libgcc-file-name Display the name of the compiler's companion "
"library\n"
msgstr ""
-#: gcc.c:3042
+#: gcc.c:2957
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr ""
-#: gcc.c:3043
+#: gcc.c:2958
msgid ""
" -print-prog-name=<prog> Display the full path to compiler component "
"<prog>\n"
msgstr ""
-#: gcc.c:3044
+#: gcc.c:2959
msgid ""
" -print-multi-directory Display the root directory for versions of "
"libgcc\n"
msgstr ""
-#: gcc.c:3045
+#: gcc.c:2960
msgid ""
" -print-multi-lib Display the mapping between command line options "
"and\n"
" multiple library search directories\n"
msgstr ""
-#: gcc.c:3048
+#: gcc.c:2963
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr ""
+
+#: gcc.c:2964
msgid ""
" -Wa,<options> Pass comma-separated <options> on to the "
"assembler\n"
msgstr ""
-#: gcc.c:3049
+#: gcc.c:2965
msgid ""
" -Wp,<options> Pass comma-separated <options> on to the "
"preprocessor\n"
msgstr ""
-#: gcc.c:3050
+#: gcc.c:2966
msgid ""
" -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr ""
-#: gcc.c:3051
+#: gcc.c:2967
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr ""
-#: gcc.c:3052
+#: gcc.c:2968
msgid " -save-temps Do not delete intermediate files\n"
msgstr ""
-#: gcc.c:3053
+#: gcc.c:2969
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr ""
-#: gcc.c:3054
+#: gcc.c:2970
msgid " -time Time the execution of each subprocess\n"
msgstr ""
-#: gcc.c:3055
+#: gcc.c:2971
msgid ""
" -specs=<file> Override built-in specs with the contents of "
"<file>\n"
msgstr ""
-#: gcc.c:3056
+#: gcc.c:2972
msgid ""
" -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
-#: gcc.c:3057
+#: gcc.c:2973
msgid ""
" -B <directory> Add <directory> to the compiler's search paths\n"
msgstr ""
-#: gcc.c:3058
+#: gcc.c:2974
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
-#: gcc.c:3059
+#: gcc.c:2975
msgid ""
" -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
-#: gcc.c:3060
+#: gcc.c:2976
msgid ""
" -v Display the programs invoked by the compiler\n"
msgstr ""
-#: gcc.c:3061
+#: gcc.c:2977
msgid ""
" -### Like -v but options quoted and commands not "
"executed\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:2978
msgid ""
" -E Preprocess only; do not compile, assemble or "
"link\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:2979
msgid " -S Compile only; do not assemble or link\n"
msgstr ""
-#: gcc.c:3064
+#: gcc.c:2980
msgid " -c Compile and assemble, but do not link\n"
msgstr ""
-#: gcc.c:3065
+#: gcc.c:2981
msgid " -o <file> Place the output into <file>\n"
msgstr ""
-#: gcc.c:3066
+#: gcc.c:2982
msgid ""
" -x <language> Specify the language of the following input "
"files\n"
-" Permissable languages include: c c++ assembler "
+" Permissible languages include: c c++ assembler "
"none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's "
"extension\n"
msgstr ""
-#: gcc.c:3073
+#: gcc.c:2989
#, c-format
msgid ""
"\n"
@@ -5380,86 +5490,89 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
+#: gcc.c:3124
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr ""
+
+#: gcc.c:3146
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
+
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3353
+#: gcc.c:3323
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3354
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#: gcc.c:3324
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
msgstr ""
-#: gcc.c:3356 gcov.c:320
+#: gcc.c:3326 gcov.c:364
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
"\n"
msgstr ""
-#: gcc.c:3455
+#: gcc.c:3427
msgid "argument to `-Xlinker' is missing"
msgstr ""
-#: gcc.c:3463
+#: gcc.c:3435
msgid "argument to `-l' is missing"
msgstr ""
-#: gcc.c:3480
+#: gcc.c:3452
msgid "argument to `-specs' is missing"
msgstr ""
-#: gcc.c:3495
+#: gcc.c:3467
msgid "argument to `-specs=' is missing"
msgstr ""
-#: gcc.c:3526
-msgid "argument to `-b' is missing"
+#: gcc.c:3497
+#, c-format
+msgid "`-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3541
+#: gcc.c:3506
msgid "argument to `-B' is missing"
msgstr ""
-#: gcc.c:3611
-msgid "argument to `-V' is missing"
-msgstr ""
-
-#: gcc.c:3632 gcc.c:3639 gcc.c:3646
-msgid "invalid version number format"
-msgstr ""
-
-#: gcc.c:3756
+#: gcc.c:3679
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr ""
-#: gcc.c:3927
+#: gcc.c:3870
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3931
+#: gcc.c:3874
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:3943
+#: gcc.c:3886
msgid "argument to `-x' is missing"
msgstr ""
-#: gcc.c:3971
+#: gcc.c:3914
#, c-format
msgid "argument to `-%s' is missing"
msgstr ""
-#: gcc.c:4032
+#: gcc.c:3975
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4331
+#: gcc.c:4320
msgid "invalid specification! Bug in cc"
msgstr ""
-#: gcc.c:4480
+#: gcc.c:4474
#, c-format
msgid "%s\n"
msgstr ""
@@ -5467,153 +5580,183 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5033
+#: gcc.c:5051
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5042
+#: gcc.c:5060
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: gcc.c:5060
+#: gcc.c:5078
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5185
+#: gcc.c:5203
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr ""
-#: gcc.c:5295
+#: gcc.c:5284
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr ""
+
+#: gcc.c:5303
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr ""
+
+#: gcc.c:5352
+msgid "malformed spec function name"
+msgstr ""
+
+#. )
+#: gcc.c:5355
+msgid "no arguments for spec function"
+msgstr ""
+
+#: gcc.c:5374
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5482
msgid "mismatched braces in specs"
msgstr ""
-#: gcc.c:5973
+#: gcc.c:6170
#, c-format
msgid "unrecognized option `-%s'"
msgstr ""
-#: gcc.c:5979
+#: gcc.c:6176
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:5980
+#: gcc.c:6177
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:5981
+#: gcc.c:6178
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:6029
+#: gcc.c:6235
+#, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:6045
+#: gcc.c:6251
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6059
+#: gcc.c:6265
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6070
+#: gcc.c:6276
#, c-format
msgid "gcc version %s\n"
msgstr ""
-#: gcc.c:6072
+#: gcc.c:6278
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr ""
-#: gcc.c:6080
+#: gcc.c:6286
msgid "no input files"
msgstr ""
-#: gcc.c:6118
+#: gcc.c:6324
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr ""
-#: gcc.c:6193
+#: gcc.c:6399
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6236
+#: gcc.c:6442
#, c-format
msgid "language %s not recognized"
msgstr ""
-#: gcc.c:6339
+#: gcc.c:6545
msgid "internal gcc abort"
msgstr ""
-#: gcov.c:282
+#: gcov.c:325
msgid "Internal gcov abort.\n"
msgstr ""
-#: gcov.c:295
+#: gcov.c:338
msgid ""
"Usage: gcov [OPTION]... SOURCEFILE\n"
"\n"
msgstr ""
-#: gcov.c:296
+#: gcov.c:339
msgid ""
"Print code coverage information.\n"
"\n"
msgstr ""
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
msgstr ""
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
msgstr ""
-#: gcov.c:299
+#: gcov.c:342
msgid ""
" -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr ""
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
+#: gcov.c:349
+msgid ""
+" -o, --object-directory DIR|FILE Search for object files in DIR or called "
+"FILE\n"
+msgstr ""
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
-#: gcov.c:307
+#: gcov.c:351
#, c-format
msgid ""
"\n"
@@ -5621,265 +5764,467 @@ msgid ""
"%s.\n"
msgstr ""
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr ""
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr ""
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr ""
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr ""
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr ""
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr ""
-#: gcov.c:478
+#: gcov.c:534
#, c-format
-msgid "Could not open program flow graph file %s.\n"
+msgid "No executable code associated with file %s.\n"
msgstr ""
-#: gcov.c:489
+#: gcov.c:1186
#, c-format
-msgid "No executable code associated with file %s.\n"
+msgid "%s of %d lines executed in %s %s\n"
msgstr ""
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
msgstr ""
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
msgstr ""
-#: gcov.c:973
+#: gcov.c:1203
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
+msgid "%s of %d branches taken at least once in %s %s\n"
msgstr ""
-#: gcov.c:977
+#: gcov.c:1209
#, c-format
-msgid "No executable source lines in function %s\n"
+msgid "No branches in %s %s\n"
msgstr ""
-#: gcov.c:984
+#: gcov.c:1211
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
+msgid "%s of %d calls executed in %s %s\n"
msgstr ""
-#: gcov.c:988
+#: gcov.c:1216
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+msgid "No calls in %s %s\n"
msgstr ""
-#: gcov.c:993
+#: gcov.c:1351
#, c-format
-msgid "No branches in function %s\n"
+msgid "didn't use all bb entries of graph, function %s\n"
msgstr ""
-#: gcov.c:995
+#: gcov.c:1353
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
+msgid "block_num = %ld, num_blocks = %d\n"
msgstr ""
-#: gcov.c:999
+#: gcov.c:1367
#, c-format
-msgid "No calls in function %s\n"
+msgid "ERROR: unexpected line number %ld\n"
msgstr ""
-#: gcov.c:1126
+#: gcov.c:1383
#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
+msgid "ERROR: too many basic blocks in function %s\n"
msgstr ""
-#: gcov.c:1128
+#: gcov.c:1398
#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
+msgid "ERROR: out of range line number in function %s\n"
msgstr ""
-#: gcov.c:1166
+#: gcov.c:1470
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
+msgid "Could not open source file %s.\n"
msgstr ""
-#: gcov.c:1243
+#: gcov.c:1480
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
+msgid "Warning: source file %s is newer than %s\n"
msgstr ""
-#: gcov.c:1247
+#: gcov.c:1510
#, c-format
-msgid "No executable source lines in file %s\n"
+msgid "Unexpected EOF while reading source file %s.\n"
msgstr ""
-#: gcov.c:1254
+#: gcov.c:1532
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
+msgid "call %2d never executed\n"
msgstr ""
-#: gcov.c:1258
+#: gcov.c:1535
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+msgid "call %2d returns %s\n"
msgstr ""
-#: gcov.c:1263
+#: gcov.c:1543
#, c-format
-msgid "No branches in file %s\n"
+msgid "branch %2d never executed\n"
msgstr ""
-#: gcov.c:1265
+#: gcov.c:1546
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
+msgid "branch %2d taken %s\n"
msgstr ""
-#: gcov.c:1269
+#: gcov.c:1610
#, c-format
-msgid "No calls in file %s\n"
+msgid "Creating %s.\n"
msgstr ""
-#: gcov.c:1281
+#: gcov.c:1613
#, c-format
-msgid "Could not open source file %s.\n"
+msgid "Error writing output file %s.\n"
msgstr ""
-#: gcov.c:1331
+#: gcov.c:1618
#, c-format
msgid "Could not open output file %s.\n"
msgstr ""
-#: gcov.c:1339
+#: gcse.c:763
#, c-format
-msgid "Creating %s.\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
msgstr ""
-#: gcov.c:1387
+#: gcse.c:775
#, c-format
-msgid "call %d never executed\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
msgstr ""
-#: gcov.c:1396
+#: genautomata.c:1490
#, c-format
-msgid "call %d returns = %s\n"
+msgid "Name `%s' contains quotes"
msgstr ""
-#: gcov.c:1406
+#: genautomata.c:1621
#, c-format
-msgid "call %d returns = %s%%\n"
+msgid "invalid string `%s' in define_cpu_unit"
msgstr ""
-#: gcov.c:1413
+#: genautomata.c:1650
#, c-format
-msgid "branch %d never executed\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
msgstr ""
-#: gcov.c:1423
+#: genautomata.c:1682 genautomata.c:1685
#, c-format
-msgid "branch %d taken = %s\n"
+msgid "invalid string `%s' in define_bypass"
msgstr ""
-#: gcov.c:1433
+#: genautomata.c:1720
#, c-format
-msgid "branch %d taken = %s%%\n"
+msgid "invalid first string `%s' in exclusion_set"
msgstr ""
-#: gcov.c:1444
+#: genautomata.c:1724
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
+msgid "invalid second string `%s' in exclusion_set"
msgstr ""
-#: gcse.c:759
+#: genautomata.c:1760
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgid "invalid first string `%s' in presence_set"
msgstr ""
-#: gcse.c:771
+#: genautomata.c:1764
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
+msgid "invalid second string `%s' in presence_set"
msgstr ""
-#: graph.c:421 profile.c:951 profile.c:959 toplev.c:1751 toplev.c:4884
-#: f/com.c:14293 java/jcf-parse.c:935 java/jcf-parse.c:1081 java/lex.c:1771
-#: objc/objc-act.c:490
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr ""
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr ""
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr ""
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr ""
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr ""
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr ""
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr ""
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr ""
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr ""
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr ""
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr ""
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr ""
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr ""
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr ""
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr ""
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr ""
+
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr ""
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr ""
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr ""
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr ""
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr ""
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr ""
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr ""
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5180
+#: f/com.c:14212 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, c-format
msgid "can't open %s"
msgstr ""
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr ""
-#: integrate.c:186
+#: integrate.c:174
msgid "function cannot be inline"
msgstr ""
-#: integrate.c:191
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr ""
-#: integrate.c:194
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr ""
-#: integrate.c:197
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr ""
-#: integrate.c:200
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr ""
-#: integrate.c:203
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr ""
-#: integrate.c:207
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
msgstr ""
-#: integrate.c:214 integrate.c:258
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr ""
-#: integrate.c:224
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr ""
-#: integrate.c:231 integrate.c:276
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr ""
-#: integrate.c:236
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr ""
-#: integrate.c:243
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr ""
-#: integrate.c:246
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr ""
-#: integrate.c:265
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr ""
-#: integrate.c:269
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr ""
-#: integrate.c:283
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr ""
@@ -5913,55 +6258,56 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr ""
-#: profile.c:430
+#: profile.c:397
#, c-format
-msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgid "Profile does not match flowgraph of function %s (out of date?)"
msgstr ""
-#: profile.c:976
-#, c-format
-msgid "file %s not found, execution counts assumed to be zero"
+#: profile.c:400
+msgid ".da file corrupted"
msgstr ""
-#: profile.c:1023
-msgid ".da file contents exhausted too early"
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr ""
-#: profile.c:1026
-msgid ".da file contents not exhausted"
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
msgstr ""
-#: protoize.c:546
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr ""
-#: protoize.c:637
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr ""
-#: protoize.c:682
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr ""
-#: protoize.c:685
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr ""
-#: protoize.c:792
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr ""
-#: protoize.c:800
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr ""
-#: protoize.c:808
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr ""
@@ -5969,1689 +6315,1730 @@ msgstr ""
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1226
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr ""
-#: protoize.c:1378
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr ""
-#: protoize.c:1399
+#: protoize.c:1395
#, c-format
msgid ""
"\n"
"%s: fatal error: aux info file corrupted at line %d\n"
msgstr ""
-#: protoize.c:1735
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr ""
-#: protoize.c:1993
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr ""
-#: protoize.c:2016
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr ""
-#: protoize.c:2021
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr ""
-#: protoize.c:2029
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr ""
-#: protoize.c:2081
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr ""
-#: protoize.c:2090 protoize.c:2119
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2135 protoize.c:2163
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2191
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr ""
-#: protoize.c:2209
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2222
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2238
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2320 protoize.c:4322
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr ""
-#: protoize.c:2399
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr ""
-#: protoize.c:2524
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr ""
-#: protoize.c:2528
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr ""
-#: protoize.c:2530
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr ""
-#: protoize.c:2563
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr ""
-#: protoize.c:2603
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr ""
-#: protoize.c:2609
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr ""
-#: protoize.c:2640
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2646
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2819 protoize.c:2822
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr ""
-#: protoize.c:3028
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr ""
-#: protoize.c:3043
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3166
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr ""
-#: protoize.c:3187
+#: protoize.c:3183
#, c-format
msgid ""
"\n"
"%s: warning: too few parameter lists in declaration of `%s'\n"
msgstr ""
-#: protoize.c:3285
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr ""
-#: protoize.c:3463
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr ""
-#: protoize.c:3490
+#: protoize.c:3486
#, c-format
msgid ""
"\n"
"%s: %d: warning: can't add declaration of `%s' into macro call\n"
msgstr ""
-#: protoize.c:3564
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr ""
-#: protoize.c:3655 protoize.c:3685
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3674
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr ""
-#: protoize.c:4004
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr ""
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4020
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr ""
-#: protoize.c:4023
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr ""
-#: protoize.c:4082
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr ""
-#: protoize.c:4090
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr ""
-#: protoize.c:4093
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr ""
-#: protoize.c:4103
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr ""
-#: protoize.c:4145
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr ""
-#: protoize.c:4160
+#: protoize.c:4156
#, c-format
msgid ""
"\n"
"%s: error reading input file `%s': %s\n"
msgstr ""
-#: protoize.c:4194
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr ""
-#: protoize.c:4299
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr ""
-#: protoize.c:4307
+#: protoize.c:4303
#, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr ""
-#: protoize.c:4337
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr ""
-#: protoize.c:4370
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr ""
-#: protoize.c:4545
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr ""
-#: protoize.c:4643
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr ""
-#: real.c:731 real.c:908
-msgid "conversion from NaN to int"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
msgstr ""
-#: real.c:754
-msgid "conversion from NaN to unsigned int"
-msgstr ""
-
-#: real.c:2628
-msgid "floating point overflow"
-msgstr ""
-
-#: real.c:4303 real.c:6619 real.c:6700
-msgid "overflow on truncation to integer"
-msgstr ""
-
-#: real.c:4375
-msgid "overflow on truncation to unsigned integer"
-msgstr ""
-
-#: real.c:5720
-#, c-format
-msgid "%s: argument domain error"
-msgstr ""
-
-#: real.c:5721
-#, c-format
-msgid "%s: function singularity"
-msgstr ""
-
-#: real.c:5722
-#, c-format
-msgid "%s: overflow range error"
-msgstr ""
-
-#: real.c:5723
-#, c-format
-msgid "%s: underflow range error"
-msgstr ""
-
-#: real.c:5724
-#, c-format
-msgid "%s: total loss of precision"
-msgstr ""
-
-#: real.c:5725
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr ""
-
-#: real.c:5726
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr ""
-
-#: real.c:6270
-#, c-format
-msgid "%d-bit floats cannot hold NaNs"
-msgstr ""
-
-#: real.c:6344
-#, c-format
-msgid "value exceeds the range of a %d-bit float"
-msgstr ""
-
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr ""
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: regclass.c:793 config/ia64/ia64.c:3875 config/ia64/ia64.c:3882
+#: regclass.c:771 config/ia64/ia64.c:4309 config/ia64/ia64.c:4316
#, c-format
msgid "unknown register name: %s"
msgstr ""
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr ""
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1845
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1857
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1860
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1872
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1208
+#: reload.c:1283
msgid "cannot reload integer constant operand in `asm'"
msgstr ""
-#: reload.c:1230
+#: reload.c:1305
msgid "impossible register constraint in `asm'"
msgstr ""
-#: reload.c:3377
+#: reload.c:3526
msgid "`&' constraint used with no register class"
msgstr ""
-#: reload.c:3545
+#: reload.c:3694
msgid "unable to generate reloads for:"
msgstr ""
-#: reload.c:3546 reload.c:3760
+#: reload.c:3695 reload.c:3909
msgid "inconsistent operand constraints in an `asm'"
msgstr ""
-#: reload1.c:1247
+#: reload1.c:1260
msgid "frame size too large for reliable stack checking"
msgstr ""
-#: reload1.c:1250
+#: reload1.c:1263
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1902
+#: reload1.c:1927
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr ""
-#: reload1.c:1906
+#: reload1.c:1931
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr ""
-#: reload1.c:1908
+#: reload1.c:1933
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3924
+#: reload1.c:3968
msgid "`asm' operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:5040
+#: reload1.c:5084
msgid "could not find a spill register"
msgstr ""
-#: reload1.c:5045
+#: reload1.c:5089
msgid "`asm' operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6639
+#: reload1.c:6711
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6640
+#: reload1.c:6712
msgid "output operand is constant in `asm'"
msgstr ""
-#: rtl-error.c:139
+#: rtl-error.c:140
msgid "unrecognizable insn:"
msgstr ""
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:563
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:578
+#: rtl.c:550
#, c-format
msgid ""
"RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:594
+#: rtl.c:566
#, c-format
msgid ""
"RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %"
"s:%d"
msgstr ""
-#: rtl.c:607
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:621
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:636
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: stmt.c:928
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr ""
-#: stmt.c:1164 stmt.c:3763
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr ""
-#: stmt.c:1344
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr ""
-#: stmt.c:1359
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:1381
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr ""
-#: stmt.c:1387 stmt.c:1487
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr ""
-#: stmt.c:1406
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:1478
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr ""
-#: stmt.c:1518
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:1550
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr ""
-#: stmt.c:1646
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr ""
+
+#: stmt.c:1540
#, c-format
msgid "unknown register name `%s' in `asm'"
msgstr ""
-#: stmt.c:1690
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr ""
-#: stmt.c:1749
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1818 stmt.c:1847
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr ""
-#: stmt.c:1993
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr ""
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr ""
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr ""
-#: stmt.c:2005
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr ""
-#: stmt.c:2058
+#: stmt.c:1994
#, c-format
msgid "duplicate asm operand name '%s'"
msgstr ""
-#: stmt.c:2145
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:2173
+#: stmt.c:2109
#, c-format
msgid "undefined named operand '%s'"
msgstr ""
-#: stmt.c:3700
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr ""
-#: stmt.c:5180
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr ""
-#: stmt.c:5205 stmt.c:5225
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr ""
-#: stmt.c:5208 stmt.c:5228
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr ""
-#: stmt.c:5315
+#: stmt.c:5310
msgid "switch missing default case"
msgstr ""
-#: stor-layout.c:175
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr ""
-#: stor-layout.c:177
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr ""
-#: stor-layout.c:458
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr ""
-#: stor-layout.c:460
+#: stor-layout.c:489
#, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr ""
-#: stor-layout.c:858 stor-layout.c:1159
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr ""
-#: stor-layout.c:860 stor-layout.c:1161
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr ""
-#: stor-layout.c:875
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr ""
-#: stor-layout.c:1123
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr ""
-#: stor-layout.c:1166
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr ""
-#: stor-layout.c:1168
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr ""
-#: timevar.c:448
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
msgid ""
"\n"
"Execution times (seconds)\n"
msgstr ""
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr ""
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
-#: tlink.c:428
+#: tlink.c:399
#, c-format
msgid "collect: reading %s\n"
msgstr ""
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr ""
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr ""
-#: tlink.c:745
+#: tlink.c:721
+#, c-format
msgid "collect: relinking\n"
msgstr ""
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr ""
-#: toplev.c:875
+#: toplev.c:920
msgid "Generate debugging info in default format"
msgstr ""
-#: toplev.c:876
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr ""
-#: toplev.c:878
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr ""
-#: toplev.c:879
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr ""
-#: toplev.c:882
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr ""
-#: toplev.c:884
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr ""
-#: toplev.c:887
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr ""
-#: toplev.c:890
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr ""
-#: toplev.c:891
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr ""
-#: toplev.c:894
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr ""
-#: toplev.c:897
+#: toplev.c:942
msgid "Generate VMS format debug info"
msgstr ""
-#: toplev.c:941
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: toplev.c:943
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr ""
-#: toplev.c:945
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr ""
-#: toplev.c:947
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr ""
-#: toplev.c:949
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr ""
-#: toplev.c:951
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: toplev.c:953
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr ""
-#: toplev.c:955
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: toplev.c:957
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: toplev.c:959
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: toplev.c:961
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: toplev.c:963
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
msgstr ""
-#: toplev.c:965
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr ""
-#: toplev.c:967
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: toplev.c:969
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr ""
-#: toplev.c:971
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: toplev.c:973
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr ""
-#: toplev.c:975
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr ""
-#: toplev.c:977
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr ""
-#: toplev.c:979
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: toplev.c:981
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr ""
-#: toplev.c:983
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr ""
-#: toplev.c:985
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: toplev.c:987
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr ""
-#: toplev.c:989
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr ""
-#: toplev.c:991
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr ""
-#: toplev.c:993
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: toplev.c:995
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr ""
-#: toplev.c:997
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr ""
-#: toplev.c:999
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr ""
-#: toplev.c:1001
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr ""
-#: toplev.c:1003
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr ""
-#: toplev.c:1005
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: toplev.c:1007
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr ""
-#: toplev.c:1009
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr ""
-#: toplev.c:1011
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr ""
-#: toplev.c:1013
+#: toplev.c:1055
msgid "Perform the loop optimizations"
msgstr ""
-#: toplev.c:1015
+#: toplev.c:1057
msgid "Perform cross-jumping optimization"
msgstr ""
-#: toplev.c:1017
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr ""
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr ""
-#: toplev.c:1019
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr ""
-#: toplev.c:1021
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
msgstr ""
-#: toplev.c:1023
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr ""
-#: toplev.c:1025
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr ""
-#: toplev.c:1027
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr ""
-#: toplev.c:1029
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr ""
-#: toplev.c:1031
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr ""
-#: toplev.c:1033
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr ""
-#: toplev.c:1035
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr ""
-#: toplev.c:1037
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr ""
-#: toplev.c:1040
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr ""
-#: toplev.c:1042
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: toplev.c:1044
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr ""
-#: toplev.c:1046
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr ""
-#: toplev.c:1048
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr ""
-#: toplev.c:1050
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr ""
-#: toplev.c:1052
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: toplev.c:1054
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr ""
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: toplev.c:1056
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr ""
-#: toplev.c:1058
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr ""
-#: toplev.c:1060
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: toplev.c:1062
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr ""
-#: toplev.c:1064
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr ""
-#: toplev.c:1066
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr ""
-#: toplev.c:1068
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr ""
-#: toplev.c:1070
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
msgstr ""
-#: toplev.c:1072
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr ""
-#: toplev.c:1074
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr ""
-#: toplev.c:1076
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr ""
-#: toplev.c:1078
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr ""
-#: toplev.c:1080
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr ""
-#: toplev.c:1082
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: toplev.c:1084
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr ""
-#: toplev.c:1086
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr ""
-#: toplev.c:1088
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr ""
-#: toplev.c:1090
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: toplev.c:1092
+#: toplev.c:1142
msgid "Align all labels"
msgstr ""
-#: toplev.c:1094
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr ""
-#: toplev.c:1096
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: toplev.c:1098
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: toplev.c:1100
+#: toplev.c:1150
msgid ""
"Suppress output of instruction numbers and line number notes in debugging "
"dumps"
msgstr ""
-#: toplev.c:1102
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr ""
-#: toplev.c:1104
+#: toplev.c:1154
msgid "Put zero initialized data in the bss section"
msgstr ""
-#: toplev.c:1106
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr ""
-#: toplev.c:1108
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr ""
-#: toplev.c:1110
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr ""
-#: toplev.c:1112
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr ""
-#: toplev.c:1114
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr ""
-#: toplev.c:1116
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr ""
-#: toplev.c:1118
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr ""
-#: toplev.c:1120
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr ""
-#: toplev.c:1122
+#: toplev.c:1174
msgid "Floating-point operations can trap"
msgstr ""
-#: toplev.c:1124
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
-#: toplev.c:1126
-msgid "Compile pointers as triples: value, base & end"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: toplev.c:1128
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: toplev.c:1130
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr ""
-#: toplev.c:1132
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr ""
-#: toplev.c:1134
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr ""
-#: toplev.c:1136
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr ""
-#: toplev.c:1153
-msgid "Compile just for ISO C89"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr ""
+
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
msgstr ""
-#: toplev.c:1155
+#: toplev.c:1209
msgid "Determine language standard"
msgstr ""
-#: toplev.c:1159
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr ""
-#: toplev.c:1165
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr ""
-#: toplev.c:1171
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr ""
-#: toplev.c:1174
+#: toplev.c:1228
msgid "Do not recognize any built in functions"
msgstr ""
-#: toplev.c:1176
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr ""
-#: toplev.c:1179
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
msgstr ""
-#: toplev.c:1182
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr ""
-#: toplev.c:1185
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr ""
-#: toplev.c:1190
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr ""
-#: toplev.c:1193
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr ""
-#: toplev.c:1196
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr ""
-#: toplev.c:1200
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr ""
-#: toplev.c:1202
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
msgstr ""
-#: toplev.c:1205
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-#: toplev.c:1208
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr ""
-#: toplev.c:1211
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr ""
-#: toplev.c:1214 toplev.c:1217
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr ""
-#: toplev.c:1220
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr ""
-#: toplev.c:1224
+#: toplev.c:1278
msgid "Do not warn about compile-time integer division by zero"
msgstr ""
-#: toplev.c:1226
+#: toplev.c:1280
msgid "Warn about testing equality of floating point numbers"
msgstr ""
-#: toplev.c:1229
+#: toplev.c:1283
msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr ""
-#: toplev.c:1233
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr ""
-#: toplev.c:1235
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr ""
-#: toplev.c:1238
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr ""
-#: toplev.c:1242
+#: toplev.c:1296
msgid "Don't warn about strftime formats yielding 2 digit years"
msgstr ""
-#: toplev.c:1244
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr ""
-#: toplev.c:1248
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr ""
-#: toplev.c:1253
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr ""
-#: toplev.c:1257
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr ""
-#: toplev.c:1259
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr ""
-#: toplev.c:1262
+#: toplev.c:1316
msgid "Warn about possibly missing braces around initializers"
msgstr ""
-#: toplev.c:1265
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr ""
-#: toplev.c:1268
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr ""
-#: toplev.c:1271
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr ""
-#: toplev.c:1274
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr ""
-#: toplev.c:1277
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr ""
-#: toplev.c:1280
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
msgstr ""
-#: toplev.c:1283
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr ""
-#: toplev.c:1286
+#: toplev.c:1340
msgid "Warn whenever a function's return-type defaults to int"
msgstr ""
-#: toplev.c:1289
+#: toplev.c:1343
msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: toplev.c:1292
+#: toplev.c:1346
msgid "Warn about signed/unsigned comparisons"
msgstr ""
-#: toplev.c:1295
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr ""
-#: toplev.c:1298
+#: toplev.c:1352
msgid "Warn about constructs whose meanings change in ISO C"
msgstr ""
-#: toplev.c:1301
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr ""
-#: toplev.c:1306
+#: toplev.c:1360
msgid "Warn about unrecognized pragmas"
msgstr ""
-#: toplev.c:1309
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr ""
-#: toplev.c:1449
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr ""
-#: toplev.c:1451
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr ""
-#: toplev.c:1453
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr ""
-#: toplev.c:1455
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr ""
-#: toplev.c:1457
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr ""
-#: toplev.c:1459
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: toplev.c:1461
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr ""
-#: toplev.c:1463
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
msgstr ""
-#: toplev.c:1465
+#: toplev.c:1524
msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: toplev.c:1467
+#: toplev.c:1526
msgid "Warn about enumerated switches missing a default case"
msgstr ""
-#: toplev.c:1469
+#: toplev.c:1528
msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: toplev.c:1471
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: toplev.c:1473
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: toplev.c:1475
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr ""
-#: toplev.c:1477
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: toplev.c:1479
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr ""
-#: toplev.c:1481
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: toplev.c:1483
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr ""
-#: toplev.c:1485
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: toplev.c:1487
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: toplev.c:1489
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr ""
-#: toplev.c:1560 toplev.c:4284 tradcpp.c:796
-#, c-format
-msgid "invalid option `%s'"
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
msgstr ""
-#: toplev.c:1627
+#: toplev.c:1627 toplev.c:4560 config/rs6000/rs6000.c:681
#, c-format
-msgid "internal error: %s"
+msgid "invalid option `%s'"
msgstr ""
-#: toplev.c:1939
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr ""
-#: toplev.c:1942
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr ""
-#: toplev.c:1961
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr ""
-#: toplev.c:2206
+#: toplev.c:2280
#, c-format
msgid "invalid register name `%s' for register variable"
msgstr ""
-#: toplev.c:3495
+#: toplev.c:3709
+#, c-format
msgid ""
" -ffixed-<register> Mark <register> as being unavailable to the "
"compiler\n"
msgstr ""
-#: toplev.c:3496
+#: toplev.c:3710
+#, c-format
msgid ""
" -fcall-used-<register> Mark <register> as being corrupted by function "
"calls\n"
msgstr ""
-#: toplev.c:3497
+#: toplev.c:3711
+#, c-format
msgid ""
" -fcall-saved-<register> Mark <register> as being preserved across "
"functions\n"
msgstr ""
-#: toplev.c:3498
+#: toplev.c:3712
+#, c-format
msgid ""
" -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr ""
-#: toplev.c:3499
+#: toplev.c:3713
+#, c-format
msgid ""
" -fmessage-length=<number> Limits diagnostics messages lengths to <number> "
"characters per line. 0 suppresses line-wrapping\n"
msgstr ""
-#: toplev.c:3500
+#: toplev.c:3714
+#, c-format
msgid ""
" -fdiagnostics-show-location=[once | every-line] Indicates how often source "
"location information should be emitted, as prefix, at the beginning of "
"diagnostics when line-wrapping\n"
msgstr ""
-#: toplev.c:3511
+#: toplev.c:3715
+#, c-format
+msgid ""
+" -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] "
+"Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3716
+#, c-format
+msgid ""
+" -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3717
+#, c-format
+msgid ""
+" -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3718
+#, c-format
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3730
+#, c-format
msgid " -O[number] Set optimization level to [number]\n"
msgstr ""
-#: toplev.c:3512
+#: toplev.c:3731
+#, c-format
msgid " -Os Optimize for space rather than speed\n"
msgstr ""
-#: toplev.c:3524
+#: toplev.c:3743
+#, c-format
msgid ""
" -pedantic Issue warnings needed by strict compliance to ISO "
"C\n"
msgstr ""
-#: toplev.c:3525
+#: toplev.c:3744
+#, c-format
msgid ""
" -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr ""
-#: toplev.c:3526
+#: toplev.c:3745
+#, c-format
msgid " -w Suppress warnings\n"
msgstr ""
-#: toplev.c:3527
+#: toplev.c:3746
+#, c-format
msgid " -W Enable extra warnings\n"
msgstr ""
-#: toplev.c:3538
+#: toplev.c:3757
+#, c-format
msgid " -Wunused Enable unused warnings\n"
msgstr ""
-#: toplev.c:3539
+#: toplev.c:3758
+#, c-format
msgid ""
" -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr ""
-#: toplev.c:3540
+#: toplev.c:3759
+#, c-format
msgid " -p Enable function profiling\n"
msgstr ""
-#: toplev.c:3542
-msgid " -a Enable block profiling \n"
-msgstr ""
-
-#: toplev.c:3545
-msgid " -ax Enable jump profiling \n"
-msgstr ""
-
-#: toplev.c:3547
+#: toplev.c:3760
+#, c-format
msgid " -o <file> Place output into <file> \n"
msgstr ""
-#: toplev.c:3548
+#: toplev.c:3761
+#, c-format
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
msgstr ""
-#: toplev.c:3559
+#: toplev.c:3772
+#, c-format
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr ""
-#: toplev.c:3560
+#: toplev.c:3773
+#, c-format
msgid ""
" -quiet Do not display functions compiled or elapsed time\n"
msgstr ""
-#: toplev.c:3561
+#: toplev.c:3774
+#, c-format
msgid " -version Display the compiler's version\n"
msgstr ""
-#: toplev.c:3562
+#: toplev.c:3775
+#, c-format
msgid ""
" -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr ""
-#: toplev.c:3563
+#: toplev.c:3776
+#, c-format
msgid ""
" -dumpbase <file> Base name to be used for dumps from specific "
"passes\n"
msgstr ""
-#: toplev.c:3565
+#: toplev.c:3778
+#, c-format
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr ""
-#: toplev.c:3567
+#: toplev.c:3780
+#, c-format
msgid " --help Display this information\n"
msgstr ""
-#: toplev.c:3582
+#: toplev.c:3795
+#, c-format
msgid ""
"\n"
"Language specific options:\n"
msgstr ""
-#: toplev.c:3594
+#: toplev.c:3807
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3602 toplev.c:3616
+#: toplev.c:3815 toplev.c:3829
#, c-format
msgid ""
"\n"
"There are undocumented %s specific options as well.\n"
msgstr ""
-#: toplev.c:3606
+#: toplev.c:3819
#, c-format
msgid ""
"\n"
" Options for %s:\n"
msgstr ""
-#: toplev.c:3643
+#: toplev.c:3856
+#, c-format
msgid ""
"\n"
"Target specific options:\n"
msgstr ""
-#: toplev.c:3657 toplev.c:3676
+#: toplev.c:3870 toplev.c:3889
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3685
+#: toplev.c:3898
+#, c-format
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:3687
+#: toplev.c:3900
+#, c-format
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:3740
+#: toplev.c:3953
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
-#: toplev.c:3810
+#: toplev.c:4019
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr ""
+
+#: toplev.c:4046
#, c-format
msgid "unrecognized register name `%s'"
msgstr ""
-#: toplev.c:3835 toplev.c:4714
+#: toplev.c:4071 toplev.c:5024
#, c-format
msgid "unrecognized option `%s'"
msgstr ""
-#: toplev.c:3879
+#: toplev.c:4119
msgid "-Wid-clash-LEN is no longer supported"
msgstr ""
-#: toplev.c:3956
+#: toplev.c:4196
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr ""
-#: toplev.c:3959
+#: toplev.c:4199
msgid "use -gdwarf-2 for DWARF v2"
msgstr ""
-#: toplev.c:3964
+#: toplev.c:4204
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr ""
-#: toplev.c:3987 toplev.c:4712
+#: toplev.c:4227 toplev.c:5022
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr ""
-#: toplev.c:3994
+#: toplev.c:4234
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr ""
-#: toplev.c:4073
+#: toplev.c:4316
msgid "-param option missing argument"
msgstr ""
-#: toplev.c:4082
+#: toplev.c:4325
#, c-format
msgid "invalid --param option: %s"
msgstr ""
-#: toplev.c:4094
+#: toplev.c:4337
#, c-format
msgid "invalid parameter value `%s'"
msgstr ""
-#: toplev.c:4301
+#: toplev.c:4577
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7659,1164 +8046,963 @@ msgid ""
"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
-#: toplev.c:4357
+#: toplev.c:4584
+#, c-format
+msgid ""
+"%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4642
msgid "options passed: "
msgstr ""
-#: toplev.c:4386
+#: toplev.c:4671
msgid "options enabled: "
msgstr ""
-#: toplev.c:4445 java/jcf-write.c:3379
+#: toplev.c:4730 java/jcf-write.c:3453
#, c-format
msgid "can't open %s for writing"
msgstr ""
-#: toplev.c:4704
+#: toplev.c:5014
#, c-format
msgid "ignoring command line option '%s'"
msgstr ""
-#: toplev.c:4707
+#: toplev.c:5017
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr ""
-#: toplev.c:4741
+#: toplev.c:5051
msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: toplev.c:4800
+#: toplev.c:5106
msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: toplev.c:4804
+#: toplev.c:5110
msgid "this target machine does not have delayed branches"
msgstr ""
-#: toplev.c:4813
-msgid "profiling does not work without a frame pointer"
-msgstr ""
-
-#: toplev.c:4828
+#: toplev.c:5124
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: toplev.c:4891
+#: toplev.c:5187
msgid "-ffunction-sections not supported for this target"
msgstr ""
-#: toplev.c:4896
+#: toplev.c:5192
msgid "-fdata-sections not supported for this target"
msgstr ""
-#: toplev.c:4903
+#: toplev.c:5199
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:4910
+#: toplev.c:5206
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr ""
-#: toplev.c:4916
+#: toplev.c:5212
msgid ""
"-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: toplev.c:4925
+#: toplev.c:5221
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr ""
-#: toplev.c:4931
+#: toplev.c:5227
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:5044
+#: toplev.c:5339
#, c-format
msgid "error writing to %s"
msgstr ""
-#: toplev.c:5046 java/jcf-parse.c:954 java/jcf-write.c:3386
+#: toplev.c:5341 java/jcf-parse.c:936 java/jcf-write.c:3460
#, c-format
msgid "error closing %s"
msgstr ""
-#: /usr/share/bison.simple:650
-msgid "parse error; also virtual memory exceeded"
-msgstr ""
-
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr ""
-
-#: tradcif.y:277
-msgid "invalid number in #if expression"
-msgstr ""
-
-#: tradcif.y:357
-msgid "invalid character constant in #if"
-msgstr ""
-
-#: tradcif.y:394
-msgid "double quoted strings not allowed in #if expressions"
-msgstr ""
-
-#: tradcif.y:407
-msgid "invalid token in expression"
-msgstr ""
-
-#: tradcif.y:498
-msgid "octal character constant does not fit in a byte"
-msgstr ""
-
-#: tradcif.y:519
-msgid "hex character constant does not fit in a byte"
-msgstr ""
-
-#: tradcif.y:550
-msgid "empty #if expression"
-msgstr ""
-
-#: tradcif.y:564
-msgid "Junk after end of expression."
-msgstr ""
-
-#: tradcpp.c:145
-msgid "macro or #include recursion too deep"
-msgstr ""
-
-#: tradcpp.c:562
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr ""
-
-#: tradcpp.c:578
-msgid "-traditional is not supported in C++"
-msgstr ""
-
-#: tradcpp.c:580
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:594
-msgid "filename missing after -i option"
-msgstr ""
-
-#: tradcpp.c:612
-msgid "filename missing after -o option"
-msgstr ""
-
-#: tradcpp.c:675
-#, c-format
-msgid "target missing after %s option"
-msgstr ""
-
-#: tradcpp.c:689
-#, c-format
-msgid "filename missing after %s option"
-msgstr ""
-
-#: tradcpp.c:714
-#, c-format
-msgid "macro name missing after -%c option"
-msgstr ""
-
-#: tradcpp.c:734
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:739
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:765
-msgid "directory name missing after -I option"
-msgstr ""
-
-#: tradcpp.c:1449 tradcpp.c:3941
-msgid "`/*' within comment"
-msgstr ""
-
-#: tradcpp.c:1825
-#, c-format
-msgid "unterminated #%s conditional"
-msgstr ""
-
-#: tradcpp.c:2184
-msgid "not in any file?!"
-msgstr ""
-
-#: tradcpp.c:2290
-msgid "`defined' must be followed by ident or (ident)"
-msgstr ""
-
-#: tradcpp.c:2294
-msgid "cccp error: invalid special hash type"
-msgstr ""
-
-#: tradcpp.c:2392 tradcpp.c:2462
-msgid "#include expects \"fname\" or <fname>"
-msgstr ""
-
-#: tradcpp.c:2547
-#, c-format
-msgid "no include path in which to find %.*s"
-msgstr ""
-
-#: tradcpp.c:2725
-msgid "invalid macro name"
-msgstr ""
-
-#: tradcpp.c:2733
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr ""
-
-#: tradcpp.c:2738
-msgid "\"defined\" cannot be used as a macro name"
-msgstr ""
-
-#: tradcpp.c:2765
-msgid "parameter name starts with a digit in #define"
-msgstr ""
-
-#: tradcpp.c:2775
-msgid "badly punctuated parameter list in #define"
-msgstr ""
-
-#: tradcpp.c:2783
-msgid "unterminated parameter list in #define"
-msgstr ""
-
-#: tradcpp.c:2831
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr ""
-
-#: tradcpp.c:3088
-msgid "# operator should be followed by a macro argument name"
-msgstr ""
-
-#: tradcpp.c:3135 tradcpp.c:3161 tradcpp.c:3175 tradcpp.c:3182 tradcpp.c:3207
-msgid "invalid format #line command"
-msgstr ""
-
-#: tradcpp.c:3233
-msgid "undefining `defined'"
-msgstr ""
-
-#: tradcpp.c:3237
-#, c-format
-msgid "undefining `%s'"
-msgstr ""
-
-#: tradcpp.c:3293
-msgid "extra text at end of directive"
-msgstr ""
-
-#: tradcpp.c:3400
-#, c-format
-msgid "#error%.*s"
-msgstr ""
-
-#: tradcpp.c:3410
-#, c-format
-msgid "#warning%.*s"
-msgstr ""
-
-#: tradcpp.c:3566
-msgid "#elif not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3823
-#, c-format
-msgid "#%s not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3831
-msgid "#else or #elif after #else"
-msgstr ""
-
-#: tradcpp.c:3871
-msgid "#else not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3902
-msgid "unbalanced #endif"
-msgstr ""
-
-#: tradcpp.c:3996
-msgid "unterminated string or character constant"
-msgstr ""
-
-#: tradcpp.c:4154
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4160
-#, c-format
-msgid "no args to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4162
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4164
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4166
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr ""
-
-#: tradcpp.c:4763
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-
-#: tree-dump.c:848
+#: tree-dump.c:702
#, c-format
msgid "could not open dump file `%s'"
msgstr ""
-#: tree-dump.c:924
+#: tree-dump.c:778
#, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr ""
-#: tree.c:3709
+#: tree.c:3670
msgid "arrays of functions are not meaningful"
msgstr ""
-#: tree.c:3766
+#: tree.c:3727
msgid "function return type cannot be function"
msgstr ""
-#: tree.c:4520
+#: tree.c:4582
msgid "invalid initializer for bit string"
msgstr ""
-#: tree.c:4579
+#: tree.c:4641
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:4596
+#: tree.c:4658
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr ""
-#: varasm.c:456 config/i386/winnt.c:526
+#: tree.c:4675
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr ""
-#: varasm.c:878
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr ""
-#: varasm.c:880
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr ""
-#: varasm.c:883
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr ""
-#: varasm.c:886
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr ""
-#: varasm.c:895
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr ""
-#: varasm.c:898
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr ""
-#: varasm.c:931
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr ""
-#: varasm.c:1571
+#: varasm.c:1542
#, c-format
msgid ""
"alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr ""
-#: varasm.c:1637
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
#, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr ""
-#: varasm.c:4569
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
msgstr ""
-#: varasm.c:4574
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
msgstr ""
-#: varasm.c:4624
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr ""
-#: varasm.c:4838
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr ""
-#: varasm.c:4999
+#: varasm.c:4525 varasm.c:4568
#, c-format
-msgid "weak declaration of `%s' must be public"
+msgid "weak declaration of `%s' must precede definition"
msgstr ""
-#: varasm.c:5001
+#: varasm.c:4532
#, c-format
-msgid "weak declaration of `%s' must precede definition"
+msgid ""
+"weak declaration of `%s' after first use results in unspecified behavior"
msgstr ""
-#: varasm.c:5008
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr ""
+
+#: varasm.c:4575
#, c-format
msgid "weak declaration of `%s' not supported"
msgstr ""
-#: varasm.c:5035 varasm.c:5110
+#: varasm.c:4602 varasm.c:4694
msgid "only weak aliases are supported in this configuration"
msgstr ""
-#: varasm.c:5119
+#: varasm.c:4697
msgid "alias definitions not supported in this configuration; ignored"
msgstr ""
-#: varasm.c:5139
+#: varasm.c:4728
msgid "visibility attribute not supported in this configuration; ignored"
msgstr ""
-#: varray.c:88
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr ""
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr ""
-#: params.def:46
-msgid ""
-"The maximum number of instructions in a function that is eligible for "
-"inlining"
-msgstr ""
-
-#: params.def:57
-msgid "The maximum number of instructions to consider to fill a delay slot"
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
msgstr ""
-#: params.def:68
+#: params.def:53
msgid ""
-"The maximum number of instructions to consider to find accurate live "
-"register information"
+"The maximum number of instructions in a single function eligible for inlining"
msgstr ""
-#: params.def:78
-msgid "The maximum length of scheduling's pending operations list"
-msgstr ""
-
-#: params.def:85
-msgid "The maximum amount of memory to be allocated by GCSE"
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
msgstr ""
-#: params.def:90
-msgid "The maximum number of passes to make when doing GCSE"
+#: params.def:84
+msgid ""
+"The maximum number of instructions by repeated inlining before gcc starts to "
+"throttle inlining"
msgstr ""
#: params.def:97
-msgid "The maximum number of instructions to consider to unroll in a loop"
-msgstr ""
-
-#: config/darwin-c.c:76
-msgid "too many #pragma options align=reset"
-msgstr ""
-
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103
-#: config/darwin-c.c:105
-msgid "malformed '#pragma options', ignoring"
-msgstr ""
-
-#: config/darwin-c.c:108
-msgid "junk at end of '#pragma options'"
-msgstr ""
-
-#: config/darwin-c.c:118
-msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
-msgstr ""
-
-#: config/darwin-c.c:131
-msgid "missing '(' after '#pragma unused', ignoring"
-msgstr ""
-
-#: config/darwin-c.c:149
-msgid "missing ')' after '#pragma unused', ignoring"
-msgstr ""
-
-#: config/darwin-c.c:152
-msgid "junk at end of '#pragma unused'"
-msgstr ""
-
-#: config/nextstep.c:68
-msgid "optimization turned on"
-msgstr ""
-
-#: config/nextstep.c:74
-msgid "optimization turned off"
-msgstr ""
-
-#: config/nextstep.c:83
-msgid "optimization level restored"
-msgstr ""
-
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
-msgid "-msystem-v and -p are incompatible"
-msgstr ""
-
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
-msgid "-msystem-v and -mthreads are incompatible"
-msgstr ""
-
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
+msgid ""
+"The slope of the linear function throttling inlining after the recursive "
+"inlining limit has been reached is given by the negative reciprocal value of "
+"this parameter"
msgstr ""
-#: config/a29k/a29k.c:1028 config/m88k/m88k.c:2966
-#, c-format
-msgid "invalid %%Q value"
+#: params.def:110
+msgid ""
+"The number of instructions in a single functions still eligible to inlining "
+"after a lot recursive inlining"
msgstr ""
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5410 config/m88k/m88k.c:3062
-#, c-format
-msgid "invalid %%C value"
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
msgstr ""
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5255
-#: config/rs6000/rs6000.c:6459
-#, c-format
-msgid "invalid %%N value"
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5326
-#: config/rs6000/rs6000.c:6421
-#, c-format
-msgid "invalid %%M value"
+#: params.def:142
+msgid ""
+"The maximum number of instructions to consider to find accurate live "
+"register information"
msgstr ""
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5318
-#: config/rs6000/rs6000.c:6386
-#, c-format
-msgid "invalid %%m value"
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: config/a29k/a29k.c:1157 config/alpha/alpha.c:5279 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: config/a29k/a29k.c:1162 config/rs6000/rs6000.c:6467
-#, c-format
-msgid "invalid %%O value"
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: config/a29k/a29k.c:1168 config/alpha/alpha.c:5263
-#: config/rs6000/rs6000.c:6487
-#, c-format
-msgid "invalid %%P value"
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: config/a29k/a29k.c:1178
-#, c-format
-msgid "invalid %%V value"
+#: params.def:176
+msgid ""
+"Select fraction of the maximal count of repetitions of basic block in "
+"program given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
+#: params.def:181
+msgid ""
+"Select fraction of the maximal frequency of executions of basic block in "
+"function given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
+#: params.def:186
+msgid ""
+"The percentage of function, weighted by execution frequency, that must be "
+"covered by trace formation. Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
+#: params.def:191
+msgid ""
+"The percentage of function, weighted by execution frequency, that must be "
+"covered by trace formation. Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
msgstr ""
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
+#: params.def:200
+msgid ""
+"Stop reverse growth if the reverse probability of best edge is less than "
+"this threshold (in percents)"
msgstr ""
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
+#: params.def:205
+msgid ""
+"Stop forward growth if the probability of best edge is less than this "
+"threshold (in percents). Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
+#: params.def:210
+msgid ""
+"Stop forward growth if the probability of best edge is less than this "
+"threshold (in percents). Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
+#: params.def:230
+msgid ""
+"Minimum heap expansion to trigger garbage collection, as a percentage of the "
+"total size of the heap."
msgstr ""
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
msgstr ""
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
msgstr ""
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
msgstr ""
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
+#: config/darwin-c.c:107
+msgid "junk at end of '#pragma options'"
msgstr ""
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr ""
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
+#: config/darwin-c.c:151
+msgid "junk at end of '#pragma unused'"
msgstr ""
-#: config/a29k/a29k.h:118 config/i960/i960.h:283 config/mips/mips.h:406
-msgid "Use software floating point"
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
msgstr ""
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
msgstr ""
-#: config/alpha/alpha.c:272
+#: config/alpha/alpha.c:342
#, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr ""
-#: config/alpha/alpha.c:296
+#: config/alpha/alpha.c:366
msgid "-mieee not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:307
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:324
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr ""
-#: config/alpha/alpha.c:338
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr ""
-#: config/alpha/alpha.c:353
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:372 config/alpha/alpha.c:384
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr ""
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr ""
-#: config/alpha/alpha.c:391
+#: config/alpha/alpha.c:473
msgid "trap mode not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:398
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr ""
-#: config/alpha/alpha.c:414
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:419
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:448
+#: config/alpha/alpha.c:505
+msgid "128-bit long double not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.c:533
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr ""
-#: config/alpha/alpha.c:463
+#: config/alpha/alpha.c:548
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr ""
-#: config/alpha/alpha.c:5219 config/m88k/m88k.c:2954 config/romp/romp.c:746
-#: config/romp/romp.c:753
+#: config/alpha/alpha.c:5618 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:5229
+#: config/alpha/alpha.c:5639
#, c-format
msgid "invalid %%J value"
msgstr ""
-#: config/alpha/alpha.c:5239 config/ia64/ia64.c:3544 config/m88k/m88k.c:3099
+#: config/alpha/alpha.c:5655 config/ia64/ia64.c:3975 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr ""
-#: config/alpha/alpha.c:5249 config/rs6000/rs6000.c:6533
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7739
#, c-format
msgid "invalid %%R value"
msgstr ""
-#: config/alpha/alpha.c:5271 config/m88k/m88k.c:2960 config/romp/romp.c:732
-#: config/romp/romp.c:739
+#: config/alpha/alpha.c:5671 config/rs6000/rs6000.c:7665
+#, c-format
+msgid "invalid %%N value"
+msgstr ""
+
+#: config/alpha/alpha.c:5679 config/rs6000/rs6000.c:7693
+#, c-format
+msgid "invalid %%P value"
+msgstr ""
+
+#: config/alpha/alpha.c:5687 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr ""
-#: config/alpha/alpha.c:5361
+#: config/alpha/alpha.c:5695 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr ""
+
+#: config/alpha/alpha.c:5734 config/rs6000/rs6000.c:7647
+#, c-format
+msgid "invalid %%m value"
+msgstr ""
+
+#: config/alpha/alpha.c:5742 config/rs6000/rs6000.c:7655
+#, c-format
+msgid "invalid %%M value"
+msgstr ""
+
+#: config/alpha/alpha.c:5786
#, c-format
msgid "invalid %%U value"
msgstr ""
-#: config/alpha/alpha.c:5373 config/alpha/alpha.c:5387 config/romp/romp.c:698
-#: config/rs6000/rs6000.c:6541
+#: config/alpha/alpha.c:5798 config/alpha/alpha.c:5812 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7747
#, c-format
msgid "invalid %%s value"
msgstr ""
-#: config/alpha/alpha.c:5447 config/m88k/m88k.c:3083
-#: config/rs6000/rs6000.c:6248
+#: config/alpha/alpha.c:5835 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr ""
+
+#: config/alpha/alpha.c:5872 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7504
#, c-format
msgid "invalid %%E value"
msgstr ""
-#: config/alpha/alpha.c:5468 config/romp/romp.c:973
-#: config/rs6000/rs6000.c:6849
+#: config/alpha/alpha.c:5897 config/alpha/alpha.c:5947
+msgid "unknown relocation unspec"
+msgstr ""
+
+#: config/alpha/alpha.c:5906 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8054
#, c-format
msgid "invalid %%xn code"
msgstr ""
+#: config/alpha/alpha.c:6632 config/alpha/alpha.c:6635 config/s390/s390.c:6104
+#: config/s390/s390.c:6107
+msgid "bad builtin fcode"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:214 config/i386/i386.h:291 config/i386/i386.h:293
-#: config/i386/i386.h:295 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329
-#: config/s390/s390.h:56 config/sparc/sparc.h:529 config/sparc/sparc.h:534
+#. WARNING: Do not mark empty strings for translation, as calling
+#. gettext on an empty string does NOT return an empty
+#. string.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/alpha/alpha.h:286 config/i386/i386.h:296 config/i386/i386.h:298
+#: config/i386/i386.h:300 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:215 config/i386/i386.h:292 config/i386/i386.h:294
-#: config/rs6000/rs6000.h:331 config/sparc/sparc.h:531
-#: config/sparc/sparc.h:536
+#: config/alpha/alpha.h:287 config/i386/i386.h:297 config/i386/i386.h:299
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:216
+#: config/alpha/alpha.h:288
msgid "Use fp registers"
msgstr ""
-#: config/alpha/alpha.h:218
+#: config/alpha/alpha.h:290
msgid "Do not use fp registers"
msgstr ""
-#: config/alpha/alpha.h:219
+#: config/alpha/alpha.h:291
msgid "Do not assume GAS"
msgstr ""
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:292
msgid "Assume GAS"
msgstr ""
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:294
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr ""
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:296
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:298
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:300
msgid "Do not emit complex integer constants to read-only memory"
msgstr ""
-#: config/alpha/alpha.h:229
+#: config/alpha/alpha.h:301
msgid "Use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:302
msgid "Do not use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:231
+#: config/alpha/alpha.h:303
msgid "Emit code for the byte/word ISA extension"
msgstr ""
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:306
msgid "Emit code for the motion video ISA extension"
msgstr ""
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:309
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr ""
-#: config/alpha/alpha.h:239
+#: config/alpha/alpha.h:311
msgid "Emit code for the counting ISA extension"
msgstr ""
-#: config/alpha/alpha.h:242
+#: config/alpha/alpha.h:314
msgid "Emit code using explicit relocation directives"
msgstr ""
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:317
msgid "Emit 16-bit relocations to the small data areas"
msgstr ""
-#: config/alpha/alpha.h:247
+#: config/alpha/alpha.h:319
msgid "Emit 32-bit relocations to the small data areas"
msgstr ""
+#: config/alpha/alpha.h:321
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
+#: config/alpha/alpha.h:323
+msgid "Use 128-bit long double"
+msgstr ""
+
+#: config/alpha/alpha.h:325
+msgid "Use 64-bit long double"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:275
+#. For -mtls-size=
+#: config/alpha/alpha.h:354
msgid "Use features of and schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:277
+#: config/alpha/alpha.h:356
msgid "Schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:279
+#: config/alpha/alpha.h:358
msgid "Control the generated fp rounding mode"
msgstr ""
-#: config/alpha/alpha.h:281
+#: config/alpha/alpha.h:360
msgid "Control the IEEE trap mode"
msgstr ""
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:362
msgid "Control the precision given to fp exceptions"
msgstr ""
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:364
msgid "Tune expected memory latency"
msgstr ""
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:366 config/ia64/ia64.h:234
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr ""
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr ""
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2282
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
#, c-format
msgid "invalid operand to %%R code"
msgstr ""
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2305
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr ""
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2382
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
#, c-format
msgid "invalid operand to %%U code"
msgstr ""
-#: config/arc/arc.c:1776
+#: config/arc/arc.c:1774
#, c-format
msgid "invalid operand to %%V code"
msgstr ""
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2421 config/sparc/sparc.c:6159
+#. Undocumented flag.
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6628
msgid "invalid operand output code"
msgstr ""
-#: config/arm/arm.c:436
+#: config/arm/arm.c:461
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr ""
-#: config/arm/arm.c:446 config/rs6000/rs6000.c:444 config/sparc/sparc.c:381
+#: config/arm/arm.c:471 config/rs6000/rs6000.c:559 config/sparc/sparc.c:395
#, c-format
msgid "bad value (%s) for %s switch"
msgstr ""
-#: config/arm/arm.c:582
+#: config/arm/arm.c:607
msgid "target CPU does not support APCS-32"
msgstr ""
-#: config/arm/arm.c:587
+#: config/arm/arm.c:612
msgid "target CPU does not support APCS-26"
msgstr ""
-#: config/arm/arm.c:593
+#: config/arm/arm.c:618
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:599
+#: config/arm/arm.c:624
msgid "target CPU does not support THUMB instructions"
msgstr ""
-#: config/arm/arm.c:613
+#: config/arm/arm.c:638
msgid ""
"enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:616
+#: config/arm/arm.c:641
msgid ""
"enabling callee interworking support is only meaningful when compiling for "
"the Thumb"
msgstr ""
-#: config/arm/arm.c:619
+#: config/arm/arm.c:644
msgid ""
"enabling caller interworking support is only meaningful when compiling for "
"the Thumb"
msgstr ""
-#: config/arm/arm.c:625
+#: config/arm/arm.c:650
msgid "interworking forces APCS-32 to be used"
msgstr ""
-#: config/arm/arm.c:631
+#: config/arm/arm.c:656
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr ""
-#: config/arm/arm.c:639
+#: config/arm/arm.c:664
msgid "-fpic and -mapcs-reent are incompatible"
msgstr ""
-#: config/arm/arm.c:642
+#: config/arm/arm.c:667
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:650
+#: config/arm/arm.c:675
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:658
+#: config/arm/arm.c:683
msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:687
+#: config/arm/arm.c:713
#, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr ""
-#: config/arm/arm.c:711
+#: config/arm/arm.c:737
msgid "structure size boundary can only be set to 8 or 32"
msgstr ""
-#: config/arm/arm.c:719
+#: config/arm/arm.c:745
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:726
+#: config/arm/arm.c:752
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:1970 config/arm/arm.c:1993 config/avr/avr.c:4703
-#: config/c4x/c4x.c:4674 config/h8300/h8300.c:3381 config/i386/i386.c:1261
-#: config/i386/i386.c:1290 config/m68hc11/m68hc11.c:1220
-#: config/mcore/mcore.c:3506 config/ns32k/ns32k.c:1044
-#: config/rs6000/rs6000.c:10789 config/sh/sh.c:5592 config/sh/sh.c:5612
-#: config/sh/sh.c:5651 config/stormy16/stormy16.c:2012 config/v850/v850.c:2047
+#: config/arm/arm.c:2068 config/arm/arm.c:2091 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1422
+#: config/i386/i386.c:1451 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3458
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12543 config/sh/sh.c:5755
+#: config/sh/sh.c:5780 config/sh/sh.c:5819 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, c-format
msgid "`%s' attribute only applies to functions"
msgstr ""
-#: config/arm/arm.c:9290
+#: config/arm/arm.c:9469
msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:9970
+#: config/arm/arm.c:10148
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:10162
+#: config/arm/arm.c:10399
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3306
#, c-format
msgid "initialized variable `%s' is marked dllimport"
msgstr ""
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr ""
-#: config/arm/arm.h:422
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr ""
-#: config/arm/arm.h:425
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr ""
-#: config/arm/arm.h:429
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:431
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:435
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr ""
-#: config/arm/arm.h:438
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr ""
-#: config/arm/arm.h:441
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr ""
-#: config/arm/arm.h:448
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr ""
-#: config/arm/arm.h:450 config/i960/i960.h:281
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr ""
-#: config/arm/arm.h:452
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr ""
-#: config/arm/arm.h:454
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr ""
-#: config/arm/arm.h:456
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr ""
-#: config/arm/arm.h:458
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr ""
-#: config/arm/arm.h:461
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr ""
-#: config/arm/arm.h:464
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr ""
-#: config/arm/arm.h:467
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr ""
-#: config/arm/arm.h:470
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr ""
-#: config/arm/arm.h:473
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr ""
-#: config/arm/arm.h:477
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:480
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:483
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr ""
-#: config/arm/arm.h:487
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
msgstr ""
-#: config/arm/arm.h:497
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr ""
-#: config/arm/arm.h:499
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr ""
-#: config/arm/arm.h:503
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr ""
-#: config/arm/arm.h:505
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr ""
-#: config/arm/arm.h:507
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr ""
@@ -8824,99 +9010,92 @@ msgstr ""
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr ""
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr ""
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr ""
-
-#: config/avr/avr.c:221
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr ""
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
msgid "internal compiler error. Bad address:"
msgstr ""
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
msgid "internal compiler error. Unknown mode:"
msgstr ""
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
msgid "invalid insn:"
msgstr ""
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957
-#: config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236
-#: config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307
-#: config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
msgid "unknown move insn:"
msgstr ""
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
msgid "internal compiler error. Incorrect shift:"
msgstr ""
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
msgid "only initialized variables can be placed into program memory area"
msgstr ""
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr ""
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr ""
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr ""
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr ""
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr ""
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr ""
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr ""
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr ""
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr ""
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr ""
@@ -8928,141 +9107,135 @@ msgstr ""
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2553
+#: config/avr/avr.h:2450
msgid "trampolines not supported"
msgstr ""
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr ""
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr ""
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr ""
-#: config/c4x/c4x.c:1631
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr ""
-#: config/c4x/c4x.c:1771
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr ""
-#: config/c4x/c4x.c:1913
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1919
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1960
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr ""
-#: config/c4x/c4x.c:2056
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2099
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr ""
-#: config/c4x/c4x.c:2121
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr ""
-#: config/c4x/c4x.c:2169 config/c4x/c4x.c:2181 config/c4x/c4x.c:2196
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2452
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr ""
-#: config/c4x/c4x.c:3439 config/c4x/c4x.c:3459
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
msgid "mode not QImode"
msgstr ""
-#: config/c4x/c4x.c:3544
+#: config/c4x/c4x.c:3514
msgid "invalid indirect memory address"
msgstr ""
-#: config/c4x/c4x.c:3633
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr ""
-#: config/c4x/c4x.c:3974
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr ""
-#: config/c4x/c4x.c:4454
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr ""
-#: config/c4x/c4x.c:4457
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr ""
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4483
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr ""
-#: config/c4x/c4x.c:4489
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr ""
-#: config/c4x/c4x.c:4500
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr ""
-#: config/c4x/c4x.c:4700
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr ""
-#. Name of the c4x assembler.
-#. Name of the c4x linker.
-#. Define assembler options.
-#. Define linker options.
-#. Define C preprocessor options.
-#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
#. Use 24-bit MPYI for C3x.
@@ -9097,591 +9270,533 @@ msgstr ""
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr ""
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr ""
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr ""
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr ""
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr ""
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr ""
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr ""
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr ""
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr ""
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr ""
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr ""
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr ""
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr ""
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr ""
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr ""
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr ""
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr ""
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr ""
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr ""
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr ""
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
msgstr ""
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
msgstr ""
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr ""
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr ""
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr ""
-
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr ""
-
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
-msgstr ""
-
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
-msgstr ""
-
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
-msgstr ""
-
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr ""
-
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr ""
-
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr ""
-
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr ""
-
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr ""
-
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr ""
-
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr ""
-
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr ""
-
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr ""
-
-#: config/cris/cris.c:569
+#: config/cris/cris.c:619
msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/cris/cris.c:585
+#: config/cris/cris.c:635
msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/cris/cris.c:878
+#: config/cris/cris.c:928
#, c-format
msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/cris/cris.c:1193
+#: config/cris/cris.c:1243
msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/cris/cris.c:1203
+#: config/cris/cris.c:1253
msgid ""
"unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/cris/cris.c:1282
+#: config/cris/cris.c:1332
msgid "invalid operand for 'b' modifier"
msgstr ""
-#: config/cris/cris.c:1294
+#: config/cris/cris.c:1344
msgid "invalid operand for 'v' modifier"
msgstr ""
-#: config/cris/cris.c:1304
+#: config/cris/cris.c:1354
msgid "invalid operand for 'P' modifier"
msgstr ""
-#: config/cris/cris.c:1311
+#: config/cris/cris.c:1361
msgid "invalid operand for 'p' modifier"
msgstr ""
-#: config/cris/cris.c:1350
+#: config/cris/cris.c:1400
msgid "invalid operand for 'z' modifier"
msgstr ""
-#: config/cris/cris.c:1381 config/cris/cris.c:1411
+#: config/cris/cris.c:1448 config/cris/cris.c:1478
msgid "invalid operand for 'H' modifier"
msgstr ""
-#: config/cris/cris.c:1387
+#: config/cris/cris.c:1454
msgid "bad register"
msgstr ""
-#: config/cris/cris.c:1425
+#: config/cris/cris.c:1492
msgid "invalid operand for 'e' modifier"
msgstr ""
-#: config/cris/cris.c:1442
+#: config/cris/cris.c:1509
msgid "invalid operand for 'm' modifier"
msgstr ""
-#: config/cris/cris.c:1467
+#: config/cris/cris.c:1534
msgid "invalid operand for 'A' modifier"
msgstr ""
-#: config/cris/cris.c:1475
+#: config/cris/cris.c:1542
msgid "invalid operand for 'D' modifier"
msgstr ""
-#: config/cris/cris.c:1489
+#: config/cris/cris.c:1556
msgid "invalid operand for 'T' modifier"
msgstr ""
-#: config/cris/cris.c:1498
+#: config/cris/cris.c:1565
msgid "invalid operand modifier letter"
msgstr ""
-#: config/cris/cris.c:1506
+#: config/cris/cris.c:1573
#, c-format
msgid "internal error: bad register: %d"
msgstr ""
-#: config/cris/cris.c:1554
+#: config/cris/cris.c:1621
msgid "unexpected multiplicative operand"
msgstr ""
-#: config/cris/cris.c:1574
+#: config/cris/cris.c:1641
msgid "unexpected operand"
msgstr ""
-#: config/cris/cris.c:1609 config/cris/cris.c:1619
+#: config/cris/cris.c:1676 config/cris/cris.c:1686
msgid "unrecognized address"
msgstr ""
-#: config/cris/cris.c:1975
+#: config/cris/cris.c:2042
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2262
+#: config/cris/cris.c:2329
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2344 config/cris/cris.c:2402
+#: config/cris/cris.c:2411 config/cris/cris.c:2469
msgid "unrecognized supposed constant"
msgstr ""
-#: config/cris/cris.c:2443
+#: config/cris/cris.c:2510
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2462
+#: config/cris/cris.c:2529
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr ""
-#: config/cris/cris.c:2490
+#: config/cris/cris.c:2557
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2526
+#: config/cris/cris.c:2593
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2544
+#: config/cris/cris.c:2611
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr ""
-#: config/cris/cris.c:2560
+#: config/cris/cris.c:2627
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2790 config/cris/cris.c:2835
+#: config/cris/cris.c:2875 config/cris/cris.c:2920
msgid "unexpected side-effects in address"
msgstr ""
#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2932 config/cris/cris.c:2963
+#: config/cris/cris.c:3017 config/cris/cris.c:3048
msgid "unexpected PIC symbol"
msgstr ""
-#: config/cris/cris.c:2936
+#: config/cris/cris.c:3021
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2949 config/cris/cris.c:3032
+#: config/cris/cris.c:3034 config/cris/cris.c:3117
msgid "unexpected address expression"
msgstr ""
-#: config/cris/cris.c:2967
+#: config/cris/cris.c:3052
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2976
+#: config/cris/cris.c:3061
msgid "unexpected NOTE as addr_const:"
msgstr ""
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
+#: config/cris/cris.h:368
+msgid "Work around bug in multiplication instruction"
+msgstr ""
+
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:336
+#: config/cris/cris.h:374
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:341
+#: config/cris/cris.h:379
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:345
+#: config/cris/cris.h:383
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:348
+#: config/cris/cris.h:386
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:352
+#: config/cris/cris.h:390
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:355
+#: config/cris/cris.h:393
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:358
+#: config/cris/cris.h:396
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:361
+#: config/cris/cris.h:399
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:370
+#: config/cris/cris.h:408
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:383
+#: config/cris/cris.h:421
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:386
+#: config/cris/cris.h:424
msgid "Do not emit function prologue or epilogue"
msgstr ""
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:390
+#: config/cris/cris.h:428
msgid "Use the most feature-enabling options allowed by other options"
msgstr ""
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:396
+#: config/cris/cris.h:434
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:428
+#: config/cris/cris.h:466
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:430
+#: config/cris/cris.h:468
msgid "Tune alignment for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:432
+#: config/cris/cris.h:470
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1023
+#: config/cris/cris.h:1056
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/d30v/d30v.c:210
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr ""
-#: config/d30v/d30v.c:2677
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr ""
-#: config/d30v/d30v.c:2694 config/d30v/d30v.c:2755 config/d30v/d30v.c:2776
-#: config/d30v/d30v.c:2794
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr ""
-#: config/d30v/d30v.c:2862
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2871
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2878
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2932
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2943
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2950
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2968
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2977 config/d30v/d30v.c:2985
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr ""
-#: config/d30v/d30v.c:3014
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr ""
-#: config/d30v/d30v.c:3369
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr ""
-#: config/d30v/d30v.c:3413
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr ""
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr ""
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr ""
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr ""
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr ""
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr ""
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr ""
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr ""
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr ""
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr ""
@@ -9693,27 +9808,27 @@ msgstr ""
msgid "invalid addressing mode"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
msgid "bad register extension code"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:1957
+#: config/dsp16xx/dsp16xx.c:1921
msgid "invalid offset in ybase addressing"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:1960
+#: config/dsp16xx/dsp16xx.c:1924
msgid "invalid register in ybase addressing"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:2135
+#: config/dsp16xx/dsp16xx.c:2099
msgid "invalid shift operator in emit_1600_core_shift"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:2464
+#: config/dsp16xx/dsp16xx.c:2428
msgid "invalid mode for gen_tst_reg"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:2536
+#: config/dsp16xx/dsp16xx.c:2500
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr ""
@@ -9722,239 +9837,384 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
msgid "Generate code for near calls"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
msgid "Generate code for near jumps"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1203 config/dsp16xx/dsp16xx.h:1208
-#: config/dsp16xx/dsp16xx.h:1213 config/dsp16xx/dsp16xx.h:1793
-#: config/dsp16xx/dsp16xx.h:1798
+#. This is how to output an insn to push a register on the stack.
+#. It need not be very fast code since it is used only for profiling
+#. This is how to output an insn to pop a register from the stack.
+#. It need not be very fast code since it is used only for profiling
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
msgid "profiling not implemented yet"
msgstr ""
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1224 config/dsp16xx/dsp16xx.h:1236
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
msgid "trampolines not yet implemented"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr ""
-
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr ""
-
-#: config/fr30/fr30.c:456
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:480
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr ""
-#: config/fr30/fr30.c:503
+#: config/fr30/fr30.c:500
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
-#: config/fr30/fr30.c:524
+#: config/fr30/fr30.c:521
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:532
+#: config/fr30/fr30.c:529
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr ""
-#: config/fr30/fr30.c:549
+#: config/fr30/fr30.c:546
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr ""
-#: config/fr30/fr30.c:556
+#: config/fr30/fr30.c:553
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:572
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621
-#: config/fr30/fr30.c:634
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
-#: config/fr30/fr30.h:57
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
msgstr ""
-#: config/h8300/h8300.c:143
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr ""
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr ""
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr ""
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr ""
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr ""
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+#, c-format
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
msgid "-ms2600 is used without -ms"
msgstr ""
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr ""
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr ""
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr ""
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr ""
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr ""
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr ""
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
msgid "malformed #pragma map, ignored"
msgstr ""
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr ""
@@ -9962,166 +10222,227 @@ msgstr ""
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr ""
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr ""
-#: config/i386/i386.c:926
+#: config/i386/i386.c:1065
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/i386.c:936 config/sparc/sparc.c:344
+#: config/i386/i386.c:1075 config/sparc/sparc.c:358
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/i386.c:951
+#: config/i386/i386.c:1090
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr ""
-#: config/i386/i386.c:954
+#: config/i386/i386.c:1093
#, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr ""
-#: config/i386/i386.c:957
+#: config/i386/i386.c:1096
msgid "code model `large' not supported yet"
msgstr ""
-#: config/i386/i386.c:959
+#: config/i386/i386.c:1098
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:989 config/mips/mips.c:4969
+#: config/i386/i386.c:1131
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/i386.c:1000 config/mips/mips.c:4925
+#: config/i386/i386.c:1142
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/i386/i386.c:1019
+#: config/i386/i386.c:1159
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1032
+#: config/i386/i386.c:1172
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/i386.c:1037 config/i386/i386.c:1050 config/i386/i386.c:1063
+#: config/i386/i386.c:1177 config/i386/i386.c:1190 config/i386/i386.c:1203
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/i386.c:1045
+#: config/i386/i386.c:1185
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/i386.c:1058
+#: config/i386/i386.c:1198
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/i386.c:1096
+#: config/i386/i386.c:1236
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/i386.c:1108
+#: config/i386/i386.c:1248
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr ""
-#: config/i386/i386.c:1130
+#: config/i386/i386.c:1260
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr ""
+
+#: config/i386/i386.c:1289
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1132
+#: config/i386/i386.c:1291
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1148 config/i386/i386.c:1159
+#: config/i386/i386.c:1307 config/i386/i386.c:1318
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr ""
-#: config/i386/i386.c:1164
+#: config/i386/i386.c:1323
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr ""
-#: config/i386/i386.c:1171
+#: config/i386/i386.c:1330
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr ""
-#: config/i386/i386.c:1301
+#: config/i386/i386.c:1462
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:1307
+#: config/i386/i386.c:1468
#, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr ""
-#: config/i386/i386.c:5385
+#: config/i386/i386.c:2534
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6424
msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:5622
+#: config/i386/i386.c:6686
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:5637
+#: config/i386/i386.c:6701
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:5910
+#: config/i386/i386.c:7016
msgid ""
"operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:5956
+#: config/i386/i386.c:7062
#, c-format
msgid "invalid operand code `%c'"
msgstr ""
-#: config/i386/i386.c:6003
+#: config/i386/i386.c:7109
msgid "invalid constraints for operand"
msgstr ""
-#: config/i386/i386.c:9978
+#: config/i386/i386.c:11371
msgid "unknown insn mode"
msgstr ""
#. @@@ better error message
-#: config/i386/i386.c:11841 config/i386/i386.c:11874
+#: config/i386/i386.c:13526 config/i386/i386.c:13562
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/i386/i386.c:12032 config/i386/i386.c:12060
+#: config/i386/i386.c:13723 config/i386/i386.c:13757
msgid "mask must be an immediate"
msgstr ""
-#: config/i386/winnt.c:94
+#: config/i386/i386.c:13789
+msgid "shift must be an immediate"
+msgstr ""
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr ""
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
#, c-format
msgid "`%s' attribute only applies to variables"
msgstr ""
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:242
+#, c-format
+msgid ""
+"function '%s' is defined after prior declaration as dllimport: attribute "
+"ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
#, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr ""
+#: config/i386/winnt.c:373
+#, c-format
+msgid ""
+"failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr ""
@@ -10158,184 +10479,168 @@ msgstr ""
msgid "Use Mingw-specific thread support"
msgstr ""
-#: config/i386/cygwin.h:236
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr ""
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr ""
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr ""
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr ""
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr ""
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr ""
-
-#: config/i386/dgux.h:249
-msgid "argument is a structure"
-msgstr ""
-
-#: config/i386/djgpp.h:202
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr ""
-#: config/i386/i386.h:45 config/mips/mips.h:184
-msgid "half-pic init called on systems that don't support it"
-msgstr ""
-
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:303
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:310
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.h:305 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:312 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:307
+#: config/i386/i386.h:314
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:309
+#: config/i386/i386.h:316
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:311
+#: config/i386/i386.h:318
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:313
+#: config/i386/i386.h:320
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:315 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:322 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:317
+#: config/i386/i386.h:324 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:319
+#: config/i386/i386.h:326
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:321
+#: config/i386/i386.h:328
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:323
+#: config/i386/i386.h:330
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:325
+#: config/i386/i386.h:332
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:327
+#: config/i386/i386.h:334
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:330
+#: config/i386/i386.h:337
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:335
+#: config/i386/i386.h:342
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:337
+#: config/i386/i386.h:344
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:339
+#: config/i386/i386.h:346
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:341
+#: config/i386/i386.h:348
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:343 config/i386/i386.h:348
+#: config/i386/i386.h:350 config/i386/i386.h:354
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:345 config/i386/i386.h:350
+#: config/i386/i386.h:352 config/i386/i386.h:356
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:352
+#: config/i386/i386.h:358
msgid "Support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:354
+#: config/i386/i386.h:360
msgid "Do not support MMX built-in functions"
msgstr ""
-#: config/i386/i386.h:357
+#: config/i386/i386.h:362
msgid "Support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:360
+#: config/i386/i386.h:364
msgid "Do not support 3DNow! built-in functions"
msgstr ""
-#: config/i386/i386.h:362
+#: config/i386/i386.h:366
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:365
+#: config/i386/i386.h:368
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:367
+#: config/i386/i386.h:370
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:372
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:374
+msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:376
+msgid ""
+"Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+msgstr ""
+
+#: config/i386/i386.h:378
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:374
+#: config/i386/i386.h:380
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:376
+#: config/i386/i386.h:382
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:378
+#: config/i386/i386.h:384
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:380
+#: config/i386/i386.h:386
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:382
+#: config/i386/i386.h:388
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
@@ -10348,19 +10653,19 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:428 config/rs6000/rs6000.h:428 config/sparc/sparc.h:641
+#: config/i386/i386.h:417 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:430
+#: config/i386/i386.h:419
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:432
+#: config/i386/i386.h:421
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:434
+#: config/i386/i386.h:423
msgid "Number of registers used to pass integer arguments"
msgstr ""
@@ -10374,71 +10679,41 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:436 config/m68k/m68k.h:263
+#: config/i386/i386.h:425 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:438 config/m68k/m68k.h:265
+#: config/i386/i386.h:427 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:440 config/m68k/m68k.h:267
+#: config/i386/i386.h:429 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:443
+#: config/i386/i386.h:432
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:445
+#: config/i386/i386.h:434
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:447
+#: config/i386/i386.h:436
msgid "Use given x86-64 code model"
msgstr ""
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:453
+#: config/i386/i386.h:442
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr ""
-
-#: config/i386/osfrose.h:57
-msgid "Emit half-PIC code"
-msgstr ""
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:64
-msgid "Emit ELF object code"
+#: config/i386/i386.h:444
+msgid "Use given thread-local storage dialect"
msgstr ""
-#: config/i386/osfrose.h:66
-msgid "Emit ROSE object code"
-msgstr ""
-
-#: config/i386/osfrose.h:68
-msgid "Symbols have a leading underscore"
-msgstr ""
-
-#: config/i386/osfrose.h:71
-msgid "Align to >word boundaries"
-msgstr ""
-
-#: config/i386/osfrose.h:74
-msgid "Use mcount for profiling"
-msgstr ""
-
-#: config/i386/osfrose.h:76
-msgid "Use mcount_ptr for profiling"
-msgstr ""
-
-#: config/i386/sco5.h:763
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr ""
@@ -10470,33 +10745,31 @@ msgstr ""
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
+#: config/i960/i960-c.c:66
+msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr ""
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
+#: config/i960/i960-c.c:71
+msgid "malformed #pragma align - ignored"
msgstr ""
-#: config/i960/i960-c.c:67
-msgid "sorry, not implemented: #pragma align NAME=SIZE"
+#: config/i960/i960-c.c:109
+msgid "sorry, not implemented: #pragma noalign NAME"
msgstr ""
-#: config/i960/i960-c.c:72
-msgid "malformed #pragma align - ignored"
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
msgstr ""
-#: config/i960/i960-c.c:110
-msgid "sorry, not implemented: #pragma noalign NAME"
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
msgstr ""
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8446
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr ""
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9977
msgid "stack limit expression is not supported"
msgstr ""
@@ -10554,6 +10827,10 @@ msgstr ""
msgid "Generate CF code"
msgstr ""
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr ""
+
#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr ""
@@ -10615,8 +10892,8 @@ msgstr ""
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:88
-#: config/sparc/linux64.h:145 config/sparc/netbsd-elf.h:240
+#: config/i960/i960.h:323 config/sparc/freebsd.h:88 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr ""
@@ -10628,187 +10905,192 @@ msgstr ""
msgid "Do not enable linker relaxation"
msgstr ""
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:342 config/i960/i960.h:352
-msgid "conflicting architectures defined - using C series"
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
msgstr ""
-#: config/i960/i960.h:347
-msgid "conflicting architectures defined - using K series"
+#: config/ia64/ia64.c:4020
+msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/i960/i960.h:362
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+#: config/ia64/ia64.c:4297
+msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:373
-msgid "the -mlong-double-64 option does not work yet"
+#: config/ia64/ia64.c:4324
+#, c-format
+msgid "%s-%s is an empty range"
msgstr ""
-#: config/ia64/ia64.c:3589
-msgid "ia64_print_operand: unknown code"
+#: config/ia64/ia64.c:4355
+msgid "cannot optimize floating point division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:3863
-msgid "value of -mfixed-range must have form REG1-REG2"
+#: config/ia64/ia64.c:4361
+msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
-#: config/ia64/ia64.c:3890
+#: config/ia64/ia64.c:4373
#, c-format
-msgid "%s-%s is an empty range"
-msgstr ""
-
-#: config/ia64/ia64.c:3955
-msgid "cannot optimize division for both latency and throughput"
+msgid "bad value (%s) for -mtls-size= switch"
msgstr ""
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:119
+#: config/ia64/ia64.h:163
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:121 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:165 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:123
+#: config/ia64/ia64.h:167
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:125
+#: config/ia64/ia64.h:169
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:127
+#: config/ia64/ia64.h:171
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:129
+#: config/ia64/ia64.h:173
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:131
+#: config/ia64/ia64.h:175
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:133
+#: config/ia64/ia64.h:177
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:135
+#: config/ia64/ia64.h:179
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:137
+#: config/ia64/ia64.h:181
msgid "Emit code for Itanium (TM) processor B step"
msgstr ""
-#: config/ia64/ia64.h:139
+#: config/ia64/ia64.h:183
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:141
+#: config/ia64/ia64.h:185
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:143
+#: config/ia64/ia64.h:187
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:145
+#: config/ia64/ia64.h:189
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:147
+#: config/ia64/ia64.h:191
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:149
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:193
+msgid "Generate inline floating point division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:195
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:197
+msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:151
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:199
+msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:153
+#: config/ia64/ia64.h:201
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:155
+#: config/ia64/ia64.h:203
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:183
+#: config/ia64/ia64.h:232
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr ""
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, c-format
msgid "invalid argument of `%s' attribute"
msgstr ""
-#: config/m32r/m32r.c:412
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr ""
-#: config/m32r/m32r.c:2252
+#: config/m32r/m32r.c:2256
#, c-format
msgid "invalid operand to %%s code"
msgstr ""
-#: config/m32r/m32r.c:2259
+#: config/m32r/m32r.c:2263
#, c-format
msgid "invalid operand to %%p code"
msgstr ""
-#: config/m32r/m32r.c:2315
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2367
+#: config/m32r/m32r.c:2370
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr ""
-#: config/m32r/m32r.c:2390
+#: config/m32r/m32r.c:2393
#, c-format
msgid "invalid operand to %%N code"
msgstr ""
-#: config/m32r/m32r.c:2435
+#: config/m32r/m32r.c:2438
msgid "pre-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2442
+#: config/m32r/m32r.c:2445
msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2449
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2527 config/m32r/m32r.c:2543
-#: config/rs6000/rs6000.c:11098
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12807
msgid "bad address"
msgstr ""
-#: config/m32r/m32r.c:2548
+#: config/m32r/m32r.c:2551
msgid "lo_sum not of register"
msgstr ""
@@ -10837,46 +11119,54 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+msgid "`trap' attribute is already used"
+msgstr ""
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3170 config/m68hc11/m68hc11.c:3544
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3390 config/m68hc11/m68hc11.c:3474
-#: config/m68hc11/m68hc11.c:3747
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
msgid "invalid register in the move instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3424
+#: config/m68hc11/m68hc11.c:3613
msgid "invalid operand in the instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3721
+#: config/m68hc11/m68hc11.c:3920
msgid "invalid register in the instruction"
msgstr ""
-#: config/m68hc11/m68hc11.c:3754
+#: config/m68hc11/m68hc11.c:3953
msgid "operand 1 must be a hard register"
msgstr ""
-#: config/m68hc11/m68hc11.c:3771
+#: config/m68hc11/m68hc11.c:3970
msgid "invalid rotate insn"
msgstr ""
-#: config/m68hc11/m68hc11.c:4196
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4521 config/m68hc11/m68hc11.c:4823
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:4886
+#: config/m68hc11/m68hc11.c:5094
msgid "invalid Z register replacement for insn"
msgstr ""
@@ -10884,34 +11174,58 @@ msgstr ""
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:155
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:157
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:159
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:161
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:163
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
msgid "Do not use direct addressing mode for soft registers"
msgstr ""
-#: config/m68hc11/m68hc11.h:165 config/m68hc11/m68hc11.h:169
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr ""
-#: config/m68hc11/m68hc11.h:167 config/m68hc11/m68hc11.h:171
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr ""
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10921,29 +11235,33 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:185
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr ""
-#: config/m68hc11/m68hc11.h:187
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr ""
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr ""
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -11065,91 +11383,84 @@ msgstr ""
msgid "Use unaligned memory references"
msgstr ""
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr ""
-
-#: config/m88k/m88k.c:899
+#: config/m88k/m88k.c:903
#, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr ""
-#: config/m88k/m88k.c:2299
+#: config/m88k/m88k.c:2302
msgid "internal gcc error: Can't express symbolic location"
msgstr ""
-#: config/m88k/m88k.c:2581
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr ""
-#: config/m88k/m88k.c:2881
+#: config/m88k/m88k.c:2816
#, c-format
msgid "%%R not followed by %%B/C/D/E"
msgstr ""
-#: config/m88k/m88k.c:2949
+#: config/m88k/m88k.c:2884
#, c-format
msgid "invalid %%x/X value"
msgstr ""
-#: config/m88k/m88k.c:2972 config/rs6000/rs6000.c:6514
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr ""
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7720
#, c-format
msgid "invalid %%q value"
msgstr ""
-#: config/m88k/m88k.c:2978
+#: config/m88k/m88k.c:2913
#, c-format
msgid "invalid %%o value"
msgstr ""
-#: config/m88k/m88k.c:2985 config/rs6000/rs6000.c:6477
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7683
#, c-format
msgid "invalid %%p value"
msgstr ""
-#: config/m88k/m88k.c:2998 config/m88k/m88k.c:3003
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
#, c-format
msgid "invalid %%s/S value"
msgstr ""
-#: config/m88k/m88k.c:3014
+#: config/m88k/m88k.c:2949
#, c-format
msgid "invalid %%P operand"
msgstr ""
-#: config/m88k/m88k.c:3045 config/romp/romp.c:682
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
msgid "invalid %%B value"
msgstr ""
-#: config/m88k/m88k.c:3075
+#: config/m88k/m88k.c:3010
#, c-format
msgid "invalid %%D value"
msgstr ""
-#: config/m88k/m88k.c:3088
+#: config/m88k/m88k.c:3023
#, c-format
msgid "`%%d' operand isn't a register"
msgstr ""
-#: config/m88k/m88k.c:3106
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr ""
-#: config/m88k/m88k.c:3120
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr ""
-#: config/m88k/m88k.c:3139
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr ""
@@ -11173,7 +11484,7 @@ msgstr ""
msgid "-mshort-data-%s and PIC are incompatible"
msgstr ""
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3026
#, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr ""
@@ -11199,7 +11510,7 @@ msgid "Do not use the divide instruction"
msgstr ""
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr ""
#: config/mcore/mcore.h:142
@@ -11230,219 +11541,235 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4795
-msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4821
+#: config/mips/mips.c:5158
#, c-format
-msgid "-mips%d not supported"
+msgid ""
+"-mips%d conflicts with the other architecture options, which specify a MIPS%"
+"d processor"
msgstr ""
-#: config/mips/mips.c:4828
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr ""
-#: config/mips/mips.c:4849
+#: config/mips/mips.c:5180
#, c-format
-msgid "bad value (%s) for -mabi= switch"
+msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4887
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4904
-msgid "this target does not support the -mabi switch"
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
msgstr ""
-#: config/mips/mips.c:5014
-#, c-format
-msgid "bad value (%s) for -mtune= switch"
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
msgstr ""
-#: config/mips/mips.c:5024
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
+msgid "unsupported combination: %s"
msgstr ""
-#: config/mips/mips.c:5030
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
+#: config/mips/mips.c:5288
+msgid ""
+"generation of Branch Likely instructions enabled, but not supported by "
+"architecture"
msgstr ""
-#: config/mips/mips.c:5051
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:5067
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr ""
-#: config/mips/mips.c:5070
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr ""
-#: config/mips/mips.c:5121
+#: config/mips/mips.c:5369
#, c-format
msgid "invalid option `entry%s'"
msgstr ""
-#: config/mips/mips.c:5124
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr ""
-#: config/mips/mips.c:5500
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5514
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5527
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5540
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5554
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:5563 config/xtensa/xtensa.c:1913
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1961
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/mips/mips.c:5696
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr ""
-#: config/mips/mips.c:5739 config/xtensa/xtensa.c:2012
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2055
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/mips/mips.c:5963
+#: config/mips/mips.c:6242
msgid ""
"MIPS ECOFF format does not allow changing filenames within functions with "
"#line"
msgstr ""
-#: config/mips/mips.c:6277
+#: config/mips/mips.c:6552
msgid "can't rewind temp file"
msgstr ""
-#: config/mips/mips.c:6281
+#: config/mips/mips.c:6556
msgid "can't write to output file"
msgstr ""
-#: config/mips/mips.c:6284
+#: config/mips/mips.c:6559
msgid "can't read from temp file"
msgstr ""
-#: config/mips/mips.c:6287
+#: config/mips/mips.c:6562
msgid "can't close temp file"
msgstr ""
-#: config/mips/mips.c:6705
+#: config/mips/mips.c:7061
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:6865
+#: config/mips/mips.c:7170
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:8906
+#: config/mips/mips.c:9393
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr ""
+#: config/mips/mips.c:10525
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10547
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr ""
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:366 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr ""
-#: config/mips/mips.h:368
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:370
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:372
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:374
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:376
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:378
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr ""
-#: config/mips/mips.h:380
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr ""
-#: config/mips/mips.h:382
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr ""
-#: config/mips/mips.h:384
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr ""
-#: config/mips/mips.h:386 config/mips/mips.h:388
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:390 config/mips/mips.h:392
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:394
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr ""
-#: config/mips/mips.h:396
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:398
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:400
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:402
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:404
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr ""
@@ -11452,355 +11779,327 @@ msgstr ""
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:408 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:410
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:412
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:414
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:416
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:418
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:420
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:422
-msgid "Use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:424
-msgid "Don't use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:426
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:428
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:430
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr ""
-#: config/mips/mips.h:432
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr ""
-#: config/mips/mips.h:434
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:436
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:438
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/mips/mips.h:440
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr ""
#. Macro to define tables used to set the flags.
-#: config/mips/mips.h:442 config/xtensa/xtensa.h:110
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:444 config/xtensa/xtensa.h:112
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:446
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:448
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:450
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:452
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:454 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:458
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:460
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:462
-msgid "Optimize for 3900"
-msgstr ""
-
-#: config/mips/mips.h:464
-msgid "Optimize for 4650"
-msgstr ""
-
-#: config/mips/mips.h:466
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:468
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:470
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:472
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:588 config/mips/mips.h:590
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/mips/mips.h:592
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/mips/mips.h:594
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr ""
-#: config/mips/mips.h:596
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr ""
-#: config/mips/mips.h:598
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr ""
-#: config/mips/mips.h:602
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/mips/mips.h:604
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2923
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr ""
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, c-format
msgid "-f%s not supported: ignored"
msgstr ""
-#: config/mmix/mmix.c:596
+#: config/mmix/mmix.c:644
#, c-format
msgid ""
"too large function value type, needs %d registers, have only %d registers "
"for this"
msgstr ""
-#: config/mmix/mmix.c:677
-msgid "stack frame too big"
-msgstr ""
-
-#: config/mmix/mmix.c:705
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1044
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1203
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mmix/mmix.c:1240
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr ""
-
-#: config/mmix/mmix.c:1246
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1608
-msgid "oops, not debugged; fixing up value:"
-msgstr ""
-
-#: config/mmix/mmix.c:2185 config/mmix/mmix.c:2319
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:2193 config/mmix/mmix.c:2217 config/mmix/mmix.c:2336
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:2264
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:2287
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:2297
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2329
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:2380
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:2445
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:2941 config/mmix/mmix.c:3010
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:3129
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:3136
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3140
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3211
+#: config/mmix/mmix.c:3088
msgid "MMIX Internal: This is not a constant:"
msgstr ""
-#. For these target macros, there is no generic documentation here. You
-#. should read `Using and Porting GCC' for that. Only comments specific
-#. to the MMIX target are here.
-#.
-#. There are however references to the specific texinfo node (comments
-#. with "Node:"), so there should be little or nothing amiss. Probably
-#. the opposite, since we don't have to care about old littering and
-#. soon outdated generic comments.
-#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
-#. User symbols are in the same name-space as built-in symbols, but we
-#. don't need the built-in symbols, so remove those and instead apply
-#. stricter operand checking. Don't warn when expanding insns.
-#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
-#. Provide default program start 0x100 unless -mno-set-program-start.
-#. Don't do this if linking relocatably, with -r. For a final link,
-#. produce mmo, unless ELF is requested or when linking relocatably.
-#. Put unused option values here.
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr ""
-#: config/mmix/mmix.h:139
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr ""
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr ""
-#: config/mmix/mmix.h:191
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:193
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:195
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr ""
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr ""
-#: config/mmix/mmix.h:201
+#: config/mmix/mmix.h:211
msgid ""
"Generate divide results with reminder having the same sign as the divisor "
"(not the dividend)"
msgstr ""
-#: config/mmix/mmix.h:205
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr ""
-#: config/mmix/mmix.h:207
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr ""
-#: config/mmix/mmix.h:209
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr ""
-#: config/mmix/mmix.h:211
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr ""
-#: config/mmix/mmix.h:213
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr ""
-#: config/mmix/mmix.h:215
+#: config/mmix/mmix.h:225
msgid "Use addresses that allocate global registers"
msgstr ""
-#: config/mmix/mmix.h:217
+#: config/mmix/mmix.h:227
msgid "Do not use addresses that allocate global registers"
msgstr ""
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr ""
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr ""
@@ -11817,152 +12116,282 @@ msgstr ""
msgid "Enable linker relaxations"
msgstr ""
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:57
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr ""
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr ""
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr ""
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr ""
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr ""
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr ""
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr ""
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
msgstr ""
-#: config/ns32k/ns32k.h:117
-msgid "Use bit-field instructions"
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
msgstr ""
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr ""
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr ""
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr ""
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr ""
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:182
+#: config/pa/pa.c:261
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:207
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:212
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:217
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:222
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:223
+#: config/pa/pa.c:310
msgid "-g option disabled"
msgstr ""
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr ""
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr ""
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr ""
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr ""
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr ""
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr ""
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr ""
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr ""
+
+#: config/pa/pa.h:312
+msgid ""
+"Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. "
+"2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr ""
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr ""
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr ""
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr ""
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr ""
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr ""
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr ""
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr ""
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr ""
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr ""
@@ -11970,74 +12399,50 @@ msgstr ""
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr ""
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr ""
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr ""
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr ""
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr ""
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr ""
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr ""
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr ""
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6551
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7757
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr ""
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr ""
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr ""
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815
-#: config/rs6000/rs6000.c:6330
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7586
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr ""
@@ -12059,139 +12464,198 @@ msgstr ""
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr ""
-#: config/rs6000/rs6000.c:475
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000.c:593
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:482
+#: config/rs6000/rs6000.c:600
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:491 config/xtensa/xtensa.c:1846
+#: config/rs6000/rs6000.c:624
#, c-format
-msgid "-f%s ignored (all code is position independent)"
+msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:499
-msgid "-ffunction-sections disabled on AIX when debugging"
+#: config/rs6000/rs6000.c:636
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
msgstr ""
-#: config/rs6000/rs6000.c:505
-msgid "-fdata-sections not supported on AIX"
+#: config/rs6000/rs6000.c:647
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:520
+#: config/rs6000/rs6000.c:739
#, c-format
-msgid "unknown -mdebug-%s switch"
+msgid "unknown -misel= option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:530
+#: config/rs6000/rs6000.c:754
#, c-format
-msgid "Unknown switch -mlong-double-%s"
+msgid "unknown -mvrsave= option specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:597
+#: config/rs6000/rs6000.c:773
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr ""
-#: config/rs6000/rs6000.c:3636
+#: config/rs6000/rs6000.c:4208
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4315 config/rs6000/rs6000.c:4905
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4358
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr ""
-#: config/rs6000/rs6000.c:3690
+#: config/rs6000/rs6000.c:4412
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:4046
+#: config/rs6000/rs6000.c:4491
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4668
#, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4784
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:5015
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr ""
+
+#: config/rs6000/rs6000.c:5088
+msgid "argument 1 of __builtin_spe_predicate is out of range"
msgstr ""
-#: config/rs6000/rs6000.c:6257
+#: config/rs6000/rs6000.c:7513
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:6266
+#: config/rs6000/rs6000.c:7522
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:6275
+#: config/rs6000/rs6000.c:7531
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:6310
+#: config/rs6000/rs6000.c:7566
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:6320
+#: config/rs6000/rs6000.c:7576
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:6350
+#: config/rs6000/rs6000.c:7606
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:6577
+#: config/rs6000/rs6000.c:7673
#, c-format
-msgid "%%S computed all 1's mask"
-msgstr ""
-
-#: config/rs6000/rs6000.c:6604
-#, c-format
-msgid "%%S computed all 0's mask"
+msgid "invalid %%O value"
msgstr ""
-#: config/rs6000/rs6000.c:6614
+#: config/rs6000/rs6000.c:7795
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:6624
+#: config/rs6000/rs6000.c:7805
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:6633
+#: config/rs6000/rs6000.c:7814
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/aix.h:137 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12247
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
msgid "Always pass floating-point arguments in memory"
msgstr ""
-#: config/rs6000/aix.h:139 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
msgid "Don't always pass floating-point arguments in memory"
msgstr ""
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr ""
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
msgid "-maix64 and POWER architecture are incompatible"
msgstr ""
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr ""
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid ""
"-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr ""
@@ -12203,146 +12667,162 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
msgid "Use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr ""
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:639
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr ""
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr ""
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr ""
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12355,99 +12835,103 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1772
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr ""
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr ""
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
msgid "Align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr ""
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr ""
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128
-#: config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130
-#: config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132
-#: config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143
-#: config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr ""
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr ""
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
msgid "Use alternate register names"
msgstr ""
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr ""
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr ""
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12476,184 +12960,194 @@ msgstr ""
msgid "-f%s and -msdata=%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:263
+#: config/rs6000/sysv4.h:264
#, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:270
+#: config/rs6000/sysv4.h:273
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:276
+#: config/rs6000/sysv4.h:279
#, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:283
+#: config/rs6000/sysv4.h:286
#, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr ""
-#: config/rs6000/sysv4.h:290
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr ""
-#: config/s390/s390.c:1958
+#: config/s390/s390.c:3095
msgid "invalid UNSPEC as operand (1)"
msgstr ""
-#: config/s390/s390.c:1988
+#: config/s390/s390.c:3155
msgid "invalid UNSPEC as operand (2)"
msgstr ""
-#: config/s390/s390.c:1994
+#: config/s390/s390.c:3161
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr ""
-#: config/s390/s390.c:2010
+#: config/s390/s390.c:3179
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:2158
+#: config/s390/s390.c:3340
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:2751
+#: config/s390/s390.c:4993
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.h:58
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr ""
-#: config/s390/s390.h:59
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr ""
-#: config/s390/s390.h:60
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr ""
-#: config/s390/s390.h:61
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr ""
-#: config/s390/s390.h:62
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr ""
-#: config/s390/s390.h:63
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr ""
-#: config/s390/s390.h:64
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr ""
-#: config/s390/s390.h:65
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr ""
-#: config/s390/s390.h:66
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr ""
-#: config/s390/s390.h:67
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr ""
-#: config/sh/sh.c:5069
+#: config/sh/sh.c:5211
msgid "__builtin_saveregs not supported by this subtarget"
msgstr ""
+#: config/sh/sh.c:5761
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:5619 config/sh/sh.c:5658
+#. The trap_exit attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5787 config/sh/sh.c:5826
#, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr ""
#. The argument must be a constant string.
-#: config/sh/sh.c:5626
+#: config/sh/sh.c:5794
#, c-format
msgid "`%s' attribute argument not a string constant"
msgstr ""
#. The argument must be a constant integer.
-#: config/sh/sh.c:5665
+#: config/sh/sh.c:5833
#, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr ""
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
-#: config/sh/sh.h:367
+#: config/sh/sh.h:437
msgid "Profiling is not supported on this target."
msgstr ""
-#: config/sparc/sparc.c:317
+#: config/sparc/sparc.c:331
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:324
+#: config/sparc/sparc.c:338
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:349
+#: config/sparc/sparc.c:363
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:5985 config/sparc/sparc.c:5991
+#: config/sparc/sparc.c:6436 config/sparc/sparc.c:6442
#, c-format
msgid "invalid %%Y operand"
msgstr ""
-#: config/sparc/sparc.c:6061
+#: config/sparc/sparc.c:6512
#, c-format
msgid "invalid %%A operand"
msgstr ""
-#: config/sparc/sparc.c:6071
+#: config/sparc/sparc.c:6522
#, c-format
msgid "invalid %%B operand"
msgstr ""
-#: config/sparc/sparc.c:6110
+#: config/sparc/sparc.c:6561
#, c-format
msgid "invalid %%c operand"
msgstr ""
-#: config/sparc/sparc.c:6111
+#: config/sparc/sparc.c:6562
#, c-format
msgid "invalid %%C operand"
msgstr ""
-#: config/sparc/sparc.c:6132
+#: config/sparc/sparc.c:6583
#, c-format
msgid "invalid %%d operand"
msgstr ""
-#: config/sparc/sparc.c:6133
+#: config/sparc/sparc.c:6584
#, c-format
msgid "invalid %%D operand"
msgstr ""
-#: config/sparc/sparc.c:6149
+#: config/sparc/sparc.c:6600
#, c-format
msgid "invalid %%f operand"
msgstr ""
-#: config/sparc/sparc.c:6199
+#: config/sparc/sparc.c:6614
+#, c-format
+msgid "invalid %%s operand"
+msgstr ""
+
+#: config/sparc/sparc.c:6668
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:6202
+#: config/sparc/sparc.c:6671
msgid "floating point constant not a valid immediate operand"
msgstr ""
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:89
-#: config/sparc/linux64.h:146 config/sparc/netbsd-elf.h:241
+#: config/sparc/freebsd.h:89 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr ""
@@ -12665,334 +13159,379 @@ msgstr ""
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr ""
-#: config/sparc/sparc.h:539
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:541
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:543
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:545
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:547
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:549
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:551
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:553
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:555
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:557
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:559
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:561
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:563
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:565
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr ""
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr ""
-#: config/sparc/sparc.h:570
-msgid "Optimize for SparcLite processors"
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
msgstr ""
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr ""
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr ""
-#: config/sparc/sparc.h:576
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
msgstr ""
-#: config/sparc/sparc.h:578
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
msgstr ""
#. End of deprecated options.
-#: config/sparc/sparc.h:581
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:583
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:585
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:587
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:589
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:591
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:643
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
msgstr ""
-#: config/stormy16/stormy16.c:1180
+#: config/stormy16/stormy16.c:1192
msgid "cannot use va_start in interrupt function"
msgstr ""
-#: config/stormy16/stormy16.c:1538
+#: config/stormy16/stormy16.c:1552
msgid "`B' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1544
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr ""
-#: config/stormy16/stormy16.c:1571
+#: config/stormy16/stormy16.c:1585
msgid "`o' operand is not constant"
msgstr ""
-#: config/stormy16/stormy16.c:1586
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr ""
-#: config/stormy16/stormy16.c:1636
+#: config/stormy16/stormy16.c:1650
#, c-format
msgid "switch statement of size %lu entries too large"
msgstr ""
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
msgid "cannot set interrupt attribute: no current function"
msgstr ""
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr ""
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr ""
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, c-format
msgid "unrecognized section name \"%s\""
msgstr ""
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr ""
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr ""
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr ""
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr ""
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr ""
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr ""
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr ""
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, c-format
msgid "%s=%s is not numeric"
msgstr ""
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, c-format
msgid "%s=%s is too large"
msgstr ""
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2084
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2095
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2298
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2319 config/v850/v850.c:2521
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2497
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr ""
-#: config/v850/v850.h:123
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr ""
-#: config/v850/v850.h:126
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr ""
-#: config/v850/v850.h:129
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr ""
-#: config/v850/v850.h:132
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr ""
-#: config/v850/v850.h:133
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr ""
-#: config/v850/v850.h:135
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr ""
-#: config/v850/v850.h:138
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr ""
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr ""
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr ""
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr ""
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr ""
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
msgstr ""
-#: config/v850/v850.h:164
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
msgstr ""
-#: config/v850/v850.h:167
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
msgstr ""
-#: config/v850/v850.h:170
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
msgstr ""
-#: config/xtensa/xtensa.c:1048 config/xtensa/xtensa.c:1082
-#: config/xtensa/xtensa.c:1091
+#: config/xtensa/xtensa.c:1064 config/xtensa/xtensa.c:1098
+#: config/xtensa/xtensa.c:1107
msgid "bad test"
msgstr ""
-#: config/xtensa/xtensa.c:1790
+#: config/xtensa/xtensa.c:1846
msgid "boolean registers required for the floating-point option"
msgstr ""
-#: config/xtensa/xtensa.c:1965
+#: config/xtensa/xtensa.c:2013
msgid "invalid mask"
msgstr ""
-#: config/xtensa/xtensa.c:2017
+#: config/xtensa/xtensa.c:2060
msgid "invalid address"
msgstr ""
-#: config/xtensa/xtensa.c:2042
+#: config/xtensa/xtensa.c:2085
msgid "no register in address"
msgstr ""
-#: config/xtensa/xtensa.c:2050
+#: config/xtensa/xtensa.c:2093
msgid "address offset not a constant"
msgstr ""
+#: config/xtensa/xtensa.c:2739
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr ""
+
#: config/xtensa/xtensa.h:114
msgid "Use the Xtensa code density option"
msgstr ""
@@ -13115,519 +13654,598 @@ msgstr ""
msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ada/misc.c:234
+#: ada/misc.c:233
msgid "`-gnat' misspelled as `-gant'"
msgstr ""
-#: cp/call.c:270 cp/init.c:1633
+#: cp/call.c:261 cp/init.c:1604
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr ""
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr ""
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr ""
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr ""
-#: cp/call.c:377
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:513
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr ""
-#: cp/call.c:520
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr ""
-#: cp/call.c:2357
+#: cp/call.c:543 cp/call.c:5016
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr ""
+
+#: cp/call.c:2541
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2362
+#: cp/call.c:2546
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2366
+#: cp/call.c:2550
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2370
+#: cp/call.c:2554
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2372
+#: cp/call.c:2556
msgid "%s %+#D%s"
msgstr ""
-#: cp/call.c:2517
-msgid "no viable candidates"
+#: cp/call.c:2730
+msgid "conversion from `%T' to `%T' is ambiguous"
msgstr ""
-#: cp/call.c:2531
-msgid "conversion from `%T' to `%T' is ambiguous"
+#: cp/call.c:2807
+msgid "`%T' is not a class type"
+msgstr ""
+
+#: cp/call.c:2815
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr ""
+
+#: cp/call.c:2835 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
msgstr ""
-#: cp/call.c:2648
+#: cp/call.c:2937
msgid "no matching function for call to `%D(%A)'"
msgstr ""
-#: cp/call.c:2659 cp/call.c:4655
+#: cp/call.c:2948 cp/call.c:5103
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2686
+#: cp/call.c:2975
#, c-format
msgid ""
"pointer-to-member function %E cannot be called without an object; consider "
"using .* or ->*"
msgstr ""
-#: cp/call.c:2755
+#: cp/call.c:3040
msgid "no match for call to `(%T) (%A)'"
msgstr ""
-#: cp/call.c:2765
+#: cp/call.c:3050
msgid "call of `(%T) (%A)' is ambiguous"
msgstr ""
-#: cp/call.c:2800
-msgid "%s for `%T ? %T : %T' operator"
+#: cp/call.c:3085
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
msgstr ""
-#: cp/call.c:2805
-msgid "%s for `%T %s' operator"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
msgstr ""
-#: cp/call.c:2808
-msgid "%s for `%T [%T]' operator"
+#: cp/call.c:3095
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/call.c:2813
-msgid "%s for `%T %s %T' operator"
+#: cp/call.c:3100
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
msgstr ""
-#: cp/call.c:2816
-msgid "%s for `%s %T' operator"
+#: cp/call.c:3103
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
msgstr ""
-#: cp/call.c:2908
+#: cp/call.c:3195
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr ""
-#: cp/call.c:2967
+#: cp/call.c:3270
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr ""
-#: cp/call.c:3000 cp/call.c:3200
+#: cp/call.c:3303 cp/call.c:3495
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3153
+#: cp/call.c:3448
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr ""
-#: cp/call.c:3160
+#: cp/call.c:3455
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3241
+#: cp/call.c:3536
msgid "`%D' must be declared before use"
msgstr ""
-#: cp/call.c:3404
+#: cp/call.c:3726
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr ""
-#: cp/call.c:3451
-msgid "using synthesized `%#D' for copy assignment"
-msgstr ""
-
-#: cp/call.c:3453
-msgid " where cfront would use `%#D'"
-msgstr ""
-
-#: cp/call.c:3480
+#: cp/call.c:3785
msgid "comparison between `%#T' and `%#T'"
msgstr ""
-#: cp/call.c:3719
+#: cp/call.c:4024
msgid "no suitable `operator delete' for `%T'"
msgstr ""
-#: cp/call.c:3738
+#: cp/call.c:4043
msgid "`%+#D' is private"
msgstr ""
-#: cp/call.c:3740
+#: cp/call.c:4045
msgid "`%+#D' is protected"
msgstr ""
-#: cp/call.c:3742
+#: cp/call.c:4047
msgid "`%+#D' is inaccessible"
msgstr ""
-#: cp/call.c:3743
+#: cp/call.c:4048
msgid "within this context"
msgstr ""
-#: cp/call.c:3785
+#: cp/call.c:4091
msgid "invalid conversion from `%T' to `%T'"
msgstr ""
-#: cp/call.c:3787 cp/call.c:3926 cp/call.c:3928
+#: cp/call.c:4093 cp/call.c:4232 cp/call.c:4234
msgid " initializing argument %P of `%D'"
msgstr ""
-#: cp/call.c:3850 cp/call.c:3854
+#: cp/call.c:4155 cp/call.c:4159
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr ""
-#: cp/call.c:3860 cp/call.c:3863
+#: cp/call.c:4165 cp/call.c:4168
msgid " initializing temporary from result of `%D'"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:3997
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#: cp/call.c:4324
+msgid ""
+"cannot pass objects of non-POD type `%#T' through `...'; call will abort at "
+"runtime"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4022
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4350
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr ""
-#: cp/call.c:4167
+#: cp/call.c:4530
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr ""
-#: cp/call.c:4417
+#: cp/call.c:4549
+msgid "`%T' is not an accessible base of `%T'"
+msgstr ""
+
+#: cp/call.c:4793
msgid "could not find class$ field in java interface type `%T'"
msgstr ""
-#: cp/call.c:4518 cp/typeck.c:2019
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+#: cp/call.c:4990
+msgid "call to non-function `%D'"
msgstr ""
-#: cp/call.c:4644
+#: cp/call.c:5092
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr ""
-#: cp/call.c:4674
+#: cp/call.c:5122
msgid "cannot call member function `%D' without object"
msgstr ""
-#: cp/call.c:5287
+#: cp/call.c:5720
msgid "passing `%T' chooses `%T' over `%T'"
msgstr ""
-#: cp/call.c:5289 cp/decl2.c:4508
+#: cp/call.c:5722 cp/decl2.c:4158
msgid " in call to `%D'"
msgstr ""
-#: cp/call.c:5338 cp/call.c:5463
+#: cp/call.c:5771
msgid "choosing `%D' over `%D'"
msgstr ""
-#: cp/call.c:5339
+#: cp/call.c:5772
msgid " for conversion from `%T' to `%T'"
msgstr ""
-#: cp/call.c:5341
+#: cp/call.c:5774
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:5465
+#: cp/call.c:5895
msgid ""
-" because worst conversion for the former is better than worst conversion "
-"for the latter"
+"ISO C++ says that `%D' and `%D' are ambiguous even though the worst "
+"conversion for the former is better than the worst conversion for the latter"
msgstr ""
-#: cp/call.c:5581 cp/call.c:5602
+#: cp/call.c:6012
msgid "could not convert `%E' to `%T'"
msgstr ""
+#: cp/call.c:6121
+msgid ""
+"invalid initialization of non-const reference of type '%T' from a temporary "
+"of type '%T'"
+msgstr ""
+
+#: cp/call.c:6125
+msgid ""
+"invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr ""
+
#: cp/class.c:287
msgid ""
"cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr ""
-#: cp/class.c:1049
+#: cp/class.c:992
msgid "`%#D' and `%#D' cannot be overloaded"
msgstr ""
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1060
-msgid "`%D' has already been declared in `%T'"
-msgstr ""
-
-#: cp/class.c:1141
+#: cp/class.c:1076
msgid "duplicate enum value `%D'"
msgstr ""
-#: cp/class.c:1144
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr ""
-#: cp/class.c:1151
+#: cp/class.c:1086
msgid "duplicate nested type `%D'"
msgstr ""
-#: cp/class.c:1162
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr ""
-#: cp/class.c:1166
+#: cp/class.c:1101
msgid "duplicate member `%D'"
msgstr ""
-#: cp/class.c:1209
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr ""
-#: cp/class.c:1211
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr ""
-#: cp/class.c:1254
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr ""
-#: cp/class.c:1260
+#: cp/class.c:1199
msgid "`%D' invalid in `%T'"
msgstr ""
-#: cp/class.c:1268
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr ""
-#: cp/class.c:1300 cp/class.c:1308
+#: cp/class.c:1239 cp/class.c:1247
msgid "`%D' invalid in `%#T'"
msgstr ""
-#: cp/class.c:1301
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr ""
-#: cp/class.c:1309
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr ""
-#: cp/class.c:1381
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1401
+#: cp/class.c:1340
msgid ""
"base `%T' with only non-default constructor in class without a constructor"
msgstr ""
-#: cp/class.c:1988
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr ""
-#: cp/class.c:2002
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:2045
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:2166 cp/class.c:5093
+#: cp/class.c:2090 cp/class.c:5301
msgid "redefinition of `%#T'"
msgstr ""
-#: cp/class.c:2167
+#: cp/class.c:2091
msgid "previous definition of `%#T'"
msgstr ""
-#: cp/class.c:2497
+#: cp/class.c:2369
msgid "no unique final overrider for `%D' in `%T'"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2879
+#: cp/class.c:2717
msgid "`%D' was hidden"
msgstr ""
-#: cp/class.c:2880
+#: cp/class.c:2718
msgid " by `%D'"
msgstr ""
-#: cp/class.c:2922
+#: cp/class.c:2760
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr ""
-#: cp/class.c:2927 cp/decl2.c:1874
+#: cp/class.c:2765 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2933 cp/decl2.c:1880
+#: cp/class.c:2771 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:2936 cp/decl2.c:1882
+#: cp/class.c:2774 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:3088
+#: cp/class.c:2899
+msgid ""
+"vtable layout for class `%T' may not be ABI-compliant and may change in a "
+"future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2963
msgid "bit-field `%#D' with non-integral type"
msgstr ""
-#: cp/class.c:3108
+#: cp/class.c:2983
msgid "bit-field `%D' width not an integer constant"
msgstr ""
-#: cp/class.c:3114
+#: cp/class.c:2989
msgid "negative width in bit-field `%D'"
msgstr ""
-#: cp/class.c:3119
+#: cp/class.c:2994
msgid "zero width for bit-field `%D'"
msgstr ""
-#: cp/class.c:3125
+#: cp/class.c:3000
msgid "width of `%D' exceeds its type"
msgstr ""
-#: cp/class.c:3134
+#: cp/class.c:3009
msgid "`%D' is too small to hold all values of `%#T'"
msgstr ""
-#: cp/class.c:3218
+#: cp/class.c:3093
msgid "member `%#D' with constructor not allowed in union"
msgstr ""
-#: cp/class.c:3221
+#: cp/class.c:3096
msgid "member `%#D' with destructor not allowed in union"
msgstr ""
-#: cp/class.c:3224
+#: cp/class.c:3099
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:3251
+#: cp/class.c:3126
msgid "multiple fields in union `%T' initialized"
msgstr ""
-#: cp/class.c:3370
+#: cp/class.c:3247
+msgid "`%D' may not be static because it is a member of a union"
+msgstr ""
+
+#: cp/class.c:3252
+msgid "`%D' may not have reference type `%T' because it is a member of a union"
+msgstr ""
+
+#: cp/class.c:3260
msgid "field `%D' in local class cannot be static"
msgstr ""
-#: cp/class.c:3376
+#: cp/class.c:3266
msgid "field `%D' invalidly declared function type"
msgstr ""
-#: cp/class.c:3383
+#: cp/class.c:3273
msgid "field `%D' invalidly declared method type"
msgstr ""
-#: cp/class.c:3389
+#: cp/class.c:3279
msgid "field `%D' invalidly declared offset type"
msgstr ""
-#. Unions cannot have static members.
-#: cp/class.c:3407
-msgid "field `%D' declared static in union"
-msgstr ""
-
-#: cp/class.c:3433
+#: cp/class.c:3312
msgid "non-static reference `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3464
+#: cp/class.c:3355
msgid "non-static const member `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3479
+#: cp/class.c:3371
msgid "field `%#D' with same name as class"
msgstr ""
-#: cp/class.c:3497
+#: cp/class.c:3389
msgid "`%#T' has pointer data members"
msgstr ""
-#: cp/class.c:3501
+#: cp/class.c:3393
msgid " but does not override `%T(const %T&)'"
msgstr ""
-#: cp/class.c:3503
+#: cp/class.c:3395
msgid " or `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3506
+#: cp/class.c:3398
msgid " but does not override `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3972
+#: cp/class.c:3848
+msgid ""
+"offset of empty base `%T' may not be ABI-compliant and maychange in a future "
+"version of GCC"
+msgstr ""
+
+#: cp/class.c:3957
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4047
msgid "initializer specified for non-virtual method `%D'"
msgstr ""
-#: cp/class.c:4757
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#: cp/class.c:4786
+msgid ""
+"offset of virtual base `%T' is not ABI-compliant and may change in a future "
+"version of GCC"
msgstr ""
-#: cp/class.c:4827
+#: cp/class.c:4886
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/class.c:5254
+#: cp/class.c:4899
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5055
+msgid ""
+"size assigned to `%T' may not be ABI-compliant and may change in a future "
+"version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5078
+msgid ""
+"the offset of `%D' may not be ABI-compliant and may change in a future "
+"version of GCC"
+msgstr ""
+
+#: cp/class.c:5104
+msgid ""
+"offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5113
+msgid ""
+"`%D' contains empty classes which may cause base classes to be placed at "
+"different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5172
+msgid ""
+"layout of classes derived from empty class `%T' may change in a future "
+"version of GCC"
+msgstr ""
+
+#: cp/class.c:5457
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5338
+#: cp/class.c:5541
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5795
+#: cp/class.c:6007
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr ""
-#: cp/class.c:5891
+#: cp/class.c:6103
msgid ""
"cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr ""
-#: cp/class.c:6012
+#: cp/class.c:6228
msgid "no matches converting function `%D' to type `%#T'"
msgstr ""
-#: cp/class.c:6035
+#: cp/class.c:6251
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr ""
-#: cp/class.c:6061
+#: cp/class.c:6277
msgid "assuming pointer to member `%D'"
msgstr ""
-#: cp/class.c:6064
+#: cp/class.c:6280
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
msgstr ""
-#: cp/class.c:6108 cp/class.c:6276 cp/class.c:6283
+#: cp/class.c:6331 cp/class.c:6502 cp/class.c:6509
msgid "not enough type information"
msgstr ""
-#: cp/class.c:6117
+#: cp/class.c:6340
msgid "argument of type `%T' does not match `%T'"
msgstr ""
-#: cp/class.c:6260
+#: cp/class.c:6486
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -13636,11 +14254,11 @@ msgstr ""
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6512 cp/decl.c:1029 cp/decl.c:3169 cp/pt.c:1844
+#: cp/class.c:6770 cp/decl.c:1256 cp/decl.c:3385 cp/pt.c:2013
msgid "declaration of `%#D'"
msgstr ""
-#: cp/class.c:6513
+#: cp/class.c:6771
msgid "changes meaning of `%D' from `%+#D'"
msgstr ""
@@ -13656,206 +14274,242 @@ msgstr ""
msgid "converting from `%T' to `%T'"
msgstr ""
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr ""
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr ""
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr ""
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr ""
-#: cp/cvt.c:543
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
msgstr ""
-#: cp/cvt.c:572
+#: cp/cvt.c:551
msgid "cannot convert type `%T' to type `%T'"
msgstr ""
-#: cp/cvt.c:689
+#: cp/cvt.c:683
msgid "conversion from `%#T' to `%#T'"
msgstr ""
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr ""
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:793
+#: cp/cvt.c:779
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr ""
-#: cp/cvt.c:879
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:882
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:898
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr ""
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:918
+#: cp/cvt.c:904
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr ""
#. Only warn when there is no &.
-#: cp/cvt.c:923
+#: cp/cvt.c:910
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr ""
-#: cp/cvt.c:1061
+#: cp/cvt.c:1040
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1137
+#: cp/cvt.c:1117
msgid "ambiguous default type conversion from `%T'"
msgstr ""
-#: cp/cvt.c:1139
+#: cp/cvt.c:1119
msgid " candidate conversions include `%D' and `%D'"
msgstr ""
-#: cp/decl.c:1030 cp/decl.c:3272
+#: cp/decl.c:737
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:771
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:777 cp/decl.c:815
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:809
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:838
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1257 cp/decl.c:3503
msgid "conflicts with previous declaration `%#D'"
msgstr ""
-#: cp/decl.c:1219
+#: cp/decl.c:1473
msgid "label `%D' used but not defined"
msgstr ""
-#: cp/decl.c:1224
+#: cp/decl.c:1478
msgid "label `%D' defined but not used"
msgstr ""
-#: cp/decl.c:2291
+#: cp/decl.c:2495
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr ""
-#: cp/decl.c:3075 cp/decl.c:3480
+#: cp/decl.c:2831
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2840
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3291 cp/decl.c:3713
msgid "previous declaration of `%D'"
msgstr ""
-#: cp/decl.c:3156 cp/decl.c:3194
+#: cp/decl.c:3372 cp/decl.c:3410
msgid "shadowing %s function `%#D'"
msgstr ""
-#: cp/decl.c:3165
+#: cp/decl.c:3381
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr ""
-#: cp/decl.c:3170
+#: cp/decl.c:3386
msgid "conflicts with built-in declaration `%#D'"
msgstr ""
-#: cp/decl.c:3189 cp/decl.c:3282 cp/decl.c:3298
+#: cp/decl.c:3405 cp/decl.c:3517 cp/decl.c:3533
msgid "new declaration `%#D'"
msgstr ""
-#: cp/decl.c:3190
+#: cp/decl.c:3406
msgid "ambiguates built-in declaration `%#D'"
msgstr ""
-#: cp/decl.c:3246
+#: cp/decl.c:3477
msgid "`%#D' redeclared as different kind of symbol"
msgstr ""
-#: cp/decl.c:3249
+#: cp/decl.c:3480
msgid "previous declaration of `%#D'"
msgstr ""
-#: cp/decl.c:3271
+#: cp/decl.c:3502
msgid "declaration of template `%#D'"
msgstr ""
-#: cp/decl.c:3283 cp/decl.c:3299
+#: cp/decl.c:3518 cp/decl.c:3534
msgid "ambiguates old declaration `%#D'"
msgstr ""
-#: cp/decl.c:3291
+#: cp/decl.c:3526
msgid "declaration of C function `%#D' conflicts with"
msgstr ""
-#: cp/decl.c:3293
+#: cp/decl.c:3528
msgid "previous declaration `%#D' here"
msgstr ""
-#: cp/decl.c:3309
+#: cp/decl.c:3546
msgid "conflicting types for `%#D'"
msgstr ""
-#: cp/decl.c:3310
+#: cp/decl.c:3547
msgid "previous declaration as `%#D'"
msgstr ""
-#: cp/decl.c:3353
+#: cp/decl.c:3590
msgid "`%#D' previously defined here"
msgstr ""
-#: cp/decl.c:3354
+#: cp/decl.c:3591
msgid "`%#D' previously declared here"
msgstr ""
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3363
+#: cp/decl.c:3600
msgid "prototype for `%#D'"
msgstr ""
-#: cp/decl.c:3364
+#: cp/decl.c:3601
msgid "follows non-prototype definition here"
msgstr ""
-#: cp/decl.c:3376
+#: cp/decl.c:3613
msgid "previous declaration of `%#D' with %L linkage"
msgstr ""
-#: cp/decl.c:3378
+#: cp/decl.c:3615
msgid "conflicts with new declaration with %L linkage"
msgstr ""
-#: cp/decl.c:3401 cp/decl.c:3408
+#: cp/decl.c:3638 cp/decl.c:3645
msgid "default argument given for parameter %d of `%#D'"
msgstr ""
-#: cp/decl.c:3403 cp/decl.c:3410
+#: cp/decl.c:3640 cp/decl.c:3647
msgid "after previous specification in `%#D'"
msgstr ""
-#: cp/decl.c:3419
+#: cp/decl.c:3656
msgid "`%#D' was used before it was declared inline"
msgstr ""
-#: cp/decl.c:3421
+#: cp/decl.c:3658
msgid "previous non-inline declaration here"
msgstr ""
-#: cp/decl.c:3479
+#: cp/decl.c:3712
msgid "redundant redeclaration of `%D' in same scope"
msgstr ""
-#: cp/decl.c:3563
+#: cp/decl.c:3801
#, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr ""
-#: cp/decl.c:3565
+#: cp/decl.c:3803
#, c-format
msgid "than previous declaration `%F'"
msgstr ""
@@ -13868,15 +14522,15 @@ msgstr ""
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3698
+#: cp/decl.c:3943
msgid "explicit specialization of %D after first use"
msgstr ""
-#: cp/decl.c:3943
+#: cp/decl.c:4208
msgid "`%#D' used prior to declaration"
msgstr ""
-#: cp/decl.c:3974
+#: cp/decl.c:4239
msgid "redeclaration of `wchar_t' as `%T'"
msgstr ""
@@ -13886,856 +14540,921 @@ msgstr ""
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:4002
+#: cp/decl.c:4267
msgid "invalid redeclaration of `%D'"
msgstr ""
-#: cp/decl.c:4003
+#: cp/decl.c:4268
msgid "as `%D'"
msgstr ""
-#: cp/decl.c:4093
+#: cp/decl.c:4358
msgid "previous external decl of `%#D'"
msgstr ""
-#: cp/decl.c:4134
+#: cp/decl.c:4399
msgid "`%D' was previously implicitly declared to return `int'"
msgstr ""
-#: cp/decl.c:4194
+#: cp/decl.c:4459
msgid "extern declaration of `%#D' doesn't match"
msgstr ""
-#: cp/decl.c:4195
+#: cp/decl.c:4460
msgid "global declaration `%#D'"
msgstr ""
-#: cp/decl.c:4226
+#: cp/decl.c:4493
msgid "declaration of `%#D' shadows a parameter"
msgstr ""
-#: cp/decl.c:4246
+#: cp/decl.c:4513
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
msgstr ""
-#: cp/decl.c:4597
+#: cp/decl.c:4910
msgid "`%#D' hides constructor for `%#T'"
msgstr ""
-#: cp/decl.c:4612
+#: cp/decl.c:4925
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr ""
-#: cp/decl.c:4624
+#: cp/decl.c:4937
msgid "previous non-function declaration `%#D'"
msgstr ""
-#: cp/decl.c:4625
+#: cp/decl.c:4938
msgid "conflicts with function declaration `%#D'"
msgstr ""
-#: cp/decl.c:4715
+#: cp/decl.c:5032
msgid "implicit declaration of function `%#D'"
msgstr ""
-#: cp/decl.c:4873
+#: cp/decl.c:5192
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr ""
-#: cp/decl.c:4976 cp/decl.c:5000 cp/decl.c:5093
+#: cp/decl.c:5295 cp/decl.c:5319 cp/decl.c:5412
msgid "jump to label `%D'"
msgstr ""
-#: cp/decl.c:4978 cp/decl.c:5002
+#: cp/decl.c:5297 cp/decl.c:5321
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:4986
+#: cp/decl.c:5305
msgid " crosses initialization of `%#D'"
msgstr ""
-#: cp/decl.c:4989 cp/decl.c:5109
+#: cp/decl.c:5308 cp/decl.c:5428
msgid " enters scope of non-POD `%#D'"
msgstr ""
-#: cp/decl.c:5009 cp/decl.c:5113
+#: cp/decl.c:5328 cp/decl.c:5432
msgid " enters try block"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:5011 cp/decl.c:5105 cp/decl.c:5115
+#: cp/decl.c:5330 cp/decl.c:5424 cp/decl.c:5434
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:5094
+#: cp/decl.c:5413
msgid " from here"
msgstr ""
-#: cp/decl.c:5107
+#: cp/decl.c:5426
msgid " skips initialization of `%#D'"
msgstr ""
-#: cp/decl.c:5142
+#: cp/decl.c:5462
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:5146
+#: cp/decl.c:5465
msgid "duplicate label `%D'"
msgstr ""
-#: cp/decl.c:5231
+#: cp/decl.c:5550
#, c-format
msgid "case label `%E' not within a switch statement"
msgstr ""
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5408 cp/decl.c:5427
+#: cp/decl.c:5729 cp/decl.c:5748
msgid "`%#D' redeclared as %C"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5515 cp/typeck.c:1981
+#. The YACC parser sometimes gives us things that are not names.
+#. These always indicate errors. The recursive-descent parser
+#. does not do this, so this code can go away once that parser
+#. replaces the YACC parser.
+#: cp/decl.c:5836 cp/typeck.c:2069 cp/typeck.c:2229
msgid "invalid use of `%D'"
msgstr ""
-#: cp/decl.c:5556
+#: cp/decl.c:5877
msgid "`%D::%D' is not a template"
msgstr ""
-#: cp/decl.c:5573
+#: cp/decl.c:5894
msgid "`%D' undeclared in namespace `%D'"
msgstr ""
-#: cp/decl.c:5710
+#: cp/decl.c:6027
msgid "`%D' used without template parameters"
msgstr ""
-#: cp/decl.c:5721 cp/decl.c:5737 cp/decl.c:5825
+#: cp/decl.c:6038 cp/decl.c:6054 cp/decl.c:6164
msgid "no class template named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5755 cp/decl.c:5785
+#: cp/decl.c:6080 cp/decl.c:6090 cp/decl.c:6125
msgid "no type named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:6008
+#: cp/decl.c:6354
msgid "lookup of `%D' finds `%#D'"
msgstr ""
-#: cp/decl.c:6010
+#: cp/decl.c:6356
msgid " instead of `%D' from dependent base class"
msgstr ""
-#: cp/decl.c:6012
+#: cp/decl.c:6358
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr ""
-#: cp/decl.c:6185
+#: cp/decl.c:6389
+msgid "name lookup of `%D' changed"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6393
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6407 cp/decl.c:6414
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
+
+#: cp/decl.c:6409
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6416
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6634
msgid ""
"lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the "
"current scope (`%#D')"
msgstr ""
-#: cp/decl.c:7024
+#: cp/decl.c:7457
msgid "an anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:7041
+#: cp/decl.c:7474
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:7044
+#: cp/decl.c:7477
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:7047
+#: cp/decl.c:7480
msgid ""
"member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:7085
+#: cp/decl.c:7518
msgid "redeclaration of C++ built-in type `%T'"
msgstr ""
-#: cp/decl.c:7120
+#: cp/decl.c:7554
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:7123
-msgid "declaration does not declare anything"
-msgstr ""
-
-#: cp/decl.c:7147
+#: cp/decl.c:7581
msgid "missing type-name in typedef-declaration"
msgstr ""
-#: cp/decl.c:7154
+#: cp/decl.c:7588
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:7161
+#: cp/decl.c:7595
msgid "`%D' can only be specified for functions"
msgstr ""
-#: cp/decl.c:7163
+#: cp/decl.c:7597
msgid "`%D' can only be specified inside a class"
msgstr ""
-#: cp/decl.c:7165
+#: cp/decl.c:7599
msgid "`%D' can only be specified for constructors"
msgstr ""
-#: cp/decl.c:7168
+#: cp/decl.c:7602
msgid "`%D' can only be specified for objects and functions"
msgstr ""
-#: cp/decl.c:7317
-msgid "typedef `%D' is initialized"
+#: cp/decl.c:7744 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
msgstr ""
-#: cp/decl.c:7323
+#: cp/decl.c:7749
msgid "function `%#D' is initialized like a variable"
msgstr ""
-#: cp/decl.c:7335
+#: cp/decl.c:7761
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr ""
-#: cp/decl.c:7369
+#: cp/decl.c:7795
msgid "`%#D' is not a static member of `%#T'"
msgstr ""
-#: cp/decl.c:7374
+#: cp/decl.c:7800
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
msgstr ""
-#: cp/decl.c:7385
+#: cp/decl.c:7811
msgid "duplicate initialization of %D"
msgstr ""
-#: cp/decl.c:7414
+#: cp/decl.c:7840
msgid "declaration of `%#D' outside of class is not definition"
msgstr ""
-#: cp/decl.c:7462
+#: cp/decl.c:7888
msgid "variable `%#D' has initializer but incomplete type"
msgstr ""
-#: cp/decl.c:7470 cp/decl.c:7821
+#: cp/decl.c:7896 cp/decl.c:8512
msgid "elements of array `%#D' have incomplete type"
msgstr ""
-#: cp/decl.c:7486
+#: cp/decl.c:7912
msgid "aggregate `%#D' has incomplete type and cannot be defined"
msgstr ""
-#: cp/decl.c:7525
+#: cp/decl.c:7962
msgid "`%D' declared as reference but not initialized"
msgstr ""
-#: cp/decl.c:7534
+#: cp/decl.c:7971
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
msgstr ""
-#: cp/decl.c:7567
+#: cp/decl.c:8001
msgid "cannot initialize `%T' from `%T'"
msgstr ""
-#: cp/decl.c:7628
+#: cp/decl.c:8035
msgid "initializer fails to determine size of `%D'"
msgstr ""
-#: cp/decl.c:7633
+#: cp/decl.c:8040
msgid "array size missing in `%D'"
msgstr ""
-#: cp/decl.c:7645
+#: cp/decl.c:8052
msgid "zero-size array `%D'"
msgstr ""
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7678
+#: cp/decl.c:8090
msgid "storage size of `%D' isn't known"
msgstr ""
-#: cp/decl.c:7700
+#: cp/decl.c:8112
msgid "storage size of `%D' isn't constant"
msgstr ""
-#: cp/decl.c:7751
+#: cp/decl.c:8168
msgid ""
"sorry: semantics of inline function static data `%#D' are wrong (you'll wind "
"up with multiple copies)"
msgstr ""
-#: cp/decl.c:7752
+#: cp/decl.c:8169
msgid " you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:7780
+#: cp/decl.c:8195
msgid "uninitialized const `%D'"
msgstr ""
-#: cp/decl.c:7815
+#: cp/decl.c:8257
+#, c-format
+msgid "Designated initializer `%E' larger than array size"
+msgstr ""
+
+#: cp/decl.c:8335
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr ""
+
+#: cp/decl.c:8399
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8416
+msgid "ISO C++ does not allow designated initializers"
+msgstr ""
+
+#: cp/decl.c:8420
+msgid "`%T' has no non-static data member named `%D'"
+msgstr ""
+
+#: cp/decl.c:8468
+msgid "too many initializers for `%T'"
+msgstr ""
+
+#: cp/decl.c:8506
msgid "variable-sized object `%D' may not be initialized"
msgstr ""
-#: cp/decl.c:7826 cp/typeck2.c:201
+#: cp/decl.c:8517
msgid "`%D' has incomplete type"
msgstr ""
-#: cp/decl.c:7858
+#: cp/decl.c:8566
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr ""
-#: cp/decl.c:7888
+#: cp/decl.c:8610
msgid "structure `%D' with uninitialized const members"
msgstr ""
-#: cp/decl.c:7890
+#: cp/decl.c:8612
msgid "structure `%D' with uninitialized reference members"
msgstr ""
-#: cp/decl.c:8157
+#: cp/decl.c:8853
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:8169
+#: cp/decl.c:8868
msgid "cannot initialize `%D' to namespace `%D'"
msgstr ""
-#: cp/decl.c:8226
+#: cp/decl.c:8919
msgid "shadowing previous type declaration of `%#D'"
msgstr ""
-#: cp/decl.c:8624
+#: cp/decl.c:8967
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8982
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9382 cp/init.c:571
msgid "multiple initializations given for `%D'"
msgstr ""
-#: cp/decl.c:8724
+#: cp/decl.c:9474
msgid "invalid catch parameter"
msgstr ""
-#: cp/decl.c:8842
+#: cp/decl.c:9592
msgid "destructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8845
+#: cp/decl.c:9595
msgid "constructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8864
+#: cp/decl.c:9614
msgid "`%D' declared as a `virtual' %s"
msgstr ""
-#: cp/decl.c:8866
+#: cp/decl.c:9616
msgid "`%D' declared as an `inline' %s"
msgstr ""
-#: cp/decl.c:8868
+#: cp/decl.c:9618
msgid ""
"`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr ""
-#: cp/decl.c:8871
+#: cp/decl.c:9621
msgid "`%D' declared as a friend"
msgstr ""
-#: cp/decl.c:8877
+#: cp/decl.c:9627
msgid "`%D' declared with an exception specification"
msgstr ""
-#: cp/decl.c:8952
+#: cp/decl.c:9702
msgid "cannot declare `::main' to be a template"
msgstr ""
-#: cp/decl.c:8954
+#: cp/decl.c:9704
msgid "cannot declare `::main' to be inline"
msgstr ""
-#: cp/decl.c:8956
+#: cp/decl.c:9706
msgid "cannot declare `::main' to be static"
msgstr ""
-#: cp/decl.c:8959
+#: cp/decl.c:9709
msgid "`main' must return `int'"
msgstr ""
-#: cp/decl.c:8987
+#: cp/decl.c:9737
msgid "non-local function `%#D' uses anonymous type"
msgstr ""
-#: cp/decl.c:8990
+#: cp/decl.c:9740
msgid ""
"`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:8996
+#: cp/decl.c:9746
msgid "non-local function `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:9019
+#: cp/decl.c:9775
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr ""
-#: cp/decl.c:9043
+#: cp/decl.c:9799
msgid "defining explicit specialization `%D' in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:9053
+#: cp/decl.c:9809
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/decl.c:9081
+#: cp/decl.c:9837
msgid ""
"default arguments are not allowed in declaration of friend template "
"specialization `%D'"
msgstr ""
-#: cp/decl.c:9088
+#: cp/decl.c:9844
msgid ""
"`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:9150
+#: cp/decl.c:9906
msgid "definition of implicitly-declared `%D'"
msgstr ""
-#: cp/decl.c:9162 cp/decl2.c:1358
+#: cp/decl.c:9918 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
msgstr ""
-#: cp/decl.c:9281
+#: cp/decl.c:10051
msgid "non-local variable `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:9371
+#: cp/decl.c:10148
msgid ""
"invalid in-class initialization of static data member of non-integral type `%"
"T'"
msgstr ""
-#: cp/decl.c:9380
+#: cp/decl.c:10157
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
msgstr ""
-#: cp/decl.c:9383
+#: cp/decl.c:10160
msgid ""
"ISO C++ forbids initialization of member constant `%D' of non-integral type `"
"%T'"
msgstr ""
-#: cp/decl.c:9433
+#: cp/decl.c:10210
msgid "size of array `%D' has non-integer type"
msgstr ""
-#: cp/decl.c:9435
+#: cp/decl.c:10212
msgid "size of array has non-integer type"
msgstr ""
-#: cp/decl.c:9455
+#: cp/decl.c:10232
msgid "size of array `%D' is negative"
msgstr ""
-#: cp/decl.c:9457
+#: cp/decl.c:10234
msgid "size of array is negative"
msgstr ""
-#: cp/decl.c:9466
+#: cp/decl.c:10242
msgid "ISO C++ forbids zero-size array `%D'"
msgstr ""
-#: cp/decl.c:9468
+#: cp/decl.c:10244
msgid "ISO C++ forbids zero-size array"
msgstr ""
-#: cp/decl.c:9475
+#: cp/decl.c:10251
msgid "size of array `%D' is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:9478
+#: cp/decl.c:10254
msgid "size of array is not an integral constant-expression"
msgstr ""
-#: cp/decl.c:9496
+#: cp/decl.c:10272
msgid "ISO C++ forbids variable-size array `%D'"
msgstr ""
-#: cp/decl.c:9499
+#: cp/decl.c:10275
msgid "ISO C++ forbids variable-size array"
msgstr ""
-#: cp/decl.c:9510
+#: cp/decl.c:10286
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:9569
+#: cp/decl.c:10345
msgid "declaration of `%D' as %s"
msgstr ""
-#: cp/decl.c:9571
+#: cp/decl.c:10347
#, c-format
msgid "creating %s"
msgstr ""
-#: cp/decl.c:9583
+#: cp/decl.c:10359
msgid ""
"declaration of `%D' as multidimensional array must have bounds for all "
"dimensions except the first"
msgstr ""
-#: cp/decl.c:9586
+#: cp/decl.c:10362
msgid ""
"multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9615
+#: cp/decl.c:10391
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:9622
+#: cp/decl.c:10398
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:9628
+#: cp/decl.c:10404
msgid "operator `%T' declared to return `%T'"
msgstr ""
-#: cp/decl.c:9630
+#: cp/decl.c:10406
msgid "return type specified for `operator %T'"
msgstr ""
-#: cp/decl.c:9798
+#: cp/decl.c:10574
msgid "destructors must be member functions"
msgstr ""
-#: cp/decl.c:9817
+#: cp/decl.c:10593
msgid "destructor `%T' must match class name `%T'"
msgstr ""
-#: cp/decl.c:9867
+#: cp/decl.c:10622
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10649
msgid "invalid declarator"
msgstr ""
-#: cp/decl.c:9920
+#: cp/decl.c:10700
msgid "declarator-id missing; using reserved word `%D'"
msgstr ""
-#: cp/decl.c:9977
+#: cp/decl.c:10757
msgid "type `%T' is not derived from type `%T'"
msgstr ""
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:10023
+#: cp/decl.c:10809
msgid "`%T' specified as declarator-id"
msgstr ""
-#: cp/decl.c:10025
+#: cp/decl.c:10811
msgid " perhaps you want `%T' for a constructor"
msgstr ""
-#: cp/decl.c:10039
-msgid "`%D' as declarator"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10833
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
msgstr ""
-#: cp/decl.c:10054
+#: cp/decl.c:10853
msgid "declaration of `%D' as non-function"
msgstr ""
-#: cp/decl.c:10131
+#: cp/decl.c:10930
msgid "`bool' is now a keyword"
msgstr ""
-#: cp/decl.c:10133
+#: cp/decl.c:10932
msgid "extraneous `%T' ignored"
msgstr ""
-#: cp/decl.c:10149 cp/decl.c:10182
+#: cp/decl.c:10948 cp/decl.c:10993
msgid "multiple declarations `%T' and `%T'"
msgstr ""
-#: cp/decl.c:10162
+#: cp/decl.c:10961
msgid "ISO C++ does not support `long long'"
msgstr ""
-#: cp/decl.c:10255 cp/decl.c:10258
+#: cp/decl.c:11066 cp/decl.c:11069
#, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
msgstr ""
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10268
+#: cp/decl.c:11079
msgid "`%T' is implicitly a typename"
msgstr ""
-#: cp/decl.c:10304
+#: cp/decl.c:11115
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr ""
-#: cp/decl.c:10309
+#: cp/decl.c:11120
#, c-format
msgid "long and short specified together for `%s'"
msgstr ""
-#: cp/decl.c:10320
+#: cp/decl.c:11131
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr ""
-#: cp/decl.c:10429
+#: cp/decl.c:11240
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr ""
-#: cp/decl.c:10451
+#: cp/decl.c:11262
msgid "member `%D' cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:10460
+#: cp/decl.c:11271
msgid "`%T::%D' is not a valid declarator"
msgstr ""
-#: cp/decl.c:10471
+#: cp/decl.c:11283
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:10475
+#: cp/decl.c:11287
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:10488
+#: cp/decl.c:11300
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:10542
+#: cp/decl.c:11361
#, c-format
msgid "storage class specified for %s `%s'"
msgstr ""
-#: cp/decl.c:10580
+#: cp/decl.c:11408
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:10684
-msgid "size of member `%D' is not constant"
-msgstr ""
-
-#: cp/decl.c:10763
+#: cp/decl.c:11578
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10766
+#: cp/decl.c:11581
#, c-format
msgid "destructors may not be `%s'"
msgstr ""
-#: cp/decl.c:10787
+#: cp/decl.c:11602
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10790
+#: cp/decl.c:11605
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:10795
+#: cp/decl.c:11610
#, c-format
msgid "constructors may not be `%s'"
msgstr ""
-#: cp/decl.c:10805
+#: cp/decl.c:11620
msgid "return value type specifier for constructor ignored"
msgstr ""
-#: cp/decl.c:10824
+#: cp/decl.c:11639
#, c-format
msgid "can't initialize friend function `%s'"
msgstr ""
#. Cannot be both friend and virtual.
-#: cp/decl.c:10828
+#: cp/decl.c:11643
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:10833
+#: cp/decl.c:11648
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:10835
+#: cp/decl.c:11650
#, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr ""
-#: cp/decl.c:10859
+#: cp/decl.c:11674
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:10889
-#, c-format
-msgid "cannot declare %s to references"
+#: cp/decl.c:11705 cp/decl.c:11712
+msgid "cannot declare reference to `%#T'"
msgstr ""
-#: cp/decl.c:10900
-msgid "cannot declare pointer to `%#T' member"
+#: cp/decl.c:11706
+msgid "cannot declare pointer to `%#T'"
msgstr ""
-#: cp/decl.c:10915
-msgid "invalid type: `void &'"
+#: cp/decl.c:11711
+msgid "cannot declare pointer to `%#T' member"
msgstr ""
-#: cp/decl.c:11077
+#: cp/decl.c:11887
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr ""
-#: cp/decl.c:11087
+#: cp/decl.c:11897
msgid "cannot declare member function `%T::%s' within `%T'"
msgstr ""
-#: cp/decl.c:11102
+#: cp/decl.c:11912
msgid "cannot declare member `%T::%s' within `%T'"
msgstr ""
+#: cp/decl.c:11991
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11993
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11182
+#: cp/decl.c:12001
msgid "only declarations of constructors can be `explicit'"
msgstr ""
-#: cp/decl.c:11190
+#: cp/decl.c:12009
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11195
+#: cp/decl.c:12014
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11201
+#: cp/decl.c:12020
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11206
+#: cp/decl.c:12025
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11211
+#: cp/decl.c:12030
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11224
+#: cp/decl.c:12043
msgid "template-id `%D' used as a declarator"
msgstr ""
-#: cp/decl.c:11245
+#: cp/decl.c:12064
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11292
+#: cp/decl.c:12113
msgid "typedef name may not be class-qualified"
msgstr ""
-#: cp/decl.c:11300
+#: cp/decl.c:12121
msgid "invalid type qualifier for non-member function type"
msgstr ""
-#: cp/decl.c:11316
-msgid "typedef declaration includes an initializer"
-msgstr ""
-
-#: cp/decl.c:11366
+#: cp/decl.c:12184
msgid "type qualifiers specified for friend class declaration"
msgstr ""
-#: cp/decl.c:11371
+#: cp/decl.c:12189
msgid "`inline' specified for friend class declaration"
msgstr ""
-#: cp/decl.c:11381
+#: cp/decl.c:12197
msgid "template parameters cannot be friends"
msgstr ""
-#: cp/decl.c:11383
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
+#: cp/decl.c:12199
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr ""
-#: cp/decl.c:11388
+#: cp/decl.c:12203
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr ""
-#: cp/decl.c:11402
+#: cp/decl.c:12217
msgid "trying to make class `%T' a friend of global scope"
msgstr ""
-#: cp/decl.c:11413
+#: cp/decl.c:12228
msgid "invalid qualifiers on non-member function type"
msgstr ""
-#: cp/decl.c:11432
+#: cp/decl.c:12247
msgid "abstract declarator `%T' used as declaration"
msgstr ""
-#: cp/decl.c:11444
+#: cp/decl.c:12259
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:11453
+#: cp/decl.c:12268
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:11463
+#: cp/decl.c:12278
msgid "cannot use `::' in parameter declaration"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:11509
+#: cp/decl.c:12317
msgid "invalid use of `::'"
msgstr ""
-#: cp/decl.c:11521
+#: cp/decl.c:12329
msgid "function `%D' cannot be declared friend"
msgstr ""
-#: cp/decl.c:11533
+#: cp/decl.c:12341
msgid "can't make `%D' into a method -- not in a class"
msgstr ""
-#: cp/decl.c:11542
+#: cp/decl.c:12350
msgid "function `%D' declared virtual inside a union"
msgstr ""
-#: cp/decl.c:11554
+#: cp/decl.c:12362
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:11627
+#: cp/decl.c:12438
msgid "field `%D' has incomplete type"
msgstr ""
-#: cp/decl.c:11629
+#: cp/decl.c:12440
msgid "name `%T' has incomplete type"
msgstr ""
-#: cp/decl.c:11638
+#: cp/decl.c:12449
msgid " in instantiation of template `%T'"
msgstr ""
-#: cp/decl.c:11648
+#: cp/decl.c:12459
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:11659
+#: cp/decl.c:12470
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -14751,101 +15470,106 @@ msgstr ""
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11706
+#: cp/decl.c:12517
msgid "ISO C++ forbids initialization of member `%D'"
msgstr ""
-#: cp/decl.c:11708
+#: cp/decl.c:12519
msgid "making `%D' static"
msgstr ""
-#: cp/decl.c:11732
+#: cp/decl.c:12543
msgid ""
"ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11773
+#: cp/decl.c:12584
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11775
+#: cp/decl.c:12586
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11786
+#: cp/decl.c:12588
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr ""
+
+#: cp/decl.c:12599
#, c-format
msgid ""
"storage class `static' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11788
+#: cp/decl.c:12601
#, c-format
msgid ""
"storage class `inline' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11795
+#: cp/decl.c:12608
#, c-format
msgid "virtual non-class function `%s'"
msgstr ""
-#: cp/decl.c:11824
+#: cp/decl.c:12637
msgid "cannot declare member function `%D' to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:11830
+#: cp/decl.c:12643
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:11858
+#: cp/decl.c:12671
msgid ""
"`static' may not be used when defining (as opposed to declaring) a static "
"data member"
msgstr ""
-#: cp/decl.c:11864
+#: cp/decl.c:12677
msgid "static member `%D' declared `register'"
msgstr ""
-#: cp/decl.c:11869
+#: cp/decl.c:12682
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr ""
-#: cp/decl.c:12041
+#: cp/decl.c:12855
msgid "default argument for `%#D' has type `%T'"
msgstr ""
-#: cp/decl.c:12044
+#: cp/decl.c:12858
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr ""
-#: cp/decl.c:12061
+#: cp/decl.c:12875
msgid "default argument `%E' uses local variable `%D'"
msgstr ""
-#: cp/decl.c:12106
+#: cp/decl.c:12920
#, c-format
msgid "invalid string constant `%E'"
msgstr ""
-#: cp/decl.c:12108
+#: cp/decl.c:12922
msgid ""
"invalid integer constant in parameter list, did you forget to give parameter "
"name?"
msgstr ""
-#: cp/decl.c:12146
+#: cp/decl.c:12960
msgid "parameter `%D' invalidly declared method type"
msgstr ""
-#: cp/decl.c:12152
+#: cp/decl.c:12966
msgid "parameter `%D' invalidly declared offset type"
msgstr ""
-#: cp/decl.c:12176
+#: cp/decl.c:12990
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr ""
@@ -14864,708 +15588,699 @@ msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12343
+#: cp/decl.c:13152
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr ""
-#: cp/decl.c:12494
+#: cp/decl.c:13303
msgid "`%D' must be a nonstatic member function"
msgstr ""
-#: cp/decl.c:12500
+#: cp/decl.c:13309
msgid ""
"`%D' must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:12517
+#: cp/decl.c:13326
msgid "`%D' must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:12549
+#: cp/decl.c:13358
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:12556
+#: cp/decl.c:13365
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:12606
+#: cp/decl.c:13415
msgid "postfix `%D' must take `int' as its argument"
msgstr ""
-#: cp/decl.c:12610
+#: cp/decl.c:13419
msgid "postfix `%D' must take `int' as its second argument"
msgstr ""
-#: cp/decl.c:12617
+#: cp/decl.c:13426
msgid "`%D' must take either zero or one argument"
msgstr ""
-#: cp/decl.c:12619
+#: cp/decl.c:13428
msgid "`%D' must take either one or two arguments"
msgstr ""
-#: cp/decl.c:12640
+#: cp/decl.c:13449
msgid "prefix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12646
+#: cp/decl.c:13455
msgid "postfix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12655
+#: cp/decl.c:13464
msgid "`%D' must take `void'"
msgstr ""
-#: cp/decl.c:12657 cp/decl.c:12665
+#: cp/decl.c:13466 cp/decl.c:13474
msgid "`%D' must take exactly one argument"
msgstr ""
-#: cp/decl.c:12667
+#: cp/decl.c:13476
msgid "`%D' must take exactly two arguments"
msgstr ""
-#: cp/decl.c:12675
+#: cp/decl.c:13484
msgid "user-defined `%D' always evaluates both arguments"
msgstr ""
-#: cp/decl.c:12687
+#: cp/decl.c:13498
msgid "`%D' should return by value"
msgstr ""
-#: cp/decl.c:12699 cp/decl.c:12702
+#: cp/decl.c:13510 cp/decl.c:13513
msgid "`%D' cannot have default arguments"
msgstr ""
-#: cp/decl.c:12793
-msgid "`%s %T' declares a new type at namespace scope"
+#: cp/decl.c:13556
+msgid "using typedef-name `%D' after `%s'"
msgstr ""
-#: cp/decl.c:12796
-msgid ""
-" names from dependent base classes are not visible to unqualified name "
-"lookup - to refer to the inherited type, say `%s %T::%T'"
+#: cp/decl.c:13562
+msgid "using template type parameter `%T' after `%s'"
msgstr ""
-#: cp/decl.c:12834
-msgid "using typedef-name `%D' after `%s'"
+#: cp/decl.c:13623
+msgid "`%s %T' declares a new type at namespace scope"
msgstr ""
-#: cp/decl.c:12839
-msgid "using template type parameter `%T' after `%s'"
+#: cp/decl.c:13626
+msgid ""
+" names from dependent base classes are not visible to unqualified name "
+"lookup - to refer to the inherited type, say `%s %T::%T'"
msgstr ""
-#: cp/decl.c:12919
+#: cp/decl.c:13744
msgid "use of enum `%#D' without previous declaration"
msgstr ""
-#: cp/decl.c:13017
+#: cp/decl.c:13812
msgid "derived union `%T' invalid"
msgstr ""
-#: cp/decl.c:13061
+#: cp/decl.c:13858
msgid "base type `%T' fails to be a struct or class type"
msgstr ""
-#: cp/decl.c:13071
+#: cp/decl.c:13868
msgid "base class `%T' has incomplete type"
msgstr ""
-#: cp/decl.c:13079
+#: cp/decl.c:13876
msgid "recursive type `%T' undefined"
msgstr ""
-#: cp/decl.c:13081
+#: cp/decl.c:13878
msgid "duplicate base type `%T' invalid"
msgstr ""
-#: cp/decl.c:13192
+#: cp/decl.c:13989
msgid "multiple definition of `%#T'"
msgstr ""
-#: cp/decl.c:13193
+#: cp/decl.c:13990
msgid "previous definition here"
msgstr ""
-#: cp/decl.c:13364
+#: cp/decl.c:14093
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14169
msgid "enumerator value for `%D' not integer constant"
msgstr ""
-#: cp/decl.c:13384
+#: cp/decl.c:14189
msgid "overflow in enumeration values at `%D'"
msgstr ""
-#: cp/decl.c:13470
+#: cp/decl.c:14264
msgid "return type `%#T' is incomplete"
msgstr ""
-#: cp/decl.c:13586
+#: cp/decl.c:14378
msgid "semicolon missing after declaration of `%#T'"
msgstr ""
-#: cp/decl.c:13607
+#: cp/decl.c:14399
msgid "return type for `main' changed to `int'"
msgstr ""
-#: cp/decl.c:13638
+#: cp/decl.c:14430
msgid "`%D' implicitly declared before its definition"
msgstr ""
-#: cp/decl.c:13660 cp/typeck.c:6541
+#: cp/decl.c:14452 cp/typeck.c:6318
msgid "`operator=' should return a reference to `*this'"
msgstr ""
-#: cp/decl.c:13924
+#: cp/decl.c:14712
msgid "parameter `%D' declared void"
msgstr ""
-#: cp/decl.c:14392
+#: cp/decl.c:15199
msgid "`%D' is already defined in class `%T'"
msgstr ""
-#: cp/decl.c:14609
+#: cp/decl.c:15417
msgid "static member function `%#D' declared with type qualifiers"
msgstr ""
-#: cp/decl2.c:521
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr ""
-
-#: cp/decl2.c:527
-msgid ""
-"-fhandle-exceptions has been renamed to -fexceptions (and is now on by "
-"default)"
-msgstr ""
-
-#: cp/decl2.c:553
-msgid "-fname-mangling-version is no longer supported"
-msgstr ""
-
-#: cp/decl2.c:613
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr ""
-
-#: cp/decl2.c:752
+#: cp/decl2.c:153
#, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr ""
-#: cp/decl2.c:791
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:797
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:954
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr ""
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1017
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr ""
-#: cp/decl2.c:1048 cp/decl2.c:1062
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:1056
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr ""
-#: cp/decl2.c:1104
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
msgstr ""
-#: cp/decl2.c:1112
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr ""
-#: cp/decl2.c:1122
+#: cp/decl2.c:533
msgid ""
"cannot delete a function. Only pointer-to-objects are valid arguments to "
"`delete'"
msgstr ""
-#: cp/decl2.c:1129
+#: cp/decl2.c:540
msgid "deleting `%T' is undefined"
msgstr ""
-#: cp/decl2.c:1137
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1171
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr ""
-#: cp/decl2.c:1180
+#: cp/decl2.c:591
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr ""
-#: cp/decl2.c:1190 cp/pt.c:2584
+#: cp/decl2.c:601 cp/pt.c:2754
msgid "template declaration of `%#D'"
msgstr ""
-#: cp/decl2.c:1240
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr ""
-#: cp/decl2.c:1249
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr ""
-#: cp/decl2.c:1345
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr ""
-#: cp/decl2.c:1347
-msgid "candidate%s: %+#D"
-msgstr ""
-
-#: cp/decl2.c:1350
-msgid " %#D"
-msgstr ""
-
-#: cp/decl2.c:1402
+#: cp/decl2.c:828
msgid "local class `%#T' shall not have static data member `%#D'"
msgstr ""
-#: cp/decl2.c:1410
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:1413
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:1472
+#: cp/decl2.c:898
msgid "invalid data member initialization"
msgstr ""
-#: cp/decl2.c:1475
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr ""
-#: cp/decl2.c:1515
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:1535
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr ""
-#: cp/decl2.c:1586
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:1609
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1661
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr ""
-#: cp/decl2.c:1671
+#: cp/decl2.c:1100
msgid "cannot declare bit-field `%D' with function type"
msgstr ""
-#: cp/decl2.c:1678
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr ""
-#: cp/decl2.c:1685
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr ""
-#: cp/decl2.c:1754
+#: cp/decl2.c:1201
msgid "initializer specified for non-member function `%D'"
msgstr ""
-#: cp/decl2.c:1758
+#: cp/decl2.c:1205
msgid "invalid initializer for virtual method `%D'"
msgstr ""
-#: cp/decl2.c:1862
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr ""
-#: cp/decl2.c:1958
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1968
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr ""
-#: cp/decl2.c:2035
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2043
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr ""
-#: cp/decl2.c:2070
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2078
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr ""
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2819
+#: cp/decl2.c:2286
msgid "too many initialization functions required"
msgstr ""
-#: cp/decl2.c:3639
+#: cp/decl2.c:3010
+msgid "inline function `%D' used but never defined"
+msgstr ""
+
+#: cp/decl2.c:3139
msgid "use of old-style cast"
msgstr ""
-#: cp/decl2.c:4220
+#: cp/decl2.c:3864
msgid "use of `%D' is ambiguous"
msgstr ""
-#: cp/decl2.c:4221
+#: cp/decl2.c:3865
msgid " first declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4224
+#: cp/decl2.c:3868
msgid " also declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4239
+#: cp/decl2.c:3883
msgid "`%D' denotes an ambiguous type"
msgstr ""
-#: cp/decl2.c:4240
+#: cp/decl2.c:3884
msgid " first type here"
msgstr ""
-#: cp/decl2.c:4241
+#: cp/decl2.c:3885
msgid " other type here"
msgstr ""
-#: cp/decl2.c:4338
+#: cp/decl2.c:3986
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr ""
-#: cp/decl2.c:4372
+#: cp/decl2.c:4020
msgid "`%D' should have been declared inside `%D'"
msgstr ""
-#: cp/decl2.c:4506
+#: cp/decl2.c:4156
msgid "`%D' is not a function,"
msgstr ""
-#: cp/decl2.c:4507
+#: cp/decl2.c:4157
msgid " conflict with `%D'"
msgstr ""
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4821
+#: cp/decl2.c:4477
msgid "unknown namespace `%D'"
msgstr ""
-#: cp/decl2.c:4855 cp/decl2.c:5125
+#: cp/decl2.c:4511 cp/decl2.c:4798
msgid "`%T' is not a namespace"
msgstr ""
-#: cp/decl2.c:4857
+#: cp/decl2.c:4513
msgid "`%D' is not a namespace"
msgstr ""
-#: cp/decl2.c:4866
+#: cp/decl2.c:4522
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr ""
-#: cp/decl2.c:4880
+#: cp/decl2.c:4536
msgid "namespace `%D' not allowed in using-declaration"
msgstr ""
-#: cp/decl2.c:4909
+#: cp/decl2.c:4565
msgid "`%D' not declared"
msgstr ""
-#: cp/decl2.c:4960
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4577 cp/decl2.c:4619 cp/decl2.c:4644
msgid "`%D' is already declared in this scope"
msgstr ""
-#: cp/decl2.c:4987
+#: cp/decl2.c:4650
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr ""
-#: cp/decl2.c:5078
+#: cp/decl2.c:4744
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/decl2.c:5084
+#: cp/decl2.c:4750
msgid "using-declaration for destructor"
msgstr ""
-#: cp/decl2.c:5090
+#: cp/decl2.c:4756
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr ""
-#: cp/decl2.c:5119
+#: cp/decl2.c:4792
msgid "namespace `%T' undeclared"
msgstr ""
-#: cp/decl2.c:5148
+#: cp/decl2.c:4821
msgid "default argument missing for parameter %P of `%+#D'"
msgstr ""
-#: cp/decl2.c:5238
+#: cp/decl2.c:4946
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr ""
-#: cp/decl2.c:5242
+#: cp/decl2.c:4950
msgid "`%T' does not have a class or union named `%D'"
msgstr ""
-#: cp/decl2.c:5255
+#: cp/decl2.c:4968
msgid "`%T' is not a class or union type"
msgstr ""
-#: cp/error.c:36
+#: cp/decl2.c:4982
+msgid "template argument is required for `%T'"
+msgstr ""
+
+#: cp/decl2.c:5000
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr ""
+
+#: cp/error.c:35
#, c-format
msgid "`%s' not supported by %s"
msgstr ""
-#: cp/error.c:576
+#: cp/error.c:572
#, c-format
msgid "<anonymous %s>"
msgstr ""
-#: cp/error.c:813
+#: cp/error.c:811
#, c-format
msgid "(static %s for %s)"
msgstr ""
-#: cp/error.c:2434
+#: cp/error.c:1504
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2475
#, c-format
msgid "In %s `%s':"
msgstr ""
-#: cp/error.c:2489
+#: cp/error.c:2532
#, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr ""
-#: cp/error.c:2513
+#: cp/error.c:2556
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr ""
-#: cp/error.c:2518
+#: cp/error.c:2561
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr ""
#. damn ICE suppression
-#: cp/error.c:2671
+#: cp/error.c:2715
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:241
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr ""
-#: cp/except.c:256
+#: cp/except.c:252
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:259
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr ""
-#: cp/except.c:327
+#: cp/except.c:323
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:641
+#: cp/except.c:637
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:732
+#: cp/except.c:731
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:858
+#: cp/except.c:861
msgid ""
"expression '%E' of abstract class type '%T' cannot be used in throw-"
"expression"
msgstr ""
-#: cp/except.c:946
+#: cp/except.c:949
msgid "exception of type `%T' will be caught"
msgstr ""
-#: cp/except.c:949
+#: cp/except.c:952
msgid " by earlier handler for `%T'"
msgstr ""
-#: cp/except.c:970
+#: cp/except.c:973
msgid "`...' handler must be the last handler for its try block"
msgstr ""
-#: cp/friend.c:155
+#: cp/friend.c:159
msgid "`%D' is already a friend of class `%T'"
msgstr ""
-#: cp/friend.c:157
+#: cp/friend.c:161
msgid "previous friend declaration of `%D'"
msgstr ""
-#: cp/friend.c:197
+#: cp/friend.c:206
msgid "invalid type `%T' declared `friend'"
msgstr ""
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
msgid "partial specialization `%T' declared `friend'"
msgstr ""
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr ""
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
msgid "typename type `%#T' declared `friend'"
msgstr ""
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
msgid "template parameter type `%T' declared `friend'"
msgstr ""
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
msgid "`%#T' is not a template"
msgstr ""
-#: cp/friend.c:266
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr ""
-#: cp/friend.c:362
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr ""
-#: cp/friend.c:417
+#: cp/friend.c:431
msgid "friend declaration `%#D' declares a non-template function"
msgstr ""
-#: cp/friend.c:420
+#: cp/friend.c:434
msgid ""
"(if this is not what you intended, make sure the function template has "
"already been declared and add <> after the function name here) -Wno-non-"
"template-friend disables this warning"
msgstr ""
-#: cp/g++spec.c:198 java/jvspec.c:424
+#: cp/g++spec.c:211 java/jvspec.c:423
#, c-format
msgid "argument to `%s' missing\n"
msgstr ""
-#: cp/init.c:264
-msgid "default-initialization of `%#D', which has reference type"
+#: cp/init.c:339
+msgid "`%D' should be initialized in the member initialization list"
msgstr ""
-#: cp/init.c:269
-msgid "uninitialized reference member `%D'"
+#: cp/init.c:389
+msgid "default-initialization of `%#D', which has reference type"
msgstr ""
-#: cp/init.c:277
-msgid "initializer list treated as compound expression"
+#: cp/init.c:394
+msgid "uninitialized reference member `%D'"
msgstr ""
-#: cp/init.c:389
-msgid "member initializers for `%#D'"
+#: cp/init.c:396
+msgid "uninitialized member '%D' with 'const' type '%T'"
msgstr ""
-#: cp/init.c:391
-msgid " and `%#D'"
+#: cp/init.c:405
+msgid "initializer list treated as compound expression"
msgstr ""
-#: cp/init.c:392
-msgid " will be re-ordered to match declaration order"
+#: cp/init.c:546
+msgid "`%D' will be initialized after"
msgstr ""
-#: cp/init.c:407
-msgid "multiple initializations given for member `%D'"
+#: cp/init.c:549
+msgid "base `%T' will be initialized after"
msgstr ""
-#: cp/init.c:479
-msgid "initializations for multiple members of `%T'"
+#: cp/init.c:552
+msgid " `%#D'"
msgstr ""
-#: cp/init.c:596
-msgid "base initializers for `%#T'"
+#: cp/init.c:554
+msgid " base `%T'"
msgstr ""
-#: cp/init.c:597
-msgid " and `%#T'"
+#: cp/init.c:555
+msgid " when initialized here"
msgstr ""
-#: cp/init.c:598
-msgid " will be re-ordered to match inheritance order"
+#: cp/init.c:573
+msgid "multiple initializations given for base `%T'"
msgstr ""
-#: cp/init.c:610
-msgid "base class `%T' already initialized"
+#: cp/init.c:640
+msgid "initializations for multiple members of `%T'"
msgstr ""
-#: cp/init.c:681
+#: cp/init.c:697
msgid ""
"base class `%#T' should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:724
-msgid "`%D' should be initialized in the member initialization list"
-msgstr ""
-
-#: cp/init.c:966
+#: cp/init.c:935
msgid "class `%T' does not have any field named `%D'"
msgstr ""
-#: cp/init.c:972
+#: cp/init.c:941
msgid ""
"field `%#D' is static; the only point of initialization is its definition"
msgstr ""
-#: cp/init.c:1011
+#: cp/init.c:974
msgid "unnamed initializer for `%T', which has no base classes"
msgstr ""
-#: cp/init.c:1018
+#: cp/init.c:981
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr ""
-#: cp/init.c:1047
+#: cp/init.c:1016
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr ""
-#: cp/init.c:1050
+#: cp/init.c:1019
msgid "type `%D' is not a direct base of `%T'"
msgstr ""
@@ -15581,554 +16296,544 @@ msgstr ""
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1144
+#: cp/init.c:1113
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1356
+#: cp/init.c:1321
msgid "`%T' is not an aggregate type"
msgstr ""
-#: cp/init.c:1379
+#: cp/init.c:1344
msgid "`%T' fails to be an aggregate typedef"
msgstr ""
-#: cp/init.c:1388
+#: cp/init.c:1353
msgid "type `%T' is of non-aggregate type"
msgstr ""
-#: cp/init.c:1490
+#: cp/init.c:1456
msgid "cannot call destructor `%T::~%T' without object"
msgstr ""
-#: cp/init.c:1529
+#: cp/init.c:1500
msgid "invalid use of non-static field `%D'"
msgstr ""
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1538 cp/method.c:163
+#: cp/init.c:1509 cp/method.c:160
msgid "invalid use of member `%D'"
msgstr ""
-#: cp/init.c:1548
+#: cp/init.c:1519
msgid "no method `%T::%D'"
msgstr ""
-#: cp/init.c:1641
+#: cp/init.c:1612
msgid "incomplete type `%T' does not have member `%D'"
msgstr ""
-#: cp/init.c:1710
+#: cp/init.c:1686
msgid "`%D' is not a member of type `%T'"
msgstr ""
-#: cp/init.c:1729
-msgid "illegal pointer to bit-field `%D'"
+#: cp/init.c:1705
+msgid "invalid pointer to bit-field `%D'"
msgstr ""
-#: cp/init.c:1768
+#: cp/init.c:1744
msgid "object missing in use of pointer-to-member construct"
msgstr ""
-#: cp/init.c:1808
+#: cp/init.c:1784
msgid "member `%D' is non-static but referenced as a static member"
msgstr ""
-#: cp/init.c:1810 cp/typeck.c:3142 cp/typeck.c:3250
+#: cp/init.c:1786 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr ""
-#: cp/init.c:1845 cp/typeck.c:2941
+#: cp/init.c:1823
#, c-format
msgid "object missing in `%E'"
msgstr ""
-#: cp/init.c:1976
+#: cp/init.c:1954
msgid "new of array type fails to specify size"
msgstr ""
-#: cp/init.c:1987
+#: cp/init.c:1965
msgid "size in array new must have integral type"
msgstr ""
-#: cp/init.c:1993
+#: cp/init.c:1971
msgid "zero size array reserves no space"
msgstr ""
-#: cp/init.c:2058
+#: cp/init.c:2036
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:2064
+#: cp/init.c:2042
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:2111
+#: cp/init.c:2089
msgid "call to Java constructor, while `jclass' undefined"
msgstr ""
-#: cp/init.c:2127
+#: cp/init.c:2105
msgid "can't find class$"
msgstr ""
-#: cp/init.c:2241
+#: cp/init.c:2219
msgid "invalid type `void' for new"
msgstr ""
-#: cp/init.c:2293
+#: cp/init.c:2271
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr ""
-#: cp/init.c:2400
+#: cp/init.c:2379
msgid "ISO C++ forbids initialization in array new"
msgstr ""
-#: cp/init.c:2418 cp/typeck2.c:359 cp/typeck2.c:1224
+#: cp/init.c:2401 cp/typeck2.c:469 cp/typeck2.c:1310
msgid "initializer list being treated as compound expression"
msgstr ""
-#: cp/init.c:2424
+#: cp/init.c:2407
msgid "ISO C++ forbids aggregate initializer to new"
msgstr ""
-#: cp/init.c:2510
+#: cp/init.c:2495
msgid "uninitialized const in `new' of `%#T'"
msgstr ""
-#: cp/init.c:2874
+#: cp/init.c:2876
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2944
+#: cp/init.c:2946
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:3119
+#: cp/init.c:3124
+msgid "possible problem detected in invocation of delete operator:"
+msgstr ""
+
+#: cp/init.c:3127
+msgid ""
+"neither the destructor nor the class-specific operator delete will be "
+"called, even if they are declared when the class is defined."
+msgstr ""
+
+#: cp/init.c:3148
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3380
+#: cp/init.c:3413
msgid "type to vector delete is neither pointer or array type"
msgstr ""
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr ""
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr ""
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr ""
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr ""
-#: cp/lex.c:948
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr ""
-#: cp/lex.c:951
+#: cp/lex.c:897
msgid "semicolon missing after declaration of `%T'"
msgstr ""
-#: cp/lex.c:999
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr ""
-#: cp/lex.c:1006
+#: cp/lex.c:952
#, c-format
msgid "invalid #pragma %s"
msgstr ""
-#: cp/lex.c:1015
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr ""
-#: cp/lex.c:1092
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr ""
-#: cp/lex.c:1117
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr ""
-#: cp/lex.c:1205
+#: cp/lex.c:1107
msgid "`%D' not defined"
msgstr ""
-#: cp/lex.c:1210
+#: cp/lex.c:1110
msgid "`%D' was not declared in this scope"
msgstr ""
-#: cp/lex.c:1220
+#: cp/lex.c:1118
msgid "`%D' undeclared (first use this function)"
msgstr ""
-#: cp/lex.c:1224
+#: cp/lex.c:1122
msgid ""
"(Each undeclared identifier is reported only once for each function it "
"appears in.)"
msgstr ""
-#: cp/lex.c:1247
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr ""
-
-#: cp/lex.c:1249
-msgid " matches this `%D' under ISO standard rules"
-msgstr ""
-
-#: cp/lex.c:1251
-msgid " matches this `%D' under old rules"
-msgstr ""
-
-#: cp/lex.c:1261 cp/lex.c:1268
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr ""
-
-#: cp/lex.c:1263
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr ""
-
-#: cp/lex.c:1270
-msgid " using obsolete binding at `%D'"
+#: cp/lex.c:1242
+msgid "`::%D' undeclared (first use here)"
msgstr ""
-#: cp/lex.c:1336
-msgid "`::%D' undeclared (first use here)"
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr ""
-#: cp/mangle.c:1918
-msgid "real-valued template parameters when cross-compiling"
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
msgstr ""
-#: cp/method.c:157
+#: cp/method.c:154
msgid "invalid use of member `%D' in static member function"
msgstr ""
-#: cp/method.c:205
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr ""
-#: cp/method.c:210
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr ""
-#: cp/method.c:223
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/method.c:226
+#: cp/method.c:237
msgid " `%#D' declared here"
msgstr ""
-#: cp/method.c:244
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/method.c:297
-msgid "implementation-reserved name `%D' used"
-msgstr ""
-
-#: cp/method.c:428
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr ""
-#: cp/method.c:653
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
msgstr ""
-#: cp/method.c:658
+#: cp/method.c:702
msgid ""
"non-static reference member `%#D', can't use default assignment operator"
msgstr ""
-#: parse.y:218
+#: parse.y:240
msgid "`%s' tag used in naming `%#T'"
msgstr ""
-#: parse.y:507
+#: parse.y:506
msgid "keyword `export' not implemented, and will be ignored"
msgstr ""
-#: parse.y:612
+#: parse.y:610
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr ""
-#: parse.y:685
-msgid "invalid default template argument"
-msgstr ""
-
-#: parse.y:916
-msgid "only constructors take base initializers"
-msgstr ""
-
-#: parse.y:918
+#: parse.y:897
msgid "no base or member initializers given following ':'"
msgstr ""
-#: parse.y:960 parse.y:966
+#: parse.y:938
msgid "anachronistic old style base class initializer"
msgstr ""
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1092
+#: parse.y:1069
msgid "`>>' should be `> >' in template class name"
msgstr ""
-#: parse.y:1130
+#: parse.y:1116
msgid "use of template qualifier outside template"
msgstr ""
-#: parse.y:1159 parse.y:1168
+#: parse.y:1145 parse.y:1154
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr ""
-#: parse.y:1191
+#: parse.y:1177
msgid "definition of class `%T' in condition"
msgstr ""
-#: parse.y:1193
+#: parse.y:1179
msgid "definition of enum `%T' in condition"
msgstr ""
-#: parse.y:1204
+#: parse.y:1190
msgid "definition of array `%#D' in condition"
msgstr ""
-#: parse.y:1313
+#: parse.y:1302
msgid "old style placement syntax, use () instead"
msgstr ""
-#: parse.y:1324
+#: parse.y:1313
msgid "`%T' is not a valid expression"
msgstr ""
-#: parse.y:1335
-msgid "ISO C++ forbids initialization of new expression with `='"
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1320
+msgid "initialization of new expression with `='"
msgstr ""
-#: parse.y:1366
+#: parse.y:1346
msgid "ISO C++ forbids compound literals"
msgstr ""
-#: parse.y:1608
+#: parse.y:1592
msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: parse.y:2010 parse.y:2025
+#: parse.y:1669
+msgid "invalid use of template `%D'"
+msgstr ""
+
+#: parse.y:1945 parse.y:1960
msgid "sigof type specifier"
msgstr ""
-#: parse.y:2015
+#: parse.y:1950
msgid "`sigof' applied to non-aggregate expression"
msgstr ""
-#: parse.y:2030
+#: parse.y:1965
msgid "`sigof' applied to non-aggregate type"
msgstr ""
-#: parse.y:2296
+#: parse.y:2220
msgid "using `typename' outside of template"
msgstr ""
-#: parse.y:2367
+#: parse.y:2237
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2298
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2369
+#: parse.y:2300
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2371
+#: parse.y:2302
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2373
+#: parse.y:2304
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr ""
-#: parse.y:2505
+#: parse.y:2434
msgid "no bases given following `:'"
msgstr ""
-#: parse.y:2536 parse.y:2551
+#: parse.y:2465 parse.y:2480
msgid "`%D' access"
msgstr ""
-#: parse.y:2541
+#: parse.y:2470
msgid "multiple access specifiers"
msgstr ""
-#: parse.y:2559
+#: parse.y:2488
msgid "multiple `virtual' specifiers"
msgstr ""
-#: parse.y:2596
+#: parse.y:2524
msgid "missing ';' before right brace"
msgstr ""
-#: parse.y:2817
+#: parse.y:2733
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr ""
-#: parse.y:3104 parse.y:3124 parse.y:3133 parse.y:3162
+#: parse.y:3017 parse.y:3037 parse.y:3046 parse.y:3074
msgid "`%T' is not a class or namespace"
msgstr ""
-#: parse.y:3329
+#: parse.y:3237
msgid "ISO C++ forbids label declarations"
msgstr ""
-#: parse.y:3489
+#: parse.y:3397
msgid "ISO C++ forbids computed gotos"
msgstr ""
-#: parse.y:3497
+#: parse.y:3405
msgid "label must be followed by statement"
msgstr ""
-#: parse.y:3542
+#: parse.y:3450
msgid "must have at least one catch per try block"
msgstr ""
-#: parse.y:3602
+#: parse.y:3497
msgid "ISO C++ forbids compound statements inside for initializations"
msgstr ""
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3689 parse.y:3699
+#: parse.y:3578 parse.y:3588
msgid "possibly missing ')'"
msgstr ""
-#: parse.y:3792
+#: parse.y:3679
msgid "type specifier omitted for parameter"
msgstr ""
-#: parse.y:3801
+#: parse.y:3688
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr ""
-#: parse.y:3803
+#: parse.y:3690
msgid "no type `%D' in `%T'"
msgstr ""
-#: parse.y:3806
+#: parse.y:3693
#, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr ""
-#: parse.y:3814
+#: parse.y:3701
msgid "'%D' is used as a type, but is not defined as a type."
msgstr ""
-#: cp/pt.c:212
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr ""
-#: cp/pt.c:224
+#: cp/pt.c:296
msgid "invalid member template declaration `%D'"
msgstr ""
-#: cp/pt.c:619
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr ""
-#: cp/pt.c:631
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:706
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr ""
-#: cp/pt.c:707
+#: cp/pt.c:793 cp/pt.c:834
msgid " from definition of `%#D'"
msgstr ""
-#: cp/pt.c:715
+#: cp/pt.c:801
msgid "specialization of `%T' after instantiation"
msgstr ""
-#: cp/pt.c:718
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr ""
+
+#: cp/pt.c:860
msgid "explicit specialization of non-template `%T'"
msgstr ""
-#: cp/pt.c:850
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr ""
-#: cp/pt.c:953
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1004
+#: cp/pt.c:1147
msgid "`%D' is not a function template"
msgstr ""
-#: cp/pt.c:1127
+#: cp/pt.c:1295
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr ""
-#: cp/pt.c:1135
+#: cp/pt.c:1303
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1362 cp/pt.c:1436
+#: cp/pt.c:1530 cp/pt.c:1604
msgid "template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/pt.c:1375
+#: cp/pt.c:1543
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1381
+#: cp/pt.c:1549
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1387
+#: cp/pt.c:1555
msgid "too many template parameter lists in declaration of `%D'"
msgstr ""
-#: cp/pt.c:1403
+#: cp/pt.c:1571
msgid "too few template parameter lists in declaration of `%D'"
msgstr ""
-#: cp/pt.c:1420
+#: cp/pt.c:1588
msgid "explicit specialization not preceded by `template <>'"
msgstr ""
-#: cp/pt.c:1433
+#: cp/pt.c:1601
msgid "partial specialization `%D' of function template"
msgstr ""
-#: cp/pt.c:1465
+#: cp/pt.c:1633
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1469
+#: cp/pt.c:1637
msgid "template specialization with C linkage"
msgstr ""
@@ -16140,99 +16845,99 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1557
+#: cp/pt.c:1724
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1601
+#: cp/pt.c:1768
msgid "no member function `%D' declared in `%T'"
msgstr ""
#. There are two many template parameter lists.
-#: cp/pt.c:1749
+#: cp/pt.c:1918
msgid "too many template parameter lists in declaration of `%T'"
msgstr ""
-#: cp/pt.c:1845
+#: cp/pt.c:2014
msgid " shadows template parm `%#D'"
msgstr ""
-#: cp/pt.c:2249
+#: cp/pt.c:2418
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2253
+#: cp/pt.c:2422
msgid " `%D'"
msgstr ""
-#: cp/pt.c:2265
+#: cp/pt.c:2434
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2290
+#: cp/pt.c:2459
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2333
+#: cp/pt.c:2503
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2421
+#: cp/pt.c:2591
msgid "no default argument for `%D'"
msgstr ""
-#: cp/pt.c:2574
+#: cp/pt.c:2744
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2577
+#: cp/pt.c:2747
msgid "template class without a name"
msgstr ""
-#: cp/pt.c:2654
+#: cp/pt.c:2824
msgid "`%D' does not declare a template type"
msgstr ""
-#: cp/pt.c:2660
+#: cp/pt.c:2830
msgid "template definition of non-template `%#D'"
msgstr ""
-#: cp/pt.c:2701
+#: cp/pt.c:2871
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr ""
-#: cp/pt.c:2713
+#: cp/pt.c:2883
msgid "got %d template parameters for `%#D'"
msgstr ""
-#: cp/pt.c:2716
+#: cp/pt.c:2886
msgid "got %d template parameters for `%#T'"
msgstr ""
-#: cp/pt.c:2718
+#: cp/pt.c:2888
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:2799
+#: cp/pt.c:2978
msgid "`%T' is not a template type"
msgstr ""
-#: cp/pt.c:2815
+#: cp/pt.c:2994
msgid "previous declaration `%D'"
msgstr ""
-#: cp/pt.c:2816
+#: cp/pt.c:2995
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr ""
-#: cp/pt.c:2832
+#: cp/pt.c:3011
msgid "template parameter `%#D'"
msgstr ""
-#: cp/pt.c:2833
+#: cp/pt.c:3012
msgid "redeclared here as `%#D'"
msgstr ""
@@ -16240,731 +16945,721 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2843
+#: cp/pt.c:3022
msgid "redefinition of default argument for `%#D'"
msgstr ""
-#: cp/pt.c:2844
+#: cp/pt.c:3023
msgid " original definition appeared here"
msgstr ""
-#: cp/pt.c:2937
+#: cp/pt.c:3116
#, c-format
msgid "`%E' is not a valid template argument"
msgstr ""
-#: cp/pt.c:2941
+#: cp/pt.c:3120
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:2943
+#: cp/pt.c:3122
msgid "it must be the address of an object with external linkage"
msgstr ""
-#: cp/pt.c:2947
+#: cp/pt.c:3126
msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr ""
-#: cp/pt.c:2958
+#: cp/pt.c:3137
#, c-format
msgid ""
"string literal %E is not a valid template argument because it is the address "
"of an object with static linkage"
msgstr ""
-#: cp/pt.c:2970
+#: cp/pt.c:3149
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2981
+#: cp/pt.c:3160
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2988
+#: cp/pt.c:3167
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:3368
+#: cp/pt.c:3542
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr ""
-#: cp/pt.c:3381 cp/pt.c:3397 cp/pt.c:3436
+#: cp/pt.c:3555 cp/pt.c:3571 cp/pt.c:3610
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr ""
-#: cp/pt.c:3384
+#: cp/pt.c:3558
msgid " expected a constant of type `%T', got `%T'"
msgstr ""
-#: cp/pt.c:3388
+#: cp/pt.c:3562
#, c-format
msgid " expected a type, got `%E'"
msgstr ""
-#: cp/pt.c:3400
+#: cp/pt.c:3574
msgid " expected a type, got `%T'"
msgstr ""
-#: cp/pt.c:3402
+#: cp/pt.c:3576
msgid " expected a class template, got `%T'"
msgstr ""
-#: cp/pt.c:3438
+#: cp/pt.c:3612
msgid " expected a template of type `%D', got `%D'"
msgstr ""
-#: cp/pt.c:3460
+#: cp/pt.c:3634
msgid "template-argument `%T' uses anonymous type"
msgstr ""
-#: cp/pt.c:3463
+#: cp/pt.c:3637
msgid "template-argument `%T' uses local type `%T'"
msgstr ""
-#: cp/pt.c:3498
+#: cp/pt.c:3647
+msgid "template-argument `%T' is a variably modified type"
+msgstr ""
+
+#: cp/pt.c:3682
msgid "could not convert template argument `%E' to `%T'"
msgstr ""
-#: cp/pt.c:3542
+#: cp/pt.c:3726
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3546
+#: cp/pt.c:3730
msgid "provided for `%D'"
msgstr ""
-#: cp/pt.c:3593
+#: cp/pt.c:3777
#, c-format
msgid "template argument %d is invalid"
msgstr ""
-#: cp/pt.c:3825
+#: cp/pt.c:4013
msgid "non-template used as template"
msgstr ""
-#: cp/pt.c:3943
+#: cp/pt.c:4155
msgid "`%T' is not a template"
msgstr ""
-#: cp/pt.c:3956
+#: cp/pt.c:4168
msgid "non-template type `%T' used as a template"
msgstr ""
-#: cp/pt.c:3958
+#: cp/pt.c:4170
msgid "for template declaration `%D'"
msgstr ""
-#: cp/pt.c:4521
+#: cp/pt.c:4795
msgid ""
"template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN "
"to increase the maximum) instantiating `%D'"
msgstr ""
-#: cp/pt.c:4961
+#: cp/pt.c:5272
msgid "ambiguous class template instantiation for `%#T'"
msgstr ""
-#: cp/pt.c:4968
+#: cp/pt.c:5279
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:5993 cp/pt.c:6098
+#: cp/pt.c:6326 cp/pt.c:6438
msgid "instantiation of `%D' as type `%T'"
msgstr ""
-#: cp/pt.c:6140
+#: cp/pt.c:6482
msgid "invalid parameter type `%T'"
msgstr ""
-#: cp/pt.c:6142
+#: cp/pt.c:6484
msgid "in declaration `%D'"
msgstr ""
-#: cp/pt.c:6217
+#: cp/pt.c:6559
msgid "creating pointer to member function of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6380
+#: cp/pt.c:6722
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6394
+#: cp/pt.c:6736
#, c-format
msgid "creating array with size zero (`%E')"
msgstr ""
-#: cp/pt.c:6633
+#: cp/pt.c:6975
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:6635
+#: cp/pt.c:6977
msgid "forming %s to reference type `%T'"
msgstr ""
-#: cp/pt.c:6673
+#: cp/pt.c:7015
msgid "creating pointer to member of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6679
+#: cp/pt.c:7021
msgid "creating pointer to member reference type `%T'"
msgstr ""
-#: cp/pt.c:6757
+#: cp/pt.c:7099
msgid "creating array of `%T'"
msgstr ""
-#: cp/pt.c:6800
+#: cp/pt.c:7142
msgid "`%T' is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:6910
+#: cp/pt.c:7255
#, c-format
msgid "use of `%s' in template"
msgstr ""
-#: cp/pt.c:7669
+#: cp/pt.c:8017
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr ""
-#: cp/pt.c:7670
+#: cp/pt.c:8018
msgid " trying to instantiate `%D'"
msgstr ""
-#: cp/pt.c:8100
+#: cp/pt.c:8463
msgid "incomplete type unification"
msgstr ""
-#: cp/pt.c:9067
+#: cp/pt.c:9451
#, c-format
msgid "use of `%s' in template type unification"
msgstr ""
-#: cp/pt.c:9487 cp/pt.c:9555
+#: cp/pt.c:9885 cp/pt.c:9957
msgid "explicit instantiation of non-template `%#D'"
msgstr ""
-#: cp/pt.c:9503 cp/pt.c:9550
+#: cp/pt.c:9901 cp/pt.c:9952
msgid "no matching template for `%D' found"
msgstr ""
-#: cp/pt.c:9509
+#: cp/pt.c:9907
msgid "explicit instantiation of `%#D'"
msgstr ""
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9526
-msgid "explicit instantiation of `%#D' after"
-msgstr ""
-
-#: cp/pt.c:9527 cp/pt.c:9664
-msgid "explicit specialization here"
-msgstr ""
-
-#: cp/pt.c:9542
+#: cp/pt.c:9944
msgid "duplicate explicit instantiation of `%#D'"
msgstr ""
-#: cp/pt.c:9567
+#: cp/pt.c:9969
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9571 cp/pt.c:9649
+#: cp/pt.c:9973 cp/pt.c:10063
msgid "storage class `%D' applied to template instantiation"
msgstr ""
-#: cp/pt.c:9616
+#: cp/pt.c:10030
msgid "explicit instantiation of non-template type `%T'"
msgstr ""
-#: cp/pt.c:9630
+#: cp/pt.c:10044
msgid "explicit instantiation of `%#T' before definition of template"
msgstr ""
-#: cp/pt.c:9638
+#: cp/pt.c:10052
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9663
-msgid "explicit instantiation of `%#T' after"
-msgstr ""
-
-#: cp/pt.c:9681
+#: cp/pt.c:10096
msgid "duplicate explicit instantiation of `%#T'"
msgstr ""
-#: cp/pt.c:10043
+#: cp/pt.c:10476
msgid "explicit instantiation of `%D' but no definition available"
msgstr ""
-#: cp/pt.c:10415
+#: cp/pt.c:10890
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr ""
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr ""
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr ""
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr ""
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr ""
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid ""
"cannot create type information for type `%T' because its size is variable"
msgstr ""
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr ""
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr ""
-#: cp/search.c:340
-msgid "`%T' is an inaccessible base of `%T'"
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
msgstr ""
#: cp/search.c:350
-msgid "`%T' is an ambiguous base of `%T'"
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr ""
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
msgstr ""
-#: cp/search.c:1818
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
msgstr ""
-#: cp/search.c:1822 cp/search.c:1829
+#: cp/search.c:2054 cp/search.c:2061
msgid "invalid covariant return type for `%#D'"
msgstr ""
-#: cp/search.c:1823
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr ""
-#: cp/search.c:1830
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
msgstr ""
-#: cp/search.c:1835
+#: cp/search.c:2067
msgid "conflicting return type specified for `%#D'"
msgstr ""
-#: cp/search.c:1836
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr ""
-#: cp/search.c:1845
+#: cp/search.c:2077
#, c-format
msgid "looser throw specifier for `%#F'"
msgstr ""
-#: cp/search.c:1846
+#: cp/search.c:2078
#, c-format
msgid " overriding `%#F'"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1936
+#: cp/search.c:2167
msgid "`%#D' cannot be declared"
msgstr ""
-#: cp/search.c:1937
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr ""
-#: cp/search.c:2078
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr ""
-#: cp/semantics.c:894
+#: cp/semantics.c:919
#, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr ""
-#: cp/semantics.c:1026
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
msgstr ""
-#: cp/semantics.c:1035
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr ""
-#: cp/semantics.c:1043
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr ""
-#: cp/semantics.c:1110
-msgid "base initializer for `%T'"
-msgstr ""
-
-#: cp/semantics.c:1112
-msgid " will be re-ordered to precede member initializations"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
msgstr ""
-#: cp/semantics.c:1300
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr ""
-#: cp/semantics.c:1306
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr ""
-#: cp/semantics.c:1308
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr ""
-#: cp/semantics.c:1346
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr ""
-#: cp/semantics.c:1382
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr ""
-#: cp/semantics.c:1388
+#: cp/semantics.c:1425
msgid "`%E' is not of type `%T'"
msgstr ""
-#: cp/semantics.c:1581
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr ""
-#: cp/semantics.c:1643
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
+
+#: cp/semantics.c:1694
msgid "definition of `%#T' inside template parameter list"
msgstr ""
-#: cp/semantics.c:1659
+#: cp/semantics.c:1710
msgid "invalid definition of qualified type `%T'"
msgstr ""
-#: cp/semantics.c:2008
+#: cp/semantics.c:2053
msgid "invalid base-class specification"
msgstr ""
-#: cp/semantics.c:2017
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2050
+#: cp/semantics.c:2093
msgid "multiple declarators in template declaration"
msgstr ""
-#: cp/spew.c:239
+#: cp/semantics.c:2120
+#, c-format
+msgid "type of `%E' is unknown"
+msgstr ""
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr ""
-#: cp/spew.c:1017 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr ""
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr ""
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr ""
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr ""
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr ""
-#: cp/spew.c:1435
+#: cp/spew.c:1483
msgid "invalid type `%T' for default argument to `%T'"
msgstr ""
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr ""
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr ""
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr ""
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, c-format
msgid "%s before `%s' token"
msgstr ""
-#: cp/tree.c:223
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr ""
-#: cp/tree.c:577
+#: cp/tree.c:564
msgid "`%V' qualifiers cannot be applied to `%T'"
msgstr ""
-#: cp/tree.c:580
-msgid "ignoring `%V' qualifiers on `%T'"
-msgstr ""
-
-#: cp/tree.c:1921
+#: cp/tree.c:1943
#, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr ""
-#: cp/tree.c:1951
+#: cp/tree.c:1973
#, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr ""
-#: cp/tree.c:1957
+#: cp/tree.c:1979
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1982
+#: cp/tree.c:2004
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:2003
+#: cp/tree.c:2025
#, c-format
msgid ""
"can only use `%s' attribute on file-scope definitions of objects of class "
"type"
msgstr ""
-#: cp/tree.c:2011
+#: cp/tree.c:2033
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:2021
+#: cp/tree.c:2043
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:2031
+#: cp/tree.c:2053
#, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr ""
-#: cp/typeck.c:518
+#: cp/tree.c:2566
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.c:524
#, c-format
msgid ""
"ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
msgstr ""
-#: cp/typeck.c:539
+#: cp/typeck.c:545
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr ""
-#: cp/typeck.c:1432
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr ""
-#: cp/typeck.c:1502
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr ""
-
-#: cp/typeck.c:1508
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr ""
-
#: cp/typeck.c:1514
-msgid ""
-"ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr ""
-
-#: cp/typeck.c:1528
-msgid "`sizeof' applied to non-static member"
+#, c-format
+msgid "invalid application of `%s' to a member function"
msgstr ""
-#: cp/typeck.c:1533
-msgid "`sizeof' applied to incomplete type `%T'"
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
msgstr ""
-#: cp/typeck.c:1563
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr ""
-#: cp/typeck.c:1566
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
msgstr ""
-#: cp/typeck.c:1713
-msgid "invalid use of non-lvalue array"
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
msgstr ""
-#: cp/typeck.c:1819
-msgid "deprecated conversion from string constant to `%T'"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
msgstr ""
-#: cp/typeck.c:1837
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
msgstr ""
-#: cp/typeck.c:2031
-msgid "destructor specifier `%T::~%T' must have matching names"
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
msgstr ""
-#: cp/typeck.c:2037
-msgid "type `%T' has no destructor"
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:2054 cp/typeck.c:2145
-msgid "invalid use of type decl `%#D' as expression"
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
msgstr ""
-#: cp/typeck.c:2059
-msgid "invalid use of template `%#D' as expression"
+#: cp/typeck.c:2179
+msgid "`%T' is not a base of `%T'"
msgstr ""
-#: cp/typeck.c:2136
-msgid "`%#T' has no member named `%D'"
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr ""
+
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
msgstr ""
-#: cp/typeck.c:2186 cp/typeck.c:2215
-msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
msgstr ""
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2326
+#: cp/typeck.c:2338
msgid "`%T' is not a pointer-to-object type"
msgstr ""
-#: cp/typeck.c:2353
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
msgstr ""
-#: cp/typeck.c:2359
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr ""
-#: cp/typeck.c:2462
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: cp/typeck.c:2473
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr ""
-#: cp/typeck.c:2648 cp/typeck.c:2803
-msgid "pointer to member function called, but not in class scope"
-msgstr ""
-
-#: cp/typeck.c:2672
-msgid "object missing in call to method `%D'"
-msgstr ""
-
-#: cp/typeck.c:2721
-msgid ""
-"function `%D' declared overloaded, but no definitions appear with which to "
-"resolve it?!?"
-msgstr ""
-
-#: cp/typeck.c:2801
-msgid ""
-"invalid call to member function needing `this' in static member function "
-"scope"
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
msgstr ""
-#: cp/typeck.c:2977
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
msgstr ""
-#: cp/typeck.c:3002
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr ""
-#: cp/typeck.c:3015
+#: cp/typeck.c:2712
#, c-format
msgid "`%E' cannot be used as a function"
msgstr ""
-#: cp/typeck.c:3140
+#: cp/typeck.c:2824
msgid "too many arguments to %s `%+#D'"
msgstr ""
-#: cp/typeck.c:3181
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr ""
-#: cp/typeck.c:3248
+#: cp/typeck.c:2928
msgid "too few arguments to %s `%+#D'"
msgstr ""
-#: cp/typeck.c:3376 cp/typeck.c:3386
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr ""
-#: cp/typeck.c:3446
+#: cp/typeck.c:3126
#, c-format
msgid "division by zero in `%E / 0'"
msgstr ""
-#: cp/typeck.c:3448
+#: cp/typeck.c:3128
#, c-format
msgid "division by zero in `%E / 0.'"
msgstr ""
-#: cp/typeck.c:3478
+#: cp/typeck.c:3158
#, c-format
msgid "division by zero in `%E %% 0'"
msgstr ""
-#: cp/typeck.c:3480
+#: cp/typeck.c:3160
#, c-format
msgid "division by zero in `%E %% 0.'"
msgstr ""
-#: cp/typeck.c:3560
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3563
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3594 cp/typeck.c:3599 cp/typeck.c:3690 cp/typeck.c:3695
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr ""
-#: cp/typeck.c:3873
+#: cp/typeck.c:3553
msgid "comparison between types `%#T' and `%#T'"
msgstr ""
-#: cp/typeck.c:3909
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr ""
-#: cp/typeck.c:3974
+#: cp/typeck.c:3654
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr ""
@@ -16972,287 +17667,296 @@ msgstr ""
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:3996
+#: cp/typeck.c:3676
msgid "NULL used in arithmetic"
msgstr ""
-#: cp/typeck.c:4063
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
msgstr ""
-#: cp/typeck.c:4065
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: cp/typeck.c:4067
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: cp/typeck.c:4069
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
msgstr ""
-#: cp/typeck.c:4081
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: cp/typeck.c:4118
-msgid "attempt to take address of bit-field structure member `%D'"
+#: cp/typeck.c:3821
+#, c-format
+msgid ""
+"invalid use of '%E' to form a pointer-to-member-function. Use a qualified-"
+"id."
msgstr ""
-#: cp/typeck.c:4195
+#: cp/typeck.c:3827
+#, c-format
+msgid ""
+"parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:4398
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr ""
-#: cp/typeck.c:4410
+#: cp/typeck.c:4103
msgid "cannot %s a pointer to incomplete type `%T'"
msgstr ""
-#: cp/typeck.c:4417
+#: cp/typeck.c:4110
msgid "ISO C++ forbids %sing a pointer of type `%T'"
msgstr ""
-#: cp/typeck.c:4442
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:4476
+#: cp/typeck.c:4169
msgid "invalid use of `--' on bool variable `%D'"
msgstr ""
#. ARM $3.4
-#: cp/typeck.c:4509
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
msgstr ""
#. An expression like &memfn.
-#: cp/typeck.c:4576
+#: cp/typeck.c:4269
msgid ""
"ISO C++ forbids taking the address of an unqualified non-static member "
"function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4578
+#: cp/typeck.c:4271
msgid ""
"ISO C++ forbids taking the address of a bound member function to form a "
"pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4602
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: cp/typeck.c:4618
-msgid "unary `&'"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
msgstr ""
-#: cp/typeck.c:4738
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4751
+#: cp/typeck.c:4457
msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: cp/typeck.c:4767
+#: cp/typeck.c:4473
msgid "cannot create pointer to reference member `%D'"
msgstr ""
-#: cp/typeck.c:4835
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4851
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr ""
-#: cp/typeck.c:5071
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr ""
-#: cp/typeck.c:5079
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5118
+#: cp/typeck.c:4910
msgid ""
"invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5138
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr ""
-#: cp/typeck.c:5151
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr ""
-#: cp/typeck.c:5160
+#: cp/typeck.c:4952
msgid ""
"ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: cp/typeck.c:5166
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5193
+#: cp/typeck.c:4985
msgid ""
"invalid use of const_cast with type `%T', which is not a pointer, reference, "
"nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5196
+#: cp/typeck.c:4988
msgid ""
"invalid use of const_cast with type `%T', which is a pointer or reference to "
"a function type"
msgstr ""
-#: cp/typeck.c:5219
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5235
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5277 cp/typeck.c:5282
+#: cp/typeck.c:5069 cp/typeck.c:5074
msgid "ISO C++ forbids casting to an array type `%T'"
msgstr ""
-#: cp/typeck.c:5290
+#: cp/typeck.c:5082
msgid "invalid cast to function type `%T'"
msgstr ""
-#: cp/typeck.c:5342
+#: cp/typeck.c:5138
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr ""
-#: cp/typeck.c:5388
+#: cp/typeck.c:5184
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr ""
-#: cp/typeck.c:5557
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr ""
-#: cp/typeck.c:5599
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:5670
+#: cp/typeck.c:5472
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr ""
-#: cp/typeck.c:5677
+#: cp/typeck.c:5479
msgid "ISO C++ forbids assignment of arrays"
msgstr ""
-#: cp/typeck.c:5820
+#: cp/typeck.c:5583
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5828
+#: cp/typeck.c:5591
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5839 cp/typeck.c:5858
+#: cp/typeck.c:5602 cp/typeck.c:5621
msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:5862
+#: cp/typeck.c:5625
msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:5932
+#: cp/typeck.c:5701
msgid "invalid conversion to type `%T' from type `%T'"
msgstr ""
-#: cp/typeck.c:6097
+#: cp/typeck.c:5866
msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6100
+#: cp/typeck.c:5869
msgid "%s to non-pointer type `%T' from NULL"
msgstr ""
-#: cp/typeck.c:6108
+#: cp/typeck.c:5877
msgid "passing `%T' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6111
+#: cp/typeck.c:5880
msgid "%s to `%T' from `%T'"
msgstr ""
-#: cp/typeck.c:6121
+#: cp/typeck.c:5890
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6124
+#: cp/typeck.c:5893
msgid "%s of negative value `%E' to `%T'"
msgstr ""
-#: cp/typeck.c:6211
+#: cp/typeck.c:5986
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr ""
-#: cp/typeck.c:6214
+#: cp/typeck.c:5989
msgid "cannot convert `%T' to `%T' in %s"
msgstr ""
-#: cp/typeck.c:6301 cp/typeck.c:6303
+#: cp/typeck.c:6077 cp/typeck.c:6079
msgid "in passing argument %P of `%+D'"
msgstr ""
-#: cp/typeck.c:6417
+#: cp/typeck.c:6194
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:6424
+#: cp/typeck.c:6201
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6436
+#: cp/typeck.c:6213
msgid "reference to local variable `%D' returned"
msgstr ""
-#: cp/typeck.c:6439
+#: cp/typeck.c:6216
msgid "address of local variable `%D' returned"
msgstr ""
-#: cp/typeck.c:6470
+#: cp/typeck.c:6247
msgid "returning a value from a destructor"
msgstr ""
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6478
+#: cp/typeck.c:6255
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
#. You can't return a value from a constructor.
-#: cp/typeck.c:6481
+#: cp/typeck.c:6258
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6498
+#: cp/typeck.c:6275
msgid ""
"return-statement with no value, in function declared with a non-void return "
"type"
msgstr ""
-#: cp/typeck.c:6514
+#: cp/typeck.c:6291
msgid ""
"return-statement with a value, in function declared with a void return type"
msgstr ""
-#: cp/typeck.c:6535
+#: cp/typeck.c:6312
msgid ""
"`operator new' must not return NULL unless it is declared `throw()' (or -"
"fcheck-new is in effect)"
@@ -17262,230 +17966,182 @@ msgstr ""
msgid "type `%T' is not a base type for type `%T'"
msgstr ""
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
msgid "cannot declare field `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
msgid "invalid return type for member function `%#D'"
msgstr ""
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
msgid "invalid return type for function `%#D'"
msgstr ""
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
msgid "cannot allocate an object of type `%T'"
msgstr ""
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr ""
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr ""
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr ""
-#: cp/typeck2.c:213
-msgid "invalid use of undefined type `%#T'"
-msgstr ""
-
-#: cp/typeck2.c:214
-msgid "forward declaration of `%#T'"
-msgstr ""
-
-#: cp/typeck2.c:218
-msgid "invalid use of `%T'"
-msgstr ""
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr ""
-
-#: cp/typeck2.c:236
-msgid "invalid use of template type parameter"
-msgstr ""
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr ""
-
-#: cp/typeck2.c:301
+#: cp/typeck2.c:440
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr ""
-#: cp/typeck2.c:311
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:313
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:316 cp/typeck2.c:322 cp/typeck2.c:328
-msgid "initializer list construction invalid for `%D'"
-msgstr ""
-
-#: cp/typeck2.c:317
-msgid "due to the presence of a constructor"
-msgstr ""
-
-#: cp/typeck2.c:323 cp/typeck2.c:329
-msgid "due to non-public access of member `%D'"
-msgstr ""
-
-#: cp/typeck2.c:341
+#: cp/typeck2.c:451
msgid "comma expression used to initialize return value"
msgstr ""
-#: cp/typeck2.c:350
+#: cp/typeck2.c:460
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:412
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr ""
-
-#: cp/typeck2.c:498
+#: cp/typeck2.c:575
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:554
+#: cp/typeck2.c:631
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:561
+#: cp/typeck2.c:638
msgid "braces around scalar initializer for `%T'"
msgstr ""
-#: cp/typeck2.c:564
+#: cp/typeck2.c:641
msgid "ignoring extra initializers for `%T'"
msgstr ""
-#: cp/typeck2.c:576
+#: cp/typeck2.c:653
msgid "variable-sized object of type `%T' may not be initialized"
msgstr ""
-#: cp/typeck2.c:586
+#: cp/typeck2.c:663
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr ""
-#: cp/typeck2.c:652
+#: cp/typeck2.c:729
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:690 cp/typeck2.c:791
+#: cp/typeck2.c:767 cp/typeck2.c:872
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:707
+#: cp/typeck2.c:784
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:757
+#: cp/typeck2.c:838
msgid "initializer list for object of class with virtual base classes"
msgstr ""
-#: cp/typeck2.c:763
+#: cp/typeck2.c:844
msgid "initializer list for object of class with base classes"
msgstr ""
-#: cp/typeck2.c:769
+#: cp/typeck2.c:850
msgid "initializer list for object using virtual functions"
msgstr ""
-#: cp/typeck2.c:832 cp/typeck2.c:849
+#: cp/typeck2.c:913 cp/typeck2.c:929
msgid "missing initializer for member `%D'"
msgstr ""
-#: cp/typeck2.c:837
+#: cp/typeck2.c:918
msgid "uninitialized const member `%D'"
msgstr ""
-#: cp/typeck2.c:840
+#: cp/typeck2.c:920
msgid "member `%D' with uninitialized const fields"
msgstr ""
-#: cp/typeck2.c:843
+#: cp/typeck2.c:923
msgid "member `%D' is uninitialized reference"
msgstr ""
-#: cp/typeck2.c:886
+#: cp/typeck2.c:970
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:898
+#: cp/typeck2.c:982
msgid "no field `%D' in union being initialized"
msgstr ""
-#: cp/typeck2.c:906
+#: cp/typeck2.c:990
msgid "union `%T' with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:942
+#: cp/typeck2.c:1026
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1054
+#: cp/typeck2.c:1140
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1067
+#: cp/typeck2.c:1153
msgid "base operand of `->' has non-pointer type `%T'"
msgstr ""
-#: cp/typeck2.c:1081
+#: cp/typeck2.c:1167
msgid "result of `operator->()' yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1083
+#: cp/typeck2.c:1169
msgid "base operand of `->' is not a pointer"
msgstr ""
-#: cp/typeck2.c:1149
+#: cp/typeck2.c:1235
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr ""
-#: cp/typeck2.c:1156
+#: cp/typeck2.c:1242
msgid ""
"cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: cp/typeck2.c:1165
+#: cp/typeck2.c:1251
msgid "member type `%T::' incompatible with object type `%T'"
msgstr ""
-#: cp/typeck2.c:1202
+#: cp/typeck2.c:1288
msgid "`%T' fails to be a typedef or built-in type"
msgstr ""
-#: cp/typeck2.c:1275
+#: cp/typeck2.c:1361
#, c-format
msgid "ISO C++ forbids defining types within %s"
msgstr ""
+#: cp/typeck2.c:1486
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr ""
+
+#: cp/typeck2.c:1489
+msgid "call to function which throws incomplete type `%#T'"
+msgstr ""
+
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3874
+#: cp/cp-tree.h:3941
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
@@ -17543,11 +18199,11 @@ msgid "Export functions even if they can be inlined"
msgstr ""
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
+msgid "Only emit explicit template instantiations"
msgstr ""
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
+msgid "Only emit explicit instantiations of inline templates"
msgstr ""
#: cp/lang-options.h:84
@@ -17652,134 +18308,135 @@ msgstr ""
msgid "Don't announce deprecation of compiler features"
msgstr ""
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
msgstr ""
-#: f/bad.c:390
+#: f/bad.c:391
msgid "warning:"
msgstr ""
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
msgstr ""
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
msgstr ""
-#: f/bad.c:486 f/bad.c:504
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
msgstr ""
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
msgstr ""
-#: f/com.c:3130
+#: f/com.c:3134
#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr ""
-#: f/com.c:11614
+#: f/com.c:11625
msgid "no INTEGER type can hold a pointer on this configuration"
msgstr ""
-#: f/com.c:11835
+#: f/com.c:11846
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr ""
-#: f/com.c:11837
+#: f/com.c:11848
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
msgstr ""
-#: f/com.c:11839
+#: f/com.c:11850
msgid "properly unless they all are 32 bits wide"
msgstr ""
-#: f/com.c:11840
+#: f/com.c:11851
msgid "Please keep this in mind before you report bugs."
msgstr ""
#. I/O will probably crash.
-#: f/com.c:11848
+#: f/com.c:11859
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr ""
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11857
+#: f/com.c:11868
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
" ASSIGN statement might fail"
msgstr ""
-#: f/com.c:13691
+#: f/com.c:13683
msgid "In statement function"
msgstr ""
-#: f/com.c:13701
+#: f/com.c:13693
+#, c-format
msgid "Outside of any program unit:\n"
msgstr ""
-#: f/com.c:15408
+#: f/com.c:15322
#, no-c-format
msgid "%A from %B at %0%C"
msgstr ""
-#: f/com.c:15585
+#: f/com.c:15499
msgid "directory name must immediately follow -I"
msgstr ""
-#: f/com.c:15728
+#: f/com.c:15642
#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr ""
-#: f/com.c:15763
+#: f/com.c:15677
#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr ""
-#: f/expr.c:9613
+#: f/expr.c:9614
#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr ""
-#: f/expr.c:9663
+#: f/expr.c:9664
#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
msgstr ""
-#: f/expr.c:10524
+#: f/expr.c:10525
#, no-c-format
msgid ""
"Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr ""
-#: f/expr.c:10895
+#: f/expr.c:10896
#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
msgstr ""
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr ""
-#: f/g77spec.c:395
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr ""
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, c-format
msgid "argument to `%s' missing"
msgstr ""
-#: f/g77spec.c:412
+#: f/g77spec.c:390
msgid "no input files; unwilling to write output files"
msgstr ""
@@ -17894,21 +18551,25 @@ msgstr ""
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr ""
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr ""
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2636
+#: f/ste.c:2624
#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr ""
-#: f/ste.c:2965
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr ""
-#: f/ste.c:2993
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr ""
@@ -17917,7 +18578,7 @@ msgstr ""
msgid "Local adjustable symbol `%A' at %0"
msgstr ""
-#: f/target.c:2560
+#: f/target.c:2550
msgid "data initializer on host with different endianness"
msgstr ""
@@ -19242,226 +19903,226 @@ msgstr ""
msgid "In anything"
msgstr ""
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:988
+#: java/check-init.c:990
#, c-format
msgid "final field '%s' may not have been initialized"
msgstr ""
-#: java/class.c:568 java/class.c:593
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr ""
-#: java/class.c:744
+#: java/class.c:677
msgid "bad method signature"
msgstr ""
-#: java/class.c:793
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr ""
-#: java/class.c:795
+#: java/class.c:728
#, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr ""
-#: java/class.c:806
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr ""
-#: java/class.c:1170
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr ""
-#: java/class.c:1432
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr ""
-#: java/class.c:2138
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr ""
-#: java/decl.c:1509
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1593
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1603
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr ""
-#: java/expr.c:549
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1537
+#: java/expr.c:1534
#, c-format
msgid ""
"reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr ""
-#: java/expr.c:1566
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr ""
-#: java/expr.c:1721
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr ""
-#: java/expr.c:1858
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2062
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr ""
-#: java/expr.c:2074
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2084
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2089
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2097
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2382
+#: java/expr.c:2396
#, c-format
msgid "missing field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2388
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2411
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr ""
-#: java/expr.c:2416
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr ""
-#: java/expr.c:2423
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr ""
-#: java/expr.c:2664
+#: java/expr.c:2684
#, c-format
msgid "can't expand %s"
msgstr ""
-#: java/expr.c:2840
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr ""
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2885
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2922
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3236
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr ""
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid ""
"source file for class `%s' is newer than its matching class file. Source "
"file `%s' used instead"
msgstr ""
-#: java/jcf-parse.c:361
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr ""
-#: java/jcf-parse.c:379
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:551
+#: java/jcf-parse.c:528
#, c-format
msgid "can't reopen %s"
msgstr ""
-#: java/jcf-parse.c:556
+#: java/jcf-parse.c:533
#, c-format
msgid "can't close %s"
msgstr ""
-#: java/jcf-parse.c:638
+#: java/jcf-parse.c:619
#, c-format
msgid "cannot find file for class %s"
msgstr ""
-#: java/jcf-parse.c:650
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
msgstr ""
-#: java/jcf-parse.c:653
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
msgstr ""
-#: java/jcf-parse.c:656
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr ""
#. FIXME - where was first time
-#: java/jcf-parse.c:668
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:686
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:689
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:692
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:706
+#: java/jcf-parse.c:687
#, c-format
msgid ""
"the `java.lang.Object' that was found in `%s' didn't have the special zero-"
@@ -19470,99 +20131,104 @@ msgid ""
"info page describing how to set the classpath"
msgstr ""
-#: java/jcf-parse.c:796
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1032
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1048
+#: java/jcf-parse.c:1030
msgid "no input file specified"
msgstr ""
-#: java/jcf-parse.c:1077
+#: java/jcf-parse.c:1059
#, c-format
msgid "can't close input file %s"
msgstr ""
-#: java/jcf-parse.c:1114
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-write.c:2636
+#: java/jcf-write.c:2650
#, c-format
msgid ""
"internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:2943
+#: java/jcf-write.c:2988
msgid "field initializer type mismatch"
msgstr ""
-#: java/jcf-write.c:3352
+#: java/jcf-write.c:3419
#, c-format
msgid "can't create directory %s"
msgstr ""
-#: java/jv-scan.c:183
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr ""
+
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, c-format
msgid "can't open output file `%s'"
msgstr ""
-#: java/jv-scan.c:220
+#: java/jv-scan.c:224
#, c-format
msgid "file not found `%s'"
msgstr ""
-#: java/jvspec.c:427
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr ""
-#: java/jvspec.c:430
+#: java/jvspec.c:429
#, c-format
msgid "`%s' is not a valid class name"
msgstr ""
-#: java/jvspec.c:436
-msgid "-R requires -o"
+#: java/jvspec.c:435
+msgid "--resource requires -o"
msgstr ""
-#: java/jvspec.c:443
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr ""
-#: java/jvspec.c:450
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
msgstr ""
-#: java/jvspec.c:462
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr ""
-#: java/jvspec.c:490
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr ""
-#: java/jvspec.c:548
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr ""
-#: java/lang.c:487
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:503
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr ""
-#: java/lex.c:308
+#: java/lex.c:303
#, c-format
msgid ""
"unknown encoding: `%s'\n"
@@ -19577,268 +20243,329 @@ msgstr ""
msgid "can't mangle %s"
msgstr ""
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:747 /var/repo/gcc/gcc/java/parse.y:785
-msgid "Missing name"
+#: /home/gdr/redhat/3.gcc/gcc/java/parse-scan.y:839
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:916
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1254
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1315
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1524
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1745
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1754
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1765
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1776
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1788
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1803
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1820
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1822
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1894
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2058
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2119
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2267
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2279
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2286
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2293
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2304
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2306
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2344
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2346
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2348
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2369
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2371
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2373
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2389
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2391
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2412
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2414
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2416
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2444
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2446
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2448
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2450
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2468
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2470
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2481
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2492
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2503
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2514
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2525
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2538
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2542
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2544
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2557
+msgid "Missing term"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:749 /var/repo/gcc/gcc/java/parse.y:787
-#: /var/repo/gcc/gcc/java/parse.y:812 /var/repo/gcc/gcc/java/parse.y:996
-#: /var/repo/gcc/gcc/java/parse.y:1343 /var/repo/gcc/gcc/java/parse.y:1554
-#: /var/repo/gcc/gcc/java/parse.y:1556 /var/repo/gcc/gcc/java/parse.y:1785
-#: /var/repo/gcc/gcc/java/parse.y:1811 /var/repo/gcc/gcc/java/parse.y:1822
-#: /var/repo/gcc/gcc/java/parse.y:1833 /var/repo/gcc/gcc/java/parse.y:1845
+#: /home/gdr/redhat/3.gcc/gcc/java/parse-scan.y:841
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:690
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:728
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:753
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:937
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1289
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1500
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1502
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1730
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1756
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1767
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1778
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1790
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1805
msgid "';' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:810
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:688
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:726
+msgid "Missing name"
+msgstr ""
+
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:751
msgid "'*' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:824
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:765
msgid "Class or interface declaration expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:859 /var/repo/gcc/gcc/java/parse.y:861
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:800
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:802
msgid "Missing class name"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:864 /var/repo/gcc/gcc/java/parse.y:868
-#: /var/repo/gcc/gcc/java/parse.y:876 /var/repo/gcc/gcc/java/parse.y:1041
-#: /var/repo/gcc/gcc/java/parse.y:1289 /var/repo/gcc/gcc/java/parse.y:1291
-#: /var/repo/gcc/gcc/java/parse.y:1620 /var/repo/gcc/gcc/java/parse.y:1856
-#: /var/repo/gcc/gcc/java/parse.y:1888 /var/repo/gcc/gcc/java/parse.y:1940
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:805
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:809
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:817
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:977
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1235
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1237
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1566
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1816
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1848
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1901
msgid "'{' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:878
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:819
msgid "Missing super class name"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:888 /var/repo/gcc/gcc/java/parse.y:904
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:829
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:845
msgid "Missing interface name"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:975 /var/repo/gcc/gcc/java/parse.y:1308
-#: /var/repo/gcc/gcc/java/parse.y:1369 /var/repo/gcc/gcc/java/parse.y:1578
-#: /var/repo/gcc/gcc/java/parse.y:1800 /var/repo/gcc/gcc/java/parse.y:1809
-#: /var/repo/gcc/gcc/java/parse.y:1820 /var/repo/gcc/gcc/java/parse.y:1831
-#: /var/repo/gcc/gcc/java/parse.y:1843 /var/repo/gcc/gcc/java/parse.y:1860
-#: /var/repo/gcc/gcc/java/parse.y:1862 /var/repo/gcc/gcc/java/parse.y:1933
-#: /var/repo/gcc/gcc/java/parse.y:2104 /var/repo/gcc/gcc/java/parse.y:2166
-#: /var/repo/gcc/gcc/java/parse.y:2318 /var/repo/gcc/gcc/java/parse.y:2330
-#: /var/repo/gcc/gcc/java/parse.y:2337 /var/repo/gcc/gcc/java/parse.y:2344
-#: /var/repo/gcc/gcc/java/parse.y:2355 /var/repo/gcc/gcc/java/parse.y:2357
-#: /var/repo/gcc/gcc/java/parse.y:2395 /var/repo/gcc/gcc/java/parse.y:2397
-#: /var/repo/gcc/gcc/java/parse.y:2399 /var/repo/gcc/gcc/java/parse.y:2420
-#: /var/repo/gcc/gcc/java/parse.y:2422 /var/repo/gcc/gcc/java/parse.y:2424
-#: /var/repo/gcc/gcc/java/parse.y:2440 /var/repo/gcc/gcc/java/parse.y:2442
-#: /var/repo/gcc/gcc/java/parse.y:2463 /var/repo/gcc/gcc/java/parse.y:2465
-#: /var/repo/gcc/gcc/java/parse.y:2467 /var/repo/gcc/gcc/java/parse.y:2495
-#: /var/repo/gcc/gcc/java/parse.y:2497 /var/repo/gcc/gcc/java/parse.y:2499
-#: /var/repo/gcc/gcc/java/parse.y:2501 /var/repo/gcc/gcc/java/parse.y:2519
-#: /var/repo/gcc/gcc/java/parse.y:2521 /var/repo/gcc/gcc/java/parse.y:2532
-#: /var/repo/gcc/gcc/java/parse.y:2543 /var/repo/gcc/gcc/java/parse.y:2554
-#: /var/repo/gcc/gcc/java/parse.y:2565 /var/repo/gcc/gcc/java/parse.y:2576
-#: /var/repo/gcc/gcc/java/parse.y:2589 /var/repo/gcc/gcc/java/parse.y:2593
-#: /var/repo/gcc/gcc/java/parse.y:2595 /var/repo/gcc/gcc/java/parse.y:2608
-msgid "Missing term"
-msgstr ""
-
-#: /var/repo/gcc/gcc/java/parse.y:990
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:931
msgid "Missing variable initializer"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1007
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:948
msgid "Invalid declaration"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1013
-msgid "Can't specify array dimension in a declaration"
-msgstr ""
-
-#: /var/repo/gcc/gcc/java/parse.y:1015 /var/repo/gcc/gcc/java/parse.y:1091
-#: /var/repo/gcc/gcc/java/parse.y:2141 /var/repo/gcc/gcc/java/parse.y:2163
-#: /var/repo/gcc/gcc/java/parse.y:2167 /var/repo/gcc/gcc/java/parse.y:2202
-#: /var/repo/gcc/gcc/java/parse.y:2279 /var/repo/gcc/gcc/java/parse.y:2289
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:951
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1036
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2094
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2116
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2120
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2155
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2228
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2238
msgid "']' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1019
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:955
msgid "Unbalanced ']'"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1055
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:991
msgid "Invalid method declaration, method name required"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1061 /var/repo/gcc/gcc/java/parse.y:1063
-#: /var/repo/gcc/gcc/java/parse.y:2024
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:996
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1001
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1006
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1981
msgid "Identifier expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1066
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1011
msgid "Invalid method declaration, return type required"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1089 /var/repo/gcc/gcc/java/parse.y:1534
-#: /var/repo/gcc/gcc/java/parse.y:1541 /var/repo/gcc/gcc/java/parse.y:1550
-#: /var/repo/gcc/gcc/java/parse.y:1552 /var/repo/gcc/gcc/java/parse.y:1580
-#: /var/repo/gcc/gcc/java/parse.y:1688 /var/repo/gcc/gcc/java/parse.y:1969
-#: /var/repo/gcc/gcc/java/parse.y:2022
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1034
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1480
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1487
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1496
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1498
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1526
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1633
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1928
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1979
msgid "')' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1105
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1050
msgid "Missing formal parameter term"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1120 /var/repo/gcc/gcc/java/parse.y:1125
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1065
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1070
msgid "Missing identifier"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1145 /var/repo/gcc/gcc/java/parse.y:1154
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1090
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1099
msgid "Missing class type term"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1306
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1252
msgid "Invalid interface type"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1498 /var/repo/gcc/gcc/java/parse.y:1667
-#: /var/repo/gcc/gcc/java/parse.y:1669
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1445
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1612
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1614
msgid "':' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1520 /var/repo/gcc/gcc/java/parse.y:1525
-#: /var/repo/gcc/gcc/java/parse.y:1530
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1466
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1471
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1476
msgid "Invalid expression statement"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1548 /var/repo/gcc/gcc/java/parse.y:1576
-#: /var/repo/gcc/gcc/java/parse.y:1616 /var/repo/gcc/gcc/java/parse.y:1684
-#: /var/repo/gcc/gcc/java/parse.y:1752 /var/repo/gcc/gcc/java/parse.y:1858
-#: /var/repo/gcc/gcc/java/parse.y:1926 /var/repo/gcc/gcc/java/parse.y:2016
-#: /var/repo/gcc/gcc/java/parse.y:2018 /var/repo/gcc/gcc/java/parse.y:2026
-#: /var/repo/gcc/gcc/java/parse.y:2262 /var/repo/gcc/gcc/java/parse.y:2264
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1494
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1522
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1562
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1629
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1697
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1818
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1887
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1973
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1975
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1983
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2211
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2213
msgid "'(' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1618
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1564
msgid "Missing term or ')'"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1665
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1610
msgid "Missing or invalid constant expression"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1686
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1631
msgid "Missing term and ')' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1725
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1670
msgid "Invalid control expression"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1727 /var/repo/gcc/gcc/java/parse.y:1729
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1672
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1674
msgid "Invalid update expression"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1754
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1699
msgid "Invalid init statement"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1929
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1890
msgid "Missing term or ')' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1971
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1930
msgid "'class' or 'this' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:1973 /var/repo/gcc/gcc/java/parse.y:1975
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1932
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1934
msgid "'class' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2020
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:1977
msgid "')' or term expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2139
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2092
msgid "'[' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2217
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2169
msgid "Field expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2274 /var/repo/gcc/gcc/java/parse.y:2284
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2223
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2233
msgid "Missing term and ']' expected"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2388
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2337
msgid "']' expected, invalid type expression"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2391
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2340
msgid "Invalid type expression"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2503
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2452
msgid "Invalid reference type"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2981
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2930
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2983
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2932
msgid "Only constructors can invoke constructors"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:2992
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:2941
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:3052 /var/repo/gcc/gcc/java/parse.y:3054
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:3001
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:3003
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:6833
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:6818
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:6904
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:6889
#, c-format
msgid ""
"Can't find default package `%s'. Check the CLASSPATH environment variable "
"and the access to the archives"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:12228
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:12291
#, c-format
msgid "missing static field `%s'"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:12233
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:12296
#, c-format
msgid "not a static field `%s'"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:12276
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:12339
#, c-format
msgid "No case for %s"
msgstr ""
-#: /var/repo/gcc/gcc/java/parse.y:13122
+#: /home/gdr/redhat/3.gcc/gcc/java/parse.y:13304
#, c-format
msgid "unregistered operator %s"
msgstr ""
@@ -19847,16 +20574,20 @@ msgstr ""
msgid "junk at end of signature string"
msgstr ""
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -19925,122 +20656,132 @@ msgstr ""
msgid "Use offset tables for virtual method calls"
msgstr ""
-#: objc/objc-act.c:567
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr ""
-
-#: objc/objc-act.c:718
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:762
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:843
+#: objc/objc-act.c:914
#, c-format
msgid "`%s' cannot be statically allocated"
msgstr ""
-#: objc/objc-act.c:900
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr ""
-#: objc/objc-act.c:905
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr ""
-#: objc/objc-act.c:957
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr ""
-#: objc/objc-act.c:979 objc/objc-act.c:5187
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr ""
-#: objc/objc-act.c:1237 objc/objc-act.c:5705 objc/objc-act.c:6035
-#: objc/objc-act.c:6084 objc/objc-act.c:6120 objc-parse.y:1764
+#: objc/objc-act.c:1289 objc/objc-act.c:5873 objc/objc-act.c:6198
+#: objc/objc-act.c:6247 objc/objc-act.c:6283 objc-parse.y:1799
#, c-format
msgid "cannot find interface declaration for `%s'"
msgstr ""
-#: objc/objc-act.c:1262
+#: objc/objc-act.c:1328
#, c-format
msgid "cannot find reference tag for class `%s'"
msgstr ""
-#: objc/objc-act.c:2272
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
#, c-format
msgid "cannot find class `%s'"
msgstr ""
-#: objc/objc-act.c:2274
+#: objc/objc-act.c:2366
#, c-format
msgid "class `%s' already exists"
msgstr ""
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2398
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr ""
-#: objc/objc-act.c:2405
+#: objc/objc-act.c:2480
#, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr ""
-#: objc/objc-act.c:3458 objc/objc-act.c:3475
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:4668
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr ""
-#: objc/objc-act.c:4834
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr ""
-#: objc/objc-act.c:4865 objc/objc-act.c:4891 objc/objc-act.c:4939
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr ""
-#: objc/objc-act.c:4871 objc/objc-act.c:7155
+#: objc/objc-act.c:4983 objc/objc-act.c:7321
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr ""
-#: objc/objc-act.c:4969
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr ""
-#: objc/objc-act.c:4970 objc/objc-act.c:5014
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr ""
-#: objc/objc-act.c:4987
+#: objc/objc-act.c:5099
#, c-format
msgid "method `%s' not implemented by protocol"
msgstr ""
-#: objc/objc-act.c:4996
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr ""
-#: objc/objc-act.c:5013
+#: objc/objc-act.c:5125
msgid "cannot find method"
msgstr ""
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr ""
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -20050,111 +20791,115 @@ msgstr ""
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5256
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr ""
-#: objc/objc-act.c:5506
+#: objc/objc-act.c:5678
#, c-format
msgid "duplicate definition of class method `%s'"
msgstr ""
-#: objc/objc-act.c:5512
+#: objc/objc-act.c:5684
#, c-format
msgid "duplicate declaration of class method `%s'"
msgstr ""
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5720
#, c-format
msgid "duplicate definition of instance method `%s'"
msgstr ""
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5726
#, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr ""
-#: objc/objc-act.c:5594
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr ""
-#: objc/objc-act.c:5680
+#: objc/objc-act.c:5896
#, c-format
-msgid "instance variable `%s' is declared private"
+msgid "instance variable '%s' is declared private"
msgstr ""
-#: objc/objc-act.c:5727
+#: objc/objc-act.c:5902
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr ""
-#: objc/objc-act.c:5737
+#: objc/objc-act.c:5912
msgid "static access to object of type `id'"
msgstr ""
-#: objc/objc-act.c:5774 objc/objc-act.c:5867
+#: objc/objc-act.c:5937 objc/objc-act.c:6030
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr ""
-#: objc/objc-act.c:5778 objc/objc-act.c:5872
+#: objc/objc-act.c:5941 objc/objc-act.c:6035
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr ""
-#: objc/objc-act.c:5783 objc/objc-act.c:5877
+#: objc/objc-act.c:5946 objc/objc-act.c:6040
#, c-format
msgid "method definition for `%c%s' not found"
msgstr ""
-#: objc/objc-act.c:5921
+#: objc/objc-act.c:6084
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:5979 objc/objc-act.c:8060
+#: objc/objc-act.c:6142 objc/objc-act.c:8252
msgid "`@end' missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6007
+#: objc/objc-act.c:6170
#, c-format
msgid "reimplementation of class `%s'"
msgstr ""
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6212
#, c-format
msgid "conflicting super class name `%s'"
msgstr ""
-#: objc/objc-act.c:6064
+#: objc/objc-act.c:6227
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr ""
-#: objc/objc-act.c:6346
+#: objc/objc-act.c:6509
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr ""
-#: objc/objc-act.c:7196
+#: objc/objc-act.c:7366
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8162 objc/objc-act.c:8178
+#: objc/objc-act.c:8357 objc/objc-act.c:8373
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr ""
-#: objc-parse.y:2617
+#: objc-parse.y:2656
msgid "`@end' must appear in an implementation context"
msgstr ""
-#: objc-parse.y:2891
+#: objc-parse.y:2932
msgid "method definition not in class context"
msgstr ""
+#: op27972.c:6659
+msgid "syntax error; also virtual memory exhausted"
+msgstr ""
+
#: objc/lang-options.h:27
msgid "Dump decls to a .decl file"
msgstr ""
@@ -20183,169 +20928,172 @@ msgstr ""
msgid "Specify the name of the class for constant strings"
msgstr ""
-#: config/nextstep.h:160 config/nextstep.h:163
-msgid "-p profiling is no longer supported. Use -pg instead"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
msgstr ""
-#: config/arm/arm.h:211
-msgid "-mapcs-26 and -mapcs-32 may not be used together"
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
msgstr ""
-#: config/arm/arm.h:223
-msgid "-msoft-float and -mhard_float may not be used together"
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
msgstr ""
-#: config/arm/arm.h:234
-msgid "-mbig-endian and -mlittle-endian may not be used together"
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
msgstr ""
-#: config/arm/arm.h:252
-msgid "incompatible interworking options"
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
msgstr ""
-#: config/sparc/freebsd.h:31 config/ia64/freebsd.h:23
-#: config/alpha/freebsd.h:35 config/i386/freebsd-aout.h:223
-msgid "`-p' not supported; use `-pg' and gprof(1)"
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
msgstr ""
-#: config/sparc/linux64.h:254 config/sparc/linux64.h:265
-#: config/sparc/netbsd-elf.h:153 config/sparc/netbsd-elf.h:172
-#: config/sparc/sol2-bi.h:238 config/sparc/sol2-bi.h:248
-msgid "may not use both -m32 and -m64"
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: config/mcore/mcore.h:60
-msgid "choose either big or little endian, not both"
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/mcore/mcore.h:63
-msgid "choose either m340 or m210 not both"
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/mcore/mcore.h:64
-msgid "the m210 does not have little endian support"
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: gcc.c:673 f/lang-specs.h:35
-msgid "GNU C does not support -C without using -E"
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: gcc.c:674 f/lang-specs.h:36
-msgid "GNU C does not support -CC without using -E"
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: gcc.c:701 java/jvspec.c:77 ada/lang-specs.h:38
-msgid "-pg and -fomit-frame-pointer are incompatible"
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
msgstr ""
-#: gcc.c:846
-msgid "-E required when input is from standard input"
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: gcc.c:850
-msgid "compilation of header file requested"
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
-msgid "-mhard-float not supported"
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
-msgid "-msingle-float and -msoft-float can not both be specified"
+#: config/sparc/freebsd.h:42 config/rs6000/sysv4.h:1122
+#: config/ia64/freebsd.h:23 config/alpha/freebsd.h:45
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
msgstr ""
-#: config/i386/cygwin.h:106
-msgid "mno-cygwin and mno-win32 are not compatible"
+#: config/arm/arm.h:178
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr ""
-#: config/i386/cygwin.h:161 config/i386/mingw32.h:69
-msgid "shared and mdll are not compatible"
+#: config/arm/arm.h:180
+msgid "-msoft-float and -mhard_float may not be used together"
msgstr ""
-#: ada/lang-specs.h:41
-msgid "-c or -S required for Ada"
+#: config/arm/arm.h:182
+msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr ""
-#: java/lang-specs.h:33
-msgid "-fjni and -femit-class-files are incompatible"
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:181 config/sparc/sol2-bi.h:191
+msgid "may not use both -m32 and -m64"
msgstr ""
-#: java/lang-specs.h:34
-msgid "-fjni and -femit-class-file are incompatible"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
msgstr ""
-#: java/lang-specs.h:35 java/lang-specs.h:36
-msgid "-femit-class-file should used along with -fsyntax-only"
+#: config/i386/sco5.h:195
+msgid "-pg not supported on this platform"
msgstr ""
-#: config/i860/fx2800.h:290
-msgid "-p option not supported: use -pg instead"
+#: config/i386/sco5.h:196
+msgid "-p and -pp specified - pick one"
msgstr ""
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
msgstr ""
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
+#: f/lang-specs.h:38 gcc.c:706
+msgid "GNU C does not support -C without using -E"
msgstr ""
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
+#: f/lang-specs.h:39 gcc.c:707
+msgid "GNU C does not support -CC without using -E"
msgstr ""
-#: config/arc/arc.h:59 config/mips/mips.h:1004
-msgid "may not use both -EB and -EL"
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
msgstr ""
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
msgstr ""
-#: config/mips/mips.h:834
-msgid "-pipe is not supported"
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
msgstr ""
-#: config/mips/mips.h:1000
-msgid "may not use both -mfp64 and -msingle-float"
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
msgstr ""
-#: config/mips/mips.h:1001
-msgid "may not use both -mfp64 and -m4650"
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/mips/mips.h:1003
-msgid "may not use both -mgp32 and -mfp64"
+#: java/jvspec.c:77 gcc.c:733 ada/lang-specs.h:38
+msgid "-pg and -fomit-frame-pointer are incompatible"
msgstr ""
-#: config/i386/sco5.h:658 config/i386/sco5.h:729
-msgid "-static not valid with -mcoff"
+#: gcc.c:864
+msgid "-E required when input is from standard input"
msgstr ""
-#: config/i386/sco5.h:659 config/i386/sco5.h:730
-msgid "-shared not valid with -mcoff"
+#: gcc.c:868
+msgid "compilation of header file requested"
msgstr ""
-#: config/i386/sco5.h:660 config/i386/sco5.h:731
-msgid "-symbolic not valid with -mcoff"
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
msgstr ""
-#: config/i386/sco5.h:696
-msgid "-fpic is not valid with -mcoff"
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
msgstr ""
-#: config/i386/sco5.h:697
-msgid "-fPIC is not valid with -mcoff"
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
msgstr ""
-#: config/i386/sco5.h:732
-msgid "-fpic not valid with -mcoff"
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
msgstr ""
-#: config/i386/sco5.h:733
-msgid "-fPIC not valid with -mcoff"
+#: config/mips/r3900.h:35
+msgid "-mhard-float not supported"
msgstr ""
-#: config/mmix/mmix.h:112
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#: config/mips/r3900.h:37
+msgid "-msingle-float and -msoft-float can not both be specified"
msgstr ""
diff --git a/gcc/po/ja.po b/gcc/po/ja.po
index 18e3bc80a99..252f310e888 100644
--- a/gcc/po/ja.po
+++ b/gcc/po/ja.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gcc 3.0\n"
-"POT-Creation-Date: 2001-12-20 04:18-0500\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
"PO-Revision-Date: 2001-12-05 22:47+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
@@ -15,129 +15,59 @@ msgstr ""
"Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
-#: attribs.c:306
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr "`%s' °À­¤Îµ¿»÷Ì¿Î᤬̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: attribs.c:314
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "`%s' °À­¤Ë»ØÄꤵ¤ì¤¿°ú¿ô¤Î¸Ä¿ô¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: attribs.c:331
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
msgstr "`%s' °À­¤Ï·¿¤Ë¤ÏŬÍѤµ¤ì¤Þ¤»¤ó"
-#: attribs.c:361
+#: attribs.c:247
#, fuzzy, c-format
msgid "`%s' attribute only applies to function types"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-#: attribs.c:451 attribs.c:473 attribs.c:495 attribs.c:526 attribs.c:548
-#: attribs.c:571 attribs.c:601 attribs.c:639 attribs.c:686 attribs.c:716
-#: attribs.c:746 attribs.c:769 attribs.c:1015 attribs.c:1071 attribs.c:1127
-#: attribs.c:1153 attribs.c:1353 config/arm/arm.c:2005 config/arm/arm.c:2033
-#: config/avr/avr.c:4691 config/h8300/h8300.c:3205 config/h8300/h8300.c:3230
-#: config/i386/i386.c:1256 config/i386/winnt.c:74
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: attribs.c:802
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-
-#: attribs.c:805
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "¥â¡¼¥É `%s' ¤ËÂФ¹¤ë¥Ç¡¼¥¿·¿¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: attribs.c:838
-msgid "section attribute cannot be specified for local variables"
-msgstr "section °À­¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤ËÂФ·¤Æ¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-
-#: attribs.c:849
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-
-#: attribs.c:858
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: attribs.c:865
-msgid "section attributes are not supported for this target"
-msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: attribs.c:907
-msgid "requested alignment is not a constant"
-msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: attribs.c:912
-msgid "requested alignment is not a power of 2"
-msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: attribs.c:917
-msgid "requested alignment is too large"
-msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¹¤®¤Þ¤¹"
-
-#: attribs.c:944
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-
-#: attribs.c:989
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "`%s' ¤¬Ä̾ï¤Î¤â¤Î¤È¥¨¥¤¥ê¥¢¥¹¤È¤ÎξÊý¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-
-#: attribs.c:999
-msgid "alias arg not a string"
-msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
-
-#: attribs.c:1038 attribs.c:1094
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-
-#: attribs.c:1045 attribs.c:1101
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-
-#: attribs.c:1180
-#, fuzzy, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-
-#: attribs.c:1202 attribs.c:1207
-msgid "no vector mode with the size and type specified could be found"
-msgstr ""
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr "¥ª¥Õ¥»¥Ã¥È¤¬Äê¿ôʸ»úÎó¤Î¶­³¦¤Î³°¤Ë¤¢¤ê¤Þ¤¹"
-#: builtins.c:759
+#: builtins.c:765
#, fuzzy
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:766
+#: builtins.c:772
#, fuzzy
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:773
+#: builtins.c:779
#, fuzzy
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:780
+#: builtins.c:786
#, fuzzy
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
@@ -149,1279 +79,1471 @@ msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2745
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
msgstr "__builtin_saveregs ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: builtins.c:2787
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:2793
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
-#: builtins.c:2799
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "`__builtin_args_info' ¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: builtins.c:2831
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr "`va_start' ¤¬¸ÇÄê¸Ä°ú¿ô¤Î´Ø¿ôÆâ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: builtins.c:2850
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr "`va_start' ¤ÎÆóÈÖÌܤÎÃͤ¬°ú¿ô¤ÎºÇ¸å¤Î̾Á°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2855
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "`__builtin_next_arg' ¤¬°ú¿ô̵¤·¤Ç¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿"
-#: builtins.c:2959
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "`va_start' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: builtins.c:3043
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr "`va_arg' ¤ËÂФ¹¤ëÂè°ì°ú¿ô¤¬ `va_list' ·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: builtins.c:3071
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr "`%s' ¤Ï `...' ¤Î½èÍý¤Î²áÄø¤Ç `%s' ¤Ë³Ê¾å¤²¤µ¤ì¤Þ¤·¤¿"
-#: builtins.c:3075
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr "(½¾¤Ã¤Æ¡¢`va_arg' ¤Ë¤Ï `%s' ¤ò(`%s' ¤Ç¤Ê¤¯)ÅϤµ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó)"
-#: builtins.c:3199
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr "`__builtin_frame_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:3201
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr "`__builtin_return_address' ¤Ø¤Î°ú¿ô¤¬ÉÔŬÀڤǤ¹"
-#: builtins.c:3215
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ `__builtin_frame_address' ¤Ø¤Î°ú¿ô¤Ç¤¹"
-#: builtins.c:3217
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ `__builtin_return_address' ¤Ø°ú¿ô¤Ç¤¹"
-#: builtins.c:3381
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr "`__builtin_expect' ¤Ø¤ÎÂèÆó°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:3844
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr "__builtin_longjmp ÂèÆó°ú¿ô¤Ï 1 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: builtins.c:3858
-msgid "__builtin_trap not supported by this target"
-msgstr "__builtin_trap ¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
#. just do library call, if unknown builtin
-#: builtins.c:3914 c-common.c:3605
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤Ï¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-common.c:506
+#: builtins.c:4165
+#, fuzzy
+msgid "target format does not support infinity"
+msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+
+#: c-common.c:1168
#, fuzzy, c-format
msgid "`%s' is not defined outside of function scope"
msgstr "¥é¥Ù¥ë `%s' ¤¬´Ø¿ô¤Î³°Â¦¤Î²¿¤«¤ò»²¾È¤·¤Þ¤·¤¿"
-#: c-common.c:546
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
-msgstr ""
-
-#: c-common.c:615
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
msgstr "ʸ»úÎóĹ `%d' ¤Ï¡¢Ä¹¤µ `%d' (ISO C%d ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¥Ý¡¼¥ÈÍ×·ï)¤è¤êÂ礭¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-common.c:663 ch/decl.c:4100
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr ""
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:684
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:693
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+#: c-common.c:1379
+#, fuzzy
+msgid "vector overflow in expression"
+msgstr "¼°¤ÎÀ°¿ô¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:714
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "Â礭¤ÊÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÀÚ¤êµÍ¤á¤é¤ì¤Þ¤·¤¿"
-#: c-common.c:716
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "Éé¤ÎÀ°¿ô¤¬°ÅÌÛ¤ËÉä¹ç̵¤··¿¤ËÊÑ´¹¤µ¤ì¤Þ¤·¤¿"
-#: c-common.c:763
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "°ÅÌÛ¤ÎÄê¿ôÊÑ´¹¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: c-common.c:911
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr "`%s' ¤Ç¤Î±é»»¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹"
-#: c-common.c:1202
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "¼°¤ÎÃæ¤Îʸ¤ËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-#: c-common.c:1235 ch/actions.c:1027
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "case ¥é¥Ù¥ë¤òÀ°¿ôÄê¿ô¤Ë´Ô¸µ¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:1533
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "¿¿µ¶Ãͼ°¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:1584
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:1819 c-common.c:1828
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë false ¤È¤Ê¤ê¤Þ¤¹"
-#: c-common.c:1821 c-common.c:1830
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr "¥Ç¡¼¥¿·¿¤ÎÈÏ°ÏÀ©¸Â¤Ë¤è¤Ã¤Æ¡¢Èæ³Ó¤¬¾ï¤Ë true ¤È¤Ê¤ê¤Þ¤¹"
-#: c-common.c:1896
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "Éä¹ç̵¤·¤Î¼° >= 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë true ¤Ç¤¹"
-#: c-common.c:1905
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "Éä¹ç̵¤·¤Î¼° < 0 ¤È¤¤¤¦Èæ³Ó¤Ï¾ï¤Ë false ¤Ç¤¹"
-#: c-common.c:1956 f/com.c:14834
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+
+#: c-common.c:2653
+#, fuzzy
+msgid "pointer to member function used in arithmetic"
+msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+
+#: c-common.c:2659
+#, fuzzy
+msgid "pointer to a member used in arithmetic"
+msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¹½Â¤Âη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:1960 f/com.c:14838
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤Ë¶¦ÍÑÂη¿¤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:1964 f/com.c:14842
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤ËÇÛÎ󷿤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:2079 f/com.c:14968
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
msgstr "¿¿µ¶ÃͤȤ·¤Æ»È¤ï¤ì¤ëÂåÆþ¤Î¤Þ¤ï¤ê¤Ç¤Ï¡¢´Ý³ç¸Ì¤Î»ÈÍѤò¤ª´«¤á¤·¤Þ¤¹"
-#: c-common.c:2123 c-common.c:2155
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-#: c-common.c:2271
-msgid "__alignof__ applied to an incomplete type"
+#: c-common.c:3064
+#, fuzzy
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
+
+#: c-common.c:3074
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
+
+#: c-common.c:3080
+#, fuzzy, c-format
+msgid "invalid application of `%s' to an incomplete type"
msgstr "__alignof__ ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: c-common.c:2297
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Ë `__alignof' ¤¬Å¬ÍѤµ¤ì¤Þ¤·¤¿"
-#: c-common.c:2739
+#: c-common.c:3618
#, fuzzy, c-format
msgid "cannot disable built-in function `%s'"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-common.c:3020 c-typeck.c:1767
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: c-common.c:3026 c-typeck.c:1620
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-common.c:3213
+#: c-common.c:3812
+#, fuzzy, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr "case ¤ÎÃͤȤ·¤Æ¤Î¥Ý¥¤¥ó¥¿¤Ïµö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-common.c:3219
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr "ISO C++ ¤Ç¤Ï switch ʸ¤Ç¤ÎÈϰϼ°¤Ï¶Ø¤¸¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: c-common.c:3221
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr "ISO C ¤Ç¤Ï switch ʸ¤Ç¤ÎÈϰϼ°¤Ï¶Ø¤¸¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: c-common.c:3251
+#: c-common.c:4119
msgid "empty range specified"
msgstr "¶õ¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-common.c:3302
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr "Æó½Å¤Î(¤¢¤ë¤¤¤Ï½ÅÊ£¤·¤Æ¤¤¤ë) case ¤ÎÃÍ"
-#: c-common.c:3304
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
msgstr "¤³¤ì¤¬¤½¤ÎÃͤȽÅÊ£¤·¤¿ºÇ½é¤Î¹àÌܤǤ¹"
-#: c-common.c:3308 ch/actions.c:1125
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: c-common.c:3309
+#: c-common.c:4177
msgid "previously used here"
msgstr "Á°¤Ë¤³¤³¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-common.c:3313
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr "°ì¤Ä¤Î switch ¤ËÊ£¿ô¤Î default ¥é¥Ù¥ë¤¬¤¢¤ê¤Þ¤¹"
-#: c-common.c:3314
+#: c-common.c:4182
msgid "this is the first default label"
msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹"
-#: c-common.c:3342
+#: c-common.c:4210
#, fuzzy
msgid "ISO C++ forbids taking the address of a label"
msgstr "ISO C++ ¤Ï `::main' ´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-common.c:3344
+#: c-common.c:4212
#, fuzzy
msgid "ISO C forbids taking the address of a label"
msgstr "ISO C ¤Ï¥­¥ã¥¹¥È¼°¤Î¥¢¥É¥ì¥¹É¾²Á¤ò¶Ø¤¸¤Þ¤¹"
-#: c-common.c:3937
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "-Wformat-y2k ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
+#: c-common.c:5235
+#, fuzzy, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-common.c:3939
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: c-common.c:3941
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "-Wformat-nonliteral ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "¥â¡¼¥É `%s' ¤ËÂФ¹¤ë¥Ç¡¼¥¿·¿¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-common.c:3943
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "-Wformat-security ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
+#: c-common.c:5666 c-common.c:6316
+#, fuzzy, c-format
+msgid "unable to emulate '%s'"
+msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: c-common.c:3945
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "-Wmissing-format-attribute ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "section °À­¤Ï¥í¡¼¥«¥ëÊÑ¿ô¤ËÂФ·¤Æ¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬ 2 ¤Î¤Ù¤­¾è¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¹¤®¤Þ¤¹"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "`%s' ¤¬Ä̾ï¤Î¤â¤Î¤È¥¨¥¤¥ê¥¢¥¹¤È¤ÎξÊý¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
+
+#: c-common.c:5910
+#, fuzzy
+msgid "visibility arg not a string"
+msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
-#: c-common.c:4036
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr ""
+
+#: c-common.c:5953
+#, fuzzy
+msgid "tls_model arg not a string"
+msgstr "alias °ú¿ô¤¬Ê¸»úÎó¤Ç¤Ï¤Ê¤¤"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr ""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "¼±Ê̻ҤΤʤ¤ 'defined'"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: c-common.c:6183
#, fuzzy, c-format
-msgid "declaration of `%s' shadows %s"
-msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
+msgid "`%s' attribute ignored for `%s'"
+msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-convert.c:78 c-typeck.c:1031 c-typeck.c:4129 ch/convert.c:1164
-#: cp/typeck.c:1736 cp/typeck.c:6298
-msgid "void value not ignored as it ought to be"
-msgstr "void ¤ÎÃͤ¬ËÜÍè¤Î°ÕÌ£Ä̤ê¤Ë̵»ë¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
+#: c-common.c:6248
+#, fuzzy, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: c-convert.c:110 java/typeck.c:150
-msgid "conversion to non-scalar type requested"
-msgstr "Èó¥¹¥«¥é¡¼·¿¤Ø¤ÎÊÑ´¹¤¬Í׵ᤵ¤ì¤Þ¤¹"
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr ""
+
+#: c-common.c:6403
+#, fuzzy
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
+
+#: c-common.c:6418
+#, fuzzy, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ËÉÔŬÀڤʥª¥Ú¥é¥ó¥É¿ô¤¬¤¢¤ê¤Þ¤¹"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr ""
-#: c-decl.c:458
-msgid "-traditional is deprecated and may be removed"
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
msgstr ""
-#: c-decl.c:548
+#: c-common.c:6531
#, c-format
-msgid "unknown C standard `%s'"
-msgstr "ÉÔÌÀ¤Ê C ɸ½à `%s'"
+msgid "null argument where non-null required (arg %lu)"
+msgstr ""
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+msgid "void value not ignored as it ought to be"
+msgstr "void ¤ÎÃͤ¬ËÜÍè¤Î°ÕÌ£Ä̤ê¤Ë̵»ë¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
+
+#: c-convert.c:112 java/typeck.c:150
+msgid "conversion to non-scalar type requested"
+msgstr "Èó¥¹¥«¥é¡¼·¿¤Ø¤ÎÊÑ´¹¤¬Í׵ᤵ¤ì¤Þ¤¹"
-#: c-decl.c:830
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr "ÇÛÎó `%s' ¤Ï°ìÍ×ÁǤò»ý¤Ã¤Æ¤¤¤ë¤â¤Î¤È¸«¤Ê¤µ¤ì¤Þ¤¹"
-#: c-decl.c:1006
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "¥¹¥³¡¼¥×¤¬½ª¤ï¤ë¤³¤Î°ÌÃ֤ǡ¢`struct %s' ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: c-decl.c:1009
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "¥¹¥³¡¼¥×¤¬½ª¤ï¤ë¤³¤ÎÉôʬ¤Ç `union %s' ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: c-decl.c:1012
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "¥¹¥³¡¼¥×¤¬½ª¤ï¤ë¤³¤ÎÉôʬ¤Ç `enum %s' ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: c-decl.c:1126 c-decl.c:1267 ch/decl.c:2920 java/decl.c:1383
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:1132 c-decl.c:1274 ch/decl.c:2926 java/decl.c:1389
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:1391 cp/decl.c:3119
+#: c-decl.c:893 cp/decl.c:3335
#, fuzzy, c-format
msgid "function `%s' redeclared as inline"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1393 cp/decl.c:3121
+#: c-decl.c:895 cp/decl.c:3337
#, fuzzy, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: c-decl.c:1400 cp/decl.c:3128
+#: c-decl.c:902 cp/decl.c:3344
#, fuzzy, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr "´Ø¿ô `%s' ¤Ï¥Ö¥í¥Ã¥¯Æâ¤ÎÁ°Êý¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1402 cp/decl.c:3130
+#: c-decl.c:904 cp/decl.c:3346
#, fuzzy, c-format
msgid "previous declaration of function `%s' was inline"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: c-decl.c:1431 c-decl.c:1484
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1433
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:1439
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1443 c-decl.c:1446
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1450 objc/objc-act.c:2334 objc/objc-act.c:6028
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1451 c-decl.c:1633 c-decl.c:1782 objc/objc-act.c:2336
-#: objc/objc-act.c:6030 objc/objc-act.c:6085
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1537
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: c-decl.c:1580 c-decl.c:1599
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: c-decl.c:1622
+#: c-decl.c:1133
#, fuzzy
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr "¾Êάµ­¹æÉÕ¤­¥Ñ¥é¥á¥¿¥ê¥¹¥È¤Ï¡¢¶õ¤Î²¾°ú¿ô̾¥ê¥¹¥ÈÀë¸À¤È°ìÃפǤ­¤Þ¤»¤ó¡£"
-#: c-decl.c:1628
+#: c-decl.c:1139
#, fuzzy
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
msgstr "¥Ç¥Õ¥©¥ë¥È¤Ç³Ê¾å¤²¤µ¤ì¤ë·¿¤Î°ú¿ô¤¬¡¢¶õ¤Î²¾°ú¿ô̾¥ê¥¹¥ÈÀë¸À¤ÈŬ¹ç¤·¤Þ¤»¤ó¡£"
-#: c-decl.c:1643 c-decl.c:1665
+#: c-decl.c:1157
+#, fuzzy, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
+
+#: c-decl.c:1164
+#, fuzzy, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1646
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:1649
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1692
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:1693 c-decl.c:1701 c-decl.c:1717
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "Èó¥×¥í¥È¥¿¥¤¥×ÄêµÁ¤¬¤³¤³¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:1700
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¡¢°ú¿ô¤Î¸Ä¿ô¤¬°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:1715
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¡¢°ú¿ô %d ¤¬°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:1733
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr "`%s' ¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤è¤ê¤â¸å¤í¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1739
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤è¤ê¤â¸å¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1746
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr "`%s' ¤ÏÈó static ¤Î¸å¤Ç static Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1754
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr "`%s' ¤Ï static ¤Î¸å¤ÇÈó static Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1761
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr "`%s' ¤ÏÈó const ¤Î¸å¤Ç const Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:1768
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "`%s' ¤Î·¿½¤¾þ»Ò¤¬Á°Êý¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
-#: c-decl.c:1781
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:2073 java/decl.c:1082
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:2076 java/decl.c:1085
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¥ê¥¹¥È¤Î¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
-#: c-decl.c:2097 cp/decl.c:4204
+#: c-decl.c:1643 cp/decl.c:4479
#, fuzzy
msgid "a parameter"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: c-decl.c:2099 cp/decl.c:4221
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
msgstr ""
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2103 cp/decl.c:4225
+#: c-decl.c:1649 cp/decl.c:4500
#, fuzzy
msgid "a global declaration"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: c-decl.c:2147
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "`%s' ¤Î extern Àë¸À¤¬¥Í¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2167 java/decl.c:1035
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr "`%s' ¤ÏÀë¸À¤è¤ê¤âÀè¤Ë»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2182 c-decl.c:2397
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "`%s' ¤Ï°ÅÌÛ¤Ë `extern' Àë¸À¤µ¤ì¡¢¸å¤Ë `static' Àë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2292 cp/decl.c:4060
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr "·¿¤¬Á°Êý¤Î³°ÉôÀë¸À¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:2293
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "Á°Êý¤Î `%s' ¤Î³°ÉôÀë¸À"
-#: c-decl.c:2306
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "·¿¤¬Á°Êý¤Î°ÅÌÛ¤ÎÀë¸À¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:2308
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
-#: c-decl.c:2325
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "³°Éô `%s' ¤Î·¿¤Ï¥°¥í¡¼¥Ð¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: c-decl.c:2376
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr "`%s' ¤ÏÁ°Êý¤Ç°ÅÌÛŪ¤Ë `int' ¤òÊÖ¤¹¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2401
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "`%s' ¤Ï `extern' ¤ÈÀë¸À¤µ¤ì¡¢¸å¤Ç `static' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2425
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "`%s' ¤Îextern Àë¸À¤Ï¥°¥í¡¼¥Ð¥ë¤Î¤½¤ì¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:2467
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr "`%s' ¤Ï¥í¡¼¥«¥ëŪ¤Ë¤Ï extern ¤Ç¤¹¤¬¡¢¥°¥í¡¼¥Ð¥ëŪ¤Ë static ¤Ç¤¹"
-#: c-decl.c:2589
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr "´Ø¿ô `%s' ¤Ï¥Ö¥í¥Ã¥¯Æâ¤ÎÁ°Êý¤ÇÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2609 c-decl.c:2611
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: c-decl.c:2699
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "¥é¥Ù¥ë %s ¤¬¤¢¤é¤æ¤ë´Ø¿ô¤Î³°Â¦¤Ç»²¾È¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:2756
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:2759
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: c-decl.c:3267
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr "̵̾¹½Â¤ÂÎ/¶¦ÍÑÂΤ¬¡¢¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:3286
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "¶õ¤ÎÀë¸À¤ÎÃæ¤Ë¡¢Ìµ°ÕÌ£¤Ê¥­¡¼¥ï¡¼¥ÉËô¤Ï·¿Ì¾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:3293
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3298 c-parse.y:721 c-parse.y:723 parse.y:731 parse.y:1803
-#: objc-parse.y:757 objc-parse.y:759 objc-parse.y:2962
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: c-decl.c:3328
-#, fuzzy
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
-msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr ""
-#: c-decl.c:3330
+#: c-decl.c:2742
#, fuzzy
-msgid "ISO C89 does not support `[*]' array declarators"
+msgid "ISO C90 does not support `[*]' array declarators"
msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:3333
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr ""
-#: c-decl.c:3352
+#: c-decl.c:2764
#, fuzzy
msgid "static or type qualifiers in abstract declarator"
msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: c-decl.c:3417
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "`%s' ¤ÏÄ̾ï¤Ï´Ø¿ô¤Ç¤¹"
-#: c-decl.c:3431
-#, c-format
-msgid "typedef `%s' is initialized"
+#: c-decl.c:2847
+#, fuzzy, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3438
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3445
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3465 c-typeck.c:4870
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: c-decl.c:3471
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:3477
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:3490
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3525 c-decl.c:6150 cp/decl.c:7241 cp/decl.c:13502
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, fuzzy, c-format
msgid "inline function `%s' given attribute noinline"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:3606
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: c-decl.c:3611
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:3627
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr "`%s' ¤ÎÇÛÎó¥µ¥¤¥º¤¬¥¼¥íËô¤ÏÉé¤Ç¤¹"
-#: c-decl.c:3655 ch/decl.c:4133
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó"
-#: c-decl.c:3665
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:3724
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "Èó static ¥í¡¼¥«¥ëÊÑ¿ô `%s' ¤Ø¤Î asm »ØÄê»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: c-decl.c:3799
+#: c-decl.c:3247
#, fuzzy, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr "ANSI C ¤Ï typedef ¤òʤ¤¤±£¤¹²¾°ú¿ô `%s' ¤ò¶Ø¤¸¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4095 cp/decl.c:10038
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "`long long long' ¤Ï GCC ¤Ë¤È¤Ã¤ÆŤ¹¤®¤Þ¤¹"
-#: c-decl.c:4100
-msgid "ISO C89 does not support `long long'"
+#: c-decl.c:3597
+#, fuzzy
+msgid "ISO C90 does not support `long long'"
msgstr "ISO C89 ¤Ï `long long' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4105 cp/decl.c:10043
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4111 cp/decl.c:10067
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr ""
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr ""
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "`%s' ¤ÎÀë¸À¤ËÆó¤Ä°Ê¾å¤Î¥Ç¡¼¥¿·¿¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4126 cp/decl.c:10072
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: c-decl.c:4165
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr "`%s' ¤ÎÀë¸À¤Ç·¿¤¬¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4194
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr "`%s' ¤ËÂФ·¤Æ long ¤È short ¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4198 cp/decl.c:10186
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4205 cp/decl.c:10190
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "`%s' ¤ËÂФ·¤ÆÉâÆ°¾®¿ô·¿¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4208
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "Í£°ì¤ÎÍ­¸ú¤ÊÁȹç¤ï¤»¤Ï `long double' ¤Ç¤¹"
-#: c-decl.c:4214
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "`%s' ¤ËÂФ·¤ÆÉä¹æ¤¢¤ê¤ÈÉä¹æ¤Ê¤·¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4216 cp/decl.c:10179
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "`%s' ¤ËÂФ·¤Æ long, short, signed ¤Þ¤¿¤Ï unsigned ¤ÏÉÔŬÀڤǤ¹"
-#: c-decl.c:4222 cp/decl.c:10199
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr "`%s' ¤ËÂФ¹¤ë long, short, singed ¤ä unsigned ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: c-decl.c:4241 cp/decl.c:10220
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "`%s' ¤ËÂФ·¤Æ complex ¤ÏÉÔŬÀڤǤ¹"
-#: c-decl.c:4286
-msgid "ISO C89 does not support complex types"
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
msgstr "ISO C89 ¤Ï complex ·¿¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4298
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr "ISO C ¤Ï `double complex' ¤ò°ÕÌ£¤¹¤ë̵½¤¾þ¤Î `complex' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4304 c-decl.c:4316
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr "ISO C ¤ÏÀ°¿ô·¿¤Î complex ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4331 c-decl.c:4770 cp/decl.c:10822
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "½ÅÊ£¤·¤¿ `const'"
-#: c-decl.c:4333 c-decl.c:4774 cp/decl.c:10826
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "½ÅÊ£¤·¤¿¥é¥Ù¥ë `restrict'"
-#: c-decl.c:4335 c-decl.c:4772 cp/decl.c:10824
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
msgstr "½ÅÊ£¤·¤¿ `volatile'"
-#: c-decl.c:4357 cp/decl.c:10371
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹"
-#: c-decl.c:4366
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4368
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `register' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4370
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4383
+#: c-decl.c:3898
+#, fuzzy
+msgid "function definition declared `__thread'"
+msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "¹½Â¤ÂÎ¥Õ¥£¡¼¥ë¥É `%s' ¤Ë»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:4387 cp/decl.c:10418
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "²¾°ú¿ô `%s' ¤Ç»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:4390 cp/decl.c:10420
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "·¿Ì¾¤ËÂФ·¤Æ»ØÄꤵ¤ì¤¿µ­²±¥¯¥é¥¹"
-#: c-decl.c:4402 cp/decl.c:10434
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr "`%s' ¤¬½é´ü²½¤µ¤ì¤ë¤È¤³¤í¤Ç¡¢`extern' Àë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4404 cp/decl.c:10437
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr "`%s' ¤Ë `extern' ¤È½é´ü²½»Ò¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:4408 cp/decl.c:10441
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4411 cp/decl.c:10445
-#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "`%s' ¤Î¥È¥Ã¥×¥ì¥Ù¥ë¤ÎÀë¸À¤¬ `auto' ¤ò»ØÄꤷ¤Þ¤¹"
+#: c-decl.c:3948 cp/decl.c:11319
+#, fuzzy, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4446 c-decl.c:4635
+#: c-decl.c:3987 c-decl.c:4188
#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: c-decl.c:4490
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "`%s' ¤ÎÀë¸À¤Ï void ¤ÎÇÛÎó"
-#: c-decl.c:4496
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: c-decl.c:4517
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: c-decl.c:4522
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4529
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: c-decl.c:4542
-#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
+#: c-decl.c:4086
+#, fuzzy, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
msgstr "ISO C89 ¤Ï¥µ¥¤¥º¤¬É¾²Á¤Ç¤­¤Ê¤¤ÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4545
-#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
+#: c-decl.c:4089
+#, fuzzy, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4575 c-decl.c:4796 cp/decl.c:11043
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Â礭¤¹¤®¤Þ¤¹"
-#: c-decl.c:4592
-msgid "ISO C89 does not support flexible array members"
+#: c-decl.c:4145
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
msgstr "ISO C89 ¤Ï²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-decl.c:4602
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr "ÇÛÎó¤Î·¿¤¬ÉÔ´°Á´Í×ÁÇ·¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4609 c-decl.c:4846
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C ¤Ï const ¤ä volatile ¤Î´Ø¿ô·¿¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4655 cp/decl.c:10582
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "`%s' ¤Ï´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4660 cp/decl.c:10587
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "`%s' ¤ÏÇÛÎó¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4695
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
msgstr "ISO C ¤Ï½¤¾þÉÕ¤­ void ·¿¤ÎÌá¤êÃͤò»ý¤Ä´Ø¿ô¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4699
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr "´Ø¿ôÌá¤êÃͤη¿½¤¾þ»Ò¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:4728 c-decl.c:4811 c-decl.c:4935 c-decl.c:5029
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
msgstr "ISO C ¤Ï´Ø¿ô¤Î·¿½¤¾þ»Ò¤ò¶Ø¤¸¤Þ¤¹"
-#: c-decl.c:4768 cp/decl.c:10818
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: c-decl.c:4866 cp/decl.c:11326
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "ÊÑ¿ô¤Þ¤¿¤ÏÎΰè `%s' ¤Ï void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4899
+#: c-decl.c:4445
#, fuzzy
msgid "attributes in parameter array declarator ignored"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó"
-#: c-decl.c:4924
+#: c-decl.c:4470
#, fuzzy
msgid "invalid type modifier within array declarator"
msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: c-decl.c:4973
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:4979
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹"
-#: c-decl.c:5011 c-decl.c:5013 c-decl.c:5020
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹"
-#: c-decl.c:5035
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr "`noreturn' ´Ø¿ô¤¬Èó void ÃͤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5047
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr "`main' ¤ò inline ´Ø¿ô¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: c-decl.c:5093
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5166 c-decl.c:6202
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr "´Ø¿ôÀë¸À¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5172
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr "´Ø¿ôÀë¸ÀÃæ¤Ë¡Ê·¿¤Î̵¤¤¡Ë²¾°ú¿ô̾¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:5204 c-decl.c:6593
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:5207
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:5228
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤ò»Ø¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5231
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr "²¾°ú¿ô¤¬ÉÔ´°Á´·¿¤ò»Ø¤·¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5296
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5337
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "²¾°ú¿ô¥ê¥¹¥ÈÃæ¤Î `void' ¤Ï¥ê¥¹¥ÈÁ´ÂΤòÀê¤á¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: c-decl.c:5368
+#: c-decl.c:4934
#, fuzzy, c-format
msgid "`struct %s' declared inside parameter list"
msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5371
+#: c-decl.c:4937
#, fuzzy, c-format
msgid "`union %s' declared inside parameter list"
msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5374
+#: c-decl.c:4940
#, fuzzy, c-format
msgid "`enum %s' declared inside parameter list"
msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5381
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr "̵̾¹½Â¤ÂΤ¬²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5383
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr "̵̾¶¦ÍÑÂΤ¬²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5385
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr "̵̾Îóµó»Ò¤¬²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5389
+#: c-decl.c:4955
#, fuzzy
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "¤½¤Î¥¹¥³¡¼¥×¤ÏÄêµÁ¤«Àë¸À¤À¤±¤Ç¤¹¡¢¶²¤é¤¯Ë¾¤ó¤À¤³¤È¤È°Û¤Ê¤ë¤Ç¤·¤ç¤¦¡£"
-#: c-decl.c:5468
+#: c-decl.c:5032
#, fuzzy, c-format
msgid "redefinition of `union %s'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5471
+#: c-decl.c:5034
#, fuzzy, c-format
msgid "redefinition of `struct %s'"
msgstr "`%s %s' ¤ÎºÆÄêµÁ"
-#: c-decl.c:5510
-msgid "unnamed fields of type other than struct or union are not allowed"
-msgstr ""
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "Àë¸À¤¬²¿¤âÀë¸À¤·¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:5551 c-decl.c:5554
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr "%s¤¬²¾°ú¿ôÆâ¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5552 c-decl.c:5555 c-decl.c:5566
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "¶¦ÍÑÂÎ"
-#: c-decl.c:5552 c-decl.c:5555
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "¹½Â¤ÂÎ"
-#: c-decl.c:5565
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
msgstr "%s¤¬%s¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: c-decl.c:5566
+#: c-decl.c:5184
msgid "struct"
msgstr "¹½Â¤ÂÎ"
-#: c-decl.c:5567
+#: c-decl.c:5185
msgid "named members"
msgstr "̾Á°ÉÕ¤­¥á¥ó¥Ð"
-#: c-decl.c:5567
+#: c-decl.c:5185
msgid "members"
msgstr "¥á¥ó¥Ð"
-#: c-decl.c:5606
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "`%s' ¤Î¥Í¥¹¥È¤·¤¿ºÆÄêµÁ"
-#: c-decl.c:5619
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5630
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÏÉÔŬÀڤʷ¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5642
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ·¿¤Ï ISO C ¤Ç¤ÏÉÔŬÀڤǤ¹"
-#: c-decl.c:5654
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-decl.c:5656
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:5658
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹"
-#: c-decl.c:5672
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr "`%s' ¤Ï¤½¤Î·¿¤ÎÃͤè¤ê¤â¶¹¤¤¤Ç¤¹"
-#: c-decl.c:5717
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr "¶¦ÍÑÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:5719
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr "¹½Â¤ÂΤκǸå¤Ç¤Ï¤Ê¤¤½ê¤Ë²ÄÊÑÇÛÎó¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤¹"
-#: c-decl.c:5721
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
msgstr "¹½Â¤ÂΤ˲ÄÊÑÇÛÎó¥á¥ó¥Ð°Ê³°¤Î¥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:5746 ch/typeck.c:3060
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: c-decl.c:5790
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr "¶¦ÍÑÂΤòÆ©²áŪ¤Ë¤Ç¤­¤Þ¤»¤ó"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5884
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
-#: c-decl.c:5918
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr "²¾°ú¿ôÆâ¤Ç enum ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:5951
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr "Îóµó»Ò¤ÎÃͤ¬À°¿ô¤ÎÈϰϤκÇÂçÃͤòĶ¤¨¤Þ¤·¤¿"
-#: c-decl.c:6060 ch/decl.c:4437
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6073 ch/decl.c:4449
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼"
-#: c-decl.c:6078
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
msgstr "ISO C ¤ÏÎóµó»Ò¤ÎÃͤò `int' ¤ÎÈϰϤ˸ÂÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6156
+#: c-decl.c:5834
msgid "return type is an incomplete type"
msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: c-decl.c:6164
+#: c-decl.c:5842
msgid "return type defaults to `int'"
msgstr "Ìá¤êÃͤη¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹"
-#: c-decl.c:6211
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr "`%s' ¤ÎÁ°Êý¥×¥í¥È¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6218
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤Ë¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-decl.c:6224
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6231
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤ÇÀë¸À¤Ê¤·¤Ç»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6255 c-decl.c:6836
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤¬ `int' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6271
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: c-decl.c:6280
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr "`%s' ¤ÎÂèÆó°ú¿ô¤Ï `char **' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: c-decl.c:6289
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr "`%s' ¤ÎÂè»°°ú¿ô¤Ï¤ª¤½¤é¤¯ `char **' ¤È¤¹¤Ù¤­¤Ç¤·¤ç¤¦"
-#: c-decl.c:6298
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: c-decl.c:6301
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
msgstr "`%s' ¤ÏÄ̾Èó static ¤Ê´Ø¿ô¤Ç¤¹"
-#: c-decl.c:6411
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr "²¾°ú¿ô¤Î·¿¤¬¡¢²¾°ú¿ô¥ê¥¹¥È¤È¤ÏÊ̤ΤȤ³¤í¤«¤é¤âÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6432
+#: c-decl.c:6098
msgid "parameter name omitted"
msgstr "²¾°ú¿ô¤¬¾Êά¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:6436 c-decl.c:6538
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6512
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-decl.c:6531
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: c-decl.c:6562 c-decl.c:6564
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr "`%s' ¤Î·¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹"
-#: c-decl.c:6600
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "²¾°ú¿ô `%s' ¤ÎÀë¸À¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤ó¤Ê²¾°ú¿ô¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-decl.c:6648
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "²¾°ú¿ô¤Î¿ô¤¬¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:6678
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr "³Ê¾å¤²¤µ¤ì¤¿²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤È°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:6692
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó"
-#: c-decl.c:7006
+#: c-decl.c:6518 cp/decl.c:15049
+#, fuzzy
+msgid "no return statement in function returning non-void"
+msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó"
+
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr "¤³¤Î´Ø¿ô¤ÏÃͤòÊÖ¤·¤¿¤êÊÖ¤µ¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Ç¤·¤ç¤¦"
-#: c-decl.c:7026
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %u ¥Ð¥¤¥È¤Ç¤¹"
-#: c-decl.c:7030
+#: c-decl.c:6733
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹"
@@ -1429,921 +1551,1012 @@ msgstr "`%s' ¤ÎÌá¤êÃͤΥµ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤è¤ê¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7085
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
msgstr "`for' ¥ë¡¼¥×¤Î½é´ü²½Àë¸À¤¬ C99 ¥â¡¼¥É°Ê³°¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-decl.c:7109
+#: c-decl.c:6815
#, fuzzy, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:7112
+#: c-decl.c:6818
#, fuzzy, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:7115
+#: c-decl.c:6821
#, fuzzy, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr "`%s %s' ¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: c-decl.c:7123
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr "ÈóÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸À¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:7125
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr "¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-decl.c:7127
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr "`extern' ÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸ÀÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó°ú¿ô¤¬Ê¸»úÎ󷿤ǤϤ¢¤ê¤Þ¤»¤ó"
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤ë°ú¿ô¤¬¡¢'...' ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
msgstr "strftime ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°ú¿ô¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤­¤Þ¤»¤ó"
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤ËÉÔŬÀڤʥª¥Ú¥é¥ó¥É¿ô¤¬¤¢¤ê¤Þ¤¹"
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr "´Ø¿ô¤¬Ê¸»úÎ󷿤òÊÖ¤·¤Þ¤»¤ó"
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr "`%s' ¤Ïǧ¼±¤Ç¤­¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥È´Ø¿ô·¿¤Ç¤¹"
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó°ú¿ô¤¬¥Õ¥©¡¼¥Þ¥Ã¥È¤µ¤ì¤ë°ú¿ô¤Î¸å¤Ë³¤¤¤Æ¤¤¤Þ¤¹"
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr "` ' ¥Õ¥é¥°"
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr "printf ¤Î ` ' ¥Õ¥é¥°"
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr "`+' ¥Õ¥é¥°"
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr "printf ¤Î `+' ¥Õ¥é¥°"
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr "`#' ¥Õ¥é¥°"
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr "printf ¤Î `#' ¥Õ¥é¥°"
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr "`0' ¥Õ¥é¥°"
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr "printf ¤Î `0' ¥Õ¥é¥°"
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr "`-' ¥Õ¥é¥°"
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr "printf ¤Î `-' ¥Õ¥é¥°"
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr "`'' ¥Õ¥é¥°"
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr "printf ¤Î `'' ¥Õ¥é¥°"
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr "`I' ¥Õ¥é¥°"
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr "printf ¤Î `I' ¥Õ¥é¥°"
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1791
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr "¥Õ¥£¡¼¥ë¥ÉÉý"
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
msgstr "printf ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Î¥Õ¥£¡¼¥ë¥ÉÉý"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
msgstr "ÀºÅÙ"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
msgstr "printf ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤ÎÀºÅÙ"
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr "Ťµ½¤¾þ»Ò"
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
msgstr "printf ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎŤµ½¤¾þ»Ò"
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr "ÂåÆþ¤ÎÍÞÀ©"
-#: c-format.c:645
+#: c-format.c:626
#, fuzzy
msgid "the assignment suppression scanf feature"
msgstr "ÂåÆþ¤ÎÍÞÀ©"
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr "`a' ¥Õ¥é¥°"
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr "scanf ¤Î `a' ¥Õ¥é¥°"
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
msgstr "scanf ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Õ¥£¡¼¥ë¥ÉÉý"
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
msgstr "scanf ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎŤµ½¤¾þ»Ò"
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr "scanf ¤Î `'' ¥Õ¥é¥°"
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr "scanf ¤Î `I' ¥Õ¥é¥°"
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr "`_' ¥Õ¥é¥°"
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr "strftime ¤Î `_' ¥Õ¥é¥°"
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr "strftime ¤Î `-' ¥Õ¥é¥°"
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr "strftime ¤Î `^' ¥Õ¥é¥°"
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr "`^' ¥Õ¥é¥°"
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr "strftime ¤Î `^' ¥Õ¥é¥°"
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr "strftime ¤Î `#' ¥Õ¥é¥°"
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
msgstr "strftime ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Õ¥£¡¼¥ë¥ÉÉý"
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr "`E' ½¤¾þ»Ò"
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr "strftime ¤Î `E' ½¤¾þ»Ò"
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr "`O' ½¤¾þ»Ò"
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr "strftime ¤Î `O' ½¤¾þ»Ò"
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr "the `O' ½¤¾þ»Ò"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character"
msgstr "µÍ¤áʸ»ú"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character in strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎµÍ¤áʸ»ú"
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr "strfmon ¤Î `^' ¥Õ¥é¥°"
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr "strfmon ¤Î `+' ¥Õ¥é¥°"
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
msgstr "`(' ¥Õ¥é¥°"
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr "strfmon ¤Î `(' ¥Õ¥é¥°"
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
msgstr "`!' ¥Õ¥é¥°"
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr "strfmon ¤Î `!' ¥Õ¥é¥°"
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr "strfmon ¤Î `-' ¥Õ¥é¥°"
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Õ¥£¡¼¥ë¥ÉÉý"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr "º¸ÀºÅÙ"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤Îº¸ÀºÅÙ"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
msgstr "±¦ÀºÅÙ"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î±¦ÀºÅÙ"
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎŤµ½¤¾þ»Ò"
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
msgstr "´Ø¿ô¤Ï¶²¤é¤¯ `%s' format °À­¤Î¸õÊä¤È»×¤ï¤ì¤Þ¤¹"
-#: c-format.c:1122 c-format.c:1143 c-format.c:2201
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤Ç $ ±é»»»ÒÈÖ¹æ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
msgstr "%s ¤Ï %%n$ ±é»»»ÒÈÖ¹æ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
msgstr "±é»»»ÒÈֹ椬¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÈϰϳ°¤Ç¤¹"
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô %d ¤¬ %s ¥Õ¥©¡¼¥Þ¥Ã¥ÈÃæ¤ÇÆó²ó°Ê¾å»È¤ï¤ì¤Þ¤·¤¿"
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
msgstr "$-¼°¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô %d ¤¬°ú¿ô %d ¤¬»È¤ï¤ì¤ëÁ°¤Ç̤»ÈÍѤǤ¹"
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤¬Ê¸»úÎó¥ê¥Æ¥é¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¸¡ºº¤µ¤ì¤Þ¤»¤ó"
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏÈóʸ»úÎó¥ê¥Æ¥é¥ë¤Ç¡¢³î¤Ä¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô¤ò»ý¤Á¤Þ¤»¤ó"
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ïʸ»úÎó¥ê¥Æ¥é¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢°ú¿ô¤Î·¿¤Ï¸¡ºº¤µ¤ì¤Þ¤»¤ó"
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
msgstr "$-¼°¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç̤»ÈÍѤΰú¿ô¤¬¤¢¤ê¤Þ¤¹"
-#: c-format.c:1365
-msgid "zero-length format string"
+#: c-format.c:1357
+#, fuzzy, c-format
+msgid "zero-length %s format string"
msgstr "Ťµ 0 ¤Î¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó"
-#: c-format.c:1368
+#: c-format.c:1361
msgid "format is a wide character string"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¥ï¥¤¥Éʸ»úÎó¤Ç¤¹"
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤¬ null ¤Ç¤¹"
-
-#: c-format.c:1670
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë `\\0' ¤¬Ëä¤á¹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-format.c:1685
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë `%%' ¤Îº¯Àפ餷¤­¤â¤Î¤¬¤¢¤ê¤Þ¤¹"
-#: c-format.c:1724 c-format.c:1961
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥ÈÃæ¤Ç %s ¤ò·«¤êÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: c-format.c:1737
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
msgstr "strfmon ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î½ª¤ê¤ÇµÍ¤áʸ»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-format.c:1757 c-format.c:1875 c-format.c:2155 c-format.c:2208
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: c-format.c:1817
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
msgstr "%s ¤ÇÉý 0 ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹"
-#: c-format.c:1836
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr "%s ¤Ç¶õ¤Îº¸ÀºÅÙ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹"
-#: c-format.c:1890
+#: c-format.c:1801
msgid "field precision"
msgstr "¥Õ¥£¡¼¥ë¥ÉÀºÅÙ"
-#: c-format.c:1905
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr "%s ¤Ç¶õ¤ÎÀºÅÙ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹"
-#: c-format.c:1945
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr "%s ¤Ï `%s' %s Ťµ½¤¾þ»Ò¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:1995
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Î½ª¤ê¤Ç·¿ÊÑ´¹Ê¸»ú¤¬·ç¤±¤Æ¤¤¤Þ¤¹"
-#: c-format.c:2006
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤ËÉÔÌÀ¤Ê·¿ÊÑ´¹Ê¸»ú `%c' ¤¬¤¢¤ê¤Þ¤¹"
-#: c-format.c:2009
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤ËÉÔÌÀ¤Ê·¿ÊÑ´¹Ê¸»ú 0x%x ¤¬¤¢¤ê¤Þ¤¹"
-#: c-format.c:2016
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
msgstr "%s ¤Ï `%%%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:2032
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
msgstr "%s ¤¬ `%%%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤È°ì½ï¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#: c-format.c:2041
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr "%s ¤Ï %s ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:2050
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
msgstr "%s ¤Ï %s ¤ò `%%%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤È°ì½ï¤Ë»È¤¦»ö¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:2083
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
msgstr "%s ¤Ï %s µÚ¤Ó `%%%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤È°ì½ï¤Ë»È¤¦¤È̵»ë¤µ¤ì¤Þ¤¹"
-#: c-format.c:2087
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
msgstr "%s ¤Ï %s ¤ò %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç°ì½ï¤Ë»È¤¦¤È̵»ë¤µ¤ì¤Þ¤¹"
-#: c-format.c:2093
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
msgstr "%s ¤È %s ¤È¤ò `%%%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤È°ì½ï¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-format.c:2097
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr "%s ¤È %s ¤È¤ò %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÃæ¤Ç»È¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-format.c:2116
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr "`%%%c' ¤Ï¥í¥±¡¼¥ë¤Ë¤è¤Ã¤Æ¤Ï¡¢Ç¯¤Î²¼Æó·å¤À¤±¤ò¤â¤¿¤é¤·¤Þ¤¹"
-#: c-format.c:2119
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr "`%%%c' ¤Ïǯ¤Î²¼Æó·å¤À¤±¤ò¤â¤¿¤é¤·¤Þ¤¹"
#. The end of the format string was reached.
-#: c-format.c:2135
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr "`%%[' ¥Õ¥©¡¼¥Þ¥Ã¥È¤òÊĤ¸¤ë `]' ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-format.c:2148
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr "`%s' Ťµ½¤¾þ»Ò¤ò `%c' ·¿ÊÑ´¹Ê¸»ú¤È°ì½ï¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-format.c:2169
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
msgstr "%s ¤Ï `%%%s%c' %s ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-format.c:2184
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr "±é»»»ÒÈֹ椬ÂåÆþ¤ÎÍÞÀ©¤È¶¦¤Ë»È¤ï¤ì¤Æ¤¤¤Þ¤¹"
-#: c-format.c:2186
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
msgstr "±é»»»ÒÈֹ椬°ú¿ô¤ò¼è¤é¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-format.c:2305
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
msgstr "null ¥Ý¥¤¥ó¥¿¤ò½ñ¤­¹þ¤ó¤Ç¤¤¤Þ¤¹ (°ú¿ô %d)"
-#: c-format.c:2314
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
msgstr "null ¥Ý¥¤¥ó¥¿¤òÆɹþ¤ó¤Ç¤¤¤Þ¤¹ (°ú¿ô %d)"
-#: c-format.c:2334
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr "Äê¿ô¥ª¥Ö¥¸¥§¥¯¥È¤Ë½ñ¤­¹þ¤ó¤Ç¤¤¤Þ¤¹ (°ú¿ô %d)"
-#: c-format.c:2344
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô¤Ë;ʬ¤Ê·¿½¤¾þ»Ò¤¬¤¢¤ê¤Þ¤¹ (°ú¿ô %d)"
-#: c-format.c:2351
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó (°ú¿ô %d)"
-#: c-format.c:2353
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È°ú¿ô¤¬¥Ý¥¤¥ó¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó (°ú¿ô %d)"
-#: c-format.c:2424
+#: c-format.c:2330
msgid "pointer"
msgstr ""
-#: c-format.c:2426
+#: c-format.c:2332
#, fuzzy
msgid "different type"
msgstr "̵¸ú¤Ê»²¾È·¿¤Ç¤¹"
-#: c-format.c:2447
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr "%s ¤Ï·¿ %s ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó (°ú¿ô %d)"
-#: c-format.c:2450
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï %s ¤Ç¤¹¤¬¡¢°ú¿ô¤Ï %s ¤Ç¤¹ (°ú¿ô %d)"
-#: c-lex.c:292
+#: c-lex.c:153
+#, fuzzy
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
msgstr "¥×¥ê¥×¥í¥»¥Ã¥µ¤«¤é°Û¾ï¤Ë¥Í¥¹¥È¤µ¤ì¤¿ C ¥Ø¥Ã¥À¤Ç¤¹"
-#: c-lex.c:342
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
msgstr "#pragma %s %s ¤ò̵»ë¤·¤Þ¤¹"
-#: c-lex.c:344
-#, c-format
-msgid "ignoring #pragma %s"
-msgstr "#pragma %s ¤ò̵»ë¤·¤Þ¤¹"
-
-#: c-lex.c:394
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr "¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾ `\\U%08x' ¤Ï¼±Ê̻ҤÎÃæ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-lex.c:640
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr "¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾ `\\u%04x' ¤Ï¼±Ê̻ҤÎÃæ¤Ç¤ÏÍ­¸ú¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-lex.c:730
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "ÉâÆ°¾®¿ôÄê¿ô¤Ë 'f' ¤È 'l' ÀÜÈø¼­¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹"
-
-#: c-lex.c:757
-#, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ '%s' ¤ÎÈϰϤòĶ¤¨¤Þ¤·¤¿"
-
-#: c-lex.c:787
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
msgstr "¥×¥í¥°¥é¥à¤È¤·¤Æ°ï椷¤¿Ê¸»ú '%c'"
-#: c-lex.c:789
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
msgstr "¥×¥í¥°¥é¥à¤È¤·¤Æ°ï椷¤¿Ê¸»ú '\\%o'"
-#: c-lex.c:887
-#, fuzzy
-msgid "too many decimal points in floating constant"
-msgstr "À°¿ôÄê¿ô¤Î¥µ¥Õ¥£¥Ã¥¯¥¹ 'l' ¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: c-lex.c:889
-#, fuzzy
-msgid "decimal point in exponent - impossible!"
-msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr ""
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:900
-msgid "underscore in number"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
msgstr ""
-#: c-lex.c:962
-#, fuzzy
-msgid "numeric constant with no digits"
-msgstr "¿ôÃÍÄê¿ô¤¬´ð¿ô¤òĶ¤¨¤¿¥¢¥é¥Ó¥¢¿ô»ú¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+#: c-lex.c:873
+#, fuzzy, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "À°¿ôÄê¿ô¤¬Â礭¤¹¤®¤ë¤Î¤Ç unsigned ¤Ë¤Ê¤ê¤Þ¤·¤¿"
-#: c-lex.c:965
-msgid "numeric constant contains digits beyond the radix"
-msgstr "¿ôÃÍÄê¿ô¤¬´ð¿ô¤òĶ¤¨¤¿¥¢¥é¥Ó¥¢¿ô»ú¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+#: c-lex.c:941
+#, fuzzy, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ '%s' ¤ÎÈϰϤòĶ¤¨¤Þ¤·¤¿"
-#: c-lex.c:976
-msgid "floating constant may not be in radix 16"
-msgstr "´ð¿ô 16 ¤ÎÉâÆ°¾¯¿ôÄê¿ô¤Ïµö¤µ¤ì¤Þ¤»¤ó"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+#, fuzzy
+msgid "ignoring invalid multibyte character"
+msgstr "̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò̵»ë¤·¤Þ¤¹"
-#: c-lex.c:979
-msgid "hexadecimal floating constant has no exponent"
-msgstr "16 ¿ÊÉâÆ°¾®¿ôÄê¿ô¤¬¤Ù¤­¾è¤ò»ý¤Á¤Þ¤»¤ó"
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-lex.c:991
-msgid "floating constant exponent has no digits"
-msgstr "ÉâÆ°¾®¿ôÄê¿ô¤Î¤Ù¤­¿ô¤¬¡¢¥¢¥é¥Ó¥¢¿ô»ú¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
+#: c-opts.c:359
+#, fuzzy, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "%s ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹»ØÄê»Ò `%s'"
-#: c-lex.c:1011
-#, fuzzy
-msgid "more than one 'f' suffix on floating constant"
-msgstr "Ê£¿ô¤Î 'i' ¤ä 'j' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "%s ¤Î¸å¤í¤Î¥¿¡¼¥²¥Ã¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-lex.c:1014
-msgid "traditional C rejects the 'f' suffix"
-msgstr "¸Å¤¤ C ¤Ç¤Ï 'f' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-lex.c:1021
-#, fuzzy
-msgid "more than one 'l' suffix on floating constant"
-msgstr "ÉâÆ°¾®¿ôÄê¿ô¤Ë 'f' ¤È 'l' ÀÜÈø¼­¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr ""
-#: c-lex.c:1024
-msgid "traditional C rejects the 'l' suffix"
-msgstr "¸Å¤¤ C ¤Ç¤Ï 'l' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+#: c-opts.c:550
+#, fuzzy, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "¥Õ¥¡¥¤¥ë̾¤¬Â¿¤¹¤®¤Þ¤¹¡£%s --help ¤È¥¿¥¤¥×¤·¤Æ»È¤¤Êý¤ò¸«¤Þ¤·¤ç¤¦"
-#: c-lex.c:1032
-#, fuzzy
-msgid "more than one 'i' or 'j' suffix on floating constant"
-msgstr "Ê£¿ô¤Î 'i' ¤ä 'j' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes ¤Ï C++ ¤Ç¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó"
-#: c-lex.c:1034 c-lex.c:1128
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ISO C ¤Ç¤Ïµõ¿ôÄê¿ô¤ò¶Ø¤¸¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "-f%s ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: c-lex.c:1039
-#, fuzzy
-msgid "invalid suffix on floating constant"
-msgstr "ÀÜÈø¼­ '%.*s' ¤ÏÀ°¿ôÄê¿ô¤Ë¤Ï̵¸ú¤Ç¤¹"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr ""
-#. We got an exception from parse_float()
-#: c-lex.c:1056
-#, fuzzy
-msgid "floating constant out of range"
-msgstr "À°¿ôÄê¿ô¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions ¤Ï -fexception ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿(¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹)"
-#: c-lex.c:1068
-msgid "floating point number exceeds range of 'double'"
-msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ 'double' ¤ÎÈϰϤòĶ¤¨¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1273
+#, fuzzy
+msgid "output filename specified twice"
+msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë̾¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-lex.c:1097
-msgid "two 'u' suffixes on integer constant"
-msgstr "2 ¤Ä¤Î 'u' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1100
-msgid "traditional C rejects the 'u' suffix"
-msgstr "ÅÁÅýŪ¤Ê C ¤Ç¤Ï 'u' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1111
-msgid "three 'l' suffixes on integer constant"
-msgstr "3 ¤Ä¤Î 'l' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1391
+#, fuzzy
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-extra-args ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1113
-msgid "'lul' is not a valid integer suffix"
-msgstr "'lul' ¤ÏÀµ¾ï¤ÊÀ°¿ôÀÜÈø¼­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1115
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr "'Ll' ¤È 'lL' ¤ÏÀµ¾ï¤ÊÀ°¿ôÀÜÈø¼­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1118
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ISO C89 ¤Ç¤Ï long long À°¿ôÄê¿ô¤ò¶Ø¤¸¤Þ¤¹"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡Ê-Wformat ¤¬¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: c-lex.c:1126
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "Ê£¿ô¤Î 'i' ¤ä 'j' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: c-lex.c:1133
-#, fuzzy
-msgid "invalid suffix on integer constant"
-msgstr "ÀÜÈø¼­ '%.*s' ¤ÏÀ°¿ôÄê¿ô¤Ë¤Ï̵¸ú¤Ç¤¹"
+#: c-opts.c:1474
+#, fuzzy, c-format
+msgid "opening dependency file %s"
+msgstr "ưŪ°Í¸´Ø·¸¡£\n"
-#: c-lex.c:1141
+#: c-opts.c:1484
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
-msgstr "À°¿ôÄê¿ô¤¬¥³¥ó¥Ñ¥¤¥é¤Î¸½ºß¤ÎÀßÄê¤è¤êÂ礭¤¹¤®¤ë¤¿¤á¡¢%d ¥Ó¥Ã¥È¤ËÀÚ¤êµÍ¤á¤Þ¤·¤¿"
+msgid "closing dependency file %s"
+msgstr ""
-#: c-lex.c:1231
-msgid "width of integer constant changes with -traditional"
-msgstr "-traditional ¤ò¤Ä¤±¤ë¤ÈÀ°¿ôÄê¿ô¤ÎÉý¤¬ÊѤï¤ê¤Þ¤¹"
+#: c-opts.c:1487
+#, fuzzy, c-format
+msgid "when writing output to %s"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
-#: c-lex.c:1233
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "À°¿ôÄê¿ô¤Ï ISO C ¤Ç¤ÏÉä¹ç̵¤·¤Ç¡¢-traditional ¤ò¤Ä¤±¤ë¤ÈÉä¹çÉÕ¤­¤Ç¤¹"
+#: c-opts.c:1567
+#, fuzzy
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "-M ¤« -MM ¤Î¤¤¤º¤ì¤«¤òÄɲÃŪ¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: c-lex.c:1235
-msgid "width of integer constant may change on other systems with -traditional"
-msgstr "À°¿ôÄê¿ô¤ÎÉý¤Ï¾¤Î¥·¥¹¥Æ¥à¤Ç -traditional ¤ò¤Ä¤±¤ë¤ÈÊѤï¤ë¤Ç¤·¤ç¤¦"
+#: c-opts.c:1715
+#, fuzzy, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "(%s ÍѤȤ·¤Æ¤ÏÀµ¾ï¤Ç¤¹¤¬¡¢ÁªÂò¤µ¤ì¤¿¸À¸ì¤È¤·¤Æ¤Ï̵¸ú¤Ç¤¹)"
-#: c-lex.c:1245
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "%s ¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"¥¹¥¤¥Ã¥Á:\n"
+" -include <file> ¾¤Î¥Õ¥¡¥¤¥ë¤ÎÁ°¤Ë <file> ¤ÎÆâÍƤò´Þ¤á¤ë\n"
+" -imacros <file> <file> ¤Î¥Þ¥¯¥íÄêµÁ¤ò¼õ¤±Æþ¤ì¤ë\n"
+" -iprefix <path> ¼¡¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥óÍÑ¥×¥ì¥Õ¥£¥¯¥¹¤Ë <path> ¤ò»ØÄê\n"
+" -iwithprefix <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
+" -iwithprefixbefore <dir> <dir> ¤ò¥á¥¤¥ó include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
+" -isystem <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤ÎºÇ½é¤ËÄɲ乤ë\n"
-#: c-lex.c:1248
-msgid "an unsigned long long int"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
msgstr ""
+" -idirafter <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
+" -I <dir> <dir> ¤ò¥á¥¤¥ó include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
+" -I- ¤­¤áºÙ¤«¤Ê include ¥Ñ¥¹À©¸æ -- info ʸ½ñ¤ò»²¾È\n"
+" -nostdinc ¥·¥¹¥Æ¥à include ¥Ç¥£¥ì¥¯¥È¥ê¤òõº÷¤·¤Ê¤¤\n"
+" (-system ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ïõº÷¤µ¤ì¤ë)\n"
+" -nostdinc++ C++ ÍÑ¥·¥¹¥Æ¥à include ¥Ç¥£¥ì¥¯¥È¥ê¤òõº÷¤·¤Ê¤¤\n"
+" -o <file> <file> ¤Ø½ÐÎϤ¹¤ë\n"
-#: c-lex.c:1249
-msgid "a long long int"
+#: c-opts.c:1744
+#, fuzzy
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
msgstr ""
+" -std=<std name> Ŭ¹ç¤µ¤»¤ëɸ½à¤ò»ØÄê -- °Ê²¼¤è¤ê°ì¤Ä\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999\n"
+" -+ C++ ¼°¤Î¹½Ê¸²òÀϤòµö²Ä¤¹¤ë\n"
+" -w ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë\n"
+" -Wtrigraphs ¥È¥é¥¤¥°¥é¥Õ¤Ë½Ð¤¯¤ï¤·¤¿¤é·Ù¹ð¤¹¤ë\n"
+" -Wno-trigraphs ¥È¥é¥¤¥°¥é¥Õ¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
+" -Wcomment{s} ¥³¥á¥ó¥È¤¬Â¾¤Î¥³¥á¥ó¥ÈÆâ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤¿¤é·Ù¹ð¤¹¤ë\n"
-#: c-lex.c:1250
-msgid "an unsigned long int"
+#: c-opts.c:1753
+#, fuzzy
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
msgstr ""
+" -Wno-comment{s} ¥³¥á¥ó¥È¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
+" -Wtraditional ¸½ºß¤È¤Ï°Û¤Ê¤ë¸Å¤¤ C ¤Ç¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë\n"
+" -Wno-traditional ¸Å¤¤ C ¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
+" -Wundef ̤ÄêµÁ¤Î¥Þ¥¯¥í¤¬ #if ¤Ç»È¤ï¤ì¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë\n"
+" -Wno-undef ̤ÄêµÁ¥Þ¥¯¥í¤Îɾ²Á¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
+" -Wimport #import ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ÎÍøÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë\n"
-#: c-lex.c:1254
-msgid "decimal constant is so large that it is unsigned"
-msgstr "½½¿ÊÄê¿ô¤¬¤È¤Æ¤âÂ礭¤¤¤Î¤ÇÉä¹ç̵¤·¤È¤·¤Þ¤·¤¿"
+#: c-opts.c:1758
+#, fuzzy
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -Wno-import #import ¤ÎÍøÍѤ˴ؤ¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
+" -Werror Á´¤Æ¤Î·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¦\n"
+" -Wno-error ·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤ï¤Ê¤¤\n"
+" -Wsystem-headers ¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤·¤Ê¤¤\n"
+" -Wno-system-headers ¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤¹¤ë\n"
+" -Wall Á´¤Æ¤Î¥×¥ê¥×¥í¥»¥Ã¥µ·Ù¹ð¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: c-lex.c:1263
+#: c-opts.c:1763
#, fuzzy
-msgid "complex integer constant is too wide for 'complex int'"
-msgstr "Ê£ÁÇ¿ô·¿À°¿ôÄê¿ô¤Ï `__complex int' ¤Ë¤È¤Ã¤Æ¹­¤¹¤®¤Þ¤¹"
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M make °Í¸´Ø·¸¤òÀ¸À®¤¹¤ë\n"
+" -MM -M ƱÍÍ¡¢Ã¢¤·¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò̵»ë¤¹¤ë\n"
+" -MF <file> °Í¸´Ø·¸¤Î½ÐÎϤòÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à\n"
+" -MG ¸«¤Ä¤«¤é¤Ê¤¤¥Ø¥Ã¥À¤òÀ¸À®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ°·¤¦\n"
-#: c-lex.c:1283
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Á´¤Æ¤Î¥Ø¥Ã¥À¤Ë¤Ä¤¤¤Æ phony ¥¿¡¼¥²¥Ã¥È¤òÀ¸À®¤¹¤ë\n"
+" -MQ <target> MAKE ¤Ç¤Î¥¯¥ª¡¼¥È¤µ¤ì¤¿¥¿¡¼¥²¥Ã¥È¤òÄɲ乤ë\n"
+" -MT <target> ¥¯¥ª¡¼¥È¤µ¤ì¤Ê¤¤¥¿¡¼¥²¥Ã¥È¤òÄɲ乤ë\n"
-#: c-lex.c:1287
-#, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "¿ô»ú '%.*s' ¤Î¸å¤Ë¶õÇò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: c-opts.c:1776
+#, fuzzy
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<macro> <macro> ¤òÄêµÁ¤·¡¢¤½¤ÎÃͤòʸ»úÎó¤Î '1' ¤È¤¹¤ë\n"
+" -D<macro>=<val> <macro> ¤òÄêµÁ¤·¡¢¤½¤ÎÃͤò <val> ¤È¤¹¤ë\n"
+" -A<question> (<answer>) <question> ¤Ë <answer> ¤ÈÀ¼ÌÀ¤¹¤ë\n"
+" -A-<question> (<answer>) <question> ¤ò <answer> ¤È¤·¤Ê¤¤\n"
+" -U<macro> <macro> ÄêµÁ¤ò²ò½ü¤¹¤ë\n"
+" -v ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-#: c-lex.c:1323 cpplex.c:1867
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H »È¤ï¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë\n"
+" -C ¥³¥á¥ó¥È¤òÇË´þ¤·¤Ê¤¤\n"
+" -dM ºÇ¸å¤ËÍ­¸ú¤Ê¥Þ¥¯¥íÄêµÁ¥ê¥¹¥È¤òɽ¼¨¤¹¤ë\n"
+" -dD ½ÐÎϤ˥ޥ¯¥íÄêµÁ¤òÊݸ¤¹¤ë\n"
+" -dN -dD ¤ÈƱÍͤÀ¤¬¡¢Ì¾Á°¤À¤±¤òÊݸ¤¹¤ë\n"
+" -dI #include ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò½ÐÎϤ˴ޤá¤ë\n"
+
+#: c-opts.c:1792
#, fuzzy
-msgid "ignoring invalid multibyte character"
-msgstr "̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò̵»ë¤·¤Þ¤¹"
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -fpreprocessed ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò´û¤Ë¥×¥ê¥×¥í¥»¥¹ºÑ¤È¤·¤Æ°·¤¦\n"
+" -ftabstop=<number> ¥«¥é¥à¤Î¥¿¥Ö´Ö³Ö¤òÊó¹ð¤¹¤ë\n"
+" -P #line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤òÀ¸À®¤·¤Ê¤¤\n"
+" -$ ¼±Ê̻ҤǤΠ'$' ¤òµö²Ä¤·¤Ê¤¤\n"
+" -remap ¥Õ¥¡¥¤¥ë¥¤¥ó¥¯¥ë¡¼¥É»þ¤Ë¥Õ¥¡¥¤¥ë̾¤òºÆ¥Þ¥Ã¥×¤¹¤ë\n"
+" --version ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë\n"
+" -h or --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 parse.y:51 objc-parse.y:57
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "ʸˡ¥¨¥é¡¼"
-#: /usr/lib/bison.simple:107
+#: /usr/share/bison/bison.simple:179
msgid "syntax error: cannot back up"
msgstr "ʸˡ¥¨¥é¡¼: ÄÉ¿ï¤Ç¤­¤Þ¤»¤ó"
-#: /usr/lib/bison.simple:358
-msgid "parser stack overflow"
-msgstr "¹½Ê¸²òÀÏ´ï¤Î¥¹¥¿¥Ã¥¯¤¬°î¤ì¤Þ¤·¤¿"
-
-#: c-parse.y:284 objc-parse.y:306
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
msgstr "ISO C ¤Ï¶õ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:317 c-typeck.c:6855 ch/parse.c:2113 objc-parse.y:339
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-#: c-parse.y:325 objc-parse.y:347
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr "ISO C ¤Ï·¿¤äµ­²±¥¯¥é¥¹¤Î¤Ê¤¤¥Ç¡¼¥¿ÄêµÁ¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:327 objc-parse.y:349
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr "¥Ç¡¼¥¿ÄêµÁ¤¬·¿¤äµ­²±¥¯¥é¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: c-parse.y:340 objc-parse.y:362
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr "ISO C ¤Ç¤Ï´Ø¿ô³°¤Ç¤Î;ʬ¤Ê `;' ¤òµö¤·¤Þ¤»¤ó"
-#: c-parse.y:400 cppexp.c:688
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr "¸Å¤¤ C ¤Ç¤Ïñ¹à¥×¥é¥¹±é»»»Ò¤òµñÈݤ·¤Þ¤¹"
-#: c-parse.y:462 objc-parse.y:484
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ËŬÍѤµ¤ì¤¿ `sizeof'"
-#: c-parse.y:542 objc-parse.y:564
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr "ISO C ¤ÏÃæ´Ö¹à¤¬¾Êά¤µ¤ì¤¿ ?: ¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:589 objc-parse.y:611
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
msgstr "ISO C89 ¤ÏÊ£¹ç¥ê¥Æ¥é¥ë¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:603 objc-parse.y:625
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
msgstr "ISO C ¤Ï¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:634 objc-parse.y:656
+#: c-parse.y:677 objc-parse.y:699
#, fuzzy
msgid "first argument to __builtin_choose_expr not a constant"
msgstr "`__builtin_args_info' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: c-parse.y:677
-msgid "traditional C rejects string concatenation"
+#: c-parse.y:721 objc-parse.y:767
+#, fuzzy
+msgid "traditional C rejects ISO C style function definitions"
msgstr "¸Å¤¤ C ¤Ç¤Ïʸ»úÎó·ë¹ç¤òµñÈݤ·¤Þ¤¹"
-#: c-parse.y:692 objc-parse.y:728
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C ¤Ç¤Ï `varargs.h' ¤ÎÍøÍѤòµö¤·¤Þ¤»¤ó"
-
-#: c-parse.y:953 c-parse.y:959 c-parse.y:965 c-parse.y:971 c-parse.y:992
-#: c-parse.y:998 c-parse.y:1004 c-parse.y:1010 c-parse.y:1043 c-parse.y:1049
-#: c-parse.y:1055 c-parse.y:1061 c-parse.y:1106 c-parse.y:1112 c-parse.y:1118
-#: c-parse.y:1124 parse.y:1883 parse.y:1890 parse.y:1929 objc-parse.y:989
-#: objc-parse.y:995 objc-parse.y:1001 objc-parse.y:1007 objc-parse.y:1028
-#: objc-parse.y:1034 objc-parse.y:1040 objc-parse.y:1046 objc-parse.y:1079
-#: objc-parse.y:1085 objc-parse.y:1091 objc-parse.y:1097 objc-parse.y:1142
-#: objc-parse.y:1148 objc-parse.y:1154 objc-parse.y:1160
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-parse.y:1406 objc-parse.y:1451
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C ¤Ç¤Ï¶õ¤Î½é´ü²½Íѥ֥졼¥¹¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1420 objc-parse.y:1465
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr "ISO C89 ¤Ï½é´ü²½ÍѤÎÉû¥ª¥Ö¥¸¥§¥¯¥È»ØÄê¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1423 objc-parse.y:1468
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr "`=' ¤Î¤Ê¤¤¥á¥ó¥Ð»Ø̾½é´ü²½»Ò¤ÏÇѤì¤Þ¤·¤¿"
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr "`:' ¤ò¤Ä¤±¤ë¥á¥ó¥Ð»Ø̾½é´ü²½»Ò¤ÏÇѤì¤Þ¤·¤¿"
-#: c-parse.y:1456
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C ¤Ï½é´ü²½ÍѤÎÍ×ÁÇÈÏ°Ï»ØÄê¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1464 c-parse.y:1494 objc-parse.y:1503 objc-parse.y:1533
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
msgstr "ISO C ¤Ï ¥Í¥¹¥È¤µ¤ì¤¿´Ø¿ô¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1668 objc-parse.y:1709
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
msgstr "ISO C ¤Ï `enum' ·¿¤ÎÁ°Êý»²¾È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1680 parse.y:2348 objc-parse.y:1721
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "Îóµó»Ò¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥«¥ó¥Þ¤¬¤¢¤ê¤Þ¤¹"
-#: c-parse.y:1688 objc-parse.y:1729
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr "struct ¤ä union ¤ÎºÇ¸å¤Ë¥»¥ß¥³¥í¥ó¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-parse.y:1697 objc-parse.y:1738 objc-parse.y:2784
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr "struct ¤ä union ¤ÎÃæ¤Ç;ʬ¤Ê¥»¥ß¥³¥í¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-parse.y:1710 objc-parse.y:1765
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr "ISO C ¤Ç¤Ï̵̾¹½Â¤ÂΤ䶦ÍÑÂΤò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-parse.y:1719 objc-parse.y:1774
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C ¤Ï¥á¥ó¥Ð¤Î¤Ê¤¤¥á¥ó¥ÐÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1868 c-parse.y:1872 c-parse.y:1876 objc-parse.y:1923
-#: objc-parse.y:1927 objc-parse.y:1931
-#, fuzzy
-msgid "storage class specifier in array declarator"
-msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-
-#: c-parse.y:1891 objc-parse.y:1946
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
msgstr "Ê£¹çʸ¤Î½ª¤ê¤Ç¥é¥Ù¥ë¤ò»È¤¦¤³¤È¤Ï¿ä¾©¤µ¤ì¤Þ¤»¤ó"
-#: c-parse.y:1908 objc-parse.y:1963
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
msgstr "ISO C89 ¤ÏÀë¸À¤È¥³¡¼¥É¤È¤Îº®¹ç¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:1982 objc-parse.y:2041
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
msgstr "ISO C ¤Ï¥é¥Ù¥ëÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:2031 parse.y:1584 objc-parse.y:2090
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹"
-#: c-parse.y:2146 objc-parse.y:2205
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr "else ʸ¤ÎÃæ¿È¤¬¶õ¤Ç¤¹"
-#: c-parse.y:2256 objc-parse.y:2315
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
msgstr "ISO C `goto *¼°;' ¤Î½ñ¤­Êý¤ò¶Ø¤¸¤Þ¤¹"
-#: c-parse.y:2354 objc-parse.y:2413
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C ¤ÏÁ°Êý²¾°ú¿ôÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
@@ -2353,1395 +2566,1567 @@ msgstr "ISO C ¤ÏÁ°Êý²¾°ú¿ôÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2380 objc-parse.y:2439
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr "ISO C ¤Ï `...' ¤ÎÁ°¤Ë̾Á°¤ò¤Ä¤±¤é¤ì¤¿°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
-#: c-parse.y:2474 objc-parse.y:2533
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "¸Å¤¤¥¹¥¿¥¤¥ë¤Î¼±Ê̻ҥꥹ¥È¤Ç¤Î `...'"
-#: /usr/lib/bison.simple:639
-msgid "parse error; also virtual memory exceeded"
+#: /usr/share/bison/bison.simple:795
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼ -- ¤µ¤é¤Ë²¾ÁÛ¥á¥â¥ê¤òĶ²á¤·¤Þ¤·¤¿"
-#: /usr/lib/bison.simple:643 cp/spew.c:349
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "¹½Ê¸²òÀÏ¥¨¥é¡¼"
-#: c-parse.y:2789 cp/spew.c:1477 objc-parse.y:3476
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "¹½Ê¸²òÀÏ´ï¤Î¥¹¥¿¥Ã¥¯¤¬°î¤ì¤Þ¤·¤¿"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "ÆþÎϤκǸå¤Ë %s"
-#: c-parse.y:2795 cp/spew.c:1483 objc-parse.y:3482
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%s ¤¬ %s'%c' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: c-parse.y:2797 cp/spew.c:1485 objc-parse.y:3484
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
msgstr "%s ¤¬ %s'\\x%x' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: c-parse.y:2801 cp/spew.c:1489 objc-parse.y:3488
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "ʸ»úÎóÄê¿ô¤ÎÁ°¤Ë %s"
-#: c-parse.y:2803 cp/spew.c:1491 objc-parse.y:3490
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
msgstr "¿ôÃÍÄê¿ô¤ÎÁ°¤Ë %s"
-#: c-parse.y:2805 objc-parse.y:3492
+#: c-parse.y:2854 objc-parse.y:3553
#, c-format
msgid "%s before \"%s\""
msgstr "%s ¤¬ \"%s\" ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: c-parse.y:2807 objc-parse.y:3494
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
msgstr "%s ¤¬ '%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: c-parse.y:2943 objc-parse.y:3673
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "¸Å¤¤ C ¤Ç¤Ïʸ»úÎó·ë¹ç¤òµñÈݤ·¤Þ¤¹"
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
msgstr "'%s' ¥È¡¼¥¯¥ó¤Î½ê¤Çʸˡ¥¨¥é¡¼"
-#: c-parse.y:2973 ch/parse.c:4329 cp/lex.c:910 objc-parse.y:3703
-#, fuzzy
-msgid "YYDEBUG not defined"
-msgstr "YYDEBUG ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr "#pragma pack (pop) ¤¬¡¢Âбþ¤¹¤ë #pragma pack (push, <n>) ¤Ê¤·¤Ë½Ð¸½¤·¤Þ¤·¤¿"
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
msgstr "#pragma pack(pop, %s) ¤¬¡¢Âбþ¤¹¤ë #pragma pack(push, %s) ¤Ê¤·¤Ë½Ð¸½¤·¤Þ¤·¤¿"
-#: c-pragma.c:162
+#: c-pragma.c:145
#, fuzzy
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-pragma.c:164
+#: c-pragma.c:147
#, fuzzy
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: c-pragma.c:184
+#: c-pragma.c:167
#, fuzzy
msgid "missing '(' after '#pragma pack' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
#, fuzzy
msgid "malformed '#pragma pack' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:202
+#: c-pragma.c:185
#, fuzzy
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:204
+#: c-pragma.c:187
#, fuzzy
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:213
+#: c-pragma.c:196
#, fuzzy, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr "'#pragma pack' ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr "'#pragma pack' ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
msgstr ""
-#: c-pragma.c:290 c-pragma.c:295
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: c-pragma.c:299
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr "#pragma weak ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: c-semantics.c:532
+#: c-pragma.c:372 c-pragma.c:377
+#, fuzzy
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: c-pragma.c:382
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "#pragma weak ¤ÎËöÈø¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
+
+#: c-pragma.c:389 c-pragma.c:470
+#, fuzzy
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr "¥Ç¡¼¥¿Îΰè '%s' ¤ÏÁ°¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
+
+#: c-pragma.c:420
+#, fuzzy
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: c-pragma.c:425
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
+
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
+
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "break ʸ¤¬ loop ¤Þ¤¿¤Ï switch ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-semantics.c:550
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "continue ʸ¤¬ loop ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-semantics.c:645
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr "`%#D' ¤Î¤¿¤á¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬É¬ÍפǤ¹"
-#: c-semantics.c:646
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr "case ¥é¥Ù¥ë¤¬¸½¤ì¤¿¤Î¤Ï¤³¤³¤Ç¤¹"
-#: c-semantics.c:649
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr "(Á°¤Î case ʸ¤Î°Ï¤¤¹þ¤Þ¤ì¤¿Æ°ºî¤Ï¤½¤ì¼«¿È¤Î¥¹¥³¡¼¥×¤Ç¥Ç¥¹¥È¥é¥¯¥¿¤òÍ׵ᤷ¤Þ¤¹)"
-#: c-semantics.c:692 c-typeck.c:6883 cp/semantics.c:881
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr "asm ¤Ç¤Ï %s ½¤¾þ»Ò¤¬Ìµ»ë¤µ¤ì¤Þ¤¹"
-#: c-typeck.c:124
+#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: c-typeck.c:146 cp/call.c:2586
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ"
-#: c-typeck.c:155 cp/typeck2.c:227
+#: c-typeck.c:153
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr "¶­³¦¤¬»ØÄꤵ¤ì¤Ê¤¤ÇÛÎó¤ÎÉÔŬÀÚ¤ÊÍøÍÑ"
-#: c-typeck.c:163
+#: c-typeck.c:167
#, c-format
msgid "invalid use of undefined type `%s %s'"
msgstr "̤ÄêµÁ¤Î·¿ `%s %s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:167
+#: c-typeck.c:171
#, c-format
msgid "invalid use of incomplete typedef `%s'"
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: c-typeck.c:398 c-typeck.c:412
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
msgstr "´Ø¿ô·¿¤¬ ISO C ¤È´°Á´¸ß´¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:572
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr "·¿¤ÏÁ´¤¯¸ß´¹¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:725
-msgid "sizeof applied to a function type"
-msgstr "sizeof ¤¬´Ø¿ô·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: c-typeck.c:731
-msgid "sizeof applied to a void type"
-msgstr "sizeof ¤¬ void ·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: c-typeck.c:738
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: c-typeck.c:791 c-typeck.c:2799
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
msgstr "ÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ËÂФ¹¤ë±é»»"
-#: c-typeck.c:1179
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1208
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "¹½Â¤ÂΤǤⶦÍÑÂΤǤâ¤Ê¤¤²¿¤«¤Ç¡¢¥á¥ó¥Ð `%s' ¤òÍ׵ᤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:1240 ch/expr.c:810
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr "ÉÔ´°Á´·¿¤Î¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È"
-#: c-typeck.c:1244 ch/expr.c:814
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
msgstr "`void *' ¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È¤Ç¤¹"
-#: c-typeck.c:1261 cp/typeck.c:2376
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: c-typeck.c:1280 cp/typeck.c:2402
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr "ÇÛÎ󻲾ȤǤÎź»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1301 cp/typeck.c:2444
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr "ÇÛÎó¤Îź»ú¤¬ `char' ·¿¤Ç¤¹"
-#: c-typeck.c:1309 c-typeck.c:1398 cp/typeck.c:2451 cp/typeck.c:2530
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1342
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
msgstr "ISO C ¤Ï `register' ÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:1344
-msgid "ISO C89 forbids subscripting non-lvalue array"
+#: c-typeck.c:1308
+#, fuzzy
+msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ISO C89 Èóº¸ÊÕÃÍÇÛÎó¤Ø¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:1377
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr "ź»ú¤¬ `char' ·¿¤ò¤â¤Á¤Þ¤¹"
-#: c-typeck.c:1393 cp/typeck.c:2525
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr "ź»ú¤ò¤Ä¤±¤é¤ì¤¿Ãͤ¬ÇÛÎó¤Ç¤â¥Ý¥¤¥ó¥¿¤Ç¤â¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1444
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr "`%s' ¤¬¤³¤³¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (´Ø¿ô¤ÎÃæ¤Ç¤Ï¤Ê¤¤)"
-#: c-typeck.c:1451
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)"
-#: c-typeck.c:1456
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(̤Àë¸À¤Î³ÆÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬ºÇ½é¤Ë¸½¤ï¤ì¤¿¤½¤ì¤¾¤ì¤Î´Ø¿ô"
-#: c-typeck.c:1457
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr " ¤ËÂФ·¤Æ°ìÅÙ¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹¡£)"
-#: c-typeck.c:1474
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr "`%s' ¤Î¥í¡¼¥«¥ëÀë¸À¤Ç¡¢¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤¬±£¤µ¤ì¤Þ¤¹"
-#: c-typeck.c:1539
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:1623 cp/typeck.c:3157
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:1644
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "Àµ¼°¤Ê²¾°ú¿ô %d ¤Î·¿¤¬ÉÔ´°Á´¤Ç¤¹"
-#: c-typeck.c:1657
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1660
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯À°¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1663
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÉâÆ°¾®¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1666
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1669
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÀ°¿ô·¿¤Ç¤Ï¤Ê¤¯Ê£ÁÇ¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1672
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤ÏÊ£ÁÇ¿ô¤Ç¤Ï¤Ê¤¯ÉâÆ°¾®¿ô·¿¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1682
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ë¤È %s ¤Ï `double' ¤Ç¤Ê¤¯ `float' ¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1700
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr "%s ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ç¤Î·¿¤ÎÉý¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1734
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹ç¤Ê¤·¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1736
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ë¤è¤ê %s ¤ÏÉä¹çÉÕ¤­¤È¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:1770 cp/typeck.c:3265
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: c-typeck.c:1809
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "¥·¥Õ¥ÈÃæ¤Î + ¤ä - ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1816
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "|| ¤È¶¦¤Ë»È¤ï¤ì¤ë && ¤Î¼þ¤ê¤Ç¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1825
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "·×»»¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1828
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr "Èæ³Ó¤¬ | ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1837
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1840
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr "·×»»¤¬ ^ ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1847
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr "& ±é»»»Ò¤Î¼þ¤ê¤Î + ¤ä - ¤Î¼þ¤ê¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1850
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr "Èæ³Ó¤¬ & ±é»»»Ò¤Î¹à¤È¤Ê¤ë¾ì¹ç¤Ë¤Ï³ç¸Ì¤ò¤Ä¤±¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: c-typeck.c:1857
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "X<=Y<=Z ¤ÎÍͤÊÈæ³Ó¤Ï¿ô³ØŪ¤Ê°ÕÌ£¤Ç¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤»¤ó"
-#: c-typeck.c:2017 c-typeck.c:2073 ch/expr.c:3951
+#: c-typeck.c:2001 c-typeck.c:2036
#, fuzzy
msgid "division by zero"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: c-typeck.c:2118 cp/typeck.c:3551
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr "±¦¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-typeck.c:2125 cp/typeck.c:3557
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr "±¦¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2150 cp/typeck.c:3576
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr "º¸¥·¥Õ¥È²ó¿ô¤¬Éé¤Î¿ô¤Ç¤¹"
-#: c-typeck.c:2153 cp/typeck.c:3578
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr "º¸¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2178
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr "¥·¥Õ¥È²ó¿ô¤¬Éé¤ÎÃͤǤ¹"
-#: c-typeck.c:2180
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "¥·¥Õ¥È²ó¿ô >= ·¿¤ÎÉý¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2201 cp/typeck.c:3613
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr "ÉâÆ°¾®¿ôÅÀ¤ÎÈæ³Ó¤Ç == ¤ä != ¤ò»È¤¦¤Î¤Ï°ÂÁ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:2225 c-typeck.c:2231
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:2234 c-typeck.c:2276 c-typeck.c:2304
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
msgstr "·¿¤¬Á´¤¯°Û¤Ê¤ë¥Ý¥¤¥ó¥¿¤ÎÈæ³Ó¤Ç¥­¥ã¥¹¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2249 c-typeck.c:2255 c-typeck.c:2325 c-typeck.c:2331
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2271 c-typeck.c:2299
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C ´Ø¿ô¥Ý¥¤¥ó¥¿¤Î½ç½øÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:2296
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
msgstr "´°Á´¤Ê¥Ý¥¤¥ó¥¿¤ÈÉÔ´°Á´¤Ê¥Ý¥¤¥ó¥¿¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:2312 c-typeck.c:2319
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
msgstr "À°¿ô 0 ¤È¥Ý¥¤¥ó¥¿¤È¤Î½ç½øÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:2345 cp/typeck.c:3746
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
msgstr "ÈóÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ç¤Î½ç½øÉÕ¤±¤é¤ì¤Ê¤¤Èæ³Ó¤Ç¤¹"
-#: c-typeck.c:2549
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:2595 cp/typeck.c:3992
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr "~¤Çȿž¤µ¤ì¤¿³Ê¾å¤²Éä¹ç̵¤··¿¤ÈÄê¿ô¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:2603 cp/typeck.c:4000
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "~¤Çȿž¤µ¤ì¤¿Éä¹ç̵¤··¿¤ÈÉä¹ç̵¤··¿¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: c-typeck.c:2665
-msgid "pointer of type `void *' used in arithmetic"
-msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-
-#: c-typeck.c:2671
-msgid "pointer to a function used in arithmetic"
-msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-
-#: c-typeck.c:2751
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
msgstr "`void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2753
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Îº¹¤òµá¤á¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2850
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr "ñ¹à¥×¥é¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2861
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr "ñ¹à¥Þ¥¤¥Ê¥¹¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2873
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
msgstr "ISO C ¤ÏÊ£ÁǶ¦ÌòÍѤΠ`~' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-typeck.c:2879
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2890
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "abs ¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2902
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "Ê£ÁǶ¦Ìò(~)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2916
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr "ñ¹à´¶Ã²Éä(!)¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2959
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
msgstr "ISO C ¤Ï complex ·¿¤Ç¤Î `++' ¤È `--' ¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-#: c-typeck.c:2974 c-typeck.c:3006
+#: c-typeck.c:2867 c-typeck.c:2899
#, fuzzy
msgid "wrong type argument to increment"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2976 c-typeck.c:3008
+#: c-typeck.c:2869 c-typeck.c:2901
#, fuzzy
msgid "wrong type argument to decrement"
msgstr "¥Ó¥Ã¥Èȿž¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:2997
+#: c-typeck.c:2890
#, fuzzy
msgid "increment of pointer to unknown structure"
msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s"
-#: c-typeck.c:2999
+#: c-typeck.c:2892
#, fuzzy
msgid "decrement of pointer to unknown structure"
msgstr "ÉÔÌÀ¤Ê¹½Â¤ÂΤËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤Î%s"
-#: c-typeck.c:3081
-msgid "increment"
-msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥È"
-
-#: c-typeck.c:3081
-msgid "decrement"
-msgstr "¥Ç¥¯¥ê¥á¥ó¥È"
-
-#: c-typeck.c:3136
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
msgstr "ISO C ¤Ï¥­¥ã¥¹¥È¼°¤Î¥¢¥É¥ì¥¹É¾²Á¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3146
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
msgstr "ñ¹à¤Î `&' ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
-#: c-typeck.c:3178
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#. condition met at compile time
-#: c-typeck.c:3287 c-typeck.c:4649 c-typeck.c:4665 c-typeck.c:4681 gcc.c:4457
-#: rtl-error.c:121 tradcif.y:533 tradcpp.c:4123 ch/expr.c:1782 ch/parse.c:361
-#: ch/typeck.c:160 cp/typeck.c:4767 java/expr.c:387 java/verify.c:1464
-#: java/verify.c:1465 java/verify.c:1480
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3348
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤Î¾ò·ï¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3351
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤ÎÊ£¹ç¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3354
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
msgstr "ISO C ¤Ïº¸ÊÕÃͤȤ·¤Æ¤Î¥­¥ã¥¹¥È¼°¤ÎÍøÍѤò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3371
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑ¥á¥ó¥Ð `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3375
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÊÑ¿ô `%s' ¤Ë¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3378
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr "%s¤¬Æɤ߹þ¤ßÀìÍÑÎΰè¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3396
+#: c-typeck.c:3290
#, fuzzy, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-#: c-typeck.c:3424 ch/typeck.c:3676 ch/xtypeck.c:62
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3428 ch/typeck.c:3680 ch/xtypeck.c:66
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr "¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤¬Æþ¤ì»Ò´Ø¿ô¤ÎÃæ¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3435 ch/typeck.c:3687 ch/xtypeck.c:73
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: c-typeck.c:3447 ch/typeck.c:3699 ch/xtypeck.c:85
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr "volatile ¥Õ¥£¡¼¥ë¥É¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÃÖ¤±¤Þ¤»¤ó"
-#: c-typeck.c:3451 ch/typeck.c:3703 ch/xtypeck.c:89
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "register ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:3559
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:3566
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ISO C ¤ÏÊÒ¦¤À¤±¤¬ void ¤È¤Ê¤ë¾ò·ï¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3582 c-typeck.c:3589
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
msgstr "ISO C ¤Ï `void *' ¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤ò¾ò·ï¼°¤È¤¹¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3595
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¤Î¥Ý¥¤¥ó¥¿¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:3602 c-typeck.c:3612
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¥Ý¥¤¥ó¥¿·¿¤ÈÀ°¿ô·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:3626
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:3697 cp/typeck.c:5008
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr "¥«¥ó¥Þ±é»»»Ò¤Îº¸Â¦¤Î¼°¤Ë¸úÎϤ¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:3736
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr "¥­¥ã¥¹¥È¤¬ÇÛÎ󷿤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3742
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:3752
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ISO C ¤ÏÈó¥¹¥«¥é¡¼¤«¤éƱ¤¸·¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3771
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:3787
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
msgstr "¶¦ÍÑÂΤÎÃæ¤Ë¤Ê¤¤·¿¤«¤é¶¦ÍÑÂη¿¤Ø¥­¥ã¥¹¥È¤·¤Æ¤¤¤Þ¤¹"
+#: c-typeck.c:3736
+#, fuzzy
+msgid "cast adds new qualifiers to function type"
+msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
+
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3830
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:3845
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹"
-#: c-typeck.c:3851 cp/typeck.c:5422
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤«¤é°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤È¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:3856
+#: c-typeck.c:3767
msgid "cast does not match function type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤ë´Ø¿ô¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: c-typeck.c:3863 cp/typeck.c:5429
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
msgstr "°Û¤Ê¤ë¥µ¥¤¥º¤ÎÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤Ë¥­¥ã¥¹¥È¤µ¤ì¤Þ¤·¤¿"
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:4021
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "ÂåÆþ¤È¤·¤Æ̵¸ú¤Êº¸ÊÕÃͤǤ¹"
#. Convert new value to destination type.
-#: c-typeck.c:4030 c-typeck.c:4055 c-typeck.c:4072 ch/typeck.c:2334
-#: cp/typeck.c:5544 cp/typeck.c:5701
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "ÂåÆþ"
-#: c-typeck.c:4239 c-typeck.c:4306
+#: c-typeck.c:4070
+#, fuzzy
+msgid "cannot pass rvalue to reference parameter"
+msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr "%s¤Ë¤è¤ê¡¢½¤¾þ¤µ¤ì¤Ê¤¤´Ø¿ô¥Ý¥¤¥ó¥¿¤«¤é¡¢½¤¾þ¤µ¤ì¤¿´Ø¿ô¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤¹"
-#: c-typeck.c:4243 c-typeck.c:4286
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr "%s¤Ë¤è¤ê¡¢¥Ý¥¤¥ó¥¿¤Î¼¨¤¹·¿¤«¤é¤Î½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: c-typeck.c:4249
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C ¤Ç¤Ï°ú¿ô¤«¤é¶¦ÍÑÂΤؤÎÊÑ´¹¤ò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4278
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
msgstr "ISO C ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È `void *' ¤È¤Î%s¤ò¶Ø¤¸¤Þ¤¹"
-#: c-typeck.c:4295
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr "%s ¤Ç¥Ý¥¤¥ó¥¿¤Î¼¨¤¹ÂоݤÎÉä¹æ¤Î̵ͭ¤¬°Û¤Ê¤ê¤Þ¤¹"
-#: c-typeck.c:4311
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr "¸ß´¹À­¤Î¤Ê¤¤¥Ý¥¤¥ó¥¿·¿¤«¤é¤Î%s¤Ç¤¹"
-#: c-typeck.c:4327
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "Èóº¸ÊÕÃÍÇÛÎó¤Î̵¸ú¤ÊÍøÍÑ"
+
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤ÇÀ°¿ô¤«¤é¥Ý¥¤¥ó¥¿¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:4335
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr "%s¤Ë¤è¤ê¡¢¥­¥ã¥¹¥È¤Ê¤·¤Ç¥Ý¥¤¥ó¥¿¤«¤éÀ°¿ô¤òºî¤ê¤Þ¤·¤¿"
-#: c-typeck.c:4349 c-typeck.c:4352
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:4356
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr "´ÖÀÜŪ¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÂè %d °ú¿ô¤ËÂФ·¤Æ¸ß´¹À­¤Î¤Ê¤¤·¿¤Ç¤¹"
-#: c-typeck.c:4360
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
#. Function name is known; supply it.
-#: c-typeck.c:4391
+#: c-typeck.c:4358
+#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "°ú¿ô %d ¸Ä¤Î´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ·¤Þ¤¹"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4401
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
msgstr "°ú¿ô %d ¸Ä¤Î´Ø¿ô¥Ý¥¤¥ó¥¿¤òÅϤ·¤Þ¤¹"
-#: c-typeck.c:4468
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
msgstr "static ÊÑ¿ô¤Î½é´ü²½»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:4474
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
msgstr "static ÊÑ¿ô¤Î½é´ü²½»Ò¤¬Ê£»¨¤Ê·×»»¤ò»È¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4482
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
msgstr "½¸¹çÂΤνé´ü²½»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:4484
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
msgstr "½¸¹çÂΤνé´ü²½»Ò¤ÇÊ£»¨¤Ê·×»»¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:4491
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
msgstr "¸Å¤¤ C ¤Ç¤Ï¼«Æ°Åª¤Ê½¸¹çÂΤνé´ü²½¤òµñÀ䤷¤Þ¤¹"
-#: c-typeck.c:4652 c-typeck.c:4668 c-typeck.c:4684
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: c-typeck.c:4736 cp/typeck2.c:531
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr "¥ï¥¤¥Éʸ»úÎ󤫤é char ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4743 cp/typeck2.c:538
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr "Èó¥ï¥¤¥Éʸ»úÎ󤫤é int ¤ÎÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4761 cp/typeck2.c:554
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr "char ¤ÎÇÛÎó¤Ë¤È¤Ã¤Æ½é´ü²½»Òʸ»úÎó¤¬Ä¹¤¹¤®¤Þ¤¹"
-#: c-typeck.c:4797
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr "ÈóÄê¿ôÇÛÎó¼°¤«¤éÇÛÎ󤬽é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:4814 c-typeck.c:4816 c-typeck.c:4832 c-typeck.c:4853
-#: c-typeck.c:6264
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr "½é´ü²½»Ò¤ÎÍ×ÁǤ¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:4848
+#: c-typeck.c:4873
msgid "initialization"
msgstr "½é´ü²½"
-#: c-typeck.c:4859 c-typeck.c:6269
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr "½é´ü²½»Ò¤ÎÍ×ÁÇ¤Ï¥í¡¼¥É»þ¤Ë·×»»¤µ¤ìÆÀ¤Þ¤»¤ó"
-#: c-typeck.c:4896 c-typeck.c:4912 cp/typeck2.c:631
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
msgstr "̵¸ú¤Ê½é´ü²½»Ò"
-#: c-typeck.c:5397
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
msgstr "½é´ü²½»Ò¤Î½ª¤ï¤ê¤Ë;ʬ¤Ê¥Ö¥ì¡¼¥¹¤Î¥°¥ë¡¼¥×"
-#: c-typeck.c:5417
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr "½é´ü²½»Ò¤Î¤Þ¤ï¤ê¤Î¥Ö¥ì¡¼¥¹¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:5469
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:5517
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr "¥Í¥¹¥È¤·¤¿Ê¸Ì®¤Ç²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:5519
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:5550
+#: c-typeck.c:5554
msgid "missing initializer"
msgstr "½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:5575
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr "¶õ¤Î¥¹¥«¥é¡¼½é´ü²½»Ò"
-#: c-typeck.c:5580
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤Ë;ʬ¤ÊÍ×ÁÇ"
-#: c-typeck.c:5666
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
msgstr "½é´ü²½»Ø̾»Ò¤Ç¤Ï¥Í¥¹¥È¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: c-typeck.c:5687 c-typeck.c:5758
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr "ÈóÇÛÎó¤Î½é´ü²½»Ò¤ËÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤·¤¿"
-#: c-typeck.c:5692 c-typeck.c:5810
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
msgstr "¥ì¥³¡¼¥É¤ä¶¦ÍÑÂΤ˥ե£¡¼¥ë¥É̾¤¬¤Ê¤¤½é´ü²½»Ò¤Ç¤¹"
-#: c-typeck.c:5754 c-typeck.c:5756
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:5761
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
msgstr "½é´ü²½»ÒÆâ¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿"
-#: c-typeck.c:5772
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:5781
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
msgstr "½é´ü²½»Ò¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÇÛÎó¤Î¶­³¦¤òĶ¤¨¤Þ¤·¤¿"
-#: c-typeck.c:5822
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: c-typeck.c:5859 c-typeck.c:5880 c-typeck.c:6332
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr "½é´ü²½¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤¬ÉûºîÍѤǾå½ñ¤­¤µ¤ì¤Þ¤¹"
-#: c-typeck.c:6542
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr "char ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6549 c-typeck.c:6588
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr "¹½Â¤Âνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6655
+#: c-typeck.c:6626
+#, fuzzy
+msgid "non-static initialization of a flexible array member"
+msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6676
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr "¸Å¤¤ C ¤Ï¶¦ÍÑÂΤνé´ü¤òµñÀ䤷¤Þ¤¹"
-#: c-typeck.c:6739
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr "ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6765
+#: c-typeck.c:6806
+#, fuzzy
+msgid "excess elements in vector initializer"
+msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
+
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr "¥¹¥«¥é¡¼½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: c-typeck.c:6876 ch/parse.c:2026
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:6908
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr "asm ʸ¤ÎÃæ¤Ë̵¸ú¤Êº¸ÊÕÃÍ"
-#: c-typeck.c:6979
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr "`asm' ¤Ë¤è¤ë½¤Àµ"
-#: c-typeck.c:6998 cp/typeck.c:6586
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr "`noreturn' ¤ÎÀë¸À¤µ¤ì¤¿´Ø¿ô¤Ë `return' ʸ¤¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:7005
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr "Ìá¤ê·¿¤¬´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:7011
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹"
-#: c-typeck.c:7015
+#: c-typeck.c:7078
msgid "return"
msgstr "return"
-#: c-typeck.c:7066
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr "´Ø¿ô¤¬¥í¡¼¥«¥ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤òÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: c-typeck.c:7123 cp/semantics.c:525
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "switch ¤ÎÆâÍƤ¬À°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:7134
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr "ISO C ¤Ç¤Ï `long' ¤Î switch ¼°¤Ï `int' ¤ËÊÑ´¹¤µ¤ì¤Þ¤»¤ó"
-#: c-typeck.c:7177 cp/decl.c:5214
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: c-typeck.c:7179 cp/decl.c:5219
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
msgstr "`default' ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: calls.c:1889
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Î¥¤¥ó¥é¥¤¥ó²½¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: calls.c:1890 calls.c:2196
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr "¤³¤³¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿"
-#: calls.c:2195
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Þ¤»¤ó"
-#: calls.c:2233
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr "´Ø¿ô¸Æ¤Ó½Ð¤·¤¬½¸¹çÂΤÎÃͤò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: calls.c:4527
-#, fuzzy
-msgid "variable offset is passed partially in stack and in reg"
-msgstr "ÊÑ¿ô¥ª¥Õ¥»¥Ã¥È¤¬¥¹¥¿¥Ã¥¯¤È¥ì¥¸¥¹¥¿¤ÇÅù²Á¤ËÅϤµ¤ì¤Þ¤·¤¿"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr ""
-#: calls.c:4529
-msgid "variable size is passed partially in stack and in reg"
-msgstr "ÊÑ¿ô¥µ¥¤¥º¤¬¥¹¥¿¥Ã¥¯¤È¥ì¥¸¥¹¥¿¤ÇÅù²Á¤ËÅϤµ¤ì¤Þ¤·¤¿"
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr ""
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr ""
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
-#: cfgrtl.c:1545
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr ""
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr ""
+
+#: cfgrtl.c:1800
#, fuzzy, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "½ªÎ»Ì¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
-#: cfgrtl.c:1559
+#: cfgrtl.c:1814
#, fuzzy, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "Ì¿Îá %d ¤¬Ê£¿ô¤Î´ðËÜ¥Ö¥í¥Ã¥¯(%d ¤È %d)¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: cfgrtl.c:1570
+#: cfgrtl.c:1826
#, fuzzy, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "³«»ÏÌ¿Îá %d(¥Ö¥í¥Ã¥¯ %d) ¤¬°ìÏ¢¤ÎÌ¿ÎáÎó¤ÎÃæ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
-#: cfgrtl.c:1590
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr ""
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: cfgrtl.c:1606
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1620
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1622
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:1628
+#: cfgrtl.c:1935
#, fuzzy, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d pred edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:1651
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr ""
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1975
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "¾ò·ï¤Î¼Â¹Ô¤è¤ê¤Ïʬ´ô¤ÎÀ¸À®¤òÍ¥À褹¤ë"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:1662
+#: cfgrtl.c:2014
#, fuzzy, c-format
msgid "basic block %d pred edge is corrupted"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d pred edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:1678
-#, fuzzy, c-format
-msgid "insn %d is inside basic block %d but block_for_insn is NULL"
-msgstr "Ì¿Îá %d ¤¬Ê£¿ô¤Î´ðËÜ¥Ö¥í¥Ã¥¯(%d ¤È %d)¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr ""
-#: cfgrtl.c:1681
-#, fuzzy, c-format
-msgid "insn %d is inside basic block %d but block_for_insn is %i"
-msgstr "Ì¿Îá %d ¤¬Ê£¿ô¤Î´ðËÜ¥Ö¥í¥Ã¥¯(%d ¤È %d)¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr ""
-#: cfgrtl.c:1694 cfgrtl.c:1702
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK ¤¬¥Ö¥í¥Ã¥¯ %d ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cfgrtl.c:1718
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d"
+#: cfgrtl.c:2072
+#, fuzzy, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d ¤¬´ðËÜ¥Ö¥í¥Ã¥¯ %d ¤ÎÃæ¤Û¤É¤Ë¤¢¤ê¤Þ¤¹"
-#: cfgrtl.c:1730
+#: cfgrtl.c:2084
#, fuzzy, c-format
msgid "in basic block %d:"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:"
-#: cfgrtl.c:1731
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:1751
+#: cfgrtl.c:2104
#, fuzzy, c-format
msgid "basic block %i edge lists are corrupted"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %i edge ¥ê¥¹¥È¤¬µ¡Ç½¤·¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:1765
+#: cfgrtl.c:2119
#, fuzzy
msgid "basic blocks not numbered consecutively"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤¬Ï¢Â³Åª¤ËÈÖ¹æÉÕ¤±¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:1792
+#: cfgrtl.c:2144
#, fuzzy
msgid "insn outside basic block"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:"
-#: cfgrtl.c:1800
+#: cfgrtl.c:2152
#, fuzzy
msgid "return not followed by barrier"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: cfgrtl.c:1807
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "Ì¿ÎáÏ¢º¿Ãæ¤Î bb ¤Î¿ô (%d) ¤¬ n_basic_blocks (%d) ¤È°ã¤¤¤Þ¤¹"
-#: cfgrtl.c:1811
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
msgstr ""
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr "ÆâÉô¥¨¥é¡¼"
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr "°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 version %s"
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d ¸Ä¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d ¸Ä¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d ¸Ä¤Î¥Õ¥ì¡¼¥à¥Æ¡¼¥Ö¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
-#: collect2.c:1514
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s ¥·¥°¥Ê¥ë %d [%s]%s ¤Ç½ªÎ»¤µ¤»¤é¤ì¤Þ¤·¤¿"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr "%s ¤Ï exit ¾õÂÖ %d ¤òÊÖ¤·¤Þ¤·¤¿"
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr "[%s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó]"
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr "`%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr "stdout ¤Ø¤Î¥ê¥À¥¤¥ì¥¯¥È: %s"
-#: collect2.c:1633
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s ¤òÎ¥¤ì¤Þ¤¹]\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
-msgid "\nwrite_c_file - output name is %s, prefix is %s\n"
-msgstr "\nwrite_c_file - ½ÐÎÏ̾¤Ï %s¡¢¥×¥ì¥Õ¥£¥¯¥¹¤Ï %s\n"
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - ½ÐÎÏ̾¤Ï %s¡¢¥×¥ì¥Õ¥£¥¯¥¹¤Ï %s\n"
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr "`nm' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574
-#: collect2.c:2577 collect2.c:2590
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr "init ´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È %s ¤Ç¸«¤Ä¤±¤Þ¤·¤¿"
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr "fini ´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È %s ¤Ç¸«¤Ä¤±¤Þ¤·¤¿"
-#: collect2.c:2223 collect2.c:2629
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò stat ¤Ç¤­¤Þ¤»¤ó"
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò mmap ¤Ç¤­¤Þ¤»¤ó"
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr "ưŪ°Í¸´Ø·¸ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ËÉÔÀµ¤Ê¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "ưŪ°Í¸´Ø·¸¡£\n"
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr "`ldd' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr "execv %s"
-
-#: collect2.c:2593
-msgid "\nldd output with constructors/destructors.\n"
-msgstr "\nldd ½ÐÎϤ¬¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤òȼ¤¤¤Þ¤¹¡£\n"
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"ldd ½ÐÎϤ¬¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤òȼ¤¤¤Þ¤¹¡£\n"
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "ưŪ°Í¸´Ø·¸ '%s' ¤ò³«¤±¤Þ¤»¤ó"
-#: collect2.c:2734
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: COFF ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: collect2.c:2853
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: COFF ¥Õ¥¡¥¤¥ë¤È¤·¤Æ³«¤±¤Þ¤»¤ó"
-#: collect2.c:2909
+#: collect2.c:2901
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "¥é¥¤¥Ö¥é¥ê lib%s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:3038
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "open %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
msgstr "ξΩ¤·¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È´üÂÔÃÍ"
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
-msgid "\nProcessing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
-msgstr "\n¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë #%d ¤ò½èÍý¤·¤Þ¤¹¡¢¥ª¥Õ¥»¥Ã¥È = 0x%.8lx, ¼ïÎà = %s\n"
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+"\n"
+"¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë #%d ¤ò½èÍý¤·¤Þ¤¹¡¢¥ª¥Õ¥»¥Ã¥È = 0x%.8lx, ¼ïÎà = %s\n"
-#: collect2.c:3143
+#: collect2.c:3133
msgid "string section missing"
msgstr "ʸ»úÎ󥻥¯¥·¥ç¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: collect2.c:3146
+#: collect2.c:3136
msgid "section pointer missing"
msgstr "¥»¥¯¥·¥ç¥ó¥Ý¥¤¥ó¥¿¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: collect2.c:3194
+#: collect2.c:3184
msgid "no symbol table found"
msgstr "¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:3207
+#: collect2.c:3197
msgid "no cmd_strings found"
msgstr "cmd_strings ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: collect2.c:3219
-msgid "\nUpdating header and load commands.\n\n"
-msgstr "\n¥Ø¥Ã¥À¤È load ¥³¥Þ¥ó¥É¤ò¹¹¿·¤·¤Þ¤¹¡£\n"
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+"\n"
+"¥Ø¥Ã¥À¤È load ¥³¥Þ¥ó¥É¤ò¹¹¿·¤·¤Þ¤¹¡£\n"
-#: collect2.c:3226
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr "load ¥³¥Þ¥ó¥É¥Þ¥Ã¥×¡¢%d ¸Ä¤Î¥³¥Þ¥ó¥É¡¢¿·¤¿¤Ê¥µ¥¤¥º %ld¡£\n"
-#: collect2.c:3257
-msgid "writing load commands.\n\n"
-msgstr "load ¥³¥Þ¥ó¥É¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£\n\n"
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+"load ¥³¥Þ¥ó¥É¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£\n"
+"\n"
-#: collect2.c:3277
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "close %s"
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr "0x%l.8x ¤òÎΰè¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr "%s ´Ø¿ô, Îΰè %d, ¥ª¥Õ¥»¥Ã¥È = %ld (0x%.8lx)\n"
-#: collect2.c:3482
+#: collect2.c:3472
msgid "bad magic number"
msgstr "ÉÔÀµ¤Ê¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
msgstr "ÉÔÀµ¤Ê¥Ø¥Ã¥À¥Ð¡¼¥¸¥ç¥ó"
-#: collect2.c:3484
+#: collect2.c:3474
msgid "bad raw header version"
msgstr "ÉÔÀµ¤ÊÀ¸¤Î¥Ø¥Ã¥À¥Ð¡¼¥¸¥ç¥ó"
-#: collect2.c:3485
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "¾®¤µ¤¹¤®¤ëÀ¸¤Î¥Ø¥Ã¥À¥Ð¥Ã¥Õ¥¡"
-#: collect2.c:3486
+#: collect2.c:3476
msgid "old raw header file"
msgstr "¸Å¤¤À¸¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë"
-#: collect2.c:3487
+#: collect2.c:3477
msgid "unsupported version"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr "ÉÔÌÀ¤Ê {de,en}code_mach_o_hdr Ìá¤êÃÍ %d"
-#: collect2.c:3509
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "lseek %s 0"
-#: collect2.c:3550
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "%ld ¥Ð¥¤¥ÈÆɹþ¤ß¡£%ld (%s ¤«¤é)Æɹþ¤à¤Ï¤º¤Ç¤¹"
-#: collect2.c:3574
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "msync %s"
-#: collect2.c:3581
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "munmap %s"
-#: collect2.c:3598
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "%ld ¥Ð¥¤¥È½ñ¹þ¤ß¡£%ld (%s ¤Ø)½ñ¹þ¤à¤Ï¤º¤Ç¤¹"
-#: combine.c:12615
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3751,7 +4136,7 @@ msgstr ""
";; ·ë¹çÅý·×: %d »î¹Ô, %d ÂåÂØ (%d ¿·¤¿¤Ê¶õ´Ö¤òÍ×µá),\n"
";; %d À®¸ù¡£\n"
-#: combine.c:12625
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3762,229 +4147,262 @@ msgstr ""
";; ·ë¹ç¹ç·×: %d »î¹Ô, %d ÂåÂØ (%d ¿·¤¿¤Ê¶õ´Ö¤òÍ×µá),\n"
";; %d À®¸ù¡£\n"
-#: convert.c:67
+#: convert.c:69
msgid "cannot convert to a pointer type"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
msgstr "ÉâÆ°¾®¿ôÅÀ·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢½¸¹çÂΤÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: convert.c:130
+#: convert.c:132
msgid "conversion to incomplete type"
msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
msgid "can't convert between vector values of different size"
msgstr "Â礭¤µ¤Î°Û¤Ê¤ë¥Ù¥¯¥È¥ëÃÍƱ»Î¤ÎÊÑ´¹¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
msgstr "À°¿ô·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢½¸¹çÂΤÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: convert.c:448 f/com.c:1072
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
msgstr "Ê£ÁÇ¿ô·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: convert.c:452 f/com.c:1074
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
msgstr "Ê£ÁÇ¿ô·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢½¸¹çÂΤÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: convert.c:476
+#: convert.c:500
msgid "can't convert value to a vector"
msgstr "Ãͤò¥Ù¥¯¥È¥ë¤Ë¤ÏÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cpperror.c:124
+#: cpperror.c:113
+msgid "warning: "
+msgstr "·Ù¹ð: "
+
+#: cpperror.c:115
msgid "internal error: "
msgstr "ÆâÉô¥¨¥é¡¼: "
-#: cpperror.c:131 tradcpp.c:4679
-msgid "warning: "
-msgstr "·Ù¹ð: "
+#: cpperror.c:189
+#, fuzzy
+msgid "stdout"
+msgstr "¹½Â¤ÂÎ"
-#: cpperror.c:208 cpperror.c:292 cppfiles.c:677 gcc.c:6308 tradcpp.c:4717
+#: cpperror.c:191 gcc.c:6428
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: cppexp.c:155
+#: cppexp.c:199
#, fuzzy
-msgid "floating point numbers are not valid in #if"
-msgstr "#if ¼°¤ÎÃæ¤Ç¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
+msgid "too many decimal points in number"
+msgstr "`asm' Ãæ¤ÎÂåÂØ¥­¡¼¥ï¡¼¥É¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cppexp.c:177
-msgid "traditional C rejects the `U' suffix"
-msgstr "¸Å¤¤ C ¤Ç¤Ï `U' ÀÜÈø¼­¤¬µñÀ䤵¤ì¤Þ¤¹"
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: cppexp.c:180
-msgid "too many 'l' suffixes in integer constant"
-msgstr "À°¿ôÄê¿ô¤Î¥µ¥Õ¥£¥Ã¥¯¥¹ 'l' ¤¬Â¿¤¹¤®¤Þ¤¹"
+#: cppexp.c:225
+#, fuzzy
+msgid "use of C99 hexadecimal floating constant"
+msgstr "16 ¿ÊÉâÆ°¾®¿ôÄê¿ô¤¬¤Ù¤­¾è¤ò»ý¤Á¤Þ¤»¤ó"
-#: cppexp.c:184
-msgid "integer constant contains digits beyond the radix"
-msgstr "À°¿ôÄê¿ô¤¬´ð¿ô¤òĶ¤¨¤¿¿ôÃͤò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+#: cppexp.c:234
+#, fuzzy
+msgid "exponent has no digits"
+msgstr "ÉâÆ°¾®¿ôÄê¿ô¤Î¤Ù¤­¿ô¤¬¡¢¥¢¥é¥Ó¥¢¿ô»ú¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: cppexp.c:187
-msgid "integer constant out of range"
-msgstr "À°¿ôÄê¿ô¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
+#: cppexp.c:241
+#, fuzzy
+msgid "hexadecimal floating constants require an exponent"
+msgstr "16 ¿ÊÉâÆ°¾®¿ôÄê¿ô¤¬¤Ù¤­¾è¤ò»ý¤Á¤Þ¤»¤ó"
-#: cppexp.c:193
-msgid "integer constant is so large that it is unsigned"
-msgstr "À°¿ôÄê¿ô¤¬Â礭¤¹¤®¤ë¤Î¤Ç unsigned ¤Ë¤Ê¤ê¤Þ¤·¤¿"
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ÀÜÈø¼­ '%.*s' ¤ÏÀ°¿ôÄê¿ô¤Ë¤Ï̵¸ú¤Ç¤¹"
-#: cppexp.c:202
-#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
+#: cppexp.c:257 cppexp.c:282
+#, fuzzy, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "¸Å¤¤ C ¤Ç¤Ï 'f' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+
+#: cppexp.c:268
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "ÀÜÈø¼­ '%.*s' ¤ÏÀ°¿ôÄê¿ô¤Ë¤Ï̵¸ú¤Ç¤¹"
-#: cppexp.c:234
+#: cppexp.c:289
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "ISO C89 ¤Ç¤Ï long long À°¿ôÄê¿ô¤ò¶Ø¤¸¤Þ¤¹"
+
+#: cppexp.c:295
+#, fuzzy
+msgid "imaginary constants are a GCC extension"
+msgstr "#if ¼°¤ÎÃæ¤Ç¤Ïʸ»úÎóÄê¿ô¤¬»È¤¨¤Þ¤»¤ó"
+
+#: cppexp.c:383
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "À°¿ôÄê¿ô¤¬Â礭¤¹¤®¤ë¤Î¤Ç unsigned ¤Ë¤Ê¤ê¤Þ¤·¤¿"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "À°¿ôÄê¿ô¤¬Â礭¤¹¤®¤ë¤Î¤Ç unsigned ¤Ë¤Ê¤ê¤Þ¤·¤¿"
+
+#: cppexp.c:482
msgid "missing ')' after \"defined\""
msgstr "\"defined\" ¤Î¸å¤í¤Î ')' ¤¬·ç¤±¤Æ¤¤¤Þ¤¹"
-#: cppexp.c:240
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
msgstr "\"defined\" ±é»»»Ò¤Ï¼±Ê̻ҤòÍ׵ᤷ¤Þ¤¹"
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "¡ÊC++ ¤Ç¤Ï \"%s\" ¤¬ \"%s\" ¤ÎÂåÂإȡ¼¥¯¥ó¤Ç¤¹¡Ë"
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr ""
-#: cppexp.c:306
+#: cppexp.c:545
#, fuzzy
-msgid "string constants are not valid in #if"
-msgstr "#if ¼°¤ÎÃæ¤Ç¤Ïʸ»úÎóÄê¿ô¤¬»È¤¨¤Þ¤»¤ó"
-
-#: cppexp.c:310
-#, fuzzy, c-format
-msgid "invalid character '%c' in #if"
-msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
+msgid "floating constant in preprocessor expression"
+msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cppexp.c:312
-#, fuzzy, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
+#: cppexp.c:551
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cppexp.c:329
+#: cppexp.c:596
#, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
msgstr "ISO C++ ¤Ï #if Æâ¤Î \"%s\" ¤òµö¤·¤Þ¤»¤ó"
-#: cppexp.c:340
+#: cppexp.c:604
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cppexp.c:366
+#: cppexp.c:737 cppexp.c:772
+#, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr ""
+
+#: cppexp.c:756
#, fuzzy, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "\"%s\" ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÀµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+msgid "invalid character '%c' in #if"
+msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
-#: cppexp.c:380
-msgid "integer overflow in preprocessor expression"
-msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+#: cppexp.c:758
+#, fuzzy, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
-#: cppexp.c:607
-#, fuzzy
-msgid "missing binary operator"
-msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: cppexp.c:763
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cppexp.c:642
+#: cppexp.c:782
#, fuzzy
msgid "void expression between '(' and ')'"
msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-#: cppexp.c:644
+#: cppexp.c:785
+#, fuzzy
+msgid "#if with no expression"
+msgstr " throw ¤µ¤ì¤¿¼°¤ÎÃæ"
+
+#: cppexp.c:787
#, fuzzy, c-format
msgid "operator '%s' has no right operand"
msgstr "È¿Éü»Ò `%s' ¤ÏÈóÀ°¿ô·¿¤Ç¤¹"
-#: cppexp.c:656
-#, c-format
-msgid "impossible operator '%s'"
-msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'"
-
-#: cppexp.c:732 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
-msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-
-#: cppexp.c:766
-msgid "comma operator in operand of #if"
-msgstr "¥«¥ó¥Þ±é»»»Ò¤¬ #if ±é»»»Ò¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr ""
-#: cppexp.c:771
+#: cppexp.c:840
#, fuzzy
-msgid "syntax error '?' without following ':'"
-msgstr "'@' ¥È¡¼¥¯¥ó¤Çʸˡ¥¨¥é¡¼"
+msgid "unbalanced stack in #if"
+msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤ #endif"
-#: cppexp.c:774
-#, fuzzy
-msgid "syntax error ':' without preceding '?'"
-msgstr "'@' ¥È¡¼¥¯¥ó¤Çʸˡ¥¨¥é¡¼"
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'"
-#: cppexp.c:782
+#: cppexp.c:954
#, fuzzy
msgid "missing ')' in expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: cppexp.c:789
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr ""
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+
+#: cppexp.c:990
#, fuzzy
msgid "missing '(' in expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: cppexp.c:815
-#, fuzzy, c-format
-msgid "missing binary operator before '%s'"
-msgstr "¿ô»ú '%.*s' ¤Î¸å¤Ë¶õÇò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: cppexp.c:821
-#, fuzzy, c-format
-msgid "operator '%s' has no left operand"
-msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
-#: cppexp.c:859
-#, fuzzy
-msgid "unbalanced stack in #if"
-msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤ #endif"
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
-#: cppexp.c:862
-#, fuzzy
-msgid "#if with no expression"
-msgstr " throw ¤µ¤ì¤¿¼°¤ÎÃæ"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "¥«¥ó¥Þ±é»»»Ò¤¬ #if ±é»»»Ò¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: cppfiles.c:334
-msgid "<stdin>"
-msgstr "<ɸ½àÆþÎÏ>"
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cppfiles.c:378
+#: cppfiles.c:411
#, c-format
msgid "%s is too large"
msgstr "%s ¤ÏÂ礭¤¹¤®¤Þ¤¹"
-#: cppfiles.c:415
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
msgstr "%s ¤¬ËÜÍè¤è¤ê¤âû¤¤¤Ç¤¹"
-#: cppfiles.c:429
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr "%s ¤Ï¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤Ç¤¹"
-#: cppfiles.c:555
+#: cppfiles.c:594
#, fuzzy, c-format
msgid "no include path in which to find %s"
msgstr "%s ¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cppfiles.c:627
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr "¿½Å include ¤«¤é¤ÎÊݸͭ±×¤È¤Ê¤ë¤Ç¤·¤ç¤¦:\n"
@@ -3992,881 +4410,672 @@ msgstr "¿½Å include ¤«¤é¤ÎÊݸͭ±×¤È¤Ê¤ë¤Ç¤·¤ç¤¦:\n"
msgid "absolute file name in remap_filename"
msgstr "ÀäÂХѥ¹¥Õ¥¡¥¤¥ë̾¤¬ remap_filename ¤Ë¤¢¤ê¤Þ¤¹"
-#: cppinit.c:230
+#: cppinit.c:224
#, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "¸ºß¤·¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê \"%s\" ¤ò̵»ë¤·¤Þ¤¹\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, c-format
msgid "%s: Not a directory"
msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cppinit.c:284
+#: cppinit.c:287
#, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr "½ÅÊ£¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê \"%s\" ¤ò̵»ë¤·¤Þ¤¹\n"
-#: cppinit.c:312
-#, fuzzy, c-format
-msgid "changing search order for system directory \"%s\""
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr ""
+
+#: cppinit.c:891
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "½Ò¸ì¤Ï¼±Ê̻ҤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cppinit.c:316
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
msgstr ""
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
msgstr ""
-#: cppinit.c:929
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" ¤Îõº÷¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹:\n"
-#: cppinit.c:933
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
msgstr "#include <...> ¤Îõº÷¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹:\n"
-#: cppinit.c:936
+#: cppinit.c:979
msgid "End of search list.\n"
msgstr "õº÷¥ê¥¹¥È¤Î½ª¤ï¤ê\n"
-#: cppinit.c:1003
+#: cppinit.c:1057
#, fuzzy
msgid "<built-in>"
msgstr "<ÁȤ߹þ¤ß>"
-#: cppinit.c:1005
+#: cppinit.c:1059
msgid "<command line>"
msgstr "<¥³¥Þ¥ó¥É¥é¥¤¥ó>"
-#: cppinit.c:1101 tradcpp.c:968 tradcpp.c:978 tradcpp.c:1069
-msgid "I/O error on output"
-msgstr "½ÐÎÏÃæ¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸"
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1148
-#, fuzzy, c-format
-msgid "argument missing after %s"
-msgstr "%s ¤Î¸å¤í¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: cppinit.c:1149
+#: cppinit.c:1164
#, fuzzy, c-format
msgid "assertion missing after %s"
msgstr "%s ¤Î¸å¤í¤Î¥¢¥µ¡¼¥·¥ç¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppinit.c:1150
+#: cppinit.c:1165
#, fuzzy, c-format
msgid "directory name missing after %s"
msgstr "%s ¤Î¸å¤í¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppinit.c:1151
+#: cppinit.c:1166
#, fuzzy, c-format
msgid "file name missing after %s"
msgstr "%s ¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppinit.c:1152
+#: cppinit.c:1167
#, fuzzy, c-format
msgid "macro name missing after %s"
msgstr "%s ¤Î¸å¤í¤Î¥Þ¥¯¥í̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppinit.c:1153
+#: cppinit.c:1168
#, fuzzy, c-format
msgid "path name missing after %s"
msgstr "%s ¤Î¸å¤í¤Î¥Ñ¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppinit.c:1154
-#, fuzzy, c-format
-msgid "number missing after %s"
-msgstr "%s ¤Î¸å¤í¤Î¿ô»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: cppinit.c:1155
-#, fuzzy, c-format
-msgid "target missing after %s"
-msgstr "%s ¤Î¸å¤í¤Î¥¿¡¼¥²¥Ã¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: cppinit.c:1340
-#, fuzzy, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr "¥Õ¥¡¥¤¥ë̾¤¬Â¿¤¹¤®¤Þ¤¹¡£%s --help ¤È¥¿¥¤¥×¤·¤Æ»È¤¤Êý¤ò¸«¤Þ¤·¤ç¤¦"
-
-#: cppinit.c:1524 tradcpp.c:603
-#, fuzzy
-msgid "output filename specified twice"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë̾¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
-
-#: cppinit.c:1636
+#: cppinit.c:1353
msgid "-I- specified twice"
msgstr "-I- ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cppinit.c:1775
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP version %s (cpplib)"
-
-#: cppinit.c:1816 tradcpp.c:792
-msgid "you must additionally specify either -M or -MM"
-msgstr "-M ¤« -MM ¤Î¤¤¤º¤ì¤«¤òÄɲÃŪ¤Ë»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: cppinit.c:1878
-#, c-format
-msgid "Usage: %s [switches] input output\n"
-msgstr "»È¤¤Êý: %s [¥¹¥¤¥Ã¥Á] ÆþÎÏ ½ÐÎÏ\n"
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1881
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-"¥¹¥¤¥Ã¥Á:\n"
-" -include <file> ¾¤Î¥Õ¥¡¥¤¥ë¤ÎÁ°¤Ë <file> ¤ÎÆâÍƤò´Þ¤á¤ë\n"
-" -imacros <file> <file> ¤Î¥Þ¥¯¥íÄêµÁ¤ò¼õ¤±Æþ¤ì¤ë\n"
-" -iprefix <path> ¼¡¤ÎÆó¤Ä¤Î¥ª¥×¥·¥ç¥óÍÑ¥×¥ì¥Õ¥£¥¯¥¹¤Ë <path> ¤ò»ØÄê\n"
-" -iwithprefix <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
-" -iwithprefixbefore <dir> <dir> ¤ò¥á¥¤¥ó include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
-" -isystem <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤ÎºÇ½é¤ËÄɲ乤ë\n"
-
-#: cppinit.c:1890
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-" -idirafter <dir> <dir> ¤ò¥·¥¹¥Æ¥à include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
-" -I <dir> <dir> ¤ò¥á¥¤¥ó include ¥Ñ¥¹¤Î½ª¤ê¤ËÄɲ乤ë\n"
-" -I- ¤­¤áºÙ¤«¤Ê include ¥Ñ¥¹À©¸æ -- info ʸ½ñ¤ò»²¾È\n"
-" -nostdinc ¥·¥¹¥Æ¥à include ¥Ç¥£¥ì¥¯¥È¥ê¤òõº÷¤·¤Ê¤¤\n"
-" (-system ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Ïõº÷¤µ¤ì¤ë)\n"
-" -nostdinc++ C++ ÍÑ¥·¥¹¥Æ¥à include ¥Ç¥£¥ì¥¯¥È¥ê¤òõº÷¤·¤Ê¤¤\n"
-" -o <file> <file> ¤Ø½ÐÎϤ¹¤ë\n"
-
-#: cppinit.c:1899
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-" -pedantic ¸·Ì©¤Ê ISO C ¤ÇÍ׵ᤵ¤ì¤ëÁ´¤Æ¤Î·Ù¹ð¤òȯ¹Ô¤¹¤ë\n"
-" -pedantic-errors -pedantic ·Ù¹ð¤ÎÂå¤ê¤Ë¥¨¥é¡¼¤òȯ¹Ô¤¹¤ë\n"
-" -trigraphs ISO C ¥È¥é¥¤¥°¥é¥Õ¤ò¼õ¤±Æþ¤ì¤ë\n"
-" -lang-c ÆþÎÏ¥½¡¼¥¹¤ò C ¤È¤ß¤Ê¤¹\n"
-" -lang-c89 ÆþÎÏ¥½¡¼¥¹¤ò C89 ¤È¤ß¤Ê¤¹\n"
-
-#: cppinit.c:1906
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-" -lang-c++ ÆþÎÏ¥½¡¼¥¹¤ò C ¤È¤ß¤Ê¤¹\n"
-" -lang-objc ÆþÎÏ¥½¡¼¥¹¤ò ObjectiveC ¤È¤ß¤Ê¤¹\n"
-" -lang-objc++ ÆþÎÏ¥½¡¼¥¹¤ò ObjectiveC++ ¤È¤ß¤Ê¤¹\n"
-" -lang-asm ÆþÎÏ¥½¡¼¥¹¤ò¥¢¥»¥ó¥Ö¥ê¸À¸ì¤È¤ß¤Ê¤¹\n"
-
-#: cppinit.c:1912
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-" -std=<std name> Ŭ¹ç¤µ¤»¤ëɸ½à¤ò»ØÄê -- °Ê²¼¤è¤ê°ì¤Ä\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ C++ ¼°¤Î¹½Ê¸²òÀϤòµö²Ä¤¹¤ë\n"
-" -w ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë\n"
-" -Wtrigraphs ¥È¥é¥¤¥°¥é¥Õ¤Ë½Ð¤¯¤ï¤·¤¿¤é·Ù¹ð¤¹¤ë\n"
-" -Wno-trigraphs ¥È¥é¥¤¥°¥é¥Õ¤Ë¤Ä¤¤¤Æ¤Î·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-" -Wcomment{s} ¥³¥á¥ó¥È¤¬Â¾¤Î¥³¥á¥ó¥ÈÆâ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤¿¤é·Ù¹ð¤¹¤ë\n"
-
-#: cppinit.c:1922
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-" -Wno-comment{s} ¥³¥á¥ó¥È¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-" -Wtraditional ¸½ºß¤È¤Ï°Û¤Ê¤ë¸Å¤¤ C ¤Ç¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë\n"
-" -Wno-traditional ¸Å¤¤ C ¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-" -Wundef ̤ÄêµÁ¤Î¥Þ¥¯¥í¤¬ #if ¤Ç»È¤ï¤ì¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë\n"
-" -Wno-undef ̤ÄêµÁ¥Þ¥¯¥í¤Îɾ²Á¤Ë´Ø¤¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-" -Wimport #import ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ÎÍøÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë\n"
-
-#: cppinit.c:1930
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-" -Wno-import #import ¤ÎÍøÍѤ˴ؤ¹¤ë·Ù¹ð¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-" -Werror Á´¤Æ¤Î·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¦\n"
-" -Wno-error ·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤ï¤Ê¤¤\n"
-" -Wsystem-headers ¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤·¤Ê¤¤\n"
-" -Wno-system-headers ¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤¹¤ë\n"
-" -Wall Á´¤Æ¤Î¥×¥ê¥×¥í¥»¥Ã¥µ·Ù¹ð¤òÍ­¸ú¤Ë¤¹¤ë\n"
-
-#: cppinit.c:1938
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-" -M make °Í¸´Ø·¸¤òÀ¸À®¤¹¤ë\n"
-" -MM -M ƱÍÍ¡¢Ã¢¤·¥·¥¹¥Æ¥à¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò̵»ë¤¹¤ë\n"
-" -MF <file> °Í¸´Ø·¸¤Î½ÐÎϤòÍ¿¤¨¤é¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤à\n"
-" -MG ¸«¤Ä¤«¤é¤Ê¤¤¥Ø¥Ã¥À¤òÀ¸À®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¤·¤Æ°·¤¦\n"
-
-#: cppinit.c:1944
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-" -MP\t\t\t Á´¤Æ¤Î¥Ø¥Ã¥À¤Ë¤Ä¤¤¤Æ phony ¥¿¡¼¥²¥Ã¥È¤òÀ¸À®¤¹¤ë\n"
-" -MQ <target> MAKE ¤Ç¤Î¥¯¥ª¡¼¥È¤µ¤ì¤¿¥¿¡¼¥²¥Ã¥È¤òÄɲ乤ë\n"
-" -MT <target> ¥¯¥ª¡¼¥È¤µ¤ì¤Ê¤¤¥¿¡¼¥²¥Ã¥È¤òÄɲ乤ë\n"
-
-#: cppinit.c:1949
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question> (<answer>) Assert the <answer> to <question>\n"
-" -A-<question> (<answer>) Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-" -D<macro> <macro> ¤òÄêµÁ¤·¡¢¤½¤ÎÃͤòʸ»úÎó¤Î '1' ¤È¤¹¤ë\n"
-" -D<macro>=<val> <macro> ¤òÄêµÁ¤·¡¢¤½¤ÎÃͤò <val> ¤È¤¹¤ë\n"
-" -A<question> (<answer>) <question> ¤Ë <answer> ¤ÈÀ¼ÌÀ¤¹¤ë\n"
-" -A-<question> (<answer>) <question> ¤ò <answer> ¤È¤·¤Ê¤¤\n"
-" -U<macro> <macro> ÄêµÁ¤ò²ò½ü¤¹¤ë\n"
-" -v ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-
-#: cppinit.c:1957
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-" -H »È¤ï¤ì¤¿¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë\n"
-" -C ¥³¥á¥ó¥È¤òÇË´þ¤·¤Ê¤¤\n"
-" -dM ºÇ¸å¤ËÍ­¸ú¤Ê¥Þ¥¯¥íÄêµÁ¥ê¥¹¥È¤òɽ¼¨¤¹¤ë\n"
-" -dD ½ÐÎϤ˥ޥ¯¥íÄêµÁ¤òÊݸ¤¹¤ë\n"
-" -dN -dD ¤ÈƱÍͤÀ¤¬¡¢Ì¾Á°¤À¤±¤òÊݸ¤¹¤ë\n"
-" -dI #include ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò½ÐÎϤ˴ޤá¤ë\n"
-
-#: cppinit.c:1965
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files.\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-" -fpreprocessed ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò´û¤Ë¥×¥ê¥×¥í¥»¥¹ºÑ¤È¤·¤Æ°·¤¦\n"
-" -ftabstop=<number> ¥«¥é¥à¤Î¥¿¥Ö´Ö³Ö¤òÊó¹ð¤¹¤ë\n"
-" -P #line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤òÀ¸À®¤·¤Ê¤¤\n"
-" -$ ¼±Ê̻ҤǤΠ'$' ¤òµö²Ä¤·¤Ê¤¤\n"
-" -remap ¥Õ¥¡¥¤¥ë¥¤¥ó¥¯¥ë¡¼¥É»þ¤Ë¥Õ¥¡¥¤¥ë̾¤òºÆ¥Þ¥Ã¥×¤¹¤ë\n"
-" --version ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-" -h or --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-
-#: cpplex.c:155
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr "¥È¥é¥¤¥°¥é¥Õ ??%c ¤Ï %c ¤ËÊÑ´¹¤µ¤ì¤Þ¤·¤¿"
-#: cpplex.c:163
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr "¥È¥é¥¤¥°¥é¥Õ ??%c ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cpplex.c:219
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr "¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å¤È²þ¹Ô¤¬¶õÇò¤Çʬ³ä¤µ¤ì¤Þ¤·¤¿"
-#: cpplex.c:225
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
msgstr "¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Ë¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å-²þ¹Ô¤¬¤¢¤ê¤Þ¤¹"
-#: cpplex.c:291
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
msgstr "¥³¥á¥ó¥ÈÆâ¤Ë \"/*\" ¤¬¤¢¤ê¤Þ¤¹"
-#: cpplex.c:374
+#: cpplex.c:395
msgid "null character(s) ignored"
msgstr "null ʸ»ú¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cpplex.c:381
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
msgstr "¥×¥ê¥×¥í¥»¥¹Ì¿ÎáÃæ¤Ë %s ¤¬¤¢¤ê¤Þ¤¹"
-#: cpplex.c:449
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "±øÀ÷¤µ¤ì¤¿ '%s' »È¤ª¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cpplex.c:457
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr "__VA_ARGS__ ¤Ï C99 ²ÄÊÑ°ú¿ô¥Þ¥¯¥í³ÈÄ¥¤Ç¤Î¤ß½Ð¸½¤Ç¤­¤Þ¤¹"
-#: cpplex.c:510
-msgid "'$' character(s) in identifier"
+#: cpplex.c:555
+#, fuzzy
+msgid "'$' character(s) in identifier or number"
msgstr "'$' ʸ»ú¤¬¼±Ê̻ҤËÆþ¤Ã¤Æ¤¤¤Þ¤¹"
-#: cpplex.c:589
+#: cpplex.c:698
#, c-format
msgid "missing terminating %c character"
msgstr "%c ʸ»ú¤Ç¤Î½ªÃ¼¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cpplex.c:594
-msgid "possible start of unterminated string literal"
-msgstr "½ªÃ¼¤Î¤Ê¤¤Ê¸»úÎó¥ê¥Æ¥é¥ë¤Î¿äÄ곫»Ï°ÌÃÖ"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr "Ê£¿ô¹Ôʸ»úÎó¥ê¥Æ¥é¥ë¤Ï¿ä¾©¤µ¤ì¤Þ¤»¤ó"
-
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr "¥ê¥Æ¥é¥ëÃæ¤Ç null ʸ»ú¤¬³ÎÊݤµ¤ì¤Þ¤·¤¿"
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
msgid "no newline at end of file"
msgstr "¥Õ¥¡¥¤¥ëËöÈø¤Ë²þ¹Ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cpplex.c:1034 tradcpp.c:1456
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
+#: cpplex.c:1103
+#, fuzzy
+msgid "C++ style comments are not allowed in ISO C90"
msgstr "C++ ¥¹¥¿¥¤¥ë¤Î¥³¥á¥ó¥È¤Ï ISO C89 ¤Ç¤Ïµö¤µ¤ì¤Þ¤»¤ó"
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr "(¤³¤ì¤ÏÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ä¤­°ì²ó¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹)"
-#: cpplex.c:1052
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr "Ê£¿ô¹Ô¤Î¥³¥á¥ó¥È"
-#: cpplex.c:1367
+#: cpplex.c:1425
#, fuzzy, c-format
msgid "unknown string token %s\n"
msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "ÄÖ¤ì¤Ê¤¤¥È¡¼¥¯¥ó %s ¤Ç¤¹"
-#: cpplex.c:1635
-#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
+#: cpplex.c:1695
+#, fuzzy, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
msgstr "'\\%c' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: cpplex.c:1641
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr "̵¸ú¤Ê ¥æ¥Ë¥Ð¡¼¥µ¥ëʸ»ú̾"
-#: cpplex.c:1655
+#: cpplex.c:1715
#, fuzzy, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr "Èó 16 ¿Ê¿ô '%c' ¤¬ universal-character-name Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr "EBCDIC ¤Î¥¿¡¼¥²¥Ã¥È¤Ç `%c' ¤Ë¥æ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾¤¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cpplex.c:1677
+#: cpplex.c:1737
#, fuzzy
msgid "universal-character-name out of range"
msgstr "EBCDIC ¤Î¥¿¡¼¥²¥Ã¥È¤Ç `%c' ¤Ë¥æ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾¤¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cpplex.c:1723
-msgid "the meaning of '\\a' varies with -traditional"
+#: cpplex.c:1791
+#, fuzzy
+msgid "the meaning of '\\a' is different in traditional C"
msgstr "'\\a' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: cpplex.c:1730
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "Èó ISO ɸ½à¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹, '\\%c'"
-#: cpplex.c:1740
+#: cpplex.c:1809
#, fuzzy
-msgid "the meaning of '\\x' varies with -traditional"
-msgstr "`\\x' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\a' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
-#: cpplex.c:1759 f/lex.c:610
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr "\\x ¤Ë¡¢¤½¤ì¤Ë³¤¯¤Ï¤º¤Î 16 ¿Ê¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cpplex.c:1763
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
-#: cpplex.c:1787
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr "8 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
-#: cpplex.c:1802
+#: cpplex.c:1874
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ '\\%c'"
-#: cpplex.c:1804
+#: cpplex.c:1877
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ '\\%c'"
-#: cpplex.c:1808
-msgid "escape sequence out of range for character"
+#: cpplex.c:1882
+#, fuzzy
+msgid "escape sequence out of range for its type"
msgstr "ʸ»ú¤ËÂФ¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
-#: cpplex.c:1898
+#: cpplex.c:1973
msgid "empty character constant"
msgstr "¶õ¤Îʸ»úÄê¿ô"
-#: cpplex.c:1902
-msgid "character constant too long"
+#: cpplex.c:1983
+#, fuzzy
+msgid "character constant too long for its type"
msgstr "ʸ»úÄê¿ô¤¬Ä¹¤¹¤®¤Þ¤¹"
-#: cpplex.c:1905
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr "Ê£¿ôʸ»ú¤«¤é¤Ê¤ëʸ»úÄê¿ô"
-#: cpplib.c:222
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr ";ʬ¤Ê¥È¡¼¥¯¥ó¤¬ #%s ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Î½ª¤ê¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplib.c:277
-#, fuzzy
-msgid "style of line directive is a GCC extension"
-msgstr "#%s ¤Ï GCC ¤Î³ÈÄ¥¤Ç¤¹"
-
-#: cpplib.c:285
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s ¤Ï GCC ¤Î³ÈÄ¥¤Ç¤¹"
-#: cpplib.c:296
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr "¸Å¤¤ C ¤Ç¤Ï #elif ¤ò»È¤ï¤Ê¤¤Êý¤¬¤¤¤¤¤Ç¤¹"
-#: cpplib.c:299
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "¸Å¤¤ C ¤Ç¤Ï¡¢¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ # ¤Î #%s ¤ò̵»ë¤·¤Þ¤¹"
-#: cpplib.c:303
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ # ¤¬¤¢¤ë¸Å¤¤ C ¤«¤é¤Ï #%s ¤ò±£¤¹¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹"
-#: cpplib.c:386
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: cpplib.c:378
+#, fuzzy
+msgid "style of line directive is a GCC extension"
+msgstr "#%s ¤Ï GCC ¤Î³ÈÄ¥¤Ç¤¹"
+
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "̵¸ú¤Ê¥×¥ê¥×¥í¥»¥¹¥Ç¥£¥ì¥¯¥Æ¥£¥ô #%s"
-#: cpplib.c:441
-#, c-format
-msgid "no macro name given in #%s directive"
-msgstr "¥Þ¥¯¥í̾¤¬ #%s ¥Ç¥£¥ì¥¯¥Æ¥£¥ÖÃæ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" ¤ò¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#: cpplib.c:445
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr "\"%s\" ¤Ï C++ ¤Î±é»»»Ò¤Ç¤¢¤ê¡¢¥Þ¥¯¥í̾¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cpplib.c:448
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "¥Þ¥¯¥í̾¤¬ #%s ¥Ç¥£¥ì¥¯¥Æ¥£¥ÖÃæ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: cpplib.c:512
msgid "macro names must be identifiers"
msgstr "¥Þ¥¯¥í̾¤Ï¼±Ê̻ҤǤʤ¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: cpplib.c:459
-#, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: cpplib.c:497
+#: cpplib.c:552
#, c-format
msgid "undefining \"%s\""
msgstr "\"%s\" ¤ò undef ¤·¤Þ¤¹"
-#: cpplib.c:543
+#: cpplib.c:598
msgid "missing terminating > character"
msgstr "½ªÃ¼Ê¸»ú > ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cpplib.c:578
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s ¤Ï \"¥Õ¥¡¥¤¥ë̾\" ¤¢¤ë¤¤¤Ï <¥Õ¥¡¥¤¥ë̾> ¤òɬÍפȤ·¤Þ¤¹"
-#: cpplib.c:589
+#: cpplib.c:648
#, c-format
msgid "empty file name in #%s"
msgstr "#%s ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤¬¶õ¤Ç¤¹"
-#: cpplib.c:608
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr "#include_next ¤¬¼ç¤¿¤ë¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplib.c:615
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr "#import ¤Ï¸Å¤¤É½¸½¤Ç¤¹. ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëÃæ¤Ç #ifndef ¤Î¥é¥Ã¥Ñ¡¼¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
-#: cpplib.c:623
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr "#include ¤Î¥Í¥¹¥È¤¬¿¼¤¹¤®¤Þ¤¹"
-#: cpplib.c:681
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "\"%s\" ¤Ï line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤Ï̵¸ú¤Ê¥Õ¥é¥°¤Ç¤¹"
-#: cpplib.c:737
+#: cpplib.c:814
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line ¤Î¸å¤í¤Î \"%s\" ¤¬Àµ¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cpplib.c:744
+#: cpplib.c:820
msgid "line number out of range"
msgstr "¹ÔÈֹ椬Èϰϳ°¤Ç¤¹"
-#: cpplib.c:782
+#: cpplib.c:831 cpplib.c:902
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" ¤ÏÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cpplib.c:855
+#: cpplib.c:866
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "#line ¤Î¸å¤í¤Î \"%s\" ¤¬Àµ¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: cpplib.c:973
#, fuzzy
msgid "invalid #ident directive"
msgstr "̵¸ú¤Ê #ident"
-#: cpplib.c:943
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: cpplib.c:946
+#: cpplib.c:1064
#, fuzzy, c-format
msgid "#pragma %s %s is already registered"
msgstr "¥¯¥é¥¹ `%s' ¤Ï´û¤Ë¸ºß¤·¤Þ¤¹"
-#: cpplib.c:948
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: cpplib.c:1022
+#: cpplib.c:1143
msgid "#pragma once is obsolete"
msgstr "#pragma once ¤Ï¤â¤¦»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cpplib.c:1025
+#: cpplib.c:1146
msgid "#pragma once in main file"
msgstr "#pragma once ¤¬¥á¥¤¥ó¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplib.c:1049
+#: cpplib.c:1170
msgid "invalid #pragma GCC poison directive"
msgstr "#pragma GCC ±øÀ÷¥Ç¥£¥ì¥¯¥Æ¥£¥ô¤¬Ìµ¸ú¤Ç¤¹"
-#: cpplib.c:1058
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "´û¸¤Î¥Þ¥¯¥í \"%s' ¤ò±øÀ÷¤·¤Þ¤¹"
-#: cpplib.c:1078
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr "include ¥Õ¥¡¥¤¥ë³°¤Î #pragma system_header ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cpplib.c:1103
+#: cpplib.c:1226
#, c-format
msgid "cannot find source %s"
msgstr "¥½¡¼¥¹ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: cpplib.c:1107
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr "¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï %s ¤è¤ê¸Å¤¤¤Ç¤¹"
-#: cpplib.c:1182
+#: cpplib.c:1346
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pramga ¤¬³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎó¥ê¥Æ¥é¥ë¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
-#: cpplib.c:1281
+#: cpplib.c:1429
msgid "#else without #if"
msgstr "#else ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cpplib.c:1286 tradcpp.c:3860
+#: cpplib.c:1434
msgid "#else after #else"
msgstr "#else ¤¬ #else ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplib.c:1288 cpplib.c:1323
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
msgstr "¤½¤Î¾ò·ï¤Ï¤³¤³¤«¤é»Ï¤Þ¤ê¤Þ¤¹"
-#: cpplib.c:1316
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr "#elif ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cpplib.c:1321 tradcpp.c:3555
+#: cpplib.c:1468
msgid "#elif after #else"
msgstr "#elif ¤¬ #else ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: cpplib.c:1353
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr "#endif ¤Ë #if ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cpplib.c:1436 tradcpp.c:3252
+#: cpplib.c:1582
msgid "missing '(' after predicate"
msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cpplib.c:1451 tradcpp.c:3266
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
msgstr "²ò¤òÊä´°¤¹¤ë ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cpplib.c:1471 tradcpp.c:3272
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr "½Ò¸ì¤Î²ò¤¬¶õ¤Ç¤¹"
-#: cpplib.c:1501 tradcpp.c:3320
+#: cpplib.c:1647
msgid "assertion without predicate"
msgstr "½Ò¸ì¤Î¤Ê¤¤¥¢¥µ¡¼¥·¥ç¥ó¤Ç¤¹"
-#: cpplib.c:1503 tradcpp.c:3322
+#: cpplib.c:1649
msgid "predicate must be an identifier"
msgstr "½Ò¸ì¤Ï¼±Ê̻ҤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cpplib.c:1584 tradcpp.c:3419
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" ¤¬ºÆ¥¢¥µ¡¼¥È¤µ¤ì¤Þ¤·¤¿"
-#: cpplib.c:1813
+#: cpplib.c:1968
#, c-format
msgid "unterminated #%s"
msgstr "½ªÃ¼¤Î¤Ê¤¤ #%s"
-#: cppmacro.c:148
+#: cppmacro.c:94
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "\"%s\" ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: cppmacro.c:139 cppmacro.c:294
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ÁȤ߹þ¤ß¥Þ¥¯¥í \"%s\" ¤Ï̵¸ú¤Ç¤¹"
-#: cppmacro.c:347
+#: cppmacro.c:234
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "°Í¸´Ø·¸¤ÎÄÉÀפΤ¿¤á¤Î¥¿¡¼¥²¥Ã¥È̾¤¬ÆÃÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+
+#: cppmacro.c:407
msgid "invalid string literal, ignoring final '\\'"
msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤¬Ìµ¸ú¤Ç¤¹¡¢ºÇ¸å¤Î '\\' ¤ò̵»ë¤·¤Þ¤¹"
-#: cppmacro.c:437
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "\"%s\" ¤È \"%s\" ¤òŽÉÕ¤±¤Þ¤·¤¿¤¬Àµ¾ï¤Ê¥×¥ê¥×¥í¥»¥Ã¥µ¥È¡¼¥¯¥ó¤È¤Ê¤ê¤Þ¤»¤ó"
-#: cppmacro.c:561
-msgid "directives may not be used inside a macro argument"
-msgstr "¥Þ¥¯¥í°ú¿ôÆâ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-
-#: cppmacro.c:573
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤°ú¿ô¥ê¥¹¥È¤¬¥Þ¥¯¥í \"%s\" ¤òµ¯Æ°¤·¤è¤¦¤È¤·¤Þ¤·¤¿"
-
-#: cppmacro.c:590
+#: cppmacro.c:546
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C99 ¤Ï»ÈÍѤµ¤ì¤ë¤Ù¤­»Ä¤ê¤Î¤Î°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
-#: cppmacro.c:595
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "¥Þ¥¯¥í \"%s\" ¤Ï°ú¿ô¤ò %u Í׵ᤷ¤Þ¤¹¤¬¡¢%u ¸Ä¤·¤«Í¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cppmacro.c:606
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "¥Þ¥¯¥í \"%s\" ¤Ë°ú¿ô¤¬ %u ÅϤµ¤ì¤Þ¤·¤¿¤¬¡¢%u ¤·¤«¼õ¤±¼è¤ê¤Þ¤»¤ó"
-#: cppmacro.c:689
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤°ú¿ô¥ê¥¹¥È¤¬¥Þ¥¯¥í \"%s\" ¤òµ¯Æ°¤·¤è¤¦¤È¤·¤Þ¤·¤¿"
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "¸Å¤¤ C ¤Ç¤Ï¡¢´Ø¿ôŪ¥Þ¥¯¥í \"%s\" ¤Ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cppmacro.c:1174
+#: cppmacro.c:1314
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "¥Þ¥¯¥í²¾°ú¿ô \"%s\" ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cppmacro.c:1202
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: cppmacro.c:1209
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
msgstr "¥Þ¥¯¥í²¾°ú¿ô¤Ï¥«¥ó¥Þ¶èÀڤꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cppmacro.c:1226
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr "²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppmacro.c:1240
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr "̵̾²ÄÊÑ°ú¿ô¥Þ¥¯¥í¤Ï C99 ¤ÇºÎ¤êÆþ¤ì¤é¤ì¤Þ¤·¤¿"
-#: cppmacro.c:1243
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C ¤Ç¤Ï̾Á°¤Ä¤­²ÄÊÑ°ú¿ô¥Þ¥¯¥í¤òµö¤·¤Þ¤»¤ó"
-#: cppmacro.c:1252
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cppmacro.c:1328
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C ¤Ç¤Ï¥Þ¥¯¥í̾¤Î¸å¤í¤Ë¶õÇò¤òÍ׵ᤷ¤Þ¤¹"
-#: cppmacro.c:1358
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: cppmacro.c:1378
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' ¤Ï¥Þ¥¯¥íŸ³«¤Îξü¤Ë¤Ï½Ð¸½¤Ç¤­¤Þ¤»¤ó"
-#: cppmacro.c:1414
+#: cppmacro.c:1601
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cppmacro.c:1418
+#: cppmacro.c:1606
msgid "this is the location of the previous definition"
msgstr "¤³¤³¤¬°ÊÁ°¤ÎÀë¸À¤¬¤¢¤ë°ÌÃ֤Ǥ¹"
-#: cppmacro.c:1483
+#: cppmacro.c:1657
#, fuzzy, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
+msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "¥Þ¥¯¥í°ú¿ô \"%s\" ¤Ï -traditional ¤ò¤Ä¤±¤ë¤Èʸ»úÎ󲽤µ¤ì¤¿»ö¤Ç¤·¤ç¤¦"
-#: cppmacro.c:1508
+#: cppmacro.c:1682
#, fuzzy, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "dump_definition ¤Ë ̵¸ú¤Ê¥Ï¥Ã¥·¥å¥¿¥¤¥× %d"
-#: cppmain.c:121
-#, fuzzy, c-format
-msgid "invalid option %s"
-msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó %s"
-
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÀµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cse.c:7092
+#: cpptrad.c:841
+#, fuzzy, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤°ú¿ô¥ê¥¹¥È¤¬¥Þ¥¯¥í \"%s\" ¤òµ¯Æ°¤·¤è¤¦¤È¤·¤Þ¤·¤¿"
+
+#: cse.c:7195
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ";; %d ¤«¤é %d ¤Þ¤Ç¤Î½èÍý¥Ö¥í¥Ã¥¯¡¢%d ¥»¥Ã¥È¡£\n"
-#: diagnostic.c:784
-#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: ·Ù¹ð: "
-
-#: diagnostic.c:791
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: ·Ù¹ð: "
-
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr "((̵̾))"
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr "%s: ·Ù¹ð¤Ï¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤Þ¤¹\n"
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr "%s: %s: "
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr "»ÄÇ°¤Ê¤¬¤é¸«¼ÂÁõ¤Ç¤¹: "
-
-#: diagnostic.c:1076
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr "%s "
-#: diagnostic.c:1078
+#: diagnostic.c:1056
#, c-format
msgid " %s"
msgstr " %s"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
msgstr "¥È¥Ã¥×¥ì¥Ù¥ë:"
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, fuzzy, c-format
msgid "In member function `%s':"
msgstr "´Ø¿ô `%s' Æâ:"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr "´Ø¿ô `%s' Æâ:"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
msgstr "¥³¥ó¥Ñ¥¤¥ë¤¬ÃæÃǤµ¤ì¤Þ¤·¤¿¡£\n"
-#: diagnostic.c:1226
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: Á°¤Î¥¨¥é¡¼¤Ë¤è¤êº®Í𤷤Ƥ¤¤Þ¤¹¤Î¤Ç¡¢Ã¦½Ð¤·¤Þ¤¹\n"
-#: diagnostic.c:1240 diagnostic.c:1390
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4877,21 +5086,21 @@ msgstr ""
"ŬÀڤʤé¤Ð¥×¥ê¥×¥í¥»¥¹¸å¤Î¥½¡¼¥¹¤ò¤Ä¤±¤Æ¤¯¤À¤µ¤¤¡£\n"
"%s ¤ò¸«¤ì¤ÐÊýË¡¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£\n"
-#: diagnostic.c:1388
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼: ¥¨¥é¡¼Êó¹ð¥ë¡¼¥Á¥ó¤ËºÆÆþ¤·¤Þ¤·¤¿¡£\n"
-#: diagnostic.c:1450
-#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "%s ¤ÇÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼ (%s:%d)"
+#: diagnostic.c:1376
+#, fuzzy, c-format
+msgid "in %s, at %s:%d"
+msgstr "%s ¤ÇÃæÃÇ, °ÌÃÖ %s:%d"
-#: diagnostic.c:1495
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr "%s:%d ¤«¤é include ¤µ¤ì¤¿¥Õ¥¡¥¤¥ëÆâ"
-#: diagnostic.c:1498
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
@@ -4900,34 +5109,62 @@ msgstr ""
",\n"
" %s:%d ¤«¤é"
-#: diagnostic.c:1499
+#: diagnostic.c:1401
msgid ":\n"
msgstr ":\n"
-#: dwarf2out.c:3009
+#: diagnostic.c:1445 diagnostic.c:1462
+#, c-format
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr ""
+
+#: diagnostic.c:1465
+#, fuzzy, c-format
+msgid "`%s' is deprecated"
+msgstr "%s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹"
+
+#: diagnostic.c:1468
+#, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr ""
+
+#: diagnostic.c:1471
+msgid "type is deprecated"
+msgstr ""
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3135
#, fuzzy, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: dwarfout.c:2093
-#, c-format
-msgid "internal regno botch: regno = %d\n"
+#: dwarfout.c:2066
+#, fuzzy, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
msgstr "ÆâÉôŪ¤Ë regno ¤Î½èÍý¤¬ÊÑ: regno = %d\n"
-#: dwarfout.c:6296
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr ""
+
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr "¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-#: emit-rtl.c:1091
+#: emit-rtl.c:1155
#, fuzzy
msgid "can't access real part of complex value in hard register"
msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Î¼Â¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
-#: emit-rtl.c:1113
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿Æâ¤ÇÊ£ÁÇ¿ô¤Îµõ¿ôÉôʬ¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó"
-#: emit-rtl.c:3138
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: emit_insn ¤¬ emit_jump_insn ¤òÍפ¹¤ë½ê¤Ç»È¤ï¤ì¤Þ¤·¤¿:\n"
@@ -4936,237 +5173,270 @@ msgstr "ICE: emit_insn ¤¬ emit_jump_insn ¤òÍפ¹¤ë½ê¤Ç»È¤ï¤ì¤Þ¤·¤¿:\n"
msgid "abort in %s, at %s:%d"
msgstr "%s ¤ÇÃæÃÇ, °ÌÃÖ %s:%d"
-#: except.c:359
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr "Îã³°½èÍý¤ò̵¸ú¤Ë¤·¤Þ¤·¤¿. Í­¸ú¤Ë¤¹¤ë¤Ë¤Ï -fexceptions ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
-#: except.c:3007
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: except.c:3118 except.c:3140
+#: except.c:3137
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: explow.c:1357
+#: explow.c:1408
msgid "stack limits not supported on this target"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: expr.c:2919
+#: expr.c:3355
msgid "function using short complex types cannot be inline"
msgstr "short complex ·¿¤ò»È¤¦´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: expr.c:5755 expr.c:5764 expr.c:5773 expr.c:5778 expr.c:6064 expr.c:6080
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥ï¥¤¥ÉÀ°¿ô±é»»"
-#: expr.c:6129
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr "Í¥À褹¤ë²¾°ú¿ô¤Î¥µ¥¤¥º¤Ï `%s' ¼¡Âè¤Ç¤¹"
-#: expr.c:6463
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr "block_exit_expr ¤ÇÃͤò return ¤·¤Þ¤·¤¿"
-#: final.c:1229
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+
+#: final.c:1342
msgid "negative insn length"
msgstr ""
-#: final.c:2647
+#: final.c:2793
msgid "could not split insn"
msgstr ""
-#: final.c:2990
-#, c-format
-msgid "invalid `asm': %s"
+#: final.c:3141
+#, fuzzy
+msgid "invalid `asm': "
msgstr "̵¸ú¤Ê `asm': %s"
-#: final.c:2992
-#, c-format
-msgid "output_operand: %s"
-msgstr "output_operand: %s"
-
-#: final.c:3165
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3182 final.c:3194
+#: final.c:3345 final.c:3357
msgid "unterminated assembly dialect alternative"
msgstr ""
-#: final.c:3238
-#, c-format
-msgid "operand number missing after %-letter"
+#: final.c:3401
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
msgstr "±é»»¿ô¤¬ %-letter ¤Î¸å¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: final.c:3241 final.c:3280
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr "±é»»¿ô¤¬Èϰϳ°¤Ç¤¹"
-#: final.c:3299
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr "̵¸ú¤Ê %%-code"
-#: final.c:3330
-msgid "`%l' operand isn't a label"
+#: final.c:3493
+#, fuzzy, c-format
+msgid "`%%l' operand isn't a label"
msgstr "`%l' ±é»»¤Ï¥é¥Ù¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3437 vmsdbgout.c:464 config/i386/i386.c:5269
-#: config/pdp11/pdp11.c:1570
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ò»È¤¤Â»¤Í¤Þ¤·¤¿"
-#: final.c:3492 vmsdbgout.c:521 config/i386/i386.c:5323
-#: config/pdp11/pdp11.c:1617
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°"
-#: flow.c:360
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr "´Ø¿ô¤Ï¶²¤é¤¯ `noreturn' °À­¤Î¸õÊä¤È»×¤ï¤ì¤Þ¤¹"
-#: flow.c:365
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr "`noreturn' ´Ø¿ô¤¬ return ¤·¤Æ¤¤¤Þ¤¹"
-#: flow.c:384
+#: flow.c:378
msgid "control reaches end of non-void function"
msgstr "À©¸æ¤¬Èó void ´Ø¿ô¤Î½ª¤ê¤ËÅþ㤷¤Þ¤·¤¿"
-#: fold-const.c:3114 fold-const.c:3127
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr ""
+
+#: fold-const.c:2546 fold-const.c:2559
#, fuzzy, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ÎÉý¤Î¤»¤¤¤ÇÈæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹"
-#: fold-const.c:4169 fold-const.c:4186
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr "Èæ³Ó¤¬¾ï¤Ë %d ¤È¤Ê¤ê¤Þ¤¹"
-#: fold-const.c:4317
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr "°ìÃפ·¤Ê¤¤ÃÍƱ»Î¤Ç¤ÎÈóÅù²Á¤Î `or' ¥Æ¥¹¥È¤Ï¾ï¤Ë 1 ¤Ç¤¹"
-#: fold-const.c:4322
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr "Áê¸ßÇÓ¾Ū¤ÊÃͤÎÅù²Á¤Î `and' ¥Æ¥¹¥È¤Ï¾ï¤Ë 0 ¤Ç¤¹"
-#: function.c:5371
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "ÊÑ¿ô `%s' ¤Î¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹"
+
+#: function.c:3772
+#, fuzzy
+msgid "impossible constraint in `asm'"
+msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr "`%s' ¤Ï¤³¤Î´Ø¿ôÆâ¤Ç½é´ü²½¤µ¤ì¤º¤Ë»ÈÍѤµ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: function.c:5378
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "ÊÑ¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: function.c:5397
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "°ú¿ô `%s' ¤Ï `longjmp' ¤ä `vfork' ¤Ë¤è¤Ã¤Æ¹ó¤¤¤³¤È¤Ë¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹"
-#: function.c:6240
+#: function.c:6420
msgid "function returns an aggregate"
msgstr "´Ø¿ô¤¬½¸¹çÂΤòÊÖ¤·¤Æ¤¤¤Þ¤¹"
-#: function.c:6744
+#: function.c:6925
#, c-format
msgid "unused parameter `%s'"
msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹"
-#: gcc.c:1101
+#: gcc.c:1107
#, fuzzy, c-format
msgid "ambiguous abbreviation %s"
msgstr "¤¢¤¤¤Þ¤¤¤Ê¾Êά %s ¤Ç¤¹"
-#: gcc.c:1128
+#: gcc.c:1134
#, fuzzy, c-format
msgid "incomplete `%s' option"
msgstr "ÉÔ´°Á´¤Ê `%s' ¥ª¥×¥·¥ç¥ó¤Ç¤¹"
-#: gcc.c:1139
+#: gcc.c:1145
#, fuzzy, c-format
msgid "missing argument to `%s' option"
msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ¹¤ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:1152
+#: gcc.c:1158
#, fuzzy, c-format
msgid "extraneous argument to `%s' option"
msgstr "`%s' ¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ̵´Ø·¸¤Ê°ú¿ô"
-#: gcc.c:1466
+#: gcc.c:1486
#, fuzzy
msgid "Using built-in specs.\n"
msgstr "ÁȤ߹þ¤ß spec ¤ò»ÈÍÑ.\n"
-#: gcc.c:1640
+#: gcc.c:1667
#, c-format
-msgid "Setting spec %s to '%s'\n\n"
-msgstr "spec %s ¤ò '%s' ¤ËÀßÄêÃæ\n\n"
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+"spec %s ¤ò '%s' ¤ËÀßÄêÃæ\n"
+"\n"
-#: gcc.c:1738
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr "%s ¤«¤é spec ¤òÆɤ߹þ¤ßÃæ\n"
-#: gcc.c:1836 gcc.c:1855
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%include ¤Î½ñ¼°¤¬ÊѤǤ¹"
-#: gcc.c:1863
+#: gcc.c:1899
#, fuzzy, c-format
msgid "could not find specs file %s\n"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: gcc.c:1879 gcc.c:1887 gcc.c:1896 gcc.c:1905
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs ¤Î %ld ʸ»úÌܰʹߤΠ%%rename ¤Î½ñ¼°¤¬ÊѤǤ¹"
-#: gcc.c:1914
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤Ë̾Á°¤òÊѹ¹¤¹¤ë spec ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
-#: gcc.c:1921
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
#, c-format
msgid "rename spec %s to %s\n"
msgstr "spec %s ¤ò %s ¤Ë̾Á°¤òÊѹ¹\n"
-#: gcc.c:1923
+#: gcc.c:1965
#, c-format
-msgid "spec is '%s'\n\n"
-msgstr "spec ¤Ï '%s' ¤Ç¤¹\n\n"
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+"spec ¤Ï '%s' ¤Ç¤¹\n"
+"\n"
-#: gcc.c:1936
+#: gcc.c:1978
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "spec ¥Õ¥¡¥¤¥ëÃæ¤Î %ld ʸ»ú¤Î¸å¤ËÉÔÌÀ¤Ê %% ¥³¥Þ¥ó¥É"
-#: gcc.c:1947 gcc.c:1960
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "%ld ʸ»ú¤Î¸å¤Ë¤ª¤«¤·¤Ê spec ¥Õ¥¡¥¤¥ë"
-#: gcc.c:2014
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr "spec ¥Õ¥¡¥¤¥ë¤Ë¥ê¥ó¥¯¤Ë´Ø¤¹¤ë spec ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:2726
+#: gcc.c:2554
msgid "-pipe not supported"
msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: gcc.c:2780
-msgid "\nGo ahead? (y or n) "
-msgstr "\n³¤±¤Þ¤¹¤«? (y ¤Þ¤¿¤Ï n) "
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+"\n"
+"³¤±¤Þ¤¹¤«? (y ¤Þ¤¿¤Ï n) "
-#: gcc.c:2879
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5177,71 +5447,71 @@ msgstr ""
"´°Á´¤Ê¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
"%s ¤Ë¼ê½ç¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£"
-#: gcc.c:2897
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3030
+#: gcc.c:2883
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] ¥Õ¥¡¥¤¥ë...\n"
-#: gcc.c:3031
+#: gcc.c:2884
msgid "Options:\n"
msgstr "¥ª¥×¥·¥ç¥ó:\n"
-#: gcc.c:3033
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
" -pass-exit-codes ¥Õ¥§¡¼¥º¤«¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ÎºÇÂçÃͤò exit\n"
" ¥³¡¼¥É¤È¤·¤ÆÊÖ¤¹\n"
-#: gcc.c:3034
+#: gcc.c:2887
msgid " --help Display this information\n"
msgstr " --help ¤³¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨\n"
-#: gcc.c:3035
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help ¥¿¡¼¥²¥Ã¥È¸ÇÍ­¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨\n"
-#: gcc.c:3037
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr "(`-v --help' ¤ò»È¤¦¤È¡¢»Ò¥×¥í¥»¥¹¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤òɽ¼¨)\n"
-#: gcc.c:3038
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs ÁȤ߹þ¤Þ¤ì¤¿ spec ʸ»úÎó¤òÁ´¤Æɽ¼¨\n"
-#: gcc.c:3039
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨\n"
-#: gcc.c:3040
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine ¥³¥ó¥Ñ¥¤¥é¤Î¥¿¡¼¥²¥Ã¥È¥×¥í¥»¥Ã¥µ¤òɽ¼¨\n"
-#: gcc.c:3041
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs ¥³¥ó¥Ñ¥¤¥é¤Î¥µ¡¼¥Á¥Ñ¥¹¤Ë¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨\n"
-#: gcc.c:3042
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr " -print-libgcc-file-name ¥³¥ó¥Ñ¥¤¥é¤Î¥³¥ó¥Ñ¥Ë¥ª¥ó¥é¥¤¥Ö¥é¥ê̾¤òɽ¼¨\n"
-#: gcc.c:3043
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr " -print-file-name=<lib> ¥é¥¤¥Ö¥é¥ê <lib> ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n"
-#: gcc.c:3044
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<prog> ¥³¥ó¥Ñ¥¤¥é¤ÎÉôÉÊ <prog> ¤Ø¤Î¥Õ¥ë¥Ñ¥¹¤òɽ¼¨\n"
-#: gcc.c:3045
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n"
-#: gcc.c:3046
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5249,90 +5519,95 @@ msgstr ""
" -print-multi-lib ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ÈÊ£¿ô¤Î¥é¥¤¥Ö¥é¥êõº÷\n"
" ¥Ç¥£¥ì¥¯¥È¥ê¤È¤ÎÂбþ¤òɽ¼¨\n"
-#: gcc.c:3049
+#: gcc.c:2902
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-directory libgcc ¤Î¥Ð¡¼¥¸¥ç¥ó¥Ç¥£¥ì¥¯¥È¥ê¥ë¡¼¥È¤òɽ¼¨\n"
+
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr " -Wa,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥¢¥»¥ó¥Ö¥é¤ËÅϤ¹\n"
-#: gcc.c:3050
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÅϤ¹\n"
-#: gcc.c:3051
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<options> ¥«¥ó¥Þ¶èÀÚ¤ê¤Î <options> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3052
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> <arg> ¤ò¥ê¥ó¥«¤ËÅϤ¹\n"
-#: gcc.c:3053
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤\n"
-#: gcc.c:3054
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Ãæ´Ö¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¥Ñ¥¤¥×¤ò»È¤¦\n"
-#: gcc.c:3055
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
msgstr " -time »Ò¥×¥í¥»¥¹¤´¤È¤Î¼Â¹Ô»þ´Ö¤ò·×¬¤¹¤ë\n"
-#: gcc.c:3056
+#: gcc.c:2910
#, fuzzy
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<file> ÁȤ߹þ¤ß specs ¤ò <file> ¤ÎÆâÍƤÇÃÖ¤­´¹¤¨¤ë\n"
-#: gcc.c:3057
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr " -std=<standard> ÆþÎÏ¥½¡¼¥¹¤ò <standard> ¤È¸«¤Ê¤¹\n"
-#: gcc.c:3058
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <directory> <directory> ¤ò¥³¥ó¥Ñ¥¤¥é¤Îõº÷¥Ñ¥¹¤ËÄɲ乤ë\n"
-#: gcc.c:3059
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
" -b <machine> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¥¿¡¼¥²¥Ã¥È <machine> ¤È¤·¤Æ\n"
" gcc ¤ò¼Â¹Ô¤¹¤ë\n"
-#: gcc.c:3060
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
" -V <version> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð <version> ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î\n"
" gcc ¤È¤·¤Æ¼Â¹Ô¤¹¤ë\n"
-#: gcc.c:3061
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤Ã¤Æµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥à¤òɽ¼¨\n"
-#: gcc.c:3062
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
" -E ¥×¥ê¥×¥í¥»¥¹¤Î¤ß -- ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯\n"
" ¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3064
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S ¥³¥ó¥Ñ¥¤¥ë¤Î¤ß -- ¥¢¥»¥ó¥Ö¥ë¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3065
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c ¥³¥ó¥Ñ¥¤¥ë¡¢¥¢¥»¥ó¥Ö¥ë¤¹¤ë¤¬¡¢¥ê¥ó¥¯¤ò¹Ô¤Ê¤ï¤Ê¤¤\n"
-#: gcc.c:3066
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
msgstr " -o <file> <file> ¤Ë½ÐÎϤò¹Ô¤Ê¤¦\n"
-#: gcc.c:3067
+#: gcc.c:2921
#, fuzzy
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
@@ -5341,7 +5616,7 @@ msgstr ""
" 'none' ¤ò»ØÄꤹ¤ë¤È¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò¤Ë¤è¤Ã¤Æ¸À¸ì¤ò\n"
" ¿äÄꤹ¤ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î¿¶¤ëÉñ¤¤¤ËÌá¤ë\n"
-#: gcc.c:3074
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5354,73 +5629,93 @@ msgstr ""
"»Ò¥×¥í¥»¥¹¤Ë¼«Æ°Åª¤ËÅϤµ¤ì¤Þ¤¹¡£¤³¤¦¤¤¤Ã¤¿¥×¥í¥»¥¹¤Ë¤½¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤òÅϤ¹\n"
"¤Ë¤Ï -W<letter> ¥ª¥×¥·¥ç¥ó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
-#: gcc.c:3445
+#: gcc.c:3063
+#, fuzzy, c-format
+msgid "`-%c' option must have argument"
+msgstr "-param ¥ª¥×¥·¥ç¥ó¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr ""
+
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+
+#: gcc.c:3366
msgid "argument to `-Xlinker' is missing"
msgstr "`-Xlinker' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3453
+#: gcc.c:3374
#, fuzzy
msgid "argument to `-l' is missing"
msgstr "`-x' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3470
+#: gcc.c:3391
msgid "argument to `-specs' is missing"
msgstr "`-specs' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3485
+#: gcc.c:3406
msgid "argument to `-specs=' is missing"
msgstr "`-specs=' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3516
-msgid "argument to `-b' is missing"
-msgstr "`-b' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr ""
-#: gcc.c:3531
+#: gcc.c:3445
msgid "argument to `-B' is missing"
msgstr "`-B' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3601
-msgid "argument to `-V' is missing"
-msgstr "`-V' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: gcc.c:3622 gcc.c:3629 gcc.c:3636
-msgid "invalid version number format"
-msgstr "̵¸ú¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ·Á¼°"
-
-#: gcc.c:3747
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr "-c ¤ä -S ¤È°ì½ï¤Ë -o ¤ò»ØÄꤹ¤ë¤È¡¢Ê£¿ô¥³¥ó¥Ñ¥¤¥ë¤Ç¤­¤Þ¤»¤ó"
-#: gcc.c:3918
+#: gcc.c:3791
#, fuzzy
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "·Ù¹ð: -save-temps ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: gcc.c:3922
+#: gcc.c:3795
#, fuzzy
msgid "warning: -pipe ignored because -time specified"
msgstr "·Ù¹ð: -time ¤¬»ØÄꤵ¤ì¤¿¤Î¤Ç -pipe ¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: gcc.c:3934
+#: gcc.c:3807
msgid "argument to `-x' is missing"
msgstr "`-x' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:3962
+#: gcc.c:3835
#, c-format
msgid "argument to `-%s' is missing"
msgstr "`-%s' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:4023
+#: gcc.c:3896
#, fuzzy, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr "·Ù¹ð: ºÇ¸å¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î¸å¤Î `-x %s' ¤Ï²¿¤â¤·¤Þ¤»¤ó"
-#: gcc.c:4322
+#: gcc.c:4241
#, fuzzy
msgid "invalid specification! Bug in cc"
msgstr "̵¸ú¤Ê»ØÄê! cc ¤Î¥Ð¥°."
-#: gcc.c:4471
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr "%s\n"
@@ -5428,428 +5723,665 @@ msgstr "%s\n"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5030
+#: gcc.c:4955
#, fuzzy, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "spec ¥¨¥é¡¼: '%%*' ¤Ï¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Ç½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ç¤¹"
-#: gcc.c:5039
+#: gcc.c:4964
#, fuzzy, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "·Ù¹ð: µì¼°¤Î %%[ ±é»»»Ò¤¬ spec ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-#: gcc.c:5057
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "spec %c%s%c ¤ò½èÍýÃæ, ¤³¤ì¤Ï '%s' ¤Ç¤¹\n"
-#: gcc.c:5182
+#: gcc.c:5107
#, fuzzy, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "spec ¥¨¥é¡¼: ǧ¼±ÉÔǽ¤Ê spec ¥ª¥×¥·¥ç¥ó '%c'"
-#: gcc.c:5292
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "´Ø¿ô `%s' Æâ:"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: gcc.c:5256
+#, fuzzy
+msgid "malformed spec function name"
+msgstr "¥­¥ã¥¹¥È¤Ï´Ø¿ô·¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹"
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr ""
-#: gcc.c:5970
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `-%s'"
-#: gcc.c:5976
+#: gcc.c:6087
#, c-format
msgid "install: %s%s\n"
msgstr "¥¤¥ó¥¹¥È¡¼¥ë: %s%s\n"
-#: gcc.c:5977
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
msgstr "¥×¥í¥°¥é¥à: %s\n"
-#: gcc.c:5978
+#: gcc.c:6089
#, c-format
msgid "libraries: %s\n"
msgstr "¥é¥¤¥Ö¥é¥ê: %s\n"
-#: gcc.c:6026
-msgid "\nFor bug reporting instructions, please see:\n"
-msgstr "\n¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+"\n"
+"¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
-#: gcc.c:6042
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
msgstr "¥³¥ó¥Õ¥£¥°¥ª¥×¥·¥ç¥ó: %s\n"
-#: gcc.c:6056
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
msgstr "¥¹¥ì¥Ã¥É¥â¥Ç¥ë: %s\n"
-#: gcc.c:6067
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
msgstr "gcc ¥Ð¡¼¥¸¥ç¥ó %s\n"
-#: gcc.c:6069
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "gcc ¥É¥é¥¤¥Ð¥Ð¡¼¥¸¥ç¥ó %s ¼Â¹Ô gcc ¥Ð¡¼¥¸¥ç¥ó %s\n"
-#: gcc.c:6077
+#: gcc.c:6197
#, fuzzy
msgid "no input files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-#: gcc.c:6115
+#: gcc.c:6235
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: gcc.c:6190
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: ¥ê¥ó¥¯¤¬´°Î»¤·¤Ê¤«¤Ã¤¿¤Î¤Ç¥ê¥ó¥«¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: gcc.c:6233
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr "¸À¸ì %s ¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó"
-#: gcc.c:6336
+#: gcc.c:6456
#, fuzzy
msgid "internal gcc abort"
msgstr "ÆâÉô gcc ÃæÃÇ"
-#: gcov.c:282
+#: gcov.c:325
msgid "Internal gcov abort.\n"
msgstr "ÆâÉô gcc abort.\n"
-#: gcov.c:295
-msgid "Usage: gcov [OPTION]... SOURCEFILE\n\n"
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
msgstr ""
-#: gcov.c:296
+#: gcov.c:339
#, fuzzy
-msgid "Print code coverage information.\n\n"
+msgid ""
+"Print code coverage information.\n"
+"\n"
msgstr "¸Æ¤Ó½Ð¤·¥°¥é¥Õ¾ðÊó¤òÁ÷½Ð¤¹¤ë"
-#: gcov.c:297
+#: gcov.c:340
#, fuzzy
msgid " -h, --help Print this help, then exit\n"
msgstr " --help ¤³¤Î¥Ø¥ë¥×¾ðÊó¤òɽ¼¨\n"
-#: gcov.c:298
+#: gcov.c:341
#, fuzzy
msgid " -v, --version Print version number, then exit\n"
msgstr ""
" -V <version> ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð <version> ¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Î\n"
" gcc ¤È¤·¤Æ¼Â¹Ô¤¹¤ë\n"
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-#: gcov.c:302
+#: gcov.c:345
#, fuzzy
msgid " -n, --no-output Do not create an output file\n"
msgstr " -save-temps Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤\n"
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
-#: gcov.c:307
+#: gcov.c:351
#, fuzzy, c-format
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
"%s.\n"
-msgstr "\n¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
+msgstr ""
+"\n"
+"¥Ð¥°¥ì¥Ý¡¼¥È¤Î¼ê½ç¤Ï¡¢°Ê²¼¤ò»²¾È\n"
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr ""
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr ""
-#: gcov.c:320
-msgid ""
-"This is free software; see the source for copying conditions. There is NO\n"
-"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-"\n"
-msgstr ""
-
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "¥×¥í¥°¥é¥à¥Õ¥í¡¼¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr "¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë %s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr "Á´¼Â¹Ô¿ô¤¬¥¼¥í¤Ç¤¢¤ë¤È²¾Äꤷ¤Þ¤¹¡£\n"
-#: gcov.c:478
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "¥×¥í¥°¥é¥à¥Õ¥í¡¼¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
-
-#: gcov.c:489
+#: gcov.c:534
#, c-format
msgid "No executable code associated with file %s.\n"
msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë·ë¤ÓÉÕ¤¯¼Â¹Ô¥³¡¼¥É¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
-msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¤¢¤Þ¤ê¤ËÁ᤯»È¤¤ÀڤäƤ·¤Þ¤¤¤Þ¤·¤¿\n"
+#: gcov.c:1186
+#, fuzzy, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%6.2f%%(%d ¹ÔÃæ) ¤Î¥½¡¼¥¹¹Ô¤¬¥Õ¥¡¥¤¥ë %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
-msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»È¤¤ÀڤäƤ¤¤Þ¤»¤ó\n"
+#: gcov.c:1191
+#, fuzzy, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¼Â¹Ô²Äǽ¤Ê¥½¡¼¥¹¹Ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: gcov.c:973
+#: gcov.c:1198
+#, fuzzy, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¥Õ¥¡¥¤¥ë %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+
+#: gcov.c:1203
+#, fuzzy, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¾¯¤Ê¤¯¤È¤â°ì²ó¤Ï¥Õ¥¡¥¤¥ë %s ¤Ç¼õ¼è¤é¤ì¤Þ¤·¤¿\n"
+
+#: gcov.c:1209
+#, fuzzy, c-format
+msgid "No branches in %s %s\n"
+msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¤Ï¥Ö¥é¥ó¥Á¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: gcov.c:1211
+#, fuzzy, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%6.2f%%(%d ²óÃæ) ¤Î¸Æ¤Ó½Ð¤·¤¬¥Õ¥¡¥¤¥ë %s Æâ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+
+#: gcov.c:1216
+#, fuzzy, c-format
+msgid "No calls in %s %s\n"
+msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#: gcov.c:1351
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%6.2f%%(%d ¹ÔÃæ) ¤Î¥½¡¼¥¹¹Ô¤¬´Ø¿ô %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "¥°¥é¥Õ¤Î bb ¥¨¥ó¥È¥ê¤Î°ìÉô¤·¤«»È¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡¢´Ø¿ô %s\n"
-#: gcov.c:977
+#: gcov.c:1353
#, c-format
-msgid "No executable source lines in function %s\n"
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr "¥Ö¥í¥Ã¥¯¿ô = %ld¡¢ÈÖ¹æ¥Ö¥í¥Ã¥¯ = %d\n"
+
+#: gcov.c:1367
+#, fuzzy, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "¹ÔÈÖ¹æ %u ¤ËÌá¤ë¤Ï¤º¤Ç¤·¤¿"
+
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "¥¨¥é¡¼: .bb ¥Õ¥¡¥¤¥ë %s ¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤¬Â¿¤¹¤®¤Þ¤¹\n"
+
+#: gcov.c:1398
+#, fuzzy, c-format
+msgid "ERROR: out of range line number in function %s\n"
msgstr "´Ø¿ô %s ¤Ë¼Â¹Ô²Äǽ¤Ê¥½¡¼¥¹¹Ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: gcov.c:984
+#: gcov.c:1470
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬´Ø¿ô %s Æâ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "Could not open source file %s.\n"
+msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+
+#: gcov.c:1480
+#, fuzzy, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï %s ¤è¤ê¸Å¤¤¤Ç¤¹"
-#: gcov.c:988
+#: gcov.c:1510
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¾¯¤Ê¤¯¤È¤â°ìÅ٤ϴؿô %s ¤Ç¼õ¼è¤é¤ì¤Þ¤·¤¿\n"
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤òÆɤ߹þ¤ßÃæ¤Ëͽ´ü¤»¤Ì EOF.\n"
+
+#: gcov.c:1532
+#, fuzzy, c-format
+msgid "call %2d never executed\n"
+msgstr "¸Æ¤Ó½Ð¤· %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤»¤º\n"
+
+#: gcov.c:1535
+#, fuzzy, c-format
+msgid "call %2d returns %s\n"
+msgstr "¸Æ¤Ó½Ð¤· %d ¤ÎÌá¤ê = %d\n"
+
+#: gcov.c:1543
+#, fuzzy, c-format
+msgid "branch %2d never executed\n"
+msgstr "¥Ö¥é¥ó¥Á %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤µ¤ì¤º\n"
+
+#: gcov.c:1546
+#, fuzzy, c-format
+msgid "branch %2d taken %s\n"
+msgstr "¥Ö¥é¥ó¥Á %d ¼õÍý = %d\n"
-#: gcov.c:993
+#: gcov.c:1610
#, c-format
-msgid "No branches in function %s\n"
-msgstr "´Ø¿ô %s ¤Ë¤Ïʬ´ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
+msgid "Creating %s.\n"
+msgstr "%s ¤òºîÀ®Ãæ.\n"
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
-#: gcov.c:995
+#: gcov.c:1618
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%6.2f%%(%d ²ó) ¤Î¸Æ¤Ó½Ð¤·¤¬´Ø¿ô %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "Could not open output file %s.\n"
+msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: gcov.c:999
+#: gcse.c:763
#, c-format
-msgid "No calls in function %s\n"
-msgstr "´Ø¿ô %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "GCSE ¤ò̵¸ú²½: %d > 1000 ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d >= 20 edge/´ðËÜ¥Ö¥í¥Ã¥¯"
-#: gcov.c:1126
+#: gcse.c:775
#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
-msgstr "¥°¥é¥Õ¤Î bb ¥¨¥ó¥È¥ê¤Î°ìÉô¤·¤«»È¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡¢´Ø¿ô %s\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "GCSE ¤ò̵¸ú²½: %d ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d ¸Ä¤Î¥ì¥¸¥¹¥¿"
-#: gcov.c:1128
+#: genautomata.c:1490
#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
-msgstr "¥Ö¥í¥Ã¥¯¿ô = %ld¡¢ÈÖ¹æ¥Ö¥í¥Ã¥¯ = %d\n"
+msgid "Name `%s' contains quotes"
+msgstr ""
-#: gcov.c:1166
+#: genautomata.c:1621
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
+
+#: genautomata.c:1650
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
-msgstr "¥¨¥é¡¼: .bb ¥Õ¥¡¥¤¥ë %s ¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤¬Â¿¤¹¤®¤Þ¤¹\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr ""
-#: gcov.c:1243
+#: genautomata.c:1682 genautomata.c:1685
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "̤ÄêµÁ¤Î·¿ `%s %s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
+
+#: genautomata.c:1720
+#, fuzzy, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
+
+#: genautomata.c:1724
+#, fuzzy, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
+
+#: genautomata.c:1760
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%6.2f%%(%d ¹ÔÃæ) ¤Î¥½¡¼¥¹¹Ô¤¬¥Õ¥¡¥¤¥ë %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "invalid first string `%s' in presence_set"
+msgstr ""
-#: gcov.c:1247
+#: genautomata.c:1764
#, c-format
-msgid "No executable source lines in file %s\n"
-msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¼Â¹Ô²Äǽ¤Ê¥½¡¼¥¹¹Ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
+msgid "invalid second string `%s' in presence_set"
+msgstr ""
-#: gcov.c:1254
+#: genautomata.c:1800
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
-msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¥Õ¥¡¥¤¥ë %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "invalid first string `%s' in absence_set"
+msgstr ""
-#: gcov.c:1258
+#: genautomata.c:1804
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
-msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¾¯¤Ê¤¯¤È¤â°ì²ó¤Ï¥Õ¥¡¥¤¥ë %s ¤Ç¼õ¼è¤é¤ì¤Þ¤·¤¿\n"
+msgid "invalid second string `%s' in absence_set"
+msgstr ""
+
+#: genautomata.c:1837
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "dump_definition ¤Ë ̵¸ú¤Ê¥Ï¥Ã¥·¥å¥¿¥¤¥× %d"
+
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#: gcov.c:1263
+#: genautomata.c:1890
#, c-format
-msgid "No branches in file %s\n"
-msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¤Ï¥Ö¥é¥ó¥Á¤¬¤¢¤ê¤Þ¤»¤ó\n"
+msgid "garbage after ) in reservation `%s'"
+msgstr ""
-#: gcov.c:1265
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
+
+#: genautomata.c:1932
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr "%6.2f%%(%d ²óÃæ) ¤Î¸Æ¤Ó½Ð¤·¤¬¥Õ¥¡¥¤¥ë %s Æâ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr ""
-#: gcov.c:1269
+#: genautomata.c:2425
#, c-format
-msgid "No calls in file %s\n"
-msgstr "¥Õ¥¡¥¤¥ë %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
+msgid "unit `%s' in exclusion is not declared"
+msgstr ""
-#: gcov.c:1281
+#: genautomata.c:2427
#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, fuzzy, c-format
+msgid "unit `%s' excludes itself"
+msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹"
-#: gcov.c:1331
+#: genautomata.c:2473
#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
-#: gcov.c:1339
+#: genautomata.c:2603 genautomata.c:2609
#, c-format
-msgid "Creating %s.\n"
-msgstr "%s ¤òºîÀ®Ãæ.\n"
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
-#: gcov.c:1387
+#: genautomata.c:2623 genautomata.c:2629
#, c-format
-msgid "call %d never executed\n"
-msgstr "¸Æ¤Ó½Ð¤· %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤»¤º\n"
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
-#: gcov.c:1396
+#: genautomata.c:2692 genautomata.c:2695
#, fuzzy, c-format
-msgid "call %d returns = %s\n"
-msgstr "¸Æ¤Ó½Ð¤· %d ¤ÎÌá¤ê = %d\n"
+msgid "repeated declaration of automaton `%s'"
+msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: gcov.c:1406
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr ""
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
#, fuzzy, c-format
-msgid "call %d returns = %s%%\n"
-msgstr "¸Æ¤Ó½Ð¤· %d ¤ÎÌá¤ê = %d%%\n"
+msgid "automaton `%s' is not declared"
+msgstr "²¾°ú¿ô `%s' ¤Î·¿¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: gcov.c:1413
+#: genautomata.c:2747
#, c-format
-msgid "branch %d never executed\n"
-msgstr "¥Ö¥é¥ó¥Á %d ¤Ï°ìÅÙ¤â¼Â¹Ô¤µ¤ì¤º\n"
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
-#: gcov.c:1423
+#: genautomata.c:2753
#, fuzzy, c-format
-msgid "branch %d taken = %s\n"
-msgstr "¥Ö¥é¥ó¥Á %d ¼õÍý = %d\n"
+msgid "`%s' is declared as cpu unit"
+msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: gcov.c:1433
+#: genautomata.c:2762
#, fuzzy, c-format
-msgid "branch %d taken = %s%%\n"
-msgstr "¥Ö¥é¥ó¥Á %d ¼õÍý = %d%%\n"
+msgid "`%s' is declared as cpu reservation"
+msgstr "`%s' ¤Ï´Ø¿ô¤òÊÖ¤¹´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: gcov.c:1444
+#: genautomata.c:2790 genautomata.c:2793
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
-msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤òÆɤ߹þ¤ßÃæ¤Ëͽ´ü¤»¤Ì EOF.\n"
+msgid "there is no insn reservation `%s'"
+msgstr ""
-#: gcse.c:756
+#: genautomata.c:2810 genautomata.c:2815
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "GCSE ¤ò̵¸ú²½: %d > 1000 ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d >= 20 edge/´ðËÜ¥Ö¥í¥Ã¥¯"
+msgid "the same bypass `%s - %s' is already defined"
+msgstr ""
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "¥¯¥é¥¹ `%s' ¤Ï´û¤Ë¸ºß¤·¤Þ¤¹"
-#: gcse.c:768
+#: genautomata.c:2925 genautomata.c:2927
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
-msgstr "GCSE ¤ò̵¸ú²½: %d ´ðËÜ¥Ö¥í¥Ã¥¯¡¢µÚ¤Ó %d ¸Ä¤Î¥ì¥¸¥¹¥¿"
+msgid "automaton `%s' is not used"
+msgstr ""
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr ""
+
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "`%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤¬ `int' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "`%s %s' ¤ÎºÆÄêµÁ"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "#%s ¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: graph.c:421 profile.c:950 profile.c:958 toplev.c:1842 toplev.c:4908
-#: ch/grant.c:2652 ch/lex.c:212 ch/lex.c:2189 f/com.c:14269
-#: java/jcf-parse.c:963 java/jcf-parse.c:1115 java/lex.c:1782
-#: objc/objc-act.c:534
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+#, fuzzy
+msgid "Errors in DFA description"
+msgstr "ÀâÌÀ¤Ï¤Þ¤À¤¢¤ê¤Þ¤»¤ó"
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, c-format
msgid "can't open %s"
msgstr "%s ¤ò³«¤±¤Þ¤»¤ó"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr "fix_sched_param: ÉÔÌÀ¤Ê¥Ñ¥é¥á¥¿: %s"
-#: integrate.c:185
+#: integrate.c:174
msgid "function cannot be inline"
msgstr "´Ø¿ô¤ò inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr "²ÄÊÑ°ú¿ô´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr "alloca ¤ò»È¤Ã¤Æ¤¤¤ë´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:196
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr "setjmp ¤ò»È¤Ã¤Æ¤¤¤ë´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr "´Ø¿ô¤¬ __builtin_eh_return ¤ò»È¤¤¤Þ¤¹"
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr "Æþ¤ì»Ò´Ø¿ô¤ò»ý¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
msgstr "¥é¥Ù¥ë¥¢¥É¥ì¥¹¤ò»ý¤Á¡¢½é´ü²½»Ò¤Ç»È¤ï¤ì¤ë´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr "´Ø¿ô¤¬Â礭¤¹¤®¤Æ inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr "¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¯¡¢²¾°ú¿ô¤Î¥¢¥É¥ì¥¹¤¬»È¤ï¤ì¤Æ¤¤¤ë -- inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr "¤³¤ÎÌá¤êÃÍ·¿¤Î inline ´Ø¿ô¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr "²ÄÊÑŤÎÌá¤êÃͤòÊÖ¤¹´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr "²ÄÊÑĹ°ú¿ô¤ò»ý¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr "Æ©²á¶¦ÍÑÂΤΰú¿ô¤ò»ý¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr "»»½Ð¤µ¤ì¤¿¥¸¥ã¥ó¥×¤ò¹Ô¤Ê¤¦´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr "Èó¥í¡¼¥«¥ë goto ¤ò»È¤Ã¤Æ¤¤¤ë´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr "¥¿¡¼¥²¥Ã¥È¸Çͭ°À­Éդδؿô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
@@ -5885,57 +6417,57 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: profile.c:429
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr ""
+
+#: profile.c:400
+#, fuzzy
+msgid ".da file corrupted"
+msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»È¤¤ÀڤäƤ¤¤Þ¤»¤ó\n"
+
+#: profile.c:634
#, c-format
msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr ""
-#: profile.c:975
+#: profile.c:1226
#, fuzzy, c-format
msgid "file %s not found, execution counts assumed to be zero"
msgstr "¥Õ¥¡¥¤¥ë %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¼Â¹Ô¥«¥¦¥ó¥È¤Ï¥¼¥í¤È¸«¤Ê¤·¤Þ¤¹"
-#: profile.c:1022
-#, fuzzy
-msgid ".da file contents exhausted too early"
-msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¤¢¤Þ¤ê¤ËÁ᤯»È¤¤ÀڤäƤ·¤Þ¤¤¤Þ¤·¤¿\n"
-
-#: profile.c:1025
-#, fuzzy
-msgid ".da file contents not exhausted"
-msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò»È¤¤ÀڤäƤ¤¤Þ¤»¤ó\n"
-
-#: protoize.c:593
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr "%s: ÆâÉôÃæÃÇ\n"
-#: protoize.c:684
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤Ë½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼: %s\n"
-#: protoize.c:729
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr "%s: »ÈÍÑË¡ '%s [ -VqfnkN ] [ -i <istring> ] [ ¥Õ¥¡¥¤¥ë̾ ... ]'\n"
-#: protoize.c:732
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: »ÈÍÑË¡ '%s [ -VqfnkNlgC ] [ -B <¥Ç¥£¥ì¥¯¥È¥ê̾> ] [ ¥Õ¥¡¥¤¥ë̾ ... ]'\n"
-#: protoize.c:839
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr "%s: ·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤ËÂФ·¤ÆÆɤ߽Ф·µö²Ä¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:847
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr "%s: ·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:855
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr "%s: ·Ù¹ð: `%s' ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤¬¤¢¤ê¤Þ¤»¤ó\n"
@@ -5943,1520 +6475,1590 @@ msgstr "%s: ·Ù¹ð: `%s' ¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ½ñ¤­¹þ¤ßµö²Ä¤¬¤¢¤ê¤Þ¤»¤ó\n"
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1273
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr "%s: ̵¸ú¤Ê¥Õ¥¡¥¤¥ë̾: %s\n"
-#: protoize.c:1425
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr "%s: %s: ¾õÂÖ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:1446
+#: protoize.c:1395
#, c-format
-msgid "\n%s: fatal error: aux info file corrupted at line %d\n"
-msgstr "\n%s: Ã×̿Ū¥¨¥é¡¼: Éû info ¥Õ¥¡¥¤¥ë¤¬ %d ¹ÔÌܤDzõ¤ì¤Æ¤¤¤Þ¤¹\n"
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr ""
+"\n"
+"%s: Ã×̿Ū¥¨¥é¡¼: Éû info ¥Õ¥¡¥¤¥ë¤¬ %d ¹ÔÌܤDzõ¤ì¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:1782
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr "%s:%d: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬Ê̤ηÁ¤ò¼è¤Ã¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:2040
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr "%s: `%s' ¤ò¥³¥ó¥Ñ¥¤¥ëÃæ\n"
-#: protoize.c:2063
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr "%s: ÂÔ¤Á: %s\n"
-#: protoize.c:2068
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr "%s: ¥µ¥Ö¥×¥í¥»¥¹¤¬Ã×̿Ū¥·¥°¥Ê¥ë %d ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿\n"
-#: protoize.c:2076
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr "%s: %s ¤Ï¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç½ªÎ»¤·¤Þ¤·¤¿\n"
-#: protoize.c:2128
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr "%s: ·Ù¹ð: SYSCALLS ¥Õ¥¡¥¤¥ë `%s' ¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:2137 protoize.c:2166
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤òÆɤळ¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2182 protoize.c:2210
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2238
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤òÆɤ߹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2256
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤òÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼: %s\n"
-#: protoize.c:2269
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤òÊĤ¸¤Æ¤¤¤ëºÇÃæ¤Ë¥¨¥é¡¼: %s\n"
-#: protoize.c:2285
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr "%s: Éû info ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2367 protoize.c:4369
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2446
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr "%s: ·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤ò `%s' ̾Á°Êѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:2571
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr "%s: '%s' ¤Î³°ÉôÄêµÁ¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:2575
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr "%s: '%s' ¤ÎÀë¸À¤ÏÊÑ´¹¤µ¤ì¤Þ¤»¤ó\n"
-#: protoize.c:2577
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: `%s' ¤ËÂФ¹¤ëÌ·½â°ìÍ÷¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹:\n"
-#: protoize.c:2610
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr "%s: ·Ù¹ð: %s(%d) ¤«¤é¤Î·Á¼°¥ê¥¹¥È¤ò¡¢´Ø¿ô `%s' ¤Î°Ù¤Ë»È¤¤¤Þ¤¹\n"
-#: protoize.c:2650
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: `%s' ¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤¹¤¬ SYSCALLS ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:2656
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr "%s: %d: ·Ù¹ð: `%s' ¤ËÂФ¹¤ë³°ÉôÄêµÁ¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:2687
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀÅŪÄêµÁ¤¬¥Õ¥¡¥¤¥ë `%s' ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
-#: protoize.c:2693
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr "%s: `%s' ¤ÎÀÅŪÄêµÁ¤¬¥Õ¥¡¥¤¥ë `%s' ¤ÎÃæ¤Ç½ÅÊ£¤·¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:2866 protoize.c:2869
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr "%s: %d: ·Ù¹ð: ¥½¡¼¥¹¤¬º®Í𤷤¹¤®¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:3075
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: ·Ù¹ð: varargs ´Ø¿ôÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:3090
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:3213
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n"
-#: protoize.c:3234
+#: protoize.c:3183
#, c-format
-msgid "\n%s: warning: too few parameter lists in declaration of `%s'\n"
-msgstr "\n%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n"
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr ""
+"\n"
+"%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n"
-#: protoize.c:3332
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr "%s: %d: ·Ù¹ð: `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿¤¬ `%s' ¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:3510
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr "%s: ´Ø¿ô `%s' ¤Î¥í¡¼¥«¥ëÀë¸À¤¬ÁÞÆþ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:3537
+#: protoize.c:3486
#, c-format
-msgid "\n%s: %d: warning: can't add declaration of `%s' into macro call\n"
-msgstr "\n%s: %d: ·Ù¹ð: `%s' ¤ÎÀë¸À¤ò¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤ËÄɲäǤ­¤Þ¤»¤ó\n"
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr ""
+"\n"
+"%s: %d: ·Ù¹ð: `%s' ¤ÎÀë¸À¤ò¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤ËÄɲäǤ­¤Þ¤»¤ó\n"
-#: protoize.c:3611
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤ÎÂç°èÀë¸À¤¬ÁÞÆþ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:3702 protoize.c:3732
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:3721
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: ·Ù¹ð: %s ¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:4051
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr "%s: `%s' ¤ÎÄêµÁ¤¬ %s(%d) ¤Ë¸«¤Ä¤«¤ê¤Þ¤·¤¿\n"
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4067
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr "%s: %d: ·Ù¹ð: `%s' ¤Ï¥×¥ê¥×¥í¥»¥¹¤«¤é½ü³°¤µ¤ì¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:4070
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr "%s: ´Ø¿ô¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:4129
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr "%s: `%s' ¤ÏÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: protoize.c:4137
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr "%s: `%s' ¤òÊÑ´¹¤·¤Þ¤¹\n"
-#: protoize.c:4140
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤òÊÑ´¹Ãæ\n"
-#: protoize.c:4150
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤Î¾õÂÖ¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4192
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr "%s: Æɤ߹þ¤ßÍѤ˥ե¡¥¤¥ë `%s' ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4207
+#: protoize.c:4156
#, c-format
-msgid "\n%s: error reading input file `%s': %s\n"
-msgstr "\n%s: ÆþÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼: %s\n"
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr ""
+"\n"
+"%s: ÆþÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼: %s\n"
-#: protoize.c:4241
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr "%s: ¤­¤ì¤¤¤Ê¥Õ¥¡¥¤¥ë `%s' ¤òºîÀ®/¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4346
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr "%s: ·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Ï´û¤Ë `%s' ¤ËÊݸ¤µ¤ì¤Æ¤¤¤Þ¤¹\n"
-#: protoize.c:4354
+#: protoize.c:4303
#, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤ò `%s' ¤Ë¥ê¥ó¥¯¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4384
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr "%s: ½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºîÀ®¤·¤¿¤ê³«¤¤¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4417
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr "%s: ¥Õ¥¡¥¤¥ë `%s' ¤Î¥â¡¼¥É¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
-#: protoize.c:4592
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr "%s: ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤¬Ê¬¤«¤ê¤Þ¤»¤ó: %s\n"
-#: protoize.c:4690
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤Ë¤Ï³ÈÄ¥»Ò .c ¤¬¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó: %s\n"
-#: real.c:816 real.c:993
-msgid "conversion from NaN to int"
-msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-
-#: real.c:839
-msgid "conversion from NaN to unsigned int"
-msgstr "NaN ¤«¤éÉä¹ç̵¤·À°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-
-#: real.c:2714
-msgid "floating point overflow"
-msgstr "ÉâÆ°¾®¿ôÅÀ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: real.c:4354 real.c:6626 real.c:6707
-msgid "overflow on truncation to integer"
-msgstr "À°¿ô¤Ø¤ÎÀÚ¤êµÍ¤á¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿"
-
-#: real.c:4426
-msgid "overflow on truncation to unsigned integer"
-msgstr "Éä¹ç̵¤·À°¿ô¤Ø¤ÎÀÚ¤êµÍ¤á¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿"
-
-#: real.c:5767
-#, c-format
-msgid "%s: argument domain error"
-msgstr "%s: °ú¿ôÎΰ襨¥é¡¼¤Ç¤¹"
-
-#: real.c:5768
-#, c-format
-msgid "%s: function singularity"
-msgstr "%s: ´Ø¿ô¤Îñ°ìÀ­"
-
-#: real.c:5769
-#, c-format
-msgid "%s: overflow range error"
-msgstr "%s: ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÈÏ°Ï¥¨¥é¡¼"
-
-#: real.c:5770
-#, c-format
-msgid "%s: underflow range error"
-msgstr "%s: ¥¢¥ó¥À¡¼¥Õ¥í¡¼ÈÏ°Ï¥¨¥é¡¼"
-
-#: real.c:5771
-#, c-format
-msgid "%s: total loss of precision"
-msgstr "%s: Á´ÂÎŪ¤ÊÀºÅÙ¤ÎÄã²¼"
-
-#: real.c:5772
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr "%s: ÉôʬŪ¤ÊÀºÅÙ¤ÎÄã²¼"
-
-#: real.c:5773
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr "%s: NaN - Áàºî¤òÀ¸¤¸¤Þ¤¹"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr ""
-#: reg-stack.c:677
+#: reg-stack.c:673
#, fuzzy, c-format
msgid "output constraint %d must specify a single register"
msgstr "½ÐÎÏÀ©Ìó %d ¤Ï°ì¤Ä¤Î¥ì¥¸¥¹¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:687
+#: reg-stack.c:683
#, fuzzy, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr "½ÐÎÏÀ©Ìó %d ¤Ï°ì¤Ä¤Î¥ì¥¸¥¹¥¿¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:710
+#: reg-stack.c:706
#, fuzzy
msgid "output regs must be grouped at top of stack"
msgstr "½ÐÎϥ쥸¥¹¥¿¤Ï¥¹¥¿¥Ã¥¯¤Î¥È¥Ã¥×¤Ë¥°¥ë¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:747
+#: reg-stack.c:743
#, fuzzy
msgid "implicitly popped regs must be grouped at top of stack"
msgstr "°ÅÌÛ¤Ë pop ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤Ï¥¹¥¿¥Ã¥¯¤Î¥È¥Ã¥×¤Ë¥°¥ë¡¼¥×¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: reg-stack.c:766
+#: reg-stack.c:762
#, fuzzy, c-format
msgid "output operand %d must use `&' constraint"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É %d ¤Ï `&' À©Ìó¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "'%s' ¤ò %s ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: regclass.c:793 config/ia64/ia64.c:3852 config/ia64/ia64.c:3859
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, c-format
msgid "unknown register name: %s"
msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr "Âç°è register ÊÑ¿ô¤¬´Ø¿ôÄêµÁ¤Î¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr "¥ì¥¸¥¹¥¿¤¬Æó¤Ä¤Î¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ»È¤ï¤ì¤Þ¤·¤¿"
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr "¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤¬¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ»È¤ï¤ì¤Þ¤·¤¿"
-#: regrename.c:1735
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1747
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1750
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1762
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1207
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr "À°¿ôÄê¿ô¥ª¥Ú¥é¥ó¥É¤ò `asm' Æâ¤ÇºÆ¥í¡¼¥É¤Ç¤­¤Þ¤»¤ó"
-#: reload.c:1229
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr "`asm' Æâ¤Ç¤Ï¥ì¥¸¥¹¥¿À©Ìó¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
-#: reload.c:3387
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr "`&' À©Ì󤬥쥸¥¹¥¿¥¯¥é¥¹Ìµ¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: reload.c:3555
+#: reload.c:3629
#, fuzzy
msgid "unable to generate reloads for:"
msgstr "¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë CPU ¤òÁªÂò¤¹¤ë"
-#: reload.c:3556 reload.c:3770
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr "`asm' Æâ¤Ç¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: reload1.c:1242
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr "¥Õ¥ì¡¼¥à¥µ¥¤¥º¤¬Â礭¤¹¤®¤Æ¡¢¥¹¥¿¥Ã¥¯¸¡ºº¤¬¿®Íê¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹"
-#: reload1.c:1245
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr "¥í¡¼¥«¥ëÊÑ¿ô¤Î¿ô¤òºï¸º¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
-#: reload1.c:1892
+#: reload1.c:1909
#, fuzzy, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr "¥¯¥é¥¹ `%s' Æâ¤Î¥ì¥¸¥¹¥¿¤ò `asm' ºÆ¥í¡¼¥ÉÃæ¤Ë¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
-#: reload1.c:1896
+#: reload1.c:1913
#, fuzzy, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr "¥¯¥é¥¹ `%s' Æâ¤Ç¤Õ¤ë¤¤Íî¤È¤¹¥ì¥¸¥¹¥¿¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
-#: reload1.c:1898
+#: reload1.c:1915
msgid "this is the insn:"
msgstr ""
-#: reload1.c:3924
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr "`asm' ¥ª¥Ú¥é¥ó¥É¤ÏºÆ¥í¡¼¥É¤Ç¤­¤Ê¤¤»ö¤¬Í׵ᤵ¤ì¤Þ¤¹"
#. It's the compiler's fault.
-#: reload1.c:5040
+#: reload1.c:5052
#, fuzzy
msgid "could not find a spill register"
msgstr "spec ¥Õ¥¡¥¤¥ë %s ¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: reload1.c:5045
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr "`asm' ¥ª¥Ú¥é¥ó¥ÉÀ©Ì󤬥ª¥Ú¥é¥ó¥É¥µ¥¤¥º¤ÈÀ°¹ç¤·¤Þ¤»¤ó"
#. It's the compiler's fault.
-#: reload1.c:6636
+#: reload1.c:6679
#, fuzzy
msgid "VOIDmode on an output"
msgstr "½ÐÎÏÃæ¤Ë I/O ¥¨¥é¡¼¤¬È¯À¸"
-#: reload1.c:6637
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ `asm' Æâ¤ÇÄê¿ô¤Ç¤¹"
-#: rtl-error.c:139
+#: rtl-error.c:140
#, fuzzy
msgid "unrecognizable insn:"
msgstr "ǧ¼±ÉÔǽ¤ÊÌ¿Îá:"
-#: rtl-error.c:141
+#: rtl-error.c:142
#, fuzzy
msgid "insn does not satisfy its constraints:"
msgstr "Ì¿Î᤬¤½¤ÎÀ©Ìó¤òËþ¤¿¤·¤Þ¤»¤ó"
-#: rtl.c:707
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr "RTL ¸¡ºº: elt %d(%s) ¤¬ºÇ¸å¤Î elt %d(%s Ãæ) ¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)"
-#: rtl.c:722
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "RTL ¸¡ºº: elt %d ·¿¤Ï '%c' ¤Î¤Ï¤º¤Ê¤Î¤Ë '%c' (rtx %s, %s Ãæ)¤Ç¤¹ (%s:%d)"
-#: rtl.c:738
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "RTL ¸¡ºº: elt %d ·¿¤Ï '%c' ¤« '%c' ¤Î¤Ï¤º¤Ê¤Î¤Ë '%c' (rtx %s, %s Ãæ) ¤Ç¤¹ (%s:%d)"
-#: rtl.c:751
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr "RTL ¸¡ºº: ¥³¡¼¥É `%s' ¤Î¤Ï¤º¤Ê¤Î¤Ë `%s' (%s Ãæ)¤Ç¤¹ (%s:%d)"
-#: rtl.c:765
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr "RTL ¸¡ºº: ¥³¡¼¥É `%s' ¤« `%s' ¤Î¤Ï¤º¤Ê¤Î¤Ë `%s' (%s Ãæ)¤Ç¤¹ (%s:%d)"
-#: rtl.c:780
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr "RTL check: ¥Ù¥¯¥È¥ë¤Î elt %d ¤òºÇ¸å¤Î elt %d (%s Ãæ)¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)"
-#: stmt.c:924
+#: rtl.c:623
+#, fuzzy, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "RTL ¸¡ºº: ¥³¡¼¥É `%s' ¤Î¤Ï¤º¤Ê¤Î¤Ë `%s' (%s Ãæ)¤Ç¤¹ (%s:%d)"
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr "`%s' ¤Ø¤Î¥¸¥ã¥ó¥×¤ÏÅ»¤á¤é¤ì¤¿¥Ö¥í¥Ã¥¯Æâ¤Ø¡¢Ìµ¸ú¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-#: stmt.c:1160 stmt.c:3816
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr "¥é¥Ù¥ë `%s' ¤¬Å»¤á¤é¤ì¤¿¥Ö¥í¥Ã¥¯¤ò¹½À®¤¹¤ëÁ°¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#: stmt.c:1345
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤Ë `=' ¤¬·ç¤±¤Æ¤¤¤Þ¤¹"
-#: stmt.c:1360
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr "½ÐÎÏÀ©Ìó `%c' (operand %d ÍÑ) ¤¬³«»ÏÉôʬ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:1382
+#: stmt.c:1227
#, fuzzy
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr "¥ª¥Ú¥é¥ó¥ÉÀ©ÌóÃæ¡¢ÉÔÀµ¤Ê°ÌÃÖ¤Ë '+' ¤ä '=' ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: stmt.c:1388 stmt.c:1672
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr "`%%' À©Ì󤬺Ǹå¤Î¥ª¥Ú¥é¥ó¥É¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#: stmt.c:1407
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÆâ¤ÎÀ©Ìó¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:1522
-#, c-format
-msgid "unknown register name `%s' in `asm'"
-msgstr "`asm' Ãæ¤ËÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾ `%s' ¤¬¤¢¤ê¤Þ¤¹"
-
-#: stmt.c:1580
-#, c-format
-msgid "output number %d not directly addressable"
-msgstr "½ÐÎÏÈÖ¹æ %d ¤ÏľÀÜ¥¢¥É¥ì¥¹»ØÄê¤Ç¤­¤Þ¤»¤ó"
-
-#: stmt.c:1608
-#, c-format
-msgid "more than %d operands in `asm'"
-msgstr "`asm' ¤ÎÃæ¤Ë %d ¤ò±Û¤¨¤ë¥ª¥Ú¥é¥ó¥É¤¬¤¢¤ê¤Þ¤¹"
-
-#: stmt.c:1646
-#, c-format
-msgid "hard register `%s' listed as input operand to `asm'"
-msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿ `%s' ¤¬ `asm' ¤ËÂФ·¡¢ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤·¤¿"
-
-#: stmt.c:1662
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr "ÆþÎÏ¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬ `%c' ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
-#: stmt.c:1703
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr "À©Ìó¤ËŬ¹ç¤µ¤»¤ë»þ¤Ë¡¢Ìµ¸ú¤Ê¥ª¥Ú¥é¥ó¥ÉÈÖ¹æ¤ò»²¾È¤·¤Þ¤·¤¿"
-#: stmt.c:1734
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr "̵¸ú¤Ê¶çÆÉÅÀ `%c' ¤¬À©ÌóÆâ¤Ë¤¢¤ê¤Þ¤¹"
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1768 stmt.c:1798
+#: stmt.c:1450
+#, fuzzy, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "`%s' ¤Î·¿½¤¾þ»Ò¤¬Á°Êý¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr "`asm' Ãæ¤ËÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾ `%s' ¤¬¤¢¤ê¤Þ¤¹"
+
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
+msgstr "`asm' ¤ÎÃæ¤Ë %d ¤ò±Û¤¨¤ë¥ª¥Ú¥é¥ó¥É¤¬¤¢¤ê¤Þ¤¹"
+
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
+msgstr "½ÐÎÏÈÖ¹æ %d ¤ÏľÀÜ¥¢¥É¥ì¥¹»ØÄê¤Ç¤­¤Þ¤»¤ó"
+
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr "asm ¥ª¥Ú¥é¥ó¥É %d ¤Ï¶²¤é¤¯À©Ìó¤ËŬ¹ç¤·¤Þ¤»¤ó"
-#: stmt.c:1944
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr ""
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr ""
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr "`asm' Ãæ¤ÎÂåÂØ¥­¡¼¥ï¡¼¥É¤¬Â¿¤¹¤®¤Þ¤¹"
-#: stmt.c:1956
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr "`asm' ¤Î¥ª¥Ú¥é¥ó¥ÉÀ©Ìó¤¬ÂåÂØÈÖ¹æ¤È¤Ï°Û¤Ê¤ê¤Þ¤¹"
-#: stmt.c:2009
+#: stmt.c:1994
#, fuzzy, c-format
msgid "duplicate asm operand name '%s'"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: stmt.c:2088
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:2108
+#: stmt.c:2109
#, fuzzy, c-format
msgid "undefined named operand '%s'"
msgstr "ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤±é»»»Ò %s ¤Ç¤¹"
-#: stmt.c:3753
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr "ÊÑ¿ô `%s' ¤Ï»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: stmt.c:5205
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr "ÎóµóÃÍ `%s' ¤Ï switch Æâ¤Ç°·¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: stmt.c:5231 stmt.c:5251
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr "case ÃÍ `%ld' ¤ÏÎóµó·¿¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: stmt.c:5234 stmt.c:5254
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr "case ÃÍ `%ld' ¤ÏÎóµó·¿ `%s' ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: stor-layout.c:172
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr "·¿¤ÎÂ礭¤µ¤ÏÌÀ¼¨Åª¤Ëɾ²Á¤µ¤ì¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤¨¤Þ¤»¤ó"
-#: stor-layout.c:174
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr "ÊÑ¿ô¥µ¥¤¥º·¿¤¬´Ø¿ô¤Î³°Â¦¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: stor-layout.c:447
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr "`%s' ¤Î¥µ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤Ç¤¹"
-#: stor-layout.c:449
+#: stor-layout.c:489
#, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "`%s' ¤Î¥µ¥¤¥º¤¬ %d ¥Ð¥¤¥È¤è¤êÂ礭¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: stor-layout.c:828 stor-layout.c:1081
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr "packed °À­¤Ï `%s' ¤ËÂФ·¤ÆÉÔ¸úΨ¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤ò°ú¤­µ¯¤³¤·¤Þ¤¹"
-#: stor-layout.c:830 stor-layout.c:1083
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr "packed °À­¤Ï `%s' ¤Ë¤ÏɬÍפ¢¤ê¤Þ¤»¤ó"
-#: stor-layout.c:845
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr "`%s' ¤ò¥¢¥é¥¤¥ó¤¹¤ë¤¿¤á¤Ë¹½Â¤ÂΤò¥Ñ¥Ç¥£¥ó¥°¤·¤Þ¤¹"
-#: stor-layout.c:1045
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr "¥¢¥é¥¤¥ó¥á¥ó¥È¶­³¦¤Î¥µ¥¤¥º¤Ë¹½Â¤ÂΤò¥Ñ¥Ç¥£¥ó¥°¤·¤Þ¤¹"
-#: stor-layout.c:1088
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr "packed °À­¤ÏÉÔ¸úΨ¤Ê¥¢¥é¥¤¥ó¥á¥ó¥È¤ò°ú¤­µ¯¤³¤·¤Þ¤¹"
-#: stor-layout.c:1090
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr "packed °À­¤ÏɬÍפ¢¤ê¤Þ¤»¤ó"
-#: timevar.c:448
-msgid "\nExecution times (seconds)\n"
-msgstr "\n¼Â¹Ô²ó¿ô (ÉÃ)\n"
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"¼Â¹Ô²ó¿ô (ÉÃ)\n"
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr " ¹ç·× :"
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "%s ¤Ç¤Î»þ´Ö: %ld.%06ld (%ld%%)\n"
-#: tlink.c:428
+#: tlink.c:399
#, c-format
msgid "collect: reading %s\n"
msgstr "collect: %s ¤òÆɤ߹þ¤ß¤Þ¤¹\n"
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr "collect: %s ¤òºÆ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹\n"
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr "collect: %s ¤ò°ú¤ÃÄ¥¤ê¤Þ¤¹(%s Æâ)\n"
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr "collect: ºÆ¥ê¥ó¥¯¤·¤Þ¤¹\n"
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ld ¤Ï¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç½ªÎ»¤·¤Þ¤·¤¿"
-#: toplev.c:917
+#: toplev.c:920
msgid "Generate debugging info in default format"
msgstr "¥Ç¥Õ¥©¥ë¥È·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:918
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr "¥Ç¥Õ¥©¥ë¥È³ÈÄ¥·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:920
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr "STABS ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:921
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr "³ÈÄ¥ STABS ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:924
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr "DWARF-1 ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:926
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr "³ÈÄ¥ DWARF-1 ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:929
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr "DWARF-2 ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:932
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr "XCOFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:933
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr "³ÈÄ¥ XCOFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:936
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr "COFF ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
-#: toplev.c:980
+#: toplev.c:942
+#, fuzzy
+msgid "Generate VMS format debug info"
+msgstr "STABS ·Á¼°¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òÀ¸À®¤¹¤ë"
+
+#: toplev.c:981
#, fuzzy
msgid "Perform DWARF2 duplicate elimination"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: toplev.c:982
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr "¥ì¥¸¥¹¥¿¤ËÉâÆ°¾®¿ô¤ò³ÊǼ¤·¤Ê¤¤"
-#: toplev.c:984
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr "¥Ý¥¤¥ó¥¿·Ðͳ¤Î¥á¥â¥ê»²¾È¤òÁ´¤Æ volatile ¤È¤ß¤Ê¤¹"
-#: toplev.c:986
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr "Âç°è¥Ç¡¼¥¿¤Ø¤Î¥á¥â¥ê»²¾È¤òÁ´¤Æ volatile ¤È¤ß¤Ê¤¹"
-#: toplev.c:988
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr "ÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥á¥â¥ê»²¾È¤òÁ´¤Æ volatile ¤È¤ß¤Ê¤¹"
-#: toplev.c:990
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr "´Ø¿ô°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤«¤é pop ¤¹¤ë¤Î¤ò¸Æ¤Ó½Ð¤·¸å¤Þ¤ÇÃ٤餻¤ë"
-#: toplev.c:992
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr "²Äǽ¤Ê¾ì¹ç¡¢¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤·¤Ê¤¤"
-#: toplev.c:994
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr "sibling ¸Æ¤Ó½Ð¤·¤äËöÈøºÆµ¢¸Æ¤Ó½Ð¤·¤òºÇŬ²½¤¹¤ë"
-#: toplev.c:996
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¤½¤ì¤é¤Î¥¿¡¼¥²¥Ã¥È¤Ø¤Î¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë"
-#: toplev.c:998
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr "CSE ¤ÇÆ°ºî¤¹¤ë¤È¤­¡¢¾ò·ï¥¸¥ã¥ó¥×¤ËÄɿ魯¤ë"
-#: toplev.c:1000
+#: toplev.c:1003
#, fuzzy
msgid "Perform a number of minor, expensive optimizations"
msgstr "ÌÜΩ¤¿¤Ê¤¤¡¢¥³¥¹¥È¤Î¤«¤«¤ëºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1002
+#: toplev.c:1005
#, fuzzy
msgid "Perform jump threading optimizations"
msgstr "¥¸¥ã¥ó¥×ʬ´ôºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1004
+#: toplev.c:1007
#, fuzzy
msgid "Perform strength reduction optimizations"
msgstr "¶¯Åٺ︺ºÇŬ²½¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1006
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr "È¿Éü²ó¿ô¤¬´ûÃΤΤȤ­¡¢¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1008
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr "Á´¤Æ¤Î¥ë¡¼¥×¤Ç¥ë¡¼¥×Ÿ³«¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1010
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: toplev.c:1012
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr "¥ë¡¼¥×Ãæ¤ËÉÔÊѤʷ׻»¤ò¥ë¡¼¥×¤Î³°¤Ë°ÜÆ°¤¹¤ë"
-#: toplev.c:1014
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr "¥ë¡¼¥×¤ÎÃæ¤ÎÁ´¤Æ¤Î°ìÈÌͶƳÊÑ¿ô¤ò¶¯Åٺ︺¤¹¤ë"
-#: toplev.c:1016
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr "ʸ»úÎó¤ò½ñ¤­¹þ¤ß²Äǽ¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ÊǼ¤¹¤ë"
-#: toplev.c:1018
+#: toplev.c:1021
#, fuzzy
msgid "Enable machine specific peephole optimizations"
msgstr "µ¡¼ï¸ÇÍ­¤ÎÇÁ¤­·êºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1020
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr "¥á¥â¥ê¥ª¥Ú¥é¥ó¥É¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë"
-#: toplev.c:1022
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr "¥á¥â¥ê¥¢¥É¥ì¥¹Äê¿ô¤òÍøÍѤ¹¤ëÁ°¤Ë¥ì¥¸¥¹¥¿¤Ø¥³¥Ô¡¼¤¹¤ë"
-#: toplev.c:1024
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr "´Ø¿ô¥¢¥É¥ì¥¹¤ò¥ì¥¸¥¹¥¿¤Ë»ý¤¿¤»¤ë»ö¤òµö²Ä¤¹¤ë"
-#: toplev.c:1026
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr "ñ½ã¤Ê´Ø¿ô¤ò¸Æ¤Ó½Ð¤·Â¦¤ËÅý¹ç¤¹¤ë"
-#: toplev.c:1028
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr "Á´¤Æ¥¤¥ó¥é¥¤¥ó¤È¤µ¤ì¤¿¤È¤·¤Æ¤â´Ø¿ô¤Î¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1030
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr "'inline' ¥­¡¼¥ï¡¼¥É¤ËÃí°Õ¤òʧ¤¦"
-#: toplev.c:1032
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr "»ÈÍѤµ¤ì¤Ê¤¤ÀÅŪÄê¿ôÊÑ¿ô¤Ç¤¢¤Ã¤Æ¤â½ÐÎϤ¹¤ë"
-#: toplev.c:1034
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr "ʸˡ¥¨¥é¡¼¤ò¸¡½Ð¤·¤Æ¡¢¤½¤³¤ÇÄä»ß¤¹¤ë"
-#: toplev.c:1036
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr "¥Ç¡¼¥¿¤ò¥×¥é¥¤¥Ù¡¼¥È¤Ç¤Ï¤Ê¤¯¶¦Í­¤µ¤ì¤ë¤è¤¦¥Þ¡¼¥¯¤¹¤ë"
-#: toplev.c:1038
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr "´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁ°¸å¤Ç¥ì¥¸¥¹¥¿¤ÎÊݸ¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1040
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr "'¾®¤µ¤Ê' ½¸¹çÂΤò¥ì¥¸¥¹¥¿¤Ç¤Ï¤Ê¤¯¥á¥â¥ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹"
-#: toplev.c:1042
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr "'¾®¤µ¤Ê' ½¸¹çÂΤò¥ì¥¸¥¹¥¿¤Ë³ÊǼ¤·¤ÆÊÖ¤¹"
-#: toplev.c:1044
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr "ʬ´ôÌ¿Îá¤ÎÃٱ䥹¥í¥Ã¥È¤ò»È¤¦¤³¤È¤ò»î¤ß¤ë"
-#: toplev.c:1046
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: toplev.c:1048
+#: toplev.c:1051
#, fuzzy
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: toplev.c:1050
+#: toplev.c:1053
#, fuzzy
msgid "Perform store motion after global subexpression elimination"
msgstr "¥°¥í¡¼¥Ð¥ë¶¦ÄÌÉôʬ¼°¤ò½üµî¤¹¤ë"
-#: toplev.c:1052
+#: toplev.c:1055
+#, fuzzy
+msgid "Perform the loop optimizations"
+msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
+
+#: toplev.c:1057
+#, fuzzy
+msgid "Perform cross-jumping optimization"
+msgstr "¥¸¥ã¥ó¥×ʬ´ôºÇŬ²½¤ò¹Ô¤Ê¤¦"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "¾ò·ïŪ¤Ê¼Â¹Ô¤Ø¤ÎÊѹ¹¤Î¤¿¤á¤ÎïçÃͤòÊѹ¹¤¹¤ë"
+
+#: toplev.c:1063
#, fuzzy
msgid "Run CSE pass after loop optimizations"
msgstr "¥ë¡¼¥×ºÇŬ²½¸å¤Ë¶¦ÄÌÉôʬ¼°½üµî²áÄø¤ò¼Â¹Ô"
-#: toplev.c:1054
+#: toplev.c:1065
#, fuzzy
msgid "Run the loop optimizer twice"
msgstr "¥ë¡¼¥×ºÇŬ²½¤òÆó²ó¼Â¹Ô¤¹¤ë"
-#: toplev.c:1056
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
msgstr "̵°ÕÌ£¤Ê null ¥Ý¥¤¥ó¥¿¸¡ºº¤òºï½ü¤¹¤ë"
-#: toplev.c:1058
-msgid "Pretend that host and target use the same FP format"
-msgstr "¥Û¥¹¥È¤È¥¿¡¼¥²¥Ã¥È¤¬Æ±¤¸ÉâÆ°¾®¿ô·Á¼°¤ò»È¤¦¿¶¤ëÉñ¤¤¤ò¤µ¤»¤ë"
-
-#: toplev.c:1060
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr "¥ì¥¸¥¹¥¿³ÎÊݤÎÁ°¤ËÌ¿Îá¤òÊ¤Ùľ¤¹"
-#: toplev.c:1062
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr "¥ì¥¸¥¹¥¿³ÎÊݤθå¤ÇÌ¿Îá¤òÊ¤Ùľ¤¹"
-#: toplev.c:1064
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr "´ðËÜ¥Ö¥í¥Ã¥¯¤ò¸Ù¤°Ì¿ÎáÇÛÃÖ¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1066
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr "Èó¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë"
-#: toplev.c:1068
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr "¤¤¤¯¤Ä¤«¤Î¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë"
-#: toplev.c:1070
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr "¤è¤ê¿¤¯¤Î¥í¡¼¥É¤Ç¤ÎÉԳμ¤ÊÆ°ºî¤òµö²Ä¤¹¤ë"
-#: toplev.c:1072
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr "²Ã»»¡¢Èæ³Ó¥Ö¥é¥ó¥Á¤ÎÂå¤ï¤ê¤Ë¥«¥¦¥ó¥È¥ì¥¸¥¹¥¿¤Î¥Ö¥é¥ó¥Á¤ò»È¤¦"
-#: toplev.c:1074
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr "²Äǽ¤Ç¤¢¤ì¤Ð°ÌÃÖÆÈΩ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1077
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr "Îã³°Ê᪤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1079
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1081
+#: toplev.c:1090
#, fuzzy
msgid "Generate unwind tables exact at each instruction boundary"
msgstr "´¬¤­Ìᤷ¤ò¹Ô¤Ê¤¦Îã³°Êä­Íѥơ¼¥Ö¥ë¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1083
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr "Ʊ´üÈó¸Æ¤Ó½Ð¤·Îã³°¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: toplev.c:1085
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr "¥×¥í¥°¥é¥à¤¬¥³¡¼¥É¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¸µ¤Ë¤Ê¤ë¸Ì¤òÁÞÆþ¤¹¤ë"
-#: toplev.c:1087
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr "gcov ¤¬É¬ÍפȤ¹¤ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë"
-#: toplev.c:1089
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr "ʬ´ô·ÐÏ©¿ä¬ÍѤΥץí¥Õ¥¡¥¤¥ë¾ðÊó¤òÍøÍѤ¹¤ë"
-#: toplev.c:1091
+#: toplev.c:1100
+#, fuzzy
+msgid "Enable basic program profiling code"
+msgstr "¥×¥í¥°¥é¥à¤¬¥³¡¼¥É¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¸µ¤Ë¤Ê¤ë¸Ì¤òÁÞÆþ¤¹¤ë"
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr "¥³¡¼¥ÉÇÛÃÖ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤òºÆÀ°Íý¤¹¤ë"
-#: toplev.c:1093
+#: toplev.c:1104
+#, fuzzy
+msgid "Reorder functions to improve code placement"
+msgstr "¥³¡¼¥ÉÇÛÃÖ¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë´ðËÜ¥Ö¥í¥Ã¥¯¤òºÆÀ°Íý¤¹¤ë"
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr "ºÇŬ²½²áÄø¤Î¥ì¥¸¥¹¥¿¤Ä¤±ÊѤ¨¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1095
+#: toplev.c:1108
#, fuzzy
msgid "Do the register copy-propagation optimization pass"
msgstr "ºÇŬ²½²áÄø¤Î¥ì¥¸¥¹¥¿¤Ä¤±ÊѤ¨¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1097
+#: toplev.c:1110
#, fuzzy
msgid "Do not put uninitialized globals in the common section"
msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤"
-#: toplev.c:1099
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr ".size µ¿»÷Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: toplev.c:1101
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr "³Æ¡¹¤Î´Ø¿ô¤ò¤½¤ì¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë"
-#: toplev.c:1103
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr "¥Ç¡¼¥¿¹àÌܤò¤½¤ì¤é¼«¿È¤Î¥»¥¯¥·¥ç¥ó¤ËÇÛÃÖ¤¹¤ë"
-#: toplev.c:1105
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+#, fuzzy
+msgid "Add extra commentary to assembler output"
msgstr ";ʬ¤Ê¥³¥á¥ó¥È¤ò¥¢¥»¥ó¥Ö¥é½ÐÎϤËÄɲ乤ë"
-#: toplev.c:1107
+#: toplev.c:1120
#, fuzzy
msgid "Output GNU ld formatted global initializers"
msgstr "GNU ld ·Á¼°¤ÎÂç°è½é´ü²½»Ò¤ò½ÐÎϤ¹¤ë"
-#: toplev.c:1109
+#: toplev.c:1122
#, fuzzy
msgid "Enables a register move optimization"
msgstr "°ÜÆ°Ì¿ÎáºÇŬ²½¥ì¥¸¥¹¥¿¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1111
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr "ºÇŬ²½²áÄø¤ÇºÇÂç¸Â¤Î regmove ¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1113
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð¤ò·ê¤¬³«¤«¤Ê¤¤¤è¤¦¤Ë¥Ñ¥Ã¥¯¤¹¤ë"
-#: toplev.c:1115
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr "¥×¥í¥°¥é¥à¤Ë¥¹¥¿¥Ã¥¯¶­³¦¸¡½Ð¥³¡¼¥É¤òÁÞÆþ¤¹¤ë"
-#: toplev.c:1117
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ê¤ê¤¦¤ë»ö¤ò»ØÄꤹ¤ë"
-#: toplev.c:1119
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr "°ú¿ô¤ÈÂç°è¥Ç¡¼¥¿¤ÏÊÌ̾¤Ë¤Ê¤ê¤¦¤ë¤¬Â¾¤Î°ú¿ô¤È¤ÏÊÌ̾¤Ç¤Ï¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: toplev.c:1121
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr "°ú¿ô¤¬Âç°è¥Ç¡¼¥¿¤ä¾¤Î°ú¿ô¤ÈÊÌ̾¤Ë¤Ï¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: toplev.c:1123
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr "¸·Ì©¤ÊÊÌ̾µ¬Â§¤ËŬ¹ç¤¹¤ë¤È¤ß¤Ê¤¹"
-#: toplev.c:1125
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr "¥ë¡¼¥×¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: toplev.c:1127
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr "¥é¥Ù¥ë¤Î¤¦¤Á¥¸¥ã¥ó¥×ÅþãÀè¤È¤Ê¤ë¤â¤Î¤À¤±¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: toplev.c:1129
+#: toplev.c:1142
msgid "Align all labels"
msgstr "Á´¤Æ¤Î¥é¥Ù¥ë¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: toplev.c:1131
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr "´Ø¿ô¤Î³«»Ï¤ò¥¢¥é¥¤¥ó¤¹¤ë"
-#: toplev.c:1133
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: toplev.c:1135
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: toplev.c:1137
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr "¥Ç¥Ð¥Ã¥°¥À¥ó¥×¤ÇÌ¿ÎáÈÖ¹æ¤È¹ÔÈÖ¹æ¥Î¡¼¥È¤Î½ÐÎϤòÍÞÀ©¤¹¤ë"
-#: toplev.c:1139
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr "´Ø¿ô¤ÎÆþ¤ê¸ý/½Ð¸ý¤Ç¥×¥í¥Õ¥¡¥¤¥ë¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1141
+#: toplev.c:1154
+#, fuzzy
+msgid "Put zero initialized data in the bss section"
+msgstr "Âç°èÊÑ¿ôÅù¤ò½é´ü²½¤µ¤ì¤Ê¤¤¥³¥â¥ó¥»¥¯¥·¥ç¥ó¤ËÃÖ¤«¤Ê¤¤"
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr "SSA ºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1143
+#: toplev.c:1158
#, fuzzy
msgid "Enable SSA conditional constant propagation"
msgstr "¾ò·ïŪ move Ì¿Îá¤ÎÍøÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1145
+#: toplev.c:1160
#, fuzzy
msgid "Enable aggressive SSA dead code elimination"
msgstr "¥Ç¥Ã¥É¥³¡¼¥É¤Î½üµî¤ò¹Ô¤Ê¤¦"
-#: toplev.c:1147
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr "³°Éô¥·¥ó¥Ü¥ë¤ËƬʸ»ú¥¢¥ó¥À¡¼¥¹¥³¥¢¤ò»ý¤¿¤»¤ë"
-#: toplev.c:1149
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr "#ident ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ò½èÍý¤¹¤ë"
-#: toplev.c:1151
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr "ÂèÆóÌ¿ÎáÇÛÃÖ¤ÎÁ°¤Ç rtl ÇÁ¤­·ê²áÄø¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1153
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr "ʬ´ô·ÐÏ©¿ä¬¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1155
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr "ÁȤ߹þ¤ß¿ô³Ø´Ø¿ô¤Î¸å¤Ë errno ¤ò¥»¥Ã¥È¤¹¤ë"
-#: toplev.c:1157
+#: toplev.c:1174
#, fuzzy
msgid "Floating-point operations can trap"
msgstr "ÉâÆ°¾®¿ôÅÀ¤Î¨Ãͤò½ÐÎϤ¹¤ëºÝ¤Ë¥È¥é¥Ã¥×¤¬¤«¤«¤ê¤Þ¤·¤¿"
-#: toplev.c:1159
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
-#: toplev.c:1161
-msgid "Compile pointers as triples: value, base & end"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: toplev.c:1163
+#: toplev.c:1180
#, fuzzy
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
+msgid "Generate code to check bounds before indexing arrays"
msgstr "ÇÛÎó¤Îź»ú¤Èź»ú¶­³¦¤ò¸¡ºº¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: toplev.c:1165
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr "ÉâÆ°¾®¿ôÅÀÄê¿ô¤òñÀºÅÙÄê¿ô¤ËÊÑ´¹¤¹¤ë"
-#: toplev.c:1167
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr "¼Â¹Ô½ªÎ»»þ¤Ë¥³¥ó¥Ñ¥¤¥é¤Î³Æ²áÄø¤ËÍפ·¤¿»þ´Ö¤òÊó¹ð¤¹¤ë"
-#: toplev.c:1169
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr "¼Â¹Ô½ªÎ»»þ¤Ë±Ê³Ū¤Ë³ÎÊݤµ¤ì¤¿¥á¥â¥ê¤òÊó¹ð¤¹¤ë"
-#: toplev.c:1171
+#: toplev.c:1188
#, fuzzy
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr "Éä¹çÉÕ¤­¤Î²Ã»»/¸º»»/¾è»»¤Ç¤Î·å¤¢¤Õ¤ì¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: toplev.c:1188
-msgid "Compile just for ISO C89"
-msgstr "ISO C89 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-
#: toplev.c:1190
-msgid "Do not promote floats to double if using -traditional"
-msgstr "-traditional »ÈÍÑ»þ¤Ë¤Ï¡¢ÉâÆ°¾®¿ô¤Ë´Ø¤· float ¤«¤é double ¤Ë³Ê¾å¤²¤·¤Ê¤¤"
+#, fuzzy
+msgid "Use graph coloring register allocation."
+msgstr "¥ì¥¸¥¹¥¿³ÎÊݤÎÁ°¤ËÌ¿Îá¤òÊ¤Ùľ¤¹"
+
+#: toplev.c:1207
+#, fuzzy
+msgid "Compile just for ISO C90"
+msgstr "ISO C89 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: toplev.c:1192
+#: toplev.c:1209
msgid "Determine language standard"
msgstr "¸À¸ì¤Îɸ½à¤ò·èÄꤹ¤ë"
-#: toplev.c:1196
+#: toplev.c:1213
#, fuzzy
msgid "Make bit-fields by unsigned by default"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹ç̵¤·¤È¤¹¤ë"
-#: toplev.c:1200
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr "'char' ¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹çÉÕ¤­¤È¤¹¤ë"
-#: toplev.c:1202
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr "'char' ¤ò¥Ç¥Õ¥©¥ë¥È¤ÇÉä¹ç̵¤·¤È¤¹¤ë"
-#: toplev.c:1208
-msgid "Attempt to support traditional K&R style C"
-msgstr "¸Å¤¤ K&R ¼°¤Î C ¤Î¥µ¥Ý¡¼¥È¤ò»î¤ß¤ë"
-
-#: toplev.c:1214
+#: toplev.c:1225
#, fuzzy
msgid "Do not recognize the 'asm' keyword"
msgstr "'asm' ͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: toplev.c:1217
+#: toplev.c:1228
#, fuzzy
msgid "Do not recognize any built in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: toplev.c:1219
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr "Ä̾ï¤Î C ¼Â¹Ô´Ä¶­¤òÁ°Äó¤È¤¹¤ë"
-#: toplev.c:1222
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
msgstr "ɸ½à¥é¥¤¥Ö¥é¥ê¤ä main ¤¬Â¸ºß¤·¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ë¤â¤Î¤È¤¹¤ë"
-#: toplev.c:1225
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr "? ±é»»»Ò¤Î°ú¿ô¤È¤·¤Æ°Û¤Ê¤Ã¤¿·¿¤òµöÍƤ¹¤ë"
-#: toplev.c:1228
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr "¼±ÊÌ»ÒÃæ¤Ç¤Î $ ¤Î»ÈÍѤòµöÍƤ¹¤ë"
-#: toplev.c:1233
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr "double ¤Î¥µ¥¤¥º¤ò float ¤ÈƱ¤¸¤È¤·¤Æ»ÈÍѤ¹¤ë"
-#: toplev.c:1236
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr "Îóµó·¿¤¬ÊÝ»ý¤Ç¤­¤ëºÇ¾®¤ÎÀ°¿ô·¿¤ò»ÈÍѤ¹¤ë"
-#: toplev.c:1239
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr "wchar_t ¤Îº¬ËÜŪ¤Ê·¿¤ò `unsigned short' ¤Èʤ¤¹"
-#: toplev.c:1243
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr "Ëؤó¤É¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍ­¸ú¤Ë¤¹¤ë"
-#: toplev.c:1245
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
msgstr "·¿¤Ë¸ß´¹À­¤Î¤Ê¤¤´Ø¿ô¤Î¥­¥ã¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1249
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
msgstr "format °À­¤ò¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1252
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr "½¤¾þ»Ò¤ò¼è¤êµî¤ë¥­¥ã¥¹¥È¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1255
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr "ź»ú¤Î·¿¤¬ 'char' ¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: toplev.c:1258 toplev.c:1261
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr "Æþ¤ì»Ò¤Ë¤Ê¤Ã¤¿¥³¥á¥ó¥È¤ò¸¡½Ð¤·¤¿¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1264
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr "·¿ÊÑ´¹¤¬º®Í𤹤ë²ÄǽÀ­¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1267
+#: toplev.c:1278
+#, fuzzy
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤·¤Ê¤¤"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÅù²Á¥Æ¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+
+#: toplev.c:1283
msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr "printf/scanf/strftime/strfmon ·Á¼°¤ÎÊѧŪ¤Ê¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1271
-msgid "Don't warn about strftime formats yielding 2 digit years"
-msgstr "strftime ·Á¼°¤¬Æó·å¤Çǯ¤òɽ¤·¤Æ¤¤¤ë»þ¤Î·Ù¹ð¤·¤Ê¤¤"
-
-#: toplev.c:1274
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr "format ´Ø¿ô¤Ø¤Î¿¤¹¤®¤ë°ú¿ô¤Ë´Ø¤¹¤ë·Ù¹ð¤·¤Ê¤¤"
-#: toplev.c:1276
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr "Èóʸ»úÎó¥ê¥Æ¥é¥ë¤Î format ʸ»úÎó¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1279
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr "¥»¥­¥å¥ê¥Æ¥£Åª¤ÊÌäÂê¤È¤Ê¤ê¤¦¤ë format ´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1282
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "strftime ·Á¼°¤¬Æó·å¤Çǯ¤òɽ¤·¤Æ¤¤¤ë»þ¤Î·Ù¹ð¤·¤Ê¤¤"
+
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr "°ÅÌۤδؿôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1286
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr "Àë¸À¤¬·¿¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1291
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr "#import ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ÎÍøÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1295
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr "-pedantic »ØÄê»þ¤Ç¤â 'long long' ¤Î»ÈÍѤˤĤ¤¤Æ¤Ï·Ù¹ð¤·¤Ê¤¤"
-#: toplev.c:1297
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr "µ¿¤ï¤·¤¤ main ¤ÎÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1300
+#: toplev.c:1316
#, fuzzy
msgid "Warn about possibly missing braces around initializers"
msgstr "½é´ü²½»Ò¤Î¼þ¤ê¤Ë¥Ö¥ì¡¼¥¹¤ò·ç¤¤¤Æ¤¤¤ëÍͤǤ¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: toplev.c:1303
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr "»öÁ°¤ÎÀë¸À¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1306
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr "¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤ÎÂç°è´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1309
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr "Ê£¿ôʸ»ú¥ê¥Æ¥é¥ë¤Î»ÈÍѤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1312
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr "¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×¥ì¥Ù¥ë¤Ç¤Ê¤¤ extern ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1315
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr "³ç¸Ì¤ò·ç¤¤¤Æ¤¤¤ë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1318
-msgid "Warn about possible violations of sequence point rules"
-msgstr "ÉûºîÍÑ´°Î»ÅÀµ¬Â§¤òÇˤë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-
-#: toplev.c:1321
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤Î·×»»¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1324
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr "Ʊ°ì¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀë¸À¤¬Ê£¿ô¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: toplev.c:1327
-msgid "Warn about signed/unsigned comparisons"
-msgstr "Éä¹çÉÕ¤­/Éä¹ç̵¤·¤ÎÈæ³Ó¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "Ìá¤êÃͤη¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤·¤Þ¤¹"
-#: toplev.c:1330
-msgid "Warn about testing equality of floating point numbers"
-msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÅù²Á¥Æ¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr "ÉûºîÍÑ´°Î»ÅÀµ¬Â§¤òÇˤë²ÄǽÀ­¤¬¤¢¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1333
-msgid "Warn about unrecognized pragmas"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ pragma ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Éä¹çÉÕ¤­/Éä¹ç̵¤·¤ÎÈæ³Ó¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1336
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr "¥×¥í¥È¥¿¥¤¥×¤µ¤ì¤Æ¤¤¤Ê¤¤´Ø¿ôÀë¸À¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1339
-msgid "Warn about constructs whose meaning change in ISO C"
+#: toplev.c:1352
+#, fuzzy
+msgid "Warn about constructs whose meanings change in ISO C"
msgstr "ISO C ¤Ç¤½¤Î°ÕÌ£¤¬Êѹ¹¤µ¤ì¤¿ÆâÍƤ˴ؤ·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1342
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr "¥È¥é¥¤¥°¥é¥Õ¤òȯ¸«¤·¤¿¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1347
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ pragma ¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr "ʸ»úÎó¤ò 'const char *' ¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë"
-#: toplev.c:1472
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr "´Ø¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1474
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr "¥é¥Ù¥ë¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1476
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr "´Ø¿ô¤Î²¾°ú¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1478
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr "ÊÑ¿ô¤¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1480
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr "¼°¤ÎÃͤ¬»È¤ï¤ì¤Ê¤¤¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1482
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr "¥·¥¹¥Æ¥à¥Ø¥Ã¥À¤«¤é¤Î·Ù¹ð¤òÍÞÀ©¤·¤Ê¤¤"
-#: toplev.c:1484
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr "Á´¤Æ¤Î·Ù¹ð¤ò¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¦"
-#: toplev.c:1486
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
msgstr "¤¢¤ë¥í¡¼¥«¥ëÊÑ¿ô¤¬Â¾¤Î¤â¤Î¤òʤ¤¤±£¤¹¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1488
-msgid "Warn about enumerated switches missing a specific case"
+#: toplev.c:1524
+#, fuzzy
+msgid "Warn about enumerated switches, with no default, missing a case"
msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1490
+#: toplev.c:1526
+#, fuzzy
+msgid "Warn about enumerated switches missing a default case"
+msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+
+#: toplev.c:1528
+#, fuzzy
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "ÎóµóÄê¿ô¤Î switch ¤Ç case »ØÄ꤬·ç¤±¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
+
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr "¹½Â¤ÂΡ¢¶¦ÍÑÂÎËô¤ÏÇÛÎó¤òÊÖ¤¹¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1492
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
msgstr "¥Ý¥¤¥ó¥¿¤Î¥­¥ã¥¹¥È¤Ç¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤¹¤ë¤â¤Î¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1494
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr "¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥³¡¼¥É¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1496
+#: toplev.c:1536
#, fuzzy
msgid "Warn about uninitialized automatic variables"
msgstr "½é´ü²½¤µ¤ì¤Ê¤¤¼«Æ°ÊÑ¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1498
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr "¥¤¥ó¥é¥¤¥ó´Ø¿ô¤ò¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1500
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr "packed °À­¤¬¹½Â¤ÂÎÇÛÃ֤˱ƶÁ¤·¤Ê¤¤¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1502
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð¤Î¥¢¥é¥¤¥ó¤Ç¡¢¥Ñ¥Ç¥£¥ó¥°¤òÍפ¹¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1504
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr "ºÇŬ²½²áÄø¤¬Ìµ¸ú²½¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-#: toplev.c:1506
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr ""
+
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr "noreturn °À­¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-#: toplev.c:1577 toplev.c:4317 tradcpp.c:781
+#: toplev.c:1550
+#, fuzzy
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "format °À­¤ò¤Î¸õÊä¤È¤Ê¤ê¤½¤¦¤Ê´Ø¿ô¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, fuzzy, c-format
msgid "invalid option `%s'"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `%s'"
-#: toplev.c:1723
-#, fuzzy, c-format
-msgid "internal error: %s"
-msgstr "ÆâÉô¥¨¥é¡¼: %s"
-
-#: toplev.c:2023
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
-#: toplev.c:2026
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr "`%s' ¤¬ `static' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
-#: toplev.c:2048
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr "`%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿"
-#: toplev.c:2279
+#: toplev.c:2280
#, c-format
msgid "invalid register name `%s' for register variable"
msgstr "`%s' ¤Ï¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ¤Ï̵¸ú¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹"
-#: toplev.c:3552
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr " -ffixed-<register> ¥³¥ó¥Ñ¥¤¥é¤ËÂФ· <register> ¤ò»ÈÍÑÉԲĤȥޡ¼¥¯¤¹¤ë\n"
-#: toplev.c:3553
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr " -fcall-used-<register> ´Ø¿ô¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë <register> ¤È¤·¤Æ¥Þ¡¼¥¯¤¹¤ë\n"
-#: toplev.c:3554
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr " -fcall-saved-<register> <register> ¤¬´Ø¿ô¤òÄ̤¸¤ÆÊÝ»ý¤µ¤ì¤ë¤È¥Þ¡¼¥¯¤¹¤ë\n"
-#: toplev.c:3555
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr " -finline-limit=<number> ¥¤¥ó¥é¥¤¥ó´Ø¿ô¤Î¥µ¥¤¥º¤ò <number> ¤ËÀ©¸Â¤¹¤ë\n"
-#: toplev.c:3556
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr " -fmessage-length=<number> ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò°ì¹ÔÊÕ¤ê <number> ʸ»ú¤ËÀ©¸Â¤¹¤ë¡£ 0 ¤À¤È²þ¹Ô¤òÍÞÀ©¤¹¤ë\n"
-#: toplev.c:3557
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr ""
" -fdiagnostics-show-location=[once | every-line] ¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤Î²þ¹Ô¤ÎºÝ¤Ë,\n"
" ¥½¡¼¥¹°ÌÃÖ¾ðÊ󤬹Ԥκǽé¤Ëɽ¼¨¤µ¤ì¤ëÉÑÅÙ¤ò»ØÄꤹ¤ë\n"
-#: toplev.c:3568
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
#, fuzzy
msgid " -O[number] Set optimization level to [number]\n"
msgstr " -O[number] ºÇŬ²½¥ì¥Ù¥ë¤ò [number] ¤ËÀßÄꤹ¤ë\n"
-#: toplev.c:3569
+#: toplev.c:3719
#, fuzzy
msgid " -Os Optimize for space rather than speed\n"
msgstr " -Os ®ÅÙ¤è¤ê¤â¥µ¥¤¥º¤ÎºÇŬ²½¤ò¹Ô¤Ê¤¦\n"
-#: toplev.c:3581
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
msgstr " -pedantic ¸·Ì©¤Ê ISO C ¤Ø¤ÎŬ¹ç¤ËÍפ¹¤ë·Ù¹ð¤òȯ¤¹¤ë\n"
-#: toplev.c:3582
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr " -pedantic-errors -pedantic ¤ÈƱÍͤÀ¤¬¡¢¥¨¥é¡¼¤òȯÀ¸¤µ¤»¤ë\n"
-#: toplev.c:3583
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr " -w ·Ù¹ð¤òÍÞÀ©¤¹¤ë\n"
-#: toplev.c:3584
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr " -W ÆÃÊ̤ʷٹð¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: toplev.c:3595
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr " -Wunused ̤»ÈÍѤˤĤ¤¤Æ¤Î·Ù¹ð¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: toplev.c:3596
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr " -Wlarger-than-<number> ¥ª¥Ö¥¸¥§¥¯¥È¤¬ <number> ¥Ð¥¤¥È¤è¤êÂ礭¤±¤ì¤Ð·Ù¹ð¤¹¤ë\n"
-#: toplev.c:3597
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr " -p ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: toplev.c:3599
-msgid " -a Enable block profiling \n"
-msgstr " -a ¥Ö¥í¥Ã¥¯¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
-
-#: toplev.c:3602
-msgid " -ax Enable jump profiling \n"
-msgstr " -ax ¥¸¥ã¥ó¥×¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
-
-#: toplev.c:3604
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr " -o <file> ½ÐÎϤò <file> ¤Ë½ñ¤­¹þ¤à\n"
-#: toplev.c:3605
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
@@ -7464,129 +8066,154 @@ msgstr ""
" -G <number> <number> ¥Ð¥¤¥È¤è¤ê¾®¤µ¤ÊÂç°è¤ª¤è¤ÓÀÅŪ¥Ç¡¼¥¿¤ò\n"
" ÆÃÊ̤ʥ»¥¯¥·¥ç¥ó¤ËÃÖ¤¯ (¥¿¡¼¥²¥Ã¥È¼¡Âè)\n"
-#: toplev.c:3616
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr " -aux-info <file> Àë¸À¾ðÊó¤ò <file> ¤Øȯ¹Ô¤¹¤ë\n"
-#: toplev.c:3617
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr " -quiet ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿´Ø¿ô¤ä·Ð²á»þ´Ö¤òɽ¼¨¤·¤Ê¤¤\n"
-#: toplev.c:3618
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr " -version ¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë\n"
-#: toplev.c:3619
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr " -d[letters] ¥³¥ó¥Ñ¥¤¥é¤Î²áÄø¤«¤é¤Î¥À¥ó¥×¤òÍ­¸ú¤Ë¤¹¤ë\n"
-#: toplev.c:3620
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr " -dumpbase <file> ²áÄø¤«¤é¤Î¥À¥ó¥×¤Ë»È¤ï¤ì¤ë̾Á°¤Î¥Ù¡¼¥¹¤È¤¹¤ë\n"
-#: toplev.c:3622
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr " -fsched-verbose=<number> ¥¹¥±¥¸¥å¡¼¥é¤ÎñÁÀå¥ì¥Ù¥ë¤òÀßÄꤹ¤ë\n"
-#: toplev.c:3624
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr " --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-#: toplev.c:3639
-msgid "\nLanguage specific options:\n"
-msgstr "\n¸À¸ì»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n"
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+"\n"
+"¸À¸ì»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n"
-#: toplev.c:3651
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr " %-23.23s [ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤]\n"
-#: toplev.c:3659 toplev.c:3673
+#: toplev.c:3803 toplev.c:3817
#, c-format
-msgid "\nThere are undocumented %s specific options as well.\n"
-msgstr "\nʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤ %s »ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n"
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr ""
+"\n"
+"ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤ %s »ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n"
-#: toplev.c:3663
+#: toplev.c:3807
#, c-format
-msgid "\n Options for %s:\n"
-msgstr "\n %s ÍÑ¥ª¥×¥·¥ç¥ó:\n"
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr ""
+"\n"
+" %s ÍÑ¥ª¥×¥·¥ç¥ó:\n"
-#: toplev.c:3700
-msgid "\nTarget specific options:\n"
-msgstr "\n¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n"
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó:\n"
-#: toplev.c:3714 toplev.c:3733
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr " -m%-23.23s [ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤]\n"
-#: toplev.c:3742
-msgid "\nThere are undocumented target specific options as well.\n"
-msgstr "\nʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n"
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr ""
+"\n"
+"ʸ½ñ²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥¿¡¼¥²¥Ã¥È»ÅÍÍ¥ª¥×¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£\n"
-#: toplev.c:3744
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr " ¤³¤ì¤é¤Ï¸ºß¤·¤Þ¤¹¤¬¡¢Ê¸½ñ²½¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: toplev.c:3797
+#: toplev.c:3941
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ gcc ¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó: %c"
-#: toplev.c:3867
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "`%s': ÉÔÌÀ¤Þ¤¿¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -g ¥ª¥×¥·¥ç¥ó¤Ç¤¹"
+
+#: toplev.c:4034
#, c-format
msgid "unrecognized register name `%s'"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥ì¥¸¥¹¥¿Ì¾ `%s'"
-#: toplev.c:3892 toplev.c:4746
+#: toplev.c:4059 toplev.c:5012
#, fuzzy, c-format
msgid "unrecognized option `%s'"
msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `-%s'"
-#: toplev.c:3936
+#: toplev.c:4107
#, fuzzy
msgid "-Wid-clash-LEN is no longer supported"
msgstr "-f%s ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:4013
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr "-gdwarf -g%d ¤ò»ÈÍÑ (DWARF v1, ¥ì¥Ù¥ë %d)"
-#: toplev.c:4016
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr "-gdwarf-2 ¤ò»ÈÍÑ (DWARF v2)"
-#: toplev.c:4021
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr "̵¸ú¤Ê¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë»ØÄê¤Ë¤è¤ê¡¢¥ª¥×¥·¥ç¥ó `%s' ¤ò̵»ë¤·¤Þ¤¹"
-#: toplev.c:4044 toplev.c:4744
+#: toplev.c:4215 toplev.c:5010
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr "`%s': ÉÔÌÀ¤Þ¤¿¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¤ -g ¥ª¥×¥·¥ç¥ó¤Ç¤¹"
-#: toplev.c:4051
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr "`%s' ¤Ï `-g%s' ¤È¶¥¹ç¤¹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: toplev.c:4130
+#: toplev.c:4304
msgid "-param option missing argument"
msgstr "-param ¥ª¥×¥·¥ç¥ó¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: toplev.c:4139
+#: toplev.c:4313
#, c-format
msgid "invalid --param option: %s"
msgstr "̵¸ú¤Ê --param ¥ª¥×¥·¥ç¥ó: %s"
-#: toplev.c:4151
+#: toplev.c:4325
#, c-format
msgid "invalid parameter value `%s'"
msgstr "̵¸ú¤Ê¥Ñ¥é¥á¥¿ÃÍ `%s'"
-#: toplev.c:4334
+#: toplev.c:4565
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7597,1281 +8224,1033 @@ msgstr ""
"%s\tcompiled by GNU C version %s.\n"
"%s%s%s version %s (%s) compiled by CC.\n"
-#: toplev.c:4390
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
msgid "options passed: "
msgstr "ÅϤµ¤ì¤¿¥ª¥×¥·¥ç¥ó: "
-#: toplev.c:4419
+#: toplev.c:4659
msgid "options enabled: "
msgstr "Í­¸ú¥ª¥×¥·¥ç¥ó: "
-#: toplev.c:4478
+#: toplev.c:4718 java/jcf-write.c:3453
#, c-format
msgid "can't open %s for writing"
msgstr "%s ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
-#: toplev.c:4736
+#: toplev.c:5002
#, fuzzy, c-format
msgid "ignoring command line option '%s'"
msgstr "¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó '%s' ¤ò̵»ë¤·¤Þ¤¹"
-#: toplev.c:4739
+#: toplev.c:5005
#, fuzzy, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr "(%s ÍѤȤ·¤Æ¤ÏÀµ¾ï¤Ç¤¹¤¬¡¢ÁªÂò¤µ¤ì¤¿¸À¸ì¤È¤·¤Æ¤Ï̵¸ú¤Ç¤¹)"
-#: toplev.c:4768
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized ¤Ï -O ̵¤·¤Ë¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:4824
+#: toplev.c:5094
msgid "instruction scheduling not supported on this target machine"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:4828
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤ÏÃÙ±äʬ´ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: toplev.c:4837
-msgid "profiling does not work without a frame pointer"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Ï¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Ê¤·¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó"
-
-#: toplev.c:4852
+#: toplev.c:5112
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:4915
+#: toplev.c:5175
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "-ffunction-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:4920
+#: toplev.c:5180
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:4927
+#: toplev.c:5187
#, fuzzy
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections ¤¬Ìµ¸ú¤Ç¤¹ -- ¥×¥í¥Õ¥¡¥¤¥ë¤ÏÉÔ²Äǽ¤Ç¤¹"
-#: toplev.c:4934
+#: toplev.c:5194
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "-fdata-sections ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: toplev.c:4940
+#: toplev.c:5200
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "-f%sleading-underscore ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¥Þ¥·¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: toplev.c:4947
+#: toplev.c:5209
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n"
+
+#: toplev.c:5215
#, fuzzy
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections ¤Ï¥¿¡¼¥²¥Ã¥È¤Ë¤è¤Ã¤Æ¤Ï¥Ç¥Ð¥Ã¥°¤Ë±Æ¶Á¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó"
-#: toplev.c:5068
+#: toplev.c:5327
#, c-format
msgid "error writing to %s"
msgstr "%s ¤Ø¤Î½ñ¤­¹þ¤ß¥¨¥é¡¼¤Ç¤¹"
-#: toplev.c:5070 java/jcf-parse.c:982
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, c-format
msgid "error closing %s"
msgstr "¥¨¥é¡¼¤Ë¤è¤ê %s ¤òÊĤ¸¤Þ¤¹"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "#if ¼°¤ÎÃæ¤Ç¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-
-#: tradcif.y:277
-#, fuzzy
-msgid "invalid number in #if expression"
-msgstr "#if ¼°¤ÎÃæ¤Ë̵¸ú¤Ê¿ôÃÍ"
-
-#: tradcif.y:358
-#, fuzzy
-msgid "invalid character constant in #if"
-msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
-
-#: tradcif.y:395
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "Æó½Å¤Ë¥¯¥©¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤Ï #if ¼°Æâ¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: tradcif.y:408
-#, fuzzy
-msgid "invalid token in expression"
-msgstr "̵¸ú¤Ê¥È¡¼¥¯¥ó¤¬¼°¤Ë¤¢¤ê¤Þ¤¹"
-
-#: tradcif.y:499
-msgid "octal character constant does not fit in a byte"
-msgstr "8 ¿Ê¿ôʸ»úÄê¿ô¤¬ 1 ¥Ð¥¤¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó"
-
-#: tradcif.y:520
-msgid "hex character constant does not fit in a byte"
-msgstr "16 ¿Ê¿ôʸ»úÄê¿ô¤¬ 1 ¥Ð¥¤¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó"
-
-#: tradcif.y:551
-msgid "empty #if expression"
-msgstr "¶õ¤Î #if ¼°¤Ç¤¹"
-
-#: tradcif.y:565
-msgid "Junk after end of expression."
-msgstr "¼°¤Î½ª¤ê°Ê¹ß¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-
-#: tradcpp.c:138
-msgid "macro or #include recursion too deep"
-msgstr "¥Þ¥¯¥í¤Þ¤¿¤Ï #include ¤ÎºÆµ¢¤¬¿¼¤¹¤®¤Þ¤¹"
-
-#: tradcpp.c:555
-#, fuzzy, c-format
-msgid "usage: %s [switches] input output"
-msgstr "»È¤¤Êý: %s [¥¹¥¤¥Ã¥Á] ÆþÎÏ ½ÐÎÏ"
-
-#: tradcpp.c:571
-msgid "-traditional is not supported in C++"
-msgstr "-traditional ¤Ï C++ ¤Ç¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó"
-
-#: tradcpp.c:573
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "-traditional ¤È -ansi ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
-
-#: tradcpp.c:587
-#, fuzzy
-msgid "filename missing after -i option"
-msgstr "-i ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:605
-#, fuzzy
-msgid "filename missing after -o option"
-msgstr "-o ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:664
-#, fuzzy, c-format
-msgid "target missing after %s option"
-msgstr "%s ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥¿¡¼¥²¥Ã¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:678
-#, fuzzy, c-format
-msgid "filename missing after %s option"
-msgstr "%s ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:703
-#, fuzzy, c-format
-msgid "macro name missing after -%c option"
-msgstr "-%c ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Þ¥¯¥í̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:723
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-pedantic ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
-
-#: tradcpp.c:728
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-trigraphs ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
-
-#: tradcpp.c:754
-#, fuzzy
-msgid "directory name missing after -I option"
-msgstr "-I ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:1434 tradcpp.c:3926
-msgid "`/*' within comment"
-msgstr "`/*' ¤¬¥³¥á¥ó¥ÈÆâ¤Ë¤¢¤ê¤Þ¤¹"
-
-#: tradcpp.c:1810
-#, c-format
-msgid "unterminated #%s conditional"
-msgstr "½ªÃ¼¤Î¤Ê¤¤ #%s ¾ò·ï"
-
-#: tradcpp.c:2169
-msgid "not in any file?!"
-msgstr "Á´¤¯¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤?!"
-
-#: tradcpp.c:2275
-msgid "`defined' must be followed by ident or (ident)"
-msgstr "`defined' ¤Î¸å¤í¤Ë ident ¤ä (ident) ¤¬¤³¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:2279
-msgid "cccp error: invalid special hash type"
-msgstr "cccp ¥¨¥é¡¼: Æüì¥Ï¥Ã¥·¥å·¿¤¬Ìµ¸ú¤Ç¤¹"
-
-#: tradcpp.c:2377 tradcpp.c:2447
-msgid "#include expects \"fname\" or <fname>"
-msgstr "#include ¤Î¸å¤Ë¤Ï \"fname\" ¤ä <fname> ¤¬É¬ÍפǤ¹"
-
-#: tradcpp.c:2532
-#, fuzzy, c-format
-msgid "no include path in which to find %.*s"
-msgstr "%.*s ¤¬¸«¤Ä¤«¤ë¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:2710
-msgid "invalid macro name"
-msgstr "̵¸ú¤Ê¥Þ¥¯¥í̾"
-
-#: tradcpp.c:2718
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr "̵¸ú¤Ê¥Þ¥¯¥í̾ `%s'"
-
-#: tradcpp.c:2723
-msgid "\"defined\" cannot be used as a macro name"
-msgstr "\"defined\" ¤ò¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: tradcpp.c:2750
-msgid "parameter name starts with a digit in #define"
-msgstr "#define Ãæ¤Î²¾°ú¿ô̾¤¬¿ô»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹"
-
-#: tradcpp.c:2760
-msgid "badly punctuated parameter list in #define"
-msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬ÊѤ˶èÀÚ¤é¤ì¤Þ¤·¤¿"
-
-#: tradcpp.c:2768
-msgid "unterminated parameter list in #define"
-msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬½ªÃ¼¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: tradcpp.c:2816
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr "\"%.*s\" ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-
-#: tradcpp.c:3073
-msgid "# operator should be followed by a macro argument name"
-msgstr "# ±é»»»Ò¤Î¸å¤í¤Ë¤Ï¥Þ¥¯¥í°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:3120 tradcpp.c:3146 tradcpp.c:3160 tradcpp.c:3167 tradcpp.c:3192
-msgid "invalid format #line command"
-msgstr "#line ¥³¥Þ¥ó¥É¤Î½ñ¼°¤¬Ìµ¸ú¤Ç¤¹"
-
-#: tradcpp.c:3218
-msgid "undefining `defined'"
-msgstr "`defined' ¤ò undef ¤·¤Þ¤¹"
-
-#: tradcpp.c:3222
-#, c-format
-msgid "undefining `%s'"
-msgstr "`%s' ¤ò undef ¤·¤Þ¤¹"
-
-#: tradcpp.c:3278
-msgid "extra text at end of directive"
-msgstr "¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Î½ª¤ê¤Ë;ʬ¤Ê¥Æ¥¯¥¹¥È¤¬¤¢¤ê¤Þ¤¹"
-
-#: tradcpp.c:3385
-#, c-format
-msgid "#error%.*s"
-msgstr "#error%.*s"
-
-#: tradcpp.c:3395
-#, c-format
-msgid "#warning%.*s"
-msgstr "#warning%.*s"
-
-#: tradcpp.c:3551
-msgid "#elif not within a conditional"
-msgstr "#elif ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:3808
-#, c-format
-msgid "#%s not within a conditional"
-msgstr "#%s ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:3816
-msgid "#else or #elif after #else"
-msgstr "#else ¤Î¸å¤í¤Ë #else ¤ä #elif ¤¬¤¢¤ê¤Þ¤¹"
-
-#: tradcpp.c:3856
-msgid "#else not within a conditional"
-msgstr "#else ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:3887
-msgid "unbalanced #endif"
-msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤ #endif"
-
-#: tradcpp.c:3981
-msgid "unterminated string or character constant"
-msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎóÄê¿ôËô¤Ïʸ»úÄê¿ô"
-
-#: tradcpp.c:4139
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "¥Þ¥¯¥í `%s' ¤Ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿"
-
-#: tradcpp.c:4145
-#, c-format
-msgid "no args to macro `%s'"
-msgstr "¥Þ¥¯¥í `%s' ¤Ø¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:4147
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "¥Þ¥¯¥í `%s' ¤Ø¤Î°ú¿ô¤¬°ì¸Ä¤·¤«¤¢¤ê¤Þ¤»¤ó"
-
-#: tradcpp.c:4149
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr "%d ¸Ä¤Î°ú¿ô¤·¤«¥Þ¥¯¥í `%s' ¤ËÅϤ·¤Æ¤¤¤Þ¤»¤ó"
-
-#: tradcpp.c:4151
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "°ú¿ô¤Î¿ô (%d) ¤¬¥Þ¥¯¥í `%s' ¤ËÂФ·¤Æ¿¤¹¤®¤Þ¤¹"
-
-#: tradcpp.c:4748
-#, fuzzy, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"%s ¤ÇÆâÉô¥¨¥é¡¼¡¢(tradcpp.c:%d)\n"
-"´°Á´¤Ê¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
-"%s ¤Ç¤½¤Î¼ê½ç¤ò¸«¤Æ¤¯¤À¤µ¤¤"
-
-#: tree-dump.c:841
+#: tree-dump.c:702
#, c-format
msgid "could not open dump file `%s'"
msgstr "¥À¥ó¥×¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿"
-#: tree-dump.c:917
+#: tree-dump.c:778
#, fuzzy, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr "`%s'(`-f%s' ¤Î½ª¤ê¤Ë¤¢¤ë) ¤ò̵»ë¤·¤Þ¤¹"
-#: tree.c:3841
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr "´Ø¿ô¤ÎÇÛÎó¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
-#: tree.c:3898
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: tree.c:4642
+#: tree.c:4557
msgid "invalid initializer for bit string"
msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
-#: tree.c:4701
+#: tree.c:4616
#, fuzzy, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
-#: tree.c:4718
+#: tree.c:4633
#, fuzzy, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr "Tree ¸¡ºº: ¥¯¥é¥¹ '%c' ¤Î¤Ï¤º¤¬ '%c' (%s) ¤Ç¤¹(%s Æâ, %s:%d)"
-#: varasm.c:452 config/i386/winnt.c:522
+#: tree.c:4650
+#, fuzzy, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "RTL check: ¥Ù¥¯¥È¥ë¤Î elt %d ¤òºÇ¸å¤Î elt %d (%s Ãæ)¤È°ì½ï¤Ë¥¢¥¯¥»¥¹¤·¤Þ¤¹ (%s:%d)"
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr "%s ¤Ï¥»¥¯¥·¥ç¥ó¥¿¥¤¥×¤Î¶¥¹ç¤ò°ú¤­µ¯¤³¤·¤Þ¤¹"
-#: varasm.c:880
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬ `%s' ÍѤ˻ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: varasm.c:882
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: varasm.c:885
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr "`%s' ¤Î¥Ç¡¼¥¿·¿¤Ï register ¤Ë¤Ï¤Õ¤µ¤ï¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:888
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr "`%s' ¤Ë»ØÄꤵ¤ì¤¿ register ¤Ï¥Ç¡¼¥¿·¿¤Ë¤Õ¤µ¤ï¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:897
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr "Âç°è register ÊÑ¿ô¤¬½é´üÃͤò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: varasm.c:900
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr "volatile register ÊÑ¿ô¤Ï°Õ¿Þ¤·¤¿¤è¤¦¤Ë¤ÏÆ°ºî¤·¤Þ¤»¤ó"
-#: varasm.c:936
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬Èó register ÊÑ¿ô `%s' ¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: varasm.c:1543
-#, c-format
-msgid "size of variable `%s' is too large"
-msgstr "ÊÑ¿ô `%s' ¤Î¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹"
-
-#: varasm.c:1583
+#: varasm.c:1542
#, fuzzy, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr "`%s' ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤¤¤Ç¤¹¡£ %d ¤ò»È¤¤¤Þ¤¹¡£"
-#: varasm.c:1634
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
#, fuzzy, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr "%s ¤ËÍ׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï¼ÂÁõ¤µ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È %d ¤è¤êÂ礭¤¤¤Ç¤¹"
-#: varasm.c:2120
-msgid "floating point trap outputting a constant"
-msgstr "ÉâÆ°¾®¿ôÅÀ¤Î¨Ãͤò½ÐÎϤ¹¤ëºÝ¤Ë¥È¥é¥Ã¥×¤¬¤«¤«¤ê¤Þ¤·¤¿"
-
-#: varasm.c:4454
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
msgstr "À°¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬Ê£»¨¤¹¤®¤Þ¤¹"
-#: varasm.c:4459
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤Î½é´üÀßÄê»Ò¤ÎÃͤ¬¡¢ÉâÆ°¾®¿ôÅÀÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: varasm.c:4508
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹"
-#: varasm.c:4722
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: varasm.c:4914
-#, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "`%s' ¤Î weak Àë¸À¤Ï public ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: varasm.c:4916
+#: varasm.c:4525 varasm.c:4568
#, c-format
msgid "weak declaration of `%s' must precede definition"
msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: varasm.c:4920
+#: varasm.c:4532
+#, fuzzy, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "`%s' ¤Î weak Àë¸À¤Ï public ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: varasm.c:4575
#, fuzzy, c-format
msgid "weak declaration of `%s' not supported"
msgstr "`%s' ¤Î weak Àë¸À¤Ï public ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: varasm.c:5016
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï weak alias ¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: varasm.c:5021
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: varray.c:88
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "¸½ºß¤ÎÀßÄê¤Ç¤Ï alias ÄêµÁ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ̵»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: varray.c:134
#, fuzzy, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr "²¾Áۥơ¼¥Ö¥ë %s[%lu]: Í×ÁÇ %lu ¤¬Èϰϳ°¤Ç¤¹"
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:170
+#: xcoffout.c:175
#, fuzzy, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr "%s ¥¹¥¿¥ÖÍѤΠsclass ¤¬¤¢¤ê¤Þ¤»¤ó (0x%x)\n"
-#: config/darwin-c.c:76
-msgid "too many #pragma options align=reset"
-msgstr ""
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "`%s' ¤Ï %s ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103
-#: config/darwin-c.c:105
-#, fuzzy
-msgid "malformed '#pragma options', ignoring"
-msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr ""
-#: config/darwin-c.c:108
-#, fuzzy
-msgid "junk at end of '#pragma options'"
-msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr ""
-#: config/darwin-c.c:118
-msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
msgstr ""
-#: config/darwin-c.c:131
-#, fuzzy
-msgid "missing '(' after '#pragma unused', ignoring"
-msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr ""
-#: config/darwin-c.c:149
-#, fuzzy
-msgid "missing ')' after '#pragma unused', ignoring"
-msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr ""
-#: config/darwin-c.c:152
+#: params.def:120
#, fuzzy
-msgid "junk at end of '#pragma unused'"
-msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
-msgid "-msystem-v and -p are incompatible"
-msgstr "-msystem-v ¤È -p ¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
-msgid "-msystem-v and -mthreads are incompatible"
-msgstr "-msystem-v ¤È -mthreads ¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: config/nextstep.c:68
-msgid "optimization turned on"
-msgstr "ºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
-
-#: config/nextstep.c:74
-msgid "optimization turned off"
-msgstr "ºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë"
-
-#: config/nextstep.c:83
-msgid "optimization level restored"
-msgstr "ºÇŬ²½¥ì¥Ù¥ë¤ò¸µ¤ËÌᤷ¤Þ¤·¤¿"
-
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
-msgstr "VAX-C ¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ÈÍÑ"
-
-#: config/a29k/a29k.c:1028
-#, c-format
-msgid "invalid %%Q value"
-msgstr "̵¸ú¤Ê %%Q ÃÍ"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5145
-#, c-format
-msgid "invalid %%C value"
-msgstr "̵¸ú¤Ê %%C ÃÍ"
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "RPTS ÍѤκÇÂçÈ¿Éü¿ô¤ò»ØÄꤹ¤ë"
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:4990
-#: config/rs6000/rs6000.c:5690
-#, c-format
-msgid "invalid %%N value"
-msgstr "̵¸ú¤Ê %%N ÃÍ"
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr ""
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5061
-#: config/rs6000/rs6000.c:5652
-#, c-format
-msgid "invalid %%M value"
-msgstr "̵¸ú¤Ê %%M ÃÍ"
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr ""
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5053
-#: config/rs6000/rs6000.c:5617
-#, c-format
-msgid "invalid %%m value"
-msgstr "̵¸ú¤Ê %%m ÃÍ"
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
+msgstr ""
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5014 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
-msgstr "̵¸ú¤Ê %%L ÃÍ"
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr ""
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:5698
-#, c-format
-msgid "invalid %%O value"
-msgstr "̵¸ú¤Ê %%O ÃÍ"
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr ""
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:4998
-#: config/rs6000/rs6000.c:5718
-#, c-format
-msgid "invalid %%P value"
-msgstr "̵¸ú¤Ê %%P ÃÍ"
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr ""
-#: config/a29k/a29k.c:1175
-#, c-format
-msgid "invalid %%V value"
-msgstr "̵¸ú¤Ê %%V ÃÍ"
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
-msgstr "DW ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤¿¤È¸«¤Ê¤·¤Æ¥³¡¼¥ÉÀ¸À®"
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
-msgstr "DW ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¸«¤Ê¤·¤Æ¥³¡¼¥ÉÀ¸À®"
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
-msgstr "¥Ð¥¤¥È½ñ¤­¹þ¤ß¤ò»È¤Ã¤Æ¥³¡¼¥ÉÀ¸À®"
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
-msgstr "¥Ð¥¤¥È½ñ¤­¹þ¤ß¤ò»È¤ï¤º¤Ë¥³¡¼¥ÉÀ¸À®"
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
-msgstr "¥¹¥â¡¼¥ë¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
-msgstr "¥Î¡¼¥Þ¥ë¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
-msgstr "¥é¡¼¥¸¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
-msgstr "29050 ¥³¡¼¥É¤òÀ¸À®"
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr ""
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
-msgstr "29000 ¥³¡¼¥É¤òÀ¸À®"
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
-msgstr "¥«¡¼¥Í¥ë¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤òÍøÍÑ"
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
-msgstr "¥æ¡¼¥¶¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤òÍøÍÑ"
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr ""
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr "¥¹¥¿¥Ã¥¯¥Á¥§¥Ã¥¯ÍÑ¥³¡¼¥É¤òÅǤ¯"
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+#, fuzzy
+msgid "malformed '#pragma options', ignoring"
+msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
-msgstr "¥¹¥¿¥Ã¥¯¥Á¥§¥Ã¥¯ÍÑ¥³¡¼¥É¤òÅǤ«¤Ê¤¤"
+#: config/darwin-c.c:107
+#, fuzzy
+msgid "junk at end of '#pragma options'"
+msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
-msgstr "storem ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤Ê¤¦"
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr ""
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
-msgstr "storem ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤Ê¤ï¤Ê¤¤"
+#: config/darwin-c.c:130
+#, fuzzy
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
-msgstr "°ú¿ô¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥«¥ë¤Î¤â¤Î¤ò³ÊǼ¤¹¤ë"
+#: config/darwin-c.c:148
+#, fuzzy
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
-msgstr "°ú¿ô¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥«¥ë¤Î¤â¤Î¤ò³ÊǼ¤·¤Ê¤¤"
+#: config/darwin-c.c:151
+#, fuzzy
+msgid "junk at end of '#pragma unused'"
+msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/a29k/a29k.h:118 config/i960/i960.h:289 config/mips/mips.h:408
-msgid "Use software floating point"
-msgstr "¥½¥Õ¥ÈÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr "-msystem-v ¤È -p ¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
-msgstr "multm Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr "-msystem-v ¤È -mthreads ¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: config/alpha/alpha.c:269
+#: config/alpha/alpha.c:342
#, fuzzy, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "-f%s ¤Ï 68HC11/68HC12 ÍѤȤ·¤Æ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿ (¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó)"
-#: config/alpha/alpha.c:293
+#: config/alpha/alpha.c:366
#, fuzzy
msgid "-mieee not supported on Unicos/Mk"
msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/alpha/alpha.c:304
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:321
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr "-mtrap-precision ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
-#: config/alpha/alpha.c:335
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr "-mfp-rounding-mode ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
-#: config/alpha/alpha.c:350
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr "-mfp-trap-mode ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
-#: config/alpha/alpha.c:369 config/alpha/alpha.c:381
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "-mcpu ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr "-mcpu ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ `%s'"
-#: config/alpha/alpha.c:388
+#: config/alpha/alpha.c:473
#, fuzzy
msgid "trap mode not supported on Unicos/Mk"
msgstr "VAX ÉâÆ°¾®¿ô¤Ç¤Ï¥È¥é¥Ã¥×¥â¡¼¥É¤òÍøÍѤǤ­¤Þ¤»¤ó"
-#: config/alpha/alpha.c:395
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr "ÉâÆ°¾®¿ôÅÀÊä´°¤Ï -mtrap-precision=i ¤òɬÍפȤ·¤Þ¤¹"
-#: config/alpha/alpha.c:411
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr "VAX ÉâÆ°¾®¿ô¤Ç¤Ï´Ý¤á¥â¡¼¥É¤òÍøÍѤǤ­¤Þ¤»¤ó"
-#: config/alpha/alpha.c:416
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr "VAX ÉâÆ°¾®¿ô¤Ç¤Ï¥È¥é¥Ã¥×¥â¡¼¥É¤òÍøÍѤǤ­¤Þ¤»¤ó"
-#: config/alpha/alpha.c:445
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr "L%d ¥­¥ã¥Ã¥·¥å¥ì¥¤¥Æ¥ó¥·¤Ï %s ¤Ë¤È¤Ã¤ÆÉÔÌÀ¤Ç¤¹"
-#: config/alpha/alpha.c:460
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "`%s' ¤Ï -mmemory-latency ¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃͤǤ¹"
-#: config/alpha/alpha.c:4964 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr "̵¸ú¤Ê %%H ÃÍ"
-#: config/alpha/alpha.c:4974 config/ia64/ia64.c:3521
+#: config/alpha/alpha.c:5625
+#, fuzzy, c-format
+msgid "invalid %%J value"
+msgstr "̵¸ú¤Ê %%W ÃͤǤ¹"
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "̵¸ú¤Ê %%r ÃÍ"
-#: config/alpha/alpha.c:4984 config/rs6000/rs6000.c:5764
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "̵¸ú¤Ê %%R ÃÍ"
-#: config/alpha/alpha.c:5006 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "̵¸ú¤Ê %%N ÃÍ"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "̵¸ú¤Ê %%P ÃÍ"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "̵¸ú¤Ê %%h ÃÍ"
-#: config/alpha/alpha.c:5096
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "̵¸ú¤Ê %%L ÃÍ"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "̵¸ú¤Ê %%m ÃÍ"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "̵¸ú¤Ê %%M ÃÍ"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "̵¸ú¤Ê %%U ÃÍ"
-#: config/alpha/alpha.c:5108 config/alpha/alpha.c:5122 config/romp/romp.c:698
-#: config/rs6000/rs6000.c:5772
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "̵¸ú¤Ê %%s ÃÍ"
-#: config/alpha/alpha.c:5182 config/rs6000/rs6000.c:5479
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "̵¸ú¤Ê %%C ÃÍ"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "̵¸ú¤Ê %%E ÃÍ"
-#: config/alpha/alpha.c:5203 config/romp/romp.c:973
-#: config/rs6000/rs6000.c:6080
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "ÉÔÌÀ¤ÊÀßÄêºÑ¥³¥ó¥¹¥È¥é¥¯¥¿·¿¤Ç¤¹"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "̵¸ú¤Ê %%xn ¥³¡¼¥É"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+#, fuzzy
+msgid "bad builtin fcode"
+msgstr "ÁȤ߹þ¤ß¥Þ¥¯¥í \"%s\" ¤Ï̵¸ú¤Ç¤¹"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:220 config/i386/i386.h:285 config/i386/i386.h:287
-#: config/i386/i386.h:289 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:327
-#: config/s390/s390.h:51 config/sparc/sparc.h:552 config/sparc/sparc.h:557
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍÑ"
-#: config/alpha/alpha.h:221 config/i386/i386.h:286 config/i386/i386.h:288
-#: config/rs6000/rs6000.h:329 config/sparc/sparc.h:554
-#: config/sparc/sparc.h:559
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ¹¤ë"
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Ê¤¤"
-#: config/alpha/alpha.h:225
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr "GAS ¤ÎÍøÍѤòÁ°Äó¤È¤·¤Ê¤¤"
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr "GAS ¤ÎÍøÍѤòÁ°Äó¤È¤¹¤ë"
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr "IEEE ½àµò¤Î¿ô³Ø¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó (OSF/1) ¤òÍ׵᤹¤ë"
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr "ÉÔŬÀÚ¤ÊÎã³°¤ò½ü¤¤¤Æ IEEE ½àµò¤Î¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:232
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr "ÉÔŬÀÚ¤ÊÎã³°¤ò´Þ¤á¤Æ IEEE ½àµò¤Î¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr "Ê£ÁÇ¿ô¤ÎÀ°¿ôÄê¿ô¤òÆɤ߹þ¤ßÀìÍÑ¥á¥â¥ê¤ËŸ³«¤µ¤»¤Ê¤¤"
-#: config/alpha/alpha.h:235
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr "VAX ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
-#: config/alpha/alpha.h:236
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr "VAX ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr "¥Ð¥¤¥È/¥ï¡¼¥É ISA ³ÈÄ¥ÍѤΥ³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:240
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr "¥â¡¼¥·¥ç¥ó¥Ó¥Ç¥ª ISA ³ÈÄ¥ÍѤΥ³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:243
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr "ÉâÆ°¾®¿ôÅÀ move ¤È sqrt ISA ³ÈÄ¥ÍѤΥ³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr "¥«¥¦¥ó¥È ISA ³ÈÄ¥ÍѤΥ³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/alpha/alpha.h:248
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr ""
-#: config/alpha/alpha.h:251
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr ""
-#: config/alpha/alpha.h:253
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an initializer
-#. with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed
-#. part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:298
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr "CPU ¤ËÍ¿¤¨¤é¤ì¤¿ÆÃħ¤ä¥¹¥±¥¸¥å¡¼¥ë¤òÍøÍѤ¹¤ë"
-#: config/alpha/alpha.h:300
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr "CPU ¤ËÍ¿¤¨¤é¤ì¤¿¥¹¥±¥¸¥å¡¼¥ë¤òÍøÍѤ¹¤ë"
-#: config/alpha/alpha.h:302
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr "À¸À®¤µ¤ì¤¿ÉâÆ°¾®¿ôÅÀ´Ý¤á¥â¡¼¥É¤òÀ©¸æ¤¹¤ë"
-#: config/alpha/alpha.h:304
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr "IEEE ¥È¥é¥Ã¥×¥â¡¼¥É¤òÀ©¸æ¤¹¤ë"
-#: config/alpha/alpha.h:306
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr "ÉâÆ°¾®¿ôÅÀÎã³°¤ËÍ¿¤¨¤é¤ì¤¿ÀºÅÙ¤òÀ©¸æ¤¹¤ë"
-#: config/alpha/alpha.h:308
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë"
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "-mcpu ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, fuzzy, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2272
-msgid "invalid operand to %R code"
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
msgstr "%R ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2295
-msgid "invalid operand to %H/%L code"
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
msgstr "%H/%L ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2372
-msgid "invalid operand to %U code"
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
msgstr "%U ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/arc/arc.c:1776
-msgid "invalid operand to %V code"
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
msgstr "%V ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2411 config/sparc/sparc.c:6007
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É½ÐÎÏ¥³¡¼¥É"
-#: config/arm/arm.c:442
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "-mcpu=%s ¥¹¥¤¥Ã¥Á¤Ï -march= ¥¹¥¤¥Ã¥Á¤È¶¥¹ç¤·¤Þ¤¹"
-#: config/arm/arm.c:452 config/rs6000/rs6000.c:440 config/sparc/sparc.c:383
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
-#: config/arm/arm.c:588
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï APCS-32 ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:593
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï APCS-26 ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:599
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï interworking ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:605
+#: config/arm/arm.c:621
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Ï THUMB Ì¿Îá¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#: config/arm/arm.c:619
+#: config/arm/arm.c:635
#, fuzzy
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢°ÕÌ£¤Î¤¢¤ë¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:622
+#: config/arm/arm.c:638
#, fuzzy
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢Èï¸Æ¤Ó½Ð¤·Â¦ interworking ¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:625
+#: config/arm/arm.c:641
#, fuzzy
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤¿¤È¤­¤Î¤ß¡¢¸Æ¤Ó½Ð¤·Â¦ interworking ¤òÍ­¸ú¤Ë¤·¤Þ¤¹"
-#: config/arm/arm.c:631
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr "interworking ¤Ï APCS-32 ¤Î»ÈÍѤò¶¯Íפ·¤Þ¤¹"
-#: config/arm/arm.c:637
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check ¤Ï -mno-apcs-frame ¤È¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:645
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic ¤È -mapcs-reent ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:648
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS ºÆÆþ²Äǽ¥³¡¼¥É¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/arm/arm.c:656
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g ¤Ë -mno-apcs-frame ¤ò¤Ä¤±¤ë¤È¡¢¤­¤áºÙ¤«¤Ê¥Ç¥Ð¥Ã¥°¤Ï¤Ç¤­¤Ê¤¤¤Ç¤·¤ç¤¦"
-#: config/arm/arm.c:664
+#: config/arm/arm.c:680
#, fuzzy
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤òÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤ÇÅϤ¹¤³¤È¤Ï¡¢¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/arm/arm.c:693
+#: config/arm/arm.c:709
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "̵¸ú¤ÊÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥È¥ª¥×¥·¥ç¥ó: -mfpe-%s"
-#: config/arm/arm.c:717
+#: config/arm/arm.c:733
#, fuzzy
msgid "structure size boundary can only be set to 8 or 32"
msgstr "¹½Â¤ÂΤΥµ¥¤¥º¶­³¦¤Ï 8 Ëô¤Ï 32 ¤Ë¤·¤«ÀßÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:725
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= ¤Ï -fpic ¤ò¤Ä¤±¤Ê¤¤¤ÈÌò¤ËΩ¤Á¤Þ¤»¤ó"
-#: config/arm/arm.c:734
+#: config/arm/arm.c:748
#, fuzzy, c-format
msgid "unable to use '%s' for PIC register"
msgstr "'%s' ¤ò PIC ¤Î¥ì¥¸¥¹¥¿¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:1969 config/arm/arm.c:1991 config/avr/avr.c:4711
-#: config/c4x/c4x.c:4650 config/h8300/h8300.c:3179 config/i386/i386.c:1249
-#: config/i386/i386.c:1278 config/m68hc11/m68hc11.c:1160
-#: config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1048
-#: config/rs6000/rs6000.c:9981 config/sh/sh.c:4703 config/sh/sh.c:4723
-#: config/sh/sh.c:4762 config/stormy16/stormy16.c:1998 config/v850/v850.c:2044
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, fuzzy, c-format
msgid "`%s' attribute only applies to functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
-#: config/arm/arm.c:9163
+#: config/arm/arm.c:9459
#, fuzzy
msgid "unable to compute real location of stacked parameter"
msgstr "¥¹¥¿¥Ã¥¯¤ËÀѤޤ줿²¾°ú¿ô¤Î¼ÂºÝ¤ÎÎΰè¤ò·×»»¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.c:9839
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr "¹â°Ì¥ì¥¸¥¹¥¿¤ò pop ¤¹¤ë°Ù¤Ë»ÈÍѤǤ­¤ëÄã°Ì¥ì¥¸¥¹¥¿¤¬¤¢¤ê¤Þ¤»¤ó"
-#: config/arm/arm.c:10028
+#: config/arm/arm.c:10389
#, fuzzy
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "Thumb ¥â¡¼¥É¤Ç¤Ï³ä¤ê¹þ¤ß¥µ¡¼¥Ó¥¹¥ë¡¼¥Á¥ó¤ò¥³¡¼¥É²½¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.h:424
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr "½é´ü²½¤µ¤ì¤¿ÊÑ¿ô `%s' ¤Ï dllimport ¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr "ÀÅŪÊÑ¿ô `%s' ¤Ï dllimport ¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr "APCS Ŭ¹ç¤·¤¿¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë"
-#: config/arm/arm.h:427
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤Ë´Ø¿ô̾¤ò³ÊǼ¤¹¤ë"
-#: config/arm/arm.h:431
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr "APCS ¤Î 32 ¥Ó¥Ã¥ÈÈǤò»ÈÍѤ¹¤ë"
-#: config/arm/arm.h:433
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr "APCS ¤Î 26 ¥Ó¥Ã¥ÈÈǤò»ÈÍѤ¹¤ë"
-#: config/arm/arm.h:437
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr "FP ¥ì¥¸¥¹¥¿¤Ç FP °ú¿ô¤òÅϤ¹"
-#: config/arm/arm.h:440
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr "ºÆÆþ²Äǽ¤Ê PIC ¥³¡¼¥É¤òÀ¸À®¤·¤Þ¤¹"
-#: config/arm/arm.h:443
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr "MMU ¤Ï¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤Ç¥È¥é¥Ã¥×¤òȯ¤¹¤ë¤Ç¤·¤ç¤¦"
-#: config/arm/arm.h:450
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr "ÉâÆ°¾®¿ôÅÀ±é»»¤ò¹Ô¤¦¥é¥¤¥Ö¥é¥ê¸Æ¤Ó½Ð¤·¤òÍøÍѤ¹¤ë"
-#: config/arm/arm.h:452 config/i960/i960.h:287
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/arm/arm.h:454
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤¬¥Ó¥Ã¥¯¥¨¥ó¥Ç¥£¥¢¥ó¤È¤·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤ß¤Ê¤¹"
-#: config/arm/arm.h:456
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤¬¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤È¤·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤ß¤Ê¤¹"
-#: config/arm/arm.h:458
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr "byte ¤¬¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ç word ¤¬¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤È¤ß¤Ê¤¹"
-#: config/arm/arm.h:460
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Thumb ¤È ARM Ì¿Î᥻¥Ã¥È´Ö¤Î¸Æ¤Ó½Ð¤·¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: config/arm/arm.h:463
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr "noreturn ´Ø¿ô¤¬ return ¤¹¤ë¤È¤­ abort ¤Î¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
-#: config/arm/arm.h:466
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr "´Ø¿ô¤Î³«»ÏÉôʬ¤ËÌ¿Îá¤ò°ÜÆ°¤·¤Ê¤¤"
-#: config/arm/arm.h:469
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr "´Ø¿ô¤ÎÁ°ÃÖ¤­Éôʬ¤Ë PIC ¥ì¥¸¥¹¥¿¤ò¥í¡¼¥É¤·¤Ê¤¤"
-#: config/arm/arm.h:472
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr "ɬÍפ¬¤¢¤ì¤Ð¡¢Ì¿Îá¸Æ¤Ó½Ð¤·¤ò´ÖÀܸƤӽФ·¤È¤·¤ÆÀ¸À®¤¹¤ë"
-#: config/arm/arm.h:475
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr "ARM ¤Ç¤Ï¤Ê¤¯ Thumb ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/arm/arm.h:479
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr "Thumb: ÉÔÍפʾì¹ç¤Ç¤â(ÈóËöü)¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë"
-#: config/arm/arm.h:482
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr "Thumb: ÉÔÍפʾì¹ç¤Ç¤â(Ëöü)¥¹¥¿¥Ã¥¯¥Õ¥ì¡¼¥à¤òÀ¸À®¤¹¤ë"
-#: config/arm/arm.h:485
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr "Thumb: ÈóÀÅŪ´Ø¿ô¤¬ ARM ¥³¡¼¥É¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤ß¤Ê¤¹"
-#: config/arm/arm.h:489
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
msgstr "Thumb: ´Ø¿ô¥Ý¥¤¥ó¥¿¤¬Èó Thumb ¤Èǧ¼±¤¹¤ë¥³¡¼¥É¤ËÆÍÆþ¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤ß¤Ê¤¹"
-#: config/arm/arm.h:499
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Î̾Á°¤ò»ØÄꤹ¤ë"
-#: config/arm/arm.h:501
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr "¥¿¡¼¥²¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î̾Á°¤ò»ØÄꤹ¤ë"
-#: config/arm/arm.h:505
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr "ÉâÆ°¾®¿ôÅÀ¥¨¥ß¥å¥ì¡¼¥¿¤Î¥Ð¡¼¥¸¥ç¥ó¤ò»ØÄꤹ¤ë"
-#: config/arm/arm.h:507
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr "¹½Â¤ÂÎ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎºÇ¾®¥Ó¥Ã¥È¿ô¤ò»ØÄꤹ¤ë"
-#: config/arm/arm.h:509
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr "PIC ¥¢¥É¥ì¥·¥ó¥°¤ËÍøÍѤµ¤ì¤ë¥ì¥¸¥¹¥¿¤ò»ØÄꤹ¤ë"
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
-#, c-format
-msgid "initialized variable `%s' is marked dllimport"
-msgstr "½é´ü²½¤µ¤ì¤¿ÊÑ¿ô `%s' ¤Ï dllimport ¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
-
-#: config/arm/pe.c:177 config/i386/winnt.c:299
-#, c-format
-msgid "static variable `%s' is marked dllimport"
-msgstr "ÀÅŪÊÑ¿ô `%s' ¤Ï dllimport ¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
-
#: config/arm/pe.h:65
msgid "Ignore dllimport attribute for functions"
msgstr "´Ø¿ô¤Î dllimport °À­¤ò̵»ë¤¹¤ë"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr "BSD ÍѤ˥·¥ó¥Ü¥ë̾¤òÊѹ¹¤¹¤ë"
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr "X/OPEN ÍѤ˥·¥ó¥Ü¥ë̾¤òÊѹ¹¤¹¤ë"
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr "¥·¥ó¥Ü¥ë̾¤ÎÊѹ¹¤ò¹Ô¤ï¤Ê¤¤"
-
-#: config/avr/avr.c:213
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr "MCU `%s' ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: config/avr/avr.c:453
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr "-mtiny-stack ¤Ë¤è¤ê¥é¡¼¥¸¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤¬Êѹ¹¤µ¤ì¤Þ¤¹(%d)"
-#: config/avr/avr.c:1048
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1143
#, fuzzy
msgid "internal compiler error. Bad address:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:1069
+#: config/avr/avr.c:1156
#, fuzzy
msgid "internal compiler error. Unknown mode:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:1777 config/avr/avr.c:2489
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
#, fuzzy
msgid "invalid insn:"
msgstr "̵¸ú¤Ê #line"
-#: config/avr/avr.c:1814 config/avr/avr.c:1900 config/avr/avr.c:1949
-#: config/avr/avr.c:1958 config/avr/avr.c:2056 config/avr/avr.c:2228
-#: config/avr/avr.c:2526 config/avr/avr.c:2637
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1977 config/avr/avr.c:2141 config/avr/avr.c:2299
-#: config/avr/avr.c:2681
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
#, fuzzy
msgid "unknown move insn:"
msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: config/avr/avr.c:2917
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:3033 config/avr/avr.c:3463 config/avr/avr.c:3843
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
#, fuzzy
msgid "internal compiler error. Incorrect shift:"
msgstr "ÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼."
-#: config/avr/avr.c:4684
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
#, fuzzy
msgid "only initialized variables can be placed into program memory area"
msgstr "¥×¥í¥°¥é¥à¥á¥â¥êÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤ò½é´ü²½¤·¤Þ¤·¤¿"
-#. `TARGET_...'
-#. This series of macros is to allow compiler command arguments to
-#. enable or disable the use of optional features of the target
-#. machine. For example, one machine description serves both the
-#. 68000 and the 68020; a command argument tells the compiler whether
-#. it should use 68020-only instructions or not. This command
-#. argument works by means of a macro `TARGET_68020' that tests a bit
-#. in `target_flags'.
-#.
-#. Define a macro `TARGET_FEATURENAME' for each such option. Its
-#. definition should test a bit in `target_flags'; for example:
-#.
-#. #define TARGET_68020 (target_flags & 1)
-#.
-#. One place where these macros are used is in the
-#. condition-expressions of instruction patterns. Note how
-#. `TARGET_68020' appears frequently in the 68000 machine description
-#. file, `m68k.md'. Another place they are used is in the
-#. definitions of the other macros in the `MACHINE.h' file.
-#: config/avr/avr.h:99
+#: config/avr/avr.c:4866
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "8 ¥Ó¥Ã¥ÈÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU `%s' ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr "int ¤ò 8 ¥Ó¥Ã¥ÈÀ°¿ô¤È¤ß¤Ê¤¹"
-#: config/avr/avr.h:101
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr "³ä¤ê¹þ¤ß¤Î̵¸ú²½¤Ê¤·¤Ç¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤òÊѹ¹¤¹¤ë"
-#: config/avr/avr.h:103
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr "´Ø¿ô¤ÎÁ°ÃÖ¤­/·ë¤Ó¤Î¤¿¤á¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤òÍøÍѤ¹¤ë"
-#: config/avr/avr.h:105
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr "¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤Î²¼°Ì 8 ¥Ó¥Ã¥È¤À¤±¤òÊѹ¹¤¹¤ë"
-#: config/avr/avr.h:107
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr "¥Æ¡¼¥Ö¥ë¥¸¥ã¥ó¥×Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/avr/avr.h:110
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr "asm ¥Õ¥¡¥¤¥ë¤ËÌ¿Î᥵¥¤¥º¤ò½ÐÎϤ¹¤ë"
-#: config/avr/avr.h:144
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr "½é´ü¥¹¥¿¥Ã¥¯¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë"
-#: config/avr/avr.h:145
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr "MCU ̾¤ò»ØÄꤹ¤ë"
@@ -8883,140 +9262,140 @@ msgstr "MCU ̾¤ò»ØÄꤹ¤ë"
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2677
+#: config/avr/avr.h:2450
#, fuzzy
msgid "trampolines not supported"
msgstr "¥È¥é¥ó¥Ý¥ê¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, fuzzy, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr "½Ò¸ì¤Î¸å¤í¤Î '(' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, fuzzy, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, fuzzy, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, fuzzy, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr "'#pragma %s' ¤ÎºÇ¸å¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, fuzzy, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr "ÉÔÌÀ¤Ê CPU ¥Ð¡¼¥¸¥ç¥ó %d¡¢40 ¤ò»ÈÍѤ·¤Þ¤¹¡£\n"
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, fuzzy, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr "ISR %s ¤Ï %d ¥ï¡¼¥É¤Î¥í¡¼¥«¥ëÊÑ¿ô¤òÍ׵ᤷ¡¢ºÇÂç¤Ï 32767 ¤Ç¤¹¡£"
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr ""
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr ""
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, fuzzy, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %B ¥³¡¼¥É¤Ç¤¹"
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, fuzzy, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %B ¥³¡¼¥É¤Ç¤¹"
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, fuzzy, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %B ¥³¡¼¥É¤Ç¤¹"
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
#, fuzzy
msgid "c4x_print_operand: Bad operand case"
msgstr "fr30_print_operand: %A ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê±é»»»Ò¤Ç¤¹"
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
#, fuzzy
msgid "c4x_print_operand_address: Bad post_modify"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
#, fuzzy
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
#, fuzzy
msgid "c4x_print_operand_address: Bad operand case"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr ""
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
msgid "mode not QImode"
msgstr ""
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
#, fuzzy
msgid "invalid indirect memory address"
msgstr "̵¸ú¤Ê PC ¤¬¹ÔÈÖ¹æ¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ê¤Þ¤¹"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr ""
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr ""
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
#, fuzzy
msgid "c4x_operand_subword: invalid mode"
msgstr "fr30_print_operand: ̵¸ú¤Ê %x ¥³¡¼¥É¤Ç¤¹"
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
#, fuzzy
msgid "c4x_operand_subword: invalid operand"
msgstr "fr30_print_operand: %A ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê±é»»»Ò¤Ç¤¹"
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr ""
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr ""
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr ""
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr ""
@@ -9024,7 +9403,6 @@ msgstr ""
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9060,567 +9438,556 @@ msgstr ""
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr "¥¹¥â¡¼¥ë¥á¥â¥ê¥â¥Ç¥ë"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr "¥Ó¥Ã¥°¥á¥â¥ê¥â¥Ç¥ë"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr "MPYI Ì¿Îá¤ò C3x ÍѤ˻ÈÍѤ¹¤ë"
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr "MPYI Ì¿Îá¤ò C3x ÍѤ˻ÈÍѤ·¤Ê¤¤"
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr "¹â®¤À¤¬¶á»÷ÃͤȤʤëÉâÆ°¾®¿ô¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤òÍøÍѤ¹¤ë"
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr "Ä㮤À¤¬Àµ³Î¤ÊÉâÆ°¾®¿ô¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤òÍøÍѤ¹¤ë"
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr "RTPS Ì¿Îá¤ÎÍøÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr "RTPS Ì¿Îá¤ÎÍøÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr "RTPB Ì¿Îá¤ÎÍøÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr "RTPB Ì¿Îá¤ÎÍøÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr "C30 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr "C31 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr "C32 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr "C33 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr "C40 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr "C44 CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr "TI ¥Ä¡¼¥ë¸ß´¹¤Î¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr "GAS ³ÈÄ¥¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr "¥¹¥â¡¼¥ë¥á¥â¥ê¥â¥Ç¥ë¤Ç ISR ¤ò¸Ù¤ë DP ¤ò¥»¡¼¥Ö¤¹¤ë"
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr "¥¹¥â¡¼¥ë¥â¥Ç¥ë¤Ç ISR ¤ò¸Ù¤ë DP ¤ò¥»¡¼¥Ö¤·¤Ê¤¤"
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr "°ú¿ô¤ò¥¹¥¿¥Ã¥¯ÅϤ·¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr "³«È¯Ãæ¤Î¿·µ¡Ç½¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr "³«È¯Ãæ¤Î¿·µ¡Ç½¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr "BK ¥ì¥¸¥¹¥¿¤òÈÆÍѥ쥸¥¹¥¿¤È¤·¤Æ»ÈÍѤ¹¤ë"
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr "BK ¥ì¥¸¥¹¥¿¤ò³ÎÊݤ·¤Ê¤¤"
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr "DB Ì¿Îá¤Î»ÈÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr "DB Ì¿Îá¤Î»ÈÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr "¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr "¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr "´¬¤­¾å¤²(hoist)¤ò²þÁ±¤¹¤ë¤¿¤áÄê¿ô¤ò¥ì¥¸¥¹¥¿¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤ò¶¯Íפ¹¤ë"
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr "Äê¿ô¤Î¥ì¥¸¥¹¥¿³ä¤êÅö¤Æ¤ò¶¯Íפ·¤Ê¤¤"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr "RTL À¸À®¤Ë¤Ä¤¤¤Æ¡¢Àµ¾ï¤Ê 3 ¥ª¥Ú¥é¥ó¥ÉÌ¿Îá¤ò¶¯Íפ¹¤ë"
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr "RTL À¸À®¤Ë¤Ä¤¤¤Æ¡¢Ìµ¸ú¤Ê 3 ¥ª¥Ú¥é¥ó¥ÉÌ¿Îá¤òµöÍƤ¹¤ë"
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+#, fuzzy
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr "Éä¹ç̵¤·¤Î RPTB/DB ÍѤÎÈ¿Éü¥«¥¦¥ó¥È¤òµöÍƤ¹¤ë"
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr "Éä¹ç̵¤·¤Î RPTB/DB ÍѤÎÈ¿Éü¥«¥¦¥ó¥È¤òµöÍƤ·¤Ê¤¤"
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr "¸Æ¤Ó½Ð¤·¤Î´Ö FP ¥ì¥¸¥¹¥¿¤Î 40 ¥Ó¥Ã¥ÈÁ´¤Æ¤òÊݸ¤¹¤ë"
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr "¸Æ¤Ó½Ð¤·¤Î´Ö FP ¥ì¥¸¥¹¥¿¤Î 32 ¥Ó¥Ã¥È¤À¤±¤òÊݸ¤¹¤ë"
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr "ÊÂÎóÌ¿Îá¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr "ÊÂÎóÌ¿Îá¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr "MPY||ADD ¤ª¤è¤Ó MPY||SUB Ì¿Îá¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr "MPY||ADD ¤ª¤è¤Ó MPY||SUB Ì¿Îá¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
msgstr "¥Ý¥¤¥ó¥¿¤¬ÊÌ̾¤È¤Ê¤ê¤¦¤ë¤³¤È¤òÁ°Äó¤È¤¹¤ë"
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
msgstr "¥Ý¥¤¥ó¥¿¤ÏÊÌ̾¤Ë¤Ê¤é¤Ê¤¤¤È¤ß¤Ê¤¹"
-#: config/c4x/c4x.h:321
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr "RPTS ÍѤκÇÂçÈ¿Éü¿ô¤ò»ØÄꤹ¤ë"
-#: config/c4x/c4x.h:323
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr "¥³¡¼¥É¤¬À¸À®¤µ¤ì¤ë CPU ¤òÁªÂò¤¹¤ë"
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr "C400 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr "C300 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr ""
-#: config/convex/convex.h:52
-msgid "Generate code for c1"
-msgstr "c1 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr ""
-#: config/convex/convex.h:53
-msgid "Generate code for c2"
-msgstr "c2 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr ""
-#: config/convex/convex.h:54
-msgid "Generate code for c32"
-msgstr "c32 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr ""
-#: config/convex/convex.h:55 config/convex/convex.h:56
-msgid "Generate code for c34"
-msgstr "c34 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: config/cris/cris.c:1233
+#, fuzzy
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "´Ø¿ô¤¬ __builtin_eh_return ¤ò»È¤¤¤Þ¤¹"
-#: config/convex/convex.h:58
-msgid "Use standard calling sequence, with arg count word"
-msgstr "ɸ½àŪ¸Æ¤Ó½Ð¤·¼ê½ç¤ò»È¤¤¡¢°ú¿ô¥«¥¦¥ó¥È word ¤ò¤Ä¤±¤ë"
+#: config/cris/cris.c:1312
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:60
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr "nop Ì¿ÎáÆâ¤Ë°ú¿ô¥«¥¦¥ó¥È¤òÃÖ¤¯ (push ¤è¤ê¹â®)"
+#: config/cris/cris.c:1324
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:62
-msgid "Don't push arg count, depend on symbol table"
-msgstr "°ú¿ô¥«¥¦¥ó¥È¤ò push ¤»¤º¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò¤¢¤Æ¤Ë¤¹¤ë"
+#: config/cris/cris.c:1334
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:64
-msgid "Use data cache for volatile mem refs (default)"
-msgstr "volatile ¥á¥â¥ê»²¾ÈÍѥǡ¼¥¿¥­¥ã¥Ã¥·¥å¤òÍøÍѤ¹¤ë(¥Ç¥Õ¥©¥ë¥È)"
+#: config/cris/cris.c:1341
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "%p ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:66
-msgid "Don't use data cache for volatile mem refs"
-msgstr "volatile ¥á¥â¥ê»²¾ÈÍѤˤϥǡ¼¥¿¥­¥ã¥Ã¥·¥å¤ò¹Ô¤ï¤Ê¤¤"
+#: config/cris/cris.c:1380
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:68
-msgid "Bypass data cache for volatile mem refs"
-msgstr "volatile ¥á¥â¥ê»²¾ÈÍÑ¤Ë¤Ï cache ¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²óÈò¤¹¤ë"
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/convex/convex.h:69
-msgid "Use 64-bit longs"
-msgstr "64 ¥Ó¥Ã¥È long ¤ò»ÈÍѤ¹¤ë"
+#: config/cris/cris.c:1417
+#, fuzzy
+msgid "bad register"
+msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ¹¤ë"
-#: config/convex/convex.h:70
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr "cc- ¤È libc ¸ß´¹¤Î 32 ¥Ó¥Ã¥È long ¤ò»ÈÍѤ¹¤ë"
+#: config/cris/cris.c:1455
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/aout.h:106
-msgid "Compile for the MMU-less Etrax 100-based elinux system"
-msgstr ""
+#: config/cris/cris.c:1472
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/aout.h:113
-msgid "For elinux, request a specified stack-size for this program"
-msgstr ""
+#: config/cris/cris.c:1497
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:878
-#, c-format
-msgid "stackframe too big: %d bytes"
-msgstr ""
+#: config/cris/cris.c:1505
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1193
-msgid "allocated but unused delay list in epilogue"
-msgstr ""
+#: config/cris/cris.c:1519
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/cris/cris.c:1203
+#: config/cris/cris.c:1528
#, fuzzy
-msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
-msgstr "´Ø¿ô¤¬ __builtin_eh_return ¤ò»È¤¤¤Þ¤¹"
+msgid "invalid operand modifier letter"
+msgstr "̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É½ÐÎÏ¥³¡¼¥É"
-#: config/cris/cris.c:1497
+#: config/cris/cris.c:1536
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "ÆâÉô¥¨¥é¡¼: "
-#: config/cris/cris.c:1966
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+#, fuzzy
+msgid "unexpected operand"
+msgstr "ͽ´ü¤µ¤ì¤ë¥á¥â¥ê¥ì¥¤¥Æ¥ó¥·¤òÄ´À°¤¹¤ë"
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+#, fuzzy
+msgid "unrecognized address"
+msgstr "ǧ¼±ÉÔǽ¤Î¥¨¥¹¥±¡¼¥× \\r%c"
+
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2253
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2335 config/cris/cris.c:2393
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "ǧ¼±ÉÔǽ¤Î¥¨¥¹¥±¡¼¥× \\r%c"
-#: config/cris/cris.c:2434
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2453
+#: config/cris/cris.c:2492
#, fuzzy, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-mregparm=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/cris/cris.c:2481
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2517
+#: config/cris/cris.c:2556
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2535
+#: config/cris/cris.c:2574
#, fuzzy
-msgid "-fPIC not supported in this configuration"
+msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/cris/cris.c:2551
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2742 config/cris/cris.c:2787
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr ""
-#: config/cris/cris.c:2888
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2901
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
#, fuzzy
msgid "unexpected address expression"
msgstr "']' ¤¬É¬Íפǡ¢Ìµ¸ú¤Ê·¿É½¸½¤Ç¤¹"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2915
-msgid "unexpected PIC symbol"
-msgstr ""
-
-#: config/cris/cris.c:2919
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2928
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr ""
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr ""
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr ""
+
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:333
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:338
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:342
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:345
+#: config/cris/cris.h:352
#, fuzzy
msgid "Do not use condition codes from normal instructions"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/cris/cris.h:349
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:352
+#: config/cris/cris.h:359
#, fuzzy
msgid "Do not tune stack alignment"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/cris/cris.h:355
+#: config/cris/cris.h:362
#, fuzzy
msgid "Do not tune writable data alignment"
msgstr "ʸ»úÎó¤ò½ñ¤­¹þ¤ß²Äǽ¥Ç¡¼¥¿¥»¥¯¥·¥ç¥ó¤Ë³ÊǼ¤¹¤ë"
-#: config/cris/cris.h:358
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:367
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:383
+#: config/cris/cris.h:390
#, fuzzy
msgid "Do not emit function prologue or epilogue"
msgstr "´Ø¿ô¤ÎÁ°ÃÖ¤­/·ë¤Ó¤Î¤¿¤á¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤òÍøÍѤ¹¤ë"
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:387
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr ""
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:393
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:425
+#: config/cris/cris.h:432
#, fuzzy
msgid "Generate code for the specified chip or CPU version"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/cris/cris.h:427
+#: config/cris/cris.h:434
#, fuzzy
msgid "Tune alignment for the specified chip or CPU version"
msgstr "`%s' ¤ËÂФ·¤Æ¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/cris/cris.h:429
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1025
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, fuzzy, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr "¥ì¥¸¥¹¥¿ %s ¤Ë¤È¤Ã¤ÆÉÔÀµ¤Ê modes_tieable_p, mode1 %s, mode2 %s"
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr ""
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775
-#: config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr ""
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr ""
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr ""
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr ""
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr ""
-#. This macro defines names of command options to set and clear bits in
-#. `target_flags'. Its definition is an initializer with a subgrouping for
-#. each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the option name, a
-#. number, which contains the bits to set in `target_flags', and a second
-#. string which is the description displayed by `--help'. If the number is
-#. negative then the bits specified by the number are cleared instead of being
-#. set. If the description string is present but empty, then no help
-#. information will be displayed for that option, but it will not count as an
-#. undocumented option. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. One of the subgroupings should have a null string. The number in this
-#. grouping is the default value for target_flags. Any target options act
-#. starting with that value.
-#.
-#. Here is an example which defines -m68000 and -m68020 with opposite meanings,
-#. and picks the latter as the default:
-#.
-#. #define TARGET_SWITCHES { { "68020", TARGET_MASK_68020, "" }, { "68000", -TARGET_MASK_68020, "Compile for the 68000" }, { "", TARGET_MASK_68020, "" }}
-#: config/d30v/d30v.h:443
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr "¾ò·ïŪ move Ì¿Îá¤ÎÍøÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/d30v/d30v.h:446
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr "¾ò·ïŪ move Ì¿Îá¤ÎÍøÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/d30v/d30v.h:449
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr "¥³¥ó¥Ñ¥¤¥éÆâ¤Î¥Ç¥Ð¥Ã¥°°ú¿ô¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: config/d30v/d30v.h:452
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr "¥³¥ó¥Ñ¥¤¥éÆâ¤Î¥Ç¥Ð¥Ã¥°¥¹¥¿¥Ã¥¯¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: config/d30v/d30v.h:455
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr "¥³¥ó¥Ñ¥¤¥éÆâ¤Î¥Ç¥Ð¥Ã¥°¥á¥â¥ê¥¢¥É¥ì¥¹¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: config/d30v/d30v.h:458
+#: config/d30v/d30v.h:129
#, fuzzy
msgid "Make adjacent short instructions parallel if possible"
msgstr "²Äǽ¤Ê¤é¤ÐÎÙÀܤ¹¤ëû¤¤Ì¿Îá¤òÊÂÎ󲽤¹¤ë"
-#: config/d30v/d30v.h:461
+#: config/d30v/d30v.h:132
#, fuzzy
msgid "Do not make adjacent short instructions parallel"
msgstr "ÎÙÀܤ¹¤ëû¤¤Ì¿Îá¤òÊÂÎ󲽤·¤Ê¤¤"
-#: config/d30v/d30v.h:464 config/d30v/d30v.h:467
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr "¥×¥í¥°¥é¥à/¥Ç¡¼¥¿¤ò¥Ç¥Õ¥©¥ë¥È¤Ç³°Éô¥á¥â¥êÆâ¤Ë¥ê¥ó¥¯¤¹¤ë"
-#: config/d30v/d30v.h:470
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr "¥×¥í¥°¥é¥à/¥Ç¡¼¥¿¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¥Á¥Ã¥×¾å¤Î¥á¥â¥êÆâ¤Ë¥ê¥ó¥¯¤¹¤ë"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of command
-#. options that have values. Its definition is an initializer with a
-#. subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed part of
-#. the option name, the address of a variable, and a description string. The
-#. variable, type `char *', is set to the variable part of the given option if
-#. the fixed part matches. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. Here is an example which defines `-mshort-data-<number>'. If the given
-#. option is `-mshort-data-512', the variable `m88k_short_data' will be set to
-#. the string "512".
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data, "Specify the size of the short data section" } }
-#: config/d30v/d30v.h:497
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr "¥³¥ó¥Ñ¥¤¥éÆâÉô¤Ç¤Îʬ´ô¥³¥¹¥È¤òÊѹ¹¤¹¤ë"
-#: config/d30v/d30v.h:500
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr "¾ò·ïŪ¤Ê¼Â¹Ô¤Ø¤ÎÊѹ¹¤Î¤¿¤á¤ÎïçÃͤòÊѹ¹¤¹¤ë"
@@ -9634,36 +10001,32 @@ msgstr "¥¹¥¿¥Ã¥¯¥µ¥¤¥º > 32k"
msgid "invalid addressing mode"
msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤ò»ÈÍѤ¹¤ë"
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
#, fuzzy
msgid "bad register extension code"
msgstr "ÉÔÀµ¤Ê¥ì¥¸¥¹¥¿³ÈÄ¥¥³¡¼¥É"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
#, fuzzy
msgid "invalid offset in ybase addressing"
msgstr "ybase ¥¢¥É¥ì¥·¥ó¥°¤Ë̵¸ú¤Ê¥ª¥Õ¥»¥Ã¥È"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
#, fuzzy
msgid "invalid register in ybase addressing"
msgstr "ybase ¥¢¥É¥ì¥·¥ó¥°¤Ë̵¸ú¤Ê¥ª¥Õ¥»¥Ã¥È"
-#: config/dsp16xx/dsp16xx.c:1990 config/dsp16xx/dsp16xx.c:2287
-msgid "inline float constants not supported on this host"
-msgstr "¤³¤Î¥Û¥¹¥È¤Ç¤Ï¥¤¥ó¥é¥¤¥óÉâÆ°¾®¿ôÄê¿ô¤ò¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
#, fuzzy
msgid "invalid shift operator in emit_1600_core_shift"
msgstr "emit_1600_core_shift ¤Ç¤Î̵¸ú¤Ê¥·¥Õ¥È±é»»»Ò"
-#: config/dsp16xx/dsp16xx.c:2493
+#: config/dsp16xx/dsp16xx.c:2428
#, fuzzy
msgid "invalid mode for gen_tst_reg"
msgstr "gen_tst_reg ¤Ë¤È¤Ã¤Æ¤Î̵¸ú¤Ê¥â¡¼¥É"
-#: config/dsp16xx/dsp16xx.c:2565
+#: config/dsp16xx/dsp16xx.c:2500
#, fuzzy
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr "gen_compare_reg ¤Ç¤ÎÀ°¿ôÈæ³Ó¤Ë¤È¤Ã¤Æ¤Î̵¸ú¤Ê¥â¡¼¥É"
@@ -9673,128 +10036,111 @@ msgstr "gen_compare_reg ¤Ç¤ÎÀ°¿ôÈæ³Ó¤Ë¤È¤Ã¤Æ¤Î̵¸ú¤Ê¥â¡¼¥É"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
#, fuzzy
msgid "Pass parameters in registers (default)"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
#, fuzzy
msgid "Don't pass parameters in registers"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
#, fuzzy
msgid "Generate code for near calls"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
#, fuzzy
msgid "Don't generate code for near calls"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
#, fuzzy
msgid "Generate code for near jumps"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
#, fuzzy
msgid "Don't generate code for near jumps"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
#, fuzzy
msgid "Generate code for a bit-manipulation unit"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
#, fuzzy
msgid "Don't generate code for a bit-manipulation unit"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
#, fuzzy
msgid "Generate code for memory map1"
msgstr "Äã°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
#, fuzzy
msgid "Generate code for memory map2"
msgstr "Äã°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
#, fuzzy
msgid "Generate code for memory map3"
msgstr "Äã°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
#, fuzzy
msgid "Generate code for memory map4"
msgstr "Äã°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
#, fuzzy
msgid "Don't let reg. allocator use ybase registers"
msgstr "¥ì¥¸¥¹¥¿¤ËÉâÆ°¾®¿ô¤ò³ÊǼ¤·¤Ê¤¤"
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/dsp16xx/dsp16xx.h:274
+#: config/dsp16xx/dsp16xx.h:272
#, fuzzy
msgid "Specify alternate name for text section"
msgstr "¥¿¡¼¥²¥Ã¥È CPU ¤Î̾Á°¤ò»ØÄꤹ¤ë"
-#: config/dsp16xx/dsp16xx.h:276
+#: config/dsp16xx/dsp16xx.h:274
#, fuzzy
msgid "Specify alternate name for data section"
msgstr "Äê¿ôʸ»úÎóÍѤΥ¯¥é¥¹Ì¾¤ò»ØÄꤹ¤ë"
-#: config/dsp16xx/dsp16xx.h:278
+#: config/dsp16xx/dsp16xx.h:276
#, fuzzy
msgid "Specify alternate name for bss section"
msgstr "Äê¿ôʸ»úÎóÍѤΥ¯¥é¥¹Ì¾¤ò»ØÄꤹ¤ë"
-#: config/dsp16xx/dsp16xx.h:280
+#: config/dsp16xx/dsp16xx.h:278
#, fuzzy
msgid "Specify alternate name for constant section"
msgstr "Äê¿ôʸ»úÎóÍѤΥ¯¥é¥¹Ì¾¤ò»ØÄꤹ¤ë"
-#: config/dsp16xx/dsp16xx.h:282
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1236 config/dsp16xx/dsp16xx.h:1241
-#: config/dsp16xx/dsp16xx.h:1246 config/dsp16xx/dsp16xx.h:1843
-#: config/dsp16xx/dsp16xx.h:1848
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
#, fuzzy
msgid "profiling not implemented yet"
msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
@@ -9802,146 +10148,296 @@ msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1257 config/dsp16xx/dsp16xx.h:1269
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
#, fuzzy
msgid "trampolines not yet implemented"
msgstr "Trampoline ¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr "unix ¥¢¥»¥ó¥Ö¥é¤¬½èÍý¤Ç¤­¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr "Ëä¤á¹þ¤ß¥¢¥»¥ó¥Ö¥é¤¬½èÍý¤Ç¤­¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/fr30/fr30.c:456
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:480
#, fuzzy, c-format
-msgid "fr30_print_operand: unrecognized %p code"
+msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %p ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:503
-#, fuzzy
-msgid "fr30_print_operand: unrecognized %b code"
+#: config/fr30/fr30.c:500
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %b ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:524
-#, fuzzy
-msgid "fr30_print_operand: unrecognized %B code"
+#: config/fr30/fr30.c:521
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: ǧ¼±¤Ç¤­¤Ê¤¤ %B ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:532
-#, c-format
-msgid "fr30_print_operand: invalid operand to %A code"
+#: config/fr30/fr30.c:529
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: %A ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê±é»»»Ò¤Ç¤¹"
-#: config/fr30/fr30.c:549
-#, c-format
-msgid "fr30_print_operand: invalid %x code"
+#: config/fr30/fr30.c:546
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: ̵¸ú¤Ê %x ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:556
-#, c-format
-msgid "fr30_print_operand: invalid %F code"
+#: config/fr30/fr30.c:553
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: ̵¸ú¤Ê %F ¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:572
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621
-#: config/fr30/fr30.c:634
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: ½èÍý¤µ¤ì¤Ê¤¤ MEM ¤Ç¤¹"
-#: config/fr30/fr30.h:76
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
msgstr "¥¹¥â¡¼¥ë¥¢¥É¥ì¥¹¶õ´Ö¤È¤ß¤Ê¤¹"
-#: config/h8300/h8300.c:141
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+#, fuzzy
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "fr30_print_operand_address: ½èÍý¤µ¤ì¤Ê¤¤¥¢¥É¥ì¥¹¤Ç¤¹"
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+#, fuzzy
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "¥ª¥Ú¥é¥ó¥É¤Ï const_double ¤Ç¤¹"
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "fr30_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "±é»»»ÒÈֹ椬¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÈϰϳ°¤Ç¤¹"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
#, fuzzy
msgid "-ms2600 is used without -ms"
msgstr "-ms2600 ¤¬ -ms ¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "-ms2600 ¤¬ -ms ¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+#, fuzzy
+msgid "Generate H8S code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+#, fuzzy
+msgid "Do not generate H8S code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+#, fuzzy
+msgid "Generate H8S/2600 code"
msgstr "H8/S2600 ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
msgstr "H8/S2600 ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr "À°¿ô¤ò 32 ¥Ó¥Ã¥ÈÉý¤È¤¹¤ë"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤·¤Ê¤¤"
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr "¥Ð¥¤¥È¥µ¥¤¥ºÃ±°Ì¤Î¥á¥â¥ê¥¢¥¯¥»¥¹¤¬ÃÙ¤¤¤³¤È¤ò¹Íθ¤¹¤ë"
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr "¥ê¥ó¥«¤Î -relax ¥ª¥×¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr "H8/300H ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr "H8/300H ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr "H8/300 ¥¢¥é¥¤¥ó¥á¥ó¥Èµ¬Â§¤ò»ÈÍѤ¹¤ë"
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
msgid "malformed #pragma map, ignored"
msgstr "¤ª¤«¤·¤Ê #pragma map¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr "ËÜÍè¤Î̾Á°¤¬Ä¹¤¹¤®¤Þ¤¹ - ÊÌ̾¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr "ÊÌ̾¤¬Ä¹¤¹¤®¤Þ¤¹ - ÊÌ̾¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr ""
@@ -9949,373 +10445,429 @@ msgstr ""
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr "ʸ»úÌ¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr "ʸ»úÌ¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/i386/cygwin.h:51
-msgid "Use the Cygwin interface"
-msgstr "Cygwin ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
-
-#: config/i386/cygwin.h:53
-msgid "Use the Mingw32 interface"
-msgstr "Mingw32 ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
-
-#: config/i386/cygwin.h:54
-msgid "Create GUI application"
-msgstr "GUI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºî¤ë"
-
-#: config/i386/cygwin.h:55
-msgid "Don't set Windows defines"
-msgstr "Windows ¤Î define ¤òÀßÄꤷ¤Ê¤¤"
-
-#: config/i386/cygwin.h:56
-msgid "Set Windows defines"
-msgstr "Windows ¤Î define ¤òÀßÄꤹ¤ë"
-
-#: config/i386/cygwin.h:58
-msgid "Create console application"
-msgstr "¥³¥ó¥½¡¼¥ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºî¤ë"
-
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
-msgid "Generate code for a DLL"
-msgstr "DLL ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
-msgid "Ignore dllimport for functions"
-msgstr "´Ø¿ô¤Ø¤Î dllimport ¤ò̵»ë¤¹¤ë"
-
-#: config/i386/cygwin.h:63
-msgid "Use Mingw-specific thread support"
-msgstr "Mingw ¸ÇÍ­¤Î¥¹¥ì¥Ã¥É¥µ¥Ý¡¼¥È¤ò»ÈÍѤ¹¤ë"
-
-#: config/i386/cygwin.h:257
-#, c-format
-msgid "-f%s ignored for target (all code is position independent)"
-msgstr "-f%s ¤Ï¥¿¡¼¥²¥Ã¥È¤Ç̵»ë¤µ¤ì¤Þ¤¹ (Á´¤Æ¤Î¥³¡¼¥É¤Ï°ÌÃÖÈó°Í¸¤Ç¤¹)"
-
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr "ɸ½à MXDB ¾ðÊó¤òÊÝ»ý¤¹¤ë"
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr "legend ¾ðÊó¤ò°Ý»ý¤¹¤ë"
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr "³°Éô legend ¾ðÊó¤òÀ¸À®¤¹¤ë"
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr ".s ¥Õ¥¡¥¤¥ëÆâ¤Ë¼±Ê̻ҾðÊó¤òÁ÷½Ð¤¹¤ë"
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr "´Ø¿ô¤Î°ú¿ô¤¬¹½Â¤ÂΤÀ¤Ã¤¿¤é·Ù¹ð¤¹¤ë"
-
-#: config/i386/dgux.h:252
-msgid "argument is a structure"
-msgstr "°ú¿ô¤¬¹½Â¤ÂΤǤ¹"
-
-#: config/i386/djgpp.h:201
-#, fuzzy
-msgid "-mbnu210 is ignored (option is obsolete)"
-msgstr "-mbnu210 ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿(ÇѤ줿¥ª¥×¥·¥ç¥ó¤Ç¤¹)"
-
-#: config/i386/i386.c:921
+#: config/i386/i386.c:1050
#, fuzzy, c-format
msgid "code model %s not supported in PIC mode"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/i386.c:931 config/sparc/sparc.c:346
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "-mcmodel= ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤ÆÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:946
+#: config/i386/i386.c:1075
#, fuzzy, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:949
+#: config/i386/i386.c:1078
#, fuzzy, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/i386.c:952
+#: config/i386/i386.c:1081
#, fuzzy
msgid "code model `large' not supported yet"
msgstr "`%s' ¤Ï %s ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/i386.c:954
+#: config/i386/i386.c:1083
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:984 config/mips/mips.c:4972
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:995 config/mips/mips.c:4928
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1014
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1027
+#: config/i386/i386.c:1154
#, fuzzy
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1032 config/i386/i386.c:1045 config/i386/i386.c:1058
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1040
+#: config/i386/i386.c:1167
#, fuzzy
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1053
+#: config/i386/i386.c:1180
#, fuzzy
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions=%d ¤¬ 0 ¤«¤é %d ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1092
+#: config/i386/i386.c:1218
#, fuzzy, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred-stack-boundary=%d ¤¬ 2 ¤«¤é 31 ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1104
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d ¤¬ 0 ¤«¤é 5 ¤Î´Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/i386/i386.c:1121
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1123
+#: config/i386/i386.c:1265
#, fuzzy
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï²Äȼ¹Իþ¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: config/i386/i386.c:1139 config/i386/i386.c:1150
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
#, fuzzy
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: config/i386/i386.c:1155
+#: config/i386/i386.c:1297
#, fuzzy
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: config/i386/i386.c:1162
+#: config/i386/i386.c:1304
#, fuzzy, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "-march= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/i386/i386.c:1289
+#: config/i386/i386.c:1436
#, fuzzy, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr "3 ¤Ä¤Î 'l' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
-#: config/i386/i386.c:1295
+#: config/i386/i386.c:1442
#, fuzzy, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "ÄêµÁ¤Î¸å¤Ç `%s' °À­¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/i386.c:5317
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
msgid "invalid UNSPEC as operand"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê UNSPEC"
-#: config/i386/i386.c:5518
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:5533
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:5778
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:9729
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê¼°"
+
+#: config/i386/i386.c:11271
#, fuzzy
msgid "unknown insn mode"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
#. @@@ better error message
-#: config/i386/i386.c:11608 config/i386/i386.c:11641 config/i386/i386.c:11778
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
msgid "selector must be an immediate"
msgstr "¥»¥ì¥¯¥¿¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
#. @@@ better error message
-#: config/i386/i386.c:11809 config/i386/i386.c:11837
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
msgid "mask must be an immediate"
msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/i386/i386.h:45 config/mips/mips.h:186
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "¥Þ¥¹¥¯¤Ï¨ÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "ÀÅŪÊÑ¿ô `%s' ¤Ï dllimport ¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr "`%s' °À­¤Ï·¿¤Ë¤ÏŬÍѤµ¤ì¤Þ¤»¤ó"
+
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
+#, fuzzy, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr "`%s' ¤¬ DLL ¤«¤é import¡¢DLL ¤Ë export ¤ÎξÊý¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr "Cygwin ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
+
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr "Mingw32 ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
+
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr "GUI ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºî¤ë"
+
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
+msgstr "Windows ¤Î define ¤òÀßÄꤷ¤Ê¤¤"
+
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr "Windows ¤Î define ¤òÀßÄꤹ¤ë"
+
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr "¥³¥ó¥½¡¼¥ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºî¤ë"
+
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr "DLL ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr "´Ø¿ô¤Ø¤Î dllimport ¤ò̵»ë¤¹¤ë"
+
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr "Mingw ¸ÇÍ­¤Î¥¹¥ì¥Ã¥É¥µ¥Ý¡¼¥È¤ò»ÈÍѤ¹¤ë"
+
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "-f%s ¤Ï¥¿¡¼¥²¥Ã¥È¤Ç̵»ë¤µ¤ì¤Þ¤¹ (Á´¤Æ¤Î¥³¡¼¥É¤Ï°ÌÃÖÈó°Í¸¤Ç¤¹)"
+
+#: config/i386/djgpp.h:206
#, fuzzy
-msgid "half-pic init called on systems that don't support it"
-msgstr "half-pic ½é´ü²½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿¡£"
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-mbnu210 ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿(ÇѤ줿¥ª¥×¥·¥ç¥ó¤Ç¤¹)"
#. Deprecated.
-#: config/i386/i386.h:297
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr "¸Æ¤Ó½Ð¤·µ¬Ìó¤òÆþ¤ìÂؤ¨¤ë"
-#: config/i386/i386.h:299 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "ÉáÄ̤θƤӽФ·µ¬Ìó¤ò»È¤¦"
-#: config/i386/i386.h:301
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr "double ¤ò dword ¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:303
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr "double ¤ò word ¶­³¦¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:305
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr ".bss ¤Ë¤¢¤ë¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ï½é´ü²½¤µ¤ì¤Ê¤¤"
-#: config/i386/i386.h:307
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr ".data ¤Ë¤¢¤ë¥í¡¼¥«¥ë¤Ê¤â¤Î¤Ï½é´ü²½¤µ¤ì¤Ê¤¤"
-#: config/i386/i386.h:309 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "ÉâÆ°¾®¿ôÅÀÈæ³Ó¤Ë IEEE µ¬³Ê¤ò»È¤¦"
-#: config/i386/i386.h:311
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "ÉâÆ°¾®¿ôÅÀÈæ³Ó¤Ë IEEE µ¬³Ê¤ò»È¤ï¤Ê¤¤"
-#: config/i386/i386.h:313
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr "FPU ¥ì¥¸¥¹¥¿Æâ¤Îµ¡Ç½¤ÎÃͤòÊÖ¤¹"
-#: config/i386/i386.h:315
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr "FPU ¥ì¥¸¥¹¥¿Æâ¤Îµ¡Ç½¤ÎÃͤòÊÖ¤µ¤Ê¤¤"
-#: config/i386/i386.h:317
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "FPU ÍѤΠsin, cos, sqrt ¤òÀ¸À®¤·¤Ê¤¤"
-#: config/i386/i386.h:319
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "FPU ÍѤΠsin, cos, sqrt ¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:321
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr "Ëöü¤Î´Ø¿ô¤Ç¤Ï¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤ò¾Êά¤¹¤ë"
-#: config/i386/i386.h:324
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr "¥¹¥¿¥Ã¥¯Ãµº÷¤òÍ­¸ú¤Ë¤¹¤ë"
#. undocumented
#. undocumented
-#: config/i386/i386.h:329
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr "ʸ»úÎóÁàºî¤Î½ñ¹þ¤ßÀè¤ò¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:331
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr "ʸ»úÎóÁàºî¤Î½ñ¹þ¤ßÀè¤ò¥¢¥é¥¤¥ó¥á¥ó¥È¤·¤Ê¤¤"
-#: config/i386/i386.h:333
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤¹¤ë"
-#: config/i386/i386.h:335
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤·¤Ê¤¤"
-#: config/i386/i386.h:337 config/i386/i386.h:342
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr "½ÐÎϤ¹¤ë°ú¿ô¤ò¥»¡¼¥Ö¤¹¤ë¤¿¤á push Ì¿Îá¤ò»È¤¦"
-#: config/i386/i386.h:339 config/i386/i386.h:344
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr "½ÐÎϤ¹¤ë°ú¿ô¤ò¥»¡¼¥Ö¤¹¤ë¤¿¤á¤Ë¤Ï push Ì¿Îá¤ò»È¤ï¤Ê¤¤"
-#: config/i386/i386.h:346
+#: config/i386/i386.h:354
#, fuzzy
msgid "Support MMX built-in functions"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: config/i386/i386.h:348
+#: config/i386/i386.h:356
#, fuzzy
msgid "Do not support MMX built-in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: config/i386/i386.h:351
+#: config/i386/i386.h:358
#, fuzzy
msgid "Support 3DNow! built-in functions"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:360
#, fuzzy
msgid "Do not support 3DNow! built-in functions"
msgstr "¤¤¤¯¤Ä¤«¤ÎÁȤ߹þ¤ß´Ø¿ô¤òǧ¼±¤µ¤»¤Ê¤¤"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:362
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:359
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:361
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:370
#, fuzzy
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) ¤Ï 16 ¤È¤¹¤ë¡£"
-#: config/i386/i386.h:368
+#: config/i386/i386.h:372
#, fuzzy
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) ¤Ï 12 ¤È¤¹¤ë¡£"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:374
#, fuzzy
msgid "Generate 64bit x86-64 code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:376
#, fuzzy
msgid "Generate 32bit i386 code"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/i386/i386.h:374
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:376
+#: config/i386/i386.h:380
#, fuzzy
msgid "Do not use red-zone in the x86-64 code"
msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
@@ -10329,20 +10881,20 @@ msgstr "H8/S ¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:422 config/rs6000/rs6000.h:443 config/sparc/sparc.h:685
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤ò¥¹¥±¥¸¥å¡¼¥ë¤¹¤ë"
-#: config/i386/i386.h:424
+#: config/i386/i386.h:411
#, fuzzy
msgid "Generate floating point mathematics using given instruction set"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/i386/i386.h:426
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i386/i386.h:428
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr "¥ì¥¸¥¹¥¿¤Î¿ô¤¬À°¿ô¤ò°ú¿ô¤òÅϤ¹¤¿¤á¤Ë»È¤ï¤ì¤ë"
@@ -10356,71 +10908,43 @@ msgstr "¥ì¥¸¥¹¥¿¤Î¿ô¤¬À°¿ô¤ò°ú¿ô¤òÅϤ¹¤¿¤á¤Ë»È¤ï¤ì¤ë"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:430 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "¥ë¡¼¥×¥³¡¼¥É¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:432 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "¥¸¥ã¥ó¥×Àè¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:434 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "´Ø¿ô¤Î³«»Ï°ÌÃÖ¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:437
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "¤Ç¤­¤ë¤À¤±¥¹¥¿¥Ã¥¯¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
-#: config/i386/i386.h:439
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "¥Ö¥é¥ó¥Á¤Î¥³¥¹¥È¤ò»Ø¼¨¤¹¤ë (1-5, Ǥ°Õ¤Î¸Ä¿ô)"
-#: config/i386/i386.h:441
+#: config/i386/i386.h:428
#, fuzzy
msgid "Use given x86-64 code model"
msgstr "Í¿¤¨¤é¤ì¤¿ Sparc ¥³¡¼¥É¥â¥Ç¥ë¤ò»ÈÍѤ¹¤ë"
-#: config/i386/i386.h:447
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
#, fuzzy
msgid "Use given assembler dialect"
msgstr "DEC ¥¢¥»¥ó¥Ö¥éʸˡ¤ò»ÈÍѤ¹¤ë"
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Ç mcount ¤òÍøÍѤ¹¤ë"
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr "Ⱦ PIC ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr "ELF ¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr "ROSE ¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr "¥·¥ó¥Ü¥ë¤ÎƬ¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤ò¤Ä¤±¤ë"
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr "¥ï¡¼¥É¶­³¦¤è¤êÂ礭¤á¤Ë¥¢¥é¥¤¥ó¤¹¤ë"
-
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ëÍÑ¤Ë mcount ¤òÍøÍѤ¹¤ë"
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Ë mcount_ptr ¤òÍøÍѤ¹¤ë"
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr ""
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr "ELF ½ÐÎϤòÀ¸À®¤¹¤ë"
@@ -10436,16 +10960,6 @@ msgstr "Cygwin ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
msgid "Use bare Windows interface"
msgstr "ÁǤΠWindows ¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò»ÈÍѤ¹¤ë"
-#: config/i386/winnt.c:94
-#, fuzzy, c-format
-msgid "`%s' attribute only applies to variables"
-msgstr "`%s' °À­¤Ï·¿¤Ë¤ÏŬÍѤµ¤ì¤Þ¤»¤ó"
-
-#: config/i386/winnt.c:262
-#, fuzzy, c-format
-msgid "`%s' declared as both exported to and imported from a DLL"
-msgstr "`%s' ¤¬ DLL ¤«¤é import¡¢DLL ¤Ë export ¤ÎξÊý¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
#: config/i386/xm-djgpp.h:71
@@ -10463,33 +10977,31 @@ msgstr "´Ä¶­ÊÑ¿ô DJGPP ¤¬¡¢¸«¤Ä¤«¤é¤Ê¤¤¥Õ¥¡¥¤¥ë '%s' ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr "´Ä¶­ÊÑ¿ô DJGPP ¤¬¡¢²õ¤ì¤¿¥Õ¥¡¥¤¥ë '%s' ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr "ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr "ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr "»ÄÇ°¡¢¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: #pragma align NAME=SIZE"
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
msgstr "¤ª¤«¤·¤Ê #pragma align - ̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr "»ÄÇ°¡¢¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: #pragma noalign NAME"
-#: config/i960/i960.c:1405 config/m68k/m68k.c:669 config/rs6000/rs6000.c:7674
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "¶¥¹ç¤¹¤ë architecture ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿ - C ¥·¥ê¡¼¥º»ÈÍÑ"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "¶¥¹ç¤¹¤ë architecture ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿ - K ¥·¥ê¡¼¥º»ÈÍÑ<"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 ¤È iC3.0 ¤È¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó - iC3.0 ¤ò»ÈÍѤ·¤Þ¤¹"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
@@ -10500,311 +11012,329 @@ msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
#. An empty string NAME is used to identify the default VALUE.
#. ??? Not all ten of these architecture variations actually exist, but I
#. am not sure which are real and which aren't.
-#: config/i960/i960.h:246
+#: config/i960/i960.h:240
msgid "Generate SA code"
msgstr "SA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:249
+#: config/i960/i960.h:243
msgid "Generate SB code"
msgstr "SB ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
-#: config/i960/i960.h:254
+#: config/i960/i960.h:248
msgid "Generate KA code"
msgstr "KA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:257
+#: config/i960/i960.h:251
msgid "Generate KB code"
msgstr "KB ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
-#: config/i960/i960.h:262
+#: config/i960/i960.h:256
msgid "Generate JA code"
msgstr "JA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:264
+#: config/i960/i960.h:258
msgid "Generate JD code"
msgstr "JD ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:267
+#: config/i960/i960.h:261
msgid "Generate JF code"
msgstr "JF ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:269
+#: config/i960/i960.h:263
msgid "generate RP code"
msgstr "RP ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:272
+#: config/i960/i960.h:266
msgid "Generate MC code"
msgstr "MC ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:275
+#: config/i960/i960.h:269
msgid "Generate CA code"
msgstr "CA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
-#: config/i960/i960.h:285
+#: config/i960/i960.h:279
msgid "Generate CF code"
msgstr "CF ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/i960/i960.h:291
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "¥½¥Õ¥ÈÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
+
+#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr "´Ø¿ô¹àÌܤÎÂå¤ï¤ê¤òÍøÍѤ¹¤ë"
-#: config/i960/i960.h:293
+#: config/i960/i960.h:287
msgid "Do not use alternate leaf function entries"
msgstr "´Ø¿ô¹àÌÜËöÈø¤ÎÂå¤ï¤ê¤ÏÍøÍѤ·¤Ê¤¤"
-#: config/i960/i960.h:295
+#: config/i960/i960.h:289
msgid "Perform tail call optimization"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤¦"
-#: config/i960/i960.h:297
+#: config/i960/i960.h:291
msgid "Do not perform tail call optimization"
msgstr "ËöÈø¸Æ¤Ó½Ð¤·ºÇŬ²½¤ò¹Ô¤ï¤Ê¤¤"
-#: config/i960/i960.h:299
+#: config/i960/i960.h:293
msgid "Use complex addressing modes"
msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤ò»ÈÍѤ¹¤ë"
-#: config/i960/i960.h:301
+#: config/i960/i960.h:295
msgid "Do not use complex addressing modes"
msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤òÍøÍѤ·¤Ê¤¤"
-#: config/i960/i960.h:303
+#: config/i960/i960.h:297
msgid "Align code to 8 byte boundary"
msgstr "¥³¡¼¥É¤ò 8 ¥Ð¥¤¥È¶­³¦¤Ë¥¢¥é¥¤¥ó¤¹¤ë"
-#: config/i960/i960.h:305
+#: config/i960/i960.h:299
msgid "Do not align code to 8 byte boundary"
msgstr "¥³¡¼¥É¤ò 8 bit ¥³¡¼¥É¤Ë¥¢¥é¥¤¥ó¤·¤Ê¤¤"
#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
-#: config/i960/i960.h:311 config/i960/i960.h:313
+#: config/i960/i960.h:305 config/i960/i960.h:307
msgid "Enable compatibility with iC960 v2.0"
msgstr "iC960 v2.0 ¤È¤Î¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/i960/i960.h:315
+#: config/i960/i960.h:309
msgid "Enable compatibility with iC960 v3.0"
msgstr "iC960 v3.0 ¤È¤Î¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/i960/i960.h:317 config/i960/i960.h:319
+#: config/i960/i960.h:311 config/i960/i960.h:313
msgid "Enable compatibility with ic960 assembler"
msgstr "ic960 ¥¢¥»¥ó¥Ö¥é¤È¤Î¸ß´¹À­¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/i960/i960.h:321
+#: config/i960/i960.h:315
msgid "Do not permit unaligned accesses"
msgstr "¥¢¥é¥¤¥ó¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Ê¤¤"
-#: config/i960/i960.h:323
+#: config/i960/i960.h:317
msgid "Permit unaligned accesses"
msgstr "¥¢¥é¥¤¥ó¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë"
-#: config/i960/i960.h:325
+#: config/i960/i960.h:319
msgid "Layout types like Intel's v1.3 gcc"
msgstr "Intel ¤Î v1.3 gcc ¤ÎÍͤʥ¿¥¤¥×¤ËÇÛÃÖ¤¹¤ë"
-#: config/i960/i960.h:327
+#: config/i960/i960.h:321
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr "Intel v1.3 gcc ¤ÎÍͤʥ¿¥¤¥×¤ÎÇÛÃÖ¤ò¹Ô¤Ê¤ï¤Ê¤¤"
-#: config/i960/i960.h:329 config/sparc/freebsd.h:80 config/sparc/linux.h:85
-#: config/sparc/linux64.h:138
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr "64 ¥Ó¥Ã¥È long double ¤ò»ÈÍѤ¹¤ë"
-#: config/i960/i960.h:331
+#: config/i960/i960.h:325
msgid "Enable linker relaxation"
msgstr "¥ê¥ó¥«¤Î´ËϤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/i960/i960.h:333
+#: config/i960/i960.h:327
msgid "Do not enable linker relaxation"
msgstr "¥ê¥ó¥«¤Î´ËϤòÍ­¸ú¤Ë¤·¤Ê¤¤"
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:348 config/i960/i960.h:358
-msgid "conflicting architectures defined - using C series"
-msgstr "¶¥¹ç¤¹¤ë architecture ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿ - C ¥·¥ê¡¼¥º»ÈÍÑ"
-
-#: config/i960/i960.h:353
-msgid "conflicting architectures defined - using K series"
-msgstr "¶¥¹ç¤¹¤ë architecture ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿ - K ¥·¥ê¡¼¥º»ÈÍÑ<"
-
-#: config/i960/i960.h:368
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr "iC2.0 ¤È iC3.0 ¤È¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó - iC3.0 ¤ò»ÈÍѤ·¤Þ¤¹"
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:379
+#: config/ia64/ia64-c.c:51
#, fuzzy
-msgid "the -mlong-double-64 option does not work yet"
-msgstr "-mlong-double-64 ¥ª¥×¥·¥ç¥ó¤Ï¤Þ¤ÀÆ°ºî¤·¤Þ¤»¤ó"
+msgid "malformed #pragma builtin"
+msgstr "¤ª¤«¤·¤Ê #pragma implementation"
-#: config/ia64/ia64.c:3566
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/ia64/ia64.c:3840
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "-mfixed-range ¤ÎÃÍ¤Ï REG1-REG2 ·Á¼°¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/ia64/ia64.c:3867
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s ¤¬¶õ¤ÎÈϰϤǤ¹"
-#: config/ia64/ia64.c:3932
-msgid "cannot optimize division for both latency and throughput"
+#: config/ia64/ia64.c:4350
+#, fuzzy
+msgid "cannot optimize floating point division for both latency and throughput"
msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó"
+#: config/ia64/ia64.c:4356
+#, fuzzy
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "¥ì¥¤¥Æ¥ó¥·¤È¥¹¥ë¡¼¥×¥Ã¥ÈξÊý¤Îʬ³äºÇŬ²½¤Ï¹Ô¤Ê¤¨¤Þ¤»¤ó"
+
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
+
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:112
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/ia64/ia64.h:114 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥³¡¼¥É¤òÀ¸À®"
-#: config/ia64/ia64.h:116
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr "GNU as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:118
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr "Intel as ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:120
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr "GNU ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:122
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr "Intel ld ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:124
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr "GP ¥ì¥¸¥¹¥¿ÉÔ»ÈÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:126
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë"
-#: config/ia64/ia64.h:128
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "³ÈÄ¥¥¢¥»¥ó¥Ö¥ê volatile ¤ÎÁ°¸å¤Ë stop ¥Ó¥Ã¥È¤òÁ÷½Ð¤¹¤ë"
-#: config/ia64/ia64.h:130
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr "Itanium (TM) ¥×¥í¥»¥Ã¥µ B step ÍÑ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
-#: config/ia64/ia64.h:132
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr "in/loc/out ¥ì¥¸¥¹¥¿Ì¾¤ò»ÈÍѤ¹¤ë"
-#: config/ia64/ia64.h:134
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss ¤Î»ÈÍѤò̵¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:136
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss ¤Î»ÈÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:138
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp ¤òÄê¿ô¤È¤¹¤ë¡Êâ¡¢´ÖÀܸƤӽФ·¤Ç¤Ï gp ¤ò save/restore ¤¹¤ë¡Ë"
-#: config/ia64/ia64.h:140
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr "¼«¸ÊºÆÇÛÃÖ²Äǽ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:142
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:184
+#, fuzzy
+msgid "Generate inline floating point division, optimize for latency"
msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:144
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:186
+#, fuzzy
+msgid "Generate inline floating point division, optimize for throughput"
msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
-#: config/ia64/ia64.h:146
+#: config/ia64/ia64.h:188
+#, fuzzy
+msgid "Generate inline integer division, optimize for latency"
+msgstr "¥ì¥¤¥Æ¥ó¥·¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
+
+#: config/ia64/ia64.h:190
+#, fuzzy
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "¥¹¥ë¡¼¥×¥Ã¥È¤òºÇŬ²½¤¹¤ë¥¤¥ó¥é¥¤¥ó¶èʬ¤òÀ¸À®¤¹¤ë"
+
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:148
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "GNU as ¤òÄ̤¸¤¿ Dwarf2 ¤Î¹Ô¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë"
-#: config/ia64/ia64.h:176
+#: config/ia64/ia64.h:223
#, fuzzy
msgid "Specify range of registers to make fixed"
msgstr "¸ÇÄꤹ¤ë¤¿¤á¤Î¥ì¥¸¥¹¥¿¤ÎÈϰϤò»ØÄꤹ¤ë"
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "-mmodel ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "-msdata ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, fuzzy, c-format
msgid "invalid argument of `%s' attribute"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr "const ¥ª¥Ö¥¸¥§¥¯¥È¤Ï .sdata/.sbss ¤ËÃÖ¤±¤Þ¤»¤ó"
-#: config/m32r/m32r.c:2242
-#, c-format
-msgid "invalid operand to %s code"
+#: config/m32r/m32r.c:2256
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2249
-#, c-format
-msgid "invalid operand to %p code"
+#: config/m32r/m32r.c:2263
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
msgstr "%p ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2305
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2357
-msgid "invalid operand to %T/%B code"
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
msgstr "%T/%B ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2380
-msgid "invalid operand to %N code"
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
msgstr "%N ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m32r/m32r.c:2425
+#: config/m32r/m32r.c:2438
#, fuzzy
msgid "pre-increment address is not a register"
msgstr "`%d' ¥ª¥Ú¥é¥ó¥É¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m32r/m32r.c:2432
+#: config/m32r/m32r.c:2445
#, fuzzy
msgid "pre-decrement address is not a register"
msgstr "thumb_load_double_from_address: ¥Ù¡¼¥¹¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m32r/m32r.c:2439
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2517 config/m32r/m32r.c:2533
-#: config/rs6000/rs6000.c:10281
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
#, fuzzy
msgid "bad address"
msgstr "ÉÔÀµ¤Ê¥Ø¥Ã¥À¥Ð¡¼¥¸¥ç¥ó"
-#: config/m32r/m32r.c:2538
+#: config/m32r/m32r.c:2551
#, fuzzy
msgid "lo_sum not of register"
msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Ê¤¤"
@@ -10834,51 +11364,60 @@ msgstr "¥³¡¼¥É¥µ¥¤¥º: small, medium Ëô¤Ï large"
msgid "Small data area: none, sdata, use"
msgstr "¥¹¥â¡¼¥ë¥Ç¡¼¥¿Îΰè: none, sdata, use"
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "-f%s ¤Ï 68HC11/68HC12 ÍѤȤ·¤Æ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿ (¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó)"
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "`%s' °À­¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3031 config/m68hc11/m68hc11.c:3405
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr ""
-#: config/m68hc11/m68hc11.c:3251 config/m68hc11/m68hc11.c:3335
-#: config/m68hc11/m68hc11.c:3608
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
#, fuzzy
msgid "invalid register in the move instruction"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:3285
+#: config/m68hc11/m68hc11.c:3613
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-#: config/m68hc11/m68hc11.c:3582
+#: config/m68hc11/m68hc11.c:3920
#, fuzzy
msgid "invalid register in the instruction"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:3615
+#: config/m68hc11/m68hc11.c:3953
#, fuzzy
msgid "operand 1 must be a hard register"
msgstr "`%d' ¥ª¥Ú¥é¥ó¥É¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m68hc11/m68hc11.c:3632
+#: config/m68hc11/m68hc11.c:3970
#, fuzzy
msgid "invalid rotate insn"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: config/m68hc11/m68hc11.c:4052
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4372 config/m68hc11/m68hc11.c:4677
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:4726
+#: config/m68hc11/m68hc11.c:5094
#, fuzzy
msgid "invalid Z register replacement for insn"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
@@ -10887,30 +11426,64 @@ msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:152
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr "16 ¥Ó¥Ã¥ÈÀ°¿ô¥â¡¼¥É¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/m68hc11/m68hc11.h:154
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr "32 ¥Ó¥Ã¥ÈÀ°¿ô¥â¡¼¥É¤Ç¥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/m68hc11/m68hc11.h:156
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr "¼«Æ° pre/post ¥Ç¥¯¥ê¥á¥ó¥È ¥¤¥ó¥¯¥ê¥á¥ó¥È¤òµöÍƤ¹¤ë"
-#: config/m68hc11/m68hc11.h:158
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr "¼«Æ° pre/post ¥Ç¥¯¥ê¥á¥ó¥È ¥¤¥ó¥¯¥ê¥á¥ó¥È¤òµöÍƤ·¤Ê¤¤"
-#: config/m68hc11/m68hc11.h:160 config/m68hc11/m68hc11.h:164
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+#, fuzzy
+msgid "Min/max instructions not allowed"
+msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: config/m68hc11/m68hc11.h:184
+#, fuzzy
+msgid "Use call and rtc for function calls and returns"
+msgstr "noreturn ´Ø¿ô¤¬ return ¤¹¤ë¤È¤­ abort ¤Î¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
+
+#: config/m68hc11/m68hc11.h:186
+#, fuzzy
+msgid "Use jsr and rts for function calls and returns"
+msgstr "´Ø¿ô³«»ÏÉôʬÍѤΥ¹¥¿¥Ö¤ò»ÈÍѤ¹¤ë"
+
+#: config/m68hc11/m68hc11.h:188
+#, fuzzy
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤òÍøÍѤ·¤Ê¤¤"
+
+#: config/m68hc11/m68hc11.h:190
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "'¾®¤µ¤Ê' ½¸¹çÂΤò¥ì¥¸¥¹¥¿¤Ç¤Ï¤Ê¤¯¥á¥â¥ê¤Ë³ÊǼ¤·¤ÆÊÖ¤¹"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr "68HC11 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/m68hc11/m68hc11.h:162 config/m68hc11/m68hc11.h:166
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr "68HC12 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+#, fuzzy
+msgid "Compile for a 68HCS12"
+msgstr "68HC12 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10920,29 +11493,33 @@ msgstr "68HC12 ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:180
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr "¥ì¥¸¥¹¥¿³ÎÊݽç¤ò»ØÄꤹ¤ë"
-#: config/m68hc11/m68hc11.h:182
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr "ÍøÍѲÄǽ¥½¥Õ¥È¥ì¥¸¥¹¥¿¤Î¿ô¤ò¼¨¤¹"
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d ¤¬ 1 ¤«¤é %d ¤Î´Ö¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d ¤¬ 1 ¤«¤é %d ¤Î´Ö¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d ¤¬ 1 ¤«¤é %d ¤Î´Ö¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤»¤ó"
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "º£¤Î¤È¤³¤í 68000 ¤ä 68010 ¤Ç¤Ï -fPIC ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -11090,113 +11667,85 @@ msgstr "¥¢¥é¥¤¥ó¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Ê¤¤"
msgid "Use unaligned memory references"
msgstr "¥é¡¼¥¸¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr "º£¤Î¤È¤³¤í 68000 ¤ä 68010 ¤Ç¤Ï -fPIC ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, fuzzy, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr "ÆâÉô gcc ¥â¥Ë¥¿: ¥·¥ç¡¼¥È¥Ö¥é¥ó¥Á(%x)"
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
#, fuzzy
msgid "internal gcc error: Can't express symbolic location"
msgstr "ÆâÉô gcc ¥¨¥é¡¼: °ÌÃÖ¤ò¥·¥ó¥Ü¥ëɽ¸½¤Ç¤­¤Þ¤»¤ó"
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr "°ú¿ô #%d ¤Ï¹½Â¤ÂΤǤ¹"
-#: config/m88k/m88k.c:2882
-msgid "%R not followed by %B/C/D/E"
+#: config/m88k/m88k.c:2816
+#, fuzzy, c-format
+msgid "%%R not followed by %%B/C/D/E"
msgstr "%R ¤Î¸å¤Ë %B/C/D/E ¤ÏÃÖ¤±¤Þ¤»¤ó"
-#: config/m88k/m88k.c:2950
-#, c-format
-msgid "invalid %x/X value"
+#: config/m88k/m88k.c:2884
+#, fuzzy, c-format
+msgid "invalid %%x/X value"
msgstr "̵¸ú¤Ê %x/X ÃͤǤ¹"
-#: config/m88k/m88k.c:2955
-msgid "invalid %H value"
-msgstr "̵¸ú¤Ê %H ÃͤǤ¹"
-
-#: config/m88k/m88k.c:2961
-msgid "invalid %h value"
-msgstr "̵¸ú¤Ê %h ÃͤǤ¹"
-
-#: config/m88k/m88k.c:2967
-msgid "invalid %Q value"
-msgstr "̵¸ú¤Ê %Q ÃͤǤ¹"
-
-#: config/m88k/m88k.c:2973
-msgid "invalid %q value"
-msgstr "̵¸ú¤Ê %q ÃͤǤ¹"
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "̵¸ú¤Ê %%Q ÃÍ"
-#: config/m88k/m88k.c:2979
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
#, c-format
-msgid "invalid %o value"
+msgid "invalid %%q value"
+msgstr "̵¸ú¤Ê %%q ÃͤǤ¹"
+
+#: config/m88k/m88k.c:2913
+#, fuzzy, c-format
+msgid "invalid %%o value"
msgstr "̵¸ú¤Ê %o ÃͤǤ¹"
-#: config/m88k/m88k.c:2986
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
-msgid "invalid %p value"
-msgstr "̵¸ú¤Ê %p ÃͤǤ¹"
+msgid "invalid %%p value"
+msgstr "̵¸ú¤Ê %%p ÃͤǤ¹"
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
-#, c-format
-msgid "invalid %s/S value"
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
msgstr "̵¸ú¤Ê %s/S ÃͤǤ¹"
-#: config/m88k/m88k.c:3015
-msgid "invalid %P operand"
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
-#: config/m88k/m88k.c:3046
-msgid "invalid %B value"
-msgstr "̵¸ú¤Ê %B ÃͤǤ¹"
-
-#: config/m88k/m88k.c:3063
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
-msgid "invalid %C value"
-msgstr "̵¸ú¤Ê %C ÃͤǤ¹"
+msgid "invalid %%B value"
+msgstr "̵¸ú¤Ê %%B ÃÍ"
-#: config/m88k/m88k.c:3076
-msgid "invalid %D value"
+#: config/m88k/m88k.c:3010
+#, fuzzy, c-format
+msgid "invalid %%D value"
msgstr "̵¸ú¤Ê %D ÃͤǤ¹"
-#: config/m88k/m88k.c:3084
-#, c-format
-msgid "invalid %E value"
-msgstr "̵¸ú¤Ê %E ÃͤǤ¹"
-
-#: config/m88k/m88k.c:3089
-#, c-format
-msgid "`%d' operand isn't a register"
+#: config/m88k/m88k.c:3023
+#, fuzzy, c-format
+msgid "`%%d' operand isn't a register"
msgstr "`%d' ¥ª¥Ú¥é¥ó¥É¤¬¥ì¥¸¥¹¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/m88k/m88k.c:3100
-msgid "invalid %r value"
-msgstr "̵¸ú¤Ê %r ÃͤǤ¹"
-
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr "¥ª¥Ú¥é¥ó¥É¤Ï r0 ¤Ç¤¹"
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr "¥ª¥Ú¥é¥ó¥É¤Ï const_double ¤Ç¤¹"
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "̵¸ú¤Ê¥³¡¼¥É¤Ç¤¹"
@@ -11220,7 +11769,7 @@ msgstr "-mshort-data-%s ¤¬Â礭¤¹¤®¤Þ¤¹¡£"
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mshort-data-%s ¤È PIC ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, fuzzy, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "`-mstack-increment=%s' ¤Ï̵¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹"
@@ -11247,7 +11796,8 @@ msgid "Do not use the divide instruction"
msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+#, fuzzy
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr "¥Ó¥Ã¥È±é»»¤Ç¤Î¨ÃÍ¥µ¥¤¥º¤òÄ´Ä䤷¤Ê¤¤"
#: config/mcore/mcore.h:142
@@ -11279,223 +11829,236 @@ msgstr "M*Core M340 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
msgid "Maximum amount for a single stack increment operation"
msgstr "ñ°ì¥¹¥¿¥Ã¥¯¥¤¥ó¥¯¥ê¥á¥ó¥ÈÁàºî¤ÎºÇÂçÃÍ"
-#: config/mips/mips.c:4824
+#: config/mips/mips.c:5128
#, c-format
-msgid "-mips%d not supported"
-msgstr "-mips%d ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
+msgid "bad value (%s) for -mabi= switch"
+msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
+
+#: config/mips/mips.c:5158
+#, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr ""
-#: config/mips/mips.c:4831
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr "-mips ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
-#: config/mips/mips.c:4852
+#: config/mips/mips.c:5180
#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "-mabi= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr ""
-#: config/mips/mips.c:4890
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "-mabi=%s ¤Ï -mips%d ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr ""
-#: config/mips/mips.c:4907
+#: config/mips/mips.c:5194
#, fuzzy
-msgid "this target does not support the -mabi switch"
-msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ï -mabi ¥¹¥¤¥Ã¥Á¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "64 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.c:5017
-#, fuzzy, c-format
-msgid "bad value (%s) for -mtune= switch"
-msgstr "-mcpu= ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ (%s)"
+#: config/mips/mips.c:5196
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "32 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.c:5033
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, fuzzy, c-format
-msgid "-march=%s does not support -mips%d"
-msgstr "-mabi=%s ¤Ï -mips%d ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-
-#: config/mips/mips.c:5040
-#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mips%d ¤Ï 64 bit fp ¥ì¥¸¥¹¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+msgid "unsupported combination: %s"
+msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹"
-#: config/mips/mips.c:5046
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mips%d ¤Ï 64 bit gp ¥ì¥¸¥¹¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
-#: config/mips/mips.c:5067
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î PIC ¥³¡¼¥É¤È¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:5083
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr "-membedded-pic ¤È -mabicalls ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:5086
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr "-G ¤È -membedded-pic ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:5137
+#: config/mips/mips.c:5369
#, fuzzy, c-format
msgid "invalid option `entry%s'"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `entry%s'"
-#: config/mips/mips.c:5140
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr "-mentry ¤Ï -mips-16 ¤ò»ØÄꤷ¤¿¤È¤­¤À¤±°ÕÌ£¤ò»ý¤Á¤Þ¤¹"
-#: config/mips/mips.c:5480
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%( ¤Ê¤·¤Î %%) ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:5494
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%[ ¤Ê¤·¤Î %%] ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:5507
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%< ¤Ê¤·¤Î %%> ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:5520
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "ÆâÉô¥¨¥é¡¼: ¥¢¥»¥ó¥Ö¥é¥Ñ¥¿¡¼¥ó¤Ç %%{ ¤Ê¤·¤Î %%} ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/mips/mips.c:5534
+#: config/mips/mips.c:5835
#, fuzzy, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: ÉÔÌÀ¤Ê¶çÆÉÅÀ '%c'"
-#: config/mips/mips.c:5543
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr "PRINT_OPERAND NULL ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:5676
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "̵¸ú¤ÊÍÑË¡¤Î of %%d, %%x, Ëô¤Ï %%X"
-#: config/mips/mips.c:5719
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, null ¥Ý¥¤¥ó¥¿"
-#: config/mips/mips.c:5943
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr "MIPS ECOFF ·Á¼°¤Ç¤Ï #line ¤ò»ý¤Ä´Ø¿ô¤Ç¤Î¥Õ¥¡¥¤¥ë̾Êѹ¹¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/mips/mips.c:6257
+#: config/mips/mips.c:6552
#, fuzzy
msgid "can't rewind temp file"
msgstr "%s ¤ò rewind ¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6556
#, fuzzy
msgid "can't write to output file"
msgstr "%s ¤Ø½ñ¤­¹þ¤á¤Þ¤»¤ó"
-#: config/mips/mips.c:6264
+#: config/mips/mips.c:6559
#, fuzzy
msgid "can't read from temp file"
msgstr "%s ¤«¤éÆɹþ¤á¤Þ¤»¤ó"
-#: config/mips/mips.c:6267
+#: config/mips/mips.c:6562
#, fuzzy
msgid "can't close temp file"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-#: config/mips/mips.c:6737
+#: config/mips/mips.c:7003
#, fuzzy, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "gp_offset (%ld) Ëô¤Ï end_offset (%ld) ¤¬¥¼¥í¤è¤ê¤â¾®¤µ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: config/mips/mips.c:6899
+#: config/mips/mips.c:7112
#, fuzzy, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "fp_offset (%ld) Ëô¤Ï end_offset (%ld) ¤¬¥¼¥í¤è¤ê¤â¾®¤µ¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£"
-#: config/mips/mips.c:8930
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "`%s' ¤Ø¤ÎÌ·½â¤·¤¿¸Æ¤Ó½Ð¤·¤òÊ᪤Ǥ­¤Þ¤»¤ó"
+#: config/mips/mips.c:10467
+#, fuzzy
+msgid "the cpu name must be lower case"
+msgstr "¥·¥ó¥Ü¥ë̾¤ò¾®Ê¸»ú¤È¤¹¤ë"
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "ÃÍ (%s) ¤Ï %s switch ¤Ë¤È¤Ã¤ÆÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr "crt0.o ¤ò¥Ç¥Õ¥©¥ë¥È¤È¤·¤Ê¤¤"
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr "64 ¥Ó¥Ã¥È int ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr "64 ¥Ó¥Ã¥È long ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr "32 ¥Ó¥Ã¥È long ·¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr "lui/addiu ¥¢¥É¥ì¥¹¥í¡¼¥É¤òºÇŬ²½¤¹¤ë"
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr "lui/addiu ¥¢¥É¥ì¥¹¥í¡¼¥É¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr "MIPS as ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr "GNU as ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ì¥¸¥¹¥¿Ì¾¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ì¥¸¥¹¥¿Ì¾¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr "GP ´ØÏ¢ sdata/sbss ¥»¥¯¥·¥ç¥ó¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr "¥³¥ó¥Ñ¥¤¥éÅý·×¤ò½ÐÎϤ¹¤ë"
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr "¥³¥ó¥Ñ¥¤¥éÅý·×¤ò½ÐÎϤ·¤Ê¤¤"
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°¤òºÇŬ²½¤¹¤ë"
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr "asm ¸å²áÄø¤Ç mips-tfile ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr "asm ¸å²áÄø¤Ç mips-tfile ¤òÍøÍѤ·¤Ê¤¤"
@@ -11505,286 +12068,255 @@ msgstr "asm ¸å²áÄø¤Ç mips-tfile ¤òÍøÍѤ·¤Ê¤¤"
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr "64 ¥Ó¥Ã¥È FP ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr "32 ¥Ó¥Ã¥È FP ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr "64 ¥Ó¥Ã¥È°ìÈ̥쥸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr "32 ¥Ó¥Ã¥È°ìÈ̥쥸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr "Irix PIC ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr "Irix PIC ¤òÍøÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr "OSF PIC ¤òÍøÍѤ¹¤ë"
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr "OSF PIC ¤òÍøÍѤ·¤Ê¤¤"
-
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr "´ÖÀܸƤӽФ·¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr "´ÖÀܸƤӽФ·¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr "Ëä¤á¹þ¤ß PIC ¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr "Ëä¤á¹þ¤ß PIC ¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr "RAM ¤ÎÂå¤ï¤ê¤Ë ROM ¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr "RAM ¤ÎÂå¤ï¤ê¤Ë ROM ¤òÍøÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤¯(Í× -membedded-data)"
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: config/mips/mips.h:444
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥Ð¥¤¥È½ç¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:446
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤Î¥Ð¥¤¥È½ç¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr "ñÀºÅÙ(32bit) FP ¤Î¤ß¤òÍøÍѤ¹¤ë"
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr "ñÀºÅÙ(32bit) FP °Ê³°¤âÍøÍѤ¹¤ë"
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr "¾è»»Ì¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr "¾è»»¡¦²Ã»»Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:347
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤¦"
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr "½é´ü¤Î 4300 ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤ï¤Ê¤¤"
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr "3900 ÍѤ˺ÇŬ²½¤¹¤ë"
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr "4650 ÍѤ˺ÇŬ²½¤¹¤ë"
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr "À°¿ô¤Î¥¼¥í½ü»»¤ò¥È¥é¥Ã¥×¤·¤Ê¤¤"
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr "À°¿ô½ü»»¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¥È¥é¥Ã¥×¤¹¤ë"
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr "À°¿ô½ü»»¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¥È¥é¥Ã¥×¤·¤Ê¤¤"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/mips/mips.h:607 config/mips/mips.h:609
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¤¿¤á¤Ë CPU ¤ò»ØÄꤹ¤ë"
-#: config/mips/mips.h:611
+#: config/mips/mips.h:746
#, fuzzy
msgid "Specify CPU for code generation purposes"
msgstr "Ì¿Î᥹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¤¿¤á¤Ë CPU ¤ò»ØÄꤹ¤ë"
-#: config/mips/mips.h:613
+#: config/mips/mips.h:748
+#, fuzzy
+msgid "Specify an ABI"
+msgstr "MIPS ISA ¤ò»ØÄꤹ¤ë"
+
+#: config/mips/mips.h:750
#, fuzzy
msgid "Specify a Standard MIPS ISA"
msgstr "MIPS ISA ¤ò»ØÄꤹ¤ë"
-#: config/mips/mips.h:615
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr "mips16 ¤Î entry/exit µ¿»÷¥ª¥Ú¥é¥ó¥É¤ò»ÈÍѤ¹¤ë"
-#: config/mips/mips.h:617
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr "MIPS16 Ì¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/mips/mips.h:621
+#: config/mips/mips.h:756
#, fuzzy
msgid "Don't call any cache flush functions"
msgstr "´Ø¿ô %s ¤Ë¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó\n"
-#: config/mips/mips.h:623
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2750
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr "mips16 ´Ø¿ô¥×¥í¥Õ¥¡¥¤¥ë"
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, fuzzy, c-format
msgid "-f%s not supported: ignored"
msgstr "`%s' ¤Ï %s ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/mmix/mmix.c:569
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr ""
-#: config/mmix/mmix.c:656
-msgid "stack frame too big"
-msgstr ""
-
-#: config/mmix/mmix.c:684
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1041
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1209
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mmix/mmix.c:1246
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr ""
-
-#: config/mmix/mmix.c:1252
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1575
-msgid "oops, not debugged; fixing up value:"
-msgstr ""
-
-#: config/mmix/mmix.c:2155 config/mmix/mmix.c:2289
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:2163 config/mmix/mmix.c:2187 config/mmix/mmix.c:2306
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:2234
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:2257
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:2267
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2299
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:2350
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:2409
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:2878 config/mmix/mmix.c:2947
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:3066
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:3073
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3077
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3148
+#: config/mmix/mmix.c:3088
#, fuzzy
msgid "MMIX Internal: This is not a constant:"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
@@ -11798,65 +12330,91 @@ msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
#. Provide default program start 0x100 unless -mno-set-program-start.
-#. Link to ELF if requested.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:136
+#: config/mmix/mmix.h:132
#, fuzzy
msgid "Set start-address of the program"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: config/mmix/mmix.h:138
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr ""
#. FIXME: Provide a way to *load* the epsilon register.
-#. Kill some of these; preferrably the -mint=* ones.
-#: config/mmix/mmix.h:174
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr ""
-#: config/mmix/mmix.h:177
+#: config/mmix/mmix.h:201
#, fuzzy
msgid "Use register stack for parameters and return value"
msgstr "°ú¿ô¤ò¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/mmix/mmix.h:179
+#: config/mmix/mmix.h:203
#, fuzzy
msgid "Use call-clobbered registers for parameters and return value"
msgstr "¸Æ¤Ó½Ð¤·¤ÇÇ˲õ¤µ¤ì¤ë¥ì¥¸¥¹¥¿¤¬¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿ÊÑ¿ô¤È¤·¤Æ»È¤ï¤ì¤Þ¤·¤¿"
-#: config/mmix/mmix.h:181
+#: config/mmix/mmix.h:205
#, fuzzy
msgid "Use epsilon-respecting floating point compare instructions"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/mmix/mmix.h:184
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr ""
-#: config/mmix/mmix.h:187
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr ""
-#: config/mmix/mmix.h:191
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr ""
-#: config/mmix/mmix.h:193
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr ""
-#: config/mmix/mmix.h:195
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr ""
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr ""
+
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr ""
+
+#: config/mmix/mmix.h:225
+#, fuzzy
+msgid "Use addresses that allocate global registers"
+msgstr "¥«¡¼¥Í¥ë¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤òÍøÍÑ"
+
+#: config/mmix/mmix.h:227
+#, fuzzy
+msgid "Do not use addresses that allocate global registers"
+msgstr "BK ¥ì¥¸¥¹¥¿¤ò³ÎÊݤ·¤Ê¤¤"
+
+#: config/mmix/mmix.h:229
+#, fuzzy
+msgid "Generate a single exit point for each function"
+msgstr "noreturn ´Ø¿ô¤¬ return ¤¹¤ë¤È¤­ abort ¤Î¸Æ¤Ó½Ð¤·¤òÀ¸À®¤¹¤ë"
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "multm Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢¾è»»¥Ð¥°¤ËÂн褹¤ë"
@@ -11874,90 +12432,90 @@ msgstr "AM33 ¥×¥í¥»¥Ã¥µ¤ò¥¿¡¼¥²¥Ã¥È¤È¤¹¤ë"
msgid "Enable linker relaxations"
msgstr "¥ê¥ó¥«¤Î´ËϤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:52
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr "Ê̤θƤӽФ·µ¬Ìó¤ò»ÈÍѤ¹¤ë"
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr "¤¤¤¯¤Ä¤«¤Î°ú¿ô¤Ï¥ì¥¸¥¹¥¿ÅϤ·¤Ë¤¹¤ë"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr "Á´¤Æ¤Î°ú¿ô¤ò¥¹¥¿¥Ã¥¯ÅϤ·¤Ë¤¹¤ë"
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr "32532 cpu ÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr "32332 cpu ÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr "32032 ÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr "sb ¥ì¥¸¥¹¥¿¤ò¥¼¥í¤È¤¹¤ë¡£ÀäÂÐ¥¢¥É¥ì¥¹¤ò»ÈÍѤ¹¤ë"
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr "sb ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/ns32k/ns32k.h:116
-#, fuzzy
-msgid "Do not use bit-field instructions"
-msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-
-#: config/ns32k/ns32k.h:117
+#: config/ns32k/ns32k.h:155
#, fuzzy
msgid "Use bit-field instructions"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+#, fuzzy
+msgid "Do not use bit-field instructions"
+msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr "¹â°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr "Äã°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr "32381 ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr "¾è»»-²Ã»»ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò¤ò»ÈÍѤ¹¤ë"
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr "¾è»»-²Ã»»ÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr "\"¥¹¥â¡¼¥ë¥ì¥¸¥¹¥¿¥¯¥é¥¹\" ¤Î¥Ä¥®¥Ï¥®(kludge)¤ò¹Ô¤Ê¤¦"
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr "\"¥¹¥â¡¼¥ë¥ì¥¸¥¹¥¿¥¯¥é¥¹\" ¤Î¥Ä¥®¥Ï¥®(kludge)¤ò¹Ô¤Ê¤ï¤Ê¤¤"
-#: config/pa/pa.c:179
+#: config/pa/pa.c:261
#, fuzzy, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
"ÉÔÌÀ¤Ê -mschedule= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 700, 7100, 7100LC, 7200, µÚ¤Ó 8000 ¤Ç¤¹\n"
-#: config/pa/pa.c:204
+#: config/pa/pa.c:286
#, fuzzy, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -11966,67 +12524,213 @@ msgstr ""
"ÉÔÌÀ¤Ê -march= ¥ª¥×¥·¥ç¥ó (%s).\n"
"Àµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ï 1.0, 1.1, µÚ¤Ó 2.0\n"
-#: config/pa/pa.c:209
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï²Äȼ¹Իþ¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó\n"
-#: config/pa/pa.c:214
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï¹â®´ÖÀܸƤӽФ·¤ÈÁêÍƤì¤Þ¤»¤ó\n"
-#: config/pa/pa.c:219
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g ¤Ï¤³¤Î¥×¥í¥»¥Ã¥µ¤Ç¤Ï GAS ¤ò»ÈÍѤ¹¤ë»þ¤À¤±¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹"
-#: config/pa/pa.c:220
+#: config/pa/pa.c:310
#, fuzzy
msgid "-g option disabled"
msgstr "-g ¥ª¥×¥·¥ç¥ó¤ò̵¸ú²½¤·¤Þ¤·¤¿¡£"
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "½êÍ¿¤Î CPU ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+#, fuzzy
+msgid "Generate cpp defines for workstation IO"
+msgstr "11/40 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+#, fuzzy
+msgid "Generate PA1.1 code"
+msgstr "CA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+#, fuzzy
+msgid "Generate PA1.0 code"
+msgstr "CA ¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+#, fuzzy
+msgid "Disable FP regs"
+msgstr "¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë"
+
+#: config/pa/pa.h:244
+#, fuzzy
+msgid "Do not disable FP regs"
+msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Ê¤¤"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+#, fuzzy
+msgid "Do not disable space regs"
+msgstr "ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿¤òÍøÍѤ·¤Ê¤¤"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "¥Ç¥Ð¥Ã¥°¤ò̵¸ú¤Ë¤¹¤ë"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤òÍøÍѤ·¤Ê¤¤"
+
+#: config/pa/pa.h:258
+#, fuzzy
+msgid "Use portable calling conventions"
+msgstr "ÉáÄ̤θƤӽФ·µ¬Ìó¤ò»È¤¦"
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "ÉáÄ̤θƤӽФ·µ¬Ìó¤ò»È¤¦"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+#, fuzzy
+msgid "Do not emit long load/store sequences"
+msgstr "Ê£¿ôÌ¿Îá¤Î¥í¡¼¥É/¥¹¥È¥¢¤òÀ¸À®¤·¤Ê¤¤"
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "´ÖÀܸƤӽФ·¤ò»ÈÍѤ·¤Ê¤¤"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr ".size µ¿»÷Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "¹â°Ì¥¢¥É¥ì¥¹¥á¥â¥êÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/pa/pa.h:280
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr ""
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Enable linker optimizations"
+msgstr "SSA ºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr "ÉâÆ°¾®¿ôÅÀ¤Î·ë²Ì¤ò ac0 ¤ÇÊÖ¤¹"
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr "ÉâÆ°¾®¿ôÅÀ¤Î·ë²Ì¤ò¥á¥â¥ê¤ÇÊÖ¤¹"
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr "11/40 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr "11/45 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr "11/10 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr "32 ¥Ó¥Ã¥ÈÀ°¿ô¤ò»ÈÍѤ¹¤ë"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr "16 ¥Ó¥Ã¥ÈÀ°¿ô¤ò»ÈÍѤ¹¤ë"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr "32 ¥Ó¥Ã¥ÈÉâÆ°¾®¿ô¤ò»ÈÍѤ¹¤ë"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr "64 ¥Ó¥Ã¥ÈÉâÆ°¾®¿ô¤ò»ÈÍѤ¹¤ë"
@@ -12034,79 +12738,50 @@ msgstr "64 ¥Ó¥Ã¥ÈÉâÆ°¾®¿ô¤ò»ÈÍѤ¹¤ë"
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr "¥¿¡¼¥²¥Ã¥È¤Ï split Ì¿Îá¤È¥Ç¡¼¥¿¥á¥â¥ê¤ò»ý¤Ä"
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr "¥¿¡¼¥²¥Ã¥È¤Ï split Ì¿Îá¤È¥Ç¡¼¥¿¥á¥â¥ê¤ò»ý¤¿¤Ê¤¤"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr "UNIX ¥¢¥»¥ó¥Ö¥éʸˡ¤ò»ÈÍѤ¹¤ë"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr "DEC ¥¢¥»¥ó¥Ö¥éʸˡ¤ò»ÈÍѤ¹¤ë"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë"
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë"
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr "¥á¥ó¥Æ¥Ê¥Æ¥¹¥È¥³¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë"
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr "Transmeta picoJava ³ÈÄ¥¤òÍ­¸ú¤Ë¤¹¤ë"
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr "Transmeta picoJava ³ÈÄ¥¤ò̵¸ú¤Ë¤¹¤ë"
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr "ºÆÊÔÀ®¹©Äø¤ò̵¸ú¤Ë¤¹¤ë"
-
-#: config/romp/romp.c:682
-#, c-format
-msgid "invalid %%B value"
-msgstr "̵¸ú¤Ê %%B ÃÍ"
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:5782
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr "̵¸ú¤Ê %%S ÃÍ"
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr "̵¸ú¤Ê %%b ÃÍ"
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr "̵¸ú¤Ê %%z ÃÍ"
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr "̵¸ú¤Ê %%Z ÃÍ"
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815
-#: config/rs6000/rs6000.c:5561
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr "̵¸ú¤Ê %%k ÃÍ"
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr "̵¸ú¤Ê %%j ÃÍ"
@@ -12124,146 +12799,217 @@ msgstr "̵¸ú¤Ê %%j ÃÍ"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr "-mfp-arg-in-fp-regs ¤ò»È¤¦¤È²ÄÊѸİú¿ô¤ò»ý¤Æ¤Þ¤»¤ó"
-#: config/rs6000/aix.h:134 config/rs6000/beos.h:32
-msgid "Always pass floating-point arguments in memory"
-msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤¹¤ë"
-
-#: config/rs6000/aix.h:136 config/rs6000/beos.h:34
-msgid "Don't always pass floating-point arguments in memory"
-msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤·¤Ê¤¤"
-
-#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
-msgid "Support message passing with the Parallel Environment"
-msgstr "ÊÂÎó´Ä¶­¤Ç¤Î¥á¥Ã¥»¡¼¥¸¥Ñ¥Ã¥·¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
-msgid "Compile for 64-bit pointers"
-msgstr "64 ¥Ó¥Ã¥È¥Ý¥¤¥ó¥¿ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+#, fuzzy
+msgid "ignoring malformed #pragma longcall"
+msgstr "#pragma %s ¤ò̵»ë¤·¤Þ¤¹"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
-msgid "Compile for 32-bit pointers"
-msgstr "32 ¥Ó¥Ã¥È¥Ý¥¤¥ó¥¿ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "Code °À­¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/rs6000-c.c:60
#, fuzzy
-msgid "-maix64 and POWER architecture are incompatible"
-msgstr "-maix64 ¤È POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¤Ç¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
+msgid "missing number"
+msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/rs6000-c.c:62
#, fuzzy
-msgid "-maix64 requires PowerPC64 architecture remain enabled"
-msgstr "PowerPC64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ê¤¤¤È -maix64 ¤òÍ­¸ú¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
+msgid "missing close paren"
+msgstr "¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/rs6000-c.c:68
#, fuzzy
-msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
-msgstr "-maix64 Í×µá: 32 bit ¥¢¥É¥ì¥·¥ó¥°²¼¤Î 64 bit ·×»»¤Ï¤Þ¤ÀÍøÍѤǤ­¤Þ¤»¤ó"
+msgid "junk at end of #pragma longcall"
+msgstr "#pragma map ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/rs6000/rs6000.c:471
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:478
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥·¥¹¥Æ¥à¾å¤Ç¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-#: config/rs6000/rs6000.c:484
-#, fuzzy, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr "AIX ÍÑ¤Ë -f%s ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡ÊÁ´¤Æ¤Î¥³¡¼¥É¤Ï°ÌÃÖÈó°Í¸¤Ç¤¹¡Ë"
-
-#: config/rs6000/rs6000.c:493
-msgid "-ffunction-sections disabled on AIX when debugging"
-msgstr "AIX ¤Ç¤Ï¥Ç¥Ð¥Ã¥°»þ¤Î -ffunction-sections ¤Ï̵¸ú¤È¤µ¤ì¤Þ¤¹"
-
-#: config/rs6000/rs6000.c:499
-msgid "-fdata-sections not supported on AIX"
-msgstr "AIX ¤Ç¤Ï -fdata-sections ¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
-
-#: config/rs6000/rs6000.c:514
+#: config/rs6000/rs6000.c:623
#, fuzzy, c-format
msgid "unknown -mdebug-%s switch"
msgstr "ÉÔÌÀ¤Ê -mdebug-%s ¥¹¥¤¥Ã¥Á¤Ç¤¹"
-#: config/rs6000/rs6000.c:524
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:589
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr ""
+
+#: config/rs6000/rs6000.c:772
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "ÉÔÌÀ¤Ê¥Þ¥·¥ó¥â¡¼¥É `%s'"
-#: config/rs6000/rs6000.c:5488
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4356
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: config/rs6000/rs6000.c:4410
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
+
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:4666
+#, fuzzy, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "`__builtin_eh_return_regno' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "`__builtin_args_info' ¤Î°ú¿ô¤¬Èϰϳ°¤Ç¤¹"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr "̵¸ú¤Ê %%f ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5497
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr "̵¸ú¤Ê %%F ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5506
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr "̵¸ú¤Ê %%G ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5541
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr "̵¸ú¤Ê %%j ¥³¡¼¥É¤Ç¤¹"
-#: config/rs6000/rs6000.c:5551
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr "̵¸ú¤Ê %%J ¥³¡¼¥É¤Ç¤¹"
-#: config/rs6000/rs6000.c:5581
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr "̵¸ú¤Ê %%K ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5708
-#, c-format
-msgid "invalid %%p value"
-msgstr "̵¸ú¤Ê %%p ÃͤǤ¹"
-
-#: config/rs6000/rs6000.c:5745
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "invalid %%q value"
-msgstr "̵¸ú¤Ê %%q ÃͤǤ¹"
-
-#: config/rs6000/rs6000.c:5808
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr "%%S ¤ÏÁ´¤Æ¤¬ 1 ¤Î¥Þ¥¹¥¯¤ò·×»»¤·¤Þ¤·¤¿"
-
-#: config/rs6000/rs6000.c:5835
-#, c-format
-msgid "%%S computed all 0's mask"
-msgstr "%%S ¤ÏÁ´¤Æ¤¬ 0 ¤Î¥Þ¥¹¥¯¤ò·×»»¤·¤Þ¤·¤¿"
+msgid "invalid %%O value"
+msgstr "̵¸ú¤Ê %%O ÃÍ"
-#: config/rs6000/rs6000.c:5845
+#: config/rs6000/rs6000.c:7793
#, c-format
msgid "invalid %%T value"
msgstr "̵¸ú¤Ê %%T ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5855
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr "̵¸ú¤Ê %%u ÃͤǤ¹"
-#: config/rs6000/rs6000.c:5864
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr "̵¸ú¤Ê %%v ÃͤǤ¹"
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
+msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤¹¤ë"
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
+msgstr "ÉâÆ°¾®¿ôÅÀ°ú¿ô¤Ï¾ï¤Ë¥á¥â¥êÅϤ·¤È¤·¤Ê¤¤"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr "ÊÂÎó´Ä¶­¤Ç¤Î¥á¥Ã¥»¡¼¥¸¥Ñ¥Ã¥·¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr "64 ¥Ó¥Ã¥È¥Ý¥¤¥ó¥¿ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr "32 ¥Ó¥Ã¥È¥Ý¥¤¥ó¥¿ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+#, fuzzy
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-maix64 ¤È POWER ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤È¤Ç¤Ï¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+#, fuzzy
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "PowerPC64 ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ê¤¤¤È -maix64 ¤òÍ­¸ú¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+#, fuzzy
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "-maix64 Í×µá: 32 bit ¥¢¥É¥ì¥·¥ó¥°²¼¤Î 64 bit ·×»»¤Ï¤Þ¤ÀÍøÍѤǤ­¤Þ¤»¤ó"
+
#. Run-time compilation parameters selecting different hardware subsets.
#.
#. Macro to define tables used to set the flags.
@@ -12271,165 +13017,166 @@ msgstr "̵¸ú¤Ê %%v ÃͤǤ¹"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:275
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr "POWER Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:278
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr "POWER2 Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr "POWER2 Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:283
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr "POWER Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr "PowerPC Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:288
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr "PowerPC Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr "PowerPC °ìÈÌÍÑÅÓ¥°¥ë¡¼¥×¥ª¥×¥·¥ç¥óÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr "PowerPC °ìÈÌÍÑÅÓ¥°¥ë¡¼¥×¥ª¥×¥·¥ç¥óÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr "PowerPC ¥°¥é¥Õ¥£¥¯¥¹¥°¥ë¡¼¥×¥ª¥×¥·¥ç¥óÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr "PowerPC ¥°¥é¥Õ¥£¥¯¥¹¥°¥ë¡¼¥×¥ª¥×¥·¥ç¥óÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr "PowerPC-64 Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr "PowerPC-64 Ì¿Î᥻¥Ã¥È¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:267
#, fuzzy
msgid "Use AltiVec instructions"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:269
#, fuzzy
msgid "Don't use AltiVec instructions"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥ÉÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr "PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤο·¤·¤¤¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr "PowerPC ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤθŤ¤¥Ë¡¼¥â¥Ë¥Ã¥¯¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:311
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr "Á´¤Æ¤òÄ̾ï TOC Æâ¤ËÇÛÃÖ¤¹¤ë"
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr "ÉâÆ°¾®¿ôÅÀÄê¿ô¤ò TOC Æâ¤ËÇÛÃÖ¤¹¤ë"
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr "ÉâÆ°¾®¿ôÅÀÄê¿ô¤ò TOC Æâ¤ËÇÛÃÖ¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr "¥·¥ó¥Ü¥ë+¥ª¥Õ¥»¥Ã¥ÈÄê¿ô¤ò TOC Æâ¤ËÇÛÃÖ¤¹¤ë"
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr "¥·¥ó¥Ü¥ë+¥ª¥Õ¥»¥Ã¥ÈÄê¿ô¤ò TOC Æâ¤ËÇÛÃÖ¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:325
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr "ÊÑ¿ô¥¢¥É¥ì¥¹¤òÄ̾ï TOC Æâ¤ËÇÛÃÖ¤¹¤ë"
-#: config/rs6000/rs6000.h:331
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr "Ê£¿ôÌ¿Îá¤Î¥í¡¼¥É/¥¹¥È¥¢¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr "Ê£¿ôÌ¿Îá¤Î¥í¡¼¥É/¥¹¥È¥¢¤òÀ¸À®¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:337
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°ÍѤΠstring Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr "¥Ö¥í¥Ã¥¯°ÜÆ°ÍѤΠstring Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:343
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr "update Ì¿Îá¤È°ì½ï¤Ë¥í¡¼¥É/¥¹¥È¥¢Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr "update Ì¿Îá¤È°ì½ï¤Ë¥í¡¼¥É/¥¹¥È¥¢Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: config/rs6000/rs6000.h:353
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr "¥×¥í¥·¡¼¥¸¥ã³«»Ï¤È½ªÎ»¤Î¥¹¥±¥¸¥å¡¼¥ë¤ò¹Ô¤Ê¤ï¤Ê¤¤"
-#: config/rs6000/rs6000.h:359
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/rs6000/rs6000.h:441 config/sparc/sparc.h:683
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr "Í¿¤¨¤é¤ì¤¿ CPU ÍѤε¡Ç½¤È¥¹¥±¥¸¥å¡¼¥ë¥³¡¼¥É¤òÍøÍѤ¹¤ë"
-#: config/rs6000/rs6000.h:444
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤòÍ­¸ú¤Ë¤¹¤ë"
-#: config/rs6000/rs6000.h:445
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr ""
-#: config/rs6000/rs6000.h:447
+#: config/rs6000/rs6000.h:399
#, fuzzy
msgid "Specify size of long double (64 or 128 bits)"
msgstr "sizeof(long double) ¤Ï 12 ¤È¤¹¤ë¡£"
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+#, fuzzy
+msgid "Avoid all range limits on call instructions"
+msgstr "ÊÂÎóÌ¿Îá¤ò̵¸ú¤Ë¤¹¤ë"
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12442,115 +13189,119 @@ msgstr "sizeof(long double) ¤Ï 12 ¤È¤¹¤ë¡£"
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1791
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
#, fuzzy
msgid "Select ABI calling convention"
msgstr "ABI ¸Æ¤Ó½Ð¤·µ¬Ìó¤òÁªÂò¤¹¤ë"
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
#, fuzzy
msgid "Select method for sdata handling"
msgstr "sdata ¼è¤ê°·¤¤¤Î¤¿¤á¤Î¥á¥½¥Ã¥É¤òÁªÂò¤¹¤ë"
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
#, fuzzy
msgid "Align to the base type of the bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥Ù¡¼¥¹¥¿¥¤¥×¤Ë¥¢¥é¥¤¥ó¤¹¤ë"
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
#, fuzzy
msgid "Don't align to the base type of the bit-field"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥Ù¡¼¥¹¥¿¥¤¥×¤Ë¥¢¥é¥¤¥ó¤·¤Ê¤¤"
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr "¥¢¥é¥¤¥ó¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤¬¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¥Ï¥ó¥É¥ë¤µ¤ì¤ë¤È¤Ï¤ß¤Ê¤µ¤Ê¤¤"
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr "¥¢¥é¥¤¥ó¤µ¤ì¤Ê¤¤¥¢¥¯¥»¥¹¤¬¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¥Ï¥ó¥É¥ë¤µ¤ì¤ë¤È¤ß¤Ê¤¹"
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
#, fuzzy
msgid "Produce code relocatable at runtime"
msgstr "¼Â¹Ô»þ¤ËºÆÇÛÃÖ²Äǽ¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
#, fuzzy
msgid "Don't produce code relocatable at runtime"
msgstr "¼Â¹Ô»þ¤ËºÆÇÛÃÖ²Äǽ¤Ê¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
#, fuzzy
msgid "Produce little endian code"
msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
#, fuzzy
msgid "Produce big endian code"
msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128
-#: config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130
-#: config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132
-#: config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143
-#: config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr "ÀâÌÀ¤Ï¤Þ¤À¤¢¤ê¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
#, fuzzy
msgid "Use EABI"
msgstr "EABI ¤òÍøÍѤ¹¤ë¡£"
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
#, fuzzy
msgid "Don't use EABI"
msgstr "EABI ¤òÍøÍѤ·¤Ê¤¤¡£"
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr ""
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
#, fuzzy
msgid "Use alternate register names"
msgstr "ÂåÂإ쥸¥¹¥¿Ì¾¤ò»ÈÍѤ¹¤ë"
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
#, fuzzy
msgid "Don't use alternate register names"
msgstr "ÂåÂإ쥸¥¹¥¿Ì¾¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
#, fuzzy
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr "libsim.a, libc.a µÚ¤Ó sim-crt0.o ¤È¥ê¥ó¥¯¤¹¤ë¡£"
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
#, fuzzy
msgid "Link with libads.a, libc.a and crt0.o"
msgstr "libads.a, libc.a µÚ¤Ó crt0.o ¤È¥ê¥ó¥¯¤¹¤ë¡£"
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
#, fuzzy
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr "libyk.a, libc.a µÚ¤Ó crt0.o ¤È¥ê¥ó¥¯¤¹¤ë¡£"
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
#, fuzzy
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr "libmvme.a, libc.a µÚ¤Ó crt0.o ¤È¥ê¥ó¥¯¤¹¤ë¡£"
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr "PPC_EMB ¥Ó¥Ã¥È¤ò ELF ¥Õ¥é¥°¥Ø¥Ã¥ÀÆâ¤Ë¥»¥Ã¥È¤¹¤ë"
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12559,3746 +13310,1376 @@ msgstr "PPC_EMB ¥Ó¥Ã¥È¤ò ELF ¥Õ¥é¥°¥Ø¥Ã¥ÀÆâ¤Ë¥»¥Ã¥È¤¹¤ë"
#.
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control.
-#: config/rs6000/sysv4.h:212
+#: config/rs6000/sysv4.h:214
#, fuzzy, c-format
msgid "bad value for -mcall-%s"
msgstr "-mcall-%s ¥¹¥¤¥Ã¥Á¤Ë¤È¤Ã¤Æ¤ÎÉÔÀµ¤ÊÃÍ"
-#: config/rs6000/sysv4.h:228
+#: config/rs6000/sysv4.h:230
#, fuzzy, c-format
msgid "bad value for -msdata=%s"
msgstr "-msdata=%s ¥¹¥¤¥Ã¥Á¤ËÂФ¹¤ëÉÔÀµ¤ÊÃÍ"
-#: config/rs6000/sysv4.h:245
+#: config/rs6000/sysv4.h:247
#, fuzzy, c-format
msgid "-mrelocatable and -msdata=%s are incompatible"
msgstr "-mrelocatable ¤È -msdata=%s ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:253
+#: config/rs6000/sysv4.h:255
#, fuzzy, c-format
msgid "-f%s and -msdata=%s are incompatible"
msgstr "-f%s ¤È -msdata=%s ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:261
+#: config/rs6000/sysv4.h:264
#, fuzzy, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr "-msdata=%s ¤È -mcall-%s ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:268
+#: config/rs6000/sysv4.h:273
#, fuzzy
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr "-mrelocatable ¤È -mno-minimal-toc ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:274
+#: config/rs6000/sysv4.h:279
#, fuzzy, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr "-mrelocatable ¤È -mcall-%s ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:281
+#: config/rs6000/sysv4.h:286
#, fuzzy, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr "-fPIC ¤È -mcall-%s ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/rs6000/sysv4.h:288
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc ¤Ï¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: config/s390/s390.c:1757
+#: config/s390/s390.c:3063
#, fuzzy
msgid "invalid UNSPEC as operand (1)"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê UNSPEC"
-#: config/s390/s390.c:1787
+#: config/s390/s390.c:3123
#, fuzzy
msgid "invalid UNSPEC as operand (2)"
msgstr "¥ª¥Ú¥é¥ó¥É¤È¤·¤Æ̵¸ú¤Ê UNSPEC"
-#: config/s390/s390.c:1793
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr ""
-#: config/s390/s390.c:1809
+#: config/s390/s390.c:3147
#, fuzzy
msgid "Cannot decompose address."
msgstr "Ê£»¨¤Ê¥¢¥É¥ì¥·¥ó¥°¥â¡¼¥É¤òÍøÍѤ·¤Ê¤¤"
-#: config/s390/s390.c:1957
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:2502
-#, fuzzy
-msgid "no code label found"
-msgstr "¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: config/s390/s390.c:2648
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.h:53
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr ""
-#: config/s390/s390.h:54
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr ""
-#: config/s390/s390.h:55
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr ""
-#: config/s390/s390.h:56
+#: config/s390/s390.h:73
#, fuzzy
msgid "Don't use bras"
msgstr "EABI ¤òÍøÍѤ·¤Ê¤¤¡£"
-#: config/s390/s390.h:57
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr ""
-#: config/s390/s390.h:58
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr ""
-#: config/s390/s390.h:59
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr ""
-#: config/s390/s390.h:60
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr ""
-#: config/s390/s390.h:61
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr ""
-#: config/s390/s390.h:62
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr ""
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs ¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:4730 config/sh/sh.c:4769
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, fuzzy, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr "`%s' °À­¤Ï´Ø¿ô¤ËÂФ·¤Æ¤Î¤ßŬÍѤµ¤ì¤Þ¤¹"
#. The argument must be a constant string.
-#: config/sh/sh.c:4737
+#: config/sh/sh.c:5720
#, fuzzy, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "asm ¥Æ¥ó¥×¥ì¡¼¥È¤¬Ê¸»úÎóÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
#. The argument must be a constant integer.
-#: config/sh/sh.c:4776
+#: config/sh/sh.c:5759
#, fuzzy, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:86
-#: config/sparc/linux64.h:139
-msgid "Use 128 bit long doubles"
-msgstr "128 ¥Ó¥Ã¥È¤Î long double ¤ò»ÈÍѤ¹¤ë"
-
-#: config/sparc/sp64-elf.h:82 config/sparc/splet.h:29
-msgid "Generate code for big endian"
-msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/sparc/sp64-elf.h:83 config/sparc/splet.h:30
-msgid "Generate code for little endian"
-msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
-msgid "Use little-endian byte order for data"
-msgstr "¥Ç¡¼¥¿¤Î¥Ð¥¤¥È½ç¤Ë¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤ò»ÈÍѤ¹¤ë"
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "¥¹¥¿¥Ã¥¯À©¸Â¤Ï¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/sparc/sparc.c:319
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s ¤Ï¤³¤Î¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:326
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:351
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "-mcmodel= ¤Ï 32 bit ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: config/sparc/sparc.c:436
-msgid "profiling does not support code models other than medlow"
-msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï medlow °Ê³°¤Î¥³¡¼¥É¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: config/sparc/sparc.c:5831 config/sparc/sparc.c:5837
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "̵¸ú¤Ê %%Y ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5907
+#: config/sparc/sparc.c:6417
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "̵¸ú¤Ê %%A ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5917
+#: config/sparc/sparc.c:6427
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "̵¸ú¤Ê %%B ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5956
+#: config/sparc/sparc.c:6466
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "̵¸ú¤Ê %%c ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5957
+#: config/sparc/sparc.c:6467
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "̵¸ú¤Ê %%C ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5978
+#: config/sparc/sparc.c:6488
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "̵¸ú¤Ê %%d ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5979
+#: config/sparc/sparc.c:6489
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "̵¸ú¤Ê %%D ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:5997
+#: config/sparc/sparc.c:6505
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "̵¸ú¤Ê %%f ¥ª¥Ú¥é¥ó¥É"
-#: config/sparc/sparc.c:6047
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "̵¸ú¤Ê %P ¥ª¥Ú¥é¥ó¥É¤Ç¤¹"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr "long long Äê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/sparc/sparc.c:6050
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr "ÉâÆ°¾®¿ôÄê¿ô¤ÏÀµ¾ï¤Ê¨ÃÍ¥ª¥Ú¥é¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#. To make profiling work with -f{pic,PIC}, we need to emit the profiling
-#. code into the rtl. Also, if we are profiling, we cannot eliminate
-#. the frame pointer (because the return address will get smashed).
-#: config/sparc/sparc.h:388
-#, c-format
-msgid "%s and profiling conflict: disabling %s"
-msgstr "%s ¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¶¥¹ç¤·¤Þ¤¹: %s ¤ò̵¸ú²½¤·¤Þ¤¹"
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr "128 ¥Ó¥Ã¥È¤Î long double ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:562
-#, fuzzy
-msgid "Use function_epilogue()"
-msgstr "´Ø¿ô³«»ÏÉôʬÍѤΥ¹¥¿¥Ö¤ò»ÈÍѤ¹¤ë"
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/sparc/sparc.h:564
-#, fuzzy
-msgid "Do not use function_epilogue()"
-msgstr "´Ø¿ô³«»ÏÉôʬÍѤΥ¹¥¿¥Ö¤ò»ÈÍѤ¹¤ë"
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥óÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr "¥Ç¡¼¥¿¤Î¥Ð¥¤¥È½ç¤Ë¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:566
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr "double ¤¬¸í¤Ã¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤È¤Ê¤ë²ÄǽÀ­¤¬¤¢¤ë¤È¤ß¤Ê¤¹"
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr "Á´¤Æ¤Î double ¤ò¥¢¥é¥¤¥ó¤µ¤ì¤¿¤â¤Î¤È¤ß¤Ê¤¹"
-#: config/sparc/sparc.h:570
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr "¥ê¥ó¥«¤Ë -assert pure-text ¤òÅϤ¹"
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr "¥ê¥ó¥«¤Ë -assert pure-text ¤òÅϤµ¤Ê¤¤"
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr "¥Õ¥é¥Ã¥È¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¥â¥Ç¥ë¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:576
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr "¥Õ¥é¥Ã¥È¥ì¥¸¥¹¥¿¥¦¥£¥ó¥É¥¦¥â¥Ç¥ë¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:578
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr "ABI ͽÌó¥ì¥¸¥¹¥¿¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:580
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr "ABI ͽÌó¥ì¥¸¥¹¥¿¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:582
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr "»ÍÇÜÀºÅÙÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:584
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr "»ÍÇÜÀºÅÙÉâÆ°¾®¿ôÅÀÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:586
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr "v8plus ABI ÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/sparc/sparc.h:588
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr "v8plus ABI ÍѤ˥³¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤"
-#: config/sparc/sparc.h:590
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr "Visual Ì¿Î᥻¥Ã¥È¤òÍøÍѤ¹¤ë"
-#: config/sparc/sparc.h:592
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr "Visual Ì¿Î᥻¥Ã¥È¤òÍøÍѤ·¤Ê¤¤"
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr "Cypress ¥×¥í¥»¥Ã¥µÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:597
-msgid "Optimize for SparcLite processors"
+#: config/sparc/sparc.h:563
+#, fuzzy
+msgid "Optimize for SPARCLite processors"
msgstr "SparcLite ¥×¥í¥»¥Ã¥µÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr "F930 ¥×¥í¥»¥Ã¥µÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:601
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr "F934 ¥×¥í¥»¥Ã¥µÍѤ˺ÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:603
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+#, fuzzy
+msgid "Use V8 SPARC ISA"
msgstr "V8 Sparc ISA ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:605
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+#, fuzzy
+msgid "Optimize for SuperSPARC processors"
msgstr "SuperSparc ¥×¥í¥»¥Ã¥µÍѤ˺ÇŬ²½¤¹¤ë"
#. End of deprecated options.
-#: config/sparc/sparc.h:608
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr "¥Ý¥¤¥ó¥¿¤ò 64 ¥Ó¥Ã¥È¤È¤¹¤ë"
-#: config/sparc/sparc.h:610
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr "¥Ý¥¤¥ó¥¿¤ò 32 ¥Ó¥Ã¥È¤È¤¹¤ë"
-#: config/sparc/sparc.h:612
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr "32 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:614
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr "64 ¥Ó¥Ã¥È ABI ¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:616
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:618
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr "¥¹¥¿¥Ã¥¯¥Ð¥¤¥¢¥¹¤ò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:620
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr "¥À¥Ö¥ë¥ï¡¼¥É¥³¥Ô¡¼ÍѤζ¯¤¯¥¢¥é¥¤¥ó¤µ¤ì¤¿¹½Â¤ÂΤò»ÈÍѤ¹¤ë"
-#: config/sparc/sparc.h:622
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "¥À¥Ö¥ë¥ï¡¼¥É¥³¥Ô¡¼ÍѤζ¯¤¯¥¢¥é¥¤¥ó¤µ¤ì¤¿¹½Â¤ÂΤò»ÈÍѤ·¤Ê¤¤"
-#: config/sparc/sparc.h:624
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr "¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ÇËöÈø¸Æ¤Ó½Ð¤·Ì¿Îá¤òºÇŬ²½¤¹¤ë"
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr "¥¢¥»¥ó¥Ö¥é¤È¥ê¥ó¥«¤ÇËöÈø¸Æ¤Ó½Ð¤·Ì¿Îá¤òºÇŬ²½¤·¤Ê¤¤"
-#: config/sparc/sparc.h:687
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+#, fuzzy
+msgid "Use given SPARC code model"
msgstr "Í¿¤¨¤é¤ì¤¿ Sparc ¥³¡¼¥É¥â¥Ç¥ë¤ò»ÈÍѤ¹¤ë"
-#: config/stormy16/stormy16.c:1167
+#: config/stormy16/stormy16.c:1192
#, fuzzy
msgid "cannot use va_start in interrupt function"
msgstr "¾¤Î´Ø¿ôÆâ¤Ç static ´Ø¿ô¤òÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: config/stormy16/stormy16.c:1524
+#: config/stormy16/stormy16.c:1552
#, fuzzy
msgid "`B' operand is not constant"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ `asm' Æâ¤ÇÄê¿ô¤Ç¤¹"
-#: config/stormy16/stormy16.c:1530
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr ""
-#: config/stormy16/stormy16.c:1557
+#: config/stormy16/stormy16.c:1585
#, fuzzy
msgid "`o' operand is not constant"
msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ `asm' Æâ¤ÇÄê¿ô¤Ç¤¹"
-#: config/stormy16/stormy16.c:1572
+#: config/stormy16/stormy16.c:1600
#, fuzzy
msgid "xstormy16_print_operand: unknown code"
msgstr "ia64_print_operand: ÉÔÌÀ¤Ê¥³¡¼¥É¤Ç¤¹"
-#: config/stormy16/stormy16.c:1622
+#: config/stormy16/stormy16.c:1650
#, fuzzy, c-format
msgid "switch statement of size %lu entries too large"
msgstr "ÊÑ¿ô `%s' ¤Î¥µ¥¤¥º¤¬Â礭¤¹¤®¤Þ¤¹"
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr "#pragma GHS endXXXX ¤¬Á°¤Î startXXX ̵¤·¤Ç¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr "#pragma GHS endXXX ¤¬Á°¤Î startXXX ¤ÈŬ¹ç¤·¤Þ¤»¤ó"
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
#, fuzzy
msgid "cannot set interrupt attribute: no current function"
msgstr "interrupt °À­¤òÀßÄê¤Ç¤­¤Þ¤»¤ó: ¸½ºß¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
#, fuzzy
msgid "cannot set interrupt attribute: no such identifier"
msgstr "interrupt °À­¤òÀßÄê¤Ç¤­¤Þ¤»¤ó: ¤½¤ÎÍͤʼ±Ê̻Ҥ¬¤¢¤ê¤Þ¤»¤ó"
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr "#pragma ghs section ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, fuzzy, c-format
msgid "unrecognized section name \"%s\""
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥»¥¯¥·¥ç¥ó̾ \"%s\""
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr "¤ª¤«¤·¤Ê #pragma ghs section"
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr "#pragma ghs interrupt ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr "#pragma ghs starttda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr "#pragma ghs startsda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr "#pragma ghs startzda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr "#pragma ghs endtda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr "#pragma ghs endsda ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr "#pragma ghs ¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, fuzzy, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s ¤Ï¿ôÃͤǤϤ¢¤ê¤Þ¤»¤ó"
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "%s=%s ¤ÏÂ礭¤¹¤®¤Þ¤¹¡£"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2081
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr "¥Ç¡¼¥¿Îΰè°À­¤ò¥í¡¼¥«¥ëÊÑ¿ô¤Ë¤Ï»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: config/v850/v850.c:2092
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr "¥Ç¡¼¥¿Îΰè '%s' ¤ÏÁ°¤ÎÀë¸À¤ÈÌ·½â¤·¤Þ¤¹"
-#: config/v850/v850.c:2295
+#: config/v850/v850.c:2447
#, fuzzy, c-format
msgid "bogus JR construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JR ¹½Â¤: %d\n"
-#: config/v850/v850.c:2316 config/v850/v850.c:2518
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, fuzzy, c-format
msgid "bad amount of stack space removal: %d"
msgstr "¥¹¥¿¥Ã¥¯¶õ´Öºï½üÎ̤¬ÉÔÀµ¤Ç¤¹: %d"
-#: config/v850/v850.c:2494
+#: config/v850/v850.c:2646
#, fuzzy, c-format
msgid "bogus JARL construction: %d\n"
msgstr "¸íËâ²½¤µ¤ì¤¿ JARL ¹½Â¤: %d\n"
+#: config/v850/v850.c:3026
+#, fuzzy, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "¸íËâ²½¤µ¤ì¤¿ JR ¹½Â¤: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, fuzzy, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "¸íËâ²½¤µ¤ì¤¿ JARL ¹½Â¤: %d\n"
+
+#: config/v850/v850.c:3246
+#, fuzzy, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "¥¹¥¿¥Ã¥¯¶õ´Öºï½üÎ̤¬ÉÔÀµ¤Ç¤¹: %d"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:119
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr "Green Hill ¤Î ABI ¤ò¥µ¥Ý¡¼¥È¤¹¤ë"
-#: config/v850/v850.h:122
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr "PC ´ØÏ¢¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¶Ø¤¸¤ë"
-#: config/v850/v850.h:125
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr "´Ø¿ô¤Î¼çÍ×ÉôʬËè¤Ë r30 ¤òºÆÍøÍѤ¹¤ë"
-#: config/v850/v850.h:128
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr "´Ø¿ô³«»ÏÉôʬÍѤΥ¹¥¿¥Ö¤ò»ÈÍѤ¹¤ë"
-#: config/v850/v850.h:131
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr "-mep -mprolog-function ¤ÈƱÍÍ"
-#: config/v850/v850.h:132
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr "¥Ð¥Ã¥¯¥¨¥ó¥É¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë"
-#: config/v850/v850.h:134
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr "v850 ¥×¥í¥»¥Ã¥µÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: config/v850/v850.h:137
-msgid "Use 4 byte entries in switch tables"
-msgstr "switch ¥Æ¡¼¥Ö¥ë¤Ç 4 ¥Ð¥¤¥È¥¨¥ó¥È¥ê¤ò»ÈÍѤ¹¤ë"
-
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/v850/v850.h:181
-msgid "Set the max size of data eligible for the TDA area"
-msgstr "TDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-
-#: config/v850/v850.h:184
-msgid "Set the max size of data eligible for the SDA area"
-msgstr "SDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-
-#: config/v850/v850.h:187
-msgid "Set the max size of data eligible for the ZDA area"
-msgstr "ZDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-
-#: ada/misc.c:219
-msgid "`-gnat' misspelled as `-gant'"
-msgstr ""
-
-#: ch/actions.c:118
-#, c-format
-msgid "%d errors, %d sorries, do granting"
-msgstr ""
-
-#: ch/actions.c:135
-msgid "GNU compiler does not support statically allocated objects"
-msgstr ""
-
-#: ch/actions.c:138 objc/objc-act.c:885
-#, c-format
-msgid "`%s' cannot be statically allocated"
-msgstr "`%s' ¤òÀÅŪ¤Ë³ÎÊݤǤ­¤Þ¤»¤ó"
-
-#: ch/actions.c:300
-#, c-format
-msgid "causing unhandled exception `%s' (this is flaged only once)"
-msgstr ""
-
-#: ch/actions.c:438
-#, fuzzy
-msgid "range failure (not inside function)"
-msgstr "`%s' ¤¬¤³¤³¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (´Ø¿ô¤ÎÃæ¤Ç¤Ï¤Ê¤¤)"
-
-#: ch/actions.c:440
-msgid "possible range failure (not inside function)"
-msgstr ""
-
-#: ch/actions.c:445
-msgid "expression will always cause RANGEFAIL"
-msgstr ""
-
-#: ch/actions.c:492
-msgid "right hand side of assignment is a mode"
-msgstr ""
-
-#: ch/actions.c:498
-#, fuzzy, c-format
-msgid "incompatible modes in %s"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/actions.c:523
-#, fuzzy, c-format
-msgid "bad string length in %s"
-msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹"
-
-#: ch/actions.c:631 ch/actions.c:644
-#, fuzzy, c-format
-msgid "mode mismatch in %s expression"
-msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-
-#: ch/actions.c:638
-#, fuzzy, c-format
-msgid "%s expression must be referable"
-msgstr "¥«¥ó¥Þ±é»»»Ò¤¬Ìá¤êÃͤò½é´ü²½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-
-#: ch/actions.c:667
-#, c-format
-msgid "%s not allowed outside a PROC"
-msgstr ""
-
-#: ch/actions.c:673
-#, c-format
-msgid "%s action in PROC with no declared RESULTS"
-msgstr ""
-
-#: ch/actions.c:704
-msgid "RETURN not allowed outside PROC"
-msgstr ""
-
-#: ch/actions.c:717
-#, fuzzy
-msgid "RETURN with a value, in PROC returning void"
-msgstr "Ìá¤ê·¿¤¬ void ¤Î´Ø¿ô¤Ç¡¢`return' ¤ËÃͤ¬¤¢¤ê¤Þ¤¹"
-
-#: ch/actions.c:726
-msgid "RETURN with no value and no RESULT action in procedure"
-msgstr ""
-
-#: ch/actions.c:749
-#, fuzzy, c-format
-msgid "no label named `%s'"
-msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/actions.c:751
-#, fuzzy, c-format
-msgid "cannot GOTO label `%s' outside current function"
-msgstr "¥é¥Ù¥ë `%s' ¤¬´Ø¿ô¤Î³°Â¦¤Î²¿¤«¤ò»²¾È¤·¤Þ¤·¤¿"
-
-#: ch/actions.c:773
-#, fuzzy, c-format
-msgid "no EXITable label named `%s'"
-msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/actions.c:775
-#, fuzzy, c-format
-msgid "cannot EXIT label `%s' outside current function"
-msgstr "¥é¥Ù¥ë `%s' ¤¬´Ø¿ô¤Î³°Â¦¤Î²¿¤«¤ò»²¾È¤·¤Þ¤·¤¿"
-
-#: ch/actions.c:1018
-#, fuzzy
-msgid "case selector not compatible with label"
-msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤È¤ÏÁêÍƤì¤Þ¤»¤ó\n"
-
-#: ch/actions.c:1044
-#, fuzzy
-msgid "ELSE label not within a CASE statement"
-msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/actions.c:1048
-#, fuzzy
-msgid "multiple default labels found in a CASE statement"
-msgstr "°ì¤Ä¤Î switch ¤ËÊ£¿ô¤Î default ¥é¥Ù¥ë¤¬¤¢¤ê¤Þ¤¹"
-
-#: ch/actions.c:1049
-#, fuzzy
-msgid "this is the first ELSE label"
-msgstr "¤³¤ì¤¬ºÇ½é¤Î default ¥é¥Ù¥ë¤Ç¤¹"
-
-#: ch/actions.c:1070
-#, fuzzy
-msgid "label found outside of CASE statement"
-msgstr "¥é¥Ù¥ë¤Î¸å¤í¤Ë¤Ïʸ¤¬É¬ÍפǤ¹"
-
-#: ch/actions.c:1073
-#, fuzzy
-msgid "duplicate CASE value"
-msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-
-#: ch/actions.c:1074 ch/actions.c:1127
-#, fuzzy
-msgid "this is the first entry for that value"
-msgstr "¤³¤ì¤¬¤½¤ÎÃͤȽÅÊ£¤·¤¿ºÇ½é¤Î¹àÌܤǤ¹"
-
-#: ch/actions.c:1077 ch/actions.c:1130
-#, fuzzy
-msgid "CASE value out of range"
-msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
-
-#: ch/actions.c:1079 ch/actions.c:1132
-#, fuzzy
-msgid "empty range"
-msgstr "¶õ¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-
-#: ch/actions.c:1081 ch/actions.c:1134
-#, fuzzy
-msgid "label within scope of cleanup or variable array"
-msgstr "case ¥é¥Ù¥ë¤¬¡¢²òÂΤޤ¿¤Ï²ÄÊÑÇÛÎó¤Î¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-
-#: ch/actions.c:1105 ch/actions.c:1302
-msgid "mode in label is not discrete"
-msgstr ""
-
-#: ch/actions.c:1122
-#, fuzzy
-msgid "label not within a CASE statement"
-msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/actions.c:1282
-msgid "lower bound of range must be a discrete literal expression"
-msgstr ""
-
-#: ch/actions.c:1287
-msgid "upper bound of range must be a discrete literal expression"
-msgstr ""
-
-#: ch/actions.c:1311
-msgid "CASE label is not valid"
-msgstr ""
-
-#: ch/actions.c:1357
-msgid "number of CASE selectors does not match the number of CASE label lists"
-msgstr ""
-
-#: ch/actions.c:1442
-#, c-format
-msgid "incomplete CASE - %s not handled"
-msgstr ""
-
-#: ch/actions.c:1461
-msgid "CASE selector with variable range"
-msgstr ""
-
-#: ch/actions.c:1465
-msgid "too many cases to do CASE completeness testing"
-msgstr ""
-
-#: ch/actions.c:1550
-msgid "type of tuple cannot be implicit in multiple assignent"
-msgstr ""
-
-#: ch/actions.c:1552
-msgid "conditional expression cannot be used in multiple assignent"
-msgstr ""
-
-#: ch/actions.c:1554
-#, fuzzy
-msgid "internal error - unknown type in multiple assignment"
-msgstr "ÆâÉô¥¨¥é¡¼ - interface ·¿¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/actions.c:1558
-msgid "no operator allowed in multiple assignment,"
-msgstr ""
-
-#: ch/actions.c:1568
-msgid "location modes in multiple assignment are not equivalent"
-msgstr ""
-
-#: ch/actions.c:1606
-msgid "you may not assign a value to a BUFFER or EVENT location"
-msgstr ""
-
-#: ch/actions.c:1614
-#, fuzzy
-msgid "can't assign value to READonly location"
-msgstr "Ãͤò¥Ù¥¯¥È¥ë¤Ë¤ÏÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/actions.c:1619
-msgid "cannot assign to location with non-value property"
-msgstr ""
-
-#: ch/actions.c:1639
-#, fuzzy
-msgid "lefthand side of assignment is not a location"
-msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/actions.c:1715 ch/actions.c:1785
-msgid "bitstring slice"
-msgstr ""
-
-#: ch/actions.c:1810
-msgid "LENGTH on left-hand-side is non-portable"
-msgstr ""
-
-#: ch/actions.c:1814
-msgid "can only set LENGTH of array location"
-msgstr ""
-
-#: ch/convert.c:63
-msgid "internal error: trying to make loc-identity with non-location"
-msgstr ""
-
-#: ch/convert.c:117
-#, fuzzy
-msgid "cannot convert to a boolean mode"
-msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/convert.c:152
-#, fuzzy
-msgid "cannot convert to a char mode"
-msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/convert.c:248
-#, fuzzy
-msgid "powerset tuple element out of range"
-msgstr "±é»»¿ô¤¬Èϰϳ°¤Ç¤¹"
-
-#: ch/convert.c:284 ch/convert.c:312
-#, c-format
-msgid "incompatible member of powerset tuple (at position #%d)"
-msgstr ""
-
-#: ch/convert.c:394
-#, fuzzy, c-format
-msgid "no initializer value for fixed field `%s'"
-msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-
-#: ch/convert.c:436
-#, fuzzy, c-format
-msgid "non-constant value for tag field `%s'"
-msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/convert.c:488
-#, fuzzy, c-format
-msgid "field `%s' in wrong variant"
-msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: ch/convert.c:495
-#, fuzzy, c-format
-msgid "missing variant fields (at least `%s')"
-msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/convert.c:518
-#, fuzzy, c-format
-msgid "bad initializer for field `%s'"
-msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
-
-#: ch/convert.c:525
-#, fuzzy, c-format
-msgid "no initializer value for variant field `%s'"
-msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-
-#: ch/convert.c:531
-msgid "no selected variant"
-msgstr ""
-
-#: ch/convert.c:546 ch/convert.c:912
-msgid "mixture of labelled and unlabelled tuple elements"
-msgstr ""
-
-#: ch/convert.c:557
-msgid "probably not a structure tuple"
-msgstr ""
-
-#: ch/convert.c:559
-#, fuzzy, c-format
-msgid "excess initializer for field `%s'"
-msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/convert.c:566
-#, fuzzy
-msgid "excess unnamed initializers"
-msgstr "ÇÛÎó½é´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/convert.c:693
-#, fuzzy
-msgid "non-constant start index for tuple"
-msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-
-#: ch/convert.c:736
-#, fuzzy
-msgid "invalid array tuple label"
-msgstr "̵¸ú¤Ê #pragma vtable"
-
-#: ch/convert.c:750
-#, fuzzy
-msgid "non-constant array tuple index range"
-msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-
-#: ch/convert.c:759
-#, fuzzy, c-format
-msgid "incompatible array tuple element %s"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/convert.c:775
-msgid "multiple (*) or (ELSE) array tuple labels"
-msgstr ""
-
-#: ch/convert.c:784
-#, fuzzy
-msgid "empty range in array tuple"
-msgstr "½é´ü²½»ÒÆâ¤Ë¶õ¤ÎÈÏ°Ï¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
-
-#: ch/convert.c:801
-#, c-format
-msgid "array tuple has duplicate index %s"
-msgstr ""
-
-#: ch/convert.c:809
+#: config/v850/v850.h:175
#, fuzzy
-msgid "array tuple index out of range"
-msgstr "¹ÔÈֹ椬Èϰϳ°¤Ç¤¹"
-
-#: ch/convert.c:811
-msgid "too many array tuple values"
-msgstr ""
-
-#: ch/convert.c:883
-msgid "dynamic array tuple without (*) or (ELSE)"
-msgstr ""
-
-#: ch/convert.c:885
-#, c-format
-msgid "missing array tuple element %s"
-msgstr ""
-
-#: ch/convert.c:892
-#, c-format
-msgid "missing array tuple elements %s : %s"
-msgstr ""
-
-#: ch/convert.c:1086
-#, fuzzy
-msgid "initializer is not an array or string mode"
-msgstr "½é´ü²½»Ò¤ÎÍ×ÁÇ¤Ï¥í¡¼¥É»þ¤Ë·×»»¤µ¤ìÆÀ¤Þ¤»¤ó"
-
-#: ch/convert.c:1096
-msgid "destination is too small"
-msgstr ""
-
-#: ch/convert.c:1152
-#, fuzzy
-msgid "internal error: unknown type of expression"
-msgstr "ÆâÉô¥¨¥é¡¼ - ̤ÄêµÁ·¿¤Î»ÈÍѤǤ¹"
-
-#: ch/decl.c:1033
-#, fuzzy, c-format
-msgid "`%s' must not be declared readonly"
-msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/decl.c:1037
-#, fuzzy
-msgid "declaration of readonly variable without initialization"
-msgstr "ÈóÊÑ¿ô `%s' ¤ÎÀë¸À¤¬ `for' ¥ë¡¼¥×½é´ü²½Àë¸À¤ÎÃæ¤Ë¤¢¤ê¤Þ¤¹"
-
-#: ch/decl.c:1059
-#, fuzzy, c-format
-msgid "no initialization allowed for `%s'"
-msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-
-#: ch/decl.c:1067
-#, c-format
-msgid "value for loc-identity `%s' is not a location"
-msgstr ""
-
-#: ch/decl.c:1074
-#, c-format
-msgid "location for `%s' not read-compatible"
-msgstr ""
-
-#: ch/decl.c:1101
-#, fuzzy, c-format
-msgid "nonconstant initializer for `%s'"
-msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/decl.c:1132
-msgid "do_decl: internal error: don't know what to initialize"
-msgstr ""
-
-#: ch/decl.c:1189
-msgid "RECURSIVE PROCs"
-msgstr ""
-
-#: ch/decl.c:1445
-#, c-format
-msgid "`%s' must not be READonly"
-msgstr ""
-
-#: ch/decl.c:1471
-#, fuzzy
-msgid "POS may not be specified for a list of field declarations"
-msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-
-#: ch/decl.c:1525
-msgid "(ELSE) case label as well as ELSE variant"
-msgstr ""
-
-#: ch/decl.c:1610 ch/decl.c:1613
-msgid "inconsistent modes between labels and tag field"
-msgstr ""
-
-#: ch/decl.c:1618
-msgid "too few tag labels"
-msgstr ""
-
-#: ch/decl.c:1620
-#, fuzzy
-msgid "too many tag labels"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/decl.c:1658
-#, fuzzy
-msgid "case label lower limit is not a discrete constant expression"
-msgstr "case ¥é¥Ù¥ë¤òÀ°¿ôÄê¿ô¤Ë´Ô¸µ¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/decl.c:1660
-msgid "case label upper limit is not a discrete constant expression"
-msgstr ""
-
-#: ch/decl.c:1670
-#, fuzzy
-msgid "case label must be a discrete constant expression"
-msgstr "case ¥é¥Ù¥ë¤òÀ°¿ôÄê¿ô¤Ë´Ô¸µ¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/decl.c:1697
-msgid "variant label declared here..."
-msgstr ""
-
-#: ch/decl.c:1699
-msgid "...is duplicated here"
-msgstr ""
-
-#: ch/decl.c:1729
-#, fuzzy, c-format
-msgid "no field (yet) for tag %s"
-msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-
-#: ch/decl.c:1824
-msgid "non-value mode may only returned by LOC"
-msgstr ""
-
-#: ch/decl.c:1847
-#, fuzzy, c-format
-msgid "mode of `%s' is not a mode"
-msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/decl.c:1853
-#, c-format
-msgid "`%s' may only be passed by LOC"
-msgstr ""
-
-#: ch/decl.c:2281
-#, c-format
-msgid "nothing named `%s' to grant"
-msgstr ""
-
-#: ch/decl.c:2321
-#, fuzzy, c-format
-msgid "duplicate grant for `%s'"
-msgstr "`%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-
-#: ch/decl.c:2322
-#, fuzzy, c-format
-msgid "previous grant for `%s'"
-msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/decl.c:2409
-#, fuzzy, c-format
-msgid "duplicate definition `%s'"
-msgstr "¥¯¥é¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-
-#: ch/decl.c:2410
-#, fuzzy, c-format
-msgid "previous definition of `%s'"
-msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/decl.c:3248 ch/decl.c:3258
-#, fuzzy, c-format
-msgid "ambiguous choice for seize `%s' -"
-msgstr "¥á¥½¥Ã¥É¥Ý¥¤¥ó¥¿ `%s' ¤Ø¤ÎÍ׵᤬ۣËæ¤Ç¤¹"
-
-#: ch/decl.c:3249 ch/decl.c:3259
-#, c-format
-msgid " - can seize this `%s' -"
-msgstr ""
-
-#: ch/decl.c:3250 ch/decl.c:3261
-#, c-format
-msgid " - or this granted decl `%s'"
-msgstr ""
-
-#: ch/decl.c:4430
-#, fuzzy, c-format
-msgid "enumerator value for `%s' is less then 0"
-msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/decl.c:4512
-#, c-format
-msgid "enumerators `%s' and `%s' have equal values"
-msgstr ""
-
-#: ch/decl.c:4618
-msgid "undefined value in SET mode is obsolete and deprecated"
-msgstr ""
-
-#: ch/decl.c:4794
-#, fuzzy
-msgid "BASE variable never declared"
-msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/decl.c:4796
-msgid "cannot BASE a variable on a PROC/PROCESS name"
-msgstr ""
-
-#: ch/decl.c:4848
-msgid "INTERNAL ERROR: handle_one_level is broken"
-msgstr ""
-
-#: ch/expr.c:126
-#, c-format
-msgid "tuple without specified mode not allowed in %s"
-msgstr ""
-
-#: ch/expr.c:128
-#, fuzzy, c-format
-msgid "conditional expression not allowed in %s"
-msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: ch/expr.c:130
-#, fuzzy, c-format
-msgid "internal error: unknown expression mode in %s"
-msgstr "ÆâÉô gcc ¥¨¥é¡¼: °ÌÃÖ¤ò¥·¥ó¥Ü¥ëɽ¸½¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/expr.c:147
-msgid "CASE selector is not a discrete expression"
-msgstr ""
-
-#: ch/expr.c:215
-msgid "The number of CASE selectors does not match the number of CASE label lists"
-msgstr ""
-
-#: ch/expr.c:594
-msgid "powerset is not addressable"
-msgstr ""
-
-#: ch/expr.c:639
-msgid "array is not addressable"
-msgstr ""
-
-#: ch/expr.c:687
-#, fuzzy, c-format
-msgid "too few arguments in call to `%s'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:689
-#, fuzzy, c-format
-msgid "too many arguments in call to `%s'"
-msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:758
-#, fuzzy
-msgid "cannot dereference, not a pointer"
-msgstr "`void *' ¥Ý¥¤¥ó¥¿¤Ø¤Î´ÖÀÜ»²¾È¤Ç¤¹"
-
-#: ch/expr.c:768
-#, c-format
-msgid "missing '.' operator or undefined mode name `%s'"
-msgstr ""
-
-#: ch/expr.c:771
-msgid "you have forgotten the '.' operator which must"
-msgstr ""
-
-#: ch/expr.c:772
-#, c-format
-msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
-msgstr ""
-
-#: ch/expr.c:786
-msgid "can't dereference PTR value using unary `->'"
-msgstr ""
-
-#: ch/expr.c:831
-#, fuzzy
-msgid "invalid type argument of `->'"
-msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-
-#: ch/expr.c:856 ch/expr.c:969
-#, fuzzy
-msgid "operand of '.' is not a STRUCT"
-msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:909
-#, fuzzy, c-format
-msgid "no field named `%s'"
-msgstr "`%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:1217
-msgid "ABS argument must be discrete or real mode"
-msgstr ""
-
-#: ch/expr.c:1250
-#, c-format
-msgid "argument %d to ABSTIME must be of integer type"
-msgstr ""
-
-#: ch/expr.c:1288 ch/expr.c:1329
-#, fuzzy
-msgid "parameter 1 must be referable"
-msgstr "¥Þ¥¯¥í²¾°ú¿ô¤Ï¥«¥ó¥Þ¶èÀڤꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:1294 ch/expr.c:1335 ch/expr.c:1372
-#, fuzzy
-msgid "mode mismatch in parameter 1"
-msgstr "̵¸ú¤Ê catch ¤Î°ú¿ô"
-
-#: ch/expr.c:1301 ch/expr.c:1342
-#, fuzzy
-msgid "parameter 2 must be a positive integer"
-msgstr "#line ¤Î¸å¤í¤Î \"%s\" ¤¬Àµ¤ÎÀ°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:1436
-msgid "CARD argument must be powerset mode"
-msgstr ""
-
-#: ch/expr.c:1487
-msgid "expression for DESCR-built-in must be referable"
-msgstr ""
-
-#: ch/expr.c:1535
-#, fuzzy, c-format
-msgid "argument to `%s' must be of integer type"
-msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/expr.c:1568
-#, fuzzy, c-format
-msgid "argument 1 to `%s' must be of floating point mode"
-msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÅù²Á¥Æ¥¹¥È¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-
-#: ch/expr.c:1602
-#, fuzzy, c-format
-msgid "first argument to `%s' must be a mode"
-msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹"
-
-#: ch/expr.c:1609
-#, c-format
-msgid "READonly modes for %s must have a value"
-msgstr ""
-
-#: ch/expr.c:1692
-msgid "argument to TERMINATE must be a reference primitive value"
-msgstr ""
-
-#: ch/expr.c:1741
-msgid "argument 1 to INTTIME must be of mode TIME"
-msgstr ""
-
-#: ch/expr.c:1888
-msgid "LENGTH argument must be string, buffer, event mode, text location or mode"
-msgstr ""
-
-#: ch/expr.c:1917
-msgid "UPPER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1919
-msgid "LOWER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1953
-msgid "UPPER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1955
-msgid "LOWER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1991
-#, c-format
-msgid "%s argument must be POWERSET mode"
-msgstr ""
-
-#: ch/expr.c:2017
-#, c-format
-msgid "%s called for empty POWERSET"
-msgstr ""
-
-#: ch/expr.c:2098
-#, fuzzy
-msgid "argument to NUM is not discrete"
-msgstr "°ú¿ô¤¬¹½Â¤ÂΤǤ¹"
-
-#: ch/expr.c:2110
-#, fuzzy
-msgid "no integer mode which matches expression's mode"
-msgstr "À°¿ô¤¬¥×¥ê¥×¥í¥»¥Ã¥µ¼°Æâ¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/expr.c:2119
-msgid "NUM's parameter is below its mode range"
-msgstr ""
-
-#: ch/expr.c:2122
-msgid "NUM's parameter is above its mode range"
-msgstr ""
-
-#: ch/expr.c:2161
-msgid "cannot take SUCC or PRED of a numbered SET"
-msgstr ""
-
-#: ch/expr.c:2169
-msgid "SUCC or PRED must not be done on a PTR"
-msgstr ""
-
-#: ch/expr.c:2172
-msgid "SUCC or PRED for a reference type is not standard"
-msgstr ""
-
-#: ch/expr.c:2182
-msgid "SUCC or PRED argument must be a discrete mode"
-msgstr ""
-
-#: ch/expr.c:2203
-#, c-format
-msgid "taking the %s of a value already at its %s value"
-msgstr ""
-
-#: ch/expr.c:2254
-#, fuzzy
-msgid "size applied to a function mode"
-msgstr "sizeof ¤¬´Ø¿ô·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: ch/expr.c:2260
-#, fuzzy
-msgid "sizeof applied to a void mode"
-msgstr "sizeof ¤¬ void ·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: ch/expr.c:2265
-#, fuzzy
-msgid "sizeof applied to an incomplete mode"
-msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-
-#: ch/expr.c:2360
-msgid "cannot call a PROCESS, you START a PROCESS"
-msgstr ""
-
-#: ch/expr.c:2422
-#, fuzzy, c-format
-msgid "invalid %s"
-msgstr "̵¸ú¤Ê `asm': %s"
-
-#: ch/expr.c:2437
-#, fuzzy, c-format
-msgid "%s parameter %d must be a location"
-msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/expr.c:2445
-#, c-format
-msgid "%s parameter %d is READ-only"
-msgstr ""
-
-#: ch/expr.c:2488
-#, c-format
-msgid "LOC actual parameter %d is a non-referable location"
-msgstr ""
-
-#: ch/expr.c:2494
-#, fuzzy, c-format
-msgid "mode mismatch in parameter %d"
-msgstr "̵¸ú¤Ê catch ¤Î°ú¿ô"
-
-#: ch/expr.c:2518
-#, fuzzy, c-format
-msgid "too many arguments to procedure `%s'"
-msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:2521
-#, fuzzy
-msgid "too many arguments to procedure"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:2527
-#, fuzzy, c-format
-msgid "too few arguments to procedure `%s'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:2530
-#, fuzzy
-msgid "too few arguments to procedure"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/expr.c:2596
-#, fuzzy
-msgid "syntax error (integer used as function)"
-msgstr "'%s' ¥È¡¼¥¯¥ó¤Î½ê¤Çʸˡ¥¨¥é¡¼"
-
-#: ch/expr.c:2616
-msgid "syntax error - missing operator, comma, or '('?"
-msgstr ""
-
-#: ch/expr.c:2977
-#, fuzzy, c-format
-msgid "unimplemented built-in function `%s'"
-msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-
-#: ch/expr.c:2981
-#, fuzzy, c-format
-msgid "internal error - bad built-in function `%s'"
-msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-
-#: ch/expr.c:2995
-#, fuzzy
-msgid "empty expression in string index"
-msgstr "%s ¤Ç¶õ¤ÎÀºÅÙ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹"
-
-#: ch/expr.c:3000
-msgid "only one expression allowed in string index"
-msgstr ""
-
-#: ch/expr.c:3017
-msgid "invalid: primval ( untyped_exprlist )"
-msgstr ""
-
-#: ch/expr.c:3081 ch/expr.c:3095
-msgid "operand is variable-size bitstring/power-set"
-msgstr ""
-
-#: ch/expr.c:3245
-#, c-format
-msgid "tree code `%s' unhandled in build_compare_set_expr"
-msgstr ""
-
-#: ch/expr.c:3410
-#, fuzzy
-msgid "incompatible modes in concat expression"
-msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/expr.c:3459
-#, fuzzy
-msgid "invalid operation on array of chars"
-msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
-
-#: ch/expr.c:3504
-#, fuzzy
-msgid "comparison of variant structures is unsafe"
-msgstr "ÉâÆ°¾®¿ôÅÀ¤ÎÈæ³Ó¤Ç == ¤ä != ¤ò»È¤¦¤Î¤Ï°ÂÁ´¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:3511
-msgid "compare with variant records"
-msgstr ""
-
-#: ch/expr.c:3688 ch/expr.c:3924
-#, fuzzy, c-format
-msgid "incompatible operands to %s"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/expr.c:3740
-#, fuzzy
-msgid "relational operator not allowed for this mode"
-msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: ch/expr.c:3794
-#, c-format
-msgid "cannot use %s operator on PROC mode variable"
-msgstr ""
-
-#: ch/expr.c:3800
-#, fuzzy, c-format
-msgid "invalid left operand of %s"
-msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-
-#: ch/expr.c:3805 ch/expr.c:4357
-#, fuzzy, c-format
-msgid "invalid right operand of %s"
-msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-
-#: ch/expr.c:3819
-#, fuzzy
-msgid "repetition expression must be constant"
-msgstr "`__builtin_args_info' ¤Î°ú¿ô¤ÏÄê¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:3829
-msgid "left argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3834
-msgid "right argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3891
-#, fuzzy
-msgid "right operand of IN is not a powerset"
-msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:3896
-#, fuzzy
-msgid "left operand of IN incompatible with right operand"
-msgstr "`asm' ¥ª¥Ú¥é¥ó¥ÉÀ©Ì󤬥ª¥Ú¥é¥ó¥É¥µ¥¤¥º¤ÈÀ°¹ç¤·¤Þ¤»¤ó"
-
-#: ch/expr.c:3987
-#, fuzzy
-msgid "-> operator not allow in constant expression"
-msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/expr.c:4000
-msgid "taking the address of a string literal is non-standard"
-msgstr ""
-
-#: ch/expr.c:4002
-msgid "taking the address of a function is non-standard"
-msgstr ""
-
-#: ch/expr.c:4005
-msgid "ADDR requires a LOCATION argument"
-msgstr ""
-
-#: ch/expr.c:4035
-msgid "-> expression is not addressable"
-msgstr ""
-
-#: ch/expr.c:4062
-msgid "ADDR parameter must be a LOCATION"
-msgstr ""
-
-#: ch/expr.c:4071
-msgid "possible internal error in build_chill_arrow_expr"
-msgstr ""
-
-#: ch/expr.c:4076
-#, fuzzy, c-format
-msgid "%s is not addressable"
-msgstr "\"%s\" ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/expr.c:4175
-#, fuzzy
-msgid "repetition count is not an integer constant"
-msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:4183
-msgid "repetition count < 0"
-msgstr ""
-
-#: ch/expr.c:4188
-#, fuzzy
-msgid "repetition value not constant"
-msgstr "½¸¹çÂΤνé´ü²½»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:4200
-msgid "bitstring repetition of non-constant boolean"
-msgstr ""
-
-#: ch/expr.c:4223
-#, fuzzy
-msgid "string repetition operand is non-constant bitstring"
-msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥É¤¬ `asm' Æâ¤ÇÄê¿ô¤Ç¤¹"
-
-#: ch/expr.c:4283
-#, fuzzy
-msgid "non-char, non-bit string repetition"
-msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤¹¤ë"
-
-#: ch/expr.c:4311
-#, fuzzy, c-format
-msgid "invalid operand of %s"
-msgstr "%s ¥³¡¼¥É¤ËÂФ¹¤ë̵¸ú¤Ê¥ª¥Ú¥é¥ó¥É"
-
-#: ch/expr.c:4322
-#, fuzzy, c-format
-msgid "right operand of %s is not array of boolean"
-msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/expr.c:4335
-#, c-format
-msgid "%s operator applied to boolean variable"
-msgstr ""
-
-#: ch/expr.c:4406
-#, fuzzy
-msgid "non-boolean mode in conditional expression"
-msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹"
-
-#: ch/grant.c:1978
-msgid "decode_constant: invalid component_ref"
-msgstr ""
-
-#: ch/grant.c:1986
-msgid "decode_constant: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:1989
-msgid "decode_constant: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2214
-msgid "decode_constant_selective: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:2217
-msgid "decode_constant_selective: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2677
-#, c-format
-msgid "can't write to %s"
-msgstr "%s ¤Ø½ñ¤­¹þ¤á¤Þ¤»¤ó"
-
-#: ch/grant.c:2764
-#, fuzzy
-msgid "FORBID is not yet implemented"
-msgstr "Trampoline ¤Ï¡¢¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#. this nerver should happen
-#: ch/grant.c:2825
-#, fuzzy, c-format
-msgid "function \"really_grant_this\" called for `%s'"
-msgstr "¥»¥¯¥·¥ç¥ó°À­¤Ï `%s' ¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-
-#: ch/inout.c:1645
-msgid "non-integral text length"
-msgstr ""
-
-#: ch/inout.c:1650
-msgid "non-constant text length"
-msgstr ""
-
-#: ch/inout.c:1655
-msgid "text length must be greater then 0"
-msgstr ""
-
-#: ch/inout.c:1755
-#, c-format
-msgid "argument %d of %s must be of mode ASSOCIATION"
-msgstr ""
-
-#: ch/inout.c:1760 ch/inout.c:2146 ch/inout.c:2516 ch/inout.c:2751
-#, fuzzy, c-format
-msgid "argument %d of %s must be a location"
-msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-
-#: ch/inout.c:1795
-#, fuzzy
-msgid "argument 2 of ASSOCIATE must not be an empty string"
-msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-
-#: ch/inout.c:1811
-msgid "argument 2 to ASSOCIATE must be a string"
-msgstr ""
-
-#: ch/inout.c:1850
-msgid "argument 3 to ASSOCIATE must be a string"
-msgstr ""
-
-#: ch/inout.c:2031
-#, fuzzy
-msgid "too many arguments in call to MODIFY"
-msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:2044
-#, fuzzy
-msgid "argument 2 of MODIFY must not be an empty string"
-msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-
-#: ch/inout.c:2060
-#, fuzzy
-msgid "argument 2 to MODIFY must be a string"
-msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/inout.c:2094
-#, fuzzy
-msgid "argument 3 to MODIFY must be a string"
-msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/inout.c:2141
-#, c-format
-msgid "argument %d of %s must be an ACCESS or TEXT mode"
-msgstr ""
-
-#: ch/inout.c:2355
-msgid "argument 4 of CONNECT must be of mode WHERE"
-msgstr ""
-
-#: ch/inout.c:2371
-msgid "index expression for ACCESS without index"
-msgstr ""
-
-#: ch/inout.c:2376 ch/inout.c:2554 ch/inout.c:2636 ch/inout.c:4356
-#: ch/inout.c:4504
-#, fuzzy
-msgid "incompatible index mode"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/inout.c:2476
-msgid "argument 3 to CONNECT must be of mode USAGE"
-msgstr ""
-
-#: ch/inout.c:2511
-#, c-format
-msgid "argument %d of %s must be of mode ACCESS"
-msgstr ""
-
-#: ch/inout.c:2545
-#, fuzzy
-msgid "too few arguments in call to `readrecord'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:2569 ch/inout.c:2648
-#, fuzzy
-msgid "incompatible record mode"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/inout.c:2574
-msgid "store location must not be READonly"
-msgstr ""
-
-#: ch/inout.c:2616
-#, fuzzy
-msgid "too few arguments in call to `writerecord'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:2643
-msgid "transfer to ACCESS without record mode"
-msgstr ""
-
-#: ch/inout.c:2746
-#, c-format
-msgid "argument %d of %s must be of mode TEXT"
-msgstr ""
-
-#: ch/inout.c:2803
-msgid "TEXT doesn't have a location"
-msgstr ""
-
-#: ch/inout.c:2905
-msgid "incompatible index mode for SETETEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2915
-msgid "incompatible record mode for SETTEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2945
-#, fuzzy
-msgid "parameter 2 must be a location"
-msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/inout.c:2955
-#, fuzzy
-msgid "incompatible modes in parameter 2"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/inout.c:3062
-#, fuzzy
-msgid "conditional expression not allowed in this context"
-msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹"
-
-#: ch/inout.c:3064
-#, fuzzy, c-format
-msgid "untyped expression as argument %d"
-msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-
-#: ch/inout.c:3141 ch/inout.c:3187
-#, c-format
-msgid "cannot process %d bits integer for READTEXT argument %d"
-msgstr ""
-
-#: ch/inout.c:3262
-#, c-format
-msgid "cannot process %d bits integer WRITETEXT argument %d"
-msgstr ""
-
-#: ch/inout.c:3283 ch/inout.c:3338 ch/inout.c:3417 ch/inout.c:3483
-#: ch/inout.c:3534 ch/inout.c:3619 ch/inout.c:3654
-#, fuzzy, c-format
-msgid "argument %d is READonly"
-msgstr "°ú¿ô #%d ¤Ï¹½Â¤ÂΤǤ¹"
-
-#: ch/inout.c:3290 ch/inout.c:3345 ch/inout.c:3424 ch/inout.c:3491
-#: ch/inout.c:3542 ch/inout.c:3627 ch/inout.c:3659
-#, fuzzy, c-format
-msgid "argument %d must be referable"
-msgstr "°ú¿ô #%d ¤Ï¹½Â¤ÂΤǤ¹"
-
-#: ch/inout.c:3578
-#, c-format
-msgid "cannot process argument %d of WRITETEXT, unknown size"
-msgstr ""
-
-#. datatype is not yet implemented, issue a warning
-#: ch/inout.c:3725
-#, c-format
-msgid "cannot process mode of argument %d for %sTEXT"
-msgstr ""
-
-#: ch/inout.c:3868
-#, fuzzy
-msgid "too few arguments for this format string"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:3893 ch/inout.c:3902
-#, c-format
-msgid "type of argument %d invalid for conversion code at offset %d"
-msgstr ""
-
-#: ch/inout.c:4012
-msgid "unmatched open paren"
-msgstr ""
-
-#: ch/inout.c:4026 ch/inout.c:4221
-#, c-format
-msgid "bad format specification character (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4039
-#, c-format
-msgid "repetition factor overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4057 ch/inout.c:4064 ch/inout.c:4071
-#, c-format
-msgid "duplicate qualifier (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4093
-#, c-format
-msgid "clause width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4106
-#, c-format
-msgid "no fraction (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4124
-#, c-format
-msgid "no fraction width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4131
-#, c-format
-msgid "fraction width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4142
-#, c-format
-msgid "no exponent (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4160
-#, c-format
-msgid "no exponent width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4167
-#, c-format
-msgid "exponent width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4208
-#, fuzzy
-msgid "internal error in check_format_string"
-msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó"
-
-#: ch/inout.c:4224
-#, c-format
-msgid "no padding character (offset %d)"
-msgstr ""
-
-#. too may arguments for format string
-#: ch/inout.c:4256
-#, fuzzy
-msgid "too many arguments for this format string"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:4354 ch/inout.c:4502
-#, fuzzy
-msgid "missing index expression"
-msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-
-#: ch/inout.c:4361
-#, fuzzy
-msgid "too few arguments in call to `writetext'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:4374
-msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location"
-msgstr ""
-
-#: ch/inout.c:4397
-msgid "`format string' for WRITETEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/inout.c:4509
-#, fuzzy
-msgid "too few arguments in call to `readtext'"
-msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/inout.c:4522
-msgid "argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] expression"
-msgstr ""
-
-#: ch/inout.c:4543
-msgid "`format string' for READTEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/lang.c:105
-#, fuzzy
-msgid "non-constant expression"
-msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/lang.c:191
-#, fuzzy
-msgid "ignoring case upon input and"
-msgstr "¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ # ¤Ê¤Î¤Ç¡¢#%s ¤Ï̵»ë¤·¤Þ¤¹"
-
-#: ch/lang.c:192
-msgid "making special words uppercase wouldn't work"
-msgstr ""
-
-#: ch/lang.c:203
-#, fuzzy
-msgid "making special words uppercase and"
-msgstr "¸À¸ìͽÌó¸ì¤Ï±ÑÂçʸ»ú¤È¤¹¤ë"
-
-#: ch/lang.c:204
-msgid " ignoring case upon input wouldn't work"
-msgstr ""
-
-#: ch/lang.c:277 java/typeck.c:178
-msgid "internal error - use of undefined type"
-msgstr "ÆâÉô¥¨¥é¡¼ - ̤ÄêµÁ·¿¤Î»ÈÍѤǤ¹"
-
-#: ch/lex.c:502
-#, fuzzy
-msgid "invalid C'xx' "
-msgstr "̵¸ú¤Ê %C ÃͤǤ¹"
-
-#: ch/lex.c:607 java/jcf-parse.c:603 java/jcf-write.c:3327
-#, c-format
-msgid "can't close %s"
-msgstr "%s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/lex.c:711
-msgid "malformed exponent part of floating-point literal"
-msgstr ""
-
-#: ch/lex.c:728
-#, fuzzy
-msgid "real number exceeds range of REAL"
-msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ '%s' ¤ÎÈϰϤòĶ¤¨¤Þ¤·¤¿"
-
-#: ch/lex.c:747 ch/lex.c:774
-#, fuzzy
-msgid "end-of-file in '<>' directive"
-msgstr "̤ÄêµÁËô¤ÏÉÔÀµ¤Ê # ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤¹"
-
-#: ch/lex.c:780
-#, fuzzy
-msgid "unrecognized compiler directive"
-msgstr "ǧ¼±ÉÔǽ¤Î¥¨¥¹¥±¡¼¥× \\r%c"
-
-#: ch/lex.c:788 ch/lex.c:834
-#, fuzzy, c-format
-msgid "unrecognized compiler directive `%s'"
-msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `-%s'"
-
-#: ch/lex.c:995
-#, fuzzy
-msgid "unterminated control sequence"
-msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥È"
-
-#: ch/lex.c:1010 ch/lex.c:1046
-#, fuzzy
-msgid "invalid integer literal in control sequence"
-msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤¬Ìµ¸ú¤Ç¤¹¡¢ºÇ¸å¤Î '\\' ¤ò̵»ë¤·¤Þ¤¹"
-
-#: ch/lex.c:1021 ch/lex.c:1029
-msgid "control sequence overflow"
-msgstr ""
-
-#: ch/lex.c:1023 ch/lex.c:1031
-#, fuzzy
-msgid "invalid control sequence"
-msgstr "̵¸ú¤ÊÀ©¸æ¼°¤Ç¤¹"
-
-#: ch/lex.c:1111
-#, fuzzy
-msgid "invalid base in read control sequence"
-msgstr "¥Ç¥¯¥ê¥á¥ó¥È¤ÎÃæ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
-
-#: ch/lex.c:1118
-#, fuzzy
-msgid "invalid digit in control sequence"
-msgstr "ÁȤ߹þ¤ß¥Þ¥¯¥í \"%s\" ¤Ï̵¸ú¤Ç¤¹"
-
-#: ch/lex.c:1145
-#, fuzzy
-msgid "unterminated string literal"
-msgstr "ʸ»úÎóÄê¿ô¤¬½ªÎ»¤·¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/lex.c:1248 ch/lex.c:1334
-#, fuzzy, c-format
-msgid "invalid number format `%s'"
-msgstr "̵¸ú¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ·Á¼°"
-
-#: ch/lex.c:1266
-msgid "integer literal too big"
-msgstr ""
-
-#: ch/lex.c:1395
-#, fuzzy, c-format
-msgid "can't find %s"
-msgstr "%s ¤ò rewind ¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/lex.c:1421
-msgid "USE_SEIZE_FILE directive must be followed by string"
-msgstr ""
-
-#: ch/lex.c:1693 f/lex.c:1190
-msgid "invalid #ident"
-msgstr "̵¸ú¤Ê #ident"
-
-#: ch/lex.c:1711 f/lex.c:1207
-msgid "undefined or invalid # directive"
-msgstr "̤ÄêµÁËô¤ÏÉÔÀµ¤Ê # ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤¹"
-
-#: ch/lex.c:1765 ch/lex.c:1774 f/lex.c:1263
-msgid "invalid #line"
-msgstr "̵¸ú¤Ê #line"
-
-#: ch/lex.c:1843 f/lex.c:836
-msgid "#-lines for entering and leaving files don't match"
-msgstr "¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÆþ¤ê¸ý¤È¤Ê¤ë #-¹Ô ¤¬À°¹ç¤·¤Þ¤»¤ó"
-
-#: ch/lex.c:1868 f/lex.c:1373
-msgid "invalid #-line"
-msgstr "̵¸ú¤Ê #-¹Ô"
-
-#: ch/lex.c:1998
-#, fuzzy
-msgid "missing `=' in compiler directive"
-msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/lex.c:2040 ch/lex.c:2050 ch/lex.c:2091
-#, fuzzy
-msgid "invalid value follows `=' in compiler directive"
-msgstr "\"%s\" ¤Ï line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤Ï̵¸ú¤Ê¥Õ¥é¥°¤Ç¤¹"
-
-#: ch/lex.c:2061
-#, fuzzy, c-format
-msgid "invalid `%c' character in name"
-msgstr "ÉÔŬÀڤʥæ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾"
-
-#: ch/lex.c:2074
-#, fuzzy, c-format
-msgid "`%s' not integer constant synonym "
-msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
-
-#: ch/lex.c:2097
-#, fuzzy
-msgid "value out of range in compiler directive"
-msgstr "\"%s\" ¤Ï line ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤Ï̵¸ú¤Ê¥Õ¥é¥°¤Ç¤¹"
-
-#: ch/lex.c:2214 java/jcf-parse.c:599
-#, c-format
-msgid "can't reopen %s"
-msgstr "%s ¤òºÆ open ¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/lex.c:2225
-msgid "no modules seen"
-msgstr ""
-
-#: ch/loop.c:480
-#, fuzzy
-msgid "modeless tuple not allowed in this context"
-msgstr "%s: %s ¥³¥ó¥Ñ¥¤¥é¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/loop.c:482
-#, fuzzy
-msgid "IN expression does not have a mode"
-msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-
-#: ch/loop.c:489
-msgid "location enumeration for BOOLS"
-msgstr ""
-
-#: ch/loop.c:517
-msgid "location enumeration for bit-packed arrays"
-msgstr ""
-
-#: ch/loop.c:526 ch/nloop.c:481
-msgid "loop's IN expression is not a composite object"
-msgstr ""
-
-#: ch/loop.c:541 ch/nloop.c:498
-msgid "start expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:547 ch/nloop.c:504
-#, fuzzy
-msgid "DO FOR start expression is a numbered SET"
-msgstr "¥¹¥¿¥Ã¥¯À©¸Â¼°¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
-
-#: ch/loop.c:555 ch/nloop.c:510
-msgid "TO expression is a numbered SET"
-msgstr ""
-
-#: ch/loop.c:560 ch/nloop.c:525
-msgid "TO expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:565 ch/nloop.c:531
-#, fuzzy
-msgid "start expr and TO expr must be compatible"
-msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/loop.c:574 ch/nloop.c:546
-msgid "BY expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:579 ch/nloop.c:552
-#, fuzzy
-msgid "start expr and BY expr must be compatible"
-msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/loop.c:595 ch/nloop.c:765
-#, fuzzy
-msgid "loop identifier undeclared"
-msgstr "¼±Ê̻Ҥ¬É¬ÍפǤ¹"
-
-#: ch/loop.c:606
-#, fuzzy
-msgid "loop variable incompatible with start expression"
-msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/loop.c:633 ch/nloop.c:564
-#, fuzzy
-msgid "body of DO FOR will never execute"
-msgstr "¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤Ê¤¤¥³¡¼¥É¤Ë´Ø¤·¤Æ·Ù¹ð¤¹¤ë"
-
-#: ch/loop.c:648 ch/nloop.c:585
-msgid "BY expression is negative or zero"
-msgstr ""
-
-#: ch/loop.c:847 ch/nloop.c:817
-msgid "can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/nloop.c:867
-msgid "Can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/parse.c:159
-#, c-format
-msgid "there was no start label to match the end label '%s'"
-msgstr ""
-
-#: ch/parse.c:162
-#, c-format
-msgid "start label '%s' does not match end label '%s'"
-msgstr ""
-
-#: ch/parse.c:192
-#, fuzzy, c-format
-msgid "`%s' not declared"
-msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/parse.c:226
-msgid "no RETURN or RESULT in procedure"
-msgstr ""
-
-#: ch/parse.c:245
-msgid "PREFIXED clause with no prelix in unlabeled module"
-msgstr ""
-
-#: ch/parse.c:336
-#, fuzzy, c-format
-msgid "internal parser error - expected token %d"
-msgstr "ÆâÉô¥¨¥é¡¼ - ̤ÄêµÁ·¿¤Î»ÈÍѤǤ¹"
-
-#: ch/parse.c:529
-#, fuzzy, c-format
-msgid "'%s!' is not followed by an identifier"
-msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/parse.c:545
-msgid "expected a name here"
-msgstr ""
-
-#: ch/parse.c:560
-msgid "expected a name string here"
-msgstr ""
-
-#: ch/parse.c:591
-#, fuzzy, c-format
-msgid "`%s' undeclared"
-msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: ch/parse.c:669
-msgid "action not allowed in SPEC MODULE"
-msgstr ""
-
-#: ch/parse.c:691
-#, fuzzy
-msgid "missing defining occurrence"
-msgstr "%c ʸ»ú¤Ç¤Î½ªÃ¼¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:702
-msgid "bad defining occurrence following ','"
-msgstr ""
-
-#: ch/parse.c:802
-#, fuzzy
-msgid "missing '(' in exception list"
-msgstr "¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ç¡¢')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:827
-#, fuzzy
-msgid "ON exception names must be unique"
-msgstr "¥Þ¥¯¥í̾¤Ï¼±Ê̻ҤǤʤ¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:837
-#, fuzzy
-msgid "syntax error in exception list"
-msgstr "'@' ¥È¡¼¥¯¥ó¤Çʸˡ¥¨¥é¡¼"
-
-#: ch/parse.c:873
-#, fuzzy
-msgid "empty ON-condition"
-msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-
-#: ch/parse.c:938
-msgid "INIT not allowed at loc-identity declaration"
-msgstr ""
-
-#: ch/parse.c:948
-#, fuzzy
-msgid "'=' used where ':=' is required"
-msgstr "¥¹¥«¥é¡¼¤¬É¬Íפʾì½ê¤ËÇÛÎ󷿤ÎÃͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-
-#: ch/parse.c:956
-#, fuzzy
-msgid "initialization is not allowed in spec module"
-msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:964
-#, fuzzy
-msgid "loc-identity declaration without initialization"
-msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:1008
-msgid "bad syntax following FORBID"
-msgstr ""
-
-#: ch/parse.c:1023
-msgid "expected a postfix name here"
-msgstr ""
-
-#: ch/parse.c:1068
-msgid "expected another rename clause"
-msgstr ""
-
-#: ch/parse.c:1128
-#, fuzzy
-msgid "syntax error in parameter name list"
-msgstr "\"%s\" ¤Ï¥Þ¥¯¥í²¾°ú¿ô¥ê¥¹¥È¤Ë¸½¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:1221
-msgid "NONREF specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1223
-msgid "DYNAMIC specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1245
-#, fuzzy
-msgid "exception names must be unique"
-msgstr "¥Þ¥¯¥í̾¤Ï¼±Ê̻ҤǤʤ¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:1441
-msgid "must specify a PROCESS name"
-msgstr ""
-
-#: ch/parse.c:1448
-msgid "SIGNAL must be in global reach"
-msgstr ""
-
-#: ch/parse.c:1479
-#, fuzzy
-msgid "syntax error while parsing signal definition statement"
-msgstr "final °À­¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-
-#: ch/parse.c:1593
-msgid "case range list"
-msgstr ""
-
-#: ch/parse.c:1660
-#, fuzzy
-msgid "misplaced colon in case label"
-msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:1707
-#, fuzzy
-msgid "unrecognized case label list after ','"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥ì¥¸¥¹¥¿Ì¾ `%s'"
-
-#: ch/parse.c:1971 ch/parse.c:1997
-#, fuzzy
-msgid "bad ASM operand"
-msgstr "̵¸ú¤Ê %%A ¥ª¥Ú¥é¥ó¥É"
-
-#: ch/parse.c:2067
-msgid "readonly location modified by 'asm'"
-msgstr ""
-
-#: ch/parse.c:2198
-msgid "expected 'TO' in step enumeration"
-msgstr ""
-
-#: ch/parse.c:2213
-msgid "expected 'IN' in FOR control here"
-msgstr ""
-
-#: ch/parse.c:2314
-msgid "missing DELAY CASE alternative"
-msgstr ""
-
-#. This is probably not possible
-#: ch/parse.c:2348
-msgid "non-referable location in DO WITH"
-msgstr ""
-
-#: ch/parse.c:2360
-msgid "WITH element must be of STRUCT mode"
-msgstr ""
-
-#: ch/parse.c:2467
-msgid "missing ')' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2481
-msgid "misplaced 'IN' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2529
-#, fuzzy
-msgid "missing RECEIVE alternative"
-msgstr "Code °À­¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:2655
-#, fuzzy
-msgid "PROCESS copy number must be integer"
-msgstr "¥Þ¥¯¥í̾¤Ï¼±Ê̻ҤǤʤ¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:2882
-msgid "missing parenthesis for procedure call"
-msgstr ""
-
-#: ch/parse.c:2884
-msgid "expression is not an action"
-msgstr ""
-
-#: ch/parse.c:2918
-#, fuzzy
-msgid "syntax error in action"
-msgstr "'@' ¥È¡¼¥¯¥ó¤Çʸˡ¥¨¥é¡¼"
-
-#: ch/parse.c:2945
-msgid "no handler is permitted on this action"
-msgstr ""
-
-#: ch/parse.c:2966
-msgid "definition follows action"
-msgstr ""
-
-#: ch/parse.c:3042
-msgid "bad tuple field name list"
-msgstr ""
-
-#: ch/parse.c:3088
-msgid "invalid syntax for label in tuple"
-msgstr ""
-
-#: ch/parse.c:3133
-msgid "bad syntax in tuple"
-msgstr ""
-
-#: ch/parse.c:3160
-msgid "non-mode name before tuple"
-msgstr ""
-
-#: ch/parse.c:3205
-#, fuzzy
-msgid "invalid expression/location syntax"
-msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-
-#: ch/parse.c:3262
-msgid "RECEIVE expression"
-msgstr ""
-
-#: ch/parse.c:3457
-msgid "there should not be a ';' here"
-msgstr ""
-
-#: ch/parse.c:3496
-#, fuzzy
-msgid "missing ELSE/ELSIF in IF expression"
-msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-
-#: ch/parse.c:3547
-#, fuzzy
-msgid "conditional expression not allowed inside parentheses"
-msgstr "¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤Ï´Ø¿ô¤ÎÆ⦤ǤΤߵö¤µ¤ì¤Þ¤¹"
-
-#: ch/parse.c:3551
-msgid "mode-less tuple not allowed inside parentheses"
-msgstr ""
-
-#. Z.200 doesn't allow mixed numbered and unnumbered set elements,
-#. but we can do it. Print a warning
-#: ch/parse.c:3664
-msgid "mixed numbered and unnumbered set elements is not standard"
-msgstr ""
-
-#: ch/parse.c:3667
-msgid "SET mode must define at least one named value"
-msgstr ""
-
-#: ch/parse.c:3766
-msgid "POS not allowed for ARRAY"
-msgstr ""
-
-#: ch/parse.c:3776
-msgid "STEP not allowed in field definition"
-msgstr ""
-
-#: ch/parse.c:3792
-#, fuzzy
-msgid "missing field name"
-msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:3801
-msgid "bad field name following ','"
-msgstr ""
-
-#: ch/parse.c:3861
-msgid "expected ':' in structure variant alternative"
-msgstr ""
-
-#: ch/parse.c:3912
-#, fuzzy
-msgid "missing field"
-msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ch/parse.c:4060
-#, fuzzy
-msgid "VARYING bit-strings not implemented"
-msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/parse.c:4121
-msgid "strings must be composed of chars"
-msgstr ""
-
-#: ch/parse.c:4171
-msgid "BUFFER modes may not be readonly"
-msgstr ""
-
-#: ch/parse.c:4178
-msgid "EVENT modes may not be readonly"
-msgstr ""
-
-#: ch/parse.c:4198
-#, fuzzy
-msgid "SIGNAL is not a valid mode"
-msgstr "\"%s\" ¤ÏÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/parse.c:4235
-#, fuzzy
-msgid "syntax error - missing mode"
-msgstr "'%s' ¥È¡¼¥¯¥ó¤Î½ê¤Çʸˡ¥¨¥é¡¼"
-
-#: ch/parse.c:4282
-msgid "syntax error - expected a module or end of file"
-msgstr ""
-
-#: ch/satisfy.c:58
-#, c-format
-msgid " `%s', which depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:90
-#, c-format
-msgid "cycle: `%s' depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:92
-#, fuzzy, c-format
-msgid " `%s'"
-msgstr "%s Æâ¤Î `%s':"
-
-#: ch/satisfy.c:151
-msgid "SYN of this mode not allowed"
-msgstr ""
-
-#: ch/satisfy.c:156
-#, fuzzy
-msgid "mode of SYN incompatible with value"
-msgstr "TI ¥Ä¡¼¥ë¸ß´¹¤Î¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-
-#: ch/satisfy.c:167
-msgid "SYN value outside range of its mode"
-msgstr ""
-
-#: ch/satisfy.c:176
-msgid "INIT string too large for mode"
-msgstr ""
-
-#: ch/satisfy.c:195
-#, fuzzy, c-format
-msgid "value of %s is not a valid constant"
-msgstr "`asm' ¤Î°ú¿ô¤¬Äê¿ôʸ»úÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó "
-
-#: ch/satisfy.c:226
-msgid "mode with non-value property in signal definition"
-msgstr ""
-
-#: ch/satisfy.c:403
-#, fuzzy, c-format
-msgid "undeclared identifier `%s'"
-msgstr "̵¸ú¤Ê¼±ÊÌ»Ò `%s'"
-
-#: ch/satisfy.c:456
-#, fuzzy
-msgid "RETURNS spec with invalid mode"
-msgstr "̵¸ú¤Ê°ú¿ô¤ò»ý¤Ã¤¿ #%s"
-
-#: ch/satisfy.c:520
-#, fuzzy
-msgid "operand to REF is not a mode"
-msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/satisfy.c:554
-msgid "field with non-value mode in variant structure not allowed"
-msgstr ""
-
-#: ch/satisfy.c:593
-msgid "buffer element mode must not have non-value property"
-msgstr ""
-
-#: ch/satisfy.c:602
-msgid "recordmode must not have the non-value property"
-msgstr ""
-
-#: ch/tasking.c:170 ch/tasking.c:218
-#, c-format
-msgid "tasking code %ld out of range for `%s'"
-msgstr ""
-
-#: ch/tasking.c:284
-#, c-format
-msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
-msgstr ""
-
-#: ch/tasking.c:325
-msgid "PROCESS may only be declared at module level"
-msgstr ""
-
-#: ch/tasking.c:549
-#, c-format
-msgid "process name %s never declared"
-msgstr ""
-
-#: ch/tasking.c:554
-msgid "you may only START a process, not a proc"
-msgstr ""
-
-#: ch/tasking.c:590
-msgid "SET expression not a location"
-msgstr ""
-
-#: ch/tasking.c:595
-msgid "SET location must be INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:632
-#, fuzzy, c-format
-msgid "too many arguments to process `%s'"
-msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:635
-#, fuzzy
-msgid "too many arguments to process"
-msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:640
-#, fuzzy, c-format
-msgid "too few arguments to process `%s'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:643
-#, fuzzy
-msgid "too few arguments to process"
-msgstr "´Ø¿ô¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:983
-msgid "COPY_NUMBER argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1007
-msgid "GEN_CODE argument must be a process or signal name"
-msgstr ""
-
-#: ch/tasking.c:1029
-msgid "GEN_INST parameter 2 must be an integer mode"
-msgstr ""
-
-#: ch/tasking.c:1050
-msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
-msgstr ""
-
-#: ch/tasking.c:1076
-#, fuzzy, c-format
-msgid "%s is not a declared process"
-msgstr "\"%s\" ¤Ï¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÂФ¹¤ëÀµ¾ï¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/tasking.c:1097
-msgid "PROC_TYPE argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1139
-msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location"
-msgstr ""
-
-#: ch/tasking.c:1289
-#, c-format
-msgid "SEND requires a SIGNAL; %s is not a SIGNAL name"
-msgstr ""
-
-#: ch/tasking.c:1314
-#, fuzzy, c-format
-msgid "too many values for SIGNAL `%s'"
-msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:1320
-#, fuzzy, c-format
-msgid "too few values for SIGNAL `%s'"
-msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:1398
-#, fuzzy
-msgid "signal sent without priority"
-msgstr "½Ò¸ì¤Î¤Ê¤¤¥¢¥µ¡¼¥·¥ç¥ó¤Ç¤¹"
-
-#: ch/tasking.c:1399 ch/tasking.c:2927
-msgid " and no default priority was set."
-msgstr ""
-
-#: ch/tasking.c:1400 ch/tasking.c:2777 ch/tasking.c:2928
-msgid " PRIORITY defaulted to 0"
-msgstr ""
-
-#: ch/tasking.c:1415
-msgid "SEND without a destination instance"
-msgstr ""
+msgid "Compile for v850e processor"
+msgstr "v850 ¥×¥í¥»¥Ã¥µÍѤ˥³¥ó¥Ñ¥¤¥ë¤¹¤ë"
-#: ch/tasking.c:1416
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
#, fuzzy
-msgid " and no destination process specified"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/tasking.c:1417
-msgid " for the signal"
-msgstr ""
-
-#. as our system doesn't allow that and Z.200 specifies it,
-#. we issue a warning
-#: ch/tasking.c:1436
-#, c-format
-msgid "SEND to ANY copy of process `%s'"
-msgstr ""
-
-#: ch/tasking.c:1441
-msgid "SEND TO must be an INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:1455
-msgid "SEND WITH must have a mode"
-msgstr ""
+msgid "Enable the use of the short load instructions"
+msgstr "DB Ì¿Îá¤Î»ÈÍѤòÍ­¸ú¤Ë¤¹¤ë"
-#: ch/tasking.c:1724
+#: config/v850/v850.h:180
#, fuzzy
-msgid "internal error: RECEIVE CASE stack invalid"
-msgstr "ÆâÉô¥¨¥é¡¼ - ̵¸ú¤Ê Utf8 ̾¤Ç¤¹"
-
-#: ch/tasking.c:1764 ch/tasking.c:2492
-msgid "SET requires INSTANCE location"
-msgstr ""
-
-#: ch/tasking.c:1843
-msgid "SIGNAL in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1844
-#, c-format
-msgid " a BUFFER name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1852
-#, c-format
-msgid "SIGNAL `%s' has no data fields"
-msgstr ""
-
-#: ch/tasking.c:1857
-#, c-format
-msgid "SIGNAL `%s' requires data fields"
-msgstr ""
-
-#: ch/tasking.c:1921
-#, c-format
-msgid "too few data fields provided for `%s'"
-msgstr ""
-
-#: ch/tasking.c:1924
-#, fuzzy, c-format
-msgid "too many data fields provided for `%s'"
-msgstr "`asm' Ãæ¤ÎÂåÂØ¥­¡¼¥ï¡¼¥É¤¬Â¿¤¹¤®¤Þ¤¹"
-
-#: ch/tasking.c:1947
-msgid "BUFFER in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1948
-#, c-format
-msgid " a SIGNAL name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1956
-msgid "BUFFER in RECEIVE CASE alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:1962
-msgid "buffer receive alternative requires only 1 defining occurrence"
-msgstr ""
+msgid "Do not use the callt instruction"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/tasking.c:2043
+#: config/v850/v850.h:187
#, fuzzy
-msgid "incompatible modes in receive buffer alternative"
-msgstr "f2c ¸ß´¹¥³¡¼¥É¤òÀ¸À®¤¹¤ëɬÍפ¬¤Ê¤¤"
-
-#: ch/tasking.c:2049
-msgid "defining occurrence in receive buffer alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:2086
-msgid "buffer receive alternative without `IN location'"
-msgstr ""
+msgid "Do not use registers r2 and r5"
+msgstr "sb ¥ì¥¸¥¹¥¿¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/tasking.c:2092
-msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location"
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
msgstr ""
-#: ch/tasking.c:2331
-msgid "RECEIVE CASE without alternatives"
-msgstr ""
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
+msgstr "switch ¥Æ¡¼¥Ö¥ë¤Ç 4 ¥Ð¥¤¥È¥¨¥ó¥È¥ê¤ò»ÈÍѤ¹¤ë"
-#: ch/tasking.c:2369
-msgid "CONTINUE requires an event location"
-msgstr ""
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
+msgstr "TDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-#: ch/tasking.c:2503 ch/tasking.c:2939
-msgid "PRIORITY must be of integer type"
-msgstr ""
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
+msgstr "SDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-#: ch/tasking.c:2581
-msgid "delay alternative must be an EVENT location"
-msgstr ""
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr "ZDA Îΰè¤Ë¤È¤Ã¤Æ˾¤Þ¤·¤¤ºÇÂç¥Ç¡¼¥¿¥µ¥¤¥º¤òÀßÄꤹ¤ë"
-#: ch/tasking.c:2636
-msgid "DELAY CASE without alternatives"
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
msgstr ""
-#: ch/tasking.c:2756
-#, fuzzy
-msgid "DELAY action requires an event location"
-msgstr "-ifile ¥ª¥×¥·¥ç¥ó¤Ë¤Ï -map ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹"
-
-#: ch/tasking.c:2767
-msgid "PRIORITY in DELAY action must be of integer type"
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
msgstr ""
-#: ch/tasking.c:2776
+#: config/xtensa/xtensa.c:1991
#, fuzzy
-msgid "DELAY action without priority."
-msgstr "½Ò¸ì¤Î¤Ê¤¤¥¢¥µ¡¼¥·¥ç¥ó¤Ç¤¹"
+msgid "invalid mask"
+msgstr "̵¸ú¤Ê #pragma %s ¤Ç¤¹"
-#: ch/tasking.c:2867
+#: config/xtensa/xtensa.c:2038
#, fuzzy
-msgid "send buffer action requires a BUFFER location"
-msgstr "-ifile ¥ª¥×¥·¥ç¥ó¤Ë¤Ï -map ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹"
-
-#: ch/tasking.c:2884
-msgid "there must be only 1 value for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2905
-msgid "convert failed for send buffer action"
-msgstr ""
+msgid "invalid address"
+msgstr "̵¸ú¤Ê¥³¡¼¥É¤Ç¤¹"
-#: ch/tasking.c:2911
+#: config/xtensa/xtensa.c:2063
#, fuzzy
-msgid "incompatible modes in send buffer action"
-msgstr "%s ¤Ë¸ß´¹À­¤Î¤Ê¤¤·¿"
-
-#: ch/tasking.c:2926
-msgid "buffer sent without priority"
-msgstr ""
-
-#: ch/tasking.c:2945
-msgid "WITH not allowed for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:2950
-msgid "TO not allowed for send buffer action"
-msgstr ""
-
-#: ch/tasking.c:3093
-#, c-format
-msgid "SEND requires a BUFFER; `%s' is not a BUFFER name"
-msgstr ""
-
-#: ch/tasking.c:3234
-msgid "non-integral max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3239
-msgid "non-constant max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3246
-msgid "max queue_size for EVENT/BUFFER is not positive"
-msgstr ""
-
-#: ch/timing.c:224
-msgid "absolute time value must be of mode TIME"
-msgstr ""
-
-#: ch/timing.c:281 ch/timing.c:364
-msgid "duration primitive value must be of mode DURATION"
-msgstr ""
-
-#: ch/tree.c:58
-msgid "string length > UPPER (UINT)"
-msgstr ""
-
-#: ch/tree.c:112
-msgid "can only build a powerset from a discrete mode"
-msgstr ""
+msgid "no register in address"
+msgstr "ÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾¤Ç¤¹: %s"
-#: ch/tree.c:124
+#: config/xtensa/xtensa.c:2071
#, fuzzy
-msgid "non-constant bitstring size invalid"
-msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
+msgid "address offset not a constant"
+msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: ch/tree.c:126
+#: config/xtensa/xtensa.c:2794
#, fuzzy
-msgid "non-constant powerset size invalid"
-msgstr "½é´ü²½»ÒÆâ¤ËÈóÄê¿ô¤ÎÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬¤¢¤ê¤Þ¤¹"
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "8 ¥Ó¥Ã¥ÈÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: ch/typeck.c:83
-msgid "array or string index is a mode (instead of a value)"
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
msgstr ""
-#: ch/typeck.c:114
-#, fuzzy
-msgid "index is not an integer expression"
-msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ"
-
-#: ch/typeck.c:122
+#: config/xtensa/xtensa.h:116
#, fuzzy
-msgid "index not compatible with index mode"
-msgstr "TI ¥Ä¡¼¥ë¸ß´¹¤Î¥³¡¼¥É¤òȯ¹Ô¤¹¤ë"
-
-#. should never happen
-#: ch/typeck.c:132
-#, fuzzy
-msgid "index is not discrete"
-msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/typeck.c:196
-msgid "possible internal error - slice argument is neither referable nor constant"
-msgstr ""
-
-#: ch/typeck.c:285
-msgid "bit array slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:325
-msgid "bitstring slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:338
-msgid "slice operation on non-array, non-bitstring value not supported"
-msgstr ""
+msgid "Do not use the Xtensa code density option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:390 ch/typeck.c:441
-msgid "can only take slice of array or string"
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
msgstr ""
-#: ch/typeck.c:455
+#: config/xtensa/xtensa.h:120
#, fuzzy
-msgid "slice length is not an integer"
-msgstr "switch ¤ÎÆâÍƤ¬À°¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/typeck.c:488
-#, fuzzy
-msgid "slice length out-of-range"
-msgstr "¹ÔÈֹ椬Èϰϳ°¤Ç¤¹"
-
-#: ch/typeck.c:543
-#, fuzzy
-msgid "too many index expressions"
-msgstr "¶õ¤Î #if ¼°¤Ç¤¹"
-
-#: ch/typeck.c:595
-#, fuzzy
-msgid "array index is not discrete"
-msgstr "ÈóÇÛÎó¤Î½é´ü²½»Ò¤ËÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹¤¬»È¤ï¤ì¤Þ¤·¤¿"
-
-#: ch/typeck.c:675
-#, fuzzy
-msgid "invalid compound index for bitstring mode"
-msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
+msgid "Do not use the Xtensa MAC16 option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:1079
-msgid "conversions from variable_size value"
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
msgstr ""
-#: ch/typeck.c:1084
+#: config/xtensa/xtensa.h:124
#, fuzzy
-msgid "conversions to variable_size mode"
-msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-
-#: ch/typeck.c:1098
-#, fuzzy
-msgid "cannot convert to float"
-msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/typeck.c:1103
-#, fuzzy
-msgid "cannot convert float to this mode"
-msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
+msgid "Do not use the Xtensa MUL16 option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:1130
-msgid "OVERFLOW in expression conversion"
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
msgstr ""
-#: ch/typeck.c:1159
-#, fuzzy
-msgid "overflow (not inside function)"
-msgstr "À°¿ô¤Ø¤ÎÀÚ¤êµÍ¤á¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿"
-
-#: ch/typeck.c:1161
+#: config/xtensa/xtensa.h:128
#, fuzzy
-msgid "possible overflow (not inside function)"
-msgstr "`%s' ¤¬¤³¤³¤Ç¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (´Ø¿ô¤ÎÃæ¤Ç¤Ï¤Ê¤¤)"
-
-#: ch/typeck.c:1166
-msgid "expression will always cause OVERFLOW"
-msgstr ""
-
-#: ch/typeck.c:1199
-msgid "not implemented: constant conversion from that kind of expression"
-msgstr ""
-
-#: ch/typeck.c:1205
-msgid "not implemented: constant conversion to that kind of mode"
-msgstr ""
+msgid "Do not use the Xtensa MUL32 option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:1216
-msgid "non-standard, non-portable value conversion"
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
msgstr ""
-#: ch/typeck.c:1222
-#, fuzzy
-msgid "location conversion between differently-sized modes"
-msgstr "Â礭¤µ¤Î°Û¤Ê¤ë¥Ù¥¯¥È¥ëÃÍƱ»Î¤ÎÊÑ´¹¤Ï¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/typeck.c:1224
+#: config/xtensa/xtensa.h:136
#, fuzzy
-msgid "unsupported value conversion"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹"
-
-#: ch/typeck.c:1272
-msgid "operand to bin must be a non-negative integer literal"
-msgstr ""
-
-#: ch/typeck.c:1288
-#, c-format
-msgid "size %d of BIN too big - no such integer mode"
-msgstr ""
-
-#: ch/typeck.c:1302
-msgid "BIN in pass 2"
-msgstr ""
-
-#: ch/typeck.c:1335
-msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET"
-msgstr ""
-
-#: ch/typeck.c:2108
-msgid "internal error in chill_root_resulting_mode"
-msgstr ""
+msgid "Do not use the Xtensa NSA option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:2367
-msgid "string lengths not equal"
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
msgstr ""
-#: ch/typeck.c:2382
+#: config/xtensa/xtensa.h:140
#, fuzzy
-msgid "can't do ARRAY assignment - too large"
-msgstr "Í׵ᤵ¤ì¤¿¥¢¥é¥¤¥ó¥á¥ó¥È¤¬Â礭¤¹¤®¤Þ¤¹"
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:2400
-msgid "rhs of array assignment is not addressable"
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
msgstr ""
-#: ch/typeck.c:2577
+#: config/xtensa/xtensa.h:144
#, fuzzy
-msgid "non-constant expression for BIN"
-msgstr "Äê¿ô¼°¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/typeck.c:2582
-msgid "expression for BIN must not be negative"
-msgstr ""
+msgid "Do not use the Xtensa SEXT option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:2587
-msgid "cannot process BIN (>32)"
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
msgstr ""
-#: ch/typeck.c:2603
-#, fuzzy
-msgid "bounds of range are not compatible"
-msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-
-#: ch/typeck.c:2612
-#, fuzzy
-msgid "negative string length"
-msgstr "ʸ»úÎóÄê¿ô¤¬½ªÎ»¤·¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/typeck.c:2649
+#: config/xtensa/xtensa.h:148
#, fuzzy
-msgid "range's lower bound and parent mode don't match"
-msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¡¢°ú¿ô %d ¤¬°ìÃפ·¤Þ¤»¤ó"
-
-#: ch/typeck.c:2654
-msgid "range's upper bound and parent mode don't match"
-msgstr ""
-
-#: ch/typeck.c:2663
-msgid "making range from non-mode"
-msgstr ""
+msgid "Do not use the Xtensa boolean register option"
+msgstr "ʬ³äÌ¿Îá¤ò»ÈÍѤ·¤Ê¤¤"
-#: ch/typeck.c:2669
+#: config/xtensa/xtensa.h:150
#, fuzzy
-msgid "floating point ranges"
-msgstr "ÉâÆ°¾®¿ôÅÀ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ch/typeck.c:2677
-msgid "range mode has non-constant limits"
-msgstr ""
-
-#: ch/typeck.c:2686
-msgid "range's high bound < mode's low bound"
-msgstr ""
-
-#: ch/typeck.c:2691
-msgid "range's high bound > mode's high bound"
-msgstr ""
-
-#: ch/typeck.c:2696
-msgid "range mode high bound < range mode low bound"
-msgstr ""
-
-#: ch/typeck.c:2701
-msgid "range's low bound < mode's low bound"
-msgstr ""
-
-#: ch/typeck.c:2706
-msgid "range's low bound > mode's high bound"
-msgstr ""
+msgid "Use the Xtensa floating-point unit"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ¹¤ë"
-#: ch/typeck.c:2814
+#: config/xtensa/xtensa.h:152
#, fuzzy
-msgid "stepsize in STEP must be an integer constant"
-msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
-
-#: ch/typeck.c:2818
-msgid "stepsize in STEP must be > 0"
-msgstr ""
-
-#: ch/typeck.c:2824
-msgid "stepsize in STEP must be the natural width of the array element mode"
-msgstr ""
+msgid "Do not use the Xtensa floating-point unit"
+msgstr "¥Ï¡¼¥É¥¦¥§¥¢ÉâÆ°¾®¿ôÅÀ¤òÍøÍѤ·¤Ê¤¤"
-#: ch/typeck.c:2830 ch/typeck.c:3131
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
#, fuzzy
-msgid "starting word in POS must be an integer constant"
-msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
-
-#: ch/typeck.c:2834 ch/typeck.c:3138
-msgid "starting word in POS must be >= 0"
-msgstr ""
-
-#: ch/typeck.c:2836
-msgid "starting word in POS within STEP must be 0"
-msgstr ""
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: ch/typeck.c:2848 ch/typeck.c:3155
+#: config/xtensa/xtensa.h:172
#, fuzzy
-msgid "starting bit in POS must be an integer constant"
-msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/typeck.c:2854
-msgid "starting bit in POS within STEP must be 0"
-msgstr ""
-
-#: ch/typeck.c:2858 ch/typeck.c:3163
-msgid "starting bit in POS must be >= 0"
-msgstr ""
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "ÉâÆ°¾®¿ô¤Î¾è»»/²Ã»»Ì¿Îá¤òÀ¸À®¤¹¤ë"
-#: ch/typeck.c:2866 ch/typeck.c:3171
-msgid "starting bit in POS must be < the width of a word"
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
msgstr ""
-#: ch/typeck.c:2880 ch/typeck.c:3185
+#: config/xtensa/xtensa.h:176
#, fuzzy
-msgid "length in POS must be an integer constant"
-msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr "update Ì¿Îá¤È°ì½ï¤Ë¥í¡¼¥É/¥¹¥È¥¢Ì¿Îá¤òÀ¸À®¤·¤Ê¤¤"
-#: ch/typeck.c:2887 ch/typeck.c:3192
-msgid "length in POS must be > 0"
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
msgstr ""
-#: ch/typeck.c:2894 ch/typeck.c:3205
-#, fuzzy
-msgid "end bit in POS must be an integer constant"
-msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
-
-#: ch/typeck.c:2903 ch/typeck.c:3214
-msgid "end bit in POS must be >= the start bit"
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
msgstr ""
-#: ch/typeck.c:2909 ch/typeck.c:3219
-msgid "end bit in POS must be < the width of a word"
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
msgstr ""
-#: ch/typeck.c:2921
-msgid "the length specified on POS within STEP must be the natural length of the array element type"
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
msgstr ""
-#: ch/typeck.c:2926
-msgid "step size in STEP must be >= the length in POS"
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
msgstr ""
-#: ch/typeck.c:2952
-#, fuzzy
-msgid "array index must be a range, not a single integer"
-msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ch/typeck.c:2958
+#: config/xtensa/xtensa.h:188
#, fuzzy
-msgid "array index is not a discrete mode"
-msgstr "ÇÛÎó¤Îź»ú¤¬À°¿ô·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+msgid "Use direct CALLn instructions for fast calls"
+msgstr "ÁȤ߹þ¤ß¤Î½ü»»Ì¿Îá¤ò»ÈÍѤ¹¤ë"
-#: ch/typeck.c:3229
-msgid "the length specified on POS must be the natural length of the field type"
-msgstr ""
-
-#: ch/typeck.c:3238
-msgid "STRUCT fields must be layed out in monotonically increasing order"
-msgstr ""
-
-#: ch/typeck.c:3301
-msgid "if one field has a POS layout, then all fields must have a POS layout"
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
msgstr ""
-#: ch/typeck.c:3444
-#, fuzzy
-msgid "parameterized structures not implemented"
-msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ch/typeck.c:3449
-#, fuzzy
-msgid "invalid parameterized type"
-msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-
-#: cp/call.c:268 cp/init.c:1637
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr ""
-#: cp/call.c:277
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr ""
-#: cp/call.c:286
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr ""
-#: cp/call.c:294
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr ""
-#: cp/call.c:392
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
msgstr "¤³¤³¤Ç¤Ï¥á¥ó¥Ð´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤¬¤Ç¤­¤Þ¤»¤ó"
-#: cp/call.c:522
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó"
-#: cp/call.c:529
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr ""
-#: cp/call.c:2338
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2343
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2347
+#: cp/call.c:2546
#, fuzzy
msgid "%s %D(%T) <built-in>"
msgstr "<ÁȤ߹þ¤ß>"
-#: cp/call.c:2351
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2353
+#: cp/call.c:2552
#, fuzzy
msgid "%s %+#D%s"
msgstr "%s: %s"
-#: cp/call.c:2511
-msgid "no viable candidates"
-msgstr ""
-
-#: cp/call.c:2525
+#: cp/call.c:2726
#, fuzzy
msgid "conversion from `%T' to `%T' is ambiguous"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
-#: cp/call.c:2642
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "`%s' ¤Ï¤½¤Î·¿¤ÎÃͤè¤ê¤â¶¹¤¤¤Ç¤¹"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr ""
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/call.c:2933
msgid "no matching function for call to `%D(%A)'"
msgstr ""
-#: cp/call.c:2653 cp/call.c:4639
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2680
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2749
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr ""
-#: cp/call.c:2759
+#: cp/call.c:3046
#, fuzzy
msgid "call of `(%T) (%A)' is ambiguous"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
-#: cp/call.c:2794
-msgid "%s for `%T ? %T : %T' operator"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
msgstr ""
-#: cp/call.c:2799
-#, fuzzy
-msgid "%s for `%T %s' operator"
-msgstr "%s ¤¬ `%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr ""
-#: cp/call.c:2802
-msgid "%s for `%T [%T]' operator"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/call.c:2807
-#, fuzzy
-msgid "%s for `%T %s %T' operator"
-msgstr "%s ¤¬ `%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr ""
-#: cp/call.c:2810
-#, fuzzy
-msgid "%s for `%s %T' operator"
-msgstr "%s ¤¬ `%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr ""
-#: cp/call.c:2902
+#: cp/call.c:3191
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ ¤ÏÃæ´Ö¹à¤¬¾Êά¤µ¤ì¤¿ ?: ¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/call.c:2961
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr ""
-#: cp/call.c:2994 cp/call.c:3194
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3147
+#: cp/call.c:3428
#, fuzzy
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr "¾ò·ï¼°¤Ç¤Î·¿¤ÎÁȹç¤ï¤»¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: cp/call.c:3154
+#: cp/call.c:3435
#, fuzzy
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "¾ò·ï¼°¤ËÉä¹çÉÕ¤­·¿¤ÈÉä¹ç̵¤··¿¤È¤¬¤¢¤ê¤Þ¤¹"
-#: cp/call.c:3235
+#: cp/call.c:3516
#, fuzzy
msgid "`%D' must be declared before use"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/call.c:3399
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr ""
-#: cp/call.c:3446
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr ""
-#: cp/call.c:3448
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr ""
-#: cp/call.c:3475
+#: cp/call.c:3782
#, fuzzy
msgid "comparison between `%#T' and `%#T'"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤È¤ÎÈæ³Ó¤Ç¤¹"
-#: cp/call.c:3708
+#: cp/call.c:4021
#, fuzzy
msgid "no suitable `operator delete' for `%T'"
msgstr "¤¢¤ê¤¨¤Ê¤¤±é»»»Ò '%s'"
-#: cp/call.c:3727
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr ""
-#: cp/call.c:3729
+#: cp/call.c:4042
msgid "`%+#D' is protected"
msgstr ""
-#: cp/call.c:3731
+#: cp/call.c:4044
msgid "`%+#D' is inaccessible"
msgstr ""
-#: cp/call.c:3732
+#: cp/call.c:4045
msgid "within this context"
msgstr ""
-#: cp/call.c:3774
+#: cp/call.c:4088
#, fuzzy
msgid "invalid conversion from `%T' to `%T'"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/call.c:3776 cp/call.c:3915 cp/call.c:3917
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
#, fuzzy
msgid " initializing argument %P of `%D'"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: cp/call.c:3839 cp/call.c:3843
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr ""
-#: cp/call.c:3849 cp/call.c:3852
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:3986
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4011
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr ""
-#: cp/call.c:4153
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr ""
-#: cp/call.c:4401
+#: cp/call.c:4542
+msgid "`%T' is not an accessible base of `%T'"
+msgstr ""
+
+#: cp/call.c:4786
#, fuzzy
msgid "could not find class$ field in java interface type `%T'"
msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë´ðÄ쥯¥é¥¹¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/call.c:4502 cp/typeck.c:2079
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr ""
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "virtual ¤ÊÈ󥯥饹´Ø¿ô `%s'"
-#: cp/call.c:4628
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr ""
-#: cp/call.c:4658
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
msgstr ""
-#: cp/call.c:5271
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr ""
-#: cp/call.c:5273 cp/decl2.c:4489
+#: cp/call.c:5706 cp/decl2.c:4154
#, fuzzy
msgid " in call to `%D'"
msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/call.c:5322 cp/call.c:5447
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr ""
-#: cp/call.c:5323
+#: cp/call.c:5756
#, fuzzy
msgid " for conversion from `%T' to `%T'"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/call.c:5325
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:5449
-msgid " because worst conversion for the former is better than worst conversion for the latter"
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
msgstr ""
-#: cp/call.c:5565 cp/call.c:5586
+#: cp/call.c:5996
#, fuzzy
msgid "could not convert `%E' to `%T'"
msgstr "0x%l.8x ¤òÎΰè¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/class.c:284
-msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
msgstr ""
-#: cp/class.c:1010
-msgid "`%#D' and `%#D' cannot be overloaded"
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr ""
+
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr ""
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1021
-msgid "`%D' has already been declared in `%T'"
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
msgstr ""
-#: cp/class.c:1102
+#: cp/class.c:1076
#, fuzzy
msgid "duplicate enum value `%D'"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: cp/class.c:1105
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr ""
-#: cp/class.c:1112
+#: cp/class.c:1086
#, fuzzy
msgid "duplicate nested type `%D'"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: cp/class.c:1123
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr ""
-#: cp/class.c:1127
+#: cp/class.c:1101
#, fuzzy
msgid "duplicate member `%D'"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: cp/class.c:1170
+#: cp/class.c:1144
#, fuzzy
msgid "conflicting access specifications for method `%D', ignored"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤ËÂФ¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò¤¬¶¥¹ç¤·¤¿¤¿¤á¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:1172
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤ËÂФ¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò¤¬¶¥¹ç¤·¤¿¤¿¤á¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:1215
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr ""
-#: cp/class.c:1221
+#: cp/class.c:1199
#, fuzzy
msgid "`%D' invalid in `%T'"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `%s'"
-#: cp/class.c:1229
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr ""
-#: cp/class.c:1261 cp/class.c:1269
+#: cp/class.c:1239 cp/class.c:1247
#, fuzzy
msgid "`%D' invalid in `%#T'"
msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó `%s'"
-#: cp/class.c:1262
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr ""
-#: cp/class.c:1270
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr ""
-#: cp/class.c:1342
+#: cp/class.c:1320
#, fuzzy
msgid "base class `%#T' has a non-virtual destructor"
msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: cp/class.c:1362
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr ""
-#: cp/class.c:1948
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr ""
-#: cp/class.c:1962
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:2005
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:2126 cp/class.c:5030
+#: cp/class.c:2090 cp/class.c:5276
#, fuzzy
msgid "redefinition of `%#T'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:2127
+#: cp/class.c:2091
#, fuzzy
msgid "previous definition of `%#T'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:2457
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2830
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr ""
-#: cp/class.c:2831
+#: cp/class.c:2713
msgid " by `%D'"
msgstr ""
-#: cp/class.c:2873
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr ""
-#: cp/class.c:2878 cp/decl2.c:1898
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2884 cp/decl2.c:1904
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:2887 cp/decl2.c:1906
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:3035
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
#, fuzzy
msgid "bit-field `%#D' with non-integral type"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/class.c:3055
+#: cp/class.c:2978
#, fuzzy
msgid "bit-field `%D' width not an integer constant"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/class.c:3061
+#: cp/class.c:2984
#, fuzzy
msgid "negative width in bit-field `%D'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹"
-#: cp/class.c:3066
+#: cp/class.c:2989
#, fuzzy
msgid "zero width for bit-field `%D'"
msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬ 0 ¤Ç¤¹"
-#: cp/class.c:3072
+#: cp/class.c:2995
#, fuzzy
msgid "width of `%D' exceeds its type"
msgstr "`%s' ¤ÎÉý¤Ï¤½¤Î·¿¤Î¥µ¥¤¥º¤òĶ¤¨¤Æ¤¤¤Þ¤¹"
-#: cp/class.c:3081
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr ""
-#: cp/class.c:3164
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr ""
-#: cp/class.c:3167
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr ""
-#: cp/class.c:3170
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:3197
+#: cp/class.c:3121
#, fuzzy
msgid "multiple fields in union `%T' initialized"
msgstr "¶¦ÍÑÂνé´ü²½»ÒÆâ¤ÎÍ×ÁǤ¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/class.c:3318
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr ""
-#: cp/class.c:3324
+#: cp/class.c:3240
#, fuzzy
msgid "field `%D' invalidly declared function type"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/class.c:3331
+#: cp/class.c:3247
#, fuzzy
msgid "field `%D' invalidly declared method type"
msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/class.c:3337
+#: cp/class.c:3253
#, fuzzy
msgid "field `%D' invalidly declared offset type"
msgstr "¥Ñ¥é¥á¥¿¤¬¥ª¥Õ¥»¥Ã¥È¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
#. Unions cannot have static members.
-#: cp/class.c:3355
+#: cp/class.c:3271
#, fuzzy
msgid "field `%D' declared static in union"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/class.c:3381
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3412
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3427
+#: cp/class.c:3349
msgid "field `%#D' with same name as class"
msgstr ""
-#: cp/class.c:3445
+#: cp/class.c:3367
#, fuzzy
msgid "`%#T' has pointer data members"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/class.c:3449
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr ""
-#: cp/class.c:3451
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3454
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3922
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
#, fuzzy
msgid "initializer specified for non-virtual method `%D'"
msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/class.c:4706
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4776
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/class.c:5193
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
#, fuzzy
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-#: cp/class.c:5277
+#: cp/class.c:5516
#, fuzzy
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "¹½Ê¸²òÀϤ¬¹½Â¤ÂΤνª¤ê¤Ëº¹¤·³Ý¤«¤ê¤Þ¤·¤¿¤¬¡¢Á°¤Î¥¨¥é¡¼¤Î¤»¤¤¤Çʸ̮¤ò¸«¼º¤¤¤Þ¤·¤¿"
-#: cp/class.c:5734
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr "¸À¸ìʸ»úÎó `\"%s\"' ¤Ïǧ¼±¤µ¤ì¤Þ¤»¤ó"
-#: cp/class.c:5830
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr ""
-#: cp/class.c:5951
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr ""
-#: cp/class.c:5974
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr ""
-#: cp/class.c:6000
+#: cp/class.c:6252
#, fuzzy
msgid "assuming pointer to member `%D'"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/class.c:6003
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
msgstr ""
-#: cp/class.c:6047 cp/class.c:6215 cp/class.c:6222
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr "ÉÔ½½Ê¬¤Ê·¿¾ðÊó"
-#: cp/class.c:6056
+#: cp/class.c:6315
#, fuzzy
msgid "argument of type `%T' does not match `%T'"
msgstr "²¾°ú¿ô `%s' ¤Ï¥×¥í¥È¥¿¥¤¥×¤Ë°ìÃפ·¤Þ¤»¤ó"
-#: cp/class.c:6199
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
@@ -16307,21 +14688,15 @@ msgstr "¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¤Ê¤¤·¿¤ËÂФ¹¤ë̵¸ú¤ÊÁàºî¤Ç¤¹"
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6450 cp/decl.c:1011 cp/decl.c:3159 cp/pt.c:1839
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
#, fuzzy
msgid "declaration of `%#D'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/class.c:6451
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr ""
-#. XXX Not i18n clean.
-#: cp/cp-tree.h:3790
-#, c-format
-msgid "%s is deprecated, please see the documentation for details"
-msgstr ""
-
#: cp/cvt.c:88
#, fuzzy
msgid "can't convert from incomplete type `%T' to `%T'"
@@ -16336,241 +14711,278 @@ msgstr ""
msgid "converting from `%T' to `%T'"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr ""
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
#, fuzzy
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/cvt.c:526
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr ""
-#: cp/cvt.c:544
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
msgstr ""
-#: cp/cvt.c:573
+#: cp/cvt.c:551
#, fuzzy
msgid "cannot convert type `%T' to type `%T'"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/cvt.c:690
+#: cp/cvt.c:683
#, fuzzy
msgid "conversion from `%#T' to `%#T'"
msgstr "NaN ¤«¤éÀ°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/cvt.c:702
+#: cp/cvt.c:695
#, fuzzy
msgid "`%#T' used where a `%T' was expected"
msgstr "Ê£ÁÇ¿ô·¿¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/cvt.c:719
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr ""
-#: cp/cvt.c:739
+#: cp/cvt.c:732
#, fuzzy
msgid "`%#T' used where a floating point value was expected"
msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬¤¢¤ë¤Ù¤­²Õ½ê¤Ç¡¢¥Ý¥¤¥ó¥¿Ãͤ¬»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/cvt.c:794
+#: cp/cvt.c:779
#, fuzzy
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "Èó¥¹¥«¥é¡¼·¿¤Ø¤ÎÊÑ´¹¤¬Í׵ᤵ¤ì¤Þ¤¹"
-#: cp/cvt.c:879
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:882
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:898
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr ""
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:918
+#: cp/cvt.c:904
#, fuzzy, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "À©¸æ¤¬Èó void ´Ø¿ô¤Î½ª¤ê¤ËÅþ㤷¤Þ¤·¤¿"
#. Only warn when there is no &.
-#: cp/cvt.c:923
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr ""
-#: cp/cvt.c:1061
+#: cp/cvt.c:1039
#, fuzzy
msgid "converting NULL to non-pointer type"
msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
-#: cp/cvt.c:1137
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
msgstr ""
-#: cp/cvt.c:1139
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr ""
-#: cp/decl.c:1012 cp/decl.c:3259
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
#, fuzzy
msgid "conflicts with previous declaration `%#D'"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/decl.c:1201
+#: cp/decl.c:1467
#, fuzzy
msgid "label `%D' used but not defined"
msgstr "¥é¥Ù¥ë `%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl.c:1206
+#: cp/decl.c:1472
#, fuzzy
msgid "label `%D' defined but not used"
msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl.c:2286
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr ""
-#: cp/decl.c:3069 cp/decl.c:3457
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
#, fuzzy
msgid "previous declaration of `%D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3146 cp/decl.c:3181
+#: cp/decl.c:3366 cp/decl.c:3404
#, fuzzy
msgid "shadowing %s function `%#D'"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:3155
+#: cp/decl.c:3375
#, fuzzy
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr "¥é¥¤¥Ö¥é¥ê´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3160
+#: cp/decl.c:3380
#, fuzzy
msgid "conflicts with built-in declaration `%#D'"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3176 cp/decl.c:3269 cp/decl.c:3285
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
#, fuzzy
msgid "new declaration `%#D'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3177
+#: cp/decl.c:3400
#, fuzzy
msgid "ambiguates built-in declaration `%#D'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3233
+#: cp/decl.c:3464
#, fuzzy
msgid "`%#D' redeclared as different kind of symbol"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3236
+#: cp/decl.c:3467
#, fuzzy
msgid "previous declaration of `%#D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3258
+#: cp/decl.c:3489
#, fuzzy
msgid "declaration of template `%#D'"
msgstr "`enum %s' ¤ÎºÆÀë¸À"
-#: cp/decl.c:3270 cp/decl.c:3286
+#: cp/decl.c:3505 cp/decl.c:3521
#, fuzzy
msgid "ambiguates old declaration `%#D'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3278
+#: cp/decl.c:3513
#, fuzzy
msgid "declaration of C function `%#D' conflicts with"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÀë¸À¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: cp/decl.c:3280
+#: cp/decl.c:3515
#, fuzzy
msgid "previous declaration `%#D' here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3296
+#: cp/decl.c:3533
#, fuzzy
msgid "conflicting types for `%#D'"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: cp/decl.c:3297
+#: cp/decl.c:3534
#, fuzzy
msgid "previous declaration as `%#D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3340
+#: cp/decl.c:3577
#, fuzzy
msgid "`%#D' previously defined here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3341
+#: cp/decl.c:3578
#, fuzzy
msgid "`%#D' previously declared here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3349
+#: cp/decl.c:3587
#, fuzzy
msgid "prototype for `%#D'"
msgstr "`%s' ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:3350
+#: cp/decl.c:3588
#, fuzzy
msgid "follows non-prototype definition here"
msgstr "Èó¥×¥í¥È¥¿¥¤¥×ÄêµÁ¤¬¤³¤³¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:3362
+#: cp/decl.c:3600
#, fuzzy
msgid "previous declaration of `%#D' with %L linkage"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3364
+#: cp/decl.c:3602
#, fuzzy
msgid "conflicts with new declaration with %L linkage"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:3389 cp/decl.c:3397
+#: cp/decl.c:3625 cp/decl.c:3632
#, fuzzy
msgid "default argument given for parameter %d of `%#D'"
msgstr "¥Þ¥¯¥í `%s' ¤Ë°ú¿ô¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3391 cp/decl.c:3399
+#: cp/decl.c:3627 cp/decl.c:3634
#, fuzzy
msgid "after previous specification in `%#D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:3408
+#: cp/decl.c:3643
#, fuzzy
msgid "`%#D' was used before it was declared inline"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤ÎÁ°¤Ë¥×¥í¥È¥¿¥¤¥×¤Ê¤·¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3410
+#: cp/decl.c:3645
#, fuzzy
msgid "previous non-inline declaration here"
msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
-#: cp/decl.c:3456
+#: cp/decl.c:3699
#, fuzzy
msgid "redundant redeclaration of `%D' in same scope"
msgstr "`%s' ¤Î¾éĹ¤ÊºÆÀë¸À¤¬Æ±°ì¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:3539
+#: cp/decl.c:3780
#, fuzzy, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: cp/decl.c:3541
+#: cp/decl.c:3782
#, fuzzy, c-format
msgid "than previous declaration `%F'"
msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
@@ -16583,16 +14995,16 @@ msgstr "`%s' ¤ÎÁ°ÊýÀë¸À¤¬¤¢¤ê¤Þ¤»¤ó"
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3666
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr ""
-#: cp/decl.c:3911
+#: cp/decl.c:4187
#, fuzzy
msgid "`%#D' used prior to declaration"
msgstr "`%s' ¤ÏÀë¸À¤è¤ê¤âÀè¤Ë»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3942
+#: cp/decl.c:4218
#, fuzzy
msgid "redeclaration of `wchar_t' as `%T'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
@@ -16603,310 +15015,332 @@ msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:3970
+#: cp/decl.c:4246
#, fuzzy
msgid "invalid redeclaration of `%D'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:3971
+#: cp/decl.c:4247
msgid "as `%D'"
msgstr ""
-#: cp/decl.c:4061
+#: cp/decl.c:4337
#, fuzzy
msgid "previous external decl of `%#D'"
msgstr "Á°Êý¤Î `%s' ¤Î³°ÉôÀë¸À"
-#: cp/decl.c:4102
+#: cp/decl.c:4378
#, fuzzy
msgid "`%D' was previously implicitly declared to return `int'"
msgstr "`%s' ¤ÏÁ°Êý¤Ç°ÅÌÛŪ¤Ë `int' ¤òÊÖ¤¹¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:4162
+#: cp/decl.c:4438
#, fuzzy
msgid "extern declaration of `%#D' doesn't match"
msgstr "`%s' ¤Îextern Àë¸À¤Ï¥°¥í¡¼¥Ð¥ë¤Î¤½¤ì¤È°ìÃפ·¤Þ¤»¤ó"
-#: cp/decl.c:4163
+#: cp/decl.c:4439
#, fuzzy
msgid "global declaration `%#D'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:4197
+#: cp/decl.c:4472
#, fuzzy
msgid "declaration of `%#D' shadows a parameter"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:4217
+#: cp/decl.c:4492
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
msgstr "`%s' ¤ÎÀë¸À¤Ë¤è¤ê `this' ¤Î¥á¥ó¥Ð¤¬Ê¤¤¤±£¤µ¤ì¤Þ¤¹"
-#: cp/decl.c:4582
+#: cp/decl.c:4889
#, fuzzy
msgid "`%#D' hides constructor for `%#T'"
msgstr "`%#D' ¤Î¤¿¤á¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬É¬ÍפǤ¹"
-#: cp/decl.c:4597
+#: cp/decl.c:4904
#, fuzzy
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/decl.c:4609
+#: cp/decl.c:4916
#, fuzzy
msgid "previous non-function declaration `%#D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:4610
+#: cp/decl.c:4917
#, fuzzy
msgid "conflicts with function declaration `%#D'"
msgstr "`%s' ¤ÎÀë¸À¤¬Ì·½â¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:4700
+#: cp/decl.c:5007
#, fuzzy
msgid "implicit declaration of function `%#D'"
msgstr "´Ø¿ô `%s' ¤Î°ÅÌÛ¤ÎÀë¸À"
-#: cp/decl.c:4858
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr "¥é¥Ù¥ë `%s' ¤¬´Ø¿ô¤Î³°Â¦¤Î²¿¤«¤ò»²¾È¤·¤Þ¤·¤¿"
-#: cp/decl.c:4961 cp/decl.c:4985 cp/decl.c:5078
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
#, fuzzy
msgid "jump to label `%D'"
msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:4963 cp/decl.c:4987
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr "case ¥é¥Ù¥ë¤Ë¥¸¥ã¥ó¥×¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:4971
+#: cp/decl.c:5280
#, fuzzy
msgid " crosses initialization of `%#D'"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/decl.c:4974 cp/decl.c:5094
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr ""
-#: cp/decl.c:4994 cp/decl.c:5098
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr " try ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹"
#. Can't skip init of __exception_info.
-#: cp/decl.c:4996 cp/decl.c:5090 cp/decl.c:5100
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr " catch ¥Ö¥í¥Ã¥¯¤ËÆþ¤ê¤Þ¤¹"
-#: cp/decl.c:5079
+#: cp/decl.c:5388
msgid " from here"
msgstr " ¤³¤³¤«¤é"
-#: cp/decl.c:5092
+#: cp/decl.c:5401
#, fuzzy
msgid " skips initialization of `%#D'"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/decl.c:5127
+#: cp/decl.c:5437
msgid "label named wchar_t"
msgstr ""
-#: cp/decl.c:5131
+#: cp/decl.c:5440
#, fuzzy
msgid "duplicate label `%D'"
msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-#: cp/decl.c:5216
+#: cp/decl.c:5525
#, fuzzy, c-format
msgid "case label `%E' not within a switch statement"
msgstr "case ¥é¥Ù¥ë¤¬ switch ʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5349 cp/decl.c:5369
+#: cp/decl.c:5704 cp/decl.c:5723
msgid "`%#D' redeclared as %C"
msgstr ""
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5458
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
#, fuzzy
msgid "invalid use of `%D'"
msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-#: cp/decl.c:5499
+#: cp/decl.c:5852
#, fuzzy
msgid "`%D::%D' is not a template"
msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:5511
+#: cp/decl.c:5869
msgid "`%D' undeclared in namespace `%D'"
msgstr ""
-#: cp/decl.c:5645
+#: cp/decl.c:6002
msgid "`%D' used without template parameters"
msgstr ""
-#: cp/decl.c:5656 cp/decl.c:5672 cp/decl.c:5743
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5690 cp/decl.c:5705
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
#, fuzzy
msgid "no type named `%#T' in `%#T'"
msgstr "`asm' Ãæ¤ËÉÔÌÀ¤Ê¥ì¥¸¥¹¥¿Ì¾ `%s' ¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:5922
+#: cp/decl.c:6329
#, fuzzy
msgid "lookup of `%D' finds `%#D'"
msgstr "`%s' ¤Î̾Á°°ú¤­¤ÏÊѹ¹¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:5924
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr ""
-#: cp/decl.c:5926
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr ""
-#: cp/decl.c:6099
+#: cp/decl.c:6364
+#, fuzzy
+msgid "name lookup of `%D' changed"
+msgstr "`%s' ¤Î̾Á°°ú¤­¤ÏÊѹ¹¤µ¤ì¤Þ¤·¤¿"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+#, fuzzy
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "`%s' ¤Î̾Á°°ú¤­¤Ï¿·¤¿¤Ê ISO `for' ¥¹¥³¡¼¥×¤ËÊѤï¤ê¤Þ¤·¤¿"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr ""
-#: cp/decl.c:6922
+#: cp/decl.c:7432
#, fuzzy
msgid "an anonymous union cannot have function members"
msgstr "̵̾¶¦ÍÑÂΤ˥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:6939
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6942
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6945
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6983
+#: cp/decl.c:7493
#, fuzzy
msgid "redeclaration of C++ built-in type `%T'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7018
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:7021
-msgid "declaration does not declare anything"
-msgstr "Àë¸À¤¬²¿¤âÀë¸À¤·¤Æ¤¤¤Þ¤»¤ó"
-
-#: cp/decl.c:7045
+#: cp/decl.c:7556
#, fuzzy
msgid "missing type-name in typedef-declaration"
msgstr "typdef Àë¸À¤Ç·¿Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7052
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7059
+#: cp/decl.c:7570
#, fuzzy
msgid "`%D' can only be specified for functions"
msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7061
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr ""
-#: cp/decl.c:7063
+#: cp/decl.c:7574
#, fuzzy
msgid "`%D' can only be specified for constructors"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7066
+#: cp/decl.c:7577
#, fuzzy
msgid "`%D' can only be specified for objects and functions"
msgstr "Èó´Ø¿ô `%s' ¤Î°ú¿ô¤Ë format °À­¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7203
+#: cp/decl.c:7719 cp/decl2.c:936
#, fuzzy
-msgid "typedef `%D' is initialized"
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
msgstr "typedef `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7209
+#: cp/decl.c:7724
#, fuzzy
msgid "function `%#D' is initialized like a variable"
msgstr "´Ø¿ô `%s' ¤¬ÊÑ¿ô¤Ç¤¢¤ë¤«¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7221
+#: cp/decl.c:7736
#, fuzzy
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7251
+#: cp/decl.c:7770
#, fuzzy
msgid "`%#D' is not a static member of `%#T'"
msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7256
+#: cp/decl.c:7775
#, fuzzy
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
msgstr "ISO C++ ¤Ï #if Æâ¤Î \"%s\" ¤òµö¤·¤Þ¤»¤ó"
-#: cp/decl.c:7267
+#: cp/decl.c:7786
#, fuzzy
msgid "duplicate initialization of %D"
msgstr "½ÅÊ£¤·¤¿½é´ü²½»Ò"
-#: cp/decl.c:7296
+#: cp/decl.c:7815
#, fuzzy
msgid "declaration of `%#D' outside of class is not definition"
msgstr "`%s' ¤Î weak Àë¸À¤ÏÄêµÁ¤è¤ê¤âÀè¤Ë¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7344
+#: cp/decl.c:7865
#, fuzzy
msgid "variable `%#D' has initializer but incomplete type"
msgstr "ÊÑ¿ô `%s' ¤Ë¤Ï½é´ü²½»Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:7352 cp/decl.c:7703
+#: cp/decl.c:7873 cp/decl.c:8432
#, fuzzy
msgid "elements of array `%#D' have incomplete type"
msgstr "ÇÛÎó `%s' ¤ÎÍ×ÁǤËÉÔ´°Á´·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:7368
+#: cp/decl.c:7889
#, fuzzy
-msgid "aggregate `%#D' has incomplete type and cannot be initialized"
-msgstr "½¸¹çÂΤ¬ÉôʬŪ¤Ë¥Ö¥é¥±¥Ã¥È¤Î½é´ü²½»Ò¤ò»ý¤Á¤Þ¤¹"
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:7407
+#: cp/decl.c:7931
#, fuzzy
msgid "`%D' declared as reference but not initialized"
msgstr "`%s' ¤¬Ê̤Υ·¥ó¥Ü¥ë¼ï¤È¤·¤ÆºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:7416
+#: cp/decl.c:7940
#, fuzzy
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
msgstr "ISO C++ ¤Ï new ¤Ø¤Î½¸¹çÂνé´ü²½»Ò¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:7449
+#: cp/decl.c:7970
#, fuzzy
msgid "cannot initialize `%T' from `%T'"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7510
+#: cp/decl.c:8004
#, fuzzy
msgid "initializer fails to determine size of `%D'"
msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: cp/decl.c:7515
+#: cp/decl.c:8009
#, fuzzy
msgid "array size missing in `%D'"
msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:7527
+#: cp/decl.c:8021
#, fuzzy
msgid "zero-size array `%D'"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
@@ -16914,641 +15348,669 @@ msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7560
+#: cp/decl.c:8059
#, fuzzy
msgid "storage size of `%D' isn't known"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬¤ï¤«¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7582
+#: cp/decl.c:8081
#, fuzzy
msgid "storage size of `%D' isn't constant"
msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:7633
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:7634
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:7662
+#: cp/decl.c:8164
#, fuzzy
msgid "uninitialized const `%D'"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:7697
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "´ðÄ쥯¥é¥¹½é´üÀßÄê»Ò¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8328
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ ¤Ï̾Á°¤Ä¤­Ìá¤êÃͤòµö²Ä¤·¤Þ¤»¤ó"
+
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: cp/decl.c:8426
#, fuzzy
msgid "variable-sized object `%D' may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: cp/decl.c:7708 cp/typeck2.c:201
+#: cp/decl.c:8437
#, fuzzy
msgid "`%D' has incomplete type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:7740
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr ""
-#: cp/decl.c:7770
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
msgstr ""
-#: cp/decl.c:7772
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
msgstr ""
-#: cp/decl.c:8037
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl.c:8047
+#: cp/decl.c:8785
#, fuzzy
msgid "cannot initialize `%D' to namespace `%D'"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8104
+#: cp/decl.c:8836
#, fuzzy
msgid "shadowing previous type declaration of `%#D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/decl.c:8503
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9298 cp/init.c:562
#, fuzzy
msgid "multiple initializations given for `%D'"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/decl.c:8603
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr "̵¸ú¤Ê catch ¤Î°ú¿ô"
-#: cp/decl.c:8721
+#: cp/decl.c:9508
#, fuzzy
msgid "destructor for alien class `%T' cannot be a member"
msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8724
+#: cp/decl.c:9511
#, fuzzy
msgid "constructor for alien class `%T' cannot be a member"
msgstr "¾¤Î¥¯¥é¥¹ `%s' ¤Î¥Ç¥¹¥È¥é¥¯¥¿¤ò¡¢¥á¥ó¥Ð¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8743
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr ""
-#: cp/decl.c:8745
+#: cp/decl.c:9532
#, fuzzy
msgid "`%D' declared as an `inline' %s"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:8747
+#: cp/decl.c:9534
#, fuzzy
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:8750
+#: cp/decl.c:9537
#, fuzzy
msgid "`%D' declared as a friend"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:8756
+#: cp/decl.c:9543
#, fuzzy
msgid "`%D' declared with an exception specification"
msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-#: cp/decl.c:8831
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8833
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr "`::main' ¤ò inline ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8835
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:8838
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr "`main' ¤Ï `int' ¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:8866
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr ""
-#: cp/decl.c:8869
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:8875
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:8898
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr ""
-#: cp/decl.c:8922
+#: cp/decl.c:9715
#, fuzzy
msgid "defining explicit specialization `%D' in friend declaration"
msgstr "Àë¸À¤ÎÃæ¤ËÂåÆþ(½é´ü²½¤Ç¤Ï¤Ê¤¯)¤¬¤¢¤ê¤Þ¤¹"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:8932
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/decl.c:8960
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:8967
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:9029
+#: cp/decl.c:9822
#, fuzzy
msgid "definition of implicitly-declared `%D'"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `auto' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9041 cp/decl2.c:1384
+#: cp/decl.c:9834 cp/decl2.c:785
#, fuzzy
msgid "no `%#D' member function declared in class `%T'"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:9160
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:9250
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr ""
-#: cp/decl.c:9259
+#: cp/decl.c:10073
#, fuzzy
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9262
+#: cp/decl.c:10076
#, fuzzy
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9312
+#: cp/decl.c:10126
#, fuzzy
msgid "size of array `%D' has non-integer type"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:9314
+#: cp/decl.c:10128
#, fuzzy
msgid "size of array has non-integer type"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:9334
+#: cp/decl.c:10148
#, fuzzy
msgid "size of array `%D' is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: cp/decl.c:9336
+#: cp/decl.c:10150
#, fuzzy
msgid "size of array is negative"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Éé¤Ç¤¹"
-#: cp/decl.c:9345
+#: cp/decl.c:10159
#, fuzzy
msgid "ISO C++ forbids zero-size array `%D'"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9347
+#: cp/decl.c:10161
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C ¤Ï ¥µ¥¤¥º 0 ¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9354
+#: cp/decl.c:10168
#, fuzzy
msgid "size of array `%D' is not an integral constant-expression"
msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤ÏÈóÀ°¿ô·¿"
-#: cp/decl.c:9357
+#: cp/decl.c:10171
#, fuzzy
msgid "size of array is not an integral constant-expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: cp/decl.c:9375
+#: cp/decl.c:10189
#, fuzzy
msgid "ISO C++ forbids variable-size array `%D'"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9378
+#: cp/decl.c:10192
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C89 ¤Ï²ÄÊÑĹ¥µ¥¤¥º¤ÎÇÛÎó `%s' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:9389
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr "ÇÛÎó¤Î¼¡¸µ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: cp/decl.c:9448
+#: cp/decl.c:10262
#, fuzzy
msgid "declaration of `%D' as %s"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9450
+#: cp/decl.c:10264
#, fuzzy, c-format
msgid "creating %s"
msgstr "%s ¤òºîÀ®Ãæ.\n"
-#: cp/decl.c:9462
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9465
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9494
+#: cp/decl.c:10308
#, fuzzy
msgid "return type specification for constructor invalid"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9501
+#: cp/decl.c:10315
#, fuzzy
msgid "return type specification for destructor invalid"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9507
+#: cp/decl.c:10321
#, fuzzy
msgid "operator `%T' declared to return `%T'"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:9509
+#: cp/decl.c:10323
#, fuzzy
msgid "return type specified for `operator %T'"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:9679
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï¥á¥ó¥Ð´Ø¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl.c:9698
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr ""
-#: cp/decl.c:9748
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
#, fuzzy
msgid "invalid declarator"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: cp/decl.c:9801
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr ""
-#: cp/decl.c:9845
-#, fuzzy
-msgid "`%T::%D' is not a valid declarator"
-msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: cp/decl.c:9847
-msgid " perhaps you want `typename %T::%D' to make it a type"
-msgstr ""
-
-#: cp/decl.c:9859
+#: cp/decl.c:10674
#, fuzzy
msgid "type `%T' is not derived from type `%T'"
msgstr "È¿Éü»Ò `%s' ¤ÏÇÉÀ¸·¿¤Ç¤¹"
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:9905
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr ""
-#: cp/decl.c:9907
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr ""
-#: cp/decl.c:9921
-#, fuzzy
-msgid "`%D' as declarator"
-msgstr "`%s' ¤ÏÀë¸À¤è¤ê¤âÀè¤Ë»ÈÍѤµ¤ì¤Þ¤·¤¿"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "¥Ý¥¤¥ó¥¿Àë¸À»Ò¤ËÉÔŬÀڤʷ¿½¤¾þ»Ò"
-#: cp/decl.c:9936
+#: cp/decl.c:10770
#, fuzzy
msgid "declaration of `%D' as non-function"
msgstr "`%s' ¤ÎÀë¸À¤Ï´Ø¿ô¤ÎÇÛÎó"
-#: cp/decl.c:10005
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr "`bool' ¤Ïº£¤ä¥­¡¼¥ï¡¼¥É¤Ç¤¹"
-#: cp/decl.c:10007
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr ""
-#: cp/decl.c:10023 cp/decl.c:10057
+#: cp/decl.c:10865 cp/decl.c:10910
#, fuzzy
msgid "multiple declarations `%T' and `%T'"
msgstr "¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: cp/decl.c:10036
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
msgstr "ISO C++ ¤Ï `long long' ¤ò¼õ¤±Æþ¤ì¤Þ¤»¤ó"
-#: cp/decl.c:10128 cp/decl.c:10131
+#: cp/decl.c:10983 cp/decl.c:10986
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
msgstr "ISO C ¤Ï¥á¥ó¥Ð¤Î¤Ê¤¤¥á¥ó¥ÐÀë¸À¤ò¶Ø¤¸¤Þ¤¹"
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10141
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr ""
-#: cp/decl.c:10177
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr "short, Éä¹ç¤Ä¤­¤Þ¤¿¤ÏÉä¹ç¤Ê¤·¤Ï `%s' ¤Ë¤È¤Ã¤Æ̵¸ú¤Ç¤¹"
-#: cp/decl.c:10182
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr "long ¤È short ¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:10193
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤¬ `%s' ¤ËÂФ·¤Æ°ì½ï¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:10298
+#: cp/decl.c:11157
#, fuzzy
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr "`operator delete' ¤ÎÀë¸ÀÆâ¤Ë¿¤¹¤®¤ë°ú¿ô"
-#: cp/decl.c:10326
+#: cp/decl.c:11179
#, fuzzy
msgid "member `%D' cannot be declared both virtual and static"
msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10340
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:10344
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Î typedef Àë¸À¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:10357
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:10411
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr "%s ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹»ØÄê»Ò `%s'"
-#: cp/decl.c:10449
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr "friend ´Ø¿ôÀë¸ÀÆâ¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:10553
-#, fuzzy
-msgid "size of member `%D' is not constant"
-msgstr "`%s' ¤ÎÎΰ襵¥¤¥º¤¬°ìÄê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: cp/decl.c:10632
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10635
+#: cp/decl.c:11498
#, fuzzy, c-format
msgid "destructors may not be `%s'"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó"
-#: cp/decl.c:10656
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤òÀÅŪ¥á¥ó¥Ð´Ø¿ô¤È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10659
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10664
+#: cp/decl.c:11527
#, fuzzy, c-format
msgid "constructors may not be `%s'"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Ï virtual Àë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10674
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂФ¹¤ëÌá¤êÃͤη¿»ØÄê¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:10693
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
msgstr "friend ´Ø¿ô `%s' ¤ò½é´ü²½¤Ç¤­¤Þ¤»¤ó"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10697
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr "²¾ÁÛ´Ø¿ô¤Ï friend ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10702
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:10704
+#: cp/decl.c:11567
#, fuzzy, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:10728
+#: cp/decl.c:11591
#, fuzzy
msgid "destructors may not have parameters"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤Ï²¾°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó"
-#: cp/decl.c:10758
-#, c-format
-msgid "cannot declare %s to references"
-msgstr "%s ¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "»²¾È¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10769
+#: cp/decl.c:11623
#, fuzzy
-msgid "cannot declare pointer to `%#T' member"
+msgid "cannot declare pointer to `%#T'"
msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10784
-msgid "invalid type: `void &'"
-msgstr "̵¸ú¤Ê·¿: `void &'"
-
-#: cp/decl.c:10835
-msgid "discarding `const' applied to a reference"
-msgstr "»²¾È¤ËÍѤ¤¤é¤ì¤¿ `const' ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹"
-
-#: cp/decl.c:10837
-msgid "discarding `volatile' applied to a reference"
-msgstr "»²¾È¤ËÍѤ¤¤é¤ì¤¿ `volatile' ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹"
+#: cp/decl.c:11628
+#, fuzzy
+msgid "cannot declare pointer to `%#T' member"
+msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:10948
+#: cp/decl.c:11804
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr ""
-#: cp/decl.c:10958
+#: cp/decl.c:11814
msgid "cannot declare member function `%T::%s' within `%T'"
msgstr ""
-#: cp/decl.c:10973
+#: cp/decl.c:11829
msgid "cannot declare member `%T::%s' within `%T'"
msgstr ""
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr ""
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr ""
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11053
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr "`explicit' ¤Ë¤Ç¤­¤ë¤Î¤Ï¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤Ç¤¹"
-#: cp/decl.c:11061
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11066
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr "È󥪥֥¸¥§¥¯¥È¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11072
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11077
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr "static `%s' ¤ò mutable ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11082
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11095
+#: cp/decl.c:11960
#, fuzzy
msgid "template-id `%D' used as a declarator"
msgstr "²¾°ú¿ô `%s' ¾¯¤·Á°Êý¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:11116
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11163
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr ""
-#: cp/decl.c:11171
+#: cp/decl.c:12038
#, fuzzy
msgid "invalid type qualifier for non-member function type"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/decl.c:11187
-msgid "typedef declaration includes an initializer"
-msgstr "typedef Àë¸À¤¬½é´üÀßÄê»Ò¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
-
-#: cp/decl.c:11240
+#: cp/decl.c:12101
#, fuzzy
msgid "type qualifiers specified for friend class declaration"
msgstr "°ì¤Ä¤Î¶õ¤ÎÀë¸ÀÃæ¤Ë¡¢Æó¤Ä¤Î·¿¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:11245
+#: cp/decl.c:12106
#, fuzzy
msgid "`inline' specified for friend class declaration"
msgstr "¥¯¥é¥¹Àë¸À¤Î³°Â¦¤Ç virtual »ØÄꤷ¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:11255
+#: cp/decl.c:12114
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11257
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr ""
-#: cp/decl.c:11262
+#: cp/decl.c:12120
#, fuzzy
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr "friend Àë¸À¤¬¥¯¥é¥¹ÄêµÁ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:11278
+#: cp/decl.c:12134
#, fuzzy
msgid "trying to make class `%T' a friend of global scope"
msgstr "¥¯¥é¥¹ `%s' ¤òÂç°è¥¹¥³¡¼¥×¤Î friend ¤Ë¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:11289
+#: cp/decl.c:12145
#, fuzzy
msgid "invalid qualifiers on non-member function type"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/decl.c:11308
+#: cp/decl.c:12164
#, fuzzy
msgid "abstract declarator `%T' used as declaration"
msgstr "`%s' ¤ÎÀë¸À¤Ï¥°¥í¡¼¥Ð¥ëÀë¸À¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/decl.c:11320
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr "̵̾ÊÑ¿ô¤ä¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:11329
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr "ÊÑ¿ô¤Þ¤¿¤Ï¥Õ¥£¡¼¥ë¥É¤¬ void ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:11339
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr "²¾°ú¿ôÀë¸À¤ÎÃæ¤Ç `::' ¤ò»È¤¨¤Þ¤»¤ó"
#. Something like struct S { int N::j; };
-#: cp/decl.c:11385
+#: cp/decl.c:12234
#, fuzzy
msgid "invalid use of `::'"
msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-#: cp/decl.c:11397
+#: cp/decl.c:12246
#, fuzzy
msgid "function `%D' cannot be declared friend"
msgstr "´Ø¿ô `%s' ¤ò `mutable' ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11409
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr ""
-#: cp/decl.c:11418
+#: cp/decl.c:12267
#, fuzzy
msgid "function `%D' declared virtual inside a union"
msgstr "Îΰè `%s' ¤Ï´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:11430
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:11503
+#: cp/decl.c:12355
#, fuzzy
msgid "field `%D' has incomplete type"
msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹"
-#: cp/decl.c:11505
+#: cp/decl.c:12357
#, fuzzy
msgid "name `%T' has incomplete type"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:11514
+#: cp/decl.c:12366
#, fuzzy
msgid " in instantiation of template `%T'"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/decl.c:11524
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr "`%s' ¤Ï´Ø¿ô¤Ç¤â¥á¥ó¥Ð´Ø¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó -- friend ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11541
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ï°ÅÌÛŪ¤Ë¤½¤Î¥¯¥é¥¹¤Î friend ¤Ç¤¹"
@@ -17564,100 +16026,105 @@ msgstr "¥á¥ó¥Ð´Ø¿ô¤Ï°ÅÌÛŪ¤Ë¤½¤Î¥¯¥é¥¹¤Î friend ¤Ç¤¹"
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11583
+#: cp/decl.c:12434
#, fuzzy
msgid "ISO C++ forbids initialization of member `%D'"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/decl.c:11585
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr ""
-#: cp/decl.c:11609
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11650
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:11652
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `register' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:11663
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `auto' ¤Ï̵¸ú¤Ç¤¹"
+
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `static' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:11665
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr "Âç°è¥¹¥³¡¼¥×³°¤Î´Ø¿ô `%s' ¤ËÂФ¹¤ëµ­²±¥¯¥é¥¹ `inline' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl.c:11672
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr "virtual ¤ÊÈ󥯥饹´Ø¿ô `%s'"
-#: cp/decl.c:11701
+#: cp/decl.c:12554
#, fuzzy
msgid "cannot declare member function `%D' to have static linkage"
msgstr "`::main' ¤ò static ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
#. FIXME need arm citation
-#: cp/decl.c:11707
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr "¾¤Î´Ø¿ôÆâ¤Ç static ´Ø¿ô¤òÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:11735
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:11741
+#: cp/decl.c:12594
#, fuzzy
msgid "static member `%D' declared `register'"
msgstr "`register' ¤ÈÀë¸À¤µ¤ì¤¿ÇÛÎó¤Ëź»ú¤ò¤Ä¤±¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:11746
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr ""
-#: cp/decl.c:11918
+#: cp/decl.c:12774
#, fuzzy
msgid "default argument for `%#D' has type `%T'"
msgstr "`%s' ¤ÎÂè°ì°ú¿ô¤Ï `int' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: cp/decl.c:11921
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr ""
-#: cp/decl.c:11938
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
msgstr ""
-#: cp/decl.c:11982
+#: cp/decl.c:12839
#, fuzzy, c-format
msgid "invalid string constant `%E'"
msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹"
-#: cp/decl.c:11984
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr "²¾°ú¿ô¥ê¥¹¥È¤Ë̵¸ú¤ÊÀ°¿ôÄê¿ô¤¬¤¢¤ê¤Þ¤¹¡£²¾°ú¿ô̾¤òÍ¿¤¨Ëº¤ì¤¿¤Î¤Ç¤Ï¡©"
-#: cp/decl.c:12018
+#: cp/decl.c:12879
#, fuzzy
msgid "parameter `%D' invalidly declared method type"
msgstr "¥Ñ¥é¥á¥¿¤Ï¥á¥½¥Ã¥É¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/decl.c:12024
+#: cp/decl.c:12885
#, fuzzy
msgid "parameter `%D' invalidly declared offset type"
msgstr "¥Ñ¥é¥á¥¿¤¬¥ª¥Õ¥»¥Ã¥È¤Î·¿¤òÉÔÀµ¤ËÀë¸À¤·¤Þ¤·¤¿"
-#: cp/decl.c:12048
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr ""
@@ -17676,521 +16143,514 @@ msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12215
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr ""
-#: cp/decl.c:12366
+#: cp/decl.c:13222
#, fuzzy
msgid "`%D' must be a nonstatic member function"
msgstr "`this' ¤ÏÀÅŪ¥á¥ó¥Ð´Ø¿ô¤«¤é»ÈÍѤǤ­¤Þ¤»¤ó"
-#: cp/decl.c:12372
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:12389
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:12421
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr "%s%s ¤Ø¤ÎÊÑ´¹¤Ç·¿ÊÑ´¹±é»»»Ò¤¬ÍøÍѤµ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤¢¤ê¤Þ¤»¤ó"
#. 13.4.0.3
-#: cp/decl.c:12428
+#: cp/decl.c:13284
#, fuzzy
msgid "ISO C++ prohibits overloading operator ?:"
msgstr "ISO C++ ¤Ï̵̾¹½Â¤ÂΤò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:12478
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr ""
-#: cp/decl.c:12482
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr ""
-#: cp/decl.c:12489
+#: cp/decl.c:13345
#, fuzzy
msgid "`%D' must take either zero or one argument"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:12491
+#: cp/decl.c:13347
#, fuzzy
msgid "`%D' must take either one or two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:12512
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12518
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12527
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr ""
-#: cp/decl.c:12529 cp/decl.c:12537
+#: cp/decl.c:13385 cp/decl.c:13393
#, fuzzy
msgid "`%D' must take exactly one argument"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:12539
+#: cp/decl.c:13395
#, fuzzy
msgid "`%D' must take exactly two arguments"
msgstr "`%s' ¤Ï 0 ¤« 2 ¸Ä¤Î°ú¿ô¤·¤«¤È¤ê¤Þ¤»¤ó"
-#: cp/decl.c:12547
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr ""
-#: cp/decl.c:12559
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr ""
-#: cp/decl.c:12571 cp/decl.c:12574
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
msgstr ""
-#: cp/decl.c:12667
-#, fuzzy
-msgid "`%s %T' declares a new type at namespace scope"
-msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: cp/decl.c:12670
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
-msgstr ""
-
-#: cp/decl.c:12706
+#: cp/decl.c:13475
msgid "using typedef-name `%D' after `%s'"
msgstr ""
-#: cp/decl.c:12709
+#: cp/decl.c:13481
#, fuzzy
msgid "using template type parameter `%T' after `%s'"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:12791
+#: cp/decl.c:13542
+#, fuzzy
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "`%s %s' ¤Ï²¾°ú¿ô¥ê¥¹¥ÈÆâ¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr ""
+
+#: cp/decl.c:13663
#, fuzzy
msgid "use of enum `%#D' without previous declaration"
msgstr "`%s' ¤Î¥»¥¯¥·¥ç¥ó¤ÏÁ°Êý¤Ç¤ËÀë¸À¤µ¤ì¤¿¤â¤Î¤È¾×Æͤ·¤Þ¤¹"
-#: cp/decl.c:12901
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr ""
-#: cp/decl.c:12945
+#: cp/decl.c:13795
#, fuzzy
msgid "base type `%T' fails to be a struct or class type"
msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl.c:12957
+#: cp/decl.c:13805
#, fuzzy
msgid "base class `%T' has incomplete type"
msgstr "Îΰè `%s' ¤ÏÉÔ´°Á´¤Ê·¿¤Ç¤¹"
-#: cp/decl.c:12965
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr ""
-#: cp/decl.c:12967
+#: cp/decl.c:13815
#, fuzzy
msgid "duplicate base type `%T' invalid"
msgstr "½ÅÊ£¤·¤¿ case ¤ÎÃÍ"
-#: cp/decl.c:13078
+#: cp/decl.c:13926
#, fuzzy
msgid "multiple definition of `%#T'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:13079
+#: cp/decl.c:13927
#, fuzzy
msgid "previous definition here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl.c:13254
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
#, fuzzy
msgid "enumerator value for `%D' not integer constant"
msgstr "`%s' ¤ÎÎóµóÃͤ¬À°¿ôÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl.c:13274
+#: cp/decl.c:14126
#, fuzzy
msgid "overflow in enumeration values at `%D'"
msgstr "ÎóµóÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼"
-#: cp/decl.c:13363
+#: cp/decl.c:14195
#, fuzzy
msgid "return type `%#T' is incomplete"
msgstr "Ìá¤êÃͤη¿¤¬ÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/decl.c:13472
+#: cp/decl.c:14309
#, fuzzy
msgid "semicolon missing after declaration of `%#T'"
msgstr "%s Àë¸À¤Î¸å¤í¤Î¥»¥ß¥³¥í¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:13493
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr "`main' ¤Î return ·¿¤Ï `int' ¤ËÊѤ¨¤Þ¤·¤¿"
-#: cp/decl.c:13524
+#: cp/decl.c:14361
#, fuzzy
msgid "`%D' implicitly declared before its definition"
msgstr "`%s' ¤Ï¤½¤ÎÄêµÁ¤è¤ê¤â¸å¤Ç inline Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:13546 cp/typeck.c:6663
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr ""
-#: cp/decl.c:13827
+#: cp/decl.c:14643
#, fuzzy
msgid "parameter `%D' declared void"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl.c:14190
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
msgstr ""
-#: cp/decl.c:14341
-#, fuzzy
-msgid "parser lost in parsing declaration of `%D'"
-msgstr "`%s' ¤ÎÀë¸À¤Ç·¿¤¬¥Ç¥Õ¥©¥ë¥È¤Î `int' ¤È¤µ¤ì¤Þ¤·¤¿"
-
-#: cp/decl.c:14426
+#: cp/decl.c:15348
#, fuzzy
msgid "static member function `%#D' declared with type qualifiers"
msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl2.c:529
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr "-f%s ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr "-fhandle-exceptions ¤Ï -fexception ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿(¤µ¤é¤Ë¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹)"
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr "-fname-mangling-version ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: cp/decl2.c:624
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-Wno-strict-prototypes ¤Ï C++ ¤Ç¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó"
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, fuzzy, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Î̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1030
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr "¹½Ê¸²òÀϴ郎Ì»Ҥˤʤ俤褦¤Ç¤¹: ¤É¤³¤«¤Ç '{' ¤ò˺¤ì¤Æ¤¤¤ë¤Î¤Ç¤Ï¡©"
-#: cp/decl2.c:1061 cp/decl2.c:1075
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr "ÇÛÎó¤Îź»ú¤ËÂФ¹¤ëÛ£Ëæ¤ÊÊÑ´¹"
-#: cp/decl2.c:1069
+#: cp/decl2.c:467
#, fuzzy
msgid "invalid types `%T[%T]' for array subscript"
msgstr "ÇÛÎó¤Îź»ú¤ËÂФ¹¤ëÛ£Ëæ¤ÊÊÑ´¹"
-#: cp/decl2.c:1117
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
msgstr ""
-#: cp/decl2.c:1125
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr "¥Ù¥¯¥È¥ë¤Î delete ¤ÇÇÛÎó¥µ¥¤¥º¤ò»È¤¦¤Î¤ÏÁ°»þÂåŪ¤Ç¤¹"
-#: cp/decl2.c:1135
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
msgstr "´Ø¿ô¤Ï delete ¤Ç¤­¤Þ¤»¤ó¡£ ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤À¤±¤¬ `delete' °ú¿ô¤È¤·¤ÆÍ­¸ú¤Ç¤¹"
-#: cp/decl2.c:1142
+#: cp/decl2.c:540
#, fuzzy
msgid "deleting `%T' is undefined"
msgstr "`%s' ¤Ç¤Î±é»»¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹"
-#: cp/decl2.c:1150
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1197
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:591
#, fuzzy
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: cp/decl2.c:1216 cp/pt.c:2558
+#: cp/decl2.c:601 cp/pt.c:2745
#, fuzzy
msgid "template declaration of `%#D'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl2.c:1266
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr ""
-#: cp/decl2.c:1275
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr ""
-#: cp/decl2.c:1371
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr ""
-#: cp/decl2.c:1373
-msgid "candidate%s: %+#D"
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
msgstr ""
-#: cp/decl2.c:1376
-#, fuzzy
-msgid " %#D"
-msgstr " ¹ç·× :"
-
-#: cp/decl2.c:1432
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤ÎÀÅŪ¥á¥ó¥Ð½é´ü²½»Ò¤Ï̵¸ú¤Ç¤¹"
-#: cp/decl2.c:1435
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr "(¥¯¥é¥¹³°¤Ç¤Î½é´ü²½¤òɬÍפȤ·¤Þ¤¹)"
-#: cp/decl2.c:1494
+#: cp/decl2.c:898
#, fuzzy
msgid "invalid data member initialization"
msgstr "̵¸ú¤Ê `#pragma implementation'"
-#: cp/decl2.c:1497
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr ""
-#: cp/decl2.c:1537
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:1557
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr ""
-#: cp/decl2.c:1608
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1631
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1683
+#: cp/decl2.c:1090
#, fuzzy
msgid "cannot declare `%D' to be a bit-field type"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl2.c:1693
+#: cp/decl2.c:1100
#, fuzzy
msgid "cannot declare bit-field `%D' with function type"
msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/decl2.c:1700
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr ""
-#: cp/decl2.c:1709
+#: cp/decl2.c:1114
#, fuzzy
msgid "static member `%D' cannot be a bit-field"
msgstr "static `%s' ¤ò mutable ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/decl2.c:1778
+#: cp/decl2.c:1201
#, fuzzy
msgid "initializer specified for non-member function `%D'"
msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÈó¥á¥ó¥Ð´Ø¿ô¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/decl2.c:1782
+#: cp/decl2.c:1205
#, fuzzy
msgid "invalid initializer for virtual method `%D'"
msgstr "̵¸ú¤Ê¥Ó¥Ã¥ÈÎó½é´ü²½»Ò¤Ç¤¹"
-#: cp/decl2.c:1886
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr "̵̾¹½Â¤ÂΤ¬Ì¾Á°¤Ä¤­·¿¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1982
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr "anonumous ̾Á°¶õ´Ö¤Î½¸¹çÂÎ¤Ï static ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:1992
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr "̵̾¶¦ÍÑÂΤ˥á¥ó¥Ð¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:2059
+#: cp/decl2.c:1497
#, fuzzy
msgid "`operator new' must return type `%T'"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:2067
+#: cp/decl2.c:1505
#, fuzzy
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr "`operator new' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `size_t' ¤ò¤È¤ê¤Þ¤¹"
-#: cp/decl2.c:2094
+#: cp/decl2.c:1532
#, fuzzy
msgid "`operator delete' must return type `%T'"
msgstr "`operator delete' ¤ÎÌá¤ê·¿¤Ï `void' ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:2102
+#: cp/decl2.c:1540
#, fuzzy
msgid "`operator delete' takes type `%T' as first parameter"
msgstr "`operator delete' ¤ÏÂè°ì°ú¿ô¤È¤·¤Æ `void *' ·¿¤ò¤È¤ê¤Þ¤¹"
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2839
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
msgstr "ɬÍפȤµ¤ì¤ë½é´ü²½´Ø¿ô¤Î¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/decl2.c:3643
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "`%s' ¤¬»È¤ï¤ì¤Þ¤·¤¿¤¬Ì¤ÄêµÁ¤Ç¤¹"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
msgstr "¸Å¤¤¥¹¥¿¥¤¥ë¤Î¥­¥ã¥¹¥È¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/decl2.c:4201
+#: cp/decl2.c:3860
#, fuzzy
msgid "use of `%D' is ambiguous"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ï¤¢¤¤¤Þ¤¤¤Ç¤¹\n"
-#: cp/decl2.c:4202
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4205
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4220
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr ""
-#: cp/decl2.c:4221
+#: cp/decl2.c:3880
#, fuzzy
msgid " first type here"
msgstr " ¤³¤³¤«¤é"
-#: cp/decl2.c:4222
+#: cp/decl2.c:3881
msgid " other type here"
msgstr ""
-#: cp/decl2.c:4319
+#: cp/decl2.c:3982
#, fuzzy
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr "`%s' ¤ÎÀë¸À¤Ë¤è¤ê `this' ¤Î¥á¥ó¥Ð¤¬Ê¤¤¤±£¤µ¤ì¤Þ¤¹"
-#: cp/decl2.c:4353
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr ""
-#: cp/decl2.c:4487
+#: cp/decl2.c:4152
#, fuzzy
msgid "`%D' is not a function,"
msgstr "`%s' ¤ÏÄ̾ï¤Ï´Ø¿ô¤Ç¤¹"
-#: cp/decl2.c:4488
+#: cp/decl2.c:4153
#, fuzzy
msgid " conflict with `%D'"
msgstr "`%s' ¤Ï `-g%s' ¤È¶¥¹ç¤¹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤·¤¿"
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4802
+#: cp/decl2.c:4473
#, fuzzy
msgid "unknown namespace `%D'"
msgstr "ÉÔÌÀ¤Ê #pragma namespace %s ¤Ç¤¹"
-#: cp/decl2.c:4836 cp/decl2.c:5097
+#: cp/decl2.c:4507 cp/decl2.c:4794
msgid "`%T' is not a namespace"
msgstr ""
-#: cp/decl2.c:4838
+#: cp/decl2.c:4509
msgid "`%D' is not a namespace"
msgstr ""
-#: cp/decl2.c:4847
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr ""
-#: cp/decl2.c:4861
+#: cp/decl2.c:4532
#, fuzzy
msgid "namespace `%D' not allowed in using-declaration"
msgstr "`%s' ¤ÏÀë¸À¤Î»Ï¤Þ¤ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/decl2.c:4890
+#: cp/decl2.c:4561
#, fuzzy
msgid "`%D' not declared"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/decl2.c:4932
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
msgstr ""
-#: cp/decl2.c:4959
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr ""
-#: cp/decl2.c:5050
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/decl2.c:5056
+#: cp/decl2.c:4746
#, fuzzy
msgid "using-declaration for destructor"
msgstr "¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: cp/decl2.c:5062
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr ""
-#: cp/decl2.c:5091
+#: cp/decl2.c:4788
#, fuzzy
msgid "namespace `%T' undeclared"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/decl2.c:5120
+#: cp/decl2.c:4817
#, fuzzy
msgid "default argument missing for parameter %P of `%+#D'"
msgstr "²¾°ú¿ô¥ê¥¹¥È¤«¤é¤Î²¾°ú¿ô̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/decl2.c:5201
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr ""
-#: cp/decl2.c:5205
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
+msgstr ""
+
+#: cp/decl2.c:4963
#, fuzzy
-msgid "`%T' does not have a nested type named `%D'"
-msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
+msgid "`%T' is not a class or union type"
+msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
+
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "¥ì¥¸¥¹¥¿Ì¾¤¬ `%s' ÍѤ˻ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/decl2.c:5207
-msgid "no file-scope type named `%D'"
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
msgstr ""
#: cp/error.c:35
@@ -18198,237 +16658,227 @@ msgstr ""
msgid "`%s' not supported by %s"
msgstr "`%s' ¤Ï %s ¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: cp/error.c:572
+#: cp/error.c:571
#, c-format
msgid "<anonymous %s>"
msgstr "<̵̾ %s>"
-#: cp/error.c:833
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr "(ÀÅŪ%s: %s ÍÑ)"
-#: cp/error.c:2457
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
msgstr "%s Æâ¤Î `%s':"
-#: cp/error.c:2512
+#: cp/error.c:2530
#, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/error.c:2536
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr "%s:%d: `%s' ¤«¤é¼ÂÂ⽤µ¤ì¤Þ¤·¤¿\n"
-#: cp/error.c:2541
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr "%s:%d: ¤³¤³¤Ç¼ÂÂ⽤µ¤ì¤Þ¤·¤¿\n"
#. damn ICE suppression
-#: cp/error.c:2694
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr ""
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr "Java `catch' ¤ä `throw' ¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`jthrowable' ¤Ï̤ÄêµÁ¤Ç¤¹"
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr ""
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "C++ ¤È Java ¤Î `catch' ¤ò°ì¤Ä¤ÎËÝÌõ¥æ¥Ë¥Ã¥È¤Ë¤Þ¤È¤á¤Þ¤¹"
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
msgstr " throw ¤µ¤ì¤¿¼°¤ÎÃæ"
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr ""
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr ""
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr ""
-#: cp/friend.c:155
+#: cp/friend.c:159
#, fuzzy
msgid "`%D' is already a friend of class `%T'"
msgstr "'%s' ¥¯¥é¥¹¤ò¸«¤Ä¤±¤ë¤Î¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: cp/friend.c:157
+#: cp/friend.c:161
#, fuzzy
msgid "previous friend declaration of `%D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/friend.c:197
+#: cp/friend.c:206
#, fuzzy
msgid "invalid type `%T' declared `friend'"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
#, fuzzy
msgid "partial specialization `%T' declared `friend'"
msgstr "ÊÑ¿ô `%s' ¤¬ `inline' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr ""
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
#, fuzzy
msgid "typename type `%#T' declared `friend'"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
#, fuzzy
msgid "template parameter type `%T' declared `friend'"
msgstr "²¾°ú¿ô `%s' ¤¬ void ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
#, fuzzy
msgid "`%#T' is not a template"
msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/friend.c:268
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr ""
-#: cp/friend.c:364
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr ""
-#: cp/friend.c:419
+#: cp/friend.c:431
#, fuzzy
msgid "friend declaration `%#D' declares a non-template function"
msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤ÏÈó´Ø¿ô¤È¤·¤ÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/friend.c:422
+#: cp/friend.c:434
#, fuzzy
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr "¡Ê¤â¤·¤³¤ì¤¬¤¢¤Ê¤¿¤Î°Õ¿Þ¤·¤¿¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¡¢´Ø¿ô¥Æ¥ó¥×¥ì¡¼¥È¤Ï´û¤ËÀë¸ÀºÑ¤Ç¤¢¤ë»ö¤ò³Îǧ¤·¡¢¤³¤³¤Î´Ø¿ô̾¤Î¸å¤í¤Ë <> ¤òÉÕ¤±Â­¤·¤Æ¤¯¤À¤µ¤¤¡Ë -Wno-non-template-friend ¤Ç¤³¤Î·Ù¹ðɽ¼¨¤ò̵¸ú¤Ë¤·¤Þ¤¹"
-#: cp/g++spec.c:198 java/jvspec.c:381
+#: cp/g++spec.c:211 java/jvspec.c:423
#, c-format
msgid "argument to `%s' missing\n"
msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹\n"
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
msgstr ""
-#: cp/init.c:290
+#: cp/init.c:389
#, fuzzy
msgid "uninitialized reference member `%D'"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
msgstr "½é´ü²½»Ò¥ê¥¹¥È¤ÏÊ£¹ç¼°¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤Þ¤·¤¿"
-#: cp/init.c:410
-#, fuzzy
-msgid "member initializers for `%#D'"
-msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-
-#: cp/init.c:412
-msgid " and `%#D'"
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
msgstr ""
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr " Àë¸À½ç¤È°ìÃפ¹¤ë¤è¤¦¤ËʤÓÂؤ¨¤é¤ì¤Þ¤¹"
-
-#: cp/init.c:428
+#: cp/init.c:541
#, fuzzy
-msgid "multiple initializations given for member `%D'"
-msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-
-#: cp/init.c:500
-#, fuzzy
-msgid "initializations for multiple members of `%T'"
-msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+msgid "base `%T' will be initialized after"
+msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/init.c:617
-#, fuzzy
-msgid "base initializers for `%#T'"
-msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr ""
-#: cp/init.c:618
-msgid " and `%#T'"
+#: cp/init.c:546
+msgid " base `%T'"
msgstr ""
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr " ÇÉÀ¸½ç¤È°ìÃפ¹¤ë¤è¤¦¤ËʤÙÂؤ¨¤é¤ì¤Þ¤¹"
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
#: cp/init.c:631
#, fuzzy
-msgid "base class `%T' already initialized"
-msgstr "½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+msgid "initializations for multiple members of `%T'"
+msgstr "²ÄÊÑÇÛÎó¥á¥ó¥Ð¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
-#: cp/init.c:702
+#: cp/init.c:688
msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
-msgstr ""
-
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr ""
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr ""
-#: cp/init.c:1032
+#: cp/init.c:965
#, fuzzy
msgid "unnamed initializer for `%T', which has no base classes"
msgstr "´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr ""
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr ""
-#: cp/init.c:1071
+#: cp/init.c:1010
msgid "type `%D' is not a direct base of `%T'"
msgstr ""
@@ -18444,30 +16894,30 @@ msgstr ""
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
msgstr "ÇÛÎó¤ÎÉÔÀµ¤Ê½é´ü²½"
-#: cp/init.c:1357
+#: cp/init.c:1311
#, fuzzy
msgid "`%T' is not an aggregate type"
msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: cp/init.c:1380
+#: cp/init.c:1334
#, fuzzy
msgid "`%T' fails to be an aggregate typedef"
msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: cp/init.c:1389
+#: cp/init.c:1343
#, fuzzy
msgid "type `%T' is of non-aggregate type"
msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr ""
-#: cp/init.c:1533
+#: cp/init.c:1490
#, fuzzy
msgid "invalid use of non-static field `%D'"
msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
@@ -18475,725 +16925,542 @@ msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1542 cp/method.c:194
+#: cp/init.c:1499 cp/method.c:160
#, fuzzy
msgid "invalid use of member `%D'"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: cp/init.c:1552
+#: cp/init.c:1509
#, fuzzy
msgid "no method `%T::%D'"
msgstr "¥á¥½¥Ã¥É `%s' Æâ:"
-#: cp/init.c:1645
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr ""
-#: cp/init.c:1714
+#: cp/init.c:1676
#, fuzzy
msgid "`%D' is not a member of type `%T'"
msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/init.c:1733
+#: cp/init.c:1695
#, fuzzy
-msgid "illegal pointer to bit-field `%D'"
-msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É `%s' ¤ÎÉý¤¬Éé¤Î¿ô¤Ç¤¹"
+msgid "invalid pointer to bit-field `%D'"
+msgstr "̵¸ú¤Ê¼±ÊÌ»Ò `%s'"
-#: cp/init.c:1772
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¹½ÃۤλÈÍѤǥª¥Ö¥¸¥§¥¯¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/init.c:1812
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr ""
-#: cp/init.c:1814 cp/typeck.c:3154 cp/typeck.c:3262
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr "¥Õ¥¡¥¤¥ë¤Î¤³¤Î°ÌÃÖ"
-#: cp/init.c:1862 cp/typeck.c:2949
+#: cp/init.c:1813
#, fuzzy, c-format
msgid "object missing in `%E'"
msgstr "`%s' ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/init.c:1994
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr "ÇÛÎ󷿤Πnew ¤Ï¥µ¥¤¥º¤Î»ØÄê¤Ë¼ºÇÔ¤·¤Þ¤¹"
-#: cp/init.c:2005
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr "ÇÛÎó new ¤Ç¤Î¥µ¥¤¥º¤Ï´°Á´¤Ê·¿¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/init.c:2011
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr "¥µ¥¤¥º¥¼¥í¤ÎÇÛÎó¤Ï¶õ´Ö¤ò³ÎÊݤ·¤Þ¤»¤ó"
-#: cp/init.c:2076
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr "»²¾È·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/init.c:2082
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/init.c:2129
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`jclass' ¤Ï̤ÄêµÁ¤Ç¤¹"
-#: cp/init.c:2145
+#: cp/init.c:2095
#, fuzzy
msgid "can't find class$"
msgstr "class$ ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: cp/init.c:2258
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr "new ¤ËÂФ·¤Æ̵¸ú¤Ê·¿¤Ç¤¢¤ë `void'"
-#: cp/init.c:2310
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr "Java ¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢`%s' ¤Ï̤ÄêµÁ¤Ç¤¹"
-#: cp/init.c:2419
+#: cp/init.c:2369
#, fuzzy
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/init.c:2437 cp/typeck2.c:383 cp/typeck2.c:1227
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
msgstr "½é´ü²½»Ò¥ê¥¹¥È¤¬Ê£¹ç¼°¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/init.c:2443
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
msgstr "ISO C++ ¤Ï new ¤Ø¤Î½¸¹çÂνé´ü²½»Ò¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/init.c:2518
+#: cp/init.c:2485
#, fuzzy
msgid "uninitialized const in `new' of `%#T'"
msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: cp/init.c:2882
+#: cp/init.c:2864
msgid "initializer ends prematurely"
msgstr "½é´üÀßÄê»Ò¤ÎËöÈø¤¬ËÜÍè¤è¤êÁ᤯½Ð¸½¤·¤Þ¤·¤¿"
-#: cp/init.c:2952
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "¿¼¡¸µÇÛÎó¤Ï½é´ü²½»Ò¤Ç½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-#: cp/init.c:3127
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr "delete ¤Ç¤ÎÇÛÎó¥µ¥¤¥º¤¬ÉÔÌÀ¤Ç¤¹"
-#: cp/init.c:3392
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
msgstr "¥Ù¥¯¥È¥ë·¿¤Î delete ¤Ç¤¹¤¬¡¢¥Ý¥¤¥ó¥¿¤Ç¤âÇÛÎ󷿤Ǥ⤢¤ê¤Þ¤»¤ó"
-#: cp/lang-options.h:29
-msgid "Do not obey access control semantics"
-msgstr "¥¢¥¯¥»¥¹À©¸æ¤Î°ÕÌ£¤Ë½¾¤ï¤Ê¤¤"
-
-#: cp/lang-options.h:31
-msgid "Change when template instances are emitted"
-msgstr "¥Æ¥ó¥×¥ì¡¼¥È¥¤¥ó¥¹¥¿¥ó¥¹¤¬Á÷½Ð¤µ¤ì¤¿»þ¤ËÊѹ¹¤¹¤ë"
-
-#: cp/lang-options.h:36
-msgid "Check the return value of new"
-msgstr "new ¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë"
-
-#: cp/lang-options.h:39
-msgid "Reduce size of object files"
-msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë"
-
-#: cp/lang-options.h:43
-msgid "Make string literals `char[]' instead of `const char[]'"
-msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤ò `const char[]' ¤ÎÂå¤ï¤ê¤Ë `char[]' ¤È¤¹¤ë"
-
-#: cp/lang-options.h:46
-msgid "Dump the entire translation unit to a file"
-msgstr "ËÝÌõñ°ÌÁ´ÂΤò¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
-
-#: cp/lang-options.h:48
-msgid "Do not inline member functions by default"
-msgstr "¥á¥ó¥Ð´Ø¿ô¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥é¥¤¥ó¤È¤·¤Ê¤¤"
-
-#: cp/lang-options.h:51
-msgid "Do not generate run time type descriptor information"
-msgstr "¼Â¹Ô»þ·¿µ­½Ò¾ðÊó¤òÀ¸À®¤·¤Ê¤¤"
-
-#: cp/lang-options.h:56
-msgid "Do not generate code to check exception specifications"
-msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
-
-#: cp/lang-options.h:61
-msgid "Scope of for-init-statement vars extends outside"
-msgstr "for ½é´ü²½Ê¸¤ÎÊÑ¿ô¤ò¥¹¥³¡¼¥×³°¤Ë³ÈÂ礹¤ë"
-
-#: cp/lang-options.h:64
-#, fuzzy
-msgid "Do not recognize GNU defined keywords"
-msgstr "GNU ÄêµÁ¤ÎͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤"
-
-#: cp/lang-options.h:68
-msgid "Enable support for huge objects"
-msgstr "Â礭¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥Ý¡¼¥È"
-
-#: cp/lang-options.h:72
-msgid "Export functions even if they can be inlined"
-msgstr "¥¤¥ó¥é¥¤¥ó¤Ë¤Ç¤­¤ë´Ø¿ô¤Ç¤â export ¤¹¤ë"
-
-#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
-msgstr "ÌÀ¼¨Åª¤Ê¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-
-#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
-msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-
-#: cp/lang-options.h:84
-msgid "Don't pedwarn about uses of Microsoft extensions"
-msgstr "Microsoft ³ÈÄ¥¤ÎÍøÍѤ˴ؤ·¤Æ pedantic ·Ù¹ð¤ò¹Ô¤ï¤Ê¤¤"
-
-#: cp/lang-options.h:87
-#, fuzzy
-msgid "Recognize and/bitand/bitor/compl/not/or/xor"
-msgstr "and/bitand/bitor/compl/not/or/xor ¤òǧ¼±¤¹¤ë"
-
-#: cp/lang-options.h:91
-msgid "Disable optional diagnostics"
-msgstr "¥ª¥×¥·¥ç¥ó¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤"
-
-#: cp/lang-options.h:93
-msgid "Downgrade conformance errors to warnings"
-msgstr "µ¬³ÊŬ¹çÀ­¥¨¥é¡¼¤ò·Ù¹ð¤Ë³Ê²¼¤²¤¹¤ë"
-
-#: cp/lang-options.h:96
-msgid "Enable automatic template instantiation"
-msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
-
-#: cp/lang-options.h:101
-msgid "Display statistics accumulated during compilation"
-msgstr "¥³¥ó¥Ñ¥¤¥ëÃæ¤ËÃßÀѤµ¤ì¤¿Åý·×¾ðÊó¤òɽ¼¨¤¹¤ë"
-
-#: cp/lang-options.h:104
-msgid "Specify maximum template instantiation depth"
-msgstr "¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¿¼¤µ¤ÎºÇÂçÃͤò»ØÄꤹ¤ë"
-
-#: cp/lang-options.h:106
-#, fuzzy
-msgid "Use __cxa_atexit to register destructors"
-msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤ÎÅÐÏ¿¤Ë __cxa_atexit ¤òÍøÍѤ¹¤ë"
-
-#: cp/lang-options.h:109
-msgid "Discard unused virtual functions"
-msgstr "»È¤ï¤ì¤Ê¤¤²¾ÁÛ´Ø¿ô¤òÀÚ¤ê¼Î¤Æ¤ë"
-
-#: cp/lang-options.h:112
-msgid "Implement vtables using thunks"
-msgstr "thunk ¤ò»È¤Ã¤Æ vtable ¤ò¼ÂÁõ¤¹¤ë"
-
-#: cp/lang-options.h:115
-msgid "Emit common-like symbols as weak symbols"
-msgstr "¥³¥â¥ó¥·¥ó¥Ü¥ë¤ò¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤ÎÍͤËÀ¸À®¤¹¤ë"
-
-#: cp/lang-options.h:118
-msgid "Emit cross referencing information"
-msgstr "Áê¸ß»²¾È¾ðÊó¤òÀ¸À®¤¹¤ë"
-
-#: cp/lang-options.h:122
-msgid "Warn about inconsistent return types"
-msgstr "Ìá¤êÃͤη¿¤È°ìÃפ·¤Ê¤¤¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:125
-msgid "Warn about overloaded virtual function names"
-msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿²¾ÁÛ´Ø¿ô̾¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:129
-msgid "Don't warn when all ctors/dtors are private"
-msgstr "Á´¤Æ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤¬ private ¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
-
-#: cp/lang-options.h:131
-msgid "Warn about non virtual destructors"
-msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:134
-msgid "Warn when a function is declared extern, then inline"
-msgstr "´Ø¿ô¤¬ extern Àë¸À¤µ¤ì¤¿¸å¡¢inline ¤È¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:137
-msgid "Warn when the compiler reorders code"
-msgstr "¥³¥ó¥Ñ¥¤¥é¤¬¥³¡¼¥É¤òʤÙÂؤ¨¤ë¤È¤­¤Ë·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:140
-#, fuzzy
-msgid "Warn when synthesis behavior differs from Cfront"
-msgstr "¹çÀ®¤Î¿¶¤ëÉñ¤¤¤¬ Cfront ¤È°Û¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:144
-msgid "Don't warn when type converting pointers to member functions"
-msgstr "¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤Î·¿ÊÑ´¹¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
-
-#: cp/lang-options.h:146
-msgid "Warn about violations of Effective C++ style rules"
-msgstr "Effective C++ ¼°¤Î»Ø¿Ë¤«¤é¤Ï¤º¤ì¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:149
-msgid "Warn when overload promotes from unsigned to signed"
-msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Éä¹ç̵¤·¤«¤éÉä¹çÉÕ¤­¤Ë³Ê¾å¤²¤È¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:152
-msgid "Warn if a C style cast is used in a program"
-msgstr "C ¼°¤Î¥­¥ã¥¹¥È¤¬¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤¿¤é·Ù¹ð¤¹¤ë"
-
-#: cp/lang-options.h:156
-msgid "Don't warn when non-templatized friend functions are declared within a template"
-msgstr "template Æâ¤ÇÈó template ¤Î friend ´Ø¿ô¤¬Àë¸À¤µ¤ì¤¿¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
-
-#: cp/lang-options.h:159
-msgid "Don't announce deprecation of compiler features"
-msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤ò¹ðÃΤ·¤Ê¤¤"
-
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr "`*' ¤ÎÁ°¤Ë·¿¤Î̾Á°¤¬¤¢¤ë¤Ù¤­¤Ç¤¹"
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr "»²¾È¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr "`&' ¤ÎÁ°¤Ë·¿¤Î̾Á°¤¬¤¢¤ë¤Ù¤­¤Ç¤¹"
-#: cp/lex.c:1000
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr "%s Àë¸À¤Î¸å¤í¤Î¥»¥ß¥³¥í¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/lex.c:1003
+#: cp/lex.c:897
#, fuzzy
msgid "semicolon missing after declaration of `%T'"
msgstr "%s Àë¸À¤Î¸å¤í¤Î¥»¥ß¥³¥í¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/lex.c:1051
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr "#pragma %s ¤ÎËöÈø¤Ë¥´¥ß"
-#: cp/lex.c:1058
+#: cp/lex.c:952
#, c-format
msgid "invalid #pragma %s"
msgstr "̵¸ú¤Ê #pragma %s ¤Ç¤¹"
-#: cp/lex.c:1067
+#: cp/lex.c:961
#, fuzzy
msgid "#pragma vtable no longer supported"
msgstr "--driver ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: cp/lex.c:1144
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "%s ¤Ø¤Î #pragma implementation ¤Ï¥Õ¥¡¥¤¥ë¤¬ include ¤µ¤ì¤¿¸å¤Ç½Ð¸½¤·¤Þ¤·¤¿"
-#: cp/lex.c:1169
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr "#pragma GCC java_exceptions ¤ÎËöÈø¤Ë¥´¥ß"
-#: cp/lex.c:1251
+#: cp/lex.c:1107
#, fuzzy
msgid "`%D' not defined"
msgstr "\"%s\" ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/lex.c:1256
+#: cp/lex.c:1110
#, fuzzy
msgid "`%D' was not declared in this scope"
msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)"
-#: cp/lex.c:1266
+#: cp/lex.c:1118
#, fuzzy
msgid "`%D' undeclared (first use this function)"
msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)"
-#: cp/lex.c:1270
+#: cp/lex.c:1122
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr "(̤Àë¸ÀÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¬´Ø¿ôÆâ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿»þ¤À¤±Êó¹ð¤µ¤ì¤Þ¤¹¡£)"
-#: cp/lex.c:1293
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr "`%s' ¤Î̾Á°°ú¤­¤ÏÊѹ¹¤µ¤ì¤Þ¤·¤¿"
-
-#: cp/lex.c:1295
-msgid " matches this `%D' under ISO standard rules"
-msgstr ""
-
-#: cp/lex.c:1297
-msgid " matches this `%D' under old rules"
-msgstr ""
-
-#: cp/lex.c:1307 cp/lex.c:1314
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr "`%s' ¤Î̾Á°°ú¤­¤Ï¿·¤¿¤Ê ISO `for' ¥¹¥³¡¼¥×¤ËÊѤï¤ê¤Þ¤·¤¿"
-
-#: cp/lex.c:1309
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr ""
-
-#: cp/lex.c:1316
-msgid " using obsolete binding at `%D'"
-msgstr ""
-
-#: cp/lex.c:1381
+#: cp/lex.c:1242
#, fuzzy
msgid "`::%D' undeclared (first use here)"
msgstr "`%s' ¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (¤³¤Î´Ø¿ôÆâ¤ÇºÇ½é¤ËÍøÍÑ)"
-#: cp/mangle.c:1892
-msgid "real-valued template parameters when cross-compiling"
-msgstr "¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë»þ¤Î¼Â¿ôÃͥƥó¥×¥ì¡¼¥È²¾°ú¿ô"
-
-#: cp/method.c:166
-msgid "methods cannot be converted to function pointers"
-msgstr "¥á¥½¥Ã¥É¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
+#: cp/mangle.c:2051
+#, fuzzy
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "´Ø¿ô·¿¤ËÂФ·¤Æ new ¤òŬÍѤǤ­¤Þ¤»¤ó"
-#: cp/method.c:171
-#, c-format
-msgid "ambiguous request for method pointer `%s'"
-msgstr "¥á¥½¥Ã¥É¥Ý¥¤¥ó¥¿ `%s' ¤Ø¤ÎÍ׵᤬ۣËæ¤Ç¤¹"
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr ""
-#: cp/method.c:188
+#: cp/method.c:154
#, fuzzy
msgid "invalid use of member `%D' in static member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/method.c:236
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr ""
-#: cp/method.c:241
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr ""
-#: cp/method.c:254
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/method.c:257
+#: cp/method.c:237
#, fuzzy
msgid " `%#D' declared here"
msgstr "`%s' ¤ÏÁ°¤Ë¤³¤³¤ÇÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/method.c:275
+#: cp/method.c:255
#, fuzzy
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr "Í׵ᤵ¤ì¤¿¥á¥ó¥Ð `%s' ¤Ï¿½Å·Ñ¾µ¥°¥é¥Õ¤ÎÃæ¤ÇÛ£Ëæ¤Ç¤¹"
-#: cp/method.c:328
-msgid "implementation-reserved name `%D' used"
-msgstr ""
-
-#: cp/method.c:448
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr ""
-#: cp/method.c:678
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
msgstr ""
-#: cp/method.c:683
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
msgstr ""
-#: parse.y:501
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
+msgstr ""
+
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr ""
-#: parse.y:605
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr ""
-#: parse.y:677
-msgid "invalid default template argument"
-msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
-
-#: parse.y:901
-msgid "only constructors take base initializers"
-msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤·¤«´ðÄì½é´ü²½»Ò¥ê¥¹¥È¤ò¤È¤ê¤Þ¤»¤ó"
-
-#: parse.y:903
+#: parse.y:943
msgid "no base or member initializers given following ':'"
msgstr "´ðÄì¤ä¥á¥ó¥Ð½é´ü²½»Ò¥ê¥¹¥È¤¬ ':' ¤Î¸å¤Ë³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: parse.y:945 parse.y:951
+#: parse.y:984
msgid "anachronistic old style base class initializer"
msgstr "Á°»þÂåŪ¤Ê¸Å¤¤¥¹¥¿¥¤¥ë¤Î´ðÄ쥯¥é¥¹½é´ü²½»Ò¤Ç¤¹"
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1073
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr "`>>' ¤Ï¥Æ¥ó¥×¥ì¡¼¥È¥¯¥é¥¹Ì¾¤Ï `> >' ¤È¤¹¤Ù¤­¤Ç¤¹"
-#: parse.y:1111
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr ""
-#: parse.y:1140 parse.y:1149
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr "ISO C++ ¤Ï `%s' ¤ËÂФ¹¤ë¶õ¤Î¾ò·ï¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:1172
+#: parse.y:1225
#, fuzzy
msgid "definition of class `%T' in condition"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: parse.y:1174
+#: parse.y:1227
#, fuzzy
msgid "definition of enum `%T' in condition"
msgstr "%s: ´Ø¿ô `%s' ¤ÎÄêµÁ¤¬ÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-#: parse.y:1185
+#: parse.y:1238
#, fuzzy
msgid "definition of array `%#D' in condition"
msgstr "`%c%s' ¤Î¥á¥½¥Ã¥ÉÄêµÁ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: parse.y:1294
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr ""
-#: parse.y:1305
+#: parse.y:1362
#, fuzzy
msgid "`%T' is not a valid expression"
msgstr "\"%s\" ¤ÏÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: parse.y:1316
-msgid "ISO C++ forbids initialization of new expression with `='"
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
msgstr "ISO C++ ¤Ï new ¼°¤Î½é´ü²½¤Ç¤Î `=' ¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:1347
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
msgstr "ISO C++ ¤ÏÊ£¹ç¥ê¥Æ¥é¥ë¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:1588
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ ¤Ï¥Ö¥ì¡¼¥¹¤Ç¤Þ¤È¤á¤é¤ì¤¿¼°¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:1994 parse.y:2009
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ÉÔ´°Á´¤Ê typedef `%s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
+
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
msgstr "·¿»ØÄê»Ò¤Î sigof ¤Ç¤¹"
-#: parse.y:1999
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr "È󽸹çÂμ°¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: parse.y:2014
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr "È󽸹çÂη¿¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `sigof'"
-#: parse.y:2278
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr ""
-#: parse.y:2322
-#, fuzzy
-msgid "%T is not a class type"
-msgstr "¥¯¥é¥¹¥¿¥¤¥×¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: parse.y:2333
-msgid "base clause without member specification for `%#T'"
+#: parse.y:2356
+msgid "qualified name does not name a class"
msgstr ""
-#: parse.y:2354
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr "µ­²±¥¯¥é¥¹»ØÄê»Ò `%s' ¤Ï struct ¤ä class ¤Î¸å¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-#: parse.y:2356
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr "·¿»ØÄê»Ò `%s' ¤Ï struct ¤ä class ¤Î¸å¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-#: parse.y:2358
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr "·¿½¤¾þ»Ò `%s' ¤Ï struct ¤ä class ¤Î¸å¤Ë¤Ï»È¤¨¤Þ¤»¤ó"
-#: parse.y:2360
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr "ËÜÂΤ¬¤Ê¤¯¡¢class, struct °¿¤¤¤Ï union Àë¸À¤ò¶èÀÚ¤ë ';' ¤â¤¢¤ê¤Þ¤»¤ó"
-#: parse.y:2452
+#: parse.y:2553
#, fuzzy
-msgid "`union' tag used in declaring `%#T'"
-msgstr "`%s' ¤ÎÀë¸À¤Ë¤ª¤¤¤ÆÊ£¿ô¤ÎÊݸ¥¯¥é¥¹"
-
-#: parse.y:2453
-msgid "non-`union' tag used in declaring `%#T'"
-msgstr ""
+msgid "no bases given following `:'"
+msgstr "´ðÄì¤ä¥á¥ó¥Ð½é´ü²½»Ò¥ê¥¹¥È¤¬ ':' ¤Î¸å¤Ë³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: parse.y:2527 parse.y:2542
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr ""
-#: parse.y:2532
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr "½ÅÊ£¤¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò"
-#: parse.y:2550
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr "½ÅÊ£¤¹¤ë `virtual' »ØÄê»Ò"
-#: parse.y:2587
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr "±¦Â¦¥Ö¥ì¡¼¥¹¤ÎÁ°¤Î ';' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: parse.y:2807
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr "ISO C++ ¤Ï new Ãæ¤Ç¤Ï¡¢³ç¸Ì¤Î¤Ä¤¤¤¿ÇÛÎ󼡸µ¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:3088 parse.y:3108 parse.y:3117 parse.y:3146
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
msgid "`%T' is not a class or namespace"
msgstr ""
-#: parse.y:3313
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
msgstr "ISO C++ ¤Ï¥é¥Ù¥ëÀë¸À¤ò¶Ø¤¸¤Æ¤¤¤Þ¤¹"
-#: parse.y:3468
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ ¤Ï·×»»·¿ goto ¤ò¶Ø¤¸¤Þ¤¹"
-#: parse.y:3476
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr "¥é¥Ù¥ë¤Î¸å¤í¤Ë¤Ïʸ¤¬É¬ÍפǤ¹"
-#: parse.y:3572
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
+
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
msgstr "ISO C++ ½é´ü²½»Ò¤ÎÆâÉô¤Ç¤Ïʣʸ¤¬¶Ø¤¸¤é¤ì¤Æ¤¤¤Þ¤¹"
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3657 parse.y:3667
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr "¤ª¤½¤é¤¯ ')' ¤ò˺¤ì¤Æ¤¤¤Þ¤¹"
-#: parse.y:3764 parse.y:3769
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr "·¿»ØÄê»Ò¤Ï²¾°ú¿ôÍѤ˾Êά¤µ¤ì¤Þ¤·¤¿"
-#: parse.y:3773
+#: parse.y:3849
#, c-format
-msgid " perhaps you want `typename %E' to make it a type"
+msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr ""
-#: parse.y:3781
+#: parse.y:3851
+#, fuzzy
+msgid "no type `%D' in `%T'"
+msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤¬ `int' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: parse.y:3854
+#, fuzzy, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr "·¿»ØÄê»Ò¤Ï²¾°ú¿ôÍѤ˾Êά¤µ¤ì¤Þ¤·¤¿"
+
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr ""
-#: cp/pt.c:208
+#: cp/pt.c:284
#, fuzzy
msgid "data member `%D' cannot be a member template"
msgstr "Èó¥á¥ó¥Ð `%s' ¤ò `mutable' ¤È¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/pt.c:220
+#: cp/pt.c:296
#, fuzzy
msgid "invalid member template declaration `%D'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:615
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr ""
-#: cp/pt.c:627
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:702
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr ""
-#: cp/pt.c:703
+#: cp/pt.c:793 cp/pt.c:834
#, fuzzy
msgid " from definition of `%#D'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:711
+#: cp/pt.c:801
#, fuzzy
msgid "specialization of `%T' after instantiation"
msgstr "`%s' ¤ÎÀë¸À¤Ë `extern' ¤¬¤Ä¤¤¤Æ¤ª¤ê¡¢½é´ü²½¤â¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:714
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr ""
+
+#: cp/pt.c:860
#, fuzzy
msgid "explicit specialization of non-template `%T'"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:846
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr ""
-#: cp/pt.c:949
+#: cp/pt.c:1096
#, fuzzy
msgid "%s %+#D"
msgstr "%s: %s"
-#: cp/pt.c:1000
+#: cp/pt.c:1147
#, fuzzy
msgid "`%D' is not a function template"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤ë´Ø¿ô¤Î·¿¤¬Å¬¹ç¤·¤Þ¤»¤ó"
-#: cp/pt.c:1123
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr ""
-#: cp/pt.c:1131
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1358 cp/pt.c:1432
+#: cp/pt.c:1521 cp/pt.c:1595
#, fuzzy
msgid "template-id `%D' in declaration of primary template"
msgstr "`operator delete' ¤ÎÀë¸ÀÆâ¤Ë¿¤¹¤®¤ë°ú¿ô"
-#: cp/pt.c:1371
+#: cp/pt.c:1534
#, fuzzy
msgid "template parameter list used in explicit instantiation"
msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬½ªÃ¼¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/pt.c:1377
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1383
+#: cp/pt.c:1546
#, fuzzy
msgid "too many template parameter lists in declaration of `%D'"
msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n"
-#: cp/pt.c:1399
+#: cp/pt.c:1562
#, fuzzy
msgid "too few template parameter lists in declaration of `%D'"
-msgstr "\n%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n"
+msgstr ""
+"\n"
+"%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬¾¯¤Ê¤¹¤®¤Þ¤¹\n"
-#: cp/pt.c:1416
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr ""
-#: cp/pt.c:1429
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr ""
-#: cp/pt.c:1461
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1465
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr ""
@@ -19205,108 +17472,108 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1553
+#: cp/pt.c:1715
msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: cp/pt.c:1596
+#: cp/pt.c:1759
#, fuzzy
msgid "no member function `%D' declared in `%T'"
msgstr "¥Í¥¹¥È¤·¤¿´Ø¿ô `%s' ¤Ï `extern' ¤ËÀë¸À¤µ¤ì¤Þ¤·¤¿"
#. There are two many template parameter lists.
-#: cp/pt.c:1744
+#: cp/pt.c:1909
#, fuzzy
msgid "too many template parameter lists in declaration of `%T'"
msgstr "%s: ·Ù¹ð: `%s' ¤ÎÀë¸À¤Ç¤Î²¾°ú¿ô¥ê¥¹¥È¤¬Â¿¤¹¤®¤Þ¤¹\n"
-#: cp/pt.c:1840
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
msgstr ""
-#: cp/pt.c:2243
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2247
+#: cp/pt.c:2413
msgid " `%D'"
msgstr ""
-#: cp/pt.c:2259
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2284
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2327
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr ""
-#: cp/pt.c:2415
+#: cp/pt.c:2582
#, fuzzy
msgid "no default argument for `%D'"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: cp/pt.c:2548
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2551
+#: cp/pt.c:2738
msgid "template class without a name"
msgstr ""
-#: cp/pt.c:2626
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr ""
-#: cp/pt.c:2632
+#: cp/pt.c:2821
#, fuzzy
msgid "template definition of non-template `%#D'"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: cp/pt.c:2673
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr ""
-#: cp/pt.c:2685
+#: cp/pt.c:2874
#, fuzzy
msgid "got %d template parameters for `%#D'"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: cp/pt.c:2688
+#: cp/pt.c:2877
#, fuzzy
msgid "got %d template parameters for `%#T'"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: cp/pt.c:2690
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:2758
+#: cp/pt.c:2962
#, fuzzy
msgid "`%T' is not a template type"
msgstr "`%s' ¤ÏÉÔ´°Á´·¿¤Ç¤¹"
-#: cp/pt.c:2774
+#: cp/pt.c:2978
#, fuzzy
msgid "previous declaration `%D'"
msgstr "Á°Êý¤Ç¤Î `%s' ¤ÎÀë¸À"
-#: cp/pt.c:2775
+#: cp/pt.c:2979
#, fuzzy, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "½ÅÊ£¤·¤¿²¾°ú¿ô̾ `%s'"
-#: cp/pt.c:2791
+#: cp/pt.c:2995
#, fuzzy
msgid "template parameter `%#D'"
msgstr "°ú¿ô `%s' ¤¬Ì¤»ÈÍѤǤ¹"
-#: cp/pt.c:2792
+#: cp/pt.c:2996
msgid "redeclared here as `%#D'"
msgstr ""
@@ -19314,766 +17581,763 @@ msgstr ""
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2802
+#: cp/pt.c:3006
#, fuzzy
msgid "redefinition of default argument for `%#D'"
msgstr "`%s' ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:2803
+#: cp/pt.c:3007
#, fuzzy
msgid " original definition appeared here"
msgstr "´Ø¿ô¤ÎÄêµÁ¤¬ `typedef' ¤ÈÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:2896
+#: cp/pt.c:3100
#, fuzzy, c-format
msgid "`%E' is not a valid template argument"
msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
-#: cp/pt.c:2900
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:2902
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr ""
-#: cp/pt.c:2906
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr ""
-#: cp/pt.c:2917
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr ""
-#: cp/pt.c:2929
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2940
+#: cp/pt.c:3144
#, fuzzy, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/pt.c:2947
+#: cp/pt.c:3151
#, fuzzy, c-format
msgid "object `%E' cannot be used as template argument"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/pt.c:3323
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr ""
-#: cp/pt.c:3336 cp/pt.c:3352 cp/pt.c:3391
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr ""
-#: cp/pt.c:3339
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr ""
-#: cp/pt.c:3343
+#: cp/pt.c:3546
#, fuzzy, c-format
msgid " expected a type, got `%E'"
msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:3355
+#: cp/pt.c:3558
#, fuzzy
msgid " expected a type, got `%T'"
msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:3357
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr ""
-#: cp/pt.c:3393
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr ""
-#: cp/pt.c:3415
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr ""
-#: cp/pt.c:3418
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr ""
-#: cp/pt.c:3453
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr ""
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr ""
-#: cp/pt.c:3497
+#: cp/pt.c:3710
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3501
+#: cp/pt.c:3714
#, fuzzy
msgid "provided for `%D'"
msgstr "`%#D' ¤Î¤¿¤á¤Î¥Ç¥¹¥È¥é¥¯¥¿¤¬É¬ÍפǤ¹"
-#: cp/pt.c:3548
+#: cp/pt.c:3761
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "¥Þ¥¯¥í°ú¿ô \"%s\" ¤Ïʸ»úÎ󲽤µ¤ì¤Þ¤¹"
-#: cp/pt.c:3780
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr ""
-#: cp/pt.c:3898
+#: cp/pt.c:4139
#, fuzzy
msgid "`%T' is not a template"
msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:3911
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr ""
-#: cp/pt.c:3913
+#: cp/pt.c:4154
#, fuzzy
msgid "for template declaration `%D'"
msgstr "¶õ¤ÎÀë¸À¤Ç¤¹"
-#: cp/pt.c:4476
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr ""
-#: cp/pt.c:4911
+#: cp/pt.c:5247
#, fuzzy
msgid "ambiguous class template instantiation for `%#T'"
msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
-#: cp/pt.c:4918
+#: cp/pt.c:5254
#, fuzzy
msgid "%s %+#T"
msgstr "%s: %s"
-#: cp/pt.c:5940 cp/pt.c:6054
+#: cp/pt.c:6284 cp/pt.c:6396
#, fuzzy
msgid "instantiation of `%D' as type `%T'"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#: cp/pt.c:6096
+#: cp/pt.c:6440
#, fuzzy
msgid "invalid parameter type `%T'"
msgstr "²¾°ú¿ô `%s' ¤Ï̵¸ú¤Ç¤¹"
-#: cp/pt.c:6098
+#: cp/pt.c:6442
#, fuzzy
msgid "in declaration `%D'"
msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:6173
+#: cp/pt.c:6517
#, fuzzy
msgid "creating pointer to member function of non-class type `%T'"
msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/pt.c:6336
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6350
+#: cp/pt.c:6694
#, fuzzy, c-format
msgid "creating array with size zero (`%E')"
msgstr "Â礭¤µ¥¼¥í¤ÎÇÛÎó¤òºî¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6588
+#: cp/pt.c:6933
#, fuzzy
msgid "forming reference to void"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:6590
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr ""
-#: cp/pt.c:6624
+#: cp/pt.c:6973
#, fuzzy
msgid "creating pointer to member of non-class type `%T'"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/pt.c:6686
+#: cp/pt.c:6979
+#, fuzzy
+msgid "creating pointer to member reference type `%T'"
+msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
+
+#: cp/pt.c:7057
#, fuzzy
msgid "creating array of `%T'"
msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
-#: cp/pt.c:6732
+#: cp/pt.c:7100
msgid "`%T' is not a class, struct, or union type"
msgstr ""
-#: cp/pt.c:6844
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr "¥Æ¥ó¥×¥ì¡¼¥ÈÆâ¤Ç `%s' ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:7601
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr ""
-#: cp/pt.c:7602
+#: cp/pt.c:7976
#, fuzzy
msgid " trying to instantiate `%D'"
msgstr "%s:%d: `%s' ¤«¤é¼ÂÂ⽤µ¤ì¤Þ¤·¤¿\n"
-#: cp/pt.c:8032
+#: cp/pt.c:8421
msgid "incomplete type unification"
msgstr "ÉÔ´°Á´¤Ê·¿¤Îñ°ì²½"
-#: cp/pt.c:8987
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr "¥Æ¥ó¥×¥ì¡¼¥È·¿Åý°ìÃæ `%s' ¤¬»ÈÍѤµ¤ì¤Þ¤·¤¿"
-#: cp/pt.c:9409 cp/pt.c:9477
+#: cp/pt.c:9821 cp/pt.c:9893
#, fuzzy
msgid "explicit instantiation of non-template `%#D'"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:9425 cp/pt.c:9472
+#: cp/pt.c:9837 cp/pt.c:9888
msgid "no matching template for `%D' found"
msgstr ""
-#: cp/pt.c:9431
+#: cp/pt.c:9843
#, fuzzy
msgid "explicit instantiation of `%#D'"
msgstr "%s: `%s' ¤Î½é´ü²½:\n"
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9448
-#, fuzzy
-msgid "explicit instantiation of `%#D' after"
-msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-
-#: cp/pt.c:9449 cp/pt.c:9586
-#, fuzzy
-msgid "explicit specialization here"
-msgstr "½é´ü²½"
-
-#: cp/pt.c:9464
+#: cp/pt.c:9880
#, fuzzy
msgid "duplicate explicit instantiation of `%#D'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:9489
+#: cp/pt.c:9905
#, fuzzy
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥½¥Ã¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/pt.c:9493 cp/pt.c:9571
+#: cp/pt.c:9909 cp/pt.c:9999
#, fuzzy
msgid "storage class `%D' applied to template instantiation"
msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
-#: cp/pt.c:9538
+#: cp/pt.c:9966
#, fuzzy
msgid "explicit instantiation of non-template type `%T'"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:9552
+#: cp/pt.c:9980
#, fuzzy
msgid "explicit instantiation of `%#T' before definition of template"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:9560
+#: cp/pt.c:9988
#, fuzzy, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
msgstr "ISO C++ ¤Ï¸º»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/pt.c:9585
-#, fuzzy
-msgid "explicit instantiation of `%#T' after"
-msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-
-#: cp/pt.c:9603
+#: cp/pt.c:10032
#, fuzzy
msgid "duplicate explicit instantiation of `%#T'"
msgstr "¥é¥Ù¥ë¤ÎÀë¸À `%s' ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: cp/pt.c:9944
+#: cp/pt.c:10412
#, fuzzy
msgid "explicit instantiation of `%D' but no definition available"
msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
-#: cp/pt.c:10316
+#: cp/pt.c:10815
#, fuzzy
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr "'#' ¤Ë¥Þ¥¯¥í²¾°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Þ¤»¤ó"
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr "-frepo ¤Ï -c ÉÕ¤­¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr "%s ¤ËÉԲIJò¤Ê¥ê¥Ý¥¸¥È¥ê¾ðÊ󤬤¢¤ê¤Þ¤¹"
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ë¥ê¥Ý¥¸¥È¥ê¾ðÊó¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr "-fno-rtti ¤¬»ØÄꤵ¤ì¤ë¤È typeid ¤ò»È¤¨¤Þ¤»¤ó"
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr "typeid ¤ò»È¤¦Á°¤Ë #include <typeinfo> ¤È¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó"
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr ""
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr ""
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr ""
-#: cp/search.c:340
-msgid "`%T' is an inaccessible base of `%T'"
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
msgstr ""
#: cp/search.c:350
-msgid "`%T' is an ambiguous base of `%T'"
+msgid "`%T' is an inaccessible base of `%T'"
msgstr ""
-#: cp/search.c:1826
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+#, fuzzy
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "final static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Î¥¯¥é¥¹Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
msgstr "¶¦ÊÑ(covariant)Ìá¤êÃͤؤΥݥ¤¥ó¥¿¤òÄ´À°¤·¤Þ¤¹"
-#: cp/search.c:1830 cp/search.c:1837
+#: cp/search.c:2054 cp/search.c:2061
#, fuzzy
msgid "invalid covariant return type for `%#D'"
msgstr "`%s' ¤ËÂФ¹¤ë¥ì¥¸¥¹¥¿Ì¾¤È¤·¤Æ̵¸ú¤Ç¤¹"
-#: cp/search.c:1831
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr ""
-#: cp/search.c:1838
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
msgstr ""
-#: cp/search.c:1843
+#: cp/search.c:2067
#, fuzzy
msgid "conflicting return type specified for `%#D'"
msgstr "`%s' ¤È·¿¤¬Ì·½â¤·¤Þ¤¹"
-#: cp/search.c:1844
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr ""
-#: cp/search.c:1853
+#: cp/search.c:2077
#, fuzzy, c-format
msgid "looser throw specifier for `%#F'"
msgstr "`%s' ¤ËÂФ·¤Æ char ¤È¤È¤â¤Ë long ¤Þ¤¿¤Ï short ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/search.c:1854
+#: cp/search.c:2078
#, c-format
msgid " overriding `%#F'"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1944
+#: cp/search.c:2167
#, fuzzy
msgid "`%#D' cannot be declared"
msgstr "const `%s' ¤ò `mutable' ¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/search.c:1945
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr ""
-#: cp/search.c:2130
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr ""
-#: cp/semantics.c:903
+#: cp/semantics.c:919
#, fuzzy, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr "²¾°ú¿ô `%s' ¤Î·¿¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/semantics.c:1045
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
msgstr "ISO C++ ¤Ï̾Á°¤Ä¤­Ìá¤êÃͤòµö²Ä¤·¤Þ¤»¤ó"
-#: cp/semantics.c:1054
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr ""
-#: cp/semantics.c:1062
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿ÍѤΥǥե©¥ë¥ÈÌá¤êÃͤòºÆÄêµÁ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/semantics.c:1129
-#, fuzzy
-msgid "base initializer for `%T'"
-msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-
-#: cp/semantics.c:1131
-msgid " will be re-ordered to precede member initializations"
-msgstr " Àè¤Ë¤¢¤ë¥á¥ó¥Ð½é´ü²½»Ò¤ÈʤÓÂؤ¨¤é¤ì¤Þ¤¹"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤·¤«´ðÄì½é´ü²½»Ò¥ê¥¹¥È¤ò¤È¤ê¤Þ¤»¤ó"
-#: cp/semantics.c:1401
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr "`this' ¤ÏÀÅŪ¥á¥ó¥Ð´Ø¿ô¤«¤é»ÈÍѤǤ­¤Þ¤»¤ó"
-#: cp/semantics.c:1407
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/semantics.c:1409
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr "¥È¥Ã¥×¥ì¥Ù¥ë¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/semantics.c:1447
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr ""
-#: cp/semantics.c:1483
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr ""
-#: cp/semantics.c:1489
+#: cp/semantics.c:1425
#, fuzzy
msgid "`%E' is not of type `%T'"
msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
-#: cp/semantics.c:1701
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr "¥Æ¥ó¥×¥ì¡¼¥È·¿²¾°ú¿ô¤Ë¤Ï `class' ¤ä `typename' ͽÌó¸ì¤ò»È¤ï¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: cp/semantics.c:1760
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
+
+#: cp/semantics.c:1694
#, fuzzy
msgid "definition of `%#T' inside template parameter list"
msgstr "`%s' ¤ÎÀë¸À¤Ï²¾°ú¿ô¥ê¥¹¥È¤Î¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
-#: cp/semantics.c:1776
+#: cp/semantics.c:1710
#, fuzzy
msgid "invalid definition of qualified type `%T'"
msgstr "̤ÄêµÁ¤Î·¿ `%s %s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-#: cp/semantics.c:2128
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2161
+#: cp/semantics.c:2093
#, fuzzy
msgid "multiple declarators in template declaration"
msgstr "°ì¤Ä¤ÎÀë¸À¤ËÊ£¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤¹"
-#: cp/spew.c:245
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "¥ì¥¸¥¹¥¿ '%c' ¤¬ÉÔÌÀ¤Ç¤¹"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr "¼±ÊÌ»Ò̾ `%s' ¤Ï GNU C++ ÆâÉô¤Î¥Í¡¼¥ß¥ó¥°Àïά¤È¶¥¹ç¤·¤Þ¤¹"
-#: cp/spew.c:1020 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr "ÊݸºÑ¤ß´Ø¿ô¥Æ¥­¥¹¥È¤ÎËöÈø¤Ç¹½Ê¸²òÀÏ¥¨¥é¡¼"
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+#, fuzzy
+msgid "%Hend of file read inside definition"
+msgstr "ʸ»úÎóÄê¿ô¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ò¸¡½Ð¤·¤Þ¤·¤¿"
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr "¥á¥½¥Ã¥É»ÅÍÍÆâ¤Ç¤Î¹½Ê¸²òÀÏ¥¨¥é¡¼"
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Î´Ø¿ôËÜÂΤò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+#, fuzzy
+msgid "%Hend of file read inside default argument"
+msgstr "ʸ»úÄê¿ô¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ò¸¡½Ð¤·¤Þ¤·¤¿"
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr ""
-#: cp/spew.c:1435
+#: cp/spew.c:1483
#, fuzzy
msgid "invalid type `%T' for default argument to `%T'"
msgstr "`%s' ¤Î°ú¿ô¤È¤·¤Æ̵¸ú¤Ê·¿"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "%s ¤¬ `%s' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr "%s ¤¬ `%c' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr "%s ¤¬ `\\%o' ¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, c-format
msgid "%s before `%s' token"
msgstr "%s ¤¬ `%s' ¥È¡¼¥¯¥ó¤ÎÁ°¤Ë¤¢¤ê¤Þ¤¹"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr "%s ¤Ëº¸ÊÕÃͤǤϤʤ¤ÃÍ"
-#: cp/tree.c:536
+#: cp/tree.c:562
#, fuzzy
-msgid "`%T' cannot be `restrict'-qualified"
-msgstr "`%s' ¤òÀÅŪ¤Ë³ÎÊݤǤ­¤Þ¤»¤ó"
-
-#: cp/tree.c:547
-msgid "`%T' cannot be `const'-, `volatile'-, or `restrict'-qualified"
-msgstr ""
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
-#: cp/tree.c:1888
+#: cp/tree.c:1941
#, fuzzy, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr "`java_interface' °À­¤Ï Java ¥¯¥é¥¹ÄêµÁ¤ËÂФ·¤Æ¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹"
-#: cp/tree.c:1918
+#: cp/tree.c:1971
#, fuzzy, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr "`com_interface' °À­¤Ï¥¯¥é¥¹ÄêµÁ¤Ë¤Î¤ßÍѤ¤¤ë»ö¤¬¤Ç¤­¤Þ¤¹"
-#: cp/tree.c:1924
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1949
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÀ°¿ô·¿¤ÎÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/tree.c:1970
+#: cp/tree.c:2023
#, fuzzy, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr "init_priority °À­¤Ï¥¯¥é¥¹·¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Õ¥¡¥¤¥ë¥¹¥³¡¼¥×ÄêµÁ¤Ç¤Î¤ß»È¤¨¤Þ¤¹"
-#: cp/tree.c:1978
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤¬Èϰϳ°¤Ç¤¹"
-#: cp/tree.c:1988
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr "Í׵ᤵ¤ì¤¿ init_priority ¤ÏÆâÉô¤Ç»ÈÍѤ¹¤ë¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤Þ¤¹"
-#: cp/tree.c:1998
+#: cp/tree.c:2051
#, fuzzy, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: cp/typeck.c:488
+#: cp/tree.c:2588
+#, fuzzy, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "Tree ¸¡ºº: %s ¤¬¤¢¤ë¤Ù¤­½ê¤Ë %s ¤¬¤¢¤ê¤Þ¤¹(%s Æâ, %s:%d)"
+
+#: cp/typeck.c:524
#, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
msgstr "ISO C++ ¤Ï `void *' ·¿¥Ý¥¤¥ó¥¿¤È´Ø¿ô¥Ý¥¤¥ó¥¿¤È¤Î %s ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:509
+#: cp/typeck.c:545
#, fuzzy
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr "·¿¤¬Á´¤¯°Û¤Ê¤ë¥Ý¥¤¥ó¥¿¤ÎÈæ³Ó¤Ç¥­¥ã¥¹¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:1493
+#: cp/typeck.c:1436
#, fuzzy
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr "ISO C ¤Ç¤Ï°ú¿ô¤«¤é¶¦ÍÑÂΤؤÎÊÑ´¹¤ò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:1563
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:1569
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ ¤Ï¥á¥ó¥Ð´Ø¿ô¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:1575
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr "ISO C++ ¤ÏÉÔ´°Á´·¿¤Ç¤¢¤ë `void' ·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:1589
-#, fuzzy
-msgid "`sizeof' applied to non-static member"
-msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ËŬÍѤµ¤ì¤¿ `sizeof'"
+#: cp/typeck.c:1514
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "Èó¥á¥ó¥Ð´Ø¿ô¤Ç¤Î `this' ¤Î»ÈÍѤÏ̵¸ú¤Ç¤¹"
-#: cp/typeck.c:1594
-#, fuzzy
-msgid "`sizeof' applied to incomplete type `%T'"
-msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/typeck.c:1624
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr "sizeof ¤¬¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:1627
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
msgstr "ISO C++ ¤Ï´Ø¿ô·¿¤Î¼°¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:1774
-msgid "invalid use of non-lvalue array"
-msgstr "Èóº¸ÊÕÃÍÇÛÎó¤Î̵¸ú¤ÊÍøÍÑ"
-
-#: cp/typeck.c:1880
+#: cp/typeck.c:1759
#, fuzzy
msgid "deprecated conversion from string constant to `%T'"
msgstr "ʸ»úÎóÄê¿ôÃæ¤Î \\r ¥¨¥¹¥±¡¼¥×"
-#: cp/typeck.c:1898
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
msgstr ""
-#: cp/typeck.c:2041
+#: cp/typeck.c:1916
#, fuzzy
-msgid "invalid use of %D"
-msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
+msgid "`%D' is not a member of `%T'"
+msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:2091
-msgid "destructor specifier `%T::~%T' must have matching names"
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
msgstr ""
-#: cp/typeck.c:2097
-msgid "type `%T' has no destructor"
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
msgstr ""
-#: cp/typeck.c:2114 cp/typeck.c:2187
+#: cp/typeck.c:2168
#, fuzzy
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ"
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:2119
+#: cp/typeck.c:2179
#, fuzzy
-msgid "invalid use of template `%#D' as expression"
-msgstr "void ¼°¤ÎÉÔŬÀڤʻÈÍÑ"
+msgid "`%T' is not a base of `%T'"
+msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
-#: cp/typeck.c:2178
-#, fuzzy
-msgid "`%#T' has no member named `%D'"
-msgstr "%s ¤Ë `%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó"
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr ""
-#: cp/typeck.c:2219
-msgid "invalid reference to NULL ptr, use ptr-to-member instead"
-msgstr "NULL ¥Ý¥¤¥ó¥¿¤Ø¤Î̵¸ú¤Ê»²¾È¡¢Âå¤ï¤ê¤Ë¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¤¤Þ¤·¤ç¤¦"
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr ""
+
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "`%s' ¤ÏÄ̾Èó static ¤Ê´Ø¿ô¤Ç¤¹"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2345
+#: cp/typeck.c:2338
msgid "`%T' is not a pointer-to-object type"
msgstr ""
-#: cp/typeck.c:2372
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
-#: cp/typeck.c:2378
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr "̵¸ú¤Ê·¿°ú¿ô¤Ç¤¹"
-#: cp/typeck.c:2481
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ ¤Ïº¸ÊÕÃͤǤϤʤ¤ÇÛÎó¤Îź»ú¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:2492
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr "`register' ¤ÈÀë¸À¤µ¤ì¤¿ÇÛÎó¤Ëź»ú¤ò¤Ä¤±¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:2667 cp/typeck.c:2807
-msgid "pointer to member function called, but not in class scope"
-msgstr "¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿¤¬¡¢¥¯¥é¥¹¥¹¥³¡¼¥×Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: cp/typeck.c:2691
-#, fuzzy
-msgid "object missing in call to method `%D'"
-msgstr "`%s' ¤Ø¤Î¸Æ¤Ó½Ð¤·¤Ï¥¤¥ó¥é¥¤¥ó²½¤Ç¤­¤Þ¤»¤ó"
-
-#: cp/typeck.c:2725
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr ""
-
-#: cp/typeck.c:2805
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr "ÀÅŪ¥á¥ó¥Ð´Ø¿ô¥¹¥³¡¼¥×Æâ¤Ç¤Ï `this' ¤òÍפ¹¤ë¥á¥ó¥Ð´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï̵¸ú¤Ç¤¹"
+#: cp/typeck.c:2570
+#, fuzzy, c-format
+msgid "object missing in use of `%E'"
+msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¹½ÃۤλÈÍѤǥª¥Ö¥¸¥§¥¯¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:2989
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
msgstr "ISO C++ ¤Ï¥×¥í¥°¥é¥à¤ÎÃ椫¤é `::main' ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3014
+#: cp/typeck.c:2699
#, fuzzy, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr "¤³¤³¤Ç¤Ï¥á¥ó¥Ð´Ø¿ô¥Ý¥¤¥ó¥¿¸Æ¤Ó½Ð¤·¤¬¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:3027
+#: cp/typeck.c:2712
#, fuzzy, c-format
msgid "`%E' cannot be used as a function"
msgstr "\"%s\" ¤Ï¥Þ¥¯¥í̾¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó"
-#: cp/typeck.c:3152
+#: cp/typeck.c:2824
#, fuzzy
msgid "too many arguments to %s `%+#D'"
msgstr "´Ø¿ô `%s' ¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:3193
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr "¸Æ¤Ð¤ì¤¿´Ø¿ô¤Î²¾°ú¿ô¤Î·¿¤¬ÉÔ´°Á´¤Ç¤¹"
-#: cp/typeck.c:3260
+#: cp/typeck.c:2928
#, fuzzy
msgid "too few arguments to %s `%+#D'"
msgstr "´Ø¿ô `%s' ¤Ø¤Î°ú¿ô¤¬¾¯¤Ê¤¹¤®¤Þ¤¹"
-#: cp/typeck.c:3388 cp/typeck.c:3398
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr ""
-#: cp/typeck.c:3458
+#: cp/typeck.c:3126
#, fuzzy, c-format
msgid "division by zero in `%E / 0'"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:3460
+#: cp/typeck.c:3128
#, fuzzy, c-format
msgid "division by zero in `%E / 0.'"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:3515
+#: cp/typeck.c:3158
#, fuzzy, c-format
msgid "division by zero in `%E %% 0'"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:3517
+#: cp/typeck.c:3160
#, fuzzy, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "#if ¤Ç¥¼¥í½ü»»¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: cp/typeck.c:3597
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr "%s ¥í¡¼¥Æ¡¼¥È²ó¿ô¤¬Éé¤ÎÃͤǤ¹"
-#: cp/typeck.c:3600
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr "%s ¥í¡¼¥Æ¡¼¥È²ó¿ô >= ·¿¤ÎÉý¤Ç¤¹"
-#: cp/typeck.c:3631 cp/typeck.c:3636 cp/typeck.c:3727 cp/typeck.c:3732
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:3912
+#: cp/typeck.c:3553
#, fuzzy
msgid "comparison between types `%#T' and `%#T'"
msgstr "¥Ý¥¤¥ó¥¿¤ÈÀ°¿ô¤È¤ÎÈæ³Ó¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:3948
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr "Éä¹çÉÕ¤­¤ÈÉä¹ç̵¤·¤ÎÀ°¿ô¼°Æ±»Î¤ÎÈæ³Ó¤Ç¤¹"
-#: cp/typeck.c:4013
+#: cp/typeck.c:3654
#, fuzzy
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
@@ -20082,310 +18346,301 @@ msgstr "Æó¹à±é»»»Ò %s ¤¬ÉÔŬÀڤǤ¹"
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:4035
+#: cp/typeck.c:3676
#, fuzzy
msgid "NULL used in arithmetic"
msgstr "´Ø¿ô¥Ý¥¤¥ó¥¿¤¬·×»»¤Ç»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:4087
-msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:4093
-msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:4099
-msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:4105
-msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck.c:4176
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4178
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4180
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥½¥Ã¥É¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4182
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
msgstr "ISO C++ ¤Ï¸º»»¤Ë¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4194
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "¥Ý¥¤¥ó¥¿±é»»¤ÇÉÔ´°Á´·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤Ï̵¸ú¤Ç¤¹"
-#: cp/typeck.c:4231
-#, fuzzy
-msgid "attempt to take address of bit-field structure member `%D'"
-msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
-#: cp/typeck.c:4302
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4504
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ ¤Ï enum ¤Î %s ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4516
+#: cp/typeck.c:4103
#, fuzzy
msgid "cannot %s a pointer to incomplete type `%T'"
msgstr "²¾°ú¿ô `%s' ¤ÏÉÔ´°Á´·¿¤ò»Ø¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4523
+#: cp/typeck.c:4110
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type `%T'"
msgstr "ISO C++ ¤Ï¸º»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4548
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
msgstr "º¸ÊÕÃͤȤ·¤Æ»È¤ï¤ì¤ëÈ󻲾ȷ¿¤Ø¤Î¥­¥ã¥¹¥È¤Ç¤¹"
-#: cp/typeck.c:4582
+#: cp/typeck.c:4169
#, fuzzy
msgid "invalid use of `--' on bool variable `%D'"
msgstr "¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤Î̵¸ú¤Ê `%s' ¤Î»ÈÍÑ"
#. ARM $3.4
-#: cp/typeck.c:4615
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
msgstr "ISO C++ ¤Ï `::main' ´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
#. An expression like &memfn.
-#: cp/typeck.c:4682
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4684
+#: cp/typeck.c:4271
#, fuzzy
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
msgstr "ISO C++ ¤ÏÈóº¸ÊÕÃͼ°¤Ø¤Î¥­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4708
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ISO C++ ¤ÏÈóº¸ÊÕÃͼ°¤Ø¤Î¥­¥ã¥¹¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:4724
-msgid "unary `&'"
-msgstr "ñ¹à¤Î `&'"
+#: cp/typeck.c:4324
+#, fuzzy
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "¹½Â¤ÂÎ¥á¥ó¥Ð `%s' ¤Î¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4844
+#: cp/typeck.c:4444
#, fuzzy
msgid "taking address of destructor"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥É¥ì¥¹¤ò¼è¤í¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:4857
+#: cp/typeck.c:4457
#, fuzzy
msgid "taking address of bound pointer-to-member expression"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:4925
+#: cp/typeck.c:4473
+#, fuzzy
+msgid "cannot create pointer to reference member `%D'"
+msgstr "¥Ý¥¤¥ó¥¿¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
+
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr "`this' ¤Ï±¦ÊÕÃͼ°¤Ç¤¢¤ê¡¢¤½¤Î¥¢¥É¥ì¥¹¤ò¼è¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:4941
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr ""
-#: cp/typeck.c:5145
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr ""
-#: cp/typeck.c:5153
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5192
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5212
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr ""
-#: cp/typeck.c:5225
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr ""
-#: cp/typeck.c:5234
+#: cp/typeck.c:4952
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ISO C++ ¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤È¥ª¥Ö¥¸¥§¥¯¥È¥Ý¥¤¥ó¥¿¤Î´Ö¤Ç¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5240
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5267
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5270
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5293
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5309
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5351 cp/typeck.c:5356
+#: cp/typeck.c:5069 cp/typeck.c:5074
#, fuzzy
msgid "ISO C++ forbids casting to an array type `%T'"
msgstr "ISO C ¤Ï¶¦ÍÑÂη¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5364
+#: cp/typeck.c:5082
#, fuzzy
msgid "invalid cast to function type `%T'"
msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹"
-#: cp/typeck.c:5416
+#: cp/typeck.c:5138
#, fuzzy
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤«¤é½¤¾þ»Ò¤¬ÀÚ¤ê¼Î¤Æ¤é¤ì¤Þ¤¹"
-#: cp/typeck.c:5462
+#: cp/typeck.c:5184
#, fuzzy
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr "¥­¥ã¥¹¥È¤Ë¤è¤Ã¤Æ¥Ý¥¤¥ó¥¿¤¬¼¨¤¹·¿¤ÎÍ׵ᥢ¥é¥¤¥ó¥á¥ó¥È¤¬Áý²Ã¤·¤Þ¤¹"
-#: cp/typeck.c:5650
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr ""
-#: cp/typeck.c:5684
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
msgstr "ISO C++ ¤Ïº¸ÊÕÃͤȤ·¤Æ»È¤ï¤ì¤ëÈ󻲾ȷ¿¤Ø¤Î¥­¥ã¥¹¥È¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5783
+#: cp/typeck.c:5463
#, fuzzy
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr "%d ÈÖÌܤΰú¿ô¤¬ `%s' ¤Î·¿¤È¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck.c:5790
+#: cp/typeck.c:5470
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ ¤ÏÇÛÎó¤ÎÂåÆþ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/typeck.c:5805
-msgid "return value from function receives multiple initializations"
-msgstr "´Ø¿ô¤«¤é¤ÎÌá¤êÃͤ¬Ê£¿ô¤Î½é´ü²½¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
-
-#: cp/typeck.c:5942
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:5950
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5961 cp/typeck.c:5980
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:5984
+#: cp/typeck.c:5619
#, fuzzy
msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr " ¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð¤Ø¤ÎÊÑ´¹¤Ç"
-#: cp/typeck.c:6054
+#: cp/typeck.c:5695
#, fuzzy
msgid "invalid conversion to type `%T' from type `%T'"
msgstr "¥ì¥·¡¼¥Ð·¿ `%s' ¤¬Ìµ¸ú¤Ç¤¹"
-#: cp/typeck.c:6219
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6222
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
msgstr ""
-#: cp/typeck.c:6230
+#: cp/typeck.c:5871
#, fuzzy
msgid "passing `%T' for %s %P of `%D'"
msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
-#: cp/typeck.c:6233
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr ""
-#: cp/typeck.c:6243
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6246
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr ""
-#: cp/typeck.c:6333
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr ""
-#: cp/typeck.c:6336
+#: cp/typeck.c:5985
#, fuzzy
msgid "cannot convert `%T' to `%T' in %s"
msgstr "¥Ý¥¤¥ó¥¿·¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck.c:6423 cp/typeck.c:6425
+#: cp/typeck.c:6073 cp/typeck.c:6075
#, fuzzy
msgid "in passing argument %P of `%+D'"
msgstr "°ú¿ô %d ¸Ä¤Î `%s' ¤òÅϤ·¤Þ¤¹"
-#: cp/typeck.c:6539
+#: cp/typeck.c:6190
msgid "returning reference to temporary"
msgstr "°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:6546
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:6558
+#: cp/typeck.c:6209
#, fuzzy
msgid "reference to local variable `%D' returned"
msgstr "Èóº¸ÊÕÃͤؤλ²¾È¤¬ÊÖ¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck.c:6561
+#: cp/typeck.c:6212
#, fuzzy
msgid "address of local variable `%D' returned"
msgstr "Í׵ᤵ¤ì¤¿Âç°è¥ì¥¸¥¹¥¿ÊÑ¿ô `%s' ¤Î¥¢¥É¥ì¥¹"
-#: cp/typeck.c:6592
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6600
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Î´Ø¿ô try ¥Ö¥í¥Ã¥¯¤Î¥Ï¥ó¥É¥é¤«¤é¤Ï return ¤Ç¤­¤Þ¤»¤ó"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6603
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤«¤éÃͤòÊÖ¤½¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:6620
+#: cp/typeck.c:6271
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr "return ʸ¤¬Ãͤò»ý¤Á¤Þ¤»¤ó¡£´Ø¿ôÀë¸À¤Ç¤ÏÈó void ¤ÎÌá¤êÃͤò»ý¤Á¤Þ¤¹"
-#: cp/typeck.c:6636
+#: cp/typeck.c:6287
msgid "return-statement with a value, in function declared with a void return type"
msgstr "return ʸ¤¬Ãͤò»ý¤Á¤Þ¤¹¡£´Ø¿ôÀë¸À¤Ç¤ÏÌá¤ê·¿¤¬ void ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: cp/typeck.c:6657
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr ""
@@ -20393,298 +18648,432 @@ msgstr ""
msgid "type `%T' is not a base type for type `%T'"
msgstr ""
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
#, fuzzy
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
#, fuzzy
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
#, fuzzy
msgid "cannot declare field `%D' to be of type `%T'"
msgstr "`::main' ¤ò template ¤È¤·¤Æ¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
#, fuzzy
msgid "invalid return type for member function `%#D'"
msgstr "´Ø¿ô¤ÎÊÖ¤¹·¿¤¬´Ø¿ô¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
#, fuzzy
msgid "invalid return type for function `%#D'"
msgstr "´Ø¿ô `%s' ¤ËÂФ·¤ÆÉÔŬÀÚ¤ÊÊݸ¥¯¥é¥¹"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
#, fuzzy
msgid "cannot allocate an object of type `%T'"
msgstr "`id' ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂΤ¹¤ëÀÅŪ¥¢¥¯¥»¥¹¤Ç¤¹"
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr " °Ê²¼¤Î²¾ÁÛ´Ø¿ô¤¬Ãê¾Ý¤Ç¤¢¤ë¤¿¤á¤Ç¤¹:"
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr ""
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr ""
-#: cp/typeck2.c:213
-#, fuzzy
-msgid "invalid use of undefined type `%#T'"
-msgstr "̤ÄêµÁ¤Î·¿ `%s %s' ¤Î»ÈÍѤÏÉÔŬÀڤǤ¹"
-
-#: cp/typeck2.c:214
-#, fuzzy
-msgid "forward declaration of `%#T'"
-msgstr "`%s' ¤¬ºÆÀë¸À¤µ¤ì¤Þ¤·¤¿"
-
-#: cp/typeck2.c:218
-#, fuzzy
-msgid "invalid use of `%T'"
-msgstr "`restrict' ¤ÎÍÑË¡¤¬ÉÔŬÀڤǤ¹"
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr ""
-
-#: cp/typeck2.c:236
-#, fuzzy
-msgid "invalid use of template type parameter"
-msgstr "̵¸ú¤Ê¥Ç¥Õ¥©¥ë¥È¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô"
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr ""
-
-#: cp/typeck2.c:270
-#, fuzzy, c-format
-msgid "internal error #%d"
-msgstr "ÆâÉô¥¨¥é¡¼: #%d¡£"
-
-#: cp/typeck2.c:325
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr ""
-#: cp/typeck2.c:335
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:337
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:340 cp/typeck2.c:346 cp/typeck2.c:352
-#, fuzzy
-msgid "initializer list construction invalid for `%D'"
-msgstr "½é´ü²½»Ò¤Ï `%s' ¤Î¥µ¥¤¥º¤ÎÆÃÄê¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-
-#: cp/typeck2.c:341
-msgid "due to the presence of a constructor"
-msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¤¢¤ë¤³¤È¤Ë¤è¤ë"
-
-#: cp/typeck2.c:347 cp/typeck2.c:353
-#, fuzzy
-msgid "due to non-public access of member `%D'"
-msgstr "½ÅÊ£¤·¤¿¥á¥ó¥Ð `%s'"
-
-#: cp/typeck2.c:365
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
msgstr "¥«¥ó¥Þ±é»»»Ò¤¬Ìá¤êÃͤò½é´ü²½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:374
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
msgstr "¤³¤Îʸˡ¤ò»È¤Ã¤ÆÇÛÎó¤ò½é´ü²½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:436
-#, fuzzy
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr "ANSI C++ ¤ÏÄê¿ô¤Ç¤Ê¤¤½¸¹çÂΤνé´ü²½»Ò¼°¤ò¶Ø¤¸¤Þ¤¹"
-
-#: cp/typeck2.c:516
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
msgstr "ÇÛÎó¤ò²¾°ú¿ô¥ê¥¹¥È¤Ë¤è¤Ã¤Æ½é´ü²½¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:572
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
msgstr "¥¹¥«¥é¡¼ÊÑ¿ô¤Î½é´ü²½»Ò¤Ï°ì¤Ä¤ÎÍ×ÁǤòÍ׵ᤷ¤Þ¤¹"
-#: cp/typeck2.c:579
+#: cp/typeck2.c:536
#, fuzzy
msgid "braces around scalar initializer for `%T'"
msgstr "¥¹¥«¥é¡¼½é´ü²½»Ò¤¬¥Ö¥ì¡¼¥¹¤Ç°Ï¤Þ¤ì¤Æ¤¤¤Þ¤¹"
-#: cp/typeck2.c:582
+#: cp/typeck2.c:539
#, fuzzy
msgid "ignoring extra initializers for `%T'"
msgstr "(`%s' ¤Î½é´ü²½¤ÏÉÔ´°Á´¤Ç¤¹)"
-#: cp/typeck2.c:594
+#: cp/typeck2.c:551
#, fuzzy
msgid "variable-sized object of type `%T' may not be initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: cp/typeck2.c:604
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr ""
-#: cp/typeck2.c:670
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
msgstr "½¸¹çÂΤ¬ÉôʬŪ¤Ë¥Ö¥é¥±¥Ã¥È¤Î½é´ü²½»Ò¤ò»ý¤Á¤Þ¤¹"
-#: cp/typeck2.c:700 cp/typeck2.c:801
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
msgstr "¼«ÌÀ¤Ç¤Ê¤¤¥é¥Ù¥ë¤Î¤Ä¤¤¤¿½é´ü²½»Ò¤Ç¤¹"
-#: cp/typeck2.c:717
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
msgstr "Í×ÁǤΤʤ¤ÇÛÎó¤ËÂФ¹¤ë¡¢¶õ¤Ç¤Ï¤Ê¤¤½é´ü²½»Ò¤Ç¤¹"
-#: cp/typeck2.c:767
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
msgstr "²¾ÁÛ´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/typeck2.c:773
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
msgstr "´ðÄ쥯¥é¥¹¤ò»ý¤Ä¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/typeck2.c:779
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
msgstr "²¾ÁÛ´Ø¿ô¤ò»ÈÍѤ¹¤ë¥ª¥Ö¥¸¥§¥¯¥ÈÍѤνé´ü²½»Ò¥ê¥¹¥È¤Ç¤¹"
-#: cp/typeck2.c:842 cp/typeck2.c:859
+#: cp/typeck2.c:811 cp/typeck2.c:827
#, fuzzy
msgid "missing initializer for member `%D'"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: cp/typeck2.c:847
+#: cp/typeck2.c:816
#, fuzzy
msgid "uninitialized const member `%D'"
msgstr "¥á¥ó¥Ð `%s' ¤ËÂФ¹¤ë̵¸ú¤Ê½é´üÃÍ"
-#: cp/typeck2.c:850
+#: cp/typeck2.c:818
#, fuzzy
msgid "member `%D' with uninitialized const fields"
msgstr "̤½é´ü²½Äê¿ô¤ò ROM ¤ËÃÖ¤«¤Ê¤¤"
-#: cp/typeck2.c:853
+#: cp/typeck2.c:821
#, fuzzy
msgid "member `%D' is uninitialized reference"
msgstr "²¾°ú¿ô `%s' ¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:896
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
msgstr "union ½é´ü²½»Ò¤¬¥Õ¥£¡¼¥ë¥É̾¤Ç¤Ï¤Ê¤¯¥¤¥ó¥Ç¥Ã¥¯¥¹ÃͤˤʤäƤ¤¤Þ¤¹"
-#: cp/typeck2.c:908
+#: cp/typeck2.c:880
#, fuzzy
msgid "no field `%D' in union being initialized"
msgstr "ÉÔÌÀ¤Ê¥Õ¥£¡¼¥ë¥É `%s' ¤¬½é´ü²½»Ò¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:916
+#: cp/typeck2.c:888
#, fuzzy
msgid "union `%T' with no named members cannot be initialized"
msgstr "Ê£»¨¤Ê¥Ñ¥é¥á¥¿¤ò¤â¤Ä´Ø¿ô¤Ï inline ¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:952
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
msgstr "½¸¹çÂνé´ü²½»ÒÆâ¤Ç¤½¤ÎÍ×ÁǤ¬°î¤ì¤Þ¤·¤¿"
-#: cp/typeck2.c:1057
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
msgstr "½Û´Ä¥Ý¥¤¥ó¥¿¤ÎÂåɽ¤ò¸¡½Ð¤·¤Þ¤·¤¿"
-#: cp/typeck2.c:1070
+#: cp/typeck2.c:1051
#, fuzzy
msgid "base operand of `->' has non-pointer type `%T'"
msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck2.c:1084
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
msgstr "`operator->()'¤Î·ë²Ì¤¬Èó¥Ý¥¤¥ó¥¿¤Î·ë²Ì¤ò¤â¤¿¤é¤·¤Þ¤¹"
-#: cp/typeck2.c:1086
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
msgstr "`->' ¤Î¥Ù¡¼¥¹¥ª¥Ú¥é¥ó¥É¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: cp/typeck2.c:1152
+#: cp/typeck2.c:1133
#, fuzzy
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr "\"%s\" ¤Ï C++ ¤Î±é»»»Ò¤Ç¤¢¤ê¡¢¥Þ¥¯¥í̾¤È¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:1159
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: cp/typeck2.c:1168
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr ""
-#: cp/typeck2.c:1205
+#: cp/typeck2.c:1186
#, fuzzy
msgid "`%T' fails to be a typedef or built-in type"
msgstr "`%s' ¤ò typedef ¤Þ¤¿¤ÏÁȤ߹þ¤ß·¿¤Ë¤Ç¤­¤Þ¤»¤ó"
-#: cp/typeck2.c:1278
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
msgstr "ISO C++ ¤Ï %s Ãæ¤Î·¿ÄêµÁ¤ò¶Ø¤¸¤Þ¤¹"
-#: cp/xref.c:826
-#, fuzzy, c-format
-msgid "can't create cross-reference file `%s'"
-msgstr "Áê¸ß»²¾È¥Õ¥¡¥¤¥ë `%s' ¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr ""
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "ÉÔ´°Á´·¿¤Ø¤ÎÊÑ´¹¤Ç¤¹"
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr ""
+
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
+msgstr "¥¢¥¯¥»¥¹À©¸æ¤Î°ÕÌ£¤Ë½¾¤ï¤Ê¤¤"
+
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
+msgstr "¥Æ¥ó¥×¥ì¡¼¥È¥¤¥ó¥¹¥¿¥ó¥¹¤¬Á÷½Ð¤µ¤ì¤¿»þ¤ËÊѹ¹¤¹¤ë"
-#: f/com.c:11595
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
+msgstr "new ¤ÎÌá¤êÃͤò¸¡ºº¤¹¤ë"
+
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
+msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë"
+
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr "ʸ»úÎó¥ê¥Æ¥é¥ë¤ò `const char[]' ¤ÎÂå¤ï¤ê¤Ë `char[]' ¤È¤¹¤ë"
+
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
+msgstr "ËÝÌõñ°ÌÁ´ÂΤò¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
+
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
+msgstr "¥á¥ó¥Ð´Ø¿ô¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¥¤¥ó¥é¥¤¥ó¤È¤·¤Ê¤¤"
+
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
+msgstr "¼Â¹Ô»þ·¿µ­½Ò¾ðÊó¤òÀ¸À®¤·¤Ê¤¤"
+
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
+msgstr "Îã³°»ÅÍͤθ¡ºº¤ò¤¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
+
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
+msgstr "for ½é´ü²½Ê¸¤ÎÊÑ¿ô¤ò¥¹¥³¡¼¥×³°¤Ë³ÈÂ礹¤ë"
+
+#: cp/lang-options.h:64
+#, fuzzy
+msgid "Do not recognize GNU defined keywords"
+msgstr "GNU ÄêµÁ¤ÎͽÌó¸ì¤òǧ¼±¤µ¤»¤Ê¤¤"
+
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
+msgstr "Â礭¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥Ý¡¼¥È"
+
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
+msgstr "¥¤¥ó¥é¥¤¥ó¤Ë¤Ç¤­¤ë´Ø¿ô¤Ç¤â export ¤¹¤ë"
+
+#: cp/lang-options.h:75
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "ÌÀ¼¨Åª¤Ê¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
+
+#: cp/lang-options.h:78
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "¥¤¥ó¥é¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È¤ÎÌÀ¼¨Åª¤Ê¼ÂÂβ½¤Î¤ß¤òÀ¸À®¤¹¤ë"
+
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr "Microsoft ³ÈÄ¥¤ÎÍøÍѤ˴ؤ·¤Æ pedantic ·Ù¹ð¤ò¹Ô¤ï¤Ê¤¤"
+
+#: cp/lang-options.h:87
+#, fuzzy
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr "and/bitand/bitor/compl/not/or/xor ¤òǧ¼±¤¹¤ë"
+
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
+msgstr "¥ª¥×¥·¥ç¥ó¤Î¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Ê¤¤"
+
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
+msgstr "µ¬³ÊŬ¹çÀ­¥¨¥é¡¼¤ò·Ù¹ð¤Ë³Ê²¼¤²¤¹¤ë"
+
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr "¼«Æ°¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂ⽤òÍ­¸ú¤Ë¤¹¤ë"
+
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
+msgstr "¥³¥ó¥Ñ¥¤¥ëÃæ¤ËÃßÀѤµ¤ì¤¿Åý·×¾ðÊó¤òɽ¼¨¤¹¤ë"
+
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr "¥Æ¥ó¥×¥ì¡¼¥È¼ÂÂβ½¤Î¿¼¤µ¤ÎºÇÂçÃͤò»ØÄꤹ¤ë"
+
+#: cp/lang-options.h:106
+#, fuzzy
+msgid "Use __cxa_atexit to register destructors"
+msgstr "¥Ç¥¹¥È¥é¥¯¥¿¤ÎÅÐÏ¿¤Ë __cxa_atexit ¤òÍøÍѤ¹¤ë"
+
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
+msgstr "»È¤ï¤ì¤Ê¤¤²¾ÁÛ´Ø¿ô¤òÀÚ¤ê¼Î¤Æ¤ë"
+
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
+msgstr "thunk ¤ò»È¤Ã¤Æ vtable ¤ò¼ÂÁõ¤¹¤ë"
+
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
+msgstr "¥³¥â¥ó¥·¥ó¥Ü¥ë¤ò¥¦¥£¡¼¥¯¥·¥ó¥Ü¥ë¤ÎÍͤËÀ¸À®¤¹¤ë"
+
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
+msgstr "Áê¸ß»²¾È¾ðÊó¤òÀ¸À®¤¹¤ë"
+
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
+msgstr "Ìá¤êÃͤη¿¤È°ìÃפ·¤Ê¤¤¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
+msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤µ¤ì¤¿²¾ÁÛ´Ø¿ô̾¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
+msgstr "Á´¤Æ¤Î¥³¥ó¥¹¥È¥é¥¯¥¿/¥Ç¥¹¥È¥é¥¯¥¿¤¬ private ¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
+
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
+msgstr "Èó²¾Áۥǥ¹¥È¥é¥¯¥¿¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
+msgstr "´Ø¿ô¤¬ extern Àë¸À¤µ¤ì¤¿¸å¡¢inline ¤È¤µ¤ì¤¿¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
+msgstr "¥³¥ó¥Ñ¥¤¥é¤¬¥³¡¼¥É¤òʤÙÂؤ¨¤ë¤È¤­¤Ë·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:140
+#, fuzzy
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "¹çÀ®¤Î¿¶¤ëÉñ¤¤¤¬ Cfront ¤È°Û¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
+msgstr "¥Ý¥¤¥ó¥¿¤«¤é¥á¥ó¥Ð´Ø¿ô¤Ø¤Î·¿ÊÑ´¹¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
+
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Effective C++ ¼°¤Î»Ø¿Ë¤«¤é¤Ï¤º¤ì¤ë¤â¤Î¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Éä¹ç̵¤·¤«¤éÉä¹çÉÕ¤­¤Ë³Ê¾å¤²¤È¤Ê¤ë¾ì¹ç¤Ë·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
+msgstr "C ¼°¤Î¥­¥ã¥¹¥È¤¬¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤¿¤é·Ù¹ð¤¹¤ë"
+
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr "template Æâ¤ÇÈó template ¤Î friend ´Ø¿ô¤¬Àë¸À¤µ¤ì¤¿¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
+
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
+msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¥³¥ó¥Ñ¥¤¥é¤Îµ¡Ç½¤ò¹ðÃΤ·¤Ê¤¤"
+
+#: f/bad.c:387
+msgid "note:"
+msgstr ""
+
+#: f/bad.c:391
+#, fuzzy
+msgid "warning:"
+msgstr "·Ù¹ð: "
+
+#: f/bad.c:395
+msgid "fatal:"
+msgstr ""
+
+#: f/bad.c:437
+msgid "(continued):"
+msgstr ""
+
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr ""
+
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr ""
+
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr ""
+
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
msgstr "¸½ºß¤ÎÀßÄê¤Ç¤ÏÈó INTEGER ·¿¤¬¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤Ç¤­¤Þ¤¹"
-#: f/com.c:11820
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr "ÀßÄê: REAL, INTEGER µÚ¤Ó LOGICAL ¤Ï %d ¥Ó¥Ã¥ÈÉý¤Ç¡¢"
-#: f/com.c:11822
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
msgstr "¥Ý¥¤¥ó¥¿¤Ï %d ¥Ó¥Ã¥ÈÉý¤Ç¤¹¤¬¡¢¤½¤ì¤éÁ´¤Æ¤¬ 32 ¥Ó¥Ã¥ÈÉý"
-#: f/com.c:11824
+#: f/com.c:11848
#, fuzzy
msgid "properly unless they all are 32 bits wide"
msgstr "¤Ç¤Ê¤¤¤È g77 ¤ÏÀµ¾ï¤ËÆ°ºî¤·¤Þ¤»¤ó¡£"
-#: f/com.c:11825
-msgid "Please keep this in mind before you report bugs. g77 should"
-msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤ëÁ°¤Ë¤³¤Î»ö¤ò¿´¤Ëα¤á¤ÆÃÖ¤¤¤Æ¤¯¤À¤µ¤¤¡£"
-
-#: f/com.c:11826
+#: f/com.c:11849
#, fuzzy
-msgid "support non-32-bit machines better as of version 0.6"
-msgstr "g77 ¤Ï¤¤¤º¤ì version 0.6 ƱÍͤËÈó 32 ¥Ó¥Ã¥Èµ¡¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹"
+msgid "Please keep this in mind before you report bugs."
+msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤ëÁ°¤Ë¤³¤Î»ö¤ò¿´¤Ëα¤á¤ÆÃÖ¤¤¤Æ¤¯¤À¤µ¤¤¡£"
#. I/O will probably crash.
-#: f/com.c:11834
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr "ÀßÄê: char * ¤Ï %d ¥Ó¥Ã¥È³ÎÊݤ·¤Þ¤¹¤¬¡¢ftnlen ¤¬¤¿¤Ã¤¿ %d ¥Ó¥Ã¥È¤Ç¤¹"
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11843
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
@@ -20693,30 +19082,234 @@ msgstr ""
"ÀßÄê: char * ¤Ï %d ¥Ó¥Ã¥È³ÎÊݤ·¤Þ¤¹¤¬¡¢INTEGER ¤¬¤¿¤Ã¤¿ %d ¥Ó¥Ã¥È¤Ç¤¹ --\n"
" ¶²¤é¤¯ ASSIGN ʸ¤¬¼ºÇÔ¤·¤Þ¤¹"
-#: f/com.c:15573
+#: f/com.c:13681
+#, fuzzy
+msgid "In statement function"
+msgstr "´Ø¿ô¤ËÂФ¹¤ë°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
+msgstr ""
+
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr ""
+
+#: f/com.c:15497
#, fuzzy
msgid "directory name must immediately follow -I"
msgstr "¥Ç¥¤¥ì¥¯¥È¥ê̾¤Ï -I ¤Î¤¹¤°¸å¤í¤Ë¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: f/g77spec.c:254
+#: f/com.c:15640
+#, fuzzy, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr "include ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë `%s' ¤Ï¡¢Â¸ºß¤·¤Þ¤¹¤¬Æɤá¤Þ¤»¤ó"
+
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr ""
+
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr ""
+
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr ""
+
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr ""
+
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr "`%s' ÍѤνÐÎÏ°ú¿ô¥ê¥¹¥È¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-#: f/g77spec.c:393
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr "--driver ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-#: f/g77spec.c:406
+#: f/g77spec.c:386
#, c-format
msgid "argument to `%s' missing"
msgstr "`%s' ¤Ø¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: f/g77spec.c:410
+#: f/g77spec.c:390
#, fuzzy
msgid "no input files; unwilling to write output files"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó -- ÉÔËܰդʽÐÎÏ¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß"
+#: f/implic.c:203
+#, fuzzy, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "Á°Êý¤Ç¤Î `%s' ¤Î°ÅÌÛŪ¤ÊÀë¸À"
+
+#: f/lex.c:326
+#, fuzzy, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr "Èó ISO ɸ½à¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹, '\\%c'"
+
+#: f/lex.c:345
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ `\\%c'"
+
+#: f/lex.c:354
+#, fuzzy, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ `\\%c'"
+
+#: f/lex.c:365
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹: `\\' ¤Î¸å¤Ëʸ»ú¥³¡¼¥É 0x%x"
+
+#: f/lex.c:393
+#, fuzzy, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr "\\x ¤Ë¡¢¤½¤ì¤Ë³¤¯¤Ï¤º¤Î 16 ¿Ê¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: f/lex.c:407
+#, fuzzy, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
+
+#: f/lex.c:441
+#, fuzzy, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr "ʸ»ú¤ËÂФ¹¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
+
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
+
+#: f/lex.c:648
+#, c-format
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr "Èó ANSI ɸ½à¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¡¢`\\%c'"
+
+#: f/lex.c:661
+#, fuzzy, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr "Èó ANSI ¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¡¢`\\%c'"
+
+#: f/lex.c:665
+#, c-format
+msgid "unknown escape sequence `\\%c'"
+msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ `\\%c'"
+
+#: f/lex.c:667
+#, c-format
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹: `\\' ¤Î¸å¤Ëʸ»ú¥³¡¼¥É 0x%x"
+
+#: f/lex.c:744
+#, fuzzy
+msgid "badly formed directive -- no closing quote"
+msgstr "ÉÔÀµ¤Ê·Á¤Î¥Ç¥£¥ì¥¯¥Æ¥£¥Ö -- ÊĤ¸¥¯¥©¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr "¥Õ¥¡¥¤¥ë¤Ø¤Î½ÐÆþ¤ê¸ý¤È¤Ê¤ë #-¹Ô ¤¬À°¹ç¤·¤Þ¤»¤ó"
+
+#: f/lex.c:964
+#, fuzzy
+msgid "bad directive -- missing close-quote"
+msgstr "ÉÔÀµ¤Ê¥Ç¥£¥ì¥¯¥Æ¥£¥Ö -- ÊĤ¸¥¯¥©¡¼¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: f/lex.c:1078
+#, c-format
+msgid "ignoring pragma: %s"
+msgstr "pragma ¤ò̵»ë¤·¤Þ¤¹: %s"
+
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr "̵¸ú¤Ê #ident"
+
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr "̤ÄêµÁËô¤ÏÉÔÀµ¤Ê # ¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Ç¤¹"
+
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr "̵¸ú¤Ê #line"
+
+#: f/lex.c:1285 f/lex.c:1329
+#, fuzzy
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr "ºÇ½é¤Î¹Ô¤Ç¤Ï `# ...' ¤ÎÂå¤ê¤Ë `#line ...' ¤ò»È¤¤¤Þ¤·¤ç¤¦"
+
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr "̵¸ú¤Ê #-¹Ô"
+
+#: f/lex.c:1432
+#, fuzzy, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr "null ʸ»ú¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr ""
+
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr "ASSIGN ¤µ¤ì¤¿ FORMAT »ØÄê»Ò¤¬¾®¤µ¤¹¤®¤Þ¤¹"
+
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr ""
+
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
+msgstr "ASSIGN Àè¤ÎÊÑ¿ô¤¬¾®¤µ¤¹¤®¤Þ¤¹"
+
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr "ASSIGN ¤µ¤ì¤¿ GOTO ÀèÊÑ¿ô¤¬¾®¤µ¤¹¤®¤Þ¤¹"
+
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr ""
+
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr ""
+
+#: f/top.c:237
+#, c-format
+msgid "%s no longer supported -- try -fvxt"
+msgstr "%s ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- -fvxt ¤È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
+
+#: f/top.c:239
+#, c-format
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr "%s ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- -fno-vxt -ff90 ¤È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
+
+#: f/top.c:307 f/top.c:309
+#, c-format
+msgid "%s disabled, use normal debugging flags"
+msgstr "%s ¤¬Ìµ¸ú¤Ç¤¹¡£Ä̾ï¥Ç¥Ð¥Ã¥°¥Õ¥é¥°¤ò»È¤¤¤Þ¤·¤ç¤¦"
+
#: f/lang-options.h:33
msgid "Print g77-specific compiler version info, run internal tests"
msgstr "g77 ¸ÇÍ­¤Î¥³¥ó¥Ñ¥¤¥é¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¡¢ÆâÉô¥Æ¥¹¥È¤Î¼Â¹Ô"
@@ -21025,441 +19618,1230 @@ msgstr "INCLUDE õº÷ÍѤΥǥ£¥ì¥¯¥È¥ê¤òÄɲ乤ë"
msgid "Set the maximum line length"
msgstr "¹Ô¤ÎŤµ¤ÎºÇÂçÃͤòÀßÄꤹ¤ë"
-#: f/lex.c:583
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "`\\x' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
+#: f/bad.def:39
+#, fuzzy, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr "¥Õ¥©¡¼¥Þ¥Ã¥ÈÆâ¤Ç $ ±é»»»ÒÈÖ¹æ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: f/lex.c:620
-msgid "hex escape out of range"
-msgstr "16 ¿Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬Èϰϳ°¤Ç¤¹"
+#: f/bad.def:42
+#, fuzzy, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "¶õ¤Îʸ»úÄê¿ô"
-#: f/lex.c:666
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "-traditional ¤Ç¤Ï `\\a' ¤Î°ÕÌ£¤¬°Û¤Ê¤ê¤Þ¤¹"
+#: f/bad.def:45
+#, fuzzy, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr "̵¸ú¤Ê¥È¡¼¥¯¥ó¤¬¼°¤Ë¤¢¤ê¤Þ¤¹"
-#: f/lex.c:682
-#, c-format
-msgid "non-ANSI-standard escape sequence, `\\%c'"
-msgstr "Èó ANSI ɸ½à¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¡¢`\\%c'"
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr ""
-#: f/lex.c:695
-#, fuzzy, c-format
-msgid "non-ISO escape sequence `\\%c'"
-msgstr "Èó ANSI ¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¡¢`\\%c'"
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr ""
-#: f/lex.c:699
-#, c-format
-msgid "unknown escape sequence `\\%c'"
-msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹ `\\%c'"
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr ""
-#: f/lex.c:701
-#, c-format
-msgid "unknown escape sequence: `\\' followed by char code 0x%x"
-msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹: `\\' ¤Î¸å¤Ëʸ»ú¥³¡¼¥É 0x%x"
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr ""
-#: f/lex.c:778
-#, fuzzy
-msgid "badly formed directive -- no closing quote"
-msgstr "ÉÔÀµ¤Ê·Á¤Î¥Ç¥£¥ì¥¯¥Æ¥£¥Ö -- ÊĤ¸¥¯¥©¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
+#: f/bad.def:65
+#, fuzzy, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr "̵¸ú¤Êʸ»úÄê¿ô¤¬ #if ¤Ë¤¢¤ê¤Þ¤¹"
-#: f/lex.c:998
-#, fuzzy
-msgid "bad directive -- missing close-quote"
-msgstr "ÉÔÀµ¤Ê¥Ç¥£¥ì¥¯¥Æ¥£¥Ö -- ÊĤ¸¥¯¥©¡¼¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr ""
-#: f/lex.c:1112
-#, c-format
-msgid "ignoring pragma: %s"
-msgstr "pragma ¤ò̵»ë¤·¤Þ¤¹: %s"
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr ""
-#: f/lex.c:1319 f/lex.c:1363
-#, fuzzy
-msgid "use `#line ...' instead of `# ...' in first line"
-msgstr "ºÇ½é¤Î¹Ô¤Ç¤Ï `# ...' ¤ÎÂå¤ê¤Ë `#line ...' ¤ò»È¤¤¤Þ¤·¤ç¤¦"
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr ""
-#: f/ste.c:1404 f/ste.c:1755
-msgid "ASSIGNed FORMAT specifier is too small"
+#: f/bad.def:77
+#, fuzzy, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr "'Ll' ¤È 'lL' ¤ÏÀµ¾ï¤ÊÀ°¿ôÀÜÈø¼­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr ""
+
+#: f/bad.def:91
+#, fuzzy, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "ʸ»úÄê¿ô¤¬Ä¹¤¹¤®¤Þ¤¹"
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr ""
+
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr ""
+
+#: f/bad.def:100
+#, fuzzy, no-c-format
+msgid "Integer at %0 too large"
+msgstr "À°¿ôÄê¿ô¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr ""
+
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr ""
+
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr ""
+
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr ""
+
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr ""
+
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr ""
+
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:291
+#, fuzzy, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò"
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:433
+#, fuzzy, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr "¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë `%%' ¤Îº¯Àפ餷¤­¤â¤Î¤¬¤¢¤ê¤Þ¤¹"
+
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr ""
+
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr ""
+
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr ""
+
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr ""
+
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr ""
+
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr ""
+
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr ""
+
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr ""
+
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr ""
+
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr ""
+
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr ""
+
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr ""
+
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr ""
+
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr ""
+
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr ""
+
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr ""
+
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr ""
+
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr ""
+
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr ""
+
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr ""
+
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr ""
+
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr ""
+
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr ""
+
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr ""
+
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr ""
+
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr ""
+
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr ""
+
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr ""
+
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr ""
+
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr ""
+
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr ""
+
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr ""
+
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr ""
+
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr ""
+
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr ""
+
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr ""
+
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr ""
+
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr ""
+
+#: f/bad.def:578
+#, fuzzy, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤ËÂФ¹¤ë¥¢¥¯¥»¥¹»ØÄê»Ò¤¬¶¥¹ç¤·¤¿¤¿¤á¡¢Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
+
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr ""
+
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr ""
+
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:598
+#, fuzzy, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr "Æó½Å¤Î(¤¢¤ë¤¤¤Ï½ÅÊ£¤·¤Æ¤¤¤ë) case ¤ÎÃÍ"
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr ""
+
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr ""
+
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr ""
+
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr ""
+
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr ""
+
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr ""
+
+#: f/bad.def:650
+#, fuzzy, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr "´ûÃΤÎÁ´¤Æ¤Îʸ»úÎóÁàºî¤ò inline ¤Ë¤¹¤ë"
+
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr ""
+
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr ""
+
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr ""
+
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr ""
+
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr ""
+
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr ""
+
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr ""
+
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr ""
+
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr ""
+
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr ""
+
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr ""
+
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
+msgstr ""
+
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr ""
+
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr ""
+
+#: f/bad.def:708
+#, fuzzy, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr "¤Ç¤­¤ë¤À¤±¥¹¥¿¥Ã¥¯¤ò¤³¤ÎÃͤÎÆó¾è¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤¹¤ë"
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr ""
+
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr ""
+
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr ""
+
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr ""
+
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr ""
+
+#: f/bad.def:821
+#, fuzzy, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr ""
+
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr ""
+
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr ""
+
+#: f/bad.def:854
+#, fuzzy, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
msgstr "ASSIGN ¤µ¤ì¤¿ FORMAT »ØÄê»Ò¤¬¾®¤µ¤¹¤®¤Þ¤¹"
-#: f/ste.c:2964
-msgid "ASSIGN to variable that is too small"
-msgstr "ASSIGN Àè¤ÎÊÑ¿ô¤¬¾®¤µ¤¹¤®¤Þ¤¹"
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr ""
-#: f/ste.c:2992
-msgid "ASSIGNed GOTO target variable is too small"
-msgstr "ASSIGN ¤µ¤ì¤¿ GOTO ÀèÊÑ¿ô¤¬¾®¤µ¤¹¤®¤Þ¤¹"
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr ""
-#: f/top.c:238
-#, c-format
-msgid "%s no longer supported -- try -fvxt"
-msgstr "%s ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- -fvxt ¤È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr ""
-#: f/top.c:240
-#, c-format
-msgid "%s no longer supported -- try -fno-vxt -ff90"
-msgstr "%s ¤ÏºÇÁ᥵¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- -fno-vxt -ff90 ¤È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤"
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr ""
-#: f/top.c:308 f/top.c:310
-#, c-format
-msgid "%s disabled, use normal debugging flags"
-msgstr "%s ¤¬Ìµ¸ú¤Ç¤¹¡£Ä̾ï¥Ç¥Ð¥Ã¥°¥Õ¥é¥°¤ò»È¤¤¤Þ¤·¤ç¤¦"
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr ""
+
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr ""
+
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
+
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr ""
+
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr ""
+
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr ""
+
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr ""
+
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr ""
+
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr ""
-#: java/check-init.c:915
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr ""
+
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr ""
+
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr ""
+
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr ""
+
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr ""
+
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr ""
+
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
+msgstr ""
+
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr ""
+
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr ""
+
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr ""
+
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr ""
+
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr ""
+
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr ""
+
+#: f/bad.def:1037
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr "ʸ»úÎóËô¤Ïʸ»úÄê¿ôÃæ¤Ë null ʸ»ú"
+
+#: f/bad.def:1040
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr "ʸ»úÎóËô¤Ïʸ»úÄê¿ôÃæ¤Ë null ʸ»ú"
+
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr ""
+
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr ""
+
+#: f/bad.def:1049
+#, fuzzy, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr "À°¿ôÄê¿ô¤¬ÈϰϤò³°¤ì¤Æ¤¤¤Þ¤¹"
+
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr ""
+
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr ""
+
+#: f/bad.def:1085
+#, fuzzy, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr "ÇÛÎó `%s' ¤ÎÂ礭¤µ¤¬Â礭¤¹¤®¤Þ¤¹"
+
+#: f/bad.def:1088
+#, fuzzy, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr "¥é¥Ù¥ë `%s' ¤¬ÄêµÁ¤µ¤ì¤Þ¤·¤¿¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr ""
+
+#: f/bad.def:1094
+#, fuzzy, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr "%s ¤ÇÆâÉô¥³¥ó¥Ñ¥¤¥é¥¨¥é¡¼ (%s:%d)"
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
+msgstr ""
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr ""
+
+#: f/info-k.def:34
+#, fuzzy
+msgid "In function"
+msgstr "´Ø¿ô `%s' Æâ:"
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr ""
+
+#: f/info-k.def:36
+#, fuzzy
+msgid "In program"
+msgstr "¥×¥í¥°¥é¥à: %s\n"
+
+#: f/info-k.def:37
+msgid "In block-data unit"
+msgstr ""
+
+#: f/info-k.def:38
+#, fuzzy
+msgid "In common block"
+msgstr "´ðËÜ¥Ö¥í¥Ã¥¯ %d Æâ:"
+
+#: f/info-k.def:39
+#, fuzzy
+msgid "In construct"
+msgstr "¹½Â¤ÂÎ"
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr ""
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr ""
+
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "check-init ¤ÇÆâÉô¥¨¥é¡¼: ¥Ä¥ê¡¼¥³¡¼¥É¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: %s"
-#: java/check-init.c:988
+#: java/check-init.c:990
#, fuzzy, c-format
msgid "final field '%s' may not have been initialized"
msgstr "²ÄÊÑĹ¥ª¥Ö¥¸¥§¥¯¥È¤Ï½é´ü²½¤µ¤ì¤Ê¤¤¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦"
-#: java/class.c:567 java/class.c:592
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr "ÆâÉô¥¨¥é¡¼ - interface ·¿¤¬Â¿¤¹¤®¤Þ¤¹"
-#: java/class.c:742
+#: java/class.c:677
msgid "bad method signature"
msgstr "ÉÔÀµ¤Ê¥á¥½¥Ã¥É¥·¥°¥Í¥¤¥Á¥ã¤Ç¤¹"
-#: java/class.c:787
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr "ConstantValue °À­¤Î¾ì½ê¤ò´Ö°ã¤¨¤Æ¤¤¤Þ¤¹¡Ê¤É¤Î¥Õ¥£¡¼¥ë¥É¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡Ë"
-#: java/class.c:789
+#: java/class.c:728
#, fuzzy, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤Î ConstantValue °À­¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: java/class.c:800
+#: java/class.c:739
#, fuzzy, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤Î ConstantValue °À­¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: java/class.c:1145
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr "¥Õ¥£¡¼¥ë¥É '%s' ¤¬¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/class.c:1403
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr "abstract ¥á¥½¥Ã¥É¤¬ÈóÃê¾Ý¥¯¥é¥¹¤Ë¤¢¤ê¤Þ¤¹"
-#: java/class.c:2088
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr "ÈóÀÅŪ¥á¥½¥Ã¥É '%s' ¤¬ÀÅŪ¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¤¤¤Þ¤¹"
-#: java/decl.c:1521
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr "%s Æâ: ÊÑ¿ô¤ÈÎã³°ÈϰϤ¬ %d ¤Ç½Å¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: java/decl.c:1609
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr "²¾°ú¿ô¥Ç¥Ð¥Ã¥°¾ðÊó¤ËÉÔÀµ¤Ê·¿¤¬¤¢¤ê¤Þ¤¹"
-#: java/decl.c:1619
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr "¥í¡¼¥«¥ë¤Î `%s' ÍѥǥХå°¾ðÊó¤Î¤¿¤á¤Î PC ÈϰϤ¬ÉÔÀµ¤Ç¤¹"
-#: java/expr.c:550
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr "¥¹¥¿¥Ã¥¯¥¢¥ó¥À¡¼¥Õ¥í¡¼ - dup* Áàºî"
-#: java/expr.c:1503
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr "»²¾È `%s' ¤ÏÛ£Ëæ¤Ç¤¹: interface `%s' ¤È interface `%s' ¤Ë¸½¤ì¤Þ¤·¤¿"
-#: java/expr.c:1532
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr "¥Õ¥£¡¼¥ë¥É `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/expr.c:1683
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr "ret Ì¿Îá¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/expr.c:1819
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr "¥á¥½¥Ã¥É '%s' ¤Ï¥¯¥é¥¹Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/expr.c:2023
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr "'%s' ¥¯¥é¥¹¤ò¸«¤Ä¤±¤ë¤Î¤Ë¼ºÇÔ¤·¤Þ¤·¤¿"
-#: java/expr.c:2035
+#: java/expr.c:2070
#, fuzzy, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "¥¯¥é¥¹ '%s' ¤Ï̾Á°¤¬ '%s' ¤Ç¥·¥°¥Í¥¤¥Á¥ã '%s' ¤È°ìÃפ¹¤ë¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-#: java/expr.c:2045
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr "ÈóÀÅŪ¥á¥½¥Ã¥É¤Ë invokestatic ¤·¤Þ¤·¤¿"
-#: java/expr.c:2050
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr "Ãê¾Ý¥á¥½¥Ã¥É¤Ë invokestatic ¤·¤Þ¤·¤¿"
-#: java/expr.c:2058
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr "ÀÅŪ¥á¥½¥Ã¥É¤Ë invoke[Èó static] ¤·¤Þ¤·¤¿"
-#: java/expr.c:2335
+#: java/expr.c:2396
#, fuzzy, c-format
msgid "missing field '%s' in '%s'"
msgstr "¥Õ¥£¡¼¥ë¥É '%s'('%s' Æâ) ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/expr.c:2341
+#: java/expr.c:2402
#, fuzzy, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "¥Õ¥£¡¼¥ë¥É '%s'('%s' Æâ) ¤Î¥·¥°¥Í¥¤¥Á¥ã¤¬°ìÃפ·¤Þ¤»¤ó"
-#: java/expr.c:2364
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr "final ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Î¥¯¥é¥¹Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2369
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr "final static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Î¥¯¥é¥¹Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2376
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr "final ¥Õ¥£¡¼¥ë¥É `%s' ¤Ø¤ÎÂåÆþ¤Ç¤¹¤¬¡¢¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/expr.c:2614
+#: java/expr.c:2684
#, fuzzy, c-format
msgid "can't expand %s"
msgstr "%s ¤òŸ³«¤Ç¤­¤Þ¤»¤ó"
-#: java/expr.c:2790
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr "̵¸ú¤Ê PC ¤¬¹ÔÈÖ¹æ¥Æ¡¼¥Ö¥ë¤Ë¤¢¤ê¤Þ¤¹"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2835
+#: java/expr.c:2906
#, fuzzy, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "%d ¤«¤é %d ¤ÎÁ°¤Þ¤Ç¤Î¥Ð¥¤¥È¥³¡¼¥É¤Ë¤ÏÅþã¤Ç¤­¤Þ¤»¤ó"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2872
+#: java/expr.c:2943
#, fuzzy, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "%d ¤«¤é¥á¥½¥Ã¥É¤Î½ª¤ê¤Þ¤Ç¤Î¥Ð¥¤¥È¥³¡¼¥É¤Ë¤ÏÅþã¤Ç¤­¤Þ¤»¤ó"
#. duplicate code from LOAD macro
-#: java/expr.c:3191
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ wide sub Ì¿Îá¤Ç¤¹"
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, fuzzy, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr "¥¯¥é¥¹ `%s' ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ï¡¢°ìÃפ¹¤ë¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤è¤ê¿·¤·¤¤¤Ç¤¹¡£¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤òÂå¤ê¤Ë»È¤¤¤Þ¤¹"
-#: java/jcf-parse.c:371
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr "ÉÔÀµ¤Êʸ»úÎóÄê¿ô¤Ç¤¹"
-#: java/jcf-parse.c:427
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "ÉÔÀµ¤ÊÄê¿ôÃÍ·¿ %d, ¥¤¥ó¥Ç¥Ã¥¯¥¹ %d"
-#: java/jcf-parse.c:685
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr "%s ¤òºÆ open ¤Ç¤­¤Þ¤»¤ó"
+
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr "%s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
+
+#: java/jcf-parse.c:619
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-#: java/jcf-parse.c:697
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
msgstr "Àµ¾ï¤Ê Java .class ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/jcf-parse.c:700
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
msgstr "constant ¥×¡¼¥ë¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:703
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "constant ¥×¡¼¥ë¹àÌÜ #%d Æâ¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿\n"
#. FIXME - where was first time
-#: java/jcf-parse.c:715
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "class %s ¤òÆɹþ¤à¤Î¤Ï %s ¤«¤éÆó²óÌܤˤʤê¤Þ¤¹"
-#: java/jcf-parse.c:733
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr "¥Õ¥£¡¼¥ë¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:736
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr "¥á¥½¥Ã¥É¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:739
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr "final °À­¤Î¹½Ê¸²òÀÏÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿"
-#: java/jcf-parse.c:753
+#: java/jcf-parse.c:687
#, fuzzy, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr "`%s' Æâ¤Ç¸«¤Ä¤«¤Ã¤¿ `java.lang.Object' ¤Ï¡¢Ä¹¤µ¥¼¥í¤ÎÆÃÊÌ¤Ê `gnu.gcj.gcj-compiled' °À­¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤³¤ì¤ÏÉáÄ̤¢¤Ê¤¿¤Î¥¯¥é¥¹¥Ñ¥¹¤¬Àµ¤·¤¯ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤»ö¤ò°ÕÌ£¤·¤Þ¤¹¡£`info gcj \"Input Options\"' ¤ò»È¤Ã¤Æ¡¢¥¯¥é¥¹¥Ñ¥¹¤ÎÀßÄêÊýË¡¤òÀâÌÀ¤·¤Æ¤¢¤ë info ¥Ú¡¼¥¸¤ò¸«¤Æ²¼¤µ¤¤"
-#: java/jcf-parse.c:838
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr "Code °À­¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: java/jcf-parse.c:1063
+#: java/jcf-parse.c:1014
#, fuzzy
msgid "source file seen twice on command line and will be compiled only once"
msgstr "¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËºÆ¤Ó¸½¤ì¤Þ¤·¤¿¤¬¡¢¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤ë¤Î¤Ï°ìÅÙ¤À¤±¤Ç¤¹"
-#: java/jcf-parse.c:1079
+#: java/jcf-parse.c:1030
msgid "no input file specified"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/jcf-parse.c:1111
+#: java/jcf-parse.c:1059
#, c-format
msgid "can't close input file %s"
msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò close ¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-parse.c:1148
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr "zip/jar ¥Õ¥¡¥¤¥ë %s ¤ÏÉÔÀµ¤Ç¤¹"
-#: java/jcf-write.c:2577
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "generate_bytecode_insn ¤ÇÆâÉô¥¨¥é¡¼ - ¥Ä¥ê¡¼¥³¡¼¥É¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: %s"
-#: java/jcf-write.c:2884
+#: java/jcf-write.c:2988
#, fuzzy
msgid "field initializer type mismatch"
msgstr "¥Õ¥£¡¼¥ë¥É½é´üÀßÄê»Ò¤¬Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: java/jcf-write.c:3293
+#: java/jcf-write.c:3419
#, c-format
msgid "can't create directory %s"
msgstr "¥Ç¥£¥ì¥¯¥È¥ê %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
-#: java/jcf-write.c:3320
-#, c-format
-msgid "can't to open %s"
-msgstr "%s ¤ò open ¤Ç¤­¤Þ¤»¤ó"
+#: java/jcf-write.c:3473
+#, fuzzy, c-format
+msgid "can't create %s"
+msgstr "%s ¤òºÆ open ¤Ç¤­¤Þ¤»¤ó"
-#: java/jv-scan.c:183
+#: java/jv-scan.c:187
#, fuzzy
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr "`--print-main', `--list-class', `--complexity' ¤«¤é¤Ï°ì¤Ä¤·¤«Áª¤Ù¤Þ¤»¤ó"
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, fuzzy, c-format
msgid "can't open output file `%s'"
msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò open ¤Ç¤­¤Þ¤»¤ó"
-#: java/jv-scan.c:222
+#: java/jv-scan.c:224
#, fuzzy, c-format
msgid "file not found `%s'"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: java/jvspec.c:384
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr "`--main' ̵¤·¤Ç¤Ï `-D' ¤ò»ØÄê¤Ç¤­¤Þ¤»¤ó\n"
-#: java/jvspec.c:390
-msgid "-R requires -o"
+#: java/jvspec.c:429
+#, fuzzy, c-format
+msgid "`%s' is not a valid class name"
+msgstr "\"%s\" ¤ÏÀµ¾ï¤Ê¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
msgstr ""
-#: java/jvspec.c:397
+#: java/jvspec.c:442
#, fuzzy
msgid "warning: already-compiled .class files ignored with -C"
msgstr "·Ù¹ð: ¥³¥ó¥Ñ¥¤¥ëºÑ .class ¥Õ¥¡¥¤¥ë¤Ï -C ¤Ë¤è¤ê̵»ë¤µ¤ì¤Þ¤·¤¿"
-#: java/jvspec.c:404
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
msgstr "-C ¤È -o ¤ÏξÊý¤ò°ì½ï¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: java/jvspec.c:416
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr "°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
-#: java/jvspec.c:444
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr "@FILE ¤Ç¤ÎÊ£¿ô¥Õ¥¡¥¤¥ë¤Î»ÈÍѤϼÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: java/jvspec.c:501
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr "¥ê¥ó¥¯»þ°Ê³°¤Ë¤Ï `main' ¥¯¥é¥¹¤ò»ØÄê¤Ç¤­¤Þ¤»¤ó"
-#: java/lang-options.h:32
-msgid "Disable automatic array bounds checking"
-msgstr "¼«Æ°Åª¤ÊÇÛÎó¶­³¦¸¡ºº¤ò¹Ô¤ï¤Ê¤¤"
-
-#: java/lang-options.h:34
-msgid "Assume native functions are implemented using JNI"
-msgstr "native ´Ø¿ô¤¬ JNI ¤òÍøÍѤ·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹"
-
-#: java/lang-options.h:36
-msgid "Set class path and suppress system path"
-msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤷ¤Æ¥·¥¹¥Æ¥à¥Ñ¥¹¤ò±£¤¹"
-
-#: java/lang-options.h:38
-msgid "Set class path"
-msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤹ¤ë"
-
-#: java/lang-options.h:40
-msgid "Choose class whose main method should be used"
-msgstr "main ¥á¥½¥Ã¥É¤¬»È¤ï¤ì¤ë¤Ù¤­¥¯¥é¥¹¤òÁªÂò¤¹¤ë"
-
-#: java/lang-options.h:42
-#, fuzzy
-msgid "Choose input encoding (default comes from locale)"
-msgstr "ÆþÎÏ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÁªÂò¤¹¤ë(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï UTF-8)"
-
-#: java/lang-options.h:44
-msgid "Add directory to class path"
-msgstr "¥¯¥é¥¹¥Ñ¥¹¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë"
-
-#: java/lang-options.h:46
-msgid "Directory where class files should be written"
-msgstr "¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê"
-
-#: java/lang-options.h:48
-msgid "Warn if modifiers are specified when not necessary"
-msgstr "»ØÄꤵ¤ì¤¿½¤¾þ»Ò¤¬ÉÔÍפʤâ¤Î¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
-
-#: java/lang-options.h:50
-msgid "Warn if deprecated empty statements are found"
-msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¶õʸ¤¬¸«¤Ä¤«¤ì¤Ð·Ù¹ð¤¹¤ë"
-
-#: java/lang-options.h:52
-msgid "Warn if .class files are out of date"
-msgstr ".class ¥Õ¥¡¥¤¥ë¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤è¤ê¸Å¤±¤ì¤Ð·Ù¹ð¤¹¤ë"
-
-#: java/lang-options.h:54
-msgid "Always check for non gcj generated classes archives"
-msgstr "gcj ¤¬À¸À®¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¥¢¡¼¥«¥¤¥Ö¤ò¾ï¤Ë¸¡ºº¤¹¤ë"
-
-#: java/lang-options.h:56
-msgid "Never optimize static class initialization code"
-msgstr ""
-
-#: java/lang.c:431
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr "ɸ½àÆþÎϤ«¤é¤ÎÆþÎϤǤϰ͸´Ø·¸¤ÎÄÉÀפ¬¤Ç¤­¤Þ¤»¤ó"
-#: java/lang.c:447
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr "°Í¸´Ø·¸¤ÎÄÉÀפΤ¿¤á¤Î¥¿¡¼¥²¥Ã¥È̾¤¬ÆÃÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
@@ -21483,294 +20865,295 @@ msgstr ""
msgid "can't mangle %s"
msgstr "%s ¤Î̾Á°ÊÑ´¹(mangle) ¤Ç¤­¤Þ¤»¤ó"
-#: java/mangle_name.c:150 java/mangle_name.c:226
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr "ÆâÉô¥¨¥é¡¼ - ̵¸ú¤Ê Utf8 ̾¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:747
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:785
-msgid "Missing name"
-msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr "¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:749
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:787
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:812
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:996
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1343
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1554
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1556
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1785
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1811
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1822
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1833
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1845
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr "';' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:810
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr "̾Á°¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
msgstr "'*' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:824
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr "¥¯¥é¥¹¤ä¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:859
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:861
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
msgstr "¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:864
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:868
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:876
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1041
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1289
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1291
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1620
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1856
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1888
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1940
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr "'{' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:878
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr "¥¹¡¼¥Ñ¡¼¥¯¥é¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:888
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Ì¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:975
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1308
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1369
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1578
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1800
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1809
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1820
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1831
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1843
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1860
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1862
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1933
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2104
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2166
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2318
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2330
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2337
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2344
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2355
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2357
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2395
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2397
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2399
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2420
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2422
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2424
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2440
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2442
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2463
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2465
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2467
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2495
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2497
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2499
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2501
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2519
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2521
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2532
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2543
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2554
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2565
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2576
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2589
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2593
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2595
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2608
-msgid "Missing term"
-msgstr "¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:990
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
msgstr "ÊÑ¿ô½é´ü²½»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1007
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
msgid "Invalid declaration"
msgstr "̵¸ú¤ÊÀë¸À¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1013
-msgid "Can't specify array dimension in a declaration"
-msgstr "ÇÛÎó¤Î¼¡¸µ¤òÀë¸À¤Ç»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1015
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1091
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2141
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2163
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2167
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2202
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2279
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2289
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr "']' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1019
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
msgid "Unbalanced ']'"
msgstr "Âбþ¤Î¤Ê¤¤ ']' ¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1061
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1063
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2024
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
msgstr "¼±Ê̻Ҥ¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1066
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr "̵¸ú¤Ê¥á¥½¥Ã¥ÉÀë¸À¤Ç¤¹¡£¥á¥½¥Ã¥É̾¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1089
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1534
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1541
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1550
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1552
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1580
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1688
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1969
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2022
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr "')' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1105
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
msgid "Missing formal parameter term"
msgstr "Àµ¼°¤Ê²¾°ú¿ô¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1120
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1125
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
msgid "Missing identifier"
msgstr "¼±Ê̻Ҥò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1145
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1154
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr "¥¯¥é¥¹¥¿¥¤¥×¹à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1306
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
msgid "Invalid interface type"
msgstr "¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹·¿¤¬Ìµ¸ú¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1498
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1667
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1669
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr "':' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1520
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1525
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
msgid "Invalid expression statement"
msgstr "¼°Ê¸¤¬Ìµ¸ú¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1548
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1576
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1616
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1684
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1752
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1858
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1926
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2016
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2018
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2026
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2262
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2264
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr "'(' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1618
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
msgstr "¹à¤Þ¤¿¤Ï ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1665
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
msgid "Missing or invalid constant expression"
msgstr "Äê¿ô¼°¤¬·ç¤±¤Æ¤¤¤ë¤«Ìµ¸ú¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1686
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr "¹à¤Èɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1725
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
msgid "Invalid control expression"
msgstr "̵¸ú¤ÊÀ©¸æ¼°¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1727
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1729
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
msgid "Invalid update expression"
msgstr "̵¸ú¤Ê¹¹¿·¼°¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1754
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
msgid "Invalid init statement"
msgstr "̵¸ú¤Ê½é´ü²½¼°¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1929
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr "¹à¤Þ¤¿¤Ïɬ¿Ü¤Î ')' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1971
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr "'class' ¤Þ¤¿¤Ï 'this' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1973
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:1975
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
msgstr "'class' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
msgstr "')' ¤Þ¤¿¤Ï¹à¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2139
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr "'[' ¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2217
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
msgstr "¥Õ¥£¡¼¥ë¥É¤¬É¬ÍפǤ¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2274
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr "¹à¤Èɬ¿Ü¤Î ']' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2388
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
msgid "']' expected, invalid type expression"
msgstr "']' ¤¬É¬Íפǡ¢Ìµ¸ú¤Ê·¿É½¸½¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2391
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
msgid "Invalid type expression"
msgstr "̵¸ú¤Ê·¿É½¸½¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2503
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
msgid "Invalid reference type"
msgstr "̵¸ú¤Ê»²¾È·¿¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤Îµ¯Æ°¤Ï¥³¥ó¥¹¥È¥é¥¯¥¿Æâ¤ÇºÇ½é¤Ë¹Ô¤Ê¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤À¤±¤¬¥³¥ó¥¹¥È¥é¥¯¥¿¤òµ¯Æ°¤Ç¤­¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:2992
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ": `%s' ¤Ï JDK1.1(TM) ¤Îµ¡Ç½¤Ç¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:3052
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:3054
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
@@ -21779,200 +21162,253 @@ msgstr ""
"%s.\n"
"%s"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:3517
-msgid "Can't use '$' as a separator for inner classes"
-msgstr "'$' ¤ÏÆâÉô¥¯¥é¥¹¤Î¶èÀÚ¤ê»Ò¤È¤·¤Æ»ÈÍѤǤ­¤Þ¤»¤ó"
-
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:6791
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "CLASSPATH Æâ¤ËÊÑ¤Ê .zip ¥¢¡¼¥«¥¤¥Ö¤¬¤¢¤ê¤Þ¤¹: %s"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:6862
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, fuzzy, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
msgstr "¥Ç¥Õ¥©¥ë¥È¥Ñ¥Ã¥±¡¼¥¸ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£CLASSPATH ´Ä¶­ÊÑ¿ô¤È¥¢¡¼¥«¥¤¥Ö¤Ø¤Î¥¢¥¯¥»¥¹¤ò³Î¤«¤á¤Æ¤¯¤À¤µ¤¤¡£"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:12159
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, c-format
msgid "missing static field `%s'"
msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:12164
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
msgid "not a static field `%s'"
msgstr "static ¥Õ¥£¡¼¥ë¥É `%s' ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:12207
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "%s ¤Î¤¿¤á¤Î case ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: /u/loewisma/gcc-20011219/gcc/java/parse.y:13093
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, c-format
msgid "unregistered operator %s"
msgstr "ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤±é»»»Ò %s ¤Ç¤¹"
-#: java/typeck.c:566
+#: java/typeck.c:553
msgid "junk at end of signature string"
msgstr "¥·¥°¥Í¥¤¥Á¥ãʸ»úÎó¤Î½ª¤ê¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr "exception_table ¤ËÉÔÀµ¤Ê pc ¤¬¤¢¤ê¤Þ¤¹"
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "ÉÔÌÀ¤Ê opcode %d@pc=%d ¤ò¸¡¾ÚÃæ¤Ëȯ¸«¤·¤Þ¤·¤¿"
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr "¸¡¾Ú¥¨¥é¡¼ (PC=%d)"
-#: objc/lang-options.h:27
-msgid "Dump decls to a .decl file"
-msgstr "Àë¸À¤ò .decl ¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
+msgstr "¼«Æ°Åª¤ÊÇÛÎó¶­³¦¸¡ºº¤ò¹Ô¤ï¤Ê¤¤"
-#: objc/lang-options.h:29
-msgid "Generate code for GNU runtime environment"
-msgstr "GNU ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
+msgstr ""
-#: objc/lang-options.h:32
-msgid "Generate code for NeXT runtime environment"
-msgstr "NeXT ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
+msgstr "native ´Ø¿ô¤¬ JNI ¤òÍøÍѤ·¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¤â¤Î¤È¤ß¤Ê¤¹"
-#: objc/lang-options.h:35
-msgid "Warn if a selector has multiple methods"
-msgstr "¥»¥ì¥¯¥¿¤¬Ê£¿ô¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë"
+#: java/lang-options.h:38
+#, fuzzy
+msgid "Replace system path"
+msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤹ¤ë"
-#: objc/lang-options.h:39
-msgid "Do not warn if inherited methods are unimplemented"
-msgstr "ÇÉÀ¸¥á¥½¥Ã¥É¤¬Ì¤¼ÂÁõ¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
+#: java/lang-options.h:40
+msgid "Set class path"
+msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤹ¤ë"
-#: objc/lang-options.h:41
-msgid "Generate C header of platform specific features"
-msgstr "¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îµ¡Ç½¤Î C ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë"
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr ""
-#: objc/lang-options.h:43
-msgid "Specify the name of the class for constant strings"
-msgstr "Äê¿ôʸ»úÎóÍѤΥ¯¥é¥¹Ì¾¤ò»ØÄꤹ¤ë"
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
+msgstr "main ¥á¥½¥Ã¥É¤¬»È¤ï¤ì¤ë¤Ù¤­¥¯¥é¥¹¤òÁªÂò¤¹¤ë"
+
+#: java/lang-options.h:46
+#, fuzzy
+msgid "Choose input encoding (default comes from locale)"
+msgstr "ÆþÎÏ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤òÁªÂò¤¹¤ë(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï UTF-8)"
-#: objc/objc-act.c:609
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr "-fconstant-string-class ¤Ë°ú¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥¯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+#: java/lang-options.h:48
+msgid "Add directory to class path"
+msgstr "¥¯¥é¥¹¥Ñ¥¹¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë"
+
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
+msgstr "¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê"
+
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "»ØÄꤵ¤ì¤¿½¤¾þ»Ò¤¬ÉÔÍפʤâ¤Î¤Ç¤¢¤ì¤Ð·Ù¹ð¤¹¤ë"
+
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
+msgstr "¿ä¾©¤µ¤ì¤Ê¤¤¶õʸ¤¬¸«¤Ä¤«¤ì¤Ð·Ù¹ð¤¹¤ë"
+
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr ".class ¥Õ¥¡¥¤¥ë¤¬¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤è¤ê¸Å¤±¤ì¤Ð·Ù¹ð¤¹¤ë"
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr "gcj ¤¬À¸À®¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¥¢¡¼¥«¥¤¥Ö¤ò¾ï¤Ë¸¡ºº¤¹¤ë"
+
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
+msgstr ""
+
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
+msgstr ""
-#: objc/objc-act.c:760
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr "¥ª¥Ö¥¸¥§¥¯¥È¤¬ `%s' ¥×¥í¥È¥³¥ë¤ËŬ¹ç¤·¤Þ¤»¤ó"
-#: objc/objc-act.c:804
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr "¥¯¥é¥¹ `%s' ¤Ï `%s' ¥×¥í¥È¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:942
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr "`%s' ¤òÀÅŪ¤Ë³ÎÊݤǤ­¤Þ¤»¤ó"
+
+#: objc/objc-act.c:963
#, fuzzy, c-format
msgid "unexpected type for `id' (%s)"
msgstr "ͽ´ü¤·¤Ê¤¤·¿¤¬ `id' (%s) ¤Ë»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: objc/objc-act.c:947
+#: objc/objc-act.c:968
#, fuzzy
msgid "undefined type `id', please import <objc/objc.h>"
msgstr "`id' ·¿¤¬Ì¤ÄêµÁ¤Ç¤¹¡£<objc/objc.h> ¤ò import ¤·¤Æ²¼¤µ¤¤"
-#: objc/objc-act.c:999
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr ""
-#: objc/objc-act.c:1021 objc/objc-act.c:5222
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, fuzzy, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "`%s' ¤ËÂФ¹¤ë¥×¥í¥È¥³¥ëÀë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:1282 objc/objc-act.c:5740 objc/objc-act.c:6069
-#: objc/objc-act.c:6118 objc/objc-act.c:6154 objc-parse.y:1748
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, fuzzy, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "`%s' ¤ËÂФ¹¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹Àë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:1307
+#: objc/objc-act.c:1328
#, fuzzy, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "¥¯¥é¥¹ %s ÍѤΥե¡¥¤¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, fuzzy, c-format
+msgid "creating selector for non existant method %s"
+msgstr "²ÄǽÀ­¤Î¤¢¤ë¥»¥ì¥¯¥¿¤¬¥á¥½¥Ã¥É `%s' ¤È¶¥¹ç¤·¤Þ¤¹"
+
+#: objc/objc-act.c:2364
#, fuzzy, c-format
msgid "cannot find class `%s'"
msgstr "¥¯¥é¥¹ `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, fuzzy, c-format
msgid "class `%s' already exists"
msgstr "¥¯¥é¥¹ `%s' ¤Ï´û¤Ë¸ºß¤·¤Þ¤¹"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, fuzzy, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr "`%s' ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡Ê`%s' ¤Î´ðÄ쥯¥é¥¹¤Ç¤¹¡Ë"
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, fuzzy, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬½Û´ÄŪ¤Ê·Ñ¾µ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:3498 objc/objc-act.c:3515
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤Î»ÅÍͤ¬°ì´Ó¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:4703
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr "¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:4869
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr "¥ì¥·¡¼¥Ð·¿ `%s' ¤¬Ìµ¸ú¤Ç¤¹"
-#: objc/objc-act.c:4900 objc/objc-act.c:4926 objc/objc-act.c:4974
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr "`%s' ¤Ï `%s' ¤Ë±þÅú¤·¤Þ¤»¤ó"
-#: objc/objc-act.c:4906 objc/objc-act.c:7191
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr "`%s' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë´ðÄ쥯¥é¥¹¤¬Àë¸À¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:5004
+#: objc/objc-act.c:5081
#, fuzzy
msgid "cannot find class (factory) method"
msgstr "¥¯¥é¥¹ (factory) ¥á¥½¥Ã¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:5005 objc/objc-act.c:5049
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr "`%s' ¤ÎÌá¤êÃͤη¿¤Ï¥Ç¥Õ¥©¥ë¥È¤Î id ¤È¤·¤Þ¤¹"
-#: objc/objc-act.c:5022
+#: objc/objc-act.c:5099
#, fuzzy, c-format
msgid "method `%s' not implemented by protocol"
msgstr "¥á¥½¥Ã¥É `%s' ¤Ï¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:5031
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr "Ìá¤êÃͤη¿¤ò¥Ç¥Õ¥©¥ë¥È¤Î id ¤È¤·¤Þ¤¹"
-#: objc/objc-act.c:5048
+#: objc/objc-act.c:5125
#, fuzzy
msgid "cannot find method"
msgstr "¥á¥½¥Ã¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr ""
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -21982,275 +21418,266 @@ msgstr "¥á¥½¥Ã¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5291
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤¬¥¯¥é¥¹¥á¥½¥Ã¥É¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤·¤¿"
-#: objc/objc-act.c:5541
+#: objc/objc-act.c:5678
#, fuzzy, c-format
msgid "duplicate definition of class method `%s'"
msgstr "¥¯¥é¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:5547
+#: objc/objc-act.c:5684
#, fuzzy, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "¥¯¥é¥¹¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:5583
+#: objc/objc-act.c:5720
#, fuzzy, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É `%s' ¤ÎÄêµÁ¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:5589
+#: objc/objc-act.c:5726
#, fuzzy, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É `%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£"
-#: objc/objc-act.c:5629
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr "¥«¥Æ¥´¥ê `%s(%s)' ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:5715
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï private ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:5762
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô `%s' ¤Ï %s ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:5772
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr "`id' ·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂΤ¹¤ëÀÅŪ¥¢¥¯¥»¥¹¤Ç¤¹"
-#: objc/objc-act.c:5809 objc/objc-act.c:5902
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr "¥¯¥é¥¹ `%s' ¤Î¼ÂÁõ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: objc/objc-act.c:5813 objc/objc-act.c:5907
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr "¥«¥Æ¥´¥ê `%s' ¤Î¼ÂÁõ¤¬ÉÔ´°Á´¤Ç¤¹"
-#: objc/objc-act.c:5818 objc/objc-act.c:5912
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr "`%c%s' ¤Î¥á¥½¥Ã¥ÉÄêµÁ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:5956
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr "%s `%s' ¤Ï `%s' ¥×¥í¥È¥³¥ë¤ò´°Á´¤Ë¤Ï¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: objc/objc-act.c:6013 objc/objc-act.c:8112
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
#, fuzzy
msgid "`@end' missing in implementation context"
msgstr "`@end' ¤Ï¼ÂÁõ¥³¥ó¥Æ¥¯¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:6041
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr "¥¯¥é¥¹ `%s' ¤ÎºÆ¼ÂÁõ¤Ç¤¹"
-#: objc/objc-act.c:6083
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr "´ðÄ쥯¥é¥¹Ì¾ `%s' ¤¬¾×Æͤ·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6098
+#: objc/objc-act.c:6224
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr "¥¯¥é¥¹ `%s' ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹Àë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:6382
+#: objc/objc-act.c:6506
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr "¥×¥í¥È¥³¥ë '%s' ¤ÎÀë¸À¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹"
-#: objc/objc-act.c:7232
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr "[super ...] ¤Ï¥á¥½¥Ã¥É¥³¥ó¥Æ¥­¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc/objc-act.c:8214 objc/objc-act.c:8230
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr "²ÄǽÀ­¤Î¤¢¤ë¥»¥ì¥¯¥¿¤¬¥á¥½¥Ã¥É `%s' ¤È¶¥¹ç¤·¤Þ¤¹"
-#: objc-parse.y:2577
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr "`@end' ¤Ï¼ÂÁõ¥³¥ó¥Æ¥¯¥¹¥È¤Ë¸½¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: objc-parse.y:2851
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr "¥á¥½¥Ã¥ÉÄêµÁ¤¬¥¯¥é¥¹¥³¥ó¥Æ¥­¥¹¥ÈÆâ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: config/sparc/freebsd.h:31 config/alpha/freebsd.h:36
-#: config/i386/freebsd-aout.h:227 config/ia64/freebsd.h:24
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "`-p' ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. `-pg' ¤È gprof(1) ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
-
-#: ada/lang-specs.h:39 gcc.c:698 java/jvspec.c:74
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
+msgstr "Àë¸À¤ò .decl ¥Õ¥¡¥¤¥ë¤Ë¥À¥ó¥×¤¹¤ë"
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
-msgstr ""
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
+msgstr "GNU ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
-msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n"
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
+msgstr "NeXT ¼Â¹Ô´Ä¶­ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
-#: gcc.c:677 f/lang-specs.h:35
-msgid "GNU C does not support -C without using -E"
-msgstr "GNU C ¤Ï -E ¤òȼ¤ï¤Ê¤¤ -C ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
+msgstr "¥»¥ì¥¯¥¿¤¬Ê£¿ô¤Î¥á¥½¥Ã¥É¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë"
-#: gcc.c:846
-msgid "-E required when input is from standard input"
-msgstr "ÆþÎϤ¬É¸½àÆþÎϤξì¹ç¤Ï -E ¤¬É¬ÍפǤ¹"
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr "ÇÉÀ¸¥á¥½¥Ã¥É¤¬Ì¤¼ÂÁõ¤Î¾ì¹ç¤Ç¤â·Ù¹ð¤·¤Ê¤¤"
-#: gcc.c:850
-#, fuzzy
-msgid "compilation of header file requested"
-msgstr "¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
+msgstr "¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Îµ¡Ç½¤Î C ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd ¤È -pedantic ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
+msgstr "Äê¿ôʸ»úÎóÍѤΥ¯¥é¥¹Ì¾¤ò»ØÄꤹ¤ë"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd ¤È -mxopen ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen ¤È -pedantic ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
-#: config/nextstep.h:161 config/nextstep.h:164
-#, fuzzy
-msgid "-p profiling is no longer supported. Use -pg instead"
-msgstr "-p ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤Ï¤â¤¦Ä󶡤µ¤ì¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë -pg ¤ò»È¤¤¤Þ¤·¤ç¤¦¡£"
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
-#: config/i386/mingw32.h:69 config/i386/cygwin.h:169
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
msgid "shared and mdll are not compatible"
msgstr "shared ¤È mdll ¤È¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/dsp16xx/dsp16xx.h:103 config/dsp16xx/dsp16xx.h:112
-#, fuzzy
-msgid "a -ifile option requires a -map option"
-msgstr "-ifile ¥ª¥×¥·¥ç¥ó¤Ë¤Ï -map ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹"
-
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
-msgstr "-static ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-fjni ¤È -femit-class-files ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
-msgstr "-shared ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-fjini ¤È -femit-class-file ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr ""
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr ""
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
-#: config/arc/arc.h:59 config/mips/mips.h:1057
-msgid "may not use both -EB and -EL"
-msgstr "-EB ¤È -EL ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+#: config/darwin.h:220
+#, fuzzy
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/i386/cygwin.h:114
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "mno-cygwin ¤È mno-win32 ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: config/darwin.h:221
+#, fuzzy
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
-#: config/mips/mips.h:854
+#: config/darwin.h:222
#, fuzzy
-msgid "-pipe is not supported"
-msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr ""
-#: config/mips/mips.h:1053
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "-mfp64 ¤È -msingle-float ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
-#: config/mips/mips.h:1054
-msgid "may not use both -mfp64 and -m4650"
-msgstr "-mfp64 ¤È -m4650 ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
-#: config/mips/mips.h:1056
+#: config/darwin.h:229
#, fuzzy
-msgid "may not use both -mgp32 and -mfp64"
-msgstr "-mfp64 ¤È -m4650 ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-m64 »ØÄê¥â¡¼¥É¤Ç¤Ï -mlong-double-64 ¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "`-p' ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. `-pg' ¤È gprof(1) ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
-#: config/mips/isa3264.h:123 config/mips/isa3264.h:128
-#: config/mips/isa3264.h:140 config/mips/isa3264.h:145
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
#, fuzzy
-msgid "-mlong32 and -mlong64 can not both be specified"
-msgstr "-msingle-float ¤È -msoft-float ¤ò°ìÅ٤˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
+msgid "may not use both -m32 and -m64"
+msgstr "-mfp64 ¤È -m4650 ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
-#: config/arm/arm.h:213
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "-mapcs-26 ¤È -mapcs-32 ¤ÏƱ»þ¤Ë»È¤¨¤Þ¤»¤ó"
-#: config/arm/arm.h:225
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "-msoft-float ¤È -mhard_float ¤ÏƱ»þ¤Ë»È¤¨¤Þ¤»¤ó"
-#: config/arm/arm.h:236
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "-mbig-endian ¤È -mlittle-endian ¤ÏƱ»þ¤Ë»È¤¨¤Þ¤»¤ó"
-#: config/arm/arm.h:254
-#, fuzzy
-msgid "incompatible interworking options"
-msgstr "¸ß´¹À­¤Î¤Ê¤¤ interworking ¥ª¥×¥·¥ç¥ó"
-
-#: config/i860/fx2800.h:299
-msgid "-p option not supported: use -pg instead"
-msgstr "-p ¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. Âå¤ï¤ê¤Ë -pg ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
-
-#: config/mips/r3900.h:28 config/mips/r3900.h:42
+#: config/i386/sco5.h:195
#, fuzzy
-msgid "-mhard-float not supported"
-msgstr "-mhard-float ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó."
+msgid "-pg not supported on this platform"
+msgstr "init_priority °À­¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-#: config/mips/r3900.h:30 config/mips/r3900.h:44
+#: config/i386/sco5.h:196
#, fuzzy
-msgid "-msingle-float and -msoft-float can not both be specified"
-msgstr "-msingle-float ¤È -msoft-float ¤ò°ìÅ٤˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
+msgid "-p and -pp specified - pick one"
+msgstr "-I- ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿"
-#: config/mmix/mmix.h:113
+#: config/i386/sco5.h:271
#, fuzzy
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
-msgstr "-traditional ¤È -ansi ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
-
-#: java/lang-specs.h:33
-msgid "-fjni and -femit-class-files are incompatible"
-msgstr "-fjni ¤È -femit-class-files ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+msgid "-G and -static are mutually exclusive"
+msgstr "-pedantic ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
-#: java/lang-specs.h:34
-msgid "-fjni and -femit-class-file are incompatible"
-msgstr "-fjini ¤È -femit-class-file ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr "GNU C ¤Ï -E ¤òȼ¤ï¤Ê¤¤ -C ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
-#: java/lang-specs.h:35 java/lang-specs.h:36
-msgid "-femit-class-file should used along with -fsyntax-only"
-msgstr ""
+#: f/lang-specs.h:39 gcc.c:690
+#, fuzzy
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C ¤Ï -E ¤òȼ¤ï¤Ê¤¤ -C ¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤»¤ó"
#: config/mcore/mcore.h:60
msgid "choose either big or little endian, not both"
@@ -22264,36 +21691,172 @@ msgstr "m340 ¤Þ¤¿¤Ï m210 ¤ÎξÊý¤Ç¤Ï¤Ê¤¯¡¢¤É¤Á¤é¤«¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤"
msgid "the m210 does not have little endian support"
msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "mno-cygwin ¤È mno-win32 ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "ÁȤ߹þ¤ß´Ø¿ô `%s' ¤Ï¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg ¤È -fomit-frame-pointer ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "ÆþÎϤ¬É¸½àÆþÎϤξì¹ç¤Ï -E ¤¬É¬ÍפǤ¹"
+
+#: gcc.c:851
+#, fuzzy
+msgid "compilation of header file requested"
+msgstr "¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤¬Í׵ᤵ¤ì¤Þ¤·¤¿"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "-mg ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó\n"
+
+#: config/mips/mips.h:954
+#, fuzzy
+msgid "-pipe is not supported"
+msgstr "-pipe ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "-EB ¤È -EL ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#: config/mips/r3900.h:35
+#, fuzzy
+msgid "-mhard-float not supported"
+msgstr "-mhard-float ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó."
+
+#: config/mips/r3900.h:37
+#, fuzzy
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr "-msingle-float ¤È -msoft-float ¤ò°ìÅ٤˻ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
+
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "__builtin_trap ¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
#~ msgid "type with more precision than %s"
#~ msgstr "%s ¤è¤ê¤âÀºÌ©¤Ê·¿"
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "ÉÔÌÀ¤Ê C ɸ½à `%s'"
+
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "³°Éô `%s' ¤Î·¿¤Ï¥°¥í¡¼¥Ð¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
#~ msgid "declaration of `%s' shadows previous local"
#~ msgstr "`%s' ¤ÎÀë¸À¤ÏÁ°Êý¤Î¥í¡¼¥«¥ë¥·¥ó¥Ü¥ë¤òʤ¤¤±£¤·¤Þ¤¹"
#~ msgid "ANSI C forbids const or volatile function types"
#~ msgstr "ANSI C ¤Ï const ¤ä volatile ´Ø¿ô·¿¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó"
+#~ msgid "null format string"
+#~ msgstr "¥Õ¥©¡¼¥Þ¥Ã¥Èʸ»úÎó¤¬ null ¤Ç¤¹"
+
#~ msgid "leaving more files than we entered"
#~ msgstr "Æþ¤Ã¤¿¥Õ¥¡¥¤¥ë¤è¤ê¤â½Ð¤¿¥Õ¥¡¥¤¥ë¤ÎÊý¤¬Â¿¤¯¤Ê¤ê¤Þ¤·¤¿"
#~ msgid "universal-character-name used for '%c'"
#~ msgstr "`%c' ¤Ë¥æ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾¤¬»È¤ï¤ì¤Þ¤·¤¿"
+#~ msgid "invalid universal-character-name"
+#~ msgstr "ÉÔŬÀڤʥæ¥Ë¥Ð¡¼¥µ¥ë¥­¥ã¥é¥¯¥¿Ì¾"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "`\\x' ¤Î°ÕÌ£¤Ï -traditional ¤ò¤Ä¤±¤¿¾ì¹ç¤È°Û¤Ê¤ê¤Þ¤¹"
+
#~ msgid "unknown escape sequence: '\\' followed by char 0x%x"
#~ msgstr "ÉÔÌÀ¤Ê¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹: ʸ»ú 0x%x ¤¬¸å¤Ë³¤¯ '\\'"
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "ÉâÆ°¾®¿ôÄê¿ô¤Ë 'f' ¤È 'l' ÀÜÈø¼­¤ÎξÊý¤¬¤¢¤ê¤Þ¤¹"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "´ð¿ô 16 ¤ÎÉâÆ°¾¯¿ôÄê¿ô¤Ïµö¤µ¤ì¤Þ¤»¤ó"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "¸Å¤¤ C ¤Ç¤Ï 'l' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C ¤Ç¤Ïµõ¿ôÄê¿ô¤ò¶Ø¤¸¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀ¿ô¤¬ 'double' ¤ÎÈϰϤòĶ¤¨¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "2 ¤Ä¤Î 'u' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "ÅÁÅýŪ¤Ê C ¤Ç¤Ï 'u' ÀÜÈø¼­¤¬µñÈݤµ¤ì¤Þ¤¹"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul' ¤ÏÀµ¾ï¤ÊÀ°¿ôÀÜÈø¼­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "Ê£¿ô¤Î 'i' ¤ä 'j' ÀÜÈø¼­¤¬À°¿ôÄê¿ô¤Ë¤Ä¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "À°¿ôÄê¿ô¤¬¥³¥ó¥Ñ¥¤¥é¤Î¸½ºß¤ÎÀßÄê¤è¤êÂ礭¤¹¤®¤ë¤¿¤á¡¢%d ¥Ó¥Ã¥È¤ËÀÚ¤êµÍ¤á¤Þ¤·¤¿"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "-traditional ¤ò¤Ä¤±¤ë¤ÈÀ°¿ôÄê¿ô¤ÎÉý¤¬ÊѤï¤ê¤Þ¤¹"
+
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "À°¿ôÄê¿ô¤Ï ISO C ¤Ç¤ÏÉä¹ç̵¤·¤Ç¡¢-traditional ¤ò¤Ä¤±¤ë¤ÈÉä¹çÉÕ¤­¤Ç¤¹"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "À°¿ôÄê¿ô¤ÎÉý¤Ï¾¤Î¥·¥¹¥Æ¥à¤Ç -traditional ¤ò¤Ä¤±¤ë¤ÈÊѤï¤ë¤Ç¤·¤ç¤¦"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "%s ¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "½½¿ÊÄê¿ô¤¬¤È¤Æ¤âÂ礭¤¤¤Î¤ÇÉä¹ç̵¤·¤È¤·¤Þ¤·¤¿"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "¤½¤Î·¿¤ÎºÇÂçÃͤè¤ê¤âÂ礭¤ÊÃͤÎÀ°¿ôÄê¿ô¤Ç¤¹"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "¿ô»ú '%.*s' ¤Î¸å¤Ë¶õÇò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
#~ msgid "ISO C forbids `&&'"
#~ msgstr "ISO C ¤Ï `&&' ¤ò¶Ø¤¸¤Þ¤¹"
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C ¤Ç¤Ï `varargs.h' ¤ÎÍøÍѤòµö¤·¤Þ¤»¤ó"
+
#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
#~ msgstr "²¾°ú¿ôÀë¸ÀÃæ¤Î `[*]' ¤Ï ISO C 99 ¤Ç¤Î¤ßµö¤µ¤ì¤Æ¤¤¤Þ¤¹"
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof ¤¬´Ø¿ô·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof ¤¬ void ·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
+
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof ¤¬ÉÔ´°Á´¤Ê·¿¤ËŬÍѤµ¤ì¤Þ¤·¤¿"
+
#~ msgid "wrong type argument to %s"
#~ msgstr "%s ¤Ø¤Î°ú¿ô¤Î·¿¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
#~ msgid "invalid lvalue in increment"
#~ msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥È¤ÎÃæ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
+#~ msgid "invalid lvalue in decrement"
+#~ msgstr "¥Ç¥¯¥ê¥á¥ó¥È¤ÎÃæ¤Ç¤Îº¸ÊÕÃͤ¬Ìµ¸ú¤Ç¤¹"
+
+#~ msgid "increment"
+#~ msgstr "¥¤¥ó¥¯¥ê¥á¥ó¥È"
+
+#~ msgid "decrement"
+#~ msgstr "¥Ç¥¯¥ê¥á¥ó¥È"
+
#~ msgid "deprecated initialization of zero-length array"
#~ msgstr "Ťµ 0 ¤Î½é´ü²½¤Ï¿ä¾©¤µ¤ì¤Þ¤»¤ó"
@@ -22303,11 +21866,119 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "initialization of zero-length array inside a nested context"
#~ msgstr "¥Í¥¹¥È¤·¤¿Ê¸Ì®¤ÎÆ⦤ÇŤµ 0 ¤ÎÇÛÎó¤ò½é´ü²½¤·¤Æ¤¤¤Þ¤¹"
+#~ msgid "variable offset is passed paritially in stack and in reg"
+#~ msgstr "ÊÑ¿ô¥ª¥Õ¥»¥Ã¥È¤¬¥¹¥¿¥Ã¥¯¤È¥ì¥¸¥¹¥¿¤ÇÅù²Á¤ËÅϤµ¤ì¤Þ¤·¤¿"
+
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "ÊÑ¿ô¥µ¥¤¥º¤¬¥¹¥¿¥Ã¥¯¤È¥ì¥¸¥¹¥¿¤ÇÅù²Á¤ËÅϤµ¤ì¤Þ¤·¤¿"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "VAX-C ¥¢¥é¥¤¥ó¥á¥ó¥È¤ò»ÈÍÑ"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "̵¸ú¤Ê %%V ÃÍ"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "DW ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤¿¤È¸«¤Ê¤·¤Æ¥³¡¼¥ÉÀ¸À®"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "DW ¥Ó¥Ã¥È¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¸«¤Ê¤·¤Æ¥³¡¼¥ÉÀ¸À®"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "¥Ð¥¤¥È½ñ¤­¹þ¤ß¤ò»È¤Ã¤Æ¥³¡¼¥ÉÀ¸À®"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "¥Ð¥¤¥È½ñ¤­¹þ¤ß¤ò»È¤ï¤º¤Ë¥³¡¼¥ÉÀ¸À®"
+
+#~ msgid "Use small memory model"
+#~ msgstr "¥¹¥â¡¼¥ë¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "¥Î¡¼¥Þ¥ë¥á¥â¥ê¥â¥Ç¥ë¤òÍøÍÑ"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "29050 ¥³¡¼¥É¤òÀ¸À®"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "29000 ¥³¡¼¥É¤òÀ¸À®"
+
+#~ msgid "Use user global registers"
+#~ msgstr "¥æ¡¼¥¶¥°¥í¡¼¥Ð¥ë¥ì¥¸¥¹¥¿¤òÍøÍÑ"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "¥¹¥¿¥Ã¥¯¥Á¥§¥Ã¥¯ÍÑ¥³¡¼¥É¤òÅǤ¯"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "¥¹¥¿¥Ã¥¯¥Á¥§¥Ã¥¯ÍÑ¥³¡¼¥É¤òÅǤ«¤Ê¤¤"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "storem ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤Ê¤¦"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "storem ¥Ï¡¼¥É¥¦¥§¥¢¥Ð¥°¤ÎÂнè¤ò¹Ô¤Ê¤ï¤Ê¤¤"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "°ú¿ô¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥«¥ë¤Î¤â¤Î¤ò³ÊǼ¤¹¤ë"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "°ú¿ô¥ì¥¸¥¹¥¿¤Ë¥í¡¼¥«¥ë¤Î¤â¤Î¤ò³ÊǼ¤·¤Ê¤¤"
+
#~ msgid "Unable to find a temporary location for static chain register"
#~ msgstr "ÀÅŪ¥Á¥§¥¤¥ó¥ì¥¸¥¹¥¿ÍѤΰì»þÎΰè¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó"
-#~ msgid "Only initialized variables can be placed into the 8-bit area."
-#~ msgstr "8 ¥Ó¥Ã¥ÈÎΰèÆâ¤ËÇÛÃ֤Ǥ­¤ëÊÑ¿ô¤À¤±¤¬½é´ü²½¤µ¤ì¤Þ¤·¤¿"
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "BSD ÍѤ˥·¥ó¥Ü¥ë̾¤òÊѹ¹¤¹¤ë"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "X/OPEN ÍѤ˥·¥ó¥Ü¥ë̾¤òÊѹ¹¤¹¤ë"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "¥·¥ó¥Ü¥ë̾¤ÎÊѹ¹¤ò¹Ô¤ï¤Ê¤¤"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "C400 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "C300 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "c34 ÍѤΥ³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "ɸ½àŪ¸Æ¤Ó½Ð¤·¼ê½ç¤ò»È¤¤¡¢°ú¿ô¥«¥¦¥ó¥È word ¤ò¤Ä¤±¤ë"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "nop Ì¿ÎáÆâ¤Ë°ú¿ô¥«¥¦¥ó¥È¤òÃÖ¤¯ (push ¤è¤ê¹â®)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "°ú¿ô¥«¥¦¥ó¥È¤ò push ¤»¤º¡¢¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò¤¢¤Æ¤Ë¤¹¤ë"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "volatile ¥á¥â¥ê»²¾ÈÍѥǡ¼¥¿¥­¥ã¥Ã¥·¥å¤òÍøÍѤ¹¤ë(¥Ç¥Õ¥©¥ë¥È)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "volatile ¥á¥â¥ê»²¾ÈÍѤˤϥǡ¼¥¿¥­¥ã¥Ã¥·¥å¤ò¹Ô¤ï¤Ê¤¤"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "volatile ¥á¥â¥ê»²¾ÈÍÑ¤Ë¤Ï cache ¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²óÈò¤¹¤ë"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "64 ¥Ó¥Ã¥È long ¤ò»ÈÍѤ¹¤ë"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "cc- ¤È libc ¸ß´¹¤Î 32 ¥Ó¥Ã¥È long ¤ò»ÈÍѤ¹¤ë"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "¤³¤Î¥Û¥¹¥È¤Ç¤Ï¥¤¥ó¥é¥¤¥óÉâÆ°¾®¿ôÄê¿ô¤ò¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "unix ¥¢¥»¥ó¥Ö¥é¤¬½èÍý¤Ç¤­¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Ëä¤á¹þ¤ß¥¢¥»¥ó¥Ö¥é¤¬½èÍý¤Ç¤­¤ë¥³¡¼¥É¤òÀ¸À®¤¹¤ë"
#~ msgid "Internal gcc abort from %s:%d"
#~ msgstr "gcc ÆâÉô¤ÇÃæÃÇ %s:%d"
@@ -22315,12 +21986,30 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "The local variable `insn' has the value:"
#~ msgstr "¤½¤Î¥í¡¼¥«¥ëÊÑ¿ô `insn' ¤¬Ãͤò»ý¤Ã¤Æ¤¤¤Þ¤¹:"
-#~ msgid "Register '%c' is unknown"
-#~ msgstr "¥ì¥¸¥¹¥¿ '%c' ¤¬ÉÔÌÀ¤Ç¤¹"
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "ɸ½à MXDB ¾ðÊó¤òÊÝ»ý¤¹¤ë"
+
+#~ msgid "Retain legend information"
+#~ msgstr "legend ¾ðÊó¤ò°Ý»ý¤¹¤ë"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "³°Éô legend ¾ðÊó¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr ".s ¥Õ¥¡¥¤¥ëÆâ¤Ë¼±Ê̻ҾðÊó¤òÁ÷½Ð¤¹¤ë"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "´Ø¿ô¤Î°ú¿ô¤¬¹½Â¤ÂΤÀ¤Ã¤¿¤é·Ù¹ð¤¹¤ë"
+
+#~ msgid "argument is a structure"
+#~ msgstr "°ú¿ô¤¬¹½Â¤ÂΤǤ¹"
#~ msgid "Register '%c' already specified in allocation order"
#~ msgstr "¥ì¥¸¥¹¥¿ '%c' ¤Ï´û¤Ë³ÎÊݽç¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹"
+#~ msgid "half-pic init called on systems that don't support it."
+#~ msgstr "half-pic ½é´ü²½¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿¡£"
+
#~ msgid "Same as -mcpu=i386"
#~ msgstr "-mcpu=i386 ¤ÈƱ¤¸"
@@ -22339,14 +22028,146 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "Control allocation order of integer registers"
#~ msgstr "À°¿ô¥ì¥¸¥¹¥¿¤Î³ÎÊݽç¤òÀ©¸æ¤¹¤ë"
+#~ msgid "Profiling uses mcount"
+#~ msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Ç mcount ¤òÍøÍѤ¹¤ë"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Ⱦ PIC ¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "ELF ¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "ROSE ¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼¥É¤òÁ÷½Ð¤¹¤ë"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "¥·¥ó¥Ü¥ë¤ÎƬ¤Ë¥¢¥ó¥À¡¼¥¹¥³¥¢¤ò¤Ä¤±¤ë"
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "¥ï¡¼¥É¶­³¦¤è¤êÂ礭¤á¤Ë¥¢¥é¥¤¥ó¤¹¤ë"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "¥×¥í¥Õ¥¡¥¤¥ëÍÑ¤Ë mcount ¤òÍøÍѤ¹¤ë"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Ë mcount_ptr ¤òÍøÍѤ¹¤ë"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀ¥æ¥Ë¥Ã¥È¤òÍøÍѤ¹¤ë¥³¡¼¥É¤òÀ¸À®¤·¤Ê¤¤"
+
+#~ msgid "The -mlong-double-64 option does not work yet."
+#~ msgstr "-mlong-double-64 ¥ª¥×¥·¥ç¥ó¤Ï¤Þ¤ÀÆ°ºî¤·¤Þ¤»¤ó"
+
+#~ msgid "invalid %H value"
+#~ msgstr "̵¸ú¤Ê %H ÃͤǤ¹"
+
+#~ msgid "invalid %h value"
+#~ msgstr "̵¸ú¤Ê %h ÃͤǤ¹"
+
+#~ msgid "invalid %Q value"
+#~ msgstr "̵¸ú¤Ê %Q ÃͤǤ¹"
+
+#~ msgid "invalid %q value"
+#~ msgstr "̵¸ú¤Ê %q ÃͤǤ¹"
+
+#~ msgid "invalid %p value"
+#~ msgstr "̵¸ú¤Ê %p ÃͤǤ¹"
+
+#~ msgid "invalid %B value"
+#~ msgstr "̵¸ú¤Ê %B ÃͤǤ¹"
+
+#~ msgid "invalid %C value"
+#~ msgstr "̵¸ú¤Ê %C ÃͤǤ¹"
+
+#~ msgid "invalid %E value"
+#~ msgstr "̵¸ú¤Ê %E ÃͤǤ¹"
+
+#~ msgid "invalid %r value"
+#~ msgstr "̵¸ú¤Ê %r ÃͤǤ¹"
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s ¤Ï -mips%d ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+
#~ msgid "The -mabi=32 support does not work yet."
#~ msgstr "-mabi=32 ¥µ¥Ý¡¼¥È¤Ï¤Þ¤ÀÆ°ºî¤·¤Þ¤»¤ó"
+#~ msgid "This target does not support the -mabi switch."
+#~ msgstr "¤³¤Î¥¿¡¼¥²¥Ã¥È¤Ï -mabi ¥¹¥¤¥Ã¥Á¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+
#~ msgid "-mcpu=%s does not support -mips%d"
#~ msgstr "-mcpu=%s ¤Ï -mips%d ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
-#~ msgid "invalid %%W value"
-#~ msgstr "̵¸ú¤Ê %%W ÃͤǤ¹"
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d ¤Ï 64 bit fp ¥ì¥¸¥¹¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d ¤Ï 64 bit gp ¥ì¥¸¥¹¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "OSF PIC ¤òÍøÍѤ¹¤ë"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "OSF PIC ¤òÍøÍѤ·¤Ê¤¤"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "4650 ÍѤ˺ÇŬ²½¤¹¤ë"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "3900 ÍѤ˺ÇŬ²½¤¹¤ë"
+
+#~ msgid "optimization turned on"
+#~ msgstr "ºÇŬ²½¤òÍ­¸ú¤Ë¤¹¤ë"
+
+#~ msgid "optimization turned off"
+#~ msgstr "ºÇŬ²½¤ò̵¸ú¤Ë¤¹¤ë"
+
+#~ msgid "optimization level restored"
+#~ msgstr "ºÇŬ²½¥ì¥Ù¥ë¤ò¸µ¤ËÌᤷ¤Þ¤·¤¿"
+
+#~ msgid "PIC code generation is not compatible with profiling\n"
+#~ msgstr "PIC ¥³¡¼¥ÉÀ¸À®¤Ï¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤È¤ÏÁêÍƤì¤Þ¤»¤ó\n"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "¥á¥ó¥Æ¥Ê¥Æ¥¹¥È¥³¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Transmeta picoJava ³ÈÄ¥¤òÍ­¸ú¤Ë¤¹¤ë"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Transmeta picoJava ³ÈÄ¥¤ò̵¸ú¤Ë¤¹¤ë"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "ºÆÊÔÀ®¹©Äø¤ò̵¸ú¤Ë¤¹¤ë"
+
+#~ msgid "-f%s ignored for AIX (all code is position independent)"
+#~ msgstr "AIX ÍÑ¤Ë -f%s ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿¡ÊÁ´¤Æ¤Î¥³¡¼¥É¤Ï°ÌÃÖÈó°Í¸¤Ç¤¹¡Ë"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "AIX ¤Ç¤Ï¥Ç¥Ð¥Ã¥°»þ¤Î -ffunction-sections ¤Ï̵¸ú¤È¤µ¤ì¤Þ¤¹"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "AIX ¤Ç¤Ï -fdata-sections ¤Ï¼õ¤±Æþ¤ì¤é¤ì¤Þ¤»¤ó"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S ¤ÏÁ´¤Æ¤¬ 1 ¤Î¥Þ¥¹¥¯¤ò·×»»¤·¤Þ¤·¤¿"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S ¤ÏÁ´¤Æ¤¬ 0 ¤Î¥Þ¥¹¥¯¤ò·×»»¤·¤Þ¤·¤¿"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï medlow °Ê³°¤Î¥³¡¼¥É¥â¥Ç¥ë¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
+
+#~ msgid "%s and profiling conflict: disabling %s"
+#~ msgstr "%s ¤È¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤Ï¶¥¹ç¤·¤Þ¤¹: %s ¤ò̵¸ú²½¤·¤Þ¤¹"
#~ msgid "Use FUNCTION_EPILOGUE"
#~ msgstr "FUNCTION_EPILOGUE ¤ò»ÈÍѤ¹¤ë"
@@ -22363,18 +22184,51 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "the ABI requires vtable thunks"
#~ msgstr "ABI ¤Ï²¾ÁÛ´Ø¿ô¥Æ¡¼¥Ö¥ë¥µ¥ó¥¯¤òÍ׵ᤷ¤Þ¤¹"
+#~ msgid "cannot declare %s to references"
+#~ msgstr "%s ¤ò»²¾È¤È¤·¤ÆÀë¸À¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "̵¸ú¤Ê·¿: `void &'"
+
+#~ msgid "discarding `const' applied to a reference"
+#~ msgstr "»²¾È¤ËÍѤ¤¤é¤ì¤¿ `const' ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹"
+
+#~ msgid "discarding `volatile' applied to a reference"
+#~ msgstr "»²¾È¤ËÍѤ¤¤é¤ì¤¿ `volatile' ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "typedef Àë¸À¤¬½é´üÀßÄê»Ò¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version ¤Ï¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
+
#~ msgid "`__alignof__' applied to a bit-field"
#~ msgstr "¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤ËÂФ·¤ÆŬÍѤµ¤ì¤¿ `__alignof__'"
-#~ msgid "base class initializer specified, but no base class to initialize"
-#~ msgstr "´ðÄ쥯¥é¥¹½é´üÀßÄê»Ò¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " Àë¸À½ç¤È°ìÃפ¹¤ë¤è¤¦¤ËʤÓÂؤ¨¤é¤ì¤Þ¤¹"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " ÇÉÀ¸½ç¤È°ìÃפ¹¤ë¤è¤¦¤ËʤÙÂؤ¨¤é¤ì¤Þ¤¹"
#~ msgid "initializer for unnamed base class ambiguous"
#~ msgstr "̵̾´ðÄ쥯¥é¥¹¤Î½é´üÀßÄê»Ò¤¬Û£Ëæ¤Ç¤¹"
+#~ msgid "no base class to initialize"
+#~ msgstr "½é´ü²½¤¹¤Ù¤­´ðÄ쥯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+
#~ msgid "Do not treat the namespace `std' as a normal namespace"
#~ msgstr "̾Á°¶õ´Ö `std' ¤òÄ̾ï¤Î̾Á°¶õ´Ö¤È¤·¤Æ¼è¤ê°·¤ï¤Ê¤¤"
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "¥¯¥í¥¹¥³¥ó¥Ñ¥¤¥ë»þ¤Î¼Â¿ôÃͥƥó¥×¥ì¡¼¥È²¾°ú¿ô"
+
+#~ msgid "methods cannot be converted to function pointers"
+#~ msgstr "¥á¥½¥Ã¥É¤Ï´Ø¿ô¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "¥á¥½¥Ã¥É¥Ý¥¤¥ó¥¿ `%s' ¤Ø¤ÎÍ׵᤬ۣËæ¤Ç¤¹"
+
#~ msgid "ISO C++ forbids `&&'"
#~ msgstr "ISO C++ ¤Ï `&&' ¤ò¶Ø¤¸¤Þ¤¹"
@@ -22384,9 +22238,63 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "recoverable compiler error, fixups for virtual function"
#~ msgstr "²óÉü²Äǽ¤Ê¥³¥ó¥Ñ¥¤¥é¤Î¥¨¥é¡¼¡¢²¾ÁÛ´Ø¿ô¤Î½¤Àµ"
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " Àè¤Ë¤¢¤ë¥á¥ó¥Ð½é´ü²½»Ò¤ÈʤÓÂؤ¨¤é¤ì¤Þ¤¹"
+
#~ msgid "`com_interface' only supported with -fvtable-thunks"
#~ msgstr "`com_interface' ¤Ï -fvtable-thunks ¤ò»ØÄꤷ¤¿¤È¤­¤À¤±¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹"
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ ¤Ï¥á¥ó¥Ð´Ø¿ô¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ ¤ÏÉÔ´°Á´·¿¤Ç¤¢¤ë `void' ·¿¤Ø¤Î `sizeof' ¤ÎŬÍѤò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#~ msgstr "NULL ¥Ý¥¤¥ó¥¿¤Ø¤Î̵¸ú¤Ê»²¾È¡¢Âå¤ï¤ê¤Ë¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¤¤Þ¤·¤ç¤¦"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "ÀÅŪ¥á¥ó¥Ð´Ø¿ô¥¹¥³¡¼¥×Æâ¤Ç¤Ï `this' ¤òÍפ¹¤ë¥á¥ó¥Ð´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï̵¸ú¤Ç¤¹"
+
+#~ msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
+#~ msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë `void *' ·¿¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
+#~ msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
+#~ msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
+#~ msgstr "ISO C++ ¤Ï¥Ý¥¤¥ó¥¿·×»»¤Ë¥á¥ó¥Ð¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò»È¤¦¤³¤È¤ò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "unary `&'"
+#~ msgstr "ñ¹à¤Î `&'"
+
+#~ msgid "return value from function receives multiple initializations"
+#~ msgstr "´Ø¿ô¤«¤é¤ÎÌá¤êÃͤ¬Ê£¿ô¤Î½é´ü²½¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿"
+
+#~ msgid "Internal error #%d."
+#~ msgstr "ÆâÉô¥¨¥é¡¼: #%d¡£"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "¥³¥ó¥¹¥È¥é¥¯¥¿¤¬¤¢¤ë¤³¤È¤Ë¤è¤ë"
+
+#~ msgid "ANSI C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ANSI C++ ¤ÏÄê¿ô¤Ç¤Ê¤¤½¸¹çÂΤνé´ü²½»Ò¼°¤ò¶Ø¤¸¤Þ¤¹"
+
+#~ msgid "Can't create cross-reference file `%s'"
+#~ msgstr "Áê¸ß»²¾È¥Õ¥¡¥¤¥ë `%s' ¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "¸Å¤¤ C ¤Ç¤Ï `U' ÀÜÈø¼­¤¬µñÀ䤵¤ì¤Þ¤¹"
+
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "À°¿ôÄê¿ô¤Î¥µ¥Õ¥£¥Ã¥¯¥¹ 'l' ¤¬Â¿¤¹¤®¤Þ¤¹"
+
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "À°¿ôÄê¿ô¤¬´ð¿ô¤òĶ¤¨¤¿¿ôÃͤò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+
#~ msgid "\"defined\" operator appears during macro expansion"
#~ msgstr "\"defined\" ±é»»»Ò¤¬¥Þ¥¯¥íŸ³«Ãæ¤Ë¸½¤ì¤Þ¤·¤¿"
@@ -22396,6 +22304,51 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "buffers still stacked in cpp_finish"
#~ msgstr "cpp_finish ¤Ç¥Ð¥Ã¥Õ¥¡¤¬¤Þ¤À¥¹¥¿¥Ã¥¯¤µ¤ì¤Æ¤¤¤Þ¤¹"
+#~ msgid "Argument missing after %s"
+#~ msgstr "%s ¤Î¸å¤í¤Î°ú¿ô¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "Number missing after %s"
+#~ msgstr "%s ¤Î¸å¤í¤Î¿ô»ú¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
+
+#~ msgid "Usage: %s [switches] input output\n"
+#~ msgstr "»È¤¤Êý: %s [¥¹¥¤¥Ã¥Á] ÆþÎÏ ½ÐÎÏ\n"
+
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic ¸·Ì©¤Ê ISO C ¤ÇÍ׵ᤵ¤ì¤ëÁ´¤Æ¤Î·Ù¹ð¤òȯ¹Ô¤¹¤ë\n"
+#~ " -pedantic-errors -pedantic ·Ù¹ð¤ÎÂå¤ê¤Ë¥¨¥é¡¼¤òȯ¹Ô¤¹¤ë\n"
+#~ " -trigraphs ISO C ¥È¥é¥¤¥°¥é¥Õ¤ò¼õ¤±Æþ¤ì¤ë\n"
+#~ " -lang-c ÆþÎÏ¥½¡¼¥¹¤ò C ¤È¤ß¤Ê¤¹\n"
+#~ " -lang-c89 ÆþÎÏ¥½¡¼¥¹¤ò C89 ¤È¤ß¤Ê¤¹\n"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ ÆþÎÏ¥½¡¼¥¹¤ò C ¤È¤ß¤Ê¤¹\n"
+#~ " -lang-objc ÆþÎÏ¥½¡¼¥¹¤ò ObjectiveC ¤È¤ß¤Ê¤¹\n"
+#~ " -lang-objc++ ÆþÎÏ¥½¡¼¥¹¤ò ObjectiveC++ ¤È¤ß¤Ê¤¹\n"
+#~ " -lang-asm ÆþÎÏ¥½¡¼¥¹¤ò¥¢¥»¥ó¥Ö¥ê¸À¸ì¤È¤ß¤Ê¤¹\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "½ªÃ¼¤Î¤Ê¤¤Ê¸»úÎó¥ê¥Æ¥é¥ë¤Î¿äÄ곫»Ï°ÌÃÖ"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "Ê£¿ô¹Ôʸ»úÎó¥ê¥Æ¥é¥ë¤Ï¿ä¾©¤µ¤ì¤Þ¤»¤ó"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "¥Þ¥¯¥í°ú¿ôÆâ¤Ç¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
#~ msgid "# followed by integer"
#~ msgstr "À°¿ô¤¬ # ¤Ë³¤¤¤Æ¤¤¤Þ¤¹"
@@ -22408,24 +22361,81 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "expected to return to file \"%s\""
#~ msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ËÌá¤ë¤Ï¤º¤Ç¤·¤¿"
-#~ msgid "expected to return to line number %u"
-#~ msgstr "¹ÔÈÖ¹æ %u ¤ËÌá¤ë¤Ï¤º¤Ç¤·¤¿"
-
#~ msgid "header flags for \"%s\" have changed"
#~ msgstr "\"%s\" ¤Î¥Ø¥Ã¥À¥Õ¥é¥°¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿"
+#~ msgid "<stdin>"
+#~ msgstr "<ɸ½àÆþÎÏ>"
+
#~ msgid "file \"%s\" entered but not left"
#~ msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ËÆþ¤ê¤Þ¤·¤¿¤¬½Ð¤Þ¤»¤ó¤Ç¤·¤¿"
+#~ msgid "Invalid option %s"
+#~ msgstr "̵¸ú¤Ê¥ª¥×¥·¥ç¥ó %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: ·Ù¹ð: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: ·Ù¹ð: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "»ÄÇ°¤Ê¤¬¤é¸«¼ÂÁõ¤Ç¤¹: "
+
+#~ msgid "support non-32-bit machines better as of version 0.6."
+#~ msgstr "g77 ¤Ï¤¤¤º¤ì version 0.6 ƱÍͤËÈó 32 ¥Ó¥Ã¥Èµ¡¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "-traditional ¤Ç¤Ï `\\a' ¤Î°ÕÌ£¤¬°Û¤Ê¤ê¤Þ¤¹"
+
+#~ msgid "output_operand: %s"
+#~ msgstr "output_operand: %s"
+
#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
#~ msgstr "NOTE_INSN_BASIC_BLOCK ¤¬¥Ö¥í¥Ã¥¯ %d ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "`-b' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "`-V' ¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "invalid version number format"
+#~ msgstr "̵¸ú¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ·Á¼°"
+
#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] ¥Õ¥¡¥¤¥ë\n"
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr ".da ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¤¢¤Þ¤ê¤ËÁ᤯»È¤¤ÀڤäƤ·¤Þ¤¤¤Þ¤·¤¿\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%%(%d ¹ÔÃæ) ¤Î¥½¡¼¥¹¹Ô¤¬´Ø¿ô %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬´Ø¿ô %s Æâ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%%(%d ËÜÃæ) ¤Î¥Ö¥é¥ó¥Á¤¬¾¯¤Ê¤¯¤È¤â°ìÅ٤ϴؿô %s ¤Ç¼õ¼è¤é¤ì¤Þ¤·¤¿\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "´Ø¿ô %s ¤Ë¤Ïʬ´ô¤¬¤¢¤ê¤Þ¤»¤ó\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%%(%d ²ó) ¤Î¸Æ¤Ó½Ð¤·¤¬´Ø¿ô %s ¤Ç¼Â¹Ô¤µ¤ì¤Þ¤·¤¿\n"
+
+#~ msgid "call %d returns = %d%%\n"
+#~ msgstr "¸Æ¤Ó½Ð¤· %d ¤ÎÌá¤ê = %d%%\n"
+
+#~ msgid "branch %d taken = %d%%\n"
+#~ msgstr "¥Ö¥é¥ó¥Á %d ¼õÍý = %d%%\n"
+
#~ msgid "Premature end of input file %s"
#~ msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤Î½ª¤ê¤Ë㤹¤ë¤Î¤¬Á᤹¤®¤Þ¤¹"
+#~ msgid "can't to open %s"
+#~ msgstr "%s ¤ò open ¤Ç¤­¤Þ¤»¤ó"
+
#~ msgid "Make is_compiled_class return 1"
#~ msgstr "is_compiled_class ¤¬ 1 ¤òÊÖ¤¹¤è¤¦¤Ë¤¹¤ë"
@@ -22441,12 +22451,60 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "Don't put synchronization structure in each object"
#~ msgstr "Ʊ´ü¹½Â¤ÂΤò³Æ¥ª¥Ö¥¸¥§¥¯¥È¤ËÁȤßÆþ¤ì¤Ê¤¤"
-#~ msgid "Use built-in instructions for division"
-#~ msgstr "ÁȤ߹þ¤ß¤Î½ü»»Ì¿Îá¤ò»ÈÍѤ¹¤ë"
+#~ msgid "Set class path and suppress system path"
+#~ msgstr "¥¯¥é¥¹¥Ñ¥¹¤òÀßÄꤷ¤Æ¥·¥¹¥Æ¥à¥Ñ¥¹¤ò±£¤¹"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "ÇÛÎó¤Î¼¡¸µ¤òÀë¸À¤Ç»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "Can't use '$' as a separator for inner classes"
+#~ msgstr "'$' ¤ÏÆâÉô¥¯¥é¥¹¤Î¶èÀÚ¤ê»Ò¤È¤·¤Æ»ÈÍѤǤ­¤Þ¤»¤ó"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "ÆâÉô¥¨¥é¡¼ - ̤ÄêµÁ·¿¤Î»ÈÍѤǤ¹"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "-fconstant-string-class ¤Ë°ú¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤¿¥¯¥é¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "syntax error at '@' token"
+#~ msgstr "'@' ¥È¡¼¥¯¥ó¤Çʸˡ¥¨¥é¡¼"
#~ msgid "Arc profiling: some edge counts were bad."
#~ msgstr "¸Ì(arc)¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°: ´ö¤Ä¤«¤Î edge ¥«¥¦¥ó¥È¤ÏÉÔÀµ¤Ç¤¹¡£"
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "NaN ¤«¤éÉä¹ç̵¤·À°¿ô¤Ø¤ÎÊÑ´¹¤Ç¤¹"
+
+#~ msgid "floating point overflow"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀ¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "À°¿ô¤Ø¤ÎÀÚ¤êµÍ¤á¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "Éä¹ç̵¤·À°¿ô¤Ø¤ÎÀÚ¤êµÍ¤á¤Ç¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤³¤ê¤Þ¤·¤¿"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: °ú¿ôÎΰ襨¥é¡¼¤Ç¤¹"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: ´Ø¿ô¤Îñ°ìÀ­"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼ÈÏ°Ï¥¨¥é¡¼"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: ¥¢¥ó¥À¡¼¥Õ¥í¡¼ÈÏ°Ï¥¨¥é¡¼"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: Á´ÂÎŪ¤ÊÀºÅÙ¤ÎÄã²¼"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: ÉôʬŪ¤ÊÀºÅÙ¤ÎÄã²¼"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - Áàºî¤òÀ¸¤¸¤Þ¤¹"
+
#~ msgid "`asm' cannot be used in function where memory usage is checked"
#~ msgstr "`asm' ¤Ï´Ø¿ô¤Ç¥á¥â¥êÍøÍѤòÄ´¤Ù¤ë½ê¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
@@ -22456,9 +22514,15 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "output operand constraint %d contains `+'"
#~ msgstr "½ÐÎÏ¥ª¥Ú¥é¥ó¥ÉÀ©Ìó %d ¤Ï `+' ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+#~ msgid "hard register `%s' listed as input operand to `asm'"
+#~ msgstr "¥Ï¡¼¥É¥ì¥¸¥¹¥¿ `%s' ¤¬ `asm' ¤ËÂФ·¡¢ÆþÎÏ¥ª¥Ú¥é¥ó¥É¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤·¤¿"
+
#~ msgid "\"%s\" and \"%s\" identical in first %d characters"
#~ msgstr "\"%s\" ¤È \"%s\" ¤ÏºÇ½é¤Î %d ʸ»ú¤¬Á´¤¯Æ±¤¸¤Ç¤¹"
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "¥Û¥¹¥È¤È¥¿¡¼¥²¥Ã¥È¤¬Æ±¤¸ÉâÆ°¾®¿ô·Á¼°¤ò»È¤¦¿¶¤ëÉñ¤¤¤ò¤µ¤»¤ë"
+
#~ msgid "Improve FP speed by violating ANSI & IEEE rules"
#~ msgstr "ANSI & IEEE µ¬Â§¤òÇˤäÆÉâÆ°¾®¿ô¤Î®ÅÙ¤ò²þÁ±¤¹¤ë"
@@ -22468,12 +22532,27 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "Add a prefix to all function names"
#~ msgstr "Á´¤Æ¤Î´Ø¿ô̾¤ËÀÜƬ¼­¤òÄɲ乤ë"
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "-traditional »ÈÍÑ»þ¤Ë¤Ï¡¢ÉâÆ°¾®¿ô¤Ë´Ø¤· float ¤«¤é double ¤Ë³Ê¾å¤²¤·¤Ê¤¤"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "¸Å¤¤ K&R ¼°¤Î C ¤Î¥µ¥Ý¡¼¥È¤ò»î¤ß¤ë"
+
+#~ msgid "Internal error: %s"
+#~ msgstr "ÆâÉô¥¨¥é¡¼: %s"
+
#~ msgid "Errors detected in input file (your bison.simple is out of date)\n"
#~ msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ëÃæ¤Ë¥¨¥é¡¼ (¤¢¤Ê¤¿¤Î bison.simple ¤Ï¸Å¤¹¤®¤Þ¤¹)\n"
#~ msgid " -Wid-clash-<num> Warn if 2 identifiers have the same first <num> chars\n"
#~ msgstr " -Wid-clash-<num> Æó¤Ä¤Î¼±Ê̻Ҥ¬ <num> ʸ»úʬ°ìÃפ·¤Æ¤¤¤ì¤Ð·Ù¹ð¤¹¤ë\n"
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a ¥Ö¥í¥Ã¥¯¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax ¥¸¥ã¥ó¥×¥×¥í¥Õ¥¡¥¤¥ë¤òÍ­¸ú¤Ë¤¹¤ë\n"
+
#~ msgid "Unrecognized option `%s'"
#~ msgstr "ǧ¼±ÉÔǽ¤Ê¥ª¥×¥·¥ç¥ó `%s'"
@@ -22486,9 +22565,195 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "`-ax' and `-a' are conflicting options. `-a' ignored."
#~ msgstr "`-ax' ¤È `-a' ¤ÏÌ·½â¤¹¤ë¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£`-a' ¤ò̵»ë¤·¤Þ¤·¤¿¡£"
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "¥×¥í¥Õ¥¡¥¤¥ë¤Ï¥Õ¥ì¡¼¥à¥Ý¥¤¥ó¥¿¤Ê¤·¤Ç¤ÏÆ°ºî¤·¤Þ¤»¤ó"
+
#~ msgid "Data size %ld.\n"
#~ msgstr "¥Ç¡¼¥¿¥µ¥¤¥º %ld.\n"
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "#if ¼°¤ÎÃæ¤Ç¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó"
+
+#~ msgid "Invalid number in #if expression"
+#~ msgstr "#if ¼°¤ÎÃæ¤Ë̵¸ú¤Ê¿ôÃÍ"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "Æó½Å¤Ë¥¯¥©¡¼¥È¤µ¤ì¤¿Ê¸»úÎó¤Ï #if ¼°Æâ¤Ç¤Ï»È¤¨¤Þ¤»¤ó"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "8 ¿Ê¿ôʸ»úÄê¿ô¤¬ 1 ¥Ð¥¤¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "16 ¿Ê¿ôʸ»úÄê¿ô¤¬ 1 ¥Ð¥¤¥È¤Ë¼ý¤Þ¤ê¤Þ¤»¤ó"
+
+#~ msgid "empty #if expression"
+#~ msgstr "¶õ¤Î #if ¼°¤Ç¤¹"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "¼°¤Î½ª¤ê°Ê¹ß¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹"
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "¥Þ¥¯¥í¤Þ¤¿¤Ï #include ¤ÎºÆµ¢¤¬¿¼¤¹¤®¤Þ¤¹"
+
+#~ msgid "Usage: %s [switches] input output"
+#~ msgstr "»È¤¤Êý: %s [¥¹¥¤¥Ã¥Á] ÆþÎÏ ½ÐÎÏ"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional ¤Ï C++ ¤Ç¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional ¤È -ansi ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
+
+#~ msgid "Filename missing after -i option"
+#~ msgstr "-i ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "Filename missing after -o option"
+#~ msgstr "-o ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "Target missing after %s option"
+#~ msgstr "%s ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥¿¡¼¥²¥Ã¥È¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "Filename missing after %s option"
+#~ msgstr "%s ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Õ¥¡¥¤¥ë̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "Macro name missing after -%c option"
+#~ msgstr "-%c ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Þ¥¯¥í̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs ¤È -traditional ¤È¤ÏÁê¸ßÇÓ¾Ū¤Ç¤¹"
+
+#~ msgid "Directory name missing after -I option"
+#~ msgstr "-I ¥ª¥×¥·¥ç¥ó¤Î¸å¤í¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "`/*' ¤¬¥³¥á¥ó¥ÈÆâ¤Ë¤¢¤ê¤Þ¤¹"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "½ªÃ¼¤Î¤Ê¤¤ #%s ¾ò·ï"
+
+#~ msgid "not in any file?!"
+#~ msgstr "Á´¤¯¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "`defined' ¤Î¸å¤í¤Ë ident ¤ä (ident) ¤¬¤³¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "cccp ¥¨¥é¡¼: Æüì¥Ï¥Ã¥·¥å·¿¤¬Ìµ¸ú¤Ç¤¹"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include ¤Î¸å¤Ë¤Ï \"fname\" ¤ä <fname> ¤¬É¬ÍפǤ¹"
+
+#~ msgid "No include path in which to find %.*s"
+#~ msgstr "%.*s ¤¬¸«¤Ä¤«¤ë¥¤¥ó¥¯¥ë¡¼¥É¥Ñ¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "invalid macro name"
+#~ msgstr "̵¸ú¤Ê¥Þ¥¯¥í̾"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "̵¸ú¤Ê¥Þ¥¯¥í̾ `%s'"
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "#define Ãæ¤Î²¾°ú¿ô̾¤¬¿ô»ú¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤¹"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "#define Ãæ¤Î²¾°ú¿ô¥ê¥¹¥È¤¬ÊѤ˶èÀÚ¤é¤ì¤Þ¤·¤¿"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" ¤¬ºÆÄêµÁ¤µ¤ì¤Þ¤·¤¿"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "# ±é»»»Ò¤Î¸å¤í¤Ë¤Ï¥Þ¥¯¥í°ú¿ô̾¤¬Â³¤¤¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "#line ¥³¥Þ¥ó¥É¤Î½ñ¼°¤¬Ìµ¸ú¤Ç¤¹"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "`defined' ¤ò undef ¤·¤Þ¤¹"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "`%s' ¤ò undef ¤·¤Þ¤¹"
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤Î½ª¤ê¤Ë;ʬ¤Ê¥Æ¥¯¥¹¥È¤¬¤¢¤ê¤Þ¤¹"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else ¤Î¸å¤í¤Ë #else ¤ä #elif ¤¬¤¢¤ê¤Þ¤¹"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else ¤¬¾ò·ïʸ¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤Ê¸»úÎóÄê¿ôËô¤Ïʸ»úÄê¿ô"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "¥Þ¥¯¥í `%s' ¤Ø¤Î°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "¥Þ¥¯¥í `%s' ¤Ø¤Î°ú¿ô¤¬°ì¸Ä¤·¤«¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "%d ¸Ä¤Î°ú¿ô¤·¤«¥Þ¥¯¥í `%s' ¤ËÅϤ·¤Æ¤¤¤Þ¤»¤ó"
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "°ú¿ô¤Î¿ô (%d) ¤¬¥Þ¥¯¥í `%s' ¤ËÂФ·¤Æ¿¤¹¤®¤Þ¤¹"
+
+#~ msgid ""
+#~ "Internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "%s ¤ÇÆâÉô¥¨¥é¡¼¡¢(tradcpp.c:%d)\n"
+#~ "´°Á´¤Ê¥Ð¥°¥ì¥Ý¡¼¥È¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+#~ "%s ¤Ç¤½¤Î¼ê½ç¤ò¸«¤Æ¤¯¤À¤µ¤¤"
+
+#~ msgid "Incompatible interworking options"
+#~ msgstr "¸ß´¹À­¤Î¤Ê¤¤ interworking ¥ª¥×¥·¥ç¥ó"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd ¤È -pedantic ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd ¤È -mxopen ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen ¤È -pedantic ¤Ï¶¦Â¸¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "A -ifile option requires a -map option"
+#~ msgstr "-ifile ¥ª¥×¥·¥ç¥ó¤Ë¤Ï -map ¥ª¥×¥·¥ç¥ó¤¬É¬ÍפǤ¹"
+
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC ¤¬ -mcoff ¤È¤È¤â¤Ë»È¤ï¤ì¤ë¤Î¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó"
+
#~ msgid "bx]"
#~ msgstr "bx]"
@@ -22498,6 +22763,15 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "cx"
#~ msgstr "cx"
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "-p ¥ª¥×¥·¥ç¥ó¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. Âå¤ï¤ê¤Ë -pg ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "-mfp64 ¤È -msingle-float ¤ÎξÊý¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead."
+#~ msgstr "-p ¤Ç¤Î¥×¥í¥Õ¥¡¥¤¥ë¤Ï¤â¤¦Ä󶡤µ¤ì¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë -pg ¤ò»È¤¤¤Þ¤·¤ç¤¦¡£"
+
#~ msgid "%s before character constant"
#~ msgstr "ʸ»úÄê¿ô¤ÎÁ°¤Ë %s"
@@ -22516,12 +22790,24 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "nondigits in number and not hexadecimal"
#~ msgstr "¿ôÃͤ˥¢¥é¥Ó¥¢¿ô»ú¤Ç¤Ê¤¯¡¢16 ¿Ê¤Ç¤â¤Ê¤¤Ê¸»ú"
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "¿ôÃÍÄê¿ô¤¬´ð¿ô¤òĶ¤¨¤¿¥¢¥é¥Ó¥¢¿ô»ú¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
+
+#~ msgid "two `u's in integer constant"
+#~ msgstr "À°¿ôÄê¿ôÃæ¤Ë 2¤Ä¤Î `u'"
+
+#~ msgid "Unterminated string constant"
+#~ msgstr "ʸ»úÎóÄê¿ô¤¬½ªÎ»¤·¤Æ¤¤¤Þ¤»¤ó"
+
#~ msgid "invalid `for (ITERATOR)' syntax"
#~ msgstr "̵¸ú¤Ê `for (È¿Éü»Ò)' ¹½Ê¸¤Ç¤¹"
#~ msgid "`for (%s)' inside expansion of same iterator"
#~ msgstr "Ʊ¤¸È¿Éü»Ò¤ÎÆ⦤ˤ¢¤ë `for (%s)'"
+#~ msgid "case label within scope of cleanup or variable array"
+#~ msgstr "case ¥é¥Ù¥ë¤¬¡¢²òÂΤޤ¿¤Ï²ÄÊÑÇÛÎó¤Î¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
+
#~ msgid "duplicate array index in initializer"
#~ msgstr "½é´ü²½»ÒÆâ¤Ë½ÅÊ£¤·¤¿ÇÛÎ󥤥ó¥Ç¥Ã¥¯¥¹"
@@ -22576,11 +22862,8 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "`default' label within scope of cleanup or variable array"
#~ msgstr "`default' ¥é¥Ù¥ë¤¬¡¢²òÂΤޤ¿¤Ï²ÄÊÑÇÛÎó¤Î¥¹¥³¡¼¥×Æâ¤Ë¤¢¤ê¤Þ¤¹"
-#~ msgid "end of file encountered inside string constant"
-#~ msgstr "ʸ»úÎóÄê¿ô¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ò¸¡½Ð¤·¤Þ¤·¤¿"
-
-#~ msgid "end of file encountered inside character constant"
-#~ msgstr "ʸ»úÄê¿ô¤ÎÃæ¤Ç¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ò¸¡½Ð¤·¤Þ¤·¤¿"
+#~ msgid "invalid #pragma vtable"
+#~ msgstr "̵¸ú¤Ê #pragma vtable"
#~ msgid "universal-character-name designates `%c', part of the basic source character set"
#~ msgstr "universal-character-name ¤Ï `%c' ¤ò»Ø¼¨¤·¤Þ¤·¤¿¤¬¡¢´ðËÜŪ¤Êʸ»ú½¸¹ç¤Î°ìÉô¤Ç¤¹"
@@ -22588,6 +22871,9 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "%s at end of saved text"
#~ msgstr "ÊݸºÑ¤ß¥Æ¥­¥¹¥È¤ÎËöÈø¤Ç%s"
+#~ msgid "complex integer constant is too wide for `__complex int'"
+#~ msgstr "Ê£ÁÇ¿ô·¿À°¿ôÄê¿ô¤Ï `__complex int' ¤Ë¤È¤Ã¤Æ¹­¤¹¤®¤Þ¤¹"
+
#~ msgid "Please submit a full bug report."
#~ msgstr "¾Ü¤·¤¤¾õ¶·¤ò¥Ð¥°¥ì¥Ý¡¼¥È¤È¤·¤ÆÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£"
@@ -22606,15 +22892,6 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "bad is_error(%d) in v_message"
#~ msgstr "v_message Ãæ ÉÔÀµ¤Ê is_error(%d)"
-#~ msgid "'defined' without an identifier"
-#~ msgstr "¼±Ê̻ҤΤʤ¤ 'defined'"
-
-#~ msgid "included file `%s' exists but is not readable"
-#~ msgstr "include ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë `%s' ¤Ï¡¢Â¸ºß¤·¤Þ¤¹¤¬Æɤá¤Þ¤»¤ó"
-
-#~ msgid "%s is a directory"
-#~ msgstr "%s ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹"
-
#~ msgid "`##' at start of macro definition"
#~ msgstr "`##' ¤¬¥Þ¥¯¥íÄêµÁ¤Î»Ï¤á¤Ë¤¢¤ê¤Þ¤¹"
@@ -22825,9 +23102,6 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "string constant runs past end of line"
#~ msgstr "ʸ»úÎóÄê¿ô¤¬¹Ô¤Î½ª¤ï¤ê¤Ç½ªÃ¼¤·¤Æ¤¤¤Þ¤»¤ó"
-#~ msgid "null characters in string or character constant"
-#~ msgstr "ʸ»úÎóËô¤Ïʸ»úÄê¿ôÃæ¤Ë null ʸ»ú"
-
#~ msgid "missing '>' in `#include <FILENAME>'"
#~ msgstr "`#include <¥Õ¥¡¥¤¥ë̾>' ¤Ë '>' ¤¬¤¢¤ê¤Þ¤»¤ó"
@@ -22852,6 +23126,9 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "handle_directive called on macro buffer"
#~ msgstr "¥Þ¥¯¥í¥Ð¥Ã¥Õ¥¡¤Ç handle_directive ¤¬¸Æ¤Ð¤ì¤Þ¤·¤¿"
+#~ msgid "ignoring #%s because of its indented #"
+#~ msgstr "¥¤¥ó¥Ç¥ó¥È¤µ¤ì¤¿ # ¤Ê¤Î¤Ç¡¢#%s ¤Ï̵»ë¤·¤Þ¤¹"
+
#~ msgid "ISO C does not allow #%s"
#~ msgstr "ISO C ¤Ï #%s ¤òµö²Ä¤·¤Þ¤»¤ó"
@@ -22870,11 +23147,8 @@ msgstr "m210 ¤Ï¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó¥µ¥Ý¡¼¥È¤ò¹Ô¤Ê¤¨¤Þ¤»¤ó"
#~ msgid "cannot undefine poisoned \"%s\""
#~ msgstr "±øÀ÷¤µ¤ì¤¿ \"%s\" ¤ò undefine ¤Ç¤­¤Þ¤»¤ó"
-#~ msgid "malformed #pragma implementation"
-#~ msgstr "¤ª¤«¤·¤Ê #pragma implementation"
-
-#~ msgid "#%s with no argument"
-#~ msgstr "#%s ¤Ë°ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "#%s with invalid argument"
+#~ msgstr "̵¸ú¤Ê°ú¿ô¤ò»ý¤Ã¤¿ #%s"
#~ msgid "Cannot duplicate non-existant exception region."
#~ msgstr "¸ºß¤·¤Ê¤¤Îã³°Îΰè¤òÊ£À½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
diff --git a/gcc/po/nl.po b/gcc/po/nl.po
index 03c6ec08aae..06e95bbaf3a 100644
--- a/gcc/po/nl.po
+++ b/gcc/po/nl.po
@@ -1,147 +1,72 @@
# Dutch messages for gcc 3.x.
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
-# Tim Van Holder <tim.van.holder@pandora.be>, 1999, 2000, 2002.
-#
-# Currently still a lot of fuzzies, since this started out life
-# as a .po file for gcc 2.95.2.
-#
+# Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+# Tim Van Holder <tim.van.holder@pandora.be>, 1999, 2000, 2002, 2003.
+#
+# Still a lot of fuzzies, since this started life as a
+# .po file for gcc 2.95.2.
+#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.1-b20020128\n"
-"POT-Creation-Date: 2002-01-22 19:38-0800\n"
-"PO-Revision-Date: 2002-02-04 18:04+0000\n"
+"Project-Id-Version: gcc 3.3.2\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2003-10-26 10:40+0100\n"
"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: attribs.c:310
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr "attribuut-commando `%s' wordt genegeerd"
-#: attribs.c:318
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "verkeerd aantal argumenten opgegeven voor het `%s' attribuut"
-#: attribs.c:335
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
msgstr "het `%s' attribuut heeft geen betekenis voor types"
-#: attribs.c:372
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
msgstr "het `%s' attribuut heeft enkel betekenis voor functie-types"
-#: attribs.c:462 attribs.c:484 attribs.c:506 attribs.c:537 attribs.c:559
-#: attribs.c:582 attribs.c:612 attribs.c:650 attribs.c:697 attribs.c:727
-#: attribs.c:757 attribs.c:780 attribs.c:1026 attribs.c:1082 attribs.c:1138
-#: attribs.c:1199 attribs.c:1225 attribs.c:1427 config/arm/arm.c:2012
-#: config/arm/arm.c:2039 config/avr/avr.c:4683 config/h8300/h8300.c:3045
-#: config/h8300/h8300.c:3070 config/i386/i386.c:1261 config/i386/winnt.c:74
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr "het `%s' attribuut wordt genegeerd"
-#: attribs.c:813
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "onbekende machine-modus `%s'"
-
-#: attribs.c:816
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "geen datatype voor modus `%s'"
-
-#: attribs.c:849
-msgid "section attribute cannot be specified for local variables"
-msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-
-#: attribs.c:860
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-
-#: attribs.c:869
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "sectie-attribuut niet toegestaan voor `%s'"
-
-#: attribs.c:876
-msgid "section attributes are not supported for this target"
-msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-
-#: attribs.c:918
-msgid "requested alignment is not a constant"
-msgstr "gevraagd alignment is geen constante"
-
-#: attribs.c:923
-msgid "requested alignment is not a power of 2"
-msgstr "gevraagd alignment is geen macht van 2"
-
-#: attribs.c:928
-msgid "requested alignment is too large"
-msgstr "gevraagd alignment is te groot"
-
-#: attribs.c:955
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "er kan geen alignment opgegeven worden voor `%s'"
-
-#: attribs.c:1000
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "`%s' is zowel als alias en als normale naam gedefinieerd"
-
-#: attribs.c:1010
-msgid "alias arg not a string"
-msgstr "alias-argument is geen string"
-
-#: attribs.c:1049 attribs.c:1105
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-
-#: attribs.c:1056 attribs.c:1112
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "kan het `%s' attribuut niet instellen na een definitie"
-
-#: attribs.c:1196
-#, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr "het `%s' attribuut wordt genegeerd voor `%s'"
-
-# Is the %s the argument, or is it 'of' the argument?
-#: attribs.c:1253
-#, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "ongeldig vector-type voor attribuut `%s'"
-
-#: attribs.c:1276 attribs.c:1281
-msgid "no vector mode with the size and type specified could be found"
-msgstr "er kon geen vectormodus gevonden worden met de opgegeven grootte en type"
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr "offset buiten de grenzen van een constante string"
-#: builtins.c:759
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr "tweede argument voor `__builtin_prefetch' moet een constante zijn"
-#: builtins.c:766
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr "ongeldig tweede argument voor __builtin_prefetch; zal nul gebruiken"
-#: builtins.c:773
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr "derde argument voor `__builtin_prefetch' moet een constante zijn"
-#: builtins.c:780
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr "ongeldig derde argument voor __builtin_prefetch; zal nul gebruiken"
@@ -152,1298 +77,1476 @@ msgstr "ongeldig derde argument voor __builtin_prefetch; zal nul gebruiken"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2759
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
msgstr "__builtin_saveregs wordt niet ondersteund op dit doelsysteem"
-#: builtins.c:2801
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "argument voor `__builtin_args_info' moet een constante zijn"
-#: builtins.c:2807
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr "argument voor `__builtin_args_info' buiten bereik"
-#: builtins.c:2813
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "ontbrekend argument in `__builtin_args_info'"
-#: builtins.c:2845
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr "`va_start' gebruikt in functie met vaste argumenten"
-#: builtins.c:2864
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr "de tweede parameter van `va_start' is niet het laatste benoemde argument"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2869
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "`__builtin_next_arg' opgeroepen zonder argument"
-#: builtins.c:2973
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "teveel argumenten voor functie `va_start'"
# Of misschien beter "... niet van het `va_list' type"?
-#: builtins.c:3057
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr "het eerste argument van `va_arg' is geen `va_list'"
-#: builtins.c:3085
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr "`%s' wordt naar `%s' gepromoveerd indien het via `...' wordt doorgegeven"
-#: builtins.c:3089
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr "(dus U zou `%s' en niet `%s' moeten doorgeven aan `va_arg')"
-#: builtins.c:3213
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr "ongeldig argument voor `__builtin_frame_address'"
-#: builtins.c:3215
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr "ongeldig argument voor `__builtin_return_address'"
-#: builtins.c:3229
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr "niet-ondersteund argument voor `__builtin_frame_address'"
-#: builtins.c:3231
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr "niet-ondersteund argument voor `__builtin_return_address'"
-#: builtins.c:3399
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr "tweede argument voor `__builtin_expect' moet een constante zijn"
-#: builtins.c:3868
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr "tweede argument van `__builtin_longjmp' moet 1 zijn"
-#: builtins.c:3882
-msgid "__builtin_trap not supported by this target"
-msgstr "`__builtin_trap' wordt niet ondersteund op dit doelsysteem"
-
#. just do library call, if unknown builtin
-#: builtins.c:3947 c-common.c:3685
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr "ingebouwde functie `%s' wordt op het ogenblik niet ondersteund"
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "doelformaat ondersteunt geen oneindige waarde"
+
# betere vertaling voor 'function scope'?
-#: c-common.c:550
+#: c-common.c:1168
#, c-format
msgid "`%s' is not defined outside of function scope"
msgstr "`%s' is niet gedefinieerd buiten een functie"
-#: c-common.c:590
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
-msgstr "concatenatie van stringconstantes met __FUNCTION__ is verouderd. Deze mogelijkheid zal in de toekomst verwijderd worden"
-
-#: c-common.c:659
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
msgstr "stringlengte `%d' is groter dan `%d', de lengte die ISO C%d compilers moeten ondersteunen"
-#: c-common.c:707 ch/decl.c:4100
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "concatenatie van stringconstantes met __FUNCTION__ is verouderd"
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "overflow in constante expressie"
-#: c-common.c:728
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "integer overflow in expressie"
-#: c-common.c:737
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "floating-point overflow in expressie"
+#: c-common.c:1379
+msgid "vector overflow in expression"
+msgstr "vector overflow in expressie"
+
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:758
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "grote integer impliciet afgekapt naar 'unsigned' type"
-#: c-common.c:760
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "negatieve integer impliciet omgezet naar 'unsigned' type"
-#: c-common.c:807
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "overflow in impliciete omzetting van constante"
-#: c-common.c:955
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr "bewerking op `%s' is mogelijk niet gedefinieerd"
# vertaling voor 'statement'?
-#: c-common.c:1246
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "expressie-statement heeft onvolledig type"
-#: c-common.c:1279 ch/actions.c:1027
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "case-label valt niet te herleiden tot een integerconstante"
-#: c-common.c:1577
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "ongeldige waarheidsexpressie"
-#: c-common.c:1628
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "ongeldige operanden voor binaire %s-operator"
-#: c-common.c:1863 c-common.c:1872
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr "vergelijking is altijd vals omwille van het beperkte bereik van het datatype"
-#: c-common.c:1865 c-common.c:1874
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr "vergelijking is altijd waar omwille van het beperkte bereik van het datatype"
-#: c-common.c:1940
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "vergelijking van 'unsigned' expressie >= 0 is altijd waar"
-#: c-common.c:1949
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "vergelijking van 'unsigned' expressie < 0 is altijd vals"
-#: c-common.c:2000 f/com.c:14814
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "pointer van type `void *' gebruikt in rekensom"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "pointer naar functie gebruikt in rekensom"
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr "pointer naar lid-functie gebruikt in rekensom"
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr "pointer naar een lid gebruikt in rekensom"
+
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "waarde van struct-type gebruikt waar een scalair nodig is"
-#: c-common.c:2004 f/com.c:14818
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "waarde van union-type gebruikt waar een scalair nodig is"
-#: c-common.c:2008 f/com.c:14822
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "waarde van array-type gebruikt waar een scalair nodig is"
-#: c-common.c:2123 f/com.c:14948
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
msgstr "gebruik liefst haakjes rond toewijzingen die als waarheid gebruikt worden"
-#: c-common.c:2167 c-common.c:2199
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "ongeldig gebruik van `restrict'"
-#: c-common.c:2315
-msgid "__alignof__ applied to an incomplete type"
-msgstr "__alignof__ toegepast op een onvolledig type"
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ongeldige toepassing van `sizeof' op een functietype"
+
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "ongeldige toepasing van `%s' op een void-type"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "ongeldige toepassing van `%s' op een onvolledig type"
-#: c-common.c:2341
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr "`__alignof' toegepast op bitveld"
-#: c-common.c:2783
+#: c-common.c:3618
#, c-format
msgid "cannot disable built-in function `%s'"
msgstr "ingebouwde functie `%s' kan niet uitgeschakeld worden"
-#: c-common.c:3064 c-typeck.c:1774
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "te weinig argumenten voor functie `%s'"
-#: c-common.c:3070 c-typeck.c:1627
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "teveel argumenten voor functie `%s'"
-#: c-common.c:3258
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "niet-floating-point argument voor functie `%s'"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr "pointers zijn niet toegestaan als case-waarden"
# betere vertaling voor 'range expressions'?
-#: c-common.c:3264
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr "ISO C++ verbiedt het gebruik van bereik-expressies in switch statements"
-#: c-common.c:3266
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr "ISO C verbiedt het gebruik van bereik-expressies in switch statements"
-#: c-common.c:3296
+#: c-common.c:4119
msgid "empty range specified"
msgstr "leeg bereik opgegeven"
-#: c-common.c:3347
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr "herhaalde (of overlappende) case-waarde"
-#: c-common.c:3349
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
msgstr "dit is de eerste waarde die die waarde overlapt"
-#: c-common.c:3353 ch/actions.c:1125
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "herhaalde case-waarde"
-#: c-common.c:3354
+#: c-common.c:4177
msgid "previously used here"
msgstr "tevoren hier gebruikt"
-#: c-common.c:3358
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr "meerdere default-labels in één switch"
-#: c-common.c:3359
+#: c-common.c:4182
msgid "this is the first default label"
msgstr "dit is het eerste default-label"
-#: c-common.c:3387
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
msgstr "ISO C++ verbiedt het nemen van het adres van een label"
-#: c-common.c:3389
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
msgstr "ISO C verbiedt het nemen van het adres van een label"
-#: c-common.c:4023
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "-Wformat-y2k genegeerd zonder -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "de declaratie van `%s' verbergt %s"
-#: c-common.c:4025
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "-Wformat-extra-args genegeerd zonder -Wformat"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "onbekende machine-modus `%s'"
-#: c-common.c:4027
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "-Wformat-nonliteral genegeerd zonder -Wformat"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "geen datatype voor modus `%s'"
-#: c-common.c:4029
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "-Wformat-security genegeerd zonder -Wformat"
+# Misschien beter 'emuleren' dan nabootsen?
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "kan '%s' niet nabootsen"
-#: c-common.c:4031
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "-Wmissing-format-attribute genegeerd zonder -Wformat"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "sectie-attribuut kan niet opgegeven worden voor lokale variabelen"
-#: c-common.c:4122
+#: c-common.c:5713
#, c-format
-msgid "declaration of `%s' shadows %s"
-msgstr "de declaratie van `%s' verbergt %s"
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "sectie-attribuut niet toegestaan voor `%s'"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "gevraagd alignment is geen constante"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "gevraagd alignment is geen macht van 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "gevraagd alignment is te groot"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "er kan geen alignment opgegeven worden voor `%s'"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "`%s' is zowel als alias en als normale naam gedefinieerd"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "alias-argument is geen string"
+
+# Of moet dit vertaald worden als 'zichtbaarheidsargument is ...'?
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "argument 'visibility' is geen string"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "argument 'visibility' moet \"default\", \"hidden\", \"protected\" of \"internal\" zijn"
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "argument 'tls_model' is geen string"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "argument 'tls_model' moet \"local-exec\", \"initial-exec\", \"local-dynamic\" of \"global-dynamic\" zijn"
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "kan het `%s' attribuut niet instellen na een definitie"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "`defined' zonder een naam"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "opgeroepen object is geen functie"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "het `%s' attribuut wordt genegeerd voor `%s'"
+
+# Is the %s the argument, or is it 'of' the argument?
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "ongeldig vector-type voor attribuut `%s'"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "er kon geen vectormodus gevonden worden met de opgegeven grootte en type"
-#: c-convert.c:78 c-typeck.c:1031 c-typeck.c:4139 ch/convert.c:1164
-#: cp/typeck.c:1728 cp/typeck.c:6288
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "nonnull attribuut zonder argumenten gebruikt voor een niet-prototype"
+
+#: c-common.c:6418
+#, fuzzy, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "de formaatstring heeft een niet-constant operand-nummer"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "nonnull argument met operandnummer dat buiten bereik is (arg %lu, operand %lu)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "nonnull argument verwijst naar niet-pointer operand (arg %lu, operand %lu)"
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "null argument waar een niet-null argument vereist is (arg %lu)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
msgid "void value not ignored as it ought to be"
msgstr "void-waarde niet genegeerd zoals het hoort"
-#: c-convert.c:110 java/typeck.c:150
+#: c-convert.c:112 java/typeck.c:150
msgid "conversion to non-scalar type requested"
msgstr "conversie naar niet-scalair type gevraagd"
-#: c-decl.c:470
-msgid "-traditional is deprecated and may be removed"
-msgstr "-traditional is verouderd en zal misschien verwijderd worden"
-
-#: c-decl.c:560
-#, c-format
-msgid "unknown C standard `%s'"
-msgstr "onbekende C standaard `%s'"
-
-#: c-decl.c:842
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr "array `%s' wordt aangenomen één element te bevatten"
-#: c-decl.c:1018
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "`struct %s' onvolledig in bereik dat hier eindigt"
-#: c-decl.c:1021
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "`union %s' onvolledig in bereik dat hier eindigt"
-#: c-decl.c:1024
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "`enum %s' onvolledig in bereik dat hier eindigt"
-#: c-decl.c:1138 c-decl.c:1279 ch/decl.c:2920 java/decl.c:1373
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: c-decl.c:1144 c-decl.c:1286 ch/decl.c:2926 java/decl.c:1379
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: c-decl.c:1403 cp/decl.c:3138
+#: c-decl.c:893 cp/decl.c:3335
#, c-format
msgid "function `%s' redeclared as inline"
msgstr "functie `%s' geherdeclareerd als inline"
-#: c-decl.c:1405 cp/decl.c:3140
+#: c-decl.c:895 cp/decl.c:3337
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr "eerdere declaratie van functie `%s' had het noinline attribuut"
-#: c-decl.c:1412 cp/decl.c:3147
+#: c-decl.c:902 cp/decl.c:3344
#, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr "functie `%s' geherdeclareerd met noinline attribuut"
-#: c-decl.c:1414 cp/decl.c:3149
+#: c-decl.c:904 cp/decl.c:3346
#, c-format
msgid "previous declaration of function `%s' was inline"
msgstr "eerdere declaratie van functie `%s' was inline"
-#: c-decl.c:1443 c-decl.c:1496
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr "ingebouwde functie `%s' wordt verborgen"
-#: c-decl.c:1445
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr "bibliotheekfunctie `%s' wordt verborgen"
-#: c-decl.c:1451
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr "bibliotheekfunctie `%s' gedeclareerd als niet-functie"
-#: c-decl.c:1455 c-decl.c:1458
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "ingebouwde functie `%s' gedeclareerd als niet-functie"
-#: c-decl.c:1462 objc/objc-act.c:2334 objc/objc-act.c:6036
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: c-decl.c:1463 c-decl.c:1645 c-decl.c:1794 objc/objc-act.c:2336
-#: objc/objc-act.c:6038 objc/objc-act.c:6093
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "eerdere declaratie van `%s'"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1549
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: c-decl.c:1592 c-decl.c:1611
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "conflicterende types voor `%s'"
-#: c-decl.c:1634
+#: c-decl.c:1133
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr "een parameterlijst met een beletselteken kan niet overeenkomen met een declaratie met lege parameterlijst"
-#: c-decl.c:1640
+#: c-decl.c:1139
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
msgstr "een argumenttype dat een standaardpromotie heeft kan niet overeenkomen met een declaratie met lege parameterlijst"
-#: c-decl.c:1655 c-decl.c:1677
+#: c-decl.c:1157
+#, fuzzy, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "static declaratie voor `%s' volgt niet-static declaratie"
+
+#: c-decl.c:1164
+#, fuzzy, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "niet-static declaratie voor `%s' volgt static declaratie"
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "herdefinitie van `%s'"
-#: c-decl.c:1658
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "herdeclaratie van `%s'"
-#: c-decl.c:1661
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "conflicterende declaraties van `%s'"
-#: c-decl.c:1670 c-decl.c:1682
-#, c-format
-msgid "`%s' previously defined here"
-msgstr "`%s' tevoren hier gedefinieerd"
-
-#: c-decl.c:1671 c-decl.c:1683
-#, c-format
-msgid "`%s' previously declared here"
-msgstr "`%s' tevoren hier gedeclareerd"
-
-#: c-decl.c:1704
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr "prototype voor `%s' volgt"
-#: c-decl.c:1705 c-decl.c:1713 c-decl.c:1729
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "niet-prototype definitie hier"
-#: c-decl.c:1712
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr "prototype voor `%s' volgt en aantal argumenten komt niet overeen"
-#: c-decl.c:1727
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr "prototype voor `%s' volgt en argument %d komt niet overeen"
-#: c-decl.c:1745
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr "`%s' als 'inline' gedeclareerd na oproep"
-#: c-decl.c:1751
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:1758
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr "static declaratie voor `%s' volgt niet-static declaratie"
-#: c-decl.c:1766
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr "niet-static declaratie voor `%s' volgt static declaratie"
-#: c-decl.c:1773
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr "'const' declaratie voor `%s' volgt niet-'const' declaratie"
-#: c-decl.c:1780
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "type-qualifiers voor `%s' geven een conflict met een eerdere declaratie"
-#: c-decl.c:1793
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: c-decl.c:2097 java/decl.c:1072
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: c-decl.c:2100 java/decl.c:1075
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
msgstr "de declaratie van `%s' verbergt een symbool uit de parameterlijst"
-#: c-decl.c:2121 cp/decl.c:4220
+#: c-decl.c:1643 cp/decl.c:4479
msgid "a parameter"
msgstr "een parameter"
-#: c-decl.c:2123 cp/decl.c:4237
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
msgstr "een eerdere locale"
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2127 cp/decl.c:4241
+#: c-decl.c:1649 cp/decl.c:4500
msgid "a global declaration"
msgstr "een globale declaratie"
-#: c-decl.c:2171
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "geneste externe declaratie van `%s'"
-#: c-decl.c:2191 java/decl.c:1025
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr "`%s' gebruikt vóór declaratie"
-#: c-decl.c:2206 c-decl.c:2421
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "`%s' was impliciet als `extern' gedeclareerd en daarna als `static'"
-#: c-decl.c:2316 cp/decl.c:4079
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr "type-conflict met eerdere externe declaratie"
-#: c-decl.c:2317
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "eerdere externe declaratie van `%s'"
-#: c-decl.c:2330
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "type-conflict met eerdere impliciete declaratie"
-#: c-decl.c:2332
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "eerdere impliciete declaratie van `%s'"
-#: c-decl.c:2349
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "type van extern symbool `%s' is niet globaal"
-
-#: c-decl.c:2400
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr "`%s' was tevoren impliciet gedeclareerd om een `int' terug te geven"
-#: c-decl.c:2425
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "`%s' was als `extern' gedeclareerd en daarna als `static'"
-#: c-decl.c:2449
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "externe declaratie van `%s' komt niet overeen met de globale declaratie"
-#: c-decl.c:2491
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr "`%s' is locaal `extern', maar globaal `static'"
-#: c-decl.c:2613
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr "functie `%s' was tevoren binnen een blok gedeclareerd"
-#: c-decl.c:2633 c-decl.c:2635
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "impliciete declaratie van functie `%s'"
-#: c-decl.c:2723
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "naar label %s gerefereerd buiten enige functie"
-#: c-decl.c:2780
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "herhaalde label-declaratie `%s'"
-#: c-decl.c:2783
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "dit is een eerdere declaratie"
-#: c-decl.c:3291
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr "naamloze struct/union die geen instanties definieert"
-#: c-decl.c:3310
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: c-decl.c:3317
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "twee types opgegeven in één lege declaratie"
-#: c-decl.c:3322 c-parse.y:725 c-parse.y:727 objc-parse.y:761 objc-parse.y:763
-#: objc-parse.y:2987 parse.y:728 parse.y:1808
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "lege declaratie"
-#: c-decl.c:3352
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
+#: c-decl.c:2740
+#, fuzzy
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
msgstr "ISO C89 ondersteunt geen `static' of type-qualificaties in declaratoren van parameter arrays"
-#: c-decl.c:3354
-msgid "ISO C89 does not support `[*]' array declarators"
+#: c-decl.c:2742
+#, fuzzy
+msgid "ISO C90 does not support `[*]' array declarators"
msgstr "ISO C89 ondersteunt geen `[*]' declaratoren van arrays"
-#: c-decl.c:3357
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr "GCC heeft nog geen fatsoenlijke implementatie van `[*]' declaratoren van arrays"
-#: c-decl.c:3376
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr "`static' of type-modifier in abstracte declarator"
-#: c-decl.c:3450
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "`%s' is meestal een functie"
-#: c-decl.c:3464
-#, c-format
-msgid "typedef `%s' is initialized"
+#: c-decl.c:2847
+#, fuzzy, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
msgstr "typedef `%s' krijgt beginwaarde"
-#: c-decl.c:3471
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr "typedef `%s' krijgt beginwaarde alsof het een variabele is"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3478
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr "parameter `%s' krijgt beginwaarde"
-#: c-decl.c:3498 c-typeck.c:4907
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: c-decl.c:3504
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type"
-#: c-decl.c:3510
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "elementen van array `%s' hebben een onvolledig type"
-#: c-decl.c:3523
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: c-decl.c:3558 c-decl.c:6198 cp/decl.c:7264 cp/decl.c:13533
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, fuzzy, c-format
msgid "inline function `%s' given attribute noinline"
msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd"
-#: c-decl.c:3639
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: c-decl.c:3644
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr "array-grootte ontbreekt in `%s'"
-#: c-decl.c:3660
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr "array `%s' heeft grootte die negatief of 0 is"
-#: c-decl.c:3688 ch/decl.c:4133
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr "opslaggrootte van `%s' is onbekend"
-#: c-decl.c:3698
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr "opslaggrootte van `%s' is niet constant"
-#: c-decl.c:3757
+#: c-decl.c:3147
#, fuzzy, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: c-decl.c:3832
+#: c-decl.c:3247
#, fuzzy, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr "ANSI C verbiedt het verbergen van een typedef door parameter `%s'"
-#: c-decl.c:4136 cp/decl.c:10069
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "`long long long' is te lang voor GCC"
-#: c-decl.c:4141
+#: c-decl.c:3597
#, fuzzy
-msgid "ISO C89 does not support `long long'"
+msgid "ISO C90 does not support `long long'"
msgstr "ANSI C ondersteunt `long long' niet"
-#: c-decl.c:4146 cp/decl.c:10074
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "herhaalde `%s'"
-#: c-decl.c:4152 cp/decl.c:10098
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "`__thread' voor `extern'"
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "`__thread' voor `static'"
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "twee of meer data types in de declaratie van `%s'"
-#: c-decl.c:4167 cp/decl.c:10103
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: c-decl.c:4206
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr "type krijgt standaardwaarde `int' in de declaratie van `%s'"
-#: c-decl.c:4235
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr "zowel 'long' als 'short' opgegeven voor `%s'"
-#: c-decl.c:4239 cp/decl.c:10217
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'"
-#: c-decl.c:4246 cp/decl.c:10221
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "'long' of 'short' opgegeven bij floating-point type voor `%s'"
-#: c-decl.c:4249
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "de enige geldige combinatie is `long double'"
-#: c-decl.c:4255
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "zowel 'signed' als 'unsigned' opgegeven voor `%s'"
-#: c-decl.c:4257 cp/decl.c:10210
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "'long', 'short', 'signed' of 'unsigned' ongeldig voor `%s'"
-#: c-decl.c:4263 cp/decl.c:10230
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr "ongeldig gebruik van 'long', 'short', 'signed' of 'unsigned' voor `%s'"
-#: c-decl.c:4282 cp/decl.c:10251
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "'complex' ongeldig voor `%s'"
-#: c-decl.c:4327
-msgid "ISO C89 does not support complex types"
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
msgstr "ISO C89 ondersteunt geen complexe types"
-#: c-decl.c:4339
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr "ISO C ondersteunt simpele `complex' niet in de betekenis van `double complex'"
-#: c-decl.c:4345 c-decl.c:4357
+#: c-decl.c:3823 c-decl.c:3835
#, fuzzy
msgid "ISO C does not support complex integer types"
msgstr "ANSI C ondersteunt `long long' niet"
-#: c-decl.c:4372 c-decl.c:4811 cp/decl.c:10853
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "herhaalde `const'"
-#: c-decl.c:4374 c-decl.c:4815 cp/decl.c:10857
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "herhaalde `restrict'"
-#: c-decl.c:4376 c-decl.c:4813 cp/decl.c:10855
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
msgstr "herhaalde `volatile'"
-#: c-decl.c:4398 cp/decl.c:10402
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: c-decl.c:4407
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr "functie-definitie als `auto' gedeclareerd"
-#: c-decl.c:4409
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "functie-definitie als `register' gedeclareerd"
-#: c-decl.c:4411
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "functie-definitie als `typdef' gedeclareerd"
-#: c-decl.c:4424
+#: c-decl.c:3898
+#, fuzzy
+msgid "function definition declared `__thread'"
+msgstr "functie-definitie als `typdef' gedeclareerd"
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "opslagklasse opgegeven voor structure-veld `%s'"
-#: c-decl.c:4428 cp/decl.c:10449
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "opslagklasse opgegeven voor parameter `%s'"
-#: c-decl.c:4431 cp/decl.c:10451
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "opslagklasse opgegeven voor typenaam"
-#: c-decl.c:4443 cp/decl.c:10465
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr "`%s' krijgt beginwaarde en is als `extern' gedeclareerd"
-#: c-decl.c:4445 cp/decl.c:10468
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr "`%s' heeft zowel `extern' als een beginwaarde"
-#: c-decl.c:4449 cp/decl.c:10472
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "top-level declaratie van `%s' specifieert `auto'"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: c-decl.c:4452 cp/decl.c:10476
-#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "top-level declaratie van `%s' specifieert `auto'"
+#: c-decl.c:3948 cp/decl.c:11319
+#, fuzzy, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "geneste functie `%s' is als `extern' gedeclareerd"
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4487 c-decl.c:4676
+#: c-decl.c:3987 c-decl.c:4188
#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "ongeldige type-modifier binnen pointer-declarator"
-#: c-decl.c:4531
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "`%s' wordt gedeclareerd als een array van voids"
-#: c-decl.c:4537
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: c-decl.c:4558
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "ongeldig gebruik van onvolledige typedef `%s'"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: c-decl.c:4563
+#: c-decl.c:4066
#, fuzzy, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: c-decl.c:4570
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr "grootte van array `%s' is negatief"
-#: c-decl.c:4583
+#: c-decl.c:4086
#, fuzzy, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
msgstr "ANSI C verbiedt array `%s', wiens grootte niet geëvalueerd kan worden"
-#: c-decl.c:4586
+#: c-decl.c:4089
#, fuzzy, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
+msgid "ISO C90 forbids variable-size array `%s'"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: c-decl.c:4616 c-decl.c:4837 cp/decl.c:11074
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
msgstr "omvang van array `%s' is te groot"
-#: c-decl.c:4633
+#: c-decl.c:4145
#, fuzzy
-msgid "ISO C89 does not support flexible array members"
+msgid "ISO C90 does not support flexible array members"
msgstr "ANSI C ondersteun geen formaatbreedte voor strftime"
-#: c-decl.c:4643
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr "arraytype heeft onvolledig elementtype"
-#: c-decl.c:4650 c-decl.c:4887
+#: c-decl.c:4162 c-decl.c:4392
#, fuzzy
msgid "ISO C forbids const or volatile function types"
msgstr "ANSI C verbiedt 'const' of 'volatile' functietypes"
-#: c-decl.c:4696 cp/decl.c:10613
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: c-decl.c:4701 cp/decl.c:10618
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "`%s' gedeclareerd als een functie die een array teruggeeft"
-#: c-decl.c:4736
+#: c-decl.c:4241
#, fuzzy
msgid "ISO C forbids qualified void function return type"
msgstr "ANSI C verbiedt een gekwalificeerde void als teruggeefwaarde voor een functie"
-#: c-decl.c:4740
+#: c-decl.c:4245
#, fuzzy
msgid "type qualifiers ignored on function return type"
msgstr "ANSI C verbiedt een gekwalificeerde void als teruggeefwaarde voor een functie"
-#: c-decl.c:4769 c-decl.c:4852 c-decl.c:4976 c-decl.c:5070
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
#, fuzzy
msgid "ISO C forbids qualified function types"
msgstr "ANSI C verbiedt een gekwalificeerd functietype"
-#: c-decl.c:4809 cp/decl.c:10849
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr "ongeldige type-modifier binnen pointer-declarator"
-#: c-decl.c:4907 cp/decl.c:11357
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "variabele of veld `%s' als void gedeclareerd"
-#: c-decl.c:4940
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr "attributen genegeerd in declarator van parameter-array"
-#: c-decl.c:4965
+#: c-decl.c:4470
#, fuzzy
msgid "invalid type modifier within array declarator"
msgstr "ongeldige type-modifier binnen pointer-declarator"
-#: c-decl.c:5014
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "veld `%s' als een functie gedeclareerd"
-#: c-decl.c:5020
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "veld `%s' heeft een onvolledig type"
-#: c-decl.c:5052 c-decl.c:5054 c-decl.c:5061
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: c-decl.c:5076
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr "`noreturn' functie geeft niet-void waarde terug"
-#: c-decl.c:5088
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr "kan functie `main' niet inline maken"
-#: c-decl.c:5141
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr "variabele `%s' als inline gedeclareerd"
-#: c-decl.c:5214 c-decl.c:6250
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr "functie-declaratie is geen prototype"
-#: c-decl.c:5220
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr "parameternamen (zonder types) in functiedeclaratie"
-#: c-decl.c:5252 c-decl.c:6641
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "parameter `%s' heeft een onvolledig type"
-#: c-decl.c:5255
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "parameter heeft een onvolledig type"
-#: c-decl.c:5276
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: c-decl.c:5279
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr "parameter wijst naar een onvolledig type"
-#: c-decl.c:5344
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: c-decl.c:5385
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "`void' in parameterlijst moet de gehele parameterlijst zijn"
-#: c-decl.c:5416
+#: c-decl.c:4934
#, fuzzy, c-format
msgid "`struct %s' declared inside parameter list"
msgstr "`%s %s' binnen parameterlijst gedeclareerd"
-#: c-decl.c:5419
+#: c-decl.c:4937
#, fuzzy, c-format
msgid "`union %s' declared inside parameter list"
msgstr "`%s %s' binnen parameterlijst gedeclareerd"
-#: c-decl.c:5422
+#: c-decl.c:4940
#, fuzzy, c-format
msgid "`enum %s' declared inside parameter list"
msgstr "`%s %s' binnen parameterlijst gedeclareerd"
-#: c-decl.c:5429
+#: c-decl.c:4947
#, fuzzy
msgid "anonymous struct declared inside parameter list"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: c-decl.c:5431
+#: c-decl.c:4949
#, fuzzy
msgid "anonymous union declared inside parameter list"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: c-decl.c:5433
+#: c-decl.c:4951
#, fuzzy
msgid "anonymous enum declared inside parameter list"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: c-decl.c:5437
+#: c-decl.c:4955
#, fuzzy
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "het bereik ervan is enkel deze definitie of declaratie, wat waarschijnlijk niet de bedoeling is"
-#: c-decl.c:5516
+#: c-decl.c:5032
#, c-format
msgid "redefinition of `union %s'"
msgstr "herdefinitie van `union %s'"
-#: c-decl.c:5519
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
msgstr "herdefinitie van `struct %s'"
-#: c-decl.c:5558
-msgid "unnamed fields of type other than struct or union are not allowed"
-msgstr "onbenoemde velden van een type anders dan struct of union zijn niet toegestaan"
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "declaratie declareert niets"
-#: c-decl.c:5599 c-decl.c:5602
+#: c-decl.c:5169 c-decl.c:5172
#, fuzzy, c-format
msgid "%s defined inside parms"
msgstr "enum gedinieerd binnen parameters"
-#: c-decl.c:5600 c-decl.c:5603 c-decl.c:5614
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "union"
# Of beter onvertaald laten?
-#: c-decl.c:5600 c-decl.c:5603
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "structuur"
-#: c-decl.c:5613
+#: c-decl.c:5183
#, fuzzy, c-format
msgid "%s has no %s"
msgstr "%s heeft geen leden"
-#: c-decl.c:5614
+#: c-decl.c:5184
msgid "struct"
msgstr "struct"
-#: c-decl.c:5615
+#: c-decl.c:5185
#, fuzzy
msgid "named members"
msgstr "%s heeft geen benoemde leden"
-#: c-decl.c:5615
+#: c-decl.c:5185
msgid "members"
msgstr "leden"
-#: c-decl.c:5654
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "geneste herdefinitie van `%s'"
-#: c-decl.c:5667
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: c-decl.c:5678
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: c-decl.c:5690
+#: c-decl.c:5260
#, fuzzy, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr "type van bitveld `%s' is ongeldig in ANSI C"
-#: c-decl.c:5702
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: c-decl.c:5704
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr "breedte van `%s' overschrijdt zijn type"
-#: c-decl.c:5706
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr "bitveld `%s' heeft breedte 0"
-#: c-decl.c:5720
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr "`%s' is smaller dan waarden van zijn type"
-#: c-decl.c:5765
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr "flexibele array als lid van union"
-#: c-decl.c:5767
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr "flexibele array niet laatste lid van struct"
-#: c-decl.c:5769
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
-msgstr ""
+msgstr "flexibele array als lid in overigens lege struct"
-#: c-decl.c:5794 ch/typeck.c:3060
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "herhaald lid `%s'"
-#: c-decl.c:5838
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr "union kan niet transparant gemaakt worden"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5932
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr "herdeclaratie van `enum %s'"
-#: c-decl.c:5966
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr "enum gedinieerd binnen parameters"
-#: c-decl.c:5999
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer"
-#: c-decl.c:6108 ch/decl.c:4437
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
-#: c-decl.c:6121 ch/decl.c:4449
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "overflow in enumeratiewaarden"
-#: c-decl.c:6126
+#: c-decl.c:5752
#, fuzzy
msgid "ISO C restricts enumerator values to range of `int'"
msgstr "ANSI C beperkt enumeratiewaarden tot het bereik van het `int' type"
-#: c-decl.c:6204
+#: c-decl.c:5834
#, fuzzy
msgid "return type is an incomplete type"
msgstr "type van teruggeefwaarde is onvolledig"
-#: c-decl.c:6212
+#: c-decl.c:5842
#, fuzzy
msgid "return type defaults to `int'"
msgstr "teruggeefwaarde krijgt standaardtype `int'"
-#: c-decl.c:6259
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr "geen eerder prototype voor `%s'"
-#: c-decl.c:6266
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "`%s' werd voor haar definitie gebruikt zonder protoype"
-#: c-decl.c:6272
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr "geen eerdere declaratie voor `%s'"
-#: c-decl.c:6279
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "`%s' werd voor haar definitie gebruikt zonder declaratie"
-#: c-decl.c:6303 c-decl.c:6884
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
msgstr "het type van de teruggeefwaarde van `%s' is niet `int'"
-#: c-decl.c:6319
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr "eerste argument van `%s' zou een `int' moeten zijn"
-#: c-decl.c:6328
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr "tweede argument van `%s' zou een `char **' moeten zijn"
-#: c-decl.c:6337
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr "derde argument van `%s' zou waarschijnlijk een `char **' moeten zijn"
-#: c-decl.c:6346
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: c-decl.c:6349
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
msgstr "`%s' is gewoonlijk een niet-static funtie"
-#: c-decl.c:6459
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr "parametertypes zowel in parameterlijst als apart opgegeven"
-#: c-decl.c:6480
+#: c-decl.c:6098
msgid "parameter name omitted"
msgstr "parameternaam weggelaten"
-#: c-decl.c:6484 c-decl.c:6586
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
msgstr "parameter `%s' als void gedeclareerd"
-#: c-decl.c:6560
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: c-decl.c:6579
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
msgstr "meerdere parameters hebben de naam `%s'"
-#: c-decl.c:6610 c-decl.c:6612
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr "`%s' krijgt standaardtype `int'"
-#: c-decl.c:6648
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "declaratie voor parameter `%s' maar er is zo geen parameter"
-#: c-decl.c:6696
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "aantal argumenten kom niet overeen met prototype"
-#: c-decl.c:6726
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr "gepromoveerd argument `%s' komt niet overeen met prototype"
-#: c-decl.c:6740
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr "argument `%s' komt niet overeen met prototype"
-#: c-decl.c:7054
+#: c-decl.c:6518 cp/decl.c:15049
+#, fuzzy
+msgid "no return statement in function returning non-void"
+msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft"
+
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr "deze functie kan met of zonder waarde tergukeren"
-#: c-decl.c:7074
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
-#: c-decl.c:7078
+#: c-decl.c:6733
#, fuzzy, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
@@ -1451,976 +1554,976 @@ msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7133
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
-msgstr ""
+msgstr "initiële declaratie voor `for' lus gebruikt buiten C99 modus"
-#: c-decl.c:7157
+#: c-decl.c:6815
#, fuzzy, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:7160
+#: c-decl.c:6818
#, fuzzy, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:7163
+#: c-decl.c:6821
#, fuzzy, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr "`%s' als 'inline' gedeclareerd na de definitie"
-#: c-decl.c:7171
+#: c-decl.c:6829
#, fuzzy, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:7173
+#: c-decl.c:6831
#, fuzzy, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-decl.c:7175
+#: c-decl.c:6833
#, fuzzy, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
msgstr "de formaatstring is geen string-type"
-#: c-format.c:143
+#: c-format.c:124
#, fuzzy
msgid "args to be formatted is not '...'"
msgstr "de te formatteren argumenten zijn niet ..."
-#: c-format.c:152
+# Klinkt wat vreemd...
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
-msgstr ""
+msgstr "strftime formaten kunnen geen argumenten formatteren"
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
#, fuzzy
msgid "format string has invalid operand number"
msgstr "de formaatstring heeft een niet-constant operand-nummer"
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr "functie geeft geen string-type terug"
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr "onbekende formaatspecificatie"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr "`%s' is een onbekend type formaatfunctie"
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr "de formaatstring volgt de te formatteren argumenten"
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
-msgstr ""
+msgstr "` ' vlag"
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
-msgstr ""
+msgstr "de ` ' printf-vlag"
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
-msgstr ""
+msgstr "`+' vlag"
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
-msgstr ""
+msgstr "de `+' printf-vlag"
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
-msgstr ""
+msgstr "`#' vlag"
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
-msgstr ""
+msgstr "de `#' printf-vlag"
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
-msgstr ""
+msgstr "`0' vlag"
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
-msgstr ""
+msgstr "de `0' printf-vlag"
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
-msgstr ""
+msgstr "`-' vlag"
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
-msgstr ""
+msgstr "de `-' printf-vlag"
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
-msgstr ""
+msgstr "`'' vlag"
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
-msgstr ""
+msgstr "de `'' printf-vlag"
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
-msgstr ""
+msgstr "`I' vlag"
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
-msgstr ""
+msgstr "de `I' printf-vlag"
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1791
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
-msgstr ""
+msgstr "veldbreedte"
-#: c-format.c:627
-#, fuzzy
+#: c-format.c:608
msgid "field width in printf format"
-msgstr "veldbreedte is niet van het type 'int' (argument %d)"
+msgstr "veldbreedte in printf-formaat"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
-msgstr ""
+msgstr "precisie"
-#: c-format.c:628
-#, fuzzy
+#: c-format.c:609
msgid "precision in printf format"
-msgstr "precisie gebruikt bij `%c' formaat"
+msgstr "precisie in printf-formaat"
-#: c-format.c:629 c-format.c:648 c-format.c:699
+# Goede vertaling voor modifier? "aanpasser" en "veranderaar" klinken nogal duf...
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
-msgstr ""
+msgstr "lengte-modifier"
-#: c-format.c:629
-#, fuzzy
+#: c-format.c:610
msgid "length modifier in printf format"
-msgstr "meerdere E/O opties in formaat"
+msgstr "lengte-modifier in printf-formaat"
-#: c-format.c:645
+# moet beter kunnen...
+#: c-format.c:626
#, fuzzy
msgid "assignment suppression"
-msgstr "ontbrekende index-expressie"
+msgstr "toewijzingsonderdrukking"
-#: c-format.c:645
+# dit wringt nogal...
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
-msgstr ""
+msgstr "de scanf toewijzingsonderdrukking mogelijkheid"
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
-msgstr ""
+msgstr "`a' vlag"
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
-msgstr ""
+msgstr "de `a' scanf-vlag"
-#: c-format.c:647
-#, fuzzy
+#: c-format.c:628
msgid "field width in scanf format"
-msgstr "breedte gebruikt bij `%c' formaat"
+msgstr "veldbreedte in scanf-formaat"
-#: c-format.c:648
-#, fuzzy
+#: c-format.c:629
msgid "length modifier in scanf format"
-msgstr "meerdere E/O opties in formaat"
+msgstr "lengte-modifier in scanf-formaat"
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
-msgstr ""
+msgstr "de `'' scanf-vlag"
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
-msgstr ""
+msgstr "de `I' scanf-vlag"
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
-msgstr ""
+msgstr "`_' vlag"
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
-msgstr ""
+msgstr "de `_' strftime-vlag"
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
-msgstr ""
+msgstr "de `-' strftime-vlag"
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
-msgstr ""
+msgstr "de `0' strftime-vlag"
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
-msgstr ""
+msgstr "`^' vlag"
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
-msgstr ""
+msgstr "de `^' strftime-vlag"
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
-msgstr ""
+msgstr "de `#' strftime-vlag"
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
-msgstr ""
+msgstr "veldbreedte in strftime-formaat"
# Wat is een correcte vertaling voor 'identifier'? Ik kies voor 'naam'.
-#: c-format.c:670
+#: c-format.c:651
#, fuzzy
msgid "`E' modifier"
-msgstr "`$' in naam"
+msgstr "`E' modifier"
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
-msgstr ""
+msgstr "de `E' strftime-modifier"
# Wat is een correcte vertaling voor 'identifier'? Ik kies voor 'naam'.
-#: c-format.c:671
+#: c-format.c:652
#, fuzzy
msgid "`O' modifier"
-msgstr "`$' in naam"
+msgstr "`O' modifier"
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
-msgstr ""
+msgstr "de `O' strftime-modifier"
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
-msgstr ""
+msgstr "de `O' modifier"
-#: c-format.c:690
-#, fuzzy
+#: c-format.c:671
msgid "fill character"
-msgstr "%s bij nulkarakter"
+msgstr "opvulkarakter"
-#: c-format.c:690
-#, fuzzy
+#: c-format.c:671
msgid "fill character in strfmon format"
-msgstr "ongeldig karakter in naam van macro-parameter"
+msgstr "opvulkarakter in strfmon-formaat"
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
-msgstr ""
+msgstr "de `^' strfmon-vlag"
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
-msgstr ""
+msgstr "de `+' strfmon-vlag"
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
-msgstr ""
+msgstr "`(' vlag"
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
-msgstr ""
+msgstr "de `(' strfmon-vlag"
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
-msgstr ""
+msgstr "`!' vlag"
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
-msgstr ""
+msgstr "de `!' strfmon-vlag"
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
-msgstr ""
+msgstr "de `-' strfmon-vlag"
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
-msgstr ""
+msgstr "veldbreedte in strfmon-formaat"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
-msgstr ""
+msgstr "linkse precisie"
-#: c-format.c:697
-#, fuzzy
+#: c-format.c:678
msgid "left precision in strfmon format"
-msgstr "precisie gebruikt bij `%c' formaat"
+msgstr "linkse precisie in strfmon-formaat"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
-msgstr ""
+msgstr "rechtse precisie"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
-msgstr ""
+msgstr "rechtse precisie in strfmon-formaat"
-#: c-format.c:699
-#, fuzzy
+#: c-format.c:680
msgid "length modifier in strfmon format"
-msgstr "meerdere E/O opties in formaat"
+msgstr "lengte-modifier in strfmon-formaat"
-#: c-format.c:998
-#, fuzzy, c-format
+#: c-format.c:983
+#, c-format
msgid "function might be possible candidate for `%s' format attribute"
-msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
+msgstr "deze functie is een mogelijke kandidaat voor het `%s' formaat-attribuut"
-#: c-format.c:1122 c-format.c:1143 c-format.c:2201
-#, fuzzy
+# niet zeker of '$-operandnummer' wel de juiste betekenis vervat
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
-msgstr "operand buiten bereik in formaat"
+msgstr "$-operandnummer ontbreekt in formaat"
-#: c-format.c:1153
-#, fuzzy, c-format
+#: c-format.c:1138
+#, c-format
msgid "%s does not support %%n$ operand number formats"
-msgstr "ANSI C ondersteunt het `%c' formaat niet"
+msgstr "%s ondersteunt geen %%n$ operandnummer formaten"
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
-msgstr "operand buiten bereik in formaat"
+msgstr "operandnummer buiten bereik in formaat"
-#: c-format.c:1183
-#, fuzzy, c-format
+#: c-format.c:1168
+#, c-format
msgid "format argument %d used more than once in %s format"
-msgstr "formaat-argument is geen pointer (argument %d)"
+msgstr "formaat-argument %d meer dan eens gebruikt in %s formaat"
-#: c-format.c:1233
+# moet beter kunnen
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
-msgstr ""
+msgstr "formaat-argument %d ongebruikt voor gebruikt argument %d in $-stijl formaat"
-#: c-format.c:1330
-#, fuzzy
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
-msgstr "de formaatstring is geen string-type"
+msgstr "formaat is geen stringconstante, de formaatstring werd dus niet nagekeken"
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
-msgstr ""
+msgstr "formaat is geen stringconstante en er zijn geen formaat-argumenten"
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
-msgstr ""
+msgstr "formaat is geen stringconstante, de argumenttypes werden dus niet nagekeken"
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr "teveel argumenten voor formaat"
-#: c-format.c:1362
-#, fuzzy
+#: c-format.c:1354
msgid "unused arguments in $-style format"
-msgstr "te weinig argumenten voor formaat"
+msgstr "ongebruikte argumenten in $-stijl formaat"
-#: c-format.c:1365
-msgid "zero-length format string"
-msgstr "formaatstring van lengte 0"
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "%s formaatstring van lengte 0"
-#: c-format.c:1368
-#, fuzzy
+# "brede string"? "string met brede karakters/tekens"?
+#: c-format.c:1361
msgid "format is a wide character string"
-msgstr "karakterconstante in slecht formaat"
+msgstr "formaat is een wide-character string"
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
msgstr "formaatstring niet beëindigd"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr "formaatstring is NULL"
-
-#: c-format.c:1670
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr "ingesloten `\\0' in formaat"
-#: c-format.c:1685
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr "overbodige `%%' achteraan formaat"
-#: c-format.c:1724 c-format.c:1961
-#, fuzzy, c-format
+#: c-format.c:1635 c-format.c:1872
+#, c-format
msgid "repeated %s in format"
-msgstr "herhaalde `%c' optie in formaat"
+msgstr "herhaalde %s in formaat"
-#: c-format.c:1737
-#, fuzzy
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
-msgstr "conversie mist type aan het einde van het formaat"
+msgstr "opvulkarakter ontbreekt aan het einde van dit strfmon-formaat"
-#: c-format.c:1757 c-format.c:1875 c-format.c:2155 c-format.c:2208
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr "te weinig argumenten voor formaat"
-#: c-format.c:1817
-#, fuzzy, c-format
+#: c-format.c:1728
+#, c-format
msgid "zero width in %s format"
-msgstr "breedte gebruikt bij `%c' formaat"
+msgstr "breedte van nul in %s formaat"
-#: c-format.c:1836
-#, fuzzy, c-format
+#: c-format.c:1747
+#, c-format
msgid "empty left precision in %s format"
-msgstr "precisie gebruikt bij `%c' formaat"
+msgstr "lege linkse precisie gebruikt in %s formaat"
-#: c-format.c:1890
+#: c-format.c:1801
msgid "field precision"
-msgstr ""
+msgstr "veldprecisie"
-#: c-format.c:1905
-#, fuzzy, c-format
+#: c-format.c:1816
+#, c-format
msgid "empty precision in %s format"
-msgstr "precisie gebruikt bij `%c' formaat"
+msgstr "lege precisie in %s formaat"
-#: c-format.c:1945
-#, fuzzy, c-format
+#: c-format.c:1856
+#, c-format
msgid "%s does not support the `%s' %s length modifier"
-msgstr "ANSI C ondersteunt de `%c' lengte-optie niet"
+msgstr "%s ondersteunt de `%s' %s lengte-modifier niet"
-#: c-format.c:1995
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr "conversie mist type aan het einde van het formaat"
-#: c-format.c:2006
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr "onbekend typeconversie-karakter `%c' in formaat"
-#: c-format.c:2009
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr "onbekend typeconversie-karakter 0x%x in formaat"
-#: c-format.c:2016
-#, fuzzy, c-format
+#: c-format.c:1927
+#, c-format
msgid "%s does not support the `%%%c' %s format"
-msgstr "ANSI C ondersteunt het `%c' formaat niet"
+msgstr "%s ondersteunt het `%%%c' %s formaat niet"
-#: c-format.c:2032
-#, fuzzy, c-format
+#: c-format.c:1943
+#, c-format
msgid "%s used with `%%%c' %s format"
-msgstr "breedte gebruikt bij `%c' formaat"
+msgstr "%s gebruikt bij `%%%c' %s formaat"
-#: c-format.c:2041
-#, fuzzy, c-format
+#: c-format.c:1952
+#, c-format
msgid "%s does not support %s"
-msgstr "-mcpu=%s ondersteunt -march=%s niet"
+msgstr "%s ondersteunt %s niet"
-#: c-format.c:2050
-#, fuzzy, c-format
+#: c-format.c:1961
+#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
-msgstr "ANSI C ondersteunt het `%c' formaat niet"
+msgstr "%s ondersteunt %s niet bij het `%%%c' %s formaat"
-#: c-format.c:2083
-#, fuzzy, c-format
+#: c-format.c:1994
+#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
-msgstr "`0' optie wordt genegeerd bij precisiespecificatie en `%c' formaat"
+msgstr "%s wordt genegeerd bij %s en `%%%c' %s formaat"
-#: c-format.c:2087
-#, fuzzy, c-format
+#: c-format.c:1998
+#, c-format
msgid "%s ignored with %s in %s format"
-msgstr "`0' optie wordt genegeerd bij precisiespecificatie en `%c' formaat"
+msgstr "%s wordt genegeerd bij %s in %s formaat"
-#: c-format.c:2093
-#, fuzzy, c-format
+#: c-format.c:2004
+#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
-msgstr "zowel de `*' optie alse de `%c' optie in formaat gebruikt"
+msgstr "zowel %s als %s gebruikt bij '%%%c' %s formaat"
-#: c-format.c:2097
-#, fuzzy, c-format
+#: c-format.c:2008
+#, c-format
msgid "use of %s and %s together in %s format"
-msgstr "zowel de `*' optie alse de `%c' optie in formaat gebruikt"
+msgstr "zowel %s als %s gebruikt in %s formaat"
-#: c-format.c:2116
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr "`%%%c' geeft enkel de laatste twee cijfers van het jaartal in sommige omgevingen"
-#: c-format.c:2119
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr "`%%%c' geeft enkel de laatste twee cijfers van het jaartal"
#. The end of the format string was reached.
-#: c-format.c:2135
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr "geen eind-`]' voor `%%[' formaat"
-#: c-format.c:2148
-#, fuzzy, c-format
+#: c-format.c:2059
+#, c-format
msgid "use of `%s' length modifier with `%c' type character"
-msgstr "lengtekarakter `%c' samen met typekarakter `%c' gebruikt"
+msgstr "`%s' lengte-modifier samen met typekarakter `%c' gebruikt"
-#: c-format.c:2169
-#, fuzzy, c-format
+#: c-format.c:2080
+#, c-format
msgid "%s does not support the `%%%s%c' %s format"
-msgstr "ANSI C ondersteunt het `%c' formaat niet"
+msgstr "%s ondersteunt het `%%%s%c' %s formaat niet"
-#: c-format.c:2184
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
-msgstr ""
+msgstr "operandnummer opgegeven met onderdukte uitlijning"
-#: c-format.c:2186
-#, fuzzy
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
-msgstr "operand buiten bereik in formaat"
+msgstr "operandnummer opgegeven voor formaat dat geen argument heeft"
-#: c-format.c:2305
-#, fuzzy, c-format
+#: c-format.c:2211
+#, c-format
msgid "writing through null pointer (arg %d)"
-msgstr "constant object wordt beschreven (argument %d)"
+msgstr "beschrijving via null pointer (arg %d)"
-#: c-format.c:2314
-#, fuzzy, c-format
+#: c-format.c:2220
+#, c-format
msgid "reading through null pointer (arg %d)"
-msgstr "formaat-argument is geen pointer (argument %d)"
+msgstr "uitlezing via null-pointer (arg %d)"
-#: c-format.c:2334
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr "constant object wordt beschreven (argument %d)"
-#: c-format.c:2344
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr ""
-#: c-format.c:2351
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr "formaat-argument is geen pointer (argument %d)"
-#: c-format.c:2353
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr "formaat-argument is geen pointer naar een pointer (argument %d)"
-#: c-format.c:2424
+#: c-format.c:2330
msgid "pointer"
msgstr ""
-#: c-format.c:2426
-#, fuzzy
+#: c-format.c:2332
msgid "different type"
-msgstr "Ongeldige modus voor gen_tst_reg"
+msgstr "verschillend type"
-#: c-format.c:2447
+#: c-format.c:2353
#, fuzzy, c-format
msgid "%s is not type %s (arg %d)"
msgstr "veldbreedte is niet van het type 'int' (argument %d)"
-#: c-format.c:2450
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr "%s formaat, %s argument (argument %d)"
-#: c-lex.c:292
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG niet gedefinieerd"
+
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
msgstr ""
-#: c-lex.c:342
+#: c-lex.c:336
#, fuzzy, c-format
msgid "ignoring #pragma %s %s"
msgstr "pragma wordt genegeerd: %s"
-#: c-lex.c:344
-#, fuzzy, c-format
-msgid "ignoring #pragma %s"
-msgstr "pragma wordt genegeerd: %s"
-
-#: c-lex.c:394
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr ""
-#: c-lex.c:640
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr ""
-# Moet 'floating(-point)' ook vertaald worden?
-#: c-lex.c:730
-#, fuzzy
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "zowel `f' als `l' in floating-point constante"
-
-#: c-lex.c:757
-#, fuzzy, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "floating-point getal overschrijdt het bereik van een `float'"
-
-#: c-lex.c:787
+#: c-lex.c:695
#, fuzzy, c-format
msgid "stray '%c' in program"
msgstr "misplaatste '\\' in programma"
-#: c-lex.c:789
+#: c-lex.c:697
#, fuzzy, c-format
msgid "stray '\\%o' in program"
msgstr "misplaatste '\\' in programma"
-#: c-lex.c:887
-#, fuzzy
-msgid "too many decimal points in floating constant"
-msgstr "teveel `l'en in integerconstante"
-
-#: c-lex.c:889
-msgid "decimal point in exponent - impossible!"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
msgstr ""
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:900
-msgid "underscore in number"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
msgstr ""
-#: c-lex.c:962
-msgid "numeric constant with no digits"
-msgstr "numerieke constante zonder cijfers"
+#: c-lex.c:873
+#, fuzzy, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "integerconstante is zo groot dat hij unsigned is"
-#: c-lex.c:965
-msgid "numeric constant contains digits beyond the radix"
-msgstr "numerieke constante bevat cijfers buiten de basis"
+#: c-lex.c:941
+#, fuzzy, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "floating-point getal overschrijdt het bereik van een `float'"
+
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+#, fuzzy
+msgid "ignoring invalid multibyte character"
+msgstr "ongeldig multibyte-karakter wordt genegeerd"
-# Ik denk dat 'radix' -> 'basis' correct is.
-# Mag 'radix' ook 'radix' blijven?
-#: c-lex.c:976
-msgid "floating constant may not be in radix 16"
-msgstr "floating-point constante mag niet in basis 16 staan"
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: c-lex.c:979
-msgid "hexadecimal floating constant has no exponent"
-msgstr "hexadecimale floating-point constante heeft geen exponent"
+#: c-opts.c:359
+#, fuzzy, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
-#: c-lex.c:991
-msgid "floating constant exponent has no digits"
-msgstr "exponent van floating-point constante heeft geen cijfers"
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "beginwaarde ontbreekt"
-#: c-lex.c:1011
-#, fuzzy
-msgid "more than one 'f' suffix on floating constant"
-msgstr "meer dan één `f' in numerieke constante"
+# 'whitespace' -> 'witruimte'?
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "ontbrekende witruimte na getal `%s'"
-#: c-lex.c:1014
-msgid "traditional C rejects the 'f' suffix"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
msgstr ""
-#: c-lex.c:1021
-#, fuzzy
-msgid "more than one 'l' suffix on floating constant"
-msgstr "meer dan één `l' in numerieke constante"
-
-#: c-lex.c:1024
-msgid "traditional C rejects the 'l' suffix"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
msgstr ""
-#: c-lex.c:1032
+#: c-opts.c:937
#, fuzzy
-msgid "more than one 'i' or 'j' suffix on floating constant"
-msgstr "meer dan één `i' of `j' in numerieke constante"
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-pipe wordt niet ondersteund"
-#: c-lex.c:1034 c-lex.c:1128
-#, fuzzy
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ANSI C verbiedt imaginaire numerieke constantes"
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "-pipe wordt niet ondersteund"
-#: c-lex.c:1039
-#, fuzzy
-msgid "invalid suffix on floating constant"
-msgstr "misvormde floating-point constante"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr ""
-#. We got an exception from parse_float()
-#: c-lex.c:1056
-msgid "floating constant out of range"
-msgstr "floating-point constante buiten bereik"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr ""
-#: c-lex.c:1068
+#: c-opts.c:1273
#, fuzzy
-msgid "floating point number exceeds range of 'double'"
-msgstr "floating-point getal overschrijdt het bereik van een `double'"
+msgid "output filename specified twice"
+msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
-#: c-lex.c:1097
-#, fuzzy
-msgid "two 'u' suffixes on integer constant"
-msgstr "twee `u's in integerconstante"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k genegeerd zonder -Wformat"
-#: c-lex.c:1100
-msgid "traditional C rejects the 'u' suffix"
-msgstr ""
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args genegeerd zonder -Wformat"
-# `l'en of `l's?
-#: c-lex.c:1111
+#: c-opts.c:1391
#, fuzzy
-msgid "three 'l' suffixes on integer constant"
-msgstr "drie `l'en in integerconstante"
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-extra-args genegeerd zonder -Wformat"
-#: c-lex.c:1113
-msgid "'lul' is not a valid integer suffix"
-msgstr ""
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral genegeerd zonder -Wformat"
-#: c-lex.c:1115
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr ""
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security genegeerd zonder -Wformat"
-#: c-lex.c:1118
-#, fuzzy
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ANSI C verbiedt long long integerconstantes"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute genegeerd zonder -Wformat"
-#: c-lex.c:1126
-#, fuzzy
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "meer dan één `i' of `j' in numerieke constante"
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "kan bestand '%s' niet openen"
-#: c-lex.c:1133
-#, fuzzy
-msgid "invalid suffix on integer constant"
-msgstr "twee `u's in integerconstante"
+#: c-opts.c:1474
+#, fuzzy, c-format
+msgid "opening dependency file %s"
+msgstr "dynamische dependencies.\n"
-#: c-lex.c:1141
+#: c-opts.c:1484
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+msgid "closing dependency file %s"
msgstr ""
-# 'width' -> 'wijdte' of 'breedte'?
-# Best 'breedte'; zo wordt 'too wide' 'te breed'.
-#: c-lex.c:1231
-msgid "width of integer constant changes with -traditional"
-msgstr "breedte van integerconstante verandert met -traditional"
+#: c-opts.c:1487
+#, c-format
+msgid "when writing output to %s"
+msgstr ""
-#: c-lex.c:1233
+#: c-opts.c:1567
#, fuzzy
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "integerconstante is unsigned in ANSI C, signed met -traditional"
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "-MG moet samen met ofwel -M, ofwel -MM gebruikt worden"
-#: c-lex.c:1235
-msgid "width of integer constant may change on other systems with -traditional"
-msgstr "breedte van integerconstante kan veranderen op andere systemen met -traditional"
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr ""
-#: c-lex.c:1245
-#, fuzzy, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "integerconstante is zo groot dat hij unsigned is"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
-#: c-lex.c:1248
-msgid "an unsigned long long int"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
msgstr ""
-#: c-lex.c:1249
-msgid "a long long int"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
msgstr ""
-#: c-lex.c:1250
-msgid "an unsigned long int"
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
msgstr ""
-#: c-lex.c:1254
-msgid "decimal constant is so large that it is unsigned"
-msgstr "decimale constante is zo groot dat hij unsigned is"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
-#: c-lex.c:1263
-#, fuzzy
-msgid "complex integer constant is too wide for 'complex int'"
-msgstr "complexe integerconstante is te breed voor `complex int'"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
-#: c-lex.c:1283
-#, fuzzy
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "integerconstante is zo groot dat hij unsigned is"
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
-#: c-lex.c:1287
-#, fuzzy, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "ontbrekende witruimte na getal `%.*s'"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
-#: c-lex.c:1323 cpplex.c:1866
-#, fuzzy
-msgid "ignoring invalid multibyte character"
-msgstr "Ongeldig multibyte-karakter wordt genegeerd"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 objc-parse.y:57 parse.y:51
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr ""
-#: /usr/share/bison/bison.simple:107 /usr/share/bison/bison.simple:110
-#: /usr/share/bison/bison.simple:172
+#: /usr/share/bison/bison.simple:179
msgid "syntax error: cannot back up"
msgstr ""
-# 'parser' en 'stack overflow' vertalen?
-#: /usr/share/bison/bison.simple:358 /usr/share/bison/bison.simple:410
-#: /usr/share/bison/bison.simple:946
-msgid "parser stack overflow"
-msgstr "stack overflow in parser"
-
-#: c-parse.y:288 objc-parse.y:310
+#: c-parse.y:325 objc-parse.y:346
#, fuzzy
msgid "ISO C forbids an empty source file"
msgstr "ANSI C verbiedt een leeg bronbestand"
-#: c-parse.y:321 c-typeck.c:6909 ch/parse.c:2113 objc-parse.y:343
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "het argument van `asm' is geen constante string"
-#: c-parse.y:329 objc-parse.y:351
+#: c-parse.y:374 objc-parse.y:396
#, fuzzy
msgid "ISO C forbids data definition with no type or storage class"
msgstr "ANSI C verbiedt een datadefinitie zonder type of opslagklasse"
-#: c-parse.y:331 objc-parse.y:353
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr "datadefinitie heeft geen type of opslagklasse"
-#: c-parse.y:344 objc-parse.y:366
+#: c-parse.y:389 objc-parse.y:411
#, fuzzy
msgid "ISO C does not allow extra `;' outside of a function"
msgstr "ANSI C staat geen extra `;' buiten een functie toe"
-#: c-parse.y:404 cppexp.c:691
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr ""
-#: c-parse.y:466 objc-parse.y:488
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "`sizeof' toegepast op een bitveld"
-#: c-parse.y:546 objc-parse.y:568
+#: c-parse.y:583 objc-parse.y:605
#, fuzzy
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr "ANSI C verbiedt het weglaten van de middelste term van een ?: expresie"
-#: c-parse.y:593 objc-parse.y:615
+#: c-parse.y:632 objc-parse.y:654
#, fuzzy
msgid "ISO C89 forbids compound literals"
msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues"
-#: c-parse.y:607 objc-parse.y:629
+#: c-parse.y:646 objc-parse.y:668
#, fuzzy
msgid "ISO C forbids braced-groups within expressions"
msgstr "ANSI C verbiedt accolade-groepen in expressies"
-#: c-parse.y:638 objc-parse.y:660
+#: c-parse.y:677 objc-parse.y:699
#, fuzzy
msgid "first argument to __builtin_choose_expr not a constant"
msgstr "gevraagd alignment is geen constante"
-#: c-parse.y:681
-msgid "traditional C rejects string concatenation"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
msgstr ""
-#: c-parse.y:696 objc-parse.y:732
-#, fuzzy
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-
-#: c-parse.y:957 c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:996
-#: c-parse.y:1002 c-parse.y:1008 c-parse.y:1014 c-parse.y:1047 c-parse.y:1053
-#: c-parse.y:1059 c-parse.y:1065 c-parse.y:1110 c-parse.y:1116 c-parse.y:1122
-#: c-parse.y:1128 objc-parse.y:993 objc-parse.y:999 objc-parse.y:1005
-#: objc-parse.y:1011 objc-parse.y:1032 objc-parse.y:1038 objc-parse.y:1044
-#: objc-parse.y:1050 objc-parse.y:1083 objc-parse.y:1089 objc-parse.y:1095
-#: objc-parse.y:1101 objc-parse.y:1146 objc-parse.y:1152 objc-parse.y:1158
-#: objc-parse.y:1164 parse.y:1888 parse.y:1895 parse.y:1934
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "`%s' staat niet aan het begin van een declaratie"
-#: c-parse.y:1410 objc-parse.y:1455
+#: c-parse.y:1441 objc-parse.y:1496
#, fuzzy
msgid "ISO C forbids empty initializer braces"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: c-parse.y:1424 objc-parse.y:1469
+#: c-parse.y:1455 objc-parse.y:1510
#, fuzzy
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr "ANSI C verbiedt het opgeven van het te initialiseren element"
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr ""
-#: c-parse.y:1431 objc-parse.y:1476
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr ""
-#: c-parse.y:1460
+#: c-parse.y:1489 objc-parse.y:1544
#, fuzzy
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ANSI C verbiedt het opgeven van het te initialiseren element"
-#: c-parse.y:1468 c-parse.y:1498 objc-parse.y:1507 objc-parse.y:1537
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
#, fuzzy
msgid "ISO C forbids nested functions"
msgstr "ANSI C verbiedt geneste functies"
-#: c-parse.y:1672 objc-parse.y:1713
+#: c-parse.y:1703 objc-parse.y:1760
#, fuzzy
msgid "ISO C forbids forward references to `enum' types"
msgstr "ANSI C verbiedt voorwaartse referenties naar `enum' types"
-#: c-parse.y:1684 objc-parse.y:1725 parse.y:2346
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "komma aan het einde van enumerator-lijst"
-#: c-parse.y:1692 objc-parse.y:1733
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr "geen puntkomma aan het einde van een struct of union"
-#: c-parse.y:1701 objc-parse.y:1742 objc-parse.y:2809
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr "extra puntkomma opgegeven in struct of union"
-#: c-parse.y:1714 objc-parse.y:1769
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr ""
-#: c-parse.y:1723 objc-parse.y:1778
+#: c-parse.y:1754 objc-parse.y:1825
#, fuzzy
msgid "ISO C forbids member declarations with no members"
msgstr "ANSI C verbiedt lid-declaraties zonder leden"
-#: c-parse.y:1872 c-parse.y:1876 c-parse.y:1880 objc-parse.y:1927
-#: objc-parse.y:1931 objc-parse.y:1935
-#, fuzzy
-msgid "storage class specifier in array declarator"
-msgstr "opslagklasse opgegeven voor parameter `%s'"
-
-#: c-parse.y:1895 objc-parse.y:1950
+#: c-parse.y:1913 objc-parse.y:1984
#, fuzzy
msgid "deprecated use of label at end of compound statement"
msgstr "ANSI C verbiedt een label aan het einde van een samengesteld statement"
-#: c-parse.y:1912 objc-parse.y:1967
+#: c-parse.y:1930 objc-parse.y:2001
#, fuzzy
msgid "ISO C89 forbids mixed declarations and code"
msgstr "ANSI C verbiedt labeldeclaraties"
-#: c-parse.y:1986 objc-parse.y:2045
+#: c-parse.y:2005 objc-parse.y:2080
#, fuzzy
msgid "ISO C forbids label declarations"
msgstr "ANSI C verbiedt labeldeclaraties"
# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: c-parse.y:2035 objc-parse.y:2094 parse.y:1588
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
-#: c-parse.y:2160 objc-parse.y:2219
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr "leeg body in een else-statement"
-#: c-parse.y:2280 objc-parse.y:2339
+#: c-parse.y:2303 objc-parse.y:2378
#, fuzzy
msgid "ISO C forbids `goto *expr;'"
msgstr "ANSI C verbiedt `goto *expr;'"
# Of is 'verbiedt parameterdeclaraties op voorhand' beter?
-#: c-parse.y:2378 objc-parse.y:2437
+#: c-parse.y:2403 objc-parse.y:2478
#, fuzzy
msgid "ISO C forbids forward parameter declarations"
msgstr "ANSI C verbiedt voorwaartse declaraties van parameters"
@@ -2431,1297 +2534,1446 @@ msgstr "ANSI C verbiedt voorwaartse declaraties van parameters"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2404 objc-parse.y:2463
+#: c-parse.y:2429 objc-parse.y:2504
#, fuzzy
msgid "ISO C requires a named argument before `...'"
msgstr "ANSI C heeft een benoemd argument nodig vóór `...'"
-#: c-parse.y:2498 objc-parse.y:2557
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "`...' in naamlijst in oude stijl"
-#: /usr/share/bison/bison.simple:639 /usr/share/bison/bison.simple:699
-msgid "parse error; also virtual memory exceeded"
+#: /usr/share/bison/bison.simple:795
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
msgstr "parse-fout; ook is het virtueel geheugen opgebruikt"
-#: /usr/share/bison/bison.simple:643 /usr/share/bison/bison.simple:703
-#: /usr/share/bison/bison.simple:821 cp/spew.c:349
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "parse-fout"
-#: c-parse.y:2814 cp/spew.c:1477 objc-parse.y:3501
+# 'parser' en 'stack overflow' vertalen?
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "stack overflow in parser"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s aan einde van invoer"
-#: c-parse.y:2820 cp/spew.c:1483 objc-parse.y:3507
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, fuzzy, c-format
msgid "%s before %s'%c'"
msgstr "%s voor `%s'"
-#: c-parse.y:2822 cp/spew.c:1485 objc-parse.y:3509
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, fuzzy, c-format
msgid "%s before %s'\\x%x'"
msgstr "%s voor `%s'"
-#: c-parse.y:2826 cp/spew.c:1489 objc-parse.y:3513
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "%s voor stringconstante"
-#: c-parse.y:2828 cp/spew.c:1491 objc-parse.y:3515
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, fuzzy, c-format
msgid "%s before numeric constant"
msgstr "%s voor stringconstante"
-#: c-parse.y:2830 objc-parse.y:3517
+#: c-parse.y:2854 objc-parse.y:3553
#, fuzzy, c-format
msgid "%s before \"%s\""
msgstr "%s voor `%s'"
-#: c-parse.y:2832 objc-parse.y:3519
+#: c-parse.y:2856 objc-parse.y:3555
#, fuzzy, c-format
msgid "%s before '%s' token"
msgstr "%s voor `%s'"
-#: c-parse.y:2968 objc-parse.y:3698
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr ""
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
msgstr ""
-#: c-parse.y:2998 ch/parse.c:4329 cp/lex.c:910 objc-parse.y:3728
-#, fuzzy
-msgid "YYDEBUG not defined"
-msgstr "YYDEBUG niet gedefinieerd"
-
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr "#pragma pack (pop) tegengekomen zonder overeenkomstige #pragma pack (push, <n>)"
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
msgstr "#pragma pack (pop, %s) tegengekomen zonder overeenkomstige #pragma pack (push, %s, <n>)"
-#: c-pragma.c:162
+#: c-pragma.c:145
#, fuzzy
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: c-pragma.c:164
+#: c-pragma.c:147
#, fuzzy
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
#, fuzzy
msgid "malformed '#pragma pack' - ignored"
msgstr "misvormde #pragma pack"
-#: c-pragma.c:202
+#: c-pragma.c:185
#, fuzzy
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr "misvormde #pragma pack(push[,id],<n>)"
-#: c-pragma.c:204
+#: c-pragma.c:187
#, fuzzy
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr "misvormde #pragma pack(pop[,id])"
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr ""
-#: c-pragma.c:250
+#: c-pragma.c:233
#, fuzzy
msgid "junk at end of '#pragma pack'"
msgstr "misvormde #pragma pack"
-#: c-pragma.c:264
+#: c-pragma.c:247
#, fuzzy, c-format
msgid "alignment must be a small power of two, not %d"
msgstr "Alignment moet een kleine macht van twee zijn, en niet %d, in #pragma pack"
-#: c-pragma.c:290 c-pragma.c:295
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
#, fuzzy
msgid "malformed #pragma weak, ignored"
msgstr "misvormde #pragma weak"
-#: c-pragma.c:299
+#: c-pragma.c:337
#, fuzzy
msgid "junk at end of #pragma weak"
msgstr "misvormde #pragma weak"
-#: c-semantics.c:563
+#: c-pragma.c:372 c-pragma.c:377
+#, fuzzy
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr "misvormde #pragma weak"
+
+#: c-pragma.c:382
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "misvormde #pragma weak"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr ""
+
+#: c-pragma.c:420
+#, fuzzy
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr "misvormde #pragma pack(pop[,id])"
+
+# Moet 'signature-string' vertaald worden?
+#: c-pragma.c:425
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "Brol aan einde van signature-string."
+
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
+
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "break-statement niet in een lus of switch"
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "continue-statement niet in een lus"
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr ""
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr ""
-#: c-semantics.c:680
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr ""
-#: c-semantics.c:723 c-typeck.c:6937 cp/semantics.c:881
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr ""
-#: c-typeck.c:124
+#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr "`%s' heeft een onvolledig type"
-#: c-typeck.c:146 cp/call.c:2590
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: c-typeck.c:155 cp/typeck2.c:227
+#: c-typeck.c:153
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "ongeldig gebruik van array die geen lvalue is"
+
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr "ongeldig gebruik van een array zonder opgegeven grenzen"
-#: c-typeck.c:163
+#: c-typeck.c:167
#, c-format
msgid "invalid use of undefined type `%s %s'"
msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:167
+#: c-typeck.c:171
#, c-format
msgid "invalid use of incomplete typedef `%s'"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: c-typeck.c:398 c-typeck.c:412
+#: c-typeck.c:424 c-typeck.c:438
#, fuzzy
msgid "function types not truly compatible in ISO C"
msgstr "functie-types zijn niet echt compatibel in ANSI C"
-#: c-typeck.c:572
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr "types zijn niet helemaal compatibel"
-#: c-typeck.c:725
-msgid "sizeof applied to a function type"
-msgstr "sizeof toegepast op een functie-type"
-
-#: c-typeck.c:731
-msgid "sizeof applied to a void type"
-msgstr "sizeof toegepast op een void-type"
-
-#: c-typeck.c:738
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof toegepast op een onvolledig type"
-
# 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: c-typeck.c:791 c-typeck.c:2809
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
msgstr "rekensom met pointer naar onvolledig type"
-#: c-typeck.c:1179
+#: c-typeck.c:1136
#, fuzzy, c-format
msgid "%s has no member named `%s'"
msgstr "union heeft geen lid dat `%s' heet"
-#: c-typeck.c:1212
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "vraag naar lid `%s' in iets dat geen structure of union is"
-#: c-typeck.c:1244 ch/expr.c:810
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr "dereferentie van pointer naar onvolledig type"
-#: c-typeck.c:1248 ch/expr.c:814
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
msgstr "`void *' pointer wordt gederefereerd"
# Is the %s the argument, or is it 'of' the argument?
-#: c-typeck.c:1265 cp/typeck.c:2380
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "ongeldig type-argument `%s'"
-#: c-typeck.c:1284 cp/typeck.c:2406
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr "subscript ontbreekt in array-referentie"
-#: c-typeck.c:1305 cp/typeck.c:2448
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr "array subscript is van het type `char'"
-#: c-typeck.c:1313 c-typeck.c:1402 cp/typeck.c:2455 cp/typeck.c:2534
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "array subscript is geen integer"
-#: c-typeck.c:1346
+#: c-typeck.c:1306
#, fuzzy
msgid "ISO C forbids subscripting `register' array"
msgstr "ANSI C verbiedt het gebruik van subscripts bij een `register' array"
-#: c-typeck.c:1348
+#: c-typeck.c:1308
#, fuzzy
-msgid "ISO C89 forbids subscripting non-lvalue array"
+msgid "ISO C90 forbids subscripting non-lvalue array"
msgstr "ANSI C verbiedt het gebruik van subscripts bij een array die geen lvalue is"
-#: c-typeck.c:1381
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr "subscript is van het type `char'"
-#: c-typeck.c:1397 cp/typeck.c:2529
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr "waarde met subscript is noch een array, noch een pointer"
-#: c-typeck.c:1451
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr "`%s' is hier niet gedeclareerd (niet in een functie)"
-#: c-typeck.c:1458
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
-#: c-typeck.c:1463
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(Elke niet-gedeclareerde naam wordt slechts één"
-#: c-typeck.c:1464
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "keer vermeld voor elke functie waarin hij staat.)"
-#: c-typeck.c:1481
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr ""
-#: c-typeck.c:1546
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "opgeroepen object is geen functie"
-#: c-typeck.c:1630 cp/typeck.c:3171
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "teveel argumenten voor functie"
-#: c-typeck.c:1651
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "het type van formele parameter %d is onvolledig"
-#: c-typeck.c:1664
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr "%s als integer in plaats van floating-point ten gevolge van een prototype"
-#: c-typeck.c:1667
+#: c-typeck.c:1641
#, fuzzy, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr "%s als floating-point in plaats van complex ten gevolge van een prototype"
-#: c-typeck.c:1670
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr "%s als complex in plaats van floating-point ten gevolge van een prototype"
-#: c-typeck.c:1673
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr "%s als floating-point in plaats van integer ten gevolge van een prototype"
-#: c-typeck.c:1676
+#: c-typeck.c:1650
#, fuzzy, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr "%s als complex in plaats van floating-point ten gevolge van een prototype"
-#: c-typeck.c:1679
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr "%s als floating-point in plaats van complex ten gevolge van een prototype"
-#: c-typeck.c:1689
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr "%s als `float' in plaats van `double' ten gevolge van een prototype"
-#: c-typeck.c:1707
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr "%s met andere breedte ten gevolge van prototype"
-#: c-typeck.c:1741
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "%s als unsigned ten gevolge van prototype"
-#: c-typeck.c:1743
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "%s als signed ten gevolge van prototype"
-#: c-typeck.c:1777 cp/typeck.c:3279
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "te weinig argument voor functie"
-#: c-typeck.c:1819
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "gebruik liefst haakjes rond + of - binnen een shift"
-#: c-typeck.c:1826
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "gebruik liefst haakjes rond && binnen ||"
-#: c-typeck.c:1835
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "gebruik liefst haakjes rond een rekensom in een operand van |"
-#: c-typeck.c:1838
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van |"
-#: c-typeck.c:1847
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "gebruik liefst haakjes rond een rekensom in een operand van ^"
-#: c-typeck.c:1850
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van ^"
-#: c-typeck.c:1857
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr "gebruik liefst haakjes rond + of - in een operand van &"
-#: c-typeck.c:1860
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr "gebruik liefst haakjes rond een vergelijking in een operand van &"
-#: c-typeck.c:1867
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "vergelijkingen als 'X <= Y <= Z' hebben niet hun wiskundige betekenis"
-#: c-typeck.c:2027 c-typeck.c:2083 ch/expr.c:3951
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
msgstr "deling door nul"
-#: c-typeck.c:2128 cp/typeck.c:3565
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr "teller van rechtse shift is negatief"
-#: c-typeck.c:2135 cp/typeck.c:3571
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr "teller van rechtse shift is >= breedte van het type"
-#: c-typeck.c:2160 cp/typeck.c:3590
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr "teller van links shift is negatief"
-#: c-typeck.c:2163 cp/typeck.c:3592
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr "teller van links shift is >= breedte van het type"
-#: c-typeck.c:2188
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr "teller van shift is negatief"
-#: c-typeck.c:2190
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "teller van shift is >= breedte van het type"
-#: c-typeck.c:2211 cp/typeck.c:3627
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr ""
-#: c-typeck.c:2235 c-typeck.c:2241
+#: c-typeck.c:2178 c-typeck.c:2184
#, fuzzy
msgid "ISO C forbids comparison of `void *' with function pointer"
msgstr "ANSI C verbiedt een vergelijking van `void *' met een functie-pointer"
-#: c-typeck.c:2244 c-typeck.c:2286 c-typeck.c:2314
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
-#: c-typeck.c:2259 c-typeck.c:2265 c-typeck.c:2335 c-typeck.c:2341
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
msgstr "vergelijking tussen pointer en integer"
# 'ordered' -> 'bevolen' of 'geordend'? Waarschijnlijk het laatste.
-#: c-typeck.c:2281 c-typeck.c:2309
+#: c-typeck.c:2222 c-typeck.c:2250
#, fuzzy
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ANSI C verbiedt geordende vergelijkingen tussen pointers naar functies"
-#: c-typeck.c:2306
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
msgstr "vergelijking van volledige en onvolledige pointers"
-#: c-typeck.c:2322 c-typeck.c:2329
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
msgstr "geordende vergelijking van een pointer met integer nul"
-#: c-typeck.c:2355 cp/typeck.c:3760
+#: c-typeck.c:2294 cp/typeck.c:3389
#, fuzzy
msgid "unordered comparison on non-floating point argument"
msgstr "geordende vergelijking van een pointer met integer nul"
-#: c-typeck.c:2559
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr "vergelijking tussen signed en unsigned"
-#: c-typeck.c:2605 cp/typeck.c:4006
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr "vergelijking van gepromoveerde ~unsigned met constante"
-#: c-typeck.c:2613 cp/typeck.c:4014
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "vergelijking van gepromoveerde ~unsigned met unsigned"
-#: c-typeck.c:2675
-msgid "pointer of type `void *' used in arithmetic"
-msgstr "pointer van type `void *' gebruikt in rekensom"
-
-#: c-typeck.c:2681
-msgid "pointer to a function used in arithmetic"
-msgstr "pointer naar functie gebruikt in rekensom"
-
-#: c-typeck.c:2761
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
msgstr "pointer van type `void *' gebruikt in aftrekking"
-#: c-typeck.c:2763
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
# 'unary' = 'unair'?
-#: c-typeck.c:2860
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr "argument van verkeerd type voor unaire plus"
-#: c-typeck.c:2871
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr "argument van verkeerd type voor unaire min"
-#: c-typeck.c:2883
+#: c-typeck.c:2768
#, fuzzy
msgid "ISO C does not support `~' for complex conjugation"
msgstr "ANSI C ondersteunt het `%c' formaat niet"
-#: c-typeck.c:2889
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "argument van verkeerd type voor bit-complement"
-#: c-typeck.c:2900
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "argument van verkeerd type voor abs"
# OK, ik geef het op: wat is hier een goede vertaling voor 'conjugation'?
-#: c-typeck.c:2912
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "argument van verkeerd type voor vervoeging"
-#: c-typeck.c:2926
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr "argument van verkeerd type voor unair uitroepingsteken"
-#: c-typeck.c:2969
+#: c-typeck.c:2852
#, fuzzy
msgid "ISO C does not support `++' and `--' on complex types"
msgstr "ANSI C ondersteunt het `%c' formaat niet"
# Wat is beter: 'incrementeren', 'incrementering', of 'increment'?
-#: c-typeck.c:2984 c-typeck.c:3016
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to increment"
msgstr "argument van verkeerd type voor incrementeren"
-#: c-typeck.c:2986 c-typeck.c:3018
+#: c-typeck.c:2869 c-typeck.c:2901
msgid "wrong type argument to decrement"
msgstr "argument van verkeerd type voor decrementeren"
-#: c-typeck.c:3007
+#: c-typeck.c:2890
msgid "increment of pointer to unknown structure"
msgstr "incrementeren van pointer naar onbekend structure"
-#: c-typeck.c:3009
+#: c-typeck.c:2892
msgid "decrement of pointer to unknown structure"
msgstr "decrementeren van pointer naar onbekend structure"
-#: c-typeck.c:3082
-msgid "invalid lvalue in increment"
-msgstr "ongeldige lvalue bij incrementeren"
-
-#: c-typeck.c:3083
-msgid "invalid lvalue in decrement"
-msgstr "ongeldige lvalue bij decrementeren"
-
-#: c-typeck.c:3091 cp/typeck.c:4594
-msgid "increment"
-msgstr "incrementeren"
-
-#: c-typeck.c:3091 cp/typeck.c:4594
-msgid "decrement"
-msgstr "decrementeren"
-
-#: c-typeck.c:3146
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
msgstr "ANSI C verbiedt het adres van een cast-expressie"
-#: c-typeck.c:3156
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
msgstr "ongeldige lvalue bij unaire `&'"
-#: c-typeck.c:3188
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure"
-#. condition met at compile time
-#: c-typeck.c:3297 c-typeck.c:4686 c-typeck.c:4702 c-typeck.c:4718
-#: ch/expr.c:1782 ch/parse.c:361 ch/typeck.c:160 cp/typeck.c:4787 gcc.c:4467
-#: java/expr.c:387 java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
-#: rtl-error.c:121 tradcif.y:533 tradcpp.c:4123
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr ""
-#: c-typeck.c:3358
+#: c-typeck.c:3241
#, fuzzy
msgid "ISO C forbids use of conditional expressions as lvalues"
msgstr "ANSI C verbiedt het gebruikt van voorwaardelijke expressies als lvalues"
-#: c-typeck.c:3361
+#: c-typeck.c:3244
#, fuzzy
msgid "ISO C forbids use of compound expressions as lvalues"
msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues"
-#: c-typeck.c:3364
+#: c-typeck.c:3247
#, fuzzy
msgid "ISO C forbids use of cast expressions as lvalues"
msgstr "ANSI C verbiedt het gebruik van cast-expressies als lvalues"
-#: c-typeck.c:3381
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr "%s van alleen-lezen lid `%s'"
-#: c-typeck.c:3385
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
msgstr "%s van alleen-lezen variabele `%s'"
-#: c-typeck.c:3388
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr "%s van alleen-lezen locatie"
-#: c-typeck.c:3406
+#: c-typeck.c:3290
#, fuzzy, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "kan adres van bitveld `%s' niet nemen"
-#: c-typeck.c:3434 ch/typeck.c:3676 ch/xtypeck.c:62
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "globale registervariabele `%s' gebruikt in geneste functie"
-#: c-typeck.c:3438 ch/typeck.c:3680 ch/xtypeck.c:66
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr "registervariabele `%s' gebruikt in geneste functie"
-#: c-typeck.c:3445 ch/typeck.c:3687 ch/xtypeck.c:73
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: c-typeck.c:3457 ch/typeck.c:3699 ch/xtypeck.c:85
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr "een object met een volatile veld kan niet in een register geplaatst worden"
-#: c-typeck.c:3461 ch/typeck.c:3703 ch/xtypeck.c:89
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "adres van registervariabele `%s' gevraagd"
# Of moet/mag 'boolean' hier vertaald worden?
-#: c-typeck.c:3569
+#: c-typeck.c:3453
#, fuzzy
msgid "signed and unsigned type in conditional expression"
msgstr "niet-boolean modus in voorwaardelijke expressie"
-#: c-typeck.c:3576
+#: c-typeck.c:3460
#, fuzzy
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ANSI C verbiedt voorwaardelijke expressies met maar één void-zijde"
-#: c-typeck.c:3592 c-typeck.c:3599
+#: c-typeck.c:3476 c-typeck.c:3483
#, fuzzy
msgid "ISO C forbids conditional expr between `void *' and function pointer"
msgstr "ANSI C verbiedt voorwaardelijke expressies tussen `void *' en een functiepointer"
-#: c-typeck.c:3605
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
msgstr "pointertypes in voorwaardelijke expressie komen niet overeen"
-#: c-typeck.c:3612 c-typeck.c:3622
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
msgstr "types in voorwaardelijke expressie komen niet overeen (pointer/integer)"
-#: c-typeck.c:3636
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: c-typeck.c:3707 cp/typeck.c:5044
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr "linker operand van comma-expressie heeft geen effect"
-#: c-typeck.c:3746
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr "cast geeft array-type op"
-#: c-typeck.c:3752
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr "cast geeft functie-type op"
-#: c-typeck.c:3762
+#: c-typeck.c:3651
#, fuzzy
msgid "ISO C forbids casting nonscalar to the same type"
msgstr "ANSI C verbiedt het casten van een niet-scalair naar hetzelfde type"
-#: c-typeck.c:3781
+#: c-typeck.c:3670
#, fuzzy
msgid "ISO C forbids casts to union type"
msgstr "ANSI C verbiedt casts naar een union-type"
-#: c-typeck.c:3797
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
msgstr "cast naar union-type van een type dat geen deel uitmaakt van de union"
+#: c-typeck.c:3736
+#, fuzzy
+msgid "cast adds new qualifiers to function type"
+msgstr "cast geeft functie-type op"
+
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3840
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:3855
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
msgstr "cast verhoogt het benodigde alignment van het doeltype"
-#: c-typeck.c:3861 cp/typeck.c:5458
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr "cast van pointer naar integer met andere grootte"
# 'A function type' of 'THE function type'?
-#: c-typeck.c:3866
+#: c-typeck.c:3767
msgid "cast does not match function type"
msgstr "cast komt niet overeen met het functietype"
-#: c-typeck.c:3873 cp/typeck.c:5465
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
msgstr "cast naar pointer van integer met andere grootte"
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:4031
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "ongeldige lvalue in toewijzing"
#. Convert new value to destination type.
-#: c-typeck.c:4040 c-typeck.c:4065 c-typeck.c:4082 ch/typeck.c:2334
-#: cp/typeck.c:5575 cp/typeck.c:5726
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "toewijzing"
-#: c-typeck.c:4249 c-typeck.c:4316
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr ""
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr "%s maakt gekwalificeerde functiepointer van een niet gekwalificeerde"
-#: c-typeck.c:4253 c-typeck.c:4296
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr "%s laat qualifiers van doeltype van pointer vallen"
-#: c-typeck.c:4259
+#: c-typeck.c:4184
#, fuzzy
msgid "ISO C prohibits argument conversion to union type"
msgstr "ANSI C verbiedt conversie van argumenten naar union type"
-#: c-typeck.c:4288
+#: c-typeck.c:4213
#, fuzzy, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
msgstr "ANSI C verbiedt %s tussen functiepointer en `void *'"
# 'signedness' = 'signed-heid'?
-#: c-typeck.c:4305
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr "doelen van pointer in %s verschillen in signedness"
-#: c-typeck.c:4321
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr "%s van incompatibel pointertype"
-#: c-typeck.c:4337
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "ongeldig gebruik van array die geen lvalue is"
+
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
msgstr "%s maakt pointer van integer zonder een cast"
-#: c-typeck.c:4345
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr "%s maakt integer van pointer zonder een cast"
-#: c-typeck.c:4359 c-typeck.c:4362
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "incompatibel type voor argument %d van `%s'"
-#: c-typeck.c:4366
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr "incompatibel type voor argument %d van onrechtstreekse functie-oproep"
-#: c-typeck.c:4370
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "incompatibele types bij %s"
#. Function name is known; supply it.
-#: c-typeck.c:4401
+#: c-typeck.c:4358
+#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "doorgeven van argument %d van `%s'"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "doorgeven van argument %d van pointer naar functie"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
msgstr "doorgeven van argument %d van `%s'"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4411
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
msgstr "doorgeven van argument %d van pointer naar functie"
-#: c-typeck.c:4478
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
msgstr "beginwaarde voor static variabele is geen constante"
-#: c-typeck.c:4484
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
msgstr "beginwaarde voor static variabele gebruikt ingewikkelde berekening"
-#: c-typeck.c:4492
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
msgstr "aggregaat-beginwaarde is geen constante"
-#: c-typeck.c:4494
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
msgstr "aggregaat-beginwaarde gebruikt ingewikkelde berekening"
-#: c-typeck.c:4501
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
-#: c-typeck.c:4689 c-typeck.c:4705 c-typeck.c:4721
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
msgstr "(dicht bij initialisatie van `%s')"
-#: c-typeck.c:4773 cp/typeck2.c:531
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr "char-array heeft wide string als beginwaarde"
-#: c-typeck.c:4780 cp/typeck2.c:538
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr "int-array heeft niet-wide string als beginwaarde"
-#: c-typeck.c:4798 cp/typeck2.c:554
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr "beginwaarde-string voor array van chars is te lang"
-#: c-typeck.c:4834
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr "array krijgt niet-constante array-expressie als beginwaarde"
-#: c-typeck.c:4851 c-typeck.c:4853 c-typeck.c:4869 c-typeck.c:4890
-#: c-typeck.c:6311
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr "beginwaarde-element is niet constant"
-#: c-typeck.c:4885
+#: c-typeck.c:4873
msgid "initialization"
msgstr "initialisatie"
-#: c-typeck.c:4896 c-typeck.c:6316
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr "beginwaarde-element kan niet berekend worden tijdens het laden"
-#: c-typeck.c:4933 c-typeck.c:4949 cp/typeck2.c:631
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
msgstr "ongeldige beginwaarde"
-#: c-typeck.c:5434
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
msgstr "extra accolade-groep aan einde van beginwaarde"
-#: c-typeck.c:5454
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr "accolades ontbreken rond beginwaarde"
-#: c-typeck.c:5506
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr "accolades rond scalaire beginwaarde"
-#: c-typeck.c:5554
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:5556
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:5587
+#: c-typeck.c:5554
msgid "missing initializer"
msgstr "beginwaarde ontbreekt"
-#: c-typeck.c:5612
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr "lege scalaire beginwaarde"
-#: c-typeck.c:5617
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr "extra elementen in scalaire beginwaarde"
-#: c-typeck.c:5703
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
msgstr ""
-#: c-typeck.c:5724 c-typeck.c:5795
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr "array-index in beginwaarde van niet-array"
-#: c-typeck.c:5729 c-typeck.c:5847
+#: c-typeck.c:5697 c-typeck.c:5817
#, fuzzy
msgid "field name not in record or union initializer"
msgstr "overtollige elementen in beginwaarde van union"
-#: c-typeck.c:5791 c-typeck.c:5793
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr "niet-constante array-index in beginwaarde"
-#: c-typeck.c:5798
+#: c-typeck.c:5765 c-typeck.c:5768
#, fuzzy
msgid "array index in initializer exceeds array bounds"
msgstr "array-index in beginwaarde van niet-array"
-#: c-typeck.c:5809
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr "leeg indexbereik in beginwaarde"
-#: c-typeck.c:5818
+#: c-typeck.c:5788
#, fuzzy
msgid "array index range in initializer exceeds array bounds"
msgstr "leeg indexbereik in beginwaarde"
-#: c-typeck.c:5859
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr "onbekend veld `%s' opgegeven in beginwaarde"
-#: c-typeck.c:5896 c-typeck.c:5917 c-typeck.c:6379
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:6589
+#: c-typeck.c:6558
#, fuzzy
msgid "excess elements in char array initializer"
msgstr "overtollige elementen in beginwaarde van array"
-#: c-typeck.c:6596 c-typeck.c:6642
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr "overtollige elementen in beginwaarde van struct"
-#: c-typeck.c:6709
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr "overtollige elementen in beginwaarde van union"
-#: c-typeck.c:6730
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6793
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr "overtollige elementen in beginwaarde van array"
-#: c-typeck.c:6819
+#: c-typeck.c:6806
+#, fuzzy
+msgid "excess elements in vector initializer"
+msgstr "overtollige elementen in beginwaarde van scalair"
+
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr "overtollige elementen in beginwaarde van scalair"
-#: c-typeck.c:6930 ch/parse.c:2026
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr "asm-template is geen stringconstante"
-#: c-typeck.c:6962
+#: c-typeck.c:6967
#, fuzzy
msgid "invalid lvalue in asm statement"
msgstr "ongeldige lvalue in toewijzing"
-#: c-typeck.c:7033
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr "aanpassing door `asm'"
-#: c-typeck.c:7052 cp/typeck.c:6576
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr "als `noreturn' gedeclareerde functie bevat een `return' statement"
-#: c-typeck.c:7059
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft"
-#: c-typeck.c:7065
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr "`return' met waarde in een functie die void teruggeeft"
-#: c-typeck.c:7069
+#: c-typeck.c:7078
msgid "return"
msgstr "return"
-#: c-typeck.c:7120
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr "functie geeft adres van lokale variabele terug"
-#: c-typeck.c:7177 cp/semantics.c:525
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "switch-waarde is geen integer"
-#: c-typeck.c:7187
+#: c-typeck.c:7196
#, fuzzy
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr "`long' switch-expressie wordt in ANSI C niet naar `int' geconverteerd"
-#: c-typeck.c:7222 cp/decl.c:5230
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "case-label niet in een switch-statement"
-#: c-typeck.c:7224 cp/decl.c:5235
+#: c-typeck.c:7233 cp/decl.c:5528
#, fuzzy
msgid "`default' label not within a switch statement"
msgstr "default-label niet in een switch-statement"
-#: calls.c:1901
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr "inline maken mislukt in oproep van `%s'"
-#: calls.c:1902 calls.c:2208
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr "van hieruit opgeroepen"
-#: calls.c:2207
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr "kan oproep van `%s' niet inline maken"
# dit klinkt niet al te best
-#: calls.c:2237
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr "functie-oproep heeft geaggregeerde waarde"
-#: calls.c:4539
-msgid "variable offset is passed partially in stack and in reg"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr ""
+
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr ""
+
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr ""
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr ""
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr ""
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: calls.c:4541
-msgid "variable size is passed partially in stack and in reg"
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
msgstr ""
-#: cfgrtl.c:1578
+#: cfgrtl.c:1800
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1592
+#: cfgrtl.c:1814
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: cfgrtl.c:1604
+#: cfgrtl.c:1826
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: cfgrtl.c:1623
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr ""
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr ""
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: cfgrtl.c:1642
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr ""
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1657
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr ""
-#: cfgrtl.c:1659
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
msgstr ""
-#: cfgrtl.c:1666
+#: cfgrtl.c:1935
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: cfgrtl.c:1690
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr ""
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr ""
+
+#: cfgrtl.c:1975
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "types in voorwaardelijke expressie komen niet overeen"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr ""
-#: cfgrtl.c:1700
+#: cfgrtl.c:2014
#, c-format
msgid "basic block %d pred edge is corrupted"
msgstr ""
-#: cfgrtl.c:1717
+#: cfgrtl.c:2031
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: cfgrtl.c:1721
+#: cfgrtl.c:2035
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: cfgrtl.c:1735 cfgrtl.c:1745
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: cfgrtl.c:1758
+#: cfgrtl.c:2072
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: cfgrtl.c:1770
+#: cfgrtl.c:2084
#, c-format
msgid "in basic block %d:"
msgstr ""
-#: cfgrtl.c:1771
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
msgstr ""
-#: cfgrtl.c:1790
+#: cfgrtl.c:2104
#, c-format
msgid "basic block %i edge lists are corrupted"
msgstr ""
-#: cfgrtl.c:1804
+#: cfgrtl.c:2119
msgid "basic blocks not numbered consecutively"
msgstr ""
-#: cfgrtl.c:1829
+#: cfgrtl.c:2144
msgid "insn outside basic block"
msgstr ""
-#: cfgrtl.c:1837
+#: cfgrtl.c:2152
#, fuzzy
msgid "return not followed by barrier"
msgstr "`#' gevolgd door een integer"
-#: cfgrtl.c:1842
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr ""
-#: cfgrtl.c:1846
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
msgstr ""
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr "interne fout"
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr "geen argumenten"
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 versie %s"
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d constructor(s) gevonden\n"
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d destructor(s) gevonden\n"
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d frame-tabel(len) gevonden\n"
-#: collect2.c:1514
+#: collect2.c:1508
#, fuzzy, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s beëindigd met signaal %d [%s]"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr "%s gaf exit-status %d terug"
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr "[kan %s niet vinden]"
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr "kan %s niet vinden"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr "bij het herleiden van standaarduitvoer: %s"
-#: collect2.c:1633
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s wordt verlaten]\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
-msgid "\nwrite_c_file - output name is %s, prefix is %s\n"
-msgstr "\nwrite_c_file - uitvoernaam is %s, prefix is %s\n"
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+"\n"
+"write_c_file - uitvoernaam is %s, prefix is %s\n"
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr "kan `nm' niet vinden"
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr "pipe"
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574
-#: collect2.c:2577 collect2.c:2590
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr "init-functie gevonden in object %s"
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr "fini-functie gevonden in object %s"
-#: collect2.c:2223 collect2.c:2629
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr "kan bestand '%s' niet openen"
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr "kan bestand '%s' niet stat'en"
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr "kan bestand '%s' niet mmap'en"
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
msgstr "niet gevonden\n"
# 'dependency'? 'afhankelijkheid' klinkt niet echt goed...
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr "dynamische dependency %s niet gevonden"
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr "slecht magisch getal in bestand '%s'"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "dynamische dependencies.\n"
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr "kan `ldd' niet vinden"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr "execv %s"
-
-#: collect2.c:2593
-msgid "\nldd output with constructors/destructors.\n"
-msgstr "\nuitvoer van ldd met constructors/destructors.\n"
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+"\n"
+"uitvoer van ldd met constructors/destructors.\n"
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "kan dynamische dependency '%s' niet openen"
-#: collect2.c:2734
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: geen COFF-bestand"
-#: collect2.c:2853
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: kan niet openen als COFF-bestand"
@@ -3730,140 +3982,154 @@ msgstr "%s: kan niet openen als COFF-bestand"
# dikwijls 'bibliotheek' zien gebruiken.
# De vertaalde boodschappen voor make gebruiken dat op het ogenblik wél, maar
# ik ben van plan daar verandering in te brengen.
-#: collect2.c:2909
+#: collect2.c:2901
#, fuzzy, c-format
msgid "library lib%s not found"
msgstr "Library lib%s niet gevonden"
-#: collect2.c:3038
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "open %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
msgstr "incompatibiliteiten tussen objectbestand & verwachte waarden"
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
-msgid "\nProcessing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
-msgstr "\nSymbooltabel #%d wordt verwerkt (offset = 0x%.8lx, soort = %s)\n"
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr ""
+"\n"
+"Symbooltabel #%d wordt verwerkt (offset = 0x%.8lx, soort = %s)\n"
-#: collect2.c:3143
+#: collect2.c:3133
msgid "string section missing"
msgstr "string-sectie ontbreekt"
-#: collect2.c:3146
+#: collect2.c:3136
msgid "section pointer missing"
msgstr "sectie-pointer ontbreekt"
-#: collect2.c:3194
+#: collect2.c:3184
msgid "no symbol table found"
msgstr "geen symbooltabel gevonden"
-#: collect2.c:3207
+#: collect2.c:3197
msgid "no cmd_strings found"
msgstr "geen cmd_strings gevonden"
-#: collect2.c:3219
-msgid "\nUpdating header and load commands.\n\n"
-msgstr "\nHoofding en laadcommandos worden aangepast.\n\n"
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr ""
+"\n"
+"Hoofding en laadcommandos worden aangepast.\n"
+"\n"
-#: collect2.c:3226
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr "laadcommando-kaart, %d commando's, nieuwe grootte %ld.\n"
-#: collect2.c:3257
-msgid "writing load commands.\n\n"
-msgstr "laadcommandos worden geschreven.\n\n"
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr ""
+"laadcommandos worden geschreven.\n"
+"\n"
-#: collect2.c:3277
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "close %s"
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr "%s-functie, regio %d, offset = %ld (0x%.8lx)\n"
-#: collect2.c:3482
+#: collect2.c:3472
msgid "bad magic number"
msgstr "slecht magisch getal"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
msgstr "slechte versie van hoofding"
# trekt op nie veel
-#: collect2.c:3484
+#: collect2.c:3474
msgid "bad raw header version"
msgstr "slechte versie van rauwe hoofding"
-#: collect2.c:3485
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "buffer voor rauwe hoofding te klein"
-#: collect2.c:3486
+#: collect2.c:3476
msgid "old raw header file"
msgstr "oud bestand met rauwe hoofding"
-#: collect2.c:3487
+#: collect2.c:3477
msgid "unsupported version"
msgstr "niet-ondersteunde versie"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr "onbekende returnwaarde %d voor {de,en}code_mach_o_hdr"
-#: collect2.c:3509
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "lseek %s 0"
-#: collect2.c:3550
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "%ld bytes gelezen (%ld verwacht) van %s"
-#: collect2.c:3574
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "msync %s"
-#: collect2.c:3581
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "munmap %s"
-#: collect2.c:3598
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "%ld bytes geschreven (%ld verwacht) naar %s"
-#: combine.c:12639
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3874,7 +4140,7 @@ msgstr ""
";; nodig), %d successen.\n"
"\n"
-#: combine.c:12649
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3885,1076 +4151,965 @@ msgstr ""
";; Combiner-totalen: %d pogingen, %d vervangingen (%d hadden nieuwe ruimte\n"
";; nodig), %d successen.\n"
-#: convert.c:67
+#: convert.c:69
msgid "cannot convert to a pointer type"
msgstr ""
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
msgstr ""
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
msgstr ""
-#: convert.c:130
+#: convert.c:132
msgid "conversion to incomplete type"
msgstr ""
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
#, fuzzy
msgid "can't convert between vector values of different size"
msgstr "cast van pointer naar integer met andere grootte"
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
msgstr ""
-#: convert.c:448 f/com.c:1073
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
msgstr ""
-#: convert.c:452 f/com.c:1075
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
msgstr ""
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: convert.c:476
+#: convert.c:500
#, fuzzy
msgid "can't convert value to a vector"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cpperror.c:125
+# Dit zou misschien beter 'warning' blijven
+#: cpperror.c:113
+msgid "warning: "
+msgstr "let op: "
+
+#: cpperror.c:115
#, fuzzy
msgid "internal error: "
msgstr "interne fout"
-# Dit zou misschien beter 'warning' blijven
-#: cpperror.c:132 tradcpp.c:4679
-msgid "warning: "
-msgstr "let op: "
+#: cpperror.c:189
+#, fuzzy
+msgid "stdout"
+msgstr "struct"
-#: cpperror.c:209 cpperror.c:299 cppfiles.c:691 gcc.c:6318 tradcpp.c:4717
+#: cpperror.c:191 gcc.c:6428
#, c-format
msgid "%s: %s"
msgstr ""
-#: cppexp.c:154
+#: cppexp.c:199
#, fuzzy
-msgid "floating point numbers are not valid in #if"
-msgstr "Floating-point getallen zijn niet toegestaan in #if-expressies"
+msgid "too many decimal points in number"
+msgstr "teveel `l'en in integerconstante"
-#: cppexp.c:176
-msgid "traditional C rejects the `U' suffix"
-msgstr ""
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "twee `u's in integerconstante"
-#: cppexp.c:179
+#: cppexp.c:225
#, fuzzy
-msgid "too many 'l' suffixes in integer constant"
-msgstr "teveel `l'en in integerconstante"
+msgid "use of C99 hexadecimal floating constant"
+msgstr "hexadecimale floating-point constante heeft geen exponent"
-#: cppexp.c:183
-msgid "integer constant contains digits beyond the radix"
-msgstr "integerconstante bevat cijfers buiten de basis"
+#: cppexp.c:234
+#, fuzzy
+msgid "exponent has no digits"
+msgstr "exponent van floating-point constante heeft geen cijfers"
-#: cppexp.c:186
-msgid "integer constant out of range"
-msgstr "integerconstante buiten bereik"
+#: cppexp.c:241
+#, fuzzy
+msgid "hexadecimal floating constants require an exponent"
+msgstr "hexadecimale floating-point constante heeft geen exponent"
-#: cppexp.c:192
-msgid "integer constant is so large that it is unsigned"
-msgstr "integerconstante is zo groot dat hij unsigned is"
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "misvormde floating-point constante"
+
+#: cppexp.c:257 cppexp.c:282
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
-#: cppexp.c:201
+#: cppexp.c:268
#, fuzzy, c-format
-msgid "invalid suffix '%.*s' on integer constant"
+msgid "invalid suffix \"%.*s\" on integer constant"
msgstr "twee `u's in integerconstante"
-#: cppexp.c:234
+#: cppexp.c:289
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "ANSI C verbiedt long long integerconstantes"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: cppexp.c:383
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "integerconstante is zo groot dat hij unsigned is"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "integerconstante is zo groot dat hij unsigned is"
+
+#: cppexp.c:482
#, fuzzy
msgid "missing ')' after \"defined\""
msgstr "witruimte ontbreekt na `#define %.*s'"
-#: cppexp.c:240
+#: cppexp.c:489
#, fuzzy
msgid "operator \"defined\" requires an identifier"
msgstr "`defined' zonder een naam"
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr ""
-#: cppexp.c:305
+#: cppexp.c:545
#, fuzzy
-msgid "string constants are not valid in #if"
-msgstr "stringconstantes zijn niet toegestaan in #if-expressies"
-
-#: cppexp.c:309
-#, fuzzy, c-format
-msgid "invalid character '%c' in #if"
-msgstr "ongeldig karakter in naam van macro-parameter"
+msgid "floating constant in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
-#: cppexp.c:311
-#, fuzzy, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "ongeldig karakter in naam van macro-parameter"
+#: cppexp.c:551
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
-#: cppexp.c:328
+#: cppexp.c:596
#, fuzzy, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: cppexp.c:339
+#: cppexp.c:604
#, fuzzy, c-format
msgid "\"%s\" is not defined"
msgstr "`%.*s' is niet gedefinieerd"
-#: cppexp.c:365
+# 'whitespace' -> 'witruimte'?
+#: cppexp.c:737 cppexp.c:772
#, fuzzy, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "stringconstantes zijn niet toegestaan in #if-expressies"
+msgid "missing binary operator before token \"%s\""
+msgstr "ontbrekende witruimte na getal `%s'"
-#: cppexp.c:380
-msgid "integer overflow in preprocessor expression"
-msgstr "integer-overflow in preprocessor-expressie"
+#: cppexp.c:756
+#, fuzzy, c-format
+msgid "invalid character '%c' in #if"
+msgstr "ongeldig karakter in naam van macro-parameter"
-#: cppexp.c:610
-#, fuzzy
-msgid "missing binary operator"
-msgstr "beginwaarde ontbreekt"
+#: cppexp.c:758
+#, fuzzy, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "ongeldig karakter in naam van macro-parameter"
-#: cppexp.c:645
+#: cppexp.c:763
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "stringconstantes zijn niet toegestaan in #if-expressies"
+
+#: cppexp.c:782
#, fuzzy
msgid "void expression between '(' and ')'"
msgstr "ongeldige expressie als operand"
-#: cppexp.c:647
+#: cppexp.c:785
+#, fuzzy
+msgid "#if with no expression"
+msgstr "modi in %s expressie komen niet overeen"
+
+#: cppexp.c:787
#, fuzzy, c-format
msgid "operator '%s' has no right operand"
msgstr "iterator `%s' is van een niet-integraal type"
-#: cppexp.c:659
-#, fuzzy, c-format
-msgid "impossible operator '%s'"
-msgstr "incompatibele operands voor %s"
-
-#: cppexp.c:735 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
-msgstr "deling door nul in `#if'"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr ""
-#: cppexp.c:769
+#: cppexp.c:840
#, fuzzy
-msgid "comma operator in operand of #if"
-msgstr "comma-operator in operand van `#if'"
-
-#: cppexp.c:774
-msgid "syntax error '?' without following ':'"
-msgstr ""
+msgid "unbalanced stack in #if"
+msgstr "niet-gebalanceerde `#endif'"
-#: cppexp.c:777
-msgid "syntax error ':' without preceding '?'"
-msgstr ""
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "incompatibele operands voor %s"
-#: cppexp.c:785
+#: cppexp.c:954
#, fuzzy
msgid "missing ')' in expression"
msgstr "ontbrekende index-expressie"
-#: cppexp.c:792
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr ""
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
+
+#: cppexp.c:990
#, fuzzy
msgid "missing '(' in expression"
msgstr "ontbrekende index-expressie"
-# 'whitespace' -> 'witruimte'?
-#: cppexp.c:818
-#, fuzzy, c-format
-msgid "missing binary operator before '%s'"
-msgstr "ontbrekende witruimte na getal `%s'"
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
-#: cppexp.c:824
-#, fuzzy, c-format
-msgid "operator '%s' has no left operand"
-msgstr "parameter `%s' heeft een onvolledig type"
+#: cppexp.c:1031
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
-#: cppexp.c:862
+#: cppexp.c:1414
#, fuzzy
-msgid "unbalanced stack in #if"
-msgstr "niet-gebalanceerde `#endif'"
+msgid "comma operator in operand of #if"
+msgstr "comma-operator in operand van `#if'"
-#: cppexp.c:865
-#, fuzzy
-msgid "#if with no expression"
-msgstr "modi in %s expressie komen niet overeen"
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "deling door nul in `#if'"
-#: cppfiles.c:395
+#: cppfiles.c:411
#, fuzzy, c-format
msgid "%s is too large"
msgstr "bestand `%s' is te groot"
-#: cppfiles.c:426
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
msgstr ""
-#: cppfiles.c:440
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr ""
-#: cppfiles.c:566
+#: cppfiles.c:594
#, fuzzy, c-format
msgid "no include path in which to find %s"
msgstr "Geen include-pad waarin %s kan gevonden worden"
-#: cppfiles.c:639
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr ""
-#: cppfiles.c:1029
+#: cppfiles.c:1014
msgid "absolute file name in remap_filename"
msgstr ""
-#: cppinit.c:230
+#: cppinit.c:224
#, fuzzy, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, fuzzy, c-format
msgid "%s: Not a directory"
msgstr "%s: %s: Is geen folder"
-#: cppinit.c:284
+#: cppinit.c:287
#, fuzzy, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: cppinit.c:312
-#, c-format
-msgid "changing search order for system directory \"%s\""
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
msgstr ""
-#: cppinit.c:316
+#: cppinit.c:891
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "`defined' zonder een naam"
+
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
msgstr ""
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
msgstr ""
-#: cppinit.c:927
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
msgstr "Zoektocht voor #include \"...\" begint hier:\n"
-#: cppinit.c:931
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
msgstr "Zoektocht voor #include <...> begint hier:\n"
-#: cppinit.c:934
+#: cppinit.c:979
msgid "End of search list.\n"
msgstr "Einde van opzoekingslijst.\n"
-#: cppinit.c:1001
+#: cppinit.c:1057
msgid "<built-in>"
msgstr ""
-#: cppinit.c:1003
+#: cppinit.c:1059
msgid "<command line>"
msgstr ""
-#: cppinit.c:1099 tradcpp.c:968 tradcpp.c:978 tradcpp.c:1069
-msgid "I/O error on output"
-msgstr "I/O-fout op uitvoer"
-
+# Assertie? Dat moet beter kunnen!
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1147
-#, fuzzy, c-format
-msgid "argument missing after %s"
-msgstr "Bestandsnaam ontbreekt na %s optie"
-
-# Assertie? Dat moet beter kunnen!
-#: cppinit.c:1148
+#: cppinit.c:1164
#, fuzzy, c-format
msgid "assertion missing after %s"
msgstr "Assertie ontbreekt na -A optie"
-#: cppinit.c:1149
+#: cppinit.c:1165
#, fuzzy, c-format
msgid "directory name missing after %s"
msgstr "Foldernaam ontbreekt na `%s' optie"
-#: cppinit.c:1150
+#: cppinit.c:1166
#, fuzzy, c-format
msgid "file name missing after %s"
msgstr "Bestandsnaam ontbreekt na %s optie"
-#: cppinit.c:1151
+#: cppinit.c:1167
#, fuzzy, c-format
msgid "macro name missing after %s"
msgstr "Macro-naam ontbreekt na -U optie"
-#: cppinit.c:1152
+#: cppinit.c:1168
#, fuzzy, c-format
msgid "path name missing after %s"
msgstr "Bestandsnaam ontbreekt na %s optie"
-#: cppinit.c:1153
-#, fuzzy, c-format
-msgid "number missing after %s"
-msgstr "Bestandsnaam ontbreekt na %s optie"
-
-#: cppinit.c:1154
-#, fuzzy, c-format
-msgid "target missing after %s"
-msgstr "Bestandsnaam ontbreekt na %s optie"
-
-#: cppinit.c:1338
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr ""
-
-#: cppinit.c:1522 tradcpp.c:603
-#, fuzzy
-msgid "output filename specified twice"
-msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
-
-#: cppinit.c:1634
+#: cppinit.c:1353
msgid "-I- specified twice"
msgstr "-I- twee keer opgegeven"
-#: cppinit.c:1773
-#, fuzzy, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP versie %s"
-
-#: cppinit.c:1814 tradcpp.c:792
-#, fuzzy
-msgid "you must additionally specify either -M or -MM"
-msgstr "-MG moet samen met ofwel -M, ofwel -MM gebruikt worden"
-
-#: cppinit.c:1877
-#, c-format
-msgid "Usage: %s [switches] input output\n"
-msgstr ""
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1880
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-
-#: cppinit.c:1889
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-
-#: cppinit.c:1898
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-
-#: cppinit.c:1905
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-
-#: cppinit.c:1911
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-
-#: cppinit.c:1921
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-
-#: cppinit.c:1929
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-
-#: cppinit.c:1937
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-
-#: cppinit.c:1943
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-
-#: cppinit.c:1948
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question> (<answer>) Assert the <answer> to <question>\n"
-" -A-<question> (<answer>) Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-
-#: cppinit.c:1956
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-
-#: cppinit.c:1964
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files.\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-
-#: cpplex.c:154
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr ""
-#: cpplex.c:162
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr ""
-#: cpplex.c:218
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr ""
-#: cpplex.c:224
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
msgstr ""
-#: cpplex.c:290
+#: cpplex.c:287 cpptrad.c:199
#, fuzzy
msgid "\"/*\" within comment"
msgstr "`/*' binnen commentaar"
-#: cpplex.c:373
+#: cpplex.c:395
#, fuzzy
msgid "null character(s) ignored"
msgstr "%s bij nulkarakter"
-#: cpplex.c:380
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
msgstr ""
-#: cpplex.c:447
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr ""
-#: cpplex.c:455
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
# Wat is een correcte vertaling voor 'identifier'? Ik kies voor 'naam'.
-#: cpplex.c:508
+#: cpplex.c:555
#, fuzzy
-msgid "'$' character(s) in identifier"
+msgid "'$' character(s) in identifier or number"
msgstr "`$' in naam"
-#: cpplex.c:589
+#: cpplex.c:698
#, fuzzy, c-format
msgid "missing terminating %c character"
msgstr "niet-beëindigde string- of karakterconstante"
-#: cpplex.c:594
-#, fuzzy
-msgid "possible start of unterminated string literal"
-msgstr "mogelijk echte begin van niet-beëindigde constante"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr ""
-
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr ""
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
#, fuzzy
msgid "no newline at end of file"
msgstr "niet-herkende tekst op einde van #line"
-#: cpplex.c:1034 tradcpp.c:1456
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr "niet-beëindigde commentaar"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
msgstr ""
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr ""
-#: cpplex.c:1052
+#: cpplex.c:1110
#, fuzzy
msgid "multi-line comment"
msgstr "'//'-commentaar op meerdere lijnen"
-#: cpplex.c:1367
+#: cpplex.c:1425
#, fuzzy, c-format
msgid "unknown string token %s\n"
msgstr "onbekende machine-modus `%s'"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, fuzzy, c-format
msgid "unspellable token %s"
msgstr "kan bestand '%s' niet openen"
-#: cpplex.c:1635
+#: cpplex.c:1695
#, fuzzy, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
+msgid "the meaning of '\\%c' is different in traditional C"
msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: cpplex.c:1641
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr ""
-#: cpplex.c:1655
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr ""
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr ""
-#: cpplex.c:1677
+#: cpplex.c:1737
#, fuzzy
msgid "universal-character-name out of range"
msgstr "case-waarde buiten bereik"
-#: cpplex.c:1722
+#: cpplex.c:1791
#, fuzzy
-msgid "the meaning of '\\a' varies with -traditional"
+msgid "the meaning of '\\a' is different in traditional C"
msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: cpplex.c:1729
+#: cpplex.c:1798
#, fuzzy, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "niet-ANSI-standaard escape sequence `\\%c'"
-#: cpplex.c:1739
+#: cpplex.c:1809
#, fuzzy
-msgid "the meaning of '\\x' varies with -traditional"
+msgid "the meaning of '\\x' is different in traditional C"
msgstr "de betekenis van `\\x' varieert naargelang -traditional al dan niet gebruikt wordt"
-#: cpplex.c:1758 f/lex.c:610
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
-#: cpplex.c:1762
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr "hexadecimale escape sequence buiten bereik"
-#: cpplex.c:1786
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr "octale escape sequence buiten bereik"
-#: cpplex.c:1801
+#: cpplex.c:1874
#, fuzzy, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "onbekende escape sequence `\\%c'"
-#: cpplex.c:1803
+#: cpplex.c:1877
#, fuzzy, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "onbekende escape sequence `\\%c'"
# "escape-sequentie"?! Maar wat is er beter?
-#: cpplex.c:1807
-msgid "escape sequence out of range for character"
+#: cpplex.c:1882
+#, fuzzy
+msgid "escape sequence out of range for its type"
msgstr "escape-sequentie buiten bereik voor karakter"
-#: cpplex.c:1897
+#: cpplex.c:1973
msgid "empty character constant"
msgstr "lege karakterconstante"
-#: cpplex.c:1901
-msgid "character constant too long"
+#: cpplex.c:1983
+#, fuzzy
+msgid "character constant too long for its type"
msgstr "karakterconstante te lang"
-#: cpplex.c:1904
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr "karakterconstante met meer dan één karakter"
# OK, OK... Dit hoort thuis in lang nl@be, niet nl
-#: cpplib.c:221
+#: cpplib.c:225
#, fuzzy, c-format
msgid "extra tokens at end of #%s directive"
msgstr "brol aan einde van `#line'-commando"
-#: cpplib.c:275
-msgid "style of line directive is a GCC extension"
-msgstr ""
-
-#: cpplib.c:283
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr ""
-#: cpplib.c:294
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr ""
-#: cpplib.c:297
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr ""
-#: cpplib.c:301
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr ""
-#: cpplib.c:383
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: cpplib.c:378
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: cpplib.c:428
#, fuzzy, c-format
msgid "invalid preprocessing directive #%s"
msgstr "ongeldig preprocessing-commando"
-#: cpplib.c:438
-#, c-format
-msgid "no macro name given in #%s directive"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
msgstr ""
-#: cpplib.c:442
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
-#: cpplib.c:445
-msgid "macro names must be identifiers"
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
msgstr ""
-#: cpplib.c:456
-#, fuzzy, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "`%s' kan niet statisch gealloceerd worden"
+#: cpplib.c:512
+msgid "macro names must be identifiers"
+msgstr ""
# is ongedefinieerd beter? ik denk van nie
-#: cpplib.c:494
+#: cpplib.c:552
#, fuzzy, c-format
msgid "undefining \"%s\""
msgstr "`%s' wordt geondefinieerd"
-#: cpplib.c:540
+#: cpplib.c:598
#, fuzzy
msgid "missing terminating > character"
msgstr "niet-beëindigde string- of karakterconstante"
-#: cpplib.c:575
+#: cpplib.c:637
#, fuzzy, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "`#%s' verwacht \"BESTAND\" of <BESTAND>"
-#: cpplib.c:586
+#: cpplib.c:648
#, fuzzy, c-format
msgid "empty file name in #%s"
msgstr "lege bestandsnaam in `#%s'"
-#: cpplib.c:605
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr ""
-#: cpplib.c:612
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr ""
-#: cpplib.c:620
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr ""
-#: cpplib.c:677
+#: cpplib.c:739
#, fuzzy, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "`#line'-commando in slecht formaat"
-#: cpplib.c:732
+#: cpplib.c:814
#, fuzzy, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "switch-waarde is geen integer"
-#: cpplib.c:739
+#: cpplib.c:820
#, fuzzy
msgid "line number out of range"
msgstr "case-waarde buiten bereik"
-#: cpplib.c:777
+#: cpplib.c:831 cpplib.c:902
#, fuzzy, c-format
msgid "\"%s\" is not a valid filename"
msgstr "-fPIC is niet geldig met -mcoff"
-#: cpplib.c:846
+#: cpplib.c:866
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "switch-waarde is geen integer"
+
+#: cpplib.c:973
#, fuzzy
msgid "invalid #ident directive"
msgstr "`#line'-commando in slecht formaat"
-#: cpplib.c:934
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: cpplib.c:937
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
msgstr ""
-#: cpplib.c:939
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
msgstr ""
-#: cpplib.c:1014
+#: cpplib.c:1143
#, fuzzy
msgid "#pragma once is obsolete"
msgstr "`#pragma once' is verouderd"
-#: cpplib.c:1017
+#: cpplib.c:1146
#, fuzzy
msgid "#pragma once in main file"
msgstr "`#pragma once' is verouderd"
-#: cpplib.c:1041
+#: cpplib.c:1170
#, fuzzy
msgid "invalid #pragma GCC poison directive"
msgstr "ongeldig preprocessing-commando"
-#: cpplib.c:1050
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr ""
-#: cpplib.c:1070
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: cpplib.c:1095
+#: cpplib.c:1226
#, fuzzy, c-format
msgid "cannot find source %s"
msgstr "[kan %s niet vinden]"
-#: cpplib.c:1099
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr ""
-#: cpplib.c:1174
+#: cpplib.c:1346
#, fuzzy
msgid "_Pragma takes a parenthesized string literal"
msgstr "Onbeëindigde stringconstante"
-#: cpplib.c:1273
+#: cpplib.c:1429
msgid "#else without #if"
msgstr ""
-#: cpplib.c:1278 tradcpp.c:3860
+#: cpplib.c:1434
#, fuzzy
msgid "#else after #else"
msgstr "`#else' na `#else'"
-#: cpplib.c:1280 cpplib.c:1314
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
msgstr ""
-#: cpplib.c:1307
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr ""
-#: cpplib.c:1312 tradcpp.c:3555
+#: cpplib.c:1468
#, fuzzy
msgid "#elif after #else"
msgstr "`#elif' na `#else'"
-#: cpplib.c:1343
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr ""
-#: cpplib.c:1426 tradcpp.c:3252
+#: cpplib.c:1582
msgid "missing '(' after predicate"
msgstr ""
-#: cpplib.c:1441 tradcpp.c:3266
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
msgstr ""
-#: cpplib.c:1461 tradcpp.c:3272
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr ""
-#: cpplib.c:1491 tradcpp.c:3320
+#: cpplib.c:1647
msgid "assertion without predicate"
msgstr ""
-#: cpplib.c:1493 tradcpp.c:3322
+#: cpplib.c:1649
#, fuzzy
msgid "predicate must be an identifier"
msgstr "`defined' zonder een naam"
-#: cpplib.c:1575 tradcpp.c:3419
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr ""
-#: cpplib.c:1805
+#: cpplib.c:1968
#, fuzzy, c-format
msgid "unterminated #%s"
msgstr "niet-beëindigde commentaar"
-#: cppmacro.c:148
+#: cppmacro.c:94
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "`%.*s' is niet gedefinieerd"
+
+#: cppmacro.c:139 cppmacro.c:294
#, fuzzy, c-format
msgid "invalid built-in macro \"%s\""
msgstr "ongeldige macronaam"
-#: cppmacro.c:348
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr ""
+
+#: cppmacro.c:407
msgid "invalid string literal, ignoring final '\\'"
msgstr ""
-#: cppmacro.c:440
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
-#: cppmacro.c:566
-msgid "directives may not be used inside a macro argument"
-msgstr ""
-
-#: cppmacro.c:578
-#, fuzzy, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr "niet-beëindigde parameterlijst in `#define'"
-
-#: cppmacro.c:595
+#: cppmacro.c:546
#, fuzzy
msgid "ISO C99 requires rest arguments to be used"
msgstr "ANSI C heeft een benoemd argument nodig vóór `...'"
-#: cppmacro.c:600
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
-#: cppmacro.c:611
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
-#: cppmacro.c:694
+#: cppmacro.c:669 cpptrad.c:774
+#, fuzzy, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "niet-beëindigde parameterlijst in `#define'"
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: cppmacro.c:1190
+#: cppmacro.c:1314
#, fuzzy, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "herhaald lid `%s'"
-#: cppmacro.c:1218
+#: cppmacro.c:1351
#, fuzzy, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "ongeldig karakter in naam van macro-parameter"
-#: cppmacro.c:1225
+#: cppmacro.c:1359
#, fuzzy
msgid "macro parameters must be comma-separated"
msgstr "parameter 2 moet een locatie zijn"
-#: cppmacro.c:1242
+#: cppmacro.c:1376
#, fuzzy
msgid "parameter name missing"
msgstr "parameternaam weggelaten"
-#: cppmacro.c:1256
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: cppmacro.c:1259
+#: cppmacro.c:1395
#, fuzzy
msgid "ISO C does not permit named variadic macros"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: cppmacro.c:1268
+#: cppmacro.c:1404
#, fuzzy
msgid "missing ')' in macro parameter list"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: cppmacro.c:1346
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: cppmacro.c:1376
+#: cppmacro.c:1500
#, fuzzy
msgid "'#' is not followed by a macro parameter"
msgstr "`#' operator wordt niet gevolgd door een naam van een macro-argument"
-#: cppmacro.c:1396
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr ""
-#: cppmacro.c:1432
+#: cppmacro.c:1601
#, fuzzy, c-format
msgid "\"%s\" redefined"
msgstr "`%.*s' opnieuw gedefinieerd"
-#: cppmacro.c:1436
+#: cppmacro.c:1606
#, fuzzy
msgid "this is the location of the previous definition"
msgstr "dit is een eerdere declaratie"
-#: cppmacro.c:1500
+#: cppmacro.c:1657
#, fuzzy, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
+msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr "macro-argument `%.*s' zou met -traditional string gemaakt worden."
-#: cppmacro.c:1524
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: cppmain.c:121
-#, fuzzy, c-format
-msgid "invalid option %s"
-msgstr "Ongeldige optie `%s'"
-
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
-#: cppspec.c:155
+#: cppspec.c:133
#, fuzzy
msgid "too many input files"
msgstr "Geen invoerbestanden"
-#: cse.c:7092
+#: cpptrad.c:841
+#, fuzzy, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "niet-beëindigde parameterlijst in `#define'"
+
+#: cse.c:7195
#, c-format
msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
-# Dit zou misschien beter 'warning' blijven
-#: diagnostic.c:784
-#, fuzzy, c-format
-msgid "%s:%d: warning: "
-msgstr "let op: "
-
-# Dit zou misschien beter 'warning' blijven
-#: diagnostic.c:791
-#, fuzzy, c-format
-msgid "%s: warning: "
-msgstr "let op: "
-
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr ""
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr ""
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr ""
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr ""
-
-#: diagnostic.c:1076
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr ""
-#: diagnostic.c:1078
+#: diagnostic.c:1056
#, fuzzy, c-format
msgid " %s"
msgstr "%s voor `%s'"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
msgstr ""
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, fuzzy, c-format
msgid "In member function `%s':"
msgstr "bibliotheekfunctie `%s' wordt verborgen"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, fuzzy, c-format
msgid "In function `%s':"
msgstr "Ongeldige optie `%s'"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
msgstr ""
-#: diagnostic.c:1226
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr ""
-#: diagnostic.c:1240 diagnostic.c:1390
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4962,74 +5117,83 @@ msgid ""
"See %s for instructions.\n"
msgstr ""
-#: diagnostic.c:1388
+#: diagnostic.c:1314
#, fuzzy
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr "Interne compilerfout: programma %s kreeg fataal signaal %d"
-#: diagnostic.c:1450
+#: diagnostic.c:1376
#, fuzzy, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "Interne compilerfout %d."
+msgid "in %s, at %s:%d"
+msgstr "%s voor `%s'"
-#: diagnostic.c:1495
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr ""
-#: diagnostic.c:1498
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
" from %s:%d"
msgstr ""
-#: diagnostic.c:1499
+#: diagnostic.c:1401
msgid ":\n"
msgstr ""
-#: diagnostic.c:1532 diagnostic.c:1549
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1552
+#: diagnostic.c:1465
#, fuzzy, c-format
msgid "`%s' is deprecated"
msgstr "`%.*s' is niet gedefinieerd"
-#: diagnostic.c:1555
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: diagnostic.c:1558
+#: diagnostic.c:1471
msgid "type is deprecated"
msgstr ""
-#: dwarf2out.c:3034
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dwarf2out.c:3135
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr ""
-#: dwarfout.c:2089
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr ""
+
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
msgstr ""
-#: dwarfout.c:6291
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr ""
-#: emit-rtl.c:1091
+#: emit-rtl.c:1155
msgid "can't access real part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:1113
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
msgstr ""
-#: emit-rtl.c:3140
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
@@ -5038,245 +5202,269 @@ msgstr ""
msgid "abort in %s, at %s:%d"
msgstr ""
-#: except.c:360
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr ""
-#: except.c:3062
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr ""
-#: except.c:3173 except.c:3195
+#: except.c:3137
#, fuzzy
msgid "__builtin_eh_return not supported on this target"
msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
-#: explow.c:1357
+#: explow.c:1408
#, fuzzy
msgid "stack limits not supported on this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: expr.c:2926
+#: expr.c:3355
#, fuzzy
msgid "function using short complex types cannot be inline"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: expr.c:5766 expr.c:5775 expr.c:5784 expr.c:5789 expr.c:6075 expr.c:6091
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
msgstr ""
-#: expr.c:6140
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr ""
-#: expr.c:6474
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr ""
-#: final.c:1209
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "kan adres van bitveld `%s' niet nemen"
+
+#: final.c:1342
#, fuzzy
msgid "negative insn length"
msgstr "Onbeëindigde stringconstante"
-#: final.c:2627
+#: final.c:2793
msgid "could not split insn"
msgstr ""
-#: final.c:2971
-#, c-format
-msgid "invalid `asm': %s"
-msgstr ""
-
-#: final.c:2973
-#, c-format
-msgid "output_operand: %s"
-msgstr ""
+# (%s = 'parameter <NUM>')
+#: final.c:3141
+#, fuzzy
+msgid "invalid `asm': "
+msgstr "ongeldige %s"
-#: final.c:3146
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr ""
-#: final.c:3163 final.c:3175
+#: final.c:3345 final.c:3357
#, fuzzy
msgid "unterminated assembly dialect alternative"
msgstr "Onbeëindigde stringconstante"
-#: final.c:3219
-#, c-format
-msgid "operand number missing after %-letter"
-msgstr ""
+#: final.c:3401
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
+msgstr "Bestandsnaam ontbreekt na %s optie"
-#: final.c:3222 final.c:3261
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr ""
-#: final.c:3280
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr ""
-#: final.c:3311
-msgid "`%l' operand isn't a label"
-msgstr ""
+#: final.c:3493
+#, fuzzy, c-format
+msgid "`%%l' operand isn't a label"
+msgstr "operand `%d' is geen register"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: config/i386/i386.c:5280 config/pdp11/pdp11.c:1570 final.c:3418
-#: vmsdbgout.c:478
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr "floating-point constante verkeerd gebruikt"
-#: config/i386/i386.c:5334 config/pdp11/pdp11.c:1617 final.c:3473
-#: vmsdbgout.c:535
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr "ongeldige expressie als operand"
-#: flow.c:360
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: flow.c:365
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr "`noreturn' functie keert terug"
-#: flow.c:384
+#: flow.c:378
msgid "control reaches end of non-void function"
msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
-#: flow.c:1569
+#: flow.c:1642
msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: fold-const.c:3114 fold-const.c:3127
+#: fold-const.c:2546 fold-const.c:2559
#, fuzzy, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "vergelijking is altijd waar omwille van het beperkte bereik van het datatype"
-#: fold-const.c:4169 fold-const.c:4186
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr ""
-#: fold-const.c:4317
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr ""
-#: fold-const.c:4322
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr ""
-#: function.c:5378
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "variabele `%s' is te groot"
+
+#: function.c:3772
+#, fuzzy
+msgid "impossible constraint in `asm'"
+msgstr "incompatibele operands voor %s"
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr ""
-#: function.c:5385
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:5404
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: function.c:6270
+#: function.c:6420
msgid "function returns an aggregate"
msgstr ""
-#: function.c:6789
+#: function.c:6925
#, c-format
msgid "unused parameter `%s'"
msgstr ""
-#: gcc.c:1100
+#: gcc.c:1107
#, c-format
msgid "ambiguous abbreviation %s"
msgstr ""
-#: gcc.c:1127
+#: gcc.c:1134
#, fuzzy, c-format
msgid "incomplete `%s' option"
msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: gcc.c:1138
+#: gcc.c:1145
#, fuzzy, c-format
msgid "missing argument to `%s' option"
msgstr "Bestandsnaam ontbreekt na `%s' optie"
-#: gcc.c:1151
+#: gcc.c:1158
#, fuzzy, c-format
msgid "extraneous argument to `%s' option"
msgstr "teveel argumenten voor functie"
-#: gcc.c:1465
+#: gcc.c:1486
msgid "Using built-in specs.\n"
msgstr ""
-#: gcc.c:1639
+#: gcc.c:1667
#, c-format
-msgid "Setting spec %s to '%s'\n\n"
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
msgstr ""
-#: gcc.c:1737
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr ""
-#: gcc.c:1835 gcc.c:1854
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1862
+#: gcc.c:1899
#, c-format
msgid "could not find specs file %s\n"
msgstr ""
-#: gcc.c:1878 gcc.c:1886 gcc.c:1895 gcc.c:1904
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: gcc.c:1913
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: gcc.c:1920
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr ""
+
+#: gcc.c:1963
#, c-format
msgid "rename spec %s to %s\n"
msgstr ""
-#: gcc.c:1922
+#: gcc.c:1965
#, c-format
-msgid "spec is '%s'\n\n"
+msgid ""
+"spec is '%s'\n"
+"\n"
msgstr ""
-#: gcc.c:1935
+#: gcc.c:1978
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: gcc.c:1946 gcc.c:1959
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr ""
-#: gcc.c:2013
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr ""
-#: gcc.c:2725
+#: gcc.c:2554
msgid "-pipe not supported"
msgstr ""
-#: gcc.c:2779
-msgid "\nGo ahead? (y or n) "
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
msgstr ""
-#: gcc.c:2878
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5284,155 +5472,159 @@ msgid ""
"See %s for instructions."
msgstr ""
-#: gcc.c:2896
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr ""
-#: gcc.c:3029
+#: gcc.c:2883
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: gcc.c:3030
+#: gcc.c:2884
msgid "Options:\n"
msgstr ""
-#: gcc.c:3032
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr ""
-#: gcc.c:3033
+#: gcc.c:2887
msgid " --help Display this information\n"
msgstr ""
-#: gcc.c:3034
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
msgstr ""
-#: gcc.c:3036
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr ""
-#: gcc.c:3037
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr ""
-#: gcc.c:3038
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
msgstr ""
-#: gcc.c:3039
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr ""
-#: gcc.c:3040
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr ""
-#: gcc.c:3041
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr ""
-#: gcc.c:3042
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr ""
-#: gcc.c:3043
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr ""
-#: gcc.c:3044
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr ""
-#: gcc.c:3045
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
msgstr ""
-#: gcc.c:3048
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr ""
+
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
msgstr ""
-#: gcc.c:3049
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr ""
-#: gcc.c:3050
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr ""
-#: gcc.c:3051
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr ""
-#: gcc.c:3052
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
msgstr ""
-#: gcc.c:3053
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr ""
-#: gcc.c:3054
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
msgstr ""
-#: gcc.c:3055
+#: gcc.c:2910
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr ""
-#: gcc.c:3056
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
-#: gcc.c:3057
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr ""
-#: gcc.c:3058
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr ""
-#: gcc.c:3059
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr ""
-#: gcc.c:3060
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
msgstr ""
-#: gcc.c:3061
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: gcc.c:3062
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
-#: gcc.c:3063
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
msgstr ""
-#: gcc.c:3064
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
msgstr ""
-#: gcc.c:3065
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
msgstr ""
-#: gcc.c:3066
+#: gcc.c:2921
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
-#: gcc.c:3073
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5441,87 +5633,90 @@ msgid ""
" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
+#: gcc.c:3063
+#, fuzzy, c-format
+msgid "`-%c' option must have argument"
+msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr ""
+
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3353
+#: gcc.c:3262
#, c-format
msgid "%s (GCC) %s\n"
msgstr ""
-#: gcc.c:3354
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
msgstr ""
-#: gcc.c:3356 gcov.c:320
+#: gcc.c:3265 gcov.c:364
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
"\n"
msgstr ""
-#: gcc.c:3455
+#: gcc.c:3366
msgid "argument to `-Xlinker' is missing"
msgstr ""
-#: gcc.c:3463
+#: gcc.c:3374
#, fuzzy
msgid "argument to `-l' is missing"
msgstr "het argument van `asm' is geen constante string"
-#: gcc.c:3480
+#: gcc.c:3391
msgid "argument to `-specs' is missing"
msgstr ""
-#: gcc.c:3495
+#: gcc.c:3406
msgid "argument to `-specs=' is missing"
msgstr ""
-#: gcc.c:3526
-msgid "argument to `-b' is missing"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
msgstr ""
-#: gcc.c:3541
+#: gcc.c:3445
msgid "argument to `-B' is missing"
msgstr ""
-#: gcc.c:3611
-msgid "argument to `-V' is missing"
-msgstr ""
-
-#: gcc.c:3632 gcc.c:3639 gcc.c:3646
-msgid "invalid version number format"
-msgstr ""
-
-#: gcc.c:3757
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr ""
-#: gcc.c:3928
+#: gcc.c:3791
msgid "warning: -pipe ignored because -save-temps specified"
msgstr ""
-#: gcc.c:3932
+#: gcc.c:3795
msgid "warning: -pipe ignored because -time specified"
msgstr ""
-#: gcc.c:3944
+#: gcc.c:3807
msgid "argument to `-x' is missing"
msgstr ""
-#: gcc.c:3972
+#: gcc.c:3835
#, c-format
msgid "argument to `-%s' is missing"
msgstr ""
-#: gcc.c:4033
+#: gcc.c:3896
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr ""
-#: gcc.c:4332
+#: gcc.c:4241
msgid "invalid specification! Bug in cc"
msgstr ""
-#: gcc.c:4481
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr ""
@@ -5529,148 +5724,183 @@ msgstr ""
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5040
+#: gcc.c:4955
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: gcc.c:5049
+#: gcc.c:4964
#, fuzzy, c-format
msgid "warning: use of obsolete %%[ operator in specs"
msgstr "Let Op: verouderde operator %%[ gebruikt in specs"
-#: gcc.c:5067
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: gcc.c:5192
+#: gcc.c:5107
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr ""
-#: gcc.c:5302
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "Ongeldige optie `%s'"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "teveel argumenten voor functie `%s'"
+
+#: gcc.c:5256
+#, fuzzy
+msgid "malformed spec function name"
+msgstr "cast geeft functie-type op"
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "te weinig argument voor functie"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr ""
-#: gcc.c:5980
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr ""
-#: gcc.c:5986
+#: gcc.c:6087
#, c-format
msgid "install: %s%s\n"
msgstr ""
-#: gcc.c:5987
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
msgstr ""
-#: gcc.c:5988
+#: gcc.c:6089
#, c-format
msgid "libraries: %s\n"
msgstr ""
-#: gcc.c:6036
-msgid "\nFor bug reporting instructions, please see:\n"
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
msgstr ""
-#: gcc.c:6052
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
msgstr ""
-#: gcc.c:6066
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
msgstr ""
-#: gcc.c:6077
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
msgstr "gcc versie %s\n"
-#: gcc.c:6079
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "gcc stuurprogramma versie %s voert gcc versie %s uit\n"
-#: gcc.c:6087
+#: gcc.c:6197
#, fuzzy
msgid "no input files"
msgstr "Geen invoerbestanden"
-#: gcc.c:6125
+#: gcc.c:6235
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s compiler niet geïnstalleerd op dit systeem"
-#: gcc.c:6200
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: gcc.c:6243
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr "taal %s niet herkend"
-#: gcc.c:6346
+#: gcc.c:6456
msgid "internal gcc abort"
msgstr ""
-#: gcov.c:282
+#: gcov.c:325
#, fuzzy
msgid "Internal gcov abort.\n"
msgstr "Interne abort van gcc."
-#: gcov.c:295
-msgid "Usage: gcov [OPTION]... SOURCEFILE\n\n"
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
msgstr ""
-#: gcov.c:296
-msgid "Print code coverage information.\n\n"
+#: gcov.c:339
+msgid ""
+"Print code coverage information.\n"
+"\n"
msgstr ""
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
msgstr ""
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
msgstr ""
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr ""
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr ""
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
msgstr ""
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
msgstr ""
-#: gcov.c:307
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr ""
+
+#: gcov.c:351
#, c-format
msgid ""
"\n"
@@ -5678,267 +5908,476 @@ msgid ""
"%s.\n"
msgstr ""
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr ""
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr ""
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr ""
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr ""
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr ""
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr ""
-#: gcov.c:478
+#: gcov.c:534
#, c-format
-msgid "Could not open program flow graph file %s.\n"
+msgid "No executable code associated with file %s.\n"
msgstr ""
-#: gcov.c:489
+#: gcov.c:1186
#, c-format
-msgid "No executable code associated with file %s.\n"
+msgid "%s of %d lines executed in %s %s\n"
msgstr ""
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
+#: gcov.c:1191
+#, c-format
+msgid "No executable lines in %s %s\n"
msgstr ""
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
+#: gcov.c:1198
+#, c-format
+msgid "%s of %d branches executed in %s %s\n"
msgstr ""
-#: gcov.c:973
+#: gcov.c:1203
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
+msgid "%s of %d branches taken at least once in %s %s\n"
msgstr ""
-#: gcov.c:977
+#: gcov.c:1209
#, c-format
-msgid "No executable source lines in function %s\n"
+msgid "No branches in %s %s\n"
msgstr ""
-#: gcov.c:984
+#: gcov.c:1211
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
+msgid "%s of %d calls executed in %s %s\n"
msgstr ""
-#: gcov.c:988
+#: gcov.c:1216
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+msgid "No calls in %s %s\n"
msgstr ""
-#: gcov.c:993
+#: gcov.c:1351
#, c-format
-msgid "No branches in function %s\n"
+msgid "didn't use all bb entries of graph, function %s\n"
msgstr ""
-#: gcov.c:995
+#: gcov.c:1353
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
+msgid "block_num = %ld, num_blocks = %d\n"
msgstr ""
-#: gcov.c:999
+#: gcov.c:1367
#, c-format
-msgid "No calls in function %s\n"
+msgid "ERROR: unexpected line number %ld\n"
msgstr ""
-#: gcov.c:1126
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "teveel argumenten voor functie `%s'"
+
+#: gcov.c:1398
#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
+msgid "ERROR: out of range line number in function %s\n"
msgstr ""
-#: gcov.c:1128
+#: gcov.c:1470
#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
+msgid "Could not open source file %s.\n"
+msgstr ""
+
+#: gcov.c:1480
+#, c-format
+msgid "Warning: source file %s is newer than %s\n"
msgstr ""
-#: gcov.c:1166
+#: gcov.c:1510
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
+msgid "Unexpected EOF while reading source file %s.\n"
msgstr ""
-#: gcov.c:1243
+#: gcov.c:1532
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
+msgid "call %2d never executed\n"
msgstr ""
-#: gcov.c:1247
+#: gcov.c:1535
#, c-format
-msgid "No executable source lines in file %s\n"
+msgid "call %2d returns %s\n"
msgstr ""
-#: gcov.c:1254
+#: gcov.c:1543
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
+msgid "branch %2d never executed\n"
msgstr ""
-#: gcov.c:1258
+#: gcov.c:1546
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+msgid "branch %2d taken %s\n"
msgstr ""
-#: gcov.c:1263
+#: gcov.c:1610
#, c-format
-msgid "No branches in file %s\n"
+msgid "Creating %s.\n"
msgstr ""
-#: gcov.c:1265
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "kan bestand '%s' niet openen"
+
+#: gcov.c:1618
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
+msgid "Could not open output file %s.\n"
msgstr ""
-#: gcov.c:1269
+#: gcse.c:763
#, c-format
-msgid "No calls in file %s\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
msgstr ""
-#: gcov.c:1281
+#: gcse.c:775
#, c-format
-msgid "Could not open source file %s.\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
msgstr ""
-#: gcov.c:1331
+#: genautomata.c:1490
#, c-format
-msgid "Could not open output file %s.\n"
+msgid "Name `%s' contains quotes"
msgstr ""
-#: gcov.c:1339
+#: genautomata.c:1621
#, c-format
-msgid "Creating %s.\n"
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr ""
+
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
msgstr ""
-#: gcov.c:1387
+#: genautomata.c:1682 genautomata.c:1685
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
+
+#: genautomata.c:1720
#, c-format
-msgid "call %d never executed\n"
+msgid "invalid first string `%s' in exclusion_set"
msgstr ""
-#: gcov.c:1396
+#: genautomata.c:1724
#, c-format
-msgid "call %d returns = %s\n"
+msgid "invalid second string `%s' in exclusion_set"
msgstr ""
-#: gcov.c:1406
+#: genautomata.c:1760
#, c-format
-msgid "call %d returns = %s%%\n"
+msgid "invalid first string `%s' in presence_set"
msgstr ""
-#: gcov.c:1413
+#: genautomata.c:1764
+#, fuzzy, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "ongeldige macronaam"
+
+#: genautomata.c:1800
#, c-format
-msgid "branch %d never executed\n"
+msgid "invalid first string `%s' in absence_set"
msgstr ""
-#: gcov.c:1423
+#: genautomata.c:1804
#, c-format
-msgid "branch %d taken = %s\n"
+msgid "invalid second string `%s' in absence_set"
msgstr ""
-#: gcov.c:1433
+#: genautomata.c:1837
#, c-format
-msgid "branch %d taken = %s%%\n"
+msgid "invalid string `%s' in define_automaton"
msgstr ""
-#: gcov.c:1444
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "Ongeldige optie `%s'"
+
+#: genautomata.c:1890
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
+msgid "garbage after ) in reservation `%s'"
msgstr ""
-#: gcse.c:757
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "herdeclaratie van `%s'"
+
+#: genautomata.c:1932
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgid "repetition `%s' <= 1 in reservation `%s'"
msgstr ""
-#: gcse.c:769
+#: genautomata.c:2425
+#, fuzzy, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "`%.*s' is niet gedefinieerd"
+
+#: genautomata.c:2427
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
+msgid "`%s' in exclusion is not unit"
+msgstr ""
+
+#: genautomata.c:2465
+#, fuzzy, c-format
+msgid "unit `%s' excludes itself"
+msgstr "breedte van `%s' overschrijdt zijn type"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr ""
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr ""
+
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "impliciete declaratie van functie `%s'"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr ""
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr ""
+
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "`%.*s' is niet gedefinieerd"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr ""
+
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "veld `%s' als een functie gedeclareerd"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "veld `%s' als een functie gedeclareerd"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "herdeclaratie van `%s'"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "impliciete declaratie van functie `%s'"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, fuzzy, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "geen eerdere declaratie voor `%s'"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
msgstr ""
-#: ch/grant.c:2652 ch/lex.c:212 ch/lex.c:2189 f/com.c:14249 graph.c:421
-#: java/jcf-parse.c:981 java/jcf-parse.c:1133 java/lex.c:1782
-#: objc/objc-act.c:529 profile.c:950 profile.c:958 toplev.c:1845 toplev.c:4954
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "veld `%s' heeft al een beginwaarde gekregen"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, fuzzy, c-format
+msgid "automaton `%s' is not used"
+msgstr "modus van `%s' is geen modus"
+
+#: genautomata.c:2950
+#, fuzzy, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "ongeldige naam `%s'"
+
+# Ik zou 'library' kunnen vertalen, maar ik heb in compiler-manuals nog niet
+# dikwijls 'bibliotheek' zien gebruiken.
+# De vertaalde boodschappen voor make gebruiken dat op het ogenblik wél, maar
+# ik ben van plan daar verandering in te brengen.
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "veld `%s' niet gevonden"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "de zwakke declaratie van `%s' moet publiek zijn"
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "herdefinitie van `union %s'"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr ""
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "geen argumenten"
+
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr ""
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr ""
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr ""
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "Geen invoerbestanden"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr ""
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, fuzzy, c-format
msgid "can't open %s"
msgstr "open %s"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr ""
-#: integrate.c:185
+#: integrate.c:174
#, fuzzy
msgid "function cannot be inline"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr ""
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr ""
-#: integrate.c:196
+#: integrate.c:184
#, fuzzy
msgid "function using setjmp cannot be inline"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr ""
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr ""
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
msgstr ""
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr ""
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr ""
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr ""
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr ""
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr ""
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr ""
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr ""
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr ""
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr ""
@@ -5974,55 +6413,56 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "ongeldige macronaam `%.*s'"
-#: profile.c:429
+#: profile.c:397
#, c-format
-msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgid "Profile does not match flowgraph of function %s (out of date?)"
msgstr ""
-#: profile.c:975
-#, c-format
-msgid "file %s not found, execution counts assumed to be zero"
+#: profile.c:400
+msgid ".da file corrupted"
msgstr ""
-#: profile.c:1022
-msgid ".da file contents exhausted too early"
+#: profile.c:634
+#, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr ""
-#: profile.c:1025
-msgid ".da file contents not exhausted"
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
msgstr ""
-#: protoize.c:593
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr ""
-#: protoize.c:684
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr ""
-#: protoize.c:729
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr ""
-#: protoize.c:732
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr ""
-#: protoize.c:839
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr ""
-#: protoize.c:847
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr ""
-#: protoize.c:855
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr ""
@@ -6030,1642 +6470,1705 @@ msgstr ""
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1273
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr ""
-#: protoize.c:1425
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr ""
-#: protoize.c:1446
+#: protoize.c:1395
#, c-format
-msgid "\n%s: fatal error: aux info file corrupted at line %d\n"
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
msgstr ""
-#: protoize.c:1782
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr ""
-#: protoize.c:2040
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr ""
-#: protoize.c:2063
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr ""
-#: protoize.c:2068
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr ""
-#: protoize.c:2076
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr ""
-#: protoize.c:2128
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr ""
-#: protoize.c:2137 protoize.c:2166
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2182 protoize.c:2210
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2238
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr ""
-#: protoize.c:2256
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2269
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2285
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr ""
-#: protoize.c:2367 protoize.c:4369
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr ""
-#: protoize.c:2446
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr ""
-#: protoize.c:2571
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr ""
-#: protoize.c:2575
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr ""
-#: protoize.c:2577
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr ""
-#: protoize.c:2610
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr ""
-#: protoize.c:2650
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr ""
-#: protoize.c:2656
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr ""
-#: protoize.c:2687
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2693
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr ""
-#: protoize.c:2866 protoize.c:2869
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr ""
-#: protoize.c:3075
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr ""
-#: protoize.c:3090
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3213
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr ""
-#: protoize.c:3234
+#: protoize.c:3183
#, c-format
-msgid "\n%s: warning: too few parameter lists in declaration of `%s'\n"
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
msgstr ""
-#: protoize.c:3332
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr ""
-#: protoize.c:3510
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr ""
-#: protoize.c:3537
+#: protoize.c:3486
#, c-format
-msgid "\n%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
msgstr ""
-#: protoize.c:3611
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr ""
-#: protoize.c:3702 protoize.c:3732
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr ""
-#: protoize.c:3721
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr ""
-#: protoize.c:4051
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr ""
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4067
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr ""
-#: protoize.c:4070
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr ""
-#: protoize.c:4129
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr ""
-#: protoize.c:4137
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr ""
-#: protoize.c:4140
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr ""
-#: protoize.c:4150
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr ""
-#: protoize.c:4192
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr ""
-#: protoize.c:4207
+#: protoize.c:4156
#, c-format
-msgid "\n%s: error reading input file `%s': %s\n"
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
msgstr ""
-#: protoize.c:4241
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr ""
-#: protoize.c:4346
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr ""
-#: protoize.c:4354
+#: protoize.c:4303
#, fuzzy, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "kan oproep van `%s' niet inline maken"
-#: protoize.c:4384
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr ""
-#: protoize.c:4417
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr ""
-#: protoize.c:4592
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr ""
-#: protoize.c:4690
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr ""
-#: real.c:824 real.c:1001
-msgid "conversion from NaN to int"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
msgstr ""
-#: real.c:847
-msgid "conversion from NaN to unsigned int"
-msgstr ""
-
-#: real.c:2730
-msgid "floating point overflow"
-msgstr ""
-
-#: real.c:4395 real.c:6675 real.c:6756
-msgid "overflow on truncation to integer"
-msgstr ""
-
-#: real.c:4467
-msgid "overflow on truncation to unsigned integer"
-msgstr ""
-
-#: real.c:5812
-#, c-format
-msgid "%s: argument domain error"
-msgstr ""
-
-#: real.c:5813
-#, c-format
-msgid "%s: function singularity"
-msgstr ""
-
-#: real.c:5814
-#, c-format
-msgid "%s: overflow range error"
-msgstr ""
-
-#: real.c:5815
-#, c-format
-msgid "%s: underflow range error"
-msgstr ""
-
-#: real.c:5816
-#, c-format
-msgid "%s: total loss of precision"
-msgstr ""
-
-#: real.c:5817
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr ""
-
-#: real.c:5818
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr ""
-
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr ""
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr ""
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr ""
-#: config/ia64/ia64.c:3856 config/ia64/ia64.c:3863 regclass.c:793
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, c-format
msgid "unknown register name: %s"
msgstr ""
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr "globale registervariabele volgt op een functiedefinitie"
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr ""
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr ""
-#: regrename.c:1821
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: regrename.c:1833
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: regrename.c:1836
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: regrename.c:1848
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: reload.c:1207
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr ""
-#: reload.c:1229
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr ""
-#: reload.c:3387
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr ""
-#: reload.c:3555
+#: reload.c:3629
msgid "unable to generate reloads for:"
msgstr ""
-#: reload.c:3556 reload.c:3770
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr ""
-#: reload1.c:1242
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr ""
-#: reload1.c:1245
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr ""
-#: reload1.c:1892
+#: reload1.c:1909
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr ""
-#: reload1.c:1896
+#: reload1.c:1913
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr ""
-#: reload1.c:1898
+#: reload1.c:1915
#, fuzzy
msgid "this is the insn:"
msgstr "dit is het eerste ELSE-label"
-#: reload1.c:3917
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:5033
+#: reload1.c:5052
msgid "could not find a spill register"
msgstr ""
-#: reload1.c:5038
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr ""
#. It's the compiler's fault.
-#: reload1.c:6629
+#: reload1.c:6679
msgid "VOIDmode on an output"
msgstr ""
-#: reload1.c:6630
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr ""
-#: rtl-error.c:139
+#: rtl-error.c:140
#, fuzzy
msgid "unrecognizable insn:"
msgstr "signature-string niet herkend"
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr ""
-#: rtl.c:707
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: rtl.c:722
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:738
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: rtl.c:751
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:765
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: rtl.c:780
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: stmt.c:927
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr ""
-#: stmt.c:1163 stmt.c:3895
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr ""
-#: stmt.c:1343
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr ""
-#: stmt.c:1358
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr ""
-#: stmt.c:1380
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr ""
-#: stmt.c:1386 stmt.c:1486
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr ""
-#: stmt.c:1405
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr ""
-#: stmt.c:1477
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr ""
-#: stmt.c:1517
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr ""
-#: stmt.c:1549
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr ""
-#: stmt.c:1645
+#: stmt.c:1450
+#, fuzzy, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "type-qualifiers voor `%s' geven een conflict met een eerdere declaratie"
+
+#: stmt.c:1540
#, c-format
msgid "unknown register name `%s' in `asm'"
msgstr ""
-#: stmt.c:1689
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr ""
-#: stmt.c:1748
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr ""
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1817 stmt.c:1846
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr ""
-#: stmt.c:1992
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr ""
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr ""
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr ""
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr ""
-#: stmt.c:2004
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr ""
-#: stmt.c:2057
+#: stmt.c:1994
#, fuzzy, c-format
msgid "duplicate asm operand name '%s'"
msgstr "herhaald lid `%s'"
-#: stmt.c:2144
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr ""
-#: stmt.c:2164
+#: stmt.c:2109
#, fuzzy, c-format
msgid "undefined named operand '%s'"
msgstr "ongeldige operand van %s"
-#: stmt.c:3832
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr ""
-#: stmt.c:5284
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr ""
-#: stmt.c:5310 stmt.c:5330
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr ""
-#: stmt.c:5313 stmt.c:5333
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr ""
-#: stor-layout.c:172
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "dit is het eerste default-label"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr ""
-#: stor-layout.c:174
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr ""
-#: stor-layout.c:455
+#: stor-layout.c:487
#, fuzzy, c-format
msgid "size of `%s' is %d bytes"
msgstr "grootte van `%s' is %u bytes"
-#: stor-layout.c:457
+#: stor-layout.c:489
#, fuzzy, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "grootte van `%s' is %u bytes"
-#: stor-layout.c:836 stor-layout.c:1089
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr ""
-#: stor-layout.c:838 stor-layout.c:1091
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr ""
-#: stor-layout.c:853
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr ""
-#: stor-layout.c:1053
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr ""
-#: stor-layout.c:1096
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr ""
-#: stor-layout.c:1098
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr ""
-#: timevar.c:448
-msgid "\nExecution times (seconds)\n"
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr ""
+
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
msgstr ""
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
#, fuzzy
msgid " TOTAL :"
msgstr ""
",\n"
" door "
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr ""
-#: tlink.c:428
+#: tlink.c:399
#, fuzzy, c-format
msgid "collect: reading %s\n"
msgstr "collect2 versie %s"
-#: tlink.c:532
+#: tlink.c:502
#, fuzzy, c-format
msgid "collect: recompiling %s\n"
msgstr "collect2 versie %s"
-#: tlink.c:698
+#: tlink.c:674
#, fuzzy, c-format
msgid "collect: tweaking %s in %s\n"
msgstr "collect2 versie %s"
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr ""
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ld gaf exit-status %d terug"
-#: toplev.c:913
+#: toplev.c:920
msgid "Generate debugging info in default format"
msgstr ""
-#: toplev.c:914
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr ""
-#: toplev.c:916
+#: toplev.c:923
msgid "Generate STABS format debug info"
msgstr ""
-#: toplev.c:917
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
msgstr ""
-#: toplev.c:920
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
msgstr ""
-#: toplev.c:922
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
msgstr ""
-#: toplev.c:925
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
msgstr ""
-#: toplev.c:928
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
msgstr ""
-#: toplev.c:929
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
msgstr ""
-#: toplev.c:932
+#: toplev.c:939
msgid "Generate COFF format debug info"
msgstr ""
-#: toplev.c:976
+#: toplev.c:942
+msgid "Generate VMS format debug info"
+msgstr ""
+
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr ""
-#: toplev.c:978
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr ""
-#: toplev.c:980
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr ""
-#: toplev.c:982
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr ""
-#: toplev.c:984
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr ""
-#: toplev.c:986
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr ""
-#: toplev.c:988
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr ""
-#: toplev.c:990
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: toplev.c:992
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr ""
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: toplev.c:994
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: toplev.c:996
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr ""
-#: toplev.c:998
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
msgstr ""
-#: toplev.c:1000
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr ""
-#: toplev.c:1002
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: toplev.c:1004
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
msgstr ""
-#: toplev.c:1006
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: toplev.c:1008
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr ""
-#: toplev.c:1010
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr ""
-#: toplev.c:1012
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr ""
-#: toplev.c:1014
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: toplev.c:1016
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr ""
-#: toplev.c:1018
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr ""
-#: toplev.c:1020
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr ""
-#: toplev.c:1022
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
msgstr ""
-#: toplev.c:1024
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr ""
-#: toplev.c:1026
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr ""
-#: toplev.c:1028
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr ""
-#: toplev.c:1030
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr ""
-#: toplev.c:1032
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr ""
-#: toplev.c:1034
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr ""
-#: toplev.c:1036
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr ""
-#: toplev.c:1038
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr ""
-#: toplev.c:1040
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: toplev.c:1042
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
msgstr ""
-#: toplev.c:1044
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr ""
-#: toplev.c:1046
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr ""
-#: toplev.c:1048
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr ""
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr ""
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+
+#: toplev.c:1061
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "types in voorwaardelijke expressie komen niet overeen"
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr ""
-#: toplev.c:1050
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr ""
-#: toplev.c:1052
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
msgstr ""
-#: toplev.c:1054
-msgid "Pretend that host and target use the same FP format"
-msgstr ""
-
-#: toplev.c:1056
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr ""
-#: toplev.c:1058
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr ""
-#: toplev.c:1060
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr ""
-#: toplev.c:1062
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr ""
-#: toplev.c:1064
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr ""
-#: toplev.c:1066
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr ""
-#: toplev.c:1068
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr ""
-#: toplev.c:1070
+#: toplev.c:1083
#, fuzzy
msgid "Generate position independent code, if possible"
msgstr "Positie-onafhankelijke code wordt niet ondersteund. Genegeerd"
-#: toplev.c:1073
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr ""
-#: toplev.c:1075
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: toplev.c:1077
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr ""
-#: toplev.c:1079
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr ""
-#: toplev.c:1081
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr ""
-#: toplev.c:1083
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr ""
-#: toplev.c:1085
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr ""
-#: toplev.c:1087
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr ""
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: toplev.c:1089
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr ""
-#: toplev.c:1091
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr ""
-#: toplev.c:1093
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: toplev.c:1095
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr ""
-#: toplev.c:1097
+#: toplev.c:1114
#, fuzzy
msgid "place each function into its own section"
msgstr "keer vermeld voor elke functie waarin hij staat.)"
-#: toplev.c:1099
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr ""
-#: toplev.c:1101
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr ""
-#: toplev.c:1103
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
msgstr ""
-#: toplev.c:1105
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr ""
-#: toplev.c:1107
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr ""
-#: toplev.c:1109
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr ""
-#: toplev.c:1111
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr ""
-#: toplev.c:1113
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr ""
-#: toplev.c:1115
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: toplev.c:1117
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr ""
-#: toplev.c:1119
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr ""
-#: toplev.c:1121
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr ""
-#: toplev.c:1123
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr ""
-#: toplev.c:1125
+#: toplev.c:1142
msgid "Align all labels"
msgstr ""
-#: toplev.c:1127
+#: toplev.c:1144
#, fuzzy
msgid "Align the start of functions"
msgstr "impliciete declaratie van functie `%s'"
-#: toplev.c:1129
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: toplev.c:1131
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: toplev.c:1133
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: toplev.c:1135
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr ""
-#: toplev.c:1137
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr ""
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr ""
-#: toplev.c:1139
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr ""
-#: toplev.c:1141
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr ""
-#: toplev.c:1143
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr ""
-#: toplev.c:1145
+#: toplev.c:1164
#, fuzzy
msgid "Process #ident directives"
msgstr "ongeldig preprocessing-commando"
-#: toplev.c:1147
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr ""
-#: toplev.c:1149
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr ""
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr ""
-#: toplev.c:1151
+#: toplev.c:1172
#, fuzzy
msgid "Set errno after built-in math functions"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: toplev.c:1153
+#: toplev.c:1174
#, fuzzy
msgid "Floating-point operations can trap"
msgstr "floating-point constante buiten bereik"
-#: toplev.c:1155
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
-#: toplev.c:1157
-msgid "Compile pointers as triples: value, base & end"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: toplev.c:1159
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-#: toplev.c:1161
+#: toplev.c:1182
#, fuzzy
msgid "Convert floating point constant to single precision constant"
msgstr "floating-point fout bij het uitschrijven van een constante"
-#: toplev.c:1163
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr ""
-#: toplev.c:1165
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr ""
-#: toplev.c:1167
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr ""
-#: toplev.c:1184
-msgid "Compile just for ISO C89"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
msgstr ""
-#: toplev.c:1186
-msgid "Do not promote floats to double if using -traditional"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
msgstr ""
-#: toplev.c:1188
+#: toplev.c:1209
msgid "Determine language standard"
msgstr ""
-#: toplev.c:1192
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
msgstr ""
-#: toplev.c:1196
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr ""
-#: toplev.c:1198
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr ""
-#: toplev.c:1204
-msgid "Attempt to support traditional K&R style C"
-msgstr ""
-
-#: toplev.c:1210
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr ""
-#: toplev.c:1213
+#: toplev.c:1228
#, fuzzy
msgid "Do not recognize any built in functions"
msgstr "interne fout - slechte ingebouwde functie `%s'"
-#: toplev.c:1215
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr ""
-#: toplev.c:1218
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
msgstr ""
-#: toplev.c:1221
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr ""
-#: toplev.c:1224
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr ""
-#: toplev.c:1229
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr ""
-#: toplev.c:1232
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr ""
-#: toplev.c:1235
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr ""
-#: toplev.c:1239
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr ""
-#: toplev.c:1241
+#: toplev.c:1256
#, fuzzy
msgid "Warn about casting functions to incompatible types"
msgstr "parameter wijst naar een onvolledig type"
-#: toplev.c:1245
+#: toplev.c:1259
#, fuzzy
msgid "Warn about functions which might be candidates for format attributes"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: toplev.c:1248
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
msgstr ""
-#: toplev.c:1251
+#: toplev.c:1265
#, fuzzy
msgid "Warn about subscripts whose type is 'char'"
msgstr "array subscript is van het type `char'"
-#: toplev.c:1254 toplev.c:1257
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr ""
-#: toplev.c:1260
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr ""
-#: toplev.c:1263
-msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
msgstr ""
-#: toplev.c:1267
-msgid "Don't warn about strftime formats yielding 2 digit years"
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr ""
+
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr ""
-#: toplev.c:1270
+#: toplev.c:1287
#, fuzzy
msgid "Don't warn about too many arguments to format functions"
msgstr "teveel argumenten voor functie"
-#: toplev.c:1272
+#: toplev.c:1289
#, fuzzy
msgid "Warn about non-string-literal format strings"
msgstr "formaatstring niet beëindigd"
-#: toplev.c:1275
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr ""
-#: toplev.c:1278
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr ""
+
+#: toplev.c:1298
#, fuzzy
msgid "Warn about implicit function declarations"
msgstr "parameternamen (zonder types) in functiedeclaratie"
-#: toplev.c:1282
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr ""
-#: toplev.c:1287
+#: toplev.c:1307
#, fuzzy
msgid "Warn about the use of the #import directive"
msgstr "lijnnummer buiten bereik in `#line'-commando"
-#: toplev.c:1291
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr ""
-#: toplev.c:1293
+#: toplev.c:1313
#, fuzzy
msgid "Warn about suspicious declarations of main"
msgstr "geen eerdere declaratie voor `%s'"
-#: toplev.c:1296
+#: toplev.c:1316
#, fuzzy
msgid "Warn about possibly missing braces around initializers"
msgstr "accolades ontbreken rond beginwaarde"
-#: toplev.c:1299
+#: toplev.c:1319
#, fuzzy
msgid "Warn about global funcs without previous declarations"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: toplev.c:1302
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr ""
-#: toplev.c:1305
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr ""
-#: toplev.c:1308
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr ""
-#: toplev.c:1311
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr ""
-#: toplev.c:1314
-msgid "Warn about possible violations of sequence point rules"
-msgstr ""
-
-#: toplev.c:1317
+#: toplev.c:1334
#, fuzzy
msgid "Warn about function pointer arithmetic"
msgstr "pointer naar functie gebruikt in rekensom"
-#: toplev.c:1320
+#: toplev.c:1337
#, fuzzy
msgid "Warn about multiple declarations of the same object"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: toplev.c:1323
-msgid "Warn about signed/unsigned comparisons"
-msgstr ""
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "teruggeefwaarde krijgt standaardtype `int'"
-#: toplev.c:1326
-msgid "Warn about testing equality of floating point numbers"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: toplev.c:1329
-msgid "Warn about unrecognized pragmas"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
msgstr ""
-#: toplev.c:1332
+#: toplev.c:1349
#, fuzzy
msgid "Warn about non-prototyped function decls"
msgstr "niet-prototype definitie hier"
-#: toplev.c:1335
-msgid "Warn about constructs whose meaning change in ISO C"
-msgstr ""
+#: toplev.c:1352
+#, fuzzy
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "array subscript is van het type `char'"
-#: toplev.c:1338
+#: toplev.c:1355
#, fuzzy
msgid "Warn when trigraphs are encountered"
msgstr "%lu trigraph(s) tegengekomen"
-#: toplev.c:1343
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr ""
+
+#: toplev.c:1363
#, fuzzy
msgid "Mark strings as 'const char *'"
msgstr "slechte stringconstante"
-#: toplev.c:1473
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr ""
-#: toplev.c:1475
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr ""
-#: toplev.c:1477
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr ""
-#: toplev.c:1479
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr ""
-#: toplev.c:1481
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr ""
-#: toplev.c:1483
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr ""
-#: toplev.c:1485
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr ""
-#: toplev.c:1487
+#: toplev.c:1522
#, fuzzy
msgid "Warn when one local variable shadows another"
msgstr "De locale variabele `insn' heeft de waarde:"
-#: toplev.c:1489
-msgid "Warn about enumerated switches missing a specific case"
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: toplev.c:1491
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr ""
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr ""
+
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: toplev.c:1493
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: toplev.c:1495
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr ""
-#: toplev.c:1497
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
msgstr ""
-#: toplev.c:1499
+#: toplev.c:1538
#, fuzzy
msgid "Warn when an inlined function cannot be inlined"
msgstr "kan functie `main' niet inline maken"
-#: toplev.c:1501
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: toplev.c:1503
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr ""
-#: toplev.c:1505
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: toplev.c:1507
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: toplev.c:1509
+#: toplev.c:1548
#, fuzzy
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
-#: toplev.c:1580 toplev.c:4363 tradcpp.c:781
+#: toplev.c:1550
+#, fuzzy
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "deze functie is een mogelijke kandidaat voor het `noreturn' attribuut"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, fuzzy, c-format
msgid "invalid option `%s'"
msgstr "Ongeldige optie `%s'"
-#: toplev.c:1726
-#, fuzzy, c-format
-msgid "internal error: %s"
-msgstr "interne fout"
-
-#: toplev.c:2026
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr ""
-#: toplev.c:2029
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr ""
-#: toplev.c:2051
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr ""
-#: toplev.c:2282
+#: toplev.c:2280
#, c-format
msgid "invalid register name `%s' for register variable"
msgstr ""
-#: toplev.c:3574
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr ""
-#: toplev.c:3575
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr ""
-#: toplev.c:3576
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr ""
-#: toplev.c:3577
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr ""
-#: toplev.c:3578
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr ""
-#: toplev.c:3579
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr ""
-#: toplev.c:3590
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+
+#: toplev.c:3718
msgid " -O[number] Set optimization level to [number]\n"
msgstr ""
-#: toplev.c:3591
+#: toplev.c:3719
msgid " -Os Optimize for space rather than speed\n"
msgstr ""
-#: toplev.c:3603
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
msgstr ""
-#: toplev.c:3604
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr ""
-#: toplev.c:3605
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr ""
-#: toplev.c:3606
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr ""
-#: toplev.c:3617
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr ""
-#: toplev.c:3618
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr ""
-#: toplev.c:3619
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr ""
-#: toplev.c:3621
-msgid " -a Enable block profiling \n"
-msgstr ""
-
-#: toplev.c:3624
-msgid " -ax Enable jump profiling \n"
-msgstr ""
-
-#: toplev.c:3626
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr ""
-#: toplev.c:3627
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
msgstr ""
-#: toplev.c:3638
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr ""
-#: toplev.c:3639
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr ""
-#: toplev.c:3640
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr ""
-#: toplev.c:3641
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr ""
-#: toplev.c:3642
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr ""
-#: toplev.c:3644
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr ""
-#: toplev.c:3646
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr ""
-#: toplev.c:3661
-msgid "\nLanguage specific options:\n"
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
msgstr ""
-#: toplev.c:3673
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3681 toplev.c:3695
+#: toplev.c:3803 toplev.c:3817
#, c-format
-msgid "\nThere are undocumented %s specific options as well.\n"
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
msgstr ""
-#: toplev.c:3685
+#: toplev.c:3807
#, c-format
-msgid "\n Options for %s:\n"
+msgid ""
+"\n"
+" Options for %s:\n"
msgstr ""
-#: toplev.c:3722
-msgid "\nTarget specific options:\n"
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
msgstr ""
-#: toplev.c:3736 toplev.c:3755
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr ""
-#: toplev.c:3764
-msgid "\nThere are undocumented target specific options as well.\n"
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
msgstr ""
-#: toplev.c:3766
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr ""
-#: toplev.c:3819
+#: toplev.c:3941
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr ""
-#: toplev.c:3889
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr ""
+
+#: toplev.c:4034
#, fuzzy, c-format
msgid "unrecognized register name `%s'"
msgstr "geen argumenten"
-#: toplev.c:3914 toplev.c:4792
+#: toplev.c:4059 toplev.c:5012
#, fuzzy, c-format
msgid "unrecognized option `%s'"
msgstr "onbekende formaatspecificatie"
-#: toplev.c:3958
+#: toplev.c:4107
#, fuzzy
msgid "-Wid-clash-LEN is no longer supported"
msgstr "-pipe wordt niet ondersteund"
-#: toplev.c:4035
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr ""
-#: toplev.c:4038
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr ""
-#: toplev.c:4043
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr ""
-#: toplev.c:4066 toplev.c:4790
+#: toplev.c:4215 toplev.c:5010
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr ""
-#: toplev.c:4073
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr ""
-#: toplev.c:4152
+#: toplev.c:4304
msgid "-param option missing argument"
msgstr ""
-#: toplev.c:4161
+#: toplev.c:4313
#, fuzzy, c-format
msgid "invalid --param option: %s"
msgstr "Ongeldige optie `%s'"
-#: toplev.c:4173
+#: toplev.c:4325
#, fuzzy, c-format
msgid "invalid parameter value `%s'"
msgstr "ongeldige registernaam voor `%s'"
-#: toplev.c:4380
+#: toplev.c:4565
#, fuzzy, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7675,1188 +8178,933 @@ msgstr ""
"%s%s%s versie %s (%s) gecompileerd door GNU C versie %s.\n"
"%s%s%s versie %s (%s) gecompileerd door CC.\n"
-#: toplev.c:4436
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: toplev.c:4630
msgid "options passed: "
msgstr "meegegeven opties: "
-#: toplev.c:4465
+#: toplev.c:4659
msgid "options enabled: "
msgstr "ingeschakelde opties: "
-#: toplev.c:4524
+#: toplev.c:4718 java/jcf-write.c:3453
#, fuzzy, c-format
msgid "can't open %s for writing"
msgstr "open %s"
# Moet 'command line' vertaald worden?
-#: toplev.c:4782
+#: toplev.c:5002
#, fuzzy, c-format
msgid "ignoring command line option '%s'"
msgstr "Foldernaam ontbreekt na command-line optie"
-#: toplev.c:4785
+#: toplev.c:5005
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr ""
-#: toplev.c:4814
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized wordt niet ondersteund zonder -O"
-#: toplev.c:4870
+#: toplev.c:5094
msgid "instruction scheduling not supported on this target machine"
msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
-#: toplev.c:4874
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr "deze doelmachine heeft geen delayed branches"
-#: toplev.c:4883
-msgid "profiling does not work without a frame pointer"
-msgstr ""
-
-#: toplev.c:4898
+#: toplev.c:5112
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine"
-#: toplev.c:4961
+#: toplev.c:5175
#, fuzzy
msgid "-ffunction-sections not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:4966
+#: toplev.c:5180
#, fuzzy
msgid "-fdata-sections not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:4973
+#: toplev.c:5187
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: toplev.c:4980
+#: toplev.c:5194
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: toplev.c:4986
+#: toplev.c:5200
#, fuzzy
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "-f%sleading-underscore wordt niet ondersteund op deze doelmachine"
-#: toplev.c:4993
+#: toplev.c:5209
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
+
+#: toplev.c:5215
msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: toplev.c:5114
+#: toplev.c:5327
#, c-format
msgid "error writing to %s"
msgstr ""
-#: java/jcf-parse.c:1000 toplev.c:5116
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, fuzzy, c-format
msgid "error closing %s"
msgstr "#error %s"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-#, fuzzy
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "Floating-point getallen zijn niet toegestaan in #if-expressies"
-
-#: tradcif.y:277
-msgid "invalid number in #if expression"
-msgstr ""
-
-#: tradcif.y:358
-#, fuzzy
-msgid "invalid character constant in #if"
-msgstr "niet-beëindigde karakterconstante"
-
-#: tradcif.y:395
-#, fuzzy
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "stringconstantes zijn niet toegestaan in #if-expressies"
-
-#: tradcif.y:408
-#, fuzzy
-msgid "invalid token in expression"
-msgstr "Ongeldig token in expressie"
-
-#: tradcif.y:499
-#, fuzzy
-msgid "octal character constant does not fit in a byte"
-msgstr "karakterconstante te lang"
-
-#: tradcif.y:520
-#, fuzzy
-msgid "hex character constant does not fit in a byte"
-msgstr "karakterconstante te lang"
-
-#: tradcif.y:551
-#, fuzzy
-msgid "empty #if expression"
-msgstr "Ongeldig token in expressie"
-
-#: tradcif.y:565
-msgid "Junk after end of expression."
-msgstr "Brol na einde van expressie."
-
-#: tradcpp.c:138
-msgid "macro or #include recursion too deep"
-msgstr ""
-
-#: tradcpp.c:555
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr ""
-
-#: tradcpp.c:571
-#, fuzzy
-msgid "-traditional is not supported in C++"
-msgstr "-Wuninitialized wordt niet ondersteund zonder -O"
-
-#: tradcpp.c:573
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:587
-#, fuzzy
-msgid "filename missing after -i option"
-msgstr "Bestandsnaam ontbreekt na -o optie"
-
-#: tradcpp.c:605
-#, fuzzy
-msgid "filename missing after -o option"
-msgstr "Bestandsnaam ontbreekt na -o optie"
-
-#: tradcpp.c:664
-#, fuzzy, c-format
-msgid "target missing after %s option"
-msgstr "Bestandsnaam ontbreekt na %s optie"
-
-#: tradcpp.c:678
-#, fuzzy, c-format
-msgid "filename missing after %s option"
-msgstr "Bestandsnaam ontbreekt na %s optie"
-
-#: tradcpp.c:703
-#, fuzzy, c-format
-msgid "macro name missing after -%c option"
-msgstr "Macro-naam ontbreekt na -D optie"
-
-#: tradcpp.c:723
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:728
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr ""
-
-#: tradcpp.c:754
-#, fuzzy
-msgid "directory name missing after -I option"
-msgstr "Foldernaam ontbreekt na `%s' optie"
-
-#: tradcpp.c:1434 tradcpp.c:3926
-msgid "`/*' within comment"
-msgstr "`/*' binnen commentaar"
-
-# 'Voorwaarde' is niet echt een vertaling van 'conditional'.
-# Is er een betere manier?
-#: tradcpp.c:1810
-#, fuzzy, c-format
-msgid "unterminated #%s conditional"
-msgstr "niet-beëindigde `#%s' voorwaarde"
-
-#: tradcpp.c:2169
-#, fuzzy
-msgid "not in any file?!"
-msgstr "cccp fout: in geen enkel bestand?!"
-
-#: tradcpp.c:2275
-msgid "`defined' must be followed by ident or (ident)"
-msgstr ""
-
-#: tradcpp.c:2279
-msgid "cccp error: invalid special hash type"
-msgstr "cccp fout: ongeldig soort van speciale hash"
-
-#: tradcpp.c:2377 tradcpp.c:2447
-msgid "#include expects \"fname\" or <fname>"
-msgstr ""
-
-#: tradcpp.c:2532
-#, fuzzy, c-format
-msgid "no include path in which to find %.*s"
-msgstr "Geen include-pad waarin %s kan gevonden worden"
-
-#: tradcpp.c:2710
-msgid "invalid macro name"
-msgstr "ongeldige macronaam"
-
-#: tradcpp.c:2718
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr ""
-
-#: tradcpp.c:2723
-msgid "\"defined\" cannot be used as a macro name"
-msgstr ""
-
-#: tradcpp.c:2750
-#, fuzzy
-msgid "parameter name starts with a digit in #define"
-msgstr "argument voor `#%s' begint met cijfer"
-
-# Is 'interpunctie' hier een goede vertaling voor 'punctuation'
-#: tradcpp.c:2760
-#, fuzzy
-msgid "badly punctuated parameter list in #define"
-msgstr "slechte interpunctie van parameterlijst in `#define'"
-
-#: tradcpp.c:2768
-#, fuzzy
-msgid "unterminated parameter list in #define"
-msgstr "niet-beëindigde parameterlijst in `#define'"
-
-#: tradcpp.c:2816
-#, fuzzy, c-format
-msgid "\"%.*s\" redefined"
-msgstr "`%.*s' opnieuw gedefinieerd"
-
-#: tradcpp.c:3073
-#, fuzzy
-msgid "# operator should be followed by a macro argument name"
-msgstr "de `#' operator zou door een naam van een macro-argument gevolgd moeten worden"
-
-#: tradcpp.c:3120 tradcpp.c:3146 tradcpp.c:3160 tradcpp.c:3167 tradcpp.c:3192
-#, fuzzy
-msgid "invalid format #line command"
-msgstr "`#line'-commando in slecht formaat"
-
-# is ongedefinieerd beter? ik denk van nie
-#: tradcpp.c:3218
-#, fuzzy
-msgid "undefining `defined'"
-msgstr "`%s' wordt geondefinieerd"
-
-# is ongedefinieerd beter? ik denk van nie
-#: tradcpp.c:3222
-#, c-format
-msgid "undefining `%s'"
-msgstr "`%s' wordt geondefinieerd"
-
-# OK, OK... Dit hoort thuis in lang nl@be, niet nl
-#: tradcpp.c:3278
-#, fuzzy
-msgid "extra text at end of directive"
-msgstr "brol aan einde van `#line'-commando"
-
-#: tradcpp.c:3385
-#, fuzzy, c-format
-msgid "#error%.*s"
-msgstr "#error %s"
-
-#: tradcpp.c:3395
-#, fuzzy, c-format
-msgid "#warning%.*s"
-msgstr "#warning %s"
-
-#: tradcpp.c:3551
-#, fuzzy
-msgid "#elif not within a conditional"
-msgstr "`#elif' niet binnen een voorwaarde"
-
-#: tradcpp.c:3808
-#, fuzzy, c-format
-msgid "#%s not within a conditional"
-msgstr "`#%s' niet binnen een voorwaarde"
-
-#: tradcpp.c:3816
-#, fuzzy
-msgid "#else or #elif after #else"
-msgstr "`#else' of `#elif' na `#else'"
-
-#: tradcpp.c:3856
-#, fuzzy
-msgid "#else not within a conditional"
-msgstr "`#else' niet binnen een voorwaarde"
-
-#: tradcpp.c:3887
-#, fuzzy
-msgid "unbalanced #endif"
-msgstr "niet-gebalanceerde `#endif'"
-
-#: tradcpp.c:3981
-msgid "unterminated string or character constant"
-msgstr "niet-beëindigde string- of karakterconstante"
-
-#: tradcpp.c:4139
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "argumenten aan macro `%s' gegeven"
-
-#: tradcpp.c:4145
-#, fuzzy, c-format
-msgid "no args to macro `%s'"
-msgstr "argumenten aan macro `%s' gegeven"
-
-#: tradcpp.c:4147
-#, fuzzy, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "argumenten aan macro `%s' gegeven"
-
-#: tradcpp.c:4149
-#, fuzzy, c-format
-msgid "only %d args to macro `%s'"
-msgstr "argumenten aan macro `%s' gegeven"
-
-#: tradcpp.c:4151
-#, fuzzy, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: tradcpp.c:4748
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-
-#: tree-dump.c:841
+#: tree-dump.c:702
#, fuzzy, c-format
msgid "could not open dump file `%s'"
msgstr "kan bestand '%s' niet openen"
-#: tree-dump.c:917
+#: tree-dump.c:778
#, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr ""
-#: tree.c:3841
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr "arrays van functies zijn niet betekenisvol"
-#: tree.c:3898
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: tree.c:4645
+#: tree.c:4557
msgid "invalid initializer for bit string"
msgstr "ongeldige beginwaarde voor bit-string"
-#: tree.c:4704
+#: tree.c:4616
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr ""
-#: tree.c:4721
+#: tree.c:4633
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr ""
-#: config/i386/winnt.c:522 varasm.c:451
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr ""
-#: varasm.c:877
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr "registernaam niet opgegeven voor `%s'"
-#: varasm.c:879
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr "ongeldige registernaam voor `%s'"
-#: varasm.c:882
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr "datatype van `%s' is niet geschikt voor een register"
-#: varasm.c:885
+#: varasm.c:849
#, fuzzy, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr "het registernummer voor `%s' is niet geschikt voor dat datatype"
-#: varasm.c:894
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr "globale registervariabele heeft beginwaarde"
-#: varasm.c:897
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr "'volatile' registervariabelen werken niet zoals U zou willen"
-#: varasm.c:930
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr "registernaam opgegeven voor niet-registervariabele `%s'"
-#: varasm.c:1537
-#, c-format
-msgid "size of variable `%s' is too large"
-msgstr "variabele `%s' is te groot"
-
-#: varasm.c:1577
+#: varasm.c:1542
#, fuzzy, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr "alignment van `%s' is groter dan het maximale alignment van het objectbestand. %d wordt gebruikt."
-#: varasm.c:1628
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.c:1610
#, fuzzy, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr "het gevraagde alignment voor %s is groter dan het geïmplementeerde aligment van %d."
-#: varasm.c:4449
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
msgstr "initializer voor integerwaarde is te ingewikkeld"
-#: varasm.c:4454
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
msgstr "initializer voor floating-point waarde is geen floating-point constante"
-#: varasm.c:4503
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr "onbekend type verzameling-constructor"
-#: varasm.c:4717
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: varasm.c:4909
-#, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "de zwakke declaratie van `%s' moet publiek zijn"
-
-#: varasm.c:4911
+#: varasm.c:4525 varasm.c:4568
#, c-format
msgid "weak declaration of `%s' must precede definition"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: varasm.c:4915
+#: varasm.c:4532
+#, fuzzy, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "de zwakke declaratie van `%s' moet publiek zijn"
+
+#: varasm.c:4575
#, fuzzy, c-format
msgid "weak declaration of `%s' not supported"
msgstr "de zwakke declaratie van `%s' moet publiek zijn"
-#: varasm.c:5011
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr "enkel zwakke aliasen worden in deze configuratie ondersteund"
-#: varasm.c:5016
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: varray.c:88
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
+
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr ""
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr ""
-#: params.def:46
-msgid "The maximum number of instructions in a function that is eligible for inlining"
-msgstr ""
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "-pipe wordt niet ondersteund"
-#: params.def:57
-msgid "The maximum number of instructions to consider to fill a delay slot"
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
msgstr ""
-#: params.def:68
-msgid "The maximum number of instructions to consider to find accurate live register information"
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
msgstr ""
-#: params.def:78
-msgid "The maximum length of scheduling's pending operations list"
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
msgstr ""
-#: params.def:85
-msgid "The maximum amount of memory to be allocated by GCSE"
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
msgstr ""
-#: params.def:90
-msgid "The maximum number of passes to make when doing GCSE"
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
msgstr ""
-#: config/darwin-c.c:76
-msgid "too many #pragma options align=reset"
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
msgstr ""
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103
-#: config/darwin-c.c:105
-#, fuzzy
-msgid "malformed '#pragma options', ignoring"
-msgstr "misvormde #pragma pack"
-
-# Moet 'signature-string' vertaald worden?
-#: config/darwin-c.c:108
-#, fuzzy
-msgid "junk at end of '#pragma options'"
-msgstr "Brol aan einde van signature-string."
-
-#: config/darwin-c.c:118
-msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
-#: config/darwin-c.c:131
-msgid "missing '(' after '#pragma unused', ignoring"
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: config/darwin-c.c:149
-msgid "missing ')' after '#pragma unused', ignoring"
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-# Moet 'signature-string' vertaald worden?
-#: config/darwin-c.c:152
-#, fuzzy
-msgid "junk at end of '#pragma unused'"
-msgstr "Brol aan einde van signature-string."
-
-#: config/nextstep.c:68
-msgid "optimization turned on"
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: config/nextstep.c:74
-msgid "optimization turned off"
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: config/nextstep.c:83
-msgid "optimization level restored"
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
msgstr ""
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
-#, fuzzy
-msgid "-msystem-v and -p are incompatible"
-msgstr "-mbsd en -mxopen zijn niet compatibel"
-
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
-#, fuzzy
-msgid "-msystem-v and -mthreads are incompatible"
-msgstr "-mbsd en -pedantic zijn niet compatibel"
-
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.c:1028
-#, c-format
-msgid "invalid %%Q value"
-msgstr "ongeldige waarde voor %%Q"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5355
-#, c-format
-msgid "invalid %%C value"
-msgstr "ongeldige waarde voor %%C"
-
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5200
-#: config/rs6000/rs6000.c:6110
-#, c-format
-msgid "invalid %%N value"
-msgstr "ongeldige waarde voor %%N"
-
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5271
-#: config/rs6000/rs6000.c:6072
-#, c-format
-msgid "invalid %%M value"
-msgstr "ongeldige waarde voor %%M"
-
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5263
-#: config/rs6000/rs6000.c:6037
-#, c-format
-msgid "invalid %%m value"
-msgstr "ongeldige waarde voor %%m"
-
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5224 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
-msgstr "ongeldige waarde voor %%L"
-
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:6118
-#, c-format
-msgid "invalid %%O value"
-msgstr "ongeldige waarde voor %%O"
-
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:5208
-#: config/rs6000/rs6000.c:6138
-#, c-format
-msgid "invalid %%P value"
-msgstr "ongeldige waarde voor %%P"
-
-#: config/a29k/a29k.c:1175
-#, c-format
-msgid "invalid %%V value"
-msgstr "ongeldige waarde voor %%V"
-
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
msgstr ""
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
msgstr ""
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
msgstr ""
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
msgstr ""
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
msgstr ""
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
msgstr ""
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
msgstr ""
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
msgstr ""
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr ""
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+#, fuzzy
+msgid "malformed '#pragma options', ignoring"
+msgstr "misvormde #pragma pack"
+
+# Moet 'signature-string' vertaald worden?
+#: config/darwin-c.c:107
+#, fuzzy
+msgid "junk at end of '#pragma options'"
+msgstr "Brol aan einde van signature-string."
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr ""
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
+#: config/darwin-c.c:130
+msgid "missing '(' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
+#: config/darwin-c.c:148
+msgid "missing ')' after '#pragma unused', ignoring"
msgstr ""
-#: config/a29k/a29k.h:116
+# Moet 'signature-string' vertaald worden?
+#: config/darwin-c.c:151
#, fuzzy
-msgid "Store locals in argument registers"
-msgstr "teveel argumenten voor functie"
-
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
-msgstr ""
+msgid "junk at end of '#pragma unused'"
+msgstr "Brol aan einde van signature-string."
-#: config/a29k/a29k.h:118 config/i960/i960.h:289 config/mips/mips.h:408
-msgid "Use software floating point"
-msgstr ""
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+#, fuzzy
+msgid "-msystem-v and -p are incompatible"
+msgstr "-mbsd en -mxopen zijn niet compatibel"
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
-msgstr ""
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+#, fuzzy
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr "-mbsd en -pedantic zijn niet compatibel"
-#: config/alpha/alpha.c:273
+#: config/alpha/alpha.c:342
#, fuzzy, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "-pipe wordt niet ondersteund"
-#: config/alpha/alpha.c:297
+#: config/alpha/alpha.c:366
#, fuzzy
msgid "-mieee not supported on Unicos/Mk"
msgstr "-pipe wordt niet ondersteund"
-#: config/alpha/alpha.c:308
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr ""
-#: config/alpha/alpha.c:325
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr "slechte waarde `%s' voor optie -mtrap-precision"
-#: config/alpha/alpha.c:339
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr "slechte waarde `%s' voor optie -mfp-rounding-mode"
-#: config/alpha/alpha.c:354
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr "slechte waarde `%s' voor optie -mfp-trap-mode"
-#: config/alpha/alpha.c:373 config/alpha/alpha.c:385
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "slechte waarde `%s' voor optie -mcpu"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr "slechte waarde `%s' voor optie -mcpu"
-#: config/alpha/alpha.c:392
+#: config/alpha/alpha.c:473
#, fuzzy
msgid "trap mode not supported on Unicos/Mk"
msgstr "trapmodus niet ondersteund voor VAX-floats"
-#: config/alpha/alpha.c:399
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr "fp vervollediging in software heeft -mtrap-precision=i nodig"
-#: config/alpha/alpha.c:415
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: config/alpha/alpha.c:420
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr "trapmodus niet ondersteund voor VAX-floats"
# goed Nederlands voor 'latency'
-#: config/alpha/alpha.c:449
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr "L%d cache-latency niet gekend voor %s"
-#: config/alpha/alpha.c:464
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "slechte waarde `%s' voor -mmeroy-latency"
-#: config/alpha/alpha.c:5164 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr ""
-#: config/alpha/alpha.c:5174
+#: config/alpha/alpha.c:5625
#, fuzzy, c-format
msgid "invalid %%J value"
msgstr "ongeldige waarde voor %%E"
-#: config/alpha/alpha.c:5184 config/ia64/ia64.c:3525
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "ongeldige waarde voor %%r"
-#: config/alpha/alpha.c:5194 config/rs6000/rs6000.c:6184
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "ongeldige waarde voor %%R"
-#: config/alpha/alpha.c:5216 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "ongeldige waarde voor %%N"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "ongeldige waarde voor %%P"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "ongeldige waarde voor %%h"
-#: config/alpha/alpha.c:5306
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "ongeldige waarde voor %%L"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "ongeldige waarde voor %%m"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "ongeldige waarde voor %%M"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "ongeldige waarde voor %%U"
-#: config/alpha/alpha.c:5318 config/alpha/alpha.c:5332 config/romp/romp.c:698
-#: config/rs6000/rs6000.c:6192
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "ongeldige waarde voor %%s"
-#: config/alpha/alpha.c:5392 config/rs6000/rs6000.c:5899
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "ongeldige waarde voor %%C"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "ongeldige waarde voor %%E"
-#: config/alpha/alpha.c:5413 config/romp/romp.c:973
-#: config/rs6000/rs6000.c:6500
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "onbekend type verzameling-constructor"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "ongeldige code voor %%xn"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:220 config/i386/i386.h:285 config/i386/i386.h:287
-#: config/i386/i386.h:289 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329
-#: config/s390/s390.h:51 config/sparc/sparc.h:552 config/sparc/sparc.h:557
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:221 config/i386/i386.h:286 config/i386/i386.h:288
-#: config/rs6000/rs6000.h:331 config/sparc/sparc.h:554
-#: config/sparc/sparc.h:559
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr ""
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr ""
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr ""
-#: config/alpha/alpha.h:225
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr ""
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr ""
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr ""
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:232
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:293
#, fuzzy
msgid "Do not emit complex integer constants to read-only memory"
msgstr "complexe integerconstante is te breed voor `complex int'"
-#: config/alpha/alpha.h:235
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:236
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr ""
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr ""
-#: config/alpha/alpha.h:240
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr ""
-#: config/alpha/alpha.h:243
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr ""
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr ""
-#: config/alpha/alpha.h:248
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr ""
-#: config/alpha/alpha.h:251
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr ""
-#: config/alpha/alpha.h:253
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr ""
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:281
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr ""
-#: config/alpha/alpha.h:287
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr ""
-#: config/alpha/alpha.h:289
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr ""
-#: config/alpha/alpha.h:291
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr ""
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr ""
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "slechte waarde (%s) voor optie -mcpu"
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, fuzzy, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "het argument van `asm' is geen constante string"
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr ""
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2278
-msgid "invalid operand to %R code"
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
msgstr "ongeldige operand voor %R-code"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2301
-msgid "invalid operand to %H/%L code"
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
msgstr "ongeldige operand voor %H/%L-code"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2378
-msgid "invalid operand to %U code"
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
msgstr "ongeldige operand voor %U-code"
-#: config/arc/arc.c:1776
-msgid "invalid operand to %V code"
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
msgstr "ongeldige operand voor %V-code"
# Hoe moet dit exact geïnterpreteerd worden?
# Zowel 'operand van uitvoercode' als 'code voor operanduitvoer' is mogelijk.
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2417 config/sparc/sparc.c:6010
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "ongeldige operand voor uitvoercode"
-#: config/arm/arm.c:439
+#: config/arm/arm.c:458
#, fuzzy, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "optie -mcpu=%s geeft conflicten met optie -mtune="
-#: config/arm/arm.c:449 config/rs6000/rs6000.c:441 config/sparc/sparc.c:383
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "slechte waarde (%s) foor optie %s"
-#: config/arm/arm.c:585
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr "doel-CPU ondersteunt APCS-32 niet"
-#: config/arm/arm.c:590
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr "doel-CPU ondersteunt APCS-26 niet"
-#: config/arm/arm.c:596
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr "doel-CPU ondersteunt geen interworking"
-#: config/arm/arm.c:602
+#: config/arm/arm.c:621
#, fuzzy
msgid "target CPU does not support THUMB instructions"
msgstr "doel-CPU ondersteunt geen interworking"
-#: config/arm/arm.c:616
+#: config/arm/arm.c:635
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:619
+#: config/arm/arm.c:638
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:622
+#: config/arm/arm.c:641
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:628
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr "interworking forceert het gebruikt van APCS-32"
-#: config/arm/arm.c:634
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check is niet compatibel met -mno-apcs-frame"
-#: config/arm/arm.c:642
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/arm/arm.c:645
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS reentrant code wordt niet ondersteund. Genegeerd"
-#: config/arm/arm.c:653
+#: config/arm/arm.c:672
#, fuzzy
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g met -fomit-frame-pointer geeft mogelijk geen fatsoenlijke debug-mogelijkheden"
-#: config/arm/arm.c:661
+#: config/arm/arm.c:680
#, fuzzy
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "Het doorgeven van floating-point argumenten in fp registers wordt nog niet ondersteund"
-#: config/arm/arm.c:690
+#: config/arm/arm.c:709
#, fuzzy, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "Ongeldige optie voor floating-point emulatie: -mfpe-%s"
-#: config/arm/arm.c:714
+#: config/arm/arm.c:733
#, fuzzy
msgid "structure size boundary can only be set to 8 or 32"
msgstr "Grens voor structure-grootte kan enkel op 8 of 32 insgesteld worden"
-#: config/arm/arm.c:722
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr ""
-#: config/arm/arm.c:731
+#: config/arm/arm.c:748
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr ""
-#: config/arm/arm.c:1975 config/arm/arm.c:1998 config/avr/avr.c:4703
-#: config/c4x/c4x.c:4650 config/h8300/h8300.c:3019 config/i386/i386.c:1254
-#: config/i386/i386.c:1283 config/m68hc11/m68hc11.c:1160
-#: config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1044
-#: config/rs6000/rs6000.c:10412 config/sh/sh.c:4703 config/sh/sh.c:4723
-#: config/sh/sh.c:4762 config/stormy16/stormy16.c:1999 config/v850/v850.c:2044
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, fuzzy, c-format
msgid "`%s' attribute only applies to functions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: config/arm/arm.c:9265
+#: config/arm/arm.c:9459
msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:9945
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:10137
+#: config/arm/arm.c:10389
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
#, c-format
msgid "initialized variable `%s' is marked dllimport"
msgstr "variable met beginwaarde `%s' is als dllimport aangeduid"
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr "statische variable `%s' is als dllimport aangeduid"
-#: config/arm/arm.h:424
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr ""
-#: config/arm/arm.h:427
+#: config/arm/arm.h:419
#, fuzzy
msgid "Store function names in object code"
msgstr "init-functie gevonden in object %s"
-#: config/arm/arm.h:431
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:433
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr ""
-#: config/arm/arm.h:437
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr ""
-#: config/arm/arm.h:440
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr ""
-#: config/arm/arm.h:443
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr ""
-#: config/arm/arm.h:450
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr ""
-#: config/arm/arm.h:452 config/i960/i960.h:287
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr ""
-#: config/arm/arm.h:454
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr ""
-#: config/arm/arm.h:456
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr ""
-#: config/arm/arm.h:458
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr ""
-#: config/arm/arm.h:460
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr ""
-#: config/arm/arm.h:463
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr ""
-#: config/arm/arm.h:466
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr ""
-#: config/arm/arm.h:469
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr ""
-#: config/arm/arm.h:472
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr ""
-#: config/arm/arm.h:475
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr ""
-#: config/arm/arm.h:479
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:482
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:485
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr ""
-#: config/arm/arm.h:489
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
msgstr ""
-#: config/arm/arm.h:499
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr ""
-#: config/arm/arm.h:501
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr ""
-#: config/arm/arm.h:505
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr ""
-#: config/arm/arm.h:507
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr ""
-#: config/arm/arm.h:509
+#: config/arm/arm.h:501
#, fuzzy
msgid "Specify the register to be used for PIC addressing"
msgstr "Ongeldig register in ybase-addressering"
@@ -8865,106 +9113,100 @@ msgstr "Ongeldig register in ybase-addressering"
msgid "Ignore dllimport attribute for functions"
msgstr ""
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr ""
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr ""
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr ""
-
-#: config/avr/avr.c:221
-#, fuzzy, c-format
-msgid "MCU `%s' not supported"
-msgstr "-pipe wordt niet ondersteund"
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
#, fuzzy
msgid "internal compiler error. Bad address:"
msgstr "Interne compilerfout."
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
#, fuzzy
msgid "internal compiler error. Unknown mode:"
msgstr "Interne compilerfout."
# (%s = 'parameter <NUM>')
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
#, fuzzy
msgid "invalid insn:"
msgstr "ongeldige %s"
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957
-#: config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236
-#: config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307
-#: config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
#, fuzzy
msgid "unknown move insn:"
msgstr "onbekende machine-modus `%s'"
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr ""
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
#, fuzzy
msgid "internal compiler error. Incorrect shift:"
msgstr "Interne compilerfout."
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
#, fuzzy
msgid "only initialized variables can be placed into program memory area"
msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "-pipe wordt niet ondersteund"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr ""
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr ""
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr ""
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr ""
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr ""
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr ""
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr ""
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr ""
@@ -8976,138 +9218,138 @@ msgstr ""
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2566
+#: config/avr/avr.h:2450
#, fuzzy
msgid "trampolines not supported"
msgstr "-pipe wordt niet ondersteund"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, fuzzy, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "misvormde #pragma pack"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr ""
# Moet 'signature-string' vertaald worden?
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, fuzzy, c-format
msgid "junk at end of '#pragma %s'"
msgstr "Brol aan einde van signature-string."
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr ""
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr ""
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr ""
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr "c4x_address_cost: Ongeldige addresseringsmodus"
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr ""
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr ""
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr ""
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr ""
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr ""
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr ""
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
#, fuzzy
msgid "mode not QImode"
msgstr "modus van `%s' is geen modus"
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
#, fuzzy
msgid "invalid indirect memory address"
msgstr "Ongeldig indirect geheugenadres"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
#, fuzzy
msgid "invalid indirect (S) memory address"
msgstr "Ongeldig indirect (S) geheugenadres"
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr ""
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr ""
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr ""
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr ""
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr ""
# klinkt niet
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: adres kan niet geoffset worden"
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr ""
@@ -9115,7 +9357,6 @@ msgstr ""
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9151,526 +9392,552 @@ msgstr ""
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr ""
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr ""
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr ""
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr ""
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr ""
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr ""
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr ""
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr ""
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
#, fuzzy
msgid "Emit code compatible with TI tools"
msgstr "incompatibele types bij %s"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr ""
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr ""
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
#, fuzzy
msgid "Pass arguments in registers"
msgstr "teveel argumenten voor functie"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr ""
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr ""
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr ""
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr ""
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
#, fuzzy
msgid "Enable use of DB instruction"
msgstr "ongeldig gebruik van `restrict'"
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr ""
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr ""
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr ""
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
#, fuzzy
msgid "Don't force constants into registers"
msgstr "numerieke constante zonder cijfers"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
msgstr ""
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
msgstr ""
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr ""
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr ""
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
msgstr ""
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
msgstr ""
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
msgstr ""
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
msgstr ""
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
+#: config/cris/cris.c:1233
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr ""
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr ""
+#: config/cris/cris.c:1312
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr ""
+#: config/cris/cris.c:1324
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr ""
+#: config/cris/cris.c:1334
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr ""
+#: config/cris/cris.c:1341
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "ongeldige operand voor %p-code"
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr ""
+#: config/cris/cris.c:1380
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr ""
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr ""
+# of is het 'slechte register-uitbreidingscode'?
+#: config/cris/cris.c:1417
+#, fuzzy
+msgid "bad register"
+msgstr "Slechte code voor registeruitbreiding"
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr ""
+#: config/cris/cris.c:1455
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr ""
+#: config/cris/cris.c:1472
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:878
-#, c-format
-msgid "stackframe too big: %d bytes"
-msgstr ""
+#: config/cris/cris.c:1497
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1193
-msgid "allocated but unused delay list in epilogue"
-msgstr ""
+#: config/cris/cris.c:1505
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1203
-msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
-msgstr ""
+#: config/cris/cris.c:1519
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "ongeldige operand voor %N-code"
-#: config/cris/cris.c:1497
+#: config/cris/cris.c:1528
+#, fuzzy
+msgid "invalid operand modifier letter"
+msgstr "ongeldige operand van %s"
+
+#: config/cris/cris.c:1536
#, fuzzy, c-format
msgid "internal error: bad register: %d"
msgstr "formaatstring niet beëindigd"
-#: config/cris/cris.c:1966
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+#, fuzzy
+msgid "unexpected operand"
+msgstr "ongeldige operand van %s"
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+#, fuzzy
+msgid "unrecognized address"
+msgstr "geen argumenten"
+
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2253
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/cris/cris.c:2335 config/cris/cris.c:2393
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
#, fuzzy
msgid "unrecognized supposed constant"
msgstr "signature-string niet herkend"
-#: config/cris/cris.c:2434
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/cris/cris.c:2453
+#: config/cris/cris.c:2492
#, fuzzy, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-mregparm=%d ligt niet tussen 0 en %d"
-#: config/cris/cris.c:2481
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/cris/cris.c:2517
+#: config/cris/cris.c:2556
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#: config/cris/cris.c:2535
+#: config/cris/cris.c:2574
#, fuzzy
-msgid "-fPIC not supported in this configuration"
+msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: config/cris/cris.c:2551
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr ""
-#: config/cris/cris.c:2742 config/cris/cris.c:2787
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr ""
-#: config/cris/cris.c:2888
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2901
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
#, fuzzy
msgid "unexpected address expression"
msgstr "ongeldige waarheidsexpressie"
-#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2915
-msgid "unexpected PIC symbol"
-msgstr ""
-
-#: config/cris/cris.c:2919
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr ""
-#: config/cris/cris.c:2928
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr ""
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr ""
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr ""
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:333
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr ""
-#: config/cris/cris.h:338
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr ""
-#: config/cris/cris.h:342
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr ""
-#: config/cris/cris.h:345
+#: config/cris/cris.h:352
msgid "Do not use condition codes from normal instructions"
msgstr ""
-#: config/cris/cris.h:349
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr ""
-#: config/cris/cris.h:352
+#: config/cris/cris.h:359
msgid "Do not tune stack alignment"
msgstr ""
-#: config/cris/cris.h:355
+#: config/cris/cris.h:362
msgid "Do not tune writable data alignment"
msgstr ""
-#: config/cris/cris.h:358
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr ""
-#: config/cris/cris.h:367
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr ""
-#: config/cris/cris.h:380
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr ""
-#: config/cris/cris.h:383
+#: config/cris/cris.h:390
msgid "Do not emit function prologue or epilogue"
msgstr ""
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:387
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr ""
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:393
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr ""
-#: config/cris/cris.h:425
+#: config/cris/cris.h:432
msgid "Generate code for the specified chip or CPU version"
msgstr ""
-#: config/cris/cris.h:427
+#: config/cris/cris.h:434
#, fuzzy
msgid "Tune alignment for the specified chip or CPU version"
msgstr "er kan geen alignment opgegeven worden voor `%s'"
-#: config/cris/cris.h:429
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr ""
#. Node: Profiling
-#: config/cris/cris.h:1025
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr ""
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr ""
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr ""
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr ""
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775
-#: config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr ""
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr ""
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr ""
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr ""
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr ""
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr ""
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr ""
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr ""
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr ""
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr ""
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr ""
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr ""
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr ""
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr ""
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr ""
@@ -9685,36 +9952,32 @@ msgid "invalid addressing mode"
msgstr "Ongeldige addresseringsmodus"
# of is het 'slechte register-uitbreidingscode'?
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
#, fuzzy
msgid "bad register extension code"
msgstr "Slechte code voor registeruitbreiding"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
#, fuzzy
msgid "invalid offset in ybase addressing"
msgstr "Ongeldige offset in ybase-addressering"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
#, fuzzy
msgid "invalid register in ybase addressing"
msgstr "Ongeldig register in ybase-addressering"
-#: config/dsp16xx/dsp16xx.c:1990
-msgid "inline float constants not supported on this host"
-msgstr "inline floatconstantes worden op deze host niet ondersteund"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
#, fuzzy
msgid "invalid shift operator in emit_1600_core_shift"
msgstr "Ongeldige shift-operator in emit_1600_core_shift"
-#: config/dsp16xx/dsp16xx.c:2469
+#: config/dsp16xx/dsp16xx.c:2428
#, fuzzy
msgid "invalid mode for gen_tst_reg"
msgstr "Ongeldige modus voor gen_tst_reg"
-#: config/dsp16xx/dsp16xx.c:2541
+#: config/dsp16xx/dsp16xx.c:2500
#, fuzzy
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr "Ongeldige modus voor integervergelijking in gen_compare_reg"
@@ -9724,95 +9987,94 @@ msgstr "Ongeldige modus voor integervergelijking in gen_compare_reg"
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
msgid "Generate code for near calls"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
msgid "Generate code for near jumps"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr ""
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1219 config/dsp16xx/dsp16xx.h:1224
-#: config/dsp16xx/dsp16xx.h:1229 config/dsp16xx/dsp16xx.h:1809
-#: config/dsp16xx/dsp16xx.h:1814
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
#, fuzzy
msgid "profiling not implemented yet"
msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
@@ -9820,146 +10082,294 @@ msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1240 config/dsp16xx/dsp16xx.h:1252
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
#, fuzzy
msgid "trampolines not yet implemented"
msgstr "parameter wijst naar een onvolledig type"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
msgstr ""
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
+#: config/fr30/fr30.c:480
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:500
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:521
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:529
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:546
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:553
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "ongeldige operand voor %N-code"
+
+#: config/fr30/fr30.c:570
+msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:456
-msgid "fr30_print_operand_address: unhandled address"
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/fr30/fr30.h:63
+msgid "Assume small address space"
msgstr ""
-#: config/fr30/fr30.c:483
+#: config/frv/frv.c:410 config/frv/frv.c:428
#, c-format
-msgid "fr30_print_operand: unrecognized %p code"
+msgid "Unknown cpu: -mcpu=%s"
msgstr ""
-#: config/fr30/fr30.c:503
-msgid "fr30_print_operand: unrecognized %b code"
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
msgstr ""
-#: config/fr30/fr30.c:524
-msgid "fr30_print_operand: unrecognized %B code"
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
msgstr ""
-#: config/fr30/fr30.c:532
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
#, fuzzy
-msgid "fr30_print_operand: invalid operand to %A code"
+msgid "frv_print_operand: unknown code"
msgstr "ongeldige operand voor %N-code"
-#: config/fr30/fr30.c:549
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "het argument van `asm' is geen constante string"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "geen eerdere declaratie voor `%s'"
+
+#: config/frv/frv.c:9253
#, c-format
-msgid "fr30_print_operand: invalid %x code"
+msgid "`%s' expects a constant argument"
msgstr ""
-#: config/fr30/fr30.c:556
-msgid "fr30_print_operand: invalid %F code"
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "teveel argumenten voor procedure `%s'"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
msgstr ""
-#: config/fr30/fr30.c:572
-msgid "fr30_print_operand: unknown code"
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
msgstr ""
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621
-#: config/fr30/fr30.c:634
-msgid "fr30_print_operand: unhandled MEM"
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
msgstr ""
-#: config/fr30/fr30.h:57
-msgid "Assume small address space"
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
msgstr ""
-#: config/h8300/h8300.c:141
+#: config/h8300/h8300.c:314
#, fuzzy
msgid "-ms2600 is used without -ms"
msgstr "macro `%s' gebruikt zonder argumenten"
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "macro `%s' gebruikt zonder argumenten"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
msgstr ""
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
msgstr ""
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr ""
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr ""
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr ""
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr ""
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr ""
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+#, fuzzy
+msgid "Enable the normal mode"
+msgstr "incompatibele record-modus"
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr ""
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr ""
# Moet 'signature-string' vertaald worden?
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
#, fuzzy
msgid "junk at end of #pragma map"
msgstr "Brol aan einde van signature-string."
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
#, fuzzy
msgid "malformed #pragma map, ignored"
msgstr "misvormde #pragma pack(pop[,id])"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
#, fuzzy
msgid "internal error--no jump follows compare:"
msgstr "interne fout - dup-operatie"
@@ -9968,382 +10378,427 @@ msgstr "interne fout - dup-operatie"
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr ""
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr ""
-#: config/i386/i386.c:924
+#: config/i386/i386.c:1050
#, fuzzy, c-format
msgid "code model %s not supported in PIC mode"
msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
-#: config/i386/i386.c:934 config/sparc/sparc.c:346
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "slechte waarde (%s) voor optie -mcmodel="
-#: config/i386/i386.c:949
+#: config/i386/i386.c:1075
#, fuzzy, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "slechte waarde (%s) voor optie -mabi="
-#: config/i386/i386.c:952
+#: config/i386/i386.c:1078
#, fuzzy, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr "ANSI C ondersteunt de `%c' lengte-optie niet"
-#: config/i386/i386.c:955
+#: config/i386/i386.c:1081
msgid "code model `large' not supported yet"
msgstr ""
-#: config/i386/i386.c:957
+#: config/i386/i386.c:1083
#, c-format
msgid "%i-bit mode not compiled in"
msgstr ""
-#: config/i386/i386.c:987 config/mips/mips.c:4972
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:998 config/mips/mips.c:4928
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:1017
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1030
+#: config/i386/i386.c:1154
#, fuzzy
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1035 config/i386/i386.c:1048 config/i386/i386.c:1061
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1043
+#: config/i386/i386.c:1167
#, fuzzy
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1056
+#: config/i386/i386.c:1180
#, fuzzy
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions=%d ligt niet tussen 0 en %d"
-#: config/i386/i386.c:1094
+#: config/i386/i386.c:1218
#, fuzzy, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred_stack_boundary=%d ligt niet tussen 2 en 31"
-#: config/i386/i386.c:1106
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d ligt niet tussen 0 en 5"
-#: config/i386/i386.c:1123
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "slechte waarde (%s) voor optie -msdata"
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:1125
+#: config/i386/i386.c:1265
#, fuzzy
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
-#: config/i386/i386.c:1141 config/i386/i386.c:1152
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
#, fuzzy
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "pointer naar functie gebruikt in rekensom"
-#: config/i386/i386.c:1157
+#: config/i386/i386.c:1297
#, fuzzy
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "pointer naar functie gebruikt in rekensom"
-#: config/i386/i386.c:1164
+#: config/i386/i386.c:1304
#, fuzzy, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "slechte waarde (%s) voor de -march= optie"
-#: config/i386/i386.c:1294
+#: config/i386/i386.c:1436
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr ""
-#: config/i386/i386.c:1300
+#: config/i386/i386.c:1442
#, fuzzy, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "kan het `%s' attribuut niet instellen na een definitie"
-#: config/i386/i386.c:5328
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.c:6386
msgid "invalid UNSPEC as operand"
msgstr "ongeldige UNSPEC als operand"
-#: config/i386/i386.c:5529
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:5544
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:5791
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:9774
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "ongeldige operand van %s"
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "ongeldige operand voor %P"
+
+#: config/i386/i386.c:11271
#, fuzzy
msgid "unknown insn mode"
msgstr "onbekende machine-modus `%s'"
#. @@@ better error message
-#: config/i386/i386.c:11617 config/i386/i386.c:11650
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
msgid "selector must be an immediate"
msgstr ""
#. @@@ better error message
-#: config/i386/i386.c:11808 config/i386/i386.c:11836
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
msgid "mask must be an immediate"
msgstr ""
-#: config/i386/winnt.c:94
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "`defined' zonder een naam"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "functie-definitie als `auto' gedeclareerd"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "statische variable `%s' is als dllimport aangeduid"
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr ""
+
+#: config/i386/winnt.c:143
#, fuzzy, c-format
msgid "`%s' attribute only applies to variables"
msgstr "het `%s' attribuut heeft geen betekenis voor types"
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr ""
+
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "functie `%s' geherdeclareerd met noinline attribuut"
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr ""
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr ""
+
+#: config/i386/winnt.c:364
#, fuzzy, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr "`%s' gedeclareerd als geëxporteerd naar én geïmporteerd uit een DLL."
-#: config/i386/cygwin.h:51
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr ""
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr ""
+
+#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr ""
-#: config/i386/cygwin.h:53
+#: config/i386/cygwin.h:46
msgid "Use the Mingw32 interface"
msgstr ""
-#: config/i386/cygwin.h:54
+#: config/i386/cygwin.h:47
msgid "Create GUI application"
msgstr ""
-#: config/i386/cygwin.h:55
+#: config/i386/cygwin.h:48
msgid "Don't set Windows defines"
msgstr ""
-#: config/i386/cygwin.h:56
+#: config/i386/cygwin.h:49
msgid "Set Windows defines"
msgstr ""
-#: config/i386/cygwin.h:58
+#: config/i386/cygwin.h:50
msgid "Create console application"
msgstr ""
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
msgid "Generate code for a DLL"
msgstr ""
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
msgid "Ignore dllimport for functions"
msgstr ""
-#: config/i386/cygwin.h:63
+#: config/i386/cygwin.h:55
msgid "Use Mingw-specific thread support"
msgstr ""
-#: config/i386/cygwin.h:257
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr ""
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr ""
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr ""
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr ""
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr ""
-
-#: config/i386/dgux.h:69
-#, fuzzy
-msgid "Warn when a function arg is a structure"
-msgstr "argument #%d is een structure"
-
-#: config/i386/dgux.h:252
-#, fuzzy
-msgid "argument is a structure"
-msgstr "argument #%d is een structure"
-
-#: config/i386/djgpp.h:201
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr ""
-#: config/i386/i386.h:45 config/mips/mips.h:186
-msgid "half-pic init called on systems that don't support it"
-msgstr ""
-
#. Deprecated.
-#: config/i386/i386.h:297
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
#, fuzzy
msgid "Alternate calling convention"
msgstr "Onbeëindigde stringconstante"
-#: config/i386/i386.h:299 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:301
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:303
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:305
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:307
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:309 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:311
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
-#: config/i386/i386.h:313
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:315
+#: config/i386/i386.h:324
#, fuzzy
msgid "Do not return values of functions in FPU registers"
msgstr "grootte van teruggeefwaarde van `%s' is %u bytes"
-#: config/i386/i386.h:317
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:319
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr ""
-#: config/i386/i386.h:321
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#: config/i386/i386.h:324
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:329
+#: config/i386/i386.h:338
#, fuzzy
msgid "Align destination of the string operations"
msgstr "ANSI C staat het testen van asserties niet toe"
-#: config/i386/i386.h:331
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:333
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:335
+#: config/i386/i386.h:344
#, fuzzy
msgid "Do not inline all known string operations"
msgstr "ANSI C staat het testen van asserties niet toe"
-#: config/i386/i386.h:337 config/i386/i386.h:342
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:339 config/i386/i386.h:344
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:346
+#: config/i386/i386.h:354
#, fuzzy
msgid "Support MMX built-in functions"
msgstr "ingebouwde functie `%s' is niet geïmplementeerd"
-#: config/i386/i386.h:348
+#: config/i386/i386.h:356
#, fuzzy
msgid "Do not support MMX built-in functions"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: config/i386/i386.h:351
+#: config/i386/i386.h:358
#, fuzzy
msgid "Support 3DNow! built-in functions"
msgstr "ingebouwde functie `%s' wordt verborgen"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:360
#, fuzzy
msgid "Do not support 3DNow! built-in functions"
msgstr "conflicterende types voor ingebouwde functie `%s'"
-#: config/i386/i386.h:356
+#: config/i386/i386.h:362
msgid "Support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:359
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:361
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:364
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
-#: config/i386/i386.h:366
+#: config/i386/i386.h:370
msgid "sizeof(long double) is 16"
msgstr ""
-#: config/i386/i386.h:368
+#: config/i386/i386.h:372
msgid "sizeof(long double) is 12"
msgstr ""
-#: config/i386/i386.h:370
+#: config/i386/i386.h:374
msgid "Generate 64bit x86-64 code"
msgstr ""
-#: config/i386/i386.h:372
+#: config/i386/i386.h:376
msgid "Generate 32bit i386 code"
msgstr ""
-#: config/i386/i386.h:374
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:376
+#: config/i386/i386.h:380
msgid "Do not use red-zone in the x86-64 code"
msgstr ""
@@ -10356,19 +10811,19 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:422 config/rs6000/rs6000.h:428 config/sparc/sparc.h:668
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr ""
-#: config/i386/i386.h:424
+#: config/i386/i386.h:411
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
-#: config/i386/i386.h:426
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr ""
-#: config/i386/i386.h:428
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr ""
@@ -10382,72 +10837,44 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:430 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
#, fuzzy
msgid "Loop code aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:432 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
#, fuzzy
msgid "Jump targets are aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:434 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
#, fuzzy
msgid "Function starts are aligned to this power of 2"
msgstr "gevraagd alignment is geen macht van 2"
-#: config/i386/i386.h:437
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr ""
-#: config/i386/i386.h:439
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr ""
-#: config/i386/i386.h:441
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr ""
-#: config/i386/i386.h:447
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
msgid "Use given assembler dialect"
msgstr ""
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr ""
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr ""
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr ""
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr ""
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr ""
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr ""
-
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr ""
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
msgstr ""
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr ""
@@ -10479,34 +10906,32 @@ msgstr ""
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr ""
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr ""
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr ""
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
#, fuzzy
msgid "malformed #pragma align - ignored"
msgstr "misvormde #pragma weak"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr ""
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8094
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr ""
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr ""
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr ""
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
#, fuzzy
msgid "stack limit expression is not supported"
msgstr "-pipe wordt niet ondersteund"
@@ -10518,315 +10943,328 @@ msgstr "-pipe wordt niet ondersteund"
#. An empty string NAME is used to identify the default VALUE.
#. ??? Not all ten of these architecture variations actually exist, but I
#. am not sure which are real and which aren't.
-#: config/i960/i960.h:246
+#: config/i960/i960.h:240
msgid "Generate SA code"
msgstr ""
-#: config/i960/i960.h:249
+#: config/i960/i960.h:243
msgid "Generate SB code"
msgstr ""
#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
-#: config/i960/i960.h:254
+#: config/i960/i960.h:248
msgid "Generate KA code"
msgstr ""
-#: config/i960/i960.h:257
+#: config/i960/i960.h:251
msgid "Generate KB code"
msgstr ""
#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
-#: config/i960/i960.h:262
+#: config/i960/i960.h:256
msgid "Generate JA code"
msgstr ""
-#: config/i960/i960.h:264
+#: config/i960/i960.h:258
msgid "Generate JD code"
msgstr ""
-#: config/i960/i960.h:267
+#: config/i960/i960.h:261
msgid "Generate JF code"
msgstr ""
-#: config/i960/i960.h:269
+#: config/i960/i960.h:263
msgid "generate RP code"
msgstr ""
-#: config/i960/i960.h:272
+#: config/i960/i960.h:266
msgid "Generate MC code"
msgstr ""
-#: config/i960/i960.h:275
+#: config/i960/i960.h:269
msgid "Generate CA code"
msgstr ""
#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
-#: config/i960/i960.h:285
+#: config/i960/i960.h:279
msgid "Generate CF code"
msgstr ""
-#: config/i960/i960.h:291
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr ""
+
+#: config/i960/i960.h:285
#, fuzzy
msgid "Use alternate leaf function entries"
msgstr "sizeof toegepast op een functie-type"
-#: config/i960/i960.h:293
+#: config/i960/i960.h:287
msgid "Do not use alternate leaf function entries"
msgstr ""
-#: config/i960/i960.h:295
+#: config/i960/i960.h:289
msgid "Perform tail call optimization"
msgstr ""
-#: config/i960/i960.h:297
+#: config/i960/i960.h:291
msgid "Do not perform tail call optimization"
msgstr ""
-#: config/i960/i960.h:299
+#: config/i960/i960.h:293
#, fuzzy
msgid "Use complex addressing modes"
msgstr "Ongeldige addresseringsmodus"
-#: config/i960/i960.h:301
+#: config/i960/i960.h:295
#, fuzzy
msgid "Do not use complex addressing modes"
msgstr "Ongeldige addresseringsmodus"
-#: config/i960/i960.h:303
+#: config/i960/i960.h:297
msgid "Align code to 8 byte boundary"
msgstr ""
-#: config/i960/i960.h:305
+#: config/i960/i960.h:299
msgid "Do not align code to 8 byte boundary"
msgstr ""
#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
-#: config/i960/i960.h:311 config/i960/i960.h:313
+#: config/i960/i960.h:305 config/i960/i960.h:307
msgid "Enable compatibility with iC960 v2.0"
msgstr ""
-#: config/i960/i960.h:315
+#: config/i960/i960.h:309
msgid "Enable compatibility with iC960 v3.0"
msgstr ""
-#: config/i960/i960.h:317 config/i960/i960.h:319
+#: config/i960/i960.h:311 config/i960/i960.h:313
msgid "Enable compatibility with ic960 assembler"
msgstr ""
-#: config/i960/i960.h:321
+#: config/i960/i960.h:315
msgid "Do not permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:323
+#: config/i960/i960.h:317
msgid "Permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:325
+#: config/i960/i960.h:319
msgid "Layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:327
+#: config/i960/i960.h:321
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:329 config/sparc/freebsd.h:80 config/sparc/linux.h:85
-#: config/sparc/linux64.h:138
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr ""
-#: config/i960/i960.h:331
+#: config/i960/i960.h:325
#, fuzzy
msgid "Enable linker relaxation"
msgstr "lege declaratie"
-#: config/i960/i960.h:333
+#: config/i960/i960.h:327
msgid "Do not enable linker relaxation"
msgstr ""
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:348 config/i960/i960.h:358
-msgid "conflicting architectures defined - using C series"
-msgstr ""
-
-#: config/i960/i960.h:353
-msgid "conflicting architectures defined - using K series"
-msgstr ""
-
-#: config/i960/i960.h:368
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr ""
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:379
-msgid "the -mlong-double-64 option does not work yet"
-msgstr ""
+#: config/ia64/ia64-c.c:51
+#, fuzzy
+msgid "malformed #pragma builtin"
+msgstr "misvormde #pragma weak"
-#: config/ia64/ia64.c:3570
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:3844
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:3871
+#: config/ia64/ia64.c:4319
#, fuzzy, c-format
msgid "%s-%s is an empty range"
msgstr "leeg bereik"
-#: config/ia64/ia64.c:3936
-msgid "cannot optimize division for both latency and throughput"
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "slechte waarde (%s) voor de -march= optie"
+
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:112
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr ""
-#: config/ia64/ia64.h:114 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr ""
-#: config/ia64/ia64.h:116
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr ""
-#: config/ia64/ia64.h:118
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr ""
-#: config/ia64/ia64.h:120
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr ""
-#: config/ia64/ia64.h:122
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr ""
-#: config/ia64/ia64.h:124
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:126
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:128
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:130
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr ""
-#: config/ia64/ia64.h:132
+#: config/ia64/ia64.h:174
#, fuzzy
msgid "Use in/loc/out register names"
msgstr "ongeldige registernaam voor `%s'"
-#: config/ia64/ia64.h:134
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:136
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:138
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:140
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:142
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr ""
+
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr ""
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:144
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:146
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:148
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/ia64/ia64.h:176
+#: config/ia64/ia64.h:223
msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "ongeldige operand voor %P"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "slechte waarde (%s) voor optie -mmodel"
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "slechte waarde (%s) voor optie -msdata"
# Is the %s the argument, or is it 'of' the argument?
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, fuzzy, c-format
msgid "invalid argument of `%s' attribute"
msgstr "ongeldig type-argument `%s'"
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr "constante objecten kunnen niet in .sdata/.sbbs geplaatst worden"
-#: config/m32r/m32r.c:2248
-#, c-format
-msgid "invalid operand to %s code"
+#: config/m32r/m32r.c:2256
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
msgstr "ongeldige operand voor %s-code"
-#: config/m32r/m32r.c:2255
-#, c-format
-msgid "invalid operand to %p code"
+#: config/m32r/m32r.c:2263
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
msgstr "ongeldige operand voor %p-code"
-#: config/m32r/m32r.c:2311
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2363
-msgid "invalid operand to %T/%B code"
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
msgstr "ongeldige operand voor %T/%B-code"
-#: config/m32r/m32r.c:2386
-msgid "invalid operand to %N code"
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
msgstr "ongeldige operand voor %N-code"
-#: config/m32r/m32r.c:2431
+#: config/m32r/m32r.c:2438
#, fuzzy
msgid "pre-increment address is not a register"
msgstr "operand `%d' is geen register"
-#: config/m32r/m32r.c:2438
+#: config/m32r/m32r.c:2445
#, fuzzy
msgid "pre-decrement address is not a register"
msgstr "operand `%d' is geen register"
-#: config/m32r/m32r.c:2445
+#: config/m32r/m32r.c:2452
#, fuzzy
msgid "post-increment address is not a register"
msgstr "switch-waarde is geen integer"
-#: config/m32r/m32r.c:2523 config/m32r/m32r.c:2539
-#: config/rs6000/rs6000.c:10712
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
msgid "bad address"
msgstr ""
-#: config/m32r/m32r.c:2544
+#: config/m32r/m32r.c:2551
msgid "lo_sum not of register"
msgstr ""
@@ -10856,52 +11294,61 @@ msgstr ""
msgid "Small data area: none, sdata, use"
msgstr ""
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "het `%s' attribuut wordt genegeerd"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3032 config/m68hc11/m68hc11.c:3406
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
#, fuzzy
msgid "move insn not handled"
msgstr "onvolledige CASE - %s niet opgevangen"
-#: config/m68hc11/m68hc11.c:3252 config/m68hc11/m68hc11.c:3336
-#: config/m68hc11/m68hc11.c:3609
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
#, fuzzy
msgid "invalid register in the move instruction"
msgstr "Ongeldig register in ybase-addressering"
-#: config/m68hc11/m68hc11.c:3286
+#: config/m68hc11/m68hc11.c:3613
#, fuzzy
msgid "invalid operand in the instruction"
msgstr "ongeldige operand voor %s-code"
-#: config/m68hc11/m68hc11.c:3583
+#: config/m68hc11/m68hc11.c:3920
#, fuzzy
msgid "invalid register in the instruction"
msgstr "Ongeldig register in ybase-addressering"
-#: config/m68hc11/m68hc11.c:3616
+#: config/m68hc11/m68hc11.c:3953
#, fuzzy
msgid "operand 1 must be a hard register"
msgstr "operand `%d' is geen register"
-#: config/m68hc11/m68hc11.c:3633
+#: config/m68hc11/m68hc11.c:3970
#, fuzzy
msgid "invalid rotate insn"
msgstr "ongeldig karakter in naam van macro-parameter"
-#: config/m68hc11/m68hc11.c:4053
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr ""
-#: config/m68hc11/m68hc11.c:4373 config/m68hc11/m68hc11.c:4678
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr ""
-#: config/m68hc11/m68hc11.c:4727
+#: config/m68hc11/m68hc11.c:5094
#, fuzzy
msgid "invalid Z register replacement for insn"
msgstr "ongeldige registernaam voor `%s'"
@@ -10910,30 +11357,60 @@ msgstr "ongeldige registernaam voor `%s'"
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:152
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:154
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:156
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:158
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:160 config/m68hc11/m68hc11.h:164
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
+#, fuzzy
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "Ongeldige addresseringsmodus"
+
+#: config/m68hc11/m68hc11.h:190
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "operand `%d' is geen register"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr ""
-#: config/m68hc11/m68hc11.h:162 config/m68hc11/m68hc11.h:166
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr ""
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -10943,29 +11420,33 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:180
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr ""
-#: config/m68hc11/m68hc11.h:182
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr ""
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d ligt niet tussen 1 en %d"
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d ligt niet tussen 1 en %d"
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d ligt niet tussen 1 en %d"
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr ""
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -11087,113 +11568,86 @@ msgstr ""
msgid "Use unaligned memory references"
msgstr ""
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr ""
-
# Ik ben niet zeker of short-branch vertaald moet worden.
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, fuzzy, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr "Interne monitor van gcc: short-branch(%x)"
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
#, fuzzy
msgid "internal gcc error: Can't express symbolic location"
msgstr "Interne fout van gcc: Kan symbolische locatie niet uitdrukken"
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr "argument #%d is een structure"
-#: config/m88k/m88k.c:2882
-msgid "%R not followed by %B/C/D/E"
+#: config/m88k/m88k.c:2816
+#, fuzzy, c-format
+msgid "%%R not followed by %%B/C/D/E"
msgstr "%E niet gevolgd door %B/C/D/E"
-#: config/m88k/m88k.c:2950
-#, c-format
-msgid "invalid %x/X value"
+#: config/m88k/m88k.c:2884
+#, fuzzy, c-format
+msgid "invalid %%x/X value"
msgstr "ongeldige waarde voor %x/X"
-#: config/m88k/m88k.c:2955
-msgid "invalid %H value"
-msgstr "ongeldige waarde voor %H"
-
-#: config/m88k/m88k.c:2961
-msgid "invalid %h value"
-msgstr "ongeldige waarde voor %h"
-
-#: config/m88k/m88k.c:2967
-msgid "invalid %Q value"
-msgstr "ongeldige waarde voor %Q"
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "ongeldige waarde voor %%Q"
-#: config/m88k/m88k.c:2973
-msgid "invalid %q value"
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, fuzzy, c-format
+msgid "invalid %%q value"
msgstr "ongeldige waarde voor %q"
-#: config/m88k/m88k.c:2979
-#, c-format
-msgid "invalid %o value"
+#: config/m88k/m88k.c:2913
+#, fuzzy, c-format
+msgid "invalid %%o value"
msgstr "ongeldige waarde voor %o"
-#: config/m88k/m88k.c:2986
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
-msgid "invalid %p value"
-msgstr "ongeldige waarde voor %p"
+msgid "invalid %%p value"
+msgstr ""
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
-#, c-format
-msgid "invalid %s/S value"
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
msgstr "ongeldige waarde voor %s/S"
-#: config/m88k/m88k.c:3015
-msgid "invalid %P operand"
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
msgstr "ongeldige operand voor %P"
-#: config/m88k/m88k.c:3046
-msgid "invalid %B value"
-msgstr "ongeldige waarde voor %B"
-
-#: config/m88k/m88k.c:3063
-msgid "invalid %C value"
-msgstr "ongeldige waarde voor %C"
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, c-format
+msgid "invalid %%B value"
+msgstr ""
-#: config/m88k/m88k.c:3076
-msgid "invalid %D value"
+#: config/m88k/m88k.c:3010
+#, fuzzy, c-format
+msgid "invalid %%D value"
msgstr "ongeldige waarde voor %D"
-#: config/m88k/m88k.c:3084
-#, c-format
-msgid "invalid %E value"
-msgstr "ongeldige waarde voor %E"
-
-#: config/m88k/m88k.c:3089
-#, c-format
-msgid "`%d' operand isn't a register"
+#: config/m88k/m88k.c:3023
+#, fuzzy, c-format
+msgid "`%%d' operand isn't a register"
msgstr "operand `%d' is geen register"
-#: config/m88k/m88k.c:3100
-msgid "invalid %r value"
-msgstr ""
-
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr ""
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr ""
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr ""
@@ -11218,7 +11672,7 @@ msgstr "omvang van array `%s' is te groot"
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mbsd en -mxopen zijn niet compatibel"
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, fuzzy, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "Pngeldige optie `-%s'"
@@ -11244,7 +11698,7 @@ msgid "Do not use the divide instruction"
msgstr ""
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr ""
#: config/mcore/mcore.h:142
@@ -11275,222 +11729,232 @@ msgstr ""
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4824
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "slechte waarde (%s) voor optie -mabi="
+
+#: config/mips/mips.c:5158
#, c-format
-msgid "-mips%d not supported"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4831
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr "slechte waarde (%s) voor optie -mips"
-#: config/mips/mips.c:4852
-#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "slechte waarde (%s) voor optie -mabi="
+#: config/mips/mips.c:5180
+#, fuzzy, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "case-selector niet compatibel met label"
-#: config/mips/mips.c:4890
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4907
-#, fuzzy
-msgid "this target does not support the -mabi switch"
-msgstr "doel-CPU ondersteunt geen interworking"
-
-#: config/mips/mips.c:5017
-#, fuzzy, c-format
-msgid "bad value (%s) for -mtune= switch"
-msgstr "slechte waarde (%s) voor de -march= optie"
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr ""
-#: config/mips/mips.c:5033
-#, fuzzy, c-format
-msgid "-march=%s does not support -mips%d"
-msgstr "-mcpu=%s ondersteunt -march=%s niet"
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr ""
-#: config/mips/mips.c:5040
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, fuzzy, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mcpu=%s ondersteunt -march=%s niet"
+msgid "unsupported combination: %s"
+msgstr "niet-ondersteunde versie"
-#: config/mips/mips.c:5046
-#, fuzzy, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mcpu=%s ondersteunt -march=%s niet"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr ""
-#: config/mips/mips.c:5067
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:5083
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr ""
-#: config/mips/mips.c:5086
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr ""
-#: config/mips/mips.c:5137
+#: config/mips/mips.c:5369
#, fuzzy, c-format
msgid "invalid option `entry%s'"
msgstr "Ongeldige optie `%s'"
-#: config/mips/mips.c:5140
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr ""
-#: config/mips/mips.c:5480
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5494
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5507
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5520
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5534
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:5543
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/mips/mips.c:5676
+#: config/mips/mips.c:5975
#, fuzzy, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ongeldig gebruik van een void-expressie"
-#: config/mips/mips.c:5719
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr ""
-#: config/mips/mips.c:5943
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr ""
-#: config/mips/mips.c:6257
+#: config/mips/mips.c:6552
#, fuzzy
msgid "can't rewind temp file"
msgstr "kan bestand '%s' niet openen"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6556
#, fuzzy
msgid "can't write to output file"
msgstr "kan bestand '%s' niet openen"
-#: config/mips/mips.c:6264
+#: config/mips/mips.c:6559
msgid "can't read from temp file"
msgstr ""
-#: config/mips/mips.c:6267
+#: config/mips/mips.c:6562
#, fuzzy
msgid "can't close temp file"
msgstr "close %s"
-#: config/mips/mips.c:6700
+#: config/mips/mips.c:7003
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:6862
+#: config/mips/mips.c:7112
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:8893
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr ""
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "slechte waarde (%s) foor optie %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr ""
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr ""
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr ""
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr ""
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr ""
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr ""
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr ""
@@ -11500,267 +11964,251 @@ msgstr ""
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr ""
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr ""
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/mips/mips.h:444
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr ""
-#: config/mips/mips.h:446
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr ""
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr ""
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr ""
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr ""
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr ""
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr ""
-#: config/mips/mips.h:590 config/mips/mips.h:592
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/mips/mips.h:594
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/mips/mips.h:596
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr ""
-#: config/mips/mips.h:598
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr ""
-#: config/mips/mips.h:600
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr ""
-#: config/mips/mips.h:604
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr ""
-#: config/mips/mips.h:606
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr ""
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2869
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr ""
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, fuzzy, c-format
msgid "-f%s not supported: ignored"
msgstr "-pipe wordt niet ondersteund"
-#: config/mmix/mmix.c:564
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr ""
-#: config/mmix/mmix.c:651
-msgid "stack frame too big"
-msgstr ""
-
-#: config/mmix/mmix.c:679
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1022
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr ""
-
-#: config/mmix/mmix.c:1190
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mmix/mmix.c:1227
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr ""
-
-#: config/mmix/mmix.c:1233
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1556
-msgid "oops, not debugged; fixing up value:"
-msgstr ""
-
-#: config/mmix/mmix.c:2100 config/mmix/mmix.c:2234
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr ""
-#: config/mmix/mmix.c:2108 config/mmix/mmix.c:2132 config/mmix/mmix.c:2251
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr ""
-#: config/mmix/mmix.c:2179
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr ""
-#: config/mmix/mmix.c:2202
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr ""
-#: config/mmix/mmix.c:2212
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr ""
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2244
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr ""
#. We need the original here.
-#: config/mmix/mmix.c:2295
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr ""
-#: config/mmix/mmix.c:2354
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr ""
-#: config/mmix/mmix.c:2823 config/mmix/mmix.c:2892
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr ""
-#: config/mmix/mmix.c:3011
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr ""
-#: config/mmix/mmix.c:3018
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3022
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr ""
-#: config/mmix/mmix.c:3093
+#: config/mmix/mmix.c:3088
#, fuzzy
msgid "MMIX Internal: This is not a constant:"
msgstr "gevraagd alignment is geen constante"
@@ -11774,68 +12222,84 @@ msgstr "gevraagd alignment is geen constante"
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
#. Provide default program start 0x100 unless -mno-set-program-start.
-#. Link to ELF if requested.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:135
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr ""
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr ""
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:175
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr ""
-#: config/mmix/mmix.h:178
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:180
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr ""
-#: config/mmix/mmix.h:182
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr ""
-#: config/mmix/mmix.h:185
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr ""
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr ""
-#: config/mmix/mmix.h:192
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr ""
-#: config/mmix/mmix.h:194
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr ""
-#: config/mmix/mmix.h:196
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
msgstr ""
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr ""
-#: config/mmix/mmix.h:200
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr ""
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "interne fout - slechte ingebouwde functie `%s'"
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr ""
@@ -11852,158 +12316,293 @@ msgstr ""
msgid "Enable linker relaxations"
msgstr ""
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:52
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr ""
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr ""
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
#, fuzzy
msgid "Pass some arguments in registers"
msgstr "te weinig argument voor functie"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr ""
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr ""
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr ""
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr ""
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr ""
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
+#: config/ns32k/ns32k.h:155
+msgid "Use bit-field instructions"
msgstr ""
-#: config/ns32k/ns32k.h:117
-msgid "Use bit-field instructions"
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
msgstr ""
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr ""
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr ""
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr ""
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
#, fuzzy
msgid "\"Small register classes\" kludge"
msgstr "Ongeldige registerklasse-letter %c"
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
#, fuzzy
msgid "No \"Small register classes\" kludge"
msgstr "Ongeldige registerklasse-letter %c"
-#: config/pa/pa.c:188
+#: config/pa/pa.c:261
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:213
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:218
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:223
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:228
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr ""
-#: config/pa/pa.c:229
+#: config/pa/pa.c:310
#, fuzzy
msgid "-g option disabled"
msgstr "ingeschakelde opties: "
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr ""
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr ""
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr ""
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr ""
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "Ongeldige addresseringsmodus"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "Ongeldige addresseringsmodus"
+
+#: config/pa/pa.h:258
+#, fuzzy
+msgid "Use portable calling conventions"
+msgstr "Onbeëindigde stringconstante"
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "Onbeëindigde stringconstante"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr ""
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+#, fuzzy
+msgid "Do not emit long load/store sequences"
+msgstr "niet-beëindigde commentaar"
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "case-label niet in een switch-statement"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr ""
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr ""
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Enable linker optimizations"
+msgstr "lege declaratie"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr ""
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
#, fuzzy
msgid "Return floating point results in ac0"
msgstr "floating-point constante buiten bereik"
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
#, fuzzy
msgid "Return floating point results in memory"
msgstr "Ongeldige optie voor floating-point emulatie: -mfpe-%s"
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr ""
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr ""
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr ""
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr ""
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr ""
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr ""
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr ""
@@ -12011,79 +12610,50 @@ msgstr ""
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr ""
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr ""
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr ""
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr ""
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr ""
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr ""
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr ""
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr ""
-
-#: config/romp/romp.c:682
-#, c-format
-msgid "invalid %%B value"
-msgstr ""
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6202
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr ""
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr ""
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr ""
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815
-#: config/rs6000/rs6000.c:5981
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr ""
@@ -12101,149 +12671,219 @@ msgstr ""
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr ""
-#: config/rs6000/rs6000.c:472
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+#, fuzzy
+msgid "ignoring malformed #pragma longcall"
+msgstr "pragma wordt genegeerd: %s"
+
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "beginwaarde ontbreekt"
+
+#: config/rs6000/rs6000-c.c:60
+#, fuzzy
+msgid "missing number"
+msgstr "beginwaarde ontbreekt"
+
+#: config/rs6000/rs6000-c.c:62
+#, fuzzy
+msgid "missing close paren"
+msgstr "ontbrekende index-expressie"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr ""
+
+# Moet 'signature-string' vertaald worden?
+#: config/rs6000/rs6000-c.c:68
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "Brol aan einde van signature-string."
+
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:479
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr ""
-#: config/rs6000/rs6000.c:485
+#: config/rs6000/rs6000.c:623
#, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr ""
-
-#: config/rs6000/rs6000.c:494
-msgid "-ffunction-sections disabled on AIX when debugging"
+msgid "unknown -mdebug-%s switch"
msgstr ""
-#: config/rs6000/rs6000.c:500
-#, fuzzy
-msgid "-fdata-sections not supported on AIX"
-msgstr "-pipe wordt niet ondersteund"
-
-#: config/rs6000/rs6000.c:515
+#: config/rs6000/rs6000.c:635
#, c-format
-msgid "unknown -mdebug-%s switch"
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
msgstr ""
-#: config/rs6000/rs6000.c:525
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:590
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "onbekende machine-modus `%s'"
+
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "onbekende machine-modus `%s'"
+
+#: config/rs6000/rs6000.c:772
#, fuzzy, c-format
msgid "unknown ABI specified: '%s'"
msgstr "onbekende machine-modus `%s'"
-#: config/rs6000/rs6000.c:3810
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "argument van `%s' moet van een integraal type zijn."
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "argument van `%s' moet van een integraal type zijn."
+
+#: config/rs6000/rs6000.c:4356
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "argument voor `__builtin_args_info' moet een constante zijn"
+
+#: config/rs6000/rs6000.c:4410
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "argument voor `__builtin_args_info' buiten bereik"
+
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "argument van `%s' moet van een integraal type zijn."
+
+#: config/rs6000/rs6000.c:4666
#, fuzzy, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
msgstr "argument van `%s' moet van een integraal type zijn."
-#: config/rs6000/rs6000.c:5908
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "argument van `%s' moet van een integraal type zijn."
+
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "argument voor `__builtin_args_info' moet een constante zijn"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "argument voor `__builtin_args_info' buiten bereik"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:5917
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:5926
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:5961
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:5971
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:6001
+#: config/rs6000/rs6000.c:7604
#, fuzzy, c-format
msgid "invalid %%K value"
msgstr "ongeldige waarde voor %%E"
-#: config/rs6000/rs6000.c:6128
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "invalid %%p value"
-msgstr ""
-
-#: config/rs6000/rs6000.c:6165
-#, fuzzy, c-format
-msgid "invalid %%q value"
-msgstr "ongeldige waarde voor %q"
-
-#: config/rs6000/rs6000.c:6228
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr ""
-
-#: config/rs6000/rs6000.c:6255
-#, c-format
-msgid "%%S computed all 0's mask"
-msgstr ""
+msgid "invalid %%O value"
+msgstr "ongeldige waarde voor %%O"
-#: config/rs6000/rs6000.c:6265
+#: config/rs6000/rs6000.c:7793
#, c-format
msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:6275
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:6284
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/aix.h:134 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
#, fuzzy
msgid "Always pass floating-point arguments in memory"
msgstr "Het doorgeven van floating-point argumenten in fp registers wordt nog niet ondersteund"
-#: config/rs6000/aix.h:136 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
#, fuzzy
msgid "Don't always pass floating-point arguments in memory"
msgstr "Het doorgeven van floating-point argumenten in fp registers wordt nog niet ondersteund"
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr ""
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
msgstr ""
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
#, fuzzy
msgid "-maix64 and POWER architecture are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr ""
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr ""
@@ -12254,147 +12894,163 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
msgid "Use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr ""
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
#, fuzzy
msgid "Place floating point constants in TOC"
msgstr "misvormde floating-point constante"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr ""
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:666
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr ""
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr ""
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr ""
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12407,100 +13063,104 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1776
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr ""
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr ""
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
#, fuzzy
msgid "Align to the base type of the bit-field"
msgstr "`__alignof' toegepast op bitveld"
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr ""
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr ""
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128
-#: config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130
-#: config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132
-#: config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143
-#: config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr ""
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr ""
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr ""
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
msgid "Use alternate register names"
msgstr ""
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr ""
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr ""
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr ""
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12509,3690 +13169,1366 @@ msgstr ""
#.
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control.
-#: config/rs6000/sysv4.h:212
+#: config/rs6000/sysv4.h:214
#, fuzzy, c-format
msgid "bad value for -mcall-%s"
msgstr "slechte waarde (%s) voor optie -mcpu"
-#: config/rs6000/sysv4.h:228
+#: config/rs6000/sysv4.h:230
#, fuzzy, c-format
msgid "bad value for -msdata=%s"
msgstr "slechte waarde (%s) voor optie -msdata"
-#: config/rs6000/sysv4.h:245
+#: config/rs6000/sysv4.h:247
#, fuzzy, c-format
msgid "-mrelocatable and -msdata=%s are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/sysv4.h:253
+#: config/rs6000/sysv4.h:255
#, fuzzy, c-format
msgid "-f%s and -msdata=%s are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/sysv4.h:261
+#: config/rs6000/sysv4.h:264
#, fuzzy, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr "-mbsd en -mxopen zijn niet compatibel"
-#: config/rs6000/sysv4.h:268
+#: config/rs6000/sysv4.h:273
#, fuzzy
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/sysv4.h:274
+#: config/rs6000/sysv4.h:279
#, fuzzy, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/sysv4.h:281
+#: config/rs6000/sysv4.h:286
#, fuzzy, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr "-fpic en -mapcs-reent zijn niet compatibel"
-#: config/rs6000/sysv4.h:288
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr ""
-#: config/s390/s390.c:1762
+#: config/s390/s390.c:3063
#, fuzzy
msgid "invalid UNSPEC as operand (1)"
msgstr "ongeldige UNSPEC als operand"
-#: config/s390/s390.c:1792
+#: config/s390/s390.c:3123
#, fuzzy
msgid "invalid UNSPEC as operand (2)"
msgstr "ongeldige UNSPEC als operand"
-#: config/s390/s390.c:1798
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr ""
-#: config/s390/s390.c:1814
+#: config/s390/s390.c:3147
msgid "Cannot decompose address."
msgstr ""
-#: config/s390/s390.c:1962
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/s390/s390.c:2507
-#, fuzzy
-msgid "no code label found"
-msgstr "geen symbooltabel gevonden"
-
-#: config/s390/s390.c:2653
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/s390/s390.h:53
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr ""
-#: config/s390/s390.h:54
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr ""
-#: config/s390/s390.h:55
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr ""
-#: config/s390/s390.h:56
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr ""
-#: config/s390/s390.h:57
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr ""
-#: config/s390/s390.h:58
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr ""
-#: config/s390/s390.h:59
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr ""
-#: config/s390/s390.h:60
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr ""
-#: config/s390/s390.h:61
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr ""
-#: config/s390/s390.h:62
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr ""
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs wordt niet ondersteund op dit doelsysteem"
+
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr ""
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:4730 config/sh/sh.c:4769
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, fuzzy, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
#. The argument must be a constant string.
-#: config/sh/sh.c:4737
+#: config/sh/sh.c:5720
#, fuzzy, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "asm-template is geen stringconstante"
#. The argument must be a constant integer.
-#: config/sh/sh.c:4776
+#: config/sh/sh.c:5759
#, fuzzy, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr "herhalings-aantal is geen integerconstante"
-#: config/sparc/sparc.c:319
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
+
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:326
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:351
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:439
-msgid "profiling does not support code models other than medlow"
-msgstr ""
-
-#: config/sparc/sparc.c:5834 config/sparc/sparc.c:5840
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, fuzzy, c-format
msgid "invalid %%Y operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:5910
+#: config/sparc/sparc.c:6417
#, fuzzy, c-format
msgid "invalid %%A operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:5920
+#: config/sparc/sparc.c:6427
#, fuzzy, c-format
msgid "invalid %%B operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:5959
+#: config/sparc/sparc.c:6466
#, fuzzy, c-format
msgid "invalid %%c operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:5960
+#: config/sparc/sparc.c:6467
#, fuzzy, c-format
msgid "invalid %%C operand"
msgstr "Ongeldige operand voor %%C"
-#: config/sparc/sparc.c:5981
+#: config/sparc/sparc.c:6488
#, fuzzy, c-format
msgid "invalid %%d operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:5982
+#: config/sparc/sparc.c:6489
#, fuzzy, c-format
msgid "invalid %%D operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:6000
+#: config/sparc/sparc.c:6505
#, fuzzy, c-format
msgid "invalid %%f operand"
msgstr "ongeldige operand voor %P"
-#: config/sparc/sparc.c:6050
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "ongeldige operand voor %P"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:6053
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr ""
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:86
-#: config/sparc/linux64.h:139
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr ""
-#: config/sparc/sp64-elf.h:82 config/sparc/splet.h:29
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
msgid "Generate code for big endian"
msgstr ""
-#: config/sparc/sp64-elf.h:83 config/sparc/splet.h:30
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
msgid "Generate code for little endian"
msgstr ""
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr ""
-#. To make profiling work with -f{pic,PIC}, we need to emit the profiling
-#. code into the rtl. Also, if we are profiling, we cannot eliminate
-#. the frame pointer (because the return address will get smashed).
-#: config/sparc/sparc.h:388
-#, c-format
-msgid "%s and profiling conflict: disabling %s"
-msgstr ""
-
-#: config/sparc/sparc.h:562
-msgid "Use function_epilogue()"
-msgstr ""
-
-#: config/sparc/sparc.h:564
-msgid "Do not use function_epilogue()"
-msgstr ""
-
-#: config/sparc/sparc.h:566
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:570
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:576
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:578
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:580
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:582
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:584
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:586
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:588
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:590
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:592
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr ""
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr ""
-#: config/sparc/sparc.h:597
-msgid "Optimize for SparcLite processors"
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
msgstr ""
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr ""
-#: config/sparc/sparc.h:601
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr ""
-#: config/sparc/sparc.h:603
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
msgstr ""
-#: config/sparc/sparc.h:605
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
msgstr ""
#. End of deprecated options.
-#: config/sparc/sparc.h:608
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr ""
-#: config/sparc/sparc.h:610
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr ""
-#: config/sparc/sparc.h:612
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:614
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr ""
-#: config/sparc/sparc.h:616
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:618
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:620
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:622
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:624
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:670
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
msgstr ""
-#: config/stormy16/stormy16.c:1168
+#: config/stormy16/stormy16.c:1192
#, fuzzy
msgid "cannot use va_start in interrupt function"
msgstr "kan functie `main' niet inline maken"
-#: config/stormy16/stormy16.c:1525
+#: config/stormy16/stormy16.c:1552
#, fuzzy
msgid "`B' operand is not constant"
msgstr "operand `%d' is geen register"
-#: config/stormy16/stormy16.c:1531
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr ""
-#: config/stormy16/stormy16.c:1558
+#: config/stormy16/stormy16.c:1585
#, fuzzy
msgid "`o' operand is not constant"
msgstr "operand `%d' is geen register"
-#: config/stormy16/stormy16.c:1573
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr ""
-#: config/stormy16/stormy16.c:1623
+#: config/stormy16/stormy16.c:1650
#, fuzzy, c-format
msgid "switch statement of size %lu entries too large"
msgstr "variabele `%s' is te groot"
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
#, fuzzy
msgid "cannot set interrupt attribute: no current function"
msgstr "kan geen GOTO uitvoeren naar label `%s' dat buiten de huidige functie ligt"
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr ""
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
#, fuzzy
msgid "junk at end of #pragma ghs section"
msgstr "Brol aan einde van signature-string."
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, fuzzy, c-format
msgid "unrecognized section name \"%s\""
msgstr "signature-string niet herkend"
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
#, fuzzy
msgid "malformed #pragma ghs section"
msgstr "misvormde #pragma weak"
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
#, fuzzy
msgid "junk at end of #pragma ghs interrupt"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
#, fuzzy
msgid "junk at end of #pragma ghs starttda"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
#, fuzzy
msgid "junk at end of #pragma ghs startsda"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
#, fuzzy
msgid "junk at end of #pragma ghs startzda"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
#, fuzzy
msgid "junk at end of #pragma ghs endtda"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
#, fuzzy
msgid "junk at end of #pragma ghs endsda"
msgstr "Brol aan einde van signature-string."
# Moet 'signature-string' vertaald worden?
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
#, fuzzy
msgid "junk at end of #pragma ghs endzda"
msgstr "Brol aan einde van signature-string."
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, fuzzy, c-format
msgid "%s=%s is not numeric"
msgstr "`%s' is geen iterator"
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, fuzzy, c-format
msgid "%s=%s is too large"
msgstr "bestand `%s' is te groot"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr ""
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr ""
-#: config/v850/v850.c:2081
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2092
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2295
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2316 config/v850/v850.c:2518
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2494
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr ""
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
-msgid "Support Green Hills ABI"
-msgstr ""
-
-#: config/v850/v850.h:123
-msgid "Prohibit PC relative function calls"
-msgstr ""
-
-#: config/v850/v850.h:126
-msgid "Reuse r30 on a per function basis"
-msgstr ""
-
-#: config/v850/v850.h:129
-msgid "Use stubs for function prologues"
-msgstr ""
-
-#: config/v850/v850.h:132
-msgid "Same as: -mep -mprolog-function"
-msgstr ""
-
-#: config/v850/v850.h:133
-msgid "Enable backend debugging"
-msgstr ""
-
-#: config/v850/v850.h:135
-msgid "Compile for the v850 processor"
-msgstr ""
-
-#: config/v850/v850.h:138
-msgid "Use 4 byte entries in switch tables"
-msgstr ""
-
-#: config/v850/v850.h:164
-msgid "Set the max size of data eligible for the TDA area"
-msgstr ""
-
-#: config/v850/v850.h:167
-msgid "Set the max size of data eligible for the SDA area"
-msgstr ""
-
-#: config/v850/v850.h:170
-msgid "Set the max size of data eligible for the ZDA area"
-msgstr ""
-
-#: ada/misc.c:219
-msgid "`-gnat' misspelled as `-gant'"
-msgstr ""
-
-#: ch/actions.c:118
-#, c-format
-msgid "%d errors, %d sorries, do granting"
-msgstr "%d fouten, %d sorries, granting wordt gedaan"
-
-#: ch/actions.c:135
-msgid "GNU compiler does not support statically allocated objects"
-msgstr "de GNU compiler ondersteunt geen statisch gealloceerde objecten"
-
-#: ch/actions.c:138 objc/objc-act.c:882
-#, c-format
-msgid "`%s' cannot be statically allocated"
-msgstr "`%s' kan niet statisch gealloceerd worden"
-
-#: ch/actions.c:300
+#: config/v850/v850.c:3026
#, c-format
-msgid "causing unhandled exception `%s' (this is flaged only once)"
-msgstr "niet-opgevangen exception `%s' wordt veroorzaakt (dit wordt maar één keer vermeld)"
-
-#: ch/actions.c:438
-msgid "range failure (not inside function)"
-msgstr "bereik-fout (niet in een functie)"
-
-#: ch/actions.c:440
-msgid "possible range failure (not inside function)"
-msgstr "mogelijke bereik-fout (niet in een functie)"
-
-#: ch/actions.c:445
-msgid "expression will always cause RANGEFAIL"
-msgstr "expressie zal altijd RANGEFAIL veroorzaken"
-
-#: ch/actions.c:492
-msgid "right hand side of assignment is a mode"
-msgstr "rechterkant van toewijzing is een modus"
-
-#: ch/actions.c:498
-#, c-format
-msgid "incompatible modes in %s"
-msgstr "incompatibele modi in %s"
-
-#: ch/actions.c:523
-#, c-format
-msgid "bad string length in %s"
-msgstr "slechte stringlengte in %s"
-
-#: ch/actions.c:631 ch/actions.c:644
-#, c-format
-msgid "mode mismatch in %s expression"
-msgstr "modi in %s expressie komen niet overeen"
-
-#: ch/actions.c:638
-#, c-format
-msgid "%s expression must be referable"
-msgstr "%s expressie moet refereerbaar zijn"
-
-#: ch/actions.c:667
-#, c-format
-msgid "%s not allowed outside a PROC"
-msgstr "%s is niet toegestaan buiten een PROC"
-
-#: ch/actions.c:673
-#, c-format
-msgid "%s action in PROC with no declared RESULTS"
-msgstr "%s-actie in PROC zonder gedeclareerde RESULTS"
-
-#: ch/actions.c:704
-msgid "RETURN not allowed outside PROC"
-msgstr "RETURN is niet toegestaan buiten PROC"
-
-#: ch/actions.c:717
-msgid "RETURN with a value, in PROC returning void"
-msgstr "RETURN met waarde, in een PROC die void teruggeeft"
-
-#: ch/actions.c:726
-msgid "RETURN with no value and no RESULT action in procedure"
-msgstr "RETURN zonder waarde en geen RESULTS-actie in procedure"
-
-#: ch/actions.c:749
-#, c-format
-msgid "no label named `%s'"
-msgstr "er is geen label dat `%s' heet"
-
-#: ch/actions.c:751
-#, c-format
-msgid "cannot GOTO label `%s' outside current function"
-msgstr "kan geen GOTO uitvoeren naar label `%s' dat buiten de huidige functie ligt"
-
-# Misschien beter 'EXIT-baar'?
-#: ch/actions.c:773
-#, c-format
-msgid "no EXITable label named `%s'"
-msgstr "er is geen EXITable label dat `%s' heet"
-
-# Is dit de juiste vertaling?
-#: ch/actions.c:775
-#, c-format
-msgid "cannot EXIT label `%s' outside current function"
-msgstr "kan geen EXIT uitvoeren voor label `%s' buiten huidige functie"
-
-#: ch/actions.c:1018
-msgid "case selector not compatible with label"
-msgstr "case-selector niet compatibel met label"
-
-#: ch/actions.c:1044
-msgid "ELSE label not within a CASE statement"
-msgstr "ELSE-label niet in een CASE-statement"
-
-#: ch/actions.c:1048
-msgid "multiple default labels found in a CASE statement"
-msgstr "meerdere default-labels gevonden in één CASE-statement"
-
-#: ch/actions.c:1049
-msgid "this is the first ELSE label"
-msgstr "dit is het eerste ELSE-label"
-
-#: ch/actions.c:1070
-msgid "label found outside of CASE statement"
-msgstr "label gevonden buiten een CASE-statement"
-
-#: ch/actions.c:1073
-msgid "duplicate CASE value"
-msgstr "herhaalde CASE-waarde"
-
-# 'vermelding' lijkt me beter dat het letterlijke 'ingang'
-#: ch/actions.c:1074 ch/actions.c:1127
-msgid "this is the first entry for that value"
-msgstr "dit is de eerste vermelding van deze waarde"
-
-#: ch/actions.c:1077 ch/actions.c:1130
-msgid "CASE value out of range"
-msgstr "CASE-waarde buiten bereik"
-
-#: ch/actions.c:1079 ch/actions.c:1132
-msgid "empty range"
-msgstr "leeg bereik"
-
-# klinkt niet echt goed
-#: ch/actions.c:1081 ch/actions.c:1134
-msgid "label within scope of cleanup or variable array"
-msgstr "label binnen bereik van opruiming of variabele array"
-
-# Hoe vertaal je 'discrete' best? Discreet is waarschijnlijk wel correct, maar ik
-# vermoed/hoop dat er een betere oplossing is.
-#: ch/actions.c:1105 ch/actions.c:1302
-msgid "mode in label is not discrete"
-msgstr "modus in label is niet discreet"
-
-#: ch/actions.c:1122
-msgid "label not within a CASE statement"
-msgstr "label niet in een CASE-statement"
-
-# Letterlijk is hoogstwaarschijnlijk geen goede vertaling.
-# Misschien beter gewoon 'moet een discrete literal zijn' vertalen?
-#: ch/actions.c:1282
-#, fuzzy
-msgid "lower bound of range must be a discrete literal expression"
-msgstr "Ondergrens van bereik moet een letterlijke discrete expressie zijn"
-
-#: ch/actions.c:1287
-#, fuzzy
-msgid "upper bound of range must be a discrete literal expression"
-msgstr "Bovengrens van bereik moet een letterlijke discrete expressie zijn"
-
-#: ch/actions.c:1311
-#, fuzzy
-msgid "CASE label is not valid"
-msgstr "Het CASE-label in niet geldig"
-
-#: ch/actions.c:1357
-#, fuzzy
-msgid "number of CASE selectors does not match the number of CASE label lists"
-msgstr "Het aantal CASE-selectors komt niet overeen met het aantal CASE-label lijsten"
-
-#: ch/actions.c:1442
-#, c-format
-msgid "incomplete CASE - %s not handled"
-msgstr "onvolledige CASE - %s niet opgevangen"
-
-#: ch/actions.c:1461
-msgid "CASE selector with variable range"
-msgstr "CASE-selector met variabel bereik"
-
-#: ch/actions.c:1465
-msgid "too many cases to do CASE completeness testing"
-msgstr "teveel gevallen om CASE-volledigheidstesten uit te voeren"
-
-#: ch/actions.c:1550
-msgid "type of tuple cannot be implicit in multiple assignent"
-msgstr ""
-
-#: ch/actions.c:1552
-msgid "conditional expression cannot be used in multiple assignent"
-msgstr ""
-
-#: ch/actions.c:1554
-msgid "internal error - unknown type in multiple assignment"
-msgstr ""
-
-#: ch/actions.c:1558
-msgid "no operator allowed in multiple assignment,"
-msgstr ""
-
-#: ch/actions.c:1568
-msgid "location modes in multiple assignment are not equivalent"
-msgstr ""
-
-#: ch/actions.c:1606
-msgid "you may not assign a value to a BUFFER or EVENT location"
-msgstr ""
-
-#: ch/actions.c:1614
-msgid "can't assign value to READonly location"
-msgstr ""
-
-#: ch/actions.c:1619
-msgid "cannot assign to location with non-value property"
-msgstr ""
-
-#: ch/actions.c:1639
-msgid "lefthand side of assignment is not a location"
-msgstr "linkerkant van toewijzing is geen locatie"
-
-#: ch/actions.c:1715 ch/actions.c:1785
-msgid "bitstring slice"
-msgstr ""
-
-#: ch/actions.c:1810
-msgid "LENGTH on left-hand-side is non-portable"
-msgstr ""
-
-#: ch/actions.c:1814
-msgid "can only set LENGTH of array location"
-msgstr ""
-
-#: ch/convert.c:63
-msgid "internal error: trying to make loc-identity with non-location"
+msgid "Bogus DISPOSE construction: %d\n"
msgstr ""
-#: ch/convert.c:117
-msgid "cannot convert to a boolean mode"
-msgstr ""
-
-#: ch/convert.c:152
-msgid "cannot convert to a char mode"
-msgstr ""
-
-# Of 'tupel van machtsverzameling'?
-#: ch/convert.c:248
-msgid "powerset tuple element out of range"
-msgstr "element van powerset-tupel buiten bereik"
-
-#: ch/convert.c:284 ch/convert.c:312
-#, c-format
-msgid "incompatible member of powerset tuple (at position #%d)"
-msgstr ""
-
-# 'fixed' -> 'vast'?
-#: ch/convert.c:394
-#, c-format
-msgid "no initializer value for fixed field `%s'"
-msgstr "geen beginwaarde voor fixed veld `%s'"
-
-#: ch/convert.c:436
-#, c-format
-msgid "non-constant value for tag field `%s'"
-msgstr "niet-constante waarde voor tagveld `%s'"
-
-#: ch/convert.c:488
-#, c-format
-msgid "field `%s' in wrong variant"
-msgstr ""
-
-#: ch/convert.c:495
-#, c-format
-msgid "missing variant fields (at least `%s')"
-msgstr ""
-
-#: ch/convert.c:518
-#, c-format
-msgid "bad initializer for field `%s'"
-msgstr "ongeldige beginwaarde voor veld `%s'"
-
-#: ch/convert.c:525
-#, c-format
-msgid "no initializer value for variant field `%s'"
-msgstr "geen beginwaarde voor variant-veld `%s'"
-
-#: ch/convert.c:531
-msgid "no selected variant"
-msgstr ""
-
-#: ch/convert.c:546 ch/convert.c:912
-msgid "mixture of labelled and unlabelled tuple elements"
-msgstr ""
-
-#: ch/convert.c:557
-msgid "probably not a structure tuple"
-msgstr ""
-
-#: ch/convert.c:559
-#, c-format
-msgid "excess initializer for field `%s'"
-msgstr "overtollige beginwaarde voor veld `%s'"
-
-#: ch/convert.c:566
-msgid "excess unnamed initializers"
-msgstr "overtollige onbenoemde beginwaarden"
-
-#: ch/convert.c:693
-msgid "non-constant start index for tuple"
-msgstr "niet-constante start-index voor tupel"
-
-#: ch/convert.c:736
-msgid "invalid array tuple label"
-msgstr "ongeldig label voor array-tupel"
-
-#: ch/convert.c:750
-msgid "non-constant array tuple index range"
-msgstr "niet-constant indexbereik van array-tupel"
-
-#: ch/convert.c:759
-#, c-format
-msgid "incompatible array tuple element %s"
-msgstr "incompatibel array-tupel element %s"
-
-#: ch/convert.c:775
-msgid "multiple (*) or (ELSE) array tuple labels"
-msgstr ""
-
-#: ch/convert.c:784
-msgid "empty range in array tuple"
-msgstr "leeg indexbereik in array-tupel"
-
-#: ch/convert.c:801
+#: config/v850/v850.c:3048
#, c-format
-msgid "array tuple has duplicate index %s"
-msgstr ""
-
-#: ch/convert.c:809
-msgid "array tuple index out of range"
-msgstr "index van array-tupel buiten bereik"
-
-#: ch/convert.c:811
-msgid "too many array tuple values"
-msgstr ""
-
-#: ch/convert.c:883
-msgid "dynamic array tuple without (*) or (ELSE)"
+msgid "Too much stack space to dispose of: %d"
msgstr ""
-#: ch/convert.c:885
+#: config/v850/v850.c:3224
#, c-format
-msgid "missing array tuple element %s"
+msgid "Bogus PREPEARE construction: %d\n"
msgstr ""
-#: ch/convert.c:892
+#: config/v850/v850.c:3246
#, c-format
-msgid "missing array tuple elements %s : %s"
-msgstr ""
-
-# Is 'mode' enkel van toepassing op 'string', of ook op 'array'?
-#: ch/convert.c:1086
-msgid "initializer is not an array or string mode"
-msgstr "beginwaarde is geen array of string-modus"
-
-#: ch/convert.c:1096
-msgid "destination is too small"
-msgstr ""
-
-#: ch/convert.c:1152
-msgid "internal error: unknown type of expression"
-msgstr "interne fout: onbekende expressie-soort"
-
-#: ch/decl.c:1033
-#, c-format
-msgid "`%s' must not be declared readonly"
-msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-
-#: ch/decl.c:1037
-msgid "declaration of readonly variable without initialization"
-msgstr ""
-
-#: ch/decl.c:1059
-#, fuzzy, c-format
-msgid "no initialization allowed for `%s'"
-msgstr "geen initialisatie toegestaan voor `%s'"
-
-#: ch/decl.c:1067
-#, c-format
-msgid "value for loc-identity `%s' is not a location"
-msgstr ""
-
-#: ch/decl.c:1074
-#, c-format
-msgid "location for `%s' not read-compatible"
-msgstr ""
-
-#: ch/decl.c:1101
-#, c-format
-msgid "nonconstant initializer for `%s'"
-msgstr "niet-constante beginwaarde voor `%s'"
-
-#: ch/decl.c:1132
-msgid "do_decl: internal error: don't know what to initialize"
-msgstr ""
-
-#: ch/decl.c:1189
-msgid "RECURSIVE PROCs"
-msgstr ""
-
-#: ch/decl.c:1445
-#, c-format
-msgid "`%s' must not be READonly"
-msgstr ""
-
-#: ch/decl.c:1471
-msgid "POS may not be specified for a list of field declarations"
-msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
-
-#: ch/decl.c:1525
-msgid "(ELSE) case label as well as ELSE variant"
-msgstr ""
-
-#: ch/decl.c:1610 ch/decl.c:1613
-msgid "inconsistent modes between labels and tag field"
+msgid "Too much stack space to prepare: %d"
msgstr ""
-#: ch/decl.c:1618
-msgid "too few tag labels"
-msgstr ""
-
-#: ch/decl.c:1620
-msgid "too many tag labels"
-msgstr "teveel tag-labels"
-
-#: ch/decl.c:1658
-msgid "case label lower limit is not a discrete constant expression"
-msgstr "ondergrens van case-label is geen discrete constante expressie"
-
-#: ch/decl.c:1660
-msgid "case label upper limit is not a discrete constant expression"
-msgstr "bovengrens van case-label is geen discrete constante expressie"
-
-#: ch/decl.c:1670
-msgid "case label must be a discrete constant expression"
-msgstr "case-label moet een discrete constante expressie zijn"
-
-#: ch/decl.c:1697
-msgid "variant label declared here..."
-msgstr ""
-
-#: ch/decl.c:1699
-msgid "...is duplicated here"
-msgstr ""
-
-#: ch/decl.c:1729
-#, c-format
-msgid "no field (yet) for tag %s"
-msgstr ""
-
-#: ch/decl.c:1824
-msgid "non-value mode may only returned by LOC"
-msgstr ""
-
-#: ch/decl.c:1847
-#, c-format
-msgid "mode of `%s' is not a mode"
-msgstr "modus van `%s' is geen modus"
-
-#: ch/decl.c:1853
-#, c-format
-msgid "`%s' may only be passed by LOC"
-msgstr ""
-
-#: ch/decl.c:2281
-#, c-format
-msgid "nothing named `%s' to grant"
-msgstr ""
-
-#: ch/decl.c:2321
-#, c-format
-msgid "duplicate grant for `%s'"
-msgstr "herhaalde grant voor `%s'"
-
-#: ch/decl.c:2322
-#, c-format
-msgid "previous grant for `%s'"
-msgstr "eerdere grant voor `%s'"
-
-#: ch/decl.c:2409
-#, c-format
-msgid "duplicate definition `%s'"
-msgstr "herhaalde definitie `%s'"
-
-#: ch/decl.c:2410
-#, c-format
-msgid "previous definition of `%s'"
-msgstr "eerdere definitie van `%s'"
-
-#: ch/decl.c:3248 ch/decl.c:3258
-#, c-format
-msgid "ambiguous choice for seize `%s' -"
-msgstr ""
-
-#: ch/decl.c:3249 ch/decl.c:3259
-#, c-format
-msgid " - can seize this `%s' -"
-msgstr ""
-
-#: ch/decl.c:3250 ch/decl.c:3261
-#, c-format
-msgid " - or this granted decl `%s'"
-msgstr ""
-
-#: ch/decl.c:4430
-#, fuzzy, c-format
-msgid "enumerator value for `%s' is less than 0"
-msgstr "enumeratiewaarde voor `%s' is kleiner dan 0"
-
-#: ch/decl.c:4512
-#, c-format
-msgid "enumerators `%s' and `%s' have equal values"
-msgstr ""
-
-#: ch/decl.c:4618
-msgid "undefined value in SET mode is obsolete and deprecated"
-msgstr ""
-
-#: ch/decl.c:4794
-msgid "BASE variable never declared"
-msgstr "BASE-variabele nooit gedeclareerd"
-
-#: ch/decl.c:4796
-msgid "cannot BASE a variable on a PROC/PROCESS name"
-msgstr ""
-
-#: ch/decl.c:4848
-msgid "INTERNAL ERROR: handle_one_level is broken"
-msgstr ""
-
-#: ch/expr.c:126
-#, c-format
-msgid "tuple without specified mode not allowed in %s"
-msgstr ""
-
-#: ch/expr.c:128
-#, c-format
-msgid "conditional expression not allowed in %s"
-msgstr "voorwaardelijke expressie niet toegestaan in `%s'"
-
-#: ch/expr.c:130
-#, c-format
-msgid "internal error: unknown expression mode in %s"
-msgstr "interne fout: onbekende expressie-modus in %s"
-
-#: ch/expr.c:147
-msgid "CASE selector is not a discrete expression"
-msgstr ""
-
-#: ch/expr.c:215
-msgid "The number of CASE selectors does not match the number of CASE label lists"
-msgstr "Het aantal CASE-selectors komt niet overeen met het aantal CASE-label lijsten"
-
-# klinkt niet
-#: ch/expr.c:594
-msgid "powerset is not addressable"
-msgstr "powerset kan niet geaddresseerd worden"
-
-#: ch/expr.c:639
-msgid "array is not addressable"
-msgstr ""
-
-#: ch/expr.c:687
-#, fuzzy, c-format
-msgid "too few arguments in call to `%s'"
-msgstr "Te weinig argumenten in oproep van `%s'"
-
-#: ch/expr.c:689
-#, fuzzy, c-format
-msgid "too many arguments in call to `%s'"
-msgstr "Teveel argumenten in oproep van `%s'"
-
-#: ch/expr.c:758
-#, fuzzy
-msgid "cannot dereference, not a pointer"
-msgstr "kan niet derefereren, is geen pointer."
-
-#: ch/expr.c:768
-#, c-format
-msgid "missing '.' operator or undefined mode name `%s'"
-msgstr ""
-
-#: ch/expr.c:771
-msgid "you have forgotten the '.' operator which must"
-msgstr ""
-
-#: ch/expr.c:772
-#, c-format
-msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
msgstr ""
-#: ch/expr.c:786
-msgid "can't dereference PTR value using unary `->'"
+#: config/v850/v850.h:161
+msgid "Prohibit PC relative function calls"
msgstr ""
-# Is the %s the argument, or is it 'of' the argument?
-#: ch/expr.c:831
-msgid "invalid type argument of `->'"
-msgstr "ongeldig type-argument voor `->'"
-
-#: ch/expr.c:856 ch/expr.c:969
-msgid "operand of '.' is not a STRUCT"
+#: config/v850/v850.h:164
+msgid "Reuse r30 on a per function basis"
msgstr ""
-#: ch/expr.c:909
-#, fuzzy, c-format
-msgid "no field named `%s'"
-msgstr "Geen veld dat `%s' heet"
-
-#: ch/expr.c:1217
-msgid "ABS argument must be discrete or real mode"
+#: config/v850/v850.h:167
+msgid "Use stubs for function prologues"
msgstr ""
-#: ch/expr.c:1250
-#, fuzzy, c-format
-msgid "argument %d to ABSTIME must be of integer type"
-msgstr "argument van `%s' moet van een integraal type zijn."
-
-#: ch/expr.c:1288 ch/expr.c:1329
-#, fuzzy
-msgid "parameter 1 must be referable"
-msgstr "argument %d moet refereerbaar zijn"
-
-# Hoe vertaal je in godsnaam 'mismatch' op KORTE manier in het Nederlands???
-#: ch/expr.c:1294 ch/expr.c:1335 ch/expr.c:1372
-#, fuzzy
-msgid "mode mismatch in parameter 1"
-msgstr "geen overeenkomst van modus in parameter %d"
-
-#: ch/expr.c:1301 ch/expr.c:1342
-#, fuzzy
-msgid "parameter 2 must be a positive integer"
-msgstr "parameter 2 moet een locatie zijn"
-
-#: ch/expr.c:1436
-msgid "CARD argument must be powerset mode"
+#: config/v850/v850.h:170
+msgid "Same as: -mep -mprolog-function"
msgstr ""
-#: ch/expr.c:1487
-#, fuzzy
-msgid "expression for DESCR-built-in must be referable"
-msgstr "%s expressie moet refereerbaar zijn"
-
-#: ch/expr.c:1535
-#, fuzzy, c-format
-msgid "argument to `%s' must be of integer type"
-msgstr "argument van `%s' moet van een integraal type zijn."
-
-#: ch/expr.c:1568
-#, c-format
-msgid "argument 1 to `%s' must be of floating point mode"
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
msgstr ""
-#: ch/expr.c:1602
-#, fuzzy, c-format
-msgid "first argument to `%s' must be a mode"
-msgstr "Eerste argument van `%s' moet een modus zijn"
-
-#: ch/expr.c:1609
-#, c-format
-msgid "READonly modes for %s must have a value"
+#: config/v850/v850.h:173
+msgid "Compile for the v850 processor"
msgstr ""
-#: ch/expr.c:1692
-msgid "argument to TERMINATE must be a reference primitive value"
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
msgstr ""
-#: ch/expr.c:1741
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
#, fuzzy
-msgid "argument 1 to INTTIME must be of mode TIME"
-msgstr "Eerste argument van `%s' moet een modus zijn"
-
-#: ch/expr.c:1888
-msgid "LENGTH argument must be string, buffer, event mode, text location or mode"
-msgstr ""
-
-#: ch/expr.c:1917
-msgid "UPPER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1919
-msgid "LOWER argument must have a mode, or be a mode"
-msgstr ""
-
-#: ch/expr.c:1953
-msgid "UPPER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1955
-msgid "LOWER argument must be string, array, mode or integer"
-msgstr ""
-
-#: ch/expr.c:1991
-#, c-format
-msgid "%s argument must be POWERSET mode"
-msgstr ""
-
-#: ch/expr.c:2017
-#, c-format
-msgid "%s called for empty POWERSET"
-msgstr ""
-
-#: ch/expr.c:2098
-msgid "argument to NUM is not discrete"
-msgstr "argument voor NUM is niet discreet"
+msgid "Enable the use of the short load instructions"
+msgstr "ongeldig gebruik van `restrict'"
-#: ch/expr.c:2110
+#: config/v850/v850.h:180
#, fuzzy
-msgid "no integer mode which matches expression's mode"
-msgstr "Geen integer-modus die met expressie overeen komt"
+msgid "Do not use the callt instruction"
+msgstr "ongeldig gebruik van `restrict'"
-#: ch/expr.c:2119
-msgid "NUM's parameter is below its mode range"
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
msgstr ""
-#: ch/expr.c:2122
-msgid "NUM's parameter is above its mode range"
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
msgstr ""
-#: ch/expr.c:2161
-msgid "cannot take SUCC or PRED of a numbered SET"
+#: config/v850/v850.h:192
+msgid "Use 4 byte entries in switch tables"
msgstr ""
-#: ch/expr.c:2169
-msgid "SUCC or PRED must not be done on a PTR"
+#: config/v850/v850.h:218
+msgid "Set the max size of data eligible for the TDA area"
msgstr ""
-#: ch/expr.c:2172
-msgid "SUCC or PRED for a reference type is not standard"
+#: config/v850/v850.h:221
+msgid "Set the max size of data eligible for the SDA area"
msgstr ""
-#: ch/expr.c:2182
-msgid "SUCC or PRED argument must be a discrete mode"
+#: config/v850/v850.h:224
+msgid "Set the max size of data eligible for the ZDA area"
msgstr ""
-#: ch/expr.c:2203
-#, c-format
-msgid "taking the %s of a value already at its %s value"
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
msgstr ""
-#: ch/expr.c:2254
-msgid "size applied to a function mode"
-msgstr "size toegepast op een functie-modus"
-
-#: ch/expr.c:2260
-msgid "sizeof applied to a void mode"
-msgstr "sizeof toegepast op een void-modus"
-
-#: ch/expr.c:2265
-msgid "sizeof applied to an incomplete mode"
-msgstr "sizeof toegepast op een onvolledige modus"
-
-#: ch/expr.c:2360
-msgid "cannot call a PROCESS, you START a PROCESS"
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
msgstr ""
# (%s = 'parameter <NUM>')
-#: ch/expr.c:2422
-#, c-format
-msgid "invalid %s"
-msgstr "ongeldige %s"
-
-#: ch/expr.c:2437
-#, c-format
-msgid "%s parameter %d must be a location"
-msgstr "%s parameter %d moet een locatie zijn"
-
-#: ch/expr.c:2445
-#, c-format
-msgid "%s parameter %d is READ-only"
-msgstr ""
-
-#: ch/expr.c:2488
-#, c-format
-msgid "LOC actual parameter %d is a non-referable location"
-msgstr ""
-
-# Hoe vertaal je in godsnaam 'mismatch' op KORTE manier in het Nederlands???
-#: ch/expr.c:2494
-#, c-format
-msgid "mode mismatch in parameter %d"
-msgstr "geen overeenkomst van modus in parameter %d"
-
-#: ch/expr.c:2518
-#, c-format
-msgid "too many arguments to procedure `%s'"
-msgstr "teveel argumenten voor procedure `%s'"
-
-#: ch/expr.c:2521
-msgid "too many arguments to procedure"
-msgstr "teveel argumenten voor procedure"
-
-#: ch/expr.c:2527
-#, c-format
-msgid "too few arguments to procedure `%s'"
-msgstr "te weinig argumenten voor procedure `%s'"
-
-#: ch/expr.c:2530
-msgid "too few arguments to procedure"
-msgstr "te weinig argumenten voor procedure"
-
-#: ch/expr.c:2596
-msgid "syntax error (integer used as function)"
-msgstr ""
-
-#: ch/expr.c:2616
-msgid "syntax error - missing operator, comma, or '('?"
-msgstr ""
-
-#: ch/expr.c:2977
-#, fuzzy, c-format
-msgid "unimplemented built-in function `%s'"
-msgstr "ingebouwde functie `%s' is niet geïmplementeerd"
-
-#: ch/expr.c:2981
-#, fuzzy, c-format
-msgid "internal error - bad built-in function `%s'"
-msgstr "interne fout - slechte ingebouwde functie `%s'"
-
-#: ch/expr.c:2995
-msgid "empty expression in string index"
-msgstr "lege expressie in string-index"
-
-#: ch/expr.c:3000
-msgid "only one expression allowed in string index"
-msgstr ""
-
-#: ch/expr.c:3017
-msgid "invalid: primval ( untyped_exprlist )"
-msgstr ""
-
-#: ch/expr.c:3081 ch/expr.c:3095
-msgid "operand is variable-size bitstring/power-set"
-msgstr ""
-
-#: ch/expr.c:3245
-#, c-format
-msgid "tree code `%s' unhandled in build_compare_set_expr"
-msgstr ""
-
-#: ch/expr.c:3410
-msgid "incompatible modes in concat expression"
-msgstr "incompatibele modi in concat-expressie"
-
-#: ch/expr.c:3459
-#, fuzzy
-msgid "invalid operation on array of chars"
-msgstr "Ongeldige operatie op array van chars"
-
-#: ch/expr.c:3504
-msgid "comparison of variant structures is unsafe"
-msgstr ""
-
-#: ch/expr.c:3511
-msgid "compare with variant records"
-msgstr ""
-
-#: ch/expr.c:3688 ch/expr.c:3924
-#, c-format
-msgid "incompatible operands to %s"
-msgstr "incompatibele operands voor %s"
-
-#: ch/expr.c:3740
-msgid "relational operator not allowed for this mode"
-msgstr "relationele operator niet toegestaan voor deze modus"
-
-#: ch/expr.c:3794
-#, c-format
-msgid "cannot use %s operator on PROC mode variable"
-msgstr ""
-
-#: ch/expr.c:3800
-#, c-format
-msgid "invalid left operand of %s"
-msgstr "ongeldige linker operand van %s"
-
-#: ch/expr.c:3805 ch/expr.c:4357
-#, c-format
-msgid "invalid right operand of %s"
-msgstr "ongeldige rechter operand van %s"
-
-#: ch/expr.c:3819
-msgid "repetition expression must be constant"
-msgstr ""
-
-#: ch/expr.c:3829
-msgid "left argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3834
-msgid "right argument to MOD/REM operator must be integral"
-msgstr ""
-
-#: ch/expr.c:3891
-msgid "right operand of IN is not a powerset"
-msgstr ""
-
-#: ch/expr.c:3896
-msgid "left operand of IN incompatible with right operand"
-msgstr ""
-
-#: ch/expr.c:3987
-#, fuzzy
-msgid "-> operator not allow in constant expression"
-msgstr "-> operator niet toegestaan in constante expressie"
-
-#: ch/expr.c:4000
-msgid "taking the address of a string literal is non-standard"
-msgstr ""
-
-#: ch/expr.c:4002
-msgid "taking the address of a function is non-standard"
-msgstr ""
-
-#: ch/expr.c:4005
-msgid "ADDR requires a LOCATION argument"
-msgstr ""
-
-#: ch/expr.c:4035
-msgid "-> expression is not addressable"
-msgstr ""
-
-#: ch/expr.c:4062
-msgid "ADDR parameter must be a LOCATION"
-msgstr ""
-
-#: ch/expr.c:4071
-msgid "possible internal error in build_chill_arrow_expr"
-msgstr ""
-
-#: ch/expr.c:4076
-#, c-format
-msgid "%s is not addressable"
-msgstr "%s is niet addresseerbaar"
-
-#: ch/expr.c:4175
-msgid "repetition count is not an integer constant"
-msgstr "herhalings-aantal is geen integerconstante"
-
-#: ch/expr.c:4183
-msgid "repetition count < 0"
-msgstr ""
-
-#: ch/expr.c:4188
-msgid "repetition value not constant"
-msgstr "herhalings-aantal is niet constant"
-
-#: ch/expr.c:4200
-msgid "bitstring repetition of non-constant boolean"
-msgstr ""
-
-#: ch/expr.c:4223
-msgid "string repetition operand is non-constant bitstring"
-msgstr "string herhalings-operand is een niet-constante bitstring"
-
-#: ch/expr.c:4283
-msgid "non-char, non-bit string repetition"
-msgstr ""
-
-#: ch/expr.c:4311
-#, c-format
-msgid "invalid operand of %s"
-msgstr "ongeldige operand van %s"
-
-#: ch/expr.c:4322
-#, c-format
-msgid "right operand of %s is not array of boolean"
-msgstr ""
-
-#: ch/expr.c:4335
-#, c-format
-msgid "%s operator applied to boolean variable"
-msgstr ""
-
-# Of moet/mag 'boolean' hier vertaald worden?
-#: ch/expr.c:4406
-msgid "non-boolean mode in conditional expression"
-msgstr "niet-boolean modus in voorwaardelijke expressie"
-
-#: ch/grant.c:1978
-msgid "decode_constant: invalid component_ref"
-msgstr ""
-
-#: ch/grant.c:1986
-msgid "decode_constant: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:1989
-msgid "decode_constant: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2214
-msgid "decode_constant_selective: mode and value mismatch"
-msgstr ""
-
-#: ch/grant.c:2217
-msgid "decode_constant_selective: cannot decode this mode"
-msgstr ""
-
-#: ch/grant.c:2677
-#, fuzzy, c-format
-msgid "can't write to %s"
-msgstr "open %s"
-
-#: ch/grant.c:2764
-msgid "FORBID is not yet implemented"
-msgstr ""
-
-#. this nerver should happen
-#: ch/grant.c:2825
-#, fuzzy, c-format
-msgid "function \"really_grant_this\" called for `%s'"
-msgstr "functie \"really_grant_this\" opgeroepen voor `%s'"
-
-#: ch/inout.c:1645
-msgid "non-integral text length"
-msgstr ""
-
-#: ch/inout.c:1650
-msgid "non-constant text length"
-msgstr ""
-
-#: ch/inout.c:1655
-msgid "text length must be greater than 0"
-msgstr ""
-
-#: ch/inout.c:1755
-#, c-format
-msgid "argument %d of %s must be of mode ASSOCIATION"
-msgstr ""
-
-#: ch/inout.c:1760 ch/inout.c:2146 ch/inout.c:2516 ch/inout.c:2751
-#, c-format
-msgid "argument %d of %s must be a location"
-msgstr "argument %d van %s moet een locatie zijn"
-
-#: ch/inout.c:1795
-msgid "argument 2 of ASSOCIATE must not be an empty string"
-msgstr "argument 2 van ASSOCIATE mag geen lege string zijn"
-
-#: ch/inout.c:1811
-msgid "argument 2 to ASSOCIATE must be a string"
-msgstr ""
-
-#: ch/inout.c:1850
-msgid "argument 3 to ASSOCIATE must be a string"
-msgstr ""
-
-#: ch/inout.c:2031
+#: config/xtensa/xtensa.c:1991
#, fuzzy
-msgid "too many arguments in call to MODIFY"
-msgstr "Teveel argumenten in oproep van MODIFY"
-
-#: ch/inout.c:2044
-msgid "argument 2 of MODIFY must not be an empty string"
-msgstr "argument 2 van MODIFY mag geen lege string zijn"
-
-#: ch/inout.c:2060
-msgid "argument 2 to MODIFY must be a string"
-msgstr "argument 2 van MODIFY moet een string zijn"
-
-#: ch/inout.c:2094
-msgid "argument 3 to MODIFY must be a string"
-msgstr "argument 3 van MODIFY moet een string zijn"
-
-#: ch/inout.c:2141
-#, c-format
-msgid "argument %d of %s must be an ACCESS or TEXT mode"
-msgstr ""
-
-#: ch/inout.c:2355
-msgid "argument 4 of CONNECT must be of mode WHERE"
-msgstr ""
-
-#: ch/inout.c:2371
-msgid "index expression for ACCESS without index"
-msgstr ""
-
-#: ch/inout.c:2376 ch/inout.c:2554 ch/inout.c:2636 ch/inout.c:4356
-#: ch/inout.c:4504
-msgid "incompatible index mode"
-msgstr "incompatibele index-modus"
-
-#: ch/inout.c:2476
-msgid "argument 3 to CONNECT must be of mode USAGE"
-msgstr ""
-
-#: ch/inout.c:2511
-#, c-format
-msgid "argument %d of %s must be of mode ACCESS"
-msgstr ""
-
-#: ch/inout.c:2545
-#, fuzzy
-msgid "too few arguments in call to `readrecord'"
-msgstr "Te weinig argumenten in oproep van `readrecord'"
-
-#: ch/inout.c:2569 ch/inout.c:2648
-msgid "incompatible record mode"
-msgstr "incompatibele record-modus"
-
-#: ch/inout.c:2574
-msgid "store location must not be READonly"
-msgstr ""
-
-#: ch/inout.c:2616
-#, fuzzy
-msgid "too few arguments in call to `writerecord'"
-msgstr "Te weinig argumenten in oproep van `writerecord'"
-
-#: ch/inout.c:2643
-msgid "transfer to ACCESS without record mode"
-msgstr ""
-
-#: ch/inout.c:2746
-#, c-format
-msgid "argument %d of %s must be of mode TEXT"
-msgstr ""
-
-#: ch/inout.c:2803
-msgid "TEXT doesn't have a location"
-msgstr ""
-
-#: ch/inout.c:2905
-msgid "incompatible index mode for SETETEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2915
-msgid "incompatible record mode for SETTEXTACCESS"
-msgstr ""
-
-#: ch/inout.c:2945
-msgid "parameter 2 must be a location"
-msgstr "parameter 2 moet een locatie zijn"
-
-#: ch/inout.c:2955
-msgid "incompatible modes in parameter 2"
-msgstr "incompatibele modes in parameter 2"
-
-# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: ch/inout.c:3062
-msgid "conditional expression not allowed in this context"
-msgstr "voorwaardelijke expressie niet toegestaan in deze context"
-
-# Betere vertaling voor 'untyped'?
-#: ch/inout.c:3064
-#, c-format
-msgid "untyped expression as argument %d"
-msgstr "expressie zonder type als argument %d"
-
-#: ch/inout.c:3141 ch/inout.c:3187
-#, c-format
-msgid "cannot process %d bits integer for READTEXT argument %d"
-msgstr ""
-
-#: ch/inout.c:3262
-#, c-format
-msgid "cannot process %d bits integer WRITETEXT argument %d"
-msgstr ""
-
-# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: ch/inout.c:3283 ch/inout.c:3338 ch/inout.c:3417 ch/inout.c:3483
-#: ch/inout.c:3534 ch/inout.c:3619 ch/inout.c:3654
-#, c-format
-msgid "argument %d is READonly"
-msgstr "argument %d is alleen-lezen"
-
-#: ch/inout.c:3290 ch/inout.c:3345 ch/inout.c:3424 ch/inout.c:3491
-#: ch/inout.c:3542 ch/inout.c:3627 ch/inout.c:3659
-#, c-format
-msgid "argument %d must be referable"
-msgstr "argument %d moet refereerbaar zijn"
-
-#: ch/inout.c:3578
-#, c-format
-msgid "cannot process argument %d of WRITETEXT, unknown size"
-msgstr ""
-
-#. datatype is not yet implemented, issue a warning
-#: ch/inout.c:3725
-#, c-format
-msgid "cannot process mode of argument %d for %sTEXT"
-msgstr ""
-
-#: ch/inout.c:3868
-msgid "too few arguments for this format string"
-msgstr "te weinig argumenten voor deze formaatstring"
-
-#: ch/inout.c:3893 ch/inout.c:3902
-#, c-format
-msgid "type of argument %d invalid for conversion code at offset %d"
-msgstr ""
-
-#: ch/inout.c:4012
-msgid "unmatched open paren"
-msgstr ""
-
-#: ch/inout.c:4026 ch/inout.c:4221
-#, c-format
-msgid "bad format specification character (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4039
-#, c-format
-msgid "repetition factor overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4057 ch/inout.c:4064 ch/inout.c:4071
-#, c-format
-msgid "duplicate qualifier (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4093
-#, c-format
-msgid "clause width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4106
-#, c-format
-msgid "no fraction (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4124
-#, c-format
-msgid "no fraction width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4131
-#, c-format
-msgid "fraction width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4142
-#, c-format
-msgid "no exponent (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4160
-#, c-format
-msgid "no exponent width (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4167
-#, c-format
-msgid "exponent width overflow (offset %d)"
-msgstr ""
-
-#: ch/inout.c:4208
-msgid "internal error in check_format_string"
-msgstr "interne fout in check_format_string"
-
-#: ch/inout.c:4224
-#, c-format
-msgid "no padding character (offset %d)"
-msgstr ""
-
-#. too may arguments for format string
-#: ch/inout.c:4256
-msgid "too many arguments for this format string"
-msgstr "teveel argumenten voor deze formaatstring"
-
-#: ch/inout.c:4354 ch/inout.c:4502
-msgid "missing index expression"
-msgstr "ontbrekende index-expressie"
-
-#: ch/inout.c:4361
-#, fuzzy
-msgid "too few arguments in call to `writetext'"
-msgstr "Te weinig argumenten in oproep van `writetext'"
-
-#: ch/inout.c:4374
-msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location"
-msgstr ""
-
-#: ch/inout.c:4397
-msgid "`format string' for WRITETEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/inout.c:4509
-#, fuzzy
-msgid "too few arguments in call to `readtext'"
-msgstr "Te weinig argumenten in oproep van `readtext'"
-
-#: ch/inout.c:4522
-msgid "argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] expression"
-msgstr ""
-
-#: ch/inout.c:4543
-msgid "`format string' for READTEXT must be a CHARACTER string"
-msgstr ""
-
-#: ch/lang.c:105
-msgid "non-constant expression"
-msgstr "niet-constante expressie"
-
-#: ch/lang.c:191
-msgid "ignoring case upon input and"
-msgstr ""
-
-#: ch/lang.c:192
-msgid "making special words uppercase wouldn't work"
-msgstr ""
-
-#: ch/lang.c:203
-msgid "making special words uppercase and"
-msgstr ""
-
-#: ch/lang.c:204
-msgid " ignoring case upon input wouldn't work"
-msgstr ""
-
-#: ch/lang.c:277 java/typeck.c:178
-msgid "internal error - use of undefined type"
-msgstr "interne fout -- niet gedefinieerd type gebruikt"
-
-#: ch/lex.c:502
-msgid "invalid C'xx' "
-msgstr "ongeldige C'xx'"
-
-#: ch/lex.c:607 java/jcf-parse.c:611 java/jcf-write.c:3376
-#, fuzzy, c-format
-msgid "can't close %s"
-msgstr "close %s"
-
-#: ch/lex.c:711
-msgid "malformed exponent part of floating-point literal"
-msgstr ""
-
-#: ch/lex.c:728
-#, fuzzy
-msgid "real number exceeds range of REAL"
-msgstr "floating-point getal overschrijdt het bereik van een `float'"
-
-#: ch/lex.c:747 ch/lex.c:774
-#, fuzzy
-msgid "end-of-file in '<>' directive"
-msgstr "ongedefinieerd of ongeldig #-commando"
-
-#: ch/lex.c:780
-#, fuzzy
-msgid "unrecognized compiler directive"
-msgstr "onbekende formaatspecificatie"
-
-#: ch/lex.c:788 ch/lex.c:834
-#, fuzzy, c-format
-msgid "unrecognized compiler directive `%s'"
-msgstr "onbekende formaatspecificatie"
-
-#: ch/lex.c:995
-#, fuzzy
-msgid "unterminated control sequence"
-msgstr "niet-beëindigde commentaar"
-
-#: ch/lex.c:1010 ch/lex.c:1046
-msgid "invalid integer literal in control sequence"
-msgstr ""
-
-#: ch/lex.c:1021 ch/lex.c:1029
-msgid "control sequence overflow"
-msgstr ""
-
-#: ch/lex.c:1023 ch/lex.c:1031
-#, fuzzy
-msgid "invalid control sequence"
-msgstr "ongeldige macronaam"
-
-#: ch/lex.c:1111
-#, fuzzy
-msgid "invalid base in read control sequence"
-msgstr "ongeldige lvalue bij decrementeren"
-
-#: ch/lex.c:1118
-msgid "invalid digit in control sequence"
-msgstr ""
-
-#: ch/lex.c:1145
-#, fuzzy
-msgid "unterminated string literal"
-msgstr "Onbeëindigde stringconstante"
-
-#: ch/lex.c:1248 ch/lex.c:1334
-#, fuzzy, c-format
-msgid "invalid number format `%s'"
-msgstr "ongeldige registernaam voor `%s'"
-
-#: ch/lex.c:1266
-msgid "integer literal too big"
-msgstr ""
-
-#: ch/lex.c:1395
-#, fuzzy, c-format
-msgid "can't find %s"
-msgstr "kan %s niet vinden"
-
-#: ch/lex.c:1421
-msgid "USE_SEIZE_FILE directive must be followed by string"
-msgstr ""
-
-#: ch/lex.c:1693 f/lex.c:1190
-msgid "invalid #ident"
-msgstr "ongeldige #ident"
-
-#: ch/lex.c:1711 f/lex.c:1207
-msgid "undefined or invalid # directive"
-msgstr "ongedefinieerd of ongeldig #-commando"
-
-#: ch/lex.c:1765 ch/lex.c:1774 f/lex.c:1263
-msgid "invalid #line"
-msgstr "ongeldige #line"
-
-#: ch/lex.c:1843 f/lex.c:836
-msgid "#-lines for entering and leaving files don't match"
-msgstr "#-lijnen voor het binnengaan en verlaten van bestanden komen niet overeen"
-
-#: ch/lex.c:1868 f/lex.c:1373
-msgid "invalid #-line"
-msgstr "ongeldige #-lijn"
-
-#: ch/lex.c:1998
-msgid "missing `=' in compiler directive"
-msgstr ""
-
-#: ch/lex.c:2040 ch/lex.c:2050 ch/lex.c:2091
-#, fuzzy
-msgid "invalid value follows `=' in compiler directive"
-msgstr "`#line'-commando in slecht formaat"
-
-#: ch/lex.c:2061
-#, fuzzy, c-format
-msgid "invalid `%c' character in name"
-msgstr "ongeldig karakter in naam van macro-parameter"
-
-#: ch/lex.c:2074
-#, fuzzy, c-format
-msgid "`%s' not integer constant synonym "
-msgstr "twee `u's in integerconstante"
-
-#: ch/lex.c:2097
-#, fuzzy
-msgid "value out of range in compiler directive"
-msgstr "lijnnummer buiten bereik in `#line'-commando"
-
-#: ch/lex.c:2214 java/jcf-parse.c:607
-#, fuzzy, c-format
-msgid "can't reopen %s"
-msgstr "open %s"
-
-#: ch/lex.c:2225
-msgid "no modules seen"
-msgstr ""
-
-#: ch/loop.c:480
-#, fuzzy
-msgid "modeless tuple not allowed in this context"
-msgstr "%s: %s compiler niet geïnstalleerd op dit systeem"
-
-#: ch/loop.c:482
-msgid "IN expression does not have a mode"
-msgstr ""
-
-#: ch/loop.c:489
-msgid "location enumeration for BOOLS"
-msgstr ""
-
-#: ch/loop.c:517
-msgid "location enumeration for bit-packed arrays"
-msgstr ""
-
-#: ch/loop.c:526 ch/nloop.c:481
-#, fuzzy
-msgid "loop's IN expression is not a composite object"
-msgstr "`%s' is geen iterator"
-
-#: ch/loop.c:541 ch/nloop.c:498
-msgid "start expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:547 ch/nloop.c:504
-msgid "DO FOR start expression is a numbered SET"
-msgstr ""
-
-#: ch/loop.c:555 ch/nloop.c:510
-msgid "TO expression is a numbered SET"
-msgstr ""
-
-#: ch/loop.c:560 ch/nloop.c:525
-msgid "TO expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:565 ch/nloop.c:531
-msgid "start expr and TO expr must be compatible"
-msgstr ""
-
-#: ch/loop.c:574 ch/nloop.c:546
-msgid "BY expr must have discrete mode"
-msgstr ""
-
-#: ch/loop.c:579 ch/nloop.c:552
-msgid "start expr and BY expr must be compatible"
-msgstr ""
-
-#: ch/loop.c:595 ch/nloop.c:765
-msgid "loop identifier undeclared"
-msgstr ""
-
-#: ch/loop.c:606
-#, fuzzy
-msgid "loop variable incompatible with start expression"
-msgstr "overflow in constante expressie"
-
-#: ch/loop.c:633 ch/nloop.c:564
-msgid "body of DO FOR will never execute"
-msgstr ""
-
-#: ch/loop.c:648 ch/nloop.c:585
-msgid "BY expression is negative or zero"
-msgstr ""
-
-#: ch/loop.c:847 ch/nloop.c:817
-msgid "can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/nloop.c:867
-msgid "Can't iterate through array of BOOL"
-msgstr ""
-
-#: ch/parse.c:159
-#, c-format
-msgid "there was no start label to match the end label '%s'"
-msgstr ""
-
-#: ch/parse.c:162
-#, c-format
-msgid "start label '%s' does not match end label '%s'"
-msgstr ""
-
-#: ch/parse.c:192
-#, fuzzy, c-format
-msgid "`%s' not declared"
-msgstr "`%.*s' is niet gedefinieerd"
-
-#: ch/parse.c:226
-#, fuzzy
-msgid "no RETURN or RESULT in procedure"
-msgstr "RETURN zonder waarde en geen RESULTS-actie in procedure"
-
-#: ch/parse.c:245
-msgid "PREFIXED clause with no prelix in unlabeled module"
-msgstr ""
-
-#: ch/parse.c:336
-#, fuzzy, c-format
-msgid "internal parser error - expected token %d"
-msgstr "interne fout - dup-operatie"
-
-#: ch/parse.c:529
-#, fuzzy, c-format
-msgid "'%s!' is not followed by an identifier"
-msgstr "`#' gevolgd door een integer"
-
-#: ch/parse.c:545
-msgid "expected a name here"
-msgstr ""
-
-#: ch/parse.c:560
-msgid "expected a name string here"
-msgstr ""
-
-#: ch/parse.c:591
-#, fuzzy, c-format
-msgid "`%s' undeclared"
-msgstr "`%s' tevoren hier gedeclareerd"
-
-#: ch/parse.c:669
-msgid "action not allowed in SPEC MODULE"
-msgstr ""
-
-#: ch/parse.c:691
-msgid "missing defining occurrence"
-msgstr ""
-
-#: ch/parse.c:702
-msgid "bad defining occurrence following ','"
-msgstr ""
-
-#: ch/parse.c:802
-msgid "missing '(' in exception list"
-msgstr ""
-
-#: ch/parse.c:827
-msgid "ON exception names must be unique"
-msgstr ""
-
-#: ch/parse.c:837
-msgid "syntax error in exception list"
-msgstr ""
-
-#: ch/parse.c:873
-#, fuzzy
-msgid "empty ON-condition"
-msgstr "lege declaratie"
-
-#: ch/parse.c:938
-msgid "INIT not allowed at loc-identity declaration"
-msgstr ""
-
-#: ch/parse.c:948
-#, fuzzy
-msgid "'=' used where ':=' is required"
-msgstr "waarde van union-type gebruikt waar een scalair nodig is"
-
-#: ch/parse.c:956
-msgid "initialization is not allowed in spec module"
-msgstr ""
-
-#: ch/parse.c:964
-msgid "loc-identity declaration without initialization"
-msgstr ""
-
-#: ch/parse.c:1008
-msgid "bad syntax following FORBID"
-msgstr ""
-
-#: ch/parse.c:1023
-msgid "expected a postfix name here"
-msgstr ""
-
-#: ch/parse.c:1068
-msgid "expected another rename clause"
-msgstr ""
-
-#: ch/parse.c:1128
-#, fuzzy
-msgid "syntax error in parameter name list"
-msgstr "ongeldig karakter in naam van macro-parameter"
-
-#: ch/parse.c:1221
-msgid "NONREF specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1223
-msgid "DYNAMIC specific without LOC in result attribute"
-msgstr ""
-
-#: ch/parse.c:1245
-msgid "exception names must be unique"
-msgstr ""
-
-#: ch/parse.c:1441
-msgid "must specify a PROCESS name"
-msgstr ""
-
-#: ch/parse.c:1448
-msgid "SIGNAL must be in global reach"
-msgstr ""
-
-#: ch/parse.c:1479
-msgid "syntax error while parsing signal definition statement"
-msgstr ""
-
-#: ch/parse.c:1593
-#, fuzzy
-msgid "case range list"
-msgstr "leeg case-bereik"
-
-#: ch/parse.c:1660
-msgid "misplaced colon in case label"
-msgstr ""
-
-#: ch/parse.c:1707
-msgid "unrecognized case label list after ','"
-msgstr ""
-
-#: ch/parse.c:1971 ch/parse.c:1997
-#, fuzzy
-msgid "bad ASM operand"
-msgstr "ongeldige operand voor %P"
-
-#: ch/parse.c:2067
-msgid "readonly location modified by 'asm'"
-msgstr ""
-
-#: ch/parse.c:2198
-msgid "expected 'TO' in step enumeration"
-msgstr ""
-
-#: ch/parse.c:2213
-msgid "expected 'IN' in FOR control here"
-msgstr ""
-
-#: ch/parse.c:2314
-msgid "missing DELAY CASE alternative"
-msgstr ""
-
-#. This is probably not possible
-#: ch/parse.c:2348
-msgid "non-referable location in DO WITH"
-msgstr ""
-
-#: ch/parse.c:2360
-msgid "WITH element must be of STRUCT mode"
-msgstr ""
-
-#: ch/parse.c:2467
-msgid "missing ')' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2481
-msgid "misplaced 'IN' in signal/buffer receive alternative"
-msgstr ""
-
-#: ch/parse.c:2529
-msgid "missing RECEIVE alternative"
-msgstr ""
-
-#: ch/parse.c:2655
-msgid "PROCESS copy number must be integer"
-msgstr ""
-
-#: ch/parse.c:2882
-msgid "missing parenthesis for procedure call"
-msgstr ""
-
-#: ch/parse.c:2884
-#, fuzzy
-msgid "expression is not an action"
-msgstr "`%s' is geen iterator"
-
-#: ch/parse.c:2918
-msgid "syntax error in action"
-msgstr ""
-
-#: ch/parse.c:2945
-msgid "no handler is permitted on this action"
-msgstr ""
-
-#: ch/parse.c:2966
-#, fuzzy
-msgid "definition follows action"
-msgstr "herdefinitie van `union %s'"
-
-#: ch/parse.c:3042
-msgid "bad tuple field name list"
-msgstr ""
-
-#: ch/parse.c:3088
-msgid "invalid syntax for label in tuple"
-msgstr ""
-
-#: ch/parse.c:3133
-msgid "bad syntax in tuple"
-msgstr ""
-
-#: ch/parse.c:3160
-msgid "non-mode name before tuple"
-msgstr ""
-
-#: ch/parse.c:3205
-#, fuzzy
-msgid "invalid expression/location syntax"
-msgstr "ongeldige expressie als operand"
-
-#: ch/parse.c:3262
-msgid "RECEIVE expression"
-msgstr ""
-
-#: ch/parse.c:3457
-msgid "there should not be a ';' here"
-msgstr ""
-
-#: ch/parse.c:3496
-msgid "missing ELSE/ELSIF in IF expression"
-msgstr ""
-
-# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: ch/parse.c:3547
-#, fuzzy
-msgid "conditional expression not allowed inside parentheses"
-msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
-
-#: ch/parse.c:3551
-msgid "mode-less tuple not allowed inside parentheses"
-msgstr ""
-
-#. Z.200 doesn't allow mixed numbered and unnumbered set elements,
-#. but we can do it. Print a warning
-#: ch/parse.c:3664
-msgid "mixed numbered and unnumbered set elements is not standard"
-msgstr ""
-
-#: ch/parse.c:3667
-msgid "SET mode must define at least one named value"
-msgstr ""
-
-#: ch/parse.c:3766
-msgid "POS not allowed for ARRAY"
-msgstr ""
-
-#: ch/parse.c:3776
-msgid "STEP not allowed in field definition"
-msgstr ""
+msgid "invalid mask"
+msgstr "ongeldige %s"
-#: ch/parse.c:3792
+#: config/xtensa/xtensa.c:2038
#, fuzzy
-msgid "missing field name"
-msgstr "beginwaarde ontbreekt"
-
-#: ch/parse.c:3801
-msgid "bad field name following ','"
-msgstr ""
-
-#: ch/parse.c:3861
-msgid "expected ':' in structure variant alternative"
-msgstr ""
+msgid "invalid address"
+msgstr "Ongeldige addresseringsmodus"
-#: ch/parse.c:3912
+#: config/xtensa/xtensa.c:2063
#, fuzzy
-msgid "missing field"
-msgstr "beginwaarde ontbreekt"
-
-#: ch/parse.c:4060
-msgid "VARYING bit-strings not implemented"
-msgstr ""
-
-#: ch/parse.c:4121
-msgid "strings must be composed of chars"
-msgstr ""
-
-#: ch/parse.c:4171
-msgid "BUFFER modes may not be readonly"
-msgstr ""
-
-#: ch/parse.c:4178
-msgid "EVENT modes may not be readonly"
-msgstr ""
+msgid "no register in address"
+msgstr "Ongeldig register in ybase-addressering"
-#: ch/parse.c:4198
+#: config/xtensa/xtensa.c:2071
#, fuzzy
-msgid "SIGNAL is not a valid mode"
-msgstr "-fPIC is niet geldig met -mcoff"
-
-#: ch/parse.c:4235
-msgid "syntax error - missing mode"
-msgstr ""
-
-#: ch/parse.c:4282
-msgid "syntax error - expected a module or end of file"
-msgstr ""
-
-#: ch/satisfy.c:58
-#, c-format
-msgid " `%s', which depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:90
-#, c-format
-msgid "cycle: `%s' depends on ..."
-msgstr ""
-
-#: ch/satisfy.c:92
-#, fuzzy, c-format
-msgid " `%s'"
-msgstr "%s voor `%s'"
-
-#: ch/satisfy.c:151
-msgid "SYN of this mode not allowed"
-msgstr ""
-
-#: ch/satisfy.c:156
-msgid "mode of SYN incompatible with value"
-msgstr ""
-
-#: ch/satisfy.c:167
-msgid "SYN value outside range of its mode"
-msgstr ""
-
-#: ch/satisfy.c:176
-msgid "INIT string too large for mode"
-msgstr ""
-
-#: ch/satisfy.c:195
-#, fuzzy, c-format
-msgid "value of %s is not a valid constant"
+msgid "address offset not a constant"
msgstr "het argument van `asm' is geen constante string"
-#: ch/satisfy.c:226
-msgid "mode with non-value property in signal definition"
-msgstr ""
-
-#: ch/satisfy.c:403
-#, fuzzy, c-format
-msgid "undeclared identifier `%s'"
-msgstr "ongeldige naam `%s'"
-
-#: ch/satisfy.c:456
-msgid "RETURNS spec with invalid mode"
-msgstr ""
-
-#: ch/satisfy.c:520
-msgid "operand to REF is not a mode"
-msgstr ""
-
-#: ch/satisfy.c:554
-msgid "field with non-value mode in variant structure not allowed"
-msgstr ""
-
-#: ch/satisfy.c:593
-msgid "buffer element mode must not have non-value property"
-msgstr ""
-
-#: ch/satisfy.c:602
-msgid "recordmode must not have the non-value property"
-msgstr ""
-
-#: ch/tasking.c:170 ch/tasking.c:218
-#, c-format
-msgid "tasking code %ld out of range for `%s'"
-msgstr ""
-
-#: ch/tasking.c:284
-#, c-format
-msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
-msgstr ""
-
-#: ch/tasking.c:325
-msgid "PROCESS may only be declared at module level"
-msgstr ""
-
-#: ch/tasking.c:549
-#, c-format
-msgid "process name %s never declared"
-msgstr ""
-
-#: ch/tasking.c:554
-msgid "you may only START a process, not a proc"
-msgstr ""
-
-#: ch/tasking.c:590
-#, fuzzy
-msgid "SET expression not a location"
-msgstr "`%s' is geen iterator"
-
-#: ch/tasking.c:595
-msgid "SET location must be INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:632
-#, fuzzy, c-format
-msgid "too many arguments to process `%s'"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: ch/tasking.c:635
-#, fuzzy
-msgid "too many arguments to process"
-msgstr "teveel argumenten voor functie"
-
-#: ch/tasking.c:640
-#, fuzzy, c-format
-msgid "too few arguments to process `%s'"
-msgstr "te weinig argumenten voor functie `%s'"
-
-#: ch/tasking.c:643
-#, fuzzy
-msgid "too few arguments to process"
-msgstr "te weinig argument voor functie"
-
-#: ch/tasking.c:983
-msgid "COPY_NUMBER argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1007
-msgid "GEN_CODE argument must be a process or signal name"
-msgstr ""
-
-#: ch/tasking.c:1029
-msgid "GEN_INST parameter 2 must be an integer mode"
-msgstr ""
-
-#: ch/tasking.c:1050
-msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
-msgstr ""
-
-#: ch/tasking.c:1076
-#, c-format
-msgid "%s is not a declared process"
-msgstr ""
-
-#: ch/tasking.c:1097
-msgid "PROC_TYPE argument must be INSTANCE expression"
-msgstr ""
-
-#: ch/tasking.c:1139
+#: config/xtensa/xtensa.c:2794
#, fuzzy
-msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location"
-msgstr "argument %d van %s moet een locatie zijn"
-
-#: ch/tasking.c:1289
-#, c-format
-msgid "SEND requires a SIGNAL; %s is not a SIGNAL name"
-msgstr ""
-
-#: ch/tasking.c:1314
-#, fuzzy, c-format
-msgid "too many values for SIGNAL `%s'"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: ch/tasking.c:1320
-#, fuzzy, c-format
-msgid "too few values for SIGNAL `%s'"
-msgstr "te weinig argumenten voor functie `%s'"
-
-#: ch/tasking.c:1398
-msgid "signal sent without priority"
-msgstr ""
-
-#: ch/tasking.c:1399 ch/tasking.c:2927
-msgid " and no default priority was set."
-msgstr ""
-
-#: ch/tasking.c:1400 ch/tasking.c:2777 ch/tasking.c:2928
-msgid " PRIORITY defaulted to 0"
-msgstr ""
-
-#: ch/tasking.c:1415
-msgid "SEND without a destination instance"
-msgstr ""
-
-#: ch/tasking.c:1416
-msgid " and no destination process specified"
-msgstr ""
-
-#: ch/tasking.c:1417
-msgid " for the signal"
-msgstr ""
-
-#. as our system doesn't allow that and Z.200 specifies it,
-#. we issue a warning
-#: ch/tasking.c:1436
-#, c-format
-msgid "SEND to ANY copy of process `%s'"
-msgstr ""
-
-#: ch/tasking.c:1441
-msgid "SEND TO must be an INSTANCE mode"
-msgstr ""
-
-#: ch/tasking.c:1455
-msgid "SEND WITH must have a mode"
-msgstr ""
-
-#: ch/tasking.c:1724
-#, fuzzy
-msgid "internal error: RECEIVE CASE stack invalid"
-msgstr "interne fout"
-
-#: ch/tasking.c:1764 ch/tasking.c:2492
-msgid "SET requires INSTANCE location"
-msgstr ""
-
-#: ch/tasking.c:1843
-msgid "SIGNAL in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1844
-#, c-format
-msgid " a BUFFER name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1852
-#, c-format
-msgid "SIGNAL `%s' has no data fields"
-msgstr ""
-
-#: ch/tasking.c:1857
-#, c-format
-msgid "SIGNAL `%s' requires data fields"
-msgstr ""
-
-#: ch/tasking.c:1921
-#, c-format
-msgid "too few data fields provided for `%s'"
-msgstr ""
-
-#: ch/tasking.c:1924
-#, fuzzy, c-format
-msgid "too many data fields provided for `%s'"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: ch/tasking.c:1947
-msgid "BUFFER in RECEIVE CASE alternative follows"
-msgstr ""
-
-#: ch/tasking.c:1948
-#, c-format
-msgid " a SIGNAL name on line %d"
-msgstr ""
-
-#: ch/tasking.c:1956
-msgid "BUFFER in RECEIVE CASE alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:1962
-msgid "buffer receive alternative requires only 1 defining occurrence"
-msgstr ""
-
-#: ch/tasking.c:2043
-#, fuzzy
-msgid "incompatible modes in receive buffer alternative"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:2049
-msgid "defining occurrence in receive buffer alternative must be a location"
-msgstr ""
-
-#: ch/tasking.c:2086
-msgid "buffer receive alternative without `IN location'"
-msgstr ""
-
-#: ch/tasking.c:2092
-msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location"
-msgstr ""
-
-#: ch/tasking.c:2331
-msgid "RECEIVE CASE without alternatives"
-msgstr ""
-
-#: ch/tasking.c:2369
-#, fuzzy
-msgid "CONTINUE requires an event location"
-msgstr "Een -ifile optie heeft een -map optie nodig"
-
-#: ch/tasking.c:2503 ch/tasking.c:2939
-#, fuzzy
-msgid "PRIORITY must be of integer type"
-msgstr "argument van `%s' moet van een integraal type zijn."
-
-#: ch/tasking.c:2581
-#, fuzzy
-msgid "delay alternative must be an EVENT location"
-msgstr "parameter 2 moet een locatie zijn"
-
-#: ch/tasking.c:2636
-msgid "DELAY CASE without alternatives"
-msgstr ""
-
-#: ch/tasking.c:2756
-#, fuzzy
-msgid "DELAY action requires an event location"
-msgstr "Een -ifile optie heeft een -map optie nodig"
-
-#: ch/tasking.c:2767
-#, fuzzy
-msgid "PRIORITY in DELAY action must be of integer type"
-msgstr "argument van `%s' moet van een integraal type zijn."
-
-#: ch/tasking.c:2776
-msgid "DELAY action without priority."
-msgstr ""
-
-#: ch/tasking.c:2867
-#, fuzzy
-msgid "send buffer action requires a BUFFER location"
-msgstr "Een -ifile optie heeft een -map optie nodig"
-
-#: ch/tasking.c:2884
-#, fuzzy
-msgid "there must be only 1 value for send buffer action"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:2905
-#, fuzzy
-msgid "convert failed for send buffer action"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:2911
-#, fuzzy
-msgid "incompatible modes in send buffer action"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:2926
-msgid "buffer sent without priority"
-msgstr ""
-
-#: ch/tasking.c:2945
-#, fuzzy
-msgid "WITH not allowed for send buffer action"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:2950
-#, fuzzy
-msgid "TO not allowed for send buffer action"
-msgstr "incompatibele types bij %s"
-
-#: ch/tasking.c:3093
-#, c-format
-msgid "SEND requires a BUFFER; `%s' is not a BUFFER name"
-msgstr ""
-
-#: ch/tasking.c:3234
-msgid "non-integral max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3239
-msgid "non-constant max queue size for EVENT/BUFFER mode"
-msgstr ""
-
-#: ch/tasking.c:3246
-msgid "max queue_size for EVENT/BUFFER is not positive"
-msgstr ""
-
-#: ch/timing.c:224
-msgid "absolute time value must be of mode TIME"
-msgstr ""
-
-#: ch/timing.c:281 ch/timing.c:364
-msgid "duration primitive value must be of mode DURATION"
-msgstr ""
-
-#: ch/tree.c:58
-msgid "string length > UPPER (UINT)"
-msgstr ""
-
-#: ch/tree.c:112
-#, fuzzy
-msgid "can only build a powerset from a discrete mode"
-msgstr "array subscript is geen integer"
-
-#: ch/tree.c:124
-#, fuzzy
-msgid "non-constant bitstring size invalid"
-msgstr "niet-constante array-index in beginwaarde"
-
-#: ch/tree.c:126
-#, fuzzy
-msgid "non-constant powerset size invalid"
-msgstr "niet-constante array-index in beginwaarde"
-
-#: ch/typeck.c:83
-msgid "array or string index is a mode (instead of a value)"
-msgstr ""
-
-#: ch/typeck.c:114
-#, fuzzy
-msgid "index is not an integer expression"
-msgstr "ongeldig gebruik van een void-expressie"
-
-#: ch/typeck.c:122
-#, fuzzy
-msgid "index not compatible with index mode"
-msgstr "incompatibele types bij %s"
-
-#. should never happen
-#: ch/typeck.c:132
-#, fuzzy
-msgid "index is not discrete"
-msgstr "-pipe wordt niet ondersteund"
-
-#: ch/typeck.c:196
-msgid "possible internal error - slice argument is neither referable nor constant"
-msgstr ""
-
-#: ch/typeck.c:285
-msgid "bit array slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:325
-msgid "bitstring slice with non-constant length"
-msgstr ""
-
-#: ch/typeck.c:338
-msgid "slice operation on non-array, non-bitstring value not supported"
-msgstr ""
-
-#: ch/typeck.c:390 ch/typeck.c:441
-msgid "can only take slice of array or string"
-msgstr ""
-
-#: ch/typeck.c:455
-#, fuzzy
-msgid "slice length is not an integer"
-msgstr "switch-waarde is geen integer"
-
-#: ch/typeck.c:488
-#, fuzzy
-msgid "slice length out-of-range"
-msgstr "case-waarde buiten bereik"
-
-#: ch/typeck.c:543
-#, fuzzy
-msgid "too many index expressions"
-msgstr "Ongeldig token in expressie"
-
-#: ch/typeck.c:595
-#, fuzzy
-msgid "array index is not discrete"
-msgstr "array-index in beginwaarde van niet-array"
-
-#: ch/typeck.c:675
-#, fuzzy
-msgid "invalid compound index for bitstring mode"
-msgstr "ongeldige beginwaarde voor bit-string"
-
-#: ch/typeck.c:1079
-msgid "conversions from variable_size value"
-msgstr ""
-
-#: ch/typeck.c:1084
-msgid "conversions to variable_size mode"
-msgstr ""
-
-#: ch/typeck.c:1098
-msgid "cannot convert to float"
-msgstr ""
-
-#: ch/typeck.c:1103
-msgid "cannot convert float to this mode"
-msgstr ""
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
-#: ch/typeck.c:1130
-msgid "OVERFLOW in expression conversion"
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
msgstr ""
-#: ch/typeck.c:1159
-msgid "overflow (not inside function)"
+#: config/xtensa/xtensa.h:116
+msgid "Do not use the Xtensa code density option"
msgstr ""
-#: ch/typeck.c:1161
-#, fuzzy
-msgid "possible overflow (not inside function)"
-msgstr "`%s' is hier niet gedeclareerd (niet in een functie)"
-
-#: ch/typeck.c:1166
-msgid "expression will always cause OVERFLOW"
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
msgstr ""
-#: ch/typeck.c:1199
-msgid "not implemented: constant conversion from that kind of expression"
+#: config/xtensa/xtensa.h:120
+msgid "Do not use the Xtensa MAC16 option"
msgstr ""
-#: ch/typeck.c:1205
-msgid "not implemented: constant conversion to that kind of mode"
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
msgstr ""
-#: ch/typeck.c:1216
-msgid "non-standard, non-portable value conversion"
+#: config/xtensa/xtensa.h:124
+msgid "Do not use the Xtensa MUL16 option"
msgstr ""
-#: ch/typeck.c:1222
-msgid "location conversion between differently-sized modes"
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
msgstr ""
-#: ch/typeck.c:1224
-#, fuzzy
-msgid "unsupported value conversion"
-msgstr "niet-ondersteunde versie"
-
-#: ch/typeck.c:1272
-msgid "operand to bin must be a non-negative integer literal"
+#: config/xtensa/xtensa.h:128
+msgid "Do not use the Xtensa MUL32 option"
msgstr ""
-#: ch/typeck.c:1288
-#, c-format
-msgid "size %d of BIN too big - no such integer mode"
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
msgstr ""
-#: ch/typeck.c:1302
-msgid "BIN in pass 2"
+#: config/xtensa/xtensa.h:136
+msgid "Do not use the Xtensa NSA option"
msgstr ""
-#: ch/typeck.c:1335
-msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET"
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
msgstr ""
-#: ch/typeck.c:2108
-msgid "internal error in chill_root_resulting_mode"
+#: config/xtensa/xtensa.h:140
+msgid "Do not use the Xtensa MIN/MAX option"
msgstr ""
-#: ch/typeck.c:2367
-msgid "string lengths not equal"
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
msgstr ""
-#: ch/typeck.c:2382
-msgid "can't do ARRAY assignment - too large"
+#: config/xtensa/xtensa.h:144
+msgid "Do not use the Xtensa SEXT option"
msgstr ""
-#: ch/typeck.c:2400
-msgid "rhs of array assignment is not addressable"
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
msgstr ""
-#: ch/typeck.c:2577
-#, fuzzy
-msgid "non-constant expression for BIN"
-msgstr "overflow in constante expressie"
-
-#: ch/typeck.c:2582
-msgid "expression for BIN must not be negative"
+#: config/xtensa/xtensa.h:148
+msgid "Do not use the Xtensa boolean register option"
msgstr ""
-#: ch/typeck.c:2587
-msgid "cannot process BIN (>32)"
+#: config/xtensa/xtensa.h:150
+msgid "Use the Xtensa floating-point unit"
msgstr ""
-#: ch/typeck.c:2603
-#, fuzzy
-msgid "bounds of range are not compatible"
-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-
-#: ch/typeck.c:2612
-#, fuzzy
-msgid "negative string length"
-msgstr "Onbeëindigde stringconstante"
-
-#: ch/typeck.c:2649
-#, fuzzy
-msgid "range's lower bound and parent mode don't match"
-msgstr "prototype voor `%s' volgt en argument %d komt niet overeen"
-
-#: ch/typeck.c:2654
-msgid "range's upper bound and parent mode don't match"
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
msgstr ""
-#: ch/typeck.c:2663
-msgid "making range from non-mode"
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: ch/typeck.c:2669
-#, fuzzy
-msgid "floating point ranges"
-msgstr "floating-point constante buiten bereik"
-
-#: ch/typeck.c:2677
-msgid "range mode has non-constant limits"
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: ch/typeck.c:2686
-msgid "range's high bound < mode's low bound"
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
msgstr ""
-#: ch/typeck.c:2691
-msgid "range's high bound > mode's high bound"
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
msgstr ""
-#: ch/typeck.c:2696
-msgid "range mode high bound < range mode low bound"
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
msgstr ""
-#: ch/typeck.c:2701
-msgid "range's low bound < mode's low bound"
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
msgstr ""
-#: ch/typeck.c:2706
-msgid "range's low bound > mode's high bound"
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
msgstr ""
-# `l'en of `l's?
-#: ch/typeck.c:2814
-#, fuzzy
-msgid "stepsize in STEP must be an integer constant"
-msgstr "drie `l'en in integerconstante"
-
-# `l'en of `l's?
-#: ch/typeck.c:2818
-#, fuzzy
-msgid "stepsize in STEP must be > 0"
-msgstr "drie `l'en in integerconstante"
-
-# `l'en of `l's?
-#: ch/typeck.c:2824
-#, fuzzy
-msgid "stepsize in STEP must be the natural width of the array element mode"
-msgstr "drie `l'en in integerconstante"
-
-#: ch/typeck.c:2830 ch/typeck.c:3131
-#, fuzzy
-msgid "starting word in POS must be an integer constant"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2834 ch/typeck.c:3138
-#, fuzzy
-msgid "starting word in POS must be >= 0"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2836
-#, fuzzy
-msgid "starting word in POS within STEP must be 0"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2848 ch/typeck.c:3155
-#, fuzzy
-msgid "starting bit in POS must be an integer constant"
-msgstr "breedte van bitveld `%s' is geen integerconstante"
-
-#: ch/typeck.c:2854
-#, fuzzy
-msgid "starting bit in POS within STEP must be 0"
-msgstr "breedte van bitveld `%s' is geen integerconstante"
-
-#: ch/typeck.c:2858 ch/typeck.c:3163
-#, fuzzy
-msgid "starting bit in POS must be >= 0"
-msgstr "breedte van bitveld `%s' is geen integerconstante"
-
-#: ch/typeck.c:2866 ch/typeck.c:3171
-#, fuzzy
-msgid "starting bit in POS must be < the width of a word"
-msgstr "breedte van bitveld `%s' is geen integerconstante"
-
-#: ch/typeck.c:2880 ch/typeck.c:3185
-#, fuzzy
-msgid "length in POS must be an integer constant"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2887 ch/typeck.c:3192
-#, fuzzy
-msgid "length in POS must be > 0"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2894 ch/typeck.c:3205
-#, fuzzy
-msgid "end bit in POS must be an integer constant"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2903 ch/typeck.c:3214
-#, fuzzy
-msgid "end bit in POS must be >= the start bit"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2909 ch/typeck.c:3219
-#, fuzzy
-msgid "end bit in POS must be < the width of a word"
-msgstr "twee `u's in integerconstante"
-
-#: ch/typeck.c:2921
-msgid "the length specified on POS within STEP must be the natural length of the array element type"
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
msgstr ""
-# `l'en of `l's?
-#: ch/typeck.c:2926
-#, fuzzy
-msgid "step size in STEP must be >= the length in POS"
-msgstr "drie `l'en in integerconstante"
-
-#: ch/typeck.c:2952
-#, fuzzy
-msgid "array index must be a range, not a single integer"
-msgstr "array subscript is geen integer"
-
-#: ch/typeck.c:2958
-#, fuzzy
-msgid "array index is not a discrete mode"
-msgstr "array subscript is geen integer"
-
-#: ch/typeck.c:3229
-msgid "the length specified on POS must be the natural length of the field type"
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
msgstr ""
-#: ch/typeck.c:3238
-msgid "STRUCT fields must be layed out in monotonically increasing order"
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: ch/typeck.c:3301
-msgid "if one field has a POS layout, then all fields must have a POS layout"
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
msgstr ""
-#: ch/typeck.c:3444
-#, fuzzy
-msgid "parameterized structures not implemented"
-msgstr "parameter wijst naar een onvolledig type"
-
-#: ch/typeck.c:3449
-#, fuzzy
-msgid "invalid parameterized type"
-msgstr "ongeldige operand voor %p-code"
-
-#: cp/call.c:270 cp/init.c:1637
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr ""
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr ""
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr ""
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr ""
-#: cp/call.c:394
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/call.c:527
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr ""
-#: cp/call.c:534
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr ""
-#: cp/call.c:2343
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr ""
+
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "grootte van `%s' is %u bytes"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2348
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/call.c:2352
+#: cp/call.c:2546
msgid "%s %D(%T) <built-in>"
msgstr ""
-#: cp/call.c:2356
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr ""
-#: cp/call.c:2358
+#: cp/call.c:2552
msgid "%s %+#D%s"
msgstr ""
-#: cp/call.c:2515
-msgid "no viable candidates"
+#: cp/call.c:2726
+msgid "conversion from `%T' to `%T' is ambiguous"
msgstr ""
-#: cp/call.c:2529
-msgid "conversion from `%T' to `%T' is ambiguous"
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "`%s' is smaller dan waarden van zijn type"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
msgstr ""
-#: cp/call.c:2646
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "union heeft geen lid dat `%s' heet"
+
+#: cp/call.c:2933
#, fuzzy
msgid "no matching function for call to `%D(%A)'"
msgstr "Teveel argumenten in oproep van `%s'"
-#: cp/call.c:2657 cp/call.c:4642
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr ""
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2684
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/call.c:2753
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr ""
-#: cp/call.c:2763
+#: cp/call.c:3046
msgid "call of `(%T) (%A)' is ambiguous"
msgstr ""
-#: cp/call.c:2798
-msgid "%s for `%T ? %T : %T' operator"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
msgstr ""
-#: cp/call.c:2803
-msgid "%s for `%T %s' operator"
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
msgstr ""
-#: cp/call.c:2806
-msgid "%s for `%T [%T]' operator"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/call.c:2811
-msgid "%s for `%T %s %T' operator"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
msgstr ""
-#: cp/call.c:2814
-msgid "%s for `%s %T' operator"
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
msgstr ""
-#: cp/call.c:2906
+#: cp/call.c:3191
#, fuzzy
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ANSI C verbiedt het weglaten van de middelste term van een ?: expresie"
-#: cp/call.c:2965
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr ""
-#: cp/call.c:2998 cp/call.c:3198
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr ""
-#: cp/call.c:3151
+#: cp/call.c:3428
#, fuzzy
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr "types in voorwaardelijke expressie komen niet overeen"
-#: cp/call.c:3158
+#: cp/call.c:3435
msgid "enumeral and non-enumeral type in conditional expression"
msgstr ""
-#: cp/call.c:3239
+#: cp/call.c:3516
#, fuzzy
msgid "`%D' must be declared before use"
msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-#: cp/call.c:3402
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr ""
-#: cp/call.c:3449
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr ""
-#: cp/call.c:3451
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr ""
-#: cp/call.c:3478
+#: cp/call.c:3782
#, fuzzy
msgid "comparison between `%#T' and `%#T'"
msgstr "vergelijking tussen signed en unsigned"
-#: cp/call.c:3711
+#: cp/call.c:4021
msgid "no suitable `operator delete' for `%T'"
msgstr ""
-#: cp/call.c:3730
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr ""
-#: cp/call.c:3732
+#: cp/call.c:4042
#, fuzzy
msgid "`%+#D' is protected"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/call.c:3734
+#: cp/call.c:4044
#, fuzzy
msgid "`%+#D' is inaccessible"
msgstr "%s is niet addresseerbaar"
-#: cp/call.c:3735
+#: cp/call.c:4045
msgid "within this context"
msgstr ""
-#: cp/call.c:3777
+#: cp/call.c:4088
#, fuzzy
msgid "invalid conversion from `%T' to `%T'"
msgstr "ongeldige registernaam voor `%s'"
# Is the %s the argument, or is it 'of' the argument?
-#: cp/call.c:3779 cp/call.c:3918 cp/call.c:3920
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
#, fuzzy
msgid " initializing argument %P of `%D'"
msgstr "ongeldig type-argument `%s'"
-#: cp/call.c:3842 cp/call.c:3846
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr ""
-#: cp/call.c:3852 cp/call.c:3855
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:3989
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
msgstr ""
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4014
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr ""
-#: cp/call.c:4156
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr ""
-#: cp/call.c:4404
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "`%s' is geen bestand, pipe of tty"
+
+#: cp/call.c:4786
msgid "could not find class$ field in java interface type `%T'"
msgstr ""
-#: cp/call.c:4505 cp/typeck.c:2071
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr ""
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "kan functie `main' niet inline maken"
-#: cp/call.c:4631
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr ""
-#: cp/call.c:4655
-msgid "abstract virtual `%#D' called from constructor"
-msgstr ""
-
-#: cp/call.c:4656
-msgid "abstract virtual `%#D' called from destructor"
-msgstr ""
-
-#: cp/call.c:4661
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
msgstr ""
-#: cp/call.c:5274
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr ""
-#: cp/call.c:5276 cp/decl2.c:4496
+#: cp/call.c:5706 cp/decl2.c:4154
#, fuzzy
msgid " in call to `%D'"
msgstr "kan oproep van `%s' niet inline maken"
-#: cp/call.c:5325 cp/call.c:5450
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr ""
-#: cp/call.c:5326
+#: cp/call.c:5756
msgid " for conversion from `%T' to `%T'"
msgstr ""
-#: cp/call.c:5328
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/call.c:5452
-msgid " because worst conversion for the former is better than worst conversion for the latter"
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
msgstr ""
# 'regio' klinkt niet echt, maar 'streek' lijkt me nog slechter
-#: cp/call.c:5568 cp/call.c:5589
+#: cp/call.c:5996
#, fuzzy
msgid "could not convert `%E' to `%T'"
msgstr "kon 0x%l.8x niet naar een regio omzetten"
-#: cp/class.c:286
-msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
msgstr ""
-#: cp/class.c:1012
-msgid "`%#D' and `%#D' cannot be overloaded"
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
msgstr ""
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1023
-msgid "`%D' has already been declared in `%T'"
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr ""
+
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
msgstr ""
-#: cp/class.c:1104
+#: cp/class.c:1076
#, fuzzy
msgid "duplicate enum value `%D'"
msgstr "herhaalde case-waarde"
-#: cp/class.c:1107
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr ""
-#: cp/class.c:1114
+#: cp/class.c:1086
#, fuzzy
msgid "duplicate nested type `%D'"
msgstr "herhaald lid `%s'"
-#: cp/class.c:1125
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr ""
-#: cp/class.c:1129
+#: cp/class.c:1101
#, fuzzy
msgid "duplicate member `%D'"
msgstr "herhaald lid `%s'"
-#: cp/class.c:1172
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr ""
-#: cp/class.c:1174
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr ""
-#: cp/class.c:1217
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr ""
-#: cp/class.c:1223
+#: cp/class.c:1199
#, fuzzy
msgid "`%D' invalid in `%T'"
msgstr "Ongeldige optie `%s'"
-#: cp/class.c:1231
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr ""
-#: cp/class.c:1263 cp/class.c:1271
+#: cp/class.c:1239 cp/class.c:1247
#, fuzzy
msgid "`%D' invalid in `%#T'"
msgstr "Ongeldige optie `%s'"
-#: cp/class.c:1264
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr ""
-#: cp/class.c:1272
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr ""
-#: cp/class.c:1344
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr ""
-#: cp/class.c:1364
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr ""
-#: cp/class.c:1950
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr ""
-#: cp/class.c:1964
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr ""
-#: cp/class.c:2007
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr ""
-#: cp/class.c:2128 cp/class.c:5045
+#: cp/class.c:2090 cp/class.c:5276
#, fuzzy
msgid "redefinition of `%#T'"
msgstr "herdefinitie van `%s'"
-#: cp/class.c:2129
+#: cp/class.c:2091
#, fuzzy
msgid "previous definition of `%#T'"
msgstr "eerdere definitie van `%s'"
-#: cp/class.c:2459
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr ""
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2841
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr ""
-#: cp/class.c:2842
+#: cp/class.c:2713
#, fuzzy
msgid " by `%D'"
msgstr "%s voor `%s'"
-#: cp/class.c:2884
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr ""
-#: cp/class.c:2889 cp/decl2.c:1898
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/class.c:2895 cp/decl2.c:1904
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:2898 cp/decl2.c:1906
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr ""
-#: cp/class.c:3050
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr ""
+
+#: cp/class.c:2958
#, fuzzy
msgid "bit-field `%#D' with non-integral type"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: cp/class.c:3070
+#: cp/class.c:2978
#, fuzzy
msgid "bit-field `%D' width not an integer constant"
msgstr "breedte van bitveld `%s' is geen integerconstante"
-#: cp/class.c:3076
+#: cp/class.c:2984
#, fuzzy
msgid "negative width in bit-field `%D'"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: cp/class.c:3081
+#: cp/class.c:2989
#, fuzzy
msgid "zero width for bit-field `%D'"
msgstr "bitveld `%s' heeft breedte 0"
-#: cp/class.c:3087
+#: cp/class.c:2995
#, fuzzy
msgid "width of `%D' exceeds its type"
msgstr "breedte van `%s' overschrijdt zijn type"
-#: cp/class.c:3096
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr ""
-#: cp/class.c:3179
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr ""
-#: cp/class.c:3182
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr ""
-#: cp/class.c:3185
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
msgstr ""
-#: cp/class.c:3212
+#: cp/class.c:3121
#, fuzzy
msgid "multiple fields in union `%T' initialized"
msgstr "overtollige elementen in beginwaarde van union"
-#: cp/class.c:3333
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr ""
-#: cp/class.c:3339
+#: cp/class.c:3240
#, fuzzy
msgid "field `%D' invalidly declared function type"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/class.c:3346
+#: cp/class.c:3247
#, fuzzy
msgid "field `%D' invalidly declared method type"
msgstr "bitveld `%s' heeft een ongeldig type"
-#: cp/class.c:3352
+#: cp/class.c:3253
#, fuzzy
msgid "field `%D' invalidly declared offset type"
msgstr "bitveld `%s' heeft een ongeldig type"
#. Unions cannot have static members.
-#: cp/class.c:3370
+#: cp/class.c:3271
#, fuzzy
msgid "field `%D' declared static in union"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/class.c:3396
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3427
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr ""
-#: cp/class.c:3442
+#: cp/class.c:3349
msgid "field `%#D' with same name as class"
msgstr ""
-#: cp/class.c:3460
+#: cp/class.c:3367
#, fuzzy
msgid "`%#T' has pointer data members"
msgstr "%s heeft geen benoemde leden"
-#: cp/class.c:3464
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr ""
-#: cp/class.c:3466
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3469
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr ""
-#: cp/class.c:3937
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:4025
#, fuzzy
msgid "initializer specified for non-virtual method `%D'"
msgstr "geen beginwaarde voor variant-veld `%s'"
-#: cp/class.c:4721
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/class.c:4791
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/class.c:5208
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr ""
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.c:5432
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/class.c:5292
+#: cp/class.c:5516
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr ""
-#: cp/class.c:5749
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr ""
-#: cp/class.c:5845
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr ""
-#: cp/class.c:5966
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr ""
-#: cp/class.c:5989
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr ""
-#: cp/class.c:6015
+#: cp/class.c:6252
#, fuzzy
msgid "assuming pointer to member `%D'"
msgstr "herhaald lid `%s'"
-#: cp/class.c:6018
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
msgstr ""
-#: cp/class.c:6062 cp/class.c:6230 cp/class.c:6237
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr ""
-#: cp/class.c:6071
+#: cp/class.c:6315
#, fuzzy
msgid "argument of type `%T' does not match `%T'"
msgstr "argument `%s' komt niet overeen met prototype"
-#: cp/class.c:6214
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr ""
@@ -16201,12 +14537,12 @@ msgstr ""
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6465 cp/decl.c:1030 cp/decl.c:3178 cp/pt.c:1839
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
#, fuzzy
msgid "declaration of `%#D'"
msgstr "herdeclaratie van `%s'"
-#: cp/class.c:6466
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr ""
@@ -16222,237 +14558,274 @@ msgstr ""
msgid "converting from `%T' to `%T'"
msgstr ""
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr ""
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr ""
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "ongeldige registernaam voor `%s'"
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr ""
-#: cp/cvt.c:543
+#: cp/cvt.c:522
#, fuzzy
msgid "casting `%T' to `%T' does not dereference pointer"
msgstr "kan niet derefereren, is geen pointer."
-#: cp/cvt.c:572
+#: cp/cvt.c:551
msgid "cannot convert type `%T' to type `%T'"
msgstr ""
-#: cp/cvt.c:689
+#: cp/cvt.c:683
msgid "conversion from `%#T' to `%#T'"
msgstr ""
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr ""
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr ""
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr ""
-#: cp/cvt.c:793
+#: cp/cvt.c:779
#, fuzzy
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "conversie naar niet-scalair type gevraagd"
-#: cp/cvt.c:878
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:881
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr ""
-#: cp/cvt.c:897
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr ""
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:917
+#: cp/cvt.c:904
#, fuzzy, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
#. Only warn when there is no &.
-#: cp/cvt.c:922
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr ""
-#: cp/cvt.c:1060
+#: cp/cvt.c:1039
msgid "converting NULL to non-pointer type"
msgstr ""
-#: cp/cvt.c:1136
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
msgstr ""
-#: cp/cvt.c:1138
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr ""
-#: cp/decl.c:1031 cp/decl.c:3278
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr ""
+
+#: cp/decl.c:1255 cp/decl.c:3490
#, fuzzy
msgid "conflicts with previous declaration `%#D'"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:1220
+#: cp/decl.c:1467
#, fuzzy
msgid "label `%D' used but not defined"
msgstr "label `%s' gebruikt maar niet gedefinieerd"
-#: cp/decl.c:1225
+#: cp/decl.c:1472
#, fuzzy
msgid "label `%D' defined but not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: cp/decl.c:2305
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr ""
-#: cp/decl.c:3088 cp/decl.c:3476
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
#, fuzzy
msgid "previous declaration of `%D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3165 cp/decl.c:3200
+#: cp/decl.c:3366 cp/decl.c:3404
#, fuzzy
msgid "shadowing %s function `%#D'"
msgstr "bibliotheekfunctie `%s' wordt verborgen"
-#: cp/decl.c:3174
+#: cp/decl.c:3375
#, fuzzy
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr "bibliotheekfunctie `%s' als niet-functie gedeclareerd"
-#: cp/decl.c:3179
+#: cp/decl.c:3380
#, fuzzy
msgid "conflicts with built-in declaration `%#D'"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:3195 cp/decl.c:3288 cp/decl.c:3304
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
#, fuzzy
msgid "new declaration `%#D'"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:3196
+#: cp/decl.c:3400
#, fuzzy
msgid "ambiguates built-in declaration `%#D'"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:3252
+#: cp/decl.c:3464
#, fuzzy
msgid "`%#D' redeclared as different kind of symbol"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: cp/decl.c:3255
+#: cp/decl.c:3467
#, fuzzy
msgid "previous declaration of `%#D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3277
+#: cp/decl.c:3489
#, fuzzy
msgid "declaration of template `%#D'"
msgstr "herdeclaratie van `enum %s'"
-#: cp/decl.c:3289 cp/decl.c:3305
+#: cp/decl.c:3505 cp/decl.c:3521
#, fuzzy
msgid "ambiguates old declaration `%#D'"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:3297
+#: cp/decl.c:3513
#, fuzzy
msgid "declaration of C function `%#D' conflicts with"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:3299
+#: cp/decl.c:3515
#, fuzzy
msgid "previous declaration `%#D' here"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3315
+#: cp/decl.c:3533
#, fuzzy
msgid "conflicting types for `%#D'"
msgstr "conflicterende types voor `%s'"
-#: cp/decl.c:3316
+#: cp/decl.c:3534
#, fuzzy
msgid "previous declaration as `%#D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3359
+#: cp/decl.c:3577
#, fuzzy
msgid "`%#D' previously defined here"
msgstr "`%s' tevoren hier gedefinieerd"
-#: cp/decl.c:3360
+#: cp/decl.c:3578
#, fuzzy
msgid "`%#D' previously declared here"
msgstr "`%s' tevoren hier gedeclareerd"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3368
+#: cp/decl.c:3587
#, fuzzy
msgid "prototype for `%#D'"
msgstr "prototype voor `%s' volgt"
-#: cp/decl.c:3369
+#: cp/decl.c:3588
#, fuzzy
msgid "follows non-prototype definition here"
msgstr "niet-prototype definitie hier"
-#: cp/decl.c:3381
+#: cp/decl.c:3600
#, fuzzy
msgid "previous declaration of `%#D' with %L linkage"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:3383
+#: cp/decl.c:3602
#, fuzzy
msgid "conflicts with new declaration with %L linkage"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:3408 cp/decl.c:3416
+#: cp/decl.c:3625 cp/decl.c:3632
#, fuzzy
msgid "default argument given for parameter %d of `%#D'"
msgstr "argumenten aan macro `%s' gegeven"
-#: cp/decl.c:3410 cp/decl.c:3418
+#: cp/decl.c:3627 cp/decl.c:3634
#, fuzzy
msgid "after previous specification in `%#D'"
msgstr "eerdere definitie van `%s'"
-#: cp/decl.c:3427
+#: cp/decl.c:3643
#, fuzzy
msgid "`%#D' was used before it was declared inline"
msgstr "`%s' werd voor haar definitie gebruikt zonder protoype"
-#: cp/decl.c:3429
+#: cp/decl.c:3645
#, fuzzy
msgid "previous non-inline declaration here"
msgstr "eerdere impliciete declaratie van `%s'"
-#: cp/decl.c:3475
+#: cp/decl.c:3699
#, fuzzy
msgid "redundant redeclaration of `%D' in same scope"
msgstr "overbodige herdeclaratie van `%s' in zelfde bereik"
-#: cp/decl.c:3558
-#, fuzzy
+#: cp/decl.c:3780
+#, fuzzy, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/decl.c:3560
-#, fuzzy
+#: cp/decl.c:3782
+#, fuzzy, c-format
msgid "than previous declaration `%F'"
msgstr "geen eerdere declaratie voor `%s'"
@@ -16464,16 +14837,16 @@ msgstr "geen eerdere declaratie voor `%s'"
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3685
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr ""
-#: cp/decl.c:3930
+#: cp/decl.c:4187
#, fuzzy
msgid "`%#D' used prior to declaration"
msgstr "`%s' gebruikt vóór declaratie"
-#: cp/decl.c:3961
+#: cp/decl.c:4218
#, fuzzy
msgid "redeclaration of `wchar_t' as `%T'"
msgstr "herdeclaratie van `%s'"
@@ -16484,309 +14857,329 @@ msgstr "herdeclaratie van `%s'"
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:3989
+#: cp/decl.c:4246
#, fuzzy
msgid "invalid redeclaration of `%D'"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:3990
+#: cp/decl.c:4247
#, fuzzy
msgid "as `%D'"
msgstr "%s voor `%s'"
-#: cp/decl.c:4080
+#: cp/decl.c:4337
#, fuzzy
msgid "previous external decl of `%#D'"
msgstr "eerdere externe declaratie van `%s'"
-#: cp/decl.c:4121
+#: cp/decl.c:4378
#, fuzzy
msgid "`%D' was previously implicitly declared to return `int'"
msgstr "`%s' was tevoren impliciet gedeclareerd om een `int' terug te geven"
-#: cp/decl.c:4181
+#: cp/decl.c:4438
#, fuzzy
msgid "extern declaration of `%#D' doesn't match"
msgstr "externe declaratie van `%s' komt niet overeen met de globale declaratie"
-#: cp/decl.c:4182
+#: cp/decl.c:4439
#, fuzzy
msgid "global declaration `%#D'"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl.c:4213
+#: cp/decl.c:4472
#, fuzzy
msgid "declaration of `%#D' shadows a parameter"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: cp/decl.c:4233
+#: cp/decl.c:4492
#, fuzzy, c-format
msgid "declaration of `%s' shadows a member of `this'"
msgstr "de declaratie van `%s' verbergt een parameter"
-#: cp/decl.c:4598
+#: cp/decl.c:4889
msgid "`%#D' hides constructor for `%#T'"
msgstr ""
-#: cp/decl.c:4613
+#: cp/decl.c:4904
#, fuzzy
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:4625
+#: cp/decl.c:4916
#, fuzzy
msgid "previous non-function declaration `%#D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:4626
+#: cp/decl.c:4917
#, fuzzy
msgid "conflicts with function declaration `%#D'"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:4716
+#: cp/decl.c:5007
#, fuzzy
msgid "implicit declaration of function `%#D'"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/decl.c:4874
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr ""
-#: cp/decl.c:4977 cp/decl.c:5001 cp/decl.c:5094
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
#, fuzzy
msgid "jump to label `%D'"
msgstr "herhaald label `%s'"
-#: cp/decl.c:4979 cp/decl.c:5003
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr ""
-#: cp/decl.c:4987
+#: cp/decl.c:5280
#, fuzzy
msgid " crosses initialization of `%#D'"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:4990 cp/decl.c:5110
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr ""
-#: cp/decl.c:5010 cp/decl.c:5114
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr ""
#. Can't skip init of __exception_info.
-#: cp/decl.c:5012 cp/decl.c:5106 cp/decl.c:5116
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr ""
-#: cp/decl.c:5095
+#: cp/decl.c:5388
#, fuzzy
msgid " from here"
msgstr "van hieruit opgeroepen"
-#: cp/decl.c:5108
+#: cp/decl.c:5401
#, fuzzy
msgid " skips initialization of `%#D'"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:5143
+#: cp/decl.c:5437
#, fuzzy
msgid "label named wchar_t"
msgstr "er is geen label dat `%s' heet"
-#: cp/decl.c:5147
+#: cp/decl.c:5440
#, fuzzy
msgid "duplicate label `%D'"
msgstr "herhaald label `%s'"
-#: cp/decl.c:5232
+#: cp/decl.c:5525
#, fuzzy, c-format
msgid "case label `%E' not within a switch statement"
msgstr "case-label niet in een switch-statement"
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5365 cp/decl.c:5385
+#: cp/decl.c:5704 cp/decl.c:5723
#, fuzzy
msgid "`%#D' redeclared as %C"
msgstr "`%s' tevoren hier gedeclareerd"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5474 cp/typeck.c:2033
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
#, fuzzy
msgid "invalid use of `%D'"
msgstr "ongeldig gebruik van `restrict'"
-#: cp/decl.c:5515
+#: cp/decl.c:5852
#, fuzzy
msgid "`%D::%D' is not a template"
msgstr "`%s' is geen iterator"
-#: cp/decl.c:5527
+#: cp/decl.c:5869
#, fuzzy
msgid "`%D' undeclared in namespace `%D'"
msgstr "ongeldige naam `%s'"
-#: cp/decl.c:5661
+#: cp/decl.c:6002
#, fuzzy
msgid "`%D' used without template parameters"
msgstr "macro `%s' gebruikt zonder argumenten"
-#: cp/decl.c:5672 cp/decl.c:5688 cp/decl.c:5759
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5706 cp/decl.c:5721
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
msgid "no type named `%#T' in `%#T'"
msgstr ""
-#: cp/decl.c:5938
+#: cp/decl.c:6329
msgid "lookup of `%D' finds `%#D'"
msgstr ""
-#: cp/decl.c:5940
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr ""
-#: cp/decl.c:5942
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr ""
-#: cp/decl.c:6115
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr ""
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr ""
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr ""
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr ""
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr ""
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr ""
-#: cp/decl.c:6938
+#: cp/decl.c:7432
msgid "an anonymous union cannot have function members"
msgstr ""
-#: cp/decl.c:6955
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6958
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6961
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-#: cp/decl.c:6999
+#: cp/decl.c:7493
#, fuzzy
msgid "redeclaration of C++ built-in type `%T'"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:7034
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr ""
-#: cp/decl.c:7037
-msgid "declaration does not declare anything"
-msgstr ""
-
-#: cp/decl.c:7061
+#: cp/decl.c:7556
#, fuzzy
msgid "missing type-name in typedef-declaration"
msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
-#: cp/decl.c:7068
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/decl.c:7075
+#: cp/decl.c:7570
#, fuzzy
msgid "`%D' can only be specified for functions"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:7077
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr ""
-#: cp/decl.c:7079
+#: cp/decl.c:7574
msgid "`%D' can only be specified for constructors"
msgstr ""
-#: cp/decl.c:7082
+#: cp/decl.c:7577
#, fuzzy
msgid "`%D' can only be specified for objects and functions"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl.c:7226
+#: cp/decl.c:7719 cp/decl2.c:936
#, fuzzy
-msgid "typedef `%D' is initialized"
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
msgstr "typedef `%s' krijgt beginwaarde"
-#: cp/decl.c:7232
+#: cp/decl.c:7724
#, fuzzy
msgid "function `%#D' is initialized like a variable"
msgstr "typedef `%s' krijgt beginwaarde alsof het een variabele is"
-#: cp/decl.c:7244
+#: cp/decl.c:7736
#, fuzzy
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/decl.c:7274
+#: cp/decl.c:7770
#, fuzzy
msgid "`%#D' is not a static member of `%#T'"
msgstr "`%s' is geen static veld"
-#: cp/decl.c:7279
+#: cp/decl.c:7775
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
msgstr ""
-#: cp/decl.c:7290
+#: cp/decl.c:7786
#, fuzzy
msgid "duplicate initialization of %D"
msgstr "dubbele beginwaarde"
-#: cp/decl.c:7319
+#: cp/decl.c:7815
#, fuzzy
msgid "declaration of `%#D' outside of class is not definition"
msgstr "de zwakke declaratie van `%s' moet aan de definitie voorafgaan"
-#: cp/decl.c:7367
+#: cp/decl.c:7865
#, fuzzy
msgid "variable `%#D' has initializer but incomplete type"
msgstr "variabele `%s' heeft beginwaarde, maar een onvolledig type"
-#: cp/decl.c:7375 cp/decl.c:7726
+#: cp/decl.c:7873 cp/decl.c:8432
#, fuzzy
msgid "elements of array `%#D' have incomplete type"
msgstr "elementen van array `%s' hebben een onvolledig type"
-#: cp/decl.c:7391
+#: cp/decl.c:7889
#, fuzzy
-msgid "aggregate `%#D' has incomplete type and cannot be initialized"
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
msgstr "parameter `%s' heeft een onvolledig type"
-#: cp/decl.c:7430
+#: cp/decl.c:7931
#, fuzzy
msgid "`%D' declared as reference but not initialized"
msgstr "`%s' als ander soort symbool geherdeclareerd"
-#: cp/decl.c:7439
+#: cp/decl.c:7940
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
msgstr ""
-#: cp/decl.c:7472
+#: cp/decl.c:7970
#, fuzzy
msgid "cannot initialize `%T' from `%T'"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/decl.c:7533
+#: cp/decl.c:8004
#, fuzzy
msgid "initializer fails to determine size of `%D'"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/decl.c:7538
+#: cp/decl.c:8009
#, fuzzy
msgid "array size missing in `%D'"
msgstr "array-grootte ontbreekt in `%s'"
-#: cp/decl.c:7550
+#: cp/decl.c:8021
#, fuzzy
msgid "zero-size array `%D'"
msgstr "array `%s' heeft grootte die negatief of 0 is"
@@ -16794,624 +15187,652 @@ msgstr "array `%s' heeft grootte die negatief of 0 is"
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7583
+#: cp/decl.c:8059
#, fuzzy
msgid "storage size of `%D' isn't known"
msgstr "opslaggrootte van `%s' is onbekend"
-#: cp/decl.c:7605
+#: cp/decl.c:8081
#, fuzzy
msgid "storage size of `%D' isn't constant"
msgstr "opslaggrootte van `%s' is niet constant"
-#: cp/decl.c:7656
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/decl.c:7657
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
msgstr ""
-#: cp/decl.c:7685
+#: cp/decl.c:8164
#, fuzzy
msgid "uninitialized const `%D'"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/decl.c:7720
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "geen beginwaarde voor variant-veld `%s'"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.c:8328
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
+
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "union heeft geen lid dat `%s' heet"
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "ongeldige beginwaarde voor veld `%s'"
+
+#: cp/decl.c:8426
#, fuzzy
msgid "variable-sized object `%D' may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: cp/decl.c:7731 cp/typeck2.c:201
+#: cp/decl.c:8437
#, fuzzy
msgid "`%D' has incomplete type"
msgstr "`%s' heeft een onvolledig type"
-#: cp/decl.c:7763
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr ""
-#: cp/decl.c:7793
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
msgstr ""
-#: cp/decl.c:7795
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
msgstr ""
-#: cp/decl.c:8060
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr ""
-#: cp/decl.c:8070
+#: cp/decl.c:8785
msgid "cannot initialize `%D' to namespace `%D'"
msgstr ""
-#: cp/decl.c:8127
+#: cp/decl.c:8836
#, fuzzy
msgid "shadowing previous type declaration of `%#D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/decl.c:8526
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr ""
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr ""
+
+#: cp/decl.c:9298 cp/init.c:562
#, fuzzy
msgid "multiple initializations given for `%D'"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:8626
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr ""
-#: cp/decl.c:8744
+#: cp/decl.c:9508
msgid "destructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8747
+#: cp/decl.c:9511
msgid "constructor for alien class `%T' cannot be a member"
msgstr ""
-#: cp/decl.c:8766
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr ""
-#: cp/decl.c:8768
+#: cp/decl.c:9532
#, fuzzy
msgid "`%D' declared as an `inline' %s"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl.c:8770
+#: cp/decl.c:9534
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr ""
-#: cp/decl.c:8773
+#: cp/decl.c:9537
#, fuzzy
msgid "`%D' declared as a friend"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/decl.c:8779
+#: cp/decl.c:9543
#, fuzzy
msgid "`%D' declared with an exception specification"
msgstr "`%s' gedeclareerd als een functie die een functie teruggeeft"
-#: cp/decl.c:8854
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr ""
-#: cp/decl.c:8856
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr ""
-#: cp/decl.c:8858
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr ""
-#: cp/decl.c:8861
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr ""
-#: cp/decl.c:8889
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr ""
-#: cp/decl.c:8892
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/decl.c:8898
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:8921
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr ""
-#: cp/decl.c:8945
+#: cp/decl.c:9715
msgid "defining explicit specialization `%D' in friend declaration"
msgstr ""
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:8955
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/decl.c:8983
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:8990
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/decl.c:9052
+#: cp/decl.c:9822
#, fuzzy
msgid "definition of implicitly-declared `%D'"
msgstr "functie-definitie als `auto' gedeclareerd"
-#: cp/decl.c:9064 cp/decl2.c:1384
+#: cp/decl.c:9834 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
msgstr ""
-#: cp/decl.c:9183
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr ""
-#: cp/decl.c:9273
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr ""
-#: cp/decl.c:9282
+#: cp/decl.c:10073
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
msgstr ""
-#: cp/decl.c:9285
+#: cp/decl.c:10076
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
msgstr ""
-#: cp/decl.c:9335
+#: cp/decl.c:10126
#, fuzzy
msgid "size of array `%D' has non-integer type"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:9337
+#: cp/decl.c:10128
#, fuzzy
msgid "size of array has non-integer type"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:9357
+#: cp/decl.c:10148
#, fuzzy
msgid "size of array `%D' is negative"
msgstr "grootte van array `%s' is negatief"
-#: cp/decl.c:9359
+#: cp/decl.c:10150
#, fuzzy
msgid "size of array is negative"
msgstr "grootte van array `%s' is negatief"
-#: cp/decl.c:9368
+#: cp/decl.c:10159
#, fuzzy
msgid "ISO C++ forbids zero-size array `%D'"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/decl.c:9370
+#: cp/decl.c:10161
#, fuzzy
msgid "ISO C++ forbids zero-size array"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/decl.c:9377
+#: cp/decl.c:10168
#, fuzzy
msgid "size of array `%D' is not an integral constant-expression"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/decl.c:9380
+#: cp/decl.c:10171
#, fuzzy
msgid "size of array is not an integral constant-expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: cp/decl.c:9398
+#: cp/decl.c:10189
#, fuzzy
msgid "ISO C++ forbids variable-size array `%D'"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: cp/decl.c:9401
+#: cp/decl.c:10192
#, fuzzy
msgid "ISO C++ forbids variable-size array"
msgstr "ANSI C verbiedt array `%s' van variabele lengte"
-#: cp/decl.c:9412
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr ""
-#: cp/decl.c:9471
+#: cp/decl.c:10262
#, fuzzy
msgid "declaration of `%D' as %s"
msgstr "herdeclaratie van `%s'"
-#: cp/decl.c:9473
+#: cp/decl.c:10264
#, fuzzy, c-format
msgid "creating %s"
msgstr "read %s"
-#: cp/decl.c:9485
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9488
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cp/decl.c:9517
+#: cp/decl.c:10308
msgid "return type specification for constructor invalid"
msgstr ""
-#: cp/decl.c:9524
+#: cp/decl.c:10315
msgid "return type specification for destructor invalid"
msgstr ""
-#: cp/decl.c:9530
+#: cp/decl.c:10321
#, fuzzy
msgid "operator `%T' declared to return `%T'"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:9532
+#: cp/decl.c:10323
#, fuzzy
msgid "return type specified for `operator %T'"
msgstr "registernaam niet opgegeven voor `%s'"
-#: cp/decl.c:9702
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr ""
-#: cp/decl.c:9721
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr ""
-#: cp/decl.c:9771
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr ""
+
+#: cp/decl.c:10566
#, fuzzy
msgid "invalid declarator"
msgstr "lege declaratie"
-#: cp/decl.c:9824
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr ""
-#: cp/decl.c:9868
-#, fuzzy
-msgid "`%T::%D' is not a valid declarator"
-msgstr "`%s' is geen iterator"
-
-#: cp/decl.c:9870
-msgid " perhaps you want `typename %T::%D' to make it a type"
-msgstr ""
-
-#: cp/decl.c:9882
+#: cp/decl.c:10674
#, fuzzy
msgid "type `%T' is not derived from type `%T'"
msgstr "iterator `%s' is van een afgeleid type"
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:9928
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr ""
-#: cp/decl.c:9930
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr ""
-#: cp/decl.c:9944
-#, fuzzy
-msgid "`%D' as declarator"
-msgstr "`%.*s' is niet gedefinieerd"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "ongeldig gebruik van een void-expressie"
-#: cp/decl.c:9959
+#: cp/decl.c:10770
#, fuzzy
msgid "declaration of `%D' as non-function"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/decl.c:10036
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr ""
-#: cp/decl.c:10038
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr ""
-#: cp/decl.c:10054 cp/decl.c:10088
+#: cp/decl.c:10865 cp/decl.c:10910
#, fuzzy
msgid "multiple declarations `%T' and `%T'"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/decl.c:10067
+#: cp/decl.c:10878
#, fuzzy
msgid "ISO C++ does not support `long long'"
msgstr "ANSI C ondersteunt `long long' niet"
-#: cp/decl.c:10159 cp/decl.c:10162
+#: cp/decl.c:10983 cp/decl.c:10986
#, fuzzy, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
msgstr "ANSI C verbiedt lid-declaraties zonder leden"
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10172
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr ""
-#: cp/decl.c:10208
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr ""
-#: cp/decl.c:10213
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr ""
-#: cp/decl.c:10224
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr ""
-#: cp/decl.c:10329
+#: cp/decl.c:11157
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr ""
-#: cp/decl.c:10357
+#: cp/decl.c:11179
msgid "member `%D' cannot be declared both virtual and static"
msgstr ""
-#: cp/decl.c:10371
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "`%s' is geen iterator"
+
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr ""
-#: cp/decl.c:10375
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr ""
-#: cp/decl.c:10388
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr ""
-#: cp/decl.c:10442
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr ""
-#: cp/decl.c:10480
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cp/decl.c:10584
-#, fuzzy
-msgid "size of member `%D' is not constant"
-msgstr "opslaggrootte van `%s' is niet constant"
-
-#: cp/decl.c:10663
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10666
+#: cp/decl.c:11498
#, fuzzy, c-format
msgid "destructors may not be `%s'"
msgstr "structure heeft geen lid dat `%s' heet"
-#: cp/decl.c:10687
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr ""
-#: cp/decl.c:10690
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr ""
-#: cp/decl.c:10695
+#: cp/decl.c:11527
#, fuzzy, c-format
msgid "constructors may not be `%s'"
msgstr "structure heeft geen lid dat `%s' heet"
-#: cp/decl.c:10705
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr ""
-#: cp/decl.c:10724
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
msgstr ""
#. Cannot be both friend and virtual.
-#: cp/decl.c:10728
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr ""
-#: cp/decl.c:10733
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr ""
-#: cp/decl.c:10735
+#: cp/decl.c:11567
#, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr ""
-#: cp/decl.c:10759
+#: cp/decl.c:11591
msgid "destructors may not have parameters"
msgstr ""
-#: cp/decl.c:10789
-#, c-format
-msgid "cannot declare %s to references"
-msgstr ""
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "kan niet derefereren, is geen pointer."
-#: cp/decl.c:10800
-msgid "cannot declare pointer to `%#T' member"
-msgstr ""
+#: cp/decl.c:11623
+#, fuzzy
+msgid "cannot declare pointer to `%#T'"
+msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/decl.c:10815
-msgid "invalid type: `void &'"
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
msgstr ""
-#: cp/decl.c:10866
-msgid "discarding `const' applied to a reference"
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
msgstr ""
-#: cp/decl.c:10868
-msgid "discarding `volatile' applied to a reference"
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
msgstr ""
-#: cp/decl.c:10979
-msgid "extra qualification `%T::' on member `%s' ignored"
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
msgstr ""
-#: cp/decl.c:10989
-msgid "cannot declare member function `%T::%s' within `%T'"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
msgstr ""
-#: cp/decl.c:11004
-msgid "cannot declare member `%T::%s' within `%T'"
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
msgstr ""
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11084
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr ""
-#: cp/decl.c:11092
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11097
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11103
+#: cp/decl.c:11937
#, fuzzy, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl.c:11108
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11113
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr ""
-#: cp/decl.c:11126
+#: cp/decl.c:11960
#, fuzzy
msgid "template-id `%D' used as a declarator"
msgstr "parameter `%s' heeft enkel een voorwaartse declaratie"
-#: cp/decl.c:11147
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11194
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr ""
-#: cp/decl.c:11202
+#: cp/decl.c:12038
msgid "invalid type qualifier for non-member function type"
msgstr ""
-#: cp/decl.c:11218
-msgid "typedef declaration includes an initializer"
-msgstr ""
-
-#: cp/decl.c:11271
+#: cp/decl.c:12101
#, fuzzy
msgid "type qualifiers specified for friend class declaration"
msgstr "twee types opgegeven in één lege declaratie"
-#: cp/decl.c:11276
+#: cp/decl.c:12106
#, fuzzy
msgid "`inline' specified for friend class declaration"
msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
-#: cp/decl.c:11286
+#: cp/decl.c:12114
#, fuzzy
msgid "template parameters cannot be friends"
msgstr "niet-beëindigde parameterlijst in `#define'"
-#: cp/decl.c:11288
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr ""
-#: cp/decl.c:11293
+#: cp/decl.c:12120
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr ""
-#: cp/decl.c:11309
+#: cp/decl.c:12134
msgid "trying to make class `%T' a friend of global scope"
msgstr ""
-#: cp/decl.c:11320
+#: cp/decl.c:12145
#, fuzzy
msgid "invalid qualifiers on non-member function type"
msgstr "%s laat qualifiers van doeltype van pointer vallen"
-#: cp/decl.c:11339
+#: cp/decl.c:12164
#, fuzzy
msgid "abstract declarator `%T' used as declaration"
msgstr "de declaratie van `%s' verbergt een globale declaratie"
-#: cp/decl.c:11351
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr ""
-#: cp/decl.c:11360
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr ""
-#: cp/decl.c:11370
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr ""
#. Something like struct S { int N::j; };
-#: cp/decl.c:11416
+#: cp/decl.c:12234
#, fuzzy
msgid "invalid use of `::'"
msgstr "ongeldig gebruik van `restrict'"
-#: cp/decl.c:11428
+#: cp/decl.c:12246
#, fuzzy
msgid "function `%D' cannot be declared friend"
msgstr "`%s' mag niet als alleen-lezen gedeclareerd worden"
-#: cp/decl.c:11440
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr ""
-#: cp/decl.c:11449
+#: cp/decl.c:12267
#, fuzzy
msgid "function `%D' declared virtual inside a union"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/decl.c:11461
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr ""
-#: cp/decl.c:11534
+#: cp/decl.c:12355
#, fuzzy
msgid "field `%D' has incomplete type"
msgstr "veld `%s' heeft een onvolledig type"
-#: cp/decl.c:11536
+#: cp/decl.c:12357
#, fuzzy
msgid "name `%T' has incomplete type"
msgstr "parameter `%s' heeft een onvolledig type"
-#: cp/decl.c:11545
+#: cp/decl.c:12366
msgid " in instantiation of template `%T'"
msgstr ""
-#: cp/decl.c:11555
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cp/decl.c:11572
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
msgstr ""
@@ -17427,99 +15848,104 @@ msgstr ""
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11614
+#: cp/decl.c:12434
#, fuzzy
msgid "ISO C++ forbids initialization of member `%D'"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/decl.c:11616
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr ""
-#: cp/decl.c:11640
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr ""
-#: cp/decl.c:11681
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11683
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr ""
-#: cp/decl.c:11694
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "ongeldige opslagklasse voor functie `%s'"
+
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11696
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cp/decl.c:11703
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr ""
-#: cp/decl.c:11732
+#: cp/decl.c:12554
msgid "cannot declare member function `%D' to have static linkage"
msgstr ""
#. FIXME need arm citation
-#: cp/decl.c:11738
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr ""
-#: cp/decl.c:11766
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr ""
-#: cp/decl.c:11772
+#: cp/decl.c:12594
#, fuzzy
msgid "static member `%D' declared `register'"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/decl.c:11777
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr ""
-#: cp/decl.c:11949
+#: cp/decl.c:12774
#, fuzzy
msgid "default argument for `%#D' has type `%T'"
msgstr "eerste argument van `%s' zou een `int' moeten zijn"
-#: cp/decl.c:11952
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr ""
-#: cp/decl.c:11969
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
msgstr ""
-#: cp/decl.c:12013
+#: cp/decl.c:12839
#, fuzzy, c-format
msgid "invalid string constant `%E'"
msgstr "slechte stringconstante"
-#: cp/decl.c:12015
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr ""
-#: cp/decl.c:12049
+#: cp/decl.c:12879
#, fuzzy
msgid "parameter `%D' invalidly declared method type"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:12055
+#: cp/decl.c:12885
#, fuzzy
msgid "parameter `%D' invalidly declared offset type"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:12079
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr ""
@@ -17538,519 +15964,511 @@ msgstr ""
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12246
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr ""
-#: cp/decl.c:12397
+#: cp/decl.c:13222
#, fuzzy
msgid "`%D' must be a nonstatic member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/decl.c:12403
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr ""
-#: cp/decl.c:12420
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr ""
-#: cp/decl.c:12452
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
#. 13.4.0.3
-#: cp/decl.c:12459
+#: cp/decl.c:13284
msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cp/decl.c:12509
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr ""
-#: cp/decl.c:12513
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr ""
-#: cp/decl.c:12520
+#: cp/decl.c:13345
#, fuzzy
msgid "`%D' must take either zero or one argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:12522
+#: cp/decl.c:13347
#, fuzzy
msgid "`%D' must take either one or two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:12543
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12549
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr ""
-#: cp/decl.c:12558
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr ""
-#: cp/decl.c:12560 cp/decl.c:12568
+#: cp/decl.c:13385 cp/decl.c:13393
#, fuzzy
msgid "`%D' must take exactly one argument"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:12570
+#: cp/decl.c:13395
#, fuzzy
msgid "`%D' must take exactly two arguments"
msgstr "`%s' neemt ofwel geen, ofwel twee argumenten"
-#: cp/decl.c:12578
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr ""
-#: cp/decl.c:12590
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr ""
-#: cp/decl.c:12602 cp/decl.c:12605
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
msgstr ""
-#: cp/decl.c:12698
-#, fuzzy
-msgid "`%s %T' declares a new type at namespace scope"
-msgstr "`%s %s' binnen parameterlijst gedeclareerd"
-
-#: cp/decl.c:12701
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
-msgstr ""
-
-#: cp/decl.c:12737
+#: cp/decl.c:13475
msgid "using typedef-name `%D' after `%s'"
msgstr ""
-#: cp/decl.c:12740
+#: cp/decl.c:13481
#, fuzzy
msgid "using template type parameter `%T' after `%s'"
msgstr "incompatibel type voor argument %d van `%s'"
-#: cp/decl.c:12822
+#: cp/decl.c:13542
+#, fuzzy
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "`%s %s' binnen parameterlijst gedeclareerd"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr ""
+
+#: cp/decl.c:13663
#, fuzzy
msgid "use of enum `%#D' without previous declaration"
msgstr "sectie van `%s' geeft een conflict met een eerdere declaratie"
-#: cp/decl.c:12932
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr ""
-#: cp/decl.c:12976
+#: cp/decl.c:13795
#, fuzzy
msgid "base type `%T' fails to be a struct or class type"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: cp/decl.c:12988
+#: cp/decl.c:13805
#, fuzzy
msgid "base class `%T' has incomplete type"
msgstr "veld `%s' heeft een onvolledig type"
-#: cp/decl.c:12996
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr ""
-#: cp/decl.c:12998
+#: cp/decl.c:13815
#, fuzzy
msgid "duplicate base type `%T' invalid"
msgstr "herhaalde case-waarde"
-#: cp/decl.c:13109
+#: cp/decl.c:13926
#, fuzzy
msgid "multiple definition of `%#T'"
msgstr "herdefinitie van `%s'"
-#: cp/decl.c:13110
+#: cp/decl.c:13927
#, fuzzy
msgid "previous definition here"
msgstr "eerdere definitie van `%s'"
-#: cp/decl.c:13285
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr ""
+
+#: cp/decl.c:14106
#, fuzzy
msgid "enumerator value for `%D' not integer constant"
msgstr "enumeratiewaarde voor `%s' is geen integrale constante"
-#: cp/decl.c:13305
+#: cp/decl.c:14126
#, fuzzy
msgid "overflow in enumeration values at `%D'"
msgstr "overflow in enumeratiewaarden"
-#: cp/decl.c:13394
+#: cp/decl.c:14195
#, fuzzy
msgid "return type `%#T' is incomplete"
msgstr "type van teruggeefwaarde is onvolledig"
-#: cp/decl.c:13503
+#: cp/decl.c:14309
#, fuzzy
msgid "semicolon missing after declaration of `%#T'"
msgstr "conflicterende declaraties van `%s'"
-#: cp/decl.c:13524
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr ""
-#: cp/decl.c:13555
+#: cp/decl.c:14361
#, fuzzy
msgid "`%D' implicitly declared before its definition"
msgstr "`%s' impliciet als functie gedeclareerd"
-#: cp/decl.c:13577 cp/typeck.c:6653
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr ""
-#: cp/decl.c:13858
+#: cp/decl.c:14643
#, fuzzy
msgid "parameter `%D' declared void"
msgstr "parameter `%s' als void gedeclareerd"
-#: cp/decl.c:14302
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
msgstr ""
-#: cp/decl.c:14453
-#, fuzzy
-msgid "parser lost in parsing declaration of `%D'"
-msgstr "type krijgt standaardwaarde `int' in de declaratie van `%s'"
-
-#: cp/decl.c:14538
+#: cp/decl.c:15348
#, fuzzy
msgid "static member function `%#D' declared with type qualifiers"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
-#: cp/decl2.c:529
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr ""
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr ""
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr ""
-
-#: cp/decl2.c:624
-#, fuzzy
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-pipe wordt niet ondersteund"
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, fuzzy, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr ""
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr ""
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1030
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr ""
-#: cp/decl2.c:1061 cp/decl2.c:1075
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr ""
-#: cp/decl2.c:1069
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr ""
-#: cp/decl2.c:1117
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
msgstr ""
-#: cp/decl2.c:1125
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr ""
-#: cp/decl2.c:1135
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
msgstr ""
-#: cp/decl2.c:1142
+#: cp/decl2.c:540
#, fuzzy
msgid "deleting `%T' is undefined"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/decl2.c:1150
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr ""
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1197
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr ""
-#: cp/decl2.c:1206
+#: cp/decl2.c:591
#, fuzzy
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/decl2.c:1216 cp/pt.c:2559
+#: cp/decl2.c:601 cp/pt.c:2745
#, fuzzy
msgid "template declaration of `%#D'"
msgstr "herdeclaratie van `%s'"
-#: cp/decl2.c:1266
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr ""
-#: cp/decl2.c:1275
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr ""
-#: cp/decl2.c:1371
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr ""
-#: cp/decl2.c:1373
-msgid "candidate%s: %+#D"
-msgstr ""
-
-#: cp/decl2.c:1376
+#: cp/decl2.c:828
#, fuzzy
-msgid " %#D"
-msgstr ""
-",\n"
-" door "
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr "`%s' is geen static veld"
-#: cp/decl2.c:1432
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cp/decl2.c:1435
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr ""
-#: cp/decl2.c:1494
+#: cp/decl2.c:898
#, fuzzy
msgid "invalid data member initialization"
msgstr "ongeldige beginwaarde"
-#: cp/decl2.c:1497
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr ""
-#: cp/decl2.c:1537
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr ""
-#: cp/decl2.c:1557
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr ""
-#: cp/decl2.c:1608
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr ""
-#: cp/decl2.c:1631
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr ""
-#: cp/decl2.c:1683
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr ""
-#: cp/decl2.c:1693
+#: cp/decl2.c:1100
#, fuzzy
msgid "cannot declare bit-field `%D' with function type"
msgstr "cast geeft functie-type op"
-#: cp/decl2.c:1700
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr ""
-#: cp/decl2.c:1709
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr ""
-#: cp/decl2.c:1778
+#: cp/decl2.c:1201
#, fuzzy
msgid "initializer specified for non-member function `%D'"
msgstr "argument-formaat opgegeven voor niet-functie `%s'"
-#: cp/decl2.c:1782
+#: cp/decl2.c:1205
#, fuzzy
msgid "invalid initializer for virtual method `%D'"
msgstr "ongeldige beginwaarde voor bit-string"
-#: cp/decl2.c:1886
+#: cp/decl2.c:1319
#, fuzzy
msgid "anonymous struct not inside named type"
msgstr "anonieme %s gedeclareerd binnen parameterlijst"
-#: cp/decl2.c:1982
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cp/decl2.c:1992
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr ""
-#: cp/decl2.c:2059
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2067
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr ""
-#: cp/decl2.c:2094
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr ""
-#: cp/decl2.c:2102
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr ""
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2839
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
msgstr ""
-#: cp/decl2.c:3650
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "label `%s' gebruikt maar niet gedefinieerd"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
msgstr ""
-#: cp/decl2.c:4208
+#: cp/decl2.c:3860
#, fuzzy
msgid "use of `%D' is ambiguous"
msgstr "grootte van `%s' is %u bytes"
-#: cp/decl2.c:4209
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4212
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr ""
-#: cp/decl2.c:4227
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr ""
-#: cp/decl2.c:4228
+#: cp/decl2.c:3880
msgid " first type here"
msgstr ""
-#: cp/decl2.c:4229
+#: cp/decl2.c:3881
msgid " other type here"
msgstr ""
-#: cp/decl2.c:4326
+#: cp/decl2.c:3982
#, fuzzy
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr "`%s' wordt gedeclareerd als een array van functies"
-#: cp/decl2.c:4360
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr ""
-#: cp/decl2.c:4494
+#: cp/decl2.c:4152
#, fuzzy
msgid "`%D' is not a function,"
msgstr "`%s' is meestal een functie"
-#: cp/decl2.c:4495
+#: cp/decl2.c:4153
#, fuzzy
msgid " conflict with `%D'"
msgstr "conflicterende types voor `%s'"
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4809
+#: cp/decl2.c:4473
#, fuzzy
msgid "unknown namespace `%D'"
msgstr "onbekende machine-modus `%s'"
-#: cp/decl2.c:4843 cp/decl2.c:5104
+#: cp/decl2.c:4507 cp/decl2.c:4794
#, fuzzy
msgid "`%T' is not a namespace"
msgstr "`%s' is geen iterator"
-#: cp/decl2.c:4845
+#: cp/decl2.c:4509
#, fuzzy
msgid "`%D' is not a namespace"
msgstr "`%s' is geen iterator"
-#: cp/decl2.c:4854
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr ""
-#: cp/decl2.c:4868
+#: cp/decl2.c:4532
#, fuzzy
msgid "namespace `%D' not allowed in using-declaration"
msgstr "`%s' staat niet aan het begin van een declaratie"
-#: cp/decl2.c:4897
+#: cp/decl2.c:4561
#, fuzzy
msgid "`%D' not declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/decl2.c:4939
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
msgstr ""
-#: cp/decl2.c:4966
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr ""
-#: cp/decl2.c:5057
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr ""
-#: cp/decl2.c:5063
+#: cp/decl2.c:4746
msgid "using-declaration for destructor"
msgstr ""
-#: cp/decl2.c:5069
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr ""
-#: cp/decl2.c:5098
+#: cp/decl2.c:4788
#, fuzzy
msgid "namespace `%T' undeclared"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/decl2.c:5127
+#: cp/decl2.c:4817
#, fuzzy
msgid "default argument missing for parameter %P of `%+#D'"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: cp/decl2.c:5217
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr ""
-#: cp/decl2.c:5221
+#: cp/decl2.c:4945
msgid "`%T' does not have a class or union named `%D'"
msgstr ""
-#: cp/decl2.c:5234
+#: cp/decl2.c:4963
#, fuzzy
msgid "`%T' is not a class or union type"
msgstr "`%s' is smaller dan waarden van zijn type"
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "meerdere parameters hebben de naam `%s'"
+
+#: cp/decl2.c:4995
+#, fuzzy
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "`%s' wordt gedeclareerd als een array van functies"
+
#: cp/error.c:35
#, fuzzy, c-format
msgid "`%s' not supported by %s"
@@ -18061,230 +16479,223 @@ msgstr "-pipe wordt niet ondersteund"
msgid "<anonymous %s>"
msgstr ""
-#: cp/error.c:808
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr ""
-#: cp/error.c:2432
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr ""
+
+#: cp/error.c:2473
#, fuzzy, c-format
msgid "In %s `%s':"
msgstr "%s voor `%s'"
-#: cp/error.c:2487
+#: cp/error.c:2530
#, fuzzy, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "(dicht bij initialisatie van `%s')"
-#: cp/error.c:2511
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr ""
-#: cp/error.c:2516
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr ""
#. damn ICE suppression
-#: cp/error.c:2669
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr ""
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr ""
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr ""
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr ""
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
msgstr ""
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr ""
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr ""
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr ""
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr ""
-#: cp/friend.c:155
+#: cp/friend.c:159
#, fuzzy
msgid "`%D' is already a friend of class `%T'"
msgstr "kan klasse '%s' niet vinden"
-#: cp/friend.c:157
+#: cp/friend.c:161
#, fuzzy
msgid "previous friend declaration of `%D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/friend.c:197
+#: cp/friend.c:206
#, fuzzy
msgid "invalid type `%T' declared `friend'"
msgstr "variabele `%s' als inline gedeclareerd"
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
#, fuzzy
msgid "partial specialization `%T' declared `friend'"
msgstr "variabele `%s' als inline gedeclareerd"
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr ""
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
#, fuzzy
msgid "typename type `%#T' declared `friend'"
msgstr "parameter `%s' als void gedeclareerd"
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
#, fuzzy
msgid "template parameter type `%T' declared `friend'"
msgstr "parameter `%s' als void gedeclareerd"
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
#, fuzzy
msgid "`%#T' is not a template"
msgstr "`%s' is geen iterator"
-#: cp/friend.c:268
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr ""
-#: cp/friend.c:364
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr ""
-#: cp/friend.c:419
+#: cp/friend.c:431
#, fuzzy
msgid "friend declaration `%#D' declares a non-template function"
msgstr "ingebouwde functie `%s' als niet-functie gedeclareerd"
-#: cp/friend.c:422
+#: cp/friend.c:434
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr ""
-#: cp/g++spec.c:198 java/jvspec.c:381
+#: cp/g++spec.c:211 java/jvspec.c:423
#, fuzzy, c-format
msgid "argument to `%s' missing\n"
msgstr "argument van `%s' moet van een integraal type zijn."
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
msgstr ""
-#: cp/init.c:290
+#: cp/init.c:389
#, fuzzy
msgid "uninitialized reference member `%D'"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
msgstr ""
-#: cp/init.c:410
+#: cp/init.c:538
#, fuzzy
-msgid "member initializers for `%#D'"
-msgstr "ongeldige beginwaarde voor veld `%s'"
-
-#: cp/init.c:412
-msgid " and `%#D'"
-msgstr ""
-
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr ""
+msgid "`%D' will be initialized after"
+msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/init.c:428
+#: cp/init.c:541
#, fuzzy
-msgid "multiple initializations given for member `%D'"
-msgstr "ongeldige beginwaarde voor member `%s'"
+msgid "base `%T' will be initialized after"
+msgstr "veld `%s' heeft al een beginwaarde gekregen"
-#: cp/init.c:500
+#: cp/init.c:544
#, fuzzy
-msgid "initializations for multiple members of `%T'"
-msgstr "beginwaarde legt grootte van `%s' niet vast"
+msgid " `%#D'"
+msgstr "%s voor `%s'"
-#: cp/init.c:617
+#: cp/init.c:546
#, fuzzy
-msgid "base initializers for `%#T'"
-msgstr "ongeldige beginwaarde voor veld `%s'"
-
-#: cp/init.c:618
-msgid " and `%#T'"
-msgstr ""
+msgid " base `%T'"
+msgstr "%s voor `%s'"
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr ""
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "(dicht bij initialisatie van `%s')"
#: cp/init.c:631
#, fuzzy
-msgid "base class `%T' already initialized"
-msgstr "veld `%s' heeft al een beginwaarde gekregen"
+msgid "initializations for multiple members of `%T'"
+msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/init.c:702
+#: cp/init.c:688
msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr ""
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
-msgstr ""
-
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr ""
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr ""
-#: cp/init.c:1032
+#: cp/init.c:965
msgid "unnamed initializer for `%T', which has no base classes"
msgstr ""
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr ""
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr ""
-#: cp/init.c:1071
+#: cp/init.c:1010
msgid "type `%D' is not a direct base of `%T'"
msgstr ""
@@ -18300,29 +16711,29 @@ msgstr ""
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
msgstr ""
-#: cp/init.c:1357
+#: cp/init.c:1311
#, fuzzy
msgid "`%T' is not an aggregate type"
msgstr "`%s' is geen iterator"
-#: cp/init.c:1380
+#: cp/init.c:1334
#, fuzzy
msgid "`%T' fails to be an aggregate typedef"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: cp/init.c:1389
+#: cp/init.c:1343
msgid "type `%T' is of non-aggregate type"
msgstr ""
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr ""
-#: cp/init.c:1533
+#: cp/init.c:1490
#, fuzzy
msgid "invalid use of non-static field `%D'"
msgstr "ongeldig gebruik van onvolledige typedef `%s'"
@@ -18330,563 +16741,541 @@ msgstr "ongeldig gebruik van onvolledige typedef `%s'"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1542 cp/method.c:194
+#: cp/init.c:1499 cp/method.c:160
#, fuzzy
msgid "invalid use of member `%D'"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/init.c:1552
+#: cp/init.c:1509
msgid "no method `%T::%D'"
msgstr ""
-#: cp/init.c:1645
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr ""
-#: cp/init.c:1714
+#: cp/init.c:1676
#, fuzzy
msgid "`%D' is not a member of type `%T'"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/init.c:1733
+#: cp/init.c:1695
#, fuzzy
-msgid "illegal pointer to bit-field `%D'"
+msgid "invalid pointer to bit-field `%D'"
msgstr "bitveld `%s' heeft een negatieve breedte"
-#: cp/init.c:1772
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
msgstr ""
-#: cp/init.c:1812
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr ""
-#: cp/init.c:1814 cp/typeck.c:3168 cp/typeck.c:3276
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr ""
-#: cp/init.c:1872 cp/typeck.c:2963
+#: cp/init.c:1813
#, fuzzy, c-format
msgid "object missing in `%E'"
msgstr "array-grootte ontbreekt in `%s'"
-#: cp/init.c:2004
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr ""
-#: cp/init.c:2015
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr ""
-#: cp/init.c:2021
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr ""
-#: cp/init.c:2086
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr ""
-#: cp/init.c:2092
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr ""
-#: cp/init.c:2139
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr ""
-#: cp/init.c:2155
+#: cp/init.c:2095
#, fuzzy
msgid "can't find class$"
msgstr "kan %s niet vinden"
-#: cp/init.c:2268
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr ""
-#: cp/init.c:2320
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr ""
-#: cp/init.c:2429
+#: cp/init.c:2369
#, fuzzy
msgid "ISO C++ forbids initialization in array new"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: cp/init.c:2447 cp/typeck2.c:383 cp/typeck2.c:1227
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
msgstr ""
-#: cp/init.c:2453
+#: cp/init.c:2397
#, fuzzy
msgid "ISO C++ forbids aggregate initializer to new"
msgstr "ANSI C verbiedt lege initialisatie-accolades"
-#: cp/init.c:2528
+#: cp/init.c:2485
#, fuzzy
msgid "uninitialized const in `new' of `%#T'"
msgstr "beginwaarde legt grootte van `%s' niet vast"
-#: cp/init.c:2892
+#: cp/init.c:2864
msgid "initializer ends prematurely"
msgstr ""
-#: cp/init.c:2962
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: cp/init.c:3137
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr ""
-#: cp/init.c:3402
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
msgstr ""
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr ""
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr ""
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
msgstr ""
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr ""
-#: cp/lex.c:1000
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr ""
-#: cp/lex.c:1003
+#: cp/lex.c:897
#, fuzzy
msgid "semicolon missing after declaration of `%T'"
msgstr "conflicterende declaraties van `%s'"
# Moet 'signature-string' vertaald worden?
-#: cp/lex.c:1051
+#: cp/lex.c:945
#, fuzzy, c-format
msgid "junk at end of #pragma %s"
msgstr "Brol aan einde van signature-string."
-#: cp/lex.c:1058
+#: cp/lex.c:952
#, fuzzy, c-format
msgid "invalid #pragma %s"
msgstr "ongeldige operand van %s"
-#: cp/lex.c:1067
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr ""
-#: cp/lex.c:1144
+#: cp/lex.c:1038
#, fuzzy, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "`#pragma implementation' voor \"%s\" staat na diens #include"
-#: cp/lex.c:1169
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr ""
-#: cp/lex.c:1254
+#: cp/lex.c:1107
#, fuzzy
msgid "`%D' not defined"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/lex.c:1259
+#: cp/lex.c:1110
#, fuzzy
msgid "`%D' was not declared in this scope"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/lex.c:1269
+#: cp/lex.c:1118
#, fuzzy
msgid "`%D' undeclared (first use this function)"
msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
-#: cp/lex.c:1273
+#: cp/lex.c:1122
#, fuzzy
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr "(Elke niet-gedeclareerde naam wordt slechts één"
-#: cp/lex.c:1296
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr ""
-
-#: cp/lex.c:1298
-msgid " matches this `%D' under ISO standard rules"
-msgstr ""
-
-#: cp/lex.c:1300
-msgid " matches this `%D' under old rules"
-msgstr ""
-
-#: cp/lex.c:1310 cp/lex.c:1317
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr ""
-
-#: cp/lex.c:1312
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr ""
-
-#: cp/lex.c:1319
-msgid " using obsolete binding at `%D'"
-msgstr ""
-
-#: cp/lex.c:1384
+#: cp/lex.c:1242
#, fuzzy
msgid "`::%D' undeclared (first use here)"
msgstr "`%s' is hier niet gedeclareerd (eerste gebruik in deze functie)"
-#: cp/mangle.c:1892
-msgid "real-valued template parameters when cross-compiling"
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr ""
-#: cp/method.c:166
-msgid "methods cannot be converted to function pointers"
-msgstr ""
-
-#: cp/method.c:171
-#, c-format
-msgid "ambiguous request for method pointer `%s'"
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
msgstr ""
-#: cp/method.c:188
+#: cp/method.c:154
#, fuzzy
msgid "invalid use of member `%D' in static member function"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/method.c:236
+#: cp/method.c:216
#, fuzzy
msgid "use of namespace `%D' as expression"
msgstr "modi in %s expressie komen niet overeen"
-#: cp/method.c:241
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr ""
-#: cp/method.c:254
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr ""
-#: cp/method.c:257
+#: cp/method.c:237
#, fuzzy
msgid " `%#D' declared here"
msgstr "`%s' tevoren hier gedeclareerd"
-#: cp/method.c:275
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr ""
-#: cp/method.c:328
-msgid "implementation-reserved name `%D' used"
-msgstr ""
-
-#: cp/method.c:453
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr ""
-#: cp/method.c:683
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
msgstr ""
-#: cp/method.c:688
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
msgstr ""
-#: parse.y:498
+#: parse.y:262
+#, fuzzy
+msgid "`%s' tag used in naming `%#T'"
+msgstr "Ongeldige optie `%s'"
+
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr ""
-#: parse.y:602
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr ""
-#: parse.y:674
-msgid "invalid default template argument"
-msgstr ""
-
-#: parse.y:905
-msgid "only constructors take base initializers"
-msgstr ""
-
-#: parse.y:907
+#: parse.y:943
msgid "no base or member initializers given following ':'"
msgstr ""
-#: parse.y:949 parse.y:955
+#: parse.y:984
msgid "anachronistic old style base class initializer"
msgstr ""
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1077
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr ""
-#: parse.y:1115
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr ""
-#: parse.y:1144 parse.y:1153
+#: parse.y:1193 parse.y:1202
#, fuzzy, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr "ANSI C verbiedt een leeg bronbestand"
-#: parse.y:1176
+#: parse.y:1225
#, fuzzy
msgid "definition of class `%T' in condition"
msgstr "herdefinitie van `union %s'"
-#: parse.y:1178
+#: parse.y:1227
#, fuzzy
msgid "definition of enum `%T' in condition"
msgstr "herdefinitie van `union %s'"
-#: parse.y:1189
+#: parse.y:1238
#, fuzzy
msgid "definition of array `%#D' in condition"
msgstr "herdefinitie van `union %s'"
-#: parse.y:1298
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr ""
-#: parse.y:1309
+#: parse.y:1362
#, fuzzy
msgid "`%T' is not a valid expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: parse.y:1320
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr ""
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
+msgstr "Ongeldig token in expressie"
-#: parse.y:1351
+#: parse.y:1395
#, fuzzy
msgid "ISO C++ forbids compound literals"
msgstr "ANSI C verbiedt het gebruik van samengestelde expressies als lvalues"
-#: parse.y:1592
+#: parse.y:1642
#, fuzzy
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ANSI C verbiedt accolade-groepen in expressies"
-#: parse.y:1999 parse.y:2014
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ongeldige beginwaarde voor member `%s'"
+
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
msgstr ""
-#: parse.y:2004
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr ""
-#: parse.y:2019
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr ""
-#: parse.y:2283
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr ""
-#: parse.y:2352
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2354
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2356
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr ""
-#: parse.y:2358
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr ""
-#: parse.y:2490
+#: parse.y:2553
msgid "no bases given following `:'"
msgstr ""
-#: parse.y:2521 parse.y:2536
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr ""
-#: parse.y:2526
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr ""
-#: parse.y:2544
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr ""
-#: parse.y:2581
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr ""
-#: parse.y:2801
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr ""
-#: parse.y:3082 parse.y:3102 parse.y:3111 parse.y:3140
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
msgid "`%T' is not a class or namespace"
msgstr ""
-#: parse.y:3307
+#: parse.y:3377
#, fuzzy
msgid "ISO C++ forbids label declarations"
msgstr "ANSI C verbiedt labeldeclaraties"
-#: parse.y:3462
+#: parse.y:3537
#, fuzzy
msgid "ISO C++ forbids computed gotos"
msgstr "ANSI C verbiedt geneste functies"
-#: parse.y:3470
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr ""
-#: parse.y:3566
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
+
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
msgstr ""
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3651 parse.y:3661
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr ""
-#: parse.y:3758
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr ""
-#: parse.y:3767
+#: parse.y:3849
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr ""
-#: parse.y:3769
+#: parse.y:3851
#, fuzzy
msgid "no type `%D' in `%T'"
msgstr "het type van de teruggeefwaarde van `%s' is niet `int'"
-#: parse.y:3772
+#: parse.y:3854
#, fuzzy, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr "opslagklasse opgegeven voor parameter `%s'"
-#: parse.y:3780
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr ""
-#: /usr/share/bison/bison.simple:817
-#, fuzzy
-msgid "parse error; also virtual memory exhausted"
-msgstr "parse-fout; ook is het virtueel geheugen opgebruikt"
-
-#: cp/pt.c:208
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr ""
-#: cp/pt.c:220
+#: cp/pt.c:296
#, fuzzy
msgid "invalid member template declaration `%D'"
msgstr "herhaalde label-declaratie `%s'"
-#: cp/pt.c:615
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr ""
-#: cp/pt.c:627
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: cp/pt.c:702
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr ""
-#: cp/pt.c:703
+#: cp/pt.c:793 cp/pt.c:834
#, fuzzy
msgid " from definition of `%#D'"
msgstr "herdefinitie van `%s'"
-#: cp/pt.c:711
+#: cp/pt.c:801
#, fuzzy
msgid "specialization of `%T' after instantiation"
msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
-#: cp/pt.c:714
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "de declaratie van `%s' is `extern' en heeft een beginwaarde"
+
+#: cp/pt.c:860
#, fuzzy
msgid "explicit specialization of non-template `%T'"
msgstr "impliciete declaratie van functie `%s'"
-#: cp/pt.c:846
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr ""
-#: cp/pt.c:949
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr ""
-#: cp/pt.c:1000
+#: cp/pt.c:1147
#, fuzzy
msgid "`%D' is not a function template"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:1123
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr ""
-#: cp/pt.c:1131
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr ""
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1358 cp/pt.c:1432
+#: cp/pt.c:1521 cp/pt.c:1595
msgid "template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/pt.c:1371
+#: cp/pt.c:1534
msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: cp/pt.c:1377
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr ""
-#: cp/pt.c:1383
+#: cp/pt.c:1546
#, fuzzy
msgid "too many template parameter lists in declaration of `%D'"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: cp/pt.c:1399
+#: cp/pt.c:1562
#, fuzzy
msgid "too few template parameter lists in declaration of `%D'"
msgstr "twee of meer data types in de declaratie van `%s'"
-#: cp/pt.c:1416
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr ""
-#: cp/pt.c:1429
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr ""
-#: cp/pt.c:1461
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
msgstr ""
-#: cp/pt.c:1465
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr ""
@@ -18898,110 +17287,110 @@ msgstr ""
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1553
+#: cp/pt.c:1715
#, fuzzy
msgid "specialization of implicitly-declared special member function"
msgstr "`%s' impliciet als functie gedeclareerd"
-#: cp/pt.c:1596
+#: cp/pt.c:1759
#, fuzzy
msgid "no member function `%D' declared in `%T'"
msgstr "geneste functie `%s' is als `extern' gedeclareerd"
#. There are two many template parameter lists.
-#: cp/pt.c:1744
+#: cp/pt.c:1909
#, fuzzy
msgid "too many template parameter lists in declaration of `%T'"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: cp/pt.c:1840
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
msgstr ""
-#: cp/pt.c:2244
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr ""
-#: cp/pt.c:2248
+#: cp/pt.c:2413
msgid " `%D'"
msgstr ""
-#: cp/pt.c:2260
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr ""
-#: cp/pt.c:2285
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr ""
-#: cp/pt.c:2328
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr ""
# Is the %s the argument, or is it 'of' the argument?
-#: cp/pt.c:2416
+#: cp/pt.c:2582
#, fuzzy
msgid "no default argument for `%D'"
msgstr "ongeldig type-argument `%s'"
-#: cp/pt.c:2549
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr ""
-#: cp/pt.c:2552
+#: cp/pt.c:2738
msgid "template class without a name"
msgstr ""
-#: cp/pt.c:2627
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr ""
-#: cp/pt.c:2633
+#: cp/pt.c:2821
#, fuzzy
msgid "template definition of non-template `%#D'"
msgstr "herdefinitie van `union %s'"
-#: cp/pt.c:2674
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr ""
-#: cp/pt.c:2686
+#: cp/pt.c:2874
#, fuzzy
msgid "got %d template parameters for `%#D'"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:2689
+#: cp/pt.c:2877
#, fuzzy
msgid "got %d template parameters for `%#T'"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:2691
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr ""
-#: cp/pt.c:2759
+#: cp/pt.c:2962
#, fuzzy
msgid "`%T' is not a template type"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:2775
+#: cp/pt.c:2978
#, fuzzy
msgid "previous declaration `%D'"
msgstr "eerdere declaratie van `%s'"
-#: cp/pt.c:2776
+#: cp/pt.c:2979
#, fuzzy, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:2792
+#: cp/pt.c:2995
#, fuzzy
msgid "template parameter `%#D'"
msgstr "meerdere parameters hebben de naam `%s'"
-#: cp/pt.c:2793
+#: cp/pt.c:2996
#, fuzzy
msgid "redeclared here as `%#D'"
msgstr "ongeldige naam `%s'"
@@ -19010,754 +17399,752 @@ msgstr "ongeldige naam `%s'"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2803
+#: cp/pt.c:3006
#, fuzzy
msgid "redefinition of default argument for `%#D'"
msgstr "herdefinitie van `struct %s'"
-#: cp/pt.c:2804
+#: cp/pt.c:3007
#, fuzzy
msgid " original definition appeared here"
msgstr "functie-definitie als `typdef' gedeclareerd"
-#: cp/pt.c:2897
+#: cp/pt.c:3100
#, fuzzy, c-format
msgid "`%E' is not a valid template argument"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:2901
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr ""
-#: cp/pt.c:2903
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr ""
-#: cp/pt.c:2907
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr ""
-#: cp/pt.c:2918
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr ""
-#: cp/pt.c:2930
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2941
+#: cp/pt.c:3144
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:2948
+#: cp/pt.c:3151
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr ""
-#: cp/pt.c:3328
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr ""
-#: cp/pt.c:3341 cp/pt.c:3357 cp/pt.c:3396
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr ""
-#: cp/pt.c:3344
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr ""
-#: cp/pt.c:3348
+#: cp/pt.c:3546
#, c-format
msgid " expected a type, got `%E'"
msgstr ""
-#: cp/pt.c:3360
+#: cp/pt.c:3558
msgid " expected a type, got `%T'"
msgstr ""
-#: cp/pt.c:3362
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr ""
-#: cp/pt.c:3398
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr ""
-#: cp/pt.c:3420
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr ""
-#: cp/pt.c:3423
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr ""
-#: cp/pt.c:3458
+# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "argument %d is alleen-lezen"
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr ""
-#: cp/pt.c:3502
+#: cp/pt.c:3710
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-#: cp/pt.c:3506
+#: cp/pt.c:3714
#, fuzzy
msgid "provided for `%D'"
msgstr "eerdere grant voor `%s'"
# Ik weet het, 'alleen-lezen' is lelijk, maar het is de min of meer geijkte vertaling.
-#: cp/pt.c:3553
+#: cp/pt.c:3761
#, fuzzy, c-format
msgid "template argument %d is invalid"
msgstr "argument %d is alleen-lezen"
-#: cp/pt.c:3785
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr ""
-#: cp/pt.c:3903
+#: cp/pt.c:4139
#, fuzzy
msgid "`%T' is not a template"
msgstr "`%s' is geen iterator"
-#: cp/pt.c:3916
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr ""
-#: cp/pt.c:3918
+#: cp/pt.c:4154
#, fuzzy
msgid "for template declaration `%D'"
msgstr "lege declaratie"
-#: cp/pt.c:4481
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr ""
-#: cp/pt.c:4916
+#: cp/pt.c:5247
msgid "ambiguous class template instantiation for `%#T'"
msgstr ""
-#: cp/pt.c:4923
+#: cp/pt.c:5254
msgid "%s %+#T"
msgstr ""
-#: cp/pt.c:5942 cp/pt.c:6056
+#: cp/pt.c:6284 cp/pt.c:6396
msgid "instantiation of `%D' as type `%T'"
msgstr ""
-#: cp/pt.c:6098
+#: cp/pt.c:6440
#, fuzzy
msgid "invalid parameter type `%T'"
msgstr "ongeldige operand voor %p-code"
-#: cp/pt.c:6100
+#: cp/pt.c:6442
#, fuzzy
msgid "in declaration `%D'"
msgstr "herdeclaratie van `%s'"
-#: cp/pt.c:6175
+#: cp/pt.c:6517
msgid "creating pointer to member function of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6338
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr ""
-#: cp/pt.c:6352
+#: cp/pt.c:6694
#, c-format
msgid "creating array with size zero (`%E')"
msgstr ""
-#: cp/pt.c:6590
+#: cp/pt.c:6933
msgid "forming reference to void"
msgstr ""
-#: cp/pt.c:6592
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr ""
-#: cp/pt.c:6630
+#: cp/pt.c:6973
msgid "creating pointer to member of non-class type `%T'"
msgstr ""
-#: cp/pt.c:6637
+#: cp/pt.c:6979
msgid "creating pointer to member reference type `%T'"
msgstr ""
-#: cp/pt.c:6715
+#: cp/pt.c:7057
#, fuzzy
msgid "creating array of `%T'"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/pt.c:6761
+#: cp/pt.c:7100
#, fuzzy
msgid "`%T' is not a class, struct, or union type"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/pt.c:6873
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr ""
-#: cp/pt.c:7630
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr ""
-#: cp/pt.c:7631
+#: cp/pt.c:7976
msgid " trying to instantiate `%D'"
msgstr ""
-#: cp/pt.c:8061
+#: cp/pt.c:8421
msgid "incomplete type unification"
msgstr ""
-#: cp/pt.c:9016
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr ""
-#: cp/pt.c:9438 cp/pt.c:9506
+#: cp/pt.c:9821 cp/pt.c:9893
msgid "explicit instantiation of non-template `%#D'"
msgstr ""
-#: cp/pt.c:9454 cp/pt.c:9501
+#: cp/pt.c:9837 cp/pt.c:9888
msgid "no matching template for `%D' found"
msgstr ""
-#: cp/pt.c:9460
+#: cp/pt.c:9843
#, fuzzy
msgid "explicit instantiation of `%#D'"
msgstr "eerdere impliciete declaratie van `%s'"
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9477
-msgid "explicit instantiation of `%#D' after"
-msgstr ""
-
-#: cp/pt.c:9478 cp/pt.c:9615
-#, fuzzy
-msgid "explicit specialization here"
-msgstr "initialisatie"
-
-#: cp/pt.c:9493
+#: cp/pt.c:9880
#, fuzzy
msgid "duplicate explicit instantiation of `%#D'"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:9518
+#: cp/pt.c:9905
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9522 cp/pt.c:9600
+#: cp/pt.c:9909 cp/pt.c:9999
msgid "storage class `%D' applied to template instantiation"
msgstr ""
-#: cp/pt.c:9567
+#: cp/pt.c:9966
msgid "explicit instantiation of non-template type `%T'"
msgstr ""
-#: cp/pt.c:9581
+#: cp/pt.c:9980
msgid "explicit instantiation of `%#T' before definition of template"
msgstr ""
-#: cp/pt.c:9589
+#: cp/pt.c:9988
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
msgstr ""
-#: cp/pt.c:9614
-msgid "explicit instantiation of `%#T' after"
-msgstr ""
-
-#: cp/pt.c:9632
+#: cp/pt.c:10032
#, fuzzy
msgid "duplicate explicit instantiation of `%#T'"
msgstr "herhaalde definitie `%s'"
-#: cp/pt.c:9973
+#: cp/pt.c:10412
msgid "explicit instantiation of `%D' but no definition available"
msgstr ""
-#: cp/pt.c:10345
+#: cp/pt.c:10815
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr ""
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr ""
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr ""
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr ""
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr ""
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr ""
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr ""
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr ""
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr ""
-#: cp/search.c:340
-msgid "`%T' is an inaccessible base of `%T'"
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
msgstr ""
#: cp/search.c:350
-msgid "`%T' is an ambiguous base of `%T'"
+msgid "`%T' is an inaccessible base of `%T'"
msgstr ""
-#: cp/search.c:1826
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr ""
+
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
msgstr ""
-#: cp/search.c:1830 cp/search.c:1837
+#: cp/search.c:2054 cp/search.c:2061
#, fuzzy
msgid "invalid covariant return type for `%#D'"
msgstr "ongeldige registernaam voor `%s'"
-#: cp/search.c:1831
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr ""
-#: cp/search.c:1838
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
msgstr ""
-#: cp/search.c:1843
+#: cp/search.c:2067
#, fuzzy
msgid "conflicting return type specified for `%#D'"
msgstr "conflicterende types voor `%s'"
-#: cp/search.c:1844
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr ""
-#: cp/search.c:1853
-#, fuzzy
+#: cp/search.c:2077
+#, fuzzy, c-format
msgid "looser throw specifier for `%#F'"
msgstr "'long' of 'short' opgegeven bij 'char' voor `%s'"
-#: cp/search.c:1854
+#: cp/search.c:2078
+#, c-format
msgid " overriding `%#F'"
msgstr ""
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1944
+#: cp/search.c:2167
#, fuzzy
msgid "`%#D' cannot be declared"
msgstr "`%.*s' is niet gedefinieerd"
-#: cp/search.c:1945
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr ""
-#: cp/search.c:2130
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr ""
-#: cp/semantics.c:903
+#: cp/semantics.c:919
#, fuzzy, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr "type van parameter `%s' is niet gedeclareerd"
-#: cp/semantics.c:1045
+#: cp/semantics.c:1051
#, fuzzy
msgid "ISO C++ does not permit named return values"
msgstr "ANSI C staat het gebruik van `varargs.h' niet toe"
-#: cp/semantics.c:1054
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr ""
-#: cp/semantics.c:1062
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr ""
-#: cp/semantics.c:1129
-#, fuzzy
-msgid "base initializer for `%T'"
-msgstr "ongeldige beginwaarde voor veld `%s'"
-
-#: cp/semantics.c:1131
-msgid " will be re-ordered to precede member initializations"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
msgstr ""
-#: cp/semantics.c:1319
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/semantics.c:1325
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr ""
-#: cp/semantics.c:1327
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr "ongeldig gebruik van `this' op hoogste niveau"
-#: cp/semantics.c:1365
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr ""
-#: cp/semantics.c:1401
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr ""
-#: cp/semantics.c:1407
+#: cp/semantics.c:1425
#, fuzzy
msgid "`%E' is not of type `%T'"
msgstr "`%c' optie gebruikt bij type `%c'"
-#: cp/semantics.c:1619
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr ""
-#: cp/semantics.c:1678
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
+
+#: cp/semantics.c:1694
#, fuzzy
msgid "definition of `%#T' inside template parameter list"
msgstr "de declaratie van `%s' verbergt een symbool uit de parameterlijst"
-#: cp/semantics.c:1694
+#: cp/semantics.c:1710
#, fuzzy
msgid "invalid definition of qualified type `%T'"
msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
-#: cp/semantics.c:2046
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "ongeldige linker operand van %s"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr ""
-#: cp/semantics.c:2079
+#: cp/semantics.c:2093
#, fuzzy
msgid "multiple declarators in template declaration"
msgstr "meerdere opslagklassen in declaratie van `%s'"
-#: cp/spew.c:245
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "opslaggrootte van `%s' is onbekend"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr ""
-#: cp/spew.c:1020 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr ""
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr ""
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr ""
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr ""
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr ""
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr ""
# Is the %s the argument, or is it 'of' the argument?
-#: cp/spew.c:1435
+#: cp/spew.c:1483
#, fuzzy
msgid "invalid type `%T' for default argument to `%T'"
msgstr "ongeldig type-argument `%s'"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "%s voor `%s'"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, fuzzy, c-format
msgid "%s before `%c'"
msgstr "%s voor `%s'"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, fuzzy, c-format
msgid "%s before `\\%o'"
msgstr "%s voor `%s'"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, fuzzy, c-format
msgid "%s before `%s' token"
msgstr "%s voor `%s'"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr ""
-#: cp/tree.c:536
-#, fuzzy
-msgid "`%T' cannot be `restrict'-qualified"
-msgstr "`%s' kan niet statisch gealloceerd worden"
-
-#: cp/tree.c:547
-msgid "`%T' cannot be `const'-, `volatile'-, or `restrict'-qualified"
+#: cp/tree.c:562
+msgid "`%V' qualifiers cannot be applied to `%T'"
msgstr ""
-#: cp/tree.c:1888
+#: cp/tree.c:1941
#, fuzzy, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: cp/tree.c:1918
+#: cp/tree.c:1971
#, fuzzy, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr "het `%s' attribuut heeft enkel betekenis voor functies"
-#: cp/tree.c:1924
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: cp/tree.c:1949
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr ""
-#: cp/tree.c:1970
+#: cp/tree.c:2023
#, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr ""
-#: cp/tree.c:1978
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr ""
-#: cp/tree.c:1988
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: cp/tree.c:1998
+#: cp/tree.c:2051
#, fuzzy, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: cp/typeck.c:480
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.c:524
#, fuzzy, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
msgstr "pointer van type `void *' gebruikt in aftrekking"
-#: cp/typeck.c:501
+#: cp/typeck.c:545
#, fuzzy
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
-#: cp/typeck.c:1485
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr ""
-#: cp/typeck.c:1555
-#, fuzzy
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ANSI C verbiedt een gekwalificeerd functietype"
-
-#: cp/typeck.c:1561
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr ""
-
-#: cp/typeck.c:1567
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr ""
+#: cp/typeck.c:1514
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "`this' is niet beschikbaar in static member-funties"
-#: cp/typeck.c:1581
-#, fuzzy
-msgid "`sizeof' applied to non-static member"
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
msgstr "`sizeof' toegepast op een bitveld"
-#: cp/typeck.c:1586
-#, fuzzy
-msgid "`sizeof' applied to incomplete type `%T'"
-msgstr "sizeof toegepast op een onvolledig type"
-
-#: cp/typeck.c:1616
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr ""
-#: cp/typeck.c:1619
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
msgstr ""
-#: cp/typeck.c:1766
-msgid "invalid use of non-lvalue array"
-msgstr "ongeldig gebruik van array die geen lvalue is"
-
-#: cp/typeck.c:1872
+#: cp/typeck.c:1759
msgid "deprecated conversion from string constant to `%T'"
msgstr ""
-#: cp/typeck.c:1890
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
-msgstr ""
-
-#: cp/typeck.c:2083
-msgid "destructor specifier `%T::~%T' must have matching names"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
msgstr ""
-#: cp/typeck.c:2089
-msgid "type `%T' has no destructor"
-msgstr ""
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/typeck.c:2106 cp/typeck.c:2188
+#: cp/typeck.c:1957 cp/typeck.c:1978
#, fuzzy
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "ongeldig gebruik van een void-expressie"
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-#: cp/typeck.c:2111
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr ""
+
+#: cp/typeck.c:2168
#, fuzzy
-msgid "invalid use of template `%#D' as expression"
-msgstr "ongeldig gebruik van een void-expressie"
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "`%s' is geen bestand, pipe of tty"
#: cp/typeck.c:2179
#, fuzzy
-msgid "`%#T' has no member named `%D'"
-msgstr "union heeft geen lid dat `%s' heet"
+msgid "`%T' is not a base of `%T'"
+msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/typeck.c:2223
-msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
msgstr ""
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
+msgstr ""
+
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "`%s' is meestal een functie"
+
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2349
+#: cp/typeck.c:2338
#, fuzzy
msgid "`%T' is not a pointer-to-object type"
msgstr "`%s' is geen iterator"
-#: cp/typeck.c:2376
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
msgstr ""
-#: cp/typeck.c:2382
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr ""
-#: cp/typeck.c:2485
+#: cp/typeck.c:2474
#, fuzzy
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ANSI C verbiedt het gebruik van subscripts bij een array die geen lvalue is"
-#: cp/typeck.c:2496
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr ""
-#: cp/typeck.c:2671 cp/typeck.c:2821
-msgid "pointer to member function called, but not in class scope"
-msgstr ""
-
-#: cp/typeck.c:2695
-#, fuzzy
-msgid "object missing in call to method `%D'"
-msgstr "kan oproep van `%s' niet inline maken"
-
-#: cp/typeck.c:2739
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr ""
-
-#: cp/typeck.c:2819
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr ""
+#: cp/typeck.c:2570
+#, fuzzy, c-format
+msgid "object missing in use of `%E'"
+msgstr "array-grootte ontbreekt in `%s'"
-#: cp/typeck.c:3003
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
msgstr ""
-#: cp/typeck.c:3028
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr ""
-#: cp/typeck.c:3041
+#: cp/typeck.c:2712
#, fuzzy, c-format
msgid "`%E' cannot be used as a function"
msgstr "veld `%s' als een functie gedeclareerd"
-#: cp/typeck.c:3166
+#: cp/typeck.c:2824
#, fuzzy
msgid "too many arguments to %s `%+#D'"
msgstr "teveel argumenten voor functie `%s'"
-#: cp/typeck.c:3207
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr ""
-#: cp/typeck.c:3274
+#: cp/typeck.c:2928
#, fuzzy
msgid "too few arguments to %s `%+#D'"
msgstr "te weinig argumenten voor functie `%s'"
-#: cp/typeck.c:3402 cp/typeck.c:3412
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
msgstr ""
-#: cp/typeck.c:3472
+#: cp/typeck.c:3126
#, fuzzy, c-format
msgid "division by zero in `%E / 0'"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:3474
+#: cp/typeck.c:3128
#, fuzzy, c-format
msgid "division by zero in `%E / 0.'"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:3529
+#: cp/typeck.c:3158
#, fuzzy, c-format
msgid "division by zero in `%E %% 0'"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:3531
+#: cp/typeck.c:3160
#, fuzzy, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "deling door nul in `#if'"
-#: cp/typeck.c:3611
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr ""
-#: cp/typeck.c:3614
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr ""
-#: cp/typeck.c:3645 cp/typeck.c:3650 cp/typeck.c:3741 cp/typeck.c:3746
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
#, fuzzy
msgid "ISO C++ forbids comparison between pointer and integer"
msgstr "vergelijking tussen pointer en integer"
-#: cp/typeck.c:3926
+#: cp/typeck.c:3553
#, fuzzy
msgid "comparison between types `%#T' and `%#T'"
msgstr "vergelijking tussen pointer en integer"
-#: cp/typeck.c:3962
+#: cp/typeck.c:3589
#, fuzzy
msgid "comparison between signed and unsigned integer expressions"
msgstr "vergelijking tussen signed en unsigned"
-#: cp/typeck.c:4027
+#: cp/typeck.c:3654
#, fuzzy
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr "ongeldige operanden voor binaire %s-operator"
@@ -19766,320 +18153,307 @@ msgstr "ongeldige operanden voor binaire %s-operator"
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:4049
+#: cp/typeck.c:3676
#, fuzzy
msgid "NULL used in arithmetic"
msgstr "pointer naar functie gebruikt in rekensom"
-#: cp/typeck.c:4101
-#, fuzzy
-msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
-msgstr "pointer van type `void *' gebruikt in rekensom"
-
-#: cp/typeck.c:4107
-#, fuzzy
-msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-msgstr "pointer naar functie gebruikt in rekensom"
-
-#: cp/typeck.c:4113
-#, fuzzy
-msgid "ISO C++ forbids using a pointer to member function in pointer arithmetic"
-msgstr "pointer naar functie gebruikt in rekensom"
-
-#: cp/typeck.c:4119
-msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-msgstr ""
-
-#: cp/typeck.c:4190
+#: cp/typeck.c:3743
#, fuzzy
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
msgstr "pointer van type `void *' gebruikt in aftrekking"
-#: cp/typeck.c:4192
+#: cp/typeck.c:3745
#, fuzzy
msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
-#: cp/typeck.c:4194
+#: cp/typeck.c:3747
#, fuzzy
msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr "pointer naar functie gebruikt in aftrekking"
-#: cp/typeck.c:4196
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
msgstr ""
# 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: cp/typeck.c:4208
+#: cp/typeck.c:3761
#, fuzzy
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr "rekensom met pointer naar onvolledig type"
-#: cp/typeck.c:4245
-#, fuzzy
-msgid "attempt to take address of bit-field structure member `%D'"
-msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr ""
+
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr ""
-#: cp/typeck.c:4322
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr ""
-#: cp/typeck.c:4524
+#: cp/typeck.c:4091
#, fuzzy, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ANSI C verbiedt case-bereiken"
-#: cp/typeck.c:4536
+#: cp/typeck.c:4103
#, fuzzy
msgid "cannot %s a pointer to incomplete type `%T'"
msgstr "parameter `%s' wijst naar een onvolledig type"
-#: cp/typeck.c:4543
+#: cp/typeck.c:4110
#, fuzzy
msgid "ISO C++ forbids %sing a pointer of type `%T'"
msgstr "ANSI C verbiedt het casten van een niet-scalair naar hetzelfde type"
-#: cp/typeck.c:4568
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
msgstr ""
-#: cp/typeck.c:4602
+#: cp/typeck.c:4169
#, fuzzy
msgid "invalid use of `--' on bool variable `%D'"
msgstr "ongeldig gebruik van array die geen lvalue is"
#. ARM $3.4
-#: cp/typeck.c:4635
+#: cp/typeck.c:4202
#, fuzzy
msgid "ISO C++ forbids taking address of function `::main'"
msgstr "ANSI C verbiedt het adres van een gecaste expressie"
#. An expression like &memfn.
-#: cp/typeck.c:4702
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4704
+#: cp/typeck.c:4271
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: cp/typeck.c:4728
+#: cp/typeck.c:4295
#, fuzzy
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr "ANSI C verbiedt het adres van een gecaste expressie"
-#: cp/typeck.c:4744
-msgid "unary `&'"
-msgstr ""
+#: cp/typeck.c:4324
+#, fuzzy
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "poging om het adres te nemen van lid `%s' van een bitveld-structure"
-#: cp/typeck.c:4864
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr ""
-#: cp/typeck.c:4877
+#: cp/typeck.c:4457
#, fuzzy
msgid "taking address of bound pointer-to-member expression"
msgstr "ongeldig gebruik van een void-expressie"
-#: cp/typeck.c:4893
+#: cp/typeck.c:4473
msgid "cannot create pointer to reference member `%D'"
msgstr ""
-#: cp/typeck.c:4961
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr ""
-#: cp/typeck.c:4977
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr ""
-#: cp/typeck.c:5181
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr ""
-#: cp/typeck.c:5189
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5228
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5248
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr ""
-#: cp/typeck.c:5261
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr ""
-#: cp/typeck.c:5270
+#: cp/typeck.c:4952
#, fuzzy
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr "ANSI C verbiedt voorwaardelijke expressies tussen 0 en een functiepointer"
-#: cp/typeck.c:5276
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5303
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: cp/typeck.c:5306
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
msgstr ""
-#: cp/typeck.c:5329
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5345
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
msgstr ""
-#: cp/typeck.c:5387 cp/typeck.c:5392
+#: cp/typeck.c:5069 cp/typeck.c:5074
#, fuzzy
msgid "ISO C++ forbids casting to an array type `%T'"
msgstr "ANSI C verbiedt casts naar een union-type"
-#: cp/typeck.c:5400
+#: cp/typeck.c:5082
#, fuzzy
msgid "invalid cast to function type `%T'"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/typeck.c:5452
+#: cp/typeck.c:5138
#, fuzzy
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr "cast laat qualifiers van doeltype van pointer vallen"
-#: cp/typeck.c:5498
+#: cp/typeck.c:5184
#, fuzzy
msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr "cast verhoogt het benodigde alignment van het doeltype"
-#: cp/typeck.c:5667
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr ""
-#: cp/typeck.c:5709
+#: cp/typeck.c:5399
#, fuzzy
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
msgstr "ANSI C verbiedt casts naar een union-type"
-#: cp/typeck.c:5782
+#: cp/typeck.c:5463
#, fuzzy
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr "incompatibel type voor argument %d van `%s'"
-#: cp/typeck.c:5789
+#: cp/typeck.c:5470
#, fuzzy
msgid "ISO C++ forbids assignment of arrays"
msgstr "ANSI C verbiedt array `%s' met lengte 0"
-#: cp/typeck.c:5932
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
msgstr ""
-#: cp/typeck.c:5940
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
msgstr ""
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5951 cp/typeck.c:5970
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:5974
+#: cp/typeck.c:5619
msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr ""
-#: cp/typeck.c:6044
+#: cp/typeck.c:5695
msgid "invalid conversion to type `%T' from type `%T'"
msgstr ""
-#: cp/typeck.c:6209
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6212
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
msgstr ""
-#: cp/typeck.c:6220
+#: cp/typeck.c:5871
#, fuzzy
msgid "passing `%T' for %s %P of `%D'"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/typeck.c:6223
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr ""
-#: cp/typeck.c:6233
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr ""
-#: cp/typeck.c:6236
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr ""
-#: cp/typeck.c:6323
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr ""
-#: cp/typeck.c:6326
+#: cp/typeck.c:5985
msgid "cannot convert `%T' to `%T' in %s"
msgstr ""
-#: cp/typeck.c:6413 cp/typeck.c:6415
+#: cp/typeck.c:6073 cp/typeck.c:6075
#, fuzzy
msgid "in passing argument %P of `%+D'"
msgstr "doorgeven van argument %d van `%s'"
-#: cp/typeck.c:6529
+#: cp/typeck.c:6190
msgid "returning reference to temporary"
msgstr ""
-#: cp/typeck.c:6536
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
msgstr ""
-#: cp/typeck.c:6548
+#: cp/typeck.c:6209
#, fuzzy
msgid "reference to local variable `%D' returned"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: cp/typeck.c:6551
+#: cp/typeck.c:6212
#, fuzzy
msgid "address of local variable `%D' returned"
msgstr "adres van globale registervariabele `%s' gevraagd"
-#: cp/typeck.c:6582
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr ""
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6590
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
#. You can't return a value from a constructor.
-#: cp/typeck.c:6593
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr ""
-#: cp/typeck.c:6610
+#: cp/typeck.c:6271
#, fuzzy
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr "`return' zonder waarde in een functie die een niet-void waarde teruggeeft"
-#: cp/typeck.c:6626
+#: cp/typeck.c:6287
#, fuzzy
msgid "return-statement with a value, in function declared with a void return type"
msgstr "`return' met waarde in een functie die void teruggeeft"
-#: cp/typeck.c:6647
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr ""
@@ -20088,258 +18462,195 @@ msgstr ""
msgid "type `%T' is not a base type for type `%T'"
msgstr "`%s' is geen bestand, pipe of tty"
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
msgid "cannot declare field `%D' to be of type `%T'"
msgstr ""
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
#, fuzzy
msgid "invalid return type for member function `%#D'"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
#, fuzzy
msgid "invalid return type for function `%#D'"
msgstr "ongeldige opslagklasse voor functie `%s'"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
msgid "cannot allocate an object of type `%T'"
msgstr ""
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr ""
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr ""
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr ""
-#: cp/typeck2.c:213
-#, fuzzy
-msgid "invalid use of undefined type `%#T'"
-msgstr "ongeldig gebruik van het niet gedefinieerde type `%s %s'"
-
-#: cp/typeck2.c:214
-#, fuzzy
-msgid "forward declaration of `%#T'"
-msgstr "herdeclaratie van `%s'"
-
-#: cp/typeck2.c:218
-#, fuzzy
-msgid "invalid use of `%T'"
-msgstr "ongeldig gebruik van `restrict'"
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr ""
-
-#: cp/typeck2.c:236
-#, fuzzy
-msgid "invalid use of template type parameter"
-msgstr "ongeldig gebruik van onvolledige typedef `%s'"
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr ""
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr ""
-
-#: cp/typeck2.c:270
-#, fuzzy, c-format
-msgid "internal error #%d"
-msgstr "interne fout"
-
-#: cp/typeck2.c:325
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr ""
-#: cp/typeck2.c:335
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:337
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr ""
-
-#: cp/typeck2.c:340 cp/typeck2.c:346 cp/typeck2.c:352
-#, fuzzy
-msgid "initializer list construction invalid for `%D'"
-msgstr "beginwaarde legt grootte van `%s' niet vast"
-
-#: cp/typeck2.c:341
-msgid "due to the presence of a constructor"
-msgstr ""
-
-#: cp/typeck2.c:347 cp/typeck2.c:353
-#, fuzzy
-msgid "due to non-public access of member `%D'"
-msgstr "herhaald lid `%s'"
-
-#: cp/typeck2.c:365
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
msgstr ""
-#: cp/typeck2.c:374
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: cp/typeck2.c:436
-#, fuzzy
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr "ANSI C verbiedt constructor-expressies"
-
-#: cp/typeck2.c:516
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
msgstr ""
-#: cp/typeck2.c:572
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
msgstr ""
-#: cp/typeck2.c:579
+#: cp/typeck2.c:536
#, fuzzy
msgid "braces around scalar initializer for `%T'"
msgstr "accolades rond scalaire beginwaarde"
-#: cp/typeck2.c:582
+#: cp/typeck2.c:539
#, fuzzy
msgid "ignoring extra initializers for `%T'"
msgstr "niet-constante beginwaarde voor `%s'"
-#: cp/typeck2.c:594
+#: cp/typeck2.c:551
#, fuzzy
msgid "variable-sized object of type `%T' may not be initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: cp/typeck2.c:604
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr ""
-#: cp/typeck2.c:670
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: cp/typeck2.c:700 cp/typeck2.c:801
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
msgstr ""
-#: cp/typeck2.c:717
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: cp/typeck2.c:767
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
msgstr ""
-#: cp/typeck2.c:773
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
msgstr ""
-#: cp/typeck2.c:779
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
msgstr ""
-#: cp/typeck2.c:842 cp/typeck2.c:859
+#: cp/typeck2.c:811 cp/typeck2.c:827
#, fuzzy
msgid "missing initializer for member `%D'"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/typeck2.c:847
+#: cp/typeck2.c:816
#, fuzzy
msgid "uninitialized const member `%D'"
msgstr "ongeldige beginwaarde voor member `%s'"
-#: cp/typeck2.c:850
+#: cp/typeck2.c:818
#, fuzzy
msgid "member `%D' with uninitialized const fields"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/typeck2.c:853
+#: cp/typeck2.c:821
#, fuzzy
msgid "member `%D' is uninitialized reference"
msgstr "parameter `%s' krijgt beginwaarde"
-#: cp/typeck2.c:896
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
msgstr ""
-#: cp/typeck2.c:908
+#: cp/typeck2.c:880
#, fuzzy
msgid "no field `%D' in union being initialized"
msgstr "onbekend veld `%s' opgegeven in beginwaarde"
-#: cp/typeck2.c:916
+#: cp/typeck2.c:888
msgid "union `%T' with no named members cannot be initialized"
msgstr ""
-#: cp/typeck2.c:952
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
msgstr ""
-#: cp/typeck2.c:1057
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
msgstr ""
-#: cp/typeck2.c:1070
+#: cp/typeck2.c:1051
#, fuzzy
msgid "base operand of `->' has non-pointer type `%T'"
msgstr "grootte van array `%s' is van een niet-integraal type"
-#: cp/typeck2.c:1084
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
msgstr ""
-#: cp/typeck2.c:1086
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
msgstr ""
-#: cp/typeck2.c:1152
+#: cp/typeck2.c:1133
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr ""
-#: cp/typeck2.c:1159
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: cp/typeck2.c:1168
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr ""
-#: cp/typeck2.c:1205
+#: cp/typeck2.c:1186
#, fuzzy
msgid "`%T' fails to be a typedef or built-in type"
msgstr "`%s' is geen typedef of ingebouwd type"
-#: cp/typeck2.c:1278
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
msgstr ""
-#: cp/xref.c:826
-#, c-format
-msgid "can't create cross-reference file `%s'"
-msgstr ""
+#: cp/typeck2.c:1384
+#, fuzzy
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "parameter `%s' wijst naar een onvolledig type"
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "parameter `%s' wijst naar een onvolledig type"
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3847
+#: cp/cp-tree.h:3936
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr ""
@@ -20399,12 +18710,14 @@ msgid "Export functions even if they can be inlined"
msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
-msgstr ""
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "herhaalde definitie `%s'"
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
-msgstr ""
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "impliciete declaratie van functie `%s'"
#: cp/lang-options.h:84
msgid "Don't pedwarn about uses of Microsoft extensions"
@@ -20509,278 +18822,293 @@ msgstr ""
msgid "Don't announce deprecation of compiler features"
msgstr ""
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
msgstr ""
# Dit zou misschien beter 'warning' blijven
-#: f/bad.c:390
+#: f/bad.c:391
msgid "warning:"
msgstr "let op:"
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
msgstr ""
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
msgstr ""
-#: f/bad.c:486 f/bad.c:504
-#, c-format
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
msgstr ""
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
msgstr ""
-#: f/com.c:3116
+#: f/com.c:3132
+#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr ""
-#: f/com.c:11596
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
msgstr "geen enkel INTEGER-type kan een pointer bevatten in deze configuratie"
-#: f/com.c:11821
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr ""
-#: f/com.c:11823
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
msgstr ""
-#: f/com.c:11825
+#: f/com.c:11848
msgid "properly unless they all are 32 bits wide"
msgstr ""
-#: f/com.c:11826
-msgid "Please keep this in mind before you report bugs. g77 should"
-msgstr ""
-
-#: f/com.c:11827
-msgid "support non-32-bit machines better as of version 0.6"
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
msgstr ""
#. I/O will probably crash.
-#: f/com.c:11835
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr ""
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11844
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
" ASSIGN statement might fail"
msgstr ""
-#: f/com.c:13678
+#: f/com.c:13681
#, fuzzy
msgid "In statement function"
msgstr "teveel argumenten voor functie"
-#: f/com.c:13688
+#: f/com.c:13691
msgid "Outside of any program unit:\n"
msgstr ""
-#: f/com.c:15376
+#: f/com.c:15320
+#, no-c-format
msgid "%A from %B at %0%C"
msgstr ""
-#: f/com.c:15553
+#: f/com.c:15497
msgid "directory name must immediately follow -I"
msgstr ""
-#: f/com.c:15695
+#: f/com.c:15640
+#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr ""
-#: f/com.c:15729
+#: f/com.c:15675
+#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr ""
-#: f/expr.c:9611
+#: f/expr.c:9614
+#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr ""
-#: f/expr.c:9660
+#: f/expr.c:9664
+#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
msgstr ""
-#: f/expr.c:10520
+#: f/expr.c:10525
+#, no-c-format
msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr ""
-#: f/expr.c:10890
+#: f/expr.c:10896
+#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
msgstr ""
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr ""
-#: f/g77spec.c:395
+#: f/g77spec.c:373
#, fuzzy
msgid "--driver no longer supported"
msgstr "-pipe wordt niet ondersteund"
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, fuzzy, c-format
msgid "argument to `%s' missing"
msgstr "argument van `%s' moet van een integraal type zijn."
-#: f/g77spec.c:412
+#: f/g77spec.c:390
msgid "no input files; unwilling to write output files"
msgstr ""
-#: f/implic.c:202
-#, fuzzy
+#: f/implic.c:203
+#, fuzzy, no-c-format
msgid "Implicit declaration of `%A' at %0"
msgstr "eerdere impliciete declaratie van `%s'"
-#: f/lex.c:272
-#, fuzzy
-msgid "The meaning of `\\x' (at %0) varies with -traditional"
-msgstr "de betekenis van `\\x' varieert naargelang -traditional al dan niet gebruikt wordt"
-
-#: f/lex.c:322
-#, fuzzy
-msgid "The meaning of `\\a' (at %0) varies with -traditional"
-msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-
-#: f/lex.c:351
-#, fuzzy
+#: f/lex.c:326
+#, fuzzy, no-c-format
msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
msgstr "niet-ANSI-standaard escape sequence `\\%c'"
-#: f/lex.c:369
-#, fuzzy
+#: f/lex.c:345
+#, fuzzy, no-c-format
msgid "Unknown escape sequence `\\%A' at %0"
msgstr "onbekende escape sequence `\\%c'"
-#: f/lex.c:377
-#, fuzzy, c-format
+#: f/lex.c:354
+#, fuzzy, no-c-format
msgid "Unterminated escape sequence `\\' at %0"
msgstr "onbekende escape sequence `\\%c'"
-#: f/lex.c:387
-#, fuzzy
+#: f/lex.c:365
+#, fuzzy, no-c-format
msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
msgstr "onbekende escape sequence: `\\' gevolgd door karaktercode 0x%x"
-#: f/lex.c:414
-#, fuzzy
+#: f/lex.c:393
+#, fuzzy, no-c-format
msgid "\\x used at %0 with no following hex digits"
msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
-#: f/lex.c:427
-#, fuzzy
+#: f/lex.c:407
+#, fuzzy, no-c-format
msgid "Hex escape at %0 out of range"
msgstr "hexadecimale escape-waarde buiten bereik"
# "escape-sequentie"?! Maar wat is er beter?
-#: f/lex.c:460
-#, fuzzy
+#: f/lex.c:441
+#, fuzzy, no-c-format
msgid "Escape sequence at %0 out of range for character"
msgstr "escape-sequentie buiten bereik voor karakter"
-#: f/lex.c:583
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "de betekenis van `\\x' varieert naargelang -traditional al dan niet gebruikt wordt"
-
-#: f/lex.c:620
+#: f/lex.c:595
msgid "hex escape out of range"
msgstr "hexadecimale escape-waarde buiten bereik"
-#: f/lex.c:666
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "de betekenis van `\\a' varieert naargelang -traditional al dan niet gebruikt wordt"
-
-#: f/lex.c:682
+#: f/lex.c:648
#, c-format
msgid "non-ANSI-standard escape sequence, `\\%c'"
msgstr "niet-ANSI-standaard escape sequence `\\%c'"
-#: f/lex.c:695
+#: f/lex.c:661
#, fuzzy, c-format
msgid "non-ISO escape sequence `\\%c'"
msgstr "niet-ANSI escape sequence `\\%c'"
-#: f/lex.c:699
+#: f/lex.c:665
#, c-format
msgid "unknown escape sequence `\\%c'"
msgstr "onbekende escape sequence `\\%c'"
-#: f/lex.c:701
+#: f/lex.c:667
#, c-format
msgid "unknown escape sequence: `\\' followed by char code 0x%x"
msgstr "onbekende escape sequence: `\\' gevolgd door karaktercode 0x%x"
-#: f/lex.c:778
+#: f/lex.c:744
msgid "badly formed directive -- no closing quote"
msgstr ""
-#: f/lex.c:998
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
+msgstr "#-lijnen voor het binnengaan en verlaten van bestanden komen niet overeen"
+
+#: f/lex.c:964
msgid "bad directive -- missing close-quote"
msgstr ""
-#: f/lex.c:1112
+#: f/lex.c:1078
#, c-format
msgid "ignoring pragma: %s"
msgstr "pragma wordt genegeerd: %s"
-#: f/lex.c:1319 f/lex.c:1363
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr "ongeldige #ident"
+
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
+msgstr "ongedefinieerd of ongeldig #-commando"
+
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr "ongeldige #line"
+
+#: f/lex.c:1285 f/lex.c:1329
msgid "use `#line ...' instead of `# ...' in first line"
msgstr ""
-#: f/lex.c:1465
-#, c-format
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr "ongeldige #-lijn"
+
+#: f/lex.c:1432
+#, no-c-format
msgid "Null character at %0 -- line ignored"
msgstr ""
-#: f/stb.c:12077
-#, c-format
+#: f/stb.c:12078
+#, no-c-format
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr ""
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr ""
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2635
+#: f/ste.c:2624
+#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr ""
-#: f/ste.c:2964
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr ""
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr "ASSIGN naar een variabele die te klein is"
-#: f/ste.c:2992
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr ""
-#: f/stu.c:304
+#: f/stu.c:305
+#, no-c-format
msgid "Local adjustable symbol `%A' at %0"
msgstr ""
-#: f/top.c:238
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
+msgstr ""
+
+#: f/top.c:237
#, c-format
msgid "%s no longer supported -- try -fvxt"
msgstr ""
-#: f/top.c:240
+#: f/top.c:239
#, c-format
msgid "%s no longer supported -- try -fno-vxt -ff90"
msgstr ""
-#: f/top.c:308 f/top.c:310
+#: f/top.c:307 f/top.c:309
#, c-format
msgid "%s disabled, use normal debugging flags"
msgstr ""
@@ -21095,1695 +19423,863 @@ msgstr ""
msgid "Set the maximum line length"
msgstr ""
-#: f/bad.def:38
-#, c-format
+#: f/bad.def:39
+#, no-c-format
msgid "Missing first operand for binary operator at %0"
msgstr ""
-#: f/bad.def:40
-#, fuzzy, c-format
+#: f/bad.def:42
+#, fuzzy, no-c-format
msgid "Zero-length character constant at %0"
msgstr "lege karakterconstante"
-#: f/bad.def:42
-#, fuzzy, c-format
+#: f/bad.def:45
+#, fuzzy, no-c-format
msgid "Invalid token at %0 in expression or subexpression at %1"
msgstr "Ongeldig token in expressie"
-#: f/bad.def:44
+#: f/bad.def:48
+#, no-c-format
msgid "Missing operand for operator at %1 at end of expression at %0"
msgstr ""
-#: f/bad.def:46
+#: f/bad.def:51
+#, no-c-format
msgid "Label %A already defined at %1 when redefined at %0"
msgstr ""
-#: f/bad.def:48
+#: f/bad.def:54
+#, no-c-format
msgid "Unrecognized character at %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:50
+#: f/bad.def:57
+#, no-c-format
msgid "Label definition %A at %0 on empty statement (as of %1)"
msgstr ""
-#: f/bad.def:52
-msgid "Extra label definition %A at %0 -- perhaps previous label definition %B at %1 should have CONTINUE statement?"
-msgstr ""
-
-#: f/bad.def:53
-msgid "Extra label definition %A at %0 following label definition %B at %1"
-msgstr ""
-
-#: f/bad.def:55
+#: f/bad.def:65
+#, no-c-format
msgid "Invalid first character at %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:57
+#: f/bad.def:68
+#, no-c-format
msgid "Line too long as of %0 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:59
-#, c-format
+#: f/bad.def:71
+#, no-c-format
msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:61
-#, c-format
+#: f/bad.def:74
+#, no-c-format
msgid "Label number at %0 not in range 1-99999"
msgstr ""
-#: f/bad.def:63
+#: f/bad.def:77
+#, no-c-format
msgid "At %0, '!' and '/*' are not valid comment delimiters"
msgstr ""
-#: f/bad.def:65
-#, c-format
+#: f/bad.def:80
+#, no-c-format
msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:67
+#: f/bad.def:83
+#, no-c-format
msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
msgstr ""
-#: f/bad.def:69
-#, c-format
-msgid "Continuation indicator at %0 invalid on first non-comment line of file or following END or INCLUDE [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:70
-#, c-format
-msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:72
-#, fuzzy
+#: f/bad.def:91
+#, fuzzy, no-c-format
msgid "Character constant at %0 has no closing apostrophe at %1"
msgstr "karakterconstante te lang"
-#: f/bad.def:74
+#: f/bad.def:94
+#, no-c-format
msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
msgstr ""
-#: f/bad.def:76
-#, c-format
+#: f/bad.def:97
+#, no-c-format
msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
msgstr ""
-#: f/bad.def:78
-#, fuzzy
+#: f/bad.def:100
+#, fuzzy, no-c-format
msgid "Integer at %0 too large"
msgstr "integerconstante buiten bereik"
-#: f/bad.def:80
-msgid "Integer at %0 too large except as negative number (preceded by unary minus sign)"
-msgstr ""
-
-#: f/bad.def:81
-msgid "Non-negative integer at %0 too large"
-msgstr ""
-
-#: f/bad.def:83
-msgid "Integer at %0 too large; even though preceded by unary minus sign at %1, subsequent operator at %2 has precedence over unary minus -- enclose unary minus sign and integer in parentheses to force precedence"
-msgstr ""
-
-#: f/bad.def:84
-msgid "Integer at %0 too large (%2 has precedence over %1)"
-msgstr ""
-
-#: f/bad.def:86
-msgid "Integer at %0 too large; even though preceded by minus sign at %1, because minus sign is a binary, not unary, operator -- insert plus sign before minus sign to change it to a unary minus sign"
-msgstr ""
-
-#: f/bad.def:87
-msgid "Integer at %0 too large (needs unary, not binary, minus at %1)"
-msgstr ""
-
-#: f/bad.def:89
-msgid "Integer at %0 too large; even though preceded by minus sign at %1, subsequent operator at %2 has precedence over minus, and that minus sign should be a unary minus rather than a binary minus -- insert plus sign before minus sign to change it to a unary minus sign, and enclose unary minus sign and integer in parentheses to force precedence"
-msgstr ""
-
-#: f/bad.def:90
-msgid "Integer at %0 too large (%2 has precedence over %1, which needs to be unary, not binary, minus)"
-msgstr ""
-
-#: f/bad.def:92
-#, c-format
+#: f/bad.def:123
+#, no-c-format
msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
msgstr ""
-#: f/bad.def:94
+#: f/bad.def:126
+#, no-c-format
msgid "Missing close-period between `.%A' at %0 and %1"
msgstr ""
-#: f/bad.def:96
-msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
-msgstr ""
-
-#: f/bad.def:98
-msgid "Missing value at %1 for real-number exponent at %0"
-msgstr ""
-
-#: f/bad.def:100
-msgid "Expected binary operator between expressions at %0 and at %1"
-msgstr ""
-
-#: f/bad.def:102
-msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator"
-msgstr ""
-
-#: f/bad.def:103
-#, fuzzy
-msgid "`.%A.' at %0 not a binary operator"
-msgstr "`%s' is geen iterator"
-
-#: f/bad.def:105
-#, c-format
-msgid "Double-quote at %0 not followed by a string of valid octal digits at %1"
-msgstr ""
-
-#: f/bad.def:106 f/bad.def:115 f/bad.def:124
-#, fuzzy, c-format
-msgid "Invalid octal constant at %0"
-msgstr "ongeldige beginwaarde"
-
-#: f/bad.def:108 f/bad.def:120
-#, c-format
-msgid "Invalid binary digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:109 f/bad.def:121
-#, fuzzy, c-format
-msgid "Invalid binary constant at %0"
-msgstr "ongeldige beginwaarde"
-
-#: f/bad.def:111 f/bad.def:126
-#, c-format
-msgid "Invalid hexadecimal digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:112 f/bad.def:127
-#, fuzzy, c-format
-msgid "Invalid hexadecimal constant at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:114 f/bad.def:123
-#, c-format
-msgid "Invalid octal digit(s) found in string of digits at %0"
-msgstr ""
-
-#: f/bad.def:117
-msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1"
-msgstr ""
-
-#: f/bad.def:118
-#, fuzzy, c-format
-msgid "Invalid typeless constant at %1"
-msgstr "ongeldige expressie als operand"
-
#: f/bad.def:129
-msgid "%A part of complex constant at %0 must be a real or integer constant -- otherwise use CMPLX() or COMPLEX() in place of ()"
-msgstr ""
-
-#: f/bad.def:130
-msgid "%A part of complex constant at %0 not a real or integer constant"
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
msgstr ""
#: f/bad.def:132
-msgid "Invalid keyword `%%%A' at %0 in this context"
-msgstr ""
-
-#: f/bad.def:133
-msgid "Invalid keyword `%%%A' at %0"
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
msgstr ""
-# 'braced-group'? Wie schrijft verdorie die foutmeldingen?
#: f/bad.def:135
-#, fuzzy
-msgid "Null expression between %0 and %1 invalid in this context"
-msgstr "voorwaardelijke expressie niet toegestaan in deze context"
-
-#: f/bad.def:136
-#, fuzzy
-msgid "Invalid null expression between %0 and %1"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:138
-msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but neither subexpression at %1 or %2 is of character type"
-msgstr ""
-
-#: f/bad.def:139
-msgid "Invalid operands at %1 and %2 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:141
-msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but the subexpression at %1 is not of character type"
-msgstr ""
-
-#: f/bad.def:142
-msgid "Invalid operand at %1 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:144
-msgid "Concatenation operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:145
-msgid "Invalid operand (is %A) at %1 for concatenation operator at %0"
-msgstr ""
-
-#: f/bad.def:147
-msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but neither subexpression at %1 or %2 is of arithmetic type"
-msgstr ""
-
-#: f/bad.def:148
-msgid "Invalid operands at %1 and %2 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:150
-msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but the subexpression at %1 is not of arithmetic type"
-msgstr ""
-
-#: f/bad.def:151
-msgid "Invalid operand at %1 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:153
-msgid "Arithmetic operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:154
-msgid "Invalid operand (is %A) at %1 for arithmetic operator at %0"
-msgstr ""
-
-#: f/bad.def:156
-msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:157
-#, fuzzy
-msgid "Unterminated character constant at %0 [info -f g77 M LEX]"
-msgstr "niet-beëindigde karakterconstante"
-
-#: f/bad.def:159
-#, c-format
-msgid "Continuation line at %0 must have initial `&' since it continues a character context [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:160 f/bad.def:163
-msgid "Missing initial `&' on continuation line at %0 [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:162
-#, c-format
-msgid "Continuation line at %0 must have initial `&' since it continues a split lexical token [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:165
-#, c-format
-msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character"
-msgstr ""
-
-#: f/bad.def:166
-#, fuzzy, c-format
-msgid "Invalid continuation line at %0"
-msgstr "Ongeldige optie `%s'"
-
-#: f/bad.def:168
-msgid "Statement at %0 begins with invalid token [info -f g77 M LEX]"
-msgstr ""
-
-#: f/bad.def:169
-msgid "Invalid statement at %0 [info -f g77 M LEX]"
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
msgstr ""
-#: f/bad.def:171
-#, c-format
+#: f/bad.def:253
+#, no-c-format
msgid "Semicolon at %0 is an invalid token"
msgstr ""
-#: f/bad.def:173
-msgid "Unrecognized statement name at %0 and invalid form for assignment or statement-function definition at %1"
-msgstr ""
-
-#: f/bad.def:174
-#, fuzzy, c-format
-msgid "Invalid statement at %0"
-msgstr "ongeldige beginwaarde"
-
-#: f/bad.def:176
-#, fuzzy
-msgid "Invalid form for %A statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:177
-#, fuzzy
-msgid "Invalid %A statement at %0"
-msgstr "ongeldige beginwaarde"
-
-#: f/bad.def:179
-#, c-format
-msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))"
-msgstr ""
-
-#: f/bad.def:180
-#, c-format
-msgid "Enclose hollerith constant in statement at %0 in parentheses"
-msgstr ""
-
-#: f/bad.def:182
-#, c-format
+#: f/bad.def:271
+#, no-c-format
msgid "Extraneous comma in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:184
-#, c-format
+#: f/bad.def:274
+#, no-c-format
msgid "Missing comma in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:186
-#, c-format
+#: f/bad.def:277
+#, no-c-format
msgid "Spurious sign in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:188
-#, c-format
+#: f/bad.def:280
+#, no-c-format
msgid "Spurious number in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:190
-#, c-format
+#: f/bad.def:283
+#, no-c-format
msgid "Spurious text trailing number in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:192
-#, c-format
-msgid "nP control edit descriptor not followed by comma but followed by edit descriptor at %0 other than D, E, EN, F, or G"
-msgstr ""
-
-#: f/bad.def:193
-#, c-format
-msgid "Invalid edit descriptor at %0 following nP control edit descriptor"
-msgstr ""
-
-#: f/bad.def:195
-#, fuzzy, c-format
+#: f/bad.def:291
+#, fuzzy, no-c-format
msgid "Unrecognized FORMAT specifier at %0"
msgstr "onbekende formaatspecificatie"
-#: f/bad.def:197
-#, c-format
-msgid "Invalid I specifier in FORMAT statement at %0 -- correct form: [r]Iw.[m]"
-msgstr ""
-
-#: f/bad.def:198
-#, fuzzy, c-format
-msgid "Invalid I specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:200
-#, c-format
-msgid "Invalid B specifier in FORMAT statement at %0 -- correct form: [r]Bw.[m]"
-msgstr ""
-
-#: f/bad.def:201
-#, fuzzy, c-format
-msgid "Invalid B specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:203
-#, c-format
-msgid "Invalid O specifier in FORMAT statement at %0 -- correct form: [r]Ow.[m]"
-msgstr ""
-
-#: f/bad.def:204
-#, fuzzy, c-format
-msgid "Invalid O specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:206
-#, c-format
-msgid "Invalid Z specifier in FORMAT statement at %0 -- correct form: [r]Zw.[m]"
-msgstr ""
-
-#: f/bad.def:207
-#, fuzzy, c-format
-msgid "Invalid Z specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:209
-#, c-format
-msgid "Invalid F specifier in FORMAT statement at %0 -- correct form: [r]Fw.d"
-msgstr ""
-
-#: f/bad.def:210
-#, fuzzy, c-format
-msgid "Invalid F specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:212
-#, c-format
-msgid "Invalid E specifier in FORMAT statement at %0 -- correct form: [r]Ew.d[Ee]"
-msgstr ""
-
-#: f/bad.def:213
-#, fuzzy, c-format
-msgid "Invalid E specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:215
-#, c-format
-msgid "Invalid EN specifier in FORMAT statement at %0 -- correct form: [r]ENw.d[Ee]"
-msgstr ""
-
-#: f/bad.def:216
-#, c-format
-msgid "Invalid EN specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:218
-#, c-format
-msgid "Invalid G specifier in FORMAT statement at %0 -- correct form: [r]Gw.d[Ee]"
-msgstr ""
-
-#: f/bad.def:219
-#, fuzzy, c-format
-msgid "Invalid G specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:221
-#, c-format
-msgid "Invalid L specifier in FORMAT statement at %0 -- correct form: [r]Lw"
-msgstr ""
-
-#: f/bad.def:222
-#, fuzzy, c-format
-msgid "Invalid L specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:224
-#, c-format
-msgid "Invalid A specifier in FORMAT statement at %0 -- correct form: [r]A[w]"
-msgstr ""
-
-#: f/bad.def:225
-#, fuzzy, c-format
-msgid "Invalid A specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:227
-#, c-format
-msgid "Invalid D specifier in FORMAT statement at %0 -- correct form: [r]Dw.d"
-msgstr ""
-
-#: f/bad.def:228
-#, fuzzy, c-format
-msgid "Invalid D specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:230
-#, c-format
-msgid "Invalid Q specifier in FORMAT statement at %0 -- correct form: Q"
-msgstr ""
-
-#: f/bad.def:231
-#, fuzzy, c-format
-msgid "Invalid Q specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:233
-#, c-format
-msgid "Invalid $ specifier in FORMAT statement at %0 -- correct form: $"
-msgstr ""
-
-#: f/bad.def:234
-#, fuzzy, c-format
-msgid "Invalid $ specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:236
-#, c-format
-msgid "Invalid P specifier in FORMAT statement at %0 -- correct form: kP"
-msgstr ""
-
-#: f/bad.def:237
-#, fuzzy, c-format
-msgid "Invalid P specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:239
-#, c-format
-msgid "Invalid T specifier in FORMAT statement at %0 -- correct form: Tn"
-msgstr ""
-
-#: f/bad.def:240
-#, fuzzy, c-format
-msgid "Invalid T specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:242
-#, c-format
-msgid "Invalid TL specifier in FORMAT statement at %0 -- correct form: TLn"
-msgstr ""
-
-#: f/bad.def:243
-#, c-format
-msgid "Invalid TL specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:245
-#, c-format
-msgid "Invalid TR specifier in FORMAT statement at %0 -- correct form: TRn"
-msgstr ""
-
-#: f/bad.def:246
-#, c-format
-msgid "Invalid TR specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:248
-#, c-format
-msgid "Invalid X specifier in FORMAT statement at %0 -- correct form: nX"
-msgstr ""
-
-#: f/bad.def:249
-#, fuzzy, c-format
-msgid "Invalid X specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:251
-#, c-format
-msgid "Invalid S specifier in FORMAT statement at %0 -- correct form: S"
-msgstr ""
-
-#: f/bad.def:252
-#, fuzzy, c-format
-msgid "Invalid S specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:254
-#, c-format
-msgid "Invalid SP specifier in FORMAT statement at %0 -- correct form: SP"
-msgstr ""
-
-#: f/bad.def:255
-#, c-format
-msgid "Invalid SP specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:257
-#, c-format
-msgid "Invalid SS specifier in FORMAT statement at %0 -- correct form: SS"
-msgstr ""
-
-#: f/bad.def:258
-#, c-format
-msgid "Invalid SS specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:260
-#, c-format
-msgid "Invalid BN specifier in FORMAT statement at %0 -- correct form: BN"
-msgstr ""
-
-#: f/bad.def:261
-#, c-format
-msgid "Invalid BN specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:263
-#, c-format
-msgid "Invalid BZ specifier in FORMAT statement at %0 -- correct form: BZ"
-msgstr ""
-
-#: f/bad.def:264
-#, c-format
-msgid "Invalid BZ specifier in FORMAT statement at %0"
-msgstr ""
-
-#: f/bad.def:266
-#, c-format
-msgid "Invalid : specifier in FORMAT statement at %0 -- correct form: :"
-msgstr ""
-
-#: f/bad.def:267
-#, fuzzy, c-format
-msgid "Invalid : specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:269
-#, c-format
-msgid "Invalid H specifier in FORMAT statement at %0 -- correct form: nHcharacters !where n is an unsigned decimal constant, and characters !contains exactly n characters (including spaces)"
-msgstr ""
-
-#: f/bad.def:270
-#, fuzzy, c-format
-msgid "Invalid H specifier in FORMAT statement at %0"
-msgstr "ongeldige expressie als operand"
-
-#: f/bad.def:272
-#, c-format
+#: f/bad.def:419
+#, no-c-format
msgid "Missing close-parenthese(s) in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:274
-#, c-format
+#: f/bad.def:422
+#, no-c-format
msgid "Missing number following period in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:276
-#, c-format
+#: f/bad.def:425
+#, no-c-format
msgid "Missing number following `E' in FORMAT statement at %0"
msgstr ""
-#: f/bad.def:278
-#, c-format
-msgid "Invalid token with FORMAT run-time expression at %0 -- use the traditional operators .LT., .LE., .GT., .GE., .EQ., and .NE. in place of the newer tokens <, <=, >, >=, ==, and !=, because > ends an expression within a FORMAT statement"
-msgstr ""
-
-#: f/bad.def:279
-#, fuzzy, c-format
-msgid "Invalid token with FORMAT run-time expression at %0"
-msgstr "Ongeldig token in expressie"
-
-#: f/bad.def:281
-#, fuzzy, c-format
+#: f/bad.def:433
+#, fuzzy, no-c-format
msgid "Spurious trailing comma preceding terminator at %0"
msgstr "overbodige `%%' achteraan formaat"
-#: f/bad.def:283
+#: f/bad.def:436
+#, no-c-format
msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
msgstr ""
-#: f/bad.def:285
+#: f/bad.def:439
+#, no-c-format
msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
msgstr ""
-#: f/bad.def:287
-#, c-format
-msgid "Defined operator at %0 contains a nonletter -- must contain only letters A-Z (or a-z)"
-msgstr ""
-
-#: f/bad.def:288
-#, c-format
-msgid "Nonletter in defined operator at %0"
-msgstr ""
-
-#: f/bad.def:290
-#, c-format
-msgid "Invalid type-declaration attribute at %0 -- must be one of: DIMENSION(array-spec), EXTERNAL, INTRINSIC, PARAMETER, or SAVE"
-msgstr ""
-
-#: f/bad.def:291
-#, fuzzy, c-format
-msgid "Invalid type-declaration attribute at %0"
-msgstr "lege declaratie"
-
-#: f/bad.def:293
-#, c-format
+#: f/bad.def:452
+#, no-c-format
msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
msgstr ""
-#: f/bad.def:295
+#: f/bad.def:455
+#, no-c-format
msgid "Reference to label at %1 inconsistent with its definition at %0"
msgstr ""
-#: f/bad.def:297
+#: f/bad.def:458
+#, no-c-format
msgid "Reference to label at %1 inconsistent with earlier reference at %0"
msgstr ""
-#: f/bad.def:299
+#: f/bad.def:461
+#, no-c-format
msgid "DO-statement reference to label at %1 follows its definition at %0"
msgstr ""
-#: f/bad.def:301
+#: f/bad.def:464
+#, no-c-format
msgid "Reference to label at %1 is outside block containing definition at %0"
msgstr ""
-#: f/bad.def:303
+#: f/bad.def:467
+#, no-c-format
msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
msgstr ""
-#: f/bad.def:305
+#: f/bad.def:470
+#, no-c-format
msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
msgstr ""
-#: f/bad.def:307
-#, fuzzy, c-format
+#: f/bad.def:473
+#, fuzzy, no-c-format
msgid "Label definition at %0 invalid on this kind of statement"
msgstr "label gevonden buiten een CASE-statement"
-#: f/bad.def:309
-#, fuzzy, c-format
+#: f/bad.def:476
+#, fuzzy, no-c-format
msgid "Statement at %0 invalid in this context"
msgstr "%s: %s compiler niet geïnstalleerd op dit systeem"
-#: f/bad.def:311
-#, c-format
+#: f/bad.def:479
+#, no-c-format
msgid "Statement at %0 invalid in context established by statement at %1"
msgstr ""
-#: f/bad.def:313
-#, c-format
+#: f/bad.def:482
+#, no-c-format
msgid "Statement at %0 must specify construct name specified at %1"
msgstr ""
-#: f/bad.def:315
-#, c-format
+#: f/bad.def:485
+#, no-c-format
msgid "Construct name at %0 superfluous, no construct name specified at %1"
msgstr ""
-#: f/bad.def:317
-#, c-format
+#: f/bad.def:488
+#, no-c-format
msgid "Construct name at %0 not the same as construct name at %1"
msgstr ""
-#: f/bad.def:319
-#, c-format
+#: f/bad.def:491
+#, no-c-format
msgid "Construct name at %0 does not match construct name for any containing DO constructs"
msgstr ""
-#: f/bad.def:321
-#, c-format
+#: f/bad.def:494
+#, no-c-format
msgid "Label definition missing at %0 for DO construct specifying label at %1"
msgstr ""
-#: f/bad.def:323
-#, c-format
+#: f/bad.def:497
+#, no-c-format
msgid "Statement at %0 follows ELSE block for IF construct at %1"
msgstr ""
-#: f/bad.def:325
-#, fuzzy, c-format
+#: f/bad.def:500
+#, fuzzy, no-c-format
msgid "No label definition for FORMAT statement at %0"
msgstr "label niet in een CASE-statement"
-#: f/bad.def:327
+#: f/bad.def:503
+#, no-c-format
msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
msgstr ""
-#: f/bad.def:329
+#: f/bad.def:506
+#, no-c-format
msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
msgstr ""
-#: f/bad.def:331
+#: f/bad.def:509
+#, no-c-format
msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
msgstr ""
-#: f/bad.def:333
-#, c-format
+#: f/bad.def:512
+#, no-c-format
msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
msgstr ""
-#: f/bad.def:335
-#, c-format
+#: f/bad.def:515
+#, no-c-format
msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
msgstr ""
-#: f/bad.def:337
-#, c-format
+#: f/bad.def:518
+#, no-c-format
msgid "Program unit name at %0 not the same as name at %1"
msgstr ""
-#: f/bad.def:339
-#, c-format
+#: f/bad.def:521
+#, no-c-format
msgid "Type name at %0 not the same as name at %1"
msgstr ""
-#: f/bad.def:341
-#, c-format
+#: f/bad.def:524
+#, no-c-format
msgid "End of source file before end of block started at %0"
msgstr ""
-#: f/bad.def:343
-#, c-format
+#: f/bad.def:527
+#, no-c-format
msgid "Undefined label, first referenced at %0"
msgstr ""
-#: f/bad.def:345
+#: f/bad.def:530
+#, no-c-format
msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
msgstr ""
-#: f/bad.def:347
+#: f/bad.def:533
+#, no-c-format
msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
msgstr ""
-#: f/bad.def:349
-#, c-format
+#: f/bad.def:536
+#, no-c-format
msgid "RETURN statement at %0 invalid within a main program unit"
msgstr ""
-#: f/bad.def:351
-#, c-format
+#: f/bad.def:539
+#, no-c-format
msgid "Alternate return specifier at %0 invalid within a main program unit"
msgstr ""
-#: f/bad.def:353
-#, c-format
+#: f/bad.def:542
+#, no-c-format
msgid "Alternate return specifier at %0 invalid within a function"
msgstr ""
-#: f/bad.def:355
-#, c-format
+#: f/bad.def:545
+#, no-c-format
msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
msgstr ""
-#: f/bad.def:357
+#: f/bad.def:548
+#, no-c-format
msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
msgstr ""
-#: f/bad.def:359
-#, c-format
+#: f/bad.def:551
+#, no-c-format
msgid "No components specified as of %0 for derived-type definition beginning at %1"
msgstr ""
-#: f/bad.def:361
-#, c-format
+#: f/bad.def:554
+#, no-c-format
msgid "No components specified as of %0 for structure definition beginning at %1"
msgstr ""
-#: f/bad.def:363
-#, c-format
+#: f/bad.def:557
+#, no-c-format
msgid "Missing structure name for outer structure definition at %0"
msgstr ""
-#: f/bad.def:365
-#, c-format
+#: f/bad.def:560
+#, no-c-format
msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
msgstr ""
-#: f/bad.def:367
+#: f/bad.def:563
+#, no-c-format
msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
msgstr ""
-#: f/bad.def:369
-#, c-format
+#: f/bad.def:566
+#, no-c-format
msgid "No components specified as of %0 for map beginning at %1"
msgstr ""
-#: f/bad.def:371
+#: f/bad.def:569
+#, no-c-format
msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
msgstr ""
-#: f/bad.def:373
+#: f/bad.def:572
+#, no-c-format
msgid "Missing %A specifier in statement at %0"
msgstr ""
-#: f/bad.def:375
-#, c-format
+#: f/bad.def:575
+#, no-c-format
msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
msgstr ""
-#: f/bad.def:377
+#: f/bad.def:578
+#, no-c-format
msgid "Conflicting I/O control specifications at %0 and %1"
msgstr ""
-#: f/bad.def:379
-#, c-format
+#: f/bad.def:581
+#, no-c-format
msgid "No UNIT= specifier in I/O control list at %0"
msgstr ""
-#: f/bad.def:381
+#: f/bad.def:584
+#, no-c-format
msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
msgstr ""
-#: f/bad.def:383
+#: f/bad.def:587
+#, no-c-format
msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
msgstr ""
-#: f/bad.def:385
-msgid "Unrecognized value for character constant at %0 -- expecting %A"
-msgstr ""
-
-#: f/bad.def:386
-#, fuzzy, c-format
-msgid "Unrecognized value for character constant at %0"
-msgstr "%s voor karakterconstante"
-
-#: f/bad.def:388
+#: f/bad.def:595
+#, no-c-format
msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
msgstr ""
-#: f/bad.def:390
+#: f/bad.def:598
+#, no-c-format
msgid "Duplicate or overlapping case values/ranges at %0 and %1"
msgstr ""
-#: f/bad.def:392
+#: f/bad.def:601
+#, no-c-format
msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
msgstr ""
-#: f/bad.def:394
-#, c-format
+#: f/bad.def:604
+#, no-c-format
msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
msgstr ""
-#: f/bad.def:396
-#, c-format
-msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT"
-msgstr ""
-
-#: f/bad.def:397
-#, c-format
-msgid "Range specification at %0 invalid"
-msgstr ""
-
-#: f/bad.def:399
-#, c-format
-msgid "Range specification at %0 useless; first expression greater than second expression in range, so range can never be matched by any selection expression"
-msgstr ""
-
-#: f/bad.def:400
-#, c-format
-msgid "Useless range at %0"
-msgstr ""
-
-#: f/bad.def:402
-#, c-format
+#: f/bad.def:617
+#, no-c-format
msgid "Fortran 90 feature at %0 unsupported"
msgstr ""
-#: f/bad.def:404
-msgid "Invalid kind at %0 for type at %1 -- unsupported or not permitted"
-msgstr ""
-
-#: f/bad.def:405
-#, fuzzy, c-format
-msgid "Invalid kind at %0 for type at %1"
-msgstr "Ongeldig register voor vergelijking"
-
-#: f/bad.def:407
-msgid "Cannot establish implicit type for initial letter `%A' at %0 -- already explicitly established or used to set implicit type of some name, or backwards order of letters in letter range"
-msgstr ""
-
-#: f/bad.def:408
-msgid "Cannot establish implicit type for initial letter `%A' at %0"
-msgstr ""
-
-#: f/bad.def:410
+#: f/bad.def:630
+#, no-c-format
msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
msgstr ""
-#: f/bad.def:412
-msgid "Label definition %A (at %0) invalid -- must be in columns 1-5"
-msgstr ""
-
-#: f/bad.def:413
-msgid "Invalid label definition %A (at %0)"
-msgstr ""
-
-#: f/bad.def:415
-#, c-format
+#: f/bad.def:638
+#, no-c-format
msgid "Null element at %0 for array reference at %1"
msgstr ""
-#: f/bad.def:417
+#: f/bad.def:641
+#, no-c-format
msgid "Too few elements (%A missing) as of %0 for array reference at %1"
msgstr ""
-#: f/bad.def:419
-#, fuzzy, c-format
+#: f/bad.def:644
+#, fuzzy, no-c-format
msgid "Too many elements as of %0 for array reference at %1"
msgstr "array-grootte op een niet-array-referentie"
-#: f/bad.def:421
-#, c-format
+#: f/bad.def:647
+#, no-c-format
msgid "Missing colon as of %0 in substring reference for %1"
msgstr ""
-#: f/bad.def:423
-#, c-format
+#: f/bad.def:650
+#, no-c-format
msgid "Invalid use at %0 of substring operator on %1"
msgstr ""
-#: f/bad.def:425
-#, c-format
+#: f/bad.def:653
+#, no-c-format
msgid "Substring begin/end point at %0 out of defined range"
msgstr ""
-#: f/bad.def:427
-#, fuzzy, c-format
+#: f/bad.def:656
+#, fuzzy, no-c-format
msgid "Array element value at %0 out of defined range"
msgstr "case-waarde buiten bereik"
-#: f/bad.def:429
+#: f/bad.def:659
+#, no-c-format
msgid "Expression at %0 has incorrect data type or rank for its context"
msgstr ""
-#: f/bad.def:431
+#: f/bad.def:662
+#, no-c-format
msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
msgstr ""
-#: f/bad.def:433
+#: f/bad.def:665
+#, no-c-format
msgid "%A step count known to be 0 (zero) at %0"
msgstr ""
-#: f/bad.def:435
+#: f/bad.def:668
+#, no-c-format
msgid "%A end value plus step count known to overflow at %0"
msgstr ""
-#: f/bad.def:437
+#: f/bad.def:671
+#, no-c-format
msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
msgstr ""
-#: f/bad.def:439
+#: f/bad.def:674
+#, no-c-format
msgid "%A begin, end, and step-count values known to result in no iterations at %0"
msgstr ""
-#: f/bad.def:441
+#: f/bad.def:677
+#, no-c-format
msgid "Type disagreement between expressions at %0 and %1"
msgstr ""
-#: f/bad.def:443
-#, c-format
-msgid "Run-time expression at %0 in FORMAT statement that does not follow the first executable statement in the program unit -- move the statement"
-msgstr ""
-
-#: f/bad.def:444
-msgid "FORMAT at %0 with run-time expression must follow first executable statement"
-msgstr ""
-
-#: f/bad.def:446
-msgid "Unexpected token at %0 in implied-DO construct at %1 -- form of implied-DO is `(item-list,do-var=start,end[,incr])'"
-msgstr ""
-
-#: f/bad.def:447
-#, c-format
-msgid "Unexpected token at %0 in implied-DO construct at %1"
-msgstr ""
-
-#: f/bad.def:449
+#: f/bad.def:690
+#, no-c-format
msgid "No specification for implied-DO iterator `%A' at %0"
msgstr ""
-#: f/bad.def:451
-#, c-format
+#: f/bad.def:693
+#, no-c-format
msgid "Gratuitous parentheses surround implied-DO construct at %0"
msgstr ""
-#: f/bad.def:453
-#, c-format
+#: f/bad.def:696
+#, no-c-format
msgid "Zero-size specification invalid at %0"
msgstr ""
-#: f/bad.def:455
-#, c-format
+#: f/bad.def:699
+#, no-c-format
msgid "Zero-size array at %0"
msgstr ""
-#: f/bad.def:457
-#, c-format
+#: f/bad.def:702
+#, no-c-format
msgid "Target machine does not support complex entity of kind specified at %0"
msgstr ""
-#: f/bad.def:459
-#, c-format
+#: f/bad.def:705
+#, no-c-format
msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
msgstr ""
-#: f/bad.def:461
-#, c-format
+#: f/bad.def:708
+#, no-c-format
msgid "Attempt to raise constant zero to a power at %0"
msgstr ""
-#: f/bad.def:463
-msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but neither subexpression at %1 or %2 is of logical type"
-msgstr ""
-
-#: f/bad.def:464
-msgid "Invalid operands at %1 and %2 for boolean operator at %0"
-msgstr ""
-
-#: f/bad.def:466
-msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but the subexpression at %1 is not of logical type"
-msgstr ""
-
-#: f/bad.def:467
-#, fuzzy
-msgid "Invalid operand at %1 for boolean operator at %0"
-msgstr "ongeldige operanden voor binaire %s-operator"
-
-#: f/bad.def:469
-msgid "Boolean/logical operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning logical scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:470
-msgid "Invalid operand (is %A) at %1 for boolean operator at %0"
-msgstr ""
-
-#: f/bad.def:472
-msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type"
-msgstr ""
-
-#: f/bad.def:473
-#, fuzzy
-msgid "Invalid operand at %1 for .NOT. operator at %0"
-msgstr "ongeldige operand voor %N-code"
-
-#: f/bad.def:475
-msgid ".NOT. operator at %0 must operate on scalar subexpressions -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:476
-msgid "Invalid operand (is %A) at %1 for .NOT. operator at %0"
-msgstr ""
-
-#: f/bad.def:478
-msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but neither subexpression at %1 or %2 is of arithmetic or character type"
-msgstr ""
-
-#: f/bad.def:479
-msgid "Invalid operands at %1 and %2 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:481
-msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but the subexpression at %1 is not of arithmetic or character type"
-msgstr ""
-
-#: f/bad.def:482
-msgid "Invalid operand at %1 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:484
-msgid "Equality operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:485
-msgid "Invalid operand (is %A) at %1 for equality operator at %0"
-msgstr ""
-
-#: f/bad.def:487
-msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but neither subexpression at %1 or %2 is of integer, real, or character type"
-msgstr ""
-
-#: f/bad.def:488
-msgid "Invalid operands at %1 and %2 for relational operator at %0"
-msgstr ""
-
-#: f/bad.def:490
-msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but the subexpression at %1 is not of integer, real, or character type"
-msgstr ""
-
-#: f/bad.def:491
-#, fuzzy
-msgid "Invalid operand at %1 for relational operator at %0"
-msgstr "ongeldige operanden voor binaire %s-operator"
-
-#: f/bad.def:493
-msgid "Relational operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning integer, real, or character scalars, or a combination of both -- but the subexpression at %1 is %A"
-msgstr ""
-
-#: f/bad.def:494
-msgid "Invalid operand (is %A) at %1 for relational operator at %0"
-msgstr ""
-
-#: f/bad.def:496
-msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type"
-msgstr ""
-
-#: f/bad.def:497
-#, fuzzy
-msgid "Invalid reference to intrinsic `%A' at %0"
-msgstr "Ongeldige modus voor gen_tst_reg"
-
-#: f/bad.def:499
-#, fuzzy
-msgid "Too few arguments passed to intrinsic `%A' at %0"
-msgstr "te weinig argumenten voor functie `%s'"
-
-#: f/bad.def:500
-#, fuzzy
-msgid "Too few arguments for intrinsic `%A' at %0"
-msgstr "te weinig argumenten voor functie `%s'"
-
-#: f/bad.def:502
-#, fuzzy
-msgid "Too many arguments passed to intrinsic `%A' at %0"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: f/bad.def:503
-#, fuzzy
-msgid "Too many arguments for intrinsic `%A' at %0"
-msgstr "teveel argumenten voor functie `%s'"
-
-#: f/bad.def:505
-msgid "Reference to disabled intrinsic `%A' at %0"
-msgstr ""
-
-#: f/bad.def:506
-msgid "Disabled intrinsic `%A' at %0"
-msgstr ""
-
-#: f/bad.def:508
-msgid "Reference to intrinsic subroutine `%A' as if it were a function at %0"
-msgstr ""
-
-#: f/bad.def:509
-msgid "Function reference to intrinsic subroutine `%A' at %0"
-msgstr ""
-
-#: f/bad.def:511
-msgid "Reference to intrinsic function `%A' as if it were a subroutine at %0"
-msgstr ""
-
-#: f/bad.def:512
-msgid "Subroutine reference to intrinsic function `%A' at %0"
-msgstr ""
-
-#: f/bad.def:514
-msgid "Reference to unimplemented intrinsic `%A' at %0 -- use EXTERNAL to reference user-written procedure with this name"
-msgstr ""
-
-#: f/bad.def:515
-#, fuzzy
-msgid "Unimplemented intrinsic `%A' at %0"
-msgstr "ingebouwde functie `%s' is niet geïmplementeerd"
-
-#: f/bad.def:517
-msgid "Reference to unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
-msgstr ""
-
-#: f/bad.def:518
-msgid "Unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
-msgstr ""
-
-#: f/bad.def:520
+#: f/bad.def:806
+#, no-c-format
msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
msgstr ""
-#: f/bad.def:522
+#: f/bad.def:809
+#, no-c-format
msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
msgstr ""
-#: f/bad.def:524
+#: f/bad.def:812
+#, no-c-format
msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
msgstr ""
-#: f/bad.def:526
+#: f/bad.def:815
+#, no-c-format
msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
msgstr ""
-#: f/bad.def:528
+#: f/bad.def:818
+#, no-c-format
msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
msgstr ""
-#: f/bad.def:530
-#, fuzzy
+#: f/bad.def:821
+#, fuzzy, no-c-format
msgid "Unable to open INCLUDE file `%A' at %0"
msgstr "kan bestand '%s' niet openen"
-#: f/bad.def:532
-msgid "Attempt to modify variable `%A' at %0 while it serves as DO-loop iterator at %1"
-msgstr ""
-
-#: f/bad.def:533 f/bad.def:536
-msgid "Modification of DO-loop iterator `%A' at %0"
-msgstr ""
-
-#: f/bad.def:535
-msgid "Attempt to modify variable `%A' via item #%B in list at %0 while it serves as implied-DO iterator at %1"
-msgstr ""
-
-#: f/bad.def:538
-#, c-format
-msgid "Array has too many dimensions, as of dimension specifier at %0"
-msgstr ""
-
-#: f/bad.def:539
-#, fuzzy, c-format
-msgid "Too many dimensions at %0"
-msgstr "Teveel argumenten in oproep van `%s'"
-
-#: f/bad.def:541
-#, c-format
+#: f/bad.def:839
+#, no-c-format
msgid "Null argument at %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:543
-#, c-format
+#: f/bad.def:842
+#, no-c-format
msgid "Null argument at %0 for procedure invocation at %1"
msgstr ""
-#: f/bad.def:545
+#: f/bad.def:845
+#, no-c-format
msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:547
+#: f/bad.def:848
+#, no-c-format
msgid "%A too many arguments as of %0 for statement function reference at %1"
msgstr ""
-#: f/bad.def:549
+#: f/bad.def:851
+#, no-c-format
msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
msgstr ""
-#: f/bad.def:551
-#, c-format
+#: f/bad.def:854
+#, no-c-format
msgid "Unsupported FORMAT specifier at %0"
msgstr ""
-#: f/bad.def:553
-#, c-format
+#: f/bad.def:857
+#, no-c-format
msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
msgstr ""
-#: f/bad.def:555
-msgid "Unsupported OPEN control item at %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED=, and USEROPEN= are not supported"
-msgstr ""
-
-#: f/bad.def:556
-#, c-format
-msgid "Unsupported OPEN control item at %0"
-msgstr ""
-
-#: f/bad.def:558
-msgid "Unsupported INQUIRE control item at %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE=, and WRITE= are not supported"
-msgstr ""
-
-#: f/bad.def:559
-#, c-format
-msgid "Unsupported INQUIRE control item at %0"
-msgstr ""
-
-#: f/bad.def:561
-msgid "Unsupported READ control item at %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS=, and SIZE= are not supported"
-msgstr ""
-
-#: f/bad.def:562
-#, c-format
-msgid "Unsupported READ control item at %0"
-msgstr ""
-
-#: f/bad.def:564
-msgid "Unsupported WRITE control item at %0 -- ADVANCE= and EOR= are not supported"
-msgstr ""
-
-#: f/bad.def:565
-#, c-format
-msgid "Unsupported WRITE control item at %0"
-msgstr ""
-
-#: f/bad.def:567
-#, c-format
+#: f/bad.def:880
+#, no-c-format
msgid "Unsupported VXT statement at %0"
msgstr ""
-#: f/bad.def:569
+#: f/bad.def:883
+#, no-c-format
msgid "Attempt to specify second initial value for `%A' at %0"
msgstr ""
-#: f/bad.def:571
+#: f/bad.def:886
+#, no-c-format
msgid "Too few initial values in list of initializers for `%A' at %0"
msgstr ""
-#: f/bad.def:573
-#, c-format
+#: f/bad.def:889
+#, no-c-format
msgid "Too many initial values in list of initializers starting at %0"
msgstr ""
-#: f/bad.def:575
+#: f/bad.def:892
+#, no-c-format
msgid "Array or substring specification for `%A' out of range in statement at %0"
msgstr ""
-#: f/bad.def:577
+#: f/bad.def:895
+#, no-c-format
msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
msgstr ""
-#: f/bad.def:579
+#: f/bad.def:898
+#, no-c-format
msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
msgstr ""
-#: f/bad.def:581
+#: f/bad.def:901
+#, no-c-format
msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
msgstr ""
-#: f/bad.def:583
-#, c-format
+#: f/bad.def:904
+#, no-c-format
msgid "Not an integer constant expression in implied do-loop in statement at %0"
msgstr ""
-#: f/bad.def:585
+#: f/bad.def:907
+#, no-c-format
msgid "Attempt to specify second initial value for element of `%A' at %0"
msgstr ""
-#: f/bad.def:587
+#: f/bad.def:910
+#, no-c-format
msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
msgstr ""
-#: f/bad.def:589
+#: f/bad.def:913
+#, no-c-format
msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
msgstr ""
-#: f/bad.def:591
+#: f/bad.def:916
+#, no-c-format
msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
msgstr ""
-#: f/bad.def:593
+#: f/bad.def:919
+#, no-c-format
msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:595
+#: f/bad.def:922
+#, no-c-format
msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:597
+#: f/bad.def:925
+#, no-c-format
msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:599
+#: f/bad.def:928
+#, no-c-format
msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
msgstr ""
-#: f/bad.def:601
-msgid "Padding of %A %D required before `%B' in common block `%C' at %0 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:602
-msgid "Padding of %A %D required before `%B' in common block `%C' at %0"
-msgstr ""
-
-#: f/bad.def:604
+#: f/bad.def:936
+#, no-c-format
msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
msgstr ""
-#: f/bad.def:606
+#: f/bad.def:939
+#, no-c-format
msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:608
+#: f/bad.def:942
+#, no-c-format
msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: f/bad.def:610
+#: f/bad.def:945
+#, no-c-format
msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
msgstr ""
-#: f/bad.def:612
-#, c-format
-msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
-msgstr ""
-
-#: f/bad.def:613
-#, fuzzy, c-format
-msgid "Invalid length specification at %0"
-msgstr "ongeldige linker operand van %s"
-
-#: f/bad.def:615
-msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
-msgstr ""
-
-#: f/bad.def:616
-msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s)"
-msgstr ""
-
-#: f/bad.def:618
+#: f/bad.def:958
+#, no-c-format
msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
msgstr ""
-#: f/bad.def:620
-msgid "Common block `%A' initialized at %0 already initialized at %1 -- only one program unit may specify initial values for a particular common block"
-msgstr ""
-
-#: f/bad.def:621
-msgid "Common block `%A' initialized at %0 already initialized at %1"
-msgstr ""
-
-#: f/bad.def:623
-msgid "Initial padding for common block `%A' is %B %C at %0 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:624
-msgid "Initial padding for common block `%A' is %B %C at %0"
-msgstr ""
-
-#: f/bad.def:626
-msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1 -- consider reordering members, largest-type-size first"
-msgstr ""
-
-#: f/bad.def:627
-msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1"
-msgstr ""
-
-#: f/bad.def:629
+#: f/bad.def:976
+#, no-c-format
msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
msgstr ""
-#: f/bad.def:631
+#: f/bad.def:979
+#, no-c-format
msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
msgstr ""
-#: f/bad.def:633
-msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1 -- use consistent definitions or reorder program units in source file"
-msgstr ""
-
-#: f/bad.def:634
-msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1"
-msgstr ""
-
-#: f/bad.def:636
-#, c-format
+#: f/bad.def:987
+#, no-c-format
msgid "Blank common initialized at %0"
msgstr ""
-#: f/bad.def:638
+#: f/bad.def:990
+#, no-c-format
msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
msgstr ""
-#: f/bad.def:640
+#: f/bad.def:993
+#, no-c-format
msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
msgstr ""
-#: f/bad.def:642
+#: f/bad.def:996
+#, no-c-format
msgid "Character `%A' (for example) is upper-case in symbol name at %0"
msgstr ""
-#: f/bad.def:644
+#: f/bad.def:999
+#, no-c-format
msgid "Character `%A' (for example) is lower-case in symbol name at %0"
msgstr ""
-#: f/bad.def:646
+#: f/bad.def:1002
+#, no-c-format
msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
msgstr ""
-#: f/bad.def:648
+#: f/bad.def:1005
+#, no-c-format
msgid "Initial character `%A' is lower-case in symbol name at %0"
msgstr ""
-#: f/bad.def:650
-msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0 -- unexpected behavior likely"
-msgstr ""
-
-#: f/bad.def:651
-msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0"
-msgstr ""
-
-#: f/bad.def:653
+#: f/bad.def:1013
+#, no-c-format
msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
msgstr ""
-#: f/bad.def:655
-#, c-format
+#: f/bad.def:1016
+#, no-c-format
msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
msgstr ""
-#: f/bad.def:657
-msgid "Invalid actual argument at %0 -- replace hollerith constants with %%REF('string') and typeless constants with INTEGER constant equivalents, or use -fugly-args or -fugly"
-msgstr ""
-
-# Is the %s the argument, or is it 'of' the argument?
-#: f/bad.def:658
-#, fuzzy, c-format
-msgid "Invalid actual argument at %0"
-msgstr "ongeldig type-argument `%s'"
-
-#: f/bad.def:660
-msgid "Quadruple-precision floating-point unsupported -- treating constant at %0 as double-precision"
-msgstr ""
-
-#: f/bad.def:661
-msgid "Quadruple-precision floating-point unsupported"
-msgstr ""
-
-#: f/bad.def:663
-msgid "Initialization of large (%B-unit) aggregate area `%A' at %0 currently very slow and takes lots of memory during g77 compile -- to be improved in 0.6"
-msgstr ""
-
-#: f/bad.def:664
-msgid "This could take a while (initializing `%A' at %0)..."
-msgstr ""
-
-#: f/bad.def:666
-#, c-format
+#: f/bad.def:1034
+#, no-c-format
msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
msgstr ""
-#: f/bad.def:668
-#, fuzzy, c-format
+#: f/bad.def:1037
+#, fuzzy, no-c-format
msgid "Truncating characters on right side of character constant at %0"
msgstr "karakterconstante met meer dan één karakter"
-#: f/bad.def:670
-#, c-format
+#: f/bad.def:1040
+#, no-c-format
msgid "Truncating characters on right side of hollerith constant at %0"
msgstr ""
-#: f/bad.def:672
-#, c-format
+#: f/bad.def:1043
+#, no-c-format
msgid "Truncating non-zero data on left side of numeric constant at %0"
msgstr ""
-#: f/bad.def:674
-#, c-format
+#: f/bad.def:1046
+#, no-c-format
msgid "Truncating non-zero data on left side of typeless constant at %0"
msgstr ""
-#: f/bad.def:676
-#, fuzzy
+#: f/bad.def:1049
+#, fuzzy, no-c-format
msgid "Typeless constant at %0 too large"
msgstr "integerconstante buiten bereik"
-#: f/bad.def:678
-#, c-format
+#: f/bad.def:1052
+#, no-c-format
msgid "First-column ampersand continuation at %0"
msgstr ""
-#: f/bad.def:680 f/bad.def:682
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:684 f/bad.def:686
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:688 f/bad.def:690
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:692
+#: f/bad.def:1073
+#, no-c-format
msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:694
+#: f/bad.def:1076
+#, no-c-format
msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:696 f/bad.def:698
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: f/bad.def:700
-#, fuzzy
+#: f/bad.def:1085
+#, fuzzy, no-c-format
msgid "Array `%A' at %0 is too large to handle"
msgstr "omvang van array `%s' is te groot"
-#: f/bad.def:702
-#, fuzzy
+#: f/bad.def:1088
+#, fuzzy, no-c-format
msgid "Statement function `%A' defined at %0 is not used"
msgstr "label `%s' gedefinieerd maar niet gebruikt"
-#: f/bad.def:704
+#: f/bad.def:1091
+#, no-c-format
msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
msgstr ""
-#: f/bad.def:706
-#, fuzzy
+#: f/bad.def:1094
+#, fuzzy, no-c-format
msgid "Internal compiler error -- cannot perform operation"
msgstr "interne fout - dup-operatie"
@@ -22830,72 +20326,72 @@ msgstr ""
msgid "In anything"
msgstr ""
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: java/check-init.c:988
+#: java/check-init.c:990
#, fuzzy, c-format
msgid "final field '%s' may not have been initialized"
msgstr "object van variabele lengte mag geen beginwaarde krijgen"
-#: java/class.c:567 java/class.c:592
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr ""
-#: java/class.c:742
+#: java/class.c:677
msgid "bad method signature"
msgstr ""
-#: java/class.c:787
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr ""
-#: java/class.c:789
+#: java/class.c:728
#, fuzzy, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr "niet-constante waarde voor tagveld `%s'"
-#: java/class.c:800
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr ""
-#: java/class.c:1149
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr ""
-#: java/class.c:1407
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr ""
# goede vertaling voor 'overrides'?
-#: java/class.c:2092
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr "niet-static methode '%s' vervangt static methode"
-#: java/decl.c:1511
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr ""
-#: java/decl.c:1599
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr ""
-#: java/decl.c:1609
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr ""
-#: java/expr.c:550
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr ""
-#: java/expr.c:1504
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr ""
@@ -22904,242 +20400,257 @@ msgstr ""
# dikwijls 'bibliotheek' zien gebruiken.
# De vertaalde boodschappen voor make gebruiken dat op het ogenblik wél, maar
# ik ben van plan daar verandering in te brengen.
-#: java/expr.c:1533
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr "veld `%s' niet gevonden"
-#: java/expr.c:1684
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr ""
-#: java/expr.c:1821
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr ""
-#: java/expr.c:2025
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr "kan klasse '%s' niet vinden"
-#: java/expr.c:2037
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: java/expr.c:2047
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr ""
-#: java/expr.c:2052
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr ""
-#: java/expr.c:2060
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr ""
-#: java/expr.c:2337
+#: java/expr.c:2396
#, fuzzy, c-format
msgid "missing field '%s' in '%s'"
msgstr "beginwaarde ontbreekt"
-#: java/expr.c:2343
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr ""
-#: java/expr.c:2366
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr ""
-#: java/expr.c:2371
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr ""
-#: java/expr.c:2378
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr "toekenning aan final-veld `%s' niet in constructor"
-#: java/expr.c:2616
+#: java/expr.c:2684
#, fuzzy, c-format
msgid "can't expand %s"
msgstr "open %s"
-#: java/expr.c:2792
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr "ongeldige PC in tabel met regelnummers"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2837
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr ""
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2874
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
#. duplicate code from LOAD macro
-#: java/expr.c:3193
+#: java/expr.c:3261
#, fuzzy
msgid "unrecogized wide sub-instruction"
msgstr "signature-string niet herkend"
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr ""
-#: java/jcf-parse.c:379
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr "slechte stringconstante"
-#: java/jcf-parse.c:435
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr ""
-#: java/jcf-parse.c:693
+#: java/jcf-parse.c:528
+#, fuzzy, c-format
+msgid "can't reopen %s"
+msgstr "open %s"
+
+#: java/jcf-parse.c:533
+#, fuzzy, c-format
+msgid "can't close %s"
+msgstr "close %s"
+
+#: java/jcf-parse.c:619
#, fuzzy, c-format
msgid "cannot find file for class %s"
msgstr "[kan %s niet vinden]"
-#: java/jcf-parse.c:705
+#: java/jcf-parse.c:631
#, fuzzy
msgid "not a valid Java .class file"
msgstr "ongeldige basisklasse"
-#: java/jcf-parse.c:708
+#: java/jcf-parse.c:634
#, fuzzy
msgid "error while parsing constant pool"
msgstr "%s voor stringconstante"
-#: java/jcf-parse.c:711
+#: java/jcf-parse.c:637
#, fuzzy, c-format
msgid "error in constant pool entry #%d\n"
msgstr "constant object wordt beschreven (argument %d)"
#. FIXME - where was first time
-#: java/jcf-parse.c:723
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr ""
-#: java/jcf-parse.c:741
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr ""
-#: java/jcf-parse.c:744
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr ""
-#: java/jcf-parse.c:747
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr ""
-#: java/jcf-parse.c:761
+#: java/jcf-parse.c:687
#, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr ""
-#: java/jcf-parse.c:846
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr ""
-#: java/jcf-parse.c:1081
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr ""
-#: java/jcf-parse.c:1097
+#: java/jcf-parse.c:1030
#, fuzzy
msgid "no input file specified"
msgstr "Geen invoerbestanden"
-#: java/jcf-parse.c:1129
+#: java/jcf-parse.c:1059
#, fuzzy, c-format
msgid "can't close input file %s"
msgstr "kan bestand '%s' niet openen"
-#: java/jcf-parse.c:1166
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr ""
-#: java/jcf-write.c:2626
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr ""
-#: java/jcf-write.c:2933
+#: java/jcf-write.c:2988
#, fuzzy
msgid "field initializer type mismatch"
msgstr "ongeldige beginwaarde voor bit-string"
-#: java/jcf-write.c:3342
+#: java/jcf-write.c:3419
#, fuzzy, c-format
msgid "can't create directory %s"
msgstr "dubbele folder `%s' wordt genegeerd\n"
-#: java/jcf-write.c:3369
+#: java/jcf-write.c:3473
#, fuzzy, c-format
-msgid "can't to open %s"
+msgid "can't create %s"
msgstr "open %s"
-#: java/jv-scan.c:183
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr ""
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, fuzzy, c-format
msgid "can't open output file `%s'"
msgstr "kan bestand '%s' niet openen"
-#: java/jv-scan.c:222
+#: java/jv-scan.c:224
#, fuzzy, c-format
msgid "file not found `%s'"
msgstr "kan %s niet vinden"
-#: java/jvspec.c:384
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr ""
-#: java/jvspec.c:390
-msgid "-R requires -o"
+#: java/jvspec.c:429
+#, fuzzy, c-format
+msgid "`%s' is not a valid class name"
+msgstr "-fPIC is niet geldig met -mcoff"
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
msgstr ""
-#: java/jvspec.c:397
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr ""
-#: java/jvspec.c:404
+#: java/jvspec.c:449
#, fuzzy
msgid "cannot specify both -C and -o"
msgstr "-EB en -EL mogen niet samen gebruikt worden"
-#: java/jvspec.c:416
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr ""
-#: java/jvspec.c:444
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr ""
-#: java/jvspec.c:501
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr ""
-#: java/lang.c:433
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: java/lang.c:449
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr ""
@@ -23158,363 +20669,367 @@ msgstr ""
msgid "can't mangle %s"
msgstr "close %s"
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:748
-#: ../../../gcc/vanilla/gcc/java/parse.y:786
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
#, fuzzy
-msgid "Missing name"
+msgid "Missing term"
msgstr "beginwaarde ontbreekt"
-#: ../../../gcc/vanilla/gcc/java/parse.y:750
-#: ../../../gcc/vanilla/gcc/java/parse.y:788
-#: ../../../gcc/vanilla/gcc/java/parse.y:813
-#: ../../../gcc/vanilla/gcc/java/parse.y:997
-#: ../../../gcc/vanilla/gcc/java/parse.y:1344
-#: ../../../gcc/vanilla/gcc/java/parse.y:1555
-#: ../../../gcc/vanilla/gcc/java/parse.y:1557
-#: ../../../gcc/vanilla/gcc/java/parse.y:1786
-#: ../../../gcc/vanilla/gcc/java/parse.y:1812
-#: ../../../gcc/vanilla/gcc/java/parse.y:1823
-#: ../../../gcc/vanilla/gcc/java/parse.y:1834
-#: ../../../gcc/vanilla/gcc/java/parse.y:1846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:811
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+#, fuzzy
+msgid "Missing name"
+msgstr "beginwaarde ontbreekt"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:825
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:860
-#: ../../../gcc/vanilla/gcc/java/parse.y:862
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:865
-#: ../../../gcc/vanilla/gcc/java/parse.y:869
-#: ../../../gcc/vanilla/gcc/java/parse.y:877
-#: ../../../gcc/vanilla/gcc/java/parse.y:1042
-#: ../../../gcc/vanilla/gcc/java/parse.y:1290
-#: ../../../gcc/vanilla/gcc/java/parse.y:1292
-#: ../../../gcc/vanilla/gcc/java/parse.y:1621
-#: ../../../gcc/vanilla/gcc/java/parse.y:1857
-#: ../../../gcc/vanilla/gcc/java/parse.y:1889
-#: ../../../gcc/vanilla/gcc/java/parse.y:1941
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:879
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:889
-#: ../../../gcc/vanilla/gcc/java/parse.y:905
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:976
-#: ../../../gcc/vanilla/gcc/java/parse.y:1309
-#: ../../../gcc/vanilla/gcc/java/parse.y:1370
-#: ../../../gcc/vanilla/gcc/java/parse.y:1579
-#: ../../../gcc/vanilla/gcc/java/parse.y:1801
-#: ../../../gcc/vanilla/gcc/java/parse.y:1810
-#: ../../../gcc/vanilla/gcc/java/parse.y:1821
-#: ../../../gcc/vanilla/gcc/java/parse.y:1832
-#: ../../../gcc/vanilla/gcc/java/parse.y:1844
-#: ../../../gcc/vanilla/gcc/java/parse.y:1861
-#: ../../../gcc/vanilla/gcc/java/parse.y:1863
-#: ../../../gcc/vanilla/gcc/java/parse.y:1934
-#: ../../../gcc/vanilla/gcc/java/parse.y:2105
-#: ../../../gcc/vanilla/gcc/java/parse.y:2167
-#: ../../../gcc/vanilla/gcc/java/parse.y:2319
-#: ../../../gcc/vanilla/gcc/java/parse.y:2331
-#: ../../../gcc/vanilla/gcc/java/parse.y:2338
-#: ../../../gcc/vanilla/gcc/java/parse.y:2345
-#: ../../../gcc/vanilla/gcc/java/parse.y:2356
-#: ../../../gcc/vanilla/gcc/java/parse.y:2358
-#: ../../../gcc/vanilla/gcc/java/parse.y:2396
-#: ../../../gcc/vanilla/gcc/java/parse.y:2398
-#: ../../../gcc/vanilla/gcc/java/parse.y:2400
-#: ../../../gcc/vanilla/gcc/java/parse.y:2421
-#: ../../../gcc/vanilla/gcc/java/parse.y:2423
-#: ../../../gcc/vanilla/gcc/java/parse.y:2425
-#: ../../../gcc/vanilla/gcc/java/parse.y:2441
-#: ../../../gcc/vanilla/gcc/java/parse.y:2443
-#: ../../../gcc/vanilla/gcc/java/parse.y:2464
-#: ../../../gcc/vanilla/gcc/java/parse.y:2466
-#: ../../../gcc/vanilla/gcc/java/parse.y:2468
-#: ../../../gcc/vanilla/gcc/java/parse.y:2496
-#: ../../../gcc/vanilla/gcc/java/parse.y:2498
-#: ../../../gcc/vanilla/gcc/java/parse.y:2500
-#: ../../../gcc/vanilla/gcc/java/parse.y:2502
-#: ../../../gcc/vanilla/gcc/java/parse.y:2520
-#: ../../../gcc/vanilla/gcc/java/parse.y:2522
-#: ../../../gcc/vanilla/gcc/java/parse.y:2533
-#: ../../../gcc/vanilla/gcc/java/parse.y:2544
-#: ../../../gcc/vanilla/gcc/java/parse.y:2555
-#: ../../../gcc/vanilla/gcc/java/parse.y:2566
-#: ../../../gcc/vanilla/gcc/java/parse.y:2577
-#: ../../../gcc/vanilla/gcc/java/parse.y:2590
-#: ../../../gcc/vanilla/gcc/java/parse.y:2594
-#: ../../../gcc/vanilla/gcc/java/parse.y:2596
-#: ../../../gcc/vanilla/gcc/java/parse.y:2609
-#, fuzzy
-msgid "Missing term"
-msgstr "beginwaarde ontbreekt"
-
-#: ../../../gcc/vanilla/gcc/java/parse.y:991
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
#, fuzzy
msgid "Missing variable initializer"
msgstr "beginwaarde ontbreekt"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1008
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
#, fuzzy
msgid "Invalid declaration"
msgstr "lege declaratie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1014
-#, fuzzy
-msgid "Can't specify array dimension in a declaration"
-msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
-
-#: ../../../gcc/vanilla/gcc/java/parse.y:1016
-#: ../../../gcc/vanilla/gcc/java/parse.y:1092
-#: ../../../gcc/vanilla/gcc/java/parse.y:2142
-#: ../../../gcc/vanilla/gcc/java/parse.y:2164
-#: ../../../gcc/vanilla/gcc/java/parse.y:2168
-#: ../../../gcc/vanilla/gcc/java/parse.y:2203
-#: ../../../gcc/vanilla/gcc/java/parse.y:2280
-#: ../../../gcc/vanilla/gcc/java/parse.y:2290
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
#, fuzzy
msgid "Unbalanced ']'"
msgstr "niet-gebalanceerde `#endif'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1056
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1062
-#: ../../../gcc/vanilla/gcc/java/parse.y:1064
-#: ../../../gcc/vanilla/gcc/java/parse.y:2025
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1067
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1090
-#: ../../../gcc/vanilla/gcc/java/parse.y:1535
-#: ../../../gcc/vanilla/gcc/java/parse.y:1542
-#: ../../../gcc/vanilla/gcc/java/parse.y:1551
-#: ../../../gcc/vanilla/gcc/java/parse.y:1553
-#: ../../../gcc/vanilla/gcc/java/parse.y:1581
-#: ../../../gcc/vanilla/gcc/java/parse.y:1689
-#: ../../../gcc/vanilla/gcc/java/parse.y:1970
-#: ../../../gcc/vanilla/gcc/java/parse.y:2023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1106
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
#, fuzzy
msgid "Missing formal parameter term"
msgstr "parameternaam ontbreekt uit parameterlijst"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1121
-#: ../../../gcc/vanilla/gcc/java/parse.y:1126
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
#, fuzzy
msgid "Missing identifier"
msgstr "beginwaarde ontbreekt"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1146
-#: ../../../gcc/vanilla/gcc/java/parse.y:1155
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1307
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
#, fuzzy
msgid "Invalid interface type"
msgstr "Ongeldig register voor vergelijking"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1499
-#: ../../../gcc/vanilla/gcc/java/parse.y:1668
-#: ../../../gcc/vanilla/gcc/java/parse.y:1670
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1521
-#: ../../../gcc/vanilla/gcc/java/parse.y:1526
-#: ../../../gcc/vanilla/gcc/java/parse.y:1531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
#, fuzzy
msgid "Invalid expression statement"
msgstr "ongeldige expressie als operand"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1549
-#: ../../../gcc/vanilla/gcc/java/parse.y:1577
-#: ../../../gcc/vanilla/gcc/java/parse.y:1617
-#: ../../../gcc/vanilla/gcc/java/parse.y:1685
-#: ../../../gcc/vanilla/gcc/java/parse.y:1753
-#: ../../../gcc/vanilla/gcc/java/parse.y:1859
-#: ../../../gcc/vanilla/gcc/java/parse.y:1927
-#: ../../../gcc/vanilla/gcc/java/parse.y:2017
-#: ../../../gcc/vanilla/gcc/java/parse.y:2019
-#: ../../../gcc/vanilla/gcc/java/parse.y:2027
-#: ../../../gcc/vanilla/gcc/java/parse.y:2263
-#: ../../../gcc/vanilla/gcc/java/parse.y:2265
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1619
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1666
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
#, fuzzy
msgid "Missing or invalid constant expression"
msgstr "overflow in constante expressie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1687
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1726
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
#, fuzzy
msgid "Invalid control expression"
msgstr "Ongeldig token in expressie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1728
-#: ../../../gcc/vanilla/gcc/java/parse.y:1730
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
#, fuzzy
msgid "Invalid update expression"
msgstr "Ongeldig token in expressie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1755
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
#, fuzzy
msgid "Invalid init statement"
msgstr "ongeldige beginwaarde"
-#: ../../../gcc/vanilla/gcc/java/parse.y:1930
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1972
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:1974
-#: ../../../gcc/vanilla/gcc/java/parse.y:1976
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2021
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2140
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2218
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2275
-#: ../../../gcc/vanilla/gcc/java/parse.y:2285
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2389
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
#, fuzzy
msgid "']' expected, invalid type expression"
msgstr "ongeldige waarheidsexpressie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2392
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
#, fuzzy
msgid "Invalid type expression"
msgstr "Ongeldig token in expressie"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2504
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
#, fuzzy
msgid "Invalid reference type"
msgstr "Ongeldige modus voor gen_tst_reg"
-#: ../../../gcc/vanilla/gcc/java/parse.y:2982
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2984
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:2993
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:3053
-#: ../../../gcc/vanilla/gcc/java/parse.y:3055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
"%s"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:6789
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:6860
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
msgstr ""
# 'whitespace' -> 'witruimte'?
-#: ../../../gcc/vanilla/gcc/java/parse.y:12191
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, fuzzy, c-format
msgid "missing static field `%s'"
msgstr "ontbrekende witruimte na getal `%s'"
-#: ../../../gcc/vanilla/gcc/java/parse.y:12196
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
msgid "not a static field `%s'"
msgstr "`%s' is geen static veld"
-#: ../../../gcc/vanilla/gcc/java/parse.y:12239
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr ""
-#: ../../../gcc/vanilla/gcc/java/parse.y:13140
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, fuzzy, c-format
msgid "unregistered operator %s"
msgstr "registernaam niet opgegeven voor `%s'"
# Moet 'signature-string' vertaald worden?
-#: java/typeck.c:566
+#: java/typeck.c:553
msgid "junk at end of signature string"
msgstr "Brol aan einde van signature-string."
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr ""
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr ""
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr ""
@@ -23524,165 +21039,192 @@ msgid "Disable automatic array bounds checking"
msgstr ""
#: java/lang-options.h:34
-msgid "Assume native functions are implemented using JNI"
+msgid "Disable assignability checks for stores into object arrays"
msgstr ""
#: java/lang-options.h:36
-msgid "Set class path and suppress system path"
+msgid "Assume native functions are implemented using JNI"
msgstr ""
#: java/lang-options.h:38
-msgid "Set class path"
+msgid "Replace system path"
msgstr ""
#: java/lang-options.h:40
-msgid "Choose class whose main method should be used"
+msgid "Set class path"
msgstr ""
#: java/lang-options.h:42
-msgid "Choose input encoding (default comes from locale)"
+msgid "Set class path (deprecated: use --classpath instead)"
msgstr ""
#: java/lang-options.h:44
-msgid "Add directory to class path"
+msgid "Choose class whose main method should be used"
msgstr ""
#: java/lang-options.h:46
-msgid "Directory where class files should be written"
+msgid "Choose input encoding (default comes from locale)"
msgstr ""
#: java/lang-options.h:48
-msgid "Warn if modifiers are specified when not necessary"
+msgid "Add directory to class path"
msgstr ""
#: java/lang-options.h:50
-msgid "Warn if deprecated empty statements are found"
+msgid "Directory where class files should be written"
msgstr ""
#: java/lang-options.h:52
-msgid "Warn if .class files are out of date"
+msgid "Warn if modifiers are specified when not necessary"
msgstr ""
#: java/lang-options.h:54
-msgid "Always check for non gcj generated classes archives"
+msgid "Warn if deprecated empty statements are found"
msgstr ""
#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
+msgstr ""
+
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
+msgstr ""
+
+#: java/lang-options.h:60
msgid "Never optimize static class initialization code"
msgstr ""
-#: objc/objc-act.c:606
-msgid "no class name specified as argument to -fconstant-string-class"
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
msgstr ""
-#: objc/objc-act.c:757
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:801
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:939
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr "`%s' kan niet statisch gealloceerd worden"
+
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr ""
-#: objc/objc-act.c:944
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr ""
-#: objc/objc-act.c:996
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr ""
-#: objc/objc-act.c:1018 objc/objc-act.c:5229
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, fuzzy, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc-parse.y:1752 objc/objc-act.c:1279 objc/objc-act.c:5747
-#: objc/objc-act.c:6077 objc/objc-act.c:6126 objc/objc-act.c:6162
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, fuzzy, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "geen eerdere declaratie voor `%s'"
-#: objc/objc-act.c:1304
+#: objc/objc-act.c:1328
#, fuzzy, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "kan niet derefereren, is geen pointer."
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr ""
+
+#: objc/objc-act.c:2364
#, fuzzy, c-format
msgid "cannot find class `%s'"
msgstr "kan %s niet vinden"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, fuzzy, c-format
msgid "class `%s' already exists"
msgstr "veld `%s' heeft al een beginwaarde gekregen"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr ""
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, fuzzy, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr "geneste externe declaratie van `%s'"
-#: objc/objc-act.c:3500 objc/objc-act.c:3517
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr ""
-#: objc/objc-act.c:4710
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr ""
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr ""
-#: objc/objc-act.c:4876
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr ""
-#: objc/objc-act.c:4907 objc/objc-act.c:4933 objc/objc-act.c:4981
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr ""
-#: objc/objc-act.c:4913 objc/objc-act.c:7197
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr ""
-#: objc/objc-act.c:5011
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr ""
-#: objc/objc-act.c:5012 objc/objc-act.c:5056
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr ""
-#: objc/objc-act.c:5029
+#: objc/objc-act.c:5099
#, c-format
msgid "method `%s' not implemented by protocol"
msgstr ""
-#: objc/objc-act.c:5038
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr ""
-#: objc/objc-act.c:5055
+#: objc/objc-act.c:5125
#, fuzzy
msgid "cannot find method"
msgstr "kan `nm' niet vinden"
+#: objc/objc-act.c:5399
+#, fuzzy, c-format
+msgid "undeclared selector `%s'"
+msgstr "ongeldige naam `%s'"
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -23692,108 +21234,108 @@ msgstr "kan `nm' niet vinden"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5298
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr ""
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5678
#, fuzzy, c-format
msgid "duplicate definition of class method `%s'"
msgstr "herhaalde definitie `%s'"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5684
#, fuzzy, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "impliciete declaratie van functie `%s'"
-#: objc/objc-act.c:5590
+#: objc/objc-act.c:5720
#, fuzzy, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "herhaalde definitie `%s'"
-#: objc/objc-act.c:5596
+#: objc/objc-act.c:5726
#, fuzzy, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "impliciete declaratie van functie `%s'"
-#: objc/objc-act.c:5636
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr ""
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr ""
-#: objc/objc-act.c:5769
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr ""
-#: objc/objc-act.c:5779
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr ""
-#: objc/objc-act.c:5816 objc/objc-act.c:5909
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr ""
-#: objc/objc-act.c:5820 objc/objc-act.c:5914
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr ""
-#: objc/objc-act.c:5825 objc/objc-act.c:5919
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr ""
-#: objc/objc-act.c:5963
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr ""
-#: objc/objc-act.c:6021 objc/objc-act.c:8118
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
msgid "`@end' missing in implementation context"
msgstr ""
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr ""
-#: objc/objc-act.c:6091
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr ""
-#: objc/objc-act.c:6106
+#: objc/objc-act.c:6224
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr ""
-#: objc/objc-act.c:6388
+#: objc/objc-act.c:6506
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr ""
-#: objc/objc-act.c:7238
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr ""
-#: objc/objc-act.c:8220 objc/objc-act.c:8236
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr ""
-#: objc-parse.y:2602
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr ""
-#: objc-parse.y:2876
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr ""
@@ -23826,13 +21368,24 @@ msgstr ""
msgid "Specify the name of the class for constant strings"
msgstr "het argument van `asm' is geen constante string"
-#: config/mmix/mmix.h:112
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
msgstr ""
-#: f/lang-specs.h:35 gcc.c:677
-msgid "GNU C does not support -C without using -E"
-msgstr "GNU C ondersteunt -C niet wanneer -E niet gebruikt wordt"
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr ""
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+#, fuzzy
+msgid "shared and mdll are not compatible"
+msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
#: java/lang-specs.h:33
#, fuzzy
@@ -23848,152 +21401,152 @@ msgstr "-fpic en -mapcs-reent zijn niet compatibel"
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: config/mcore/mcore.h:60
-msgid "choose either big or little endian, not both"
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
msgstr ""
-#: config/mcore/mcore.h:63
-msgid "choose either m340 or m210 not both"
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: config/mcore/mcore.h:64
-msgid "the m210 does not have little endian support"
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: config/alpha/freebsd.h:36 config/i386/freebsd-aout.h:227
-#: config/ia64/freebsd.h:24 config/sparc/freebsd.h:31
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "`-p' wordt niet ondersteund; gebruik `-pg' en gprof(1)"
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr ""
-#: ada/lang-specs.h:39 gcc.c:698 java/jvspec.c:74
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
msgstr ""
-#: config/arm/arm.h:213
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "`-p' wordt niet ondersteund; gebruik `-pg' en gprof(1)"
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+#, fuzzy
+msgid "may not use both -m32 and -m64"
+msgstr "-mfp64 en -m4650 mogen niet samen gebruikt worden"
+
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "-mapcs-26 en -mapcs-32 mogen niet samen gebruikt worden"
-#: config/arm/arm.h:225
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "-msoft-float en -mhard_float mogen niet samen gebruikt worden"
-#: config/arm/arm.h:236
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "-mbig-endian en -mlittle-endian mogen niet samen gebruikt worden"
-#: config/arm/arm.h:254
+#: config/i386/sco5.h:195
#, fuzzy
-msgid "incompatible interworking options"
-msgstr "incompatibele operands voor %s"
+msgid "-pg not supported on this platform"
+msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd en -pedantic zijn niet compatibel"
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "-I- twee keer opgegeven"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd en -mxopen zijn niet compatibel"
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
+msgstr ""
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen en -pedantic zijn niet compatibel"
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr "GNU C ondersteunt -C niet wanneer -E niet gebruikt wordt"
-#: config/nextstep.h:161 config/nextstep.h:164
+#: f/lang-specs.h:39 gcc.c:690
#, fuzzy
-msgid "-p profiling is no longer supported. Use -pg instead"
-msgstr "profileren met -p wordt niet meer ondersteund. Gebruik -pg."
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C ondersteunt -C niet wanneer -E niet gebruikt wordt"
-#: gcc.c:846
-msgid "-E required when input is from standard input"
-msgstr "-E is nodig wanneer de invoer van standaardinvoer komt"
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr ""
-#: gcc.c:850
-msgid "compilation of header file requested"
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
msgstr ""
-#: config/i386/cygwin.h:169 config/i386/mingw32.h:69
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr ""
+
+#: config/i386/cygwin.h:115
#, fuzzy
-msgid "shared and mdll are not compatible"
+msgid "mno-cygwin and mno-win32 are not compatible"
msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
-msgstr "-static is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
-msgstr "-shared is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic is niet geldig met -mcoff"
-
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC is niet geldig met -mcoff"
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "ingebouwde functie `%s' wordt op het ogenblik niet ondersteund"
-#: config/dsp16xx/dsp16xx.h:103 config/dsp16xx/dsp16xx.h:112
+#: treelang/lang-specs.h:52
#, fuzzy
-msgid "a -ifile option requires a -map option"
-msgstr "Een -ifile optie heeft een -map optie nodig"
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-#: config/arc/arc.h:59 config/mips/mips.h:1007
-msgid "may not use both -EB and -EL"
-msgstr "-EB en -EL mogen niet samen gebruikt worden"
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "-E is nodig wanneer de invoer van standaardinvoer komt"
-#: config/i860/fx2800.h:290
-msgid "-p option not supported: use -pg instead"
-msgstr "de -p optie wordt niet ondersteund: gebruik -pg"
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr ""
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
-#: config/mips/mips.h:837
+#: config/mips/mips.h:954
#, fuzzy
msgid "-pipe is not supported"
msgstr "-pipe wordt niet ondersteund"
-#: config/mips/mips.h:1003
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "-mfp64 en -msingle-float mogen niet samen gebruikt worden"
-
-#: config/mips/mips.h:1004
-msgid "may not use both -mfp64 and -m4650"
-msgstr "-mfp64 en -m4650 mogen niet samen gebruikt worden"
-
-#: config/mips/mips.h:1006
-#, fuzzy
-msgid "may not use both -mgp32 and -mfp64"
-msgstr "-mfp64 en -m4650 mogen niet samen gebruikt worden"
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "-EB en -EL mogen niet samen gebruikt worden"
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
+#: config/mips/r3900.h:35
#, fuzzy
msgid "-mhard-float not supported"
msgstr "-mhard-float wordt niet ondersteund"
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
+#: config/mips/r3900.h:37
#, fuzzy
msgid "-msingle-float and -msoft-float can not both be specified"
msgstr "-msingle-float en -msoft-float kunnen niet samen gebruikt worden."
-
-#: config/i386/cygwin.h:114
-#, fuzzy
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
-
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
-msgstr "profileren wordt niet ondersteund wanneer -mg gebruikt wordt\n"
diff --git a/gcc/po/rw.po b/gcc/po/rw.po
new file mode 100644
index 00000000000..ca5fa1e1b4d
--- /dev/null
+++ b/gcc/po/rw.po
@@ -0,0 +1,23854 @@
+# Kinyarwanda translations for gcc package.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Steve Murphy <murf@e-tools.com>, 2005.
+# Steve performed initial rough translation from compendium built from translations provided by the following translators:
+# Philibert Ndandali <ndandali@yahoo.fr>, 2005.
+# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
+# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
+# Carole Karema <karemacarole@hotmail.com>, 2005.
+# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
+# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005.
+# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
+# Antoine Bigirimana <antoine@e-tools.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.3.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2005-04-04 10:55-0700\n"
+"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
+"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: attribs.c:185
+#, fuzzy, c-format
+msgid "`%s' attribute directive ignored"
+msgstr "`%s'Ikiranga"
+
+#: attribs.c:193
+#, fuzzy, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "Umubare Bya ingingo kugirango Ikiranga"
+
+#: attribs.c:210
+#, fuzzy, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr "`%s'Ikiranga OYA Gukurikiza Kuri"
+
+#: attribs.c:247
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr "`%s'Ikiranga Kuri Umumaro"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, fuzzy, c-format
+msgid "`%s' attribute ignored"
+msgstr "`%s'Ikiranga"
+
+#: builtins.c:285
+#, fuzzy
+msgid "offset outside bounds of constant string"
+msgstr "Nta- boneza Hanze Bya Ikurikiranyanyuguti"
+
+#: builtins.c:765
+#, fuzzy
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "ISEGONDA Kuri a"
+
+#: builtins.c:772
+#, fuzzy
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr "Sibyo ISEGONDA Kuri ikoresha Zeru"
+
+#: builtins.c:779
+#, fuzzy
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "Kuri a"
+
+#: builtins.c:786
+#, fuzzy
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr "Sibyo Kuri ikoresha Zeru"
+
+#. ??? We used to try and build up a call to the out of line function,
+#. guessing about what registers needed saving etc. This became much
+#. harder with __builtin_va_start, since we don't have a tree for a
+#. call to __builtin_saveregs to fall back on. There was exactly one
+#. port (i860) that used this code, and I'm unconvinced it could actually
+#. handle the general case. So we no longer try to handle anything
+#. weird and make the backend absorb the evil.
+#: builtins.c:2875
+#, fuzzy
+msgid "__builtin_saveregs not supported by this target"
+msgstr "_OYA ku iyi Intego"
+
+#: builtins.c:2917
+#, fuzzy
+msgid "argument of `__builtin_args_info' must be constant"
+msgstr "Bya"
+
+#: builtins.c:2923
+#, fuzzy
+msgid "argument of `__builtin_args_info' out of range"
+msgstr "Bya Inyuma Bya Urutonde"
+
+#: builtins.c:2929
+#, fuzzy
+msgid "missing argument in `__builtin_args_info'"
+msgstr "Ibuze in"
+
+#: builtins.c:2960
+#, fuzzy
+msgid "`va_start' used in function with fixed args"
+msgstr "`in Umumaro Na: BIHAMYE"
+
+#: builtins.c:2979
+#, fuzzy
+msgid "second parameter of `va_start' not last named argument"
+msgstr "ISEGONDA Bya OYA Iheruka"
+
+#. Evidently an out of date version of <stdarg.h>; can't validate
+#. va_start's second argument, but can still work as intended.
+#: builtins.c:2984
+msgid "`__builtin_next_arg' called without an argument"
+msgstr ""
+
+#: builtins.c:3070
+#, fuzzy
+msgid "too many arguments to function `va_start'"
+msgstr "ingingo Kuri Umumaro"
+
+#: builtins.c:3172
+#, fuzzy
+msgid "first argument to `va_arg' not of type `va_list'"
+msgstr "Itangira Kuri OYA Bya Ubwoko"
+
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
+#, fuzzy, c-format
+msgid "`%s' is promoted to `%s' when passed through `...'"
+msgstr "`%s'ni Kuri Ryari: Gihinguranya"
+
+#: builtins.c:3209
+#, fuzzy, c-format
+msgid "(so you should pass `%s' not `%s' to `va_arg')"
+msgstr "(OYA Kuri"
+
+#: builtins.c:3340
+#, fuzzy
+msgid "invalid arg to `__builtin_frame_address'"
+msgstr "Sibyo Kuri"
+
+#: builtins.c:3342
+#, fuzzy
+msgid "invalid arg to `__builtin_return_address'"
+msgstr "Sibyo Kuri"
+
+#: builtins.c:3356
+#, fuzzy
+msgid "unsupported arg to `__builtin_frame_address'"
+msgstr "Kuri"
+
+#: builtins.c:3358
+#, fuzzy
+msgid "unsupported arg to `__builtin_return_address'"
+msgstr "Kuri"
+
+#: builtins.c:3530
+#, fuzzy
+msgid "second arg to `__builtin_expect' must be a constant"
+msgstr "ISEGONDA Kuri a"
+
+#: builtins.c:4028
+#, fuzzy
+msgid "__builtin_longjmp second argument must be 1"
+msgstr "_ISEGONDA 1."
+
+#. just do library call, if unknown builtin
+#: builtins.c:4092 c-common.c:4459
+#, fuzzy, c-format
+msgid "built-in function `%s' not currently supported"
+msgstr "in Umumaro OYA"
+
+#: builtins.c:4165
+#, fuzzy
+msgid "target format does not support infinity"
+msgstr "Intego Imiterere OYA Gushigikira Bidashira"
+
+#: c-common.c:1168
+#, fuzzy, c-format
+msgid "`%s' is not defined outside of function scope"
+msgstr "`%s'ni OYA Hanze Bya Umumaro Ingano:"
+
+#: c-common.c:1189
+#, fuzzy, c-format
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr "Ikurikiranyanyuguti Uburebure ni Biruta i Uburebure C Bya ngombwa Kuri Gushigikira"
+
+#: c-common.c:1247
+#, fuzzy
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "Bya Ikurikiranyanyuguti Na: ni Bitemewe."
+
+#: c-common.c:1343
+#, fuzzy
+msgid "overflow in constant expression"
+msgstr "Byarenze urugero in imvugo"
+
+#: c-common.c:1364
+#, fuzzy
+msgid "integer overflow in expression"
+msgstr "Umubare wuzuye Byarenze urugero in imvugo"
+
+#: c-common.c:1373
+#, fuzzy
+msgid "floating point overflow in expression"
+msgstr "Bihindagurika Akadomo Byarenze urugero in imvugo"
+
+#: c-common.c:1379
+#, fuzzy
+msgid "vector overflow in expression"
+msgstr "Byarenze urugero in imvugo"
+
+#. This detects cases like converting -129 or 256 to unsigned char.
+#: c-common.c:1402
+#, fuzzy
+msgid "large integer implicitly truncated to unsigned type"
+msgstr "Binini Umubare wuzuye Kuri Bitashizweho umukono Ubwoko"
+
+#: c-common.c:1404
+#, fuzzy
+msgid "negative integer implicitly converted to unsigned type"
+msgstr "Umubare wuzuye Kuri Bitashizweho umukono Ubwoko"
+
+#: c-common.c:1452
+#, fuzzy
+msgid "overflow in implicit constant conversion"
+msgstr "Byarenze urugero in Ihindurangero"
+
+#: c-common.c:1600
+#, fuzzy, c-format
+msgid "operation on `%s' may be undefined"
+msgstr "ku Gicurasi kidasobanuye"
+
+#: c-common.c:1891
+#, fuzzy
+msgid "expression statement has incomplete type"
+msgstr "imvugo Inyandiko Ubwoko"
+
+#: c-common.c:1924
+#, fuzzy
+msgid "case label does not reduce to an integer constant"
+msgstr "Akarango OYA Kuri Umubare wuzuye"
+
+#: c-common.c:2228
+#, fuzzy
+msgid "invalid truth-value expression"
+msgstr "Sibyo Agaciro imvugo"
+
+#: c-common.c:2279
+#, fuzzy, c-format
+msgid "invalid operands to binary %s"
+msgstr "Sibyo Kuri Nyabibiri"
+
+#: c-common.c:2513
+#, fuzzy
+msgid "comparison is always false due to limited range of data type"
+msgstr "ni Buri gihe SIBYO Kuri Urutonde Bya Ibyatanzwe Ubwoko"
+
+#: c-common.c:2515
+#, fuzzy
+msgid "comparison is always true due to limited range of data type"
+msgstr "ni Buri gihe NIBYO Kuri Urutonde Bya Ibyatanzwe Ubwoko"
+
+#: c-common.c:2585
+#, fuzzy
+msgid "comparison of unsigned expression >= 0 is always true"
+msgstr "Bya Bitashizweho umukono imvugo 0 ni Buri gihe NIBYO"
+
+#: c-common.c:2594
+#, fuzzy
+msgid "comparison of unsigned expression < 0 is always false"
+msgstr "Bya Bitashizweho umukono imvugo 0 ni Buri gihe SIBYO"
+
+#: c-common.c:2641
+#, fuzzy
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "Mweretsi Bya Ubwoko in"
+
+#: c-common.c:2647
+#, fuzzy
+msgid "pointer to a function used in arithmetic"
+msgstr "Mweretsi Kuri a Umumaro in"
+
+#: c-common.c:2653
+#, fuzzy
+msgid "pointer to member function used in arithmetic"
+msgstr "Mweretsi Kuri Umumaro in"
+
+#: c-common.c:2659
+#, fuzzy
+msgid "pointer to a member used in arithmetic"
+msgstr "Mweretsi Kuri a in"
+
+#: c-common.c:2746 f/com.c:14762
+#, fuzzy
+msgid "struct type value used where scalar is required"
+msgstr "Ubwoko Agaciro ni Bya ngombwa"
+
+#: c-common.c:2750 f/com.c:14766
+#, fuzzy
+msgid "union type value used where scalar is required"
+msgstr "Ihuza Ubwoko Agaciro ni Bya ngombwa"
+
+#: c-common.c:2754 f/com.c:14770
+#, fuzzy
+msgid "array type value used where scalar is required"
+msgstr "Imbonerahamwe Ubwoko Agaciro ni Bya ngombwa"
+
+#: c-common.c:2874 f/com.c:14903
+#, fuzzy
+msgid "suggest parentheses around assignment used as truth value"
+msgstr "Igenera Nka Agaciro"
+
+#: c-common.c:2918 c-common.c:2950
+#, fuzzy
+msgid "invalid use of `restrict'"
+msgstr "Sibyo Gukoresha Bya"
+
+#: c-common.c:3064
+#, fuzzy
+msgid "invalid application of `sizeof' to a function type"
+msgstr "Sibyo Porogaramu Bya Kuri a Umumaro Ubwoko"
+
+#: c-common.c:3074
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "Sibyo Porogaramu Bya Kuri a Ubwoko"
+
+#: c-common.c:3080
+#, fuzzy, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "Sibyo Porogaramu Bya Kuri Ubwoko"
+
+#: c-common.c:3121
+#, fuzzy
+msgid "`__alignof' applied to a bit-field"
+msgstr "`_Byashyizweho Kuri a Umwanya"
+
+#: c-common.c:3618
+#, fuzzy, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "in Umumaro"
+
+#: c-common.c:3787 c-typeck.c:1748
+#, fuzzy, c-format
+msgid "too few arguments to function `%s'"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-common.c:3793 c-typeck.c:1601
+#, fuzzy, c-format
+msgid "too many arguments to function `%s'"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-common.c:3812
+#, fuzzy, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "Bihindagurika Akadomo Kuri Umumaro"
+
+#: c-common.c:4081
+#, fuzzy
+msgid "pointers are not permitted as case values"
+msgstr "OYA Nka Uduciro"
+
+#: c-common.c:4087
+#, fuzzy
+msgid "ISO C++ forbids range expressions in switch statements"
+msgstr "C Urutonde in Hindura"
+
+#: c-common.c:4089
+#, fuzzy
+msgid "ISO C forbids range expressions in switch statements"
+msgstr "C Urutonde in Hindura"
+
+#: c-common.c:4119
+#, fuzzy
+msgid "empty range specified"
+msgstr "ubusa Urutonde"
+
+#: c-common.c:4170
+#, fuzzy
+msgid "duplicate (or overlapping) case value"
+msgstr "Gusubiramo Cyangwa iyorosa Agaciro"
+
+#: c-common.c:4172
+#, fuzzy
+msgid "this is the first entry overlapping that value"
+msgstr "iyi ni i Itangira Icyinjijwe iyorosa Agaciro"
+
+#: c-common.c:4176
+#, fuzzy
+msgid "duplicate case value"
+msgstr "Gusubiramo Agaciro"
+
+#: c-common.c:4177
+msgid "previously used here"
+msgstr ""
+
+#: c-common.c:4181
+#, fuzzy
+msgid "multiple default labels in one switch"
+msgstr "Igikubo Mburabuzi Uturango... in Hindura"
+
+#: c-common.c:4182
+#, fuzzy
+msgid "this is the first default label"
+msgstr "iyi ni i Itangira Mburabuzi Akarango"
+
+#: c-common.c:4210
+#, fuzzy
+msgid "ISO C++ forbids taking the address of a label"
+msgstr "C i Aderesi Bya a Akarango"
+
+#: c-common.c:4212
+#, fuzzy
+msgid "ISO C forbids taking the address of a label"
+msgstr "C i Aderesi Bya a Akarango"
+
+#: c-common.c:5235
+#, fuzzy, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "Bya"
+
+#: c-common.c:5654
+#, fuzzy, c-format
+msgid "unknown machine mode `%s'"
+msgstr "Kitazwi Ubwoko"
+
+#: c-common.c:5657
+#, fuzzy, c-format
+msgid "no data type for mode `%s'"
+msgstr "Oya Ibyatanzwe Ubwoko kugirango Ubwoko"
+
+#: c-common.c:5666 c-common.c:6316
+#, fuzzy, c-format
+msgid "unable to emulate '%s'"
+msgstr "Kuri"
+
+#: c-common.c:5702
+#, fuzzy
+msgid "section attribute cannot be specified for local variables"
+msgstr "Icyiciro Ikiranga kugirango Ibihinduka"
+
+#: c-common.c:5713
+#, fuzzy, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "Icyiciro Bya Na: Ibanjirije"
+
+#: c-common.c:5722
+#, fuzzy, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "Icyiciro Ikiranga OYA kugirango"
+
+#: c-common.c:5729
+#, fuzzy
+msgid "section attributes are not supported for this target"
+msgstr "Icyiciro Ibiranga OYA kugirango iyi Intego"
+
+#: c-common.c:5771
+#, fuzzy
+msgid "requested alignment is not a constant"
+msgstr "Itunganya ni OYA a"
+
+#: c-common.c:5776
+#, fuzzy
+msgid "requested alignment is not a power of 2"
+msgstr "Itunganya ni OYA a UMWIKUBE Bya 2."
+
+#: c-common.c:5781
+#, fuzzy
+msgid "requested alignment is too large"
+msgstr "Itunganya ni Binini"
+
+#: c-common.c:5808
+#, fuzzy, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "Itunganya Gicurasi OYA kugirango"
+
+#: c-common.c:5853
+#, fuzzy, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "`%s'Byombi Na Nka Irihimbano"
+
+#: c-common.c:5863
+#, fuzzy
+msgid "alias arg not a string"
+msgstr "Irihimbano OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:5910
+#, fuzzy
+msgid "visibility arg not a string"
+msgstr "Ukugaragara OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:5919
+#, fuzzy
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "Ukugaragara Bya Mburabuzi gihishwe Birinzwe Cyangwa By'imbere"
+
+#: c-common.c:5953
+#, fuzzy
+msgid "tls_model arg not a string"
+msgstr "OYA a Ikurikiranyanyuguti"
+
+#: c-common.c:5962
+#, fuzzy
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "Bya Cyangwa"
+
+#: c-common.c:5987 c-common.c:6043
+#, fuzzy, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "`%s'Ikiranga Kuri Imimaro"
+
+#: c-common.c:5994 c-common.c:6050
+#, fuzzy, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "Gushyiraho Ikiranga Nyuma Insobanuro"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "OYA Ikiranga"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "OYA a Umumaro"
+
+#: c-common.c:6183
+#, fuzzy, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "`%s'Ikiranga kugirango"
+
+#: c-common.c:6248
+#, fuzzy, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "Sibyo Ubwoko kugirango Ikiranga"
+
+#: c-common.c:6272 c-common.c:6304
+#, fuzzy
+msgid "no vector mode with the size and type specified could be found"
+msgstr "Oya Ubwoko Na: i Ingano Na Ubwoko Byabonetse"
+
+#: c-common.c:6403
+#, fuzzy
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "Ikiranga ingingo ku a"
+
+#: c-common.c:6418
+#, fuzzy, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "Sibyo Umubare"
+
+#: c-common.c:6437
+#, fuzzy, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "Na: Inyuma Bya Urutonde Umubare"
+
+#: c-common.c:6445
+#, fuzzy, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "Indango Mweretsi"
+
+#: c-common.c:6531
+#, fuzzy, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "NTAGIHARI NTAGIHARI Bya ngombwa"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
+#, fuzzy
+msgid "void value not ignored as it ought to be"
+msgstr "Agaciro OYA Nka Kuri"
+
+#: c-convert.c:112 java/typeck.c:150
+#, fuzzy
+msgid "conversion to non-scalar type requested"
+msgstr "Ihindurangero Kuri Ubwoko"
+
+#: c-decl.c:340
+#, fuzzy, c-format
+msgid "array `%s' assumed to have one element"
+msgstr "Imbonerahamwe Kuri Ikigize:"
+
+#: c-decl.c:526
+#, fuzzy, c-format
+msgid "`struct %s' incomplete in scope ending here"
+msgstr "`in Ingano:"
+
+#: c-decl.c:529
+#, fuzzy, c-format
+msgid "`union %s' incomplete in scope ending here"
+msgstr "`Ihuza in Ingano:"
+
+#: c-decl.c:532
+#, fuzzy, c-format
+msgid "`enum %s' incomplete in scope ending here"
+msgstr "`in Ingano:"
+
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
+#, fuzzy, c-format
+msgid "label `%s' used but not defined"
+msgstr "Akarango OYA"
+
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
+#, fuzzy, c-format
+msgid "label `%s' defined but not used"
+msgstr "Akarango OYA"
+
+#: c-decl.c:893 cp/decl.c:3335
+#, fuzzy, c-format
+msgid "function `%s' redeclared as inline"
+msgstr "Umumaro Nka Mumurongo"
+
+#: c-decl.c:895 cp/decl.c:3337
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "Ibanjirije Bya Umumaro Na: Ikiranga"
+
+#: c-decl.c:902 cp/decl.c:3344
+#, fuzzy, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr "Umumaro Na: Ikiranga"
+
+#: c-decl.c:904 cp/decl.c:3346
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "Ibanjirije Bya Umumaro Mumurongo"
+
+#: c-decl.c:933 c-decl.c:979
+#, fuzzy, c-format
+msgid "shadowing built-in function `%s'"
+msgstr "Ishyiraho ry'igicucu in Umumaro"
+
+#: c-decl.c:935
+#, fuzzy, c-format
+msgid "shadowing library function `%s'"
+msgstr "Ishyiraho ry'igicucu Isomero Umumaro"
+
+#: c-decl.c:941
+#, fuzzy, c-format
+msgid "library function `%s' declared as non-function"
+msgstr "Isomero Umumaro Nka Umumaro"
+
+#: c-decl.c:945 c-decl.c:948
+#, fuzzy, c-format
+msgid "built-in function `%s' declared as non-function"
+msgstr "in Umumaro Nka Umumaro"
+
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
+#, fuzzy, c-format
+msgid "`%s' redeclared as different kind of symbol"
+msgstr "`%s'Nka Bya IKIMENYETSO"
+
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
+#, fuzzy, c-format
+msgid "previous declaration of `%s'"
+msgstr "Ibanjirije Bya"
+
+#. If types don't match for a built-in, throw away the built-in.
+#: c-decl.c:1048
+#, fuzzy, c-format
+msgid "conflicting types for built-in function `%s'"
+msgstr "kugirango in Umumaro"
+
+#: c-decl.c:1091 c-decl.c:1110
+#, fuzzy, c-format
+msgid "conflicting types for `%s'"
+msgstr "kugirango"
+
+#: c-decl.c:1133
+#, fuzzy
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr "a Urutonde Na: BIHUYE ubusa Izina: Urutonde"
+
+#: c-decl.c:1139
+#, fuzzy
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr "Ubwoko a Mburabuzi BIHUYE ubusa Izina: Urutonde"
+
+#: c-decl.c:1157
+#, fuzzy, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "Urudodo Bya Urudodo"
+
+#: c-decl.c:1164
+#, fuzzy, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "Urudodo Bya Urudodo"
+
+#: c-decl.c:1175 c-decl.c:1198
+#, fuzzy, c-format
+msgid "redefinition of `%s'"
+msgstr "Bya"
+
+#: c-decl.c:1178
+#, fuzzy, c-format
+msgid "redeclaration of `%s'"
+msgstr "Bya"
+
+#: c-decl.c:1181
+#, fuzzy, c-format
+msgid "conflicting declarations of `%s'"
+msgstr "Bya"
+
+#: c-decl.c:1225
+#, fuzzy, c-format
+msgid "prototype for `%s' follows"
+msgstr "kugirango"
+
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
+#, fuzzy
+msgid "non-prototype definition here"
+msgstr "Insobanuro"
+
+#: c-decl.c:1233
+#, fuzzy, c-format
+msgid "prototype for `%s' follows and number of arguments doesn't match"
+msgstr "kugirango Na Umubare Bya ingingo BIHUYE"
+
+#: c-decl.c:1243
+#, fuzzy, c-format
+msgid "prototype for `%s' follows and argument %d doesn't match"
+msgstr "kugirango Na BIHUYE"
+
+#: c-decl.c:1261
+#, fuzzy, c-format
+msgid "`%s' declared inline after being called"
+msgstr "`%s'Mumurongo Nyuma"
+
+#: c-decl.c:1267
+#, fuzzy, c-format
+msgid "`%s' declared inline after its definition"
+msgstr "`%s'Mumurongo Nyuma Insobanuro"
+
+#: c-decl.c:1274
+#, fuzzy, c-format
+msgid "static declaration for `%s' follows non-static"
+msgstr "kugirango"
+
+#: c-decl.c:1282
+#, fuzzy, c-format
+msgid "non-static declaration for `%s' follows static"
+msgstr "kugirango"
+
+#: c-decl.c:1289
+#, fuzzy, c-format
+msgid "const declaration for `%s' follows non-const"
+msgstr "kugirango"
+
+#: c-decl.c:1296
+#, fuzzy, c-format
+msgid "type qualifiers for `%s' conflict with previous decl"
+msgstr "Ubwoko kugirango Na: Ibanjirije"
+
+#: c-decl.c:1309
+#, fuzzy, c-format
+msgid "redundant redeclaration of `%s' in same scope"
+msgstr "Bya in Ingano:"
+
+#: c-decl.c:1619 java/decl.c:1102
+#, fuzzy, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr "Bya a"
+
+#: c-decl.c:1622 java/decl.c:1105
+#, fuzzy, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr "Bya a IKIMENYETSO Bivuye i Urutonde"
+
+#: c-decl.c:1643 cp/decl.c:4479
+#, fuzzy
+msgid "a parameter"
+msgstr "a"
+
+#: c-decl.c:1645 cp/decl.c:4496
+#, fuzzy
+msgid "a previous local"
+msgstr "a Ibanjirije"
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+#, fuzzy
+msgid "a global declaration"
+msgstr "a"
+
+#: c-decl.c:1693
+#, fuzzy, c-format
+msgid "nested extern declaration of `%s'"
+msgstr "Bya"
+
+#: c-decl.c:1712 java/decl.c:1055
+#, fuzzy, c-format
+msgid "`%s' used prior to declaration"
+msgstr "`%s'Kuri"
+
+#: c-decl.c:1726 c-decl.c:1901
+#, fuzzy, c-format
+msgid "`%s' was declared implicitly `extern' and later `static'"
+msgstr "`%s'Na"
+
+#: c-decl.c:1829 cp/decl.c:4336
+#, fuzzy
+msgid "type mismatch with previous external decl"
+msgstr "Ubwoko Na: Ibanjirije external"
+
+#: c-decl.c:1830
+#, fuzzy, c-format
+msgid "previous external decl of `%s'"
+msgstr "Ibanjirije external Bya"
+
+#: c-decl.c:1843
+#, fuzzy
+msgid "type mismatch with previous implicit declaration"
+msgstr "Ubwoko Na: Ibanjirije"
+
+#: c-decl.c:1845
+#, fuzzy, c-format
+msgid "previous implicit declaration of `%s'"
+msgstr "Ibanjirije Bya"
+
+#: c-decl.c:1880
+#, fuzzy, c-format
+msgid "`%s' was previously implicitly declared to return `int'"
+msgstr "`%s'Kuri Garuka"
+
+#: c-decl.c:1905
+#, fuzzy, c-format
+msgid "`%s' was declared `extern' and later `static'"
+msgstr "`%s'Na"
+
+#: c-decl.c:1929
+#, fuzzy, c-format
+msgid "extern declaration of `%s' doesn't match global one"
+msgstr "Bya BIHUYE"
+
+#: c-decl.c:1971
+#, fuzzy, c-format
+msgid "`%s' locally external but globally static"
+msgstr "`%s'external"
+
+#: c-decl.c:2095
+#, fuzzy, c-format
+msgid "function `%s' was previously declared within a block"
+msgstr "Umumaro muri a Funga"
+
+#: c-decl.c:2115 c-decl.c:2117
+#, fuzzy, c-format
+msgid "implicit declaration of function `%s'"
+msgstr "Bya Umumaro"
+
+#: c-decl.c:2196
+#, fuzzy, c-format
+msgid "label %s referenced outside of any function"
+msgstr "Akarango Hanze Bya Umumaro"
+
+#: c-decl.c:2253
+#, fuzzy, c-format
+msgid "duplicate label declaration `%s'"
+msgstr "Gusubiramo Akarango"
+
+#: c-decl.c:2256
+#, fuzzy
+msgid "this is a previous declaration"
+msgstr "iyi ni a Ibanjirije"
+
+#: c-decl.c:2679
+#, fuzzy
+msgid "unnamed struct/union that defines no instances"
+msgstr "Kitiswe Ihuza Oya Ingero"
+
+#: c-decl.c:2698
+#, fuzzy
+msgid "useless keyword or type name in empty declaration"
+msgstr "Ijambo- banze Cyangwa Ubwoko Izina: in ubusa"
+
+#: c-decl.c:2705
+#, fuzzy
+msgid "two types specified in one empty declaration"
+msgstr "in ubusa"
+
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
+#, fuzzy
+msgid "empty declaration"
+msgstr "ubusa"
+
+#: c-decl.c:2740
+#, fuzzy
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "OYA Gushigikira Cyangwa Ubwoko in Imbonerahamwe"
+
+#: c-decl.c:2742
+#, fuzzy
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "OYA Gushigikira Imbonerahamwe"
+
+#: c-decl.c:2745
+#, fuzzy
+msgid "GCC does not yet properly implement `[*]' array declarators"
+msgstr "OYA Imbonerahamwe"
+
+#: c-decl.c:2764
+#, fuzzy
+msgid "static or type qualifiers in abstract declarator"
+msgstr "Cyangwa Ubwoko in Incamake"
+
+#: c-decl.c:2838
+#, fuzzy, c-format
+msgid "`%s' is usually a function"
+msgstr "`%s'ni a Umumaro"
+
+#: c-decl.c:2847
+#, fuzzy, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "ni Gukoresha"
+
+#: c-decl.c:2853
+#, fuzzy, c-format
+msgid "function `%s' is initialized like a variable"
+msgstr "Umumaro ni nka a IMPINDURAGACIRO"
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c-decl.c:2860
+#, fuzzy, c-format
+msgid "parameter `%s' is initialized"
+msgstr "ni"
+
+#: c-decl.c:2880 c-typeck.c:4895
+#, fuzzy
+msgid "variable-sized object may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Gicurasi OYA"
+
+#: c-decl.c:2886
+#, fuzzy, c-format
+msgid "variable `%s' has initializer but incomplete type"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: c-decl.c:2892
+#, fuzzy, c-format
+msgid "elements of array `%s' have incomplete type"
+msgstr "Ibintu Bya Imbonerahamwe Ubwoko"
+
+#: c-decl.c:2905
+#, fuzzy, c-format
+msgid "declaration of `%s' has `extern' and is initialized"
+msgstr "Bya Na ni"
+
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, fuzzy, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr "Mumurongo Umumaro Ikiranga"
+
+#: c-decl.c:3028
+#, fuzzy, c-format
+msgid "initializer fails to determine size of `%s'"
+msgstr "Kuri Ingano Bya"
+
+#: c-decl.c:3033
+#, fuzzy, c-format
+msgid "array size missing in `%s'"
+msgstr "Imbonerahamwe Ingano Ibuze in"
+
+#: c-decl.c:3049
+#, fuzzy, c-format
+msgid "zero or negative size array `%s'"
+msgstr "Zeru Cyangwa Ingano Imbonerahamwe"
+
+#: c-decl.c:3077
+#, fuzzy, c-format
+msgid "storage size of `%s' isn't known"
+msgstr "Ingano Bya si"
+
+#: c-decl.c:3087
+#, fuzzy, c-format
+msgid "storage size of `%s' isn't constant"
+msgstr "Ingano Bya si"
+
+#: c-decl.c:3147
+#, fuzzy, c-format
+msgid "ignoring asm-specifier for non-static local variable `%s'"
+msgstr "kugirango IMPINDURAGACIRO"
+
+#: c-decl.c:3247
+#, fuzzy, c-format
+msgid "ISO C forbids parameter `%s' shadowing typedef"
+msgstr "C Ishyiraho ry'igicucu"
+
+#: c-decl.c:3592 cp/decl.c:10880
+#, fuzzy
+msgid "`long long long' is too long for GCC"
+msgstr "`ni kugirango"
+
+#: c-decl.c:3597
+#, fuzzy
+msgid "ISO C90 does not support `long long'"
+msgstr "OYA Gushigikira"
+
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
+#, fuzzy, c-format
+msgid "duplicate `%s'"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3619 cp/decl.c:10892
+#, fuzzy
+msgid "`__thread' before `extern'"
+msgstr "`_Mbere"
+
+#: c-decl.c:3621 cp/decl.c:10894
+#, fuzzy
+msgid "`__thread' before `static'"
+msgstr "`_Mbere"
+
+#: c-decl.c:3629 cp/decl.c:10921
+#, fuzzy, c-format
+msgid "two or more data types in declaration of `%s'"
+msgstr "Cyangwa Birenzeho Ibyatanzwe in Bya"
+
+#: c-decl.c:3649 cp/decl.c:10926
+#, fuzzy, c-format
+msgid "`%s' fails to be a typedef or built in type"
+msgstr "`%s'Kuri a Cyangwa in Ubwoko"
+
+#: c-decl.c:3688
+#, fuzzy, c-format
+msgid "type defaults to `int' in declaration of `%s'"
+msgstr "Ubwoko Kuri in Bya"
+
+#: c-decl.c:3717
+#, fuzzy, c-format
+msgid "both long and short specified for `%s'"
+msgstr "Byombi Na kugirango"
+
+#: c-decl.c:3721 cp/decl.c:11041
+#, fuzzy, c-format
+msgid "long or short specified with char for `%s'"
+msgstr "Cyangwa Na: INYUGUTI kugirango"
+
+#: c-decl.c:3728 cp/decl.c:11045
+#, fuzzy, c-format
+msgid "long or short specified with floating type for `%s'"
+msgstr "Cyangwa Na: Bihindagurika Ubwoko kugirango"
+
+#: c-decl.c:3731
+#, fuzzy
+msgid "the only valid combination is `long double'"
+msgstr "i Byemewe Ivanga ni"
+
+#: c-decl.c:3737
+#, fuzzy, c-format
+msgid "both signed and unsigned specified for `%s'"
+msgstr "Byombi Na Bitashizweho umukono kugirango"
+
+#: c-decl.c:3739 cp/decl.c:11034
+#, fuzzy, c-format
+msgid "long, short, signed or unsigned invalid for `%s'"
+msgstr "Cyangwa Bitashizweho umukono Sibyo kugirango"
+
+#: c-decl.c:3745 cp/decl.c:11054
+#, fuzzy, c-format
+msgid "long, short, signed or unsigned used invalidly for `%s'"
+msgstr "Cyangwa Bitashizweho umukono kugirango"
+
+#: c-decl.c:3763 cp/decl.c:11075
+#, fuzzy, c-format
+msgid "complex invalid for `%s'"
+msgstr "ITSINDA RY'IMIBARE C Sibyo kugirango"
+
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
+msgstr "OYA Gushigikira ITSINDA RY'IMIBARE C"
+
+#: c-decl.c:3817
+#, fuzzy
+msgid "ISO C does not support plain `complex' meaning `double complex'"
+msgstr "C OYA Gushigikira Byuzuye Igisobanuro MAHARAKUBIRI"
+
+#: c-decl.c:3823 c-decl.c:3835
+#, fuzzy
+msgid "ISO C does not support complex integer types"
+msgstr "C OYA Gushigikira ITSINDA RY'IMIBARE C Umubare wuzuye"
+
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
+#, fuzzy
+msgid "duplicate `const'"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
+#, fuzzy
+msgid "duplicate `restrict'"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
+#, fuzzy
+msgid "duplicate `volatile'"
+msgstr "Gusubiramo"
+
+#: c-decl.c:3882 cp/decl.c:11238
+#, fuzzy, c-format
+msgid "multiple storage classes in declaration of `%s'"
+msgstr "Igikubo Inzego in Bya"
+
+#: c-decl.c:3892
+#, fuzzy
+msgid "function definition declared `auto'"
+msgstr "Umumaro Insobanuro"
+
+#: c-decl.c:3894
+#, fuzzy
+msgid "function definition declared `register'"
+msgstr "Umumaro Insobanuro"
+
+#: c-decl.c:3896
+#, fuzzy
+msgid "function definition declared `typedef'"
+msgstr "Umumaro Insobanuro"
+
+#: c-decl.c:3898
+#, fuzzy
+msgid "function definition declared `__thread'"
+msgstr "Umumaro Insobanuro"
+
+#: c-decl.c:3911
+#, fuzzy, c-format
+msgid "storage class specified for structure field `%s'"
+msgstr "ishuri kugirango Imiterere Umwanya"
+
+#: c-decl.c:3915 cp/decl.c:11285
+#, fuzzy, c-format
+msgid "storage class specified for parameter `%s'"
+msgstr "ishuri kugirango"
+
+#: c-decl.c:3918 cp/decl.c:11287
+#, fuzzy
+msgid "storage class specified for typename"
+msgstr "ishuri kugirango"
+
+#: c-decl.c:3930 cp/decl.c:11302
+#, fuzzy, c-format
+msgid "`%s' initialized and declared `extern'"
+msgstr "`%s'Na"
+
+#: c-decl.c:3932 cp/decl.c:11305
+#, fuzzy, c-format
+msgid "`%s' has both `extern' and initializer"
+msgstr "`%s'Byombi Na"
+
+#: c-decl.c:3937 cp/decl.c:11313
+#, fuzzy, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "Hejuru: urwego Bya"
+
+#: c-decl.c:3942 cp/decl.c:11309
+#, fuzzy, c-format
+msgid "nested function `%s' declared `extern'"
+msgstr "Umumaro"
+
+#: c-decl.c:3948 cp/decl.c:11319
+#, fuzzy, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "Umumaro Ingano: Ikiyega Na"
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c-decl.c:3987 c-decl.c:4188
+#, fuzzy
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr "Cyangwa Ubwoko in Imbonerahamwe"
+
+#: c-decl.c:4031
+#, fuzzy, c-format
+msgid "declaration of `%s' as array of voids"
+msgstr "Bya Nka Imbonerahamwe Bya"
+
+#: c-decl.c:4037
+#, fuzzy, c-format
+msgid "declaration of `%s' as array of functions"
+msgstr "Bya Nka Imbonerahamwe Bya Imimaro"
+
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "Sibyo Gukoresha Bya Imiterere Na: Imbonerahamwe"
+
+#: c-decl.c:4061
+#, fuzzy, c-format
+msgid "size of array `%s' has non-integer type"
+msgstr "Ingano Bya Imbonerahamwe Umubare wuzuye Ubwoko"
+
+#: c-decl.c:4066
+#, fuzzy, c-format
+msgid "ISO C forbids zero-size array `%s'"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: c-decl.c:4073
+#, fuzzy, c-format
+msgid "size of array `%s' is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: c-decl.c:4086
+#, fuzzy, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "Imbonerahamwe bya Ingano"
+
+#: c-decl.c:4089
+#, fuzzy, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
+#, fuzzy, c-format
+msgid "size of array `%s' is too large"
+msgstr "Ingano Bya Imbonerahamwe ni Binini"
+
+#: c-decl.c:4145
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
+msgstr "OYA Gushigikira Imbonerahamwe"
+
+#: c-decl.c:4155
+#, fuzzy
+msgid "array type has incomplete element type"
+msgstr "Imbonerahamwe Ubwoko Ikigize: Ubwoko"
+
+#: c-decl.c:4162 c-decl.c:4392
+#, fuzzy
+msgid "ISO C forbids const or volatile function types"
+msgstr "C Cyangwa Umumaro"
+
+#: c-decl.c:4208 cp/decl.c:11445
+#, fuzzy, c-format
+msgid "`%s' declared as function returning a function"
+msgstr "`%s'Nka Umumaro a Umumaro"
+
+#: c-decl.c:4213 cp/decl.c:11450
+#, fuzzy, c-format
+msgid "`%s' declared as function returning an array"
+msgstr "`%s'Nka Umumaro Imbonerahamwe"
+
+#: c-decl.c:4241
+#, fuzzy
+msgid "ISO C forbids qualified void function return type"
+msgstr "C Umumaro Garuka Ubwoko"
+
+#: c-decl.c:4245
+#, fuzzy
+msgid "type qualifiers ignored on function return type"
+msgstr "Ubwoko ku Umumaro Garuka Ubwoko"
+
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
+#, fuzzy
+msgid "ISO C forbids qualified function types"
+msgstr "C Umumaro"
+
+#: c-decl.c:4314 cp/decl.c:11684
+#, fuzzy
+msgid "invalid type modifier within pointer declarator"
+msgstr "Sibyo Ubwoko muri Mweretsi"
+
+#: c-decl.c:4412 cp/decl.c:12182
+#, fuzzy, c-format
+msgid "variable or field `%s' declared void"
+msgstr "IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: c-decl.c:4445
+#, fuzzy
+msgid "attributes in parameter array declarator ignored"
+msgstr "Ibiranga in Imbonerahamwe"
+
+#: c-decl.c:4470
+#, fuzzy
+msgid "invalid type modifier within array declarator"
+msgstr "Sibyo Ubwoko muri Imbonerahamwe"
+
+#: c-decl.c:4515
+#, fuzzy, c-format
+msgid "field `%s' declared as a function"
+msgstr "Umwanya Nka a Umumaro"
+
+#: c-decl.c:4521
+#, fuzzy, c-format
+msgid "field `%s' has incomplete type"
+msgstr "Umwanya Ubwoko"
+
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
+#, fuzzy, c-format
+msgid "invalid storage class for function `%s'"
+msgstr "Sibyo ishuri kugirango Umumaro"
+
+#: c-decl.c:4579
+#, fuzzy
+msgid "`noreturn' function returns non-void value"
+msgstr "`Umumaro Agaciro"
+
+#: c-decl.c:4594
+#, fuzzy
+msgid "cannot inline function `main'"
+msgstr "Mumurongo Umumaro"
+
+#: c-decl.c:4649
+#, fuzzy, c-format
+msgid "variable `%s' declared `inline'"
+msgstr "IMPINDURAGACIRO"
+
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "Urudodo OYA kugirango iyi Intego"
+
+#: c-decl.c:4732 c-decl.c:5880
+#, fuzzy
+msgid "function declaration isn't a prototype"
+msgstr "Umumaro si a"
+
+#: c-decl.c:4738
+#, fuzzy
+msgid "parameter names (without types) in function declaration"
+msgstr "Amazina in Umumaro"
+
+#: c-decl.c:4770 c-decl.c:6250
+#, fuzzy, c-format
+msgid "parameter `%s' has incomplete type"
+msgstr "Ubwoko"
+
+#: c-decl.c:4773
+#, fuzzy
+msgid "parameter has incomplete type"
+msgstr "Ubwoko"
+
+#: c-decl.c:4794
+#, fuzzy, c-format
+msgid "parameter `%s' points to incomplete type"
+msgstr "Utudomo Kuri Ubwoko"
+
+#: c-decl.c:4797
+#, fuzzy
+msgid "parameter points to incomplete type"
+msgstr "Utudomo Kuri Ubwoko"
+
+#: c-decl.c:4862
+#, fuzzy, c-format
+msgid "parameter `%s' has just a forward declaration"
+msgstr "a Imbere"
+
+#: c-decl.c:4903
+#, fuzzy
+msgid "`void' in parameter list must be the entire list"
+msgstr "`in Urutonde i Urutonde"
+
+#: c-decl.c:4934
+#, fuzzy, c-format
+msgid "`struct %s' declared inside parameter list"
+msgstr "`Mo Imbere Urutonde"
+
+#: c-decl.c:4937
+#, fuzzy, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr "`Ihuza Mo Imbere Urutonde"
+
+#: c-decl.c:4940
+#, fuzzy, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr "`Mo Imbere Urutonde"
+
+#: c-decl.c:4947
+#, fuzzy
+msgid "anonymous struct declared inside parameter list"
+msgstr "Mo Imbere Urutonde"
+
+#: c-decl.c:4949
+#, fuzzy
+msgid "anonymous union declared inside parameter list"
+msgstr "Ihuza Mo Imbere Urutonde"
+
+#: c-decl.c:4951
+#, fuzzy
+msgid "anonymous enum declared inside parameter list"
+msgstr "Mo Imbere Urutonde"
+
+#: c-decl.c:4955
+#, fuzzy
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "Ingano: ni iyi Insobanuro Cyangwa ni OYA"
+
+#: c-decl.c:5032
+#, fuzzy, c-format
+msgid "redefinition of `union %s'"
+msgstr "Bya Ihuza"
+
+#: c-decl.c:5034
+#, fuzzy, c-format
+msgid "redefinition of `struct %s'"
+msgstr "Bya"
+
+#: c-decl.c:5105 cp/decl.c:7532
+#, fuzzy
+msgid "declaration does not declare anything"
+msgstr "OYA"
+
+#: c-decl.c:5169 c-decl.c:5172
+#, fuzzy, c-format
+msgid "%s defined inside parms"
+msgstr "%sMo Imbere"
+
+# starmath/source\smres.src:RID_TOOLBOXWINDOW.3.RID_XUNIONY.text
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
+#, fuzzy
+msgid "union"
+msgstr "Ihuza"
+
+# sc/source\ui\formdlg\formdlgs.src:RID_SCTAB_STRUCT.FT_STRUCT.text
+#: c-decl.c:5170 c-decl.c:5173
+#, fuzzy
+msgid "structure"
+msgstr "Imiterere"
+
+#: c-decl.c:5183
+#, fuzzy, c-format
+msgid "%s has no %s"
+msgstr "%sOya"
+
+#: c-decl.c:5184
+msgid "struct"
+msgstr ""
+
+#: c-decl.c:5185
+msgid "named members"
+msgstr ""
+
+#: c-decl.c:5185
+msgid "members"
+msgstr ""
+
+#: c-decl.c:5224
+#, fuzzy, c-format
+msgid "nested redefinition of `%s'"
+msgstr "Bya"
+
+#: c-decl.c:5237
+#, fuzzy, c-format
+msgid "bit-field `%s' width not an integer constant"
+msgstr "Umwanya Ubugari OYA Umubare wuzuye"
+
+#: c-decl.c:5248
+#, fuzzy, c-format
+msgid "bit-field `%s' has invalid type"
+msgstr "Umwanya Sibyo Ubwoko"
+
+#: c-decl.c:5260
+#, fuzzy, c-format
+msgid "bit-field `%s' type invalid in ISO C"
+msgstr "Umwanya Ubwoko Sibyo in C"
+
+#: c-decl.c:5271
+#, fuzzy, c-format
+msgid "negative width in bit-field `%s'"
+msgstr "Ubugari in Umwanya"
+
+#: c-decl.c:5273
+#, fuzzy, c-format
+msgid "width of `%s' exceeds its type"
+msgstr "Ubugari Bya Ubwoko"
+
+#: c-decl.c:5275
+#, fuzzy, c-format
+msgid "zero width for bit-field `%s'"
+msgstr "Zeru Ubugari kugirango Umwanya"
+
+#: c-decl.c:5289
+#, fuzzy, c-format
+msgid "`%s' is narrower than values of its type"
+msgstr "`%s'ni Uduciro Bya Ubwoko"
+
+#: c-decl.c:5323
+#, fuzzy
+msgid "flexible array member in union"
+msgstr "Imbonerahamwe in Ihuza"
+
+#: c-decl.c:5325
+#, fuzzy
+msgid "flexible array member not at end of struct"
+msgstr "Imbonerahamwe OYA ku Impera Bya"
+
+#: c-decl.c:5327
+#, fuzzy
+msgid "flexible array member in otherwise empty struct"
+msgstr "Imbonerahamwe in ubusa"
+
+#: c-decl.c:5357
+#, fuzzy, c-format
+msgid "duplicate member `%s'"
+msgstr "Gusubiramo"
+
+#: c-decl.c:5448
+#, fuzzy
+msgid "union cannot be made transparent"
+msgstr "Ihuza Bibonerana"
+
+#. This enum is a named one that has been declared already.
+#: c-decl.c:5558
+#, fuzzy, c-format
+msgid "redeclaration of `enum %s'"
+msgstr "Bya"
+
+#: c-decl.c:5592
+#, fuzzy
+msgid "enum defined inside parms"
+msgstr "Mo Imbere"
+
+#: c-decl.c:5625
+#, fuzzy
+msgid "enumeration values exceed range of largest integer"
+msgstr "Uduciro Urutonde Bya Kinini Umubare wuzuye"
+
+#: c-decl.c:5734
+#, fuzzy, c-format
+msgid "enumerator value for `%s' not integer constant"
+msgstr "Agaciro kugirango OYA Umubare wuzuye"
+
+#: c-decl.c:5747
+#, fuzzy
+msgid "overflow in enumeration values"
+msgstr "Byarenze urugero in Uduciro"
+
+#: c-decl.c:5752
+#, fuzzy
+msgid "ISO C restricts enumerator values to range of `int'"
+msgstr "C Uduciro Kuri Urutonde Bya"
+
+#: c-decl.c:5834
+#, fuzzy
+msgid "return type is an incomplete type"
+msgstr "Garuka Ubwoko ni Ubwoko"
+
+#: c-decl.c:5842
+#, fuzzy
+msgid "return type defaults to `int'"
+msgstr "Garuka Ubwoko Kuri"
+
+#: c-decl.c:5889
+#, fuzzy, c-format
+msgid "no previous prototype for `%s'"
+msgstr "Oya Ibanjirije kugirango"
+
+#: c-decl.c:5896
+#, fuzzy, c-format
+msgid "`%s' was used with no prototype before its definition"
+msgstr "`%s'Na: Oya Mbere Insobanuro"
+
+#: c-decl.c:5902
+#, fuzzy, c-format
+msgid "no previous declaration for `%s'"
+msgstr "Oya Ibanjirije kugirango"
+
+#: c-decl.c:5909
+#, fuzzy, c-format
+msgid "`%s' was used with no declaration before its definition"
+msgstr "`%s'Na: Oya Mbere Insobanuro"
+
+#: c-decl.c:5933 c-decl.c:6486
+#, fuzzy, c-format
+msgid "return type of `%s' is not `int'"
+msgstr "Garuka Ubwoko Bya ni OYA"
+
+#: c-decl.c:5949
+#, fuzzy, c-format
+msgid "first argument of `%s' should be `int'"
+msgstr "Itangira Bya"
+
+#: c-decl.c:5958
+#, fuzzy, c-format
+msgid "second argument of `%s' should be `char **'"
+msgstr "ISEGONDA Bya INYUGUTI"
+
+#: c-decl.c:5967
+#, fuzzy, c-format
+msgid "third argument of `%s' should probably be `char **'"
+msgstr "Bya INYUGUTI"
+
+#: c-decl.c:5976
+#, fuzzy, c-format
+msgid "`%s' takes only zero or two arguments"
+msgstr "`%s'Zeru Cyangwa ingingo"
+
+#: c-decl.c:5979
+#, fuzzy, c-format
+msgid "`%s' is normally a non-static function"
+msgstr "`%s'ni a Umumaro"
+
+#: c-decl.c:6077
+#, fuzzy
+msgid "parm types given both in parmlist and separately"
+msgstr "Byombi in Na"
+
+#: c-decl.c:6098
+#, fuzzy
+msgid "parameter name omitted"
+msgstr "Izina:"
+
+#: c-decl.c:6102 c-decl.c:6204
+#, c-format
+msgid "parameter `%s' declared void"
+msgstr ""
+
+#: c-decl.c:6178
+#, fuzzy
+msgid "parameter name missing from parameter list"
+msgstr "Izina: Ibuze Bivuye Urutonde"
+
+#: c-decl.c:6197
+#, fuzzy, c-format
+msgid "multiple parameters named `%s'"
+msgstr "Igikubo Ibigenga"
+
+#: c-decl.c:6219 c-decl.c:6221
+#, fuzzy, c-format
+msgid "type of `%s' defaults to `int'"
+msgstr "Ubwoko Bya Kuri"
+
+#: c-decl.c:6257
+#, fuzzy, c-format
+msgid "declaration for parameter `%s' but no such parameter"
+msgstr "kugirango Oya"
+
+#: c-decl.c:6305
+#, fuzzy
+msgid "number of arguments doesn't match prototype"
+msgstr "Umubare Bya ingingo BIHUYE"
+
+#: c-decl.c:6335
+#, fuzzy, c-format
+msgid "promoted argument `%s' doesn't match prototype"
+msgstr "BIHUYE"
+
+#: c-decl.c:6345
+#, fuzzy, c-format
+msgid "argument `%s' doesn't match prototype"
+msgstr "BIHUYE"
+
+#: c-decl.c:6518 cp/decl.c:15049
+#, fuzzy
+msgid "no return statement in function returning non-void"
+msgstr "Oya Garuka Inyandiko in Umumaro"
+
+#: c-decl.c:6525
+#, fuzzy
+msgid "this function may return with or without a value"
+msgstr "iyi Umumaro Gicurasi Garuka Na: Cyangwa a Agaciro"
+
+#: c-decl.c:6729
+#, fuzzy, c-format
+msgid "size of return value of `%s' is %u bytes"
+msgstr "Ingano Bya Garuka Agaciro Bya ni Bayite"
+
+#: c-decl.c:6733
+#, fuzzy, c-format
+msgid "size of return value of `%s' is larger than %d bytes"
+msgstr "Ingano Bya Garuka Agaciro Bya ni Kinini Bayite"
+
+#. If we get here, declarations have been used in a for loop without
+#. the C99 for loop scope. This doesn't make much sense, so don't
+#. allow it.
+#: c-decl.c:6791
+#, fuzzy
+msgid "`for' loop initial declaration used outside C99 mode"
+msgstr "`Hanze Ubwoko"
+
+#: c-decl.c:6815
+#, fuzzy, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr "`in"
+
+#: c-decl.c:6818
+#, fuzzy, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr "`Ihuza in"
+
+#: c-decl.c:6821
+#, fuzzy, c-format
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr "`in"
+
+#: c-decl.c:6829
+#, fuzzy, c-format
+msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+msgstr "Bya IMPINDURAGACIRO in"
+
+#: c-decl.c:6831
+#, fuzzy, c-format
+msgid "declaration of static variable `%s' in `for' loop initial declaration"
+msgstr "Bya IMPINDURAGACIRO in"
+
+#: c-decl.c:6833
+#, fuzzy, c-format
+msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+msgstr "Bya IMPINDURAGACIRO in"
+
+#: c-format.c:109 c-format.c:191
+#, fuzzy
+msgid "format string arg not a string type"
+msgstr "Imiterere Ikurikiranyanyuguti OYA a Ikurikiranyanyuguti Ubwoko"
+
+#: c-format.c:124
+#, fuzzy
+msgid "args to be formatted is not '...'"
+msgstr "Kuri Byahanaguwe ni OYA"
+
+#: c-format.c:133
+#, fuzzy
+msgid "strftime formats cannot format arguments"
+msgstr "Imiterere Imiterere ingingo"
+
+#: c-format.c:168 c-format.c:270
+#, fuzzy
+msgid "format string has invalid operand number"
+msgstr "Imiterere Ikurikiranyanyuguti Sibyo Umubare"
+
+#: c-format.c:202
+#, fuzzy
+msgid "function does not return string type"
+msgstr "Umumaro OYA Garuka Ikurikiranyanyuguti Ubwoko"
+
+#: c-format.c:233
+#, fuzzy
+msgid "unrecognized format specifier"
+msgstr "Imiterere"
+
+#: c-format.c:246
+#, fuzzy, c-format
+msgid "`%s' is an unrecognized format function type"
+msgstr "`%s'ni Imiterere Umumaro Ubwoko"
+
+#: c-format.c:280
+#, fuzzy
+msgid "format string arg follows the args to be formatted"
+msgstr "Imiterere Ikurikiranyanyuguti i Kuri Byahanaguwe"
+
+#: c-format.c:601
+#, fuzzy
+msgid "` ' flag"
+msgstr "`'Ibendera"
+
+#: c-format.c:601
+#, fuzzy
+msgid "the ` ' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:602 c-format.c:673
+#, fuzzy
+msgid "`+' flag"
+msgstr "`+'Ibendera"
+
+#: c-format.c:602
+#, fuzzy
+msgid "the `+' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:603 c-format.c:649
+#, fuzzy
+msgid "`#' flag"
+msgstr "`#'Ibendera"
+
+#: c-format.c:603
+#, fuzzy
+msgid "the `#' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:604 c-format.c:647
+#, fuzzy
+msgid "`0' flag"
+msgstr "`Ibendera"
+
+#: c-format.c:604
+#, fuzzy
+msgid "the `0' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:605 c-format.c:646 c-format.c:676
+#, fuzzy
+msgid "`-' flag"
+msgstr "`-'Ibendera"
+
+#: c-format.c:605
+#, fuzzy
+msgid "the `-' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:606 c-format.c:630
+#, fuzzy
+msgid "`'' flag"
+msgstr "`''Ibendera"
+
+#: c-format.c:606
+#, fuzzy
+msgid "the `'' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:607 c-format.c:631
+#, fuzzy
+msgid "`I' flag"
+msgstr "`Ibendera"
+
+#: c-format.c:607
+#, fuzzy
+msgid "the `I' printf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
+#, fuzzy
+msgid "field width"
+msgstr "Umwanya Ubugari"
+
+#: c-format.c:608
+#, fuzzy
+msgid "field width in printf format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:609
+msgid "precision"
+msgstr ""
+
+#: c-format.c:609
+#, fuzzy
+msgid "precision in printf format"
+msgstr "in Imiterere"
+
+#: c-format.c:610 c-format.c:629 c-format.c:680
+#, fuzzy
+msgid "length modifier"
+msgstr "Uburebure"
+
+#: c-format.c:610
+#, fuzzy
+msgid "length modifier in printf format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:626
+#, fuzzy
+msgid "assignment suppression"
+msgstr "Igenera"
+
+#: c-format.c:626
+#, fuzzy
+msgid "the assignment suppression scanf feature"
+msgstr "i Igenera"
+
+#: c-format.c:627
+#, fuzzy
+msgid "`a' flag"
+msgstr "`Ibendera"
+
+#: c-format.c:627
+#, fuzzy
+msgid "the `a' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:628
+#, fuzzy
+msgid "field width in scanf format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:629
+#, fuzzy
+msgid "length modifier in scanf format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:630
+#, fuzzy
+msgid "the `'' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:631
+#, fuzzy
+msgid "the `I' scanf flag"
+msgstr "i Ibendera"
+
+#: c-format.c:645
+#, fuzzy
+msgid "`_' flag"
+msgstr "`_'Ibendera"
+
+#: c-format.c:645
+#, fuzzy
+msgid "the `_' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:646
+#, fuzzy
+msgid "the `-' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:647
+#, fuzzy
+msgid "the `0' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:648 c-format.c:672
+#, fuzzy
+msgid "`^' flag"
+msgstr "`^'Ibendera"
+
+#: c-format.c:648
+#, fuzzy
+msgid "the `^' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:649
+#, fuzzy
+msgid "the `#' strftime flag"
+msgstr "i Ibendera"
+
+#: c-format.c:650
+#, fuzzy
+msgid "field width in strftime format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:651
+msgid "`E' modifier"
+msgstr ""
+
+#: c-format.c:651
+#, fuzzy
+msgid "the `E' strftime modifier"
+msgstr "i"
+
+#: c-format.c:652
+msgid "`O' modifier"
+msgstr ""
+
+#: c-format.c:652
+#, fuzzy
+msgid "the `O' strftime modifier"
+msgstr "i"
+
+#: c-format.c:653
+#, fuzzy
+msgid "the `O' modifier"
+msgstr "i"
+
+# svx/source\dialog\tabstpge.src:RID_SVXPAGE_TABULATOR.FL_FILLCHAR.text
+#: c-format.c:671
+#, fuzzy
+msgid "fill character"
+msgstr "Kuzuza inyuguti"
+
+#: c-format.c:671
+#, fuzzy
+msgid "fill character in strfmon format"
+msgstr "Kuzuza Inyuguti in Imiterere"
+
+#: c-format.c:672
+#, fuzzy
+msgid "the `^' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:673
+#, fuzzy
+msgid "the `+' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:674
+#, fuzzy
+msgid "`(' flag"
+msgstr "`('Ibendera"
+
+#: c-format.c:674
+#, fuzzy
+msgid "the `(' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:675
+#, fuzzy
+msgid "`!' flag"
+msgstr "`!'Ibendera"
+
+#: c-format.c:675
+#, fuzzy
+msgid "the `!' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:676
+#, fuzzy
+msgid "the `-' strfmon flag"
+msgstr "i Ibendera"
+
+#: c-format.c:677
+#, fuzzy
+msgid "field width in strfmon format"
+msgstr "Umwanya Ubugari in Imiterere"
+
+#: c-format.c:678
+#, fuzzy
+msgid "left precision"
+msgstr "Ibumoso:"
+
+#: c-format.c:678
+#, fuzzy
+msgid "left precision in strfmon format"
+msgstr "Ibumoso: in Imiterere"
+
+#: c-format.c:679
+#, fuzzy
+msgid "right precision"
+msgstr "Iburyo:"
+
+#: c-format.c:679
+#, fuzzy
+msgid "right precision in strfmon format"
+msgstr "Iburyo: in Imiterere"
+
+#: c-format.c:680
+#, fuzzy
+msgid "length modifier in strfmon format"
+msgstr "Uburebure in Imiterere"
+
+#: c-format.c:983
+#, fuzzy, c-format
+msgid "function might be possible candidate for `%s' format attribute"
+msgstr "Umumaro kugirango Imiterere Ikiranga"
+
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
+#, fuzzy
+msgid "missing $ operand number in format"
+msgstr "Ibuze Umubare in Imiterere"
+
+#: c-format.c:1138
+#, fuzzy, c-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr "%sOYA Gushigikira Umubare Imiterere"
+
+#: c-format.c:1145
+#, fuzzy
+msgid "operand number out of range in format"
+msgstr "Umubare Inyuma Bya Urutonde in Imiterere"
+
+#: c-format.c:1168
+#, fuzzy, c-format
+msgid "format argument %d used more than once in %s format"
+msgstr "Imiterere Birenzeho Rimwe in Imiterere"
+
+#: c-format.c:1218
+#, fuzzy, c-format
+msgid "format argument %d unused before used argument %d in $-style format"
+msgstr "Imiterere Kidakoreshwa Mbere in IMISUSIRE Imiterere"
+
+#: c-format.c:1322
+#, fuzzy
+msgid "format not a string literal, format string not checked"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti Imiterere Ikurikiranyanyuguti OYA Ivivuwe"
+
+#: c-format.c:1336
+#, fuzzy
+msgid "format not a string literal and no format arguments"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti Na Oya Imiterere ingingo"
+
+#: c-format.c:1338
+#, fuzzy
+msgid "format not a string literal, argument types not checked"
+msgstr "Imiterere OYA a Ikurikiranyanyuguti OYA Ivivuwe"
+
+#: c-format.c:1351
+#, fuzzy
+msgid "too many arguments for format"
+msgstr "ingingo kugirango Imiterere"
+
+#: c-format.c:1354
+#, fuzzy
+msgid "unused arguments in $-style format"
+msgstr "Kidakoreshwa ingingo in IMISUSIRE Imiterere"
+
+#: c-format.c:1357
+#, fuzzy, c-format
+msgid "zero-length %s format string"
+msgstr "Zeru Uburebure Imiterere Ikurikiranyanyuguti"
+
+#: c-format.c:1361
+#, fuzzy
+msgid "format is a wide character string"
+msgstr "Imiterere ni a Inyuguti Ikurikiranyanyuguti"
+
+#: c-format.c:1364
+#, fuzzy
+msgid "unterminated format string"
+msgstr "Imiterere Ikurikiranyanyuguti"
+
+#: c-format.c:1581
+#, fuzzy
+msgid "embedded `\\0' in format"
+msgstr "Gitsindiye in Imiterere"
+
+#: c-format.c:1596
+#, fuzzy, c-format
+msgid "spurious trailing `%%' in format"
+msgstr "in Imiterere"
+
+#: c-format.c:1635 c-format.c:1872
+#, fuzzy, c-format
+msgid "repeated %s in format"
+msgstr "byasubiyemo in Imiterere"
+
+#: c-format.c:1648
+#, fuzzy
+msgid "missing fill character at end of strfmon format"
+msgstr "Ibuze Kuzuza Inyuguti ku Impera Bya Imiterere"
+
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
+#, fuzzy
+msgid "too few arguments for format"
+msgstr "ingingo kugirango Imiterere"
+
+#: c-format.c:1728
+#, fuzzy, c-format
+msgid "zero width in %s format"
+msgstr "Zeru Ubugari in Imiterere"
+
+#: c-format.c:1747
+#, fuzzy, c-format
+msgid "empty left precision in %s format"
+msgstr "ubusa Ibumoso: in Imiterere"
+
+#: c-format.c:1801
+#, fuzzy
+msgid "field precision"
+msgstr "Umwanya"
+
+#: c-format.c:1816
+#, fuzzy, c-format
+msgid "empty precision in %s format"
+msgstr "ubusa in Imiterere"
+
+#: c-format.c:1856
+#, fuzzy, c-format
+msgid "%s does not support the `%s' %s length modifier"
+msgstr "%sOYA Gushigikira i Uburebure"
+
+#: c-format.c:1906
+#, fuzzy
+msgid "conversion lacks type at end of format"
+msgstr "Ihindurangero Ubwoko ku Impera Bya Imiterere"
+
+#: c-format.c:1917
+#, fuzzy, c-format
+msgid "unknown conversion type character `%c' in format"
+msgstr "Kitazwi Ihindurangero Ubwoko Inyuguti in Imiterere"
+
+#: c-format.c:1920
+#, fuzzy, c-format
+msgid "unknown conversion type character 0x%x in format"
+msgstr "Kitazwi Ihindurangero Ubwoko Inyuguti in Imiterere"
+
+#: c-format.c:1927
+#, fuzzy, c-format
+msgid "%s does not support the `%%%c' %s format"
+msgstr "%sOYA Gushigikira i Imiterere"
+
+#: c-format.c:1943
+#, fuzzy, c-format
+msgid "%s used with `%%%c' %s format"
+msgstr "%sNa: Imiterere"
+
+#: c-format.c:1952
+#, fuzzy, c-format
+msgid "%s does not support %s"
+msgstr "%sOYA Gushigikira"
+
+#: c-format.c:1961
+#, fuzzy, c-format
+msgid "%s does not support %s with the `%%%c' %s format"
+msgstr "%sOYA Gushigikira Na: i Imiterere"
+
+#: c-format.c:1994
+#, fuzzy, c-format
+msgid "%s ignored with %s and `%%%c' %s format"
+msgstr "%sNa: Na Imiterere"
+
+#: c-format.c:1998
+#, fuzzy, c-format
+msgid "%s ignored with %s in %s format"
+msgstr "%sNa: in Imiterere"
+
+#: c-format.c:2004
+#, fuzzy, c-format
+msgid "use of %s and %s together with `%%%c' %s format"
+msgstr "Gukoresha Bya Na Na: Imiterere"
+
+#: c-format.c:2008
+#, fuzzy, c-format
+msgid "use of %s and %s together in %s format"
+msgstr "Gukoresha Bya Na in Imiterere"
+
+#: c-format.c:2027
+#, fuzzy, c-format
+msgid "`%%%c' yields only last 2 digits of year in some locales"
+msgstr "`%%%c'Iheruka 2. Bya Umwaka in"
+
+#: c-format.c:2030
+#, fuzzy, c-format
+msgid "`%%%c' yields only last 2 digits of year"
+msgstr "`%%%c'Iheruka 2. Bya Umwaka"
+
+#. The end of the format string was reached.
+#: c-format.c:2046
+#, fuzzy, c-format
+msgid "no closing `]' for `%%[' format"
+msgstr "Oya kugirango Imiterere"
+
+#: c-format.c:2059
+#, fuzzy, c-format
+msgid "use of `%s' length modifier with `%c' type character"
+msgstr "Gukoresha Bya Uburebure Na: Ubwoko Inyuguti"
+
+#: c-format.c:2080
+#, fuzzy, c-format
+msgid "%s does not support the `%%%s%c' %s format"
+msgstr "%sOYA Gushigikira i Imiterere"
+
+#: c-format.c:2095
+#, fuzzy
+msgid "operand number specified with suppressed assignment"
+msgstr "Umubare Na: Igenera"
+
+#: c-format.c:2097
+#, fuzzy
+msgid "operand number specified for format taking no argument"
+msgstr "Umubare kugirango Imiterere Oya"
+
+#: c-format.c:2211
+#, fuzzy, c-format
+msgid "writing through null pointer (arg %d)"
+msgstr "Gihinguranya NTAGIHARI Mweretsi"
+
+#: c-format.c:2220
+#, fuzzy, c-format
+msgid "reading through null pointer (arg %d)"
+msgstr "Gihinguranya NTAGIHARI Mweretsi"
+
+#: c-format.c:2240
+#, fuzzy, c-format
+msgid "writing into constant object (arg %d)"
+msgstr "Igikoresho"
+
+#: c-format.c:2250
+#, fuzzy, c-format
+msgid "extra type qualifiers in format argument (arg %d)"
+msgstr "Birenga Ubwoko in Imiterere"
+
+#: c-format.c:2257
+#, fuzzy, c-format
+msgid "format argument is not a pointer (arg %d)"
+msgstr "Imiterere ni OYA a Mweretsi"
+
+#: c-format.c:2259
+#, fuzzy, c-format
+msgid "format argument is not a pointer to a pointer (arg %d)"
+msgstr "Imiterere ni OYA a Mweretsi Kuri a Mweretsi"
+
+#: c-format.c:2330
+#, fuzzy
+msgid "pointer"
+msgstr "Mweretsi"
+
+#: c-format.c:2332
+#, fuzzy
+msgid "different type"
+msgstr "Ubwoko"
+
+#: c-format.c:2353
+#, fuzzy, c-format
+msgid "%s is not type %s (arg %d)"
+msgstr "%sni OYA Ubwoko"
+
+#: c-format.c:2356
+#, fuzzy, c-format
+msgid "%s format, %s arg (arg %d)"
+msgstr "%sImiterere"
+
+#: c-lex.c:153
+#, fuzzy
+msgid "YYDEBUG not defined"
+msgstr "OYA"
+
+#: c-lex.c:293
+#, fuzzy
+msgid "badly nested C headers from preprocessor"
+msgstr "C Imitwe Bivuye"
+
+#: c-lex.c:336
+#, c-format
+msgid "ignoring #pragma %s %s"
+msgstr ""
+
+#: c-lex.c:386
+#, fuzzy, c-format
+msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgstr "Ky'isi yose Inyuguti Izina: OYA Byemewe in Ikiranga"
+
+#: c-lex.c:632
+#, fuzzy, c-format
+msgid "universal-character-name '\\u%04x' not valid in identifier"
+msgstr "Ky'isi yose Inyuguti Izina: OYA Byemewe in Ikiranga"
+
+#: c-lex.c:695
+#, fuzzy, c-format
+msgid "stray '%c' in program"
+msgstr "in Porogaramu"
+
+#: c-lex.c:697
+#, fuzzy, c-format
+msgid "stray '\\%o' in program"
+msgstr "in Porogaramu"
+
+#: c-lex.c:854
+#, fuzzy
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "iyi NYACUMI ni Bitashizweho umukono in"
+
+#: c-lex.c:857
+#, fuzzy
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "iyi NYACUMI Bitashizweho umukono in"
+
+#: c-lex.c:873
+#, fuzzy, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "Umubare wuzuye ni Binini kugirango Ubwoko"
+
+#: c-lex.c:941
+#, fuzzy, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "Bihindagurika Urutonde Bya"
+
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+#, fuzzy
+msgid "ignoring invalid multibyte character"
+msgstr "Sibyo Inyuguti"
+
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Ibuze Kuri"
+
+#: c-opts.c:359
+#, fuzzy, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "Oya ishuri Izina: Na:"
+
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "Ibuze Izina ry'idosiye: Nyuma"
+
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "Ibuze Intego Nyuma"
+
+#: c-opts.c:505
+#, fuzzy, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "Amahitamo Imbonerahamwe bishunguwe ni Mbere"
+
+#: c-opts.c:550
+#, fuzzy, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "Ifashayobora kugirango Ikoresha:"
+
+#: c-opts.c:937
+#, fuzzy
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-ni OYA in C"
+
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "Hindura ni Oya"
+
+#: c-opts.c:1033
+#, fuzzy, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "Hindura ni Bitemewe. kugirango Birambuye"
+
+#: c-opts.c:1153
+#, fuzzy
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-Amarengayobora Kuri Na ni NONEAHA ku ku Mburabuzi"
+
+#: c-opts.c:1273
+#, fuzzy
+msgid "output filename specified twice"
+msgstr "Ibisohoka Izina ry'idosiye:"
+
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1389
+#, fuzzy
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Birenga"
+
+#: c-opts.c:1391
+#, fuzzy
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Zeru Uburebure"
+
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr ""
+
+#: c-opts.c:1395
+#, fuzzy
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Umutekano"
+
+#: c-opts.c:1397
+#, fuzzy
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Imiterere Ikiranga"
+
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "Gufungura %s%S Ibisohoka IDOSIYE"
+
+#: c-opts.c:1474
+#, fuzzy, c-format
+msgid "opening dependency file %s"
+msgstr "Gufungura %s%S IDOSIYE"
+
+#: c-opts.c:1484
+#, fuzzy, c-format
+msgid "closing dependency file %s"
+msgstr "IDOSIYE"
+
+#: c-opts.c:1487
+#, fuzzy, c-format
+msgid "when writing output to %s"
+msgstr "Ryari: Ibisohoka Kuri"
+
+#: c-opts.c:1567
+#, fuzzy
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "Kuri Cyangwa"
+
+#: c-opts.c:1715
+#, fuzzy, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "\"-%c%s%s\"ni Byemewe kugirango OYA kugirango"
+
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+#, fuzzy
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr "Gushyiramo IDOSIYE i Ibigize Bya IDOSIYE Mbere Ikindi IDOSIYE Insobanuro Bya Makoro in IDOSIYE Inzira Inzira Nka a Imbanziriza kugirango Komeza>> Kuri i Impera Bya i Sisitemu Gushyiramo Kuri i Impera Bya i Gushyiramo Kuri i Gutangira Bya i Sisitemu Gushyiramo"
+
+#: c-opts.c:1735
+#, fuzzy
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr "-Kuri i Impera Bya i Sisitemu Gushyiramo Kuri i Impera Bya i Gushyiramo Gushyiramo Inzira Igenzura Ibisobanuro OYA Gushaka Sisitemu Gushyiramo Na: OYA Gushaka Sisitemu Gushyiramo ububiko bw'amaderese kugirango C o IDOSIYE Ibisohoka IDOSIYE"
+
+#: c-opts.c:1744
+#, fuzzy
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr "-C STD STD Izina: i Bisanzwe Bya C W Iburira Oya NIBA Oya Icyo wongeraho S NIBA Icyo wongeraho Mo Imbere"
+
+#: c-opts.c:1753
+#, fuzzy
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr "-Oya Ibyerekeye Ibiranga OYA in Oya NIBA kidasobanuye Makoro ni ku Oya Kuzana Ibyerekeye i Gukoresha Bya i Kuzana"
+
+#: c-opts.c:1758
+#, fuzzy
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr "-Oya Ikosa Byose Iburira Nka Oya Sisitemu Imitwe OYA Iburira Bivuye Sisitemu Oya Byose"
+
+#: c-opts.c:1763
+#, fuzzy
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr "-Ubwoko Kwirengagiza Sisitemu Umutwempangano Ubwoko Na Kwirengagiza Sisitemu Umutwempangano IDOSIYE Ibisohoka Kuri i Ibuze Umutwempangano IDOSIYE Nka"
+
+#: c-opts.c:1771
+#, fuzzy
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr "-kugirango Byose Intego a Intego"
+
+#: c-opts.c:1776
+#, fuzzy
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr "-Makoro a Makoro Na: Ikurikiranyanyuguti Nka Makoro a Makoro Na: Nka A i Kuri A i Kuri U Makoro Makoro v i Verisiyo"
+
+#: c-opts.c:1784
+#, fuzzy
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr "-H i Izina: Bya Umutwempangano Idosiye Nka C OYA Kwanga a Urutonde Bya Makoro Gikora ku Makoro in i Amazina Gushyiramo in i"
+
+#: c-opts.c:1792
+#, fuzzy
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr "-F Oya i Iyinjiza IDOSIYE Nka Umubare hagati Isunika kugirango Inkingi OYA Umurongo IDOSIYE Amazina Ryari: Ifashayobora iyi"
+
+#. Like YYERROR but do call yyerror.
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
+msgid "syntax error"
+msgstr "Ikosa mu myandikire"
+
+#: /usr/share/bison/bison.simple:179
+#, fuzzy
+msgid "syntax error: cannot back up"
+msgstr "Ikosa Inyuma Hejuru"
+
+#: c-parse.y:325 objc-parse.y:346
+#, fuzzy
+msgid "ISO C forbids an empty source file"
+msgstr "C ubusa Inkomoko IDOSIYE"
+
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
+#, fuzzy
+msgid "argument of `asm' is not a constant string"
+msgstr "Bya ni OYA a Ikurikiranyanyuguti"
+
+#: c-parse.y:374 objc-parse.y:396
+#, fuzzy
+msgid "ISO C forbids data definition with no type or storage class"
+msgstr "C Ibyatanzwe Insobanuro Na: Oya Ubwoko Cyangwa ishuri"
+
+#: c-parse.y:376 objc-parse.y:398
+#, fuzzy
+msgid "data definition has no type or storage class"
+msgstr "Ibyatanzwe Insobanuro Oya Ubwoko Cyangwa ishuri"
+
+#: c-parse.y:389 objc-parse.y:411
+#, fuzzy
+msgid "ISO C does not allow extra `;' outside of a function"
+msgstr "C OYA Kwemerera Birenga Hanze Bya a Umumaro"
+
+#: c-parse.y:449 cppexp.c:1312
+#, fuzzy
+msgid "traditional C rejects the unary plus operator"
+msgstr "C i Guteranya Mukoresha"
+
+#: c-parse.y:496 objc-parse.y:518
+#, fuzzy
+msgid "`sizeof' applied to a bit-field"
+msgstr "`Byashyizweho Kuri a Umwanya"
+
+#: c-parse.y:583 objc-parse.y:605
+#, fuzzy
+msgid "ISO C forbids omitting the middle term of a ?: expression"
+msgstr "C i Hagati Ijambo Bya a imvugo"
+
+#: c-parse.y:632 objc-parse.y:654
+msgid "ISO C89 forbids compound literals"
+msgstr ""
+
+#: c-parse.y:646 objc-parse.y:668
+#, fuzzy
+msgid "ISO C forbids braced-groups within expressions"
+msgstr "C Amatsinda muri"
+
+#: c-parse.y:677 objc-parse.y:699
+#, fuzzy
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "Itangira Kuri OYA a"
+
+#: c-parse.y:721 objc-parse.y:767
+#, fuzzy
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "C C IMISUSIRE Umumaro"
+
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
+#, fuzzy, c-format
+msgid "`%s' is not at beginning of declaration"
+msgstr "`%s'ni OYA ku Itangiriro Bya"
+
+#: c-parse.y:1441 objc-parse.y:1496
+#, fuzzy
+msgid "ISO C forbids empty initializer braces"
+msgstr "C ubusa Ingirwadusodeko"
+
+#: c-parse.y:1455 objc-parse.y:1510
+#, fuzzy
+msgid "ISO C89 forbids specifying subobject to initialize"
+msgstr "Kuri gutangiza"
+
+#: c-parse.y:1458 objc-parse.y:1513
+#, fuzzy
+msgid "obsolete use of designated initializer without `='"
+msgstr "Gukoresha Bya"
+
+#: c-parse.y:1462 objc-parse.y:1517
+#, fuzzy
+msgid "obsolete use of designated initializer with `:'"
+msgstr "Gukoresha Bya Na:"
+
+#: c-parse.y:1489 objc-parse.y:1544
+#, fuzzy
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr "C Urutonde Bya Ibintu Kuri gutangiza"
+
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
+#, fuzzy
+msgid "ISO C forbids nested functions"
+msgstr "C Imimaro"
+
+#: c-parse.y:1703 objc-parse.y:1760
+#, fuzzy
+msgid "ISO C forbids forward references to `enum' types"
+msgstr "C Imbere Indango Kuri"
+
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
+#, fuzzy
+msgid "comma at end of enumerator list"
+msgstr "Akitso ku Impera Bya Urutonde"
+
+#: c-parse.y:1723 objc-parse.y:1780
+#, fuzzy
+msgid "no semicolon at end of struct or union"
+msgstr "Oya Akabago n'Akitso ku Impera Bya Cyangwa Ihuza"
+
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
+#, fuzzy
+msgid "extra semicolon in struct or union specified"
+msgstr "Birenga Akabago n'Akitso in Cyangwa Ihuza"
+
+#: c-parse.y:1745 objc-parse.y:1816
+#, fuzzy
+msgid "ISO C doesn't support unnamed structs/unions"
+msgstr "C Gushigikira Kitiswe"
+
+#: c-parse.y:1754 objc-parse.y:1825
+#, fuzzy
+msgid "ISO C forbids member declarations with no members"
+msgstr "C Na: Oya"
+
+#: c-parse.y:1913 objc-parse.y:1984
+#, fuzzy
+msgid "deprecated use of label at end of compound statement"
+msgstr "Bitemewe. Gukoresha Bya Akarango ku Impera Bya Inyandiko"
+
+#: c-parse.y:1930 objc-parse.y:2001
+#, fuzzy
+msgid "ISO C89 forbids mixed declarations and code"
+msgstr "Bivanze Na ITEGEKONGENGA"
+
+#: c-parse.y:2005 objc-parse.y:2080
+#, fuzzy
+msgid "ISO C forbids label declarations"
+msgstr "C Akarango"
+
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
+#, fuzzy
+msgid "braced-group within expression allowed only inside a function"
+msgstr "Itsinda muri imvugo Mo Imbere a Umumaro"
+
+#: c-parse.y:2182 objc-parse.y:2257
+#, fuzzy
+msgid "empty body in an else-statement"
+msgstr "ubusa Umubiri in Ikindi Inyandiko"
+
+#: c-parse.y:2303 objc-parse.y:2378
+#, fuzzy
+msgid "ISO C forbids `goto *expr;'"
+msgstr "C"
+
+#: c-parse.y:2403 objc-parse.y:2478
+#, fuzzy
+msgid "ISO C forbids forward parameter declarations"
+msgstr "C Imbere"
+
+#. Gcc used to allow this as an extension. However, it does
+#. not work for all targets, and thus has been disabled.
+#. Also, since func (...) and func () are indistinguishable,
+#. it caused problems with the code in expand_builtin which
+#. tries to verify that BUILT_IN_NEXT_ARG is being used
+#. correctly.
+#: c-parse.y:2429 objc-parse.y:2504
+#, fuzzy
+msgid "ISO C requires a named argument before `...'"
+msgstr "C a Mbere"
+
+#: c-parse.y:2526 objc-parse.y:2601
+#, fuzzy
+msgid "`...' in old-style identifier list"
+msgstr "`...'in ki/ bishaje IMISUSIRE Ikiranga Urutonde"
+
+#: /usr/share/bison/bison.simple:795
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
+msgstr "Ikosa Kitaboneka Ububiko"
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+#, fuzzy
+msgid "parse error"
+msgstr "Ikosa"
+
+#: /usr/share/bison/bison.simple:924
+#, fuzzy
+msgid "parser stack overflow"
+msgstr "Byarenze urugero"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
+#, fuzzy, c-format
+msgid "%s at end of input"
+msgstr "%sku Impera Bya Iyinjiza"
+
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
+#, fuzzy, c-format
+msgid "%s before %s'%c'"
+msgstr "%sMbere"
+
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
+#, fuzzy, c-format
+msgid "%s before %s'\\x%x'"
+msgstr "%sMbere"
+
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
+#, fuzzy, c-format
+msgid "%s before string constant"
+msgstr "%sMbere Ikurikiranyanyuguti"
+
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
+#, fuzzy, c-format
+msgid "%s before numeric constant"
+msgstr "%sMbere Bikurikije umubare"
+
+#: c-parse.y:2854 objc-parse.y:3553
+#, fuzzy, c-format
+msgid "%s before \"%s\""
+msgstr "%sMbere"
+
+#: c-parse.y:2856 objc-parse.y:3555
+#, fuzzy, c-format
+msgid "%s before '%s' token"
+msgstr "%sMbere"
+
+#: c-parse.y:2921
+#, fuzzy
+msgid "traditional C rejects string concatenation"
+msgstr "C Ikurikiranyanyuguti"
+
+#: c-parse.y:3047 objc-parse.y:3779
+#, fuzzy, c-format
+msgid "syntax error at '%s' token"
+msgstr "Ikosa ku"
+
+#: c-pragma.c:107
+#, fuzzy
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+msgstr "#Ipaki Ipaki N"
+
+#: c-pragma.c:125
+#, fuzzy, c-format
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+msgstr "#Ipaki Ipaki N"
+
+#: c-pragma.c:145
+#, fuzzy
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "#Ipaki ID N ni OYA ku iyi Intego"
+
+#: c-pragma.c:147
+#, fuzzy
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "#Ipaki ID N ni OYA ku iyi Intego"
+
+#: c-pragma.c:167
+#, fuzzy
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr "Ibuze Nyuma"
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
+msgstr ""
+
+#: c-pragma.c:185
+#, fuzzy
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr "Ipaki ID N"
+
+#: c-pragma.c:187
+#, fuzzy
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr "Ipaki ID"
+
+#: c-pragma.c:196
+#, fuzzy, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr "Kitazwi Igikorwa kugirango"
+
+#: c-pragma.c:233
+#, fuzzy
+msgid "junk at end of '#pragma pack'"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:247
+#, fuzzy, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr "Itunganya a Gitoya UMWIKUBE Bya OYA"
+
+#: c-pragma.c:280
+#, fuzzy, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "Nyuma Itangira Gukoresha Ibisubizo ku in imyitwarire"
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr ""
+
+#: c-pragma.c:337
+#, fuzzy
+msgid "junk at end of #pragma weak"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr ""
+
+#: c-pragma.c:382
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:389 c-pragma.c:470
+#, fuzzy
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr "#Na:"
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr ""
+
+#: c-pragma.c:425
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "Umwanda ku Impera Bya"
+
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "Na: Ibanjirije Guhindura izina"
+
+#: c-semantics.c:565
+#, fuzzy
+msgid "break statement not within loop or switch"
+msgstr "itandukanya Inyandiko OYA muri Cyangwa Hindura"
+
+#: c-semantics.c:583
+#, fuzzy
+msgid "continue statement not within a loop"
+msgstr "urifuzagukomeza Inyandiko OYA muri a"
+
+#: c-semantics.c:678
+#, fuzzy
+msgid "destructor needed for `%#D'"
+msgstr "kugirango"
+
+#: c-semantics.c:679
+#, fuzzy
+msgid "where case label appears here"
+msgstr "Akarango"
+
+#: c-semantics.c:682
+#, fuzzy
+msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+msgstr "(Bya Ibanjirije in Ingano:"
+
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
+#, fuzzy, c-format
+msgid "%s qualifier ignored on asm"
+msgstr "%sku"
+
+#: c-typeck.c:123
+#, fuzzy, c-format
+msgid "`%s' has an incomplete type"
+msgstr "`%s'Ubwoko"
+
+#: c-typeck.c:145 cp/call.c:2865
+#, fuzzy
+msgid "invalid use of void expression"
+msgstr "Sibyo Gukoresha Bya imvugo"
+
+#: c-typeck.c:153
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe"
+
+#: c-typeck.c:159
+#, fuzzy
+msgid "invalid use of array with unspecified bounds"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe Na:"
+
+#: c-typeck.c:167
+#, fuzzy, c-format
+msgid "invalid use of undefined type `%s %s'"
+msgstr "Sibyo Gukoresha Bya kidasobanuye Ubwoko"
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c-typeck.c:171
+#, fuzzy, c-format
+msgid "invalid use of incomplete typedef `%s'"
+msgstr "Sibyo Gukoresha Bya"
+
+#: c-typeck.c:424 c-typeck.c:438
+#, fuzzy
+msgid "function types not truly compatible in ISO C"
+msgstr "Umumaro OYA in C"
+
+#: c-typeck.c:603
+#, fuzzy
+msgid "types are not quite compatible"
+msgstr "OYA"
+
+#: c-typeck.c:757 c-typeck.c:2687
+#, fuzzy
+msgid "arithmetic on pointer to an incomplete type"
+msgstr "ku Mweretsi Kuri Ubwoko"
+
+#: c-typeck.c:1136
+#, fuzzy, c-format
+msgid "%s has no member named `%s'"
+msgstr "%sOya"
+
+#: c-typeck.c:1172
+#, fuzzy, c-format
+msgid "request for member `%s' in something not a structure or union"
+msgstr "Kubaza... kugirango in OYA a Imiterere Cyangwa Ihuza"
+
+#: c-typeck.c:1204
+#, fuzzy
+msgid "dereferencing pointer to incomplete type"
+msgstr "Mweretsi Kuri Ubwoko"
+
+#: c-typeck.c:1208
+#, fuzzy
+msgid "dereferencing `void *' pointer"
+msgstr "Mweretsi"
+
+#: c-typeck.c:1225 cp/typeck.c:2369
+#, fuzzy, c-format
+msgid "invalid type argument of `%s'"
+msgstr "Sibyo Ubwoko Bya"
+
+#: c-typeck.c:1244 cp/typeck.c:2395
+#, fuzzy
+msgid "subscript missing in array reference"
+msgstr "Inyandiko nyesi Ibuze in Imbonerahamwe Indango"
+
+#: c-typeck.c:1265 cp/typeck.c:2437
+#, fuzzy
+msgid "array subscript has type `char'"
+msgstr "Imbonerahamwe Inyandiko nyesi Ubwoko"
+
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
+#, fuzzy
+msgid "array subscript is not an integer"
+msgstr "Imbonerahamwe Inyandiko nyesi ni OYA Umubare wuzuye"
+
+#: c-typeck.c:1306
+#, fuzzy
+msgid "ISO C forbids subscripting `register' array"
+msgstr "C Imbonerahamwe"
+
+#: c-typeck.c:1308
+#, fuzzy
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "Imbonerahamwe"
+
+#: c-typeck.c:1341
+#, fuzzy
+msgid "subscript has type `char'"
+msgstr "Inyandiko nyesi Ubwoko"
+
+#: c-typeck.c:1357 cp/typeck.c:2518
+#, fuzzy
+msgid "subscripted value is neither array nor pointer"
+msgstr "Agaciro ni Imbonerahamwe Mweretsi"
+
+#: c-typeck.c:1411
+#, fuzzy, c-format
+msgid "`%s' undeclared here (not in a function)"
+msgstr "`%s'OYA in a Umumaro"
+
+#: c-typeck.c:1418
+#, fuzzy, c-format
+msgid "`%s' undeclared (first use in this function)"
+msgstr "`%s'Itangira Gukoresha in iyi Umumaro"
+
+#: c-typeck.c:1423
+#, fuzzy
+msgid "(Each undeclared identifier is reported only once"
+msgstr "(Ikiranga ni Rimwe"
+
+#: c-typeck.c:1424
+#, fuzzy
+msgid "for each function it appears in.)"
+msgstr "kugirango Umumaro in"
+
+#: c-typeck.c:1441
+#, fuzzy, c-format
+msgid "local declaration of `%s' hides instance variable"
+msgstr "Bya Urugero IMPINDURAGACIRO"
+
+#: c-typeck.c:1518
+#, fuzzy
+msgid "called object is not a function"
+msgstr "Igikoresho ni OYA a Umumaro"
+
+#: c-typeck.c:1604 cp/typeck.c:2829
+#, fuzzy
+msgid "too many arguments to function"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-typeck.c:1625
+#, fuzzy, c-format
+msgid "type of formal parameter %d is incomplete"
+msgstr "Ubwoko Bya ni"
+
+#: c-typeck.c:1638
+#, fuzzy, c-format
+msgid "%s as integer rather than floating due to prototype"
+msgstr "%sNka Umubare wuzuye Bihindagurika Kuri"
+
+#: c-typeck.c:1641
+#, fuzzy, c-format
+msgid "%s as integer rather than complex due to prototype"
+msgstr "%sNka Umubare wuzuye ITSINDA RY'IMIBARE C Kuri"
+
+#: c-typeck.c:1644
+#, fuzzy, c-format
+msgid "%s as complex rather than floating due to prototype"
+msgstr "%sNka ITSINDA RY'IMIBARE C Bihindagurika Kuri"
+
+#: c-typeck.c:1647
+#, fuzzy, c-format
+msgid "%s as floating rather than integer due to prototype"
+msgstr "%sNka Bihindagurika Umubare wuzuye Kuri"
+
+#: c-typeck.c:1650
+#, fuzzy, c-format
+msgid "%s as complex rather than integer due to prototype"
+msgstr "%sNka ITSINDA RY'IMIBARE C Umubare wuzuye Kuri"
+
+#: c-typeck.c:1653
+#, fuzzy, c-format
+msgid "%s as floating rather than complex due to prototype"
+msgstr "%sNka Bihindagurika ITSINDA RY'IMIBARE C Kuri"
+
+#: c-typeck.c:1663
+#, fuzzy, c-format
+msgid "%s as `float' rather than `double' due to prototype"
+msgstr "%sNka Kuri"
+
+#: c-typeck.c:1681
+#, fuzzy, c-format
+msgid "%s with different width due to prototype"
+msgstr "%sNa: Ubugari Kuri"
+
+#: c-typeck.c:1715
+#, fuzzy, c-format
+msgid "%s as unsigned due to prototype"
+msgstr "%sNka Bitashizweho umukono Kuri"
+
+#: c-typeck.c:1717
+#, fuzzy, c-format
+msgid "%s as signed due to prototype"
+msgstr "%sNka Kuri"
+
+#: c-typeck.c:1751 cp/typeck.c:2933
+#, fuzzy
+msgid "too few arguments to function"
+msgstr "ingingo Kuri Umumaro"
+
+#: c-typeck.c:1793
+#, fuzzy
+msgid "suggest parentheses around + or - inside shift"
+msgstr "Cyangwa Mo Imbere Gusunika"
+
+#: c-typeck.c:1800
+#, fuzzy
+msgid "suggest parentheses around && within ||"
+msgstr "muri"
+
+#: c-typeck.c:1809
+#, fuzzy
+msgid "suggest parentheses around arithmetic in operand of |"
+msgstr "in Bya"
+
+#: c-typeck.c:1812
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of |"
+msgstr "in Bya"
+
+#: c-typeck.c:1821
+#, fuzzy
+msgid "suggest parentheses around arithmetic in operand of ^"
+msgstr "in Bya"
+
+#: c-typeck.c:1824
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of ^"
+msgstr "in Bya"
+
+#: c-typeck.c:1831
+#, fuzzy
+msgid "suggest parentheses around + or - in operand of &"
+msgstr "Cyangwa in Bya"
+
+#: c-typeck.c:1834
+#, fuzzy
+msgid "suggest parentheses around comparison in operand of &"
+msgstr "in Bya"
+
+#: c-typeck.c:1841
+#, fuzzy
+msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+msgstr "nka OYA Bijyanye n'imibare Igisobanuro"
+
+#: c-typeck.c:2001 c-typeck.c:2036
+#, fuzzy
+msgid "division by zero"
+msgstr "Kugabanya na zeru"
+
+#: c-typeck.c:2081 cp/typeck.c:3194
+#, fuzzy
+msgid "right shift count is negative"
+msgstr "Iburyo: Gusunika IBARA ni"
+
+#: c-typeck.c:2088 cp/typeck.c:3200
+#, fuzzy
+msgid "right shift count >= width of type"
+msgstr "Iburyo: Gusunika IBARA Ubugari Bya Ubwoko"
+
+#: c-typeck.c:2109 cp/typeck.c:3219
+#, fuzzy
+msgid "left shift count is negative"
+msgstr "Ibumoso: Gusunika IBARA ni"
+
+#: c-typeck.c:2112 cp/typeck.c:3221
+#, fuzzy
+msgid "left shift count >= width of type"
+msgstr "Ibumoso: Gusunika IBARA Ubugari Bya Ubwoko"
+
+#: c-typeck.c:2133
+#, fuzzy
+msgid "shift count is negative"
+msgstr "Gusunika IBARA ni"
+
+#: c-typeck.c:2135
+#, fuzzy
+msgid "shift count >= width of type"
+msgstr "Gusunika IBARA Ubugari Bya Ubwoko"
+
+#: c-typeck.c:2152 cp/typeck.c:3256
+#, fuzzy
+msgid "comparing floating point with == or != is unsafe"
+msgstr "Bihindagurika Akadomo Na: Cyangwa ni"
+
+#: c-typeck.c:2178 c-typeck.c:2184
+#, fuzzy
+msgid "ISO C forbids comparison of `void *' with function pointer"
+msgstr "C Bya Na: Umumaro Mweretsi"
+
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
+#, fuzzy
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr "Bya Mweretsi a"
+
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
+#, fuzzy
+msgid "comparison between pointer and integer"
+msgstr "hagati Mweretsi Na Umubare wuzuye"
+
+#: c-typeck.c:2222 c-typeck.c:2250
+#, fuzzy
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr "C Bya Kuri Imimaro"
+
+#: c-typeck.c:2247
+#, fuzzy
+msgid "comparison of complete and incomplete pointers"
+msgstr "Bya Byuzuye Na"
+
+#: c-typeck.c:2263 c-typeck.c:2270
+#, fuzzy
+msgid "ordered comparison of pointer with integer zero"
+msgstr "Bya Mweretsi Na: Umubare wuzuye Zeru"
+
+#: c-typeck.c:2294 cp/typeck.c:3389
+#, fuzzy
+msgid "unordered comparison on non-floating point argument"
+msgstr "ku Bihindagurika Akadomo"
+
+#: c-typeck.c:2505
+#, fuzzy
+msgid "comparison between signed and unsigned"
+msgstr "hagati Na Bitashizweho umukono"
+
+#: c-typeck.c:2551 cp/typeck.c:3633
+#, fuzzy
+msgid "comparison of promoted ~unsigned with constant"
+msgstr "Bya Bitashizweho umukono Na:"
+
+#: c-typeck.c:2559 cp/typeck.c:3641
+#, fuzzy
+msgid "comparison of promoted ~unsigned with unsigned"
+msgstr "Bya Bitashizweho umukono Na: Bitashizweho umukono"
+
+#: c-typeck.c:2639
+#, fuzzy
+msgid "pointer of type `void *' used in subtraction"
+msgstr "Mweretsi Bya Ubwoko in Gukuramo"
+
+#: c-typeck.c:2641
+#, fuzzy
+msgid "pointer to a function used in subtraction"
+msgstr "Mweretsi Kuri a Umumaro in Gukuramo"
+
+#: c-typeck.c:2738
+#, fuzzy
+msgid "wrong type argument to unary plus"
+msgstr "Ubwoko Kuri Guteranya"
+
+#: c-typeck.c:2751
+#, fuzzy
+msgid "wrong type argument to unary minus"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2768
+#, fuzzy
+msgid "ISO C does not support `~' for complex conjugation"
+msgstr "C OYA Gushigikira kugirango ITSINDA RY'IMIBARE C"
+
+#: c-typeck.c:2774
+#, fuzzy
+msgid "wrong type argument to bit-complement"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2783
+#, fuzzy
+msgid "wrong type argument to abs"
+msgstr "Ubwoko Kuri ABS"
+
+#: c-typeck.c:2795
+#, fuzzy
+msgid "wrong type argument to conjugation"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2809
+#, fuzzy
+msgid "wrong type argument to unary exclamation mark"
+msgstr "Ubwoko Kuri Ikimenyetso"
+
+#: c-typeck.c:2852
+#, fuzzy
+msgid "ISO C does not support `++' and `--' on complex types"
+msgstr "C OYA Gushigikira Na ku ITSINDA RY'IMIBARE C"
+
+#: c-typeck.c:2867 c-typeck.c:2899
+#, fuzzy
+msgid "wrong type argument to increment"
+msgstr "Ubwoko Kuri Iyongeragaciro"
+
+#: c-typeck.c:2869 c-typeck.c:2901
+#, fuzzy
+msgid "wrong type argument to decrement"
+msgstr "Ubwoko Kuri"
+
+#: c-typeck.c:2890
+#, fuzzy
+msgid "increment of pointer to unknown structure"
+msgstr "Iyongeragaciro Bya Mweretsi Kuri Kitazwi Imiterere"
+
+#: c-typeck.c:2892
+#, fuzzy
+msgid "decrement of pointer to unknown structure"
+msgstr "Bya Mweretsi Kuri Kitazwi Imiterere"
+
+#: c-typeck.c:3029
+#, fuzzy
+msgid "ISO C forbids the address of a cast expression"
+msgstr "C i Aderesi Bya a imvugo"
+
+#: c-typeck.c:3039
+#, fuzzy
+msgid "invalid lvalue in unary `&'"
+msgstr "Sibyo in"
+
+#: c-typeck.c:3071
+#, fuzzy, c-format
+msgid "attempt to take address of bit-field structure member `%s'"
+msgstr "Kuri Aderesi Bya Umwanya Imiterere"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
+#, fuzzy, c-format
+msgid "%s"
+msgstr "%s"
+
+#: c-typeck.c:3241
+#, fuzzy
+msgid "ISO C forbids use of conditional expressions as lvalues"
+msgstr "C Gukoresha Bya Nka"
+
+#: c-typeck.c:3244
+#, fuzzy
+msgid "ISO C forbids use of compound expressions as lvalues"
+msgstr "C Gukoresha Bya Nka"
+
+#: c-typeck.c:3247
+#, fuzzy
+msgid "ISO C forbids use of cast expressions as lvalues"
+msgstr "C Gukoresha Bya Nka"
+
+#: c-typeck.c:3264
+#, fuzzy, c-format
+msgid "%s of read-only member `%s'"
+msgstr "%sBya Gusoma"
+
+#: c-typeck.c:3268
+#, fuzzy, c-format
+msgid "%s of read-only variable `%s'"
+msgstr "%sBya Gusoma IMPINDURAGACIRO"
+
+#: c-typeck.c:3271
+#, fuzzy, c-format
+msgid "%s of read-only location"
+msgstr "%sBya Gusoma Ahantu"
+
+#: c-typeck.c:3290
+#, fuzzy, c-format
+msgid "cannot take address of bit-field `%s'"
+msgstr "Aderesi Bya Umwanya"
+
+#: c-typeck.c:3318
+#, fuzzy, c-format
+msgid "global register variable `%s' used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: c-typeck.c:3322
+#, fuzzy, c-format
+msgid "register variable `%s' used in nested function"
+msgstr "Kwiyandikisha IMPINDURAGACIRO in Umumaro"
+
+#: c-typeck.c:3329
+#, fuzzy, c-format
+msgid "address of global register variable `%s' requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: c-typeck.c:3341
+#, fuzzy
+msgid "cannot put object with volatile field into register"
+msgstr "Gushyira Igikoresho Na: Umwanya Kwiyandikisha"
+
+#: c-typeck.c:3345
+#, fuzzy, c-format
+msgid "address of register variable `%s' requested"
+msgstr "Aderesi Bya Kwiyandikisha IMPINDURAGACIRO"
+
+#: c-typeck.c:3453
+#, fuzzy
+msgid "signed and unsigned type in conditional expression"
+msgstr "Na Bitashizweho umukono Ubwoko in imvugo"
+
+#: c-typeck.c:3460
+#, fuzzy
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr "C Na:"
+
+#: c-typeck.c:3476 c-typeck.c:3483
+#, fuzzy
+msgid "ISO C forbids conditional expr between `void *' and function pointer"
+msgstr "C hagati Na Umumaro Mweretsi"
+
+#: c-typeck.c:3489
+#, fuzzy
+msgid "pointer type mismatch in conditional expression"
+msgstr "Mweretsi Ubwoko in imvugo"
+
+#: c-typeck.c:3496 c-typeck.c:3506
+#, fuzzy
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr "Mweretsi Umubare wuzuye Ubwoko in imvugo"
+
+#: c-typeck.c:3520
+#, fuzzy
+msgid "type mismatch in conditional expression"
+msgstr "Ubwoko in imvugo"
+
+#: c-typeck.c:3591 cp/typeck.c:4623
+#, fuzzy
+msgid "left-hand operand of comma expression has no effect"
+msgstr "Ibumoso: Bya Akitso imvugo Oya INGARUKA"
+
+#: c-typeck.c:3635
+#, fuzzy
+msgid "cast specifies array type"
+msgstr "Imbonerahamwe Ubwoko"
+
+#: c-typeck.c:3641
+#, fuzzy
+msgid "cast specifies function type"
+msgstr "Umumaro Ubwoko"
+
+#: c-typeck.c:3651
+#, fuzzy
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr "C Kuri i Ubwoko"
+
+#: c-typeck.c:3670
+#, fuzzy
+msgid "ISO C forbids casts to union type"
+msgstr "C Kuri Ihuza Ubwoko"
+
+#: c-typeck.c:3685
+#, fuzzy
+msgid "cast to union type from type not present in union"
+msgstr "Kuri Ihuza Ubwoko Bivuye Ubwoko OYA in Ihuza"
+
+#: c-typeck.c:3736
+#, fuzzy
+msgid "cast adds new qualifiers to function type"
+msgstr "Gishya Kuri Umumaro Ubwoko"
+
+#. There are qualifiers present in IN_OTYPE that are not
+#. present in IN_TYPE.
+#: c-typeck.c:3741
+#, fuzzy
+msgid "cast discards qualifiers from pointer target type"
+msgstr "Bivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:3756
+#, fuzzy
+msgid "cast increases required alignment of target type"
+msgstr "Bya ngombwa Itunganya Bya Intego Ubwoko"
+
+#: c-typeck.c:3762 cp/typeck.c:5144
+#, fuzzy
+msgid "cast from pointer to integer of different size"
+msgstr "Bivuye Mweretsi Kuri Umubare wuzuye Bya Ingano"
+
+#: c-typeck.c:3767
+#, fuzzy
+msgid "cast does not match function type"
+msgstr "OYA BIHUYE Umumaro Ubwoko"
+
+#: c-typeck.c:3774 cp/typeck.c:5151
+#, fuzzy
+msgid "cast to pointer from integer of different size"
+msgstr "Kuri Mweretsi Bivuye Umubare wuzuye Bya Ingano"
+
+#: c-typeck.c:3786
+#, fuzzy
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "Ubwoko Kuri Ubwoko itandukanya"
+
+#: c-typeck.c:3790
+#, fuzzy
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "Ubwoko Mweretsi itandukanya"
+
+#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
+#. Reject anything strange now.
+#: c-typeck.c:3949
+#, fuzzy
+msgid "invalid lvalue in assignment"
+msgstr "Sibyo in Igenera"
+
+#. Convert new value to destination type.
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
+#, fuzzy
+msgid "assignment"
+msgstr "Igenera"
+
+#: c-typeck.c:4070
+#, fuzzy
+msgid "cannot pass rvalue to reference parameter"
+msgstr "Kuri Indango"
+
+#: c-typeck.c:4174 c-typeck.c:4241
+#, fuzzy, c-format
+msgid "%s makes qualified function pointer from unqualified"
+msgstr "%sUmumaro Mweretsi Bivuye"
+
+#: c-typeck.c:4178 c-typeck.c:4221
+#, fuzzy, c-format
+msgid "%s discards qualifiers from pointer target type"
+msgstr "%sBivuye Mweretsi Intego Ubwoko"
+
+#: c-typeck.c:4184
+#, fuzzy
+msgid "ISO C prohibits argument conversion to union type"
+msgstr "C Ihindurangero Kuri Ihuza Ubwoko"
+
+#: c-typeck.c:4213
+#, fuzzy, c-format
+msgid "ISO C forbids %s between function pointer and `void *'"
+msgstr "C hagati Umumaro Mweretsi Na"
+
+#: c-typeck.c:4230
+#, fuzzy, c-format
+msgid "pointer targets in %s differ in signedness"
+msgstr "Mweretsi in in"
+
+#: c-typeck.c:4246
+#, fuzzy, c-format
+msgid "%s from incompatible pointer type"
+msgstr "%sBivuye Mweretsi Ubwoko"
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+#, fuzzy
+msgid "invalid use of non-lvalue array"
+msgstr "Sibyo Gukoresha Bya Imbonerahamwe"
+
+#: c-typeck.c:4267
+#, fuzzy, c-format
+msgid "%s makes pointer from integer without a cast"
+msgstr "%sMweretsi Bivuye Umubare wuzuye a"
+
+#: c-typeck.c:4275
+#, fuzzy, c-format
+msgid "%s makes integer from pointer without a cast"
+msgstr "%sUmubare wuzuye Bivuye Mweretsi a"
+
+#: c-typeck.c:4289 c-typeck.c:4292
+#, fuzzy, c-format
+msgid "incompatible type for argument %d of `%s'"
+msgstr "Ubwoko kugirango Bya"
+
+#: c-typeck.c:4296
+#, fuzzy, c-format
+msgid "incompatible type for argument %d of indirect function call"
+msgstr "Ubwoko kugirango Bya BUZIGUYE Umumaro"
+
+#: c-typeck.c:4300
+#, fuzzy, c-format
+msgid "incompatible types in %s"
+msgstr "in"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4358
+#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "Bya"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "Bya Mweretsi Kuri Umumaro"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
+#, fuzzy, c-format
+msgid "passing arg %d of `%s'"
+msgstr "Bya"
+
+#. Function name unknown (call through ptr); just give arg number.
+#: c-typeck.c:4386
+#, fuzzy, c-format
+msgid "passing arg %d of pointer to function"
+msgstr "Bya Mweretsi Kuri Umumaro"
+
+#: c-typeck.c:4452
+#, fuzzy
+msgid "initializer for static variable is not constant"
+msgstr "kugirango IMPINDURAGACIRO ni OYA"
+
+#: c-typeck.c:4458
+#, fuzzy
+msgid "initializer for static variable uses complicated arithmetic"
+msgstr "kugirango IMPINDURAGACIRO"
+
+#: c-typeck.c:4466
+#, fuzzy
+msgid "aggregate initializer is not constant"
+msgstr "ni OYA"
+
+#: c-typeck.c:4468
+msgid "aggregate initializer uses complicated arithmetic"
+msgstr ""
+
+#: c-typeck.c:4475
+#, fuzzy
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr "C Byikoresha"
+
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
+#, fuzzy, c-format
+msgid "(near initialization for `%s')"
+msgstr "(kugirango"
+
+#: c-typeck.c:4737 cp/typeck2.c:488
+#, fuzzy
+msgid "char-array initialized from wide string"
+msgstr "INYUGUTI Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4744 cp/typeck2.c:495
+#, fuzzy
+msgid "int-array initialized from non-wide string"
+msgstr "INT Imbonerahamwe Bivuye Ikurikiranyanyuguti"
+
+#: c-typeck.c:4762 cp/typeck2.c:511
+#, fuzzy
+msgid "initializer-string for array of chars is too long"
+msgstr "Ikurikiranyanyuguti kugirango Imbonerahamwe Bya ni"
+
+#: c-typeck.c:4822
+#, fuzzy
+msgid "array initialized from non-constant array expression"
+msgstr "Imbonerahamwe Bivuye Imbonerahamwe imvugo"
+
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
+#, fuzzy
+msgid "initializer element is not constant"
+msgstr "Ikigize: ni OYA"
+
+#: c-typeck.c:4873
+msgid "initialization"
+msgstr ""
+
+#: c-typeck.c:4884 c-typeck.c:6286
+#, fuzzy
+msgid "initializer element is not computable at load time"
+msgstr "Ikigize: ni OYA ku Ibirimo Igihe"
+
+#: c-typeck.c:4899 cp/typeck2.c:588
+#, fuzzy
+msgid "invalid initializer"
+msgstr "Sibyo"
+
+#: c-typeck.c:5393
+#, fuzzy
+msgid "extra brace group at end of initializer"
+msgstr "Birenga Itsinda ku Impera Bya"
+
+#: c-typeck.c:5413
+#, fuzzy
+msgid "missing braces around initializer"
+msgstr "Ibuze Ingirwadusodeko"
+
+#: c-typeck.c:5473
+#, fuzzy
+msgid "braces around scalar initializer"
+msgstr "Ingirwadusodeko"
+
+#: c-typeck.c:5521
+#, fuzzy
+msgid "initialization of flexible array member in a nested context"
+msgstr "Bya Imbonerahamwe in a Imvugiro"
+
+#: c-typeck.c:5523
+#, fuzzy
+msgid "initialization of a flexible array member"
+msgstr "Bya a Imbonerahamwe"
+
+#: c-typeck.c:5554
+#, fuzzy
+msgid "missing initializer"
+msgstr "Ibuze"
+
+#: c-typeck.c:5580
+#, fuzzy
+msgid "empty scalar initializer"
+msgstr "ubusa"
+
+#: c-typeck.c:5585
+#, fuzzy
+msgid "extra elements in scalar initializer"
+msgstr "Birenga Ibintu in"
+
+#: c-typeck.c:5671
+#, fuzzy
+msgid "initialization designators may not nest"
+msgstr "Gicurasi OYA"
+
+#: c-typeck.c:5692 c-typeck.c:5763
+#, fuzzy
+msgid "array index in non-array initializer"
+msgstr "Imbonerahamwe Umubarendanga in Imbonerahamwe"
+
+#: c-typeck.c:5697 c-typeck.c:5817
+#, fuzzy
+msgid "field name not in record or union initializer"
+msgstr "Umwanya Izina: OYA in Icyabitswe Cyangwa Ihuza"
+
+#: c-typeck.c:5759 c-typeck.c:5761
+#, fuzzy
+msgid "nonconstant array index in initializer"
+msgstr "Imbonerahamwe Umubarendanga in"
+
+#: c-typeck.c:5765 c-typeck.c:5768
+#, fuzzy
+msgid "array index in initializer exceeds array bounds"
+msgstr "Imbonerahamwe Umubarendanga in Imbonerahamwe"
+
+#: c-typeck.c:5779
+#, fuzzy
+msgid "empty index range in initializer"
+msgstr "ubusa Umubarendanga Urutonde in"
+
+#: c-typeck.c:5788
+#, fuzzy
+msgid "array index range in initializer exceeds array bounds"
+msgstr "Imbonerahamwe Umubarendanga Urutonde in Imbonerahamwe"
+
+#: c-typeck.c:5829
+#, fuzzy, c-format
+msgid "unknown field `%s' specified in initializer"
+msgstr "Kitazwi Umwanya in"
+
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
+#, fuzzy
+msgid "initialized field with side-effects overwritten"
+msgstr "Umwanya Na: Ingaruka"
+
+#: c-typeck.c:6558
+#, fuzzy
+msgid "excess elements in char array initializer"
+msgstr "Ibintu in INYUGUTI Imbonerahamwe"
+
+#: c-typeck.c:6565 c-typeck.c:6611
+#, fuzzy
+msgid "excess elements in struct initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6626
+#, fuzzy
+msgid "non-static initialization of a flexible array member"
+msgstr "Bya a Imbonerahamwe"
+
+#: c-typeck.c:6693
+#, fuzzy
+msgid "excess elements in union initializer"
+msgstr "Ibintu in Ihuza"
+
+#: c-typeck.c:6714
+#, fuzzy
+msgid "traditional C rejects initialization of unions"
+msgstr "C Bya"
+
+#: c-typeck.c:6777
+#, fuzzy
+msgid "excess elements in array initializer"
+msgstr "Ibintu in Imbonerahamwe"
+
+#: c-typeck.c:6806
+#, fuzzy
+msgid "excess elements in vector initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6828
+#, fuzzy
+msgid "excess elements in scalar initializer"
+msgstr "Ibintu in"
+
+#: c-typeck.c:6935
+#, fuzzy
+msgid "asm template is not a string constant"
+msgstr "Inyandikorugero ni OYA a Ikurikiranyanyuguti"
+
+#: c-typeck.c:6967
+#, fuzzy
+msgid "invalid lvalue in asm statement"
+msgstr "Sibyo in Inyandiko"
+
+#: c-typeck.c:7042
+#, fuzzy
+msgid "modification by `asm'"
+msgstr "ku"
+
+#: c-typeck.c:7061 cp/typeck.c:6237
+#, fuzzy
+msgid "function declared `noreturn' has a `return' statement"
+msgstr "Umumaro a Inyandiko"
+
+#: c-typeck.c:7068
+#, fuzzy
+msgid "`return' with no value, in function returning non-void"
+msgstr "`Na: Oya Agaciro in Umumaro"
+
+#: c-typeck.c:7074
+#, fuzzy
+msgid "`return' with a value, in function returning void"
+msgstr "`Na: a Agaciro in Umumaro"
+
+#: c-typeck.c:7078
+#, fuzzy
+msgid "return"
+msgstr "Garuka"
+
+#: c-typeck.c:7130
+#, fuzzy
+msgid "function returns address of local variable"
+msgstr "Umumaro Aderesi Bya IMPINDURAGACIRO"
+
+#: c-typeck.c:7186 cp/semantics.c:555
+#, fuzzy
+msgid "switch quantity not an integer"
+msgstr "Hindura Ingano OYA Umubare wuzuye"
+
+#: c-typeck.c:7196
+#, fuzzy
+msgid "`long' switch expression not converted to `int' in ISO C"
+msgstr "`Hindura imvugo OYA Kuri in C"
+
+#: c-typeck.c:7231 cp/decl.c:5523
+#, fuzzy
+msgid "case label not within a switch statement"
+msgstr "Akarango OYA muri a Hindura Inyandiko"
+
+#: c-typeck.c:7233 cp/decl.c:5528
+#, fuzzy
+msgid "`default' label not within a switch statement"
+msgstr "`Akarango OYA muri a Hindura Inyandiko"
+
+#: calls.c:1934 tree-inline.c:1177
+#, fuzzy, c-format
+msgid "inlining failed in call to `%s'"
+msgstr "Byanze in Kuri"
+
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
+#, fuzzy
+msgid "called from here"
+msgstr "Bivuye"
+
+#: calls.c:2270
+#, fuzzy, c-format
+msgid "can't inline call to `%s'"
+msgstr "Mumurongo Kuri"
+
+#: calls.c:2300
+#, fuzzy
+msgid "function call has aggregate value"
+msgstr "Umumaro Agaciro"
+
+#: cfgloop.c:1107
+#, fuzzy, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "Bya OYA"
+
+#: cfgloop.c:1126
+#, fuzzy, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "OYA Kuri"
+
+#: cfgloop.c:1144
+#, fuzzy, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "S Umutwempangano OYA 2. Ibyinjijwe"
+
+#: cfgloop.c:1152
+#, fuzzy, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "S OYA 1."
+
+#: cfgloop.c:1157
+#, fuzzy, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "S OYA Umutwempangano Nka"
+
+#: cfgloop.c:1162
+#, fuzzy, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "S OYA Kuri"
+
+#: cfgloop.c:1168
+#, fuzzy, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "S Umutwempangano OYA Kuri"
+
+#: cfgrtl.c:1774
+#, fuzzy, c-format
+msgid "bb %d on wrong place"
+msgstr "ku"
+
+#: cfgrtl.c:1780
+#, fuzzy, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "Bya OYA"
+
+#: cfgrtl.c:1800
+#, fuzzy, c-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr "Impera kugirango Funga OYA Byabonetse in i"
+
+#: cfgrtl.c:1814
+#, fuzzy, c-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr "ni in Igikubo BASIC Na"
+
+#: cfgrtl.c:1826
+#, fuzzy, c-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr "kugirango Funga OYA Byabonetse in i"
+
+#: cfgrtl.c:1848
+#, fuzzy, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "OYA BIHUYE"
+
+#: cfgrtl.c:1855
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "IBARA Bya Funga"
+
+#: cfgrtl.c:1861
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "Ubwisubire Bya Funga"
+
+#: cfgrtl.c:1869
+#, c-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1875
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "Imishobokere Bya"
+
+#: cfgrtl.c:1881
+#, fuzzy, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "IBARA Bya"
+
+#: cfgrtl.c:1911
+#, fuzzy, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr "kugirango"
+
+#: cfgrtl.c:1926
+#, c-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1928
+#, fuzzy
+msgid "wrong insn in the fallthru edge"
+msgstr "in i"
+
+#: cfgrtl.c:1935
+#, fuzzy, c-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr "Funga ni"
+
+#: cfgrtl.c:1951
+#, fuzzy, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "Impugukirwa in i Impera Bya"
+
+#: cfgrtl.c:1959
+#, fuzzy, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "Bivuye"
+
+#: cfgrtl.c:1964
+#, fuzzy, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "Nyuma Simbuka"
+
+#: cfgrtl.c:1969
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Igiteranyo Bya Nyuma Simbuka"
+
+#: cfgrtl.c:1975
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Igiteranyo Bya Nyuma Simbuka"
+
+#: cfgrtl.c:1980
+#, fuzzy, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "kugirango in"
+
+#: cfgrtl.c:1989
+#, fuzzy, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "kugirango Oya Intego in"
+
+#: cfgrtl.c:2004
+#, fuzzy, c-format
+msgid "missing barrier after block %i"
+msgstr "Ibuze Nyuma Funga"
+
+#: cfgrtl.c:2014
+#, fuzzy, c-format
+msgid "basic block %d pred edge is corrupted"
+msgstr "BASIC Funga ni"
+
+#: cfgrtl.c:2031
+#, fuzzy, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
+msgstr "Mo Imbere BASIC Funga ni"
+
+#: cfgrtl.c:2035
+#, fuzzy, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
+msgstr "Mo Imbere BASIC Funga ni"
+
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, fuzzy, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr "ni Ibuze kugirango Funga"
+
+#: cfgrtl.c:2072
+#, fuzzy, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr "in Hagati Bya BASIC Funga"
+
+#: cfgrtl.c:2084
+#, fuzzy, c-format
+msgid "in basic block %d:"
+msgstr "in BASIC Funga"
+
+#: cfgrtl.c:2085
+#, fuzzy
+msgid "flow control insn inside a basic block"
+msgstr "Igenzura Mo Imbere a BASIC Funga"
+
+#: cfgrtl.c:2104
+#, fuzzy, c-format
+msgid "basic block %i edge lists are corrupted"
+msgstr "BASIC Funga Intonde"
+
+#: cfgrtl.c:2119
+#, fuzzy
+msgid "basic blocks not numbered consecutively"
+msgstr "BASIC OYA Iriho Imibare"
+
+#: cfgrtl.c:2144
+#, fuzzy
+msgid "insn outside basic block"
+msgstr "Hanze BASIC Funga"
+
+#: cfgrtl.c:2152
+#, fuzzy
+msgid "return not followed by barrier"
+msgstr "Garuka OYA ku"
+
+#: cfgrtl.c:2157
+#, fuzzy, c-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr "Umubare Bya Ibisobanuro in"
+
+#: cfgrtl.c:2161
+#, fuzzy
+msgid "verify_flow_info failed"
+msgstr "Byanze"
+
+#: collect2.c:425
+#, fuzzy
+msgid "internal error"
+msgstr "Ikosa ry'imbere"
+
+#: collect2.c:934
+#, fuzzy
+msgid "no arguments"
+msgstr "Oya ingingo"
+
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
+msgid "fopen %s"
+msgstr ""
+
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
+#, c-format
+msgid "fclose %s"
+msgstr ""
+
+#: collect2.c:1275
+#, fuzzy, c-format
+msgid "collect2 version %s"
+msgstr "Verisiyo"
+
+#: collect2.c:1365
+#, fuzzy, c-format
+msgid "%d constructor(s) found\n"
+msgstr "%dS"
+
+#: collect2.c:1366
+#, fuzzy, c-format
+msgid "%d destructor(s) found\n"
+msgstr "%dS"
+
+#: collect2.c:1367
+#, fuzzy, c-format
+msgid "%d frame table(s) found\n"
+msgstr "%dIkadiri imbonerahamwe# S"
+
+#: collect2.c:1508
+#, fuzzy, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%sNa:"
+
+#: collect2.c:1527
+#, fuzzy, c-format
+msgid "%s returned %d exit status"
+msgstr "%sGusohoka Imimerere"
+
+#: collect2.c:1555
+#, fuzzy, c-format
+msgid "[cannot find %s]"
+msgstr "[Gushaka"
+
+#: collect2.c:1570
+#, fuzzy, c-format
+msgid "cannot find `%s'"
+msgstr "Gushaka"
+
+#: collect2.c:1581 collect2.c:1584
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr ""
+
+#: collect2.c:1627
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr ""
+
+#: collect2.c:1870
+#, fuzzy, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr "Ibisohoka Izina: ni Imbanziriza ni"
+
+#: collect2.c:2082
+#, fuzzy
+msgid "cannot find `nm'"
+msgstr "Gushaka"
+
+#: collect2.c:2092 collect2.c:2533
+msgid "pipe"
+msgstr ""
+
+#: collect2.c:2096 collect2.c:2537
+msgid "fdopen"
+msgstr ""
+
+#: collect2.c:2122 collect2.c:2563
+#, fuzzy, c-format
+msgid "dup2 %d 1"
+msgstr "1."
+
+# svx/source\svdraw\svdstr.src:STR_EditShut.text
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, fuzzy, c-format
+msgid "close %d"
+msgstr "Gufunga"
+
+#: collect2.c:2131 collect2.c:2572
+#, c-format
+msgid "execv %s"
+msgstr ""
+
+#: collect2.c:2185
+#, fuzzy, c-format
+msgid "init function found in object %s"
+msgstr "Umumaro Byabonetse in Igikoresho"
+
+#: collect2.c:2193
+#, fuzzy, c-format
+msgid "fini function found in object %s"
+msgstr "Umumaro Byabonetse in Igikoresho"
+
+#: collect2.c:2216 collect2.c:2621
+msgid "fclose"
+msgstr ""
+
+#: collect2.c:2261
+#, fuzzy, c-format
+msgid "unable to open file '%s'"
+msgstr "Kuri Gufungura IDOSIYE"
+
+#: collect2.c:2263
+#, fuzzy, c-format
+msgid "unable to stat file '%s'"
+msgstr "Kuri IDOSIYE"
+
+#: collect2.c:2269
+#, fuzzy, c-format
+msgid "unable to mmap file '%s'"
+msgstr "Kuri IDOSIYE"
+
+#: collect2.c:2422
+#, fuzzy
+msgid "not found\n"
+msgstr "OYA"
+
+#: collect2.c:2424 collect2.c:2600
+#, fuzzy, c-format
+msgid "dynamic dependency %s not found"
+msgstr "OYA Byabonetse"
+
+#: collect2.c:2444
+#, fuzzy, c-format
+msgid "bad magic number in file '%s'"
+msgstr "Umubare in IDOSIYE"
+
+#: collect2.c:2466
+msgid "dynamic dependencies.\n"
+msgstr ""
+
+#: collect2.c:2524
+#, fuzzy
+msgid "cannot find `ldd'"
+msgstr "Gushaka"
+
+#: collect2.c:2585
+#, fuzzy
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr "Ibisohoka Na:"
+
+#: collect2.c:2612
+#, fuzzy, c-format
+msgid "unable to open dynamic dependency '%s'"
+msgstr "Kuri Gufungura"
+
+#: collect2.c:2726
+#, fuzzy, c-format
+msgid "%s: not a COFF file"
+msgstr "%s:OYA a IDOSIYE"
+
+#: collect2.c:2845
+#, fuzzy, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s:Gufungura Nka IDOSIYE"
+
+#: collect2.c:2901
+#, fuzzy, c-format
+msgid "library lib%s not found"
+msgstr "Isomero OYA Byabonetse"
+
+# sfx2/source\appl\minbox.src:RID_MAIL_INBOX.BTN_MAILINBOX_OPEN.text
+#: collect2.c:3028
+#, fuzzy, c-format
+msgid "open %s"
+msgstr "Gufungura..."
+
+#: collect2.c:3051
+#, fuzzy
+msgid "incompatibilities between object file & expected values"
+msgstr "hagati Igikoresho IDOSIYE Ikitezwe: Uduciro"
+
+#: collect2.c:3124
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+msgstr "IKIMENYETSO imbonerahamwe# Nta- boneza"
+
+#: collect2.c:3133
+#, fuzzy
+msgid "string section missing"
+msgstr "Ikurikiranyanyuguti Icyiciro Ibuze"
+
+#: collect2.c:3136
+#, fuzzy
+msgid "section pointer missing"
+msgstr "Icyiciro Mweretsi Ibuze"
+
+#: collect2.c:3184
+#, fuzzy
+msgid "no symbol table found"
+msgstr "Oya IKIMENYETSO imbonerahamwe# Byabonetse"
+
+#: collect2.c:3197
+#, fuzzy
+msgid "no cmd_strings found"
+msgstr "Oya Byabonetse"
+
+#: collect2.c:3209
+#, fuzzy
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
+msgstr "Umutwempangano Na Ibirimo Amabwiriza"
+
+#: collect2.c:3216
+#, fuzzy, c-format
+msgid "load command map, %d cmds, new size %ld.\n"
+msgstr "Ibirimo Komandi: Gishya Ingano"
+
+#: collect2.c:3247
+#, fuzzy
+msgid ""
+"writing load commands.\n"
+"\n"
+msgstr "Ibirimo Amabwiriza"
+
+# svx/source\svdraw\svdstr.src:STR_EditShut.text
+#: collect2.c:3267
+#, fuzzy, c-format
+msgid "close %s"
+msgstr "Gufunga"
+
+#: collect2.c:3341
+#, fuzzy
+msgid "could not convert 0x%l.8x into a region"
+msgstr "OYA GUHINDURA a"
+
+#: collect2.c:3345
+#, fuzzy, c-format
+msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+msgstr "%sUmumaro Nta- boneza"
+
+#: collect2.c:3472
+#, fuzzy
+msgid "bad magic number"
+msgstr "Umubare"
+
+#: collect2.c:3473
+#, fuzzy
+msgid "bad header version"
+msgstr "Umutwempangano Verisiyo"
+
+#: collect2.c:3474
+#, fuzzy
+msgid "bad raw header version"
+msgstr "Umutwempangano Verisiyo"
+
+#: collect2.c:3475
+#, fuzzy
+msgid "raw header buffer too small"
+msgstr "Umutwempangano Gitoya"
+
+#: collect2.c:3476
+#, fuzzy
+msgid "old raw header file"
+msgstr "ki/ bishaje Umutwempangano IDOSIYE"
+
+#: collect2.c:3477
+#, fuzzy
+msgid "unsupported version"
+msgstr "Verisiyo"
+
+#: collect2.c:3479
+#, fuzzy, c-format
+msgid "unknown {de,en}code_mach_o_hdr return value %d"
+msgstr "Kitazwi Garuka Agaciro"
+
+#: collect2.c:3499
+#, c-format
+msgid "fstat %s"
+msgstr ""
+
+#: collect2.c:3536 collect2.c:3584
+#, fuzzy, c-format
+msgid "lseek %s 0"
+msgstr "0"
+
+# svx/inc\globlmn.hrc:ITEM_FILE_MAIL_INBOX.text
+#: collect2.c:3540
+#, fuzzy, c-format
+msgid "read %s"
+msgstr "Gusoma"
+
+#: collect2.c:3543
+#, fuzzy, c-format
+msgid "read %ld bytes, expected %ld, from %s"
+msgstr "Gusoma Bayite Ikitezwe: Bivuye"
+
+#: collect2.c:3564
+#, c-format
+msgid "msync %s"
+msgstr ""
+
+#: collect2.c:3571
+#, c-format
+msgid "munmap %s"
+msgstr ""
+
+# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
+# officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Filter.HTML.Export.Browser..3.text
+# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
+# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....FormLetter.MailingOutput.Format..8.text
+#: collect2.c:3588
+#, fuzzy, c-format
+msgid "write %s"
+msgstr "Kwandika"
+
+#: collect2.c:3591
+#, fuzzy, c-format
+msgid "wrote %ld bytes, expected %ld, to %s"
+msgstr "Bayite Ikitezwe: Kuri"
+
+#: combine.c:13222
+#, fuzzy, c-format
+msgid ""
+";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+"\n"
+msgstr ";;Sitatisitiki Gishya Umwanya Ibyatunganye"
+
+#: combine.c:13232
+#, fuzzy, c-format
+msgid ""
+"\n"
+";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+msgstr ";;Gishya Umwanya Ibyatunganye"
+
+#: convert.c:69
+#, fuzzy
+msgid "cannot convert to a pointer type"
+msgstr "GUHINDURA Kuri a Mweretsi Ubwoko"
+
+#: convert.c:102
+#, fuzzy
+msgid "pointer value used where a floating point value was expected"
+msgstr "Mweretsi Agaciro a Bihindagurika Akadomo Agaciro Ikitezwe:"
+
+#: convert.c:106
+#, fuzzy
+msgid "aggregate value used where a float was expected"
+msgstr "Agaciro a Kureremba Ikitezwe:"
+
+#: convert.c:132
+#, fuzzy
+msgid "conversion to incomplete type"
+msgstr "Ihindurangero Kuri Ubwoko"
+
+#: convert.c:414 convert.c:494
+#, fuzzy
+msgid "can't convert between vector values of different size"
+msgstr "GUHINDURA hagati Uduciro Bya Ingano"
+
+#: convert.c:420
+#, fuzzy
+msgid "aggregate value used where an integer was expected"
+msgstr "Agaciro Umubare wuzuye Ikitezwe:"
+
+#: convert.c:472 f/com.c:1100
+#, fuzzy
+msgid "pointer value used where a complex was expected"
+msgstr "Mweretsi Agaciro a ITSINDA RY'IMIBARE C Ikitezwe:"
+
+#: convert.c:476 f/com.c:1102
+#, fuzzy
+msgid "aggregate value used where a complex was expected"
+msgstr "Agaciro a ITSINDA RY'IMIBARE C Ikitezwe:"
+
+#: convert.c:500
+#, fuzzy
+msgid "can't convert value to a vector"
+msgstr "GUHINDURA Agaciro Kuri a"
+
+#: cpperror.c:113
+#, fuzzy
+msgid "warning: "
+msgstr "Iburira!"
+
+#: cpperror.c:115
+#, fuzzy
+msgid "internal error: "
+msgstr "Ikosa ry'imbere"
+
+#: cpperror.c:189
+msgid "stdout"
+msgstr ""
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: cpperror.c:191 gcc.c:6428
+#, fuzzy, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: cppexp.c:199
+#, fuzzy
+msgid "too many decimal points in number"
+msgstr "NYACUMI Utudomo in Umubare"
+
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "Sibyo in"
+
+#: cppexp.c:225
+#, fuzzy
+msgid "use of C99 hexadecimal floating constant"
+msgstr "Gukoresha Bya Bihindagurika"
+
+#: cppexp.c:234
+#, fuzzy
+msgid "exponent has no digits"
+msgstr "Oya"
+
+#: cppexp.c:241
+#, fuzzy
+msgid "hexadecimal floating constants require an exponent"
+msgstr "Bihindagurika"
+
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "Sibyo Ingereka S ku Bihindagurika"
+
+#: cppexp.c:257 cppexp.c:282
+#, fuzzy, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C i S Ingereka"
+
+#: cppexp.c:268
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "Sibyo Ingereka S ku Umubare wuzuye"
+
+#: cppexp.c:289
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "Gukoresha Bya Umubare wuzuye"
+
+#: cppexp.c:295
+#, fuzzy
+msgid "imaginary constants are a GCC extension"
+msgstr "NYURABWENGE a Umugereka"
+
+#: cppexp.c:383
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "Umubare wuzuye ni Binini kugirango Ubwoko"
+
+#: cppexp.c:395
+#, fuzzy
+msgid "integer constant is so large that it is unsigned"
+msgstr "Umubare wuzuye ni Binini ni Bitashizweho umukono"
+
+#: cppexp.c:482
+#, fuzzy
+msgid "missing ')' after \"defined\""
+msgstr "Ibuze Nyuma"
+
+#: cppexp.c:489
+#, fuzzy
+msgid "operator \"defined\" requires an identifier"
+msgstr "Mukoresha Ikiranga"
+
+#: cppexp.c:497
+#, fuzzy, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\"ni kugirango in C"
+
+#: cppexp.c:507
+#, fuzzy
+msgid "this use of \"defined\" may not be portable"
+msgstr "iyi Gukoresha Bya Gicurasi OYA"
+
+#: cppexp.c:545
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr "Bihindagurika in imvugo"
+
+#: cppexp.c:551
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "NYURABWENGE Umubare in imvugo"
+
+#: cppexp.c:596
+#, fuzzy, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr "C OYA in NIBA"
+
+#: cppexp.c:604
+#, fuzzy, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\"ni OYA"
+
+#: cppexp.c:737 cppexp.c:772
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "Ibuze Nyabibiri Mukoresha Mbere"
+
+#: cppexp.c:756
+#, fuzzy, c-format
+msgid "invalid character '%c' in #if"
+msgstr "Sibyo Inyuguti in NIBA"
+
+#: cppexp.c:758
+#, fuzzy, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "Sibyo Inyuguti in NIBA"
+
+#: cppexp.c:763
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "ni OYA Byemewe in"
+
+#: cppexp.c:782
+#, fuzzy
+msgid "void expression between '(' and ')'"
+msgstr "imvugo hagati Na"
+
+#: cppexp.c:785
+#, fuzzy
+msgid "#if with no expression"
+msgstr "#NIBA Na: Oya imvugo"
+
+#: cppexp.c:787
+#, fuzzy, c-format
+msgid "operator '%s' has no right operand"
+msgstr "Mukoresha Oya Iburyo:"
+
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr ""
+
+#: cppexp.c:840
+#, fuzzy
+msgid "unbalanced stack in #if"
+msgstr "in NIBA"
+
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "Mukoresha"
+
+#: cppexp.c:954
+#, fuzzy
+msgid "missing ')' in expression"
+msgstr "Ibuze in imvugo"
+
+#: cppexp.c:975
+#, fuzzy
+msgid "'?' without following ':'"
+msgstr ""
+"''Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: cppexp.c:985
+#, fuzzy
+msgid "integer overflow in preprocessor expression"
+msgstr "Umubare wuzuye Byarenze urugero in imvugo"
+
+#: cppexp.c:990
+#, fuzzy
+msgid "missing '(' in expression"
+msgstr "Ibuze in imvugo"
+
+#: cppexp.c:1026
+#, fuzzy, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "i Ibumoso: Bya Amahinduka IKIMENYETSO Ryari:"
+
+#: cppexp.c:1031
+#, fuzzy, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "i Iburyo: Bya Amahinduka IKIMENYETSO Ryari:"
+
+#: cppexp.c:1414
+#, fuzzy
+msgid "comma operator in operand of #if"
+msgstr "Akitso Mukoresha in Bya NIBA"
+
+#: cppexp.c:1551
+#, fuzzy
+msgid "division by zero in #if"
+msgstr "ku Zeru in NIBA"
+
+#: cppfiles.c:411
+#, fuzzy, c-format
+msgid "%s is too large"
+msgstr "%sni Binini"
+
+#: cppfiles.c:447
+#, fuzzy, c-format
+msgid "%s is shorter than expected"
+msgstr "%sni Ikitezwe:"
+
+#: cppfiles.c:461
+#, fuzzy, c-format
+msgid "%s is a block device"
+msgstr "%sni a Funga APAREYE"
+
+#: cppfiles.c:594
+#, fuzzy, c-format
+msgid "no include path in which to find %s"
+msgstr "Oya Gushyiramo Inzira in Kuri Gushaka"
+
+#: cppfiles.c:668
+#, fuzzy
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Gushyiramo Gicurasi kugirango"
+
+#: cppfiles.c:1014
+#, fuzzy
+msgid "absolute file name in remap_filename"
+msgstr "IDOSIYE Izina: in"
+
+#: cppinit.c:224
+#, fuzzy, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "bushyinguro"
+
+#: cppinit.c:231
+#, fuzzy, c-format
+msgid "%s: Not a directory"
+msgstr "%s:a bushyinguro"
+
+#: cppinit.c:287
+#, fuzzy, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr "Gusubiramo bushyinguro"
+
+#: cppinit.c:325
+#, fuzzy
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr "Nka ni a Sisitemu bushyinguro a Sisitemu"
+
+#: cppinit.c:891
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "Bitashizweho umukono Ubwoko"
+
+#: cppinit.c:895
+#, fuzzy, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "Kinini Bya Intego"
+
+#: cppinit.c:901
+#, fuzzy
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "ku Nka Nka a Intego INT"
+
+#: cppinit.c:904
+#, fuzzy
+msgid "target char is less than 8 bits wide"
+msgstr "Intego INYUGUTI ni Birutwa 8"
+
+#: cppinit.c:908
+#, fuzzy
+msgid "target wchar_t is narrower than target char"
+msgstr "Intego ni Intego INYUGUTI"
+
+#: cppinit.c:912
+#, fuzzy
+msgid "target int is narrower than target char"
+msgstr "Intego INT ni Intego INYUGUTI"
+
+#: cppinit.c:916
+#, fuzzy
+msgid "CPP half-integer narrower than CPP character"
+msgstr "Umubare wuzuye Inyuguti"
+
+#: cppinit.c:920
+#, fuzzy, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "ku iyi Ubuturo Inyuguti KURI i Intego"
+
+#: cppinit.c:972
+#, fuzzy
+msgid "#include \"...\" search starts here:\n"
+msgstr "#Gushyiramo Gushaka"
+
+#: cppinit.c:976
+#, fuzzy
+msgid "#include <...> search starts here:\n"
+msgstr "#Gushyiramo Gushaka"
+
+#: cppinit.c:979
+#, fuzzy
+msgid "End of search list.\n"
+msgstr "Impera Bya Gushaka Urutonde"
+
+#: cppinit.c:1057
+#, fuzzy
+msgid "<built-in>"
+msgstr "<in"
+
+#: cppinit.c:1059
+#, fuzzy
+msgid "<command line>"
+msgstr "<Komandi: Umurongo"
+
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, fuzzy, c-format
+msgid "assertion missing after %s"
+msgstr "Ibuze Nyuma"
+
+#: cppinit.c:1165
+#, fuzzy, c-format
+msgid "directory name missing after %s"
+msgstr "bushyinguro Izina: Ibuze Nyuma"
+
+#: cppinit.c:1166
+#, fuzzy, c-format
+msgid "file name missing after %s"
+msgstr "IDOSIYE Izina: Ibuze Nyuma"
+
+#: cppinit.c:1167
+#, fuzzy, c-format
+msgid "macro name missing after %s"
+msgstr "Makoro Izina: Ibuze Nyuma"
+
+#: cppinit.c:1168
+#, fuzzy, c-format
+msgid "path name missing after %s"
+msgstr "Inzira Izina: Ibuze Nyuma"
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr ""
+
+#: cpplex.c:149
+#, fuzzy, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+"Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: cpplex.c:157
+#, fuzzy, c-format
+msgid "trigraph ??%c ignored"
+msgstr ""
+"Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: cpplex.c:214
+#, fuzzy
+msgid "backslash and newline separated by space"
+msgstr "Na ku Umwanya"
+
+#: cpplex.c:221 cpptrad.c:158
+#, fuzzy
+msgid "backslash-newline at end of file"
+msgstr "ku Impera Bya IDOSIYE"
+
+#: cpplex.c:287 cpptrad.c:199
+#, fuzzy
+msgid "\"/*\" within comment"
+msgstr "\"/*\"muri Icyo wongeraho"
+
+#: cpplex.c:395
+#, fuzzy
+msgid "null character(s) ignored"
+msgstr "NTAGIHARI Inyuguti S"
+
+#: cpplex.c:402
+#, fuzzy, c-format
+msgid "%s in preprocessing directive"
+msgstr "%sin"
+
+#: cpplex.c:475
+#, fuzzy, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Kuri Gukoresha"
+
+#: cpplex.c:483
+#, fuzzy
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "_Kugaragara in i Bya a Makoro"
+
+#: cpplex.c:555
+#, fuzzy
+msgid "'$' character(s) in identifier or number"
+msgstr "'$'Inyuguti S in Ikiranga Cyangwa Umubare"
+
+#: cpplex.c:698
+#, fuzzy, c-format
+msgid "missing terminating %c character"
+msgstr "Ibuze Inyuguti"
+
+#: cpplex.c:711
+#, fuzzy
+msgid "null character(s) preserved in literal"
+msgstr "NTAGIHARI Inyuguti S in"
+
+#: cpplex.c:915 cpptrad.c:487
+#, fuzzy
+msgid "no newline at end of file"
+msgstr "Oya ku Impera Bya IDOSIYE"
+
+#: cpplex.c:1092 cpptrad.c:213
+#, fuzzy
+msgid "unterminated comment"
+msgstr "Icyo wongeraho"
+
+#: cpplex.c:1103
+#, fuzzy
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C IMISUSIRE Ibisobanuro OYA in"
+
+#: cpplex.c:1105
+#, fuzzy
+msgid "(this will be reported only once per input file)"
+msgstr "(iyi Rimwe Iyinjiza IDOSIYE"
+
+#: cpplex.c:1110
+#, fuzzy
+msgid "multi-line comment"
+msgstr "Umurongo Icyo wongeraho"
+
+#: cpplex.c:1425
+#, fuzzy, c-format
+msgid "unknown string token %s\n"
+msgstr "Kitazwi Ikurikiranyanyuguti"
+
+#: cpplex.c:1438
+#, c-format
+msgid "unspellable token %s"
+msgstr ""
+
+#: cpplex.c:1695
+#, fuzzy, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: cpplex.c:1701
+#, fuzzy
+msgid "incomplete universal-character-name"
+msgstr "Ky'isi yose Inyuguti Izina:"
+
+#: cpplex.c:1715
+#, fuzzy, c-format
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr "in Ky'isi yose Inyuguti Izina:"
+
+#: cpplex.c:1723
+#, fuzzy
+msgid "universal-character-name on EBCDIC target"
+msgstr "Ky'isi yose Inyuguti Izina: ku Intego"
+
+#: cpplex.c:1737
+#, fuzzy
+msgid "universal-character-name out of range"
+msgstr "Ky'isi yose Inyuguti Izina: Inyuma Bya Urutonde"
+
+#: cpplex.c:1791
+#, fuzzy
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: cpplex.c:1798
+#, fuzzy, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "Bisanzwe"
+
+#: cpplex.c:1809
+#, fuzzy
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "i Igisobanuro Bya ni in C"
+
+#: cpplex.c:1828 f/lex.c:585
+#, fuzzy
+msgid "\\x used with no following hex digits"
+msgstr "\\xNa: Oya"
+
+#: cpplex.c:1833
+#, fuzzy
+msgid "hex escape sequence out of range"
+msgstr "Inyuma Bya Urutonde"
+
+#: cpplex.c:1858
+#, fuzzy
+msgid "octal escape sequence out of range"
+msgstr "Inyuma Bya Urutonde"
+
+#: cpplex.c:1874
+#, fuzzy, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "Kitazwi"
+
+#: cpplex.c:1877
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "Kitazwi"
+
+#: cpplex.c:1882
+#, fuzzy
+msgid "escape sequence out of range for its type"
+msgstr "Inyuma Bya Urutonde kugirango Ubwoko"
+
+#: cpplex.c:1973
+#, fuzzy
+msgid "empty character constant"
+msgstr "ubusa Inyuguti"
+
+#: cpplex.c:1983
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr "Inyuguti kugirango Ubwoko"
+
+#: cpplex.c:1986
+#, fuzzy
+msgid "multi-character character constant"
+msgstr "Inyuguti Inyuguti"
+
+#: cpplib.c:225
+#, fuzzy, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "Birenga ku Impera Bya"
+
+#: cpplib.c:315
+#, fuzzy, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%sni a Umugereka"
+
+#: cpplib.c:327
+#, fuzzy
+msgid "suggest not using #elif in traditional C"
+msgstr "OYA ikoresha in C"
+
+#: cpplib.c:330
+#, fuzzy, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C Na: i hariho marije"
+
+#: cpplib.c:334
+#, fuzzy, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "Bivuye C Na: hariho marije"
+
+#: cpplib.c:358
+#, fuzzy
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "a muri Makoro ingingo ni OYA"
+
+#: cpplib.c:378
+#, fuzzy
+msgid "style of line directive is a GCC extension"
+msgstr "IMISUSIRE Bya Umurongo ni a Umugereka"
+
+#: cpplib.c:428
+#, fuzzy, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "Sibyo"
+
+#: cpplib.c:500
+#, fuzzy
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"Nka a Makoro Izina:"
+
+#: cpplib.c:506
+#, fuzzy, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\"Nka a Makoro Izina: Nka ni Mukoresha in C"
+
+#: cpplib.c:509
+#, fuzzy, c-format
+msgid "no macro name given in #%s directive"
+msgstr "Oya Makoro Izina: in"
+
+#: cpplib.c:512
+#, fuzzy
+msgid "macro names must be identifiers"
+msgstr "Makoro Amazina"
+
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: cpplib.c:598
+#, fuzzy
+msgid "missing terminating > character"
+msgstr "Ibuze Inyuguti"
+
+#: cpplib.c:637
+#, fuzzy, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%sCyangwa"
+
+#: cpplib.c:648
+#, fuzzy, c-format
+msgid "empty file name in #%s"
+msgstr "ubusa IDOSIYE Izina: in"
+
+#: cpplib.c:667
+#, fuzzy
+msgid "#include_next in primary source file"
+msgstr "#in Inkomoko IDOSIYE"
+
+#: cpplib.c:674
+#, fuzzy
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr "#Kuzana ni Gukoresha in i Umutwempangano IDOSIYE"
+
+#: cpplib.c:682
+#, fuzzy
+msgid "#include nested too deeply"
+msgstr "#Gushyiramo"
+
+#: cpplib.c:739
+#, fuzzy, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "Sibyo Ibendera in Umurongo"
+
+#: cpplib.c:814
+#, fuzzy, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\"Nyuma Umurongo ni OYA a Umubare wuzuye"
+
+#: cpplib.c:820
+#, fuzzy
+msgid "line number out of range"
+msgstr "Umurongo Umubare Inyuma Bya Urutonde"
+
+#: cpplib.c:831 cpplib.c:902
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\"ni OYA a Byemewe Izina ry'idosiye:"
+
+#: cpplib.c:866
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\"Nyuma ni OYA a Umubare wuzuye"
+
+#: cpplib.c:973
+#, fuzzy
+msgid "invalid #ident directive"
+msgstr "Sibyo"
+
+#: cpplib.c:1061
+#, fuzzy, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "Nka Byombi a Na a"
+
+#: cpplib.c:1064
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#ni"
+
+#: cpplib.c:1067
+#, fuzzy, c-format
+msgid "#pragma %s is already registered"
+msgstr "#ni"
+
+#: cpplib.c:1143
+#, fuzzy
+msgid "#pragma once is obsolete"
+msgstr "#Rimwe ni"
+
+#: cpplib.c:1146
+#, fuzzy
+msgid "#pragma once in main file"
+msgstr "#Rimwe in IDOSIYE"
+
+#: cpplib.c:1170
+#, fuzzy
+msgid "invalid #pragma GCC poison directive"
+msgstr "Sibyo"
+
+#: cpplib.c:1179
+#, fuzzy, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "Makoro"
+
+#: cpplib.c:1201
+#, fuzzy
+msgid "#pragma system_header ignored outside include file"
+msgstr "#Hanze Gushyiramo IDOSIYE"
+
+#: cpplib.c:1226
+#, fuzzy, c-format
+msgid "cannot find source %s"
+msgstr "Gushaka Inkomoko"
+
+#: cpplib.c:1230
+#, fuzzy, c-format
+msgid "current file is older than %s"
+msgstr "KIGEZWEHO IDOSIYE ni"
+
+#: cpplib.c:1346
+#, fuzzy
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "a Ikurikiranyanyuguti"
+
+#: cpplib.c:1429
+#, fuzzy
+msgid "#else without #if"
+msgstr "#Ikindi NIBA"
+
+#: cpplib.c:1434
+#, fuzzy
+msgid "#else after #else"
+msgstr "#Ikindi Nyuma Ikindi"
+
+#: cpplib.c:1436 cpplib.c:1470
+#, fuzzy
+msgid "the conditional began here"
+msgstr "i"
+
+#: cpplib.c:1463
+#, fuzzy
+msgid "#elif without #if"
+msgstr "#NIBA"
+
+#: cpplib.c:1468
+#, fuzzy
+msgid "#elif after #else"
+msgstr "#Nyuma Ikindi"
+
+#: cpplib.c:1499
+#, fuzzy
+msgid "#endif without #if"
+msgstr "#NIBA"
+
+#: cpplib.c:1582
+#, fuzzy
+msgid "missing '(' after predicate"
+msgstr "Ibuze Nyuma"
+
+#: cpplib.c:1597
+#, fuzzy
+msgid "missing ')' to complete answer"
+msgstr "Ibuze Kuri Byuzuye"
+
+#: cpplib.c:1617
+#, fuzzy
+msgid "predicate's answer is empty"
+msgstr "ni ubusa"
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
+msgstr ""
+
+#: cpplib.c:1649
+#, fuzzy
+msgid "predicate must be an identifier"
+msgstr "Ikiranga"
+
+#: cpplib.c:1738
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: cpplib.c:1968
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: cppmacro.c:94
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Makoro ni OYA"
+
+#: cppmacro.c:139 cppmacro.c:294
+#, fuzzy, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "Sibyo in Makoro"
+
+#: cppmacro.c:234
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "OYA Itariki Na Igihe"
+
+#: cppmacro.c:407
+#, fuzzy
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "Sibyo Ikurikiranyanyuguti"
+
+#: cppmacro.c:504
+#, fuzzy, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "Na OYA a Byemewe"
+
+#: cppmacro.c:546
+#, fuzzy
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ingingo Kuri"
+
+#: cppmacro.c:551
+#, fuzzy, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Makoro ingingo"
+
+#: cppmacro.c:556
+#, fuzzy, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "Makoro ingingo"
+
+#: cppmacro.c:669 cpptrad.c:774
+#, fuzzy, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "Urutonde Makoro"
+
+#: cppmacro.c:776
+#, fuzzy, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "Umumaro nka Makoro Na: ingingo in C"
+
+#: cppmacro.c:1314
+#, fuzzy, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "Gusubiramo Makoro"
+
+#: cppmacro.c:1351
+#, fuzzy, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\"Gicurasi OYA Kugaragara in Makoro Urutonde"
+
+#: cppmacro.c:1359
+#, fuzzy
+msgid "macro parameters must be comma-separated"
+msgstr "Makoro Ibigenga Akitso"
+
+#: cppmacro.c:1376
+#, fuzzy
+msgid "parameter name missing"
+msgstr "Izina: Ibuze"
+
+#: cppmacro.c:1391
+#, fuzzy
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "Makoro in"
+
+#: cppmacro.c:1395
+#, fuzzy
+msgid "ISO C does not permit named variadic macros"
+msgstr "C OYA Makoro"
+
+#: cppmacro.c:1404
+#, fuzzy
+msgid "missing ')' in macro parameter list"
+msgstr "Ibuze in Makoro Urutonde"
+
+#: cppmacro.c:1472
+#, fuzzy
+msgid "ISO C requires whitespace after the macro name"
+msgstr "C Nyuma i Makoro Izina:"
+
+#: cppmacro.c:1500
+#, fuzzy
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#'ni OYA ku a Makoro"
+
+#: cppmacro.c:1519
+#, fuzzy
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##'Kugaragara ku Impera Bya a Makoro"
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: cppmacro.c:1606
+#, fuzzy
+msgid "this is the location of the previous definition"
+msgstr "iyi ni i Ahantu Bya i Ibanjirije Insobanuro"
+
+#: cppmacro.c:1657
+#, fuzzy, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "Makoro in C"
+
+#: cppmacro.c:1682
+#, fuzzy, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "Sibyo Ubwoko in"
+
+#: cppspec.c:109
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid option to the preprocessor"
+msgstr "\"%s\"ni OYA a Byemewe Ihitamo Kuri i"
+
+#: cppspec.c:133
+#, fuzzy
+msgid "too many input files"
+msgstr "Iyinjiza Idosiye"
+
+#: cpptrad.c:841
+#, fuzzy, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "Makoro"
+
+#: cse.c:7195
+#, fuzzy, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";;Funga Bivuye Kuri"
+
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr ""
+
+#: diagnostic.c:928
+#, fuzzy, c-format
+msgid "%s: warnings being treated as errors\n"
+msgstr "%s:Iburira Nka"
+
+#: diagnostic.c:963
+#, fuzzy, c-format
+msgid "%s: %s: "
+msgstr "%s:%s:"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: diagnostic.c:1054
+#, fuzzy, c-format
+msgid "%s "
+msgstr "%s"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: diagnostic.c:1056
+#, fuzzy, c-format
+msgid " %s"
+msgstr "%s"
+
+#: diagnostic.c:1078
+#, fuzzy
+msgid "At top level:"
+msgstr "Hejuru: urwego"
+
+#: diagnostic.c:1083
+#, fuzzy, c-format
+msgid "In member function `%s':"
+msgstr "Umumaro"
+
+#: diagnostic.c:1087
+#, fuzzy, c-format
+msgid "In function `%s':"
+msgstr "Umumaro"
+
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr ""
+
+#: diagnostic.c:1193
+#, fuzzy, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr "%s:%d:ku Amakosa"
+
+#: diagnostic.c:1208 diagnostic.c:1316
+#, fuzzy, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
+msgstr "Tanga a Icyegeranyo Na: Inkomoko NIBA kugirango Amabwiriza"
+
+#: diagnostic.c:1314
+#, fuzzy
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Ikosa"
+
+#: diagnostic.c:1376
+#, fuzzy, c-format
+msgid "in %s, at %s:%d"
+msgstr "in ku"
+
+#: diagnostic.c:1397
+#, fuzzy, c-format
+msgid "In file included from %s:%d"
+msgstr "IDOSIYE Bivuye"
+
+#: diagnostic.c:1400
+#, fuzzy, c-format
+msgid ""
+",\n"
+" from %s:%d"
+msgstr ",Bivuye"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: diagnostic.c:1401
+#, fuzzy
+msgid ":\n"
+msgstr ":"
+
+#: diagnostic.c:1445 diagnostic.c:1462
+#, fuzzy, c-format
+msgid "`%s' is deprecated (declared at %s:%d)"
+msgstr "`%s'ni Bitemewe. ku"
+
+#: diagnostic.c:1465
+#, fuzzy, c-format
+msgid "`%s' is deprecated"
+msgstr "`%s'ni Bitemewe."
+
+#: diagnostic.c:1468
+#, fuzzy, c-format
+msgid "type is deprecated (declared at %s:%d)"
+msgstr "Ubwoko ni Bitemewe. ku"
+
+#: diagnostic.c:1471
+#, fuzzy
+msgid "type is deprecated"
+msgstr "Ubwoko ni Bitemewe."
+
+#: dominance.c:728
+#, fuzzy, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "Bya OYA"
+
+#: dwarf2out.c:3135
+#, fuzzy, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "OYA"
+
+#: dwarfout.c:2066
+#, fuzzy, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "By'imbere"
+
+#: dwarfout.c:6181
+#, fuzzy
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "Gushigikira kugirango i Imiterere ni Bitemewe."
+
+#: dwarfout.c:6278
+#, fuzzy
+msgid "can't get current directory"
+msgstr "Kubona KIGEZWEHO bushyinguro"
+
+#: emit-rtl.c:1155
+#, fuzzy
+msgid "can't access real part of complex value in hard register"
+msgstr "Bya ITSINDA RY'IMIBARE C Agaciro in Ikomeye Kwiyandikisha"
+
+#: emit-rtl.c:1177
+#, fuzzy
+msgid "can't access imaginary part of complex value in hard register"
+msgstr "NYURABWENGE Bya ITSINDA RY'IMIBARE C Agaciro in Ikomeye Kwiyandikisha"
+
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+msgstr ""
+
+#: errors.c:136
+#, fuzzy, c-format
+msgid "abort in %s, at %s:%d"
+msgstr "Kureka in ku"
+
+#: except.c:369
+#, fuzzy
+msgid "exception handling disabled, use -fexceptions to enable"
+msgstr "Irengayobora(-) Yahagaritswe Gukoresha Kuri Gushoboza"
+
+#: except.c:2994
+#, fuzzy
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr "Bya"
+
+#: except.c:3137
+#, fuzzy
+msgid "__builtin_eh_return not supported on this target"
+msgstr "_OYA ku iyi Intego"
+
+#: explow.c:1408
+#, fuzzy
+msgid "stack limits not supported on this target"
+msgstr "Imbibi OYA ku iyi Intego"
+
+#: expr.c:3355
+#, fuzzy
+msgid "function using short complex types cannot be inline"
+msgstr "Umumaro ikoresha ITSINDA RY'IMIBARE C Mumurongo"
+
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+#, fuzzy
+msgid "unsupported wide integer operation"
+msgstr "Umubare wuzuye"
+
+#: expr.c:6669
+#, fuzzy, c-format
+msgid "prior parameter's size depends on `%s'"
+msgstr "Ingano ku"
+
+#: expr.c:7005
+#, fuzzy
+msgid "returned value in block_exit_expr"
+msgstr "Agaciro in"
+
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "i Aderesi Bya"
+
+#: final.c:1342
+#, fuzzy
+msgid "negative insn length"
+msgstr "Uburebure"
+
+#: final.c:2793
+#, fuzzy
+msgid "could not split insn"
+msgstr "OYA Gutandukanya"
+
+#: final.c:3141
+#, fuzzy
+msgid "invalid `asm': "
+msgstr "Sibyo"
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
+msgstr ""
+
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
+msgstr ""
+
+#: final.c:3401
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
+msgstr "Umubare Ibuze Nyuma"
+
+#: final.c:3404 final.c:3443
+#, fuzzy
+msgid "operand number out of range"
+msgstr "Umubare Inyuma Bya Urutonde"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_INVALID.text
+#: final.c:3462
+#, fuzzy, c-format
+msgid "invalid %%-code"
+msgstr "Sibyo"
+
+#: final.c:3493
+#, fuzzy, c-format
+msgid "`%%l' operand isn't a label"
+msgstr "`%%l'si a Akarango"
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+#, fuzzy
+msgid "floating constant misused"
+msgstr "Bihindagurika"
+
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+#, fuzzy
+msgid "invalid expression as operand"
+msgstr "Sibyo imvugo Nka"
+
+#: flow.c:352
+#, fuzzy
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr "Umumaro kugirango Ikiranga"
+
+#: flow.c:357
+#, fuzzy
+msgid "`noreturn' function does return"
+msgstr "`Umumaro Garuka"
+
+#: flow.c:378
+#, fuzzy
+msgid "control reaches end of non-void function"
+msgstr "Igenzura Impera Bya Umumaro"
+
+#: flow.c:1642
+#, fuzzy
+msgid "Attempt to delete prologue/epilogue insn:"
+msgstr "Kuri Gusiba"
+
+#: fold-const.c:2546 fold-const.c:2559
+#, fuzzy, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "ni Buri gihe Kuri Ubugari Bya Umwanya"
+
+#: fold-const.c:3753 fold-const.c:3770
+#, fuzzy, c-format
+msgid "comparison is always %d"
+msgstr "ni Buri gihe"
+
+#: fold-const.c:3901
+#, fuzzy
+msgid "`or' of unmatched not-equal tests is always 1"
+msgstr "`Bya OYA bingana ni Buri gihe 1."
+
+#: fold-const.c:3906
+#, fuzzy
+msgid "`and' of mutually exclusive equal-tests is always 0"
+msgstr "`Bya bingana ni Buri gihe 0"
+
+#: function.c:884 varasm.c:1503
+#, fuzzy, c-format
+msgid "size of variable `%s' is too large"
+msgstr "Ingano Bya IMPINDURAGACIRO ni Binini"
+
+#: function.c:3772
+#, fuzzy
+msgid "impossible constraint in `asm'"
+msgstr "Imbogamizi in"
+
+#: function.c:5527
+#, fuzzy, c-format
+msgid "`%s' might be used uninitialized in this function"
+msgstr "`%s'Itatangijwe in iyi Umumaro"
+
+#: function.c:5534
+#, fuzzy, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "IMPINDURAGACIRO ku Cyangwa"
+
+#: function.c:5553
+#, fuzzy, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgstr "ku Cyangwa"
+
+#: function.c:6420
+#, fuzzy
+msgid "function returns an aggregate"
+msgstr "Umumaro"
+
+#: function.c:6925
+#, fuzzy, c-format
+msgid "unused parameter `%s'"
+msgstr "Kidakoreshwa"
+
+#: gcc.c:1107
+#, fuzzy, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "Impine"
+
+#: gcc.c:1134
+#, fuzzy, c-format
+msgid "incomplete `%s' option"
+msgstr "Ihitamo"
+
+#: gcc.c:1145
+#, fuzzy, c-format
+msgid "missing argument to `%s' option"
+msgstr "Ibuze Kuri Ihitamo"
+
+#: gcc.c:1158
+#, fuzzy, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "Kuri Ihitamo"
+
+#: gcc.c:1486
+#, fuzzy
+msgid "Using built-in specs.\n"
+msgstr "in"
+
+#: gcc.c:1667
+#, fuzzy, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr "Kuri"
+
+#: gcc.c:1774
+#, fuzzy, c-format
+msgid "Reading specs from %s\n"
+msgstr "Bivuye"
+
+#: gcc.c:1872 gcc.c:1891
+#, fuzzy, c-format
+msgid "specs %%include syntax malformed after %ld characters"
+msgstr "Nyuma Inyuguti"
+
+#: gcc.c:1899
+#, fuzzy, c-format
+msgid "could not find specs file %s\n"
+msgstr "OYA Gushaka IDOSIYE"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
+#, fuzzy, c-format
+msgid "specs %%rename syntax malformed after %ld characters"
+msgstr "Nyuma Inyuguti"
+
+#: gcc.c:1951
+#, fuzzy, c-format
+msgid "specs %s spec was not found to be renamed"
+msgstr "OYA Byabonetse Kuri"
+
+#: gcc.c:1958
+#, fuzzy, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s:Kuri Guhindura izina Kuri"
+
+#: gcc.c:1963
+#, fuzzy, c-format
+msgid "rename spec %s to %s\n"
+msgstr "Guhindura izina Kuri"
+
+#: gcc.c:1965
+#, fuzzy, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr "ni"
+
+#: gcc.c:1978
+#, fuzzy, c-format
+msgid "specs unknown %% command after %ld characters"
+msgstr "Kitazwi Komandi: Nyuma Inyuguti"
+
+#: gcc.c:1989 gcc.c:2002
+#, fuzzy, c-format
+msgid "specs file malformed after %ld characters"
+msgstr "IDOSIYE Nyuma Inyuguti"
+
+#: gcc.c:2056
+#, fuzzy
+msgid "spec file has no spec for linking"
+msgstr "IDOSIYE Oya kugirango Impuza"
+
+#: gcc.c:2554
+#, fuzzy
+msgid "-pipe not supported"
+msgstr "-OYA"
+
+#: gcc.c:2609
+#, fuzzy
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr "Y Cyangwa N"
+
+#: gcc.c:2735
+#, fuzzy, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
+msgstr "Ikosa Porogaramu Tanga a Icyegeranyo kugirango Amabwiriza"
+
+#: gcc.c:2753
+#, fuzzy, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr ""
+"#%s%.Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: gcc.c:2883
+#, fuzzy, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Amahitamo IDOSIYE"
+
+# crashrep/source\all\crashrep.lng:%OPTIONS_BUTTON%.text
+#: gcc.c:2884
+#, fuzzy
+msgid "Options:\n"
+msgstr "Amahitamo..."
+
+#: gcc.c:2886
+#, fuzzy
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr "-Gusohoka Na: kirekire kurusha ibindi Ikosa ITEGEKONGENGA Bivuye a"
+
+#: gcc.c:2887
+#, fuzzy
+msgid " --help Display this information\n"
+msgstr "--Ifashayobora iyi"
+
+#: gcc.c:2888
+#, fuzzy
+msgid " --target-help Display target specific command line options\n"
+msgstr "--Intego Ifashayobora Intego Komandi: Umurongo"
+
+#: gcc.c:2890
+#, fuzzy
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr "(v Kuri Kugaragaza Komandi: Umurongo Amahitamo Bya"
+
+#: gcc.c:2891
+#, fuzzy
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr "-Byose Bya i in"
+
+#: gcc.c:2892
+#, fuzzy
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr "-i Verisiyo Bya i"
+
+#: gcc.c:2893
+#, fuzzy
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr "-i Intego"
+
+#: gcc.c:2894
+#, fuzzy
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr "-Gucapa Gushaka i ububiko bw'amaderese in i Gushaka"
+
+#: gcc.c:2895
+#, fuzzy
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr "-Gucapa IDOSIYE Izina: i Izina: Bya i"
+
+#: gcc.c:2896
+#, fuzzy
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr "-Gucapa IDOSIYE Izina: i Inzira Kuri Isomero"
+
+#: gcc.c:2897
+#, fuzzy
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr "-Gucapa Izina: i Inzira Kuri"
+
+#: gcc.c:2898
+#, fuzzy
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr "-Gucapa bushyinguro i Imizi bushyinguro kugirango Uburyo Bya"
+
+#: gcc.c:2899
+#, fuzzy
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
+msgstr "-Gucapa i Igereranya hagati Komandi: Umurongo Amahitamo Igikubo Isomero Gushaka"
+
+#: gcc.c:2902
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr "-Gucapa bushyinguro i Bifitanye isano Inzira Kuri"
+
+#: gcc.c:2903
+#, fuzzy
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:2904
+#, fuzzy
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:2905
+#, fuzzy
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr "-Amahitamo Akitso Amahitamo ku Kuri i"
+
+#: gcc.c:2906
+#, fuzzy
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr "-ku Kuri i"
+
+#: gcc.c:2907
+#, fuzzy
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr "-Kubika OYA Gusiba"
+
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr ""
+
+#: gcc.c:2909
+#, fuzzy
+msgid " -time Time the execution of each subprocess\n"
+msgstr "-Igihe i Bya"
+
+#: gcc.c:2910
+#, fuzzy
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr "-IDOSIYE in Na: i Ibigize Bya IDOSIYE"
+
+#: gcc.c:2911
+#, fuzzy
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr "-STD Bisanzwe i Iyinjiza kugirango Bisanzwe"
+
+#: gcc.c:2912
+#, fuzzy
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr "-bushyinguro bushyinguro Kuri i Gushaka"
+
+#: gcc.c:2913
+#, fuzzy
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr "-B kugirango Intego NIBA"
+
+#: gcc.c:2914
+#, fuzzy
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr "-V Verisiyo Verisiyo Umubare Verisiyo NIBA"
+
+#: gcc.c:2915
+#, fuzzy
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr "-v i Porogaramu ku i"
+
+#: gcc.c:2916
+#, fuzzy
+msgid " -### Like -v but options quoted and commands not executed\n"
+msgstr "-###v Amahitamo Na Amabwiriza OYA"
+
+#: gcc.c:2917
+#, fuzzy
+msgid " -E Preprocess only; do not compile, assemble or link\n"
+msgstr "-E OYA Gukusanya Cyangwa"
+
+#: gcc.c:2918
+#, fuzzy
+msgid " -S Compile only; do not assemble or link\n"
+msgstr "-OYA Cyangwa"
+
+#: gcc.c:2919
+#, fuzzy
+msgid " -c Compile and assemble, but do not link\n"
+msgstr "-C Na OYA"
+
+#: gcc.c:2920
+#, fuzzy
+msgid " -o <file> Place the output into <file>\n"
+msgstr "-o IDOSIYE i Ibisohoka IDOSIYE"
+
+#: gcc.c:2921
+#, fuzzy
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
+msgstr "-X Ururimi i Ururimi Bya i Iyinjiza Indimi Gushyiramo C C Kugaruza Kuri i Mburabuzi imyitwarire i Ururimi ku i"
+
+#: gcc.c:2928
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr "Na: g F M Cyangwa ku Kuri i ku Itondekanya Kuri Ikindi Amahitamo ku Kuri i Ibaruwa... Amahitamo"
+
+#: gcc.c:3063
+#, fuzzy, c-format
+msgid "`-%c' option must have argument"
+msgstr "`-%c'Ihitamo"
+
+#: gcc.c:3085
+#, fuzzy, c-format
+msgid "couldn't run `%s': %s"
+msgstr "Gukoresha"
+
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
+#, c-format
+msgid "%s (GCC) %s\n"
+msgstr ""
+
+#: gcc.c:3263
+#, fuzzy
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "C"
+
+#: gcc.c:3265 gcov.c:364
+#, fuzzy
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr "ni Kigenga i Inkomoko kugirango ni OYA ATARIIGIHARWE kugirango Cyangwa A"
+
+#: gcc.c:3366
+#, fuzzy
+msgid "argument to `-Xlinker' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3374
+#, fuzzy
+msgid "argument to `-l' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3391
+#, fuzzy
+msgid "argument to `-specs' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3406
+#, fuzzy
+msgid "argument to `-specs=' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3436
+#, fuzzy, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr "`-%c'ku i Gutangira Bya i Komandi: Umurongo"
+
+#: gcc.c:3445
+#, fuzzy
+msgid "argument to `-B' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3618
+#, fuzzy
+msgid "cannot specify -o with -c or -S and multiple compilations"
+msgstr "o Na: C Cyangwa Na Igikubo"
+
+#: gcc.c:3791
+#, fuzzy
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "Iburira Kubika"
+
+#: gcc.c:3795
+#, fuzzy
+msgid "warning: -pipe ignored because -time specified"
+msgstr "Iburira Igihe"
+
+#: gcc.c:3807
+#, fuzzy
+msgid "argument to `-x' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3835
+#, fuzzy, c-format
+msgid "argument to `-%s' is missing"
+msgstr "Kuri ni Ibuze"
+
+#: gcc.c:3896
+#, fuzzy, c-format
+msgid "warning: `-x %s' after last input file has no effect"
+msgstr "Iburira X Nyuma Iheruka Iyinjiza IDOSIYE Oya INGARUKA"
+
+#: gcc.c:4241
+#, fuzzy
+msgid "invalid specification! Bug in cc"
+msgstr "Sibyo in KopiKubandi"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: gcc.c:4395
+#, fuzzy, c-format
+msgid "%s\n"
+msgstr "%s"
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
+#, fuzzy, c-format
+msgid "spec failure: '%%*' has not been initialized by pattern match"
+msgstr "OYA ku Ishusho BIHUYE"
+
+#: gcc.c:4964
+#, fuzzy, c-format
+msgid "warning: use of obsolete %%[ operator in specs"
+msgstr "Iburira Gukoresha Bya Mukoresha in"
+
+#: gcc.c:4982
+#, fuzzy, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
+msgstr "ni"
+
+#: gcc.c:5107
+#, fuzzy, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "Ihitamo"
+
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "Kitazwi Umumaro"
+
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "Ikosa in Kuri Umumaro"
+
+#: gcc.c:5256
+#, fuzzy
+msgid "malformed spec function name"
+msgstr "Umumaro Izina:"
+
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "Oya ingingo kugirango Umumaro"
+
+#: gcc.c:5278
+#, fuzzy
+msgid "malformed spec function arguments"
+msgstr "Umumaro ingingo"
+
+#: gcc.c:5386
+#, fuzzy
+msgid "mismatched braces in specs"
+msgstr "Ingirwadusodeko in"
+
+#: gcc.c:6081
+#, fuzzy, c-format
+msgid "unrecognized option `-%s'"
+msgstr "Ihitamo"
+
+# #-#-#-#-# setup2.pot (PACKAGE VERSION) #-#-#-#-#
+# setup2/source\ui\pages\plang.src:RESID_PAGE_PAGELANGUAGE.STR_PROG.text
+# #-#-#-#-# setup2.pot (PACKAGE VERSION) #-#-#-#-#
+# setup2/source\uibase\agentdlg.src:RC_AGENTDLG.RESID_DLG_AGENT_STR_INSTALL.text
+#: gcc.c:6087
+#, fuzzy, c-format
+msgid "install: %s%s\n"
+msgstr "Kwinjiza porogaramu"
+
+#: gcc.c:6088
+#, fuzzy, c-format
+msgid "programs: %s\n"
+msgstr "Porogaramu"
+
+# basctl/source\basicide\moduldlg.src:RID_TD_ORGANIZE.RID_TC_ORGANIZE.RID_TP_LIB.text
+#: gcc.c:6089
+#, fuzzy, c-format
+msgid "libraries: %s\n"
+msgstr "Amasomero"
+
+#: gcc.c:6146
+#, fuzzy
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr "Amabwiriza"
+
+#: gcc.c:6162
+#, fuzzy, c-format
+msgid "Configured with: %s\n"
+msgstr "Na:"
+
+#: gcc.c:6176
+#, fuzzy, c-format
+msgid "Thread model: %s\n"
+msgstr "Urugero"
+
+#: gcc.c:6187
+#, fuzzy, c-format
+msgid "gcc version %s\n"
+msgstr "Verisiyo"
+
+#: gcc.c:6189
+#, fuzzy, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
+msgstr "Musomyi: Verisiyo Gukora: %s%s Verisiyo"
+
+#: gcc.c:6197
+#, fuzzy
+msgid "no input files"
+msgstr "Oya Iyinjiza Idosiye"
+
+#: gcc.c:6235
+#, fuzzy, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s:%sOYA ku iyi Sisitemu"
+
+#: gcc.c:6310
+#, fuzzy, c-format
+msgid "%s: linker input file unused because linking not done"
+msgstr "%s:Iyinjiza IDOSIYE Kidakoreshwa Impuza OYA Byakozwe"
+
+#: gcc.c:6353
+#, fuzzy, c-format
+msgid "language %s not recognized"
+msgstr "Ururimi OYA"
+
+#: gcc.c:6456
+#, fuzzy
+msgid "internal gcc abort"
+msgstr "By'imbere Kureka"
+
+#: gcov.c:325
+#, fuzzy
+msgid "Internal gcov abort.\n"
+msgstr "Kureka"
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
+msgstr ""
+
+#: gcov.c:339
+#, fuzzy
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr "ITEGEKONGENGA Ibisobanuro"
+
+#: gcov.c:340
+#, fuzzy
+msgid " -h, --help Print this help, then exit\n"
+msgstr "-h Ifashayobora iyi Ifashayobora Hanyuma"
+
+#: gcov.c:341
+#, fuzzy
+msgid " -v, --version Print version number, then exit\n"
+msgstr "-v Verisiyo Verisiyo Umubare Hanyuma"
+
+#: gcov.c:342
+#, fuzzy
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+msgstr "-B in"
+
+#: gcov.c:343
+#, fuzzy
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
+msgstr "-C Bya"
+
+#: gcov.c:345
+#, fuzzy
+msgid " -n, --no-output Do not create an output file\n"
+msgstr "-N Oya Ibisohoka OYA Kurema Ibisohoka"
+
+#: gcov.c:346
+#, fuzzy
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
+msgstr "-L IDOSIYE Amazina Ibisohoka IDOSIYE Amazina kugirango Inkomoko"
+
+#: gcov.c:348
+#, fuzzy
+msgid " -f, --function-summaries Output summaries for each function\n"
+msgstr "-F Umumaro kugirango"
+
+#: gcov.c:349
+#, fuzzy
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr "-o Igikoresho bushyinguro kugirango Igikoresho Idosiye in Cyangwa"
+
+#: gcov.c:350
+#, fuzzy
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr "-P Inzira Byose"
+
+#: gcov.c:351
+#, fuzzy, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr "Amabwiriza"
+
+#: gcov.c:361
+#, c-format
+msgid "gcov (GCC) %s\n"
+msgstr ""
+
+#: gcov.c:362
+#, fuzzy
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+msgstr "C"
+
+#: gcov.c:500
+#, fuzzy, c-format
+msgid "Could not open basic block file %s.\n"
+msgstr "OYA Gufungura BASIC Funga IDOSIYE"
+
+#: gcov.c:507
+#, fuzzy, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "OYA Gufungura Porogaramu IDOSIYE"
+
+#: gcov.c:524
+#, fuzzy, c-format
+msgid "Could not open data file %s.\n"
+msgstr "OYA Gufungura Ibyatanzwe IDOSIYE"
+
+#: gcov.c:525
+#, fuzzy
+msgid "Assuming that all execution counts are zero.\n"
+msgstr "Byose Zeru"
+
+#: gcov.c:534
+#, fuzzy, c-format
+msgid "No executable code associated with file %s.\n"
+msgstr "ITEGEKONGENGA Na: IDOSIYE"
+
+#: gcov.c:1186
+#, fuzzy, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%sBya Imirongo in"
+
+#: gcov.c:1191
+#, fuzzy, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "Imirongo in"
+
+#: gcov.c:1198
+#, fuzzy, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%sBya in"
+
+#: gcov.c:1203
+#, fuzzy, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%sBya ku Rimwe in"
+
+#: gcov.c:1209
+#, fuzzy, c-format
+msgid "No branches in %s %s\n"
+msgstr "in"
+
+#: gcov.c:1211
+#, fuzzy, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%sBya Amahamagara: in"
+
+#: gcov.c:1216
+#, fuzzy, c-format
+msgid "No calls in %s %s\n"
+msgstr "Amahamagara: in"
+
+#: gcov.c:1351
+#, fuzzy, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
+msgstr "Gukoresha Byose Ibyinjijwe Bya Umumaro"
+
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
+msgstr ""
+
+#: gcov.c:1367
+#, fuzzy, c-format
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "Umurongo Umubare"
+
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "BASIC in Umumaro"
+
+#: gcov.c:1398
+#, fuzzy, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "Inyuma Bya Urutonde Umurongo Umubare in Umumaro"
+
+#: gcov.c:1470
+#, fuzzy, c-format
+msgid "Could not open source file %s.\n"
+msgstr "OYA Gufungura Inkomoko IDOSIYE"
+
+#: gcov.c:1480
+#, fuzzy, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Inkomoko IDOSIYE ni"
+
+#: gcov.c:1510
+#, fuzzy, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "Inkomoko IDOSIYE"
+
+#: gcov.c:1532
+#, fuzzy, c-format
+msgid "call %2d never executed\n"
+msgstr "Nta narimwe"
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
+msgstr ""
+
+#: gcov.c:1543
+#, fuzzy, c-format
+msgid "branch %2d never executed\n"
+msgstr "Nta narimwe"
+
+#: gcov.c:1546
+#, c-format
+msgid "branch %2d taken %s\n"
+msgstr ""
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr ""
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "Ibisohoka IDOSIYE"
+
+#: gcov.c:1618
+#, fuzzy, c-format
+msgid "Could not open output file %s.\n"
+msgstr "OYA Gufungura Ibisohoka IDOSIYE"
+
+#: gcse.c:763
+#, fuzzy, c-format
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr "Yahagaritswe 1000 BASIC Na 20 BASIC Funga"
+
+#: gcse.c:775
+#, fuzzy, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "Yahagaritswe BASIC Na"
+
+#: genautomata.c:1490
+#, fuzzy, c-format
+msgid "Name `%s' contains quotes"
+msgstr "Kirimo"
+
+#: genautomata.c:1621
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "Sibyo Ikurikiranyanyuguti in"
+
+#: genautomata.c:1650
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "Sibyo Ikurikiranyanyuguti in"
+
+#: genautomata.c:1682 genautomata.c:1685
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_bypass"
+msgstr "Sibyo Ikurikiranyanyuguti in"
+
+#: genautomata.c:1720
+#, fuzzy, c-format
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "Sibyo Itangira Ikurikiranyanyuguti in"
+
+#: genautomata.c:1724
+#, fuzzy, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "Sibyo ISEGONDA Ikurikiranyanyuguti in"
+
+#: genautomata.c:1760
+#, fuzzy, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "Sibyo Itangira Ikurikiranyanyuguti in"
+
+#: genautomata.c:1764
+#, fuzzy, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "Sibyo ISEGONDA Ikurikiranyanyuguti in"
+
+#: genautomata.c:1800
+#, fuzzy, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "Sibyo Itangira Ikurikiranyanyuguti in"
+
+#: genautomata.c:1804
+#, fuzzy, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr "Sibyo ISEGONDA Ikurikiranyanyuguti in"
+
+#: genautomata.c:1837
+#, fuzzy, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "Sibyo Ikurikiranyanyuguti in"
+
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "Sibyo Ihitamo in"
+
+#: genautomata.c:1890
+#, fuzzy, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr "Nyuma in"
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "Sibyo in"
+
+#: genautomata.c:1932
+#, fuzzy, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr "1. in"
+
+#: genautomata.c:2425
+#, fuzzy, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "Igice: in ni OYA"
+
+#: genautomata.c:2427
+#, fuzzy, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr "`%s'in ni OYA Igice:"
+
+#: genautomata.c:2465
+#, fuzzy, c-format
+msgid "unit `%s' excludes itself"
+msgstr "Igice:"
+
+#: genautomata.c:2473
+#, fuzzy, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr "Na in Gushyiraho Kuri"
+
+#: genautomata.c:2603 genautomata.c:2609
+#, fuzzy, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr "Igice: Na Bya"
+
+#: genautomata.c:2623 genautomata.c:2629
+#, fuzzy, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr "Igice: Na Bya"
+
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "byasubiyemo Bya"
+
+#: genautomata.c:2711
+#, fuzzy, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr "Igihe"
+
+#: genautomata.c:2717
+#, fuzzy, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "`%s'ni Nka Izina:"
+
+#: genautomata.c:2723
+#, fuzzy, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr "Igihe"
+
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "ni OYA"
+
+#: genautomata.c:2747
+#, fuzzy, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr "Ryari:"
+
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "`%s'ni Nka CPU Igice:"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "`%s'ni Nka CPU"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "byasubiyemo Bya Igice:"
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "byasubiyemo Bya"
+
+#: genautomata.c:2790 genautomata.c:2793
+#, fuzzy, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "ni Oya"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, fuzzy, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "i ni"
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "ni"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, fuzzy, c-format
+msgid "automaton `%s' is not used"
+msgstr "ni OYA"
+
+#: genautomata.c:2950
+#, fuzzy, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "Igice: Cyangwa"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "Igice: ni OYA"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "ni OYA"
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "Uruziga in Insobanuro Bya"
+
+#: genautomata.c:5333
+#, fuzzy, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr "Na in i"
+
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "-Gutandukanya Oya"
+
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "Ihitamo OYA"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, fuzzy, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr "Nta narimwe Byasohowe"
+
+#: genautomata.c:9498 genautomata.c:9501
+#, fuzzy, c-format
+msgid "Insn `%s' will never be issued"
+msgstr "Nta narimwe Byasohowe"
+
+#: genautomata.c:9649
+#, fuzzy
+msgid "Errors in DFA description"
+msgstr "in Isobanuramiterere"
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "in Isobanuramiterere IDOSIYE"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "Iyinjiza IDOSIYE Izina:"
+
+#: ggc-page.c:1265
+#, fuzzy
+msgid "open /dev/zero"
+msgstr "Gufungura Zeru"
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, fuzzy, c-format
+msgid "can't open %s"
+msgstr "Gufungura"
+
+#: haifa-sched.c:196
+#, fuzzy, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "Kitazwi"
+
+#: integrate.c:174
+#, fuzzy
+msgid "function cannot be inline"
+msgstr "Umumaro Mumurongo"
+
+#: integrate.c:178
+#, fuzzy
+msgid "varargs function cannot be inline"
+msgstr "Umumaro Mumurongo"
+
+#: integrate.c:181
+#, fuzzy
+msgid "function using alloca cannot be inline"
+msgstr "Umumaro ikoresha Mumurongo"
+
+#: integrate.c:184
+#, fuzzy
+msgid "function using setjmp cannot be inline"
+msgstr "Umumaro ikoresha Mumurongo"
+
+#: integrate.c:187
+#, fuzzy
+msgid "function uses __builtin_eh_return"
+msgstr "Umumaro"
+
+#: integrate.c:190
+#, fuzzy
+msgid "function with nested functions cannot be inline"
+msgstr "Umumaro Na: Imimaro Mumurongo"
+
+#: integrate.c:194
+#, fuzzy
+msgid "function with label addresses used in initializers cannot inline"
+msgstr "Umumaro Na: Akarango Amaderesi in Mumurongo"
+
+#: integrate.c:201 integrate.c:245
+#, fuzzy
+msgid "function too large to be inline"
+msgstr "Umumaro Binini Kuri Mumurongo"
+
+#: integrate.c:211
+#, fuzzy
+msgid "no prototype, and parameter address used; cannot be inline"
+msgstr "Oya Na Aderesi Mumurongo"
+
+#: integrate.c:218 integrate.c:263
+#, fuzzy
+msgid "inline functions not supported for this return value type"
+msgstr "Mumurongo Imimaro OYA kugirango iyi Garuka Agaciro Ubwoko"
+
+#: integrate.c:223
+#, fuzzy
+msgid "function with varying-size return value cannot be inline"
+msgstr "Umumaro Na: Ingano Garuka Agaciro Mumurongo"
+
+#: integrate.c:230
+#, fuzzy
+msgid "function with varying-size parameter cannot be inline"
+msgstr "Umumaro Na: Ingano Mumurongo"
+
+#: integrate.c:233
+#, fuzzy
+msgid "function with transparent unit parameter cannot be inline"
+msgstr "Umumaro Na: Bibonerana Igice: Mumurongo"
+
+#: integrate.c:252
+#, fuzzy
+msgid "function with computed jump cannot inline"
+msgstr "Umumaro Na: Simbuka Mumurongo"
+
+#: integrate.c:256
+#, fuzzy
+msgid "function with nonlocal goto cannot be inline"
+msgstr "Umumaro Na: Mumurongo"
+
+#: integrate.c:270
+#, fuzzy
+msgid "function with target specific attribute(s) cannot be inlined"
+msgstr "Umumaro Na: Intego Ikiranga S"
+
+#: line-map.c:198
+#, fuzzy, c-format
+msgid "In file included from %s:%u"
+msgstr "IDOSIYE Bivuye"
+
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, fuzzy, c-format
+msgid ""
+",\n"
+" from %s:%u"
+msgstr ",Bivuye"
+
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, fuzzy, c-format
+msgid "invalid parameter `%s'"
+msgstr "Ikigenderwaho sicyo"
+
+#: profile.c:397
+#, fuzzy, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr "OYA BIHUYE Bya Umumaro Inyuma Bya Itariki"
+
+#: profile.c:400
+#, fuzzy
+msgid ".da file corrupted"
+msgstr ""
+".Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: profile.c:634
+#, fuzzy, c-format
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
+msgstr "Ibijyana Ibisobanuro PROB kugirango Kuri"
+
+#: profile.c:1226
+#, fuzzy, c-format
+msgid "file %s not found, execution counts assumed to be zero"
+msgstr "IDOSIYE OYA Byabonetse Kuri Zeru"
+
+#: protoize.c:542
+#, fuzzy, c-format
+msgid "%s: internal abort\n"
+msgstr "%s:By'imbere"
+
+#: protoize.c:633
+#, fuzzy, c-format
+msgid "%s: error writing file `%s': %s\n"
+msgstr "%s:Ikosa IDOSIYE"
+
+#: protoize.c:678
+#, fuzzy, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s:Ikoresha: i Izina ry'idosiye:"
+
+#: protoize.c:681
+#, fuzzy, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s:Ikoresha: Izina ry'idosiye:"
+
+#: protoize.c:788
+#, fuzzy, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr "%s:Iburira Oya Gusoma kugirango IDOSIYE"
+
+#: protoize.c:796
+#, fuzzy, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr "%s:Iburira Oya Kwandika kugirango IDOSIYE"
+
+#: protoize.c:804
+#, fuzzy, c-format
+msgid "%s: warning: no write access for dir containing `%s'\n"
+msgstr "%s:Iburira Oya Kwandika kugirango"
+
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, fuzzy, c-format
+msgid "%s: invalid file name: %s\n"
+msgstr "%s:Sibyo IDOSIYE Izina:"
+
+#: protoize.c:1374
+#, fuzzy, c-format
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s:%s:Kubona Imimerere"
+
+#: protoize.c:1395
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
+msgstr "%s:Ikosa Ibisobanuro IDOSIYE ku Umurongo"
+
+#: protoize.c:1731
+#, fuzzy, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
+msgstr "%s:%d:Bya Umumaro"
+
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr ""
+
+#: protoize.c:2012
+#, fuzzy, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s:Tegereza"
+
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr ""
+
+#: protoize.c:2025
+#, fuzzy, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s:%sNa: Imimerere"
+
+#: protoize.c:2077
+#, fuzzy, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
+msgstr "%s:Iburira Ibuze IDOSIYE"
+
+#: protoize.c:2086 protoize.c:2115
+#, fuzzy, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
+msgstr "%s:Gusoma Ibisobanuro IDOSIYE"
+
+#: protoize.c:2131 protoize.c:2159
+#, fuzzy, c-format
+msgid "%s: can't get status of aux info file `%s': %s\n"
+msgstr "%s:Kubona Imimerere Bya Ibisobanuro IDOSIYE"
+
+#: protoize.c:2187
+#, fuzzy, c-format
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
+msgstr "%s:Gufungura Ibisobanuro IDOSIYE kugirango"
+
+#: protoize.c:2205
+#, fuzzy, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
+msgstr "%s:Ikosa Ibisobanuro IDOSIYE"
+
+#: protoize.c:2218
+#, fuzzy, c-format
+msgid "%s: error closing aux info file `%s': %s\n"
+msgstr "%s:Ikosa Ibisobanuro IDOSIYE"
+
+#: protoize.c:2234
+#, fuzzy, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
+msgstr "%s:Gusiba Ibisobanuro IDOSIYE"
+
+#: protoize.c:2316 protoize.c:4318
+#, fuzzy, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s:Gusiba IDOSIYE"
+
+#: protoize.c:2395
+#, fuzzy, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr "%s:Iburira Guhindura izina IDOSIYE Kuri"
+
+#: protoize.c:2520
+#, fuzzy, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
+msgstr "%s:Bya"
+
+#: protoize.c:2524
+#, fuzzy, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
+msgstr "%s:Bya OYA"
+
+#: protoize.c:2526
+#, fuzzy, c-format
+msgid "%s: conflict list for '%s' follows:\n"
+msgstr "%s:Urutonde kugirango"
+
+#: protoize.c:2559
+#, fuzzy, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+msgstr "%s:Iburira ikoresha Urutonde Bivuye kugirango Umumaro"
+
+#: protoize.c:2599
+#, fuzzy, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+msgstr "%s:%d:`%s'Ibuze Bivuye"
+
+#: protoize.c:2605
+#, fuzzy, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
+msgstr "%s:%d:Iburira Oya Insobanuro kugirango"
+
+#: protoize.c:2636
+#, fuzzy, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+msgstr "%s:Iburira Oya Insobanuro kugirango in IDOSIYE"
+
+#: protoize.c:2642
+#, fuzzy, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
+msgstr "%s:Igikubo Bya in IDOSIYE"
+
+#: protoize.c:2815 protoize.c:2818
+#, fuzzy, c-format
+msgid "%s: %d: warning: source too confusing\n"
+msgstr "%s:%d:Iburira Inkomoko"
+
+#: protoize.c:3024
+#, fuzzy, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
+msgstr "%s:%d:Iburira Umumaro OYA"
+
+#: protoize.c:3039
+#, fuzzy, c-format
+msgid "%s: declaration of function `%s' not converted\n"
+msgstr "%s:Bya Umumaro OYA"
+
+#: protoize.c:3162
+#, fuzzy, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+msgstr "%s:Iburira Intonde in Bya"
+
+#: protoize.c:3183
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
+msgstr "%s:Iburira Intonde in Bya"
+
+#: protoize.c:3281
+#, fuzzy, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+msgstr "%s:%d:Iburira Byabonetse Ikitezwe:"
+
+#: protoize.c:3459
+#, fuzzy, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
+msgstr "%s:kugirango Umumaro OYA"
+
+#: protoize.c:3486
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+msgstr "%s:%d:Iburira Kongeramo Bya Makoro"
+
+#: protoize.c:3560
+#, fuzzy, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
+msgstr "%s:kugirango IDOSIYE OYA"
+
+#: protoize.c:3651 protoize.c:3681
+#, fuzzy, c-format
+msgid "%s: definition of function `%s' not converted\n"
+msgstr "%s:Insobanuro Bya Umumaro OYA"
+
+#: protoize.c:3670
+#, fuzzy, c-format
+msgid "%s: %d: warning: definition of %s not converted\n"
+msgstr "%s:%d:Iburira Insobanuro Bya OYA"
+
+#: protoize.c:4000
+#, fuzzy, c-format
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr "%s:Byabonetse Insobanuro Bya ku"
+
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, fuzzy, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+msgstr "%s:%d:Iburira ku"
+
+#: protoize.c:4019
+#, fuzzy, c-format
+msgid "%s: function definition not converted\n"
+msgstr "%s:Umumaro Insobanuro OYA"
+
+#: protoize.c:4078
+#, fuzzy, c-format
+msgid "%s: `%s' not converted\n"
+msgstr "%s:`%s'OYA"
+
+#: protoize.c:4086
+#, fuzzy, c-format
+msgid "%s: would convert file `%s'\n"
+msgstr "%s:GUHINDURA IDOSIYE"
+
+#: protoize.c:4089
+#, fuzzy, c-format
+msgid "%s: converting file `%s'\n"
+msgstr "%s:Guhindura.... IDOSIYE"
+
+#: protoize.c:4099
+#, fuzzy, c-format
+msgid "%s: can't get status for file `%s': %s\n"
+msgstr "%s:Kubona Imimerere kugirango IDOSIYE"
+
+#: protoize.c:4141
+#, fuzzy, c-format
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s:Gufungura IDOSIYE kugirango"
+
+#: protoize.c:4156
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
+msgstr "%s:Ikosa Iyinjiza IDOSIYE"
+
+#: protoize.c:4190
+#, fuzzy, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
+msgstr "%s:Kurema Gufungura GUSUKURA IDOSIYE"
+
+#: protoize.c:4295
+#, fuzzy, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
+msgstr "%s:Iburira IDOSIYE in"
+
+#: protoize.c:4303
+#, fuzzy, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr "%s:Ihuza IDOSIYE Kuri"
+
+#: protoize.c:4333
+#, fuzzy, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
+msgstr "%s:Kurema Gufungura Ibisohoka IDOSIYE"
+
+#: protoize.c:4366
+#, fuzzy, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
+msgstr "%s:Guhindura>> Ubwoko Bya IDOSIYE"
+
+#: protoize.c:4541
+#, fuzzy, c-format
+msgid "%s: cannot get working directory: %s\n"
+msgstr "%s:Kubona bushyinguro"
+
+#: protoize.c:4639
+#, fuzzy, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s:Iyinjiza IDOSIYE Amazina C Imigereka"
+
+#: ra.c:750
+#, fuzzy
+msgid "Didn't find a coloring.\n"
+msgstr "Gushaka a"
+
+#: reg-stack.c:673
+#, fuzzy, c-format
+msgid "output constraint %d must specify a single register"
+msgstr "Ibisohoka Imbogamizi a UMWE Kwiyandikisha"
+
+#: reg-stack.c:683
+#, fuzzy, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+msgstr "Ibisohoka Imbogamizi Na:"
+
+#: reg-stack.c:706
+#, fuzzy
+msgid "output regs must be grouped at top of stack"
+msgstr "Ibisohoka ku Hejuru: Bya"
+
+#: reg-stack.c:743
+#, fuzzy
+msgid "implicitly popped regs must be grouped at top of stack"
+msgstr "ku Hejuru: Bya"
+
+#: reg-stack.c:762
+#, fuzzy, c-format
+msgid "output operand %d must use `&' constraint"
+msgstr "Ibisohoka Gukoresha Imbogamizi"
+
+#: regclass.c:756
+#, fuzzy, c-format
+msgid "can't use '%s' as a %s register"
+msgstr "Gukoresha Nka a Kwiyandikisha"
+
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, fuzzy, c-format
+msgid "unknown register name: %s"
+msgstr "Kitazwi Kwiyandikisha Izina:"
+
+#: regclass.c:782
+#, fuzzy
+msgid "global register variable follows a function definition"
+msgstr "Kwiyandikisha IMPINDURAGACIRO a Umumaro Insobanuro"
+
+#: regclass.c:786
+#, fuzzy
+msgid "register used for two global register variables"
+msgstr "Kwiyandikisha kugirango Kwiyandikisha Ibihinduka"
+
+#: regclass.c:791
+#, fuzzy
+msgid "call-clobbered register used for global register variable"
+msgstr "Kwiyandikisha kugirango Kwiyandikisha IMPINDURAGACIRO"
+
+#: regrename.c:1899
+#, fuzzy, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+msgstr "kugirango ubusa"
+
+#: regrename.c:1911
+#, fuzzy, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
+msgstr "in"
+
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+msgstr ""
+
+#: regrename.c:1926
+#, fuzzy, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+msgstr "ubusa in"
+
+#: reload.c:1229
+#, fuzzy
+msgid "cannot reload integer constant operand in `asm'"
+msgstr "Kongera Gutangiza Umubare wuzuye in"
+
+#: reload.c:1251
+#, fuzzy
+msgid "impossible register constraint in `asm'"
+msgstr "Kwiyandikisha Imbogamizi in"
+
+#: reload.c:3461
+#, fuzzy
+msgid "`&' constraint used with no register class"
+msgstr "`&'Imbogamizi Na: Oya Kwiyandikisha ishuri"
+
+#: reload.c:3629
+#, fuzzy
+msgid "unable to generate reloads for:"
+msgstr "Kuri kugirango"
+
+#: reload.c:3630 reload.c:3844
+#, fuzzy
+msgid "inconsistent operand constraints in an `asm'"
+msgstr "in"
+
+#: reload1.c:1250
+#, fuzzy
+msgid "frame size too large for reliable stack checking"
+msgstr "Ikadiri Ingano Binini kugirango"
+
+#: reload1.c:1253
+#, fuzzy
+msgid "try reducing the number of local variables"
+msgstr "i Umubare Bya Ibihinduka"
+
+#: reload1.c:1909
+#, fuzzy, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
+msgstr "Gushaka a Kwiyandikisha in ishuri"
+
+#: reload1.c:1913
+#, fuzzy, c-format
+msgid "unable to find a register to spill in class `%s'"
+msgstr "Kuri Gushaka a Kwiyandikisha Kuri in ishuri"
+
+#: reload1.c:1915
+#, fuzzy
+msgid "this is the insn:"
+msgstr "iyi ni i"
+
+#: reload1.c:3938
+#, fuzzy
+msgid "`asm' operand requires impossible reload"
+msgstr "`Kongera Gutangiza"
+
+#. It's the compiler's fault.
+#: reload1.c:5052
+#, fuzzy
+msgid "could not find a spill register"
+msgstr "OYA Gushaka a Kwiyandikisha"
+
+#: reload1.c:5057
+#, fuzzy
+msgid "`asm' operand constraint incompatible with operand size"
+msgstr "`Imbogamizi Na: Ingano"
+
+#. It's the compiler's fault.
+#: reload1.c:6679
+#, fuzzy
+msgid "VOIDmode on an output"
+msgstr "ku Ibisohoka"
+
+#: reload1.c:6680
+#, fuzzy
+msgid "output operand is constant in `asm'"
+msgstr "Ibisohoka ni in"
+
+#: rtl-error.c:140
+msgid "unrecognizable insn:"
+msgstr ""
+
+#: rtl-error.c:142
+#, fuzzy
+msgid "insn does not satisfy its constraints:"
+msgstr "OYA"
+
+#: rtl.c:535
+#, fuzzy, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+msgstr "Kugenzura... Bya Bya Na: Iheruka in ku"
+
+#: rtl.c:550
+#, fuzzy, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: Ubwoko in ku"
+
+#: rtl.c:566
+#, fuzzy, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: Ubwoko Cyangwa in ku"
+
+#: rtl.c:579
+#, fuzzy, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: ITEGEKONGENGA in ku"
+
+#: rtl.c:593
+#, fuzzy, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: ITEGEKONGENGA Cyangwa in ku"
+
+#: rtl.c:608
+#, fuzzy, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr "Kugenzura... Bya Bya Na: Iheruka in ku"
+
+#: rtl.c:623
+#, fuzzy, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "Ibendera Kugenzura... Na: ITEGEKONGENGA in ku"
+
+#: stmt.c:766
+#, fuzzy, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
+msgstr "Simbuka Kuri Bifatanya Umuzenguruko"
+
+#: stmt.c:1002 stmt.c:3766
+#, fuzzy, c-format
+msgid "label `%s' used before containing binding contour"
+msgstr "Akarango Mbere Bifatanya Umuzenguruko"
+
+#: stmt.c:1190
+#, fuzzy
+msgid "output operand constraint lacks `='"
+msgstr "Ibisohoka Imbogamizi"
+
+#: stmt.c:1205
+#, fuzzy, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
+msgstr "Ibisohoka Imbogamizi kugirango ni OYA ku i Itangiriro"
+
+#: stmt.c:1227
+#, fuzzy
+msgid "operand constraint contains incorrectly positioned '+' or '='"
+msgstr "Imbogamizi Kirimo Cyangwa"
+
+#: stmt.c:1233 stmt.c:1337
+#, fuzzy, c-format
+msgid "`%%' constraint used with last operand"
+msgstr "`%%'Imbogamizi Na: Iheruka"
+
+#: stmt.c:1252
+#, fuzzy
+msgid "matching constraint not valid in output operand"
+msgstr "Imbogamizi OYA Byemewe in Ibisohoka"
+
+#: stmt.c:1328
+#, fuzzy, c-format
+msgid "input operand constraint contains `%c'"
+msgstr "Iyinjiza Imbogamizi Kirimo"
+
+#: stmt.c:1368
+#, fuzzy
+msgid "matching constraint references invalid operand number"
+msgstr "Imbogamizi Indango Sibyo Umubare"
+
+#: stmt.c:1400
+#, fuzzy, c-format
+msgid "invalid punctuation `%c' in constraint"
+msgstr "Sibyo in Imbogamizi"
+
+#: stmt.c:1450
+#, fuzzy, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "kugirango IMPINDURAGACIRO Na: Urutonde"
+
+#: stmt.c:1540
+#, fuzzy, c-format
+msgid "unknown register name `%s' in `asm'"
+msgstr "Kitazwi Kwiyandikisha Izina: in"
+
+#: stmt.c:1588
+#, fuzzy, c-format
+msgid "more than %d operands in `asm'"
+msgstr "Birenzeho in"
+
+#: stmt.c:1650
+#, fuzzy, c-format
+msgid "output number %d not directly addressable"
+msgstr "Ibisohoka Umubare OYA"
+
+#: stmt.c:1728
+#, fuzzy, c-format
+msgid "asm operand %d probably doesn't match constraints"
+msgstr "BIHUYE"
+
+#: stmt.c:1738
+#, fuzzy, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr "Gukoresha Bya Ububiko Iyinjiza in ni Bitemewe."
+
+#: stmt.c:1889
+#, fuzzy
+msgid "asm clobber conflict with output operand"
+msgstr "Na: Ibisohoka"
+
+#: stmt.c:1894
+#, fuzzy
+msgid "asm clobber conflict with input operand"
+msgstr "Na: Iyinjiza"
+
+#: stmt.c:1929
+#, fuzzy
+msgid "too many alternatives in `asm'"
+msgstr "in"
+
+#: stmt.c:1941
+#, fuzzy
+msgid "operand constraints for `asm' differ in number of alternatives"
+msgstr "kugirango in Umubare Bya"
+
+#: stmt.c:1994
+#, fuzzy, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "Gusubiramo Izina:"
+
+#: stmt.c:2081
+#, fuzzy
+msgid "missing close brace for named operand"
+msgstr "Ibuze Gufunga kugirango"
+
+#: stmt.c:2109
+#, fuzzy, c-format
+msgid "undefined named operand '%s'"
+msgstr "kidasobanuye"
+
+#: stmt.c:3703
+#, fuzzy, c-format
+msgid "unused variable `%s'"
+msgstr "Kidakoreshwa IMPINDURAGACIRO"
+
+#: stmt.c:5189
+#, fuzzy, c-format
+msgid "enumeration value `%s' not handled in switch"
+msgstr "Agaciro OYA in Hindura"
+
+#: stmt.c:5214 stmt.c:5234
+#, fuzzy, c-format
+msgid "case value `%ld' not in enumerated type"
+msgstr "Agaciro OYA in Ubwoko"
+
+#: stmt.c:5217 stmt.c:5237
+#, fuzzy, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
+msgstr "Agaciro OYA in Ubwoko"
+
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "Hindura Ibuze Mburabuzi"
+
+#: stor-layout.c:178
+#, fuzzy
+msgid "type size can't be explicitly evaluated"
+msgstr "Ubwoko Ingano"
+
+#: stor-layout.c:180
+#, fuzzy
+msgid "variable-size type declared outside of any function"
+msgstr "IMPINDURAGACIRO Ingano Ubwoko Hanze Bya Umumaro"
+
+#: stor-layout.c:487
+#, fuzzy, c-format
+msgid "size of `%s' is %d bytes"
+msgstr "Ingano Bya ni Bayite"
+
+#: stor-layout.c:489
+#, fuzzy, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "Ingano Bya ni Kinini Bayite"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, fuzzy, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
+msgstr "Ikiranga Itunganya kugirango"
+
+#: stor-layout.c:911 stor-layout.c:1327
+#, fuzzy, c-format
+msgid "packed attribute is unnecessary for `%s'"
+msgstr "Ikiranga ni kugirango"
+
+#: stor-layout.c:926
+#, fuzzy, c-format
+msgid "padding struct to align `%s'"
+msgstr "Wuzuza: Kuri Gutondeka"
+
+#: stor-layout.c:1289
+#, fuzzy
+msgid "padding struct size to alignment boundary"
+msgstr "Wuzuza: Ingano Kuri Itunganya"
+
+#: stor-layout.c:1332
+#, fuzzy
+msgid "packed attribute causes inefficient alignment"
+msgstr "Ikiranga Itunganya"
+
+#: stor-layout.c:1334
+#, fuzzy
+msgid "packed attribute is unnecessary"
+msgstr "Ikiranga ni"
+
+#: timevar.c:322
+#, fuzzy, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr "Ryari: Hejuru: Bya ni"
+
+#: timevar.c:453
+#, fuzzy
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr "Times amasogonda"
+
+# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-#
+# sc/source\ui\src\autofmt.src:RID_SCDLG_AUTOFORMAT.STR_SUM.text
+# #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-#
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_PIVOT_TOTAL.text
+#. Print total time.
+#: timevar.c:503
+#, fuzzy
+msgid " TOTAL :"
+msgstr "Igiteranyo"
+
+#: timevar.c:539
+#, fuzzy, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "Igihe in"
+
+#: tlink.c:399
+#, c-format
+msgid "collect: reading %s\n"
+msgstr ""
+
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
+msgstr ""
+
+#: tlink.c:674
+#, fuzzy, c-format
+msgid "collect: tweaking %s in %s\n"
+msgstr "in"
+
+#: tlink.c:721
+msgid "collect: relinking\n"
+msgstr ""
+
+#: tlink.c:730
+#, fuzzy, c-format
+msgid "ld returned %d exit status"
+msgstr "Gusohoka Imimerere"
+
+#: toplev.c:920
+#, fuzzy
+msgid "Generate debugging info in default format"
+msgstr "Ibisobanuro in Mburabuzi Imiterere"
+
+#: toplev.c:921
+#, fuzzy
+msgid "Generate debugging info in default extended format"
+msgstr "Ibisobanuro in Mburabuzi Byongerewe... Imiterere"
+
+#: toplev.c:923
+#, fuzzy
+msgid "Generate STABS format debug info"
+msgstr "Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:924
+#, fuzzy
+msgid "Generate extended STABS format debug info"
+msgstr "Byongerewe... Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:927
+#, fuzzy
+msgid "Generate DWARF-1 format debug info"
+msgstr "1. Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:929
+#, fuzzy
+msgid "Generate extended DWARF-1 format debug info"
+msgstr "Byongerewe... 1. Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:932
+#, fuzzy
+msgid "Generate DWARF-2 debug info"
+msgstr "2. Kosora amakosa Ibisobanuro"
+
+#: toplev.c:935
+#, fuzzy
+msgid "Generate XCOFF format debug info"
+msgstr "Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:936
+#, fuzzy
+msgid "Generate extended XCOFF format debug info"
+msgstr "Byongerewe... Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:939
+#, fuzzy
+msgid "Generate COFF format debug info"
+msgstr "Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:942
+#, fuzzy
+msgid "Generate VMS format debug info"
+msgstr "Imiterere Kosora amakosa Ibisobanuro"
+
+#: toplev.c:981
+#, fuzzy
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Gusubiramo"
+
+#: toplev.c:983
+#, fuzzy
+msgid "Do not store floats in registers"
+msgstr "OYA in"
+
+#: toplev.c:985
+#, fuzzy
+msgid "Consider all mem refs through pointers as volatile"
+msgstr "Byose mem Gihinguranya Nka"
+
+#: toplev.c:987
+#, fuzzy
+msgid "Consider all mem refs to global data to be volatile"
+msgstr "Byose mem Kuri Ibyatanzwe Kuri"
+
+#: toplev.c:989
+#, fuzzy
+msgid "Consider all mem refs to static data to be volatile"
+msgstr "Byose mem Kuri Ibyatanzwe Kuri"
+
+#: toplev.c:991
+#, fuzzy
+msgid "Defer popping functions args from stack until later"
+msgstr "Imimaro Bivuye"
+
+#: toplev.c:993
+#, fuzzy
+msgid "When possible do not generate stack frames"
+msgstr "OYA Amakadiri"
+
+#: toplev.c:995
+#, fuzzy
+msgid "Optimize sibling and tail recursive calls"
+msgstr "Na Amahamagara:"
+
+#: toplev.c:997
+#, fuzzy
+msgid "Perform superblock formation via tail duplication"
+msgstr "Biturutse"
+
+#: toplev.c:999
+#, fuzzy
+msgid "When running CSE, follow jumps to their targets"
+msgstr "Kuri"
+
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
+msgstr ""
+
+#: toplev.c:1003
+#, fuzzy
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "a Umubare Bya"
+
+#: toplev.c:1005
+#, fuzzy
+msgid "Perform jump threading optimizations"
+msgstr "Simbuka"
+
+#: toplev.c:1007
+msgid "Perform strength reduction optimizations"
+msgstr ""
+
+#: toplev.c:1009
+#, fuzzy
+msgid "Perform loop unrolling when iteration count is known"
+msgstr "Ryari: IBARA ni"
+
+#: toplev.c:1011
+#, fuzzy
+msgid "Perform loop unrolling for all loops"
+msgstr "kugirango Byose"
+
+#: toplev.c:1013
+#, fuzzy
+msgid "Generate prefetch instructions, if available, for arrays in loops"
+msgstr "Amabwiriza NIBA Bihari kugirango in"
+
+#: toplev.c:1015
+#, fuzzy
+msgid "Force all loop invariant computations out of loops"
+msgstr "Byose Inyuma Bya"
+
+#: toplev.c:1017
+#, fuzzy
+msgid "Strength reduce all loop general induction variables"
+msgstr "Byose Rusange Ibihinduka"
+
+#: toplev.c:1019
+#, fuzzy
+msgid "Store strings in writable data section"
+msgstr "Ikurikiranyanyuguti in Ibyatanzwe Icyiciro"
+
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
+msgstr ""
+
+#: toplev.c:1023
+#, fuzzy
+msgid "Copy memory operands into registers before using"
+msgstr "Ububiko Mbere ikoresha"
+
+#: toplev.c:1025
+#, fuzzy
+msgid "Copy memory address constants into regs before using"
+msgstr "Ububiko Aderesi Mbere ikoresha"
+
+#: toplev.c:1027
+#, fuzzy
+msgid "Allow function addresses to be held in registers"
+msgstr "Umumaro Amaderesi Kuri in"
+
+#: toplev.c:1029
+#, fuzzy
+msgid "Integrate simple functions into their callers"
+msgstr "Byoroheje Imimaro"
+
+#: toplev.c:1031
+#, fuzzy
+msgid "Generate code for funcs even if they are fully inlined"
+msgstr "ITEGEKONGENGA kugirango ATARIIGIHARWE NIBA"
+
+#: toplev.c:1033
+#, fuzzy
+msgid "Pay attention to the 'inline' keyword"
+msgstr "Kuri i Ijambo- banze"
+
+#: toplev.c:1035
+#, fuzzy
+msgid "Emit static const variables even if they are not used"
+msgstr "Ibihinduka ATARIIGIHARWE NIBA OYA"
+
+#: toplev.c:1037
+#, fuzzy
+msgid "Check for syntax errors, then stop"
+msgstr "kugirango Amakosa Hanyuma Guhagarara"
+
+#: toplev.c:1039
+#, fuzzy
+msgid "Mark data as shared rather than private"
+msgstr "Ibyatanzwe Nka By'umwihariko"
+
+#: toplev.c:1041
+#, fuzzy
+msgid "Enable saving registers around function calls"
+msgstr "Mu kubika Umumaro Amahamagara:"
+
+#: toplev.c:1043
+#, fuzzy
+msgid "Return 'short' aggregates in memory, not registers"
+msgstr "in Ububiko OYA"
+
+#: toplev.c:1045
+#, fuzzy
+msgid "Return 'short' aggregates in registers"
+msgstr "in"
+
+#: toplev.c:1047
+#, fuzzy
+msgid "Attempt to fill delay slots of branch instructions"
+msgstr "Kuri Kuzuza Gutinda Siloti Bya Amabwiriza"
+
+#: toplev.c:1049
+#, fuzzy
+msgid "Perform the global common subexpression elimination"
+msgstr "i"
+
+#: toplev.c:1051
+#, fuzzy
+msgid "Perform enhanced load motion during global subexpression elimination"
+msgstr "Ibirimo"
+
+#: toplev.c:1053
+#, fuzzy
+msgid "Perform store motion after global subexpression elimination"
+msgstr "Nyuma"
+
+#: toplev.c:1055
+#, fuzzy
+msgid "Perform the loop optimizations"
+msgstr "i"
+
+#: toplev.c:1057
+#, fuzzy
+msgid "Perform cross-jumping optimization"
+msgstr "Kwambukiranya"
+
+#: toplev.c:1059
+#, fuzzy
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr "Ihindurangero Bya Kuri"
+
+#: toplev.c:1061
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Ihindurangero Bya Kuri"
+
+#: toplev.c:1063
+#, fuzzy
+msgid "Run CSE pass after loop optimizations"
+msgstr "Nyuma"
+
+#: toplev.c:1065
+#, fuzzy
+msgid "Run the loop optimizer twice"
+msgstr "i"
+
+#: toplev.c:1067
+#, fuzzy
+msgid "Delete useless null pointer checks"
+msgstr "NTAGIHARI Mweretsi"
+
+#: toplev.c:1069
+#, fuzzy
+msgid "Reschedule instructions before register allocation"
+msgstr "Amabwiriza Mbere Kwiyandikisha"
+
+#: toplev.c:1071
+#, fuzzy
+msgid "Reschedule instructions after register allocation"
+msgstr "Amabwiriza Nyuma Kwiyandikisha"
+
+#: toplev.c:1073
+#, fuzzy
+msgid "Enable scheduling across basic blocks"
+msgstr "Kwambukiranya BASIC"
+
+#: toplev.c:1075
+#, fuzzy
+msgid "Allow speculative motion of non-loads"
+msgstr "Bya"
+
+#: toplev.c:1077
+#, fuzzy
+msgid "Allow speculative motion of some loads"
+msgstr "Bya"
+
+#: toplev.c:1079
+#, fuzzy
+msgid "Allow speculative motion of more loads"
+msgstr "Bya Birenzeho"
+
+#: toplev.c:1081
+#, fuzzy
+msgid "Replace add,compare,branch with branch on count reg"
+msgstr "Kongeramo Kugereranya# Na: ku IBARA"
+
+#: toplev.c:1083
+#, fuzzy
+msgid "Generate position independent code, if possible"
+msgstr "Ibirindiro ITEGEKONGENGA NIBA"
+
+#: toplev.c:1086
+#, fuzzy
+msgid "Enable exception handling"
+msgstr "Irengayobora(-)"
+
+#: toplev.c:1088
+#, fuzzy
+msgid "Just generate unwind tables for exception handling"
+msgstr "Imbonerahamwe kugirango Irengayobora(-)"
+
+#: toplev.c:1090
+#, fuzzy
+msgid "Generate unwind tables exact at each instruction boundary"
+msgstr "Imbonerahamwe NYACYO ku"
+
+#: toplev.c:1092
+#, fuzzy
+msgid "Support synchronous non-call exceptions"
+msgstr "Amarengayobora"
+
+#: toplev.c:1094
+#, fuzzy
+msgid "Insert arc based program profiling code"
+msgstr "Agaheto Porogaramu ITEGEKONGENGA"
+
+#: toplev.c:1096
+#, fuzzy
+msgid "Create data files needed by gcov"
+msgstr "Ibyatanzwe Idosiye ku"
+
+#: toplev.c:1098
+#, fuzzy
+msgid "Use profiling information for branch probabilities"
+msgstr "Ibisobanuro kugirango"
+
+#: toplev.c:1100
+#, fuzzy
+msgid "Enable basic program profiling code"
+msgstr "BASIC Porogaramu ITEGEKONGENGA"
+
+#: toplev.c:1102
+#, fuzzy
+msgid "Reorder basic blocks to improve code placement"
+msgstr "BASIC Kuri ITEGEKONGENGA Ishyira mu mwanya"
+
+#: toplev.c:1104
+#, fuzzy
+msgid "Reorder functions to improve code placement"
+msgstr "Imimaro Kuri ITEGEKONGENGA Ishyira mu mwanya"
+
+#: toplev.c:1106
+#, fuzzy
+msgid "Do the register renaming optimization pass"
+msgstr "i Kwiyandikisha"
+
+#: toplev.c:1108
+#, fuzzy
+msgid "Do the register copy-propagation optimization pass"
+msgstr "i Kwiyandikisha Gukoporora"
+
+#: toplev.c:1110
+#, fuzzy
+msgid "Do not put uninitialized globals in the common section"
+msgstr "OYA Gushyira Itatangijwe in i Icyiciro"
+
+#: toplev.c:1112
+#, fuzzy
+msgid "Do not generate .size directives"
+msgstr "OYA Ingano"
+
+#: toplev.c:1114
+#, fuzzy
+msgid "place each function into its own section"
+msgstr "Umumaro Icyiciro"
+
+#: toplev.c:1116
+#, fuzzy
+msgid "place data items into their own section"
+msgstr "Ibyatanzwe Icyiciro"
+
+#: toplev.c:1118
+#, fuzzy
+msgid "Add extra commentary to assembler output"
+msgstr "Birenga Kuri Ibisohoka"
+
+#: toplev.c:1120
+#, fuzzy
+msgid "Output GNU ld formatted global initializers"
+msgstr "Byahanaguwe"
+
+#: toplev.c:1122
+#, fuzzy
+msgid "Enables a register move optimization"
+msgstr "a Kwiyandikisha Kwimura"
+
+#: toplev.c:1124
+#, fuzzy
+msgid "Do the full regmove optimization pass"
+msgstr "i"
+
+#: toplev.c:1126
+#, fuzzy
+msgid "Pack structure members together without holes"
+msgstr "Imiterere"
+
+#: toplev.c:1128
+#, fuzzy
+msgid "Insert stack checking code into the program"
+msgstr "ITEGEKONGENGA i Porogaramu"
+
+#: toplev.c:1130
+#, fuzzy
+msgid "Specify that arguments may alias each other & globals"
+msgstr "ingingo Gicurasi Irihimbano Ikindi"
+
+#: toplev.c:1132
+#, fuzzy
+msgid "Assume arguments may alias globals but not each other"
+msgstr "ingingo Gicurasi Irihimbano OYA Ikindi"
+
+#: toplev.c:1134
+#, fuzzy
+msgid "Assume arguments do not alias each other or globals"
+msgstr "ingingo OYA Irihimbano Ikindi Cyangwa"
+
+#: toplev.c:1136
+#, fuzzy
+msgid "Assume strict aliasing rules apply"
+msgstr "Gukurikiza"
+
+#: toplev.c:1138
+#, fuzzy
+msgid "Align the start of loops"
+msgstr "i Gutangira Bya"
+
+#: toplev.c:1140
+#, fuzzy
+msgid "Align labels which are only reached by jumping"
+msgstr "Uturango... ku"
+
+#: toplev.c:1142
+#, fuzzy
+msgid "Align all labels"
+msgstr "Byose Uturango..."
+
+#: toplev.c:1144
+#, fuzzy
+msgid "Align the start of functions"
+msgstr "i Gutangira Bya Imimaro"
+
+#: toplev.c:1146
+#, fuzzy
+msgid "Attempt to merge identical constants across compilation units"
+msgstr "Kuri Gukomatanya birasa Kwambukiranya"
+
+#: toplev.c:1148
+#, fuzzy
+msgid "Attempt to merge identical constants and constant variables"
+msgstr "Kuri Gukomatanya birasa Na Ibihinduka"
+
+#: toplev.c:1150
+#, fuzzy
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+msgstr "Ibisohoka Bya Imibare Na Umurongo Umubare Ibisobanuro in"
+
+#: toplev.c:1152
+#, fuzzy
+msgid "Instrument function entry/exit with profiling calls"
+msgstr "Umumaro Icyinjijwe Gusohoka Na: Amahamagara:"
+
+#: toplev.c:1154
+#, fuzzy
+msgid "Put zero initialized data in the bss section"
+msgstr "Zeru Ibyatanzwe in i Icyiciro"
+
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
+msgstr ""
+
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
+msgstr ""
+
+#: toplev.c:1160
+#, fuzzy
+msgid "Enable aggressive SSA dead code elimination"
+msgstr "ITEGEKONGENGA"
+
+#: toplev.c:1162
+#, fuzzy
+msgid "External symbols have a leading underscore"
+msgstr "Ibimenyetso a Nyobora"
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr ""
+
+#: toplev.c:1166
+#, fuzzy
+msgid "Enables an rtl peephole pass run before sched2"
+msgstr "Gukoresha Mbere"
+
+#: toplev.c:1168
+#, fuzzy
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr "Oya Cyangwa"
+
+#: toplev.c:1170
+#, fuzzy
+msgid "Enables guessing of branch probabilities"
+msgstr "Bya"
+
+#: toplev.c:1172
+#, fuzzy
+msgid "Set errno after built-in math functions"
+msgstr "Nyuma in Imibare Imimaro"
+
+#: toplev.c:1174
+#, fuzzy
+msgid "Floating-point operations can trap"
+msgstr "Akadomo Ibikorwa:"
+
+#: toplev.c:1176
+#, fuzzy
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+msgstr "Imibare Gicurasi Cyangwa"
+
+#: toplev.c:1178
+#, fuzzy
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr "ku"
+
+#: toplev.c:1180
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "ITEGEKONGENGA Kuri Kugenzura... Mbere gushyiraho umugereka"
+
+#: toplev.c:1182
+#, fuzzy
+msgid "Convert floating point constant to single precision constant"
+msgstr "Bihindagurika Akadomo Kuri UMWE"
+
+#: toplev.c:1184
+#, fuzzy
+msgid "Report time taken by each compiler pass at end of run"
+msgstr "Igihe ku ku Impera Bya Gukoresha"
+
+#: toplev.c:1186
+#, fuzzy
+msgid "Report on permanent memory allocation at end of run"
+msgstr "ku Ububiko ku Impera Bya Gukoresha"
+
+#: toplev.c:1188
+#, fuzzy
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
+msgstr "kugirango Byarenze urugero in Guteranya+ Gukuramo Gukuba(*)"
+
+#: toplev.c:1190
+#, fuzzy
+msgid "Use graph coloring register allocation."
+msgstr "Kwiyandikisha"
+
+#: toplev.c:1207
+#, fuzzy
+msgid "Compile just for ISO C90"
+msgstr "kugirango"
+
+#: toplev.c:1209
+#, fuzzy
+msgid "Determine language standard"
+msgstr "Ururimi Bisanzwe"
+
+#: toplev.c:1213
+#, fuzzy
+msgid "Make bit-fields by unsigned by default"
+msgstr "Imyanya ku Bitashizweho umukono ku Mburabuzi"
+
+#: toplev.c:1217
+#, fuzzy
+msgid "Make 'char' be signed by default"
+msgstr "ku Mburabuzi"
+
+#: toplev.c:1219
+#, fuzzy
+msgid "Make 'char' be unsigned by default"
+msgstr "Bitashizweho umukono ku Mburabuzi"
+
+#: toplev.c:1225
+#, fuzzy
+msgid "Do not recognize the 'asm' keyword"
+msgstr "OYA i Ijambo- banze"
+
+#: toplev.c:1228
+#, fuzzy
+msgid "Do not recognize any built in functions"
+msgstr "OYA in Imimaro"
+
+#: toplev.c:1230
+#, fuzzy
+msgid "Assume normal C execution environment"
+msgstr "Bisanzwe C"
+
+#: toplev.c:1233
+#, fuzzy
+msgid "Assume that standard libraries & main might not exist"
+msgstr "Bisanzwe Amasomero OYA"
+
+#: toplev.c:1236
+#, fuzzy
+msgid "Allow different types as args of ? operator"
+msgstr "Nka Bya Mukoresha"
+
+#: toplev.c:1239
+#, fuzzy
+msgid "Allow the use of $ inside identifiers"
+msgstr "i Gukoresha Bya Mo Imbere"
+
+#: toplev.c:1244
+#, fuzzy
+msgid "Use the same size for double as for float"
+msgstr "i Ingano kugirango MAHARAKUBIRI Nka kugirango Kureremba"
+
+#: toplev.c:1247
+#, fuzzy
+msgid "Use the smallest fitting integer to hold enums"
+msgstr "i Gitoya Umubare wuzuye Kuri"
+
+#: toplev.c:1250
+#, fuzzy
+msgid "Override the underlying type for wchar_t to `unsigned short'"
+msgstr "i Ubwoko kugirango Kuri Bitashizweho umukono"
+
+#: toplev.c:1254
+#, fuzzy
+msgid "Enable most warning messages"
+msgstr "Iburira Ubutumwa"
+
+#: toplev.c:1256
+#, fuzzy
+msgid "Warn about casting functions to incompatible types"
+msgstr "Ibyerekeye Imimaro Kuri"
+
+#: toplev.c:1259
+#, fuzzy
+msgid "Warn about functions which might be candidates for format attributes"
+msgstr "Ibyerekeye Imimaro kugirango Imiterere Ibiranga"
+
+#: toplev.c:1262
+#, fuzzy
+msgid "Warn about casts which discard qualifiers"
+msgstr "Ibyerekeye Kwanga"
+
+#: toplev.c:1265
+#, fuzzy
+msgid "Warn about subscripts whose type is 'char'"
+msgstr "Ibyerekeye bya Ubwoko ni"
+
+#: toplev.c:1268 toplev.c:1271
+#, fuzzy
+msgid "Warn if nested comments are detected"
+msgstr "NIBA Ibisobanuro"
+
+#: toplev.c:1274
+#, fuzzy
+msgid "Warn about possibly confusing type conversions"
+msgstr "Ibyerekeye Ubwoko"
+
+#: toplev.c:1278
+#, fuzzy
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "OYA Ibyerekeye Gukusanya Igihe Umubare wuzuye ku Zeru"
+
+#: toplev.c:1280
+#, fuzzy
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Ibyerekeye Bya Bihindagurika Akadomo Imibare"
+
+#: toplev.c:1283
+#, fuzzy
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+msgstr "Ibyerekeye Imiterere"
+
+#: toplev.c:1287
+#, fuzzy
+msgid "Don't warn about too many arguments to format functions"
+msgstr "Ibyerekeye ingingo Kuri Imiterere Imimaro"
+
+#: toplev.c:1289
+#, fuzzy
+msgid "Warn about non-string-literal format strings"
+msgstr "Ibyerekeye Ikurikiranyanyuguti Imiterere Ikurikiranyanyuguti"
+
+#: toplev.c:1292
+#, fuzzy
+msgid "Warn about possible security problems with format functions"
+msgstr "Ibyerekeye Umutekano Na: Imiterere Imimaro"
+
+#: toplev.c:1296
+#, fuzzy
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr "Ibyerekeye Imiterere 2. IMYAKA"
+
+#: toplev.c:1298
+#, fuzzy
+msgid "Warn about implicit function declarations"
+msgstr "Ibyerekeye Umumaro"
+
+#: toplev.c:1302
+#, fuzzy
+msgid "Warn when a declaration does not specify a type"
+msgstr "Ryari: a OYA a Ubwoko"
+
+#: toplev.c:1307
+#, fuzzy
+msgid "Warn about the use of the #import directive"
+msgstr "Ibyerekeye i Gukoresha Bya i Kuzana"
+
+#: toplev.c:1311
+#, fuzzy
+msgid "Do not warn about using 'long long' when -pedantic"
+msgstr "OYA Ibyerekeye ikoresha Ryari:"
+
+#: toplev.c:1313
+#, fuzzy
+msgid "Warn about suspicious declarations of main"
+msgstr "Ibyerekeye Bya"
+
+#: toplev.c:1316
+#, fuzzy
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Ibyerekeye Ibuze Ingirwadusodeko"
+
+#: toplev.c:1319
+#, fuzzy
+msgid "Warn about global funcs without previous declarations"
+msgstr "Ibyerekeye Ibanjirije"
+
+#: toplev.c:1322
+#, fuzzy
+msgid "Warn about global funcs without prototypes"
+msgstr "Ibyerekeye"
+
+#: toplev.c:1325
+#, fuzzy
+msgid "Warn about use of multicharacter literals"
+msgstr "Ibyerekeye Gukoresha Bya"
+
+#: toplev.c:1328
+#, fuzzy
+msgid "Warn about externs not at file scope level"
+msgstr "Ibyerekeye OYA ku IDOSIYE Ingano: urwego"
+
+#: toplev.c:1331
+#, fuzzy
+msgid "Warn about possible missing parentheses"
+msgstr "Ibyerekeye Ibuze"
+
+#: toplev.c:1334
+#, fuzzy
+msgid "Warn about function pointer arithmetic"
+msgstr "Ibyerekeye Umumaro Mweretsi"
+
+#: toplev.c:1337
+#, fuzzy
+msgid "Warn about multiple declarations of the same object"
+msgstr "Ibyerekeye Igikubo Bya i Igikoresho"
+
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "a Garuka Ubwoko Kuri INT"
+
+#: toplev.c:1343
+#, fuzzy
+msgid "Warn about possible violations of sequence point rules"
+msgstr "Ibyerekeye Bya Akadomo"
+
+#: toplev.c:1346
+#, fuzzy
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Ibyerekeye Bitashizweho umukono"
+
+#: toplev.c:1349
+#, fuzzy
+msgid "Warn about non-prototyped function decls"
+msgstr "Ibyerekeye Umumaro"
+
+#: toplev.c:1352
+#, fuzzy
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Ibyerekeye bya Guhindura>> in C"
+
+#: toplev.c:1355
+#, fuzzy
+msgid "Warn when trigraphs are encountered"
+msgstr "Ryari:"
+
+#: toplev.c:1360
+#, fuzzy
+msgid "Warn about unrecognized pragmas"
+msgstr "Ibyerekeye"
+
+#: toplev.c:1363
+#, fuzzy
+msgid "Mark strings as 'const char *'"
+msgstr "Ikurikiranyanyuguti Nka INYUGUTI"
+
+#: toplev.c:1508
+#, fuzzy
+msgid "Warn when a function is unused"
+msgstr "Ryari: a Umumaro ni Kidakoreshwa"
+
+#: toplev.c:1510
+#, fuzzy
+msgid "Warn when a label is unused"
+msgstr "Ryari: a Akarango ni Kidakoreshwa"
+
+#: toplev.c:1512
+#, fuzzy
+msgid "Warn when a function parameter is unused"
+msgstr "Ryari: a Umumaro ni Kidakoreshwa"
+
+#: toplev.c:1514
+#, fuzzy
+msgid "Warn when a variable is unused"
+msgstr "Ryari: a IMPINDURAGACIRO ni Kidakoreshwa"
+
+#: toplev.c:1516
+#, fuzzy
+msgid "Warn when an expression value is unused"
+msgstr "Ryari: imvugo Agaciro ni Kidakoreshwa"
+
+#: toplev.c:1518
+#, fuzzy
+msgid "Do not suppress warnings from system headers"
+msgstr "OYA Iburira Bivuye Sisitemu Imitwe"
+
+#: toplev.c:1520
+#, fuzzy
+msgid "Treat all warnings as errors"
+msgstr "Byose Iburira Nka Amakosa"
+
+#: toplev.c:1522
+#, fuzzy
+msgid "Warn when one local variable shadows another"
+msgstr "Ryari: IMPINDURAGACIRO"
+
+#: toplev.c:1524
+#, fuzzy
+msgid "Warn about enumerated switches, with no default, missing a case"
+msgstr "Ibyerekeye Na: Oya Mburabuzi Ibuze a"
+
+#: toplev.c:1526
+#, fuzzy
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Ibyerekeye Ibuze a Mburabuzi"
+
+#: toplev.c:1528
+#, fuzzy
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Ibyerekeye Byose Ibuze a"
+
+#: toplev.c:1530
+#, fuzzy
+msgid "Warn about returning structures, unions or arrays"
+msgstr "Ibyerekeye Cyangwa"
+
+#: toplev.c:1532
+#, fuzzy
+msgid "Warn about pointer casts which increase alignment"
+msgstr "Ibyerekeye Mweretsi Itunganya"
+
+#: toplev.c:1534
+#, fuzzy
+msgid "Warn about code that will never be executed"
+msgstr "Ibyerekeye ITEGEKONGENGA Nta narimwe"
+
+#: toplev.c:1536
+#, fuzzy
+msgid "Warn about uninitialized automatic variables"
+msgstr "Ibyerekeye Itatangijwe Byikoresha Ibihinduka"
+
+#: toplev.c:1538
+#, fuzzy
+msgid "Warn when an inlined function cannot be inlined"
+msgstr "Ryari: Umumaro"
+
+#: toplev.c:1540
+#, fuzzy
+msgid "Warn when the packed attribute has no effect on struct layout"
+msgstr "Ryari: i Ikiranga Oya INGARUKA ku Imigaragarire"
+
+#: toplev.c:1542
+#, fuzzy
+msgid "Warn when padding is required to align struct members"
+msgstr "Ryari: Wuzuza: ni Bya ngombwa Kuri Gutondeka"
+
+#: toplev.c:1544
+#, fuzzy
+msgid "Warn when an optimization pass is disabled"
+msgstr "Ryari: ni Yahagaritswe"
+
+#: toplev.c:1546
+#, fuzzy
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
+msgstr "Ibyerekeye Bya Ikiranga Bitemewe."
+
+#: toplev.c:1548
+#, fuzzy
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr "Ibyerekeye Imimaro kugirango Ikiranga"
+
+#: toplev.c:1550
+#, fuzzy
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Ibyerekeye ITEGEKONGENGA itandukanya i"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, fuzzy, c-format
+msgid "invalid option `%s'"
+msgstr "Sibyo Ihitamo"
+
+#: toplev.c:2031
+#, fuzzy, c-format
+msgid "`%s' used but never defined"
+msgstr "`%s'Nta narimwe"
+
+#: toplev.c:2034
+#, fuzzy, c-format
+msgid "`%s' declared `static' but never defined"
+msgstr "`%s'Nta narimwe"
+
+#: toplev.c:2057
+#, fuzzy, c-format
+msgid "`%s' defined but not used"
+msgstr "`%s'OYA"
+
+#: toplev.c:2280
+#, fuzzy, c-format
+msgid "invalid register name `%s' for register variable"
+msgstr "Sibyo Kwiyandikisha Izina: kugirango Kwiyandikisha IMPINDURAGACIRO"
+
+#: toplev.c:3697
+#, fuzzy
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka Kuri i"
+
+#: toplev.c:3698
+#, fuzzy
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka ku Umumaro"
+
+#: toplev.c:3699
+#, fuzzy
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr "-Kwiyandikisha Kwiyandikisha Nka Kwambukiranya"
+
+#: toplev.c:3700
+#, fuzzy
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr "-Umubare i Ingano Bya Imimaro Kuri Umubare"
+
+#: toplev.c:3701
+#, fuzzy
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr "-Uburebure Umubare Ubutumwa Kuri Umubare Inyuguti Umurongo 0 Umurongo"
+
+#: toplev.c:3702
+#, fuzzy
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr "-Garagaza Ahantu Rimwe buri Umurongo Inkomoko Ahantu Ibisobanuro Nka Imbanziriza ku i Itangiriro Bya Ryari: Umurongo"
+
+#: toplev.c:3703
+#, fuzzy
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr "-Urugero i Mburabuzi Urudodo ITEGEKONGENGA"
+
+#: toplev.c:3704
+#, fuzzy
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr "-Kwiyandikisha Kwiyandikisha NIBA i Kwiyandikisha"
+
+#: toplev.c:3705
+#, fuzzy
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr "-IKIMENYETSO Izina: NIBA i IKIMENYETSO Izina:"
+
+#: toplev.c:3706
+#, fuzzy
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr "-Ikurikiranyanyuguti Gukusanya ikoresha Ikurikiranyanyuguti"
+
+#: toplev.c:3718
+#, fuzzy
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr "-Umubare urwego Kuri Umubare"
+
+#: toplev.c:3719
+#, fuzzy
+msgid " -Os Optimize for space rather than speed\n"
+msgstr "-kugirango Umwanya"
+
+#: toplev.c:3731
+#, fuzzy
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr "-Iburira ku Kuri"
+
+#: toplev.c:3732
+#, fuzzy
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr "-Amakosa Amakosa"
+
+#: toplev.c:3733
+#, fuzzy
+msgid " -w Suppress warnings\n"
+msgstr "-W"
+
+#: toplev.c:3734
+#, fuzzy
+msgid " -W Enable extra warnings\n"
+msgstr "-Birenga"
+
+#: toplev.c:3745
+#, fuzzy
+msgid " -Wunused Enable unused warnings\n"
+msgstr "-Kidakoreshwa"
+
+#: toplev.c:3746
+#, fuzzy
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr "-Umubare NIBA Igikoresho ni Kinini Umubare"
+
+#: toplev.c:3747
+#, fuzzy
+msgid " -p Enable function profiling\n"
+msgstr "-P Umumaro"
+
+#: toplev.c:3748
+#, fuzzy
+msgid " -o <file> Place output into <file> \n"
+msgstr "-o IDOSIYE Ibisohoka IDOSIYE"
+
+#: toplev.c:3749
+#, fuzzy
+msgid ""
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
+msgstr "-Umubare Na Ibyatanzwe Gitoya Umubare Bayite a Bidasanzwe Icyiciro ku"
+
+#: toplev.c:3760
+#, fuzzy
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr "-Ibisobanuro IDOSIYE Ibisobanuro IDOSIYE"
+
+#: toplev.c:3761
+#, fuzzy
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr "-OYA Kugaragaza Imimaro Cyangwa"
+
+#: toplev.c:3762
+#, fuzzy
+msgid " -version Display the compiler's version\n"
+msgstr "-Verisiyo i"
+
+#: toplev.c:3763
+#, fuzzy
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr "-D Bivuye Bya i"
+
+#: toplev.c:3764
+#, fuzzy
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr "-IDOSIYE Base Izina: Kuri kugirango Bivuye"
+
+#: toplev.c:3766
+#, fuzzy
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr "-Umubare i urwego Bya i"
+
+#: toplev.c:3768
+#, fuzzy
+msgid " --help Display this information\n"
+msgstr "--Ifashayobora iyi"
+
+#: toplev.c:3783
+#, fuzzy
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr "Amahitamo"
+
+#: toplev.c:3795
+#, fuzzy, c-format
+msgid " %-23.23s [undocumented]\n"
+msgstr ""
+"%-23.Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: toplev.c:3803 toplev.c:3817
+#, fuzzy, c-format
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
+msgstr "Amahitamo Nka"
+
+#: toplev.c:3807
+#, fuzzy, c-format
+msgid ""
+"\n"
+" Options for %s:\n"
+msgstr "kugirango"
+
+#: toplev.c:3844
+#, fuzzy
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr "Amahitamo"
+
+#: toplev.c:3858 toplev.c:3877
+#, fuzzy, c-format
+msgid " -m%-23.23s [undocumented]\n"
+msgstr "-M."
+
+#: toplev.c:3886
+#, fuzzy
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
+msgstr "Intego Amahitamo Nka"
+
+#: toplev.c:3888
+#, fuzzy
+msgid " They exist, but they are not documented.\n"
+msgstr "OYA"
+
+#: toplev.c:3941
+#, fuzzy, c-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr "Ihitamo"
+
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "`%s':Kitazwi TLS Urugero Ihitamo"
+
+#: toplev.c:4034
+#, fuzzy, c-format
+msgid "unrecognized register name `%s'"
+msgstr "Kwiyandikisha Izina:"
+
+#: toplev.c:4059 toplev.c:5012
+#, fuzzy, c-format
+msgid "unrecognized option `%s'"
+msgstr "Ihitamo"
+
+#: toplev.c:4107
+#, fuzzy
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr "-ni Oya"
+
+#: toplev.c:4184
+#, fuzzy, c-format
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr "Gukoresha g kugirango urwego"
+
+#: toplev.c:4187
+#, fuzzy
+msgid "use -gdwarf-2 for DWARF v2"
+msgstr "Gukoresha 2. kugirango"
+
+#: toplev.c:4192
+#, fuzzy, c-format
+msgid "ignoring option `%s' due to invalid debug level specification"
+msgstr "Ihitamo Kuri Sibyo Kosora amakosa urwego"
+
+#: toplev.c:4215 toplev.c:5010
+#, fuzzy, c-format
+msgid "`%s': unknown or unsupported -g option"
+msgstr "`%s':Kitazwi Cyangwa g Ihitamo"
+
+#: toplev.c:4222
+#, fuzzy, c-format
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr "`%s'Na: g"
+
+#: toplev.c:4304
+#, fuzzy
+msgid "-param option missing argument"
+msgstr "-Ihitamo Ibuze"
+
+#: toplev.c:4313
+#, fuzzy, c-format
+msgid "invalid --param option: %s"
+msgstr "Sibyo Ihitamo"
+
+#: toplev.c:4325
+#, fuzzy, c-format
+msgid "invalid parameter value `%s'"
+msgstr "Sibyo Agaciro"
+
+#: toplev.c:4565
+#, fuzzy, c-format
+msgid ""
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
+msgstr "%s%s%sVerisiyo ku C Verisiyo Verisiyo ku"
+
+#: toplev.c:4572
+#, fuzzy, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sGGCGITO Kwagura GITO"
+
+#: toplev.c:4630
+#, fuzzy
+msgid "options passed: "
+msgstr "Amahitamo"
+
+#: toplev.c:4659
+#, fuzzy
+msgid "options enabled: "
+msgstr "Amahitamo Bikora"
+
+#: toplev.c:4718 java/jcf-write.c:3453
+#, fuzzy, c-format
+msgid "can't open %s for writing"
+msgstr "Gufungura kugirango"
+
+#: toplev.c:5002
+#, fuzzy, c-format
+msgid "ignoring command line option '%s'"
+msgstr "Komandi: Umurongo Ihitamo"
+
+#: toplev.c:5005
+#, fuzzy, c-format
+msgid "(it is valid for %s but not the selected language)"
+msgstr "(ni Byemewe kugirango OYA i Byahiswemo Ururimi"
+
+#: toplev.c:5039
+#, fuzzy
+msgid "-Wuninitialized is not supported without -O"
+msgstr "-ni OYA"
+
+#: toplev.c:5094
+#, fuzzy
+msgid "instruction scheduling not supported on this target machine"
+msgstr "OYA ku iyi Intego"
+
+#: toplev.c:5098
+#, fuzzy
+msgid "this target machine does not have delayed branches"
+msgstr "iyi Intego OYA"
+
+#: toplev.c:5112
+#, fuzzy, c-format
+msgid "-f%sleading-underscore not supported on this target machine"
+msgstr "-F OYA ku iyi Intego"
+
+#: toplev.c:5175
+#, fuzzy
+msgid "-ffunction-sections not supported for this target"
+msgstr "-Ibyatoranyijwe OYA kugirango iyi Intego"
+
+#: toplev.c:5180
+#, fuzzy
+msgid "-fdata-sections not supported for this target"
+msgstr "-Ibyatoranyijwe OYA kugirango iyi Intego"
+
+#: toplev.c:5187
+#, fuzzy
+msgid "-ffunction-sections disabled; it makes profiling impossible"
+msgstr "-Ibyatoranyijwe Yahagaritswe"
+
+#: toplev.c:5194
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "-OYA kugirango iyi Intego"
+
+#: toplev.c:5200
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+msgstr "-OYA kugirango iyi Intego Werurwe"
+
+#: toplev.c:5209
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "-ni OYA Na:"
+
+#: toplev.c:5215
+#, fuzzy
+msgid "-ffunction-sections may affect debugging on some targets"
+msgstr "-Ibyatoranyijwe Gicurasi ku"
+
+#: toplev.c:5327
+#, fuzzy, c-format
+msgid "error writing to %s"
+msgstr "Ikosa Kuri"
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, fuzzy, c-format
+msgid "error closing %s"
+msgstr "Ikosa"
+
+#: tree-dump.c:702
+#, fuzzy, c-format
+msgid "could not open dump file `%s'"
+msgstr "OYA Gufungura IDOSIYE"
+
+#: tree-dump.c:778
+#, fuzzy, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr "Kitazwi Ihitamo in F"
+
+#: tree.c:3645
+#, fuzzy
+msgid "arrays of functions are not meaningful"
+msgstr "Bya Imimaro OYA"
+
+#: tree.c:3702
+#, fuzzy
+msgid "function return type cannot be function"
+msgstr "Umumaro Garuka Ubwoko Umumaro"
+
+#: tree.c:4557
+#, fuzzy
+msgid "invalid initializer for bit string"
+msgstr "Sibyo kugirango Ikurikiranyanyuguti"
+
+#: tree.c:4616
+#, fuzzy, c-format
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: in ku"
+
+#: tree.c:4633
+#, fuzzy, c-format
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr "Kugenzura... Ikitezwe: ishuri in ku"
+
+#: tree.c:4650
+#, fuzzy, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "Kugenzura... birabonetse Bya Na: in ku"
+
+#: varasm.c:455 config/i386/winnt.c:611
+#, fuzzy, c-format
+msgid "%s causes a section type conflict"
+msgstr "%sa Icyiciro Ubwoko"
+
+#: varasm.c:841
+#, fuzzy, c-format
+msgid "register name not specified for `%s'"
+msgstr "Kwiyandikisha Izina: OYA kugirango"
+
+#: varasm.c:843
+#, fuzzy, c-format
+msgid "invalid register name for `%s'"
+msgstr "Sibyo Kwiyandikisha Izina: kugirango"
+
+#: varasm.c:846
+#, fuzzy, c-format
+msgid "data type of `%s' isn't suitable for a register"
+msgstr "Ibyatanzwe Ubwoko Bya si kugirango a Kwiyandikisha"
+
+#: varasm.c:849
+#, fuzzy, c-format
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr "Kwiyandikisha kugirango si kugirango Ibyatanzwe Ubwoko"
+
+#: varasm.c:858
+#, fuzzy
+msgid "global register variable has initial value"
+msgstr "Kwiyandikisha IMPINDURAGACIRO Agaciro"
+
+#: varasm.c:861
+#, fuzzy
+msgid "volatile register variables don't work as you might wish"
+msgstr "Kwiyandikisha Ibihinduka Akazi Nka"
+
+#: varasm.c:894
+#, fuzzy, c-format
+msgid "register name given for non-register variable `%s'"
+msgstr "Kwiyandikisha Izina: kugirango Kwiyandikisha IMPINDURAGACIRO"
+
+#: varasm.c:1542
+#, fuzzy, c-format
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+msgstr "Itunganya Bya ni Biruta Kinini Igikoresho IDOSIYE Itunganya"
+
+#: varasm.c:1584
+#, fuzzy
+msgid "thread-local COMMON data not implemented"
+msgstr "Urudodo Ibyatanzwe OYA"
+
+#: varasm.c:1610
+#, fuzzy, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr "Itunganya kugirango ni Biruta Itunganya Bya"
+
+#: varasm.c:4048
+#, fuzzy
+msgid "initializer for integer value is too complicated"
+msgstr "kugirango Umubare wuzuye Agaciro ni"
+
+#: varasm.c:4053
+#, fuzzy
+msgid "initializer for floating value is not a floating constant"
+msgstr "kugirango Bihindagurika Agaciro ni OYA a Bihindagurika"
+
+#: varasm.c:4120
+#, fuzzy
+msgid "unknown set constructor type"
+msgstr "Kitazwi Gushyiraho Ubwoko"
+
+#: varasm.c:4334
+#, fuzzy, c-format
+msgid "invalid initial value for member `%s'"
+msgstr "Sibyo Agaciro kugirango"
+
+#: varasm.c:4525 varasm.c:4568
+#, fuzzy, c-format
+msgid "weak declaration of `%s' must precede definition"
+msgstr "Bya Insobanuro"
+
+#: varasm.c:4532
+#, fuzzy, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "Bya Nyuma Itangira Gukoresha Ibisubizo ku in imyitwarire"
+
+#: varasm.c:4566
+#, fuzzy, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "Bya Rusange"
+
+#: varasm.c:4575
+#, fuzzy, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr "Bya OYA"
+
+#: varasm.c:4602 varasm.c:4677
+#, fuzzy
+msgid "only weak aliases are supported in this configuration"
+msgstr "Irihimbano in iyi Iboneza"
+
+#: varasm.c:4685
+#, fuzzy
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr "Irihimbano OYA in iyi Iboneza"
+
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "Ukugaragara Ikiranga OYA in iyi Iboneza"
+
+#: varray.c:134
+#, fuzzy, c-format
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr "Kitaboneka Imbonerahamwe Ikigize: Inyuma Bya in ku"
+
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
+#, fuzzy, c-format
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr "Oya kugirango"
+
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#`%s'OYA ku"
+
+#: params.def:53
+#, fuzzy
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr "Kinini Umubare Bya Amabwiriza in a UMWE Umumaro kugirango"
+
+#: params.def:65
+#, fuzzy
+msgid "The maximum number of instructions when automatically inlining"
+msgstr "Kinini Umubare Bya Amabwiriza Ryari: ku buryo bwikora"
+
+#: params.def:84
+#, fuzzy
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+msgstr "Kinini Umubare Bya Amabwiriza ku byasubiyemo Mbere Kuri"
+
+#: params.def:97
+#, fuzzy
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr "IMANURA Bya i By'umurongo Umumaro Nyuma i ni ku i Agaciro Bya iyi"
+
+#: params.def:110
+#, fuzzy
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr "Umubare Bya Amabwiriza in a UMWE Imimaro Kuri Nyuma a"
+
+#: params.def:120
+#, fuzzy
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "Kinini Umubare Bya Amabwiriza kugirango i"
+
+#: params.def:131
+#, fuzzy
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr "Kinini Umubare Bya Amabwiriza Kuri Kuri Kuzuza a Gutinda"
+
+#: params.def:142
+#, fuzzy
+msgid "The maximum number of instructions to consider to find accurate live register information"
+msgstr "Kinini Umubare Bya Amabwiriza Kuri Kuri Gushaka Kwiyandikisha Ibisobanuro"
+
+#: params.def:152
+#, fuzzy
+msgid "The maximum length of scheduling's pending operations list"
+msgstr "Kinini Uburebure Bya Ibikorwa: Urutonde"
+
+#: params.def:159
+#, fuzzy
+msgid "The maximum amount of memory to be allocated by GCSE"
+msgstr "Kinini Igiteranyo Bya Ububiko Kuri ku"
+
+#: params.def:164
+#, fuzzy
+msgid "The maximum number of passes to make when doing GCSE"
+msgstr "Kinini Umubare Bya Kuri Ubwoko Ryari:"
+
+#: params.def:171
+#, fuzzy
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr "Kinini Umubare Bya Amabwiriza Kuri Kuri in a"
+
+#: params.def:176
+#, fuzzy
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr "Imigabane Bya i IBARA Bya Bya BASIC Funga in Porogaramu BASIC Funga Kuri Kuri"
+
+#: params.def:181
+#, fuzzy
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr "Imigabane Bya i Ubwisubire Bya Bya BASIC Funga in Umumaro BASIC Funga Kuri Kuri"
+
+#: params.def:186
+#, fuzzy
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr "Ijanisha Bya Umumaro ku Ubwisubire ku Ryari: Ibijyana ni Bihari"
+
+#: params.def:191
+#, fuzzy
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr "Ijanisha Bya Umumaro ku Ubwisubire ku Ryari: Ibijyana ni OYA Bihari"
+
+#: params.def:196
+#, fuzzy
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr "ITEGEKONGENGA IKURA ku in"
+
+#: params.def:200
+#, fuzzy
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr "Ihindurakerekezo IKURA NIBA i Ihindurakerekezo Imishobokere Bya ni Birutwa iyi in"
+
+#: params.def:205
+#, fuzzy
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr "Imbere IKURA NIBA i Imishobokere Bya ni Birutwa iyi in Ryari: Ibijyana ni Bihari"
+
+#: params.def:210
+#, fuzzy
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr "Imbere IKURA NIBA i Imishobokere Bya ni Birutwa iyi in Ryari: Ibijyana ni OYA Bihari"
+
+#: params.def:217
+#, fuzzy
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr "Kinini Umubare Bya Kuri kugirango"
+
+#: params.def:230
+#, fuzzy
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr "Kuri Imbarutso Nka a Ijanisha Bya i Igiteranyo Ingano Bya i"
+
+#: params.def:236
+#, fuzzy
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr "Ingano Mbere Twebwe Gutangira in"
+
+#: config/darwin-c.c:75
+#, fuzzy
+msgid "too many #pragma options align=reset"
+msgstr "Amahitamo Gutondeka Kugarura"
+
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:107
+#, fuzzy
+msgid "junk at end of '#pragma options'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/darwin-c.c:117
+#, fuzzy
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr "Amahitamo Gutondeka UMWIKUBE Kugarura"
+
+#: config/darwin-c.c:130
+#, fuzzy
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "Ibuze Nyuma"
+
+#: config/darwin-c.c:148
+#, fuzzy
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "Ibuze Nyuma"
+
+#: config/darwin-c.c:151
+#, fuzzy
+msgid "junk at end of '#pragma unused'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+#, fuzzy
+msgid "-msystem-v and -p are incompatible"
+msgstr "-v Na P"
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+#, fuzzy
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr "-v Na"
+
+#: config/alpha/alpha.c:342
+#, fuzzy, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-F kugirango OYA"
+
+#: config/alpha/alpha.c:366
+#, fuzzy
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-OYA ku"
+
+#: config/alpha/alpha.c:377
+#, fuzzy
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr "-Na: OYA ku"
+
+#: config/alpha/alpha.c:394
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtrap-precision switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/alpha/alpha.c:408
+#, fuzzy, c-format
+msgid "bad value `%s' for -mfp-rounding-mode switch"
+msgstr "Agaciro kugirango Ubwoko Hindura"
+
+#: config/alpha/alpha.c:423
+#, fuzzy, c-format
+msgid "bad value `%s' for -mfp-trap-mode switch"
+msgstr "Agaciro kugirango Ubwoko Hindura"
+
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "Agaciro kugirango Ingano Hindura"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
+#, fuzzy, c-format
+msgid "bad value `%s' for -mcpu switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/alpha/alpha.c:473
+#, fuzzy
+msgid "trap mode not supported on Unicos/Mk"
+msgstr "Ubwoko OYA ku"
+
+#: config/alpha/alpha.c:480
+#, fuzzy
+msgid "fp software completion requires -mtrap-precision=i"
+msgstr "i"
+
+#: config/alpha/alpha.c:496
+#, fuzzy
+msgid "rounding mode not supported for VAX floats"
+msgstr "Ubwoko OYA kugirango"
+
+#: config/alpha/alpha.c:501
+#, fuzzy
+msgid "trap mode not supported for VAX floats"
+msgstr "Ubwoko OYA kugirango"
+
+#: config/alpha/alpha.c:530
+#, fuzzy, c-format
+msgid "L%d cache latency unknown for %s"
+msgstr "Ubwihisho Kitazwi kugirango"
+
+#: config/alpha/alpha.c:545
+#, fuzzy, c-format
+msgid "bad value `%s' for -mmemory-latency"
+msgstr "Agaciro kugirango"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, fuzzy, c-format
+msgid "invalid %%H value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5625
+#, fuzzy, c-format
+msgid "invalid %%J value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
+#, fuzzy, c-format
+msgid "invalid %%r value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
+#, fuzzy, c-format
+msgid "invalid %%R value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, fuzzy, c-format
+msgid "invalid %%N value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, fuzzy, c-format
+msgid "invalid %%P value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
+#, fuzzy, c-format
+msgid "invalid %%h value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, fuzzy, c-format
+msgid "invalid %%L value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, fuzzy, c-format
+msgid "invalid %%m value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, fuzzy, c-format
+msgid "invalid %%M value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5772
+#, fuzzy, c-format
+msgid "invalid %%U value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
+#, fuzzy, c-format
+msgid "invalid %%s value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, fuzzy, c-format
+msgid "invalid %%C value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
+#, fuzzy, c-format
+msgid "invalid %%E value"
+msgstr "Agaciro siko"
+
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+#, fuzzy
+msgid "unknown relocation unspec"
+msgstr "Kitazwi"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
+#, fuzzy, c-format
+msgid "invalid %%xn code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
+msgid "Use hardware fp"
+msgstr ""
+
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
+#, fuzzy
+msgid "Do not use hardware fp"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:281
+msgid "Use fp registers"
+msgstr ""
+
+#: config/alpha/alpha.h:283
+#, fuzzy
+msgid "Do not use fp registers"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:284
+#, fuzzy
+msgid "Do not assume GAS"
+msgstr "OYA"
+
+#: config/alpha/alpha.h:285
+msgid "Assume GAS"
+msgstr ""
+
+#: config/alpha/alpha.h:287
+#, fuzzy
+msgid "Request IEEE-conformant math library routines (OSF/1)"
+msgstr "Imibare Isomero 1."
+
+#: config/alpha/alpha.h:289
+#, fuzzy
+msgid "Emit IEEE-conformant code, without inexact exceptions"
+msgstr "ITEGEKONGENGA Amarengayobora"
+
+#: config/alpha/alpha.h:291
+#, fuzzy
+msgid "Emit IEEE-conformant code, with inexact exceptions"
+msgstr "ITEGEKONGENGA Na: Amarengayobora"
+
+#: config/alpha/alpha.h:293
+#, fuzzy
+msgid "Do not emit complex integer constants to read-only memory"
+msgstr "OYA ITSINDA RY'IMIBARE C Umubare wuzuye Kuri Gusoma Ububiko"
+
+#: config/alpha/alpha.h:294
+msgid "Use VAX fp"
+msgstr ""
+
+#: config/alpha/alpha.h:295
+#, fuzzy
+msgid "Do not use VAX fp"
+msgstr "OYA Gukoresha"
+
+#: config/alpha/alpha.h:296
+#, fuzzy
+msgid "Emit code for the byte/word ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Bayite ijambo Umugereka"
+
+#: config/alpha/alpha.h:299
+#, fuzzy
+msgid "Emit code for the motion video ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Videwo... Umugereka"
+
+#: config/alpha/alpha.h:302
+#, fuzzy
+msgid "Emit code for the fp move and sqrt ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Kwimura Na SQRT Umugereka"
+
+#: config/alpha/alpha.h:304
+#, fuzzy
+msgid "Emit code for the counting ISA extension"
+msgstr "ITEGEKONGENGA kugirango i Kubara Umugereka"
+
+#: config/alpha/alpha.h:307
+#, fuzzy
+msgid "Emit code using explicit relocation directives"
+msgstr "ITEGEKONGENGA ikoresha"
+
+#: config/alpha/alpha.h:310
+#, fuzzy
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr "Kuri i Gitoya Ibyatanzwe Ubuso"
+
+#: config/alpha/alpha.h:312
+#, fuzzy
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr "Kuri i Gitoya Ibyatanzwe Ubuso"
+
+#: config/alpha/alpha.h:314
+#, fuzzy
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "Bya kugirango Urudodo Mweretsi"
+
+#. For -mcpu=
+#. For -mtune=
+#. For -mfp-rounding-mode=[n|m|c|d]
+#. For -mfp-trap-mode=[n|u|su|sui]
+#. For -mtrap-precision=[p|f|i]
+#. For -mmemory-latency=
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
+#, fuzzy
+msgid "Use features of and schedule given CPU"
+msgstr "Ibiranga Bya Na Igenabihe"
+
+#: config/alpha/alpha.h:345
+msgid "Schedule given CPU"
+msgstr ""
+
+#: config/alpha/alpha.h:347
+#, fuzzy
+msgid "Control the generated fp rounding mode"
+msgstr "i Ubwoko"
+
+#: config/alpha/alpha.h:349
+#, fuzzy
+msgid "Control the IEEE trap mode"
+msgstr "i Ubwoko"
+
+#: config/alpha/alpha.h:351
+#, fuzzy
+msgid "Control the precision given to fp exceptions"
+msgstr "i Kuri Amarengayobora"
+
+#: config/alpha/alpha.h:353
+#, fuzzy
+msgid "Tune expected memory latency"
+msgstr "Ikitezwe: Ububiko"
+
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+#, fuzzy
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Ingano Bya"
+
+#: config/arc/arc.c:135
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcpu switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/arc/arc.c:362
+#, fuzzy, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr "Bya Ikiranga ni OYA a Ikurikiranyanyuguti"
+
+#: config/arc/arc.c:369
+#, fuzzy, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr "Bya Ikiranga ni OYA Cyangwa"
+
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#. Unknown flag.
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
+#, fuzzy
+msgid "invalid operand output code"
+msgstr "Sibyo Ibisohoka ITEGEKONGENGA"
+
+#: config/arm/arm.c:458
+#, fuzzy, c-format
+msgid "switch -mcpu=%s conflicts with -march= switch"
+msgstr "Hindura Na: Werurwe Hindura"
+
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
+#, fuzzy, c-format
+msgid "bad value (%s) for %s switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/arm/arm.c:604
+#, fuzzy
+msgid "target CPU does not support APCS-32"
+msgstr "Intego OYA Gushigikira"
+
+#: config/arm/arm.c:609
+#, fuzzy
+msgid "target CPU does not support APCS-26"
+msgstr "Intego OYA Gushigikira"
+
+#: config/arm/arm.c:615
+#, fuzzy
+msgid "target CPU does not support interworking"
+msgstr "Intego OYA Gushigikira"
+
+#: config/arm/arm.c:621
+#, fuzzy
+msgid "target CPU does not support THUMB instructions"
+msgstr "Intego OYA Gushigikira Amabwiriza"
+
+#: config/arm/arm.c:635
+#, fuzzy
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:638
+#, fuzzy
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:641
+#, fuzzy
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+msgstr "Gushigikira ni Ryari: kugirango i"
+
+#: config/arm/arm.c:647
+#, fuzzy
+msgid "interworking forces APCS-32 to be used"
+msgstr "Kuri"
+
+#: config/arm/arm.c:653
+#, fuzzy
+msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+msgstr "-Kugenzura... Na: Ikadiri"
+
+#: config/arm/arm.c:661
+#, fuzzy
+msgid "-fpic and -mapcs-reent are incompatible"
+msgstr "-Na"
+
+#: config/arm/arm.c:664
+#, fuzzy
+msgid "APCS reentrant code not supported. Ignored"
+msgstr "ITEGEKONGENGA OYA"
+
+#: config/arm/arm.c:672
+#, fuzzy
+msgid "-g with -mno-apcs-frame may not give sensible debugging"
+msgstr "-g Na: Ikadiri Gicurasi OYA"
+
+#: config/arm/arm.c:680
+#, fuzzy
+msgid "passing floating point arguments in fp regs not yet supported"
+msgstr "Bihindagurika Akadomo ingingo in OYA"
+
+#: config/arm/arm.c:709
+#, fuzzy, c-format
+msgid "invalid floating point emulation option: -mfpe-%s"
+msgstr "Sibyo Bihindagurika Akadomo Ihitamo"
+
+#: config/arm/arm.c:733
+#, fuzzy
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr "Imiterere Ingano Gushyiraho Kuri 8 Cyangwa"
+
+#: config/arm/arm.c:741
+#, fuzzy
+msgid "-mpic-register= is useless without -fpic"
+msgstr "-Kwiyandikisha ni"
+
+#: config/arm/arm.c:748
+#, fuzzy, c-format
+msgid "unable to use '%s' for PIC register"
+msgstr "Kuri Gukoresha kugirango Kwiyandikisha"
+
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr "`%s'Ikiranga Kuri Imimaro"
+
+#: config/arm/arm.c:9459
+#, fuzzy
+msgid "unable to compute real location of stacked parameter"
+msgstr "Kuri Ahantu Bya Birunze"
+
+#: config/arm/arm.c:10138
+#, fuzzy
+msgid "no low registers available for popping high registers"
+msgstr "Oya Byo hasi Bihari kugirango kirekire"
+
+#: config/arm/arm.c:10389
+#, fuzzy
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
+msgstr "Hagarikira aho in Ubwoko"
+
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, fuzzy, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr "IMPINDURAGACIRO ni cy/ byagarajwe"
+
+#: config/arm/pe.c:177
+#, fuzzy, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr "IMPINDURAGACIRO ni cy/ byagarajwe"
+
+#: config/arm/arm.h:416
+#, fuzzy
+msgid "Generate APCS conformant stack frames"
+msgstr "Amakadiri"
+
+#: config/arm/arm.h:419
+#, fuzzy
+msgid "Store function names in object code"
+msgstr "Umumaro Amazina in Igikoresho ITEGEKONGENGA"
+
+#: config/arm/arm.h:423
+#, fuzzy
+msgid "Use the 32-bit version of the APCS"
+msgstr "i Verisiyo Bya i"
+
+#: config/arm/arm.h:425
+#, fuzzy
+msgid "Use the 26-bit version of the APCS"
+msgstr "i Verisiyo Bya i"
+
+#: config/arm/arm.h:429
+#, fuzzy
+msgid "Pass FP arguments in FP registers"
+msgstr "ingingo in"
+
+#: config/arm/arm.h:432
+#, fuzzy
+msgid "Generate re-entrant, PIC code"
+msgstr "ITEGEKONGENGA"
+
+#: config/arm/arm.h:435
+#, fuzzy
+msgid "The MMU will trap on unaligned accesses"
+msgstr "ku"
+
+#: config/arm/arm.h:442
+#, fuzzy
+msgid "Use library calls to perform FP operations"
+msgstr "Isomero Amahamagara: Kuri Ibikorwa:"
+
+#: config/arm/arm.h:444 config/i960/i960.h:281
+#, fuzzy
+msgid "Use hardware floating point instructions"
+msgstr "Bihindagurika Akadomo Amabwiriza"
+
+#: config/arm/arm.h:446
+#, fuzzy
+msgid "Assume target CPU is configured as big endian"
+msgstr "Intego ni Nka"
+
+#: config/arm/arm.h:448
+#, fuzzy
+msgid "Assume target CPU is configured as little endian"
+msgstr "Intego ni Nka"
+
+#: config/arm/arm.h:450
+#, fuzzy
+msgid "Assume big endian bytes, little endian words"
+msgstr "Bayite Amagambo"
+
+#: config/arm/arm.h:452
+#, fuzzy
+msgid "Support calls between Thumb and ARM instruction sets"
+msgstr "Amahamagara: hagati Na"
+
+#: config/arm/arm.h:455
+#, fuzzy
+msgid "Generate a call to abort if a noreturn function returns"
+msgstr "a Kuri Kureka NIBA a Umumaro"
+
+#: config/arm/arm.h:458
+#, fuzzy
+msgid "Do not move instructions into a function's prologue"
+msgstr "OYA Kwimura Amabwiriza a"
+
+#: config/arm/arm.h:461
+#, fuzzy
+msgid "Do not load the PIC register in function prologues"
+msgstr "OYA Ibirimo i Kwiyandikisha in Umumaro"
+
+#: config/arm/arm.h:464
+#, fuzzy
+msgid "Generate call insns as indirect calls, if necessary"
+msgstr "Nka BUZIGUYE Amahamagara: NIBA"
+
+#: config/arm/arm.h:467
+#, fuzzy
+msgid "Compile for the Thumb not the ARM"
+msgstr "kugirango i OYA i"
+
+#: config/arm/arm.h:471
+#, fuzzy
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+msgstr "Amakadiri ATARIIGIHARWE NIBA OYA"
+
+#: config/arm/arm.h:474
+#, fuzzy
+msgid "Thumb: Generate (leaf) stack frames even if not needed"
+msgstr "Amakadiri ATARIIGIHARWE NIBA OYA"
+
+#: config/arm/arm.h:477
+#, fuzzy
+msgid "Thumb: Assume non-static functions may be called from ARM code"
+msgstr "Imimaro Gicurasi Bivuye ITEGEKONGENGA"
+
+#: config/arm/arm.h:481
+#, fuzzy
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+msgstr "Umumaro Gicurasi Gyayo Kuri ITEGEKONGENGA"
+
+#: config/arm/arm.h:491
+#, fuzzy
+msgid "Specify the name of the target CPU"
+msgstr "i Izina: Bya i Intego"
+
+#: config/arm/arm.h:493
+#, fuzzy
+msgid "Specify the name of the target architecture"
+msgstr "i Izina: Bya i Intego"
+
+#: config/arm/arm.h:497
+#, fuzzy
+msgid "Specify the version of the floating point emulator"
+msgstr "i Verisiyo Bya i Bihindagurika Akadomo"
+
+#: config/arm/arm.h:499
+#, fuzzy
+msgid "Specify the minimum bit alignment of structures"
+msgstr "i Gito Itunganya Bya"
+
+#: config/arm/arm.h:501
+#, fuzzy
+msgid "Specify the register to be used for PIC addressing"
+msgstr "i Kwiyandikisha Kuri kugirango Kwohereza"
+
+#: config/arm/pe.h:65
+#, fuzzy
+msgid "Ignore dllimport attribute for functions"
+msgstr "Ikiranga kugirango Imimaro"
+
+#: config/avr/avr.c:528
+#, fuzzy, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
+msgstr "Binini Ikadiri Mweretsi Guhindura>> Na:"
+
+#: config/avr/avr.c:1135
+#, fuzzy
+msgid "bad address, not (reg+disp):"
+msgstr "Aderesi OYA"
+
+#: config/avr/avr.c:1143
+#, fuzzy
+msgid "internal compiler error. Bad address:"
+msgstr "By'imbere Ikosa Aderesi"
+
+#: config/avr/avr.c:1156
+#, fuzzy
+msgid "internal compiler error. Unknown mode:"
+msgstr "By'imbere Ikosa Ubwoko"
+
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+#, fuzzy
+msgid "invalid insn:"
+msgstr "Sibyo"
+
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
+msgstr ""
+
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+#, fuzzy
+msgid "unknown move insn:"
+msgstr "Kitazwi Kwimura"
+
+#: config/avr/avr.c:3003
+#, fuzzy
+msgid "bad shift insn:"
+msgstr "Gusunika"
+
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+#, fuzzy
+msgid "internal compiler error. Incorrect shift:"
+msgstr "By'imbere Ikosa Gusunika"
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+#, fuzzy
+msgid "only initialized variables can be placed into program memory area"
+msgstr "Ibihinduka Porogaramu Ububiko Ubuso"
+
+#: config/avr/avr.c:4866
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Itatangijwe Ibihinduka in i Icyiciro"
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "kugirango"
+
+#: config/avr/avr.h:78
+#, fuzzy
+msgid "Assume int to be 8 bit integer"
+msgstr "INT Kuri 8 Umubare wuzuye"
+
+#: config/avr/avr.h:80
+#, fuzzy
+msgid "Change the stack pointer without disabling interrupts"
+msgstr "i Mweretsi"
+
+#: config/avr/avr.h:82
+#, fuzzy
+msgid "Use subroutines for function prologue/epilogue"
+msgstr "kugirango Umumaro"
+
+#: config/avr/avr.h:84
+#, fuzzy
+msgid "Change only the low 8 bits of the stack pointer"
+msgstr "i Byo hasi 8 Bya i Mweretsi"
+
+#: config/avr/avr.h:86
+#, fuzzy
+msgid "Do not generate tablejump insns"
+msgstr "OYA"
+
+#: config/avr/avr.h:88
+#, fuzzy
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr "Urutonde ku"
+
+#: config/avr/avr.h:91
+#, fuzzy
+msgid "Output instruction sizes to the asm file"
+msgstr "Kuri i IDOSIYE"
+
+#: config/avr/avr.h:108
+#, fuzzy
+msgid "Specify the initial stack address"
+msgstr "i Aderesi"
+
+#: config/avr/avr.h:109
+#, fuzzy
+msgid "Specify the MCU name"
+msgstr "i Izina:"
+
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+#, fuzzy
+msgid "trampolines not supported"
+msgstr "OYA"
+
+#: config/c4x/c4x-c.c:69
+#, fuzzy, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "Ibuze Nyuma"
+
+#: config/c4x/c4x-c.c:72
+#, fuzzy, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr "Ibuze Umumaro Izina: in"
+
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:79
+#, fuzzy, c-format
+msgid "missing section name in '#pragma %s' - ignored"
+msgstr "Ibuze Icyiciro Izina: in"
+
+#: config/c4x/c4x-c.c:84
+#, fuzzy, c-format
+msgid "missing ')' for '#pragma %s' - ignored"
+msgstr "Ibuze kugirango"
+
+#: config/c4x/c4x-c.c:87
+#, fuzzy, c-format
+msgid "junk at end of '#pragma %s'"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/c4x/c4x.c:280
+#, fuzzy, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr "Kitazwi Verisiyo ikoresha"
+
+#: config/c4x/c4x.c:853
+#, fuzzy, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr "Amagambo Bya KININI ni"
+
+#: config/c4x/c4x.c:1602
+#, fuzzy
+msgid "using CONST_DOUBLE for address"
+msgstr "ikoresha kugirango Aderesi"
+
+#: config/c4x/c4x.c:1742
+#, fuzzy
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr "Kwohereza Ubwoko"
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2422
+#, fuzzy
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr "Gushaka Gutangira Akarango"
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+#, fuzzy
+msgid "mode not QImode"
+msgstr "Ubwoko OYA"
+
+#: config/c4x/c4x.c:3514
+#, fuzzy
+msgid "invalid indirect memory address"
+msgstr "Sibyo BUZIGUYE Ububiko Aderesi"
+
+#: config/c4x/c4x.c:3603
+#, fuzzy
+msgid "invalid indirect (S) memory address"
+msgstr "Sibyo BUZIGUYE Ububiko Aderesi"
+
+#: config/c4x/c4x.c:3944
+#, fuzzy
+msgid "c4x_valid_operands: Internal error"
+msgstr "Ikosa"
+
+#: config/c4x/c4x.c:4424
+#, fuzzy
+msgid "c4x_operand_subword: invalid mode"
+msgstr "Sibyo Ubwoko"
+
+#: config/c4x/c4x.c:4427
+#, fuzzy
+msgid "c4x_operand_subword: invalid operand"
+msgstr "Sibyo"
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+#, fuzzy
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr "Sibyo nyamwiyongera"
+
+#: config/c4x/c4x.c:4459
+#, fuzzy
+msgid "c4x_operand_subword: invalid address"
+msgstr "Sibyo Aderesi"
+
+#: config/c4x/c4x.c:4470
+#, fuzzy
+msgid "c4x_operand_subword: address not offsettable"
+msgstr "Aderesi OYA"
+
+#: config/c4x/c4x.c:4670
+#, fuzzy
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr "Funga Hejuru: Akarango"
+
+#. Name of the c4x assembler.
+#. Name of the c4x linker.
+#. Define assembler options.
+#. Define linker options.
+#. Specify the end file to link with.
+#. Target compilation option flags.
+#. Small memory model.
+#. Use 24-bit MPYI for C3x.
+#. Fast fixing of floats.
+#. Allow use of RPTS.
+#. Emit C3x code.
+#. Be compatible with TI assembler.
+#. Be paranoid about DP reg. in ISRs.
+#. Pass arguments on stack.
+#. Enable features under development.
+#. Enable repeat block.
+#. Use BK as general register.
+#. Use decrement and branch for C3x.
+#. Enable debugging of GCC.
+#. Force constants into registers.
+#. Allow unsigned loop counters.
+#. Force op0 and op1 to be same.
+#. Save all 40 bits for floats.
+#. Allow parallel insns.
+#. Allow MPY||ADD, MPY||SUB insns.
+#. Assume mem refs possibly aliased.
+#. Emit C30 code.
+#. Emit C31 code.
+#. Emit C32 code.
+#. Emit C33 code.
+#. Emit C40 code.
+#. Emit C44 code.
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each pair being { "NAME", VALUE, "DESCRIPTION" }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/c4x/c4x.h:168
+#, fuzzy
+msgid "Small memory model"
+msgstr "Ububiko Urugero"
+
+#: config/c4x/c4x.h:170
+#, fuzzy
+msgid "Big memory model"
+msgstr "Ububiko Urugero"
+
+#: config/c4x/c4x.h:172
+#, fuzzy
+msgid "Use MPYI instruction for C3x"
+msgstr "kugirango"
+
+#: config/c4x/c4x.h:174
+#, fuzzy
+msgid "Do not use MPYI instruction for C3x"
+msgstr "OYA Gukoresha kugirango"
+
+#: config/c4x/c4x.h:176
+#, fuzzy
+msgid "Use fast but approximate float to integer conversion"
+msgstr "Byihuta Kureremba Kuri Umubare wuzuye Ihindurangero"
+
+#: config/c4x/c4x.h:178
+#, fuzzy
+msgid "Use slow but accurate float to integer conversion"
+msgstr "Buhoro Kureremba Kuri Umubare wuzuye Ihindurangero"
+
+#: config/c4x/c4x.h:180
+#, fuzzy
+msgid "Enable use of RTPS instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:182
+#, fuzzy
+msgid "Disable use of RTPS instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:184
+#, fuzzy
+msgid "Enable use of RTPB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:186
+#, fuzzy
+msgid "Disable use of RTPB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:188
+#, fuzzy
+msgid "Generate code for C30 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:190
+#, fuzzy
+msgid "Generate code for C31 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:192
+#, fuzzy
+msgid "Generate code for C32 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:194
+#, fuzzy
+msgid "Generate code for C33 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:196
+#, fuzzy
+msgid "Generate code for C40 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:198
+#, fuzzy
+msgid "Generate code for C44 CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/c4x/c4x.h:200
+#, fuzzy
+msgid "Emit code compatible with TI tools"
+msgstr "ITEGEKONGENGA Na: Ibikoresho"
+
+#: config/c4x/c4x.h:202
+#, fuzzy
+msgid "Emit code to use GAS extensions"
+msgstr "ITEGEKONGENGA Kuri Gukoresha Umigereka"
+
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
+#, fuzzy
+msgid "Save DP across ISR in small memory model"
+msgstr "Kubika Kwambukiranya in Gitoya Ububiko Urugero"
+
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
+#, fuzzy
+msgid "Don't save DP across ISR in small memory model"
+msgstr "Kubika Kwambukiranya in Gitoya Ububiko Urugero"
+
+#: config/c4x/c4x.h:212
+#, fuzzy
+msgid "Pass arguments on the stack"
+msgstr "ingingo ku i"
+
+#: config/c4x/c4x.h:214
+#, fuzzy
+msgid "Pass arguments in registers"
+msgstr "ingingo in"
+
+#: config/c4x/c4x.h:216
+#, fuzzy
+msgid "Enable new features under development"
+msgstr "Gishya Ibiranga"
+
+#: config/c4x/c4x.h:218
+#, fuzzy
+msgid "Disable new features under development"
+msgstr "Gishya Ibiranga"
+
+#: config/c4x/c4x.h:220
+#, fuzzy
+msgid "Use the BK register as a general purpose register"
+msgstr "i Kwiyandikisha Nka a Rusange Intego Kwiyandikisha"
+
+#: config/c4x/c4x.h:222
+#, fuzzy
+msgid "Do not allocate BK register"
+msgstr "OYA Kwiyandikisha"
+
+#: config/c4x/c4x.h:224
+#, fuzzy
+msgid "Enable use of DB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:226
+#, fuzzy
+msgid "Disable use of DB instruction"
+msgstr "Gukoresha Bya"
+
+#: config/c4x/c4x.h:228
+msgid "Enable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:230
+msgid "Disable debugging"
+msgstr ""
+
+#: config/c4x/c4x.h:232
+#, fuzzy
+msgid "Force constants into registers to improve hoisting"
+msgstr "Kuri"
+
+#: config/c4x/c4x.h:234
+msgid "Don't force constants into registers"
+msgstr ""
+
+#: config/c4x/c4x.h:236
+#, fuzzy
+msgid "Force RTL generation to emit valid 3 operand insns"
+msgstr "Kuri Byemewe 3."
+
+#: config/c4x/c4x.h:238
+#, fuzzy
+msgid "Allow RTL generation to emit invalid 3 operand insns"
+msgstr "Kuri Sibyo 3."
+
+#: config/c4x/c4x.h:240
+#, fuzzy
+msgid "Allow unsigned iteration counts for RPTB/DB"
+msgstr "Bitashizweho umukono kugirango"
+
+#: config/c4x/c4x.h:242
+#, fuzzy
+msgid "Disallow unsigned iteration counts for RPTB/DB"
+msgstr "Bitashizweho umukono kugirango"
+
+#: config/c4x/c4x.h:244
+#, fuzzy
+msgid "Preserve all 40 bits of FP reg across call"
+msgstr "Byose Bya Kwambukiranya"
+
+#: config/c4x/c4x.h:246
+#, fuzzy
+msgid "Only preserve 32 bits of FP reg across call"
+msgstr "Bya Kwambukiranya"
+
+#: config/c4x/c4x.h:248
+#, fuzzy
+msgid "Enable parallel instructions"
+msgstr "Biteganye Amabwiriza"
+
+#: config/c4x/c4x.h:250
+#, fuzzy
+msgid "Disable parallel instructions"
+msgstr "Biteganye Amabwiriza"
+
+#: config/c4x/c4x.h:252
+#, fuzzy
+msgid "Enable MPY||ADD and MPY||SUB instructions"
+msgstr "Na Amabwiriza"
+
+#: config/c4x/c4x.h:254
+#, fuzzy
+msgid "Disable MPY||ADD and MPY||SUB instructions"
+msgstr "Na Amabwiriza"
+
+#: config/c4x/c4x.h:256
+#, fuzzy
+msgid "Assume that pointers may be aliased"
+msgstr "Gicurasi"
+
+#: config/c4x/c4x.h:258
+#, fuzzy
+msgid "Assume that pointers not aliased"
+msgstr "OYA"
+
+#: config/c4x/c4x.h:331
+#, fuzzy
+msgid "Specify maximum number of iterations for RPTS"
+msgstr "Kinini Umubare Bya Amasubiramo kugirango"
+
+#: config/c4x/c4x.h:333
+#, fuzzy
+msgid "Select CPU to generate code for"
+msgstr "Kuri ITEGEKONGENGA kugirango"
+
+#: config/cris/cris.c:599
+#, fuzzy
+msgid "unexpected index-type in cris_print_index"
+msgstr "Umubarendanga Ubwoko in"
+
+#: config/cris/cris.c:615
+#, fuzzy
+msgid "unexpected base-type in cris_print_base"
+msgstr "SHINGIRO Ubwoko in"
+
+#: config/cris/cris.c:908
+#, fuzzy, c-format
+msgid "stackframe too big: %d bytes"
+msgstr "Bayite"
+
+#: config/cris/cris.c:1223
+#, fuzzy
+msgid "allocated but unused delay list in epilogue"
+msgstr "Kidakoreshwa Gutinda Urutonde in"
+
+#: config/cris/cris.c:1233
+#, fuzzy
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "Umumaro Ubwoko kugirango"
+
+#: config/cris/cris.c:1312
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1324
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1334
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1341
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1380
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1417
+#, fuzzy
+msgid "bad register"
+msgstr "Kwiyandikisha"
+
+#: config/cris/cris.c:1455
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1472
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1497
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1505
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1519
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "Sibyo kugirango"
+
+#: config/cris/cris.c:1528
+#, fuzzy
+msgid "invalid operand modifier letter"
+msgstr "Sibyo Ibaruwa..."
+
+#: config/cris/cris.c:1536
+#, fuzzy, c-format
+msgid "internal error: bad register: %d"
+msgstr "By'imbere Ikosa Kwiyandikisha"
+
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
+msgstr ""
+
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+#, fuzzy
+msgid "unrecognized address"
+msgstr "Aderesi"
+
+#: config/cris/cris.c:2005
+#, fuzzy
+msgid "internal error: sideeffect-insn affecting main effect"
+msgstr "By'imbere Ikosa INGARUKA"
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+#, fuzzy
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
+msgstr "By'imbere Ikosa Na:"
+
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+msgid "unrecognized supposed constant"
+msgstr ""
+
+#: config/cris/cris.c:2473
+#, fuzzy
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
+msgstr "in"
+
+#: config/cris/cris.c:2492
+#, fuzzy, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr "-KININI ni OYA OYA hagati 0 Na"
+
+#: config/cris/cris.c:2520
+#, fuzzy, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+msgstr "Kitazwi Verisiyo in Werurwe Cyangwa"
+
+#: config/cris/cris.c:2556
+#, fuzzy, c-format
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
+msgstr "Kitazwi CPU Verisiyo in"
+
+#: config/cris/cris.c:2574
+#, fuzzy
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr "-Na OYA in iyi Iboneza"
+
+#: config/cris/cris.c:2590
+#, fuzzy
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr "g Ihitamo ni Sibyo Na: Na"
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+#, fuzzy
+msgid "unexpected side-effects in address"
+msgstr "Ingaruka in Aderesi"
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+#, fuzzy
+msgid "unexpected PIC symbol"
+msgstr "IKIMENYETSO"
+
+#: config/cris/cris.c:2970
+#, fuzzy
+msgid "PIC register isn't set up"
+msgstr "Kwiyandikisha si Gushyiraho Hejuru"
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+#, fuzzy
+msgid "unexpected address expression"
+msgstr "Aderesi imvugo"
+
+#: config/cris/cris.c:3001
+#, fuzzy
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr "Kwiyandikisha si Gushyiraho Hejuru"
+
+#: config/cris/cris.c:3010
+#, fuzzy
+msgid "unexpected NOTE as addr_const:"
+msgstr "Nka"
+
+#: config/cris/aout.h:108
+#, fuzzy
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr "kugirango i Birutwa 100 Sisitemu"
+
+#: config/cris/aout.h:115
+#, fuzzy
+msgid "For elinux, request a specified stack-size for this program"
+msgstr "Kubaza... a Ingano kugirango iyi Porogaramu"
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+#, fuzzy
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr "kugirango 4."
+
+#: config/cris/cris.h:345
+#, fuzzy
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr "kugirango 100"
+
+#: config/cris/cris.h:349
+#, fuzzy
+msgid "Emit verbose debug information in assembly code"
+msgstr "Kosora amakosa Ibisobanuro in ITEGEKONGENGA"
+
+#: config/cris/cris.h:352
+#, fuzzy
+msgid "Do not use condition codes from normal instructions"
+msgstr "OYA Gukoresha Ibisabwa Bivuye Bisanzwe Amabwiriza"
+
+#: config/cris/cris.h:356
+#, fuzzy
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr "OYA Kwohereza Na: INGARUKA Igenera"
+
+#: config/cris/cris.h:359
+#, fuzzy
+msgid "Do not tune stack alignment"
+msgstr "OYA Itunganya"
+
+#: config/cris/cris.h:362
+#, fuzzy
+msgid "Do not tune writable data alignment"
+msgstr "OYA Ibyatanzwe Itunganya"
+
+#: config/cris/cris.h:365
+#, fuzzy
+msgid "Do not tune code and read-only data alignment"
+msgstr "OYA ITEGEKONGENGA Na Gusoma Ibyatanzwe Itunganya"
+
+#: config/cris/cris.h:374
+#, fuzzy
+msgid "Align code and data to 32 bits"
+msgstr "ITEGEKONGENGA Na Ibyatanzwe Kuri"
+
+#: config/cris/cris.h:387
+#, fuzzy
+msgid "Don't align items in code or data"
+msgstr "Gutondeka in ITEGEKONGENGA Cyangwa Ibyatanzwe"
+
+#: config/cris/cris.h:390
+#, fuzzy
+msgid "Do not emit function prologue or epilogue"
+msgstr "OYA Umumaro Cyangwa"
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+#, fuzzy
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr "i Amahitamo ku Ikindi Amahitamo"
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+#, fuzzy
+msgid "Override -mbest-lib-options"
+msgstr "Amahitamo"
+
+#: config/cris/cris.h:432
+#, fuzzy
+msgid "Generate code for the specified chip or CPU version"
+msgstr "ITEGEKONGENGA kugirango i Cyangwa Verisiyo"
+
+#: config/cris/cris.h:434
+#, fuzzy
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "Itunganya kugirango i Cyangwa Verisiyo"
+
+#: config/cris/cris.h:436
+#, fuzzy
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr "Ryari: a ni Kinini i Ingano"
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+#, fuzzy
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr "Oya kugirango"
+
+#: config/cris/linux.h:71
+#, fuzzy
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr "Na: Na OYA Gukoresha Indango"
+
+#: config/d30v/d30v.c:207
+#, fuzzy, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr "kugirango Kwiyandikisha"
+
+#: config/d30v/d30v.c:2666
+#, fuzzy
+msgid "bad insn to d30v_print_operand_address:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+#, fuzzy
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2851
+#, fuzzy
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2860
+#, fuzzy
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2867
+#, fuzzy
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2921
+#, fuzzy
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr "Kuri Cyangwa"
+
+#: config/d30v/d30v.c:2932
+#, fuzzy
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2939
+#, fuzzy
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2957
+#, fuzzy
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+#, fuzzy
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr "Kuri"
+
+#: config/d30v/d30v.c:3003
+#, fuzzy
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr "in 0"
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr ""
+
+#: config/d30v/d30v.c:3345
+#, fuzzy
+msgid "bad call to d30v_move_2words"
+msgstr "Kuri"
+
+#: config/d30v/d30v.h:114
+#, fuzzy
+msgid "Enable use of conditional move instructions"
+msgstr "Gukoresha Bya Kwimura Amabwiriza"
+
+#: config/d30v/d30v.h:117
+#, fuzzy
+msgid "Disable use of conditional move instructions"
+msgstr "Gukoresha Bya Kwimura Amabwiriza"
+
+#: config/d30v/d30v.h:120
+#, fuzzy
+msgid "Debug argument support in compiler"
+msgstr "Gushigikira in"
+
+#: config/d30v/d30v.h:123
+#, fuzzy
+msgid "Debug stack support in compiler"
+msgstr "Gushigikira in"
+
+#: config/d30v/d30v.h:126
+#, fuzzy
+msgid "Debug memory address support in compiler"
+msgstr "Ububiko Aderesi Gushigikira in"
+
+#: config/d30v/d30v.h:129
+#, fuzzy
+msgid "Make adjacent short instructions parallel if possible"
+msgstr "Amabwiriza Biteganye NIBA"
+
+#: config/d30v/d30v.h:132
+#, fuzzy
+msgid "Do not make adjacent short instructions parallel"
+msgstr "OYA Ubwoko Amabwiriza Biteganye"
+
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
+#, fuzzy
+msgid "Link programs/data to be in external memory by default"
+msgstr "Porogaramu Ibyatanzwe Kuri in external Ububiko ku Mburabuzi"
+
+#: config/d30v/d30v.h:141
+#, fuzzy
+msgid "Link programs/data to be in onchip memory by default"
+msgstr "Porogaramu Ibyatanzwe Kuri in Ububiko ku Mburabuzi"
+
+#: config/d30v/d30v.h:149
+#, fuzzy
+msgid "Change the branch costs within the compiler"
+msgstr "i muri i"
+
+#: config/d30v/d30v.h:152
+#, fuzzy
+msgid "Change the threshold for conversion to conditional execution"
+msgstr "i kugirango Ihindurangero Kuri"
+
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+#, fuzzy
+msgid "stack size > 32k"
+msgstr "Ingano"
+
+#: config/dsp16xx/dsp16xx.c:1678
+#, fuzzy
+msgid "invalid addressing mode"
+msgstr "Sibyo Kwohereza Ubwoko"
+
+#: config/dsp16xx/dsp16xx.c:1821
+#, fuzzy
+msgid "bad register extension code"
+msgstr "Kwiyandikisha Umugereka ITEGEKONGENGA"
+
+#: config/dsp16xx/dsp16xx.c:1921
+#, fuzzy
+msgid "invalid offset in ybase addressing"
+msgstr "Sibyo Nta- boneza in Kwohereza"
+
+#: config/dsp16xx/dsp16xx.c:1924
+#, fuzzy
+msgid "invalid register in ybase addressing"
+msgstr "Sibyo Kwiyandikisha in Kwohereza"
+
+#: config/dsp16xx/dsp16xx.c:2099
+#, fuzzy
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr "Sibyo Gusunika Mukoresha in"
+
+#: config/dsp16xx/dsp16xx.c:2428
+#, fuzzy
+msgid "invalid mode for gen_tst_reg"
+msgstr "Sibyo Ubwoko kugirango"
+
+#: config/dsp16xx/dsp16xx.c:2500
+#, fuzzy
+msgid "invalid mode for integer comparison in gen_compare_reg"
+msgstr "Sibyo Ubwoko kugirango Umubare wuzuye in"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/dsp16xx/dsp16xx.h:230
+#, fuzzy
+msgid "Pass parameters in registers (default)"
+msgstr "Ibigenga in Mburabuzi"
+
+#: config/dsp16xx/dsp16xx.h:232
+#, fuzzy
+msgid "Don't pass parameters in registers"
+msgstr "Ibigenga in"
+
+#: config/dsp16xx/dsp16xx.h:234
+#, fuzzy
+msgid "Generate code for near calls"
+msgstr "ITEGEKONGENGA kugirango Amahamagara:"
+
+#: config/dsp16xx/dsp16xx.h:236
+#, fuzzy
+msgid "Don't generate code for near calls"
+msgstr "ITEGEKONGENGA kugirango Amahamagara:"
+
+#: config/dsp16xx/dsp16xx.h:238
+#, fuzzy
+msgid "Generate code for near jumps"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/dsp16xx/dsp16xx.h:240
+#, fuzzy
+msgid "Don't generate code for near jumps"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/dsp16xx/dsp16xx.h:242
+#, fuzzy
+msgid "Generate code for a bit-manipulation unit"
+msgstr "ITEGEKONGENGA kugirango a Igice:"
+
+#: config/dsp16xx/dsp16xx.h:244
+#, fuzzy
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr "ITEGEKONGENGA kugirango a Igice:"
+
+#: config/dsp16xx/dsp16xx.h:246
+#, fuzzy
+msgid "Generate code for memory map1"
+msgstr "ITEGEKONGENGA kugirango Ububiko"
+
+#: config/dsp16xx/dsp16xx.h:248
+#, fuzzy
+msgid "Generate code for memory map2"
+msgstr "ITEGEKONGENGA kugirango Ububiko"
+
+#: config/dsp16xx/dsp16xx.h:250
+#, fuzzy
+msgid "Generate code for memory map3"
+msgstr "ITEGEKONGENGA kugirango Ububiko"
+
+#: config/dsp16xx/dsp16xx.h:252
+#, fuzzy
+msgid "Generate code for memory map4"
+msgstr "ITEGEKONGENGA kugirango Ububiko"
+
+#: config/dsp16xx/dsp16xx.h:254
+#, fuzzy
+msgid "Ouput extra code for initialized data"
+msgstr "Birenga ITEGEKONGENGA kugirango Ibyatanzwe"
+
+#: config/dsp16xx/dsp16xx.h:256
+#, fuzzy
+msgid "Don't let reg. allocator use ybase registers"
+msgstr "Gukoresha"
+
+#: config/dsp16xx/dsp16xx.h:258
+#, fuzzy
+msgid "Output extra debug info in Luxworks environment"
+msgstr "Birenga Kosora amakosa Ibisobanuro in"
+
+#: config/dsp16xx/dsp16xx.h:260
+#, fuzzy
+msgid "Save temp. files in Luxworks environment"
+msgstr "Kubika Idosiye in"
+
+#: config/dsp16xx/dsp16xx.h:272
+#, fuzzy
+msgid "Specify alternate name for text section"
+msgstr "Izina: kugirango Umwandiko Icyiciro"
+
+#: config/dsp16xx/dsp16xx.h:274
+#, fuzzy
+msgid "Specify alternate name for data section"
+msgstr "Izina: kugirango Ibyatanzwe Icyiciro"
+
+#: config/dsp16xx/dsp16xx.h:276
+#, fuzzy
+msgid "Specify alternate name for bss section"
+msgstr "Izina: kugirango Icyiciro"
+
+#: config/dsp16xx/dsp16xx.h:278
+#, fuzzy
+msgid "Specify alternate name for constant section"
+msgstr "Izina: kugirango Icyiciro"
+
+#: config/dsp16xx/dsp16xx.h:280
+#, fuzzy
+msgid "Specify alternate name for dsp16xx chip"
+msgstr "Izina: kugirango"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+#, fuzzy
+msgid "profiling not implemented yet"
+msgstr "OYA"
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+#, fuzzy
+msgid "trampolines not yet implemented"
+msgstr "OYA"
+
+#: config/fr30/fr30.c:453
+#, fuzzy
+msgid "fr30_print_operand_address: unhandled address"
+msgstr "Aderesi"
+
+#: config/fr30/fr30.c:480
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:500
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:521
+#, fuzzy, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr "ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:529
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:546
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:553
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:570
+#, fuzzy
+msgid "fr30_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/fr30/fr30.h:63
+#, fuzzy
+msgid "Assume small address space"
+msgstr "Gitoya Aderesi Umwanya"
+
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, fuzzy, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "CPU"
+
+#: config/frv/frv.c:451
+#, fuzzy
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr "-Na Na g 2."
+
+#: config/frv/frv.c:2520
+#, fuzzy
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2533
+#, fuzzy
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "Kwiyandikisha Kuri"
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+#, fuzzy
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2779
+#, fuzzy
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "in"
+
+#: config/frv/frv.c:2824
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2847
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2872
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2880
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2896
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2949
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2962
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:2983
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:3001
+#, fuzzy
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "Kuri"
+
+#: config/frv/frv.c:3021
+#, fuzzy
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "in Z"
+
+#: config/frv/frv.c:3049
+#, fuzzy
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "in 0"
+
+#: config/frv/frv.c:3054
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "ni OYA a Umubare wuzuye"
+
+#: config/frv/frv.c:9176
+#, fuzzy
+msgid "accumulator number is out of bounds"
+msgstr "Umubare ni Inyuma Bya"
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "kugirango"
+
+#: config/frv/frv.c:9253
+#, fuzzy, c-format
+msgid "`%s' expects a constant argument"
+msgstr "`%s'a"
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "Inyuma Bya Urutonde kugirango"
+
+#: config/frv/frv.c:9638
+#, fuzzy
+msgid "media functions are not available unless -mmedia is used"
+msgstr "Ibitangazamakuru Imimaro OYA Bihari ni"
+
+#: config/frv/frv.c:9650
+#, fuzzy
+msgid "this media function is only available on the fr500"
+msgstr "iyi Ibitangazamakuru Umumaro ni Bihari ku i"
+
+#: config/frv/frv.c:9678
+#, fuzzy
+msgid "this media function is only available on the fr400"
+msgstr "iyi Ibitangazamakuru Umumaro ni Bihari ku i"
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
+#, fuzzy
+msgid "-ms2600 is used without -ms"
+msgstr "-ni"
+
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "-ni Cyangwa"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/h8300/h8300.h:150
+#, fuzzy
+msgid "Generate H8S code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:151
+#, fuzzy
+msgid "Do not generate H8S code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:152
+#, fuzzy
+msgid "Generate H8S/2600 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:153
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:154
+msgid "Make integers 32 bits wide"
+msgstr ""
+
+#: config/h8300/h8300.h:157
+#, fuzzy
+msgid "Use registers for argument passing"
+msgstr "kugirango"
+
+#: config/h8300/h8300.h:159
+#, fuzzy
+msgid "Do not use registers for argument passing"
+msgstr "OYA Gukoresha kugirango"
+
+#: config/h8300/h8300.h:161
+#, fuzzy
+msgid "Consider access to byte sized memory slow"
+msgstr "Kuri Bayite Ububiko Buhoro"
+
+#: config/h8300/h8300.h:162
+msgid "Enable linker relaxing"
+msgstr ""
+
+#: config/h8300/h8300.h:164
+#, fuzzy
+msgid "Generate H8/300H code"
+msgstr "ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:165
+#, fuzzy
+msgid "Enable the normal mode"
+msgstr "i Bisanzwe Ubwoko"
+
+#: config/h8300/h8300.h:166
+#, fuzzy
+msgid "Do not generate H8/300H code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: config/h8300/h8300.h:167
+#, fuzzy
+msgid "Use H8/300 alignment rules"
+msgstr "300 Itunganya"
+
+#: config/i370/i370-c.c:53
+#, fuzzy
+msgid "junk at end of #pragma map"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
+msgstr ""
+
+#: config/i370/i370.c:915
+#, fuzzy
+msgid "real name is too long - alias ignored"
+msgstr "Izina: ni Irihimbano"
+
+#: config/i370/i370.c:920
+#, fuzzy
+msgid "alias name is too long - alias ignored"
+msgstr "Irihimbano Izina: ni Irihimbano"
+
+#: config/i370/i370.c:1191
+#, fuzzy
+msgid "internal error--no jump follows compare:"
+msgstr "By'imbere Ikosa Oya Simbuka Kugereranya#"
+
+#. Macro to define tables used to set the flags. This is a list in braces
+#. of pairs in braces, each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/i370/i370.h:75
+#, fuzzy
+msgid "Generate char instructions"
+msgstr "INYUGUTI Amabwiriza"
+
+#: config/i370/i370.h:76
+#, fuzzy
+msgid "Do not generate char instructions"
+msgstr "OYA INYUGUTI Amabwiriza"
+
+#: config/i386/i386.c:1050
+#, fuzzy, c-format
+msgid "code model %s not supported in PIC mode"
+msgstr "ITEGEKONGENGA Urugero OYA in Ubwoko"
+
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcmodel= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1075
+#, fuzzy, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1078
+#, fuzzy, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr "ITEGEKONGENGA Urugero OYA in i Ubwoko"
+
+#: config/i386/i386.c:1081
+#, fuzzy
+msgid "code model `large' not supported yet"
+msgstr "ITEGEKONGENGA Urugero OYA"
+
+#: config/i386/i386.c:1083
+#, fuzzy, c-format
+msgid "%i-bit mode not compiled in"
+msgstr "%i-bitUbwoko OYA in"
+
+#: config/i386/i386.c:1113
+#, fuzzy, c-format
+msgid "bad value (%s) for -march= switch"
+msgstr "Agaciro kugirango Werurwe Hindura"
+
+#: config/i386/i386.c:1124
+#, fuzzy, c-format
+msgid "bad value (%s) for -mcpu= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1141
+#, fuzzy, c-format
+msgid "-mregparm=%d is not between 0 and %d"
+msgstr "-ni OYA hagati 0 Na"
+
+#: config/i386/i386.c:1154
+#, fuzzy
+msgid "-malign-loops is obsolete, use -falign-loops"
+msgstr "-ni Gukoresha"
+
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
+#, fuzzy, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
+msgstr "-ni OYA hagati 0 Na"
+
+#: config/i386/i386.c:1167
+#, fuzzy
+msgid "-malign-jumps is obsolete, use -falign-jumps"
+msgstr "-ni Gukoresha"
+
+#: config/i386/i386.c:1180
+#, fuzzy
+msgid "-malign-functions is obsolete, use -falign-functions"
+msgstr "-Imimaro ni Gukoresha Imimaro"
+
+#: config/i386/i386.c:1218
+#, fuzzy, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+msgstr "-ni OYA hagati Na 12"
+
+#: config/i386/i386.c:1230
+#, fuzzy, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr "-Ikiguzi ni OYA hagati 0 Na 5"
+
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1263
+#, fuzzy
+msgid "-malign-double makes no sense in the 64bit mode"
+msgstr "-MAHARAKUBIRI Oya in i Ubwoko"
+
+#: config/i386/i386.c:1265
+#, fuzzy
+msgid "-mrtd calling convention not supported in the 64bit mode"
+msgstr "-OYA in i Ubwoko"
+
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+#, fuzzy
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "Gushyiraho Yahagaritswe ikoresha"
+
+#: config/i386/i386.c:1297
+#, fuzzy
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "Gushyiraho Yahagaritswe ikoresha"
+
+#: config/i386/i386.c:1304
+#, fuzzy, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/i386/i386.c:1436
+#, fuzzy, c-format
+msgid "`%s' attribute requires an integer constant argument"
+msgstr "`%s'Ikiranga Umubare wuzuye"
+
+#: config/i386/i386.c:1442
+#, fuzzy, c-format
+msgid "argument to `%s' attribute larger than %d"
+msgstr "Kuri Ikiranga Kinini"
+
+#: config/i386/i386.c:2504
+#, fuzzy
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr "Garuka Bikora Amahinduka i"
+
+#: config/i386/i386.c:6386
+#, fuzzy
+msgid "invalid UNSPEC as operand"
+msgstr "Sibyo Nka"
+
+#: config/i386/i386.c:6648
+#, fuzzy
+msgid "extended registers have no high halves"
+msgstr "Byongerewe... Oya kirekire"
+
+#: config/i386/i386.c:6663
+#, fuzzy
+msgid "unsupported operand size for extended register"
+msgstr "Ingano kugirango Byongerewe... Kwiyandikisha"
+
+#: config/i386/i386.c:6978
+#, fuzzy
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+msgstr "ni a a Ibisabwa ITEGEKONGENGA Sibyo ITEGEKONGENGA"
+
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "Sibyo kugirango"
+
+#: config/i386/i386.c:11271
+#, fuzzy
+msgid "unknown insn mode"
+msgstr "Kitazwi Ubwoko"
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
+msgstr ""
+
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
+msgstr ""
+
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "Gusunika"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "Umumaro Insobanuro ni cy/ byagarajwe"
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "IMPINDURAGACIRO Insobanuro ni cy/ byagarajwe"
+
+#: config/i386/winnt.c:123
+#, fuzzy, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr "external Bya ngombwa kugirango IKIMENYETSO Bya Ikiranga"
+
+#: config/i386/winnt.c:143
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr "`%s'Ikiranga Kuri Ibihinduka"
+
+#: config/i386/winnt.c:242
+#, fuzzy, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr "Umumaro ni Nyuma Nka Ikiranga"
+
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "Mumurongo Umumaro ni Nka Ikiranga"
+
+#: config/i386/winnt.c:263
+#, fuzzy, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr "Insobanuro Bya Ibyatanzwe Bya ishuri"
+
+#: config/i386/winnt.c:322
+#, fuzzy, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr "kugirango"
+
+#: config/i386/winnt.c:364
+#, fuzzy, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr "`%s'Nka Byombi Kuri Na cyavuye ahandi/ cyatumijwe Bivuye a"
+
+#: config/i386/winnt.c:373
+#, fuzzy, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr "in Bya IKIMENYETSO external"
+
+#: config/i386/winnt.c:479
+#, fuzzy, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr "'%s'%sNyuma Na:"
+
+#: config/i386/cygwin.h:45
+#, fuzzy
+msgid "Use the Cygwin interface"
+msgstr "i"
+
+#: config/i386/cygwin.h:46
+#, fuzzy
+msgid "Use the Mingw32 interface"
+msgstr "i"
+
+#: config/i386/cygwin.h:47
+#, fuzzy
+msgid "Create GUI application"
+msgstr "Porogaramu"
+
+#: config/i386/cygwin.h:48
+#, fuzzy
+msgid "Don't set Windows defines"
+msgstr "Gushyiraho"
+
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
+msgstr ""
+
+#: config/i386/cygwin.h:50
+#, fuzzy
+msgid "Create console application"
+msgstr "Porogaramu"
+
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+#, fuzzy
+msgid "Generate code for a DLL"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+#, fuzzy
+msgid "Ignore dllimport for functions"
+msgstr "kugirango Imimaro"
+
+#: config/i386/cygwin.h:55
+#, fuzzy
+msgid "Use Mingw-specific thread support"
+msgstr "Urudodo Gushigikira"
+
+#: config/i386/cygwin.h:245
+#, fuzzy, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr "-F kugirango Intego Byose ITEGEKONGENGA ni Ibirindiro"
+
+#: config/i386/djgpp.h:206
+#, fuzzy
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr "-ni Ihitamo ni"
+
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
+msgid "Alternate calling convention"
+msgstr ""
+
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
+#, fuzzy
+msgid "Use normal calling convention"
+msgstr "Bisanzwe"
+
+#: config/i386/i386.h:310
+#, fuzzy
+msgid "Align some doubles on dword boundary"
+msgstr "ku"
+
+#: config/i386/i386.h:312
+#, fuzzy
+msgid "Align doubles on word boundary"
+msgstr "ku ijambo"
+
+#: config/i386/i386.h:314
+#, fuzzy
+msgid "Uninitialized locals in .bss"
+msgstr "in"
+
+#: config/i386/i386.h:316
+#, fuzzy
+msgid "Uninitialized locals in .data"
+msgstr "in Ibyatanzwe"
+
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
+#, fuzzy
+msgid "Use IEEE math for fp comparisons"
+msgstr "Imibare kugirango"
+
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
+#, fuzzy
+msgid "Do not use IEEE math for fp comparisons"
+msgstr "OYA Gukoresha Imibare kugirango"
+
+#: config/i386/i386.h:322
+#, fuzzy
+msgid "Return values of functions in FPU registers"
+msgstr "Uduciro Bya Imimaro in"
+
+#: config/i386/i386.h:324
+#, fuzzy
+msgid "Do not return values of functions in FPU registers"
+msgstr "OYA Garuka Uduciro Bya Imimaro in"
+
+#: config/i386/i386.h:326
+#, fuzzy
+msgid "Do not generate sin, cos, sqrt for FPU"
+msgstr "OYA SIN COS SQRT kugirango"
+
+#: config/i386/i386.h:328
+#, fuzzy
+msgid "Generate sin, cos, sqrt for FPU"
+msgstr "SIN COS SQRT kugirango"
+
+#: config/i386/i386.h:330
+#, fuzzy
+msgid "Omit the frame pointer in leaf functions"
+msgstr "i Ikadiri Mweretsi in Imimaro"
+
+#: config/i386/i386.h:333
+msgid "Enable stack probing"
+msgstr ""
+
+#. undocumented
+#. undocumented
+#: config/i386/i386.h:338
+#, fuzzy
+msgid "Align destination of the string operations"
+msgstr "Ishyika Bya i Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:340
+#, fuzzy
+msgid "Do not align destination of the string operations"
+msgstr "OYA Gutondeka Ishyika Bya i Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:342
+#, fuzzy
+msgid "Inline all known string operations"
+msgstr "Byose Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:344
+#, fuzzy
+msgid "Do not inline all known string operations"
+msgstr "OYA Mumurongo Byose Ikurikiranyanyuguti Ibikorwa:"
+
+#: config/i386/i386.h:346 config/i386/i386.h:350
+#, fuzzy
+msgid "Use push instructions to save outgoing arguments"
+msgstr "Amabwiriza Kuri Kubika ingingo"
+
+#: config/i386/i386.h:348 config/i386/i386.h:352
+#, fuzzy
+msgid "Do not use push instructions to save outgoing arguments"
+msgstr "OYA Gukoresha Amabwiriza Kuri Kubika ingingo"
+
+#: config/i386/i386.h:354
+#, fuzzy
+msgid "Support MMX built-in functions"
+msgstr "in Imimaro"
+
+#: config/i386/i386.h:356
+#, fuzzy
+msgid "Do not support MMX built-in functions"
+msgstr "OYA Gushigikira in Imimaro"
+
+#: config/i386/i386.h:358
+#, fuzzy
+msgid "Support 3DNow! built-in functions"
+msgstr "in Imimaro"
+
+#: config/i386/i386.h:360
+#, fuzzy
+msgid "Do not support 3DNow! built-in functions"
+msgstr "OYA Gushigikira in Imimaro"
+
+#: config/i386/i386.h:362
+#, fuzzy
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:364
+#, fuzzy
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr "OYA Gushigikira Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:366
+#, fuzzy
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:368
+#, fuzzy
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "OYA Gushigikira Na in Imimaro Na ITEGEKONGENGA"
+
+#: config/i386/i386.h:370
+#, fuzzy
+msgid "sizeof(long double) is 16"
+msgstr "MAHARAKUBIRI ni"
+
+#: config/i386/i386.h:372
+#, fuzzy
+msgid "sizeof(long double) is 12"
+msgstr "MAHARAKUBIRI ni 12"
+
+#: config/i386/i386.h:374
+#, fuzzy
+msgid "Generate 64bit x86-64 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i386/i386.h:376
+#, fuzzy
+msgid "Generate 32bit i386 code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i386/i386.h:378
+#, fuzzy
+msgid "Use red-zone in the x86-64 code"
+msgstr "Umutuku in i ITEGEKONGENGA"
+
+#: config/i386/i386.h:380
+#, fuzzy
+msgid "Do not use red-zone in the x86-64 code"
+msgstr "OYA Gukoresha Umutuku in i ITEGEKONGENGA"
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
+#, fuzzy
+msgid "Schedule code for given CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/i386/i386.h:411
+#, fuzzy
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Bihindagurika Akadomo ikoresha Gushyiraho"
+
+#: config/i386/i386.h:413
+#, fuzzy
+msgid "Generate code for given CPU"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/i386/i386.h:415
+#, fuzzy
+msgid "Number of registers used to pass integer arguments"
+msgstr "Bya Kuri Umubare wuzuye ingingo"
+
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
+#, fuzzy
+msgid "Loop code aligned to this power of 2"
+msgstr "ITEGEKONGENGA Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
+#, fuzzy
+msgid "Jump targets are aligned to this power of 2"
+msgstr "Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
+#, fuzzy
+msgid "Function starts are aligned to this power of 2"
+msgstr "Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:424
+#, fuzzy
+msgid "Attempt to keep stack aligned to this power of 2"
+msgstr "Kuri Gumana: Kuri iyi UMWIKUBE Bya 2."
+
+#: config/i386/i386.h:426
+#, fuzzy
+msgid "Branches are this expensive (1-5, arbitrary units)"
+msgstr "iyi 1. 5"
+
+#: config/i386/i386.h:428
+#, fuzzy
+msgid "Use given x86-64 code model"
+msgstr "ITEGEKONGENGA Urugero"
+
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+msgid "Use given assembler dialect"
+msgstr ""
+
+#: config/i386/i386.h:436
+#, fuzzy
+msgid "Use given thread-local storage dialect"
+msgstr "Urudodo"
+
+#: config/i386/sco5.h:297
+#, fuzzy
+msgid "Generate ELF output"
+msgstr "Ibisohoka"
+
+#: config/i386/win32.h:53
+msgid "Use Mingw32 interface"
+msgstr ""
+
+#: config/i386/win32.h:55
+msgid "Use Cygwin interface"
+msgstr ""
+
+#: config/i386/win32.h:57
+msgid "Use bare Windows interface"
+msgstr ""
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:71
+#, fuzzy
+msgid "environment variable DJGPP not defined"
+msgstr "IMPINDURAGACIRO OYA"
+
+#: config/i386/xm-djgpp.h:73
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
+msgstr "IMPINDURAGACIRO Utudomo Kuri Ibuze IDOSIYE"
+
+#: config/i386/xm-djgpp.h:76
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
+msgstr "IMPINDURAGACIRO Utudomo Kuri IDOSIYE"
+
+#: config/i960/i960-c.c:66
+#, fuzzy
+msgid "sorry, not implemented: #pragma align NAME=SIZE"
+msgstr "OYA Gutondeka"
+
+#: config/i960/i960-c.c:71
+#, fuzzy
+msgid "malformed #pragma align - ignored"
+msgstr "Gutondeka"
+
+#: config/i960/i960-c.c:109
+#, fuzzy
+msgid "sorry, not implemented: #pragma noalign NAME"
+msgstr "OYA"
+
+#: config/i960/i960.c:121 config/i960/i960.c:131
+#, fuzzy
+msgid "conflicting architectures defined - using C series"
+msgstr "ikoresha C Ibyiciro"
+
+#: config/i960/i960.c:126
+#, fuzzy
+msgid "conflicting architectures defined - using K series"
+msgstr "ikoresha Ibyiciro"
+
+#: config/i960/i960.c:141
+#, fuzzy
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "0 Na 0 ikoresha 0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
+#, fuzzy
+msgid "stack limit expression is not supported"
+msgstr "imvugo ni OYA"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#. ??? Not all ten of these architecture variations actually exist, but I
+#. am not sure which are real and which aren't.
+#: config/i960/i960.h:240
+#, fuzzy
+msgid "Generate SA code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:243
+#, fuzzy
+msgid "Generate SB code"
+msgstr "ITEGEKONGENGA"
+
+#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
+#: config/i960/i960.h:248
+#, fuzzy
+msgid "Generate KA code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:251
+#, fuzzy
+msgid "Generate KB code"
+msgstr "ITEGEKONGENGA"
+
+#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
+#: config/i960/i960.h:256
+#, fuzzy
+msgid "Generate JA code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:258
+#, fuzzy
+msgid "Generate JD code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:261
+#, fuzzy
+msgid "Generate JF code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:263
+#, fuzzy
+msgid "generate RP code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:266
+#, fuzzy
+msgid "Generate MC code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:269
+#, fuzzy
+msgid "Generate CA code"
+msgstr "ITEGEKONGENGA"
+
+#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
+#: config/i960/i960.h:279
+#, fuzzy
+msgid "Generate CF code"
+msgstr "ITEGEKONGENGA"
+
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+#, fuzzy
+msgid "Use software floating point"
+msgstr "Bihindagurika Akadomo"
+
+#: config/i960/i960.h:285
+#, fuzzy
+msgid "Use alternate leaf function entries"
+msgstr "Umumaro Ibyinjijwe"
+
+#: config/i960/i960.h:287
+#, fuzzy
+msgid "Do not use alternate leaf function entries"
+msgstr "OYA Gukoresha Umumaro Ibyinjijwe"
+
+#: config/i960/i960.h:289
+msgid "Perform tail call optimization"
+msgstr ""
+
+#: config/i960/i960.h:291
+#, fuzzy
+msgid "Do not perform tail call optimization"
+msgstr "OYA"
+
+#: config/i960/i960.h:293
+#, fuzzy
+msgid "Use complex addressing modes"
+msgstr "ITSINDA RY'IMIBARE C Kwohereza"
+
+#: config/i960/i960.h:295
+#, fuzzy
+msgid "Do not use complex addressing modes"
+msgstr "OYA Gukoresha ITSINDA RY'IMIBARE C Kwohereza"
+
+#: config/i960/i960.h:297
+#, fuzzy
+msgid "Align code to 8 byte boundary"
+msgstr "ITEGEKONGENGA Kuri 8 Bayite"
+
+#: config/i960/i960.h:299
+#, fuzzy
+msgid "Do not align code to 8 byte boundary"
+msgstr "OYA Gutondeka ITEGEKONGENGA Kuri 8 Bayite"
+
+#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
+#: config/i960/i960.h:305 config/i960/i960.h:307
+#, fuzzy
+msgid "Enable compatibility with iC960 v2.0"
+msgstr "Bihuye neza Na: 0"
+
+#: config/i960/i960.h:309
+#, fuzzy
+msgid "Enable compatibility with iC960 v3.0"
+msgstr "Bihuye neza Na: 0"
+
+#: config/i960/i960.h:311 config/i960/i960.h:313
+#, fuzzy
+msgid "Enable compatibility with ic960 assembler"
+msgstr "Bihuye neza Na:"
+
+#: config/i960/i960.h:315
+#, fuzzy
+msgid "Do not permit unaligned accesses"
+msgstr "OYA"
+
+#: config/i960/i960.h:317
+msgid "Permit unaligned accesses"
+msgstr ""
+
+#: config/i960/i960.h:319
+#, fuzzy
+msgid "Layout types like Intel's v1.3 gcc"
+msgstr "nka 3."
+
+#: config/i960/i960.h:321
+#, fuzzy
+msgid "Do not layout types like Intel's v1.3 gcc"
+msgstr "OYA Imigaragarire nka 3."
+
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
+msgid "Use 64 bit long doubles"
+msgstr ""
+
+#: config/i960/i960.h:325
+msgid "Enable linker relaxation"
+msgstr ""
+
+#: config/i960/i960.h:327
+#, fuzzy
+msgid "Do not enable linker relaxation"
+msgstr "OYA Gushoboza"
+
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr ""
+
+#: config/ia64/ia64.c:4015
+#, fuzzy
+msgid "ia64_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/ia64/ia64.c:4292
+#, fuzzy
+msgid "value of -mfixed-range must have form REG1-REG2"
+msgstr "Agaciro Bya Urutonde Ifishi"
+
+#: config/ia64/ia64.c:4319
+#, fuzzy, c-format
+msgid "%s-%s is an empty range"
+msgstr "%s-%sni ubusa Urutonde"
+
+#: config/ia64/ia64.c:4350
+#, fuzzy
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "Kugeza ku ndunduro Bihindagurika Akadomo kugirango Byombi Na"
+
+#: config/ia64/ia64.c:4356
+#, fuzzy
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "Kugeza ku ndunduro Umubare wuzuye kugirango Byombi Na"
+
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "Agaciro kugirango Ingano Hindura"
+
+#. This macro defines names of command options to set and clear bits in
+#. `target_flags'. Its definition is an initializer with a subgrouping for
+#. each command option.
+#: config/ia64/ia64.h:154
+#, fuzzy
+msgid "Generate big endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
+#, fuzzy
+msgid "Generate little endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:158
+#, fuzzy
+msgid "Generate code for GNU as"
+msgstr "ITEGEKONGENGA kugirango Nka"
+
+#: config/ia64/ia64.h:160
+#, fuzzy
+msgid "Generate code for Intel as"
+msgstr "ITEGEKONGENGA kugirango Nka"
+
+#: config/ia64/ia64.h:162
+#, fuzzy
+msgid "Generate code for GNU ld"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/ia64/ia64.h:164
+#, fuzzy
+msgid "Generate code for Intel ld"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/ia64/ia64.h:166
+#, fuzzy
+msgid "Generate code without GP reg"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:168
+#, fuzzy
+msgid "Emit stop bits before and after volatile extended asms"
+msgstr "Guhagarara Mbere Na Nyuma Byongerewe..."
+
+#: config/ia64/ia64.h:170
+#, fuzzy
+msgid "Don't emit stop bits before and after volatile extended asms"
+msgstr "Guhagarara Mbere Na Nyuma Byongerewe..."
+
+#: config/ia64/ia64.h:172
+#, fuzzy
+msgid "Emit code for Itanium (TM) processor B step"
+msgstr "ITEGEKONGENGA kugirango Intera"
+
+#: config/ia64/ia64.h:174
+#, fuzzy
+msgid "Use in/loc/out register names"
+msgstr "in Inyuma Kwiyandikisha Amazina"
+
+#: config/ia64/ia64.h:176
+#, fuzzy
+msgid "Disable use of sdata/scommon/sbss"
+msgstr "Gukoresha Bya"
+
+#: config/ia64/ia64.h:178
+#, fuzzy
+msgid "Enable use of sdata/scommon/sbss"
+msgstr "Gukoresha Bya"
+
+#: config/ia64/ia64.h:180
+#, fuzzy
+msgid "gp is constant (but save/restore gp on indirect calls)"
+msgstr "ni Kubika Kugarura ku BUZIGUYE Amahamagara:"
+
+#: config/ia64/ia64.h:182
+#, fuzzy
+msgid "Generate self-relocatable code"
+msgstr "ITEGEKONGENGA"
+
+#: config/ia64/ia64.h:184
+#, fuzzy
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Mumurongo Bihindagurika Akadomo Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:186
+#, fuzzy
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Mumurongo Bihindagurika Akadomo Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:188
+#, fuzzy
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Mumurongo Umubare wuzuye Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:190
+#, fuzzy
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Mumurongo Umubare wuzuye Kugeza ku ndunduro kugirango"
+
+#: config/ia64/ia64.h:192
+#, fuzzy
+msgid "Enable Dwarf 2 line debug info via GNU as"
+msgstr "2. Umurongo Kosora amakosa Ibisobanuro Biturutse Nka"
+
+#: config/ia64/ia64.h:194
+#, fuzzy
+msgid "Disable Dwarf 2 line debug info via GNU as"
+msgstr "2. Umurongo Kosora amakosa Ibisobanuro Biturutse Nka"
+
+#: config/ia64/ia64.h:223
+#, fuzzy
+msgid "Specify range of registers to make fixed"
+msgstr "Urutonde Bya Kuri Ubwoko BIHAMYE"
+
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr ""
+
+#: config/m32r/m32r.c:139
+#, fuzzy, c-format
+msgid "bad value (%s) for -mmodel switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/m32r/m32r.c:148
+#, fuzzy, c-format
+msgid "bad value (%s) for -msdata switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/m32r/m32r.c:319
+#, fuzzy, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr "Sibyo Bya Ikiranga"
+
+#: config/m32r/m32r.c:422
+#, fuzzy
+msgid "const objects cannot go in .sdata/.sbss"
+msgstr "Ibintu Gyayo in"
+
+#: config/m32r/m32r.c:2256
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2263
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2318
+#, fuzzy
+msgid "bad insn for 'A'"
+msgstr "kugirango"
+
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
+msgstr "Sibyo Kuri ITEGEKONGENGA"
+
+#: config/m32r/m32r.c:2438
+#, fuzzy
+msgid "pre-increment address is not a register"
+msgstr "Byahawe imiterere mbere Iyongeragaciro Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2445
+#, fuzzy
+msgid "pre-decrement address is not a register"
+msgstr "Byahawe imiterere mbere Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2452
+#, fuzzy
+msgid "post-increment address is not a register"
+msgstr "Iposita Iyongeragaciro Aderesi ni OYA a Kwiyandikisha"
+
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+#, fuzzy
+msgid "bad address"
+msgstr "Aderesi"
+
+#: config/m32r/m32r.c:2551
+#, fuzzy
+msgid "lo_sum not of register"
+msgstr "OYA Bya Kwiyandikisha"
+
+#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
+#: config/m32r/m32r.h:241
+#, fuzzy
+msgid "Display compile time statistics"
+msgstr "Gukusanya Igihe Sitatisitiki"
+
+#: config/m32r/m32r.h:243
+#, fuzzy
+msgid "Align all loops to 32 byte boundary"
+msgstr "Byose Kuri Bayite"
+
+#: config/m32r/m32r.h:246
+#, fuzzy
+msgid "Only issue one instruction per cycle"
+msgstr "Itangwa Uruziga"
+
+#: config/m32r/m32r.h:249
+#, fuzzy
+msgid "Prefer branches over conditional execution"
+msgstr "KURI"
+
+#: config/m32r/m32r.h:265
+#, fuzzy
+msgid "Code size: small, medium or large"
+msgstr "Ingano Gitoya biringaniye Cyangwa Binini"
+
+#: config/m32r/m32r.h:267
+#, fuzzy
+msgid "Small data area: none, sdata, use"
+msgstr "Ibyatanzwe Ubuso Ntacyo Gukoresha"
+
+#: config/m68hc11/m68hc11.c:242
+#, fuzzy, c-format
+msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+msgstr "-F kugirango OYA"
+
+#: config/m68hc11/m68hc11.c:1305
+#, fuzzy
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr "`Na Ibiranga OYA"
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "`Ikiranga ni"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+#, fuzzy
+msgid "move insn not handled"
+msgstr "Kwimura OYA"
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+#, fuzzy
+msgid "invalid register in the move instruction"
+msgstr "Sibyo Kwiyandikisha in i Kwimura"
+
+#: config/m68hc11/m68hc11.c:3613
+#, fuzzy
+msgid "invalid operand in the instruction"
+msgstr "Sibyo in i"
+
+#: config/m68hc11/m68hc11.c:3920
+#, fuzzy
+msgid "invalid register in the instruction"
+msgstr "Sibyo Kwiyandikisha in i"
+
+#: config/m68hc11/m68hc11.c:3953
+#, fuzzy
+msgid "operand 1 must be a hard register"
+msgstr "1. a Ikomeye Kwiyandikisha"
+
+#: config/m68hc11/m68hc11.c:3970
+#, fuzzy
+msgid "invalid rotate insn"
+msgstr "Sibyo Kuzerutsa"
+
+#: config/m68hc11/m68hc11.c:4391
+#, fuzzy
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr "Na in i"
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+#, fuzzy
+msgid "cannot do z-register replacement"
+msgstr "Z Kwiyandikisha"
+
+#: config/m68hc11/m68hc11.c:5094
+#, fuzzy
+msgid "invalid Z register replacement for insn"
+msgstr "Sibyo Kwiyandikisha kugirango"
+
+#. Macro to define tables used to set the flags. This is a list in braces of
+#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
+#. to set or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE.
+#: config/m68hc11/m68hc11.h:172
+#, fuzzy
+msgid "Compile with 16-bit integer mode"
+msgstr "Na: Umubare wuzuye Ubwoko"
+
+#: config/m68hc11/m68hc11.h:174
+#, fuzzy
+msgid "Compile with 32-bit integer mode"
+msgstr "Na: Umubare wuzuye Ubwoko"
+
+#: config/m68hc11/m68hc11.h:176
+#, fuzzy
+msgid "Auto pre/post decrement increment allowed"
+msgstr "Byahawe imiterere mbere Iposita Iyongeragaciro"
+
+#: config/m68hc11/m68hc11.h:178
+#, fuzzy
+msgid "Auto pre/post decrement increment not allowed"
+msgstr "Byahawe imiterere mbere Iposita Iyongeragaciro OYA"
+
+#: config/m68hc11/m68hc11.h:180
+#, fuzzy
+msgid "Min/max instructions allowed"
+msgstr "KININI Amabwiriza"
+
+#: config/m68hc11/m68hc11.h:182
+#, fuzzy
+msgid "Min/max instructions not allowed"
+msgstr "KININI Amabwiriza OYA"
+
+#: config/m68hc11/m68hc11.h:184
+#, fuzzy
+msgid "Use call and rtc for function calls and returns"
+msgstr "Na kugirango Umumaro Amahamagara: Na"
+
+#: config/m68hc11/m68hc11.h:186
+#, fuzzy
+msgid "Use jsr and rts for function calls and returns"
+msgstr "Na kugirango Umumaro Amahamagara: Na"
+
+#: config/m68hc11/m68hc11.h:188
+#, fuzzy
+msgid "Do not use direct addressing mode for soft registers"
+msgstr "OYA Gukoresha Kwohereza Ubwoko kugirango Yoroshe"
+
+#: config/m68hc11/m68hc11.h:190
+#, fuzzy
+msgid "Use direct addressing mode for soft registers"
+msgstr "Kwohereza Ubwoko kugirango Yoroshe"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
+#, fuzzy
+msgid "Compile for a 68HC11"
+msgstr "kugirango a"
+
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
+#, fuzzy
+msgid "Compile for a 68HC12"
+msgstr "kugirango a"
+
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+#, fuzzy
+msgid "Compile for a 68HCS12"
+msgstr "kugirango a"
+
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/m68hc11/m68hc11.h:216
+#, fuzzy
+msgid "Specify the register allocation order"
+msgstr "i Kwiyandikisha Itondekanya"
+
+#: config/m68hc11/m68hc11.h:218
+#, fuzzy
+msgid "Indicate the number of soft registers available"
+msgstr "i Umubare Bya Yoroshe Bihari"
+
+#: config/m68k/m68k.c:158
+#, fuzzy, c-format
+msgid "-malign-loops=%d is not between 1 and %d"
+msgstr "-ni OYA hagati 1. Na"
+
+#: config/m68k/m68k.c:169
+#, fuzzy, c-format
+msgid "-malign-jumps=%d is not between 1 and %d"
+msgstr "-ni OYA hagati 1. Na"
+
+#: config/m68k/m68k.c:180
+#, fuzzy, c-format
+msgid "-malign-functions=%d is not between 1 and %d"
+msgstr "-Imimaro ni OYA hagati 1. Na"
+
+#: config/m68k/m68k.c:189
+#, fuzzy
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "-ni OYA ku i Cyangwa"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+#, fuzzy
+msgid "Generate code for a 68020"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+#, fuzzy
+msgid "Generate code for a 68000"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:174
+#, fuzzy
+msgid "Use the bit-field instructions"
+msgstr "i Umwanya Amabwiriza"
+
+#: config/m68k/m68k.h:176
+#, fuzzy
+msgid "Do not use the bit-field instructions"
+msgstr "OYA Gukoresha i Umwanya Amabwiriza"
+
+#: config/m68k/m68k.h:178
+#, fuzzy
+msgid "Use different calling convention using 'rtd'"
+msgstr "ikoresha"
+
+#: config/m68k/m68k.h:182
+#, fuzzy
+msgid "Consider type `int' to be 16 bits wide"
+msgstr "Ubwoko Kuri"
+
+#: config/m68k/m68k.h:184
+#, fuzzy
+msgid "Consider type `int' to be 32 bits wide"
+msgstr "Ubwoko Kuri"
+
+#: config/m68k/m68k.h:186
+#, fuzzy
+msgid "Generate code for a Sun FPA"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:189
+#, fuzzy
+msgid "Do not generate code for a Sun FPA"
+msgstr "OYA ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+#, fuzzy
+msgid "Generate code for a Sun Sky board"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:195
+#, fuzzy
+msgid "Do not use Sky linkage convention"
+msgstr "OYA Gukoresha"
+
+#: config/m68k/m68k.h:197
+#, fuzzy
+msgid "Generate code for a 68881"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:200
+#, fuzzy
+msgid "Generate code with library calls for floating point"
+msgstr "ITEGEKONGENGA Na: Isomero Amahamagara: kugirango Bihindagurika Akadomo"
+
+#: config/m68k/m68k.h:202
+#, fuzzy
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "ITEGEKONGENGA kugirango a Gishya Amabwiriza"
+
+#: config/m68k/m68k.h:205
+#, fuzzy
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "ITEGEKONGENGA kugirango a Gishya Amabwiriza"
+
+#: config/m68k/m68k.h:209
+#, fuzzy
+msgid "Generate code for a 68030"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:212
+#, fuzzy
+msgid "Generate code for a 68040"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:216
+#, fuzzy
+msgid "Generate code for a 68060"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:221
+#, fuzzy
+msgid "Generate code for a 520X"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:224
+#, fuzzy
+msgid "Generate code for a 68851"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:226
+#, fuzzy
+msgid "Do no generate code for a 68851"
+msgstr "Oya ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:229
+#, fuzzy
+msgid "Generate code for a 68302"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:232
+#, fuzzy
+msgid "Generate code for a 68332"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:236
+#, fuzzy
+msgid "Generate code for a cpu32"
+msgstr "ITEGEKONGENGA kugirango a"
+
+#: config/m68k/m68k.h:239
+#, fuzzy
+msgid "Align variables on a 32-bit boundary"
+msgstr "Ibihinduka ku a"
+
+#: config/m68k/m68k.h:241
+#, fuzzy
+msgid "Align variables on a 16-bit boundary"
+msgstr "Ibihinduka ku a"
+
+#: config/m68k/m68k.h:243
+#, fuzzy
+msgid "Generate pc-relative code"
+msgstr "Bifitanye isano ITEGEKONGENGA"
+
+#: config/m68k/m68k.h:245
+#, fuzzy
+msgid "Do not use unaligned memory references"
+msgstr "OYA Gukoresha Ububiko Indango"
+
+#: config/m68k/m68k.h:247
+#, fuzzy
+msgid "Use unaligned memory references"
+msgstr "Ububiko Indango"
+
+#: config/m88k/m88k.c:903
+#, fuzzy, c-format
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr "By'imbere"
+
+#: config/m88k/m88k.c:2302
+#, fuzzy
+msgid "internal gcc error: Can't express symbolic location"
+msgstr "By'imbere Ikosa Ahantu"
+
+#: config/m88k/m88k.c:2517
+#, fuzzy, c-format
+msgid "argument #%d is a structure"
+msgstr "ni a Imiterere"
+
+#: config/m88k/m88k.c:2816
+#, fuzzy, c-format
+msgid "%%R not followed by %%B/C/D/E"
+msgstr "%%ROYA ku C E"
+
+#: config/m88k/m88k.c:2884
+#, fuzzy, c-format
+msgid "invalid %%x/X value"
+msgstr "Sibyo Agaciro"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:2901
+#, fuzzy, c-format
+msgid "invalid %%Q value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, fuzzy, c-format
+msgid "invalid %%q value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:2913
+#, fuzzy, c-format
+msgid "invalid %%o value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
+#, fuzzy, c-format
+msgid "invalid %%p value"
+msgstr "Agaciro siko"
+
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
+msgstr "Sibyo Agaciro"
+
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
+msgstr "Sibyo"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
+#, fuzzy, c-format
+msgid "invalid %%B value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/m88k/m88k.c:3010
+#, fuzzy, c-format
+msgid "invalid %%D value"
+msgstr "Agaciro siko"
+
+#: config/m88k/m88k.c:3023
+#, fuzzy, c-format
+msgid "`%%d' operand isn't a register"
+msgstr "`%%d'si a Kwiyandikisha"
+
+#: config/m88k/m88k.c:3041
+#, fuzzy
+msgid "operand is r0"
+msgstr "ni"
+
+#: config/m88k/m88k.c:3055
+#, fuzzy
+msgid "operand is const_double"
+msgstr "ni"
+
+#: config/m88k/m88k.c:3074
+#, fuzzy
+msgid "invalid code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#. Do any checking or such that is needed after processing the -m switches.
+#: config/m88k/m88k.h:277
+#, fuzzy
+msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+msgstr "-Binini Gusunika Na Binini Gusunika"
+
+#: config/m88k/m88k.h:299
+#, fuzzy, c-format
+msgid "invalid option `-mshort-data-%s'"
+msgstr "Sibyo Ihitamo Ibyatanzwe"
+
+#: config/m88k/m88k.h:304
+#, fuzzy, c-format
+msgid "-mshort-data-%s is too large "
+msgstr "-Ibyatanzwe ni Binini"
+
+#: config/m88k/m88k.h:306
+#, fuzzy, c-format
+msgid "-mshort-data-%s and PIC are incompatible"
+msgstr "-Ibyatanzwe Na"
+
+#: config/mcore/mcore.c:3078
+#, fuzzy, c-format
+msgid "invalid option `-mstack-increment=%s'"
+msgstr "Sibyo Ihitamo Iyongeragaciro"
+
+#: config/mcore/mcore.h:126
+#, fuzzy
+msgid "Inline constants if it can be done in 2 insns or less"
+msgstr "NIBA Byakozwe in 2. Cyangwa Birutwa"
+
+#: config/mcore/mcore.h:128
+#, fuzzy
+msgid "Inline constants if it only takes 1 instruction"
+msgstr "NIBA 1."
+
+#: config/mcore/mcore.h:130
+#, fuzzy
+msgid "Set maximum alignment to 4"
+msgstr "Kinini Itunganya Kuri 4."
+
+#: config/mcore/mcore.h:132
+#, fuzzy
+msgid "Set maximum alignment to 8"
+msgstr "Kinini Itunganya Kuri 8"
+
+#: config/mcore/mcore.h:136
+#, fuzzy
+msgid "Do not use the divide instruction"
+msgstr "OYA Gukoresha i Kugabanya"
+
+#: config/mcore/mcore.h:140
+#, fuzzy
+msgid "Do not arbitrary sized immediates in bit operations"
+msgstr "OYA in Ibikorwa:"
+
+#: config/mcore/mcore.h:142
+#, fuzzy
+msgid "Always treat bit-field as int-sized"
+msgstr "Umwanya Nka INT"
+
+#: config/mcore/mcore.h:146
+#, fuzzy
+msgid "Force functions to be aligned to a 4 byte boundary"
+msgstr "Imimaro Kuri Kuri a 4. Bayite"
+
+#: config/mcore/mcore.h:148
+#, fuzzy
+msgid "Force functions to be aligned to a 2 byte boundary"
+msgstr "Imimaro Kuri Kuri a 2. Bayite"
+
+#: config/mcore/mcore.h:150
+#, fuzzy
+msgid "Emit call graph information"
+msgstr "Ibisobanuro"
+
+#: config/mcore/mcore.h:154
+#, fuzzy
+msgid "Prefer word accesses over byte accesses"
+msgstr "ijambo KURI Bayite"
+
+#: config/mcore/mcore.h:165
+#, fuzzy
+msgid "Generate code for the M*Core M340"
+msgstr "ITEGEKONGENGA kugirango i"
+
+#: config/mcore/mcore.h:178
+#, fuzzy
+msgid "Maximum amount for a single stack increment operation"
+msgstr "Igiteranyo kugirango a UMWE Iyongeragaciro"
+
+#: config/mips/mips.c:5128
+#, fuzzy, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/mips/mips.c:5158
+#, fuzzy, c-format
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr "-Na: i Ikindi Amahitamo a"
+
+#: config/mips/mips.c:5165
+#, fuzzy, c-format
+msgid "bad value (%s) for -mips switch"
+msgstr "Agaciro kugirango Hindura"
+
+#: config/mips/mips.c:5180
+#, fuzzy, c-format
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-Werurwe ni OYA Na: i Byahiswemo"
+
+#: config/mips/mips.c:5192
+#, fuzzy
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:5194
+#, fuzzy
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:5196
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-Na: a"
+
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "Ivanga"
+
+#: config/mips/mips.c:5288
+#, fuzzy
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "Bya Amabwiriza Bikora OYA ku"
+
+#: config/mips/mips.c:5299
+#, fuzzy
+msgid "-G is incompatible with PIC code which is the default"
+msgstr "-ni Na: ITEGEKONGENGA ni i Mburabuzi"
+
+#: config/mips/mips.c:5315
+#, fuzzy
+msgid "-membedded-pic and -mabicalls are incompatible"
+msgstr "-Na"
+
+#: config/mips/mips.c:5318
+#, fuzzy
+msgid "-G and -membedded-pic are incompatible"
+msgstr "-Na"
+
+#: config/mips/mips.c:5369
+#, fuzzy, c-format
+msgid "invalid option `entry%s'"
+msgstr "Sibyo Ihitamo Icyinjijwe"
+
+#: config/mips/mips.c:5372
+#, fuzzy
+msgid "-mentry is only meaningful with -mips-16"
+msgstr "-ni Na:"
+
+#: config/mips/mips.c:5781
+#, fuzzy, c-format
+msgid "internal error: %%) found without a %%( in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:5795
+#, fuzzy, c-format
+msgid "internal error: %%] found without a %%[ in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:5808
+#, fuzzy, c-format
+msgid "internal error: %%> found without a %%< in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:5821
+#, fuzzy, c-format
+msgid "internal error: %%} found without a %%{ in assembler pattern"
+msgstr "By'imbere Ikosa Byabonetse a in Ishusho"
+
+#: config/mips/mips.c:5835
+#, fuzzy, c-format
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
+msgstr "Kitazwi"
+
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
+#, fuzzy
+msgid "PRINT_OPERAND null pointer"
+msgstr "NTAGIHARI Mweretsi"
+
+#: config/mips/mips.c:5975
+#, fuzzy, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr "Sibyo Gukoresha Bya Cyangwa"
+
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
+#, fuzzy
+msgid "PRINT_OPERAND_ADDRESS, null pointer"
+msgstr "NTAGIHARI Mweretsi"
+
+#: config/mips/mips.c:6242
+#, fuzzy
+msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+msgstr "Imiterere OYA Kwemerera muri Imimaro Na: Umurongo"
+
+#: config/mips/mips.c:6552
+#, fuzzy
+msgid "can't rewind temp file"
+msgstr "IDOSIYE"
+
+#: config/mips/mips.c:6556
+#, fuzzy
+msgid "can't write to output file"
+msgstr "Kwandika Kuri Ibisohoka IDOSIYE"
+
+#: config/mips/mips.c:6559
+#, fuzzy
+msgid "can't read from temp file"
+msgstr "Gusoma Bivuye IDOSIYE"
+
+#: config/mips/mips.c:6562
+#, fuzzy
+msgid "can't close temp file"
+msgstr "Gufunga IDOSIYE"
+
+#: config/mips/mips.c:7003
+#, fuzzy, c-format
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "Cyangwa ni Birutwa Zeru"
+
+#: config/mips/mips.c:7112
+#, fuzzy, c-format
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+msgstr "Cyangwa ni Birutwa Zeru"
+
+#: config/mips/mips.c:9335
+#, fuzzy, c-format
+msgid "can not handle inconsistent calls to `%s'"
+msgstr "OYA Amahamagara: Kuri"
+
+#: config/mips/mips.c:10467
+#, fuzzy
+msgid "the cpu name must be lower case"
+msgstr "i CPU Izina: Ntoya"
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "Agaciro kugirango"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
+#, fuzzy
+msgid "No default crt0.o"
+msgstr "Mburabuzi o"
+
+#: config/mips/mips.h:530
+#, fuzzy
+msgid "Use 64-bit int type"
+msgstr "INT Ubwoko"
+
+#: config/mips/mips.h:532
+#, fuzzy
+msgid "Use 64-bit long type"
+msgstr "Ubwoko"
+
+#: config/mips/mips.h:534
+#, fuzzy
+msgid "Use 32-bit long type"
+msgstr "Ubwoko"
+
+#: config/mips/mips.h:536
+#, fuzzy
+msgid "Optimize lui/addiu address loads"
+msgstr "Aderesi"
+
+#: config/mips/mips.h:538
+#, fuzzy
+msgid "Don't optimize lui/addiu address loads"
+msgstr "Kugeza ku ndunduro Aderesi"
+
+#: config/mips/mips.h:540
+#, fuzzy
+msgid "Use MIPS as"
+msgstr "Nka"
+
+#: config/mips/mips.h:542
+#, fuzzy
+msgid "Use GNU as"
+msgstr "Nka"
+
+#: config/mips/mips.h:544
+#, fuzzy
+msgid "Use symbolic register names"
+msgstr "Kwiyandikisha Amazina"
+
+#: config/mips/mips.h:546
+#, fuzzy
+msgid "Don't use symbolic register names"
+msgstr "Gukoresha Kwiyandikisha Amazina"
+
+#: config/mips/mips.h:548 config/mips/mips.h:550
+#, fuzzy
+msgid "Use GP relative sdata/sbss sections"
+msgstr "Bifitanye isano Ibyatoranyijwe"
+
+#: config/mips/mips.h:552 config/mips/mips.h:554
+#, fuzzy
+msgid "Don't use GP relative sdata/sbss sections"
+msgstr "Gukoresha Bifitanye isano Ibyatoranyijwe"
+
+#: config/mips/mips.h:556
+#, fuzzy
+msgid "Output compiler statistics"
+msgstr "Sitatisitiki"
+
+#: config/mips/mips.h:558
+#, fuzzy
+msgid "Don't output compiler statistics"
+msgstr "Ibisohoka Sitatisitiki"
+
+#: config/mips/mips.h:560
+#, fuzzy
+msgid "Don't optimize block moves"
+msgstr "Kugeza ku ndunduro Funga"
+
+#: config/mips/mips.h:562
+#, fuzzy
+msgid "Optimize block moves"
+msgstr "Funga"
+
+#: config/mips/mips.h:564
+msgid "Use mips-tfile asm postpass"
+msgstr ""
+
+#: config/mips/mips.h:566
+#, fuzzy
+msgid "Don't use mips-tfile asm postpass"
+msgstr "Gukoresha"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of triplets in braces,
+#. each triplet being { "NAME", VALUE, DOC }
+#. where VALUE is the bits to set or minus the bits to clear and DOC
+#. is the documentation for --help (NULL if intentionally undocumented).
+#. An empty string NAME is used to identify the default VALUE.
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
+#, fuzzy
+msgid "Use hardware floating point"
+msgstr "Bihindagurika Akadomo"
+
+#: config/mips/mips.h:572
+msgid "Use 64-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:574
+msgid "Use 32-bit FP registers"
+msgstr ""
+
+#: config/mips/mips.h:576
+#, fuzzy
+msgid "Use 64-bit general registers"
+msgstr "Rusange"
+
+#: config/mips/mips.h:578
+#, fuzzy
+msgid "Use 32-bit general registers"
+msgstr "Rusange"
+
+#: config/mips/mips.h:580
+msgid "Use Irix PIC"
+msgstr ""
+
+#: config/mips/mips.h:582
+#, fuzzy
+msgid "Don't use Irix PIC"
+msgstr "Gukoresha"
+
+#: config/mips/mips.h:584
+#, fuzzy
+msgid "Use indirect calls"
+msgstr "BUZIGUYE Amahamagara:"
+
+#: config/mips/mips.h:586
+#, fuzzy
+msgid "Don't use indirect calls"
+msgstr "Gukoresha BUZIGUYE Amahamagara:"
+
+#: config/mips/mips.h:588
+#, fuzzy
+msgid "Use embedded PIC"
+msgstr "Gitsindiye"
+
+#: config/mips/mips.h:590
+#, fuzzy
+msgid "Don't use embedded PIC"
+msgstr "Gukoresha Gitsindiye"
+
+#: config/mips/mips.h:592
+#, fuzzy
+msgid "Use ROM instead of RAM"
+msgstr "Bya"
+
+#: config/mips/mips.h:594
+#, fuzzy
+msgid "Don't use ROM instead of RAM"
+msgstr "Gukoresha Bya"
+
+#: config/mips/mips.h:596
+#, fuzzy
+msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+msgstr "Itatangijwe in Ibyatanzwe"
+
+#: config/mips/mips.h:598
+#, fuzzy
+msgid "Don't put uninitialized constants in ROM"
+msgstr "Gushyira Itatangijwe in"
+
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
+#, fuzzy
+msgid "Use big-endian byte order"
+msgstr "Bayite Itondekanya"
+
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
+#, fuzzy
+msgid "Use little-endian byte order"
+msgstr "Bayite Itondekanya"
+
+#: config/mips/mips.h:604
+#, fuzzy
+msgid "Use single (32-bit) FP only"
+msgstr "UMWE"
+
+#: config/mips/mips.h:606
+#, fuzzy
+msgid "Don't use single (32-bit) FP only"
+msgstr "Gukoresha UMWE"
+
+#: config/mips/mips.h:608
+#, fuzzy
+msgid "Use multiply accumulate"
+msgstr "Gukuba"
+
+#: config/mips/mips.h:610
+#, fuzzy
+msgid "Don't use multiply accumulate"
+msgstr "Gukoresha Gukuba"
+
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+#, fuzzy
+msgid "Don't generate fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+#, fuzzy
+msgid "Generate fused multiply/add instructions"
+msgstr "Gukuba Kongeramo Amabwiriza"
+
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr ""
+
+#: config/mips/mips.h:618
+#, fuzzy
+msgid "Don't work around early 4300 hardware bug"
+msgstr "Akazi"
+
+#: config/mips/mips.h:620
+#, fuzzy
+msgid "Trap on integer divide by zero"
+msgstr "ku Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:622
+#, fuzzy
+msgid "Don't trap on integer divide by zero"
+msgstr "ku Umubare wuzuye Kugabanya ku Zeru"
+
+#: config/mips/mips.h:624
+#, fuzzy
+msgid "Trap on integer divide overflow"
+msgstr "ku Umubare wuzuye Kugabanya Byarenze urugero"
+
+#: config/mips/mips.h:626
+#, fuzzy
+msgid "Don't trap on integer divide overflow"
+msgstr "ku Umubare wuzuye Kugabanya Byarenze urugero"
+
+#: config/mips/mips.h:628
+#, fuzzy
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr "Amabwiriza Mburabuzi kugirango"
+
+#: config/mips/mips.h:630
+#, fuzzy
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr "Gukoresha Amabwiriza Mburabuzi kugirango"
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
+#, fuzzy
+msgid "Specify CPU for scheduling purposes"
+msgstr "kugirango Impamvu"
+
+#: config/mips/mips.h:746
+#, fuzzy
+msgid "Specify CPU for code generation purposes"
+msgstr "kugirango ITEGEKONGENGA Impamvu"
+
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
+#, fuzzy
+msgid "Specify a Standard MIPS ISA"
+msgstr "a"
+
+#: config/mips/mips.h:752
+#, fuzzy
+msgid "Use mips16 entry/exit psuedo ops"
+msgstr "Icyinjijwe Gusohoka"
+
+#: config/mips/mips.h:754
+#, fuzzy
+msgid "Don't use MIPS16 instructions"
+msgstr "Gukoresha Amabwiriza"
+
+#: config/mips/mips.h:756
+#, fuzzy
+msgid "Don't call any cache flush functions"
+msgstr "Ubwihisho Imimaro"
+
+#: config/mips/mips.h:758
+#, fuzzy
+msgid "Specify cache flush function"
+msgstr "Ubwihisho Umumaro"
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/mips/mips.h:2900
+#, fuzzy
+msgid "mips16 function profiling"
+msgstr "Umumaro"
+
+#: config/mmix/mmix.c:189
+#, fuzzy, c-format
+msgid "-f%s not supported: ignored"
+msgstr "-F OYA"
+
+#: config/mmix/mmix.c:644
+#, fuzzy, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr "Binini Umumaro Agaciro Ubwoko kugirango iyi"
+
+#: config/mmix/mmix.c:826
+#, fuzzy
+msgid "function_profiler support for MMIX"
+msgstr "Gushigikira kugirango"
+
+#: config/mmix/mmix.c:848
+#, fuzzy
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr "OYA in a Kwiyandikisha"
+
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+#, fuzzy
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr "Itegerejwe a OYA iyi"
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, fuzzy, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr "Kwiyandikisha"
+
+#: config/mmix/mmix.c:1718
+#, fuzzy
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr "Agaciro kugirango OYA a"
+
+#: config/mmix/mmix.c:1737
+#, fuzzy
+msgid "MMIX Internal: Expected a register, not this"
+msgstr "Itegerejwe a Kwiyandikisha OYA iyi"
+
+#: config/mmix/mmix.c:1747
+#, fuzzy
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr "Itegerejwe a OYA iyi"
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, fuzzy, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr "in"
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+#, fuzzy
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr "iyi"
+
+#: config/mmix/mmix.c:1891
+#, fuzzy
+msgid "MMIX Internal: This is not a recognized address"
+msgstr "ni OYA a Aderesi"
+
+#: config/mmix/mmix.c:2082
+#, fuzzy, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "Ikadiri OYA a Igikubo Bya 8 Bayite"
+
+#: config/mmix/mmix.c:2321
+#, fuzzy, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "Ikadiri OYA a Igikubo Bya"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, fuzzy, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr "ni OYA a INT"
+
+#: config/mmix/mmix.c:3006
+#, fuzzy
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr "Kuri Ibisohoka Bicuritswe Ibisabwa"
+
+#: config/mmix/mmix.c:3013
+#, fuzzy
+msgid "MMIX Internal: What's the CC of this?"
+msgstr "i Bya iyi"
+
+#: config/mmix/mmix.c:3017
+#, fuzzy
+msgid "MMIX Internal: What is the CC of this?"
+msgstr "ni i Bya iyi"
+
+#: config/mmix/mmix.c:3088
+#, fuzzy
+msgid "MMIX Internal: This is not a constant:"
+msgstr "ni OYA a"
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+#, fuzzy
+msgid "Set start-address of the program"
+msgstr "Gutangira Aderesi Bya i Porogaramu"
+
+#: config/mmix/mmix.h:134
+#, fuzzy
+msgid "Set start-address of data"
+msgstr "Gutangira Aderesi Bya Ibyatanzwe"
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+#, fuzzy
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr "Isomero Byose Ibigenga in"
+
+#: config/mmix/mmix.h:201
+#, fuzzy
+msgid "Use register stack for parameters and return value"
+msgstr "Kwiyandikisha kugirango Ibigenga Na Garuka Agaciro"
+
+#: config/mmix/mmix.h:203
+#, fuzzy
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr "kugirango Ibigenga Na Garuka Agaciro"
+
+#: config/mmix/mmix.h:205
+#, fuzzy
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "ebusiloni Bihindagurika Akadomo Kugereranya# Amabwiriza"
+
+#: config/mmix/mmix.h:208
+#, fuzzy
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr "Zeru Ububiko OYA IKIMENYETSO"
+
+#: config/mmix/mmix.h:211
+#, fuzzy
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr "Kugabanya Ibisubizo ku Na: Mwibutsa i IKIMENYETSO Nka i Ikigabanya OYA i Ikigabanywa"
+
+#: config/mmix/mmix.h:215
+#, fuzzy
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr "Ibimenyetso Na: kugirango Gukoresha Na:"
+
+#: config/mmix/mmix.h:217
+#, fuzzy
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr "OYA a Mburabuzi Gutangira Aderesi Bya i Porogaramu"
+
+#: config/mmix/mmix.h:219
+#, fuzzy
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr "Kuri Porogaramu in Imiterere"
+
+#: config/mmix/mmix.h:221
+#, fuzzy
+msgid "Use P-mnemonics for branches statically predicted as taken"
+msgstr "kugirango Nka"
+
+#: config/mmix/mmix.h:223
+#, fuzzy
+msgid "Don't use P-mnemonics for branches"
+msgstr "Gukoresha kugirango"
+
+#: config/mmix/mmix.h:225
+#, fuzzy
+msgid "Use addresses that allocate global registers"
+msgstr "Amaderesi"
+
+#: config/mmix/mmix.h:227
+#, fuzzy
+msgid "Do not use addresses that allocate global registers"
+msgstr "OYA Gukoresha Amaderesi"
+
+#: config/mmix/mmix.h:229
+#, fuzzy
+msgid "Generate a single exit point for each function"
+msgstr "a UMWE Gusohoka Akadomo kugirango Umumaro"
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "OYA a UMWE Gusohoka Akadomo kugirango Umumaro"
+
+#: config/mn10300/mn10300.h:59
+#, fuzzy
+msgid "Work around hardware multiply bug"
+msgstr "Gukuba"
+
+#: config/mn10300/mn10300.h:60
+#, fuzzy
+msgid "Do not work around hardware multiply bug"
+msgstr "OYA Akazi Gukuba"
+
+#: config/mn10300/mn10300.h:61
+#, fuzzy
+msgid "Target the AM33 processor"
+msgstr "i"
+
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
+msgstr ""
+
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
+#, fuzzy
+msgid "Don't use hardware fp"
+msgstr "Gukoresha"
+
+#: config/ns32k/ns32k.h:143
+msgid "Alternative calling convention"
+msgstr ""
+
+#: config/ns32k/ns32k.h:145
+#, fuzzy
+msgid "Pass some arguments in registers"
+msgstr "ingingo in"
+
+#: config/ns32k/ns32k.h:146
+#, fuzzy
+msgid "Pass all arguments on stack"
+msgstr "Byose ingingo ku"
+
+#: config/ns32k/ns32k.h:147
+#, fuzzy
+msgid "Optimize for 32532 cpu"
+msgstr "kugirango CPU"
+
+#: config/ns32k/ns32k.h:148
+#, fuzzy
+msgid "Optimize for 32332 cpu"
+msgstr "kugirango CPU"
+
+#: config/ns32k/ns32k.h:150
+#, fuzzy
+msgid "Optimize for 32032"
+msgstr "kugirango"
+
+#: config/ns32k/ns32k.h:152
+#, fuzzy
+msgid "Register sb is zero. Use for absolute addressing"
+msgstr "ni Zeru kugirango Kwohereza"
+
+#: config/ns32k/ns32k.h:153
+#, fuzzy
+msgid "Do not use register sb"
+msgstr "OYA Gukoresha Kwiyandikisha"
+
+#: config/ns32k/ns32k.h:155
+#, fuzzy
+msgid "Use bit-field instructions"
+msgstr "Umwanya Amabwiriza"
+
+#: config/ns32k/ns32k.h:157
+#, fuzzy
+msgid "Do not use bit-field instructions"
+msgstr "OYA Gukoresha Umwanya Amabwiriza"
+
+#: config/ns32k/ns32k.h:158
+#, fuzzy
+msgid "Generate code for high memory"
+msgstr "ITEGEKONGENGA kugirango kirekire Ububiko"
+
+#: config/ns32k/ns32k.h:159
+#, fuzzy
+msgid "Generate code for low memory"
+msgstr "ITEGEKONGENGA kugirango Byo hasi Ububiko"
+
+#: config/ns32k/ns32k.h:160
+msgid "32381 fpu"
+msgstr ""
+
+#: config/ns32k/ns32k.h:162
+#, fuzzy
+msgid "Use multiply-accumulate fp instructions"
+msgstr "Gukuba Amabwiriza"
+
+#: config/ns32k/ns32k.h:164
+#, fuzzy
+msgid "Do not use multiply-accumulate fp instructions"
+msgstr "OYA Gukoresha Gukuba Amabwiriza"
+
+#: config/ns32k/ns32k.h:165
+#, fuzzy
+msgid "\"Small register classes\" kludge"
+msgstr "\"Kwiyandikisha Inzego"
+
+#: config/ns32k/ns32k.h:166
+#, fuzzy
+msgid "No \"Small register classes\" kludge"
+msgstr "Kwiyandikisha Inzego"
+
+#: config/pa/pa.c:261
+#, fuzzy, c-format
+msgid ""
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+msgstr "Kitazwi Ihitamo Amahitamo Na"
+
+#: config/pa/pa.c:286
+#, fuzzy, c-format
+msgid ""
+"unknown -march= option (%s).\n"
+"Valid options are 1.0, 1.1, and 2.0\n"
+msgstr "01. 1na2."
+
+#: config/pa/pa.c:299
+#, fuzzy
+msgid "PIC code generation is not supported in the portable runtime model\n"
+msgstr "ITEGEKONGENGA ni OYA in i"
+
+#: config/pa/pa.c:304
+#, fuzzy
+msgid "PIC code generation is not compatible with fast indirect calls\n"
+msgstr "ITEGEKONGENGA ni OYA Na: Byihuta BUZIGUYE"
+
+#: config/pa/pa.c:309
+#, fuzzy
+msgid "-g is only supported when using GAS on this processor,"
+msgstr "-g ni Ryari: ikoresha ku iyi"
+
+#: config/pa/pa.c:310
+#, fuzzy
+msgid "-g option disabled"
+msgstr "-g Ihitamo Yahagaritswe"
+
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "kugirango Seriveri"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+#, fuzzy
+msgid "Generate cpp defines for workstation IO"
+msgstr "kugirango"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+#, fuzzy
+msgid "Generate PA1.1 code"
+msgstr "1. ITEGEKONGENGA"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+#, fuzzy
+msgid "Generate PA1.0 code"
+msgstr "0 ITEGEKONGENGA"
+
+#: config/pa/pa.h:240
+#, fuzzy
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "0 ITEGEKONGENGA 2. 10 Cyangwa"
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+#, fuzzy
+msgid "Do not disable FP regs"
+msgstr "OYA"
+
+#: config/pa/pa.h:246
+#, fuzzy
+msgid "Disable space regs"
+msgstr "Umwanya"
+
+#: config/pa/pa.h:248
+#, fuzzy
+msgid "Do not disable space regs"
+msgstr "OYA Umwanya"
+
+#: config/pa/pa.h:250
+#, fuzzy
+msgid "Put jumps in call delay slots"
+msgstr "in Gutinda Siloti"
+
+#: config/pa/pa.h:252
+#, fuzzy
+msgid "Do not put jumps in call delay slots"
+msgstr "OYA Gushyira in Gutinda Siloti"
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "Kwohereza"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "OYA Kwohereza"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr ""
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "OYA Gukoresha"
+
+#: config/pa/pa.h:262
+#, fuzzy
+msgid "Assume code will be assembled by GAS"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pa/pa.h:264
+#, fuzzy
+msgid "Do not assume code will be assembled by GAS"
+msgstr "OYA ITEGEKONGENGA ku"
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "OYA Gukoresha Bihindagurika Akadomo"
+
+#: config/pa/pa.h:270
+#, fuzzy
+msgid "Emit long load/store sequences"
+msgstr "Ibirimo"
+
+#: config/pa/pa.h:272
+#, fuzzy
+msgid "Do not emit long load/store sequences"
+msgstr "OYA Ibirimo"
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "Byihuta BUZIGUYE Amahamagara:"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr "OYA Byihuta BUZIGUYE Amahamagara:"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "ITEGEKONGENGA kugirango Hindura"
+
+#: config/pa/pa.h:280
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "OYA ITEGEKONGENGA kugirango Hindura"
+
+#: config/pa/pa.h:282
+#, fuzzy
+msgid "Always generate long calls"
+msgstr "Amahamagara:"
+
+#: config/pa/pa.h:284
+#, fuzzy
+msgid "Generate long calls only when needed"
+msgstr "Amahamagara: Ryari:"
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr ""
+
+#: config/pa/pa.h:312
+#, fuzzy
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr "01. 1na2. 0. 2.."
+
+#: config/pa/pa64-hpux.h:29
+#, fuzzy
+msgid "Assume code will be linked by GNU ld"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pa/pa64-hpux.h:31
+#, fuzzy
+msgid "Assume code will be linked by HP ld"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/pdp11/pdp11.h:57
+#, fuzzy
+msgid "Do not use hardware floating point"
+msgstr "OYA Gukoresha Bihindagurika Akadomo"
+
+#. return float result in ac0
+#: config/pdp11/pdp11.h:59
+#, fuzzy
+msgid "Return floating point results in ac0"
+msgstr "Bihindagurika Akadomo Ibisubizo ku in"
+
+#: config/pdp11/pdp11.h:60
+#, fuzzy
+msgid "Return floating point results in memory"
+msgstr "Bihindagurika Akadomo Ibisubizo ku in Ububiko"
+
+#. is 11/40
+#: config/pdp11/pdp11.h:62
+#, fuzzy
+msgid "Generate code for an 11/40"
+msgstr "ITEGEKONGENGA kugirango"
+
+#. is 11/45
+#: config/pdp11/pdp11.h:65
+#, fuzzy
+msgid "Generate code for an 11/45"
+msgstr "ITEGEKONGENGA kugirango"
+
+#. is 11/10
+#: config/pdp11/pdp11.h:68
+#, fuzzy
+msgid "Generate code for an 11/10"
+msgstr "ITEGEKONGENGA kugirango 10"
+
+#. use movstrhi for bcopy
+#. use 32 bit for int
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
+#, fuzzy
+msgid "Use 32 bit int"
+msgstr "INT"
+
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
+#, fuzzy
+msgid "Use 16 bit int"
+msgstr "INT"
+
+#. use 32 bit for float
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
+#, fuzzy
+msgid "Use 32 bit float"
+msgstr "Kureremba"
+
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
+#, fuzzy
+msgid "Use 64 bit float"
+msgstr "Kureremba"
+
+#. allow abshi pattern? - can trigger "optimizations" which make code SLOW!
+#. is branching expensive - on a PDP, it's actually really cheap
+#. this is just to play around and check what code gcc generates
+#. split instruction and data memory?
+#: config/pdp11/pdp11.h:90
+#, fuzzy
+msgid "Target has split I&D"
+msgstr "Gutandukanya"
+
+#: config/pdp11/pdp11.h:91
+#, fuzzy
+msgid "Target does not have split I&D"
+msgstr "OYA Gutandukanya"
+
+#. UNIX assembler syntax?
+#: config/pdp11/pdp11.h:93
+msgid "Use UNIX assembler syntax"
+msgstr ""
+
+#: config/pdp11/pdp11.h:94
+msgid "Use DEC assembler syntax"
+msgstr ""
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
+#, fuzzy, c-format
+msgid "invalid %%S value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:726 config/romp/romp.c:733
+#, fuzzy, c-format
+msgid "invalid %%b value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:773 config/romp/romp.c:784
+#, fuzzy, c-format
+msgid "invalid %%z value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:792 config/romp/romp.c:800
+#, fuzzy, c-format
+msgid "invalid %%Z value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
+#, fuzzy, c-format
+msgid "invalid %%k value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/romp/romp.c:908 config/romp/romp.c:951
+#, fuzzy, c-format
+msgid "invalid %%j value"
+msgstr "Agaciro siko"
+
+#. Perform any needed actions needed for a function that is receiving a
+#. variable number of arguments.
+#.
+#. CUM is as above.
+#.
+#. MODE and TYPE are the mode and type of the current parameter.
+#.
+#. PRETEND_SIZE is a variable that should be set to the amount of stack
+#. that must be pushed by the prolog to pretend that our caller pushed
+#. it.
+#.
+#. Normally, this macro will push all remaining incoming registers on the
+#. stack and set PRETEND_SIZE to the length of the registers pushed.
+#: config/romp/romp.h:648
+#, fuzzy
+msgid "can't have varargs with -mfp-arg-in-fp-regs"
+msgstr "Na: in"
+
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr ""
+
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "Ibuze Gufungura"
+
+#: config/rs6000/rs6000-c.c:60
+#, fuzzy
+msgid "missing number"
+msgstr "Ibuze Umubare"
+
+#: config/rs6000/rs6000-c.c:62
+#, fuzzy
+msgid "missing close paren"
+msgstr "Ibuze Gufunga"
+
+#: config/rs6000/rs6000-c.c:65
+#, fuzzy
+msgid "number must be 0 or 1"
+msgstr "Umubare 0 Cyangwa 1."
+
+#: config/rs6000/rs6000-c.c:68
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/rs6000/rs6000.c:592
+#, fuzzy
+msgid "-mmultiple is not supported on little endian systems"
+msgstr "-ni OYA ku"
+
+#: config/rs6000/rs6000.c:599
+#, fuzzy
+msgid "-mstring is not supported on little endian systems"
+msgstr "-ni OYA ku"
+
+#: config/rs6000/rs6000.c:623
+#, fuzzy, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr "Kitazwi Hindura"
+
+#: config/rs6000/rs6000.c:635
+#, fuzzy, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr "Kitazwi Cyangwa"
+
+#: config/rs6000/rs6000.c:646
+#, fuzzy, c-format
+msgid "Unknown switch -mlong-double-%s"
+msgstr "Hindura MAHARAKUBIRI"
+
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "Kitazwi Ihitamo"
+
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "Kitazwi Ihitamo"
+
+#: config/rs6000/rs6000.c:772
+#, fuzzy, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "Kitazwi"
+
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "1. a 5"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "2. a 5 Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:4356
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "1. Bya a"
+
+#: config/rs6000/rs6000.c:4410
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "1. Bya ni Inyuma Bya Urutonde"
+
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "3. a 4. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:4666
+#, fuzzy, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "Kuri a 2. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "Kuri a 2. Bitashizweho umukono"
+
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "1. Bya a"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "1. Bya ni Inyuma Bya Urutonde"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7511
+#, fuzzy, c-format
+msgid "invalid %%f value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7520
+#, fuzzy, c-format
+msgid "invalid %%F value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7529
+#, fuzzy, c-format
+msgid "invalid %%G value"
+msgstr "Agaciro siko"
+
+#: config/rs6000/rs6000.c:7564
+#, fuzzy, c-format
+msgid "invalid %%j code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+#: config/rs6000/rs6000.c:7574
+#, fuzzy, c-format
+msgid "invalid %%J code"
+msgstr "Sibyo ITEGEKONGENGA"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7604
+#, fuzzy, c-format
+msgid "invalid %%K value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7671
+#, fuzzy, c-format
+msgid "invalid %%O value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7793
+#, fuzzy, c-format
+msgid "invalid %%T value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7803
+#, fuzzy, c-format
+msgid "invalid %%u value"
+msgstr "Agaciro siko"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_VALID_DEFERROR.text
+#: config/rs6000/rs6000.c:7812
+#, fuzzy, c-format
+msgid "invalid %%v value"
+msgstr "Agaciro siko"
+
+#: config/rs6000/rs6000.c:12242
+#, fuzzy
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "Oya Bya ITEGEKONGENGA kugirango iyi"
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+#, fuzzy
+msgid "Always pass floating-point arguments in memory"
+msgstr "Bihindagurika Akadomo ingingo in Ububiko"
+
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+#, fuzzy
+msgid "Don't always pass floating-point arguments in memory"
+msgstr "Buri gihe Bihindagurika Akadomo ingingo in Ububiko"
+
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+#, fuzzy
+msgid "Support message passing with the Parallel Environment"
+msgstr "Ubutumwa Na: i"
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+#, fuzzy
+msgid "Compile for 64-bit pointers"
+msgstr "kugirango"
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+#, fuzzy
+msgid "Compile for 32-bit pointers"
+msgstr "kugirango"
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+#, fuzzy
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+#, fuzzy
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr "-Bikora"
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+#, fuzzy
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr "-Bya ngombwa Na: Kwohereza OYA"
+
+#. Run-time compilation parameters selecting different hardware subsets.
+#.
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/rs6000/rs6000.h:240
+#, fuzzy
+msgid "Use POWER instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:243
+#, fuzzy
+msgid "Use POWER2 instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:245
+#, fuzzy
+msgid "Do not use POWER2 instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:248
+#, fuzzy
+msgid "Do not use POWER instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:250
+#, fuzzy
+msgid "Use PowerPC instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:253
+#, fuzzy
+msgid "Do not use PowerPC instruction set"
+msgstr "OYA Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:255
+#, fuzzy
+msgid "Use PowerPC General Purpose group optional instructions"
+msgstr "Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:257
+#, fuzzy
+msgid "Don't use PowerPC General Purpose group optional instructions"
+msgstr "Gukoresha Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:259
+#, fuzzy
+msgid "Use PowerPC Graphics group optional instructions"
+msgstr "Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:261
+#, fuzzy
+msgid "Don't use PowerPC Graphics group optional instructions"
+msgstr "Gukoresha Itsinda Bitari ngombwa Amabwiriza"
+
+#: config/rs6000/rs6000.h:263
+#, fuzzy
+msgid "Use PowerPC-64 instruction set"
+msgstr "Gushyiraho"
+
+#: config/rs6000/rs6000.h:265
+#, fuzzy
+msgid "Don't use PowerPC-64 instruction set"
+msgstr "Gukoresha Gushyiraho"
+
+#: config/rs6000/rs6000.h:267
+#, fuzzy
+msgid "Use AltiVec instructions"
+msgstr "Amabwiriza"
+
+#: config/rs6000/rs6000.h:269
+#, fuzzy
+msgid "Don't use AltiVec instructions"
+msgstr "Gukoresha Amabwiriza"
+
+#: config/rs6000/rs6000.h:271
+#, fuzzy
+msgid "Use new mnemonics for PowerPC architecture"
+msgstr "Gishya kugirango"
+
+#: config/rs6000/rs6000.h:273
+#, fuzzy
+msgid "Use old mnemonics for PowerPC architecture"
+msgstr "ki/ bishaje kugirango"
+
+#: config/rs6000/rs6000.h:276
+#, fuzzy
+msgid "Put everything in the regular TOC"
+msgstr "in i Ibisanzwe"
+
+#: config/rs6000/rs6000.h:278
+#, fuzzy
+msgid "Place floating point constants in TOC"
+msgstr "Bihindagurika Akadomo in"
+
+#: config/rs6000/rs6000.h:280
+#, fuzzy
+msgid "Don't place floating point constants in TOC"
+msgstr "Bihindagurika Akadomo in"
+
+#: config/rs6000/rs6000.h:282
+#, fuzzy
+msgid "Place symbol+offset constants in TOC"
+msgstr "IKIMENYETSO Nta- boneza in"
+
+#: config/rs6000/rs6000.h:284
+#, fuzzy
+msgid "Don't place symbol+offset constants in TOC"
+msgstr "IKIMENYETSO Nta- boneza in"
+
+#: config/rs6000/rs6000.h:290
+#, fuzzy
+msgid "Place variable addresses in the regular TOC"
+msgstr "IMPINDURAGACIRO Amaderesi in i Ibisanzwe"
+
+#: config/rs6000/rs6000.h:296
+#, fuzzy
+msgid "Generate load/store multiple instructions"
+msgstr "Ibirimo Igikubo Amabwiriza"
+
+#: config/rs6000/rs6000.h:298
+#, fuzzy
+msgid "Do not generate load/store multiple instructions"
+msgstr "OYA Ibirimo Igikubo Amabwiriza"
+
+#: config/rs6000/rs6000.h:302
+#, fuzzy
+msgid "Generate string instructions for block moves"
+msgstr "Ikurikiranyanyuguti Amabwiriza kugirango Funga"
+
+#: config/rs6000/rs6000.h:304
+#, fuzzy
+msgid "Do not generate string instructions for block moves"
+msgstr "OYA Ikurikiranyanyuguti Amabwiriza kugirango Funga"
+
+#: config/rs6000/rs6000.h:308
+#, fuzzy
+msgid "Generate load/store with update instructions"
+msgstr "Ibirimo Na: Kuvugurura Amabwiriza"
+
+#: config/rs6000/rs6000.h:310
+#, fuzzy
+msgid "Do not generate load/store with update instructions"
+msgstr "OYA Ibirimo Na: Kuvugurura Amabwiriza"
+
+#: config/rs6000/rs6000.h:318
+#, fuzzy
+msgid "Don't schedule the start and end of the procedure"
+msgstr "Igenabihe i Gutangira Na Impera Bya i"
+
+#: config/rs6000/rs6000.h:324
+#, fuzzy
+msgid "Return all structures in memory (AIX default)"
+msgstr "Byose in Ububiko Mburabuzi"
+
+#: config/rs6000/rs6000.h:326
+#, fuzzy
+msgid "Return small structures in registers (SVR4 default)"
+msgstr "Gitoya in Mburabuzi"
+
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
+#, fuzzy
+msgid "Use features of and schedule code for given CPU"
+msgstr "Ibiranga Bya Na Igenabihe ITEGEKONGENGA kugirango"
+
+#: config/rs6000/rs6000.h:394
+#, fuzzy
+msgid "Enable debug output"
+msgstr "Kosora amakosa Ibisohoka"
+
+#: config/rs6000/rs6000.h:396
+#, fuzzy
+msgid "Select full, part, or no traceback table"
+msgstr "Cyangwa Oya imbonerahamwe#"
+
+#: config/rs6000/rs6000.h:397
+#, fuzzy
+msgid "Specify ABI to use"
+msgstr "Kuri Gukoresha"
+
+#: config/rs6000/rs6000.h:399
+#, fuzzy
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "Ingano Bya MAHARAKUBIRI Cyangwa"
+
+#: config/rs6000/rs6000.h:401
+#, fuzzy
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr "Yego Oya NIBA Amabwiriza"
+
+#: config/rs6000/rs6000.h:403
+#, fuzzy
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr "Yego Oya NIBA Amabwiriza kugirango"
+
+#: config/rs6000/rs6000.h:405
+#, fuzzy
+msgid "Avoid all range limits on call instructions"
+msgstr "Byose Urutonde Imbibi ku Amabwiriza"
+
+#. Definitions for __builtin_return_address and __builtin_frame_address.
+#. __builtin_return_address (0) should give link register (65), enable
+#. this.
+#. This should be uncommented, so that the link register is used, but
+#. currently this would result in unmatched insns and spilling fixed
+#. registers so we'll leave it for another day. When these problems are
+#. taken care of one additional fetch will be necessary in RETURN_ADDR_RTX.
+#. (mrs)
+#. #define RETURN_ADDR_IN_PREVIOUS_FRAME
+#. Number of bytes into the frame return addresses can be found. See
+#. rs6000_stack_info in rs6000.c for more information on how the different
+#. abi's store the return address.
+#: config/rs6000/rs6000.h:1884
+#, fuzzy
+msgid "RETURN_ADDRESS_OFFSET not supported"
+msgstr "OYA"
+
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
+msgstr ""
+
+#: config/rs6000/sysv4.h:88
+#, fuzzy
+msgid "Select method for sdata handling"
+msgstr "Uburyo kugirango"
+
+#: config/rs6000/sysv4.h:103
+#, fuzzy
+msgid "Align to the base type of the bit-field"
+msgstr "Kuri i SHINGIRO Ubwoko Bya i Umwanya"
+
+#: config/rs6000/sysv4.h:105
+#, fuzzy
+msgid "Don't align to the base type of the bit-field"
+msgstr "Gutondeka Kuri i SHINGIRO Ubwoko Bya i Umwanya"
+
+#: config/rs6000/sysv4.h:107
+#, fuzzy
+msgid "Don't assume that unaligned accesses are handled by the system"
+msgstr "ku i Sisitemu"
+
+#: config/rs6000/sysv4.h:109
+#, fuzzy
+msgid "Assume that unaligned accesses are handled by the system"
+msgstr "ku i Sisitemu"
+
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+#, fuzzy
+msgid "Produce code relocatable at runtime"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+#, fuzzy
+msgid "Don't produce code relocatable at runtime"
+msgstr "ITEGEKONGENGA ku"
+
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+#, fuzzy
+msgid "Produce little endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+#, fuzzy
+msgid "Produce big endian code"
+msgstr "ITEGEKONGENGA"
+
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
+#, fuzzy
+msgid "no description yet"
+msgstr "Oya Isobanuramiterere"
+
+#: config/rs6000/sysv4.h:132
+msgid "Use EABI"
+msgstr ""
+
+#: config/rs6000/sysv4.h:133
+#, fuzzy
+msgid "Don't use EABI"
+msgstr "Gukoresha"
+
+#: config/rs6000/sysv4.h:136
+#, fuzzy
+msgid "Do not allow bit-fields to cross word boundaries"
+msgstr "OYA Kwemerera Imyanya Kuri Kwambukiranya ijambo"
+
+#: config/rs6000/sysv4.h:138
+#, fuzzy
+msgid "Use alternate register names"
+msgstr "Kwiyandikisha Amazina"
+
+#: config/rs6000/sysv4.h:140
+#, fuzzy
+msgid "Don't use alternate register names"
+msgstr "Gukoresha Kwiyandikisha Amazina"
+
+#: config/rs6000/sysv4.h:144
+#, fuzzy
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:146
+#, fuzzy
+msgid "Link with libads.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:148
+#, fuzzy
+msgid "Link with libyk.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:150
+#, fuzzy
+msgid "Link with libmvme.a, libc.a and crt0.o"
+msgstr "Na: a a Na o"
+
+#: config/rs6000/sysv4.h:152
+#, fuzzy
+msgid "Set the PPC_EMB bit in the ELF flags header"
+msgstr "i in i Amabendera Umutwempangano"
+
+#: config/rs6000/sysv4.h:154
+#, fuzzy
+msgid "Use the WindISS simulator"
+msgstr "i"
+
+#. Sometimes certain combinations of command options do not make sense
+#. on a particular target machine. You can define a macro
+#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
+#. defined, is executed once just after all the command options have
+#. been parsed.
+#.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control.
+#: config/rs6000/sysv4.h:214
+#, fuzzy, c-format
+msgid "bad value for -mcall-%s"
+msgstr "Agaciro kugirango"
+
+#: config/rs6000/sysv4.h:230
+#, fuzzy, c-format
+msgid "bad value for -msdata=%s"
+msgstr "Agaciro kugirango"
+
+#: config/rs6000/sysv4.h:247
+#, fuzzy, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:255
+#, fuzzy, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-F Na"
+
+#: config/rs6000/sysv4.h:264
+#, fuzzy, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:273
+#, fuzzy
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:279
+#, fuzzy, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:286
+#, fuzzy, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-Na"
+
+#: config/rs6000/sysv4.h:293
+msgid "-mcall-aixdesc must be big endian"
+msgstr ""
+
+#: config/s390/s390.c:3063
+#, fuzzy
+msgid "invalid UNSPEC as operand (1)"
+msgstr "Sibyo Nka 1."
+
+#: config/s390/s390.c:3123
+#, fuzzy
+msgid "invalid UNSPEC as operand (2)"
+msgstr "Sibyo Nka 2."
+
+#: config/s390/s390.c:3129
+#, fuzzy
+msgid "UNKNOWN in s390_output_symbolic_const !?"
+msgstr "in"
+
+#: config/s390/s390.c:3147
+#, fuzzy
+msgid "Cannot decompose address."
+msgstr "Aderesi"
+
+#: config/s390/s390.c:3308
+#, fuzzy
+msgid "UNKNOWN in print_operand !?"
+msgstr "in"
+
+#: config/s390/s390.c:4961
+#, fuzzy
+msgid "Total size of local variables exceeds architecture limit."
+msgstr "Ingano Bya Ibihinduka"
+
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr ""
+
+#: config/s390/s390.h:71
+#, fuzzy
+msgid "Don't set backchain (faster, but debug harder"
+msgstr "Gushyiraho Kosora amakosa"
+
+#: config/s390/s390.h:72
+#, fuzzy
+msgid "Use bras for executable < 64k"
+msgstr "kugirango"
+
+#: config/s390/s390.h:73
+#, fuzzy
+msgid "Don't use bras"
+msgstr "Gukoresha"
+
+#: config/s390/s390.h:74
+#, fuzzy
+msgid "Additional debug prints"
+msgstr "Kosora amakosa"
+
+#: config/s390/s390.h:75
+#, fuzzy
+msgid "Don't print additional debug prints"
+msgstr "Gucapa Kosora amakosa"
+
+#: config/s390/s390.h:76
+#, fuzzy
+msgid "64 bit mode"
+msgstr "Ubwoko"
+
+#: config/s390/s390.h:77
+#, fuzzy
+msgid "31 bit mode"
+msgstr "Ubwoko"
+
+#: config/s390/s390.h:78
+#, fuzzy
+msgid "mvcle use"
+msgstr "Gukoresha"
+
+#: config/s390/s390.h:79
+msgid "mvc&ex"
+msgstr ""
+
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "_OYA ku iyi"
+
+#: config/sh/sh.c:5687
+#, fuzzy
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "Ikiranga ni OYA Na:"
+
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr "`%s'Ikiranga Kuri Hagarikira aho Imimaro"
+
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, fuzzy, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr "`%s'Ikiranga OYA a Ikurikiranyanyuguti"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, fuzzy, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr "`%s'Ikiranga OYA Umubare wuzuye"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "ni OYA ku iyi Intego"
+
+#: config/sparc/sparc.c:329
+#, fuzzy, c-format
+msgid "%s is not supported by this configuration"
+msgstr "%sni OYA ku iyi Iboneza"
+
+#: config/sparc/sparc.c:336
+#, fuzzy
+msgid "-mlong-double-64 not allowed with -m64"
+msgstr "-MAHARAKUBIRI OYA Na:"
+
+#: config/sparc/sparc.c:361
+#, fuzzy
+msgid "-mcmodel= is not supported on 32 bit systems"
+msgstr "-ni OYA ku"
+
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, fuzzy, c-format
+msgid "invalid %%Y operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6417
+#, fuzzy, c-format
+msgid "invalid %%A operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6427
+#, fuzzy, c-format
+msgid "invalid %%B operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6466
+#, fuzzy, c-format
+msgid "invalid %%c operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6467
+#, fuzzy, c-format
+msgid "invalid %%C operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6488
+#, fuzzy, c-format
+msgid "invalid %%d operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6489
+#, fuzzy, c-format
+msgid "invalid %%D operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6505
+#, fuzzy, c-format
+msgid "invalid %%f operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "Sibyo"
+
+#: config/sparc/sparc.c:6573
+#, fuzzy
+msgid "long long constant not a valid immediate operand"
+msgstr "OYA a Byemewe"
+
+#: config/sparc/sparc.c:6576
+#, fuzzy
+msgid "floating point constant not a valid immediate operand"
+msgstr "Bihindagurika Akadomo OYA a Byemewe"
+
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr ""
+
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+#, fuzzy
+msgid "Generate code for big endian"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+#, fuzzy
+msgid "Generate code for little endian"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+#, fuzzy
+msgid "Use little-endian byte order for data"
+msgstr "Bayite Itondekanya kugirango Ibyatanzwe"
+
+#: config/sparc/sparc.h:532
+#, fuzzy
+msgid "Assume possible double misalignment"
+msgstr "MAHARAKUBIRI"
+
+#: config/sparc/sparc.h:534
+#, fuzzy
+msgid "Assume all doubles are aligned"
+msgstr "Byose"
+
+#: config/sparc/sparc.h:536
+#, fuzzy
+msgid "Pass -assert pure-text to linker"
+msgstr "Umwandiko Kuri"
+
+#: config/sparc/sparc.h:538
+#, fuzzy
+msgid "Do not pass -assert pure-text to linker"
+msgstr "OYA Umwandiko Kuri"
+
+#: config/sparc/sparc.h:540
+#, fuzzy
+msgid "Use flat register window model"
+msgstr "Kirambuye Kwiyandikisha Idirishya Urugero"
+
+#: config/sparc/sparc.h:542
+#, fuzzy
+msgid "Do not use flat register window model"
+msgstr "OYA Gukoresha Kirambuye Kwiyandikisha Idirishya Urugero"
+
+#: config/sparc/sparc.h:544
+msgid "Use ABI reserved registers"
+msgstr ""
+
+#: config/sparc/sparc.h:546
+#, fuzzy
+msgid "Do not use ABI reserved registers"
+msgstr "OYA Gukoresha"
+
+#: config/sparc/sparc.h:548
+#, fuzzy
+msgid "Use hardware quad fp instructions"
+msgstr "Amabwiriza"
+
+#: config/sparc/sparc.h:550
+#, fuzzy
+msgid "Do not use hardware quad fp instructions"
+msgstr "OYA Gukoresha Amabwiriza"
+
+#: config/sparc/sparc.h:552
+#, fuzzy
+msgid "Compile for v8plus ABI"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:554
+#, fuzzy
+msgid "Do not compile for v8plus ABI"
+msgstr "OYA Gukusanya kugirango"
+
+#: config/sparc/sparc.h:556
+msgid "Utilize Visual Instruction Set"
+msgstr ""
+
+#: config/sparc/sparc.h:558
+#, fuzzy
+msgid "Do not utilize Visual Instruction Set"
+msgstr "OYA"
+
+#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
+#: config/sparc/sparc.h:561
+#, fuzzy
+msgid "Optimize for Cypress processors"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:563
+#, fuzzy
+msgid "Optimize for SPARCLite processors"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:565
+#, fuzzy
+msgid "Optimize for F930 processors"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:567
+#, fuzzy
+msgid "Optimize for F934 processors"
+msgstr "kugirango"
+
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr ""
+
+#: config/sparc/sparc.h:571
+#, fuzzy
+msgid "Optimize for SuperSPARC processors"
+msgstr "kugirango"
+
+#. End of deprecated options.
+#: config/sparc/sparc.h:574
+msgid "Pointers are 64-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:576
+msgid "Pointers are 32-bit"
+msgstr ""
+
+#: config/sparc/sparc.h:578
+msgid "Use 32-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:580
+msgid "Use 64-bit ABI"
+msgstr ""
+
+#: config/sparc/sparc.h:582
+msgid "Use stack bias"
+msgstr ""
+
+#: config/sparc/sparc.h:584
+#, fuzzy
+msgid "Do not use stack bias"
+msgstr "OYA Gukoresha"
+
+#: config/sparc/sparc.h:586
+#, fuzzy
+msgid "Use structs on stronger alignment for double-word copies"
+msgstr "ku Itunganya kugirango MAHARAKUBIRI ijambo Amakopi"
+
+#: config/sparc/sparc.h:588
+#, fuzzy
+msgid "Do not use structs on stronger alignment for double-word copies"
+msgstr "OYA Gukoresha ku Itunganya kugirango MAHARAKUBIRI ijambo Amakopi"
+
+#: config/sparc/sparc.h:590
+#, fuzzy
+msgid "Optimize tail call instructions in assembler and linker"
+msgstr "Amabwiriza in Na"
+
+#: config/sparc/sparc.h:592
+#, fuzzy
+msgid "Do not optimize tail call instructions in assembler or linker"
+msgstr "OYA Kugeza ku ndunduro Amabwiriza in Cyangwa"
+
+#: config/sparc/sparc.h:637
+#, fuzzy
+msgid "Use given SPARC code model"
+msgstr "ITEGEKONGENGA Urugero"
+
+#: config/stormy16/stormy16.c:1192
+#, fuzzy
+msgid "cannot use va_start in interrupt function"
+msgstr "Gukoresha in Hagarikira aho Umumaro"
+
+#: config/stormy16/stormy16.c:1552
+#, fuzzy
+msgid "`B' operand is not constant"
+msgstr "`ni OYA"
+
+#: config/stormy16/stormy16.c:1558
+#, fuzzy
+msgid "`B' operand has multiple bits set"
+msgstr "`Igikubo Gushyiraho"
+
+#: config/stormy16/stormy16.c:1585
+#, fuzzy
+msgid "`o' operand is not constant"
+msgstr "`ni OYA"
+
+#: config/stormy16/stormy16.c:1600
+#, fuzzy
+msgid "xstormy16_print_operand: unknown code"
+msgstr "Kitazwi ITEGEKONGENGA"
+
+#: config/stormy16/stormy16.c:1650
+#, fuzzy, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr "Hindura Inyandiko Bya Ingano Ibyinjijwe Binini"
+
+#: config/v850/v850-c.c:67
+#, fuzzy
+msgid "#pragma GHS endXXXX found without previous startXXX"
+msgstr "#Byabonetse Ibanjirije"
+
+#: config/v850/v850-c.c:69
+#, fuzzy
+msgid "#pragma GHS endXXX does not match previous startXXX"
+msgstr "#OYA BIHUYE Ibanjirije"
+
+#: config/v850/v850-c.c:94
+#, fuzzy
+msgid "cannot set interrupt attribute: no current function"
+msgstr "Gushyiraho Hagarikira aho Ikiranga Oya KIGEZWEHO Umumaro"
+
+#: config/v850/v850-c.c:102
+#, fuzzy
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr "Gushyiraho Hagarikira aho Ikiranga Oya Ikiranga"
+
+#: config/v850/v850-c.c:148
+#, fuzzy
+msgid "junk at end of #pragma ghs section"
+msgstr "Umwanda ku Impera Bya Icyiciro"
+
+#: config/v850/v850-c.c:165
+#, fuzzy, c-format
+msgid "unrecognized section name \"%s\""
+msgstr "Icyiciro Izina:"
+
+#: config/v850/v850-c.c:180
+#, fuzzy
+msgid "malformed #pragma ghs section"
+msgstr "Icyiciro"
+
+#: config/v850/v850-c.c:200
+#, fuzzy
+msgid "junk at end of #pragma ghs interrupt"
+msgstr "Umwanda ku Impera Bya Hagarikira aho"
+
+#: config/v850/v850-c.c:212
+#, fuzzy
+msgid "junk at end of #pragma ghs starttda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:224
+#, fuzzy
+msgid "junk at end of #pragma ghs startsda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:236
+#, fuzzy
+msgid "junk at end of #pragma ghs startzda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:248
+#, fuzzy
+msgid "junk at end of #pragma ghs endtda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:260
+#, fuzzy
+msgid "junk at end of #pragma ghs endsda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850-c.c:272
+#, fuzzy
+msgid "junk at end of #pragma ghs endzda"
+msgstr "Umwanda ku Impera Bya"
+
+#: config/v850/v850.c:129
+#, fuzzy, c-format
+msgid "%s=%s is not numeric"
+msgstr "%s=%sni OYA Bikurikije umubare"
+
+#: config/v850/v850.c:136
+#, fuzzy, c-format
+msgid "%s=%s is too large"
+msgstr "%s=%sni Binini"
+
+#: config/v850/v850.c:302
+#, fuzzy
+msgid "const_double_split got a bad insn:"
+msgstr "a"
+
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr ""
+
+#: config/v850/v850.c:2217
+#, fuzzy
+msgid "a data area attribute cannot be specified for local variables"
+msgstr "a Ibyatanzwe Ubuso Ikiranga kugirango Ibihinduka"
+
+#: config/v850/v850.c:2228
+#, fuzzy, c-format
+msgid "data area of '%s' conflicts with previous declaration"
+msgstr "Ibyatanzwe Ubuso Bya Na: Ibanjirije"
+
+#: config/v850/v850.c:2447
+#, c-format
+msgid "bogus JR construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
+#, fuzzy, c-format
+msgid "bad amount of stack space removal: %d"
+msgstr "Igiteranyo Bya Umwanya"
+
+#: config/v850/v850.c:2646
+#, c-format
+msgid "bogus JARL construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3048
+#, fuzzy, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr "Umwanya Kuri Bya"
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3246
+#, fuzzy, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "Umwanya Kuri"
+
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/v850/v850.h:158
+msgid "Support Green Hills ABI"
+msgstr ""
+
+#: config/v850/v850.h:161
+#, fuzzy
+msgid "Prohibit PC relative function calls"
+msgstr "Bifitanye isano Umumaro Amahamagara:"
+
+#: config/v850/v850.h:164
+#, fuzzy
+msgid "Reuse r30 on a per function basis"
+msgstr "ku a Umumaro Ishingiro"
+
+#: config/v850/v850.h:167
+#, fuzzy
+msgid "Use stubs for function prologues"
+msgstr "kugirango Umumaro"
+
+#: config/v850/v850.h:170
+#, fuzzy
+msgid "Same as: -mep -mprolog-function"
+msgstr "Nka Umumaro"
+
+#: config/v850/v850.h:171
+msgid "Enable backend debugging"
+msgstr ""
+
+#: config/v850/v850.h:173
+#, fuzzy
+msgid "Compile for the v850 processor"
+msgstr "kugirango i"
+
+#: config/v850/v850.h:175
+#, fuzzy
+msgid "Compile for v850e processor"
+msgstr "kugirango"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+#, fuzzy
+msgid "Enable the use of the short load instructions"
+msgstr "i Gukoresha Bya i Ibirimo Amabwiriza"
+
+#: config/v850/v850.h:180
+#, fuzzy
+msgid "Do not use the callt instruction"
+msgstr "OYA Gukoresha i"
+
+#: config/v850/v850.h:187
+#, fuzzy
+msgid "Do not use registers r2 and r5"
+msgstr "OYA Gukoresha Na"
+
+#: config/v850/v850.h:189
+#, fuzzy
+msgid "Enforce strict alignment"
+msgstr "Itunganya"
+
+#: config/v850/v850.h:192
+#, fuzzy
+msgid "Use 4 byte entries in switch tables"
+msgstr "4. Bayite Ibyinjijwe in Hindura Imbonerahamwe"
+
+#: config/v850/v850.h:218
+#, fuzzy
+msgid "Set the max size of data eligible for the TDA area"
+msgstr "i KININI Ingano Bya Ibyatanzwe kugirango i Ubuso"
+
+#: config/v850/v850.h:221
+#, fuzzy
+msgid "Set the max size of data eligible for the SDA area"
+msgstr "i KININI Ingano Bya Ibyatanzwe kugirango i Ubuso"
+
+#: config/v850/v850.h:224
+#, fuzzy
+msgid "Set the max size of data eligible for the ZDA area"
+msgstr "i KININI Ingano Bya Ibyatanzwe kugirango i Ubuso"
+
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+#, fuzzy
+msgid "bad test"
+msgstr "Igerageza"
+
+#: config/xtensa/xtensa.c:1824
+#, fuzzy
+msgid "boolean registers required for the floating-point option"
+msgstr "Icyungo Bya ngombwa kugirango i Bihindagurika Akadomo Ihitamo"
+
+#: config/xtensa/xtensa.c:1991
+#, fuzzy
+msgid "invalid mask"
+msgstr "Sibyo"
+
+#: config/xtensa/xtensa.c:2038
+#, fuzzy
+msgid "invalid address"
+msgstr "Sibyo Aderesi"
+
+#: config/xtensa/xtensa.c:2063
+#, fuzzy
+msgid "no register in address"
+msgstr "Oya Kwiyandikisha in Aderesi"
+
+#: config/xtensa/xtensa.c:2071
+#, fuzzy
+msgid "address offset not a constant"
+msgstr "Aderesi Nta- boneza OYA a"
+
+#: config/xtensa/xtensa.c:2794
+#, fuzzy
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "Itatangijwe Ibihinduka in a Icyiciro"
+
+#: config/xtensa/xtensa.h:114
+#, fuzzy
+msgid "Use the Xtensa code density option"
+msgstr "i ITEGEKONGENGA Ihitamo"
+
+#: config/xtensa/xtensa.h:116
+#, fuzzy
+msgid "Do not use the Xtensa code density option"
+msgstr "OYA Gukoresha i ITEGEKONGENGA Ihitamo"
+
+#: config/xtensa/xtensa.h:118
+#, fuzzy
+msgid "Use the Xtensa MAC16 option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:120
+#, fuzzy
+msgid "Do not use the Xtensa MAC16 option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#: config/xtensa/xtensa.h:122
+#, fuzzy
+msgid "Use the Xtensa MUL16 option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:124
+#, fuzzy
+msgid "Do not use the Xtensa MUL16 option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#: config/xtensa/xtensa.h:126
+#, fuzzy
+msgid "Use the Xtensa MUL32 option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:128
+#, fuzzy
+msgid "Do not use the Xtensa MUL32 option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+#, fuzzy
+msgid "Use the Xtensa NSA option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:136
+#, fuzzy
+msgid "Do not use the Xtensa NSA option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#: config/xtensa/xtensa.h:138
+#, fuzzy
+msgid "Use the Xtensa MIN/MAX option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:140
+#, fuzzy
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#: config/xtensa/xtensa.h:142
+#, fuzzy
+msgid "Use the Xtensa SEXT option"
+msgstr "i Ihitamo"
+
+#: config/xtensa/xtensa.h:144
+#, fuzzy
+msgid "Do not use the Xtensa SEXT option"
+msgstr "OYA Gukoresha i Ihitamo"
+
+#: config/xtensa/xtensa.h:146
+#, fuzzy
+msgid "Use the Xtensa boolean register option"
+msgstr "i Icyungo Kwiyandikisha Ihitamo"
+
+#: config/xtensa/xtensa.h:148
+#, fuzzy
+msgid "Do not use the Xtensa boolean register option"
+msgstr "OYA Gukoresha i Icyungo Kwiyandikisha Ihitamo"
+
+#: config/xtensa/xtensa.h:150
+#, fuzzy
+msgid "Use the Xtensa floating-point unit"
+msgstr "i Bihindagurika Akadomo Igice:"
+
+#: config/xtensa/xtensa.h:152
+#, fuzzy
+msgid "Do not use the Xtensa floating-point unit"
+msgstr "OYA Gukoresha i Bihindagurika Akadomo Igice:"
+
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+#, fuzzy
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Gukuba Kongeramo Na Gukuba Gukuramo Amabwiriza"
+
+#: config/xtensa/xtensa.h:172
+#, fuzzy
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+msgstr "Gukuba Kongeramo Na Gukuba Gukuramo Amabwiriza"
+
+#: config/xtensa/xtensa.h:174
+#, fuzzy
+msgid "Serialize volatile memory references with MEMW instructions"
+msgstr "Ububiko Indango Na: Amabwiriza"
+
+#: config/xtensa/xtensa.h:176
+#, fuzzy
+msgid "Do not serialize volatile memory references with MEMW instructions"
+msgstr "OYA Ububiko Indango Na: Amabwiriza"
+
+#: config/xtensa/xtensa.h:178
+#, fuzzy
+msgid "Intersperse literal pools with code in the text section"
+msgstr "Na: ITEGEKONGENGA in i Umwandiko Icyiciro"
+
+#: config/xtensa/xtensa.h:180
+#, fuzzy
+msgid "Put literal pools in a separate literal section"
+msgstr "in a Icyiciro"
+
+#: config/xtensa/xtensa.h:182
+#, fuzzy
+msgid "Automatically align branch targets to reduce branch penalties"
+msgstr "Gutondeka Kuri"
+
+#: config/xtensa/xtensa.h:184
+#, fuzzy
+msgid "Do not automatically align branch targets"
+msgstr "OYA ku buryo bwikora Gutondeka"
+
+#: config/xtensa/xtensa.h:186
+#, fuzzy
+msgid "Use indirect CALLXn instructions for large programs"
+msgstr "BUZIGUYE Amabwiriza kugirango Binini Porogaramu"
+
+#: config/xtensa/xtensa.h:188
+#, fuzzy
+msgid "Use direct CALLn instructions for fast calls"
+msgstr "Amabwiriza kugirango Byihuta Amahamagara:"
+
+#: ada/misc.c:233
+#, fuzzy
+msgid "`-gnat' misspelled as `-gant'"
+msgstr "`-Nka"
+
+#: cp/call.c:261 cp/init.c:1594
+#, fuzzy
+msgid "qualified type `%T' does not match destructor name `~%T'"
+msgstr "Ubwoko OYA BIHUYE Izina:"
+
+#: cp/call.c:270
+#, fuzzy
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+msgstr "Ubwoko Bya OYA BIHUYE Ubwoko Ubwoko"
+
+#: cp/call.c:279
+#, fuzzy
+msgid "`%D' is a namespace"
+msgstr "`%D'ni a"
+
+#: cp/call.c:287
+#, fuzzy
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+msgstr "SHINGIRO Igikoresho Bya Uburyo ni Bya Ubwoko"
+
+#: cp/call.c:369
+#, fuzzy
+msgid "unable to call pointer to member function here"
+msgstr "Kuri Mweretsi Kuri Umumaro"
+
+#: cp/call.c:518
+#, fuzzy
+msgid "destructors take no parameters"
+msgstr "Oya Ibigenga"
+
+#: cp/call.c:522
+#, fuzzy
+msgid "destructor name `~%T' does not match type `%T' of expression"
+msgstr "Izina: OYA BIHUYE Ubwoko Bya imvugo"
+
+#: cp/call.c:543 cp/call.c:5000
+#, fuzzy
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "Kubaza... kugirango in ni Bya Ubwoko"
+
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "Kubaza... kugirango ni"
+
+#: cp/call.c:2537
+#, fuzzy
+msgid "%s %D(%T, %T, %T) <built-in>"
+msgstr "%s%D(%T,%T,%T)<in"
+
+#: cp/call.c:2542
+#, fuzzy
+msgid "%s %D(%T, %T) <built-in>"
+msgstr "%s%D(%T,%T)<in"
+
+#: cp/call.c:2546
+#, fuzzy
+msgid "%s %D(%T) <built-in>"
+msgstr "%s%D(%T)<in"
+
+#: cp/call.c:2550
+#, fuzzy
+msgid "%s %T <conversion>"
+msgstr "%s%T<Ihindurangero"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: cp/call.c:2552
+#, fuzzy
+msgid "%s %+#D%s"
+msgstr "%s%+#D%s"
+
+#: cp/call.c:2726
+#, fuzzy
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr "Ihindurangero Bivuye Kuri ni"
+
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "`%T'ni OYA a ishuri Ubwoko"
+
+#: cp/call.c:2811
+#, fuzzy
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "Ubwoko Kuri Izina: a Ingano:"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "'%D'Oya"
+
+#: cp/call.c:2933
+#, fuzzy
+msgid "no matching function for call to `%D(%A)'"
+msgstr "Oya Umumaro kugirango Kuri"
+
+#: cp/call.c:2944 cp/call.c:5087
+#, fuzzy
+msgid "call of overloaded `%D(%A)' is ambiguous"
+msgstr "Bya ni"
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
+#, fuzzy, c-format
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+msgstr "Mweretsi Kuri Umumaro Igikoresho ikoresha Cyangwa"
+
+#: cp/call.c:3036
+#, fuzzy
+msgid "no match for call to `(%T) (%A)'"
+msgstr "Oya BIHUYE kugirango Kuri"
+
+#: cp/call.c:3046
+#, fuzzy
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr "Bya ni"
+
+#: cp/call.c:3081
+#, fuzzy, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr "%sin."
+
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3091
+#, fuzzy, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3096
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%skugirango Mukoresha in"
+
+#: cp/call.c:3191
+#, fuzzy
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "C i Hagati Ijambo Bya a imvugo"
+
+#: cp/call.c:3250
+#, fuzzy, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
+msgstr "`%E'Ubwoko Na ni OYA a imvugo"
+
+#: cp/call.c:3283 cp/call.c:3475
+#, fuzzy
+msgid "operands to ?: have different types"
+msgstr "Kuri"
+
+#: cp/call.c:3428
+#, fuzzy
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr "in imvugo"
+
+#: cp/call.c:3435
+#, fuzzy
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "Na Ubwoko in imvugo"
+
+#: cp/call.c:3516
+#, fuzzy
+msgid "`%D' must be declared before use"
+msgstr "`%D'Mbere Gukoresha"
+
+#: cp/call.c:3706
+#, fuzzy
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+msgstr "Oya INT kugirango Imbanziriza Mukoresha"
+
+#: cp/call.c:3753
+#, fuzzy
+msgid "using synthesized `%#D' for copy assignment"
+msgstr "ikoresha kugirango Gukoporora Igenera"
+
+#: cp/call.c:3755
+#, fuzzy
+msgid " where cfront would use `%#D'"
+msgstr "Gukoresha"
+
+#: cp/call.c:3782
+#, fuzzy
+msgid "comparison between `%#T' and `%#T'"
+msgstr "hagati Na"
+
+#: cp/call.c:4021
+#, fuzzy
+msgid "no suitable `operator delete' for `%T'"
+msgstr "Oya Mukoresha kugirango"
+
+#: cp/call.c:4040
+#, fuzzy
+msgid "`%+#D' is private"
+msgstr "`%+#D'ni By'umwihariko"
+
+#: cp/call.c:4042
+#, fuzzy
+msgid "`%+#D' is protected"
+msgstr "`%+#D'ni Birinzwe"
+
+#: cp/call.c:4044
+#, fuzzy
+msgid "`%+#D' is inaccessible"
+msgstr "`%+#D'ni"
+
+#: cp/call.c:4045
+#, fuzzy
+msgid "within this context"
+msgstr "muri iyi Imvugiro"
+
+#: cp/call.c:4088
+#, fuzzy
+msgid "invalid conversion from `%T' to `%T'"
+msgstr "Sibyo Ihindurangero Bivuye Kuri"
+
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+#, fuzzy
+msgid " initializing argument %P of `%D'"
+msgstr "Gutangiza Bya"
+
+#: cp/call.c:4152 cp/call.c:4156
+#, fuzzy
+msgid " initializing argument %P of `%D' from result of `%D'"
+msgstr "Gutangiza Bya Bivuye Igisubizo Bya"
+
+#: cp/call.c:4162 cp/call.c:4165
+#, fuzzy
+msgid " initializing temporary from result of `%D'"
+msgstr "Gutangiza By'igihe gito Bivuye Igisubizo Bya"
+
+#. Undefined behavior [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.
+#: cp/call.c:4316
+#, fuzzy
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr "Ibintu Bya Ubwoko Gihinguranya Kureka ku"
+
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+#, fuzzy
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
+msgstr "Akira Ibintu Bya Ubwoko Gihinguranya"
+
+#: cp/call.c:4523
+#, fuzzy
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr "Nka Bya"
+
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "`%T'ni OYA SHINGIRO Bya"
+
+#: cp/call.c:4786
+#, fuzzy
+msgid "could not find class$ field in java interface type `%T'"
+msgstr "OYA Gushaka ishuri Umwanya in java Ubwoko"
+
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "Kuri Umumaro"
+
+#: cp/call.c:5076
+#, fuzzy
+msgid "no matching function for call to `%T::%D(%A)%#V'"
+msgstr "Oya Umumaro kugirango Kuri"
+
+#: cp/call.c:5106
+#, fuzzy
+msgid "cannot call member function `%D' without object"
+msgstr "Umumaro Igikoresho"
+
+#: cp/call.c:5704
+#, fuzzy
+msgid "passing `%T' chooses `%T' over `%T'"
+msgstr "KURI"
+
+#: cp/call.c:5706 cp/decl2.c:4154
+#, fuzzy
+msgid " in call to `%D'"
+msgstr "in Kuri"
+
+#: cp/call.c:5755
+#, fuzzy
+msgid "choosing `%D' over `%D'"
+msgstr "KURI"
+
+#: cp/call.c:5756
+#, fuzzy
+msgid " for conversion from `%T' to `%T'"
+msgstr "kugirango Ihindurangero Bivuye Kuri"
+
+#: cp/call.c:5758
+#, fuzzy
+msgid " because conversion sequence for the argument is better"
+msgstr "Ihindurangero kugirango i ni"
+
+#: cp/call.c:5879
+#, fuzzy
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr "C Na ATARIIGIHARWE i Ihindurangero kugirango i ni i Ihindurangero kugirango i"
+
+#: cp/call.c:5996
+#, fuzzy
+msgid "could not convert `%E' to `%T'"
+msgstr "OYA GUHINDURA Kuri"
+
+#: cp/call.c:6105
+#, fuzzy
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "Sibyo Bya Indango Bya Ubwoko Bivuye a By'igihe gito Bya Ubwoko"
+
+#: cp/call.c:6109
+#, fuzzy
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "Sibyo Bya Indango Bya Ubwoko Bivuye imvugo Bya Ubwoko"
+
+#: cp/class.c:287
+#, fuzzy
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+msgstr "GUHINDURA Bivuye SHINGIRO Kuri Ubwoko Biturutse Kitaboneka SHINGIRO"
+
+#: cp/class.c:992
+#, fuzzy
+msgid "`%#D' and `%#D' cannot be overloaded"
+msgstr "`%#D'Na"
+
+#: cp/class.c:1076
+#, fuzzy
+msgid "duplicate enum value `%D'"
+msgstr "Gusubiramo Agaciro"
+
+#: cp/class.c:1079
+#, fuzzy
+msgid "duplicate field `%D' (as enum and non-enum)"
+msgstr "Gusubiramo Umwanya Nka Na"
+
+#: cp/class.c:1086
+#, fuzzy
+msgid "duplicate nested type `%D'"
+msgstr "Gusubiramo Ubwoko"
+
+#: cp/class.c:1097
+#, fuzzy
+msgid "duplicate field `%D' (as type and non-type)"
+msgstr "Gusubiramo Umwanya Nka Ubwoko Na Ubwoko"
+
+#: cp/class.c:1101
+#, fuzzy
+msgid "duplicate member `%D'"
+msgstr "Gusubiramo"
+
+#: cp/class.c:1144
+#, fuzzy
+msgid "conflicting access specifications for method `%D', ignored"
+msgstr "kugirango Uburyo"
+
+#: cp/class.c:1146
+#, fuzzy, c-format
+msgid "conflicting access specifications for field `%s', ignored"
+msgstr "kugirango Umwanya"
+
+#: cp/class.c:1194
+#, fuzzy
+msgid "`%D' names constructor"
+msgstr "`%D'Amazina"
+
+#: cp/class.c:1199
+#, fuzzy
+msgid "`%D' invalid in `%T'"
+msgstr "`%D'Sibyo in"
+
+#: cp/class.c:1207
+#, fuzzy
+msgid "no members matching `%D' in `%#T'"
+msgstr "Oya in"
+
+#: cp/class.c:1239 cp/class.c:1247
+#, fuzzy
+msgid "`%D' invalid in `%#T'"
+msgstr "`%D'Sibyo in"
+
+#: cp/class.c:1240
+#, fuzzy
+msgid " because of local method `%#D' with same name"
+msgstr "Bya Uburyo Na: Izina:"
+
+#: cp/class.c:1248
+#, fuzzy
+msgid " because of local member `%#D' with same name"
+msgstr "Bya Na: Izina:"
+
+#: cp/class.c:1320
+#, fuzzy
+msgid "base class `%#T' has a non-virtual destructor"
+msgstr "SHINGIRO ishuri a Kitaboneka"
+
+#: cp/class.c:1340
+#, fuzzy
+msgid "base `%T' with only non-default constructor in class without a constructor"
+msgstr "SHINGIRO Na: Mburabuzi in ishuri a"
+
+#: cp/class.c:1912
+#, fuzzy
+msgid "all member functions in class `%T' are private"
+msgstr "Byose Imimaro in ishuri By'umwihariko"
+
+#: cp/class.c:1926
+#, fuzzy
+msgid "`%#T' only defines a private destructor and has no friends"
+msgstr "`%#T'a By'umwihariko Na Oya"
+
+#: cp/class.c:1969
+#, fuzzy
+msgid "`%#T' only defines private constructors and has no friends"
+msgstr "`%#T'By'umwihariko Na Oya"
+
+#: cp/class.c:2090 cp/class.c:5276
+#, fuzzy
+msgid "redefinition of `%#T'"
+msgstr "Bya"
+
+#: cp/class.c:2091
+#, fuzzy
+msgid "previous definition of `%#T'"
+msgstr "Ibanjirije Insobanuro Bya"
+
+#: cp/class.c:2365
+#, fuzzy
+msgid "no unique final overrider for `%D' in `%T'"
+msgstr "Oya Cyo nyine kugirango in"
+
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+#, fuzzy
+msgid "`%D' was hidden"
+msgstr "`%D'gihishwe"
+
+# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_BY.text
+#: cp/class.c:2713
+#, fuzzy
+msgid " by `%D'"
+msgstr "ku"
+
+#: cp/class.c:2755
+#, fuzzy
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+msgstr "C Na: Izina: Nka ishuri"
+
+#: cp/class.c:2760 cp/decl2.c:1331
+#, fuzzy
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+msgstr "`%#D'Sibyo Ihuza Ibyatanzwe"
+
+#: cp/class.c:2766 cp/decl2.c:1337
+#, fuzzy
+msgid "private member `%#D' in anonymous union"
+msgstr "By'umwihariko in Ihuza"
+
+#: cp/class.c:2769 cp/decl2.c:1339
+#, fuzzy
+msgid "protected member `%#D' in anonymous union"
+msgstr "Birinzwe in Ihuza"
+
+#: cp/class.c:2894
+#, fuzzy
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr "Imigaragarire kugirango ishuri Gicurasi OYA Na Gicurasi Guhindura>> in a Verisiyo Bya Kuri Kitaboneka"
+
+#: cp/class.c:2958
+#, fuzzy
+msgid "bit-field `%#D' with non-integral type"
+msgstr "Umwanya Na: Umubare Wuzuye Ubwoko"
+
+#: cp/class.c:2978
+#, fuzzy
+msgid "bit-field `%D' width not an integer constant"
+msgstr "Umwanya Ubugari OYA Umubare wuzuye"
+
+#: cp/class.c:2984
+#, fuzzy
+msgid "negative width in bit-field `%D'"
+msgstr "Ubugari in Umwanya"
+
+#: cp/class.c:2989
+#, fuzzy
+msgid "zero width for bit-field `%D'"
+msgstr "Zeru Ubugari kugirango Umwanya"
+
+#: cp/class.c:2995
+#, fuzzy
+msgid "width of `%D' exceeds its type"
+msgstr "Ubugari Bya Ubwoko"
+
+#: cp/class.c:3004
+#, fuzzy
+msgid "`%D' is too small to hold all values of `%#T'"
+msgstr "`%D'ni Gitoya Kuri Byose Uduciro Bya"
+
+#: cp/class.c:3088
+#, fuzzy
+msgid "member `%#D' with constructor not allowed in union"
+msgstr "Na: OYA in Ihuza"
+
+#: cp/class.c:3091
+#, fuzzy
+msgid "member `%#D' with destructor not allowed in union"
+msgstr "Na: OYA in Ihuza"
+
+#: cp/class.c:3094
+#, fuzzy
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr "Na: Gukoporora Igenera Mukoresha OYA in Ihuza"
+
+#: cp/class.c:3121
+#, fuzzy
+msgid "multiple fields in union `%T' initialized"
+msgstr "Igikubo Imyanya in Ihuza"
+
+#: cp/class.c:3234
+#, fuzzy
+msgid "field `%D' in local class cannot be static"
+msgstr "Umwanya in ishuri"
+
+#: cp/class.c:3240
+#, fuzzy
+msgid "field `%D' invalidly declared function type"
+msgstr "Umwanya Umumaro Ubwoko"
+
+#: cp/class.c:3247
+#, fuzzy
+msgid "field `%D' invalidly declared method type"
+msgstr "Umwanya Uburyo Ubwoko"
+
+#: cp/class.c:3253
+#, fuzzy
+msgid "field `%D' invalidly declared offset type"
+msgstr "Umwanya Nta- boneza Ubwoko"
+
+#. Unions cannot have static members.
+#: cp/class.c:3271
+#, fuzzy
+msgid "field `%D' declared static in union"
+msgstr "Umwanya in Ihuza"
+
+#: cp/class.c:3298
+#, fuzzy
+msgid "non-static reference `%#D' in class without a constructor"
+msgstr "Indango in ishuri a"
+
+#: cp/class.c:3333
+#, fuzzy
+msgid "non-static const member `%#D' in class without a constructor"
+msgstr "in ishuri a"
+
+#: cp/class.c:3349
+#, fuzzy
+msgid "field `%#D' with same name as class"
+msgstr "Umwanya Na: Izina: Nka ishuri"
+
+#: cp/class.c:3367
+#, fuzzy
+msgid "`%#T' has pointer data members"
+msgstr "`%#T'Mweretsi Ibyatanzwe"
+
+#: cp/class.c:3371
+#, fuzzy
+msgid " but does not override `%T(const %T&)'"
+msgstr "OYA"
+
+#: cp/class.c:3373
+#, fuzzy
+msgid " or `operator=(const %T&)'"
+msgstr "Cyangwa Mukoresha"
+
+#: cp/class.c:3376
+#, fuzzy
+msgid " but does not override `operator=(const %T&)'"
+msgstr "OYA Mukoresha"
+
+#: cp/class.c:3826
+#, fuzzy
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "Nta- boneza Bya ubusa SHINGIRO Gicurasi OYA Na in a Verisiyo Bya"
+
+#: cp/class.c:3935
+#, fuzzy
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr "ishuri ubusa in a Verisiyo Bya"
+
+#: cp/class.c:4025
+#, fuzzy
+msgid "initializer specified for non-virtual method `%D'"
+msgstr "kugirango Kitaboneka Uburyo"
+
+#: cp/class.c:4761
+#, fuzzy
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr "Nta- boneza Bya Kitaboneka SHINGIRO ni OYA Na Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#: cp/class.c:4861
+#, fuzzy
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "SHINGIRO in Kuri"
+
+#: cp/class.c:4874
+#, fuzzy
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "Kitaboneka SHINGIRO in Kuri"
+
+#: cp/class.c:5030
+#, fuzzy
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "Ingano Kuri Gicurasi OYA Na Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+#, fuzzy
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "i Nta- boneza Bya Gicurasi OYA Na Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#: cp/class.c:5079
+#, fuzzy
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr "Nta- boneza Bya ni OYA Na Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#: cp/class.c:5088
+#, fuzzy
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "`%D'Kirimo ubusa Inzego Gicurasi SHINGIRO Inzego Kuri ku in a Verisiyo Bya"
+
+#: cp/class.c:5147
+#, fuzzy
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr "Imigaragarire Bya Inzego Bivuye ubusa ishuri Gicurasi Guhindura>> in a Verisiyo Bya"
+
+#: cp/class.c:5432
+#, fuzzy
+msgid "`%#T' has virtual functions but non-virtual destructor"
+msgstr "`%#T'Kitaboneka Imimaro Kitaboneka"
+
+#: cp/class.c:5516
+#, fuzzy
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr "Kuri Kurangiza Inyuma Kuri Ibanjirije Amakosa"
+
+#: cp/class.c:5982
+#, fuzzy, c-format
+msgid "language string `\"%s\"' not recognized"
+msgstr "Ururimi Ikurikiranyanyuguti OYA"
+
+#: cp/class.c:6078
+#, fuzzy
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr "Umumaro ku Ihindurangero Kuri Ubwoko"
+
+#: cp/class.c:6203
+#, fuzzy
+msgid "no matches converting function `%D' to type `%#T'"
+msgstr "Oya Guhindura.... Umumaro Kuri Ubwoko"
+
+#: cp/class.c:6226
+#, fuzzy
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+msgstr "Guhindura.... Umumaro Kuri Ubwoko ni"
+
+#: cp/class.c:6252
+#, fuzzy
+msgid "assuming pointer to member `%D'"
+msgstr "Mweretsi Kuri"
+
+#: cp/class.c:6255
+#, fuzzy, c-format
+msgid "(a pointer to member can only be formed with `&%E')"
+msgstr "(a Mweretsi Kuri Na:"
+
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
+#, fuzzy
+msgid "not enough type information"
+msgstr "OYA Ubwoko Ibisobanuro"
+
+#: cp/class.c:6315
+#, fuzzy
+msgid "argument of type `%T' does not match `%T'"
+msgstr "Bya Ubwoko OYA BIHUYE"
+
+#: cp/class.c:6461
+#, fuzzy
+msgid "invalid operation on uninstantiated type"
+msgstr "Sibyo ku Ubwoko"
+
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+#, fuzzy
+msgid "declaration of `%#D'"
+msgstr "Bya"
+
+#: cp/class.c:6746
+#, fuzzy
+msgid "changes meaning of `%D' from `%+#D'"
+msgstr "Amahinduka Igisobanuro Bya Bivuye"
+
+#: cp/cvt.c:88
+#, fuzzy
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr "GUHINDURA Bivuye Ubwoko Kuri"
+
+#: cp/cvt.c:97
+#, fuzzy
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+msgstr "Ihindurangero Bya Bivuye Kuri ni"
+
+#: cp/cvt.c:126
+#, fuzzy
+msgid "converting from `%T' to `%T'"
+msgstr "Guhindura.... Bivuye Kuri"
+
+#: cp/cvt.c:203 cp/cvt.c:207
+#, fuzzy
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+msgstr "Mweretsi Kuri Bivuye Kuri ni Biturutse Kitaboneka SHINGIRO"
+
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+#, fuzzy
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr "GUHINDURA Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "Sibyo Ihindurangero Bivuye Kuri"
+
+#: cp/cvt.c:504
+#, fuzzy
+msgid "conversion from `%T' to `%T' discards qualifiers"
+msgstr "Ihindurangero Bivuye Kuri"
+
+#: cp/cvt.c:522
+#, fuzzy
+msgid "casting `%T' to `%T' does not dereference pointer"
+msgstr "Kuri OYA Mweretsi"
+
+#: cp/cvt.c:551
+#, fuzzy
+msgid "cannot convert type `%T' to type `%T'"
+msgstr "GUHINDURA Ubwoko Kuri Ubwoko"
+
+#: cp/cvt.c:683
+#, fuzzy
+msgid "conversion from `%#T' to `%#T'"
+msgstr "Ihindurangero Bivuye Kuri"
+
+#: cp/cvt.c:695
+#, fuzzy
+msgid "`%#T' used where a `%T' was expected"
+msgstr "`%#T'a Ikitezwe:"
+
+#: cp/cvt.c:712
+#, fuzzy
+msgid "the address of `%D', will always be `true'"
+msgstr "i Aderesi Bya Buri gihe"
+
+#: cp/cvt.c:732
+#, fuzzy
+msgid "`%#T' used where a floating point value was expected"
+msgstr "`%#T'a Bihindagurika Akadomo Agaciro Ikitezwe:"
+
+#: cp/cvt.c:779
+#, fuzzy
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr "Ihindurangero Bivuye Kuri Ubwoko"
+
+#: cp/cvt.c:865
+#, fuzzy
+msgid "object of incomplete type `%T' will not be accessed in %s"
+msgstr "Igikoresho Bya Ubwoko OYA birabonetse in"
+
+#: cp/cvt.c:868
+#, fuzzy
+msgid "object of type `%T' will not be accessed in %s"
+msgstr "Igikoresho Bya Ubwoko OYA birabonetse in"
+
+#: cp/cvt.c:884
+#, fuzzy
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+msgstr "Igikoresho Bya Ubwoko OYA birabonetse in"
+
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, fuzzy, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "%sAderesi Bya Umumaro"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
+#, fuzzy, c-format
+msgid "%s is a reference, not call, to function `%E'"
+msgstr "%sni a Indango OYA Kuri Umumaro"
+
+#: cp/cvt.c:1039
+#, fuzzy
+msgid "converting NULL to non-pointer type"
+msgstr "Guhindura.... Kuri Mweretsi Ubwoko"
+
+#: cp/cvt.c:1115
+#, fuzzy
+msgid "ambiguous default type conversion from `%T'"
+msgstr "Mburabuzi Ubwoko Ihindurangero Bivuye"
+
+#: cp/cvt.c:1117
+#, fuzzy
+msgid " candidate conversions include `%D' and `%D'"
+msgstr "Gushyiramo Na"
+
+#: cp/decl.c:736
+#, fuzzy, c-format
+msgid "push %s level %p line %d\n"
+msgstr "urwego Umurongo"
+
+#: cp/decl.c:770
+#, fuzzy, c-format
+msgid "pop %s level %p line %d\n"
+msgstr "urwego Umurongo"
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr ""
+
+#: cp/decl.c:808
+#, fuzzy, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr "urwego Umurongo"
+
+#: cp/decl.c:837
+#, fuzzy, c-format
+msgid "resume %s level %p line %d\n"
+msgstr "Gusubiramo urwego Umurongo"
+
+#: cp/decl.c:1255 cp/decl.c:3490
+#, fuzzy
+msgid "conflicts with previous declaration `%#D'"
+msgstr "Na: Ibanjirije"
+
+#: cp/decl.c:1467
+#, fuzzy
+msgid "label `%D' used but not defined"
+msgstr "Akarango OYA"
+
+#: cp/decl.c:1472
+#, fuzzy
+msgid "label `%D' defined but not used"
+msgstr "Akarango OYA"
+
+#: cp/decl.c:2489
+#, fuzzy
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
+msgstr "Irihimbano OYA"
+
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr ""
+
+#: cp/decl.c:3285 cp/decl.c:3700
+#, fuzzy
+msgid "previous declaration of `%D'"
+msgstr "Ibanjirije Bya"
+
+#: cp/decl.c:3366 cp/decl.c:3404
+#, fuzzy
+msgid "shadowing %s function `%#D'"
+msgstr "Ishyiraho ry'igicucu Umumaro"
+
+#: cp/decl.c:3375
+#, fuzzy
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr "Isomero Umumaro Nka Umumaro"
+
+#: cp/decl.c:3380
+#, fuzzy
+msgid "conflicts with built-in declaration `%#D'"
+msgstr "Na: in"
+
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+#, fuzzy
+msgid "new declaration `%#D'"
+msgstr "Gishya"
+
+#: cp/decl.c:3400
+#, fuzzy
+msgid "ambiguates built-in declaration `%#D'"
+msgstr "in"
+
+#: cp/decl.c:3464
+#, fuzzy
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr "`%#D'Nka Bya IKIMENYETSO"
+
+#: cp/decl.c:3467
+#, fuzzy
+msgid "previous declaration of `%#D'"
+msgstr "Ibanjirije Bya"
+
+#: cp/decl.c:3489
+#, fuzzy
+msgid "declaration of template `%#D'"
+msgstr "Bya Inyandikorugero"
+
+#: cp/decl.c:3505 cp/decl.c:3521
+#, fuzzy
+msgid "ambiguates old declaration `%#D'"
+msgstr "ki/ bishaje"
+
+#: cp/decl.c:3513
+#, fuzzy
+msgid "declaration of C function `%#D' conflicts with"
+msgstr "Bya C Umumaro Na:"
+
+#: cp/decl.c:3515
+#, fuzzy
+msgid "previous declaration `%#D' here"
+msgstr "Ibanjirije"
+
+#: cp/decl.c:3533
+#, fuzzy
+msgid "conflicting types for `%#D'"
+msgstr "kugirango"
+
+#: cp/decl.c:3534
+#, fuzzy
+msgid "previous declaration as `%#D'"
+msgstr "Ibanjirije Nka"
+
+#: cp/decl.c:3577
+msgid "`%#D' previously defined here"
+msgstr ""
+
+#: cp/decl.c:3578
+msgid "`%#D' previously declared here"
+msgstr ""
+
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+#, fuzzy
+msgid "prototype for `%#D'"
+msgstr "kugirango"
+
+#: cp/decl.c:3588
+#, fuzzy
+msgid "follows non-prototype definition here"
+msgstr "Insobanuro"
+
+#: cp/decl.c:3600
+#, fuzzy
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr "Ibanjirije Bya Na:"
+
+#: cp/decl.c:3602
+#, fuzzy
+msgid "conflicts with new declaration with %L linkage"
+msgstr "Na: Gishya Na:"
+
+#: cp/decl.c:3625 cp/decl.c:3632
+#, fuzzy
+msgid "default argument given for parameter %d of `%#D'"
+msgstr "Mburabuzi kugirango Bya"
+
+#: cp/decl.c:3627 cp/decl.c:3634
+#, fuzzy
+msgid "after previous specification in `%#D'"
+msgstr "Nyuma Ibanjirije in"
+
+#: cp/decl.c:3643
+#, fuzzy
+msgid "`%#D' was used before it was declared inline"
+msgstr "`%#D'Mbere Mumurongo"
+
+#: cp/decl.c:3645
+#, fuzzy
+msgid "previous non-inline declaration here"
+msgstr "Ibanjirije Mumurongo"
+
+#: cp/decl.c:3699
+#, fuzzy
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr "Bya in Ingano:"
+
+#: cp/decl.c:3780
+#, fuzzy, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr "Bya Amarengayobora"
+
+#: cp/decl.c:3782
+#, fuzzy, c-format
+msgid "than previous declaration `%F'"
+msgstr "Ibanjirije"
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+#, fuzzy
+msgid "explicit specialization of %D after first use"
+msgstr "Bya Nyuma Itangira Gukoresha"
+
+#: cp/decl.c:4187
+#, fuzzy
+msgid "`%#D' used prior to declaration"
+msgstr "`%#D'Kuri"
+
+#: cp/decl.c:4218
+#, fuzzy
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr "Bya Nka"
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+#, fuzzy
+msgid "invalid redeclaration of `%D'"
+msgstr "Sibyo Bya"
+
+# svx/source\dialog\backgrnd.src:RID_SVXPAGE_BACKGROUND.FT_SELECTOR.text
+#: cp/decl.c:4247
+#, fuzzy
+msgid "as `%D'"
+msgstr "Nka"
+
+#: cp/decl.c:4337
+#, fuzzy
+msgid "previous external decl of `%#D'"
+msgstr "Ibanjirije external Bya"
+
+#: cp/decl.c:4378
+#, fuzzy
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr "`%D'Kuri Garuka"
+
+#: cp/decl.c:4438
+#, fuzzy
+msgid "extern declaration of `%#D' doesn't match"
+msgstr "Bya BIHUYE"
+
+#: cp/decl.c:4439
+msgid "global declaration `%#D'"
+msgstr ""
+
+#: cp/decl.c:4472
+#, fuzzy
+msgid "declaration of `%#D' shadows a parameter"
+msgstr "Bya a"
+
+#: cp/decl.c:4492
+#, fuzzy, c-format
+msgid "declaration of `%s' shadows a member of `this'"
+msgstr "Bya a Bya"
+
+#: cp/decl.c:4889
+#, fuzzy
+msgid "`%#D' hides constructor for `%#T'"
+msgstr "`%#D'kugirango"
+
+#: cp/decl.c:4904
+#, fuzzy
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr "`%#D'Na: Ibanjirije ikoresha"
+
+#: cp/decl.c:4916
+#, fuzzy
+msgid "previous non-function declaration `%#D'"
+msgstr "Ibanjirije Umumaro"
+
+#: cp/decl.c:4917
+#, fuzzy
+msgid "conflicts with function declaration `%#D'"
+msgstr "Na: Umumaro"
+
+#: cp/decl.c:5007
+#, fuzzy
+msgid "implicit declaration of function `%#D'"
+msgstr "Bya Umumaro"
+
+#: cp/decl.c:5167
+#, fuzzy, c-format
+msgid "label `%s' referenced outside of any function"
+msgstr "Akarango Hanze Bya Umumaro"
+
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+#, fuzzy
+msgid "jump to label `%D'"
+msgstr "Simbuka Kuri Akarango"
+
+#: cp/decl.c:5272 cp/decl.c:5296
+#, fuzzy
+msgid "jump to case label"
+msgstr "Simbuka Kuri Akarango"
+
+#: cp/decl.c:5280
+#, fuzzy
+msgid " crosses initialization of `%#D'"
+msgstr "Bya"
+
+#: cp/decl.c:5283 cp/decl.c:5403
+#, fuzzy
+msgid " enters scope of non-POD `%#D'"
+msgstr "Ingano: Bya"
+
+#: cp/decl.c:5303 cp/decl.c:5407
+#, fuzzy
+msgid " enters try block"
+msgstr "Funga"
+
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
+#, fuzzy
+msgid " enters catch block"
+msgstr "Funga"
+
+#: cp/decl.c:5388
+#, fuzzy
+msgid " from here"
+msgstr "Bivuye"
+
+#: cp/decl.c:5401
+#, fuzzy
+msgid " skips initialization of `%#D'"
+msgstr "Bya"
+
+#: cp/decl.c:5437
+#, fuzzy
+msgid "label named wchar_t"
+msgstr "Akarango"
+
+#: cp/decl.c:5440
+#, fuzzy
+msgid "duplicate label `%D'"
+msgstr "Gusubiramo Akarango"
+
+#: cp/decl.c:5525
+#, fuzzy, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr "Akarango OYA muri a Hindura Inyandiko"
+
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+#, fuzzy
+msgid "`%#D' redeclared as %C"
+msgstr "`%#D'Nka"
+
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+#, fuzzy
+msgid "invalid use of `%D'"
+msgstr "Sibyo Gukoresha Bya"
+
+#: cp/decl.c:5852
+#, fuzzy
+msgid "`%D::%D' is not a template"
+msgstr "`%D::%D'ni OYA a Inyandikorugero"
+
+#: cp/decl.c:5869
+#, fuzzy
+msgid "`%D' undeclared in namespace `%D'"
+msgstr "`%D'in"
+
+#: cp/decl.c:6002
+#, fuzzy
+msgid "`%D' used without template parameters"
+msgstr "`%D'Inyandikorugero Ibigenga"
+
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+#, fuzzy
+msgid "no class template named `%#T' in `%#T'"
+msgstr "Oya ishuri Inyandikorugero in"
+
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+#, fuzzy
+msgid "no type named `%#T' in `%#T'"
+msgstr "Oya Ubwoko in"
+
+#: cp/decl.c:6329
+#, fuzzy
+msgid "lookup of `%D' finds `%#D'"
+msgstr "GUSHAKISHA Bya"
+
+#: cp/decl.c:6331
+#, fuzzy
+msgid " instead of `%D' from dependent base class"
+msgstr "Bya Bivuye SHINGIRO ishuri"
+
+#: cp/decl.c:6333
+#, fuzzy
+msgid " (use `typename %T::%D' if that's what you meant)"
+msgstr "(Gukoresha NIBA"
+
+#: cp/decl.c:6364
+#, fuzzy
+msgid "name lookup of `%D' changed"
+msgstr "Izina: GUSHAKISHA Bya Byahinduwe"
+
+#: cp/decl.c:6366
+#, fuzzy
+msgid " matches this `%D' under ISO standard rules"
+msgstr "iyi Bisanzwe"
+
+#: cp/decl.c:6368
+#, fuzzy
+msgid " matches this `%D' under old rules"
+msgstr "iyi ki/ bishaje"
+
+#: cp/decl.c:6382 cp/decl.c:6389
+#, fuzzy
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "Izina: GUSHAKISHA Bya Byahinduwe kugirango Gishya"
+
+#: cp/decl.c:6384
+#, fuzzy
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr "Gukoresha Bifatanya ku a"
+
+#: cp/decl.c:6391
+#, fuzzy
+msgid " using obsolete binding at `%D'"
+msgstr "ikoresha Bifatanya ku"
+
+#: cp/decl.c:6609
+#, fuzzy
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+msgstr "GUSHAKISHA Bya in i Ingano: Bya OYA BIHUYE GUSHAKISHA in i KIGEZWEHO Ingano:"
+
+#: cp/decl.c:7432
+#, fuzzy
+msgid "an anonymous union cannot have function members"
+msgstr "Ihuza Umumaro"
+
+#: cp/decl.c:7449
+#, fuzzy
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
+msgstr "Na: OYA in"
+
+#: cp/decl.c:7452
+#, fuzzy
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
+msgstr "Na: OYA in"
+
+#: cp/decl.c:7455
+#, fuzzy
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+msgstr "Na: Gukoporora Igenera Mukoresha OYA in"
+
+#: cp/decl.c:7493
+#, fuzzy
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr "Bya C in Ubwoko"
+
+#: cp/decl.c:7529
+#, fuzzy
+msgid "multiple types in one declaration"
+msgstr "Igikubo in"
+
+#: cp/decl.c:7556
+#, fuzzy
+msgid "missing type-name in typedef-declaration"
+msgstr "Ibuze Ubwoko Izina: in"
+
+#: cp/decl.c:7563
+#, fuzzy
+msgid "ISO C++ prohibits anonymous structs"
+msgstr "C"
+
+#: cp/decl.c:7570
+#, fuzzy
+msgid "`%D' can only be specified for functions"
+msgstr "`%D'kugirango Imimaro"
+
+#: cp/decl.c:7572
+#, fuzzy
+msgid "`%D' can only be specified inside a class"
+msgstr "`%D'Mo Imbere a ishuri"
+
+#: cp/decl.c:7574
+#, fuzzy
+msgid "`%D' can only be specified for constructors"
+msgstr "`%D'kugirango"
+
+#: cp/decl.c:7577
+#, fuzzy
+msgid "`%D' can only be specified for objects and functions"
+msgstr "`%D'kugirango Ibintu Na Imimaro"
+
+#: cp/decl.c:7719 cp/decl2.c:936
+#, fuzzy
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "ni Gukoresha"
+
+#: cp/decl.c:7724
+#, fuzzy
+msgid "function `%#D' is initialized like a variable"
+msgstr "Umumaro ni nka a IMPINDURAGACIRO"
+
+#: cp/decl.c:7736
+#, fuzzy
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr "Bya Na ni"
+
+#: cp/decl.c:7770
+#, fuzzy
+msgid "`%#D' is not a static member of `%#T'"
+msgstr "`%#D'ni OYA a Bya"
+
+#: cp/decl.c:7775
+#, fuzzy
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr "C OYA Kuri Nka"
+
+#: cp/decl.c:7786
+#, fuzzy
+msgid "duplicate initialization of %D"
+msgstr "Gusubiramo Bya"
+
+#: cp/decl.c:7815
+#, fuzzy
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr "Bya Hanze Bya ishuri ni OYA Insobanuro"
+
+#: cp/decl.c:7865
+#, fuzzy
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: cp/decl.c:7873 cp/decl.c:8432
+#, fuzzy
+msgid "elements of array `%#D' have incomplete type"
+msgstr "Ibintu Bya Imbonerahamwe Ubwoko"
+
+#: cp/decl.c:7889
+#, fuzzy
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr "Ubwoko Na"
+
+#: cp/decl.c:7931
+#, fuzzy
+msgid "`%D' declared as reference but not initialized"
+msgstr "`%D'Nka Indango OYA"
+
+#: cp/decl.c:7940
+#, fuzzy
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr "C Gukoresha Bya Urutonde Kuri gutangiza Indango"
+
+#: cp/decl.c:7970
+#, fuzzy
+msgid "cannot initialize `%T' from `%T'"
+msgstr "gutangiza Bivuye"
+
+#: cp/decl.c:8004
+#, fuzzy
+msgid "initializer fails to determine size of `%D'"
+msgstr "Kuri Ingano Bya"
+
+#: cp/decl.c:8009
+#, fuzzy
+msgid "array size missing in `%D'"
+msgstr "Imbonerahamwe Ingano Ibuze in"
+
+#: cp/decl.c:8021
+#, fuzzy
+msgid "zero-size array `%D'"
+msgstr "Zeru Ingano Imbonerahamwe"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+#, fuzzy
+msgid "storage size of `%D' isn't known"
+msgstr "Ingano Bya si"
+
+#: cp/decl.c:8081
+#, fuzzy
+msgid "storage size of `%D' isn't constant"
+msgstr "Ingano Bya si"
+
+#: cp/decl.c:8137
+#, fuzzy
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+msgstr "Bya Mumurongo Umumaro Ibyatanzwe Hejuru Na: Igikubo Amakopi"
+
+#: cp/decl.c:8138
+#, fuzzy
+msgid " you can work around this by removing the initializer"
+msgstr "Akazi iyi ku i"
+
+#: cp/decl.c:8164
+#, fuzzy
+msgid "uninitialized const `%D'"
+msgstr "Itatangijwe"
+
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "Kuri gutangiza"
+
+#: cp/decl.c:8313
+#, fuzzy
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "kugirango"
+
+#: cp/decl.c:8328
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "C OYA Kwemerera"
+
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "`%T'Oya Ibyatanzwe"
+
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "kugirango"
+
+#: cp/decl.c:8426
+#, fuzzy
+msgid "variable-sized object `%D' may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Gicurasi OYA"
+
+#: cp/decl.c:8437
+#, fuzzy
+msgid "`%D' has incomplete type"
+msgstr "`%D'Ubwoko"
+
+#: cp/decl.c:8486
+#, fuzzy
+msgid "`%D' must be initialized by constructor, not by `{...}'"
+msgstr "`%D'ku OYA ku"
+
+#: cp/decl.c:8527
+#, fuzzy
+msgid "structure `%D' with uninitialized const members"
+msgstr "Imiterere Na: Itatangijwe"
+
+#: cp/decl.c:8529
+#, fuzzy
+msgid "structure `%D' with uninitialized reference members"
+msgstr "Imiterere Na: Itatangijwe Indango"
+
+#: cp/decl.c:8770
+#, fuzzy
+msgid "assignment (not initialization) in declaration"
+msgstr "Igenera OYA in"
+
+#: cp/decl.c:8785
+#, fuzzy
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr "gutangiza Kuri"
+
+#: cp/decl.c:8836
+#, fuzzy
+msgid "shadowing previous type declaration of `%#D'"
+msgstr "Ishyiraho ry'igicucu Ibanjirije Ubwoko Bya"
+
+#: cp/decl.c:8883
+#, fuzzy
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "`%D'Urudodo Ubwoko"
+
+#: cp/decl.c:8898
+#, fuzzy
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "`%D'ni Urudodo Na"
+
+#: cp/decl.c:9298 cp/init.c:562
+#, fuzzy
+msgid "multiple initializations given for `%D'"
+msgstr "Igikubo kugirango"
+
+#: cp/decl.c:9390
+#, fuzzy
+msgid "invalid catch parameter"
+msgstr "Sibyo"
+
+#: cp/decl.c:9508
+#, fuzzy
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr "kugirango ishuri a"
+
+#: cp/decl.c:9511
+#, fuzzy
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr "kugirango ishuri a"
+
+#: cp/decl.c:9530
+#, fuzzy
+msgid "`%D' declared as a `virtual' %s"
+msgstr "`%D'Nka a"
+
+#: cp/decl.c:9532
+#, fuzzy
+msgid "`%D' declared as an `inline' %s"
+msgstr "`%D'Nka"
+
+#: cp/decl.c:9534
+#, fuzzy
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+msgstr "`Na Umumaro ku Sibyo in"
+
+#: cp/decl.c:9537
+#, fuzzy
+msgid "`%D' declared as a friend"
+msgstr "`%D'Nka a"
+
+#: cp/decl.c:9543
+#, fuzzy
+msgid "`%D' declared with an exception specification"
+msgstr "`%D'Na: Irengayobora(-)"
+
+#: cp/decl.c:9618
+#, fuzzy
+msgid "cannot declare `::main' to be a template"
+msgstr "Kuri a Inyandikorugero"
+
+#: cp/decl.c:9620
+#, fuzzy
+msgid "cannot declare `::main' to be inline"
+msgstr "Kuri Mumurongo"
+
+#: cp/decl.c:9622
+#, fuzzy
+msgid "cannot declare `::main' to be static"
+msgstr "Kuri"
+
+#: cp/decl.c:9625
+#, fuzzy
+msgid "`main' must return `int'"
+msgstr "`Garuka"
+
+#: cp/decl.c:9653
+#, fuzzy
+msgid "non-local function `%#D' uses anonymous type"
+msgstr "Umumaro Ubwoko"
+
+#: cp/decl.c:9656
+#, fuzzy
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+msgstr "`%#D'OYA Kuri i Ubwoko ni OYA kugirango"
+
+#: cp/decl.c:9662
+#, fuzzy
+msgid "non-local function `%#D' uses local type `%T'"
+msgstr "Umumaro Ubwoko"
+
+#: cp/decl.c:9691
+#, fuzzy
+msgid "%smember function `%D' cannot have `%T' method qualifier"
+msgstr "%smemberUmumaro Uburyo"
+
+#: cp/decl.c:9715
+#, fuzzy
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr "in"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+#, fuzzy
+msgid "invalid use of template-id `%D' in declaration of primary template"
+msgstr "Sibyo Gukoresha Bya Inyandikorugero ID in Bya Inyandikorugero"
+
+#: cp/decl.c:9753
+#, fuzzy
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+msgstr "Mburabuzi ingingo OYA in Bya Inyandikorugero"
+
+#: cp/decl.c:9760
+#, fuzzy
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+msgstr "`ni OYA in Bya Inyandikorugero"
+
+#: cp/decl.c:9822
+#, fuzzy
+msgid "definition of implicitly-declared `%D'"
+msgstr "Insobanuro Bya"
+
+#: cp/decl.c:9834 cp/decl2.c:785
+#, fuzzy
+msgid "no `%#D' member function declared in class `%T'"
+msgstr "Oya Umumaro in ishuri"
+
+#: cp/decl.c:9967
+#, fuzzy
+msgid "non-local variable `%#D' uses local type `%T'"
+msgstr "IMPINDURAGACIRO Ubwoko"
+
+#: cp/decl.c:10064
+#, fuzzy
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+msgstr "Sibyo in ishuri Bya Ibyatanzwe Bya Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:10073
+#, fuzzy
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr "C in ishuri Bya"
+
+#: cp/decl.c:10076
+#, fuzzy
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr "C Bya Bya Umubare Wuzuye Ubwoko"
+
+#: cp/decl.c:10126
+#, fuzzy
+msgid "size of array `%D' has non-integer type"
+msgstr "Ingano Bya Imbonerahamwe Umubare wuzuye Ubwoko"
+
+#: cp/decl.c:10128
+#, fuzzy
+msgid "size of array has non-integer type"
+msgstr "Ingano Bya Imbonerahamwe Umubare wuzuye Ubwoko"
+
+#: cp/decl.c:10148
+#, fuzzy
+msgid "size of array `%D' is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: cp/decl.c:10150
+#, fuzzy
+msgid "size of array is negative"
+msgstr "Ingano Bya Imbonerahamwe ni"
+
+#: cp/decl.c:10159
+#, fuzzy
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: cp/decl.c:10161
+#, fuzzy
+msgid "ISO C++ forbids zero-size array"
+msgstr "C Zeru Ingano Imbonerahamwe"
+
+#: cp/decl.c:10168
+#, fuzzy
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr "Ingano Bya Imbonerahamwe ni OYA Umubare Wuzuye imvugo"
+
+#: cp/decl.c:10171
+#, fuzzy
+msgid "size of array is not an integral constant-expression"
+msgstr "Ingano Bya Imbonerahamwe ni OYA Umubare Wuzuye imvugo"
+
+#: cp/decl.c:10189
+#, fuzzy
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr "C IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: cp/decl.c:10192
+#, fuzzy
+msgid "ISO C++ forbids variable-size array"
+msgstr "C IMPINDURAGACIRO Ingano Imbonerahamwe"
+
+#: cp/decl.c:10203
+#, fuzzy
+msgid "overflow in array dimension"
+msgstr "Byarenze urugero in Imbonerahamwe"
+
+#: cp/decl.c:10262
+#, fuzzy
+msgid "declaration of `%D' as %s"
+msgstr "Bya Nka"
+
+#: cp/decl.c:10264
+#, c-format
+msgid "creating %s"
+msgstr ""
+
+#: cp/decl.c:10276
+#, fuzzy
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+msgstr "Bya Nka Imbonerahamwe kugirango Byose Ingero i Itangira"
+
+#: cp/decl.c:10279
+#, fuzzy
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr "Imbonerahamwe kugirango Byose Ingero i Itangira"
+
+#: cp/decl.c:10308
+#, fuzzy
+msgid "return type specification for constructor invalid"
+msgstr "Garuka Ubwoko kugirango Sibyo"
+
+#: cp/decl.c:10315
+#, fuzzy
+msgid "return type specification for destructor invalid"
+msgstr "Garuka Ubwoko kugirango Sibyo"
+
+#: cp/decl.c:10321
+#, fuzzy
+msgid "operator `%T' declared to return `%T'"
+msgstr "Mukoresha Kuri Garuka"
+
+#: cp/decl.c:10323
+#, fuzzy
+msgid "return type specified for `operator %T'"
+msgstr "Garuka Ubwoko kugirango Mukoresha"
+
+#: cp/decl.c:10491
+#, fuzzy
+msgid "destructors must be member functions"
+msgstr "Imimaro"
+
+#: cp/decl.c:10510
+#, fuzzy
+msgid "destructor `%T' must match class name `%T'"
+msgstr "BIHUYE ishuri Izina:"
+
+#: cp/decl.c:10539
+#, fuzzy
+msgid "variable declaration is not allowed here"
+msgstr "IMPINDURAGACIRO ni OYA"
+
+#: cp/decl.c:10566
+#, fuzzy
+msgid "invalid declarator"
+msgstr "Sibyo"
+
+#: cp/decl.c:10617
+#, fuzzy
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr "ID Ibuze ikoresha ijambo"
+
+#: cp/decl.c:10674
+#, fuzzy
+msgid "type `%T' is not derived from type `%T'"
+msgstr "Ubwoko ni OYA Bivuye Ubwoko"
+
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+#, fuzzy
+msgid "`%T' specified as declarator-id"
+msgstr "`%T'Nka ID"
+
+#: cp/decl.c:10728
+#, fuzzy
+msgid " perhaps you want `%T' for a constructor"
+msgstr "kugirango a"
+
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "Sibyo Gukoresha Bya Inyandikorugero Izina: in a"
+
+#: cp/decl.c:10770
+#, fuzzy
+msgid "declaration of `%D' as non-function"
+msgstr "Bya Nka Umumaro"
+
+#: cp/decl.c:10847
+#, fuzzy
+msgid "`bool' is now a keyword"
+msgstr "`ni NONEAHA a Ijambo- banze"
+
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
+msgstr ""
+
+#: cp/decl.c:10865 cp/decl.c:10910
+#, fuzzy
+msgid "multiple declarations `%T' and `%T'"
+msgstr "Igikubo Na"
+
+#: cp/decl.c:10878
+#, fuzzy
+msgid "ISO C++ does not support `long long'"
+msgstr "C OYA Gushigikira"
+
+#: cp/decl.c:10983 cp/decl.c:10986
+#, fuzzy, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr "C Bya Na: Oya Ubwoko"
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+#, fuzzy
+msgid "`%T' is implicitly a typename"
+msgstr "`%T'ni a"
+
+#: cp/decl.c:11032
+#, fuzzy, c-format
+msgid "short, signed or unsigned invalid for `%s'"
+msgstr "Cyangwa Bitashizweho umukono Sibyo kugirango"
+
+#: cp/decl.c:11037
+#, fuzzy, c-format
+msgid "long and short specified together for `%s'"
+msgstr "Na kugirango"
+
+#: cp/decl.c:11048
+#, fuzzy, c-format
+msgid "signed and unsigned given together for `%s'"
+msgstr "Na Bitashizweho umukono kugirango"
+
+#: cp/decl.c:11157
+#, fuzzy
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr "OYA ku Bya Mukoresha"
+
+#: cp/decl.c:11179
+#, fuzzy
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr "Byombi Kitaboneka Na"
+
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "`%T::%D'ni OYA a Byemewe"
+
+#: cp/decl.c:11200
+#, fuzzy
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr "ishuri Sibyo in"
+
+#: cp/decl.c:11204
+#, fuzzy
+msgid "typedef declaration invalid in parameter declaration"
+msgstr "Sibyo in"
+
+#: cp/decl.c:11217
+#, fuzzy
+msgid "virtual outside class declaration"
+msgstr "Kitaboneka Hanze ishuri"
+
+#: cp/decl.c:11278
+#, fuzzy, c-format
+msgid "storage class specified for %s `%s'"
+msgstr "ishuri kugirango"
+
+#: cp/decl.c:11325
+#, fuzzy
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr "ishuri Sibyo in Umumaro"
+
+#: cp/decl.c:11495
+#, fuzzy
+msgid "destructor cannot be static member function"
+msgstr "Umumaro"
+
+#: cp/decl.c:11498
+#, fuzzy, c-format
+msgid "destructors may not be `%s'"
+msgstr "Gicurasi OYA"
+
+#: cp/decl.c:11519
+#, fuzzy
+msgid "constructor cannot be static member function"
+msgstr "Umumaro"
+
+#: cp/decl.c:11522
+#, fuzzy
+msgid "constructors cannot be declared virtual"
+msgstr "Kitaboneka"
+
+#: cp/decl.c:11527
+#, fuzzy, c-format
+msgid "constructors may not be `%s'"
+msgstr "Gicurasi OYA"
+
+#: cp/decl.c:11537
+#, fuzzy
+msgid "return value type specifier for constructor ignored"
+msgstr "Garuka Agaciro Ubwoko kugirango"
+
+#: cp/decl.c:11556
+#, fuzzy, c-format
+msgid "can't initialize friend function `%s'"
+msgstr "gutangiza Umumaro"
+
+#. Cannot be both friend and virtual.
+#: cp/decl.c:11560
+#, fuzzy
+msgid "virtual functions cannot be friends"
+msgstr "Kitaboneka Imimaro"
+
+#: cp/decl.c:11565
+#, fuzzy
+msgid "friend declaration not in class definition"
+msgstr "OYA in ishuri Insobanuro"
+
+#: cp/decl.c:11567
+#, fuzzy, c-format
+msgid "can't define friend function `%s' in a local class definition"
+msgstr "Kugaragaza... Umumaro in a ishuri Insobanuro"
+
+#: cp/decl.c:11591
+#, fuzzy
+msgid "destructors may not have parameters"
+msgstr "Gicurasi OYA Ibigenga"
+
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "Indango Kuri"
+
+#: cp/decl.c:11623
+#, fuzzy
+msgid "cannot declare pointer to `%#T'"
+msgstr "Mweretsi Kuri"
+
+#: cp/decl.c:11628
+#, fuzzy
+msgid "cannot declare pointer to `%#T' member"
+msgstr "Mweretsi Kuri"
+
+#: cp/decl.c:11804
+#, fuzzy
+msgid "extra qualification `%T::' on member `%s' ignored"
+msgstr "Birenga ku"
+
+#: cp/decl.c:11814
+#, fuzzy
+msgid "cannot declare member function `%T::%s' within `%T'"
+msgstr "Umumaro muri"
+
+#: cp/decl.c:11829
+#, fuzzy
+msgid "cannot declare member `%T::%s' within `%T'"
+msgstr "muri"
+
+#: cp/decl.c:11908
+#, fuzzy
+msgid "data member may not have variably modified type `%T'"
+msgstr "Ibyatanzwe Gicurasi OYA Byahinduwe Ubwoko"
+
+#: cp/decl.c:11910
+#, fuzzy
+msgid "parameter may not have variably modified type `%T'"
+msgstr "Gicurasi OYA Byahinduwe Ubwoko"
+
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:11918
+#, fuzzy
+msgid "only declarations of constructors can be `explicit'"
+msgstr "Bya"
+
+#: cp/decl.c:11926
+#, c-format
+msgid "non-member `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11931
+#, fuzzy, c-format
+msgid "non-object member `%s' cannot be declared `mutable'"
+msgstr "Igikoresho"
+
+#: cp/decl.c:11937
+#, fuzzy, c-format
+msgid "function `%s' cannot be declared `mutable'"
+msgstr "Umumaro"
+
+#: cp/decl.c:11942
+#, c-format
+msgid "static `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11947
+#, c-format
+msgid "const `%s' cannot be declared `mutable'"
+msgstr ""
+
+#: cp/decl.c:11960
+#, fuzzy
+msgid "template-id `%D' used as a declarator"
+msgstr "Inyandikorugero ID Nka a"
+
+#: cp/decl.c:11981
+#, fuzzy
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+msgstr "C Ubwoko Na: Izina: Nka ishuri"
+
+#: cp/decl.c:12030
+#, fuzzy
+msgid "typedef name may not be class-qualified"
+msgstr "Izina: Gicurasi OYA ishuri"
+
+#: cp/decl.c:12038
+#, fuzzy
+msgid "invalid type qualifier for non-member function type"
+msgstr "Sibyo Ubwoko kugirango Umumaro Ubwoko"
+
+#: cp/decl.c:12101
+#, fuzzy
+msgid "type qualifiers specified for friend class declaration"
+msgstr "Ubwoko kugirango ishuri"
+
+#: cp/decl.c:12106
+#, fuzzy
+msgid "`inline' specified for friend class declaration"
+msgstr "`kugirango ishuri"
+
+#: cp/decl.c:12114
+#, fuzzy
+msgid "template parameters cannot be friends"
+msgstr "Inyandikorugero Ibigenga"
+
+#: cp/decl.c:12116
+#, fuzzy
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr "E."
+
+#: cp/decl.c:12120
+#, fuzzy
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
+msgstr "E."
+
+#: cp/decl.c:12134
+#, fuzzy
+msgid "trying to make class `%T' a friend of global scope"
+msgstr "Kuri Ubwoko ishuri a Bya Ingano:"
+
+#: cp/decl.c:12145
+#, fuzzy
+msgid "invalid qualifiers on non-member function type"
+msgstr "Sibyo ku Umumaro Ubwoko"
+
+#: cp/decl.c:12164
+#, fuzzy
+msgid "abstract declarator `%T' used as declaration"
+msgstr "Incamake Nka"
+
+#: cp/decl.c:12176
+#, fuzzy
+msgid "unnamed variable or field declared void"
+msgstr "Kitiswe IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: cp/decl.c:12185
+#, fuzzy
+msgid "variable or field declared void"
+msgstr "IMPINDURAGACIRO Cyangwa Umwanya"
+
+#: cp/decl.c:12195
+#, fuzzy
+msgid "cannot use `::' in parameter declaration"
+msgstr "Gukoresha in"
+
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+#, fuzzy
+msgid "invalid use of `::'"
+msgstr "Sibyo Gukoresha Bya"
+
+#: cp/decl.c:12246
+#, fuzzy
+msgid "function `%D' cannot be declared friend"
+msgstr "Umumaro"
+
+#: cp/decl.c:12258
+#, fuzzy
+msgid "can't make `%D' into a method -- not in a class"
+msgstr "Ubwoko a Uburyo OYA in a ishuri"
+
+#: cp/decl.c:12267
+#, fuzzy
+msgid "function `%D' declared virtual inside a union"
+msgstr "Umumaro Kitaboneka Mo Imbere a Ihuza"
+
+#: cp/decl.c:12279
+#, fuzzy
+msgid "`%D' cannot be declared virtual, since it is always static"
+msgstr "`%D'Kitaboneka guhera ni Buri gihe"
+
+#: cp/decl.c:12355
+#, fuzzy
+msgid "field `%D' has incomplete type"
+msgstr "Umwanya Ubwoko"
+
+#: cp/decl.c:12357
+#, fuzzy
+msgid "name `%T' has incomplete type"
+msgstr "Izina: Ubwoko"
+
+#: cp/decl.c:12366
+#, fuzzy
+msgid " in instantiation of template `%T'"
+msgstr "in Bya Inyandikorugero"
+
+#: cp/decl.c:12376
+#, fuzzy, c-format
+msgid "`%s' is neither function nor member function; cannot be declared friend"
+msgstr "`%s'ni Umumaro Umumaro"
+
+#: cp/decl.c:12387
+#, fuzzy
+msgid "member functions are implicitly friends of their class"
+msgstr "Imimaro Bya ishuri"
+
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+#, fuzzy
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr "C Bya"
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
+msgstr ""
+
+#: cp/decl.c:12460
+#, fuzzy
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+msgstr "C Ibyatanzwe Na: Izina: Nka ishuri"
+
+#: cp/decl.c:12501
+#, fuzzy, c-format
+msgid "storage class `auto' invalid for function `%s'"
+msgstr "ishuri Sibyo kugirango Umumaro"
+
+#: cp/decl.c:12503
+#, fuzzy, c-format
+msgid "storage class `register' invalid for function `%s'"
+msgstr "ishuri Sibyo kugirango Umumaro"
+
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "ishuri Sibyo kugirango Umumaro"
+
+#: cp/decl.c:12516
+#, fuzzy, c-format
+msgid "storage class `static' invalid for function `%s' declared out of global scope"
+msgstr "ishuri Sibyo kugirango Umumaro Inyuma Bya Ingano:"
+
+#: cp/decl.c:12518
+#, fuzzy, c-format
+msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+msgstr "ishuri Sibyo kugirango Umumaro Inyuma Bya Ingano:"
+
+#: cp/decl.c:12525
+#, fuzzy, c-format
+msgid "virtual non-class function `%s'"
+msgstr "Kitaboneka ishuri Umumaro"
+
+#: cp/decl.c:12554
+#, fuzzy
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr "Umumaro Kuri"
+
+#. FIXME need arm citation
+#: cp/decl.c:12560
+#, fuzzy
+msgid "cannot declare static function inside another function"
+msgstr "Umumaro Mo Imbere Umumaro"
+
+#: cp/decl.c:12588
+#, fuzzy
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr "`Gicurasi OYA Ryari: Nka Kuri a Ibyatanzwe"
+
+#: cp/decl.c:12594
+msgid "static member `%D' declared `register'"
+msgstr ""
+
+#: cp/decl.c:12599
+#, fuzzy
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
+msgstr "Kuri"
+
+#: cp/decl.c:12774
+#, fuzzy
+msgid "default argument for `%#D' has type `%T'"
+msgstr "Mburabuzi kugirango Ubwoko"
+
+#: cp/decl.c:12777
+#, fuzzy
+msgid "default argument for parameter of type `%T' has type `%T'"
+msgstr "Mburabuzi kugirango Bya Ubwoko Ubwoko"
+
+#: cp/decl.c:12794
+#, fuzzy
+msgid "default argument `%E' uses local variable `%D'"
+msgstr "Mburabuzi IMPINDURAGACIRO"
+
+#: cp/decl.c:12839
+#, fuzzy, c-format
+msgid "invalid string constant `%E'"
+msgstr "Sibyo Ikurikiranyanyuguti"
+
+#: cp/decl.c:12841
+#, fuzzy
+msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+msgstr "Sibyo Umubare wuzuye in Urutonde Kuri Izina:"
+
+#: cp/decl.c:12879
+#, fuzzy
+msgid "parameter `%D' invalidly declared method type"
+msgstr "Uburyo Ubwoko"
+
+#: cp/decl.c:12885
+#, fuzzy
+msgid "parameter `%D' invalidly declared offset type"
+msgstr "Nta- boneza Ubwoko"
+
+#: cp/decl.c:12909
+#, fuzzy
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+msgstr "Kuri Imbonerahamwe Bya Kitazwi"
+
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+#, fuzzy
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr "Sibyo"
+
+#: cp/decl.c:13222
+#, fuzzy
+msgid "`%D' must be a nonstatic member function"
+msgstr "`%D'a Umumaro"
+
+#: cp/decl.c:13228
+#, fuzzy
+msgid "`%D' must be either a non-static member function or a non-member function"
+msgstr "`%D'a Umumaro Cyangwa a Umumaro"
+
+#: cp/decl.c:13245
+#, fuzzy
+msgid "`%D' must have an argument of class or enumerated type"
+msgstr "`%D'Bya ishuri Cyangwa Ubwoko"
+
+#: cp/decl.c:13277
+#, fuzzy, c-format
+msgid "conversion to %s%s will never use a type conversion operator"
+msgstr "Ihindurangero Kuri Nta narimwe Gukoresha a Ubwoko Ihindurangero Mukoresha"
+
+#. 13.4.0.3
+#: cp/decl.c:13284
+#, fuzzy
+msgid "ISO C++ prohibits overloading operator ?:"
+msgstr "C Mukoresha"
+
+#: cp/decl.c:13334
+#, fuzzy
+msgid "postfix `%D' must take `int' as its argument"
+msgstr "Nka"
+
+#: cp/decl.c:13338
+#, fuzzy
+msgid "postfix `%D' must take `int' as its second argument"
+msgstr "Nka ISEGONDA"
+
+#: cp/decl.c:13345
+#, fuzzy
+msgid "`%D' must take either zero or one argument"
+msgstr "`%D'Zeru Cyangwa"
+
+#: cp/decl.c:13347
+#, fuzzy
+msgid "`%D' must take either one or two arguments"
+msgstr "`%D'Cyangwa ingingo"
+
+#: cp/decl.c:13368
+#, fuzzy
+msgid "prefix `%D' should return `%T'"
+msgstr "Imbanziriza Garuka"
+
+#: cp/decl.c:13374
+#, fuzzy
+msgid "postfix `%D' should return `%T'"
+msgstr "Garuka"
+
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr ""
+
+#: cp/decl.c:13385 cp/decl.c:13393
+msgid "`%D' must take exactly one argument"
+msgstr ""
+
+#: cp/decl.c:13395
+#, fuzzy
+msgid "`%D' must take exactly two arguments"
+msgstr "`%D'ingingo"
+
+#: cp/decl.c:13403
+#, fuzzy
+msgid "user-defined `%D' always evaluates both arguments"
+msgstr "Ukoresha: Buri gihe Byombi ingingo"
+
+#: cp/decl.c:13417
+#, fuzzy
+msgid "`%D' should return by value"
+msgstr "`%D'Garuka ku Agaciro"
+
+#: cp/decl.c:13429 cp/decl.c:13432
+#, fuzzy
+msgid "`%D' cannot have default arguments"
+msgstr "`%D'Mburabuzi ingingo"
+
+#: cp/decl.c:13475
+#, fuzzy
+msgid "using typedef-name `%D' after `%s'"
+msgstr "ikoresha Izina: Nyuma"
+
+#: cp/decl.c:13481
+#, fuzzy
+msgid "using template type parameter `%T' after `%s'"
+msgstr "ikoresha Inyandikorugero Ubwoko Nyuma"
+
+#: cp/decl.c:13542
+#, fuzzy
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "`%s%T'a Gishya Ubwoko ku Ingano:"
+
+#: cp/decl.c:13545
+#, fuzzy
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr "Amazina Bivuye SHINGIRO Inzego OYA Kigaragara Kuri Izina: GUSHAKISHA Kuri Kuri i Ubwoko"
+
+#: cp/decl.c:13663
+#, fuzzy
+msgid "use of enum `%#D' without previous declaration"
+msgstr "Gukoresha Bya Ibanjirije"
+
+#: cp/decl.c:13749
+#, fuzzy
+msgid "derived union `%T' invalid"
+msgstr "Ihuza Sibyo"
+
+#: cp/decl.c:13795
+#, fuzzy
+msgid "base type `%T' fails to be a struct or class type"
+msgstr "SHINGIRO Ubwoko Kuri a Cyangwa ishuri Ubwoko"
+
+#: cp/decl.c:13805
+#, fuzzy
+msgid "base class `%T' has incomplete type"
+msgstr "SHINGIRO ishuri Ubwoko"
+
+#: cp/decl.c:13813
+#, fuzzy
+msgid "recursive type `%T' undefined"
+msgstr "Ubwoko kidasobanuye"
+
+#: cp/decl.c:13815
+#, fuzzy
+msgid "duplicate base type `%T' invalid"
+msgstr "Gusubiramo SHINGIRO Ubwoko Sibyo"
+
+#: cp/decl.c:13926
+#, fuzzy
+msgid "multiple definition of `%#T'"
+msgstr "Igikubo Insobanuro Bya"
+
+#: cp/decl.c:13927
+#, fuzzy
+msgid "previous definition here"
+msgstr "Ibanjirije Insobanuro"
+
+#: cp/decl.c:14030
+#, fuzzy
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr "Oya Umubare Wuzuye Ubwoko Byose Bya i Uduciro kugirango"
+
+#: cp/decl.c:14106
+#, fuzzy
+msgid "enumerator value for `%D' not integer constant"
+msgstr "Agaciro kugirango OYA Umubare wuzuye"
+
+#: cp/decl.c:14126
+#, fuzzy
+msgid "overflow in enumeration values at `%D'"
+msgstr "Byarenze urugero in Uduciro ku"
+
+#: cp/decl.c:14195
+#, fuzzy
+msgid "return type `%#T' is incomplete"
+msgstr "Garuka Ubwoko ni"
+
+#: cp/decl.c:14309
+#, fuzzy
+msgid "semicolon missing after declaration of `%#T'"
+msgstr "Akabago n'Akitso Ibuze Nyuma Bya"
+
+#: cp/decl.c:14330
+#, fuzzy
+msgid "return type for `main' changed to `int'"
+msgstr "Garuka Ubwoko kugirango Byahinduwe Kuri"
+
+#: cp/decl.c:14361
+#, fuzzy
+msgid "`%D' implicitly declared before its definition"
+msgstr "`%D'Mbere Insobanuro"
+
+#: cp/decl.c:14383 cp/typeck.c:6314
+#, fuzzy
+msgid "`operator=' should return a reference to `*this'"
+msgstr "`Mukoresha Garuka a Indango Kuri"
+
+#: cp/decl.c:14643
+msgid "parameter `%D' declared void"
+msgstr ""
+
+#: cp/decl.c:15130
+#, fuzzy
+msgid "`%D' is already defined in class `%T'"
+msgstr "`%D'ni in ishuri"
+
+#: cp/decl.c:15348
+#, fuzzy
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr "Umumaro Na: Ubwoko"
+
+#: cp/decl2.c:153
+#, fuzzy, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr "Gusubiramo Ubwoko in"
+
+#: cp/decl2.c:192
+#, fuzzy
+msgid "template `%#D' instantiated in file without #pragma interface"
+msgstr "Inyandikorugero in IDOSIYE"
+
+#: cp/decl2.c:198
+#, fuzzy
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr "Inyandikorugero in IDOSIYE"
+
+#: cp/decl2.c:365
+#, fuzzy
+msgid "name missing for member function"
+msgstr "Izina: Ibuze kugirango Umumaro"
+
+#. Something has gone very wrong. Assume we are mistakenly reducing
+#. an expression instead of a declaration.
+#: cp/decl2.c:428
+#, fuzzy
+msgid "parser may be lost: is there a '{' missing somewhere?"
+msgstr "Gicurasi ni a Ibuze"
+
+#: cp/decl2.c:459 cp/decl2.c:473
+#, fuzzy
+msgid "ambiguous conversion for array subscript"
+msgstr "Ihindurangero kugirango Imbonerahamwe Inyandiko nyesi"
+
+#: cp/decl2.c:467
+#, fuzzy
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr "Sibyo kugirango Imbonerahamwe Inyandiko nyesi"
+
+#: cp/decl2.c:515
+#, fuzzy
+msgid "type `%#T' argument given to `delete', expected pointer"
+msgstr "Ubwoko Kuri Ikitezwe: Mweretsi"
+
+#: cp/decl2.c:523
+#, fuzzy
+msgid "anachronistic use of array size in vector delete"
+msgstr "Gukoresha Bya Imbonerahamwe Ingano in Gusiba"
+
+#: cp/decl2.c:533
+#, fuzzy
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+msgstr "Gusiba a Umumaro Mweretsi Kuri Ibintu Byemewe ingingo Kuri"
+
+#: cp/decl2.c:540
+#, fuzzy
+msgid "deleting `%T' is undefined"
+msgstr "ni kidasobanuye"
+
+#: cp/decl2.c:548
+#, fuzzy
+msgid "deleting array `%#D'"
+msgstr "Imbonerahamwe"
+
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+#, fuzzy
+msgid "invalid declaration of member template `%#D' in local class"
+msgstr "Sibyo Bya Inyandikorugero in ishuri"
+
+#: cp/decl2.c:591
+#, fuzzy
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr "Sibyo Gukoresha Bya in Inyandikorugero Bya"
+
+#: cp/decl2.c:601 cp/pt.c:2745
+#, fuzzy
+msgid "template declaration of `%#D'"
+msgstr "Inyandikorugero Bya"
+
+#: cp/decl2.c:651
+#, fuzzy
+msgid "Java method '%D' has non-Java return type `%T'"
+msgstr "Uburyo Garuka Ubwoko"
+
+#: cp/decl2.c:660
+#, fuzzy
+msgid "Java method '%D' has non-Java parameter type `%T'"
+msgstr "Uburyo Ubwoko"
+
+#: cp/decl2.c:746
+#, fuzzy
+msgid "prototype for `%#D' does not match any in class `%T'"
+msgstr "kugirango OYA BIHUYE in ishuri"
+
+#: cp/decl2.c:828
+#, fuzzy
+msgid "local class `%#T' shall not have static data member `%#D'"
+msgstr "ishuri OYA Ibyatanzwe"
+
+#: cp/decl2.c:836
+#, fuzzy
+msgid "initializer invalid for static member with constructor"
+msgstr "Sibyo kugirango Na:"
+
+#: cp/decl2.c:839
+#, fuzzy
+msgid "(an out of class initialization is required)"
+msgstr "(Inyuma Bya ishuri ni Bya ngombwa"
+
+#: cp/decl2.c:898
+#, fuzzy
+msgid "invalid data member initialization"
+msgstr "Sibyo Ibyatanzwe"
+
+#: cp/decl2.c:901
+#, fuzzy
+msgid "(use `=' to initialize static data members)"
+msgstr "(Gukoresha Kuri gutangiza Ibyatanzwe"
+
+#: cp/decl2.c:947
+#, fuzzy
+msgid "member `%D' conflicts with virtual function table field name"
+msgstr "Na: Kitaboneka Umumaro imbonerahamwe# Umwanya Izina:"
+
+#: cp/decl2.c:967
+#, fuzzy
+msgid "`%D' is already defined in `%T'"
+msgstr "`%D'ni in"
+
+#: cp/decl2.c:1014
+#, fuzzy
+msgid "field initializer is not constant"
+msgstr "Umwanya ni OYA"
+
+#: cp/decl2.c:1038
+#, fuzzy
+msgid "`asm' specifiers are not permitted on non-static data members"
+msgstr "`OYA ku Ibyatanzwe"
+
+#: cp/decl2.c:1090
+#, fuzzy
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr "Kuri a Umwanya Ubwoko"
+
+#: cp/decl2.c:1100
+#, fuzzy
+msgid "cannot declare bit-field `%D' with function type"
+msgstr "Umwanya Na: Umumaro Ubwoko"
+
+#: cp/decl2.c:1107
+#, fuzzy
+msgid "`%D' is already defined in the class %T"
+msgstr "`%D'ni in i ishuri"
+
+#: cp/decl2.c:1114
+#, fuzzy
+msgid "static member `%D' cannot be a bit-field"
+msgstr "a Umwanya"
+
+#: cp/decl2.c:1201
+#, fuzzy
+msgid "initializer specified for non-member function `%D'"
+msgstr "kugirango Umumaro"
+
+#: cp/decl2.c:1205
+#, fuzzy
+msgid "invalid initializer for virtual method `%D'"
+msgstr "Sibyo kugirango Kitaboneka Uburyo"
+
+#: cp/decl2.c:1319
+#, fuzzy
+msgid "anonymous struct not inside named type"
+msgstr "OYA Mo Imbere Ubwoko"
+
+#: cp/decl2.c:1415
+#, fuzzy
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr "Ingano:"
+
+#: cp/decl2.c:1428
+#, fuzzy
+msgid "anonymous aggregate with no members"
+msgstr "Na: Oya"
+
+#: cp/decl2.c:1497
+#, fuzzy
+msgid "`operator new' must return type `%T'"
+msgstr "`Mukoresha Garuka Ubwoko"
+
+#: cp/decl2.c:1505
+#, fuzzy
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr "`Mukoresha Ubwoko Nka Itangira"
+
+#: cp/decl2.c:1532
+#, fuzzy
+msgid "`operator delete' must return type `%T'"
+msgstr "`Mukoresha Garuka Ubwoko"
+
+#: cp/decl2.c:1540
+#, fuzzy
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr "`Mukoresha Ubwoko Nka Itangira"
+
+#. Overflow occurred. That means there are at least 4 billion
+#. initialization functions.
+#: cp/decl2.c:2282
+#, fuzzy
+msgid "too many initialization functions required"
+msgstr "Imimaro Bya ngombwa"
+
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "Mumurongo Umumaro Nta narimwe"
+
+#: cp/decl2.c:3135
+#, fuzzy
+msgid "use of old-style cast"
+msgstr "Gukoresha Bya ki/ bishaje IMISUSIRE"
+
+#: cp/decl2.c:3860
+#, fuzzy
+msgid "use of `%D' is ambiguous"
+msgstr "Gukoresha Bya ni"
+
+#: cp/decl2.c:3861
+#, fuzzy
+msgid " first declared as `%#D' here"
+msgstr "Itangira Nka"
+
+#: cp/decl2.c:3864
+#, fuzzy
+msgid " also declared as `%#D' here"
+msgstr "Nka"
+
+#: cp/decl2.c:3879
+#, fuzzy
+msgid "`%D' denotes an ambiguous type"
+msgstr "`%D'Ubwoko"
+
+#: cp/decl2.c:3880
+#, fuzzy
+msgid " first type here"
+msgstr "Itangira Ubwoko"
+
+#: cp/decl2.c:3881
+#, fuzzy
+msgid " other type here"
+msgstr "Ikindi Ubwoko"
+
+#: cp/decl2.c:3982
+#, fuzzy
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr "Bya OYA in a"
+
+#: cp/decl2.c:4016
+#, fuzzy
+msgid "`%D' should have been declared inside `%D'"
+msgstr "`%D'Mo Imbere"
+
+#: cp/decl2.c:4152
+#, fuzzy
+msgid "`%D' is not a function,"
+msgstr "`%D'ni OYA a Umumaro"
+
+#: cp/decl2.c:4153
+#, fuzzy
+msgid " conflict with `%D'"
+msgstr "Na:"
+
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+#, fuzzy
+msgid "unknown namespace `%D'"
+msgstr "Kitazwi"
+
+#: cp/decl2.c:4507 cp/decl2.c:4794
+#, fuzzy
+msgid "`%T' is not a namespace"
+msgstr "`%T'ni OYA a"
+
+#: cp/decl2.c:4509
+#, fuzzy
+msgid "`%D' is not a namespace"
+msgstr "`%D'ni OYA a"
+
+#: cp/decl2.c:4518
+#, fuzzy
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr "a ikoresha a Inyandikorugero ID ikoresha"
+
+#: cp/decl2.c:4532
+#, fuzzy
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr "OYA in ikoresha"
+
+#: cp/decl2.c:4561
+#, fuzzy
+msgid "`%D' not declared"
+msgstr "`%D'OYA"
+
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+#, fuzzy
+msgid "`%D' is already declared in this scope"
+msgstr "`%D'ni in iyi Ingano:"
+
+#: cp/decl2.c:4646
+#, fuzzy
+msgid "using declaration `%D' introduced ambiguous type `%T'"
+msgstr "ikoresha Ubwoko"
+
+#: cp/decl2.c:4740
+#, fuzzy
+msgid "using-declaration for non-member at class scope"
+msgstr "ikoresha kugirango ku ishuri Ingano:"
+
+#: cp/decl2.c:4746
+#, fuzzy
+msgid "using-declaration for destructor"
+msgstr "ikoresha kugirango"
+
+#: cp/decl2.c:4752
+#, fuzzy
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+msgstr "a ikoresha a Inyandikorugero ID ikoresha"
+
+#: cp/decl2.c:4788
+msgid "namespace `%T' undeclared"
+msgstr ""
+
+#: cp/decl2.c:4817
+#, fuzzy
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr "Mburabuzi Ibuze kugirango Bya"
+
+#: cp/decl2.c:4941
+#, fuzzy
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr "Birenga ku"
+
+#: cp/decl2.c:4945
+#, fuzzy
+msgid "`%T' does not have a class or union named `%D'"
+msgstr "`%T'OYA a ishuri Cyangwa Ihuza"
+
+#: cp/decl2.c:4963
+#, fuzzy
+msgid "`%T' is not a class or union type"
+msgstr "`%T'ni OYA a ishuri Cyangwa Ihuza Ubwoko"
+
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "Inyandikorugero ni Bya ngombwa kugirango"
+
+#: cp/decl2.c:4995
+#, fuzzy
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "Bya in OYA"
+
+#: cp/error.c:35
+#, fuzzy, c-format
+msgid "`%s' not supported by %s"
+msgstr "`%s'OYA ku"
+
+#: cp/error.c:571
+#, c-format
+msgid "<anonymous %s>"
+msgstr ""
+
+#: cp/error.c:810
+#, fuzzy, c-format
+msgid "(static %s for %s)"
+msgstr "(kugirango"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/error.c:1503
+#, fuzzy, c-format
+msgid "\\x%x"
+msgstr "\\x%x"
+
+# vcl/source\src\units.src:SV_FUNIT_STRINGS.10.text
+#: cp/error.c:2473
+#, fuzzy, c-format
+msgid "In %s `%s':"
+msgstr "in"
+
+#: cp/error.c:2530
+#, fuzzy, c-format
+msgid "%s: In instantiation of `%s':\n"
+msgstr "%s:Bya"
+
+#: cp/error.c:2554
+#, fuzzy, c-format
+msgid "%s:%d: instantiated from `%s'\n"
+msgstr "%s:%d:Bivuye"
+
+#: cp/error.c:2559
+#, fuzzy, c-format
+msgid "%s:%d: instantiated from here\n"
+msgstr "%s:%d:Bivuye"
+
+#. damn ICE suppression
+#: cp/error.c:2713
+#, fuzzy, c-format
+msgid "unexpected letter `%c' in locate_error\n"
+msgstr "Ibaruwa... in"
+
+#. Can't throw a reference.
+#: cp/except.c:240
+#, fuzzy
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
+msgstr "Ubwoko ni in Cyangwa"
+
+#: cp/except.c:251
+#, fuzzy
+msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+msgstr "Kuri Cyangwa Na: kidasobanuye"
+
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+#, fuzzy
+msgid "type `%T' is not derived from `java::lang::Throwable'"
+msgstr "Ubwoko ni OYA Bivuye java"
+
+#: cp/except.c:322
+#, fuzzy
+msgid "mixing C++ and Java catches in a single translation unit"
+msgstr "C Na in a UMWE Umwandiko wahinduwe ururimi Igice:"
+
+#: cp/except.c:639
+#, fuzzy
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr "Umubare Wuzuye OYA Mweretsi Ubwoko"
+
+#: cp/except.c:730
+#, fuzzy
+msgid " in thrown expression"
+msgstr "in imvugo"
+
+#: cp/except.c:856
+#, fuzzy
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+msgstr "imvugo Bya Incamake ishuri Ubwoko in imvugo"
+
+#: cp/except.c:944
+#, fuzzy
+msgid "exception of type `%T' will be caught"
+msgstr "Irengayobora(-) Bya Ubwoko"
+
+#: cp/except.c:947
+#, fuzzy
+msgid " by earlier handler for `%T'"
+msgstr "ku kugirango"
+
+#: cp/except.c:968
+#, fuzzy
+msgid "`...' handler must be the last handler for its try block"
+msgstr "`...'i Iheruka kugirango Funga"
+
+#: cp/friend.c:159
+#, fuzzy
+msgid "`%D' is already a friend of class `%T'"
+msgstr "`%D'ni a Bya ishuri"
+
+#: cp/friend.c:161
+#, fuzzy
+msgid "previous friend declaration of `%D'"
+msgstr "Ibanjirije Bya"
+
+#: cp/friend.c:206
+#, fuzzy
+msgid "invalid type `%T' declared `friend'"
+msgstr "Sibyo Ubwoko"
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+#, fuzzy
+msgid "partial specialization `%T' declared `friend'"
+msgstr "Bituzuye"
+
+#: cp/friend.c:231
+#, fuzzy
+msgid "class `%T' is implicitly friends with itself"
+msgstr "ishuri ni Na:"
+
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+#, fuzzy
+msgid "typename type `%#T' declared `friend'"
+msgstr "Ubwoko"
+
+#. template <class T> friend class T;
+#: cp/friend.c:255
+#, fuzzy
+msgid "template parameter type `%T' declared `friend'"
+msgstr "Inyandikorugero Ubwoko"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+#, fuzzy
+msgid "`%#T' is not a template"
+msgstr "`%#T'ni OYA a Inyandikorugero"
+
+#: cp/friend.c:276
+#, fuzzy
+msgid "`%T' is already a friend of `%T'"
+msgstr "`%T'ni a Bya"
+
+#: cp/friend.c:376
+#, fuzzy
+msgid "member `%D' declared as friend before type `%T' defined"
+msgstr "Nka Mbere Ubwoko"
+
+#: cp/friend.c:431
+#, fuzzy
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr "a Inyandikorugero Umumaro"
+
+#: cp/friend.c:434
+#, fuzzy
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+msgstr "(NIBA iyi ni OYA Ubwoko i Umumaro Inyandikorugero Na Kongeramo Nyuma i Umumaro Izina: Inyandikorugero iyi Iburira"
+
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, fuzzy, c-format
+msgid "argument to `%s' missing\n"
+msgstr "Kuri"
+
+#: cp/init.c:334
+#, fuzzy
+msgid "`%D' should be initialized in the member initialization list"
+msgstr "`%D'in i Urutonde"
+
+#: cp/init.c:384
+#, fuzzy
+msgid "default-initialization of `%#D', which has reference type"
+msgstr "Mburabuzi Bya Indango Ubwoko"
+
+#: cp/init.c:389
+#, fuzzy
+msgid "uninitialized reference member `%D'"
+msgstr "Itatangijwe Indango"
+
+#: cp/init.c:397
+#, fuzzy
+msgid "initializer list treated as compound expression"
+msgstr "Urutonde Nka imvugo"
+
+#: cp/init.c:538
+#, fuzzy
+msgid "`%D' will be initialized after"
+msgstr "`%D'Nyuma"
+
+#: cp/init.c:541
+#, fuzzy
+msgid "base `%T' will be initialized after"
+msgstr "SHINGIRO Nyuma"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: cp/init.c:544
+#, fuzzy
+msgid " `%#D'"
+msgstr "`%#D'"
+
+# sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_BASE.text
+#: cp/init.c:546
+#, fuzzy
+msgid " base `%T'"
+msgstr "SHINGIRO"
+
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "Igikubo kugirango SHINGIRO"
+
+#: cp/init.c:631
+#, fuzzy
+msgid "initializations for multiple members of `%T'"
+msgstr "kugirango Igikubo Bya"
+
+#: cp/init.c:688
+#, fuzzy
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+msgstr "SHINGIRO ishuri in i Gukoporora"
+
+#: cp/init.c:926
+#, fuzzy
+msgid "class `%T' does not have any field named `%D'"
+msgstr "ishuri OYA Umwanya"
+
+#: cp/init.c:932
+#, fuzzy
+msgid "field `%#D' is static; the only point of initialization is its definition"
+msgstr "Umwanya ni i Akadomo Bya ni Insobanuro"
+
+#: cp/init.c:965
+#, fuzzy
+msgid "unnamed initializer for `%T', which has no base classes"
+msgstr "Kitiswe kugirango Oya SHINGIRO Inzego"
+
+#: cp/init.c:972
+#, fuzzy
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
+msgstr "Kitiswe kugirango Igikubo"
+
+#: cp/init.c:1007
+#, fuzzy
+msgid "type `%D' is not a direct or virtual base of `%T'"
+msgstr "Ubwoko ni OYA a Cyangwa Kitaboneka SHINGIRO Bya"
+
+#: cp/init.c:1010
+#, fuzzy
+msgid "type `%D' is not a direct base of `%T'"
+msgstr "Ubwoko ni OYA a SHINGIRO Bya"
+
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+#, fuzzy
+msgid "bad array initializer"
+msgstr "Imbonerahamwe"
+
+#: cp/init.c:1311
+#, fuzzy
+msgid "`%T' is not an aggregate type"
+msgstr "`%T'ni OYA Ubwoko"
+
+#: cp/init.c:1334
+#, fuzzy
+msgid "`%T' fails to be an aggregate typedef"
+msgstr "`%T'Kuri"
+
+#: cp/init.c:1343
+#, fuzzy
+msgid "type `%T' is of non-aggregate type"
+msgstr "Ubwoko ni Bya Ubwoko"
+
+#: cp/init.c:1446
+#, fuzzy
+msgid "cannot call destructor `%T::~%T' without object"
+msgstr "Igikoresho"
+
+#: cp/init.c:1490
+#, fuzzy
+msgid "invalid use of non-static field `%D'"
+msgstr "Sibyo Gukoresha Bya Umwanya"
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+#, fuzzy
+msgid "invalid use of member `%D'"
+msgstr "Sibyo Gukoresha Bya"
+
+#: cp/init.c:1509
+#, fuzzy
+msgid "no method `%T::%D'"
+msgstr "Oya Uburyo"
+
+#: cp/init.c:1602
+#, fuzzy
+msgid "incomplete type `%T' does not have member `%D'"
+msgstr "Ubwoko OYA"
+
+#: cp/init.c:1676
+#, fuzzy
+msgid "`%D' is not a member of type `%T'"
+msgstr "`%D'ni OYA a Bya Ubwoko"
+
+#: cp/init.c:1695
+#, fuzzy
+msgid "invalid pointer to bit-field `%D'"
+msgstr "Sibyo Mweretsi Kuri Umwanya"
+
+#: cp/init.c:1734
+#, fuzzy
+msgid "object missing in use of pointer-to-member construct"
+msgstr "Igikoresho Ibuze in Gukoresha Bya Mweretsi Kuri"
+
+#: cp/init.c:1774
+#, fuzzy
+msgid "member `%D' is non-static but referenced as a static member"
+msgstr "ni Nka a"
+
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
+#, fuzzy
+msgid "at this point in file"
+msgstr "ku iyi Akadomo in IDOSIYE"
+
+#: cp/init.c:1813
+#, fuzzy, c-format
+msgid "object missing in `%E'"
+msgstr "Igikoresho Ibuze in"
+
+#: cp/init.c:1944
+#, fuzzy
+msgid "new of array type fails to specify size"
+msgstr "Gishya Bya Imbonerahamwe Ubwoko Kuri Ingano"
+
+#: cp/init.c:1955
+#, fuzzy
+msgid "size in array new must have integral type"
+msgstr "Ingano in Imbonerahamwe Gishya Umubare Wuzuye Ubwoko"
+
+#: cp/init.c:1961
+#, fuzzy
+msgid "zero size array reserves no space"
+msgstr "Zeru Ingano Imbonerahamwe Oya Umwanya"
+
+#: cp/init.c:2026
+#, fuzzy
+msgid "new cannot be applied to a reference type"
+msgstr "Gishya Byashyizweho Kuri a Indango Ubwoko"
+
+#: cp/init.c:2032
+#, fuzzy
+msgid "new cannot be applied to a function type"
+msgstr "Gishya Byashyizweho Kuri a Umumaro Ubwoko"
+
+#: cp/init.c:2079
+#, fuzzy
+msgid "call to Java constructor, while `jclass' undefined"
+msgstr "Kuri kidasobanuye"
+
+#: cp/init.c:2095
+#, fuzzy
+msgid "can't find class$"
+msgstr "Gushaka ishuri"
+
+#: cp/init.c:2209
+#, fuzzy
+msgid "invalid type `void' for new"
+msgstr "Sibyo Ubwoko kugirango Gishya"
+
+#: cp/init.c:2261
+#, fuzzy, c-format
+msgid "call to Java constructor with `%s' undefined"
+msgstr "Kuri Na: kidasobanuye"
+
+#: cp/init.c:2369
+#, fuzzy
+msgid "ISO C++ forbids initialization in array new"
+msgstr "C in Imbonerahamwe Gishya"
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
+#, fuzzy
+msgid "initializer list being treated as compound expression"
+msgstr "Urutonde Nka imvugo"
+
+#: cp/init.c:2397
+#, fuzzy
+msgid "ISO C++ forbids aggregate initializer to new"
+msgstr "C Kuri Gishya"
+
+#: cp/init.c:2485
+#, fuzzy
+msgid "uninitialized const in `new' of `%#T'"
+msgstr "Itatangijwe in Bya"
+
+#: cp/init.c:2864
+msgid "initializer ends prematurely"
+msgstr ""
+
+#: cp/init.c:2934
+#, fuzzy
+msgid "cannot initialize multi-dimensional array with initializer"
+msgstr "gutangiza Imbonerahamwe Na:"
+
+#: cp/init.c:3124
+#, fuzzy
+msgid "unknown array size in delete"
+msgstr "Kitazwi Imbonerahamwe Ingano in Gusiba"
+
+#: cp/init.c:3389
+#, fuzzy
+msgid "type to vector delete is neither pointer or array type"
+msgstr "Ubwoko Kuri Gusiba ni Mweretsi Cyangwa Imbonerahamwe Ubwoko"
+
+#: cp/lex.c:136
+#, fuzzy
+msgid "type name expected before `*'"
+msgstr "Ubwoko Izina: Ikitezwe: Mbere"
+
+#: cp/lex.c:158
+#, fuzzy
+msgid "cannot declare references to references"
+msgstr "Indango Kuri Indango"
+
+#: cp/lex.c:163
+#, fuzzy
+msgid "cannot declare pointers to references"
+msgstr "Kuri Indango"
+
+#: cp/lex.c:167
+#, fuzzy
+msgid "type name expected before `&'"
+msgstr "Ubwoko Izina: Ikitezwe: Mbere"
+
+#: cp/lex.c:894
+#, fuzzy, c-format
+msgid "semicolon missing after %s declaration"
+msgstr "Akabago n'Akitso Ibuze Nyuma"
+
+#: cp/lex.c:897
+#, fuzzy
+msgid "semicolon missing after declaration of `%T'"
+msgstr "Akabago n'Akitso Ibuze Nyuma Bya"
+
+#: cp/lex.c:945
+#, fuzzy, c-format
+msgid "junk at end of #pragma %s"
+msgstr "Umwanda ku Impera Bya"
+
+#: cp/lex.c:952
+#, fuzzy, c-format
+msgid "invalid #pragma %s"
+msgstr "Sibyo"
+
+#: cp/lex.c:961
+#, fuzzy
+msgid "#pragma vtable no longer supported"
+msgstr "#Oya"
+
+#: cp/lex.c:1038
+#, fuzzy, c-format
+msgid "#pragma implementation for %s appears after file is included"
+msgstr "#kugirango Nyuma IDOSIYE ni"
+
+#: cp/lex.c:1063
+#, fuzzy
+msgid "junk at end of #pragma GCC java_exceptions"
+msgstr "Umwanda ku Impera Bya"
+
+#: cp/lex.c:1107
+#, fuzzy
+msgid "`%D' not defined"
+msgstr "`%D'Bitasobanutse>"
+
+#: cp/lex.c:1110
+#, fuzzy
+msgid "`%D' was not declared in this scope"
+msgstr "`%D'OYA in iyi Ingano:"
+
+#: cp/lex.c:1118
+#, fuzzy
+msgid "`%D' undeclared (first use this function)"
+msgstr "`%D'Itangira Gukoresha iyi Umumaro"
+
+#: cp/lex.c:1122
+#, fuzzy
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+msgstr "(Ikiranga ni Rimwe kugirango Umumaro in"
+
+#: cp/lex.c:1242
+#, fuzzy
+msgid "`::%D' undeclared (first use here)"
+msgstr "`::%D'Itangira Gukoresha"
+
+#: cp/mangle.c:2051
+#, fuzzy
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "Kuri a in i C"
+
+#: cp/mangle.c:2363
+#, fuzzy
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr "i Izina: Bya Guhindura>> in a Verisiyo Bya"
+
+#: cp/method.c:154
+#, fuzzy
+msgid "invalid use of member `%D' in static member function"
+msgstr "Sibyo Gukoresha Bya in Umumaro"
+
+#: cp/method.c:216
+#, fuzzy
+msgid "use of namespace `%D' as expression"
+msgstr "Gukoresha Bya Nka imvugo"
+
+#: cp/method.c:221
+#, fuzzy
+msgid "use of class template `%T' as expression"
+msgstr "Gukoresha Bya ishuri Inyandikorugero Nka imvugo"
+
+#: cp/method.c:234
+#, fuzzy, c-format
+msgid "use of %s from containing function"
+msgstr "Gukoresha Bya Bivuye Umumaro"
+
+#: cp/method.c:237
+msgid " `%#D' declared here"
+msgstr ""
+
+#: cp/method.c:255
+#, fuzzy
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+msgstr "Kubaza... kugirango ni in Igikubo"
+
+#: cp/method.c:458
+#, fuzzy
+msgid "generic thunk code fails for method `%#D' which uses `...'"
+msgstr "Gifitanye isano ITEGEKONGENGA kugirango Uburyo"
+
+#: cp/method.c:697
+#, fuzzy
+msgid "non-static const member `%#D', can't use default assignment operator"
+msgstr "Gukoresha Mburabuzi Igenera Mukoresha"
+
+#: cp/method.c:702
+#, fuzzy
+msgid "non-static reference member `%#D', can't use default assignment operator"
+msgstr "Indango Gukoresha Mburabuzi Igenera Mukoresha"
+
+#: parse.y:262
+#, fuzzy
+msgid "`%s' tag used in naming `%#T'"
+msgstr "`%s'Itagi: in"
+
+#: parse.y:542
+#, fuzzy
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr "Ijambo- banze OYA Na"
+
+#: parse.y:646
+#, fuzzy
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
+msgstr "Gukoresha Bya ni Bivuye Ibanjirije"
+
+#: parse.y:943
+#, fuzzy
+msgid "no base or member initializers given following ':'"
+msgstr "Oya SHINGIRO Cyangwa"
+
+#: parse.y:984
+#, fuzzy
+msgid "anachronistic old style base class initializer"
+msgstr "ki/ bishaje IMISUSIRE SHINGIRO ishuri"
+
+#. Handle `Class<Class<Type>>' without space in the `>>'
+#: parse.y:1117
+#, fuzzy
+msgid "`>>' should be `> >' in template class name"
+msgstr "`>>'in Inyandikorugero ishuri Izina:"
+
+#: parse.y:1164
+#, fuzzy
+msgid "use of template qualifier outside template"
+msgstr "Gukoresha Bya Inyandikorugero Hanze Inyandikorugero"
+
+#: parse.y:1193 parse.y:1202
+#, fuzzy, c-format
+msgid "ISO C++ forbids an empty condition for `%s'"
+msgstr "C ubusa Ibisabwa kugirango"
+
+#: parse.y:1225
+#, fuzzy
+msgid "definition of class `%T' in condition"
+msgstr "Insobanuro Bya ishuri in Ibisabwa"
+
+#: parse.y:1227
+#, fuzzy
+msgid "definition of enum `%T' in condition"
+msgstr "Insobanuro Bya in Ibisabwa"
+
+#: parse.y:1238
+#, fuzzy
+msgid "definition of array `%#D' in condition"
+msgstr "Insobanuro Bya Imbonerahamwe in Ibisabwa"
+
+#: parse.y:1351
+#, fuzzy
+msgid "old style placement syntax, use () instead"
+msgstr "ki/ bishaje IMISUSIRE Ishyira mu mwanya Gukoresha"
+
+#: parse.y:1362
+#, fuzzy
+msgid "`%T' is not a valid expression"
+msgstr "`%T'ni OYA a Byemewe imvugo"
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
+msgstr "Bya Gishya imvugo Na:"
+
+#: parse.y:1395
+#, fuzzy
+msgid "ISO C++ forbids compound literals"
+msgstr "C"
+
+#: parse.y:1642
+#, fuzzy
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr "C Amatsinda muri"
+
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "Sibyo Gukoresha Bya Inyandikorugero"
+
+#: parse.y:2053 parse.y:2068
+#, fuzzy
+msgid "sigof type specifier"
+msgstr "Ubwoko"
+
+#: parse.y:2058
+#, fuzzy
+msgid "`sigof' applied to non-aggregate expression"
+msgstr "`Byashyizweho Kuri imvugo"
+
+#: parse.y:2073
+#, fuzzy
+msgid "`sigof' applied to non-aggregate type"
+msgstr "`Byashyizweho Kuri Ubwoko"
+
+#: parse.y:2339
+#, fuzzy
+msgid "using `typename' outside of template"
+msgstr "ikoresha Hanze Bya Inyandikorugero"
+
+#: parse.y:2356
+#, fuzzy
+msgid "qualified name does not name a class"
+msgstr "Izina: OYA Izina: a ishuri"
+
+#: parse.y:2417
+#, fuzzy, c-format
+msgid "storage class specifier `%s' not allowed after struct or class"
+msgstr "ishuri OYA Nyuma Cyangwa ishuri"
+
+#: parse.y:2419
+#, fuzzy, c-format
+msgid "type specifier `%s' not allowed after struct or class"
+msgstr "Ubwoko OYA Nyuma Cyangwa ishuri"
+
+#: parse.y:2421
+#, fuzzy, c-format
+msgid "type qualifier `%s' not allowed after struct or class"
+msgstr "Ubwoko OYA Nyuma Cyangwa ishuri"
+
+#: parse.y:2423
+#, fuzzy
+msgid "no body nor ';' separates two class, struct or union declarations"
+msgstr "Oya Umubiri ishuri Cyangwa Ihuza"
+
+#: parse.y:2553
+#, fuzzy
+msgid "no bases given following `:'"
+msgstr "Oya"
+
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
+msgstr ""
+
+#: parse.y:2589
+#, fuzzy
+msgid "multiple access specifiers"
+msgstr "Igikubo"
+
+#: parse.y:2607
+#, fuzzy
+msgid "multiple `virtual' specifiers"
+msgstr "Igikubo"
+
+#: parse.y:2644
+#, fuzzy
+msgid "missing ';' before right brace"
+msgstr "Ibuze Mbere Iburyo:"
+
+#: parse.y:2865
+#, fuzzy
+msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+msgstr "C Imbonerahamwe Ingero Na: Ubwoko in Gishya"
+
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+#, fuzzy
+msgid "`%T' is not a class or namespace"
+msgstr "`%T'ni OYA a ishuri Cyangwa"
+
+#: parse.y:3377
+#, fuzzy
+msgid "ISO C++ forbids label declarations"
+msgstr "C Akarango"
+
+#: parse.y:3537
+#, fuzzy
+msgid "ISO C++ forbids computed gotos"
+msgstr "C"
+
+#: parse.y:3545
+#, fuzzy
+msgid "label must be followed by statement"
+msgstr "Akarango ku Inyandiko"
+
+#: parse.y:3590
+#, fuzzy
+msgid "must have at least one catch per try block"
+msgstr "ku Funga"
+
+#: parse.y:3650
+#, fuzzy
+msgid "ISO C++ forbids compound statements inside for initializations"
+msgstr "C Mo Imbere kugirango"
+
+#. This helps us recover from really nasty
+#. parse errors, for example, a missing right
+#. parenthesis.
+#: parse.y:3737 parse.y:3747
+#, fuzzy
+msgid "possibly missing ')'"
+msgstr "Ibuze"
+
+#: parse.y:3840
+#, fuzzy
+msgid "type specifier omitted for parameter"
+msgstr "Ubwoko kugirango"
+
+#: parse.y:3849
+#, fuzzy, c-format
+msgid "`%E' is not a type, use `typename %E' to make it one"
+msgstr "`%E'ni OYA a Ubwoko Gukoresha Kuri Ubwoko"
+
+#: parse.y:3851
+#, fuzzy
+msgid "no type `%D' in `%T'"
+msgstr "Oya Ubwoko in"
+
+#: parse.y:3854
+#, fuzzy, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr "Ubwoko kugirango"
+
+#: parse.y:3862
+#, fuzzy
+msgid "'%D' is used as a type, but is not defined as a type."
+msgstr "'%D'ni Nka a Ubwoko ni OYA Nka a Ubwoko"
+
+#: cp/pt.c:284
+#, fuzzy
+msgid "data member `%D' cannot be a member template"
+msgstr "Ibyatanzwe a Inyandikorugero"
+
+#: cp/pt.c:296
+#, fuzzy
+msgid "invalid member template declaration `%D'"
+msgstr "Sibyo Inyandikorugero"
+
+#: cp/pt.c:691
+#, fuzzy
+msgid "explicit specialization in non-namespace scope `%D'"
+msgstr "in Ingano:"
+
+#: cp/pt.c:703
+#, fuzzy
+msgid "enclosing class templates are not explicitly specialized"
+msgstr "ishuri Inyandikorugero OYA cy'umwihariko/ mwihariko"
+
+#: cp/pt.c:792 cp/pt.c:833
+#, fuzzy
+msgid "specializing `%#T' in different namespace"
+msgstr "in"
+
+#: cp/pt.c:793 cp/pt.c:834
+#, fuzzy
+msgid " from definition of `%#D'"
+msgstr "Bivuye Insobanuro Bya"
+
+#: cp/pt.c:801
+#, fuzzy
+msgid "specialization of `%T' after instantiation"
+msgstr "Bya Nyuma"
+
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "Nyuma"
+
+#: cp/pt.c:860
+#, fuzzy
+msgid "explicit specialization of non-template `%T'"
+msgstr "Bya Inyandikorugero"
+
+#: cp/pt.c:992
+#, fuzzy
+msgid "specialization of %D after instantiation"
+msgstr "Bya Nyuma"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/pt.c:1096
+#, fuzzy
+msgid "%s %+#D"
+msgstr "%s%+#D"
+
+#: cp/pt.c:1147
+#, fuzzy
+msgid "`%D' is not a function template"
+msgstr "`%D'ni OYA a Umumaro Inyandikorugero"
+
+#: cp/pt.c:1286
+#, fuzzy
+msgid "template-id `%D' for `%+D' does not match any template declaration"
+msgstr "Inyandikorugero ID kugirango OYA BIHUYE Inyandikorugero"
+
+#: cp/pt.c:1294
+#, fuzzy
+msgid "ambiguous template specialization `%D' for `%+D'"
+msgstr "Inyandikorugero kugirango"
+
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+#, fuzzy
+msgid "template-id `%D' in declaration of primary template"
+msgstr "Inyandikorugero ID in Bya Inyandikorugero"
+
+#: cp/pt.c:1534
+#, fuzzy
+msgid "template parameter list used in explicit instantiation"
+msgstr "Inyandikorugero Urutonde in"
+
+#: cp/pt.c:1540
+#, fuzzy
+msgid "definition provided for explicit instantiation"
+msgstr "Insobanuro kugirango"
+
+#: cp/pt.c:1546
+#, fuzzy
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr "Inyandikorugero Intonde in Bya"
+
+#: cp/pt.c:1562
+#, fuzzy
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr "Inyandikorugero Intonde in Bya"
+
+#: cp/pt.c:1579
+#, fuzzy
+msgid "explicit specialization not preceded by `template <>'"
+msgstr "OYA ku Inyandikorugero"
+
+#: cp/pt.c:1592
+#, fuzzy
+msgid "partial specialization `%D' of function template"
+msgstr "Bituzuye Bya Umumaro Inyandikorugero"
+
+#: cp/pt.c:1624
+#, fuzzy
+msgid "default argument specified in explicit specialization"
+msgstr "Mburabuzi in"
+
+#: cp/pt.c:1628
+#, fuzzy
+msgid "template specialization with C linkage"
+msgstr "Inyandikorugero Na: C"
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+#, fuzzy
+msgid "specialization of implicitly-declared special member function"
+msgstr "Bya Bidasanzwe Umumaro"
+
+#: cp/pt.c:1759
+#, fuzzy
+msgid "no member function `%D' declared in `%T'"
+msgstr "Oya Umumaro in"
+
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+#, fuzzy
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr "Inyandikorugero Intonde in Bya"
+
+#: cp/pt.c:2005
+#, fuzzy
+msgid " shadows template parm `%#D'"
+msgstr "Inyandikorugero"
+
+#: cp/pt.c:2409
+#, fuzzy
+msgid "template parameters not used in partial specialization:"
+msgstr "Inyandikorugero Ibigenga OYA in Bituzuye"
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: cp/pt.c:2413
+#, fuzzy
+msgid " `%D'"
+msgstr "`%D'"
+
+#: cp/pt.c:2425
+#, fuzzy
+msgid "partial specialization `%T' does not specialize any template arguments"
+msgstr "Bituzuye OYA Inyandikorugero ingingo"
+
+#: cp/pt.c:2450
+#, fuzzy, c-format
+msgid "template argument `%E' involves template parameter(s)"
+msgstr "Inyandikorugero Inyandikorugero S"
+
+#: cp/pt.c:2494
+#, fuzzy
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+msgstr "Ubwoko Bya Inyandikorugero ku Inyandikorugero S"
+
+#: cp/pt.c:2582
+#, fuzzy
+msgid "no default argument for `%D'"
+msgstr "Oya Mburabuzi kugirango"
+
+#: cp/pt.c:2735
+#, fuzzy
+msgid "template with C linkage"
+msgstr "Inyandikorugero Na: C"
+
+#: cp/pt.c:2738
+#, fuzzy
+msgid "template class without a name"
+msgstr "Inyandikorugero ishuri a Izina:"
+
+#: cp/pt.c:2815
+#, fuzzy
+msgid "`%D' does not declare a template type"
+msgstr "`%D'OYA a Inyandikorugero Ubwoko"
+
+#: cp/pt.c:2821
+#, fuzzy
+msgid "template definition of non-template `%#D'"
+msgstr "Inyandikorugero Insobanuro Bya Inyandikorugero"
+
+#: cp/pt.c:2862
+#, fuzzy
+msgid "expected %d levels of template parms for `%#D', got %d"
+msgstr "Ikitezwe: Intera Bya Inyandikorugero kugirango"
+
+#: cp/pt.c:2874
+#, fuzzy
+msgid "got %d template parameters for `%#D'"
+msgstr "Inyandikorugero Ibigenga kugirango"
+
+#: cp/pt.c:2877
+#, fuzzy
+msgid "got %d template parameters for `%#T'"
+msgstr "Inyandikorugero Ibigenga kugirango"
+
+#: cp/pt.c:2879
+#, fuzzy, c-format
+msgid " but %d required"
+msgstr "Bya ngombwa"
+
+#: cp/pt.c:2962
+#, fuzzy
+msgid "`%T' is not a template type"
+msgstr "`%T'ni OYA a Inyandikorugero Ubwoko"
+
+#: cp/pt.c:2978
+#, fuzzy
+msgid "previous declaration `%D'"
+msgstr "Ibanjirije"
+
+#: cp/pt.c:2979
+#, fuzzy, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr "Inyandikorugero Bya"
+
+#: cp/pt.c:2995
+#, fuzzy
+msgid "template parameter `%#D'"
+msgstr "Inyandikorugero"
+
+#: cp/pt.c:2996
+#, fuzzy
+msgid "redeclared here as `%#D'"
+msgstr "Nka"
+
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+#, fuzzy
+msgid "redefinition of default argument for `%#D'"
+msgstr "Bya Mburabuzi kugirango"
+
+#: cp/pt.c:3007
+#, fuzzy
+msgid " original definition appeared here"
+msgstr "Umwimerere Insobanuro"
+
+#: cp/pt.c:3100
+#, fuzzy, c-format
+msgid "`%E' is not a valid template argument"
+msgstr "`%E'ni OYA a Byemewe Inyandikorugero"
+
+#: cp/pt.c:3104
+#, fuzzy
+msgid "it must be the address of a function with external linkage"
+msgstr "i Aderesi Bya a Umumaro Na: external"
+
+#: cp/pt.c:3106
+#, fuzzy
+msgid "it must be the address of an object with external linkage"
+msgstr "i Aderesi Bya Igikoresho Na: external"
+
+#: cp/pt.c:3110
+#, fuzzy
+msgid "it must be a pointer-to-member of the form `&X::Y'"
+msgstr "a Mweretsi Kuri Bya i Ifishi"
+
+#: cp/pt.c:3121
+#, fuzzy, c-format
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+msgstr "Ikurikiranyanyuguti ni OYA a Byemewe Inyandikorugero ni i Aderesi Bya Igikoresho Na:"
+
+#: cp/pt.c:3133
+#, fuzzy, c-format
+msgid "address of non-extern `%E' cannot be used as template argument"
+msgstr "Aderesi Bya Nka Inyandikorugero"
+
+#: cp/pt.c:3144
+#, fuzzy, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr "Nka Inyandikorugero"
+
+#: cp/pt.c:3151
+#, fuzzy, c-format
+msgid "object `%E' cannot be used as template argument"
+msgstr "Igikoresho Nka Inyandikorugero"
+
+#: cp/pt.c:3526
+#, fuzzy, c-format
+msgid "to refer to a type member of a template parameter, use `typename %E'"
+msgstr "Kuri Kuri a Ubwoko Bya a Inyandikorugero Gukoresha"
+
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+#, fuzzy
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+msgstr "Ubwoko Agaciro ku in Inyandikorugero Urutonde kugirango"
+
+#: cp/pt.c:3542
+#, fuzzy
+msgid " expected a constant of type `%T', got `%T'"
+msgstr "Ikitezwe: a Bya Ubwoko"
+
+#: cp/pt.c:3546
+#, fuzzy, c-format
+msgid " expected a type, got `%E'"
+msgstr "Ikitezwe: a Ubwoko"
+
+#: cp/pt.c:3558
+#, fuzzy
+msgid " expected a type, got `%T'"
+msgstr "Ikitezwe: a Ubwoko"
+
+#: cp/pt.c:3560
+#, fuzzy
+msgid " expected a class template, got `%T'"
+msgstr "Ikitezwe: a ishuri Inyandikorugero"
+
+#: cp/pt.c:3596
+#, fuzzy
+msgid " expected a template of type `%D', got `%D'"
+msgstr "Ikitezwe: a Inyandikorugero Bya Ubwoko"
+
+#: cp/pt.c:3618
+#, fuzzy
+msgid "template-argument `%T' uses anonymous type"
+msgstr "Inyandikorugero Ubwoko"
+
+#: cp/pt.c:3621
+#, fuzzy
+msgid "template-argument `%T' uses local type `%T'"
+msgstr "Inyandikorugero Ubwoko"
+
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "Inyandikorugero ni a Byahinduwe Ubwoko"
+
+#: cp/pt.c:3666
+#, fuzzy
+msgid "could not convert template argument `%E' to `%T'"
+msgstr "OYA GUHINDURA Inyandikorugero Kuri"
+
+#: cp/pt.c:3710
+#, fuzzy, c-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr "Umubare Bya Inyandikorugero ingingo"
+
+#: cp/pt.c:3714
+#, fuzzy
+msgid "provided for `%D'"
+msgstr "kugirango"
+
+#: cp/pt.c:3761
+#, fuzzy, c-format
+msgid "template argument %d is invalid"
+msgstr "Inyandikorugero ni Sibyo"
+
+#: cp/pt.c:3997
+#, fuzzy
+msgid "non-template used as template"
+msgstr "Inyandikorugero Nka Inyandikorugero"
+
+#: cp/pt.c:4139
+#, fuzzy
+msgid "`%T' is not a template"
+msgstr "`%T'ni OYA a Inyandikorugero"
+
+#: cp/pt.c:4152
+#, fuzzy
+msgid "non-template type `%T' used as a template"
+msgstr "Inyandikorugero Ubwoko Nka a Inyandikorugero"
+
+#: cp/pt.c:4154
+#, fuzzy
+msgid "for template declaration `%D'"
+msgstr "kugirango Inyandikorugero"
+
+#: cp/pt.c:4770
+#, fuzzy
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+msgstr "Inyandikorugero Ubujyakuzimu Kinini Bya Gukoresha Ubujyakuzimu Kuri i Kinini"
+
+#: cp/pt.c:5247
+#, fuzzy
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr "ishuri Inyandikorugero kugirango"
+
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
+#: cp/pt.c:5254
+#, fuzzy
+msgid "%s %+#T"
+msgstr "%s%+#T"
+
+#: cp/pt.c:6284 cp/pt.c:6396
+#, fuzzy
+msgid "instantiation of `%D' as type `%T'"
+msgstr "Bya Nka Ubwoko"
+
+#: cp/pt.c:6440
+#, fuzzy
+msgid "invalid parameter type `%T'"
+msgstr "Sibyo Ubwoko"
+
+#: cp/pt.c:6442
+#, fuzzy
+msgid "in declaration `%D'"
+msgstr "in"
+
+#: cp/pt.c:6517
+#, fuzzy
+msgid "creating pointer to member function of non-class type `%T'"
+msgstr "Mweretsi Kuri Umumaro Bya ishuri Ubwoko"
+
+#: cp/pt.c:6680
+#, fuzzy
+msgid "creating array with size zero"
+msgstr "Imbonerahamwe Na: Ingano Zeru"
+
+#: cp/pt.c:6694
+#, fuzzy, c-format
+msgid "creating array with size zero (`%E')"
+msgstr "Imbonerahamwe Na: Ingano Zeru"
+
+#: cp/pt.c:6933
+#, fuzzy
+msgid "forming reference to void"
+msgstr "Indango Kuri"
+
+#: cp/pt.c:6935
+#, fuzzy
+msgid "forming %s to reference type `%T'"
+msgstr "Kuri Indango Ubwoko"
+
+#: cp/pt.c:6973
+#, fuzzy
+msgid "creating pointer to member of non-class type `%T'"
+msgstr "Mweretsi Kuri Bya ishuri Ubwoko"
+
+#: cp/pt.c:6979
+#, fuzzy
+msgid "creating pointer to member reference type `%T'"
+msgstr "Mweretsi Kuri Indango Ubwoko"
+
+#: cp/pt.c:7057
+#, fuzzy
+msgid "creating array of `%T'"
+msgstr "Imbonerahamwe Bya"
+
+#: cp/pt.c:7100
+#, fuzzy
+msgid "`%T' is not a class, struct, or union type"
+msgstr "`%T'ni OYA a ishuri Cyangwa Ihuza Ubwoko"
+
+#: cp/pt.c:7213
+#, fuzzy, c-format
+msgid "use of `%s' in template"
+msgstr "Gukoresha Bya in Inyandikorugero"
+
+#: cp/pt.c:7975
+#, fuzzy
+msgid "type `%T' composed from a local class is not a valid template-argument"
+msgstr "Ubwoko Bivuye a ishuri ni OYA a Byemewe Inyandikorugero"
+
+#: cp/pt.c:7976
+#, fuzzy
+msgid " trying to instantiate `%D'"
+msgstr "Kuri"
+
+#: cp/pt.c:8421
+#, fuzzy
+msgid "incomplete type unification"
+msgstr "Ubwoko"
+
+#: cp/pt.c:9387
+#, fuzzy, c-format
+msgid "use of `%s' in template type unification"
+msgstr "Gukoresha Bya in Inyandikorugero Ubwoko"
+
+#: cp/pt.c:9821 cp/pt.c:9893
+#, fuzzy
+msgid "explicit instantiation of non-template `%#D'"
+msgstr "Bya Inyandikorugero"
+
+#: cp/pt.c:9837 cp/pt.c:9888
+#, fuzzy
+msgid "no matching template for `%D' found"
+msgstr "Oya Inyandikorugero kugirango Byabonetse"
+
+#: cp/pt.c:9843
+#, fuzzy
+msgid "explicit instantiation of `%#D'"
+msgstr "Bya"
+
+#: cp/pt.c:9880
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr "Gusubiramo Bya"
+
+#: cp/pt.c:9905
+#, fuzzy
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+msgstr "C i Gukoresha Bya ku"
+
+#: cp/pt.c:9909 cp/pt.c:9999
+#, fuzzy
+msgid "storage class `%D' applied to template instantiation"
+msgstr "ishuri Byashyizweho Kuri Inyandikorugero"
+
+#: cp/pt.c:9966
+#, fuzzy
+msgid "explicit instantiation of non-template type `%T'"
+msgstr "Bya Inyandikorugero Ubwoko"
+
+#: cp/pt.c:9980
+#, fuzzy
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr "Bya Mbere Insobanuro Bya Inyandikorugero"
+
+#: cp/pt.c:9988
+#, fuzzy, c-format
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr "C i Gukoresha Bya ku"
+
+#: cp/pt.c:10032
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr "Gusubiramo Bya"
+
+#: cp/pt.c:10412
+#, fuzzy
+msgid "explicit instantiation of `%D' but no definition available"
+msgstr "Bya Oya Insobanuro Bihari"
+
+#: cp/pt.c:10815
+#, fuzzy
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr "`%#T'ni OYA a Byemewe Ubwoko kugirango a Inyandikorugero"
+
+#: cp/repo.c:271
+#, fuzzy
+msgid "-frepo must be used with -c"
+msgstr "-Na: C"
+
+#: cp/repo.c:361
+#, fuzzy, c-format
+msgid "mysterious repository information in %s"
+msgstr "Ibisobanuro in"
+
+#: cp/repo.c:376
+#, fuzzy, c-format
+msgid "can't create repository information file `%s'"
+msgstr "Kurema Ibisobanuro IDOSIYE"
+
+#: cp/rtti.c:240
+#, fuzzy
+msgid "cannot use typeid with -fno-rtti"
+msgstr "Gukoresha Na:"
+
+#: cp/rtti.c:246
+#, fuzzy
+msgid "must #include <typeinfo> before using typeid"
+msgstr "Gushyiramo Mbere ikoresha"
+
+#: cp/rtti.c:320
+#, fuzzy
+msgid "cannot create type information for type `%T' because its size is variable"
+msgstr "Kurema Ubwoko Ibisobanuro kugirango Ubwoko Ingano ni IMPINDURAGACIRO"
+
+#: cp/rtti.c:584 cp/rtti.c:598
+#, fuzzy
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+msgstr "Bya Kuri Nta narimwe"
+
+#: cp/rtti.c:674
+#, fuzzy
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+msgstr "Bya Ubwoko Kuri Ubwoko"
+
+#: cp/search.c:332
+#, fuzzy
+msgid "`%T' is an ambiguous base of `%T'"
+msgstr "`%T'ni SHINGIRO Bya"
+
+#: cp/search.c:350
+#, fuzzy
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr "`%T'ni SHINGIRO Bya"
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+#, fuzzy
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "Igenera Kuri Bya ishuri"
+
+#: cp/search.c:2050
+#, fuzzy
+msgid "adjusting pointers for covariant returns"
+msgstr "kugirango"
+
+#: cp/search.c:2054 cp/search.c:2061
+#, fuzzy
+msgid "invalid covariant return type for `%#D'"
+msgstr "Sibyo Garuka Ubwoko kugirango"
+
+#: cp/search.c:2055
+#, fuzzy
+msgid " overriding `%#D' (must be pointer or reference to class)"
+msgstr "Mweretsi Cyangwa Indango Kuri ishuri"
+
+#: cp/search.c:2062
+#, fuzzy
+msgid " overriding `%#D' (must use pointer or reference)"
+msgstr "Gukoresha Mweretsi Cyangwa Indango"
+
+#: cp/search.c:2067
+#, fuzzy
+msgid "conflicting return type specified for `%#D'"
+msgstr "Garuka Ubwoko kugirango"
+
+#: cp/search.c:2068
+msgid " overriding `%#D'"
+msgstr ""
+
+#: cp/search.c:2077
+#, fuzzy, c-format
+msgid "looser throw specifier for `%#F'"
+msgstr "kugirango"
+
+#: cp/search.c:2078
+#, c-format
+msgid " overriding `%#F'"
+msgstr ""
+
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+msgid "`%#D' cannot be declared"
+msgstr ""
+
+#: cp/search.c:2168
+#, fuzzy
+msgid " since `%#D' declared in base class"
+msgstr "guhera in SHINGIRO ishuri"
+
+#: cp/search.c:2309
+#, fuzzy
+msgid "`%#D' needs a final overrider"
+msgstr "`%#D'a"
+
+#: cp/semantics.c:919
+#, fuzzy, c-format
+msgid "type of asm operand `%E' could not be determined"
+msgstr "Ubwoko Bya OYA"
+
+#: cp/semantics.c:1051
+#, fuzzy
+msgid "ISO C++ does not permit named return values"
+msgstr "C OYA Garuka Uduciro"
+
+#: cp/semantics.c:1060
+#, fuzzy
+msgid "return identifier `%D' already in place"
+msgstr "Garuka Ikiranga in"
+
+#: cp/semantics.c:1068
+#, fuzzy
+msgid "can't redefine default return value for constructors"
+msgstr "Mburabuzi Garuka Agaciro kugirango"
+
+#: cp/semantics.c:1100
+#, fuzzy
+msgid "only constructors take base initializers"
+msgstr "SHINGIRO"
+
+#: cp/semantics.c:1343
+#, fuzzy
+msgid "`this' is unavailable for static member functions"
+msgstr "`ni kugirango Imimaro"
+
+#: cp/semantics.c:1349
+#, fuzzy
+msgid "invalid use of `this' in non-member function"
+msgstr "Sibyo Gukoresha Bya in Umumaro"
+
+#: cp/semantics.c:1351
+#, fuzzy
+msgid "invalid use of `this' at top level"
+msgstr "Sibyo Gukoresha Bya ku Hejuru: urwego"
+
+#: cp/semantics.c:1381
+#, fuzzy
+msgid "calling type `%T' like a method"
+msgstr "Ubwoko nka a Uburyo"
+
+#: cp/semantics.c:1419
+#, fuzzy
+msgid "destructor specifier `%T::~%T()' must have matching names"
+msgstr "Amazina"
+
+#: cp/semantics.c:1425
+#, fuzzy
+msgid "`%E' is not of type `%T'"
+msgstr "`%E'ni OYA Bya Ubwoko"
+
+#: cp/semantics.c:1613
+#, fuzzy
+msgid "template type parameters must use the keyword `class' or `typename'"
+msgstr "Inyandikorugero Ubwoko Ibigenga Gukoresha i Ijambo- banze Cyangwa"
+
+#: cp/semantics.c:1652
+#, fuzzy
+msgid "invalid default template argument"
+msgstr "Sibyo Mburabuzi Inyandikorugero"
+
+#: cp/semantics.c:1694
+#, fuzzy
+msgid "definition of `%#T' inside template parameter list"
+msgstr "Insobanuro Bya Mo Imbere Inyandikorugero Urutonde"
+
+#: cp/semantics.c:1710
+#, fuzzy
+msgid "invalid definition of qualified type `%T'"
+msgstr "Sibyo Insobanuro Bya Ubwoko"
+
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "Sibyo SHINGIRO ishuri"
+
+#: cp/semantics.c:2062
+#, fuzzy
+msgid "base class `%T' has cv qualifiers"
+msgstr "SHINGIRO ishuri"
+
+#: cp/semantics.c:2093
+#, fuzzy
+msgid "multiple declarators in template declaration"
+msgstr "Igikubo in Inyandikorugero"
+
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "Ubwoko Bya ni Kitazwi"
+
+#: cp/spew.c:225
+#, fuzzy, c-format
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgstr "Ikiranga Izina: Na: C By'imbere"
+
+#: cp/spew.c:1002 cp/spew.c:1340
+#, fuzzy
+msgid "parse error at end of saved function text"
+msgstr "Ikosa ku Impera Bya Umumaro Umwandiko"
+
+#: cp/spew.c:1090 cp/spew.c:1178
+#, fuzzy
+msgid "%Hend of file read inside definition"
+msgstr "%HendBya IDOSIYE Gusoma Mo Imbere Insobanuro"
+
+#: cp/spew.c:1121
+#, fuzzy
+msgid "parse error in method specification"
+msgstr "Ikosa in Uburyo"
+
+#: cp/spew.c:1161
+#, fuzzy
+msgid "function body for constructor missing"
+msgstr "Umumaro Umubiri kugirango Ibuze"
+
+#: cp/spew.c:1262
+#, fuzzy
+msgid "%Hend of file read inside default argument"
+msgstr "%HendBya IDOSIYE Gusoma Mo Imbere Mburabuzi"
+
+#: cp/spew.c:1419
+#, fuzzy
+msgid "circular dependency in default args of `%#D'"
+msgstr "Cy'uruziga in Mburabuzi Bya"
+
+#: cp/spew.c:1483
+#, fuzzy
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr "Sibyo Ubwoko kugirango Mburabuzi Kuri"
+
+#: cp/spew.c:1548
+#, fuzzy, c-format
+msgid "%s before `%s'"
+msgstr "%sMbere"
+
+#: cp/spew.c:1550
+#, fuzzy, c-format
+msgid "%s before `%c'"
+msgstr "%sMbere"
+
+#: cp/spew.c:1552
+#, fuzzy, c-format
+msgid "%s before `\\%o'"
+msgstr "%sMbere"
+
+#: cp/spew.c:1555
+#, fuzzy, c-format
+msgid "%s before `%s' token"
+msgstr "%sMbere"
+
+#: cp/tree.c:263 cp/tree.c:275
+#, fuzzy, c-format
+msgid "non-lvalue in %s"
+msgstr "in"
+
+#: cp/tree.c:562
+#, fuzzy
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "`%V'Byashyizweho Kuri"
+
+#: cp/tree.c:1941
+#, fuzzy, c-format
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr "`%s'Ikiranga Byashyizweho Kuri ishuri"
+
+#: cp/tree.c:1971
+#, fuzzy, c-format
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr "`%s'Ikiranga Byashyizweho Kuri ishuri"
+
+#: cp/tree.c:1977
+#, fuzzy, c-format
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+msgstr "`%s'ni g NONEAHA ku Mburabuzi"
+
+#: cp/tree.c:2002
+#, fuzzy
+msgid "requested init_priority is not an integer constant"
+msgstr "ni OYA Umubare wuzuye"
+
+#: cp/tree.c:2023
+#, fuzzy, c-format
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+msgstr "Gukoresha Ikiranga ku IDOSIYE Ingano: Bya Ibintu Bya ishuri Ubwoko"
+
+#: cp/tree.c:2031
+#, fuzzy
+msgid "requested init_priority is out of range"
+msgstr "ni Inyuma Bya Urutonde"
+
+#: cp/tree.c:2041
+#, fuzzy
+msgid "requested init_priority is reserved for internal use"
+msgstr "ni kugirango By'imbere Gukoresha"
+
+#: cp/tree.c:2051
+#, fuzzy, c-format
+msgid "`%s' attribute is not supported on this platform"
+msgstr "`%s'Ikiranga ni OYA ku iyi"
+
+#: cp/tree.c:2588
+#, fuzzy, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "Kugenzura... Byanze in ku"
+
+#: cp/typeck.c:524
+#, fuzzy, c-format
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+msgstr "C hagati Mweretsi Bya Ubwoko Na Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:545
+#, fuzzy
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+msgstr "%shagati Mweretsi Na a"
+
+#: cp/typeck.c:1436
+#, fuzzy
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+msgstr "C Ihindurangero Bivuye Kuri"
+
+#: cp/typeck.c:1514
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "Sibyo Porogaramu Bya Kuri a Umumaro"
+
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "Sibyo Porogaramu Bya Kuri"
+
+#: cp/typeck.c:1538
+#, fuzzy
+msgid "sizeof applied to a bit-field"
+msgstr "Byashyizweho Kuri a Umwanya"
+
+#: cp/typeck.c:1541
+#, fuzzy
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr "C Kuri imvugo Bya Umumaro Ubwoko"
+
+#: cp/typeck.c:1759
+#, fuzzy
+msgid "deprecated conversion from string constant to `%T'"
+msgstr "Bitemewe. Ihindurangero Bivuye Ikurikiranyanyuguti Kuri"
+
+#: cp/typeck.c:1890 cp/typeck.c:2122
+#, fuzzy
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "Kubaza... kugirango in ni Bya ishuri Ubwoko"
+
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "`%D'ni OYA a Bya"
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+#, fuzzy
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "Sibyo Kuri Ibyatanzwe Bya Igikoresho"
+
+#: cp/typeck.c:1959 cp/typeck.c:1980
+#, fuzzy
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr "(i Makoro"
+
+#: cp/typeck.c:2168
+#, fuzzy
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "`%D::%D'ni OYA a Bya"
+
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "`%T'ni OYA a SHINGIRO Bya"
+
+#: cp/typeck.c:2199
+#, fuzzy
+msgid "destructor specifier `%T::~%T' must have matching names"
+msgstr "Amazina"
+
+#: cp/typeck.c:2205
+#, fuzzy
+msgid "type `%T' has no destructor"
+msgstr "Ubwoko Oya"
+
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "`%D'ni OYA a Inyandikorugero Umumaro"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+#, fuzzy
+msgid "`%T' is not a pointer-to-object type"
+msgstr "`%T'ni OYA a Mweretsi Kuri Igikoresho Ubwoko"
+
+#: cp/typeck.c:2365
+#, fuzzy, c-format
+msgid "invalid use of `%s' on pointer to member"
+msgstr "Sibyo Gukoresha Bya ku Mweretsi Kuri"
+
+#: cp/typeck.c:2371
+#, fuzzy
+msgid "invalid type argument"
+msgstr "Sibyo Ubwoko"
+
+#: cp/typeck.c:2474
+#, fuzzy
+msgid "ISO C++ forbids subscripting non-lvalue array"
+msgstr "C Imbonerahamwe"
+
+#: cp/typeck.c:2485
+#, fuzzy
+msgid "subscripting array declared `register'"
+msgstr "Imbonerahamwe"
+
+#: cp/typeck.c:2570
+#, fuzzy, c-format
+msgid "object missing in use of `%E'"
+msgstr "Igikoresho Ibuze in Gukoresha Bya"
+
+#: cp/typeck.c:2674
+#, fuzzy
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr "C Bivuye muri Porogaramu"
+
+#: cp/typeck.c:2699
+#, fuzzy, c-format
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+msgstr "Gukoresha Cyangwa Kuri Mweretsi Kuri Umumaro in"
+
+#: cp/typeck.c:2712
+#, fuzzy, c-format
+msgid "`%E' cannot be used as a function"
+msgstr "`%E'Nka a Umumaro"
+
+#: cp/typeck.c:2824
+#, fuzzy
+msgid "too many arguments to %s `%+#D'"
+msgstr "ingingo Kuri"
+
+#: cp/typeck.c:2865
+#, fuzzy
+msgid "parameter type of called function is incomplete"
+msgstr "Ubwoko Bya Umumaro ni"
+
+#: cp/typeck.c:2928
+#, fuzzy
+msgid "too few arguments to %s `%+#D'"
+msgstr "ingingo Kuri"
+
+#: cp/typeck.c:3056 cp/typeck.c:3066
+#, fuzzy
+msgid "assuming cast to type `%T' from overloaded function"
+msgstr "Kuri Ubwoko Bivuye Umumaro"
+
+#: cp/typeck.c:3126
+#, fuzzy, c-format
+msgid "division by zero in `%E / 0'"
+msgstr "ku Zeru in"
+
+#: cp/typeck.c:3128
+#, fuzzy, c-format
+msgid "division by zero in `%E / 0.'"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:3158
+#, fuzzy, c-format
+msgid "division by zero in `%E %% 0'"
+msgstr "ku Zeru in"
+
+#: cp/typeck.c:3160
+#, fuzzy, c-format
+msgid "division by zero in `%E %% 0.'"
+msgstr "ku Zeru in 0"
+
+#: cp/typeck.c:3240
+#, fuzzy, c-format
+msgid "%s rotate count is negative"
+msgstr "%sKuzerutsa IBARA ni"
+
+#: cp/typeck.c:3243
+#, fuzzy, c-format
+msgid "%s rotate count >= width of type"
+msgstr "%sKuzerutsa IBARA Ubugari Bya Ubwoko"
+
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+#, fuzzy
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "C hagati Mweretsi Na Umubare wuzuye"
+
+#: cp/typeck.c:3553
+#, fuzzy
+msgid "comparison between types `%#T' and `%#T'"
+msgstr "hagati Na"
+
+#: cp/typeck.c:3589
+#, fuzzy
+msgid "comparison between signed and unsigned integer expressions"
+msgstr "hagati Na Bitashizweho umukono Umubare wuzuye"
+
+#: cp/typeck.c:3654
+#, fuzzy
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr "Sibyo Bya Na Kuri Nyabibiri"
+
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+#, fuzzy
+msgid "NULL used in arithmetic"
+msgstr "in"
+
+#: cp/typeck.c:3743
+#, fuzzy
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+msgstr "C ikoresha Mweretsi Bya Ubwoko in Gukuramo"
+
+#: cp/typeck.c:3745
+#, fuzzy
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr "C ikoresha Mweretsi Kuri a Umumaro in Gukuramo"
+
+#: cp/typeck.c:3747
+#, fuzzy
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr "C ikoresha Mweretsi Kuri a Uburyo in Gukuramo"
+
+#: cp/typeck.c:3749
+#, fuzzy
+msgid "ISO C++ forbids using pointer to a member in subtraction"
+msgstr "C ikoresha Mweretsi Kuri a in Gukuramo"
+
+#: cp/typeck.c:3761
+#, fuzzy
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr "Sibyo Gukoresha Bya a Mweretsi Kuri Ubwoko in Mweretsi"
+
+#: cp/typeck.c:3821
+#, fuzzy, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr "Sibyo Gukoresha Bya Kuri Ifishi a Mweretsi Kuri Umumaro a ID"
+
+#: cp/typeck.c:3827
+#, fuzzy, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr "Kuri Ifishi a Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:3850
+#, fuzzy
+msgid "taking address of temporary"
+msgstr "Aderesi Bya By'igihe gito"
+
+#: cp/typeck.c:4091
+#, fuzzy, c-format
+msgid "ISO C++ forbids %sing an enum"
+msgstr "C"
+
+#: cp/typeck.c:4103
+#, fuzzy
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr "a Mweretsi Kuri Ubwoko"
+
+#: cp/typeck.c:4110
+#, fuzzy
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr "C a Mweretsi Bya Ubwoko"
+
+#: cp/typeck.c:4135
+#, fuzzy
+msgid "cast to non-reference type used as lvalue"
+msgstr "Kuri Indango Ubwoko Nka"
+
+#: cp/typeck.c:4169
+#, fuzzy
+msgid "invalid use of `--' on bool variable `%D'"
+msgstr "Sibyo Gukoresha Bya ku IMPINDURAGACIRO"
+
+#. ARM $3.4
+#: cp/typeck.c:4202
+#, fuzzy
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr "C Aderesi Bya Umumaro"
+
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+#, fuzzy
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "C i Aderesi Bya Umumaro Kuri Ifishi a Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:4271
+#, fuzzy
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "C i Aderesi Bya a Umumaro Kuri Ifishi a Mweretsi Kuri Umumaro"
+
+#: cp/typeck.c:4295
+#, fuzzy
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+msgstr "C i Aderesi Bya a Kuri a imvugo"
+
+#: cp/typeck.c:4324
+#, fuzzy
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "Kuri Aderesi Bya Umwanya Imiterere"
+
+#: cp/typeck.c:4444
+#, fuzzy
+msgid "taking address of destructor"
+msgstr "Aderesi Bya"
+
+#: cp/typeck.c:4457
+#, fuzzy
+msgid "taking address of bound pointer-to-member expression"
+msgstr "Aderesi Bya Mweretsi Kuri imvugo"
+
+#: cp/typeck.c:4473
+#, fuzzy
+msgid "cannot create pointer to reference member `%D'"
+msgstr "Kurema Mweretsi Kuri Indango"
+
+#: cp/typeck.c:4536
+#, fuzzy
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr "i Aderesi Bya ni imvugo"
+
+#: cp/typeck.c:4555
+#, fuzzy
+msgid "address requested for `%D', which is declared `register'"
+msgstr "Aderesi kugirango ni"
+
+#: cp/typeck.c:4682
+#, fuzzy
+msgid "static_cast from type `%T' to type `%T' casts away constness"
+msgstr "Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4871
+#, fuzzy
+msgid "invalid static_cast from type `%T' to type `%T'"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4910
+#, fuzzy
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+msgstr "Sibyo Bya imvugo Bya Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4930
+#, fuzzy
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
+msgstr "Bivuye Kuri"
+
+#: cp/typeck.c:4943
+#, fuzzy
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+msgstr "Bivuye Kuri Cyangwa"
+
+#: cp/typeck.c:4952
+#, fuzzy
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+msgstr "C hagati Mweretsi Kuri Umumaro Na Mweretsi Kuri Igikoresho"
+
+#: cp/typeck.c:4958
+#, fuzzy
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:4985
+#, fuzzy
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr "Sibyo Gukoresha Bya Na: Ubwoko ni OYA a Mweretsi Indango a Mweretsi Kuri Ibyatanzwe Ubwoko"
+
+#: cp/typeck.c:4988
+#, fuzzy
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr "Sibyo Gukoresha Bya Na: Ubwoko ni a Mweretsi Cyangwa Indango Kuri a Umumaro Ubwoko"
+
+#: cp/typeck.c:5011
+#, fuzzy
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+msgstr "Sibyo Bya Bya Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:5027
+#, fuzzy
+msgid "invalid const_cast from type `%T' to type `%T'"
+msgstr "Sibyo Bivuye Ubwoko Kuri Ubwoko"
+
+#: cp/typeck.c:5069 cp/typeck.c:5074
+#, fuzzy
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr "C Kuri Imbonerahamwe Ubwoko"
+
+#: cp/typeck.c:5082
+#, fuzzy
+msgid "invalid cast to function type `%T'"
+msgstr "Sibyo Kuri Umumaro Ubwoko"
+
+#: cp/typeck.c:5138
+#, fuzzy
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+msgstr "Bivuye Kuri Bivuye Mweretsi Intego Ubwoko"
+
+#: cp/typeck.c:5184
+#, fuzzy
+msgid "cast from `%T' to `%T' increases required alignment of target type"
+msgstr "Bivuye Kuri Bya ngombwa Itunganya Bya Intego Ubwoko"
+
+#: cp/typeck.c:5357
+#, fuzzy
+msgid " in evaluation of `%Q(%#T, %#T)'"
+msgstr "in Bya"
+
+#: cp/typeck.c:5399
+#, fuzzy
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+msgstr "C Kuri Indango Ubwoko Nka"
+
+#: cp/typeck.c:5463
+#, fuzzy
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr "in Igenera Bya Kuri"
+
+#: cp/typeck.c:5470
+#, fuzzy
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "C Igenera Bya"
+
+#: cp/typeck.c:5577
+#, fuzzy
+msgid " in pointer to member function conversion"
+msgstr "in Mweretsi Kuri Umumaro Ihindurangero"
+
+#: cp/typeck.c:5585
+#, fuzzy
+msgid " in pointer to member conversion"
+msgstr "in Mweretsi Kuri Ihindurangero"
+
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+#, fuzzy
+msgid "pointer to member cast via virtual base `%T' of `%T'"
+msgstr "Mweretsi Kuri Biturutse Kitaboneka SHINGIRO Bya"
+
+#: cp/typeck.c:5619
+#, fuzzy
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
+msgstr "Mweretsi Kuri Ihindurangero Biturutse Kitaboneka SHINGIRO Bya"
+
+#: cp/typeck.c:5695
+#, fuzzy
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr "Sibyo Ihindurangero Kuri Ubwoko Bivuye Ubwoko"
+
+#: cp/typeck.c:5860
+#, fuzzy
+msgid "passing NULL used for non-pointer %s %P of `%D'"
+msgstr "kugirango Mweretsi Bya"
+
+#: cp/typeck.c:5863
+#, fuzzy
+msgid "%s to non-pointer type `%T' from NULL"
+msgstr "%sKuri Mweretsi Ubwoko Bivuye"
+
+#: cp/typeck.c:5871
+#, fuzzy
+msgid "passing `%T' for %s %P of `%D'"
+msgstr "kugirango Bya"
+
+#: cp/typeck.c:5874
+#, fuzzy
+msgid "%s to `%T' from `%T'"
+msgstr "%sKuri Bivuye"
+
+#: cp/typeck.c:5884
+#, fuzzy
+msgid "passing negative value `%E' for %s %P of `%D'"
+msgstr "Agaciro kugirango Bya"
+
+#: cp/typeck.c:5887
+#, fuzzy
+msgid "%s of negative value `%E' to `%T'"
+msgstr "%sBya Agaciro Kuri"
+
+#: cp/typeck.c:5982
+#, fuzzy
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+msgstr "GUHINDURA Kuri kugirango Kuri"
+
+#: cp/typeck.c:5985
+#, fuzzy
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr "GUHINDURA Kuri in"
+
+#: cp/typeck.c:6073 cp/typeck.c:6075
+#, fuzzy
+msgid "in passing argument %P of `%+D'"
+msgstr "in Bya"
+
+#: cp/typeck.c:6190
+#, fuzzy
+msgid "returning reference to temporary"
+msgstr "Indango Kuri By'igihe gito"
+
+#: cp/typeck.c:6197
+#, fuzzy
+msgid "reference to non-lvalue returned"
+msgstr "Indango Kuri"
+
+#: cp/typeck.c:6209
+#, fuzzy
+msgid "reference to local variable `%D' returned"
+msgstr "Indango Kuri IMPINDURAGACIRO"
+
+#: cp/typeck.c:6212
+#, fuzzy
+msgid "address of local variable `%D' returned"
+msgstr "Aderesi Bya IMPINDURAGACIRO"
+
+#: cp/typeck.c:6243
+#, fuzzy
+msgid "returning a value from a destructor"
+msgstr "a Agaciro Bivuye a"
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+#, fuzzy
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr "Garuka Bivuye a Bya a Umumaro Funga Bya a"
+
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+#, fuzzy
+msgid "returning a value from a constructor"
+msgstr "a Agaciro Bivuye a"
+
+#: cp/typeck.c:6271
+#, fuzzy
+msgid "return-statement with no value, in function declared with a non-void return type"
+msgstr "Garuka Inyandiko Na: Oya Agaciro in Umumaro Na: a Garuka Ubwoko"
+
+#: cp/typeck.c:6287
+#, fuzzy
+msgid "return-statement with a value, in function declared with a void return type"
+msgstr "Garuka Inyandiko Na: a Agaciro in Umumaro Na: a Garuka Ubwoko"
+
+#: cp/typeck.c:6308
+#, fuzzy
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+msgstr "`Mukoresha OYA Garuka ni Cyangwa Gishya ni in INGARUKA"
+
+#: cp/typeck2.c:54
+#, fuzzy
+msgid "type `%T' is not a base type for type `%T'"
+msgstr "Ubwoko ni OYA a SHINGIRO Ubwoko kugirango Ubwoko"
+
+#: cp/typeck2.c:157
+#, fuzzy
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr "IMPINDURAGACIRO Kuri Bya Ubwoko"
+
+#: cp/typeck2.c:160
+#, fuzzy
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr "Kuri Bya Ubwoko"
+
+#: cp/typeck2.c:163
+#, fuzzy
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr "Umwanya Kuri Bya Ubwoko"
+
+#: cp/typeck2.c:167
+#, fuzzy
+msgid "invalid return type for member function `%#D'"
+msgstr "Sibyo Garuka Ubwoko kugirango Umumaro"
+
+#: cp/typeck2.c:169
+#, fuzzy
+msgid "invalid return type for function `%#D'"
+msgstr "Sibyo Garuka Ubwoko kugirango Umumaro"
+
+#: cp/typeck2.c:172
+#, fuzzy
+msgid "cannot allocate an object of type `%T'"
+msgstr "Igikoresho Bya Ubwoko"
+
+#: cp/typeck2.c:179
+#, fuzzy
+msgid " because the following virtual functions are abstract:"
+msgstr "i Kitaboneka Imimaro Incamake"
+
+# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
+#: cp/typeck2.c:181
+#, fuzzy
+msgid "\t%#D"
+msgstr "%#D"
+
+#: cp/typeck2.c:184
+#, fuzzy
+msgid " since type `%T' has abstract virtual functions"
+msgstr "guhera Ubwoko Incamake Kitaboneka Imimaro"
+
+#: cp/typeck2.c:338
+#, fuzzy
+msgid "constructor syntax used, but no constructor declared for type `%T'"
+msgstr "Oya kugirango Ubwoko"
+
+#: cp/typeck2.c:349
+#, fuzzy
+msgid "comma expression used to initialize return value"
+msgstr "Akitso imvugo Kuri gutangiza Garuka Agaciro"
+
+#: cp/typeck2.c:358
+#, fuzzy
+msgid "cannot initialize arrays using this syntax"
+msgstr "gutangiza ikoresha iyi"
+
+#: cp/typeck2.c:473
+#, fuzzy
+msgid "initializing array with parameter list"
+msgstr "Gutangiza Imbonerahamwe Na: Urutonde"
+
+#: cp/typeck2.c:529
+#, fuzzy
+msgid "initializer for scalar variable requires one element"
+msgstr "kugirango IMPINDURAGACIRO Ikigize:"
+
+#: cp/typeck2.c:536
+#, fuzzy
+msgid "braces around scalar initializer for `%T'"
+msgstr "Ingirwadusodeko kugirango"
+
+#: cp/typeck2.c:539
+#, fuzzy
+msgid "ignoring extra initializers for `%T'"
+msgstr "Birenga kugirango"
+
+#: cp/typeck2.c:551
+#, fuzzy
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr "IMPINDURAGACIRO Igikoresho Bya Ubwoko Gicurasi OYA"
+
+#: cp/typeck2.c:561
+#, fuzzy
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+msgstr "Bya Ubwoko ku OYA ku"
+
+#: cp/typeck2.c:627
+#, fuzzy
+msgid "aggregate has a partly bracketed initializer"
+msgstr "a"
+
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
+msgstr ""
+
+#: cp/typeck2.c:682
+#, fuzzy
+msgid "non-empty initializer for array of empty elements"
+msgstr "ubusa kugirango Imbonerahamwe Bya ubusa Ibintu"
+
+#: cp/typeck2.c:736
+#, fuzzy
+msgid "initializer list for object of class with virtual base classes"
+msgstr "Urutonde kugirango Igikoresho Bya ishuri Na: Kitaboneka SHINGIRO Inzego"
+
+#: cp/typeck2.c:742
+#, fuzzy
+msgid "initializer list for object of class with base classes"
+msgstr "Urutonde kugirango Igikoresho Bya ishuri Na: SHINGIRO Inzego"
+
+#: cp/typeck2.c:748
+#, fuzzy
+msgid "initializer list for object using virtual functions"
+msgstr "Urutonde kugirango Igikoresho ikoresha Kitaboneka Imimaro"
+
+#: cp/typeck2.c:811 cp/typeck2.c:827
+#, fuzzy
+msgid "missing initializer for member `%D'"
+msgstr "Ibuze kugirango"
+
+#: cp/typeck2.c:816
+#, fuzzy
+msgid "uninitialized const member `%D'"
+msgstr "Itatangijwe"
+
+#: cp/typeck2.c:818
+#, fuzzy
+msgid "member `%D' with uninitialized const fields"
+msgstr "Na: Itatangijwe Imyanya"
+
+#: cp/typeck2.c:821
+#, fuzzy
+msgid "member `%D' is uninitialized reference"
+msgstr "ni Itatangijwe Indango"
+
+#: cp/typeck2.c:868
+#, fuzzy
+msgid "index value instead of field name in union initializer"
+msgstr "Umubarendanga Agaciro Bya Umwanya Izina: in Ihuza"
+
+#: cp/typeck2.c:880
+#, fuzzy
+msgid "no field `%D' in union being initialized"
+msgstr "Oya Umwanya in Ihuza"
+
+#: cp/typeck2.c:888
+#, fuzzy
+msgid "union `%T' with no named members cannot be initialized"
+msgstr "Ihuza Na: Oya"
+
+#: cp/typeck2.c:924
+#, fuzzy
+msgid "excess elements in aggregate initializer"
+msgstr "Ibintu in"
+
+#: cp/typeck2.c:1038
+#, fuzzy
+msgid "circular pointer delegation detected"
+msgstr "Cy'uruziga Mweretsi"
+
+#: cp/typeck2.c:1051
+#, fuzzy
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr "SHINGIRO Bya Mweretsi Ubwoko"
+
+#: cp/typeck2.c:1065
+#, fuzzy
+msgid "result of `operator->()' yields non-pointer result"
+msgstr "Igisubizo Bya Mukoresha Mweretsi Igisubizo"
+
+#: cp/typeck2.c:1067
+#, fuzzy
+msgid "base operand of `->' is not a pointer"
+msgstr "SHINGIRO Bya ni OYA a Mweretsi"
+
+#: cp/typeck2.c:1133
+#, fuzzy
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+msgstr "`%E'Nka a Mweretsi guhera ni Bya Ubwoko"
+
+#: cp/typeck2.c:1140
+#, fuzzy
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+msgstr "Gukurikiza Mweretsi Kuri ni Bya Ubwoko"
+
+#: cp/typeck2.c:1149
+#, fuzzy
+msgid "member type `%T::' incompatible with object type `%T'"
+msgstr "Ubwoko Na: Igikoresho Ubwoko"
+
+#: cp/typeck2.c:1186
+#, fuzzy
+msgid "`%T' fails to be a typedef or built-in type"
+msgstr "`%T'Kuri a Cyangwa in Ubwoko"
+
+#: cp/typeck2.c:1259
+#, fuzzy, c-format
+msgid "ISO C++ forbids defining types within %s"
+msgstr "C muri"
+
+#: cp/typeck2.c:1384
+#, fuzzy
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "Kuri Umumaro Ubwoko"
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "Kuri Umumaro Ubwoko"
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, fuzzy, c-format
+msgid "%s is deprecated, please see the documentation for details"
+msgstr "%sni Bitemewe. i kugirango Birambuye"
+
+#: cp/lang-options.h:29
+#, fuzzy
+msgid "Do not obey access control semantics"
+msgstr "OYA Igenzura"
+
+#: cp/lang-options.h:31
+#, fuzzy
+msgid "Change when template instances are emitted"
+msgstr "Ryari: Inyandikorugero Ingero"
+
+#: cp/lang-options.h:36
+#, fuzzy
+msgid "Check the return value of new"
+msgstr "i Garuka Agaciro Bya Gishya"
+
+#: cp/lang-options.h:39
+#, fuzzy
+msgid "Reduce size of object files"
+msgstr "Ingano Bya Igikoresho Idosiye"
+
+#: cp/lang-options.h:43
+#, fuzzy
+msgid "Make string literals `char[]' instead of `const char[]'"
+msgstr "Ikurikiranyanyuguti INYUGUTI Bya INYUGUTI"
+
+#: cp/lang-options.h:46
+#, fuzzy
+msgid "Dump the entire translation unit to a file"
+msgstr "i Umwandiko wahinduwe ururimi Igice: Kuri a IDOSIYE"
+
+#: cp/lang-options.h:48
+#, fuzzy
+msgid "Do not inline member functions by default"
+msgstr "OYA Mumurongo Imimaro ku Mburabuzi"
+
+#: cp/lang-options.h:51
+#, fuzzy
+msgid "Do not generate run time type descriptor information"
+msgstr "OYA Gukoresha Igihe Ubwoko Ibisobanuro"
+
+#: cp/lang-options.h:56
+#, fuzzy
+msgid "Do not generate code to check exception specifications"
+msgstr "OYA ITEGEKONGENGA Kuri Kugenzura... Irengayobora(-)"
+
+#: cp/lang-options.h:61
+#, fuzzy
+msgid "Scope of for-init-statement vars extends outside"
+msgstr "Bya kugirango Inyandiko Hanze"
+
+#: cp/lang-options.h:64
+#, fuzzy
+msgid "Do not recognize GNU defined keywords"
+msgstr "OYA Amagambo fatizo"
+
+#: cp/lang-options.h:68
+#, fuzzy
+msgid "Enable support for huge objects"
+msgstr "Gushigikira kugirango Ibintu"
+
+#: cp/lang-options.h:72
+#, fuzzy
+msgid "Export functions even if they can be inlined"
+msgstr "Imimaro ATARIIGIHARWE NIBA"
+
+#: cp/lang-options.h:75
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "Inyandikorugero"
+
+#: cp/lang-options.h:78
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "Bya Mumurongo Inyandikorugero"
+
+#: cp/lang-options.h:84
+#, fuzzy
+msgid "Don't pedwarn about uses of Microsoft extensions"
+msgstr "Ibyerekeye Bya Umigereka"
+
+#: cp/lang-options.h:87
+#, fuzzy
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr "Na OYA Cyangwa"
+
+#: cp/lang-options.h:91
+#, fuzzy
+msgid "Disable optional diagnostics"
+msgstr "Bitari ngombwa"
+
+#: cp/lang-options.h:93
+#, fuzzy
+msgid "Downgrade conformance errors to warnings"
+msgstr "Amakosa Kuri Iburira"
+
+#: cp/lang-options.h:96
+#, fuzzy
+msgid "Enable automatic template instantiation"
+msgstr "Byikoresha Inyandikorugero"
+
+#: cp/lang-options.h:101
+#, fuzzy
+msgid "Display statistics accumulated during compilation"
+msgstr "Sitatisitiki"
+
+#: cp/lang-options.h:104
+#, fuzzy
+msgid "Specify maximum template instantiation depth"
+msgstr "Kinini Inyandikorugero Ubujyakuzimu"
+
+#: cp/lang-options.h:106
+#, fuzzy
+msgid "Use __cxa_atexit to register destructors"
+msgstr "Kuri Kwiyandikisha"
+
+#: cp/lang-options.h:109
+#, fuzzy
+msgid "Discard unused virtual functions"
+msgstr "Kidakoreshwa Kitaboneka Imimaro"
+
+#: cp/lang-options.h:112
+#, fuzzy
+msgid "Implement vtables using thunks"
+msgstr "ikoresha"
+
+#: cp/lang-options.h:115
+#, fuzzy
+msgid "Emit common-like symbols as weak symbols"
+msgstr "nka Ibimenyetso Nka Ibimenyetso"
+
+#: cp/lang-options.h:118
+#, fuzzy
+msgid "Emit cross referencing information"
+msgstr "Kwambukiranya Ibisobanuro"
+
+#: cp/lang-options.h:122
+#, fuzzy
+msgid "Warn about inconsistent return types"
+msgstr "Ibyerekeye Garuka"
+
+#: cp/lang-options.h:125
+#, fuzzy
+msgid "Warn about overloaded virtual function names"
+msgstr "Ibyerekeye Kitaboneka Umumaro Amazina"
+
+#: cp/lang-options.h:129
+#, fuzzy
+msgid "Don't warn when all ctors/dtors are private"
+msgstr "Ryari: Byose By'umwihariko"
+
+#: cp/lang-options.h:131
+#, fuzzy
+msgid "Warn about non virtual destructors"
+msgstr "Ibyerekeye Kitaboneka"
+
+#: cp/lang-options.h:134
+#, fuzzy
+msgid "Warn when a function is declared extern, then inline"
+msgstr "Ryari: a Umumaro ni Hanyuma Mumurongo"
+
+#: cp/lang-options.h:137
+#, fuzzy
+msgid "Warn when the compiler reorders code"
+msgstr "Ryari: i ITEGEKONGENGA"
+
+#: cp/lang-options.h:140
+#, fuzzy
+msgid "Warn when synthesis behavior differs from Cfront"
+msgstr "Ryari: imyitwarire Bivuye"
+
+#: cp/lang-options.h:144
+#, fuzzy
+msgid "Don't warn when type converting pointers to member functions"
+msgstr "Ryari: Ubwoko Guhindura.... Kuri Imimaro"
+
+#: cp/lang-options.h:146
+#, fuzzy
+msgid "Warn about violations of Effective C++ style rules"
+msgstr "Ibyerekeye Bya C IMISUSIRE"
+
+#: cp/lang-options.h:149
+#, fuzzy
+msgid "Warn when overload promotes from unsigned to signed"
+msgstr "Ryari: Bivuye Bitashizweho umukono Kuri"
+
+#: cp/lang-options.h:152
+#, fuzzy
+msgid "Warn if a C style cast is used in a program"
+msgstr "NIBA a C IMISUSIRE ni in a Porogaramu"
+
+#: cp/lang-options.h:156
+#, fuzzy
+msgid "Don't warn when non-templatized friend functions are declared within a template"
+msgstr "Ryari: Imimaro muri a Inyandikorugero"
+
+#: cp/lang-options.h:159
+#, fuzzy
+msgid "Don't announce deprecation of compiler features"
+msgstr "Bya Ibiranga"
+
+# scp/source\cde\unxbasic_cde.lng:STR_BASIC_CDEINT_NETWORK_STRING2.text
+#: f/bad.c:387
+#, fuzzy
+msgid "note:"
+msgstr "Ibisobanuro:"
+
+#: f/bad.c:391
+#, fuzzy
+msgid "warning:"
+msgstr "Iburira!"
+
+#: f/bad.c:395
+msgid "fatal:"
+msgstr ""
+
+#: f/bad.c:437
+msgid "(continued):"
+msgstr ""
+
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
+msgstr ""
+
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
+msgstr ""
+
+#: f/com.c:3132
+#, fuzzy, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+msgstr "Akarango ku ikoresha"
+
+#: f/com.c:11623
+#, fuzzy
+msgid "no INTEGER type can hold a pointer on this configuration"
+msgstr "Oya Ubwoko a Mweretsi ku iyi Iboneza"
+
+#: f/com.c:11844
+#, fuzzy, c-format
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+msgstr "Iboneza Na"
+
+#: f/com.c:11846
+#, fuzzy, c-format
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr "Na Akazi"
+
+#: f/com.c:11848
+#, fuzzy
+msgid "properly unless they all are 32 bits wide"
+msgstr "Byose"
+
+#: f/com.c:11849
+#, fuzzy
+msgid "Please keep this in mind before you report bugs."
+msgstr "Gumana: iyi in Mbere Icyegeranyo"
+
+#. I/O will probably crash.
+#: f/com.c:11857
+#, fuzzy, c-format
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
+msgstr "Iboneza INYUGUTI"
+
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
+#, fuzzy, c-format
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
+msgstr "Iboneza INYUGUTI Inyandiko"
+
+#: f/com.c:13681
+#, fuzzy
+msgid "In statement function"
+msgstr "Inyandiko Umumaro"
+
+#: f/com.c:13691
+#, fuzzy
+msgid "Outside of any program unit:\n"
+msgstr "Bya Porogaramu Igice:"
+
+#: f/com.c:15320
+#, fuzzy, no-c-format
+msgid "%A from %B at %0%C"
+msgstr "%ABivuye ku"
+
+#: f/com.c:15497
+#, fuzzy
+msgid "directory name must immediately follow -I"
+msgstr "bushyinguro Izina: Ako kanya"
+
+#: f/com.c:15640
+#, fuzzy, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
+msgstr "IDOSIYE ni OYA"
+
+#: f/com.c:15675
+#, fuzzy, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr "Njyakuzimu"
+
+#: f/expr.c:9614
+#, fuzzy, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+msgstr "Mukoresha in a Urubariro ku Na Gukoresha %1"
+
+#: f/expr.c:9664
+#, fuzzy, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr "ku Ntoya ku Gukoresha %1"
+
+#: f/expr.c:10525
+#, fuzzy, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr ""
+"Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+". Project- Id- Version: basctl\n"
+"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+"Content- Type: text/ plain; charset= UTF- 8\n"
+"Content- Transfer- Encoding: 8bit\n"
+"X- Generator: KBabel 1. 0\n"
+"."
+
+#: f/expr.c:10896
+#, fuzzy, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr "kugirango ku Guhindura.... Kuri Mburabuzi"
+
+#: f/g77spec.c:234
+#, fuzzy, c-format
+msgid "overflowed output arg list for `%s'"
+msgstr "Ibisohoka Urutonde kugirango"
+
+#: f/g77spec.c:373
+#, fuzzy
+msgid "--driver no longer supported"
+msgstr "--Musomyi: Oya"
+
+#: f/g77spec.c:386
+#, fuzzy, c-format
+msgid "argument to `%s' missing"
+msgstr "Kuri Ibuze"
+
+#: f/g77spec.c:390
+#, fuzzy
+msgid "no input files; unwilling to write output files"
+msgstr "Oya Iyinjiza Idosiye Kuri Kwandika Ibisohoka Idosiye"
+
+#: f/implic.c:203
+#, fuzzy, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "Bya ku"
+
+#: f/lex.c:326
+#, fuzzy, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr "C Bisanzwe ku"
+
+#: f/lex.c:345
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "ku"
+
+#: f/lex.c:354
+#, fuzzy, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "ku"
+
+#: f/lex.c:365
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr "ku INYUGUTI ITEGEKONGENGA ku"
+
+#: f/lex.c:393
+#, fuzzy, no-c-format
+msgid "\\x used at %0 with no following hex digits"
+msgstr "\\xku Na: Oya"
+
+#: f/lex.c:407
+#, fuzzy, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr "ku Inyuma Bya Urutonde"
+
+#: f/lex.c:441
+#, fuzzy, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr "ku Inyuma Bya Urutonde kugirango Inyuguti"
+
+#: f/lex.c:595
+#, fuzzy
+msgid "hex escape out of range"
+msgstr "Inyuma Bya Urutonde"
+
+#: f/lex.c:648
+#, fuzzy, c-format
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr "Bisanzwe"
+
+#: f/lex.c:661
+#, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr ""
+
+#: f/lex.c:665
+#, fuzzy, c-format
+msgid "unknown escape sequence `\\%c'"
+msgstr "Kitazwi"
+
+#: f/lex.c:667
+#, fuzzy, c-format
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr "Kitazwi ku INYUGUTI ITEGEKONGENGA"
+
+#: f/lex.c:744
+#, fuzzy
+msgid "badly formed directive -- no closing quote"
+msgstr "Oya Gushyiraho akugarizo"
+
+#: f/lex.c:802
+#, fuzzy
+msgid "#-lines for entering and leaving files don't match"
+msgstr "#-Imirongo kugirango Na Idosiye BIHUYE"
+
+#: f/lex.c:964
+#, fuzzy
+msgid "bad directive -- missing close-quote"
+msgstr "Ibuze Gufunga Gushyiraho akugarizo"
+
+#: f/lex.c:1078
+#, c-format
+msgid "ignoring pragma: %s"
+msgstr ""
+
+#: f/lex.c:1156
+#, fuzzy
+msgid "invalid #ident"
+msgstr "Sibyo"
+
+#: f/lex.c:1173
+#, fuzzy
+msgid "undefined or invalid # directive"
+msgstr "kidasobanuye Cyangwa Sibyo"
+
+#: f/lex.c:1229
+#, fuzzy
+msgid "invalid #line"
+msgstr "Sibyo Umurongo"
+
+#: f/lex.c:1285 f/lex.c:1329
+#, fuzzy
+msgid "use `#line ...' instead of `# ...' in first line"
+msgstr "Gukoresha Umurongo Bya in Itangira Umurongo"
+
+#: f/lex.c:1339
+#, fuzzy
+msgid "invalid #-line"
+msgstr "Sibyo Umurongo"
+
+#: f/lex.c:1432
+#, fuzzy, no-c-format
+msgid "Null character at %0 -- line ignored"
+msgstr "Inyuguti ku Umurongo"
+
+#: f/stb.c:12078
+#, fuzzy, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
+msgstr "ku OYA i Inyandiko ku i Inkomoko Umurongo"
+
+#: f/ste.c:1400 f/ste.c:1747
+#, fuzzy
+msgid "ASSIGNed FORMAT specifier is too small"
+msgstr "ni Gitoya"
+
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, fuzzy, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+msgstr "ku Ubwoko ku OYA"
+
+#: f/ste.c:2729
+#, fuzzy
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr "ku Gusubiramo Kugenzura... Umubare wuzuye Byarenze urugero Bya S"
+
+#: f/ste.c:2959
+#, fuzzy
+msgid "ASSIGN to variable that is too small"
+msgstr "Kuri IMPINDURAGACIRO ni Gitoya"
+
+#: f/ste.c:2987
+#, fuzzy
+msgid "ASSIGNed GOTO target variable is too small"
+msgstr "Intego IMPINDURAGACIRO ni Gitoya"
+
+#: f/stu.c:305
+#, fuzzy, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
+msgstr "IKIMENYETSO ku"
+
+#: f/target.c:2550
+#, fuzzy
+msgid "data initializer on host with different endianness"
+msgstr "Ibyatanzwe ku Ubuturo Na:"
+
+#: f/top.c:237
+#, fuzzy, c-format
+msgid "%s no longer supported -- try -fvxt"
+msgstr "%sOya"
+
+#: f/top.c:239
+#, fuzzy, c-format
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr "%sOya"
+
+#: f/top.c:307 f/top.c:309
+#, fuzzy, c-format
+msgid "%s disabled, use normal debugging flags"
+msgstr "%sYahagaritswe Gukoresha Bisanzwe Amabendera"
+
+#: f/lang-options.h:33
+#, fuzzy
+msgid "Print g77-specific compiler version info, run internal tests"
+msgstr "Verisiyo Ibisobanuro Gukoresha By'imbere"
+
+#: f/lang-options.h:37
+#, fuzzy
+msgid "Program is written in typical FORTRAN 66 dialect"
+msgstr "ni in"
+
+#: f/lang-options.h:40
+#, fuzzy
+msgid "Program is written in typical Unix f77 dialect"
+msgstr "ni in"
+
+#: f/lang-options.h:42
+#, fuzzy
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr "OYA Gukoresha Ibiranga"
+
+#: f/lang-options.h:44
+#, fuzzy
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr "ni in"
+
+#: f/lang-options.h:48
+#, fuzzy
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr "Na Nka NIBA in"
+
+#: f/lang-options.h:50
+#, fuzzy
+msgid "Allow $ in symbol names"
+msgstr "in IKIMENYETSO Amazina"
+
+#: f/lang-options.h:54
+#, fuzzy
+msgid "f2c-compatible code need not be generated"
+msgstr "ITEGEKONGENGA OYA"
+
+#: f/lang-options.h:57
+#, fuzzy
+msgid "Unsupported; do not generate libf2c-calling code"
+msgstr "OYA ITEGEKONGENGA"
+
+#: f/lang-options.h:59
+#, fuzzy
+msgid "Unsupported; affects code-generation of arrays"
+msgstr "ITEGEKONGENGA Bya"
+
+#: f/lang-options.h:62
+#, fuzzy
+msgid "Program is written in Fortran-90-ish free form"
+msgstr "ni in Kigenga Ifishi"
+
+#: f/lang-options.h:67
+#, fuzzy
+msgid "Warn about use of (only a few for now) Fortran extensions"
+msgstr "Ibyerekeye Gukoresha Bya a kugirango NONEAHA Umigereka"
+
+#: f/lang-options.h:70
+#, fuzzy
+msgid "Program is written in VXT (Digital-like) FORTRAN"
+msgstr "ni in nka"
+
+#: f/lang-options.h:73
+#, fuzzy
+msgid "Disallow all ugly features"
+msgstr "Byose Ibiranga"
+
+#: f/lang-options.h:76
+#, fuzzy
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr "Na OYA Nka ingingo"
+
+#: f/lang-options.h:78
+#, fuzzy
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr "Bya"
+
+#: f/lang-options.h:81
+#, fuzzy
+msgid "Dummy array dimensioned to (1) is assumed-size"
+msgstr "Imbonerahamwe Kuri 1. ni Ingano"
+
+#: f/lang-options.h:84
+#, fuzzy
+msgid "Trailing comma in procedure call denotes null argument"
+msgstr "Akitso in NTAGIHARI"
+
+#: f/lang-options.h:87
+#, fuzzy
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+msgstr "Na"
+
+#: f/lang-options.h:91
+#, fuzzy
+msgid "Initialization via DATA and PARAMETER is type-compatible"
+msgstr "Biturutse Na ni Ubwoko"
+
+#: f/lang-options.h:93
+#, fuzzy
+msgid "Allow INTEGER and LOGICAL interchangeability"
+msgstr "Na"
+
+#: f/lang-options.h:96
+#, fuzzy
+msgid "Print internal debugging-related info"
+msgstr "By'imbere Ibisobanuro"
+
+#: f/lang-options.h:99
+#, fuzzy
+msgid "Initialize local vars and arrays to zero"
+msgstr "Na Kuri Zeru"
+
+#: f/lang-options.h:103
+#, fuzzy
+msgid "Backslashes in character/hollerith constants not special (C-style)"
+msgstr "in Inyuguti OYA Bidasanzwe C IMISUSIRE"
+
+#: f/lang-options.h:105
+#, fuzzy
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+msgstr "Imbere Impera Kuri"
+
+#: f/lang-options.h:109
+#, fuzzy
+msgid "Disable the appending of underscores to externals"
+msgstr "i Bya Kuri"
+
+#: f/lang-options.h:112
+#, fuzzy
+msgid "Never append a second underscore to externals"
+msgstr "Kongeraho... a ISEGONDA Kuri"
+
+#: f/lang-options.h:114
+#, fuzzy
+msgid "Intrinsics spelled as e.g. SqRt"
+msgstr "g."
+
+#: f/lang-options.h:116
+#, fuzzy
+msgid "Intrinsics in uppercase"
+msgstr "in Inyuguti nkuru"
+
+#: f/lang-options.h:119
+#, fuzzy
+msgid "Intrinsics letters in arbitrary cases"
+msgstr "in"
+
+#: f/lang-options.h:121
+#, fuzzy
+msgid "Language keywords spelled as e.g. IOStat"
+msgstr "g."
+
+#: f/lang-options.h:123
+#, fuzzy
+msgid "Language keywords in uppercase"
+msgstr "Amagambo fatizo in Inyuguti nkuru"
+
+#: f/lang-options.h:126
+#, fuzzy
+msgid "Language keyword letters in arbitrary cases"
+msgstr "Ijambo- banze in"
+
+#: f/lang-options.h:128
+#, fuzzy
+msgid "Internally convert most source to uppercase"
+msgstr "GUHINDURA Inkomoko Kuri Inyuguti nkuru"
+
+#: f/lang-options.h:131
+#, fuzzy
+msgid "Internally preserve source case"
+msgstr "Inkomoko"
+
+#: f/lang-options.h:133
+#, fuzzy
+msgid "Symbol names spelled in mixed case"
+msgstr "Amazina in Bivanze"
+
+#: f/lang-options.h:135
+#, fuzzy
+msgid "Symbol names in uppercase"
+msgstr "Amazina in Inyuguti nkuru"
+
+#: f/lang-options.h:137
+#, fuzzy
+msgid "Symbol names in lowercase"
+msgstr "Amazina in Inyuguti nto"
+
+#: f/lang-options.h:140
+#, fuzzy
+msgid "Program written in uppercase"
+msgstr "in Inyuguti nkuru"
+
+#: f/lang-options.h:142
+#, fuzzy
+msgid "Program written in lowercase"
+msgstr "in Inyuguti nto"
+
+#: f/lang-options.h:144
+#, fuzzy
+msgid "Program written in strict mixed-case"
+msgstr "in Bivanze"
+
+#: f/lang-options.h:146
+#, fuzzy
+msgid "Compile as if program written in uppercase"
+msgstr "Nka NIBA Porogaramu in Inyuguti nkuru"
+
+#: f/lang-options.h:148
+#, fuzzy
+msgid "Compile as if program written in lowercase"
+msgstr "Nka NIBA Porogaramu in Inyuguti nto"
+
+#: f/lang-options.h:150
+#, fuzzy
+msgid "Preserve all spelling (case) used in program"
+msgstr "Byose Ivuganyuguti in Porogaramu"
+
+#: f/lang-options.h:152
+#, fuzzy
+msgid "Delete libU77 intrinsics with bad interfaces"
+msgstr "Na:"
+
+#: f/lang-options.h:154
+#, fuzzy
+msgid "Disable libU77 intrinsics with bad interfaces"
+msgstr "Na:"
+
+#: f/lang-options.h:157
+#, fuzzy
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr "Na:"
+
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+msgstr ""
+
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr ""
+
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+msgstr ""
+
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr ""
+
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+msgstr ""
+
+#: f/lang-options.h:201
+#, fuzzy
+msgid "Treat initial values of 0 like non-zero values"
+msgstr "Uduciro Bya 0 nka Zeru Uduciro"
+
+#: f/lang-options.h:204
+#, fuzzy
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+msgstr "Bidasanzwe Ibisobanuro kugirango Na Yahagaritswe"
+
+#: f/lang-options.h:207
+#, fuzzy
+msgid "Take at least one trip through each iterative DO loop"
+msgstr "ku Gihinguranya"
+
+#: f/lang-options.h:211
+#, fuzzy
+msgid "Print names of program units as they are compiled"
+msgstr "Amazina Bya Porogaramu Nka"
+
+#: f/lang-options.h:214
+#, fuzzy
+msgid "Disable fatal diagnostics about inter-procedural problems"
+msgstr "Ibyerekeye"
+
+#: f/lang-options.h:216
+#, fuzzy
+msgid "Make prefix-radix non-decimal constants be typeless"
+msgstr "Imbanziriza radix NYACUMI"
+
+#: f/lang-options.h:219
+#, fuzzy
+msgid "Generate code to check subscript and substring bounds"
+msgstr "ITEGEKONGENGA Kuri Kugenzura... Inyandiko nyesi Na"
+
+#: f/lang-options.h:222
+#, fuzzy
+msgid "Fortran-specific form of -fbounds-check"
+msgstr "Ifishi Bya Kugenzura..."
+
+#: f/lang-options.h:226
+#, fuzzy
+msgid "Disable warnings about inter-procedural problems"
+msgstr "Iburira Ibyerekeye"
+
+#: f/lang-options.h:230
+#, fuzzy
+msgid "Warn about constructs with surprising meanings"
+msgstr "Ibyerekeye Na:"
+
+#: f/lang-options.h:235
+#, fuzzy
+msgid "Add a directory for INCLUDE searching"
+msgstr "a bushyinguro kugirango Ishakisha"
+
+#: f/lang-options.h:237
+#, fuzzy
+msgid "Set the maximum line length"
+msgstr "i Kinini Umurongo Uburebure"
+
+#: f/bad.def:39
+#, fuzzy, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr "Itangira kugirango Nyabibiri Mukoresha ku"
+
+#: f/bad.def:42
+#, fuzzy, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "Uburebure Inyuguti ku"
+
+#: f/bad.def:45
+#, fuzzy, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
+msgstr "ku in imvugo Cyangwa ku"
+
+#: f/bad.def:48
+#, fuzzy, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
+msgstr "kugirango Mukoresha ku ku Impera Bya imvugo ku"
+
+#: f/bad.def:51
+#, fuzzy, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
+msgstr "ku Ryari: ku"
+
+#: f/bad.def:54
+#, fuzzy, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+msgstr "Inyuguti ku Ibisobanuro F"
+
+#: f/bad.def:57
+#, fuzzy, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
+msgstr "Insobanuro ku ku ubusa Inyandiko Nka Bya"
+
+#: f/bad.def:65
+#, fuzzy, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
+msgstr "Itangira Inyuguti ku Ibisobanuro F"
+
+#: f/bad.def:68
+#, fuzzy, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
+msgstr "Nka Bya Ibisobanuro F"
+
+#: f/bad.def:71
+#, fuzzy, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+msgstr "Bikurikije umubare Inyuguti ku in Akarango Umwanya Ibisobanuro F"
+
+#: f/bad.def:74
+#, fuzzy, no-c-format
+msgid "Label number at %0 not in range 1-99999"
+msgstr "Umubare ku OYA in Urutonde 1."
+
+#: f/bad.def:77
+#, fuzzy, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr "Na OYA Byemewe Icyo wongeraho"
+
+#: f/bad.def:80
+#, fuzzy, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+msgstr "ku Kugaragara in Inkingi 6 Ibisobanuro F"
+
+#: f/bad.def:83
+#, fuzzy, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+msgstr "ku Sibyo Na: Umurongo ku Ibisobanuro F"
+
+#: f/bad.def:91
+#, fuzzy, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "ku Oya ku"
+
+#: f/bad.def:94
+#, fuzzy, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+msgstr "ku Birenzeho Inyuguti Nka Bya"
+
+#: f/bad.def:97
+#, fuzzy, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+msgstr "Gufunga ku Kuri BIHUYE Gufungura ku"
+
+#: f/bad.def:100
+#, fuzzy, no-c-format
+msgid "Integer at %0 too large"
+msgstr "ku Binini"
+
+#: f/bad.def:123
+#, fuzzy, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+msgstr "Igihe ku OYA ku kugirango Bihindagurika Akadomo Umubare Cyangwa ku Cyangwa"
+
+#: f/bad.def:126
+#, fuzzy, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
+msgstr "Gufunga Igihe hagati ku Na"
+
+#: f/bad.def:129
+#, fuzzy, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+msgstr "ku kugirango ku in Umwanya"
+
+#: f/bad.def:132
+#, fuzzy, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
+msgstr "Agaciro ku kugirango Umubare ku"
+
+#: f/bad.def:135
+#, fuzzy, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
+msgstr "Itegerejwe Nyabibiri Mukoresha hagati ku Na ku"
+
+#: f/bad.def:253
+#, fuzzy, no-c-format
+msgid "Semicolon at %0 is an invalid token"
+msgstr "ku ni Sibyo"
+
+#: f/bad.def:271
+#, fuzzy, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
+msgstr "Akitso in Inyandiko ku"
+
+#: f/bad.def:274
+#, fuzzy, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
+msgstr "Akitso in Inyandiko ku"
+
+#: f/bad.def:277
+#, fuzzy, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
+msgstr "IKIMENYETSO in Inyandiko ku"
+
+#: f/bad.def:280
+#, fuzzy, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
+msgstr "Umubare in Inyandiko ku"
+
+#: f/bad.def:283
+#, fuzzy, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
+msgstr "Umwandiko Umubare in Inyandiko ku"
+
+#: f/bad.def:291
+#, fuzzy, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr "ku"
+
+#: f/bad.def:419
+#, fuzzy, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+msgstr "Gufunga S in Inyandiko ku"
+
+#: f/bad.def:422
+#, fuzzy, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
+msgstr "Umubare Igihe in Inyandiko ku"
+
+#: f/bad.def:425
+#, fuzzy, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
+msgstr "Umubare in Inyandiko ku"
+
+#: f/bad.def:433
+#, fuzzy, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
+msgstr "Akitso ku"
+
+#: f/bad.def:436
+#, fuzzy, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+msgstr "Bya kugirango Inyandiko OYA i Igenera Mukoresha"
+
+#: f/bad.def:439
+#, fuzzy, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+msgstr "Bya kugirango Inyandiko i Igenera Mukoresha"
+
+#: f/bad.def:452
+#, fuzzy, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+msgstr "ku Mbere Urutonde Bya Ibintu"
+
+#: f/bad.def:455
+#, fuzzy, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
+msgstr "Kuri Akarango ku Na: Insobanuro ku"
+
+#: f/bad.def:458
+#, fuzzy, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr "Kuri Akarango ku Na: Indango ku"
+
+#: f/bad.def:461
+#, fuzzy, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
+msgstr "Inyandiko Indango Kuri Akarango ku Insobanuro ku"
+
+#: f/bad.def:464
+#, fuzzy, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
+msgstr "Kuri Akarango ku ni Hanze Funga Insobanuro ku"
+
+#: f/bad.def:467
+#, fuzzy, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+msgstr "Inyandiko Indango Kuri Akarango ku Na ku Funga ku"
+
+#: f/bad.def:470
+#, fuzzy, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+msgstr "Inyandiko Indango Kuri Akarango ku Na Akarango Insobanuro ku ku Funga ku"
+
+#: f/bad.def:473
+#, fuzzy, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
+msgstr "Insobanuro ku Sibyo ku iyi Bya Inyandiko"
+
+#: f/bad.def:476
+#, fuzzy, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr "ku Sibyo in iyi Imvugiro"
+
+#: f/bad.def:479
+#, fuzzy, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr "ku Sibyo in Imvugiro ku Inyandiko ku"
+
+#: f/bad.def:482
+#, fuzzy, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
+msgstr "ku Izina: ku"
+
+#: f/bad.def:485
+#, fuzzy, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
+msgstr "Izina: ku Oya Izina: ku"
+
+#: f/bad.def:488
+#, fuzzy, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
+msgstr "Izina: ku OYA i Nka Izina: ku"
+
+#: f/bad.def:491
+#, fuzzy, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+msgstr "Izina: ku OYA BIHUYE Izina: kugirango"
+
+#: f/bad.def:494
+#, fuzzy, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
+msgstr "Insobanuro Ibuze ku kugirango Akarango ku"
+
+#: f/bad.def:497
+#, fuzzy, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
+msgstr "ku Funga kugirango ku"
+
+#: f/bad.def:500
+#, fuzzy, no-c-format
+msgid "No label definition for FORMAT statement at %0"
+msgstr "Akarango Insobanuro kugirango Inyandiko ku"
+
+#: f/bad.def:503
+#, fuzzy, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr "ukugaragara Bya ku muri ku"
+
+#: f/bad.def:506
+#, fuzzy, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr "Inyandiko ku Ibuze Ijambo- banze Bya ngombwa kugirango By'imbere Cyangwa Modire S ku"
+
+#: f/bad.def:509
+#, fuzzy, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+msgstr "Inyandiko ku ku Oya Gifitanye isano Izina: Mukoresha Cyangwa Igenera"
+
+#: f/bad.def:512
+#, fuzzy, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+msgstr "Izina: ku Oya Izina: ku"
+
+#: f/bad.def:515
+#, fuzzy, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+msgstr "Izina: ku Oya Inyandiko ku"
+
+#: f/bad.def:518
+#, fuzzy, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
+msgstr "Igice: Izina: ku OYA i Nka Izina: ku"
+
+#: f/bad.def:521
+#, fuzzy, no-c-format
+msgid "Type name at %0 not the same as name at %1"
+msgstr "Izina: ku OYA i Nka Izina: ku"
+
+#: f/bad.def:524
+#, fuzzy, no-c-format
+msgid "End of source file before end of block started at %0"
+msgstr "Impera Bya Inkomoko IDOSIYE Mbere Impera Bya Funga ku"
+
+#: f/bad.def:527
+#, fuzzy, no-c-format
+msgid "Undefined label, first referenced at %0"
+msgstr "Akarango Itangira ku"
+
+#: f/bad.def:530
+#, fuzzy, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+msgstr "Inyandiko Cyangwa Ikiranga ku Na: Inyandiko Cyangwa Ikiranga ku"
+
+#: f/bad.def:533
+#, fuzzy, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+msgstr "Cyangwa Inyandiko ku Na: Cyangwa Inyandiko ku"
+
+#: f/bad.def:536
+#, fuzzy, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
+msgstr "Inyandiko ku Sibyo muri a Porogaramu Igice:"
+
+#: f/bad.def:539
+#, fuzzy, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
+msgstr "Garuka ku Sibyo muri a Porogaramu Igice:"
+
+#: f/bad.def:542
+#, fuzzy, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
+msgstr "Garuka ku Sibyo muri a Umumaro"
+
+#: f/bad.def:545
+#, fuzzy, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+msgstr "Cyangwa Inyandiko ku Sibyo kugirango Ubwoko Insobanuro muri Ikindi i Bya a Modire"
+
+#: f/bad.def:548
+#, fuzzy, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+msgstr "ku Ako kanya Ubwoko Inyandiko ku Na: Oya"
+
+#: f/bad.def:551
+#, fuzzy, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
+msgstr "Nka Bya kugirango Ubwoko Insobanuro Itangiriro ku"
+
+#: f/bad.def:554
+#, fuzzy, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
+msgstr "Nka Bya kugirango Imiterere Insobanuro Itangiriro ku"
+
+#: f/bad.def:557
+#, fuzzy, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
+msgstr "Imiterere Izina: kugirango hanze Imiterere Insobanuro ku"
+
+#: f/bad.def:560
+#, fuzzy, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+msgstr "Amazina ku kugirango hanze Imiterere Insobanuro in a Inyandiko"
+
+#: f/bad.def:563
+#, fuzzy, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+msgstr "Umwanya Izina: S kugirango Imiterere Insobanuro ku muri Imiterere Insobanuro ku"
+
+#: f/bad.def:566
+#, fuzzy, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
+msgstr "Nka Bya kugirango Itangiriro ku"
+
+#: f/bad.def:569
+#, fuzzy, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+msgstr "Cyangwa Amakarita Nka Bya kugirango Ihuza Itangiriro ku ku Bya ngombwa"
+
+#: f/bad.def:572
+#, fuzzy, no-c-format
+msgid "Missing %A specifier in statement at %0"
+msgstr "in Inyandiko ku"
+
+#: f/bad.def:575
+#, fuzzy, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+msgstr "in Urutonde ku Sibyo kugirango"
+
+#: f/bad.def:578
+#, fuzzy, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
+msgstr "Igenzura ku Na"
+
+#: f/bad.def:581
+#, fuzzy, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
+msgstr "URUGERO in Igenzura Urutonde ku"
+
+#: f/bad.def:584
+#, fuzzy, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+msgstr "ku in Igenzura Urutonde"
+
+#: f/bad.def:587
+#, fuzzy, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+msgstr "ku in Igenzura Urutonde"
+
+#: f/bad.def:595
+#, fuzzy, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+msgstr "ukugaragara Bya ku muri ku"
+
+#: f/bad.def:598
+#, fuzzy, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr "Cyangwa iyorosa Uduciro Ibice ku Na"
+
+#: f/bad.def:601
+#, fuzzy, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+msgstr "Na Cyangwa Ubwoko hagati Agaciro Cyangwa Agaciro muri Urutonde ku Na ku"
+
+#: f/bad.def:604
+#, fuzzy, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+msgstr "ku Sibyo kugirango Inyandiko muri Bijyanye n'inyurabwenge Ubwoko Inyandiko"
+
+#: f/bad.def:617
+#, fuzzy, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
+msgstr "ku"
+
+#: f/bad.def:630
+#, fuzzy, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+msgstr "Bya Cyangwa Indango Kuri IKIMENYETSO ku ku"
+
+#: f/bad.def:638
+#, fuzzy, no-c-format
+msgid "Null element at %0 for array reference at %1"
+msgstr "Ikigize: ku kugirango Imbonerahamwe Indango ku"
+
+#: f/bad.def:641
+#, fuzzy, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+msgstr "Ibintu Ibuze Nka Bya kugirango Imbonerahamwe Indango ku"
+
+#: f/bad.def:644
+#, fuzzy, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
+msgstr "Ibintu Nka Bya kugirango Imbonerahamwe Indango ku"
+
+#: f/bad.def:647
+#, fuzzy, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
+msgstr "Nka Bya in Indango kugirango"
+
+#: f/bad.def:650
+#, fuzzy, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
+msgstr "Gukoresha %1 ku Bya Mukoresha ku"
+
+#: f/bad.def:653
+#, fuzzy, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
+msgstr "Impera Akadomo ku Inyuma Bya Urutonde"
+
+#: f/bad.def:656
+#, fuzzy, no-c-format
+msgid "Array element value at %0 out of defined range"
+msgstr "Ikigize: Agaciro ku Inyuma Bya Urutonde"
+
+#: f/bad.def:659
+#, fuzzy, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
+msgstr "ku Ibyatanzwe Ubwoko Cyangwa IGICE kugirango Imvugiro"
+
+#: f/bad.def:662
+#, fuzzy, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+msgstr "ku 0 Zeru ku OYA"
+
+#: f/bad.def:665
+#, fuzzy, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr "%AIntera IBARA Kuri 0 Zeru ku"
+
+#: f/bad.def:668
+#, fuzzy, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
+msgstr "%AImpera Agaciro Guteranya Intera IBARA Kuri Byarenze urugero ku"
+
+#: f/bad.def:671
+#, fuzzy, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+msgstr "%AImpera Na Intera IBARA Uduciro Kuri Igisubizo in imyitwarire Kuri Byarenze urugero S in ku"
+
+#: f/bad.def:674
+#, fuzzy, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+msgstr "%AImpera Na Intera IBARA Uduciro Kuri Igisubizo in Oya Amasubiramo ku"
+
+#: f/bad.def:677
+#, fuzzy, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
+msgstr "hagati ku Na"
+
+#: f/bad.def:690
+#, fuzzy, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
+msgstr "kugirango ku"
+
+#: f/bad.def:693
+#, fuzzy, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
+msgstr "ku"
+
+#: f/bad.def:696
+#, fuzzy, no-c-format
+msgid "Zero-size specification invalid at %0"
+msgstr "Ingano Sibyo ku"
+
+#: f/bad.def:699
+#, fuzzy, no-c-format
+msgid "Zero-size array at %0"
+msgstr "Ingano Imbonerahamwe ku"
+
+#: f/bad.def:702
+#, fuzzy, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
+msgstr "OYA Gushigikira ITSINDA RY'IMIBARE C Bya ku"
+
+#: f/bad.def:705
+#, fuzzy, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+msgstr "OYA Gushigikira ku"
+
+#: f/bad.def:708
+#, fuzzy, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr "Kuri Zeru Kuri a UMWIKUBE ku"
+
+#: f/bad.def:806
+#, fuzzy, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+msgstr "Kuri Gifitanye isano ku Kuri Ifishi Cyangwa"
+
+#: f/bad.def:809
+#, fuzzy, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+msgstr "Gukoresha Bya ku Ibisobanuro F"
+
+#: f/bad.def:812
+#, fuzzy, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+msgstr "ku ku Ibisobanuro F"
+
+#: f/bad.def:815
+#, fuzzy, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+msgstr "Izina: kugirango ku Na ku Ibisobanuro F"
+
+#: f/bad.def:818
+#, fuzzy, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+msgstr "Ubwoko kugirango Na: ku"
+
+#: f/bad.def:821
+#, fuzzy, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr "Kuri Gufungura IDOSIYE ku"
+
+#: f/bad.def:839
+#, fuzzy, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
+msgstr "ku kugirango Inyandiko Umumaro Indango ku"
+
+#: f/bad.def:842
+#, fuzzy, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
+msgstr "ku kugirango ku"
+
+#: f/bad.def:845
+#, fuzzy, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+msgstr "%Aingingo Na: Ishusho Nka Bya kugirango Inyandiko Umumaro Indango ku"
+
+#: f/bad.def:848
+#, fuzzy, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
+msgstr "%Aingingo Nka Bya kugirango Inyandiko Umumaro Indango ku"
+
+#: f/bad.def:851
+#, fuzzy, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+msgstr "ku kugirango Ishusho in Inyandiko Umumaro Indango ku"
+
+#: f/bad.def:854
+#, fuzzy, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
+msgstr "ku"
+
+#: f/bad.def:857
+#, fuzzy, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+msgstr "imvugo ku"
+
+#: f/bad.def:880
+#, fuzzy, no-c-format
+msgid "Unsupported VXT statement at %0"
+msgstr "Inyandiko ku"
+
+#: f/bad.def:883
+#, fuzzy, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
+msgstr "Kuri ISEGONDA Agaciro kugirango ku"
+
+#: f/bad.def:886
+#, fuzzy, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
+msgstr "Uduciro in Urutonde Bya kugirango ku"
+
+#: f/bad.def:889
+#, fuzzy, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
+msgstr "Uduciro in Urutonde Bya ku"
+
+#: f/bad.def:892
+#, fuzzy, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
+msgstr "Cyangwa kugirango Inyuma Bya Urutonde in Inyandiko ku"
+
+#: f/bad.def:895
+#, fuzzy, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+msgstr "Inyandiko nyesi Inyuma Bya Urutonde kugirango Bya in Inyandiko ku"
+
+#: f/bad.def:898
+#, fuzzy, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr "Intera IBARA Bya 0 Zeru kugirango IMPINDURAGACIRO in Inyandiko ku"
+
+#: f/bad.def:901
+#, fuzzy, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr "IBARA Bya 0 Zeru kugirango IMPINDURAGACIRO in Inyandiko ku"
+
+#: f/bad.def:904
+#, fuzzy, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr "Umubare wuzuye imvugo in in Inyandiko ku"
+
+#: f/bad.def:907
+#, fuzzy, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
+msgstr "Kuri ISEGONDA Agaciro kugirango Ikigize: Bya ku"
+
+#: f/bad.def:910
+#, fuzzy, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+msgstr "Kuri Ubuso Na ku"
+
+#: f/bad.def:913
+#, fuzzy, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+msgstr "Nka ku Kuri Itunganya Amabwiriza"
+
+#: f/bad.def:916
+#, fuzzy, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+msgstr "kugirango Ishyira mu mwanya Bya ku Byombi Na Bayite Nta- boneza Bivuye"
+
+#: f/bad.def:919
+#, fuzzy, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+msgstr "Cyangwa kugirango Inyuma Bya Urutonde in Inyandiko"
+
+#: f/bad.def:922
+#, fuzzy, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+msgstr "Bya in Inyandiko"
+
+#: f/bad.def:925
+#, fuzzy, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+msgstr "Indango Kuri IMPINDURAGACIRO in Inyandiko"
+
+#: f/bad.def:928
+#, fuzzy, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+msgstr "Inyandiko nyesi Inyuma Bya Urutonde kugirango Bya"
+
+#: f/bad.def:936
+#, fuzzy, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+msgstr "Kuri Ubuso Akadomo Biturutse Bya"
+
+#: f/bad.def:939
+#, fuzzy, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr "Ibintu in Indango Kuri Imbonerahamwe in Inyandiko"
+
+#: f/bad.def:942
+#, fuzzy, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+msgstr "Ibintu in Indango Kuri Imbonerahamwe in Inyandiko"
+
+#: f/bad.def:945
+#, fuzzy, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+msgstr "Na Biturutse kugirango Urugero Na"
+
+#: f/bad.def:958
+#, fuzzy, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+msgstr "Agaciro kugirango ku OYA in"
+
+#: f/bad.def:976
+#, fuzzy, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+msgstr "Funga ni Cyangwa ku OYA ku"
+
+#: f/bad.def:979
+#, fuzzy, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+msgstr "Funga ni in Uburebure ku ku"
+
+#: f/bad.def:987
+#, fuzzy, no-c-format
+msgid "Blank common initialized at %0"
+msgstr "ku"
+
+#: f/bad.def:990
+#, fuzzy, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+msgstr "ni Nka ku OYA"
+
+#: f/bad.def:993
+#, fuzzy, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+msgstr "ni Nka ku OYA"
+
+#: f/bad.def:996
+#, fuzzy, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+msgstr "kugirango Urugero ni Nkuru in IKIMENYETSO Izina: ku"
+
+#: f/bad.def:999
+#, fuzzy, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+msgstr "kugirango Urugero ni Ntoya in IKIMENYETSO Izina: ku"
+
+#: f/bad.def:1002
+#, fuzzy, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+msgstr "OYA ku Akadomo ku Ntoya Inyuguti in IKIMENYETSO Izina: ku"
+
+#: f/bad.def:1005
+#, fuzzy, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr "Inyuguti ni Ntoya in IKIMENYETSO Izina: ku"
+
+#: f/bad.def:1013
+#, fuzzy, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr "OYA ku Gukoresha Igihe Isomero kugirango Inkomoko Idosiye Na:"
+
+#: f/bad.def:1016
+#, fuzzy, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+msgstr "Cyangwa ku"
+
+#: f/bad.def:1034
+#, fuzzy, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+msgstr "ku Sibyo in Porogaramu Igice: ku"
+
+#: f/bad.def:1037
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr "Inyuguti ku Iburyo: Bya Inyuguti ku"
+
+#: f/bad.def:1040
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
+msgstr "Inyuguti ku Iburyo: Bya ku"
+
+#: f/bad.def:1043
+#, fuzzy, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
+msgstr "Zeru Ibyatanzwe ku Ibumoso: Bya Bikurikije umubare ku"
+
+#: f/bad.def:1046
+#, fuzzy, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
+msgstr "Zeru Ibyatanzwe ku Ibumoso: Bya ku"
+
+#: f/bad.def:1049
+#, fuzzy, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr "ku Binini"
+
+#: f/bad.def:1052
+#, fuzzy, no-c-format
+msgid "First-column ampersand continuation at %0"
+msgstr "Inkingi ku"
+
+#: f/bad.def:1055 f/bad.def:1058
+#, fuzzy, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+msgstr "Izina: ku ku Ibisobanuro F"
+
+#: f/bad.def:1061 f/bad.def:1064
+#, fuzzy, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+msgstr "Izina: ni ku ni ku Ibisobanuro F"
+
+#: f/bad.def:1067 f/bad.def:1070
+#, fuzzy, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+msgstr "Izina: ku Ubwoko ku Ibisobanuro F"
+
+#: f/bad.def:1073
+#, fuzzy, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+msgstr "ingingo Kuri ku Insobanuro ku Ibisobanuro F"
+
+#: f/bad.def:1076
+#, fuzzy, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+msgstr "ingingo kugirango ku ku Ibisobanuro F"
+
+#: f/bad.def:1079 f/bad.def:1082
+#, fuzzy, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+msgstr "Bya ni ku ni ku Ibisobanuro F"
+
+#: f/bad.def:1085
+#, fuzzy, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr "ku ni Binini Kuri"
+
+#: f/bad.def:1088
+#, fuzzy, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr "Umumaro ku ni OYA"
+
+#: f/bad.def:1091
+#, fuzzy, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+msgstr "ku Kuri Ibisobanuro F"
+
+#: f/bad.def:1094
+#, fuzzy, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr "Ikosa"
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+#, fuzzy
+msgid "In unknown kind"
+msgstr "Kitazwi"
+
+#: f/info-k.def:33
+msgid "In entity"
+msgstr ""
+
+#: f/info-k.def:34
+#, fuzzy
+msgid "In function"
+msgstr "Umumaro"
+
+#: f/info-k.def:35
+msgid "In subroutine"
+msgstr ""
+
+#: f/info-k.def:36
+#, fuzzy
+msgid "In program"
+msgstr "Porogaramu"
+
+#: f/info-k.def:37
+#, fuzzy
+msgid "In block-data unit"
+msgstr "Funga Ibyatanzwe Igice:"
+
+#: f/info-k.def:38
+#, fuzzy
+msgid "In common block"
+msgstr "Funga"
+
+#: f/info-k.def:39
+msgid "In construct"
+msgstr ""
+
+#: f/info-k.def:40
+msgid "In namelist"
+msgstr ""
+
+#: f/info-k.def:41
+msgid "In anything"
+msgstr ""
+
+#: java/check-init.c:917
+#, fuzzy, c-format
+msgid "internal error in check-init: tree code not implemented: %s"
+msgstr "By'imbere Ikosa in Kugenzura... ITEGEKONGENGA OYA"
+
+#: java/check-init.c:990
+#, fuzzy, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr "Umwanya Gicurasi OYA"
+
+#: java/class.c:539 java/class.c:564
+#, fuzzy
+msgid "internal error - too many interface type"
+msgstr "By'imbere Ikosa Ubwoko"
+
+#: java/class.c:677
+#, fuzzy
+msgid "bad method signature"
+msgstr "Uburyo Isinya"
+
+#: java/class.c:726
+#, fuzzy
+msgid "misplaced ConstantValue attribute (not in any field)"
+msgstr "Ikiranga OYA in Umwanya"
+
+#: java/class.c:728
+#, fuzzy, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr "Gusubiramo Ikiranga kugirango Umwanya"
+
+#: java/class.c:739
+#, fuzzy, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr "Ikiranga Bya Umwanya Ubwoko"
+
+#: java/class.c:1103
+#, fuzzy, c-format
+msgid "field '%s' not found in class"
+msgstr "Umwanya OYA Byabonetse in ishuri"
+
+#: java/class.c:1365
+#, fuzzy
+msgid "abstract method in non-abstract class"
+msgstr "Incamake Uburyo in Incamake ishuri"
+
+#: java/class.c:2078
+#, fuzzy, c-format
+msgid "non-static method '%s' overrides static method"
+msgstr "Uburyo Uburyo"
+
+#: java/decl.c:1541
+#, fuzzy, c-format
+msgid "In %s: overlapped variable and exception ranges at %d"
+msgstr "IMPINDURAGACIRO Na Irengayobora(-) Ibice ku"
+
+#: java/decl.c:1622
+#, fuzzy
+msgid "bad type in parameter debug info"
+msgstr "Ubwoko in Kosora amakosa Ibisobanuro"
+
+#: java/decl.c:1632
+#, fuzzy, c-format
+msgid "bad PC range for debug info for local `%s'"
+msgstr "Urutonde kugirango Kosora amakosa Ibisobanuro kugirango"
+
+#: java/expr.c:530
+msgid "stack underflow - dup* operation"
+msgstr ""
+
+#: java/expr.c:1534
+#, fuzzy, c-format
+msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+msgstr "Indango ni in Na"
+
+#: java/expr.c:1563
+#, fuzzy, c-format
+msgid "field `%s' not found"
+msgstr "Umwanya OYA Byabonetse"
+
+#: java/expr.c:1715
+#, fuzzy
+msgid "ret instruction not implemented"
+msgstr "OYA"
+
+#: java/expr.c:1857
+#, fuzzy, c-format
+msgid "method '%s' not found in class"
+msgstr "Uburyo OYA Byabonetse in ishuri"
+
+#: java/expr.c:2060
+#, fuzzy, c-format
+msgid "failed to find class '%s'"
+msgstr "Byanze Kuri Gushaka ishuri"
+
+#: java/expr.c:2070
+#, fuzzy, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
+msgstr "ishuri Oya Uburyo Isinya"
+
+#: java/expr.c:2080
+#, fuzzy
+msgid "invokestatic on non static method"
+msgstr "ku Uburyo"
+
+#: java/expr.c:2085
+#, fuzzy
+msgid "invokestatic on abstract method"
+msgstr "ku Incamake Uburyo"
+
+#: java/expr.c:2093
+#, fuzzy
+msgid "invoke[non-static] on static method"
+msgstr "ku Uburyo"
+
+#: java/expr.c:2396
+#, fuzzy, c-format
+msgid "missing field '%s' in '%s'"
+msgstr "Ibuze Umwanya in"
+
+#: java/expr.c:2402
+#, fuzzy, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr "Isinya kugirango Umwanya in"
+
+#: java/expr.c:2425
+#, fuzzy, c-format
+msgid "assignment to final field `%s' not in field's class"
+msgstr "Igenera Kuri Umwanya OYA in ishuri"
+
+#: java/expr.c:2430
+#, fuzzy, c-format
+msgid "assignment to final static field `%s' not in class initializer"
+msgstr "Igenera Kuri Umwanya OYA in ishuri"
+
+#: java/expr.c:2437
+#, fuzzy, c-format
+msgid "assignment to final field `%s' not in constructor"
+msgstr "Igenera Kuri Umwanya OYA in"
+
+#: java/expr.c:2684
+#, fuzzy, c-format
+msgid "can't expand %s"
+msgstr "Kwagura"
+
+#: java/expr.c:2861
+#, fuzzy
+msgid "invalid PC in line number table"
+msgstr "Sibyo in Umurongo Umubare imbonerahamwe#"
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2906
+#, fuzzy, c-format
+msgid "unreachable bytecode from %d to before %d"
+msgstr "Bivuye Kuri Mbere"
+
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2943
+#, fuzzy, c-format
+msgid "unreachable bytecode from %d to the end of the method"
+msgstr "Bivuye Kuri i Impera Bya i Uburyo"
+
+#. duplicate code from LOAD macro
+#: java/expr.c:3261
+msgid "unrecogized wide sub-instruction"
+msgstr ""
+
+#: java/jcf-io.c:543
+#, fuzzy, c-format
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+msgstr "Inkomoko IDOSIYE kugirango ishuri ni ishuri IDOSIYE IDOSIYE"
+
+#: java/jcf-parse.c:338
+#, fuzzy
+msgid "bad string constant"
+msgstr "Ikurikiranyanyuguti"
+
+#: java/jcf-parse.c:356
+#, fuzzy, c-format
+msgid "bad value constant type %d, index %d"
+msgstr "Agaciro Ubwoko Umubarendanga"
+
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr ""
+
+#: java/jcf-parse.c:533
+#, fuzzy, c-format
+msgid "can't close %s"
+msgstr "Gufunga"
+
+#: java/jcf-parse.c:619
+#, fuzzy, c-format
+msgid "cannot find file for class %s"
+msgstr "Gushaka IDOSIYE kugirango ishuri"
+
+#: java/jcf-parse.c:631
+#, fuzzy
+msgid "not a valid Java .class file"
+msgstr "OYA a Byemewe ishuri IDOSIYE"
+
+#: java/jcf-parse.c:634
+#, fuzzy
+msgid "error while parsing constant pool"
+msgstr "Ikosa Itsinda"
+
+#: java/jcf-parse.c:637
+#, fuzzy, c-format
+msgid "error in constant pool entry #%d\n"
+msgstr "Ikosa in Itsinda Icyinjijwe"
+
+#. FIXME - where was first time
+#: java/jcf-parse.c:649
+#, fuzzy, c-format
+msgid "reading class %s for the second time from %s"
+msgstr "ishuri kugirango i ISEGONDA Igihe Bivuye"
+
+#: java/jcf-parse.c:667
+#, fuzzy
+msgid "error while parsing fields"
+msgstr "Ikosa Imyanya"
+
+#: java/jcf-parse.c:670
+#, fuzzy
+msgid "error while parsing methods"
+msgstr "Ikosa"
+
+#: java/jcf-parse.c:673
+#, fuzzy
+msgid "error while parsing final attributes"
+msgstr "Ikosa Ibiranga"
+
+#: java/jcf-parse.c:687
+#, fuzzy, c-format
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+msgstr "i java Byabonetse in i Bidasanzwe Zeru Uburebure Ikiranga Inzirashuri ni Gushyiraho Ibisobanuro Kuri i Ibisobanuro Ipaji Kuri Gushyiraho i Inzirashuri"
+
+#: java/jcf-parse.c:777
+#, fuzzy
+msgid "missing Code attribute"
+msgstr "Ibuze Ikiranga"
+
+#: java/jcf-parse.c:1014
+#, fuzzy
+msgid "source file seen twice on command line and will be compiled only once"
+msgstr "Inkomoko IDOSIYE ku Komandi: Umurongo Na Rimwe"
+
+#: java/jcf-parse.c:1030
+#, fuzzy
+msgid "no input file specified"
+msgstr "Oya Iyinjiza IDOSIYE"
+
+#: java/jcf-parse.c:1059
+#, fuzzy, c-format
+msgid "can't close input file %s"
+msgstr "Gufunga Iyinjiza IDOSIYE"
+
+#: java/jcf-parse.c:1096
+#, fuzzy, c-format
+msgid "bad zip/jar file %s"
+msgstr "Zipu IDOSIYE"
+
+#: java/jcf-write.c:2650
+#, fuzzy, c-format
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr "By'imbere Ikosa in ITEGEKONGENGA OYA"
+
+#: java/jcf-write.c:2988
+#, fuzzy
+msgid "field initializer type mismatch"
+msgstr "Umwanya Ubwoko"
+
+#: java/jcf-write.c:3419
+#, fuzzy, c-format
+msgid "can't create directory %s"
+msgstr "Kurema bushyinguro"
+
+#: java/jcf-write.c:3473
+#, fuzzy, c-format
+msgid "can't create %s"
+msgstr "Kurema"
+
+#: java/jv-scan.c:187
+#, fuzzy
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr "Bya Gucapa Urutonde Na"
+
+#: java/jv-scan.c:190
+#, fuzzy, c-format
+msgid "can't open output file `%s'"
+msgstr "Gufungura Ibisohoka IDOSIYE"
+
+#: java/jv-scan.c:224
+#, fuzzy, c-format
+msgid "file not found `%s'"
+msgstr "Dosiye ntibonetse"
+
+#: java/jvspec.c:426
+msgid "can't specify `-D' without `--main'\n"
+msgstr ""
+
+#: java/jvspec.c:429
+#, fuzzy, c-format
+msgid "`%s' is not a valid class name"
+msgstr "`%s'ni OYA a Byemewe ishuri Izina:"
+
+#: java/jvspec.c:435
+#, fuzzy
+msgid "--resource requires -o"
+msgstr "--o"
+
+#: java/jvspec.c:442
+#, fuzzy
+msgid "warning: already-compiled .class files ignored with -C"
+msgstr "Iburira ishuri Idosiye Na: C"
+
+#: java/jvspec.c:449
+#, fuzzy
+msgid "cannot specify both -C and -o"
+msgstr "Byombi C Na o"
+
+#: java/jvspec.c:461
+#, fuzzy
+msgid "cannot create temporary file"
+msgstr "Kurema By'igihe gito IDOSIYE"
+
+#: java/jvspec.c:489
+#, fuzzy
+msgid "using both @FILE with multiple files not implemented"
+msgstr "ikoresha Byombi Na: Igikubo Idosiye OYA"
+
+#: java/jvspec.c:538
+#, fuzzy
+msgid "cannot specify `main' class when not linking"
+msgstr "ishuri Ryari: OYA Impuza"
+
+#: java/lang.c:548
+#, fuzzy
+msgid "can't do dependency tracking with input from stdin"
+msgstr "Na: Iyinjiza Bivuye"
+
+#: java/lang.c:564
+#, fuzzy
+msgid "couldn't determine target name for dependency tracking"
+msgstr "Intego Izina: kugirango"
+
+#: java/lex.c:303
+#, fuzzy, c-format
+msgid ""
+"unknown encoding: `%s'\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"`--encoding=UTF-8' option"
+msgstr "Kitazwi Imisobekere: Impuzandengo- Imisobekere: ni OYA 3. Gukoresha a Imisobekere: kugirango Iyinjiza IDOSIYE Imisobekere: Ihitamo"
+
+#: java/mangle.c:85
+#, c-format
+msgid "can't mangle %s"
+msgstr ""
+
+#: java/mangle_name.c:144 java/mangle_name.c:216
+#, fuzzy
+msgid "internal error - invalid Utf8 name"
+msgstr "By'imbere Ikosa Sibyo Izina:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+#, fuzzy
+msgid "Missing term"
+msgstr "Ijambo"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+#, fuzzy
+msgid "';' expected"
+msgstr "';'ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+#, fuzzy
+msgid "Missing name"
+msgstr "Izina:"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
+#, fuzzy
+msgid "'*' expected"
+msgstr "'*'ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
+#, fuzzy
+msgid "Class or interface declaration expected"
+msgstr "Cyangwa Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
+#, fuzzy
+msgid "Missing class name"
+msgstr "ishuri Izina:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
+msgid "'{' expected"
+msgstr "'{' ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
+#, fuzzy
+msgid "Missing super class name"
+msgstr "hejuru ishuri Izina:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
+#, fuzzy
+msgid "Missing interface name"
+msgstr "Izina:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
+#, fuzzy
+msgid "Missing variable initializer"
+msgstr "IMPINDURAGACIRO"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
+msgid "Invalid declaration"
+msgstr ""
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
+#, fuzzy
+msgid "']' expected"
+msgstr "']'ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
+msgid "Unbalanced ']'"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
+#, fuzzy
+msgid "Invalid method declaration, method name required"
+msgstr "Uburyo Uburyo Izina: Bya ngombwa"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
+msgid "Identifier expected"
+msgstr "Ikiranga ntigitunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
+#, fuzzy
+msgid "Invalid method declaration, return type required"
+msgstr "Uburyo Garuka Ubwoko Bya ngombwa"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
+msgid "')' expected"
+msgstr "')' ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
+#, fuzzy
+msgid "Missing formal parameter term"
+msgstr "Ijambo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
+#, fuzzy
+msgid "Missing identifier"
+msgstr "Ikiranga"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
+#, fuzzy
+msgid "Missing class type term"
+msgstr "ishuri Ubwoko Ijambo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
+#, fuzzy
+msgid "Invalid interface type"
+msgstr "Ubwoko"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
+#, fuzzy
+msgid "':' expected"
+msgstr "':'ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
+#, fuzzy
+msgid "Invalid expression statement"
+msgstr "imvugo Inyandiko"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
+msgid "'(' expected"
+msgstr "'(' ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
+#, fuzzy
+msgid "Missing term or ')'"
+msgstr "Ijambo Cyangwa"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
+#, fuzzy
+msgid "Missing or invalid constant expression"
+msgstr "Cyangwa Sibyo imvugo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
+#, fuzzy
+msgid "Missing term and ')' expected"
+msgstr "Ijambo Na Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
+#, fuzzy
+msgid "Invalid control expression"
+msgstr "Igenzura imvugo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
+#, fuzzy
+msgid "Invalid update expression"
+msgstr "Kuvugurura imvugo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
+#, fuzzy
+msgid "Invalid init statement"
+msgstr "Inyandiko"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
+#, fuzzy
+msgid "Missing term or ')' expected"
+msgstr "Ijambo Cyangwa Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
+#, fuzzy
+msgid "'class' or 'this' expected"
+msgstr "'Cyangwa Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
+#, fuzzy
+msgid "'class' expected"
+msgstr "'Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
+#, fuzzy
+msgid "')' or term expected"
+msgstr "')'Cyangwa Ijambo Ikitezwe:"
+
+# starmath/source\smres.src:RID_ERR_LGROUPEXPECTED.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
+#, fuzzy
+msgid "'[' expected"
+msgstr "'['ntigatunguranye"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
+#, fuzzy
+msgid "Field expected"
+msgstr "Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
+#, fuzzy
+msgid "Missing term and ']' expected"
+msgstr "Ijambo Na Ikitezwe:"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
+#, fuzzy
+msgid "']' expected, invalid type expression"
+msgstr "']'Ikitezwe: Sibyo Ubwoko imvugo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
+#, fuzzy
+msgid "Invalid type expression"
+msgstr "Ubwoko imvugo"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
+#, fuzzy
+msgid "Invalid reference type"
+msgstr "Indango Ubwoko"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
+#, fuzzy
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr "Itangira in a"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
+msgid "Only constructors can invoke constructors"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
+#, fuzzy, c-format
+msgid ": `%s' JDK1.1(TM) feature"
+msgstr ":`%s'1."
+
+# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
+#, fuzzy, c-format
+msgid ""
+"%s.\n"
+"%s"
+msgstr "%s.%s"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
+#, fuzzy, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr "Zipu in"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
+#, fuzzy, c-format
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr "Gushaka Mburabuzi i IMPINDURAGACIRO Na i Kuri i Ubushyinguro"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
+#, fuzzy, c-format
+msgid "missing static field `%s'"
+msgstr "Ibuze Umwanya"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
+#, fuzzy, c-format
+msgid "not a static field `%s'"
+msgstr "OYA a Umwanya"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, fuzzy, c-format
+msgid "No case for %s"
+msgstr "kugirango"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, fuzzy, c-format
+msgid "unregistered operator %s"
+msgstr "Mukoresha"
+
+#: java/typeck.c:553
+#, fuzzy
+msgid "junk at end of signature string"
+msgstr "Umwanda ku Impera Bya Isinya Ikurikiranyanyuguti"
+
+#: java/verify.c:479
+#, fuzzy
+msgid "bad pc in exception_table"
+msgstr "in"
+
+#: java/verify.c:485
+#, fuzzy
+msgid "exception handler inside code that is being protected"
+msgstr "Irengayobora(-) Mo Imbere ITEGEKONGENGA ni Birinzwe"
+
+#: java/verify.c:1395
+#, fuzzy, c-format
+msgid "unknown opcode %d@pc=%d during verification"
+msgstr "Kitazwi"
+
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
+#, fuzzy, c-format
+msgid "verification error at PC=%d"
+msgstr "Ikosa ku"
+
+#: java/lang-options.h:32
+#, fuzzy
+msgid "Disable automatic array bounds checking"
+msgstr "Byikoresha Imbonerahamwe"
+
+#: java/lang-options.h:34
+#, fuzzy
+msgid "Disable assignability checks for stores into object arrays"
+msgstr "kugirango Igikoresho"
+
+#: java/lang-options.h:36
+#, fuzzy
+msgid "Assume native functions are implemented using JNI"
+msgstr "Imimaro ikoresha"
+
+#: java/lang-options.h:38
+#, fuzzy
+msgid "Replace system path"
+msgstr "Sisitemu Inzira"
+
+#: java/lang-options.h:40
+#, fuzzy
+msgid "Set class path"
+msgstr "ishuri Inzira"
+
+#: java/lang-options.h:42
+#, fuzzy
+msgid "Set class path (deprecated: use --classpath instead)"
+msgstr "ishuri Inzira Bitemewe. Gukoresha Inzirashuri"
+
+#: java/lang-options.h:44
+#, fuzzy
+msgid "Choose class whose main method should be used"
+msgstr "ishuri bya Uburyo"
+
+#: java/lang-options.h:46
+#, fuzzy
+msgid "Choose input encoding (default comes from locale)"
+msgstr "Iyinjiza Imisobekere: Mburabuzi Bivuye Umwanya"
+
+#: java/lang-options.h:48
+#, fuzzy
+msgid "Add directory to class path"
+msgstr "bushyinguro Kuri ishuri Inzira"
+
+#: java/lang-options.h:50
+#, fuzzy
+msgid "Directory where class files should be written"
+msgstr "ishuri Idosiye"
+
+#: java/lang-options.h:52
+#, fuzzy
+msgid "Warn if modifiers are specified when not necessary"
+msgstr "NIBA Ryari: OYA"
+
+#: java/lang-options.h:54
+#, fuzzy
+msgid "Warn if deprecated empty statements are found"
+msgstr "NIBA Bitemewe. ubusa Byabonetse"
+
+#: java/lang-options.h:56
+#, fuzzy
+msgid "Warn if .class files are out of date"
+msgstr "NIBA ishuri Idosiye Inyuma Bya Itariki"
+
+#: java/lang-options.h:58
+#, fuzzy
+msgid "Always check for non gcj generated classes archives"
+msgstr "Kugenzura... kugirango Inzego Ubushyinguro"
+
+#: java/lang-options.h:60
+#, fuzzy
+msgid "Never optimize static class initialization code"
+msgstr "Kugeza ku ndunduro ishuri ITEGEKONGENGA"
+
+#: java/lang-options.h:62
+#, fuzzy
+msgid "Use offset tables for virtual method calls"
+msgstr "Nta- boneza Imbonerahamwe kugirango Kitaboneka Uburyo Amahamagara:"
+
+#: objc/objc-act.c:651
+#, fuzzy, c-format
+msgid "object does not conform to the `%s' protocol"
+msgstr "Igikoresho OYA Kuri i Porotokole"
+
+#: objc/objc-act.c:737 objc/objc-act.c:810
+#, fuzzy, c-format
+msgid "class `%s' does not implement the `%s' protocol"
+msgstr "ishuri OYA i Porotokole"
+
+#: objc/objc-act.c:914
+#, c-format
+msgid "`%s' cannot be statically allocated"
+msgstr ""
+
+#: objc/objc-act.c:963
+#, fuzzy, c-format
+msgid "unexpected type for `id' (%s)"
+msgstr "Ubwoko kugirango"
+
+#: objc/objc-act.c:968
+#, fuzzy
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr "kidasobanuye Ubwoko Kuzana h"
+
+#: objc/objc-act.c:1019
+#, fuzzy, c-format
+msgid "protocol `%s' has circular dependency"
+msgstr "Porotokole Cy'uruziga"
+
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
+#, fuzzy, c-format
+msgid "cannot find protocol declaration for `%s'"
+msgstr "Gushaka Porotokole kugirango"
+
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr "Gushaka kugirango"
+
+#: objc/objc-act.c:1328
+#, fuzzy, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr "Gushaka Indango Itagi: kugirango ishuri"
+
+#: objc/objc-act.c:2050
+#, fuzzy, c-format
+msgid "creating selector for non existant method %s"
+msgstr "kugirango Uburyo"
+
+#: objc/objc-act.c:2364
+#, fuzzy, c-format
+msgid "cannot find class `%s'"
+msgstr "Gushaka ishuri"
+
+#: objc/objc-act.c:2366
+#, fuzzy, c-format
+msgid "class `%s' already exists"
+msgstr "ishuri"
+
+#. fatal did not work with 2 args...should fix
+#: objc/objc-act.c:2473
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr "Gushaka kugirango Bya"
+
+#: objc/objc-act.c:2480
+#, fuzzy, c-format
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr "Cy'uruziga in kugirango"
+
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
+#, fuzzy
+msgid "inconsistent instance variable specification"
+msgstr "Urugero IMPINDURAGACIRO"
+
+#: objc/objc-act.c:4580
+#, fuzzy
+msgid "can not use an object as parameter to a method\n"
+msgstr "OYA Gukoresha Igikoresho Nka Kuri a"
+
+#: objc/objc-act.c:4780
+#, fuzzy, c-format
+msgid "multiple declarations for method `%s'"
+msgstr "Igikubo kugirango Uburyo"
+
+#: objc/objc-act.c:4946
+#, fuzzy, c-format
+msgid "invalid receiver type `%s'"
+msgstr "Sibyo Mwakirizi Ubwoko"
+
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
+#, fuzzy, c-format
+msgid "`%s' does not respond to `%s'"
+msgstr "`%s'OYA Kuri"
+
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
+#, fuzzy, c-format
+msgid "no super class declared in interface for `%s'"
+msgstr "Oya hejuru ishuri in kugirango"
+
+#: objc/objc-act.c:5081
+#, fuzzy
+msgid "cannot find class (factory) method"
+msgstr "Gushaka ishuri Uburyo"
+
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
+#, fuzzy, c-format
+msgid "return type for `%s' defaults to id"
+msgstr "Garuka Ubwoko kugirango Kuri ID"
+
+#: objc/objc-act.c:5099
+#, fuzzy, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr "Uburyo OYA ku Porotokole"
+
+#: objc/objc-act.c:5108
+#, fuzzy
+msgid "return type defaults to id"
+msgstr "Garuka Ubwoko Kuri ID"
+
+#: objc/objc-act.c:5125
+#, fuzzy
+msgid "cannot find method"
+msgstr "Gushaka Uburyo"
+
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr ""
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:5443
+#, fuzzy, c-format
+msgid "instance variable `%s' accessed in class method"
+msgstr "Urugero IMPINDURAGACIRO birabonetse in ishuri Uburyo"
+
+#: objc/objc-act.c:5678
+#, fuzzy, c-format
+msgid "duplicate definition of class method `%s'"
+msgstr "Gusubiramo Insobanuro Bya ishuri Uburyo"
+
+#: objc/objc-act.c:5684
+#, fuzzy, c-format
+msgid "duplicate declaration of class method `%s'"
+msgstr "Gusubiramo Bya ishuri Uburyo"
+
+#: objc/objc-act.c:5720
+#, fuzzy, c-format
+msgid "duplicate definition of instance method `%s'"
+msgstr "Gusubiramo Insobanuro Bya Urugero Uburyo"
+
+#: objc/objc-act.c:5726
+#, fuzzy, c-format
+msgid "duplicate declaration of instance method `%s'"
+msgstr "Gusubiramo Bya Urugero Uburyo"
+
+#: objc/objc-act.c:5766
+#, fuzzy, c-format
+msgid "duplicate interface declaration for category `%s(%s)'"
+msgstr "Gusubiramo kugirango Icyiciro"
+
+#: objc/objc-act.c:5852
+#, fuzzy, c-format
+msgid "instance variable `%s' is declared private"
+msgstr "Urugero IMPINDURAGACIRO ni By'umwihariko"
+
+#: objc/objc-act.c:5899
+#, fuzzy, c-format
+msgid "instance variable `%s' is declared %s"
+msgstr "Urugero IMPINDURAGACIRO ni"
+
+#: objc/objc-act.c:5909
+#, fuzzy
+msgid "static access to object of type `id'"
+msgstr "Kuri Igikoresho Bya Ubwoko"
+
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
+#, fuzzy, c-format
+msgid "incomplete implementation of class `%s'"
+msgstr "Bya ishuri"
+
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, fuzzy, c-format
+msgid "incomplete implementation of category `%s'"
+msgstr "Bya Icyiciro"
+
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, fuzzy, c-format
+msgid "method definition for `%c%s' not found"
+msgstr "Uburyo Insobanuro kugirango OYA Byabonetse"
+
+#: objc/objc-act.c:6081
+#, fuzzy, c-format
+msgid "%s `%s' does not fully implement the `%s' protocol"
+msgstr "%s`%s'OYA i Porotokole"
+
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+#, fuzzy
+msgid "`@end' missing in implementation context"
+msgstr "`@Ibuze in Imvugiro"
+
+#: objc/objc-act.c:6167
+#, fuzzy, c-format
+msgid "reimplementation of class `%s'"
+msgstr "Bya ishuri"
+
+#: objc/objc-act.c:6209
+#, fuzzy, c-format
+msgid "conflicting super class name `%s'"
+msgstr "hejuru ishuri Izina:"
+
+#: objc/objc-act.c:6224
+#, fuzzy, c-format
+msgid "duplicate interface declaration for class `%s'"
+msgstr "Gusubiramo kugirango ishuri"
+
+#: objc/objc-act.c:6506
+#, fuzzy, c-format
+msgid "duplicate declaration for protocol `%s'"
+msgstr "Gusubiramo kugirango Porotokole"
+
+#: objc/objc-act.c:7363
+#, fuzzy
+msgid "[super ...] must appear in a method context"
+msgstr "[hejuru Kugaragara in a Uburyo Imvugiro"
+
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
+#, fuzzy, c-format
+msgid "potential selector conflict for method `%s'"
+msgstr "kugirango Uburyo"
+
+#: objc-parse.y:2655
+#, fuzzy
+msgid "`@end' must appear in an implementation context"
+msgstr "`@Kugaragara in Imvugiro"
+
+#: objc-parse.y:2931
+#, fuzzy
+msgid "method definition not in class context"
+msgstr "Uburyo Insobanuro OYA in ishuri Imvugiro"
+
+#: objc/lang-options.h:27
+#, fuzzy
+msgid "Dump decls to a .decl file"
+msgstr "Kuri a IDOSIYE"
+
+#: objc/lang-options.h:29
+#, fuzzy
+msgid "Generate code for GNU runtime environment"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: objc/lang-options.h:32
+#, fuzzy
+msgid "Generate code for NeXT runtime environment"
+msgstr "ITEGEKONGENGA kugirango"
+
+#: objc/lang-options.h:35
+#, fuzzy
+msgid "Warn if a selector has multiple methods"
+msgstr "NIBA a Igikubo"
+
+#: objc/lang-options.h:39
+#, fuzzy
+msgid "Do not warn if inherited methods are unimplemented"
+msgstr "OYA NIBA"
+
+#: objc/lang-options.h:41
+#, fuzzy
+msgid "Generate C header of platform specific features"
+msgstr "C Umutwempangano Bya Ibiranga"
+
+#: objc/lang-options.h:43
+#, fuzzy
+msgid "Specify the name of the class for constant strings"
+msgstr "i Izina: Bya i ishuri kugirango Ikurikiranyanyuguti"
+
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+#, fuzzy
+msgid "(debug) trace parsing process"
+msgstr "(Kosora amakosa"
+
+#: treelang/lang-options.h:27
+#, fuzzy
+msgid "(debug) trace lexical analysis"
+msgstr "(Kosora amakosa"
+
+#: config/rs6000/darwin.h:62
+#, fuzzy
+msgid " conflicting code gen style switches are used"
+msgstr "ITEGEKONGENGA IMISUSIRE"
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+#, fuzzy
+msgid "shared and mdll are not compatible"
+msgstr "Na OYA"
+
+#: java/lang-specs.h:33
+#, fuzzy
+msgid "-fjni and -femit-class-files are incompatible"
+msgstr "-Na ishuri Idosiye"
+
+#: java/lang-specs.h:34
+#, fuzzy
+msgid "-fjni and -femit-class-file are incompatible"
+msgstr "-Na ishuri IDOSIYE"
+
+#: java/lang-specs.h:35 java/lang-specs.h:36
+#, fuzzy
+msgid "-femit-class-file should used along with -fsyntax-only"
+msgstr "-ishuri IDOSIYE Na:"
+
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+#, fuzzy
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-Na Ikadiri Mweretsi"
+
+#: ada/lang-specs.h:41
+#, fuzzy
+msgid "-c or -S required for Ada"
+msgstr "-C Cyangwa Bya ngombwa kugirango"
+
+#: config/darwin.h:212
+#, fuzzy
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-Na:"
+
+#: config/darwin.h:215
+#, fuzzy
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-Na:"
+
+#: config/darwin.h:220
+#, fuzzy
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:221
+#, fuzzy
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:222
+#, fuzzy
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:225
+#, fuzzy
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:226
+#, fuzzy
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:228
+#, fuzzy
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/darwin.h:229
+#, fuzzy
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-OYA Na:"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+#, fuzzy
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "`-OYA Gukoresha Na 1."
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+#, fuzzy
+msgid "may not use both -m32 and -m64"
+msgstr "Gicurasi OYA Gukoresha Byombi Na"
+
+#: config/arm/arm.h:178
+#, fuzzy
+msgid "-mapcs-26 and -mapcs-32 may not be used together"
+msgstr "-Na Gicurasi OYA"
+
+#: config/arm/arm.h:180
+#, fuzzy
+msgid "-msoft-float and -mhard_float may not be used together"
+msgstr "-Kureremba Na Gicurasi OYA"
+
+#: config/arm/arm.h:182
+#, fuzzy
+msgid "-mbig-endian and -mlittle-endian may not be used together"
+msgstr "-Na Gicurasi OYA"
+
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "-OYA ku iyi"
+
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "-P Na"
+
+#: config/i386/sco5.h:271
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "-Na"
+
+#: f/lang-specs.h:38 gcc.c:689
+#, fuzzy
+msgid "GNU C does not support -C without using -E"
+msgstr "C OYA Gushigikira C ikoresha E"
+
+#: f/lang-specs.h:39 gcc.c:690
+#, fuzzy
+msgid "GNU C does not support -CC without using -E"
+msgstr "C OYA Gushigikira ikoresha E"
+
+#: config/mcore/mcore.h:60
+#, fuzzy
+msgid "choose either big or little endian, not both"
+msgstr "Guhitamo Cyangwa OYA Byombi"
+
+#: config/mcore/mcore.h:63
+#, fuzzy
+msgid "choose either m340 or m210 not both"
+msgstr "Guhitamo Cyangwa OYA Byombi"
+
+#: config/mcore/mcore.h:64
+#, fuzzy
+msgid "the m210 does not have little endian support"
+msgstr "i OYA Gushigikira"
+
+#: config/i386/cygwin.h:115
+#, fuzzy
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "Na OYA"
+
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "Ihitamo ni OYA kugirango"
+
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-Cyangwa P Na Ikadiri Mweretsi"
+
+#: gcc.c:847
+#, fuzzy
+msgid "-E required when input is from standard input"
+msgstr "-E Bya ngombwa Ryari: Iyinjiza ni Bivuye Bisanzwe Iyinjiza"
+
+#: gcc.c:851
+#, fuzzy
+msgid "compilation of header file requested"
+msgstr "Bya Umutwempangano IDOSIYE"
+
+#: config/vax/vax.h:50 config/vax/vax.h:51
+#, fuzzy
+msgid "profiling not supported with -mg\n"
+msgstr "OYA Na:"
+
+#: config/mips/mips.h:954
+#, fuzzy
+msgid "-pipe is not supported"
+msgstr "-ni OYA"
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+#, fuzzy
+msgid "may not use both -EB and -EL"
+msgstr "Gicurasi OYA Gukoresha Byombi Na"
+
+#: config/mips/r3900.h:35
+#, fuzzy
+msgid "-mhard-float not supported"
+msgstr "-Kureremba OYA"
+
+#: config/mips/r3900.h:37
+#, fuzzy
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr "-Kureremba Na Kureremba OYA Byombi"
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index ad46071675f..a8ebd4eafe8 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -1,22 +1,92 @@
# Swedish translation for the GNU CC.
# Copyright (C) 2000 Free Software Foundation, Inc.
-# Dennis Björklund <db@zigo.dhs.org>, 2000.
+# Dennis Björklund <db@zigo.dhs.org>, 2000, 2001, 2002.
+#
+# Kom ihåg att i svenskan så använder vi "" för citat
+# och inte '' som det är i originaluttrycken.
+#
+# Jag har gjort en liten ordlista över uttryck som kan finnas i
+# översättningen
+#
+# http://www.zigo.dhs.org/~dennis/gcc/
+#
+# Denna lista är inte komplett men är det någon som vill hjälpa till
+# att översätta gcc och har åsikter om hur dessa uttryck skall skrivas
+# så ta kontakt så kan vi uppdatera den.
+#
+# Det mesta av övdersättningen som finns nu kommer från tiden
+# innan version 3.0 av gcc. Dessvärre så fungerade aldrig gcc
+# med översättningar korrekt då, så den kom inte till användning.
+# Jag har överfört de gamla strängarna till dagens version (3.2)
+# så det finns en början, men det är mycket kvar. Men vill någon hjälpa
+# till så vore det jättebra. Jag kommer översätta en bit då och då
+# i mån av tid, men det är en stor fil med komplicerade uttryck så
+# det tar en stund att bli klar.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 2.97 20001112 (experimental)\n"
-"POT-Creation-Date: 2001-06-13 09:06+0200\n"
-"PO-Revision-Date: 2001-06-13 09:18+02:00\n"
+"Project-Id-Version: gcc 3.2\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2002-08-26 12:58+0200\n"
"Last-Translator: Dennis Björklund <db@zigo.dhs.org>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: builtins.c:275
+#: attribs.c:185
+#, c-format
+msgid "`%s' attribute directive ignored"
+msgstr "attributet \"%s\" ignorerat"
+
+#: attribs.c:193
+#, c-format
+msgid "wrong number of arguments specified for `%s' attribute"
+msgstr "fel antal argument angett för attributet `%s'"
+
+#: attribs.c:210
+#, c-format
+msgid "`%s' attribute does not apply to types"
+msgstr "attributet \"%s\" är inte applicerbart på typer"
+
+#: attribs.c:247
+#, c-format
+msgid "`%s' attribute only applies to function types"
+msgstr "attributet \"%s\" fungerar bara på funktionstyper"
+
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
+#, c-format
+msgid "`%s' attribute ignored"
+msgstr "attributet `%s' ignorerat"
+
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr "index till en konstant sträng pekar utanför dess gränser"
+#: builtins.c:765
+msgid "second arg to `__builtin_prefetch' must be a constant"
+msgstr "andra argumentet till \"__builtin_prefetch\" måste vara en konstant"
+
+#: builtins.c:772
+msgid "invalid second arg to __builtin_prefetch; using zero"
+msgstr "ogiltigt andra argument till __builtin_prefetch; använder noll"
+
+#: builtins.c:779
+msgid "third arg to `__builtin_prefetch' must be a constant"
+msgstr "tredje argumentet till \"__builtin_prefetch\" måste vara en konstant"
+
+#: builtins.c:786
+msgid "invalid third arg to __builtin_prefetch; using zero"
+msgstr "ogiltigt tredje argument till __builtin_prefetch; använder noll"
+
#. ??? We used to try and build up a call to the out of line function,
#. guessing about what registers needed saving etc. This became much
#. harder with __builtin_va_start, since we don't have a tree for a
@@ -24,1323 +94,1465 @@ msgstr "index till en konstant sträng pekar utanför dess gränser"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2635
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: builtins.c:2678
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "argumentet till \"__builtin_args_info\" måste vara konstant"
-#: builtins.c:2684
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall"
-#: builtins.c:2690
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "argument saknas till \"__builtin_args_info\""
-#: builtins.c:2721
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr "\"va_start\" används i en funktion med fixt antal parametrar"
-#: builtins.c:2740
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
-msgstr ""
-"andra parametern till \"va_start\" var inte det sista namngivna argumentet"
+msgstr "andra parametern till \"va_start\" var inte det sista namngivna argumentet"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2745
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "\"__builtin_next_arg\" anropad utan argument"
-#: builtins.c:2847
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "För många argument till funktionen \"va_start\""
-#: builtins.c:2933
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr "första argumentet till \"va_arg\" är inte av typen \"va_list\""
-#: builtins.c:2961
+#. Unfortunately, this is merely undefined, rather than a constraint
+#. violation, so we cannot make this an error. If this call is never
+#. executed, the program is still strictly conforming.
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr "\"%s\" konverteras till \"%s\" när det skickas via \"...\""
-#: builtins.c:2965
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr "(alltså skall du skicka \"%s\" och inte \"%s\" till \"va_arg\")"
-#: builtins.c:3074
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr "ogiltigt argument till \"__builtin_frame_address\""
-#: builtins.c:3076
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr "ogiltigt argument till \"__builtin_return_address\""
-#: builtins.c:3089
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr "Icke supportat argument till \"__builtin_frame_address\""
-#: builtins.c:3091
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr "Icke supportat argument till \"__builtin_return_address\""
-#: builtins.c:3254
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr "andra argumentet till \"__builtin_expect\" måste vara en konstant"
-#: builtins.c:3584
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr "andra argumentet till __builtin_longjmp måste vara 1"
-#: builtins.c:3598
-msgid "__builtin_trap not supported by this target"
-msgstr "__builtin_trap stöds inte på denna målarkitektur"
-
#. just do library call, if unknown builtin
-#: builtins.c:3650 c-common.c:4044
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr "inbyggd funktion \"%s\" stöds inte för närvarande"
-#: c-common.c:509
-#, c-format
-msgid "`%s' is not defined outside of function scope"
-msgstr ""
-
-#: c-common.c:614
-#, c-format
-msgid ""
-"string length `%d' is greater than the length `%d' ISO C%d compilers are "
-"required to support"
-msgstr ""
-"stränglängden \"%d\" är större än den minsta längden \"%d\" som ISO C%d "
-"kompilatorer behöver stödja"
-
-#: c-common.c:779
-#, c-format
-msgid "`%s' attribute directive ignored"
-msgstr "attributet \"%s\" ignorerat"
-
-#: c-common.c:787
-#, c-format
-msgid "`%s' attribute does not apply to types"
-msgstr "attributet \"%s\" är inte applicerbart på typer"
-
-#: c-common.c:794
-#, c-format
-msgid "wrong number of arguments specified for `%s' attribute"
-msgstr "fel antal argument angett för attributet `%s'"
-
-#: c-common.c:810 c-common.c:817 c-common.c:824 c-common.c:837 c-common.c:845
-#: c-common.c:860 c-common.c:873 c-common.c:881 c-common.c:897 c-common.c:909
-#: c-common.c:921 c-common.c:926 c-common.c:1100 c-common.c:1252
-#, c-format
-msgid "`%s' attribute ignored"
-msgstr "attributet `%s' ignorerat"
-
-#: c-common.c:959
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "okänt maskinläge `%s'"
-
-#: c-common.c:962
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "ingen datatyp för läge `%s'"
-
-#: c-common.c:969
-#, c-format
-msgid "type with more precision than %s"
-msgstr "typ med högre precision än %s"
-
-#: c-common.c:988
-msgid "section attribute cannot be specified for local variables"
-msgstr "attributet \"section\" kan inte anges för lokala variabler"
-
-#: c-common.c:995
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-
-#: c-common.c:1001
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "attributet \"section\" är inte tillåten för \"%s\""
-
-#: c-common.c:1004
-msgid "section attributes are not supported for this target"
-msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-
-#: c-common.c:1023
-msgid "requested alignment is not a constant"
-msgstr "efterfrågad minnesjustering är inte konstant"
-
-#: c-common.c:1028
-msgid "requested alignment is not a power of 2"
-msgstr "efterrågad minnesjustering är inte en potens av 2"
-
-#: c-common.c:1030
-msgid "requested alignment is too large"
-msgstr "efterfrågad minnesjustering är för stor"
-
-#: c-common.c:1053
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "minnesjustering kan inte anges för \"%s\""
+#: builtins.c:4165
+#, fuzzy
+msgid "target format does not support infinity"
+msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: c-common.c:1078
+#: c-common.c:1168
#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "\"%s\" är definierad både normalt och som ett alias"
-
-#: c-common.c:1086
-msgid "alias arg not a string"
-msgstr "aliasargumentet är inte en sträng"
+msgid "`%s' is not defined outside of function scope"
+msgstr "\"%s\" är inte definierad utanför funktions-scope"
-#: c-common.c:1107 c-common.c:1124 c-common.c:1141
+#: c-common.c:1189
#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "attributet \"%s\" fungerar bara på funktioner"
+msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+msgstr "stränglängden \"%d\" är större än den minsta längden \"%d\" som ISO C%d kompilatorer behöver stödja"
-#: c-common.c:1113 c-common.c:1130 c-common.c:1147
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "kan inte sätta attributet \"%s\" efter definitionen"
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "sammanslagning av strängliteraler tillsammans med __FUNCTION__ är föråldrat"
-#: c-common.c:1280 ch/decl.c:4100
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "spill i konstant uttryck"
-#: c-common.c:1301
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "heltalsspill i uttryck"
-#: c-common.c:1310
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "flyttalsspill i uttryck"
+#: c-common.c:1379
+#, fuzzy
+msgid "vector overflow in expression"
+msgstr "heltalsspill i uttryck"
+
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:1331
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "stort heltal implicit trunkerat till unsigned typ"
-#: c-common.c:1333
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "negativt heltal implicit konverterat till unsigned typ"
-#: c-common.c:1380
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "spill i implicit constant konvertering"
-#: c-common.c:1528
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr "operation på \"%s\" kan vara odefinierad"
-#: c-common.c:1813
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "uttryckssats har inkomplett typ"
-#: c-common.c:1846 ch/actions.c:1027
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "case-etikett reducerar inte till en heltalskonstant"
-#: c-common.c:2116
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "ogiltigt sanningsvärdeuttryck"
-#: c-common.c:2167
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "ogiltiga operander till binär %s"
-#: c-common.c:2402 c-common.c:2411
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
-msgstr ""
-"jämförelsen är alltid falsk på grund av begränsat intervall för datatypen"
+msgstr "jämförelsen är alltid falsk på grund av begränsat intervall för datatypen"
-#: c-common.c:2404 c-common.c:2413
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
-msgstr ""
-"jämförelsen är alltid sann på grund av begränsat intervall för datatypen"
+msgstr "jämförelsen är alltid sann på grund av begränsat intervall för datatypen"
-#: c-common.c:2479
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "jämförelse med unsigned-uttryck >= 0 är alltid sant"
-#: c-common.c:2488
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "jämförelse med unsigned-uttryck < 0 är alltid falskt"
-#: c-common.c:2539 f/com.c:15229
+#: c-common.c:2641
+msgid "pointer of type `void *' used in arithmetic"
+msgstr "pekare av typen \"void *\" använd med aritmetik"
+
+#: c-common.c:2647
+msgid "pointer to a function used in arithmetic"
+msgstr "pekare till funktion använd med aritmetik"
+
+#: c-common.c:2653
+msgid "pointer to member function used in arithmetic"
+msgstr "pekare till medlemsfunktion använd med aritmetik"
+
+#: c-common.c:2659
+msgid "pointer to a member used in arithmetic"
+msgstr "pekare till en medlemsfunktion använd med aritmetik"
+
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "struct-värde använt där skalär krävs"
-#: c-common.c:2543 f/com.c:15233
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "union-värde använt där skalär krävs"
-#: c-common.c:2547 f/com.c:15237
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "fält-värde använd där skalär krävs"
-#: c-common.c:2662 f/com.c:15363
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
msgstr "föreslår parenteser runt tilldelning som används som sanningsvärde"
-#: c-common.c:2706 c-common.c:2738
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "ogiltigt användande av \"restrict\""
-#: c-common.c:3479 c-typeck.c:1792
+#: c-common.c:3064
+#, fuzzy
+msgid "invalid application of `sizeof' to a function type"
+msgstr "ISO C++ förbjuder användning av \"sizeof\" på funktioner"
+
+#: c-common.c:3074
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "ogiltig operation på oinstansierad typ"
+
+#: c-common.c:3080
+#, fuzzy, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "sizeof applicerat på en inkomplett typ"
+
+#: c-common.c:3121
+msgid "`__alignof' applied to a bit-field"
+msgstr ""
+
+#: c-common.c:3618
+#, fuzzy, c-format
+msgid "cannot disable built-in function `%s'"
+msgstr "döljer inbyggd funktion \"%s\""
+
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "för få argument till funktionen \"%s\""
-#: c-common.c:3485 c-typeck.c:1644
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "för många argument till funktionen \"%s\""
-#: c-common.c:3672
+#: c-common.c:3812
+#, fuzzy, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "för många argument till funktionen \"%s\""
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
msgstr "pekare är inte tillåtna case-värden"
-#: c-common.c:3678
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr "ISO C++ förbjuder intervalluttryck i switch-satser"
-#: c-common.c:3680
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr "ISO C förbjuder intervalluttryck i switch-satser"
-#: c-common.c:3710
+#: c-common.c:4119
msgid "empty range specified"
msgstr "tomt intervall angivet"
-#: c-common.c:3761
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr "dubbla (eller överlappand) case-värden"
-#: c-common.c:3763
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
msgstr "detta är det första fallet som överlappar det värdet"
-#: c-common.c:3767 ch/actions.c:1125
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "upprepat case-värde"
-#: c-common.c:3768
+#: c-common.c:4177
msgid "previously used here"
msgstr "tidigare använd här"
-#: c-common.c:3772
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr "flera default-etiketter i en switch"
-#: c-common.c:3773
+#: c-common.c:4182
msgid "this is the first default label"
msgstr "detta är den första default-etiketten"
-#: c-common.c:3801
+#: c-common.c:4210
+#, fuzzy
msgid "ISO C++ forbids taking the address of a label"
-msgstr "ISO C++ förbjuder att man tar adressen till en etikett"
+msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
-#: c-common.c:3803
+#: c-common.c:4212
+#, fuzzy
msgid "ISO C forbids taking the address of a label"
-msgstr "ISO C förbjuder att man tar adressen till en etikett"
+msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
-#: c-common.c:4314
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "-Wformat-y2k ignorerad utan -Wformat"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "deklaration av \"%s\" döljer %s"
-#: c-common.c:4316
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "-Wformat-extra-args ignorerad utan -Wformat"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "okänt maskinläge `%s'"
-#: c-common.c:4318
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "-Wformat-nonliteral ignorerad utan -Wformat"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "ingen datatyp för läge `%s'"
-#: c-common.c:4320
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "-Wformat-security ignorerad utan -Wformat"
+#: c-common.c:5666 c-common.c:6316
+#, fuzzy, c-format
+msgid "unable to emulate '%s'"
+msgstr "kan inte öppna fil \"%s\""
-#: c-common.c:4322
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "-Wmissing-format-attribute ignorerad utan -Wformat"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "attributet \"section\" kan inte anges för lokala variabler"
+
+#: c-common.c:5713
+#, c-format
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "attributet \"section\" är inte tillåten för \"%s\""
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "efterfrågad minnesjustering är inte konstant"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "efterrågad minnesjustering är inte en potens av 2"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "efterfrågad minnesjustering är för stor"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "minnesjustering kan inte anges för \"%s\""
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "\"%s\" är definierad både normalt och som ett alias"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "aliasargumentet är inte en sträng"
+
+#: c-common.c:5910
+#, fuzzy
+msgid "visibility arg not a string"
+msgstr "aliasargumentet är inte en sträng"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr ""
+
+#: c-common.c:5953
+#, fuzzy
+msgid "tls_model arg not a string"
+msgstr "aliasargumentet är inte en sträng"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr ""
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "attributet \"%s\" fungerar bara på funktioner"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "kan inte sätta attributet \"%s\" efter definitionen"
+
+#: c-common.c:6114
+#, fuzzy
+msgid "cleanup arg not an identifier"
+msgstr "predikat måste vara en identifierare"
+
+#: c-common.c:6121
+#, fuzzy
+msgid "cleanup arg not a function"
+msgstr "anropat objekt är inte en funktion"
-#: c-convert.c:78 c-typeck.c:983 c-typeck.c:4112 ch/convert.c:1166
-#: cp/typeck.c:1755 cp/typeck.c:6319
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "attributet `%s' ignorerat för \"%s\""
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "ogiltigt vektortype för attribut \"%s\""
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr ""
+
+#: c-common.c:6403
+#, fuzzy
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "antalet argument matchar inte prototypen"
+
+#: c-common.c:6418
+#, fuzzy, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "formatsträng har ett ogiltigt antal operander"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr ""
+
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr ""
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
msgid "void value not ignored as it ought to be"
msgstr "värdet av typen void ignoreras inte vilket bör göras"
-#: c-convert.c:110 java/typeck.c:150
+#: c-convert.c:112 java/typeck.c:150
msgid "conversion to non-scalar type requested"
msgstr "konvertering till icke-skalär typ begärd"
-#: c-decl.c:545
-#, c-format
-msgid "unknown C standard `%s'"
-msgstr "okänd C-standard \"%s\""
-
-#: c-decl.c:839
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr "fält \"%s\" antas ha ett element"
-#: c-decl.c:1015
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "\"struct %s\" är inkomplett i scope-område som slutar här"
-#: c-decl.c:1018
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "\"union %s\" är inkomplett i scope-område som slutar här"
-#: c-decl.c:1021
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "\"enum %s\" är inkomplett i scope-område som slutar här"
-#: c-decl.c:1135 c-decl.c:1300 ch/decl.c:2920 java/decl.c:1334
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "etikett \"%s\" använd men inte definierad"
-#: c-decl.c:1141 c-decl.c:1307 ch/decl.c:2926 java/decl.c:1340
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr "etikett \"%s\" definierad men inte använd"
-#: c-decl.c:1429 c-decl.c:1482
+#: c-decl.c:893 cp/decl.c:3335
+#, fuzzy, c-format
+msgid "function `%s' redeclared as inline"
+msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion"
+
+#: c-decl.c:895 cp/decl.c:3337
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' with attribute noinline"
+msgstr "implicit deklaration av funktion \"%s\""
+
+#: c-decl.c:902 cp/decl.c:3344
+#, fuzzy, c-format
+msgid "function `%s' redeclared with attribute noinline"
+msgstr "funktionen \"%s\" deklarerades tidigare i ett block"
+
+#: c-decl.c:904 cp/decl.c:3346
+#, fuzzy, c-format
+msgid "previous declaration of function `%s' was inline"
+msgstr "tidigare deklaration av \"%s\""
+
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr "döljer inbyggd funktion \"%s\""
-#: c-decl.c:1431
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr "döljer biblioteksfunktion \"%s\""
-#: c-decl.c:1437
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion"
-#: c-decl.c:1441 c-decl.c:1444
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
-#: c-decl.c:1448 objc/objc-act.c:2488 objc/objc-act.c:6153
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: c-decl.c:1449 c-decl.c:1627 c-decl.c:1774 objc/objc-act.c:2490
-#: objc/objc-act.c:6155 objc/objc-act.c:6213
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "tidigare deklaration av \"%s\""
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1531
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr "motstridiga typer på inbyggd funktion \"%s\""
-#: c-decl.c:1574 c-decl.c:1593
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "motstridiga typer på \"%s\""
-#: c-decl.c:1616
-msgid ""
-"A parameter list with an ellipsis can't match an empty parameter name list "
-"declaration."
-msgstr ""
-"En parameterlista med ellips kan inte matcha en tom namnlistdeklaration."
+#: c-decl.c:1133
+#, fuzzy
+msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+msgstr "En parameterlista med ellips kan inte matcha en tom namnlistdeklaration."
-#: c-decl.c:1622
-msgid ""
-"An argument type that has a default promotion can't match an empty parameter "
-"name list declaration."
-msgstr ""
+#: c-decl.c:1139
+#, fuzzy
+msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+msgstr "En parameterlista med ellips kan inte matcha en tom namnlistdeklaration."
-#: c-decl.c:1637 c-decl.c:1659
+#: c-decl.c:1157
+#, fuzzy, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "statisk deklaration av \"%s\" följer på icke-statisk"
+
+#: c-decl.c:1164
+#, fuzzy, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "icke-statisk deklaration av \"%s\" följer på statisk"
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "omdefiniering av \"%s\""
-#: c-decl.c:1640
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "omdeklaration av \"%s\""
-#: c-decl.c:1643
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "motstridande deklarationer av \"%s\""
-#: c-decl.c:1652 c-decl.c:1664
-#, c-format
-msgid "`%s' previously defined here"
-msgstr "\"%s\" definierades tidigare här"
-
-#: c-decl.c:1653 c-decl.c:1665
-#, c-format
-msgid "`%s' previously declared here"
-msgstr "\"%s\" är tidigare deklarerad här"
-
-#: c-decl.c:1686
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr "prototyp för \"%s\" följer"
-#: c-decl.c:1687 c-decl.c:1695 c-decl.c:1711
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "icke-prototypdefinition here"
-#: c-decl.c:1694
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr "prototyp för \"%s\" följer och antalet argument matchar inte"
-#: c-decl.c:1709
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr "prototyp för `%s' följer och argument %d matchar inte"
-#: c-decl.c:1726
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr "\"%s\" är deklarerad inline efter att den blivit anropad"
-#: c-decl.c:1731
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr "\"%s\" deklarerad inline efter sin definition"
-#: c-decl.c:1738
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr "statisk deklaration av \"%s\" följer på icke-statisk"
-#: c-decl.c:1746
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr "icke-statisk deklaration av \"%s\" följer på statisk"
-#: c-decl.c:1753
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr "const-deklaration för \"%s\" följer på icke-const"
-#: c-decl.c:1760
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "typkvalificerare för \"%s\" i konflikt med tidigare dekl"
-#: c-decl.c:1773
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr "redundant omdeklaration av \"%s\" i samma scope"
-#: c-decl.c:2064
+#: c-decl.c:1619 java/decl.c:1102
+#, c-format
+msgid "declaration of `%s' shadows a parameter"
+msgstr "deklaration av \"%s\" döljer en parameter"
+
+#: c-decl.c:1622 java/decl.c:1105
+#, c-format
+msgid "declaration of `%s' shadows a symbol from the parameter list"
+msgstr "deklaration av \"%s\" döljer symbol från parameterlista"
+
+#: c-decl.c:1643 cp/decl.c:4479
+#, fuzzy
+msgid "a parameter"
+msgstr "oanvänd parameter \"%s\""
+
+#: c-decl.c:1645 cp/decl.c:4496
+msgid "a previous local"
+msgstr ""
+
+#. XXX shadow warnings in outer-more namespaces
+#: c-decl.c:1649 cp/decl.c:4500
+#, fuzzy
+msgid "a global declaration"
+msgstr "dubbel deklaration av etikett \"%s\""
+
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "nästlad extern deklaration av \"%s\""
-#: c-decl.c:2089 java/decl.c:986
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr "\"%s\" är använd innan sin deklaration"
-#: c-decl.c:2110 c-decl.c:2325
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "\"%s\" deklarerades implicit \"extern\" och senare \"static\""
-#: c-decl.c:2220
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr "typ skiljer sig från tidigare extern deklaration"
-#: c-decl.c:2221
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "föregående externa dekl. av \"%s\""
-#: c-decl.c:2234
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
msgstr "typ skiljer sig från tidigare implicit deklaration"
-#: c-decl.c:2236
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
msgstr "tidigare implicit deklaration av \"%s\""
-#: c-decl.c:2253
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "typen på extern \"%s\" är inte global"
-
-#: c-decl.c:2304
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
msgstr "\"%s\" deklarerades tidigare implicit att returnera \"int\""
-#: c-decl.c:2329
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "\"%s\" deklarerades \"extern\" och senare \"static\""
-#: c-decl.c:2352
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "extern deklaration av \"%s\" matchar inte den globala"
-#: c-decl.c:2392
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr "\"%s\" är lokalt extern men globalt static"
-#: c-decl.c:2428 c-decl.c:2453 cp/decl.c:4221 java/decl.c:1033
-#, c-format
-msgid "declaration of `%s' shadows a parameter"
-msgstr "deklaration av \"%s\" döljer en parameter"
-
-#: c-decl.c:2431 java/decl.c:1036
-#, c-format
-msgid "declaration of `%s' shadows a symbol from the parameter list"
-msgstr "deklaration av \"%s\" döljer symbol från parameterlista"
-
-# local, det kan troligen vara både lokal variabel och lokal funktion??
-#: c-decl.c:2455 cp/decl.c:4229
-#, c-format
-msgid "declaration of `%s' shadows previous local"
-msgstr "deklaration av \"%s\" döljer en tidigare lokal"
-
-#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2458 cp/decl.c:4233
-#, c-format
-msgid "declaration of `%s' shadows global declaration"
-msgstr "deklaration av \"%s\" döljer global deklaration"
-
-#: c-decl.c:2548
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr "funktionen \"%s\" deklarerades tidigare i ett block"
-#: c-decl.c:2565 c-decl.c:2567
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "implicit deklaration av funktion \"%s\""
-#: c-decl.c:2654
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "etikett %s är refererad till utanför en funktion"
-#: c-decl.c:2711
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "dubbel deklaration av etikett \"%s\""
-#: c-decl.c:2714
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "detta är en tidigare deklaration"
-#: c-decl.c:3207
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr "odöpt struktur/union som inte har någon instans"
-#: c-decl.c:3226
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "oanvändbart nyckelord eller typnamn i tom deklaration"
-#: c-decl.c:3233
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "två typer angivna i en tom deklaration"
-#: c-decl.c:3238 c-parse.y:724 c-parse.y:726 cp/parse.y:728 cp/parse.y:1797
-#: objc/objc-parse.y:766 objc/objc-parse.y:768 objc/objc-parse.y:3034
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "tom deklaration"
-#: c-decl.c:3268
-msgid ""
-"ISO C89 does not support `static' or type qualifiers in parameter array "
-"declarators"
-msgstr ""
+#: c-decl.c:2740
+#, fuzzy
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:3270
-msgid "ISO C89 does not support `[*]' array declarators"
-msgstr ""
+#: c-decl.c:2742
+#, fuzzy
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:3273
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr ""
-#: c-decl.c:3292
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr ""
-#: c-decl.c:3349
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "\"%s\" är vanligtvis en funktion"
-#: c-decl.c:3363
-#, c-format
-msgid "typedef `%s' is initialized"
+#: c-decl.c:2847
+#, fuzzy, c-format
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
msgstr "typedef \"%s\" är initierad"
-#: c-decl.c:3370
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr "funktion \"%s\" är initierad som en variabel"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3377
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr "parameter \"%s\" är initierad"
-#: c-decl.c:3397 c-typeck.c:4843
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr "objekt med variabel storlek kan inte initieras"
-#: c-decl.c:3403
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr "variabel \"%s\" har initierare men är av inkomplett typ"
-#: c-decl.c:3409
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "elementen i fält \"%s\" har en ofullständig typ"
-#: c-decl.c:3422
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: c-decl.c:3535
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
+#, fuzzy, c-format
+msgid "inline function `%s' given attribute noinline"
+msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
+
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
-#: c-decl.c:3540
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr "fältstorlek saknas i \"%s\""
-#: c-decl.c:3556
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr "noll eller negativ storlek på fält \"%s\""
-#: c-decl.c:3584 ch/decl.c:4133
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr "lagringsstorlek på \"%s\" är okänd"
-#: c-decl.c:3594
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr "lagringsstorlek på \"%s\" är inte konstant"
-#: c-decl.c:3653
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "ignorerar asm för ickestatisk lokal variabel \"%s\""
-#: c-decl.c:3728
-#, c-format
-msgid "ANSI C forbids parameter `%s' shadowing typedef"
+#: c-decl.c:3247
+#, fuzzy, c-format
+msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr "ANSI C förbjuder att parameter \"%s\" döljer typedef"
-#: c-decl.c:3964 cp/decl.c:10028
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "\"long long long\" är för långt för GCC"
-#: c-decl.c:3969
-msgid "ISO C89 does not support `long long'"
+#: c-decl.c:3597
+#, fuzzy
+msgid "ISO C90 does not support `long long'"
msgstr "ISO C89 stödjer inte \"long long\"'"
-#: c-decl.c:3974 cp/decl.c:10033
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "flera \"%s\""
-#: c-decl.c:3980 cp/decl.c:10053
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr ""
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr ""
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: c-decl.c:3995 cp/decl.c:10058
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr ""
-#: c-decl.c:4034
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr ""
-#: c-decl.c:4063
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr "både long och short angivet för \"%s\""
-#: c-decl.c:4067 cp/decl.c:10157
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "long eller short angiven med char för \"%s\""
-#: c-decl.c:4074 cp/decl.c:10161
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "long eller short angiven med flyttalstyp för \"%s\""
-#: c-decl.c:4077
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "den enda giltiga kombinationen är \"long double\""
-#: c-decl.c:4083
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "både signed och unsigned specificerat för \"%s\""
-#: c-decl.c:4085 cp/decl.c:10150
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "long, short, signed eller unsigned ogiltig för \"%s\""
-#: c-decl.c:4091 cp/decl.c:10170
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr "long, short, signed eller unsigned använd felaktigt på \"%s\""
-#: c-decl.c:4110 cp/decl.c:10191
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "complex ogiltig för \"%s\""
-#: c-decl.c:4155
-msgid "ISO C89 does not support complex types"
+#: c-decl.c:3805
+#, fuzzy
+msgid "ISO C90 does not support complex types"
msgstr "ISO C89 stöder inte typen complex"
-#: c-decl.c:4167
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr "ISO C stöder inte bara \"complex\" i meningen \"double complex\""
-#: c-decl.c:4173 c-decl.c:4185
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr "ISO C stöder inte komplexa heltalstyper"
-#: c-decl.c:4200 c-decl.c:4615 cp/decl.c:10790
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "upprepning av \"const\""
-#: c-decl.c:4202 c-decl.c:4619 cp/decl.c:10794
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "upprepning av \"restrict\""
-#: c-decl.c:4204 c-decl.c:4617 cp/decl.c:10792
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
msgstr "upprepning av \"volatile\""
-#: c-decl.c:4226 cp/decl.c:10340
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: c-decl.c:4235
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr "funktionsdefinition deklarerad som \"auto\""
-#: c-decl.c:4237
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "funktionsdefinition deklarerad som \"register\""
-#: c-decl.c:4239
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "funktionsdefinition deklarerad som \"typedef\""
-#: c-decl.c:4252
+#: c-decl.c:3898
+#, fuzzy
+msgid "function definition declared `__thread'"
+msgstr "funktionsdefinition deklarerad som \"typedef\""
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "lagringsklass angiven för strukturfält \"%s\""
-#: c-decl.c:4256 cp/decl.c:10387
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "lagringsklass angiven för parameter \"%s\""
-#: c-decl.c:4259 cp/decl.c:10389
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "lagringsklass angiven för typnamn"
-#: c-decl.c:4271 cp/decl.c:10403
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr "`%s' initierad och deklarerad \"extern\""
-#: c-decl.c:4273 cp/decl.c:10406
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr "\"%s\" är både \"extern\" och initierare"
-#: c-decl.c:4277 cp/decl.c:10410
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "toppnivådeklaration av \"%s\" anger \"auto\""
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
-#: c-decl.c:4280 cp/decl.c:10414
-#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "toppnivådeklaration av \"%s\" anger \"auto\""
+#: c-decl.c:3948 cp/decl.c:11319
+#, fuzzy, c-format
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4314 c-decl.c:4480
+#: c-decl.c:3987 c-decl.c:4188
+#, fuzzy
msgid "static or type qualifiers in non-parameter array declarator"
-msgstr ""
+msgstr "två typer angivna i en tom deklaration"
-#: c-decl.c:4335
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "deklaration av \"%s\" som ett fält med void"
-#: c-decl.c:4341
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: c-decl.c:4362
+#: c-decl.c:4042 c-decl.c:5332
+#, fuzzy
+msgid "invalid use of structure with flexible array member"
+msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#: c-decl.c:4367
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: c-decl.c:4374
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr "storlek på fält \"%s\" är negativt"
-#: c-decl.c:4387
-#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
+#: c-decl.c:4086
+#, fuzzy, c-format
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
msgstr "ISO C89 förbjuder fält \"%s\" vars storlek inte kan beräknas"
-#: c-decl.c:4390
-#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
+#: c-decl.c:4089
+#, fuzzy, c-format
+msgid "ISO C90 forbids variable-size array `%s'"
msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: c-decl.c:4420 c-decl.c:4641
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
msgstr "fältet \"%s\" är för stort"
-#: c-decl.c:4437
-msgid "ISO C89 does not support flexible array members"
+#: c-decl.c:4145
+#, fuzzy
+msgid "ISO C90 does not support flexible array members"
msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
-#: c-decl.c:4447
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr "fälttyp har inkomplett elementtyp"
-#: c-decl.c:4454
-msgid "ANSI C forbids const or volatile function types"
-msgstr "ANSI C förbjuder funktionertyper med const eller volatile"
+#: c-decl.c:4162 c-decl.c:4392
+msgid "ISO C forbids const or volatile function types"
+msgstr ""
-#: c-decl.c:4500 cp/decl.c:10550
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
-#: c-decl.c:4505 cp/decl.c:10555
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "\"%s\" är deklarerad som en funktion som returnerar ett fält"
-#: c-decl.c:4540
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
msgstr ""
-#: c-decl.c:4544
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr ""
-#: c-decl.c:4573 c-decl.c:4656 c-decl.c:4778 c-decl.c:4869
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
msgstr ""
-#: c-decl.c:4613 cp/decl.c:10786
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
msgstr ""
-#: c-decl.c:4690
-msgid "ISO C forbids const or volatile function types"
-msgstr ""
-
-#: c-decl.c:4709 cp/decl.c:11264
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "variabel eller fält \"%s\" deklarerad som void"
-#: c-decl.c:4742
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr ""
-#: c-decl.c:4767
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr ""
-#: c-decl.c:4816
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "fält \"%s\" deklarerad som en funktion"
-#: c-decl.c:4822
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "fält \"%s\" har en inkomplett typ"
-#: c-decl.c:4854 c-decl.c:4856 c-decl.c:4863
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: c-decl.c:4875
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr "\"noreturn\"-funktion returnerar ett icke-void värde"
-#: c-decl.c:4887
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr "kan inte inline:a funktion \"main\""
-#: c-decl.c:4922
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr "variabel \"%s\" deklarerad \"inline\""
-#: c-decl.c:4993 c-decl.c:5987
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+#, fuzzy
+msgid "thread-local storage not supported for this target"
+msgstr "-fdata-sections stöds inte för AIX"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr "funktionsdeklaration är inte en prototyp"
-#: c-decl.c:4999
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr ""
-#: c-decl.c:5031 c-decl.c:6377 c-decl.c:6676
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "parameter \"%s\" har en inkomplett typ"
-#: c-decl.c:5034
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "parameter har en inkomplett typ"
-#: c-decl.c:5055
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr "parameter \"%s\" pekar på inkomplett typ"
-#: c-decl.c:5058
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr "parameter pekar på inkomplett typ"
-#: c-decl.c:5123
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr ""
-#: c-decl.c:5164
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "\"void\" i parameterlistan måste vara hela listan"
-#: c-decl.c:5193
-#, c-format
-msgid "`%s %s' declared inside parameter list"
+#: c-decl.c:4934
+#, fuzzy, c-format
+msgid "`struct %s' declared inside parameter list"
msgstr "\"%s %s\" deklarerad inuti parameterlista"
-#: c-decl.c:5202
+#: c-decl.c:4937
+#, c-format
+msgid "`union %s' declared inside parameter list"
+msgstr "\"union %s\" deklarerad inuti parameterlista"
+
+#: c-decl.c:4940
+#, c-format
+msgid "`enum %s' declared inside parameter list"
+msgstr "\"enum %s\" deklarerad inuti parameterlista"
+
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr "anonym struktur deklarerad i parameterlista"
-#: c-decl.c:5204
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr "anonym union deklarerad i parameterlista"
-#: c-decl.c:5206
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr "anonym uppräkningstyp deklarerad i parameterlista"
-#: c-decl.c:5210
-msgid ""
-"its scope is only this definition or declaration, which is probably not what "
-"you want."
-msgstr ""
-"dess scope-område är endast denna definition eller deklaration, vilket "
-"troligen inte är vad du vill."
+#: c-decl.c:4955
+msgid "its scope is only this definition or declaration, which is probably not what you want"
+msgstr "dess scope-område är endast denna definition eller deklaration, vilket troligen inte är vad du vill."
-#: c-decl.c:5287
+#: c-decl.c:5032
#, c-format
-msgid "redefinition of `%s %s'"
-msgstr "redefinition av \"%s %s\""
+msgid "redefinition of `union %s'"
+msgstr "omdefiniering av \"union %s\""
+
+#: c-decl.c:5034
+#, c-format
+msgid "redefinition of `struct %s'"
+msgstr "omdefiniering av \"struct %s\""
+
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr ""
-#: c-decl.c:5355 c-decl.c:5358
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr ""
-#: c-decl.c:5356 c-decl.c:5359 c-decl.c:5370
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "union"
-#: c-decl.c:5356 c-decl.c:5359
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "struktur"
-#: c-decl.c:5369
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
msgstr "%s har ingen %s"
-#: c-decl.c:5370
+#: c-decl.c:5184
msgid "struct"
msgstr "struct"
-#: c-decl.c:5371
+#: c-decl.c:5185
msgid "named members"
msgstr "namngivna medlemmar"
-#: c-decl.c:5371
+#: c-decl.c:5185
msgid "members"
msgstr "medlemmar"
-#: c-decl.c:5410
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "nästlad omdefinition av \"%s\""
-#: c-decl.c:5423
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr ""
-#: c-decl.c:5434
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: c-decl.c:5446
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr "bitfält \"%s\" har en icke godkänd typ enligt ISO C"
-#: c-decl.c:5458
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "negativ storlek i bitfält \"%s\""
-#: c-decl.c:5460
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr "storleken på \"%s\" är större än sin typ"
-#: c-decl.c:5462
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr "Storleken noll på bitfält \"%s\""
-#: c-decl.c:5476
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr ""
-#: c-decl.c:5521
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr ""
-#: c-decl.c:5523
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr ""
-#: c-decl.c:5525
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
msgstr ""
-#: c-decl.c:5550 ch/typeck.c:3063
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "upprepning av medlem \"%s\""
-#: c-decl.c:5594
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr ""
#. This enum is a named one that has been declared already.
-#: c-decl.c:5675
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
-msgstr ""
+msgstr "omdeklaration av \"enum %s\""
-#: c-decl.c:5709
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr ""
-#: c-decl.c:5742
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr ""
-#: c-decl.c:5851 ch/decl.c:4437
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
-#: c-decl.c:5864 ch/decl.c:4449
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "överspill i uppräkningsvärden"
-#: c-decl.c:5869
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
msgstr "ISO C begränsar enumreringsvärden till intervallet av en \"int\""
-#: c-decl.c:5941
+#: c-decl.c:5834
msgid "return type is an incomplete type"
msgstr "returtypen är en inkomplett typ"
-#: c-decl.c:5949
+#: c-decl.c:5842
msgid "return type defaults to `int'"
msgstr "returtyp sätts till \"int\""
-#: c-decl.c:5996
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr "ingen tidigare prototyp för `%s'"
-#: c-decl.c:6003
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "\"%s\" användes utan någon prototyp innan sin definition"
-#: c-decl.c:6009
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr "ingen tidigare deklaration av \"%s\""
-#: c-decl.c:6016
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "\"%s\" användes utan någon deklaration innan sin definition"
-#: c-decl.c:6044 c-decl.c:6763
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
msgstr "returtypen på \"%s\" är inte \"int\""
-#: c-decl.c:6060
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: c-decl.c:6069
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr "andra argumentet till \"%s\" skall vara \"char **\""
-#: c-decl.c:6078
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr "tredje argumentet till \"%s2 skall troligen vara \"char **\""
-#: c-decl.c:6087
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr "\"%s\" tar bara noll eller två argument"
-#: c-decl.c:6090
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
msgstr "\"%s\" är normalt en icke-statisk function"
-#: c-decl.c:6195
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr ""
-#: c-decl.c:6216
+#: c-decl.c:6098
msgid "parameter name omitted"
msgstr "parameternamn utlämnat"
-#: c-decl.c:6220 c-decl.c:6322 c-decl.c:6633
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
msgstr "parameter \"%s\" deklarerad som void"
-#: c-decl.c:6296
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "parameternamn saknas i parameterlista"
-#: c-decl.c:6315 c-decl.c:6626
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
msgstr "flera parametrar med namn \"%s\""
-#: c-decl.c:6346 c-decl.c:6348
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr "typen på \"%s\" sätts till \"int\""
-#: c-decl.c:6384 c-decl.c:6683
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "deklaration av parameter \"%s\" med det finns ingen sådan parameter"
-#: c-decl.c:6432
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "antalet argument matchar inte prototypen"
-#: c-decl.c:6462
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr ""
-#: c-decl.c:6476
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr "argument \"%s\" matchar inte prototypen"
-#: c-decl.c:6656
-#, c-format
-msgid "type of parameter `%s' is not declared"
-msgstr "typen på parameter \"%s\" är inte deklarerad"
+#: c-decl.c:6518 cp/decl.c:15049
+msgid "no return statement in function returning non-void"
+msgstr "ingen return i funktion som returnerar icke-void"
-#: c-decl.c:6885
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr "denna funktion kan returnera med eller utan ett värde"
-#: c-decl.c:6905
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr "storleken på returvärdet från \"%s\" är %u bytes"
-#: c-decl.c:6909
+#: c-decl.c:6733
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "storleken på returvärdet från \"%s\" är större än %d bytes"
@@ -1348,831 +1560,1010 @@ msgstr "storleken på returvärdet från \"%s\" är större än %d bytes"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:6964
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
msgstr ""
-#: c-decl.c:6984
+#: c-decl.c:6815
+#, c-format
+msgid "`struct %s' declared in `for' loop initial declaration"
+msgstr "\"struct %s\" är deklarerad i en for-loops init-deklaration"
+
+#: c-decl.c:6818
+#, c-format
+msgid "`union %s' declared in `for' loop initial declaration"
+msgstr "\"union %s\" är deklarerad i en for-loops init-deklaration"
+
+#: c-decl.c:6821
#, c-format
-msgid "`%s %s' declared in `for' loop initial declaration"
-msgstr "\"%s %s\" är deklarerad i en for-loops första del"
+msgid "`enum %s' declared in `for' loop initial declaration"
+msgstr "\"enum %s\" är deklarerad i en for-loops init-deklaration"
-#: c-decl.c:6993
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6995
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-decl.c:6997
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr ""
-#: c-dump.c:826
-#, c-format
-msgid "could not open dump file `%s'"
-msgstr "kunde inte öppna dump-fil \"%s\""
+#: c-format.c:109 c-format.c:191
+msgid "format string arg not a string type"
+msgstr "argument för formatsträng är inte av strängtyp"
-#: c-dump.c:871
-#, c-format
-msgid "ignoring `%s' at end of `-f%s'"
+#: c-format.c:124
+msgid "args to be formatted is not '...'"
+msgstr "argumenten som skall formateras är inte \"...\""
+
+#: c-format.c:133
+msgid "strftime formats cannot format arguments"
msgstr ""
-#: c-format.c:106 c-format.c:219
-#, c-format
-msgid "argument format specified for non-function `%s'"
-msgstr "argumentformat angivet för icke-funktion \"%s\""
+#: c-format.c:168 c-format.c:270
+msgid "format string has invalid operand number"
+msgstr "formatsträng har ett ogiltigt antal operander"
-#: c-format.c:112
+#: c-format.c:202
+msgid "function does not return string type"
+msgstr ""
+
+#: c-format.c:233
msgid "unrecognized format specifier"
msgstr "oigenkänd formatangivelse"
-#: c-format.c:123
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
msgstr "\"%s\" är ett ej känt funktionsformat"
-#: c-format.c:145 c-format.c:233
-msgid "format string has invalid operand number"
-msgstr "formatsträng har ett ogiltigt antal operander"
-
-#: c-format.c:153
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
msgstr "formatsträngen kommer efter argumenten som skall formateras"
-#: c-format.c:172 c-format.c:254
-msgid "format string arg not a string type"
-msgstr "argument för formatsträng är inte av strängtyp"
-
-#: c-format.c:185
-msgid "args to be formatted is not '...'"
-msgstr "argumenten som skall formateras är inte \"...\""
-
-#: c-format.c:193
-msgid "strftime formats cannot format arguments"
-msgstr ""
-
-#: c-format.c:263
-msgid "function does not return string type"
-msgstr ""
-
-#: c-format.c:757
+#: c-format.c:601
msgid "` ' flag"
msgstr ""
-#: c-format.c:757
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr ""
-#: c-format.c:758 c-format.c:829
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr ""
-#: c-format.c:758
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr ""
-#: c-format.c:759 c-format.c:805
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr ""
-#: c-format.c:759
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr ""
-#: c-format.c:760 c-format.c:803
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr ""
-#: c-format.c:760
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr ""
-#: c-format.c:761 c-format.c:802 c-format.c:832
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr ""
-#: c-format.c:761
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr ""
-#: c-format.c:762 c-format.c:786
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr ""
-#: c-format.c:762
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr ""
-#: c-format.c:763 c-format.c:787
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr ""
-#: c-format.c:763
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr ""
-#: c-format.c:764 c-format.c:784 c-format.c:806 c-format.c:833 c-format.c:1886
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr ""
-#: c-format.c:764
+#: c-format.c:608
msgid "field width in printf format"
msgstr ""
-#: c-format.c:765
+#: c-format.c:609
msgid "precision"
msgstr ""
-#: c-format.c:765
+#: c-format.c:609
msgid "precision in printf format"
msgstr ""
-#: c-format.c:766 c-format.c:785 c-format.c:836
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr ""
-#: c-format.c:766
+#: c-format.c:610
msgid "length modifier in printf format"
msgstr ""
-#: c-format.c:782
+#: c-format.c:626
msgid "assignment suppression"
msgstr ""
-#: c-format.c:783
+#: c-format.c:626
+msgid "the assignment suppression scanf feature"
+msgstr ""
+
+#: c-format.c:627
msgid "`a' flag"
msgstr ""
-#: c-format.c:783
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr ""
-#: c-format.c:784
+#: c-format.c:628
msgid "field width in scanf format"
msgstr ""
-#: c-format.c:785
+#: c-format.c:629
msgid "length modifier in scanf format"
msgstr ""
-#: c-format.c:786
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr ""
-#: c-format.c:787
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr ""
-#: c-format.c:801
+#: c-format.c:645
msgid "`_' flag"
msgstr ""
-#: c-format.c:801
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr ""
-#: c-format.c:802
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr ""
-#: c-format.c:803
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr ""
-#: c-format.c:804 c-format.c:828
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr ""
-#: c-format.c:804
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr ""
-#: c-format.c:805
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr ""
-#: c-format.c:806
+#: c-format.c:650
msgid "field width in strftime format"
msgstr ""
-#: c-format.c:807
+#: c-format.c:651
msgid "`E' modifier"
msgstr ""
-#: c-format.c:807
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr ""
-#: c-format.c:808
+#: c-format.c:652
msgid "`O' modifier"
msgstr ""
-#: c-format.c:808
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr ""
-#: c-format.c:809
+#: c-format.c:653
msgid "the `O' modifier"
msgstr ""
-#: c-format.c:827
+#: c-format.c:671
msgid "fill character"
msgstr ""
-#: c-format.c:827
+#: c-format.c:671
msgid "fill character in strfmon format"
msgstr ""
-#: c-format.c:828
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr ""
-#: c-format.c:829
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr ""
-#: c-format.c:830
+#: c-format.c:674
msgid "`(' flag"
msgstr ""
-#: c-format.c:830
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr ""
-#: c-format.c:831
+#: c-format.c:675
msgid "`!' flag"
msgstr ""
-#: c-format.c:831
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr ""
-#: c-format.c:832
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr ""
-#: c-format.c:833
+#: c-format.c:677
msgid "field width in strfmon format"
msgstr ""
-#: c-format.c:834
+#: c-format.c:678
msgid "left precision"
msgstr ""
-#: c-format.c:834
+#: c-format.c:678
msgid "left precision in strfmon format"
msgstr ""
-#: c-format.c:835
+#: c-format.c:679
msgid "right precision"
msgstr ""
-#: c-format.c:835
+#: c-format.c:679
msgid "right precision in strfmon format"
msgstr ""
-#: c-format.c:836
+#: c-format.c:680
msgid "length modifier in strfmon format"
msgstr ""
-#: c-format.c:1135
-#, fuzzy, c-format
+#: c-format.c:983
+#, c-format
msgid "function might be possible candidate for `%s' format attribute"
msgstr "funktionen är en möjlig kandidat för formatattributet \"%s\""
-#: c-format.c:1248 c-format.c:1269 c-format.c:2296
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
msgstr "saknar numerisk $-operand i formatsträng"
-#: c-format.c:1279
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
msgstr ""
-#: c-format.c:1286
+#: c-format.c:1145
msgid "operand number out of range in format"
msgstr ""
-#: c-format.c:1307
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
msgstr ""
-#: c-format.c:1349
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
msgstr ""
-#: c-format.c:1443
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
msgstr ""
-#: c-format.c:1457
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
msgstr ""
-#: c-format.c:1459
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
msgstr ""
-#: c-format.c:1472
+#: c-format.c:1351
msgid "too many arguments for format"
msgstr "för många argument för för formatsträng"
-#: c-format.c:1475
+#: c-format.c:1354
msgid "unused arguments in $-style format"
msgstr ""
-#: c-format.c:1478
-msgid "zero-length format string"
+#: c-format.c:1357
+#, fuzzy, c-format
+msgid "zero-length %s format string"
msgstr "formatsträng med längden noll"
-#: c-format.c:1481
+#: c-format.c:1361
msgid "format is a wide character string"
msgstr ""
-#: c-format.c:1484
+#: c-format.c:1364
msgid "unterminated format string"
msgstr "icke terminerad formatsträng"
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1573
-msgid "null format string"
-msgstr "formatsträngen är null"
-
-#: c-format.c:1765
+#: c-format.c:1581
msgid "embedded `\\0' in format"
msgstr ""
-#: c-format.c:1780
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
msgstr ""
-#: c-format.c:1819 c-format.c:2056
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
msgstr ""
-#: c-format.c:1832
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
msgstr ""
-#: c-format.c:1852 c-format.c:1970 c-format.c:2250 c-format.c:2303
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
msgstr "för få argument enligt formatsträngen"
-#: c-format.c:1912
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
msgstr "nollstorlek i %s formatsträng"
-#: c-format.c:1931
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
msgstr ""
-#: c-format.c:1985
+#: c-format.c:1801
msgid "field precision"
msgstr ""
-#: c-format.c:2000
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
msgstr ""
-#: c-format.c:2040
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr ""
-#: c-format.c:2090
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
msgstr ""
-#: c-format.c:2101
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
msgstr ""
-#: c-format.c:2104
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
msgstr ""
-#: c-format.c:2111
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
msgstr ""
-#: c-format.c:2127
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
msgstr ""
-#: c-format.c:2136
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr ""
-#: c-format.c:2145
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
msgstr ""
-#: c-format.c:2178
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
msgstr ""
-#: c-format.c:2182
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
msgstr ""
-#: c-format.c:2188
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
msgstr ""
-#: c-format.c:2192
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
msgstr ""
# fixme: ordet locale borde standardiseras
-#: c-format.c:2211
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
-msgstr ""
-"\"%%%c\" ger bara de sista två siffrorna i året i vissa landsinställningar"
+msgstr "\"%%%c\" ger bara de sista två siffrorna i året i vissa landsinställningar"
-#: c-format.c:2214
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr "\"%%%c\" ger bara de sista två siffrorna i året"
#. The end of the format string was reached.
-#: c-format.c:2230
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
msgstr ""
-#: c-format.c:2243
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr ""
-#: c-format.c:2264
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
msgstr ""
-#: c-format.c:2279
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr ""
-#: c-format.c:2281
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
msgstr ""
-#: c-format.c:2400
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2409
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
msgstr ""
-#: c-format.c:2429
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr ""
-#: c-format.c:2439
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
msgstr ""
-#: c-format.c:2446
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
msgstr ""
-#: c-format.c:2448
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
msgstr ""
-#: c-format.c:2542
+#: c-format.c:2330
+msgid "pointer"
+msgstr ""
+
+#: c-format.c:2332
+msgid "different type"
+msgstr ""
+
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr ""
-#: c-format.c:2545
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
msgstr ""
-#: c-lex.c:275
-msgid "badly nested C headers from preprocessor"
-msgstr ""
+#: c-lex.c:153
+#, fuzzy
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG är inte definierad."
#: c-lex.c:293
-msgid "leaving more files than we entered"
+msgid "badly nested C headers from preprocessor"
msgstr ""
-#: c-lex.c:325
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
msgstr "ignorerar #pragma %s %s"
-#: c-lex.c:327
-#, c-format
-msgid "ignoring #pragma %s"
-msgstr "ignorerar #pragma %s"
-
-#: c-lex.c:373
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr ""
-#: c-lex.c:619
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr ""
-#: c-lex.c:709
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "både suffix 'f' och 'l' på flyttalskonstant"
+#: c-lex.c:695
+#, c-format
+msgid "stray '%c' in program"
+msgstr ""
-#: c-lex.c:736
+#: c-lex.c:697
#, c-format
-msgid "floating point number exceeds range of '%s'"
+msgid "stray '\\%o' in program"
+msgstr ""
+
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr ""
+
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr ""
+
+#: c-lex.c:873
+#, fuzzy, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "heltalskonstant är större än maximala värdet för sin typ"
+
+#: c-lex.c:941
+#, fuzzy, c-format
+msgid "floating constant exceeds range of \"%s\""
msgstr "flyttal utanför intervallet för \"%s\""
-#: c-lex.c:766
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "ignorerar ogiltigt flerbytestecken"
+
+#: c-opts.c:355
+#, fuzzy, c-format
+msgid "missing argument to \"-%s\""
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: c-opts.c:359
+#, fuzzy, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "Utdatafilnamn angivet två gånger"
+
+#: c-opts.c:366
+#, fuzzy, c-format
+msgid "missing filename after \"-%s\""
+msgstr "Filnamn saknas efter %s"
+
+#: c-opts.c:371
+#, fuzzy, c-format
+msgid "missing target after \"-%s\""
+msgstr "Argument saknas efter %s"
+
+#: c-opts.c:505
#, c-format
-msgid "stray '%c' in program"
+msgid "options array incorrectly sorted: %s is before %s"
msgstr ""
-#: c-lex.c:768
+#: c-opts.c:550
+#, fuzzy, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "För många filnamn. Skriv %s --help för användningsinformation"
+
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "-Wno-strict-prototypes stödjs inte för C++"
+
+#: c-opts.c:1017
+#, fuzzy, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "-f%s stödjs inte längre"
+
+#: c-opts.c:1033
#, c-format
-msgid "stray '\\%o' in program"
+msgid "switch \"%s\" is deprecated, please see documentation for details"
msgstr ""
-#: c-lex.c:964
-msgid "floating constant may not be in radix 16"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
msgstr ""
-#: c-lex.c:1002
-msgid "traditional C rejects the 'f' suffix"
-msgstr "traditionell C stödjer inte suffixet 'f'"
+#: c-opts.c:1273
+#, fuzzy
+msgid "output filename specified twice"
+msgstr "Utdatafilnamn angivet två gånger"
+
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k ignorerad utan -Wformat"
-#: c-lex.c:1012
-msgid "traditional C rejects the 'l' suffix"
-msgstr "traditionell C stödjer inte suffixet 'l'"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args ignorerad utan -Wformat"
-#: c-lex.c:1022 c-lex.c:1116
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ISO C förbjuder imaginära numeriska konstanter"
+#: c-opts.c:1391
+#, fuzzy
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-extra-args ignorerad utan -Wformat"
-#: c-lex.c:1056
-msgid "floating point number exceeds range of 'double'"
-msgstr "flyttalsnummer överskrider intervallet för en \"double\""
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral ignorerad utan -Wformat"
-#: c-lex.c:1085
-msgid "two 'u' suffixes on integer constant"
-msgstr "två \"u\"-suffix på heltalskonstant"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security ignorerad utan -Wformat"
-#: c-lex.c:1088
-msgid "traditional C rejects the 'u' suffix"
-msgstr "traditionell C stödjer inte suffixet 'u'"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute ignorerad utan -Wformat"
-#: c-lex.c:1099
-msgid "three 'l' suffixes on integer constant"
-msgstr "tre \"l\"-suffix på heltalskonstant"
+#: c-opts.c:1419
+#, fuzzy, c-format
+msgid "opening output file %s"
+msgstr "Kan inte öppna utdatafil \"%s\""
-#: c-lex.c:1101
-msgid "'lul' is not a valid integer suffix"
-msgstr "\"lul\" är inte ett giltigt heltalssuffix"
+#: c-opts.c:1474
+#, fuzzy, c-format
+msgid "opening dependency file %s"
+msgstr "dynamiskt beroende.\n"
-#: c-lex.c:1103
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr "\"Ll\" och \"lL\" är inte giltiga heltalssuffix"
+#: c-opts.c:1484
+#, fuzzy, c-format
+msgid "closing dependency file %s"
+msgstr "Kunde inte öppna källkodsfil %s.\n"
-#: c-lex.c:1106
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ISO C89 förbjuder long long integer konstanter"
+#: c-opts.c:1487
+#, fuzzy, c-format
+msgid "when writing output to %s"
+msgstr "fel vid skrivning till %s"
-#: c-lex.c:1114
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "mer än ett \"i\"- eller \"j\"-suffix på heltalskonstant"
+#: c-opts.c:1567
+#, fuzzy
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "du måste dessutom ange antingen -M eller -MM"
-#: c-lex.c:1129
+#: c-opts.c:1715
#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr ""
+
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
msgid ""
-"integer constant is too large for this configuration of the compiler - "
-"truncated to %d bits"
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
msgstr ""
-"heltalskonstant för stor för denna konfigurering av kompilatorn - kortar ner "
-"till %d bitar"
+"Flaggor:\n"
+" -include <fil> Inkludera innehållet i <fil> före andra filer\n"
+" -imacros <fil> Använd makrodefinitioner i <fil>\n"
+" -iprefix <sökväg> Sätt <sökväg> som prefix för följande två flaggor\n"
+" -iwithprefix <katalog> Sätt <katalog> i slutet på systemets include-sökväg\n"
+" -iwithprefixbefore <kat> Sätt <kat> i slutet på huvud-include-sökvägen\n"
+" -isystem <katalog> Sätt <katalog> först på systemets include-sökväg\n"
-#: c-lex.c:1219
-msgid "width of integer constant changes with -traditional"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
msgstr ""
+" -idirafter <katalog> Sätt <katalog> i slutet på systemets include-sökväg\n"
+" -I <katalog> Sätt <katalog> i slutet på huvud-include-sökvägen\n"
+" -I- Detaljerad include-sökväg kontroll; se info-hjälp\n"
+" -nostdinc Använd inte systemets include-sökväg (kataloger\n"
+" satta med -isystem kommer fortfarande användas)\n"
+" -nostdinc++ Använd inte systemets include-sökväg för C++\n"
+" -o <fil> Skriv utdata till <fil>\n"
-#: c-lex.c:1221
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "heltalskonstanter är utan tecken i ISO C, med tecken med -traditional"
+#: c-opts.c:1744
+#, fuzzy
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -std=<std namn> Ange standard att följa; en av:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999\n"
+" -+ Tillåt användning av C++ finesser\n"
+" -w Stoppa varningsmeddelande\n"
+" -Wtrigraphs Varna om trigrapher påträffas\n"
+" -Wno-trigraphs Varna inte om trigrapher\n"
+" -Wcomment{s} Varna om en kommentar börjar i en annan kommentar\n"
-#: c-lex.c:1223
-msgid "width of integer constant may change on other systems with -traditional"
+#: c-opts.c:1753
+#, fuzzy
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
msgstr ""
+" -Wno-comment{s} Varna inte om kommentarer\n"
+" -Wtraditional Varna om finesser som inte finns i traditionell C\n"
+" -Wno-traditional Varna inte om traditionell C\n"
+" -Wundef Varna om ett odefinierat makro används av #if\n"
+" -Wno-undef Varna inte om att testa odefinierade makron\n"
+" -Wimport Varna om användande av direktivet #import\n"
-#: c-lex.c:1233
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "heltalskonstant är större än maximala värdet på %s"
+#: c-opts.c:1758
+#, fuzzy
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -Wno-import Varna inte om användande av #import\n"
+" -Werror Behandla alla varningar som fel\n"
+" -Wno-error Behandla inte varningar som fel\n"
+" -Wsystem-headers Dölj inte varningar från system-include-filer\n"
+" -Wno-system-headers Dölj varningar från system-include-filer\n"
+" -Wall Aktivera alla preprocessor-varningar\n"
-#: c-lex.c:1242
-msgid "decimal constant is so large that it is unsigned"
-msgstr "decimal konstant så stor att den är unsigned"
+#: c-opts.c:1763
+#, fuzzy
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M Generera make beroenden\n"
+" -MM Som -M, men ignorera system-include-filer\n"
+" -MF <fil> Skriv beroenden till den givna filen\n"
+" -MG Behandla saknade filer som genererade filer\n"
-#: c-lex.c:1271
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "heltalskonstant är större än maximala värdet för sin typ"
+# fixme: vad menas med unquoted
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP\t\t\t Generera phony-mål för alla include-filer\n"
+" -MQ <mål> Lägg till MAKE-citerat mål\n"
+" -MT <mål> Lägg till ociterat mål\n"
-#: c-lex.c:1275
-#, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "saknar mellanrum efter nummer \"%.*s\""
+#: c-opts.c:1776
+#, fuzzy
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<makro> Definiera <makro> med strängen \"1\" som sitt värde\n"
+" -D<makro>=<värde> Definiera <makro> with <värde> som sitt värde\n"
+" -A<fråga> (<svar>) Ange svaret <svar> på frågan <fråga>\n"
+" -A-<fråga> (<svar>) Slå av svaret <svar> på frågan <fråga>\n"
+" -U<makro> Gör <makro> till icke definierat\n"
+" -v Visa versionsnummer\n"
+
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Skriv namnet på include-filer när de används\n"
+" -C Släng inte bort kommentarer\n"
+" -dM Visa en lista med aktiva makron i slutet\n"
+" -dD Bevara mokrodefinitioner i utdata\n"
+" -dN Som -dD men bara namnet bevaras\n"
+" -dI Ta med #include-direktives i utdata\n"
-#: c-lex.c:1311
-msgid "Ignoring invalid multibyte character"
-msgstr "Ignorerar ogiltigt flerbytestecken"
+#: c-opts.c:1792
+#, fuzzy
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -fpreprocessed Tolka infiler som redan preprocessade\n"
+" -ftabstop=<nummer> Avstånd mellan tabbar för kolumutskrifter\n"
+" -P Genererar inte #line-direktiv\n"
+" -$ Tillåt inte '$' i identifierare\n"
+" -remap Mappa om filnamn vid inkludering av filer\n"
+" --version Visa versionsinformation\n"
+" -h or --help Visa denna information\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:62 cp/parse.y:55 objc/objc-parse.y:63
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "syntaxfel"
-#: c-parse.y:267 objc/objc-parse.y:296
+#: /usr/share/bison/bison.simple:179
+msgid "syntax error: cannot back up"
+msgstr "syntaxfel: kan inte backa tillbaka"
+
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
msgstr "ISO C förbjuder tomma källkodsfiler"
-#: c-parse.y:300 c-typeck.c:6813 ch/parse.c:2113 objc/objc-parse.y:329
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "argumentet till \"asm\" är inte en konstant sträng"
-#: c-parse.y:308 objc/objc-parse.y:337
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr "ISO C förbjuder datadefinition utan typ eller lagringsklass"
-#: c-parse.y:310 objc/objc-parse.y:339
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr "datadefinition har ingen typ eller lagringsklass"
-#: c-parse.y:329 objc/objc-parse.y:358
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr "ISO C tillåter inte extra \";\" utanför funktioner"
-#: c-parse.y:401 cppexp.c:709
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
msgstr "traditionell C hanterar inte operatorn unärt plus"
-#: c-parse.y:463 objc/objc-parse.y:492
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "\"sizeof\" applicerat på ett bitfält"
-#: c-parse.y:543 objc/objc-parse.y:572
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr "ISO C förbjuder uteslutande av den mittersta termen i ett ?: uttryck"
-#: c-parse.y:593 objc/objc-parse.y:622
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
msgstr ""
-#: c-parse.y:623 objc/objc-parse.y:652
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
msgstr ""
-#: c-parse.y:676
-msgid "traditional C rejects string concatenation"
+#: c-parse.y:677 objc-parse.y:699
+msgid "first argument to __builtin_choose_expr not a constant"
+msgstr "första argumentet till \"__builtin_choose_expr\" är inte en konstant"
+
+#: c-parse.y:721 objc-parse.y:767
+#, fuzzy
+msgid "traditional C rejects ISO C style function definitions"
msgstr "traditionell C stödjer inte sträng-sammanslagning"
-#: c-parse.y:691 objc/objc-parse.y:733
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C stödjer inte användning av \"varargs.h\""
-
-#: c-parse.y:976 c-parse.y:982 c-parse.y:988 c-parse.y:994 c-parse.y:1015
-#: c-parse.y:1021 c-parse.y:1027 c-parse.y:1033 c-parse.y:1066 c-parse.y:1072
-#: c-parse.y:1078 c-parse.y:1084 c-parse.y:1129 c-parse.y:1135 c-parse.y:1141
-#: c-parse.y:1147 cp/parse.y:1877 cp/parse.y:1884 cp/parse.y:1923
-#: objc/objc-parse.y:1018 objc/objc-parse.y:1024 objc/objc-parse.y:1030
-#: objc/objc-parse.y:1036 objc/objc-parse.y:1057 objc/objc-parse.y:1063
-#: objc/objc-parse.y:1069 objc/objc-parse.y:1075 objc/objc-parse.y:1108
-#: objc/objc-parse.y:1114 objc/objc-parse.y:1120 objc/objc-parse.y:1126
-#: objc/objc-parse.y:1171 objc/objc-parse.y:1177 objc/objc-parse.y:1183
-#: objc/objc-parse.y:1189
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "\"%s\" är inte i början av deklarationen"
-#: c-parse.y:1434 objc/objc-parse.y:1485
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
msgstr ""
-#: c-parse.y:1448 objc/objc-parse.y:1499
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr "ISO C89 förbjuder specifiering av subobjekt som skall initieras"
-#: c-parse.y:1451 objc/objc-parse.y:1502
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr "obsolet angivelse av initierare utan \"=\""
-#: c-parse.y:1455 objc/objc-parse.y:1506
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr "obsolet användning av initierare med \":\""
-#: c-parse.y:1484
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
msgstr ""
-#: c-parse.y:1492 c-parse.y:1522 objc/objc-parse.y:1537 objc/objc-parse.y:1567
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
msgstr "ISO C förbjuder nästlade funktioner"
-#: c-parse.y:1696 objc/objc-parse.y:1742
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
msgstr ""
-#: c-parse.y:1708 cp/parse.y:2342 objc/objc-parse.y:1754
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "komma i slutet av uppräkningslista"
-#: c-parse.y:1716 objc/objc-parse.y:1762
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr "inget semikolon vid slutet av struktur eller union"
-#: c-parse.y:1725 objc/objc-parse.y:1771 objc/objc-parse.y:2848
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr "extra semikolon i struktur eller union angivet"
-#: c-parse.y:1740 objc/objc-parse.y:1800
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr "ISO C stödjer inte ej namnsatta strukturer/unioner"
-#: c-parse.y:1754 objc/objc-parse.y:1814
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar"
-#: c-parse.y:1833 objc/objc-parse.y:1893
-msgid "attributes on type name ignored"
-msgstr ""
-
-#: c-parse.y:1911 c-parse.y:1915 c-parse.y:1919 objc/objc-parse.y:1971
-#: objc/objc-parse.y:1975 objc/objc-parse.y:1979
-msgid "storage class specifier in array declarator"
-msgstr ""
-
-#: c-parse.y:1934 objc/objc-parse.y:1994
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
msgstr ""
-#: c-parse.y:1951 objc/objc-parse.y:2011
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
msgstr "ISO C89 förbjuder blandade deklarationer och kod"
-#: c-parse.y:2025 objc/objc-parse.y:2089
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
msgstr ""
-#: c-parse.y:2074 cp/parse.y:1578 objc/objc-parse.y:2138
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr ""
-#: c-parse.y:2189 objc/objc-parse.y:2253
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr "tom kropp i else-sats"
-#: c-parse.y:2299 objc/objc-parse.y:2363
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
msgstr "ISO C förbjuder \"goto *expr;\""
-#: c-parse.y:2395 objc/objc-parse.y:2459
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
msgstr ""
@@ -2182,4466 +2573,6733 @@ msgstr ""
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2421 objc/objc-parse.y:2485
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr "ISO C kräver ett namnsatt argument före \"...\""
-#: c-parse.y:2540 objc/objc-parse.y:2604
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "\"...\" i en gammaldags identifierarlista"
-#: c-parse.y:2875 cp/spew.c:1480 objc/objc-parse.y:3574
+#: /usr/share/bison/bison.simple:795
+#, fuzzy
+msgid "parse error; also virtual memory exhausted"
+msgstr "parsningsfel; och det virtuella minnet tog slut"
+
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
+msgid "parse error"
+msgstr "parsningsfel"
+
+#: /usr/share/bison/bison.simple:924
+msgid "parser stack overflow"
+msgstr "parsestack överfull"
+
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s vid slutet av indatan"
-#: c-parse.y:2881 cp/spew.c:1486 objc/objc-parse.y:3580
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%s före %s'%c'"
-#: c-parse.y:2883 cp/spew.c:1488 objc/objc-parse.y:3582
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
msgstr "%s före %s'\\x%x'"
-#: c-parse.y:2887 cp/spew.c:1492 objc/objc-parse.y:3586
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "%s före strängkonstant"
-#: c-parse.y:2891 cp/spew.c:1496 objc/objc-parse.y:3590
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
msgstr "%s före numerisk konstant"
-#: c-parse.y:2893 objc/objc-parse.y:3592
+#: c-parse.y:2854 objc-parse.y:3553
#, c-format
msgid "%s before \"%s\""
msgstr "%s före \"%s\""
-#: c-parse.y:2895 objc/objc-parse.y:3594
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
msgstr "%s före symbolen '%s'"
-#: c-parse.y:3029 objc/objc-parse.y:3757
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "traditionell C stödjer inte sträng-sammanslagning"
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
msgstr "syntaxfel vid token \"%s\""
-#: c-parse.y:3059 ch/parse.c:4329 cp/lex.c:936 objc/objc-parse.y:3787
-msgid "YYDEBUG not defined."
-msgstr "YYDEBUG är inte definierad."
-
-#: c-pragma.c:108
-msgid ""
-"#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+#: c-pragma.c:107
+msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr "#pragma pack (pop) påträffat utan matchande #pragma pack (push, <n>)"
-#: c-pragma.c:126
+#: c-pragma.c:125
#, c-format
-msgid ""
-"#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, "
-"<n>)"
+msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+msgstr "#pragma pack(pop, %s) påträffat utan matchande #pragma pack(push, %s, <n>)"
+
+#: c-pragma.c:145
+#, fuzzy
+msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: c-pragma.c:147
+#, fuzzy
+msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: c-pragma.c:167
+#, fuzzy
+msgid "missing '(' after '#pragma pack' - ignored"
+msgstr "saknas '(' efter predikat"
+
+#: c-pragma.c:180 c-pragma.c:230
+msgid "malformed '#pragma pack' - ignored"
msgstr ""
-"#pragma pack(pop, %s) påträffat utan matchande #pragma pack(push, %s, <n>)"
-#: c-pragma.c:249
+#: c-pragma.c:185
+msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+msgstr ""
+
+#: c-pragma.c:187
+msgid "malformed '#pragma pack(pop[, id])' - ignored"
+msgstr ""
+
+#: c-pragma.c:196
+#, fuzzy, c-format
+msgid "unknown action '%s' for '#pragma pack' - ignored"
+msgstr "skräp vid slutet av \"#pragma pack\""
+
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr "skräp vid slutet av \"#pragma pack\""
-#: c-pragma.c:298
+#: c-pragma.c:247
+#, c-format
+msgid "alignment must be a small power of two, not %d"
+msgstr ""
+
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr ""
+
+#: c-pragma.c:328 c-pragma.c:333
+msgid "malformed #pragma weak, ignored"
+msgstr ""
+
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr "skräp vid slutet av #pragma weak"
-#: c-semantics.c:537
+#: c-pragma.c:372 c-pragma.c:377
+msgid "malformed #pragma redefine_extname, ignored"
+msgstr ""
+
+#: c-pragma.c:382
+#, fuzzy
+msgid "junk at end of #pragma redefine_extname"
+msgstr "skräp vid slutet av #pragma weak"
+
+#: c-pragma.c:389 c-pragma.c:470
+msgid "#pragma redefine_extname conflicts with declaration"
+msgstr ""
+
+#: c-pragma.c:420
+msgid "malformed #pragma extern_prefix, ignored"
+msgstr ""
+
+#: c-pragma.c:425
+#, fuzzy
+msgid "junk at end of #pragma extern_prefix"
+msgstr "skräp vid slutet av #pragma weak"
+
+#: c-pragma.c:457
+#, fuzzy
+msgid "asm declaration conflicts with previous rename"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
+
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "break-sats som inte är i en loop eller switch"
-#: c-semantics.c:555
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "continue-sats som inte är i en loop"
-#: c-semantics.c:650
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr "destruerare behövs för \"%#D\""
-#: c-semantics.c:651
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr ""
-#: c-semantics.c:654
-msgid ""
-"(enclose actions of previous case statements requiring destructors in their "
-"own scope.)"
+#: c-semantics.c:682
+msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr ""
-#: c-semantics.c:697 c-typeck.c:6841
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr ""
-#: c-typeck.c:122
+#: c-typeck.c:123
#, c-format
msgid "`%s' has an incomplete type"
msgstr "\"%s\" har en inkomplett typ"
-#: c-typeck.c:144 cp/call.c:2563
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "ogiltig användning av void-uttryck"
#: c-typeck.c:153
+#, fuzzy
+msgid "invalid use of flexible array member"
+msgstr "ISO C89 stöder inte flexibla fältmedlemmar"
+
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr ""
-#: c-typeck.c:161
+#: c-typeck.c:167
#, c-format
msgid "invalid use of undefined type `%s %s'"
msgstr ""
#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
-#: c-typeck.c:165
+#: c-typeck.c:171
#, c-format
msgid "invalid use of incomplete typedef `%s'"
msgstr ""
-#: c-typeck.c:396 c-typeck.c:410
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
msgstr "funktionstyper inte riktigt kompatibla i ISO C"
-#: c-typeck.c:561
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr "typerna är inte riktigt kompatibla"
-#: c-typeck.c:714
-msgid "sizeof applied to a function type"
-msgstr "sizeof applicerad på en funktionstyp"
-
-#: c-typeck.c:720
-msgid "sizeof applied to a void type"
-msgstr "sizeof applicerat på typen void"
-
-#: c-typeck.c:727
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof applicerat på en inkomplett typ"
-
-#: c-typeck.c:780 c-typeck.c:2793
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
msgstr "aritmetik på pekare till inkomplett typ"
-#: c-typeck.c:808
-msgid "__alignof__ applied to an incomplete type"
-msgstr ""
-
-#: c-typeck.c:834
-msgid "`__alignof' applied to a bit-field"
-msgstr ""
-
-#: c-typeck.c:1025 cp/typeck.c:1793
-msgid "invalid use of non-lvalue array"
-msgstr ""
-
-#: c-typeck.c:1200
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s har ingen medlem med namn \"%s\""
-#: c-typeck.c:1231
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "begäran av medlem \"%s\" i något som inte är en struktur eller union"
-#: c-typeck.c:1264 ch/expr.c:810
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
msgstr "derefererar pekare till inkomplett typ"
-#: c-typeck.c:1268 ch/expr.c:814
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
msgstr "derefererar \"void *\"-pekare"
-#: c-typeck.c:1285 cp/typeck.c:2403
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "ogiltigt typargument till \"%s\""
-#: c-typeck.c:1304 cp/typeck.c:2429
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr ""
-#: c-typeck.c:1325 cp/typeck.c:2471
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr "fältindex har typen \"char\""
-#: c-typeck.c:1333 c-typeck.c:1422 cp/typeck.c:2478 cp/typeck.c:2557
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "fältindex är inte ett heltal"
-#: c-typeck.c:1366
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
msgstr ""
-#: c-typeck.c:1368
-msgid "ISO C89 forbids subscripting non-lvalue array"
-msgstr ""
+#: c-typeck.c:1308
+#, fuzzy
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C++ förbjuder tilldelning av fält"
-#: c-typeck.c:1401
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr "index har typen \"char\""
-#: c-typeck.c:1417 cp/typeck.c:2552
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
msgstr ""
-#: c-typeck.c:1468
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr "\"%s\" odeklarerad här (inte i en funktion)"
-#: c-typeck.c:1475
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
-#: c-typeck.c:1480
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(Varje odeklarerad identifierare rapporteras bara"
-#: c-typeck.c:1481
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "en gång för varje funktion den finns i.)"
-#: c-typeck.c:1498
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr ""
-#: c-typeck.c:1563
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "anropat objekt är inte en funktion"
-#: c-typeck.c:1647 cp/typeck.c:3190
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "för många argument till funktion"
-#: c-typeck.c:1670
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr ""
-#: c-typeck.c:1683
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1686
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1689
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
msgstr ""
-#: c-typeck.c:1692
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
msgstr ""
-#: c-typeck.c:1695
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
msgstr "%s som complex istället för heltal grund av prototyp"
-#: c-typeck.c:1698
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
msgstr ""
-#: c-typeck.c:1708
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
msgstr ""
-#: c-typeck.c:1725
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
msgstr ""
-#: c-typeck.c:1759
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
msgstr "%s som unsigned på grund av prototyp"
-#: c-typeck.c:1761
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
msgstr "%s som signed på grund av prototyp"
-#: c-typeck.c:1795 cp/typeck.c:3298
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "för få argument till funktion"
-#: c-typeck.c:1836
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "föreslår parenteser runt + eller - inuti skift"
-#: c-typeck.c:1843
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "föreslår parenteser runt && inuti ||"
-#: c-typeck.c:1852
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "föreslår parenteser runt aritmetik inuti operanden till |"
-#: c-typeck.c:1855
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr "föreslår parenteser runt jämförelse inuti operanden till |"
-#: c-typeck.c:1864
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "föreslår parenteser runt aritmetik inuti operanden till ^"
-#: c-typeck.c:1867
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr "föreslår parenteser runt jämförelse inuti operanden till ^"
-#: c-typeck.c:1874
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr "föreslår parenteser runt + eller - inuti operanden till &"
-#: c-typeck.c:1877
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr "föreslår parenteser runt jämförelser inuti operanden till &"
-#: c-typeck.c:1884
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "jämförelser som X<=Y<=Z har inte sin matematiska mening"
-#: c-typeck.c:2138 cp/typeck.c:3577
+#: c-typeck.c:2001 c-typeck.c:2036
+msgid "division by zero"
+msgstr ""
+
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr "högershiftoperanden är negativ"
-#: c-typeck.c:2145 cp/typeck.c:3583
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr "högershiftoperanden >= storleken på typen"
-#: c-typeck.c:2170 cp/typeck.c:3602
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr "vänstershiftoperanden är negativ"
-#: c-typeck.c:2173 cp/typeck.c:3604
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr "vänstershiftoperanden >= storleken på typen"
-#: c-typeck.c:2198
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr "shiftoperanden är negativ"
-#: c-typeck.c:2200
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "shiftoperanden >= storleken på typen"
-#: c-typeck.c:2221 cp/typeck.c:3639
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr "jämföra flyttal med == eller != är osäkert"
-#: c-typeck.c:2245 c-typeck.c:2251
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
msgstr "ISO C förbjuder jämförelse mellan \"void *\" och funktionspekare"
-#: c-typeck.c:2254 c-typeck.c:2296 c-typeck.c:2324
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
msgstr ""
-#: c-typeck.c:2269 c-typeck.c:2275 c-typeck.c:2345 c-typeck.c:2351
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
msgstr "jämförelse mellan pekare och heltal"
-#: c-typeck.c:2291 c-typeck.c:2319
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
msgstr "ISO C förbjuder ordningsjämförelse på pekare till funktioner"
-#: c-typeck.c:2316
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
msgstr "jämförelse av kompletta och inkompletta pekare"
-#: c-typeck.c:2332 c-typeck.c:2339
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
msgstr ""
-#: c-typeck.c:2365 cp/typeck.c:3772
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
msgstr ""
-#: c-typeck.c:2579
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr "jämföreslse mellan signed och unsigned"
-#: c-typeck.c:2625 cp/typeck.c:4018
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr ""
-#: c-typeck.c:2633 cp/typeck.c:4026
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr ""
-#: c-typeck.c:2695
-msgid "pointer of type `void *' used in arithmetic"
-msgstr "pekare av typen \"void *\" använd med aritmetik"
-
-#: c-typeck.c:2701
-msgid "pointer to a function used in arithmetic"
-msgstr "pekare till funktion använd med aritmetik"
-
-#: c-typeck.c:2779
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
msgstr "pekare av typ \"void *\" använd i subtraktion"
-#: c-typeck.c:2781
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
msgstr "pekare till funktion använd i subtraktion"
-#: c-typeck.c:2839
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr ""
-#: c-typeck.c:2850
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr ""
-#: c-typeck.c:2862
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
msgstr "ISO C stödjer inte ~ för komplex konjugering"
-#: c-typeck.c:2868
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr ""
-#: c-typeck.c:2879
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "fel typ på argument till abs"
-#: c-typeck.c:2891
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr ""
-#: c-typeck.c:2905
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr ""
-#: c-typeck.c:2948
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
msgstr "ISO C stöder inte \"++\" och \"--\" på komplexa typer"
-#: c-typeck.c:2962 c-typeck.c:2988
-#, c-format
-msgid "wrong type argument to %s"
+#: c-typeck.c:2867 c-typeck.c:2899
+#, fuzzy
+msgid "wrong type argument to increment"
msgstr "fel typ på argument till %s"
-#: c-typeck.c:2982
-#, c-format
-msgid "%s of pointer to unknown structure"
-msgstr ""
-
-#: c-typeck.c:3052
-msgid "invalid lvalue in increment"
-msgstr ""
-
-#: c-typeck.c:3053
-msgid "invalid lvalue in decrement"
-msgstr ""
+#: c-typeck.c:2869 c-typeck.c:2901
+#, fuzzy
+msgid "wrong type argument to decrement"
+msgstr "fel typ på argument till %s"
-#: c-typeck.c:3061 cp/typeck.c:4595
-msgid "increment"
+#: c-typeck.c:2890
+msgid "increment of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:3061 cp/typeck.c:4595
-msgid "decrement"
+#: c-typeck.c:2892
+msgid "decrement of pointer to unknown structure"
msgstr ""
-#: c-typeck.c:3117
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
msgstr ""
-#: c-typeck.c:3131
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
msgstr ""
-#: c-typeck.c:3163
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr ""
-#. condition met at compile time
-#: c-typeck.c:3271 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664
-#: ch/parse.c:361 ch/typeck.c:160 cp/typeck.c:4788 diagnostic.c:1471
-#: gcc.c:4214 java/expr.c:383 java/verify.c:1448 java/verify.c:1449
-#: java/verify.c:1464 tradcif.y:540 tradcpp.c:4113
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3328
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
msgstr ""
-#: c-typeck.c:3331
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
msgstr ""
-#: c-typeck.c:3334
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
msgstr ""
-#: c-typeck.c:3351
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr ""
-#: c-typeck.c:3355
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
msgstr ""
-#: c-typeck.c:3358
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr ""
-#: c-typeck.c:3376
-#, c-format
-msgid "cannot take address of bitfield `%s'"
+#: c-typeck.c:3290
+#, fuzzy, c-format
+msgid "cannot take address of bit-field `%s'"
msgstr "kan inte ta adressen till bitfält \"%s\""
-#: c-typeck.c:3403 ch/typeck.c:3679 ch/xtypeck.c:62
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "global registervariabel \"%s\" använd i nästlad funktion"
-#: c-typeck.c:3407 ch/typeck.c:3683 ch/xtypeck.c:66
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr "registervariabel \\\"%s\\\" använd i nästlad funktion"
-#: c-typeck.c:3414 ch/typeck.c:3690 ch/xtypeck.c:73
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "adress på global registervariabel \"%s\" efterfrågad"
-#: c-typeck.c:3426 ch/typeck.c:3702 ch/xtypeck.c:85
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr ""
-#: c-typeck.c:3430 ch/typeck.c:3706 ch/xtypeck.c:89
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "adress på register variabel \"%s\" efterfrågad"
-#: c-typeck.c:3538
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr "typ signed och unsigned i villkorsuttryck"
-#: c-typeck.c:3545
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
msgstr ""
-#: c-typeck.c:3561 c-typeck.c:3568
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
msgstr ""
-#: c-typeck.c:3574
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3581 c-typeck.c:3591
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
msgstr ""
-#: c-typeck.c:3605
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "typfel i villkorsuttryck"
-#: c-typeck.c:3674 cp/typeck.c:5020
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr ""
-#: c-typeck.c:3713
+#: c-typeck.c:3635
msgid "cast specifies array type"
msgstr ""
-#: c-typeck.c:3719
+#: c-typeck.c:3641
msgid "cast specifies function type"
msgstr ""
-#: c-typeck.c:3729
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
msgstr ""
-#: c-typeck.c:3750
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: c-typeck.c:3766
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
msgstr "typkonvertering till unionstyp från typ som ej finns i unionen"
+#: c-typeck.c:3736
+#, fuzzy
+msgid "cast adds new qualifiers to function type"
+msgstr "typkonvertering matchar inte en funktionstyp"
+
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3811
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:3826
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
msgstr ""
-#: c-typeck.c:3832 cp/typeck.c:5435
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
msgstr "typkonvertering från pekare till heltal av annan storlek"
-#: c-typeck.c:3837
+#: c-typeck.c:3767
msgid "cast does not match function type"
msgstr "typkonvertering matchar inte en funktionstyp"
-#: c-typeck.c:3844 cp/typeck.c:5442
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
msgstr "typkonvertering till pekare från heltal med annan storlek"
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:4004
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "ogiltigt lvalue i tilldelning"
#. Convert new value to destination type.
-#: c-typeck.c:4013 c-typeck.c:4038 c-typeck.c:4055 ch/typeck.c:2337
-#: cp/typeck.c:5557 cp/typeck.c:5714
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "tilldelning"
-#: c-typeck.c:4222 c-typeck.c:4289
+#: c-typeck.c:4070
+#, fuzzy
+msgid "cannot pass rvalue to reference parameter"
+msgstr "kan inte deklarera pekare till referenser"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
msgstr ""
-#: c-typeck.c:4226 c-typeck.c:4269
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
msgstr ""
-#: c-typeck.c:4232
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
msgstr ""
-#: c-typeck.c:4261
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
msgstr "ISO C förbjuder %s mellan funktionspekare och \"void *\""
-#: c-typeck.c:4278
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
msgstr ""
-#: c-typeck.c:4294
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
msgstr ""
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr ""
+
# fixme: vad är %s
-#: c-typeck.c:4310
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
msgstr "%s skapar pekare från heltal utan typkonvertering"
-#: c-typeck.c:4318
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
msgstr ""
-#: c-typeck.c:4332 c-typeck.c:4335
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr ""
-#: c-typeck.c:4339
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr ""
-#: c-typeck.c:4343
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "inkompatibla typer i %s"
#. Function name is known; supply it.
-#: c-typeck.c:4374
+#: c-typeck.c:4358
+#, fuzzy, c-format
+msgid "passing arg of `%s'"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+#, fuzzy
+msgid "passing arg of pointer to function"
+msgstr "för många argument till funktion"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
msgstr ""
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4384
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
msgstr ""
-#: c-typeck.c:4451
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
-msgstr ""
+msgstr "initierare för statisk variabel är inte konstant"
-#: c-typeck.c:4457
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4465
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
msgstr ""
-#: c-typeck.c:4467
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
msgstr ""
-#: c-typeck.c:4474
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
msgstr ""
-#: c-typeck.c:4635 c-typeck.c:4651 c-typeck.c:4667
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
msgstr ""
-#: c-typeck.c:4719 cp/typeck2.c:524
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr ""
-#: c-typeck.c:4726 cp/typeck2.c:531
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr ""
-#: c-typeck.c:4743 cp/typeck2.c:547
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr ""
-#: c-typeck.c:4770
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr ""
-#: c-typeck.c:4787 c-typeck.c:4789 c-typeck.c:4805 c-typeck.c:4826
-#: c-typeck.c:6221
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr ""
-#: c-typeck.c:4821
+#: c-typeck.c:4873
msgid "initialization"
msgstr "initiering"
-#: c-typeck.c:4832 c-typeck.c:6226
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr ""
-#: c-typeck.c:4869 c-typeck.c:4885 cp/typeck2.c:624
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
msgstr ""
-#: c-typeck.c:5353
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
msgstr ""
-#: c-typeck.c:5373
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr ""
-#: c-typeck.c:5417
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr ""
-#: c-typeck.c:5469
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr ""
-#: c-typeck.c:5471
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr ""
-#: c-typeck.c:5481
-msgid "deprecated initialization of zero-length array"
-msgstr ""
-
-#: c-typeck.c:5486
-msgid "initialization of zero-length array before end of structure"
-msgstr ""
-
-#: c-typeck.c:5491
-msgid "initialization of zero-length array inside a nested context"
-msgstr ""
-
-#: c-typeck.c:5510
+#: c-typeck.c:5554
msgid "missing initializer"
msgstr ""
-#: c-typeck.c:5535
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr ""
-#: c-typeck.c:5540
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr ""
-#: c-typeck.c:5624
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
msgstr ""
-#: c-typeck.c:5645 c-typeck.c:5715
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr ""
-#: c-typeck.c:5650 c-typeck.c:5767
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
msgstr ""
-#: c-typeck.c:5711 c-typeck.c:5713
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr ""
-#: c-typeck.c:5718
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5729
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr ""
-#: c-typeck.c:5738
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
msgstr ""
-#: c-typeck.c:5779
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr ""
-#: c-typeck.c:5816 c-typeck.c:5837 c-typeck.c:6291
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr ""
-#: c-typeck.c:6504
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr ""
-#: c-typeck.c:6511 c-typeck.c:6550
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr ""
-#: c-typeck.c:6617
+#: c-typeck.c:6626
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr ""
-#: c-typeck.c:6634
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr ""
-#: c-typeck.c:6697
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr ""
-#: c-typeck.c:6723
+#: c-typeck.c:6806
+msgid "excess elements in vector initializer"
+msgstr ""
+
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr ""
-#: c-typeck.c:6834 ch/parse.c:2026
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr ""
-#: c-typeck.c:6866
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr ""
-#: c-typeck.c:6939
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr ""
-#: c-typeck.c:6958 cp/typeck.c:6603
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr ""
-#: c-typeck.c:6965
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
msgstr ""
-#: c-typeck.c:6971
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr "\"return\" med värde i funktion som returnerar void"
-#: c-typeck.c:6975
+#: c-typeck.c:7078
msgid "return"
msgstr "return"
-#: c-typeck.c:7026
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr "funktionen returnerar adress till en lokal variabel"
-#: c-typeck.c:7083 cp/semantics.c:533
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "switch-argument är inte ett heltal"
-#: c-typeck.c:7094
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr ""
-#: c-typeck.c:7137 cp/decl.c:5224
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "case-etikett är inte i en switch-sats"
-#: c-typeck.c:7139 cp/decl.c:5229
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
msgstr "\"default\"-etikett är inte i en switch-sats"
-#: calls.c:1882
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr "inlining misslyckades i anrop av \"%s\""
-#: calls.c:1883 calls.c:2196
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr "anropad härifrån"
-#: calls.c:2195
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr "kan inte inline:a anrop till \"%s\""
-#: calls.c:2233
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr ""
-#: calls.c:4625
-msgid "variable offset is passed paritially in stack and in reg"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
msgstr ""
-#: calls.c:4627
-msgid "variable size is passed partially in stack and in reg"
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
msgstr ""
-#: ch/actions.c:118
+#: cfgloop.c:1144
#, c-format
-msgid "%d errors, %d sorries, do granting"
+msgid "Loop %d's header does not have exactly 2 entries."
msgstr ""
-#: ch/actions.c:135
-msgid "GNU compiler does not support statically allocated objects"
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
msgstr ""
-#: ch/actions.c:138 objc/objc-act.c:1109
+#: cfgloop.c:1157
#, c-format
-msgid "`%s' cannot be statically allocated"
-msgstr "\"%s\" kan inte vara statiskt allokerad"
+msgid "Loop %d's latch does not have header as successor."
+msgstr ""
-#: ch/actions.c:300
+#: cfgloop.c:1162
#, c-format
-msgid "causing unhandled exception `%s' (this is flaged only once)"
+msgid "Loop %d's latch does not belong directly to it."
msgstr ""
-#: ch/actions.c:438
-msgid "range failure (not inside function)"
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
msgstr ""
-#: ch/actions.c:440
-msgid "possible range failure (not inside function)"
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
msgstr ""
-#: ch/actions.c:445
-msgid "expression will always cause RANGEFAIL"
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
msgstr ""
-#: ch/actions.c:492
-msgid "right hand side of assignment is a mode"
+#: cfgrtl.c:1800
+#, c-format
+msgid "end insn %d for block %d not found in the insn stream"
msgstr ""
-#: ch/actions.c:498
+#: cfgrtl.c:1814
#, c-format
-msgid "incompatible modes in %s"
+msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr ""
-#: ch/actions.c:523
+#: cfgrtl.c:1826
#, c-format
-msgid "bad string length in %s"
+msgid "head insn %d for block %d not found in the insn stream"
msgstr ""
-#: ch/actions.c:631 ch/actions.c:644
+#: cfgrtl.c:1848
#, c-format
-msgid "mode mismatch in %s expression"
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
msgstr ""
-#: ch/actions.c:638
+#: cfgrtl.c:1855
#, c-format
-msgid "%s expression must be referable"
+msgid "verify_flow_info: Wrong count of block %i %i"
msgstr ""
-#: ch/actions.c:667
+#: cfgrtl.c:1861
#, c-format
-msgid "%s not allowed outside a PROC"
+msgid "verify_flow_info: Wrong frequency of block %i %i"
msgstr ""
-#: ch/actions.c:673
+#: cfgrtl.c:1869
#, c-format
-msgid "%s action in PROC with no declared RESULTS"
+msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr ""
-#: ch/actions.c:704
-msgid "RETURN not allowed outside PROC"
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
msgstr ""
-#: ch/actions.c:717
-msgid "RETURN with a value, in PROC returning void"
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
msgstr ""
-#: ch/actions.c:726
-msgid "RETURN with no value and no RESULT action in procedure"
+#: cfgrtl.c:1911
+#, c-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr ""
-#: ch/actions.c:749
+#: cfgrtl.c:1926
#, c-format
-msgid "no label named `%s'"
-msgstr "ingen etikett med namn \"%s\""
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.c:1928
+msgid "wrong insn in the fallthru edge"
+msgstr ""
-#: ch/actions.c:751
+#: cfgrtl.c:1935
#, c-format
-msgid "cannot GOTO label `%s' outside current function"
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr ""
-#: ch/actions.c:773
+#: cfgrtl.c:1951
#, c-format
-msgid "no EXITable label named `%s'"
+msgid "Missing REG_EH_REGION note in the end of bb %i"
msgstr ""
-#: ch/actions.c:775
+#: cfgrtl.c:1959
#, c-format
-msgid "cannot EXIT label `%s' outside current function"
+msgid "Too many outgoing branch edges from bb %i"
msgstr ""
-#: ch/actions.c:1018
-msgid "case selector not compatible with label"
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
msgstr ""
-#: ch/actions.c:1044
-msgid "ELSE label not within a CASE statement"
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
msgstr ""
-#: ch/actions.c:1048
-msgid "multiple default labels found in a CASE statement"
+#: cfgrtl.c:1975
+#, fuzzy, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "Föredra hopp framför villkorlig körning"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
msgstr ""
-#: ch/actions.c:1049
-msgid "this is the first ELSE label"
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
msgstr ""
-#: ch/actions.c:1070
-msgid "label found outside of CASE statement"
+#: cfgrtl.c:2004
+#, c-format
+msgid "missing barrier after block %i"
msgstr ""
-#: ch/actions.c:1073
-msgid "duplicate CASE value"
+#: cfgrtl.c:2014
+#, c-format
+msgid "basic block %d pred edge is corrupted"
msgstr ""
-#: ch/actions.c:1074 ch/actions.c:1127
-msgid "this is the first entry for that value"
+#: cfgrtl.c:2031
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr ""
-#: ch/actions.c:1077 ch/actions.c:1130
-msgid "CASE value out of range"
+#: cfgrtl.c:2035
+#, c-format
+msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr ""
-#: ch/actions.c:1079 ch/actions.c:1132
-msgid "empty range"
+#: cfgrtl.c:2049 cfgrtl.c:2059
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr ""
-#: ch/actions.c:1081 ch/actions.c:1134
-msgid "label within scope of cleanup or variable array"
+#: cfgrtl.c:2072
+#, c-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr ""
-#: ch/actions.c:1105 ch/actions.c:1302
-msgid "mode in label is not discrete"
+#: cfgrtl.c:2084
+#, c-format
+msgid "in basic block %d:"
msgstr ""
-#: ch/actions.c:1122
-msgid "label not within a CASE statement"
+#: cfgrtl.c:2085
+msgid "flow control insn inside a basic block"
msgstr ""
-#: ch/actions.c:1282
-msgid "Lower bound of range must be a discrete literal expression"
+#: cfgrtl.c:2104
+#, c-format
+msgid "basic block %i edge lists are corrupted"
msgstr ""
-#: ch/actions.c:1287
-msgid "Upper bound of range must be a discrete literal expression"
+#: cfgrtl.c:2119
+msgid "basic blocks not numbered consecutively"
msgstr ""
-#: ch/actions.c:1311
-msgid "The CASE label is not valid"
+#: cfgrtl.c:2144
+msgid "insn outside basic block"
msgstr ""
-#: ch/actions.c:1357 ch/expr.c:215
-msgid ""
-"The number of CASE selectors does not match the number of CASE label lists"
+#: cfgrtl.c:2152
+msgid "return not followed by barrier"
msgstr ""
-#: ch/actions.c:1442
+#: cfgrtl.c:2157
#, c-format
-msgid "incomplete CASE - %s not handled"
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr ""
+
+#: cfgrtl.c:2161
+msgid "verify_flow_info failed"
msgstr ""
-#: ch/actions.c:1461
-msgid "CASE selector with variable range"
+#: collect2.c:425
+msgid "internal error"
+msgstr "internt fel"
+
+#: collect2.c:934
+msgid "no arguments"
+msgstr "inga argument"
+
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
+#, c-format
+msgid "fopen %s"
+msgstr "fopen %s"
+
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
+#, c-format
+msgid "fclose %s"
+msgstr "fclose %s"
+
+#: collect2.c:1275
+#, c-format
+msgid "collect2 version %s"
+msgstr ""
+
+#: collect2.c:1365
+#, c-format
+msgid "%d constructor(s) found\n"
+msgstr "%d konstruerare hittad(e)\n"
+
+#: collect2.c:1366
+#, c-format
+msgid "%d destructor(s) found\n"
+msgstr "%d destruerare hittad(e)\n"
+
+#: collect2.c:1367
+#, c-format
+msgid "%d frame table(s) found\n"
+msgstr ""
+
+#: collect2.c:1508
+#, c-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr "%s terminerade med signal %d [%s]%s"
+
+#: collect2.c:1527
+#, c-format
+msgid "%s returned %d exit status"
+msgstr "%s returnerade avslutningsstatus %d"
+
+#: collect2.c:1555
+#, c-format
+msgid "[cannot find %s]"
+msgstr "[kan inte hitta %s]"
+
+#: collect2.c:1570
+#, c-format
+msgid "cannot find `%s'"
+msgstr "kan inte hitta \"%s\""
+
+#: collect2.c:1581 collect2.c:1584
+#, c-format
+msgid "redirecting stdout: %s"
+msgstr "omdirigerar stdout: %s"
+
+#: collect2.c:1627
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr "[Lämnar %s]\n"
+
+#: collect2.c:1870
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+
+#: collect2.c:2082
+msgid "cannot find `nm'"
+msgstr "kan inte hitta \"nm\""
+
+#: collect2.c:2092 collect2.c:2533
+msgid "pipe"
+msgstr "rör"
+
+#: collect2.c:2096 collect2.c:2537
+msgid "fdopen"
+msgstr "fdopen"
+
+#: collect2.c:2122 collect2.c:2563
+#, c-format
+msgid "dup2 %d 1"
+msgstr "dup2 %d 1"
+
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
+#, c-format
+msgid "close %d"
+msgstr "close %d"
+
+#: collect2.c:2131 collect2.c:2572
+#, c-format
+msgid "execv %s"
+msgstr "execv %s"
+
+#: collect2.c:2185
+#, c-format
+msgid "init function found in object %s"
msgstr ""
-#: ch/actions.c:1465
-msgid "too many cases to do CASE completeness testing"
+#: collect2.c:2193
+#, c-format
+msgid "fini function found in object %s"
msgstr ""
-#: ch/actions.c:1550
-msgid "type of tuple cannot be implicit in multiple assignent"
+#: collect2.c:2216 collect2.c:2621
+msgid "fclose"
+msgstr "fclose"
+
+#: collect2.c:2261
+#, c-format
+msgid "unable to open file '%s'"
+msgstr "kan inte öppna fil \"%s\""
+
+#: collect2.c:2263
+#, c-format
+msgid "unable to stat file '%s'"
msgstr ""
-#: ch/actions.c:1552
-msgid "conditional expression cannot be used in multiple assignent"
+#: collect2.c:2269
+#, c-format
+msgid "unable to mmap file '%s'"
+msgstr "kan inte göra mmap på fil \"%s\""
+
+#: collect2.c:2422
+msgid "not found\n"
+msgstr "hittades inte\n"
+
+#: collect2.c:2424 collect2.c:2600
+#, c-format
+msgid "dynamic dependency %s not found"
msgstr ""
-#: ch/actions.c:1554
-msgid "internal error - unknown type in multiple assignment"
+#: collect2.c:2444
+#, c-format
+msgid "bad magic number in file '%s'"
+msgstr "felaktigt magiskt nummer i fil \"%s\""
+
+#: collect2.c:2466
+msgid "dynamic dependencies.\n"
+msgstr "dynamiskt beroende.\n"
+
+#: collect2.c:2524
+msgid "cannot find `ldd'"
+msgstr "kan inte hitta \"ldd\""
+
+#: collect2.c:2585
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
msgstr ""
-#: ch/actions.c:1558
-msgid "no operator allowed in multiple assignment,"
+#: collect2.c:2612
+#, c-format
+msgid "unable to open dynamic dependency '%s'"
msgstr ""
-#: ch/actions.c:1568
-msgid "location modes in multiple assignment are not equivalent"
+#: collect2.c:2726
+#, c-format
+msgid "%s: not a COFF file"
+msgstr "%s: är inte en COFF-fil"
+
+#: collect2.c:2845
+#, c-format
+msgid "%s: cannot open as COFF file"
+msgstr "%s: kan inte öppna som COFF-fil"
+
+#: collect2.c:2901
+#, fuzzy, c-format
+msgid "library lib%s not found"
+msgstr "Hittade inte bibliotek lib%s"
+
+#: collect2.c:3028
+#, c-format
+msgid "open %s"
+msgstr "open %s"
+
+#: collect2.c:3051
+msgid "incompatibilities between object file & expected values"
msgstr ""
-#: ch/actions.c:1606
-msgid "You may not assign a value to a BUFFER or EVENT location"
+#: collect2.c:3124
+#, c-format
+msgid ""
+"\n"
+"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
msgstr ""
+"\n"
+"Processar symboltabell #%d, index = 0x%.8lx, sort = %s\n"
+
+#: collect2.c:3133
+msgid "string section missing"
+msgstr "strängsektionen saknas"
+
+#: collect2.c:3136
+msgid "section pointer missing"
+msgstr "sektionspekare saknas"
+
+#: collect2.c:3184
+msgid "no symbol table found"
+msgstr "hittade ingen symboltabell"
-#: ch/actions.c:1614
-msgid "can't assign value to READonly location"
+#: collect2.c:3197
+msgid "no cmd_strings found"
+msgstr "hittar ingen cmd_strings"
+
+#: collect2.c:3209
+msgid ""
+"\n"
+"Updating header and load commands.\n"
+"\n"
msgstr ""
-#: ch/actions.c:1619
-msgid "cannot assign to location with non-value property"
+#: collect2.c:3216
+#, c-format
+msgid "load command map, %d cmds, new size %ld.\n"
+msgstr "ladda kommandomappning, %d kommandon, ny storlek %ld.\n"
+
+#: collect2.c:3247
+msgid ""
+"writing load commands.\n"
+"\n"
msgstr ""
-#: ch/actions.c:1639
-msgid "lefthand side of assignment is not a location"
+#: collect2.c:3267
+#, c-format
+msgid "close %s"
msgstr ""
-#: ch/actions.c:1715 ch/actions.c:1785
-msgid "bitstring slice"
+#: collect2.c:3341
+msgid "could not convert 0x%l.8x into a region"
msgstr ""
-#: ch/actions.c:1810
-msgid "LENGTH on left-hand-side is non-portable"
+#: collect2.c:3345
+#, c-format
+msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr ""
-#: ch/actions.c:1814
-msgid "Can only set LENGTH of array location"
+#: collect2.c:3472
+msgid "bad magic number"
msgstr ""
-#: ch/convert.c:63
-msgid "internal error: trying to make loc-identity with non-location"
+#: collect2.c:3473
+msgid "bad header version"
msgstr ""
-#: ch/convert.c:117
-msgid "cannot convert to a boolean mode"
+#: collect2.c:3474
+msgid "bad raw header version"
msgstr ""
-#: ch/convert.c:152
-msgid "cannot convert to a char mode"
+#: collect2.c:3475
+msgid "raw header buffer too small"
msgstr ""
-#: ch/convert.c:248
-msgid "powerset tuple element out of range"
+#: collect2.c:3476
+msgid "old raw header file"
msgstr ""
-#: ch/convert.c:284 ch/convert.c:312
+#: collect2.c:3477
+msgid "unsupported version"
+msgstr "ej stödd version"
+
+#: collect2.c:3479
#, c-format
-msgid "incompatible member of powerset tuple (at position #%d)"
+msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr ""
-#: ch/convert.c:394
+#: collect2.c:3499
#, c-format
-msgid "no initializer value for fixed field `%s'"
-msgstr ""
+msgid "fstat %s"
+msgstr "fstat %s"
-#: ch/convert.c:436
+#: collect2.c:3536 collect2.c:3584
#, c-format
-msgid "non-constant value for tag field `%s'"
-msgstr ""
+msgid "lseek %s 0"
+msgstr "lseek %s 0"
-#: ch/convert.c:488
+#: collect2.c:3540
#, c-format
-msgid "field `%s' in wrong variant"
-msgstr ""
+msgid "read %s"
+msgstr "read %s"
-#: ch/convert.c:495
+#: collect2.c:3543
#, c-format
-msgid "missing variant fields (at least `%s')"
-msgstr ""
+msgid "read %ld bytes, expected %ld, from %s"
+msgstr "läste %ld bytes, förväntade %ld, från %s"
-#: ch/convert.c:518
+#: collect2.c:3564
#, c-format
-msgid "bad initializer for field `%s'"
+msgid "msync %s"
+msgstr "msync %s"
+
+#: collect2.c:3571
+#, c-format
+msgid "munmap %s"
+msgstr "munmap %s"
+
+#: collect2.c:3588
+#, c-format
+msgid "write %s"
+msgstr "write %s"
+
+#: collect2.c:3591
+#, c-format
+msgid "wrote %ld bytes, expected %ld, to %s"
+msgstr "skrev %ld bytes, förväntade %ld, till %s"
+
+#: combine.c:13222
+#, c-format
+msgid ""
+";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
+"\n"
msgstr ""
-#: ch/convert.c:525
+#: combine.c:13232
#, c-format
-msgid "no initializer value for variant field `%s'"
+msgid ""
+"\n"
+";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+";; %d successes.\n"
msgstr ""
-#: ch/convert.c:531
-msgid "no selected variant"
+#: convert.c:69
+msgid "cannot convert to a pointer type"
+msgstr "kan inte konvertera till en pekartyp"
+
+#: convert.c:102
+msgid "pointer value used where a floating point value was expected"
msgstr ""
-#: ch/convert.c:546 ch/convert.c:912
-msgid "mixture of labelled and unlabelled tuple elements"
+#: convert.c:106
+msgid "aggregate value used where a float was expected"
msgstr ""
-#: ch/convert.c:557
-msgid "probably not a structure tuple"
+#: convert.c:132
+msgid "conversion to incomplete type"
msgstr ""
-#: ch/convert.c:559
-#, c-format
-msgid "excess initializer for field `%s'"
+#: convert.c:414 convert.c:494
+msgid "can't convert between vector values of different size"
msgstr ""
-#: ch/convert.c:566
-msgid "excess unnamed initializers"
+#: convert.c:420
+msgid "aggregate value used where an integer was expected"
msgstr ""
-#: ch/convert.c:693
-msgid "non-constant start index for tuple"
+#: convert.c:472 f/com.c:1100
+msgid "pointer value used where a complex was expected"
msgstr ""
-#: ch/convert.c:736
-msgid "invalid array tuple label"
+#: convert.c:476 f/com.c:1102
+msgid "aggregate value used where a complex was expected"
msgstr ""
-#: ch/convert.c:750
-msgid "non-constant array tuple index range"
+#: convert.c:500
+msgid "can't convert value to a vector"
msgstr ""
-#: ch/convert.c:759
+#: cpperror.c:113
+msgid "warning: "
+msgstr "varning: "
+
+#: cpperror.c:115
+msgid "internal error: "
+msgstr "internt fel: "
+
+#: cpperror.c:189
+#, fuzzy
+msgid "stdout"
+msgstr "struct"
+
+#: cpperror.c:191 gcc.c:6428
#, c-format
-msgid "incompatible array tuple element %s"
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: cppexp.c:199
+#, fuzzy
+msgid "too many decimal points in number"
+msgstr "för många decimalpunker i flyttalskonstant"
+
+#: cppexp.c:219
+#, fuzzy, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "ogiltigt suffix på heltalskonstant"
+
+#: cppexp.c:225
+#, fuzzy
+msgid "use of C99 hexadecimal floating constant"
+msgstr "för många decimalpunker i flyttalskonstant"
+
+#: cppexp.c:234
+#, fuzzy
+msgid "exponent has no digits"
+msgstr "numerisk kostant utan siffror"
+
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr ""
+
+#: cppexp.c:247
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "både suffix 'f' och 'l' på flyttalskonstant"
+
+#: cppexp.c:257 cppexp.c:282
+#, fuzzy, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionell C stödjer inte suffixet 'f'"
+
+#: cppexp.c:268
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ogiltigt suffix på heltalskonstant"
+
+#: cppexp.c:289
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr "ISO C89 förbjuder long long integer konstanter"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
msgstr ""
-#: ch/convert.c:775
-msgid "multiple (*) or (ELSE) array tuple labels"
+#: cppexp.c:383
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstant är större än maximala värdet för sin typ"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
msgstr ""
-#: ch/convert.c:784
-msgid "empty range in array tuple"
+#: cppexp.c:482
+msgid "missing ')' after \"defined\""
+msgstr "saknar ')' efter \"defined\""
+
+#: cppexp.c:489
+msgid "operator \"defined\" requires an identifier"
msgstr ""
-#: ch/convert.c:801
+#: cppexp.c:497
#, c-format
-msgid "array tuple has duplicate index %s"
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr ""
-#: ch/convert.c:809
-msgid "array tuple index out of range"
+#: cppexp.c:507
+msgid "this use of \"defined\" may not be portable"
msgstr ""
-#: ch/convert.c:811
-msgid "too many array tuple values"
-msgstr ""
+#: cppexp.c:545
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr "flyttalsspill i uttryck"
+
+#: cppexp.c:551
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr "ogiltig användning av void-uttryck"
+
+#: cppexp.c:596
+#, c-format
+msgid "ISO C++ does not permit \"%s\" in #if"
+msgstr "ISO C++ tillåter inte \"%s\" i #if"
+
+#: cppexp.c:604
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" är inte definierad"
+
+#: cppexp.c:737 cppexp.c:772
+#, fuzzy, c-format
+msgid "missing binary operator before token \"%s\""
+msgstr "saknar mellanrum efter nummer \"%.*s\""
-#: ch/convert.c:883
-msgid "dynamic array tuple without (*) or (ELSE)"
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
msgstr ""
-#: ch/convert.c:885
+#: cppexp.c:758
#, c-format
-msgid "missing array tuple element %s"
+msgid "invalid character '\\%03o' in #if"
+msgstr ""
+
+#: cppexp.c:763
+#, fuzzy, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "\"%s\" är inte ett giltigt filnamn"
+
+#: cppexp.c:782
+msgid "void expression between '(' and ')'"
msgstr ""
-#: ch/convert.c:892
+#: cppexp.c:785
+#, fuzzy
+msgid "#if with no expression"
+msgstr "#%s utan argument"
+
+#: cppexp.c:787
#, c-format
-msgid "missing array tuple elements %s : %s"
+msgid "operator '%s' has no right operand"
msgstr ""
-#: ch/convert.c:1086
-msgid "initializer is not an array or string mode"
+#: cppexp.c:813
+#, fuzzy
+msgid " ':' without preceding '?'"
+msgstr "syntaxfel vid token \"%s\""
+
+#: cppexp.c:840
+#, fuzzy
+msgid "unbalanced stack in #if"
+msgstr "obalanserad #endif"
+
+#: cppexp.c:862
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "saknar mellanrum efter nummer \"%.*s\""
+
+#: cppexp.c:954
+#, fuzzy
+msgid "missing ')' in expression"
+msgstr "heltalsspill i uttryck"
+
+#: cppexp.c:975
+msgid "'?' without following ':'"
msgstr ""
-#: ch/convert.c:1098
-msgid "destination is too small"
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
msgstr ""
-#: ch/convert.c:1154
-msgid "internal error: unknown type of expression"
+#: cppexp.c:990
+#, fuzzy
+msgid "missing '(' in expression"
+msgstr "heltalsspill i uttryck"
+
+#: cppexp.c:1026
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
msgstr ""
-#: ch/decl.c:1033
+#: cppexp.c:1031
#, c-format
-msgid "`%s' must not be declared readonly"
+msgid "the right operand of \"%s\" changes sign when promoted"
msgstr ""
-#: ch/decl.c:1037
-msgid "declaration of readonly variable without initialization"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
msgstr ""
-#: ch/decl.c:1059
-#, c-format
-msgid "no initialisation allowed for `%s'"
+#: cppexp.c:1551
+msgid "division by zero in #if"
msgstr ""
-#: ch/decl.c:1067
+#: cppfiles.c:411
#, c-format
-msgid "value for loc-identity `%s' is not a location"
-msgstr ""
+msgid "%s is too large"
+msgstr "%s är för stor"
-#: ch/decl.c:1074
+#: cppfiles.c:447
#, c-format
-msgid "location for `%s' not read-compatible"
-msgstr ""
+msgid "%s is shorter than expected"
+msgstr "%s är kortare än förväntat"
-#: ch/decl.c:1101
+#: cppfiles.c:461
#, c-format
-msgid "nonconstant initializer for `%s'"
-msgstr ""
+msgid "%s is a block device"
+msgstr "%s är en blockenhet"
-#: ch/decl.c:1132
-msgid "do_decl: internal error: don't know what to initialize"
+#: cppfiles.c:594
+#, c-format
+msgid "no include path in which to find %s"
msgstr ""
-#: ch/decl.c:1189
-msgid "RECURSIVE PROCs"
+#: cppfiles.c:668
+msgid "Multiple include guards may be useful for:\n"
msgstr ""
-#: ch/decl.c:1445
+#: cppfiles.c:1014
+msgid "absolute file name in remap_filename"
+msgstr "absolut filnamn i remap_filename"
+
+#: cppinit.c:224
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr "ignorerar ej existerande katalog \"%s\"\n"
+
+#: cppinit.c:231
#, c-format
-msgid "`%s' must not be READonly"
+msgid "%s: Not a directory"
+msgstr "%s: Inte en katalog"
+
+#: cppinit.c:287
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
msgstr ""
-#: ch/decl.c:1471
-msgid "POS may not be specified for a list of field declarations"
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
msgstr ""
-#: ch/decl.c:1525
-msgid "(ELSE) case label as well as ELSE variant"
+#: cppinit.c:891
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr "predikat måste vara en identifierare"
+
+#: cppinit.c:895
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
msgstr ""
-#: ch/decl.c:1610 ch/decl.c:1613
-msgid "inconsistent modes between labels and tag field"
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
msgstr ""
-#: ch/decl.c:1618
-msgid "too few tag labels"
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
msgstr ""
-#: ch/decl.c:1620
-msgid "too many tag labels"
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
msgstr ""
-#: ch/decl.c:1658
-msgid "case label lower limit is not a discrete constant expression"
+#: cppinit.c:912
+msgid "target int is narrower than target char"
msgstr ""
-#: ch/decl.c:1660
-msgid "case label upper limit is not a discrete constant expression"
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
msgstr ""
-#: ch/decl.c:1670
-msgid "case label must be a discrete constant expression"
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
msgstr ""
-#: ch/decl.c:1697
-msgid "variant label declared here..."
+#: cppinit.c:972
+msgid "#include \"...\" search starts here:\n"
+msgstr "#include \"...\" sökning startar här:\n"
+
+#: cppinit.c:976
+msgid "#include <...> search starts here:\n"
+msgstr "#include <...> sökning startar här:\n"
+
+#: cppinit.c:979
+msgid "End of search list.\n"
+msgstr "Slut på söklistan.\n"
+
+#: cppinit.c:1057
+#, fuzzy
+msgid "<built-in>"
+msgstr "<inbyggd>"
+
+#: cppinit.c:1059
+msgid "<command line>"
msgstr ""
-#: ch/decl.c:1699
-msgid "...is duplicated here"
+#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
+#. I.e. a const string initializer with parens around it. That is
+#. what N_("string") resolves to, so we make no_* be macros instead.
+#: cppinit.c:1164
+#, fuzzy, c-format
+msgid "assertion missing after %s"
+msgstr "Makronamn saknas efter %s"
+
+#: cppinit.c:1165
+#, fuzzy, c-format
+msgid "directory name missing after %s"
+msgstr "Katalognamn saknas efter %s"
+
+#: cppinit.c:1166
+#, fuzzy, c-format
+msgid "file name missing after %s"
+msgstr "Filnamn saknas efter %s"
+
+#: cppinit.c:1167
+#, fuzzy, c-format
+msgid "macro name missing after %s"
+msgstr "Makronamn saknas efter %s"
+
+#: cppinit.c:1168
+#, fuzzy, c-format
+msgid "path name missing after %s"
+msgstr "Sökväg saknas efter %s"
+
+#: cppinit.c:1353
+msgid "-I- specified twice"
+msgstr "-I- angiven två gånger"
+
+#: cpplex.c:149
+#, c-format
+msgid "trigraph ??%c converted to %c"
msgstr ""
-#: ch/decl.c:1729
+#: cpplex.c:157
#, c-format
-msgid "no field (yet) for tag %s"
+msgid "trigraph ??%c ignored"
msgstr ""
-#: ch/decl.c:1824
-msgid "non-value mode may only returned by LOC"
+#: cpplex.c:214
+msgid "backslash and newline separated by space"
msgstr ""
-#: ch/decl.c:1847
-#, c-format
-msgid "mode of `%s' is not a mode"
+#: cpplex.c:221 cpptrad.c:158
+msgid "backslash-newline at end of file"
msgstr ""
-#: ch/decl.c:1853
-#, c-format
-msgid "`%s' may only be passed by LOC"
+#: cpplex.c:287 cpptrad.c:199
+msgid "\"/*\" within comment"
+msgstr "\"/*\" i kommentar"
+
+#: cpplex.c:395
+msgid "null character(s) ignored"
msgstr ""
-#: ch/decl.c:2281
+#: cpplex.c:402
#, c-format
-msgid "Nothing named `%s' to grant."
-msgstr ""
+msgid "%s in preprocessing directive"
+msgstr "%s i preprocessordirektiv"
-#: ch/decl.c:2321
+#: cpplex.c:475
#, c-format
-msgid "duplicate grant for `%s'"
+msgid "attempt to use poisoned \"%s\""
+msgstr "försök att använda förgiftad \"%s\""
+
+#: cpplex.c:483
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr ""
-#: ch/decl.c:2322
+#: cpplex.c:555
+#, fuzzy
+msgid "'$' character(s) in identifier or number"
+msgstr "tecknet '$' i en identifierare"
+
+#: cpplex.c:698
#, c-format
-msgid "previous grant for `%s'"
+msgid "missing terminating %c character"
+msgstr ""
+
+#: cpplex.c:711
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: cpplex.c:915 cpptrad.c:487
+msgid "no newline at end of file"
+msgstr "inget nyradstecken vid slutet av filen"
+
+#: cpplex.c:1092 cpptrad.c:213
+msgid "unterminated comment"
+msgstr "ej avslutad kommentar"
+
+#: cpplex.c:1103
+#, fuzzy
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ kommentarer tillåts inte av ISO C89"
+
+#: cpplex.c:1105
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: cpplex.c:1110
+msgid "multi-line comment"
+msgstr ""
+
+#: cpplex.c:1425
+#, fuzzy, c-format
+msgid "unknown string token %s\n"
+msgstr "okänt registernamn: %s"
+
+#: cpplex.c:1438
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "kan inte öppna fil \"%s\""
+
+#: cpplex.c:1695
+#, fuzzy, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "semantiken för \"\\%c\" varierar med -traditional"
+
+#: cpplex.c:1701
+msgid "incomplete universal-character-name"
msgstr ""
-#: ch/decl.c:2409
+#: cpplex.c:1715
#, c-format
-msgid "duplicate definition `%s'"
+msgid "non-hex digit '%c' in universal-character-name"
+msgstr ""
+
+#: cpplex.c:1723
+msgid "universal-character-name on EBCDIC target"
+msgstr ""
+
+#: cpplex.c:1737
+msgid "universal-character-name out of range"
msgstr ""
-#: ch/decl.c:2410
+#: cpplex.c:1791
+#, fuzzy
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "semantiken för \"\\a\" varierar med -traditional"
+
+#: cpplex.c:1798
#, c-format
-msgid "previous definition of `%s'"
+msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr ""
-#: ch/decl.c:3248 ch/decl.c:3258
+#: cpplex.c:1809
+#, fuzzy
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "semantiken för \"\\x\" varierar med -traditional"
+
+#: cpplex.c:1828 f/lex.c:585
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: cpplex.c:1833
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: cpplex.c:1858
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: cpplex.c:1874
+#, c-format
+msgid "unknown escape sequence '\\%c'"
+msgstr "okänd escape-sekvens \"\\%c\""
+
+#: cpplex.c:1877
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%03o'"
+msgstr "okänd escape-sekvens \"\\%c\""
+
+#: cpplex.c:1882
+#, fuzzy
+msgid "escape sequence out of range for its type"
+msgstr "escape-sekvens ryms ej i ett tecken"
+
+#: cpplex.c:1973
+msgid "empty character constant"
+msgstr "tom teckenkonstant"
+
+#: cpplex.c:1983
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr "teckenkonstant för lång"
+
+#: cpplex.c:1986
+msgid "multi-character character constant"
+msgstr "flerteckens teckenkonstant"
+
+#: cpplib.c:225
#, c-format
-msgid "ambiguous choice for seize `%s' -"
+msgid "extra tokens at end of #%s directive"
msgstr ""
-#: ch/decl.c:3249 ch/decl.c:3259
+#: cpplib.c:315
#, c-format
-msgid " - can seize this `%s' -"
+msgid "#%s is a GCC extension"
+msgstr "#%s är en GCC-utvidgning"
+
+#: cpplib.c:327
+msgid "suggest not using #elif in traditional C"
msgstr ""
-#: ch/decl.c:3250 ch/decl.c:3261
+#: cpplib.c:330
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionell C ignorerar #%s dör tecknet # är indenterat"
+
+#: cpplib.c:334
#, c-format
-msgid " - or this granted decl `%s'"
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
msgstr ""
-#: ch/decl.c:4430
+#: cpplib.c:378
+#, fuzzy
+msgid "style of line directive is a GCC extension"
+msgstr "#%s är en GCC-utvidgning"
+
+#: cpplib.c:428
#, c-format
-msgid "enumerator value for `%s' is less then 0"
+msgid "invalid preprocessing directive #%s"
msgstr ""
-#: ch/decl.c:4512
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: cpplib.c:506
#, c-format
-msgid "enumerators `%s' and `%s' have equal values"
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
msgstr ""
-#: ch/decl.c:4618
-msgid "undefined value in SET mode is obsolete and deprecated."
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
msgstr ""
-#: ch/decl.c:4794
-msgid "BASE variable never declared"
+#: cpplib.c:512
+msgid "macro names must be identifiers"
msgstr ""
-#: ch/decl.c:4796
-msgid "cannot BASE a variable on a PROC/PROCESS name"
+#: cpplib.c:552
+#, c-format
+msgid "undefining \"%s\""
msgstr ""
-#: ch/decl.c:4848
-msgid "INTERNAL ERROR: handle_one_level is broken"
+#: cpplib.c:598
+msgid "missing terminating > character"
+msgstr "saknar avslutande tecken >"
+
+#: cpplib.c:637
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr ""
-#: ch/expr.c:126
+#: cpplib.c:648
#, c-format
-msgid "tuple without specified mode not allowed in %s"
+msgid "empty file name in #%s"
+msgstr "tomt filnamn i #%s"
+
+#: cpplib.c:667
+msgid "#include_next in primary source file"
msgstr ""
-#: ch/expr.c:128
+#: cpplib.c:674
+msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+msgstr "#import är obsolet, använd #ifndef-omslutning i includefilen"
+
+#: cpplib.c:682
+msgid "#include nested too deeply"
+msgstr "#include nästlad för djupt"
+
+#: cpplib.c:739
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ogiltigt flagga \"%s\" i line-direktiv"
+
+#: cpplib.c:814
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" efter #line är inte ett positivt heltal"
+
+#: cpplib.c:820
+msgid "line number out of range"
+msgstr "radnummer utanför möjligt intervall"
+
+#: cpplib.c:831 cpplib.c:902
#, c-format
-msgid "conditional expression not allowed in %s"
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" är inte ett giltigt filnamn"
+
+#: cpplib.c:866
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" efter #line är inte ett positivt heltal"
+
+#: cpplib.c:973
+#, fuzzy
+msgid "invalid #ident directive"
+msgstr "ogiltig #indent"
+
+#: cpplib.c:1061
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr ""
-#: ch/expr.c:130
+#: cpplib.c:1064
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "Klass \"%s\" finns redan"
+
+#: cpplib.c:1067
#, c-format
-msgid "internal error: unknown expression mode in %s"
+msgid "#pragma %s is already registered"
msgstr ""
-#: ch/expr.c:147
-msgid "CASE selector is not a discrete expression"
+#: cpplib.c:1143
+msgid "#pragma once is obsolete"
+msgstr "#pragma once är obsolet"
+
+#: cpplib.c:1146
+msgid "#pragma once in main file"
+msgstr "#pragma once i huvudfil"
+
+#: cpplib.c:1170
+msgid "invalid #pragma GCC poison directive"
+msgstr "ogiltigt GCC-direktiv #pragma poison"
+
+#: cpplib.c:1179
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "förgiftar existerande makro \"%s\""
+
+#: cpplib.c:1201
+msgid "#pragma system_header ignored outside include file"
msgstr ""
-#: ch/expr.c:594
-msgid "powerset is not addressable"
+#: cpplib.c:1226
+#, c-format
+msgid "cannot find source %s"
+msgstr "kan inte hitta källfil %s"
+
+#: cpplib.c:1230
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuell fil är äldre än %s"
+
+#: cpplib.c:1346
+msgid "_Pragma takes a parenthesized string literal"
msgstr ""
-#: ch/expr.c:639
-msgid "array is not addressable"
+#: cpplib.c:1429
+msgid "#else without #if"
+msgstr "#else utan #if"
+
+#: cpplib.c:1434
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: cpplib.c:1436 cpplib.c:1470
+msgid "the conditional began here"
+msgstr "villkorssatsen började här"
+
+#: cpplib.c:1463
+msgid "#elif without #if"
+msgstr "#elif utan #if"
+
+#: cpplib.c:1468
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: cpplib.c:1499
+msgid "#endif without #if"
+msgstr "#endif utan #if"
+
+#: cpplib.c:1582
+msgid "missing '(' after predicate"
+msgstr "saknas '(' efter predikat"
+
+#: cpplib.c:1597
+msgid "missing ')' to complete answer"
+msgstr "saknas ')' för att avsluta svaret"
+
+#: cpplib.c:1617
+msgid "predicate's answer is empty"
+msgstr "predikatets svar är tomt"
+
+#: cpplib.c:1647
+msgid "assertion without predicate"
msgstr ""
-#: ch/expr.c:687
+#: cpplib.c:1649
+msgid "predicate must be an identifier"
+msgstr "predikat måste vara en identifierare"
+
+#: cpplib.c:1738
#, c-format
-msgid "Too few arguments in call to `%s'"
+msgid "\"%s\" re-asserted"
msgstr ""
-#: ch/expr.c:689
+#: cpplib.c:1968
#, c-format
-msgid "Too many arguments in call to `%s'"
+msgid "unterminated #%s"
msgstr ""
-#: ch/expr.c:758
-msgid "cannot dereference, not a pointer."
+#: cppmacro.c:94
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr "\"%s\" är inte definierad"
+
+#: cppmacro.c:139 cppmacro.c:294
+#, fuzzy, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "förgiftar existerande makro \"%s\""
+
+#: cppmacro.c:234
+#, fuzzy
+msgid "could not determine date and time"
+msgstr "Kunde inte öppna datafil %s.\n"
+
+#: cppmacro.c:407
+msgid "invalid string literal, ignoring final '\\'"
msgstr ""
-#: ch/expr.c:768
+#: cppmacro.c:504
#, c-format
-msgid "missing '.' operator or undefined mode name `%s'."
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr ""
-#: ch/expr.c:771
-msgid "You have forgotten the '.' operator which must"
+#: cppmacro.c:546
+msgid "ISO C99 requires rest arguments to be used"
msgstr ""
-#: ch/expr.c:772
+#: cppmacro.c:551
#, c-format
-msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
+msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr ""
-#: ch/expr.c:786
-msgid "Can't dereference PTR value using unary `->'."
+#: cppmacro.c:556
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr ""
-#: ch/expr.c:831
-msgid "invalid type argument of `->'"
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
msgstr ""
-#: ch/expr.c:856 ch/expr.c:969
-msgid "operand of '.' is not a STRUCT"
+#: cppmacro.c:776
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr ""
-#: ch/expr.c:909
+#: cppmacro.c:1314
#, c-format
-msgid "No field named `%s'"
+msgid "duplicate macro parameter \"%s\""
msgstr ""
-#: ch/expr.c:1217
-msgid "ABS argument must be discrete or real mode"
+#: cppmacro.c:1351
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
msgstr ""
-#: ch/expr.c:1250
-#, c-format
-msgid "argument %d to ABSTIME must be of integer type."
+#: cppmacro.c:1359
+msgid "macro parameters must be comma-separated"
msgstr ""
-#: ch/expr.c:1288 ch/expr.c:1329
-msgid "parameter 1 must be referable."
+#: cppmacro.c:1376
+msgid "parameter name missing"
+msgstr "parameternamn saknas"
+
+#: cppmacro.c:1391
+msgid "anonymous variadic macros were introduced in C99"
msgstr ""
-#: ch/expr.c:1294 ch/expr.c:1335 ch/expr.c:1372
-msgid "mode mismatch in parameter 1."
+#: cppmacro.c:1395
+msgid "ISO C does not permit named variadic macros"
msgstr ""
-#: ch/expr.c:1301 ch/expr.c:1342
-msgid "parameter 2 must be a positive integer."
+#: cppmacro.c:1404
+msgid "missing ')' in macro parameter list"
msgstr ""
-#: ch/expr.c:1436
-msgid "CARD argument must be powerset mode"
+#: cppmacro.c:1472
+msgid "ISO C requires whitespace after the macro name"
msgstr ""
-#: ch/expr.c:1487
-msgid "expression for DESCR-builtin must be referable."
+#: cppmacro.c:1500
+msgid "'#' is not followed by a macro parameter"
msgstr ""
-#: ch/expr.c:1535
+#: cppmacro.c:1519
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: cppmacro.c:1601
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" omdefinierad"
+
+#: cppmacro.c:1606
+msgid "this is the location of the previous definition"
+msgstr "detta är platsen för den tidigare definitionen"
+
+#: cppmacro.c:1657
#, c-format
-msgid "argument to `%s' must be of integer type."
+msgid "macro argument \"%s\" would be stringified in traditional C"
msgstr ""
-#: ch/expr.c:1568
+#: cppmacro.c:1682
#, c-format
-msgid "argument 1 to `%s' must be of floating point mode"
+msgid "invalid hash type %d in cpp_macro_definition"
msgstr ""
-#: ch/expr.c:1602
+#: cppspec.c:109
#, c-format
-msgid "First argument to `%s' must be a mode"
+msgid "\"%s\" is not a valid option to the preprocessor"
msgstr ""
-#: ch/expr.c:1609
+#: cppspec.c:133
+msgid "too many input files"
+msgstr "för många indatafiler"
+
+#: cpptrad.c:841
#, c-format
-msgid "READonly modes for %s must have a value"
+msgid "detected recursion whilst expanding macro \"%s\""
msgstr ""
-#: ch/expr.c:1692
-msgid "argument to TERMINATE must be a reference primitive value"
+#: cse.c:7195
+#, c-format
+msgid ";; Processing block from %d to %d, %d sets.\n"
msgstr ""
-#: ch/expr.c:1741
-msgid "argument 1 to INTTIME must be of mode TIME."
+#: diagnostic.c:714
+msgid "((anonymous))"
+msgstr "((anonym))"
+
+#: diagnostic.c:928
+#, c-format
+msgid "%s: warnings being treated as errors\n"
msgstr ""
-#: ch/expr.c:1782
+#: diagnostic.c:963
#, c-format
-msgid "%s."
-msgstr "%s."
+msgid "%s: %s: "
+msgstr "%s: %s: "
-#: ch/expr.c:1888
-msgid ""
-"LENGTH argument must be string, buffer, event mode, text location or mode"
-msgstr ""
+#: diagnostic.c:1054
+#, c-format
+msgid "%s "
+msgstr "%s "
+
+#: diagnostic.c:1056
+#, c-format
+msgid " %s"
+msgstr " %s"
+
+#: diagnostic.c:1078
+msgid "At top level:"
+msgstr "På toppnivå:"
+
+#: diagnostic.c:1083
+#, fuzzy, c-format
+msgid "In member function `%s':"
+msgstr "I funktion `%s':"
+
+#: diagnostic.c:1087
+#, c-format
+msgid "In function `%s':"
+msgstr "I funktion `%s':"
-#: ch/expr.c:1917
-msgid "UPPER argument must have a mode, or be a mode"
+#: diagnostic.c:1175
+msgid "compilation terminated.\n"
+msgstr "kompilering avslutad.\n"
+
+#: diagnostic.c:1193
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr ""
-#: ch/expr.c:1919
-msgid "LOWER argument must have a mode, or be a mode"
+#: diagnostic.c:1208 diagnostic.c:1316
+#, c-format
+msgid ""
+"Please submit a full bug report,\n"
+"with preprocessed source if appropriate.\n"
+"See %s for instructions.\n"
msgstr ""
+"Var vänlig och skicka in en komplett felrapport,\n"
+"om möjligt med preprocessad källfil.\n"
+"Se %s för instruktioner.\n"
-#: ch/expr.c:1953
-msgid "UPPER argument must be string, array, mode or integer"
+#: diagnostic.c:1314
+msgid "Internal compiler error: Error reporting routines re-entered.\n"
+msgstr "Internt kompilatorfel: Felhanteringsrutiner återanropade.\n"
+
+#: diagnostic.c:1376
+#, c-format
+msgid "in %s, at %s:%d"
msgstr ""
-#: ch/expr.c:1955
-msgid "LOWER argument must be string, array, mode or integer"
+#: diagnostic.c:1397
+#, c-format
+msgid "In file included from %s:%d"
+msgstr "I fil includerad från %s:%d"
+
+#: diagnostic.c:1400
+#, c-format
+msgid ""
+",\n"
+" from %s:%d"
msgstr ""
+",\n"
+" från %s:%d"
+
+#: diagnostic.c:1401
+msgid ":\n"
+msgstr ":\n"
-#: ch/expr.c:1991
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
-msgid "%s argument must be POWERSET mode"
+msgid "`%s' is deprecated (declared at %s:%d)"
msgstr ""
-#: ch/expr.c:2017
+#: diagnostic.c:1465
+#, fuzzy, c-format
+msgid "`%s' is deprecated"
+msgstr "tredje argumentet till \"%s\" är inte länge rekommenderat"
+
+#: diagnostic.c:1468
#, c-format
-msgid "%s called for empty POWERSET"
+msgid "type is deprecated (declared at %s:%d)"
msgstr ""
-#: ch/expr.c:2098
-msgid "argument to NUM is not discrete"
+#: diagnostic.c:1471
+msgid "type is deprecated"
msgstr ""
-#: ch/expr.c:2110
-msgid "No integer mode which matches expression's mode"
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
msgstr ""
-#: ch/expr.c:2119
-msgid "NUM's parameter is below its mode range"
+#: dwarf2out.c:3135
+#, fuzzy, c-format
+msgid "DW_LOC_OP %s not implemented\n"
+msgstr "DW_LOC_OP %s är inte implementerad\n"
+
+#: dwarfout.c:2066
+#, c-format
+msgid "internal regno botch: `%s' has regno = %d\n"
msgstr ""
-#: ch/expr.c:2122
-msgid "NUM's parameter is above its mode range"
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
msgstr ""
-#: ch/expr.c:2161
-msgid "Cannot take SUCC or PRED of a numbered SET"
+#: dwarfout.c:6278
+msgid "can't get current directory"
msgstr ""
-#: ch/expr.c:2169
-msgid "SUCC or PRED must not be done on a PTR."
+#: emit-rtl.c:1155
+msgid "can't access real part of complex value in hard register"
msgstr ""
-#: ch/expr.c:2172
-msgid "SUCC or PRED for a reference type is not standard."
+#: emit-rtl.c:1177
+msgid "can't access imaginary part of complex value in hard register"
msgstr ""
-#: ch/expr.c:2182
-msgid "SUCC or PRED argument must be a discrete mode"
+#: emit-rtl.c:3402
+msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr ""
-#: ch/expr.c:2203
+#: errors.c:136
#, c-format
-msgid "Taking the %s of a value already at its %s value"
+msgid "abort in %s, at %s:%d"
msgstr ""
-#: ch/expr.c:2254
-msgid "size applied to a function mode"
+#: except.c:369
+msgid "exception handling disabled, use -fexceptions to enable"
msgstr ""
-#: ch/expr.c:2260
-msgid "sizeof applied to a void mode"
+#: except.c:2994
+msgid "argument of `__builtin_eh_return_regno' must be constant"
+msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+
+#: except.c:3137
+msgid "__builtin_eh_return not supported on this target"
+msgstr "__builtin_eh_return stöds inte på denna målarkitektur"
+
+#: explow.c:1408
+msgid "stack limits not supported on this target"
msgstr ""
-#: ch/expr.c:2265
-msgid "sizeof applied to an incomplete mode"
+#: expr.c:3355
+msgid "function using short complex types cannot be inline"
msgstr ""
-#: ch/expr.c:2360
-msgid "cannot call a PROCESS, you START a PROCESS"
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
+msgid "unsupported wide integer operation"
msgstr ""
-#: ch/expr.c:2422
+#: expr.c:6669
#, c-format
-msgid "invalid %s"
+msgid "prior parameter's size depends on `%s'"
+msgstr "föregående parameterns storlek beror på \"%s\""
+
+#: expr.c:7005
+msgid "returned value in block_exit_expr"
msgstr ""
-#: ch/expr.c:2437
-#, c-format
-msgid "%s parameter %d must be a location"
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+#, fuzzy
+msgid "cannot take the address of an unaligned member"
+msgstr "Kan inte ta adressen till \"this\", som är ett rvalue-uttryck"
+
+#: final.c:1342
+msgid "negative insn length"
msgstr ""
-#: ch/expr.c:2445
-#, c-format
-msgid "%s parameter %d is READ-only"
+#: final.c:2793
+msgid "could not split insn"
msgstr ""
-#: ch/expr.c:2488
-#, c-format
-msgid "LOC actual parameter %d is a non-referable location"
+#: final.c:3141
+#, fuzzy
+msgid "invalid `asm': "
+msgstr "ogiltig \"asm\": %s"
+
+#: final.c:3328
+msgid "nested assembly dialect alternatives"
msgstr ""
-#: ch/expr.c:2494
-#, c-format
-msgid "mode mismatch in parameter %d"
+#: final.c:3345 final.c:3357
+msgid "unterminated assembly dialect alternative"
msgstr ""
-#: ch/expr.c:2518
-#, c-format
-msgid "too many arguments to procedure `%s'"
-msgstr "för många argument till proceduren \"%s\""
+#: final.c:3401
+#, fuzzy, c-format
+msgid "operand number missing after %%-letter"
+msgstr "Nummer saknas efter %s"
-#: ch/expr.c:2521
-msgid "too many arguments to procedure"
-msgstr "för många argument till procedur"
+#: final.c:3404 final.c:3443
+msgid "operand number out of range"
+msgstr ""
-#: ch/expr.c:2527
+#: final.c:3462
#, c-format
-msgid "too few arguments to procedure `%s'"
-msgstr "för få argument till proceduren \"%s\""
+msgid "invalid %%-code"
+msgstr "ogiltig %%-kod"
-#: ch/expr.c:2530
-msgid "too few arguments to procedure"
-msgstr "för få argument till procedur"
+#: final.c:3493
+#, c-format
+msgid "`%%l' operand isn't a label"
+msgstr ""
-#: ch/expr.c:2596
-msgid "syntax error (integer used as function)"
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
+msgid "floating constant misused"
msgstr ""
-#: ch/expr.c:2616
-msgid "syntax error - missing operator, comma, or '('?"
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
+msgid "invalid expression as operand"
msgstr ""
-#: ch/expr.c:2977
-#, c-format
-msgid "unimplemented builtin function `%s'"
+#: flow.c:352
+msgid "function might be possible candidate for attribute `noreturn'"
+msgstr "funktionen är en möjlig kandidat för attributet \"noreturn\""
+
+#: flow.c:357
+msgid "`noreturn' function does return"
+msgstr "\"noreturn\"-funktion returnerar ändå"
+
+#: flow.c:378
+msgid "control reaches end of non-void function"
+msgstr "Programflödet når slutet på en icke-void-funktion"
+
+#: flow.c:1642
+msgid "Attempt to delete prologue/epilogue insn:"
msgstr ""
-#: ch/expr.c:2981
+#: fold-const.c:2546 fold-const.c:2559
+#, fuzzy, c-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr "jämförelsen är alltid sann på grund av begränsat intervall för datatypen"
+
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
-msgid "internal error - bad builtin function `%s'"
-msgstr ""
+msgid "comparison is always %d"
+msgstr "jämförelsen är alltid %d"
-#: ch/expr.c:2995
-msgid "empty expression in string index"
+#: fold-const.c:3901
+msgid "`or' of unmatched not-equal tests is always 1"
msgstr ""
-#: ch/expr.c:3000
-msgid "only one expression allowed in string index"
+#: fold-const.c:3906
+msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr ""
-#: ch/expr.c:3017
-msgid "invalid: primval ( untyped_exprlist )"
-msgstr ""
+#: function.c:884 varasm.c:1503
+#, c-format
+msgid "size of variable `%s' is too large"
+msgstr "storleken på variabel \"%s\" är för stor"
-#: ch/expr.c:3081 ch/expr.c:3095
-msgid "operand is variable-size bitstring/power-set"
+#: function.c:3772
+msgid "impossible constraint in `asm'"
msgstr ""
-#: ch/expr.c:3245
+#: function.c:5527
#, c-format
-msgid "tree code `%s' unhandled in build_compare_set_expr"
+msgid "`%s' might be used uninitialized in this function"
msgstr ""
-#: ch/expr.c:3410
-msgid "incompatible modes in concat expression"
+#: function.c:5534
+#, c-format
+msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: ch/expr.c:3459
-msgid "Invalid operation on array of chars"
+#: function.c:5553
+#, c-format
+msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr ""
-#: ch/expr.c:3504
-msgid "comparison of variant structures is unsafe"
+#: function.c:6420
+msgid "function returns an aggregate"
msgstr ""
-#: ch/expr.c:3511
-msgid "compare with variant records"
+#: function.c:6925
+#, c-format
+msgid "unused parameter `%s'"
+msgstr "oanvänd parameter \"%s\""
+
+#: gcc.c:1107
+#, fuzzy, c-format
+msgid "ambiguous abbreviation %s"
+msgstr "Tvetydig förkortning %s"
+
+#: gcc.c:1134
+#, fuzzy, c-format
+msgid "incomplete `%s' option"
+msgstr "Inkomplett flagga \"%s\""
+
+#: gcc.c:1145
+#, fuzzy, c-format
+msgid "missing argument to `%s' option"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: gcc.c:1158
+#, fuzzy, c-format
+msgid "extraneous argument to `%s' option"
+msgstr "Saknar argument till flaggan \"%s\""
+
+#: gcc.c:1486
+msgid "Using built-in specs.\n"
msgstr ""
-#: ch/expr.c:3688 ch/expr.c:3924
+#: gcc.c:1667
#, c-format
-msgid "incompatible operands to %s"
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
msgstr ""
-#: ch/expr.c:3740
-msgid "relational operator not allowed for this mode"
+#: gcc.c:1774
+#, c-format
+msgid "Reading specs from %s\n"
msgstr ""
-#: ch/expr.c:3794
+#: gcc.c:1872 gcc.c:1891
#, c-format
-msgid "Cannot use %s operator on PROC mode variable"
+msgid "specs %%include syntax malformed after %ld characters"
msgstr ""
-#: ch/expr.c:3800
+#: gcc.c:1899
+#, fuzzy, c-format
+msgid "could not find specs file %s\n"
+msgstr "Kunde inte öppna källkodsfil %s.\n"
+
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
-msgid "invalid left operand of %s"
+msgid "specs %%rename syntax malformed after %ld characters"
msgstr ""
-#: ch/expr.c:3805 ch/expr.c:4357
+#: gcc.c:1951
#, c-format
-msgid "invalid right operand of %s"
+msgid "specs %s spec was not found to be renamed"
msgstr ""
-#: ch/expr.c:3819
-msgid "repetition expression must be constant"
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
msgstr ""
-#: ch/expr.c:3829
-msgid "left argument to MOD/REM operator must be integral"
+#: gcc.c:1963
+#, c-format
+msgid "rename spec %s to %s\n"
msgstr ""
-#: ch/expr.c:3834
-msgid "right argument to MOD/REM operator must be integral"
+#: gcc.c:1965
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
msgstr ""
-#: ch/expr.c:3891
-msgid "right operand of IN is not a powerset"
+#: gcc.c:1978
+#, c-format
+msgid "specs unknown %% command after %ld characters"
msgstr ""
-#: ch/expr.c:3896
-msgid "left operand of IN incompatible with right operand"
+#: gcc.c:1989 gcc.c:2002
+#, c-format
+msgid "specs file malformed after %ld characters"
msgstr ""
-#: ch/expr.c:3951
-msgid "division by zero"
+#: gcc.c:2056
+msgid "spec file has no spec for linking"
+msgstr "specfilen har ingen spec för länkning"
+
+#: gcc.c:2554
+msgid "-pipe not supported"
+msgstr "-pipe stöds inte"
+
+#: gcc.c:2609
+msgid ""
+"\n"
+"Go ahead? (y or n) "
msgstr ""
+"\n"
+"Fortsätta? (y eller n) "
-#: ch/expr.c:3987
-msgid "-> operator not allow in constant expression"
+#: gcc.c:2735
+#, c-format
+msgid ""
+"Internal error: %s (program %s)\n"
+"Please submit a full bug report.\n"
+"See %s for instructions."
msgstr ""
+"Internt fel: %s (program %s)\n"
+"Var vänlig och skicka in en felrapport.\n"
+"Se %s för instruktioner."
+
+#: gcc.c:2753
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr "# %s %.2f %.2f\n"
+
+#: gcc.c:2883
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Användning: %s [flaggor] fil...\n"
-#: ch/expr.c:4000
-msgid "taking the address of a string literal is non-standard"
+#: gcc.c:2884
+msgid "Options:\n"
+msgstr "Flaggor:\n"
+
+#: gcc.c:2886
+msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+msgstr " -pass-exit-codes Avsluta med högsta felkoden från någon av faserna\n"
+
+#: gcc.c:2887
+msgid " --help Display this information\n"
+msgstr " --help Visa den här informatationen\n"
+
+#: gcc.c:2888
+msgid " --target-help Display target specific command line options\n"
+msgstr " --target-help Visa specifika kommandoradsflaggor för mål\n"
+
+#: gcc.c:2890
+msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+msgstr " (Använd '-v --help' för att visa kommandoradsflaggor för barnprocesser)\n"
+
+#: gcc.c:2891
+msgid " -dumpspecs Display all of the built in spec strings\n"
+msgstr " -dumpspecs Visa de inbyggda spec-strängarna\n"
+
+#: gcc.c:2892
+msgid " -dumpversion Display the version of the compiler\n"
+msgstr " -dumpversion Visa kompilatorns version\n"
+
+#: gcc.c:2893
+msgid " -dumpmachine Display the compiler's target processor\n"
+msgstr " -dumpmachine Visa kompilatorns målprocessor\n"
+
+#: gcc.c:2894
+msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+msgstr " -print-search-dirs Visa katalogerna i kompilatorns sökväg\n"
+
+#: gcc.c:2895
+msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+msgstr " -print-libgcc-file-name Visa namnet på kompilatorns medföljande bibliotek\n"
+
+#: gcc.c:2896
+msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+msgstr " -print-file-name=<bib> Visa hela sökvägen till länkbibliotek <bib>\n"
+
+#: gcc.c:2897
+msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+msgstr " -print-prog-name=<prog> Visa fulla sökvägen till kompilatorkomponenten <prog>\n"
+
+#: gcc.c:2898
+msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+msgstr " -print-multi-directory Visa rotkatalogen för olika versioner av libgcc\n"
+
+#: gcc.c:2899
+msgid ""
+" -print-multi-lib Display the mapping between command line options and\n"
+" multiple library search directories\n"
msgstr ""
+" -print-multi-lib Visa mappningen mellan kommandoradsflaggor och\n"
+" multipla biblioteks sökkataloger\n"
+
+#: gcc.c:2902
+#, fuzzy
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-directory Visa rotkatalogen för olika versioner av libgcc\n"
+
+#: gcc.c:2903
+msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+msgstr " -Wa,<flaggor> Skicka kommaseparerade <flaggor> till assembleraren\n"
+
+#: gcc.c:2904
+msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+msgstr " -Wp,<flaggor> Skicka kommaseparerade <flaggor> till preprocessorn\n"
+
+#: gcc.c:2905
+msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+msgstr " -Wl,<flaggor> Skicka kommaseparerade <flaggor> till länkaren\n"
+
+#: gcc.c:2906
+msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
+
+#: gcc.c:2907
+msgid " -save-temps Do not delete intermediate files\n"
+msgstr " -save-temps Radera inte temporära filer\n"
+
+#: gcc.c:2908
+msgid " -pipe Use pipes rather than intermediate files\n"
+msgstr " -pipe Använd rör istället för temporära filer\n"
+
+#: gcc.c:2909
+msgid " -time Time the execution of each subprocess\n"
+msgstr " -time Mät tiden det tar att exekvera varje barnprocess\n"
+
+#: gcc.c:2910
+#, fuzzy
+msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+msgstr " -specs=<fil> Använd innehållet i <fil> istället för inbyggda spec\n"
+
+#: gcc.c:2911
+msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+msgstr " -std=<standard> Antag att källkodsfilerna är för <standard>\n"
+
+#: gcc.c:2912
+msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+msgstr " -B <katalog> Lägg till <katalog> till kompilatorns sökvägar\n"
+
+#: gcc.c:2913
+msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+msgstr " -b <maskin> Kör gcc för mål <maskin>, om det är installerat\n"
+
+#: gcc.c:2914
+msgid " -V <version> Run gcc version number <version>, if installed\n"
+msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
+
+#: gcc.c:2915
+msgid " -v Display the programs invoked by the compiler\n"
+msgstr " -v Visa vilka program som körs av kompilatorn\n"
-#: ch/expr.c:4002
-msgid "taking the address of a function is non-standard"
+#: gcc.c:2916
+msgid " -### Like -v but options quoted and commands not executed\n"
msgstr ""
-#: ch/expr.c:4005
-msgid "ADDR requires a LOCATION argument"
+#: gcc.c:2917
+msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr ""
+" -E Preprocessa bara; kompilera, assemblera och\n"
+" länka inte\n"
+
+#: gcc.c:2918
+msgid " -S Compile only; do not assemble or link\n"
+msgstr " -S Kompilera bara; assemblera och länka inte\n"
+
+#: gcc.c:2919
+msgid " -c Compile and assemble, but do not link\n"
+msgstr " -c Kompilera och assemblera, men länka inte\n"
+
+#: gcc.c:2920
+msgid " -o <file> Place the output into <file>\n"
+msgstr " -o <fil> Placera utdata i <fil>\n"
-#: ch/expr.c:4035
-msgid "-> expression is not addressable"
+#: gcc.c:2921
+#, fuzzy
+msgid ""
+" -x <language> Specify the language of the following input files\n"
+" Permissible languages include: c c++ assembler none\n"
+" 'none' means revert to the default behavior of\n"
+" guessing the language based on the file's extension\n"
msgstr ""
+" -x <språk> Specificera språk för de följande källkodsfilerna\n"
+" Tillåtna språk är bland annat: c c++ assembler none\n"
+" 'none' innebär att man använder standardmetoden,\n"
+" att man gissar språk beroende på filändelse\n"
-#: ch/expr.c:4062
-msgid "ADDR parameter must be a LOCATION"
+#: gcc.c:2928
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s. In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
msgstr ""
+"\n"
+"Flaggor som börjar med -g, -f, -m, -O, -W eller --param skickas automatiskt\n"
+"vidare till de barnprocesser som startas av %s. För att skicka med andra\n"
+"flaggor till dessa processer måste flaggan -W<bokstav> användas.\n"
+
+#: gcc.c:3063
+#, fuzzy, c-format
+msgid "`-%c' option must have argument"
+msgstr "\"%s\" tar bara noll eller två argument"
-#: ch/expr.c:4071
-msgid "possible internal error in build_chill_arrow_expr"
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
msgstr ""
-#: ch/expr.c:4076
+#. translate_options () has turned --version into -fversion.
+#: gcc.c:3262
#, c-format
-msgid "%s is not addressable"
+msgid "%s (GCC) %s\n"
msgstr ""
-#: ch/expr.c:4175
-msgid "repetition count is not an integer constant"
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
msgstr ""
-#: ch/expr.c:4183
-msgid "repetition count < 0"
+#: gcc.c:3265 gcov.c:364
+msgid ""
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
msgstr ""
-#: ch/expr.c:4188
-msgid "repetition value not constant"
+#: gcc.c:3366
+msgid "argument to `-Xlinker' is missing"
+msgstr "argument till \"-Xlinker\" saknas"
+
+#: gcc.c:3374
+#, fuzzy
+msgid "argument to `-l' is missing"
+msgstr "argument till \"-x\" saknas"
+
+#: gcc.c:3391
+msgid "argument to `-specs' is missing"
+msgstr "argument till \"-specs\" saknas"
+
+#: gcc.c:3406
+msgid "argument to `-specs=' is missing"
+msgstr "argument till \"-specs=\" saknas"
+
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
msgstr ""
-#: ch/expr.c:4200
-msgid "bitstring repetition of non-constant boolean"
+#: gcc.c:3445
+msgid "argument to `-B' is missing"
+msgstr "argument till \"-B\" saknas"
+
+#: gcc.c:3618
+msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr ""
-#: ch/expr.c:4223
-msgid "string repetition operand is non-constant bitstring"
+#: gcc.c:3791
+#, fuzzy
+msgid "warning: -pipe ignored because -save-temps specified"
+msgstr "Varning: -pipe ignorerad eftersom -save-temps angiven"
+
+#: gcc.c:3795
+#, fuzzy
+msgid "warning: -pipe ignored because -time specified"
+msgstr "Varning: -pipe ignorerad eftersom -time angiven"
+
+#: gcc.c:3807
+msgid "argument to `-x' is missing"
+msgstr "argument till \"-x\" saknas"
+
+#: gcc.c:3835
+#, c-format
+msgid "argument to `-%s' is missing"
+msgstr "argument till \"-%s\" saknas"
+
+#: gcc.c:3896
+#, c-format
+msgid "warning: `-x %s' after last input file has no effect"
msgstr ""
-#: ch/expr.c:4283
-msgid "non-char, non-bit string repetition"
+#: gcc.c:4241
+msgid "invalid specification! Bug in cc"
msgstr ""
-#: ch/expr.c:4311
+#: gcc.c:4395
#, c-format
-msgid "invalid operand of %s"
-msgstr ""
+msgid "%s\n"
+msgstr "%s\n"
-#: ch/expr.c:4322
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'. ie there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.c:4955
#, c-format
-msgid "right operand of %s is not array of boolean"
+msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr ""
-#: ch/expr.c:4335
+#: gcc.c:4964
#, c-format
-msgid "%s operator applied to boolean variable"
+msgid "warning: use of obsolete %%[ operator in specs"
msgstr ""
-#: ch/expr.c:4406
-msgid "non-boolean mode in conditional expression"
+#: gcc.c:4982
+#, c-format
+msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr ""
-#: ch/grant.c:1977
-msgid "decode_constant: invalid component_ref"
-msgstr ""
+#: gcc.c:5107
+#, fuzzy, c-format
+msgid "spec failure: unrecognized spec option '%c'"
+msgstr "ej igenkänd flagga `-%s'"
+
+#: gcc.c:5188
+#, fuzzy, c-format
+msgid "unknown spec function `%s'"
+msgstr "I funktion `%s':"
-#: ch/grant.c:1985
-msgid "decode_constant: mode and value mismatch"
+#: gcc.c:5207
+#, fuzzy, c-format
+msgid "error in args to spec function `%s'"
+msgstr "för många argument till funktionen \"%s\""
+
+#: gcc.c:5256
+msgid "malformed spec function name"
msgstr ""
-#: ch/grant.c:1988
-msgid "decode_constant: cannot decode this mode"
+#. )
+#: gcc.c:5259
+#, fuzzy
+msgid "no arguments for spec function"
+msgstr "för få argument till funktion"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
msgstr ""
-#: ch/grant.c:2213
-msgid "decode_constant_selective: mode and value mismatch"
+#: gcc.c:5386
+msgid "mismatched braces in specs"
msgstr ""
-#: ch/grant.c:2216
-msgid "decode_constant_selective: cannot decode this mode"
+#: gcc.c:6081
+#, c-format
+msgid "unrecognized option `-%s'"
+msgstr "ej igenkänd flagga `-%s'"
+
+#: gcc.c:6087
+#, c-format
+msgid "install: %s%s\n"
msgstr ""
-#: ch/grant.c:2651 ch/lex.c:217 ch/lex.c:2194 config/mips/mips.c:5801
-#: f/com.c:14549 graph.c:421 java/jcf-parse.c:929 java/jcf-parse.c:1065
-#: java/lex.c:1724 objc/objc-act.c:751 profile.c:906 profile.c:914
-#: toplev.c:1842 toplev.c:2226
+#: gcc.c:6088
#, c-format
-msgid "can't open %s"
-msgstr "kan inte öppna %s"
+msgid "programs: %s\n"
+msgstr "program: %s\n"
-#: ch/grant.c:2676 config/mips/mips.c:6127
+#: gcc.c:6089
#, c-format
-msgid "can't write to %s"
-msgstr "kan inte skriva till %s"
+msgid "libraries: %s\n"
+msgstr "bibliotek: %s\n"
-#: ch/grant.c:2763
-msgid "FORBID is not yet implemented"
+#: gcc.c:6146
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
msgstr ""
+"\n"
+"Instruktioner för bugrapportering, se:\n"
-#. this nerver should happen
-#: ch/grant.c:2824
+#: gcc.c:6162
#, c-format
-msgid "function \"really_grant_this\" called for `%s'."
+msgid "Configured with: %s\n"
msgstr ""
-#: ch/inout.c:1645
-msgid "non-integral text length"
+#: gcc.c:6176
+#, c-format
+msgid "Thread model: %s\n"
msgstr ""
-#: ch/inout.c:1650
-msgid "non-constant text length"
-msgstr ""
+#: gcc.c:6187
+#, c-format
+msgid "gcc version %s\n"
+msgstr "gcc version %s\n"
-#: ch/inout.c:1655
-msgid "text length must be greater then 0"
+#: gcc.c:6189
+#, c-format
+msgid "gcc driver version %s executing gcc version %s\n"
msgstr ""
-#: ch/inout.c:1755
+#: gcc.c:6197
+#, fuzzy
+msgid "no input files"
+msgstr "Inga indatafiler"
+
+#: gcc.c:6235
+#, c-format
+msgid "%s: %s compiler not installed on this system"
+msgstr "%s: kompilatorn %s är inte installerad på detta system"
+
+#: gcc.c:6310
#, c-format
-msgid "argument %d of %s must be of mode ASSOCIATION"
+msgid "%s: linker input file unused because linking not done"
msgstr ""
-#: ch/inout.c:1760 ch/inout.c:2146 ch/inout.c:2516 ch/inout.c:2751
+#: gcc.c:6353
#, c-format
-msgid "argument %d of %s must be a location"
+msgid "language %s not recognized"
+msgstr "språk %s känns inte igen"
+
+#: gcc.c:6456
+#, fuzzy
+msgid "internal gcc abort"
+msgstr "Intern gcc-halt (abort)."
+
+#: gcov.c:325
+msgid "Internal gcov abort.\n"
+msgstr ""
+
+#: gcov.c:338
+msgid ""
+"Usage: gcov [OPTION]... SOURCEFILE\n"
+"\n"
msgstr ""
-#: ch/inout.c:1795
-msgid "argument 2 of ASSOCIATE must not be an empty string"
+#: gcov.c:339
+#, fuzzy
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr "inte tillräcklig typinformation"
+
+#: gcov.c:340
+#, fuzzy
+msgid " -h, --help Print this help, then exit\n"
+msgstr " --help Visa den här informatationen\n"
+
+#: gcov.c:341
+#, fuzzy
+msgid " -v, --version Print version number, then exit\n"
+msgstr " -V <version> Kör gcc version <version>, om den är installerad\n"
+
+#: gcov.c:342
+msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr ""
-#: ch/inout.c:1811
-msgid "argument 2 to ASSOCIATE must be a string"
+#: gcov.c:343
+msgid ""
+" -c, --branch-counts Given counts of branches taken\n"
+" rather than percentages\n"
msgstr ""
-#: ch/inout.c:1850
-msgid "argument 3 to ASSOCIATE must be a string"
+#: gcov.c:345
+#, fuzzy
+msgid " -n, --no-output Do not create an output file\n"
+msgstr " -save-temps Radera inte temporära filer\n"
+
+#: gcov.c:346
+msgid ""
+" -l, --long-file-names Use long output file names for included\n"
+" source files\n"
msgstr ""
-#: ch/inout.c:2031
-msgid "Too many arguments in call to MODIFY"
+#: gcov.c:348
+msgid " -f, --function-summaries Output summaries for each function\n"
msgstr ""
-#: ch/inout.c:2044
-msgid "argument 2 of MODIFY must not be an empty string"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
msgstr ""
-#: ch/inout.c:2060
-msgid "argument 2 to MODIFY must be a string"
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
msgstr ""
-#: ch/inout.c:2094
-msgid "argument 3 to MODIFY must be a string"
+#: gcov.c:351
+#, fuzzy, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
msgstr ""
+"\n"
+"Instruktioner för bugrapportering, se:\n"
-#: ch/inout.c:2141
+#: gcov.c:361
#, c-format
-msgid "argument %d of %s must be an ACCESS or TEXT mode"
+msgid "gcov (GCC) %s\n"
msgstr ""
-#: ch/inout.c:2355
-msgid "argument 4 of CONNECT must be of mode WHERE"
+#: gcov.c:362
+msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr ""
-#: ch/inout.c:2371
-msgid "index expression for ACCESS without index"
+#: gcov.c:500
+#, c-format
+msgid "Could not open basic block file %s.\n"
msgstr ""
-#: ch/inout.c:2376 ch/inout.c:2554 ch/inout.c:2636 ch/inout.c:4356
-#: ch/inout.c:4504
-msgid "incompatible index mode"
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
msgstr ""
-#: ch/inout.c:2476
-msgid "argument 3 to CONNECT must be of mode USAGE"
+#: gcov.c:524
+#, c-format
+msgid "Could not open data file %s.\n"
+msgstr "Kunde inte öppna datafil %s.\n"
+
+#: gcov.c:525
+msgid "Assuming that all execution counts are zero.\n"
msgstr ""
-#: ch/inout.c:2511
+#: gcov.c:534
#, c-format
-msgid "argument %d of %s must be of mode ACCESS"
+msgid "No executable code associated with file %s.\n"
msgstr ""
-#: ch/inout.c:2545
-msgid "Too few arguments in call to `readrecord'"
+#: gcov.c:1186
+#, fuzzy, c-format
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%6.2f%% av %d källkodsrader körda i fil %s\n"
+
+#: gcov.c:1191
+#, fuzzy, c-format
+msgid "No executable lines in %s %s\n"
+msgstr "Inga körbara källkodsrader i funktion %s\n"
+
+#: gcov.c:1198
+#, fuzzy, c-format
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%6.2f%% av %d hopp utförda i funktion %s\n"
+
+#: gcov.c:1203
+#, fuzzy, c-format
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%6.2f%% av %d hopp tagna minst en gång i funktion %s\n"
+
+#: gcov.c:1209
+#, fuzzy, c-format
+msgid "No branches in %s %s\n"
+msgstr "Inga hopp i fil %s\n"
+
+#: gcov.c:1211
+#, fuzzy, c-format
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%6.2f%% av %d anrop tagna i funktion %s\n"
+
+#: gcov.c:1216
+#, fuzzy, c-format
+msgid "No calls in %s %s\n"
+msgstr "Inga anrop i fil %s\n"
+
+#: gcov.c:1351
+#, c-format
+msgid "didn't use all bb entries of graph, function %s\n"
msgstr ""
-#: ch/inout.c:2569 ch/inout.c:2648
-msgid "incompatible record mode"
+#: gcov.c:1353
+#, c-format
+msgid "block_num = %ld, num_blocks = %d\n"
msgstr ""
-#: ch/inout.c:2574
-msgid "store location must not be READonly"
+#: gcov.c:1367
+#, c-format
+msgid "ERROR: unexpected line number %ld\n"
msgstr ""
-#: ch/inout.c:2616
-msgid "Too few arguments in call to `writerecord'"
+#: gcov.c:1383
+#, fuzzy, c-format
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "för många argument till funktionen \"%s\""
+
+#: gcov.c:1398
+#, fuzzy, c-format
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "Inga körbara källkodsrader i funktion %s\n"
+
+#: gcov.c:1470
+#, c-format
+msgid "Could not open source file %s.\n"
+msgstr "Kunde inte öppna källkodsfil %s.\n"
+
+#: gcov.c:1480
+#, fuzzy, c-format
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "aktuell fil är äldre än %s"
+
+#: gcov.c:1510
+#, c-format
+msgid "Unexpected EOF while reading source file %s.\n"
msgstr ""
-#: ch/inout.c:2643
-msgid "transfer to ACCESS without record mode"
+#: gcov.c:1532
+#, fuzzy, c-format
+msgid "call %2d never executed\n"
+msgstr "anrop %d aldrig utfört\n"
+
+#: gcov.c:1535
+#, c-format
+msgid "call %2d returns %s\n"
msgstr ""
-#: ch/inout.c:2746
+#: gcov.c:1543
+#, fuzzy, c-format
+msgid "branch %2d never executed\n"
+msgstr "anrop %d aldrig utfört\n"
+
+#: gcov.c:1546
+#, fuzzy, c-format
+msgid "branch %2d taken %s\n"
+msgstr "Inga hopp i fil %s\n"
+
+#: gcov.c:1610
+#, c-format
+msgid "Creating %s.\n"
+msgstr "Skapar %s.\n"
+
+#: gcov.c:1613
+#, fuzzy, c-format
+msgid "Error writing output file %s.\n"
+msgstr "fel vid skrivning till %s"
+
+#: gcov.c:1618
+#, c-format
+msgid "Could not open output file %s.\n"
+msgstr "Kunde inte öppna utdatafil %s.\n"
+
+#: gcse.c:763
#, c-format
-msgid "argument %d of %s must be of mode TEXT"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
msgstr ""
-#: ch/inout.c:2803
-msgid "TEXT doesn't have a location"
+#: gcse.c:775
+#, c-format
+msgid "GCSE disabled: %d basic blocks and %d registers"
msgstr ""
-#: ch/inout.c:2905
-msgid "incompatible index mode for SETETEXTACCESS"
+#: genautomata.c:1490
+#, c-format
+msgid "Name `%s' contains quotes"
msgstr ""
-#: ch/inout.c:2915
-msgid "incompatible record mode for SETTEXTACCESS"
+#: genautomata.c:1621
+#, c-format
+msgid "invalid string `%s' in define_cpu_unit"
msgstr ""
-#: ch/inout.c:2945
-msgid "parameter 2 must be a location"
+#: genautomata.c:1650
+#, c-format
+msgid "invalid string `%s' in define_query_cpu_unit"
msgstr ""
-#: ch/inout.c:2955
-msgid "incompatible modes in parameter 2"
+#: genautomata.c:1682 genautomata.c:1685
+#, c-format
+msgid "invalid string `%s' in define_bypass"
msgstr ""
-#: ch/inout.c:3062
-msgid "conditional expression not allowed in this context"
+#: genautomata.c:1720
+#, c-format
+msgid "invalid first string `%s' in exclusion_set"
msgstr ""
-#: ch/inout.c:3064
+#: genautomata.c:1724
#, c-format
-msgid "untyped expression as argument %d"
+msgid "invalid second string `%s' in exclusion_set"
msgstr ""
-#: ch/inout.c:3141 ch/inout.c:3187
+#: genautomata.c:1760
#, c-format
-msgid "Cannot process %d bits integer for READTEXT argument %d."
+msgid "invalid first string `%s' in presence_set"
msgstr ""
-#: ch/inout.c:3262
+#: genautomata.c:1764
#, c-format
-msgid "Cannot process %d bits integer WRITETEXT argument %d."
+msgid "invalid second string `%s' in presence_set"
msgstr ""
-#: ch/inout.c:3283 ch/inout.c:3338 ch/inout.c:3417 ch/inout.c:3483
-#: ch/inout.c:3534 ch/inout.c:3619 ch/inout.c:3654
+#: genautomata.c:1800
#, c-format
-msgid "argument %d is READonly"
+msgid "invalid first string `%s' in absence_set"
msgstr ""
-#: ch/inout.c:3290 ch/inout.c:3345 ch/inout.c:3424 ch/inout.c:3491
-#: ch/inout.c:3542 ch/inout.c:3627 ch/inout.c:3659
+#: genautomata.c:1804
#, c-format
-msgid "argument %d must be referable"
+msgid "invalid second string `%s' in absence_set"
msgstr ""
-#: ch/inout.c:3578
+#: genautomata.c:1837
#, c-format
-msgid "cannot process argument %d of WRITETEXT, unknown size"
+msgid "invalid string `%s' in define_automaton"
msgstr ""
-#. datatype is not yet implemented, issue a warning
-#: ch/inout.c:3725
+#: genautomata.c:1868
+#, fuzzy, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "Ogiltig flagga \"%s\""
+
+#: genautomata.c:1890
#, c-format
-msgid "cannot process mode of argument %d for %sTEXT."
+msgid "garbage after ) in reservation `%s'"
msgstr ""
-#: ch/inout.c:3868
-msgid "too few arguments for this format string"
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, fuzzy, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "omdeklaration av \"%s\""
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
msgstr ""
-#: ch/inout.c:3893 ch/inout.c:3902
+#: genautomata.c:2425
#, c-format
-msgid "type of argument %d invalid for conversion code at offset %d"
+msgid "unit `%s' in exclusion is not declared"
msgstr ""
-#: ch/inout.c:4012
-msgid "unmatched open paren"
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
msgstr ""
-#: ch/inout.c:4026 ch/inout.c:4221
+#: genautomata.c:2465
+#, fuzzy, c-format
+msgid "unit `%s' excludes itself"
+msgstr "storleken på \"%s\" är större än sin typ"
+
+#: genautomata.c:2473
#, c-format
-msgid "bad format specification character (offset %d)"
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
msgstr ""
-#: ch/inout.c:4039
+#: genautomata.c:2603 genautomata.c:2609
#, c-format
-msgid "repetition factor overflow (offset %d)"
+msgid "unit `%s' excludes and requires presence of `%s'"
msgstr ""
-#: ch/inout.c:4057 ch/inout.c:4064 ch/inout.c:4071
+#: genautomata.c:2623 genautomata.c:2629
#, c-format
-msgid "duplicate qualifier (offset %d)"
+msgid "unit `%s' requires absence and presence of `%s'"
msgstr ""
-#: ch/inout.c:4093
+#: genautomata.c:2692 genautomata.c:2695
+#, fuzzy, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "upprepad deklaration av klassmetod \"%s\"."
+
+#: genautomata.c:2711
#, c-format
-msgid "clause width overflow (offset %d)"
+msgid "define_insn_reservation `%s' has negative latency time"
msgstr ""
-#: ch/inout.c:4106
+#: genautomata.c:2717
#, c-format
-msgid "no fraction (offset %d)"
+msgid "`%s' is already used as insn reservation name"
msgstr ""
-#: ch/inout.c:4124
+#: genautomata.c:2723
#, c-format
-msgid "no fraction width (offset %d)"
+msgid "define_bypass `%s - %s' has negative latency time"
msgstr ""
-#: ch/inout.c:4131
+#: genautomata.c:2737
+#, fuzzy, c-format
+msgid "automaton `%s' is not declared"
+msgstr "\"%s\" är tidigare deklarerad här"
+
+#: genautomata.c:2747
#, c-format
-msgid "fraction width overflow (offset %d)"
+msgid "define_unit `%s' without automaton when one defined"
msgstr ""
-#: ch/inout.c:4142
+#: genautomata.c:2753
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "fält \"%s\" deklarerad som en funktion"
+
+#: genautomata.c:2762
+#, fuzzy, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "fält \"%s\" deklarerad som en funktion"
+
+#: genautomata.c:2772
+#, fuzzy, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "omdeklaration av \"%s\""
+
+#: genautomata.c:2775
+#, fuzzy, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "upprepad deklaration av klassmetod \"%s\"."
+
+#: genautomata.c:2790 genautomata.c:2793
+#, fuzzy, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "ingen tidigare deklaration av \"%s\""
+
+#: genautomata.c:2810 genautomata.c:2815
+#, fuzzy, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "Klass \"%s\" finns redan"
+
+#: genautomata.c:2820
+#, fuzzy, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "Klass \"%s\" finns redan"
+
+#: genautomata.c:2925 genautomata.c:2927
#, c-format
-msgid "no exponent (offset %d)"
+msgid "automaton `%s' is not used"
msgstr ""
-#: ch/inout.c:4160
+#: genautomata.c:2950
#, c-format
-msgid "no exponent width (offset %d)"
+msgid "undeclared unit or reservation `%s'"
msgstr ""
-#: ch/inout.c:4167
+#: genautomata.c:3028 genautomata.c:3030
+#, fuzzy, c-format
+msgid "unit `%s' is not used"
+msgstr "\"%s\" är definierad men inte använd"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, fuzzy, c-format
+msgid "reservation `%s' is not used"
+msgstr "omdeklaration av \"%s\""
+
+#: genautomata.c:3134
+#, fuzzy, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "omdefiniering av \"union %s\""
+
+#: genautomata.c:5333
#, c-format
-msgid "exponent width overflow (offset %d)"
+msgid "Units `%s' and `%s' should be in the same automaton"
msgstr ""
-#: ch/inout.c:4208
-msgid "internal error in check_format_string"
+#: genautomata.c:9441
+#, fuzzy
+msgid "-split has no argument."
+msgstr "inga argument"
+
+#: genautomata.c:9442
+#, fuzzy
+msgid "option `-split' has not been implemented yet\n"
+msgstr "Profilering är inte implementerat ännu."
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
msgstr ""
-#: ch/inout.c:4224
+#: genautomata.c:9498 genautomata.c:9501
#, c-format
-msgid "no padding character (offset %d)"
+msgid "Insn `%s' will never be issued"
msgstr ""
-#. too may arguments for format string
-#: ch/inout.c:4256
-msgid "too many arguments for this format string"
+#: genautomata.c:9649
+#, fuzzy
+msgid "Errors in DFA description"
+msgstr "ingen beskriving ännu"
+
+#: genautomata.c:9732
+#, fuzzy, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "fel vid skrivning till %s"
+
+#: genconditions.c:196
+#, fuzzy
+msgid "No input file name."
+msgstr "Inga indatafiler"
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
msgstr ""
-#: ch/inout.c:4354 ch/inout.c:4502
-msgid "missing index expression"
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
+#, c-format
+msgid "can't open %s"
+msgstr "kan inte öppna %s"
+
+#: haifa-sched.c:196
+#, c-format
+msgid "fix_sched_param: unknown param: %s"
+msgstr "fix_sched_param: okänd param: %s"
+
+#: integrate.c:174
+msgid "function cannot be inline"
+msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
+
+#: integrate.c:178
+msgid "varargs function cannot be inline"
msgstr ""
-#: ch/inout.c:4361
-msgid "Too few arguments in call to `writetext'"
+#: integrate.c:181
+msgid "function using alloca cannot be inline"
msgstr ""
-#: ch/inout.c:4374
-msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location"
+#: integrate.c:184
+msgid "function using setjmp cannot be inline"
msgstr ""
-#: ch/inout.c:4397
-msgid "`format string' for WRITETEXT must be a CHARACTER string"
+#: integrate.c:187
+msgid "function uses __builtin_eh_return"
+msgstr "funktion använder __builtin_eh_return"
+
+#: integrate.c:190
+msgid "function with nested functions cannot be inline"
msgstr ""
-#: ch/inout.c:4509
-msgid "Too few arguments in call to `readtext'"
+#: integrate.c:194
+msgid "function with label addresses used in initializers cannot inline"
msgstr ""
-#: ch/inout.c:4522
-msgid ""
-"argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] "
-"expression"
+#: integrate.c:201 integrate.c:245
+msgid "function too large to be inline"
msgstr ""
-#: ch/inout.c:4543
-msgid "`format string' for READTEXT must be a CHARACTER string"
+#: integrate.c:211
+msgid "no prototype, and parameter address used; cannot be inline"
msgstr ""
-#: ch/lang.c:103
-msgid "non-constant expression"
+#: integrate.c:218 integrate.c:263
+msgid "inline functions not supported for this return value type"
msgstr ""
-#: ch/lang.c:189
-msgid "Ignoring case upon input and"
+#: integrate.c:223
+msgid "function with varying-size return value cannot be inline"
msgstr ""
-#: ch/lang.c:190
-msgid "making special words uppercase wouldn't work."
+#: integrate.c:230
+msgid "function with varying-size parameter cannot be inline"
msgstr ""
-#: ch/lang.c:201
-msgid "Making special words uppercase and"
+#: integrate.c:233
+msgid "function with transparent unit parameter cannot be inline"
msgstr ""
-#: ch/lang.c:202
-msgid " ignoring case upon input wouldn't work."
+#: integrate.c:252
+msgid "function with computed jump cannot inline"
msgstr ""
-#: ch/lang.c:274 java/typeck.c:178
-msgid "internal error - use of undefined type"
+#: integrate.c:256
+msgid "function with nonlocal goto cannot be inline"
msgstr ""
-#: ch/lex.c:507
-msgid "invalid C'xx' "
+#: integrate.c:270
+msgid "function with target specific attribute(s) cannot be inlined"
msgstr ""
-#: ch/lex.c:612 config/mips/mips.c:6133 java/jcf-parse.c:605
-#: java/jcf-write.c:3341
+#: line-map.c:198
#, c-format
-msgid "can't close %s"
-msgstr "kan inte stänga %s"
+msgid "In file included from %s:%u"
+msgstr "I fil inkluderad från %s:%u"
-#: ch/lex.c:716
-msgid "malformed exponent part of floating-point literal"
+#. Translators note: this message is used in conjunction
+#. with "In file included from %s:%ld" and some other
+#. tricks. We want something like this:
+#.
+#. | In file included from sys/select.h:123,
+#. | from sys/types.h:234,
+#. | from userfile.c:31:
+#. | bits/select.h:45: <error message here>
+#.
+#. with all the "from"s lined up.
+#. The trailing comma is at the beginning of this message,
+#. and the trailing colon is not translated.
+#: line-map.c:216
+#, c-format
+msgid ""
+",\n"
+" from %s:%u"
msgstr ""
+",\n"
+" från %s:%u"
-#: ch/lex.c:733
-msgid "real number exceeds range of REAL"
+#. If we didn't find this parameter, issue an error message.
+#: params.c:80
+#, c-format
+msgid "invalid parameter `%s'"
msgstr ""
-#: ch/lex.c:752 ch/lex.c:779
-msgid "end-of-file in '<>' directive"
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
msgstr ""
-#: ch/lex.c:785
-msgid "unrecognized compiler directive"
+#: profile.c:400
+msgid ".da file corrupted"
msgstr ""
-#: ch/lex.c:793 ch/lex.c:839
+#: profile.c:634
#, c-format
-msgid "unrecognized compiler directive `%s'"
+msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr ""
-#: ch/lex.c:1000
-msgid "unterminated control sequence"
+#: profile.c:1226
+#, c-format
+msgid "file %s not found, execution counts assumed to be zero"
msgstr ""
-#: ch/lex.c:1015 ch/lex.c:1051
-msgid "invalid integer literal in control sequence"
-msgstr ""
+#: protoize.c:542
+#, c-format
+msgid "%s: internal abort\n"
+msgstr "%s: intern abort\n"
-#: ch/lex.c:1026 ch/lex.c:1034
-msgid "control sequence overflow"
+#: protoize.c:633
+#, c-format
+msgid "%s: error writing file `%s': %s\n"
msgstr ""
-#: ch/lex.c:1028 ch/lex.c:1036
-msgid "invalid control sequence"
-msgstr ""
+#: protoize.c:678
+#, c-format
+msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+msgstr "%s: användning '%s [ -VqfnkN ] [ -i <isträng> ] [ filnamn ... ]'\n"
-#: ch/lex.c:1116
-msgid "invalid base in read control sequence"
-msgstr ""
+#: protoize.c:681
+#, c-format
+msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+msgstr "%s: användning '%s [ -VqfnkNlgC ] [ -B <katalognamn> ] [ filnamn ... ]'\n"
-#: ch/lex.c:1123
-msgid "invalid digit in control sequence"
-msgstr ""
+#: protoize.c:788
+#, c-format
+msgid "%s: warning: no read access for file `%s'\n"
+msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
-#: ch/lex.c:1150
-msgid "unterminated string literal"
-msgstr ""
+#: protoize.c:796
+#, c-format
+msgid "%s: warning: no write access for file `%s'\n"
+msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
-#: ch/lex.c:1253 ch/lex.c:1339
+#: protoize.c:804
#, c-format
-msgid "invalid number format `%s'"
+msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr ""
-#: ch/lex.c:1271
-msgid "integer literal too big"
+#. Catch cases like /.. where we try to backup to a
+#. point above the absolute root of the logical file
+#. system.
+#: protoize.c:1222
+#, c-format
+msgid "%s: invalid file name: %s\n"
msgstr ""
-# fixme: spola tillbaka är inte perfekt
-#: ch/lex.c:1400
+#: protoize.c:1374
#, c-format
-msgid "can't find %s"
-msgstr "kan inte hitta %s"
+msgid "%s: %s: can't get status: %s\n"
+msgstr "%s: %s: kan inte få status: %s\n"
-#: ch/lex.c:1426
-msgid "USE_SEIZE_FILE directive must be followed by string"
+#: protoize.c:1395
+#, c-format
+msgid ""
+"\n"
+"%s: fatal error: aux info file corrupted at line %d\n"
msgstr ""
-#: ch/lex.c:1698 cpplib.c:920 f/lex.c:1240
-msgid "invalid #ident"
-msgstr "ogiltig #indent"
-
-#: ch/lex.c:1716 f/lex.c:1257
-msgid "undefined or invalid # directive"
+#: protoize.c:1731
+#, c-format
+msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr ""
-#: ch/lex.c:1770 ch/lex.c:1779 f/lex.c:1313
-msgid "invalid #line"
-msgstr "ogiltig #line"
+#: protoize.c:1989
+#, c-format
+msgid "%s: compiling `%s'\n"
+msgstr "%s: kompilerar `%s'\n"
-#: ch/lex.c:1848 f/lex.c:870
-msgid "#-lines for entering and leaving files don't match"
-msgstr ""
+#: protoize.c:2012
+#, c-format
+msgid "%s: wait: %s\n"
+msgstr "%s: vänta: %s\n"
-#: ch/lex.c:1873 f/lex.c:1423
-msgid "invalid #-line"
-msgstr "ogiltig #-rad"
+#: protoize.c:2017
+#, c-format
+msgid "%s: subprocess got fatal signal %d\n"
+msgstr "%s: subprocess fick dödlig signal %d\n"
+
+#: protoize.c:2025
+#, c-format
+msgid "%s: %s exited with status %d\n"
+msgstr "%s: %s avslutade med status %d\n"
-#: ch/lex.c:2003
-msgid "missing `=' in compiler directive"
+#: protoize.c:2077
+#, c-format
+msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr ""
-#: ch/lex.c:2045 ch/lex.c:2055 ch/lex.c:2096
-msgid "invalid value follows `=' in compiler directive"
+#: protoize.c:2086 protoize.c:2115
+#, c-format
+msgid "%s: can't read aux info file `%s': %s\n"
msgstr ""
-#: ch/lex.c:2066
+#: protoize.c:2131 protoize.c:2159
#, c-format
-msgid "invalid `%c' character in name"
+msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr ""
-#: ch/lex.c:2079
+#: protoize.c:2187
#, c-format
-msgid "`%s' not integer constant synonym "
+msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr ""
-#: ch/lex.c:2102
-msgid "value out of range in compiler directive"
+#: protoize.c:2205
+#, c-format
+msgid "%s: error reading aux info file `%s': %s\n"
msgstr ""
-#: ch/lex.c:2219 java/jcf-parse.c:601
+#: protoize.c:2218
#, c-format
-msgid "can't reopen %s"
+msgid "%s: error closing aux info file `%s': %s\n"
msgstr ""
-#: ch/lex.c:2230
-msgid "no modules seen"
+#: protoize.c:2234
+#, c-format
+msgid "%s: can't delete aux info file `%s': %s\n"
msgstr ""
-#: ch/loop.c:480
-msgid "modeless tuple not allowed in this context"
+#: protoize.c:2316 protoize.c:4318
+#, c-format
+msgid "%s: can't delete file `%s': %s\n"
+msgstr "%s: kan inte radera fil \"%s\": %s\n"
+
+#: protoize.c:2395
+#, c-format
+msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+msgstr "%s: varning: kan inte döpa om fil \"%s\" till \"%s\": %s\n"
+
+#: protoize.c:2520
+#, c-format
+msgid "%s: conflicting extern definitions of '%s'\n"
msgstr ""
-#: ch/loop.c:482
-msgid "IN expression does not have a mode"
+#: protoize.c:2524
+#, c-format
+msgid "%s: declarations of '%s' will not be converted\n"
msgstr ""
-#: ch/loop.c:489
-msgid "location enumeration for BOOLS"
+#: protoize.c:2526
+#, c-format
+msgid "%s: conflict list for '%s' follows:\n"
msgstr ""
-#: ch/loop.c:517
-msgid "location enumeration for bit-packed arrays"
+#: protoize.c:2559
+#, c-format
+msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr ""
-#: ch/loop.c:526 ch/nloop.c:481
-msgid "Loop's IN expression is not a composite object"
+#: protoize.c:2599
+#, c-format
+msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr ""
-#: ch/loop.c:541 ch/nloop.c:498
-msgid "start expr must have discrete mode"
+#: protoize.c:2605
+#, c-format
+msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr ""
-#: ch/loop.c:547 ch/nloop.c:504
-msgid "DO FOR start expression is a numbered SET"
+#: protoize.c:2636
+#, c-format
+msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr ""
-#: ch/loop.c:555 ch/nloop.c:510
-msgid "TO expression is a numbered SET"
+#: protoize.c:2642
+#, c-format
+msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr ""
-#: ch/loop.c:560 ch/nloop.c:525
-msgid "TO expr must have discrete mode"
+#: protoize.c:2815 protoize.c:2818
+#, c-format
+msgid "%s: %d: warning: source too confusing\n"
msgstr ""
-#: ch/loop.c:565 ch/nloop.c:531
-msgid "start expr and TO expr must be compatible"
+#: protoize.c:3024
+#, c-format
+msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr ""
-#: ch/loop.c:574 ch/nloop.c:546
-msgid "BY expr must have discrete mode"
+#: protoize.c:3039
+#, c-format
+msgid "%s: declaration of function `%s' not converted\n"
msgstr ""
-#: ch/loop.c:579 ch/nloop.c:552
-msgid "start expr and BY expr must be compatible"
+#: protoize.c:3162
+#, c-format
+msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr ""
-#: ch/loop.c:595 ch/nloop.c:765
-msgid "loop identifier undeclared"
+#: protoize.c:3183
+#, c-format
+msgid ""
+"\n"
+"%s: warning: too few parameter lists in declaration of `%s'\n"
msgstr ""
-#: ch/loop.c:606
-msgid "loop variable incompatible with start expression"
+#: protoize.c:3281
+#, c-format
+msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr ""
-#: ch/loop.c:633 ch/nloop.c:564
-msgid "body of DO FOR will never execute"
+#: protoize.c:3459
+#, c-format
+msgid "%s: local declaration for function `%s' not inserted\n"
msgstr ""
-#: ch/loop.c:648 ch/nloop.c:585
-msgid "BY expression is negative or zero"
+#: protoize.c:3486
+#, c-format
+msgid ""
+"\n"
+"%s: %d: warning: can't add declaration of `%s' into macro call\n"
msgstr ""
-#: ch/loop.c:847 ch/nloop.c:817 ch/nloop.c:867
-msgid "Can't iterate through array of BOOL"
+#: protoize.c:3560
+#, c-format
+msgid "%s: global declarations for file `%s' not inserted\n"
msgstr ""
-#: ch/parse.c:159
+#: protoize.c:3651 protoize.c:3681
#, c-format
-msgid "there was no start label to match the end label '%s'"
+msgid "%s: definition of function `%s' not converted\n"
msgstr ""
-#: ch/parse.c:162
+#: protoize.c:3670
#, c-format
-msgid "start label '%s' does not match end label '%s'"
+msgid "%s: %d: warning: definition of %s not converted\n"
msgstr ""
-#: ch/parse.c:192
+#: protoize.c:4000
#, c-format
-msgid "`%s' not declared"
-msgstr "\"%s\" är inte deklarerad"
+msgid "%s: found definition of `%s' at %s(%d)\n"
+msgstr ""
-#: ch/parse.c:226
-msgid "No RETURN or RESULT in procedure"
+#. If we make it here, then we did not know about this
+#. function definition.
+#: protoize.c:4016
+#, c-format
+msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr ""
-#: ch/parse.c:245
-msgid "PREFIXED clause with no prelix in unlabeled module"
+#: protoize.c:4019
+#, c-format
+msgid "%s: function definition not converted\n"
msgstr ""
-#: ch/parse.c:336
+#: protoize.c:4078
#, c-format
-msgid "internal parser error - expected token %d"
+msgid "%s: `%s' not converted\n"
msgstr ""
-#: ch/parse.c:529
+#: protoize.c:4086
#, c-format
-msgid "'%s!' is not followed by an identifier"
+msgid "%s: would convert file `%s'\n"
msgstr ""
-#: ch/parse.c:545
-msgid "expected a name here"
+#: protoize.c:4089
+#, c-format
+msgid "%s: converting file `%s'\n"
msgstr ""
-#: ch/parse.c:560
-msgid "expected a name string here"
+#: protoize.c:4099
+#, c-format
+msgid "%s: can't get status for file `%s': %s\n"
msgstr ""
-#: ch/parse.c:591
+#: protoize.c:4141
#, c-format
-msgid "`%s' undeclared"
-msgstr "\"%s\" är ej deklarerad"
+msgid "%s: can't open file `%s' for reading: %s\n"
+msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
-#: ch/parse.c:669
-msgid "action not allowed in SPEC MODULE"
+#: protoize.c:4156
+#, c-format
+msgid ""
+"\n"
+"%s: error reading input file `%s': %s\n"
msgstr ""
-#: ch/parse.c:691
-msgid "missing defining occurrence"
+#: protoize.c:4190
+#, c-format
+msgid "%s: can't create/open clean file `%s': %s\n"
msgstr ""
-#: ch/parse.c:702
-msgid "bad defining occurrence following ','"
+#: protoize.c:4295
+#, c-format
+msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr ""
-#: ch/parse.c:802
-msgid "missing '(' in exception list"
+#: protoize.c:4303
+#, c-format
+msgid "%s: can't link file `%s' to `%s': %s\n"
+msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+
+#: protoize.c:4333
+#, c-format
+msgid "%s: can't create/open output file `%s': %s\n"
msgstr ""
-#: ch/parse.c:827
-msgid "ON exception names must be unique"
+#: protoize.c:4366
+#, c-format
+msgid "%s: can't change mode of file `%s': %s\n"
msgstr ""
-#: ch/parse.c:837
-msgid "syntax error in exception list"
+#: protoize.c:4541
+#, c-format
+msgid "%s: cannot get working directory: %s\n"
msgstr ""
-#: ch/parse.c:873
-msgid "empty ON-condition"
+#: protoize.c:4639
+#, c-format
+msgid "%s: input file names must have .c suffixes: %s\n"
+msgstr "%s: indatafilnamn måste ha ändelsen .c: %s\n"
+
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
msgstr ""
-#: ch/parse.c:938
-msgid "INIT not allowed at loc-identity declaration"
+#: reg-stack.c:673
+#, c-format
+msgid "output constraint %d must specify a single register"
msgstr ""
-#: ch/parse.c:948
-msgid "'=' used where ':=' is required"
+#: reg-stack.c:683
+#, c-format
+msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr ""
-#: ch/parse.c:956
-msgid "initialization is not allowed in spec module"
+#: reg-stack.c:706
+msgid "output regs must be grouped at top of stack"
msgstr ""
-#: ch/parse.c:964
-msgid "loc-identity declaration without initialisation"
+#: reg-stack.c:743
+msgid "implicitly popped regs must be grouped at top of stack"
msgstr ""
-#: ch/parse.c:1008
-msgid "bad syntax following FORBID"
+#: reg-stack.c:762
+#, c-format
+msgid "output operand %d must use `&' constraint"
msgstr ""
-#: ch/parse.c:1023
-msgid "expected a postfix name here"
+#: regclass.c:756
+#, c-format
+msgid "can't use '%s' as a %s register"
msgstr ""
-#: ch/parse.c:1068
-msgid "expected another rename clause"
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
+#, c-format
+msgid "unknown register name: %s"
+msgstr "okänt registernamn: %s"
+
+#: regclass.c:782
+msgid "global register variable follows a function definition"
msgstr ""
-#: ch/parse.c:1128
-msgid "syntax error in parameter name list"
+#: regclass.c:786
+msgid "register used for two global register variables"
msgstr ""
-#: ch/parse.c:1221
-msgid "NONREF specific without LOC in result attribute"
+#: regclass.c:791
+msgid "call-clobbered register used for global register variable"
msgstr ""
-#: ch/parse.c:1223
-msgid "DYNAMIC specific without LOC in result attribute"
+#: regrename.c:1899
+#, c-format
+msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr ""
-#: ch/parse.c:1245
-msgid "exception names must be unique"
+#: regrename.c:1911
+#, c-format
+msgid "validate_value_data: Loop in regno chain (%u)"
msgstr ""
-#: ch/parse.c:1441
-msgid "must specify a PROCESS name"
+#: regrename.c:1914
+#, c-format
+msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr ""
-#: ch/parse.c:1448
-msgid "SIGNAL must be in global reach"
+#: regrename.c:1926
+#, c-format
+msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr ""
-#: ch/parse.c:1479
-msgid "syntax error while parsing signal definition statement"
+#: reload.c:1229
+msgid "cannot reload integer constant operand in `asm'"
msgstr ""
-#: ch/parse.c:1593
-msgid "case range list"
+#: reload.c:1251
+msgid "impossible register constraint in `asm'"
msgstr ""
-#: ch/parse.c:1660
-msgid "misplaced colon in case label"
+#: reload.c:3461
+msgid "`&' constraint used with no register class"
msgstr ""
-#: ch/parse.c:1707
-msgid "unrecognized case label list after ','"
+#: reload.c:3629
+#, fuzzy
+msgid "unable to generate reloads for:"
+msgstr "Välj CPU att generera kod för"
+
+#: reload.c:3630 reload.c:3844
+msgid "inconsistent operand constraints in an `asm'"
msgstr ""
-#: ch/parse.c:1971 ch/parse.c:1997
-msgid "bad ASM operand"
+#: reload1.c:1250
+msgid "frame size too large for reliable stack checking"
msgstr ""
-#: ch/parse.c:2067
-msgid "readonly location modified by 'asm'"
+#: reload1.c:1253
+msgid "try reducing the number of local variables"
msgstr ""
-#: ch/parse.c:2198
-msgid "expected 'TO' in step enumeration"
+#: reload1.c:1909
+#, c-format
+msgid "can't find a register in class `%s' while reloading `asm'"
msgstr ""
-#: ch/parse.c:2213
-msgid "expected 'IN' in FOR control here"
+#: reload1.c:1913
+#, c-format
+msgid "unable to find a register to spill in class `%s'"
msgstr ""
-#: ch/parse.c:2314
-msgid "missing DELAY CASE alternative"
+#: reload1.c:1915
+msgid "this is the insn:"
msgstr ""
-#. This is probably not possible
-#: ch/parse.c:2348
-msgid "non-referable location in DO WITH"
+#: reload1.c:3938
+msgid "`asm' operand requires impossible reload"
msgstr ""
-#: ch/parse.c:2360
-msgid "WITH element must be of STRUCT mode"
+#. It's the compiler's fault.
+#: reload1.c:5052
+msgid "could not find a spill register"
msgstr ""
-#: ch/parse.c:2467
-msgid "missing ')' in signal/buffer receive alternative"
+#: reload1.c:5057
+msgid "`asm' operand constraint incompatible with operand size"
msgstr ""
-#: ch/parse.c:2481
-msgid "misplaced 'IN' in signal/buffer receive alternative"
+#. It's the compiler's fault.
+#: reload1.c:6679
+#, fuzzy
+msgid "VOIDmode on an output"
+msgstr "I/O-fel vid utmatning"
+
+#: reload1.c:6680
+msgid "output operand is constant in `asm'"
msgstr ""
-#: ch/parse.c:2529
-msgid "missing RECEIVE alternative"
+#: rtl-error.c:140
+#, fuzzy
+msgid "unrecognizable insn:"
+msgstr "ej igenkänd flagga `-%s'"
+
+#: rtl-error.c:142
+msgid "insn does not satisfy its constraints:"
msgstr ""
-#: ch/parse.c:2655
-msgid "PROCESS copy number must be integer"
+#: rtl.c:535
+#, c-format
+msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:2882
-msgid "missing parenthesis for procedure call"
+#: rtl.c:550
+#, c-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:2884
-msgid "expression is not an action"
+#: rtl.c:566
+#, c-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:2918
-msgid "syntax error in action"
+#: rtl.c:579
+#, c-format
+msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:2945
-msgid "no handler is permitted on this action."
+#: rtl.c:593
+#, c-format
+msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:2966
-msgid "definition follows action"
+#: rtl.c:608
+#, c-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:3042
-msgid "bad tuple field name list"
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
msgstr ""
-#: ch/parse.c:3088
-msgid "invalid syntax for label in tuple"
+#: stmt.c:766
+#, c-format
+msgid "jump to `%s' invalidly jumps into binding contour"
msgstr ""
-#: ch/parse.c:3133
-msgid "bad syntax in tuple"
+#: stmt.c:1002 stmt.c:3766
+#, c-format
+msgid "label `%s' used before containing binding contour"
msgstr ""
-#: ch/parse.c:3160
-msgid "non-mode name before tuple"
+#: stmt.c:1190
+msgid "output operand constraint lacks `='"
msgstr ""
-#: ch/parse.c:3205
-msgid "invalid expression/location syntax"
+#: stmt.c:1205
+#, c-format
+msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr ""
-#: ch/parse.c:3262
-msgid "RECEIVE expression"
+#: stmt.c:1227
+msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr ""
-#: ch/parse.c:3457
-msgid "there should not be a ';' here"
+#: stmt.c:1233 stmt.c:1337
+#, c-format
+msgid "`%%' constraint used with last operand"
msgstr ""
-#: ch/parse.c:3496
-msgid "missing ELSE/ELSIF in IF expression"
+#: stmt.c:1252
+msgid "matching constraint not valid in output operand"
msgstr ""
-#: ch/parse.c:3547
-msgid "conditional expression not allowed inside parentheses"
+#: stmt.c:1328
+#, c-format
+msgid "input operand constraint contains `%c'"
msgstr ""
-#: ch/parse.c:3551
-msgid "mode-less tuple not allowed inside parentheses"
+#: stmt.c:1368
+msgid "matching constraint references invalid operand number"
msgstr ""
-#. Z.200 doesn't allow mixed numbered and unnumbered set elements,
-#. but we can do it. Print a warning
-#: ch/parse.c:3664
-msgid "mixed numbered and unnumbered set elements is not standard"
+#: stmt.c:1400
+#, c-format
+msgid "invalid punctuation `%c' in constraint"
msgstr ""
-#: ch/parse.c:3667
-msgid "SET mode must define at least one named value"
+#: stmt.c:1450
+#, fuzzy, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "typkvalificerare för \"%s\" i konflikt med tidigare dekl"
+
+#: stmt.c:1540
+#, c-format
+msgid "unknown register name `%s' in `asm'"
msgstr ""
-#: ch/parse.c:3766
-msgid "POS not allowed for ARRAY"
+#: stmt.c:1588
+#, c-format
+msgid "more than %d operands in `asm'"
msgstr ""
-#: ch/parse.c:3776
-msgid "STEP not allowed in field definition"
+#: stmt.c:1650
+#, c-format
+msgid "output number %d not directly addressable"
msgstr ""
-#: ch/parse.c:3792
-msgid "missing field name"
+#: stmt.c:1728
+#, c-format
+msgid "asm operand %d probably doesn't match constraints"
msgstr ""
-#: ch/parse.c:3801
-msgid "bad field name following ','"
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
msgstr ""
-#: ch/parse.c:3861
-msgid "expected ':' in structure variant alternative"
+#: stmt.c:1889
+#, fuzzy
+msgid "asm clobber conflict with output operand"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
+
+#: stmt.c:1894
+#, fuzzy
+msgid "asm clobber conflict with input operand"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
+
+#: stmt.c:1929
+msgid "too many alternatives in `asm'"
msgstr ""
-#: ch/parse.c:3912
-msgid "missing field"
+#: stmt.c:1941
+msgid "operand constraints for `asm' differ in number of alternatives"
msgstr ""
-#: ch/parse.c:4060
-msgid "VARYING bit-strings not implemented"
+#: stmt.c:1994
+#, fuzzy, c-format
+msgid "duplicate asm operand name '%s'"
+msgstr "upprepning av medlem \"%s\""
+
+#: stmt.c:2081
+msgid "missing close brace for named operand"
msgstr ""
-#: ch/parse.c:4121
-msgid "strings must be composed of chars"
+#: stmt.c:2109
+#, c-format
+msgid "undefined named operand '%s'"
msgstr ""
-#: ch/parse.c:4171
-msgid "BUFFER modes may not be readonly"
+#: stmt.c:3703
+#, c-format
+msgid "unused variable `%s'"
+msgstr "oanvänd variabel \"%s\""
+
+#: stmt.c:5189
+#, c-format
+msgid "enumeration value `%s' not handled in switch"
msgstr ""
-#: ch/parse.c:4178
-msgid "EVENT modes may not be readonly"
+#: stmt.c:5214 stmt.c:5234
+#, c-format
+msgid "case value `%ld' not in enumerated type"
msgstr ""
-#: ch/parse.c:4198
-msgid "SIGNAL is not a valid mode"
+#: stmt.c:5217 stmt.c:5237
+#, c-format
+msgid "case value `%ld' not in enumerated type `%s'"
msgstr ""
-#: ch/parse.c:4235
-msgid "syntax error - missing mode"
+#: stmt.c:5310
+#, fuzzy
+msgid "switch missing default case"
+msgstr "detta är den första default-etiketten"
+
+#: stor-layout.c:178
+msgid "type size can't be explicitly evaluated"
msgstr ""
-#: ch/parse.c:4282
-msgid "syntax error - expected a module or end of file"
+#: stor-layout.c:180
+msgid "variable-size type declared outside of any function"
msgstr ""
-#: ch/satisfy.c:58
+#: stor-layout.c:487
#, c-format
-msgid " `%s', which depends on ..."
+msgid "size of `%s' is %d bytes"
+msgstr "storleken på \"%s\" är %d bytes"
+
+#: stor-layout.c:489
+#, c-format
+msgid "size of `%s' is larger than %d bytes"
+msgstr "storleken på \"%s\" är större än %d bytes"
+
+#: stor-layout.c:909 stor-layout.c:1325
+#, c-format
+msgid "packed attribute causes inefficient alignment for `%s'"
msgstr ""
-#: ch/satisfy.c:90
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
-msgid "Cycle: `%s' depends on ..."
+msgid "packed attribute is unnecessary for `%s'"
msgstr ""
-#: ch/satisfy.c:92
+#: stor-layout.c:926
#, c-format
-msgid " `%s'"
-msgstr " `%s'"
+msgid "padding struct to align `%s'"
+msgstr ""
-#: ch/satisfy.c:151
-msgid "SYN of this mode not allowed"
+#: stor-layout.c:1289
+msgid "padding struct size to alignment boundary"
msgstr ""
-#: ch/satisfy.c:156
-msgid "mode of SYN incompatible with value"
+#: stor-layout.c:1332
+msgid "packed attribute causes inefficient alignment"
msgstr ""
-#: ch/satisfy.c:167
-msgid "SYN value outside range of its mode"
+#: stor-layout.c:1334
+msgid "packed attribute is unnecessary"
msgstr ""
-#: ch/satisfy.c:176
-msgid "INIT string too large for mode"
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
msgstr ""
-#: ch/satisfy.c:195
+#: timevar.c:453
+msgid ""
+"\n"
+"Execution times (seconds)\n"
+msgstr ""
+"\n"
+"Exekveringstider (sekunder)\n"
+
+#. Print total time.
+#: timevar.c:503
+msgid " TOTAL :"
+msgstr " TOTALT :"
+
+#: timevar.c:539
+#, c-format
+msgid "time in %s: %ld.%06ld (%ld%%)\n"
+msgstr "tid %s: %ld.%06ld (%ld%%)\n"
+
+#: tlink.c:399
#, c-format
-msgid "value of %s is not a valid constant"
+msgid "collect: reading %s\n"
msgstr ""
-#: ch/satisfy.c:226
-msgid "mode with non-value property in signal definition"
+#: tlink.c:502
+#, c-format
+msgid "collect: recompiling %s\n"
msgstr ""
-#: ch/satisfy.c:403
+#: tlink.c:674
#, c-format
-msgid "undeclared identifier `%s'"
+msgid "collect: tweaking %s in %s\n"
msgstr ""
-#: ch/satisfy.c:456
-msgid "RETURNS spec with invalid mode"
+#: tlink.c:721
+msgid "collect: relinking\n"
msgstr ""
-#: ch/satisfy.c:520
-msgid "operand to REF is not a mode"
+#: tlink.c:730
+#, c-format
+msgid "ld returned %d exit status"
msgstr ""
-#: ch/satisfy.c:554
-msgid "field with non-value mode in variant structure not allowed"
+#: toplev.c:920
+msgid "Generate debugging info in default format"
msgstr ""
-#: ch/satisfy.c:593
-msgid "buffer element mode must not have non-value property"
+#: toplev.c:921
+msgid "Generate debugging info in default extended format"
msgstr ""
-#: ch/satisfy.c:602
-msgid "recordmode must not have the non-value property"
+#: toplev.c:923
+msgid "Generate STABS format debug info"
msgstr ""
-#: ch/tasking.c:170 ch/tasking.c:218
-#, c-format
-msgid "Tasking code %ld out of range for `%s'."
+#: toplev.c:924
+msgid "Generate extended STABS format debug info"
msgstr ""
-#: ch/tasking.c:284
-#, c-format
-msgid "invalid attribute for argument `%s' (only IN or LOC allowed)."
+#: toplev.c:927
+msgid "Generate DWARF-1 format debug info"
msgstr ""
-#: ch/tasking.c:325
-msgid "PROCESS may only be declared at module level"
+#: toplev.c:929
+msgid "Generate extended DWARF-1 format debug info"
msgstr ""
-#: ch/tasking.c:549
-#, c-format
-msgid "process name %s never declared"
+#: toplev.c:932
+msgid "Generate DWARF-2 debug info"
msgstr ""
-#: ch/tasking.c:554
-msgid "You may only START a process, not a proc"
+#: toplev.c:935
+msgid "Generate XCOFF format debug info"
msgstr ""
-#: ch/tasking.c:590
-msgid "SET expression not a location."
+#: toplev.c:936
+msgid "Generate extended XCOFF format debug info"
msgstr ""
-#: ch/tasking.c:595
-msgid "SET location must be INSTANCE mode"
+#: toplev.c:939
+msgid "Generate COFF format debug info"
msgstr ""
-#: ch/tasking.c:632
-#, c-format
-msgid "too many arguments to process `%s'"
+#: toplev.c:942
+#, fuzzy
+msgid "Generate VMS format debug info"
+msgstr "Generera kod för \"big endian\""
+
+#: toplev.c:981
+#, fuzzy
+msgid "Perform DWARF2 duplicate elimination"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:983
+msgid "Do not store floats in registers"
msgstr ""
-#: ch/tasking.c:635
-msgid "too many arguments to process"
+#: toplev.c:985
+msgid "Consider all mem refs through pointers as volatile"
msgstr ""
-#: ch/tasking.c:640
-#, c-format
-msgid "too few arguments to process `%s'"
+#: toplev.c:987
+msgid "Consider all mem refs to global data to be volatile"
msgstr ""
-#: ch/tasking.c:643
-msgid "too few arguments to process"
+#: toplev.c:989
+msgid "Consider all mem refs to static data to be volatile"
msgstr ""
-#: ch/tasking.c:983
-msgid "COPY_NUMBER argument must be INSTANCE expression"
+#: toplev.c:991
+msgid "Defer popping functions args from stack until later"
msgstr ""
-#: ch/tasking.c:1007
-msgid "GEN_CODE argument must be a process or signal name."
+#: toplev.c:993
+msgid "When possible do not generate stack frames"
msgstr ""
-#: ch/tasking.c:1029
-msgid "GEN_INST parameter 2 must be an integer mode"
+#: toplev.c:995
+msgid "Optimize sibling and tail recursive calls"
msgstr ""
-#: ch/tasking.c:1050
-msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
msgstr ""
-#: ch/tasking.c:1076
-#, c-format
-msgid "%s is not a declared process"
+#: toplev.c:999
+msgid "When running CSE, follow jumps to their targets"
msgstr ""
-#: ch/tasking.c:1097
-msgid "PROC_TYPE argument must be INSTANCE expression"
+#: toplev.c:1001
+msgid "When running CSE, follow conditional jumps"
msgstr ""
-#: ch/tasking.c:1139
-msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location."
+#: toplev.c:1003
+#, fuzzy
+msgid "Perform a number of minor, expensive optimizations"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:1005
+#, fuzzy
+msgid "Perform jump threading optimizations"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:1007
+#, fuzzy
+msgid "Perform strength reduction optimizations"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:1009
+msgid "Perform loop unrolling when iteration count is known"
msgstr ""
-#: ch/tasking.c:1289
-#, c-format
-msgid "SEND requires a SIGNAL; %s is not a SIGNAL name"
+#: toplev.c:1011
+msgid "Perform loop unrolling for all loops"
msgstr ""
-#: ch/tasking.c:1314
-#, c-format
-msgid "too many values for SIGNAL `%s'"
+#: toplev.c:1013
+msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
-#: ch/tasking.c:1320
-#, c-format
-msgid "too few values for SIGNAL `%s'"
+#: toplev.c:1015
+msgid "Force all loop invariant computations out of loops"
msgstr ""
-#: ch/tasking.c:1398
-msgid "Signal sent without priority"
+#: toplev.c:1017
+msgid "Strength reduce all loop general induction variables"
msgstr ""
-#: ch/tasking.c:1399 ch/tasking.c:2928
-msgid " and no default priority was set."
+#: toplev.c:1019
+msgid "Store strings in writable data section"
msgstr ""
-#: ch/tasking.c:1400
-msgid " PRIORITY defaulted to 0"
+#: toplev.c:1021
+msgid "Enable machine specific peephole optimizations"
msgstr ""
-#: ch/tasking.c:1415
-msgid "SEND without a destination instance"
+#: toplev.c:1023
+msgid "Copy memory operands into registers before using"
msgstr ""
-#: ch/tasking.c:1416
-msgid " and no destination process specified"
+#: toplev.c:1025
+msgid "Copy memory address constants into regs before using"
msgstr ""
-#: ch/tasking.c:1417
-msgid " for the signal"
+#: toplev.c:1027
+msgid "Allow function addresses to be held in registers"
msgstr ""
-#. as our system doesn't allow that and Z.200 specifies it,
-#. we issue a warning
-#: ch/tasking.c:1436
-#, c-format
-msgid "SEND to ANY copy of process `%s'."
+#: toplev.c:1029
+msgid "Integrate simple functions into their callers"
msgstr ""
-#: ch/tasking.c:1441
-msgid "SEND TO must be an INSTANCE mode"
+#: toplev.c:1031
+msgid "Generate code for funcs even if they are fully inlined"
msgstr ""
-#: ch/tasking.c:1455
-msgid "SEND WITH must have a mode"
+#: toplev.c:1033
+msgid "Pay attention to the 'inline' keyword"
msgstr ""
-#: ch/tasking.c:1724
-msgid "internal error: RECEIVE CASE stack invalid."
+#: toplev.c:1035
+msgid "Emit static const variables even if they are not used"
msgstr ""
-#: ch/tasking.c:1764 ch/tasking.c:2492
-msgid "SET requires INSTANCE location"
+#: toplev.c:1037
+msgid "Check for syntax errors, then stop"
+msgstr "Leta efter syntaxfel, stoppa sedan"
+
+#: toplev.c:1039
+msgid "Mark data as shared rather than private"
msgstr ""
-#: ch/tasking.c:1843
-msgid "SIGNAL in RECEIVE CASE alternative follows"
+#: toplev.c:1041
+msgid "Enable saving registers around function calls"
msgstr ""
-#: ch/tasking.c:1844
-#, c-format
-msgid " a BUFFER name on line %d"
+#: toplev.c:1043
+msgid "Return 'short' aggregates in memory, not registers"
msgstr ""
-#: ch/tasking.c:1852
-#, c-format
-msgid "SIGNAL `%s' has no data fields"
+#: toplev.c:1045
+msgid "Return 'short' aggregates in registers"
msgstr ""
-#: ch/tasking.c:1857
-#, c-format
-msgid "SIGNAL `%s' requires data fields"
+#: toplev.c:1047
+msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
-#: ch/tasking.c:1921
-#, c-format
-msgid "too few data fields provided for `%s'"
+#: toplev.c:1049
+msgid "Perform the global common subexpression elimination"
msgstr ""
-#: ch/tasking.c:1924
-#, c-format
-msgid "too many data fields provided for `%s'"
+#: toplev.c:1051
+msgid "Perform enhanced load motion during global subexpression elimination"
msgstr ""
-#: ch/tasking.c:1947
-msgid "BUFFER in RECEIVE CASE alternative follows"
+#: toplev.c:1053
+msgid "Perform store motion after global subexpression elimination"
msgstr ""
-#: ch/tasking.c:1948
-#, c-format
-msgid " a SIGNAL name on line %d"
+#: toplev.c:1055
+#, fuzzy
+msgid "Perform the loop optimizations"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:1057
+#, fuzzy
+msgid "Perform cross-jumping optimization"
+msgstr "Utför optimering för svansrekursion"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
msgstr ""
-#: ch/tasking.c:1956
-msgid "BUFFER in RECEIVE CASE alternative must be a location."
+#: toplev.c:1061
+#, fuzzy
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr "Föredra hopp framför villkorlig körning"
+
+#: toplev.c:1063
+msgid "Run CSE pass after loop optimizations"
msgstr ""
-#: ch/tasking.c:1962
-msgid "buffer receive alternative requires only 1 defining occurence."
+#: toplev.c:1065
+msgid "Run the loop optimizer twice"
msgstr ""
-#: ch/tasking.c:2043
-msgid "incompatible modes in receive buffer alternative."
+#: toplev.c:1067
+msgid "Delete useless null pointer checks"
msgstr ""
-#: ch/tasking.c:2049
-msgid "defining occurence in receive buffer alternative must be a location."
+#: toplev.c:1069
+msgid "Reschedule instructions before register allocation"
msgstr ""
-#: ch/tasking.c:2086
-msgid "buffer receive alternative without `IN location'."
+#: toplev.c:1071
+msgid "Reschedule instructions after register allocation"
msgstr ""
-#: ch/tasking.c:2092
-msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location."
+#: toplev.c:1073
+msgid "Enable scheduling across basic blocks"
msgstr ""
-#: ch/tasking.c:2331
-msgid "RECEIVE CASE without alternatives"
+#: toplev.c:1075
+msgid "Allow speculative motion of non-loads"
msgstr ""
-#: ch/tasking.c:2369
-msgid "CONTINUE requires an event location."
+#: toplev.c:1077
+msgid "Allow speculative motion of some loads"
msgstr ""
-#: ch/tasking.c:2503 ch/tasking.c:2940
-msgid "PRIORITY must be of integer type."
+#: toplev.c:1079
+msgid "Allow speculative motion of more loads"
msgstr ""
-#: ch/tasking.c:2581
-msgid "delay alternative must be an EVENT location."
+#: toplev.c:1081
+msgid "Replace add,compare,branch with branch on count reg"
msgstr ""
-#: ch/tasking.c:2636
-msgid "DELAY CASE without alternatives"
+#: toplev.c:1083
+msgid "Generate position independent code, if possible"
msgstr ""
-#: ch/tasking.c:2757
-msgid "DELAY action requires an event location."
+#: toplev.c:1086
+msgid "Enable exception handling"
msgstr ""
-#: ch/tasking.c:2768
-msgid "PRIORITY in DELAY action must be of integer type."
+#: toplev.c:1088
+msgid "Just generate unwind tables for exception handling"
msgstr ""
-#: ch/tasking.c:2777
-msgid "DELAY action without priority."
+#: toplev.c:1090
+msgid "Generate unwind tables exact at each instruction boundary"
msgstr ""
-#: ch/tasking.c:2778 ch/tasking.c:2929
-msgid " PRIORITY defaulted to 0."
+#: toplev.c:1092
+msgid "Support synchronous non-call exceptions"
msgstr ""
-#: ch/tasking.c:2868
-msgid "send buffer action requires a BUFFER location."
+#: toplev.c:1094
+msgid "Insert arc based program profiling code"
msgstr ""
-#: ch/tasking.c:2885
-msgid "there must be only 1 value for send buffer action."
+#: toplev.c:1096
+msgid "Create data files needed by gcov"
msgstr ""
-#: ch/tasking.c:2906
-msgid "convert failed for send buffer action."
+#: toplev.c:1098
+msgid "Use profiling information for branch probabilities"
msgstr ""
-#: ch/tasking.c:2912
-msgid "incompatible modes in send buffer action."
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
msgstr ""
-#: ch/tasking.c:2927
-msgid "Buffer sent without priority"
+#: toplev.c:1102
+msgid "Reorder basic blocks to improve code placement"
msgstr ""
-#: ch/tasking.c:2946
-msgid "WITH not allowed for send buffer action."
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
msgstr ""
-#: ch/tasking.c:2951
-msgid "TO not allowed for send buffer action."
+#: toplev.c:1106
+msgid "Do the register renaming optimization pass"
msgstr ""
-#: ch/tasking.c:3094
-#, c-format
-msgid "SEND requires a BUFFER; `%s' is not a BUFFER name"
+#: toplev.c:1108
+msgid "Do the register copy-propagation optimization pass"
msgstr ""
-#: ch/tasking.c:3235
-msgid "non-integral max queue size for EVENT/BUFFER mode"
+#: toplev.c:1110
+msgid "Do not put uninitialized globals in the common section"
msgstr ""
-#: ch/tasking.c:3240
-msgid "non-constant max queue size for EVENT/BUFFER mode"
+#: toplev.c:1112
+msgid "Do not generate .size directives"
+msgstr "Generera inte .size-direktiv"
+
+#: toplev.c:1114
+msgid "place each function into its own section"
+msgstr "placera varje funktion i sin egen sektion"
+
+#: toplev.c:1116
+msgid "place data items into their own section"
msgstr ""
-#: ch/tasking.c:3247
-msgid "max queue_size for EVENT/BUFFER is not positive"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr ""
-#: ch/timing.c:224
-msgid "absolute time value must be of mode TIME."
+#: toplev.c:1120
+msgid "Output GNU ld formatted global initializers"
msgstr ""
-#: ch/timing.c:281 ch/timing.c:364
-msgid "duration primitive value must be of mode DURATION."
+#: toplev.c:1122
+msgid "Enables a register move optimization"
msgstr ""
-#: ch/tree.c:62
-msgid "string length > UPPER (UINT)"
+#: toplev.c:1124
+msgid "Do the full regmove optimization pass"
msgstr ""
-#: ch/tree.c:116
-msgid "Can only build a powerset from a discrete mode"
+#: toplev.c:1126
+msgid "Pack structure members together without holes"
msgstr ""
-#: ch/tree.c:128
-msgid "non-constant bitstring size invalid"
+#: toplev.c:1128
+msgid "Insert stack checking code into the program"
msgstr ""
-#: ch/tree.c:130
-msgid "non-constant powerset size invalid"
+#: toplev.c:1130
+msgid "Specify that arguments may alias each other & globals"
msgstr ""
-#: ch/typeck.c:83
-msgid "array or string index is a mode (instead of a value)"
+#: toplev.c:1132
+msgid "Assume arguments may alias globals but not each other"
msgstr ""
-#: ch/typeck.c:114
-msgid "index is not an integer expression"
+#: toplev.c:1134
+msgid "Assume arguments do not alias each other or globals"
msgstr ""
-#: ch/typeck.c:122
-msgid "index not compatible with index mode"
+#: toplev.c:1136
+msgid "Assume strict aliasing rules apply"
msgstr ""
-#. should never happen
-#: ch/typeck.c:132
-msgid "index is not discrete"
+#: toplev.c:1138
+msgid "Align the start of loops"
msgstr ""
-#: ch/typeck.c:196
-msgid ""
-"possible internal error - slice argument is neither referable nor constant"
+#: toplev.c:1140
+msgid "Align labels which are only reached by jumping"
msgstr ""
-#: ch/typeck.c:285
-msgid "bit array slice with non-constant length"
+#: toplev.c:1142
+msgid "Align all labels"
msgstr ""
-#: ch/typeck.c:325
-msgid "bitstring slice with non-constant length"
+#: toplev.c:1144
+msgid "Align the start of functions"
msgstr ""
-#: ch/typeck.c:338
-msgid "slice operation on non-array, non-bitstring value not supported"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
-#: ch/typeck.c:390 ch/typeck.c:441
-msgid "can only take slice of array or string"
+#: toplev.c:1148
+msgid "Attempt to merge identical constants and constant variables"
msgstr ""
-#: ch/typeck.c:455
-msgid "slice length is not an integer"
+#: toplev.c:1150
+msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
-#: ch/typeck.c:488
-msgid "slice length out-of-range"
+#: toplev.c:1152
+msgid "Instrument function entry/exit with profiling calls"
msgstr ""
-#: ch/typeck.c:543
-msgid "too many index expressions"
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
msgstr ""
-#: ch/typeck.c:595
-msgid "array index is not discrete"
+#: toplev.c:1156
+msgid "Enable SSA optimizations"
msgstr ""
-#: ch/typeck.c:675
-msgid "invalid compound index for bitstring mode"
+#: toplev.c:1158
+msgid "Enable SSA conditional constant propagation"
msgstr ""
-#: ch/typeck.c:1079
-msgid "conversions from variable_size value"
+#: toplev.c:1160
+msgid "Enable aggressive SSA dead code elimination"
msgstr ""
-#: ch/typeck.c:1084
-msgid "conversions to variable_size mode"
+#: toplev.c:1162
+msgid "External symbols have a leading underscore"
+msgstr "Externa symboler startar med en understrykning"
+
+#: toplev.c:1164
+msgid "Process #ident directives"
+msgstr "Hantera #ident-direktiv"
+
+#: toplev.c:1166
+msgid "Enables an rtl peephole pass run before sched2"
msgstr ""
-#: ch/typeck.c:1098
-msgid "cannot convert to float"
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
msgstr ""
-#: ch/typeck.c:1103
-msgid "cannot convert float to this mode"
+#: toplev.c:1170
+msgid "Enables guessing of branch probabilities"
msgstr ""
-#: ch/typeck.c:1130
-msgid "OVERFLOW in expression conversion"
+#: toplev.c:1172
+msgid "Set errno after built-in math functions"
+msgstr "Sätt errno efter inbyggda matematikfunktioner"
+
+#: toplev.c:1174
+msgid "Floating-point operations can trap"
msgstr ""
-#: ch/typeck.c:1159
-msgid "overflow (not inside function)"
+#: toplev.c:1176
+msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
-#: ch/typeck.c:1161
-msgid "possible overflow (not inside function)"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
msgstr ""
-#: ch/typeck.c:1166
-msgid "expression will always cause OVERFLOW"
+#: toplev.c:1180
+#, fuzzy
+msgid "Generate code to check bounds before indexing arrays"
+msgstr "Generera kod för Intel as"
+
+#: toplev.c:1182
+msgid "Convert floating point constant to single precision constant"
msgstr ""
-#: ch/typeck.c:1199
-msgid "not implemented: constant conversion from that kind of expression"
+#: toplev.c:1184
+msgid "Report time taken by each compiler pass at end of run"
msgstr ""
-#: ch/typeck.c:1205
-msgid "not implemented: constant conversion to that kind of mode"
+#: toplev.c:1186
+msgid "Report on permanent memory allocation at end of run"
msgstr ""
-#: ch/typeck.c:1216
-msgid "non-standard, non-portable value conversion"
+#: toplev.c:1188
+msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr ""
-#: ch/typeck.c:1222
-msgid "location conversion between differently-sized modes"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
msgstr ""
-#: ch/typeck.c:1224
-msgid "unsupported value conversion"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
msgstr ""
-#: ch/typeck.c:1272
-msgid "operand to bin must be a non-negative integer literal"
+#: toplev.c:1209
+msgid "Determine language standard"
msgstr ""
-#: ch/typeck.c:1288
-#, c-format
-msgid "size %d of BIN too big - no such integer mode"
+#: toplev.c:1213
+msgid "Make bit-fields by unsigned by default"
msgstr ""
-#: ch/typeck.c:1302
-msgid "BIN in pass 2"
+#: toplev.c:1217
+msgid "Make 'char' be signed by default"
msgstr ""
-#: ch/typeck.c:1335
-msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET"
+#: toplev.c:1219
+msgid "Make 'char' be unsigned by default"
msgstr ""
-#: ch/typeck.c:2111
-msgid "internal error in chill_root_resulting_mode"
+#: toplev.c:1225
+msgid "Do not recognize the 'asm' keyword"
msgstr ""
-#: ch/typeck.c:2370
-msgid "string lengths not equal"
+#: toplev.c:1228
+#, fuzzy
+msgid "Do not recognize any built in functions"
+msgstr "Känn inte igen några inbyggda funktioner"
+
+#: toplev.c:1230
+msgid "Assume normal C execution environment"
msgstr ""
-#: ch/typeck.c:2385
-msgid "can't do ARRAY assignment - too large"
+#: toplev.c:1233
+msgid "Assume that standard libraries & main might not exist"
msgstr ""
-#: ch/typeck.c:2403
-msgid "rhs of array assignment is not addressable"
+#: toplev.c:1236
+msgid "Allow different types as args of ? operator"
msgstr ""
-#: ch/typeck.c:2580
-msgid "non-constant expression for BIN"
+#: toplev.c:1239
+msgid "Allow the use of $ inside identifiers"
msgstr ""
-#: ch/typeck.c:2585
-msgid "expression for BIN must not be negative"
+#: toplev.c:1244
+msgid "Use the same size for double as for float"
msgstr ""
-#: ch/typeck.c:2590
-msgid "cannot process BIN (>32)"
+#: toplev.c:1247
+msgid "Use the smallest fitting integer to hold enums"
msgstr ""
-#: ch/typeck.c:2606
-msgid "bounds of range are not compatible"
+#: toplev.c:1250
+msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr ""
-#: ch/typeck.c:2615
-msgid "negative string length"
+#: toplev.c:1254
+msgid "Enable most warning messages"
msgstr ""
-#: ch/typeck.c:2652
-msgid "range's lower bound and parent mode don't match"
+#: toplev.c:1256
+msgid "Warn about casting functions to incompatible types"
msgstr ""
-#: ch/typeck.c:2657
-msgid "range's upper bound and parent mode don't match"
+#: toplev.c:1259
+msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-#: ch/typeck.c:2666
-msgid "making range from non-mode"
+#: toplev.c:1262
+msgid "Warn about casts which discard qualifiers"
msgstr ""
-#: ch/typeck.c:2672
-msgid "floating point ranges"
+#: toplev.c:1265
+msgid "Warn about subscripts whose type is 'char'"
+msgstr "Varna om index har typen \"char\""
+
+#: toplev.c:1268 toplev.c:1271
+msgid "Warn if nested comments are detected"
+msgstr "Varna om nästlade kommentarer upptäcks"
+
+#: toplev.c:1274
+msgid "Warn about possibly confusing type conversions"
msgstr ""
-#: ch/typeck.c:2680
-msgid "range mode has non-constant limits"
+#: toplev.c:1278
+#, fuzzy
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "Fånga inte heltalsdivision med noll"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
msgstr ""
-#: ch/typeck.c:2689
-msgid "range's high bound < mode's low bound"
+#: toplev.c:1283
+msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr ""
-#: ch/typeck.c:2694
-msgid "range's high bound > mode's high bound"
+#: toplev.c:1287
+msgid "Don't warn about too many arguments to format functions"
+msgstr "Varna inte om för många argument till format-funktioner"
+
+#: toplev.c:1289
+msgid "Warn about non-string-literal format strings"
msgstr ""
-#: ch/typeck.c:2699
-msgid "range mode high bound < range mode low bound"
+#: toplev.c:1292
+msgid "Warn about possible security problems with format functions"
msgstr ""
-#: ch/typeck.c:2704
-msgid "range's low bound < mode's low bound"
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
msgstr ""
-#: ch/typeck.c:2709
-msgid "range's low bound > mode's high bound"
+#: toplev.c:1298
+msgid "Warn about implicit function declarations"
msgstr ""
-#: ch/typeck.c:2817
-msgid "Stepsize in STEP must be an integer constant"
+#: toplev.c:1302
+msgid "Warn when a declaration does not specify a type"
msgstr ""
-#: ch/typeck.c:2821
-msgid "Stepsize in STEP must be > 0"
+#: toplev.c:1307
+msgid "Warn about the use of the #import directive"
msgstr ""
-#: ch/typeck.c:2827
-msgid "Stepsize in STEP must be the natural width of the array element mode"
+#: toplev.c:1311
+msgid "Do not warn about using 'long long' when -pedantic"
msgstr ""
-#: ch/typeck.c:2833 ch/typeck.c:3134
-msgid "Starting word in POS must be an integer constant"
+#: toplev.c:1313
+msgid "Warn about suspicious declarations of main"
+msgstr "Varna om tveksamma deklarationer av main"
+
+#: toplev.c:1316
+#, fuzzy
+msgid "Warn about possibly missing braces around initializers"
+msgstr "Varna om eventuellt saknade parenteser"
+
+#: toplev.c:1319
+msgid "Warn about global funcs without previous declarations"
msgstr ""
-#: ch/typeck.c:2837 ch/typeck.c:3141
-msgid "Starting word in POS must be >= 0"
+#: toplev.c:1322
+msgid "Warn about global funcs without prototypes"
msgstr ""
-#: ch/typeck.c:2839
-msgid "Starting word in POS within STEP must be 0"
+#: toplev.c:1325
+msgid "Warn about use of multicharacter literals"
msgstr ""
-#: ch/typeck.c:2851 ch/typeck.c:3158
-msgid "Starting bit in POS must be an integer constant"
+#: toplev.c:1328
+msgid "Warn about externs not at file scope level"
msgstr ""
-#: ch/typeck.c:2857
-msgid "Starting bit in POS within STEP must be 0"
+#: toplev.c:1331
+msgid "Warn about possible missing parentheses"
+msgstr "Varna om eventuellt saknade parenteser"
+
+#: toplev.c:1334
+msgid "Warn about function pointer arithmetic"
+msgstr "Varna om aritmetik med funktionspekare"
+
+#: toplev.c:1337
+msgid "Warn about multiple declarations of the same object"
+msgstr "Varna om multipla deklarationer av samma objekt"
+
+#: toplev.c:1340
+#, fuzzy
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "returtyp sätts till \"int\""
+
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
msgstr ""
-#: ch/typeck.c:2861 ch/typeck.c:3166
-msgid "Starting bit in POS must be >= 0"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "Varna om jämförelser mellan signed/unsigned"
+
+#: toplev.c:1349
+msgid "Warn about non-prototyped function decls"
msgstr ""
-#: ch/typeck.c:2869 ch/typeck.c:3174
-msgid "Starting bit in POS must be < the width of a word"
+#: toplev.c:1352
+#, fuzzy
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "Varna om index har typen \"char\""
+
+#: toplev.c:1355
+msgid "Warn when trigraphs are encountered"
msgstr ""
-#: ch/typeck.c:2883 ch/typeck.c:3188
-msgid "Length in POS must be an integer constant"
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
msgstr ""
-#: ch/typeck.c:2890 ch/typeck.c:3195
-msgid "Length in POS must be > 0"
+#: toplev.c:1363
+msgid "Mark strings as 'const char *'"
+msgstr "Markera strängar som \"const char *\""
+
+#: toplev.c:1508
+msgid "Warn when a function is unused"
+msgstr "Varna när en funktion är oanvänd"
+
+#: toplev.c:1510
+msgid "Warn when a label is unused"
+msgstr "Varna när en etikett är oanvänd"
+
+#: toplev.c:1512
+msgid "Warn when a function parameter is unused"
+msgstr "Varna när en funktionsparameter är oanvänd"
+
+#: toplev.c:1514
+msgid "Warn when a variable is unused"
+msgstr "Varna när en variabel är oanvänd"
+
+#: toplev.c:1516
+msgid "Warn when an expression value is unused"
+msgstr "Varna när ett uttrycksvärde är oanvänt"
+
+#: toplev.c:1518
+msgid "Do not suppress warnings from system headers"
msgstr ""
-#: ch/typeck.c:2897 ch/typeck.c:3208
-msgid "End bit in POS must be an integer constant"
+#: toplev.c:1520
+msgid "Treat all warnings as errors"
msgstr ""
-#: ch/typeck.c:2906 ch/typeck.c:3217
-msgid "End bit in POS must be >= the start bit"
+#: toplev.c:1522
+msgid "Warn when one local variable shadows another"
msgstr ""
-#: ch/typeck.c:2912 ch/typeck.c:3222
-msgid "End bit in POS must be < the width of a word"
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-#: ch/typeck.c:2924
-msgid ""
-"The length specified on POS within STEP must be the natural length of the "
-"array element type"
+#: toplev.c:1526
+#, fuzzy
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Varna om eventuellt saknade parenteser"
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
msgstr ""
-#: ch/typeck.c:2929
-msgid "Step size in STEP must be >= the length in POS"
+#: toplev.c:1530
+msgid "Warn about returning structures, unions or arrays"
msgstr ""
-#: ch/typeck.c:2955
-msgid "array index must be a range, not a single integer"
+#: toplev.c:1532
+msgid "Warn about pointer casts which increase alignment"
msgstr ""
-#: ch/typeck.c:2961
-msgid "array index is not a discrete mode"
+#: toplev.c:1534
+msgid "Warn about code that will never be executed"
msgstr ""
-#: ch/typeck.c:3232
-msgid ""
-"The length specified on POS must be the natural length of the field type"
+#: toplev.c:1536
+#, fuzzy
+msgid "Warn about uninitialized automatic variables"
+msgstr "Varna om aritmetik med funktionspekare"
+
+#: toplev.c:1538
+msgid "Warn when an inlined function cannot be inlined"
msgstr ""
-#: ch/typeck.c:3241
-msgid "STRUCT fields must be layed out in monotonically increasing order"
+#: toplev.c:1540
+msgid "Warn when the packed attribute has no effect on struct layout"
msgstr ""
-#: ch/typeck.c:3304
-msgid "If one field has a POS layout, then all fields must have a POS layout"
+#: toplev.c:1542
+msgid "Warn when padding is required to align struct members"
msgstr ""
-#: ch/typeck.c:3447
-msgid "parameterised structures not implemented"
+#: toplev.c:1544
+msgid "Warn when an optimization pass is disabled"
msgstr ""
-#: ch/typeck.c:3452
-msgid "invalid parameterised type"
+#: toplev.c:1546
+msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr ""
-#: collect2.c:454
-msgid "internal error"
-msgstr "internt fel"
+#: toplev.c:1548
+msgid "Warn about functions which might be candidates for attribute noreturn"
+msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn"
-#: collect2.c:935
-msgid "no arguments"
-msgstr "inga argument"
+#: toplev.c:1550
+#, fuzzy
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn"
-#: collect2.c:1289 collect2.c:1437 collect2.c:1470
-#, c-format
-msgid "fopen %s"
-msgstr "fopen %s"
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
+#, fuzzy, c-format
+msgid "invalid option `%s'"
+msgstr "Ogiltig flagga \"%s\""
-#: collect2.c:1292 collect2.c:1442 collect2.c:1473
+#: toplev.c:2031
#, c-format
-msgid "fclose %s"
-msgstr "fclose %s"
+msgid "`%s' used but never defined"
+msgstr "\"%s\" är använd men inte definierad"
-#: collect2.c:1301
+#: toplev.c:2034
#, c-format
-msgid "collect2 version %s"
-msgstr ""
+msgid "`%s' declared `static' but never defined"
+msgstr "\"%s\" är deklarerad som \"static\" men definieras aldrig"
-#: collect2.c:1391
+#: toplev.c:2057
#, c-format
-msgid "%d constructor(s) found\n"
-msgstr "%d konstruerare hittad(e)\n"
+msgid "`%s' defined but not used"
+msgstr "\"%s\" är definierad men inte använd"
-#: collect2.c:1392
+#: toplev.c:2280
#, c-format
-msgid "%d destructor(s) found\n"
-msgstr "%d destruerare hittad(e)\n"
+msgid "invalid register name `%s' for register variable"
+msgstr ""
-#: collect2.c:1393
-#, c-format
-msgid "%d frame table(s) found\n"
+#: toplev.c:3697
+msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+msgstr " -ffixed-<register> Markera <register> som ej tillgängligt för kompilatorn\n"
+
+#: toplev.c:3698
+msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+msgstr " -fcall-used-<register> Ange att <register> förstörs av funktionsanrop\n"
+
+#: toplev.c:3699
+msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+msgstr " -fcall-saved-<register> Ange att <register> bevaras av funktioner\n"
+
+#: toplev.c:3700
+msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+msgstr " -finline-limit=<nummer> Begränsa storlek på inline-funktioner till <nummer>\n"
+
+#: toplev.c:3701
+msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+msgstr " -fmessage-length=<nummer> Begränsa felmeddelandens längd till <nummer> tecken per rad. 0 stänger av radbrytning\n"
+
+#: toplev.c:3702
+msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+msgstr " -fdiagnostics-show-location=[once | every-line] Anger hur ofta källkodspositioner skall skrivas ut, som prefix, i början av utskrift vid radbrytning\n"
+
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
msgstr ""
-#: collect2.c:1534
-#, c-format
-msgid "%s terminated with signal %d [%s]%s"
-msgstr "%s terminerade med signal %d [%s]%s"
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr ""
-#: collect2.c:1553
-#, c-format
-msgid "%s returned %d exit status"
-msgstr "%s returnerade avslutningsstatus %d"
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr ""
-#: collect2.c:1581
-#, c-format
-msgid "[cannot find %s]"
-msgstr "[kan inte hitta %s]"
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
-#: collect2.c:1596
-#, c-format
-msgid "cannot find `%s'"
-msgstr "kan inte hitta \"%s\""
+#: toplev.c:3718
+#, fuzzy
+msgid " -O[number] Set optimization level to [number]\n"
+msgstr " -O[nummer] Sätt optimeringsnivå till [nummer]\n"
-#: collect2.c:1607 collect2.c:1610
-#, c-format
-msgid "redirecting stdout: %s"
-msgstr "omdirigerar stdout: %s"
+#: toplev.c:3719
+#, fuzzy
+msgid " -Os Optimize for space rather than speed\n"
+msgstr " -Os Optimera för storlek istället för hastighet\n"
-#: collect2.c:1653
-#, c-format
-msgid "[Leaving %s]\n"
-msgstr "[Lämnar %s]\n"
+#: toplev.c:3731
+msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+msgstr " -pedantic Ge varningar som krävs för att strikt följa ISO C\n"
-#: collect2.c:1894
-#, c-format
+#: toplev.c:3732
+msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+msgstr " -pedantic-errors Som -pedantic men ger fel istället\n"
+
+#: toplev.c:3733
+msgid " -w Suppress warnings\n"
+msgstr " -w Stoppa varningar\n"
+
+#: toplev.c:3734
+msgid " -W Enable extra warnings\n"
+msgstr " -W Slå på extra varningar\n"
+
+#: toplev.c:3745
+msgid " -Wunused Enable unused warnings\n"
+msgstr " -Wunused Slå på oanvända varningar\n"
+
+#: toplev.c:3746
+msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+msgstr " -Wlarger-than-<nummer> Varna om objekt är större än <nummer> bytes\n"
+
+#: toplev.c:3747
+msgid " -p Enable function profiling\n"
+msgstr " -p Slå på funktionsprofilering\n"
+
+#: toplev.c:3748
+msgid " -o <file> Place output into <file> \n"
+msgstr " -o <fil> Skriv utdata i <fil> \n"
+
+#: toplev.c:3749
msgid ""
-"\n"
-"write_c_file - output name is %s, prefix is %s\n"
+" -G <number> Put global and static data smaller than <number>\n"
+" bytes into a special section (on some targets)\n"
msgstr ""
+" -G <nummer> Placera global and statisk data mindre än <nummer>\n"
+" bytes i en speciell sektion (vissa arkitekturer)\n"
-#: collect2.c:2107
-msgid "cannot find `nm'"
-msgstr "kan inte hitta \"nm\""
+#: toplev.c:3760
+msgid " -aux-info <file> Emit declaration info into <file>\n"
+msgstr " -aux-info <fil> Generera deklarationsinfo till fil <fil>\n"
-#: collect2.c:2117 collect2.c:2559
-msgid "pipe"
-msgstr "rör"
+#: toplev.c:3761
+msgid " -quiet Do not display functions compiled or elapsed time\n"
+msgstr " -quiet Visa inte kompilerade funktioner eller tiden som förbrukats\n"
-#: collect2.c:2121 collect2.c:2563
-msgid "fdopen"
-msgstr "fdopen"
+#: toplev.c:3762
+msgid " -version Display the compiler's version\n"
+msgstr " -version Visa kompilatorns version\n"
-#: collect2.c:2147 collect2.c:2589
-#, c-format
-msgid "dup2 %d 1"
-msgstr "dup2 %d 1"
+#: toplev.c:3763
+msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+msgstr " -d[bokstäver] Slå på dumpning från angivna delar av kompilatorn\n"
-#: collect2.c:2150 collect2.c:2153 collect2.c:2166 collect2.c:2592
-#: collect2.c:2595 collect2.c:2608
-#, c-format
-msgid "close %d"
-msgstr "close %d"
+#: toplev.c:3764
+msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+msgstr ""
-#: collect2.c:2156
+#: toplev.c:3766
+msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+msgstr ""
+
+#: toplev.c:3768
+msgid " --help Display this information\n"
+msgstr " --help Visa den här informatationen\n"
+
+#: toplev.c:3783
+msgid ""
+"\n"
+"Language specific options:\n"
+msgstr ""
+
+#: toplev.c:3795
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid " %-23.23s [undocumented]\n"
+msgstr " %-23.23s [odokumenterad]\n"
-#: collect2.c:2210
+#: toplev.c:3803 toplev.c:3817
#, c-format
-msgid "init function found in object %s"
+msgid ""
+"\n"
+"There are undocumented %s specific options as well.\n"
msgstr ""
+"\n"
+"Det finns dessutom odokumenterade %s-specifika flaggor.\n"
-#: collect2.c:2218
+#: toplev.c:3807
#, c-format
-msgid "fini function found in object %s"
+msgid ""
+"\n"
+" Options for %s:\n"
msgstr ""
+"\n"
+" Flaggor för %s:\n"
-#: collect2.c:2241 collect2.c:2647
-msgid "fclose"
-msgstr "fclose"
+#: toplev.c:3844
+msgid ""
+"\n"
+"Target specific options:\n"
+msgstr ""
+"\n"
+"Speciella flaggor för målarkitektur:\n"
-#: collect2.c:2286
+#: toplev.c:3858 toplev.c:3877
#, c-format
-msgid "unable to open file '%s'"
-msgstr "kan inte öppna fil \"%s\""
+msgid " -m%-23.23s [undocumented]\n"
+msgstr " -m%-23.23s [odokumenterad]\n"
-#: collect2.c:2288
-#, c-format
-msgid "unable to stat file '%s'"
+#: toplev.c:3886
+msgid ""
+"\n"
+"There are undocumented target specific options as well.\n"
msgstr ""
+"\n"
+"Det finns dessutom odokumenterade flaggor speciellt för målarkitekturen.\n"
-#: collect2.c:2294
-#, c-format
-msgid "unable to mmap file '%s'"
-msgstr "kan inte göra mmap på fil \"%s\""
-
-#: collect2.c:2447
-msgid "not found\n"
-msgstr "hittades inte\n"
+#: toplev.c:3888
+msgid " They exist, but they are not documented.\n"
+msgstr " De finns, men är inte dokumenterade.\n"
-#: collect2.c:2449 collect2.c:2626
+#: toplev.c:3941
#, c-format
-msgid "dynamic dependency %s not found"
-msgstr ""
+msgid "unrecognized gcc debugging option: %c"
+msgstr "ej igenkänd debuggningsflagga för gcc: %c"
-#: collect2.c:2469
+#: toplev.c:4007
+#, fuzzy, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "\"%s\": okänd eller icke supportad flagga till -g"
+
+#: toplev.c:4034
#, c-format
-msgid "bad magic number in file '%s'"
-msgstr "felaktigt magiskt nummer i fil \"%s\""
+msgid "unrecognized register name `%s'"
+msgstr "Känner inte igen registernamn \"%s\""
-#: collect2.c:2491
-msgid "dynamic dependencies.\n"
-msgstr "dynamiskt beroende.\n"
+#: toplev.c:4059 toplev.c:5012
+#, fuzzy, c-format
+msgid "unrecognized option `%s'"
+msgstr "ej igenkänd flagga `-%s'"
-#: collect2.c:2550
-msgid "cannot find `ldd'"
-msgstr "kan inte hitta \"ldd\""
+#: toplev.c:4107
+#, fuzzy
+msgid "-Wid-clash-LEN is no longer supported"
+msgstr "-f%s stödjs inte längre"
-#: collect2.c:2598
+#: toplev.c:4184
#, c-format
-msgid "execv %s"
-msgstr "execv %s"
+msgid "use -gdwarf -g%d for DWARF v1, level %d"
+msgstr ""
-#: collect2.c:2611
-msgid ""
-"\n"
-"ldd output with constructors/destructors.\n"
+#: toplev.c:4187
+msgid "use -gdwarf-2 for DWARF v2"
msgstr ""
-#: collect2.c:2638
+#: toplev.c:4192
#, c-format
-msgid "unable to open dynamic dependency '%s'"
+msgid "ignoring option `%s' due to invalid debug level specification"
msgstr ""
-#: collect2.c:2752
+#: toplev.c:4215 toplev.c:5010
#, c-format
-msgid "%s: not a COFF file"
-msgstr "%s: är inte en COFF-fil"
+msgid "`%s': unknown or unsupported -g option"
+msgstr "\"%s\": okänd eller icke supportad flagga till -g"
-#: collect2.c:2871
+#: toplev.c:4222
#, c-format
-msgid "%s: cannot open as COFF file"
-msgstr "%s: kan inte öppna som COFF-fil"
+msgid "`%s' ignored, conflicts with `-g%s'"
+msgstr "\"%s\" ignorerad, i konflikt med \"-g%s\""
-#: collect2.c:2927
-#, c-format
-msgid "Library lib%s not found"
-msgstr "Hittade inte bibliotek lib%s"
+#: toplev.c:4304
+msgid "-param option missing argument"
+msgstr ""
-#: collect2.c:3056
+#: toplev.c:4313
#, c-format
-msgid "open %s"
-msgstr "open %s"
+msgid "invalid --param option: %s"
+msgstr "ogiltig flagga till --param: %s"
-#: collect2.c:3079
-msgid "incompatibilities between object file & expected values"
-msgstr ""
+#: toplev.c:4325
+#, c-format
+msgid "invalid parameter value `%s'"
+msgstr "ogiltigt parametervärde \"%s\""
-#: collect2.c:3152
+#: toplev.c:4565
#, c-format
msgid ""
-"\n"
-"Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+"%s%s%s version %s (%s)\n"
+"%s\tcompiled by GNU C version %s.\n"
+"%s%s%s version %s (%s) compiled by CC.\n"
msgstr ""
-"\n"
-"Processar symboltabell #%d, index = 0x%.8lx, sort = %s\n"
-#: collect2.c:3161
-msgid "string section missing"
-msgstr "strängsektionen saknas"
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
-#: collect2.c:3164
-msgid "section pointer missing"
-msgstr "sektionspekare saknas"
+#: toplev.c:4630
+msgid "options passed: "
+msgstr ""
-#: collect2.c:3212
-msgid "no symbol table found"
-msgstr "hittade ingen symboltabell"
+#: toplev.c:4659
+msgid "options enabled: "
+msgstr ""
-#: collect2.c:3225
-msgid "no cmd_strings found"
-msgstr "hittar ingen cmd_strings"
+#: toplev.c:4718 java/jcf-write.c:3453
+#, c-format
+msgid "can't open %s for writing"
+msgstr "kan inte öppna fil %s för skrivning"
-#: collect2.c:3237
-msgid ""
-"\n"
-"Updating header and load commands.\n"
-"\n"
-msgstr ""
+#: toplev.c:5002
+#, fuzzy, c-format
+msgid "ignoring command line option '%s'"
+msgstr "Ignorerar kommandoradsflagga \"%s\""
-#: collect2.c:3244
+#: toplev.c:5005
#, c-format
-msgid "load command map, %d cmds, new size %ld.\n"
-msgstr "ladda kommandomappning, %d kommandon, ny storlek %ld.\n"
+msgid "(it is valid for %s but not the selected language)"
+msgstr ""
-#: collect2.c:3275
-msgid ""
-"writing load commands.\n"
-"\n"
+#: toplev.c:5039
+msgid "-Wuninitialized is not supported without -O"
msgstr ""
-#: collect2.c:3295
-#, c-format
-msgid "close %s"
+#: toplev.c:5094
+msgid "instruction scheduling not supported on this target machine"
msgstr ""
-#: collect2.c:3369
-msgid "could not convert 0x%l.8x into a region"
+#: toplev.c:5098
+msgid "this target machine does not have delayed branches"
msgstr ""
-#: collect2.c:3373
+#: toplev.c:5112
#, c-format
-msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+msgid "-f%sleading-underscore not supported on this target machine"
msgstr ""
-#: collect2.c:3500
-msgid "bad magic number"
+#: toplev.c:5175
+#, fuzzy
+msgid "-ffunction-sections not supported for this target"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: toplev.c:5180
+#, fuzzy
+msgid "-fdata-sections not supported for this target"
+msgstr "-fdata-sections stöds inte för AIX"
+
+#: toplev.c:5187
+msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr ""
-#: collect2.c:3501
-msgid "bad header version"
+#: toplev.c:5194
+#, fuzzy
+msgid "-fprefetch-loop-arrays not supported for this target"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: toplev.c:5200
+msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr ""
-#: collect2.c:3502
-msgid "bad raw header version"
+#: toplev.c:5209
+#, fuzzy
+msgid "-fprefetch-loop-arrays is not supported with -Os"
+msgstr "profilering stöds inte tillsammans med -mg\n"
+
+#: toplev.c:5215
+msgid "-ffunction-sections may affect debugging on some targets"
msgstr ""
-#: collect2.c:3503
-msgid "raw header buffer too small"
+#: toplev.c:5327
+#, c-format
+msgid "error writing to %s"
+msgstr "fel vid skrivning till %s"
+
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
+#, c-format
+msgid "error closing %s"
+msgstr "fel vid stängning av %s"
+
+#: tree-dump.c:702
+#, c-format
+msgid "could not open dump file `%s'"
+msgstr "kunde inte öppna dump-fil \"%s\""
+
+#: tree-dump.c:778
+#, fuzzy, c-format
+msgid "ignoring unknown option `%.*s' in `-f%s'"
+msgstr "Ignorerar kommandoradsflagga \"%s\""
+
+#: tree.c:3645
+msgid "arrays of functions are not meaningful"
msgstr ""
-#: collect2.c:3504
-msgid "old raw header file"
+#: tree.c:3702
+msgid "function return type cannot be function"
msgstr ""
-#: collect2.c:3505
-msgid "unsupported version"
-msgstr "ej stödd version"
+#: tree.c:4557
+msgid "invalid initializer for bit string"
+msgstr ""
-#: collect2.c:3507
+#: tree.c:4616
#, c-format
-msgid "unknown {de,en}code_mach_o_hdr return value %d"
+msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr ""
-#: collect2.c:3527
+#: tree.c:4633
#, c-format
-msgid "fstat %s"
-msgstr "fstat %s"
+msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+msgstr ""
-#: collect2.c:3564 collect2.c:3612
+#: tree.c:4650
#, c-format
-msgid "lseek %s 0"
-msgstr "lseek %s 0"
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr ""
-#: collect2.c:3568
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
-msgid "read %s"
-msgstr "read %s"
+msgid "%s causes a section type conflict"
+msgstr ""
-#: collect2.c:3571
+#: varasm.c:841
#, c-format
-msgid "read %ld bytes, expected %ld, from %s"
-msgstr "läste %ld bytes, förväntade %ld, från %s"
+msgid "register name not specified for `%s'"
+msgstr ""
-#: collect2.c:3592
+#: varasm.c:843
#, c-format
-msgid "msync %s"
-msgstr "msync %s"
+msgid "invalid register name for `%s'"
+msgstr ""
-#: collect2.c:3599
+#: varasm.c:846
#, c-format
-msgid "munmap %s"
-msgstr "munmap %s"
+msgid "data type of `%s' isn't suitable for a register"
+msgstr ""
-#: collect2.c:3616
+#: varasm.c:849
#, c-format
-msgid "write %s"
-msgstr "write %s"
+msgid "register specified for `%s' isn't suitable for data type"
+msgstr ""
-#: collect2.c:3619
-#, c-format
-msgid "wrote %ld bytes, expected %ld, to %s"
-msgstr "skrev %ld bytes, förväntade %ld, till %s"
+#: varasm.c:858
+msgid "global register variable has initial value"
+msgstr "global registervariabel har startvärde"
-#: combine.c:12577
+#: varasm.c:861
+msgid "volatile register variables don't work as you might wish"
+msgstr ""
+
+#: varasm.c:894
#, c-format
-msgid ""
-";; Combiner statistics: %d attempts, %d substitutions (%d requiring new "
-"space),\n"
-";; %d successes.\n"
-"\n"
+msgid "register name given for non-register variable `%s'"
msgstr ""
-#: combine.c:12587
+#: varasm.c:1542
#, c-format
-msgid ""
-"\n"
-";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
-";; %d successes.\n"
+msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr ""
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
msgstr ""
-#: config/a29k/a29k.c:1007
-#, c-format
-msgid "invalid %%Q value"
-msgstr "ogiltigt %%Q-värde"
+#: varasm.c:1610
+#, fuzzy, c-format
+msgid "requested alignment for %s is greater than implemented alignment of %d"
+msgstr "efterrågad minnesjustering är inte en potens av 2"
-#: config/a29k/a29k.c:1013 config/alpha/alpha.c:4055
-#, c-format
-msgid "invalid %%C value"
-msgstr "ogiltigt %%C-värde"
+#: varasm.c:4048
+msgid "initializer for integer value is too complicated"
+msgstr ""
-#: config/a29k/a29k.c:1019 config/alpha/alpha.c:3919
-#: config/rs6000/rs6000.c:4084
-#, c-format
-msgid "invalid %%N value"
-msgstr "ogiltigt %%N-värde"
+#: varasm.c:4053
+msgid "initializer for floating value is not a floating constant"
+msgstr ""
-#: config/a29k/a29k.c:1025 config/alpha/alpha.c:3990
-#: config/rs6000/rs6000.c:4046
+#: varasm.c:4120
+msgid "unknown set constructor type"
+msgstr ""
+
+#: varasm.c:4334
#, c-format
-msgid "invalid %%M value"
-msgstr "ogiltigt %%M-värde"
+msgid "invalid initial value for member `%s'"
+msgstr ""
-#: config/a29k/a29k.c:1031 config/alpha/alpha.c:3982
-#: config/rs6000/rs6000.c:4011
+#: varasm.c:4525 varasm.c:4568
#, c-format
-msgid "invalid %%m value"
-msgstr "ogiltigt %%m-värde"
+msgid "weak declaration of `%s' must precede definition"
+msgstr ""
-#: config/a29k/a29k.c:1133 config/alpha/alpha.c:3943 config/romp/romp.c:677
+#: varasm.c:4532
#, c-format
-msgid "invalid %%L value"
-msgstr "ogiltigt %%L-värde"
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr ""
-#: config/a29k/a29k.c:1138 config/rs6000/rs6000.c:4092
+#: varasm.c:4566
#, c-format
-msgid "invalid %%O value"
-msgstr "ogiltigt %%O-värde"
+msgid "weak declaration of `%s' must be public"
+msgstr ""
+
+#: varasm.c:4575
+#, fuzzy, c-format
+msgid "weak declaration of `%s' not supported"
+msgstr "omdeklaration av \"%s\""
+
+#: varasm.c:4602 varasm.c:4677
+msgid "only weak aliases are supported in this configuration"
+msgstr ""
+
+#: varasm.c:4685
+msgid "alias definitions not supported in this configuration; ignored"
+msgstr ""
-#: config/a29k/a29k.c:1144 config/alpha/alpha.c:3927
-#: config/rs6000/rs6000.c:4111
+#: varasm.c:4716
+#, fuzzy
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: varray.c:134
#, c-format
-msgid "invalid %%P value"
-msgstr "ogiltigt %%P-värde"
+msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+msgstr ""
-#: config/a29k/a29k.c:1154
+#. Print an error message for unrecognized stab codes.
+#: xcoffout.c:175
#, c-format
-msgid "invalid %%V value"
-msgstr "ogiltigt %%V-värde"
+msgid "no sclass for %s stab (0x%x)\n"
+msgstr ""
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
+#: pretty-print.h:97
+#, fuzzy, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "\"%s\" stöds inte av %s"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
msgstr ""
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
msgstr ""
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
msgstr ""
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
msgstr ""
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
-msgstr "Använd liten minnesmodell"
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr ""
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
-msgstr "Använd normal minnesmodell"
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr ""
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
-msgstr "Använd stor minnesmodell"
+#: params.def:131
+msgid "The maximum number of instructions to consider to fill a delay slot"
+msgstr ""
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
+#: params.def:142
+msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
+#: params.def:152
+msgid "The maximum length of scheduling's pending operations list"
msgstr ""
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
+#: params.def:159
+msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
+#: params.def:164
+msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr "Generera kod för stackkontroll"
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr ""
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
-msgstr "Generera inte kod för stackkontroll"
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
-msgstr "Fix för storem hårdvarubugg"
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
-msgstr "Fixa inte storem hårdvarubugg"
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
msgstr ""
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
msgstr ""
-#: config/a29k/a29k.h:118 config/i960/i960.h:288 config/mips/mips.h:382
-msgid "Use software floating point"
-msgstr "Använd mjukvaruflytttal"
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr ""
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: config/darwin-c.c:75
+msgid "too many #pragma options align=reset"
+msgstr ""
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
+msgid "malformed '#pragma options', ignoring"
msgstr ""
-#: config/alpha/alpha.c:201
+#: config/darwin-c.c:107
+#, fuzzy
+msgid "junk at end of '#pragma options'"
+msgstr "skräp vid slutet av \"#pragma %s\""
+
+#: config/darwin-c.c:117
+msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+msgstr ""
+
+#: config/darwin-c.c:130
+#, fuzzy
+msgid "missing '(' after '#pragma unused', ignoring"
+msgstr "saknas '(' efter predikat"
+
+#: config/darwin-c.c:148
+#, fuzzy
+msgid "missing ')' after '#pragma unused', ignoring"
+msgstr "saknas '(' efter predikat"
+
+#: config/darwin-c.c:151
+#, fuzzy
+msgid "junk at end of '#pragma unused'"
+msgstr "skräp vid slutet av \"#pragma %s\""
+
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
+msgid "-msystem-v and -p are incompatible"
+msgstr ""
+
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
+msgid "-msystem-v and -mthreads are incompatible"
+msgstr ""
+
+#: config/alpha/alpha.c:342
+#, fuzzy, c-format
+msgid "-f%s ignored for Unicos/Mk (not supported)"
+msgstr "-pipe stöds inte."
+
+#: config/alpha/alpha.c:366
+#, fuzzy
+msgid "-mieee not supported on Unicos/Mk"
+msgstr "-pipe stöds inte"
+
+#: config/alpha/alpha.c:377
+msgid "-mieee-with-inexact not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr ""
-#: config/alpha/alpha.c:215
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr ""
-#: config/alpha/alpha.c:230
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr ""
-#: config/alpha/alpha.c:249 config/alpha/alpha.c:261
+#: config/alpha/alpha.c:435
+#, fuzzy, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "ogiltigt värde (%s) till flagga -mcpu"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr ""
-#: config/alpha/alpha.c:269
+#: config/alpha/alpha.c:473
+msgid "trap mode not supported on Unicos/Mk"
+msgstr ""
+
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr ""
-#: config/alpha/alpha.c:285
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:290
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr ""
-#: config/alpha/alpha.c:319
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr ""
-#: config/alpha/alpha.c:334
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "ogiltigt värde \"%s\" till -memory-latency"
-#: config/alpha/alpha.c:3901 config/ia64/ia64.c:3368
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
+#, c-format
+msgid "invalid %%H value"
+msgstr ""
+
+#: config/alpha/alpha.c:5625
+#, fuzzy, c-format
+msgid "invalid %%J value"
+msgstr "ogiltigt värde %%B"
+
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "ogiltigt %%r-värde"
-#: config/alpha/alpha.c:3912 config/rs6000/rs6000.c:4157
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "ogiltigt %%R-värde"
-#: config/alpha/alpha.c:3935 config/romp/romp.c:719 config/romp/romp.c:726
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "ogiltigt %%N-värde"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "ogiltigt %%P-värde"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "ogiltigt %%h-värde"
-#: config/alpha/alpha.c:4025
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "ogiltigt %%L-värde"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "ogiltigt %%m-värde"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "ogiltigt %%M-värde"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "ogiltigt %%U-värde"
-#: config/alpha/alpha.c:4033 config/alpha/alpha.c:4044 config/romp/romp.c:685
-#: config/rs6000/rs6000.c:4165
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "ogiltigt %%s-värde"
-#: config/alpha/alpha.c:4092 config/rs6000/rs6000.c:3875
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "ogiltigt %%C-värde"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "ogiltigt %%E-värde"
-#: config/alpha/alpha.c:4113 config/romp/romp.c:960
-#: config/rs6000/rs6000.c:4458
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr ""
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr ""
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr ""
+
# fixme: fp = flyttal, men hur skall man skriva det. Förkortat eller FPU?
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:206 config/i386/i386.h:266 config/i386/i386.h:268
-#: config/i386/i386.h:270 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:303
-#: config/sparc/sparc.h:577 config/sparc/sparc.h:582
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr "Använd hårdvaru-fp"
-#: config/alpha/alpha.h:207 config/i386/i386.h:267 config/i386/i386.h:269
-#: config/rs6000/rs6000.h:305 config/sparc/sparc.h:579
-#: config/sparc/sparc.h:584
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr "Använd inte hårdvaru-fp"
-#: config/alpha/alpha.h:208
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr ""
-#: config/alpha/alpha.h:210
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr ""
-#: config/alpha/alpha.h:211
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr "Antag inte GAS"
-#: config/alpha/alpha.h:212
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr "Antag GAS"
-#: config/alpha/alpha.h:214
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr ""
-#: config/alpha/alpha.h:216
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:218
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr ""
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr ""
-#: config/alpha/alpha.h:221
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr "Använd VAX fp"
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr "Använd inte VAX fp"
-#: config/alpha/alpha.h:223
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr ""
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr ""
-#: config/alpha/alpha.h:229
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr ""
-#: config/alpha/alpha.h:231
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an initializer
-#. with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed
-#. part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
+#: config/alpha/alpha.h:307
+msgid "Emit code using explicit relocation directives"
+msgstr ""
+
+#: config/alpha/alpha.h:310
+msgid "Emit 16-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:312
+msgid "Emit 32-bit relocations to the small data areas"
+msgstr ""
+
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr ""
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:268
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr ""
-#: config/alpha/alpha.h:270
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr "Schemalägg för given CPU"
-#: config/alpha/alpha.h:272
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr ""
-#: config/alpha/alpha.h:274
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr ""
-#: config/alpha/alpha.h:276
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr ""
-#: config/alpha/alpha.h:278
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr ""
-#. The names we put in the hashtable will always be the unique versions gived to us by the stringtable, so we can just use their addresses as the keys.
-#. See if we already have an entry for this section.
-#: config/alpha/elf.h:354 config/elfos.h:466 config/i386/sco5.h:492
-#: config/pa/pa64-hpux.h:246 config/rs6000/sysv4.h:971
-#, c-format
-msgid "%s causes a section type conflict"
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
msgstr ""
-#: config/arc/arc.c:108
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/arc/arc.c:1666 config/m32r/m32r.c:2221
-msgid "invalid operand to %R code"
+#: config/arc/arc.c:362
+#, fuzzy, c-format
+msgid "argument of `%s' attribute is not a string constant"
+msgstr "argumentet till \"asm\" är inte en konstant sträng"
+
+#: config/arc/arc.c:369
+#, c-format
+msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+msgstr ""
+
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
+#, fuzzy, c-format
+msgid "invalid operand to %%R code"
msgstr "ogiltig operand för %R"
-#: config/arc/arc.c:1698 config/m32r/m32r.c:2244
-msgid "invalid operand to %H/%L code"
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
+#, fuzzy, c-format
+msgid "invalid operand to %%H/%%L code"
msgstr "ogiltig operand för %H/%L"
-#: config/arc/arc.c:1722 config/m32r/m32r.c:2321
-msgid "invalid operand to %U code"
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
+#, fuzzy, c-format
+msgid "invalid operand to %%U code"
msgstr "ogiltig operand för %U"
-#: config/arc/arc.c:1733
-msgid "invalid operand to %V code"
+#: config/arc/arc.c:1774
+#, fuzzy, c-format
+msgid "invalid operand to %%V code"
msgstr "ogiltig operand för %V"
#. Unknown flag.
-#: config/arc/arc.c:1740 config/m32r/m32r.c:2360 config/sparc/sparc.c:5888
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr ""
-#: config/arm/arm.c:372
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "flagga -mcpu=%s står i konflikt med flagga -march="
-#: config/arm/arm.c:382 config/rs6000/rs6000.c:311 config/sparc/sparc.c:317
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/arm/arm.c:518
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr "målprocessorn stödjer inte APCS-32"
-#: config/arm/arm.c:523
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr "målprocessorn stödjer inte APCS-26"
-#: config/arm/arm.c:529
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr ""
-#: config/arm/arm.c:535
-msgid "target CPU does not support THUMB instructions."
+#: config/arm/arm.c:621
+#, fuzzy
+msgid "target CPU does not support THUMB instructions"
msgstr "målprocessorn stödjer inte THUMB-instruktioner"
-#: config/arm/arm.c:549
-msgid ""
-"enabling backtrace support is only meaningful when compiling for the Thumb."
+#: config/arm/arm.c:635
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:552
-msgid ""
-"enabling callee interworking support is only meaningful when compiling for "
-"the Thumb."
+#: config/arm/arm.c:638
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:555
-msgid ""
-"enabling caller interworking support is only meaningful when compiling for "
-"the Thumb."
+#: config/arm/arm.c:641
+msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr ""
-#: config/arm/arm.c:561
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr ""
-#: config/arm/arm.c:567
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
-msgstr ""
+msgstr "-mapcs-stack-check är inkompatibel med -mno-apcs-frame"
-#: config/arm/arm.c:575
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic och -mapcs-reent är inkompatibla"
-#: config/arm/arm.c:578
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr ""
-#: config/arm/arm.c:586
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr ""
-#: config/arm/arm.c:594
-msgid "Passing floating point arguments in fp regs not yet supported"
+#: config/arm/arm.c:680
+msgid "passing floating point arguments in fp regs not yet supported"
msgstr ""
-#: config/arm/arm.c:623
+#: config/arm/arm.c:709
#, c-format
-msgid "Invalid floating point emulation option: -mfpe-%s"
+msgid "invalid floating point emulation option: -mfpe-%s"
msgstr ""
-#: config/arm/arm.c:647
-msgid "Structure size boundary can only be set to 8 or 32"
+#: config/arm/arm.c:733
+#, fuzzy
+msgid "structure size boundary can only be set to 8 or 32"
msgstr "Strukturstorleksgräns kan bara sättas till 8 eller 32"
-#: config/arm/arm.c:655
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register= är oanvändbar utan -fpic"
-#: config/arm/arm.c:664
+#: config/arm/arm.c:748
#, c-format
-msgid "Unable to use '%s' for PIC register"
+msgid "unable to use '%s' for PIC register"
msgstr ""
-#. FIXME - the way to handle this situation is to allow
-#. the pretend args to be dumped onto the stack, then
-#. reuse r3 to save IP. This would involve moving the
-#. copying of SP into IP until after the pretend args
-#. have been dumped, but this is not too hard.
-#. [See e.g. gcc.c-torture/execute/nest-stdar-1.c.]
-#: config/arm/arm.c:7836
-msgid "Unable to find a temporary location for static chain register"
-msgstr ""
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to functions"
+msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: config/arm/arm.c:8798
-msgid "Unable to compute real location of stacked parameter"
+#: config/arm/arm.c:9459
+msgid "unable to compute real location of stacked parameter"
msgstr ""
-#: config/arm/arm.c:9492
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr ""
-#: config/arm/arm.c:9704
-msgid "Interrupt Service Routines cannot be coded in Thumb mode."
+#: config/arm/arm.c:10389
+msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr ""
-#: config/arm/arm.h:421
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
+#, c-format
+msgid "initialized variable `%s' is marked dllimport"
+msgstr "initierad variabel \"%s\" är markerad som dllimport"
+
+#: config/arm/pe.c:177
+#, c-format
+msgid "static variable `%s' is marked dllimport"
+msgstr "statisk variabel \"%s\" är markerad som dllimport"
+
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr ""
-#: config/arm/arm.h:424
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr ""
-#: config/arm/arm.h:428
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr "Använd 32-bit version av APCS"
-#: config/arm/arm.h:430
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr "Använd 26-bit version av APCS"
-#: config/arm/arm.h:434
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr "Skicka FP-argument i FP-register"
-#: config/arm/arm.h:437
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr ""
-#: config/arm/arm.h:440
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr ""
-#: config/arm/arm.h:447
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr "Använd biblioteksrutiner för FP-operationer"
-#: config/arm/arm.h:449 config/i960/i960.h:286
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr "Använd flyttalsinstruktioner i hårdvara"
-#: config/arm/arm.h:451
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr "Antag att mål-CPU:n är konfigurerad som \"big endian\""
-#: config/arm/arm.h:453
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr "Antag att mål-CPU:n är konfigurerad som \"little endian\""
-#: config/arm/arm.h:455
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr "Antag att bytes är \"big endian\", ord är \"little endian\""
-#: config/arm/arm.h:457
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr ""
-#: config/arm/arm.h:460
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr ""
-#: config/arm/arm.h:463
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr ""
-#: config/arm/arm.h:466
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr ""
-#: config/arm/arm.h:469
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr ""
-#: config/arm/arm.h:472
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr ""
-#: config/arm/arm.h:476
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:479
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr ""
-#: config/arm/arm.h:482
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr ""
-#: config/arm/arm.h:486
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
msgstr ""
-#: config/arm/arm.h:496
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr "Ange namnet på målprocessorn"
-#: config/arm/arm.h:498
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr "Ange namnet på målarkitekturen"
-#: config/arm/arm.h:502
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr ""
-#: config/arm/arm.h:504
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr ""
-#: config/arm/arm.h:506
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr ""
-#: config/arm/pe.c:255 config/i386/winnt.c:339 config/mcore/mcore.c:3399
-#, c-format
-msgid "initialized variable `%s' is marked dllimport"
-msgstr "initierad variabel \"%s\" är markerad som dllimport"
-
-#: config/arm/pe.c:264 config/i386/winnt.c:348
-#, c-format
-msgid "static variable `%s' is marked dllimport"
-msgstr "statisk variabel \"%s\" är markerad som dllimport"
-
-#: config/arm/pe.h:62
+#: config/arm/pe.h:65
msgid "Ignore dllimport attribute for functions"
msgstr "Ignorera attributet dllimport för funktioner"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
+#: config/avr/avr.c:528
+#, c-format
+msgid "large frame pointer change (%d) with -mtiny-stack"
msgstr ""
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
+#: config/avr/avr.c:1135
+msgid "bad address, not (reg+disp):"
msgstr ""
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr ""
+#: config/avr/avr.c:1143
+#, fuzzy
+msgid "internal compiler error. Bad address:"
+msgstr "Internt kompilatorfel i %s, vid %s:%d"
-#: config/avr/avr.c:190
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr "MCU \"%s\" stöds inte"
+#: config/avr/avr.c:1156
+#, fuzzy
+msgid "internal compiler error. Unknown mode:"
+msgstr "Internt kompilatorfel i %s, vid %s:%d"
-#: config/avr/avr.c:430
-#, c-format
-msgid "large frame pointer change (%d) with -mtiny-stack"
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
+#, fuzzy
+msgid "invalid insn:"
+msgstr "ogiltig #line"
+
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
+msgid "incorrect insn:"
msgstr ""
-#: config/avr/avr.c:4704
-msgid "Only initialized variables can be placed into program memory area."
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
+#, fuzzy
+msgid "unknown move insn:"
+msgstr "okänt registernamn: %s"
+
+#: config/avr/avr.c:3003
+msgid "bad shift insn:"
msgstr ""
-#. `TARGET_...'
-#. This series of macros is to allow compiler command arguments to
-#. enable or disable the use of optional features of the target
-#. machine. For example, one machine description serves both the
-#. 68000 and the 68020; a command argument tells the compiler whether
-#. it should use 68020-only instructions or not. This command
-#. argument works by means of a macro `TARGET_68020' that tests a bit
-#. in `target_flags'.
-#.
-#. Define a macro `TARGET_FEATURENAME' for each such option. Its
-#. definition should test a bit in `target_flags'; for example:
-#.
-#. #define TARGET_68020 (target_flags & 1)
-#.
-#. One place where these macros are used is in the
-#. condition-expressions of instruction patterns. Note how
-#. `TARGET_68020' appears frequently in the 68000 machine description
-#. file, `m68k.md'. Another place they are used is in the
-#. definitions of the other macros in the `MACHINE.h' file.
-#: config/avr/avr.h:99
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
+#, fuzzy
+msgid "internal compiler error. Incorrect shift:"
+msgstr "Internt kompilatorfel i %s, vid %s:%d"
+
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
+#, fuzzy
+msgid "only initialized variables can be placed into program memory area"
+msgstr "Initiera bara variabler som kan placeras i 8-bits området."
+
+#: config/avr/avr.c:4866
+#, fuzzy
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr "Initiera bara variabler som kan placeras i 8-bits området."
+
+#: config/avr/avr.c:4881
+#, fuzzy, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU \"%s\" stöds inte"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr ""
-#: config/avr/avr.h:101
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
msgstr ""
-#: config/avr/avr.h:103
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr ""
-#: config/avr/avr.h:105
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
msgstr ""
-#: config/avr/avr.h:107
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr ""
-#: config/avr/avr.h:110
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr ""
-#: config/avr/avr.h:144
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr ""
-#: config/avr/avr.h:145
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr ""
-#: config/avr/avr.h:2899
-msgid "Trampolines not supported\n"
+#. `GIV_SORT_CRITERION(GIV1, GIV2)'
+#. In some cases, the strength reduction optimization pass can
+#. produce better code if this is defined. This macro controls the
+#. order that induction variables are combined. This macro is
+#. particularly useful if the target has limited addressing modes.
+#. For instance, the SH target has only positive offsets in
+#. addresses. Thus sorting to put the smallest address first allows
+#. the most combinations to be found.
+#: config/avr/avr.h:2450
+#, fuzzy
+msgid "trampolines not supported"
+msgstr "-pipe stöds inte"
+
+#: config/c4x/c4x-c.c:69
+#, fuzzy, c-format
+msgid "missing '(' after '#pragma %s' - ignored"
+msgstr "saknas '(' efter predikat"
+
+#: config/c4x/c4x-c.c:72
+#, c-format
+msgid "missing function name in '#pragma %s' - ignored"
+msgstr ""
+
+#: config/c4x/c4x-c.c:77
+#, c-format
+msgid "malformed '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x.c:268
+#: config/c4x/c4x-c.c:79
#, c-format
-msgid "Unknown CPU version %d, using 40.\n"
+msgid "missing section name in '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x.c:859
+#: config/c4x/c4x-c.c:84
#, c-format
-msgid "ISR %s requires %d words of local vars, max is 32767."
+msgid "missing ')' for '#pragma %s' - ignored"
msgstr ""
-#: config/c4x/c4x.c:4525
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr "skräp vid slutet av \"#pragma %s\""
+#: config/c4x/c4x.c:280
+#, c-format
+msgid "unknown CPU version %d, using 40.\n"
+msgstr ""
+
+#: config/c4x/c4x.c:853
+#, c-format
+msgid "ISR %s requires %d words of local vars, max is 32767"
+msgstr ""
+
+#: config/c4x/c4x.c:1602
+msgid "using CONST_DOUBLE for address"
+msgstr ""
+
+#: config/c4x/c4x.c:1742
+msgid "c4x_address_cost: Invalid addressing mode"
+msgstr ""
+
+#: config/c4x/c4x.c:1884
+#, c-format
+msgid "c4x_print_operand: %%L inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1890
+#, c-format
+msgid "c4x_print_operand: %%N inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:1931
+#, c-format
+msgid "c4x_print_operand: %%O inconsistency"
+msgstr ""
+
+#: config/c4x/c4x.c:2026
+msgid "c4x_print_operand: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2069
+msgid "c4x_print_operand_address: Bad post_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2091
+msgid "c4x_print_operand_address: Bad pre_modify"
+msgstr ""
+
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
+msgid "c4x_print_operand_address: Bad operand case"
+msgstr ""
+
+#: config/c4x/c4x.c:2422
+msgid "c4x_rptb_insert: Cannot find start label"
+msgstr ""
+
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
+msgid "mode not QImode"
+msgstr ""
+
+#: config/c4x/c4x.c:3514
+msgid "invalid indirect memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3603
+msgid "invalid indirect (S) memory address"
+msgstr ""
+
+#: config/c4x/c4x.c:3944
+msgid "c4x_valid_operands: Internal error"
+msgstr ""
+
+#: config/c4x/c4x.c:4424
+msgid "c4x_operand_subword: invalid mode"
+msgstr ""
+
+#: config/c4x/c4x.c:4427
+msgid "c4x_operand_subword: invalid operand"
+msgstr ""
+
+#. We could handle these with some difficulty.
+#. e.g., *p-- => *(p-=2); *(p+1).
+#: config/c4x/c4x.c:4453
+msgid "c4x_operand_subword: invalid autoincrement"
+msgstr ""
+
+#: config/c4x/c4x.c:4459
+msgid "c4x_operand_subword: invalid address"
+msgstr ""
+
+#: config/c4x/c4x.c:4470
+msgid "c4x_operand_subword: address not offsettable"
+msgstr ""
+
+#: config/c4x/c4x.c:4670
+msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+msgstr ""
+
#. Name of the c4x assembler.
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -6677,359 +9335,585 @@ msgstr "skräp vid slutet av \"#pragma %s\""
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr "Liten minnesmodell"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr "Stor minnesmodell"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr ""
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr ""
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr ""
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr ""
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr "Generera kod för CPU C30"
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr "Generera kod för CPU C31"
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr "Generera kod för CPU C32"
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr "Generera kod för CPU C33"
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr "Generera kod för CPU C40"
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr "Generera kod för CPU C44"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr ""
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr ""
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr ""
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr "Skicka argument på stacken"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr "Skicka argument i register"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr ""
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr ""
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr ""
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr ""
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr ""
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr ""
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr ""
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr ""
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr ""
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr ""
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr ""
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr ""
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr ""
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr ""
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
msgstr ""
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
msgstr ""
-#: config/c4x/c4x.h:321
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr ""
-#: config/c4x/c4x.h:323
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr "Välj CPU att generera kod för"
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr "Generera kod för C400"
+#: config/cris/cris.c:599
+msgid "unexpected index-type in cris_print_index"
+msgstr ""
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr "Genrera kod för C300"
+#: config/cris/cris.c:615
+msgid "unexpected base-type in cris_print_base"
+msgstr ""
-#: config/convex/convex.h:52
-msgid "Generate code for c1"
-msgstr "Generera kod för c1"
+#: config/cris/cris.c:908
+#, c-format
+msgid "stackframe too big: %d bytes"
+msgstr ""
-#: config/convex/convex.h:53
-msgid "Generate code for c2"
-msgstr "Generera kod för c2"
+#: config/cris/cris.c:1223
+msgid "allocated but unused delay list in epilogue"
+msgstr ""
-#: config/convex/convex.h:54
-msgid "Generate code for c32"
-msgstr "Generera kod för c32"
+#: config/cris/cris.c:1233
+#, fuzzy
+msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+msgstr "funktion använder __builtin_eh_return"
-#: config/convex/convex.h:55 config/convex/convex.h:56
-msgid "Generate code for c34"
-msgstr "Generera kod för c34"
+#: config/cris/cris.c:1312
+#, fuzzy
+msgid "invalid operand for 'b' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1324
+#, fuzzy
+msgid "invalid operand for 'v' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1334
+#, fuzzy
+msgid "invalid operand for 'P' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1341
+#, fuzzy
+msgid "invalid operand for 'p' modifier"
+msgstr "ogiltig operand för %V"
-#: config/convex/convex.h:58
-msgid "Use standard calling sequence, with arg count word"
+#: config/cris/cris.c:1380
+#, fuzzy
+msgid "invalid operand for 'z' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
+#, fuzzy
+msgid "invalid operand for 'H' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1417
+msgid "bad register"
msgstr ""
-#: config/convex/convex.h:60
-msgid "Place arg count in a nop instruction (faster than push)"
+#: config/cris/cris.c:1455
+#, fuzzy
+msgid "invalid operand for 'e' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1472
+#, fuzzy
+msgid "invalid operand for 'm' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1497
+#, fuzzy
+msgid "invalid operand for 'A' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1505
+#, fuzzy
+msgid "invalid operand for 'D' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1519
+#, fuzzy
+msgid "invalid operand for 'T' modifier"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1528
+#, fuzzy
+msgid "invalid operand modifier letter"
+msgstr "ogiltig operand för %V"
+
+#: config/cris/cris.c:1536
+#, fuzzy, c-format
+msgid "internal error: bad register: %d"
+msgstr "internt fel: "
+
+#: config/cris/cris.c:1584
+msgid "unexpected multiplicative operand"
msgstr ""
-#: config/convex/convex.h:62
-msgid "Don't push arg count, depend on symbol table"
+#: config/cris/cris.c:1604
+msgid "unexpected operand"
msgstr ""
-#: config/convex/convex.h:64
-msgid "Use data cache for volatile mem refs (default)"
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
+#, fuzzy
+msgid "unrecognized address"
+msgstr "Känner inte igen registernamn \"%s\""
+
+#: config/cris/cris.c:2005
+msgid "internal error: sideeffect-insn affecting main effect"
msgstr ""
-#: config/convex/convex.h:66
-msgid "Don't use data cache for volatile mem refs"
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.c:2292
+msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr ""
-#: config/convex/convex.h:68
-msgid "Bypass data cache for volatile mem refs"
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
+#, fuzzy
+msgid "unrecognized supposed constant"
+msgstr "ej igenkänd flagga `-%s'"
+
+#: config/cris/cris.c:2473
+msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr ""
-#: config/convex/convex.h:69
-msgid "Use 64-bit longs"
-msgstr "Använd 64-bits long"
+#: config/cris/cris.c:2492
+#, c-format
+msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+msgstr ""
-#: config/convex/convex.h:70
-msgid "Use cc- and libc-compatible 32-bit longs"
+#: config/cris/cris.c:2520
+#, c-format
+msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr ""
-#: config/d30v/d30v.c:186
+#: config/cris/cris.c:2556
#, c-format
-msgid "Bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr ""
-#. This macro defines names of command options to set and clear bits in
-#. `target_flags'. Its definition is an initializer with a subgrouping for
-#. each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the option name, a
-#. number, which contains the bits to set in `target_flags', and a second
-#. string which is the description displayed by `--help'. If the number is
-#. negative then the bits specified by the number are cleared instead of being
-#. set. If the description string is present but empty, then no help
-#. information will be displayed for that option, but it will not count as an
-#. undocumented option. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. One of the subgroupings should have a null string. The number in this
-#. grouping is the default value for target_flags. Any target options act
-#. starting with that value.
-#.
-#. Here is an example which defines -m68000 and -m68020 with opposite meanings,
-#. and picks the latter as the default:
-#.
-#. #define TARGET_SWITCHES { { "68020", TARGET_MASK_68020, "" }, { "68000", -TARGET_MASK_68020, "Compile for the 68000" }, { "", TARGET_MASK_68020, "" }}
-#: config/d30v/d30v.h:447
+#: config/cris/cris.c:2574
+msgid "-fPIC and -fpic are not supported in this configuration"
+msgstr ""
+
+#: config/cris/cris.c:2590
+msgid "that particular -g option is invalid with -maout and -melinux"
+msgstr ""
+
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
+msgid "unexpected side-effects in address"
+msgstr ""
+
+#. Labels are never marked as global symbols.
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
+msgid "unexpected PIC symbol"
+msgstr ""
+
+#: config/cris/cris.c:2970
+msgid "PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
+msgid "unexpected address expression"
+msgstr ""
+
+#: config/cris/cris.c:3001
+msgid "emitting PIC operand, but PIC register isn't set up"
+msgstr ""
+
+#: config/cris/cris.c:3010
+msgid "unexpected NOTE as addr_const:"
+msgstr ""
+
+#: config/cris/aout.h:108
+msgid "Compile for the MMU-less Etrax 100-based elinux system"
+msgstr ""
+
+#: config/cris/aout.h:115
+msgid "For elinux, request a specified stack-size for this program"
+msgstr ""
+
+#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
+#: config/cris/cris.h:340
+msgid "Compile for ETRAX 4 (CRIS v3)"
+msgstr ""
+
+#: config/cris/cris.h:345
+msgid "Compile for ETRAX 100 (CRIS v8)"
+msgstr ""
+
+#: config/cris/cris.h:349
+msgid "Emit verbose debug information in assembly code"
+msgstr ""
+
+#: config/cris/cris.h:352
+#, fuzzy
+msgid "Do not use condition codes from normal instructions"
+msgstr "Använd inte bitfältsinstruktioner"
+
+#: config/cris/cris.h:356
+msgid "Do not emit addressing modes with side-effect assignment"
+msgstr ""
+
+#: config/cris/cris.h:359
+#, fuzzy
+msgid "Do not tune stack alignment"
+msgstr "Generera inte kod för stackkontroll"
+
+#: config/cris/cris.h:362
+msgid "Do not tune writable data alignment"
+msgstr ""
+
+#: config/cris/cris.h:365
+msgid "Do not tune code and read-only data alignment"
+msgstr ""
+
+#: config/cris/cris.h:374
+msgid "Align code and data to 32 bits"
+msgstr ""
+
+#: config/cris/cris.h:387
+msgid "Don't align items in code or data"
+msgstr ""
+
+#: config/cris/cris.h:390
+msgid "Do not emit function prologue or epilogue"
+msgstr ""
+
+#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
+#: config/cris/cris.h:394
+msgid "Use the most feature-enabling options allowed by other options"
+msgstr ""
+
+#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
+#: config/cris/cris.h:400
+msgid "Override -mbest-lib-options"
+msgstr ""
+
+#: config/cris/cris.h:432
+#, fuzzy
+msgid "Generate code for the specified chip or CPU version"
+msgstr "Generera kod för en given CPU"
+
+#: config/cris/cris.h:434
+#, fuzzy
+msgid "Tune alignment for the specified chip or CPU version"
+msgstr "minnesjustering kan inte anges för \"%s\""
+
+#: config/cris/cris.h:436
+msgid "Warn when a stackframe is larger than the specified size"
+msgstr ""
+
+#. Node: Profiling
+#: config/cris/cris.h:1022
+msgid "no FUNCTION_PROFILER for CRIS"
+msgstr ""
+
+#: config/cris/linux.h:71
+msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+msgstr ""
+
+#: config/d30v/d30v.c:207
+#, c-format
+msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+msgstr ""
+
+#: config/d30v/d30v.c:2666
+msgid "bad insn to d30v_print_operand_address:"
+msgstr ""
+
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
+msgid "bad insn to d30v_print_operand_memory_reference:"
+msgstr ""
+
+#: config/d30v/d30v.c:2851
+msgid "bad insn to d30v_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2860
+msgid "bad insn to d30v_print_operand, 'A' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2867
+msgid "bad insn to d30v_print_operand, 'M' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2921
+msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2932
+msgid "bad insn to print_operand, 'B' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2939
+msgid "bad insn to print_operand, 'E' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2957
+msgid "bad insn to print_operand, 'R' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
+msgid "bad insn to print_operand, 's' modifier:"
+msgstr ""
+
+#: config/d30v/d30v.c:3003
+msgid "bad insn in d30v_print_operand, 0 case"
+msgstr ""
+
+#: config/d30v/d30v.c:3301
+msgid "d30v_emit_comparison"
+msgstr ""
+
+#: config/d30v/d30v.c:3345
+msgid "bad call to d30v_move_2words"
+msgstr ""
+
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:450
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr ""
-#: config/d30v/d30v.h:453
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr ""
-#: config/d30v/d30v.h:456
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr ""
-#: config/d30v/d30v.h:459
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr ""
-#: config/d30v/d30v.h:462
-msgid "Make adjacent short instructions parallel if possible."
+#: config/d30v/d30v.h:129
+msgid "Make adjacent short instructions parallel if possible"
msgstr ""
-#: config/d30v/d30v.h:465
-msgid "Do not make adjacent short instructions parallel."
+#: config/d30v/d30v.h:132
+msgid "Do not make adjacent short instructions parallel"
msgstr ""
-#: config/d30v/d30v.h:468 config/d30v/d30v.h:471
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr ""
-#: config/d30v/d30v.h:474
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of command
-#. options that have values. Its definition is an initializer with a
-#. subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the fixed part of
-#. the option name, the address of a variable, and a description string. The
-#. variable, type `char *', is set to the variable part of the given option if
-#. the fixed part matches. The actual option name is made by appending `-m' to
-#. the specified name.
-#.
-#. Here is an example which defines `-mshort-data-<number>'. If the given
-#. option is `-mshort-data-512', the variable `m88k_short_data' will be set to
-#. the string "512".
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data, "Specify the size of the short data section" } }
-#: config/d30v/d30v.h:501
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr ""
-#: config/d30v/d30v.h:504
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr ""
-#: config/dsp16xx/dsp16xx.c:1225 config/dsp16xx/dsp16xx.c:1250
-msgid "Stack size > 32k"
+#: config/dsp16xx/dsp16xx.c:1446 config/dsp16xx/dsp16xx.c:1469
+#, fuzzy
+msgid "stack size > 32k"
msgstr "Stackstorlek > 32k"
-#: config/dsp16xx/dsp16xx.c:1759 config/dsp16xx/dsp16xx.c:1999
-msgid "inline float constants not supported on this host"
+#: config/dsp16xx/dsp16xx.c:1678
+#, fuzzy
+msgid "invalid addressing mode"
+msgstr "ogiltig kod"
+
+#: config/dsp16xx/dsp16xx.c:1821
+msgid "bad register extension code"
msgstr ""
-#. Output assembler code to FILE to increment profiler label # LABELNO
-#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1188 config/dsp16xx/dsp16xx.h:1193
-#: config/dsp16xx/dsp16xx.h:1198 config/dsp16xx/dsp16xx.h:1840
-#: config/dsp16xx/dsp16xx.h:1845
-msgid "Profiling not implemented yet."
-msgstr "Profilering är inte implementerat ännu."
+#: config/dsp16xx/dsp16xx.c:1921
+#, fuzzy
+msgid "invalid offset in ybase addressing"
+msgstr "ogiltig användning av void-uttryck"
-#. Emit RTL insns to initialize the variable parts of a trampoline.
-#. FNADDR is an RTX for the address of the function's pure code.
-#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1209 config/dsp16xx/dsp16xx.h:1221
-msgid "Trampolines not yet implemented"
+#: config/dsp16xx/dsp16xx.c:1924
+#, fuzzy
+msgid "invalid register in ybase addressing"
+msgstr "ogiltig användning av void-uttryck"
+
+#: config/dsp16xx/dsp16xx.c:2099
+msgid "invalid shift operator in emit_1600_core_shift"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.c:2428
+#, fuzzy
+msgid "invalid mode for gen_tst_reg"
+msgstr "ogiltig typ \"void\" för new"
+
+#: config/dsp16xx/dsp16xx.c:2500
+msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr ""
#. Macro to define tables used to set the flags.
@@ -7037,483 +9921,843 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr "Genrerar kod som unix assemblatorn kan hantera"
+#: config/dsp16xx/dsp16xx.h:230
+#, fuzzy
+msgid "Pass parameters in registers (default)"
+msgstr "Skicka argument i register"
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr "Generera kod en inbäddad assemblator kan hantera"
+#: config/dsp16xx/dsp16xx.h:232
+#, fuzzy
+msgid "Don't pass parameters in registers"
+msgstr "Skicka argument i register"
-#: config/fr30/fr30.c:445
-msgid "fr30_print_operand_address: unhandled address"
+#: config/dsp16xx/dsp16xx.h:234
+#, fuzzy
+msgid "Generate code for near calls"
+msgstr "Generera kod för Intel as"
+
+#: config/dsp16xx/dsp16xx.h:236
+#, fuzzy
+msgid "Don't generate code for near calls"
+msgstr "Generera kod för Intel as"
+
+#: config/dsp16xx/dsp16xx.h:238
+#, fuzzy
+msgid "Generate code for near jumps"
+msgstr "Generera kod för Intel as"
+
+#: config/dsp16xx/dsp16xx.h:240
+#, fuzzy
+msgid "Don't generate code for near jumps"
+msgstr "Generera kod för Intel as"
+
+#: config/dsp16xx/dsp16xx.h:242
+#, fuzzy
+msgid "Generate code for a bit-manipulation unit"
+msgstr "Generera kod för \"big endian\""
+
+#: config/dsp16xx/dsp16xx.h:244
+#, fuzzy
+msgid "Don't generate code for a bit-manipulation unit"
+msgstr "Generera kod för \"big endian\""
+
+#: config/dsp16xx/dsp16xx.h:246
+#, fuzzy
+msgid "Generate code for memory map1"
+msgstr "Generera kod för c1"
+
+#: config/dsp16xx/dsp16xx.h:248
+#, fuzzy
+msgid "Generate code for memory map2"
+msgstr "Generera kod för c2"
+
+#: config/dsp16xx/dsp16xx.h:250
+#, fuzzy
+msgid "Generate code for memory map3"
+msgstr "Genrera kod för C300"
+
+#: config/dsp16xx/dsp16xx.h:252
+#, fuzzy
+msgid "Generate code for memory map4"
+msgstr "Generera kod för C400"
+
+#: config/dsp16xx/dsp16xx.h:254
+msgid "Ouput extra code for initialized data"
msgstr ""
-#: config/fr30/fr30.c:472
-#, c-format
-msgid "fr30_print_operand: unrecognised %p code"
+#: config/dsp16xx/dsp16xx.h:256
+#, fuzzy
+msgid "Don't let reg. allocator use ybase registers"
+msgstr "Använd inte alternativa registernamn."
+
+#: config/dsp16xx/dsp16xx.h:258
+msgid "Output extra debug info in Luxworks environment"
msgstr ""
-#: config/fr30/fr30.c:492
-msgid "fr30_print_operand: unrecognised %b code"
+#: config/dsp16xx/dsp16xx.h:260
+msgid "Save temp. files in Luxworks environment"
msgstr ""
-#: config/fr30/fr30.c:513
-msgid "fr30_print_operand: unrecognised %B code"
+#: config/dsp16xx/dsp16xx.h:272
+#, fuzzy
+msgid "Specify alternate name for text section"
+msgstr "Ange namnet på målprocessorn"
+
+#: config/dsp16xx/dsp16xx.h:274
+#, fuzzy
+msgid "Specify alternate name for data section"
+msgstr "Ange namnet på målprocessorn"
+
+#: config/dsp16xx/dsp16xx.h:276
+msgid "Specify alternate name for bss section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:278
+msgid "Specify alternate name for constant section"
+msgstr ""
+
+#: config/dsp16xx/dsp16xx.h:280
+msgid "Specify alternate name for dsp16xx chip"
+msgstr ""
+
+#. Output assembler code to FILE to increment profiler label # LABELNO
+#. for profiling a function entry.
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
+#, fuzzy
+msgid "profiling not implemented yet"
+msgstr "Profilering är inte implementerat ännu."
+
+#. Emit RTL insns to initialize the variable parts of a trampoline.
+#. FNADDR is an RTX for the address of the function's pure code.
+#. CXT is an RTX for the static chain value for the function.
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
+#, fuzzy
+msgid "trampolines not yet implemented"
+msgstr "Profilering är inte implementerat ännu."
+
+#: config/fr30/fr30.c:453
+msgid "fr30_print_operand_address: unhandled address"
+msgstr ""
+
+#: config/fr30/fr30.c:480
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr ""
+
+#: config/fr30/fr30.c:500
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
msgstr ""
#: config/fr30/fr30.c:521
-msgid "fr30_print_operand: invalid operand to %A code"
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
msgstr ""
-#: config/fr30/fr30.c:538
+#: config/fr30/fr30.c:529
+#, fuzzy, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr "ogiltig operand för %V"
+
+#: config/fr30/fr30.c:546
#, c-format
-msgid "fr30_print_operand: invalid %x code"
+msgid "fr30_print_operand: invalid %%x code"
msgstr ""
-#: config/fr30/fr30.c:545
-msgid "fr30_print_operand: invalid %F code"
+#: config/fr30/fr30.c:553
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
msgstr ""
-#: config/fr30/fr30.c:561
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr ""
-#: config/fr30/fr30.c:590 config/fr30/fr30.c:599 config/fr30/fr30.c:610
-#: config/fr30/fr30.c:623
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr ""
-#: config/fr30/fr30.h:82
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
msgstr ""
-#: config/h8300/h8300.c:116
-msgid "-ms2600 is used without -ms."
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr ""
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr ""
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr ""
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.c:2824
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2847
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2872
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2880
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2896
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2949
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.c:2983
+#, fuzzy
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.c:3054
+#, fuzzy
+msgid "frv_print_operand: unknown code"
+msgstr "ogiltig operand för %V"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr ""
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr ""
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr ""
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr ""
+
+#: config/frv/frv.c:9171
+#, fuzzy
+msgid "accumulator is not a constant integer"
+msgstr "argumentet till \"asm\" är inte en konstant sträng"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.c:9187
+#, fuzzy, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "ingen tidigare deklaration av \"%s\""
+
+#: config/frv/frv.c:9253
+#, fuzzy, c-format
+msgid "`%s' expects a constant argument"
+msgstr "tre \"l\"-suffix på heltalskonstant"
+
+#: config/frv/frv.c:9258
+#, fuzzy, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "för många argument till funktionen \"%s\""
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr ""
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr ""
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr ""
+
+#: config/h8300/h8300.c:314
+#, fuzzy
+msgid "-ms2600 is used without -ms"
msgstr "-ms2600 används utan -ms."
-#: config/h8300/h8300.c:3047 config/h8300/h8300.c:3059
-msgid "Only initialized variables can be placed into the 8-bit area."
-msgstr "Initiera bara variabler som kan placeras i 8-bits området."
+#: config/h8300/h8300.c:320
+#, fuzzy
+msgid "-mn is used without -mh or -ms"
+msgstr "-ms2600 används utan -ms."
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:108
-msgid "Generate H8/S code"
+#: config/h8300/h8300.h:150
+#, fuzzy
+msgid "Generate H8S code"
msgstr "Generera H8/S-kod"
-#: config/h8300/h8300.h:109
-msgid "Do not generate H8/S code"
+#: config/h8300/h8300.h:151
+#, fuzzy
+msgid "Do not generate H8S code"
msgstr "Generera inte H8/S-kod"
-#: config/h8300/h8300.h:110
-msgid "Generate H8/S2600 code"
+#: config/h8300/h8300.h:152
+#, fuzzy
+msgid "Generate H8S/2600 code"
msgstr "Generera kod för H8/S2600"
-#: config/h8300/h8300.h:111
-msgid "Do not generate H8/S2600 code"
+#: config/h8300/h8300.h:153
+#, fuzzy
+msgid "Do not generate H8S/2600 code"
msgstr "Generera inte kod för H8/S2600"
-#: config/h8300/h8300.h:112
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr "Gör heltal 32 bitar stora"
-#: config/h8300/h8300.h:115
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr "Använd register för argumentskickning"
-#: config/h8300/h8300.h:117
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr "Använd inte register för argumentskickning"
-#: config/h8300/h8300.h:119
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr ""
-#: config/h8300/h8300.h:120
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr ""
-#: config/h8300/h8300.h:122
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr "Generera H8/300H-kod"
-#: config/h8300/h8300.h:123
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr ""
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr "Generera inte H8/300H-kod"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr ""
-#: config/i370/i370.c:869
-msgid "real name is too long - alias ignored"
+#: config/i370/i370-c.c:53
+msgid "junk at end of #pragma map"
msgstr ""
-#: config/i370/i370.c:874
-msgid "alias name is too long - alias ignored"
+#: config/i370/i370-c.c:59
+msgid "malformed #pragma map, ignored"
msgstr ""
-#: config/i370/i370.c:1039
-msgid "junk at end of #pragma map"
+#: config/i370/i370.c:915
+msgid "real name is too long - alias ignored"
msgstr ""
-#: config/i370/i370.c:1045
-msgid "malformed #pragma map, ignored"
+#: config/i370/i370.c:920
+msgid "alias name is too long - alias ignored"
+msgstr ""
+
+#: config/i370/i370.c:1191
+msgid "internal error--no jump follows compare:"
msgstr ""
#. Macro to define tables used to set the flags. This is a list in braces
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr ""
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr ""
-#: config/i386/cygwin.h:51
-msgid "Use the Cygwin interface"
-msgstr ""
-
-#: config/i386/cygwin.h:53
-msgid "Use the Mingw32 interface"
+#: config/i386/i386.c:1050
+#, c-format
+msgid "code model %s not supported in PIC mode"
msgstr ""
-#: config/i386/cygwin.h:54
-msgid "Create GUI application"
-msgstr "Skapa GUI-applikation"
-
-#: config/i386/cygwin.h:55
-msgid "Don't set Windows defines"
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
+#, c-format
+msgid "bad value (%s) for -mcmodel= switch"
msgstr ""
-#: config/i386/cygwin.h:56
-msgid "Set Windows defines"
-msgstr ""
+#: config/i386/i386.c:1075
+#, fuzzy, c-format
+msgid "bad value (%s) for -masm= switch"
+msgstr "ogiltigt värde (%s) till flagga %s"
-#: config/i386/cygwin.h:58
-msgid "Create console application"
-msgstr "Skapa konsollapplikation"
+#: config/i386/i386.c:1078
+#, fuzzy, c-format
+msgid "code model `%s' not supported in the %s bit mode"
+msgstr "\"%s\" stöds inte av %s"
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
-msgid "Generate code for a DLL"
-msgstr "Generera kod för en DLL"
+#: config/i386/i386.c:1081
+#, fuzzy
+msgid "code model `large' not supported yet"
+msgstr "\"%s\" stöds inte av %s"
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
-msgid "Ignore dllimport for functions"
-msgstr "Ignorera dllimport för funktioner"
+#: config/i386/i386.c:1083
+#, c-format
+msgid "%i-bit mode not compiled in"
+msgstr ""
-#: config/i386/cygwin.h:63
-msgid "Use Mingw-specific thread support"
+#: config/i386/i386.c:1113
+#, c-format
+msgid "bad value (%s) for -march= switch"
msgstr ""
-#: config/i386/cygwin.h:315
+#: config/i386/i386.c:1124
#, c-format
-msgid "-f%s ignored for target (all code is position independent)"
+msgid "bad value (%s) for -mcpu= switch"
msgstr ""
-#: config/i386/dgux.c:185
+#: config/i386/i386.c:1141
#, c-format
-msgid "Internal gcc abort from %s:%d"
+msgid "-mregparm=%d is not between 0 and %d"
msgstr ""
-#: config/i386/dgux.c:189
-msgid "The local variable `insn' has the value:"
+#: config/i386/i386.c:1154
+msgid "-malign-loops is obsolete, use -falign-loops"
msgstr ""
-#: config/i386/dgux.h:62
-msgid "Retain standard MXDB information"
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
+#, c-format
+msgid "-malign-loops=%d is not between 0 and %d"
msgstr ""
-#: config/i386/dgux.h:64
-msgid "Retain legend information"
+#: config/i386/i386.c:1167
+msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr ""
-#: config/i386/dgux.h:67
-msgid "Generate external legend information"
+#: config/i386/i386.c:1180
+msgid "-malign-functions is obsolete, use -falign-functions"
msgstr ""
-#: config/i386/dgux.h:69
-msgid "Emit identifying info in .s file"
+#: config/i386/i386.c:1218
+#, c-format
+msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr ""
-#: config/i386/dgux.h:71
-msgid "Warn when a function arg is a structure"
-msgstr "Varna när ett funktionsargument är en struktur"
+#: config/i386/i386.c:1230
+#, c-format
+msgid "-mbranch-cost=%d is not between 0 and 5"
+msgstr ""
+
+#: config/i386/i386.c:1242
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "ogiltigt värde (%s) till flagga -mcpu"
-#: config/i386/dgux.h:249
-msgid "argument is a structure"
+#: config/i386/i386.c:1263
+msgid "-malign-double makes no sense in the 64bit mode"
msgstr ""
-#: config/i386/djgpp.h:281
-msgid "-mbnu210 is ignored (option is obsolete)."
+#: config/i386/i386.c:1265
+msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr ""
-#: config/i386/i386.c:674
-#, c-format
-msgid "Code model %s not supported in PIC mode"
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
+#, fuzzy
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr "pekare till funktion använd med aritmetik"
+
+#: config/i386/i386.c:1297
+#, fuzzy
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr "pekare till funktion använd med aritmetik"
+
+#: config/i386/i386.c:1304
+#, fuzzy, c-format
+msgid "bad value (%s) for -mfpmath= switch"
+msgstr "ogiltigt värde (%s) till flagga -mcpu"
+
+#: config/i386/i386.c:1436
+#, fuzzy, c-format
+msgid "`%s' attribute requires an integer constant argument"
+msgstr "tre \"l\"-suffix på heltalskonstant"
+
+#: config/i386/i386.c:1442
+#, fuzzy, c-format
+msgid "argument to `%s' attribute larger than %d"
+msgstr "kan inte sätta attributet \"%s\" efter definitionen"
+
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
msgstr ""
-#: config/i386/i386.c:684 config/sparc/sparc.c:280
-#, c-format
-msgid "bad value (%s) for -mcmodel= switch"
+#: config/i386/i386.c:6386
+msgid "invalid UNSPEC as operand"
msgstr ""
-#: config/i386/i386.c:693
-#, c-format
-msgid "Code model `%s' not supported in the %s bit mode."
+#: config/i386/i386.c:6648
+msgid "extended registers have no high halves"
msgstr ""
-#: config/i386/i386.c:696
-msgid "Code model `large' not supported yet."
+#: config/i386/i386.c:6663
+msgid "unsupported operand size for extended register"
msgstr ""
-#: config/i386/i386.c:698
-#, c-format
-msgid "%i-bit mode not compiled in."
+#: config/i386/i386.c:6978
+msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr ""
-#: config/i386/i386.c:713
-#, c-format
-msgid "bad value (%s) for -march= switch"
+#: config/i386/i386.c:7024
+#, fuzzy, c-format
+msgid "invalid operand code `%c'"
+msgstr "ogiltig operand för %V"
+
+#: config/i386/i386.c:7071
+#, fuzzy
+msgid "invalid constraints for operand"
+msgstr "ogiltig %%-kod"
+
+#: config/i386/i386.c:11271
+#, fuzzy
+msgid "unknown insn mode"
+msgstr "okänt maskinläge `%s'"
+
+#. @@@ better error message
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
+msgid "selector must be an immediate"
msgstr ""
-#: config/i386/i386.c:725 config/mips/mips.c:4942
-#, c-format
-msgid "bad value (%s) for -mcpu= switch"
+#. @@@ better error message
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
+msgid "mask must be an immediate"
msgstr ""
-#: config/i386/i386.c:742
+#: config/i386/i386.c:13654
+#, fuzzy
+msgid "shift must be an immediate"
+msgstr "predikat måste vara en identifierare"
+
+#: config/i386/winnt.c:96
+#, fuzzy, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "funktionsdefinition deklarerad som \"auto\""
+
+#: config/i386/winnt.c:104
+#, fuzzy, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "statisk variabel \"%s\" är markerad som dllimport"
+
+#: config/i386/winnt.c:123
#, c-format
-msgid "-mregparm=%d is not between 0 and %d"
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
msgstr ""
-#: config/i386/i386.c:755
-msgid "-malign-loops is obsolete, use -falign-loops"
-msgstr ""
+#: config/i386/winnt.c:143
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to variables"
+msgstr "attributet \"%s\" är inte applicerbart på typer"
-#: config/i386/i386.c:760 config/i386/i386.c:773 config/i386/i386.c:786
+#: config/i386/winnt.c:242
#, c-format
-msgid "-malign-loops=%d is not between 0 and %d"
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
msgstr ""
-#: config/i386/i386.c:768
-msgid "-malign-jumps is obsolete, use -falign-jumps"
-msgstr ""
+#: config/i386/winnt.c:252
+#, fuzzy, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "funktionen \"%s\" deklarerades tidigare i ett block"
-#: config/i386/i386.c:781
-msgid "-malign-functions is obsolete, use -falign-functions"
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
msgstr ""
-#: config/i386/i386.c:808
+#: config/i386/winnt.c:322
#, c-format
-msgid "-mpreferred-stack-boundary=%d is not between %d and 31"
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
msgstr ""
-#: config/i386/i386.c:820
+#: config/i386/winnt.c:364
+#, fuzzy, c-format
+msgid "`%s' declared as both exported to and imported from a DLL"
+msgstr "\"%s\" är deklarerad både som exporterad till och importerad från en DLL."
+
+#: config/i386/winnt.c:373
#, c-format
-msgid "-mbranch-cost=%d is not between 0 and 5"
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
msgstr ""
-#. We can't handle floating point constants;
-#. PRINT_OPERAND must handle them.
-#: config/i386/i386.c:3563 config/pdp11/pdp11.c:1477 final.c:3623
-msgid "floating constant misused"
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
msgstr ""
-#: config/i386/i386.c:3608
-msgid "invalid UNSPEC as operand"
-msgstr ""
+#: config/i386/cygwin.h:45
+msgid "Use the Cygwin interface"
+msgstr "Använd Cygwin-interfacet"
-#: config/i386/i386.c:3614 config/pdp11/pdp11.c:1524 final.c:3678
-msgid "invalid expression as operand"
-msgstr ""
+#: config/i386/cygwin.h:46
+msgid "Use the Mingw32 interface"
+msgstr "Använd Mingw32-interfacet"
-#: config/i386/i386.c:3794
-msgid "Extended registers have no high halves\n"
-msgstr ""
+#: config/i386/cygwin.h:47
+msgid "Create GUI application"
+msgstr "Skapa GUI-applikation"
-#: config/i386/i386.c:3809
-msgid "Unsupported operand size for extended register.\n"
+#: config/i386/cygwin.h:48
+msgid "Don't set Windows defines"
msgstr ""
-#. @@@ better error message
-#: config/i386/i386.c:9895 config/i386/i386.c:9928 config/i386/i386.c:10065
-msgid "selector must be an immediate"
+#: config/i386/cygwin.h:49
+msgid "Set Windows defines"
msgstr ""
-#. @@@ better error message
-#: config/i386/i386.c:10096 config/i386/i386.c:10124
-msgid "mask must be an immediate"
-msgstr ""
+#: config/i386/cygwin.h:50
+msgid "Create console application"
+msgstr "Skapa konsollapplikation"
-#: config/i386/i386.h:45 config/mips/mips.h:176
-msgid "half-pic init called on systems that don't support it."
-msgstr ""
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
+msgid "Generate code for a DLL"
+msgstr "Generera kod för en DLL"
-#: config/i386/i386.h:271
-msgid "Same as -mcpu=i386"
-msgstr "Samma som -mcpu=i386"
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
+msgid "Ignore dllimport for functions"
+msgstr "Ignorera dllimport för funktioner"
-#: config/i386/i386.h:272
-msgid "Same as -mcpu=i486"
-msgstr "Samma som -mcpu=i486"
+#: config/i386/cygwin.h:55
+msgid "Use Mingw-specific thread support"
+msgstr ""
-#: config/i386/i386.h:273
-msgid "Same as -mcpu=pentium"
-msgstr "Samma som -mcpu=pentium"
+#: config/i386/cygwin.h:245
+#, c-format
+msgid "-f%s ignored for target (all code is position independent)"
+msgstr ""
-#: config/i386/i386.h:274
-msgid "Same as -mcpu=pentiumpro"
-msgstr "Samma som -mcpu=pentiumpro"
+#: config/i386/djgpp.h:206
+msgid "-mbnu210 is ignored (option is obsolete)"
+msgstr ""
-#: config/i386/i386.h:276
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#. Deprecated.
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr ""
-#: config/i386/i386.h:278 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr ""
-#: config/i386/i386.h:280
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr ""
-#: config/i386/i386.h:282
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr ""
-#: config/i386/i386.h:284
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr ""
-#: config/i386/i386.h:286
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr ""
-#: config/i386/i386.h:288
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr "Använd IEEE matematik för flyttaljämförelser"
-#: config/i386/i386.h:290
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr "Använd inte IEEE matematik för flyttaljämförelser"
-#: config/i386/i386.h:292
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:294
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr ""
-#: config/i386/i386.h:296
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "Generera inte sin, cos, sqrt för FPU"
-#: config/i386/i386.h:298
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "Generera sin, cos, sqrt för FPU"
-#: config/i386/i386.h:300
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
msgstr ""
-#. undocumented
-#. undocumented
-#. undocumented
-#. undocumented
-#: config/i386/i386.h:307
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr ""
#. undocumented
#. undocumented
-#: config/i386/i386.h:312
-msgid "Emit Intel syntax assembler opcodes"
-msgstr "Skapa assembler-opkoder med Intel-syntax"
-
-#: config/i386/i386.h:315
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:317
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr ""
-#: config/i386/i386.h:319
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr ""
-#: config/i386/i386.h:321
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr ""
-#: config/i386/i386.h:323 config/i386/i386.h:327
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:325 config/i386/i386.h:329
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
-#: config/i386/i386.h:330
-msgid "Support MMX builtins"
+#: config/i386/i386.h:354
+#, fuzzy
+msgid "Support MMX built-in functions"
msgstr "Stöd inbyggda funktioner med MMX"
-#: config/i386/i386.h:332
-msgid "Do not support MMX builtins"
+#: config/i386/i386.h:356
+#, fuzzy
+msgid "Do not support MMX built-in functions"
msgstr "Stöd inte inbyggda funktioner med MMX"
-#: config/i386/i386.h:334
-msgid "Support MMX and SSE builtins and code generation"
-msgstr ""
-
-#: config/i386/i386.h:336
-msgid "Do not support MMX and SSE builtins and code generation"
-msgstr ""
-
-#: config/i386/i386.h:338
-msgid "Support MMX, SSE and SSE2 builtins and code generation"
-msgstr ""
-
-#: config/i386/i386.h:340
-msgid "Do not support MMX, SSE and SSE2 builtins and code generation"
-msgstr ""
+#: config/i386/i386.h:358
+#, fuzzy
+msgid "Support 3DNow! built-in functions"
+msgstr "döljer inbyggd funktion \"%s\""
-#: config/i386/i386.h:342 config/i386/i386.h:344
-msgid "Use both SSE and i387 instruction sets for floating point arithmetics"
-msgstr ""
+#: config/i386/i386.h:360
+#, fuzzy
+msgid "Do not support 3DNow! built-in functions"
+msgstr "Stöd inte inbyggda funktioner med MMX"
-#: config/i386/i386.h:346
-msgid "sizeof(long double) is 16."
+#: config/i386/i386.h:362
+#, fuzzy
+msgid "Support MMX and SSE built-in functions and code generation"
+msgstr "Stöd inbyggda funktioner med MMX och SSE"
+
+#: config/i386/i386.h:364
+#, fuzzy
+msgid "Do not support MMX and SSE built-in functions and code generation"
+msgstr "Stöd inte inbyggda funktioner med MMX och SSE"
+
+#: config/i386/i386.h:366
+#, fuzzy
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Stöd inbyggda funktioner med MMX och SSE"
+
+#: config/i386/i386.h:368
+#, fuzzy
+msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+msgstr "Stöd inte inbyggda funktioner med MMX och SSE"
+
+#: config/i386/i386.h:370
+#, fuzzy
+msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) är 16."
-#: config/i386/i386.h:348
-msgid "sizeof(long double) is 12."
+#: config/i386/i386.h:372
+#, fuzzy
+msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) är 12."
-#: config/i386/i386.h:350
+#: config/i386/i386.h:374
+#, fuzzy
msgid "Generate 64bit x86-64 code"
-msgstr ""
+msgstr "Generera H8/S-kod"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:376
+#, fuzzy
msgid "Generate 32bit i386 code"
-msgstr ""
+msgstr "Generera \"big endian\"-kod."
-#: config/i386/i386.h:354
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr ""
-#: config/i386/i386.h:356
-msgid "do not use red-zone in the x86-64 code"
-msgstr ""
+#: config/i386/i386.h:380
+#, fuzzy
+msgid "Do not use red-zone in the x86-64 code"
+msgstr "Generera inte H8/S-kod"
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
@@ -7524,77 +10768,70 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:396 config/rs6000/rs6000.h:404 config/sparc/sparc.h:710
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr "Schemalägg kod för en given CPU"
-#: config/i386/i386.h:398
+#: config/i386/i386.h:411
+#, fuzzy
+msgid "Generate floating point mathematics using given instruction set"
+msgstr "Använd flyttalsinstruktioner i hårdvara"
+
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr "Generera kod för en given CPU"
-#: config/i386/i386.h:400
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr "Antal register för att skicka heltalsargument"
-#: config/i386/i386.h:402
+#. TARGET_DEFAULT is defined in sun*.h and isi.h, etc.
+#. This macro is similar to `TARGET_SWITCHES' but defines names of
+#. command options that have values. Its definition is an
+#. initializer with a subgrouping for each command option.
+#.
+#. Each subgrouping contains a string constant, that defines the
+#. fixed part of the option name, and the address of a variable. The
+#. variable, type `char *', is set to the variable part of the given
+#. option if the fixed part matches. The actual option name is made
+#. by appending `-m' to the specified name.
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "Loop-kod justeras till denna 2-potens"
-#: config/i386/i386.h:404
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "Hoppmål justeras till denna 2-potens"
-#: config/i386/i386.h:406
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "Funktionsbörjan justeras till denna 2-potens"
-#: config/i386/i386.h:409
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Försök håll stacken justerad till denna 2-potens"
-#: config/i386/i386.h:411
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Hopp är dyra (1-5, godtyckliga enheter)"
-#: config/i386/i386.h:413
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr ""
-#: config/i386/osf1elf.h:111
-msgid "Profiling uses mcount"
-msgstr "Profilering använder mcount"
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr "Skapa half-PIC-kod"
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr "Skapa ELF-objektkod"
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr "Skapa ROSE-objektkod"
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr "Symboler startar med en understrykning"
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr ""
-
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr ""
+#. Undocumented.
+#. Undocumented.
+#: config/i386/i386.h:434
+#, fuzzy
+msgid "Use given assembler dialect"
+msgstr "Använd assemblersyntax för DEC"
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
-msgstr ""
+#: config/i386/i386.h:436
+#, fuzzy
+msgid "Use given thread-local storage dialect"
+msgstr "Använd assemblersyntax för DEC"
-#: config/i386/sco5.h:887
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr "Generera ELF-utdata"
@@ -7610,55 +10847,48 @@ msgstr ""
msgid "Use bare Windows interface"
msgstr ""
-#: config/i386/winnt.c:311
-#, c-format
-msgid "`%s' declared as both exported to and imported from a DLL."
-msgstr ""
-"\"%s\" är deklarerad både som exporterad till och importerad från en DLL."
-
#. If the environment variable DJDIR is not defined, then DJGPP is not installed correctly and GCC will quickly become confused with the default prefix settings. Report the problem now so the user doesn't receive deceptive "file not found" error messages later.
#. DJDIR is automatically defined by the DJGPP environment config file pointed to by the environment variable DJGPP. Examine DJGPP to try and figure out what's wrong.
#: config/i386/xm-djgpp.h:71
-msgid "Environment variable DJGPP not defined."
+#, fuzzy
+msgid "environment variable DJGPP not defined"
msgstr "Omgivningsvariabel DJGPP är inte definierad."
#: config/i386/xm-djgpp.h:73
-#, c-format
-msgid "Environment variable DJGPP points to missing file '%s'."
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to missing file '%s'"
msgstr "Omgivningsvariabel DJGPP pekar på fil \"%s\" som saknas"
#: config/i386/xm-djgpp.h:76
-#, c-format
-msgid "Environment variable DJGPP points to corrupt file '%s'."
+#, fuzzy, c-format
+msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr "Omgivningsvariabel DJGPP pekar på fil \"%s\" som är trasig"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr "Generera kod som använder FPU"
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29
-#: config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr "Genrera inte kod som använder FPU"
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr "ledsen, inte implementerat: #pragma align NAMN=STORLEK"
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
msgstr ""
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr "ledsen, inte implementerat: #pragma noalign NAMN"
-#: config/i960/i960.c:1384 config/m68k/m68k.c:407 config/rs6000/rs6000.c:5792
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr ""
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr ""
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 och iC3.0 är imkompatible - använder iC3.0"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
msgstr ""
@@ -7669,350 +10899,459 @@ msgstr ""
#. An empty string NAME is used to identify the default VALUE.
#. ??? Not all ten of these architecture variations actually exist, but I
#. am not sure which are real and which aren't.
-#: config/i960/i960.h:245
+#: config/i960/i960.h:240
msgid "Generate SA code"
msgstr "Generera SA-kod"
-#: config/i960/i960.h:248
+#: config/i960/i960.h:243
msgid "Generate SB code"
msgstr "Generera SB-kod"
#. {"sc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate SC code")},
-#: config/i960/i960.h:253
+#: config/i960/i960.h:248
msgid "Generate KA code"
msgstr "Generera KA-kod"
-#: config/i960/i960.h:256
+#: config/i960/i960.h:251
msgid "Generate KB code"
msgstr "Generera KB-kod"
#. {"kc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_MC|TARGET_FLAG_COMPLEX_ADDR), N_("Generate KC code")},
-#: config/i960/i960.h:261
+#: config/i960/i960.h:256
msgid "Generate JA code"
msgstr "Generera JA-kod"
-#: config/i960/i960.h:263
+#: config/i960/i960.h:258
msgid "Generate JD code"
msgstr "Generera JD-kod"
-#: config/i960/i960.h:266
+#: config/i960/i960.h:261
msgid "Generate JF code"
msgstr "Generera JF-kod"
-#: config/i960/i960.h:268
+#: config/i960/i960.h:263
msgid "generate RP code"
msgstr "Generera RP-kod"
-#: config/i960/i960.h:271
+#: config/i960/i960.h:266
msgid "Generate MC code"
msgstr "Generera MC-kod"
-#: config/i960/i960.h:274
+#: config/i960/i960.h:269
msgid "Generate CA code"
msgstr "Generera CA-kod"
#. {"cb", (TARGET_FLAG_NUMERICS|TARGET_FLAG_C_SERIES| TARGET_FLAG_BRANCH_PREDICT|TARGET_FLAG_CODE_ALIGN), N_("Generate CB code")}, {"cc", (TARGET_FLAG_NUMERICS|TARGET_FLAG_PROTECTED| TARGET_FLAG_C_SERIES|TARGET_FLAG_BRANCH_PREDICT| TARGET_FLAG_CODE_ALIGN), N_("Generate CC code")},
-#: config/i960/i960.h:284
+#: config/i960/i960.h:279
msgid "Generate CF code"
msgstr "Generera CF-kod"
-#: config/i960/i960.h:290
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Använd mjukvaruflytttal"
+
+#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr ""
-#: config/i960/i960.h:292
+#: config/i960/i960.h:287
msgid "Do not use alternate leaf function entries"
msgstr ""
-#: config/i960/i960.h:294
+#: config/i960/i960.h:289
msgid "Perform tail call optimization"
msgstr "Utför optimering för svansrekursion"
-#: config/i960/i960.h:296
+#: config/i960/i960.h:291
msgid "Do not perform tail call optimization"
msgstr "Utför inte optimering för svansrekursion"
-#: config/i960/i960.h:298
+#: config/i960/i960.h:293
msgid "Use complex addressing modes"
msgstr ""
-#: config/i960/i960.h:300
+#: config/i960/i960.h:295
msgid "Do not use complex addressing modes"
msgstr ""
-#: config/i960/i960.h:302
+#: config/i960/i960.h:297
msgid "Align code to 8 byte boundary"
msgstr ""
-#: config/i960/i960.h:304
+#: config/i960/i960.h:299
msgid "Do not align code to 8 byte boundary"
msgstr ""
#. {"clean-linkage", (TARGET_FLAG_CLEAN_LINKAGE), N_("Force use of prototypes")}, {"no-clean-linkage", -(TARGET_FLAG_CLEAN_LINKAGE), N_("Do not force use of prototypes")},
-#: config/i960/i960.h:310 config/i960/i960.h:312
+#: config/i960/i960.h:305 config/i960/i960.h:307
msgid "Enable compatibility with iC960 v2.0"
msgstr ""
-#: config/i960/i960.h:314
+#: config/i960/i960.h:309
msgid "Enable compatibility with iC960 v3.0"
msgstr ""
-#: config/i960/i960.h:316 config/i960/i960.h:318
+#: config/i960/i960.h:311 config/i960/i960.h:313
msgid "Enable compatibility with ic960 assembler"
msgstr ""
-#: config/i960/i960.h:320
+#: config/i960/i960.h:315
msgid "Do not permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:322
+#: config/i960/i960.h:317
msgid "Permit unaligned accesses"
msgstr ""
-#: config/i960/i960.h:324
+#: config/i960/i960.h:319
msgid "Layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:326
+#: config/i960/i960.h:321
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr ""
-#: config/i960/i960.h:328 config/rs6000/sysv4.h:130 config/sparc/linux.h:83
-#: config/sparc/linux64.h:139
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr "Använd 64 bits long double"
-#: config/i960/i960.h:330
+#: config/i960/i960.h:325
msgid "Enable linker relaxation"
msgstr ""
-#: config/i960/i960.h:332
+#: config/i960/i960.h:327
msgid "Do not enable linker relaxation"
msgstr ""
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:347 config/i960/i960.h:357
-msgid "conflicting architectures defined - using C series"
-msgstr ""
-
-#: config/i960/i960.h:352
-msgid "conflicting architectures defined - using K series"
-msgstr ""
-
-#: config/i960/i960.h:367
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr "iC2.0 och iC3.0 är imkompatible - använder iC3.0"
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:378
-msgid "The -mlong-double-64 option does not work yet."
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
msgstr ""
-#: config/ia64/ia64.c:3413
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr ""
-#: config/ia64/ia64.c:3651
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr ""
-#: config/ia64/ia64.c:3663 config/ia64/ia64.c:3670 regclass.c:715
-#, c-format
-msgid "unknown register name: %s"
-msgstr "okänt registernamn: %s"
-
-#: config/ia64/ia64.c:3678
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s är ett tomt intervall"
-#: config/ia64/ia64.c:3743
-msgid "cannot optimize division for both latency and throughput"
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr ""
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
msgstr ""
+#: config/ia64/ia64.c:4368
+#, fuzzy, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "ogiltigt värde (%s) till flagga -mcpu"
+
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:110
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr "Generera \"big endian\"-kod."
-#: config/ia64/ia64.h:112 config/mcore/mcore.h:164
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr "Generera \"little endian\"-kod."
-#: config/ia64/ia64.h:114
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr "Generera kod för GNU as"
-#: config/ia64/ia64.h:116
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr "Generera kod för Intel as"
-#: config/ia64/ia64.h:118
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr "Generera kod för GNU ld"
-#: config/ia64/ia64.h:120
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr "Generera kod för Intel ld"
-#: config/ia64/ia64.h:122
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr ""
-#: config/ia64/ia64.h:124
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:126
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr ""
-#: config/ia64/ia64.h:128
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr ""
-#: config/ia64/ia64.h:130
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr ""
-#: config/ia64/ia64.h:132
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:134
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr ""
-#: config/ia64/ia64.h:136
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr ""
-#: config/ia64/ia64.h:138
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr ""
-#: config/ia64/ia64.h:140
-msgid "Generate inline division, optimize for latency"
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:142
-msgid "Generate inline division, optimize for throughput"
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:144
-msgid "Enable Dwarf 2 line debug info via GNU as"
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
msgstr ""
-#: config/ia64/ia64.h:146
-msgid "Disable Dwarf 2 line debug info via GNU as"
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
msgstr ""
-#: config/ia64/ia64.h:169
-msgid "Specify range of registers to make fixed."
+#: config/ia64/ia64.h:192
+msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:88
-msgid "-msystem-v and -p are incompatible"
+#: config/ia64/ia64.h:194
+msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr ""
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:90
-msgid "-msystem-v and -mthreads are incompatible"
+#: config/ia64/ia64.h:223
+msgid "Specify range of registers to make fixed"
msgstr ""
-#: config/m32r/m32r.c:86
+#: config/ip2k/ip2k.c:1090
+#, fuzzy
+msgid "bad operand"
+msgstr "ogiltig %%-kod"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr ""
-#: config/m32r/m32r.c:95
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr ""
-#: config/m32r/m32r.c:383
+#: config/m32r/m32r.c:319
+#, fuzzy, c-format
+msgid "invalid argument of `%s' attribute"
+msgstr "ogiltigt typargument till \"%s\""
+
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr ""
-#: config/m32r/m32r.c:2191
-#, c-format
-msgid "invalid operand to %s code"
+#: config/m32r/m32r.c:2256
+#, fuzzy, c-format
+msgid "invalid operand to %%s code"
+msgstr "ogiltig operand för %R"
+
+#: config/m32r/m32r.c:2263
+#, fuzzy, c-format
+msgid "invalid operand to %%p code"
+msgstr "ogiltig operand för %R"
+
+#: config/m32r/m32r.c:2318
+msgid "bad insn for 'A'"
msgstr ""
-#: config/m32r/m32r.c:2198
-#, c-format
-msgid "invalid operand to %p code"
+#: config/m32r/m32r.c:2370
+#, fuzzy, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr "ogiltig operand för %H/%L"
+
+#: config/m32r/m32r.c:2393
+#, fuzzy, c-format
+msgid "invalid operand to %%N code"
+msgstr "ogiltig operand för %R"
+
+#: config/m32r/m32r.c:2438
+msgid "pre-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.c:2445
+msgid "pre-decrement address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2306
-msgid "invalid operand to %T/%B code"
+#: config/m32r/m32r.c:2452
+msgid "post-increment address is not a register"
msgstr ""
-#: config/m32r/m32r.c:2329
-msgid "invalid operand to %N code"
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
+msgid "bad address"
msgstr ""
+#: config/m32r/m32r.c:2551
+#, fuzzy
+msgid "lo_sum not of register"
+msgstr "Skicka argument i register"
+
#. { "relax", TARGET_RELAX_MASK, "" }, { "no-relax", -TARGET_RELAX_MASK, "" },
-#: config/m32r/m32r.h:186
+#: config/m32r/m32r.h:241
msgid "Display compile time statistics"
msgstr ""
-#: config/m32r/m32r.h:188
+#: config/m32r/m32r.h:243
msgid "Align all loops to 32 byte boundary"
msgstr ""
-#: config/m32r/m32r.h:191
+#: config/m32r/m32r.h:246
msgid "Only issue one instruction per cycle"
msgstr "Lägg bara ut en instruktion per cykel"
-#: config/m32r/m32r.h:194
+#: config/m32r/m32r.h:249
msgid "Prefer branches over conditional execution"
msgstr "Föredra hopp framför villkorlig körning"
-#: config/m32r/m32r.h:210
+#: config/m32r/m32r.h:265
msgid "Code size: small, medium or large"
msgstr "Kodstorlek: small, medium, eller large"
-#: config/m32r/m32r.h:212
+#: config/m32r/m32r.h:267
msgid "Small data area: none, sdata, use"
msgstr "Litet dataområde: none, sdata, use"
-#: config/m68hc11/m68hc11.c:217
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr ""
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:1311
+#, fuzzy
+msgid "`trap' attribute is already used"
+msgstr "attributet `%s' ignorerat"
+
+#. !!!! SCz wrong here.
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
+msgid "move insn not handled"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
+#, fuzzy
+msgid "invalid register in the move instruction"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/m68hc11/m68hc11.c:3613
+#, fuzzy
+msgid "invalid operand in the instruction"
+msgstr "ogiltig operand för %V"
+
+#: config/m68hc11/m68hc11.c:3920
+#, fuzzy
+msgid "invalid register in the instruction"
+msgstr "ogiltigt flagga \"%s\" i line-direktiv"
+
+#: config/m68hc11/m68hc11.c:3953
+msgid "operand 1 must be a hard register"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:3970
+#, fuzzy
+msgid "invalid rotate insn"
+msgstr "ogiltigt format på #line"
+
+#: config/m68hc11/m68hc11.c:4391
+msgid "registers IX, IY and Z used in the same INSN"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
+msgid "cannot do z-register replacement"
+msgstr ""
+
+#: config/m68hc11/m68hc11.c:5094
+msgid "invalid Z register replacement for insn"
+msgstr ""
+
#. Macro to define tables used to set the flags. This is a list in braces of
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:152
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:154
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr ""
-#: config/m68hc11/m68hc11.h:156
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:158
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr ""
-#: config/m68hc11/m68hc11.h:160 config/m68hc11/m68hc11.h:164
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:188
+msgid "Do not use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr ""
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr ""
-#: config/m68hc11/m68hc11.h:162 config/m68hc11/m68hc11.h:166
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr ""
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr ""
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -8022,134 +11361,254 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:180
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr ""
-#: config/m68hc11/m68hc11.h:182
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr ""
-#: config/m68k/m68k.c:102
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:113
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr ""
-#: config/m68k/m68k.c:124
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr ""
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:238 config/m68k/m68kelf.h:265 config/m68k/m68kv4.h:295
+#: config/m68k/m68k.c:189
msgid "-fPIC is not currently supported on the 68000 or 68010\n"
msgstr ""
-#: config/m88k/m88k.c:860
-#, c-format
-msgid "Internal gcc monitor: short-branch(%x)"
-msgstr "Intern gcc monitor: short-branch(%x)"
+#. Macro to define tables used to set the flags.
+#. This is a list in braces of pairs in braces,
+#. each pair being { "NAME", VALUE }
+#. where VALUE is the bits to set or minus the bits to clear.
+#. An empty string NAME is used to identify the default VALUE.
+#: config/m68k/m68k.h:162 config/m68k/m68k.h:164
+#, fuzzy
+msgid "Generate code for a 68020"
+msgstr "Generera kod för c2"
-#: config/m88k/m88k.c:2266
-msgid "Internal gcc error: Can't express symbolic location"
-msgstr ""
+#: config/m68k/m68k.h:169 config/m68k/m68k.h:172
+#, fuzzy
+msgid "Generate code for a 68000"
+msgstr "Generera kod för en DLL"
-#: config/m88k/m88k.c:2547
-#, c-format
-msgid "argument #%d is a structure"
+#: config/m68k/m68k.h:174
+#, fuzzy
+msgid "Use the bit-field instructions"
+msgstr "Använd bitfältsinstruktioner"
+
+#: config/m68k/m68k.h:176
+#, fuzzy
+msgid "Do not use the bit-field instructions"
+msgstr "Använd inte bitfältsinstruktioner"
+
+#: config/m68k/m68k.h:178
+msgid "Use different calling convention using 'rtd'"
msgstr ""
-#: config/m88k/m88k.c:2862
-msgid "%R not followed by %B/C/D/E"
+#: config/m68k/m68k.h:182
+msgid "Consider type `int' to be 16 bits wide"
msgstr ""
-#: config/m88k/m88k.c:2930
-#, c-format
-msgid "invalid %x/X value"
+#: config/m68k/m68k.h:184
+msgid "Consider type `int' to be 32 bits wide"
msgstr ""
-#: config/m88k/m88k.c:2935
-msgid "invalid %H value"
+#: config/m68k/m68k.h:186
+#, fuzzy
+msgid "Generate code for a Sun FPA"
+msgstr "Generera kod för en given CPU"
+
+#: config/m68k/m68k.h:189
+#, fuzzy
+msgid "Do not generate code for a Sun FPA"
+msgstr "Genrera inte kod som använder FPU"
+
+#: config/m68k/m68k.h:191 config/m68k/m68k.h:193
+#, fuzzy
+msgid "Generate code for a Sun Sky board"
+msgstr "Generera kod för en DLL"
+
+#: config/m68k/m68k.h:195
+#, fuzzy
+msgid "Do not use Sky linkage convention"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/m68k/m68k.h:197
+#, fuzzy
+msgid "Generate code for a 68881"
+msgstr "Generera kod för c1"
+
+#: config/m68k/m68k.h:200
+msgid "Generate code with library calls for floating point"
msgstr ""
-#: config/m88k/m88k.c:2941
-msgid "invalid %h value"
+#: config/m68k/m68k.h:202
+#, fuzzy
+msgid "Generate code for a 68040, without any new instructions"
+msgstr "Generera kod för \"little endian\""
+
+#: config/m68k/m68k.h:205
+#, fuzzy
+msgid "Generate code for a 68060, without any new instructions"
+msgstr "Generera kod för \"little endian\""
+
+#: config/m68k/m68k.h:209
+#, fuzzy
+msgid "Generate code for a 68030"
+msgstr "Generera kod för en DLL"
+
+#: config/m68k/m68k.h:212
+#, fuzzy
+msgid "Generate code for a 68040"
+msgstr "Generera kod för 11/40"
+
+#: config/m68k/m68k.h:216
+#, fuzzy
+msgid "Generate code for a 68060"
+msgstr "Generera kod för en DLL"
+
+#: config/m68k/m68k.h:221
+#, fuzzy
+msgid "Generate code for a 520X"
+msgstr "Generera kod för c2"
+
+#: config/m68k/m68k.h:224
+#, fuzzy
+msgid "Generate code for a 68851"
+msgstr "Generera kod för c1"
+
+#: config/m68k/m68k.h:226
+#, fuzzy
+msgid "Do no generate code for a 68851"
+msgstr "Generera kod för c1"
+
+#: config/m68k/m68k.h:229
+#, fuzzy
+msgid "Generate code for a 68302"
+msgstr "Generera kod för c32"
+
+#: config/m68k/m68k.h:232
+#, fuzzy
+msgid "Generate code for a 68332"
+msgstr "Generera kod för c32"
+
+#: config/m68k/m68k.h:236
+#, fuzzy
+msgid "Generate code for a cpu32"
+msgstr "Generera kod för c32"
+
+#: config/m68k/m68k.h:239
+msgid "Align variables on a 32-bit boundary"
msgstr ""
-#: config/m88k/m88k.c:2947
-msgid "invalid %Q value"
+#: config/m68k/m68k.h:241
+msgid "Align variables on a 16-bit boundary"
msgstr ""
-#: config/m88k/m88k.c:2953
-msgid "invalid %q value"
+#: config/m68k/m68k.h:243
+#, fuzzy
+msgid "Generate pc-relative code"
+msgstr "Generera SA-kod"
+
+#: config/m68k/m68k.h:245
+msgid "Do not use unaligned memory references"
msgstr ""
-#: config/m88k/m88k.c:2959
-#, c-format
-msgid "invalid %o value"
+#: config/m68k/m68k.h:247
+#, fuzzy
+msgid "Use unaligned memory references"
+msgstr "Använd stor minnesmodell"
+
+#: config/m88k/m88k.c:903
+#, fuzzy, c-format
+msgid "internal gcc monitor: short-branch(%x)"
+msgstr "Intern gcc monitor: short-branch(%x)"
+
+#: config/m88k/m88k.c:2302
+msgid "internal gcc error: Can't express symbolic location"
msgstr ""
-#: config/m88k/m88k.c:2966
+#: config/m88k/m88k.c:2517
#, c-format
-msgid "invalid %p value"
+msgid "argument #%d is a structure"
msgstr ""
-#: config/m88k/m88k.c:2979 config/m88k/m88k.c:2984
+#: config/m88k/m88k.c:2816
#, c-format
-msgid "invalid %s/S value"
+msgid "%%R not followed by %%B/C/D/E"
msgstr ""
-#: config/m88k/m88k.c:2995
-msgid "invalid %P operand"
-msgstr ""
+#: config/m88k/m88k.c:2884
+#, fuzzy, c-format
+msgid "invalid %%x/X value"
+msgstr "ogiltigt värde %%B"
-#: config/m88k/m88k.c:3026
-msgid "invalid %B value"
-msgstr ""
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "ogiltigt %%Q-värde"
-#: config/m88k/m88k.c:3043
-msgid "invalid %C value"
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
+#, c-format
+msgid "invalid %%q value"
msgstr ""
-#: config/m88k/m88k.c:3056
-msgid "invalid %D value"
-msgstr ""
+#: config/m88k/m88k.c:2913
+#, fuzzy, c-format
+msgid "invalid %%o value"
+msgstr "ogiltigt värde %%B"
-#: config/m88k/m88k.c:3064
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
-msgid "invalid %E value"
+msgid "invalid %%p value"
msgstr ""
-#: config/m88k/m88k.c:3069
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
+#, fuzzy, c-format
+msgid "invalid %%s/S value"
+msgstr "ogiltigt %%s-värde"
+
+#: config/m88k/m88k.c:2949
+#, fuzzy, c-format
+msgid "invalid %%P operand"
+msgstr "ogiltigt %%P-värde"
+
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
-msgid "`%d' operand isn't a register"
-msgstr ""
+msgid "invalid %%B value"
+msgstr "ogiltigt värde %%B"
+
+#: config/m88k/m88k.c:3010
+#, fuzzy, c-format
+msgid "invalid %%D value"
+msgstr "ogiltigt värde %%B"
-#: config/m88k/m88k.c:3080
-msgid "invalid %r value"
+#: config/m88k/m88k.c:3023
+#, c-format
+msgid "`%%d' operand isn't a register"
msgstr ""
-#: config/m88k/m88k.c:3087
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr ""
-#: config/m88k/m88k.c:3101
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr ""
-#: config/m88k/m88k.c:3120
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "ogiltig kod"
@@ -8159,9 +11618,9 @@ msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
msgstr ""
#: config/m88k/m88k.h:299
-#, c-format
-msgid "Invalid option `-mshort-data-%s'"
-msgstr ""
+#, fuzzy, c-format
+msgid "invalid option `-mshort-data-%s'"
+msgstr "Ogiltig flagga \"%s\""
#: config/m88k/m88k.h:304
#, c-format
@@ -8173,271 +11632,293 @@ msgstr ""
msgid "-mshort-data-%s and PIC are incompatible"
msgstr ""
-#: config/mcore/mcore.c:3117
-#, c-format
-msgid "Invalid option `-mstack-increment=%s'"
+#: config/mcore/mcore.c:3078
+#, fuzzy, c-format
+msgid "invalid option `-mstack-increment=%s'"
msgstr "Ogiltig flagga \"-mstack-increment=%s\""
-#: config/mcore/mcore.h:131
+#: config/mcore/mcore.h:126
msgid "Inline constants if it can be done in 2 insns or less"
msgstr ""
-#: config/mcore/mcore.h:133
-msgid "inline constants if it only takes 1 instruction"
+#: config/mcore/mcore.h:128
+msgid "Inline constants if it only takes 1 instruction"
msgstr ""
-#: config/mcore/mcore.h:135
+#: config/mcore/mcore.h:130
msgid "Set maximum alignment to 4"
msgstr ""
-#: config/mcore/mcore.h:137
+#: config/mcore/mcore.h:132
msgid "Set maximum alignment to 8"
msgstr ""
-#: config/mcore/mcore.h:141
+#: config/mcore/mcore.h:136
msgid "Do not use the divide instruction"
msgstr "Använd inte divisionsinstruktionen"
-#: config/mcore/mcore.h:145
-msgid "Do not arbitary sized immediates in bit operations"
+#: config/mcore/mcore.h:140
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr ""
-#: config/mcore/mcore.h:147
-msgid "Always treat bitfield as int-sized"
+#: config/mcore/mcore.h:142
+msgid "Always treat bit-field as int-sized"
msgstr ""
-#: config/mcore/mcore.h:151
+#: config/mcore/mcore.h:146
msgid "Force functions to be aligned to a 4 byte boundary"
msgstr ""
-#: config/mcore/mcore.h:153
+#: config/mcore/mcore.h:148
msgid "Force functions to be aligned to a 2 byte boundary"
msgstr ""
-#: config/mcore/mcore.h:155
+#: config/mcore/mcore.h:150
msgid "Emit call graph information"
msgstr ""
-#: config/mcore/mcore.h:159
+#: config/mcore/mcore.h:154
msgid "Prefer word accesses over byte accesses"
msgstr ""
-#: config/mcore/mcore.h:170
+#: config/mcore/mcore.h:165
msgid "Generate code for the M*Core M340"
msgstr "Genrera kod för M*Core M340"
-#: config/mcore/mcore.h:183
+#: config/mcore/mcore.h:178
msgid "Maximum amount for a single stack increment operation"
msgstr ""
-#: config/mips/mips.c:4744
+#: config/mips/mips.c:5128
#, c-format
-msgid "-mips%d not supported"
+msgid "bad value (%s) for -mabi= switch"
msgstr ""
-#: config/mips/mips.c:4751
+#: config/mips/mips.c:5158
#, c-format
-msgid "bad value (%s) for -mips switch"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
msgstr ""
-#: config/mips/mips.c:4770
+#: config/mips/mips.c:5165
#, c-format
-msgid "bad value (%s) for -mabi= switch"
+msgid "bad value (%s) for -mips switch"
msgstr ""
-#: config/mips/mips.c:4800
+#: config/mips/mips.c:5180
#, c-format
-msgid "-mabi=%s does not support -mips%d"
+msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/mips/mips.c:4817
-msgid "The -mabi=32 support does not work yet."
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
msgstr ""
-#: config/mips/mips.c:4821
-msgid "This target does not support the -mabi switch."
-msgstr ""
+#: config/mips/mips.c:5194
+#, fuzzy
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "Använd 64-bitars ABI"
-#: config/mips/mips.c:4955
-#, c-format
-msgid "-mcpu=%s does not support -mips%d"
-msgstr ""
+#: config/mips/mips.c:5196
+#, fuzzy
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "Använd 32-bitars ABI"
-#: config/mips/mips.c:4962
-#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr ""
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
+#, fuzzy, c-format
+msgid "unsupported combination: %s"
+msgstr "ej stödd version"
-#: config/mips/mips.c:4968
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
msgstr ""
-#: config/mips/mips.c:4989
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr ""
-#: config/mips/mips.c:5005
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr ""
-#: config/mips/mips.c:5008
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr ""
-#: config/mips/mips.c:5059
-#, c-format
-msgid "Invalid option `entry%s'"
-msgstr ""
+#: config/mips/mips.c:5369
+#, fuzzy, c-format
+msgid "invalid option `entry%s'"
+msgstr "Ogiltig flagga \"%s\""
-#: config/mips/mips.c:5062
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr ""
-#: config/mips/mips.c:5395
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5409
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5422
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5435
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr ""
-#: config/mips/mips.c:5449
+#: config/mips/mips.c:5835
#, c-format
-msgid "PRINT_OPERAND: Unknown punctuation '%c'"
+msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr ""
-#: config/mips/mips.c:5458
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
msgstr ""
-#: config/mips/mips.c:5586
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "ogiltig användning av %%d, %%x eller %%x"
-#: config/mips/mips.c:5629
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
msgstr "PRINT_OPERAND_ADDRESS, null-pekare"
-#: config/mips/mips.c:5845
-msgid ""
-"MIPS ECOFF format does not allow changing filenames within functions with "
-"#line"
+#: config/mips/mips.c:6242
+msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
msgstr ""
# fixme: spola tillbaka är inte perfekt
-#: config/mips/mips.c:6123
-#, c-format
-msgid "can't rewind %s"
+#: config/mips/mips.c:6552
+#, fuzzy
+msgid "can't rewind temp file"
msgstr "kan inte spola tillbaka %s"
-#: config/mips/mips.c:6130
-#, c-format
-msgid "can't read from %s"
+#: config/mips/mips.c:6556
+#, fuzzy
+msgid "can't write to output file"
+msgstr "kan inte skriva till %s"
+
+#: config/mips/mips.c:6559
+#, fuzzy
+msgid "can't read from temp file"
msgstr "kan inte läsa från %s"
-#: config/mips/mips.c:6501
+#: config/mips/mips.c:6562
+#, fuzzy
+msgid "can't close temp file"
+msgstr "kan inte stänga %s"
+
+#: config/mips/mips.c:7003
#, c-format
-msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
+msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:6720
+#: config/mips/mips.c:7112
#, c-format
-msgid "fp_offset (%ld) or end_offset (%ld) is less than zero."
+msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr ""
-#: config/mips/mips.c:8796
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr ""
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr ""
+
+#: config/mips/mips.c:10489
+#, fuzzy, c-format
+msgid "bad value (%s) for %s"
+msgstr "ogiltigt värde (%s) till flagga %s"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:342 config/mn10300/mn10300.h:65
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr ""
-#: config/mips/mips.h:344
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr ""
-#: config/mips/mips.h:346
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr ""
-#: config/mips/mips.h:348
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr ""
-#: config/mips/mips.h:350
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:352
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr ""
-#: config/mips/mips.h:354
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr "Använd GNU as"
-#: config/mips/mips.h:356
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr "Använd GNU as"
-#: config/mips/mips.h:358
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr ""
-#: config/mips/mips.h:360
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr ""
-#: config/mips/mips.h:362 config/mips/mips.h:364
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:366 config/mips/mips.h:368
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr ""
-#: config/mips/mips.h:370
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr ""
-#: config/mips/mips.h:372
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr ""
-#: config/mips/mips.h:374
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr ""
-#: config/mips/mips.h:376
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr ""
-#: config/mips/mips.h:378
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr ""
-#: config/mips/mips.h:380
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr ""
@@ -8447,342 +11928,654 @@ msgstr ""
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:384 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr ""
-#: config/mips/mips.h:386
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr ""
-#: config/mips/mips.h:388
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr ""
-#: config/mips/mips.h:390
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr ""
-#: config/mips/mips.h:392
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr ""
-#: config/mips/mips.h:394
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr ""
-#: config/mips/mips.h:396
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr ""
-#: config/mips/mips.h:398
-msgid "Use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:400
-msgid "Don't use OSF PIC"
-msgstr ""
-
-#: config/mips/mips.h:402
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr ""
-#: config/mips/mips.h:404
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr ""
-#: config/mips/mips.h:406
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr ""
-#: config/mips/mips.h:408
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr ""
-#: config/mips/mips.h:410
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:412
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr ""
-#: config/mips/mips.h:414
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr ""
-#: config/mips/mips.h:416
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr ""
-#: config/mips/mips.h:418
+#. Macro to define tables used to set the flags.
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr "Använd \"big endian\" byteordning"
-#: config/mips/mips.h:420
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr "Använd \"little endian\" byteordning"
-#: config/mips/mips.h:422
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:424
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr ""
-#: config/mips/mips.h:426
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:428
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr ""
-#: config/mips/mips.h:430
-msgid "Work around early 4300 hardware bug"
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
+msgid "Don't generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:432
-msgid "Don't work around early 4300 hardware bug"
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
+msgid "Generate fused multiply/add instructions"
msgstr ""
-#: config/mips/mips.h:434
-msgid "Optimize for 4650"
-msgstr "Optimera för 4650"
+#: config/mips/mips.h:616
+msgid "Work around early 4300 hardware bug"
+msgstr ""
-#: config/mips/mips.h:436
-msgid "Optimize for 3900"
-msgstr "Optimera för 3900"
+#: config/mips/mips.h:618
+msgid "Don't work around early 4300 hardware bug"
+msgstr ""
-#: config/mips/mips.h:438
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr "Fånga heltalsdivision med noll"
-#: config/mips/mips.h:440
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr "Fånga inte heltalsdivision med noll"
-#: config/mips/mips.h:442
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr "Fånga spill vid heltalsdivsion"
-#: config/mips/mips.h:444
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr "Fånga inte spill vid heltalsdivision"
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/mips/mips.h:569
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr ""
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr ""
-#: config/mips/mips.h:571
-msgid "Specify MIPS ISA"
+#: config/mips/mips.h:746
+msgid "Specify CPU for code generation purposes"
msgstr ""
-#: config/mips/mips.h:573
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr ""
+
+#: config/mips/mips.h:750
+msgid "Specify a Standard MIPS ISA"
+msgstr ""
+
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr ""
-#: config/mips/mips.h:575
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr ""
+#: config/mips/mips.h:756
+#, fuzzy
+msgid "Don't call any cache flush functions"
+msgstr "Inga anrop i funktion %s\n"
+
+#: config/mips/mips.h:758
+msgid "Specify cache flush function"
+msgstr ""
+
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2606
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr ""
-#: config/mn10300/mn10300.h:60
-msgid "Work around hardware multiply bug"
+#: config/mmix/mmix.c:189
+#, fuzzy, c-format
+msgid "-f%s not supported: ignored"
+msgstr "\"%s\" stöds inte av %s"
+
+#: config/mmix/mmix.c:644
+#, c-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr ""
-#: config/mn10300/mn10300.h:61
-msgid "Do not work around hardware multiply bug"
+#: config/mmix/mmix.c:826
+msgid "function_profiler support for MMIX"
msgstr ""
-#: config/mn10300/mn10300.h:62
-msgid "Target the AM33 processor"
+#: config/mmix/mmix.c:848
+msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr ""
-#: config/mn10300/mn10300.h:66
-msgid "Enable linker relaxations"
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
+#, c-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:1718
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr ""
+
+#: config/mmix/mmix.c:1737
+msgid "MMIX Internal: Expected a register, not this"
+msgstr ""
+
+#: config/mmix/mmix.c:1747
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr ""
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.c:1779
+#, c-format
+msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+msgstr ""
+
+#. We need the original here.
+#: config/mmix/mmix.c:1831
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr ""
+
+#: config/mmix/mmix.c:1891
+msgid "MMIX Internal: This is not a recognized address"
+msgstr ""
+
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr ""
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
+#, c-format
+msgid "MMIX Internal: %s is not a shiftable int"
+msgstr ""
+
+#: config/mmix/mmix.c:3006
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr ""
+
+#: config/mmix/mmix.c:3013
+msgid "MMIX Internal: What's the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3017
+msgid "MMIX Internal: What is the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.c:3088
+#, fuzzy
+msgid "MMIX Internal: This is not a constant:"
+msgstr "fältinitierare är ej konstant"
+
+#. For these target macros, there is no generic documentation here. You
+#. should read `Using and Porting GCC' for that. Only comments specific
+#. to the MMIX target are here.
+#.
+#. There are however references to the specific texinfo node (comments
+#. with "Node:"), so there should be little or nothing amiss. Probably
+#. the opposite, since we don't have to care about old littering and
+#. soon outdated generic comments.
+#. Node: Driver
+#. User symbols are in the same name-space as built-in symbols, but we
+#. don't need the built-in symbols, so remove those and instead apply
+#. stricter operand checking. Don't warn when expanding insns.
+#. Pass on -mset-program-start=N and -mset-data-start=M to the linker.
+#. Provide default program start 0x100 unless -mno-set-program-start.
+#. Don't do this if linking relocatably, with -r. For a final link,
+#. produce mmo, unless ELF is requested or when linking relocatably.
+#. Put unused option values here.
+#: config/mmix/mmix.h:132
+#, fuzzy
+msgid "Set start-address of the program"
+msgstr "tar adress till något temporärt"
+
+#: config/mmix/mmix.h:134
+msgid "Set start-address of data"
+msgstr ""
+
+#. FIXME: Provide a way to *load* the epsilon register.
+#: config/mmix/mmix.h:198
+msgid "For intrinsics library: pass all parameters in registers"
+msgstr ""
+
+#: config/mmix/mmix.h:201
+#, fuzzy
+msgid "Use register stack for parameters and return value"
+msgstr "Använd register för argumentskickning"
+
+#: config/mmix/mmix.h:203
+msgid "Use call-clobbered registers for parameters and return value"
+msgstr ""
+
+#: config/mmix/mmix.h:205
+#, fuzzy
+msgid "Use epsilon-respecting floating point compare instructions"
+msgstr "Använd flyttalsinstruktioner i hårdvara"
+
+#: config/mmix/mmix.h:208
+msgid "Use zero-extending memory loads, not sign-extending ones"
+msgstr ""
+
+#: config/mmix/mmix.h:211
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+msgstr ""
+
+#: config/mmix/mmix.h:215
+msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+msgstr ""
+
+#: config/mmix/mmix.h:217
+msgid "Do not provide a default start-address 0x100 of the program"
+msgstr ""
+
+#: config/mmix/mmix.h:219
+msgid "Link to emit program in ELF format (rather than mmo)"
+msgstr ""
+
+#: config/mmix/mmix.h:221
+msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr ""
-#: config/nextstep.c:65
-msgid "optimization turned on"
-msgstr "optimering påslagen"
+#: config/mmix/mmix.h:223
+msgid "Don't use P-mnemonics for branches"
+msgstr ""
+
+#: config/mmix/mmix.h:225
+msgid "Use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:227
+msgid "Do not use addresses that allocate global registers"
+msgstr ""
+
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr ""
+
+#: config/mmix/mmix.h:231
+#, fuzzy
+msgid "Do not generate a single exit point for each function"
+msgstr "Generera inte .size-direktiv"
-#: config/nextstep.c:71
-msgid "optimization turned off"
-msgstr "optimering avslagen"
+#: config/mn10300/mn10300.h:59
+msgid "Work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:60
+msgid "Do not work around hardware multiply bug"
+msgstr ""
+
+#: config/mn10300/mn10300.h:61
+msgid "Target the AM33 processor"
+msgstr ""
-#: config/nextstep.c:80
-msgid "optimization level restored"
+#: config/mn10300/mn10300.h:65
+msgid "Enable linker relaxations"
msgstr ""
-#: config/ns32k/ns32k.h:104
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr ""
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr ""
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr ""
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr ""
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr "Optimera för cpu 32532"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr "Optimera för cpu 32332"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr "Optimera för cpu 32032"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr ""
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr ""
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bitfield instructions"
-msgstr "Använd inte bitfältsinstruktioner"
-
-#: config/ns32k/ns32k.h:117
-msgid "Use bitfield instructions"
+#: config/ns32k/ns32k.h:155
+#, fuzzy
+msgid "Use bit-field instructions"
msgstr "Använd bitfältsinstruktioner"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+#, fuzzy
+msgid "Do not use bit-field instructions"
+msgstr "Använd inte bitfältsinstruktioner"
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr ""
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr ""
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr "fpu 32381"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr ""
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr ""
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr ""
-#: config/pa/pa.c:141
+#: config/pa/pa.c:261
#, c-format
msgid ""
-"Unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"unknown -mschedule= option (%s).\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
-#: config/pa/pa.c:166
+#: config/pa/pa.c:286
#, c-format
msgid ""
-"Unknown -march= option (%s).\n"
+"unknown -march= option (%s).\n"
"Valid options are 1.0, 1.1, and 2.0\n"
msgstr ""
-#: config/pa/pa.c:171
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr ""
-#: config/pa/pa.c:176
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr ""
-#: config/pa/pa.c:181
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g stöds bara när man använder GAS på denna processor,"
-#: config/pa/pa.c:182
-msgid "-g option disabled."
+#: config/pa/pa.c:310
+#, fuzzy
+msgid "-g option disabled"
msgstr "flaggan -g är avslagen."
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+#, fuzzy
+msgid "Generate cpp defines for server IO"
+msgstr "Generera kod för en given CPU"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+#, fuzzy
+msgid "Generate cpp defines for workstation IO"
+msgstr "Generera kod för 11/40"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+#, fuzzy
+msgid "Generate PA1.1 code"
+msgstr "Generera CA-kod"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+#, fuzzy
+msgid "Generate PA1.0 code"
+msgstr "Generera CA-kod"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr ""
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr ""
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr ""
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr ""
+
+#: config/pa/pa.h:254
+#, fuzzy
+msgid "Disable indexed addressing"
+msgstr "ogiltig kod"
+
+#: config/pa/pa.h:256
+#, fuzzy
+msgid "Do not disable indexed addressing"
+msgstr "okänt registernamn: %s"
+
+#: config/pa/pa.h:258
+#, fuzzy
+msgid "Use portable calling conventions"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/pa/pa.h:260
+#, fuzzy
+msgid "Do not use portable calling conventions"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr ""
+
+#: config/pa/pa.h:268
+#, fuzzy
+msgid "Do not use software floating point"
+msgstr "Använd mjukvaruflytttal"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr ""
+
+#: config/pa/pa.h:274
+#, fuzzy
+msgid "Generate fast indirect calls"
+msgstr "Generera kod för Intel as"
+
+#: config/pa/pa.h:276
+#, fuzzy
+msgid "Do not generate fast indirect calls"
+msgstr "Generera inte .size-direktiv"
+
+#: config/pa/pa.h:278
+#, fuzzy
+msgid "Generate code for huge switch statements"
+msgstr "Generera kod för Intel as"
+
+#: config/pa/pa.h:280
+#, fuzzy
+msgid "Do not generate code for huge switch statements"
+msgstr "Generera kod för Intel as"
+
+#: config/pa/pa.h:282
+#, fuzzy
+msgid "Always generate long calls"
+msgstr "Generera kod för Intel as"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr ""
+
+#: config/pa/pa.h:286
+#, fuzzy
+msgid "Enable linker optimizations"
+msgstr "inkompatibla typer i %s"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr ""
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr ""
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr ""
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr ""
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr ""
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr ""
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr "Generera kod för 11/40"
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr "Generera kod för 11/45"
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr "Generera kod för 11/10"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr "Använd 32 bits int"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr "Använd 16 bits int"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr "Använd 32 bits float"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr "Använd 64 bits float"
@@ -8790,84 +12583,50 @@ msgstr "Använd 64 bits float"
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr ""
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr ""
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr "Använd assemblersyntax för UNIX"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr "Använd assemblersyntax för DEC"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr "Generera data som \"little endian\""
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr "Generera data som \"big endian\""
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr ""
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr ""
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr ""
-
-#: config/romp/romp.c:669
-#, c-format
-msgid "invalid %%B value"
-msgstr "ogiltigt värde %%B"
-
-#: config/romp/romp.c:696 config/rs6000/rs6000.c:4175
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr ""
-#: config/romp/romp.c:705 config/romp/romp.c:712
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr ""
-#: config/romp/romp.c:733 config/romp/romp.c:740
-#, c-format
-msgid "invalid %%H value"
-msgstr ""
-
-#: config/romp/romp.c:752 config/romp/romp.c:763
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr ""
-#: config/romp/romp.c:771 config/romp/romp.c:779
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr ""
-#: config/romp/romp.c:786 config/romp/romp.c:795 config/romp/romp.c:802
-#: config/rs6000/rs6000.c:3957
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr ""
-#: config/romp/romp.c:887 config/romp/romp.c:930
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr ""
@@ -8885,138 +12644,215 @@ msgstr ""
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr ""
-#: config/rs6000/aix.h:306 config/rs6000/beos.h:30
-msgid "Always pass floating-point arguments in memory"
-msgstr ""
-
-#: config/rs6000/aix.h:308 config/rs6000/beos.h:32
-msgid "Don't always pass floating-point arguments in memory"
-msgstr ""
-
-#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
-msgid "Support message passing with the Parallel Environment"
-msgstr ""
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+#, fuzzy
+msgid "ignoring malformed #pragma longcall"
+msgstr "ignorerar #pragma %s"
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
-msgid "Compile for 64-bit pointers"
-msgstr ""
+#: config/rs6000/rs6000-c.c:58
+#, fuzzy
+msgid "missing open paren"
+msgstr "heltalsspill i uttryck"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
-msgid "Compile for 32-bit pointers"
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
msgstr ""
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
-msgid "-maix64 and POWER architecture are incompatible."
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
msgstr ""
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
-msgid "-maix64 requires PowerPC64 architecture remain enabled."
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
msgstr ""
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
-msgid ""
-"-maix64 required: 64-bit computation with 32-bit addressing not yet "
-"supported."
-msgstr ""
+#: config/rs6000/rs6000-c.c:68
+#, fuzzy
+msgid "junk at end of #pragma longcall"
+msgstr "skräp vid slutet av #pragma weak"
-#: config/rs6000/rs6000.c:341
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple stöds inte på \"little endian\"-system"
-#: config/rs6000/rs6000.c:348
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring stöds inte på \"little endian\"-system"
-#: config/rs6000/rs6000.c:354
+#: config/rs6000/rs6000.c:623
+#, fuzzy, c-format
+msgid "unknown -mdebug-%s switch"
+msgstr "Okänd flagga -mdebug-%s"
+
+#: config/rs6000/rs6000.c:635
#, c-format
-msgid "-f%s ignored for AIX (all code is position independent)"
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
msgstr ""
-#: config/rs6000/rs6000.c:362
-msgid "-ffunction-sections disabled on AIX when debugging"
+#: config/rs6000/rs6000.c:646
+#, c-format
+msgid "Unknown switch -mlong-double-%s"
msgstr ""
-#: config/rs6000/rs6000.c:368
-msgid "-fdata-sections not supported on AIX"
-msgstr "-fdata-sections stöds inte för AIX"
+#: config/rs6000/rs6000.c:738
+#, fuzzy, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "okänt maskinläge `%s'"
-#: config/rs6000/rs6000.c:382
-#, c-format
-msgid "Unknown -mdebug-%s switch"
-msgstr "Okänd flagga -mdebug-%s"
+#: config/rs6000/rs6000.c:753
+#, fuzzy, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "okänt maskinläge `%s'"
+
+#: config/rs6000/rs6000.c:772
+#, fuzzy, c-format
+msgid "unknown ABI specified: '%s'"
+msgstr "okänt maskinläge `%s'"
+
+#: config/rs6000/rs6000.c:4206
+#, fuzzy
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+#, fuzzy
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
+
+#: config/rs6000/rs6000.c:4356
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+
+#: config/rs6000/rs6000.c:4410
+#, fuzzy
+msgid "argument 1 of __builtin_altivec_predicate is out of range"
+msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall"
+
+#: config/rs6000/rs6000.c:4489
+#, fuzzy
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
-#: config/rs6000/rs6000.c:3884
+#: config/rs6000/rs6000.c:4666
+#, fuzzy, c-format
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
+
+#: config/rs6000/rs6000.c:4782
+#, fuzzy
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
+
+#: config/rs6000/rs6000.c:5013
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
+
+#: config/rs6000/rs6000.c:5086
+#, fuzzy
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "argument till \"__builtin_args_info\" är utanför sitt intervall"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr ""
-#: config/rs6000/rs6000.c:3893
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr ""
-#: config/rs6000/rs6000.c:3902
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr ""
-#: config/rs6000/rs6000.c:3937
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr ""
-#: config/rs6000/rs6000.c:3947
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr ""
-#: config/rs6000/rs6000.c:3977
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr ""
-#: config/rs6000/rs6000.c:4101
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "invalid %%p value"
-msgstr ""
+msgid "invalid %%O value"
+msgstr "ogiltigt %%O-värde"
-#: config/rs6000/rs6000.c:4138
+#: config/rs6000/rs6000.c:7793
#, c-format
-msgid "invalid %%q value"
+msgid "invalid %%T value"
msgstr ""
-#: config/rs6000/rs6000.c:4201
+#: config/rs6000/rs6000.c:7803
#, c-format
-msgid "%%S computed all 1's mask"
+msgid "invalid %%u value"
msgstr ""
-#: config/rs6000/rs6000.c:4228
+#: config/rs6000/rs6000.c:7812
#, c-format
-msgid "%%S computed all 0's mask"
+msgid "invalid %%v value"
msgstr ""
-#: config/rs6000/rs6000.c:4238
-#, c-format
-msgid "invalid %%T value"
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
msgstr ""
-#: config/rs6000/rs6000.c:4248
-#, c-format
-msgid "invalid %%u value"
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
+msgid "Always pass floating-point arguments in memory"
msgstr ""
-#: config/rs6000/rs6000.c:4257
-#, c-format
-msgid "invalid %%v value"
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
+msgid "Don't always pass floating-point arguments in memory"
msgstr ""
-#: config/rs6000/rs6000.c:4330
-#, c-format
-msgid "invalid %%W value"
+#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
+msgid "Support message passing with the Parallel Environment"
+msgstr ""
+
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
+msgid "Compile for 64-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
+msgid "Compile for 32-bit pointers"
+msgstr ""
+
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
+#, fuzzy
+msgid "-maix64 and POWER architecture are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
+msgid "-maix64 requires PowerPC64 architecture remain enabled"
+msgstr ""
+
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
+msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr ""
#. Run-time compilation parameters selecting different hardware subsets.
@@ -9026,146 +12862,165 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:255
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:258
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:260
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:263
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:265
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:268
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:270
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:272
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:274
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:276
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr ""
-#: config/rs6000/rs6000.h:278
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr ""
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:267
+#, fuzzy
+msgid "Use AltiVec instructions"
+msgstr "Använd bitfältsinstruktioner"
+
+#: config/rs6000/rs6000.h:269
+#, fuzzy
+msgid "Don't use AltiVec instructions"
+msgstr "Använd inte bitfältsinstruktioner"
+
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:284
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr ""
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:289
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:291
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:293
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:295
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr ""
-#: config/rs6000/rs6000.h:301
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr ""
-#: config/rs6000/rs6000.h:307
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:309
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr ""
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr ""
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr ""
-#: config/rs6000/rs6000.h:323
-msgid "Generate fused multiply/add instructions"
+#: config/rs6000/rs6000.h:318
+msgid "Don't schedule the start and end of the procedure"
msgstr ""
-#: config/rs6000/rs6000.h:325
-msgid "Don't generate fused multiply/add instructions"
+#: config/rs6000/rs6000.h:324
+msgid "Return all structures in memory (AIX default)"
msgstr ""
-#: config/rs6000/rs6000.h:329
-msgid "Don't schedule the start and end of the procedure"
+#: config/rs6000/rs6000.h:326
+msgid "Return small structures in registers (SVR4 default)"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable.
-#. The variable, type `char *', is set to the variable part of the
-#. given option if the fixed part matches. The actual option name
-#. is made by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/rs6000/rs6000.h:402 config/sparc/sparc.h:708
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr ""
-#: config/rs6000/rs6000.h:405
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr ""
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr ""
+
+#: config/rs6000/rs6000.h:397
+msgid "Specify ABI to use"
+msgstr ""
+
+#: config/rs6000/rs6000.h:399
+#, fuzzy
+msgid "Specify size of long double (64 or 128 bits)"
+msgstr "sizeof(long double) är 12."
+
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr ""
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr ""
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr ""
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -9178,104 +13033,113 @@ msgstr ""
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1664
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr ""
-#: config/rs6000/sysv4.h:90
-msgid "Select ABI calling convention."
+#: config/rs6000/sysv4.h:87
+msgid "Select ABI calling convention"
msgstr ""
-#: config/rs6000/sysv4.h:91
-msgid "Select method for sdata handling."
+#: config/rs6000/sysv4.h:88
+msgid "Select method for sdata handling"
msgstr ""
-#: config/rs6000/sysv4.h:106
-msgid "Align to the base type of the bitfield."
+#: config/rs6000/sysv4.h:103
+msgid "Align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:108
-msgid "Don't align to the base type of the bitfield."
+#: config/rs6000/sysv4.h:105
+msgid "Don't align to the base type of the bit-field"
msgstr ""
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:112
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr ""
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
-msgid "Produce code relocatable at runtime."
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
+msgid "Produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:116 config/rs6000/sysv4.h:120
-msgid "Don't produce code relocatable at runtime."
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
+msgid "Don't produce code relocatable at runtime"
msgstr ""
-#: config/rs6000/sysv4.h:122 config/rs6000/sysv4.h:124
-msgid "Produce little endian code."
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
+#, fuzzy
+msgid "Produce little endian code"
msgstr "Skapa \"little endian\"-kod."
-#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:128
-msgid "Produce big endian code."
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
+#, fuzzy
+msgid "Produce big endian code"
msgstr "Skapa \"big endian\"-kod."
-#: config/rs6000/sysv4.h:132 config/sparc/linux.h:84
-#: config/sparc/linux64.h:140
-msgid "Use 128 bit long doubles"
-msgstr "Använd 128 bit long double"
-
-#: config/rs6000/sysv4.h:133 config/rs6000/sysv4.h:134
-#: config/rs6000/sysv4.h:135 config/rs6000/sysv4.h:136
-#: config/rs6000/sysv4.h:137 config/rs6000/sysv4.h:138
-#: config/rs6000/sysv4.h:148 config/rs6000/sysv4.h:149
-#: config/rs6000/sysv4.h:160 config/rs6000/sysv4.h:161
-#: config/rs6000/sysv4.h:162 config/rs6000/sysv4.h:164
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr "ingen beskriving ännu"
-#: config/rs6000/sysv4.h:139
-msgid "Use EABI."
+#: config/rs6000/sysv4.h:132
+#, fuzzy
+msgid "Use EABI"
msgstr "Använd EABI."
-#: config/rs6000/sysv4.h:140
-msgid "Don't use EABI."
+#: config/rs6000/sysv4.h:133
+#, fuzzy
+msgid "Don't use EABI"
msgstr "Använd inte EABI."
-#: config/rs6000/sysv4.h:143
-msgid "Do not allow bitfields to cross word boundaries"
+#: config/rs6000/sysv4.h:136
+msgid "Do not allow bit-fields to cross word boundaries"
msgstr ""
-#: config/rs6000/sysv4.h:145
-msgid "Use alternate register names."
+#: config/rs6000/sysv4.h:138
+#, fuzzy
+msgid "Use alternate register names"
msgstr "Använd alternativa registernamn."
-#: config/rs6000/sysv4.h:147
-msgid "Don't use alternate register names."
+#: config/rs6000/sysv4.h:140
+#, fuzzy
+msgid "Don't use alternate register names"
msgstr "Använd inte alternativa registernamn."
-#: config/rs6000/sysv4.h:151
-msgid "Link with libsim.a, libc.a and sim-crt0.o."
+#: config/rs6000/sysv4.h:144
+#, fuzzy
+msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr "Länka med libsim.a, libc.a och sim-crt0.o."
-#: config/rs6000/sysv4.h:153
-msgid "Link with libads.a, libc.a and crt0.o."
+#: config/rs6000/sysv4.h:146
+#, fuzzy
+msgid "Link with libads.a, libc.a and crt0.o"
msgstr "Länka med libads.a, libc.a och crt0.o."
-#: config/rs6000/sysv4.h:155
-msgid "Link with libyk.a, libc.a and crt0.o."
+#: config/rs6000/sysv4.h:148
+#, fuzzy
+msgid "Link with libyk.a, libc.a and crt0.o"
msgstr "Länka med libyk.a, libc.a och crt0.o."
-#: config/rs6000/sysv4.h:157
-msgid "Link with libmvme.a, libc.a and crt0.o."
+#: config/rs6000/sysv4.h:150
+#, fuzzy
+msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr "Länka med libmvme.a, libc.a och crt0.o."
-#: config/rs6000/sysv4.h:159
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr "Sätt biten PPC_EMB i ELF:s flaggfält"
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr ""
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -9284,357 +13148,505 @@ msgstr "Sätt biten PPC_EMB i ELF:s flaggfält"
#.
#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
#. get control.
-#: config/rs6000/sysv4.h:217
-#, c-format
-msgid "Bad value for -mcall-%s"
+#: config/rs6000/sysv4.h:214
+#, fuzzy, c-format
+msgid "bad value for -mcall-%s"
msgstr "Felaktigt värde för -mcall-%s"
-#: config/rs6000/sysv4.h:233
-#, c-format
-msgid "Bad value for -msdata=%s"
+#: config/rs6000/sysv4.h:230
+#, fuzzy, c-format
+msgid "bad value for -msdata=%s"
msgstr "Felaktigt värde för -msdata-%s"
-#: config/rs6000/sysv4.h:250
-#, c-format
-msgid "-mrelocatable and -msdata=%s are incompatible."
+#: config/rs6000/sysv4.h:247
+#, fuzzy, c-format
+msgid "-mrelocatable and -msdata=%s are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/sysv4.h:255
+#, fuzzy, c-format
+msgid "-f%s and -msdata=%s are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/sysv4.h:264
+#, fuzzy, c-format
+msgid "-msdata=%s and -mcall-%s are incompatible"
+msgstr "-mbsd och -mxopen är inkompatibla"
+
+#: config/rs6000/sysv4.h:273
+#, fuzzy
+msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/sysv4.h:279
+#, fuzzy, c-format
+msgid "-mrelocatable and -mcall-%s are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/sysv4.h:286
+#, fuzzy, c-format
+msgid "-fPIC and -mcall-%s are incompatible"
+msgstr "-fpic och -mapcs-reent är inkompatibla"
+
+#: config/rs6000/sysv4.h:293
+msgid "-mcall-aixdesc must be big endian"
+msgstr "-mcall-aixdesc måste vara \"big endian\""
+
+#: config/s390/s390.c:3063
+msgid "invalid UNSPEC as operand (1)"
msgstr ""
-#: config/rs6000/sysv4.h:258
-#, c-format
-msgid "-f%s and -msdata=%s are incompatible."
+#: config/s390/s390.c:3123
+msgid "invalid UNSPEC as operand (2)"
msgstr ""
-#: config/rs6000/sysv4.h:267
-#, c-format
-msgid "-msdata=%s and -mcall-%s are incompatible."
+#: config/s390/s390.c:3129
+msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr ""
-#: config/rs6000/sysv4.h:274
-msgid "-mrelocatable and -mno-minimal-toc are incompatible."
+#: config/s390/s390.c:3147
+msgid "Cannot decompose address."
msgstr ""
-#: config/rs6000/sysv4.h:280
-#, c-format
-msgid "-mrelocatable and -mcall-%s are incompatible."
+#: config/s390/s390.c:3308
+msgid "UNKNOWN in print_operand !?"
msgstr ""
-#: config/rs6000/sysv4.h:287
-#, c-format
-msgid "-fPIC and -mcall-%s are incompatible."
+#: config/s390/s390.c:4961
+msgid "Total size of local variables exceeds architecture limit."
msgstr ""
-#: config/rs6000/sysv4.h:294
-msgid "-mcall-aixdesc must be big endian"
-msgstr "-mcall-aixdesc måste vara \"big endian\""
+#: config/s390/s390.h:70
+msgid "Set backchain"
+msgstr ""
-#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
-msgid "Generate code for big endian"
-msgstr "Generera kod för \"big endian\""
+#: config/s390/s390.h:71
+msgid "Don't set backchain (faster, but debug harder"
+msgstr ""
-#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
-msgid "Generate code for little endian"
-msgstr "Generera kod för \"little endian\""
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
+msgstr ""
-#: config/sparc/sp86x-aout.h:53 config/sparc/sp86x-elf.h:66
-msgid "Use little-endian byte order for data"
-msgstr "Använd \"little endian\" byteordning för data"
+#: config/s390/s390.h:73
+#, fuzzy
+msgid "Don't use bras"
+msgstr "Använd inte EABI."
-#: config/sparc/sparc.c:253
-#, c-format
-msgid "%s is not supported by this configuration"
+#: config/s390/s390.h:74
+msgid "Additional debug prints"
msgstr ""
-#: config/sparc/sparc.c:260
-msgid "-mlong-double-64 not allowed with -m64"
+#: config/s390/s390.h:75
+msgid "Don't print additional debug prints"
msgstr ""
-#: config/sparc/sparc.c:285
-msgid "-mcmodel= is not supported on 32 bit systems"
+#: config/s390/s390.h:76
+msgid "64 bit mode"
msgstr ""
-#: config/sparc/sparc.c:366
-msgid "profiling does not support code models other than medlow"
+#: config/s390/s390.h:77
+msgid "31 bit mode"
msgstr ""
-#: config/sparc/sparc.c:5712 config/sparc/sparc.c:5718
-#, c-format
-msgid "Invalid %%Y operand"
+#: config/s390/s390.h:78
+msgid "mvcle use"
msgstr ""
-#: config/sparc/sparc.c:5788
-#, c-format
-msgid "Invalid %%A operand"
+#: config/s390/s390.h:79
+msgid "mvc&ex"
msgstr ""
-#: config/sparc/sparc.c:5798
-#, c-format
-msgid "Invalid %%B operand"
-msgstr ""
+#: config/sh/sh.c:5137
+#, fuzzy
+msgid "__builtin_saveregs not supported by this subtarget"
+msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
-#: config/sparc/sparc.c:5837
-#, c-format
-msgid "Invalid %%c operand"
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
msgstr ""
-#: config/sparc/sparc.c:5838
-#, c-format
-msgid "Invalid %%C operand"
-msgstr ""
+#. The sp_switch attribute only has meaning for interrupt functions.
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
+#, fuzzy, c-format
+msgid "`%s' attribute only applies to interrupt functions"
+msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: config/sparc/sparc.c:5859
+#. The argument must be a constant string.
+#: config/sh/sh.c:5720
+#, fuzzy, c-format
+msgid "`%s' attribute argument not a string constant"
+msgstr "%s före strängkonstant"
+
+#. The argument must be a constant integer.
+#: config/sh/sh.c:5759
+#, fuzzy, c-format
+msgid "`%s' attribute argument not an integer constant"
+msgstr "case-etikett reducerar inte till en heltalskonstant"
+
+#. There are no delay slots on SHmedia.
+#. Relaxation isn't yet supported for SHmedia
+#: config/sh/sh.h:437
+#, fuzzy
+msgid "Profiling is not supported on this target."
+msgstr "__builtin_saveregs stöds inte på denna målarkitektur"
+
+#: config/sparc/sparc.c:329
#, c-format
-msgid "Invalid %%d operand"
+msgid "%s is not supported by this configuration"
msgstr ""
-#: config/sparc/sparc.c:5860
-#, c-format
-msgid "Invalid %%D operand"
+#: config/sparc/sparc.c:336
+msgid "-mlong-double-64 not allowed with -m64"
msgstr ""
-#: config/sparc/sparc.c:5878
-#, c-format
-msgid "Invalid %%f operand"
+#: config/sparc/sparc.c:361
+msgid "-mcmodel= is not supported on 32 bit systems"
msgstr ""
-#: config/sparc/sparc.c:5928
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
+#, fuzzy, c-format
+msgid "invalid %%Y operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6417
+#, fuzzy, c-format
+msgid "invalid %%A operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6427
+#, fuzzy, c-format
+msgid "invalid %%B operand"
+msgstr "ogiltigt värde %%B"
+
+#: config/sparc/sparc.c:6466
+#, fuzzy, c-format
+msgid "invalid %%c operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6467
+#, fuzzy, c-format
+msgid "invalid %%C operand"
+msgstr "ogiltigt %%C-värde"
+
+#: config/sparc/sparc.c:6488
+#, fuzzy, c-format
+msgid "invalid %%d operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6489
+#, fuzzy, c-format
+msgid "invalid %%D operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6505
+#, fuzzy, c-format
+msgid "invalid %%f operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6519
+#, fuzzy, c-format
+msgid "invalid %%s operand"
+msgstr "ogiltig %%-kod"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr ""
-#: config/sparc/sparc.c:5931
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr ""
-#. To make profiling work with -f{pic,PIC}, we need to emit the profiling
-#. code into the rtl. Also, if we are profiling, we cannot eliminate
-#. the frame pointer (because the return address will get smashed).
-#: config/sparc/sparc.h:403
-#, c-format
-msgid "%s and profiling conflict: disabling %s"
-msgstr ""
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
+msgid "Use 128 bit long doubles"
+msgstr "Använd 128 bit long double"
-#: config/sparc/sparc.h:587
-msgid "Use FUNCTION_EPILOGUE"
-msgstr "Använd FUNCTION_EPILOGUE"
+#: config/sparc/sp64-elf.h:84 config/sparc/splet.h:29
+msgid "Generate code for big endian"
+msgstr "Generera kod för \"big endian\""
-#: config/sparc/sparc.h:589
-msgid "Do not use FUNCTION_EPILOGUE"
-msgstr "Använd inte FUNCTION_EPILOGUE"
+#: config/sparc/sp64-elf.h:85 config/sparc/splet.h:30
+msgid "Generate code for little endian"
+msgstr "Generera kod för \"little endian\""
-#: config/sparc/sparc.h:591
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
+msgid "Use little-endian byte order for data"
+msgstr "Använd \"little endian\" byteordning för data"
+
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr ""
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr ""
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr ""
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:601
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr ""
-#: config/sparc/sparc.h:603
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:605
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr ""
-#: config/sparc/sparc.h:607
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:609
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr ""
-#: config/sparc/sparc.h:611
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:613
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr ""
-#: config/sparc/sparc.h:615
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr ""
-#: config/sparc/sparc.h:617
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr ""
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:620
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr ""
-#: config/sparc/sparc.h:622
-msgid "Optimize for SparcLite processors"
-msgstr ""
+#: config/sparc/sparc.h:563
+#, fuzzy
+msgid "Optimize for SPARCLite processors"
+msgstr "Kompilera för processorn v850"
-#: config/sparc/sparc.h:624
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr ""
-#: config/sparc/sparc.h:626
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr ""
-#: config/sparc/sparc.h:628
-msgid "Use V8 Sparc ISA"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
msgstr ""
-#: config/sparc/sparc.h:630
-msgid "Optimize for SuperSparc processors"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
msgstr ""
#. End of deprecated options.
-#: config/sparc/sparc.h:633
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
msgstr "Pekare är 64-bitars"
-#: config/sparc/sparc.h:635
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
msgstr "Pekare är 32-bitars"
-#: config/sparc/sparc.h:637
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr "Använd 32-bitars ABI"
-#: config/sparc/sparc.h:639
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr "Använd 64-bitars ABI"
-#: config/sparc/sparc.h:641
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr ""
-#: config/sparc/sparc.h:643
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr ""
-#: config/sparc/sparc.h:645
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:647
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr ""
-#: config/sparc/sparc.h:649
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr ""
-#: config/sparc/sparc.h:651
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
-#: config/sparc/sparc.h:712
-msgid "Use given Sparc code model"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1192
+#, fuzzy
+msgid "cannot use va_start in interrupt function"
+msgstr "kan inte deklarera en statisk funktion i en annan funktion"
+
+#: config/stormy16/stormy16.c:1552
+#, fuzzy
+msgid "`B' operand is not constant"
+msgstr "fältinitierare är ej konstant"
+
+#: config/stormy16/stormy16.c:1558
+msgid "`B' operand has multiple bits set"
+msgstr ""
+
+#: config/stormy16/stormy16.c:1585
+#, fuzzy
+msgid "`o' operand is not constant"
+msgstr "fältinitierare är ej konstant"
+
+#: config/stormy16/stormy16.c:1600
+msgid "xstormy16_print_operand: unknown code"
msgstr ""
-#: config/v850/v850-c.c:68
+#: config/stormy16/stormy16.c:1650
+#, fuzzy, c-format
+msgid "switch statement of size %lu entries too large"
+msgstr "storleken på variabel \"%s\" är för stor"
+
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr ""
-#: config/v850/v850-c.c:95
-msgid "Cannot set interrupt attribute: no current function"
-msgstr ""
+#: config/v850/v850-c.c:94
+#, fuzzy
+msgid "cannot set interrupt attribute: no current function"
+msgstr "Ignorera attributet dllimport för funktioner"
-#: config/v850/v850-c.c:103
-msgid "Cannot set interrupt attribute: no such identifier"
+#: config/v850/v850-c.c:102
+msgid "cannot set interrupt attribute: no such identifier"
msgstr ""
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr ""
-#: config/v850/v850-c.c:166
-#, c-format
-msgid "unrecognised section name \"%s\""
+#: config/v850/v850-c.c:165
+#, fuzzy, c-format
+msgid "unrecognized section name \"%s\""
msgstr "Känner inte igen sektionsnamn \"%s\""
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr ""
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr ""
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr ""
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr ""
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr ""
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr ""
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr ""
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr ""
-#: config/v850/v850.c:107
-#, c-format
-msgid "%s=%s is not numeric."
-msgstr ""
+#: config/v850/v850.c:129
+#, fuzzy, c-format
+msgid "%s=%s is not numeric"
+msgstr "%s=%s är för stor."
-#: config/v850/v850.c:114
-#, c-format
-msgid "%s=%s is too large."
+#: config/v850/v850.c:136
+#, fuzzy, c-format
+msgid "%s=%s is too large"
msgstr "%s=%s är för stor."
-#: config/v850/v850.c:2039
+#: config/v850/v850.c:302
+msgid "const_double_split got a bad insn:"
+msgstr ""
+
+#: config/v850/v850.c:837
+msgid "output_move_single:"
+msgstr ""
+
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr ""
-#: config/v850/v850.c:2047
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr ""
-#: config/v850/v850.c:2249
+#: config/v850/v850.c:2447
#, c-format
-msgid "Bogus JR construction: %d\n"
+msgid "bogus JR construction: %d\n"
msgstr ""
-#: config/v850/v850.c:2270 config/v850/v850.c:2472
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
-msgid "Bad amount of stack space removal: %d"
+msgid "bad amount of stack space removal: %d"
msgstr ""
-#: config/v850/v850.c:2448
+#: config/v850/v850.c:2646
#, c-format
-msgid "Bogus JARL construction: %d\n"
+msgid "bogus JARL construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr ""
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
msgstr ""
#. Macro to define tables used to set the flags.
@@ -9642,7108 +13654,8408 @@ msgstr ""
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:121
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr ""
-#: config/v850/v850.h:124
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr ""
-#: config/v850/v850.h:127
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr ""
-#: config/v850/v850.h:130
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr ""
-#: config/v850/v850.h:133
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr ""
-#: config/v850/v850.h:134
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr ""
-#: config/v850/v850.h:136
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr "Kompilera för processorn v850"
-#: config/v850/v850.h:139
+#: config/v850/v850.h:175
+#, fuzzy
+msgid "Compile for v850e processor"
+msgstr "Kompilera för processorn v850"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+#, fuzzy
+msgid "Enable the use of the short load instructions"
+msgstr "Använd inte bitfältsinstruktioner"
+
+#: config/v850/v850.h:180
+#, fuzzy
+msgid "Do not use the callt instruction"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/v850/v850.h:187
+#, fuzzy
+msgid "Do not use registers r2 and r5"
+msgstr "Använd inte register för argumentskickning"
+
+#: config/v850/v850.h:189
+#, fuzzy
+msgid "Enforce strict alignment"
+msgstr "Generera inte kod för stackkontroll"
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
msgstr ""
-#. This macro is similar to `TARGET_SWITCHES' but defines names of
-#. command options that have values. Its definition is an
-#. initializer with a subgrouping for each command option.
-#.
-#. Each subgrouping contains a string constant, that defines the
-#. fixed part of the option name, and the address of a variable. The
-#. variable, type `char *', is set to the variable part of the given
-#. option if the fixed part matches. The actual option name is made
-#. by appending `-m' to the specified name.
-#.
-#. Here is an example which defines `-mshort-data-NUMBER'. If the
-#. given option is `-mshort-data-512', the variable `m88k_short_data'
-#. will be set to the string `"512"'.
-#.
-#. extern char *m88k_short_data;
-#. #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } }
-#: config/v850/v850.h:183
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
msgstr ""
-#: config/v850/v850.h:186
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
msgstr ""
-#: config/v850/v850.h:189
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
msgstr ""
-#: convert.c:67
-msgid "cannot convert to a pointer type"
-msgstr "kan inte konvertera till en pekartyp"
-
-#: convert.c:100
-msgid "pointer value used where a floating point value was expected"
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
+msgid "bad test"
msgstr ""
-#: convert.c:104
-msgid "aggregate value used where a float was expected"
+#: config/xtensa/xtensa.c:1824
+msgid "boolean registers required for the floating-point option"
msgstr ""
-#: convert.c:130
-msgid "conversion to incomplete type"
-msgstr ""
+#: config/xtensa/xtensa.c:1991
+#, fuzzy
+msgid "invalid mask"
+msgstr "ogiltigt #pragma %s"
-#: convert.c:390 convert.c:470
-msgid "can't convert between vector values of different size"
-msgstr ""
+#: config/xtensa/xtensa.c:2038
+#, fuzzy
+msgid "invalid address"
+msgstr "ogiltig kod"
-#: convert.c:396
-msgid "aggregate value used where an integer was expected"
-msgstr ""
+#: config/xtensa/xtensa.c:2063
+#, fuzzy
+msgid "no register in address"
+msgstr "okänt registernamn: %s"
-#: convert.c:448 f/com.c:1070
-msgid "pointer value used where a complex was expected"
-msgstr ""
+#: config/xtensa/xtensa.c:2071
+#, fuzzy
+msgid "address offset not a constant"
+msgstr "efterfrågad minnesjustering är inte konstant"
-#: convert.c:452 f/com.c:1072
-msgid "aggregate value used where a complex was expected"
-msgstr ""
+#: config/xtensa/xtensa.c:2794
+#, fuzzy
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "Initiera bara variabler som kan placeras i 8-bits området."
-#: convert.c:476
-msgid "can't convert value to a vector"
+#: config/xtensa/xtensa.h:114
+msgid "Use the Xtensa code density option"
msgstr ""
-#: cp/call.c:389
-msgid "unable to call pointer to member function here"
-msgstr ""
+#: config/xtensa/xtensa.h:116
+#, fuzzy
+msgid "Do not use the Xtensa code density option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/call.c:519
-msgid "destructors take no parameters"
+#: config/xtensa/xtensa.h:118
+msgid "Use the Xtensa MAC16 option"
msgstr ""
-#: cp/call.c:2877
-msgid "ISO C++ forbids omitting the middle term of a ?: expression"
-msgstr "ISO C++ förbjuder uteslutande av mittersta termen i ett ?: uttryck"
-
-#: cp/class.c:1435
-#, c-format
-msgid "conflicting access specifications for field `%s', ignored"
-msgstr ""
+#: config/xtensa/xtensa.h:120
+#, fuzzy
+msgid "Do not use the Xtensa MAC16 option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/class.c:5559
-msgid "trying to finish struct, but kicked out due to previous parse errors."
+#: config/xtensa/xtensa.h:122
+msgid "Use the Xtensa MUL16 option"
msgstr ""
-#: cp/class.c:6014
-#, c-format
-msgid "language string `\"%s\"' not recognized"
-msgstr "språksträng `\"%s\"' känns inte igen"
+#: config/xtensa/xtensa.h:124
+#, fuzzy
+msgid "Do not use the Xtensa MUL16 option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/class.c:6327 cp/class.c:6495 cp/class.c:6502
-msgid "not enough type information"
-msgstr "inte tillräcklig typinformation"
+#: config/xtensa/xtensa.h:126
+msgid "Use the Xtensa MUL32 option"
+msgstr ""
-#: cp/class.c:6479
-msgid "invalid operation on uninstantiated type"
-msgstr "ogiltig operation på oinstansierad typ"
+#: config/xtensa/xtensa.h:128
+#, fuzzy
+msgid "Do not use the Xtensa MUL32 option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/class.c:8361
-msgid ""
-"object size exceeds built-in limit for virtual function table implementation"
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:134
+msgid "Use the Xtensa NSA option"
msgstr ""
-#: cp/class.c:8363
-msgid ""
-"object size exceeds normal limit for virtual function table implementation, "
-"recompile all source and use -fhuge-objects"
-msgstr ""
+#: config/xtensa/xtensa.h:136
+#, fuzzy
+msgid "Do not use the Xtensa NSA option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/decl.c:4226
-#, c-format
-msgid "declaration of `%s' shadows a member of `this'"
+#: config/xtensa/xtensa.h:138
+msgid "Use the Xtensa MIN/MAX option"
msgstr ""
-#: cp/decl.c:4867
-#, c-format
-msgid "label `%s' referenced outside of any function"
+#: config/xtensa/xtensa.h:140
+#, fuzzy
+msgid "Do not use the Xtensa MIN/MAX option"
+msgstr "Använd inte divisionsinstruktionen"
+
+#: config/xtensa/xtensa.h:142
+msgid "Use the Xtensa SEXT option"
msgstr ""
-#: cp/decl.c:4972 cp/decl.c:4996
-msgid "jump to case label"
-msgstr "hopp till case-etikett"
+#: config/xtensa/xtensa.h:144
+#, fuzzy
+msgid "Do not use the Xtensa SEXT option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/decl.c:5003 cp/decl.c:5107
-msgid " enters try block"
-msgstr " går in i try-block"
+#: config/xtensa/xtensa.h:146
+msgid "Use the Xtensa boolean register option"
+msgstr ""
-#: cp/decl.c:5005 cp/decl.c:5109
-msgid " enters catch block"
-msgstr " går in i catch-block"
+#: config/xtensa/xtensa.h:148
+#, fuzzy
+msgid "Do not use the Xtensa boolean register option"
+msgstr "Använd inte divisionsinstruktionen"
-#: cp/decl.c:5088
-msgid " from here"
-msgstr " från här"
+#: config/xtensa/xtensa.h:150
+#, fuzzy
+msgid "Use the Xtensa floating-point unit"
+msgstr "Använd mjukvaruflytttal"
-#: cp/decl.c:6353
-msgid "the ABI requires vtable thunks"
+#: config/xtensa/xtensa.h:152
+msgid "Do not use the Xtensa floating-point unit"
msgstr ""
-#: cp/decl.c:7013
-msgid "multiple types in one declaration"
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#. undocumented
+#: config/xtensa/xtensa.h:170
+msgid "Disable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: cp/decl.c:7016
-msgid "declaration does not declare anything"
+#: config/xtensa/xtensa.h:172
+msgid "Enable fused multiply/add and multiply/subtract FP instructions"
msgstr ""
-#: cp/decl.c:7040
-msgid "Missing type-name in typedef-declaration."
+#: config/xtensa/xtensa.h:174
+msgid "Serialize volatile memory references with MEMW instructions"
msgstr ""
-#: cp/decl.c:7047
-msgid "ISO C++ prohibits anonymous structs"
+#: config/xtensa/xtensa.h:176
+msgid "Do not serialize volatile memory references with MEMW instructions"
msgstr ""
-#: cp/decl.c:8033
-msgid "assignment (not initialization) in declaration"
-msgstr "tilldelning (inte initieraing) i deklaration"
-
-#: cp/decl.c:8595
-msgid "invalid catch parameter"
+#: config/xtensa/xtensa.h:178
+msgid "Intersperse literal pools with code in the text section"
msgstr ""
-#: cp/decl.c:8822
-msgid "cannot declare `::main' to be a template"
-msgstr "kan inte deklarera \"::main\" som en mall"
-
-#: cp/decl.c:8824
-msgid "cannot declare `::main' to be inline"
+#: config/xtensa/xtensa.h:180
+msgid "Put literal pools in a separate literal section"
msgstr ""
-#: cp/decl.c:8826
-msgid "cannot declare `::main' to be static"
-msgstr "kan inte deklarera \"::main\" som static"
-
-#: cp/decl.c:8829
-msgid "`main' must return `int'"
-msgstr "\"main\" måste returnera \"int\""
-
-#: cp/decl.c:9380
-msgid "overflow in array dimension"
+#: config/xtensa/xtensa.h:182
+msgid "Automatically align branch targets to reduce branch penalties"
msgstr ""
-#: cp/decl.c:9666
-msgid "destructors must be member functions"
-msgstr "destruerare måste vara medlemsfunktioner"
-
-#: cp/decl.c:9995
-msgid "`bool' is now a keyword"
-msgstr "\"bool\" är numera ett nyckelord"
-
-#: cp/decl.c:10026
-msgid "ISO C++ does not support `long long'"
-msgstr "ISO C++ stödjer inte \"long long\""
-
-#: cp/decl.c:10148
-#, c-format
-msgid "short, signed or unsigned invalid for `%s'"
-msgstr "short, signed eller unsigned är ogiltigt för \"%s\""
-
-#: cp/decl.c:10153
-#, c-format
-msgid "long and short specified together for `%s'"
-msgstr "både long och short angivet för \"%s\""
-
-#: cp/decl.c:10164
-#, c-format
-msgid "signed and unsigned given together for `%s'"
-msgstr "både signed och unsigned angivet för \"%s\""
-
-#: cp/decl.c:10311
-msgid "storage class specifiers invalid in parameter declarations"
+#: config/xtensa/xtensa.h:184
+msgid "Do not automatically align branch targets"
msgstr ""
-#: cp/decl.c:10315
-msgid "typedef declaration invalid in parameter declaration"
+#: config/xtensa/xtensa.h:186
+msgid "Use indirect CALLXn instructions for large programs"
msgstr ""
-#: cp/decl.c:10326
-msgid "virtual outside class declaration"
+#: config/xtensa/xtensa.h:188
+msgid "Use direct CALLn instructions for fast calls"
msgstr ""
-#: cp/decl.c:10380
-#, c-format
-msgid "storage class specified for %s `%s'"
+#: ada/misc.c:233
+msgid "`-gnat' misspelled as `-gant'"
msgstr ""
-#: cp/decl.c:10418
-msgid "storage class specifiers invalid in friend function declarations"
+#: cp/call.c:261 cp/init.c:1594
+msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr ""
-#: cp/decl.c:10600
-msgid "destructor cannot be static member function"
-msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-
-#: cp/decl.c:10624
-msgid "constructor cannot be static member function"
-msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
-
-#: cp/decl.c:10627
-msgid "constructors cannot be declared virtual"
+#: cp/call.c:270
+msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr ""
-#: cp/decl.c:10642
-msgid "return value type specifier for constructor ignored"
+#: cp/call.c:279
+msgid "`%D' is a namespace"
msgstr ""
-#: cp/decl.c:10661
-#, c-format
-msgid "can't initialize friend function `%s'"
+#: cp/call.c:287
+msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr ""
-#. Cannot be both friend and virtual.
-#: cp/decl.c:10665
-msgid "virtual functions cannot be friends"
+#: cp/call.c:369
+msgid "unable to call pointer to member function here"
msgstr ""
-#: cp/decl.c:10670
-msgid "friend declaration not in class definition"
+#: cp/call.c:518
+msgid "destructors take no parameters"
msgstr ""
-#: cp/decl.c:10726
-#, c-format
-msgid "cannot declare %s to references"
+#: cp/call.c:522
+msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr ""
-#: cp/decl.c:10752
-msgid "invalid type: `void &'"
-msgstr "ogiltig typ: \"void &\""
-
-#: cp/decl.c:10803
-msgid "discarding `const' applied to a reference"
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: cp/decl.c:10805
-msgid "discarding `volatile' applied to a reference"
-msgstr ""
+#: cp/call.c:567
+#, fuzzy
+msgid "request for member `%D' is ambiguous"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#. [dcl.fct.spec] The explicit specifier shall only be used in
-#. declarations of constructors within a class definition.
-#: cp/decl.c:11012
-msgid "only declarations of constructors can be `explicit'"
+#: cp/call.c:2537
+msgid "%s %D(%T, %T, %T) <built-in>"
msgstr ""
-#: cp/decl.c:11020
-#, c-format
-msgid "non-member `%s' cannot be declared `mutable'"
+#: cp/call.c:2542
+msgid "%s %D(%T, %T) <built-in>"
msgstr ""
-#: cp/decl.c:11025
-#, c-format
-msgid "non-object member `%s' cannot be declared `mutable'"
+#: cp/call.c:2546
+#, fuzzy
+msgid "%s %D(%T) <built-in>"
+msgstr "<inbyggd>"
+
+#: cp/call.c:2550
+msgid "%s %T <conversion>"
msgstr ""
-#: cp/decl.c:11031
-#, c-format
-msgid "function `%s' cannot be declared `mutable'"
-msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
+#: cp/call.c:2552
+#, fuzzy
+msgid "%s %+#D%s"
+msgstr "%s: %s"
-#: cp/decl.c:11036
-#, c-format
-msgid "static `%s' cannot be declared `mutable'"
-msgstr ""
+#: cp/call.c:2726
+#, fuzzy
+msgid "conversion from `%T' to `%T' is ambiguous"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
-#: cp/decl.c:11041
-#, c-format
-msgid "const `%s' cannot be declared `mutable'"
-msgstr "const \"%s\" kan inte deklareras \"mutable\""
+#: cp/call.c:2803
+#, fuzzy
+msgid "`%T' is not a class type"
+msgstr "ISO C förbjuder typkonvertering till unionstyper"
-#: cp/decl.c:11146
-msgid "typedef declaration includes an initializer"
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
msgstr ""
-#: cp/decl.c:11258
-msgid "unnamed variable or field declared void"
-msgstr ""
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+#, fuzzy
+msgid "'%D' has no member named '%E'"
+msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/decl.c:11267
-msgid "variable or field declared void"
+#: cp/call.c:2933
+msgid "no matching function for call to `%D(%A)'"
msgstr ""
-#: cp/decl.c:11277
-msgid "cannot use `::' in parameter declaration"
+#: cp/call.c:2944 cp/call.c:5087
+msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr ""
-#: cp/decl.c:11462
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.c:2971
#, c-format
-msgid "`%s' is neither function nor member function; cannot be declared friend"
+msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr ""
-#: cp/decl.c:11479
-msgid "member functions are implicitly friends of their class"
+#: cp/call.c:3036
+msgid "no match for call to `(%T) (%A)'"
msgstr ""
-#: cp/decl.c:11588
+#: cp/call.c:3046
+#, fuzzy
+msgid "call of `(%T) (%A)' is ambiguous"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
+
+#: cp/call.c:3081
#, c-format
-msgid "storage class `auto' invalid for function `%s'"
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
msgstr ""
-#: cp/decl.c:11590
-#, c-format
-msgid "storage class `register' invalid for function `%s'"
-msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
+#: cp/call.c:3087
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "%s före symbolen \"%s\""
-#: cp/decl.c:11601
+#: cp/call.c:3091
#, c-format
-msgid ""
-"storage class `static' invalid for function `%s' declared out of global scope"
+msgid "%s for 'operator[]' in '%E[%E]'"
msgstr ""
-#: cp/decl.c:11603
+#: cp/call.c:3096
#, c-format
-msgid ""
-"storage class `inline' invalid for function `%s' declared out of global scope"
+msgid "%s for 'operator%s' in '%E %s %E'"
msgstr ""
-#: cp/decl.c:11610
-#, c-format
-msgid "virtual non-class function `%s'"
-msgstr ""
+#: cp/call.c:3099
+#, fuzzy, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "%s före symbolen \"%s\""
-#. FIXME need arm citation
-#: cp/decl.c:11645
-msgid "cannot declare static function inside another function"
-msgstr "kan inte deklarera en statisk funktion i en annan funktion"
+#: cp/call.c:3191
+msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+msgstr "ISO C++ förbjuder uteslutande av mittersta termen i ett ?: uttryck"
-#: cp/decl.c:11922
-msgid ""
-"invalid integer constant in parameter list, did you forget to give parameter "
-"name?"
+#: cp/call.c:3250
+#, c-format
+msgid "`%E' has type `void' and is not a throw-expression"
msgstr ""
-#: cp/decl.c:12299
-#, c-format
-msgid "conversion to %s%s will never use a type conversion operator"
+#: cp/call.c:3283 cp/call.c:3475
+msgid "operands to ?: have different types"
msgstr ""
-#: cp/decl.c:13393
-msgid "return type for `main' changed to `int'"
-msgstr "returtypen för \"main\" ändrad till \"int\""
+#: cp/call.c:3428
+#, fuzzy
+msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+msgstr "typfel i villkorsuttryck"
-#: cp/decl2.c:554
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr "-f%s stödjs inte längre"
+#: cp/call.c:3435
+#, fuzzy
+msgid "enumeral and non-enumeral type in conditional expression"
+msgstr "typ signed och unsigned i villkorsuttryck"
-#: cp/decl2.c:560
-msgid ""
-"-fhandle-exceptions has been renamed to -fexceptions (and is now on by "
-"default)"
+#: cp/call.c:3516
+#, fuzzy
+msgid "`%D' must be declared before use"
+msgstr "\"%s\" är tidigare deklarerad här"
+
+#: cp/call.c:3706
+msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
msgstr ""
-#: cp/decl2.c:586
-msgid "-fname-mangling-version is no longer supported"
-msgstr "-fname-mangling-version stöds inte längre"
+#: cp/call.c:3753
+msgid "using synthesized `%#D' for copy assignment"
+msgstr ""
-#: cp/decl2.c:649
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "-Wno-strict-prototypes stödjs inte för C++"
+#: cp/call.c:3755
+msgid " where cfront would use `%#D'"
+msgstr ""
-#: cp/decl2.c:988
-msgid "name missing for member function"
-msgstr "namn saknas på medlemsfunktion"
+#: cp/call.c:3782
+#, fuzzy
+msgid "comparison between `%#T' and `%#T'"
+msgstr "jämföreslse mellan signed och unsigned"
-#: cp/decl2.c:1049
-msgid "`__alignof__' applied to a bit-field"
+#: cp/call.c:4021
+msgid "no suitable `operator delete' for `%T'"
msgstr ""
-#. Something has gone very wrong. Assume we are mistakenly reducing
-#. an expression instead of a declaration.
-#: cp/decl2.c:1091
-msgid "parser may be lost: is there a '{' missing somewhere?"
+#: cp/call.c:4040
+msgid "`%+#D' is private"
msgstr ""
-#: cp/decl2.c:1122 cp/decl2.c:1136
-msgid "ambiguous conversion for array subscript"
-msgstr "tvetydig konveretering av fältindex"
-
-#: cp/decl2.c:1186
-msgid "anachronistic use of array size in vector delete"
+#: cp/call.c:4042
+msgid "`%+#D' is protected"
msgstr ""
-#: cp/decl2.c:1196
-msgid ""
-"cannot delete a function. Only pointer-to-objects are valid arguments to "
-"`delete'"
+#: cp/call.c:4044
+msgid "`%+#D' is inaccessible"
msgstr ""
-#: cp/decl2.c:1493
-msgid "initializer invalid for static member with constructor"
+#: cp/call.c:4045
+msgid "within this context"
msgstr ""
-#: cp/decl2.c:1496
-msgid "(an out of class initialization is required)"
-msgstr ""
+#: cp/call.c:4088
+#, fuzzy
+msgid "invalid conversion from `%T' to `%T'"
+msgstr "konvertering från NaN till int"
-#: cp/decl2.c:1669
-msgid "field initializer is not constant"
-msgstr "fältinitierare är ej konstant"
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
+#, fuzzy
+msgid " initializing argument %P of `%D'"
+msgstr "ogiltigt typargument till \"%s\""
-#: cp/decl2.c:2008
-msgid "anonymous struct not inside named type"
+#: cp/call.c:4152 cp/call.c:4156
+msgid " initializing argument %P of `%D' from result of `%D'"
msgstr ""
-#: cp/decl2.c:2104
-msgid "namespace-scope anonymous aggregates must be static"
+#: cp/call.c:4162 cp/call.c:4165
+msgid " initializing temporary from result of `%D'"
msgstr ""
-#: cp/decl2.c:2114
-msgid "anonymous aggregate with no members"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
msgstr ""
-#. Overflow occurred. That means there are at least 4 billion
-#. initialization functions.
-#: cp/decl2.c:2986
-msgid "too many initialization functions required"
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
+msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr ""
-#: cp/decl2.c:3796
-msgid "use of old-style cast"
-msgstr "användning av gammaldags typkonvertering"
+#: cp/call.c:4523
+msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+msgstr ""
-#: cp/error.c:46
-#, c-format
-msgid "`%s' not supported by %s"
-msgstr "\"%s\" stöds inte av %s"
+#: cp/call.c:4542
+#, fuzzy
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "%s har ingen medlem med namn \"%s\""
-#: cp/error.c:631
-#, c-format
-msgid "<anonymous %s>"
-msgstr "<anonym %s>"
+#: cp/call.c:4786
+#, fuzzy
+msgid "could not find class$ field in java interface type `%T'"
+msgstr "ingen superklass deklarerad i interface för \"%s\""
-#: cp/error.c:892
-#, c-format
-msgid "(static %s for %s)"
-msgstr "(static %s för %s)"
+#: cp/call.c:4974
+#, fuzzy
+msgid "call to non-function `%D'"
+msgstr "Inga anrop i funktion %s\n"
-#: cp/error.c:2529
-#, c-format
-msgid "In %s `%s':"
+#: cp/call.c:5076
+msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr ""
-#: cp/error.c:2584
-#, c-format
-msgid "%s: In instantiation of `%s':\n"
-msgstr "%s: Vid instansiering av \"%s\":\n"
-
-#: cp/error.c:2608
-#, c-format
-msgid "%s:%d: instantiated from `%s'\n"
+#: cp/call.c:5106
+msgid "cannot call member function `%D' without object"
msgstr ""
-#: cp/error.c:2613
-#, c-format
-msgid "%s:%d: instantiated from here\n"
+#: cp/call.c:5704
+msgid "passing `%T' chooses `%T' over `%T'"
msgstr ""
-#: cp/except.c:258
-msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
-msgstr ""
+#: cp/call.c:5706 cp/decl2.c:4154
+#, fuzzy
+msgid " in call to `%D'"
+msgstr "kan inte inline:a anrop till \"%s\""
-#: cp/except.c:329
-msgid "mixing C++ and Java catches in a single translation unit"
+#: cp/call.c:5755
+msgid "choosing `%D' over `%D'"
msgstr ""
-#: cp/except.c:665
-msgid " in thrown expression"
+#: cp/call.c:5756
+#, fuzzy
+msgid " for conversion from `%T' to `%T'"
+msgstr "konvertering från NaN till int"
+
+#: cp/call.c:5758
+msgid " because conversion sequence for the argument is better"
msgstr ""
-#: cp/friend.c:423
-msgid ""
-"(if this is not what you intended, make sure the function template has "
-"already been declared and add <> after the function name here) -Wno-non-"
-"template-friend disables this warning."
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
msgstr ""
-#: cp/g++spec.c:197 java/jvspec.c:358
-#, c-format
-msgid "argument to `%s' missing\n"
-msgstr "argument till \"%s\" saknas\n"
+#: cp/call.c:5996
+#, fuzzy
+msgid "could not convert `%E' to `%T'"
+msgstr "kunde inte öppna dump-fil \"%s\""
-#: cp/init.c:313
-msgid "initializer list treated as compound expression"
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
msgstr ""
-#: cp/init.c:428
-msgid " will be re-ordered to match declaration order"
-msgstr ""
+#: cp/call.c:6109
+#, fuzzy
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "ogiltig mottagartyp \"%s\""
-#: cp/init.c:662
-msgid " will be re-ordered to match inheritance order"
+#: cp/class.c:287
+msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr ""
-#: cp/init.c:1105
-msgid "base class initializer specified, but no base class to initialize"
+#: cp/class.c:992
+msgid "`%#D' and `%#D' cannot be overloaded"
msgstr ""
-#: cp/init.c:1111
-msgid "initializer for unnamed base class ambiguous"
-msgstr ""
+#: cp/class.c:1076
+#, fuzzy
+msgid "duplicate enum value `%D'"
+msgstr "upprepat case-värde"
-#: cp/init.c:1136
-msgid "no base class to initialize"
+#: cp/class.c:1079
+msgid "duplicate field `%D' (as enum and non-enum)"
msgstr ""
-#: cp/init.c:1860
-msgid "object missing in use of pointer-to-member construct"
-msgstr ""
+#: cp/class.c:1086
+#, fuzzy
+msgid "duplicate nested type `%D'"
+msgstr "upprepning av medlem \"%s\""
-#: cp/init.c:1902 cp/typeck.c:3187 cp/typeck.c:3295
-msgid "at this point in file"
+#: cp/class.c:1097
+msgid "duplicate field `%D' (as type and non-type)"
msgstr ""
-#: cp/init.c:2076
-msgid "new of array type fails to specify size"
-msgstr ""
+#: cp/class.c:1101
+#, fuzzy
+msgid "duplicate member `%D'"
+msgstr "upprepning av medlem \"%s\""
-#: cp/init.c:2087
-msgid "size in array new must have integral type"
+#: cp/class.c:1144
+msgid "conflicting access specifications for method `%D', ignored"
msgstr ""
-#: cp/init.c:2093
-msgid "zero size array reserves no space"
+#: cp/class.c:1146
+#, c-format
+msgid "conflicting access specifications for field `%s', ignored"
msgstr ""
-#: cp/init.c:2158
-msgid "new cannot be applied to a reference type"
+#: cp/class.c:1194
+msgid "`%D' names constructor"
msgstr ""
-#: cp/init.c:2164
-msgid "new cannot be applied to a function type"
-msgstr ""
+#: cp/class.c:1199
+#, fuzzy
+msgid "`%D' invalid in `%T'"
+msgstr "Ogiltig flagga \"%s\""
-#: cp/init.c:2211
-msgid "call to Java constructor, while `jclass' undefined"
+#: cp/class.c:1207
+msgid "no members matching `%D' in `%#T'"
msgstr ""
-#: cp/init.c:2227
-msgid "Can't find class$"
-msgstr "Kan inte hitta class$"
-
-#: cp/init.c:2340
-msgid "invalid type `void' for new"
-msgstr "ogiltig typ \"void\" för new"
+#: cp/class.c:1239 cp/class.c:1247
+#, fuzzy
+msgid "`%D' invalid in `%#T'"
+msgstr "Ogiltig flagga \"%s\""
-#: cp/init.c:2394
-#, c-format
-msgid "call to Java constructor with `%s' undefined"
+#: cp/class.c:1240
+msgid " because of local method `%#D' with same name"
msgstr ""
-#: cp/init.c:2522 cp/typeck2.c:382 cp/typeck2.c:1211
-msgid "initializer list being treated as compound expression"
+#: cp/class.c:1248
+msgid " because of local member `%#D' with same name"
msgstr ""
-#: cp/init.c:2528
-msgid "ISO C++ forbids aggregate initializer to new"
+#: cp/class.c:1320
+msgid "base class `%#T' has a non-virtual destructor"
msgstr ""
-#: cp/init.c:2967
-msgid "initializer ends prematurely"
+#: cp/class.c:1340
+msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr ""
-#: cp/init.c:3037
-msgid "cannot initialize multi-dimensional array with initializer"
+#: cp/class.c:1912
+msgid "all member functions in class `%T' are private"
msgstr ""
-#: cp/init.c:3215
-msgid "unknown array size in delete"
+#: cp/class.c:1926
+msgid "`%#T' only defines a private destructor and has no friends"
msgstr ""
-#: cp/init.c:3440
-msgid "type to vector delete is neither pointer or array type"
+#: cp/class.c:1969
+msgid "`%#T' only defines private constructors and has no friends"
msgstr ""
-#: cp/lang-options.h:29
-msgid "Do not obey access control semantics"
-msgstr ""
+#: cp/class.c:2090 cp/class.c:5276
+#, fuzzy
+msgid "redefinition of `%#T'"
+msgstr "omdefiniering av \"%s\""
-#: cp/lang-options.h:31
-msgid "Change when template instances are emitted"
-msgstr ""
+#: cp/class.c:2091
+#, fuzzy
+msgid "previous definition of `%#T'"
+msgstr "omdefiniering av \"%s\""
-#: cp/lang-options.h:36
-msgid "Check the return value of new"
+#: cp/class.c:2365
+msgid "no unique final overrider for `%D' in `%T'"
msgstr ""
-#: cp/lang-options.h:39
-msgid "Reduce size of object files"
+#. Here we know it is a hider, and no overrider exists.
+#: cp/class.c:2712
+msgid "`%D' was hidden"
msgstr ""
-#: cp/lang-options.h:43
-msgid "Make string literals `char[]' instead of `const char[]'"
+#: cp/class.c:2713
+msgid " by `%D'"
msgstr ""
-#: cp/lang-options.h:46
-msgid "Dump the entire translation unit to a file"
+#: cp/class.c:2755
+msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr ""
-#: cp/lang-options.h:48
-msgid "Do not inline member functions by default"
+#: cp/class.c:2760 cp/decl2.c:1331
+msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr ""
-#: cp/lang-options.h:51
-msgid "Do not generate run time type descriptor information"
+#: cp/class.c:2766 cp/decl2.c:1337
+msgid "private member `%#D' in anonymous union"
msgstr ""
-#: cp/lang-options.h:56
-msgid "Do not generate code to check exception specifications"
+#: cp/class.c:2769 cp/decl2.c:1339
+msgid "protected member `%#D' in anonymous union"
msgstr ""
-#: cp/lang-options.h:61
-msgid "Scope of for-init-statement vars extends outside"
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
msgstr ""
-#: cp/lang-options.h:64
-msgid "Do not recognise GNU defined keywords"
-msgstr ""
+#: cp/class.c:2958
+#, fuzzy
+msgid "bit-field `%#D' with non-integral type"
+msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: cp/lang-options.h:69
-msgid "Do not treat the namespace `std' as a normal namespace"
-msgstr ""
+#: cp/class.c:2978
+#, fuzzy
+msgid "bit-field `%D' width not an integer constant"
+msgstr "tre \"l\"-suffix på heltalskonstant"
-#: cp/lang-options.h:71
-msgid "Enable support for huge objects"
-msgstr ""
+#: cp/class.c:2984
+#, fuzzy
+msgid "negative width in bit-field `%D'"
+msgstr "negativ storlek i bitfält \"%s\""
-#: cp/lang-options.h:75
-msgid "Export functions even if they can be inlined"
-msgstr ""
+#: cp/class.c:2989
+#, fuzzy
+msgid "zero width for bit-field `%D'"
+msgstr "Storleken noll på bitfält \"%s\""
-#: cp/lang-options.h:78
-msgid "Only emit explicit template instatiations"
+#: cp/class.c:2995
+#, fuzzy
+msgid "width of `%D' exceeds its type"
+msgstr "storleken på \"%s\" är större än sin typ"
+
+#: cp/class.c:3004
+msgid "`%D' is too small to hold all values of `%#T'"
msgstr ""
-#: cp/lang-options.h:81
-msgid "Only emit explicit instatiations of inline templates"
+#: cp/class.c:3088
+msgid "member `%#D' with constructor not allowed in union"
msgstr ""
-#: cp/lang-options.h:87
-msgid "Don't pedwarn about uses of Microsoft extensions"
+#: cp/class.c:3091
+msgid "member `%#D' with destructor not allowed in union"
msgstr ""
-#: cp/lang-options.h:90
-msgid "Recognise and/bitand/bitor/compl/not/or/xor"
-msgstr "Känn igen and/bitand/bitor/compl/not/or/xor"
+#: cp/class.c:3094
+msgid "member `%#D' with copy assignment operator not allowed in union"
+msgstr ""
-#: cp/lang-options.h:94
-msgid "Disable optional diagnostics"
+#: cp/class.c:3121
+msgid "multiple fields in union `%T' initialized"
msgstr ""
-#: cp/lang-options.h:96
-msgid "Downgrade conformance errors to warnings"
+#: cp/class.c:3234
+msgid "field `%D' in local class cannot be static"
msgstr ""
-#: cp/lang-options.h:99
-msgid "Enable automatic template instantiation"
-msgstr "Slå på automatisk mallinstansiering"
+#: cp/class.c:3240
+#, fuzzy
+msgid "field `%D' invalidly declared function type"
+msgstr "fält \"%s\" deklarerad som en funktion"
-#: cp/lang-options.h:104
-msgid "Display statistics accumulated during compilation"
-msgstr ""
+#: cp/class.c:3247
+#, fuzzy
+msgid "field `%D' invalidly declared method type"
+msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: cp/lang-options.h:107
-msgid "Specify maximum template instantiation depth"
-msgstr "Ange maximalt instansieringsdjup för mallar"
+#: cp/class.c:3253
+#, fuzzy
+msgid "field `%D' invalidly declared offset type"
+msgstr "bitfält \"%s\" har en icke godkänd typ"
-#: cp/lang-options.h:109
-msgid "Use __cxa_atexit to register destructors."
+#. Unions cannot have static members.
+#: cp/class.c:3271
+#, fuzzy
+msgid "field `%D' declared static in union"
+msgstr "fält \"%s\" deklarerad som en funktion"
+
+#: cp/class.c:3298
+msgid "non-static reference `%#D' in class without a constructor"
msgstr ""
-#: cp/lang-options.h:112
-msgid "Discard unused virtual functions"
+#: cp/class.c:3333
+msgid "non-static const member `%#D' in class without a constructor"
msgstr ""
-#: cp/lang-options.h:115
-msgid "Implement vtables using thunks"
+#: cp/class.c:3349
+msgid "field `%#D' with same name as class"
msgstr ""
-#: cp/lang-options.h:118
-msgid "Emit common-like symbols as weak symbols"
+#: cp/class.c:3367
+msgid "`%#T' has pointer data members"
msgstr ""
-#: cp/lang-options.h:121
-msgid "Emit cross referencing information"
+#: cp/class.c:3371
+msgid " but does not override `%T(const %T&)'"
msgstr ""
-#: cp/lang-options.h:125
-msgid "Warn about inconsistent return types"
+#: cp/class.c:3373
+msgid " or `operator=(const %T&)'"
msgstr ""
-#: cp/lang-options.h:128
-msgid "Warn about overloaded virtual function names"
+#: cp/class.c:3376
+msgid " but does not override `operator=(const %T&)'"
msgstr ""
-#: cp/lang-options.h:132
-msgid "Don't warn when all ctors/dtors are private"
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:134
-msgid "Warn about non virtual destructors"
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:137
-msgid "Warn when a function is declared extern, then inline"
+#: cp/class.c:4025
+#, fuzzy
+msgid "initializer specified for non-virtual method `%D'"
+msgstr "argumentformat angivet för icke-funktion \"%s\""
+
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:140
-msgid "Warn when the compiler reorders code"
+#: cp/class.c:4861
+msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/lang-options.h:143
-msgid "Warn when synthesis behaviour differs from Cfront"
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
msgstr ""
-#: cp/lang-options.h:147
-msgid "Don't warn when type converting pointers to member functions"
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:149
-msgid "Warn about violations of Effective C++ style rules"
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:152
-msgid "Warn when overload promotes from unsigned to signed"
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:155
-msgid "Warn if a C style cast is used in a program"
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:159
-msgid ""
-"Don't warn when non-templatized friend functions are declared within a "
-"template"
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
msgstr ""
-#: cp/lang-options.h:162
-msgid "Don't announce deprecation of compiler features"
+#: cp/class.c:5432
+msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr ""
-#: cp/lex.c:148
-msgid "type name expected before `*'"
-msgstr "typnamn förväntat före \"*\""
+#: cp/class.c:5516
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr ""
-#: cp/lex.c:170
-msgid "cannot declare references to references"
-msgstr "kan inte deklarera referenser till referenser"
+#: cp/class.c:5982
+#, c-format
+msgid "language string `\"%s\"' not recognized"
+msgstr "språksträng `\"%s\"' känns inte igen"
-#: cp/lex.c:175
-msgid "cannot declare pointers to references"
-msgstr "kan inte deklarera pekare till referenser"
+#: cp/class.c:6078
+msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+msgstr ""
-#: cp/lex.c:179
-msgid "type name expected before `&'"
+#: cp/class.c:6203
+msgid "no matches converting function `%D' to type `%#T'"
msgstr ""
-#: cp/lex.c:1026
-#, c-format
-msgid "semicolon missing after %s declaration"
+#: cp/class.c:6226
+msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr ""
-#: cp/lex.c:1077
+#: cp/class.c:6252
+#, fuzzy
+msgid "assuming pointer to member `%D'"
+msgstr "upprepning av medlem \"%s\""
+
+#: cp/class.c:6255
#, c-format
-msgid "junk at end of #pragma %s"
+msgid "(a pointer to member can only be formed with `&%E')"
msgstr ""
-#: cp/lex.c:1084
-#, c-format
-msgid "invalid #pragma %s"
-msgstr "ogiltigt #pragma %s"
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
+msgid "not enough type information"
+msgstr "inte tillräcklig typinformation"
-#: cp/lex.c:1093
-msgid "#pragma vtable no longer supported"
-msgstr ""
+#: cp/class.c:6315
+#, fuzzy
+msgid "argument of type `%T' does not match `%T'"
+msgstr "argument \"%s\" matchar inte prototypen"
-#: cp/lex.c:1170
-#, c-format
-msgid "#pragma implementation for %s appears after file is included"
-msgstr ""
+#: cp/class.c:6461
+msgid "invalid operation on uninstantiated type"
+msgstr "ogiltig operation på oinstansierad typ"
-#: cp/lex.c:1195
-msgid "junk at end of #pragma GCC java_exceptions"
+#. [basic.scope.class]
+#.
+#. A name N used in a class S shall refer to the same declaration
+#. in its context and when re-evaluated in the completed scope of
+#. S.
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
+#, fuzzy
+msgid "declaration of `%#D'"
+msgstr "omdeklaration av \"%s\""
+
+#: cp/class.c:6746
+msgid "changes meaning of `%D' from `%+#D'"
msgstr ""
-#: cp/lex.c:1296
-msgid ""
-"(Each undeclared identifier is reported only once for each function it "
-"appears in.)"
+#: cp/cvt.c:88
+#, fuzzy
+msgid "can't convert from incomplete type `%T' to `%T'"
+msgstr "kan inte konvertera till en pekartyp"
+
+#: cp/cvt.c:97
+msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
msgstr ""
-#: cp/lex.c:1319
-#, c-format
-msgid "name lookup of `%s' changed"
+#: cp/cvt.c:126
+#, fuzzy
+msgid "converting from `%T' to `%T'"
+msgstr "konvertering från NaN till int"
+
+#: cp/cvt.c:203 cp/cvt.c:207
+msgid "pointer to member cast from `%T' to `%T' is via virtual base"
msgstr ""
-#: cp/lex.c:1333 cp/lex.c:1340
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
+#, fuzzy
+msgid "cannot convert `%E' from type `%T' to type `%T'"
+msgstr "kan inte konvertera till en pekartyp"
+
+#: cp/cvt.c:262
+#, fuzzy
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "konvertering från NaN till int"
+
+#: cp/cvt.c:504
+msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr ""
-#: cp/mangle.c:1877
-msgid "real-valued template parameters when cross-compiling"
+#: cp/cvt.c:522
+msgid "casting `%T' to `%T' does not dereference pointer"
msgstr ""
-#: cp/method.c:170
-msgid "methods cannot be converted to function pointers"
-msgstr "metoder kan inte konverteras till funktionspekare"
+#: cp/cvt.c:551
+#, fuzzy
+msgid "cannot convert type `%T' to type `%T'"
+msgstr "kan inte konvertera till en pekartyp"
-#: cp/method.c:175
-#, c-format
-msgid "ambiguous request for method pointer `%s'"
-msgstr ""
+#: cp/cvt.c:683
+#, fuzzy
+msgid "conversion from `%#T' to `%#T'"
+msgstr "konvertering från NaN till int"
-#: cp/parse.y:674
-msgid "invalid default template argument"
+#: cp/cvt.c:695
+msgid "`%#T' used where a `%T' was expected"
msgstr ""
-#: cp/parse.y:891
-msgid "no base or member initializers given following ':'"
+#: cp/cvt.c:712
+msgid "the address of `%D', will always be `true'"
msgstr ""
-#: cp/parse.y:904
-msgid "base initializers not allowed for non-member functions"
+#: cp/cvt.c:732
+msgid "`%#T' used where a floating point value was expected"
msgstr ""
-#: cp/parse.y:906
-msgid "only constructors take base initializers"
+#: cp/cvt.c:779
+#, fuzzy
+msgid "conversion from `%T' to non-scalar type `%T' requested"
+msgstr "konvertering till icke-skalär typ begärd"
+
+#: cp/cvt.c:865
+msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/parse.y:939 cp/parse.y:945
-msgid "anachronistic old style base class initializer"
+#: cp/cvt.c:868
+msgid "object of type `%T' will not be accessed in %s"
msgstr ""
-#. Handle `Class<Class<Type>>' without space in the `>>'
-#: cp/parse.y:1067
-msgid "`>>' should be `> >' in template class name"
+#: cp/cvt.c:884
+msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr ""
-#: cp/parse.y:1124 cp/parse.y:1133
+#. [over.over] enumerates the places where we can take the address
+#. of an overloaded function, and this is not one of them.
+#: cp/cvt.c:904
+#, fuzzy, c-format
+msgid "%s cannot resolve address of overloaded function"
+msgstr "Programflödet når slutet på en icke-void-funktion"
+
+#. Only warn when there is no &.
+#: cp/cvt.c:909
#, c-format
-msgid "ISO C++ forbids an empty condition for `%s'"
+msgid "%s is a reference, not call, to function `%E'"
msgstr ""
-#: cp/parse.y:1310
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
+#: cp/cvt.c:1039
+#, fuzzy
+msgid "converting NULL to non-pointer type"
+msgstr "kan inte konvertera till en pekartyp"
-#: cp/parse.y:1341
-msgid "ISO C++ forbids compound literals"
+#: cp/cvt.c:1115
+msgid "ambiguous default type conversion from `%T'"
msgstr ""
-#: cp/parse.y:1582
-msgid "ISO C++ forbids braced-groups within expressions"
+#: cp/cvt.c:1117
+msgid " candidate conversions include `%D' and `%D'"
msgstr ""
-#: cp/parse.y:1988 cp/parse.y:2003
-msgid "sigof type specifier"
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
msgstr ""
-#: cp/parse.y:1993
-msgid "`sigof' applied to non-aggregate expression"
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
msgstr ""
-#: cp/parse.y:2008
-msgid "`sigof' applied to non-aggregate type"
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
msgstr ""
-#: cp/parse.y:2348
+#: cp/decl.c:808
#, c-format
-msgid "storage class specifier `%s' not allowed after struct or class"
+msgid "suspend %s level %p line %d\n"
msgstr ""
-#: cp/parse.y:2350
+#: cp/decl.c:837
#, c-format
-msgid "type specifier `%s' not allowed after struct or class"
+msgid "resume %s level %p line %d\n"
msgstr ""
-#: cp/parse.y:2352
-#, c-format
-msgid "type qualifier `%s' not allowed after struct or class"
-msgstr ""
+#: cp/decl.c:1255 cp/decl.c:3490
+#, fuzzy
+msgid "conflicts with previous declaration `%#D'"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/parse.y:2354
-msgid "no body nor ';' separates two class, struct or union declarations"
+#: cp/decl.c:1467
+#, fuzzy
+msgid "label `%D' used but not defined"
+msgstr "etikett \"%s\" använd men inte definierad"
+
+#: cp/decl.c:1472
+#, fuzzy
+msgid "label `%D' defined but not used"
+msgstr "etikett \"%s\" definierad men inte använd"
+
+#: cp/decl.c:2489
+msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr ""
-#: cp/parse.y:2519
-msgid "multiple access specifiers"
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
msgstr ""
-#: cp/parse.y:2537
-msgid "multiple `virtual' specifiers"
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
msgstr ""
-#: cp/parse.y:2574
-msgid "missing ';' before right brace"
-msgstr "saknar ';' före slutklammer"
+#: cp/decl.c:3285 cp/decl.c:3700
+#, fuzzy
+msgid "previous declaration of `%D'"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/parse.y:2797
-msgid "ISO C++ forbids array dimensions with parenthesized type in new"
-msgstr ""
+#: cp/decl.c:3366 cp/decl.c:3404
+#, fuzzy
+msgid "shadowing %s function `%#D'"
+msgstr "döljer biblioteksfunktion \"%s\""
-#: cp/parse.y:3306
-msgid "ISO C++ forbids label declarations"
-msgstr ""
+#: cp/decl.c:3375
+#, fuzzy
+msgid "library function `%#D' redeclared as non-function `%#D'"
+msgstr "biblioteksfunktion \"%s\" deklarerad som icke-funktion"
-#: cp/parse.y:3468
-msgid "ISO C++ forbids computed gotos"
-msgstr "ISO C++ förbjuder beräknade goto"
+#: cp/decl.c:3380
+#, fuzzy
+msgid "conflicts with built-in declaration `%#D'"
+msgstr "motstridande deklarationer av \"%s\""
-#: cp/parse.y:3476
-msgid "label must be followed by statement"
-msgstr ""
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
+#, fuzzy
+msgid "new declaration `%#D'"
+msgstr "omdeklaration av \"%s\""
-#: cp/parse.y:3575
-msgid "ISO C++ forbids compound statements inside for initializations"
-msgstr ""
+#: cp/decl.c:3400
+#, fuzzy
+msgid "ambiguates built-in declaration `%#D'"
+msgstr "dubbel deklaration av etikett \"%s\""
-#. This helps us recover from really nasty
-#. parse errors, for example, a missing right
-#. parenthesis.
-#: cp/parse.y:3658 cp/parse.y:3668
-msgid "possibly missing ')'"
-msgstr "saknas troligen en ')'"
+#: cp/decl.c:3464
+#, fuzzy
+msgid "`%#D' redeclared as different kind of symbol"
+msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
-#: cp/parse.y:3765 cp/parse.y:3770
-msgid "type specifier omitted for parameter"
-msgstr ""
+#: cp/decl.c:3467
+#, fuzzy
+msgid "previous declaration of `%#D'"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/pt.c:6303
-msgid "creating array with size zero"
-msgstr "skapar ett fält med storlek noll"
+#: cp/decl.c:3489
+#, fuzzy
+msgid "declaration of template `%#D'"
+msgstr "omdeklaration av \"enum %s\""
-#: cp/pt.c:6799
-#, c-format
-msgid "use of `%s' in template"
-msgstr "användning ab `%s' i mall"
+#: cp/decl.c:3505 cp/decl.c:3521
+#, fuzzy
+msgid "ambiguates old declaration `%#D'"
+msgstr "dubbel deklaration av etikett \"%s\""
-#: cp/pt.c:8004
-msgid "incomplete type unification"
-msgstr "inkomplett typunifiering"
+#: cp/decl.c:3513
+#, fuzzy
+msgid "declaration of C function `%#D' conflicts with"
+msgstr "implicit deklaration av funktion \"%s\""
-#: cp/pt.c:8934
-#, c-format
-msgid "use of `%s' in template type unification"
-msgstr ""
+#: cp/decl.c:3515
+#, fuzzy
+msgid "previous declaration `%#D' here"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/repo.c:272
-msgid "-frepo must be used with -c"
-msgstr "-frepo måste användas tillsammans med -c"
+#: cp/decl.c:3533
+#, fuzzy
+msgid "conflicting types for `%#D'"
+msgstr "motstridiga typer på \"%s\""
-#: cp/repo.c:366
-#, c-format
-msgid "mysterious repository information in %s"
-msgstr ""
+#: cp/decl.c:3534
+#, fuzzy
+msgid "previous declaration as `%#D'"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/repo.c:381
-#, c-format
-msgid "can't create repository information file `%s'"
-msgstr ""
+#: cp/decl.c:3577
+#, fuzzy
+msgid "`%#D' previously defined here"
+msgstr "\"%s\" definierades tidigare här"
-#: cp/rtti.c:219
-msgid "taking dynamic typeid of object with -fno-rtti"
-msgstr ""
+#: cp/decl.c:3578
+#, fuzzy
+msgid "`%#D' previously declared here"
+msgstr "\"%s\" är tidigare deklarerad här"
-#: cp/rtti.c:250
-msgid "cannot use typeid with -fno-rtti"
-msgstr "kan inte använda typeid med -fno-rtti"
+#. Prototype decl follows defn w/o prototype.
+#: cp/decl.c:3587
+#, fuzzy
+msgid "prototype for `%#D'"
+msgstr "prototyp för \"%s\" följer"
-#: cp/rtti.c:256 cp/rtti.c:405
-msgid "must #include <typeinfo> before using typeid"
-msgstr "måste ha#include <typeinfo> för användande av typeid"
+#: cp/decl.c:3588
+#, fuzzy
+msgid "follows non-prototype definition here"
+msgstr "icke-prototypdefinition here"
-#: cp/search.c:1963
-msgid "adjusting pointers for covariant returns"
-msgstr ""
+#: cp/decl.c:3600
+#, fuzzy
+msgid "previous declaration of `%#D' with %L linkage"
+msgstr "tidigare deklaration av \"%s\""
-#. This shouldn't happen, I don't want errors!
-#: cp/search.c:2471
-msgid "recoverable compiler error, fixups for virtual function"
-msgstr ""
+#: cp/decl.c:3602
+#, fuzzy
+msgid "conflicts with new declaration with %L linkage"
+msgstr "motstridande deklarationer av \"%s\""
-#: cp/semantics.c:1012
-msgid "ISO C++ does not permit named return values"
+#: cp/decl.c:3625 cp/decl.c:3632
+msgid "default argument given for parameter %d of `%#D'"
msgstr ""
-#: cp/semantics.c:1029
-msgid "can't redefine default return value for constructors"
-msgstr ""
+#: cp/decl.c:3627 cp/decl.c:3634
+#, fuzzy
+msgid "after previous specification in `%#D'"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/semantics.c:1098
-msgid " will be re-ordered to precede member initializations"
-msgstr ""
+#: cp/decl.c:3643
+#, fuzzy
+msgid "`%#D' was used before it was declared inline"
+msgstr "\"%s\" användes utan någon prototyp innan sin definition"
-#: cp/semantics.c:1365
-msgid "`this' is unavailable for static member functions"
-msgstr ""
+#: cp/decl.c:3645
+#, fuzzy
+msgid "previous non-inline declaration here"
+msgstr "tidigare implicit deklaration av \"%s\""
-#: cp/semantics.c:1371
-msgid "invalid use of `this' in non-member function"
-msgstr ""
+#: cp/decl.c:3699
+#, fuzzy
+msgid "redundant redeclaration of `%D' in same scope"
+msgstr "redundant omdeklaration av \"%s\" i samma scope"
-#: cp/semantics.c:1373
-msgid "invalid use of `this' at top level"
-msgstr ""
+#: cp/decl.c:3780
+#, fuzzy, c-format
+msgid "declaration of `%F' throws different exceptions"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/semantics.c:1665
-msgid "template type parameters must use the keyword `class' or `typename'"
+#: cp/decl.c:3782
+#, fuzzy, c-format
+msgid "than previous declaration `%F'"
+msgstr "ingen tidigare deklaration av \"%s\""
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.c:3922
+msgid "explicit specialization of %D after first use"
+msgstr ""
+
+#: cp/decl.c:4187
+#, fuzzy
+msgid "`%#D' used prior to declaration"
+msgstr "\"%s\" är använd innan sin deklaration"
+
+#: cp/decl.c:4218
+#, fuzzy
+msgid "redeclaration of `wchar_t' as `%T'"
+msgstr "omdeklaration av \"%s\""
+
+#. A redeclaration of main, but not a duplicate of the
+#. previous one.
+#.
+#. [basic.start.main]
+#.
+#. This function shall not be overloaded.
+#: cp/decl.c:4246
+#, fuzzy
+msgid "invalid redeclaration of `%D'"
+msgstr "omdeklaration av \"%s\""
+
+#: cp/decl.c:4247
+msgid "as `%D'"
msgstr ""
-#: cp/spew.c:249
+#: cp/decl.c:4337
+#, fuzzy
+msgid "previous external decl of `%#D'"
+msgstr "föregående externa dekl. av \"%s\""
+
+#: cp/decl.c:4378
+#, fuzzy
+msgid "`%D' was previously implicitly declared to return `int'"
+msgstr "\"%s\" deklarerades tidigare implicit att returnera \"int\""
+
+#: cp/decl.c:4438
+#, fuzzy
+msgid "extern declaration of `%#D' doesn't match"
+msgstr "extern deklaration av \"%s\" matchar inte den globala"
+
+#: cp/decl.c:4439
+#, fuzzy
+msgid "global declaration `%#D'"
+msgstr "dubbel deklaration av etikett \"%s\""
+
+#: cp/decl.c:4472
+#, fuzzy
+msgid "declaration of `%#D' shadows a parameter"
+msgstr "deklaration av \"%s\" döljer en parameter"
+
+#: cp/decl.c:4492
#, c-format
-msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+msgid "declaration of `%s' shadows a member of `this'"
msgstr ""
-#: cp/spew.c:357
-msgid "parse error"
-msgstr "parsningsfel"
+#: cp/decl.c:4889
+#, fuzzy
+msgid "`%#D' hides constructor for `%#T'"
+msgstr "destruerare behövs för \"%#D\""
-#: cp/spew.c:1023 cp/spew.c:1295
-msgid "parse error at end of saved function text"
-msgstr ""
+#: cp/decl.c:4904
+#, fuzzy
+msgid "`%#D' conflicts with previous using declaration `%#D'"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cp/spew.c:1065
-msgid "parse error in method specification"
-msgstr ""
+#: cp/decl.c:4916
+#, fuzzy
+msgid "previous non-function declaration `%#D'"
+msgstr "tidigare deklaration av \"%s\""
-#: cp/spew.c:1107
-msgid "function body for constructor missing"
-msgstr "funktionskroppen för konstrueraren saknas"
+#: cp/decl.c:4917
+#, fuzzy
+msgid "conflicts with function declaration `%#D'"
+msgstr "motstridande deklarationer av \"%s\""
-#: cp/spew.c:1500
-#, c-format
-msgid "%s before `%s'"
-msgstr "%s före \"%s\""
+#: cp/decl.c:5007
+#, fuzzy
+msgid "implicit declaration of function `%#D'"
+msgstr "implicit deklaration av funktion \"%s\""
-#: cp/spew.c:1502
+#: cp/decl.c:5167
#, c-format
-msgid "%s before `%c'"
-msgstr "%s före \"%c\""
+msgid "label `%s' referenced outside of any function"
+msgstr ""
-#: cp/spew.c:1504
-#, c-format
-msgid "%s before `\\%o'"
-msgstr "%s före \"\\%o\""
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
+#, fuzzy
+msgid "jump to label `%D'"
+msgstr "hopp till case-etikett"
-#: cp/spew.c:1507
-#, c-format
-msgid "%s before `%s' token"
-msgstr "%s före symbolen \"%s\""
+#: cp/decl.c:5272 cp/decl.c:5296
+msgid "jump to case label"
+msgstr "hopp till case-etikett"
-#: cp/tree.c:216
-#, c-format
-msgid "non-lvalue in %s"
-msgstr "icke-lvalue i %s"
+#: cp/decl.c:5280
+#, fuzzy
+msgid " crosses initialization of `%#D'"
+msgstr "omdefiniering av \"%s\""
-#: cp/tree.c:2231
-msgid ""
-"`java_interface' attribute can only be applied to Java class definitions"
+#: cp/decl.c:5283 cp/decl.c:5403
+msgid " enters scope of non-POD `%#D'"
msgstr ""
-#: cp/tree.c:2245
-msgid "`com_interface' attribute can only be applied to class definitions"
-msgstr ""
+#: cp/decl.c:5303 cp/decl.c:5407
+msgid " enters try block"
+msgstr " går in i try-block"
-#: cp/tree.c:2250
-msgid ""
-"`com_interface' is obsolete; g++ vtables are now COM-compatible by default"
-msgstr ""
+#. Can't skip init of __exception_info.
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
+msgid " enters catch block"
+msgstr " går in i catch-block"
-#: cp/tree.c:2264
-msgid "requested init_priority is not an integer constant"
-msgstr ""
+#: cp/decl.c:5388
+msgid " from here"
+msgstr " från här"
-#: cp/tree.c:2284
-msgid ""
-"can only use init_priority attribute on file-scope definitions of objects of "
-"class type"
-msgstr ""
+#: cp/decl.c:5401
+#, fuzzy
+msgid " skips initialization of `%#D'"
+msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cp/tree.c:2290
-msgid "requested init_priority is out of range"
+#: cp/decl.c:5437
+msgid "label named wchar_t"
msgstr ""
-#: cp/tree.c:2299
-msgid "requested init_priority is reserved for internal use"
-msgstr ""
+#: cp/decl.c:5440
+#, fuzzy
+msgid "duplicate label `%D'"
+msgstr "upprepning av medlem \"%s\""
-#: cp/tree.c:2309
-msgid "init_priority attribute is not supported on this platform"
-msgstr ""
+#: cp/decl.c:5525
+#, fuzzy, c-format
+msgid "case label `%E' not within a switch statement"
+msgstr "case-etikett är inte i en switch-sats"
-#: cp/typeck.c:484
-#, c-format
-msgid ""
-"ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+#. Definition isn't the kind we were looking for.
+#: cp/decl.c:5704 cp/decl.c:5723
+msgid "`%#D' redeclared as %C"
msgstr ""
-#: cp/typeck.c:1559
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ förbjuder användning av \"sizeof\" på funktioner"
+#. This happens for A::B where B is a template, and there are no
+#. template arguments.
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
+#, fuzzy
+msgid "invalid use of `%D'"
+msgstr "ogiltigt användande av \"restrict\""
-#: cp/typeck.c:1565
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ förbjuder användning av \"sizeof\" på medlemsfunktion"
+#: cp/decl.c:5852
+#, fuzzy
+msgid "`%D::%D' is not a template"
+msgstr "användning ab `%s' i mall"
-#: cp/typeck.c:1571
-msgid ""
-"ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#: cp/decl.c:5869
+msgid "`%D' undeclared in namespace `%D'"
msgstr ""
-"ISO C++ förbjuder användning av \"sizeof\" på typ void som är en inkomplett "
-"typ"
-#: cp/typeck.c:1620
-msgid "sizeof applied to a bit-field"
-msgstr "sizeof applicerat på ett bit-fält"
+#: cp/decl.c:6002
+msgid "`%D' used without template parameters"
+msgstr ""
-#: cp/typeck.c:1623
-msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
+msgid "no class template named `%#T' in `%#T'"
msgstr ""
-"ISO C++ förbjuder användning av \"sizeof\" på ett uttryck av funktionstyp"
-#: cp/typeck.c:2236
-msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
+msgid "no type named `%#T' in `%#T'"
msgstr ""
-#: cp/typeck.c:2399
-#, c-format
-msgid "invalid use of `%s' on pointer to member"
+#: cp/decl.c:6329
+msgid "lookup of `%D' finds `%#D'"
msgstr ""
-#: cp/typeck.c:2405
-msgid "invalid type argument"
-msgstr "ogiltigt typargument"
+#: cp/decl.c:6331
+msgid " instead of `%D' from dependent base class"
+msgstr ""
-#: cp/typeck.c:2508
-msgid "ISO C++ forbids subscripting non-lvalue array"
+#: cp/decl.c:6333
+msgid " (use `typename %T::%D' if that's what you meant)"
msgstr ""
-#: cp/typeck.c:2519
-msgid "subscripting array declared `register'"
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
msgstr ""
-#: cp/typeck.c:2694 cp/typeck.c:2834
-msgid "pointer to member function called, but not in class scope"
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
msgstr ""
-#: cp/typeck.c:2832
-msgid ""
-"invalid call to member function needing `this' in static member function "
-"scope"
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
msgstr ""
-#: cp/typeck.c:3022
-msgid "ISO C++ forbids calling `::main' from within program"
-msgstr "ISO C++ förbjuder anrop av \"::main\" inifrån programmet"
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr ""
-#: cp/typeck.c:3226
-msgid "parameter type of called function is incomplete"
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
msgstr ""
-#: cp/typeck.c:3623
-#, c-format
-msgid "%s rotate count is negative"
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
msgstr ""
-#: cp/typeck.c:3626
-#, c-format
-msgid "%s rotate count >= width of type"
+#: cp/decl.c:6609
+msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr ""
-#: cp/typeck.c:3657 cp/typeck.c:3662 cp/typeck.c:3753 cp/typeck.c:3758
-msgid "ISO C++ forbids comparison between pointer and integer"
-msgstr "ISO C++ förbjuder jämförelse mellan pekare och heltal"
+#: cp/decl.c:7432
+#, fuzzy
+msgid "an anonymous union cannot have function members"
+msgstr "anonym union deklarerad i parameterlista"
-#: cp/typeck.c:3974
-msgid "comparison between signed and unsigned integer expressions"
+#: cp/decl.c:7449
+msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr ""
-#: cp/typeck.c:4113
-msgid "ISO C++ forbids using pointer of type `void *' in pointer arithmetic"
+#: cp/decl.c:7452
+msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr ""
-"ISO C++ förbjuder användning av pekare av typ \"void *\" i pekararitmetik"
-
-#: cp/typeck.c:4119
-msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
-msgstr "ISO C++ förbjuder användning av funktionspekarepekare i pekararitmetik"
-#: cp/typeck.c:4125
-msgid ""
-"ISO C++ forbids using a pointer to member function in pointer arithmetic"
+#: cp/decl.c:7455
+msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
msgstr ""
-"ISO C++ förbjuder användning av pekare till medlemsfunktion i pekararitmetik"
-#: cp/typeck.c:4131
-msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
-msgstr "ISO C++ förbjuder användning av pekare till medlem i pekararitmetik"
+#: cp/decl.c:7493
+#, fuzzy
+msgid "redeclaration of C++ built-in type `%T'"
+msgstr "omdeklaration av \"%s\""
-#: cp/typeck.c:4202
-msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+#: cp/decl.c:7529
+msgid "multiple types in one declaration"
msgstr ""
-#: cp/typeck.c:4204
-msgid "ISO C++ forbids using pointer to a function in subtraction"
-msgstr ""
+#: cp/decl.c:7556
+#, fuzzy
+msgid "missing type-name in typedef-declaration"
+msgstr "oanvändbart nyckelord eller typnamn i tom deklaration"
-#: cp/typeck.c:4206
-msgid "ISO C++ forbids using pointer to a method in subtraction"
+#: cp/decl.c:7563
+msgid "ISO C++ prohibits anonymous structs"
msgstr ""
-#: cp/typeck.c:4208
-msgid "ISO C++ forbids using pointer to a member in subtraction"
+#: cp/decl.c:7570
+#, fuzzy
+msgid "`%D' can only be specified for functions"
+msgstr "argumentformat angivet för icke-funktion \"%s\""
+
+#: cp/decl.c:7572
+msgid "`%D' can only be specified inside a class"
msgstr ""
-#: cp/typeck.c:4220
-msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+#: cp/decl.c:7574
+msgid "`%D' can only be specified for constructors"
msgstr ""
-#: cp/typeck.c:4325
-msgid "taking address of temporary"
-msgstr "tar adress till något temporärt"
+#: cp/decl.c:7577
+#, fuzzy
+msgid "`%D' can only be specified for objects and functions"
+msgstr "argumentformat angivet för icke-funktion \"%s\""
-#: cp/typeck.c:4525
-#, c-format
-msgid "ISO C++ forbids %sing an enum"
-msgstr ""
+#: cp/decl.c:7719 cp/decl2.c:936
+#, fuzzy
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "typedef \"%s\" är initierad"
-#: cp/typeck.c:4569
-msgid "cast to non-reference type used as lvalue"
-msgstr ""
+#: cp/decl.c:7724
+#, fuzzy
+msgid "function `%#D' is initialized like a variable"
+msgstr "funktion \"%s\" är initierad som en variabel"
-#. ARM $3.4
-#: cp/typeck.c:4636
-msgid "ISO C++ forbids taking address of function `::main'"
-msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
+#: cp/decl.c:7736
+#, fuzzy
+msgid "declaration of `%#D' has `extern' and is initialized"
+msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: cp/typeck.c:4729
-msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+#: cp/decl.c:7770
+msgid "`%#D' is not a static member of `%#T'"
msgstr ""
-#: cp/typeck.c:4745
-msgid "unary `&'"
-msgstr "unärt \"&\""
+#: cp/decl.c:7775
+#, fuzzy
+msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+msgstr "ISO C++ tillåter inte \"%s\" i #if"
-#: cp/typeck.c:4937
-msgid "cannot take the address of `this', which is an rvalue expression"
-msgstr "Kan inte ta adressen till \"this\", som är ett rvalue-uttryck"
+#: cp/decl.c:7786
+#, fuzzy
+msgid "duplicate initialization of %D"
+msgstr "initiering"
-#: cp/typeck.c:5247
-msgid ""
-"ISO C++ forbids casting between pointer-to-function and pointer-to-object"
-msgstr ""
+#: cp/decl.c:7815
+#, fuzzy
+msgid "declaration of `%#D' outside of class is not definition"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cp/typeck.c:5697
-msgid "ISO C++ forbids cast to non-reference type used as lvalue"
-msgstr ""
+#: cp/decl.c:7865
+#, fuzzy
+msgid "variable `%#D' has initializer but incomplete type"
+msgstr "variabel \"%s\" har initierare men är av inkomplett typ"
-#: cp/typeck.c:5803
-msgid "ISO C++ forbids assignment of arrays"
-msgstr "ISO C++ förbjuder tilldelning av fält"
+#: cp/decl.c:7873 cp/decl.c:8432
+#, fuzzy
+msgid "elements of array `%#D' have incomplete type"
+msgstr "elementen i fält \"%s\" har en ofullständig typ"
-#: cp/typeck.c:5818
-msgid "return value from function receives multiple initializations"
-msgstr ""
+#: cp/decl.c:7889
+#, fuzzy
+msgid "aggregate `%#D' has incomplete type and cannot be defined"
+msgstr "parameter \"%s\" har en inkomplett typ"
-#: cp/typeck.c:5961
-msgid " in pointer to member function conversion"
+#: cp/decl.c:7931
+#, fuzzy
+msgid "`%D' declared as reference but not initialized"
+msgstr "\"%s\" omdeklarerad som en annan sorts symbol"
+
+#: cp/decl.c:7940
+#, fuzzy
+msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
+
+#: cp/decl.c:7970
+#, fuzzy
+msgid "cannot initialize `%T' from `%T'"
+msgstr "kan inte initiera friend-funktion \"%s\""
+
+#: cp/decl.c:8004
+#, fuzzy
+msgid "initializer fails to determine size of `%D'"
+msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
+
+#: cp/decl.c:8009
+#, fuzzy
+msgid "array size missing in `%D'"
+msgstr "fältstorlek saknas i \"%s\""
+
+#: cp/decl.c:8021
+#, fuzzy
+msgid "zero-size array `%D'"
+msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
+
+#. An automatic variable with an incomplete type: that is an error.
+#. Don't talk about array types here, since we took care of that
+#. message in grokdeclarator.
+#: cp/decl.c:8059
+#, fuzzy
+msgid "storage size of `%D' isn't known"
+msgstr "lagringsstorlek på \"%s\" är okänd"
+
+#: cp/decl.c:8081
+#, fuzzy
+msgid "storage size of `%D' isn't constant"
+msgstr "lagringsstorlek på \"%s\" är inte konstant"
+
+#: cp/decl.c:8137
+msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr ""
-#: cp/typeck.c:5969
-msgid " in pointer to member conversion"
+#: cp/decl.c:8138
+msgid " you can work around this by removing the initializer"
msgstr ""
-#: cp/typeck.c:6556
-msgid "returning reference to temporary"
-msgstr "returnerar referens till en temporär"
+#: cp/decl.c:8164
+#, fuzzy
+msgid "uninitialized const `%D'"
+msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/typeck.c:6563
-msgid "reference to non-lvalue returned"
+#: cp/decl.c:8249
+#, fuzzy
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "kan inte initiera friend-funktion \"%s\""
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
msgstr ""
-#: cp/typeck.c:6609
-msgid "returning a value from a destructor"
-msgstr "returnerar ett värde från en destruktor"
+#: cp/decl.c:8328
+#, fuzzy
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C89 förbjuder konstruktor-uttryck"
-#. If a return statement appears in a handler of the
-#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6617
-msgid "cannot return from a handler of a function-try-block of a constructor"
-msgstr ""
+#: cp/decl.c:8332
+#, fuzzy
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "%s har ingen medlem med namn \"%s\""
-#. You can't return a value from a constructor.
-#: cp/typeck.c:6620
-msgid "returning a value from a constructor"
-msgstr ""
+#: cp/decl.c:8389
+#, fuzzy
+msgid "too many initializers for `%T'"
+msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/typeck.c:6637
-msgid ""
-"return-statement with no value, in function declared with a non-void return "
-"type"
+#: cp/decl.c:8426
+#, fuzzy
+msgid "variable-sized object `%D' may not be initialized"
+msgstr "objekt med variabel storlek kan inte initieras"
+
+#: cp/decl.c:8437
+#, fuzzy
+msgid "`%D' has incomplete type"
+msgstr "\"%s\" har en inkomplett typ"
+
+#: cp/decl.c:8486
+msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr ""
-#: cp/typeck.c:6653
-msgid ""
-"return-statement with a value, in function declared with a void return type"
+#: cp/decl.c:8527
+msgid "structure `%D' with uninitialized const members"
msgstr ""
-#: cp/typeck2.c:172
-msgid " because the following virtual functions are abstract:"
+#: cp/decl.c:8529
+msgid "structure `%D' with uninitialized reference members"
msgstr ""
-#: cp/typeck2.c:269
-#, c-format
-msgid "Internal error #%d."
-msgstr "Internt fel #%d."
+#: cp/decl.c:8770
+msgid "assignment (not initialization) in declaration"
+msgstr "tilldelning (inte initieraing) i deklaration"
+
+#: cp/decl.c:8785
+#, fuzzy
+msgid "cannot initialize `%D' to namespace `%D'"
+msgstr "kan inte initiera friend-funktion \"%s\""
-#: cp/typeck2.c:340
-msgid "due to the presence of a constructor"
+#: cp/decl.c:8836
+#, fuzzy
+msgid "shadowing previous type declaration of `%#D'"
+msgstr "tidigare deklaration av \"%s\""
+
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
msgstr ""
-#: cp/typeck2.c:364
-msgid "comma expression used to initialize return value"
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
msgstr ""
-#: cp/typeck2.c:373
-msgid "cannot initialize arrays using this syntax"
+#: cp/decl.c:9298 cp/init.c:562
+#, fuzzy
+msgid "multiple initializations given for `%D'"
+msgstr "multiple deklaration av metod \"%s\""
+
+#: cp/decl.c:9390
+msgid "invalid catch parameter"
msgstr ""
-#: cp/typeck2.c:429
-msgid "ANSI C++ forbids non-constant aggregate initializer expressions"
+#: cp/decl.c:9508
+#, fuzzy
+msgid "destructor for alien class `%T' cannot be a member"
+msgstr "destruerare kan inte vara en statisk medlemsfunktion"
+
+#: cp/decl.c:9511
+#, fuzzy
+msgid "constructor for alien class `%T' cannot be a member"
+msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
+
+#: cp/decl.c:9530
+msgid "`%D' declared as a `virtual' %s"
msgstr ""
-#: cp/typeck2.c:509
-msgid "initializing array with parameter list"
+#: cp/decl.c:9532
+#, fuzzy
+msgid "`%D' declared as an `inline' %s"
+msgstr "variabel \"%s\" deklarerad \"inline\""
+
+#: cp/decl.c:9534
+msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr ""
-#: cp/typeck2.c:565
-msgid "initializer for scalar variable requires one element"
+#: cp/decl.c:9537
+#, fuzzy
+msgid "`%D' declared as a friend"
+msgstr "fält \"%s\" deklarerad som en funktion"
+
+#: cp/decl.c:9543
+#, fuzzy
+msgid "`%D' declared with an exception specification"
+msgstr "\"%s\" är deklarerad som en funktion som returnerar en funktion"
+
+#: cp/decl.c:9618
+msgid "cannot declare `::main' to be a template"
+msgstr "kan inte deklarera \"::main\" som en mall"
+
+#: cp/decl.c:9620
+msgid "cannot declare `::main' to be inline"
msgstr ""
-#: cp/typeck2.c:663
-msgid "aggregate has a partly bracketed initializer"
+#: cp/decl.c:9622
+msgid "cannot declare `::main' to be static"
+msgstr "kan inte deklarera \"::main\" som static"
+
+#: cp/decl.c:9625
+msgid "`main' must return `int'"
+msgstr "\"main\" måste returnera \"int\""
+
+#: cp/decl.c:9653
+msgid "non-local function `%#D' uses anonymous type"
msgstr ""
-#: cp/typeck2.c:693 cp/typeck2.c:794
-msgid "non-trivial labeled initializers"
+#: cp/decl.c:9656
+msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr ""
-#: cp/typeck2.c:710
-msgid "non-empty initializer for array of empty elements"
+#: cp/decl.c:9662
+msgid "non-local function `%#D' uses local type `%T'"
msgstr ""
-#: cp/typeck2.c:760
-msgid "initializer list for object of class with virtual base classes"
+#: cp/decl.c:9691
+msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr ""
-#: cp/typeck2.c:766
-msgid "initializer list for object of class with base classes"
+#: cp/decl.c:9715
+#, fuzzy
+msgid "defining explicit specialization `%D' in friend declaration"
+msgstr "tilldelning (inte initieraing) i deklaration"
+
+#. Something like `template <class T> friend void f<T>()'.
+#: cp/decl.c:9725
+msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr ""
-#: cp/typeck2.c:772
-msgid "initializer list for object using virtual functions"
+#: cp/decl.c:9753
+msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/typeck2.c:889
-msgid "index value instead of field name in union initializer"
+#: cp/decl.c:9760
+msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr ""
-#: cp/typeck2.c:945
-msgid "excess elements in aggregate initializer"
+#: cp/decl.c:9822
+#, fuzzy
+msgid "definition of implicitly-declared `%D'"
+msgstr "funktionsdefinition deklarerad som \"auto\""
+
+#: cp/decl.c:9834 cp/decl2.c:785
+msgid "no `%#D' member function declared in class `%T'"
msgstr ""
-#: cp/typeck2.c:1043
-msgid "circular pointer delegation detected"
+#: cp/decl.c:9967
+msgid "non-local variable `%#D' uses local type `%T'"
msgstr ""
-#: cp/typeck2.c:1070
-msgid "result of `operator->()' yields non-pointer result"
+#: cp/decl.c:10064
+msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr ""
-#: cp/typeck2.c:1072
-msgid "base operand of `->' is not a pointer"
-msgstr "basoperanden till \"->\" är inte en pekare"
+#: cp/decl.c:10073
+#, fuzzy
+msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/typeck2.c:1262
-#, c-format
-msgid "ISO C++ forbids defining types within %s"
-msgstr ""
+#: cp/decl.c:10076
+#, fuzzy
+msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
-#: cp/xref.c:826
-#, c-format
-msgid "Can't create cross-reference file `%s'"
-msgstr ""
+#: cp/decl.c:10126
+#, fuzzy
+msgid "size of array `%D' has non-integer type"
+msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#. The current line in each outer source file is now the
-#. same as the line of the #include.
-#: cpperror.c:58
-#, c-format
-msgid "In file included from %s:%u"
-msgstr "I fil inkluderad från %s:%u"
+#: cp/decl.c:10128
+#, fuzzy
+msgid "size of array has non-integer type"
+msgstr "storlek på fält \"%s\" är inte av heltalstyp"
-#. Translators note: this message is used in conjunction
-#. with "In file included from %s:%ld" and some other
-#. tricks. We want something like this:
-#.
-#. | In file included from sys/select.h:123,
-#. | from sys/types.h:234,
-#. | from userfile.c:31:
-#. | bits/select.h:45: <error message here>
-#.
-#. with all the "from"s lined up.
-#. The trailing comma is at the beginning of this message,
-#. and the trailing colon is not translated.
-#: cpperror.c:74
-#, c-format
-msgid ""
-",\n"
-" from %s:%u"
-msgstr ""
-",\n"
-" från %s:%u"
+#: cp/decl.c:10148
+#, fuzzy
+msgid "size of array `%D' is negative"
+msgstr "storlek på fält \"%s\" är negativt"
-#: cpperror.c:191
-msgid "internal error: "
-msgstr "internt fel: "
+#: cp/decl.c:10150
+#, fuzzy
+msgid "size of array is negative"
+msgstr "storlek på fält \"%s\" är negativt"
-#: cpperror.c:198
-msgid "warning: "
-msgstr "varning: "
+#: cp/decl.c:10159
+#, fuzzy
+msgid "ISO C++ forbids zero-size array `%D'"
+msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: cpperror.c:312 cpperror.c:483 cppfiles.c:661 gcc.c:6083 tradcpp.c:4722
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#: cp/decl.c:10161
+#, fuzzy
+msgid "ISO C++ forbids zero-size array"
+msgstr "ISO C förbjuder fält \"%s\" med storlek noll"
-#: cppexp.c:180
-msgid "traditional C rejects the `U' suffix"
-msgstr ""
+#: cp/decl.c:10168
+#, fuzzy
+msgid "size of array `%D' is not an integral constant-expression"
+msgstr "storlek på fält \"%s\" är inte av heltalstyp"
+
+#: cp/decl.c:10171
+#, fuzzy
+msgid "size of array is not an integral constant-expression"
+msgstr "storlek på fält \"%s\" är inte av heltalstyp"
+
+#: cp/decl.c:10189
+#, fuzzy
+msgid "ISO C++ forbids variable-size array `%D'"
+msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: cppexp.c:183
-msgid "too many 'l' suffixes in integer constant"
-msgstr "för många \"l\"-suffix i heltalskonstant"
+#: cp/decl.c:10192
+#, fuzzy
+msgid "ISO C++ forbids variable-size array"
+msgstr "ISO C89 förbjuder fält \"%s\" med variabel storlek"
-#: cppexp.c:187
-msgid "integer constant contains digits beyond the radix"
+#: cp/decl.c:10203
+msgid "overflow in array dimension"
msgstr ""
-#: cppexp.c:190
-msgid "integer constant out of range"
-msgstr "heltalskonstant utanför sitt intervall"
+#: cp/decl.c:10262
+#, fuzzy
+msgid "declaration of `%D' as %s"
+msgstr "omdeklaration av \"%s\""
-#: cppexp.c:196
-msgid "integer constant is so large that it is unsigned"
+#: cp/decl.c:10264
+#, fuzzy, c-format
+msgid "creating %s"
+msgstr "Skapar %s.\n"
+
+#: cp/decl.c:10276
+msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cppexp.c:205
-#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
+#: cp/decl.c:10279
+msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr ""
-#: cppexp.c:239
-msgid "missing ')' after \"defined\""
-msgstr "saknar ')' efter \"defined\""
+#: cp/decl.c:10308
+#, fuzzy
+msgid "return type specification for constructor invalid"
+msgstr "funktionskroppen för konstrueraren saknas"
-#: cppexp.c:246
-msgid "operator \"defined\" requires an identifier"
+#: cp/decl.c:10315
+msgid "return type specification for destructor invalid"
msgstr ""
-#: cppexp.c:254
-#, c-format
-msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+#: cp/decl.c:10321
+#, fuzzy
+msgid "operator `%T' declared to return `%T'"
+msgstr "parameter \"%s\" deklarerad som void"
+
+#: cp/decl.c:10323
+#, fuzzy
+msgid "return type specified for `operator %T'"
+msgstr "lagringsklass angiven för parameter \"%s\""
+
+#: cp/decl.c:10491
+msgid "destructors must be member functions"
+msgstr "destruerare måste vara medlemsfunktioner"
+
+#: cp/decl.c:10510
+msgid "destructor `%T' must match class name `%T'"
msgstr ""
-#: cppexp.c:331
-msgid "\"defined\" operator appears during macro expansion"
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
msgstr ""
-#: cppexp.c:347
-#, c-format
-msgid "ISO C++ does not permit \"%s\" in #if"
-msgstr "ISO C++ tillåter inte \"%s\" i #if"
+#: cp/decl.c:10566
+#, fuzzy
+msgid "invalid declarator"
+msgstr "ogiltig #indent"
-#: cppexp.c:362
-#, c-format
-msgid "\"%s\" is not defined"
-msgstr "\"%s\" är inte definierad"
+#: cp/decl.c:10617
+msgid "declarator-id missing; using reserved word `%D'"
+msgstr ""
-#: cppexp.c:407
-msgid "integer overflow in preprocessor expression"
+#: cp/decl.c:10674
+msgid "type `%T' is not derived from type `%T'"
msgstr ""
-#: cppexp.c:677
-#, c-format
-msgid "impossible operator '%s'"
+#. Parse error puts this typespec where
+#. a declarator should go.
+#: cp/decl.c:10726
+msgid "`%T' specified as declarator-id"
msgstr ""
-#: cppexp.c:787
-msgid "comma operator in operand of #if"
+#: cp/decl.c:10728
+msgid " perhaps you want `%T' for a constructor"
msgstr ""
-#: cppfiles.c:383
-#, c-format
-msgid "%s is too large"
-msgstr "%s är för stor"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, fuzzy, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "ogiltig användning av void-uttryck"
-#: cppfiles.c:412
-#, c-format
-msgid "%s is shorter than expected"
-msgstr "%s är kortare än förväntat"
+#: cp/decl.c:10770
+#, fuzzy
+msgid "declaration of `%D' as non-function"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: cppfiles.c:421
-#, c-format
-msgid "%s is a block device"
-msgstr "%s är en blockenhet"
+#: cp/decl.c:10847
+msgid "`bool' is now a keyword"
+msgstr "\"bool\" är numera ett nyckelord"
-#: cppfiles.c:541
-#, c-format
-msgid "No include path in which to find %s"
+#: cp/decl.c:10849
+msgid "extraneous `%T' ignored"
msgstr ""
-#: cppfiles.c:609
-msgid "Multiple include guards may be useful for:\n"
-msgstr ""
+#: cp/decl.c:10865 cp/decl.c:10910
+#, fuzzy
+msgid "multiple declarations `%T' and `%T'"
+msgstr "multiple deklaration av metod \"%s\""
-#: cppfiles.c:999
-msgid "absolute file name in remap_filename"
-msgstr "absolut filnamn i remap_filename"
+#: cp/decl.c:10878
+msgid "ISO C++ does not support `long long'"
+msgstr "ISO C++ stödjer inte \"long long\""
-#: cppinit.c:223
+#: cp/decl.c:10983 cp/decl.c:10986
+#, fuzzy, c-format
+msgid "ISO C++ forbids declaration of `%s' with no type"
+msgstr "ISO C förbjuder medlemsdeklarationer utan medlemmar"
+
+#. The implicit typename extension is deprecated and will be
+#. removed. Warn about its use now.
+#: cp/decl.c:10996
+msgid "`%T' is implicitly a typename"
+msgstr ""
+
+#: cp/decl.c:11032
#, c-format
-msgid "ignoring nonexistent directory \"%s\"\n"
-msgstr "ignorerar ej existerande katalog \"%s\"\n"
+msgid "short, signed or unsigned invalid for `%s'"
+msgstr "short, signed eller unsigned är ogiltigt för \"%s\""
-#: cppinit.c:229
+#: cp/decl.c:11037
#, c-format
-msgid "%s: Not a directory"
-msgstr "%s: Inte en katalog"
+msgid "long and short specified together for `%s'"
+msgstr "både long och short angivet för \"%s\""
-#: cppinit.c:275
+#: cp/decl.c:11048
#, c-format
-msgid "ignoring duplicate directory \"%s\"\n"
-msgstr ""
+msgid "signed and unsigned given together for `%s'"
+msgstr "både signed och unsigned angivet för \"%s\""
-#: cppinit.c:894
-msgid "-include and -imacros cannot be used with -fpreprocessed"
-msgstr "-include och -imacros kan inte användas med -fpreprocessed"
+#: cp/decl.c:11157
+msgid "qualifiers are not allowed on declaration of `operator %T'"
+msgstr ""
-#: cppinit.c:930
-msgid "#include \"...\" search starts here:\n"
-msgstr "#include \"...\" sökning startar här:\n"
+#: cp/decl.c:11179
+msgid "member `%D' cannot be declared both virtual and static"
+msgstr ""
-#: cppinit.c:934
-msgid "#include <...> search starts here:\n"
-msgstr "#include <...> sökning startar här:\n"
+#: cp/decl.c:11188
+#, fuzzy
+msgid "`%T::%D' is not a valid declarator"
+msgstr "\"%s\" är inte i början av deklarationen"
-#: cppinit.c:937
-msgid "End of search list.\n"
-msgstr "Slut på söklistan.\n"
+#: cp/decl.c:11200
+msgid "storage class specifiers invalid in parameter declarations"
+msgstr ""
-#: cppinit.c:1009 tradcpp.c:963 tradcpp.c:973 tradcpp.c:1064
-msgid "I/O error on output"
-msgstr "I/O-fel vid utmatning"
+#: cp/decl.c:11204
+msgid "typedef declaration invalid in parameter declaration"
+msgstr ""
-#: cppinit.c:1023
-msgid "buffers still stacked in cpp_finish"
+#: cp/decl.c:11217
+msgid "virtual outside class declaration"
msgstr ""
-#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
-#. I.e. a const string initializer with parens around it. That is
-#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1055
+#: cp/decl.c:11278
#, c-format
-msgid "Argument missing after %s"
-msgstr "Argument saknas efter %s"
+msgid "storage class specified for %s `%s'"
+msgstr ""
-#: cppinit.c:1056
-#, c-format
-msgid "Assertion missing after %s"
+#: cp/decl.c:11325
+msgid "storage class specifiers invalid in friend function declarations"
msgstr ""
-#: cppinit.c:1057
-#, c-format
-msgid "Directory name missing after %s"
-msgstr "Katalognamn saknas efter %s"
+#: cp/decl.c:11495
+msgid "destructor cannot be static member function"
+msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: cppinit.c:1058
-#, c-format
-msgid "File name missing after %s"
-msgstr "Filnamn saknas efter %s"
+#: cp/decl.c:11498
+#, fuzzy, c-format
+msgid "destructors may not be `%s'"
+msgstr "destruerare behövs för \"%#D\""
-#: cppinit.c:1059
-#, c-format
-msgid "Macro name missing after %s"
-msgstr "Makronamn saknas efter %s"
+#: cp/decl.c:11519
+msgid "constructor cannot be static member function"
+msgstr "konstruerare kan inte vara en statisk medlemsfunktion\""
-#: cppinit.c:1060
-#, c-format
-msgid "Path name missing after %s"
-msgstr "Sökväg saknas efter %s"
+#: cp/decl.c:11522
+msgid "constructors cannot be declared virtual"
+msgstr ""
-#: cppinit.c:1061
+#: cp/decl.c:11527
#, c-format
-msgid "Number missing after %s"
-msgstr "Nummer saknas efter %s"
+msgid "constructors may not be `%s'"
+msgstr ""
-#: cppinit.c:1062
-#, c-format
-msgid "Target missing after %s"
+#: cp/decl.c:11537
+msgid "return value type specifier for constructor ignored"
msgstr ""
-#: cppinit.c:1247
+#: cp/decl.c:11556
#, c-format
-msgid "Too many filenames. Type %s --help for usage info"
-msgstr "För många filnamn. Skriv %s --help för användningsinformation"
+msgid "can't initialize friend function `%s'"
+msgstr "kan inte initiera friend-funktion \"%s\""
-#: cppinit.c:1431 tradcpp.c:598
-msgid "Output filename specified twice"
-msgstr "Utdatafilnamn angivet två gånger"
+#. Cannot be both friend and virtual.
+#: cp/decl.c:11560
+msgid "virtual functions cannot be friends"
+msgstr ""
-#: cppinit.c:1551
-msgid "-I- specified twice"
-msgstr "-I- angiven två gånger"
+#: cp/decl.c:11565
+msgid "friend declaration not in class definition"
+msgstr ""
-#: cppinit.c:1699
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP version %s (cpplib)"
+#: cp/decl.c:11567
+#, fuzzy, c-format
+msgid "can't define friend function `%s' in a local class definition"
+msgstr "kan inte initiera friend-funktion \"%s\""
-#: cppinit.c:1740 tradcpp.c:787
-msgid "you must additionally specify either -M or -MM"
-msgstr "du måste dessutom ange antingen -M eller -MM"
+#: cp/decl.c:11591
+#, fuzzy
+msgid "destructors may not have parameters"
+msgstr "destruerare måste vara medlemsfunktioner"
-#: cppinit.c:1800
-#, c-format
-msgid "Usage: %s [switches] input output\n"
-msgstr "Användning: %s [flaggor] infil utfil\n"
+#: cp/decl.c:11622 cp/decl.c:11629
+#, fuzzy
+msgid "cannot declare reference to `%#T'"
+msgstr "kan inte deklarera referenser till referenser"
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1803
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other "
-"files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include "
-"path\n"
-msgstr ""
-"Flaggor:\n"
-" -include <fil> Inkludera innehållet i <fil> före andra filer\n"
-" -imacros <fil> Använd makrodefinitioner i <fil>\n"
-" -iprefix <sökväg> Sätt <sökväg> som prefix för följande två "
-"flaggor\n"
-" -iwithprefix <katalog> Sätt <katalog> i slutet på systemets include-"
-"sökväg\n"
-" -iwithprefixbefore <kat> Sätt <kat> i slutet på huvud-include-sökvägen\n"
-" -isystem <katalog> Sätt <katalog> först på systemets include-"
-"sökväg\n"
+#: cp/decl.c:11623
+#, fuzzy
+msgid "cannot declare pointer to `%#T'"
+msgstr "kan inte deklarera pekare till referenser"
-#: cppinit.c:1812
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info "
-"docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be "
-"used)\n"
-" -nostdinc++ Do not search system include directories for C+"
-"+\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-" -idirafter <katalog> Sätt <katalog> i slutet på systemets include-"
-"sökväg\n"
-" -I <katalog> Sätt <katalog> i slutet på huvud-include-"
-"sökvägen\n"
-" -I- Detaljerad include-sökväg kontroll; se info-"
-"hjälp\n"
-" -nostdinc Använd inte systemets include-sökväg (kataloger\n"
-" satta med -isystem kommer fortfarande användas)\n"
-" -nostdinc++ Använd inte systemets include-sökväg för C++\n"
-" -o <fil> Skriv utdata till <fil>\n"
+#: cp/decl.c:11628
+#, fuzzy
+msgid "cannot declare pointer to `%#T' member"
+msgstr "kan inte deklarera pekare till referenser"
-#: cppinit.c:1821
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
+#: cp/decl.c:11804
+msgid "extra qualification `%T::' on member `%s' ignored"
msgstr ""
-" -pedantic Utfärda alla varningar som strikt ISO C kräver\n"
-" -pedantic-errors Utfärda -pedantic varningar som fel istället\n"
-" -trigraphs Stöd ISO C trigraphs\n"
-" -lang-c Antag att indatakällkoden är C\n"
-" -lang-c89 Antag att indatakällkoden är C89\n"
-#: cppinit.c:1828
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC+"
-"+\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-" -lang-c++ Antag att indatakällkoden är C++\n"
-" -lang-objc Antag att indatakällkoden är ObjectiveC\n"
-" -lang-objc++ Antag att indatakällkoden är ObjectiveC++\n"
-" -lang-asm Antag att indatakällkoden är assembler\n"
-
-#: cppinit.c:1834
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
+#: cp/decl.c:11814
+msgid "cannot declare member function `%T::%s' within `%T'"
msgstr ""
-" -std=<std namn> Ange standard att följa; en av:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Tillåt användning av C++ finesser\n"
-" -w Stoppa varningsmeddelande\n"
-" -Wtrigraphs Varna om trigrapher påträffas\n"
-" -Wno-trigraphs Varna inte om trigrapher\n"
-" -Wcomment{s} Varna om en kommentar börjar i en annan "
-"kommentar\n"
-#: cppinit.c:1844
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional "
-"C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
+#: cp/decl.c:11829
+msgid "cannot declare member `%T::%s' within `%T'"
msgstr ""
-" -Wno-comment{s} Varna inte om kommentarer\n"
-" -Wtraditional Varna om finesser som inte finns i traditionell "
-"C\n"
-" -Wno-traditional Varna inte om traditionell C\n"
-" -Wundef Varna om ett odefinierat makro används av #if\n"
-" -Wno-undef Varna inte om att testa odefinierade makron\n"
-" -Wimport Varna om användande av direktivet #import\n"
-#: cppinit.c:1852
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
msgstr ""
-" -Wno-import Varna inte om användande av #import\n"
-" -Werror Behandla alla varningar som fel\n"
-" -Wno-error Behandla inte varningar som fel\n"
-" -Wsystem-headers Dölj inte varningar från system-include-filer\n"
-" -Wno-system-headers Dölj varningar från system-include-filer\n"
-" -Wall Aktivera alla preprocessor-varningar\n"
-#: cppinit.c:1860
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
msgstr ""
-" -M Generera make beroenden\n"
-" -MM Som -M, men ignorera system-include-filer\n"
-" -MF <fil> Skriv beroenden till den givna filen\n"
-" -MG Behandla saknade filer som genererade filer\n"
-# fixme: vad menas med unquoted
-#: cppinit.c:1866
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
+#. [dcl.fct.spec] The explicit specifier shall only be used in
+#. declarations of constructors within a class definition.
+#: cp/decl.c:11918
+msgid "only declarations of constructors can be `explicit'"
msgstr ""
-" -MP\t\t\t Generera phony-mål för alla include-filer\n"
-" -MQ <mål> Lägg till MAKE-citerat mål\n"
-" -MT <mål> Lägg till ociterat mål\n"
-#: cppinit.c:1871
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question> (<answer>) Assert the <answer> to <question>\n"
-" -A-<question> (<answer>) Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
+#: cp/decl.c:11926
+#, c-format
+msgid "non-member `%s' cannot be declared `mutable'"
msgstr ""
-" -D<makro> Definiera <makro> med strängen \"1\" som sitt "
-"värde\n"
-" -D<makro>=<värde> Definiera <makro> with <värde> som sitt värde\n"
-" -A<fråga> (<svar>) Ange svaret <svar> på frågan <fråga>\n"
-" -A-<fråga> (<svar>) Slå av svaret <svar> på frågan <fråga>\n"
-" -U<makro> Gör <makro> till icke definierat\n"
-" -v Visa versionsnummer\n"
-#: cppinit.c:1879
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at "
-"end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
+#: cp/decl.c:11931
+#, c-format
+msgid "non-object member `%s' cannot be declared `mutable'"
msgstr ""
-" -H Skriv namnet på include-filer när de används\n"
-" -C Släng inte bort kommentarer\n"
-" -dM Visa en lista med aktiva makron i slutet\n"
-" -dD Bevara mokrodefinitioner i utdata\n"
-" -dN Som -dD men bara namnet bevaras\n"
-" -dI Ta med #include-direktives i utdata\n"
-#: cppinit.c:1887
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files.\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
+#: cp/decl.c:11937
+#, c-format
+msgid "function `%s' cannot be declared `mutable'"
+msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cpplex.c:173
+#: cp/decl.c:11942
#, c-format
-msgid "trigraph ??%c converted to %c"
+msgid "static `%s' cannot be declared `mutable'"
msgstr ""
-#: cpplex.c:181
+#: cp/decl.c:11947
#, c-format
-msgid "trigraph ??%c ignored"
-msgstr ""
+msgid "const `%s' cannot be declared `mutable'"
+msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: cpplex.c:265
-msgid "backslash and newline separated by space"
-msgstr ""
+#: cp/decl.c:11960
+#, fuzzy
+msgid "template-id `%D' used as a declarator"
+msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cpplex.c:269
-msgid "backslash-newline at end of file"
+#: cp/decl.c:11981
+msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr ""
-#: cpplex.c:344
-msgid "\"/*\" within comment"
-msgstr "\"/*\" i kommentar"
-
-#: cpplex.c:430
-msgid "null character(s) ignored"
+#: cp/decl.c:12030
+msgid "typedef name may not be class-qualified"
msgstr ""
-#: cpplex.c:437
-#, c-format
-msgid "%s in preprocessing directive"
-msgstr "%s i preprocessordirektiv"
-
-#: cpplex.c:513
-msgid "'$' character(s) in identifier"
-msgstr "tecknet '$' i en identifierare"
+#: cp/decl.c:12038
+#, fuzzy
+msgid "invalid type qualifier for non-member function type"
+msgstr "namn saknas på medlemsfunktion"
-#: cpplex.c:528
-#, c-format
-msgid "attempt to use poisoned \"%s\""
-msgstr "försök att använda förgiftad \"%s\""
+#: cp/decl.c:12101
+#, fuzzy
+msgid "type qualifiers specified for friend class declaration"
+msgstr "två typer angivna i en tom deklaration"
-#: cpplex.c:535
-msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+#: cp/decl.c:12106
+msgid "`inline' specified for friend class declaration"
msgstr ""
-#: cpplex.c:605
-#, c-format
-msgid "missing terminating %c character"
-msgstr ""
+#: cp/decl.c:12114
+#, fuzzy
+msgid "template parameters cannot be friends"
+msgstr "typen på parameter \"%s\" är inte deklarerad"
-#: cpplex.c:612
-msgid "possible start of unterminated string literal"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
msgstr ""
-#: cpplex.c:705
-msgid "multi-line string literals are deprecated"
+#: cp/decl.c:12120
+msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr ""
-#: cpplex.c:716
-msgid "null character(s) preserved in literal"
+#: cp/decl.c:12134
+msgid "trying to make class `%T' a friend of global scope"
msgstr ""
-#: cpplex.c:889
-msgid "no newline at end of file"
-msgstr "inget nyradstecken vid slutet av filen"
-
-#: cpplex.c:1010 tradcpp.c:1447
-msgid "unterminated comment"
-msgstr "ej avslutad kommentar"
+#: cp/decl.c:12145
+#, fuzzy
+msgid "invalid qualifiers on non-member function type"
+msgstr "ogiltigt format på versionsnummer"
-#: cpplex.c:1024
-msgid "C++ style comments are not allowed in ISO C89"
-msgstr "C++ kommentarer tillåts inte av ISO C89"
+#: cp/decl.c:12164
+#, fuzzy
+msgid "abstract declarator `%T' used as declaration"
+msgstr "deklaration av \"%s\" döljer global deklaration"
-#: cpplex.c:1026
-msgid "(this will be reported only once per input file)"
+#: cp/decl.c:12176
+msgid "unnamed variable or field declared void"
msgstr ""
-#: cpplex.c:1034
-msgid "multi-line comment"
+#: cp/decl.c:12185
+msgid "variable or field declared void"
msgstr ""
-#: cpplex.c:1196
-msgid "directives may not be used inside a macro argument"
+#: cp/decl.c:12195
+msgid "cannot use `::' in parameter declaration"
msgstr ""
-#: cpplex.c:1351
-#, c-format
-msgid "Unspellable token %s"
-msgstr ""
+#. Something like struct S { int N::j; };
+#: cp/decl.c:12234
+#, fuzzy
+msgid "invalid use of `::'"
+msgstr "ogiltigt användande av \"restrict\""
-#: cpplex.c:1706
-#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
-msgstr "semantiken för \"\\%c\" varierar med -traditional"
+#: cp/decl.c:12246
+#, fuzzy
+msgid "function `%D' cannot be declared friend"
+msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-#: cpplex.c:1712
-msgid "incomplete universal-character-name"
+#: cp/decl.c:12258
+msgid "can't make `%D' into a method -- not in a class"
msgstr ""
-#: cpplex.c:1726
-#, c-format
-msgid "non-hex digit '%c' in universal-character-name"
-msgstr ""
+#: cp/decl.c:12267
+#, fuzzy
+msgid "function `%D' declared virtual inside a union"
+msgstr "fält \"%s\" deklarerad som en funktion"
-#: cpplex.c:1734
-msgid "universal-character-name on EBCDIC target"
+#: cp/decl.c:12279
+msgid "`%D' cannot be declared virtual, since it is always static"
msgstr ""
-#: cpplex.c:1748
-msgid "universal-character-name out of range"
-msgstr ""
+#: cp/decl.c:12355
+#, fuzzy
+msgid "field `%D' has incomplete type"
+msgstr "fält \"%s\" har en inkomplett typ"
-#: cpplex.c:1794
-msgid "the meaning of '\\a' varies with -traditional"
-msgstr "semantiken för \"\\a\" varierar med -traditional"
+#: cp/decl.c:12357
+#, fuzzy
+msgid "name `%T' has incomplete type"
+msgstr "parameter \"%s\" har en inkomplett typ"
+
+#: cp/decl.c:12366
+#, fuzzy
+msgid " in instantiation of template `%T'"
+msgstr "%s: Vid instansiering av \"%s\":\n"
-#: cpplex.c:1801
+#: cp/decl.c:12376
#, c-format
-msgid "non-ISO-standard escape sequence, '\\%c'"
+msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr ""
-#: cpplex.c:1811
-msgid "the meaning of '\\x' varies with -traditional"
+#: cp/decl.c:12387
+msgid "member functions are implicitly friends of their class"
msgstr ""
-#: cpplex.c:1830 f/lex.c:636
-msgid "\\x used with no following hex digits"
+#. An attempt is being made to initialize a non-static
+#. member. But, from [class.mem]:
+#.
+#. 4 A member-declarator can contain a
+#. constant-initializer only if it declares a static
+#. member (_class.static_) of integral or enumeration
+#. type, see _class.static.data_.
+#.
+#. This used to be relatively common practice, but
+#. the rest of the compiler does not correctly
+#. handle the initialization unless the member is
+#. static so we make it static below.
+#: cp/decl.c:12434
+#, fuzzy
+msgid "ISO C++ forbids initialization of member `%D'"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
+
+#: cp/decl.c:12436
+msgid "making `%D' static"
msgstr ""
-#: cpplex.c:1834
-msgid "hex escape sequence out of range"
+#: cp/decl.c:12460
+msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr ""
-#: cpplex.c:1858
-msgid "octal escape sequence out of range"
+#: cp/decl.c:12501
+#, c-format
+msgid "storage class `auto' invalid for function `%s'"
msgstr ""
-#: cpplex.c:1873
+#: cp/decl.c:12503
#, c-format
-msgid "unknown escape sequence '\\%c'"
-msgstr "okänd escape-sekvens \"\\%c\""
+msgid "storage class `register' invalid for function `%s'"
+msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
+
+#: cp/decl.c:12505
+#, fuzzy, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "lagringsklass \"register\" ogiltig för funktion \"%s\""
-#: cpplex.c:1875
+#: cp/decl.c:12516
#, c-format
-msgid "unknown escape sequence: '\\%03o'"
+msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr ""
-#: cpplex.c:1879
-msgid "escape sequence out of range for character"
-msgstr "escape-sekvens ryms ej i ett tecken"
+#: cp/decl.c:12518
+#, c-format
+msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+msgstr ""
-#: cpplex.c:1938
-msgid "ignoring invalid multibyte character"
+#: cp/decl.c:12525
+#, c-format
+msgid "virtual non-class function `%s'"
msgstr ""
-#: cpplex.c:1969
-msgid "empty character constant"
-msgstr "tom teckenkonstant"
+#: cp/decl.c:12554
+#, fuzzy
+msgid "cannot declare member function `%D' to have static linkage"
+msgstr "kan inte deklarera \"::main\" som static"
-#: cpplex.c:1973
-msgid "character constant too long"
-msgstr "teckenkonstant för lång"
+#. FIXME need arm citation
+#: cp/decl.c:12560
+msgid "cannot declare static function inside another function"
+msgstr "kan inte deklarera en statisk funktion i en annan funktion"
-#: cpplex.c:1976
-msgid "multi-character character constant"
-msgstr "flerteckens teckenkonstant"
+#: cp/decl.c:12588
+msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+msgstr ""
-#: cpplib.c:213
-#, c-format
-msgid "extra tokens at end of #%s directive"
+#: cp/decl.c:12594
+#, fuzzy
+msgid "static member `%D' declared `register'"
+msgstr "variabel \"%s\" deklarerad \"inline\""
+
+#: cp/decl.c:12599
+msgid "cannot explicitly declare member `%#D' to have extern linkage"
msgstr ""
-#: cpplib.c:302
-msgid "# followed by integer"
+#: cp/decl.c:12774
+#, fuzzy
+msgid "default argument for `%#D' has type `%T'"
+msgstr "första argumentet till \"%s\" skall vara \"int\""
+
+#: cp/decl.c:12777
+msgid "default argument for parameter of type `%T' has type `%T'"
msgstr ""
-#: cpplib.c:351
-msgid "suggest not using #elif in traditional C"
+#: cp/decl.c:12794
+msgid "default argument `%E' uses local variable `%D'"
msgstr ""
-#: cpplib.c:354
-#, c-format
-msgid "traditional C ignores #%s with the # indented"
-msgstr "traditionell C ignorerar #%s dör tecknet # är indenterat"
+#: cp/decl.c:12839
+#, fuzzy, c-format
+msgid "invalid string constant `%E'"
+msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: cpplib.c:358
-#, c-format
-msgid "suggest hiding #%s from traditional C with an indented #"
+#: cp/decl.c:12841
+msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr ""
-#: cpplib.c:368
-#, c-format
-msgid "#%s is a GCC extension"
-msgstr "#%s är en GCC-utvidgning"
+#: cp/decl.c:12879
+#, fuzzy
+msgid "parameter `%D' invalidly declared method type"
+msgstr "parameter \"%s\" deklarerad som void"
-#: cpplib.c:392
-#, c-format
-msgid "invalid preprocessing directive #%s"
-msgstr ""
+#: cp/decl.c:12885
+#, fuzzy
+msgid "parameter `%D' invalidly declared offset type"
+msgstr "parameter \"%s\" deklarerad som void"
-#: cpplib.c:453
-#, c-format
-msgid "no macro name given in #%s directive"
+#: cp/decl.c:12909
+msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr ""
-#: cpplib.c:457
-#, c-format
-msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+#. [class.copy]
+#.
+#. A declaration of a constructor for a class X is ill-formed if
+#. its first parameter is of type (optionally cv-qualified) X
+#. and either there are no other parameters or else all other
+#. parameters have default arguments.
+#.
+#. We *don't* complain about member template instantiations that
+#. have this form, though; they can occur as we try to decide
+#. what constructor to use during overload resolution. Since
+#. overload resolution will never prefer such a constructor to
+#. the non-template copy constructor (which is either explicitly
+#. or implicitly defined), there's no need to worry about their
+#. existence. Theoretically, they should never even be
+#. instantiated, but that's hard to forestall.
+#: cp/decl.c:13071
+msgid "invalid constructor; you probably meant `%T (const %T&)'"
+msgstr ""
+
+#: cp/decl.c:13222
+#, fuzzy
+msgid "`%D' must be a nonstatic member function"
+msgstr "\"%s\" är normalt en icke-statisk function"
+
+#: cp/decl.c:13228
+msgid "`%D' must be either a non-static member function or a non-member function"
msgstr ""
-#: cpplib.c:460
-msgid "macro names must be identifiers"
+#: cp/decl.c:13245
+msgid "`%D' must have an argument of class or enumerated type"
msgstr ""
-#: cpplib.c:469
+#: cp/decl.c:13277
#, c-format
-msgid "\"%s\" cannot be used as a macro name"
+msgid "conversion to %s%s will never use a type conversion operator"
msgstr ""
-#: cpplib.c:508
-#, c-format
-msgid "undefining \"%s\""
+#. 13.4.0.3
+#: cp/decl.c:13284
+msgid "ISO C++ prohibits overloading operator ?:"
msgstr ""
-#: cpplib.c:552
-msgid "missing terminating > character"
-msgstr "saknar avslutande tecken >"
+#: cp/decl.c:13334
+msgid "postfix `%D' must take `int' as its argument"
+msgstr ""
-#: cpplib.c:590
-#, c-format
-msgid "#%s expects \"FILENAME\" or <FILENAME>"
+#: cp/decl.c:13338
+msgid "postfix `%D' must take `int' as its second argument"
msgstr ""
-#: cpplib.c:599
-#, c-format
-msgid "empty file name in #%s"
-msgstr "tomt filnamn i #%s"
+#: cp/decl.c:13345
+#, fuzzy
+msgid "`%D' must take either zero or one argument"
+msgstr "\"%s\" tar bara noll eller två argument"
-#: cpplib.c:627
-msgid "#include nested too deeply"
-msgstr "#include nästlad för djupt"
+#: cp/decl.c:13347
+#, fuzzy
+msgid "`%D' must take either one or two arguments"
+msgstr "\"%s\" tar bara noll eller två argument"
-#: cpplib.c:629
-msgid "attempt to push file buffer with contexts stacked"
+#: cp/decl.c:13368
+msgid "prefix `%D' should return `%T'"
msgstr ""
-#: cpplib.c:636
-msgid "#include_next in primary source file"
+#: cp/decl.c:13374
+msgid "postfix `%D' should return `%T'"
msgstr ""
-#: cpplib.c:660
-msgid "#import is obsolete, use an #ifndef wrapper in the header file"
-msgstr "#import är obsolet, använd #ifndef-omslutning i includefilen"
-
-#: cpplib.c:696
-#, c-format
-msgid "invalid flag \"%s\" in line directive"
-msgstr "ogiltigt flagga \"%s\" i line-direktiv"
+#: cp/decl.c:13383
+msgid "`%D' must take `void'"
+msgstr ""
-#: cpplib.c:748
-#, c-format
-msgid "\"%s\" after #line is not a positive integer"
-msgstr "\"%s\" efter #line är inte ett positivt heltal"
+#: cp/decl.c:13385 cp/decl.c:13393
+#, fuzzy
+msgid "`%D' must take exactly one argument"
+msgstr "\"%s\" tar bara noll eller två argument"
-#: cpplib.c:754
-msgid "line number out of range"
-msgstr "radnummer utanför möjligt intervall"
+#: cp/decl.c:13395
+#, fuzzy
+msgid "`%D' must take exactly two arguments"
+msgstr "\"%s\" tar bara noll eller två argument"
-#: cpplib.c:798
-#, c-format
-msgid "file \"%s\" left but not entered"
+#: cp/decl.c:13403
+msgid "user-defined `%D' always evaluates both arguments"
msgstr ""
-#: cpplib.c:806
-#, c-format
-msgid "expected to return to file \"%s\""
+#: cp/decl.c:13417
+msgid "`%D' should return by value"
msgstr ""
-#: cpplib.c:809
-#, c-format
-msgid "expected to return to line number %u"
+#: cp/decl.c:13429 cp/decl.c:13432
+msgid "`%D' cannot have default arguments"
msgstr ""
-#: cpplib.c:812
-#, c-format
-msgid "header flags for \"%s\" have changed"
+#: cp/decl.c:13475
+msgid "using typedef-name `%D' after `%s'"
msgstr ""
-#: cpplib.c:823
-#, c-format
-msgid "\"%s\" is not a valid filename"
-msgstr "\"%s\" är inte ett giltigt filnamn"
+#: cp/decl.c:13481
+#, fuzzy
+msgid "using template type parameter `%T' after `%s'"
+msgstr "flera parametrar med namn \"%s\""
-#: cpplib.c:971
-#, c-format
-msgid "unknown #pragma namespace %s"
-msgstr "okänt #pragma namespace %s"
+#: cp/decl.c:13542
+#, fuzzy
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "\"%s %s\" deklarerad inuti parameterlista"
-#: cpplib.c:1081
-msgid "#pragma once is obsolete"
-msgstr "#pragma once är obsolet"
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr ""
-#: cpplib.c:1084
-msgid "#pragma once in main file"
-msgstr "#pragma once i huvudfil"
+#: cp/decl.c:13663
+#, fuzzy
+msgid "use of enum `%#D' without previous declaration"
+msgstr "sektion \"%s\" står i konflikt med tidigare deklaration"
-#: cpplib.c:1108
-msgid "invalid #pragma GCC poison directive"
-msgstr "ogiltigt GCC-direktiv #pragma poison"
+#: cp/decl.c:13749
+msgid "derived union `%T' invalid"
+msgstr ""
-#: cpplib.c:1117
-#, c-format
-msgid "poisoning existing macro \"%s\""
-msgstr "förgiftar existerande makro \"%s\""
+#: cp/decl.c:13795
+msgid "base type `%T' fails to be a struct or class type"
+msgstr ""
-#: cpplib.c:1142
-msgid "#pragma system_header ignored outside include file"
+#: cp/decl.c:13805
+#, fuzzy
+msgid "base class `%T' has incomplete type"
+msgstr "fält \"%s\" har en inkomplett typ"
+
+#: cp/decl.c:13813
+msgid "recursive type `%T' undefined"
msgstr ""
-#: cpplib.c:1164
-#, c-format
-msgid "cannot find source %s"
-msgstr "kan inte hitta källfil %s"
+#: cp/decl.c:13815
+#, fuzzy
+msgid "duplicate base type `%T' invalid"
+msgstr "upprepat case-värde"
-#: cpplib.c:1168
-#, c-format
-msgid "current file is older than %s"
-msgstr "aktuell fil är äldre än %s"
+#: cp/decl.c:13926
+#, fuzzy
+msgid "multiple definition of `%#T'"
+msgstr "omdefiniering av \"%s\""
-#: cpplib.c:1231
-msgid "_Pragma takes a parenthesized string literal"
+#: cp/decl.c:13927
+#, fuzzy
+msgid "previous definition here"
+msgstr "\"%s\" definierades tidigare här"
+
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
msgstr ""
-#: cpplib.c:1324
-msgid "#else without #if"
-msgstr "#else utan #if"
+#: cp/decl.c:14106
+#, fuzzy
+msgid "enumerator value for `%D' not integer constant"
+msgstr "uppräkningsvärde för \"%s\" är inte en heltalskonstant"
-#: cpplib.c:1329 tradcpp.c:3850
-msgid "#else after #else"
-msgstr "#else efter #else"
+#: cp/decl.c:14126
+#, fuzzy
+msgid "overflow in enumeration values at `%D'"
+msgstr "överspill i uppräkningsvärden"
-#: cpplib.c:1331 cpplib.c:1365
-msgid "the conditional began here"
-msgstr "villkorssatsen började här"
+#: cp/decl.c:14195
+#, fuzzy
+msgid "return type `%#T' is incomplete"
+msgstr "returtypen är en inkomplett typ"
-#: cpplib.c:1358
-msgid "#elif without #if"
-msgstr "#elif utan #if"
+#: cp/decl.c:14309
+#, fuzzy
+msgid "semicolon missing after declaration of `%#T'"
+msgstr "motstridande deklarationer av \"%s\""
-#: cpplib.c:1363 tradcpp.c:3545
-msgid "#elif after #else"
-msgstr "#elif efter #else"
+#: cp/decl.c:14330
+msgid "return type for `main' changed to `int'"
+msgstr "returtypen för \"main\" ändrad till \"int\""
-#: cpplib.c:1395
-msgid "#endif without #if"
-msgstr "#endif utan #if"
+#: cp/decl.c:14361
+#, fuzzy
+msgid "`%D' implicitly declared before its definition"
+msgstr "\"%s\" deklarerad inline efter sin definition"
-#: cpplib.c:1480 tradcpp.c:3242
-msgid "missing '(' after predicate"
-msgstr "saknas '(' efter predikat"
+#: cp/decl.c:14383 cp/typeck.c:6314
+msgid "`operator=' should return a reference to `*this'"
+msgstr ""
-#: cpplib.c:1501 tradcpp.c:3256
-msgid "missing ')' to complete answer"
-msgstr "saknas ')' för att avsluta svaret"
+#: cp/decl.c:14643
+#, fuzzy
+msgid "parameter `%D' declared void"
+msgstr "parameter \"%s\" deklarerad som void"
-#: cpplib.c:1509 tradcpp.c:3262
-msgid "predicate's answer is empty"
-msgstr "predikatets svar är tomt"
+#: cp/decl.c:15130
+msgid "`%D' is already defined in class `%T'"
+msgstr ""
-#: cpplib.c:1540 tradcpp.c:3310
-msgid "assertion without predicate"
+#: cp/decl.c:15348
+#, fuzzy
+msgid "static member function `%#D' declared with type qualifiers"
+msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
+
+#: cp/decl2.c:153
+#, fuzzy, c-format
+msgid "duplicate type qualifiers in %s declaration"
+msgstr "dubbel deklaration av etikett \"%s\""
+
+#: cp/decl2.c:192
+msgid "template `%#D' instantiated in file without #pragma interface"
msgstr ""
-#: cpplib.c:1542 tradcpp.c:3312
-msgid "predicate must be an identifier"
-msgstr "predikat måste vara en identifierare"
+#: cp/decl2.c:198
+msgid "template `%#D' defined in file without #pragma interface"
+msgstr ""
-#: cpplib.c:1623 tradcpp.c:3409
-#, c-format
-msgid "\"%s\" re-asserted"
+#: cp/decl2.c:365
+msgid "name missing for member function"
+msgstr "namn saknas på medlemsfunktion"
+
+#. Something has gone very wrong. Assume we are mistakenly reducing
+#. an expression instead of a declaration.
+#: cp/decl2.c:428
+msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr ""
-#: cpplib.c:1819
-msgid "<builtin>"
-msgstr "<inbyggd>"
+#: cp/decl2.c:459 cp/decl2.c:473
+msgid "ambiguous conversion for array subscript"
+msgstr "tvetydig konveretering av fältindex"
-#: cpplib.c:1821
-msgid "<command line>"
+#: cp/decl2.c:467
+#, fuzzy
+msgid "invalid types `%T[%T]' for array subscript"
+msgstr "tvetydig konveretering av fältindex"
+
+#: cp/decl2.c:515
+msgid "type `%#T' argument given to `delete', expected pointer"
msgstr ""
-#: cpplib.c:1844
-msgid "<stdin>"
-msgstr "<stdin>"
+#: cp/decl2.c:523
+msgid "anachronistic use of array size in vector delete"
+msgstr ""
-#: cpplib.c:1877
-#, c-format
-msgid "unterminated #%s"
+#: cp/decl2.c:533
+msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
msgstr ""
-#: cpplib.c:1905
-#, c-format
-msgid "file \"%s\" entered but not left"
-msgstr "filen \"%s\" påbörjad men ej avslutad"
+#: cp/decl2.c:540
+#, fuzzy
+msgid "deleting `%T' is undefined"
+msgstr "operation på \"%s\" kan vara odefinierad"
-#: cppmacro.c:213
-#, c-format
-msgid "invalid builtin macro \"%s\""
+#: cp/decl2.c:548
+msgid "deleting array `%#D'"
msgstr ""
-#: cppmacro.c:333
-msgid "invalid string literal, ignoring final '\\'"
+#. 14.5.2.2 [temp.mem]
+#.
+#. A local class shall not have member templates.
+#: cp/decl2.c:582
+msgid "invalid declaration of member template `%#D' in local class"
msgstr ""
-#: cppmacro.c:367
-#, c-format
-msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+#: cp/decl2.c:591
+#, fuzzy
+msgid "invalid use of `virtual' in template declaration of `%#D'"
+msgstr "tidigare implicit deklaration av \"%s\""
+
+#: cp/decl2.c:601 cp/pt.c:2745
+#, fuzzy
+msgid "template declaration of `%#D'"
+msgstr "omdeklaration av \"%s\""
+
+#: cp/decl2.c:651
+msgid "Java method '%D' has non-Java return type `%T'"
msgstr ""
-#: cppmacro.c:539
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
+#: cp/decl2.c:660
+msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr ""
-#: cppmacro.c:556
-msgid "ISO C99 requires rest arguments to be used"
+#: cp/decl2.c:746
+msgid "prototype for `%#D' does not match any in class `%T'"
msgstr ""
-#: cppmacro.c:561
-#, c-format
-msgid "macro \"%s\" requires %u arguments, but only %u given"
+#: cp/decl2.c:828
+msgid "local class `%#T' shall not have static data member `%#D'"
msgstr ""
-#: cppmacro.c:572
-#, c-format
-msgid "macro \"%s\" passed %u arguments, but takes just %u"
+#: cp/decl2.c:836
+msgid "initializer invalid for static member with constructor"
msgstr ""
-#: cppmacro.c:612
-#, c-format
-msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+#: cp/decl2.c:839
+msgid "(an out of class initialization is required)"
msgstr ""
-#: cppmacro.c:1236
-#, c-format
-msgid "duplicate macro parameter \"%s\""
+#: cp/decl2.c:898
+#, fuzzy
+msgid "invalid data member initialization"
+msgstr "Slå på automatisk mallinstansiering"
+
+#: cp/decl2.c:901
+msgid "(use `=' to initialize static data members)"
msgstr ""
-#: cppmacro.c:1271
-#, c-format
-msgid "\"%s\" may not appear in macro parameter list"
+#: cp/decl2.c:947
+msgid "member `%D' conflicts with virtual function table field name"
msgstr ""
-#: cppmacro.c:1278
-msgid "macro parameters must be comma-separated"
+#: cp/decl2.c:967
+msgid "`%D' is already defined in `%T'"
msgstr ""
-#: cppmacro.c:1295
-msgid "parameter name missing"
-msgstr "parameternamn saknas"
+#: cp/decl2.c:1014
+msgid "field initializer is not constant"
+msgstr "fältinitierare är ej konstant"
-#: cppmacro.c:1309
-msgid "anonymous variadic macros were introduced in C99"
+#: cp/decl2.c:1038
+msgid "`asm' specifiers are not permitted on non-static data members"
msgstr ""
-#: cppmacro.c:1312
-msgid "ISO C does not permit named variadic macros"
+#: cp/decl2.c:1090
+#, fuzzy
+msgid "cannot declare `%D' to be a bit-field type"
+msgstr "kan inte deklarera \"::main\" som en mall"
+
+#: cp/decl2.c:1100
+#, fuzzy
+msgid "cannot declare bit-field `%D' with function type"
+msgstr "typkonvertering matchar inte en funktionstyp"
+
+#: cp/decl2.c:1107
+msgid "`%D' is already defined in the class %T"
msgstr ""
-#: cppmacro.c:1321
-msgid "missing ')' in macro parameter list"
+#: cp/decl2.c:1114
+msgid "static member `%D' cannot be a bit-field"
msgstr ""
-#: cppmacro.c:1400
-msgid "ISO C requires whitespace after the macro name"
+#: cp/decl2.c:1201
+#, fuzzy
+msgid "initializer specified for non-member function `%D'"
+msgstr "argumentformat angivet för icke-funktion \"%s\""
+
+#: cp/decl2.c:1205
+msgid "invalid initializer for virtual method `%D'"
msgstr ""
-#: cppmacro.c:1423
-msgid "'#' is not followed by a macro parameter"
+#: cp/decl2.c:1319
+msgid "anonymous struct not inside named type"
msgstr ""
-#: cppmacro.c:1443
-msgid "'##' cannot appear at either end of a macro expansion"
+#: cp/decl2.c:1415
+msgid "namespace-scope anonymous aggregates must be static"
msgstr ""
-#: cppmacro.c:1478
-#, c-format
-msgid "\"%s\" redefined"
-msgstr "\"%s\" omdefinierad"
+#: cp/decl2.c:1428
+msgid "anonymous aggregate with no members"
+msgstr ""
-#: cppmacro.c:1484
-msgid "this is the location of the previous definition"
-msgstr "detta är platsen för den tidigare definitionen"
+#: cp/decl2.c:1497
+#, fuzzy
+msgid "`operator new' must return type `%T'"
+msgstr "\"operator new\" måste returnera typ \"void *\""
-#: cppmacro.c:1543
-#, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional."
-msgstr ""
+#: cp/decl2.c:1505
+#, fuzzy
+msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+msgstr "\"operator new\" tar parameter av typ \"size_t\""
-#: cppmacro.c:1567
-#, c-format
-msgid "invalid hash type %d in dump_definition"
+#: cp/decl2.c:1532
+#, fuzzy
+msgid "`operator delete' must return type `%T'"
+msgstr "\"operator new\" måste returnera typ \"void *\""
+
+#: cp/decl2.c:1540
+#, fuzzy
+msgid "`operator delete' takes type `%T' as first parameter"
+msgstr "\"operator new\" tar parameter av typ \"size_t\""
+
+#. Overflow occurred. That means there are at least 4 billion
+#. initialization functions.
+#: cp/decl2.c:2282
+msgid "too many initialization functions required"
msgstr ""
-#: cppmain.c:128
-#, c-format
-msgid "Invalid option %s"
-msgstr "Ogiltig flagga %s"
+#: cp/decl2.c:3006
+#, fuzzy
+msgid "inline function `%D' used but never defined"
+msgstr "\"%s\" är använd men inte definierad"
-#: cppspec.c:128
-#, c-format
-msgid "\"%s\" is not a valid option to the preprocessor"
+#: cp/decl2.c:3135
+msgid "use of old-style cast"
+msgstr "användning av gammaldags typkonvertering"
+
+#: cp/decl2.c:3860
+#, fuzzy
+msgid "use of `%D' is ambiguous"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
+
+#: cp/decl2.c:3861
+msgid " first declared as `%#D' here"
msgstr ""
-#: cppspec.c:152
-msgid "too many input files"
-msgstr "för många indatafiler"
+#: cp/decl2.c:3864
+msgid " also declared as `%#D' here"
+msgstr ""
-#: cse.c:7137
-#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
+#: cp/decl2.c:3879
+msgid "`%D' denotes an ambiguous type"
msgstr ""
-#: diagnostic.c:842
-#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: varning: "
+#: cp/decl2.c:3880
+#, fuzzy
+msgid " first type here"
+msgstr " från här"
-#: diagnostic.c:849
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: varning: "
+#: cp/decl2.c:3881
+msgid " other type here"
+msgstr ""
-#: diagnostic.c:935
-msgid "((anonymous))"
-msgstr "((anonym))"
+#: cp/decl2.c:3982
+#, fuzzy
+msgid "declaration of `%D' not in a namespace surrounding `%D'"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: diagnostic.c:1060
-#, c-format
-msgid "%s: warnings being treated as errors\n"
+#: cp/decl2.c:4016
+msgid "`%D' should have been declared inside `%D'"
msgstr ""
-#: diagnostic.c:1112
-#, c-format
-msgid "%s: %s: "
-msgstr "%s: %s: "
+#: cp/decl2.c:4152
+#, fuzzy
+msgid "`%D' is not a function,"
+msgstr "\"%s\" är vanligtvis en funktion"
-#: diagnostic.c:1220
-msgid "sorry, not implemented: "
-msgstr "ledsen, inte implementerat: "
+#: cp/decl2.c:4153
+#, fuzzy
+msgid " conflict with `%D'"
+msgstr "\"%s\" ignorerad, i konflikt med \"-g%s\""
-#: diagnostic.c:1239
-#, c-format
-msgid "%s "
-msgstr "%s "
+#. The parser did not find it, so it's not there.
+#: cp/decl2.c:4473
+#, fuzzy
+msgid "unknown namespace `%D'"
+msgstr "okänt #pragma namespace %s"
-#: diagnostic.c:1241
-#, c-format
-msgid " %s"
-msgstr " %s"
+#: cp/decl2.c:4507 cp/decl2.c:4794
+msgid "`%T' is not a namespace"
+msgstr ""
-#: diagnostic.c:1264
-msgid "At top level:"
-msgstr "På toppnivå:"
+#: cp/decl2.c:4509
+msgid "`%D' is not a namespace"
+msgstr ""
-#: diagnostic.c:1269
-#, c-format
-msgid "In method `%s':"
-msgstr "I metod `%s':"
+#: cp/decl2.c:4518
+msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+msgstr ""
-#: diagnostic.c:1273
-#, c-format
-msgid "In function `%s':"
-msgstr "I funktion `%s':"
+#: cp/decl2.c:4532
+#, fuzzy
+msgid "namespace `%D' not allowed in using-declaration"
+msgstr "\"%s\" är inte i början av deklarationen"
-#: diagnostic.c:1408
-msgid "compilation terminated.\n"
-msgstr "kompilering avslutad.\n"
+#: cp/decl2.c:4561
+#, fuzzy
+msgid "`%D' not declared"
+msgstr "\"%s\" är tidigare deklarerad här"
-#: diagnostic.c:1443
-#, c-format
-msgid "%s:%d: confused by earlier errors, bailing out\n"
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
+msgid "`%D' is already declared in this scope"
msgstr ""
-#: diagnostic.c:1457 diagnostic.c:1696
-#, c-format
-msgid ""
-"Please submit a full bug report,\n"
-"with preprocessed source if appropriate.\n"
-"See %s for instructions.\n"
+#: cp/decl2.c:4646
+msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr ""
-"Var vänlig och skicka in en komplett felrapport,\n"
-"om möjligt med preprocessad källfil.\n"
-"Se %s för instruktioner.\n"
-#: diagnostic.c:1489
-msgid "Unrecognizable insn:"
+#: cp/decl2.c:4740
+msgid "using-declaration for non-member at class scope"
msgstr ""
-#: diagnostic.c:1491
-msgid "Insn does not satisfy its constraints:"
+#: cp/decl2.c:4746
+#, fuzzy
+msgid "using-declaration for destructor"
+msgstr "multiple deklaration av metod \"%s\""
+
+#: cp/decl2.c:4752
+msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr ""
-#: diagnostic.c:1694
-msgid "Internal compiler error: Error reporting routines re-entered.\n"
-msgstr "Internt kompilatorfel: Felhanteringsrutiner återanropade.\n"
+#: cp/decl2.c:4788
+#, fuzzy
+msgid "namespace `%T' undeclared"
+msgstr "parameter \"%s\" deklarerad som void"
-#: diagnostic.c:1756
-#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "Internt kompilatorfel i %s, vid %s:%d"
+#: cp/decl2.c:4817
+#, fuzzy
+msgid "default argument missing for parameter %P of `%+#D'"
+msgstr "parameternamn saknas i parameterlista"
-#: diagnostic.c:1801
-#, c-format
-msgid "In file included from %s:%d"
-msgstr "I fil includerad från %s:%d"
+#: cp/decl2.c:4941
+msgid "extra qualification `%T::' on member `%D' ignored"
+msgstr ""
-#: diagnostic.c:1804
-#, c-format
-msgid ""
-",\n"
-" from %s:%d"
+#: cp/decl2.c:4945
+msgid "`%T' does not have a class or union named `%D'"
msgstr ""
-",\n"
-" från %s:%d"
-#: diagnostic.c:1805
-msgid ":\n"
-msgstr ":\n"
+#: cp/decl2.c:4963
+#, fuzzy
+msgid "`%T' is not a class or union type"
+msgstr "ISO C förbjuder typkonvertering till unionstyper"
+
+#: cp/decl2.c:4977
+#, fuzzy
+msgid "template argument is required for `%T'"
+msgstr "flera parametrar med namn \"%s\""
+
+#: cp/decl2.c:4995
+#, fuzzy
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "deklaration av \"%s\" som ett fält med funktioner"
-#: dwarf2out.c:3043
+#: cp/error.c:35
#, c-format
-msgid "DW_LOC_OP %s not implememnted\n"
-msgstr "DW_LOC_OP %s är inte implementerad\n"
+msgid "`%s' not supported by %s"
+msgstr "\"%s\" stöds inte av %s"
-#: dwarf2out.c:7242 dwarfout.c:2135
+#: cp/error.c:571
#, c-format
-msgid "internal regno botch: regno = %d\n"
-msgstr ""
+msgid "<anonymous %s>"
+msgstr "<anonym %s>"
-#: dwarfout.c:6269
-msgid "can't get current directory"
-msgstr ""
+#: cp/error.c:810
+#, c-format
+msgid "(static %s for %s)"
+msgstr "(static %s för %s)"
-#: emit-rtl.c:1028
-msgid "Can't access real part of complex value in hard register"
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
msgstr ""
-#: emit-rtl.c:1050
-msgid "can't access imaginary part of complex value in hard register"
+#: cp/error.c:2473
+#, c-format
+msgid "In %s `%s':"
msgstr ""
-#: emit-rtl.c:2508
-msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
-msgstr ""
+#: cp/error.c:2530
+#, c-format
+msgid "%s: In instantiation of `%s':\n"
+msgstr "%s: Vid instansiering av \"%s\":\n"
-#: errors.c:168
+#: cp/error.c:2554
#, c-format
-msgid "abort in %s, at %s:%d"
+msgid "%s:%d: instantiated from `%s'\n"
msgstr ""
-#: except.c:357
-msgid "exception handling disabled, use -fexceptions to enable"
+#: cp/error.c:2559
+#, c-format
+msgid "%s:%d: instantiated from here\n"
msgstr ""
-#: except.c:2927
-msgid "argument of `__builtin_eh_return_regno' must be constant"
-msgstr "argumentet till \"__builtin_eh_return_regno\" måste vara konstant"
-
-#: except.c:3034 except.c:3056
-msgid "__builtin_eh_return not supported on this target"
-msgstr "__builtin_eh_return stöds inte på denna målarkitektur"
-
-#: explow.c:1447
-msgid "stack limits not supported on this target"
+#. damn ICE suppression
+#: cp/error.c:2713
+#, c-format
+msgid "unexpected letter `%c' in locate_error\n"
msgstr ""
-#: expr.c:2915
-msgid "function using short complex types cannot be inline"
+#. Can't throw a reference.
+#: cp/except.c:240
+msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr ""
-#: expr.c:5994 expr.c:6003 expr.c:6012 expr.c:6017 expr.c:6181 expr.c:6197
-msgid "unsupported wide integer operation"
+#: cp/except.c:251
+msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr ""
-#: expr.c:6244
-#, c-format
-msgid "prior parameter's size depends on `%s'"
-msgstr "föregående parameterns storlek beror på \"%s\""
-
-#: expr.c:6645
-msgid "returned value in block_exit_expr"
+#. Thrown object must be a Throwable.
+#: cp/except.c:258
+msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr ""
-#: f/com.c:11798
-msgid "no INTEGER type can hold a pointer on this configuration"
+#: cp/except.c:322
+msgid "mixing C++ and Java catches in a single translation unit"
msgstr ""
-#: f/com.c:12025
-#, c-format
-msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+#: cp/except.c:639
+msgid "throwing NULL, which has integral, not pointer type"
msgstr ""
-#: f/com.c:12027
-#, c-format
-msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+#: cp/except.c:730
+msgid " in thrown expression"
msgstr ""
-#: f/com.c:12029
-msgid "properly unless they all are 32 bits wide."
+#: cp/except.c:856
+msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr ""
-#: f/com.c:12030
-msgid "Please keep this in mind before you report bugs. g77 should"
+#: cp/except.c:944
+msgid "exception of type `%T' will be caught"
msgstr ""
-#: f/com.c:12031
-msgid "support non-32-bit machines better as of version 0.6."
+#: cp/except.c:947
+msgid " by earlier handler for `%T'"
msgstr ""
-#. I/O will probably crash.
-#: f/com.c:12039
-#, c-format
-msgid "configuration: char * holds %d bits, but ftnlen only %d"
+#: cp/except.c:968
+msgid "`...' handler must be the last handler for its try block"
msgstr ""
-#. ASSIGN 10 TO I will crash.
-#: f/com.c:12048
-#, c-format
-msgid ""
-"configuration: char * holds %d bits, but INTEGER only %d --\n"
-" ASSIGN statement might fail"
-msgstr ""
+#: cp/friend.c:159
+#, fuzzy
+msgid "`%D' is already a friend of class `%T'"
+msgstr "kunde inte hitta klassen \"%s\""
-#: f/com.c:16025
-msgid "Directory name must immediately follow -I"
-msgstr "Katalognamn måste komma direkt efter -I"
+#: cp/friend.c:161
+#, fuzzy
+msgid "previous friend declaration of `%D'"
+msgstr "tidigare deklaration av \"%s\""
-#: f/g77spec.c:250
-#, c-format
-msgid "overflowed output arg list for `%s'"
+#: cp/friend.c:206
+#, fuzzy
+msgid "invalid type `%T' declared `friend'"
+msgstr "variabel \"%s\" deklarerad \"inline\""
+
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.c:222
+#, fuzzy
+msgid "partial specialization `%T' declared `friend'"
+msgstr "variabel \"%s\" deklarerad \"inline\""
+
+#: cp/friend.c:231
+msgid "class `%T' is implicitly friends with itself"
msgstr ""
-#: f/g77spec.c:436
-msgid "--driver no longer supported"
-msgstr "--driver stödjs inte längre"
+#. template <class T> friend typename S<T>::X;
+#: cp/friend.c:249
+#, fuzzy
+msgid "typename type `%#T' declared `friend'"
+msgstr "parameter \"%s\" deklarerad som void"
-#: f/g77spec.c:450
-#, c-format
-msgid "argument to `%s' missing"
-msgstr "argument till \"%s\" saknas"
+#. template <class T> friend class T;
+#: cp/friend.c:255
+#, fuzzy
+msgid "template parameter type `%T' declared `friend'"
+msgstr "parameter \"%s\" deklarerad som void"
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.c:261
+#, fuzzy
+msgid "`%#T' is not a template"
+msgstr "användning ab `%s' i mall"
-#: f/g77spec.c:454
-msgid "No input files; unwilling to write output files"
+#: cp/friend.c:276
+msgid "`%T' is already a friend of `%T'"
msgstr ""
-#: f/lang-options.h:33
-msgid "Print g77-specific compiler version info, run internal tests"
+#: cp/friend.c:376
+msgid "member `%D' declared as friend before type `%T' defined"
msgstr ""
-#: f/lang-options.h:38
-msgid "Program is written in typical FORTRAN 66 dialect"
+#: cp/friend.c:431
+#, fuzzy
+msgid "friend declaration `%#D' declares a non-template function"
+msgstr "inbyggd funktion \"%s\" deklarerad som icke-funktion"
+
+#: cp/friend.c:434
+msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr ""
-#: f/lang-options.h:41
-msgid "Program is written in typical Unix f77 dialect"
+#: cp/g++spec.c:211 java/jvspec.c:423
+#, c-format
+msgid "argument to `%s' missing\n"
+msgstr "argument till \"%s\" saknas\n"
+
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
msgstr ""
-#: f/lang-options.h:43
-msgid "Program does not use Unix-f77 dialectal features"
+#: cp/init.c:384
+msgid "default-initialization of `%#D', which has reference type"
msgstr ""
-#: f/lang-options.h:45
-msgid "Program is written in Fortran-90-ish dialect"
+#: cp/init.c:389
+msgid "uninitialized reference member `%D'"
msgstr ""
-#: f/lang-options.h:49
-msgid ""
-"Treat local vars and COMMON blocks as if they were named in SAVE statements"
+#: cp/init.c:397
+msgid "initializer list treated as compound expression"
msgstr ""
-#: f/lang-options.h:51
-msgid "Allow $ in symbol names"
+#: cp/init.c:538
+#, fuzzy
+msgid "`%D' will be initialized after"
+msgstr "parameter \"%s\" är initierad"
+
+#: cp/init.c:541
+#, fuzzy
+msgid "base `%T' will be initialized after"
+msgstr "fält \"%s\" är redan initierat"
+
+#: cp/init.c:544
+msgid " `%#D'"
msgstr ""
-#: f/lang-options.h:55
-msgid "f2c-compatible code need not be generated"
+#: cp/init.c:546
+msgid " base `%T'"
msgstr ""
-#: f/lang-options.h:58
-msgid "Unsupported; do not generate libf2c-calling code"
+#: cp/init.c:564
+#, fuzzy
+msgid "multiple initializations given for base `%T'"
+msgstr "multiple deklaration av metod \"%s\""
+
+#: cp/init.c:631
+#, fuzzy
+msgid "initializations for multiple members of `%T'"
+msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
+
+#: cp/init.c:688
+msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr ""
-#: f/lang-options.h:60
-msgid "Unsupported; affects code-generation of arrays"
+#: cp/init.c:926
+msgid "class `%T' does not have any field named `%D'"
msgstr ""
-#: f/lang-options.h:63
-msgid "Program is written in Fortran-90-ish free form"
+#: cp/init.c:932
+msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr ""
-#: f/lang-options.h:68
-msgid "Warn about use of (only a few for now) Fortran extensions"
+#: cp/init.c:965
+msgid "unnamed initializer for `%T', which has no base classes"
msgstr ""
-#: f/lang-options.h:71
-msgid "Program is written in VXT (Digital-like) FORTRAN"
+#: cp/init.c:972
+msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr ""
-#: f/lang-options.h:74
-msgid "Disallow all ugly features"
+#: cp/init.c:1007
+msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr ""
-#: f/lang-options.h:77
-msgid "Hollerith and typeless constants not passed as arguments"
+#: cp/init.c:1010
+msgid "type `%D' is not a direct base of `%T'"
msgstr ""
-#: f/lang-options.h:79
-msgid "Allow ordinary copying of ASSIGN'ed vars"
+#. Handle bad initializers like:
+#. class COMPLEX {
+#. public:
+#. double re, im;
+#. COMPLEX(double r = 0.0, double i = 0.0) {re = r; im = i;};
+#. ~COMPLEX() {};
+#. };
+#.
+#. int main(int argc, char **argv) {
+#. COMPLEX zees(1.0, 0.0)[10];
+#. }
+#.
+#: cp/init.c:1104
+#, fuzzy
+msgid "bad array initializer"
+msgstr "fält \"%s\" är redan initierat"
+
+#: cp/init.c:1311
+#, fuzzy
+msgid "`%T' is not an aggregate type"
+msgstr "\"%s\" har en inkomplett typ"
+
+#: cp/init.c:1334
+msgid "`%T' fails to be an aggregate typedef"
msgstr ""
-#: f/lang-options.h:82
-msgid "Dummy array dimensioned to (1) is assumed-size"
+#: cp/init.c:1343
+msgid "type `%T' is of non-aggregate type"
msgstr ""
-#: f/lang-options.h:85
-msgid "Trailing comma in procedure call denotes null argument"
+#: cp/init.c:1446
+msgid "cannot call destructor `%T::~%T' without object"
msgstr ""
-#: f/lang-options.h:88
-msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+#: cp/init.c:1490
+#, fuzzy
+msgid "invalid use of non-static field `%D'"
+msgstr "ogiltigt användande av \"restrict\""
+
+#. We can get here when processing a bad default
+#. argument, like:
+#. struct S { int a; void f(int i = a); }
+#: cp/init.c:1499 cp/method.c:160
+#, fuzzy
+msgid "invalid use of member `%D'"
+msgstr "ogiltigt användande av \"restrict\""
+
+#: cp/init.c:1509
+#, fuzzy
+msgid "no method `%T::%D'"
+msgstr "I metod `%s':"
+
+#: cp/init.c:1602
+msgid "incomplete type `%T' does not have member `%D'"
msgstr ""
-#: f/lang-options.h:92
-msgid "Initialization via DATA and PARAMETER is type-compatible"
+#: cp/init.c:1676
+#, fuzzy
+msgid "`%D' is not a member of type `%T'"
+msgstr "%s har ingen medlem med namn \"%s\""
+
+#: cp/init.c:1695
+#, fuzzy
+msgid "invalid pointer to bit-field `%D'"
+msgstr "negativ storlek i bitfält \"%s\""
+
+#: cp/init.c:1734
+msgid "object missing in use of pointer-to-member construct"
msgstr ""
-#: f/lang-options.h:94
-msgid "Allow INTEGER and LOGICAL interchangeability"
+#: cp/init.c:1774
+msgid "member `%D' is non-static but referenced as a static member"
msgstr ""
-#: f/lang-options.h:97
-msgid "Print internal debugging-related info"
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
+msgid "at this point in file"
msgstr ""
-#: f/lang-options.h:100
-msgid "Initialize local vars and arrays to zero"
+#: cp/init.c:1813
+#, fuzzy, c-format
+msgid "object missing in `%E'"
+msgstr "fältstorlek saknas i \"%s\""
+
+#: cp/init.c:1944
+msgid "new of array type fails to specify size"
msgstr ""
-#: f/lang-options.h:104
-msgid "Backslashes in character/hollerith constants not special (C-style)"
+#: cp/init.c:1955
+msgid "size in array new must have integral type"
msgstr ""
-#: f/lang-options.h:106
-msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+#: cp/init.c:1961
+msgid "zero size array reserves no space"
msgstr ""
-#: f/lang-options.h:110
-msgid "Disable the appending of underscores to externals"
+#: cp/init.c:2026
+msgid "new cannot be applied to a reference type"
msgstr ""
-#: f/lang-options.h:113
-msgid "Never append a second underscore to externals"
+#: cp/init.c:2032
+msgid "new cannot be applied to a function type"
msgstr ""
-#: f/lang-options.h:115
-msgid "Intrinsics spelled as e.g. SqRt"
+#: cp/init.c:2079
+msgid "call to Java constructor, while `jclass' undefined"
msgstr ""
-#: f/lang-options.h:117
-msgid "Intrinsics in uppercase"
+#: cp/init.c:2095
+#, fuzzy
+msgid "can't find class$"
+msgstr "Kan inte hitta class$"
+
+#: cp/init.c:2209
+msgid "invalid type `void' for new"
+msgstr "ogiltig typ \"void\" för new"
+
+#: cp/init.c:2261
+#, c-format
+msgid "call to Java constructor with `%s' undefined"
msgstr ""
-#: f/lang-options.h:120
-msgid "Intrinsics letters in arbitrary cases"
+#: cp/init.c:2369
+#, fuzzy
+msgid "ISO C++ forbids initialization in array new"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
+
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
+msgid "initializer list being treated as compound expression"
msgstr ""
-#: f/lang-options.h:122
-msgid "Language keywords spelled as e.g. IOStat"
+#: cp/init.c:2397
+msgid "ISO C++ forbids aggregate initializer to new"
msgstr ""
-#: f/lang-options.h:124
-msgid "Language keywords in uppercase"
+#: cp/init.c:2485
+#, fuzzy
+msgid "uninitialized const in `new' of `%#T'"
+msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
+
+#: cp/init.c:2864
+msgid "initializer ends prematurely"
msgstr ""
-#: f/lang-options.h:127
-msgid "Language keyword letters in arbitrary cases"
+#: cp/init.c:2934
+msgid "cannot initialize multi-dimensional array with initializer"
msgstr ""
-#: f/lang-options.h:129
-msgid "Internally convert most source to uppercase"
+#: cp/init.c:3124
+msgid "unknown array size in delete"
msgstr ""
-#: f/lang-options.h:132
-msgid "Internally preserve source case"
+#: cp/init.c:3389
+msgid "type to vector delete is neither pointer or array type"
msgstr ""
-#: f/lang-options.h:134
-msgid "Symbol names spelled in mixed case"
+#: cp/lex.c:136
+msgid "type name expected before `*'"
+msgstr "typnamn förväntat före \"*\""
+
+#: cp/lex.c:158
+msgid "cannot declare references to references"
+msgstr "kan inte deklarera referenser till referenser"
+
+#: cp/lex.c:163
+msgid "cannot declare pointers to references"
+msgstr "kan inte deklarera pekare till referenser"
+
+#: cp/lex.c:167
+msgid "type name expected before `&'"
msgstr ""
-#: f/lang-options.h:136
-msgid "Symbol names in uppercase"
+#: cp/lex.c:894
+#, c-format
+msgid "semicolon missing after %s declaration"
msgstr ""
-#: f/lang-options.h:138
-msgid "Symbol names in lowercase"
+#: cp/lex.c:897
+#, fuzzy
+msgid "semicolon missing after declaration of `%T'"
+msgstr "motstridande deklarationer av \"%s\""
+
+#: cp/lex.c:945
+#, c-format
+msgid "junk at end of #pragma %s"
msgstr ""
-#: f/lang-options.h:141
-msgid "Program written in uppercase"
+#: cp/lex.c:952
+#, c-format
+msgid "invalid #pragma %s"
+msgstr "ogiltigt #pragma %s"
+
+#: cp/lex.c:961
+#, fuzzy
+msgid "#pragma vtable no longer supported"
+msgstr "--driver stödjs inte längre"
+
+#: cp/lex.c:1038
+#, c-format
+msgid "#pragma implementation for %s appears after file is included"
msgstr ""
-#: f/lang-options.h:143
-msgid "Program written in lowercase"
+#: cp/lex.c:1063
+msgid "junk at end of #pragma GCC java_exceptions"
msgstr ""
-#: f/lang-options.h:145
-msgid "Program written in strict mixed-case"
+#: cp/lex.c:1107
+#, fuzzy
+msgid "`%D' not defined"
+msgstr "\"%s\" är inte definierad"
+
+#: cp/lex.c:1110
+#, fuzzy
+msgid "`%D' was not declared in this scope"
+msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
+
+#: cp/lex.c:1118
+#, fuzzy
+msgid "`%D' undeclared (first use this function)"
+msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
+
+#: cp/lex.c:1122
+msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr ""
-#: f/lang-options.h:147
-msgid "Compile as if program written in uppercase"
+#: cp/lex.c:1242
+#, fuzzy
+msgid "`::%D' undeclared (first use here)"
+msgstr "\"%s\" odeklarerad (första förekomsten i denna funktionen)"
+
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
msgstr ""
-#: f/lang-options.h:149
-msgid "Compile as if program written in lowercase"
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
msgstr ""
-#: f/lang-options.h:151
-msgid "Preserve all spelling (case) used in program"
+#: cp/method.c:154
+#, fuzzy
+msgid "invalid use of member `%D' in static member function"
+msgstr "destruerare kan inte vara en statisk medlemsfunktion"
+
+#: cp/method.c:216
+msgid "use of namespace `%D' as expression"
msgstr ""
-#: f/lang-options.h:153
-msgid "Delete libU77 intrinsics with bad interfaces"
+#: cp/method.c:221
+msgid "use of class template `%T' as expression"
msgstr ""
-#: f/lang-options.h:155
-msgid "Disable libU77 intrinsics with bad interfaces"
+#: cp/method.c:234
+#, c-format
+msgid "use of %s from containing function"
msgstr ""
-#: f/lang-options.h:158
-msgid "Hide libU77 intrinsics with bad interfaces"
+#: cp/method.c:237
+#, fuzzy
+msgid " `%#D' declared here"
+msgstr "\"%s\" är tidigare deklarerad här"
+
+#: cp/method.c:255
+msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr ""
-#: f/lang-options.h:160
-msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+#: cp/method.c:458
+msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr ""
-#: f/lang-options.h:162
-msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+#: cp/method.c:697
+msgid "non-static const member `%#D', can't use default assignment operator"
msgstr ""
-#: f/lang-options.h:165
-msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+#: cp/method.c:702
+msgid "non-static reference member `%#D', can't use default assignment operator"
msgstr ""
-#: f/lang-options.h:167
-msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+#: parse.y:262
+msgid "`%s' tag used in naming `%#T'"
msgstr ""
-#: f/lang-options.h:169
-msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+#: parse.y:542
+#, fuzzy
+msgid "keyword `export' not implemented, and will be ignored"
+msgstr "nyckelordet \"export\" är inte implementerat och kommer ignorerads"
+
+#: parse.y:646
+msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr ""
-#: f/lang-options.h:172
-msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+#: parse.y:943
+msgid "no base or member initializers given following ':'"
msgstr ""
-#: f/lang-options.h:174
-msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+#: parse.y:984
+msgid "anachronistic old style base class initializer"
msgstr ""
-#: f/lang-options.h:176
-msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+#. Handle `Class<Class<Type>>' without space in the `>>'
+#: parse.y:1117
+msgid "`>>' should be `> >' in template class name"
msgstr ""
-#: f/lang-options.h:179
-msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+#: parse.y:1164
+msgid "use of template qualifier outside template"
msgstr ""
-#: f/lang-options.h:181
-msgid "Delete MIL-STD 1753 intrinsics"
+#: parse.y:1193 parse.y:1202
+#, c-format
+msgid "ISO C++ forbids an empty condition for `%s'"
msgstr ""
-#: f/lang-options.h:183
-msgid "Disable MIL-STD 1753 intrinsics"
+#: parse.y:1225
+#, fuzzy
+msgid "definition of class `%T' in condition"
+msgstr "redefinition av \"%s %s\""
+
+#: parse.y:1227
+#, fuzzy
+msgid "definition of enum `%T' in condition"
+msgstr "omdefiniering av \"%s\""
+
+#: parse.y:1238
+#, fuzzy
+msgid "definition of array `%#D' in condition"
+msgstr "metoddefinition för \"%c%s\" kan inte hittas"
+
+#: parse.y:1351
+msgid "old style placement syntax, use () instead"
msgstr ""
-#: f/lang-options.h:186
-msgid "Hide MIL-STD 1753 intrinsics"
+#: parse.y:1362
+#, fuzzy
+msgid "`%T' is not a valid expression"
+msgstr "\"%s\" är inte ett giltigt filnamn"
+
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
+#: parse.y:1369
+#, fuzzy
+msgid "initialization of new expression with `='"
+msgstr "ISO C++ förbjuder initiering av new-uttryck med \"=\""
+
+#: parse.y:1395
+msgid "ISO C++ forbids compound literals"
msgstr ""
-#: f/lang-options.h:188
-msgid "Delete libU77 intrinsics"
+#: parse.y:1642
+msgid "ISO C++ forbids braced-groups within expressions"
msgstr ""
-#: f/lang-options.h:190
-msgid "Disable libU77 intrinsics"
+#: parse.y:1721
+#, fuzzy
+msgid "invalid use of template `%D'"
+msgstr "ogiltigt användande av \"restrict\""
+
+#: parse.y:2053 parse.y:2068
+msgid "sigof type specifier"
msgstr ""
-#: f/lang-options.h:193
-msgid "Hide libU77 intrinsics"
+#: parse.y:2058
+msgid "`sigof' applied to non-aggregate expression"
msgstr ""
-#: f/lang-options.h:195
-msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#: parse.y:2073
+msgid "`sigof' applied to non-aggregate type"
msgstr ""
-#: f/lang-options.h:197
-msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#: parse.y:2339
+msgid "using `typename' outside of template"
msgstr ""
-#: f/lang-options.h:200
-msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#: parse.y:2356
+msgid "qualified name does not name a class"
msgstr ""
-#: f/lang-options.h:202
-msgid "Treat initial values of 0 like non-zero values"
+#: parse.y:2417
+#, c-format
+msgid "storage class specifier `%s' not allowed after struct or class"
msgstr ""
-#: f/lang-options.h:205
-msgid ""
-"Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+#: parse.y:2419
+#, c-format
+msgid "type specifier `%s' not allowed after struct or class"
msgstr ""
-#: f/lang-options.h:208
-msgid "Take at least one trip through each iterative DO loop"
+#: parse.y:2421
+#, c-format
+msgid "type qualifier `%s' not allowed after struct or class"
msgstr ""
-#: f/lang-options.h:212
-msgid "Print names of program units as they are compiled"
+#: parse.y:2423
+msgid "no body nor ';' separates two class, struct or union declarations"
msgstr ""
-#: f/lang-options.h:215
-msgid "Disable fatal diagnostics about inter-procedural problems"
+#: parse.y:2553
+msgid "no bases given following `:'"
msgstr ""
-#: f/lang-options.h:217
-msgid "Make prefix-radix non-decimal constants be typeless"
+#: parse.y:2584 parse.y:2599
+msgid "`%D' access"
msgstr ""
-#: f/lang-options.h:220
-msgid "Generate code to check subscript and substring bounds"
+#: parse.y:2589
+msgid "multiple access specifiers"
msgstr ""
-#: f/lang-options.h:223
-msgid "Fortran-specific form of -fbounds-check"
+#: parse.y:2607
+msgid "multiple `virtual' specifiers"
msgstr ""
-#: f/lang-options.h:227
-msgid "Disable warnings about inter-procedural problems"
+#: parse.y:2644
+msgid "missing ';' before right brace"
+msgstr "saknar ';' före slutklammer"
+
+#: parse.y:2865
+msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr ""
-#: f/lang-options.h:231
-msgid "Warn about constructs with surprising meanings"
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
+msgid "`%T' is not a class or namespace"
msgstr ""
-#: f/lang-options.h:236
-msgid "Add a directory for INCLUDE searching"
+#: parse.y:3377
+msgid "ISO C++ forbids label declarations"
msgstr ""
-#: f/lang-options.h:238
-msgid "Set the maximum line length"
+#: parse.y:3537
+msgid "ISO C++ forbids computed gotos"
+msgstr "ISO C++ förbjuder beräknade goto"
+
+#: parse.y:3545
+msgid "label must be followed by statement"
msgstr ""
-#: f/lex.c:601
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "semantiken för \"\\x\" varierar med -traditional"
+#: parse.y:3590
+msgid "must have at least one catch per try block"
+msgstr ""
-#: f/lex.c:646
-msgid "hex escape out of range"
+#: parse.y:3650
+msgid "ISO C++ forbids compound statements inside for initializations"
msgstr ""
-#: f/lex.c:692
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "semantiken för \"\\a\" varierar med -traditional"
+#. This helps us recover from really nasty
+#. parse errors, for example, a missing right
+#. parenthesis.
+#: parse.y:3737 parse.y:3747
+msgid "possibly missing ')'"
+msgstr "saknas troligen en ')'"
-#: f/lex.c:708
-#, c-format
-msgid "non-ANSI-standard escape sequence, `\\%c'"
+#: parse.y:3840
+msgid "type specifier omitted for parameter"
msgstr ""
-#: f/lex.c:721
+#: parse.y:3849
#, c-format
-msgid "non-ANSI escape sequence `\\%c'"
+msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr ""
-#: f/lex.c:725
-#, c-format
-msgid "unknown escape sequence `\\%c'"
-msgstr "okänd escape-sekvens \"\\%c\""
+#: parse.y:3851
+#, fuzzy
+msgid "no type `%D' in `%T'"
+msgstr "returtypen på \"%s\" är inte \"int\""
-#: f/lex.c:727
-#, c-format
-msgid "unknown escape sequence: `\\' followed by char code 0x%x"
-msgstr "okänd escape-sekvens: '\\' följd av tecken 0x%x"
+#: parse.y:3854
+#, fuzzy, c-format
+msgid "type specifier omitted for parameter `%E'"
+msgstr "lagringsklass angiven för parameter \"%s\""
-#: f/lex.c:806
-msgid "Badly formed directive -- no closing quote"
+#: parse.y:3862
+msgid "'%D' is used as a type, but is not defined as a type."
msgstr ""
-#: f/lex.c:1039
-msgid "Bad directive -- missing close-quote"
+#: cp/pt.c:284
+msgid "data member `%D' cannot be a member template"
msgstr ""
-#: f/lex.c:1156
-#, c-format
-msgid "ignoring pragma: %s"
-msgstr "ignorerar #pragma: %s"
+#: cp/pt.c:296
+#, fuzzy
+msgid "invalid member template declaration `%D'"
+msgstr "dubbel deklaration av etikett \"%s\""
-#: f/lex.c:1369 f/lex.c:1413
-msgid "Use `#line ...' instead of `# ...' in first line"
+#: cp/pt.c:691
+msgid "explicit specialization in non-namespace scope `%D'"
msgstr ""
-#: f/ste.c:1436 f/ste.c:1791
-msgid "ASSIGNed FORMAT specifier is too small"
+#: cp/pt.c:703
+msgid "enclosing class templates are not explicitly specialized"
msgstr ""
-#: f/ste.c:3259
-msgid "ASSIGN to variable that is too small"
+#: cp/pt.c:792 cp/pt.c:833
+msgid "specializing `%#T' in different namespace"
msgstr ""
-#: f/ste.c:3297
-msgid "ASSIGNed GOTO target variable is too small"
-msgstr ""
+#: cp/pt.c:793 cp/pt.c:834
+#, fuzzy
+msgid " from definition of `%#D'"
+msgstr "omdefiniering av \"%s\""
-#: f/top.c:240
-#, c-format
-msgid "%s no longer supported -- try -fvxt"
-msgstr "%s stödjs inte längre -- försök -fvxt"
+#: cp/pt.c:801
+#, fuzzy
+msgid "specialization of `%T' after instantiation"
+msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: f/top.c:242
-#, c-format
-msgid "%s no longer supported -- try -fno-vxt -ff90"
-msgstr "%s stödjs inte längre -- försök -fno-vxt -ff90"
+#: cp/pt.c:848
+#, fuzzy
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "deklaration av \"%s\" är \"extern\" och initierad"
-#: f/top.c:310 f/top.c:312
-#, c-format
-msgid "%s disabled, use normal debugging flags"
+#: cp/pt.c:860
+#, fuzzy
+msgid "explicit specialization of non-template `%T'"
+msgstr "implicit deklaration av funktion \"%s\""
+
+#: cp/pt.c:992
+msgid "specialization of %D after instantiation"
msgstr ""
-#: final.c:3299
-#, c-format
-msgid "invalid `asm': %s"
-msgstr "ogiltig \"asm\": %s"
+#: cp/pt.c:1096
+#, fuzzy
+msgid "%s %+#D"
+msgstr "%s: %s"
-#: final.c:3301
-#, c-format
-msgid "output_operand: %s"
-msgstr ""
+#: cp/pt.c:1147
+#, fuzzy
+msgid "`%D' is not a function template"
+msgstr "typkonvertering matchar inte en funktionstyp"
-#: final.c:3439
-#, c-format
-msgid "operand number missing after %-letter"
+#: cp/pt.c:1286
+msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr ""
-#: final.c:3441 final.c:3476
-msgid "operand number out of range"
+#: cp/pt.c:1294
+msgid "ambiguous template specialization `%D' for `%+D'"
msgstr ""
-#: final.c:3490
-#, c-format
-msgid "invalid %%-code"
-msgstr "ogiltig %%-kod"
+#. This case handles bogus declarations like template <>
+#. template <class T> void f<int>();
+#: cp/pt.c:1521 cp/pt.c:1595
+msgid "template-id `%D' in declaration of primary template"
+msgstr ""
-#: final.c:3517
-msgid "`%l' operand isn't a label"
+#: cp/pt.c:1534
+msgid "template parameter list used in explicit instantiation"
msgstr ""
-#: flow.c:554
-msgid "function might be possible candidate for attribute `noreturn'"
-msgstr "funktionen är en möjlig kandidat för attributet \"noreturn\""
+#: cp/pt.c:1540
+msgid "definition provided for explicit instantiation"
+msgstr ""
-#: flow.c:559
-msgid "`noreturn' function does return"
-msgstr "\"noreturn\"-funktion returnerar ändå"
+#: cp/pt.c:1546
+#, fuzzy
+msgid "too many template parameter lists in declaration of `%D'"
+msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: flow.c:580
-msgid "control reaches end of non-void function"
-msgstr "Programflödet når slutet på en icke-void-funktion"
+#: cp/pt.c:1562
+#, fuzzy
+msgid "too few template parameter lists in declaration of `%D'"
+msgstr "två eller fler datatyper i deklaration av \"%s\""
-#: flow.c:6797
-#, c-format
-msgid "End insn %d for block %d not found in the insn stream."
+#: cp/pt.c:1579
+msgid "explicit specialization not preceded by `template <>'"
msgstr ""
-#: flow.c:6811
-#, c-format
-msgid "Insn %d is in multiple basic blocks (%d and %d)"
+#: cp/pt.c:1592
+msgid "partial specialization `%D' of function template"
msgstr ""
-#: flow.c:6822
-#, c-format
-msgid "Head insn %d for block %d not found in the insn stream."
+#: cp/pt.c:1624
+msgid "default argument specified in explicit specialization"
msgstr ""
-#: flow.c:6859 flow.c:6886
-#, c-format
-msgid "Basic block %i edge lists are corrupted"
+#: cp/pt.c:1628
+msgid "template specialization with C linkage"
msgstr ""
-#: flow.c:6871
-#, c-format
-msgid "Basic block %d pred edge is corrupted"
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.c:1715
+msgid "specialization of implicitly-declared special member function"
msgstr ""
-#: flow.c:6901
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+#: cp/pt.c:1759
+#, fuzzy
+msgid "no member function `%D' declared in `%T'"
+msgstr "nästlad funktion \"%s\" är deklarerad \"extern\""
+
+#. There are two many template parameter lists.
+#: cp/pt.c:1909
+#, fuzzy
+msgid "too many template parameter lists in declaration of `%T'"
+msgstr "flera lagringsklasser i deklaration av \"%s\""
+
+#: cp/pt.c:2005
+msgid " shadows template parm `%#D'"
msgstr ""
-#: flow.c:6909
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
+#: cp/pt.c:2409
+msgid "template parameters not used in partial specialization:"
msgstr ""
-#: flow.c:6925
-#, c-format
-msgid "NOTE_INSN_BASIC_BLOCK %d in the middle of basic block %d"
+#: cp/pt.c:2413
+msgid " `%D'"
msgstr ""
-#: flow.c:6937
-#, c-format
-msgid "In basic block %d:"
+#: cp/pt.c:2425
+msgid "partial specialization `%T' does not specialize any template arguments"
msgstr ""
-#: flow.c:6999
+#: cp/pt.c:2450
#, c-format
-msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgid "template argument `%E' involves template parameter(s)"
msgstr ""
-#: fold-const.c:3016 fold-const.c:3029
-#, c-format
-msgid "comparison is always %d due to width of bitfield"
+#: cp/pt.c:2494
+msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr ""
-#: fold-const.c:4072 fold-const.c:4089
-#, c-format
-msgid "comparison is always %d"
-msgstr "jämförelsen är alltid %d"
+#: cp/pt.c:2582
+#, fuzzy
+msgid "no default argument for `%D'"
+msgstr "ogiltigt typargument till \"%s\""
-#: fold-const.c:4220
-msgid "`or' of unmatched not-equal tests is always 1"
+#: cp/pt.c:2735
+msgid "template with C linkage"
msgstr ""
-#: fold-const.c:4225
-msgid "`and' of mutually exclusive equal-tests is always 0"
+#: cp/pt.c:2738
+msgid "template class without a name"
msgstr ""
-#: function.c:5401
-#, c-format
-msgid "`%s' might be used uninitialized in this function"
+#: cp/pt.c:2815
+msgid "`%D' does not declare a template type"
msgstr ""
-#: function.c:5408
-#, c-format
-msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+#: cp/pt.c:2821
+#, fuzzy
+msgid "template definition of non-template `%#D'"
+msgstr "upprepad definition av klassmetod \"%s\"."
+
+#: cp/pt.c:2862
+msgid "expected %d levels of template parms for `%#D', got %d"
msgstr ""
-#: function.c:5427
+#: cp/pt.c:2874
+#, fuzzy
+msgid "got %d template parameters for `%#D'"
+msgstr "flera parametrar med namn \"%s\""
+
+#: cp/pt.c:2877
+#, fuzzy
+msgid "got %d template parameters for `%#T'"
+msgstr "flera parametrar med namn \"%s\""
+
+#: cp/pt.c:2879
#, c-format
-msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+msgid " but %d required"
msgstr ""
-#: function.c:6227
-msgid "function returns an aggregate"
-msgstr ""
+#: cp/pt.c:2962
+#, fuzzy
+msgid "`%T' is not a template type"
+msgstr "\"%s\" har en inkomplett typ"
-#: function.c:6724
-#, c-format
-msgid "unused parameter `%s'"
+#: cp/pt.c:2978
+#, fuzzy
+msgid "previous declaration `%D'"
+msgstr "tidigare deklaration av \"%s\""
+
+#: cp/pt.c:2979
+#, fuzzy, c-format
+msgid "used %d template parameter%s instead of %d"
+msgstr "flera parametrar med namn \"%s\""
+
+#: cp/pt.c:2995
+#, fuzzy
+msgid "template parameter `%#D'"
msgstr "oanvänd parameter \"%s\""
-#: gcc.c:1002
-#, c-format
-msgid "Ambiguous abbreviation %s"
-msgstr "Tvetydig förkortning %s"
+#: cp/pt.c:2996
+msgid "redeclared here as `%#D'"
+msgstr ""
-#: gcc.c:1029
-#, c-format
-msgid "Incomplete `%s' option"
-msgstr "Inkomplett flagga \"%s\""
+#. We have in [temp.param]:
+#.
+#. A template-parameter may not be given default arguments
+#. by two different declarations in the same scope.
+#: cp/pt.c:3006
+#, fuzzy
+msgid "redefinition of default argument for `%#D'"
+msgstr "omdefiniering av \"%s\""
-#: gcc.c:1040
-#, c-format
-msgid "Missing argument to `%s' option"
-msgstr "Saknar argument till flaggan \"%s\""
+#: cp/pt.c:3007
+#, fuzzy
+msgid " original definition appeared here"
+msgstr "funktionsdefinition deklarerad som \"typedef\""
-#: gcc.c:1053
-#, c-format
-msgid "Extraneous argument to `%s' option"
+#: cp/pt.c:3100
+#, fuzzy, c-format
+msgid "`%E' is not a valid template argument"
+msgstr "ogiltigt typargument"
+
+#: cp/pt.c:3104
+msgid "it must be the address of a function with external linkage"
msgstr ""
-#: gcc.c:1356
-msgid "Using builtin specs.\n"
+#: cp/pt.c:3106
+msgid "it must be the address of an object with external linkage"
msgstr ""
-#: gcc.c:1522
-#, c-format
-msgid ""
-"Setting spec %s to '%s'\n"
-"\n"
+#: cp/pt.c:3110
+msgid "it must be a pointer-to-member of the form `&X::Y'"
msgstr ""
-#: gcc.c:1620
+#: cp/pt.c:3121
#, c-format
-msgid "Reading specs from %s\n"
+msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr ""
-#: gcc.c:1718 gcc.c:1737
+#: cp/pt.c:3133
#, c-format
-msgid "specs %%include syntax malformed after %ld characters"
+msgid "address of non-extern `%E' cannot be used as template argument"
msgstr ""
-#: gcc.c:1745
+#: cp/pt.c:3144
+#, fuzzy, c-format
+msgid "non-constant `%E' cannot be used as template argument"
+msgstr "const \"%s\" kan inte deklareras \"mutable\""
+
+#: cp/pt.c:3151
#, c-format
-msgid "Could not find specs file %s\n"
+msgid "object `%E' cannot be used as template argument"
msgstr ""
-#: gcc.c:1761 gcc.c:1769 gcc.c:1778 gcc.c:1787
+#: cp/pt.c:3526
#, c-format
-msgid "specs %%rename syntax malformed after %ld characters"
+msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr ""
-#: gcc.c:1796
-#, c-format
-msgid "specs %s spec was not found to be renamed"
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
+msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr ""
-#: gcc.c:1803
-#, c-format
-msgid "rename spec %s to %s\n"
+#: cp/pt.c:3542
+msgid " expected a constant of type `%T', got `%T'"
msgstr ""
-#: gcc.c:1805
-#, c-format
-msgid ""
-"spec is '%s'\n"
-"\n"
+#: cp/pt.c:3546
+#, fuzzy, c-format
+msgid " expected a type, got `%E'"
+msgstr "Oväntad typ på \"id\" (%s)"
+
+#: cp/pt.c:3558
+#, fuzzy
+msgid " expected a type, got `%T'"
+msgstr "Oväntad typ på \"id\" (%s)"
+
+#: cp/pt.c:3560
+msgid " expected a class template, got `%T'"
msgstr ""
-#: gcc.c:1818
-#, c-format
-msgid "specs unknown %% command after %ld characters"
+#: cp/pt.c:3596
+msgid " expected a template of type `%D', got `%D'"
msgstr ""
-#: gcc.c:1829 gcc.c:1842
-#, c-format
-msgid "specs file malformed after %ld characters"
+#: cp/pt.c:3618
+msgid "template-argument `%T' uses anonymous type"
msgstr ""
-#: gcc.c:1896
-msgid "spec file has no spec for linking"
-msgstr "specfilen har ingen spec för länkning"
+#: cp/pt.c:3621
+msgid "template-argument `%T' uses local type `%T'"
+msgstr ""
-#: gcc.c:2603
-msgid "-pipe not supported"
-msgstr "-pipe stöds inte"
+#: cp/pt.c:3631
+#, fuzzy
+msgid "template-argument `%T' is a variably modified type"
+msgstr "parameter \"%s\" är initierad"
-#: gcc.c:2639
-msgid ""
-"\n"
-"Go ahead? (y or n) "
+#: cp/pt.c:3666
+msgid "could not convert template argument `%E' to `%T'"
msgstr ""
-"\n"
-"Fortsätta? (y eller n) "
-#: gcc.c:2738
+#: cp/pt.c:3710
#, c-format
-msgid ""
-"Internal error: %s (program %s)\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
+msgid "wrong number of template arguments (%d, should be %d)"
msgstr ""
-"Internt fel: %s (program %s)\n"
-"Var vänlig och skicka in en felrapport.\n"
-"Se %s för instruktioner."
-#: gcc.c:2756
-#, c-format
-msgid "# %s %.2f %.2f\n"
-msgstr "# %s %.2f %.2f\n"
-
-#: gcc.c:2885
-#, c-format
-msgid "Usage: %s [options] file...\n"
-msgstr "Användning: %s [flaggor] fil...\n"
+#: cp/pt.c:3714
+#, fuzzy
+msgid "provided for `%D'"
+msgstr "destruerare behövs för \"%#D\""
-#: gcc.c:2886
-msgid "Options:\n"
-msgstr "Flaggor:\n"
+#: cp/pt.c:3761
+#, fuzzy, c-format
+msgid "template argument %d is invalid"
+msgstr "parameter \"%s\" är initierad"
-#: gcc.c:2888
-msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+#: cp/pt.c:3997
+msgid "non-template used as template"
msgstr ""
-" -pass-exit-codes Avsluta med högsta felkoden från någon av "
-"faserna\n"
-#: gcc.c:2889
-msgid " --help Display this information\n"
-msgstr " --help Visa den här informatationen\n"
+#: cp/pt.c:4139
+#, fuzzy
+msgid "`%T' is not a template"
+msgstr "användning ab `%s' i mall"
-#: gcc.c:2890
-msgid ""
-" --target-help Display target specific command line options\n"
+#: cp/pt.c:4152
+msgid "non-template type `%T' used as a template"
msgstr ""
-" --target-help Visa specifika kommandoradsflaggor för mål\n"
-#: gcc.c:2892
-msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+#: cp/pt.c:4154
+#, fuzzy
+msgid "for template declaration `%D'"
+msgstr "tom deklaration"
+
+#: cp/pt.c:4770
+msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr ""
-" (Använd '-v --help' för att visa kommandoradsflaggor för barnprocesser)\n"
-#: gcc.c:2893
-msgid " -dumpspecs Display all of the built in spec strings\n"
-msgstr " -dumpspecs Visa de inbyggda spec-strängarna\n"
+#: cp/pt.c:5247
+#, fuzzy
+msgid "ambiguous class template instantiation for `%#T'"
+msgstr "Slå på automatisk mallinstansiering"
-#: gcc.c:2894
-msgid " -dumpversion Display the version of the compiler\n"
-msgstr " -dumpversion Visa kompilatorns version\n"
+#: cp/pt.c:5254
+#, fuzzy
+msgid "%s %+#T"
+msgstr "%s: %s"
-#: gcc.c:2895
-msgid " -dumpmachine Display the compiler's target processor\n"
-msgstr " -dumpmachine Visa kompilatorns målprocessor\n"
+#: cp/pt.c:6284 cp/pt.c:6396
+#, fuzzy
+msgid "instantiation of `%D' as type `%T'"
+msgstr "%s: Vid instansiering av \"%s\":\n"
-#: gcc.c:2896
-msgid ""
-" -print-search-dirs Display the directories in the compiler's search "
-"path\n"
-msgstr " -print-search-dirs Visa katalogerna i kompilatorns sökväg\n"
+#: cp/pt.c:6440
+#, fuzzy
+msgid "invalid parameter type `%T'"
+msgstr "ogiltigt parametervärde \"%s\""
-#: gcc.c:2897
-msgid ""
-" -print-libgcc-file-name Display the name of the compiler's companion "
-"library\n"
-msgstr ""
-" -print-libgcc-file-name Visa namnet på kompilatorns medföljande "
-"bibliotek\n"
+#: cp/pt.c:6442
+#, fuzzy
+msgid "in declaration `%D'"
+msgstr "omdeklaration av \"%s\""
-#: gcc.c:2898
-msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+#: cp/pt.c:6517
+msgid "creating pointer to member function of non-class type `%T'"
msgstr ""
-" -print-file-name=<bib> Visa hela sökvägen till länkbibliotek <bib>\n"
-#: gcc.c:2899
-msgid ""
-" -print-prog-name=<prog> Display the full path to compiler component "
-"<prog>\n"
-msgstr ""
-" -print-prog-name=<prog> Visa fulla sökvägen till kompilatorkomponenten "
-"<prog>\n"
+#: cp/pt.c:6680
+msgid "creating array with size zero"
+msgstr "skapar ett fält med storlek noll"
-#: gcc.c:2900
-msgid ""
-" -print-multi-directory Display the root directory for versions of "
-"libgcc\n"
-msgstr ""
-" -print-multi-directory Visa rotkatalogen för olika versioner av libgcc\n"
+#: cp/pt.c:6694
+#, fuzzy, c-format
+msgid "creating array with size zero (`%E')"
+msgstr "skapar ett fält med storlek noll"
-#: gcc.c:2901
-msgid ""
-" -print-multi-lib Display the mapping between command line options "
-"and\n"
-" multiple library search directories\n"
-msgstr ""
-" -print-multi-lib Visa mappningen mellan kommandoradsflaggor och\n"
-" multipla biblioteks sökkataloger\n"
+#: cp/pt.c:6933
+#, fuzzy
+msgid "forming reference to void"
+msgstr "returnerar referens till en temporär"
-#: gcc.c:2904
-msgid ""
-" -Wa,<options> Pass comma-separated <options> on to the "
-"assembler\n"
+#: cp/pt.c:6935
+msgid "forming %s to reference type `%T'"
msgstr ""
-" -Wa,<flaggor> Skicka kommaseparerade <flaggor> till "
-"assembleraren\n"
-#: gcc.c:2905
-msgid ""
-" -Wp,<options> Pass comma-separated <options> on to the "
-"preprocessor\n"
+#: cp/pt.c:6973
+msgid "creating pointer to member of non-class type `%T'"
msgstr ""
-" -Wp,<flaggor> Skicka kommaseparerade <flaggor> till "
-"preprocessorn\n"
-#: gcc.c:2906
-msgid ""
-" -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#: cp/pt.c:6979
+msgid "creating pointer to member reference type `%T'"
msgstr ""
-" -Wl,<flaggor> Skicka kommaseparerade <flaggor> till länkaren\n"
-#: gcc.c:2907
-msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
-msgstr " -Xlinker <arg> Skicka <arg> vidare till länkaren\n"
-
-#: gcc.c:2908
-msgid " -save-temps Do not delete intermediate files\n"
-msgstr " -save-temps Radera inte temporära filer\n"
-
-#: gcc.c:2909
-msgid " -pipe Use pipes rather than intermediate files\n"
-msgstr " -pipe Använd rör istället för temporära filer\n"
+#: cp/pt.c:7057
+#, fuzzy
+msgid "creating array of `%T'"
+msgstr "skapar ett fält med storlek noll"
-#: gcc.c:2910
-msgid " -time Time the execution of each subprocess\n"
+#: cp/pt.c:7100
+msgid "`%T' is not a class, struct, or union type"
msgstr ""
-" -time Mät tiden det tar att exekvera varje barnprocess\n"
-#: gcc.c:2911
-msgid ""
-" -specs=<file> Override builtin specs with the contents of "
-"<file>\n"
-msgstr ""
-" -specs=<fil> Använd innehållet i <fil> istället för inbyggda "
-"spec\n"
+#: cp/pt.c:7213
+#, c-format
+msgid "use of `%s' in template"
+msgstr "användning ab `%s' i mall"
-#: gcc.c:2912
-msgid ""
-" -std=<standard> Assume that the input sources are for <standard>\n"
+#: cp/pt.c:7975
+msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr ""
-" -std=<standard> Antag att källkodsfilerna är för <standard>\n"
-#: gcc.c:2913
-msgid ""
-" -B <directory> Add <directory> to the compiler's search paths\n"
+#: cp/pt.c:7976
+msgid " trying to instantiate `%D'"
msgstr ""
-" -B <katalog> Lägg till <katalog> till kompilatorns sökvägar\n"
-#: gcc.c:2914
-msgid " -b <machine> Run gcc for target <machine>, if installed\n"
-msgstr ""
-" -b <maskin> Kör gcc för mål <maskin>, om det är installerat\n"
+#: cp/pt.c:8421
+msgid "incomplete type unification"
+msgstr "inkomplett typunifiering"
-#: gcc.c:2915
-msgid ""
-" -V <version> Run gcc version number <version>, if installed\n"
+#: cp/pt.c:9387
+#, c-format
+msgid "use of `%s' in template type unification"
msgstr ""
-" -V <version> Kör gcc version <version>, om den är installerad\n"
-#: gcc.c:2916
-msgid ""
-" -v Display the programs invoked by the compiler\n"
+#: cp/pt.c:9821 cp/pt.c:9893
+msgid "explicit instantiation of non-template `%#D'"
msgstr ""
-" -v Visa vilka program som körs av kompilatorn\n"
-#: gcc.c:2917
-msgid ""
-" -E Preprocess only; do not compile, assemble or "
-"link\n"
+#: cp/pt.c:9837 cp/pt.c:9888
+msgid "no matching template for `%D' found"
msgstr ""
-" -E Preprocessa bara; kompilera, assemblera och\n"
-" länka inte\n"
-#: gcc.c:2918
-msgid " -S Compile only; do not assemble or link\n"
-msgstr " -S Kompilera bara; assemblera och länka inte\n"
-
-#: gcc.c:2919
-msgid " -c Compile and assemble, but do not link\n"
-msgstr " -c Kompilera och assemblera, men länka inte\n"
-
-#: gcc.c:2920
-msgid " -o <file> Place the output into <file>\n"
-msgstr " -o <fil> Placera utdata i <fil>\n"
+#: cp/pt.c:9843
+#, fuzzy
+msgid "explicit instantiation of `%#D'"
+msgstr "%s: Vid instansiering av \"%s\":\n"
-#: gcc.c:2921
-msgid ""
-" -x <language> Specify the language of the following input "
-"files\n"
-" Permissable languages include: c c++ assembler "
-"none\n"
-" 'none' means revert to the default behaviour of\n"
-" guessing the language based on the file's "
-"extension\n"
-msgstr ""
-" -x <språk> Specificera språk för de följande "
-"källkodsfilerna\n"
-" Tillåtna språk är bland annat: c c++ assembler "
-"none\n"
-" 'none' innebär att man använder standardmetoden,\n"
-" att man gissar språk beroende på filändelse\n"
+#: cp/pt.c:9880
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#D'"
+msgstr "dubbel deklaration av etikett \"%s\""
-#: gcc.c:2928
-#, c-format
-msgid ""
-"\n"
-"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
-" passed on to the various sub-processes invoked by %s. In order to pass\n"
-" other options on to these processes the -W<letter> options must be used.\n"
+#: cp/pt.c:9905
+msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr ""
-"\n"
-"Flaggor som börjar med -g, -f, -m, -O, -W eller --param skickas automatiskt\n"
-"vidare till de barnprocesser som startas av %s. För att skicka med andra\n"
-"flaggor till dessa processer måste flaggan -W<bokstav> användas.\n"
-#: gcc.c:3295
-msgid "argument to `-Xlinker' is missing"
-msgstr "argument till \"-Xlinker\" saknas"
+#: cp/pt.c:9909 cp/pt.c:9999
+#, fuzzy
+msgid "storage class `%D' applied to template instantiation"
+msgstr "Slå på automatisk mallinstansiering"
-#: gcc.c:3303
-msgid "argument to `-l' is missing"
+#: cp/pt.c:9966
+msgid "explicit instantiation of non-template type `%T'"
msgstr ""
-#: gcc.c:3320
-msgid "argument to `-specs' is missing"
-msgstr "argument till \"-specs\" saknas"
-
-#: gcc.c:3335
-msgid "argument to `-specs=' is missing"
-msgstr "argument till \"-specs=\" saknas"
-
-#: gcc.c:3357
-msgid "argument to `-b' is missing"
-msgstr "argument till \"-b\" saknas"
-
-#: gcc.c:3370
-msgid "argument to `-B' is missing"
-msgstr "argument till \"-B\" saknas"
+#: cp/pt.c:9980
+msgid "explicit instantiation of `%#T' before definition of template"
+msgstr ""
-#: gcc.c:3421
-msgid "argument to `-V' is missing"
-msgstr "argument till \"-V\" saknas"
+#: cp/pt.c:9988
+#, c-format
+msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+msgstr ""
-#: gcc.c:3442 gcc.c:3449 gcc.c:3456
-msgid "invalid version number format"
-msgstr "ogiltigt format på versionsnummer"
+#: cp/pt.c:10032
+#, fuzzy
+msgid "duplicate explicit instantiation of `%#T'"
+msgstr "dubbel deklaration av etikett \"%s\""
-#: gcc.c:3567
-msgid "cannot specify -o with -c or -S and multiple compilations"
+#: cp/pt.c:10412
+msgid "explicit instantiation of `%D' but no definition available"
msgstr ""
-#: gcc.c:3769
-msgid "Warning: -pipe ignored because -save-temps specified"
-msgstr "Varning: -pipe ignorerad eftersom -save-temps angiven"
-
-#: gcc.c:3773
-msgid "Warning: -pipe ignored because -time specified"
-msgstr "Varning: -pipe ignorerad eftersom -time angiven"
+#: cp/pt.c:10815
+msgid "`%#T' is not a valid type for a template constant parameter"
+msgstr ""
-#: gcc.c:3783
-msgid "argument to `-x' is missing"
-msgstr "argument till \"-x\" saknas"
+#: cp/repo.c:271
+msgid "-frepo must be used with -c"
+msgstr "-frepo måste användas tillsammans med -c"
-#: gcc.c:3811
+#: cp/repo.c:361
#, c-format
-msgid "argument to `-%s' is missing"
-msgstr "argument till \"-%s\" saknas"
+msgid "mysterious repository information in %s"
+msgstr ""
-#: gcc.c:3874
+#: cp/repo.c:376
#, c-format
-msgid "Warning: `-x %s' after last input file has no effect"
+msgid "can't create repository information file `%s'"
msgstr ""
-#: gcc.c:4079
-msgid "Invalid specification! Bug in cc."
-msgstr ""
+#: cp/rtti.c:240
+msgid "cannot use typeid with -fno-rtti"
+msgstr "kan inte använda typeid med -fno-rtti"
-#: gcc.c:4228
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
+#: cp/rtti.c:246
+msgid "must #include <typeinfo> before using typeid"
+msgstr "måste ha#include <typeinfo> för användande av typeid"
-#. Catch the case where a spec string contains something like
-#. '%{foo:%*}'. ie there is no * in the pattern on the left
-#. hand side of the :.
-#: gcc.c:4745
-#, c-format
-msgid "Spec failure: '%%*' has not been initialised by pattern match"
+#: cp/rtti.c:320
+msgid "cannot create type information for type `%T' because its size is variable"
msgstr ""
-#: gcc.c:4754
-#, c-format
-msgid "Warning: use of obsolete %%[ operator in specs"
+#: cp/rtti.c:584 cp/rtti.c:598
+msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
msgstr ""
-#: gcc.c:4772
-#, c-format
-msgid "Processing spec %c%s%c, which is '%s'\n"
+#: cp/rtti.c:674
+msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
msgstr ""
-#: gcc.c:4897
-#, c-format
-msgid "Spec failure: Unrecognised spec option '%c'"
+#: cp/search.c:332
+msgid "`%T' is an ambiguous base of `%T'"
msgstr ""
-#: gcc.c:5751
-#, c-format
-msgid "unrecognized option `-%s'"
-msgstr "ej igenkänd flagga `-%s'"
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr ""
-#: gcc.c:5757
-#, c-format
-msgid "install: %s%s\n"
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
msgstr ""
-#: gcc.c:5758
-#, c-format
-msgid "programs: %s\n"
-msgstr "program: %s\n"
+#: cp/search.c:2050
+msgid "adjusting pointers for covariant returns"
+msgstr ""
-#: gcc.c:5759
-#, c-format
-msgid "libraries: %s\n"
-msgstr "bibliotek: %s\n"
+#: cp/search.c:2054 cp/search.c:2061
+#, fuzzy
+msgid "invalid covariant return type for `%#D'"
+msgstr "ogiltig mottagartyp \"%s\""
-#: gcc.c:5807
-msgid ""
-"\n"
-"For bug reporting instructions, please see:\n"
+#: cp/search.c:2055
+msgid " overriding `%#D' (must be pointer or reference to class)"
msgstr ""
-"\n"
-"Instruktioner för bugrapportering, se:\n"
-#: gcc.c:5823
-#, c-format
-msgid "Configured with: %s\n"
+#: cp/search.c:2062
+msgid " overriding `%#D' (must use pointer or reference)"
msgstr ""
-#: gcc.c:5837
-#, c-format
-msgid "Thread model: %s\n"
+#: cp/search.c:2067
+#, fuzzy
+msgid "conflicting return type specified for `%#D'"
+msgstr "motstridiga typer på \"%s\""
+
+#: cp/search.c:2068
+msgid " overriding `%#D'"
msgstr ""
-#: gcc.c:5848
-#, c-format
-msgid "gcc version %s\n"
-msgstr "gcc version %s\n"
+#: cp/search.c:2077
+#, fuzzy, c-format
+msgid "looser throw specifier for `%#F'"
+msgstr "long eller short angiven med char för \"%s\""
-#: gcc.c:5850
+#: cp/search.c:2078
#, c-format
-msgid "gcc driver version %s executing gcc version %s\n"
+msgid " overriding `%#F'"
msgstr ""
-#: gcc.c:5858
-msgid "No input files"
-msgstr "Inga indatafiler"
+#. A static member function cannot match an inherited
+#. virtual member function.
+#: cp/search.c:2167
+#, fuzzy
+msgid "`%#D' cannot be declared"
+msgstr "const \"%s\" kan inte deklareras \"mutable\""
-#: gcc.c:5895
-#, c-format
-msgid "%s: %s compiler not installed on this system"
-msgstr "%s: kompilatorn %s är inte installerad på detta system"
+#: cp/search.c:2168
+msgid " since `%#D' declared in base class"
+msgstr ""
-#: gcc.c:5965
-#, c-format
-msgid "%s: linker input file unused because linking not done"
+#: cp/search.c:2309
+msgid "`%#D' needs a final overrider"
msgstr ""
-#: gcc.c:6008
-#, c-format
-msgid "language %s not recognized"
-msgstr "språk %s känns inte igen"
+#: cp/semantics.c:919
+#, fuzzy, c-format
+msgid "type of asm operand `%E' could not be determined"
+msgstr "typen på parameter \"%s\" är inte deklarerad"
-#: gcc.c:6111
-msgid "Internal gcc abort."
-msgstr "Intern gcc-halt (abort)."
+#: cp/semantics.c:1051
+msgid "ISO C++ does not permit named return values"
+msgstr ""
-#: gcov.c:299
-msgid "Internal gcov abort.\n"
+#: cp/semantics.c:1060
+msgid "return identifier `%D' already in place"
msgstr ""
-#: gcov.c:308
-msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
-msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n"
+#: cp/semantics.c:1068
+msgid "can't redefine default return value for constructors"
+msgstr ""
-#: gcov.c:428
-#, c-format
-msgid "Could not open basic block file %s.\n"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
msgstr ""
-#: gcov.c:437
-#, c-format
-msgid "Could not open data file %s.\n"
-msgstr "Kunde inte öppna datafil %s.\n"
+#: cp/semantics.c:1343
+msgid "`this' is unavailable for static member functions"
+msgstr ""
-#: gcov.c:438
-msgid "Assuming that all execution counts are zero.\n"
+#: cp/semantics.c:1349
+msgid "invalid use of `this' in non-member function"
msgstr ""
-#: gcov.c:444
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
+#: cp/semantics.c:1351
+msgid "invalid use of `this' at top level"
msgstr ""
-#: gcov.c:455
-#, c-format
-msgid "No executable code associated with file %s.\n"
+#: cp/semantics.c:1381
+msgid "calling type `%T' like a method"
msgstr ""
-#: gcov.c:754 profile.c:977
-msgid ".da file contents exhausted too early\n"
+#: cp/semantics.c:1419
+msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr ""
-#: gcov.c:757 profile.c:980
-msgid ".da file contents not exhausted\n"
+#: cp/semantics.c:1425
+#, fuzzy
+msgid "`%E' is not of type `%T'"
+msgstr "\"%s\" svarar inte på \"%s\""
+
+#: cp/semantics.c:1613
+msgid "template type parameters must use the keyword `class' or `typename'"
msgstr ""
-#: gcov.c:938
-#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%6.2f%% av %d källkodsrader körda i funktion %s\n"
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr ""
-#: gcov.c:942
-#, c-format
-msgid "No executable source lines in function %s\n"
-msgstr "Inga körbara källkodsrader i funktion %s\n"
+#: cp/semantics.c:1694
+#, fuzzy
+msgid "definition of `%#T' inside template parameter list"
+msgstr "deklaration av \"%s\" döljer symbol från parameterlista"
-#: gcov.c:949
-#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%6.2f%% av %d hopp utförda i funktion %s\n"
+#: cp/semantics.c:1710
+#, fuzzy
+msgid "invalid definition of qualified type `%T'"
+msgstr "ogiltig operation på oinstansierad typ"
-#: gcov.c:953
-#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%6.2f%% av %d hopp tagna minst en gång i funktion %s\n"
+#: cp/semantics.c:2053
+#, fuzzy
+msgid "invalid base-class specification"
+msgstr "ogiltig lagringsklass för funktion \"%s\""
-#: gcov.c:958
-#, c-format
-msgid "No branches in function %s\n"
-msgstr "Inga hopp i funktionen %s\n"
+#: cp/semantics.c:2062
+msgid "base class `%T' has cv qualifiers"
+msgstr ""
-#: gcov.c:960
-#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%6.2f%% av %d anrop tagna i funktion %s\n"
+#: cp/semantics.c:2093
+#, fuzzy
+msgid "multiple declarators in template declaration"
+msgstr "flera lagringsklasser i deklaration av \"%s\""
-#: gcov.c:964
-#, c-format
-msgid "No calls in function %s\n"
-msgstr "Inga anrop i funktion %s\n"
+#: cp/semantics.c:2120
+#, fuzzy, c-format
+msgid "type of `%E' is unknown"
+msgstr "Register '%c' är okänt"
-#: gcov.c:1096
+#: cp/spew.c:225
#, c-format
-msgid "didn't use all bb entries of graph, function %s\n"
+msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr ""
-#: gcov.c:1098
-#, c-format
-msgid "block_num = %ld, num_blocks = %d\n"
+#: cp/spew.c:1002 cp/spew.c:1340
+msgid "parse error at end of saved function text"
msgstr ""
-#: gcov.c:1136
-#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
msgstr ""
-#: gcov.c:1213
-#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%6.2f%% av %d källkodsrader körda i fil %s\n"
-
-#: gcov.c:1217
-#, c-format
-msgid "No executable source lines in file %s\n"
+#: cp/spew.c:1121
+msgid "parse error in method specification"
msgstr ""
-#: gcov.c:1224
-#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
+#: cp/spew.c:1161
+msgid "function body for constructor missing"
+msgstr "funktionskroppen för konstrueraren saknas"
+
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
msgstr ""
-#: gcov.c:1228
-#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+#: cp/spew.c:1419
+msgid "circular dependency in default args of `%#D'"
msgstr ""
-#: gcov.c:1233
-#, c-format
-msgid "No branches in file %s\n"
-msgstr "Inga hopp i fil %s\n"
+#: cp/spew.c:1483
+#, fuzzy
+msgid "invalid type `%T' for default argument to `%T'"
+msgstr "ogiltigt typargument till \"%s\""
-#: gcov.c:1235
+#: cp/spew.c:1548
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr ""
+msgid "%s before `%s'"
+msgstr "%s före \"%s\""
-#: gcov.c:1239
+#: cp/spew.c:1550
#, c-format
-msgid "No calls in file %s\n"
-msgstr "Inga anrop i fil %s\n"
+msgid "%s before `%c'"
+msgstr "%s före \"%c\""
-#: gcov.c:1251
+#: cp/spew.c:1552
#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "Kunde inte öppna källkodsfil %s.\n"
+msgid "%s before `\\%o'"
+msgstr "%s före \"\\%o\""
-#: gcov.c:1301
+#: cp/spew.c:1555
#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "Kunde inte öppna utdatafil %s.\n"
+msgid "%s before `%s' token"
+msgstr "%s före symbolen \"%s\""
-#: gcov.c:1309
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
-msgid "Creating %s.\n"
-msgstr "Skapar %s.\n"
+msgid "non-lvalue in %s"
+msgstr "icke-lvalue i %s"
-#: gcov.c:1353
-#, c-format
-msgid "call %d never executed\n"
-msgstr "anrop %d aldrig utfört\n"
+#: cp/tree.c:562
+#, fuzzy
+msgid "`%V' qualifiers cannot be applied to `%T'"
+msgstr "\"%s\" svarar inte på \"%s\""
-#: gcov.c:1358
-#, c-format
-msgid "call %d returns = %d\n"
-msgstr ""
+#: cp/tree.c:1941
+#, fuzzy, c-format
+msgid "`%s' attribute can only be applied to Java class definitions"
+msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: gcov.c:1362
-#, c-format
-msgid "call %d returns = %d%%\n"
-msgstr ""
+#: cp/tree.c:1971
+#, fuzzy, c-format
+msgid "`%s' attribute can only be applied to class definitions"
+msgstr "attributet \"%s\" fungerar bara på funktioner"
-#: gcov.c:1370
+#: cp/tree.c:1977
#, c-format
-msgid "branch %d never executed\n"
+msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr ""
-#: gcov.c:1376
-#, c-format
-msgid "branch %d taken = %d\n"
+#: cp/tree.c:2002
+msgid "requested init_priority is not an integer constant"
msgstr ""
-#: gcov.c:1380
+#: cp/tree.c:2023
#, c-format
-msgid "branch %d taken = %d%%\n"
+msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr ""
-#: gcov.c:1394
-#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
+#: cp/tree.c:2031
+msgid "requested init_priority is out of range"
msgstr ""
-#: gcse.c:766
-#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#: cp/tree.c:2041
+msgid "requested init_priority is reserved for internal use"
msgstr ""
-#: gcse.c:778
+#: cp/tree.c:2051
+#, fuzzy, c-format
+msgid "`%s' attribute is not supported on this platform"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
+
+#: cp/tree.c:2588
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
+msgid "lang_* check: failed in %s, at %s:%d"
msgstr ""
-#: haifa-sched.c:193
+#: cp/typeck.c:524
#, c-format
-msgid "fix_sched_param: unknown param: %s"
-msgstr "fix_sched_param: okänd param: %s"
-
-#: integrate.c:142
-msgid "function cannot be inline"
-msgstr "funktion \"%s\" kan inte deklareras som \"mutable\""
-
-#: integrate.c:147
-msgid "varargs function cannot be inline"
+msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
msgstr ""
-#: integrate.c:150
-msgid "function using alloca cannot be inline"
+#: cp/typeck.c:545
+msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
msgstr ""
-#: integrate.c:153
-msgid "function using setjmp cannot be inline"
+#: cp/typeck.c:1436
+msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr ""
-#: integrate.c:156
-msgid "function uses __builtin_eh_return"
-msgstr "funktion använder __builtin_eh_return"
+#: cp/typeck.c:1514
+#, fuzzy, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "destruerare kan inte vara en statisk medlemsfunktion"
-#: integrate.c:159
-msgid "function with nested functions cannot be inline"
-msgstr ""
+#: cp/typeck.c:1520
+#, fuzzy, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "\"sizeof\" applicerat på ett bitfält"
-#: integrate.c:163
-msgid "function with label addresses used in initializers cannot inline"
-msgstr ""
+#: cp/typeck.c:1538
+msgid "sizeof applied to a bit-field"
+msgstr "sizeof applicerat på ett bit-fält"
-#: integrate.c:170 integrate.c:214
-msgid "function too large to be inline"
-msgstr ""
+#: cp/typeck.c:1541
+msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+msgstr "ISO C++ förbjuder användning av \"sizeof\" på ett uttryck av funktionstyp"
-#: integrate.c:180
-msgid "no prototype, and parameter address used; cannot be inline"
+#: cp/typeck.c:1759
+msgid "deprecated conversion from string constant to `%T'"
msgstr ""
-#: integrate.c:187 integrate.c:232
-msgid "inline functions not supported for this return value type"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
msgstr ""
-#: integrate.c:192
-msgid "function with varying-size return value cannot be inline"
-msgstr ""
+#: cp/typeck.c:1916
+#, fuzzy
+msgid "`%D' is not a member of `%T'"
+msgstr "%s har ingen medlem med namn \"%s\""
-#: integrate.c:199
-msgid "function with varying-size parameter cannot be inline"
-msgstr ""
+#: cp/typeck.c:1957 cp/typeck.c:1978
+#, fuzzy
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "ogiltigt användande av \"restrict\""
-#: integrate.c:202
-msgid "function with transparent unit parameter cannot be inline"
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
msgstr ""
-#: integrate.c:221
-msgid "function with computed jump cannot inline"
+#: cp/typeck.c:2168
+#, fuzzy
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "%s har ingen medlem med namn \"%s\""
+
+#: cp/typeck.c:2179
+#, fuzzy
+msgid "`%T' is not a base of `%T'"
+msgstr "%s har ingen medlem med namn \"%s\""
+
+#: cp/typeck.c:2199
+msgid "destructor specifier `%T::~%T' must have matching names"
msgstr ""
-#: integrate.c:225
-msgid "function with nonlocal goto cannot be inline"
+#: cp/typeck.c:2205
+msgid "type `%T' has no destructor"
msgstr ""
-#: integrate.c:240
-msgid "function with target specific attribute(s) cannot be inlined"
+#: cp/typeck.c:2244
+#, fuzzy
+msgid "`%D' is not a member template function"
+msgstr "\"%s\" är vanligtvis en funktion"
+
+#. A pointer to incomplete type (other than cv void) can be
+#. dereferenced [expr.unary.op]/1
+#: cp/typeck.c:2338
+msgid "`%T' is not a pointer-to-object type"
msgstr ""
-#: java/check-init.c:731
+#: cp/typeck.c:2365
#, c-format
-msgid "internal error in check-init: tree code not implemented: %s"
+msgid "invalid use of `%s' on pointer to member"
msgstr ""
-#: java/class.c:543 java/class.c:568
-msgid "internal error - too many interface type"
-msgstr ""
+#: cp/typeck.c:2371
+msgid "invalid type argument"
+msgstr "ogiltigt typargument"
-#: java/class.c:702
-msgid "bad method signature"
+#: cp/typeck.c:2474
+msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr ""
-#: java/class.c:747
-msgid "misplaced ConstantValue attribute (not in any field)"
+#: cp/typeck.c:2485
+msgid "subscripting array declared `register'"
msgstr ""
-#: java/class.c:749
-#, c-format
-msgid "duplicate ConstanValue atribute for field '%s'"
-msgstr ""
+#: cp/typeck.c:2570
+#, fuzzy, c-format
+msgid "object missing in use of `%E'"
+msgstr "fältstorlek saknas i \"%s\""
+
+#: cp/typeck.c:2674
+msgid "ISO C++ forbids calling `::main' from within program"
+msgstr "ISO C++ förbjuder anrop av \"::main\" inifrån programmet"
-#: java/class.c:995
+#: cp/typeck.c:2699
#, c-format
-msgid "field '%s' not found in class"
+msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
msgstr ""
-#: java/class.c:1203
-msgid "abstract method in non-abstract class"
+#: cp/typeck.c:2712
+#, fuzzy, c-format
+msgid "`%E' cannot be used as a function"
+msgstr "fält \"%s\" deklarerad som en funktion"
+
+#: cp/typeck.c:2824
+#, fuzzy
+msgid "too many arguments to %s `%+#D'"
+msgstr "för många argument till funktionen \"%s\""
+
+#: cp/typeck.c:2865
+msgid "parameter type of called function is incomplete"
msgstr ""
-#: java/class.c:1821
-#, c-format
-msgid "non-static method '%s' overrides static method"
+#: cp/typeck.c:2928
+#, fuzzy
+msgid "too few arguments to %s `%+#D'"
+msgstr "för få argument till funktionen \"%s\""
+
+#: cp/typeck.c:3056 cp/typeck.c:3066
+msgid "assuming cast to type `%T' from overloaded function"
msgstr ""
-#: java/decl.c:1472
+#: cp/typeck.c:3126
#, c-format
-msgid "In %s: overlapped variable and exception ranges at %d"
+msgid "division by zero in `%E / 0'"
msgstr ""
-#: java/decl.c:1560
-msgid "bad type in parameter debug info"
+#: cp/typeck.c:3128
+#, c-format
+msgid "division by zero in `%E / 0.'"
msgstr ""
-#: java/decl.c:1570
+#: cp/typeck.c:3158
#, c-format
-msgid "bad PC range for debug info for local `%s'"
+msgid "division by zero in `%E %% 0'"
msgstr ""
-#: java/expr.c:546
-msgid "stack underflow - dup* operation"
+#: cp/typeck.c:3160
+#, c-format
+msgid "division by zero in `%E %% 0.'"
msgstr ""
-#: java/expr.c:1448
+#: cp/typeck.c:3240
#, c-format
-msgid ""
-"reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+msgid "%s rotate count is negative"
msgstr ""
-#: java/expr.c:1477
+#: cp/typeck.c:3243
#, c-format
-msgid "field `%s' not found"
+msgid "%s rotate count >= width of type"
msgstr ""
-#: java/expr.c:1628
-msgid "ret instruction not implemented"
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr "ISO C++ förbjuder jämförelse mellan pekare och heltal"
+
+#: cp/typeck.c:3553
+#, fuzzy
+msgid "comparison between types `%#T' and `%#T'"
+msgstr "jämförelse mellan pekare och heltal"
+
+#: cp/typeck.c:3589
+msgid "comparison between signed and unsigned integer expressions"
msgstr ""
-#: java/expr.c:1754
-#, c-format
-msgid "method '%s' not found in class"
-msgstr "metod \"%s\" kan inte hittas i klassen"
+#: cp/typeck.c:3654
+#, fuzzy
+msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+msgstr "ogiltiga operander till binär %s"
-#: java/expr.c:1890
-#, c-format
-msgid "failed to find class '%s'"
-msgstr "kunde inte hitta klassen \"%s\""
+#. Some sort of arithmetic operation involving NULL was
+#. performed. Note that pointer-difference and pointer-addition
+#. have already been handled above, and so we don't end up here in
+#. that case.
+#: cp/typeck.c:3676
+#, fuzzy
+msgid "NULL used in arithmetic"
+msgstr "pekare till funktion använd med aritmetik"
-#: java/expr.c:1902
-#, c-format
-msgid "Class '%s' has no method named '%s' matching signature '%s'"
+#: cp/typeck.c:3743
+msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
msgstr ""
-#: java/expr.c:1912
-msgid "invokestatic on non static method"
+#: cp/typeck.c:3745
+msgid "ISO C++ forbids using pointer to a function in subtraction"
msgstr ""
-#: java/expr.c:1917
-msgid "invokestatic on abstract method"
+#: cp/typeck.c:3747
+msgid "ISO C++ forbids using pointer to a method in subtraction"
msgstr ""
-#: java/expr.c:1925
-msgid "invoke[non-static] on static method"
+#: cp/typeck.c:3749
+msgid "ISO C++ forbids using pointer to a member in subtraction"
msgstr ""
-#: java/expr.c:2202
-#, c-format
-msgid "Missing field '%s' in '%s'"
+#: cp/typeck.c:3761
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
msgstr ""
-#: java/expr.c:2208
+#: cp/typeck.c:3821
#, c-format
-msgid "Mismatching signature for field '%s' in '%s'"
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
msgstr ""
-#: java/expr.c:2247
+#: cp/typeck.c:3827
#, c-format
-msgid "assignment to final field `%s' not in field's class"
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
msgstr ""
-#: java/expr.c:2252
-#, c-format
-msgid "assignment to final static field `%s' not in class initializer"
-msgstr ""
+#: cp/typeck.c:3850
+msgid "taking address of temporary"
+msgstr "tar adress till något temporärt"
-#: java/expr.c:2259
+#: cp/typeck.c:4091
#, c-format
-msgid "assignment to final field `%s' not in constructor"
+msgid "ISO C++ forbids %sing an enum"
msgstr ""
-# fixme: spola tillbaka är inte perfekt
-#: java/expr.c:2514
-#, c-format
-msgid "Can't expand %s"
-msgstr ""
+#: cp/typeck.c:4103
+#, fuzzy
+msgid "cannot %s a pointer to incomplete type `%T'"
+msgstr "parameter \"%s\" pekar på inkomplett typ"
-#: java/expr.c:2690
-msgid "invalid PC in line number table"
-msgstr ""
+#: cp/typeck.c:4110
+#, fuzzy
+msgid "ISO C++ forbids %sing a pointer of type `%T'"
+msgstr "ISO C++ förbjuder användning av pekare av typ \"void *\" i pekararitmetik"
-#. We've just reached the end of a region of dead code.
-#: java/expr.c:2735
-#, c-format
-msgid "Unreachable bytecode from %d to before %d."
+#: cp/typeck.c:4135
+msgid "cast to non-reference type used as lvalue"
msgstr ""
-#. We've just reached the end of a region of dead code.
-#: java/expr.c:2772
-#, c-format
-msgid "Unreachable bytecode from %d to the end of the method."
+#: cp/typeck.c:4169
+msgid "invalid use of `--' on bool variable `%D'"
msgstr ""
-#. duplicate code from LOAD macro
-#: java/expr.c:3091
-msgid "unrecogized wide sub-instruction"
-msgstr ""
+#. ARM $3.4
+#: cp/typeck.c:4202
+msgid "ISO C++ forbids taking address of function `::main'"
+msgstr "ISO C++ förbjuder att man tar adressen till funktionen \"::main\""
-#: java/jcf-io.c:416
-#, c-format
-msgid ""
-"Source file for class `%s' is newer than its matching class file. Source "
-"file used instead"
+#. An expression like &memfn.
+#: cp/typeck.c:4269
+msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
msgstr ""
-#: java/jcf-parse.c:375
-msgid "bad string constant"
+#: cp/typeck.c:4271
+#, fuzzy
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+msgstr "ISO C++ förbjuder användning av pekare till medlemsfunktion i pekararitmetik"
+
+#: cp/typeck.c:4295
+msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
msgstr ""
-#: java/jcf-parse.c:431
-#, c-format
-msgid "bad value constant type %d, index %d"
+#: cp/typeck.c:4324
+#, fuzzy
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "kan inte ta adressen till bitfält \"%s\""
+
+#: cp/typeck.c:4444
+#, fuzzy
+msgid "taking address of destructor"
+msgstr "tar adress till något temporärt"
+
+#: cp/typeck.c:4457
+msgid "taking address of bound pointer-to-member expression"
msgstr ""
-#: java/jcf-parse.c:663
-#, c-format
-msgid "Cannot find file for class %s."
-msgstr "Kan inte hitta filen med klass %s."
+#: cp/typeck.c:4473
+#, fuzzy
+msgid "cannot create pointer to reference member `%D'"
+msgstr "kan inte deklarera pekare till referenser"
-#: java/jcf-parse.c:675
-msgid "not a valid Java .class file"
+#: cp/typeck.c:4536
+msgid "cannot take the address of `this', which is an rvalue expression"
+msgstr "Kan inte ta adressen till \"this\", som är ett rvalue-uttryck"
+
+#: cp/typeck.c:4555
+msgid "address requested for `%D', which is declared `register'"
msgstr ""
-#: java/jcf-parse.c:678
-msgid "error while parsing constant pool"
+#: cp/typeck.c:4682
+msgid "static_cast from type `%T' to type `%T' casts away constness"
msgstr ""
-#: java/jcf-parse.c:681
-#, c-format
-msgid "error in constant pool entry #%d\n"
+#: cp/typeck.c:4871
+msgid "invalid static_cast from type `%T' to type `%T'"
msgstr ""
-#. FIXME - where was first time
-#: java/jcf-parse.c:693
-#, c-format
-msgid "reading class %s for the second time from %s"
+#: cp/typeck.c:4910
+msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
msgstr ""
-#: java/jcf-parse.c:711
-msgid "error while parsing fields"
+#: cp/typeck.c:4930
+msgid "reinterpret_cast from `%T' to `%T' loses precision"
msgstr ""
-#: java/jcf-parse.c:714
-msgid "error while parsing methods"
+#: cp/typeck.c:4943
+msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
msgstr ""
-#: java/jcf-parse.c:717
-msgid "error while parsing final attributes"
+#: cp/typeck.c:4952
+msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
msgstr ""
-#: java/jcf-parse.c:731
-#, c-format
-msgid ""
-"The `java.lang.Object' that was found in `%s' didn't have the special zero-"
-"length `gnu.gcj.gcj-compiled' attribute. This generally means that your "
-"classpath is incorrect set. Use `info gcj \"Input Options\"' to see the info "
-"page describing how to set the classpath."
+#: cp/typeck.c:4958
+msgid "invalid reinterpret_cast from type `%T' to type `%T'"
msgstr ""
-#: java/jcf-parse.c:804
-msgid "missing Code attribute"
+#: cp/typeck.c:4985
+msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
msgstr ""
-#: java/jcf-parse.c:948 toplev.c:2478
-#, c-format
-msgid "error closing %s"
-msgstr "fel vid stängning av %s"
+#: cp/typeck.c:4988
+msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+msgstr ""
-#: java/jcf-parse.c:1029
-msgid "source file seen twice on command line and will be compiled only once."
+#: cp/typeck.c:5011
+msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
msgstr ""
-#: java/jcf-parse.c:1045
-msgid "no input file specified"
+#: cp/typeck.c:5027
+msgid "invalid const_cast from type `%T' to type `%T'"
msgstr ""
-#: java/jcf-parse.c:1061
-#, c-format
-msgid "can't close input file %s"
+#: cp/typeck.c:5069 cp/typeck.c:5074
+#, fuzzy
+msgid "ISO C++ forbids casting to an array type `%T'"
+msgstr "ISO C förbjuder typkonvertering till unionstyper"
+
+#: cp/typeck.c:5082
+#, fuzzy
+msgid "invalid cast to function type `%T'"
+msgstr "ogiltig lagringsklass för funktion \"%s\""
+
+#: cp/typeck.c:5138
+msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
msgstr ""
-#: java/jcf-parse.c:1075
-#, c-format
-msgid "Premature end of input file %s"
+#: cp/typeck.c:5184
+msgid "cast from `%T' to `%T' increases required alignment of target type"
msgstr ""
-#: java/jcf-parse.c:1098
-#, c-format
-msgid "bad zip/jar file %s"
+#: cp/typeck.c:5357
+msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr ""
-#: java/jcf-write.c:2597
-#, c-format
-msgid ""
-"internal error in generate_bytecode_insn - tree code not implemented: %s"
+#: cp/typeck.c:5399
+msgid "ISO C++ forbids cast to non-reference type used as lvalue"
msgstr ""
-#: java/jcf-write.c:3307
-#, c-format
-msgid "can't create directory %s"
-msgstr "kan inte skapa katalog %s"
+#: cp/typeck.c:5463
+#, fuzzy
+msgid "incompatible types in assignment of `%T' to `%T'"
+msgstr "inkompatibla typer i %s"
-#: java/jcf-write.c:3334
-#, c-format
-msgid "can't to open %s"
-msgstr "kan inte öppna %s"
+#: cp/typeck.c:5470
+msgid "ISO C++ forbids assignment of arrays"
+msgstr "ISO C++ förbjuder tilldelning av fält"
-#: java/jv-scan.c:183
-msgid "Only one of `--print-main', `--list-class', and `--complexity' allowed"
+#: cp/typeck.c:5577
+msgid " in pointer to member function conversion"
msgstr ""
-#: java/jv-scan.c:186
-#, c-format
-msgid "Can't open output file `%s'"
-msgstr "Kan inte öppna utdatafil \"%s\""
-
-#: java/jv-scan.c:222
-#, c-format
-msgid "File not found `%s'"
-msgstr "Kan inte hitta filen \"%s\""
+#: cp/typeck.c:5585
+msgid " in pointer to member conversion"
+msgstr ""
-#: java/jvspec.c:361
-msgid "can't specify `-D' without `--main'\n"
+#. This is a reinterpret cast, we choose to do nothing.
+#: cp/typeck.c:5596 cp/typeck.c:5615
+msgid "pointer to member cast via virtual base `%T' of `%T'"
msgstr ""
-#: java/jvspec.c:369
-msgid "Warning: already-compiled .class files ignored with -C"
+#: cp/typeck.c:5619
+msgid "pointer to member conversion via virtual base `%T' of `%T'"
msgstr ""
-#: java/jvspec.c:376
-msgid "cannot specify both -C and -o"
-msgstr "kan inte ange både -C och -o"
+#: cp/typeck.c:5695
+#, fuzzy
+msgid "invalid conversion to type `%T' from type `%T'"
+msgstr "ogiltig mottagartyp \"%s\""
-#: java/jvspec.c:388
-msgid "cannot create temporary file"
+#: cp/typeck.c:5860
+msgid "passing NULL used for non-pointer %s %P of `%D'"
msgstr ""
-#: java/jvspec.c:416
-msgid "using both @FILE with multiple files not implemented"
+#: cp/typeck.c:5863
+msgid "%s to non-pointer type `%T' from NULL"
msgstr ""
-#: java/jvspec.c:457
-msgid "cannot specify `main' class when not linking"
+#: cp/typeck.c:5871
+msgid "passing `%T' for %s %P of `%D'"
msgstr ""
-#: java/lang-options.h:32
-msgid "Disable automatic array bounds checking"
+#: cp/typeck.c:5874
+msgid "%s to `%T' from `%T'"
msgstr ""
-#: java/lang-options.h:34
-msgid "Make is_compiled_class return 1"
+#: cp/typeck.c:5884
+msgid "passing negative value `%E' for %s %P of `%D'"
msgstr ""
-#: java/lang-options.h:38
-msgid "Dump class files to <name>.class"
+#: cp/typeck.c:5887
+msgid "%s of negative value `%E' to `%T'"
msgstr ""
-#: java/lang-options.h:40
-msgid "input file is list of file names to compile"
+#: cp/typeck.c:5982
+msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr ""
-#: java/lang-options.h:42
-msgid "Generate code for Boehm GC"
-msgstr "Generera kod för Boehm GC"
+#: cp/typeck.c:5985
+#, fuzzy
+msgid "cannot convert `%T' to `%T' in %s"
+msgstr "kan inte konvertera till en pekartyp"
-#: java/lang-options.h:44
-msgid "Don't put synchronization structure in each object"
-msgstr ""
+#: cp/typeck.c:6073 cp/typeck.c:6075
+#, fuzzy
+msgid "in passing argument %P of `%+D'"
+msgstr "Saknar argument till flaggan \"%s\""
-#: java/lang-options.h:46
-msgid "Assume native functions are implemented using JNI"
+#: cp/typeck.c:6190
+msgid "returning reference to temporary"
+msgstr "returnerar referens till en temporär"
+
+#: cp/typeck.c:6197
+msgid "reference to non-lvalue returned"
msgstr ""
-#: java/lang-options.h:48
-msgid "Set class path and suppress system path"
+#: cp/typeck.c:6209
+#, fuzzy
+msgid "reference to local variable `%D' returned"
+msgstr "adress på global registervariabel \"%s\" efterfrågad"
+
+#: cp/typeck.c:6212
+#, fuzzy
+msgid "address of local variable `%D' returned"
+msgstr "adress på global registervariabel \"%s\" efterfrågad"
+
+#: cp/typeck.c:6243
+msgid "returning a value from a destructor"
+msgstr "returnerar ett värde från en destruktor"
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.c:6251
+msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr ""
-#: java/lang-options.h:50
-msgid "Set class path"
+#. You can't return a value from a constructor.
+#: cp/typeck.c:6254
+msgid "returning a value from a constructor"
msgstr ""
-#: java/lang-options.h:52
-msgid "Choose class whose main method should be used"
+#: cp/typeck.c:6271
+msgid "return-statement with no value, in function declared with a non-void return type"
msgstr ""
-#: java/lang-options.h:54
-msgid "Choose input encoding (default is UTF-8)"
+#: cp/typeck.c:6287
+msgid "return-statement with a value, in function declared with a void return type"
msgstr ""
-#: java/lang-options.h:56
-msgid "Add directory to class path"
+#: cp/typeck.c:6308
+msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr ""
-#: java/lang-options.h:58
-msgid "Directory where class files should be written"
+#: cp/typeck2.c:54
+msgid "type `%T' is not a base type for type `%T'"
msgstr ""
-#: java/lang-options.h:61
-msgid "Use built-in instructions for division"
+#: cp/typeck2.c:157
+#, fuzzy
+msgid "cannot declare variable `%D' to be of type `%T'"
+msgstr "kan inte deklarera \"::main\" som en mall"
+
+#: cp/typeck2.c:160
+#, fuzzy
+msgid "cannot declare parameter `%D' to be of type `%T'"
+msgstr "kan inte deklarera \"::main\" som en mall"
+
+#: cp/typeck2.c:163
+#, fuzzy
+msgid "cannot declare field `%D' to be of type `%T'"
+msgstr "kan inte deklarera \"::main\" som en mall"
+
+#: cp/typeck2.c:167
+#, fuzzy
+msgid "invalid return type for member function `%#D'"
+msgstr "ogiltig lagringsklass för funktion \"%s\""
+
+#: cp/typeck2.c:169
+#, fuzzy
+msgid "invalid return type for function `%#D'"
+msgstr "ogiltig lagringsklass för funktion \"%s\""
+
+#: cp/typeck2.c:172
+#, fuzzy
+msgid "cannot allocate an object of type `%T'"
+msgstr "statisk access till objekt av typ \"id\""
+
+#: cp/typeck2.c:179
+msgid " because the following virtual functions are abstract:"
msgstr ""
-#: java/lang-options.h:63
-msgid "Generate null pointer checks inline"
+#: cp/typeck2.c:181
+msgid "\t%#D"
msgstr ""
-#: java/lang-options.h:65
-msgid "Warn if modifiers are specified when not necessary"
+#: cp/typeck2.c:184
+msgid " since type `%T' has abstract virtual functions"
msgstr ""
-#: java/lang-options.h:67
-msgid "Warn if deprecated empty statements are found"
+#: cp/typeck2.c:338
+msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr ""
-#: java/lang-options.h:69
-msgid "Warn if .class files are out of date"
+#: cp/typeck2.c:349
+msgid "comma expression used to initialize return value"
msgstr ""
-#: java/lang-options.h:71
-msgid "Always check for non gcj generated classes archives"
+#: cp/typeck2.c:358
+msgid "cannot initialize arrays using this syntax"
msgstr ""
-#: java/lang.c:391
-msgid "can't do dependency tracking with input from stdin"
+#: cp/typeck2.c:473
+msgid "initializing array with parameter list"
msgstr ""
-#: java/lang.c:407
-msgid "couldn't determine target name for dependency tracking"
+#: cp/typeck2.c:529
+msgid "initializer for scalar variable requires one element"
msgstr ""
-#: java/lex.c:297
-#, c-format
-msgid ""
-"unknown encoding: `%s'\n"
-"This might mean that your locale's encoding is not supported\n"
-"by your system's iconv(3) implementation. If you aren't trying\n"
-"to use a particular encoding for your input file, try the\n"
-"`--encoding=UTF-8' option."
+#: cp/typeck2.c:536
+msgid "braces around scalar initializer for `%T'"
msgstr ""
-#: java/mangle.c:85
-#, c-format
-msgid "Can't mangle %s"
+#: cp/typeck2.c:539
+msgid "ignoring extra initializers for `%T'"
msgstr ""
-#: java/mangle_name.c:151 java/mangle_name.c:228
-msgid "internal error - invalid Utf8 name"
-msgstr "internt fel - ogiltigt Utf8-namn"
+#: cp/typeck2.c:551
+#, fuzzy
+msgid "variable-sized object of type `%T' may not be initialized"
+msgstr "objekt med variabel storlek kan inte initieras"
-#: java/parse.y:737 java/parse.y:775
-msgid "Missing name"
+#: cp/typeck2.c:561
+msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr ""
-#: java/parse.y:739 java/parse.y:777 java/parse.y:796 java/parse.y:977
-#: java/parse.y:1324 java/parse.y:1527 java/parse.y:1529 java/parse.y:1758
-#: java/parse.y:1784 java/parse.y:1795 java/parse.y:1806 java/parse.y:1818
-msgid "';' expected"
+#: cp/typeck2.c:627
+msgid "aggregate has a partly bracketed initializer"
msgstr ""
-#: java/parse.y:794
-msgid "'*' expected"
+#: cp/typeck2.c:665 cp/typeck2.c:770
+msgid "non-trivial labeled initializers"
msgstr ""
-#: java/parse.y:808
-msgid "Class or interface declaration expected"
+#: cp/typeck2.c:682
+msgid "non-empty initializer for array of empty elements"
msgstr ""
-#: java/parse.y:843 java/parse.y:845
-msgid "Missing class name"
+#: cp/typeck2.c:736
+msgid "initializer list for object of class with virtual base classes"
msgstr ""
-#: java/parse.y:848 java/parse.y:852 java/parse.y:860 java/parse.y:1022
-#: java/parse.y:1270 java/parse.y:1272 java/parse.y:1593 java/parse.y:1829
-#: java/parse.y:1861 java/parse.y:1913
-msgid "'{' expected"
+#: cp/typeck2.c:742
+msgid "initializer list for object of class with base classes"
msgstr ""
-#: java/parse.y:862
-msgid "Missing super class name"
+#: cp/typeck2.c:748
+msgid "initializer list for object using virtual functions"
msgstr ""
-#: java/parse.y:872 java/parse.y:888
-msgid "Missing interface name"
-msgstr ""
+#: cp/typeck2.c:811 cp/typeck2.c:827
+#, fuzzy
+msgid "missing initializer for member `%D'"
+msgstr "saknar mellanrum efter nummer \"%.*s\""
-#. That's for ()
-#: java/parse.y:956 java/parse.y:1289 java/parse.y:1348 java/parse.y:1551
-#: java/parse.y:1773 java/parse.y:1782 java/parse.y:1793 java/parse.y:1804
-#: java/parse.y:1816 java/parse.y:1833 java/parse.y:1835 java/parse.y:1906
-#: java/parse.y:2077 java/parse.y:2138 java/parse.y:2292 java/parse.y:2294
-#: java/parse.y:2301 java/parse.y:2308 java/parse.y:2319 java/parse.y:2321
-#: java/parse.y:2358 java/parse.y:2360 java/parse.y:2362 java/parse.y:2383
-#: java/parse.y:2385 java/parse.y:2387 java/parse.y:2403 java/parse.y:2405
-#: java/parse.y:2426 java/parse.y:2428 java/parse.y:2430 java/parse.y:2458
-#: java/parse.y:2460 java/parse.y:2462 java/parse.y:2464 java/parse.y:2482
-#: java/parse.y:2484 java/parse.y:2495 java/parse.y:2506 java/parse.y:2517
-#: java/parse.y:2528 java/parse.y:2539 java/parse.y:2552 java/parse.y:2556
-#: java/parse.y:2558 java/parse.y:2571
-msgid "Missing term"
-msgstr ""
+#: cp/typeck2.c:816
+#, fuzzy
+msgid "uninitialized const member `%D'"
+msgstr "upprepning av medlem \"%s\""
-#: java/parse.y:971
-msgid "Missing variable initializer"
-msgstr ""
+#: cp/typeck2.c:818
+#, fuzzy
+msgid "member `%D' with uninitialized const fields"
+msgstr "parameter \"%s\" är initierad"
-#: java/parse.y:988
-msgid "Invalid declaration"
-msgstr ""
+#: cp/typeck2.c:821
+#, fuzzy
+msgid "member `%D' is uninitialized reference"
+msgstr "parameter \"%s\" är initierad"
-#: java/parse.y:994
-msgid "Can't specify array dimension in a declaration"
+#: cp/typeck2.c:868
+msgid "index value instead of field name in union initializer"
msgstr ""
-#: java/parse.y:996 java/parse.y:1072 java/parse.y:2113 java/parse.y:2135
-#: java/parse.y:2139 java/parse.y:2174 java/parse.y:2251 java/parse.y:2261
-msgid "']' expected"
+#: cp/typeck2.c:880
+#, fuzzy
+msgid "no field `%D' in union being initialized"
+msgstr "fält \"%s\" är redan initierat"
+
+#: cp/typeck2.c:888
+msgid "union `%T' with no named members cannot be initialized"
msgstr ""
-#: java/parse.y:1000
-msgid "Unbalanced ']'"
+#: cp/typeck2.c:924
+msgid "excess elements in aggregate initializer"
msgstr ""
-#: java/parse.y:1036
-msgid "Invalid method declaration, method name required"
+#: cp/typeck2.c:1038
+msgid "circular pointer delegation detected"
msgstr ""
-#: java/parse.y:1042 java/parse.y:1044 java/parse.y:1997
-msgid "Identifier expected"
+#: cp/typeck2.c:1051
+#, fuzzy
+msgid "base operand of `->' has non-pointer type `%T'"
+msgstr "basoperanden till \"->\" är inte en pekare"
+
+#: cp/typeck2.c:1065
+msgid "result of `operator->()' yields non-pointer result"
msgstr ""
-#: java/parse.y:1047
-msgid "Invalid method declaration, return type required"
+#: cp/typeck2.c:1067
+msgid "base operand of `->' is not a pointer"
+msgstr "basoperanden till \"->\" är inte en pekare"
+
+#: cp/typeck2.c:1133
+msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
msgstr ""
-#: java/parse.y:1070 java/parse.y:1507 java/parse.y:1514 java/parse.y:1523
-#: java/parse.y:1525 java/parse.y:1553 java/parse.y:1661 java/parse.y:1942
-#: java/parse.y:1995
-msgid "')' expected"
+#: cp/typeck2.c:1140
+msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
msgstr ""
-#: java/parse.y:1086
-msgid "Missing formal parameter term"
+#: cp/typeck2.c:1149
+msgid "member type `%T::' incompatible with object type `%T'"
msgstr ""
-#: java/parse.y:1101 java/parse.y:1106
-msgid "Missing identifier"
+#: cp/typeck2.c:1186
+msgid "`%T' fails to be a typedef or built-in type"
msgstr ""
-#: java/parse.y:1126 java/parse.y:1135
-msgid "Missing class type term"
+#: cp/typeck2.c:1259
+#, c-format
+msgid "ISO C++ forbids defining types within %s"
msgstr ""
-#: java/parse.y:1287
-msgid "Invalid interface type"
+#: cp/typeck2.c:1384
+#, fuzzy
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "parameter \"%s\" pekar på inkomplett typ"
+
+#: cp/typeck2.c:1387
+#, fuzzy
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "parameter \"%s\" pekar på inkomplett typ"
+
+#. XXX Not i18n clean.
+#: cp/cp-tree.h:3936
+#, c-format
+msgid "%s is deprecated, please see the documentation for details"
msgstr ""
-#: java/parse.y:1471 java/parse.y:1640 java/parse.y:1642
-msgid "':' expected"
+#: cp/lang-options.h:29
+msgid "Do not obey access control semantics"
msgstr ""
-#: java/parse.y:1493 java/parse.y:1498 java/parse.y:1503
-msgid "Invalid expression statement"
+#: cp/lang-options.h:31
+msgid "Change when template instances are emitted"
msgstr ""
-#: java/parse.y:1521 java/parse.y:1549 java/parse.y:1589 java/parse.y:1657
-#: java/parse.y:1725 java/parse.y:1831 java/parse.y:1899 java/parse.y:1989
-#: java/parse.y:1991 java/parse.y:1999 java/parse.y:2234 java/parse.y:2236
-msgid "'(' expected"
+#: cp/lang-options.h:36
+msgid "Check the return value of new"
msgstr ""
-#: java/parse.y:1591
-msgid "Missing term or ')'"
+#: cp/lang-options.h:39
+msgid "Reduce size of object files"
msgstr ""
-#: java/parse.y:1638
-msgid "Missing or invalid constant expression"
+#: cp/lang-options.h:43
+msgid "Make string literals `char[]' instead of `const char[]'"
msgstr ""
-#: java/parse.y:1659
-msgid "Missing term and ')' expected"
+#: cp/lang-options.h:46
+msgid "Dump the entire translation unit to a file"
msgstr ""
-#: java/parse.y:1698
-msgid "Invalid control expression"
+#: cp/lang-options.h:48
+msgid "Do not inline member functions by default"
msgstr ""
-#: java/parse.y:1700 java/parse.y:1702
-msgid "Invalid update expression"
+#: cp/lang-options.h:51
+msgid "Do not generate run time type descriptor information"
msgstr ""
-#: java/parse.y:1727
-msgid "Invalid init statement"
+#: cp/lang-options.h:56
+msgid "Do not generate code to check exception specifications"
msgstr ""
-#: java/parse.y:1902
-msgid "Missing term or ')' expected"
+#: cp/lang-options.h:61
+msgid "Scope of for-init-statement vars extends outside"
msgstr ""
-#: java/parse.y:1944
-msgid "'class' or 'this' expected"
+#: cp/lang-options.h:64
+msgid "Do not recognize GNU defined keywords"
msgstr ""
-#: java/parse.y:1946 java/parse.y:1948
-msgid "'class' expected"
+#: cp/lang-options.h:68
+msgid "Enable support for huge objects"
msgstr ""
-#: java/parse.y:1993
-msgid "')' or term expected"
+#: cp/lang-options.h:72
+msgid "Export functions even if they can be inlined"
msgstr ""
-#: java/parse.y:2111
-msgid "'[' expected"
+#: cp/lang-options.h:75
+#, fuzzy
+msgid "Only emit explicit template instantiations"
+msgstr "Slå på automatisk mallinstansiering"
+
+#: cp/lang-options.h:78
+#, fuzzy
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "%s: Vid instansiering av \"%s\":\n"
+
+#: cp/lang-options.h:84
+msgid "Don't pedwarn about uses of Microsoft extensions"
msgstr ""
-#: java/parse.y:2189
-msgid "Field expected"
+#: cp/lang-options.h:87
+#, fuzzy
+msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+msgstr "Känn igen and/bitand/bitor/compl/not/or/xor"
+
+#: cp/lang-options.h:91
+msgid "Disable optional diagnostics"
msgstr ""
-#: java/parse.y:2246 java/parse.y:2256
-msgid "Missing term and ']' expected"
+#: cp/lang-options.h:93
+msgid "Downgrade conformance errors to warnings"
msgstr ""
-#: java/parse.y:2351
-msgid "']' expected, invalid type expression"
+#: cp/lang-options.h:96
+msgid "Enable automatic template instantiation"
+msgstr "Slå på automatisk mallinstansiering"
+
+#: cp/lang-options.h:101
+msgid "Display statistics accumulated during compilation"
msgstr ""
-#: java/parse.y:2354
-msgid "Invalid type expression"
+#: cp/lang-options.h:104
+msgid "Specify maximum template instantiation depth"
+msgstr "Ange maximalt instansieringsdjup för mallar"
+
+#: cp/lang-options.h:106
+msgid "Use __cxa_atexit to register destructors"
msgstr ""
-#: java/parse.y:2466
-msgid "Invalid reference type"
+#: cp/lang-options.h:109
+msgid "Discard unused virtual functions"
msgstr ""
-#: java/parse.y:2944
-msgid "Constructor invocation must be first thing in a constructor"
+#: cp/lang-options.h:112
+msgid "Implement vtables using thunks"
msgstr ""
-#: java/parse.y:2946
-msgid "Only constructors can invoke constructors"
+#: cp/lang-options.h:115
+msgid "Emit common-like symbols as weak symbols"
msgstr ""
-#: java/parse.y:2955
-#, c-format
-msgid ": `%s' JDK1.1(TM) feature"
+#: cp/lang-options.h:118
+msgid "Emit cross referencing information"
msgstr ""
-#: java/parse.y:3015 java/parse.y:3017
-#, c-format
-msgid ""
-"%s.\n"
-"%s"
+#: cp/lang-options.h:122
+msgid "Warn about inconsistent return types"
msgstr ""
-"%s.\n"
-"%s"
-#: java/parse.y:3480
-msgid "Can't use '$' as a separator for inner classes"
+#: cp/lang-options.h:125
+msgid "Warn about overloaded virtual function names"
msgstr ""
-#: java/parse.y:6577
-#, c-format
-msgid "malformed .zip archive in CLASSPATH: %s"
+#: cp/lang-options.h:129
+msgid "Don't warn when all ctors/dtors are private"
msgstr ""
-#: java/parse.y:6648
-#, c-format
-msgid ""
-"Can't find default package `%s'. Check the CLASSPATH environment variable "
-"and the access to the archives."
+#: cp/lang-options.h:131
+msgid "Warn about non virtual destructors"
msgstr ""
-#: java/parse.y:11777
-#, c-format
-msgid "missing static field `%s'"
+#: cp/lang-options.h:134
+msgid "Warn when a function is declared extern, then inline"
msgstr ""
-#: java/parse.y:11782
-#, c-format
-msgid "not a static field `%s'"
+#: cp/lang-options.h:137
+msgid "Warn when the compiler reorders code"
msgstr ""
-#: java/parse.y:11835
-#, c-format
-msgid "No case for %s"
+#: cp/lang-options.h:140
+msgid "Warn when synthesis behavior differs from Cfront"
msgstr ""
-#: java/parse.y:13023
-#, c-format
-msgid "unregistered operator %s"
+#: cp/lang-options.h:144
+msgid "Don't warn when type converting pointers to member functions"
msgstr ""
-#: java/typeck.c:557
-msgid "junk at end of signature string"
+#: cp/lang-options.h:146
+msgid "Warn about violations of Effective C++ style rules"
msgstr ""
-#: java/verify.c:464
-msgid "bad pc in exception_table"
+#: cp/lang-options.h:149
+msgid "Warn when overload promotes from unsigned to signed"
msgstr ""
-#: java/verify.c:1376
-#, c-format
-msgid "unknown opcode %d@pc=%d during verification"
+#: cp/lang-options.h:152
+msgid "Warn if a C style cast is used in a program"
msgstr ""
-#: java/verify.c:1446 java/verify.c:1459 java/verify.c:1463
-#, c-format
-msgid "verification error at PC=%d"
+#: cp/lang-options.h:156
+msgid "Don't warn when non-templatized friend functions are declared within a template"
msgstr ""
-#: objc/lang-options.h:27
-msgid "Dump decls to a .decl file"
+#: cp/lang-options.h:159
+msgid "Don't announce deprecation of compiler features"
msgstr ""
-#: objc/lang-options.h:29
-msgid "Generate code for GNU runtime environment"
+#: f/bad.c:387
+msgid "note:"
msgstr ""
-#: objc/lang-options.h:32
-msgid "Generate code for NeXT runtime environment"
+#: f/bad.c:391
+#, fuzzy
+msgid "warning:"
+msgstr "varning: "
+
+#: f/bad.c:395
+msgid "fatal:"
msgstr ""
-#: objc/lang-options.h:35
-msgid "Warn if a selector has multiple methods"
+#: f/bad.c:437
+msgid "(continued):"
msgstr ""
-#: objc/lang-options.h:39
-msgid "Do not warn if inherited methods are unimplemented"
+#: f/bad.c:487 f/bad.c:505
+msgid "[REPORT BUG!!] %"
msgstr ""
-#: objc/lang-options.h:41
-msgid "Generate C header of platform specific features"
+#: f/bad.c:494 f/bad.c:526
+msgid "[REPORT BUG!!]"
msgstr ""
-#: objc/lang-options.h:43
-msgid "Specify the name of the class for constant strings"
+#: f/com.c:3132
+#, no-c-format
+msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr ""
-#: objc/objc-act.c:829
-msgid "no class name specified as argument to -fconstant-string-class"
+#: f/com.c:11623
+msgid "no INTEGER type can hold a pointer on this configuration"
msgstr ""
-#: objc/objc-act.c:990
+#: f/com.c:11844
#, c-format
-msgid "object does not conform to the `%s' protocol"
+msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
msgstr ""
-#: objc/objc-act.c:1028
+#: f/com.c:11846
#, c-format
-msgid "class `%s' does not implement the `%s' protocol"
-msgstr "klass \"%s\" implementerar inte protokollet \"%s\""
+msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+msgstr ""
-#: objc/objc-act.c:1166
-#, c-format
-msgid "Unexpected type for `id' (%s)"
-msgstr "Oväntad typ på \"id\" (%s)"
+#: f/com.c:11848
+msgid "properly unless they all are 32 bits wide"
+msgstr ""
-#: objc/objc-act.c:1171
-msgid "Undefined type `id', please import <objc/objc.h>"
+#: f/com.c:11849
+msgid "Please keep this in mind before you report bugs."
msgstr ""
-#: objc/objc-act.c:1219 objc/objc-act.c:5363
+#. I/O will probably crash.
+#: f/com.c:11857
#, c-format
-msgid "Cannot find protocol declaration for `%s'"
+msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr ""
-#: objc/objc-act.c:1449 objc/objc-act.c:5888 objc/objc-act.c:6197
-#: objc/objc-act.c:6246 objc/objc-act.c:6282 objc/objc-parse.y:1781
+#. ASSIGN 10 TO I will crash.
+#: f/com.c:11866
#, c-format
-msgid "Cannot find interface declaration for `%s'"
+msgid ""
+"configuration: char * holds %d bits, but INTEGER only %d --\n"
+" ASSIGN statement might fail"
msgstr ""
-#: objc/objc-act.c:1469
-#, c-format
-msgid "Cannot find reference tag for class `%s'"
+#: f/com.c:13681
+#, fuzzy
+msgid "In statement function"
+msgstr "för många argument till funktion"
+
+#: f/com.c:13691
+msgid "Outside of any program unit:\n"
msgstr ""
-#: objc/objc-act.c:2468
-#, c-format
-msgid "Cannot find class `%s'"
-msgstr "Kan inte hitta klass \"%s\""
+#: f/com.c:15320
+#, no-c-format
+msgid "%A from %B at %0%C"
+msgstr ""
-#: objc/objc-act.c:2470
-#, c-format
-msgid "Class `%s' already exists"
-msgstr "Klass \"%s\" finns redan"
+#: f/com.c:15497
+#, fuzzy
+msgid "directory name must immediately follow -I"
+msgstr "Katalognamn måste komma direkt efter -I"
-#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2594
-#, c-format
-msgid "Cannot find interface declaration for `%s', superclass of `%s'"
+#: f/com.c:15640
+#, no-c-format
+msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr ""
-#: objc/objc-act.c:2601
-#, c-format
-msgid "Circular inheritance in interface declaration for `%s'"
-msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
+#: f/com.c:15675
+#, no-c-format
+msgid "At %0, INCLUDE nesting too deep"
+msgstr ""
-#: objc/objc-act.c:3654 objc/objc-act.c:3671
-msgid "inconsistent instance variable specification"
+#: f/expr.c:9614
+#, no-c-format
+msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
msgstr ""
-#: objc/objc-act.c:4859
-#, c-format
-msgid "multiple declarations for method `%s'"
-msgstr "multiple deklaration av metod \"%s\""
+#: f/expr.c:9664
+#, no-c-format
+msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+msgstr ""
-#: objc/objc-act.c:4972
-#, c-format
-msgid "invalid receiver type `%s'"
-msgstr "ogiltig mottagartyp \"%s\""
+#: f/expr.c:10525
+#, no-c-format
+msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+msgstr ""
-#: objc/objc-act.c:5040 objc/objc-act.c:5066 objc/objc-act.c:5114
-#, c-format
-msgid "`%s' does not respond to `%s'"
-msgstr "\"%s\" svarar inte på \"%s\""
+#: f/expr.c:10896
+#, no-c-format
+msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+msgstr ""
-#: objc/objc-act.c:5046 objc/objc-act.c:7285
+#: f/g77spec.c:234
#, c-format
-msgid "no super class declared in interface for `%s'"
-msgstr "ingen superklass deklarerad i interface för \"%s\""
+msgid "overflowed output arg list for `%s'"
+msgstr ""
-#: objc/objc-act.c:5144
-msgid "cannot find class (factory) method."
-msgstr "kan inte hitta klass(fabrik)-metod"
+#: f/g77spec.c:373
+msgid "--driver no longer supported"
+msgstr "--driver stödjs inte längre"
-#: objc/objc-act.c:5145 objc/objc-act.c:5189
+#: f/g77spec.c:386
#, c-format
-msgid "return type for `%s' defaults to id"
-msgstr "returtyp för \"%s\" är som standard id"
+msgid "argument to `%s' missing"
+msgstr "argument till \"%s\" saknas"
-#: objc/objc-act.c:5162
-#, c-format
-msgid "method `%s' not implemented by protocol."
-msgstr "metod \"%s\" implementeras inte av protokoll."
+#: f/g77spec.c:390
+msgid "no input files; unwilling to write output files"
+msgstr ""
-#: objc/objc-act.c:5171
-msgid "return type defaults to id"
-msgstr "returtyp är som standard id"
+#: f/implic.c:203
+#, fuzzy, no-c-format
+msgid "Implicit declaration of `%A' at %0"
+msgstr "tidigare implicit deklaration av \"%s\""
-#: objc/objc-act.c:5188
-msgid "cannot find method."
-msgstr "kan inte hitta metod."
+#: f/lex.c:326
+#, fuzzy, no-c-format
+msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+msgstr "okänd escape-sekvens \"\\%c\""
-#. Historically, a class method that produced objects (factory
-#. method) would assign `self' to the instance that it
-#. allocated. This would effectively turn the class method into
-#. an instance method. Following this assignment, the instance
-#. variables could be accessed. That practice, while safe,
-#. violates the simple rule that a class method should not refer
-#. to an instance variable. It's better to catch the cases
-#. where this is done unknowingly than to support the above
-#. paradigm.
-#: objc/objc-act.c:5432
-#, c-format
-msgid "instance variable `%s' accessed in class method"
-msgstr ""
+#: f/lex.c:345
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\%A' at %0"
+msgstr "okänd escape-sekvens \"\\%c\""
-#: objc/objc-act.c:5689
-#, c-format
-msgid "duplicate definition of class method `%s'."
-msgstr "upprepad definition av klassmetod \"%s\"."
+#: f/lex.c:354
+#, fuzzy, no-c-format
+msgid "Unterminated escape sequence `\\' at %0"
+msgstr "okänd escape-sekvens \"\\%c\""
-#: objc/objc-act.c:5695
-#, c-format
-msgid "duplicate declaration of class method `%s'."
-msgstr "upprepad deklaration av klassmetod \"%s\"."
+#: f/lex.c:365
+#, fuzzy, no-c-format
+msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+msgstr "okänd escape-sekvens: '\\' följd av tecken 0x%x"
-#: objc/objc-act.c:5731
-#, c-format
-msgid "duplicate definition of instance method `%s'."
+#: f/lex.c:393
+#, no-c-format
+msgid "\\x used at %0 with no following hex digits"
msgstr ""
-#: objc/objc-act.c:5737
-#, c-format
-msgid "duplicate declaration of instance method `%s'."
-msgstr ""
+#: f/lex.c:407
+#, fuzzy, no-c-format
+msgid "Hex escape at %0 out of range"
+msgstr "heltalskonstant utanför sitt intervall"
-#: objc/objc-act.c:5777
-#, c-format
-msgid "duplicate interface declaration for category `%s(%s)'"
-msgstr ""
+#: f/lex.c:441
+#, fuzzy, no-c-format
+msgid "Escape sequence at %0 out of range for character"
+msgstr "escape-sekvens ryms ej i ett tecken"
-#: objc/objc-act.c:5863
-#, c-format
-msgid "instance variable `%s' is declared private"
-msgstr "instansvariabel \"%s\" är deklarerad som privat"
+#: f/lex.c:595
+msgid "hex escape out of range"
+msgstr ""
-#: objc/objc-act.c:5910
+#: f/lex.c:648
#, c-format
-msgid "instance variable `%s' is declared %s"
-msgstr "instansvariabel \"%s\" är deklarerad som %s"
+msgid "non-ANSI-standard escape sequence, `\\%c'"
+msgstr ""
-#: objc/objc-act.c:5920
-msgid "static access to object of type `id'"
-msgstr "statisk access till objekt av typ \"id\""
+#: f/lex.c:661
+#, fuzzy, c-format
+msgid "non-ISO escape sequence `\\%c'"
+msgstr "okänd escape-sekvens \"\\%c\""
-#: objc/objc-act.c:5957 objc/objc-act.c:6051
+#: f/lex.c:665
#, c-format
-msgid "incomplete implementation of class `%s'"
-msgstr "inkomplett implementation av klass \"%s\""
+msgid "unknown escape sequence `\\%c'"
+msgstr "okänd escape-sekvens \"\\%c\""
-#: objc/objc-act.c:5961 objc/objc-act.c:6056
+#: f/lex.c:667
#, c-format
-msgid "incomplete implementation of category `%s'"
-msgstr "inkomplett implementation av kategori \"%s\""
+msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+msgstr "okänd escape-sekvens: '\\' följd av tecken 0x%x"
-#: objc/objc-act.c:5966 objc/objc-act.c:6061
-#, c-format
-msgid "method definition for `%c%s' not found"
-msgstr "metoddefinition för \"%c%s\" kan inte hittas"
+#: f/lex.c:744
+msgid "badly formed directive -- no closing quote"
+msgstr ""
-#: objc/objc-act.c:6102
-#, c-format
-msgid "%s `%s' does not fully implement the `%s' protocol"
+#: f/lex.c:802
+msgid "#-lines for entering and leaving files don't match"
msgstr ""
-#: objc/objc-act.c:6138 objc/objc-act.c:8212
-msgid "`@end' missing in implementation context"
+#: f/lex.c:964
+msgid "bad directive -- missing close-quote"
msgstr ""
-#: objc/objc-act.c:6169
+#: f/lex.c:1078
#, c-format
-msgid "reimplementation of class `%s'"
-msgstr "omimplementation av klass \"%s\""
+msgid "ignoring pragma: %s"
+msgstr "ignorerar #pragma: %s"
-#: objc/objc-act.c:6211
-#, c-format
-msgid "conflicting super class name `%s'"
-msgstr ""
+#: f/lex.c:1156
+msgid "invalid #ident"
+msgstr "ogiltig #indent"
-#: objc/objc-act.c:6226
-#, c-format
-msgid "duplicate interface declaration for class `%s'"
+#: f/lex.c:1173
+msgid "undefined or invalid # directive"
msgstr ""
-#: objc/objc-act.c:6469
-#, c-format
-msgid "duplicate declaration for protocol `%s'"
+#: f/lex.c:1229
+msgid "invalid #line"
+msgstr "ogiltig #line"
+
+#: f/lex.c:1285 f/lex.c:1329
+msgid "use `#line ...' instead of `# ...' in first line"
msgstr ""
-#: objc/objc-act.c:7326
-msgid "[super ...] must appear in a method context"
-msgstr "[super ...] måste stå i metodkontext"
+#: f/lex.c:1339
+msgid "invalid #-line"
+msgstr "ogiltig #-rad"
-#: objc/objc-act.c:8314 objc/objc-act.c:8330
-#, c-format
-msgid "potential selector conflict for method `%s'"
+#: f/lex.c:1432
+#, no-c-format
+msgid "Null character at %0 -- line ignored"
msgstr ""
-#: objc/objc-parse.y:2648
-msgid "`@end' must appear in an implementation context"
+#: f/stb.c:12078
+#, no-c-format
+msgid "INCLUDE at %0 not the only statement on the source line"
msgstr ""
-#: objc/objc-parse.y:2919
-msgid "method definition not in class context"
+#: f/ste.c:1400 f/ste.c:1747
+msgid "ASSIGNed FORMAT specifier is too small"
msgstr ""
-#: objc/objc-parse.y:3743
-msgid "syntax error at '@' token"
+#. ~~~Someday handle CHARACTER*1, CHARACTER*N
+#: f/ste.c:2624
+#, no-c-format
+msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr ""
-#. If we didn't find this parameter, issue an error message.
-#: params.c:80
-#, c-format
-msgid "invalid parameter `%s'"
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
msgstr ""
-#: profile.c:490
-msgid "Arc profiling: some edge counts were bad."
+#: f/ste.c:2959
+msgid "ASSIGN to variable that is too small"
msgstr ""
-#: profile.c:931
-#, c-format
-msgid "file %s not found, execution counts assumed to be zero."
+#: f/ste.c:2987
+msgid "ASSIGNed GOTO target variable is too small"
msgstr ""
-#: protoize.c:601
-#, c-format
-msgid "%s: internal abort\n"
-msgstr "%s: intern abort\n"
-
-#: protoize.c:692
-#, c-format
-msgid "%s: error writing file `%s': %s\n"
+#: f/stu.c:305
+#, no-c-format
+msgid "Local adjustable symbol `%A' at %0"
msgstr ""
-#: protoize.c:737
-#, c-format
-msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
-msgstr "%s: användning '%s [ -VqfnkN ] [ -i <isträng> ] [ filnamn ... ]'\n"
-
-#: protoize.c:740
-#, c-format
-msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#: f/target.c:2550
+msgid "data initializer on host with different endianness"
msgstr ""
-"%s: användning '%s [ -VqfnkNlgC ] [ -B <katalognamn> ] [ filnamn ... ]'\n"
-#: protoize.c:847
+#: f/top.c:237
#, c-format
-msgid "%s: warning: no read access for file `%s'\n"
-msgstr "%s: varning: ingen läsrättighet för fil \"%s\"\n"
+msgid "%s no longer supported -- try -fvxt"
+msgstr "%s stödjs inte längre -- försök -fvxt"
-#: protoize.c:855
+#: f/top.c:239
#, c-format
-msgid "%s: warning: no write access for file `%s'\n"
-msgstr "%s: varning: ingen skrivrättighet för fil \"%s\"\n"
+msgid "%s no longer supported -- try -fno-vxt -ff90"
+msgstr "%s stödjs inte längre -- försök -fno-vxt -ff90"
-#: protoize.c:863
+#: f/top.c:307 f/top.c:309
#, c-format
-msgid "%s: warning: no write access for dir containing `%s'\n"
+msgid "%s disabled, use normal debugging flags"
msgstr ""
-#. Catch cases like /.. where we try to backup to a
-#. point above the absolute root of the logical file
-#. system.
-#: protoize.c:1281
-#, c-format
-msgid "%s: invalid file name: %s\n"
+#: f/lang-options.h:33
+msgid "Print g77-specific compiler version info, run internal tests"
msgstr ""
-#: protoize.c:1433
-#, c-format
-msgid "%s: %s: can't get status: %s\n"
-msgstr "%s: %s: kan inte få status: %s\n"
-
-#: protoize.c:1454
-#, c-format
-msgid ""
-"\n"
-"%s: fatal error: aux info file corrupted at line %d\n"
+#: f/lang-options.h:37
+msgid "Program is written in typical FORTRAN 66 dialect"
msgstr ""
-#: protoize.c:1790
-#, c-format
-msgid "%s:%d: declaration of function `%s' takes different forms\n"
+#: f/lang-options.h:40
+msgid "Program is written in typical Unix f77 dialect"
msgstr ""
-#: protoize.c:2048
-#, c-format
-msgid "%s: compiling `%s'\n"
-msgstr "%s: kompilerar `%s'\n"
+#: f/lang-options.h:42
+msgid "Program does not use Unix-f77 dialectal features"
+msgstr ""
-#: protoize.c:2071
-#, c-format
-msgid "%s: wait: %s\n"
-msgstr "%s: vänta: %s\n"
+#: f/lang-options.h:44
+msgid "Program is written in Fortran-90-ish dialect"
+msgstr ""
-#: protoize.c:2076
-#, c-format
-msgid "%s: subprocess got fatal signal %d\n"
-msgstr "%s: subprocess fick dödlig signal %d\n"
+#: f/lang-options.h:48
+msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+msgstr ""
-#: protoize.c:2084
-#, c-format
-msgid "%s: %s exited with status %d\n"
-msgstr "%s: %s avslutade med status %d\n"
+#: f/lang-options.h:50
+msgid "Allow $ in symbol names"
+msgstr ""
-#: protoize.c:2136
-#, c-format
-msgid "%s: warning: missing SYSCALLS file `%s'\n"
+#: f/lang-options.h:54
+msgid "f2c-compatible code need not be generated"
msgstr ""
-#: protoize.c:2145 protoize.c:2174
-#, c-format
-msgid "%s: can't read aux info file `%s': %s\n"
+#: f/lang-options.h:57
+msgid "Unsupported; do not generate libf2c-calling code"
msgstr ""
-#: protoize.c:2190 protoize.c:2218
-#, c-format
-msgid "%s: can't get status of aux info file `%s': %s\n"
+#: f/lang-options.h:59
+msgid "Unsupported; affects code-generation of arrays"
msgstr ""
-#: protoize.c:2246
-#, c-format
-msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#: f/lang-options.h:62
+msgid "Program is written in Fortran-90-ish free form"
msgstr ""
-#: protoize.c:2264
-#, c-format
-msgid "%s: error reading aux info file `%s': %s\n"
+#: f/lang-options.h:67
+msgid "Warn about use of (only a few for now) Fortran extensions"
msgstr ""
-#: protoize.c:2277
-#, c-format
-msgid "%s: error closing aux info file `%s': %s\n"
+#: f/lang-options.h:70
+msgid "Program is written in VXT (Digital-like) FORTRAN"
msgstr ""
-#: protoize.c:2293
-#, c-format
-msgid "%s: can't delete aux info file `%s': %s\n"
+#: f/lang-options.h:73
+msgid "Disallow all ugly features"
msgstr ""
-#: protoize.c:2375 protoize.c:4377
-#, c-format
-msgid "%s: can't delete file `%s': %s\n"
-msgstr "%s: kan inte radera fil \"%s\": %s\n"
+#: f/lang-options.h:76
+msgid "Hollerith and typeless constants not passed as arguments"
+msgstr ""
-#: protoize.c:2454
-#, c-format
-msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
-msgstr "%s: varning: kan inte döpa om fil \"%s\" till \"%s\": %s\n"
+#: f/lang-options.h:78
+msgid "Allow ordinary copying of ASSIGN'ed vars"
+msgstr ""
-#: protoize.c:2579
-#, c-format
-msgid "%s: conflicting extern definitions of '%s'\n"
+#: f/lang-options.h:81
+msgid "Dummy array dimensioned to (1) is assumed-size"
msgstr ""
-#: protoize.c:2583
-#, c-format
-msgid "%s: declarations of '%s' will not be converted\n"
+#: f/lang-options.h:84
+msgid "Trailing comma in procedure call denotes null argument"
msgstr ""
-#: protoize.c:2585
-#, c-format
-msgid "%s: conflict list for '%s' follows:\n"
+#: f/lang-options.h:87
+msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
msgstr ""
-#: protoize.c:2618
-#, c-format
-msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+#: f/lang-options.h:91
+msgid "Initialization via DATA and PARAMETER is type-compatible"
msgstr ""
-#: protoize.c:2658
-#, c-format
-msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+#: f/lang-options.h:93
+msgid "Allow INTEGER and LOGICAL interchangeability"
msgstr ""
-#: protoize.c:2664
-#, c-format
-msgid "%s: %d: warning: no extern definition for `%s'\n"
+#: f/lang-options.h:96
+msgid "Print internal debugging-related info"
msgstr ""
-#: protoize.c:2695
-#, c-format
-msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+#: f/lang-options.h:99
+msgid "Initialize local vars and arrays to zero"
msgstr ""
-#: protoize.c:2701
-#, c-format
-msgid "%s: multiple static defs of `%s' in file `%s'\n"
+#: f/lang-options.h:103
+msgid "Backslashes in character/hollerith constants not special (C-style)"
msgstr ""
-#: protoize.c:2874 protoize.c:2877
-#, c-format
-msgid "%s: %d: warning: source too confusing\n"
+#: f/lang-options.h:105
+msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
msgstr ""
-#: protoize.c:3083
-#, c-format
-msgid "%s: %d: warning: varargs function declaration not converted\n"
+#: f/lang-options.h:109
+msgid "Disable the appending of underscores to externals"
msgstr ""
-#: protoize.c:3098
-#, c-format
-msgid "%s: declaration of function `%s' not converted\n"
+#: f/lang-options.h:112
+msgid "Never append a second underscore to externals"
msgstr ""
-#: protoize.c:3221
-#, c-format
-msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+#: f/lang-options.h:114
+msgid "Intrinsics spelled as e.g. SqRt"
msgstr ""
-#: protoize.c:3242
-#, c-format
-msgid ""
-"\n"
-"%s: warning: too few parameter lists in declaration of `%s'\n"
+#: f/lang-options.h:116
+msgid "Intrinsics in uppercase"
msgstr ""
-#: protoize.c:3340
-#, c-format
-msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+#: f/lang-options.h:119
+msgid "Intrinsics letters in arbitrary cases"
msgstr ""
-#: protoize.c:3518
-#, c-format
-msgid "%s: local declaration for function `%s' not inserted\n"
+#: f/lang-options.h:121
+msgid "Language keywords spelled as e.g. IOStat"
msgstr ""
-#: protoize.c:3545
-#, c-format
-msgid ""
-"\n"
-"%s: %d: warning: can't add declaration of `%s' into macro call\n"
+#: f/lang-options.h:123
+msgid "Language keywords in uppercase"
msgstr ""
-#: protoize.c:3619
-#, c-format
-msgid "%s: global declarations for file `%s' not inserted\n"
+#: f/lang-options.h:126
+msgid "Language keyword letters in arbitrary cases"
msgstr ""
-#: protoize.c:3710 protoize.c:3740
-#, c-format
-msgid "%s: definition of function `%s' not converted\n"
+#: f/lang-options.h:128
+msgid "Internally convert most source to uppercase"
msgstr ""
-#: protoize.c:3729
-#, c-format
-msgid "%s: %d: warning: definition of %s not converted\n"
+#: f/lang-options.h:131
+msgid "Internally preserve source case"
msgstr ""
-#: protoize.c:4059
-#, c-format
-msgid "%s: found definition of `%s' at %s(%d)\n"
+#: f/lang-options.h:133
+msgid "Symbol names spelled in mixed case"
msgstr ""
-#. If we make it here, then we did not know about this
-#. function definition.
-#: protoize.c:4075
-#, c-format
-msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+#: f/lang-options.h:135
+msgid "Symbol names in uppercase"
msgstr ""
-#: protoize.c:4078
-#, c-format
-msgid "%s: function definition not converted\n"
+#: f/lang-options.h:137
+msgid "Symbol names in lowercase"
msgstr ""
-#: protoize.c:4137
-#, c-format
-msgid "%s: `%s' not converted\n"
+#: f/lang-options.h:140
+msgid "Program written in uppercase"
msgstr ""
-#: protoize.c:4145
-#, c-format
-msgid "%s: would convert file `%s'\n"
+#: f/lang-options.h:142
+msgid "Program written in lowercase"
msgstr ""
-#: protoize.c:4148
-#, c-format
-msgid "%s: converting file `%s'\n"
+#: f/lang-options.h:144
+msgid "Program written in strict mixed-case"
msgstr ""
-#: protoize.c:4158
-#, c-format
-msgid "%s: can't get status for file `%s': %s\n"
+#: f/lang-options.h:146
+msgid "Compile as if program written in uppercase"
msgstr ""
-#: protoize.c:4200
-#, c-format
-msgid "%s: can't open file `%s' for reading: %s\n"
-msgstr "%s: kan inte öppna fil `%s' för läsning: %s\n"
+#: f/lang-options.h:148
+msgid "Compile as if program written in lowercase"
+msgstr ""
-#: protoize.c:4215
-#, c-format
-msgid ""
-"\n"
-"%s: error reading input file `%s': %s\n"
+#: f/lang-options.h:150
+msgid "Preserve all spelling (case) used in program"
msgstr ""
-#: protoize.c:4249
-#, c-format
-msgid "%s: can't create/open clean file `%s': %s\n"
+#: f/lang-options.h:152
+msgid "Delete libU77 intrinsics with bad interfaces"
msgstr ""
-#: protoize.c:4354
-#, c-format
-msgid "%s: warning: file `%s' already saved in `%s'\n"
+#: f/lang-options.h:154
+msgid "Disable libU77 intrinsics with bad interfaces"
msgstr ""
-#: protoize.c:4362
-#, c-format
-msgid "%s: can't link file `%s' to `%s': %s\n"
-msgstr "%s: kan inte länka fil \"%s\" till \"%s\": %s\n"
+#: f/lang-options.h:157
+msgid "Hide libU77 intrinsics with bad interfaces"
+msgstr ""
-#: protoize.c:4392
-#, c-format
-msgid "%s: can't create/open output file `%s': %s\n"
+#: f/lang-options.h:159
+msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
msgstr ""
-#: protoize.c:4425
-#, c-format
-msgid "%s: can't change mode of file `%s': %s\n"
+#: f/lang-options.h:161
+msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
msgstr ""
-#: protoize.c:4611
-#, c-format
-msgid "%s: cannot get working directory: %s\n"
+#: f/lang-options.h:164
+msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
msgstr ""
-#: protoize.c:4709
-#, c-format
-msgid "%s: input file names must have .c suffixes: %s\n"
-msgstr "%s: indatafilnamn måste ha ändelsen .c: %s\n"
+#: f/lang-options.h:166
+msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
-#: real.c:802 real.c:979
-msgid "conversion from NaN to int"
-msgstr "konvertering från NaN till int"
+#: f/lang-options.h:168
+msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
-#: real.c:825
-msgid "conversion from NaN to unsigned int"
-msgstr "konveretering från NaN till unsigned int"
+#: f/lang-options.h:171
+msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+msgstr ""
-#: real.c:2700
-msgid "floating point overflow"
-msgstr "flyttalsspill"
+#: f/lang-options.h:173
+msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+msgstr ""
-#: real.c:4340 real.c:6619 real.c:6700
-msgid "overflow on truncation to integer"
+#: f/lang-options.h:175
+msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
msgstr ""
-#: real.c:4412
-msgid "overflow on truncation to unsigned integer"
+#: f/lang-options.h:178
+msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
msgstr ""
-#: real.c:5760
-#, c-format
-msgid "%s: argument domain error"
+#: f/lang-options.h:180
+msgid "Delete MIL-STD 1753 intrinsics"
msgstr ""
-#: real.c:5761
-#, c-format
-msgid "%s: function singularity"
+#: f/lang-options.h:182
+msgid "Disable MIL-STD 1753 intrinsics"
msgstr ""
-#: real.c:5762
-#, c-format
-msgid "%s: overflow range error"
+#: f/lang-options.h:185
+msgid "Hide MIL-STD 1753 intrinsics"
msgstr ""
-#: real.c:5763
-#, c-format
-msgid "%s: underflow range error"
+#: f/lang-options.h:187
+msgid "Delete libU77 intrinsics"
msgstr ""
-#: real.c:5764
-#, c-format
-msgid "%s: total loss of precision"
-msgstr "%s: total förlust av precision"
+#: f/lang-options.h:189
+msgid "Disable libU77 intrinsics"
+msgstr ""
-#: real.c:5765
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr "%s: partiell förlust av precision"
+#: f/lang-options.h:192
+msgid "Hide libU77 intrinsics"
+msgstr ""
-#: real.c:5766
-#, c-format
-msgid "%s: NaN - producing operation"
+#: f/lang-options.h:194
+msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
msgstr ""
-#: reg-stack.c:661
-#, c-format
-msgid "Output constraint %d must specify a single register"
+#: f/lang-options.h:196
+msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
msgstr ""
-#: reg-stack.c:671
-#, c-format
-msgid "Output constraint %d cannot be specified together with \"%s\" clobber"
+#: f/lang-options.h:199
+msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
msgstr ""
-#: reg-stack.c:694
-msgid "Output regs must be grouped at top of stack"
+#: f/lang-options.h:201
+msgid "Treat initial values of 0 like non-zero values"
msgstr ""
-#: reg-stack.c:731
-msgid "Implicitly popped regs must be grouped at top of stack"
+#: f/lang-options.h:204
+msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
msgstr ""
-#: reg-stack.c:750
-#, c-format
-msgid "Output operand %d must use `&' constraint"
+#: f/lang-options.h:207
+msgid "Take at least one trip through each iterative DO loop"
msgstr ""
-#: regclass.c:704
-#, c-format
-msgid "can't use '%s' as a %s register"
+#: f/lang-options.h:211
+msgid "Print names of program units as they are compiled"
msgstr ""
-#: regclass.c:726
-msgid "global register variable follows a function definition"
+#: f/lang-options.h:214
+msgid "Disable fatal diagnostics about inter-procedural problems"
msgstr ""
-#: regclass.c:730
-msgid "register used for two global register variables"
+#: f/lang-options.h:216
+msgid "Make prefix-radix non-decimal constants be typeless"
msgstr ""
-#: regclass.c:735
-msgid "call-clobbered register used for global register variable"
+#: f/lang-options.h:219
+msgid "Generate code to check subscript and substring bounds"
msgstr ""
-#: reload.c:1206
-msgid "cannot reload integer constant operand in `asm'"
+#: f/lang-options.h:222
+msgid "Fortran-specific form of -fbounds-check"
msgstr ""
-#: reload.c:1228
-msgid "impossible register constraint in `asm'"
+#: f/lang-options.h:226
+msgid "Disable warnings about inter-procedural problems"
msgstr ""
-#: reload.c:3375
-msgid "`&' constraint used with no register class"
+#: f/lang-options.h:230
+msgid "Warn about constructs with surprising meanings"
msgstr ""
-#: reload.c:3532 reload.c:3746
-msgid "inconsistent operand constraints in an `asm'"
+#: f/lang-options.h:235
+msgid "Add a directory for INCLUDE searching"
msgstr ""
-#: reload1.c:1235
-msgid "frame size too large for reliable stack checking"
+#: f/lang-options.h:237
+msgid "Set the maximum line length"
msgstr ""
-#: reload1.c:1238
-msgid "try reducing the number of local variables"
+#: f/bad.def:39
+#, fuzzy, no-c-format
+msgid "Missing first operand for binary operator at %0"
+msgstr "saknar numerisk $-operand i formatsträng"
+
+#: f/bad.def:42
+#, fuzzy, no-c-format
+msgid "Zero-length character constant at %0"
+msgstr "tom teckenkonstant"
+
+#: f/bad.def:45
+#, no-c-format
+msgid "Invalid token at %0 in expression or subexpression at %1"
msgstr ""
-#: reload1.c:1893
-#, c-format
-msgid "Can't find a register in class `%s' while reloading `asm'."
+#: f/bad.def:48
+#, no-c-format
+msgid "Missing operand for operator at %1 at end of expression at %0"
msgstr ""
-#: reload1.c:1897
-#, c-format
-msgid "Unable to find a register to spill in class `%s'."
+#: f/bad.def:51
+#, no-c-format
+msgid "Label %A already defined at %1 when redefined at %0"
msgstr ""
-#: reload1.c:3918
-msgid "`asm' operand requires impossible reload"
+#: f/bad.def:54
+#, no-c-format
+msgid "Unrecognized character at %0 [info -f g77 M LEX]"
msgstr ""
-#: reload1.c:5033
-msgid "`asm' operand constraint incompatible with operand size"
+#: f/bad.def:57
+#, no-c-format
+msgid "Label definition %A at %0 on empty statement (as of %1)"
msgstr ""
-#: reload1.c:6619
-msgid "output operand is constant in `asm'"
+#: f/bad.def:65
+#, no-c-format
+msgid "Invalid first character at %0 [info -f g77 M LEX]"
msgstr ""
-#: rtl.c:1296
-#, c-format
-msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+#: f/bad.def:68
+#, no-c-format
+msgid "Line too long as of %0 [info -f g77 M LEX]"
msgstr ""
-#: rtl.c:1311
-#, c-format
-msgid ""
-"RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#: f/bad.def:71
+#, no-c-format
+msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
msgstr ""
-#: rtl.c:1327
-#, c-format
-msgid ""
-"RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %"
-"s:%d"
+#: f/bad.def:74
+#, no-c-format
+msgid "Label number at %0 not in range 1-99999"
msgstr ""
-#: rtl.c:1340
-#, c-format
-msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+#: f/bad.def:77
+#, fuzzy, no-c-format
+msgid "At %0, '!' and '/*' are not valid comment delimiters"
+msgstr "\"Ll\" och \"lL\" är inte giltiga heltalssuffix"
+
+#: f/bad.def:80
+#, no-c-format
+msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
msgstr ""
-#: rtl.c:1354
-#, c-format
-msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+#: f/bad.def:83
+#, no-c-format
+msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
msgstr ""
-#: rtl.c:1369
-#, c-format
-msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+#: f/bad.def:91
+#, fuzzy, no-c-format
+msgid "Character constant at %0 has no closing apostrophe at %1"
+msgstr "teckenkonstant för lång"
+
+#: f/bad.def:94
+#, no-c-format
+msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
msgstr ""
-#: stmt.c:917
-#, c-format
-msgid "jump to `%s' invalidly jumps into binding contour"
+#: f/bad.def:97
+#, no-c-format
+msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
msgstr ""
-#: stmt.c:1153 stmt.c:3651
-#, c-format
-msgid "label `%s' used before containing binding contour"
+#: f/bad.def:100
+#, fuzzy, no-c-format
+msgid "Integer at %0 too large"
+msgstr "heltalskonstant utanför sitt intervall"
+
+#: f/bad.def:123
+#, no-c-format
+msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
msgstr ""
-#: stmt.c:1283 stmt.c:1357
-msgid "`asm' cannot be used in function where memory usage is checked"
+#: f/bad.def:126
+#, no-c-format
+msgid "Missing close-period between `.%A' at %0 and %1"
msgstr ""
-#: stmt.c:1343
-msgid "`asm' cannot be used with `-fcheck-memory-usage'"
+#: f/bad.def:129
+#, no-c-format
+msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
msgstr ""
-#: stmt.c:1372
-#, c-format
-msgid "unknown register name `%s' in `asm'"
+#: f/bad.def:132
+#, no-c-format
+msgid "Missing value at %1 for real-number exponent at %0"
msgstr ""
-#: stmt.c:1387
-msgid "too many alternatives in `asm'"
+#: f/bad.def:135
+#, no-c-format
+msgid "Expected binary operator between expressions at %0 and at %1"
msgstr ""
-#: stmt.c:1398
-msgid "operand constraints for `asm' differ in number of alternatives"
+#: f/bad.def:253
+#, no-c-format
+msgid "Semicolon at %0 is an invalid token"
msgstr ""
-#: stmt.c:1446
-msgid "output operand constraint lacks `='"
+#: f/bad.def:271
+#, no-c-format
+msgid "Extraneous comma in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1465
-#, c-format
-msgid "output constraint `%c' for operand %d is not at the beginning"
+#: f/bad.def:274
+#, no-c-format
+msgid "Missing comma in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1472
-#, c-format
-msgid "output operand constraint %d contains `+'"
+#: f/bad.def:277
+#, no-c-format
+msgid "Spurious sign in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1481
-msgid "operand constraint contains '+' or '=' at illegal position."
+#: f/bad.def:280
+#, no-c-format
+msgid "Spurious number in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1487 stmt.c:1664
-#, c-format
-msgid "`%%' constraint used with last operand"
+#: f/bad.def:283
+#, no-c-format
+msgid "Spurious text trailing number in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1501
-msgid "matching constraint not valid in output operand"
+#: f/bad.def:291
+#, fuzzy, no-c-format
+msgid "Unrecognized FORMAT specifier at %0"
+msgstr "oigenkänd formatangivelse"
+
+#: f/bad.def:419
+#, no-c-format
+msgid "Missing close-parenthese(s) in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1527 stmt.c:1724
-#, c-format
-msgid "invalid punctuation `%c' in constraint"
+#: f/bad.def:422
+#, no-c-format
+msgid "Missing number following period in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1571
-#, c-format
-msgid "output number %d not directly addressable"
+#: f/bad.def:425
+#, no-c-format
+msgid "Missing number following `E' in FORMAT statement at %0"
msgstr ""
-#: stmt.c:1599
-#, c-format
-msgid "more than %d operands in `asm'"
+#: f/bad.def:433
+#, no-c-format
+msgid "Spurious trailing comma preceding terminator at %0"
msgstr ""
-#: stmt.c:1637
-#, c-format
-msgid "hard register `%s' listed as input operand to `asm'"
+#: f/bad.def:436
+#, no-c-format
+msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
msgstr ""
-#: stmt.c:1654
-#, c-format
-msgid "input operand constraint contains `%c'"
+#: f/bad.def:439
+#, no-c-format
+msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
msgstr ""
-#: stmt.c:1691
-msgid "matching constraint references invalid operand number"
+#: f/bad.def:452
+#, no-c-format
+msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
msgstr ""
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1758 stmt.c:1787
-#, c-format
-msgid "asm operand %d probably doesn't match constraints"
+#: f/bad.def:455
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with its definition at %0"
msgstr ""
-#: stmt.c:3588
-#, c-format
-msgid "unused variable `%s'"
-msgstr "oanvänd variabel \"%s\""
+#: f/bad.def:458
+#, no-c-format
+msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+msgstr ""
-#: stmt.c:5047
-#, c-format
-msgid "enumeration value `%s' not handled in switch"
+#: f/bad.def:461
+#, no-c-format
+msgid "DO-statement reference to label at %1 follows its definition at %0"
msgstr ""
-#: stmt.c:5073 stmt.c:5093
-#, c-format
-msgid "case value `%ld' not in enumerated type"
+#: f/bad.def:464
+#, no-c-format
+msgid "Reference to label at %1 is outside block containing definition at %0"
msgstr ""
-#: stmt.c:5076 stmt.c:5096
-#, c-format
-msgid "case value `%ld' not in enumerated type `%s'"
+#: f/bad.def:467
+#, no-c-format
+msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
msgstr ""
-#: stor-layout.c:164
-msgid "type size can't be explicitly evaluated"
+#: f/bad.def:470
+#, no-c-format
+msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
msgstr ""
-#: stor-layout.c:166
-msgid "variable-size type declared outside of any function"
+#: f/bad.def:473
+#, no-c-format
+msgid "Label definition at %0 invalid on this kind of statement"
msgstr ""
-#: stor-layout.c:439
-#, c-format
-msgid "size of `%s' is %d bytes"
-msgstr "storleken på \"%s\" är %d bytes"
+#: f/bad.def:476
+#, no-c-format
+msgid "Statement at %0 invalid in this context"
+msgstr ""
-#: stor-layout.c:441
-#, c-format
-msgid "size of `%s' is larger than %d bytes"
-msgstr "storleken på \"%s\" är större än %d bytes"
+#: f/bad.def:479
+#, no-c-format
+msgid "Statement at %0 invalid in context established by statement at %1"
+msgstr ""
-#: stor-layout.c:814 stor-layout.c:1066
-#, c-format
-msgid "packed attribute causes inefficient alignment for `%s'"
+#: f/bad.def:482
+#, no-c-format
+msgid "Statement at %0 must specify construct name specified at %1"
msgstr ""
-#: stor-layout.c:816 stor-layout.c:1068
-#, c-format
-msgid "packed attribute is unnecessary for `%s'"
+#: f/bad.def:485
+#, no-c-format
+msgid "Construct name at %0 superfluous, no construct name specified at %1"
msgstr ""
-#: stor-layout.c:831
-#, c-format
-msgid "padding struct to align `%s'"
+#: f/bad.def:488
+#, no-c-format
+msgid "Construct name at %0 not the same as construct name at %1"
msgstr ""
-#: stor-layout.c:1030
-msgid "padding struct size to alignment boundary"
+#: f/bad.def:491
+#, no-c-format
+msgid "Construct name at %0 does not match construct name for any containing DO constructs"
msgstr ""
-#: stor-layout.c:1073
-msgid "packed attribute causes inefficient alignment"
+#: f/bad.def:494
+#, no-c-format
+msgid "Label definition missing at %0 for DO construct specifying label at %1"
msgstr ""
-#: stor-layout.c:1075
-msgid "packed attribute is unnecessary"
+#: f/bad.def:497
+#, no-c-format
+msgid "Statement at %0 follows ELSE block for IF construct at %1"
msgstr ""
-#: timevar.c:442
-msgid ""
-"\n"
-"Execution times (seconds)\n"
+#: f/bad.def:500
+#, no-c-format
+msgid "No label definition for FORMAT statement at %0"
msgstr ""
-"\n"
-"Exekveringstider (sekunder)\n"
-#. Print total time.
-#: timevar.c:490
-msgid " TOTAL :"
-msgstr " TOTALT :"
+#: f/bad.def:503
+#, no-c-format
+msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+msgstr ""
-#: timevar.c:529
-#, c-format
-msgid "time in %s: %ld.%06ld (%ld%%)\n"
-msgstr "tid %s: %ld.%06ld (%ld%%)\n"
+#: f/bad.def:506
+#, no-c-format
+msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+msgstr ""
-#: tlink.c:428
-#, c-format
-msgid "collect: reading %s\n"
+#: f/bad.def:509
+#, no-c-format
+msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
msgstr ""
-#: tlink.c:529
-#, c-format
-msgid "collect: recompiling %s\n"
+#: f/bad.def:512
+#, no-c-format
+msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
msgstr ""
-#: tlink.c:694
-#, c-format
-msgid "collect: tweaking %s in %s\n"
+#: f/bad.def:515
+#, no-c-format
+msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
msgstr ""
-#: tlink.c:741
-msgid "collect: relinking\n"
+#: f/bad.def:518
+#, no-c-format
+msgid "Program unit name at %0 not the same as name at %1"
msgstr ""
-#: tlink.c:750
-#, c-format
-msgid "ld returned %d exit status"
+#: f/bad.def:521
+#, no-c-format
+msgid "Type name at %0 not the same as name at %1"
msgstr ""
-#: toplev.c:925
-msgid "Generate debugging info in default format"
+#: f/bad.def:524
+#, no-c-format
+msgid "End of source file before end of block started at %0"
msgstr ""
-#: toplev.c:926
-msgid "Generate debugging info in default extended format"
+#: f/bad.def:527
+#, no-c-format
+msgid "Undefined label, first referenced at %0"
msgstr ""
-#: toplev.c:928
-msgid "Generate STABS format debug info"
+#: f/bad.def:530
+#, no-c-format
+msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
msgstr ""
-#: toplev.c:929
-msgid "Generate extended STABS format debug info"
+#: f/bad.def:533
+#, no-c-format
+msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
msgstr ""
-#: toplev.c:932
-msgid "Generate DWARF-1 format debug info"
+#: f/bad.def:536
+#, no-c-format
+msgid "RETURN statement at %0 invalid within a main program unit"
msgstr ""
-#: toplev.c:934
-msgid "Generate extended DWARF-1 format debug info"
+#: f/bad.def:539
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a main program unit"
msgstr ""
-#: toplev.c:937
-msgid "Generate DWARF-2 debug info"
+#: f/bad.def:542
+#, no-c-format
+msgid "Alternate return specifier at %0 invalid within a function"
msgstr ""
-#: toplev.c:940
-msgid "Generate XCOFF format debug info"
+#: f/bad.def:545
+#, no-c-format
+msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
msgstr ""
-#: toplev.c:941
-msgid "Generate extended XCOFF format debug info"
+#: f/bad.def:548
+#, no-c-format
+msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
msgstr ""
-#: toplev.c:944
-msgid "Generate COFF format debug info"
+#: f/bad.def:551
+#, no-c-format
+msgid "No components specified as of %0 for derived-type definition beginning at %1"
msgstr ""
-#: toplev.c:988
-msgid "Perform DWARF2 duplicate elimination"
+#: f/bad.def:554
+#, no-c-format
+msgid "No components specified as of %0 for structure definition beginning at %1"
msgstr ""
-#: toplev.c:990
-msgid "Do not store floats in registers"
+#: f/bad.def:557
+#, no-c-format
+msgid "Missing structure name for outer structure definition at %0"
msgstr ""
-#: toplev.c:992
-msgid "Consider all mem refs through pointers as volatile"
+#: f/bad.def:560
+#, no-c-format
+msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
msgstr ""
-#: toplev.c:994
-msgid "Consider all mem refs to global data to be volatile"
+#: f/bad.def:563
+#, no-c-format
+msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
msgstr ""
-#: toplev.c:996
-msgid "Consider all mem refs to static data to be volatile"
+#: f/bad.def:566
+#, no-c-format
+msgid "No components specified as of %0 for map beginning at %1"
msgstr ""
-#: toplev.c:998
-msgid "Defer popping functions args from stack until later"
+#: f/bad.def:569
+#, no-c-format
+msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
msgstr ""
-#: toplev.c:1000
-msgid "When possible do not generate stack frames"
+#: f/bad.def:572
+#, no-c-format
+msgid "Missing %A specifier in statement at %0"
msgstr ""
-#: toplev.c:1002
-msgid "Optimize sibling and tail recursive calls"
+#: f/bad.def:575
+#, no-c-format
+msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
msgstr ""
-#: toplev.c:1004
-msgid "When running CSE, follow jumps to their targets"
+#: f/bad.def:578
+#, no-c-format
+msgid "Conflicting I/O control specifications at %0 and %1"
msgstr ""
-#: toplev.c:1006
-msgid "When running CSE, follow conditional jumps"
+#: f/bad.def:581
+#, no-c-format
+msgid "No UNIT= specifier in I/O control list at %0"
msgstr ""
-#: toplev.c:1008
-msgid "Perform a number of minor, expensive optimisations"
+#: f/bad.def:584
+#, no-c-format
+msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
msgstr ""
-#: toplev.c:1010
-msgid "Perform jump threading optimisations"
+#: f/bad.def:587
+#, no-c-format
+msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
msgstr ""
-#: toplev.c:1012
-msgid "Perform strength reduction optimisations"
+#: f/bad.def:595
+#, no-c-format
+msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
msgstr ""
-#: toplev.c:1014
-msgid "Perform loop unrolling when iteration count is known"
+#: f/bad.def:598
+#, fuzzy, no-c-format
+msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+msgstr "dubbla (eller överlappand) case-värden"
+
+#: f/bad.def:601
+#, no-c-format
+msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
msgstr ""
-#: toplev.c:1016
-msgid "Perform loop unrolling for all loops"
+#: f/bad.def:604
+#, no-c-format
+msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
msgstr ""
-#: toplev.c:1018
-msgid "Force all loop invariant computations out of loops"
+#: f/bad.def:617
+#, no-c-format
+msgid "Fortran 90 feature at %0 unsupported"
msgstr ""
-#: toplev.c:1020
-msgid "Strength reduce all loop general induction variables"
+#: f/bad.def:630
+#, no-c-format
+msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
msgstr ""
-#: toplev.c:1022
-msgid "Store strings in writable data section"
+#: f/bad.def:638
+#, no-c-format
+msgid "Null element at %0 for array reference at %1"
msgstr ""
-#: toplev.c:1024
-msgid "Enable machine specific peephole optimisations"
+#: f/bad.def:641
+#, no-c-format
+msgid "Too few elements (%A missing) as of %0 for array reference at %1"
msgstr ""
-#: toplev.c:1026
-msgid "Copy memory operands into registers before using"
+#: f/bad.def:644
+#, no-c-format
+msgid "Too many elements as of %0 for array reference at %1"
msgstr ""
-#: toplev.c:1028
-msgid "Copy memory address constants into regs before using"
+#: f/bad.def:647
+#, no-c-format
+msgid "Missing colon as of %0 in substring reference for %1"
msgstr ""
-#: toplev.c:1030
-msgid "Allow function addresses to be held in registers"
+#: f/bad.def:650
+#, no-c-format
+msgid "Invalid use at %0 of substring operator on %1"
msgstr ""
-#: toplev.c:1032
-msgid "Integrate simple functions into their callers"
+#: f/bad.def:653
+#, no-c-format
+msgid "Substring begin/end point at %0 out of defined range"
msgstr ""
-#: toplev.c:1034
-msgid "Generate code for funcs even if they are fully inlined"
+#: f/bad.def:656
+#, no-c-format
+msgid "Array element value at %0 out of defined range"
msgstr ""
-#: toplev.c:1036
-msgid "Pay attention to the 'inline' keyword"
+#: f/bad.def:659
+#, no-c-format
+msgid "Expression at %0 has incorrect data type or rank for its context"
msgstr ""
-#: toplev.c:1038
-msgid "Emit static const variables even if they are not used"
+#: f/bad.def:662
+#, no-c-format
+msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
msgstr ""
-#: toplev.c:1040
-msgid "Check for syntax errors, then stop"
-msgstr "Leta efter syntaxfel, stoppa sedan"
+#: f/bad.def:665
+#, no-c-format
+msgid "%A step count known to be 0 (zero) at %0"
+msgstr ""
-#: toplev.c:1042
-msgid "Mark data as shared rather than private"
+#: f/bad.def:668
+#, no-c-format
+msgid "%A end value plus step count known to overflow at %0"
msgstr ""
-#: toplev.c:1044
-msgid "Enable saving registers around function calls"
+#: f/bad.def:671
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
msgstr ""
-#: toplev.c:1046
-msgid "Return 'short' aggregates in memory, not registers"
+#: f/bad.def:674
+#, no-c-format
+msgid "%A begin, end, and step-count values known to result in no iterations at %0"
msgstr ""
-#: toplev.c:1048
-msgid "Return 'short' aggregates in registers"
+#: f/bad.def:677
+#, no-c-format
+msgid "Type disagreement between expressions at %0 and %1"
msgstr ""
-#: toplev.c:1050
-msgid "Attempt to fill delay slots of branch instructions"
+#: f/bad.def:690
+#, no-c-format
+msgid "No specification for implied-DO iterator `%A' at %0"
msgstr ""
-#: toplev.c:1052
-msgid "Perform the global common subexpression elimination"
+#: f/bad.def:693
+#, no-c-format
+msgid "Gratuitous parentheses surround implied-DO construct at %0"
msgstr ""
-#: toplev.c:1054
-msgid "Perform enhanced load motion during global subexpression elimination"
+#: f/bad.def:696
+#, no-c-format
+msgid "Zero-size specification invalid at %0"
msgstr ""
-#: toplev.c:1056
-msgid "Perform store motion after global subexpression elimination"
+#: f/bad.def:699
+#, no-c-format
+msgid "Zero-size array at %0"
msgstr ""
-#: toplev.c:1058
-msgid "Run CSE pass after loop optimisations"
+#: f/bad.def:702
+#, no-c-format
+msgid "Target machine does not support complex entity of kind specified at %0"
msgstr ""
-#: toplev.c:1060
-msgid "Run the loop optimiser twice"
+#: f/bad.def:705
+#, no-c-format
+msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
msgstr ""
-#: toplev.c:1062
-msgid "Delete useless null pointer checks"
+#: f/bad.def:708
+#, fuzzy, no-c-format
+msgid "Attempt to raise constant zero to a power at %0"
+msgstr "Försök håll stacken justerad till denna 2-potens"
+
+#: f/bad.def:806
+#, no-c-format
+msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
msgstr ""
-#: toplev.c:1064
-msgid "Pretend that host and target use the same FP format"
+#: f/bad.def:809
+#, no-c-format
+msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
msgstr ""
-#: toplev.c:1066
-msgid "Reschedule instructions before register allocation"
+#: f/bad.def:812
+#, no-c-format
+msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
msgstr ""
-#: toplev.c:1068
-msgid "Reschedule instructions after register allocation"
+#: f/bad.def:815
+#, no-c-format
+msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
msgstr ""
-#: toplev.c:1070
-msgid "Enable scheduling across basic blocks"
+#: f/bad.def:818
+#, no-c-format
+msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
msgstr ""
-#: toplev.c:1072
-msgid "Allow speculative motion of non-loads"
+#: f/bad.def:821
+#, fuzzy, no-c-format
+msgid "Unable to open INCLUDE file `%A' at %0"
+msgstr "kan inte öppna fil \"%s\""
+
+#: f/bad.def:839
+#, no-c-format
+msgid "Null argument at %0 for statement function reference at %1"
msgstr ""
-#: toplev.c:1074
-msgid "Allow speculative motion of some loads"
+#: f/bad.def:842
+#, no-c-format
+msgid "Null argument at %0 for procedure invocation at %1"
msgstr ""
-#: toplev.c:1076
-msgid "Allow speculative motion of more loads"
+#: f/bad.def:845
+#, no-c-format
+msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
msgstr ""
-#: toplev.c:1078
-msgid "Replace add,compare,branch with branch on count reg"
+#: f/bad.def:848
+#, no-c-format
+msgid "%A too many arguments as of %0 for statement function reference at %1"
msgstr ""
-#: toplev.c:1080
-msgid "Generate position independent code, if possible"
+#: f/bad.def:851
+#, no-c-format
+msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
msgstr ""
-#: toplev.c:1083
-msgid "Enable exception handling"
+#: f/bad.def:854
+#, no-c-format
+msgid "Unsupported FORMAT specifier at %0"
msgstr ""
-#: toplev.c:1085
-msgid "Just generate unwind tables for exception handling"
+#: f/bad.def:857
+#, no-c-format
+msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
msgstr ""
-#: toplev.c:1087
-msgid "Support synchronous non-call exceptions"
+#: f/bad.def:880
+#, no-c-format
+msgid "Unsupported VXT statement at %0"
msgstr ""
-#: toplev.c:1089
-msgid "Insert arc based program profiling code"
+#: f/bad.def:883
+#, no-c-format
+msgid "Attempt to specify second initial value for `%A' at %0"
msgstr ""
-#: toplev.c:1091
-msgid "Create data files needed by gcov"
+#: f/bad.def:886
+#, no-c-format
+msgid "Too few initial values in list of initializers for `%A' at %0"
msgstr ""
-#: toplev.c:1093
-msgid "Use profiling information for branch probabilities"
+#: f/bad.def:889
+#, no-c-format
+msgid "Too many initial values in list of initializers starting at %0"
msgstr ""
-#: toplev.c:1095
-msgid "Reorder basic blocks to improve code placement"
+#: f/bad.def:892
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in statement at %0"
msgstr ""
-#: toplev.c:1097
-msgid "Do the register renaming optimization pass"
+#: f/bad.def:895
+#, no-c-format
+msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
msgstr ""
-#: toplev.c:1099
-msgid "Do not put unitialised globals in the common section"
+#: f/bad.def:898
+#, no-c-format
+msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
msgstr ""
-#: toplev.c:1101
-msgid "Do not generate .size directives"
-msgstr "Generera inte .size-direktiv"
+#: f/bad.def:901
+#, no-c-format
+msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+msgstr ""
-#: toplev.c:1103
-msgid "place each function into its own section"
-msgstr "placera varje funktion i sin egen sektion"
+#: f/bad.def:904
+#, no-c-format
+msgid "Not an integer constant expression in implied do-loop in statement at %0"
+msgstr ""
-#: toplev.c:1105
-msgid "place data items into their own section"
+#: f/bad.def:907
+#, no-c-format
+msgid "Attempt to specify second initial value for element of `%A' at %0"
msgstr ""
-#: toplev.c:1107
-msgid "Add extra commentry to assembler output"
+#: f/bad.def:910
+#, no-c-format
+msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
msgstr ""
-#: toplev.c:1109
-msgid "Output GNU ld formatted global initialisers"
+#: f/bad.def:913
+#, no-c-format
+msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
msgstr ""
-#: toplev.c:1111
-msgid "Enables a register move optimisation"
+#: f/bad.def:916
+#, no-c-format
+msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
msgstr ""
-#: toplev.c:1113
-msgid "Do the full regmove optimization pass"
+#: f/bad.def:919
+#, no-c-format
+msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
msgstr ""
-#: toplev.c:1115
-msgid "Pack structure members together without holes"
+#: f/bad.def:922
+#, no-c-format
+msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
msgstr ""
-#: toplev.c:1117
-msgid "Insert stack checking code into the program"
+#: f/bad.def:925
+#, no-c-format
+msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
msgstr ""
-#: toplev.c:1119
-msgid "Specify that arguments may alias each other & globals"
+#: f/bad.def:928
+#, no-c-format
+msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
msgstr ""
-#: toplev.c:1121
-msgid "Assume arguments may alias globals but not each other"
+#: f/bad.def:936
+#, no-c-format
+msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
msgstr ""
-#: toplev.c:1123
-msgid "Assume arguments do not alias each other or globals"
+#: f/bad.def:939
+#, no-c-format
+msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: toplev.c:1125
-msgid "Assume strict aliasing rules apply"
+#: f/bad.def:942
+#, no-c-format
+msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
msgstr ""
-#: toplev.c:1127
-msgid "Align the start of loops"
+#: f/bad.def:945
+#, no-c-format
+msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
msgstr ""
-#: toplev.c:1129
-msgid "Align labels which are only reached by jumping"
+#: f/bad.def:958
+#, no-c-format
+msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
msgstr ""
-#: toplev.c:1131
-msgid "Align all labels"
+#: f/bad.def:976
+#, no-c-format
+msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
msgstr ""
-#: toplev.c:1133
-msgid "Align the start of functions"
+#: f/bad.def:979
+#, no-c-format
+msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
msgstr ""
-#: toplev.c:1135
-msgid "Generate code to check every memory access"
+#: f/bad.def:987
+#, no-c-format
+msgid "Blank common initialized at %0"
msgstr ""
-#: toplev.c:1137
-msgid "Add a prefix to all function names"
+#: f/bad.def:990
+#, no-c-format
+msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
msgstr ""
-#: toplev.c:1139
-msgid ""
-"Suppress output of instruction numbers and line number notes in debugging "
-"dumps"
+#: f/bad.def:993
+#, no-c-format
+msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
msgstr ""
-#: toplev.c:1141
-msgid "Instrument function entry/exit with profiling calls"
+#: f/bad.def:996
+#, no-c-format
+msgid "Character `%A' (for example) is upper-case in symbol name at %0"
msgstr ""
-#: toplev.c:1143
-msgid "Enable SSA optimizations"
+#: f/bad.def:999
+#, no-c-format
+msgid "Character `%A' (for example) is lower-case in symbol name at %0"
msgstr ""
-#: toplev.c:1145
-msgid "Enable dead code elimination"
+#: f/bad.def:1002
+#, no-c-format
+msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
msgstr ""
-#: toplev.c:1147
-msgid "External symbols have a leading underscore"
-msgstr "Externa symboler startar med en understrykning"
+#: f/bad.def:1005
+#, no-c-format
+msgid "Initial character `%A' is lower-case in symbol name at %0"
+msgstr ""
-#: toplev.c:1149
-msgid "Process #ident directives"
-msgstr "Hantera #ident-direktiv"
+#: f/bad.def:1013
+#, no-c-format
+msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+msgstr ""
-#: toplev.c:1151
-msgid "Enables an rtl peephole pass run before sched2"
+#: f/bad.def:1016
+#, no-c-format
+msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
msgstr ""
-#: toplev.c:1153
-msgid "Enables guessing of branch probabilities"
+#: f/bad.def:1034
+#, no-c-format
+msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
msgstr ""
-#: toplev.c:1155
-msgid "Set errno after built-in math functions"
-msgstr "Sätt errno efter inbyggda matematikfunktioner"
+#: f/bad.def:1037
+#, fuzzy, no-c-format
+msgid "Truncating characters on right side of character constant at %0"
+msgstr "flerteckens teckenkonstant"
-#: toplev.c:1157
-msgid "Floating-point operations can trap"
+#: f/bad.def:1040
+#, no-c-format
+msgid "Truncating characters on right side of hollerith constant at %0"
msgstr ""
-#: toplev.c:1159
-msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+#: f/bad.def:1043
+#, no-c-format
+msgid "Truncating non-zero data on left side of numeric constant at %0"
msgstr ""
-#: toplev.c:1161
-msgid "Compile pointers as triples: value, base & end"
+#: f/bad.def:1046
+#, no-c-format
+msgid "Truncating non-zero data on left side of typeless constant at %0"
msgstr ""
-#: toplev.c:1163
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
-msgstr ""
+#: f/bad.def:1049
+#, fuzzy, no-c-format
+msgid "Typeless constant at %0 too large"
+msgstr "heltalskonstant utanför sitt intervall"
-#: toplev.c:1165
-msgid "Convert floating point constant to single precision constant"
+#: f/bad.def:1052
+#, no-c-format
+msgid "First-column ampersand continuation at %0"
msgstr ""
-#: toplev.c:1167
-msgid "Report time taken by each compiler pass at end of run"
+#: f/bad.def:1055 f/bad.def:1058
+#, no-c-format
+msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1169
-msgid "Report on permanent memory allocation at end of run"
+#: f/bad.def:1061 f/bad.def:1064
+#, no-c-format
+msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1171
-msgid "Trap for signed overflow in addition / subtraction / multiplication."
+#: f/bad.def:1067 f/bad.def:1070
+#, no-c-format
+msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1188
-msgid "Compile just for ISO C89"
+#: f/bad.def:1073
+#, no-c-format
+msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1190
-msgid "Do not promote floats to double if using -traditional"
+#: f/bad.def:1076
+#, no-c-format
+msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1192
-msgid "Determine language standard"
+#: f/bad.def:1079 f/bad.def:1082
+#, no-c-format
+msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
msgstr ""
-#: toplev.c:1196
-msgid "Make bitfields by unsigned by default"
-msgstr ""
+#: f/bad.def:1085
+#, fuzzy, no-c-format
+msgid "Array `%A' at %0 is too large to handle"
+msgstr "fältet \"%s\" är för stort"
-#: toplev.c:1200
-msgid "Make 'char' be signed by default"
-msgstr ""
+#: f/bad.def:1088
+#, fuzzy, no-c-format
+msgid "Statement function `%A' defined at %0 is not used"
+msgstr "etikett \"%s\" definierad men inte använd"
-#: toplev.c:1202
-msgid "Make 'char' be unsigned by default"
+#: f/bad.def:1091
+#, no-c-format
+msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
msgstr ""
-#: toplev.c:1208
-msgid "Attempt to support traditional K&R style C"
+#: f/bad.def:1094
+#, fuzzy, no-c-format
+msgid "Internal compiler error -- cannot perform operation"
+msgstr "Internt kompilatorfel i %s, vid %s:%d"
+
+#. Kind messages are used in diagnostic location reports of the
+#. form "<file>: In function `foo': <error message>".
+#: f/info-k.def:32
+msgid "In unknown kind"
msgstr ""
-#: toplev.c:1214
-msgid "Do not recognise the 'asm' keyword"
+#: f/info-k.def:33
+msgid "In entity"
msgstr ""
-#: toplev.c:1217
-msgid "Do not recognise any built in functions"
-msgstr "Känn inte igen några inbyggda funktioner"
+#: f/info-k.def:34
+#, fuzzy
+msgid "In function"
+msgstr "I funktion `%s':"
-#: toplev.c:1219
-msgid "Assume normal C execution environment"
+#: f/info-k.def:35
+msgid "In subroutine"
msgstr ""
-#: toplev.c:1222
-msgid "Assume that standard libraries & main might not exist"
-msgstr ""
+#: f/info-k.def:36
+#, fuzzy
+msgid "In program"
+msgstr "program: %s\n"
-#: toplev.c:1225
-msgid "Allow different types as args of ? operator"
+#: f/info-k.def:37
+msgid "In block-data unit"
msgstr ""
-#: toplev.c:1228
-msgid "Allow the use of $ inside identifiers"
+#: f/info-k.def:38
+msgid "In common block"
msgstr ""
-#: toplev.c:1233
-msgid "Use the same size for double as for float"
-msgstr ""
+#: f/info-k.def:39
+#, fuzzy
+msgid "In construct"
+msgstr "struct"
-#: toplev.c:1236
-msgid "Use the smallest fitting integer to hold enums"
+#: f/info-k.def:40
+msgid "In namelist"
msgstr ""
-#: toplev.c:1239
-msgid "Override the underlying type for wchar_t to `unsigned short'"
+#: f/info-k.def:41
+msgid "In anything"
msgstr ""
-#: toplev.c:1243
-msgid "Enable most warning messages"
+#: java/check-init.c:917
+#, c-format
+msgid "internal error in check-init: tree code not implemented: %s"
msgstr ""
-#: toplev.c:1245
-msgid "Warn about casting functions to incompatible types"
+#: java/check-init.c:990
+#, fuzzy, c-format
+msgid "final field '%s' may not have been initialized"
+msgstr "objekt med variabel storlek kan inte initieras"
+
+#: java/class.c:539 java/class.c:564
+msgid "internal error - too many interface type"
msgstr ""
-#: toplev.c:1249
-msgid "Warn about functions which might be candidates for format attributes"
+#: java/class.c:677
+msgid "bad method signature"
msgstr ""
-#: toplev.c:1252
-msgid "Warn about casts which discard qualifiers"
+#: java/class.c:726
+msgid "misplaced ConstantValue attribute (not in any field)"
msgstr ""
-#: toplev.c:1255
-msgid "Warn about subscripts whose type is 'char'"
-msgstr "Varna om index har typen \"char\""
+#: java/class.c:728
+#, c-format
+msgid "duplicate ConstantValue attribute for field '%s'"
+msgstr ""
-#: toplev.c:1258 toplev.c:1261
-msgid "Warn if nested comments are detected"
-msgstr "Varna om nästlade kommentarer upptäcks"
+#: java/class.c:739
+#, c-format
+msgid "ConstantValue attribute of field '%s' has wrong type"
+msgstr ""
-#: toplev.c:1264
-msgid "Warn about possibly confusing type conversions"
+#: java/class.c:1103
+#, c-format
+msgid "field '%s' not found in class"
msgstr ""
-#: toplev.c:1267
-msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+#: java/class.c:1365
+msgid "abstract method in non-abstract class"
msgstr ""
-#: toplev.c:1271
-msgid "Don't warn about strftime formats yielding 2 digit years"
+#: java/class.c:2078
+#, c-format
+msgid "non-static method '%s' overrides static method"
msgstr ""
-#: toplev.c:1274
-msgid "Don't warn about too many arguments to format functions"
-msgstr "Varna inte om för många argument till format-funktioner"
+#: java/decl.c:1541
+#, c-format
+msgid "In %s: overlapped variable and exception ranges at %d"
+msgstr ""
-#: toplev.c:1276
-msgid "Warn about non-string-literal format strings"
+#: java/decl.c:1622
+msgid "bad type in parameter debug info"
msgstr ""
-#: toplev.c:1279
-msgid "Warn about possible security problems with format functions"
+#: java/decl.c:1632
+#, c-format
+msgid "bad PC range for debug info for local `%s'"
msgstr ""
-#: toplev.c:1282
-msgid "Warn about implicit function declarations"
+#: java/expr.c:530
+msgid "stack underflow - dup* operation"
msgstr ""
-#: toplev.c:1286
-msgid "Warn when a declaration does not specify a type"
+#: java/expr.c:1534
+#, c-format
+msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr ""
-#: toplev.c:1291
-msgid "Warn about the use of the #import directive"
+#: java/expr.c:1563
+#, c-format
+msgid "field `%s' not found"
msgstr ""
-#: toplev.c:1295
-msgid "Do not warn about using 'long long' when -pedantic"
+#: java/expr.c:1715
+msgid "ret instruction not implemented"
msgstr ""
-#: toplev.c:1297
-msgid "Warn about suspicious declarations of main"
-msgstr "Varna om tveksamma deklarationer av main"
+#: java/expr.c:1857
+#, c-format
+msgid "method '%s' not found in class"
+msgstr "metod \"%s\" kan inte hittas i klassen"
+
+#: java/expr.c:2060
+#, c-format
+msgid "failed to find class '%s'"
+msgstr "kunde inte hitta klassen \"%s\""
-#: toplev.c:1300
-msgid "Warn about possibly missing braces around initialisers"
+#: java/expr.c:2070
+#, c-format
+msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr ""
-#: toplev.c:1303
-msgid "Warn about global funcs without previous declarations"
+#: java/expr.c:2080
+msgid "invokestatic on non static method"
msgstr ""
-#: toplev.c:1306
-msgid "Warn about global funcs without prototypes"
+#: java/expr.c:2085
+msgid "invokestatic on abstract method"
msgstr ""
-#: toplev.c:1309
-msgid "Warn about use of multicharacter literals"
+#: java/expr.c:2093
+msgid "invoke[non-static] on static method"
msgstr ""
-#: toplev.c:1312
-msgid "Warn about externs not at file scope level"
+#: java/expr.c:2396
+#, c-format
+msgid "missing field '%s' in '%s'"
msgstr ""
-#: toplev.c:1315
-msgid "Warn about possible missing parentheses"
-msgstr "Varna om eventuellt saknade parenteser"
+#: java/expr.c:2402
+#, c-format
+msgid "mismatching signature for field '%s' in '%s'"
+msgstr ""
-#: toplev.c:1318
-msgid "Warn about possible violations of sequence point rules"
+#: java/expr.c:2425
+#, c-format
+msgid "assignment to final field `%s' not in field's class"
msgstr ""
-#: toplev.c:1321
-msgid "Warn about function pointer arithmetic"
-msgstr "Varna om aritmetik med funktionspekare"
+#: java/expr.c:2430
+#, c-format
+msgid "assignment to final static field `%s' not in class initializer"
+msgstr ""
-#: toplev.c:1324
-msgid "Warn about multiple declarations of the same object"
-msgstr "Varna om multipla deklarationer av samma objekt"
+#: java/expr.c:2437
+#, c-format
+msgid "assignment to final field `%s' not in constructor"
+msgstr ""
-#: toplev.c:1327
-msgid "Warn about signed/unsigned comparisons"
-msgstr "Varna om jämförelser mellan signed/unsigned"
+# fixme: spola tillbaka är inte perfekt
+#: java/expr.c:2684
+#, fuzzy, c-format
+msgid "can't expand %s"
+msgstr "kan inte spola tillbaka %s"
-#: toplev.c:1330
-msgid "Warn about testing equality of floating point numbers"
+#: java/expr.c:2861
+msgid "invalid PC in line number table"
msgstr ""
-#: toplev.c:1333
-msgid "Warn about unrecognized pragmas"
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2906
+#, c-format
+msgid "unreachable bytecode from %d to before %d"
msgstr ""
-#: toplev.c:1336
-msgid "Warn about non-prototyped function decls"
+#. We've just reached the end of a region of dead code.
+#: java/expr.c:2943
+#, c-format
+msgid "unreachable bytecode from %d to the end of the method"
msgstr ""
-#: toplev.c:1339
-msgid "Warn about constructs whose meaning change in ISO C"
+#. duplicate code from LOAD macro
+#: java/expr.c:3261
+msgid "unrecogized wide sub-instruction"
msgstr ""
-#: toplev.c:1342
-msgid "Warn when trigraphs are encountered"
+#: java/jcf-io.c:543
+#, c-format
+msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr ""
-#: toplev.c:1347
-msgid "Mark strings as 'const char *'"
-msgstr "Markera strängar som \"const char *\""
-
-#: toplev.c:1489
-msgid "Warn when a function is unused"
-msgstr "Varna när en funktion är oanvänd"
+#: java/jcf-parse.c:338
+msgid "bad string constant"
+msgstr ""
-#: toplev.c:1491
-msgid "Warn when a label is unused"
-msgstr "Varna när en etikett är oanvänd"
+#: java/jcf-parse.c:356
+#, c-format
+msgid "bad value constant type %d, index %d"
+msgstr ""
-#: toplev.c:1493
-msgid "Warn when a function parameter is unused"
-msgstr "Varna när en funktionsparameter är oanvänd"
+#: java/jcf-parse.c:528
+#, c-format
+msgid "can't reopen %s"
+msgstr ""
-#: toplev.c:1495
-msgid "Warn when a variable is unused"
-msgstr "Varna när en variabel är oanvänd"
+#: java/jcf-parse.c:533
+#, c-format
+msgid "can't close %s"
+msgstr "kan inte stänga %s"
-#: toplev.c:1497
-msgid "Warn when an expression value is unused"
-msgstr "Varna när ett uttrycksvärde är oanvänt"
+#: java/jcf-parse.c:619
+#, fuzzy, c-format
+msgid "cannot find file for class %s"
+msgstr "Kan inte hitta filen med klass %s."
-#: toplev.c:1499
-msgid "Do not suppress warnings from system headers"
+#: java/jcf-parse.c:631
+msgid "not a valid Java .class file"
msgstr ""
-#: toplev.c:1501
-msgid "Treat all warnings as errors"
+#: java/jcf-parse.c:634
+msgid "error while parsing constant pool"
msgstr ""
-#: toplev.c:1503
-msgid "Warn when one local variable shadows another"
+#: java/jcf-parse.c:637
+#, c-format
+msgid "error in constant pool entry #%d\n"
msgstr ""
-#: toplev.c:1505
-msgid "Warn about enumerated switches missing a specific case"
+#. FIXME - where was first time
+#: java/jcf-parse.c:649
+#, c-format
+msgid "reading class %s for the second time from %s"
msgstr ""
-#: toplev.c:1507
-msgid "Warn about returning structures, unions or arrays"
+#: java/jcf-parse.c:667
+msgid "error while parsing fields"
msgstr ""
-#: toplev.c:1509
-msgid "Warn about pointer casts which increase alignment"
+#: java/jcf-parse.c:670
+msgid "error while parsing methods"
msgstr ""
-#: toplev.c:1511
-msgid "Warn about code that will never be executed"
+#: java/jcf-parse.c:673
+msgid "error while parsing final attributes"
msgstr ""
-#: toplev.c:1513
-msgid "Warn about unitialized automatic variables"
+#: java/jcf-parse.c:687
+#, c-format
+msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr ""
-#: toplev.c:1515
-msgid "Warn when an inlined function cannot be inlined"
+#: java/jcf-parse.c:777
+msgid "missing Code attribute"
msgstr ""
-#: toplev.c:1517
-msgid "Warn when the packed attribute has no effect on struct layout"
+#: java/jcf-parse.c:1014
+msgid "source file seen twice on command line and will be compiled only once"
msgstr ""
-#: toplev.c:1519
-msgid "Warn when padding is required to align struct members"
+#: java/jcf-parse.c:1030
+msgid "no input file specified"
msgstr ""
-#: toplev.c:1521
-msgid "Warn when an optimization pass is disabled"
+#: java/jcf-parse.c:1059
+#, c-format
+msgid "can't close input file %s"
msgstr ""
-#: toplev.c:1523
-msgid "Warn about functions which might be candidates for attribute noreturn"
-msgstr "Varna om funktioner som är möjliga kandidater för attributet noreturn"
-
-#: toplev.c:1577 toplev.c:5031 tradcpp.c:776
+#: java/jcf-parse.c:1096
#, c-format
-msgid "Invalid option `%s'"
-msgstr "Ogiltig flagga \"%s\""
+msgid "bad zip/jar file %s"
+msgstr ""
-#: toplev.c:1723
+#: java/jcf-write.c:2650
#, c-format
-msgid "Internal error: %s"
-msgstr "Internt fel: %s"
+msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+msgstr ""
-#: toplev.c:2023
-#, c-format
-msgid "`%s' used but never defined"
-msgstr "\"%s\" är använd men inte definierad"
+#: java/jcf-write.c:2988
+#, fuzzy
+msgid "field initializer type mismatch"
+msgstr "fältinitierare är ej konstant"
-#: toplev.c:2026
+#: java/jcf-write.c:3419
#, c-format
-msgid "`%s' declared `static' but never defined"
-msgstr "\"%s\" är deklarerad som \"static\" men definieras aldrig"
+msgid "can't create directory %s"
+msgstr "kan inte skapa katalog %s"
-#: toplev.c:2048
-#, c-format
-msgid "`%s' defined but not used"
-msgstr "\"%s\" är definierad men inte använd"
+#: java/jcf-write.c:3473
+#, fuzzy, c-format
+msgid "can't create %s"
+msgstr "kan inte stänga %s"
-#: toplev.c:2186
-#, c-format
-msgid "can't open %s for writing"
-msgstr "kan inte öppna fil %s för skrivning"
+#: java/jv-scan.c:187
+msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+msgstr ""
+
+#: java/jv-scan.c:190
+#, fuzzy, c-format
+msgid "can't open output file `%s'"
+msgstr "Kan inte öppna utdatafil \"%s\""
-#: toplev.c:2279
-msgid "-ffunction-sections not supported for this target."
+#: java/jv-scan.c:224
+#, fuzzy, c-format
+msgid "file not found `%s'"
+msgstr "Kan inte hitta filen \"%s\""
+
+#: java/jvspec.c:426
+msgid "can't specify `-D' without `--main'\n"
msgstr ""
-#: toplev.c:2284
-msgid "-fdata-sections not supported for this target."
+#: java/jvspec.c:429
+#, fuzzy, c-format
+msgid "`%s' is not a valid class name"
+msgstr "\"%s\" är inte ett giltigt filnamn"
+
+#: java/jvspec.c:435
+msgid "--resource requires -o"
msgstr ""
-#: toplev.c:2292
-msgid "-ffunction-sections disabled; it makes profiling impossible."
+#: java/jvspec.c:442
+msgid "warning: already-compiled .class files ignored with -C"
msgstr ""
-#: toplev.c:2298
-msgid "-ffunction-sections may affect debugging on some targets."
+#: java/jvspec.c:449
+msgid "cannot specify both -C and -o"
+msgstr "kan inte ange både -C och -o"
+
+#: java/jvspec.c:461
+msgid "cannot create temporary file"
msgstr ""
-#: toplev.c:2339
-msgid "Errors detected in input file (your bison.simple is out of date)\n"
+#: java/jvspec.c:489
+msgid "using both @FILE with multiple files not implemented"
msgstr ""
-#: toplev.c:2476
-#, c-format
-msgid "error writing to %s"
-msgstr "fel vid skrivning till %s"
+#: java/jvspec.c:538
+msgid "cannot specify `main' class when not linking"
+msgstr ""
-#: toplev.c:2572
-#, c-format
-msgid "invalid register name `%s' for register variable"
+#: java/lang.c:548
+msgid "can't do dependency tracking with input from stdin"
msgstr ""
-#: toplev.c:3855
-msgid ""
-" -ffixed-<register> Mark <register> as being unavailable to the "
-"compiler\n"
+#: java/lang.c:564
+msgid "couldn't determine target name for dependency tracking"
msgstr ""
-" -ffixed-<register> Markera <register> som ej tillgängligt för "
-"kompilatorn\n"
-#: toplev.c:3856
+#: java/lex.c:303
+#, c-format
msgid ""
-" -fcall-used-<register> Mark <register> as being corrupted by function "
-"calls\n"
+"unknown encoding: `%s'\n"
+"This might mean that your locale's encoding is not supported\n"
+"by your system's iconv(3) implementation. If you aren't trying\n"
+"to use a particular encoding for your input file, try the\n"
+"`--encoding=UTF-8' option"
msgstr ""
-" -fcall-used-<register> Ange att <register> förstörs av funktionsanrop\n"
-#: toplev.c:3857
-msgid ""
-" -fcall-saved-<register> Mark <register> as being preserved across "
-"functions\n"
-msgstr " -fcall-saved-<register> Ange att <register> bevaras av funktioner\n"
+#: java/mangle.c:85
+#, fuzzy, c-format
+msgid "can't mangle %s"
+msgstr "kan inte stänga %s"
-#: toplev.c:3858
-msgid ""
-" -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+#: java/mangle_name.c:144 java/mangle_name.c:216
+msgid "internal error - invalid Utf8 name"
+msgstr "internt fel - ogiltigt Utf8-namn"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
msgstr ""
-" -finline-limit=<nummer> Begränsa storlek på inline-funktioner till "
-"<nummer>\n"
-#: toplev.c:3859
-msgid ""
-" -fmessage-length=<number> Limits diagnostics messages lengths to <number> "
-"characters per line. 0 suppresses line-wrapping\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
+msgid "';' expected"
msgstr ""
-" -fmessage-length=<nummer> Begränsa felmeddelandens längd till <nummer> "
-"tecken per rad. 0 stänger av radbrytning\n"
-#: toplev.c:3860
-msgid ""
-" -fdiagnostics-show-location=[once | every-line] Indicates how often source "
-"location information should be emitted, as prefix, at the beginning of "
-"diagnostics when line-wrapping\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
msgstr ""
-" -fdiagnostics-show-location=[once | every-line] Anger hur ofta "
-"källkodspositioner skall skrivas ut, som prefix, i början av utskrift vid "
-"radbrytning\n"
-#: toplev.c:3871
-msgid " -O[number] Set optimisation level to [number]\n"
-msgstr " -O[nummer] Sätt optimeringsnivå till [nummer]\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
+msgid "'*' expected"
+msgstr ""
-#: toplev.c:3872
-msgid " -Os Optimise for space rather than speed\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
+msgid "Class or interface declaration expected"
msgstr ""
-" -Os Optimera för storlek istället för hastighet\n"
-#: toplev.c:3884
-msgid ""
-" -pedantic Issue warnings needed by strict compliance to ISO "
-"C\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
+msgid "Missing class name"
msgstr ""
-" -pedantic Ge varningar som krävs för att strikt följa ISO C\n"
-#: toplev.c:3885
-msgid ""
-" -pedantic-errors Like -pedantic except that errors are produced\n"
-msgstr " -pedantic-errors Som -pedantic men ger fel istället\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
+msgid "'{' expected"
+msgstr ""
-#: toplev.c:3886
-msgid " -w Suppress warnings\n"
-msgstr " -w Stoppa varningar\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
+msgid "Missing super class name"
+msgstr ""
-#: toplev.c:3887
-msgid " -W Enable extra warnings\n"
-msgstr " -W Slå på extra varningar\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
+msgid "Missing interface name"
+msgstr ""
-#: toplev.c:3898
-msgid " -Wunused Enable unused warnings\n"
-msgstr " -Wunused Slå på oanvända varningar\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
+msgid "Missing variable initializer"
+msgstr ""
-#: toplev.c:3899
-msgid ""
-" -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
+msgid "Invalid declaration"
msgstr ""
-" -Wlarger-than-<nummer> Varna om objekt är större än <nummer> bytes\n"
-#: toplev.c:3900
-msgid " -p Enable function profiling\n"
-msgstr " -p Slå på funktionsprofilering\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
+msgid "']' expected"
+msgstr ""
-#: toplev.c:3902
-msgid " -a Enable block profiling \n"
-msgstr " -a Slå på blockprofilering\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
+msgid "Unbalanced ']'"
+msgstr ""
-#: toplev.c:3905
-msgid " -ax Enable jump profiling \n"
-msgstr " -ax Slå på hopprofilering\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
+msgid "Invalid method declaration, method name required"
+msgstr ""
-#: toplev.c:3907
-msgid " -o <file> Place output into <file> \n"
-msgstr " -o <fil> Skriv utdata i <fil> \n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
+msgid "Identifier expected"
+msgstr ""
-#: toplev.c:3908
-msgid ""
-" -G <number> Put global and static data smaller than <number>\n"
-" bytes into a special section (on some targets)\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
+msgid "Invalid method declaration, return type required"
msgstr ""
-" -G <nummer> Placera global and statisk data mindre än "
-"<nummer>\n"
-" bytes i en speciell sektion (vissa arkitekturer)\n"
-#: toplev.c:3919
-msgid " -aux-info <file> Emit declaration info into <file>\n"
-msgstr " -aux-info <fil> Generera deklarationsinfo till fil <fil>\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
+msgid "')' expected"
+msgstr ""
-#: toplev.c:3920
-msgid ""
-" -quiet Do not display functions compiled or elapsed time\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
+msgid "Missing formal parameter term"
msgstr ""
-" -quiet Visa inte kompilerade funktioner eller tiden som "
-"förbrukats\n"
-#: toplev.c:3921
-msgid " -version Display the compiler's version\n"
-msgstr " -version Visa kompilatorns version\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
+msgid "Missing identifier"
+msgstr ""
-#: toplev.c:3922
-msgid ""
-" -d[letters] Enable dumps from specific passes of the compiler\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
+msgid "Missing class type term"
msgstr ""
-" -d[bokstäver] Slå på dumpning från angivna delar av kompilatorn\n"
-#: toplev.c:3923
-msgid ""
-" -dumpbase <file> Base name to be used for dumps from specific "
-"passes\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
+msgid "Invalid interface type"
msgstr ""
-#: toplev.c:3925
-msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
+msgid "':' expected"
msgstr ""
-#: toplev.c:3927
-msgid " --help Display this information\n"
-msgstr " --help Visa den här informatationen\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
+msgid "Invalid expression statement"
+msgstr ""
-#: toplev.c:3942
-msgid ""
-"\n"
-"Language specific options:\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
+msgid "'(' expected"
msgstr ""
-#: toplev.c:3954
-#, c-format
-msgid " %-23.23s [undocumented]\n"
-msgstr " %-23.23s [odokumenterad]\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
+msgid "Missing term or ')'"
+msgstr ""
-#: toplev.c:3962 toplev.c:3976
-#, c-format
-msgid ""
-"\n"
-"There are undocumented %s specific options as well.\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
+msgid "Missing or invalid constant expression"
msgstr ""
-"\n"
-"Det finns dessutom odokumenterade %s-specifika flaggor.\n"
-#: toplev.c:3966
-#, c-format
-msgid ""
-"\n"
-" Options for %s:\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
+msgid "Missing term and ')' expected"
msgstr ""
-"\n"
-" Flaggor för %s:\n"
-#: toplev.c:3997
-msgid ""
-"\n"
-"Target specific options:\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
+msgid "Invalid control expression"
msgstr ""
-"\n"
-"Speciella flaggor för målarkitektur:\n"
-#: toplev.c:4011 toplev.c:4030
-#, c-format
-msgid " -m%-23.23s [undocumented]\n"
-msgstr " -m%-23.23s [odokumenterad]\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
+msgid "Invalid update expression"
+msgstr ""
-#: toplev.c:4039
-msgid ""
-"\n"
-"There are undocumented target specific options as well.\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
+msgid "Invalid init statement"
msgstr ""
-"\n"
-"Det finns dessutom odokumenterade flaggor speciellt för målarkitekturen.\n"
-#: toplev.c:4041
-msgid " They exist, but they are not documented.\n"
-msgstr " De finns, men är inte dokumenterade.\n"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
+msgid "Missing term or ')' expected"
+msgstr ""
-#: toplev.c:4094
-#, c-format
-msgid "unrecognized gcc debugging option: %c"
-msgstr "ej igenkänd debuggningsflagga för gcc: %c"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
+msgid "'class' or 'this' expected"
+msgstr ""
-#: toplev.c:4164
-#, c-format
-msgid "unrecognized register name `%s'"
-msgstr "Känner inte igen registernamn \"%s\""
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
+msgid "'class' expected"
+msgstr ""
-#: toplev.c:4188 toplev.c:4868
-#, c-format
-msgid "Unrecognized option `%s'"
-msgstr "Känner inte igen flagga \"%s\""
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
+msgid "')' or term expected"
+msgstr ""
-#: toplev.c:4232
-msgid "-Wid-clash-LEN is no longer supported"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
+msgid "'[' expected"
msgstr ""
-#: toplev.c:4309
-#, c-format
-msgid "use -gdwarf -g%d for DWARF v1, level %d"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
+msgid "Field expected"
msgstr ""
-#: toplev.c:4312
-msgid "use -gdwarf-2 for DWARF v2"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
+msgid "Missing term and ']' expected"
msgstr ""
-#: toplev.c:4317
-#, c-format
-msgid "ignoring option `%s' due to invalid debug level specification"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
+msgid "']' expected, invalid type expression"
msgstr ""
-#: toplev.c:4340 toplev.c:4866
-#, c-format
-msgid "`%s': unknown or unsupported -g option"
-msgstr "\"%s\": okänd eller icke supportad flagga till -g"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
+msgid "Invalid type expression"
+msgstr ""
-#: toplev.c:4347
-#, c-format
-msgid "`%s' ignored, conflicts with `-g%s'"
-msgstr "\"%s\" ignorerad, i konflikt med \"-g%s\""
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
+msgid "Invalid reference type"
+msgstr ""
-#: toplev.c:4426
-msgid "-param option missing argument"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
+msgid "Constructor invocation must be first thing in a constructor"
+msgstr ""
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
+msgid "Only constructors can invoke constructors"
msgstr ""
-#: toplev.c:4435
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
-msgid "invalid --param option: %s"
-msgstr "ogiltig flagga till --param: %s"
+msgid ": `%s' JDK1.1(TM) feature"
+msgstr ""
-#: toplev.c:4447
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
-msgid "invalid parameter value `%s'"
-msgstr "ogiltigt parametervärde \"%s\""
+msgid ""
+"%s.\n"
+"%s"
+msgstr ""
+"%s.\n"
+"%s"
-#: toplev.c:4538
-msgid "`-a' option (basic block profile) not supported"
-msgstr "flagga \"-a\" (block profilering) stöds inte"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
+#, c-format
+msgid "malformed .zip archive in CLASSPATH: %s"
+msgstr ""
-#: toplev.c:4546
-msgid "`-ax' option (jump profiling) not supported"
-msgstr "flagga \"-ax\" (hopprofilering) stöds inte"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
+#, c-format
+msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+msgstr ""
-#: toplev.c:4858
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, c-format
-msgid "Ignoring command line option '%s'"
-msgstr "Ignorerar kommandoradsflagga \"%s\""
+msgid "missing static field `%s'"
+msgstr ""
-#: toplev.c:4861
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
-msgid "(It is valid for %s but not the selected language)"
+msgid "not a static field `%s'"
msgstr ""
-#: toplev.c:4899
-msgid "-Wuninitialized is not supported without -O"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
+#, c-format
+msgid "No case for %s"
msgstr ""
-#: toplev.c:4926
-msgid "`-ax' and `-a' are conflicting options. `-a' ignored."
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
+#, c-format
+msgid "unregistered operator %s"
msgstr ""
-#: toplev.c:4947
-msgid "instruction scheduling not supported on this target machine"
+#: java/typeck.c:553
+msgid "junk at end of signature string"
msgstr ""
-#: toplev.c:4951
-msgid "this target machine does not have delayed branches"
+#: java/verify.c:479
+msgid "bad pc in exception_table"
msgstr ""
-#: toplev.c:4960
-msgid "profiling does not work without a frame pointer"
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
msgstr ""
-#: toplev.c:4975
+#: java/verify.c:1395
#, c-format
-msgid "-f%sleading-underscore not supported on this target machine"
+msgid "unknown opcode %d@pc=%d during verification"
msgstr ""
-#: toplev.c:5048
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
-msgid ""
-"%s%s%s version %s (%s)\n"
-"%s\tcompiled by GNU C version %s.\n"
-"%s%s%s version %s (%s) compiled by CC.\n"
+msgid "verification error at PC=%d"
msgstr ""
-#: toplev.c:5104
-msgid "options passed: "
+#: java/lang-options.h:32
+msgid "Disable automatic array bounds checking"
msgstr ""
-#: toplev.c:5133
-msgid "options enabled: "
+#: java/lang-options.h:34
+msgid "Disable assignability checks for stores into object arrays"
msgstr ""
-#: tradcif.y:110 tradcif.y:121
-msgid "division by zero in #if"
+#: java/lang-options.h:36
+msgid "Assume native functions are implemented using JNI"
msgstr ""
-#. It's a float since it contains a point.
-#: tradcif.y:230
-msgid "floating point numbers not allowed in #if expressions"
+#: java/lang-options.h:38
+msgid "Replace system path"
msgstr ""
-#: tradcif.y:276
-msgid "Invalid number in #if expression"
+#: java/lang-options.h:40
+msgid "Set class path"
msgstr ""
-#: tradcif.y:361
-msgid "Invalid character constant in #if"
+#: java/lang-options.h:42
+msgid "Set class path (deprecated: use --classpath instead)"
msgstr ""
-#: tradcif.y:398
-msgid "double quoted strings not allowed in #if expressions"
+#: java/lang-options.h:44
+msgid "Choose class whose main method should be used"
msgstr ""
-#: tradcif.y:411
-msgid "Invalid token in expression"
+#: java/lang-options.h:46
+msgid "Choose input encoding (default comes from locale)"
msgstr ""
-#: tradcif.y:502
-msgid "octal character constant does not fit in a byte"
+#: java/lang-options.h:48
+msgid "Add directory to class path"
msgstr ""
-#: tradcif.y:527
-msgid "hex character constant does not fit in a byte"
+#: java/lang-options.h:50
+msgid "Directory where class files should be written"
msgstr ""
-#: tradcif.y:558
-msgid "empty #if expression"
+#: java/lang-options.h:52
+msgid "Warn if modifiers are specified when not necessary"
msgstr ""
-#: tradcif.y:572
-msgid "Junk after end of expression."
+#: java/lang-options.h:54
+msgid "Warn if deprecated empty statements are found"
msgstr ""
-#: tradcpp.c:137
-msgid "macro or #include recursion too deep"
+#: java/lang-options.h:56
+msgid "Warn if .class files are out of date"
msgstr ""
-#: tradcpp.c:550
-#, c-format
-msgid "Usage: %s [switches] input output"
+#: java/lang-options.h:58
+msgid "Always check for non gcj generated classes archives"
msgstr ""
-#: tradcpp.c:566
-msgid "-traditional is not supported in C++"
+#: java/lang-options.h:60
+msgid "Never optimize static class initialization code"
msgstr ""
-#: tradcpp.c:568
-msgid "-traditional and -ansi are mutually exclusive"
+#: java/lang-options.h:62
+msgid "Use offset tables for virtual method calls"
msgstr ""
-#: tradcpp.c:582
-msgid "Filename missing after -i option"
-msgstr "Filnamn saknas efter flaggan -i"
-
-#: tradcpp.c:600
-msgid "Filename missing after -o option"
-msgstr "Filnamn saknas efter flaggan -o"
-
-#: tradcpp.c:659
+#: objc/objc-act.c:651
#, c-format
-msgid "Target missing after %s option"
-msgstr "Mål saknas efter flaggan %s"
+msgid "object does not conform to the `%s' protocol"
+msgstr ""
-#: tradcpp.c:673
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
-msgid "Filename missing after %s option"
-msgstr "Filnamn saknas efter flaggan %s"
+msgid "class `%s' does not implement the `%s' protocol"
+msgstr "klass \"%s\" implementerar inte protokollet \"%s\""
-#: tradcpp.c:698
+#: objc/objc-act.c:914
#, c-format
-msgid "Macro name missing after -%c option"
-msgstr "Makronamn saknas efter flaggan -%c"
+msgid "`%s' cannot be statically allocated"
+msgstr "\"%s\" kan inte vara statiskt allokerad"
-#: tradcpp.c:718
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-pedantic och -traditional är ömsesidigt uteslutande"
+#: objc/objc-act.c:963
+#, fuzzy, c-format
+msgid "unexpected type for `id' (%s)"
+msgstr "Oväntad typ på \"id\" (%s)"
-#: tradcpp.c:723
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-trigraphs och -traditional är ömsesidigt uteslutande"
+#: objc/objc-act.c:968
+msgid "undefined type `id', please import <objc/objc.h>"
+msgstr ""
-#: tradcpp.c:749
-msgid "Directory name missing after -I option"
-msgstr "Katalognamn saknas efter flaggan -I"
+#: objc/objc-act.c:1019
+#, c-format
+msgid "protocol `%s' has circular dependency"
+msgstr ""
-#: tradcpp.c:1425 tradcpp.c:3916
-msgid "`/*' within comment"
-msgstr "\"/*\" inuti kommentar"
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
+#, fuzzy, c-format
+msgid "cannot find protocol declaration for `%s'"
+msgstr "ingen tidigare deklaration av \"%s\""
-#: tradcpp.c:1800
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s'"
+msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
+
+#: objc/objc-act.c:1328
+#, fuzzy, c-format
+msgid "cannot find reference tag for class `%s'"
+msgstr "Kan inte hitta filen med klass %s."
+
+#: objc/objc-act.c:2050
#, c-format
-msgid "unterminated #%s conditional"
+msgid "creating selector for non existant method %s"
msgstr ""
-#: tradcpp.c:2159
-msgid "not in any file?!"
-msgstr ""
+#: objc/objc-act.c:2364
+#, fuzzy, c-format
+msgid "cannot find class `%s'"
+msgstr "Kan inte hitta klass \"%s\""
-#: tradcpp.c:2265
-msgid "`defined' must be followed by ident or (ident)"
-msgstr ""
+#: objc/objc-act.c:2366
+#, fuzzy, c-format
+msgid "class `%s' already exists"
+msgstr "Klass \"%s\" finns redan"
+
+#. fatal did not work with 2 args...should fix
+#: objc/objc-act.c:2473
+#, fuzzy, c-format
+msgid "cannot find interface declaration for `%s', superclass of `%s'"
+msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
+
+#: objc/objc-act.c:2480
+#, fuzzy, c-format
+msgid "circular inheritance in interface declaration for `%s'"
+msgstr "Cirkulärt arv i interfacedeklaration för \"%s\""
-#: tradcpp.c:2269
-msgid "cccp error: invalid special hash type"
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
+msgid "inconsistent instance variable specification"
msgstr ""
-#: tradcpp.c:2367 tradcpp.c:2437
-msgid "#include expects \"fname\" or <fname>"
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
msgstr ""
-#: tradcpp.c:2522
+#: objc/objc-act.c:4780
#, c-format
-msgid "No include path in which to find %.*s"
-msgstr ""
+msgid "multiple declarations for method `%s'"
+msgstr "multiple deklaration av metod \"%s\""
-#: tradcpp.c:2700
-msgid "invalid macro name"
-msgstr ""
+#: objc/objc-act.c:4946
+#, c-format
+msgid "invalid receiver type `%s'"
+msgstr "ogiltig mottagartyp \"%s\""
-#: tradcpp.c:2708
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
-msgid "invalid macro name `%s'"
-msgstr "ogiltigt makronamn \"%s\""
+msgid "`%s' does not respond to `%s'"
+msgstr "\"%s\" svarar inte på \"%s\""
-#: tradcpp.c:2713
-msgid "\"defined\" cannot be used as a macro name"
-msgstr ""
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
+#, c-format
+msgid "no super class declared in interface for `%s'"
+msgstr "ingen superklass deklarerad i interface för \"%s\""
-#: tradcpp.c:2740
-msgid "parameter name starts with a digit in #define"
-msgstr ""
+#: objc/objc-act.c:5081
+#, fuzzy
+msgid "cannot find class (factory) method"
+msgstr "kan inte hitta klass(fabrik)-metod"
-#: tradcpp.c:2750
-msgid "badly punctuated parameter list in #define"
-msgstr ""
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
+#, c-format
+msgid "return type for `%s' defaults to id"
+msgstr "returtyp för \"%s\" är som standard id"
-#: tradcpp.c:2758
-msgid "unterminated parameter list in #define"
-msgstr ""
+#: objc/objc-act.c:5099
+#, fuzzy, c-format
+msgid "method `%s' not implemented by protocol"
+msgstr "metod \"%s\" implementeras inte av protokoll."
+
+#: objc/objc-act.c:5108
+msgid "return type defaults to id"
+msgstr "returtyp är som standard id"
+
+#: objc/objc-act.c:5125
+#, fuzzy
+msgid "cannot find method"
+msgstr "kan inte hitta metod."
+
+#: objc/objc-act.c:5399
+#, fuzzy, c-format
+msgid "undeclared selector `%s'"
+msgstr "omdeklaration av \"%s\""
-#: tradcpp.c:2806
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated. This would effectively turn the class method into
+#. an instance method. Following this assignment, the instance
+#. variables could be accessed. That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable. It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.c:5443
#, c-format
-msgid "\"%.*s\" redefined"
+msgid "instance variable `%s' accessed in class method"
msgstr ""
-#: tradcpp.c:3063
-msgid "# operator should be followed by a macro argument name"
-msgstr ""
+#: objc/objc-act.c:5678
+#, fuzzy, c-format
+msgid "duplicate definition of class method `%s'"
+msgstr "upprepad definition av klassmetod \"%s\"."
-#: tradcpp.c:3110 tradcpp.c:3136 tradcpp.c:3150 tradcpp.c:3157 tradcpp.c:3182
-msgid "invalid format #line command"
-msgstr ""
+#: objc/objc-act.c:5684
+#, fuzzy, c-format
+msgid "duplicate declaration of class method `%s'"
+msgstr "upprepad deklaration av klassmetod \"%s\"."
-#: tradcpp.c:3208
-msgid "undefining `defined'"
-msgstr ""
+#: objc/objc-act.c:5720
+#, fuzzy, c-format
+msgid "duplicate definition of instance method `%s'"
+msgstr "upprepad definition av klassmetod \"%s\"."
+
+#: objc/objc-act.c:5726
+#, fuzzy, c-format
+msgid "duplicate declaration of instance method `%s'"
+msgstr "upprepad deklaration av klassmetod \"%s\"."
-#: tradcpp.c:3212
+#: objc/objc-act.c:5766
#, c-format
-msgid "undefining `%s'"
+msgid "duplicate interface declaration for category `%s(%s)'"
msgstr ""
-#: tradcpp.c:3268
-msgid "extra text at end of directive"
-msgstr "extra text vid slutet av direktiv"
-
-#: tradcpp.c:3375
+#: objc/objc-act.c:5852
#, c-format
-msgid "#error%.*s"
-msgstr "#error%.*s"
+msgid "instance variable `%s' is declared private"
+msgstr "instansvariabel \"%s\" är deklarerad som privat"
-#: tradcpp.c:3385
+#: objc/objc-act.c:5899
#, c-format
-msgid "#warning%.*s"
-msgstr "#warning%.*s"
+msgid "instance variable `%s' is declared %s"
+msgstr "instansvariabel \"%s\" är deklarerad som %s"
-#: tradcpp.c:3541
-msgid "#elif not within a conditional"
-msgstr ""
+#: objc/objc-act.c:5909
+msgid "static access to object of type `id'"
+msgstr "statisk access till objekt av typ \"id\""
-#: tradcpp.c:3798
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
-msgid "#%s not within a conditional"
-msgstr ""
-
-#: tradcpp.c:3806
-msgid "#else or #elif after #else"
-msgstr "#else eller #elif efter #else"
+msgid "incomplete implementation of class `%s'"
+msgstr "inkomplett implementation av klass \"%s\""
-#: tradcpp.c:3846
-msgid "#else not within a conditional"
-msgstr ""
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
+#, c-format
+msgid "incomplete implementation of category `%s'"
+msgstr "inkomplett implementation av kategori \"%s\""
-#: tradcpp.c:3877
-msgid "unbalanced #endif"
-msgstr "obalanserad #endif"
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
+#, c-format
+msgid "method definition for `%c%s' not found"
+msgstr "metoddefinition för \"%c%s\" kan inte hittas"
-#: tradcpp.c:3971
-msgid "unterminated string or character constant"
+#: objc/objc-act.c:6081
+#, c-format
+msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr ""
-#: tradcpp.c:4129
-#, c-format
-msgid "arguments given to macro `%s'"
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
+msgid "`@end' missing in implementation context"
msgstr ""
-#: tradcpp.c:4135
+#: objc/objc-act.c:6167
#, c-format
-msgid "no args to macro `%s'"
-msgstr "inga argument till makro \"%s\""
+msgid "reimplementation of class `%s'"
+msgstr "omimplementation av klass \"%s\""
-#: tradcpp.c:4137
+#: objc/objc-act.c:6209
#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "bara 1 argument till makro \"%s\""
+msgid "conflicting super class name `%s'"
+msgstr ""
-#: tradcpp.c:4139
+#: objc/objc-act.c:6224
#, c-format
-msgid "only %d args to macro `%s'"
-msgstr "bara %d argument till makro \"%s\""
+msgid "duplicate interface declaration for class `%s'"
+msgstr ""
-#: tradcpp.c:4141
+#: objc/objc-act.c:6506
#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "för många (%d) argument till makro \"%s\""
+msgid "duplicate declaration for protocol `%s'"
+msgstr ""
-#: tradcpp.c:4767
+#: objc/objc-act.c:7363
+msgid "[super ...] must appear in a method context"
+msgstr "[super ...] måste stå i metodkontext"
+
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
-msgid ""
-"Internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
+msgid "potential selector conflict for method `%s'"
msgstr ""
-"Internt fel i %s, vid tradcpp.c:%d\n"
-"Var vänlig och skicka in en felrapport.\n"
-"Se %s för instruktioner."
-#: tree.c:3866
-msgid "arrays of functions are not meaningful"
+#: objc-parse.y:2655
+msgid "`@end' must appear in an implementation context"
msgstr ""
-#: tree.c:3923
-msgid "function return type cannot be function"
+#: objc-parse.y:2931
+msgid "method definition not in class context"
msgstr ""
-#: tree.c:4660
-msgid "invalid initializer for bit string"
+#: objc/lang-options.h:27
+msgid "Dump decls to a .decl file"
msgstr ""
-#: tree.c:4719
-#, c-format
-msgid "Tree check: expected %s, have %s in %s, at %s:%d"
+#: objc/lang-options.h:29
+msgid "Generate code for GNU runtime environment"
msgstr ""
-#: tree.c:4736
-#, c-format
-msgid "Tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+#: objc/lang-options.h:32
+msgid "Generate code for NeXT runtime environment"
msgstr ""
-#: varasm.c:639
-#, c-format
-msgid "register name not specified for `%s'"
+#: objc/lang-options.h:35
+msgid "Warn if a selector has multiple methods"
msgstr ""
-#: varasm.c:641
-#, c-format
-msgid "invalid register name for `%s'"
+#: objc/lang-options.h:39
+msgid "Do not warn if inherited methods are unimplemented"
msgstr ""
-#: varasm.c:644
-#, c-format
-msgid "data type of `%s' isn't suitable for a register"
+#: objc/lang-options.h:41
+msgid "Generate C header of platform specific features"
msgstr ""
-#: varasm.c:647
-#, c-format
-msgid "register specified for `%s' isn't suitable for data type"
+#: objc/lang-options.h:43
+msgid "Specify the name of the class for constant strings"
msgstr ""
-#: varasm.c:656
-msgid "global register variable has initial value"
-msgstr "global registervariabel har startvärde"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr ""
-#: varasm.c:659
-msgid "volatile register variables don't work as you might wish"
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
msgstr ""
-#: varasm.c:695
-#, c-format
-msgid "register name given for non-register variable `%s'"
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
msgstr ""
-#: varasm.c:1333
-#, c-format
-msgid "size of variable `%s' is too large"
-msgstr "storleken på variabel \"%s\" är för stor"
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr "shared och mdll är inkompatibla"
-#: varasm.c:1373
-#, c-format
-msgid ""
-"alignment of `%s' is greater than maximum object file alignment. Using %d."
+#: java/lang-specs.h:33
+msgid "-fjni and -femit-class-files are incompatible"
msgstr ""
-#: varasm.c:1420
-#, c-format
-msgid "requested alignment for %s is greater than implemented alignment of %d."
+#: java/lang-specs.h:34
+msgid "-fjni and -femit-class-file are incompatible"
msgstr ""
-#: varasm.c:1899
-msgid "floating point trap outputting a constant"
+#: java/lang-specs.h:35 java/lang-specs.h:36
+msgid "-femit-class-file should used along with -fsyntax-only"
msgstr ""
-#: varasm.c:4300
-msgid "initializer for integer value is too complicated"
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg och -fomit-frame-pointer är inkompatibla"
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
msgstr ""
-#: varasm.c:4306
-msgid "initializer for floating value is not a floating constant"
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4363
-msgid "unknown set constructor type"
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4568
-#, c-format
-msgid "invalid initial value for member `%s'"
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4750
-#, c-format
-msgid "weak declaration of `%s' must be public"
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4752
-#, c-format
-msgid "weak declaration of `%s' must precede definition"
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4848
-msgid "only weak aliases are supported in this configuration"
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
msgstr ""
-#: varasm.c:4853
-msgid "alias definitions not supported in this configuration; ignored"
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
msgstr ""
-#: varray.c:87
-#, c-format
-msgid "Virtual array %s[%lu]: element %lu out of bounds"
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
msgstr ""
-#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:170
-#, c-format
-msgid "No sclass for %s stab (0x%x)\n"
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
msgstr ""
-#: config/alpha/freebsd.h:35 config/i386/freebsd-aout.h:236
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
msgid "`-p' not supported; use `-pg' and gprof(1)"
msgstr "\"-p\" stödjs inte; använd \"-pg\" och gprof(1)"
-#: config/arc/arc.h:61 config/mips/mips.h:925
-msgid "may not use both -EB and -EL"
-msgstr "får inte använda både -EB och -EL"
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+#, fuzzy
+msgid "may not use both -m32 and -m64"
+msgstr "får inte använda både -mfp64 och -m4650"
-#: config/arm/arm.h:216
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "-mapcs-26 och -mapcs-32 får inte användas tillsammans"
-#: config/arm/arm.h:228
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "-msoft-float och -mhard_float får inte användas tillsammans"
-#: config/arm/arm.h:239
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "-mbig-endian och -mlittle-endian får inte användas tillsammans"
-#: config/arm/arm.h:257
-msgid "Incompatible interworking options"
-msgstr ""
+#: config/i386/sco5.h:195
+#, fuzzy
+msgid "-pg not supported on this platform"
+msgstr "attributet \"section\" stöds inte för denna målarkitektur"
-#: config/arm/riscix.h:73 config/arm/riscix.h:135
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd och -pedantic är inkompatibla"
+#: config/i386/sco5.h:196
+#, fuzzy
+msgid "-p and -pp specified - pick one"
+msgstr "-I- angiven två gånger"
-#: config/arm/riscix.h:74 config/arm/riscix.h:136
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd och -mxopen är inkompatibla"
+#: config/i386/sco5.h:271
+#, fuzzy
+msgid "-G and -static are mutually exclusive"
+msgstr "-pedantic och -traditional är ömsesidigt uteslutande"
+
+#: f/lang-specs.h:38 gcc.c:689
+msgid "GNU C does not support -C without using -E"
+msgstr "GNU C stödjer inte -C utan -E"
+
+#: f/lang-specs.h:39 gcc.c:690
+#, fuzzy
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C stödjer inte -C utan -E"
+
+#: config/mcore/mcore.h:60
+msgid "choose either big or little endian, not both"
+msgstr ""
-#: config/arm/riscix.h:75 config/arm/riscix.h:137
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen och -pedantic är inkompatible"
+#: config/mcore/mcore.h:63
+msgid "choose either m340 or m210 not both"
+msgstr ""
-#: config/dsp16xx/dsp16xx.h:101 config/dsp16xx/dsp16xx.h:110
-msgid "A -ifile option requires a -map option"
-msgstr "Flaggan -ifil kräver även flaggan -map"
+#: config/mcore/mcore.h:64
+msgid "the m210 does not have little endian support"
+msgstr ""
-#: config/i386/cygwin.h:105
+#: config/i386/cygwin.h:115
msgid "mno-cygwin and mno-win32 are not compatible"
msgstr "mno-cygwin och mno-win32 är inkompatibla"
-#: config/i386/cygwin.h:160 config/i386/mingw32.h:63
-msgid "shared and mdll are not compatible"
-msgstr "shared och mdll är inkompatibla"
+#: config/vax/netbsd-elf.h:42
+#, fuzzy
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "inbyggd funktion \"%s\" stöds inte för närvarande"
-#: config/i386/sco5.h:777 config/i386/sco5.h:852
-msgid "-static not valid with -mcoff"
-msgstr ""
+#: treelang/lang-specs.h:52
+#, fuzzy
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg och -fomit-frame-pointer är inkompatibla"
-#: config/i386/sco5.h:778 config/i386/sco5.h:853
-msgid "-shared not valid with -mcoff"
-msgstr "-shared är inte giltig tillsammans med -mcoff"
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "-E krävs när indata tas från standard input"
-#: config/i386/sco5.h:779 config/i386/sco5.h:854
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic är inte giltig tillsammans med -mcoff"
+#: gcc.c:851
+#, fuzzy
+msgid "compilation of header file requested"
+msgstr "Kompilering av include-fil begärd"
-#: config/i386/sco5.h:817
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic är inte giltig tillsammans med -mcoff"
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "profilering stöds inte tillsammans med -mg\n"
-#: config/i386/sco5.h:818
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC är inte giltig tillsammans med -mcoff"
+#: config/mips/mips.h:954
+#, fuzzy
+msgid "-pipe is not supported"
+msgstr "-pipe stöds inte."
-#: config/i386/sco5.h:855
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic är inte giltig tillsammans med -mcoff"
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "får inte använda både -EB och -EL"
-#: config/i386/sco5.h:856
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC är inte giltig tillsammans med -mcoff"
+#: config/mips/r3900.h:35
+#, fuzzy
+msgid "-mhard-float not supported"
+msgstr "-mhard-float stöds inte."
-#: config/i386/unix.h:122
-msgid "bx]"
-msgstr ""
+#: config/mips/r3900.h:37
+#, fuzzy
+msgid "-msingle-float and -msoft-float can not both be specified"
+msgstr "-msingle-float och -msoft-float kan inte båda anges."
-#: config/i386/unix.h:124
-msgid "bx"
-msgstr ""
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "okänd C-standard \"%s\""
-#: config/i386/unix.h:125
-msgid "cx"
-msgstr ""
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "typen på extern \"%s\" är inte global"
-#: config/i860/fx2800.h:297
-msgid "-p option not supported: use -pg instead"
-msgstr "flaggan -p stödjs inte: använd -pg istället"
+#~ msgid "null format string"
+#~ msgstr "formatsträngen är null"
-#: config/mcore/mcore.h:65
-msgid "choose either big or little endian, not both"
-msgstr ""
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "både suffix 'f' och 'l' på flyttalskonstant"
-#: config/mcore/mcore.h:68
-msgid "choose either m340 or m210 not both"
-msgstr ""
+#~ msgid "decimal point in exponent - impossible!"
+#~ msgstr "decimalpunkt i exponent - omöjligt!"
-#: config/mcore/mcore.h:69
-msgid "the m210 does not have little endian support"
-msgstr ""
+#~ msgid "underscore in number"
+#~ msgstr "understrykningsstreck i nummer"
-#: config/mips/mips.h:781
-msgid "-pipe is not supported."
-msgstr "-pipe stöds inte."
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "numerisk konstant har siffror som är utanför giltigt talbas"
-#: config/mips/mips.h:920
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "får inte använda både -mfp64 och -msingle-float"
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "flyttalskonstanter kan inte vara i bas 16"
-#: config/mips/mips.h:921
-msgid "may not use both -mfp64 and -m4650"
-msgstr "får inte använda både -mfp64 och -m4650"
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "mer än ett \"f\"-suffix på flyttalskonstant"
-#: config/mips/r3900.h:28 config/mips/r3900.h:42
-msgid "-mhard-float not supported."
-msgstr "-mhard-float stöds inte."
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "mer än ett \"l\"-suffix på flyttalskonstant"
-#: config/mips/r3900.h:30 config/mips/r3900.h:44
-msgid "-msingle-float and -msoft-float can not both be specified."
-msgstr "-msingle-float och -msoft-float kan inte båda anges."
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "traditionell C stödjer inte suffixet 'l'"
-#: config/nextstep.h:163 config/nextstep.h:166
-msgid "-p profiling is no longer supported. Use -pg instead."
-msgstr "-p profilering stöds inte längre. Använd -pg istället."
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "mer än ett \"i\"- eller \"j\"-suffix på flyttalskonstant"
-#: config/vax/vax.h:41 config/vax/vax.h:42
-msgid "profiling not supported with -mg\n"
-msgstr "profilering stöds inte tillsammans med -mg\n"
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C förbjuder imaginära numeriska konstanter"
-#: f/lang-specs.h:35 gcc.c:641
-msgid "GNU C does not support -C without using -E"
-msgstr "GNU C stödjer inte -C utan -E"
+#~ msgid "floating constant out of range"
+#~ msgstr "flyttalskonstant utanför sitt intervall"
-#: gcc.c:662 java/jvspec.c:69
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg och -fomit-frame-pointer är inkompatibla"
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "flyttalsnummer överskrider intervallet för en \"double\""
-#: gcc.c:810
-msgid "-E required when input is from standard input"
-msgstr "-E krävs när indata tas från standard input"
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "två \"u\"-suffix på heltalskonstant"
-#: gcc.c:814
-msgid "Compilation of header file requested"
-msgstr "Kompilering av include-fil begärd"
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "traditionell C stödjer inte suffixet 'u'"
-#: java/lang-specs.h:33
-msgid "-fjni and -femit-class-files are incompatible"
-msgstr ""
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "tre \"l\"-suffix på heltalskonstant"
-#: java/lang-specs.h:34
-msgid "-fjni and -femit-class-file are incompatible"
-msgstr ""
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "\"lul\" är inte ett giltigt heltalssuffix"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "\"Ll\" och \"lL\" är inte giltiga heltalssuffix"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "mer än ett \"i\"- eller \"j\"-suffix på heltalskonstant"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "heltalskonstant för stor för denna konfigurering av kompilatorn - kortar ner till %d bitar"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "storleken på en heltalskonstant ändras beroende på -traditional"
+
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "heltalskonstanter är utan tecken i ISO C, med tecken med -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "storleken på en heltalskonstant kan ändras på andra system beroende på -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "heltalskonstant är större än maximala värdet på %s"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "en unsigned long long int"
+
+#~ msgid "a long long int"
+#~ msgstr "en long long int"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "en unsigned long int"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "decimal konstant så stor att den är unsigned"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "saknar mellanrum efter nummer \"%.*s\""
+
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C stödjer inte användning av \"varargs.h\""
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "lagringsklass angiven i array-deklarerare"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof applicerad på en funktionstyp"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof applicerat på typen void"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#, fuzzy
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "flyttal utanför intervallet för \"%s\""
+
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "för många \"l\"-suffix i heltalskonstant"
+
+#~ msgid "integer constant out of range"
+#~ msgstr "heltalskonstant utanför sitt intervall"
+
+#, fuzzy
+#~ msgid "missing binary operator"
+#~ msgstr "saknas '(' efter predikat"
+
+#, fuzzy
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "parameter \"%s\" har en inkomplett typ"
+
+#, fuzzy
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "kan inte skapa katalog %s"
+
+#~ msgid "I/O error on output"
+#~ msgstr "I/O-fel vid utmatning"
+
+#, fuzzy
+#~ msgid "argument missing after %s"
+#~ msgstr "Argument saknas efter %s"
+
+#, fuzzy
+#~ msgid "number missing after %s"
+#~ msgstr "Nummer saknas efter %s"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
+
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic Utfärda alla varningar som strikt ISO C kräver\n"
+#~ " -pedantic-errors Utfärda -pedantic varningar som fel istället\n"
+#~ " -trigraphs Stöd ISO C trigraphs\n"
+#~ " -lang-c Antag att indatakällkoden är C\n"
+#~ " -lang-c89 Antag att indatakällkoden är C89\n"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Antag att indatakällkoden är C++\n"
+#~ " -lang-objc Antag att indatakällkoden är ObjectiveC\n"
+#~ " -lang-objc++ Antag att indatakällkoden är ObjectiveC++\n"
+#~ " -lang-asm Antag att indatakällkoden är assembler\n"
+
+#, fuzzy
+#~ msgid "invalid option %s"
+#~ msgstr "Ogiltig flagga %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: varning: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: varning: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "ledsen, inte implementerat: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Internt kompilatorfel i %s, vid %s:%d"
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "argument till \"-b\" saknas"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "argument till \"-V\" saknas"
+
+#~ msgid "invalid version number format"
+#~ msgstr "ogiltigt format på versionsnummer"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% av %d källkodsrader körda i funktion %s\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Inga hopp i funktionen %s\n"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "konvertering från NaN till int"
+
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "konveretering från NaN till unsigned int"
+
+#~ msgid "floating point overflow"
+#~ msgstr "flyttalsspill"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: total förlust av precision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: partiell förlust av precision"
+
+#, fuzzy
+#~ msgid "internal error: %s"
+#~ msgstr "Internt fel: %s"
+
+#, fuzzy
+#~ msgid "invalid character constant in #if"
+#~ msgstr "teckenkonstant för lång"
+
+#, fuzzy
+#~ msgid "invalid token in expression"
+#~ msgstr "ogiltig användning av void-uttryck"
+
+#, fuzzy
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "Användning: %s [flaggor] infil utfil\n"
+
+#, fuzzy
+#~ msgid "filename missing after -i option"
+#~ msgstr "Filnamn saknas efter flaggan -i"
+
+#, fuzzy
+#~ msgid "filename missing after -o option"
+#~ msgstr "Filnamn saknas efter flaggan -o"
+
+#, fuzzy
+#~ msgid "target missing after %s option"
+#~ msgstr "Mål saknas efter flaggan %s"
+
+#, fuzzy
+#~ msgid "filename missing after %s option"
+#~ msgstr "Filnamn saknas efter flaggan %s"
+
+#, fuzzy
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "Makronamn saknas efter flaggan -%c"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs och -traditional är ömsesidigt uteslutande"
+
+#, fuzzy
+#~ msgid "directory name missing after -I option"
+#~ msgstr "Katalognamn saknas efter flaggan -I"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "\"/*\" inuti kommentar"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "ogiltigt makronamn \"%s\""
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "extra text vid slutet av direktiv"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else eller #elif efter #else"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "obalanserad #endif"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "inga argument till makro \"%s\""
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "bara 1 argument till makro \"%s\""
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "bara %d argument till makro \"%s\""
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "för många (%d) argument till makro \"%s\""
+
+#, fuzzy
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Internt fel i %s, vid tradcpp.c:%d\n"
+#~ "Var vänlig och skicka in en felrapport.\n"
+#~ "Se %s för instruktioner."
+
+#~ msgid "optimization turned on"
+#~ msgstr "optimering påslagen"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimering avslagen"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "ogiltigt %%V-värde"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Använd liten minnesmodell"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Använd normal minnesmodell"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Använd stor minnesmodell"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Generera kod för stackkontroll"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Generera inte kod för stackkontroll"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Fix för storem hårdvarubugg"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Fixa inte storem hårdvarubugg"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Generera kod för C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Genrera kod för C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Generera kod för c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Generera kod för c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Generera kod för c32"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Generera kod för c34"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Använd 64-bits long"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Genrerar kod som unix assemblatorn kan hantera"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Generera kod en inbäddad assemblator kan hantera"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Varna när ett funktionsargument är en struktur"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Profilering använder mcount"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Skapa half-PIC-kod"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "Skapa ELF-objektkod"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Skapa ROSE-objektkod"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Symboler startar med en understrykning"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Generera kod som använder FPU"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Genrera inte kod som använder FPU"
+
+#, fuzzy
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "ISO C stöder inte formatstorlek i strftime"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimera för 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimera för 4650"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Generera data som \"little endian\""
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Generera data som \"big endian\""
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections stöds inte för AIX"
+
+#, fuzzy
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s före symbolen \"%s\""
+
+#, fuzzy
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s före symbolen \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' as declarator"
+#~ msgstr "\"%s\" är använd innan sin deklaration"
+
+#, fuzzy
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "lagringsstorlek på \"%s\" är inte konstant"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "ogiltig typ: \"void &\""
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version stöds inte längre"
+
+#, fuzzy
+#~ msgid " %#D"
+#~ msgstr " TOTALT :"
+
+#, fuzzy
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "complex ogiltig för \"%s\""
+
+#, fuzzy
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "multiple deklaration av metod \"%s\""
+
+#, fuzzy
+#~ msgid "base initializer for `%T'"
+#~ msgstr "kan inte initiera friend-funktion \"%s\""
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ förbjuder användning av \"sizeof\" på medlemsfunktion"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ förbjuder användning av \"sizeof\" på typ void som är en inkomplett typ"
+
+#, fuzzy
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "sizeof applicerat på en inkomplett typ"
+
+#, fuzzy
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "ogiltig användning av void-uttryck"
+
+#, fuzzy
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "kan inte inline:a anrop till \"%s\""
+
+#~ msgid "unary `&'"
+#~ msgstr "unärt \"&\""
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "ogiltig mottagartyp \"%s\""
+
+#, fuzzy
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "omdeklaration av \"%s\""
+
+#, fuzzy
+#~ msgid "declaration of `%#T'"
+#~ msgstr "omdeklaration av \"%s\""
+
+#, fuzzy
+#~ msgid "invalid use of `%T'"
+#~ msgstr "ogiltigt användande av \"restrict\""
+
+#, fuzzy
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "ogiltigt typargument"
+
+#, fuzzy
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "initierare misslyckas med att bestämma storlek på \"%s\""
+
+#, fuzzy
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "upprepning av medlem \"%s\""
+
+#, fuzzy
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "semantiken för \"\\x\" varierar med -traditional"
+
+#, fuzzy
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "semantiken för \"\\a\" varierar med -traditional"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "semantiken för \"\\x\" varierar med -traditional"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "semantiken för \"\\a\" varierar med -traditional"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd och -pedantic är inkompatibla"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd och -mxopen är inkompatibla"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen och -pedantic är inkompatible"
+
+#, fuzzy
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "-p profilering stöds inte längre. Använd -pg istället."
+
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared är inte giltig tillsammans med -mcoff"
+
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic är inte giltig tillsammans med -mcoff"
+
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic är inte giltig tillsammans med -mcoff"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC är inte giltig tillsammans med -mcoff"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic är inte giltig tillsammans med -mcoff"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC är inte giltig tillsammans med -mcoff"
+
+#, fuzzy
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "Flaggan -ifil kräver även flaggan -map"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "flaggan -p stödjs inte: använd -pg istället"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "får inte använda både -mfp64 och -msingle-float"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "får inte använda både -mfp64 och -m4650"
+
+#, fuzzy
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "får inte använda både -mfp64 och -m4650"
+
+#, fuzzy
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "-pedantic och -traditional är ömsesidigt uteslutande"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a Slå på blockprofilering\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Slå på hopprofilering\n"
+
+#, fuzzy
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "%s: Vid instansiering av \"%s\":\n"
+
+#, fuzzy
+#~ msgid "explicit specialization here"
+#~ msgstr "initiering"
+
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "__builtin_trap stöds inte på denna målarkitektur"
+
+#~ msgid "type with more precision than %s"
+#~ msgstr "typ med högre precision än %s"
+
+# local, det kan troligen vara både lokal variabel och lokal funktion??
+#~ msgid "declaration of `%s' shadows previous local"
+#~ msgstr "deklaration av \"%s\" döljer en tidigare lokal"
+
+#~ msgid "ANSI C forbids const or volatile function types"
+#~ msgstr "ANSI C förbjuder funktionertyper med const eller volatile"
#~ msgid "unknown escape sequence: '\\' followed by char 0x%x"
#~ msgstr "okänd escape-sekvens:: '\\' följd av tecken 0x%x"
@@ -16754,40 +22066,87 @@ msgstr ""
#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
#~ msgstr "\"[*]\" i parameterdeklaration är bara tillåten i ISO C 99"
-#~ msgid "Register '%c' is unknown"
-#~ msgstr "Register '%c' är okänt"
+#~ msgid "Same as -mcpu=i386"
+#~ msgstr "Samma som -mcpu=i386"
+
+#~ msgid "Same as -mcpu=i486"
+#~ msgstr "Samma som -mcpu=i486"
+
+#~ msgid "Same as -mcpu=pentium"
+#~ msgstr "Samma som -mcpu=pentium"
+
+#~ msgid "Same as -mcpu=pentiumpro"
+#~ msgstr "Samma som -mcpu=pentiumpro"
+
+#~ msgid "Emit Intel syntax assembler opcodes"
+#~ msgstr "Skapa assembler-opkoder med Intel-syntax"
#~ msgid "Control allocation order of integer registers"
#~ msgstr "Kontrollera allokeringsordning för heltalsregister"
+#~ msgid "Use FUNCTION_EPILOGUE"
+#~ msgstr "Använd FUNCTION_EPILOGUE"
+
+#~ msgid "Do not use FUNCTION_EPILOGUE"
+#~ msgstr "Använd inte FUNCTION_EPILOGUE"
+
+#~ msgid "methods cannot be converted to function pointers"
+#~ msgstr "metoder kan inte konverteras till funktionspekare"
+
#~ msgid "ISO C++ forbids `&&'"
#~ msgstr "ISO C++ förbjuder \"&&\""
#~ msgid "`com_interface' only supported with -fvtable-thunks"
#~ msgstr "\"com_interface\" stöds bara med -fvtable-thunks"
-#~ msgid ""
-#~ " -Wid-clash-<num> Warn if 2 identifiers have the same first <num> "
-#~ "chars\n"
-#~ msgstr ""
-#~ " -Wid-clash-<num> Varna om två identifierare har samma första "
-#~ "<num> tecken\n"
+#~ msgid "ISO C++ forbids using a pointer-to-function in pointer arithmetic"
+#~ msgstr "ISO C++ förbjuder användning av funktionspekarepekare i pekararitmetik"
+
+#~ msgid "ISO C++ forbids using pointer to a member in pointer arithmetic"
+#~ msgstr "ISO C++ förbjuder användning av pekare till medlem i pekararitmetik"
+
+#~ msgid "Internal error #%d."
+#~ msgstr "Internt fel #%d."
+
+#~ msgid "-include and -imacros cannot be used with -fpreprocessed"
+#~ msgstr "-include och -imacros kan inte användas med -fpreprocessed"
+
+#~ msgid "<stdin>"
+#~ msgstr "<stdin>"
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "syntaxfel: kan inte backa tillbaka"
+#~ msgid "file \"%s\" entered but not left"
+#~ msgstr "filen \"%s\" påbörjad men ej avslutad"
-#~ msgid "parser stack overflow"
-#~ msgstr "parsestack överfull"
+#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
+#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n"
-#~ msgid "parse error; also virtual memory exceeded"
-#~ msgstr "parsningsfel; och det virtuella minnet tog slut"
+#~ msgid "can't to open %s"
+#~ msgstr "kan inte öppna %s"
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: flaggan \"%s\" är tvetydig\n"
+#~ msgid "Generate code for Boehm GC"
+#~ msgstr "Generera kod för Boehm GC"
+
+#~ msgid " -Wid-clash-<num> Warn if 2 identifiers have the same first <num> chars\n"
+#~ msgstr " -Wid-clash-<num> Varna om två identifierare har samma första <num> tecken\n"
+
+#~ msgid "Unrecognized option `%s'"
+#~ msgstr "Känner inte igen flagga \"%s\""
+
+#~ msgid "`-a' option (basic block profile) not supported"
+#~ msgstr "flagga \"-a\" (block profilering) stöds inte"
+
+#~ msgid "`-ax' option (jump profiling) not supported"
+#~ msgstr "flagga \"-ax\" (hopprofilering) stöds inte"
#~ msgid "no file specified with -fdump-translation-unit"
#~ msgstr "ingen fil angiven med -fdump-translation-unit"
+#~ msgid "invalid identifier `%s'"
+#~ msgstr "ogiltig identifierare \"%s\""
+
+#~ msgid "syntax error before '#' token"
+#~ msgstr "syntaxfel för symbolen '#'"
+
#~ msgid "%s is a directory"
#~ msgstr "%s är en katalog"
@@ -16809,9 +22168,6 @@ msgstr ""
#~ msgid "ISO C does not support the strftime `%c' flag"
#~ msgstr "ISO C stöder inte flaggan \"%c\" till strftime"
-#~ msgid "ISO C does not support strftime format width"
-#~ msgstr "ISO C stöder inte formatstorlek i strftime"
-
#~ msgid "ISO C89 does not support the `%%%c' %s format"
#~ msgstr "ISO C89 stöder inte \\\"%%%c\\\" i %s formatsträng"
@@ -16830,60 +22186,31 @@ msgstr ""
#~ msgid "flag `%c' used with type `%c'"
#~ msgstr "flaggan \"%c\" använd med typen \"%c\""
-#~ msgid "third argument of `%s' is deprecated"
-#~ msgstr "tredje argumentet till \"%s\" är inte länge rekommenderat"
-
#~ msgid "parse error at '..'"
#~ msgstr "tolkningsfel vid \"..\""
-#~ msgid "ISO C89 forbids constructor expressions"
-#~ msgstr "ISO C89 förbjuder konstruktor-uttryck"
-
-#~ msgid "field `%s' already initialized"
-#~ msgstr "fält \"%s\" är redan initierat"
-
-#~ msgid "Generate code for a given CPU"
-#~ msgstr "Generera kod för en given CPU"
-
#~ msgid "Compile for Gmicro/300"
#~ msgstr "Kompilera för Gmicro/300"
#~ msgid "parse errors have confused me too much"
#~ msgstr "tolkningsfel har gjort mig helt förvirrad"
-#~ msgid "no return statement in function returning non-void"
-#~ msgstr "ingen return i funktion som returnerar icke-void"
-
-#~ msgid "`operator new' must return type `void *'"
-#~ msgstr "\"operator new\" måste returnera typ \"void *\""
-
-#~ msgid "`operator new' takes type `size_t' parameter"
-#~ msgstr "\"operator new\" tar parameter av typ \"size_t\""
-
#~ msgid "syntax error before '\\' token"
#~ msgstr "syntaxfel före symbolen '\\'"
-#~ msgid "keyword 'export' not implemented and will be ignored"
-#~ msgstr "nyckelordet \"export\" är inte implementerat och kommer ignorerads"
-
#~ msgid ""
#~ " -MD As -M, but put output in a .d file\n"
#~ " -MMD As -MD, but ignore system header files\n"
#~ " -MG Treat missing header file as generated files\n"
-#~ " -g3 Include #define and #undef directives in the "
-#~ "output\n"
-#~ " -D<macro> Define a <macro> with string '1' as its "
-#~ "value\n"
+#~ " -g3 Include #define and #undef directives in the output\n"
+#~ " -D<macro> Define a <macro> with string '1' as its value\n"
#~ " -D<macro>=<val> Define a <macro> with <val> as its value\n"
#~ msgstr ""
#~ " -MD Som -M, men skriva utdata till en .d-fil\n"
#~ " -MMD Som -MD, men ignorera system-include-filer\n"
-#~ " -MG Behandla saknade include-filer som genererade "
-#~ "filer\n"
-#~ " -g3 Inkludera direktiven #define och #undef i "
-#~ "utdatan\n"
-#~ " -D<makro> Definiera ett <makro> med strängen '1' som "
-#~ "värde\n"
+#~ " -MG Behandla saknade include-filer som genererade filer\n"
+#~ " -g3 Inkludera direktiven #define och #undef i utdatan\n"
+#~ " -D<makro> Definiera ett <makro> med strängen '1' som värde\n"
#~ " -D<makro>=<värde> Definiera ett <makro> med <värde> som värde\n"
#~ msgid "ISO C does not allow #%s"
@@ -16892,8 +22219,8 @@ msgstr ""
#~ msgid "second token after #line is not a string"
#~ msgstr "Andra symbolen efter #line är inte en sträng"
-#~ msgid "#%s with no argument"
-#~ msgstr "#%s utan argument"
+#~ msgid "#%s with invalid argument"
+#~ msgstr "#%s med ogiltigt argument"
#~ msgid "ISO C forbids text after #%s"
#~ msgstr "ISO C förbjuder text efter #%s"
diff --git a/gcc/po/tr.po b/gcc/po/tr.po
index 1798f82f869..47ee92918fe 100644
--- a/gcc/po/tr.po
+++ b/gcc/po/tr.po
@@ -1,139 +1,69 @@
# Turkish translations for gcc messages.
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Nilgün Belma Bugüner <nilgun@fide.org>, 2001, 2002.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Nilgün Belma Bugüner <nilgun@superonline.com>, 2001, 2002, 2003.
#
msgid ""
msgstr ""
-"Project-Id-Version: gcc 3.1-b20020415\n"
-"POT-Creation-Date: 2002-04-23 12:53+0200\n"
-"PO-Revision-Date: 2002-04-24 15:52+0300\n"
-"Last-Translator: Nilgün Belma Bugüner <nilgun@fide.org>\n"
+"Project-Id-Version: gcc 3.3.2\n"
+"POT-Creation-Date: 2003-10-24 13:20+0200\n"
+"PO-Revision-Date: 2003-10-25 11:35+0300\n"
+"Last-Translator: Nilgün Belma Bugüner <nilgun@superonline.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.6\n"
+"X-Generator: KBabel 1.0\n"
-#: attribs.c:314
+#: attribs.c:185
#, c-format
msgid "`%s' attribute directive ignored"
msgstr "`%s' özellik yönergesi yoksayıldı"
-#: attribs.c:322
+#: attribs.c:193
#, c-format
msgid "wrong number of arguments specified for `%s' attribute"
msgstr "'%s' özelliği için belirtilen argüman sayısı hatalı"
-#: attribs.c:339
+#: attribs.c:210
#, c-format
msgid "`%s' attribute does not apply to types"
msgstr "`%s' özelliği veri türlerine uygulanmaz"
-#: attribs.c:376
+#: attribs.c:247
#, c-format
msgid "`%s' attribute only applies to function types"
msgstr "`%s' özelliği sadece işlev türlere uygulanır"
-#: attribs.c:468 attribs.c:490 attribs.c:512 attribs.c:543 attribs.c:565 attribs.c:590 attribs.c:613 attribs.c:643 attribs.c:681 attribs.c:728 attribs.c:758 attribs.c:788 attribs.c:811 attribs.c:1057 attribs.c:1113 attribs.c:1169 attribs.c:1230 attribs.c:1256 attribs.c:1458 config/arm/arm.c:2007 config/arm/arm.c:2034 config/avr/avr.c:4683 config/h8300/h8300.c:3071 config/h8300/h8300.c:3096 config/i386/i386.c:1267 config/i386/winnt.c:74
+#: attribs.c:404 c-common.c:5275 c-common.c:5297 c-common.c:5319
+#: c-common.c:5350 c-common.c:5372 c-common.c:5397 c-common.c:5423
+#: c-common.c:5453 c-common.c:5491 c-common.c:5538 c-common.c:5568
+#: c-common.c:5598 c-common.c:5621 c-common.c:5878 c-common.c:5900
+#: c-common.c:5943 c-common.c:6020 c-common.c:6076 c-common.c:6103
+#: c-common.c:6186 c-common.c:6220 c-common.c:6574 config/arm/arm.c:2101
+#: config/arm/arm.c:2128 config/avr/avr.c:4774 config/h8300/h8300.c:3693
+#: config/h8300/h8300.c:3718 config/i386/i386.c:1403 config/i386/winnt.c:78
+#: config/ip2k/ip2k.c:3204
#, c-format
msgid "`%s' attribute ignored"
msgstr "`%s' özelliği yoksayıldı"
-#: attribs.c:844
-#, c-format
-msgid "unknown machine mode `%s'"
-msgstr "'%s makina kipi bilinmiyor"
-
-#: attribs.c:847
-#, c-format
-msgid "no data type for mode `%s'"
-msgstr "'%s' kipi için bir veri türü yok"
-
-#: attribs.c:880
-msgid "section attribute cannot be specified for local variables"
-msgstr "bölge özelliği yerel değişkenler için belirtilmiş olamaz"
-
-#: attribs.c:891
-#, c-format
-msgid "section of `%s' conflicts with previous declaration"
-msgstr "`%s' bölgesi önceki bildirimle çelişiyor"
-
-#: attribs.c:900
-#, c-format
-msgid "section attribute not allowed for `%s'"
-msgstr "bölge özelliğine `%s' için izin verilmez"
-
-#: attribs.c:907
-msgid "section attributes are not supported for this target"
-msgstr "bölge özellikleri bu hedef için desteklenmiyor"
-
-#: attribs.c:949
-msgid "requested alignment is not a constant"
-msgstr "istenen ayarlama bir sabit deÄŸil"
-
-#: attribs.c:954
-msgid "requested alignment is not a power of 2"
-msgstr "istenen ayarlama 2 nin kuvveti deÄŸil"
-
-#: attribs.c:959
-msgid "requested alignment is too large"
-msgstr "istenen ayarlama çok büyük"
-
-#: attribs.c:986
-#, c-format
-msgid "alignment may not be specified for `%s'"
-msgstr "hizalama `%s' için belirtilmiş olmayabilir"
-
-#: attribs.c:1031
-#, c-format
-msgid "`%s' defined both normally and as an alias"
-msgstr "`%s' hem normal hem de bir rumuz olarak tanımlanmış"
-
-#: attribs.c:1041
-msgid "alias arg not a string"
-msgstr "rumuz argümanı bir dizge değil"
-
-#: attribs.c:1080 attribs.c:1136
-#, c-format
-msgid "`%s' attribute applies only to functions"
-msgstr "`%s' özelliği sadece işlevlere uygulanır"
-
-#: attribs.c:1087 attribs.c:1143
-#, c-format
-msgid "can't set `%s' attribute after definition"
-msgstr "`%s' özelliğine tanımlandıktan sonra değer atanamaz"
-
-#: attribs.c:1227
-#, c-format
-msgid "`%s' attribute ignored for `%s'"
-msgstr "`%s' özelliği `%s' için yoksayıldı"
-
-#: attribs.c:1284
-#, c-format
-msgid "invalid vector type for attribute `%s'"
-msgstr "`%s' özelliği vektör tür geçersiz"
-
-#: attribs.c:1307 attribs.c:1312
-msgid "no vector mode with the size and type specified could be found"
-msgstr "belirtilen tür ve boyutta vektör kipi yok"
-
-#: builtins.c:282
+#: builtins.c:285
msgid "offset outside bounds of constant string"
msgstr "göreli konum sabit dizgenin sınırlarının dışında"
-#: builtins.c:759
+#: builtins.c:765
msgid "second arg to `__builtin_prefetch' must be a constant"
msgstr "`__builtin_prefetch' için 2. argüman bir sabit olmalı"
-#: builtins.c:766
+#: builtins.c:772
msgid "invalid second arg to __builtin_prefetch; using zero"
msgstr "__builtin_prefetch için 2. argüman geçersiz; sıfır kullanılıyor"
-#: builtins.c:773
+#: builtins.c:779
msgid "third arg to `__builtin_prefetch' must be a constant"
msgstr "`__builtin_prefetch' için 3. argüman bir sabit olmalı"
-#: builtins.c:780
+#: builtins.c:786
msgid "invalid third arg to __builtin_prefetch; using zero"
msgstr "__builtin_prefetch için 3. argüman geçersiz; sıfır kullanılıyor"
@@ -144,1286 +74,1442 @@ msgstr "__builtin_prefetch için 3. argüman geçersiz; sıfır kullanılıyor"
#. port (i860) that used this code, and I'm unconvinced it could actually
#. handle the general case. So we no longer try to handle anything
#. weird and make the backend absorb the evil.
-#: builtins.c:2760
+#: builtins.c:2875
msgid "__builtin_saveregs not supported by this target"
msgstr "__builtin_saveregs bu hedef tarafından desteklenmiyor"
-#: builtins.c:2802
+#: builtins.c:2917
msgid "argument of `__builtin_args_info' must be constant"
msgstr "`__builtin_args_info'nun argümanı bir sabit olmalıdır"
-#: builtins.c:2808
+#: builtins.c:2923
msgid "argument of `__builtin_args_info' out of range"
msgstr "`__builtin_args_info'nun argümanı kapsamdışı"
-#: builtins.c:2814
+#: builtins.c:2929
msgid "missing argument in `__builtin_args_info'"
msgstr "`__builtin_args_info'da argüman eksik"
-#: builtins.c:2846
+#: builtins.c:2960
msgid "`va_start' used in function with fixed args"
msgstr "`va_start' işlev içinde sabit argümanlarla kullanılmış"
-#: builtins.c:2865
+#: builtins.c:2979
msgid "second parameter of `va_start' not last named argument"
msgstr "`va_start'ın ikinci parametresi isimli son argüman değil"
#. Evidently an out of date version of <stdarg.h>; can't validate
#. va_start's second argument, but can still work as intended.
-#: builtins.c:2870
+#: builtins.c:2984
msgid "`__builtin_next_arg' called without an argument"
msgstr "`__builtin_next_arg' argümansız çağrılmış"
-#: builtins.c:2974
+#: builtins.c:3070
msgid "too many arguments to function `va_start'"
msgstr "`va_start' işlevine çok fazla argüman verilmiş"
-#: builtins.c:3075
+#: builtins.c:3172
msgid "first argument to `va_arg' not of type `va_list'"
msgstr "`va_arg'ın ilk argümanının türü `va_list' değil"
#. Unfortunately, this is merely undefined, rather than a constraint
#. violation, so we cannot make this an error. If this call is never
#. executed, the program is still strictly conforming.
-#: builtins.c:3106
+#: builtins.c:3204
#, c-format
msgid "`%s' is promoted to `%s' when passed through `...'"
msgstr "`%s' `...' sayesinde aktarıldığında `%s'e yükseltilmiş"
-#: builtins.c:3111
+#: builtins.c:3209
#, c-format
msgid "(so you should pass `%s' not `%s' to `va_arg')"
msgstr "(bu durumda `va_arg'a `%s' aktarılmalı, `%s' değil)"
-#: builtins.c:3242
+#: builtins.c:3340
msgid "invalid arg to `__builtin_frame_address'"
msgstr "`__builtin_frame_address'e aktarılan argüman geçersiz"
-#: builtins.c:3244
+#: builtins.c:3342
msgid "invalid arg to `__builtin_return_address'"
msgstr "`__builtin_return_address'e aktarılan argüman geçersiz"
-#: builtins.c:3258
+#: builtins.c:3356
msgid "unsupported arg to `__builtin_frame_address'"
msgstr "`__builtin_frame_address'e aktarılan argüman desteklenmiyor"
-#: builtins.c:3260
+#: builtins.c:3358
msgid "unsupported arg to `__builtin_return_address'"
msgstr "`__builtin_return_address'e aktarılan argüman desteklenmiyor"
-#: builtins.c:3428
+#: builtins.c:3530
msgid "second arg to `__builtin_expect' must be a constant"
msgstr "`__builtin_expect'e aktarılan ikinci argüman bir sabit olmalı"
-#: builtins.c:3909
+#: builtins.c:4028
msgid "__builtin_longjmp second argument must be 1"
msgstr "__builtin_longjmp'ın ikinci argümanı 1 olmalı"
#. just do library call, if unknown builtin
-#: builtins.c:3982 c-common.c:3811
+#: builtins.c:4092 c-common.c:4459
#, c-format
msgid "built-in function `%s' not currently supported"
msgstr "yerleÅŸik iÅŸlev `%s' ÅŸu an desteklenmiyor"
-#: c-common.c:550
+#: builtins.c:4165
+msgid "target format does not support infinity"
+msgstr "hedef biçim sonsuzu desteklemiyor"
+
+#: c-common.c:1168
#, c-format
msgid "`%s' is not defined outside of function scope"
msgstr "`%s' işlev bağlamının dışında atanmamış"
-#: c-common.c:590
-msgid "concatenation of string literals with __FUNCTION__ is deprecated. This feature will be removed in future"
-msgstr "__FUNCTION__ ile dizge sabitlerin birleştirilmesi yakında kullanımdan kaldırılacak"
-
-#: c-common.c:659
+#: c-common.c:1189
#, c-format
msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
msgstr "dizge uzunluğu `%1$d' ISO C%3$d derleyiclerin desteklediği uzunluk %2$d den büyük"
-#: c-common.c:708
+#: c-common.c:1247
+msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+msgstr "__FUNCTION__ ile dizge sabitlerin birleştirilmesi özelliği eski kullanım"
+
+#: c-common.c:1343
msgid "overflow in constant expression"
msgstr "sabit ifadesinde taÅŸma"
-#: c-common.c:729
+#: c-common.c:1364
msgid "integer overflow in expression"
msgstr "ifadede tamsayı taşması"
-#: c-common.c:738
+#: c-common.c:1373
msgid "floating point overflow in expression"
msgstr "ifadede gerçel sayı taşması"
-#: c-common.c:744
+#: c-common.c:1379
msgid "vector overflow in expression"
msgstr "ifadede vektör taşması"
#. This detects cases like converting -129 or 256 to unsigned char.
-#: c-common.c:765
+#: c-common.c:1402
msgid "large integer implicitly truncated to unsigned type"
msgstr "büyük tamsayı örtük olarak unsigned türe indirgendi"
-#: c-common.c:767
+#: c-common.c:1404
msgid "negative integer implicitly converted to unsigned type"
msgstr "negatif tamsayı örtük olarak unsigned türe dönüştürüldü"
-#: c-common.c:814
+#: c-common.c:1452
msgid "overflow in implicit constant conversion"
msgstr "örtük sabit dönüşümünde taşma"
-#: c-common.c:962
+#: c-common.c:1600
#, c-format
msgid "operation on `%s' may be undefined"
msgstr "`%s' üstündeki işlem tanımsız olabilir"
-#: c-common.c:1253
+#: c-common.c:1891
msgid "expression statement has incomplete type"
msgstr "ifade deyimi tamamlanmamış tür içeriyor"
-#: c-common.c:1286
+#: c-common.c:1924
msgid "case label does not reduce to an integer constant"
msgstr "case etiketi bir tamsayı sabite indirgenmez"
-#: c-common.c:1586
+#: c-common.c:2228
msgid "invalid truth-value expression"
msgstr "doğruluk-değeri ifadesi geçersiz"
-#: c-common.c:1637
+#: c-common.c:2279
#, c-format
msgid "invalid operands to binary %s"
msgstr "iki terimli %s için terimler geçersiz"
-#: c-common.c:1872 c-common.c:1881
+#: c-common.c:2513
msgid "comparison is always false due to limited range of data type"
msgstr "veri türünün kapsadığı sınırlardan dolayı karşılaştırma sonucu daima yanlıştır"
-#: c-common.c:1874 c-common.c:1883
+#: c-common.c:2515
msgid "comparison is always true due to limited range of data type"
msgstr "veri türünün kapsadığı sınırlardan dolayı karşılaştırma sonucu daima doğrudur"
-#: c-common.c:1949
+#: c-common.c:2585
msgid "comparison of unsigned expression >= 0 is always true"
msgstr "unsigned ifade >=0 daima doÄŸrudur"
-#: c-common.c:1958
+#: c-common.c:2594
msgid "comparison of unsigned expression < 0 is always false"
msgstr "unsigned ifade < 0 daima yanlıştır"
-#: c-common.c:2005
+#: c-common.c:2641
msgid "pointer of type `void *' used in arithmetic"
-msgstr "aritmetikte `void *' türünde gösterge kullanılmış"
+msgstr "aritmetikte `void *' türünde gösterici kullanılmış"
-#: c-common.c:2011
+#: c-common.c:2647
msgid "pointer to a function used in arithmetic"
-msgstr "aritmetikte işlev göstergesi kullanılmış"
+msgstr "aritmetikte işlev göstericisi kullanılmış"
-#: c-common.c:2017
+#: c-common.c:2653
msgid "pointer to member function used in arithmetic"
-msgstr "aritmetikte üye işlev göstergesi kullanılmış"
+msgstr "aritmetikte üye işlev göstericisi kullanılmış"
-#: c-common.c:2023
+#: c-common.c:2659
msgid "pointer to a member used in arithmetic"
-msgstr "aritmetikte üye göstergesi kullanılmış"
+msgstr "aritmetikte üye göstericisi kullanılmış"
-#: c-common.c:2110 f/com.c:14823
+#: c-common.c:2746 f/com.c:14762
msgid "struct type value used where scalar is required"
msgstr "sayısal değer gerekirken yapı türü değer kullanılmış"
-#: c-common.c:2114 f/com.c:14827
+#: c-common.c:2750 f/com.c:14766
msgid "union type value used where scalar is required"
msgstr "sayısal değer gerekirken birleşik yapı türü değer kullanılmış"
-#: c-common.c:2118 f/com.c:14831
+#: c-common.c:2754 f/com.c:14770
msgid "array type value used where scalar is required"
msgstr "sayısal değer gerekirken dizi türü değer kullanılmış"
-#: c-common.c:2233 f/com.c:14957
+#: c-common.c:2874 f/com.c:14903
msgid "suggest parentheses around assignment used as truth value"
-msgstr "atamayı çevrelemesi önerilen parantezler doğruluk değeri olarak kullanıldı"
+msgstr "atamayı sarmalayan parantezler muhtemelen doğruluk değeri olarak kullanılmış"
-#: c-common.c:2277 c-common.c:2309
+#: c-common.c:2918 c-common.c:2950
msgid "invalid use of `restrict'"
msgstr "`restrict' kullanımı geçersiz"
-#: c-common.c:2425
-msgid "__alignof__ applied to an incomplete type"
-msgstr "__alignof__ bir tamamlanmamış türe uygulanmış"
+#: c-common.c:3064
+msgid "invalid application of `sizeof' to a function type"
+msgstr "bir işlev türüne geçersiz `sizeof' uygulaması "
-#: c-common.c:2451
+#: c-common.c:3074
+#, c-format
+msgid "invalid application of `%s' to a void type"
+msgstr "bir void türe geçersiz `%s' uygulaması"
+
+#: c-common.c:3080
+#, c-format
+msgid "invalid application of `%s' to an incomplete type"
+msgstr "bir tamalanmamış türe geçersiz `%s' uygulaması"
+
+#: c-common.c:3121
msgid "`__alignof' applied to a bit-field"
msgstr "`__alignof' bir bit-alanına uygulanmış"
-#: c-common.c:2893
+#: c-common.c:3618
#, c-format
msgid "cannot disable built-in function `%s'"
msgstr "`%s' yerleÅŸik iÅŸlev olduÄŸundan iptal edilemez"
-#: c-common.c:3174 c-typeck.c:1781
+#: c-common.c:3787 c-typeck.c:1748
#, c-format
msgid "too few arguments to function `%s'"
msgstr "`%s' işlevi için argümanlar çok az"
-#: c-common.c:3180 c-typeck.c:1634
+#: c-common.c:3793 c-typeck.c:1601
#, c-format
msgid "too many arguments to function `%s'"
msgstr "`%s' işlevi için argümanlar çok fazla"
-#: c-common.c:3369
+#: c-common.c:3812
+#, c-format
+msgid "non-floating-point argument to function `%s'"
+msgstr "`%s' işlevine kayan noktalı olmayan argüman"
+
+#: c-common.c:4081
msgid "pointers are not permitted as case values"
-msgstr "case değeri olarak göstergeler kullanılamaz"
+msgstr "case değeri olarak göstericiler kullanılamaz"
-#: c-common.c:3375
+#: c-common.c:4087
msgid "ISO C++ forbids range expressions in switch statements"
msgstr "ISO C++ switch deyimlerinde aralık ifadelerine izin vermez"
-#: c-common.c:3377
+#: c-common.c:4089
msgid "ISO C forbids range expressions in switch statements"
msgstr "ISO C switch deyimlerinde aralık ifadelerine izin vermez"
-#: c-common.c:3407
+#: c-common.c:4119
msgid "empty range specified"
msgstr "boş aralık belirtilmiş"
-#: c-common.c:3458
+#: c-common.c:4170
msgid "duplicate (or overlapping) case value"
msgstr "yinelenmiÅŸ (ya da birbirini kapsayan) case deÄŸerleri"
-#: c-common.c:3460
+#: c-common.c:4172
msgid "this is the first entry overlapping that value"
msgstr "bu, aynı değeri kapsayan ilk girdi"
-#: c-common.c:3464
+#: c-common.c:4176
msgid "duplicate case value"
msgstr "yinelenmiÅŸ case deÄŸeri"
-#: c-common.c:3465
+#: c-common.c:4177
msgid "previously used here"
msgstr "önce burada kullanılmış"
-#: c-common.c:3469
+#: c-common.c:4181
msgid "multiple default labels in one switch"
msgstr "tek switch'te çok sayıda öntanımlı etiket"
-#: c-common.c:3470
+#: c-common.c:4182
msgid "this is the first default label"
msgstr "bu, ilk öntanımlı etiket"
-#: c-common.c:3498
+#: c-common.c:4210
msgid "ISO C++ forbids taking the address of a label"
msgstr "ISO C++ da bir etiket adresinin alınmasına izin verilmez"
-#: c-common.c:3500
+#: c-common.c:4212
msgid "ISO C forbids taking the address of a label"
msgstr "ISO C de bir etiket adresinin alınmasına izin verilmez"
-#: c-common.c:4148
-msgid "-Wformat-y2k ignored without -Wformat"
-msgstr "-Wformat-y2k -Wformat'sız yoksayıldı"
+#: c-common.c:5235
+#, c-format
+msgid "declaration of `%s' shadows %s"
+msgstr "`%s' bildirimi %s'i gölgeliyor"
-#: c-common.c:4150
-msgid "-Wformat-extra-args ignored without -Wformat"
-msgstr "-Wformat-extra-args -Wformat'sız yoksayıldı"
+#: c-common.c:5654
+#, c-format
+msgid "unknown machine mode `%s'"
+msgstr "'%s makina kipi bilinmiyor"
-#: c-common.c:4152
-msgid "-Wformat-nonliteral ignored without -Wformat"
-msgstr "-Wformat-nonliteral -Wformat'sız yoksayıldı"
+#: c-common.c:5657
+#, c-format
+msgid "no data type for mode `%s'"
+msgstr "'%s' kipi için bir veri türü yok"
-#: c-common.c:4154
-msgid "-Wformat-security ignored without -Wformat"
-msgstr "-Wformat-security -Wformat'sız yoksayıldı"
+#: c-common.c:5666 c-common.c:6316
+#, c-format
+msgid "unable to emulate '%s'"
+msgstr "'%s' öykünümü yapılamıyor"
-#: c-common.c:4156
-msgid "-Wmissing-format-attribute ignored without -Wformat"
-msgstr "-Wmissing-format-attribute -Wformat'sız yoksayıldı"
+#: c-common.c:5702
+msgid "section attribute cannot be specified for local variables"
+msgstr "bölge özelliği yerel değişkenler için belirtilmiş olamaz"
-#: c-common.c:4247
+#: c-common.c:5713
#, c-format
-msgid "declaration of `%s' shadows %s"
-msgstr "`%s' bildirimi %s'i gölgeliyor"
+msgid "section of `%s' conflicts with previous declaration"
+msgstr "`%s' bölgesi önceki bildirimle çelişiyor"
+
+#: c-common.c:5722
+#, c-format
+msgid "section attribute not allowed for `%s'"
+msgstr "bölge özelliğine `%s' için izin verilmez"
+
+#: c-common.c:5729
+msgid "section attributes are not supported for this target"
+msgstr "bölge özellikleri bu hedef için desteklenmiyor"
+
+#: c-common.c:5771
+msgid "requested alignment is not a constant"
+msgstr "istenen ayarlama bir sabit deÄŸil"
+
+#: c-common.c:5776
+msgid "requested alignment is not a power of 2"
+msgstr "istenen ayarlama 2 nin kuvveti deÄŸil"
+
+#: c-common.c:5781
+msgid "requested alignment is too large"
+msgstr "istenen ayarlama çok büyük"
+
+#: c-common.c:5808
+#, c-format
+msgid "alignment may not be specified for `%s'"
+msgstr "hizalama `%s' için belirtilmiş olmayabilir"
+
+#: c-common.c:5853
+#, c-format
+msgid "`%s' defined both normally and as an alias"
+msgstr "`%s' hem normal hem de bir rumuz olarak tanımlanmış"
+
+#: c-common.c:5863
+msgid "alias arg not a string"
+msgstr "rumuz argümanı bir dizge değil"
+
+#: c-common.c:5910
+msgid "visibility arg not a string"
+msgstr "görünürlük argümanı bir dizge değil"
+
+#: c-common.c:5919
+msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+msgstr "görünürlük \"default\", \"hidden\", \"protected\" veya \"internal\" değerlerinden biri olmalıdır"
+
+#: c-common.c:5953
+msgid "tls_model arg not a string"
+msgstr "tls_model argümanı bir dizge değil"
+
+#: c-common.c:5962
+msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+msgstr "tls_model \"local-exec\", \"initial-exec\", \"local-dynamic\" veya \"global-dynamic\" değerlerinden biri olmalı"
+
+#: c-common.c:5987 c-common.c:6043
+#, c-format
+msgid "`%s' attribute applies only to functions"
+msgstr "`%s' özelliği sadece işlevlere uygulanır"
+
+#: c-common.c:5994 c-common.c:6050
+#, c-format
+msgid "can't set `%s' attribute after definition"
+msgstr "`%s' özelliğine tanımlandıktan sonra değer atanamaz"
+
+#: c-common.c:6114
+msgid "cleanup arg not an identifier"
+msgstr "temizleme argümanı bir isim değil"
+
+#: c-common.c:6121
+msgid "cleanup arg not a function"
+msgstr "temizleme argümanı bir işlev değil"
+
+#: c-common.c:6183
+#, c-format
+msgid "`%s' attribute ignored for `%s'"
+msgstr "`%s' özelliği `%s' için yoksayıldı"
+
+#: c-common.c:6248
+#, c-format
+msgid "invalid vector type for attribute `%s'"
+msgstr "`%s' özelliği vektör tür geçersiz"
+
+#: c-common.c:6272 c-common.c:6304
+msgid "no vector mode with the size and type specified could be found"
+msgstr "belirtilen tür ve boyutta vektör kipi yok"
+
+#: c-common.c:6403
+msgid "nonnull attribute without arguments on a non-prototype"
+msgstr "bir prototip olmayanda argümansız null olmayan özellik"
+
+#: c-common.c:6418
+#, c-format
+msgid "nonnull argument has invalid operand number (arg %lu)"
+msgstr "null olmayan argüman geçersiz sayıda terim içeriyor (%lu. argüman)"
+
+#: c-common.c:6437
+#, c-format
+msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+msgstr "null olmayan argüman kapsamdışı sayıda terim içeriyor (%lu. argüman, %lu. terim)"
+
+#: c-common.c:6445
+#, c-format
+msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+msgstr "null olmayan argüman gösterici olmayan terime başvuruyor (%lu. argüman, %lu. terim)"
-#: c-convert.c:78 c-typeck.c:1035 c-typeck.c:4047 cp/typeck.c:1673 cp/typeck.c:6165
+#: c-common.c:6531
+#, c-format
+msgid "null argument where non-null required (arg %lu)"
+msgstr "null olamayan gerekiren yerde null argüman (%lu. argüman)"
+
+#: c-convert.c:80 c-typeck.c:988 c-typeck.c:4059 cp/typeck.c:1615
+#: cp/typeck.c:5939
msgid "void value not ignored as it ought to be"
msgstr "void değer yoksayılması gerekirken yoksayılmadı"
-#: c-convert.c:110 java/typeck.c:150
+#: c-convert.c:112 java/typeck.c:150
msgid "conversion to non-scalar type requested"
msgstr "sayısal olmayan türe dönüşüm istendi"
-#: c-decl.c:476
-msgid "-traditional is deprecated and may be removed"
-msgstr "-traditional kullanımdan kalkacak ve kalkmış da olabilir"
-
-#: c-decl.c:566
-#, c-format
-msgid "unknown C standard `%s'"
-msgstr "`%s' diye bir C standardı bilinmiyor"
-
-#: c-decl.c:848
+#: c-decl.c:340
#, c-format
msgid "array `%s' assumed to have one element"
msgstr "`%s' dizisi tek elemanlı kabul edildi"
-#: c-decl.c:1024
+#: c-decl.c:526
#, c-format
msgid "`struct %s' incomplete in scope ending here"
msgstr "kapsam sonuna gelindiÄŸinde `struct %s' hala eksik"
-#: c-decl.c:1027
+#: c-decl.c:529
#, c-format
msgid "`union %s' incomplete in scope ending here"
msgstr "kapsam sonuna gelindiÄŸinde `union %s' hala eksik"
-#: c-decl.c:1030
+#: c-decl.c:532
#, c-format
msgid "`enum %s' incomplete in scope ending here"
msgstr "kapsam sonuna gelindiÄŸinde `enum %s' hala eksik"
-#: c-decl.c:1144 c-decl.c:1285 java/decl.c:1377
+#: c-decl.c:646 c-decl.c:771 java/decl.c:1403
#, c-format
msgid "label `%s' used but not defined"
msgstr "`%s' etiketi tanımsız kullanılmış"
-#: c-decl.c:1150 c-decl.c:1292 java/decl.c:1383
+#: c-decl.c:652 c-decl.c:778 java/decl.c:1409
#, c-format
msgid "label `%s' defined but not used"
msgstr "`%s' etiketi tanımlı ama kullanılmamış"
-#: c-decl.c:1409 cp/decl.c:3128
+#: c-decl.c:893 cp/decl.c:3335
#, c-format
msgid "function `%s' redeclared as inline"
msgstr "iÅŸlev `%s' 'inline' olarak yeniden bildirilmiÅŸ"
-#: c-decl.c:1411 cp/decl.c:3130
+#: c-decl.c:895 cp/decl.c:3337
#, c-format
msgid "previous declaration of function `%s' with attribute noinline"
msgstr "`%s' işlevinin önceki bildirimi 'inline' değil"
-#: c-decl.c:1418 cp/decl.c:3137
+#: c-decl.c:902 cp/decl.c:3344
#, c-format
msgid "function `%s' redeclared with attribute noinline"
msgstr "`%s' iÅŸlevinin bildirimi 'inline' deÄŸil"
-#: c-decl.c:1420 cp/decl.c:3139
+#: c-decl.c:904 cp/decl.c:3346
#, c-format
msgid "previous declaration of function `%s' was inline"
msgstr "`%s' işlevinin önceki bildirimi 'inline' idi"
-#: c-decl.c:1449 c-decl.c:1502
+#: c-decl.c:933 c-decl.c:979
#, c-format
msgid "shadowing built-in function `%s'"
msgstr "yerleşik `%s' işlevinin gölgelenmesi"
-#: c-decl.c:1451
+#: c-decl.c:935
#, c-format
msgid "shadowing library function `%s'"
msgstr "kitaplık işlevi `%s'in gölgelenmesi"
-#: c-decl.c:1457
+#: c-decl.c:941
#, c-format
msgid "library function `%s' declared as non-function"
msgstr "kitaplık işlevi `%s' işlev olarak bildirilmemiş"
-#: c-decl.c:1461 c-decl.c:1464
+#: c-decl.c:945 c-decl.c:948
#, c-format
msgid "built-in function `%s' declared as non-function"
msgstr "yerleÅŸik iÅŸlev `%s' iÅŸlev olarak bildirilmemiÅŸ"
-#: c-decl.c:1468 objc/objc-act.c:2334 objc/objc-act.c:6036
+#: c-decl.c:952 objc/objc-act.c:2384 objc/objc-act.c:6154
#, c-format
msgid "`%s' redeclared as different kind of symbol"
msgstr "`%s' farklı bir sembol çeşidi olarak tekrar bildirilmiş"
-#: c-decl.c:1469 c-decl.c:1667 c-decl.c:1817 objc/objc-act.c:2336 objc/objc-act.c:6038 objc/objc-act.c:6093
+#: c-decl.c:953 c-decl.c:1144 c-decl.c:1158 c-decl.c:1165 c-decl.c:1310
+#: objc/objc-act.c:2386 objc/objc-act.c:6156 objc/objc-act.c:6211
#, c-format
msgid "previous declaration of `%s'"
msgstr "`%s'in önceki bildirimi"
#. If types don't match for a built-in, throw away the built-in.
-#: c-decl.c:1571
+#: c-decl.c:1048
#, c-format
msgid "conflicting types for built-in function `%s'"
msgstr "yerleşik işlev `%s' için tür çelişkisi"
-#: c-decl.c:1614 c-decl.c:1633
+#: c-decl.c:1091 c-decl.c:1110
#, c-format
msgid "conflicting types for `%s'"
msgstr "`%s' için tür çelişkisi"
-#: c-decl.c:1656
+#: c-decl.c:1133
msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
msgstr "Üç noktalı bir parametre listesi bir boş parametre isim listesi bildirimi ile eşleşemez"
-#: c-decl.c:1662
+#: c-decl.c:1139
msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
msgstr "Bir öntanımlı yükseltme içeren bir argüman türü, bir boş parametre isim listesi bildirimi ile eşleşemez"
-#: c-decl.c:1677 c-decl.c:1700
+#: c-decl.c:1157
+#, c-format
+msgid "thread-local declaration of `%s' follows non thread-local declaration"
+msgstr "`%s' yerel evreli bildirimi yerel olmayan evreli bildirim izliyor"
+
+#: c-decl.c:1164
+#, c-format
+msgid "non thread-local declaration of `%s' follows thread-local declaration"
+msgstr "`%s' yerel olmayan evreli bildirimi yerel evreli bildirim izliyor"
+
+#: c-decl.c:1175 c-decl.c:1198
#, c-format
msgid "redefinition of `%s'"
msgstr "`%s'in yeniden tanımlanması"
-#: c-decl.c:1680
+#: c-decl.c:1178
#, c-format
msgid "redeclaration of `%s'"
msgstr "`%s'in yeniden bildirimi"
-#: c-decl.c:1683
+#: c-decl.c:1181
#, c-format
msgid "conflicting declarations of `%s'"
msgstr "`%s' bildirimlerinde çelişki"
-#: c-decl.c:1727
+#: c-decl.c:1225
#, c-format
msgid "prototype for `%s' follows"
msgstr "`%s' için prototip izleniyor"
-#: c-decl.c:1728 c-decl.c:1736 c-decl.c:1752
+#: c-decl.c:1226 c-decl.c:1234 c-decl.c:1245
msgid "non-prototype definition here"
msgstr "buradaki tanımlama prototip değil"
-#: c-decl.c:1735
+#: c-decl.c:1233
#, c-format
msgid "prototype for `%s' follows and number of arguments doesn't match"
msgstr "`%s' için prototip izleniyor ve argüman sayısı eşleşmiyor"
-#: c-decl.c:1750
+#: c-decl.c:1243
#, c-format
msgid "prototype for `%s' follows and argument %d doesn't match"
msgstr "`%s' için prototip izleniyor ve %d. argüman eşleşmiyor"
-#: c-decl.c:1768
+#: c-decl.c:1261
#, c-format
msgid "`%s' declared inline after being called"
msgstr "`%s' çağrıldıktan sonra `inline' bildirilmiş"
-#: c-decl.c:1774
+#: c-decl.c:1267
#, c-format
msgid "`%s' declared inline after its definition"
msgstr "`%s' tanımlandıktan sonra `inline' bildirilmiş"
-#: c-decl.c:1781
+#: c-decl.c:1274
#, c-format
msgid "static declaration for `%s' follows non-static"
msgstr "`%s' için 'static' bildirimi statik olmayan izliyor"
-#: c-decl.c:1789
+#: c-decl.c:1282
#, c-format
msgid "non-static declaration for `%s' follows static"
msgstr "`%s' için 'static' olmayan bildirimi statik izliyor"
-#: c-decl.c:1796
+#: c-decl.c:1289
#, c-format
msgid "const declaration for `%s' follows non-const"
msgstr "`%s' için 'const' bildirimi sabit olmayan izliyor"
-#: c-decl.c:1803
+#: c-decl.c:1296
#, c-format
msgid "type qualifiers for `%s' conflict with previous decl"
msgstr "`%s' için tür niteleyicileri önceki bildirimle çelişiyor"
-#: c-decl.c:1816
+#: c-decl.c:1309
#, c-format
msgid "redundant redeclaration of `%s' in same scope"
msgstr "`%s'in aynı alandaki anlamsız yeniden bildirimi"
-#: c-decl.c:2120 java/decl.c:1076
+#: c-decl.c:1619 java/decl.c:1102
#, c-format
msgid "declaration of `%s' shadows a parameter"
msgstr "`%s' bildirimi bir parametreyi gölgeliyor"
-#: c-decl.c:2123 java/decl.c:1079
+#: c-decl.c:1622 java/decl.c:1105
#, c-format
msgid "declaration of `%s' shadows a symbol from the parameter list"
msgstr "`%s' bildirimi parametre listesinden bir sembolü gölgeliyor"
-#: c-decl.c:2144 cp/decl.c:4236
+#: c-decl.c:1643 cp/decl.c:4479
msgid "a parameter"
msgstr "bir parametre"
-#: c-decl.c:2146 cp/decl.c:4253
+#: c-decl.c:1645 cp/decl.c:4496
msgid "a previous local"
msgstr "önceki yerel"
#. XXX shadow warnings in outer-more namespaces
-#: c-decl.c:2150 cp/decl.c:4257
+#: c-decl.c:1649 cp/decl.c:4500
msgid "a global declaration"
msgstr "bir genel bildirim"
-#: c-decl.c:2194
+#: c-decl.c:1693
#, c-format
msgid "nested extern declaration of `%s'"
msgstr "`%s'in iç içe 'extern' bildirimi"
-#: c-decl.c:2216 java/decl.c:1029
+#: c-decl.c:1712 java/decl.c:1055
#, c-format
msgid "`%s' used prior to declaration"
msgstr "`%s' bildirim öncesi kullanılmış"
-#: c-decl.c:2231 c-decl.c:2446
+#: c-decl.c:1726 c-decl.c:1901
#, c-format
msgid "`%s' was declared implicitly `extern' and later `static'"
msgstr "`%s' önce örtük olarak `extern' sonra da `static' bildirilmiş"
-#: c-decl.c:2341 cp/decl.c:4095
+#: c-decl.c:1829 cp/decl.c:4336
msgid "type mismatch with previous external decl"
msgstr "tür önceki external bildirimle çatışıyor"
-#: c-decl.c:2342
+#: c-decl.c:1830
#, c-format
msgid "previous external decl of `%s'"
msgstr "`%s'in önceki 'external' bildirimi"
-#: c-decl.c:2355
+#: c-decl.c:1843
msgid "type mismatch with previous implicit declaration"
-msgstr "tür önceki örtük bildirimle çatışıyor"
+msgstr "tür önceki örtük bildirimle çelişiyor"
-#: c-decl.c:2357
+#: c-decl.c:1845
#, c-format
msgid "previous implicit declaration of `%s'"
-msgstr "`%s'in önceki örtük bildirimi"
-
-#: c-decl.c:2374
-#, c-format
-msgid "type of external `%s' is not global"
-msgstr "external `%s' türü genel değil"
+msgstr "`%s' örtük bildirilmiş"
-#: c-decl.c:2425
+#: c-decl.c:1880
#, c-format
msgid "`%s' was previously implicitly declared to return `int'"
-msgstr "`%s' dönen `int' ile önceden örtük bildirilmiş"
+msgstr "`%s' işlevinin geridönüş türü `int' türünde örtük bildirilmiş"
-#: c-decl.c:2450
+#: c-decl.c:1905
#, c-format
msgid "`%s' was declared `extern' and later `static'"
msgstr "`%s' önce `extern' sonra da `static' bildirilmiş"
-#: c-decl.c:2474
+#: c-decl.c:1929
#, c-format
msgid "extern declaration of `%s' doesn't match global one"
msgstr "`%s'in extern bildirimi genel olanıyla uyuşmuyor"
-#: c-decl.c:2516
+#: c-decl.c:1971
#, c-format
msgid "`%s' locally external but globally static"
msgstr "`%s' yerel olarak external ama genel olarak static"
-#: c-decl.c:2638
+#: c-decl.c:2095
#, c-format
msgid "function `%s' was previously declared within a block"
msgstr "`%s' işlevi evvelce bir blok içinde bildirilmiş"
-#: c-decl.c:2658 c-decl.c:2660
+#: c-decl.c:2115 c-decl.c:2117
#, c-format
msgid "implicit declaration of function `%s'"
msgstr "`%s' işlevinin örtük bildirimi"
-#: c-decl.c:2748
+#: c-decl.c:2196
#, c-format
msgid "label %s referenced outside of any function"
msgstr "%s etiketi işlev dışı referanslı"
-#: c-decl.c:2805
+#: c-decl.c:2253
#, c-format
msgid "duplicate label declaration `%s'"
msgstr "`%s' etiketi birden fazla bildirilmiÅŸ"
-#: c-decl.c:2808
+#: c-decl.c:2256
msgid "this is a previous declaration"
msgstr "bu, önce bildirimdir"
-#: c-decl.c:3320
+#: c-decl.c:2679
msgid "unnamed struct/union that defines no instances"
msgstr "ilk tanımı olmayan adsız struct/union"
-#: c-decl.c:3339
+#: c-decl.c:2698
msgid "useless keyword or type name in empty declaration"
msgstr "boş bildirimde kullanışsız tür ismi ya da anahtar sözcük"
-#: c-decl.c:3346
+#: c-decl.c:2705
msgid "two types specified in one empty declaration"
msgstr "bir boş bildirimde iki veri türü belirtilmiş"
-#: c-decl.c:3351 c-parse.y:725 c-parse.y:727 parse.y:742 parse.y:1827 objc-parse.y:761 objc-parse.y:763 objc-parse.y:2997
+#: c-decl.c:2710 c-parse.y:753 c-parse.y:755 parse.y:766 parse.y:1853
+#: objc-parse.y:799 objc-parse.y:801 objc-parse.y:3042
msgid "empty declaration"
msgstr "boÅŸ bildirim"
-#: c-decl.c:3381
-msgid "ISO C89 does not support `static' or type qualifiers in parameter array declarators"
-msgstr "ISO C89, parametre dizisi bildirimlerinde `static' ve tür niteleyicileri desteklemez"
+#: c-decl.c:2740
+msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+msgstr "ISO C90, parametre dizisi bildirimlerinde `static' ve tür niteleyicileri desteklemez"
-#: c-decl.c:3383
-msgid "ISO C89 does not support `[*]' array declarators"
-msgstr "ISO C89 dizi bildirimlerinde `[*]' desteklemez"
+#: c-decl.c:2742
+msgid "ISO C90 does not support `[*]' array declarators"
+msgstr "ISO C90 dizi bildirimlerinde `[*]' desteklemez"
-#: c-decl.c:3386
+#: c-decl.c:2745
msgid "GCC does not yet properly implement `[*]' array declarators"
msgstr "GCC `[*]' dizi bildirimlerini henüz tam desteklemiyor"
-#: c-decl.c:3405
+#: c-decl.c:2764
msgid "static or type qualifiers in abstract declarator"
msgstr "kuramsal bildirimde 'static' ya da tür niteleyiciler"
-#: c-decl.c:3479
+#: c-decl.c:2838
#, c-format
msgid "`%s' is usually a function"
msgstr "`%s' çogu kez bir işlevdir"
-#: c-decl.c:3493
+#: c-decl.c:2847
#, c-format
-msgid "typedef `%s' is initialized"
-msgstr "typedef `%s' ilkdeÄŸerli"
+msgid "typedef `%s' is initialized (use __typeof__ instead)"
+msgstr "typedef `%s' ilkdeğerli (yerine __typeof__ kullanın)"
-#: c-decl.c:3500
+#: c-decl.c:2853
#, c-format
msgid "function `%s' is initialized like a variable"
msgstr "`%s' iÅŸlevi bir deÄŸiÅŸken gibi ilkdeÄŸerli"
#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
-#: c-decl.c:3507
+#: c-decl.c:2860
#, c-format
msgid "parameter `%s' is initialized"
msgstr "`%s' parametresi ilkdeÄŸerli"
-#: c-decl.c:3527 c-typeck.c:4841
+#: c-decl.c:2880 c-typeck.c:4895
msgid "variable-sized object may not be initialized"
msgstr "deÄŸiÅŸken-uzunluklu nesne ilkdeÄŸerli olmayabilir"
-#: c-decl.c:3533
+#: c-decl.c:2886
#, c-format
msgid "variable `%s' has initializer but incomplete type"
msgstr "`%s' değişkeni, veri türü tamamlanmayan bir ilkdeğere sahip"
-#: c-decl.c:3539
+#: c-decl.c:2892
#, c-format
msgid "elements of array `%s' have incomplete type"
msgstr "`%s' dizisinin elemanları tamamlanmayan veri türüne sahip"
-#: c-decl.c:3552
+#: c-decl.c:2905
#, c-format
msgid "declaration of `%s' has `extern' and is initialized"
msgstr "`%s' bildirimi hem `extern' hem de ilkdeÄŸerli"
-#: c-decl.c:3591 c-decl.c:6246 cp/decl.c:7368 cp/decl.c:13623
+#: c-decl.c:2954 c-decl.c:5828 cp/decl.c:7760 cp/decl.c:14339
#, c-format
msgid "inline function `%s' given attribute noinline"
msgstr "özümleme işlevi `%s' özümlenmeyen özellikle verilmiş"
-#: c-decl.c:3674
+#: c-decl.c:3028
#, c-format
msgid "initializer fails to determine size of `%s'"
msgstr "`%s'in uzunluğunu belirlemede ilkdeğer başarısız"
-#: c-decl.c:3679
+#: c-decl.c:3033
#, c-format
msgid "array size missing in `%s'"
msgstr "`%s' içinde dizi boyu eksik"
-#: c-decl.c:3695
+#: c-decl.c:3049
#, c-format
msgid "zero or negative size array `%s'"
msgstr "`%s' dizisi sıfır ya da negatif uzunlukta"
-#: c-decl.c:3723
+#: c-decl.c:3077
#, c-format
msgid "storage size of `%s' isn't known"
msgstr "`%s'in saklama uzunluÄŸu bilinmiyor"
-#: c-decl.c:3733
+#: c-decl.c:3087
#, c-format
msgid "storage size of `%s' isn't constant"
msgstr "`%s'in saklama uzunluÄŸu sabit deÄŸil"
-#: c-decl.c:3792
+#: c-decl.c:3147
#, c-format
msgid "ignoring asm-specifier for non-static local variable `%s'"
msgstr "static olmayan yerel değişken `%s' için asm-belirteci yoksayılıyor"
-#: c-decl.c:3867
+#: c-decl.c:3247
#, c-format
msgid "ISO C forbids parameter `%s' shadowing typedef"
msgstr "ISO C 'typedef' gölgeleyen `%s' parametresine izin vermez"
-#: c-decl.c:4171 cp/decl.c:10171
+#: c-decl.c:3592 cp/decl.c:10880
msgid "`long long long' is too long for GCC"
msgstr "`long long long' GCC için çok uzun"
-#: c-decl.c:4176
-msgid "ISO C89 does not support `long long'"
-msgstr "ISO C89 `long long'u desteklemez"
+#: c-decl.c:3597
+msgid "ISO C90 does not support `long long'"
+msgstr "ISO C90 `long long'u desteklemez"
-#: c-decl.c:4181 cp/decl.c:10176
+#: c-decl.c:3606 c-decl.c:3609 cp/decl.c:10885
#, c-format
msgid "duplicate `%s'"
msgstr "`%s' yinelenmiÅŸ"
-#: c-decl.c:4187 cp/decl.c:10200
+#: c-decl.c:3619 cp/decl.c:10892
+msgid "`__thread' before `extern'"
+msgstr "`extern' öncesinde `__thread'"
+
+#: c-decl.c:3621 cp/decl.c:10894
+msgid "`__thread' before `static'"
+msgstr "`static' öncesinde `__thread'"
+
+#: c-decl.c:3629 cp/decl.c:10921
#, c-format
msgid "two or more data types in declaration of `%s'"
msgstr "`%s'in bildiriminde iki veya daha fazla veri türü"
-#: c-decl.c:4207 cp/decl.c:10205
+#: c-decl.c:3649 cp/decl.c:10926
#, c-format
msgid "`%s' fails to be a typedef or built in type"
msgstr "`%s' bir typedef veya yerleşik veri türü olarak hatalı"
-#: c-decl.c:4246
+#: c-decl.c:3688
#, c-format
msgid "type defaults to `int' in declaration of `%s'"
msgstr "`%s' bildiriminde tür `int'e öntanımlı"
-#: c-decl.c:4275
+#: c-decl.c:3717
#, c-format
msgid "both long and short specified for `%s'"
msgstr "`%s' için hem long hem de short belirtilmiş"
-#: c-decl.c:4279 cp/decl.c:10320
+#: c-decl.c:3721 cp/decl.c:11041
#, c-format
msgid "long or short specified with char for `%s'"
msgstr "`%s' için long veya short ile char türü değer belirtilmiş"
-#: c-decl.c:4286 cp/decl.c:10324
+#: c-decl.c:3728 cp/decl.c:11045
#, c-format
msgid "long or short specified with floating type for `%s'"
msgstr "`%s' için long veya short ile gerçel sayı değer belirtilmiş"
-#: c-decl.c:4289
+#: c-decl.c:3731
msgid "the only valid combination is `long double'"
msgstr "tek geçerli bileşim long double'dır"
-#: c-decl.c:4295
+#: c-decl.c:3737
#, c-format
msgid "both signed and unsigned specified for `%s'"
msgstr "`%s' için hem signed hem de unsigned belirtilmiş"
-#: c-decl.c:4297 cp/decl.c:10313
+#: c-decl.c:3739 cp/decl.c:11034
#, c-format
msgid "long, short, signed or unsigned invalid for `%s'"
msgstr "`%s' için long, short, signed ya da unsigned geçersiz"
-#: c-decl.c:4303 cp/decl.c:10333
+#: c-decl.c:3745 cp/decl.c:11054
#, c-format
msgid "long, short, signed or unsigned used invalidly for `%s'"
msgstr "`%s' için long, short, signed ya da unsigned geçersizce kullanılmış"
-#: c-decl.c:4322 cp/decl.c:10354
+#: c-decl.c:3763 cp/decl.c:11075
#, c-format
msgid "complex invalid for `%s'"
msgstr "`%s' için karmaşık geçersizlik"
-#: c-decl.c:4367
-msgid "ISO C89 does not support complex types"
-msgstr "ISO C89 karmaşık türleri desteklemez"
+#: c-decl.c:3805
+msgid "ISO C90 does not support complex types"
+msgstr "ISO C90 karmaşık türleri desteklemez"
-#: c-decl.c:4379
+#: c-decl.c:3817
msgid "ISO C does not support plain `complex' meaning `double complex'"
msgstr "ISO C salt `complex'i `double complex' anlamında desteklemez"
-#: c-decl.c:4385 c-decl.c:4397
+#: c-decl.c:3823 c-decl.c:3835
msgid "ISO C does not support complex integer types"
msgstr "ISO C karmaşık tamsayı türleri desteklemez"
-#: c-decl.c:4412 c-decl.c:4851 cp/decl.c:10969
+#: c-decl.c:3850 c-decl.c:4316 cp/decl.c:11688
msgid "duplicate `const'"
msgstr "`const' yinelenmiÅŸ"
-#: c-decl.c:4414 c-decl.c:4855 cp/decl.c:10973
+#: c-decl.c:3852 c-decl.c:4320 cp/decl.c:11692
msgid "duplicate `restrict'"
msgstr "`restrict' yinelenmiÅŸ"
-#: c-decl.c:4416 c-decl.c:4853 cp/decl.c:10971
+#: c-decl.c:3854 c-decl.c:4318 cp/decl.c:11690
msgid "duplicate `volatile'"
msgstr "`volatile' yinelenmiÅŸ"
-#: c-decl.c:4438 cp/decl.c:10509
+#: c-decl.c:3882 cp/decl.c:11238
#, c-format
msgid "multiple storage classes in declaration of `%s'"
msgstr "`%s' bildirimi içinde çok sayıda saklama sınıfı"
-#: c-decl.c:4447
+#: c-decl.c:3892
msgid "function definition declared `auto'"
msgstr "işlev tanımı `auto' olarak bildirildi"
-#: c-decl.c:4449
+#: c-decl.c:3894
msgid "function definition declared `register'"
msgstr "işlev tanımı `register' olarak bildirildi"
-#: c-decl.c:4451
+#: c-decl.c:3896
msgid "function definition declared `typedef'"
msgstr "işlev tanımı `typedef' olarak bildirildi"
-#: c-decl.c:4464
+#: c-decl.c:3898
+msgid "function definition declared `__thread'"
+msgstr "işlev tanımı `__thread' olarak bildirildi"
+
+#: c-decl.c:3911
#, c-format
msgid "storage class specified for structure field `%s'"
msgstr "`%s' yapı alan için saklama sınıfı belirtildi"
-#: c-decl.c:4468 cp/decl.c:10556
+#: c-decl.c:3915 cp/decl.c:11285
#, c-format
msgid "storage class specified for parameter `%s'"
msgstr "`%s' parametresi için saklama sınıfı belirtildi"
-#: c-decl.c:4471 cp/decl.c:10558
+#: c-decl.c:3918 cp/decl.c:11287
msgid "storage class specified for typename"
msgstr "veri türü ismi için saklama sınıfı belirtildi"
-#: c-decl.c:4483 cp/decl.c:10572
+#: c-decl.c:3930 cp/decl.c:11302
#, c-format
msgid "`%s' initialized and declared `extern'"
msgstr "`%s' ilklendirildikten sonra `extern' olarak bildirilmiÅŸ"
-#: c-decl.c:4485 cp/decl.c:10575
+#: c-decl.c:3932 cp/decl.c:11305
#, c-format
msgid "`%s' has both `extern' and initializer"
msgstr "`%s' hem `extern' olarak bildirilmiş hem de öndeğer almış"
-#: c-decl.c:4489 cp/decl.c:10579
+#: c-decl.c:3937 cp/decl.c:11313
+#, c-format
+msgid "top-level declaration of `%s' specifies `auto'"
+msgstr "`%s' için tepe-seviye bildirimi `auto' belirtiyor"
+
+#: c-decl.c:3942 cp/decl.c:11309
#, c-format
msgid "nested function `%s' declared `extern'"
msgstr "yuvalanmış işlev `%s' `extern' olarak bildirilmiş"
-#: c-decl.c:4492 cp/decl.c:10583
+#: c-decl.c:3948 cp/decl.c:11319
#, c-format
-msgid "top-level declaration of `%s' specifies `auto'"
-msgstr "`%s' için tepe-seviye bildirimi `auto' belirtiyor"
+msgid "function-scope `%s' implicitly auto and declared `__thread'"
+msgstr "`%s' işlevinin etki alanı dolaylı olarak auto ve `__thread' bildirimli"
#. Only the innermost declarator (making a parameter be of
#. array type which is converted to pointer type)
#. may have static or type qualifiers.
-#: c-decl.c:4527 c-decl.c:4716
+#: c-decl.c:3987 c-decl.c:4188
msgid "static or type qualifiers in non-parameter array declarator"
msgstr "parametresiz dizi bildirimi içinde 'static' veya tür niteleyiciler"
-#: c-decl.c:4571
+#: c-decl.c:4031
#, c-format
msgid "declaration of `%s' as array of voids"
msgstr "`%s' void'ler dizisi olarak bildirilmiÅŸ"
-#: c-decl.c:4577
+#: c-decl.c:4037
#, c-format
msgid "declaration of `%s' as array of functions"
msgstr "`%s' iÅŸlevler dizisi olarak bildirilmiÅŸ"
-#: c-decl.c:4598
+#: c-decl.c:4042 c-decl.c:5332
+msgid "invalid use of structure with flexible array member"
+msgstr "esnek dizi üyeli yapı kullanımı geçersiz"
+
+#: c-decl.c:4061
#, c-format
msgid "size of array `%s' has non-integer type"
msgstr "`%s' dizisinin boyutu tamsayı değil"
-#: c-decl.c:4603
+#: c-decl.c:4066
#, c-format
msgid "ISO C forbids zero-size array `%s'"
msgstr "ISO C sıfır boyutlu `%s' dizisini yasaklar"
-#: c-decl.c:4610
+#: c-decl.c:4073
#, c-format
msgid "size of array `%s' is negative"
msgstr "`%s' dizisinin boyutu negatif"
-#: c-decl.c:4623
+#: c-decl.c:4086
#, c-format
-msgid "ISO C89 forbids array `%s' whose size can't be evaluated"
-msgstr "ISO C89 deÄŸerlendirilemeyen boyutlu `%s' dizisini yasaklar"
+msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+msgstr "ISO C90 deÄŸerlendirilemeyen boyutlu `%s' dizisini yasaklar"
-#: c-decl.c:4626
+#: c-decl.c:4089
#, c-format
-msgid "ISO C89 forbids variable-size array `%s'"
-msgstr "ISO C89 deÄŸiÅŸken boyutlu `%s' dizisini yasaklar"
+msgid "ISO C90 forbids variable-size array `%s'"
+msgstr "ISO C90 deÄŸiÅŸken boyutlu `%s' dizisini yasaklar"
-#: c-decl.c:4656 c-decl.c:4877 cp/decl.c:11179
+#: c-decl.c:4119 c-decl.c:4342 cp/decl.c:11897
#, c-format
msgid "size of array `%s' is too large"
msgstr "`%s' dizisinin boyutu çok büyük"
-#: c-decl.c:4673
-msgid "ISO C89 does not support flexible array members"
-msgstr "ISO C89 esnek dizi üyelerini desteklemez"
+#: c-decl.c:4145
+msgid "ISO C90 does not support flexible array members"
+msgstr "ISO C90 esnek dizi üyelerini desteklemez"
-#: c-decl.c:4683
+#: c-decl.c:4155
msgid "array type has incomplete element type"
msgstr "dizi türü içi boş öğe türü içeriyor"
-#: c-decl.c:4690 c-decl.c:4927
+#: c-decl.c:4162 c-decl.c:4392
msgid "ISO C forbids const or volatile function types"
msgstr "ISO C 'const' ya da 'volatile' işlev türlerini yasaklar"
-#: c-decl.c:4736 cp/decl.c:10720
+#: c-decl.c:4208 cp/decl.c:11445
#, c-format
msgid "`%s' declared as function returning a function"
msgstr "`%s' bir işlevle sonuçlanan bir işlev olarak bildirilmiş"
-#: c-decl.c:4741 cp/decl.c:10725
+#: c-decl.c:4213 cp/decl.c:11450
#, c-format
msgid "`%s' declared as function returning an array"
msgstr "`%s' bir dizi ile sonuçlanan bir işlev olarak bildirilmiş"
-#: c-decl.c:4776
+#: c-decl.c:4241
msgid "ISO C forbids qualified void function return type"
msgstr "ISO C nitelemeli 'void' işlev dönüş türünü yasaklar"
-#: c-decl.c:4780
+#: c-decl.c:4245
msgid "type qualifiers ignored on function return type"
msgstr "tür niteleyicileri işlev dönen türünde yok sayıldı"
-#: c-decl.c:4809 c-decl.c:4892 c-decl.c:5016 c-decl.c:5110
+#: c-decl.c:4274 c-decl.c:4357 c-decl.c:4481 c-decl.c:4573
msgid "ISO C forbids qualified function types"
msgstr "ISO C nitelemeli işlev türlerini yasaklar"
-#: c-decl.c:4849 cp/decl.c:10965
+#: c-decl.c:4314 cp/decl.c:11684
msgid "invalid type modifier within pointer declarator"
-msgstr "gösterge bildirgeci içinde geçersiz tür değiştirici"
+msgstr "gösterici bildirimi içinde geçersiz tür değiştirici"
-#: c-decl.c:4947 cp/decl.c:11457
+#: c-decl.c:4412 cp/decl.c:12182
#, c-format
msgid "variable or field `%s' declared void"
msgstr "`%s' değişkeni ya da alanı void olarak bildirilmiş"
-#: c-decl.c:4980
+#: c-decl.c:4445
msgid "attributes in parameter array declarator ignored"
msgstr "parametre dizisi bildirimindeki özellikler yoksayıldı"
-#: c-decl.c:5005
+#: c-decl.c:4470
msgid "invalid type modifier within array declarator"
msgstr "dizi bildirimi içinde geçersiz tür değiştirici"
-#: c-decl.c:5054
+#: c-decl.c:4515
#, c-format
msgid "field `%s' declared as a function"
msgstr "`%s' alanı bir işlev olarak bildirilmiş"
-#: c-decl.c:5060
+#: c-decl.c:4521
#, c-format
msgid "field `%s' has incomplete type"
msgstr "`%s' alanı tamamlanmamış türde"
-#: c-decl.c:5092 c-decl.c:5094 c-decl.c:5101
+#: c-decl.c:4553 c-decl.c:4555 c-decl.c:4557 c-decl.c:4564
#, c-format
msgid "invalid storage class for function `%s'"
msgstr "`%s' işlevi için geçersiz saklama sınıfı"
-#: c-decl.c:5116
+#: c-decl.c:4579
msgid "`noreturn' function returns non-void value"
msgstr "`noreturn' iÅŸlevinin sonucu void deÄŸil"
-#: c-decl.c:5131
+#: c-decl.c:4594
msgid "cannot inline function `main'"
msgstr "`main' özümlenen işlev olamaz"
-#: c-decl.c:5184
+#: c-decl.c:4649
#, c-format
msgid "variable `%s' declared `inline'"
msgstr "deÄŸiÅŸken `%s' `inline' bildirilmiÅŸ"
-#: c-decl.c:5257 c-decl.c:6298
+#. A mere warning is sure to result in improper semantics
+#. at runtime. Don't bother to allow this to compile.
+#: c-decl.c:4677 cp/decl.c:9951
+msgid "thread-local storage not supported for this target"
+msgstr "bu hedefte yerel evreli saklama desteklenmiyor"
+
+#: c-decl.c:4732 c-decl.c:5880
msgid "function declaration isn't a prototype"
msgstr "iÅŸlev bildirimi bir prototip deÄŸil"
-#: c-decl.c:5263
+#: c-decl.c:4738
msgid "parameter names (without types) in function declaration"
msgstr "işlev bildiriminde (türleri belirtmeksizin) parametre isimleri"
-#: c-decl.c:5295 c-decl.c:6689
+#: c-decl.c:4770 c-decl.c:6250
#, c-format
msgid "parameter `%s' has incomplete type"
msgstr "`%s' parametresi tamamlanmamış türde"
-#: c-decl.c:5298
+#: c-decl.c:4773
msgid "parameter has incomplete type"
msgstr "parametre tamamlanmamış türde"
-#: c-decl.c:5319
+#: c-decl.c:4794
#, c-format
msgid "parameter `%s' points to incomplete type"
msgstr "parametre `%s' içi boş türü gösteriyor"
-#: c-decl.c:5322
+#: c-decl.c:4797
msgid "parameter points to incomplete type"
msgstr "parametre içi boş türü gösteriyor"
-#: c-decl.c:5387
+#: c-decl.c:4862
#, c-format
msgid "parameter `%s' has just a forward declaration"
msgstr "`%s' parametresi tam bir ilerletme bildirimi"
-#: c-decl.c:5428
+#: c-decl.c:4903
msgid "`void' in parameter list must be the entire list"
msgstr "parametre listesindeki void listenin tamamı olmalıydı"
-#: c-decl.c:5459
+#: c-decl.c:4934
#, c-format
msgid "`struct %s' declared inside parameter list"
msgstr "`struct %s' parametre listesinin içinde bildirilmiş"
-#: c-decl.c:5462
+#: c-decl.c:4937
#, c-format
msgid "`union %s' declared inside parameter list"
msgstr "`union %s' parametre listesi içinde bildirilmiş"
-#: c-decl.c:5465
+#: c-decl.c:4940
#, c-format
msgid "`enum %s' declared inside parameter list"
msgstr "`enum %s' parametre listesi içinde bildirilmiş"
-#: c-decl.c:5472
+#: c-decl.c:4947
msgid "anonymous struct declared inside parameter list"
msgstr "anonim yapı parametre listesinin içinde bildirilmiş"
-#: c-decl.c:5474
+#: c-decl.c:4949
msgid "anonymous union declared inside parameter list"
msgstr "anonim birleşik yapı parametre listesinin içinde bildirilmiş"
-#: c-decl.c:5476
+#: c-decl.c:4951
msgid "anonymous enum declared inside parameter list"
msgstr "anonim enum parametre listesinin içinde bildirilmiş"
-#: c-decl.c:5480
+#: c-decl.c:4955
msgid "its scope is only this definition or declaration, which is probably not what you want"
msgstr "O sadece bu tanımın ya da bildirimin kapsamında, sizin istediğiniz bu olmayabilir"
-#: c-decl.c:5559
+#: c-decl.c:5032
#, c-format
msgid "redefinition of `union %s'"
msgstr "`union %s' tekrar tanımlanmış"
-#: c-decl.c:5562
+#: c-decl.c:5034
#, c-format
msgid "redefinition of `struct %s'"
msgstr "`struct %s' tekrar tanımlanmış"
-#: c-decl.c:5601
-msgid "unnamed fields of type other than struct or union are not allowed"
-msgstr "isimsiz alanlara struct ve union dışında izin verilmiyor"
+#: c-decl.c:5105 cp/decl.c:7532
+msgid "declaration does not declare anything"
+msgstr "bildirim hiçbir şey bildirmiyor"
-#: c-decl.c:5642 c-decl.c:5645
+#: c-decl.c:5169 c-decl.c:5172
#, c-format
msgid "%s defined inside parms"
msgstr "%s parametrelerin içinde tanımlanmış"
-#: c-decl.c:5643 c-decl.c:5646 c-decl.c:5657
+#: c-decl.c:5170 c-decl.c:5173 c-decl.c:5184
msgid "union"
msgstr "birleşik yapı"
-#: c-decl.c:5643 c-decl.c:5646
+#: c-decl.c:5170 c-decl.c:5173
msgid "structure"
msgstr "yapı"
-#: c-decl.c:5656
+#: c-decl.c:5183
#, c-format
msgid "%s has no %s"
msgstr "%s %s içermiyor"
-#: c-decl.c:5657
+#: c-decl.c:5184
msgid "struct"
msgstr "yapı"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "named members"
msgstr "isimli üyeleri yok"
-#: c-decl.c:5658
+#: c-decl.c:5185
msgid "members"
msgstr "üyeleri yok"
-#: c-decl.c:5697
+#: c-decl.c:5224
#, c-format
msgid "nested redefinition of `%s'"
msgstr "`%s' içiçe yeniden tanımlanmış"
-#: c-decl.c:5710
+#: c-decl.c:5237
#, c-format
msgid "bit-field `%s' width not an integer constant"
msgstr "`%s' bit alanı genişliği bir tamsayı sabit değil"
-#: c-decl.c:5721
+#: c-decl.c:5248
#, c-format
msgid "bit-field `%s' has invalid type"
msgstr "`%s' bit alanı geçersiz tür içeriyor"
-#: c-decl.c:5733
+#: c-decl.c:5260
#, c-format
msgid "bit-field `%s' type invalid in ISO C"
msgstr "`%s' bit alanının türü ISO C'de geçersiz"
-#: c-decl.c:5744
+#: c-decl.c:5271
#, c-format
msgid "negative width in bit-field `%s'"
msgstr "`%s' bit alanının uzunluğu negatif"
-#: c-decl.c:5746
+#: c-decl.c:5273
#, c-format
msgid "width of `%s' exceeds its type"
msgstr "`%s' in uzunluğu türünü aşıyor"
-#: c-decl.c:5748
+#: c-decl.c:5275
#, c-format
msgid "zero width for bit-field `%s'"
msgstr "bit alanı `%s' için sıfır genişlik"
-#: c-decl.c:5762
+#: c-decl.c:5289
#, c-format
msgid "`%s' is narrower than values of its type"
msgstr "`%s'in uzunluğu türünün değerinden daha kısa"
-#: c-decl.c:5808
+#: c-decl.c:5323
msgid "flexible array member in union"
msgstr "esnek dizi birleşik yapının üyesi olamaz"
-#: c-decl.c:5810
+#: c-decl.c:5325
msgid "flexible array member not at end of struct"
msgstr "esnek dizi yapının son üyesi değil"
-#: c-decl.c:5812
+#: c-decl.c:5327
msgid "flexible array member in otherwise empty struct"
msgstr "esnek dizi üstelik boş yapının üyesi"
-#: c-decl.c:5837
+#: c-decl.c:5357
#, c-format
msgid "duplicate member `%s'"
msgstr "üye `%s' yinelenmiş"
-#: c-decl.c:5881
+#: c-decl.c:5448
msgid "union cannot be made transparent"
msgstr "birleşik yapı şeffaf olamaz"
#. This enum is a named one that has been declared already.
-#: c-decl.c:5975
+#: c-decl.c:5558
#, c-format
msgid "redeclaration of `enum %s'"
msgstr "`enum %s' yeniden bildirilmiÅŸ"
-#: c-decl.c:6009
+#: c-decl.c:5592
msgid "enum defined inside parms"
msgstr "enum parametrelerin içinde tanımlanmış"
-#: c-decl.c:6042
+#: c-decl.c:5625
msgid "enumeration values exceed range of largest integer"
msgstr "sembolik sabit grubunun değerleri en büyük tamsayının kapsamını aşıyor."
-#: c-decl.c:6151
+#: c-decl.c:5734
#, c-format
msgid "enumerator value for `%s' not integer constant"
msgstr "`%s' için değer tamsayı sabit değil"
-#: c-decl.c:6164
+#: c-decl.c:5747
msgid "overflow in enumeration values"
msgstr "sembolik sabit listesi deÄŸerlerinde taÅŸma"
-#: c-decl.c:6169
+#: c-decl.c:5752
msgid "ISO C restricts enumerator values to range of `int'"
msgstr "ISO C sembolik sabit grubunun değerlerini `int' kapsamında sınırlar"
-#: c-decl.c:6252
+#: c-decl.c:5834
msgid "return type is an incomplete type"
msgstr "dönüş türü, bir içi boş tür"
-#: c-decl.c:6260
+#: c-decl.c:5842
msgid "return type defaults to `int'"
msgstr "dönen tür `int'e öntanımlı"
-#: c-decl.c:6307
+#: c-decl.c:5889
#, c-format
msgid "no previous prototype for `%s'"
msgstr "`%s' için önceki prototip yok"
-#: c-decl.c:6314
+#: c-decl.c:5896
#, c-format
msgid "`%s' was used with no prototype before its definition"
msgstr "`%s' tanımlanmadan önce prototipsiz kullanılmış"
-#: c-decl.c:6320
+#: c-decl.c:5902
#, c-format
msgid "no previous declaration for `%s'"
msgstr "`%s' için önce bildirim yok"
-#: c-decl.c:6327
+#: c-decl.c:5909
#, c-format
msgid "`%s' was used with no declaration before its definition"
msgstr "`%s' tanımından önce bildirimsiz kullanıldı"
-#: c-decl.c:6351 c-decl.c:6936
+#: c-decl.c:5933 c-decl.c:6486
#, c-format
msgid "return type of `%s' is not `int'"
msgstr "`%s' için dönen tür `int' değil"
-#: c-decl.c:6367
+#: c-decl.c:5949
#, c-format
msgid "first argument of `%s' should be `int'"
msgstr "`%s' için ilk argüman `int' olmalıydı"
-#: c-decl.c:6376
+#: c-decl.c:5958
#, c-format
msgid "second argument of `%s' should be `char **'"
msgstr "`%s' için ikinci argüman `char **' olmalıydı"
-#: c-decl.c:6385
+#: c-decl.c:5967
#, c-format
msgid "third argument of `%s' should probably be `char **'"
msgstr "`%s' için üçüncü argüman mümkünse `char **' olmalıydı"
-#: c-decl.c:6394
+#: c-decl.c:5976
#, c-format
msgid "`%s' takes only zero or two arguments"
msgstr "`%s' ya iki argüman alır ya da hiç almaz"
-#: c-decl.c:6397
+#: c-decl.c:5979
#, c-format
msgid "`%s' is normally a non-static function"
msgstr "`%s' normalde bir static olmayan iÅŸlev"
-#: c-decl.c:6507
+#: c-decl.c:6077
msgid "parm types given both in parmlist and separately"
msgstr "parametre türleri hem liste içinde hem de ayrıca verilmiş"
-#: c-decl.c:6528
+#: c-decl.c:6098
msgid "parameter name omitted"
msgstr "parametre ismi atlandı"
-#: c-decl.c:6532 c-decl.c:6634
+#: c-decl.c:6102 c-decl.c:6204
#, c-format
msgid "parameter `%s' declared void"
msgstr "parametre `%s' void bildirimli"
-#: c-decl.c:6608
+#: c-decl.c:6178
msgid "parameter name missing from parameter list"
msgstr "parametre ismi parametre listesinde yok"
-#: c-decl.c:6627
+#: c-decl.c:6197
#, c-format
msgid "multiple parameters named `%s'"
msgstr "`%s' isimli çok sayıda parametre"
-#: c-decl.c:6658 c-decl.c:6660
+#: c-decl.c:6219 c-decl.c:6221
#, c-format
msgid "type of `%s' defaults to `int'"
msgstr "`%s' türü öntanımlı olarak `int'"
-#: c-decl.c:6696
+#: c-decl.c:6257
#, c-format
msgid "declaration for parameter `%s' but no such parameter"
msgstr "`%s' parametre bildirimi olmayan bir parametre için yapılmış"
-#: c-decl.c:6744
+#: c-decl.c:6305
msgid "number of arguments doesn't match prototype"
msgstr "argümanların sayısı prototiple uyumsuz"
-#: c-decl.c:6774
+#: c-decl.c:6335
#, c-format
msgid "promoted argument `%s' doesn't match prototype"
msgstr "yükseltgenmiş argüman `%s', prototiple uyumsuz"
-#: c-decl.c:6788
+#: c-decl.c:6345
#, c-format
msgid "argument `%s' doesn't match prototype"
msgstr "`%s' argümanı prototipte belirtilen türle uyumsuz"
-#: c-decl.c:6968 cp/decl.c:14327
+#: c-decl.c:6518 cp/decl.c:15049
msgid "no return statement in function returning non-void"
msgstr "void olmayan dönüşlü işlevde `return' deyimi yok"
-#: c-decl.c:7124
+#: c-decl.c:6525
msgid "this function may return with or without a value"
msgstr "bu işlev bir değerle dönebileceği gibi dönmeyebilir de"
-#: c-decl.c:7144
+#: c-decl.c:6729
#, c-format
msgid "size of return value of `%s' is %u bytes"
msgstr "`%s' dönüş değerinin uzunluğu %u bayt"
-#: c-decl.c:7148
+#: c-decl.c:6733
#, c-format
msgid "size of return value of `%s' is larger than %d bytes"
msgstr "`%s' için dönen değerin genişliği %d bayttan büyük"
@@ -1431,894 +1517,993 @@ msgstr "`%s' için dönen değerin genişliği %d bayttan büyük"
#. If we get here, declarations have been used in a for loop without
#. the C99 for loop scope. This doesn't make much sense, so don't
#. allow it.
-#: c-decl.c:7203
+#: c-decl.c:6791
msgid "`for' loop initial declaration used outside C99 mode"
msgstr "`for' döngüsünün başlangıç bildirimi C99 kipinin dışında kullanılmış"
-#: c-decl.c:7227
+#: c-decl.c:6815
#, c-format
msgid "`struct %s' declared in `for' loop initial declaration"
msgstr "`struct %s' `for' döngüsünün ilklendirme bildiriminde bildirilmiş"
-#: c-decl.c:7230
+#: c-decl.c:6818
#, c-format
msgid "`union %s' declared in `for' loop initial declaration"
msgstr "`union %s' `for' döngüsünün ilklendirme bildiriminde bildirilmiş"
-#: c-decl.c:7233
+#: c-decl.c:6821
#, c-format
msgid "`enum %s' declared in `for' loop initial declaration"
msgstr "`enum %s' `for' döngüsünün ilklendirme bildiriminde bildirilmiş"
-#: c-decl.c:7241
+#: c-decl.c:6829
#, c-format
msgid "declaration of non-variable `%s' in `for' loop initial declaration"
msgstr "`for' döngüsü ilklendirme bildirimi içinde değişken olmayan `%s' bildirimi"
-#: c-decl.c:7243
+#: c-decl.c:6831
#, c-format
msgid "declaration of static variable `%s' in `for' loop initial declaration"
msgstr "`for' döngüsü ilklendirme bildirimi içinde `static' değişken `%s' bildirimi"
-#: c-decl.c:7245
+#: c-decl.c:6833
#, c-format
msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
msgstr "`for' döngüsü ilklendirme bildirimi içinde `extern' değişken `%s' bildirimi"
-#: c-format.c:128 c-format.c:210
+#: c-format.c:109 c-format.c:191
msgid "format string arg not a string type"
-msgstr "biçem dizgesi argümanının veri türü dizge değil"
+msgstr "biçim belirtecinin argümanı bir dizge değil"
-#: c-format.c:143
+#: c-format.c:124
msgid "args to be formatted is not '...'"
-msgstr "biçemlendirilmiş argümanlar '...' değil"
+msgstr "biçimlenecek argümanlar '...' değil"
-#: c-format.c:152
+#: c-format.c:133
msgid "strftime formats cannot format arguments"
-msgstr "strftime biçemleri biçem argümanları olamaz"
+msgstr "strftime biçimleri biçim argümanları olamaz"
-#: c-format.c:187 c-format.c:289
+#: c-format.c:168 c-format.c:270
msgid "format string has invalid operand number"
-msgstr "biçem dizgesi geçersiz sayıda terim içeriyor"
+msgstr "biçim dizgesi geçersiz sayıda terim içeriyor"
-#: c-format.c:221
+#: c-format.c:202
msgid "function does not return string type"
msgstr "işlev dizge veri türü ile dönmüyor"
-#: c-format.c:252
+#: c-format.c:233
msgid "unrecognized format specifier"
-msgstr "anlaşılmayan biçem belirteci"
+msgstr "anlaşılmayan biçim belirteci"
-#: c-format.c:265
+#: c-format.c:246
#, c-format
msgid "`%s' is an unrecognized format function type"
-msgstr "`%s' biçem işlevi türü bilinmiyor"
+msgstr "`%s' biçim işlevi türü bilinmiyor"
-#: c-format.c:299
+#: c-format.c:280
msgid "format string arg follows the args to be formatted"
-msgstr "biçem dizgesi argümanını biçemlendirilmiş argümanlar izliyor"
+msgstr "biçim dizgesi argümanını biçimlendirilecek argümanlar izler"
-#: c-format.c:620
+#: c-format.c:601
msgid "` ' flag"
msgstr "` ' bayrağı"
-#: c-format.c:620
+#: c-format.c:601
msgid "the ` ' printf flag"
msgstr "` ' printf bayrağı"
-#: c-format.c:621 c-format.c:692
+#: c-format.c:602 c-format.c:673
msgid "`+' flag"
msgstr "`+' bayrağı"
-#: c-format.c:621
+#: c-format.c:602
msgid "the `+' printf flag"
msgstr "`+' printf bayrağı"
-#: c-format.c:622 c-format.c:668
+#: c-format.c:603 c-format.c:649
msgid "`#' flag"
msgstr "`#' bayrağı"
-#: c-format.c:622
+#: c-format.c:603
msgid "the `#' printf flag"
msgstr "`#' printf bayrağı"
-#: c-format.c:623 c-format.c:666
+#: c-format.c:604 c-format.c:647
msgid "`0' flag"
msgstr "`0' bayrağı"
-#: c-format.c:623
+#: c-format.c:604
msgid "the `0' printf flag"
msgstr "`0' printf bayrağı"
-#: c-format.c:624 c-format.c:665 c-format.c:695
+#: c-format.c:605 c-format.c:646 c-format.c:676
msgid "`-' flag"
msgstr "`-' bayrağı"
-#: c-format.c:624
+#: c-format.c:605
msgid "the `-' printf flag"
msgstr "`-' printf bayrağı"
-#: c-format.c:625 c-format.c:649
+#: c-format.c:606 c-format.c:630
msgid "`'' flag"
msgstr "`'' bayrağı"
-#: c-format.c:625
+#: c-format.c:606
msgid "the `'' printf flag"
msgstr "`'' printf bayrağı"
-#: c-format.c:626 c-format.c:650
+#: c-format.c:607 c-format.c:631
msgid "`I' flag"
msgstr "`I' bayrağı"
-#: c-format.c:626
+#: c-format.c:607
msgid "the `I' printf flag"
msgstr "`I' printf bayrağı"
-#: c-format.c:627 c-format.c:647 c-format.c:669 c-format.c:696 c-format.c:1790
+#: c-format.c:608 c-format.c:628 c-format.c:650 c-format.c:677 c-format.c:1702
msgid "field width"
msgstr "alan uzunluÄŸu"
-#: c-format.c:627
+#: c-format.c:608
msgid "field width in printf format"
-msgstr "alan uzunluğu printf biçeminde"
+msgstr "alan genişliği printf biçiminde"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision"
msgstr "duyarlık"
-#: c-format.c:628
+#: c-format.c:609
msgid "precision in printf format"
-msgstr "duyarlık printf biçeminde"
+msgstr "hassasiyet printf biçiminde"
-#: c-format.c:629 c-format.c:648 c-format.c:699
+#: c-format.c:610 c-format.c:629 c-format.c:680
msgid "length modifier"
msgstr "uzunluk deÄŸiÅŸtirici"
-#: c-format.c:629
+#: c-format.c:610
msgid "length modifier in printf format"
-msgstr "uzunluk değiştirici printf biçeminde"
+msgstr "uzunluk değiştirici printf biçiminde"
-#: c-format.c:645
+#: c-format.c:626
msgid "assignment suppression"
msgstr "atama engelleme"
-#: c-format.c:645
+#: c-format.c:626
msgid "the assignment suppression scanf feature"
msgstr "atama engelleyen scanf özelliği"
-#: c-format.c:646
+#: c-format.c:627
msgid "`a' flag"
msgstr "`a' bayrağı"
-#: c-format.c:646
+#: c-format.c:627
msgid "the `a' scanf flag"
msgstr "`a' scanf bayrağı"
-#: c-format.c:647
+#: c-format.c:628
msgid "field width in scanf format"
-msgstr "scanf biçeminde alan genişliği"
+msgstr "scanf biçiminde alan genişliği"
-#: c-format.c:648
+#: c-format.c:629
msgid "length modifier in scanf format"
-msgstr "scanf biçeminde uzunluk değiştirici"
+msgstr "scanf biçiminde uzunluk değiştirici"
-#: c-format.c:649
+#: c-format.c:630
msgid "the `'' scanf flag"
msgstr "`'' scanf bayrağı"
-#: c-format.c:650
+#: c-format.c:631
msgid "the `I' scanf flag"
msgstr "`I' scanf bayrağı"
-#: c-format.c:664
+#: c-format.c:645
msgid "`_' flag"
msgstr "`_' bayrağı"
-#: c-format.c:664
+#: c-format.c:645
msgid "the `_' strftime flag"
msgstr "`_' strftime bayrağı"
-#: c-format.c:665
+#: c-format.c:646
msgid "the `-' strftime flag"
msgstr "`-' strftime bayrağı"
-#: c-format.c:666
+#: c-format.c:647
msgid "the `0' strftime flag"
msgstr "`0' strftime bayrağı"
-#: c-format.c:667 c-format.c:691
+#: c-format.c:648 c-format.c:672
msgid "`^' flag"
msgstr "`^' bayrağı"
-#: c-format.c:667
+#: c-format.c:648
msgid "the `^' strftime flag"
msgstr "`^' strftime bayrağı"
-#: c-format.c:668
+#: c-format.c:649
msgid "the `#' strftime flag"
msgstr "`#' strftime bayrağı"
-#: c-format.c:669
+#: c-format.c:650
msgid "field width in strftime format"
-msgstr "strftime biçeminde alan genişliği"
+msgstr "strftime biçiminde alan genişliği"
-#: c-format.c:670
+#: c-format.c:651
msgid "`E' modifier"
msgstr "`E' deÄŸiÅŸtirici"
-#: c-format.c:670
+#: c-format.c:651
msgid "the `E' strftime modifier"
msgstr "`E' strftime deÄŸiÅŸtirici"
-#: c-format.c:671
+#: c-format.c:652
msgid "`O' modifier"
msgstr "`O' deÄŸiÅŸtirici"
-#: c-format.c:671
+#: c-format.c:652
msgid "the `O' strftime modifier"
msgstr "`O' strftime deÄŸiÅŸtirici"
-#: c-format.c:672
+#: c-format.c:653
msgid "the `O' modifier"
msgstr "`O' deÄŸiÅŸtirici"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character"
msgstr "dolgu karakteri"
-#: c-format.c:690
+#: c-format.c:671
msgid "fill character in strfmon format"
-msgstr "strfmon biçeminde dolgu karakteri"
+msgstr "strfmon biçiminde dolgu karakteri"
-#: c-format.c:691
+#: c-format.c:672
msgid "the `^' strfmon flag"
msgstr "`^' strfmon bayrağı"
-#: c-format.c:692
+#: c-format.c:673
msgid "the `+' strfmon flag"
msgstr "`+' strfmon bayrağı"
-#: c-format.c:693
+#: c-format.c:674
msgid "`(' flag"
msgstr "`(' bayrağı"
-#: c-format.c:693
+#: c-format.c:674
msgid "the `(' strfmon flag"
msgstr "`(' strfmon bayrağı"
-#: c-format.c:694
+#: c-format.c:675
msgid "`!' flag"
msgstr "`!' bayrağı"
-#: c-format.c:694
+#: c-format.c:675
msgid "the `!' strfmon flag"
msgstr "`!' strfmon bayrağı"
-#: c-format.c:695
+#: c-format.c:676
msgid "the `-' strfmon flag"
msgstr "`-' strfmon bayrağı"
-#: c-format.c:696
+#: c-format.c:677
msgid "field width in strfmon format"
-msgstr "strfmon biçeminde alan genişliği"
+msgstr "strfmon biçiminde alan genişliği"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision"
msgstr "sol taraf duyarlığı"
-#: c-format.c:697
+#: c-format.c:678
msgid "left precision in strfmon format"
-msgstr "strfmon biçeminde sol taraf duyarlığı"
+msgstr "strfmon biçiminde sol taraf hassasiyeti"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision"
msgstr "sağ taraf duyarlığı"
-#: c-format.c:698
+#: c-format.c:679
msgid "right precision in strfmon format"
-msgstr "strfmon biçeminde sağ taraf duyarlığı"
+msgstr "strfmon biçiminde sağ taraf hassasiyeti"
-#: c-format.c:699
+#: c-format.c:680
msgid "length modifier in strfmon format"
-msgstr "strfmon biçeminde uzunluk değiştirici"
+msgstr "strfmon biçiminde uzunluk değiştirici"
-#: c-format.c:998
+#: c-format.c:983
#, c-format
msgid "function might be possible candidate for `%s' format attribute"
-msgstr "işlev `%s' biçem niteliği için mümkün aday olabilir"
+msgstr "işlev, `%s' biçim özniteliği için olası aday olabilir"
-#: c-format.c:1122 c-format.c:1143 c-format.c:2200
+#: c-format.c:1107 c-format.c:1128 c-format.c:2112
msgid "missing $ operand number in format"
-msgstr "biçem içinde $ teriminde numara eksik"
+msgstr "biçim dizgesi içinde $ teriminde numara eksik"
-#: c-format.c:1153
+#: c-format.c:1138
#, c-format
msgid "%s does not support %%n$ operand number formats"
-msgstr "%s %%n$ terim numarası biçemlerini desteklemez"
+msgstr "%s %%n$ terim numaralama biçimlerini desteklemez"
-#: c-format.c:1160
+#: c-format.c:1145
msgid "operand number out of range in format"
-msgstr "biçem içindeki terim numarası kapsamdışı"
+msgstr "biçim dizgesi içindeki terim numarası kapsamdışı"
-#: c-format.c:1183
+#: c-format.c:1168
#, c-format
msgid "format argument %d used more than once in %s format"
-msgstr "%d. biçem argümanı %s biçeminde birden fazla kullanılmış"
+msgstr "%d. biçim argümanı %s biçiminde birden fazla kullanılmış"
-#: c-format.c:1233
+#: c-format.c:1218
#, c-format
msgid "format argument %d unused before used argument %d in $-style format"
-msgstr "%d. biçem argümanı $ tarzı biçemde %d. argümandan önce kullanılmamış"
+msgstr "%d. biçim argümanı $ tarzı biçimde %d. argümandan önce kullanılmamış"
-#: c-format.c:1330
+#: c-format.c:1322
msgid "format not a string literal, format string not checked"
-msgstr "biçem bir dizge sabit değil, biçem dizgesi denetlenmedi"
+msgstr "biçim bir dizge sabit değil, biçim dizgesi denetlenmedi"
-#: c-format.c:1344
+#: c-format.c:1336
msgid "format not a string literal and no format arguments"
-msgstr "biçem bir dizge sabit değil ve biçem argümanları yok"
+msgstr "biçim bir dizge sabit değil ve biçim argümanları yok"
-#: c-format.c:1346
+#: c-format.c:1338
msgid "format not a string literal, argument types not checked"
-msgstr "biçem bir dizge sabit değil, argüman türleri denetlenmedi"
+msgstr "biçim bir dizge sabit değil, argüman türleri denetlenmedi"
-#: c-format.c:1359
+#: c-format.c:1351
msgid "too many arguments for format"
-msgstr "biçem için argüman sayısı çok fazla"
+msgstr "biçim için argüman sayısı çok fazla"
-#: c-format.c:1362
+#: c-format.c:1354
msgid "unused arguments in $-style format"
-msgstr "$ tarzı biçemde kullanılmamış argümanlar"
+msgstr "$ tarzı biçimde kullanılmamış argümanlar"
-#: c-format.c:1365
-msgid "zero-length format string"
-msgstr "sıfır uzunluklu biçem dizgesi"
+#: c-format.c:1357
+#, c-format
+msgid "zero-length %s format string"
+msgstr "sıfır uzunluklu %s biçim dizgesi"
-#: c-format.c:1368
+#: c-format.c:1361
msgid "format is a wide character string"
-msgstr "biçem bir geniş karakter dizgesi"
+msgstr "biçim bir geniş karakter dizgesi"
-#: c-format.c:1371
+#: c-format.c:1364
msgid "unterminated format string"
-msgstr "sonlandırılmamış biçem dizgesi"
-
-#. FIXME: this warning should go away once Marc Espie's
-#. __attribute__((nonnull)) patch is in. Instead, checking for
-#. nonnull attributes should probably change this function to act
-#. specially if info == NULL and add a res->number_null entry for
-#. that case, or maybe add a function pointer to be called at
-#. the end instead of hardcoding check_format_info_main.
-#: c-format.c:1478
-msgid "null format string"
-msgstr "null biçem dizgesi"
-
-#: c-format.c:1669
+msgstr "sonlandırılmamış biçim dizgesi"
+
+#: c-format.c:1581
msgid "embedded `\\0' in format"
-msgstr "biçem içinde gömülü `\\0'"
+msgstr "biçim içinde gömülü `\\0'"
-#: c-format.c:1684
+#: c-format.c:1596
#, c-format
msgid "spurious trailing `%%' in format"
-msgstr "biçem içinde sahte `%%'"
+msgstr "biçim sahte `%%' ile başlıyor"
-#: c-format.c:1723 c-format.c:1960
+#: c-format.c:1635 c-format.c:1872
#, c-format
msgid "repeated %s in format"
-msgstr "biçem içinde %s yinelenmiş"
+msgstr "biçim içinde %s yinelenmiş"
-#: c-format.c:1736
+#: c-format.c:1648
msgid "missing fill character at end of strfmon format"
-msgstr "strfmon biçeminin sonunda dolgu karakteri eksik"
+msgstr "strfmon biçiminin sonunda dolgu karakteri eksik"
-#: c-format.c:1756 c-format.c:1874 c-format.c:2154 c-format.c:2207
+#: c-format.c:1687 c-format.c:1786 c-format.c:2066 c-format.c:2119
msgid "too few arguments for format"
-msgstr "biçem için argüman sayısı yetersiz"
+msgstr "biçim için argüman sayısı yetersiz"
-#: c-format.c:1816
+#: c-format.c:1728
#, c-format
msgid "zero width in %s format"
-msgstr "%s biçeminde sıfır uzunluk"
+msgstr "%s biçiminde sıfır uzunluk"
-#: c-format.c:1835
+#: c-format.c:1747
#, c-format
msgid "empty left precision in %s format"
-msgstr "%s biçeminde sol taraf duyarlığı boş"
+msgstr "%s biçiminde sol taraf hassasiyeti boş"
-#: c-format.c:1889
+#: c-format.c:1801
msgid "field precision"
msgstr "alan duyarlığı"
-#: c-format.c:1904
+#: c-format.c:1816
#, c-format
msgid "empty precision in %s format"
-msgstr "%s biçeminde boş duyarlık"
+msgstr "%s biçiminde boş hassasiyet"
-#: c-format.c:1944
+#: c-format.c:1856
#, c-format
msgid "%s does not support the `%s' %s length modifier"
msgstr "%s `%s' %s uzunluk deÄŸiÅŸtiricisini desteklemiyor"
-#: c-format.c:1994
+#: c-format.c:1906
msgid "conversion lacks type at end of format"
-msgstr "dönüşüm, biçem sonunda türden yoksun"
+msgstr "dönüşüm, biçim sonunda türden yoksun"
-#: c-format.c:2005
+#: c-format.c:1917
#, c-format
msgid "unknown conversion type character `%c' in format"
-msgstr "biçemdeki dönüşüm türü karakteri `%c' bilinmiyor"
+msgstr "biçimdeki dönüşüm türü karakteri `%c' bilinmiyor"
-#: c-format.c:2008
+#: c-format.c:1920
#, c-format
msgid "unknown conversion type character 0x%x in format"
-msgstr "biçemdeki dönüşüm türü karakteri 0x%x bilinmiyor"
+msgstr "biçimdeki dönüşüm türü karakteri 0x%x bilinmiyor"
-#: c-format.c:2015
+#: c-format.c:1927
#, c-format
msgid "%s does not support the `%%%c' %s format"
-msgstr "%s `%%%c' %s biçemini desteklemiyor"
+msgstr "%s `%%%c' %s biçimini desteklemiyor"
-#: c-format.c:2031
+#: c-format.c:1943
#, c-format
msgid "%s used with `%%%c' %s format"
-msgstr "%s `%%%c' %s biçemi ile kullanılmış"
+msgstr "%s `%%%c' %s biçimi ile kullanılmış"
-#: c-format.c:2040
+#: c-format.c:1952
#, c-format
msgid "%s does not support %s"
msgstr "%s %s desteÄŸi vermiyor"
-#: c-format.c:2049
+#: c-format.c:1961
#, c-format
msgid "%s does not support %s with the `%%%c' %s format"
-msgstr "%s %s'i `%%%c' %s biçemiyle desteklemiyor"
+msgstr "%s %s'i `%%%c' %s biçimiyle desteklemiyor"
-#: c-format.c:2082
+#: c-format.c:1994
#, c-format
msgid "%s ignored with %s and `%%%c' %s format"
-msgstr "%s %s' ve `%%%c' %s biçemiyle yoksayıldı"
+msgstr "%s, %s' ve `%%%c' %s biçimiyle yoksayıldı"
-#: c-format.c:2086
+#: c-format.c:1998
#, c-format
msgid "%s ignored with %s in %s format"
-msgstr "%s %s' ile %s biçeminde yoksayıldı"
+msgstr "%s, %s' ile %s biçiminde yoksayıldı"
-#: c-format.c:2092
+#: c-format.c:2004
#, c-format
msgid "use of %s and %s together with `%%%c' %s format"
-msgstr "%s ve %s birlikte `%%%c' %s biçemiyle kullanımı"
+msgstr "%s ve %s birlikte `%%%c' %s biçimiyle kullanımı"
-#: c-format.c:2096
+#: c-format.c:2008
#, c-format
msgid "use of %s and %s together in %s format"
-msgstr "%s ve %s birlikte %s biçeminde kullanımı"
+msgstr "%s ve %s birlikte %s biçiminde kullanımı"
-#: c-format.c:2115
+#: c-format.c:2027
#, c-format
msgid "`%%%c' yields only last 2 digits of year in some locales"
msgstr "`%%%c' bazı yerellerde yılın son iki hanesini alır"
-#: c-format.c:2118
+#: c-format.c:2030
#, c-format
msgid "`%%%c' yields only last 2 digits of year"
msgstr "`%%%c' yılın son iki hanesini alır"
#. The end of the format string was reached.
-#: c-format.c:2134
+#: c-format.c:2046
#, c-format
msgid "no closing `]' for `%%[' format"
-msgstr "`%%[' biçemi için kapanan `]' yok"
+msgstr "`%%[' biçimi için kapanan `]' yok"
-#: c-format.c:2147
+#: c-format.c:2059
#, c-format
msgid "use of `%s' length modifier with `%c' type character"
msgstr "`%s' uzunluk değiştiricsinin `%c' tür karakteri ile kullanımı"
-#: c-format.c:2168
+#: c-format.c:2080
#, c-format
msgid "%s does not support the `%%%s%c' %s format"
-msgstr "%s `%%%s%c' %s biçemini desteklemiyor"
+msgstr "%s, `%%%s%c' %s biçimini desteklemiyor"
-#: c-format.c:2183
+#: c-format.c:2095
msgid "operand number specified with suppressed assignment"
msgstr "terim numarası engellenmiş atama ile belirtilmiş"
-#: c-format.c:2185
+#: c-format.c:2097
msgid "operand number specified for format taking no argument"
-msgstr "terim numarası argüman almayan biçem için belirtilmiş"
+msgstr "terim numarası argüman almayan biçim için belirtilmiş"
-#: c-format.c:2304
+#: c-format.c:2211
#, c-format
msgid "writing through null pointer (arg %d)"
-msgstr "null gösterge vasıtasıyla yazma (%d. arg)"
+msgstr "boş gösterici vasıtasıyla yazma (%d. arg)"
-#: c-format.c:2313
+#: c-format.c:2220
#, c-format
msgid "reading through null pointer (arg %d)"
-msgstr "null gösterge vasıtasıyla okuma (%d. arg)"
+msgstr "boş gösterici vasıtasıyla okuma (%d. arg)"
-#: c-format.c:2333
+#: c-format.c:2240
#, c-format
msgid "writing into constant object (arg %d)"
msgstr "sabit nesne içine yazma (%d. arg)"
-#: c-format.c:2343
+#: c-format.c:2250
#, c-format
msgid "extra type qualifiers in format argument (arg %d)"
-msgstr "biçem argümanında (%d. arg) fazladan tür niteleyiciler"
+msgstr "biçim argümanında (%d. arg) fazladan tür niteleyiciler"
-#: c-format.c:2350
+#: c-format.c:2257
#, c-format
msgid "format argument is not a pointer (arg %d)"
-msgstr "biçem argümanı bir gösterge değil (%d. arg)"
+msgstr "biçim argümanı bir gösterici değil (%d. arg)"
-#: c-format.c:2352
+#: c-format.c:2259
#, c-format
msgid "format argument is not a pointer to a pointer (arg %d)"
-msgstr "biçem argümanı bir göstergenin göstergesi değil (%d. arg)"
+msgstr "biçim argümanı bir göstericinin göstericisi değil (%d. arg)"
-#: c-format.c:2423
+#: c-format.c:2330
msgid "pointer"
-msgstr "gösterge"
+msgstr "gösterici"
-#: c-format.c:2425
+#: c-format.c:2332
msgid "different type"
-msgstr "farklı tür"
+msgstr "farklı türde"
-#: c-format.c:2446
+#: c-format.c:2353
#, c-format
msgid "%s is not type %s (arg %d)"
msgstr "%s %s türünde değil (%d. arg)"
-#: c-format.c:2449
+#: c-format.c:2356
#, c-format
msgid "%s format, %s arg (arg %d)"
-msgstr "%s biçemi, %s arg (%d. arg)"
+msgstr "%s biçimi için %s argüman (%d. arg)"
+
+#: c-lex.c:153
+msgid "YYDEBUG not defined"
+msgstr "YYDEBUG tanımlı değil"
-#: c-lex.c:298
+#: c-lex.c:293
msgid "badly nested C headers from preprocessor"
msgstr "önişlemciden C başlıkları hatalı yuvalanmış"
-#: c-lex.c:348
+#: c-lex.c:336
#, c-format
msgid "ignoring #pragma %s %s"
msgstr "#pragma %s %s yoksalıyor"
-#: c-lex.c:350
-#, c-format
-msgid "ignoring #pragma %s"
-msgstr "#pragma %s yoksayılıyor"
-
-#: c-lex.c:400
+#: c-lex.c:386
#, c-format
msgid "universal-character-name '\\U%08x' not valid in identifier"
msgstr "evrensel karakter ismi '\\U%08x' tanıtıcı içinde geçerli değil"
-#: c-lex.c:646
+#: c-lex.c:632
#, c-format
msgid "universal-character-name '\\u%04x' not valid in identifier"
msgstr "evrensel karakter ismi '\\U%04x' tanıtıcı içinde geçerli değil"
-#: c-lex.c:736
-msgid "both 'f' and 'l' suffixes on floating constant"
-msgstr "gerçel sayı sabitte hem 'f' hem de 'l' sonekleri"
-
-#: c-lex.c:763
-#, c-format
-msgid "floating point number exceeds range of '%s'"
-msgstr "gerçel sayı '%s' kapsamını aşıyor"
-
-#: c-lex.c:793
+#: c-lex.c:695
#, c-format
msgid "stray '%c' in program"
msgstr "programda serseri '%c'"
-#: c-lex.c:795
+#: c-lex.c:697
#, c-format
msgid "stray '\\%o' in program"
msgstr "programda serseri '\\%o'"
-#: c-lex.c:893
-msgid "too many decimal points in floating constant"
-msgstr "kayan sabitteki ondalık nokta sayısı çok fazla"
+#: c-lex.c:854
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr "bu ondalık sabit sadece ISO C90'da unsigned'dır"
-#: c-lex.c:895
-msgid "decimal point in exponent - impossible!"
-msgstr "üs bir ondalık sayı -- imkânsız!"
+#: c-lex.c:857
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr "bu ondalık sabit sadece ISO C90'da unsigned olmalıydı"
-#. Possible future extension: silently ignore _ in numbers,
-#. permitting cosmetic grouping - e.g. 0x8000_0000 == 0x80000000
-#. but somewhat easier to read. Ada has this?
-#: c-lex.c:906
-msgid "underscore in number"
-msgstr "sayı içinde alt çizgi"
+#: c-lex.c:873
+#, c-format
+msgid "integer constant is too large for \"%s\" type"
+msgstr "tamsayı sabit \"%s\" olarak oldukça büyük"
-#: c-lex.c:968
-msgid "numeric constant with no digits"
-msgstr "rakam içermeyen sayısal sabit"
+#: c-lex.c:941
+#, c-format
+msgid "floating constant exceeds range of \"%s\""
+msgstr "gerçel sayı \"%s\" kapsamını aşıyor"
-#: c-lex.c:971
-msgid "numeric constant contains digits beyond the radix"
-msgstr "sayısal sabit tabanından büyük rakamlar içeriyor"
+#: c-lex.c:977 cpplex.c:330 cpplex.c:668 cpplex.c:1942
+msgid "ignoring invalid multibyte character"
+msgstr "geçersiz çok baytlı karakter yoksayılıyor"
-#: c-lex.c:982
-msgid "floating constant may not be in radix 16"
-msgstr "gerçel sayı sabit onaltılık tabanda olmayabilir"
+#: c-opts.c:355
+#, c-format
+msgid "missing argument to \"-%s\""
+msgstr "\"-%s\" seçeneğinin argümanı eksik"
-#: c-lex.c:985
-msgid "hexadecimal floating constant has no exponent"
-msgstr "onaltılık gerçel sayı sabit üs içermiyor"
+#: c-opts.c:359
+#, c-format
+msgid "no class name specified with \"-%s\""
+msgstr "\"-%s ile sınıf ismi belirtilmemiş"
-#: c-lex.c:997
-msgid "floating constant exponent has no digits"
-msgstr "gerçel sayı sabitin üssü rakam içermiyor"
+#: c-opts.c:366
+#, c-format
+msgid "missing filename after \"-%s\""
+msgstr "\"-%s\" den sonra dosyaismi yok"
-#: c-lex.c:1017
-msgid "more than one 'f' suffix on floating constant"
-msgstr "gerçel sayı sabitte `f' soneki birden fazla var"
+#: c-opts.c:371
+#, c-format
+msgid "missing target after \"-%s\""
+msgstr "\"-%s\" den sonra hedef eksik"
-#: c-lex.c:1020
-msgid "traditional C rejects the 'f' suffix"
-msgstr "geleneksel C 'f' sonekini kullanmaz"
+#: c-opts.c:505
+#, c-format
+msgid "options array incorrectly sorted: %s is before %s"
+msgstr "seçenekler dizisi yanlış sıralı: %s, %s den önce"
-#: c-lex.c:1027
-msgid "more than one 'l' suffix on floating constant"
-msgstr "gerçel sayı sabitte `l' soneki birden fazla var"
+#: c-opts.c:550
+#, c-format
+msgid "too many filenames given. Type %s --help for usage"
+msgstr "çok fazla dosyaismi verildi. Kullanım bilgileri için %s --help yazınız"
-#: c-lex.c:1030
-msgid "traditional C rejects the 'l' suffix"
-msgstr "geleneksel C 'l' sonekini kullanmaz"
+#: c-opts.c:937
+msgid "-Wno-strict-prototypes is not supported in C++"
+msgstr "C++ da -Wno-strict-prototypes desteklenmiyor"
-#: c-lex.c:1038
-msgid "more than one 'i' or 'j' suffix on floating constant"
-msgstr "gerçel sayı sabitte `i' ya da `j' soneki birden fazla var"
+#: c-opts.c:1017
+#, c-format
+msgid "switch \"%s\" is no longer supported"
+msgstr "switch \"%s\" artık desteklenmiyor"
-#: c-lex.c:1040 c-lex.c:1134
-msgid "ISO C forbids imaginary numeric constants"
-msgstr "ISO C sanal sayısal sabitleri yasaklar"
+#: c-opts.c:1033
+#, c-format
+msgid "switch \"%s\" is deprecated, please see documentation for details"
+msgstr "switch \"%s\" eski kullanım, lütfen ayrıntılar için belgelere bakınız"
-#: c-lex.c:1045
-msgid "invalid suffix on floating constant"
-msgstr "gerçel sayı sabitin soneki geçersiz"
+#: c-opts.c:1153
+msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+msgstr "-fhandle-exceptions'ın -fexceptions olarak ismi değiştirilmişti (ve şimdi öntanımlı olarak böyle)"
-#. We got an exception from parse_float()
-#: c-lex.c:1062
-msgid "floating constant out of range"
-msgstr "gerçel sayı sabit kapsamdışı"
+#: c-opts.c:1273
+msgid "output filename specified twice"
+msgstr "çıktı dosyasının ismi iki kere belirtilmiş"
-#: c-lex.c:1074
-msgid "floating point number exceeds range of 'double'"
-msgstr "gerçel sayı 'double' kapsamını aşıyor"
+#: c-opts.c:1387
+msgid "-Wformat-y2k ignored without -Wformat"
+msgstr "-Wformat-y2k -Wformat'sız yoksayıldı"
-#: c-lex.c:1103
-msgid "two 'u' suffixes on integer constant"
-msgstr "tamsayı sabitte iki 'u' soneki"
+#: c-opts.c:1389
+msgid "-Wformat-extra-args ignored without -Wformat"
+msgstr "-Wformat-extra-args -Wformat'sız yoksayıldı"
-#: c-lex.c:1106
-msgid "traditional C rejects the 'u' suffix"
-msgstr "geleneksel C 'u' sonekini kullanmaz"
+#: c-opts.c:1391
+msgid "-Wformat-zero-length ignored without -Wformat"
+msgstr "-Wformat-zero-length -Wformat'sız yoksayıldı"
-#: c-lex.c:1117
-msgid "three 'l' suffixes on integer constant"
-msgstr "tamsayı sabitte üç 'l' soneki"
+#: c-opts.c:1393
+msgid "-Wformat-nonliteral ignored without -Wformat"
+msgstr "-Wformat-nonliteral -Wformat'sız yoksayıldı"
-#: c-lex.c:1119
-msgid "'lul' is not a valid integer suffix"
-msgstr "'lul' geçerli bir tamsayı soneki değil"
+#: c-opts.c:1395
+msgid "-Wformat-security ignored without -Wformat"
+msgstr "-Wformat-security -Wformat'sız yoksayıldı"
-#: c-lex.c:1121
-msgid "'Ll' and 'lL' are not valid integer suffixes"
-msgstr "'Ll' ve 'lL' geçerli tamsayı sonekleri değil"
+#: c-opts.c:1397
+msgid "-Wmissing-format-attribute ignored without -Wformat"
+msgstr "-Wmissing-format-attribute -Wformat'sız yoksayıldı"
-#: c-lex.c:1124
-msgid "ISO C89 forbids long long integer constants"
-msgstr "ISO C89 long long tamsayı sabitleri yasaklar"
+#: c-opts.c:1419
+#, c-format
+msgid "opening output file %s"
+msgstr "çıktı dosyası `%s' açılıyor"
-#: c-lex.c:1132
-msgid "more than one 'i' or 'j' suffix on integer constant"
-msgstr "tamsayı sabitte birden fazla 'i' ya da 'j' soneki"
+#: c-opts.c:1474
+#, c-format
+msgid "opening dependency file %s"
+msgstr "bağımlılık dosyası %s açılıyor"
-#: c-lex.c:1139
-msgid "invalid suffix on integer constant"
-msgstr "tamsayı sabitteki sonek geçersiz"
+#: c-opts.c:1484
+#, c-format
+msgid "closing dependency file %s"
+msgstr "bağımlılık dosyası %s kapatılıyor"
-#: c-lex.c:1147
+#: c-opts.c:1487
#, c-format
-msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
-msgstr "tamsayı sabit derleyicinin bu yapılandırması için çok büyük - %d bite indirildi"
+msgid "when writing output to %s"
+msgstr "çıktı %s e yazılırken"
-#: c-lex.c:1237
-msgid "width of integer constant changes with -traditional"
-msgstr "tamsayı sabitin genişliği -traditional ile değişir"
+#: c-opts.c:1567
+msgid "to generate dependencies you must specify either -M or -MM"
+msgstr "bağımlılıkları üretmek için ya -M ya da -MM belirtmelisiniz"
-#: c-lex.c:1239
-msgid "integer constant is unsigned in ISO C, signed with -traditional"
-msgstr "tamsayı sabit ISO C için unsigned, -traditional ile signed'dır"
+#: c-opts.c:1715
+#, c-format
+msgid "\"-%c%s%s\" is valid for %s but not for %s"
+msgstr "\"-%c%s%s\", %s için geçerli ama %s için değil"
-#: c-lex.c:1241
-msgid "width of integer constant may change on other systems with -traditional"
-msgstr "tamsayı sabitin uzunluğu diğer sistemlerde -traditional ile değişebilir"
+#. To keep the lines from getting too long for some compilers, limit
+#. to about 500 characters (6 lines) per chunk.
+#: c-opts.c:1726
+msgid ""
+"Switches:\n"
+" -include <file> Include the contents of <file> before other files\n"
+" -imacros <file> Accept definition of macros in <file>\n"
+" -iprefix <path> Specify <path> as a prefix for next two options\n"
+" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+" -isystem <dir> Add <dir> to the start of the system include path\n"
+msgstr ""
+"Seçenekler:\n"
+" -include DOSYA Diğer dosyalardan önce DOSYA içeriği içerilir\n"
+" -imacros DOSYA DOSYAdaki makrolar kabul edilir\n"
+" -iprefix DOSYAYOLU Aşağıdaki iki seçenek için önek olarak DOSYAYOLU\n"
+" -iwithprefix DÄ°ZÄ°N Sistem include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
+" -iwithprefixbefore DÄ°ZÄ°N Ana include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
+" -isystem DİZİN Sistem include dosya yolunun başına DİZİN eklenir\n"
-#: c-lex.c:1251
-#, c-format
-msgid "integer constant larger than the maximum value of %s"
-msgstr "tamsayı sabit en büyük değer %s den daha büyük"
+#: c-opts.c:1735
+msgid ""
+" -idirafter <dir> Add <dir> to the end of the system include path\n"
+" -I <dir> Add <dir> to the end of the main include path\n"
+" -I- Fine-grained include path control; see info docs\n"
+" -nostdinc Do not search system include directories\n"
+" (dirs specified with -isystem will still be used)\n"
+" -nostdinc++ Do not search system include directories for C++\n"
+" -o <file> Put output into <file>\n"
+msgstr ""
+" -idirafter DÄ°ZÄ°N Sistem include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
+" -I DÄ°ZÄ°N Ana include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
+" -I- Ä°nceden inceye include dosya yolu denetimi;\n"
+" Daha fazla bilgi için belgelere bakınız\n"
+" -nostdinc Sistem include dizinleri için arama yapılmaz\n"
+" (-isystem ile belirtilen dizinler kullanılacak)\n"
+" -nostdinc++ C++ için sistem include dizinleri araması yapılmaz\n"
+" -o DOSYA Çıktı DOSYAya yazılır\n"
-#: c-lex.c:1254
-msgid "an unsigned long long int"
-msgstr "bir unsigned long long int"
+#: c-opts.c:1744
+msgid ""
+" -trigraphs Support ISO C trigraphs\n"
+" -std=<std name> Specify the conformance standard; one of:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Inhibit warning messages\n"
+" -W[no-]trigraphs Warn if trigraphs are encountered\n"
+" -W[no-]comment{s} Warn if one comment starts inside another\n"
+msgstr ""
+" -trigraphs ISO C üçlü harfleri desteklenir\n"
+" -std=<std ismi> Aşağıdaki uyum standartlarından biri belirtilir:\n"
+" gnu89, gnu99, c89, c99, iso9899:1990,\n"
+" iso9899:199409, iso9899:1999, c++98\n"
+" -w Uyarı iletileri engellenir\n"
+" -W[no-]trigraphs Üçlü harfler saptandığında uyarır\n"
+" -W[no-]comment{s} İç içe açıklamalar için uyarı verilir\n"
-#: c-lex.c:1255
-msgid "a long long int"
-msgstr "bir long long int"
+#: c-opts.c:1753
+msgid ""
+" -W[no-]traditional Warn about features not present in traditional C\n"
+" -W[no-]undef Warn if an undefined macro is used by #if\n"
+" -W[no-]import Warn about the use of the #import directive\n"
+msgstr ""
+" -W[no-]traditional Geleneksel C'de bulunmayan özellikler için uyarır\n"
+" -W[no-]undef undef'li bir makro #if ile atanmışsa uyarır\n"
+" -W[no-]import #import yönergesi kullanımı hakkında uyarır\n"
-#: c-lex.c:1256
-msgid "an unsigned long int"
-msgstr "bir unsigned long int"
+#: c-opts.c:1758
+msgid ""
+" -W[no-]error Treat all warnings as errors\n"
+" -W[no-]system-headers Do not suppress warnings from system headers\n"
+" -W[no-]all Enable most preprocessor warnings\n"
+msgstr ""
+" -W[no-]error Tüm uyarılar hata olarak değerlendirilir\n"
+" -W[no-]system-headers Sistem başlık dosyalarından kaynaklanan uyarılar\n"
+" engellenmez\n"
+" -W[no-]all Tüm önişlemci uyarıları verilir\n"
-#: c-lex.c:1260
-msgid "decimal constant is so large that it is unsigned"
-msgstr "ondalık sabit unsigned tür için büyük"
+#: c-opts.c:1763
+msgid ""
+" -M Generate make dependencies\n"
+" -MM As -M, but ignore system header files\n"
+" -MD Generate make dependencies and compile\n"
+" -MMD As -MD, but ignore system header files\n"
+" -MF <file> Write dependency output to the given file\n"
+" -MG Treat missing header file as generated files\n"
+msgstr ""
+" -M make bağımlılıkları üretilir\n"
+" -MM sistem başlık dosyaları yoksayılarak -M uygulanır\n"
+" -MD make bağımlılıkları üretilir ve derleme yapılır\n"
+" -MMD sistem başlık dosyaları yoksayılarak -MD uygulanır\n"
+" -MF DOSYA Bağımlılıklar DOSYAya yazılır\n"
+" -MG Eksik başlık dosyası üretilen dosyalar olarak\n"
+" deÄŸerlendirilir\n"
-#: c-lex.c:1269
-msgid "complex integer constant is too wide for 'complex int'"
-msgstr "karmaşık tamsayı sabit `complex int' için çok büyük"
+#: c-opts.c:1771
+msgid ""
+" -MP\t\t\t Generate phony targets for all headers\n"
+" -MQ <target> Add a MAKE-quoted target\n"
+" -MT <target> Add an unquoted target\n"
+msgstr ""
+" -MP Tüm başlık dosyaları için sahte hedefler üretilir\n"
+" -MQ HEDEF Bir MAKE-tırnaklı HEDEF eklenir\n"
+" -MT HEDEF Bir MAKE-tırnaksız HEDEF eklenir\n"
-#: c-lex.c:1289
-msgid "integer constant is larger than the maximum value for its type"
-msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+#: c-opts.c:1776
+msgid ""
+" -D<macro> Define a <macro> with string '1' as its value\n"
+" -D<macro>=<val> Define a <macro> with <val> as its value\n"
+" -A<question>=<answer> Assert the <answer> to <question>\n"
+" -A-<question>=<answer> Disable the <answer> to <question>\n"
+" -U<macro> Undefine <macro> \n"
+" -v Display the version number\n"
+msgstr ""
+" -D<makro> Değeri '1' dizgesi olan bir <makro> atanır\n"
+" -D<makro>=<değer> Değeri <değer> olan bir <makro> atanır\n"
+" -A<soru>=<cevap> <soru> ya <cevap> olumlanır\n"
+" -A-<soru>=<cevap> <soru> <cevap> etkisiz kılınır\n"
+" -U<makro> <macro> undef yapılır \n"
+" -v Sürüm numarası gösterilir\n"
-#: c-lex.c:1293
-#, c-format
-msgid "missing white space after number '%.*s'"
-msgstr "'%.*s'den sonra boÅŸluk yok"
+#: c-opts.c:1784
+msgid ""
+" -H Print the name of header files as they are used\n"
+" -C Do not discard comments\n"
+" -dM Display a list of macro definitions active at end\n"
+" -dD Preserve macro definitions in output\n"
+" -dN As -dD except that only the names are preserved\n"
+" -dI Include #include directives in the output\n"
+msgstr ""
+" -H Kullanılan başlık dosyası isimlerini gösterir\n"
+" -C Açıklamalar iptal edilmez\n"
+" -dM Sonuçta etkin olan makro tanımlarını listeler\n"
+" -dD Çıktıda makro tanımlarıda içerilir\n"
+" -dN -dD gibi ancak sadece isimler dışında\n"
+" -dI Çıktıda #include yönergeleri içerilir\n"
-#: c-lex.c:1329 cpplex.c:1873
-msgid "ignoring invalid multibyte character"
-msgstr "geçersiz çok baytlı karakter yoksayılıyor"
+#: c-opts.c:1792
+msgid ""
+" -f[no-]preprocessed Treat the input file as already preprocessed\n"
+" -ftabstop=<number> Distance between tab stops for column reporting\n"
+" -P Do not generate #line directives\n"
+" -remap Remap file names when including files\n"
+" --help Display this information\n"
+msgstr ""
+" -f[no-]preprocessed Girdi dosyası önişlenmiş olarak değerlendirilir\n"
+" -ftabstop=SAYI Sütunlu raporlamada sekme uzunluğu\n"
+" -P #line yönergeleri üretilmez\n"
+" -remap Dosyalar içerilirken dosya adları yeniden eşlenir\n"
+" --help Bu yardım iletisi gösterilir\n"
#. Like YYERROR but do call yyerror.
-#: c-parse.y:56 parse.y:51 objc-parse.y:57
+#: c-parse.y:55 parse.y:48 objc-parse.y:55
msgid "syntax error"
msgstr "sözdizimi hatası"
-#: /usr/share/bison/bison.simple:176 /usr/share/bison.simple:112
+#: /usr/share/bison/bison.simple:179
msgid "syntax error: cannot back up"
msgstr "sözdizimi hatası: yedeklenemiyor"
-#: c-parse.y:288 objc-parse.y:310
+#: c-parse.y:325 objc-parse.y:346
msgid "ISO C forbids an empty source file"
msgstr "ISO C boş kaynak dosyalarına izin vermez"
-#: c-parse.y:321 c-typeck.c:6895 objc-parse.y:343
+#: c-parse.y:366 c-typeck.c:6916 objc-parse.y:388
msgid "argument of `asm' is not a constant string"
msgstr "`asm' argümanı bir sabit dizge değil"
-#: c-parse.y:329 objc-parse.y:351
+#: c-parse.y:374 objc-parse.y:396
msgid "ISO C forbids data definition with no type or storage class"
msgstr "ISO C tür veya saklama sınıfı belirtilmeyen veri tanımına izin vermez"
-#: c-parse.y:331 objc-parse.y:353
+#: c-parse.y:376 objc-parse.y:398
msgid "data definition has no type or storage class"
msgstr "veri tanımı tür ya da saklama sınıfı içermiyor"
-#: c-parse.y:344 objc-parse.y:366
+#: c-parse.y:389 objc-parse.y:411
msgid "ISO C does not allow extra `;' outside of a function"
msgstr "ISO C işlevler dışında tek başına `;'e izin vermez"
-#: c-parse.y:404 cppexp.c:693
+#: c-parse.y:449 cppexp.c:1312
msgid "traditional C rejects the unary plus operator"
-msgstr "geleneksel C tekil artı işlemimini dışlar"
+msgstr "geleneksel C tekil artı işlecini dışlar"
-#: c-parse.y:466 objc-parse.y:488
+#: c-parse.y:496 objc-parse.y:518
msgid "`sizeof' applied to a bit-field"
msgstr "'sizeof' bir bit-alanına uygulandı"
-#: c-parse.y:546 objc-parse.y:568
+#: c-parse.y:583 objc-parse.y:605
msgid "ISO C forbids omitting the middle term of a ?: expression"
msgstr "ISO C ?: ifadesinin orta teriminin atlanmasına izin vermez"
-#: c-parse.y:593 objc-parse.y:615
+#: c-parse.y:632 objc-parse.y:654
msgid "ISO C89 forbids compound literals"
msgstr "ISO C89 bileşik sayılara izin vermez"
-#: c-parse.y:607 objc-parse.y:629
+#: c-parse.y:646 objc-parse.y:668
msgid "ISO C forbids braced-groups within expressions"
msgstr "ISO C ifadelerde parantezli gruplamalara izin vermez"
-#: c-parse.y:638 objc-parse.y:660
+#: c-parse.y:677 objc-parse.y:699
msgid "first argument to __builtin_choose_expr not a constant"
msgstr "__builtin_choose_expr işlevine aktarılan ilk argüman bir sabit değil"
-#: c-parse.y:681
-msgid "traditional C rejects string concatenation"
-msgstr "geleneksel C dizgelerin birleÅŸtirilmesine izin vermez"
-
-#: c-parse.y:696 objc-parse.y:732
-msgid "ISO C does not permit use of `varargs.h'"
-msgstr "ISO C `varargs.h' kullanımına izin vermez"
+#: c-parse.y:721 objc-parse.y:767
+msgid "traditional C rejects ISO C style function definitions"
+msgstr "geleneksel C, ISO C tarzı işlev tanımlarına izin vermez"
-#: c-parse.y:957 c-parse.y:963 c-parse.y:969 c-parse.y:975 c-parse.y:996 c-parse.y:1002 c-parse.y:1008 c-parse.y:1014 c-parse.y:1047 c-parse.y:1053 c-parse.y:1059 c-parse.y:1065 c-parse.y:1110 c-parse.y:1116 c-parse.y:1122 c-parse.y:1128 parse.y:1907 parse.y:1914 parse.y:1949 objc-parse.y:993 objc-parse.y:999 objc-parse.y:1005 objc-parse.y:1011 objc-parse.y:1032 objc-parse.y:1038 objc-parse.y:1044 objc-parse.y:1050 objc-parse.y:1083 objc-parse.y:1089 objc-parse.y:1095 objc-parse.y:1101 objc-parse.y:1146 objc-parse.y:1152 objc-parse.y:1158 objc-parse.y:1164
+#: c-parse.y:985 c-parse.y:991 c-parse.y:997 c-parse.y:1003 c-parse.y:1024
+#: c-parse.y:1030 c-parse.y:1036 c-parse.y:1042 c-parse.y:1075 c-parse.y:1081
+#: c-parse.y:1087 c-parse.y:1093 c-parse.y:1138 c-parse.y:1144 c-parse.y:1150
+#: c-parse.y:1156 parse.y:1933 parse.y:1940 parse.y:1975 objc-parse.y:1031
+#: objc-parse.y:1037 objc-parse.y:1043 objc-parse.y:1049 objc-parse.y:1070
+#: objc-parse.y:1076 objc-parse.y:1082 objc-parse.y:1088 objc-parse.y:1121
+#: objc-parse.y:1127 objc-parse.y:1133 objc-parse.y:1139 objc-parse.y:1184
+#: objc-parse.y:1190 objc-parse.y:1196 objc-parse.y:1202
#, c-format
msgid "`%s' is not at beginning of declaration"
msgstr "`%s' bildirimin başlangıcında değil"
-#: c-parse.y:1410 objc-parse.y:1455
+#: c-parse.y:1441 objc-parse.y:1496
msgid "ISO C forbids empty initializer braces"
msgstr "ISO C boÅŸ ilklendirme parantezlerine izin vermez"
-#: c-parse.y:1424 objc-parse.y:1469
+#: c-parse.y:1455 objc-parse.y:1510
msgid "ISO C89 forbids specifying subobject to initialize"
msgstr "ISO C89 öndeğer olarak alt nesnelerin belirtilmesine izin vermez."
-#: c-parse.y:1427 objc-parse.y:1472
+#: c-parse.y:1458 objc-parse.y:1513
msgid "obsolete use of designated initializer without `='"
msgstr "`=' olmaksızın tasarlanmış ilklendirici kullanımının modası geçti"
-#: c-parse.y:1431 objc-parse.y:1476
+#: c-parse.y:1462 objc-parse.y:1517
msgid "obsolete use of designated initializer with `:'"
msgstr "`:' olmaksızın tasarlanmış ilklendirici kullanımının modası geçti"
-#: c-parse.y:1460
+#: c-parse.y:1489 objc-parse.y:1544
msgid "ISO C forbids specifying range of elements to initialize"
msgstr "ISO C89 öndeğer olarak eleman aralığı belirtilmesine izin vermez."
-#: c-parse.y:1468 c-parse.y:1498 objc-parse.y:1507 objc-parse.y:1537
+#: c-parse.y:1497 c-parse.y:1528 objc-parse.y:1552 objc-parse.y:1583
msgid "ISO C forbids nested functions"
msgstr "ISO C iç içe işlevlere izin vermez"
-#: c-parse.y:1672 objc-parse.y:1713
+#: c-parse.y:1703 objc-parse.y:1760
msgid "ISO C forbids forward references to `enum' types"
msgstr "ISO C sonradan bildirilmiş `enum' türüne başvuruya izin vermez"
-#: c-parse.y:1684 parse.y:2364 objc-parse.y:1725
+#: c-parse.y:1715 parse.y:2411 objc-parse.y:1772
msgid "comma at end of enumerator list"
msgstr "sembolik sabitler listesinin sonunda virgül"
-#: c-parse.y:1692 objc-parse.y:1733
+#: c-parse.y:1723 objc-parse.y:1780
msgid "no semicolon at end of struct or union"
msgstr "struct ya da union tanımının sonunda ; yok"
-#: c-parse.y:1701 objc-parse.y:1742 objc-parse.y:2819
+#: c-parse.y:1732 objc-parse.y:1789 objc-parse.y:2864
msgid "extra semicolon in struct or union specified"
msgstr "struct ya da union'da fazladan ; var"
-#: c-parse.y:1714 objc-parse.y:1769
+#: c-parse.y:1745 objc-parse.y:1816
msgid "ISO C doesn't support unnamed structs/unions"
msgstr "ISO C isimsiz struct/union'lara izin vermez"
-#: c-parse.y:1723 objc-parse.y:1778
+#: c-parse.y:1754 objc-parse.y:1825
msgid "ISO C forbids member declarations with no members"
msgstr "ISO C üyesiz üye bildirimlerine izin vermez"
-#: c-parse.y:1872 c-parse.y:1876 c-parse.y:1880 objc-parse.y:1927 objc-parse.y:1931 objc-parse.y:1935
-msgid "storage class specifier in array declarator"
-msgstr "dizi bildiriminde saklatım öbeği belirteçleri"
-
-#: c-parse.y:1895 objc-parse.y:1950
+#: c-parse.y:1913 objc-parse.y:1984
msgid "deprecated use of label at end of compound statement"
msgstr "bileşik ifadenin sonunda etiket kullanımının modası geçti"
-#: c-parse.y:1912 objc-parse.y:1967
+#: c-parse.y:1930 objc-parse.y:2001
msgid "ISO C89 forbids mixed declarations and code"
msgstr "ISO C kod ve bildirimlerin karışımına izin vermez"
-#: c-parse.y:1986 objc-parse.y:2045
+#: c-parse.y:2005 objc-parse.y:2080
msgid "ISO C forbids label declarations"
msgstr "ISO C etiket bildirimlerine izin vermez"
-#: c-parse.y:2035 parse.y:1607 objc-parse.y:2094
+#: c-parse.y:2055 parse.y:1638 objc-parse.y:2130
msgid "braced-group within expression allowed only inside a function"
msgstr "ifade içinde parantezli gruplamalara sadece bir işlevin içinde izin verilir"
-#: c-parse.y:2161 objc-parse.y:2220
+#: c-parse.y:2182 objc-parse.y:2257
msgid "empty body in an else-statement"
msgstr "else ifadesinin gövdesi boş"
-#: c-parse.y:2281 objc-parse.y:2340
+#: c-parse.y:2303 objc-parse.y:2378
msgid "ISO C forbids `goto *expr;'"
msgstr "ISO C `goto *expr;' kullanımına izin vermez"
-#: c-parse.y:2379 objc-parse.y:2438
+#: c-parse.y:2403 objc-parse.y:2478
msgid "ISO C forbids forward parameter declarations"
msgstr "ISO C ileriye dönük parametre bildirimlerine izin vermez"
@@ -2328,170 +2513,175 @@ msgstr "ISO C ileriye dönük parametre bildirimlerine izin vermez"
#. it caused problems with the code in expand_builtin which
#. tries to verify that BUILT_IN_NEXT_ARG is being used
#. correctly.
-#: c-parse.y:2405 objc-parse.y:2464
+#: c-parse.y:2429 objc-parse.y:2504
msgid "ISO C requires a named argument before `...'"
msgstr "ISO C `...'dan önce bir isimli argüman gerektirir"
-#: c-parse.y:2500 objc-parse.y:2559
+#: c-parse.y:2526 objc-parse.y:2601
msgid "`...' in old-style identifier list"
msgstr "eski-tarz tanıtıcı listesinde `...'"
-#: /usr/share/bison/bison.simple:821
+#: /usr/share/bison/bison.simple:795
msgid "parse error; also virtual memory exhausted"
msgstr "ayrıştırma hatası; ayrıca sanal bellek aşıldı"
-#: /usr/share/bison/bison.simple:825 cp/spew.c:343 /usr/share/bison.simple:654
+#: /usr/share/bison/bison.simple:799 cp/spew.c:364
msgid "parse error"
msgstr "ayrıştırma hatası:"
-#: /usr/share/bison/bison.simple:950 /usr/share/bison.simple:367
+#: /usr/share/bison/bison.simple:924
msgid "parser stack overflow"
msgstr "ayrıştırıcı yığın taşması"
-#: c-parse.y:2824 cp/spew.c:1477 objc-parse.y:3511
+#: c-parse.y:2838 cp/spew.c:1525 objc-parse.y:3537
#, c-format
msgid "%s at end of input"
msgstr "%s girdinin sonunda"
-#: c-parse.y:2830 cp/spew.c:1483 objc-parse.y:3517
+#: c-parse.y:2844 cp/spew.c:1533 objc-parse.y:3543
#, c-format
msgid "%s before %s'%c'"
msgstr "%2$s'%3$c'den önce %1$s"
-#: c-parse.y:2832 cp/spew.c:1485 objc-parse.y:3519
+#: c-parse.y:2846 cp/spew.c:1535 objc-parse.y:3545
#, c-format
msgid "%s before %s'\\x%x'"
msgstr "%2$s'\\x%3$x'den önce %1$s"
-#: c-parse.y:2836 cp/spew.c:1489 objc-parse.y:3523
+#: c-parse.y:2850 cp/spew.c:1542 objc-parse.y:3549
#, c-format
msgid "%s before string constant"
msgstr "%s dizge sabitten önce"
-#: c-parse.y:2838 cp/spew.c:1491 objc-parse.y:3525
+#: c-parse.y:2852 cp/spew.c:1544 objc-parse.y:3551
#, c-format
msgid "%s before numeric constant"
msgstr "sayısal sabitten önce %s"
-#: c-parse.y:2840 objc-parse.y:3527
+#: c-parse.y:2854 objc-parse.y:3553
#, c-format
msgid "%s before \"%s\""
msgstr "\"%2$s\"den önce %1$s"
-#: c-parse.y:2842 objc-parse.y:3529
+#: c-parse.y:2856 objc-parse.y:3555
#, c-format
msgid "%s before '%s' token"
msgstr "'%2$s' dizgeciğinden önce %1$s"
-#: c-parse.y:2978 objc-parse.y:3708
+#: c-parse.y:2921
+msgid "traditional C rejects string concatenation"
+msgstr "geleneksel C dizgelerin birleÅŸtirilmesine izin vermez"
+
+#: c-parse.y:3047 objc-parse.y:3779
#, c-format
msgid "syntax error at '%s' token"
msgstr "'%s' dizgeciğinde sözdizimi hatası"
-#: c-parse.y:3008 cp/lex.c:906 objc-parse.y:3738
-msgid "YYDEBUG not defined"
-msgstr "YYDEBUG tanımlı değil"
-
-#: c-pragma.c:109
+#: c-pragma.c:107
msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
msgstr "#pragma pack (push, <n>) ile eşleşmeyen #pragma pack (pop) saptandı"
-#: c-pragma.c:127
+#: c-pragma.c:125
#, c-format
msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
msgstr "#pragma pack(push, %2$s, <n>) ile eşleşmeyen #pragma pack(pop, %1$s) saptandı"
-#: c-pragma.c:162
+#: c-pragma.c:145
msgid "#pragma pack(push[, id], <n>) is not supported on this target"
msgstr "bu hedefte #pragma pack(push[, id], <n>) desteklenmiyor"
-#: c-pragma.c:164
+#: c-pragma.c:147
msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
msgstr "bu hedefte #pragma pack(pop[, id], <n>) desteklenmiyor"
-#: c-pragma.c:184
+#: c-pragma.c:167
msgid "missing '(' after '#pragma pack' - ignored"
msgstr "'#pragma pack' den sonra '(' eksik - yoksayıldı"
-#: c-pragma.c:197 c-pragma.c:247
+#: c-pragma.c:180 c-pragma.c:230
msgid "malformed '#pragma pack' - ignored"
msgstr "'#pragma pack' bozuk - yoksayıldı"
-#: c-pragma.c:202
+#: c-pragma.c:185
msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
msgstr "bozuk '#pragma pack(push[, id], <n>)' - yoksayıldı"
-#: c-pragma.c:204
+#: c-pragma.c:187
msgid "malformed '#pragma pack(pop[, id])' - ignored"
msgstr "'#pragma pack(pop[, id])' bozuk - yoksayıldı"
-#: c-pragma.c:213
+#: c-pragma.c:196
#, c-format
msgid "unknown action '%s' for '#pragma pack' - ignored"
msgstr "'#pragma pack' için '%s' eylemi bilinmiyor - yoksayıldı"
-#: c-pragma.c:250
+#: c-pragma.c:233
msgid "junk at end of '#pragma pack'"
msgstr "'#pragma pack' sonunda döküntü"
-#: c-pragma.c:264
+#: c-pragma.c:247
#, c-format
msgid "alignment must be a small power of two, not %d"
msgstr "hizalama ikinin küçük bir üssü olmalı %d değil"
-#: c-pragma.c:329 c-pragma.c:334
+#: c-pragma.c:280
+#, c-format
+msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+msgstr "ilk kullanımdan sonra #pragma weak `%s' yönergesini uygulamak tanımlanmamış davranışa yol açar"
+
+#: c-pragma.c:328 c-pragma.c:333
msgid "malformed #pragma weak, ignored"
msgstr "'#pragma weak' yönergesi bozuk - yoksayıldı"
-#: c-pragma.c:338
+#: c-pragma.c:337
msgid "junk at end of #pragma weak"
msgstr "'#pragma weak' sonunda döküntü"
-#: c-pragma.c:369 c-pragma.c:374
+#: c-pragma.c:372 c-pragma.c:377
msgid "malformed #pragma redefine_extname, ignored"
msgstr "#pragma redefine_extname yönergesi bozuk - yoksayıldı"
-#: c-pragma.c:379
+#: c-pragma.c:382
msgid "junk at end of #pragma redefine_extname"
msgstr "#pragma redefine_extname sonunda döküntü"
-#: c-pragma.c:386 c-pragma.c:461
+#: c-pragma.c:389 c-pragma.c:470
msgid "#pragma redefine_extname conflicts with declaration"
msgstr "#pragma redefine_extname bildirimiyle çelişiyor"
-#: c-pragma.c:410
+#: c-pragma.c:420
msgid "malformed #pragma extern_prefix, ignored"
msgstr "#pragma extern_prefix bozuk, yoksayıldı"
-#: c-pragma.c:415
+#: c-pragma.c:425
msgid "junk at end of #pragma extern_prefix"
msgstr "'#pragma extern_prefix' sonunda karışıklık"
-#: c-pragma.c:447
-msgid "asm declaration conficts with previous rename"
+#: c-pragma.c:457
+msgid "asm declaration conflicts with previous rename"
msgstr "asm bildirimi önceki isim değişikliği ile çelişiyor"
-#: c-semantics.c:563
+#: c-semantics.c:565
msgid "break statement not within loop or switch"
msgstr "break deyimi switch ya da döngü içinde değil"
-#: c-semantics.c:581
+#: c-semantics.c:583
msgid "continue statement not within a loop"
msgstr "continue deyimi bir döngü içinde değil"
-#: c-semantics.c:676
+#: c-semantics.c:678
msgid "destructor needed for `%#D'"
msgstr "case etiketinin yerindeki `%#D' için"
-#: c-semantics.c:677
+#: c-semantics.c:679
msgid "where case label appears here"
msgstr "yıkıcı gerekli"
-#: c-semantics.c:680
+#: c-semantics.c:682
msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
msgstr "(önceki case deyimlerinin zarflama eylemleri kendi içerinde yıkıcıları gerektiriyor)"
-#: c-semantics.c:723 c-typeck.c:6923 cp/semantics.c:889
+#: c-semantics.c:725 c-typeck.c:6942 cp/semantics.c:897
#, c-format
msgid "%s qualifier ignored on asm"
msgstr "asm'de %s niteleyicisi yoksayıldı"
@@ -2501,7 +2691,7 @@ msgstr "asm'de %s niteleyicisi yoksayıldı"
msgid "`%s' has an incomplete type"
msgstr "`%s' tamamlanmamış türde"
-#: c-typeck.c:145 cp/call.c:2621
+#: c-typeck.c:145 cp/call.c:2865
msgid "invalid use of void expression"
msgstr "void deyiminin kullanımı geçersiz"
@@ -2509,7 +2699,7 @@ msgstr "void deyiminin kullanımı geçersiz"
msgid "invalid use of flexible array member"
msgstr "esnek dizi üyesinin kullanımı geçersiz"
-#: c-typeck.c:159 cp/typeck2.c:227
+#: c-typeck.c:159
msgid "invalid use of array with unspecified bounds"
msgstr "sınırları belirtilmemiş dizi; kullanımı geçersiz"
@@ -2524,965 +2714,1082 @@ msgstr "atanmamış tür `%s %s'; kullanımı geçersiz"
msgid "invalid use of incomplete typedef `%s'"
msgstr "tamamlanmamış typedef `%s'; kullanımı geçersiz"
-#: c-typeck.c:402 c-typeck.c:416
+#: c-typeck.c:424 c-typeck.c:438
msgid "function types not truly compatible in ISO C"
msgstr "işlev türleri ISO C'de tam uyumlu değil"
-#: c-typeck.c:576
+#: c-typeck.c:603
msgid "types are not quite compatible"
msgstr "türler tam uyumlu değil"
-#: c-typeck.c:729
-msgid "sizeof applied to a function type"
-msgstr "bir işlev türüne sizeof uygulanmış"
-
-#: c-typeck.c:735
-msgid "sizeof applied to a void type"
-msgstr "bir void türe sizeof uygulanmış"
-
-#: c-typeck.c:742
-msgid "sizeof applied to an incomplete type"
-msgstr "sizeof bir tamamlanmamış türe uygulanmış"
-
-#: c-typeck.c:795 c-typeck.c:2704
+#: c-typeck.c:757 c-typeck.c:2687
msgid "arithmetic on pointer to an incomplete type"
-msgstr "bir içi boş tür göstergesi üzerinde aritmetik"
+msgstr "bir içi boş tür gösterici üzerinde aritmetik"
-#: c-typeck.c:1183
+#: c-typeck.c:1136
#, c-format
msgid "%s has no member named `%s'"
msgstr "%s'in `%s' isimli bir üyesi yok"
-#: c-typeck.c:1216
+#: c-typeck.c:1172
#, c-format
msgid "request for member `%s' in something not a structure or union"
msgstr "bir struct veya union olmayan şeyin `%s' üyesi için istek"
-#: c-typeck.c:1248
+#: c-typeck.c:1204
msgid "dereferencing pointer to incomplete type"
-msgstr "içi boş türe gösterge başvuru bozulması"
+msgstr "içi boş türe gösterici ilişkilendirme"
-#: c-typeck.c:1252
+#: c-typeck.c:1208
msgid "dereferencing `void *' pointer"
-msgstr "`void *' gösterge başvurusu bozulması"
+msgstr "`void *' gösterici ilişkilendirmesi"
-#: c-typeck.c:1269 cp/typeck.c:2347
+#: c-typeck.c:1225 cp/typeck.c:2369
#, c-format
msgid "invalid type argument of `%s'"
msgstr "`%s' için tür argümanı geçersiz"
-#: c-typeck.c:1288 cp/typeck.c:2373
+#: c-typeck.c:1244 cp/typeck.c:2395
msgid "subscript missing in array reference"
msgstr "dizi baÅŸvurusunda altindis yok"
-#: c-typeck.c:1309 cp/typeck.c:2415
+#: c-typeck.c:1265 cp/typeck.c:2437
msgid "array subscript has type `char'"
msgstr "dizi altindisi `char' türünde"
-#: c-typeck.c:1317 c-typeck.c:1406 cp/typeck.c:2422 cp/typeck.c:2501
+#: c-typeck.c:1273 c-typeck.c:1362 cp/typeck.c:2444 cp/typeck.c:2523
msgid "array subscript is not an integer"
msgstr "dizi altindisi bir tamsayı değil"
-#: c-typeck.c:1350
+#: c-typeck.c:1306
msgid "ISO C forbids subscripting `register' array"
msgstr "ISO C `register' dizisi altindislemesine izin vermez"
-#: c-typeck.c:1352
-msgid "ISO C89 forbids subscripting non-lvalue array"
-msgstr "ISO C sol tarafsız dizi alt indislemesine izin vermez"
+#: c-typeck.c:1308
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr "ISO C90 sol yansız dizi indislemesine izin vermez"
-#: c-typeck.c:1385
+#: c-typeck.c:1341
msgid "subscript has type `char'"
msgstr "alt indis `char' türünde"
-#: c-typeck.c:1401 cp/typeck.c:2496
+#: c-typeck.c:1357 cp/typeck.c:2518
msgid "subscripted value is neither array nor pointer"
-msgstr "altindisli değer ne dizi ne de bir gösterge"
+msgstr "indisli değer ne dizi ne de bir gösterici"
-#: c-typeck.c:1455
+#: c-typeck.c:1411
#, c-format
msgid "`%s' undeclared here (not in a function)"
msgstr "`%s' burada bildirilmemiş (bir işlev içinde değil)"
-#: c-typeck.c:1462
+#: c-typeck.c:1418
#, c-format
msgid "`%s' undeclared (first use in this function)"
msgstr "`%s' bildirilmemiş (bu işlevde ilk kullanımı)"
-#: c-typeck.c:1467
+#: c-typeck.c:1423
msgid "(Each undeclared identifier is reported only once"
msgstr "(Bildirilmemiş her tanıtıcı sadece bir kez raporlanır)"
-#: c-typeck.c:1468
+#: c-typeck.c:1424
msgid "for each function it appears in.)"
msgstr "her işlev için içinde görünür.)"
-#: c-typeck.c:1485
+#: c-typeck.c:1441
#, c-format
msgid "local declaration of `%s' hides instance variable"
msgstr "`%s' yerel bildirimi gerçekleme değişkenini gizliyor"
-#: c-typeck.c:1550
+#: c-typeck.c:1518
msgid "called object is not a function"
msgstr "çağrılan nesne bir işlev değil"
-#: c-typeck.c:1637 cp/typeck.c:3133
+#: c-typeck.c:1604 cp/typeck.c:2829
msgid "too many arguments to function"
msgstr "işlev için çok fazla argüman belirtildi"
-#: c-typeck.c:1658
+#: c-typeck.c:1625
#, c-format
msgid "type of formal parameter %d is incomplete"
msgstr "%d biçimsel parametre türü tamamlanmayan türde"
-#: c-typeck.c:1671
+#: c-typeck.c:1638
#, c-format
msgid "%s as integer rather than floating due to prototype"
-msgstr "%s prototipten dolayı bir gerçel sayıdan çok bir tamsayı"
+msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir tamsayı"
-#: c-typeck.c:1674
+#: c-typeck.c:1641
#, c-format
msgid "%s as integer rather than complex due to prototype"
-msgstr "%s prototipten dolayı bir karmaşık sayıdan çok bir tamsayı"
+msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir tamsayı"
-#: c-typeck.c:1677
+#: c-typeck.c:1644
#, c-format
msgid "%s as complex rather than floating due to prototype"
-msgstr "%s prototipten dolayı bir gerçel sayıdan çok bir karmaşık sayı"
+msgstr "%sması prototipten dolayı bir gerçel sayıdan çok bir karmaşık sayı"
-#: c-typeck.c:1680
+#: c-typeck.c:1647
#, c-format
msgid "%s as floating rather than integer due to prototype"
-msgstr "%s prototipten dolayı bir tamsayıdan çok bir gerçel sayı"
+msgstr "%sması prototipten dolayı bir tamsayıdan çok bir gerçel sayı"
-#: c-typeck.c:1683
+#: c-typeck.c:1650
#, c-format
msgid "%s as complex rather than integer due to prototype"
-msgstr "%s prototipten dolayı bir tamsayıdan çok bir karmaşık sayı"
+msgstr "%sması prototipten dolayı bir tamsayıdan çok bir karmaşık sayı"
-#: c-typeck.c:1686
+#: c-typeck.c:1653
#, c-format
msgid "%s as floating rather than complex due to prototype"
-msgstr "%s prototipten dolayı bir karmaşık sayıdan çok bir gerçel sayı"
+msgstr "%sması prototipten dolayı bir karmaşık sayıdan çok bir gerçel sayı"
-#: c-typeck.c:1696
+#: c-typeck.c:1663
#, c-format
msgid "%s as `float' rather than `double' due to prototype"
-msgstr "%s prototipten dolayı bir «double»dan çok bir «float»"
+msgstr "%sması prototipten dolayı bir «double»dan çok bir «float»"
-#: c-typeck.c:1714
+#: c-typeck.c:1681
#, c-format
msgid "%s with different width due to prototype"
-msgstr "prototipten dolayı farklı genişlikle %s"
+msgstr "prototipten dolayı farklı genişlikle %sması"
-#: c-typeck.c:1748
+#: c-typeck.c:1715
#, c-format
msgid "%s as unsigned due to prototype"
-msgstr "%s prototipten dolayı unsigned"
+msgstr "%sması prototipten dolayı unsigned"
-#: c-typeck.c:1750
+#: c-typeck.c:1717
#, c-format
msgid "%s as signed due to prototype"
-msgstr "%s prototipten dolayı signed"
+msgstr "%sması prototipten dolayı signed"
-#: c-typeck.c:1784 cp/typeck.c:3241
+#: c-typeck.c:1751 cp/typeck.c:2933
msgid "too few arguments to function"
msgstr "işlev için çok az argüman belirtildi"
-#: c-typeck.c:1826
+#: c-typeck.c:1793
msgid "suggest parentheses around + or - inside shift"
msgstr "shift içindeki + ya da - çevresinde parantezler önerilir"
-#: c-typeck.c:1833
+#: c-typeck.c:1800
msgid "suggest parentheses around && within ||"
msgstr "|| içindeki && çevresinde parantezler önerilir"
-#: c-typeck.c:1842
+#: c-typeck.c:1809
msgid "suggest parentheses around arithmetic in operand of |"
msgstr "| işlemimindeki aritmetik çevresinde parantezler önerilir"
-#: c-typeck.c:1845
+#: c-typeck.c:1812
msgid "suggest parentheses around comparison in operand of |"
msgstr "| işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:1854
+#: c-typeck.c:1821
msgid "suggest parentheses around arithmetic in operand of ^"
msgstr "^ işlemimindeki aritmetik çevresinde parantezler önerilir"
-#: c-typeck.c:1857
+#: c-typeck.c:1824
msgid "suggest parentheses around comparison in operand of ^"
msgstr "^ işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:1864
+#: c-typeck.c:1831
msgid "suggest parentheses around + or - in operand of &"
msgstr "& işlemimindeki + veya - çevresinde parantezler önerilir"
-#: c-typeck.c:1867
+#: c-typeck.c:1834
msgid "suggest parentheses around comparison in operand of &"
msgstr "& işlemimindeki karşılaştırma çevresinde parantezler önerilir"
-#: c-typeck.c:1874
+#: c-typeck.c:1841
msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
msgstr "X<=Y<=Z gibi bir karşılaştıma matematiksel olarak anlamlı değil"
-#: c-typeck.c:2034 c-typeck.c:2067
+#: c-typeck.c:2001 c-typeck.c:2036
msgid "division by zero"
msgstr "sıfırla bölme"
-#: c-typeck.c:2112 cp/typeck.c:3502
+#: c-typeck.c:2081 cp/typeck.c:3194
msgid "right shift count is negative"
msgstr "sağa kaydırma sayısı negatif"
-#: c-typeck.c:2119 cp/typeck.c:3508
+#: c-typeck.c:2088 cp/typeck.c:3200
msgid "right shift count >= width of type"
msgstr "sağa kaydırma sayısı türünden büyük yada eşit"
-#: c-typeck.c:2144 cp/typeck.c:3527
+#: c-typeck.c:2109 cp/typeck.c:3219
msgid "left shift count is negative"
msgstr "sola kaydırma sayısı negatif"
-#: c-typeck.c:2147 cp/typeck.c:3529
+#: c-typeck.c:2112 cp/typeck.c:3221
msgid "left shift count >= width of type"
msgstr "sola kaydırma sayısı türünden büyük ya da eşit"
-#: c-typeck.c:2172
+#: c-typeck.c:2133
msgid "shift count is negative"
msgstr "kaydırma sayısı negatif"
-#: c-typeck.c:2174
+#: c-typeck.c:2135
msgid "shift count >= width of type"
msgstr "kaydırma sayısı türünden büyük ya da eşit"
-#: c-typeck.c:2195 cp/typeck.c:3564
+#: c-typeck.c:2152 cp/typeck.c:3256
msgid "comparing floating point with == or != is unsafe"
msgstr "== veya != ile karşılaştırma gerçel sayılarda güvenli değil"
-#: c-typeck.c:2219 c-typeck.c:2225
+#: c-typeck.c:2178 c-typeck.c:2184
msgid "ISO C forbids comparison of `void *' with function pointer"
-msgstr "ISO C `void *' ile işlev göstergesi karşılaştırmasına izin vermez"
+msgstr "ISO C `void *' ile işlev göstericisinin karşılaştırılmasına izin vermez"
-#: c-typeck.c:2228 c-typeck.c:2270 c-typeck.c:2298
+#: c-typeck.c:2187 c-typeck.c:2227 c-typeck.c:2255
msgid "comparison of distinct pointer types lacks a cast"
-msgstr "belirgin gösterge türlerinin karşılaştırması bir çevirim gerektirir"
+msgstr "belirgin gösterici türlerinin karşılaştırması bir tür dönüşümü gerektirir"
-#: c-typeck.c:2243 c-typeck.c:2249 c-typeck.c:2319 c-typeck.c:2325
+#: c-typeck.c:2201 c-typeck.c:2206 c-typeck.c:2275 c-typeck.c:2280
msgid "comparison between pointer and integer"
-msgstr "gösterge ile tamsayı arasında karşılaştırma"
+msgstr "gösterici türü ile tamsayı türü arasında karşılaştırma"
-#: c-typeck.c:2265 c-typeck.c:2293
+#: c-typeck.c:2222 c-typeck.c:2250
msgid "ISO C forbids ordered comparisons of pointers to functions"
-msgstr "ISO C işlev göstergelerinin düzenlenmiş karşılaştırmalarına izin vermez"
+msgstr "ISO C işlev göstericilerinin sıralı karşılaştırmalarına izin vermez"
-#: c-typeck.c:2290
+#: c-typeck.c:2247
msgid "comparison of complete and incomplete pointers"
-msgstr "tamamlanmış ve içi boş göstergelerin karşılaştırması"
+msgstr "tamamlanmış ve içi boş göstericilerin karşılaştırılması"
-#: c-typeck.c:2306 c-typeck.c:2313
+#: c-typeck.c:2263 c-typeck.c:2270
msgid "ordered comparison of pointer with integer zero"
-msgstr "tamsayı sıfır ile göstergenin düzenlenmiş karşılaştırması"
+msgstr "tamsayı sıfır ile göstercinin sıralı karşılaştırması"
-#: c-typeck.c:2339 cp/typeck.c:3697
+#: c-typeck.c:2294 cp/typeck.c:3389
msgid "unordered comparison on non-floating point argument"
msgstr "gerçel sayı olmayan argümanlar arasında düzenlenmemiş karşılaştırma"
-#: c-typeck.c:2543
+#: c-typeck.c:2505
msgid "comparison between signed and unsigned"
msgstr "signed ile unsigned arasında karşılaştırma"
-#: c-typeck.c:2589 cp/typeck.c:3943
+#: c-typeck.c:2551 cp/typeck.c:3633
msgid "comparison of promoted ~unsigned with constant"
msgstr "sabitle yükseltgenmiş ~unsigned karşılaştırması"
-#: c-typeck.c:2597 cp/typeck.c:3951
+#: c-typeck.c:2559 cp/typeck.c:3641
msgid "comparison of promoted ~unsigned with unsigned"
msgstr "unsigned ile ~unsigned'a yükseltgenmiş türlerin karşılaştırması"
-#: c-typeck.c:2656
+#: c-typeck.c:2639
msgid "pointer of type `void *' used in subtraction"
-msgstr "çıkartmada `void *' türünde gösterge kullanılmış"
+msgstr "çıkartmada `void *' türünde gösterici kullanılmış"
-#: c-typeck.c:2658
+#: c-typeck.c:2641
msgid "pointer to a function used in subtraction"
-msgstr "çıkartmada işlev göstergesi kullanılmış"
+msgstr "çıkartmada işlev göstericisi kullanılmış"
-#: c-typeck.c:2755
+#: c-typeck.c:2738
msgid "wrong type argument to unary plus"
msgstr "tekil artı işleminde yanlış tür argümanı"
-#: c-typeck.c:2766
+#: c-typeck.c:2751
msgid "wrong type argument to unary minus"
msgstr "tekil eksi işleminde yanlış tür argümanı"
-#: c-typeck.c:2778
+#: c-typeck.c:2768
msgid "ISO C does not support `~' for complex conjugation"
msgstr "ISO C karmaşık sayıların mantıksal çarpımında `~' desteklemez"
-#: c-typeck.c:2784
+#: c-typeck.c:2774
msgid "wrong type argument to bit-complement"
msgstr "bit-tümler için yanlış tür argümanı"
-#: c-typeck.c:2795
+#: c-typeck.c:2783
msgid "wrong type argument to abs"
msgstr "mutlak değer için yanlış tür argümanı"
-#: c-typeck.c:2807
+#: c-typeck.c:2795
msgid "wrong type argument to conjugation"
msgstr "mantıksal çarpım için yanlış tür argümanı"
-#: c-typeck.c:2821
+#: c-typeck.c:2809
msgid "wrong type argument to unary exclamation mark"
msgstr "tekil tümleyen için yanlış tür argümanı"
-#: c-typeck.c:2864
+#: c-typeck.c:2852
msgid "ISO C does not support `++' and `--' on complex types"
msgstr "ISO C karmaşık sayı türlerinde `++' ve `--' desteklemez"
-#: c-typeck.c:2879 c-typeck.c:2911
+#: c-typeck.c:2867 c-typeck.c:2899
msgid "wrong type argument to increment"
msgstr "arttırımda yanlış türde argüman"
-#: c-typeck.c:2881 c-typeck.c:2913
+#: c-typeck.c:2869 c-typeck.c:2901
msgid "wrong type argument to decrement"
msgstr "eksiltmede yanlış türde argüman"
-#: c-typeck.c:2902
+#: c-typeck.c:2890
msgid "increment of pointer to unknown structure"
-msgstr "bilinmeyen yapı göstergesinde arttırma"
+msgstr "bilinmeyen yapı göstericisinde arttırma"
-#: c-typeck.c:2904
+#: c-typeck.c:2892
msgid "decrement of pointer to unknown structure"
-msgstr "bilinmeyen yapı göstergesinde eksiltme"
+msgstr "bilinmeyen yapı göstericisinde eksiltme"
-#: c-typeck.c:3041
+#: c-typeck.c:3029
msgid "ISO C forbids the address of a cast expression"
-msgstr "ISO C çevirim ifadesi adresine izin vermez"
+msgstr "ISO C tür dönüşüm ifadesi adresine izin vermez"
-#: c-typeck.c:3051
+#: c-typeck.c:3039
msgid "invalid lvalue in unary `&'"
-msgstr "tekil `&' için geçersiz sol taraf"
+msgstr "tekil `&' için geçersiz soldeğer"
-#: c-typeck.c:3083
+#: c-typeck.c:3071
#, c-format
msgid "attempt to take address of bit-field structure member `%s'"
msgstr "bit-alanı yapının `%s' üyesinin adresi alınmaya çalışılıyor"
-#: c-typeck.c:3192 c-typeck.c:4618 c-typeck.c:4634 c-typeck.c:4650 final.c:2981 final.c:2983 gcc.c:4462 rtl-error.c:121 tradcif.y:532 tradcpp.c:4134 config/cris/cris.c:515 cp/typeck.c:4650 java/expr.c:386 java/verify.c:1464 java/verify.c:1465 java/verify.c:1480
+#: c-typeck.c:3180 c-typeck.c:4651 c-typeck.c:4667 c-typeck.c:4683
+#: final.c:3146 final.c:3148 gcc.c:4381 rtl-error.c:122 toplev.c:1694
+#: config/cris/cris.c:545 cp/spew.c:1538 cp/typeck.c:4367 java/expr.c:364
+#: java/verify.c:1467 java/verify.c:1468 java/verify.c:1483
#, c-format
msgid "%s"
msgstr "%s"
-#: c-typeck.c:3253
+#: c-typeck.c:3241
msgid "ISO C forbids use of conditional expressions as lvalues"
msgstr "ISO C koşullu ifadelerin sol tarafta kullanımına izin vermez."
-#: c-typeck.c:3256
+#: c-typeck.c:3244
msgid "ISO C forbids use of compound expressions as lvalues"
msgstr "ISO C bileşik ifadelerin sol tarafta kullanımına izin vermez."
-#: c-typeck.c:3259
+#: c-typeck.c:3247
msgid "ISO C forbids use of cast expressions as lvalues"
-msgstr "ISO C çevirim ifadelerin sol tarafta kullanımına izin vermez."
+msgstr "ISO C tür dönüşüm ifadelerin sol tarafta kullanımına izin vermez."
-#: c-typeck.c:3276
+#: c-typeck.c:3264
#, c-format
msgid "%s of read-only member `%s'"
msgstr "salt-okunur üye `%2$s' için %1$s"
-#: c-typeck.c:3280
+#: c-typeck.c:3268
#, c-format
msgid "%s of read-only variable `%s'"
msgstr "salt-okunur değişken `%2$s' için %1$s"
-#: c-typeck.c:3283
+#: c-typeck.c:3271
#, c-format
msgid "%s of read-only location"
msgstr "salt-okunur konumun %s"
-#: c-typeck.c:3301
+#: c-typeck.c:3290
#, c-format
msgid "cannot take address of bit-field `%s'"
msgstr "`%s' bit-alanının adresi alınamıyor"
-#: c-typeck.c:3329
+#: c-typeck.c:3318
#, c-format
msgid "global register variable `%s' used in nested function"
msgstr "genel yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
-#: c-typeck.c:3333
+#: c-typeck.c:3322
#, c-format
msgid "register variable `%s' used in nested function"
msgstr "yazmaç değişkeni `%s' yuvalanmış işlevde kullanılmış"
-#: c-typeck.c:3340
+#: c-typeck.c:3329
#, c-format
msgid "address of global register variable `%s' requested"
msgstr "`%s' genel yazmaç değişkeninin adresi istenmiş"
-#: c-typeck.c:3352
+#: c-typeck.c:3341
msgid "cannot put object with volatile field into register"
msgstr "gelgeç alanlı nesne yazmaça konulamaz"
-#: c-typeck.c:3356
+#: c-typeck.c:3345
#, c-format
msgid "address of register variable `%s' requested"
msgstr "`%s' yazmaç değişkeninin adresi istendi"
-#: c-typeck.c:3464
+#: c-typeck.c:3453
msgid "signed and unsigned type in conditional expression"
msgstr "koşullu ifadede signed ve unsigned türler"
-#: c-typeck.c:3471
+#: c-typeck.c:3460
msgid "ISO C forbids conditional expr with only one void side"
msgstr "ISO C tek taraflı void tür içeren koşullu ifadelere izin vermez"
-#: c-typeck.c:3487 c-typeck.c:3494
+#: c-typeck.c:3476 c-typeck.c:3483
msgid "ISO C forbids conditional expr between `void *' and function pointer"
-msgstr "ISO C `void *' ve işlev göstergesi arasında koşullu ifadelere izin vermez"
+msgstr "ISO C `void *' ve işlev göstericisi arasında koşullu ifadelere izin vermez"
-#: c-typeck.c:3500
+#: c-typeck.c:3489
msgid "pointer type mismatch in conditional expression"
-msgstr "koşullu ifade içinde gösterge türü uyumsuzluğu"
+msgstr "koşullu ifade içinde gösterici türü uyumsuzluğu"
-#: c-typeck.c:3507 c-typeck.c:3517
+#: c-typeck.c:3496 c-typeck.c:3506
msgid "pointer/integer type mismatch in conditional expression"
-msgstr "koşullu ifadede gösterge/tamsayı tür uyumsuzluğu"
+msgstr "koşullu ifadede gösterici/tamsayı tür uyumsuzluğu"
-#: c-typeck.c:3531
+#: c-typeck.c:3520
msgid "type mismatch in conditional expression"
msgstr "şartlı ifade içinde tür uyumsuzluğu"
-#: c-typeck.c:3602 cp/typeck.c:4907
+#: c-typeck.c:3591 cp/typeck.c:4623
msgid "left-hand operand of comma expression has no effect"
msgstr "virgüllü ifadenin sol terimi etkisiz"
-#: c-typeck.c:3641
+#: c-typeck.c:3635
msgid "cast specifies array type"
-msgstr "çevirim tür olarak dizi belirtiyor"
+msgstr "tür dönüşümü dizi belirtiyor"
-#: c-typeck.c:3647
+#: c-typeck.c:3641
msgid "cast specifies function type"
-msgstr "çevirim tür olarak işlev belirtiyor"
+msgstr "tür dönüşümü işlev belirtiyor"
-#: c-typeck.c:3657
+#: c-typeck.c:3651
msgid "ISO C forbids casting nonscalar to the same type"
-msgstr "ISO C skalar olmayandan aynı türe çevirime izin vermez"
+msgstr "ISO C skalar olmayandan aynı türe dönüşüme izin vermez"
-#: c-typeck.c:3676
+#: c-typeck.c:3670
msgid "ISO C forbids casts to union type"
-msgstr "ISO C union türe çevirime izin vermez"
+msgstr "ISO C union türe dönüşüme izin vermez"
-#: c-typeck.c:3692
+#: c-typeck.c:3685
msgid "cast to union type from type not present in union"
-msgstr "union içinde mevcut olmayan türden union türe çevirim"
+msgstr "union içinde mevcut olmayan türden union türe dönüşüm"
-#: c-typeck.c:3743
+#: c-typeck.c:3736
msgid "cast adds new qualifiers to function type"
-msgstr "çevirim, işlev türüne yeni niteleyiciler ekliyor"
+msgstr "tür dönüşümü, işlev türüne yeni niteleyiciler ekliyor"
#. There are qualifiers present in IN_OTYPE that are not
#. present in IN_TYPE.
-#: c-typeck.c:3748
+#: c-typeck.c:3741
msgid "cast discards qualifiers from pointer target type"
-msgstr "çevirim, gösterge hedef türünden niteleyicileri iptal ediyor"
+msgstr "tür dönüşümü, gösterici hedef türünden niteleyicileri iptal ediyor"
-#: c-typeck.c:3763
+#: c-typeck.c:3756
msgid "cast increases required alignment of target type"
-msgstr "çevirim hedef türün gerekli hizalamasını azaltıyor"
+msgstr "tür dönüşümü hedef türün gerekli hizalamasını azaltıyor"
-#: c-typeck.c:3769 cp/typeck.c:5337
+#: c-typeck.c:3762 cp/typeck.c:5144
msgid "cast from pointer to integer of different size"
-msgstr "göstergeden farklı tamsayı türlere çevirim"
+msgstr "göstericiden farklı tamsayı türlere dönüşüm"
-#: c-typeck.c:3774
+#: c-typeck.c:3767
msgid "cast does not match function type"
-msgstr "çevirim işlev türle uyumsuz"
+msgstr "tür dönüşümü işlev türüyle uyumsuz"
-#: c-typeck.c:3781 cp/typeck.c:5344
+#: c-typeck.c:3774 cp/typeck.c:5151
msgid "cast to pointer from integer of different size"
-msgstr "farklı türdeki tamsayıdan göstergeye çevirim"
+msgstr "farklı boyuttaki tamsayı türden göstericye dönüşüm"
+
+#: c-typeck.c:3786
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr "içi boş türle tür tanımı yapmak adlandırma kurallarının katılığı ile bağdaşmaz"
+
+#: c-typeck.c:3790
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr "türü tanımlanmış göstericinin ilişkilendirilmesi adlandırmanın değişmezliği kurallarını bozacak"
#. Now we have handled acceptable kinds of LHS that are not truly lvalues.
#. Reject anything strange now.
-#: c-typeck.c:3939
+#: c-typeck.c:3949
msgid "invalid lvalue in assignment"
msgstr "atama içinde sol taraf geçersiz"
#. Convert new value to destination type.
-#: c-typeck.c:3948 c-typeck.c:3973 c-typeck.c:3990 cp/typeck.c:5454 cp/typeck.c:5605
+#: c-typeck.c:3958 c-typeck.c:3983 c-typeck.c:4000 cp/typeck.c:5266
+#: cp/typeck.c:5416
msgid "assignment"
msgstr "atama"
-#: c-typeck.c:4157 c-typeck.c:4224
+#: c-typeck.c:4070
+msgid "cannot pass rvalue to reference parameter"
+msgstr "sağdeğer, başvuru parametresine aktarılamaz"
+
+#: c-typeck.c:4174 c-typeck.c:4241
#, c-format
msgid "%s makes qualified function pointer from unqualified"
-msgstr "%s nitelemeyenden niteleyen işlev göstergesi yapıyor"
+msgstr "%s nitelemeyenden niteleyen işlev göstericisi yapıyor"
-#: c-typeck.c:4161 c-typeck.c:4204
+#: c-typeck.c:4178 c-typeck.c:4221
#, c-format
msgid "%s discards qualifiers from pointer target type"
-msgstr "%s gösterge hedef türündeki niteleyicileri iptal ediyor"
+msgstr "%s gösterici hedef türündeki niteleyicileri iptal ediyor"
-#: c-typeck.c:4167
+#: c-typeck.c:4184
msgid "ISO C prohibits argument conversion to union type"
msgstr "ISO C union türe argüman dönüşümünü yasaklar"
-#: c-typeck.c:4196
+#: c-typeck.c:4213
#, c-format
msgid "ISO C forbids %s between function pointer and `void *'"
-msgstr "ISO C de işlev göstergesi ile `void *' arasındaki %s için izin verilmez"
+msgstr "ISO C de işlev göstericisi ile `void *' arasında %s yasaktır"
-#: c-typeck.c:4213
+#: c-typeck.c:4230
#, c-format
msgid "pointer targets in %s differ in signedness"
-msgstr "%s gösterge hedefleri farklı signed'lıkta"
+msgstr "gösterici hedefleri %s içinde farklı signed'lıkta"
-#: c-typeck.c:4229
+#: c-typeck.c:4246
#, c-format
msgid "%s from incompatible pointer type"
-msgstr "uyumsuz gösterge türünden %s"
+msgstr "%s uyumsuz gösterici türünde"
+
+#: c-typeck.c:4252 c-typeck.c:4804 cp/typeck.c:1653
+msgid "invalid use of non-lvalue array"
+msgstr "soldeğersiz dizi kullanımı geçersiz"
-#: c-typeck.c:4245
+#: c-typeck.c:4267
#, c-format
msgid "%s makes pointer from integer without a cast"
-msgstr "%s bir çevirim olmaksızın tamsayıdan gösterge yapıyor"
+msgstr "%s sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
-#: c-typeck.c:4253
+#: c-typeck.c:4275
#, c-format
msgid "%s makes integer from pointer without a cast"
-msgstr "%s bir çevirim olmaksızın göstergeden tamsayı yapıyor"
+msgstr "%s bir tür dönüşümü olmaksızın göstericiden tamsayı yapılıyor"
-#: c-typeck.c:4267 c-typeck.c:4270
+#: c-typeck.c:4289 c-typeck.c:4292
#, c-format
msgid "incompatible type for argument %d of `%s'"
msgstr "`%2$s'nın %1$d. argümanı için tür uyumsuz"
-#: c-typeck.c:4274
+#: c-typeck.c:4296
#, c-format
msgid "incompatible type for argument %d of indirect function call"
msgstr "dolaylı işlev çağrısının %d. argümanı için tür uyumsuz"
-#: c-typeck.c:4278
+#: c-typeck.c:4300
#, c-format
msgid "incompatible types in %s"
msgstr "%s içinde uyumsuz türler"
#. Function name is known; supply it.
-#: c-typeck.c:4333
+#: c-typeck.c:4358
+#, c-format
+msgid "passing arg of `%s'"
+msgstr "`%s' işlevinin argümanının aktarılması"
+
+#. Function name unknown (call through ptr).
+#: c-typeck.c:4368
+msgid "passing arg of pointer to function"
+msgstr "işlev göstericisi olan argümanın aktarılması"
+
+#. Function name is known; supply it.
+#: c-typeck.c:4376
#, c-format
msgid "passing arg %d of `%s'"
-msgstr "`%2$s' işlevinin %1$d. argümanı aktarılıyor"
+msgstr "`%2$s' işlevinin %1$d. argümanının aktarılması"
#. Function name unknown (call through ptr); just give arg number.
-#: c-typeck.c:4343
+#: c-typeck.c:4386
#, c-format
msgid "passing arg %d of pointer to function"
-msgstr "işlev göstergesinin %d. argümanı aktarılıyor"
+msgstr "işlev göstericisi olarak %d. argümanın aktarılması"
-#: c-typeck.c:4410
+#: c-typeck.c:4452
msgid "initializer for static variable is not constant"
-msgstr "static değişken için ilklendirici bir sabit değil"
+msgstr "durağan değişken için ilklendirici bir sabit değil"
-#: c-typeck.c:4416
+#: c-typeck.c:4458
msgid "initializer for static variable uses complicated arithmetic"
-msgstr "static değişken için ilklendirici karmaşık aritmetik kullanıyor"
+msgstr "durağan değişken için ilklendirici karmaşık aritmetik kullanıyor"
-#: c-typeck.c:4424
+#: c-typeck.c:4466
msgid "aggregate initializer is not constant"
msgstr "küme ilklendiricisi bir sabit değil"
-#: c-typeck.c:4426
+#: c-typeck.c:4468
msgid "aggregate initializer uses complicated arithmetic"
msgstr "küme ilklendiricisi karmaşık aritmetik kullanıyor"
-#: c-typeck.c:4433
+#: c-typeck.c:4475
msgid "traditional C rejects automatic aggregate initialization"
-msgstr "geleneksel C otomatik küme ilklendirmesini reddediyor"
+msgstr "geleneksel C otomatik küme ilklendirmesini reddeder"
-#: c-typeck.c:4621 c-typeck.c:4637 c-typeck.c:4653
+#: c-typeck.c:4654 c-typeck.c:4670 c-typeck.c:4686
#, c-format
msgid "(near initialization for `%s')"
msgstr "(%s için near ilklendirme)"
-#: c-typeck.c:4705 cp/typeck2.c:513
+#: c-typeck.c:4737 cp/typeck2.c:488
msgid "char-array initialized from wide string"
msgstr "karakter dizisinin ilklendiricisi olarak geniş dizge kullanılmış"
-#: c-typeck.c:4712 cp/typeck2.c:520
+#: c-typeck.c:4744 cp/typeck2.c:495
msgid "int-array initialized from non-wide string"
msgstr "tamsayı dizisinin ilklendiricisi olarak geniş-olmayan dizge kullanılmış"
-#: c-typeck.c:4730 cp/typeck2.c:536
+#: c-typeck.c:4762 cp/typeck2.c:511
msgid "initializer-string for array of chars is too long"
msgstr "karakter dizisi için dizge-ilklendirici çok uzun"
-#: c-typeck.c:4768
+#: c-typeck.c:4822
msgid "array initialized from non-constant array expression"
msgstr "dizinin ilklendiricisi olarak sabit olmayan dizi ifadesi kullanılmış"
-#: c-typeck.c:4785 c-typeck.c:4787 c-typeck.c:4803 c-typeck.c:4824 c-typeck.c:6262
+#: c-typeck.c:4839 c-typeck.c:4841 c-typeck.c:4857 c-typeck.c:4878
+#: c-typeck.c:6281
msgid "initializer element is not constant"
msgstr "ilklendirici öğe bir sabit değil"
-#: c-typeck.c:4819
+#: c-typeck.c:4873
msgid "initialization"
msgstr "ilklendirme"
-#: c-typeck.c:4830 c-typeck.c:6267
+#: c-typeck.c:4884 c-typeck.c:6286
msgid "initializer element is not computable at load time"
msgstr "başlangıç öğesi yükleme sırasında hesaplanabilir değil"
-#: c-typeck.c:4867 c-typeck.c:4883 cp/typeck2.c:613
+#: c-typeck.c:4899 cp/typeck2.c:588
msgid "invalid initializer"
msgstr "geçersiz ilklendirici"
-#: c-typeck.c:5376
+#: c-typeck.c:5393
msgid "extra brace group at end of initializer"
msgstr "ilklendiricinin sonunda fazladan parantezli grup"
-#: c-typeck.c:5396
+#: c-typeck.c:5413
msgid "missing braces around initializer"
msgstr "ilklendiriciyi çevreleyen parantezler yok"
-#: c-typeck.c:5456
+#: c-typeck.c:5473
msgid "braces around scalar initializer"
msgstr "skalar ilklendiriciyi kuÅŸatan parantezler"
-#: c-typeck.c:5504
+#: c-typeck.c:5521
msgid "initialization of flexible array member in a nested context"
msgstr "içiçe bağlam içinde esnek dizi üyesi ilklendirmesi"
-#: c-typeck.c:5506
+#: c-typeck.c:5523
msgid "initialization of a flexible array member"
msgstr "esnek dizi üyesi ilklendirmesi"
-#: c-typeck.c:5537
+#: c-typeck.c:5554
msgid "missing initializer"
msgstr "ilklendirici yok"
-#: c-typeck.c:5563
+#: c-typeck.c:5580
msgid "empty scalar initializer"
msgstr "skalar ilklendirici boÅŸ"
-#: c-typeck.c:5568
+#: c-typeck.c:5585
msgid "extra elements in scalar initializer"
msgstr "skalar ilklendiricide fazladan öğeler"
-#: c-typeck.c:5654
+#: c-typeck.c:5671
msgid "initialization designators may not nest"
msgstr "ilklendirme tasarlayıcılar yuvalanamayabilir"
-#: c-typeck.c:5675 c-typeck.c:5746
+#: c-typeck.c:5692 c-typeck.c:5763
msgid "array index in non-array initializer"
msgstr "dizi-olmayan ilklendiricide dizi indisi"
-#: c-typeck.c:5680 c-typeck.c:5798
+#: c-typeck.c:5697 c-typeck.c:5817
msgid "field name not in record or union initializer"
msgstr "alan ismi kayıt ya da union ilklendiricisinde kullanılmamış"
-#: c-typeck.c:5742 c-typeck.c:5744
+#: c-typeck.c:5759 c-typeck.c:5761
msgid "nonconstant array index in initializer"
msgstr "ilklendiricide sabit-olmayan dizi indeksi"
-#: c-typeck.c:5749
+#: c-typeck.c:5765 c-typeck.c:5768
msgid "array index in initializer exceeds array bounds"
msgstr "ilklendiricideki dizi indeksi dizi sınırlarının dışında"
-#: c-typeck.c:5760
+#: c-typeck.c:5779
msgid "empty index range in initializer"
msgstr "ilklendiricide indeks aralığı boş"
-#: c-typeck.c:5769
+#: c-typeck.c:5788
msgid "array index range in initializer exceeds array bounds"
msgstr "ilklendiricideki dizi indeksi aralığı dizi sınırlarını aşıyor"
-#: c-typeck.c:5810
+#: c-typeck.c:5829
#, c-format
msgid "unknown field `%s' specified in initializer"
msgstr "ilklendiricide bilinmeyen `%s' alanı belirtilmiş"
-#: c-typeck.c:5847 c-typeck.c:5868 c-typeck.c:6330
+#: c-typeck.c:5866 c-typeck.c:5887 c-typeck.c:6348
msgid "initialized field with side-effects overwritten"
msgstr "yan-etkili ilklendirilmiş alanın üzerine yazıldı"
-#: c-typeck.c:6540
+#: c-typeck.c:6558
msgid "excess elements in char array initializer"
msgstr "karakter dizisi ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6547 c-typeck.c:6593
+#: c-typeck.c:6565 c-typeck.c:6611
msgid "excess elements in struct initializer"
msgstr "struct ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6608
+#: c-typeck.c:6626
msgid "non-static initialization of a flexible array member"
msgstr "esnek dizi üyesinin satatik olmayan ilklendirmesi"
-#: c-typeck.c:6670
+#: c-typeck.c:6693
msgid "excess elements in union initializer"
msgstr "union ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6691
+#: c-typeck.c:6714
msgid "traditional C rejects initialization of unions"
msgstr "geleneksel C union ilklendirmesini reddeder"
-#: c-typeck.c:6754
+#: c-typeck.c:6777
msgid "excess elements in array initializer"
msgstr "dizi ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6783
+#: c-typeck.c:6806
msgid "excess elements in vector initializer"
msgstr "vektör ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6805
+#: c-typeck.c:6828
msgid "excess elements in scalar initializer"
msgstr "skalar ilklendiricide gereğinden fazla öğe"
-#: c-typeck.c:6916
+#: c-typeck.c:6935
msgid "asm template is not a string constant"
msgstr "asm ÅŸablon bir dizge sabit deÄŸil"
-#: c-typeck.c:6948
+#: c-typeck.c:6967
msgid "invalid lvalue in asm statement"
msgstr "asm deyiminde geçersiz sol taraf"
-#: c-typeck.c:7019
+#: c-typeck.c:7042
msgid "modification by `asm'"
msgstr "`asm' tarafından değişiklik"
-#: c-typeck.c:7038 cp/typeck.c:6453
+#: c-typeck.c:7061 cp/typeck.c:6237
msgid "function declared `noreturn' has a `return' statement"
msgstr "`noreturn' olarak bildirilmiş işlev `return' deyimi içeriyor"
-#: c-typeck.c:7045
+#: c-typeck.c:7068
msgid "`return' with no value, in function returning non-void"
-msgstr "void olmayan dönüşlü işlevde `return' deyiminde değer yok"
+msgstr "geridönüş değeri void olmayan işlevde `return' değer içermiyor"
-#: c-typeck.c:7051
+#: c-typeck.c:7074
msgid "`return' with a value, in function returning void"
msgstr "void dönüşlü işlevde `return' deyimi değer içeriyor"
-#: c-typeck.c:7055
+#: c-typeck.c:7078
msgid "return"
-msgstr "dönen"
+msgstr "dönüş değeri"
-#: c-typeck.c:7107
+#: c-typeck.c:7130
msgid "function returns address of local variable"
msgstr "işlev yerel değişkenin adresi ile dönüyor"
-#: c-typeck.c:7163 cp/semantics.c:529
+#: c-typeck.c:7186 cp/semantics.c:555
msgid "switch quantity not an integer"
msgstr "switch büyüklüğü bir tamsayı değil"
-#: c-typeck.c:7173
+#: c-typeck.c:7196
msgid "`long' switch expression not converted to `int' in ISO C"
msgstr "ISO C'de `long' switch ifadesi `int'e dönüştürülmez"
-#: c-typeck.c:7208 cp/decl.c:5232
+#: c-typeck.c:7231 cp/decl.c:5523
msgid "case label not within a switch statement"
msgstr "case etiketi bir switch deyimi içinde değil"
-#: c-typeck.c:7210 cp/decl.c:5237
+#: c-typeck.c:7233 cp/decl.c:5528
msgid "`default' label not within a switch statement"
msgstr "`default' etiketi bir switch deyimi içinde değil"
-#: calls.c:1902
+#: calls.c:1934 tree-inline.c:1177
#, c-format
msgid "inlining failed in call to `%s'"
msgstr "`%s' çağrısında özümleme başarısız"
-#: calls.c:1903 calls.c:2209
+#: calls.c:1935 calls.c:2271 tree-inline.c:1178
msgid "called from here"
msgstr " buradan çağrıldı"
-#: calls.c:2208
+#: calls.c:2270
#, c-format
msgid "can't inline call to `%s'"
msgstr "`%s' çağrısı `inline' olamaz"
-#: calls.c:2238
+#: calls.c:2300
msgid "function call has aggregate value"
msgstr "işlev çağrısı küme değeri içeriyor"
-#: calls.c:4545
-msgid "variable offset is passed partially in stack and in reg"
-msgstr "değişkenin göreli konumu kısmen yığında kısmende yazmaçta aktarılmış"
+#: cfgloop.c:1107
+#, c-format
+msgid "Size of loop %d should be %d, not %d."
+msgstr "%d. döngünün boyutu %d olmalı, %d değil."
-#: calls.c:4547
-msgid "variable size is passed partially in stack and in reg"
-msgstr "değişken boyutu hem yığın hem de yazmaç içine aktarılmış"
+#: cfgloop.c:1126
+#, c-format
+msgid "Bb %d do not belong to loop %d."
+msgstr "Bb %d %d. döngünün üyesi değil."
-#: cfgrtl.c:1624
+#: cfgloop.c:1144
+#, c-format
+msgid "Loop %d's header does not have exactly 2 entries."
+msgstr "%d. döngünün başlığının 2 girdisi olmalı."
+
+#: cfgloop.c:1152
+#, c-format
+msgid "Loop %d's latch does not have exactly 1 successor."
+msgstr "%d. döngünün saklayıcısının 1 ardılı olmalı."
+
+#: cfgloop.c:1157
+#, c-format
+msgid "Loop %d's latch does not have header as successor."
+msgstr "%d. döngünün saklayıcısının ardıl olarak başlığı yok."
+
+#: cfgloop.c:1162
+#, c-format
+msgid "Loop %d's latch does not belong directly to it."
+msgstr "%d. döngünün saklayıcısı doğrudan kendisinin üyesi değil."
+
+#: cfgloop.c:1168
+#, c-format
+msgid "Loop %d's header does not belong directly to it."
+msgstr "%d. döngünün başlığı doğrudan kendisinin üyesi değil."
+
+#: cfgrtl.c:1774
+#, c-format
+msgid "bb %d on wrong place"
+msgstr "bb %d yanlış yerde"
+
+#: cfgrtl.c:1780
+#, c-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr "%d'nin prev_bb'si %d olmalıydı, %d değil"
+
+#: cfgrtl.c:1800
#, c-format
msgid "end insn %d for block %d not found in the insn stream"
msgstr "%2$d. bloğunun son komutu %1$d komut akışı içinde yok."
-#: cfgrtl.c:1638
+#: cfgrtl.c:1814
#, c-format
msgid "insn %d is in multiple basic blocks (%d and %d)"
msgstr "komut %d birden fazla temel bloğun içinde (%d ve %d)"
-#: cfgrtl.c:1650
+#: cfgrtl.c:1826
#, c-format
msgid "head insn %d for block %d not found in the insn stream"
msgstr "%2$d. bloğun ilk komutu %1$d komut akışı içinde yok."
-#: cfgrtl.c:1669
+#: cfgrtl.c:1848
+#, c-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr "verify_flow_info: REG_BR_PROB ile cfg %i %i eÅŸleÅŸmiyor"
+
+#: cfgrtl.c:1855
+#, c-format
+msgid "verify_flow_info: Wrong count of block %i %i"
+msgstr "verify_flow_info: blok %i %i sayısı yanlış"
+
+#: cfgrtl.c:1861
+#, c-format
+msgid "verify_flow_info: Wrong frequency of block %i %i"
+msgstr "verify_flow_info: block %i %i sıklığı yanlış"
+
+#: cfgrtl.c:1869
#, c-format
msgid "verify_flow_info: Duplicate edge %i->%i"
msgstr "verify_flow_info: yinelenmiÅŸ kenar %i->%i"
-#: cfgrtl.c:1688
+#: cfgrtl.c:1875
+#, c-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+msgstr "verify_flow_info: yinelenmiş kenar %i->%i %i olasılığı yanlış"
+
+#: cfgrtl.c:1881
+#, c-format
+msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+msgstr "verify_flow_info: kenar %i->%i %i sayısı yanlış"
+
+#: cfgrtl.c:1911
#, c-format
msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
msgstr "verify_flow_info: ardcıl %i->%i için blok sayısı yanlış"
-#: cfgrtl.c:1703
+#: cfgrtl.c:1926
#, c-format
msgid "verify_flow_info: Incorrect fallthru %i->%i"
msgstr "verify_flow_info: ardcıl %i->%i yanlış"
-#: cfgrtl.c:1705
+#: cfgrtl.c:1928
msgid "wrong insn in the fallthru edge"
msgstr "ardcıl kenarda yanlış komut"
-#: cfgrtl.c:1712
+#: cfgrtl.c:1935
#, c-format
msgid "verify_flow_info: Basic block %d succ edge is corrupted"
msgstr "verify_flow_info: %d. temel bloğun ardıl kenarı bozuk"
-#: cfgrtl.c:1736
+#: cfgrtl.c:1951
+#, c-format
+msgid "Missing REG_EH_REGION note in the end of bb %i"
+msgstr "bb %i'nin sonunda REG_EH_REGION bilgisi eksik"
+
+#: cfgrtl.c:1959
+#, c-format
+msgid "Too many outgoing branch edges from bb %i"
+msgstr "bb %i'den çıkan dal kenarı çok fazla"
+
+#: cfgrtl.c:1964
+#, c-format
+msgid "Fallthru edge after unconditional jump %i"
+msgstr "koşulsuz jump %i den sonra ardcıl kenar"
+
+#: cfgrtl.c:1969
+#, c-format
+msgid "Wrong amount of branch edges after unconditional jump %i"
+msgstr "Koşulsuz jump %i den sonraki dal kenarlarının miktarı yanlış"
+
+#: cfgrtl.c:1975
+#, c-format
+msgid "Wrong amount of branch edges after conditional jump %i"
+msgstr "koşullu jump %i den sonraki dal kenarlarını miktarı yanlış"
+
+#: cfgrtl.c:1980
+#, c-format
+msgid "Call edges for non-call insn in bb %i"
+msgstr "bb %i içindeki çağrı olmayan komut için çağrı kenarları"
+
+#: cfgrtl.c:1989
+#, c-format
+msgid "Abnormal edges for no purpose in bb %i"
+msgstr "bb %i içinde normaldışı amaçsız kenar sayısı "
+
+#: cfgrtl.c:2004
#, c-format
msgid "missing barrier after block %i"
msgstr "%i. bloktan sonraki sınır eksik"
-#: cfgrtl.c:1746
+#: cfgrtl.c:2014
#, c-format
msgid "basic block %d pred edge is corrupted"
msgstr "%d. temel bloğun öncel kenarı bozuk"
-#: cfgrtl.c:1763
+#: cfgrtl.c:2031
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is NULL"
msgstr "komut %d %d. temel bloğun içinde ama block_for_insn NULL"
-#: cfgrtl.c:1767
+#: cfgrtl.c:2035
#, c-format
msgid "insn %d inside basic block %d but block_for_insn is %i"
msgstr "komut %d %d. temel bloğun içinde ama block_for_insn %i"
-#: cfgrtl.c:1781 cfgrtl.c:1791
+#: cfgrtl.c:2049 cfgrtl.c:2059
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
msgstr "NOTE_INSN_BASIC_BLOCK %d. blok için eksik"
-#: cfgrtl.c:1804
+#: cfgrtl.c:2072
#, c-format
msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
msgstr "%d. NOTE_INSN_BASIC_BLOCK %d. temel bloğun ortasında"
-#: cfgrtl.c:1816
+#: cfgrtl.c:2084
#, c-format
msgid "in basic block %d:"
msgstr "%d. temel blok içinde:"
-#: cfgrtl.c:1817
+#: cfgrtl.c:2085
msgid "flow control insn inside a basic block"
msgstr "akış kontrol komutu bir temel bloğun içinde"
-#: cfgrtl.c:1836
+#: cfgrtl.c:2104
#, c-format
msgid "basic block %i edge lists are corrupted"
msgstr "temel blok %i kenar listesi bozuk"
-#: cfgrtl.c:1850
+#: cfgrtl.c:2119
msgid "basic blocks not numbered consecutively"
msgstr "temel bloklar ardışık olarak numaralı değil"
-#: cfgrtl.c:1875
+#: cfgrtl.c:2144
msgid "insn outside basic block"
msgstr "komut temel bloğun dışında"
-#: cfgrtl.c:1883
+#: cfgrtl.c:2152
msgid "return not followed by barrier"
msgstr "return'den sonra sınır gelmiyor"
-#: cfgrtl.c:1888
+#: cfgrtl.c:2157
#, c-format
msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
msgstr "komut zinciri (%d) içindeki bb notlarının sayısı != n_basic_blocks (%d)"
-#: cfgrtl.c:1892
+#: cfgrtl.c:2161
msgid "verify_flow_info failed"
msgstr "verify_flow_info başarısız"
-#: collect2.c:439
+#: collect2.c:425
msgid "internal error"
msgstr "iç hata"
-#: collect2.c:940
+#: collect2.c:934
msgid "no arguments"
msgstr "argüman yok"
-#: collect2.c:1269 collect2.c:1417 collect2.c:1450
+#: collect2.c:1263 collect2.c:1411 collect2.c:1444
#, c-format
msgid "fopen %s"
msgstr "fopen %s"
-#: collect2.c:1272 collect2.c:1422 collect2.c:1453
+#: collect2.c:1266 collect2.c:1416 collect2.c:1447
#, c-format
msgid "fclose %s"
msgstr "fclose %s"
-#: collect2.c:1281
+#: collect2.c:1275
#, c-format
msgid "collect2 version %s"
msgstr "collect2 %s sürümü"
-#: collect2.c:1371
+#: collect2.c:1365
#, c-format
msgid "%d constructor(s) found\n"
msgstr "%d kurucu bulundu\n"
-#: collect2.c:1372
+#: collect2.c:1366
#, c-format
msgid "%d destructor(s) found\n"
msgstr "%d serbestleÅŸtirici bulundu\n"
-#: collect2.c:1373
+#: collect2.c:1367
#, c-format
msgid "%d frame table(s) found\n"
msgstr "%d çerçeve tablosu bulundu\n"
-#: collect2.c:1514
+#: collect2.c:1508
#, c-format
msgid "%s terminated with signal %d [%s]%s"
msgstr "%s %d sinyali ile sonlandırıldı [%s]%s"
-#: collect2.c:1533
+#: collect2.c:1527
#, c-format
msgid "%s returned %d exit status"
msgstr "%s %d çıkış durumu ile sonuçlandı"
-#: collect2.c:1561
+#: collect2.c:1555
#, c-format
msgid "[cannot find %s]"
msgstr "[%s bulunamıyor]"
-#: collect2.c:1576
+#: collect2.c:1570
#, c-format
msgid "cannot find `%s'"
msgstr "`%s' bulunamıyor"
-#: collect2.c:1587 collect2.c:1590
+#: collect2.c:1581 collect2.c:1584
#, c-format
msgid "redirecting stdout: %s"
msgstr "standart çıktıya yönlendirme: %s"
-#: collect2.c:1633
+#: collect2.c:1627
#, c-format
msgid "[Leaving %s]\n"
msgstr "[%s bırakılıyor]\n"
-#: collect2.c:1876
+#: collect2.c:1870
#, c-format
msgid ""
"\n"
@@ -3491,90 +3798,86 @@ msgstr ""
"\n"
"write_c_file - çıktı ismi %s, önek %s\n"
-#: collect2.c:2089
+#: collect2.c:2082
msgid "cannot find `nm'"
msgstr "`nm' bulunamıyor"
-#: collect2.c:2099 collect2.c:2541
+#: collect2.c:2092 collect2.c:2533
msgid "pipe"
msgstr "veri yolu"
-#: collect2.c:2103 collect2.c:2545
+#: collect2.c:2096 collect2.c:2537
msgid "fdopen"
msgstr "fdopen"
-#: collect2.c:2129 collect2.c:2571
+#: collect2.c:2122 collect2.c:2563
#, c-format
msgid "dup2 %d 1"
msgstr "dup2 %d 1"
-#: collect2.c:2132 collect2.c:2135 collect2.c:2148 collect2.c:2574 collect2.c:2577 collect2.c:2590
+#: collect2.c:2125 collect2.c:2128 collect2.c:2141 collect2.c:2566
+#: collect2.c:2569 collect2.c:2582
#, c-format
msgid "close %d"
msgstr "close %d"
-#: collect2.c:2138
+#: collect2.c:2131 collect2.c:2572
#, c-format
-msgid "execvp %s"
-msgstr "execvp %s"
+msgid "execv %s"
+msgstr "execv %s"
-#: collect2.c:2192
+#: collect2.c:2185
#, c-format
msgid "init function found in object %s"
msgstr "init iÅŸlevi %s nesnesinde bulundu"
-#: collect2.c:2200
+#: collect2.c:2193
#, c-format
msgid "fini function found in object %s"
msgstr "fini iÅŸlevi %s nesnesinde bulundu"
-#: collect2.c:2223 collect2.c:2629
+#: collect2.c:2216 collect2.c:2621
msgid "fclose"
msgstr "fclose"
-#: collect2.c:2268
+#: collect2.c:2261
#, c-format
msgid "unable to open file '%s'"
msgstr "'%s' dosyası açılamıyor"
-#: collect2.c:2270
+#: collect2.c:2263
#, c-format
msgid "unable to stat file '%s'"
msgstr "'%s' dosyası durumlanamıyor"
-#: collect2.c:2276
+#: collect2.c:2269
#, c-format
msgid "unable to mmap file '%s'"
msgstr "'%s' dosyası mmap'lenemiyor"
-#: collect2.c:2429
+#: collect2.c:2422
msgid "not found\n"
msgstr "yok\n"
-#: collect2.c:2431 collect2.c:2608
+#: collect2.c:2424 collect2.c:2600
#, c-format
msgid "dynamic dependency %s not found"
msgstr "%s dinamik bağımlılığı yok"
-#: collect2.c:2451
+#: collect2.c:2444
#, c-format
msgid "bad magic number in file '%s'"
msgstr "'%s' dosyasında sihirli sayı hatalı"
-#: collect2.c:2473
+#: collect2.c:2466
msgid "dynamic dependencies.\n"
msgstr "dinamik bağımlılıklar.\n"
-#: collect2.c:2532
+#: collect2.c:2524
msgid "cannot find `ldd'"
msgstr "`ldd' bulunamıyor"
-#: collect2.c:2580
-#, c-format
-msgid "execv %s"
-msgstr "execv %s"
-
-#: collect2.c:2593
+#: collect2.c:2585
msgid ""
"\n"
"ldd output with constructors/destructors.\n"
@@ -3582,36 +3885,36 @@ msgstr ""
"\n"
"kuruculu/yıkıcılı ldd çıktısı.\n"
-#: collect2.c:2620
+#: collect2.c:2612
#, c-format
msgid "unable to open dynamic dependency '%s'"
msgstr "'%s' dinamik bağımlılığı açılamıyor"
-#: collect2.c:2734
+#: collect2.c:2726
#, c-format
msgid "%s: not a COFF file"
msgstr "%s: bir COFF dosyası değil"
-#: collect2.c:2853
+#: collect2.c:2845
#, c-format
msgid "%s: cannot open as COFF file"
msgstr "%s: bir COFF dosyası olarak açılamıyor"
-#: collect2.c:2909
+#: collect2.c:2901
#, c-format
msgid "library lib%s not found"
msgstr "lib%s kitaplığı bulunamadı"
-#: collect2.c:3038
+#: collect2.c:3028
#, c-format
msgid "open %s"
msgstr "open %s"
-#: collect2.c:3061
+#: collect2.c:3051
msgid "incompatibilities between object file & expected values"
msgstr "nesne dosyası ile umulan değerler arasında uyumsuzluklar var"
-#: collect2.c:3134
+#: collect2.c:3124
#, c-format
msgid ""
"\n"
@@ -3620,23 +3923,23 @@ msgstr ""
"\n"
"İşlenen sembol tablosu #%d, göreli konumu = 0x%.8lx, cinsi = %s\n"
-#: collect2.c:3143
+#: collect2.c:3133
msgid "string section missing"
msgstr "dizge bölümü yok"
-#: collect2.c:3146
+#: collect2.c:3136
msgid "section pointer missing"
-msgstr "bölüm göstergesi yok"
+msgstr "bölüm göstericisi yok"
-#: collect2.c:3194
+#: collect2.c:3184
msgid "no symbol table found"
msgstr "hiç sembol tablosu yok"
-#: collect2.c:3207
+#: collect2.c:3197
msgid "no cmd_strings found"
msgstr "hiç komut-dizgesi yok"
-#: collect2.c:3219
+#: collect2.c:3209
msgid ""
"\n"
"Updating header and load commands.\n"
@@ -3646,12 +3949,12 @@ msgstr ""
"Başlık ve yük komutları güncelleniyor.\n"
"\n"
-#: collect2.c:3226
+#: collect2.c:3216
#, c-format
msgid "load command map, %d cmds, new size %ld.\n"
msgstr "yükleme komutu eşlemi, %d komut, yeni boyut %ld.\n"
-#: collect2.c:3257
+#: collect2.c:3247
msgid ""
"writing load commands.\n"
"\n"
@@ -3659,90 +3962,90 @@ msgstr ""
"yük komutları yazılıyor.\n"
"\n"
-#: collect2.c:3277
+#: collect2.c:3267
#, c-format
msgid "close %s"
msgstr "close %s"
-#: collect2.c:3351
+#: collect2.c:3341
msgid "could not convert 0x%l.8x into a region"
msgstr "0x%l.8x bir bölge içine dönüştürülemedi"
-#: collect2.c:3355
+#: collect2.c:3345
#, c-format
msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
msgstr "%s işlev, %d bölge, offset = %ld (0x%.8lx)\n"
-#: collect2.c:3482
+#: collect2.c:3472
msgid "bad magic number"
msgstr "sihirli sayı hatalı"
-#: collect2.c:3483
+#: collect2.c:3473
msgid "bad header version"
msgstr "başlık sürümü hatalı"
-#: collect2.c:3484
+#: collect2.c:3474
msgid "bad raw header version"
msgstr "temel başlık sürümü hatalı"
-#: collect2.c:3485
+#: collect2.c:3475
msgid "raw header buffer too small"
msgstr "temel başlık tamponu çok küçük"
-#: collect2.c:3486
+#: collect2.c:3476
msgid "old raw header file"
msgstr "eski temel başlık dosyası"
-#: collect2.c:3487
+#: collect2.c:3477
msgid "unsupported version"
msgstr "desteklenmeyen sürüm"
-#: collect2.c:3489
+#: collect2.c:3479
#, c-format
msgid "unknown {de,en}code_mach_o_hdr return value %d"
msgstr "bilinmeyen {de,en}code_mach_o_hdr sonuç değeri %d"
-#: collect2.c:3509
+#: collect2.c:3499
#, c-format
msgid "fstat %s"
msgstr "fstat %s"
-#: collect2.c:3546 collect2.c:3594
+#: collect2.c:3536 collect2.c:3584
#, c-format
msgid "lseek %s 0"
msgstr "lseek %s 0"
-#: collect2.c:3550
+#: collect2.c:3540
#, c-format
msgid "read %s"
msgstr "read %s"
-#: collect2.c:3553
+#: collect2.c:3543
#, c-format
msgid "read %ld bytes, expected %ld, from %s"
msgstr "%3$s'den %2$ld bayt okunması umulurken %1$ld bayt okundu"
-#: collect2.c:3574
+#: collect2.c:3564
#, c-format
msgid "msync %s"
msgstr "msync %s"
-#: collect2.c:3581
+#: collect2.c:3571
#, c-format
msgid "munmap %s"
msgstr "munmap %s"
-#: collect2.c:3598
+#: collect2.c:3588
#, c-format
msgid "write %s"
msgstr "write %s"
-#: collect2.c:3601
+#: collect2.c:3591
#, c-format
msgid "wrote %ld bytes, expected %ld, to %s"
msgstr "%3$s'e %2$ld bayt yazılması umulurken %1$ld bayt yazıldı"
-#: combine.c:12769
+#: combine.c:13222
#, c-format
msgid ""
";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
@@ -3753,7 +4056,7 @@ msgstr ""
";; %d başarı.\n"
"\n"
-#: combine.c:12779
+#: combine.c:13232
#, c-format
msgid ""
"\n"
@@ -3764,1099 +4067,908 @@ msgstr ""
";; Birleştirici toplamları: %d deneme, %d ikame (%d yeni alan gerekir),\n"
";; %d başarılı.\n"
-#: convert.c:67
+#: convert.c:69
msgid "cannot convert to a pointer type"
-msgstr "bir gösterge türüne dönüştürülemez"
+msgstr "bir gösterici türüne dönüştürülemez"
-#: convert.c:100
+#: convert.c:102
msgid "pointer value used where a floating point value was expected"
-msgstr "bir gerçel sayı değer umulurken gösterge değer kullanılmış"
+msgstr "bir gerçel sayı değer umulurken gösterici değeri kullanılmış"
-#: convert.c:104
+#: convert.c:106
msgid "aggregate value used where a float was expected"
msgstr "bir gerçel sayı umulurken küme değeri kullanılmış"
-#: convert.c:130
+#: convert.c:132
msgid "conversion to incomplete type"
msgstr "tamamlanmamış türe dönüşüm"
-#: convert.c:390 convert.c:470
+#: convert.c:414 convert.c:494
msgid "can't convert between vector values of different size"
msgstr "farklı boydaki vektör değerleri arasında dönüşüm yapılamaz"
-#: convert.c:396
+#: convert.c:420
msgid "aggregate value used where an integer was expected"
msgstr "bir tamsayı gerekirken küme değeri kullanılmış"
-#: convert.c:448 f/com.c:1073
+#: convert.c:472 f/com.c:1100
msgid "pointer value used where a complex was expected"
-msgstr "karmaşık sayı gereken yerde gösterge değeri kullanılmış"
+msgstr "karmaşık sayı gereken yerde gösterici değeri kullanılmış"
-#: convert.c:452 f/com.c:1075
+#: convert.c:476 f/com.c:1102
msgid "aggregate value used where a complex was expected"
msgstr "karmaşık sayı gereken yerde küme değeri kullanılmış"
-#: convert.c:476
+#: convert.c:500
msgid "can't convert value to a vector"
msgstr "değer bir vektöre dönüştürülemez"
-#: cpperror.c:125
+#: cpperror.c:113
+msgid "warning: "
+msgstr "uyarı: "
+
+#: cpperror.c:115
msgid "internal error: "
msgstr "iç hata: "
-#: cpperror.c:132 tradcpp.c:4690
-msgid "warning: "
-msgstr "uyarı: "
+#: cpperror.c:189
+msgid "stdout"
+msgstr "stdÇ"
-#: cpperror.c:209 cpperror.c:299 cppfiles.c:691 gcc.c:6307 tradcpp.c:4728
+#: cpperror.c:191 gcc.c:6428
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: cppexp.c:154
-msgid "floating point numbers are not valid in #if"
-msgstr "#if ifadesinde gerçel sayılar geçersiz"
+#: cppexp.c:199
+msgid "too many decimal points in number"
+msgstr "sayı içindeki ondalık nokta sayısı çok fazla"
-#: cppexp.c:176
-msgid "traditional C rejects the `U' suffix"
-msgstr "geleneksel C `U' sonekini reddeder"
+#: cppexp.c:219
+#, c-format
+msgid "invalid digit \"%c\" in octal constant"
+msgstr "sekizlik sabit içindeki \"%c\" geçersiz"
-#: cppexp.c:179
-msgid "too many 'l' suffixes in integer constant"
-msgstr "tamsayı sabitteki 'l' soneklerinin sayısı çok fazla"
+#: cppexp.c:225
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99 onaltılık gerçel sayı sabit kullanımı"
-#: cppexp.c:183
-msgid "integer constant contains digits beyond the radix"
-msgstr "tamsayı sabit tabanı aşan rakamlar içeriyor"
+#: cppexp.c:234
+msgid "exponent has no digits"
+msgstr "üs rakam içermiyor"
-#: cppexp.c:186
-msgid "integer constant out of range"
-msgstr "tamsayı sabit kapsamdışı"
+#: cppexp.c:241
+msgid "hexadecimal floating constants require an exponent"
+msgstr "onaltılık gerçel sabitler bir üs gerektirir"
-#: cppexp.c:192
-msgid "integer constant is so large that it is unsigned"
-msgstr "tamsayı sabit unsigned olarak oldukça büyük"
+#: cppexp.c:247
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
-#: cppexp.c:201
+#: cppexp.c:257 cppexp.c:282
#, c-format
-msgid "invalid suffix '%.*s' on integer constant"
-msgstr "tamsayı sabitte sonek '%.*s' geçersiz"
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
-#: cppexp.c:234
+#: cppexp.c:268
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
+
+#: cppexp.c:289
+msgid "use of C99 long long integer constant"
+msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
+
+#: cppexp.c:295
+msgid "imaginary constants are a GCC extension"
+msgstr "sanal sabitler bir GCC geniÅŸletmesidir"
+
+#: cppexp.c:383
+msgid "integer constant is too large for its type"
+msgstr "tamsayı sabit, türü için oldukça büyük"
+
+#: cppexp.c:395
+msgid "integer constant is so large that it is unsigned"
+msgstr "tamsayı sabit unsigned olarak oldukça büyük"
+
+#: cppexp.c:482
msgid "missing ')' after \"defined\""
msgstr "\"defined\" dan sonra ')' eksik"
-#: cppexp.c:240
+#: cppexp.c:489
msgid "operator \"defined\" requires an identifier"
-msgstr "\"defined\" işlemimi bir tanımlayıcı gerektirir"
+msgstr "\"defined\" işleci bir tanımlayıcı gerektirir"
-#: cppexp.c:248
+#: cppexp.c:497
#, c-format
msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
msgstr "(C++'da \"%s\" \"%s\" için bir alternatif dizgeciktir)"
-#: cppexp.c:259
+#: cppexp.c:507
msgid "this use of \"defined\" may not be portable"
msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
-#: cppexp.c:307
-msgid "string constants are not valid in #if"
-msgstr "#if ifadesinde dizge sabitler geçersiz"
-
-#: cppexp.c:311
-#, c-format
-msgid "invalid character '%c' in #if"
-msgstr "#if ifadesinde geçersiz karakter '%c'"
+#: cppexp.c:545
+msgid "floating constant in preprocessor expression"
+msgstr "önişlemci ifadesinde gerçel sayı taşması"
-#: cppexp.c:313
-#, c-format
-msgid "invalid character '\\%03o' in #if"
-msgstr "#if içinde '\\%03o' karakteri geçersiz"
+#: cppexp.c:551
+msgid "imaginary number in preprocessor expression"
+msgstr "önişlemci ifadesinde sanal sayı"
-#: cppexp.c:330
+#: cppexp.c:596
#, c-format
msgid "ISO C++ does not permit \"%s\" in #if"
msgstr "ISO C++ #if içinde \"%s\" kullanımına izin vermez"
-#: cppexp.c:341
+#: cppexp.c:604
#, c-format
msgid "\"%s\" is not defined"
msgstr "\"%s\" tanımlı değil"
-#: cppexp.c:367
+#: cppexp.c:737 cppexp.c:772
#, c-format
-msgid "\"%s\" is not valid in #if expressions"
-msgstr "#if ifadelerinde \"%s\" geçersizdir"
+msgid "missing binary operator before token \"%s\""
+msgstr "\"%s\" dizgeciğinden önceki iki terimli işleç eksik"
-#: cppexp.c:382
-msgid "integer overflow in preprocessor expression"
-msgstr "önişlemci ifadesinde tamsayı taşması"
+#: cppexp.c:756
+#, c-format
+msgid "invalid character '%c' in #if"
+msgstr "#if ifadesinde geçersiz karakter '%c'"
-#: cppexp.c:612
-msgid "missing binary operator"
-msgstr "iki terimli iÅŸlemimi eksik"
+#: cppexp.c:758
+#, c-format
+msgid "invalid character '\\%03o' in #if"
+msgstr "#if içinde '\\%03o' karakteri geçersiz"
-#: cppexp.c:647
+#: cppexp.c:763
+#, c-format
+msgid "token \"%s\" is not valid in preprocessor expressions"
+msgstr "\"%s\" dizgeciği önişlemci ifadelerinde geçersizdir"
+
+#: cppexp.c:782
msgid "void expression between '(' and ')'"
msgstr "'(' ve ')' arasında void ifade"
-#: cppexp.c:649
-#, c-format
-msgid "operator '%s' has no right operand"
-msgstr "`%s' işlemiminin sağ tarafı yok"
+#: cppexp.c:785
+msgid "#if with no expression"
+msgstr "#if ifadesiz"
-#: cppexp.c:661
+#: cppexp.c:787
#, c-format
-msgid "impossible operator '%s'"
-msgstr "işlemimi '%s' imkansız"
-
-#: cppexp.c:737 tradcif.y:111 tradcif.y:122
-msgid "division by zero in #if"
-msgstr "#if içinde sıfırla bölme"
+msgid "operator '%s' has no right operand"
+msgstr "`%s' işlecinin sağ tarafı yok"
-#: cppexp.c:771
-msgid "comma operator in operand of #if"
-msgstr "#if'in teriminde virgül"
+#: cppexp.c:813
+msgid " ':' without preceding '?'"
+msgstr "':' den önce '?' yok"
-#: cppexp.c:776
-msgid "syntax error '?' without following ':'"
-msgstr "sözdizimi hatası '?' dan sonra ':' yok"
+#: cppexp.c:840
+msgid "unbalanced stack in #if"
+msgstr "#if ifadesinde karşılıksız yığın"
-#: cppexp.c:779
-msgid "syntax error ':' without preceding '?'"
-msgstr "sözdizimi hatası ':' den önce '?' yok"
+#: cppexp.c:862
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "işleç '%u' imkansız"
-#: cppexp.c:787
+#: cppexp.c:954
msgid "missing ')' in expression"
msgstr "ifadede ')' eksik"
-#: cppexp.c:794
+#: cppexp.c:975
+msgid "'?' without following ':'"
+msgstr "'?' dan sonra ':' yok"
+
+#: cppexp.c:985
+msgid "integer overflow in preprocessor expression"
+msgstr "önişlemci ifadesinde tamsayı taşması"
+
+#: cppexp.c:990
msgid "missing '(' in expression"
msgstr "ifadede '(' eksik"
-#: cppexp.c:820
+#: cppexp.c:1026
#, c-format
-msgid "missing binary operator before '%s'"
-msgstr "`%s' den önce iki terimli işlemimi eksik"
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\"in soldaki terimi yükseltgenirken işaret değiştiriyor"
-#: cppexp.c:826
+#: cppexp.c:1031
#, c-format
-msgid "operator '%s' has no left operand"
-msgstr "`%s' işlemiminin sol tarafı yok"
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\"in sağdaki terimi yükseltgenirken işaret değiştiriyor"
-#: cppexp.c:864
-msgid "unbalanced stack in #if"
-msgstr "#if ifadesinde karşılıksız yığın"
+#: cppexp.c:1414
+msgid "comma operator in operand of #if"
+msgstr "#if'in teriminde virgül"
-#: cppexp.c:867
-msgid "#if with no expression"
-msgstr "#if ifadesiz"
+#: cppexp.c:1551
+msgid "division by zero in #if"
+msgstr "#if içinde sıfırla bölme"
-#: cppfiles.c:395
+#: cppfiles.c:411
#, c-format
msgid "%s is too large"
msgstr "%s çok büyük"
-#: cppfiles.c:426
+#: cppfiles.c:447
#, c-format
msgid "%s is shorter than expected"
msgstr "%s beklenenden daha kısa"
-#: cppfiles.c:440
+#: cppfiles.c:461
#, c-format
msgid "%s is a block device"
msgstr "%s bir blok aygıtıdır"
-#: cppfiles.c:566
+#: cppfiles.c:594
#, c-format
msgid "no include path in which to find %s"
msgstr "%s arama yolunda include dosyaları yok"
-#: cppfiles.c:639
+#: cppfiles.c:668
msgid "Multiple include guards may be useful for:\n"
msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
-#: cppfiles.c:1029
+#: cppfiles.c:1014
msgid "absolute file name in remap_filename"
msgstr "remap_filename içinde mutlak dosya ismi"
-#: cppinit.c:230
+#: cppinit.c:224
#, c-format
msgid "ignoring nonexistent directory \"%s\"\n"
msgstr " olmayan \"%s\" dizini yoksayılıyor\n"
-#: cppinit.c:237
+#: cppinit.c:231
#, c-format
msgid "%s: Not a directory"
msgstr "%s: Bir dizin deÄŸil"
-#: cppinit.c:284
+#: cppinit.c:287
#, c-format
msgid "ignoring duplicate directory \"%s\"\n"
msgstr "tekrar belirtilen \"%s\" dizini yoksayılıyor\n"
-#: cppinit.c:312
-#, c-format
-msgid "changing search order for system directory \"%s\""
-msgstr "sistem dizini \"%s\" için arama sırası"
+#: cppinit.c:325
+msgid " as it is a non-system directory that duplicates a system directory\n"
+msgstr " tekrarlayan bir sistem dizini olmayan dizin olarak deÄŸiÅŸtiriliyor\n"
-#: cppinit.c:316
+#: cppinit.c:891
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t bir usigned tür olmalı"
+
+#: cppinit.c:895
#, c-format
-msgid " as it is the same as non-system directory \"%s\""
-msgstr "sistem dizini olmayan \"%s\" dizini ile aynı olacak şekilde değiştiriliyor"
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "önişlemci aritmetiği %lu bitlik maksimum genişliğe sahip; hedef için %lu bit gerekiyor"
+
+#: cppinit.c:901
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP aritmetiği en azından bir hedef int kadar genişlikte olmalı "
+
+#: cppinit.c:904
+msgid "target char is less than 8 bits wide"
+msgstr "hedef char 8bitlik genişlikten küçük"
+
+#: cppinit.c:908
+msgid "target wchar_t is narrower than target char"
+msgstr "hedef wchar_t hedef char'dan daha dar"
+
+#: cppinit.c:912
+msgid "target int is narrower than target char"
+msgstr "hedef int hedef char'dan daha dar"
+
+#: cppinit.c:916
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer'ı CPP character'dan daha dar"
-#: cppinit.c:320
-msgid " as it has already been specified as a non-system directory"
-msgstr "belirtilmş olması gereken bir sistem dizini olmayan dizin olarak değiştiriliyor"
+#: cppinit.c:920
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "Bu konaktaki CPP %lu bitten büyük karakter sabitleriyle çalışamaz, hedef ise %lu bit gerektiriyor"
-#: cppinit.c:936
+#: cppinit.c:972
msgid "#include \"...\" search starts here:\n"
msgstr "#include \"...\" araması buradan başlıyor:\n"
-#: cppinit.c:940
+#: cppinit.c:976
msgid "#include <...> search starts here:\n"
msgstr "#include <...> araması buradan başlıyor:\n"
-#: cppinit.c:943
+#: cppinit.c:979
msgid "End of search list.\n"
msgstr "Arama listesi sonu.\n"
-#: cppinit.c:1010
+#: cppinit.c:1057
msgid "<built-in>"
msgstr "<yerleÅŸik>"
-#: cppinit.c:1012
+#: cppinit.c:1059
msgid "<command line>"
msgstr "<komut satırı>"
-#: cppinit.c:1108 tradcpp.c:979 tradcpp.c:989 tradcpp.c:1080
-msgid "I/O error on output"
-msgstr "Çıktıda G/Ç hatası"
-
#. Irix6 "cc -n32" and OSF4 cc have problems with char foo[] = ("string");
#. I.e. a const string initializer with parens around it. That is
#. what N_("string") resolves to, so we make no_* be macros instead.
-#: cppinit.c:1156
-#, c-format
-msgid "argument missing after %s"
-msgstr "%s den sonraki argüman eksik"
-
-#: cppinit.c:1157
+#: cppinit.c:1164
#, c-format
msgid "assertion missing after %s"
msgstr "%s den sonra olumlama eksik"
-#: cppinit.c:1158
+#: cppinit.c:1165
#, c-format
msgid "directory name missing after %s"
msgstr "%s den sonra dizin ismi eksik"
-#: cppinit.c:1159
+#: cppinit.c:1166
#, c-format
msgid "file name missing after %s"
msgstr "%s den sonra dosya ismi eksik"
-#: cppinit.c:1160
+#: cppinit.c:1167
#, c-format
msgid "macro name missing after %s"
msgstr "%s den sonra makro ismi eksik"
-#: cppinit.c:1161
+#: cppinit.c:1168
#, c-format
msgid "path name missing after %s"
msgstr "%s den sonra dosya yolu ismi eksik"
-#: cppinit.c:1162
-#, c-format
-msgid "number missing after %s"
-msgstr "%s den sonra sayı eksik"
-
-#: cppinit.c:1163
-#, c-format
-msgid "target missing after %s"
-msgstr "%s den sonraki hedef eksik"
-
-#: cppinit.c:1351
-#, c-format
-msgid "too many filenames. Type %s --help for usage info"
-msgstr "dosya sayısı çok fazla. Kullanım bilgileri için %s --help yazınız"
-
-#: cppinit.c:1541 tradcpp.c:610
-msgid "output filename specified twice"
-msgstr "çıktı dosyasının ismi iki kere belirtilmiş"
-
-#: cppinit.c:1653
+#: cppinit.c:1353
msgid "-I- specified twice"
msgstr "-I- iki kere belirtilmiÅŸ"
-#: cppinit.c:1794
-#, c-format
-msgid "GNU CPP version %s (cpplib)"
-msgstr "GNU CPP %s sürümü (cpplib)"
-
-#: cppinit.c:1835 tradcpp.c:803
-msgid "you must additionally specify either -M or -MM"
-msgstr "ek olarak ya -M ya da -MM belirtmelisiniz"
-
-#. To keep the lines from getting too long for some compilers, limit
-#. to about 500 characters (6 lines) per chunk.
-#: cppinit.c:1896
-msgid ""
-"Switches:\n"
-" -include <file> Include the contents of <file> before other files\n"
-" -imacros <file> Accept definition of macros in <file>\n"
-" -iprefix <path> Specify <path> as a prefix for next two options\n"
-" -iwithprefix <dir> Add <dir> to the end of the system include path\n"
-" -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
-" -isystem <dir> Add <dir> to the start of the system include path\n"
-msgstr ""
-"Seçenekler:\n"
-" -include DOSYA Diğer dosyalardan önce DOSYA içeriği içerilir\n"
-" -imacros DOSYA DOSYAdaki makrolar kabul edilir\n"
-" -iprefix DOSYAYOLU Aşağıdaki iki seçenek için önek olarak DOSYAYOLU\n"
-" -iwithprefix DÄ°ZÄ°N Sistem include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
-" -iwithprefixbefore DÄ°ZÄ°N Ana include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
-" -isystem DİZİN Sistem include dosya yolunun başına DİZİN eklenir\n"
-
-#: cppinit.c:1905
-msgid ""
-" -idirafter <dir> Add <dir> to the end of the system include path\n"
-" -I <dir> Add <dir> to the end of the main include path\n"
-" -I- Fine-grained include path control; see info docs\n"
-" -nostdinc Do not search system include directories\n"
-" (dirs specified with -isystem will still be used)\n"
-" -nostdinc++ Do not search system include directories for C++\n"
-" -o <file> Put output into <file>\n"
-msgstr ""
-" -idirafter DÄ°ZÄ°N Sistem include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
-" -I DÄ°ZÄ°N Ana include dosya yolunun sonuna DÄ°ZÄ°N eklenir\n"
-" -I- Ä°nceden inceye include dosya yolu denetimi;\n"
-" Daha fazla bilgi için belgelere bakınız\n"
-" -nostdinc Sistem include dizinleri için arama yapılmaz\n"
-" (-isystem ile belirtilen dizinler kullanılacak)\n"
-" -nostdinc++ C++ için sistem include dizinleri araması yapılmaz\n"
-" -o DOSYA Çıktı DOSYAya yazılır\n"
-
-#: cppinit.c:1914
-msgid ""
-" -pedantic Issue all warnings demanded by strict ISO C\n"
-" -pedantic-errors Issue -pedantic warnings as errors instead\n"
-" -trigraphs Support ISO C trigraphs\n"
-" -lang-c Assume that the input sources are in C\n"
-" -lang-c89 Assume that the input sources are in C89\n"
-msgstr ""
-" -pedantic ISO C gereksinimlerine bağlı tüm uyarılar verilir\n"
-" -pedantic-errors -pedantic uyarıları hata olarak verilir\n"
-" -trigraphs ISO C üçlü harfleri desteklenir\n"
-" -lang-c Girdi kaynakları C'de değerlendirilir\n"
-" -lang-c89 Girdi kaynakları C89'da değerlendirilir\n"
-
-#: cppinit.c:1921
-msgid ""
-" -lang-c++ Assume that the input sources are in C++\n"
-" -lang-objc Assume that the input sources are in ObjectiveC\n"
-" -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
-" -lang-asm Assume that the input sources are in assembler\n"
-msgstr ""
-" -lang-c++ Girdi kaynakları C++'da değerlendirilir\n"
-" -lang-objc Girdi kaynakları ObjectiveC'de değerlendirilir\n"
-" -lang-objc++ Girdi kaynakları ObjectiveC++'da değerlendirilir\n"
-" -lang-asm Girdi kaynakları çeviricide değerlendirilir\n"
-
-#: cppinit.c:1927
-msgid ""
-" -std=<std name> Specify the conformance standard; one of:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ Allow parsing of C++ style features\n"
-" -w Inhibit warning messages\n"
-" -Wtrigraphs Warn if trigraphs are encountered\n"
-" -Wno-trigraphs Do not warn about trigraphs\n"
-" -Wcomment{s} Warn if one comment starts inside another\n"
-msgstr ""
-" -std=<std ismi> Aşağıdaki uyum standartlarından biri belirtilir:\n"
-" gnu89, gnu99, c89, c99, iso9899:1990,\n"
-" iso9899:199409, iso9899:1999\n"
-" -+ C++ tarzı özelliklerin ayrıştırılabilmesini sağlar\n"
-" -w Uyarı iletileri engellenir\n"
-" -Wtrigraphs Üçlü harfler saptandığında uyarı verilir\n"
-" -Wno-trigraphs Üçlü harfler hakkında uyarı verilmez\n"
-" -Wcomment{s} İç içe açıklamalar için uyarı verilir\n"
-
-#: cppinit.c:1937
-msgid ""
-" -Wno-comment{s} Do not warn about comments\n"
-" -Wtraditional Warn about features not present in traditional C\n"
-" -Wno-traditional Do not warn about traditional C\n"
-" -Wundef Warn if an undefined macro is used by #if\n"
-" -Wno-undef Do not warn about testing undefined macros\n"
-" -Wimport Warn about the use of the #import directive\n"
-msgstr ""
-" -Wno-comment{s} Açıklamalar hakkında uyarı verilmez\n"
-" -Wtraditional Geleneksel C'de bulunmayan özellikler için uyarır\n"
-" -Wno-traditional Geleneksel C hakkında uyarı verilmez\n"
-" -Wundef undef'li bir makro #if ile atanmışsa uyarır\n"
-" -Wno-undef undef'li makrolar hakkında uyarı verilmez\n"
-" -Wimport #import yönergesi kullanımı hakkında uyarır\n"
-
-#: cppinit.c:1945
-msgid ""
-" -Wno-import Do not warn about the use of #import\n"
-" -Werror Treat all warnings as errors\n"
-" -Wno-error Do not treat warnings as errors\n"
-" -Wsystem-headers Do not suppress warnings from system headers\n"
-" -Wno-system-headers Suppress warnings from system headers\n"
-" -Wall Enable all preprocessor warnings\n"
-msgstr ""
-" -Wno-import #import kullanımı hakkıda uyarı verilmez\n"
-" -Werror Tüm uyarılar hata olarak değerlendirilir\n"
-" -Wno-error Uyarılar hata olarak değerlendirilmez\n"
-" -Wsystem-headers Sistem başlık dosyalarından kaynaklanan uyarılar\n"
-" verilir\n"
-" -Wno-system-headers Sistem başlık dosyalarından kaynaklanan uyarılar\n"
-" engellenir\n"
-" -Wall Tüm önişlemci uyarıları verilir\n"
-
-#: cppinit.c:1953
-msgid ""
-" -M Generate make dependencies\n"
-" -MM As -M, but ignore system header files\n"
-" -MD Generate make dependencies and compile\n"
-" -MMD As -MD, but ignore system header files\n"
-" -MF <file> Write dependency output to the given file\n"
-" -MG Treat missing header file as generated files\n"
-msgstr ""
-" -M make bağımlılıkları üretilir\n"
-" -MM sistem başlık dosyaları yoksayılarak -M uygulanır\n"
-" -MD make bağımlılıkları üretilir ve derleme yapılır\n"
-" -MMD sistem başlık dosyaları yoksayılarak -MD uygulanır\n"
-" -MF DOSYA Bağımlılıklar DOSYAya yazılır\n"
-" -MG Eksik başlık dosyası üretilen dosyalar olarak\n"
-" deÄŸerlendirilir\n"
-
-#: cppinit.c:1961
-msgid ""
-" -MP\t\t\t Generate phony targets for all headers\n"
-" -MQ <target> Add a MAKE-quoted target\n"
-" -MT <target> Add an unquoted target\n"
-msgstr ""
-" -MP Tüm başlık dosyaları için sahte hedefler üretilir\n"
-" -MQ HEDEF Bir MAKE-tırnaklı HEDEF eklenir\n"
-" -MT HEDEF Bir MAKE-tırnaksız HEDEF eklenir\n"
-
-#: cppinit.c:1966
-msgid ""
-" -D<macro> Define a <macro> with string '1' as its value\n"
-" -D<macro>=<val> Define a <macro> with <val> as its value\n"
-" -A<question>=<answer> Assert the <answer> to <question>\n"
-" -A-<question>=<answer> Disable the <answer> to <question>\n"
-" -U<macro> Undefine <macro> \n"
-" -v Display the version number\n"
-msgstr ""
-" -D<makro> Değeri '1' dizgesi olan bir <makro> atanır\n"
-" -D<makro>=<değer> Değeri <değer> olan bir <makro> atanır\n"
-" -A<soru>=<cevap> <soru> ya <cevap> olumlanır\n"
-" -A-<soru>=<cevap> <soru> <cevap> etkisiz kılınır\n"
-" -U<makro> <macro> undef yapılır \n"
-" -v Sürüm numarası gösterilir\n"
-
-#: cppinit.c:1974
-msgid ""
-" -H Print the name of header files as they are used\n"
-" -C Do not discard comments\n"
-" -dM Display a list of macro definitions active at end\n"
-" -dD Preserve macro definitions in output\n"
-" -dN As -dD except that only the names are preserved\n"
-" -dI Include #include directives in the output\n"
-msgstr ""
-" -H Kullanılan başlık dosyası isimlerini gösterir\n"
-" -C Açıklamalar iptal edilmez\n"
-" -dM Sonuçta etkin olan makro tanımlarını listeler\n"
-" -dD Çıktıda makro tanımlarıda içerilir\n"
-" -dN -dD gibi ancak sadece isimler dışında\n"
-" -dI Çıktıda #include yönergeleri içerilir\n"
-
-#: cppinit.c:1982
-msgid ""
-" -fpreprocessed Treat the input file as already preprocessed\n"
-" -ftabstop=<number> Distance between tab stops for column reporting\n"
-" -P Do not generate #line directives\n"
-" -$ Do not allow '$' in identifiers\n"
-" -remap Remap file names when including files\n"
-" --version Display version information\n"
-" -h or --help Display this information\n"
-msgstr ""
-" -fpreprocessed Girdi dosyası önişlenmiş olarak değerlendirilir\n"
-" -ftabstop=SAYI Sütunlu raporlamada sekme uzunluğu\n"
-" -P #line yönergeleri üretilmez\n"
-" -$ Tanımlayıcılarda '$' kullanımı engellenir\n"
-" -remap Dosyalar içerilirken dosya adları yeniden eşlenir\n"
-" --version Sürüm bilgileri gösterilir\n"
-" -h ya da --help Bu yardım iletisi gösterilir\n"
-
-#: cpplex.c:154
+#: cpplex.c:149
#, c-format
msgid "trigraph ??%c converted to %c"
msgstr "??%c üçlü harfi %c olarak dönüştürüldü"
-#: cpplex.c:162
+#: cpplex.c:157
#, c-format
msgid "trigraph ??%c ignored"
msgstr "??%c üçlü harfi yoksayıldı"
-#: cpplex.c:218
+#: cpplex.c:214
msgid "backslash and newline separated by space"
msgstr "boşlukla ayrılmış tersbölü ve satırsonu karakterleri"
-#: cpplex.c:224
+#: cpplex.c:221 cpptrad.c:158
msgid "backslash-newline at end of file"
msgstr "dosya sonunda tersbölü ve satırsonu"
-#: cpplex.c:290
+#: cpplex.c:287 cpptrad.c:199
msgid "\"/*\" within comment"
msgstr "açıklama içinde \"/*\" "
-#: cpplex.c:373
+#: cpplex.c:395
msgid "null character(s) ignored"
msgstr "null karakter(ler) yoksayıldı"
-#: cpplex.c:380
+#: cpplex.c:402
#, c-format
msgid "%s in preprocessing directive"
msgstr "önişlemci yönergesi içinde %s"
-#: cpplex.c:447
+#: cpplex.c:475
#, c-format
msgid "attempt to use poisoned \"%s\""
msgstr "zehirli \"%s\" kullanılmaya çalışılıyor"
-#: cpplex.c:455
+#: cpplex.c:483
msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
msgstr "__VA_ARGS__ sadece argümanlarının sayısı değişebilen bir C99 makrosunun genişleme alanında görünebilir"
-#: cpplex.c:508
-msgid "'$' character(s) in identifier"
-msgstr "tanımlayıcı içinde '$' karakter(ler)i"
+#: cpplex.c:555
+msgid "'$' character(s) in identifier or number"
+msgstr "belirteç ya da sayı içinde '$' karakter(ler)i"
-#: cpplex.c:589
+#: cpplex.c:698
#, c-format
msgid "missing terminating %c character"
msgstr "%c sonlandırma karakteri eksik"
-#: cpplex.c:594
-msgid "possible start of unterminated string literal"
-msgstr "sonlandırılmamış dizge sabitin olası başlangıcı"
-
-#: cpplex.c:689
-msgid "multi-line string literals are deprecated"
-msgstr "çok satırlı dizge sabitlerin modası geçti"
-
-#: cpplex.c:712
+#: cpplex.c:711
msgid "null character(s) preserved in literal"
msgstr "null karakter(ler) sabit içinde saklanmış"
-#: cpplex.c:914
+#: cpplex.c:915 cpptrad.c:487
msgid "no newline at end of file"
msgstr "dosyanın sonunda satırsonu karakteri yok"
-#: cpplex.c:1034 tradcpp.c:1467
+#: cpplex.c:1092 cpptrad.c:213
msgid "unterminated comment"
msgstr "sonlandırılmamış açıklama"
-#: cpplex.c:1045
-msgid "C++ style comments are not allowed in ISO C89"
-msgstr "C++ tarzı açıklamalara ISO C89'da izin verilmez"
+#: cpplex.c:1103
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ tarzı açıklamalara ISO C90'da izin verilmez"
-#: cpplex.c:1047
+#: cpplex.c:1105
msgid "(this will be reported only once per input file)"
msgstr "(her girdi dosyasında sadece bir kere raporlanacaktır)"
-#: cpplex.c:1052
+#: cpplex.c:1110
msgid "multi-line comment"
msgstr "çok satırlı açıklama"
-#: cpplex.c:1367
+#: cpplex.c:1425
#, c-format
msgid "unknown string token %s\n"
msgstr "dizge dizgeciÄŸi %s bilinmiyor\n"
-#: cpplex.c:1379
+#: cpplex.c:1438
#, c-format
msgid "unspellable token %s"
msgstr "dizgecik %s okunabilir deÄŸil"
-#: cpplex.c:1635
+#: cpplex.c:1695
#, c-format
-msgid "the meaning of '\\%c' varies with -traditional"
-msgstr "`\\%c'nin anlamı -traditional ile değişir"
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "`\\%c'nin anlamı geleneksel C'de farklıdır"
-#: cpplex.c:1641
+#: cpplex.c:1701
msgid "incomplete universal-character-name"
msgstr "evrensel karakter ismi tamamlanmamış"
-#: cpplex.c:1655
+#: cpplex.c:1715
#, c-format
msgid "non-hex digit '%c' in universal-character-name"
msgstr "evrensel karakter isminde '%c' bir onaltılık rakam değil"
-#: cpplex.c:1663
+#: cpplex.c:1723
msgid "universal-character-name on EBCDIC target"
msgstr "EBCDIC hedefte evrensel karakter ismi"
-#: cpplex.c:1677
+#: cpplex.c:1737
msgid "universal-character-name out of range"
msgstr "evrensel karakter ismi kapsam dışı"
-#: cpplex.c:1722
-msgid "the meaning of '\\a' varies with -traditional"
-msgstr "`\\a'nın anlamı -traditional ile değişir"
+#: cpplex.c:1791
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "`\\a'nın anlamı geleneksel C'de farklıdır"
-#: cpplex.c:1729
+#: cpplex.c:1798
#, c-format
msgid "non-ISO-standard escape sequence, '\\%c'"
msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
-#: cpplex.c:1739
-msgid "the meaning of '\\x' varies with -traditional"
-msgstr "'\\x'in anlamı -traditional ile değişir"
+#: cpplex.c:1809
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x'in anlamı geleneksel C'de farklıdır"
-#: cpplex.c:1758 f/lex.c:620
+#: cpplex.c:1828 f/lex.c:585
msgid "\\x used with no following hex digits"
msgstr "\\x izleyen onaltılık rakamlar olmaksızın kullanılmış"
-#: cpplex.c:1762
+#: cpplex.c:1833
msgid "hex escape sequence out of range"
msgstr "onaltılık önceleme dizgesi kapsamdışı"
-#: cpplex.c:1786
+#: cpplex.c:1858
msgid "octal escape sequence out of range"
msgstr "sekizlik önceleme dizgesi kapsamdışı"
-#: cpplex.c:1801
+#: cpplex.c:1874
#, c-format
msgid "unknown escape sequence '\\%c'"
msgstr "bilinmeyen önceleme dizgesi '\\%c'"
-#: cpplex.c:1803
+#: cpplex.c:1877
#, c-format
msgid "unknown escape sequence: '\\%03o'"
msgstr "bilinmeyen önceleme dizgesi: '\\%03o'"
-#: cpplex.c:1807
-msgid "escape sequence out of range for character"
-msgstr "önceleme dizgesi karakter için kapsam dışı"
+#: cpplex.c:1882
+msgid "escape sequence out of range for its type"
+msgstr "önceleme dizgesi türü için kapsam dışı"
-#: cpplex.c:1904
+#: cpplex.c:1973
msgid "empty character constant"
msgstr "karakter sabit boÅŸ"
-#: cpplex.c:1908
-msgid "character constant too long"
-msgstr "karakter sabit çok uzun"
+#: cpplex.c:1983
+msgid "character constant too long for its type"
+msgstr "karakter sabiti, türü için çok uzun"
-#: cpplex.c:1911
+#: cpplex.c:1986
msgid "multi-character character constant"
msgstr "çoklu-karakter karakter sabiti"
-#: cpplib.c:228
+#: cpplib.c:225
#, c-format
msgid "extra tokens at end of #%s directive"
msgstr "#%s yönergesinin sonunda fazladan dizgecikler"
-#: cpplib.c:281
+#: cpplib.c:315
#, c-format
msgid "#%s is a GCC extension"
msgstr "#%s bir GCC uzantısıdır"
-#: cpplib.c:292
+#: cpplib.c:327
msgid "suggest not using #elif in traditional C"
msgstr "geleneksel C'de #elif kullanılmıyor varsayılır"
-#: cpplib.c:295
+#: cpplib.c:330
#, c-format
msgid "traditional C ignores #%s with the # indented"
msgstr "geleneksel C'de girintili # ile #%s yoksayılır"
-#: cpplib.c:299
+#: cpplib.c:334
#, c-format
msgid "suggest hiding #%s from traditional C with an indented #"
msgstr "geleneksel C'den #%s in saklanması için bir girintili # kullanılmış farzedilir"
-#: cpplib.c:333
+#: cpplib.c:358
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "bir yönergenin makro argümanlarla gömülmesi uyarlanabilir değil"
+
+#: cpplib.c:378
msgid "style of line directive is a GCC extension"
msgstr "satır yönergesinin tarzı bir GCC özelliğidir"
-#: cpplib.c:382
+#: cpplib.c:428
#, c-format
msgid "invalid preprocessing directive #%s"
msgstr "önişlem yönergesi #%s geçersiz"
-#: cpplib.c:437
-#, c-format
-msgid "no macro name given in #%s directive"
-msgstr "#%s yönergesinde makro ismi verilmemiş"
+#: cpplib.c:500
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" makro ismi olarak kullanılamaz"
-#: cpplib.c:441
+#: cpplib.c:506
#, c-format
msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
-msgstr "\"%s\" C++'da bir işlemimi olduğundan makro ismi olarak kullanılamaz"
+msgstr "\"%s\" C++'da bir işleç olduğundan makro ismi olarak kullanılamaz"
+
+#: cpplib.c:509
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s yönergesinde makro ismi verilmemiş"
-#: cpplib.c:444
+#: cpplib.c:512
msgid "macro names must be identifiers"
msgstr "makro isimleri tanımlayıcılar olmalı"
-#: cpplib.c:455
-#, c-format
-msgid "\"%s\" cannot be used as a macro name"
-msgstr "\"%s\" bir makro ismi olarak kullanılamaz"
-
-#: cpplib.c:493
+#: cpplib.c:552
#, c-format
msgid "undefining \"%s\""
msgstr "tanımsız yapılan \"%s\""
-#: cpplib.c:536
+#: cpplib.c:598
msgid "missing terminating > character"
msgstr "sonlandıran > karakteri eksik"
-#: cpplib.c:574
+#: cpplib.c:637
#, c-format
msgid "#%s expects \"FILENAME\" or <FILENAME>"
msgstr "#%s \"DOSYA\" ya da <DOSYA> gerektirir"
-#: cpplib.c:585
+#: cpplib.c:648
#, c-format
msgid "empty file name in #%s"
msgstr "#%s deyimindeki dosya ismi boÅŸ"
-#: cpplib.c:604
+#: cpplib.c:667
msgid "#include_next in primary source file"
msgstr "birncil kaynak dosyasında #include_next"
-#: cpplib.c:611
+#: cpplib.c:674
msgid "#import is obsolete, use an #ifndef wrapper in the header file"
msgstr "#import artık kullanılmıyor, yerine başlık dosyası içinde #ifndef sarmalaması kullanın"
-#: cpplib.c:619
+#: cpplib.c:682
msgid "#include nested too deeply"
msgstr "#include iç içeliği çok derin"
-#: cpplib.c:677
+#: cpplib.c:739
#, c-format
msgid "invalid flag \"%s\" in line directive"
msgstr "satır yönergesinde geçersiz \"%s\" seçeneği"
-#: cpplib.c:759
+#: cpplib.c:814
#, c-format
msgid "\"%s\" after #line is not a positive integer"
msgstr "#line'dan sonraki \"%s\" bir pozitif tamsayı değil"
-#: cpplib.c:765
+#: cpplib.c:820
msgid "line number out of range"
msgstr "satır numarası kapsam dışı"
-#: cpplib.c:776 cpplib.c:847
+#: cpplib.c:831 cpplib.c:902
#, c-format
msgid "\"%s\" is not a valid filename"
msgstr "\"%s\" geçerli bir dosya ismi değil"
-#: cpplib.c:811
+#: cpplib.c:866
#, c-format
msgid "\"%s\" after # is not a positive integer"
msgstr "#'dan sonraki \"%s\" bir pozitif tamsayı değil"
-#: cpplib.c:916
+#: cpplib.c:973
msgid "invalid #ident directive"
msgstr "geçersiz #ident yönergesi"
-#: cpplib.c:1004
+#: cpplib.c:1061
#, c-format
msgid "registering \"%s\" as both a pragma and a pragma namespace"
msgstr "\"%s\" hem pragma hem de pragma isim alanı olarak kaydediliyor"
-#: cpplib.c:1007
+#: cpplib.c:1064
#, c-format
msgid "#pragma %s %s is already registered"
msgstr "#pragma %s %s zaten kayıtlı"
-#: cpplib.c:1009
+#: cpplib.c:1067
#, c-format
msgid "#pragma %s is already registered"
msgstr "#pragma %s zaten kayıtlı"
-#: cpplib.c:1084
+#: cpplib.c:1143
msgid "#pragma once is obsolete"
msgstr "#pragma once eskidi"
-#: cpplib.c:1087
+#: cpplib.c:1146
msgid "#pragma once in main file"
msgstr "main dosyasında '#pragma once'"
-#: cpplib.c:1111
+#: cpplib.c:1170
msgid "invalid #pragma GCC poison directive"
msgstr "geçersiz #pragma GCC poison yönergesi"
-#: cpplib.c:1120
+#: cpplib.c:1179
#, c-format
msgid "poisoning existing macro \"%s\""
msgstr "zehirlenen mevcut makro \"%s\""
-#: cpplib.c:1140
+#: cpplib.c:1201
msgid "#pragma system_header ignored outside include file"
msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı"
-#: cpplib.c:1165
+#: cpplib.c:1226
#, c-format
msgid "cannot find source %s"
msgstr "kaynak %s bulunamıyor"
-#: cpplib.c:1169
+#: cpplib.c:1230
#, c-format
msgid "current file is older than %s"
msgstr "mevcut dosya %s den daha eski"
-#: cpplib.c:1244
+#: cpplib.c:1346
msgid "_Pragma takes a parenthesized string literal"
msgstr "_Pragma bir parantezli dizge sabiti alır"
-#: cpplib.c:1343
+#: cpplib.c:1429
msgid "#else without #if"
msgstr "#if siz #else"
-#: cpplib.c:1348 tradcpp.c:3871
+#: cpplib.c:1434
msgid "#else after #else"
msgstr "#else den sonra #else"
-#: cpplib.c:1350 cpplib.c:1384
+#: cpplib.c:1436 cpplib.c:1470
msgid "the conditional began here"
msgstr "koşullu ifade buradan başladı"
-#: cpplib.c:1377
+#: cpplib.c:1463
msgid "#elif without #if"
msgstr "#if siz #elif "
-#: cpplib.c:1382 tradcpp.c:3566
+#: cpplib.c:1468
msgid "#elif after #else"
msgstr "#else den sonra #elif"
-#: cpplib.c:1413
+#: cpplib.c:1499
msgid "#endif without #if"
msgstr "#if siz #endif"
-#: cpplib.c:1496 tradcpp.c:3263
+#: cpplib.c:1582
msgid "missing '(' after predicate"
msgstr "dayanaktan sonra '(' eksik"
-#: cpplib.c:1511 tradcpp.c:3277
+#: cpplib.c:1597
msgid "missing ')' to complete answer"
msgstr "yanıtı tamamlayacak ')' eksik"
-#: cpplib.c:1531 tradcpp.c:3283
+#: cpplib.c:1617
msgid "predicate's answer is empty"
msgstr "dayanakların cevabı boş"
-#: cpplib.c:1561 tradcpp.c:3331
+#: cpplib.c:1647
msgid "assertion without predicate"
msgstr "dayanaksız olumlama"
-#: cpplib.c:1563 tradcpp.c:3333
+#: cpplib.c:1649
msgid "predicate must be an identifier"
msgstr "dayanak bir tanımlayıcı olmalı"
-#: cpplib.c:1645 tradcpp.c:3430
+#: cpplib.c:1738
#, c-format
msgid "\"%s\" re-asserted"
msgstr "\"%s\" tekrar olumlanmış"
-#: cpplib.c:1875
+#: cpplib.c:1968
#, c-format
msgid "unterminated #%s"
msgstr "sonlandırılmamış #%s"
-#: cppmacro.c:145
+#: cppmacro.c:94
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makro \"%s\" kullanılmamış"
+
+#: cppmacro.c:139 cppmacro.c:294
#, c-format
msgid "invalid built-in macro \"%s\""
msgstr "geçersiz yerleşik makro \"%s\""
-#: cppmacro.c:346
+#: cppmacro.c:234
+msgid "could not determine date and time"
+msgstr "tarih ve saat saptanamadı"
+
+#: cppmacro.c:407
msgid "invalid string literal, ignoring final '\\'"
msgstr "geçersiz dizge sabit, son '\\' yoksayılıyor"
-#: cppmacro.c:438
+#: cppmacro.c:504
#, c-format
msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
msgstr "\"%s\" ve \"%s\" geçişi geçerli bir önişlem dizgeciği vermez"
-#: cppmacro.c:564
-msgid "directives may not be used inside a macro argument"
-msgstr "yönergeler bir makro argüman içinde kullanılmayabilir"
-
-#: cppmacro.c:576
-#, c-format
-msgid "unterminated argument list invoking macro \"%s\""
-msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
-
-#: cppmacro.c:593
+#: cppmacro.c:546
msgid "ISO C99 requires rest arguments to be used"
msgstr "ISO C kalan argümanların kullanılmış olmasını gerektirir"
-#: cppmacro.c:598
+#: cppmacro.c:551
#, c-format
msgid "macro \"%s\" requires %u arguments, but only %u given"
msgstr "makro \"%s\" %u argüman gerektiriyor ama sadece %u argüman verilmiş"
-#: cppmacro.c:609
+#: cppmacro.c:556
#, c-format
msgid "macro \"%s\" passed %u arguments, but takes just %u"
msgstr "makro \"%s\" için %u argüman verilmiş ama tam %u argüman alıyor"
-#: cppmacro.c:692
+#: cppmacro.c:669 cpptrad.c:774
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
+
+#: cppmacro.c:776
#, c-format
msgid "function-like macro \"%s\" must be used with arguments in traditional C"
msgstr "işlev benzeri makro \"%s\" geleneksel C'de argümanlarla kullanılmalıdır"
-#: cppmacro.c:1188
+#: cppmacro.c:1314
#, c-format
msgid "duplicate macro parameter \"%s\""
msgstr "yinelenmiÅŸ makro parametresi \"%s\""
-#: cppmacro.c:1216
+#: cppmacro.c:1351
#, c-format
msgid "\"%s\" may not appear in macro parameter list"
msgstr "\"%s\" makro parametre listesinde görünmeyebilir"
-#: cppmacro.c:1223
+#: cppmacro.c:1359
msgid "macro parameters must be comma-separated"
msgstr "makro parametreleri virgüllerle ayrılmış olmalı"
-#: cppmacro.c:1240
+#: cppmacro.c:1376
msgid "parameter name missing"
msgstr "parametre ismi eksik"
-#: cppmacro.c:1254
+#: cppmacro.c:1391
msgid "anonymous variadic macros were introduced in C99"
msgstr "argümanlarının sayısı değişebilen anonim makrolar C99 da tanıtıldı"
-#: cppmacro.c:1257
+#: cppmacro.c:1395
msgid "ISO C does not permit named variadic macros"
msgstr "ISO C argümanlarının sayısı değişebilen isimli makrolara izin vermez"
-#: cppmacro.c:1266
+#: cppmacro.c:1404
msgid "missing ')' in macro parameter list"
msgstr "makro parametre listesinde ')' eksik"
-#: cppmacro.c:1344
+#: cppmacro.c:1472
msgid "ISO C requires whitespace after the macro name"
msgstr "ISO C makro isminden sonra boÅŸluk gerektirir"
-#: cppmacro.c:1374
+#: cppmacro.c:1500
msgid "'#' is not followed by a macro parameter"
msgstr "'#' iÅŸaretinden sonra bir makro parametresi yok"
-#: cppmacro.c:1394
+#: cppmacro.c:1519
msgid "'##' cannot appear at either end of a macro expansion"
msgstr "'##' bir makronun her iki ucunda da görünemez"
-#: cppmacro.c:1430
+#: cppmacro.c:1601
#, c-format
msgid "\"%s\" redefined"
msgstr "\"%s\" yeniden tanımlanmış"
-#: cppmacro.c:1434
+#: cppmacro.c:1606
msgid "this is the location of the previous definition"
msgstr "bu önceki tanımlamanın yeri"
-#: cppmacro.c:1498
+#: cppmacro.c:1657
#, c-format
-msgid "macro argument \"%s\" would be stringified with -traditional"
-msgstr "makro argümanı \"%s\" gelenekel C'de dizgelem olmalıydı"
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makro argümanı \"%s\" geleneksel C'de dizgelenmiş olmalıydı"
-#: cppmacro.c:1522
+#: cppmacro.c:1682
#, c-format
msgid "invalid hash type %d in cpp_macro_definition"
msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
-#: cppmain.c:121
-#, c-format
-msgid "invalid option %s"
-msgstr "geçersiz %s seçeneği"
-
-#: cppspec.c:131
+#: cppspec.c:109
#, c-format
msgid "\"%s\" is not a valid option to the preprocessor"
msgstr "\"%s\" önişlemci için geçerli bir seçenek değil"
-#: cppspec.c:155
+#: cppspec.c:133
msgid "too many input files"
msgstr "girdi dosyası sayısı çok fazla"
-#: cse.c:7112
-#, c-format
-msgid ";; Processing block from %d to %d, %d sets.\n"
-msgstr ";; %d den %d ye kadar, %d kümelik blok işleniyor.\n"
-
-#: diagnostic.c:784
+#: cpptrad.c:841
#, c-format
-msgid "%s:%d: warning: "
-msgstr "%s:%d: uyarı: "
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "makro \"%s\" genişletilirken iç içelik saptandı"
-#: diagnostic.c:791
+#: cse.c:7195
#, c-format
-msgid "%s: warning: "
-msgstr "%s: uyarı: "
+msgid ";; Processing block from %d to %d, %d sets.\n"
+msgstr ";; %d den %d ye kadar, %d kümelik blok işleniyor.\n"
-#: diagnostic.c:871
+#: diagnostic.c:714
msgid "((anonymous))"
msgstr "((anonim))"
-#: diagnostic.c:941
+#: diagnostic.c:928
#, c-format
msgid "%s: warnings being treated as errors\n"
msgstr "%s: uyarılar hata olarak ele alınıyor\n"
-#: diagnostic.c:978
+#: diagnostic.c:963
#, c-format
msgid "%s: %s: "
msgstr "%s: %s: "
-#: diagnostic.c:1057
-msgid "sorry, not implemented: "
-msgstr "daha kodlanmadı: "
-
-#: diagnostic.c:1076
+#: diagnostic.c:1054
#, c-format
msgid "%s "
msgstr "%s "
-#: diagnostic.c:1078
+#: diagnostic.c:1056
#, c-format
msgid " %s"
msgstr " %s"
-#: diagnostic.c:1102
+#: diagnostic.c:1078
msgid "At top level:"
msgstr "Üst düzeyde:"
-#: diagnostic.c:1107
+#: diagnostic.c:1083
#, c-format
msgid "In member function `%s':"
msgstr "Ãœye iÅŸlev `%s':"
-#: diagnostic.c:1111
+#: diagnostic.c:1087
#, c-format
msgid "In function `%s':"
msgstr "`%s' iÅŸlevinde:"
-#: diagnostic.c:1195
+#: diagnostic.c:1175
msgid "compilation terminated.\n"
msgstr "derleme sonlandırıldı.\n"
-#: diagnostic.c:1227
+#: diagnostic.c:1193
#, c-format
msgid "%s:%d: confused by earlier errors, bailing out\n"
msgstr "%s:%d: önceki hatalar yüzünden bozulmuş, bırakılıyor\n"
-#: diagnostic.c:1242 diagnostic.c:1392
+#: diagnostic.c:1208 diagnostic.c:1316
#, c-format
msgid ""
"Please submit a full bug report,\n"
@@ -4867,23 +4979,23 @@ msgstr ""
"ayrıntılı bir hata raporu gönderin.\n"
"İşlemler için %s adresine bakınız.\n"
-#: diagnostic.c:1390
+#: diagnostic.c:1314
msgid "Internal compiler error: Error reporting routines re-entered.\n"
msgstr "Derleyici iç hatası: Hata raporlama yordamları tekrar girildi.\n"
-#: diagnostic.c:1452
+#: diagnostic.c:1376
#, c-format
-msgid "Internal compiler error in %s, at %s:%d"
-msgstr "%2$s:%3$d. satırındaki %1$s işlevinde derleyici iç hatası"
+msgid "in %s, at %s:%d"
+msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde"
-#: diagnostic.c:1497
+#: diagnostic.c:1397
#, c-format
msgid "In file included from %s:%d"
msgstr ""
"Sırayla bir altındaki dosyada içerilerek:\n"
"\t\t%s:%d"
-#: diagnostic.c:1500
+#: diagnostic.c:1400
#, c-format
msgid ""
",\n"
@@ -4892,52 +5004,61 @@ msgstr ""
",\n"
"\t\t%s:%d"
-#: diagnostic.c:1501
+#: diagnostic.c:1401
msgid ":\n"
msgstr ". satırında:\n"
-#: diagnostic.c:1534 diagnostic.c:1551
+#: diagnostic.c:1445 diagnostic.c:1462
#, c-format
msgid "`%s' is deprecated (declared at %s:%d)"
-msgstr "`%s' yakında kaldırılacak (%s:%d. satırında bildirilmiş)"
+msgstr "`%s' eski kullanım (%s:%d. satırında bildirilmiş)"
-#: diagnostic.c:1554
+#: diagnostic.c:1465
#, c-format
msgid "`%s' is deprecated"
-msgstr "`%s' yakında kaldırılacak"
+msgstr "`%s' eski kullanım"
-#: diagnostic.c:1557
+#: diagnostic.c:1468
#, c-format
msgid "type is deprecated (declared at %s:%d)"
-msgstr "tür yakında kaldırılacak (%s:%d. satırında bildirilmiş)"
+msgstr "tür eski kullanım (%s:%d. satırında bildirilmiş)"
-#: diagnostic.c:1560
+#: diagnostic.c:1471
msgid "type is deprecated"
-msgstr "tür yakında kaldırılacak"
+msgstr "tür eski kullanım"
+
+#: dominance.c:728
+#, c-format
+msgid "dominator of %d should be %d, not %d"
+msgstr "%d nin önceli %d olmalı, %d değil"
-#: dwarf2out.c:3056
+#: dwarf2out.c:3135
#, c-format
msgid "DW_LOC_OP %s not implemented\n"
msgstr "DW_LOC_OP %s daha yazılmadı\n"
-#: dwarfout.c:2089
+#: dwarfout.c:2066
#, c-format
-msgid "internal regno botch: regno = %d\n"
-msgstr "iç yazmaç numarası beceriksizce: regno = %d\n"
+msgid "internal regno botch: `%s' has regno = %d\n"
+msgstr "iç yazmaç numarası beceriksizce: `%s' regno içeriyor = %d\n"
-#: dwarfout.c:6291
+#: dwarfout.c:6181
+msgid "support for the DWARF1 debugging format is deprecated"
+msgstr "DWARF1 hata ayıklama biçimi artık desteklenmeyecek"
+
+#: dwarfout.c:6278
msgid "can't get current directory"
msgstr "çalışılan dizin alınamıyor"
-#: emit-rtl.c:1098
+#: emit-rtl.c:1155
msgid "can't access real part of complex value in hard register"
msgstr "donanım yazmacındaki karmaşık değerin gerçek kısmına erişilemez"
-#: emit-rtl.c:1120
+#: emit-rtl.c:1177
msgid "can't access imaginary part of complex value in hard register"
msgstr "donanım yazmacında karmaşık değerin sanal kısmına erişilemez"
-#: emit-rtl.c:3271
+#: emit-rtl.c:3402
msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
msgstr "ICE: emit_jump_insn gereken yerde emit_insn kullanılmış:\n"
@@ -4946,93 +5067,100 @@ msgstr "ICE: emit_jump_insn gereken yerde emit_insn kullanılmış:\n"
msgid "abort in %s, at %s:%d"
msgstr "%2$s dosyasının %3$d. satırındaki %1$s işlevinde programdan çıkış"
-#: except.c:382
+#: except.c:369
msgid "exception handling disabled, use -fexceptions to enable"
msgstr "olağandışılık yakalaması iptal edildi, etkinleştirmek için -fexceptions kullanın"
-#: except.c:3235
+#: except.c:2994
msgid "argument of `__builtin_eh_return_regno' must be constant"
msgstr "`__builtin_eh_return_regno' argümanı sabit olmalı"
-#: except.c:3346 except.c:3368
+#: except.c:3137
msgid "__builtin_eh_return not supported on this target"
msgstr "__builtin_eh_return bu hedefte desteklenmiyor"
-#: explow.c:1369
+#: explow.c:1408
msgid "stack limits not supported on this target"
msgstr "bu hedefte yığın sınırları desteklenmiyor"
-#: expr.c:2948
+#: expr.c:3355
msgid "function using short complex types cannot be inline"
msgstr "short karmaşık türler kullanılan işlevler özümlenemez"
-#: expr.c:5810 expr.c:5819 expr.c:5828 expr.c:5833 expr.c:6120 expr.c:6136
+#: expr.c:6272 expr.c:6281 expr.c:6290 expr.c:6295 expr.c:6604 expr.c:6620
msgid "unsupported wide integer operation"
msgstr "desteklenmeyen uzun tamsayı işlemi"
-#: expr.c:6185
+#: expr.c:6669
#, c-format
msgid "prior parameter's size depends on `%s'"
msgstr "önceki parametrelerin uzunluğu `%s' bağımlı"
-#: expr.c:6531
+#: expr.c:7005
msgid "returned value in block_exit_expr"
msgstr "block_exit_expr'de değer döndü"
-#: final.c:1209
+#. We can't make a bitwise copy of this object, so fail.
+#: expr.c:9202
+msgid "cannot take the address of an unaligned member"
+msgstr "hizalanmamış bir üyenin adresi alınamaz"
+
+#: final.c:1342
msgid "negative insn length"
msgstr "negatif komut uzunluÄŸu"
-#: final.c:2628
+#: final.c:2793
msgid "could not split insn"
msgstr "komut çatallanamadı"
-#: final.c:2976
+#: final.c:3141
msgid "invalid `asm': "
msgstr "geçersiz `asm': "
-#: final.c:3160
+#: final.c:3328
msgid "nested assembly dialect alternatives"
msgstr "iç içe çevirici aksan alternatifleri"
-#: final.c:3177 final.c:3189
+#: final.c:3345 final.c:3357
msgid "unterminated assembly dialect alternative"
msgstr "sonlandırılmamış çevirici aksan alternatifi"
-#: final.c:3233
+#: final.c:3401
#, c-format
msgid "operand number missing after %%-letter"
msgstr "%%-harf'ten sonraki terim numarası eksik"
-#: final.c:3236 final.c:3275
+#: final.c:3404 final.c:3443
msgid "operand number out of range"
msgstr "terim numarası kapsamdışı"
-#: final.c:3294
+#: final.c:3462
#, c-format
msgid "invalid %%-code"
msgstr "%% kodu geçersiz"
-#: final.c:3325
+#: final.c:3493
#, c-format
msgid "`%%l' operand isn't a label"
msgstr "`%%l' terimi bir etiket deÄŸil"
#. We can't handle floating point constants;
#. PRINT_OPERAND must handle them.
-#: final.c:3432 vmsdbgout.c:478 config/i386/i386.c:5315 config/pdp11/pdp11.c:1570
+#: final.c:3600 vmsdbgout.c:466 config/i386/i386.c:6314
+#: config/pdp11/pdp11.c:1573
msgid "floating constant misused"
msgstr "gerçel sayı sabitler desteklenmiyor"
-#: final.c:3488 vmsdbgout.c:535 config/i386/i386.c:5369 config/pdp11/pdp11.c:1617
+#: final.c:3656 vmsdbgout.c:523 config/i386/i386.c:6392
+#: config/pdp11/pdp11.c:1620
msgid "invalid expression as operand"
msgstr "veri öğesi olarak ifade geçersiz"
-#: flow.c:354
+#: flow.c:352
msgid "function might be possible candidate for attribute `noreturn'"
msgstr "işlev `noreturn' özniteliği için olası aday olmalı"
-#: flow.c:359
+#: flow.c:357
msgid "`noreturn' function does return"
msgstr "`noreturn' işlev dönüyor"
@@ -5040,82 +5168,86 @@ msgstr "`noreturn' işlev dönüyor"
msgid "control reaches end of non-void function"
msgstr "denetim void olmayan işlevin sonunu aşıyor"
-#: flow.c:1600
+#: flow.c:1642
msgid "Attempt to delete prologue/epilogue insn:"
msgstr "Önsöz/sonsöz komutlarını silmeye çalışır"
-#: fold-const.c:3135 fold-const.c:3148
+#: fold-const.c:2546 fold-const.c:2559
#, c-format
msgid "comparison is always %d due to width of bit-field"
msgstr "karşılaştırma bit alanının genişliğinden dolayı daima %d"
-#: fold-const.c:4190 fold-const.c:4207
+#: fold-const.c:3753 fold-const.c:3770
#, c-format
msgid "comparison is always %d"
msgstr "karşılaştırma sonucu daima %d"
-#: fold-const.c:4338
+#: fold-const.c:3901
msgid "`or' of unmatched not-equal tests is always 1"
msgstr "eÅŸleÅŸmeyenlerin eÅŸitsizlik testlerininin `or' sonucu daima 1 dir"
-#: fold-const.c:4343
+#: fold-const.c:3906
msgid "`and' of mutually exclusive equal-tests is always 0"
msgstr "bağdaşmayanların eşitlik testlerinin `and' sonucu daima 0 dır"
-#: function.c:906 varasm.c:1530
+#: function.c:884 varasm.c:1503
#, c-format
msgid "size of variable `%s' is too large"
msgstr "`%s' değişkeni çok geniş"
-#: function.c:5445
+#: function.c:3772
+msgid "impossible constraint in `asm'"
+msgstr "`asm' içindeki koşul mümkün değil"
+
+#: function.c:5527
#, c-format
msgid "`%s' might be used uninitialized in this function"
msgstr "`%s' bu işlevde ilklendirilmeden kullanılmış olmalı"
-#: function.c:5452
+#: function.c:5534
#, c-format
msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "değişken `%s' `longjmp' ya da `vfork' tarafından taşırılmış olmalı"
-#: function.c:5471
+#: function.c:5553
#, c-format
msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
msgstr "argüman `%s' `longjmp' ya da `vfork' tarafından taşırılmış olmalı"
-#: function.c:6337
+#: function.c:6420
msgid "function returns an aggregate"
msgstr "işlev bir küme ile dönüyor"
-#: function.c:6856
+#: function.c:6925
#, c-format
msgid "unused parameter `%s'"
msgstr "parametre `%s' kullanılmamış"
-#: gcc.c:1102
+#: gcc.c:1107
#, c-format
msgid "ambiguous abbreviation %s"
msgstr "belirsiz kısaltma %s"
-#: gcc.c:1129
+#: gcc.c:1134
#, c-format
msgid "incomplete `%s' option"
msgstr "tamamlanmamış `%s' seçeneği"
-#: gcc.c:1140
+#: gcc.c:1145
#, c-format
msgid "missing argument to `%s' option"
msgstr "`%s' seçeneğinin argümanı eksik"
-#: gcc.c:1153
+#: gcc.c:1158
#, c-format
msgid "extraneous argument to `%s' option"
msgstr "`%s' seçeneğinde fazladan argüman"
-#: gcc.c:1460
+#: gcc.c:1486
msgid "Using built-in specs.\n"
msgstr "Yerleşik özellikler kullanılıyor.\n"
-#: gcc.c:1634
+#: gcc.c:1667
#, c-format
msgid ""
"Setting spec %s to '%s'\n"
@@ -5124,37 +5256,42 @@ msgstr ""
"Özelik %s '%s' e ayarlanıyor\n"
"\n"
-#: gcc.c:1732
+#: gcc.c:1774
#, c-format
msgid "Reading specs from %s\n"
msgstr "Özellikler %s'den okunuyor\n"
-#: gcc.c:1830 gcc.c:1849
+#: gcc.c:1872 gcc.c:1891
#, c-format
msgid "specs %%include syntax malformed after %ld characters"
msgstr "specs %%include sözdizimi %ld karakterden sonra bozuk"
-#: gcc.c:1857
+#: gcc.c:1899
#, c-format
msgid "could not find specs file %s\n"
msgstr "özellik dosyası %s bulunamadı\n"
-#: gcc.c:1873 gcc.c:1881 gcc.c:1890 gcc.c:1899
+#: gcc.c:1916 gcc.c:1924 gcc.c:1933 gcc.c:1942
#, c-format
msgid "specs %%rename syntax malformed after %ld characters"
msgstr "specs %%rename sözdizimi %ld karakterden sonra bozuk"
-#: gcc.c:1908
+#: gcc.c:1951
#, c-format
msgid "specs %s spec was not found to be renamed"
msgstr "ismi değişecek specs %s özelliği yok"
-#: gcc.c:1915
+#: gcc.c:1958
+#, c-format
+msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+msgstr "%s: '%s' belirtiminin ismi zaten '%s' belirtiminde kullanılmış"
+
+#: gcc.c:1963
#, c-format
msgid "rename spec %s to %s\n"
msgstr "spec %s ismi %s yapılıyor\n"
-#: gcc.c:1917
+#: gcc.c:1965
#, c-format
msgid ""
"spec is '%s'\n"
@@ -5163,25 +5300,25 @@ msgstr ""
"özellik '%s'\n"
"\n"
-#: gcc.c:1930
+#: gcc.c:1978
#, c-format
msgid "specs unknown %% command after %ld characters"
msgstr "%ld. karakterden sonra bilinmeyen specs %% komutu"
-#: gcc.c:1941 gcc.c:1954
+#: gcc.c:1989 gcc.c:2002
#, c-format
msgid "specs file malformed after %ld characters"
msgstr "%ld. karakterden sonra özellikler dosyası bozuk"
-#: gcc.c:2008
+#: gcc.c:2056
msgid "spec file has no spec for linking"
msgstr "özellik dosyası birleştirilecek özellik içermiyor"
-#: gcc.c:2720
+#: gcc.c:2554
msgid "-pipe not supported"
msgstr "-pipe desteklenmiyor"
-#: gcc.c:2774
+#: gcc.c:2609
msgid ""
"\n"
"Go ahead? (y or n) "
@@ -5189,7 +5326,7 @@ msgstr ""
"\n"
"Haydi!? (e / h) "
-#: gcc.c:2873
+#: gcc.c:2735
#, c-format
msgid ""
"Internal error: %s (program %s)\n"
@@ -5200,69 +5337,69 @@ msgstr ""
"Lütfen ayrıntılı bir hata raporu hazırlayın.\n"
"İşlemler için %s adresine bakın."
-#: gcc.c:2891
+#: gcc.c:2753
#, c-format
msgid "# %s %.2f %.2f\n"
msgstr "# %s %.2f %.2f\n"
-#: gcc.c:3024
+#: gcc.c:2883
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Kullanımı: %s [seçenekler] DOSYA...\n"
-#: gcc.c:3025
+#: gcc.c:2884
msgid "Options:\n"
msgstr "Seçenekler:\n"
-#: gcc.c:3027
+#: gcc.c:2886
msgid " -pass-exit-codes Exit with highest error code from a phase\n"
msgstr " -pass-exit-codes Bir safhada en yüksek hata kodu ile çıkar\n"
-#: gcc.c:3028
+#: gcc.c:2887
msgid " --help Display this information\n"
msgstr " --help Bu yardım iletisini gösterir\n"
-#: gcc.c:3029
+#: gcc.c:2888
msgid " --target-help Display target specific command line options\n"
msgstr " --target-help Hedefe özel komut satırı seçeneklerini gösterir\n"
-#: gcc.c:3031
+#: gcc.c:2890
msgid " (Use '-v --help' to display command line options of sub-processes)\n"
msgstr " (Ast süreçlerin komut satırı seçenekleri için '-v --help' kullanın)\n"
-#: gcc.c:3032
+#: gcc.c:2891
msgid " -dumpspecs Display all of the built in spec strings\n"
msgstr " -dumpspecs Bütün yerleşik spec dizgelerini gösterir\n"
-#: gcc.c:3033
+#: gcc.c:2892
msgid " -dumpversion Display the version of the compiler\n"
msgstr " -dumpversion Derleyicinin sürümünü gösterir\n"
-#: gcc.c:3034
+#: gcc.c:2893
msgid " -dumpmachine Display the compiler's target processor\n"
msgstr " -dumpmachine Derleyicilerin hedef işlemcisini gösterir\n"
-#: gcc.c:3035
+#: gcc.c:2894
msgid " -print-search-dirs Display the directories in the compiler's search path\n"
msgstr " -print-search-dirs Derleyicinin arama yolundaki dizinlerini gösterir\n"
-#: gcc.c:3036
+#: gcc.c:2895
msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
msgstr " -print-libgcc-file-name Derleyiciyle eşleşen kitaplığın ismini gösterir\n"
-#: gcc.c:3037
+#: gcc.c:2896
msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
msgstr " -print-file-name=<lib> <lib> kitaplığının tam dosya yolunu gösterir\n"
-#: gcc.c:3038
+#: gcc.c:2897
msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
msgstr " -print-prog-name=<prog> Derleyici elemanı <prog>un tam dosya yolunu gösterir\n"
-#: gcc.c:3039
+#: gcc.c:2898
msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
msgstr " -print-multi-directory libgcc sürümünün kök dizinini gösterir\n"
-#: gcc.c:3040
+#: gcc.c:2899
msgid ""
" -print-multi-lib Display the mapping between command line options and\n"
" multiple library search directories\n"
@@ -5270,93 +5407,99 @@ msgstr ""
" -print-multi-lib Komut satırı seçenekleri ile kitaplık arama dizinleri\n"
" arasındaki eşleşmeleri gösterir\n"
-#: gcc.c:3043
+#: gcc.c:2902
+msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+msgstr " -print-multi-os-directory İS kitaplıklarının göreli dosya yolunu gösterir\n"
+
+#: gcc.c:2903
msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
-msgstr " -Wa,<seçenekler> Virgül ayraçlı <seçenekler> listesini çeviriciye gönderir\n"
+msgstr ""
+" -Wa,<seçenekler> Virgül ayraçlı <seçenekler> listesini çeviriciye\n"
+" gönderir\n"
-#: gcc.c:3044
+#: gcc.c:2904
msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
msgstr " -Wp,<seçenekler> Virgül ayraçlı <seçenekler> listesini önişlemciye gönderir\n"
-#: gcc.c:3045
+#: gcc.c:2905
msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
msgstr " -Wl,<seçenekler> Virgül ayraçlı <seçenekler>i bağlayıcıya gönderir\n"
-#: gcc.c:3046
+#: gcc.c:2906
msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
msgstr " -Xlinker <arg> Bağlayıcıya <arg>ümanı gönderir\n"
-#: gcc.c:3047
+#: gcc.c:2907
msgid " -save-temps Do not delete intermediate files\n"
msgstr " -save-temps Aracı dosyaları silmez\n"
-#: gcc.c:3048
+#: gcc.c:2908
msgid " -pipe Use pipes rather than intermediate files\n"
msgstr " -pipe Aracı dosyalardan ziyade veri yolları kullanılır\n"
-#: gcc.c:3049
+#: gcc.c:2909
msgid " -time Time the execution of each subprocess\n"
msgstr " -time Alt işlemlerin çalıştırılma zamanlaması\n"
-#: gcc.c:3050
+#: gcc.c:2910
msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
msgstr " -specs=<dosya> Yerleşik özellikler yerine <dosya>dakilere zorlar\n"
-#: gcc.c:3051
+#: gcc.c:2911
msgid " -std=<standard> Assume that the input sources are for <standard>\n"
msgstr ""
" -std=<standart> Girdi kaynaklarının bu <standart>da olduğu\n"
" varsayılır\n"
-#: gcc.c:3052
+#: gcc.c:2912
msgid " -B <directory> Add <directory> to the compiler's search paths\n"
msgstr " -B <dizin> Derleyicilerin arama dosya yoluna <dizin>i ekler\n"
-#: gcc.c:3053
+#: gcc.c:2913
msgid " -b <machine> Run gcc for target <machine>, if installed\n"
msgstr " -b <makina> gcc kurulmuşsa hedef <makina> için çalıştırılır\n"
-#: gcc.c:3054
+#: gcc.c:2914
msgid " -V <version> Run gcc version number <version>, if installed\n"
msgstr " -V <sürüm> gcc'nin kurulmuşsa <sürüm> sürümü çalıştırılır\n"
-#: gcc.c:3055
+#: gcc.c:2915
msgid " -v Display the programs invoked by the compiler\n"
msgstr " -v Derleyicinin çalıştırdığı programları gösterir\n"
-#: gcc.c:3056
+#: gcc.c:2916
msgid " -### Like -v but options quoted and commands not executed\n"
msgstr " -### -v gibi ama tırnaklı ve virgüllü seçenekler kullanılmaz\n"
-#: gcc.c:3057
+#: gcc.c:2917
msgid " -E Preprocess only; do not compile, assemble or link\n"
msgstr " -E Sadece önişlem; derleme, çeviri ve ilintileme yapılmaz\n"
-#: gcc.c:3058
+#: gcc.c:2918
msgid " -S Compile only; do not assemble or link\n"
msgstr " -S Sadece derleme; çevirme ve bağlama yapılmaz\n"
-#: gcc.c:3059
+#: gcc.c:2919
msgid " -c Compile and assemble, but do not link\n"
msgstr " -c Derler ve çevirir ancak bağlamaz\n"
-#: gcc.c:3060
+#: gcc.c:2920
msgid " -o <file> Place the output into <file>\n"
msgstr " -o DOSYA Çıktıyı DOSYAya yazar\n"
-#: gcc.c:3061
+#: gcc.c:2921
msgid ""
" -x <language> Specify the language of the following input files\n"
-" Permissable languages include: c c++ assembler none\n"
+" Permissible languages include: c c++ assembler none\n"
" 'none' means revert to the default behavior of\n"
" guessing the language based on the file's extension\n"
msgstr ""
" -x <dil> Aşağıdaki girdi dosyası dilleri belirtilebilir:\n"
" c c++ assembler none\n"
-" 'none' ile dilin girdi dosyasının uzantısından saptanacağı\n"
-" öntanımlı durum belirtilmiş olur\n"
+" 'none' dilin girdi dosyasının uzantısından\n"
+" saptanacağı öntanımlı durum belirtilmiş olur\n"
-#: gcc.c:3068
+#: gcc.c:2928
#, c-format
msgid ""
"\n"
@@ -5372,17 +5515,27 @@ msgstr ""
"Çeviri hatalarını <gnu-tr-u12a@lists.sourceforge.net> adresine bildiriniz.\n"
"\n"
+#: gcc.c:3063
+#, c-format
+msgid "`-%c' option must have argument"
+msgstr "`-%c' seçeneğinde argüman eksik"
+
+#: gcc.c:3085
+#, c-format
+msgid "couldn't run `%s': %s"
+msgstr "`%s' çalıştırılamadı: %s"
+
#. translate_options () has turned --version into -fversion.
-#: gcc.c:3348
+#: gcc.c:3262
#, c-format
msgid "%s (GCC) %s\n"
msgstr "%s (GCC) %s\n"
-#: gcc.c:3349
-msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
-msgstr "Telif Hakkı (C) 2002 Free Software Foundation, Inc.\n"
+#: gcc.c:3263
+msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+msgstr "Telif Hakkı © 2003 Free Software Foundation, Inc.\n"
-#: gcc.c:3351 gcov.c:320
+#: gcc.c:3265 gcov.c:364
msgid ""
"This is free software; see the source for copying conditions. There is NO\n"
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
@@ -5392,69 +5545,62 @@ msgstr ""
"Hiçbir garantisi yoktur; hatta SATILABİLİRLİĞİ veya ŞAHSİ KULLANIMINIZA\n"
"UYGUNLUĞU için bile garanti verilmez.\n"
-#: gcc.c:3450
+#: gcc.c:3366
msgid "argument to `-Xlinker' is missing"
msgstr "`-Xlinker' için argüman belirtilmemiş"
-#: gcc.c:3458
+#: gcc.c:3374
msgid "argument to `-l' is missing"
msgstr "`-l' için argüman belirtilmemiş"
-#: gcc.c:3475
+#: gcc.c:3391
msgid "argument to `-specs' is missing"
msgstr "`-specs' için argüman belirtilmemiş"
-#: gcc.c:3490
+#: gcc.c:3406
msgid "argument to `-specs=' is missing"
msgstr "`-specs=' için argüman belirtilmemiş"
-#: gcc.c:3521
-msgid "argument to `-b' is missing"
-msgstr "`-b' için argüman belirtilmemiş"
+#: gcc.c:3436
+#, c-format
+msgid "`-%c' must come at the start of the command line"
+msgstr "`-%c' komut satırının başında olmalı"
-#: gcc.c:3536
+#: gcc.c:3445
msgid "argument to `-B' is missing"
msgstr "`-B' için argüman belirtilmemiş"
-#: gcc.c:3606
-msgid "argument to `-V' is missing"
-msgstr "`-V' için argüman belirtilmemiş"
-
-#: gcc.c:3627 gcc.c:3634 gcc.c:3641
-msgid "invalid version number format"
-msgstr "sürüm numarası biçemi geçersiz"
-
-#: gcc.c:3752
+#: gcc.c:3618
msgid "cannot specify -o with -c or -S and multiple compilations"
msgstr "-o çoklu derlemeler, -c ya da -S ile kullanılamaz"
-#: gcc.c:3923
+#: gcc.c:3791
msgid "warning: -pipe ignored because -save-temps specified"
msgstr "Uyarı: -save-temps belirtildiğinden -pipe yoksayıldı"
-#: gcc.c:3927
+#: gcc.c:3795
msgid "warning: -pipe ignored because -time specified"
msgstr "Uyarı: -time belirtildiğinden -pipe yoksayıldı"
-#: gcc.c:3939
+#: gcc.c:3807
msgid "argument to `-x' is missing"
msgstr "`-x' için argüman belirtilmemiş"
-#: gcc.c:3967
+#: gcc.c:3835
#, c-format
msgid "argument to `-%s' is missing"
msgstr "`-%s' için argüman belirtilmemiş"
-#: gcc.c:4028
+#: gcc.c:3896
#, c-format
msgid "warning: `-x %s' after last input file has no effect"
msgstr "Uyarı: son girdi dosyasından sonraki `-x %s' etkisiz"
-#: gcc.c:4327
+#: gcc.c:4241
msgid "invalid specification! Bug in cc"
msgstr "özellik geçersiz! cc'de yazılım hatası."
-#: gcc.c:4476
+#: gcc.c:4395
#, c-format
msgid "%s\n"
msgstr "%s\n"
@@ -5462,51 +5608,74 @@ msgstr "%s\n"
#. Catch the case where a spec string contains something like
#. '%{foo:%*}'. ie there is no * in the pattern on the left
#. hand side of the :.
-#: gcc.c:5029
+#: gcc.c:4955
#, c-format
msgid "spec failure: '%%*' has not been initialized by pattern match"
msgstr "özellik aksaması: '%%*' kalıp eşleştirerek ilklendirilemedi"
-#: gcc.c:5038
+#: gcc.c:4964
#, c-format
msgid "warning: use of obsolete %%[ operator in specs"
-msgstr "Uyarı: spec'lerde %%[ işlemimi artık kullanılmıyor"
+msgstr "Uyarı: spec'lerde %%[ işleci artık kullanılmıyor"
-#: gcc.c:5056
+#: gcc.c:4982
#, c-format
msgid "Processing spec %c%s%c, which is '%s'\n"
msgstr "'%4$s' %1$c%2$s%3$c özelliği işleniyor\n"
-#: gcc.c:5181
+#: gcc.c:5107
#, c-format
msgid "spec failure: unrecognized spec option '%c'"
msgstr "Özellik aksaması: özellik seçeneği '%c' anlaşılamadı"
-#: gcc.c:5291
+#: gcc.c:5188
+#, c-format
+msgid "unknown spec function `%s'"
+msgstr "bilinmeyen `%s' spec iÅŸlevi"
+
+#: gcc.c:5207
+#, c-format
+msgid "error in args to spec function `%s'"
+msgstr "`%s' spec işlevi için argümanlar hatalı"
+
+#: gcc.c:5256
+msgid "malformed spec function name"
+msgstr "bozuk spec iÅŸlevi ismi"
+
+#. )
+#: gcc.c:5259
+msgid "no arguments for spec function"
+msgstr "spec işlevi için argüman belirtilmedi"
+
+#: gcc.c:5278
+msgid "malformed spec function arguments"
+msgstr "belirtim işlevi argümanları bozuk"
+
+#: gcc.c:5386
msgid "mismatched braces in specs"
msgstr "özellikler içinde eşleşmeyen parantezler"
-#: gcc.c:5969
+#: gcc.c:6081
#, c-format
msgid "unrecognized option `-%s'"
msgstr "`-%s' seçeneği bilinmiyor"
-#: gcc.c:5975
+#: gcc.c:6087
#, c-format
msgid "install: %s%s\n"
msgstr "kurulum: %s%s\n"
-#: gcc.c:5976
+#: gcc.c:6088
#, c-format
msgid "programs: %s\n"
msgstr "programlar: %s\n"
-#: gcc.c:5977
+#: gcc.c:6089
#, c-format
msgid "libraries: %s\n"
msgstr "kitaplıklar: %s\n"
-#: gcc.c:6025
+#: gcc.c:6146
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
@@ -5514,56 +5683,56 @@ msgstr ""
"\n"
"Hata raporlama işlemleri için:\n"
-#: gcc.c:6041
+#: gcc.c:6162
#, c-format
msgid "Configured with: %s\n"
msgstr ""
"%s\n"
"seçenekleriyle yapılandırıldı.\n"
-#: gcc.c:6055
+#: gcc.c:6176
#, c-format
msgid "Thread model: %s\n"
-msgstr "Kanallama modeli: %s\n"
+msgstr "Evre modeli: %s\n"
-#: gcc.c:6066
+#: gcc.c:6187
#, c-format
msgid "gcc version %s\n"
msgstr "gcc %s sürümü\n"
-#: gcc.c:6068
+#: gcc.c:6189
#, c-format
msgid "gcc driver version %s executing gcc version %s\n"
msgstr "gcc sürücüsü %s sürümü gcc %s sürümünü çalıştırıyor\n"
-#: gcc.c:6076
+#: gcc.c:6197
msgid "no input files"
msgstr "girdi dosyası yok"
-#: gcc.c:6114
+#: gcc.c:6235
#, c-format
msgid "%s: %s compiler not installed on this system"
msgstr "%s: %s derleyici bu sitemde kurulu deÄŸil"
-#: gcc.c:6189
+#: gcc.c:6310
#, c-format
msgid "%s: linker input file unused because linking not done"
msgstr "%s: birleştirme yapılmadığından birleştirici girdi dosyası kullanılmadı"
-#: gcc.c:6232
+#: gcc.c:6353
#, c-format
msgid "language %s not recognized"
msgstr "dil %s tanınmıyor"
-#: gcc.c:6335
+#: gcc.c:6456
msgid "internal gcc abort"
msgstr "dahili gcc çıkışı"
-#: gcov.c:282
+#: gcov.c:325
msgid "Internal gcov abort.\n"
msgstr "Dahili gcov çıkışı.\n"
-#: gcov.c:295
+#: gcov.c:338
msgid ""
"Usage: gcov [OPTION]... SOURCEFILE\n"
"\n"
@@ -5571,7 +5740,7 @@ msgstr ""
"Kullanımı: gcov [SEÇENEK]... KAYNAKDOSYASI\n"
"\n"
-#: gcov.c:296
+#: gcov.c:339
msgid ""
"Print code coverage information.\n"
"\n"
@@ -5579,29 +5748,29 @@ msgstr ""
"Kodu çevreleyen bilgileri gösterir\n"
"\n"
-#: gcov.c:297
+#: gcov.c:340
msgid " -h, --help Print this help, then exit\n"
msgstr " -h, --help Bu yardım iletisini gösterir ve çıkar\n"
-#: gcov.c:298
+#: gcov.c:341
msgid " -v, --version Print version number, then exit\n"
msgstr " -v, --version Sürüm bilgilerini gösterir ve çıkar\n"
-#: gcov.c:299
+#: gcov.c:342
msgid " -b, --branch-probabilities Include branch probabilities in output\n"
msgstr " -b, --branch-probabilities Çıktıda dallanma olasılıkları da içerilir\n"
-#: gcov.c:300
+#: gcov.c:343
msgid ""
" -c, --branch-counts Given counts of branches taken\n"
" rather than percentages\n"
msgstr " -c, --branch-counts Yüzde yerine dallanma sayısı alınır\n"
-#: gcov.c:302
+#: gcov.c:345
msgid " -n, --no-output Do not create an output file\n"
msgstr " -n, --no-output Bir çıktı dosyası üretilmez\n"
-#: gcov.c:303
+#: gcov.c:346
msgid ""
" -l, --long-file-names Use long output file names for included\n"
" source files\n"
@@ -5609,15 +5778,21 @@ msgstr ""
" -l, --long-file-names İçerilen kaynak dosyaları için uzun çıktı dosyası\n"
" isimleri kullanılır\n"
-#: gcov.c:305
+#: gcov.c:348
msgid " -f, --function-summaries Output summaries for each function\n"
msgstr " -f, --function-summaries Her işlev için özet çıktılar\n"
-#: gcov.c:306
-msgid " -o, --object-directory OBJDIR Search for object files in OBJDIR\n"
-msgstr " -o, --object-directory DİZİN Nesne dosyaları DİZİNde aranır\n"
+#: gcov.c:349
+msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+" -o, --object-directory DZN|DSY Nesne dosyaları DZN içinde ya da DSY\n"
+" dosyasında belirtilen yerlerde aranır\n"
+
+#: gcov.c:350
+msgid " -p, --preserve-paths Preserve all pathname components\n"
+msgstr " -p, --preserve-paths Tüm dosya yolu elemanları saklanır\n"
-#: gcov.c:307
+#: gcov.c:351
#, c-format
msgid ""
"\n"
@@ -5628,265 +5803,469 @@ msgstr ""
"Hata raporlama işlemleri için:\n"
"%s.\n"
-#: gcov.c:317
+#: gcov.c:361
#, c-format
msgid "gcov (GCC) %s\n"
msgstr "gcov (GCC) %s\n"
-#: gcov.c:318
+#: gcov.c:362
msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
msgstr "Telif Hakkı (C) 2001 Free Software Foundation, Inc.\n"
-#: gcov.c:462
+#: gcov.c:500
#, c-format
msgid "Could not open basic block file %s.\n"
msgstr "Temel blok dosyası %s açılamadı.\n"
-#: gcov.c:471
+#: gcov.c:507
+#, c-format
+msgid "Could not open program flow graph file %s.\n"
+msgstr "Program akış diyagramı dosyası %s açılamıyor.\n"
+
+#: gcov.c:524
#, c-format
msgid "Could not open data file %s.\n"
msgstr "%s veri dosyası açılamadı.\n"
-#: gcov.c:472
+#: gcov.c:525
msgid "Assuming that all execution counts are zero.\n"
msgstr "Tüm çalıştırılanların sayısı sıfır kabul ediliyor.\n"
-#: gcov.c:478
-#, c-format
-msgid "Could not open program flow graph file %s.\n"
-msgstr "Program akış diyagramı dosyası %s açılamıyor.\n"
-
-#: gcov.c:489
+#: gcov.c:534
#, c-format
msgid "No executable code associated with file %s.\n"
msgstr "%s dosyası ile ilişkilendirilecek kod yok.\n"
-#: gcov.c:789
-msgid ".da file contents exhausted too early\n"
-msgstr ".da dosyasının içeriği çok erken atıldı\n"
-
-#: gcov.c:792
-msgid ".da file contents not exhausted\n"
-msgstr ".da dosyasının içeriği atılmadı\n"
-
-#: gcov.c:973
+#: gcov.c:1186
#, c-format
-msgid "%6.2f%% of %d source lines executed in function %s\n"
-msgstr "%3$s işlevindeki %2$d satırın %%%1$6.2f satırı çalıştırıldı\n"
+msgid "%s of %d lines executed in %s %s\n"
+msgstr "%3$s dosyasındaki %2$d satırın %1$s satırı çalıştırıldı %4$s\n"
-#: gcov.c:977
+#: gcov.c:1191
#, c-format
-msgid "No executable source lines in function %s\n"
-msgstr "%s işlevinin çalıştırılabilir kaynak satırı yok\n"
+msgid "No executable lines in %s %s\n"
+msgstr "%s içinde çalıştırılacak satır yok %s\n"
-#: gcov.c:984
+#: gcov.c:1198
#, c-format
-msgid "%6.2f%% of %d branches executed in function %s\n"
-msgstr "%3$s işlevindeki %2$d dalın %%%1$6.2f dalı çalıştırıldı\n"
+msgid "%s of %d branches executed in %s %s\n"
+msgstr "%3$s dosyasındaki %2$d daldan %1$s dal çalıştırıldı %4$s\n"
-#: gcov.c:988
+#: gcov.c:1203
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in function %s\n"
-msgstr "%3$s işlevindeki %2$d dalın %%%1$6.2f dalı en az bir kere alındı\n"
+msgid "%s of %d branches taken at least once in %s %s\n"
+msgstr "%3$s dosyasındaki %2$d daldan %1$s dal en az bir kere alındı %4$s\n"
-#: gcov.c:993
+#: gcov.c:1209
#, c-format
-msgid "No branches in function %s\n"
-msgstr "%s işlevinin dalları yok\n"
+msgid "No branches in %s %s\n"
+msgstr "%s dosyasında dal yok %s\n"
-#: gcov.c:995
+#: gcov.c:1211
#, c-format
-msgid "%6.2f%% of %d calls executed in function %s\n"
-msgstr "%3$s işlevindeki %2$d çağrıdan %%%1$6.2f çağrı çalıştırıldı\n"
+msgid "%s of %d calls executed in %s %s\n"
+msgstr "%3$s dosyasındaki %2$d çağrıdan %1$s çağrı çalıştırıldı %4$s\n"
-#: gcov.c:999
+#: gcov.c:1216
#, c-format
-msgid "No calls in function %s\n"
-msgstr "%s işlevinde çağrı yok\n"
+msgid "No calls in %s %s\n"
+msgstr "%s dosyasında çağrı yok %s\n"
-#: gcov.c:1126
+#: gcov.c:1351
#, c-format
msgid "didn't use all bb entries of graph, function %s\n"
msgstr "işlev %s ve diyagramın tüm bb girdileri kullanılmadı\n"
-#: gcov.c:1128
+#: gcov.c:1353
#, c-format
msgid "block_num = %ld, num_blocks = %d\n"
msgstr "blok_num = %ld, blok_sayısı = %d\n"
-#: gcov.c:1166
+#: gcov.c:1367
#, c-format
-msgid "ERROR: too many basic blocks in .bb file %s\n"
-msgstr "HATA: .bb dosyası %s içinde temel blok sayısı çok fazla\n"
+msgid "ERROR: unexpected line number %ld\n"
+msgstr "HATA: satır numarası %ld beklenmiyordu\n"
-#: gcov.c:1243
+#: gcov.c:1383
#, c-format
-msgid "%6.2f%% of %d source lines executed in file %s\n"
-msgstr "%3$s dosyasındaki %2$d satırın %%%1$6.2f satırı çalıştırıldı\n"
+msgid "ERROR: too many basic blocks in function %s\n"
+msgstr "HATA: %s içinde temel blok sayısı çok fazla\n"
-#: gcov.c:1247
+#: gcov.c:1398
#, c-format
-msgid "No executable source lines in file %s\n"
-msgstr "%s dosyasında çalıştırılacak kaynak satırı yok\n"
+msgid "ERROR: out of range line number in function %s\n"
+msgstr "%s işlevindeki satır numarası kapsamdışı\n"
-#: gcov.c:1254
+#: gcov.c:1470
#, c-format
-msgid "%6.2f%% of %d branches executed in file %s\n"
-msgstr "%3$s dosyasındaki %2$d daldan %%%1$6.2f dal çalıştırıldı\n"
+msgid "Could not open source file %s.\n"
+msgstr "%s kaynak dosyası açılamadı.\n"
-#: gcov.c:1258
+#: gcov.c:1480
#, c-format
-msgid "%6.2f%% of %d branches taken at least once in file %s\n"
-msgstr "%3$s dosyasındaki %2$d daldan %%%1$6.2f dal en az bir kere alındı\n"
+msgid "Warning: source file %s is newer than %s\n"
+msgstr "Uyarı: kaynak dosya %s %s den daha yeni\n"
-#: gcov.c:1263
+#: gcov.c:1510
#, c-format
-msgid "No branches in file %s\n"
-msgstr "%s dosyasında dal yok\n"
+msgid "Unexpected EOF while reading source file %s.\n"
+msgstr "%s kaynak dosyası okunurken anlaşılmayan dosya sonu.\n"
-#: gcov.c:1265
+#: gcov.c:1532
#, c-format
-msgid "%6.2f%% of %d calls executed in file %s\n"
-msgstr "%3$s dosyasındaki %2$d çağrıdan %%%1$6.2f çağrı çalıştırıldı\n"
+msgid "call %2d never executed\n"
+msgstr "%2d. çağrı hiç çalıştırılmadı\n"
-#: gcov.c:1269
+#: gcov.c:1535
#, c-format
-msgid "No calls in file %s\n"
-msgstr "%s dosyasında çağrı yok\n"
+msgid "call %2d returns %s\n"
+msgstr "çağrı %2d %s döndürüyor\n"
-#: gcov.c:1281
+#: gcov.c:1543
#, c-format
-msgid "Could not open source file %s.\n"
-msgstr "%s kaynak dosyası açılamadı.\n"
+msgid "branch %2d never executed\n"
+msgstr "%2d. dal hiç çalıştırılmadı\n"
-#: gcov.c:1331
+#: gcov.c:1546
#, c-format
-msgid "Could not open output file %s.\n"
-msgstr "%s çıktı dosyası açılamadı.\n"
+msgid "branch %2d taken %s\n"
+msgstr "%2d. dal alınma sayısı = %s\n"
-#: gcov.c:1339
+#: gcov.c:1610
#, c-format
msgid "Creating %s.\n"
msgstr "%s oluÅŸturuluyor.\n"
-#: gcov.c:1387
+#: gcov.c:1613
#, c-format
-msgid "call %d never executed\n"
-msgstr "%d. çağrı hiç çalıştırılmadı\n"
+msgid "Error writing output file %s.\n"
+msgstr "çıktı dosyası %s yazılırken hata.\n"
-#: gcov.c:1396
+#: gcov.c:1618
#, c-format
-msgid "call %d returns = %s\n"
-msgstr "%d. çağrı dönüş sayısı = %s\n"
+msgid "Could not open output file %s.\n"
+msgstr "%s çıktı dosyası açılamadı.\n"
-#: gcov.c:1406
+#: gcse.c:763
#, c-format
-msgid "call %d returns = %s%%\n"
-msgstr "%d. çağrı dönüş yüzdesi = %%%s\n"
+msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+msgstr ""
+"Genel ortak alt ifade elemesi iptal edildi:\n"
+"%d > 1000 temel blok ve %d >= 20 kenar/temel blok"
-#: gcov.c:1413
+#: gcse.c:775
#, c-format
-msgid "branch %d never executed\n"
-msgstr "%d. dal hiç çalıştırılmadı\n"
+msgid "GCSE disabled: %d basic blocks and %d registers"
+msgstr "Genel ortak alt ifade elemesi iptal edildi: %d temel blok ve %d yazmaç"
-#: gcov.c:1423
+#: genautomata.c:1490
#, c-format
-msgid "branch %d taken = %s\n"
-msgstr "%d. dal alınma sayısı = %s\n"
+msgid "Name `%s' contains quotes"
+msgstr "`%s' ismi tırnak içeriyor"
-#: gcov.c:1433
+#: genautomata.c:1621
#, c-format
-msgid "branch %d taken = %s%%\n"
-msgstr "%d. dal alınma yüzdesi = %%%s\n"
+msgid "invalid string `%s' in define_cpu_unit"
+msgstr "define_cpu_unit içindeki `%s' dizgesi geçersiz"
-#: gcov.c:1444
+#: genautomata.c:1650
#, c-format
-msgid "Unexpected EOF while reading source file %s.\n"
-msgstr "%s kaynak dosyası okunurken anlaşılmayan dosya sonu.\n"
+msgid "invalid string `%s' in define_query_cpu_unit"
+msgstr "define_query_cpu_unit içindeki `%s' dizgesi geçersiz"
-#: gcse.c:758
+#: genautomata.c:1682 genautomata.c:1685
#, c-format
-msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr ""
-"Genel ortak alt ifade elemesi iptal edildi:\n"
-"%d > 1000 temel blok ve %d >= 20 kenar/temel blok"
+msgid "invalid string `%s' in define_bypass"
+msgstr "define_bypass içindeki `%s' dizgesi geçersiz"
-#: gcse.c:770
+#: genautomata.c:1720
#, c-format
-msgid "GCSE disabled: %d basic blocks and %d registers"
-msgstr "Genel ortak alt ifade elemesi iptal edildi: %d temel blok ve %d yazmaç"
+msgid "invalid first string `%s' in exclusion_set"
+msgstr "exclusion_set içindeki ilk `%s' dizgesi geçersiz"
+
+#: genautomata.c:1724
+#, c-format
+msgid "invalid second string `%s' in exclusion_set"
+msgstr "exclusion_set içindeki ikinci `%s' dizgesi geçersiz"
+
+#: genautomata.c:1760
+#, c-format
+msgid "invalid first string `%s' in presence_set"
+msgstr "presence_set içindeki ilk `%s' dizgesi geçersiz"
+
+#: genautomata.c:1764
+#, c-format
+msgid "invalid second string `%s' in presence_set"
+msgstr "presence_set içindeki ikinci `%s' dizgesi geçersiz"
+
+#: genautomata.c:1800
+#, c-format
+msgid "invalid first string `%s' in absence_set"
+msgstr "absence_set içindeki ilk `%s' dizgesi geçersiz"
+
+#: genautomata.c:1804
+#, c-format
+msgid "invalid second string `%s' in absence_set"
+msgstr "absence_set içindeki ikinci `%s' dizgesi geçersiz"
+
+#: genautomata.c:1837
+#, c-format
+msgid "invalid string `%s' in define_automaton"
+msgstr "define_automaton içindeki `%s' dizgesi geçersiz"
+
+#: genautomata.c:1868
+#, c-format
+msgid "invalid option `%s' in automata_option"
+msgstr "automata_option içindeki `%s' dizgesi geçersiz"
+
+#: genautomata.c:1890
+#, c-format
+msgid "garbage after ) in reservation `%s'"
+msgstr "rezervasyon `%s' içindeki ) den sonrası bozuk"
+
+#: genautomata.c:1921 genautomata.c:1954 genautomata.c:1981
+#, c-format
+msgid "invalid `%s' in reservation `%s'"
+msgstr "`%s' ilerde kullanılmak üzere ayrılırken içindeki `%s' dizgesi geçersiz"
+
+#: genautomata.c:1932
+#, c-format
+msgid "repetition `%s' <= 1 in reservation `%s'"
+msgstr "rezervasyon `%s' içindeki `%s' tekrar sayısı <=1"
+
+#: genautomata.c:2425
+#, c-format
+msgid "unit `%s' in exclusion is not declared"
+msgstr "dışlama içindeki birim `%s' bildirilmemiş"
+
+#: genautomata.c:2427
+#, c-format
+msgid "`%s' in exclusion is not unit"
+msgstr "dışlama içindeki `%s' birim değil"
+
+#: genautomata.c:2465
+#, c-format
+msgid "unit `%s' excludes itself"
+msgstr "birim `%s' kendini dışlıyor"
+
+#: genautomata.c:2473
+#, c-format
+msgid "units `%s' and `%s' in exclusion set belong to different automata"
+msgstr "dışlama kümesindeki `%s' ve `%s' birimleri farklı automata'ların üyesi"
+
+#: genautomata.c:2603 genautomata.c:2609
+#, c-format
+msgid "unit `%s' excludes and requires presence of `%s'"
+msgstr "birim `%s' dışlanıyor ve `%s'in varlığını gerektiriyor"
+
+#: genautomata.c:2623 genautomata.c:2629
+#, c-format
+msgid "unit `%s' requires absence and presence of `%s'"
+msgstr "birim `%s', `%s'in varlığını ve yokluğunu gerektirir"
+
+#: genautomata.c:2692 genautomata.c:2695
+#, c-format
+msgid "repeated declaration of automaton `%s'"
+msgstr "automaton `%s' birden fazla bildirilmiÅŸ"
+
+#: genautomata.c:2711
+#, c-format
+msgid "define_insn_reservation `%s' has negative latency time"
+msgstr "define_insn_reservation `%s' negatif gecikme süresine sahip"
+
+#: genautomata.c:2717
+#, c-format
+msgid "`%s' is already used as insn reservation name"
+msgstr "`%s' zaten komut rezervasyon ismi olarak kullanılmış"
+
+#: genautomata.c:2723
+#, c-format
+msgid "define_bypass `%s - %s' has negative latency time"
+msgstr "define_bypass `%s - %s' negatif gecikme süresine sahip"
+
+#: genautomata.c:2737
+#, c-format
+msgid "automaton `%s' is not declared"
+msgstr "automaton `%s' bildirilmedi"
+
+#: genautomata.c:2747
+#, c-format
+msgid "define_unit `%s' without automaton when one defined"
+msgstr "tek atamada automaton'suz define_unit `%s'"
+
+#: genautomata.c:2753
+#, c-format
+msgid "`%s' is declared as cpu unit"
+msgstr "`%s' cpu birimi olarak bildirilmiÅŸ"
+
+#: genautomata.c:2762
+#, c-format
+msgid "`%s' is declared as cpu reservation"
+msgstr "`%s' iÅŸlemci rezervasyonu olarak bildirilmiÅŸ"
+
+#: genautomata.c:2772
+#, c-format
+msgid "repeated declaration of unit `%s'"
+msgstr "birim `%s'in bildirimi tekrarlanmış"
+
+#: genautomata.c:2775
+#, c-format
+msgid "repeated declaration of reservation `%s'"
+msgstr "rezervasyon `%s' birden fazla bildirilmiÅŸ"
-#: graph.c:421 profile.c:950 profile.c:958 toplev.c:1835 toplev.c:4978 f/com.c:14258 java/jcf-parse.c:950 java/jcf-parse.c:1099 java/lex.c:1790 objc/objc-act.c:529
+#: genautomata.c:2790 genautomata.c:2793
+#, c-format
+msgid "there is no insn reservation `%s'"
+msgstr "komut rezervasyonu `%s' yok"
+
+#: genautomata.c:2810 genautomata.c:2815
+#, c-format
+msgid "the same bypass `%s - %s' is already defined"
+msgstr "aynı bypass `%s - %s' zaten tanımlı"
+
+#: genautomata.c:2820
+#, c-format
+msgid "bypass `%s - %s' is already defined"
+msgstr "bypass `%s - %s' zaten tanımlı"
+
+#: genautomata.c:2925 genautomata.c:2927
+#, c-format
+msgid "automaton `%s' is not used"
+msgstr "automaton `%s' kullanılmamış"
+
+#: genautomata.c:2950
+#, c-format
+msgid "undeclared unit or reservation `%s'"
+msgstr "bildirilmemiÅŸ birim ya da rezervasyon `%s'"
+
+#: genautomata.c:3028 genautomata.c:3030
+#, c-format
+msgid "unit `%s' is not used"
+msgstr "birim `%s' kullanılmamış"
+
+#: genautomata.c:3035 genautomata.c:3037
+#, c-format
+msgid "reservation `%s' is not used"
+msgstr "rezervasyon `%s' kullanılmamış"
+
+#: genautomata.c:3134
+#, c-format
+msgid "cycle in definition of reservation `%s'"
+msgstr "rezervasyon `%s'in tanımında döngü"
+
+#: genautomata.c:5333
+#, c-format
+msgid "Units `%s' and `%s' should be in the same automaton"
+msgstr "`%s' ve `%s' aynı automaton içinde olmalıydı"
+
+#: genautomata.c:9441
+msgid "-split has no argument."
+msgstr "-split argümansız."
+
+#: genautomata.c:9442
+msgid "option `-split' has not been implemented yet\n"
+msgstr "`-split' seçeneği henüz programlanmadı\n"
+
+#: genautomata.c:9486 genautomata.c:9491
+#, c-format
+msgid "Automaton `%s': Insn `%s' will never be issued"
+msgstr "Automaton `%s': Komut `%s' hiç kullanılmayacak"
+
+#: genautomata.c:9498 genautomata.c:9501
+#, c-format
+msgid "Insn `%s' will never be issued"
+msgstr "Komut `%s' hiç kullanılmayacak"
+
+#: genautomata.c:9649
+msgid "Errors in DFA description"
+msgstr "DFA açıklamasında hatalar var"
+
+#: genautomata.c:9732
+#, c-format
+msgid "Error in writing DFA description file %s"
+msgstr "DFA açıklama dosyası %s yazılırken hata"
+
+#: genconditions.c:196
+msgid "No input file name."
+msgstr "Girdi dosyası yok."
+
+#: ggc-page.c:1265
+msgid "open /dev/zero"
+msgstr "/dev/zero açık"
+
+#: graph.c:420 profile.c:1204 profile.c:1211 toplev.c:1836 toplev.c:5168
+#: f/com.c:14210 java/jcf-parse.c:917 java/jcf-parse.c:1063 java/lex.c:1776
+#: objc/objc-act.c:449
#, c-format
msgid "can't open %s"
msgstr "%s açılamıyor"
-#: haifa-sched.c:190
+#: haifa-sched.c:196
#, c-format
msgid "fix_sched_param: unknown param: %s"
msgstr "fix_sched_param: bilinmeyen parametre: %s"
-#: integrate.c:185
+#: integrate.c:174
msgid "function cannot be inline"
msgstr "işlev özümlenemez"
-#: integrate.c:190
+#: integrate.c:178
msgid "varargs function cannot be inline"
msgstr "varargs işlevi özümlenemez"
-#: integrate.c:193
+#: integrate.c:181
msgid "function using alloca cannot be inline"
msgstr "alloca kullanarak işlev özümlenemez"
-#: integrate.c:196
+#: integrate.c:184
msgid "function using setjmp cannot be inline"
msgstr "setjmp kullanarak işlev özümlenemez"
-#: integrate.c:199
+#: integrate.c:187
msgid "function uses __builtin_eh_return"
msgstr "işlev __builtin_eh_return kullanıyor"
-#: integrate.c:202
+#: integrate.c:190
msgid "function with nested functions cannot be inline"
msgstr "içiçe işlevleri olan bir işlev özümlenemez"
-#: integrate.c:206
+#: integrate.c:194
msgid "function with label addresses used in initializers cannot inline"
msgstr "başlangıç değerlerinde kullanılmış etiket adresli bir işlev özümlenemez"
-#: integrate.c:213 integrate.c:257
+#: integrate.c:201 integrate.c:245
msgid "function too large to be inline"
msgstr "işlev özümlenmek için fazla büyük"
-#: integrate.c:223
+#: integrate.c:211
msgid "no prototype, and parameter address used; cannot be inline"
msgstr "prototip ve kullanılan parametre adresi yok; özümlenemez"
-#: integrate.c:230 integrate.c:275
+#: integrate.c:218 integrate.c:263
msgid "inline functions not supported for this return value type"
msgstr "bu dönen değer türü için özümlenen işlevler desteklenmiyor"
-#: integrate.c:235
+#: integrate.c:223
msgid "function with varying-size return value cannot be inline"
msgstr "değişken uzunluklu dönen değerli işlevler özümlenemez"
-#: integrate.c:242
+#: integrate.c:230
msgid "function with varying-size parameter cannot be inline"
msgstr "değişken uzunluk parametreli işlevler özümlenemez"
-#: integrate.c:245
+#: integrate.c:233
msgid "function with transparent unit parameter cannot be inline"
msgstr "şeffaf birim parametreli işlevler özümlenemez"
-#: integrate.c:264
+#: integrate.c:252
msgid "function with computed jump cannot inline"
msgstr "hesaplanmış jump bulunan işlevler özümlenemez"
-#: integrate.c:268
+#: integrate.c:256
msgid "function with nonlocal goto cannot be inline"
msgstr "yerel olmayan goto bulunan işlevler özümlenemez"
-#: integrate.c:282
+#: integrate.c:270
msgid "function with target specific attribute(s) cannot be inlined"
msgstr "hedefe özel öznitelikler bulunan işlevler özümlenemez"
@@ -5924,55 +6303,56 @@ msgstr ""
msgid "invalid parameter `%s'"
msgstr "geçersiz parametre `%s'"
-#: profile.c:429
+#: profile.c:397
+#, c-format
+msgid "Profile does not match flowgraph of function %s (out of date?)"
+msgstr "Profil %s işlevinin akış grafiği ile uyumsuz (güncel olmayabilir mi?)"
+
+#: profile.c:400
+msgid ".da file corrupted"
+msgstr ".da dosyası bozulmuş"
+
+#: profile.c:634
#, c-format
msgid "corrupted profile info: prob for %d-%d thought to be %d"
msgstr "bozuk profil bilgisi: %3$d olduğu halde %1$d-%2$d için sonda"
-#: profile.c:975
+#: profile.c:1226
#, c-format
msgid "file %s not found, execution counts assumed to be zero"
msgstr "%s bulunamadı, çalıştırma sayısı sıfır kabul edildi"
-#: profile.c:1022
-msgid ".da file contents exhausted too early"
-msgstr ".da dosyasının içeriği çok erken atıldı"
-
-#: profile.c:1025
-msgid ".da file contents not exhausted"
-msgstr ".da dosyasının içeriği atılmadı"
-
-#: protoize.c:599
+#: protoize.c:542
#, c-format
msgid "%s: internal abort\n"
msgstr "%s: dahili çıkış\n"
-#: protoize.c:690
+#: protoize.c:633
#, c-format
msgid "%s: error writing file `%s': %s\n"
msgstr "%s: `%s' dosyası yazılırken hata: %s\n"
-#: protoize.c:735
+#: protoize.c:678
#, c-format
msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
msgstr "%s: kullanımı '%s [ -VqfnkN ] [ -i <Gdizgesi> ] [ dosya ... ]'\n"
-#: protoize.c:738
+#: protoize.c:681
#, c-format
msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
msgstr "%s: kullanımı '%s [ -VqfnkNlgC ] [ -B <dizin> ] [ dosya ... ]'\n"
-#: protoize.c:845
+#: protoize.c:788
#, c-format
msgid "%s: warning: no read access for file `%s'\n"
msgstr "%s: uyarı: `%s' dosyası için okuma erişimi yok\n"
-#: protoize.c:853
+#: protoize.c:796
#, c-format
msgid "%s: warning: no write access for file `%s'\n"
msgstr "%s: uyarı: `%s' dosyası için yazma erişimi yok\n"
-#: protoize.c:861
+#: protoize.c:804
#, c-format
msgid "%s: warning: no write access for dir containing `%s'\n"
msgstr "%s: uyarı: `%s' dosyasını içeren dizine yazma izni yok\n"
@@ -5980,17 +6360,17 @@ msgstr "%s: uyarı: `%s' dosyasını içeren dizine yazma izni yok\n"
#. Catch cases like /.. where we try to backup to a
#. point above the absolute root of the logical file
#. system.
-#: protoize.c:1279
+#: protoize.c:1222
#, c-format
msgid "%s: invalid file name: %s\n"
msgstr "%s: geçersiz dosya ismi: %s\n"
-#: protoize.c:1431
+#: protoize.c:1374
#, c-format
msgid "%s: %s: can't get status: %s\n"
msgstr "%s: %s: durum alınamıyor: %s\n"
-#: protoize.c:1452
+#: protoize.c:1395
#, c-format
msgid ""
"\n"
@@ -5999,137 +6379,137 @@ msgstr ""
"\n"
"%s: ölümcül hata: yardımcı bilgi dosyası %d. satırda bozulmuş\n"
-#: protoize.c:1788
+#: protoize.c:1731
#, c-format
msgid "%s:%d: declaration of function `%s' takes different forms\n"
msgstr "%s:%d: `%s' işlevinin bildirimi farklı şekiller alıyor\n"
-#: protoize.c:2046
+#: protoize.c:1989
#, c-format
msgid "%s: compiling `%s'\n"
msgstr "%s: `%s' derleniyor\n"
-#: protoize.c:2069
+#: protoize.c:2012
#, c-format
msgid "%s: wait: %s\n"
msgstr "%s: bekliyor: %s\n"
-#: protoize.c:2074
+#: protoize.c:2017
#, c-format
msgid "%s: subprocess got fatal signal %d\n"
msgstr "%s: altyordam %d ölümcül sinyalini aldı\n"
-#: protoize.c:2082
+#: protoize.c:2025
#, c-format
msgid "%s: %s exited with status %d\n"
msgstr "%s: %s %d durumuyla çıktı\n"
-#: protoize.c:2134
+#: protoize.c:2077
#, c-format
msgid "%s: warning: missing SYSCALLS file `%s'\n"
msgstr "%s: uyarı: SYSCALLS dosyası `%s' kayıp\n"
-#: protoize.c:2143 protoize.c:2172
+#: protoize.c:2086 protoize.c:2115
#, c-format
msgid "%s: can't read aux info file `%s': %s\n"
msgstr "%s: yardımcı bilgi dosyası `%s' okunamıyor: %s\n"
-#: protoize.c:2188 protoize.c:2216
+#: protoize.c:2131 protoize.c:2159
#, c-format
msgid "%s: can't get status of aux info file `%s': %s\n"
msgstr "%s: yardımcı bilgi dosyası `%s' için durum alınamıyor: %s\n"
-#: protoize.c:2244
+#: protoize.c:2187
#, c-format
msgid "%s: can't open aux info file `%s' for reading: %s\n"
msgstr "%s: yardımcı bilgi dosyası `%s' okumak için açılamıyor: %s\n"
-#: protoize.c:2262
+#: protoize.c:2205
#, c-format
msgid "%s: error reading aux info file `%s': %s\n"
msgstr "%s: `%s' yardımcı bilgi dosyasında okuma hatası: %s\n"
-#: protoize.c:2275
+#: protoize.c:2218
#, c-format
msgid "%s: error closing aux info file `%s': %s\n"
msgstr "%s: `%s' yardımcı bilgi dosyasında kapama hatası: %s\n"
-#: protoize.c:2291
+#: protoize.c:2234
#, c-format
msgid "%s: can't delete aux info file `%s': %s\n"
msgstr "%s: yardımcı bilgi dosyası `%s' silinemiyor: %s\n"
-#: protoize.c:2373 protoize.c:4375
+#: protoize.c:2316 protoize.c:4318
#, c-format
msgid "%s: can't delete file `%s': %s\n"
msgstr "%s: `%s' silinemiyor: %s\n"
-#: protoize.c:2452
+#: protoize.c:2395
#, c-format
msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
msgstr "%s: uyarı: `%s' dosyasının ismi `%s' yapılamıyor: %s\n"
-#: protoize.c:2577
+#: protoize.c:2520
#, c-format
msgid "%s: conflicting extern definitions of '%s'\n"
msgstr "%s: '%s' extern tanımları çelişiyor\n"
-#: protoize.c:2581
+#: protoize.c:2524
#, c-format
msgid "%s: declarations of '%s' will not be converted\n"
msgstr "%s: '%s' bildirimleri dönüştürülmeyecek\n"
-#: protoize.c:2583
+#: protoize.c:2526
#, c-format
msgid "%s: conflict list for '%s' follows:\n"
msgstr "%s: '%s' için çelişki listesi:\n"
-#: protoize.c:2616
+#: protoize.c:2559
#, c-format
msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
msgstr "%1$s: uyarı: `%4$s' işlevi için biçimseller listesi %2$s(%3$d) den kullanılıyor\n"
-#: protoize.c:2656
+#: protoize.c:2599
#, c-format
msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
msgstr "%s: %d: `%s' kullanıldı ama SYSCALLS dan eksik var\n"
-#: protoize.c:2662
+#: protoize.c:2605
#, c-format
msgid "%s: %d: warning: no extern definition for `%s'\n"
msgstr "%s: %d: uyarı: `%s' için extern tanımı yok\n"
-#: protoize.c:2693
+#: protoize.c:2636
#, c-format
msgid "%s: warning: no static definition for `%s' in file `%s'\n"
msgstr "%s: uyarı: `%s' için `%s' dosyasında ststic tanımı yok\n"
-#: protoize.c:2699
+#: protoize.c:2642
#, c-format
msgid "%s: multiple static defs of `%s' in file `%s'\n"
msgstr "%s: `%s' için `%s' dosyasında çok sayıda static tanımı\n"
-#: protoize.c:2872 protoize.c:2875
+#: protoize.c:2815 protoize.c:2818
#, c-format
msgid "%s: %d: warning: source too confusing\n"
msgstr "%s: %d: uyarı: kaynak çok karışık\n"
-#: protoize.c:3081
+#: protoize.c:3024
#, c-format
msgid "%s: %d: warning: varargs function declaration not converted\n"
msgstr "%s: %d: uyarı: varargs işlev bildirimi dönüştürülmedi\n"
-#: protoize.c:3096
+#: protoize.c:3039
#, c-format
msgid "%s: declaration of function `%s' not converted\n"
msgstr "%s: `%s' işlevinin bildirimi dönüştürülmedi\n"
-#: protoize.c:3219
+#: protoize.c:3162
#, c-format
msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
msgstr "%s: uyarı: `%s' bildiriminde parametre listelerinin sayısı çok fazla\n"
-#: protoize.c:3240
+#: protoize.c:3183
#, c-format
msgid ""
"\n"
@@ -6138,17 +6518,17 @@ msgstr ""
"\n"
"%s: uyarı: `%s' bildiriminde parametre listelerinin sayısı çok az\n"
-#: protoize.c:3338
+#: protoize.c:3281
#, c-format
msgid "%s: %d: warning: found `%s' but expected `%s'\n"
msgstr "%s: %d: uyarı: `%s' bulundu ama `%s' gerekli\n"
-#: protoize.c:3516
+#: protoize.c:3459
#, c-format
msgid "%s: local declaration for function `%s' not inserted\n"
msgstr "%s: `%s' işlevi için yerel bildirim araya eklenmedi\n"
-#: protoize.c:3543
+#: protoize.c:3486
#, c-format
msgid ""
"\n"
@@ -6157,64 +6537,64 @@ msgstr ""
"\n"
"%s: %d: uyarı: makro çağrısına `%s' bildirimi eklenemiyor\n"
-#: protoize.c:3617
+#: protoize.c:3560
#, c-format
msgid "%s: global declarations for file `%s' not inserted\n"
msgstr "%s: `%s' işlevi için genel bildirim araya eklenmedi\n"
-#: protoize.c:3708 protoize.c:3738
+#: protoize.c:3651 protoize.c:3681
#, c-format
msgid "%s: definition of function `%s' not converted\n"
msgstr "%s: %s' işlevinin tanımı dönüştürülmedi\n"
-#: protoize.c:3727
+#: protoize.c:3670
#, c-format
msgid "%s: %d: warning: definition of %s not converted\n"
msgstr "%s: %d: uyarı: %s tanımı dönüştürülmedi\n"
-#: protoize.c:4057
+#: protoize.c:4000
#, c-format
msgid "%s: found definition of `%s' at %s(%d)\n"
msgstr "%s: `%s' tanımı %s(%d) de bulundu\n"
#. If we make it here, then we did not know about this
#. function definition.
-#: protoize.c:4073
+#: protoize.c:4016
#, c-format
msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
msgstr "%s: %d: uyarı: `%s' önişlem tarafından dışlandı\n"
-#: protoize.c:4076
+#: protoize.c:4019
#, c-format
msgid "%s: function definition not converted\n"
msgstr "%s: işlev tanımı dönüştürülmedi\n"
-#: protoize.c:4135
+#: protoize.c:4078
#, c-format
msgid "%s: `%s' not converted\n"
msgstr "%s: `%s' dönüştürülmedi\n"
-#: protoize.c:4143
+#: protoize.c:4086
#, c-format
msgid "%s: would convert file `%s'\n"
msgstr "%s: `%s' dönüşüm dosyası olacaktı\n"
-#: protoize.c:4146
+#: protoize.c:4089
#, c-format
msgid "%s: converting file `%s'\n"
msgstr "%s: `%s' dönüştürülüyor\n"
-#: protoize.c:4156
+#: protoize.c:4099
#, c-format
msgid "%s: can't get status for file `%s': %s\n"
msgstr "%s: `%s' dosyası için durum bilgileri alınamadı: %s\n"
-#: protoize.c:4198
+#: protoize.c:4141
#, c-format
msgid "%s: can't open file `%s' for reading: %s\n"
msgstr "%s: `%s' okumak için açılamadı: %s\n"
-#: protoize.c:4213
+#: protoize.c:4156
#, c-format
msgid ""
"\n"
@@ -6223,420 +6603,398 @@ msgstr ""
"\n"
"%s: girdi dosyası `%s' okunurken hata: %s\n"
-#: protoize.c:4247
+#: protoize.c:4190
#, c-format
msgid "%s: can't create/open clean file `%s': %s\n"
msgstr "%s: temiz dosya `%s' oluşturulamıyor/açılamıyor: %s\n"
-#: protoize.c:4352
+#: protoize.c:4295
#, c-format
msgid "%s: warning: file `%s' already saved in `%s'\n"
msgstr "%s: uyarı: `%s' zaten `%s' içine kaydedilmiş\n"
-#: protoize.c:4360
+#: protoize.c:4303
#, c-format
msgid "%s: can't link file `%s' to `%s': %s\n"
msgstr "%s: `%s' -> `%s' bağı oluşturulamıyor: %s\n"
-#: protoize.c:4390
+#: protoize.c:4333
#, c-format
msgid "%s: can't create/open output file `%s': %s\n"
msgstr "%s: çıktı dosyası `%s' oluşturulamıyor/açılamıyor: %s\n"
-#: protoize.c:4423
+#: protoize.c:4366
#, c-format
msgid "%s: can't change mode of file `%s': %s\n"
msgstr "%s: `%s' dosyasının kipi değiştirilemiyor: %s\n"
-#: protoize.c:4598
+#: protoize.c:4541
#, c-format
msgid "%s: cannot get working directory: %s\n"
msgstr "%s: çalışma dizini alınamıyor: %s\n"
-#: protoize.c:4696
+#: protoize.c:4639
#, c-format
msgid "%s: input file names must have .c suffixes: %s\n"
msgstr "%s: girdi dosyası isimlerinin soneki .c olmalıdır: %s\n"
-#: real.c:824 real.c:1001
-msgid "conversion from NaN to int"
-msgstr "NaN'dan int'e dönüşüm"
-
-#: real.c:847
-msgid "conversion from NaN to unsigned int"
-msgstr "NaN'dan unsigned int'e dönüşüm"
-
-#: real.c:2730
-msgid "floating point overflow"
-msgstr "gerçel sayı taşması"
-
-#: real.c:4395 real.c:6675 real.c:6756
-msgid "overflow on truncation to integer"
-msgstr "tamsayıya indirgemede taşma"
-
-#: real.c:4467
-msgid "overflow on truncation to unsigned integer"
-msgstr "işaretsiz tamsayıya indirgemede taşma"
-
-#: real.c:5812
-#, c-format
-msgid "%s: argument domain error"
-msgstr "%s: argüman alanı hatası"
-
-#: real.c:5813
-#, c-format
-msgid "%s: function singularity"
-msgstr "%s: iÅŸlev eÅŸsizliÄŸi"
-
-#: real.c:5814
-#, c-format
-msgid "%s: overflow range error"
-msgstr "%s: kapsamın üstten taşma hatası"
-
-#: real.c:5815
-#, c-format
-msgid "%s: underflow range error"
-msgstr "%s: kapsamın alttan taşma hatası"
-
-#: real.c:5816
-#, c-format
-msgid "%s: total loss of precision"
-msgstr "%s: tam kesinlik kaybı"
+#: ra.c:750
+msgid "Didn't find a coloring.\n"
+msgstr "Bir renklendirme yok.\n"
-#: real.c:5817
-#, c-format
-msgid "%s: partial loss of precision"
-msgstr "%s: kısmi kesinlik kaybı"
-
-#: real.c:5818
-#, c-format
-msgid "%s: NaN - producing operation"
-msgstr "%s: NaN - işlem üretiyor"
-
-#: reg-stack.c:677
+#: reg-stack.c:673
#, c-format
msgid "output constraint %d must specify a single register"
msgstr "çıktı koşulu %d bir tek yazmaç belirtmeli"
-#: reg-stack.c:687
+#: reg-stack.c:683
#, c-format
msgid "output constraint %d cannot be specified together with \"%s\" clobber"
msgstr "çıktı koşulu %d \"%s\" taşırmasıyla birlikte belirtilemez"
-#: reg-stack.c:710
+#: reg-stack.c:706
msgid "output regs must be grouped at top of stack"
msgstr "çıktı yazmaçları yığının üstünde gruplanmış olmalı"
-#: reg-stack.c:747
+#: reg-stack.c:743
msgid "implicitly popped regs must be grouped at top of stack"
msgstr "örtük olarak emilmiş yazmaçlar yığının üstünde gruplanmalı"
-#: reg-stack.c:766
+#: reg-stack.c:762
#, c-format
msgid "output operand %d must use `&' constraint"
msgstr "çıktı terimi %d `&' kısıtını kullanmalı"
-#: regclass.c:778
+#: regclass.c:756
#, c-format
msgid "can't use '%s' as a %s register"
msgstr "'%s' bir %s yazmacı olarak kullanılamıyor"
-#: regclass.c:793 config/ia64/ia64.c:3840 config/ia64/ia64.c:3847
+#: regclass.c:771 config/ia64/ia64.c:4304 config/ia64/ia64.c:4311
#, c-format
msgid "unknown register name: %s"
msgstr "bilinmeyen yazmaç ismi: %s"
-#: regclass.c:804
+#: regclass.c:782
msgid "global register variable follows a function definition"
msgstr "genel yazmaç değişkeni bir işlev tanımını izliyor"
-#: regclass.c:808
+#: regclass.c:786
msgid "register used for two global register variables"
msgstr "yazmaç iki genel yazmaç değişkeni için kullanılmış"
-#: regclass.c:813
+#: regclass.c:791
msgid "call-clobbered register used for global register variable"
msgstr "çağrı-taşmalı yazmaç genel yazmaç değişkeni için kullanılmış"
-#: regrename.c:1845
+#: regrename.c:1899
#, c-format
msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
msgstr "validate_value_data: [%u] Boş zincir için next_regno hatalı (%u)"
-#: regrename.c:1857
+#: regrename.c:1911
#, c-format
msgid "validate_value_data: Loop in regno chain (%u)"
msgstr "validate_value_data: regno zinciri içinde döngü (%u)"
-#: regrename.c:1860
+#: regrename.c:1914
#, c-format
msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
msgstr "validate_value_data: [%u] oldest_regno hatalı (%u)"
-#: regrename.c:1872
+#: regrename.c:1926
#, c-format
msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
msgstr "validate_value_data: [%u] zincir içinde boş olmayan yazmaç (%s %u %i)"
-#: reload.c:1208
+#: reload.c:1229
msgid "cannot reload integer constant operand in `asm'"
msgstr "`asm' içindeki tamsayı sabit terim yeniden yüklenemiyor"
-#: reload.c:1230
+#: reload.c:1251
msgid "impossible register constraint in `asm'"
msgstr "`asm' içindeki yazmaç şartı mümkün değil"
-#: reload.c:3389
+#: reload.c:3461
msgid "`&' constraint used with no register class"
msgstr "`&' şartı yazmaç sınıfsız kullanılmış"
-#: reload.c:3557
+#: reload.c:3629
msgid "unable to generate reloads for:"
msgstr "aşağıdakiler için yeniden yüklemeler üretilemiyor:"
-#: reload.c:3558 reload.c:3772
+#: reload.c:3630 reload.c:3844
msgid "inconsistent operand constraints in an `asm'"
msgstr "bir `asm' içindeki terim şartı çelişkili"
-#: reload1.c:1247
+#: reload1.c:1250
msgid "frame size too large for reliable stack checking"
msgstr "güvenilir yığın denetimi için çerçeve boyutu çok büyük"
-#: reload1.c:1250
+#: reload1.c:1253
msgid "try reducing the number of local variables"
msgstr "yerel değişkenlerin sayısını azaltmayı deneyin"
-#: reload1.c:1902
+#: reload1.c:1909
#, c-format
msgid "can't find a register in class `%s' while reloading `asm'"
msgstr "`asm' yeniden yüklenirken sınıf `%s' içindeki bir yazmaç ismi bulunamıyor"
-#: reload1.c:1906
+#: reload1.c:1913
#, c-format
msgid "unable to find a register to spill in class `%s'"
msgstr "`%s' sınıfı içinde dökülecek bir yazmaç bulunamadı."
-#: reload1.c:1908
+#: reload1.c:1915
msgid "this is the insn:"
msgstr "bu o komuttur:"
-#: reload1.c:3924
+#: reload1.c:3938
msgid "`asm' operand requires impossible reload"
msgstr "`asm' terimi imkansız yeniden yükleme gerektiriyor"
#. It's the compiler's fault.
-#: reload1.c:5040
+#: reload1.c:5052
msgid "could not find a spill register"
msgstr "bir döküm yazmacı bulunamadı"
-#: reload1.c:5045
+#: reload1.c:5057
msgid "`asm' operand constraint incompatible with operand size"
msgstr "`asm' teriminin koÅŸulu terim boyutu ile uyumsuz"
#. It's the compiler's fault.
-#: reload1.c:6639
+#: reload1.c:6679
msgid "VOIDmode on an output"
msgstr "bir çıktıda VOIDmode"
-#: reload1.c:6640
+#: reload1.c:6680
msgid "output operand is constant in `asm'"
msgstr "`asm' içindeki çıktı terimi bir sabit"
-#: rtl-error.c:139
+#: rtl-error.c:140
msgid "unrecognizable insn:"
msgstr "tanımlanamayan komut:"
-#: rtl-error.c:141
+#: rtl-error.c:142
msgid "insn does not satisfy its constraints:"
msgstr "komut kendi kısıtlarını gözönüne almıyor:"
-#: rtl.c:627
+#: rtl.c:535
#, c-format
msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
msgstr "RTL denetimi: %5$s:%6$d: %4$s işlevindeki son %3$d öğe ile `%2$s' nin %1$d. öğesinin erişimi"
-#: rtl.c:642
+#: rtl.c:550
#, c-format
msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "RTL denetimi: %6$s:%7$d: %5$s içinde öğe %1$d türü olarak '%2$c' umulurken '%3$c' var (rtx %4$s)"
-#: rtl.c:658
+#: rtl.c:566
#, c-format
msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
msgstr "RTL denetimi: %7$s:%8$d: %6$s içinde öğe %1$d türü olarak'%2$c' ya da '%3$c' umulurken '%4$c' var (rtx %5$s)"
-#: rtl.c:671
+#: rtl.c:579
#, c-format
msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
msgstr "RTL denetimi: %4$s:%5$d: %3$s içindeki kod için `%1$s' umulurken `%2$s' var"
-#: rtl.c:685
+#: rtl.c:593
#, c-format
msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
msgstr "RTL denetimi: %5$s:%6$d: %4$s içindeki kod için `%1$s' ya da `%2$s' umulurken `%3$s' var"
-#: rtl.c:700
+#: rtl.c:608
#, c-format
msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
msgstr "RTL denetimi: %4$s:%5$d: %3$s işlevindeki son %2$d öğe ile vektörün %1$d. öğesinin erişimi"
-#: stmt.c:927
+#: rtl.c:623
+#, c-format
+msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+msgstr "RTL seçenek denetimi: %4$s:%5$d: `%1$s' %3$s içinde umulmayan rtx kodu `%2$s' ile kullanılmış"
+
+#: stmt.c:766
#, c-format
msgid "jump to `%s' invalidly jumps into binding contour"
msgstr "`%s' e sıçrama geçersiz olarak bağlama sınırları içinde gerçekleşiyor"
-#: stmt.c:1163 stmt.c:3755
+#: stmt.c:1002 stmt.c:3766
#, c-format
msgid "label `%s' used before containing binding contour"
msgstr "`%s' etiketi kapsanan bağ sınırından önce kullanılmış"
-#: stmt.c:1343
+#: stmt.c:1190
msgid "output operand constraint lacks `='"
msgstr "çıktı terim kısıtı eksiği `='"
-#: stmt.c:1358
+#: stmt.c:1205
#, c-format
msgid "output constraint `%c' for operand %d is not at the beginning"
msgstr "%2$d terimi için çıktı şartı `%1$c' başlangıçta değil"
-#: stmt.c:1380
+#: stmt.c:1227
msgid "operand constraint contains incorrectly positioned '+' or '='"
msgstr "terim kısıtı yanlış konumlu `+' ya da '=' içeriyor"
-#: stmt.c:1386 stmt.c:1486
+#: stmt.c:1233 stmt.c:1337
#, c-format
msgid "`%%' constraint used with last operand"
msgstr "`%%' kısıtı son terimle kullanılmış"
-#: stmt.c:1405
+#: stmt.c:1252
msgid "matching constraint not valid in output operand"
msgstr "eşleşen kısıt çıktı teriminde geçerli değil"
-#: stmt.c:1477
+#: stmt.c:1328
#, c-format
msgid "input operand constraint contains `%c'"
msgstr "girdi terimi kısıtı `%c' içeriyor"
-#: stmt.c:1517
+#: stmt.c:1368
msgid "matching constraint references invalid operand number"
msgstr "kısıt referansları geçersiz terim numaraları eşleştiriyor"
-#: stmt.c:1549
+#: stmt.c:1400
#, c-format
msgid "invalid punctuation `%c' in constraint"
msgstr "koşul içindeki `%c' işareti geçersiz"
-#: stmt.c:1645
+#: stmt.c:1450
+#, c-format
+msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+msgstr "`%s' değişkeni için asm belirtimi, asm taşırma listesi ile çelişiyor"
+
+#: stmt.c:1540
#, c-format
msgid "unknown register name `%s' in `asm'"
msgstr "`asm' içindeki yazmaç ismi `%s' bilinmiyor"
-#: stmt.c:1689
+#: stmt.c:1588
#, c-format
msgid "more than %d operands in `asm'"
msgstr "`asm' içinde %d terimden fazlası var"
-#: stmt.c:1748
+#: stmt.c:1650
#, c-format
msgid "output number %d not directly addressable"
msgstr "çıktı numarası %d doğrudan adreslenebilir değil"
-#. ??? Leave this only until we have experience with what
-#. happens in combine and elsewhere when constraints are
-#. not satisfied.
-#: stmt.c:1817 stmt.c:1846
+#: stmt.c:1728
#, c-format
msgid "asm operand %d probably doesn't match constraints"
msgstr "asm terimi %d belki ÅŸartlara uymaz"
-#: stmt.c:1992
+#: stmt.c:1738
+#, c-format
+msgid "use of memory input without lvalue in asm operand %d is deprecated"
+msgstr "asm terimi %d içindeki sol değersiz bellek girdisi kullanımının modası geçti"
+
+#: stmt.c:1889
+msgid "asm clobber conflict with output operand"
+msgstr "asm taşırıcı çıkış terimi ile çelişiyor"
+
+#: stmt.c:1894
+msgid "asm clobber conflict with input operand"
+msgstr "asm taşırıcı giriş terimi ile çelişiyor"
+
+#: stmt.c:1929
msgid "too many alternatives in `asm'"
msgstr "`asm' içindeki almaşıkların sayısı çok fazla"
-#: stmt.c:2004
+#: stmt.c:1941
msgid "operand constraints for `asm' differ in number of alternatives"
msgstr "`asm' için terim kısıtları farklı almaşık sayısında"
-#: stmt.c:2057
+#: stmt.c:1994
#, c-format
msgid "duplicate asm operand name '%s'"
msgstr "terim ismi '%s' yinelenmiÅŸ"
-#: stmt.c:2144
+#: stmt.c:2081
msgid "missing close brace for named operand"
msgstr "isimi terim için kapama parantezi eksik"
-#: stmt.c:2172
+#: stmt.c:2109
#, c-format
msgid "undefined named operand '%s'"
msgstr "tanımlanmamış isimli terim '%s'"
-#: stmt.c:3692
+#: stmt.c:3703
#, c-format
msgid "unused variable `%s'"
msgstr "değişken `%s' kullanılmamış"
-#: stmt.c:5167
+#: stmt.c:5189
#, c-format
msgid "enumeration value `%s' not handled in switch"
msgstr "sembolik sabit grubu deÄŸeri `%s' switch deyiminde elde edilemedi"
-#: stmt.c:5193 stmt.c:5213
+#: stmt.c:5214 stmt.c:5234
#, c-format
msgid "case value `%ld' not in enumerated type"
msgstr "case deÄŸeri `%ld' sembolik sabit grubunda deÄŸil"
-#: stmt.c:5196 stmt.c:5216
+#: stmt.c:5217 stmt.c:5237
#, c-format
msgid "case value `%ld' not in enumerated type `%s'"
msgstr "case değeri `%ld' sembolik sabit grubu `%s' içinde değil"
-#: stor-layout.c:173
+#: stmt.c:5310
+msgid "switch missing default case"
+msgstr "switch içinde default eksik"
+
+#: stor-layout.c:178
msgid "type size can't be explicitly evaluated"
msgstr "tür boyutu doğrudan değerlendirilemez"
-#: stor-layout.c:175
+#: stor-layout.c:180
msgid "variable-size type declared outside of any function"
msgstr "değişken boyutu türü her işlevin dışında bildirilmiş"
-#: stor-layout.c:456
+#: stor-layout.c:487
#, c-format
msgid "size of `%s' is %d bytes"
msgstr "`%s' için genişlik %d bayt"
-#: stor-layout.c:458
+#: stor-layout.c:489
#, c-format
msgid "size of `%s' is larger than %d bytes"
msgstr "`%s' için genişlik %d bayttan fazla"
-#: stor-layout.c:856 stor-layout.c:1157
+#: stor-layout.c:909 stor-layout.c:1325
#, c-format
msgid "packed attribute causes inefficient alignment for `%s'"
msgstr "paketli öznitelik `%s' için yetersiz hizalama yapar"
-#: stor-layout.c:858 stor-layout.c:1159
+#: stor-layout.c:911 stor-layout.c:1327
#, c-format
msgid "packed attribute is unnecessary for `%s'"
msgstr "paketli öznitelik `%s' için gereksiz"
-#: stor-layout.c:873
+#: stor-layout.c:926
#, c-format
msgid "padding struct to align `%s'"
msgstr "yapı hizalaması `%s' olarak ayarlanıyor"
-#: stor-layout.c:1121
+#: stor-layout.c:1289
msgid "padding struct size to alignment boundary"
msgstr "yapı boyutu hizalama sınırlarına ayarlanıyor"
-#: stor-layout.c:1164
+#: stor-layout.c:1332
msgid "packed attribute causes inefficient alignment"
msgstr "paketli öznitelik yetersiz hizalama yapar"
-#: stor-layout.c:1166
+#: stor-layout.c:1334
msgid "packed attribute is unnecessary"
msgstr "paketli öznitelik gereksiz"
-#: timevar.c:448
+#: timevar.c:322
+#, c-format
+msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+msgstr "timevars yığınının tepesinde '%2$s' olduğunda timevar_pop '%1$s' yapılamaz"
+
+#: timevar.c:453
msgid ""
"\n"
"Execution times (seconds)\n"
@@ -6645,870 +7003,917 @@ msgstr ""
"Çalışma süreleri (saniye)\n"
#. Print total time.
-#: timevar.c:498
+#: timevar.c:503
msgid " TOTAL :"
msgstr " TOPLAM :"
-#: timevar.c:534
+#: timevar.c:539
#, c-format
msgid "time in %s: %ld.%06ld (%ld%%)\n"
msgstr "%s süresi: %ld.%06ld (%%%ld)\n"
-#: tlink.c:428
+#: tlink.c:399
#, c-format
msgid "collect: reading %s\n"
msgstr "collect: %s okunuyor\n"
-#: tlink.c:532
+#: tlink.c:502
#, c-format
msgid "collect: recompiling %s\n"
msgstr "collect: %s yeniden derleniyor\n"
-#: tlink.c:698
+#: tlink.c:674
#, c-format
msgid "collect: tweaking %s in %s\n"
msgstr "collect: %2$s içindeki %1$s şablon zayıflatması\n"
-#: tlink.c:745
+#: tlink.c:721
msgid "collect: relinking\n"
msgstr "collect: yeniden birleştirme yapılıyor\n"
-#: tlink.c:754
+#: tlink.c:730
#, c-format
msgid "ld returned %d exit status"
msgstr "ld çıkış durumu %d ile döndü"
-#: toplev.c:895
+#: toplev.c:920
msgid "Generate debugging info in default format"
-msgstr "Öntanımlı biçemde hata ayıklama bilgisi üretir"
+msgstr "Öntanımlı biçimde hata ayıklama bilgisi üretir"
-#: toplev.c:896
+#: toplev.c:921
msgid "Generate debugging info in default extended format"
msgstr ""
-"Öntanımlı gelişmiş biçemde hata ayıklama bilgisi\n"
+"Öntanımlı gelişmiş biçimde hata ayıklama bilgisi\n"
" üretir"
-#: toplev.c:898
+#: toplev.c:923
msgid "Generate STABS format debug info"
-msgstr "STABS biçemi hata ayıklama bilgisi üretir"
+msgstr "STABS biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:899
+#: toplev.c:924
msgid "Generate extended STABS format debug info"
-msgstr "Gelişmiş STABS biçemi hata ayıklama bilgisi üretir"
+msgstr "Gelişmiş STABS biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:902
+#: toplev.c:927
msgid "Generate DWARF-1 format debug info"
-msgstr "DWARF-1 biçemi hata ayıklama bilgisi üretir"
+msgstr "DWARF-1 biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:904
+#: toplev.c:929
msgid "Generate extended DWARF-1 format debug info"
-msgstr "Gelişmiş DWARF-1 biçemi hata ayıklama bilgisi üretir"
+msgstr "Gelişmiş DWARF-1 biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:907
+#: toplev.c:932
msgid "Generate DWARF-2 debug info"
-msgstr "DWARF-2 biçemi hata ayıklama bilgisi üretir"
+msgstr "DWARF-2 biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:910
+#: toplev.c:935
msgid "Generate XCOFF format debug info"
-msgstr "XCOFF biçemi hata ayıklama bilgisi üretir"
+msgstr "XCOFF biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:911
+#: toplev.c:936
msgid "Generate extended XCOFF format debug info"
-msgstr "Gelişmiş XCOFF biçemi hata ayıklama bilgisi üretir"
+msgstr "Gelişmiş XCOFF biçimi hata ayıklama bilgisi üretir"
-#: toplev.c:914
+#: toplev.c:939
msgid "Generate COFF format debug info"
-msgstr "COFF biçemi hata ayıklama bilgisi üretilir"
+msgstr "COFF biçimi hata ayıklama bilgisi üretilir"
-#: toplev.c:917
+#: toplev.c:942
msgid "Generate VMS format debug info"
-msgstr "VMS biçemi hata ayıklama bilgisi üretilir"
+msgstr "VMS biçimi hata ayıklama bilgisi üretilir"
-#: toplev.c:961
+#: toplev.c:981
msgid "Perform DWARF2 duplicate elimination"
msgstr "DWARF2 yinelenmiş elemesi uygulanır"
-#: toplev.c:963
+#: toplev.c:983
msgid "Do not store floats in registers"
msgstr "Gerçel sayılar yazmaçlarda saklanmaz"
-#: toplev.c:965
+#: toplev.c:985
msgid "Consider all mem refs through pointers as volatile"
msgstr ""
-"Tüm göstergeli bellek referanslarının anlık\n"
+"Tüm göstericili bellek referanslarının anlık\n"
" olduğu varsayılır"
-#: toplev.c:967
+#: toplev.c:987
msgid "Consider all mem refs to global data to be volatile"
msgstr ""
"Global verilerin tüm bellek referanslarının anlık\n"
" olduğu varsayılır"
-#: toplev.c:969
+#: toplev.c:989
msgid "Consider all mem refs to static data to be volatile"
msgstr ""
"Statik verilerin tüm bellek referanslarının anlık\n"
" olduğu varsayılır"
-#: toplev.c:971
+#: toplev.c:991
msgid "Defer popping functions args from stack until later"
msgstr "Yığından işlev argümanlarının çekilmesini erteler"
-#: toplev.c:973
+#: toplev.c:993
msgid "When possible do not generate stack frames"
msgstr "Mümkün olduğunca yığın çerçeveleri üretilmez"
-#: toplev.c:975
+#: toplev.c:995
msgid "Optimize sibling and tail recursive calls"
msgstr "Kardeş ve kuyruk özyinelemeli çağrılar eniyilenir"
-#: toplev.c:977
+#: toplev.c:997
+msgid "Perform superblock formation via tail duplication"
+msgstr "Kuyruk tekrarı üzerinden süperblok oluşumu uygulanır"
+
+#: toplev.c:999
msgid "When running CSE, follow jumps to their targets"
msgstr ""
"Ortak alt ifade elemesi sırasında onların\n"
" hedeflerine dallanmalar izlenir"
-#: toplev.c:979
+#: toplev.c:1001
msgid "When running CSE, follow conditional jumps"
msgstr ""
"Ortak alt ifade elemesi sırasında koşullu\n"
" dallanmalar izlenir"
-#: toplev.c:981
+#: toplev.c:1003
msgid "Perform a number of minor, expensive optimizations"
msgstr "Masraflı eniyilemelerden birkaçını uygular"
-#: toplev.c:983
+#: toplev.c:1005
msgid "Perform jump threading optimizations"
-msgstr "Atlama kanallaması eniyilemesi uygulanır"
+msgstr "Atlama evresi oluşturma eniyilemesi uygulanır"
-#: toplev.c:985
+#: toplev.c:1007
msgid "Perform strength reduction optimizations"
msgstr "Güç azaltma eniyilemesi uygulanır"
-#: toplev.c:987
+#: toplev.c:1009
msgid "Perform loop unrolling when iteration count is known"
msgstr "Yineleme sayısı bilindiğinde ters döngüleme uygulanır"
-#: toplev.c:989
+#: toplev.c:1011
msgid "Perform loop unrolling for all loops"
-msgstr "Tüm döngülere ters döngüleme uygular"
+msgstr "Tüm döngülere ters döngüleme uygulanır"
-#: toplev.c:991
+#: toplev.c:1013
msgid "Generate prefetch instructions, if available, for arrays in loops"
msgstr ""
"Mümkünse, döngülerdeki diziler için önalım\n"
" komutları üretilir"
-#: toplev.c:993
+#: toplev.c:1015
msgid "Force all loop invariant computations out of loops"
msgstr ""
"Döngülerdeki döngü dışına taşınacak olan değişimsiz\n"
" hesaplama etkinleÅŸtirir"
-#: toplev.c:995
+#: toplev.c:1017
msgid "Strength reduce all loop general induction variables"
msgstr ""
"Tüm döngülerdeki genel başlatma değişkenlerinin\n"
" gücünü azaltır"
-#: toplev.c:997
+#: toplev.c:1019
msgid "Store strings in writable data section"
msgstr "Dizgeler yazılabilir veri bölümünde saklanır"
-#: toplev.c:999
+#: toplev.c:1021
msgid "Enable machine specific peephole optimizations"
msgstr "Makinaya özel gözlem deliği eniyilemesi etkinleştirilir"
-#: toplev.c:1001
+#: toplev.c:1023
msgid "Copy memory operands into registers before using"
msgstr ""
"Kullanmadan önce bellek işlemimlerini yazmaçlara\n"
" kopyalar"
-#: toplev.c:1003
+#: toplev.c:1025
msgid "Copy memory address constants into regs before using"
msgstr ""
"Kullanmadan önce bellek adres sabitlerini\n"
" yazmaçlara kopyalar"
-#: toplev.c:1005
+#: toplev.c:1027
msgid "Allow function addresses to be held in registers"
msgstr "Yazmaçlarda tutulan işlev adreslerine izin verilir"
-#: toplev.c:1007
+#: toplev.c:1029
msgid "Integrate simple functions into their callers"
-msgstr "Basit işlevleri onları çağıranların içine gömer"
+msgstr "Basit işlevler onları çağıranların içine gömülür"
-#: toplev.c:1009
+#: toplev.c:1031
msgid "Generate code for funcs even if they are fully inlined"
msgstr ""
"Tamamen özümlenmiş olsalar bile işlevler için kod\n"
" üretilir"
-#: toplev.c:1011
+#: toplev.c:1033
msgid "Pay attention to the 'inline' keyword"
msgstr "'inline' anahtar sözcüğüne dikkat edilir"
-#: toplev.c:1013
+#: toplev.c:1035
msgid "Emit static const variables even if they are not used"
msgstr ""
"Kullanılmamış bile olsa statik sabit değişkenler\n"
" içerilir"
-#: toplev.c:1015
+#: toplev.c:1037
msgid "Check for syntax errors, then stop"
msgstr "Sözdizimi denetimi yaptıktan sonra durur"
-#: toplev.c:1017
+#: toplev.c:1039
msgid "Mark data as shared rather than private"
msgstr "Veriyi özelden çok paylaşımlı olarak imler"
-#: toplev.c:1019
+#: toplev.c:1041
msgid "Enable saving registers around function calls"
msgstr ""
"İşlev çağrıları civarındaki yazmaçların kaydını\n"
" etkinleÅŸtirir"
-#: toplev.c:1021
+#: toplev.c:1043
msgid "Return 'short' aggregates in memory, not registers"
msgstr ""
"Yazmaçlardaki değil bellekteki 'short' küme\n"
" döndürülür"
-#: toplev.c:1023
+#: toplev.c:1045
msgid "Return 'short' aggregates in registers"
msgstr "Yazmaçlardaki 'short' kümeleri döndürülür"
-#: toplev.c:1025
+#: toplev.c:1047
msgid "Attempt to fill delay slots of branch instructions"
msgstr ""
"Dallanma komutlarının gecikme yuvalarını doldurmaya\n"
" çalışır"
-#: toplev.c:1027
+#: toplev.c:1049
msgid "Perform the global common subexpression elimination"
-msgstr "Genel ortak alt ifade elemesi uygular"
+msgstr "Genel ortak alt ifade elemesi uygulanır"
-#: toplev.c:1029
+#: toplev.c:1051
msgid "Perform enhanced load motion during global subexpression elimination"
msgstr ""
"Genel alt ifade elemesi sırasında genişletilmiş yük\n"
" hareketi uygulanır"
-#: toplev.c:1031
+#: toplev.c:1053
msgid "Perform store motion after global subexpression elimination"
msgstr ""
"Genel alt ifade elemesinden sonra saklama hareketi\n"
" uygulanır"
-#: toplev.c:1033
+#: toplev.c:1055
+msgid "Perform the loop optimizations"
+msgstr "Döngü eniyilemesi uygulanır"
+
+#: toplev.c:1057
+msgid "Perform cross-jumping optimization"
+msgstr "Çapraz atlama eniyilemesi uygulanır"
+
+#: toplev.c:1059
+msgid "Perform conversion of conditional jumps to branchless equivalents"
+msgstr ""
+"Dallanmasız karşılıklara koşullu atlama dönüşümü\n"
+" uygulanır"
+
+#: toplev.c:1061
+msgid "Perform conversion of conditional jumps to conditional execution"
+msgstr ""
+"Koşullu çalıştırmaya koşullu atlama dönüşümü\n"
+" uygulanır"
+
+#: toplev.c:1063
msgid "Run CSE pass after loop optimizations"
msgstr "Döngü eniyilemesinden sonra CSE geçişi çalıştırılır"
-#: toplev.c:1035
+#: toplev.c:1065
msgid "Run the loop optimizer twice"
msgstr "Döngü eniyilemesi iki kere çalıştırılır"
-#: toplev.c:1037
+#: toplev.c:1067
msgid "Delete useless null pointer checks"
-msgstr "Kullanışsız null gösterge denetimlerini siler"
+msgstr "Kullanışsız boş gösterici denetimlerini siler"
-#: toplev.c:1039
-msgid "Pretend that host and target use the same FP format"
-msgstr ""
-"Ana ve hedef makina aynı kayan noktalı biçemi\n"
-" kullanıyormuş gibi davranır"
-
-#: toplev.c:1041
+#: toplev.c:1069
msgid "Reschedule instructions before register allocation"
msgstr "Yazmaç tahsisinden önce komutları yeniden zamanlar"
-#: toplev.c:1043
+#: toplev.c:1071
msgid "Reschedule instructions after register allocation"
msgstr "Yazmaç tahsisinden sonra komutları yeniden zamanlar"
-#: toplev.c:1045
+#: toplev.c:1073
msgid "Enable scheduling across basic blocks"
msgstr "Temel bloklar arasında zamanlama etkinleştirilir"
-#: toplev.c:1047
+#: toplev.c:1075
msgid "Allow speculative motion of non-loads"
msgstr "Yük oluşturmayanların tahmini hareketine izin verilir"
-#: toplev.c:1049
+#: toplev.c:1077
msgid "Allow speculative motion of some loads"
msgstr "Bazı yüklerin tahmini hareketine izin verilir"
-#: toplev.c:1051
+#: toplev.c:1079
msgid "Allow speculative motion of more loads"
msgstr "Fazla yüklerin tahmini hareketine izin verilir"
-#: toplev.c:1053
+#: toplev.c:1081
msgid "Replace add,compare,branch with branch on count reg"
msgstr ""
"Ekleme, karşılaştırma, dallanma sayaç üzerinden\n"
" dallanma ile deÄŸiÅŸtirilir"
-#: toplev.c:1055
+#: toplev.c:1083
msgid "Generate position independent code, if possible"
msgstr "Mümkünse, konumdan bağımsız kod üretilir"
-#: toplev.c:1058
+#: toplev.c:1086
msgid "Enable exception handling"
msgstr "Olağandışılıkların yakalanması etkinleştirilir"
-#: toplev.c:1060
+#: toplev.c:1088
msgid "Just generate unwind tables for exception handling"
msgstr ""
"Olağandışılıkların yakalanması için birbirlerini\n"
" etkilemeyenlerin tablosu oluÅŸturulur"
-#: toplev.c:1062
+#: toplev.c:1090
msgid "Generate unwind tables exact at each instruction boundary"
msgstr ""
"Her komut sınırında birbirlerini etkilemeyenlerin\n"
" tablosu kesin oluÅŸturulur"
-#: toplev.c:1064
+#: toplev.c:1092
msgid "Support synchronous non-call exceptions"
msgstr "Eşzamanlı çağrısız olağandışılıklar desteklenir"
-#: toplev.c:1066
+#: toplev.c:1094
msgid "Insert arc based program profiling code"
msgstr "Dal bağlantı kodunu yerleştirir"
-#: toplev.c:1068
+#: toplev.c:1096
msgid "Create data files needed by gcov"
msgstr "gcov için gereken veri dosyaları oluşturulur"
-#: toplev.c:1070
+#: toplev.c:1098
msgid "Use profiling information for branch probabilities"
msgstr ""
"Dallanma olasılıkları için ayrımlama bilgileri\n"
" kullanılır"
-#: toplev.c:1072
+#: toplev.c:1100
+msgid "Enable basic program profiling code"
+msgstr "Temel program profil çıkarma kodu etkinleştirilir"
+
+#: toplev.c:1102
msgid "Reorder basic blocks to improve code placement"
msgstr ""
"Kod yerleşimini iyileştirecek temel blokları\n"
" yeniden sıralar"
-#: toplev.c:1074
+#: toplev.c:1104
+msgid "Reorder functions to improve code placement"
+msgstr ""
+"Kod yerleÅŸimini iyileÅŸtirecek iÅŸlevleri\n"
+" yeniden sıralar"
+
+#: toplev.c:1106
msgid "Do the register renaming optimization pass"
msgstr "Yazmaç isimlendirme eniyilemesi aşamasını uygular"
-#: toplev.c:1076
+#: toplev.c:1108
msgid "Do the register copy-propagation optimization pass"
msgstr "Yazmaç kopya-girişim eniyileme aşaması uygulanır"
-#: toplev.c:1078
+#: toplev.c:1110
msgid "Do not put uninitialized globals in the common section"
msgstr "İlklendirilmemiş global'ler ortak bölüme konmaz"
-#: toplev.c:1080
+#: toplev.c:1112
msgid "Do not generate .size directives"
msgstr ".size yönergeleri üretilmez"
-#: toplev.c:1082
+#: toplev.c:1114
msgid "place each function into its own section"
msgstr "Her işlev kendi bölümüne yerleştirilir"
-#: toplev.c:1084
+#: toplev.c:1116
msgid "place data items into their own section"
msgstr "Veri öğelerini kendi bölümlerine yerleştirir"
-#: toplev.c:1086
-msgid "Add extra commentry to assembler output"
+#: toplev.c:1118
+msgid "Add extra commentary to assembler output"
msgstr "Çevirici çıktısına fazladan açıklama ekler"
-#: toplev.c:1088
+#: toplev.c:1120
msgid "Output GNU ld formatted global initializers"
-msgstr "GNU ld biçemli genel ilklendiricileri çıktılar"
+msgstr "GNU ld biçimli genel ilklendiricileri çıktılar"
-#: toplev.c:1090
+#: toplev.c:1122
msgid "Enables a register move optimization"
msgstr "Bir yazmaç taşıma eniyilemesi etkinleştirilir"
-#: toplev.c:1092
+#: toplev.c:1124
msgid "Do the full regmove optimization pass"
msgstr "Baştan başa yazmaç taşıma eniyilemesi yapar"
-#: toplev.c:1094
+#: toplev.c:1126
msgid "Pack structure members together without holes"
msgstr "Yapı üyelerini birlikte deliksiz paketler"
-#: toplev.c:1096
+#: toplev.c:1128
msgid "Insert stack checking code into the program"
msgstr "Programa yığın denetimi kodu yerleştirilir"
-#: toplev.c:1098
+#: toplev.c:1130
msgid "Specify that arguments may alias each other & globals"
msgstr ""
"Argümanların bir diğerinin ya da globallerin takma\n"
" adı olabileceği varsayılır"
-#: toplev.c:1100
+#: toplev.c:1132
msgid "Assume arguments may alias globals but not each other"
msgstr ""
"Argümanların globallerden başkasına takma ad\n"
" olamayacağı varsayılır"
-#: toplev.c:1102
+#: toplev.c:1134
msgid "Assume arguments do not alias each other or globals"
msgstr ""
"Argümanların bir diğerine ya da globallere takma ad\n"
" olmadığı varsayılır"
-#: toplev.c:1104
+#: toplev.c:1136
msgid "Assume strict aliasing rules apply"
msgstr "Sıkı takma ad kuralları uygulanacağı varsayılır"
-#: toplev.c:1106
+#: toplev.c:1138
msgid "Align the start of loops"
msgstr "Döngü başlangıçları bayt sınırlarına ayarlanır"
-#: toplev.c:1108
+#: toplev.c:1140
msgid "Align labels which are only reached by jumping"
msgstr ""
"Sadece atlanarak ulaşılabilen hedefler bayt\n"
" sınırlarına ayarlanır"
-#: toplev.c:1110
+#: toplev.c:1142
msgid "Align all labels"
msgstr "Tüm dallanma hedefleri bayt sınırlarına ayarlanır"
-#: toplev.c:1112
+#: toplev.c:1144
msgid "Align the start of functions"
msgstr "İşlevlerin başlangıcı hizalanır"
-#: toplev.c:1114
-msgid "Attempt to merge identical constants accross compilation units"
+#: toplev.c:1146
+msgid "Attempt to merge identical constants across compilation units"
msgstr ""
"Özdeş sabitler derleme birimlerine karşın\n"
" katıştırılmaya çalışılır"
-#: toplev.c:1116
+#: toplev.c:1148
msgid "Attempt to merge identical constants and constant variables"
msgstr ""
"Özdeş sabitler ve sabit değişkenler katıştırılmaya\n"
" çalışılır"
-#: toplev.c:1118
+#: toplev.c:1150
msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
msgstr ""
"Hata ayıklama dökümlerinde satır numarası ve komut\n"
" numarası bilgilerinın çıktılanması engellenir"
-#: toplev.c:1120
+#: toplev.c:1152
msgid "Instrument function entry/exit with profiling calls"
msgstr "İşlevlere giriş ve çıkışta kullanım çağrıları üretir"
-#: toplev.c:1122
+#: toplev.c:1154
+msgid "Put zero initialized data in the bss section"
+msgstr "bss bölümüne sıfır ilklendirmeli veri yerleştirilir"
+
+#: toplev.c:1156
msgid "Enable SSA optimizations"
msgstr "SSA eniyilemesi etkinleÅŸtirilir"
-#: toplev.c:1124
+#: toplev.c:1158
msgid "Enable SSA conditional constant propagation"
msgstr "SSA koÅŸullu sabit giriÅŸimi etkinleÅŸtirilir"
-#: toplev.c:1126
+#: toplev.c:1160
msgid "Enable aggressive SSA dead code elimination"
msgstr "Girgin SSA ölü kod elemesi etkinleştirilir"
-#: toplev.c:1128
+#: toplev.c:1162
msgid "External symbols have a leading underscore"
msgstr "Alt çizgi ile başlayan sembollerde uyarır"
-#: toplev.c:1130
+#: toplev.c:1164
msgid "Process #ident directives"
msgstr "#ident yönergeleri işlenir"
-#: toplev.c:1132
+#: toplev.c:1166
msgid "Enables an rtl peephole pass run before sched2"
msgstr ""
"sched2 çalıştırılmadan önce bir rtl gözlem deliği\n"
" aşaması etkinleştirilir"
-#: toplev.c:1134
+#: toplev.c:1168
+msgid "Assume no NaNs or +-Infs are generated"
+msgstr "NaNların ya da +-Inflerin üretilmediği varsayılır"
+
+#: toplev.c:1170
msgid "Enables guessing of branch probabilities"
msgstr "Dallanma olasılığı tahmini etkinleştirilir"
-#: toplev.c:1136
+#: toplev.c:1172
msgid "Set errno after built-in math functions"
msgstr ""
"YerleÅŸik matematik iÅŸlevlerinden sonra ERRNO\n"
" kullanılır"
-#: toplev.c:1138
+#: toplev.c:1174
msgid "Floating-point operations can trap"
msgstr "kayan nokta iÅŸlemleri yakalanabilir"
-#: toplev.c:1140
+#: toplev.c:1176
msgid "Allow math optimizations that may violate IEEE or ANSI standards"
msgstr ""
"IEEE veya ANSI standartlarını bozabilen matematiksel\n"
" eniyilemelere izin verilir"
-#: toplev.c:1142
-msgid "Compile pointers as triples: value, base & end"
-msgstr "Göstergeler bu üçlüden olarak derlenir: değer, taban ve son"
+#: toplev.c:1178
+msgid "Disable optimizations observable by IEEE signaling NaNs"
+msgstr ""
+"IEEE sinyalleme NaNları tarafından farkedilebilen\n"
+" eniyilemeler iptal edilir"
-#: toplev.c:1144
-msgid "Generate code to check bounds before dereferencing pointers and arrays"
+#: toplev.c:1180
+msgid "Generate code to check bounds before indexing arrays"
msgstr ""
-"Başvuru bozan gösterge ve dizilerden önce denetim\n"
-" sınırlarına kod üretilir"
+"Diziler indislenmeden önce sınrlarını\n"
+" denetleyecek kod üretilir"
-#: toplev.c:1146
+#: toplev.c:1182
msgid "Convert floating point constant to single precision constant"
msgstr ""
"Kayan noktalı sabitler tek duyarlıklı sabitlere\n"
" dönüştürülür"
-#: toplev.c:1148
+#: toplev.c:1184
msgid "Report time taken by each compiler pass at end of run"
msgstr ""
"Çalışma bitiminde her derleme aşaması için kullanılan\n"
" zaman raporlanır"
-#: toplev.c:1150
+#: toplev.c:1186
msgid "Report on permanent memory allocation at end of run"
msgstr ""
"Çalıştırma sonunda ayrılan kesintisiz bellek miktarı\n"
" raporlanır"
-#: toplev.c:1152
+#: toplev.c:1188
msgid "Trap for signed overflow in addition / subtraction / multiplication"
msgstr "Toplama, çıkartma, çarpmada signed taşması yakalanır"
-#: toplev.c:1169
-msgid "Compile just for ISO C89"
-msgstr "Sadece ISO C89 için derleme yapılır"
+#: toplev.c:1190
+msgid "Use graph coloring register allocation."
+msgstr "Diyagram renklendiren yazmaç tahsisi kullanılır"
-#: toplev.c:1171
-msgid "Do not promote floats to double if using -traditional"
-msgstr ""
-"-traditional kullanıldığında float türler double\n"
-" yapılmaz"
+#: toplev.c:1207
+msgid "Compile just for ISO C90"
+msgstr "Sadece ISO C90 için derleme yapılır"
-#: toplev.c:1173
+#: toplev.c:1209
msgid "Determine language standard"
msgstr "Dil standartı saptanır"
-#: toplev.c:1177
+#: toplev.c:1213
msgid "Make bit-fields by unsigned by default"
msgstr "Öntanımlı olarak bit alanları unsigned yapılır"
-#: toplev.c:1181
+#: toplev.c:1217
msgid "Make 'char' be signed by default"
msgstr "Öntanımlı olarak 'char' signed yapılır"
-#: toplev.c:1183
+#: toplev.c:1219
msgid "Make 'char' be unsigned by default"
msgstr "Öntanımlı olarak 'char' unsigned yapılır"
-#: toplev.c:1189
-msgid "Attempt to support traditional K&R style C"
-msgstr "Geleneksel K&R tarzı C desteklemeye çalışılır"
-
-#: toplev.c:1195
+#: toplev.c:1225
msgid "Do not recognize the 'asm' keyword"
msgstr "'asm' anahtar sözcüğü tanınmaz"
-#: toplev.c:1198
+#: toplev.c:1228
msgid "Do not recognize any built in functions"
msgstr "Yerleşik işlevlerin hiçbiri tanınmaz"
-#: toplev.c:1200
+#: toplev.c:1230
msgid "Assume normal C execution environment"
msgstr "Normal C çalıştırma ortamı var sayılır"
-#: toplev.c:1203
+#: toplev.c:1233
msgid "Assume that standard libraries & main might not exist"
msgstr ""
"Standart kitaplıkların ve main işlevinin olmadığı\n"
" varsayılır"
-#: toplev.c:1206
+#: toplev.c:1236
msgid "Allow different types as args of ? operator"
msgstr ""
-"? işlemiminin argümanları olarak farklı türlere\n"
+"? işlecinin argümanları olarak farklı türlere\n"
" izin verilir"
-#: toplev.c:1209
+#: toplev.c:1239
msgid "Allow the use of $ inside identifiers"
msgstr "Belirteçlerin içinde $ kullanımına izin verilir"
-#: toplev.c:1214
+#: toplev.c:1244
msgid "Use the same size for double as for float"
msgstr "double türler için de float tür uzunluğu kullanılır"
-#: toplev.c:1217
+#: toplev.c:1247
msgid "Use the smallest fitting integer to hold enums"
msgstr ""
"enum türünü saklamada mümkün en küçük tamsayı tür\n"
" kullanılır"
-#: toplev.c:1220
+#: toplev.c:1250
msgid "Override the underlying type for wchar_t to `unsigned short'"
msgstr ""
"wchar_t için temel tür olarak `unsigned short' a\n"
" zorlar"
-#: toplev.c:1224
+#: toplev.c:1254
msgid "Enable most warning messages"
msgstr "Uyarı sıklığı iletileri etkinleştirilir"
-#: toplev.c:1226
+#: toplev.c:1256
msgid "Warn about casting functions to incompatible types"
-msgstr "Uyumsuz türlere çevirim işlevleri hakkında uyarır"
+msgstr "İşlevlerin uyumsuz türlere dönüştürülmesi durumunda uyarır"
-#: toplev.c:1230
+#: toplev.c:1259
msgid "Warn about functions which might be candidates for format attributes"
msgstr ""
-"Biçem öznitelikleri için aday olabilecek işlevler\n"
+"biçim öznitelikleri için aday olabilecek işlevler\n"
" hakkında uyarır"
-#: toplev.c:1233
+#: toplev.c:1262
msgid "Warn about casts which discard qualifiers"
-msgstr "Niteleyicileri iptal eden çevirimler hakkında uyarır"
+msgstr "Niteleyicileri iptal eden tür dönüşümleri hakkında uyarır"
-#: toplev.c:1236
+#: toplev.c:1265
msgid "Warn about subscripts whose type is 'char'"
msgstr "Türü 'char' olan dizi indisleri hakkında uyarır"
-#: toplev.c:1239 toplev.c:1242
+#: toplev.c:1268 toplev.c:1271
msgid "Warn if nested comments are detected"
msgstr "İçiçe açıklamalar saptandığında uyarır"
-#: toplev.c:1245
+#: toplev.c:1274
msgid "Warn about possibly confusing type conversions"
msgstr "Tür dönüşümlerinin olası karışıklığı hakkında uyarır"
-#: toplev.c:1248
+#: toplev.c:1278
+msgid "Do not warn about compile-time integer division by zero"
+msgstr "Derleme anı sıfırla tamsayı bölme taşması için uyarmaz"
+
+#: toplev.c:1280
+msgid "Warn about testing equality of floating point numbers"
+msgstr "Gerçek sayıların eşitlik testleri hakkında uyarır"
+
+#: toplev.c:1283
msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
msgstr ""
-"printf/scanf/strftime/strfmon biçem\n"
+"printf/scanf/strftime/strfmon biçim\n"
" bozuklukları hakkında uyarmaz"
-#: toplev.c:1252
-msgid "Don't warn about strftime formats yielding 2 digit years"
-msgstr ""
-"2 haneli yıllara yer veren strftime biçemler\n"
-" hakkında uyarır"
-
-#: toplev.c:1255
+#: toplev.c:1287
msgid "Don't warn about too many arguments to format functions"
msgstr ""
-"Biçemleme işlevlerine çok fazla argüman\n"
+"biçimleme işlevlerine çok fazla argüman\n"
" verildiÄŸinde uyarmaz"
-#: toplev.c:1257
+#: toplev.c:1289
msgid "Warn about non-string-literal format strings"
msgstr ""
-"Dizge olmayan sabit biçemleme dizgeleri hakkında\n"
+"Dizge olmayan sabit biçimleme dizgeleri hakkında\n"
" uyarır"
-#: toplev.c:1260
+#: toplev.c:1292
msgid "Warn about possible security problems with format functions"
msgstr ""
-"Biçemleme işlevleriyle ilgili olası güvenlik\n"
+"biçimleme işlevleriyle ilgili olası güvenlik\n"
" sorunları hakkında uyarır"
-#: toplev.c:1263
+#: toplev.c:1296
+msgid "Don't warn about strftime formats yielding 2 digit years"
+msgstr ""
+"2 haneli yıllara yer veren strftime biçimler\n"
+" hakkında uyarır"
+
+#: toplev.c:1298
msgid "Warn about implicit function declarations"
msgstr "İşlevlerin dolaylı bildirimlerinde uyarır"
-#: toplev.c:1267
+#: toplev.c:1302
msgid "Warn when a declaration does not specify a type"
msgstr "Bir bildirimde tür belirtilmemişse uyarır"
-#: toplev.c:1272
+#: toplev.c:1307
msgid "Warn about the use of the #import directive"
msgstr "#import yönergesinin kullanımı hakkında uyarır"
-#: toplev.c:1276
+#: toplev.c:1311
msgid "Do not warn about using 'long long' when -pedantic"
msgstr "-pedantic ile 'long long' kullanımı hakkında uyarmaz"
-#: toplev.c:1278
+#: toplev.c:1313
msgid "Warn about suspicious declarations of main"
msgstr "Kuşkulu main bildirimleri hakkında uyarır"
-#: toplev.c:1281
+#: toplev.c:1316
msgid "Warn about possibly missing braces around initializers"
msgstr "İlklendiricileri çevreleyen parantezler yoksa uyarır"
-#: toplev.c:1284
+#: toplev.c:1319
msgid "Warn about global funcs without previous declarations"
msgstr "Önceden bildirilmemiş genel işlevler hakkında uyarır"
-#: toplev.c:1287
+#: toplev.c:1322
msgid "Warn about global funcs without prototypes"
msgstr "Prototipsiz genel işlevler hakkında uyarır"
-#: toplev.c:1290
+#: toplev.c:1325
msgid "Warn about use of multicharacter literals"
msgstr "Çoklu karakter sabitlerinin kullanımı hakkında uyarır"
-#: toplev.c:1293
+#: toplev.c:1328
msgid "Warn about externs not at file scope level"
msgstr ""
"Dosya şemsiyesi altında bulunmayan extern'ler\n"
" hakkında uyarır"
-#: toplev.c:1296
+#: toplev.c:1331
msgid "Warn about possible missing parentheses"
msgstr "Olası eksik parantezler hakkında uyarır"
-#: toplev.c:1299
-msgid "Warn about possible violations of sequence point rules"
-msgstr ""
-"Ardışık nokta kurallarının olası çelişkileri\n"
-" hakkında uyarır"
-
-#: toplev.c:1302
+#: toplev.c:1334
msgid "Warn about function pointer arithmetic"
-msgstr "İşlev göstergesi aritmetiği hakkında uyarır"
+msgstr "İşlev gösterici aritmetiği hakkında uyarır"
-#: toplev.c:1305
+#: toplev.c:1337
msgid "Warn about multiple declarations of the same object"
msgstr "Aynı nesne birden fazla bildirilmişse uyarır"
-#: toplev.c:1308
-msgid "Warn about signed/unsigned comparisons"
-msgstr "signed/unsigned karşılaştırmalarında uyarır"
+#: toplev.c:1340
+msgid "Warn whenever a function's return-type defaults to int"
+msgstr "bir işlevin dönen türü `int'e öntanımlılığında uyarır"
-#: toplev.c:1311
-msgid "Warn about testing equality of floating point numbers"
-msgstr "Gerçek sayıların eşitlik testleri hakkında uyarır"
+#: toplev.c:1343
+msgid "Warn about possible violations of sequence point rules"
+msgstr ""
+"Ardışık nokta kurallarının olası çelişkileri\n"
+" hakkında uyarır"
-#: toplev.c:1314
-msgid "Warn about unrecognized pragmas"
-msgstr "tanımlanamayan #pragma'lar hakkında uyarır"
+#: toplev.c:1346
+msgid "Warn about signed/unsigned comparisons"
+msgstr "signed/unsigned karşılaştırmalarında uyarır"
-#: toplev.c:1317
+#: toplev.c:1349
msgid "Warn about non-prototyped function decls"
msgstr "Prototipsiz işlev bildirimlerinde uyarır"
-#: toplev.c:1320
-msgid "Warn about constructs whose meaning change in ISO C"
-msgstr "ISO C de anlamı değişen kurucular hakkında uyarır"
+#: toplev.c:1352
+msgid "Warn about constructs whose meanings change in ISO C"
+msgstr "ISO C'de anlamı değişen kurucular hakkında uyarır"
-#: toplev.c:1323
+#: toplev.c:1355
msgid "Warn when trigraphs are encountered"
msgstr "Üçlü harfler saptandığında uyarı verilir"
-#: toplev.c:1328
+#: toplev.c:1360
+msgid "Warn about unrecognized pragmas"
+msgstr "tanımlanamayan #pragma'lar hakkında uyarır"
+
+#: toplev.c:1363
msgid "Mark strings as 'const char *'"
msgstr "Dizgeler 'const char *' olarak imlenir"
-#: toplev.c:1458
+#: toplev.c:1508
msgid "Warn when a function is unused"
msgstr "Bir işlev kullanılmamışsa uyarır"
-#: toplev.c:1460
+#: toplev.c:1510
msgid "Warn when a label is unused"
msgstr "Bir etiket kullanılmamışsa uyarır"
-#: toplev.c:1462
+#: toplev.c:1512
msgid "Warn when a function parameter is unused"
msgstr "Bir işlev parametresi kullanılmamışsa uyarır"
-#: toplev.c:1464
+#: toplev.c:1514
msgid "Warn when a variable is unused"
msgstr "Bir değişken kullanılmamışsa uyarır"
-#: toplev.c:1466
+#: toplev.c:1516
msgid "Warn when an expression value is unused"
msgstr "Bir ifade değeri kullanılmamışsa uyarır"
-#: toplev.c:1468
+#: toplev.c:1518
msgid "Do not suppress warnings from system headers"
msgstr "Sistem başlık dosyalarından gelen uyarılar engellenmez"
-#: toplev.c:1470
+#: toplev.c:1520
msgid "Treat all warnings as errors"
msgstr "Tüm uyarıların hata olduğu varsayılır"
-#: toplev.c:1472
+#: toplev.c:1522
msgid "Warn when one local variable shadows another"
msgstr "Bir yerel değişken bir diğerini gölgeliyorsa uyarır"
-#: toplev.c:1474
-msgid "Warn about enumerated switches missing a specific case"
+#: toplev.c:1524
+msgid "Warn about enumerated switches, with no default, missing a case"
msgstr ""
-"Bir switch case'de bir sembolik sabit grubu üyesinin\n"
-" bulunamadığı durumlarda uyarır"
+"Numaralı switch'lerde case eksikse veya\n"
+" default yoksa uyarır"
+
+#: toplev.c:1526
+msgid "Warn about enumerated switches missing a default case"
+msgstr "Numaralı switch'lerde default yoksa uyarır"
+
+#: toplev.c:1528
+msgid "Warn about all enumerated switches missing a specific case"
+msgstr "Numaralı switch'lerde belli bir case eksikse uyarır"
-#: toplev.c:1476
+#: toplev.c:1530
msgid "Warn about returning structures, unions or arrays"
msgstr "Dönen yapı, birleşim ve diziler hakkında uyarır"
-#: toplev.c:1478
+#: toplev.c:1532
msgid "Warn about pointer casts which increase alignment"
-msgstr ""
-"Hizalamayı arttıran gösterge çevirimleri hakkında\n"
-" uyarır"
+msgstr "Hizalamayı arttıran gösterici tür dönüşümlerinde uyarır"
-#: toplev.c:1480
+#: toplev.c:1534
msgid "Warn about code that will never be executed"
msgstr "Hiç çalışmayacak kod hakkında uyarır"
-#: toplev.c:1482
+#: toplev.c:1536
msgid "Warn about uninitialized automatic variables"
msgstr "İlklendirilmemiş otomatik değişkenler hakkında uyarır"
-#: toplev.c:1484
+#: toplev.c:1538
msgid "Warn when an inlined function cannot be inlined"
msgstr "Bir özümlemeli işlev özümlenemediğinde uyarır"
-#: toplev.c:1486
+#: toplev.c:1540
msgid "Warn when the packed attribute has no effect on struct layout"
msgstr "Paketli öznitelik yapı yerleşiminde etkisizse uyarır"
-#: toplev.c:1488
+#: toplev.c:1542
msgid "Warn when padding is required to align struct members"
msgstr ""
"Yapı üyelerini hizalamak için adımlama gerekliyse\n"
" uyarır"
-#: toplev.c:1490
+#: toplev.c:1544
msgid "Warn when an optimization pass is disabled"
msgstr "Bir eniyileme aşaması iptal edildiğinde uyarır"
-#: toplev.c:1492
+#: toplev.c:1546
msgid "Warn about uses of __attribute__((deprecated)) declarations"
msgstr "__attribute__((eskidi)) bildirimlerinde uyarı verir"
-#: toplev.c:1494
+#: toplev.c:1548
msgid "Warn about functions which might be candidates for attribute noreturn"
msgstr ""
"noreturn özelliğine aday olabilecek işlevler\n"
" hakkında uyarı verilir"
-#: toplev.c:1565 toplev.c:4379 tradcpp.c:792
+#: toplev.c:1550
+msgid "Warn about code which might break the strict aliasing rules"
+msgstr ""
+"Adlandırma kurallarının değişmezliğini bozabilen\n"
+" kod varsa uyarır"
+
+#: toplev.c:1627 toplev.c:4548 config/rs6000/rs6000.c:680
#, c-format
msgid "invalid option `%s'"
msgstr "`%s' seçeneği geçersiz"
-#: toplev.c:1711
-#, c-format
-msgid "internal error: %s"
-msgstr "iç hata: %s"
-
-#: toplev.c:2024
+#: toplev.c:2031
#, c-format
msgid "`%s' used but never defined"
msgstr "`%s' tanımlanmadan kullanılmış"
-#: toplev.c:2027
+#: toplev.c:2034
#, c-format
msgid "`%s' declared `static' but never defined"
msgstr "`static' olarak bildirilen `%s' hiç atanmamış"
-#: toplev.c:2049
+#: toplev.c:2057
#, c-format
msgid "`%s' defined but not used"
msgstr "`%s' atanmış ama kullanılmamış"
@@ -7518,36 +7923,31 @@ msgstr "`%s' atanmış ama kullanılmamış"
msgid "invalid register name `%s' for register variable"
msgstr "yazmaç değişkeni için yazmaç ismi `%s' geçersiz"
-#: toplev.c:3279
-#, c-format
-msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
-msgstr "crossjump iptal edildi: %d > 1000 temel blok ve %d >= 20 kenar/temel blok"
-
-#: toplev.c:3590
+#: toplev.c:3697
msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
msgstr " -ffixed-YAZMAÇ Derleyiciye YAZMAÇ kullanışsız olarak belirtilir\n"
-#: toplev.c:3591
+#: toplev.c:3698
msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
msgstr ""
" -fcall-used-YAZMAÇ YAZMAÇ işlev çağrıları tarafından bozulmuş olan\n"
" olarak imlenir\n"
-#: toplev.c:3592
+#: toplev.c:3699
msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
msgstr " -fcall-saved-YAZMAÇ YAZMAÇ işlevlere karşı korunmuş olan olarak imlenir\n"
-#: toplev.c:3593
+#: toplev.c:3700
msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
msgstr " -finline-limit=SAYI Özümlenen işlevlerin uzunluğu SAYI ile sınırlanır\n"
-#: toplev.c:3594
+#: toplev.c:3701
msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
msgstr ""
" -fmessage-length=SAYI Tanı iletilerinin uzunluğu her satırda SAYI\n"
" karakterle sınırlanır. 0 satır sarmalamayı engeller\n"
-#: toplev.c:3595
+#: toplev.c:3702
msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
msgstr ""
" -fdiagnostics-show-location=[once | every-line]\n"
@@ -7555,55 +7955,68 @@ msgstr ""
" konumu bilgisinin ne sıklıkta gösterileceği\n"
" belirtilir. once: bir kere, every-line: her satırda\n"
-#: toplev.c:3606
+#: toplev.c:3703
+msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+msgstr ""
+" -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec]\n"
+" Öntanımlı yerel evreli saklama kodu üretim\n"
+" modelini belirtilir\n"
+
+#: toplev.c:3704
+msgid " -fstack-limit-register=<register> Trap if the stack goes past <register>\n"
+msgstr " -fstack-limit-register=<yazmaç> Yığıt <yazmaç>ı aşarsa yakalanır\n"
+
+#: toplev.c:3705
+msgid " -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"
+msgstr " -fstack-limit-symbol=<isim> Yığıt <isim> sembolünü aşarsa yakalanır\n"
+
+#: toplev.c:3706
+msgid " -frandom-seed=<string> Make compile reproducible using <string>\n"
+msgstr ""
+" -frandom-seed=<dizge> <dizge> kullanılarak derlemeyi yeniden türetilebilir\n"
+" yapar\n"
+
+#: toplev.c:3718
msgid " -O[number] Set optimization level to [number]\n"
msgstr " -O[SAYI] Eniyileme seviyesi SAYI olarak ayarlanır\n"
-#: toplev.c:3607
+#: toplev.c:3719
msgid " -Os Optimize for space rather than speed\n"
msgstr " -Os Hızdan çok boyut eniyilemesi yapılır\n"
-#: toplev.c:3619
+#: toplev.c:3731
msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
msgstr " -pedantic ISO C uyumu için gereken uyarılar üretilir.\n"
-#: toplev.c:3620
+#: toplev.c:3732
msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
msgstr " -pedantic-errors Üretilen hatalar dışında -pedantic gibi\n"
-#: toplev.c:3621
+#: toplev.c:3733
msgid " -w Suppress warnings\n"
msgstr " -w Uyarılar engellenir\n"
-#: toplev.c:3622
+#: toplev.c:3734
msgid " -W Enable extra warnings\n"
msgstr " -W Fazladan uyarılar da verilir\n"
-#: toplev.c:3633
+#: toplev.c:3745
msgid " -Wunused Enable unused warnings\n"
msgstr " -Wunused Faydasız uyarılar da verilir\n"
-#: toplev.c:3634
+#: toplev.c:3746
msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
msgstr " -Wlarger-than-SAYI Bir nesne SAYI bayttan büyükse uyarır\n"
-#: toplev.c:3635
+#: toplev.c:3747
msgid " -p Enable function profiling\n"
msgstr " -p İşlev ayrımlaması etkinleştirilir\n"
-#: toplev.c:3637
-msgid " -a Enable block profiling \n"
-msgstr " -a Blok ayrımlaması etkinleştirilir\n"
-
-#: toplev.c:3640
-msgid " -ax Enable jump profiling \n"
-msgstr " -ax Atlama ayrımlaması etkinleştirilir\n"
-
-#: toplev.c:3642
+#: toplev.c:3748
msgid " -o <file> Place output into <file> \n"
msgstr " -o DOSYA Çıktı DOSYAya yazılır\n"
-#: toplev.c:3643
+#: toplev.c:3749
msgid ""
" -G <number> Put global and static data smaller than <number>\n"
" bytes into a special section (on some targets)\n"
@@ -7611,35 +8024,35 @@ msgstr ""
" -G SAYI Global ve static verileri SAYI bayttan daha\n"
" küçükse (bazı hedeflerdeki) bir özel bölüme koyar\n"
-#: toplev.c:3654
+#: toplev.c:3760
msgid " -aux-info <file> Emit declaration info into <file>\n"
msgstr " -aux-info DOSYA Bildirim bilgileri DOSYAda gösterilir\n"
-#: toplev.c:3655
+#: toplev.c:3761
msgid " -quiet Do not display functions compiled or elapsed time\n"
msgstr " -quiet Derlenen işlevler ve geçen zaman gösterilmez\n"
-#: toplev.c:3656
+#: toplev.c:3762
msgid " -version Display the compiler's version\n"
msgstr " -version Derleyicinin sürüm bilgileri gösterilir\n"
-#: toplev.c:3657
+#: toplev.c:3763
msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
msgstr " -d[HARFLER] Derleyici aşamalarının dökümlenmesi etkinleştirilir\n"
-#: toplev.c:3658
+#: toplev.c:3764
msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
msgstr " -dumpbase DOSYA Derleyici aşamalarının dökümleneceği DOSYA\n"
-#: toplev.c:3660
+#: toplev.c:3766
msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
msgstr " -fsched-verbose=SAYI Zamanlama için ayrıntı düzeyi belirtilir\n"
-#: toplev.c:3662
+#: toplev.c:3768
msgid " --help Display this information\n"
msgstr " --help Bu yardım iletisi gösterilir\n"
-#: toplev.c:3677
+#: toplev.c:3783
msgid ""
"\n"
"Language specific options:\n"
@@ -7647,12 +8060,12 @@ msgstr ""
"\n"
"Dile özel seçenekler:\n"
-#: toplev.c:3689
+#: toplev.c:3795
#, c-format
msgid " %-23.23s [undocumented]\n"
msgstr " %-23.23s [belgelenemeyen]\n"
-#: toplev.c:3697 toplev.c:3711
+#: toplev.c:3803 toplev.c:3817
#, c-format
msgid ""
"\n"
@@ -7661,7 +8074,7 @@ msgstr ""
"\n"
"Halen belgelenememiş %s seçenek daha var.\n"
-#: toplev.c:3701
+#: toplev.c:3807
#, c-format
msgid ""
"\n"
@@ -7670,7 +8083,7 @@ msgstr ""
"\n"
" %s seçenekleri:\n"
-#: toplev.c:3738
+#: toplev.c:3844
msgid ""
"\n"
"Target specific options:\n"
@@ -7678,12 +8091,12 @@ msgstr ""
"\n"
"Hedefe özel seçenekler:\n"
-#: toplev.c:3752 toplev.c:3771
+#: toplev.c:3858 toplev.c:3877
#, c-format
msgid " -m%-23.23s [undocumented]\n"
msgstr " -m%-23.23s [belgelenemeyen]\n"
-#: toplev.c:3780
+#: toplev.c:3886
msgid ""
"\n"
"There are undocumented target specific options as well.\n"
@@ -7691,68 +8104,73 @@ msgstr ""
"\n"
"Halen belgelenememiş hedefe özel seçenekler var.\n"
-#: toplev.c:3782
+#: toplev.c:3888
msgid " They exist, but they are not documented.\n"
msgstr " Var fakat daha belgelendirilmedi.\n"
-#: toplev.c:3835
+#: toplev.c:3941
#, c-format
msgid "unrecognized gcc debugging option: %c"
msgstr "tanınmayan gcc hata ayıklama seçeneği: %c"
-#: toplev.c:3905
+#: toplev.c:4007
+#, c-format
+msgid "`%s': unknown tls-model option"
+msgstr "`%s': bilinmeyen tls-model seçeneği"
+
+#: toplev.c:4034
#, c-format
msgid "unrecognized register name `%s'"
msgstr "yazmaç ismi `%s' bilinmiyor"
-#: toplev.c:3930 toplev.c:4808
+#: toplev.c:4059 toplev.c:5012
#, c-format
msgid "unrecognized option `%s'"
msgstr "`%s' seçeneği bilinmiyor"
-#: toplev.c:3974
+#: toplev.c:4107
msgid "-Wid-clash-LEN is no longer supported"
msgstr "-Wid-clash-UZUNLUK artık desteklenmiyor."
-#: toplev.c:4051
+#: toplev.c:4184
#, c-format
msgid "use -gdwarf -g%d for DWARF v1, level %d"
msgstr "DWARF v1, %2$d seviyesi için -gdwarf -g%1$d kullanın"
-#: toplev.c:4054
+#: toplev.c:4187
msgid "use -gdwarf-2 for DWARF v2"
msgstr "DWARF v2 için -gdwarf-2 kullanın"
-#: toplev.c:4059
+#: toplev.c:4192
#, c-format
msgid "ignoring option `%s' due to invalid debug level specification"
msgstr "geçersiz hata ayıklama özelliğinden dolayı `%s' seçeneği yoksayılıyor"
-#: toplev.c:4082 toplev.c:4806
+#: toplev.c:4215 toplev.c:5010
#, c-format
msgid "`%s': unknown or unsupported -g option"
msgstr "`%s': -g seçeneği bilinmiyor ya da desteklenmiyor"
-#: toplev.c:4089
+#: toplev.c:4222
#, c-format
msgid "`%s' ignored, conflicts with `-g%s'"
msgstr "`-g%2$s' ile çeliştiği için `%1$s' yoksayıldı"
-#: toplev.c:4168
+#: toplev.c:4304
msgid "-param option missing argument"
msgstr "-param seçeneğinde argüman eksik"
-#: toplev.c:4177
+#: toplev.c:4313
#, c-format
msgid "invalid --param option: %s"
msgstr "geçersiz --param seçeneği: %s"
-#: toplev.c:4189
+#: toplev.c:4325
#, c-format
msgid "invalid parameter value `%s'"
msgstr "geçersiz parametre değeri `%s'"
-#: toplev.c:4396
+#: toplev.c:4565
#, c-format
msgid ""
"%s%s%s version %s (%s)\n"
@@ -7763,1138 +8181,964 @@ msgstr ""
"%s\tGNU C sürüm %s tarafından derlendi.\n"
"%s%s%s sürüm %s (%s) CC tarafından derlendi.\n"
-#: toplev.c:4452
+#: toplev.c:4572
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr "%s%sGGC yaklaşımları: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#: toplev.c:4630
msgid "options passed: "
msgstr "belirtilen seçenekler: "
-#: toplev.c:4481
+#: toplev.c:4659
msgid "options enabled: "
msgstr "etkin seçenekler: "
-#: toplev.c:4540 java/jcf-write.c:3373
+#: toplev.c:4718 java/jcf-write.c:3453
#, c-format
msgid "can't open %s for writing"
msgstr "%s yazmak için açılamıyor"
-#: toplev.c:4798
+#: toplev.c:5002
#, c-format
msgid "ignoring command line option '%s'"
msgstr "yoksayılan komut satırı seçeneği `%s'"
-#: toplev.c:4801
+#: toplev.c:5005
#, c-format
msgid "(it is valid for %s but not the selected language)"
msgstr "(%s için geçerli ama o dil seçilmedi)"
-#: toplev.c:4835
+#: toplev.c:5039
msgid "-Wuninitialized is not supported without -O"
msgstr "-Wuninitialized seçeneği -O olmaksızın desteklenmiyor"
-#: toplev.c:4894
+#: toplev.c:5094
msgid "instruction scheduling not supported on this target machine"
msgstr "bu hedef makina için işlem zamanlaması desteklenmiyor"
-#: toplev.c:4898
+#: toplev.c:5098
msgid "this target machine does not have delayed branches"
msgstr "bu hedef makina gecikmeli dallanmalara sahip deÄŸil"
-#: toplev.c:4907
-msgid "profiling does not work without a frame pointer"
-msgstr "bir çerçeve göstergesi olmaksızın ayrımlama çalışmaz"
-
-#: toplev.c:4922
+#: toplev.c:5112
#, c-format
msgid "-f%sleading-underscore not supported on this target machine"
msgstr "bu hedef makinada -f%sleading-underscore desteklenmiyor"
-#: toplev.c:4985
+#: toplev.c:5175
msgid "-ffunction-sections not supported for this target"
msgstr "bu hedefte -ffunction-sections desteklenmiyor"
-#: toplev.c:4990
+#: toplev.c:5180
msgid "-fdata-sections not supported for this target"
msgstr "bu hedefte -fdata-sections desteklenmiyor"
-#: toplev.c:4997
+#: toplev.c:5187
msgid "-ffunction-sections disabled; it makes profiling impossible"
msgstr "-ffunction-sections iptal edildi; ayrımlamayı mümkün kılmıyor"
-#: toplev.c:5004
+#: toplev.c:5194
msgid "-fprefetch-loop-arrays not supported for this target"
msgstr "bu hedefte -fprefetch-loop-arrays desteklenmiyor"
-#: toplev.c:5010
+#: toplev.c:5200
msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
msgstr "-fprefetch-loop-arrays bu hedef için desteklenmiyor (-march seçeneğini deneyin)"
-#: toplev.c:5019
+#: toplev.c:5209
msgid "-fprefetch-loop-arrays is not supported with -Os"
msgstr "-fprefetch-loop-arrays, -Os ile desteklenmiyor"
-#: toplev.c:5025
+#: toplev.c:5215
msgid "-ffunction-sections may affect debugging on some targets"
msgstr "-ffunction-sections bazı hedeflerde hata ayıklamayı etkileyebilir"
-#: toplev.c:5146
+#: toplev.c:5327
#, c-format
msgid "error writing to %s"
msgstr "%s e yazarken hata"
-#: toplev.c:5148 java/jcf-parse.c:969 java/jcf-write.c:3380
+#: toplev.c:5329 java/jcf-parse.c:936 java/jcf-write.c:3460
#, c-format
msgid "error closing %s"
msgstr "%s kapatılırken hata"
-#. It's a float since it contains a point.
-#: tradcif.y:231
-msgid "floating point numbers not allowed in #if expressions"
-msgstr "#if ifadelerinde gerçel sayılara izin verilmez"
-
-#: tradcif.y:277
-msgid "invalid number in #if expression"
-msgstr "#if ifadesindeki sayı geçersiz"
-
-#: tradcif.y:357
-msgid "invalid character constant in #if"
-msgstr "#if ifadesinde geçersiz karakter sabiti"
-
-#: tradcif.y:394
-msgid "double quoted strings not allowed in #if expressions"
-msgstr "#if ifadelerinde çift tırnaklı dizgelere izin verilmez"
-
-#: tradcif.y:407
-msgid "invalid token in expression"
-msgstr "ifadede geçersiz dizgecik"
-
-#: tradcif.y:498
-msgid "octal character constant does not fit in a byte"
-msgstr "sekizlik karakter sabiti bir bayta sığmaz"
-
-#: tradcif.y:519
-msgid "hex character constant does not fit in a byte"
-msgstr "onaltılık karakter sabiti bir bayta sığmaz"
-
-#: tradcif.y:550
-msgid "empty #if expression"
-msgstr "boÅŸ #if ifadesi"
-
-#: tradcif.y:564
-msgid "Junk after end of expression."
-msgstr "İfadeden sonrakiler anlaşılamadı."
-
-#: tradcpp.c:145
-msgid "macro or #include recursion too deep"
-msgstr "makro ya da #include özyinelemesi çok derin"
-
-#: tradcpp.c:562
-#, c-format
-msgid "usage: %s [switches] input output"
-msgstr "kullanımı: %s [seçenekler] girdi çıktı"
-
-#: tradcpp.c:578
-msgid "-traditional is not supported in C++"
-msgstr "-traditional C++'da desteklenmiyor"
-
-#: tradcpp.c:580
-msgid "-traditional and -ansi are mutually exclusive"
-msgstr "-traditional ve -ansi birlikte kullanılamaz"
-
-#: tradcpp.c:594
-msgid "filename missing after -i option"
-msgstr "-i seçeneğinden sonra dosya ismi eksik"
-
-#: tradcpp.c:612
-msgid "filename missing after -o option"
-msgstr "-o seçeneğinden sonra dosya ismi eksik"
-
-#: tradcpp.c:675
-#, c-format
-msgid "target missing after %s option"
-msgstr "%s seçeneğinden sonraki hedef eksik"
-
-#: tradcpp.c:689
-#, c-format
-msgid "filename missing after %s option"
-msgstr "%s seçeneğinden sonra dosya ismi eksik"
-
-#: tradcpp.c:714
-#, c-format
-msgid "macro name missing after -%c option"
-msgstr "-%c seçeneğinden sonra makro ismi eksik"
-
-#: tradcpp.c:734
-msgid "-pedantic and -traditional are mutually exclusive"
-msgstr "-pedantic ve -traditional birlikte kullanılamaz"
-
-#: tradcpp.c:739
-msgid "-trigraphs and -traditional are mutually exclusive"
-msgstr "-trigraphs ve -traditional birlikte kullanılamaz"
-
-#: tradcpp.c:765
-msgid "directory name missing after -I option"
-msgstr "-I seçeneğinden sonra dizin ismi eksik"
-
-#: tradcpp.c:1445 tradcpp.c:3937
-msgid "`/*' within comment"
-msgstr "açıklama içinde `/*'"
-
-#: tradcpp.c:1821
-#, c-format
-msgid "unterminated #%s conditional"
-msgstr "sonlandırılmamış #%s koşulu"
-
-#: tradcpp.c:2180
-msgid "not in any file?!"
-msgstr "bir dosyada deÄŸil mi?!"
-
-#: tradcpp.c:2286
-msgid "`defined' must be followed by ident or (ident)"
-msgstr "`defined' ident ya da (ident) ile izlenmeli"
-
-#: tradcpp.c:2290
-msgid "cccp error: invalid special hash type"
-msgstr "cccp hatası: özel isimli-yapı türü geçersiz"
-
-#: tradcpp.c:2388 tradcpp.c:2458
-msgid "#include expects \"fname\" or <fname>"
-msgstr "#include \"dosyaismi\" ya da #include <dosyaismi> şeklinde kullanılır"
-
-#: tradcpp.c:2543
-#, c-format
-msgid "no include path in which to find %.*s"
-msgstr "%.*s arama yolunda include dosyaları yok"
-
-#: tradcpp.c:2721
-msgid "invalid macro name"
-msgstr "geçersiz makro ismi"
-
-#: tradcpp.c:2729
-#, c-format
-msgid "invalid macro name `%s'"
-msgstr "geçersiz makro ismi `%s'"
-
-#: tradcpp.c:2734
-msgid "\"defined\" cannot be used as a macro name"
-msgstr "\"defined\" makro ismi olarak kullanılamaz"
-
-#: tradcpp.c:2761
-msgid "parameter name starts with a digit in #define"
-msgstr "#define yönergesindeki parametre ismi bir rakam ile başlıyor"
-
-#: tradcpp.c:2771
-msgid "badly punctuated parameter list in #define"
-msgstr "#define yönergesinde kötü vurgulanmış parametre listesi"
-
-#: tradcpp.c:2779
-msgid "unterminated parameter list in #define"
-msgstr "#define yönergesinde sonlandırılmamış parametre listesi"
-
-#: tradcpp.c:2827
-#, c-format
-msgid "\"%.*s\" redefined"
-msgstr "\"%.*s\" yeniden tanımlanmış"
-
-#: tradcpp.c:3084
-msgid "# operator should be followed by a macro argument name"
-msgstr "# işlemiminden sonra bir makro ismi olmalı"
-
-#: tradcpp.c:3131 tradcpp.c:3157 tradcpp.c:3171 tradcpp.c:3178 tradcpp.c:3203
-msgid "invalid format #line command"
-msgstr "geçersiz biçemli #line komutu"
-
-#: tradcpp.c:3229
-msgid "undefining `defined'"
-msgstr "undef'lenen `defined'"
-
-#: tradcpp.c:3233
-#, c-format
-msgid "undefining `%s'"
-msgstr "`%s' sonra #undef yapılmış"
-
-#: tradcpp.c:3289
-msgid "extra text at end of directive"
-msgstr "yönerge sonunda fazladan metin"
-
-#: tradcpp.c:3396
-#, c-format
-msgid "#error%.*s"
-msgstr "#error%.*s"
-
-#: tradcpp.c:3406
-#, c-format
-msgid "#warning%.*s"
-msgstr "#warning%.*s"
-
-#: tradcpp.c:3562
-msgid "#elif not within a conditional"
-msgstr "#elif bir koşulun içinde değil"
-
-#: tradcpp.c:3819
-#, c-format
-msgid "#%s not within a conditional"
-msgstr "#%s bir koşulun içinde değil"
-
-#: tradcpp.c:3827
-msgid "#else or #elif after #else"
-msgstr "#else'den sonra #elif ya da #else"
-
-#: tradcpp.c:3867
-msgid "#else not within a conditional"
-msgstr "#else bir koşulun içinde değil"
-
-#: tradcpp.c:3898
-msgid "unbalanced #endif"
-msgstr "karşılıksız #endif"
-
-#: tradcpp.c:3992
-msgid "unterminated string or character constant"
-msgstr "sonlandırılmamış dizge ya da karakter sabiti"
-
-#: tradcpp.c:4150
-#, c-format
-msgid "arguments given to macro `%s'"
-msgstr "`%s' makrosuna verilmiş argümanlar"
-
-#: tradcpp.c:4156
-#, c-format
-msgid "no args to macro `%s'"
-msgstr "`%s' makrosuna argüman verilmemiş"
-
-#: tradcpp.c:4158
-#, c-format
-msgid "only 1 arg to macro `%s'"
-msgstr "`%s' makrosuna sadece 1 argüman verilmiş"
-
-#: tradcpp.c:4160
-#, c-format
-msgid "only %d args to macro `%s'"
-msgstr "`%2$s' makrosuna sadece %1$d argüman verilmiş"
-
-#: tradcpp.c:4162
-#, c-format
-msgid "too many (%d) args to macro `%s'"
-msgstr "`%2$s' makrosuna çok fazla (%1$d) argüman verilmiş"
-
-#: tradcpp.c:4759
-#, c-format
-msgid ""
-"internal error in %s, at tradcpp.c:%d\n"
-"Please submit a full bug report.\n"
-"See %s for instructions."
-msgstr ""
-"tradcpp.c:%2$d: %1$s işlevinde iç hata\n"
-"Lütfen ayrıntılı bir hapa raporu gönderin.\n"
-"İşlemler için %3$s adresine bakın."
-
-#: tree-dump.c:848
+#: tree-dump.c:702
#, c-format
msgid "could not open dump file `%s'"
msgstr "döküm dosyası `%s' açılamadı"
-#: tree-dump.c:924
+#: tree-dump.c:778
#, c-format
msgid "ignoring unknown option `%.*s' in `-f%s'"
msgstr "yoksayılan bilinmeyen seçenek `%.*s' (`-f%s' içinde)"
-#: tree.c:3888
+#: tree.c:3645
msgid "arrays of functions are not meaningful"
msgstr "işlev dizileri anlamlı değil"
-#: tree.c:3945
+#: tree.c:3702
msgid "function return type cannot be function"
msgstr "işlevin dönen değer türü işlev olamaz"
-#: tree.c:4699
+#: tree.c:4557
msgid "invalid initializer for bit string"
msgstr "bit dizge için ilklendirici geçersiz"
-#: tree.c:4758
+#: tree.c:4616
#, c-format
msgid "tree check: expected %s, have %s in %s, at %s:%d"
msgstr "Ağaç denetimi: %4$s:%5$d: %3$s işlevinde '%1$s' umulurken, '%2$s' var"
-#: tree.c:4775
+#: tree.c:4633
#, c-format
msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
msgstr "Ağaç denetimi: %5$s:%6$d: %4$s işlevinde sınıf '%1$c' umulurken, '%2$c' (%3$s) var"
-#: varasm.c:454 config/i386/winnt.c:522
+#: tree.c:4650
+#, c-format
+msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+msgstr "ağaç denetimi: %4$s:%5$d: %3$s işlevindeki %2$d öğeli vektörün %1$d. öğesine erişildi"
+
+#: varasm.c:455 config/i386/winnt.c:611
#, c-format
msgid "%s causes a section type conflict"
msgstr "%s bir bölüm türü çelişkiye sebep oluyor"
-#: varasm.c:879
+#: varasm.c:841
#, c-format
msgid "register name not specified for `%s'"
msgstr "`%s' için yazmaç ismi belirtilmemiş"
-#: varasm.c:881
+#: varasm.c:843
#, c-format
msgid "invalid register name for `%s'"
msgstr "`%s' için yazmaç ismi geçersiz"
-#: varasm.c:884
+#: varasm.c:846
#, c-format
msgid "data type of `%s' isn't suitable for a register"
msgstr "`%s' veri türü bir yazmaç için kullanılabilir değil"
-#: varasm.c:887
+#: varasm.c:849
#, c-format
msgid "register specified for `%s' isn't suitable for data type"
msgstr "`%s' için belirtilen yazmaç veri türü için kullanılabilir değil"
-#: varasm.c:896
+#: varasm.c:858
msgid "global register variable has initial value"
msgstr "genel yazmaç değişkeni öndeğer içeriyor"
-#: varasm.c:899
+#: varasm.c:861
msgid "volatile register variables don't work as you might wish"
msgstr "oynak yazmaç değişkenleri sizin istediğiniz gibi çalışmaz"
-#: varasm.c:932
+#: varasm.c:894
#, c-format
msgid "register name given for non-register variable `%s'"
msgstr "yazmaç olmayan değişken `%s' için yazmaç ismi verilmiş"
-#: varasm.c:1570
+#: varasm.c:1542
#, c-format
msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
msgstr "%s hizalaması en büyük nesne dosyası hizalamasından daha büyük. %d kullanılıyor"
-#: varasm.c:1621
+#: varasm.c:1584
+msgid "thread-local COMMON data not implemented"
+msgstr "yerel evreli COMMON verisi henüz yazılmadı"
+
+#: varasm.c:1610
#, c-format
msgid "requested alignment for %s is greater than implemented alignment of %d"
msgstr "%s için istenen hizalama yerleşik hizalama %d den daha büyük"
-#: varasm.c:4570
+#: varasm.c:4048
msgid "initializer for integer value is too complicated"
msgstr "tamsayı öndeğer fazla karmaşık"
-#: varasm.c:4575
+#: varasm.c:4053
msgid "initializer for floating value is not a floating constant"
msgstr "gerçel sayı öndeğer bir gerçel sayı sabit değil"
-#: varasm.c:4625
+#: varasm.c:4120
msgid "unknown set constructor type"
msgstr "bilinmeyen set constructor türü"
-#: varasm.c:4839
+#: varasm.c:4334
#, c-format
msgid "invalid initial value for member `%s'"
msgstr "üye `%s' için öndeğer geçersiz"
-#: varasm.c:5000
-#, c-format
-msgid "weak declaration of `%s' must be public"
-msgstr "`%s' zayıf bildirimi 'public' olmalı"
-
-#: varasm.c:5002
+#: varasm.c:4525 varasm.c:4568
#, c-format
msgid "weak declaration of `%s' must precede definition"
msgstr "`%s' zayıf bildirimi tanımından önce olmalı"
-#: varasm.c:5009
+#: varasm.c:4532
+#, c-format
+msgid "weak declaration of `%s' after first use results in unspecified behavior"
+msgstr "`%s' zayıf bildiriminin ilk kullanımdan sonra olması tanımlanmamış davranışa yol açar"
+
+#: varasm.c:4566
+#, c-format
+msgid "weak declaration of `%s' must be public"
+msgstr "`%s' zayıf bildirimi 'public' olmalı"
+
+#: varasm.c:4575
#, c-format
msgid "weak declaration of `%s' not supported"
msgstr "`%s' zayıf bildirimi desteklenmiyor"
-#: varasm.c:5036 varasm.c:5107
+#: varasm.c:4602 varasm.c:4677
msgid "only weak aliases are supported in this configuration"
msgstr "bu yapılandırmada sadece zayıf takma adlar destekleniyor"
-#: varasm.c:5116
+#: varasm.c:4685
msgid "alias definitions not supported in this configuration; ignored"
msgstr "takma ad tanımlamaları bu yapılandırmada desteklenmiyor; yoksayıldı"
-#: varray.c:88
+#: varasm.c:4716
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr "görünürlük bu yapılandırmada desteklenmiyor; yoksayıldı"
+
+#: varray.c:134
#, c-format
msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
msgstr "Sanal dizi %1$s[%2$lu]: %5$s:%6$d: %4$s içindeki %3$lu öğesi sınırların dışında"
#. Print an error message for unrecognized stab codes.
-#: xcoffout.c:174
+#: xcoffout.c:175
#, c-format
msgid "no sclass for %s stab (0x%x)\n"
msgstr "%s stab (0x%x) için sclass yok\n"
-#: params.def:46
-msgid "The maximum number of instructions in a function that is eligible for inlining"
+#: pretty-print.h:97
+#, c-format
+msgid "#`%s' not supported by %s#"
+msgstr "#`%s', %s# tarafından desteklenmiyor"
+
+#: params.def:53
+msgid "The maximum number of instructions in a single function eligible for inlining"
+msgstr ""
+"Özümleme için seçilebilir bir işlevde\n"
+" en çok asm komutu sayısı"
+
+#: params.def:65
+msgid "The maximum number of instructions when automatically inlining"
+msgstr ""
+"Otomatik olarak özümlendiğinde en çok\n"
+" asm komutu sayısı"
+
+#: params.def:84
+msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
msgstr ""
-"Özümleme için seçilebilir bir işlevde en\n"
-" çok asm komutu sayısı"
+"GCC özümlemeyi kısmaya başlamadan önce\n"
+" tekrarlanan özümlemeye göre en çok asm\n"
+" komutu sayısı"
-#: params.def:57
+#: params.def:97
+msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+msgstr "Ardışık içerilme limitine ulaştıktan sonra içerilmeyi frenleyen lineer işlevin eğimi, bu parametrenin negatif ters çarpanı olarak verilmiş"
+
+#: params.def:110
+msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+msgstr ""
+"Bir miktar ardışık özümlemeden sonraki\n"
+" özümlemede hala seçilebilir olan tek\n"
+" bir işlev içindeki asm komutu sayısı"
+
+#: params.def:120
+msgid "The maximum number of instructions for the RTL inliner"
+msgstr "RTL özümleyici için en fazla komut sayısı"
+
+#: params.def:131
msgid "The maximum number of instructions to consider to fill a delay slot"
msgstr ""
"Bir gecikme yuvasını dolduracağı\n"
" varsayılan en fazla komut sayısı"
-#: params.def:68
+#: params.def:142
msgid "The maximum number of instructions to consider to find accurate live register information"
msgstr ""
"tam doğru faal yazmaç bilgisinin\n"
" bulunmasını dikkate alacak asm\n"
" komutlarının maksimum sayısı"
-#: params.def:78
+#: params.def:152
msgid "The maximum length of scheduling's pending operations list"
msgstr ""
"İşlemler listesinin tamamlanmasını\n"
" bekleyenlerin en büyük uzunluğu"
-#: params.def:85
+#: params.def:159
msgid "The maximum amount of memory to be allocated by GCSE"
msgstr ""
"Genel ortak alt ifade elemesi tarafından\n"
" ayrılan en büyük bellek"
-#: params.def:90
+#: params.def:164
msgid "The maximum number of passes to make when doing GCSE"
msgstr ""
"Genel ortak alt ifade elemesi uygulanırken\n"
" yapılacak en çok geçiş sayısı"
-#: config/darwin-c.c:76
+#: params.def:171
+msgid "The maximum number of instructions to consider to unroll in a loop"
+msgstr ""
+"Bir döngü içinde çevrime sokulmayacağı\n"
+" varsayılan en fazla komut sayısı"
+
+#: params.def:176
+msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+msgstr ""
+"Temel bloğun sıcak olarak düşünülmesi\n"
+" gereğine göre yazılımda temel bloğun\n"
+" maksimum tekrar sayısının kesrini seçer"
+
+#: params.def:181
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+msgstr ""
+"Temel bloğun sıcak olarak düşünülmesi\n"
+" gereğine göre yazılımda temel bloğun\n"
+" maksimum icra sıklığının kesrini seçer"
+
+#: params.def:186
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+msgstr ""
+"Ä°ÅŸlevin izlenme oluÅŸumu ile kapsanacak,\n"
+" işlenme frekansı ile çarpılmış yüzdesi.\n"
+" Profil geribeslemesi mevcut olduÄŸu \n"
+" zaman kullanılır"
+
+#: params.def:191
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+msgstr ""
+"Ä°ÅŸlevin izlenme oluÅŸumu ile kapsanacak,\n"
+" işlenme frekansı ile çarpılmış \n"
+" yüzdesi. Profil geribeslemesi mümkün\n"
+" olmadığında kullanılır"
+
+#: params.def:196
+msgid "Maximal code growth caused by tail duplication (in percents)"
+msgstr ""
+"Kuyruk tekrarı tarafından oluşturulan en\n"
+" yüksek kod büyümesi (yüzde olarak)"
+
+#: params.def:200
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+msgstr ""
+"En iyi kenar tersine olasılığı bu eşik\n"
+" değerden (yüzde olarak) küçükse\n"
+" geriye doğru büyüme durdurulur"
+
+#: params.def:205
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+msgstr ""
+"En iyi kenar olasılığı bu eşik\n"
+" değerden (yüzde olarak) küçükse\n"
+" ileriye doğru büyüme durdurulur.\n"
+" Profil geribeslemesi mümkünse kullanılır"
+
+#: params.def:210
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+msgstr ""
+"En iyi kenar olasılığı bu eşik değerden\n"
+" yüzde olarak) küçükse ileriye doğru\n"
+" büyüme durdurulur. Profil \n"
+" geribeslemesi mümkün değilse kullanılır"
+
+#: params.def:217
+msgid "The maximum number of incoming edges to consider for crossjumping"
+msgstr ""
+"Çapraz sıçrama için varsayılan gelen\n"
+" kenarların azami sayısı"
+
+#: params.def:230
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+"Üst bellek çöp temizliğini başlatmak için\n"
+" gereken minimum artış, üst bellek\n"
+" boyutunun yüzdesi olarak"
+
+#: params.def:236
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+"Çöp toplamaya başlanmadan önceki kilobayt\n"
+" cinsinden en küçük üst bellek boyutu"
+
+#: config/darwin-c.c:75
msgid "too many #pragma options align=reset"
msgstr "çok sayıda #pragma seçeneği align=reset"
-#: config/darwin-c.c:98 config/darwin-c.c:101 config/darwin-c.c:103 config/darwin-c.c:105
+#: config/darwin-c.c:97 config/darwin-c.c:100 config/darwin-c.c:102
+#: config/darwin-c.c:104
msgid "malformed '#pragma options', ignoring"
msgstr "'#pragma options' hatalı, yoksayılıyor"
-#: config/darwin-c.c:108
+#: config/darwin-c.c:107
msgid "junk at end of '#pragma options'"
msgstr "'#pragma options' sonunda karışıklık"
-#: config/darwin-c.c:118
+#: config/darwin-c.c:117
msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
msgstr "'#pragma options align={mac68k|power|reset}' hatalı, yoksayılıyor"
-#: config/darwin-c.c:131
+#: config/darwin-c.c:130
msgid "missing '(' after '#pragma unused', ignoring"
msgstr "'#pragma unused'dan sonra '(' eksik, yoksayılıyor"
-#: config/darwin-c.c:149
+#: config/darwin-c.c:148
msgid "missing ')' after '#pragma unused', ignoring"
msgstr "'#pragma unused'dan sonra ')' eksik, yoksayılıyor"
-#: config/darwin-c.c:152
+#: config/darwin-c.c:151
msgid "junk at end of '#pragma unused'"
msgstr "'#pragma unused' sonunda karışıklık"
-#: config/nextstep.c:68
-msgid "optimization turned on"
-msgstr "eniyileme etkin"
-
-#: config/nextstep.c:74
-msgid "optimization turned off"
-msgstr "eniyileme etkin deÄŸil"
-
-#: config/nextstep.c:83
-msgid "optimization level restored"
-msgstr "eniyileme seviyesi eski durumuna getirildi"
-
-#: config/lynx-ng.h:97 config/lynx.h:120 config/rs6000/lynx.h:85
+#: config/lynx-ng.h:97 config/lynx.h:121 config/rs6000/lynx.h:100
msgid "-msystem-v and -p are incompatible"
msgstr "-msystem-v ile -p uyumsuz"
-#: config/lynx-ng.h:99 config/lynx.h:122 config/rs6000/lynx.h:87
+#: config/lynx-ng.h:99 config/lynx.h:123 config/rs6000/lynx.h:102
msgid "-msystem-v and -mthreads are incompatible"
msgstr "-msystem-v ile -mthreads uyumsuz"
-#. Run-time compilation parameters selecting different hardware subsets.
-#: config/1750a/1750a.h:39
-msgid "Use VAX-C alignment"
-msgstr "VAX-C hizalaması kullanılır"
-
-#: config/a29k/a29k.c:1028 config/m88k/m88k.c:2967
-#, c-format
-msgid "invalid %%Q value"
-msgstr "%%Q değeri geçersiz"
-
-#: config/a29k/a29k.c:1034 config/alpha/alpha.c:5402 config/m88k/m88k.c:3063
-#, c-format
-msgid "invalid %%C value"
-msgstr "%%C değeri geçersiz"
-
-#: config/a29k/a29k.c:1040 config/alpha/alpha.c:5247 config/rs6000/rs6000.c:6454
-#, c-format
-msgid "invalid %%N value"
-msgstr "%%N değeri geçersiz"
-
-#: config/a29k/a29k.c:1046 config/alpha/alpha.c:5318 config/rs6000/rs6000.c:6416
-#, c-format
-msgid "invalid %%M value"
-msgstr "%%M değeri geçersiz"
-
-#: config/a29k/a29k.c:1052 config/alpha/alpha.c:5310 config/rs6000/rs6000.c:6381
-#, c-format
-msgid "invalid %%m value"
-msgstr "%%m değeri geçersiz"
-
-#: config/a29k/a29k.c:1154 config/alpha/alpha.c:5271 config/romp/romp.c:690
-#, c-format
-msgid "invalid %%L value"
-msgstr "%%L değeri geçersiz"
-
-#: config/a29k/a29k.c:1159 config/rs6000/rs6000.c:6462
-#, c-format
-msgid "invalid %%O value"
-msgstr "%%O değeri geçersiz"
-
-#: config/a29k/a29k.c:1165 config/alpha/alpha.c:5255 config/rs6000/rs6000.c:6482
-#, c-format
-msgid "invalid %%P value"
-msgstr "%%P değeri geçersiz"
-
-#: config/a29k/a29k.c:1175
-#, c-format
-msgid "invalid %%V value"
-msgstr "%%V değeri geçersiz"
-
-#: config/a29k/a29k.h:101
-msgid "Generate code assuming DW bit is set"
-msgstr "Kod DW biti 1 kabulüyle üretilir"
-
-#: config/a29k/a29k.h:102
-msgid "Generate code assuming DW bit is not set"
-msgstr "Kod DW biti 0 kabulüyle üretilir"
-
-#: config/a29k/a29k.h:103
-msgid "Generate code using byte writes"
-msgstr "Kod bayt yazarak üretilir"
-
-#: config/a29k/a29k.h:104
-msgid "Do not generate byte writes"
-msgstr "Bayt yazımı üretilmez"
-
-#: config/a29k/a29k.h:105
-msgid "Use small memory model"
-msgstr "Küçük bellek modeli kullanılır"
-
-#: config/a29k/a29k.h:106
-msgid "Use normal memory model"
-msgstr "Normal bellek modeli kullanılır"
-
-#: config/a29k/a29k.h:107
-msgid "Use large memory model"
-msgstr "Geniş bellek modeli kullanılır"
-
-#: config/a29k/a29k.h:108
-msgid "Generate 29050 code"
-msgstr "29050 kodu üretilir"
-
-#: config/a29k/a29k.h:109
-msgid "Generate 29000 code"
-msgstr "29000 kodu üretilir"
-
-#: config/a29k/a29k.h:110
-msgid "Use kernel global registers"
-msgstr "Çekirdek genel yazmaçları kullanılır"
-
-#: config/a29k/a29k.h:111
-msgid "Use user global registers"
-msgstr "Kullanıcı genel yazmaçları kullanılır"
-
-#: config/a29k/a29k.h:112
-msgid "Emit stack checking code"
-msgstr "Yığın denetim kodu üretilir"
-
-#: config/a29k/a29k.h:113
-msgid "Do not emit stack checking code"
-msgstr "Yığın denetim kodu üretilmez"
-
-#: config/a29k/a29k.h:114
-msgid "Work around storem hardware bug"
-msgstr "Storem donanım hatasının oluru bulunur"
-
-#: config/a29k/a29k.h:115
-msgid "Do not work around storem hardware bug"
-msgstr "Storem donanım hatasının oluru bulunmaz"
-
-#: config/a29k/a29k.h:116
-msgid "Store locals in argument registers"
-msgstr "Yerel değerler argüman yazmaçlarında saklanır"
-
-#: config/a29k/a29k.h:117
-msgid "Do not store locals in arg registers"
-msgstr "Yerel değerler argüman yazmaçlarında saklanmaz"
-
-#: config/a29k/a29k.h:118 config/i960/i960.h:283 config/mips/mips.h:408
-msgid "Use software floating point"
-msgstr "Yazılım kayan nokta kodu kullanılır"
-
-#: config/a29k/a29k.h:119
-msgid "Do not generate multm instructions"
-msgstr "multm komutları üretilmez"
-
-#: config/alpha/alpha.c:271
+#: config/alpha/alpha.c:342
#, c-format
msgid "-f%s ignored for Unicos/Mk (not supported)"
msgstr "Unicos/Mk için -f%s yoksayıldı (desteklenmiyor)"
-#: config/alpha/alpha.c:295
+#: config/alpha/alpha.c:366
msgid "-mieee not supported on Unicos/Mk"
msgstr "Unicos/Mk üzerinde -mieee desteklenmiyor"
-#: config/alpha/alpha.c:306
+#: config/alpha/alpha.c:377
msgid "-mieee-with-inexact not supported on Unicos/Mk"
msgstr "-mieee-with-inexact Unicos/Mk üzerinde desteklenmiyor"
-#: config/alpha/alpha.c:323
+#: config/alpha/alpha.c:394
#, c-format
msgid "bad value `%s' for -mtrap-precision switch"
msgstr "-mtrap-precision seçeneği için `%s' değeri hatalı"
-#: config/alpha/alpha.c:337
+#: config/alpha/alpha.c:408
#, c-format
msgid "bad value `%s' for -mfp-rounding-mode switch"
msgstr "-mfp-rounding-mode seçeneği için `%s' değeri hatalı"
-#: config/alpha/alpha.c:352
+#: config/alpha/alpha.c:423
#, c-format
msgid "bad value `%s' for -mfp-trap-mode switch"
msgstr "-mfp-trap-mode seçeneği için `%s' değeri hatalı"
-#: config/alpha/alpha.c:371 config/alpha/alpha.c:383
+#: config/alpha/alpha.c:435
+#, c-format
+msgid "bad value `%s' for -mtls-size switch"
+msgstr "-mtls-size seçeneği için `%s' değeri hatalı"
+
+#: config/alpha/alpha.c:454 config/alpha/alpha.c:466
#, c-format
msgid "bad value `%s' for -mcpu switch"
msgstr "-mcpu seçeneği için `%s' değeri hatalı"
-#: config/alpha/alpha.c:390
+#: config/alpha/alpha.c:473
msgid "trap mode not supported on Unicos/Mk"
msgstr "Unicos/Mk üzerinde yakalama kipi desteklenmiyor"
-#: config/alpha/alpha.c:397
+#: config/alpha/alpha.c:480
msgid "fp software completion requires -mtrap-precision=i"
msgstr "fp yazılım tamamlaması -mtrap-precision=i gerektirir"
-#: config/alpha/alpha.c:413
+#: config/alpha/alpha.c:496
msgid "rounding mode not supported for VAX floats"
msgstr "VAX gerçelleri için yuvarlama kipi desteklenmiyor"
-#: config/alpha/alpha.c:418
+#: config/alpha/alpha.c:501
msgid "trap mode not supported for VAX floats"
msgstr "VAX gerçelleri için tuzak kipi desteklenmiyor"
-#: config/alpha/alpha.c:447
+#: config/alpha/alpha.c:530
#, c-format
msgid "L%d cache latency unknown for %s"
msgstr "%2$s için L%1$d arabellek gecikmesi bilinmiyor"
-#: config/alpha/alpha.c:462
+#: config/alpha/alpha.c:545
#, c-format
msgid "bad value `%s' for -mmemory-latency"
msgstr "-mmemory-latency için değer `%s' hatalı"
-#: config/alpha/alpha.c:5211 config/m88k/m88k.c:2955 config/romp/romp.c:746 config/romp/romp.c:753
+#: config/alpha/alpha.c:5604 config/m88k/m88k.c:2889 config/romp/romp.c:754
+#: config/romp/romp.c:761
#, c-format
msgid "invalid %%H value"
msgstr "%%H değeri geçersiz"
-#: config/alpha/alpha.c:5221
+#: config/alpha/alpha.c:5625
#, c-format
msgid "invalid %%J value"
msgstr "%%J değeri geçersiz"
-#: config/alpha/alpha.c:5231 config/ia64/ia64.c:3509 config/m88k/m88k.c:3100
+#: config/alpha/alpha.c:5641 config/ia64/ia64.c:3970 config/m88k/m88k.c:3034
#, c-format
msgid "invalid %%r value"
msgstr "%%r değeri geçersiz"
-#: config/alpha/alpha.c:5241 config/rs6000/rs6000.c:6528
+#: config/alpha/alpha.c:5651 config/rs6000/rs6000.c:7737
#, c-format
msgid "invalid %%R value"
msgstr "%%R değeri geçersiz"
-#: config/alpha/alpha.c:5263 config/m88k/m88k.c:2961 config/romp/romp.c:732 config/romp/romp.c:739
+#: config/alpha/alpha.c:5657 config/rs6000/rs6000.c:7663
+#, c-format
+msgid "invalid %%N value"
+msgstr "%%N değeri geçersiz"
+
+#: config/alpha/alpha.c:5665 config/rs6000/rs6000.c:7691
+#, c-format
+msgid "invalid %%P value"
+msgstr "%%P değeri geçersiz"
+
+#: config/alpha/alpha.c:5673 config/m88k/m88k.c:2895 config/romp/romp.c:740
+#: config/romp/romp.c:747
#, c-format
msgid "invalid %%h value"
msgstr "%%h değeri geçersiz"
-#: config/alpha/alpha.c:5353
+#: config/alpha/alpha.c:5681 config/romp/romp.c:698
+#, c-format
+msgid "invalid %%L value"
+msgstr "%%L değeri geçersiz"
+
+#: config/alpha/alpha.c:5720 config/rs6000/rs6000.c:7645
+#, c-format
+msgid "invalid %%m value"
+msgstr "%%m değeri geçersiz"
+
+#: config/alpha/alpha.c:5728 config/rs6000/rs6000.c:7653
+#, c-format
+msgid "invalid %%M value"
+msgstr "%%M değeri geçersiz"
+
+#: config/alpha/alpha.c:5772
#, c-format
msgid "invalid %%U value"
msgstr "%%U değeri geçersiz"
-#: config/alpha/alpha.c:5365 config/alpha/alpha.c:5379 config/romp/romp.c:698 config/rs6000/rs6000.c:6536
+#: config/alpha/alpha.c:5784 config/alpha/alpha.c:5798 config/romp/romp.c:706
+#: config/rs6000/rs6000.c:7745
#, c-format
msgid "invalid %%s value"
msgstr "%%s değeri geçersiz"
-#: config/alpha/alpha.c:5439 config/m88k/m88k.c:3084 config/rs6000/rs6000.c:6243
+#: config/alpha/alpha.c:5821 config/m88k/m88k.c:2997
+#, c-format
+msgid "invalid %%C value"
+msgstr "%%C değeri geçersiz"
+
+#: config/alpha/alpha.c:5858 config/m88k/m88k.c:3018
+#: config/rs6000/rs6000.c:7502
#, c-format
msgid "invalid %%E value"
msgstr "%%E değeri geçersiz"
-#: config/alpha/alpha.c:5460 config/romp/romp.c:973 config/rs6000/rs6000.c:6844
+#: config/alpha/alpha.c:5883 config/alpha/alpha.c:5933
+msgid "unknown relocation unspec"
+msgstr "bilinmeyen yerdeÄŸiÅŸim belirtilmemiÅŸ"
+
+#: config/alpha/alpha.c:5892 config/romp/romp.c:981
+#: config/rs6000/rs6000.c:8052
#, c-format
msgid "invalid %%xn code"
msgstr "%%xn değeri geçersiz"
+#: config/alpha/alpha.c:6618 config/alpha/alpha.c:6621 config/s390/s390.c:6069
+#: config/s390/s390.c:6072
+msgid "bad builtin fcode"
+msgstr "hatalı yerleşik fcode"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/alpha/alpha.h:214 config/i386/i386.h:291 config/i386/i386.h:293 config/i386/i386.h:295 config/ns32k/ns32k.h:103 config/rs6000/rs6000.h:329 config/s390/s390.h:56 config/sparc/sparc.h:529 config/sparc/sparc.h:534
+#: config/alpha/alpha.h:279 config/i386/i386.h:294 config/i386/i386.h:296
+#: config/i386/i386.h:298 config/ns32k/ns32k.h:140 config/rs6000/rs6000.h:292
+#: config/s390/s390.h:68 config/sparc/sparc.h:522 config/sparc/sparc.h:527
msgid "Use hardware fp"
msgstr "Donanım aritmetik işlemcisi kullanılır"
-#: config/alpha/alpha.h:215 config/i386/i386.h:292 config/i386/i386.h:294 config/rs6000/rs6000.h:331 config/sparc/sparc.h:531 config/sparc/sparc.h:536
+#: config/alpha/alpha.h:280 config/i386/i386.h:295 config/i386/i386.h:297
+#: config/rs6000/rs6000.h:294 config/sparc/sparc.h:524
+#: config/sparc/sparc.h:529
msgid "Do not use hardware fp"
msgstr "Donanım aritmetik işlemcisi kullanılmaz"
-#: config/alpha/alpha.h:216
+#: config/alpha/alpha.h:281
msgid "Use fp registers"
msgstr "fp yazmaçları kullanılır"
-#: config/alpha/alpha.h:218
+#: config/alpha/alpha.h:283
msgid "Do not use fp registers"
msgstr "fp yazmaçları kullanılmaz"
-#: config/alpha/alpha.h:219
+#: config/alpha/alpha.h:284
msgid "Do not assume GAS"
msgstr "GAS varsayılmaz"
-#: config/alpha/alpha.h:220
+#: config/alpha/alpha.h:285
msgid "Assume GAS"
msgstr "GAS varsayılır"
-#: config/alpha/alpha.h:222
+#: config/alpha/alpha.h:287
msgid "Request IEEE-conformant math library routines (OSF/1)"
msgstr "IEEE-uyumlu matematik kitaplığı yordamları istenir (OSF/1)"
-#: config/alpha/alpha.h:224
+#: config/alpha/alpha.h:289
msgid "Emit IEEE-conformant code, without inexact exceptions"
msgstr "Kesin olmayan istisnalar içermeden IEEE-uyumlu kod üretir"
-#: config/alpha/alpha.h:226
+#: config/alpha/alpha.h:291
msgid "Emit IEEE-conformant code, with inexact exceptions"
msgstr "Kesin olmayan istisnalar içeren IEEE-uyumlu kod üretir"
-#: config/alpha/alpha.h:228
+#: config/alpha/alpha.h:293
msgid "Do not emit complex integer constants to read-only memory"
msgstr "Salt-okunur belleğe karmaşık tamsayı sabitleri koymaz"
-#: config/alpha/alpha.h:229
+#: config/alpha/alpha.h:294
msgid "Use VAX fp"
msgstr "VAX fp kullanılır"
-#: config/alpha/alpha.h:230
+#: config/alpha/alpha.h:295
msgid "Do not use VAX fp"
msgstr "VAX fp kullanılmaz"
-#: config/alpha/alpha.h:231
+#: config/alpha/alpha.h:296
msgid "Emit code for the byte/word ISA extension"
msgstr "Bayt/word ISA genişlemesi için kod üretir"
-#: config/alpha/alpha.h:234
+#: config/alpha/alpha.h:299
msgid "Emit code for the motion video ISA extension"
msgstr "Video ISA genişlemesi için kod üretir"
-#: config/alpha/alpha.h:237
+#: config/alpha/alpha.h:302
msgid "Emit code for the fp move and sqrt ISA extension"
msgstr "fp move ve sqrt ISA genişlemesi için kod üretir"
-#: config/alpha/alpha.h:239
+#: config/alpha/alpha.h:304
msgid "Emit code for the counting ISA extension"
msgstr "Sayma ISA genişlemesi için kod üretir"
-#: config/alpha/alpha.h:242
+#: config/alpha/alpha.h:307
msgid "Emit code using explicit relocation directives"
msgstr "Kod doğrudan yer değiştirme yönergeleri kullanılarak üretilir"
-#: config/alpha/alpha.h:245
+#: config/alpha/alpha.h:310
msgid "Emit 16-bit relocations to the small data areas"
msgstr "Küçük veri alanlarına 16 bitlik yer değiştirmeler üretilir"
-#: config/alpha/alpha.h:247
+#: config/alpha/alpha.h:312
msgid "Emit 32-bit relocations to the small data areas"
msgstr "Küçük veri alanlarına 32 bitlik yer değiştirmeler üretilir"
+#: config/alpha/alpha.h:314
+msgid "Emit rdval instead of rduniq for thread pointer"
+msgstr "evre gösterici için rduniq yerine rdval üretir"
+
#. For -mcpu=
#. For -mtune=
#. For -mfp-rounding-mode=[n|m|c|d]
#. For -mfp-trap-mode=[n|u|su|sui]
#. For -mtrap-precision=[p|f|i]
#. For -mmemory-latency=
-#: config/alpha/alpha.h:275
+#. For -mtls-size=
+#: config/alpha/alpha.h:343
msgid "Use features of and schedule given CPU"
msgstr "Belirtilen CPU'nun özelliklerini ve zamanlamasını kullanır"
-#: config/alpha/alpha.h:277
+#: config/alpha/alpha.h:345
msgid "Schedule given CPU"
msgstr "Belirtilen CPU'yu zamanlar"
-#: config/alpha/alpha.h:279
+#: config/alpha/alpha.h:347
msgid "Control the generated fp rounding mode"
msgstr "ÃœretilmiÅŸ kayan nokta yuvarlama kipi denetlenir"
-#: config/alpha/alpha.h:281
+#: config/alpha/alpha.h:349
msgid "Control the IEEE trap mode"
msgstr "IEEE yakalama kipi denetlenir"
-#: config/alpha/alpha.h:283
+#: config/alpha/alpha.h:351
msgid "Control the precision given to fp exceptions"
msgstr "Verilen kayan nokta olağandışılıklarının duyarlığı denetlenir"
-#: config/alpha/alpha.h:285
+#: config/alpha/alpha.h:353
msgid "Tune expected memory latency"
msgstr "Beklenen bellek gecikmesini ayarlar"
-#: config/arc/arc.c:132
+#: config/alpha/alpha.h:355 config/ia64/ia64.h:225
+msgid "Specify bit size of immediate TLS offsets"
+msgstr "Dolaysız TLS konumlarının bit genişliği belirtilir"
+
+#: config/arc/arc.c:135
#, c-format
msgid "bad value (%s) for -mcpu switch"
msgstr "-mcpu seçeneği için değer (%s) hatalı"
-#: config/arc/arc.c:359
+#: config/arc/arc.c:362
#, c-format
msgid "argument of `%s' attribute is not a string constant"
msgstr "`%s' in argümanı bir sabit dizge değil"
-#: config/arc/arc.c:366
+#: config/arc/arc.c:369
#, c-format
msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
msgstr "`%s' özniteliğinin argümanı \"ilink1\" ya da \"ilink2\" değildir"
-#: config/arc/arc.c:1709 config/m32r/m32r.c:2278
+#: config/arc/arc.c:1708 config/m32r/m32r.c:2286
#, c-format
msgid "invalid operand to %%R code"
msgstr "%%R kodu için terim geçersiz"
-#: config/arc/arc.c:1741 config/m32r/m32r.c:2301
+#: config/arc/arc.c:1740 config/m32r/m32r.c:2309
#, c-format
msgid "invalid operand to %%H/%%L code"
msgstr "%%H/%%L kodu için terim geçersiz"
-#: config/arc/arc.c:1765 config/m32r/m32r.c:2378
+#: config/arc/arc.c:1763 config/m32r/m32r.c:2385
#, c-format
msgid "invalid operand to %%U code"
msgstr "%%U kodu için terim geçersiz"
-#: config/arc/arc.c:1776
+#: config/arc/arc.c:1774
#, c-format
msgid "invalid operand to %%V code"
msgstr "%%V kodu için terim geçersiz"
#. Unknown flag.
-#: config/arc/arc.c:1783 config/m32r/m32r.c:2417 config/sparc/sparc.c:6145
+#: config/arc/arc.c:1781 config/m32r/m32r.c:2424 config/sparc/sparc.c:6533
msgid "invalid operand output code"
msgstr "çıkış kodu için geçersiz veri öğesi"
-#: config/arm/arm.c:436
+#: config/arm/arm.c:458
#, c-format
msgid "switch -mcpu=%s conflicts with -march= switch"
msgstr "switch -mcpu=%s ile -march= seçenekleri çelişiyor"
-#: config/arm/arm.c:446 config/rs6000/rs6000.c:444 config/sparc/sparc.c:381
+#: config/arm/arm.c:468 config/rs6000/rs6000.c:558 config/sparc/sparc.c:393
#, c-format
msgid "bad value (%s) for %s switch"
msgstr "%s seçeneği için değer (%s) hatalı"
-#: config/arm/arm.c:582
+#: config/arm/arm.c:604
msgid "target CPU does not support APCS-32"
msgstr "hedef CPU, APCS-32 desteklemiyor"
-#: config/arm/arm.c:587
+#: config/arm/arm.c:609
msgid "target CPU does not support APCS-26"
msgstr "hedef CPU, APCS-26 desteklemiyor"
-#: config/arm/arm.c:593
+#: config/arm/arm.c:615
msgid "target CPU does not support interworking"
msgstr "hedef MİB beraber çalışmayı desteklemiyor"
-#: config/arm/arm.c:599
+#: config/arm/arm.c:621
msgid "target CPU does not support THUMB instructions"
msgstr "hedef MİB THUMB komutlarını desteklemez."
-#: config/arm/arm.c:613
+#: config/arm/arm.c:635
msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
msgstr "geri izleme desteğinin etkinleştirilmesi sadece Thumb komut seti için derleme yapılırken anlamlıdır"
-#: config/arm/arm.c:616
+#: config/arm/arm.c:638
msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
msgstr "çağrılan ile birlikte çalışma desteğinin etkinleştirilmesi sadece Thumb için derleme sırasına anlamlıdır"
-#: config/arm/arm.c:619
+#: config/arm/arm.c:641
msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
msgstr "çağrıcı ile birlikte çalışma desteğinin etkinleştirilmesi sadece Thumb için derleme sırasına anlamlıdır"
-#: config/arm/arm.c:625
+#: config/arm/arm.c:647
msgid "interworking forces APCS-32 to be used"
msgstr "beraber çalışma, APCS-32'nin kullanılmasını gerektirir"
-#: config/arm/arm.c:631
+#: config/arm/arm.c:653
msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
msgstr "-mapcs-stack-check ile -mno-apcs-frame uyumsuz"
-#: config/arm/arm.c:639
+#: config/arm/arm.c:661
msgid "-fpic and -mapcs-reent are incompatible"
msgstr "-fpic ve -mapcs-reent uyumsuz"
-#: config/arm/arm.c:642
+#: config/arm/arm.c:664
msgid "APCS reentrant code not supported. Ignored"
msgstr "APCS yeniden girişli kod desteklenmiyor. Yoksayıldı"
-#: config/arm/arm.c:650
+#: config/arm/arm.c:672
msgid "-g with -mno-apcs-frame may not give sensible debugging"
msgstr "-g ve -mno-apcs-frame beraberce anlamlı hata ayıklama bilgisi vermeyebilir"
-#: config/arm/arm.c:658
+#: config/arm/arm.c:680
msgid "passing floating point arguments in fp regs not yet supported"
msgstr "henüz desteklenmeyen fp yazmaçlarındaki kayan noktalı argümanların aktarılmasında"
-#: config/arm/arm.c:687
+#: config/arm/arm.c:709
#, c-format
msgid "invalid floating point emulation option: -mfpe-%s"
msgstr "Geçersiz gerçel değer öykünüm seçeneği: -mfpe-%s"
-#: config/arm/arm.c:711
+#: config/arm/arm.c:733
msgid "structure size boundary can only be set to 8 or 32"
msgstr "veri yapısı boyut sınırı sadece 8 ya da 32 ye ayarlanabilir"
-#: config/arm/arm.c:719
+#: config/arm/arm.c:741
msgid "-mpic-register= is useless without -fpic"
msgstr "-mpic-register=, -fpic olmaksızın kullanışsız"
-#: config/arm/arm.c:726
+#: config/arm/arm.c:748
#, c-format
msgid "unable to use '%s' for PIC register"
msgstr "PIC yazmacı için '%s' kullanılamıyor"
-#: config/arm/arm.c:1970 config/arm/arm.c:1993 config/avr/avr.c:4703 config/c4x/c4x.c:4650 config/h8300/h8300.c:3045 config/i386/i386.c:1260 config/i386/i386.c:1289 config/m68hc11/m68hc11.c:1220 config/mcore/mcore.c:3505 config/ns32k/ns32k.c:1044 config/rs6000/rs6000.c:10760 config/sh/sh.c:5583 config/sh/sh.c:5603 config/sh/sh.c:5642 config/stormy16/stormy16.c:2010 config/v850/v850.c:2047
+#: config/arm/arm.c:2064 config/arm/arm.c:2087 config/avr/avr.c:4794
+#: config/c4x/c4x.c:4644 config/h8300/h8300.c:3667 config/i386/i386.c:1396
+#: config/i386/i386.c:1425 config/ip2k/ip2k.c:3224
+#: config/m68hc11/m68hc11.c:1267 config/mcore/mcore.c:3510
+#: config/ns32k/ns32k.c:1047 config/rs6000/rs6000.c:12538 config/sh/sh.c:5681
+#: config/sh/sh.c:5706 config/sh/sh.c:5745 config/stormy16/stormy16.c:2026
+#: config/v850/v850.c:2180
#, c-format
msgid "`%s' attribute only applies to functions"
msgstr "`%s' özniteliği sadece işlevlere uygulanır"
-#: config/arm/arm.c:9288
+#: config/arm/arm.c:9459
msgid "unable to compute real location of stacked parameter"
msgstr "yığındaki parametrenin gerçek konumu hesaplanamıyor"
-#: config/arm/arm.c:9968
+#: config/arm/arm.c:10138
msgid "no low registers available for popping high registers"
msgstr "yüksek yazmaçları emmek için alçak yazmaç bulunamadı"
-#: config/arm/arm.c:10160
+#: config/arm/arm.c:10389
msgid "interrupt Service Routines cannot be coded in Thumb mode"
msgstr "sistem kesmesi Servis Ä°ÅŸlemleri Thumb kipinde kodlanamaz"
-#: config/arm/pe.c:168 config/i386/winnt.c:290 config/mcore/mcore.c:3365
+#: config/arm/pe.c:168 config/mcore/mcore.c:3358
#, c-format
msgid "initialized variable `%s' is marked dllimport"
msgstr "ilklendirilmiÅŸ deÄŸiÅŸken `%s' dllimport imli"
-#: config/arm/pe.c:177 config/i386/winnt.c:299
+#: config/arm/pe.c:177
#, c-format
msgid "static variable `%s' is marked dllimport"
msgstr "statik deÄŸiÅŸken `%s' dllimport imli"
-#: config/arm/arm.h:422
+#: config/arm/arm.h:416
msgid "Generate APCS conformant stack frames"
msgstr "APCS uyumlu yığıt çerçeveleri üretir"
-#: config/arm/arm.h:425
+#: config/arm/arm.h:419
msgid "Store function names in object code"
msgstr "İşlev isimleri nesne kodunda saklanır"
-#: config/arm/arm.h:429
+#: config/arm/arm.h:423
msgid "Use the 32-bit version of the APCS"
msgstr "APCS'nin 32 bitlik sürümü kullanılır"
-#: config/arm/arm.h:431
+#: config/arm/arm.h:425
msgid "Use the 26-bit version of the APCS"
msgstr "APCS'nin 26 bitlik sürümü kullanılır"
-#: config/arm/arm.h:435
+#: config/arm/arm.h:429
msgid "Pass FP arguments in FP registers"
msgstr "FP yazmaçlarındaki FP argümanları aktarılır"
-#: config/arm/arm.h:438
+#: config/arm/arm.h:432
msgid "Generate re-entrant, PIC code"
msgstr "Yeniden girişli PIC kodu üretir"
-#: config/arm/arm.h:441
+#: config/arm/arm.h:435
msgid "The MMU will trap on unaligned accesses"
msgstr "MMU, hizalanmamış erişimleri yakalar"
-#: config/arm/arm.h:448
+#: config/arm/arm.h:442
msgid "Use library calls to perform FP operations"
msgstr "Kayan nokta işlemlerini yapmada kitaplık çağrıları kullanılır"
-#: config/arm/arm.h:450 config/i960/i960.h:281
+#: config/arm/arm.h:444 config/i960/i960.h:281
msgid "Use hardware floating point instructions"
msgstr "Donanım kayan nokta komutları kullanılır"
-#: config/arm/arm.h:452
+#: config/arm/arm.h:446
msgid "Assume target CPU is configured as big endian"
msgstr "Hedef MİB büyük ilkli yapılandırmaya sahip kabul edilir"
-#: config/arm/arm.h:454
+#: config/arm/arm.h:448
msgid "Assume target CPU is configured as little endian"
msgstr "Hedef MİB küçük ilkli yapılandırmaya sahip kabul edilir"
-#: config/arm/arm.h:456
+#: config/arm/arm.h:450
msgid "Assume big endian bytes, little endian words"
msgstr "Büyük ilkli baytlar, küçük ilkli word'ler varsayılır"
-#: config/arm/arm.h:458
+#: config/arm/arm.h:452
msgid "Support calls between Thumb and ARM instruction sets"
msgstr "Thumb ve ARM komut setleri arasında çağrılar desteklenir"
-#: config/arm/arm.h:461
+#: config/arm/arm.h:455
msgid "Generate a call to abort if a noreturn function returns"
msgstr "Değer döndürmeyen işlev değer döndürürse çıkış için çağrı üretilir"
-#: config/arm/arm.h:464
+#: config/arm/arm.h:458
msgid "Do not move instructions into a function's prologue"
msgstr "Komutlar bir işlevin önbilgisine taşınmaz"
-#: config/arm/arm.h:467
+#: config/arm/arm.h:461
msgid "Do not load the PIC register in function prologues"
msgstr "İşlev önbilgisine PIC yazmacını yüklemez"
-#: config/arm/arm.h:470
+#: config/arm/arm.h:464
msgid "Generate call insns as indirect calls, if necessary"
msgstr "Gerekliyse, çağrı komutları dolaylı çağrılar olarak üretilir"
-#: config/arm/arm.h:473
+#: config/arm/arm.h:467
msgid "Compile for the Thumb not the ARM"
msgstr "Thumb için derler, ARM için değil"
-#: config/arm/arm.h:477
+#: config/arm/arm.h:471
msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
msgstr "Thumb: Gerekmese dahi (yaprak olmayan) yığıt çerçeveleri üretir "
-#: config/arm/arm.h:480
+#: config/arm/arm.h:474
msgid "Thumb: Generate (leaf) stack frames even if not needed"
msgstr "Thumb: Gerekmese dahi (yaprak) yığıt çerçeveleri üretir"
-#: config/arm/arm.h:483
+#: config/arm/arm.h:477
msgid "Thumb: Assume non-static functions may be called from ARM code"
msgstr "Thumb: Statik olmayan işlevlerin ARM kodundan çağrılabileceğini varsayar"
-#: config/arm/arm.h:487
+#: config/arm/arm.h:481
msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
-msgstr "Thumb: İşlev göstergelerinin Thumb'dan habersiz kodu imleyebileceğini varsayar."
+msgstr "Thumb: İşlev göstericilerinin Thumb'dan habersiz kodu imleyebileceğini varsayar."
-#: config/arm/arm.h:497
+#: config/arm/arm.h:491
msgid "Specify the name of the target CPU"
msgstr "Hedef iÅŸlemcinin ismi belirtilir"
-#: config/arm/arm.h:499
+#: config/arm/arm.h:493
msgid "Specify the name of the target architecture"
msgstr "Hedef mimarinin ismi belirtilir"
-#: config/arm/arm.h:503
+#: config/arm/arm.h:497
msgid "Specify the version of the floating point emulator"
msgstr "Kayan nokta emülatörünün sürümü belirtilir"
-#: config/arm/arm.h:505
+#: config/arm/arm.h:499
msgid "Specify the minimum bit alignment of structures"
msgstr "Yapıların en küçük bit hizalaması belirtilir"
-#: config/arm/arm.h:507
+#: config/arm/arm.h:501
msgid "Specify the register to be used for PIC addressing"
msgstr "PIC adresleme için kullanılan yazmaç belirtilir"
@@ -8902,96 +9146,94 @@ msgstr "PIC adresleme için kullanılan yazmaç belirtilir"
msgid "Ignore dllimport attribute for functions"
msgstr "İşlevler için dllimport özelliği yoksayılır"
-#. None of these is actually used in cc1. If we don't define them in target
-#. switches cc1 complains about them. For the sake of argument lets allocate
-#. bit 31 of target flags for such options.
-#: config/arm/riscix.h:84
-msgid "Do symbol renaming for BSD"
-msgstr "Sembol isimlendirmesi BSD için yapılır"
-
-#: config/arm/riscix.h:85
-msgid "Do symbol renaming for X/OPEN"
-msgstr "Sembol isimlendirmesi X/OPEN için yapılır"
-
-#: config/arm/riscix.h:86
-msgid "Don't do symbol renaming"
-msgstr "Sembol isimlendirmesi yapılmaz"
-
-#: config/avr/avr.c:221
-#, c-format
-msgid "MCU `%s' not supported"
-msgstr "MCU `%s' desteklenmiyor"
-
-#: config/avr/avr.c:461
+#: config/avr/avr.c:528
#, c-format
msgid "large frame pointer change (%d) with -mtiny-stack"
-msgstr "-mtiny-stack ile büyük çerçeve göstergesi değişikliği (%d)"
+msgstr "-mtiny-stack ile büyük çerçeve göstericisi değişikliği (%d)"
-#: config/avr/avr.c:1056
+#: config/avr/avr.c:1135
msgid "bad address, not (reg+disp):"
msgstr "hatalı adres, (reg+disp) değil:"
-#: config/avr/avr.c:1064
+#: config/avr/avr.c:1143
msgid "internal compiler error. Bad address:"
msgstr "Derleyici iç hatası. Hatalı adres:"
-#: config/avr/avr.c:1077
+#: config/avr/avr.c:1156
msgid "internal compiler error. Unknown mode:"
msgstr "Derleyici iç hatası. Bilinmeyen kip:"
-#: config/avr/avr.c:1785 config/avr/avr.c:2497
+#: config/avr/avr.c:1864 config/avr/avr.c:2576
msgid "invalid insn:"
msgstr "geçersiz komut:"
-#: config/avr/avr.c:1822 config/avr/avr.c:1908 config/avr/avr.c:1957 config/avr/avr.c:1966 config/avr/avr.c:2064 config/avr/avr.c:2236 config/avr/avr.c:2534 config/avr/avr.c:2645
+#: config/avr/avr.c:1901 config/avr/avr.c:1987 config/avr/avr.c:2036
+#: config/avr/avr.c:2045 config/avr/avr.c:2143 config/avr/avr.c:2315
+#: config/avr/avr.c:2613 config/avr/avr.c:2724
msgid "incorrect insn:"
msgstr "yanlış komut:"
-#: config/avr/avr.c:1985 config/avr/avr.c:2149 config/avr/avr.c:2307 config/avr/avr.c:2689
+#: config/avr/avr.c:2064 config/avr/avr.c:2228 config/avr/avr.c:2386
+#: config/avr/avr.c:2768
msgid "unknown move insn:"
msgstr "bilinmeyen taşıma komutu:"
-#: config/avr/avr.c:2925
+#: config/avr/avr.c:3003
msgid "bad shift insn:"
msgstr "hatalı kaydırma komutu:"
-#: config/avr/avr.c:3041 config/avr/avr.c:3471 config/avr/avr.c:3851
+#: config/avr/avr.c:3119 config/avr/avr.c:3549 config/avr/avr.c:3929
msgid "internal compiler error. Incorrect shift:"
msgstr "Derleyici iç hatası. Yanlış kaydırma:"
-#: config/avr/avr.c:4676
+#: config/avr/avr.c:4767 config/ip2k/ip2k.c:3197
msgid "only initialized variables can be placed into program memory area"
msgstr "program bellek alanına sadece ilklendirilmiş değişkenler yerleştirilebilir"
-#: config/avr/avr.h:63
+#: config/avr/avr.c:4866
+msgid "only uninitialized variables can be placed in the .noinit section"
+msgstr ".noinit alanına sadece ilklendirilmiş değişkenler yerleştirilebilir"
+
+#: config/avr/avr.c:4881
+#, c-format
+msgid "MCU `%s' supported for assembler only"
+msgstr "MCU `%s' sadece sembolik çevirici için desteklenir"
+
+#: config/avr/avr.h:78
msgid "Assume int to be 8 bit integer"
msgstr "int türün 8 bitlik tamsayı olduğu varsayılır"
-#: config/avr/avr.h:65
+#: config/avr/avr.h:80
msgid "Change the stack pointer without disabling interrupts"
-msgstr "Yığın göstergesi kesmeler etkisizleştirilmeden değiştirilir"
+msgstr "Yığıt göstericisi kesmeler etkisizleştirilmeden değiştirilir"
-#: config/avr/avr.h:67
+#: config/avr/avr.h:82
msgid "Use subroutines for function prologue/epilogue"
msgstr "İşlev önbilgisi/sonbilgisi için altyordamlar kullanır"
-#: config/avr/avr.h:69
+#: config/avr/avr.h:84
msgid "Change only the low 8 bits of the stack pointer"
-msgstr "Yığın göstergesinin düşük 8 biti değiştirilir"
+msgstr "Yığıt göstericisinin düşük 8 biti değiştirilir"
-#: config/avr/avr.h:71
+#: config/avr/avr.h:86
msgid "Do not generate tablejump insns"
msgstr "Tablejump komutları üretilmez"
-#: config/avr/avr.h:74
+#: config/avr/avr.h:88
+msgid "Use rjmp/rcall (limited range) on >8K devices"
+msgstr ""
+">8k aygıtlarda rjmp/rcall (sınırlı aralık)\n"
+" kullanılır"
+
+#: config/avr/avr.h:91
msgid "Output instruction sizes to the asm file"
msgstr "Komut boyutlarını asm dosyasına çıktılar"
-#: config/avr/avr.h:87
+#: config/avr/avr.h:108
msgid "Specify the initial stack address"
msgstr "İç yığın adresi belirtilir"
-#: config/avr/avr.h:88
+#: config/avr/avr.h:109
msgid "Specify the MCU name"
msgstr "MCU ismi belirtilir"
@@ -9003,132 +9245,132 @@ msgstr "MCU ismi belirtilir"
#. For instance, the SH target has only positive offsets in
#. addresses. Thus sorting to put the smallest address first allows
#. the most combinations to be found.
-#: config/avr/avr.h:2566
+#: config/avr/avr.h:2450
msgid "trampolines not supported"
msgstr "trampolines desteklenmiyor"
-#: config/c4x/c4x-c.c:70
+#: config/c4x/c4x-c.c:69
#, c-format
msgid "missing '(' after '#pragma %s' - ignored"
msgstr "'#pragma %s' den sonra '(' eksik - yoksayıldı"
-#: config/c4x/c4x-c.c:73
+#: config/c4x/c4x-c.c:72
#, c-format
msgid "missing function name in '#pragma %s' - ignored"
msgstr "'#pragma %s' içinde işlev ismi eksik - yoksayıldı"
-#: config/c4x/c4x-c.c:78
+#: config/c4x/c4x-c.c:77
#, c-format
msgid "malformed '#pragma %s' - ignored"
msgstr "'#pragma %s' bozuk - yoksayıldı"
-#: config/c4x/c4x-c.c:80
+#: config/c4x/c4x-c.c:79
#, c-format
msgid "missing section name in '#pragma %s' - ignored"
msgstr "'#pragma %s' içinde bölüm ismi eksik - yoksayıldı"
-#: config/c4x/c4x-c.c:85
+#: config/c4x/c4x-c.c:84
#, c-format
msgid "missing ')' for '#pragma %s' - ignored"
msgstr "'#pragma %s' için ')' eksik - yoksayıldı"
-#: config/c4x/c4x-c.c:88
+#: config/c4x/c4x-c.c:87
#, c-format
msgid "junk at end of '#pragma %s'"
msgstr "'#pragma %s' den sonrası karışık"
-#: config/c4x/c4x.c:299
+#: config/c4x/c4x.c:280
#, c-format
msgid "unknown CPU version %d, using 40.\n"
msgstr "MİB sürümü %d bilinmiyor, 40 kullanılıyor.\n"
-#: config/c4x/c4x.c:883
+#: config/c4x/c4x.c:853
#, c-format
msgid "ISR %s requires %d words of local vars, max is 32767"
msgstr "ISR %s yerel değişkenlerin %d sözcüğünü gerektiriyor, en çok 32767"
-#: config/c4x/c4x.c:1635
+#: config/c4x/c4x.c:1602
msgid "using CONST_DOUBLE for address"
msgstr "adres için CONST_DOUBLE kullanılıyor"
-#: config/c4x/c4x.c:1775
+#: config/c4x/c4x.c:1742
msgid "c4x_address_cost: Invalid addressing mode"
msgstr "c4x_address_cost: Adresleme kipi geçersiz"
-#: config/c4x/c4x.c:1917
+#: config/c4x/c4x.c:1884
#, c-format
msgid "c4x_print_operand: %%L inconsistency"
msgstr "c4x_print_operand: %%L uyumsuzluÄŸu"
-#: config/c4x/c4x.c:1923
+#: config/c4x/c4x.c:1890
#, c-format
msgid "c4x_print_operand: %%N inconsistency"
msgstr "c4x_print_operand: %%N uyumsuzluÄŸu"
-#: config/c4x/c4x.c:1964
+#: config/c4x/c4x.c:1931
#, c-format
msgid "c4x_print_operand: %%O inconsistency"
msgstr "c4x_print_operand: %%O uyumsuzluÄŸu"
-#: config/c4x/c4x.c:2060
+#: config/c4x/c4x.c:2026
msgid "c4x_print_operand: Bad operand case"
msgstr "c4x_print_operand: Hatalı terim case"
-#: config/c4x/c4x.c:2103
+#: config/c4x/c4x.c:2069
msgid "c4x_print_operand_address: Bad post_modify"
msgstr "c4x_print_operand_address: Hatalı post_modify"
-#: config/c4x/c4x.c:2125
+#: config/c4x/c4x.c:2091
msgid "c4x_print_operand_address: Bad pre_modify"
msgstr "c4x_print_operand_address: Hatalı pre_modify"
-#: config/c4x/c4x.c:2173 config/c4x/c4x.c:2185 config/c4x/c4x.c:2200
+#: config/c4x/c4x.c:2139 config/c4x/c4x.c:2151 config/c4x/c4x.c:2166
msgid "c4x_print_operand_address: Bad operand case"
msgstr "c4x_print_operand_address: Hatalı terim case"
-#: config/c4x/c4x.c:2456
+#: config/c4x/c4x.c:2422
msgid "c4x_rptb_insert: Cannot find start label"
msgstr "c4x_rptb_insert: başlangıç etiketi bulunamıyor"
-#: config/c4x/c4x.c:3443 config/c4x/c4x.c:3463
+#: config/c4x/c4x.c:3409 config/c4x/c4x.c:3429
msgid "mode not QImode"
msgstr "kip QImode deÄŸil"
-#: config/c4x/c4x.c:3520
+#: config/c4x/c4x.c:3514
msgid "invalid indirect memory address"
msgstr "geçersiz dolaylı bellek adresi"
-#: config/c4x/c4x.c:3609
+#: config/c4x/c4x.c:3603
msgid "invalid indirect (S) memory address"
msgstr "dolaylı (S) bellek adresi geçersiz"
-#: config/c4x/c4x.c:3950
+#: config/c4x/c4x.c:3944
msgid "c4x_valid_operands: Internal error"
msgstr "c4x_valid_operands: İç hata"
-#: config/c4x/c4x.c:4430
+#: config/c4x/c4x.c:4424
msgid "c4x_operand_subword: invalid mode"
msgstr "c4x_operand_subword: geçersiz kip"
-#: config/c4x/c4x.c:4433
+#: config/c4x/c4x.c:4427
msgid "c4x_operand_subword: invalid operand"
msgstr "c4x_operand_subword: geçersiz terim"
#. We could handle these with some difficulty.
#. e.g., *p-- => *(p-=2); *(p+1).
-#: config/c4x/c4x.c:4459
+#: config/c4x/c4x.c:4453
msgid "c4x_operand_subword: invalid autoincrement"
msgstr "c4x_operand_subword: otomatik arttırma geçersiz"
-#: config/c4x/c4x.c:4465
+#: config/c4x/c4x.c:4459
msgid "c4x_operand_subword: invalid address"
msgstr "c4x_operand_subword: geçersiz adres"
-#: config/c4x/c4x.c:4476
+#: config/c4x/c4x.c:4470
msgid "c4x_operand_subword: address not offsettable"
msgstr "c4x_operand_subword: adres konumlanabilir deÄŸil"
-#: config/c4x/c4x.c:4676
+#: config/c4x/c4x.c:4670
msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
msgstr "c4x_rptb_rpts_p: Tekar bloğu tepe etiketi taşındı\n"
@@ -9136,7 +9378,6 @@ msgstr "c4x_rptb_rpts_p: Tekar bloğu tepe etiketi taşındı\n"
#. Name of the c4x linker.
#. Define assembler options.
#. Define linker options.
-#. Define C preprocessor options.
#. Specify the end file to link with.
#. Target compilation option flags.
#. Small memory model.
@@ -9172,595 +9413,534 @@ msgstr "c4x_rptb_rpts_p: Tekar bloğu tepe etiketi taşındı\n"
#. each pair being { "NAME", VALUE, "DESCRIPTION" }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/c4x/c4x.h:141
+#: config/c4x/c4x.h:168
msgid "Small memory model"
msgstr "Küçük bellek modeli"
-#: config/c4x/c4x.h:143
+#: config/c4x/c4x.h:170
msgid "Big memory model"
msgstr "Büyük bellek modeli"
-#: config/c4x/c4x.h:145
+#: config/c4x/c4x.h:172
msgid "Use MPYI instruction for C3x"
msgstr "C3x için MPYI komutu kullanılır"
-#: config/c4x/c4x.h:147
+#: config/c4x/c4x.h:174
msgid "Do not use MPYI instruction for C3x"
msgstr "C3x için MPYI komutu kullanılmaz"
-#: config/c4x/c4x.h:149
+#: config/c4x/c4x.h:176
msgid "Use fast but approximate float to integer conversion"
msgstr ""
"Kayan noktadan tamsayıya çevrimlerde hızlı fakat yaklaşık kesinlikte\n"
" çevrim kullanılır"
-#: config/c4x/c4x.h:151
+#: config/c4x/c4x.h:178
msgid "Use slow but accurate float to integer conversion"
msgstr ""
"Kayan noktadan tamsayıya çevrimlerde yavaş fakat yüksek kesinlikte\n"
" çevrim kullanır"
-#: config/c4x/c4x.h:153
+#: config/c4x/c4x.h:180
msgid "Enable use of RTPS instruction"
msgstr "RTPS komutunun kullanımı etkinleştirilir"
-#: config/c4x/c4x.h:155
+#: config/c4x/c4x.h:182
msgid "Disable use of RTPS instruction"
msgstr "RTPS komutunun kullanımı kapatılır"
-#: config/c4x/c4x.h:157
+#: config/c4x/c4x.h:184
msgid "Enable use of RTPB instruction"
msgstr "RTPB komutunun kullanımı etkinleştirilir"
-#: config/c4x/c4x.h:159
+#: config/c4x/c4x.h:186
msgid "Disable use of RTPB instruction"
msgstr "RTPB komutunun kullanımı kapatılır"
-#: config/c4x/c4x.h:161
+#: config/c4x/c4x.h:188
msgid "Generate code for C30 CPU"
msgstr "Kod C30 MİB için üretilir"
-#: config/c4x/c4x.h:163
+#: config/c4x/c4x.h:190
msgid "Generate code for C31 CPU"
msgstr "Kod C31 MİB için üretilir"
-#: config/c4x/c4x.h:165
+#: config/c4x/c4x.h:192
msgid "Generate code for C32 CPU"
msgstr "Kod C32 MİB için üretilir"
-#: config/c4x/c4x.h:167
+#: config/c4x/c4x.h:194
msgid "Generate code for C33 CPU"
msgstr "Kod C33 MİB için üretilir"
-#: config/c4x/c4x.h:169
+#: config/c4x/c4x.h:196
msgid "Generate code for C40 CPU"
msgstr "Kod C40 MİB için üretilir"
-#: config/c4x/c4x.h:171
+#: config/c4x/c4x.h:198
msgid "Generate code for C44 CPU"
msgstr "Kod C44 MİB için üretilir"
-#: config/c4x/c4x.h:173
+#: config/c4x/c4x.h:200
msgid "Emit code compatible with TI tools"
msgstr "TI araçları ile uyumlu kod üretir"
-#: config/c4x/c4x.h:175
+#: config/c4x/c4x.h:202
msgid "Emit code to use GAS extensions"
msgstr "GAS genişlemelerini kullanan kod üretir"
-#: config/c4x/c4x.h:177 config/c4x/c4x.h:181
+#: config/c4x/c4x.h:204 config/c4x/c4x.h:208
msgid "Save DP across ISR in small memory model"
msgstr "Düşük bellek modelinde DP'yi ISR'da saklar"
-#: config/c4x/c4x.h:179 config/c4x/c4x.h:183
+#: config/c4x/c4x.h:206 config/c4x/c4x.h:210
msgid "Don't save DP across ISR in small memory model"
msgstr "Düşük bellek modelinde DP'yi ISR'da saklamaz"
-#: config/c4x/c4x.h:185
+#: config/c4x/c4x.h:212
msgid "Pass arguments on the stack"
msgstr "Yığındaki argümanlar aktarılır"
-#: config/c4x/c4x.h:187
+#: config/c4x/c4x.h:214
msgid "Pass arguments in registers"
msgstr "Yazmaçlardaki argümanlar aktarılır"
-#: config/c4x/c4x.h:189
+#: config/c4x/c4x.h:216
msgid "Enable new features under development"
msgstr "Geliştirilmekte olan yeni özellikler etkinleştirilir"
-#: config/c4x/c4x.h:191
+#: config/c4x/c4x.h:218
msgid "Disable new features under development"
msgstr "Geliştirilmekte olan yeni özellikler kapatılır"
-#: config/c4x/c4x.h:193
+#: config/c4x/c4x.h:220
msgid "Use the BK register as a general purpose register"
msgstr "BK yazmaçları genel kullanım yazmaçları olarak kullanılır"
-#: config/c4x/c4x.h:195
+#: config/c4x/c4x.h:222
msgid "Do not allocate BK register"
msgstr "BK yazmaçları ayrılmaz"
-#: config/c4x/c4x.h:197
+#: config/c4x/c4x.h:224
msgid "Enable use of DB instruction"
msgstr "DB komutunun kullanımı etkinleştirilir"
-#: config/c4x/c4x.h:199
+#: config/c4x/c4x.h:226
msgid "Disable use of DB instruction"
msgstr "DB komutunun kullanımı kapatılır"
-#: config/c4x/c4x.h:201
+#: config/c4x/c4x.h:228
msgid "Enable debugging"
msgstr "Hata ayıklama etkinleştirilir"
-#: config/c4x/c4x.h:203
+#: config/c4x/c4x.h:230
msgid "Disable debugging"
msgstr "Hata ayıklama kapatılır"
-#: config/c4x/c4x.h:205
+#: config/c4x/c4x.h:232
msgid "Force constants into registers to improve hoisting"
msgstr "Kaldırmayı iyileştirmek için sabitleri yazmaçlarda saklar"
-#: config/c4x/c4x.h:207
+#: config/c4x/c4x.h:234
msgid "Don't force constants into registers"
msgstr "Sabitleri yazmaçlarda saklamaz"
-#: config/c4x/c4x.h:209
+#: config/c4x/c4x.h:236
msgid "Force RTL generation to emit valid 3 operand insns"
msgstr "RTL üretiminde geçerli 3 terimli komut üretmeye zorlar"
-#: config/c4x/c4x.h:211
+#: config/c4x/c4x.h:238
msgid "Allow RTL generation to emit invalid 3 operand insns"
msgstr "RTL üretiminde geçersiz 3 terimli komut üretimine izin verir"
-#: config/c4x/c4x.h:213
-msgid "Allow unsigned interation counts for RPTB/DB"
+#: config/c4x/c4x.h:240
+msgid "Allow unsigned iteration counts for RPTB/DB"
msgstr "RPTB/DB için yineleme sayılarının unsigned olmasına izin verir"
-#: config/c4x/c4x.h:215
+#: config/c4x/c4x.h:242
msgid "Disallow unsigned iteration counts for RPTB/DB"
msgstr "RPTB/DB için yineleme sayılarının unsigned olmasına izin vermez"
-#: config/c4x/c4x.h:217
+#: config/c4x/c4x.h:244
msgid "Preserve all 40 bits of FP reg across call"
msgstr "Çağrıda FP yazmacının bütün 40 bitini korur"
-#: config/c4x/c4x.h:219
+#: config/c4x/c4x.h:246
msgid "Only preserve 32 bits of FP reg across call"
msgstr "Çağrıda FP yazmacının yalnız 32 bitini korur"
-#: config/c4x/c4x.h:221
+#: config/c4x/c4x.h:248
msgid "Enable parallel instructions"
msgstr "Eşzamanlı komutlar etkinleştirilir"
-#: config/c4x/c4x.h:223
+#: config/c4x/c4x.h:250
msgid "Disable parallel instructions"
msgstr "Eşzamanlı komutlar kapatılır"
-#: config/c4x/c4x.h:225
+#: config/c4x/c4x.h:252
msgid "Enable MPY||ADD and MPY||SUB instructions"
msgstr "MPY||ADD ve MPY||SUB komutları etkinleştirilir"
-#: config/c4x/c4x.h:227
+#: config/c4x/c4x.h:254
msgid "Disable MPY||ADD and MPY||SUB instructions"
msgstr "MPY||ADD ve MPY||SUB komutları kapatılır"
-#: config/c4x/c4x.h:229
+#: config/c4x/c4x.h:256
msgid "Assume that pointers may be aliased"
-msgstr "Göstergelerin hizalı olabilecekleri varsayılır"
+msgstr "Göstericilerin hizalı olabilecekleri varsayılır"
-#: config/c4x/c4x.h:231
+#: config/c4x/c4x.h:258
msgid "Assume that pointers not aliased"
-msgstr "Göstergelerin hizalı olmadıkları varsayılır"
+msgstr "Göstericilerin hizalı olmadıkları varsayılır"
-#: config/c4x/c4x.h:304
+#: config/c4x/c4x.h:331
msgid "Specify maximum number of iterations for RPTS"
msgstr "RPTS için maksimum yineleme sayısını belirtir"
-#: config/c4x/c4x.h:306
+#: config/c4x/c4x.h:333
msgid "Select CPU to generate code for"
msgstr "Kodu üretilecek MİB seçilir"
-#. Macros used in the machine description to test the flags.
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/clipper/clipper.h:40
-msgid "Generate code for the C400"
-msgstr "Kod C400 MİB için üretilir"
-
-#: config/clipper/clipper.h:41
-msgid "Generate code for the C300"
-msgstr "Kod C300 MİB için üretilir"
-
-#: config/convex/convex.h:53
-msgid "Generate code for c1"
-msgstr "Kod c1 için üretilir"
-
-#: config/convex/convex.h:54
-msgid "Generate code for c2"
-msgstr "Kod c2 için üretilir"
-
-#: config/convex/convex.h:55
-msgid "Generate code for c32"
-msgstr "Kod c32 için üretilir"
-
-#: config/convex/convex.h:56 config/convex/convex.h:57
-msgid "Generate code for c34"
-msgstr "Kod c34 için üretilir"
-
-#: config/convex/convex.h:59
-msgid "Use standard calling sequence, with arg count word"
-msgstr "Standart çağrı sırasını kullnaır; argüman, sayı, word ile"
-
-#: config/convex/convex.h:61
-msgid "Place arg count in a nop instruction (faster than push)"
-msgstr "Argüman sayısını bir NOP işlemine koyar (basma'dan daha çabuk)"
-
-#: config/convex/convex.h:63
-msgid "Don't push arg count, depend on symbol table"
-msgstr "Argüman sayısını basmaz, sembol tablosunu kullanır"
-
-#: config/convex/convex.h:65
-msgid "Use data cache for volatile mem refs (default)"
-msgstr "Oynak bellek referansları için veri arabelleği kullanılır"
-
-#: config/convex/convex.h:67
-msgid "Don't use data cache for volatile mem refs"
-msgstr "Oynak bellek referansları için veri arabelleği kullanılmaz"
-
-#: config/convex/convex.h:69
-msgid "Bypass data cache for volatile mem refs"
-msgstr "Oynak bellek referansları için veri arabelleği atlanır"
-
-#: config/convex/convex.h:70
-msgid "Use 64-bit longs"
-msgstr "64 bitlik long'lar kullanılır"
-
-#: config/convex/convex.h:71
-msgid "Use cc- and libc-compatible 32-bit longs"
-msgstr "cc ve libc uyumlu 32 bitlik long'lar kullanılır"
-
-#: config/cris/cris.c:569
+#: config/cris/cris.c:599
msgid "unexpected index-type in cris_print_index"
msgstr "cris_print_index içinde umulmayan indis türü"
-#: config/cris/cris.c:585
+#: config/cris/cris.c:615
msgid "unexpected base-type in cris_print_base"
msgstr "cris_print_base içinde beklenmeyen taban türü"
-#: config/cris/cris.c:878
+#: config/cris/cris.c:908
#, c-format
msgid "stackframe too big: %d bytes"
msgstr "yığın kapsamı çok büyük: %d bayt"
-#: config/cris/cris.c:1193
+#: config/cris/cris.c:1223
msgid "allocated but unused delay list in epilogue"
msgstr "gecikme listesi son bölümde ayrıldı ama kullanılmadı "
-#: config/cris/cris.c:1203
+#: config/cris/cris.c:1233
msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
msgstr "__builtin_eh_return için yığın ayarı gerektiren işlev türü anlaşılamadı"
-#: config/cris/cris.c:1282
+#: config/cris/cris.c:1312
msgid "invalid operand for 'b' modifier"
msgstr "'b' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1294
+#: config/cris/cris.c:1324
msgid "invalid operand for 'v' modifier"
msgstr "'v' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1304
+#: config/cris/cris.c:1334
msgid "invalid operand for 'P' modifier"
msgstr "'P' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1311
+#: config/cris/cris.c:1341
msgid "invalid operand for 'p' modifier"
msgstr "'p' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1350
+#: config/cris/cris.c:1380
msgid "invalid operand for 'z' modifier"
msgstr "'z' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1381 config/cris/cris.c:1411
+#: config/cris/cris.c:1411 config/cris/cris.c:1441
msgid "invalid operand for 'H' modifier"
msgstr "'H' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1387
+#: config/cris/cris.c:1417
msgid "bad register"
msgstr "yazmaç kötü"
-#: config/cris/cris.c:1425
+#: config/cris/cris.c:1455
msgid "invalid operand for 'e' modifier"
msgstr "'e' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1442
+#: config/cris/cris.c:1472
msgid "invalid operand for 'm' modifier"
msgstr "'m' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1467
+#: config/cris/cris.c:1497
msgid "invalid operand for 'A' modifier"
msgstr "'A' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1475
+#: config/cris/cris.c:1505
msgid "invalid operand for 'D' modifier"
msgstr "'D' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1489
+#: config/cris/cris.c:1519
msgid "invalid operand for 'T' modifier"
msgstr "'T' değiştirici için terim geçersiz"
-#: config/cris/cris.c:1498
+#: config/cris/cris.c:1528
msgid "invalid operand modifier letter"
msgstr "terim değiştirici harfi geçersiz"
-#: config/cris/cris.c:1506
+#: config/cris/cris.c:1536
#, c-format
msgid "internal error: bad register: %d"
msgstr "iç hata: hatalı yazmaç: %d"
-#: config/cris/cris.c:1554
+#: config/cris/cris.c:1584
msgid "unexpected multiplicative operand"
msgstr "umulmayan çarpımsal terim"
-#: config/cris/cris.c:1574
+#: config/cris/cris.c:1604
msgid "unexpected operand"
msgstr "Beklenmeyen terim"
-#: config/cris/cris.c:1609 config/cris/cris.c:1619
+#: config/cris/cris.c:1639 config/cris/cris.c:1649
msgid "unrecognized address"
msgstr "bilinmeyen adres"
-#: config/cris/cris.c:1975
+#: config/cris/cris.c:2005
msgid "internal error: sideeffect-insn affecting main effect"
msgstr "iç hata: yan etkili komut main etkisi oluşturuyor"
#. If we get here, the caller got its initial tests wrong.
-#: config/cris/cris.c:2262
+#: config/cris/cris.c:2292
msgid "internal error: cris_side_effect_mode_ok with bad operands"
msgstr "iç hata: hatalı terimli cris_side_effect_mode_ok"
-#: config/cris/cris.c:2344 config/cris/cris.c:2402
+#: config/cris/cris.c:2374 config/cris/cris.c:2432
msgid "unrecognized supposed constant"
msgstr "tanınmayan tahmini sabit"
-#: config/cris/cris.c:2443
+#: config/cris/cris.c:2473
msgid "unrecognized supposed constant in cris_global_pic_symbol"
msgstr "cris_global_pic_symbol içinde tanınmayan tahmini sabit"
-#: config/cris/cris.c:2462
+#: config/cris/cris.c:2492
#, c-format
msgid "-max-stackframe=%d is not usable, not between 0 and %d"
msgstr "-max-stackframe=%d 0 ile %d arasında olmadığından kullanışsız"
-#: config/cris/cris.c:2490
+#: config/cris/cris.c:2520
#, c-format
msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
msgstr "-march= veya -mcpu= seçenekleri ile belirtilen CRIS sürüm özelliği bilinmiyor: %s"
-#: config/cris/cris.c:2526
+#: config/cris/cris.c:2556
#, c-format
msgid "unknown CRIS cpu version specification in -mtune= : %s"
msgstr "-mtune= seçeneği ile belirtilen CRIS mib sürüm özelliği bilinmiyor: %s"
-#: config/cris/cris.c:2544
+#: config/cris/cris.c:2574
msgid "-fPIC and -fpic are not supported in this configuration"
msgstr "-fPIC ve -fpic bu yapılandırma ile desteklenmiyor"
-#: config/cris/cris.c:2560
+#: config/cris/cris.c:2590
msgid "that particular -g option is invalid with -maout and -melinux"
msgstr "tek başına -g seçeneği -maout ve -melinux ile geçersiz"
-#: config/cris/cris.c:2790 config/cris/cris.c:2835
+#: config/cris/cris.c:2824 config/cris/cris.c:2869
msgid "unexpected side-effects in address"
msgstr "adreste beklenmeyen yan etkiler"
#. Labels are never marked as global symbols.
-#: config/cris/cris.c:2932 config/cris/cris.c:2963
+#: config/cris/cris.c:2966 config/cris/cris.c:2997
msgid "unexpected PIC symbol"
msgstr "beklenmeyen PIC sembolü"
-#: config/cris/cris.c:2936
+#: config/cris/cris.c:2970
msgid "PIC register isn't set up"
msgstr "PIC yazmacı ayarlı değil"
-#: config/cris/cris.c:2949 config/cris/cris.c:3032
+#: config/cris/cris.c:2983 config/cris/cris.c:3066
msgid "unexpected address expression"
msgstr "beklenmeyen adres ifadesi"
-#: config/cris/cris.c:2967
+#: config/cris/cris.c:3001
msgid "emitting PIC operand, but PIC register isn't set up"
msgstr "PIC terimi üretiliyor ama PIC yazmacı ayarlı değil"
-#: config/cris/cris.c:2976
+#: config/cris/cris.c:3010
msgid "unexpected NOTE as addr_const:"
msgstr "addr_const olarak beklenmeyen NOT:"
-#: config/cris/aout.h:106
+#: config/cris/aout.h:108
msgid "Compile for the MMU-less Etrax 100-based elinux system"
msgstr "MMU-suz Etrax 100-tabanlı elinux sistemi için derler"
-#: config/cris/aout.h:113
+#: config/cris/aout.h:115
msgid "For elinux, request a specified stack-size for this program"
msgstr "elinux için, bu programa belirli bir yığın boyutu isteniyor"
#. No "no-etrax" as it does not really imply any model. On the other hand, "etrax" implies the common (and large) subset matching all models.
-#: config/cris/cris.h:336
+#: config/cris/cris.h:340
msgid "Compile for ETRAX 4 (CRIS v3)"
msgstr "ETRAX 4 (CRIS v3) için derleme yapılır"
-#: config/cris/cris.h:341
+#: config/cris/cris.h:345
msgid "Compile for ETRAX 100 (CRIS v8)"
msgstr "ETRAX 100 (CRIS v8) için derleme yapılır"
-#: config/cris/cris.h:345
+#: config/cris/cris.h:349
msgid "Emit verbose debug information in assembly code"
msgstr "Çevirici kodunda ayrıntılı hata ayıklama bilgisi üretilir"
-#: config/cris/cris.h:348
+#: config/cris/cris.h:352
msgid "Do not use condition codes from normal instructions"
msgstr "Normal komutlardan koşul kodları kullanılmaz"
-#: config/cris/cris.h:352
+#: config/cris/cris.h:356
msgid "Do not emit addressing modes with side-effect assignment"
msgstr "Yan etki atamalı adresleme kipleri üretilmez"
-#: config/cris/cris.h:355
+#: config/cris/cris.h:359
msgid "Do not tune stack alignment"
msgstr "Yığın hiizalaması ayarlanmaz"
-#: config/cris/cris.h:358
+#: config/cris/cris.h:362
msgid "Do not tune writable data alignment"
msgstr "Yazılabilir veri hizalaması ayarlanmaz"
-#: config/cris/cris.h:361
+#: config/cris/cris.h:365
msgid "Do not tune code and read-only data alignment"
msgstr "Kod ve salt-okunur veri hizalaması ayarlanmaz"
-#: config/cris/cris.h:370
+#: config/cris/cris.h:374
msgid "Align code and data to 32 bits"
msgstr "Kod ve veri 32 bitlik hizalanır"
-#: config/cris/cris.h:383
+#: config/cris/cris.h:387
msgid "Don't align items in code or data"
msgstr "Kod ve verideki öğeler hizalanmaz"
-#: config/cris/cris.h:386
+#: config/cris/cris.h:390
msgid "Do not emit function prologue or epilogue"
msgstr "İşlev önsözü ya da sonsözü üretilmez"
#. We have to handle this m-option here since we can't wash it off in both CC1_SPEC and CC1PLUS_SPEC.
-#: config/cris/cris.h:390
+#: config/cris/cris.h:394
msgid "Use the most feature-enabling options allowed by other options"
msgstr "Diğer seçenekler tarafından izin verilen çoğu özellik-etkinleştirme seçeneği kullanılır"
#. We must call it "override-" since calling it "no-" will cause gcc.c to forget it, if there's a "later" -mbest-lib-options. Kludgy, but needed for some multilibbed files.
-#: config/cris/cris.h:396
+#: config/cris/cris.h:400
msgid "Override -mbest-lib-options"
msgstr "-mbest-lib-options reddedilir"
-#: config/cris/cris.h:428
+#: config/cris/cris.h:432
msgid "Generate code for the specified chip or CPU version"
msgstr "Verilen MİB sürümü ya da çip için kodu üretir"
-#: config/cris/cris.h:430
+#: config/cris/cris.h:434
msgid "Tune alignment for the specified chip or CPU version"
msgstr "Belirtilen çip veya mib için hizalama ayarlanır"
-#: config/cris/cris.h:432
+#: config/cris/cris.h:436
msgid "Warn when a stackframe is larger than the specified size"
msgstr "Bir yığın bağlamı belirli boyuttan büyük olduğunda uyarır"
#. Node: Profiling
-#: config/cris/cris.h:1029
+#: config/cris/cris.h:1022
msgid "no FUNCTION_PROFILER for CRIS"
msgstr "CRIS için FUNCTION_PROFILER yok"
-#: config/cris/linux.h:74
+#: config/cris/linux.h:71
msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
msgstr "-fpic ve -fPIC ile birlikte GOTPLT başvurularını kullanmayın"
-#: config/d30v/d30v.c:209
+#: config/d30v/d30v.c:207
#, c-format
msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
msgstr "yazmaç %s, kip1 %s, kip2 %s için modes_tieable_p hatalı"
-#: config/d30v/d30v.c:2676
+#: config/d30v/d30v.c:2666
msgid "bad insn to d30v_print_operand_address:"
msgstr "d30v_print_operand_address için hatalı komut:"
-#: config/d30v/d30v.c:2693 config/d30v/d30v.c:2754 config/d30v/d30v.c:2775 config/d30v/d30v.c:2793
+#: config/d30v/d30v.c:2683 config/d30v/d30v.c:2744 config/d30v/d30v.c:2765
+#: config/d30v/d30v.c:2783
msgid "bad insn to d30v_print_operand_memory_reference:"
msgstr "d30v_print_operand_memory_reference için hatalı komut:"
-#: config/d30v/d30v.c:2861
+#: config/d30v/d30v.c:2851
msgid "bad insn to d30v_print_operand, 'f' modifier:"
msgstr "d30v_print_operand, 'f' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2870
+#: config/d30v/d30v.c:2860
msgid "bad insn to d30v_print_operand, 'A' modifier:"
msgstr "d30v_print_operand, 'A' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2877
+#: config/d30v/d30v.c:2867
msgid "bad insn to d30v_print_operand, 'M' modifier:"
msgstr "d30v_print_operand, 'M' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2931
+#: config/d30v/d30v.c:2921
msgid "bad insn to print_operand, 'F' or 'T' modifier:"
msgstr "print_operand, 'F' ya da 'T' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2942
+#: config/d30v/d30v.c:2932
msgid "bad insn to print_operand, 'B' modifier:"
msgstr "print_operand, 'B' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2949
+#: config/d30v/d30v.c:2939
msgid "bad insn to print_operand, 'E' modifier:"
msgstr "print_operand, 'E' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2967
+#: config/d30v/d30v.c:2957
msgid "bad insn to print_operand, 'R' modifier:"
msgstr "print_operand, 'R' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:2976 config/d30v/d30v.c:2984
+#: config/d30v/d30v.c:2966 config/d30v/d30v.c:2974
msgid "bad insn to print_operand, 's' modifier:"
msgstr "print_operand, 's' değiştirici için hatalı komut:"
-#: config/d30v/d30v.c:3013
+#: config/d30v/d30v.c:3003
msgid "bad insn in d30v_print_operand, 0 case"
msgstr "d30v_print_operand, 0 case içinde hatalı komut:"
-#: config/d30v/d30v.c:3368
+#: config/d30v/d30v.c:3301
msgid "d30v_emit_comparison"
msgstr "d30v_emit_comparison"
-#: config/d30v/d30v.c:3412
+#: config/d30v/d30v.c:3345
msgid "bad call to d30v_move_2words"
msgstr "d30v_move_2words çağrısı hatalı"
-#: config/d30v/d30v.h:108
+#: config/d30v/d30v.h:114
msgid "Enable use of conditional move instructions"
msgstr "Koşullu taşıma komutlarının kullanımı etkinleştirilir"
-#: config/d30v/d30v.h:111
+#: config/d30v/d30v.h:117
msgid "Disable use of conditional move instructions"
msgstr "Koşullu taşıma komutlarının kullanımı kapatılır"
-#: config/d30v/d30v.h:114
+#: config/d30v/d30v.h:120
msgid "Debug argument support in compiler"
msgstr "Derleyici argüman desteğinde hata ayıklar"
-#: config/d30v/d30v.h:117
+#: config/d30v/d30v.h:123
msgid "Debug stack support in compiler"
msgstr "Derleyici yığıt desteğinde hata ayıklar"
-#: config/d30v/d30v.h:120
+#: config/d30v/d30v.h:126
msgid "Debug memory address support in compiler"
msgstr "Derleyici bellek adresi desteğinde hata ayıklar"
-#: config/d30v/d30v.h:123
+#: config/d30v/d30v.h:129
msgid "Make adjacent short instructions parallel if possible"
msgstr ""
"Ardışık sıralı short komutlarını eğer mümkünse,\n"
" eşzamanlı işler"
-#: config/d30v/d30v.h:126
+#: config/d30v/d30v.h:132
msgid "Do not make adjacent short instructions parallel"
msgstr "Ardışık sıralı short komutlarını eşzamanlamaz"
-#: config/d30v/d30v.h:129 config/d30v/d30v.h:132
+#: config/d30v/d30v.h:135 config/d30v/d30v.h:138
msgid "Link programs/data to be in external memory by default"
msgstr "Öntanımlı olarak yazılım/verileri dış bellekte olacak şekilde bağlar"
-#: config/d30v/d30v.h:135
+#: config/d30v/d30v.h:141
msgid "Link programs/data to be in onchip memory by default"
msgstr "Öntanımlı olarak yazılım/verileri çip-içi bellekte olacak şekilde bağlar"
-#: config/d30v/d30v.h:143
+#: config/d30v/d30v.h:149
msgid "Change the branch costs within the compiler"
msgstr "Derleyicide dal maliyetlerini deÄŸiÅŸtirir"
-#: config/d30v/d30v.h:146
+#: config/d30v/d30v.h:152
msgid "Change the threshold for conversion to conditional execution"
msgstr "Koşullu çalışmaya geçiş için eşik değerini değiştirir"
@@ -9772,31 +9952,27 @@ msgstr "Yığın uzunluğu > 32k"
msgid "invalid addressing mode"
msgstr "geçersiz adresleme kipi"
-#: config/dsp16xx/dsp16xx.c:1857
+#: config/dsp16xx/dsp16xx.c:1821
msgid "bad register extension code"
msgstr "hatalı yazmaç uzantı kodu"
-#: config/dsp16xx/dsp16xx.c:1958
+#: config/dsp16xx/dsp16xx.c:1921
msgid "invalid offset in ybase addressing"
msgstr "ybase adreslemedeki göreli konum geçersiz"
-#: config/dsp16xx/dsp16xx.c:1961
+#: config/dsp16xx/dsp16xx.c:1924
msgid "invalid register in ybase addressing"
msgstr "ybase adreslemedeki yazmaç geçersiz"
-#: config/dsp16xx/dsp16xx.c:1990
-msgid "inline float constants not supported on this host"
-msgstr "gerçel sayı sabitlerin `inline' bildirimi bu makinada desteklenmiyor"
-
-#: config/dsp16xx/dsp16xx.c:2140
+#: config/dsp16xx/dsp16xx.c:2099
msgid "invalid shift operator in emit_1600_core_shift"
-msgstr "emit_1600_core_shift içindeki kaydırma işlemimi geçersiz"
+msgstr "emit_1600_core_shift içindeki kaydırma işleci geçersiz"
-#: config/dsp16xx/dsp16xx.c:2469
+#: config/dsp16xx/dsp16xx.c:2428
msgid "invalid mode for gen_tst_reg"
msgstr "gen_tst_reg için kip geçersiz"
-#: config/dsp16xx/dsp16xx.c:2541
+#: config/dsp16xx/dsp16xx.c:2500
msgid "invalid mode for integer comparison in gen_compare_reg"
msgstr "gen_compare_reg içindeki tamsayı karşılaştırması için kip geçersiz"
@@ -9805,236 +9981,379 @@ msgstr "gen_compare_reg içindeki tamsayı karşılaştırması için kip geçer
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/dsp16xx/dsp16xx.h:215
+#: config/dsp16xx/dsp16xx.h:230
msgid "Pass parameters in registers (default)"
msgstr "Yazmaçlardaki parametreler aktarılır (öntanımlı)"
-#: config/dsp16xx/dsp16xx.h:217
+#: config/dsp16xx/dsp16xx.h:232
msgid "Don't pass parameters in registers"
msgstr "Yazmaçlardaki parametreler aktarılmaz"
-#: config/dsp16xx/dsp16xx.h:219
+#: config/dsp16xx/dsp16xx.h:234
msgid "Generate code for near calls"
msgstr "Yakın bellek çağrıları için kodu üretilir"
-#: config/dsp16xx/dsp16xx.h:221
+#: config/dsp16xx/dsp16xx.h:236
msgid "Don't generate code for near calls"
msgstr "Yakın bellek çağrıları için kodu üretilmez"
-#: config/dsp16xx/dsp16xx.h:223
+#: config/dsp16xx/dsp16xx.h:238
msgid "Generate code for near jumps"
msgstr "Yakın bellek sıçramaları için kodu üretilir"
-#: config/dsp16xx/dsp16xx.h:225
+#: config/dsp16xx/dsp16xx.h:240
msgid "Don't generate code for near jumps"
msgstr "Yakın bellek sıçramaları için kodu üretilmez"
-#: config/dsp16xx/dsp16xx.h:227
+#: config/dsp16xx/dsp16xx.h:242
msgid "Generate code for a bit-manipulation unit"
msgstr "Bit işleme birimi için kod üretilir"
-#: config/dsp16xx/dsp16xx.h:229
+#: config/dsp16xx/dsp16xx.h:244
msgid "Don't generate code for a bit-manipulation unit"
msgstr "Bir bit-işleme birimi için kod üretilmez"
-#: config/dsp16xx/dsp16xx.h:231
+#: config/dsp16xx/dsp16xx.h:246
msgid "Generate code for memory map1"
msgstr "Bellek eşlem1 için kod üretilir"
-#: config/dsp16xx/dsp16xx.h:233
+#: config/dsp16xx/dsp16xx.h:248
msgid "Generate code for memory map2"
msgstr "Bellek eşlem2 için kod üretilir"
-#: config/dsp16xx/dsp16xx.h:235
+#: config/dsp16xx/dsp16xx.h:250
msgid "Generate code for memory map3"
msgstr "Bellek eşlem3 için kod üretilir"
-#: config/dsp16xx/dsp16xx.h:237
+#: config/dsp16xx/dsp16xx.h:252
msgid "Generate code for memory map4"
msgstr "Bellek eşlem4 için kod üretilir"
-#: config/dsp16xx/dsp16xx.h:239
+#: config/dsp16xx/dsp16xx.h:254
msgid "Ouput extra code for initialized data"
msgstr "İlklendirilmiş veri için fazladan kod çıktılar"
-#: config/dsp16xx/dsp16xx.h:241
+#: config/dsp16xx/dsp16xx.h:256
msgid "Don't let reg. allocator use ybase registers"
msgstr "ybase yazmaçların ayrılma sırası denetlenmez"
-#: config/dsp16xx/dsp16xx.h:243
+#: config/dsp16xx/dsp16xx.h:258
msgid "Output extra debug info in Luxworks environment"
msgstr "Luxworks ortamında fazladan hata ayıklama bilgisi çıktılar"
-#: config/dsp16xx/dsp16xx.h:245
+#: config/dsp16xx/dsp16xx.h:260
msgid "Save temp. files in Luxworks environment"
msgstr "Luxworks ortamında geçici dosyalar kaydedilir"
-#: config/dsp16xx/dsp16xx.h:257
+#: config/dsp16xx/dsp16xx.h:272
msgid "Specify alternate name for text section"
msgstr "Metin bölümü için alternatif isim belirtilir"
-#: config/dsp16xx/dsp16xx.h:259
+#: config/dsp16xx/dsp16xx.h:274
msgid "Specify alternate name for data section"
msgstr "Veri bölümü için alternatif isim belirtilir"
-#: config/dsp16xx/dsp16xx.h:261
+#: config/dsp16xx/dsp16xx.h:276
msgid "Specify alternate name for bss section"
msgstr "bss bölümü için alternatif isim belirtilir"
-#: config/dsp16xx/dsp16xx.h:263
+#: config/dsp16xx/dsp16xx.h:278
msgid "Specify alternate name for constant section"
msgstr "Sabit bölümü için alternatif isim belirtilir"
-#: config/dsp16xx/dsp16xx.h:265
+#: config/dsp16xx/dsp16xx.h:280
msgid "Specify alternate name for dsp16xx chip"
msgstr "dsp16xx çipi için alternatif isim belirtilir"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/dsp16xx/dsp16xx.h:1219 config/dsp16xx/dsp16xx.h:1224 config/dsp16xx/dsp16xx.h:1229 config/dsp16xx/dsp16xx.h:1809 config/dsp16xx/dsp16xx.h:1814
+#: config/dsp16xx/dsp16xx.h:1218 config/dsp16xx/dsp16xx.h:1772
+#: config/dsp16xx/dsp16xx.h:1777
msgid "profiling not implemented yet"
msgstr "ayrımlama henüz programlanmadı."
#. Emit RTL insns to initialize the variable parts of a trampoline.
#. FNADDR is an RTX for the address of the function's pure code.
#. CXT is an RTX for the static chain value for the function.
-#: config/dsp16xx/dsp16xx.h:1240 config/dsp16xx/dsp16xx.h:1252
+#: config/dsp16xx/dsp16xx.h:1228 config/dsp16xx/dsp16xx.h:1240
msgid "trampolines not yet implemented"
msgstr "trampolines henüz programlanmadı"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/elxsi/elxsi.h:51
-msgid "Generate code the unix assembler can handle"
-msgstr "Unix çeviricinin kullanabileceği kod üretilir"
-
-#: config/elxsi/elxsi.h:52
-msgid "Generate code an embedded assembler can handle"
-msgstr "Bir gömülü çeviricinin kullanabileceği kod üretilir"
-
-#: config/fr30/fr30.c:456
+#: config/fr30/fr30.c:453
msgid "fr30_print_operand_address: unhandled address"
msgstr "fr30_print_operand_address: bilinmeyen adres"
-#: config/fr30/fr30.c:483
+#: config/fr30/fr30.c:480
#, c-format
msgid "fr30_print_operand: unrecognized %%p code"
msgstr "fr30_print_operand: bilinmeyen %%p kodu"
-#: config/fr30/fr30.c:503
+#: config/fr30/fr30.c:500
#, c-format
msgid "fr30_print_operand: unrecognized %%b code"
msgstr "fr30_print_operand: bilinmeyen %%b kodu"
-#: config/fr30/fr30.c:524
+#: config/fr30/fr30.c:521
#, c-format
msgid "fr30_print_operand: unrecognized %%B code"
msgstr "fr30_print_operand: bilinmeyen %%B kodu"
-#: config/fr30/fr30.c:532
+#: config/fr30/fr30.c:529
#, c-format
msgid "fr30_print_operand: invalid operand to %%A code"
msgstr "fr30_print_operand: %%A koduna terim geçersiz"
-#: config/fr30/fr30.c:549
+#: config/fr30/fr30.c:546
#, c-format
msgid "fr30_print_operand: invalid %%x code"
msgstr "fr30_print_operand: %%x kodu geçersiz"
-#: config/fr30/fr30.c:556
+#: config/fr30/fr30.c:553
#, c-format
msgid "fr30_print_operand: invalid %%F code"
msgstr "fr30_print_operand: %%F kodu geçersiz"
-#: config/fr30/fr30.c:572
+#: config/fr30/fr30.c:570
msgid "fr30_print_operand: unknown code"
msgstr "fr30_print_operand: bilinmeyen kod"
-#: config/fr30/fr30.c:601 config/fr30/fr30.c:610 config/fr30/fr30.c:621 config/fr30/fr30.c:634
+#: config/fr30/fr30.c:599 config/fr30/fr30.c:608 config/fr30/fr30.c:619
+#: config/fr30/fr30.c:632
msgid "fr30_print_operand: unhandled MEM"
msgstr "fr30_print_operand: bilinmeyen bellek"
-#: config/fr30/fr30.h:57
+#: config/fr30/fr30.h:63
msgid "Assume small address space"
msgstr "Küçük adres alanı varsayılır"
-#: config/h8300/h8300.c:142
+#: config/frv/frv.c:410 config/frv/frv.c:428
+#, c-format
+msgid "Unknown cpu: -mcpu=%s"
+msgstr "Bilinmeyen iÅŸlemci: -mcpu=%s"
+
+#: config/frv/frv.c:451
+msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+msgstr "-fpic ve -gdwarf uyumsuz (-fpic ve -g/-gdwarf-2 uyumlu)"
+
+#: config/frv/frv.c:2520
+msgid "Bad insn to frv_print_operand_address:"
+msgstr "frv_print_operand_address için hatalı komut:"
+
+#: config/frv/frv.c:2533
+msgid "Bad register to frv_print_operand_memory_reference_reg:"
+msgstr "frv_print_operand_memory_reference_reg için hatalı komut:"
+
+#: config/frv/frv.c:2574 config/frv/frv.c:2584 config/frv/frv.c:2593
+#: config/frv/frv.c:2621 config/frv/frv.c:2633 config/frv/frv.c:2637
+msgid "Bad insn to frv_print_operand_memory_reference:"
+msgstr "frv_print_operand_memory_reference için hatalı komut:"
+
+#: config/frv/frv.c:2779
+msgid "Bad insn in frv_print_operand, bad const_double"
+msgstr "frvv_print_operand içinde hatalı komut, const_double hatalı"
+
+#: config/frv/frv.c:2824
+msgid "Bad insn to frv_print_operand, 'C' modifier:"
+msgstr "frv_print_operand, 'C' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2847
+msgid "Bad insn to frv_print_operand, 'c' modifier:"
+msgstr "frv_print_operand, 'c' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2872
+msgid "Bad insn to frv_print_operand, 'e' modifier:"
+msgstr "frv_print_operand, 'e' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2880
+msgid "Bad insn to frv_print_operand, 'F' modifier:"
+msgstr "frv_print_operand, 'F' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2896
+msgid "Bad insn to frv_print_operand, 'f' modifier:"
+msgstr "frv_print_operand, 'f' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2949
+msgid "Bad insn to frv_print_operand, 'L' modifier:"
+msgstr "frv_print_operand, 'L' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2962
+msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr "frv_print_operand, 'M/N' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:2983
+msgid "Bad insn to frv_print_operand, 'O' modifier:"
+msgstr "frv_print_operand, 'O' değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:3001
+msgid "Bad insn to frv_print_operand, P modifier:"
+msgstr "frv_print_operand, P değiştirici için hatalı komut:"
+
+#: config/frv/frv.c:3021
+msgid "Bad insn in frv_print_operand, z case"
+msgstr "frv_print_operand, z case içinde hatalı komut"
+
+#: config/frv/frv.c:3049
+msgid "Bad insn in frv_print_operand, 0 case"
+msgstr "frv_print_operand, 0 case içinde hatalı komut"
+
+#: config/frv/frv.c:3054
+msgid "frv_print_operand: unknown code"
+msgstr "frv_print_operand: bilinmeyen kod"
+
+#: config/frv/frv.c:5737
+msgid "Bad output_move_single operand"
+msgstr "output_move_single terimi hatalı"
+
+#: config/frv/frv.c:5866
+msgid "Bad output_move_double operand"
+msgstr "output_move_double terimi hatalı"
+
+#: config/frv/frv.c:6010
+msgid "Bad output_condmove_single operand"
+msgstr "output_condmove_single terimi hatalı"
+
+#: config/frv/frv.c:8315
+msgid "frv_registers_update"
+msgstr "frv_registers_update"
+
+#: config/frv/frv.c:8475
+msgid "frv_registers_used_p"
+msgstr "frv_registers_used_p"
+
+#: config/frv/frv.c:8604
+msgid "frv_registers_set_p"
+msgstr "frv_registers_set_p"
+
+#: config/frv/frv.c:9171
+msgid "accumulator is not a constant integer"
+msgstr "toplayıcı bir tamsayı sabit değil"
+
+#: config/frv/frv.c:9176
+msgid "accumulator number is out of bounds"
+msgstr "toplayıcı sayısı kapsamdışı"
+
+#: config/frv/frv.c:9187
+#, c-format
+msgid "inappropriate accumulator for `%s'"
+msgstr "`%s' için ilgisiz toplayıcı"
+
+#: config/frv/frv.c:9253
+#, c-format
+msgid "`%s' expects a constant argument"
+msgstr "`%s' bir tamsayı sabit argüman olarak beklenir"
+
+#: config/frv/frv.c:9258
+#, c-format
+msgid "constant argument out of range for `%s'"
+msgstr "sabit argüman `%s' için kapsamdışı"
+
+#: config/frv/frv.c:9638
+msgid "media functions are not available unless -mmedia is used"
+msgstr "ortam işlevleri -mmedia kullanılmadıkça geçersizdir"
+
+#: config/frv/frv.c:9650
+msgid "this media function is only available on the fr500"
+msgstr "bu ortam işlevi sadece fr500 üzerinde kullanılabilir"
+
+#: config/frv/frv.c:9678
+msgid "this media function is only available on the fr400"
+msgstr "bu ortam işlevi sadece fr400 üzerinde kullanılabilir"
+
+#. This macro is a C statement to print on `stderr' a string describing the
+#. particular machine description choice. Every machine description should
+#. define `TARGET_VERSION'. For example:
+#.
+#. #ifdef MOTOROLA
+#. #define TARGET_VERSION fprintf (stderr, " (68k, Motorola syntax)");
+#. #else
+#. #define TARGET_VERSION fprintf (stderr, " (68k, MIT syntax)");
+#. #endif
+#: config/frv/frv.h:512
+msgid " (frv)"
+msgstr " (frv)"
+
+#: config/h8300/h8300.c:314
msgid "-ms2600 is used without -ms"
msgstr "-ms2600, -ms olmaksızın kullanılmış"
+#: config/h8300/h8300.c:320
+msgid "-mn is used without -mh or -ms"
+msgstr "-mn, -mh veya -ms olmaksızın kullanılmış"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/h8300/h8300.h:117
-msgid "Generate H8/S code"
-msgstr "H8/S kodu üretilir"
+#: config/h8300/h8300.h:150
+msgid "Generate H8S code"
+msgstr "H8S kodu üretilir"
-#: config/h8300/h8300.h:118
-msgid "Do not generate H8/S code"
-msgstr "H8/S kodu üretilmez"
+#: config/h8300/h8300.h:151
+msgid "Do not generate H8S code"
+msgstr "H8S kodu üretilmez"
-#: config/h8300/h8300.h:119
-msgid "Generate H8/S2600 code"
-msgstr "H8/S2600 kodu üretilir"
+#: config/h8300/h8300.h:152
+msgid "Generate H8S/2600 code"
+msgstr "H8S/2600 kodu üretilir"
-#: config/h8300/h8300.h:120
-msgid "Do not generate H8/S2600 code"
-msgstr "H8/S2600 kodu üretilmez"
+#: config/h8300/h8300.h:153
+msgid "Do not generate H8S/2600 code"
+msgstr "H8S/2600 kodu üretilmez"
-#: config/h8300/h8300.h:121
+#: config/h8300/h8300.h:154
msgid "Make integers 32 bits wide"
msgstr "Tamsayılar 32 bitlik yapılır"
-#: config/h8300/h8300.h:124
+#: config/h8300/h8300.h:157
msgid "Use registers for argument passing"
msgstr "Argüman aktarımı için yazmaçlar kullanılır"
-#: config/h8300/h8300.h:126
+#: config/h8300/h8300.h:159
msgid "Do not use registers for argument passing"
msgstr "Argüman aktarımı için yazmaçlar kullanılmaz"
-#: config/h8300/h8300.h:128
+#: config/h8300/h8300.h:161
msgid "Consider access to byte sized memory slow"
msgstr "Bayt bayt erişilen belleğin yavaş olduğu varsayılır"
-#: config/h8300/h8300.h:129
+#: config/h8300/h8300.h:162
msgid "Enable linker relaxing"
msgstr "Bağlayıcı gevşetmesi etkinleştirilir"
-#: config/h8300/h8300.h:131
+#: config/h8300/h8300.h:164
msgid "Generate H8/300H code"
msgstr "H8/300H kodu üretilir"
-#: config/h8300/h8300.h:132
+#: config/h8300/h8300.h:165
+msgid "Enable the normal mode"
+msgstr "Normal kip etkinleÅŸtirilir"
+
+#: config/h8300/h8300.h:166
msgid "Do not generate H8/300H code"
msgstr "H8/300H kodu üretilmez"
-#: config/h8300/h8300.h:133
+#: config/h8300/h8300.h:167
msgid "Use H8/300 alignment rules"
msgstr "H8/300 hizalama kuralları kullanılır"
-#: config/i370/i370-c.c:54
+#: config/i370/i370-c.c:53
msgid "junk at end of #pragma map"
msgstr "'#pragma map' sonunda karışıklık"
-#: config/i370/i370-c.c:60
+#: config/i370/i370-c.c:59
msgid "malformed #pragma map, ignored"
msgstr "'#pragma map' bozuk, yoksayıldı"
-#: config/i370/i370.c:897
+#: config/i370/i370.c:915
msgid "real name is too long - alias ignored"
msgstr "gerçek isim çok uzun - takma ad yoksayıldı"
-#: config/i370/i370.c:902
+#: config/i370/i370.c:920
msgid "alias name is too long - alias ignored"
msgstr "takma ad çok uzun - takma ad yoksayıldı"
-#: config/i370/i370.c:1173
+#: config/i370/i370.c:1191
msgid "internal error--no jump follows compare:"
msgstr "iç hata -- karşılaştırmayı izleyen bir jump yok:"
@@ -10042,343 +10361,378 @@ msgstr "iç hata -- karşılaştırmayı izleyen bir jump yok:"
#. of pairs in braces, each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/i370/i370.h:63
+#: config/i370/i370.h:75
msgid "Generate char instructions"
msgstr "char komutları üretilir"
-#: config/i370/i370.h:64
+#: config/i370/i370.h:76
msgid "Do not generate char instructions"
msgstr "char komutları üretilmez"
-#: config/i386/i386.c:925
+#: config/i386/i386.c:1050
#, c-format
msgid "code model %s not supported in PIC mode"
msgstr "PIC kipinde %s kod modeli desteklenmiyor"
-#: config/i386/i386.c:935 config/sparc/sparc.c:344
+#: config/i386/i386.c:1060 config/sparc/sparc.c:356
#, c-format
msgid "bad value (%s) for -mcmodel= switch"
msgstr "-mcmodel= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:950
+#: config/i386/i386.c:1075
#, c-format
msgid "bad value (%s) for -masm= switch"
msgstr "-masm= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:953
+#: config/i386/i386.c:1078
#, c-format
msgid "code model `%s' not supported in the %s bit mode"
msgstr "%2$s bit kipinde `%1$s' kod modeli desteklenmiyor"
-#: config/i386/i386.c:956
+#: config/i386/i386.c:1081
msgid "code model `large' not supported yet"
msgstr "'büyük' kod modeli henüz desteklenmiyor"
-#: config/i386/i386.c:958
+#: config/i386/i386.c:1083
#, c-format
msgid "%i-bit mode not compiled in"
msgstr "%i bitlik kip bunun içinde derlenmiş değil:"
-#: config/i386/i386.c:988 config/mips/mips.c:4989
+#: config/i386/i386.c:1113
#, c-format
msgid "bad value (%s) for -march= switch"
msgstr "-march= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:999 config/mips/mips.c:4945
+#: config/i386/i386.c:1124
#, c-format
msgid "bad value (%s) for -mcpu= switch"
msgstr "-mcpu= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1018
+#: config/i386/i386.c:1141
#, c-format
msgid "-mregparm=%d is not between 0 and %d"
msgstr "-mregparm=%d 0 ile %d arasında değil"
-#: config/i386/i386.c:1031
+#: config/i386/i386.c:1154
msgid "-malign-loops is obsolete, use -falign-loops"
msgstr "-malign-loops artık kullanılmıyor yerine -falign-loops kullanın"
-#: config/i386/i386.c:1036 config/i386/i386.c:1049 config/i386/i386.c:1062
+#: config/i386/i386.c:1159 config/i386/i386.c:1172 config/i386/i386.c:1185
#, c-format
msgid "-malign-loops=%d is not between 0 and %d"
msgstr "-malign-loops=%d 0 ile %d arasında değil"
-#: config/i386/i386.c:1044
+#: config/i386/i386.c:1167
msgid "-malign-jumps is obsolete, use -falign-jumps"
msgstr "-malign-jumps eskidir, yerine -falign-jumps kullanın"
-#: config/i386/i386.c:1057
+#: config/i386/i386.c:1180
msgid "-malign-functions is obsolete, use -falign-functions"
msgstr "-malign-functions artık kullanılmıyor, yerine -falign-functions kullanın"
-#: config/i386/i386.c:1095
+#: config/i386/i386.c:1218
#, c-format
msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
msgstr "-mpreferred-stack-boundary=%d %d ile 12 arasında değil"
-#: config/i386/i386.c:1107
+#: config/i386/i386.c:1230
#, c-format
msgid "-mbranch-cost=%d is not between 0 and 5"
msgstr "-mbranch-cost=%d 0 ile 5 arasında değil"
-#: config/i386/i386.c:1129
+#: config/i386/i386.c:1242
+#, c-format
+msgid "bad value (%s) for -mtls-dialect= switch"
+msgstr "-mtls-dialect= seçeneğinin değeri (%s) hatalı"
+
+#: config/i386/i386.c:1263
msgid "-malign-double makes no sense in the 64bit mode"
msgstr "-malign-double 64bitlik kipte iÅŸ yapmaz"
-#: config/i386/i386.c:1131
+#: config/i386/i386.c:1265
msgid "-mrtd calling convention not supported in the 64bit mode"
msgstr "64bitlik kipte -mrtd çağrı uzlaşımı desteklenmiyor"
-#: config/i386/i386.c:1147 config/i386/i386.c:1158
+#: config/i386/i386.c:1281 config/i386/i386.c:1292
msgid "SSE instruction set disabled, using 387 arithmetics"
msgstr "SSE komut kümesi iptal edildi, 387 aritmetiği kullanılıyor"
-#: config/i386/i386.c:1163
+#: config/i386/i386.c:1297
msgid "387 instruction set disabled, using SSE arithmetics"
msgstr "387 komut kümesi iptal edildi, SSE aritmetiği kullanılıyor"
-#: config/i386/i386.c:1170
+#: config/i386/i386.c:1304
#, c-format
msgid "bad value (%s) for -mfpmath= switch"
msgstr "-mfpmath= seçeneğinin değeri (%s) hatalı"
-#: config/i386/i386.c:1300
+#: config/i386/i386.c:1436
#, c-format
msgid "`%s' attribute requires an integer constant argument"
msgstr "`%s' özniteliği bir tamsayı sabit argüman gerektirir"
-#: config/i386/i386.c:1306
+#: config/i386/i386.c:1442
#, c-format
msgid "argument to `%s' attribute larger than %d"
msgstr "`%s' özniteliğine argüman %d den büyük"
-#: config/i386/i386.c:5363
+#: config/i386/i386.c:2504
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr "SSE vektörü, SSE, ABI değişikliklerini etkinleştirmeden dönüyor"
+
+#: config/i386/i386.c:6386
msgid "invalid UNSPEC as operand"
msgstr "veri öğesi olarak UNSPEC geçersiz"
-#: config/i386/i386.c:5596
+#: config/i386/i386.c:6648
msgid "extended registers have no high halves"
msgstr "ek yazmaçların yüksek yarıları yok"
-#: config/i386/i386.c:5611
+#: config/i386/i386.c:6663
msgid "unsupported operand size for extended register"
msgstr "ek yazmaç için desteklenmeyen terim boyutu"
-#: config/i386/i386.c:5884
+#: config/i386/i386.c:6978
msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
msgstr "terim ne bir sabit ne de bir koşul kodu, geçersiz terim kodu 'c'"
-#: config/i386/i386.c:5930
+#: config/i386/i386.c:7024
#, c-format
msgid "invalid operand code `%c'"
msgstr "terim kodu `%c' geçersiz"
-#: config/i386/i386.c:9867
+#: config/i386/i386.c:7071
+msgid "invalid constraints for operand"
+msgstr "kısıtlar terim için geçersiz"
+
+#: config/i386/i386.c:11271
msgid "unknown insn mode"
msgstr "bilinmeyen komut kipi"
#. @@@ better error message
-#: config/i386/i386.c:11730 config/i386/i386.c:11763
+#: config/i386/i386.c:13391 config/i386/i386.c:13427
msgid "selector must be an immediate"
msgstr "seçici bir şimdiki değer olmalı"
#. @@@ better error message
-#: config/i386/i386.c:11921 config/i386/i386.c:11949
+#: config/i386/i386.c:13588 config/i386/i386.c:13622
msgid "mask must be an immediate"
-msgstr "maske bir şimdiki değer olmalı"
+msgstr "mask bir dolaysız değer olmalı"
+
+#: config/i386/i386.c:13654
+msgid "shift must be an immediate"
+msgstr "shift bir dolaysız değer olmalı"
+
+#: config/i386/winnt.c:96
+#, c-format
+msgid "function `%s' definition is marked dllimport."
+msgstr "%s işlevi tanımı dllimport imli."
-#: config/i386/winnt.c:94
+#: config/i386/winnt.c:104
+#, c-format
+msgid "variable `%s' definition is marked dllimport."
+msgstr "`%s' değişkeninin tanımı dllimport imli."
+
+#: config/i386/winnt.c:123
+#, c-format
+msgid "external linkage required for symbol '%s' because of '%s' attribute."
+msgstr "'%2$s' özniteliğinden dolayı '%1$s' sembolü için dış ilintileme gerekli."
+
+#: config/i386/winnt.c:143
#, c-format
msgid "`%s' attribute only applies to variables"
msgstr "`%s' özniteliği sadece değişkenlere uygulanır"
-#: config/i386/winnt.c:262
+#: config/i386/winnt.c:242
+#, c-format
+msgid "function '%s' is defined after prior declaration as dllimport: attribute ignored."
+msgstr "'%s' işlevi önceki bildiriminden sonra dllimport olarak tanımlanmış: öznitelik yoksayıldı."
+
+#: config/i386/winnt.c:252
+#, c-format
+msgid "inline function '%s' is declared as dllimport: attribute ignored."
+msgstr "`%s' satıriçi işlevi dllimport olarak bildirilmiş: öznitelik yoksayıldı."
+
+#: config/i386/winnt.c:263
+#, c-format
+msgid "definition of static data member '%s' of dllimport'd class."
+msgstr "dllimport'lu sınıfın '%s' durağan veri üyesinin tanımı."
+
+#: config/i386/winnt.c:322
+#, c-format
+msgid "inconsistent dll linkage for '%s': dllexport assumed."
+msgstr "'%s' için uyumsuz dll ilintilemesi: dllexport kabul edildi."
+
+#: config/i386/winnt.c:364
#, c-format
msgid "`%s' declared as both exported to and imported from a DLL"
msgstr "`%s' hem bir DLL'den alınan hem de bir DLL'e aktarılan olarak bildirilmiş"
-#: config/i386/cygwin.h:51
+#: config/i386/winnt.c:373
+#, c-format
+msgid "failure in redeclaration of '%s': dllimport'd symbol lacks external linkage."
+msgstr "'%s' için yeniden bildirim başarısız: dllimport'lu sembol dış ilintilemesiz."
+
+#: config/i386/winnt.c:479
+#, c-format
+msgid "'%s' %s after being referenced with dllimport linkage."
+msgstr "dllimport ilintileme ile iliÅŸkilendirildikten sonra '%s' %s."
+
+#: config/i386/cygwin.h:45
msgid "Use the Cygwin interface"
msgstr "Cygwin arayüzü kullanılır"
-#: config/i386/cygwin.h:53
+#: config/i386/cygwin.h:46
msgid "Use the Mingw32 interface"
msgstr "Mingw32 arayüzü kullanılır"
-#: config/i386/cygwin.h:54
+#: config/i386/cygwin.h:47
msgid "Create GUI application"
msgstr "GKA uygulaması oluşturur"
-#: config/i386/cygwin.h:55
+#: config/i386/cygwin.h:48
msgid "Don't set Windows defines"
msgstr "Windows atamaları ayarlanmaz"
-#: config/i386/cygwin.h:56
+#: config/i386/cygwin.h:49
msgid "Set Windows defines"
msgstr "Windows atamaları ayarlanır"
-#: config/i386/cygwin.h:58
+#: config/i386/cygwin.h:50
msgid "Create console application"
msgstr "Konsol uygulaması oluşturulur"
-#: config/i386/cygwin.h:59 config/i386/win32.h:59
+#: config/i386/cygwin.h:51 config/i386/win32.h:59
msgid "Generate code for a DLL"
msgstr "Bir DLL için kod üretilir"
-#: config/i386/cygwin.h:61 config/i386/win32.h:61
+#: config/i386/cygwin.h:53 config/i386/win32.h:61
msgid "Ignore dllimport for functions"
msgstr "İşlevler için dllimport yoksayılır"
-#: config/i386/cygwin.h:63
+#: config/i386/cygwin.h:55
msgid "Use Mingw-specific thread support"
-msgstr "Mingw'e özgü kanallama desteğini etkinleştirir"
+msgstr "Mingw'e özgü evre desteğini etkinleştirir"
-#: config/i386/cygwin.h:257
+#: config/i386/cygwin.h:245
#, c-format
msgid "-f%s ignored for target (all code is position independent)"
msgstr "-f%s hedef için yoksayıldı (bütün kod yerden bağımsız)"
-#: config/i386/dgux.h:60
-msgid "Retain standard MXDB information"
-msgstr "Standart MXDB bilgisini korur"
-
-#: config/i386/dgux.h:62
-msgid "Retain legend information"
-msgstr "Etiket bilgisi korunur"
-
-#: config/i386/dgux.h:65
-msgid "Generate external legend information"
-msgstr "Dış etiket bilgisi üretir"
-
-#: config/i386/dgux.h:67
-msgid "Emit identifying info in .s file"
-msgstr ".s dosyasına tanıtıcı bilgi koyar"
-
-#: config/i386/dgux.h:69
-msgid "Warn when a function arg is a structure"
-msgstr "Bir yapı, bir işlevin argümanıysa uyarır"
-
-#: config/i386/dgux.h:252
-msgid "argument is a structure"
-msgstr "argüman bir yapı"
-
-#: config/i386/djgpp.h:201
+#: config/i386/djgpp.h:206
msgid "-mbnu210 is ignored (option is obsolete)"
msgstr "-mbnu210 yoksayıldı (seçenek artık kullanılmıyor)"
-#: config/i386/i386.h:45 config/mips/mips.h:186
-msgid "half-pic init called on systems that don't support it"
-msgstr "`half-pic init' desteklenmediği sistemlerde kullanıldı"
-
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
#. Deprecated.
-#: config/i386/i386.h:303
+#: config/i386/i386.h:306
msgid "Alternate calling convention"
msgstr "Almaşık çağrı uzlaşımı"
-#: config/i386/i386.h:305 config/m68k/m68k.h:180 config/ns32k/ns32k.h:106
+#: config/i386/i386.h:308 config/m68k/m68k.h:180 config/ns32k/ns32k.h:144
msgid "Use normal calling convention"
msgstr "Normal çağrı uzlaşımı kullanılır"
-#: config/i386/i386.h:307
+#: config/i386/i386.h:310
msgid "Align some doubles on dword boundary"
msgstr "double'lar dword sınırlarına hizalanır"
-#: config/i386/i386.h:309
+#: config/i386/i386.h:312
msgid "Align doubles on word boundary"
msgstr "double'lar word sınırlarına hizalanır"
-#: config/i386/i386.h:311
+#: config/i386/i386.h:314
msgid "Uninitialized locals in .bss"
msgstr ".bss içinde ilklendirilmemiş yerel değerler"
-#: config/i386/i386.h:313
+#: config/i386/i386.h:316
msgid "Uninitialized locals in .data"
msgstr ".data içinde ilklendirilmemiş yerel değerler"
-#: config/i386/i386.h:315 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/i386/i386.h:318 config/m68k/linux-aout.h:45 config/m68k/linux.h:50
+#: config/ns32k/ns32k.h:167
msgid "Use IEEE math for fp comparisons"
msgstr ""
"fp karşılaştırmaları için IEEE aritmetiği\n"
" kullanılır"
-#: config/i386/i386.h:317
+#: config/i386/i386.h:320 config/ns32k/ns32k.h:169
msgid "Do not use IEEE math for fp comparisons"
msgstr ""
"fp karşılaştırmaları için IEEE aritmetiği\n"
" kullanılmaz"
-#: config/i386/i386.h:319
+#: config/i386/i386.h:322
msgid "Return values of functions in FPU registers"
msgstr ""
"FPU yazmaçlarındaki işlevlerin değerleriyle\n"
" sonuçlanır"
-#: config/i386/i386.h:321
+#: config/i386/i386.h:324
msgid "Do not return values of functions in FPU registers"
msgstr ""
"FPU yazmaçlarındaki işlevlerin değerleriyle\n"
" sonuçlanmaz"
-#: config/i386/i386.h:323
+#: config/i386/i386.h:326
msgid "Do not generate sin, cos, sqrt for FPU"
msgstr "FPU için sin, cos, sqrt üretilmez"
-#: config/i386/i386.h:325
+#: config/i386/i386.h:328
msgid "Generate sin, cos, sqrt for FPU"
msgstr "FPU için sin, cos, sqrt üretilir"
-#: config/i386/i386.h:327
+#: config/i386/i386.h:330
msgid "Omit the frame pointer in leaf functions"
-msgstr "Alt düzey işlevlerde çerçeve gösterge ihmal edilir"
+msgstr "Alt düzey işlevlerde çerçeve göstericisi ihmal edilir"
-#: config/i386/i386.h:330
+#: config/i386/i386.h:333
msgid "Enable stack probing"
msgstr "Yığın sondalamayı etkinleştirir"
#. undocumented
#. undocumented
-#: config/i386/i386.h:335
+#: config/i386/i386.h:338
msgid "Align destination of the string operations"
msgstr "Dizge işlemleri hedefi hizalanır"
-#: config/i386/i386.h:337
+#: config/i386/i386.h:340
msgid "Do not align destination of the string operations"
msgstr "Dizge iÅŸlemleri hedefi hizalanmaz"
-#: config/i386/i386.h:339
+#: config/i386/i386.h:342
msgid "Inline all known string operations"
msgstr "Bilinen tüm dizge işlemleri özümlenir"
-#: config/i386/i386.h:341
+#: config/i386/i386.h:344
msgid "Do not inline all known string operations"
msgstr "Bilinen hiçbir dizge işlemi özümlenmez"
-#: config/i386/i386.h:343 config/i386/i386.h:348
+#: config/i386/i386.h:346 config/i386/i386.h:350
msgid "Use push instructions to save outgoing arguments"
msgstr ""
"Çıkan argümanları kaydedecek basma komutları \n"
" kullanılır"
-#: config/i386/i386.h:345 config/i386/i386.h:350
+#: config/i386/i386.h:348 config/i386/i386.h:352
msgid "Do not use push instructions to save outgoing arguments"
msgstr ""
"Çıkan argümanları kaydedecek basma komutları \n"
" kullanılmaz"
-#: config/i386/i386.h:352
+#: config/i386/i386.h:354
msgid "Support MMX built-in functions"
msgstr "MMX yerleÅŸik iÅŸlevleri desteklenir"
-#: config/i386/i386.h:354
+#: config/i386/i386.h:356
msgid "Do not support MMX built-in functions"
msgstr "MMX yerleÅŸik iÅŸlevleri desteklenmez"
-#: config/i386/i386.h:357
+#: config/i386/i386.h:358
msgid "Support 3DNow! built-in functions"
msgstr "3DNow! yerleÅŸik iÅŸlevleri desteklenir"
@@ -10392,45 +10746,45 @@ msgstr ""
"MMX ve SSE2 yerleşik işlevleri ve kod üretimi\n"
" desteklenir"
-#: config/i386/i386.h:365
+#: config/i386/i386.h:364
msgid "Do not support MMX and SSE built-in functions and code generation"
msgstr ""
"MMX ve SSE2 yerleşik işlevleri ve kod üretimi\n"
" desteklenmez"
-#: config/i386/i386.h:367
+#: config/i386/i386.h:366
msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
"MMX, SSE ve SSE2 yerleşik işlevleri ve kod üretimi\n"
" desteklenir"
-#: config/i386/i386.h:370
+#: config/i386/i386.h:368
msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
msgstr ""
"MMX, SSE ve SSE2 yerleşik işlevleri ve kod üretimi\n"
" desteklenmez"
-#: config/i386/i386.h:372
+#: config/i386/i386.h:370
msgid "sizeof(long double) is 16"
msgstr "sizeof(long double) -> 16"
-#: config/i386/i386.h:374
+#: config/i386/i386.h:372
msgid "sizeof(long double) is 12"
msgstr "sizeof(long double) -> 12"
-#: config/i386/i386.h:376
+#: config/i386/i386.h:374
msgid "Generate 64bit x86-64 code"
msgstr "64bit x86-64 kodu üretilir"
-#: config/i386/i386.h:378
+#: config/i386/i386.h:376
msgid "Generate 32bit i386 code"
msgstr "32bit i386 kodu üretilir"
-#: config/i386/i386.h:380
+#: config/i386/i386.h:378
msgid "Use red-zone in the x86-64 code"
msgstr "x86-64 kodda red-zone kullanılır"
-#: config/i386/i386.h:382
+#: config/i386/i386.h:380
msgid "Do not use red-zone in the x86-64 code"
msgstr "x86-64 kodda red-zone kullanılmaz"
@@ -10443,21 +10797,21 @@ msgstr "x86-64 kodda red-zone kullanılmaz"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:428 config/rs6000/rs6000.h:428 config/sparc/sparc.h:641
+#: config/i386/i386.h:409 config/rs6000/rs6000.h:393 config/sparc/sparc.h:635
msgid "Schedule code for given CPU"
msgstr "Verilen MİB için kodu zamanlar"
-#: config/i386/i386.h:430
+#: config/i386/i386.h:411
msgid "Generate floating point mathematics using given instruction set"
msgstr ""
"Belirtilen komut kümesini kullanan kayan nokta\n"
" aritmetiği üretilir"
-#: config/i386/i386.h:432
+#: config/i386/i386.h:413
msgid "Generate code for given CPU"
msgstr "Verilen MİB için kodu üretir"
-#: config/i386/i386.h:434
+#: config/i386/i386.h:415
msgid "Number of registers used to pass integer arguments"
msgstr ""
"Tamsayı argümanları aktarmada kullanılan\n"
@@ -10473,71 +10827,41 @@ msgstr ""
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/i386/i386.h:436 config/m68k/m68k.h:263
+#: config/i386/i386.h:417 config/m68k/m68k.h:263
msgid "Loop code aligned to this power of 2"
msgstr "Çevrim kodu bunun 2. kuvvetine ayarlandı"
-#: config/i386/i386.h:438 config/m68k/m68k.h:265
+#: config/i386/i386.h:419 config/m68k/m68k.h:265
msgid "Jump targets are aligned to this power of 2"
msgstr "Sıçrama hedefleri bunun 2.kuvvetine ayarlandı"
-#: config/i386/i386.h:440 config/m68k/m68k.h:267
+#: config/i386/i386.h:421 config/m68k/m68k.h:267
msgid "Function starts are aligned to this power of 2"
msgstr "İşlev başlangıçları bunun 2.kuvvetine ayarlandı"
-#: config/i386/i386.h:443
+#: config/i386/i386.h:424
msgid "Attempt to keep stack aligned to this power of 2"
msgstr "Bunun 2.kuvvetine ayarlanmış yığını tutmaya çalışır"
-#: config/i386/i386.h:445
+#: config/i386/i386.h:426
msgid "Branches are this expensive (1-5, arbitrary units)"
msgstr "Dallanmaların bedeli (1-5, keyfi birimler)"
-#: config/i386/i386.h:447
+#: config/i386/i386.h:428
msgid "Use given x86-64 code model"
msgstr "Verilen x86-64 kod modeli kullanılır"
#. Undocumented.
#. Undocumented.
-#: config/i386/i386.h:453
+#: config/i386/i386.h:434
msgid "Use given assembler dialect"
msgstr "Verilen çevirici aksanı kullanılır"
-#: config/i386/osf1elf.h:112
-msgid "Profiling uses mcount"
-msgstr "Ayrımlama mcount kullanır"
-
-#: config/i386/osfrose.h:60
-msgid "Emit half-PIC code"
-msgstr "Yarım PIC kodu yayınlanır"
-
-#. intentionally undoc
-#. intentionally undoc
-#: config/i386/osfrose.h:67
-msgid "Emit ELF object code"
-msgstr "ELF nesne kodu yayınlanır"
-
-#: config/i386/osfrose.h:69
-msgid "Emit ROSE object code"
-msgstr "ROSE nesne kodu yayınlanır"
-
-#: config/i386/osfrose.h:71
-msgid "Symbols have a leading underscore"
-msgstr "Semboller altçizgi ile başlar"
-
-#: config/i386/osfrose.h:74
-msgid "Align to >word boundaries"
-msgstr "Hizalama >word sınırlara yapılır"
+#: config/i386/i386.h:436
+msgid "Use given thread-local storage dialect"
+msgstr "Verilen yerel evreli saklama aksanı kullanılır"
-#: config/i386/osfrose.h:77
-msgid "Use mcount for profiling"
-msgstr "Ayrımlama için mcount kullanılır"
-
-#: config/i386/osfrose.h:79
-msgid "Use mcount_ptr for profiling"
-msgstr "Ayrımlama için mcount_ptr kullanılır"
-
-#: config/i386/sco5.h:771
+#: config/i386/sco5.h:297
msgid "Generate ELF output"
msgstr "ELF çıktı üretilir"
@@ -10569,32 +10893,31 @@ msgstr "ortam değişkeni DJGPP olmayan '%s' dosyasını gösteriyor"
msgid "environment variable DJGPP points to corrupt file '%s'"
msgstr "ortam değişkeni DJGPP bozuk '%s' dosyasını gösteriyor"
-#. Macro to define tables used to set the flags.
-#. This is a list in braces of pairs in braces,
-#. each pair being { "NAME", VALUE }
-#. where VALUE is the bits to set or minus the bits to clear.
-#. An empty string NAME is used to identify the default VALUE.
-#: config/i860/i860.h:56 config/i860/paragon.h:28
-msgid "Generate code which uses the FPU"
-msgstr "Aritmetik işlemci kullanan kod üretilir"
-
-#: config/i860/i860.h:57 config/i860/i860.h:58 config/i860/paragon.h:29 config/i860/paragon.h:30 config/i860/paragon.h:31
-msgid "Do not generate code which uses the FPU"
-msgstr "Aritmetik işlemci kullanan kod üretilmez"
-
-#: config/i960/i960-c.c:67
+#: config/i960/i960-c.c:66
msgid "sorry, not implemented: #pragma align NAME=SIZE"
msgstr "Daha yazılmadı: #pragma İSİM=BOYUT hizalaması"
-#: config/i960/i960-c.c:72
+#: config/i960/i960-c.c:71
msgid "malformed #pragma align - ignored"
msgstr "'#pragma align' bozuk - yoksayıldı"
-#: config/i960/i960-c.c:110
+#: config/i960/i960-c.c:109
msgid "sorry, not implemented: #pragma noalign NAME"
msgstr "Daha yazılmadı: #pragma noalign İSİM"
-#: config/i960/i960.c:1405 config/m68k/m68k.c:665 config/rs6000/rs6000.c:8437
+#: config/i960/i960.c:121 config/i960/i960.c:131
+msgid "conflicting architectures defined - using C series"
+msgstr "çelişkili mimariler atanmış - C serisi kullanılıyor"
+
+#: config/i960/i960.c:126
+msgid "conflicting architectures defined - using K series"
+msgstr "çelişkili mimariler atanmış - K serisi kullanılıyor"
+
+#: config/i960/i960.c:141
+msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+msgstr "iC2.0 ve iC3.0 uyumsuz - iC3.0 kullanılıyor"
+
+#: config/i960/i960.c:1448 config/m68k/m68k.c:559 config/rs6000/rs6000.c:9976
msgid "stack limit expression is not supported"
msgstr "yığın sınırlama ifadesi desteklenmiyor"
@@ -10652,6 +10975,10 @@ msgstr "\bCA kodu üretilir"
msgid "Generate CF code"
msgstr "CF kodu üretilir"
+#: config/i960/i960.h:283 config/mips/mips.h:568 config/pa/pa.h:266
+msgid "Use software floating point"
+msgstr "Yazılım kayan nokta kodu kullanılır"
+
#: config/i960/i960.h:285
msgid "Use alternate leaf function entries"
msgstr "Alternatif alt düzey işlev girdileri kullanılır"
@@ -10713,7 +11040,8 @@ msgstr "Türler Intel's v1.3 gcc gibi yerleştirilir"
msgid "Do not layout types like Intel's v1.3 gcc"
msgstr "Türler Intel's v1.3 gcc gibi yerleştirilmez"
-#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86 config/sparc/linux64.h:143 config/sparc/netbsd-elf.h:238
+#: config/i960/i960.h:323 config/sparc/freebsd.h:80 config/sparc/linux.h:86
+#: config/sparc/linux64.h:88 config/sparc/netbsd-elf.h:238
msgid "Use 64 bit long doubles"
msgstr "64 bit long double'lar kullanılır"
@@ -10725,190 +11053,192 @@ msgstr "Bağlayıcı gevşemesini etkinleştirir"
msgid "Do not enable linker relaxation"
msgstr "Bağlayıcı gevşemesini etkinleştirir"
-#. Override conflicting target switch options.
-#. Doesn't actually detect if more than one -mARCH option is given, but
-#. does handle the case of two blatantly conflicting -mARCH options.
-#: config/i960/i960.h:342 config/i960/i960.h:352
-msgid "conflicting architectures defined - using C series"
-msgstr "çelişkili mimariler atanmış - C serisi kullanılıyor"
-
-#: config/i960/i960.h:347
-msgid "conflicting architectures defined - using K series"
-msgstr "çelişkili mimariler atanmış - K serisi kullanılıyor"
-
-#: config/i960/i960.h:362
-msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
-msgstr "iC2.0 ve iC3.0 uyumsuz - iC3.0 kullanılıyor"
-
-#. ??? See the LONG_DOUBLE_TYPE_SIZE definition below.
-#: config/i960/i960.h:373
-msgid "the -mlong-double-64 option does not work yet"
-msgstr "-mlong-double-64 seçeneği henüz çalışmıyor."
+#: config/ia64/ia64-c.c:51
+msgid "malformed #pragma builtin"
+msgstr "'#pragma builtin' bozuk"
-#: config/ia64/ia64.c:3554
+#: config/ia64/ia64.c:4015
msgid "ia64_print_operand: unknown code"
msgstr "ia64_print_operand: bilinmeyen kod"
-#: config/ia64/ia64.c:3828
+#: config/ia64/ia64.c:4292
msgid "value of -mfixed-range must have form REG1-REG2"
msgstr "-mfixed-range için değer YAZMAÇ1-YAZMAÇ2 şeklinde olmalı"
-#: config/ia64/ia64.c:3855
+#: config/ia64/ia64.c:4319
#, c-format
msgid "%s-%s is an empty range"
msgstr "%s-%s aralığı boş"
-#: config/ia64/ia64.c:3920
-msgid "cannot optimize division for both latency and throughput"
-msgstr "Bölme hem iş geçişi hem de gecikme için eniyilenemez"
+#: config/ia64/ia64.c:4350
+msgid "cannot optimize floating point division for both latency and throughput"
+msgstr "Kayan noktalı bölme hem iş geçişi hem de gecikme için eniyilenemez"
+
+#: config/ia64/ia64.c:4356
+msgid "cannot optimize integer division for both latency and throughput"
+msgstr "tamsayı bölme hem iş geçişi hem de gecikme için eniyilenemez"
+
+#: config/ia64/ia64.c:4368
+#, c-format
+msgid "bad value (%s) for -mtls-size= switch"
+msgstr "-mtls-size= seçeneğinin değeri (%s) hatalı"
#. This macro defines names of command options to set and clear bits in
#. `target_flags'. Its definition is an initializer with a subgrouping for
#. each command option.
-#: config/ia64/ia64.h:119
+#: config/ia64/ia64.h:154
msgid "Generate big endian code"
msgstr "Büyük ilkli kod üretilir"
-#: config/ia64/ia64.h:121 config/mcore/mcore.h:159
+#: config/ia64/ia64.h:156 config/mcore/mcore.h:159
msgid "Generate little endian code"
msgstr "Küçük ilkli kod üretilir"
-#: config/ia64/ia64.h:123
+#: config/ia64/ia64.h:158
msgid "Generate code for GNU as"
msgstr "Kod GNU as için üretilir"
-#: config/ia64/ia64.h:125
+#: config/ia64/ia64.h:160
msgid "Generate code for Intel as"
msgstr "Kod Intel as için üretilir"
-#: config/ia64/ia64.h:127
+#: config/ia64/ia64.h:162
msgid "Generate code for GNU ld"
msgstr "Kod GNU ld için üretilir"
-#: config/ia64/ia64.h:129
+#: config/ia64/ia64.h:164
msgid "Generate code for Intel ld"
msgstr "Kod Intel ld için üretilir"
-#: config/ia64/ia64.h:131
+#: config/ia64/ia64.h:166
msgid "Generate code without GP reg"
msgstr "GP yazmaçsız kod üretilir"
-#: config/ia64/ia64.h:133
+#: config/ia64/ia64.h:168
msgid "Emit stop bits before and after volatile extended asms"
msgstr "Değişken uzatılmış asmlerden önce ve sonra durma bitleri üretir"
-#: config/ia64/ia64.h:135
+#: config/ia64/ia64.h:170
msgid "Don't emit stop bits before and after volatile extended asms"
msgstr "Değişken uzatılmış asmlerden önce ve sonra durma bitleri üretir"
-#: config/ia64/ia64.h:137
+#: config/ia64/ia64.h:172
msgid "Emit code for Itanium (TM) processor B step"
msgstr "Itanium (TM) işlemcisi B adımı için kod üretir"
-#: config/ia64/ia64.h:139
+#: config/ia64/ia64.h:174
msgid "Use in/loc/out register names"
msgstr "in/loc/out yazmaç isimleri kullanılır"
-#: config/ia64/ia64.h:141
+#: config/ia64/ia64.h:176
msgid "Disable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss kullanımı iptal edilir"
-#: config/ia64/ia64.h:143
+#: config/ia64/ia64.h:178
msgid "Enable use of sdata/scommon/sbss"
msgstr "sdata/scommon/sbss kullanımı etkinleştirilir"
-#: config/ia64/ia64.h:145
+#: config/ia64/ia64.h:180
msgid "gp is constant (but save/restore gp on indirect calls)"
msgstr "gp sabittir (ancak dolaylı çağrılarda gp kaydedilmesi/alınması yapılır)"
-#: config/ia64/ia64.h:147
+#: config/ia64/ia64.h:182
msgid "Generate self-relocatable code"
msgstr "Kendiliğinden konum değiştirebilen kod üretilir"
-#: config/ia64/ia64.h:149
-msgid "Generate inline division, optimize for latency"
-msgstr ""
-"Özümleme bölümü üretir, gizlenmesi için en\n"
-" elverişli şartları oluşturur"
+#: config/ia64/ia64.h:184
+msgid "Generate inline floating point division, optimize for latency"
+msgstr "Satıriçi kayan noktalı bölme üretir, geciktirme için eniyilenir"
-#: config/ia64/ia64.h:151
-msgid "Generate inline division, optimize for throughput"
-msgstr ""
-"Özümleme bölümü üretir, içselleştirilmesi için en\n"
-" elverişli şartları oluşturur"
+#: config/ia64/ia64.h:186
+msgid "Generate inline floating point division, optimize for throughput"
+msgstr "Satıriçi kayan noktalı bölme üretir, iş geçişi için eniyilenir"
+
+#: config/ia64/ia64.h:188
+msgid "Generate inline integer division, optimize for latency"
+msgstr "Satıriçi tamsayı bölme üretir, geciktirme için eniyilenir"
+
+#: config/ia64/ia64.h:190
+msgid "Generate inline integer division, optimize for throughput"
+msgstr "Satıriçi tamsayı bölme üretir, iş geçişi için eniyilenir"
-#: config/ia64/ia64.h:153
+#: config/ia64/ia64.h:192
msgid "Enable Dwarf 2 line debug info via GNU as"
msgstr "GNU as yoluyla Dwarf 2 hata ayıklama satır bilgilerini etkinleştirir"
-#: config/ia64/ia64.h:155
+#: config/ia64/ia64.h:194
msgid "Disable Dwarf 2 line debug info via GNU as"
msgstr "GNU as yoluyla Dwarf 2 hata ayıklama satır bilgilerini etkisizleştirir"
-#: config/ia64/ia64.h:183
+#: config/ia64/ia64.h:223
msgid "Specify range of registers to make fixed"
msgstr "Belirlemek için yazmaç aralığı belirtilir"
-#: config/m32r/m32r.c:130
+#: config/ip2k/ip2k.c:1090
+msgid "bad operand"
+msgstr "hatalı terim"
+
+#: config/m32r/m32r.c:139
#, c-format
msgid "bad value (%s) for -mmodel switch"
msgstr "-mmodel seçeneğinin değeri (%s) hatalı"
-#: config/m32r/m32r.c:139
+#: config/m32r/m32r.c:148
#, c-format
msgid "bad value (%s) for -msdata switch"
msgstr "-msdata seçeneğinin değeri (%s) hatalı"
-#: config/m32r/m32r.c:310
+#: config/m32r/m32r.c:319
#, c-format
msgid "invalid argument of `%s' attribute"
msgstr "`%s' özniteliğinin argümanı geçersiz"
-#: config/m32r/m32r.c:408
+#: config/m32r/m32r.c:422
msgid "const objects cannot go in .sdata/.sbss"
msgstr "const nesneleri .sdata/.sbss içinde bulunamaz"
-#: config/m32r/m32r.c:2248
+#: config/m32r/m32r.c:2256
#, c-format
msgid "invalid operand to %%s code"
msgstr "%%s kodu için terim geçersiz"
-#: config/m32r/m32r.c:2255
+#: config/m32r/m32r.c:2263
#, c-format
msgid "invalid operand to %%p code"
msgstr "%%p kodu için terim geçersiz"
-#: config/m32r/m32r.c:2311
+#: config/m32r/m32r.c:2318
msgid "bad insn for 'A'"
msgstr "'A' için hatalı komut"
-#: config/m32r/m32r.c:2363
+#: config/m32r/m32r.c:2370
#, c-format
msgid "invalid operand to %%T/%%B code"
msgstr "%%T/%%B kodu için terim geçersiz"
-#: config/m32r/m32r.c:2386
+#: config/m32r/m32r.c:2393
#, c-format
msgid "invalid operand to %%N code"
msgstr "%%N kodu için terim geçersiz"
-#: config/m32r/m32r.c:2431
+#: config/m32r/m32r.c:2438
msgid "pre-increment address is not a register"
msgstr "ön arttırımlı adres bir yazmaç değil"
-#: config/m32r/m32r.c:2438
+#: config/m32r/m32r.c:2445
msgid "pre-decrement address is not a register"
msgstr "ön eksiltmeli adres bir yazmaç değil"
-#: config/m32r/m32r.c:2445
+#: config/m32r/m32r.c:2452
msgid "post-increment address is not a register"
msgstr "sonradan arttırımlı adres bir yazmaç değil"
-#: config/m32r/m32r.c:2523 config/m32r/m32r.c:2539 config/rs6000/rs6000.c:11065
+#: config/m32r/m32r.c:2530 config/m32r/m32r.c:2546
+#: config/rs6000/rs6000.c:12802
msgid "bad address"
msgstr "hatalı adres"
-#: config/m32r/m32r.c:2544
+#: config/m32r/m32r.c:2551
msgid "lo_sum not of register"
msgstr "lo_sum yazmacın değil"
@@ -10937,45 +11267,54 @@ msgstr "Kod boyutu: small, medium veya large"
msgid "Small data area: none, sdata, use"
msgstr "Küçük veri alanı: none, sdata, use"
-#: config/m68hc11/m68hc11.c:236
+#: config/m68hc11/m68hc11.c:242
#, c-format
msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
msgstr "68HC11/68HC12 için -f%s yoksayıldı (desteklenmiyor)"
+#: config/m68hc11/m68hc11.c:1305
+msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+msgstr "`trap' ve `far' nitelikleri uyumlu değil, `far' yoksayılıyor"
+
+#: config/m68hc11/m68hc11.c:1311
+msgid "`trap' attribute is already used"
+msgstr "`trap' özelliği zaten kullanılmış"
+
#. !!!! SCz wrong here.
-#: config/m68hc11/m68hc11.c:3170 config/m68hc11/m68hc11.c:3544
+#: config/m68hc11/m68hc11.c:3327 config/m68hc11/m68hc11.c:3733
msgid "move insn not handled"
msgstr "taşıma komutu elde edilmedi"
-#: config/m68hc11/m68hc11.c:3390 config/m68hc11/m68hc11.c:3474 config/m68hc11/m68hc11.c:3747
+#: config/m68hc11/m68hc11.c:3579 config/m68hc11/m68hc11.c:3663
+#: config/m68hc11/m68hc11.c:3946
msgid "invalid register in the move instruction"
msgstr "move komutundaki yazmaç geçersiz"
-#: config/m68hc11/m68hc11.c:3424
+#: config/m68hc11/m68hc11.c:3613
msgid "invalid operand in the instruction"
msgstr "komuttaki terim geçersiz"
-#: config/m68hc11/m68hc11.c:3721
+#: config/m68hc11/m68hc11.c:3920
msgid "invalid register in the instruction"
msgstr "komuttaki yazmaç geçersiz"
-#: config/m68hc11/m68hc11.c:3754
+#: config/m68hc11/m68hc11.c:3953
msgid "operand 1 must be a hard register"
msgstr "1. terim bir donanım yazmacı olmalı"
-#: config/m68hc11/m68hc11.c:3771
+#: config/m68hc11/m68hc11.c:3970
msgid "invalid rotate insn"
msgstr "geçersiz döngü komutu"
-#: config/m68hc11/m68hc11.c:4196
+#: config/m68hc11/m68hc11.c:4391
msgid "registers IX, IY and Z used in the same INSN"
msgstr "IX, IY ve Z yazmaçları aynı KOMUTta kullanılmış"
-#: config/m68hc11/m68hc11.c:4521 config/m68hc11/m68hc11.c:4823
+#: config/m68hc11/m68hc11.c:4728 config/m68hc11/m68hc11.c:5031
msgid "cannot do z-register replacement"
msgstr "z-yazmaç yer değiştirmesi yapılamaz"
-#: config/m68hc11/m68hc11.c:4886
+#: config/m68hc11/m68hc11.c:5094
msgid "invalid Z register replacement for insn"
msgstr "komut için Z yazmaç yerdeğiştirmesi geçersiz"
@@ -10983,34 +11322,58 @@ msgstr "komut için Z yazmaç yerdeğiştirmesi geçersiz"
#. pairs in braces, each pair being { "NAME", VALUE } where VALUE is the bits
#. to set or minus the bits to clear. An empty string NAME is used to
#. identify the default VALUE.
-#: config/m68hc11/m68hc11.h:155
+#: config/m68hc11/m68hc11.h:172
msgid "Compile with 16-bit integer mode"
msgstr "16 bitlik tamsayı kiple derleme yapılır"
-#: config/m68hc11/m68hc11.h:157
+#: config/m68hc11/m68hc11.h:174
msgid "Compile with 32-bit integer mode"
msgstr "32 bitlik tamsayı kiple derleme yapılır"
-#: config/m68hc11/m68hc11.h:159
+#: config/m68hc11/m68hc11.h:176
msgid "Auto pre/post decrement increment allowed"
msgstr "Otomatik önce/sonra eksiltme arttırmaya izin verilir"
-#: config/m68hc11/m68hc11.h:161
+#: config/m68hc11/m68hc11.h:178
msgid "Auto pre/post decrement increment not allowed"
msgstr "Otomatik önce/sonra eksiltme arttırmaya izin verilmez"
-#: config/m68hc11/m68hc11.h:163
+#: config/m68hc11/m68hc11.h:180
+msgid "Min/max instructions allowed"
+msgstr "Min/max komutlarına izin verilir"
+
+#: config/m68hc11/m68hc11.h:182
+msgid "Min/max instructions not allowed"
+msgstr "Min/max komutlarına izin verilmez"
+
+#: config/m68hc11/m68hc11.h:184
+msgid "Use call and rtc for function calls and returns"
+msgstr "İşlev çağrıları ve dönüşleri için call ve rtc kullanılır"
+
+#: config/m68hc11/m68hc11.h:186
+msgid "Use jsr and rts for function calls and returns"
+msgstr "İşlev çağrıları ve dönüşleri için jsr ve rts kullanılır"
+
+#: config/m68hc11/m68hc11.h:188
msgid "Do not use direct addressing mode for soft registers"
msgstr "Soft yazmaçlar için doğrudan adresleme kipi kullanılmaz"
-#: config/m68hc11/m68hc11.h:165 config/m68hc11/m68hc11.h:169
+#: config/m68hc11/m68hc11.h:190
+msgid "Use direct addressing mode for soft registers"
+msgstr "Soft yazmaçlar için doğrudan adresleme kipi kullanılır"
+
+#: config/m68hc11/m68hc11.h:192 config/m68hc11/m68hc11.h:198
msgid "Compile for a 68HC11"
msgstr "68HC11 için derleme yapılır"
-#: config/m68hc11/m68hc11.h:167 config/m68hc11/m68hc11.h:171
+#: config/m68hc11/m68hc11.h:194 config/m68hc11/m68hc11.h:200
msgid "Compile for a 68HC12"
msgstr "68HC12 için derleme yapılır"
+#: config/m68hc11/m68hc11.h:196 config/m68hc11/m68hc11.h:202
+msgid "Compile for a 68HCS12"
+msgstr "68HCS12 için derleme yapılır"
+
#. This macro is similar to `TARGET_SWITCHES' but defines names of
#. command options that have values. Its definition is an
#. initializer with a subgrouping for each command option.
@@ -11020,29 +11383,33 @@ msgstr "68HC12 için derleme yapılır"
#. variable, type `char *', is set to the variable part of the given
#. option if the fixed part matches. The actual option name is made
#. by appending `-m' to the specified name.
-#: config/m68hc11/m68hc11.h:185
+#: config/m68hc11/m68hc11.h:216
msgid "Specify the register allocation order"
msgstr "Yazmaç ayırma sırası belirtilir"
-#: config/m68hc11/m68hc11.h:187
+#: config/m68hc11/m68hc11.h:218
msgid "Indicate the number of soft registers available"
msgstr "Mevcut olan yazılım bazlı (soft) yazmaçları bildirir"
-#: config/m68k/m68k.c:150
+#: config/m68k/m68k.c:158
#, c-format
msgid "-malign-loops=%d is not between 1 and %d"
msgstr "-malign-loops=%d 1 ile %d arasında değil"
-#: config/m68k/m68k.c:161
+#: config/m68k/m68k.c:169
#, c-format
msgid "-malign-jumps=%d is not between 1 and %d"
msgstr "-malign-jumps=%d 1 ile %d arasında değil"
-#: config/m68k/m68k.c:172
+#: config/m68k/m68k.c:180
#, c-format
msgid "-malign-functions=%d is not between 1 and %d"
msgstr "-malign-functions=%d 1 ile %d arasında değil"
+#: config/m68k/m68k.c:189
+msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+msgstr "-fPIC şu an 68000 veya 68010 için desteklenmiyor\n"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
@@ -11164,91 +11531,84 @@ msgstr "Hizalamasız bellek referansları kullanılmaz"
msgid "Use unaligned memory references"
msgstr "Hizalanmamış bellek başvuruları kullanılır"
-#. Sometimes certain combinations of command options do not make
-#. sense on a particular target machine. You can define a macro
-#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
-#. defined, is executed once just after all the command options have
-#. been parsed.
-#.
-#. Don't use this macro to turn on various extra optimizations for
-#. `-O'. That is what `OPTIMIZATION_OPTIONS' is for.
-#: config/m68k/m68k.h:284 config/m68k/m68kelf.h:267 config/m68k/m68kv4.h:299
-msgid "-fPIC is not currently supported on the 68000 or 68010\n"
-msgstr "-fPIC şu an 68000 veya 68010 için desteklenmiyor\n"
-
-#: config/m88k/m88k.c:900
+#: config/m88k/m88k.c:903
#, c-format
msgid "internal gcc monitor: short-branch(%x)"
msgstr "gcc iç monitörü: short-branch(%x)"
-#: config/m88k/m88k.c:2300
+#: config/m88k/m88k.c:2302
msgid "internal gcc error: Can't express symbolic location"
msgstr "gcc iç hatası: Sembolik konum ifade edilemiyor"
-#: config/m88k/m88k.c:2582
+#: config/m88k/m88k.c:2517
#, c-format
msgid "argument #%d is a structure"
msgstr "%d. argüman bir yapı"
-#: config/m88k/m88k.c:2882
+#: config/m88k/m88k.c:2816
#, c-format
msgid "%%R not followed by %%B/C/D/E"
msgstr "%%R den sonra %%B/C/D/E gelmiyor"
-#: config/m88k/m88k.c:2950
+#: config/m88k/m88k.c:2884
#, c-format
msgid "invalid %%x/X value"
msgstr "%%x/X değeri geçersiz"
-#: config/m88k/m88k.c:2973 config/rs6000/rs6000.c:6509
+#: config/m88k/m88k.c:2901
+#, c-format
+msgid "invalid %%Q value"
+msgstr "%%Q değeri geçersiz"
+
+#: config/m88k/m88k.c:2907 config/rs6000/rs6000.c:7718
#, c-format
msgid "invalid %%q value"
msgstr "%%q değeri geçersiz"
-#: config/m88k/m88k.c:2979
+#: config/m88k/m88k.c:2913
#, c-format
msgid "invalid %%o value"
msgstr "%%o değeri geçersiz"
-#: config/m88k/m88k.c:2986 config/rs6000/rs6000.c:6472
+#: config/m88k/m88k.c:2920 config/rs6000/rs6000.c:7681
#, c-format
msgid "invalid %%p value"
msgstr "%%p değeri geçersiz"
-#: config/m88k/m88k.c:2999 config/m88k/m88k.c:3004
+#: config/m88k/m88k.c:2933 config/m88k/m88k.c:2938
#, c-format
msgid "invalid %%s/S value"
msgstr "%%s/S değeri geçersiz"
-#: config/m88k/m88k.c:3015
+#: config/m88k/m88k.c:2949
#, c-format
msgid "invalid %%P operand"
msgstr "%%P terimi geçersiz"
-#: config/m88k/m88k.c:3046 config/romp/romp.c:682
+#: config/m88k/m88k.c:2980 config/romp/romp.c:690
#, c-format
msgid "invalid %%B value"
msgstr "%%B değeri geçersiz"
-#: config/m88k/m88k.c:3076
+#: config/m88k/m88k.c:3010
#, c-format
msgid "invalid %%D value"
msgstr "%%D değeri geçersiz"
-#: config/m88k/m88k.c:3089
+#: config/m88k/m88k.c:3023
#, c-format
msgid "`%%d' operand isn't a register"
msgstr "`%%d' terimi bir yazmaç değil"
-#: config/m88k/m88k.c:3107
+#: config/m88k/m88k.c:3041
msgid "operand is r0"
msgstr "veri öğesi: r0"
-#: config/m88k/m88k.c:3121
+#: config/m88k/m88k.c:3055
msgid "operand is const_double"
msgstr "veri öğesi: const_double"
-#: config/m88k/m88k.c:3140
+#: config/m88k/m88k.c:3074
msgid "invalid code"
msgstr "geçersiz kod"
@@ -11272,7 +11632,7 @@ msgstr "-mshort-data-%s çok büyük"
msgid "-mshort-data-%s and PIC are incompatible"
msgstr "-mshort-data-%s ve PIC uyumsuz"
-#: config/mcore/mcore.c:3083
+#: config/mcore/mcore.c:3078
#, c-format
msgid "invalid option `-mstack-increment=%s'"
msgstr "`-mstack-increment=%s' seçeneği geçersiz"
@@ -11298,7 +11658,7 @@ msgid "Do not use the divide instruction"
msgstr "Bölme komutu kullanılmaz"
#: config/mcore/mcore.h:140
-msgid "Do not arbitary sized immediates in bit operations"
+msgid "Do not arbitrary sized immediates in bit operations"
msgstr "Bit işlemlerinde herhangi bir boyda anlık değerler kullanmaz"
#: config/mcore/mcore.h:142
@@ -11329,217 +11689,229 @@ msgstr "Kod M*Core M340 için üretilir"
msgid "Maximum amount for a single stack increment operation"
msgstr "Tek yığıt artış işleminde kullanılacak maksimum miktar"
-#: config/mips/mips.c:4815
-msgid "The -march option is incompatible to -mipsN and therefore ignored."
-msgstr " -march seçeneği -mipsN ile uyumsuz olduğundan yoksayıldı."
+#: config/mips/mips.c:5128
+#, c-format
+msgid "bad value (%s) for -mabi= switch"
+msgstr "-mabi= seçeneğinin değeri (%s) hatalı"
-#: config/mips/mips.c:4841
+#: config/mips/mips.c:5158
#, c-format
-msgid "-mips%d not supported"
-msgstr "-mips%d desteklenmiyor"
+msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+msgstr "-mips%d mimarinin diğer seçenekleri tarafından bir MIPS%d işlemci belirtildiğinden çelişki yaratıyor"
-#: config/mips/mips.c:4848
+#: config/mips/mips.c:5165
#, c-format
msgid "bad value (%s) for -mips switch"
msgstr "-mips seçeneğinin değeri (%s) hatalı"
-#: config/mips/mips.c:4869
+#: config/mips/mips.c:5180
#, c-format
-msgid "bad value (%s) for -mabi= switch"
-msgstr "-mabi= seçeneğinin değeri (%s) hatalı"
+msgid "-march=%s is not compatible with the selected ABI"
+msgstr "-march=%s seçilen ABI ile uyumsuz"
-#: config/mips/mips.c:4907
-#, c-format
-msgid "-mabi=%s does not support -mips%d"
-msgstr "-mabi=%s ile -mips%d uyumsuz"
+#: config/mips/mips.c:5192
+msgid "-mgp64 used with a 32-bit processor"
+msgstr "-mgp64 bir 32-bit işlemci ile kullanılmış"
-#: config/mips/mips.c:4924
-msgid "this target does not support the -mabi switch"
-msgstr "bu hedef -mabi seçeneğini desteklemez."
+#: config/mips/mips.c:5194
+msgid "-mgp32 used with a 64-bit ABI"
+msgstr "-mgp32 bir 64-bit ABI ile kullanılmış"
-#: config/mips/mips.c:5034
-#, c-format
-msgid "bad value (%s) for -mtune= switch"
-msgstr "-mtune= seçeneğinin değeri (%s) hatalı"
+#: config/mips/mips.c:5196
+msgid "-mgp64 used with a 32-bit ABI"
+msgstr "-mgp64 bir 32-bit ABI ile kullanılmış"
-#: config/mips/mips.c:5044
+#: config/mips/mips.c:5214 config/mips/mips.c:5216 config/mips/mips.c:5218
#, c-format
-msgid "-mips%d does not support 64 bit fp registers"
-msgstr "-mips%d 64 bit fp yazmaçlarını desteklemez"
+msgid "unsupported combination: %s"
+msgstr "desteklenmeyen birleÅŸim: %s"
-#: config/mips/mips.c:5050
-#, c-format
-msgid "-mips%d does not support 64 bit gp registers"
-msgstr "-mips%d 64 bit gp yazmaçlarını desteklemez"
+#: config/mips/mips.c:5288
+msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+msgstr "Branch Likely komutlarının üretimi etkinleştirildi ama mimari desteklemiyor"
-#: config/mips/mips.c:5071
+#: config/mips/mips.c:5299
msgid "-G is incompatible with PIC code which is the default"
msgstr "-G öntanımlı olan PIC kodu ile uyumsuz"
-#: config/mips/mips.c:5087
+#: config/mips/mips.c:5315
msgid "-membedded-pic and -mabicalls are incompatible"
msgstr "-membedded-pic ile -mabicalls uyumsuz"
-#: config/mips/mips.c:5090
+#: config/mips/mips.c:5318
msgid "-G and -membedded-pic are incompatible"
msgstr "-G ile -membedded-pic uyumsuz"
-#: config/mips/mips.c:5141
+#: config/mips/mips.c:5369
#, c-format
msgid "invalid option `entry%s'"
msgstr "`entry%s' seçeneği geçersiz"
-#: config/mips/mips.c:5144
+#: config/mips/mips.c:5372
msgid "-mentry is only meaningful with -mips-16"
msgstr "-mentry sadece -mips-16 ile anlamlıdır"
-#: config/mips/mips.c:5484
+#: config/mips/mips.c:5781
#, c-format
msgid "internal error: %%) found without a %%( in assembler pattern"
msgstr "iç hata: üretici maskı içinde %%) için bir %%( bulunamadı"
-#: config/mips/mips.c:5498
+#: config/mips/mips.c:5795
#, c-format
msgid "internal error: %%] found without a %%[ in assembler pattern"
msgstr "iç hata: üretici maskı içinde %%] için bir %%[ bulunamadı"
-#: config/mips/mips.c:5511
+#: config/mips/mips.c:5808
#, c-format
msgid "internal error: %%> found without a %%< in assembler pattern"
msgstr "iç hata: üretici maskı içinde %%> için bir %%< bulunamadı"
-#: config/mips/mips.c:5524
+#: config/mips/mips.c:5821
#, c-format
msgid "internal error: %%} found without a %%{ in assembler pattern"
msgstr "iç hata: üretici maskı içinde %%} için bir %%{ bulunamadı"
-#: config/mips/mips.c:5538
+#: config/mips/mips.c:5835
#, c-format
msgid "PRINT_OPERAND: unknown punctuation '%c'"
msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor"
-#: config/mips/mips.c:5547 config/xtensa/xtensa.c:1913
+#: config/mips/mips.c:5844 config/xtensa/xtensa.c:1939
msgid "PRINT_OPERAND null pointer"
-msgstr "PRINT_OPERAND hiçlik göstergesi"
+msgstr "PRINT_OPERAND boş gösterici"
-#: config/mips/mips.c:5680
+#: config/mips/mips.c:5975
#, c-format
msgid "invalid use of %%d, %%x, or %%X"
msgstr "%%d, %%x, ya da %%X kullanımı geçersiz"
-#: config/mips/mips.c:5723 config/xtensa/xtensa.c:2012
+#: config/mips/mips.c:6013 config/xtensa/xtensa.c:2033
msgid "PRINT_OPERAND_ADDRESS, null pointer"
-msgstr "PRINT_OPERAND_ADDRESS, hiçlik göstergesi"
+msgstr "PRINT_OPERAND_ADDRESS, boş gösterici"
-#: config/mips/mips.c:5947
+#: config/mips/mips.c:6242
msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
-msgstr "MIPS ECOFF biçemi dosya isimlerinin #line'lı işlevlerde değiştirilmesine izin vermez"
+msgstr "MIPS ECOFF biçimi dosya isimlerinin #line'lı işlevlerde değiştirilmesine izin vermez"
-#: config/mips/mips.c:6261
+#: config/mips/mips.c:6552
msgid "can't rewind temp file"
msgstr "geçici dosya açılamıyor"
-#: config/mips/mips.c:6265
+#: config/mips/mips.c:6556
msgid "can't write to output file"
msgstr "çıktı dosyasına yazılamıyor"
-#: config/mips/mips.c:6268
+#: config/mips/mips.c:6559
msgid "can't read from temp file"
msgstr "geçici dosya okunamıyor"
-#: config/mips/mips.c:6271
+#: config/mips/mips.c:6562
msgid "can't close temp file"
msgstr "geçici dosya kapatılamıyor"
-#: config/mips/mips.c:6704
+#: config/mips/mips.c:7003
#, c-format
msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "gp_offset (%ld) veya end_offset (%ld) sıfırdan küçük."
-#: config/mips/mips.c:6866
+#: config/mips/mips.c:7112
#, c-format
msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
msgstr "fp_offset (%ld) veya end_offset (%ld) sıfırdan küçük."
-#: config/mips/mips.c:8927
+#: config/mips/mips.c:9335
#, c-format
msgid "can not handle inconsistent calls to `%s'"
msgstr "çelişkili `%s' çağrıları elde edilemez"
+#: config/mips/mips.c:10467
+msgid "the cpu name must be lower case"
+msgstr "işlemci ismi küçük harflerle yazılmalıdır"
+
+#: config/mips/mips.c:10489
+#, c-format
+msgid "bad value (%s) for %s"
+msgstr "%2$s için değer (%1$s) hatalı"
+
+#. Target CPU builtins.
+#. We do this here because __mips is defined below and so we can't use builtin_define_std.
+#. Treat _R3000 and _R4000 like register-size defines, which is how they've historically been used.
+#. Macros dependent on the C dialect.
+#. Bizzare, but needed at least for Irix.
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:368 config/mn10300/mn10300.h:64
+#: config/mips/mips.h:528 config/mn10300/mn10300.h:64
msgid "No default crt0.o"
msgstr "Öntanımlı crt0.o yok"
-#: config/mips/mips.h:370
+#: config/mips/mips.h:530
msgid "Use 64-bit int type"
msgstr "64-bit int tür kullanılır"
-#: config/mips/mips.h:372
+#: config/mips/mips.h:532
msgid "Use 64-bit long type"
msgstr "64-bit long tür kullanılır"
-#: config/mips/mips.h:374
+#: config/mips/mips.h:534
msgid "Use 32-bit long type"
msgstr "32-bit long tür kullanılır"
-#: config/mips/mips.h:376
+#: config/mips/mips.h:536
msgid "Optimize lui/addiu address loads"
msgstr "lui/addiu adres yüklemeleri eniyilenir"
-#: config/mips/mips.h:378
+#: config/mips/mips.h:538
msgid "Don't optimize lui/addiu address loads"
msgstr "lui/addiu adres yüklemeleri eniyilenmez"
-#: config/mips/mips.h:380
+#: config/mips/mips.h:540
msgid "Use MIPS as"
msgstr "MIPS as kullanılır"
-#: config/mips/mips.h:382
+#: config/mips/mips.h:542
msgid "Use GNU as"
msgstr "GNU as kullanılır"
-#: config/mips/mips.h:384
+#: config/mips/mips.h:544
msgid "Use symbolic register names"
msgstr "Sembolik yazmaç isimleri kullanılır"
-#: config/mips/mips.h:386
+#: config/mips/mips.h:546
msgid "Don't use symbolic register names"
msgstr "Sembolik yazmaç isimleri kullanılmaz"
-#: config/mips/mips.h:388 config/mips/mips.h:390
+#: config/mips/mips.h:548 config/mips/mips.h:550
msgid "Use GP relative sdata/sbss sections"
msgstr "GP göreli sdata/sbss bölümleri kullanılır"
-#: config/mips/mips.h:392 config/mips/mips.h:394
+#: config/mips/mips.h:552 config/mips/mips.h:554
msgid "Don't use GP relative sdata/sbss sections"
msgstr "GP göreli sdata/sbss bölümleri kullanılmaz"
-#: config/mips/mips.h:396
+#: config/mips/mips.h:556
msgid "Output compiler statistics"
msgstr "Derleyici istatistikleri çıktılanır"
-#: config/mips/mips.h:398
+#: config/mips/mips.h:558
msgid "Don't output compiler statistics"
msgstr "Derleyici istatistikleri çıktılanmaz"
-#: config/mips/mips.h:400
+#: config/mips/mips.h:560
msgid "Don't optimize block moves"
msgstr "Blok taşıma eniyilemesi yapılmaz"
-#: config/mips/mips.h:402
+#: config/mips/mips.h:562
msgid "Optimize block moves"
msgstr "Blok taşımalar eniyilenir"
-#: config/mips/mips.h:404
+#: config/mips/mips.h:564
msgid "Use mips-tfile asm postpass"
msgstr "mips-tfile asm postpass kullanır"
-#: config/mips/mips.h:406
+#: config/mips/mips.h:566
msgid "Don't use mips-tfile asm postpass"
msgstr "mips-tfile asm postpass kullanmaz"
@@ -11549,268 +11921,251 @@ msgstr "mips-tfile asm postpass kullanmaz"
#. where VALUE is the bits to set or minus the bits to clear and DOC
#. is the documentation for --help (NULL if intentionally undocumented).
#. An empty string NAME is used to identify the default VALUE.
-#: config/mips/mips.h:410 config/pdp11/pdp11.h:55
+#: config/mips/mips.h:570 config/pdp11/pdp11.h:56
msgid "Use hardware floating point"
msgstr "Donanım kayan nokta aritmetiği kullanılır"
-#: config/mips/mips.h:412
+#: config/mips/mips.h:572
msgid "Use 64-bit FP registers"
msgstr "64 bitlik FP yazmaçları kullanılır"
-#: config/mips/mips.h:414
+#: config/mips/mips.h:574
msgid "Use 32-bit FP registers"
msgstr "32 bitlik FP yazmaçları kullanılır"
-#: config/mips/mips.h:416
+#: config/mips/mips.h:576
msgid "Use 64-bit general registers"
msgstr "64 bitlik genel yazmaçlar kullanılır"
-#: config/mips/mips.h:418
+#: config/mips/mips.h:578
msgid "Use 32-bit general registers"
msgstr "32 bitlik genel yazmaçlar kullanılır"
-#: config/mips/mips.h:420
+#: config/mips/mips.h:580
msgid "Use Irix PIC"
msgstr "Irix PIC kullanılır"
-#: config/mips/mips.h:422
+#: config/mips/mips.h:582
msgid "Don't use Irix PIC"
msgstr "Irix PIC kullanılmaz"
-#: config/mips/mips.h:424
-msgid "Use OSF PIC"
-msgstr "OSF PIC kullanılır"
-
-#: config/mips/mips.h:426
-msgid "Don't use OSF PIC"
-msgstr "OSF PIC kullanılmaz"
-
-#: config/mips/mips.h:428
+#: config/mips/mips.h:584
msgid "Use indirect calls"
msgstr "Dolaylı çağrılar kullanılır"
-#: config/mips/mips.h:430
+#: config/mips/mips.h:586
msgid "Don't use indirect calls"
msgstr "Dolaylı çağrılar kullanılmaz"
-#: config/mips/mips.h:432
+#: config/mips/mips.h:588
msgid "Use embedded PIC"
msgstr "Gömülü PIC kullanılır"
-#: config/mips/mips.h:434
+#: config/mips/mips.h:590
msgid "Don't use embedded PIC"
msgstr "Gömülü PIC kullanılmaz"
-#: config/mips/mips.h:436
+#: config/mips/mips.h:592
msgid "Use ROM instead of RAM"
msgstr "RAM yerine ROM kullanılır"
-#: config/mips/mips.h:438
+#: config/mips/mips.h:594
msgid "Don't use ROM instead of RAM"
msgstr "RAM yerine ROM kullanılmaz"
-#: config/mips/mips.h:440
+#: config/mips/mips.h:596
msgid "Put uninitialized constants in ROM (needs -membedded-data)"
msgstr "Ä°lklenmemiÅŸ sabitleri ROM'a koyar (-membedded-data gerektirir)"
-#: config/mips/mips.h:442
+#: config/mips/mips.h:598
msgid "Don't put uninitialized constants in ROM"
msgstr "Ä°lklenmemiÅŸ sabitleri ROM'a koymaz"
#. Macro to define tables used to set the flags.
-#: config/mips/mips.h:444 config/xtensa/xtensa.h:110
+#: config/mips/mips.h:600 config/xtensa/xtensa.h:110
msgid "Use big-endian byte order"
msgstr "Büyük ilkli bayt sıralaması kullanılır"
-#: config/mips/mips.h:446 config/xtensa/xtensa.h:112
+#: config/mips/mips.h:602 config/xtensa/xtensa.h:112
msgid "Use little-endian byte order"
msgstr "Küçük ilkli bayt sıralaması kullanılır"
-#: config/mips/mips.h:448
+#: config/mips/mips.h:604
msgid "Use single (32-bit) FP only"
msgstr "Sadece tek (32 bit) FP kullanır"
-#: config/mips/mips.h:450
+#: config/mips/mips.h:606
msgid "Don't use single (32-bit) FP only"
msgstr "Sadece tek (32 bit) FP kullanmaz"
-#: config/mips/mips.h:452
+#: config/mips/mips.h:608
msgid "Use multiply accumulate"
msgstr "Çarpma biriktirmesi kullanır"
-#: config/mips/mips.h:454
+#: config/mips/mips.h:610
msgid "Don't use multiply accumulate"
msgstr "Çarpma biriktirmesi kullanmaz"
-#: config/mips/mips.h:456 config/rs6000/rs6000.h:351
+#: config/mips/mips.h:612 config/rs6000/rs6000.h:314
msgid "Don't generate fused multiply/add instructions"
msgstr "Birleşik çarpma/toplama komutları üretilmez"
-#: config/mips/mips.h:458 config/rs6000/rs6000.h:349
+#: config/mips/mips.h:614 config/rs6000/rs6000.h:312
msgid "Generate fused multiply/add instructions"
msgstr "Birleşik çarpma/toplama komutları üretilir"
-#: config/mips/mips.h:460
+#: config/mips/mips.h:616
msgid "Work around early 4300 hardware bug"
msgstr "İlk üretim 4300 donanım hatasının olurunu bulur"
-#: config/mips/mips.h:462
+#: config/mips/mips.h:618
msgid "Don't work around early 4300 hardware bug"
msgstr "İlk üretim 4300 donanım hatasının olurunu bulmaz"
-#: config/mips/mips.h:464
-msgid "Optimize for 3900"
-msgstr "3900 için eniyileme yapılır"
-
-#: config/mips/mips.h:466
-msgid "Optimize for 4650"
-msgstr "4650 için eniyileme yapılır"
-
-#: config/mips/mips.h:468
+#: config/mips/mips.h:620
msgid "Trap on integer divide by zero"
msgstr "Sıfırla tamsayı bölme taşması yakalanır"
-#: config/mips/mips.h:470
+#: config/mips/mips.h:622
msgid "Don't trap on integer divide by zero"
msgstr "Sıfırla tamsayı bölme taşması yakalanmaz"
-#: config/mips/mips.h:472
+#: config/mips/mips.h:624
msgid "Trap on integer divide overflow"
msgstr "Tamsayı bölme taşması yakalanır"
-#: config/mips/mips.h:474
+#: config/mips/mips.h:626
msgid "Don't trap on integer divide overflow"
msgstr "Tamsayı bölme taşması yakalanmaz"
-#: config/mips/mips.h:590 config/mips/mips.h:592
+#: config/mips/mips.h:628
+msgid "Use Branch Likely instructions, overriding default for arch"
+msgstr "Öntanımlı mimariye rağmen Branch Likely komutları kullanılır"
+
+#: config/mips/mips.h:630
+msgid "Don't use Branch Likely instructions, overriding default for arch"
+msgstr "Öntanımlı mimariye rağmen Branch Likely komutları kullanılmaz"
+
+#: config/mips/mips.h:744 config/pa/pa.h:310
msgid "Specify CPU for scheduling purposes"
msgstr "Zamanlama kullanımı için CPU belirtilir"
-#: config/mips/mips.h:594
+#: config/mips/mips.h:746
msgid "Specify CPU for code generation purposes"
msgstr "Kod üretim amacıyla MİB belirtilir"
-#: config/mips/mips.h:596
+#: config/mips/mips.h:748
+msgid "Specify an ABI"
+msgstr "Bir ABI belirtilir"
+
+#: config/mips/mips.h:750
msgid "Specify a Standard MIPS ISA"
msgstr "Bir Standard MIPS ISA belirtilir"
-#: config/mips/mips.h:598
+#: config/mips/mips.h:752
msgid "Use mips16 entry/exit psuedo ops"
msgstr "mips16 giriş/çıkış sanal op'larını kullanır"
-#: config/mips/mips.h:600
+#: config/mips/mips.h:754
msgid "Don't use MIPS16 instructions"
msgstr "MIPS16 komutları kullanılmaz"
-#: config/mips/mips.h:604
+#: config/mips/mips.h:756
msgid "Don't call any cache flush functions"
msgstr "Hiçbir arabellek boşaltma işlevi çağrılmaz"
-#: config/mips/mips.h:606
+#: config/mips/mips.h:758
msgid "Specify cache flush function"
msgstr "Arabellek boÅŸaltma iÅŸlevi belirtilir"
#. Output assembler code to FILE to increment profiler label # LABELNO
#. for profiling a function entry.
-#: config/mips/mips.h:2873
+#: config/mips/mips.h:2900
msgid "mips16 function profiling"
msgstr "mips16 işlev ayrımlama"
-#: config/mmix/mmix.c:138
+#: config/mmix/mmix.c:189
#, c-format
msgid "-f%s not supported: ignored"
msgstr "-f%s desteklenmiyor: yoksayıldı"
-#: config/mmix/mmix.c:596
+#: config/mmix/mmix.c:644
#, c-format
msgid "too large function value type, needs %d registers, have only %d registers for this"
msgstr "işlev değer türü çok büyük, bunun için %d yazmaç gerekirken sadece %d yazmaç var"
-#: config/mmix/mmix.c:677
-msgid "stack frame too big"
-msgstr "yığın bağlamı çok büyük"
-
-#: config/mmix/mmix.c:705
-#, c-format
-msgid "stack frame not a multiple of 8 bytes: %d"
-msgstr "yığın bağlamı 8 baytın katları değil: %d"
-
-#: config/mmix/mmix.c:1044
-#, c-format
-msgid "stack frame not a multiple of octabyte: %d"
-msgstr "yığın bağlamı 8 baytın katları değil: %d"
-
-#: config/mmix/mmix.c:1203
+#: config/mmix/mmix.c:826
msgid "function_profiler support for MMIX"
msgstr "MMIX için function_profiler desteği"
-#: config/mmix/mmix.c:1240
-msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
-msgstr "mmix_setup_incoming_varargs içinde ne varargs ne de stdarg var"
-
-#: config/mmix/mmix.c:1246
+#: config/mmix/mmix.c:848
msgid "MMIX Internal: Last named vararg would not fit in a register"
msgstr "MMIX Dahili: Son isimli argüman bir yazmaça sığamamalı"
-#. FIXME: Remove when I know this trigs.
-#: config/mmix/mmix.c:1608
-msgid "oops, not debugged; fixing up value:"
-msgstr "oof, hata ayıklamasız; değer düzeltiliyor:"
-
-#: config/mmix/mmix.c:2184 config/mmix/mmix.c:2318
+#: config/mmix/mmix.c:1639 config/mmix/mmix.c:1769
msgid "MMIX Internal: Expected a CONST_INT, not this"
msgstr "MMIX Dahili: Bu deÄŸil, bir CONST_INT bekleniyor"
-#: config/mmix/mmix.c:2192 config/mmix/mmix.c:2216 config/mmix/mmix.c:2335
+#: config/mmix/mmix.c:1647 config/mmix/mmix.c:1671 config/mmix/mmix.c:1787
#, c-format
msgid "MMIX Internal: Bad register: %d"
msgstr "MMIX Dahili: Hatalı yazmaç: %d"
-#: config/mmix/mmix.c:2263
+#: config/mmix/mmix.c:1718
msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
msgstr "MMIX Dahili: 'm' için bu bir CONST_INT değil, hatalı değer"
-#: config/mmix/mmix.c:2286
+#: config/mmix/mmix.c:1737
msgid "MMIX Internal: Expected a register, not this"
msgstr "MMIX Dahili: Bu değil, bir yazmaç bekleniyor"
-#: config/mmix/mmix.c:2296
+#: config/mmix/mmix.c:1747
msgid "MMIX Internal: Expected a constant, not this"
msgstr "MMIX Dahili: Bu deÄŸil, bir sabit bekleniyor"
#. Presumably there's a missing case above if we get here.
-#: config/mmix/mmix.c:2328
+#: config/mmix/mmix.c:1779
#, c-format
msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
msgstr "MMIX Dahili: mmix_print_operand içideki `%c' case eksik"
#. We need the original here.
-#: config/mmix/mmix.c:2379
+#: config/mmix/mmix.c:1831
msgid "MMIX Internal: Cannot decode this operand"
msgstr "MMIX Dahili: Bu terim iÅŸlenemez"
-#: config/mmix/mmix.c:2444
+#: config/mmix/mmix.c:1891
msgid "MMIX Internal: This is not a recognized address"
msgstr "MMIX Dahili: Bu bilinen bir adres deÄŸil"
-#: config/mmix/mmix.c:2940 config/mmix/mmix.c:3009
+#: config/mmix/mmix.c:2082
+#, c-format
+msgid "stack frame not a multiple of 8 bytes: %d"
+msgstr "yığın bağlamı 8 baytın katları değil: %d"
+
+#: config/mmix/mmix.c:2321
+#, c-format
+msgid "stack frame not a multiple of octabyte: %d"
+msgstr "yığın bağlamı 8 baytın katları değil: %d"
+
+#: config/mmix/mmix.c:2818 config/mmix/mmix.c:2887
#, c-format
msgid "MMIX Internal: %s is not a shiftable int"
msgstr "MMIX Dahili: %s bir bit kaydırma yapılabilir tamsayı değil"
-#: config/mmix/mmix.c:3128
+#: config/mmix/mmix.c:3006
msgid "MMIX Internal: Trying to output invalidly reversed condition:"
msgstr "MMIX Dahili: Geçersiz olarak ters çevrien koşul çıktılanmaya çalışılıyor:"
-#: config/mmix/mmix.c:3135
+#: config/mmix/mmix.c:3013
msgid "MMIX Internal: What's the CC of this?"
msgstr "MMIX Dahili: Bunun CC'si nedir?"
-#: config/mmix/mmix.c:3139
+#: config/mmix/mmix.c:3017
msgid "MMIX Internal: What is the CC of this?"
msgstr "MMIX Dahili: Bunun CC'si nedir?"
-#: config/mmix/mmix.c:3210
+#: config/mmix/mmix.c:3088
msgid "MMIX Internal: This is not a constant:"
msgstr "MMIX Dahili: Bu bir sabit deÄŸil:"
@@ -11823,8 +12178,6 @@ msgstr "MMIX Dahili: Bu bir sabit deÄŸil:"
#. the opposite, since we don't have to care about old littering and
#. soon outdated generic comments.
#. Node: Driver
-#. When both ABI:s work, this is how we tell them apart in code. The
-#. GNU abi is implied the default. Also implied in TARGET_DEFAULT.
#. User symbols are in the same name-space as built-in symbols, but we
#. don't need the built-in symbols, so remove those and instead apply
#. stricter operand checking. Don't warn when expanding insns.
@@ -11833,67 +12186,75 @@ msgstr "MMIX Dahili: Bu bir sabit deÄŸil:"
#. Don't do this if linking relocatably, with -r. For a final link,
#. produce mmo, unless ELF is requested or when linking relocatably.
#. Put unused option values here.
-#: config/mmix/mmix.h:137
+#: config/mmix/mmix.h:132
msgid "Set start-address of the program"
msgstr "Programın başlangıç adresi belirtilir"
-#: config/mmix/mmix.h:139
+#: config/mmix/mmix.h:134
msgid "Set start-address of data"
msgstr "Verinin başlangıç adresi belirlenir"
#. FIXME: Provide a way to *load* the epsilon register.
-#: config/mmix/mmix.h:188
+#: config/mmix/mmix.h:198
msgid "For intrinsics library: pass all parameters in registers"
msgstr "Yerleşikler kitaplığı için: yazmaçlardaki tüm parametreler aktarılır"
-#: config/mmix/mmix.h:191
+#: config/mmix/mmix.h:201
msgid "Use register stack for parameters and return value"
msgstr "Parametreler ve dönen değer için yazmaç yığını kullanılır"
-#: config/mmix/mmix.h:193
+#: config/mmix/mmix.h:203
msgid "Use call-clobbered registers for parameters and return value"
msgstr "Parametreler ve dönen değer için çağrı taşırmalı yazmaçlar kullanılır"
-#: config/mmix/mmix.h:195
+#: config/mmix/mmix.h:205
msgid "Use epsilon-respecting floating point compare instructions"
msgstr "Epsilona ilişkin kayan nokta karşılaştırma komutları kullanılır"
-#: config/mmix/mmix.h:198
+#: config/mmix/mmix.h:208
msgid "Use zero-extending memory loads, not sign-extending ones"
msgstr "Uzunluğu değişmeyen bellek yükleri kullanılır"
-#: config/mmix/mmix.h:201
+#: config/mmix/mmix.h:211
msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
msgstr "Bölen (bölünen değil) ile aynı işarete sahip kalanlı bölme sonuçları üretilir"
-#: config/mmix/mmix.h:205
+#: config/mmix/mmix.h:215
msgid "Prepend global symbols with \":\" (for use with PREFIX)"
msgstr "Genel semboller \":\" ile öne eklenir (ÖNEK ile kullanmak için)"
-#: config/mmix/mmix.h:207
+#: config/mmix/mmix.h:217
msgid "Do not provide a default start-address 0x100 of the program"
msgstr "Programa bir öntanımlı başlatma adresi 0x100 sağlanmaz"
-#: config/mmix/mmix.h:209
+#: config/mmix/mmix.h:219
msgid "Link to emit program in ELF format (rather than mmo)"
-msgstr "ELF biçemli program üretimine ilintiler (mmo dan başka)"
+msgstr "ELF biçimli program üretimine ilintiler (mmo dan başka)"
-#: config/mmix/mmix.h:211
+#: config/mmix/mmix.h:221
msgid "Use P-mnemonics for branches statically predicted as taken"
msgstr "Statik olarak alınmış olduğu önceden tahmin edilen dallanmalar için P-mnemonikleri kullanılır"
-#: config/mmix/mmix.h:213
+#: config/mmix/mmix.h:223
msgid "Don't use P-mnemonics for branches"
msgstr "Dallar için P-mnemonikleri kullanılmaz"
-#: config/mmix/mmix.h:215
+#: config/mmix/mmix.h:225
msgid "Use addresses that allocate global registers"
msgstr "Genel yazmaçları tahsis eden adresler kullanılır"
-#: config/mmix/mmix.h:217
+#: config/mmix/mmix.h:227
msgid "Do not use addresses that allocate global registers"
msgstr "Genel yazmaçları tahsis eden adresler kullanılmaz"
+#: config/mmix/mmix.h:229
+msgid "Generate a single exit point for each function"
+msgstr "Her işlev için tek çıkış noktası üretilir"
+
+#: config/mmix/mmix.h:231
+msgid "Do not generate a single exit point for each function"
+msgstr "Her işlev için tek çıkış noktası üretilmez"
+
#: config/mn10300/mn10300.h:59
msgid "Work around hardware multiply bug"
msgstr "Donanım çarpma hatasının olurunu bulur"
@@ -11910,88 +12271,88 @@ msgstr "AM33 iÅŸlemci hedeflenir"
msgid "Enable linker relaxations"
msgstr "Ä°lintileyici esnekleÅŸtiriciler etkinleÅŸtirilir"
-#: config/ns32k/ns32k.h:104 config/s390/s390.h:57
+#: config/ns32k/ns32k.h:142 config/s390/s390.h:69
msgid "Don't use hardware fp"
msgstr "Donanım kayan nokta aritmetiği kullanılmaz"
-#: config/ns32k/ns32k.h:105
+#: config/ns32k/ns32k.h:143
msgid "Alternative calling convention"
msgstr "Alternatif çağrı uzlaşımı"
-#: config/ns32k/ns32k.h:107
+#: config/ns32k/ns32k.h:145
msgid "Pass some arguments in registers"
msgstr "Yazmaçlardaki bazı argümanlar aktarılır"
-#: config/ns32k/ns32k.h:108
+#: config/ns32k/ns32k.h:146
msgid "Pass all arguments on stack"
msgstr "Yığındaki tüm argümanlar aktarılır"
-#: config/ns32k/ns32k.h:109
+#: config/ns32k/ns32k.h:147
msgid "Optimize for 32532 cpu"
msgstr "32532 cpu için eniyileme yapılır"
-#: config/ns32k/ns32k.h:110
+#: config/ns32k/ns32k.h:148
msgid "Optimize for 32332 cpu"
msgstr "32332 cpu için eniyileme yapılır"
-#: config/ns32k/ns32k.h:112
+#: config/ns32k/ns32k.h:150
msgid "Optimize for 32032"
msgstr "32032 için eniyileme yapılır"
-#: config/ns32k/ns32k.h:114
+#: config/ns32k/ns32k.h:152
msgid "Register sb is zero. Use for absolute addressing"
msgstr "sb yazmacı sıfırdır. Mutlak adresleme için kullanın."
-#: config/ns32k/ns32k.h:115
+#: config/ns32k/ns32k.h:153
msgid "Do not use register sb"
msgstr "sb yazmacı kullanılmaz"
-#: config/ns32k/ns32k.h:116
-msgid "Do not use bit-field instructions"
-msgstr "Bit alanı komutları kullanılmaz"
-
-#: config/ns32k/ns32k.h:117
+#: config/ns32k/ns32k.h:155
msgid "Use bit-field instructions"
msgstr "Bit alanı komutları kullanılır"
-#: config/ns32k/ns32k.h:118
+#: config/ns32k/ns32k.h:157
+msgid "Do not use bit-field instructions"
+msgstr "Bit alanı komutları kullanılmaz"
+
+#: config/ns32k/ns32k.h:158
msgid "Generate code for high memory"
msgstr "Kod yukarı bellek bölgesi için üretilir"
-#: config/ns32k/ns32k.h:119
+#: config/ns32k/ns32k.h:159
msgid "Generate code for low memory"
msgstr "Kod alt bellek bölgesi için üretilir"
-#: config/ns32k/ns32k.h:120
+#: config/ns32k/ns32k.h:160
msgid "32381 fpu"
msgstr "32381 fpu"
-#: config/ns32k/ns32k.h:121
+#: config/ns32k/ns32k.h:162
msgid "Use multiply-accumulate fp instructions"
msgstr "Çarpma-biriktirme fp komutları kullanır"
-#: config/ns32k/ns32k.h:123
+#: config/ns32k/ns32k.h:164
msgid "Do not use multiply-accumulate fp instructions"
msgstr "Çarpma-biriktirme fp komutları kullanmaz"
-#: config/ns32k/ns32k.h:124
+#: config/ns32k/ns32k.h:165
msgid "\"Small register classes\" kludge"
msgstr "\"Küçük yazmaç sınıfları\" uydurması"
-#: config/ns32k/ns32k.h:125
+#: config/ns32k/ns32k.h:166
msgid "No \"Small register classes\" kludge"
msgstr "\"Küçük yazmaç sınıfları\" uydurması yok"
-#: config/pa/pa.c:200
+#: config/pa/pa.c:261
#, c-format
msgid ""
"unknown -mschedule= option (%s).\n"
-"Valid options are 700, 7100, 7100LC, 7200, and 8000\n"
+"Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
msgstr ""
"bilinmeyen -mschedule= seçeneği (%s).\n"
-"Geçerli seçenekler: 700, 7100, 7100LC, 7200, ve 8000\n"
+"Geçerli seçenekler: 700, 7100, 7100LC, 7200, 7300 ve 8000\n"
-#: config/pa/pa.c:225
+#: config/pa/pa.c:286
#, c-format
msgid ""
"unknown -march= option (%s).\n"
@@ -12000,66 +12361,194 @@ msgstr ""
"bilinmeyen -march= seçeneği (%s).\n"
"Geçerli seçenekler: 1.0, 1.1, ve 2.0\n"
-#: config/pa/pa.c:230
+#: config/pa/pa.c:299
msgid "PIC code generation is not supported in the portable runtime model\n"
msgstr "PIC kod üretimi uyarlanabilir çalışma anı modeli ile uyumlu değildir\n"
-#: config/pa/pa.c:235
+#: config/pa/pa.c:304
msgid "PIC code generation is not compatible with fast indirect calls\n"
msgstr "PIC kod üretimi hızlı dolaylı çağrılar ile uyumlu değildir\n"
-#: config/pa/pa.c:240
+#: config/pa/pa.c:309
msgid "-g is only supported when using GAS on this processor,"
msgstr "-g sadece bu işlemci üzerinde GAS kullanıldığında desteklenir,"
-#: config/pa/pa.c:241
+#: config/pa/pa.c:310
msgid "-g option disabled"
msgstr "-g seçeneği iptal edildi"
-#: config/pdp11/pdp11.h:56
+#: config/pa/pa-hiux.h:75 config/pa/pa-hpux.h:87 config/pa/pa-hpux7.h:81
+#: config/pa/pa64-hpux.h:25
+msgid "Generate cpp defines for server IO"
+msgstr "Sunucu GÇ için cpp tanımları üretilir"
+
+#: config/pa/pa-hiux.h:76 config/pa/pa-hpux.h:88 config/pa/pa-hpux7.h:82
+#: config/pa/pa64-hpux.h:27
+msgid "Generate cpp defines for workstation IO"
+msgstr "İstemci GÇ için cpp tanımları üretilir"
+
+#. Macro to define tables used to set the flags. This is a
+#. list in braces of target switches with each switch being
+#. { "NAME", VALUE, "HELP_STRING" }. VALUE is the bits to set,
+#. or minus the bits to clear. An empty string NAME is used to
+#. identify the default VALUE. Do not mark empty strings for
+#. translation.
+#: config/pa/pa.h:232 config/pa/pa.h:238
+msgid "Generate PA1.1 code"
+msgstr "PA1.1 kodu üretilir"
+
+#: config/pa/pa.h:234 config/pa/pa.h:236
+msgid "Generate PA1.0 code"
+msgstr "PA1.0 kodu üretilir"
+
+#: config/pa/pa.h:240
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+msgstr "PA2.0 kodu üretilir (binutils 2.10 veya üstü gerekir)"
+
+#: config/pa/pa.h:242
+msgid "Disable FP regs"
+msgstr "FP yazmaçları kapatılır"
+
+#: config/pa/pa.h:244
+msgid "Do not disable FP regs"
+msgstr "FP yazmaçları kapatılmaz"
+
+#: config/pa/pa.h:246
+msgid "Disable space regs"
+msgstr "space yazmaçları kapatılır"
+
+#: config/pa/pa.h:248
+msgid "Do not disable space regs"
+msgstr "space yazmaçları kapatılmaz"
+
+#: config/pa/pa.h:250
+msgid "Put jumps in call delay slots"
+msgstr "jump'lar çağrı geciktirme yuvalarına konur"
+
+#: config/pa/pa.h:252
+msgid "Do not put jumps in call delay slots"
+msgstr "jump'lar çağrı geciktirme yuvalarına konmaz"
+
+#: config/pa/pa.h:254
+msgid "Disable indexed addressing"
+msgstr "İndisli adresleme kapatılır"
+
+#: config/pa/pa.h:256
+msgid "Do not disable indexed addressing"
+msgstr "İndisli adresleme kapatılmaz"
+
+#: config/pa/pa.h:258
+msgid "Use portable calling conventions"
+msgstr "Uyarlanabilir çağrı uzlaşımı kullanılır"
+
+#: config/pa/pa.h:260
+msgid "Do not use portable calling conventions"
+msgstr "Uyarlanabilir çağrı uzlaşımı kullanılmaz"
+
+#: config/pa/pa.h:262
+msgid "Assume code will be assembled by GAS"
+msgstr "Kodun makina koduna GAS tarafından çevrileceği varsayılır"
+
+#: config/pa/pa.h:264
+msgid "Do not assume code will be assembled by GAS"
+msgstr "Kodun makina koduna GAS tarafından çevrilmeyeceği varsayılır"
+
+#: config/pa/pa.h:268
+msgid "Do not use software floating point"
+msgstr "Yazılım kayan nokta aritmetiği kullanılmaz"
+
+#: config/pa/pa.h:270
+msgid "Emit long load/store sequences"
+msgstr "Uzun yükleme/saklama çoklu komutları üretilir"
+
+#: config/pa/pa.h:272
+msgid "Do not emit long load/store sequences"
+msgstr "Uzun yükleme/saklama çoklu komutları üretilmez"
+
+#: config/pa/pa.h:274
+msgid "Generate fast indirect calls"
+msgstr "Hızlı dolaylı çağrılar üretilir"
+
+#: config/pa/pa.h:276
+msgid "Do not generate fast indirect calls"
+msgstr "Hızlı dolaylı çağrılar üretilmez"
+
+#: config/pa/pa.h:278
+msgid "Generate code for huge switch statements"
+msgstr "huge switch deyimleri için kod üretilir"
+
+#: config/pa/pa.h:280
+msgid "Do not generate code for huge switch statements"
+msgstr "huge switch deyimleri için kod üretilmez"
+
+#: config/pa/pa.h:282
+msgid "Always generate long calls"
+msgstr "long çağrıları daima üretilir"
+
+#: config/pa/pa.h:284
+msgid "Generate long calls only when needed"
+msgstr "Sadece gerektiği zaman long çağrıları üretilir"
+
+#: config/pa/pa.h:286
+msgid "Enable linker optimizations"
+msgstr "Ä°lintileyici eniyilemesi etkinleÅŸtirilir"
+
+#: config/pa/pa.h:312
+msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+msgstr "Kod üretimi için mimari belirtilir. Değerler 1.0, 1.1 ve 2.0 dır. gas snapshot 19990413 ve sonrası için 2.0 gerekir."
+
+#: config/pa/pa64-hpux.h:29
+msgid "Assume code will be linked by GNU ld"
+msgstr "Kodun GNU ld tarafından ilintileneceği varsayılır"
+
+#: config/pa/pa64-hpux.h:31
+msgid "Assume code will be linked by HP ld"
+msgstr "Kodun HP ld tarafından ilintileneceği varsayılır"
+
+#: config/pdp11/pdp11.h:57
msgid "Do not use hardware floating point"
msgstr "Donanım kayan nokta aritmetiği kullanılmaz"
#. return float result in ac0
-#: config/pdp11/pdp11.h:58
+#: config/pdp11/pdp11.h:59
msgid "Return floating point results in ac0"
msgstr "ac0'daki kayan noktalı sonuçlar döner"
-#: config/pdp11/pdp11.h:59
+#: config/pdp11/pdp11.h:60
msgid "Return floating point results in memory"
msgstr "Bellekteki kayan noktalı sonuçlar döner"
#. is 11/40
-#: config/pdp11/pdp11.h:61
+#: config/pdp11/pdp11.h:62
msgid "Generate code for an 11/40"
msgstr "Kod bir 11/40 için üretilir"
#. is 11/45
-#: config/pdp11/pdp11.h:64
+#: config/pdp11/pdp11.h:65
msgid "Generate code for an 11/45"
msgstr "Kod bir 11/45 için üretilir"
#. is 11/10
-#: config/pdp11/pdp11.h:67
+#: config/pdp11/pdp11.h:68
msgid "Generate code for an 11/10"
msgstr "Kod bir 11/10 için üretilir"
#. use movstrhi for bcopy
#. use 32 bit for int
-#: config/pdp11/pdp11.h:72 config/pdp11/pdp11.h:73
+#: config/pdp11/pdp11.h:73 config/pdp11/pdp11.h:74
msgid "Use 32 bit int"
msgstr "32 bitlik tamsayı kullanılır"
-#: config/pdp11/pdp11.h:74 config/pdp11/pdp11.h:75
+#: config/pdp11/pdp11.h:75 config/pdp11/pdp11.h:76
msgid "Use 16 bit int"
msgstr "16 bitlik tamsayı kullanılır"
#. use 32 bit for float
-#: config/pdp11/pdp11.h:77 config/pdp11/pdp11.h:78
+#: config/pdp11/pdp11.h:78 config/pdp11/pdp11.h:79
msgid "Use 32 bit float"
msgstr "32 bitlik float kullanılır"
-#: config/pdp11/pdp11.h:79 config/pdp11/pdp11.h:80
+#: config/pdp11/pdp11.h:80 config/pdp11/pdp11.h:81
msgid "Use 64 bit float"
msgstr "64 bitlik float kullanılır"
@@ -12067,73 +12556,50 @@ msgstr "64 bitlik float kullanılır"
#. is branching expensive - on a PDP, it's actually really cheap
#. this is just to play around and check what code gcc generates
#. split instruction and data memory?
-#: config/pdp11/pdp11.h:89
+#: config/pdp11/pdp11.h:90
msgid "Target has split I&D"
msgstr "Hedef ayrı işlem ve veri belleğine sahip olur"
-#: config/pdp11/pdp11.h:90
+#: config/pdp11/pdp11.h:91
msgid "Target does not have split I&D"
msgstr "Hedef ayrı işlem ve veri belleğine sahip olmaz"
#. UNIX assembler syntax?
-#: config/pdp11/pdp11.h:92
+#: config/pdp11/pdp11.h:93
msgid "Use UNIX assembler syntax"
msgstr "UNIX çevirici sözdizimi kullanılır"
-#: config/pdp11/pdp11.h:93
+#: config/pdp11/pdp11.h:94
msgid "Use DEC assembler syntax"
msgstr "DEC çevirici sözdizimi kullanılır"
-#: config/pj/pj.h:73
-msgid "Generate little endian data"
-msgstr "Küçük ilkli veri üretilir"
-
-#: config/pj/pj.h:75
-msgid "Generate big endian data"
-msgstr "Büyük ilkli veri üretilir"
-
-#: config/pj/pj.h:77
-msgid "Turn on maintainer testing code"
-msgstr "Programcı denetim kodunu etkinleştirir"
-
-#: config/pj/pj.h:79
-msgid "Enable Transmeta picoJava extensions"
-msgstr "Transmeta picoJava uzantıları etkinleştirilir"
-
-#: config/pj/pj.h:81
-msgid "Disable Transmeta picoJava extensions"
-msgstr "Transmeta picoJava uzantıları kullanılmaz"
-
-#: config/pj/pj.h:83
-msgid "Disable reorganization pass"
-msgstr "Aşamaların yeniden organizasyonu yapılmaz"
-
-#: config/romp/romp.c:709 config/rs6000/rs6000.c:6546
+#: config/romp/romp.c:717 config/rs6000/rs6000.c:7755
#, c-format
msgid "invalid %%S value"
msgstr "%%S değeri geçersiz"
-#: config/romp/romp.c:718 config/romp/romp.c:725
+#: config/romp/romp.c:726 config/romp/romp.c:733
#, c-format
msgid "invalid %%b value"
msgstr "%%b değeri geçersiz"
-#: config/romp/romp.c:765 config/romp/romp.c:776
+#: config/romp/romp.c:773 config/romp/romp.c:784
#, c-format
msgid "invalid %%z value"
msgstr "%%z değeri geçersiz"
-#: config/romp/romp.c:784 config/romp/romp.c:792
+#: config/romp/romp.c:792 config/romp/romp.c:800
#, c-format
msgid "invalid %%Z value"
msgstr "%%Z değeri geçersiz"
-#: config/romp/romp.c:799 config/romp/romp.c:808 config/romp/romp.c:815 config/rs6000/rs6000.c:6325
+#: config/romp/romp.c:807 config/romp/romp.c:816 config/romp/romp.c:823
+#: config/rs6000/rs6000.c:7584
#, c-format
msgid "invalid %%k value"
msgstr "%%k değeri geçersiz"
-#: config/romp/romp.c:900 config/romp/romp.c:943
+#: config/romp/romp.c:908 config/romp/romp.c:951
#, c-format
msgid "invalid %%j value"
msgstr "%%j değeri geçersiz"
@@ -12151,143 +12617,202 @@ msgstr "%%j değeri geçersiz"
#.
#. Normally, this macro will push all remaining incoming registers on the
#. stack and set PRETEND_SIZE to the length of the registers pushed.
-#: config/romp/romp.h:661
+#: config/romp/romp.h:648
msgid "can't have varargs with -mfp-arg-in-fp-regs"
msgstr "-mfp-arg-in-fp-regs ile varargs olamaz"
-#: config/rs6000/rs6000.c:475
+#. Handle the machine specific pragma longcall. Its syntax is
+#.
+#. # pragma longcall ( TOGGLE )
+#.
+#. where TOGGLE is either 0 or 1.
+#.
+#. rs6000_default_long_calls is set to the value of TOGGLE, changing
+#. whether or not new function declarations receive a longcall
+#. attribute by default.
+#: config/rs6000/rs6000-c.c:44
+msgid "ignoring malformed #pragma longcall"
+msgstr "bozuk #pragma longcall yoksayılıyor"
+
+#: config/rs6000/rs6000-c.c:58
+msgid "missing open paren"
+msgstr "açparantez eksik"
+
+#: config/rs6000/rs6000-c.c:60
+msgid "missing number"
+msgstr "sayı eksik"
+
+#: config/rs6000/rs6000-c.c:62
+msgid "missing close paren"
+msgstr "kapaparantez eksik"
+
+#: config/rs6000/rs6000-c.c:65
+msgid "number must be 0 or 1"
+msgstr "sayı 0 ya da 1 olmalı"
+
+#: config/rs6000/rs6000-c.c:68
+msgid "junk at end of #pragma longcall"
+msgstr "'#pragma longcall' sonunda karışıklık"
+
+#: config/rs6000/rs6000.c:592
msgid "-mmultiple is not supported on little endian systems"
msgstr "-mmultiple küçük ilkli bayt sıralaması kullanılan sistemlerde desteklenmez"
-#: config/rs6000/rs6000.c:482
+#: config/rs6000/rs6000.c:599
msgid "-mstring is not supported on little endian systems"
msgstr "-mstring küçük ilkli bayt sıralaması kullanılan sistemlerde desteklenmez"
-#: config/rs6000/rs6000.c:488 config/xtensa/xtensa.c:1846
-#, c-format
-msgid "-f%s ignored (all code is position independent)"
-msgstr "-f%s yoksayıldı (tüm kod konum bağımsız)"
-
-#: config/rs6000/rs6000.c:497
-msgid "-ffunction-sections disabled on AIX when debugging"
-msgstr "Hata ayıklama sırasında AIX'de -ffunction-sections etkisizdir"
-
-#: config/rs6000/rs6000.c:503
-msgid "-fdata-sections not supported on AIX"
-msgstr "-fdata-sections AIX'de desteklenmiyor"
-
-#: config/rs6000/rs6000.c:518
+#: config/rs6000/rs6000.c:623
#, c-format
msgid "unknown -mdebug-%s switch"
msgstr "-mdebug-%s seçeneği bilinmiyor"
-#: config/rs6000/rs6000.c:528
+#: config/rs6000/rs6000.c:635
+#, c-format
+msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+msgstr "-mtraceback ile verilen `%s' bilinmiyor; `full', `partial' ya da `none' olabilir"
+
+#: config/rs6000/rs6000.c:646
#, c-format
msgid "Unknown switch -mlong-double-%s"
msgstr "-mlong-double-%s seçeneği bilinmiyor"
-#: config/rs6000/rs6000.c:595
+#: config/rs6000/rs6000.c:738
+#, c-format
+msgid "unknown -misel= option specified: '%s'"
+msgstr "bilinmeyen -misel= seçeneği belirtilmiş: '%s'"
+
+#: config/rs6000/rs6000.c:753
+#, c-format
+msgid "unknown -mvrsave= option specified: '%s'"
+msgstr "bilinmeyen -mvrsave= seçeneği belirtilmiş: '%s'"
+
+#: config/rs6000/rs6000.c:772
#, c-format
msgid "unknown ABI specified: '%s'"
msgstr "bilinmeyen ABI belirtilmiÅŸ: '%s'"
-#: config/rs6000/rs6000.c:3631
+#: config/rs6000/rs6000.c:4206
+msgid "argument 1 must be a 5-bit signed literal"
+msgstr "1. argüman 5 bitlik bir işaretli sabit olmalı"
+
+#: config/rs6000/rs6000.c:4313 config/rs6000/rs6000.c:4903
+msgid "argument 2 must be a 5-bit unsigned literal"
+msgstr "2. argüman 5 bitlik bir işaretsiz sabit olmalı"
+
+#: config/rs6000/rs6000.c:4356
msgid "argument 1 of __builtin_altivec_predicate must be a constant"
msgstr "`__builtin_altivec_predicate'in 1. argümanı bir sabit olmalı"
-#: config/rs6000/rs6000.c:3685
+#: config/rs6000/rs6000.c:4410
msgid "argument 1 of __builtin_altivec_predicate is out of range"
msgstr "`__builtin_altivec_predicate'in 1. argümanı kapsamdışı"
-#: config/rs6000/rs6000.c:4041
+#: config/rs6000/rs6000.c:4489
+msgid "argument 3 must be a 4-bit unsigned literal"
+msgstr "3. argüman 4 bitlik bir işaretsiz sabit olmalı"
+
+#: config/rs6000/rs6000.c:4666
#, c-format
-msgid "argument 3 of `%s' must be a 2-bit literal"
-msgstr "`%s' için 3. argüman 2 bitlik bir değer olmalı"
+msgid "argument to `%s' must be a 2-bit unsigned literal"
+msgstr "`%s' argümanı 2 bitlik işaretsiz bir sabit olmalı"
-#: config/rs6000/rs6000.c:6252
+#: config/rs6000/rs6000.c:4782
+msgid "argument to dss must be a 2-bit unsigned literal"
+msgstr "dss argümanı 2 bitlik işaretsiz bir sabit olmalı"
+
+#: config/rs6000/rs6000.c:5013
+msgid "argument 1 of __builtin_spe_predicate must be a constant"
+msgstr "__builtin_spe_predicate'in 1. argümanı bir sabit olmalı"
+
+#: config/rs6000/rs6000.c:5086
+msgid "argument 1 of __builtin_spe_predicate is out of range"
+msgstr "__builtin_spe_predicate'in 1. argümanı kapsamdışı"
+
+#: config/rs6000/rs6000.c:7511
#, c-format
msgid "invalid %%f value"
msgstr "%%f değeri geçersiz"
-#: config/rs6000/rs6000.c:6261
+#: config/rs6000/rs6000.c:7520
#, c-format
msgid "invalid %%F value"
msgstr "%%F değeri geçersiz"
-#: config/rs6000/rs6000.c:6270
+#: config/rs6000/rs6000.c:7529
#, c-format
msgid "invalid %%G value"
msgstr "%%G değeri geçersiz"
-#: config/rs6000/rs6000.c:6305
+#: config/rs6000/rs6000.c:7564
#, c-format
msgid "invalid %%j code"
msgstr "%%j kodu geçersiz"
-#: config/rs6000/rs6000.c:6315
+#: config/rs6000/rs6000.c:7574
#, c-format
msgid "invalid %%J code"
msgstr "%%J kodu geçersiz"
-#: config/rs6000/rs6000.c:6345
+#: config/rs6000/rs6000.c:7604
#, c-format
msgid "invalid %%K value"
msgstr "%%K değeri geçersiz"
-#: config/rs6000/rs6000.c:6572
-#, c-format
-msgid "%%S computed all 1's mask"
-msgstr "%%S tamamı birlerin maskı olarak hesaplandı"
-
-#: config/rs6000/rs6000.c:6599
+#: config/rs6000/rs6000.c:7671
#, c-format
-msgid "%%S computed all 0's mask"
-msgstr "%%S tamamı sıfırların maskı olarak hesaplandı"
+msgid "invalid %%O value"
+msgstr "%%O değeri geçersiz"
-#: config/rs6000/rs6000.c:6609
+#: config/rs6000/rs6000.c:7793
#, c-format
msgid "invalid %%T value"
msgstr "%%T değeri geçersiz"
-#: config/rs6000/rs6000.c:6619
+#: config/rs6000/rs6000.c:7803
#, c-format
msgid "invalid %%u value"
msgstr "%%u değeri geçersiz"
-#: config/rs6000/rs6000.c:6628
+#: config/rs6000/rs6000.c:7812
#, c-format
msgid "invalid %%v value"
msgstr "%%v değeri geçersiz"
-#: config/rs6000/aix.h:137 config/rs6000/beos.h:32
+#: config/rs6000/rs6000.c:12242
+msgid "no profiling of 64-bit code for this ABI"
+msgstr "bu ABI için 64 bitlik profilleme kodu yok"
+
+#: config/rs6000/aix.h:160 config/rs6000/beos.h:32
msgid "Always pass floating-point arguments in memory"
msgstr "Bellekteki kayan noktalı argümanlar daima aktarılır"
-#: config/rs6000/aix.h:139 config/rs6000/beos.h:34
+#: config/rs6000/aix.h:162 config/rs6000/beos.h:34
msgid "Don't always pass floating-point arguments in memory"
msgstr "Bellekteki kayan noktalı argümanlar daima aktarılmaz"
#: config/rs6000/aix41.h:28 config/rs6000/aix43.h:32 config/rs6000/aix51.h:32
+#: config/rs6000/aix52.h:32
msgid "Support message passing with the Parallel Environment"
msgstr "Eşzamanlı Ortam ile ileti aktarımı desteklenir"
-#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28
+#: config/rs6000/aix43.h:28 config/rs6000/aix51.h:28 config/rs6000/aix52.h:28
msgid "Compile for 64-bit pointers"
-msgstr "64 bit göstergeler için derleme yapılır"
+msgstr "64 bit göstericiler için derleme yapılır"
-#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30
+#: config/rs6000/aix43.h:30 config/rs6000/aix51.h:30 config/rs6000/aix52.h:30
msgid "Compile for 32-bit pointers"
-msgstr "32 bit göstergeler için derleme yapılır"
+msgstr "32 bit göstericiler için derleme yapılır"
-#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49
+#: config/rs6000/aix43.h:49 config/rs6000/aix51.h:49 config/rs6000/aix52.h:49
msgid "-maix64 and POWER architecture are incompatible"
msgstr "-maix64 ile POWER mimarisi uyumsuz"
-#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54
+#: config/rs6000/aix43.h:54 config/rs6000/aix51.h:54 config/rs6000/aix52.h:54
msgid "-maix64 requires PowerPC64 architecture remain enabled"
msgstr "-maix64 seçeneği PowerPC64 mimarisinin etkin kalmasını gerektirir"
-#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58
+#: config/rs6000/aix43.h:58 config/rs6000/aix51.h:58 config/rs6000/aix52.h:58
msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
msgstr "-maix64 gereksinimi: 32 bit adreslemeli 64 bit hesaplama henüz desteklenmiyor."
@@ -12298,146 +12823,162 @@ msgstr "-maix64 gereksinimi: 32 bit adreslemeli 64 bit hesaplama henüz destekle
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/rs6000/rs6000.h:277
+#: config/rs6000/rs6000.h:240
msgid "Use POWER instruction set"
msgstr "POWER komut kümesi kullanılır"
-#: config/rs6000/rs6000.h:280
+#: config/rs6000/rs6000.h:243
msgid "Use POWER2 instruction set"
msgstr "POWER2 komut kümesi kullanılır"
-#: config/rs6000/rs6000.h:282
+#: config/rs6000/rs6000.h:245
msgid "Do not use POWER2 instruction set"
msgstr "POWER2 komut kümesi kullanılmaz"
-#: config/rs6000/rs6000.h:285
+#: config/rs6000/rs6000.h:248
msgid "Do not use POWER instruction set"
msgstr "POWER komut kümesi kullanılmaz"
-#: config/rs6000/rs6000.h:287
+#: config/rs6000/rs6000.h:250
msgid "Use PowerPC instruction set"
msgstr "PowerPC komut kümesi kullanılır"
-#: config/rs6000/rs6000.h:290
+#: config/rs6000/rs6000.h:253
msgid "Do not use PowerPC instruction set"
msgstr "PowerPC komut kümesi kullanılmaz"
-#: config/rs6000/rs6000.h:292
+#: config/rs6000/rs6000.h:255
msgid "Use PowerPC General Purpose group optional instructions"
msgstr "PowerPC Genel Kullanım grubu seçimlik komutları kullanılır"
-#: config/rs6000/rs6000.h:294
+#: config/rs6000/rs6000.h:257
msgid "Don't use PowerPC General Purpose group optional instructions"
msgstr "PowerPC Genel Kullanım grubu seçimlik komutları kullanılmaz"
-#: config/rs6000/rs6000.h:296
+#: config/rs6000/rs6000.h:259
msgid "Use PowerPC Graphics group optional instructions"
msgstr "PowerPC Graphics grubu seçimlik komutları kullanılır"
-#: config/rs6000/rs6000.h:298
+#: config/rs6000/rs6000.h:261
msgid "Don't use PowerPC Graphics group optional instructions"
msgstr "PowerPC Graphics grubu seçimlik komutları kullanılmaz"
-#: config/rs6000/rs6000.h:300
+#: config/rs6000/rs6000.h:263
msgid "Use PowerPC-64 instruction set"
msgstr "PowerPC-64 komut kümesi kullanılır"
-#: config/rs6000/rs6000.h:302
+#: config/rs6000/rs6000.h:265
msgid "Don't use PowerPC-64 instruction set"
msgstr "PowerPC-64 komut kümesi kullanılmaz"
-#: config/rs6000/rs6000.h:304
+#: config/rs6000/rs6000.h:267
msgid "Use AltiVec instructions"
msgstr "AltiVec komutları kullanılır"
-#: config/rs6000/rs6000.h:306
+#: config/rs6000/rs6000.h:269
msgid "Don't use AltiVec instructions"
msgstr "AltiVec komutları kullanılmaz"
-#: config/rs6000/rs6000.h:308
+#: config/rs6000/rs6000.h:271
msgid "Use new mnemonics for PowerPC architecture"
msgstr "PowerPC mimarisi için yeni semboller kullanılır"
-#: config/rs6000/rs6000.h:310
+#: config/rs6000/rs6000.h:273
msgid "Use old mnemonics for PowerPC architecture"
msgstr "PowerPC mimarisi için eski semboller kullanılır"
-#: config/rs6000/rs6000.h:313
+#: config/rs6000/rs6000.h:276
msgid "Put everything in the regular TOC"
msgstr "HerÅŸeyi normal TOC'a koyar"
-#: config/rs6000/rs6000.h:315
+#: config/rs6000/rs6000.h:278
msgid "Place floating point constants in TOC"
msgstr "Kayan noktalı sabitleri TOC'a koyar"
-#: config/rs6000/rs6000.h:317
+#: config/rs6000/rs6000.h:280
msgid "Don't place floating point constants in TOC"
msgstr "Kayan noktalı sabitleri TOC'a koymaz"
-#: config/rs6000/rs6000.h:319
+#: config/rs6000/rs6000.h:282
msgid "Place symbol+offset constants in TOC"
msgstr "Sembol+göreli sabitleri TOC'a koyar"
-#: config/rs6000/rs6000.h:321
+#: config/rs6000/rs6000.h:284
msgid "Don't place symbol+offset constants in TOC"
msgstr "Sembol+göreli sabitleri TOC'a koymaz"
-#: config/rs6000/rs6000.h:327
+#: config/rs6000/rs6000.h:290
msgid "Place variable addresses in the regular TOC"
msgstr "DeÄŸiÅŸken adresleri normal TOC'a koyar"
-#: config/rs6000/rs6000.h:333
+#: config/rs6000/rs6000.h:296
msgid "Generate load/store multiple instructions"
msgstr "Yükleme/saklama çoklu komutları üretilir"
-#: config/rs6000/rs6000.h:335
+#: config/rs6000/rs6000.h:298
msgid "Do not generate load/store multiple instructions"
msgstr "Yükleme/saklama çoklu komutları üretilmez"
-#: config/rs6000/rs6000.h:339
+#: config/rs6000/rs6000.h:302
msgid "Generate string instructions for block moves"
msgstr "Blok taşımalar için dizge komutları üretilir"
-#: config/rs6000/rs6000.h:341
+#: config/rs6000/rs6000.h:304
msgid "Do not generate string instructions for block moves"
msgstr "Blok taşımalar için dizge komutları üretilmez"
-#: config/rs6000/rs6000.h:345
+#: config/rs6000/rs6000.h:308
msgid "Generate load/store with update instructions"
msgstr "Güncelleme komutlu yükleme/saklama üretilir"
-#: config/rs6000/rs6000.h:347
+#: config/rs6000/rs6000.h:310
msgid "Do not generate load/store with update instructions"
msgstr "Güncelleme komutlu yükleme/saklama üretilmez"
-#: config/rs6000/rs6000.h:355
+#: config/rs6000/rs6000.h:318
msgid "Don't schedule the start and end of the procedure"
msgstr "Altyordamın başlangıç ve bitişi zamanlanmaz"
-#: config/rs6000/rs6000.h:361
+#: config/rs6000/rs6000.h:324
msgid "Return all structures in memory (AIX default)"
msgstr "Bellekteki tüm veri yapıları döndürülür (AIX öntanımlı)"
-#: config/rs6000/rs6000.h:363
+#: config/rs6000/rs6000.h:326
msgid "Return small structures in registers (SVR4 default)"
msgstr "Yazmaçlardaki küçük veri yapıları döndürülür(SVR4 öntanımlı)"
-#: config/rs6000/rs6000.h:426 config/sparc/sparc.h:639
+#: config/rs6000/rs6000.h:391 config/sparc/sparc.h:633
msgid "Use features of and schedule code for given CPU"
msgstr "Verilen MİB'nin özellikleri ve zamanlama kodu kullanılır"
-#: config/rs6000/rs6000.h:429
+#: config/rs6000/rs6000.h:394
msgid "Enable debug output"
msgstr "Hata ayıklamalı çıktıyı etkinleştir"
-#: config/rs6000/rs6000.h:430
+#: config/rs6000/rs6000.h:396
+msgid "Select full, part, or no traceback table"
+msgstr "Ya full, part seçilir ya da hiçbir traceback tablosu seçilmez"
+
+#: config/rs6000/rs6000.h:397
msgid "Specify ABI to use"
msgstr "Kullanılacak ABI belirtilir"
-#: config/rs6000/rs6000.h:432
+#: config/rs6000/rs6000.h:399
msgid "Specify size of long double (64 or 128 bits)"
msgstr "long double için boyut belirtilir (64 ya da 128 bit)"
+#: config/rs6000/rs6000.h:401
+msgid "Specify yes/no if isel instructions should be generated"
+msgstr "isel komutlarının üretilmesi gerekiyorsa yes/no belirtilir"
+
+#: config/rs6000/rs6000.h:403
+msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+msgstr "VRSAVE komutlarının AltiVec için üretilmesi gerekiyorsa yes/no belirtilir"
+
+#: config/rs6000/rs6000.h:405
+msgid "Avoid all range limits on call instructions"
+msgstr "Çağrı komutlarında tüm kapsam sınırları engellenir"
+
#. Definitions for __builtin_return_address and __builtin_frame_address.
#. __builtin_return_address (0) should give link register (65), enable
#. this.
@@ -12450,94 +12991,103 @@ msgstr "long double için boyut belirtilir (64 ya da 128 bit)"
#. Number of bytes into the frame return addresses can be found. See
#. rs6000_stack_info in rs6000.c for more information on how the different
#. abi's store the return address.
-#: config/rs6000/rs6000.h:1792
+#: config/rs6000/rs6000.h:1884
msgid "RETURN_ADDRESS_OFFSET not supported"
msgstr "RETURN_ADDRESS_OFFSET desteklenmiyor"
-#: config/rs6000/sysv4.h:88
+#: config/rs6000/sysv4.h:87
msgid "Select ABI calling convention"
msgstr "ABI çağrı uzlaşımı seçilir"
-#: config/rs6000/sysv4.h:89
+#: config/rs6000/sysv4.h:88
msgid "Select method for sdata handling"
msgstr "sdata eldesi için yöntem seçilir"
-#: config/rs6000/sysv4.h:104
+#: config/rs6000/sysv4.h:103
msgid "Align to the base type of the bit-field"
msgstr "Bit alanı taban türüne hizalama yapılır"
-#: config/rs6000/sysv4.h:106
+#: config/rs6000/sysv4.h:105
msgid "Don't align to the base type of the bit-field"
msgstr "Bit alanı taban türüne hizalama yapılmaz"
-#: config/rs6000/sysv4.h:108
+#: config/rs6000/sysv4.h:107
msgid "Don't assume that unaligned accesses are handled by the system"
msgstr "Hizasız erişimlerin sistem tarafından yapıldığı varsayılmaz"
-#: config/rs6000/sysv4.h:110
+#: config/rs6000/sysv4.h:109
msgid "Assume that unaligned accesses are handled by the system"
msgstr "Hizasız erişimlerin sistem tarafından yapıldığı varsayılır"
-#: config/rs6000/sysv4.h:112 config/rs6000/sysv4.h:116
+#: config/rs6000/sysv4.h:111 config/rs6000/sysv4.h:115
msgid "Produce code relocatable at runtime"
msgstr "Çalışma anında kod yer değiştirilebilirliği sağlanır"
-#: config/rs6000/sysv4.h:114 config/rs6000/sysv4.h:118
+#: config/rs6000/sysv4.h:113 config/rs6000/sysv4.h:117
msgid "Don't produce code relocatable at runtime"
msgstr "Çalışma anında kod yer değiştirilebilirliği sağlanmaz"
-#: config/rs6000/sysv4.h:120 config/rs6000/sysv4.h:122
+#: config/rs6000/sysv4.h:119 config/rs6000/sysv4.h:121
msgid "Produce little endian code"
msgstr "Küçüğü başta kod üretilir"
-#: config/rs6000/sysv4.h:124 config/rs6000/sysv4.h:126
+#: config/rs6000/sysv4.h:123 config/rs6000/sysv4.h:125
msgid "Produce big endian code"
msgstr "Büyüğü başta kod üretilir"
-#: config/rs6000/sysv4.h:127 config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129 config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131 config/rs6000/sysv4.h:132 config/rs6000/sysv4.h:142 config/rs6000/sysv4.h:143 config/rs6000/sysv4.h:154 config/rs6000/sysv4.h:155 config/rs6000/sysv4.h:157
+#: config/rs6000/sysv4.h:126 config/rs6000/sysv4.h:127
+#: config/rs6000/sysv4.h:128 config/rs6000/sysv4.h:129
+#: config/rs6000/sysv4.h:130 config/rs6000/sysv4.h:131
+#: config/rs6000/sysv4.h:141 config/rs6000/sysv4.h:142
+#: config/rs6000/sysv4.h:153 config/rs6000/sysv4.h:155
+#: config/rs6000/sysv4.h:157
msgid "no description yet"
msgstr "henüz bir açıklama yok"
-#: config/rs6000/sysv4.h:133
+#: config/rs6000/sysv4.h:132
msgid "Use EABI"
msgstr "EABI kullanılır"
-#: config/rs6000/sysv4.h:134
+#: config/rs6000/sysv4.h:133
msgid "Don't use EABI"
msgstr "EABI kullanılmaz"
-#: config/rs6000/sysv4.h:137
+#: config/rs6000/sysv4.h:136
msgid "Do not allow bit-fields to cross word boundaries"
msgstr "word sınırlarına karşı düşen bit alanlarına izin verilmez"
-#: config/rs6000/sysv4.h:139
+#: config/rs6000/sysv4.h:138
msgid "Use alternate register names"
msgstr "Alternatif yazmaç isimleri kullanılır"
-#: config/rs6000/sysv4.h:141
+#: config/rs6000/sysv4.h:140
msgid "Don't use alternate register names"
msgstr "Alternatif yazmaç isimleri kullanılmaz"
-#: config/rs6000/sysv4.h:145
+#: config/rs6000/sysv4.h:144
msgid "Link with libsim.a, libc.a and sim-crt0.o"
msgstr "libsim.a, libc.a ve sim-crt0.o ile ilintiler"
-#: config/rs6000/sysv4.h:147
+#: config/rs6000/sysv4.h:146
msgid "Link with libads.a, libc.a and crt0.o"
msgstr "libads.a, libc.a ve crt0.o ile ilintiler"
-#: config/rs6000/sysv4.h:149
+#: config/rs6000/sysv4.h:148
msgid "Link with libyk.a, libc.a and crt0.o"
msgstr "libyk.a, libc.a ve crt0.o ile ilintiler"
-#: config/rs6000/sysv4.h:151
+#: config/rs6000/sysv4.h:150
msgid "Link with libmvme.a, libc.a and crt0.o"
msgstr "libmvme.a, libc.a ve crt0.o ile ilintiler"
-#: config/rs6000/sysv4.h:153
+#: config/rs6000/sysv4.h:152
msgid "Set the PPC_EMB bit in the ELF flags header"
msgstr "ELF seçenekleri başlığı içindeki PPC_EMB bitini 1 yapar"
+#: config/rs6000/sysv4.h:154
+msgid "Use the WindISS simulator"
+msgstr "WindISS benzeticisi kullanılır"
+
#. Sometimes certain combinations of command options do not make sense
#. on a particular target machine. You can define a macro
#. `OVERRIDE_OPTIONS' to take account of this. This macro, if
@@ -12566,183 +13116,193 @@ msgstr "-mrelocatable ile -msdata=%s uyumsuz."
msgid "-f%s and -msdata=%s are incompatible"
msgstr "-f%s ile -msdata=%s uyumsuz."
-#: config/rs6000/sysv4.h:263
+#: config/rs6000/sysv4.h:264
#, c-format
msgid "-msdata=%s and -mcall-%s are incompatible"
msgstr "-msdata=%s ile -mcall-%s uyumsuz."
-#: config/rs6000/sysv4.h:270
+#: config/rs6000/sysv4.h:273
msgid "-mrelocatable and -mno-minimal-toc are incompatible"
msgstr "-mrelocatable ile -mno-minimal-toc uyumsuz."
-#: config/rs6000/sysv4.h:276
+#: config/rs6000/sysv4.h:279
#, c-format
msgid "-mrelocatable and -mcall-%s are incompatible"
msgstr "-mrelocatable ile -mcall-%s uyumsuz."
-#: config/rs6000/sysv4.h:283
+#: config/rs6000/sysv4.h:286
#, c-format
msgid "-fPIC and -mcall-%s are incompatible"
msgstr "-fPIC ile -mcall-%s uyumsuz."
-#: config/rs6000/sysv4.h:290
+#: config/rs6000/sysv4.h:293
msgid "-mcall-aixdesc must be big endian"
msgstr "-mcall-aixdesc «big endian» olmalı"
-#: config/s390/s390.c:1910
+#: config/s390/s390.c:3063
msgid "invalid UNSPEC as operand (1)"
msgstr "terim (1) olarak UNSPEC geçersiz"
-#: config/s390/s390.c:1940
+#: config/s390/s390.c:3123
msgid "invalid UNSPEC as operand (2)"
msgstr "terim (2) olarak UNSPEC geçersiz"
-#: config/s390/s390.c:1946
+#: config/s390/s390.c:3129
msgid "UNKNOWN in s390_output_symbolic_const !?"
msgstr "s390_output_symbolic_const da BÄ°LÄ°NMEYEN!?"
-#: config/s390/s390.c:1962
+#: config/s390/s390.c:3147
msgid "Cannot decompose address."
msgstr "Adres çözümlenemez"
-#: config/s390/s390.c:2110
+#: config/s390/s390.c:3308
msgid "UNKNOWN in print_operand !?"
msgstr "print_operand da BÄ°LÄ°NMEYEN !?"
-#: config/s390/s390.c:2703
+#: config/s390/s390.c:4961
msgid "Total size of local variables exceeds architecture limit."
msgstr "Yerel değişkenlerin toplam boyutu mimarinin izin verdiği sınırı aşıyor."
-#: config/s390/s390.h:58
+#: config/s390/s390.h:70
msgid "Set backchain"
msgstr "Backchain ayarlanır"
-#: config/s390/s390.h:59
+#: config/s390/s390.h:71
msgid "Don't set backchain (faster, but debug harder"
msgstr "Backchain ayarlanmaz (daha hızlı ama hata ayıklamak daha zor"
-#: config/s390/s390.h:60
-msgid "Use bras for execucable < 64k"
+#: config/s390/s390.h:72
+msgid "Use bras for executable < 64k"
msgstr "64k dan küçük çalıştırılabilirler için bras kullanılır"
-#: config/s390/s390.h:61
+#: config/s390/s390.h:73
msgid "Don't use bras"
msgstr "bras kullanılmaz"
-#: config/s390/s390.h:62
+#: config/s390/s390.h:74
msgid "Additional debug prints"
msgstr "Ek hata ayıklama iletileri çıktılar"
-#: config/s390/s390.h:63
+#: config/s390/s390.h:75
msgid "Don't print additional debug prints"
msgstr "Ek hata ayıklama bilgisi verilmez"
-#: config/s390/s390.h:64
+#: config/s390/s390.h:76
msgid "64 bit mode"
msgstr "64 bitlik kip"
-#: config/s390/s390.h:65
+#: config/s390/s390.h:77
msgid "31 bit mode"
msgstr "31 bitlik kip"
-#: config/s390/s390.h:66
+#: config/s390/s390.h:78
msgid "mvcle use"
msgstr "mvcle kullanımı"
-#: config/s390/s390.h:67
+#: config/s390/s390.h:79
msgid "mvc&ex"
msgstr "mvc&ex"
-#: config/sh/sh.c:5060
+#: config/sh/sh.c:5137
msgid "__builtin_saveregs not supported by this subtarget"
msgstr "__builtin_saveregs bu alt hedef tarafından desteklenmiyor"
+#: config/sh/sh.c:5687
+msgid "attribute interrupt_handler is not compatible with -m5-compact"
+msgstr "özellik kesme yakalayıcı -m5-compact ile uyumlu değil"
+
#. The sp_switch attribute only has meaning for interrupt functions.
-#: config/sh/sh.c:5610 config/sh/sh.c:5649
+#: config/sh/sh.c:5713 config/sh/sh.c:5752
#, c-format
msgid "`%s' attribute only applies to interrupt functions"
msgstr "`%s' özniteliği sadece sistem kesmesi işlevlerine uygulanır"
#. The argument must be a constant string.
-#: config/sh/sh.c:5617
+#: config/sh/sh.c:5720
#, c-format
msgid "`%s' attribute argument not a string constant"
msgstr "`%s' öznitelik argümanı bir dizge sabit değil"
#. The argument must be a constant integer.
-#: config/sh/sh.c:5656
+#: config/sh/sh.c:5759
#, c-format
msgid "`%s' attribute argument not an integer constant"
msgstr "`%s' öznitelik argümanı bir tamsayı sabit değil"
#. There are no delay slots on SHmedia.
#. Relaxation isn't yet supported for SHmedia
-#: config/sh/sh.h:367
+#: config/sh/sh.h:437
msgid "Profiling is not supported on this target."
msgstr "Ayrımsama bu hedefte desteklenmiyor."
-#: config/sparc/sparc.c:317
+#: config/sparc/sparc.c:329
#, c-format
msgid "%s is not supported by this configuration"
msgstr "%s bu yapılandırma ile desteklenmiyor"
-#: config/sparc/sparc.c:324
+#: config/sparc/sparc.c:336
msgid "-mlong-double-64 not allowed with -m64"
msgstr "-mlong-double-64 ile -m64 birarada izin verilmez"
-#: config/sparc/sparc.c:349
+#: config/sparc/sparc.c:361
msgid "-mcmodel= is not supported on 32 bit systems"
msgstr "`-mcmodel=' 32bit sistemlerde desteklenmiyor"
-#: config/sparc/sparc.c:5971 config/sparc/sparc.c:5977
+#: config/sparc/sparc.c:6341 config/sparc/sparc.c:6347
#, c-format
msgid "invalid %%Y operand"
msgstr "geçersiz %%Y terimi"
-#: config/sparc/sparc.c:6047
+#: config/sparc/sparc.c:6417
#, c-format
msgid "invalid %%A operand"
msgstr "geçersiz %%A terimi"
-#: config/sparc/sparc.c:6057
+#: config/sparc/sparc.c:6427
#, c-format
msgid "invalid %%B operand"
msgstr "geçersiz %%B terimi"
-#: config/sparc/sparc.c:6096
+#: config/sparc/sparc.c:6466
#, c-format
msgid "invalid %%c operand"
msgstr "geçersiz %%c terimi"
-#: config/sparc/sparc.c:6097
+#: config/sparc/sparc.c:6467
#, c-format
msgid "invalid %%C operand"
msgstr "geçersiz %%C terimi"
-#: config/sparc/sparc.c:6118
+#: config/sparc/sparc.c:6488
#, c-format
msgid "invalid %%d operand"
msgstr "geçersiz %%d terimi"
-#: config/sparc/sparc.c:6119
+#: config/sparc/sparc.c:6489
#, c-format
msgid "invalid %%D operand"
msgstr "geçersiz %%D terimi"
-#: config/sparc/sparc.c:6135
+#: config/sparc/sparc.c:6505
#, c-format
msgid "invalid %%f operand"
msgstr "geçersiz %%f terimi"
-#: config/sparc/sparc.c:6185
+#: config/sparc/sparc.c:6519
+#, c-format
+msgid "invalid %%s operand"
+msgstr "geçersiz %%s terimi"
+
+#: config/sparc/sparc.c:6573
msgid "long long constant not a valid immediate operand"
msgstr "long long sabit geçerli bir anlık terim değil"
-#: config/sparc/sparc.c:6188
+#: config/sparc/sparc.c:6576
msgid "floating point constant not a valid immediate operand"
msgstr "gerçel sayı sabit geçerli bir dolaysız veri öğesi değil"
-#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:144 config/sparc/netbsd-elf.h:239
+#: config/sparc/freebsd.h:81 config/sparc/linux.h:87 config/sparc/linux64.h:89
+#: config/sparc/netbsd-elf.h:239
msgid "Use 128 bit long doubles"
msgstr "128 bit long double'lar kullanılır"
@@ -12754,335 +13314,381 @@ msgstr "Büyük ilkli kod üretilir"
msgid "Generate code for little endian"
msgstr "Küçük ilkli kod üretilir"
-#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:67
+#: config/sparc/sp86x-aout.h:51 config/sparc/sp86x-elf.h:65
msgid "Use little-endian byte order for data"
msgstr "Veri için bayt sıralaması küçük ilkli yapılır"
-#: config/sparc/sparc.h:539
+#: config/sparc/sparc.h:532
msgid "Assume possible double misalignment"
msgstr "double'ların hizalanmamış oldukları varsayılır"
-#: config/sparc/sparc.h:541
+#: config/sparc/sparc.h:534
msgid "Assume all doubles are aligned"
msgstr "Tüm double'lar hizalı kabul edilir"
-#: config/sparc/sparc.h:543
+#: config/sparc/sparc.h:536
msgid "Pass -assert pure-text to linker"
msgstr "Birleştiriciye -assert salt-metin gönderir"
-#: config/sparc/sparc.h:545
+#: config/sparc/sparc.h:538
msgid "Do not pass -assert pure-text to linker"
msgstr "Birleştiriciye -assert salt-metin göndermez"
-#: config/sparc/sparc.h:547
+#: config/sparc/sparc.h:540
msgid "Use flat register window model"
msgstr "Düz yazmaç pencere modeli kullanılır"
-#: config/sparc/sparc.h:549
+#: config/sparc/sparc.h:542
msgid "Do not use flat register window model"
msgstr "Düz yazmaç pencere modeli kullanılmaz"
-#: config/sparc/sparc.h:551
+#: config/sparc/sparc.h:544
msgid "Use ABI reserved registers"
msgstr "Ayrılmış ABI yazmaçları kullanılır"
-#: config/sparc/sparc.h:553
+#: config/sparc/sparc.h:546
msgid "Do not use ABI reserved registers"
msgstr "Ayrılmış ABI yazmaçları kullanılmaz"
-#: config/sparc/sparc.h:555
+#: config/sparc/sparc.h:548
msgid "Use hardware quad fp instructions"
msgstr "Donanım bazlı quad fp komutları kullanılır"
-#: config/sparc/sparc.h:557
+#: config/sparc/sparc.h:550
msgid "Do not use hardware quad fp instructions"
msgstr "Donanım bazlı quad fp komutları kullanılmaz"
-#: config/sparc/sparc.h:559
+#: config/sparc/sparc.h:552
msgid "Compile for v8plus ABI"
msgstr "v8plus ABI için derleme yapılır"
-#: config/sparc/sparc.h:561
+#: config/sparc/sparc.h:554
msgid "Do not compile for v8plus ABI"
msgstr "v8plus ABI için derleme yapılmaz"
-#: config/sparc/sparc.h:563
+#: config/sparc/sparc.h:556
msgid "Utilize Visual Instruction Set"
msgstr "Görsel Komut Kümesi kullanılır"
-#: config/sparc/sparc.h:565
+#: config/sparc/sparc.h:558
msgid "Do not utilize Visual Instruction Set"
msgstr "Görsel Komut Kümesi kullanılmaz"
#. ??? These are deprecated, coerced to -mcpu=. Delete in 2.9.
-#: config/sparc/sparc.h:568
+#: config/sparc/sparc.h:561
msgid "Optimize for Cypress processors"
msgstr "Cypress işlemciler için eniyileme yapılır"
-#: config/sparc/sparc.h:570
-msgid "Optimize for SparcLite processors"
-msgstr "SparcLite işlemciler için eniyileme yapılır"
+#: config/sparc/sparc.h:563
+msgid "Optimize for SPARCLite processors"
+msgstr "SPARCLite işlemciler için eniyileme yapılır"
-#: config/sparc/sparc.h:572
+#: config/sparc/sparc.h:565
msgid "Optimize for F930 processors"
msgstr "F930 işlemciler için eniyileme yapılır"
-#: config/sparc/sparc.h:574
+#: config/sparc/sparc.h:567
msgid "Optimize for F934 processors"
msgstr "F934 işlemciler için eniyileme yapılır"
-#: config/sparc/sparc.h:576
-msgid "Use V8 Sparc ISA"
-msgstr "V8 Sparc ISA kullanılır"
+#: config/sparc/sparc.h:569
+msgid "Use V8 SPARC ISA"
+msgstr "V8 SPARC ISA kullanılır"
-#: config/sparc/sparc.h:578
-msgid "Optimize for SuperSparc processors"
-msgstr "SuperSparc işlemciler için eniyileme yapılır"
+#: config/sparc/sparc.h:571
+msgid "Optimize for SuperSPARC processors"
+msgstr "SuperSPARC işlemciler için eniyileme yapılır"
#. End of deprecated options.
-#: config/sparc/sparc.h:581
+#: config/sparc/sparc.h:574
msgid "Pointers are 64-bit"
-msgstr "Göstergeler 64 bittir"
+msgstr "Göstericiler 64 bittir"
-#: config/sparc/sparc.h:583
+#: config/sparc/sparc.h:576
msgid "Pointers are 32-bit"
-msgstr "Göstergeler 32 bittir"
+msgstr "Göstericiler 32 bittir"
-#: config/sparc/sparc.h:585
+#: config/sparc/sparc.h:578
msgid "Use 32-bit ABI"
msgstr "32-bit ABI kullanılır"
-#: config/sparc/sparc.h:587
+#: config/sparc/sparc.h:580
msgid "Use 64-bit ABI"
msgstr "64-bit ABI kullanılır"
-#: config/sparc/sparc.h:589
+#: config/sparc/sparc.h:582
msgid "Use stack bias"
msgstr "Yığıt yanlaması kullanır"
-#: config/sparc/sparc.h:591
+#: config/sparc/sparc.h:584
msgid "Do not use stack bias"
msgstr "Yığıt yanlaması kullanmaz"
-#: config/sparc/sparc.h:593
+#: config/sparc/sparc.h:586
msgid "Use structs on stronger alignment for double-word copies"
msgstr "Çift-word kopyalamada kuvvetli hizalama için struct (yapı) kullanır"
-#: config/sparc/sparc.h:595
+#: config/sparc/sparc.h:588
msgid "Do not use structs on stronger alignment for double-word copies"
msgstr "Çift-word kopyalamada kuvvetli hizalama için struct (yapı) kullanmaz"
-#: config/sparc/sparc.h:597
+#: config/sparc/sparc.h:590
msgid "Optimize tail call instructions in assembler and linker"
msgstr "Çevirici ve bağlayıcıda kuyruk çağrı komutlarını eniyiler"
-#: config/sparc/sparc.h:599
+#: config/sparc/sparc.h:592
msgid "Do not optimize tail call instructions in assembler or linker"
msgstr ""
"Çevirici veya bağlayıcıda kuyruk çağrı komutlarını\n"
" eniyilemez"
-#: config/sparc/sparc.h:643
-msgid "Use given Sparc code model"
-msgstr "Belirtilen Sparc kod modeli kullanılır"
+#: config/sparc/sparc.h:637
+msgid "Use given SPARC code model"
+msgstr "Belirtilen SPARC kod modeli kullanılır"
-#: config/stormy16/stormy16.c:1179
+#: config/stormy16/stormy16.c:1192
msgid "cannot use va_start in interrupt function"
msgstr "kesme işlevinde va_start kullanılamaz"
-#: config/stormy16/stormy16.c:1536
+#: config/stormy16/stormy16.c:1552
msgid "`B' operand is not constant"
msgstr "`B' terimi sabit deÄŸil"
-#: config/stormy16/stormy16.c:1542
+#: config/stormy16/stormy16.c:1558
msgid "`B' operand has multiple bits set"
msgstr "`B' terimi çoklu bit kümeleri içeriyor"
-#: config/stormy16/stormy16.c:1569
+#: config/stormy16/stormy16.c:1585
msgid "`o' operand is not constant"
msgstr "`o' terimi sabit deÄŸil"
-#: config/stormy16/stormy16.c:1584
+#: config/stormy16/stormy16.c:1600
msgid "xstormy16_print_operand: unknown code"
msgstr "xstormy16_print_operand: kod bilinmiyor"
-#: config/stormy16/stormy16.c:1634
+#: config/stormy16/stormy16.c:1650
#, c-format
msgid "switch statement of size %lu entries too large"
msgstr "%lu luk switch deyimi girdileri çok büyük"
-#: config/v850/v850-c.c:68
+#: config/v850/v850-c.c:67
msgid "#pragma GHS endXXXX found without previous startXXX"
msgstr "#pragma GHS endXXXX öncesinde startXXX yok"
-#: config/v850/v850-c.c:70
+#: config/v850/v850-c.c:69
msgid "#pragma GHS endXXX does not match previous startXXX"
msgstr "#pragma GHS endXXX ile önceki startXXX eşleşmiyor"
-#: config/v850/v850-c.c:95
+#: config/v850/v850-c.c:94
msgid "cannot set interrupt attribute: no current function"
msgstr "sistem kesmesi özniteliği ayarlanamıyor: böyle bir işlev yok"
-#: config/v850/v850-c.c:103
+#: config/v850/v850-c.c:102
msgid "cannot set interrupt attribute: no such identifier"
msgstr "sistem kesmesi özniteliği ayarlanamıyor: böyle bir tanımlayıcı yok"
-#: config/v850/v850-c.c:149
+#: config/v850/v850-c.c:148
msgid "junk at end of #pragma ghs section"
msgstr "'#pragma ghs' bölümünden sonrası karışık"
-#: config/v850/v850-c.c:166
+#: config/v850/v850-c.c:165
#, c-format
msgid "unrecognized section name \"%s\""
msgstr "bölüm ismi \"%s\" bilinmiyor"
-#: config/v850/v850-c.c:181
+#: config/v850/v850-c.c:180
msgid "malformed #pragma ghs section"
msgstr "'#pragma ghs' bölümü bozuk"
-#: config/v850/v850-c.c:201
+#: config/v850/v850-c.c:200
msgid "junk at end of #pragma ghs interrupt"
msgstr "'#pragma ghs interrupt' sonrası karışık"
-#: config/v850/v850-c.c:213
+#: config/v850/v850-c.c:212
msgid "junk at end of #pragma ghs starttda"
msgstr "'#pragma ghs starttda' sonrası karışık"
-#: config/v850/v850-c.c:225
+#: config/v850/v850-c.c:224
msgid "junk at end of #pragma ghs startsda"
msgstr "'#pragma ghs startsda' sonrası karışık"
-#: config/v850/v850-c.c:237
+#: config/v850/v850-c.c:236
msgid "junk at end of #pragma ghs startzda"
msgstr "'#pragma ghs startzda' sonrası karışık"
-#: config/v850/v850-c.c:249
+#: config/v850/v850-c.c:248
msgid "junk at end of #pragma ghs endtda"
msgstr "'#pragma ghs endtda' sonrası karışık"
-#: config/v850/v850-c.c:261
+#: config/v850/v850-c.c:260
msgid "junk at end of #pragma ghs endsda"
msgstr "'#pragma ghs endsda' sonrası karışık"
-#: config/v850/v850-c.c:273
+#: config/v850/v850-c.c:272
msgid "junk at end of #pragma ghs endzda"
msgstr "'#pragma ghs endzda' sonrası karışık"
-#: config/v850/v850.c:122
+#: config/v850/v850.c:129
#, c-format
msgid "%s=%s is not numeric"
msgstr "%s=%s sayısal değerler değil."
-#: config/v850/v850.c:129
+#: config/v850/v850.c:136
#, c-format
msgid "%s=%s is too large"
msgstr "%s=%s çok büyük"
-#: config/v850/v850.c:285
+#: config/v850/v850.c:302
msgid "const_double_split got a bad insn:"
msgstr "const_double_split got bir hatalı komut:"
-#: config/v850/v850.c:777
+#: config/v850/v850.c:837
msgid "output_move_single:"
msgstr "output_move_single:"
-#: config/v850/v850.c:2084
+#: config/v850/v850.c:2217
msgid "a data area attribute cannot be specified for local variables"
msgstr "bir veri alanı özelliği yerel değişkenler için belirtilemez"
-#: config/v850/v850.c:2095
+#: config/v850/v850.c:2228
#, c-format
msgid "data area of '%s' conflicts with previous declaration"
msgstr "'%s' veri alanı önceki bildirimle çelişiyor"
-#: config/v850/v850.c:2298
+#: config/v850/v850.c:2447
#, c-format
msgid "bogus JR construction: %d\n"
msgstr "Taklit JR oluÅŸturma: %d\n"
-#: config/v850/v850.c:2319 config/v850/v850.c:2521
+#: config/v850/v850.c:2468 config/v850/v850.c:2670
#, c-format
msgid "bad amount of stack space removal: %d"
msgstr "Yığın alanı kaldırma miktarı hatalı: %d"
-#: config/v850/v850.c:2497
+#: config/v850/v850.c:2646
#, c-format
msgid "bogus JARL construction: %d\n"
msgstr "taklit JARL oluÅŸturma: %d\n"
+#: config/v850/v850.c:3026
+#, c-format
+msgid "Bogus DISPOSE construction: %d\n"
+msgstr "Taklit DISPOSE oluÅŸturma: %d\n"
+
+#: config/v850/v850.c:3048
+#, c-format
+msgid "Too much stack space to dispose of: %d"
+msgstr "DİSPOSE'sinin yığıt alanı çok fazla: %d"
+
+#: config/v850/v850.c:3224
+#, c-format
+msgid "Bogus PREPEARE construction: %d\n"
+msgstr "Taklit PREPEARE oluÅŸturma: %d\n"
+
+#: config/v850/v850.c:3246
+#, c-format
+msgid "Too much stack space to prepare: %d"
+msgstr "PREPARE için yığıt alanı çok fazla: %d"
+
#. Macro to define tables used to set the flags.
#. This is a list in braces of pairs in braces,
#. each pair being { "NAME", VALUE }
#. where VALUE is the bits to set or minus the bits to clear.
#. An empty string NAME is used to identify the default VALUE.
-#: config/v850/v850.h:120
+#: config/v850/v850.h:158
msgid "Support Green Hills ABI"
msgstr "Green Hills ABI desteklenir"
-#: config/v850/v850.h:123
+#: config/v850/v850.h:161
msgid "Prohibit PC relative function calls"
msgstr "PC göreli işlev çağrılarını engeller"
-#: config/v850/v850.h:126
+#: config/v850/v850.h:164
msgid "Reuse r30 on a per function basis"
msgstr "Her işlev için r30 yeniden kullanılır"
-#: config/v850/v850.h:129
+#: config/v850/v850.h:167
msgid "Use stubs for function prologues"
msgstr "İşlev önbilgisi için koçan kullanır"
-#: config/v850/v850.h:132
+#: config/v850/v850.h:170
msgid "Same as: -mep -mprolog-function"
msgstr "-mep -mprolog-function ile aynı"
-#: config/v850/v850.h:133
+#: config/v850/v850.h:171
msgid "Enable backend debugging"
msgstr "Arkayüz hata ayıklamasını etkinleştirir"
-#: config/v850/v850.h:135
+#: config/v850/v850.h:173
msgid "Compile for the v850 processor"
msgstr "v850 işlemcisi için derleme yapılır"
-#: config/v850/v850.h:138
+#: config/v850/v850.h:175
+msgid "Compile for v850e processor"
+msgstr "v850e işlemcisi için derleme yapılır"
+
+#. Make sure that the other bits are cleared.
+#: config/v850/v850.h:177
+msgid "Enable the use of the short load instructions"
+msgstr "short yükleme komutlarının kullanımı etkinleştirilir"
+
+#: config/v850/v850.h:180
+msgid "Do not use the callt instruction"
+msgstr "callt komutu kullanılmaz"
+
+#: config/v850/v850.h:187
+msgid "Do not use registers r2 and r5"
+msgstr "r2 ve r5 yazmaçları kullanılmaz"
+
+#: config/v850/v850.h:189
+msgid "Enforce strict alignment"
+msgstr "Katı hizalamaya zorlar"
+
+#: config/v850/v850.h:192
msgid "Use 4 byte entries in switch tables"
msgstr "Switch tablolarında 4 baytlık girdiler kullanılır"
-#: config/v850/v850.h:164
+#: config/v850/v850.h:218
msgid "Set the max size of data eligible for the TDA area"
msgstr "TDA alanı için uygun verinin maksimum boyunu belirler"
-#: config/v850/v850.h:167
+#: config/v850/v850.h:221
msgid "Set the max size of data eligible for the SDA area"
msgstr "SDA alanı için uygun verinin maksimum boyunu belirler"
-#: config/v850/v850.h:170
+#: config/v850/v850.h:224
msgid "Set the max size of data eligible for the ZDA area"
msgstr "ZDA alanı için uygun verinin maksimum boyunu belirler"
-#: config/xtensa/xtensa.c:1048 config/xtensa/xtensa.c:1082 config/xtensa/xtensa.c:1091
+#: config/xtensa/xtensa.c:1062 config/xtensa/xtensa.c:1096
+#: config/xtensa/xtensa.c:1105
msgid "bad test"
msgstr "hatalı test"
-#: config/xtensa/xtensa.c:1790
+#: config/xtensa/xtensa.c:1824
msgid "boolean registers required for the floating-point option"
msgstr "iki terimli yazmaçlar kayan nokta seçeneği için gerekli"
-#: config/xtensa/xtensa.c:1965
+#: config/xtensa/xtensa.c:1991
msgid "invalid mask"
msgstr "mask geçersiz"
-#: config/xtensa/xtensa.c:2017
+#: config/xtensa/xtensa.c:2038
msgid "invalid address"
msgstr "adres geçersiz"
-#: config/xtensa/xtensa.c:2042
+#: config/xtensa/xtensa.c:2063
msgid "no register in address"
msgstr "adreste yazmaç yok"
-#: config/xtensa/xtensa.c:2050
+#: config/xtensa/xtensa.c:2071
msgid "address offset not a constant"
msgstr "adres deÄŸeri bir sabit deÄŸil"
+#: config/xtensa/xtensa.c:2794
+msgid "only uninitialized variables can be placed in a .bss section"
+msgstr "sadece ilklendirilmemiş değişkenler .bss bölümüne yerleştirilebilir"
+
#: config/xtensa/xtensa.h:114
msgid "Use the Xtensa code density option"
msgstr "Xtensa kod yoğunluğu seçeneği kullanılır"
@@ -13205,512 +13811,579 @@ msgstr "Büyük programlar için dolaylı CALLXn komutları kullanılır"
msgid "Use direct CALLn instructions for fast calls"
msgstr "Hızlı çağrılar için doğrudan CALLn komutları kullanılır"
-#: ada/misc.c:219
+#: ada/misc.c:233
msgid "`-gnat' misspelled as `-gant'"
msgstr "`-gnat' yerine `-gant' kullanılmış"
-#: cp/call.c:270 cp/init.c:1635
+#: cp/call.c:261 cp/init.c:1594
msgid "qualified type `%T' does not match destructor name `~%T'"
msgstr "yetkin tür `%T', yıkıcı ismi `~%T' ile eşleşmiyor"
-#: cp/call.c:279
+#: cp/call.c:270
msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
msgstr "`%E' türü yıkıcı türü `%T' ile eşleşmiyor (tür `%T' idi)"
-#: cp/call.c:288
+#: cp/call.c:279
msgid "`%D' is a namespace"
msgstr "`%D' bir isim alanı"
-#: cp/call.c:296
+#: cp/call.c:287
msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
msgstr "amaçlı yöntem çağrısının taban nesnesi `%E' yeni sınıf oluşturamayan `%T' türününkidir"
-#: cp/call.c:394
+#: cp/call.c:369
msgid "unable to call pointer to member function here"
-msgstr "buradan üye işlev göstergesi çağrılamaz"
+msgstr "buradan üye işlev göstericisi çağrılamaz"
-#: cp/call.c:530
+#: cp/call.c:518
msgid "destructors take no parameters"
msgstr "yıkıcılar parametre almaz"
-#: cp/call.c:537
+#: cp/call.c:522
msgid "destructor name `~%T' does not match type `%T' of expression"
msgstr "yıkıcı ismi `~%T' ifadenin türü `%T' ile eşleşmiyor"
-#: cp/call.c:2374
+#: cp/call.c:543 cp/call.c:5000
+msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+msgstr "bir nesne alarak oluşmayan `%3$T' türündeki `%2$E'nin üyesi `%D' için istek"
+
+#: cp/call.c:567
+msgid "request for member `%D' is ambiguous"
+msgstr "üye `%D' için istek belirsiz"
+
+#: cp/call.c:2537
msgid "%s %D(%T, %T, %T) <built-in>"
msgstr "%s %D(%T, %T, %T) <yerleÅŸik>"
-#: cp/call.c:2379
+#: cp/call.c:2542
msgid "%s %D(%T, %T) <built-in>"
msgstr "%s %D(%T, %T) <yerleÅŸik>"
-#: cp/call.c:2383
+#: cp/call.c:2546
msgid "%s %D(%T) <built-in>"
msgstr "%s %D(%T) <yerleÅŸik>"
-#: cp/call.c:2387
+#: cp/call.c:2550
msgid "%s %T <conversion>"
msgstr "%s %T <dönüşüm>"
-#: cp/call.c:2389
+#: cp/call.c:2552
msgid "%s %+#D%s"
msgstr "%s %+#D%s"
-#: cp/call.c:2546
-msgid "no viable candidates"
-msgstr "uygulanabilir aday yok"
-
-#: cp/call.c:2560
+#: cp/call.c:2726
msgid "conversion from `%T' to `%T' is ambiguous"
msgstr "`%T' den `%T' ye dönüşüm belirsiz"
-#: cp/call.c:2677
+#: cp/call.c:2803
+msgid "`%T' is not a class type"
+msgstr "`%T' bir sınıf türü değil"
+
+#: cp/call.c:2811
+msgid "incomplete type '%T' cannot be used to name a scope"
+msgstr "içi boş `%T' türü bir yorum alanı içinde isim olarak kullanılamaz"
+
+#: cp/call.c:2831 cp/typeck.c:2188 cp/typeck.c:2217
+msgid "'%D' has no member named '%E'"
+msgstr "%D' `%E' isimli üyeye sahip değil"
+
+#: cp/call.c:2933
msgid "no matching function for call to `%D(%A)'"
msgstr "`%D(%A)' çağrısı ile eşleşen bir işlev yok"
-#: cp/call.c:2688 cp/call.c:4681
+#: cp/call.c:2944 cp/call.c:5087
msgid "call of overloaded `%D(%A)' is ambiguous"
msgstr "aşırı yüklü `%D(%A)' çağrısı belirsiz"
#. It's no good looking for an overloaded operator() on a
#. pointer-to-member-function.
-#: cp/call.c:2715
+#: cp/call.c:2971
#, c-format
msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
msgstr "üye işlev %E nesnesiz çağrılamaz; .* or ->* kullanımı önerilir"
-#: cp/call.c:2784
+#: cp/call.c:3036
msgid "no match for call to `(%T) (%A)'"
msgstr "`(%T) (%A)' çağrısı için eşleşme yok"
-#: cp/call.c:2794
+#: cp/call.c:3046
msgid "call of `(%T) (%A)' is ambiguous"
msgstr "`(%T) (%A)' çağrısı belirsiz"
-#: cp/call.c:2829
-msgid "%s for `%T ? %T : %T' operator"
-msgstr "%s (`%T ? %T : %T' üç terimlisi için)"
+#: cp/call.c:3081
+#, c-format
+msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+msgstr "'%2$E ? %3$E : %4$E' içinde üç terimli ?: işleci için %1$s"
-#: cp/call.c:2834
-msgid "%s for `%T %s' operator"
-msgstr "%s (`%T %s' işlemimi için)"
+#: cp/call.c:3087
+#, c-format
+msgid "%s for 'operator%s' in '%E%s'"
+msgstr "'%3$E%4$s' içinde %2$s işleci için %1$s"
-#: cp/call.c:2837
-msgid "%s for `%T [%T]' operator"
-msgstr "%s (`%T [%T]' işlemimi için)"
+#: cp/call.c:3091
+#, c-format
+msgid "%s for 'operator[]' in '%E[%E]'"
+msgstr "'%2$E[%3$E]' içinde [] işleci için %1$s"
-#: cp/call.c:2842
-msgid "%s for `%T %s %T' operator"
-msgstr "%s (`%T %s %T' işlemimi için)"
+#: cp/call.c:3096
+#, c-format
+msgid "%s for 'operator%s' in '%E %s %E'"
+msgstr "'%3$E %4$s %5$E' içinde %2$s işleci için %1$s"
-#: cp/call.c:2845
-msgid "%s for `%s %T' operator"
-msgstr "%s (`%s %T' işlemimi için)"
+#: cp/call.c:3099
+#, c-format
+msgid "%s for 'operator%s' in '%s%E'"
+msgstr "'%3$s%4$E' içinde %2$s işleci için %1$s"
-#: cp/call.c:2937
+#: cp/call.c:3191
msgid "ISO C++ forbids omitting the middle term of a ?: expression"
msgstr "ISO C++ bir ?: ifadesinde eksik orta terime izin vermez"
-#: cp/call.c:2996
+#: cp/call.c:3250
#, c-format
msgid "`%E' has type `void' and is not a throw-expression"
msgstr "`%E' `void' türünde ve bir yakalama-ifadesi değil"
-#: cp/call.c:3029 cp/call.c:3229
+#: cp/call.c:3283 cp/call.c:3475
msgid "operands to ?: have different types"
msgstr "?: için işlemimleri farklı türde"
-#: cp/call.c:3182
+#: cp/call.c:3428
msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
msgstr "şartlı ifade içinde enum uyumsuzluğu: `%T' vs `%T'"
-#: cp/call.c:3189
+#: cp/call.c:3435
msgid "enumeral and non-enumeral type in conditional expression"
msgstr "şartlı ifade içinde enum ve enum olmayan türler"
-#: cp/call.c:3270
+#: cp/call.c:3516
msgid "`%D' must be declared before use"
msgstr "`%D' kullanmadan önce bildirilmiş olmalı"
-#: cp/call.c:3433
+#: cp/call.c:3706
msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
-msgstr "sonek `%s' için `%D(int)' bildirimi yok, yerine önek işlemimi deneniyor"
+msgstr "sonek `%s' için `%D(int)' bildirimi yok, yerine önek işleci deneniyor"
-#: cp/call.c:3480
+#: cp/call.c:3753
msgid "using synthesized `%#D' for copy assignment"
msgstr "kopya ataması için bireşimli `%#D' kullanılıyor"
-#: cp/call.c:3482
+#: cp/call.c:3755
msgid " where cfront would use `%#D'"
msgstr " (cfront'un `%#D' kullanması gerektiği yerde)"
-#: cp/call.c:3509
+#: cp/call.c:3782
msgid "comparison between `%#T' and `%#T'"
msgstr "`%#T' ile `%#T' arasında karşılaştırma"
-#: cp/call.c:3748
+#: cp/call.c:4021
msgid "no suitable `operator delete' for `%T'"
msgstr "`%T' için uygun bir `operator delete' yok"
-#: cp/call.c:3767
+#: cp/call.c:4040
msgid "`%+#D' is private"
msgstr "`%+#D' private'dir"
-#: cp/call.c:3769
+#: cp/call.c:4042
msgid "`%+#D' is protected"
msgstr "`%+#D' protected'dır"
-#: cp/call.c:3771
+#: cp/call.c:4044
msgid "`%+#D' is inaccessible"
msgstr "`%+#D' eriÅŸilebilir deÄŸil"
-#: cp/call.c:3772
+#: cp/call.c:4045
msgid "within this context"
msgstr "bu baÄŸlamda"
-#: cp/call.c:3814
+#: cp/call.c:4088
msgid "invalid conversion from `%T' to `%T'"
msgstr "`%T' den `%T' ye dönüşüm geçersiz"
-#: cp/call.c:3816 cp/call.c:3955 cp/call.c:3957
+#: cp/call.c:4090 cp/call.c:4229 cp/call.c:4231
msgid " initializing argument %P of `%D'"
msgstr " `%D' nin %P. argümanının ilklendirilmesi"
-#: cp/call.c:3879 cp/call.c:3883
+#: cp/call.c:4152 cp/call.c:4156
msgid " initializing argument %P of `%D' from result of `%D'"
msgstr " `%D'nin %P argümanı `%D'nin sonucundan ilklendiriliyor "
-#: cp/call.c:3889 cp/call.c:3892
+#: cp/call.c:4162 cp/call.c:4165
msgid " initializing temporary from result of `%D'"
msgstr " geçici olarak `%D'nin sonucundan ilklendiriliyor"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4026
-msgid "cannot pass objects of non-POD type `%#T' through `...'"
-msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden aktarılamaz"
+#. Undefined behavior [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.
+#: cp/call.c:4316
+msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden aktarılamaz; çalışma anında çağrı çıkış yaptıracak"
-#. Undefined behaviour [expr.call] 5.2.2/7.
-#: cp/call.c:4051
+#. Undefined behavior [expr.call] 5.2.2/7.
+#: cp/call.c:4343
msgid "cannot receive objects of non-POD type `%#T' through `...'"
msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden alınamaz"
-#: cp/call.c:4193
+#: cp/call.c:4523
msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
msgstr "niteleyicileri iptal eden `%#D'nin `this' argümanı olarak `%T aktarılıyor"
-#: cp/call.c:4443
+#: cp/call.c:4542
+msgid "`%T' is not an accessible base of `%T'"
+msgstr "`%T', `%T' tabanında erişilebilir değil"
+
+#: cp/call.c:4786
msgid "could not find class$ field in java interface type `%T'"
msgstr "`%T' türündeki java arabiriminde class$ alanı bulunamadı"
-#: cp/call.c:4544 cp/typeck.c:2018
-msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
-msgstr "bir nesne alarak oluşmayan `%3$T' türündeki `%2$E'nin üyesi `%D' için istek"
+#: cp/call.c:4974
+msgid "call to non-function `%D'"
+msgstr "işlev olmayan `%D' ye çağrı"
-#: cp/call.c:4670
+#: cp/call.c:5076
msgid "no matching function for call to `%T::%D(%A)%#V'"
msgstr "`%T::%D(%A)%#V' çağrısı ile eşleşen işlev yok"
-#: cp/call.c:4700
+#: cp/call.c:5106
msgid "cannot call member function `%D' without object"
msgstr "üye işlev `%D' nesne olmaksızın çağrılamaz"
-#: cp/call.c:5313
+#: cp/call.c:5704
msgid "passing `%T' chooses `%T' over `%T'"
msgstr "`%T' `%T'yi `%T' üzerinden seçerek aktarılıyor"
-#: cp/call.c:5315 cp/decl2.c:4508
+#: cp/call.c:5706 cp/decl2.c:4154
msgid " in call to `%D'"
msgstr " `%D' çağrısında"
-#: cp/call.c:5364 cp/call.c:5489
+#: cp/call.c:5755
msgid "choosing `%D' over `%D'"
msgstr "`%D' `%D' üzerinden seçiliyor"
-#: cp/call.c:5365
+#: cp/call.c:5756
msgid " for conversion from `%T' to `%T'"
msgstr " (`%T' den `%T' ye dönüşüm için)"
-#: cp/call.c:5367
+#: cp/call.c:5758
msgid " because conversion sequence for the argument is better"
msgstr " çünkü argüman için dönüşüm süreci daha iyi"
-#: cp/call.c:5491
-msgid " because worst conversion for the former is better than worst conversion for the latter"
-msgstr " çünkü ilkinin en kötü dönüşümü sonuncusununkinden daha iyidir"
+#: cp/call.c:5879
+msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+msgstr "İlkinin en kötü dönüşümü sonuncusununkinden daha iyi olsa bile ISO C++ `%D' ve `%D' belirsizdir der "
-#: cp/call.c:5607 cp/call.c:5628
+#: cp/call.c:5996
msgid "could not convert `%E' to `%T'"
msgstr "`%E' den `%T' ye dönüşüm yapılamaz"
+#: cp/call.c:6105
+msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+msgstr "`%T' türündeki sabit olmayan referansın geçici `%T' türünden ilklendirilmesi geçersiz"
+
+#: cp/call.c:6109
+msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+msgstr "`%T' türündeki referansın `%T' türü ifadeden ilklendirilmesi geçersiz"
+
#: cp/class.c:287
msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
msgstr "taban `%T' türünden türetilmiş `%T' türü sanal taban `%T' üzerinden dönüştürülemez"
-#: cp/class.c:1020
+#: cp/class.c:992
msgid "`%#D' and `%#D' cannot be overloaded"
msgstr "`%#D' ve `%#D' aşırı yüklü olamaz"
-#. There has already been a declaration of this method
-#. or member template.
-#: cp/class.c:1031
-msgid "`%D' has already been declared in `%T'"
-msgstr "`%D' zaten `%T' de bildirilmiÅŸti"
-
-#: cp/class.c:1112
+#: cp/class.c:1076
msgid "duplicate enum value `%D'"
msgstr "yinelenmiÅŸ enum deÄŸeri `%D'"
-#: cp/class.c:1115
+#: cp/class.c:1079
msgid "duplicate field `%D' (as enum and non-enum)"
msgstr "yinelenmiÅŸ alan `%D' (hem enum hem de deÄŸil)"
-#: cp/class.c:1122
+#: cp/class.c:1086
msgid "duplicate nested type `%D'"
msgstr "yinelenmiş iç içe tür `%D'"
-#: cp/class.c:1133
+#: cp/class.c:1097
msgid "duplicate field `%D' (as type and non-type)"
msgstr "yinelenmiş alan `%D' (hem tür hem de değil)"
-#: cp/class.c:1137
+#: cp/class.c:1101
msgid "duplicate member `%D'"
msgstr "yinelenmiş üye `%D'"
-#: cp/class.c:1180
+#: cp/class.c:1144
msgid "conflicting access specifications for method `%D', ignored"
msgstr "`%D' yöntemi için erişim özellikleri çelişkili, yoksayıldı"
-#: cp/class.c:1182
+#: cp/class.c:1146
#, c-format
msgid "conflicting access specifications for field `%s', ignored"
msgstr "`%s' alanı için erişim özellikleri çelişkili, yoksayıldı"
-#: cp/class.c:1225
+#: cp/class.c:1194
msgid "`%D' names constructor"
msgstr "`%D' isimleri kurucu"
-#: cp/class.c:1231
+#: cp/class.c:1199
msgid "`%D' invalid in `%T'"
msgstr "`%T' içindeki `%D' geçersiz"
-#: cp/class.c:1239
+#: cp/class.c:1207
msgid "no members matching `%D' in `%#T'"
msgstr "`%T' içindeki `%D' ile eşleşen üye yok"
-#: cp/class.c:1271 cp/class.c:1279
+#: cp/class.c:1239 cp/class.c:1247
msgid "`%D' invalid in `%#T'"
msgstr "`%#T' içindeki `%D' geçersiz"
-#: cp/class.c:1272
+#: cp/class.c:1240
msgid " because of local method `%#D' with same name"
msgstr " çünkü yerel yöntem `%#D' ile aynı isimde"
-#: cp/class.c:1280
+#: cp/class.c:1248
msgid " because of local member `%#D' with same name"
msgstr " çünkü yerel üye `%#D' ile aynı isimde"
-#: cp/class.c:1352
+#: cp/class.c:1320
msgid "base class `%#T' has a non-virtual destructor"
msgstr "taban sınıf `%#T' bir sanal olmayan yıkıcıya sahip"
-#: cp/class.c:1372
+#: cp/class.c:1340
msgid "base `%T' with only non-default constructor in class without a constructor"
msgstr "sadece bir kurucusuz sınıftaki öntanımlı olmayan kuruculu taban `%T'"
-#: cp/class.c:1959
+#: cp/class.c:1912
msgid "all member functions in class `%T' are private"
msgstr "sınıf `%T' içindeki tüm üye işlevler 'private'"
-#: cp/class.c:1973
+#: cp/class.c:1926
msgid "`%#T' only defines a private destructor and has no friends"
msgstr "`%#T' sadece private bir yıkıcı tanımlıyor ve kardeşleri yok"
-#: cp/class.c:2016
+#: cp/class.c:1969
msgid "`%#T' only defines private constructors and has no friends"
msgstr "`%#T' sadece private kurucular tanımlıyor ve kardeşleri yok"
-#: cp/class.c:2137 cp/class.c:5064
+#: cp/class.c:2090 cp/class.c:5276
msgid "redefinition of `%#T'"
msgstr "`%#T' yeniden tanımlanmış"
-#: cp/class.c:2138
+#: cp/class.c:2091
msgid "previous definition of `%#T'"
msgstr "`%#T' nin önceki bildirimi"
-#: cp/class.c:2468
+#: cp/class.c:2365
msgid "no unique final overrider for `%D' in `%T'"
msgstr "`%D' için `%T' içinde eşsiz bir son değiştirici yok"
#. Here we know it is a hider, and no overrider exists.
-#: cp/class.c:2850
+#: cp/class.c:2712
msgid "`%D' was hidden"
msgstr "`%D'"
-#: cp/class.c:2851
+#: cp/class.c:2713
msgid " by `%D'"
msgstr " `%D' tarafından gizlendi"
-#: cp/class.c:2893
+#: cp/class.c:2755
msgid "ISO C++ forbids member `%D' with same name as enclosing class"
msgstr "ISO C++ zarflayan sınıf olarak üye `%D' ile aynı isme izin vermez"
-#: cp/class.c:2898 cp/decl2.c:1883
+#: cp/class.c:2760 cp/decl2.c:1331
msgid "`%#D' invalid; an anonymous union can only have non-static data members"
msgstr "`%#D' geçersiz; bir anonim birleşik yapı sadece statik olmayan veri üyeleri içerebilir"
-#: cp/class.c:2904 cp/decl2.c:1889
+#: cp/class.c:2766 cp/decl2.c:1337
msgid "private member `%#D' in anonymous union"
msgstr "anonim union içinde private üye `%#D'"
-#: cp/class.c:2907 cp/decl2.c:1891
+#: cp/class.c:2769 cp/decl2.c:1339
msgid "protected member `%#D' in anonymous union"
msgstr "anonim union içinde protected üye `%#D'"
-#: cp/class.c:3059
+#: cp/class.c:2894
+msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+msgstr "sınıf `%T' için vtable yerleşimi ABI-uyumlu olamaz ve bu GCC'nin gelecek sürümünde değişebilir"
+
+#: cp/class.c:2958
msgid "bit-field `%#D' with non-integral type"
msgstr "tümleyen olmayan tür ile bit-alanı `%#D'"
-#: cp/class.c:3079
+#: cp/class.c:2978
msgid "bit-field `%D' width not an integer constant"
msgstr "bit alanı `%D' için genişlik bir tamsayı sabit değil"
-#: cp/class.c:3085
+#: cp/class.c:2984
msgid "negative width in bit-field `%D'"
msgstr "bit alanı `%D' içindeki genişlik negatif"
-#: cp/class.c:3090
+#: cp/class.c:2989
msgid "zero width for bit-field `%D'"
msgstr "bit alanı `%D' için sıfır genişlik"
-#: cp/class.c:3096
+#: cp/class.c:2995
msgid "width of `%D' exceeds its type"
msgstr "`%D' türünün genişliğini aşıyor"
-#: cp/class.c:3105
+#: cp/class.c:3004
msgid "`%D' is too small to hold all values of `%#T'"
msgstr "`%D' `%#T'nin tüm değerlerini tutmak için çok küçük"
-#: cp/class.c:3189
+#: cp/class.c:3088
msgid "member `%#D' with constructor not allowed in union"
msgstr "union içinde kuruculu üye `%#D' olamaz"
-#: cp/class.c:3192
+#: cp/class.c:3091
msgid "member `%#D' with destructor not allowed in union"
msgstr "union içinde yıkıcılı üye `%#D' olamaz"
-#: cp/class.c:3195
+#: cp/class.c:3094
msgid "member `%#D' with copy assignment operator not allowed in union"
-msgstr "union içinde kopya atama işlemimli üye `%#D' olamaz"
+msgstr "union içinde kopya atama işleçli üye `%#D' olamaz"
-#: cp/class.c:3222
+#: cp/class.c:3121
msgid "multiple fields in union `%T' initialized"
msgstr "birleşik yapı `%T' içindeki çoklu alanlar ilklendirildi"
-#: cp/class.c:3341
+#: cp/class.c:3234
msgid "field `%D' in local class cannot be static"
msgstr "yerel sınıf içindeki alan `%D' static olamaz"
-#: cp/class.c:3347
+#: cp/class.c:3240
msgid "field `%D' invalidly declared function type"
msgstr "alan `%D' ile geçersiz olarak işlev türü bildirildi"
-#: cp/class.c:3354
+#: cp/class.c:3247
msgid "field `%D' invalidly declared method type"
msgstr "alan `%D' ile geçersiz olarak yöntem türü bildirildi"
-#: cp/class.c:3360
+#: cp/class.c:3253
msgid "field `%D' invalidly declared offset type"
msgstr "alan `%D' ile geçersiz olarak göreli konum türü bildirildi"
#. Unions cannot have static members.
-#: cp/class.c:3378
+#: cp/class.c:3271
msgid "field `%D' declared static in union"
msgstr "alan `%D' ile birleşik yapı içinde static bildirimi"
-#: cp/class.c:3404
+#: cp/class.c:3298
msgid "non-static reference `%#D' in class without a constructor"
msgstr "bir kurucusuz sınıf içinde static olmayan başvuru `%#D'"
-#: cp/class.c:3435
+#: cp/class.c:3333
msgid "non-static const member `%#D' in class without a constructor"
msgstr "bir kurucusuz sınıf içinde static olmayan sabit üye `%#D'"
-#: cp/class.c:3450
+#: cp/class.c:3349
msgid "field `%#D' with same name as class"
msgstr "alan `%#D' sınıf ile aynı isimde"
-#: cp/class.c:3468
+#: cp/class.c:3367
msgid "`%#T' has pointer data members"
-msgstr "`%#T' gösterge veri üyeleri içeriyor"
+msgstr "`%#T' gösterici veri üyeleri içeriyor"
-#: cp/class.c:3472
+#: cp/class.c:3371
msgid " but does not override `%T(const %T&)'"
msgstr " ama `%T(const %T&)' ye deÄŸiÅŸtirilmiyor"
-#: cp/class.c:3474
+#: cp/class.c:3373
msgid " or `operator=(const %T&)'"
msgstr " ya da `operator=(const %T&)'"
-#: cp/class.c:3477
+#: cp/class.c:3376
msgid " but does not override `operator=(const %T&)'"
msgstr " ama `operator=(const %T&)' ye deÄŸiÅŸtirilmiyor"
-#: cp/class.c:3943
+#: cp/class.c:3826
+msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+msgstr "boş taban `%T' nin göreli konumu ABI-uyumlu olamaz ve bu GCC'nin gelecek sürümünde değişebilir"
+
+#: cp/class.c:3935
+msgid "class `%T' will be considered nearly empty in a future version of GCC"
+msgstr "sınıf `%T' GCC'nin gelecek sürümünde kısmen boş sayılacak"
+
+#: cp/class.c:4025
msgid "initializer specified for non-virtual method `%D'"
msgstr "sanal olmayan yöntem `%D' için ilklendirici belirtilmiş"
-#: cp/class.c:4728
-msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
-msgstr "sanal taban `%T' belirsizlikten dolayı `%T' içinde erişilebilir değil"
+#: cp/class.c:4761
+msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+msgstr "sanal taban `%T' nin göreli konumu ABI-uyumlu değil ve bu GCC'nin gelecek sürümünde değişebilir"
-#: cp/class.c:4798
+#: cp/class.c:4861
msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
msgstr "doğrudan taban `%T' belirsizlikten dolayı `%T' içinde erişilebilir değil"
-#: cp/class.c:5225
+#: cp/class.c:4874
+msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+msgstr "sanal taban `%T' belirsizlikten dolayı `%T' içinde erişilebilir değil"
+
+#: cp/class.c:5030
+msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "`%T' ye atanan boyut ABI-uyumlu olmamalı ve bu GCC'nin gelecek sürümünde değişebilir"
+
+#. Versions of G++ before G++ 3.4 did not reset the
+#. DECL_MODE.
+#: cp/class.c:5053
+msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+msgstr "`%D' nin göreli konumu ABI-uyumlu olmayabilir ve bu GCC'nin gelecek sürümünde değişebilir"
+
+#: cp/class.c:5079
+msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+msgstr "`%D' nin göreli konumu ABI-uyumlu değil ve bu GCC'nin gelecek sürümünde değişebilir"
+
+#: cp/class.c:5088
+msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+msgstr "`%D' GCC'nin gelecek sürümünde taban sınıfların farklı yere konmasına sebep olabilecek boş sınıfları içeriyor"
+
+#: cp/class.c:5147
+msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+msgstr "sınıfların yerleşimi GCC'nin gelecek sürümünde değişebilecek olan boş sınıf `%T' den türetilmiş"
+
+#: cp/class.c:5432
msgid "`%#T' has virtual functions but non-virtual destructor"
msgstr "`%#T' sanal olmayan kurucuyla sanal işlevler içeriyor"
-#: cp/class.c:5309
+#: cp/class.c:5516
msgid "trying to finish struct, but kicked out due to previous parse errors"
msgstr "yapı tamamlanmaya çalışılırken önceki ayrıştırma hatalarından dolayı kesildi"
-#: cp/class.c:5766
+#: cp/class.c:5982
#, c-format
msgid "language string `\"%s\"' not recognized"
msgstr "dil dizgesi `\"%s\"' tanınmıyor"
-#: cp/class.c:5862
+#: cp/class.c:6078
msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
msgstr "aşırı yüklü `%D' `%T' türünün dönüşümüne tabanlı olarak çözümlenemiyor"
-#: cp/class.c:5983
+#: cp/class.c:6203
msgid "no matches converting function `%D' to type `%#T'"
msgstr "işlev `%D'nin `%#T' türüne dönüşümü için eşleşme yok"
-#: cp/class.c:6006
+#: cp/class.c:6226
msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
msgstr "aşırı yüklü işlev `%D'nin `%#T' türüne dönüşümü belirsiz"
-#: cp/class.c:6032
+#: cp/class.c:6252
msgid "assuming pointer to member `%D'"
-msgstr "üye `%D'ye gösterge varsayılıyor"
+msgstr "üye `%D'ye gösterici varsayılıyor"
-#: cp/class.c:6035
+#: cp/class.c:6255
#, c-format
msgid "(a pointer to member can only be formed with `&%E')"
-msgstr "(bir üye göstergesi sadece `&%E' ile şekillendirilebilir)"
+msgstr "(bir üye göstericisi sadece `&%E' ile şekillendirilebilir)"
-#: cp/class.c:6079 cp/class.c:6247 cp/class.c:6254
+#: cp/class.c:6306 cp/class.c:6477 cp/class.c:6484
msgid "not enough type information"
msgstr "tür bilgisi yetersiz"
-#: cp/class.c:6088
+#: cp/class.c:6315
msgid "argument of type `%T' does not match `%T'"
msgstr "`%T' türündeki argüman `%T' ile uyumsuz"
-#: cp/class.c:6231
+#: cp/class.c:6461
msgid "invalid operation on uninstantiated type"
msgstr "gerçeklenmemiş tür üzerindeki işlem geçersiz"
@@ -13719,11 +14392,11 @@ msgstr "gerçeklenmemiş tür üzerindeki işlem geçersiz"
#. A name N used in a class S shall refer to the same declaration
#. in its context and when re-evaluated in the completed scope of
#. S.
-#: cp/class.c:6483 cp/decl.c:1032 cp/decl.c:3172 cp/pt.c:1842
+#: cp/class.c:6745 cp/decl.c:1254 cp/decl.c:3379 cp/pt.c:2004
msgid "declaration of `%#D'"
msgstr "`%#D' yeniden bildirimi"
-#: cp/class.c:6484
+#: cp/class.c:6746
msgid "changes meaning of `%D' from `%+#D'"
msgstr "`%D' nin (`%+#D' deki) anlamı değişiyor"
@@ -13739,206 +14412,242 @@ msgstr "`%E' nin `%T' den `%T' ye dönüşümü belirsiz"
msgid "converting from `%T' to `%T'"
msgstr "`%T' den`%T' ye dönüşüm"
-#: cp/cvt.c:198 cp/cvt.c:202
+#: cp/cvt.c:203 cp/cvt.c:207
msgid "pointer to member cast from `%T' to `%T' is via virtual base"
-msgstr "`%T' den `%T' ye üye göstergesi çevirimi sanal taban üzerindendir"
+msgstr "`%T' türünden `%T' türüne üye göstericisi tür dönüşümü sanal taban üzerindendir"
-#: cp/cvt.c:220 cp/cvt.c:233 cp/cvt.c:272
+#: cp/cvt.c:225 cp/cvt.c:236 cp/cvt.c:283
msgid "cannot convert `%E' from type `%T' to type `%T'"
msgstr "`%E' `%T' den `%T' ye çevrilemiyor"
-#: cp/cvt.c:525
+#: cp/cvt.c:262
+msgid "invalid conversion from '%T' to '%T'"
+msgstr "`%T' den `%T' ye dönüşüm geçersiz"
+
+#: cp/cvt.c:504
msgid "conversion from `%T' to `%T' discards qualifiers"
msgstr "`%T' den `%T' ye dönüşüm niteleyicileri iptal ediyor"
-#: cp/cvt.c:543
+#: cp/cvt.c:522
msgid "casting `%T' to `%T' does not dereference pointer"
-msgstr "`%T' den `%T' ye çevirim gösterge referansını kaldırmıyor"
+msgstr "`%T' türünden `%T' türüne dönüşüm gösterici referansını kaldırmaz"
-#: cp/cvt.c:572
+#: cp/cvt.c:551
msgid "cannot convert type `%T' to type `%T'"
msgstr "tür `%T' `%T' türüne dönüştürülemiyor"
-#: cp/cvt.c:689
+#: cp/cvt.c:683
msgid "conversion from `%#T' to `%#T'"
msgstr "`%#T' den `%#T' ye dönüşüm"
-#: cp/cvt.c:701
+#: cp/cvt.c:695
msgid "`%#T' used where a `%T' was expected"
msgstr "`%T' kullanılmış ama `%#T' umulmuştu"
-#: cp/cvt.c:718
+#: cp/cvt.c:712
msgid "the address of `%D', will always be `true'"
msgstr "`%D' nin adresi, daima `true' olacak"
-#: cp/cvt.c:738
+#: cp/cvt.c:732
msgid "`%#T' used where a floating point value was expected"
msgstr "bir gerçel sayı değer gerekirken `%#T' kullanılmış"
-#: cp/cvt.c:793
+#: cp/cvt.c:779
msgid "conversion from `%T' to non-scalar type `%T' requested"
msgstr "`%T' türünden skalar olmayan `%T' türüne dönüşüm istendi"
-#: cp/cvt.c:879
+#: cp/cvt.c:865
msgid "object of incomplete type `%T' will not be accessed in %s"
msgstr "içi boş `%T' türündeki nesne, %s içinde erişimli olmayacak"
-#: cp/cvt.c:882
+#: cp/cvt.c:868
msgid "object of type `%T' will not be accessed in %s"
msgstr "`%T' türündeki nesne, %s içinde erişimli olmayacak"
-#: cp/cvt.c:898
+#: cp/cvt.c:884
msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
msgstr "içi boş `%T' türündeki nesne `%E', %s içinde erişimli olmayacak"
#. [over.over] enumerates the places where we can take the address
#. of an overloaded function, and this is not one of them.
-#: cp/cvt.c:918
+#: cp/cvt.c:904
#, c-format
msgid "%s cannot resolve address of overloaded function"
msgstr "%s aşırı yüklü işlevin adresini çözümleyemiyor"
#. Only warn when there is no &.
-#: cp/cvt.c:923
+#: cp/cvt.c:909
#, c-format
msgid "%s is a reference, not call, to function `%E'"
msgstr "%s işlev `%E' için çağrı değil referanstır"
-#: cp/cvt.c:1061
+#: cp/cvt.c:1039
msgid "converting NULL to non-pointer type"
-msgstr "NULL'dan gösterge olmayan türe dönüşüm"
+msgstr "NULL'dan gösterici olmayan türe dönüşüm"
-#: cp/cvt.c:1137
+#: cp/cvt.c:1115
msgid "ambiguous default type conversion from `%T'"
msgstr "%T' den öntanımlı türe dönüşüm belirsiz"
-#: cp/cvt.c:1139
+#: cp/cvt.c:1117
msgid " candidate conversions include `%D' and `%D'"
msgstr " aday dönüşümler `%D' ve `%D' içeriyor "
-#: cp/decl.c:1033 cp/decl.c:3275
+#: cp/decl.c:736
+#, c-format
+msgid "push %s level %p line %d\n"
+msgstr "%s %p seviyesinde %d. satırda basıldı (push)\n"
+
+#: cp/decl.c:770
+#, c-format
+msgid "pop %s level %p line %d\n"
+msgstr "%s %p seviyesinde %d. satırda çekildi (pop)\n"
+
+#: cp/decl.c:776 cp/decl.c:814
+msgid "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+msgstr "XXX is_class_level != (current_binding_level == class_binding_level)\n"
+
+#: cp/decl.c:808
+#, c-format
+msgid "suspend %s level %p line %d\n"
+msgstr "%s %p seviyesinde %d. satırda askıda\n"
+
+#: cp/decl.c:837
+#, c-format
+msgid "resume %s level %p line %d\n"
+msgstr "%s %p seviyesinde %d. satırda yeniden başladı\n"
+
+#: cp/decl.c:1255 cp/decl.c:3490
msgid "conflicts with previous declaration `%#D'"
msgstr "`%#D' önceki bildirimiyle çelişiyor"
-#: cp/decl.c:1222
+#: cp/decl.c:1467
msgid "label `%D' used but not defined"
msgstr "etiket `%D' tanımlanmadan kullanılmış"
-#: cp/decl.c:1227
+#: cp/decl.c:1472
msgid "label `%D' defined but not used"
msgstr "etiket `%D' tanımlanmış ama kullanılmamış"
-#: cp/decl.c:2294
+#: cp/decl.c:2489
msgid "namespace alias `%D' not allowed here, assuming `%D'"
msgstr "burada isim alanı rumuzu `%D' kullanılamaz, `%D' varsayılıyor"
-#: cp/decl.c:3078 cp/decl.c:3483
+#: cp/decl.c:2825
+msgid "XXX entering pop_everything ()\n"
+msgstr "XXX, pop_everything () iÅŸlevine giriyor\n"
+
+#: cp/decl.c:2834
+msgid "XXX leaving pop_everything ()\n"
+msgstr "XXX, pop_everything () işlevini bırakıyor\n"
+
+#: cp/decl.c:3285 cp/decl.c:3700
msgid "previous declaration of `%D'"
msgstr "`%D'in önceki bildirimi"
-#: cp/decl.c:3159 cp/decl.c:3197
+#: cp/decl.c:3366 cp/decl.c:3404
msgid "shadowing %s function `%#D'"
msgstr "%s işlev `%#D' yi gölgeliyor"
-#: cp/decl.c:3168
+#: cp/decl.c:3375
msgid "library function `%#D' redeclared as non-function `%#D'"
msgstr "kitaplık işlevi `%#D' işlev olmayan `%#D' olarak yeniden bildirildi"
-#: cp/decl.c:3173
+#: cp/decl.c:3380
msgid "conflicts with built-in declaration `%#D'"
msgstr "`%#D' yerleşik bildirimiyle çelişiyor"
-#: cp/decl.c:3192 cp/decl.c:3285 cp/decl.c:3301
+#: cp/decl.c:3399 cp/decl.c:3504 cp/decl.c:3520
msgid "new declaration `%#D'"
msgstr "yeni bildirim `%#D'"
-#: cp/decl.c:3193
+#: cp/decl.c:3400
msgid "ambiguates built-in declaration `%#D'"
msgstr "`%#D' yerleÅŸik bildirimi belirsizleÅŸiyor"
-#: cp/decl.c:3249
+#: cp/decl.c:3464
msgid "`%#D' redeclared as different kind of symbol"
msgstr "`%#D' farklı bir sembol çeşidi olarak tekrar bildirilmiş"
-#: cp/decl.c:3252
+#: cp/decl.c:3467
msgid "previous declaration of `%#D'"
msgstr "`%#D'in önceki bildirimi"
-#: cp/decl.c:3274
+#: cp/decl.c:3489
msgid "declaration of template `%#D'"
msgstr "ÅŸablon bildirimi `%#D'"
-#: cp/decl.c:3286 cp/decl.c:3302
+#: cp/decl.c:3505 cp/decl.c:3521
msgid "ambiguates old declaration `%#D'"
msgstr "`%#D' eski bildirimi belirsizleÅŸiyor"
-#: cp/decl.c:3294
+#: cp/decl.c:3513
msgid "declaration of C function `%#D' conflicts with"
msgstr "C iÅŸlevi `%#D' bildirimi ile"
-#: cp/decl.c:3296
+#: cp/decl.c:3515
msgid "previous declaration `%#D' here"
msgstr "`%#D'nin önceki bildirimi ile burada çelişiyor"
-#: cp/decl.c:3312
+#: cp/decl.c:3533
msgid "conflicting types for `%#D'"
msgstr "`%#D' için çelişen türler"
-#: cp/decl.c:3313
+#: cp/decl.c:3534
msgid "previous declaration as `%#D'"
msgstr "önceki bildirim `%#D' olarak"
-#: cp/decl.c:3356
+#: cp/decl.c:3577
msgid "`%#D' previously defined here"
msgstr "`%#D' evvelce burada tanımlanmış"
-#: cp/decl.c:3357
+#: cp/decl.c:3578
msgid "`%#D' previously declared here"
msgstr "`%#D' evvelce burada bildirilmiÅŸ"
#. Prototype decl follows defn w/o prototype.
-#: cp/decl.c:3366
+#: cp/decl.c:3587
msgid "prototype for `%#D'"
msgstr "`%#D' için prototip"
-#: cp/decl.c:3367
+#: cp/decl.c:3588
msgid "follows non-prototype definition here"
msgstr "burada prototip olmayan tanımdan sonra"
-#: cp/decl.c:3379
+#: cp/decl.c:3600
msgid "previous declaration of `%#D' with %L linkage"
msgstr "%L ilintili `%#D' önceki bildirimi"
-#: cp/decl.c:3381
+#: cp/decl.c:3602
msgid "conflicts with new declaration with %L linkage"
msgstr "%L ilintili yeni bildirim ile çelişiyor"
-#: cp/decl.c:3404 cp/decl.c:3411
+#: cp/decl.c:3625 cp/decl.c:3632
msgid "default argument given for parameter %d of `%#D'"
msgstr "`%#D' nin %d. parametresi için verilen öntanımlı argüman"
-#: cp/decl.c:3406 cp/decl.c:3413
+#: cp/decl.c:3627 cp/decl.c:3634
msgid "after previous specification in `%#D'"
msgstr "`%#D' içindeki önceki özellikten sonra"
-#: cp/decl.c:3422
+#: cp/decl.c:3643
msgid "`%#D' was used before it was declared inline"
msgstr "`%#D' inline olarak bildirilmeden önce"
-#: cp/decl.c:3424
+#: cp/decl.c:3645
msgid "previous non-inline declaration here"
msgstr "önceki inline olmayan bildirimi burada kullanılmış"
-#: cp/decl.c:3482
+#: cp/decl.c:3699
msgid "redundant redeclaration of `%D' in same scope"
msgstr "aynı bağlamda `%D'nin yeniden bildirimi anlamsız"
-#: cp/decl.c:3566
+#: cp/decl.c:3780
#, c-format
msgid "declaration of `%F' throws different exceptions"
msgstr "`%F' bildirimi farklı olağandışılıkları yakalıyor"
-#: cp/decl.c:3568
+#: cp/decl.c:3782
#, c-format
msgid "than previous declaration `%F'"
msgstr "`%F'in önceki bildiriminden"
@@ -13951,15 +14660,15 @@ msgstr "`%F'in önceki bildiriminden"
#. that specialization that would cause an implicit
#. instantiation to take place, in every translation unit in
#. which such a use occurs.
-#: cp/decl.c:3701
+#: cp/decl.c:3922
msgid "explicit specialization of %D after first use"
msgstr "ilk kullanımından sonra %D'nin doğrudan özelleştirilmesi"
-#: cp/decl.c:3946
+#: cp/decl.c:4187
msgid "`%#D' used prior to declaration"
msgstr "`%#D' bildirim öncesi kullanılmış"
-#: cp/decl.c:3977
+#: cp/decl.c:4218
msgid "redeclaration of `wchar_t' as `%T'"
msgstr "`wchar_t' nin `%T' olarak yeniden bildirimi"
@@ -13969,839 +14678,895 @@ msgstr "`wchar_t' nin `%T' olarak yeniden bildirimi"
#. [basic.start.main]
#.
#. This function shall not be overloaded.
-#: cp/decl.c:4005
+#: cp/decl.c:4246
msgid "invalid redeclaration of `%D'"
msgstr "`%D'in"
-#: cp/decl.c:4006
+#: cp/decl.c:4247
msgid "as `%D'"
msgstr "`%D' olarak yeniden bildirimi geçersiz"
-#: cp/decl.c:4096
+#: cp/decl.c:4337
msgid "previous external decl of `%#D'"
msgstr "`%D'in önceki dış bildirimi"
-#: cp/decl.c:4137
+#: cp/decl.c:4378
msgid "`%D' was previously implicitly declared to return `int'"
msgstr "`%D' önceden dolaylı olarak dönüş değerine `int' bildirilmiş"
-#: cp/decl.c:4197
+#: cp/decl.c:4438
msgid "extern declaration of `%#D' doesn't match"
msgstr "`%#D' için extern bildirim uyumsuz"
-#: cp/decl.c:4198
+#: cp/decl.c:4439
msgid "global declaration `%#D'"
msgstr "`%#D' genel bildirimi"
-#: cp/decl.c:4229
+#: cp/decl.c:4472
msgid "declaration of `%#D' shadows a parameter"
msgstr "`%#D' genel bildirimi bir parametreyi gölgeliyor"
-#: cp/decl.c:4249
+#: cp/decl.c:4492
#, c-format
msgid "declaration of `%s' shadows a member of `this'"
msgstr "`%s' bildirimi bir `this' üyesini gölgeliyor"
-#: cp/decl.c:4600
+#: cp/decl.c:4889
msgid "`%#D' hides constructor for `%#T'"
msgstr "`%#D' `%#T' kurucusunu gizliyor"
-#: cp/decl.c:4615
+#: cp/decl.c:4904
msgid "`%#D' conflicts with previous using declaration `%#D'"
msgstr "`%#D' `%#D' bildiriminin önceki kullanımı ile çelişiyor"
-#: cp/decl.c:4627
+#: cp/decl.c:4916
msgid "previous non-function declaration `%#D'"
msgstr "önceki işlev olmayan bildirim `%#D'"
-#: cp/decl.c:4628
+#: cp/decl.c:4917
msgid "conflicts with function declaration `%#D'"
msgstr "işlev bildirimi `%#D' ile çelişiyor"
-#: cp/decl.c:4718
+#: cp/decl.c:5007
msgid "implicit declaration of function `%#D'"
msgstr "işlev `%#D' nin örtük bildirimi"
-#: cp/decl.c:4876
+#: cp/decl.c:5167
#, c-format
msgid "label `%s' referenced outside of any function"
msgstr "`%s' etiketi her işlevin dışına referanslı"
-#: cp/decl.c:4979 cp/decl.c:5003 cp/decl.c:5096
+#: cp/decl.c:5270 cp/decl.c:5294 cp/decl.c:5387
msgid "jump to label `%D'"
msgstr "etiket `%D' ye sıçrama"
-#: cp/decl.c:4981 cp/decl.c:5005
+#: cp/decl.c:5272 cp/decl.c:5296
msgid "jump to case label"
msgstr "case etiketine jump"
-#: cp/decl.c:4989
+#: cp/decl.c:5280
msgid " crosses initialization of `%#D'"
msgstr " `%#D' ilklendirmesi çaprazlanıyor"
-#: cp/decl.c:4992 cp/decl.c:5112
+#: cp/decl.c:5283 cp/decl.c:5403
msgid " enters scope of non-POD `%#D'"
msgstr " POD olmayan `%#D' bağlamına giriyor"
-#: cp/decl.c:5012 cp/decl.c:5116
+#: cp/decl.c:5303 cp/decl.c:5407
msgid " enters try block"
msgstr " blok denemesine giriliyor"
#. Can't skip init of __exception_info.
-#: cp/decl.c:5014 cp/decl.c:5108 cp/decl.c:5118
+#: cp/decl.c:5305 cp/decl.c:5399 cp/decl.c:5409
msgid " enters catch block"
msgstr " tuzak bloÄŸu giriyor"
-#: cp/decl.c:5097
+#: cp/decl.c:5388
msgid " from here"
msgstr " buradan"
-#: cp/decl.c:5110
+#: cp/decl.c:5401
msgid " skips initialization of `%#D'"
msgstr " `%#D' ilklendirmesi atlanyor"
-#: cp/decl.c:5145
+#: cp/decl.c:5437
msgid "label named wchar_t"
msgstr "wchar_t isimli etiket"
-#: cp/decl.c:5149
+#: cp/decl.c:5440
msgid "duplicate label `%D'"
msgstr "yinlenmiÅŸ etiket `%D'"
-#: cp/decl.c:5234
+#: cp/decl.c:5525
#, c-format
msgid "case label `%E' not within a switch statement"
msgstr "case etiketi `%E' bir switch deyimi içinde değil"
#. Definition isn't the kind we were looking for.
-#: cp/decl.c:5411 cp/decl.c:5430
+#: cp/decl.c:5704 cp/decl.c:5723
msgid "`%#D' redeclared as %C"
msgstr "`%#D' %C olarak yeniden bildirilmiÅŸ"
#. This happens for A::B where B is a template, and there are no
#. template arguments.
-#: cp/decl.c:5518 cp/typeck.c:1980
+#: cp/decl.c:5811 cp/typeck.c:2069 cp/typeck.c:2229
msgid "invalid use of `%D'"
msgstr "`%D' kullanımı geçersiz"
-#: cp/decl.c:5559
+#: cp/decl.c:5852
msgid "`%D::%D' is not a template"
msgstr "`%D::%D' bir ÅŸablon deÄŸil"
-#: cp/decl.c:5576
+#: cp/decl.c:5869
msgid "`%D' undeclared in namespace `%D'"
msgstr "`%D' isim alanı `%D' içinde bildirimsiz"
-#: cp/decl.c:5713
+#: cp/decl.c:6002
msgid "`%D' used without template parameters"
msgstr "`%D' şablon parametreleri olmaksızın kullanılmış"
-#: cp/decl.c:5724 cp/decl.c:5740 cp/decl.c:5828
+#: cp/decl.c:6013 cp/decl.c:6029 cp/decl.c:6139
msgid "no class template named `%#T' in `%#T'"
msgstr "`%#T' isimli sınıf şablonu `%#T' içinde yok"
-#: cp/decl.c:5758 cp/decl.c:5788
+#: cp/decl.c:6055 cp/decl.c:6065 cp/decl.c:6100
msgid "no type named `%#T' in `%#T'"
msgstr "`%#T' içindeki `%#T' ismindeki tür bilinmiyor"
-#: cp/decl.c:6011
+#: cp/decl.c:6329
msgid "lookup of `%D' finds `%#D'"
msgstr "`%D' araması `%#D' buluyor"
-#: cp/decl.c:6013
+#: cp/decl.c:6331
msgid " instead of `%D' from dependent base class"
msgstr " bağımlı taban sınıftan `%D' yerine"
-#: cp/decl.c:6015
+#: cp/decl.c:6333
msgid " (use `typename %T::%D' if that's what you meant)"
msgstr " (eğer bu anlamda kullandıysanız `typename %T::%D' kullanın)"
-#: cp/decl.c:6188
+#: cp/decl.c:6364
+msgid "name lookup of `%D' changed"
+msgstr "`%D' isim araması değişti"
+
+#: cp/decl.c:6366
+msgid " matches this `%D' under ISO standard rules"
+msgstr " bu `%D' ISO standardının kuralları altında eşleşiyor"
+
+#: cp/decl.c:6368
+msgid " matches this `%D' under old rules"
+msgstr " bu `%D' eski kurallar altında eşleşiyor"
+
+#: cp/decl.c:6382 cp/decl.c:6389
+msgid "name lookup of `%D' changed for new ISO `for' scoping"
+msgstr "yeni ISO `for' etki alanında `%D' isim araması değişti"
+
+#: cp/decl.c:6384
+msgid " cannot use obsolete binding at `%D' because it has a destructor"
+msgstr " `%D' deki modası geçmiş bağlantı bir yıkıcıya sahip olduğundan kullanılamaz"
+
+#: cp/decl.c:6391
+msgid " using obsolete binding at `%D'"
+msgstr " `%D' deki modası geçmiş bağlantı kullanılıyor"
+
+#: cp/decl.c:6609
msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
msgstr "`%D' nin `%#T' (`%#D') bağlamındaki araması şu anki bağlam (`%#D') içindeki arama ile uyuşmuyor"
-#: cp/decl.c:7033
+#: cp/decl.c:7432
msgid "an anonymous union cannot have function members"
msgstr "bir anonim birleşik yapı işlev üyeler barındıramaz"
-#: cp/decl.c:7050
+#: cp/decl.c:7449
msgid "member %#D' with constructor not allowed in anonymous aggregate"
msgstr "kuruculu üye %#D' anonim kümeleme içinde kullanılamaz"
-#: cp/decl.c:7053
+#: cp/decl.c:7452
msgid "member %#D' with destructor not allowed in anonymous aggregate"
msgstr "yıkıcılı üye %#D' anonim kümeleme içinde kullanılamaz"
-#: cp/decl.c:7056
+#: cp/decl.c:7455
msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
-msgstr "kopya atama işlemimli üye %#D' anonim kümeleme içinde kullanılamaz"
+msgstr "kopya atama işleçli üye %#D' anonim kümeleme içinde kullanılamaz"
-#: cp/decl.c:7094
+#: cp/decl.c:7493
msgid "redeclaration of C++ built-in type `%T'"
msgstr "C++ yerleşik türü `%T' için yeniden bildirim"
-#: cp/decl.c:7129
+#: cp/decl.c:7529
msgid "multiple types in one declaration"
msgstr "bir bildirimde birden fazla tür bidirilmiş"
-#: cp/decl.c:7132
-msgid "declaration does not declare anything"
-msgstr "bildirim hiçbir şey bildirmiyor"
-
-#: cp/decl.c:7156
+#: cp/decl.c:7556
msgid "missing type-name in typedef-declaration"
msgstr "typedef bildiriminde tür ismi eksik"
-#: cp/decl.c:7163
+#: cp/decl.c:7563
msgid "ISO C++ prohibits anonymous structs"
msgstr "ISO C++ anonim yapıları (struct) yasaklar"
-#: cp/decl.c:7170
+#: cp/decl.c:7570
msgid "`%D' can only be specified for functions"
msgstr "`%D' sadece işlevler için belirtilebilir"
-#: cp/decl.c:7172
+#: cp/decl.c:7572
msgid "`%D' can only be specified inside a class"
msgstr "`%D' sadece bir sınıf içinde belirtilebilir"
-#: cp/decl.c:7174
+#: cp/decl.c:7574
msgid "`%D' can only be specified for constructors"
msgstr "`%D' sadece kurucular için belirtilebilir"
-#: cp/decl.c:7177
+#: cp/decl.c:7577
msgid "`%D' can only be specified for objects and functions"
msgstr "`%D' sadece işlevler ve nesneler için belirtilebilir"
-#: cp/decl.c:7326
-msgid "typedef `%D' is initialized"
-msgstr "typedef `%D' ilklendirilmiÅŸ"
+#: cp/decl.c:7719 cp/decl2.c:936
+msgid "typedef `%D' is initialized (use __typeof__ instead)"
+msgstr "typedef `%D' ilklendirilmiş (yerine __typeof__ kullanın)"
-#: cp/decl.c:7332
+#: cp/decl.c:7724
msgid "function `%#D' is initialized like a variable"
msgstr "`%D' iÅŸlevi bir deÄŸiÅŸken gibi ilklendirilmiÅŸ"
-#: cp/decl.c:7344
+#: cp/decl.c:7736
msgid "declaration of `%#D' has `extern' and is initialized"
msgstr "`%#D' hem `extern' olarak bildirilmiÅŸ hem de ilklendirilmiÅŸ"
-#: cp/decl.c:7378
+#: cp/decl.c:7770
msgid "`%#D' is not a static member of `%#T'"
msgstr "`%#D' `%#T'nin bir static üyesi değildir"
-#: cp/decl.c:7383
+#: cp/decl.c:7775
msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
msgstr "ISO C++ `%T::%D' nin `%T::%D' olarak tanımlanmasına izin vermez"
-#: cp/decl.c:7394
+#: cp/decl.c:7786
msgid "duplicate initialization of %D"
msgstr "%D nin yinelenmiÅŸ ilklendirmesi"
-#: cp/decl.c:7423
+#: cp/decl.c:7815
msgid "declaration of `%#D' outside of class is not definition"
msgstr "sınıf dışında `%#D' bildirimi bir tanımlama değil"
-#: cp/decl.c:7471
+#: cp/decl.c:7865
msgid "variable `%#D' has initializer but incomplete type"
msgstr "`%#D' değişkeni ilklendirilmiş ama içi boş türde"
-#: cp/decl.c:7479 cp/decl.c:7830
+#: cp/decl.c:7873 cp/decl.c:8432
msgid "elements of array `%#D' have incomplete type"
msgstr "`%#D' dizisinin elemanları içi boş türde"
-#: cp/decl.c:7495
+#: cp/decl.c:7889
msgid "aggregate `%#D' has incomplete type and cannot be defined"
msgstr "küme `%#D' içi boş türde ve tanımlı olamaz"
-#: cp/decl.c:7534
+#: cp/decl.c:7931
msgid "`%D' declared as reference but not initialized"
msgstr "`%D' referans olarak bildirilmiÅŸ ama ilklendirilmemiÅŸ"
-#: cp/decl.c:7543
+#: cp/decl.c:7940
msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
msgstr "ISO C++ referans`%D' ilklendiren ilklendirici listesi kullanımına izin vermez"
-#: cp/decl.c:7576
+#: cp/decl.c:7970
msgid "cannot initialize `%T' from `%T'"
msgstr "`%T' `%T' den ilklendirilemez"
-#: cp/decl.c:7637
+#: cp/decl.c:8004
msgid "initializer fails to determine size of `%D'"
msgstr "ilklendirici `%D' nin boyutunu saptayamıyor"
-#: cp/decl.c:7642
+#: cp/decl.c:8009
msgid "array size missing in `%D'"
msgstr "`%D' de dizi boyutu eksik"
-#: cp/decl.c:7654
+#: cp/decl.c:8021
msgid "zero-size array `%D'"
msgstr "sıfır boyutlu dizi `%D'"
#. An automatic variable with an incomplete type: that is an error.
#. Don't talk about array types here, since we took care of that
#. message in grokdeclarator.
-#: cp/decl.c:7687
+#: cp/decl.c:8059
msgid "storage size of `%D' isn't known"
msgstr "`%D' nin saklama uzunluÄŸu bilinmiyor"
-#: cp/decl.c:7709
+#: cp/decl.c:8081
msgid "storage size of `%D' isn't constant"
msgstr "`%D' nin saklama geniÅŸliÄŸi sabit deÄŸil"
-#: cp/decl.c:7760
+#: cp/decl.c:8137
msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
msgstr "özür: özümleme işlevi static verisi `%#D' nin cevabı yanlış (sizi çoklu kopyalara sürükleyecek)"
-#: cp/decl.c:7761
+#: cp/decl.c:8138
msgid " you can work around this by removing the initializer"
msgstr " bunu ilklendiricileri kaldırarak aşabilirsiniz"
-#: cp/decl.c:7789
+#: cp/decl.c:8164
msgid "uninitialized const `%D'"
msgstr "ilklendirilmemiÅŸ sabit `%D'"
-#: cp/decl.c:7824
+#: cp/decl.c:8249
+msgid "brace-enclosed initializer used to initialize `%T'"
+msgstr "`%T' ilklendirmesinde ilklendirici {} içinde kullanılmış"
+
+#: cp/decl.c:8313
+msgid "initializer for `%T' must be brace-enclosed"
+msgstr "`%T' ilklendiricisi {} içinde olmalı"
+
+#: cp/decl.c:8328
+msgid "ISO C++ does not allow designated initializers"
+msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez"
+
+#: cp/decl.c:8332
+msgid "`%T' has no non-static data member named `%D'"
+msgstr "`%T' `%D' isminde bir statik olmayan üye içermiyor"
+
+#: cp/decl.c:8389
+msgid "too many initializers for `%T'"
+msgstr "`%T' için ilklendirici sayısı çok fazla"
+
+#: cp/decl.c:8426
msgid "variable-sized object `%D' may not be initialized"
msgstr "deÄŸiÅŸken-uzunluklu nesne `%D' ilklendirilmiÅŸ olmayabilir"
-#: cp/decl.c:7835 cp/typeck2.c:201
+#: cp/decl.c:8437
msgid "`%D' has incomplete type"
msgstr "`%s' içi boş türde"
-#: cp/decl.c:7867
+#: cp/decl.c:8486
msgid "`%D' must be initialized by constructor, not by `{...}'"
msgstr "`%D'bir kurucu ile ilklendirilmeli, `{...}' ile deÄŸil"
-#: cp/decl.c:7897
+#: cp/decl.c:8527
msgid "structure `%D' with uninitialized const members"
msgstr "ilklendirmesiz sabit üyelerle `%D' yapısı"
-#: cp/decl.c:7899
+#: cp/decl.c:8529
msgid "structure `%D' with uninitialized reference members"
msgstr "ilklendirmesiz referans üyelerle `%D' yapısı"
-#: cp/decl.c:8166
+#: cp/decl.c:8770
msgid "assignment (not initialization) in declaration"
msgstr "bildirim içinde atama (ilklendirme değil)"
-#: cp/decl.c:8178
+#: cp/decl.c:8785
msgid "cannot initialize `%D' to namespace `%D'"
msgstr "`%D' isim alanı `%D' olarak ilklendirilemez"
-#: cp/decl.c:8235
+#: cp/decl.c:8836
msgid "shadowing previous type declaration of `%#D'"
msgstr "`%#D'in önceki gölgeleyen tür bildirimi"
-#: cp/decl.c:8631
+#: cp/decl.c:8883
+msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+msgstr "`%D' yerel evreli olamaz çünkü POD olmayan %T' türünde"
+
+#: cp/decl.c:8898
+msgid "`%D' is thread-local and so cannot be dynamically initialized"
+msgstr "`%D' yerel evreli olduğundan özdevimli ilklendirilemez"
+
+#: cp/decl.c:9298 cp/init.c:562
msgid "multiple initializations given for `%D'"
msgstr "`%D' için çoklu ilklendiriciler belirtilmiş"
-#: cp/decl.c:8731
+#: cp/decl.c:9390
msgid "invalid catch parameter"
msgstr "yakalama parametresi geçersiz"
-#: cp/decl.c:8849
+#: cp/decl.c:9508
msgid "destructor for alien class `%T' cannot be a member"
msgstr "yabancı sınıf `%T' için yıkıcı, bir üye olamaz"
-#: cp/decl.c:8852
+#: cp/decl.c:9511
msgid "constructor for alien class `%T' cannot be a member"
msgstr "yabancı sınıf `%T' için kurucu, bir üye olamaz"
-#: cp/decl.c:8871
+#: cp/decl.c:9530
msgid "`%D' declared as a `virtual' %s"
msgstr "`%D' bir `virtual' %s olarak bildirilmiÅŸ"
-#: cp/decl.c:8873
+#: cp/decl.c:9532
msgid "`%D' declared as an `inline' %s"
msgstr "`%D' alanı bir `inline' %s olarak bildirilmiş"
-#: cp/decl.c:8875
+#: cp/decl.c:9534
msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
msgstr "%s bildirimindeki `const' ve `volatile' işlev belirteçleri `%D' için geçersiz"
-#: cp/decl.c:8878
+#: cp/decl.c:9537
msgid "`%D' declared as a friend"
msgstr "`%D' bir kardeÅŸ olarak bildirilmiÅŸ"
-#: cp/decl.c:8884
+#: cp/decl.c:9543
msgid "`%D' declared with an exception specification"
msgstr "`%D' bir olağandışılık özelliğiyle bildirilmiş"
-#: cp/decl.c:8959
+#: cp/decl.c:9618
msgid "cannot declare `::main' to be a template"
msgstr "`::main' bir ÅŸablon olarak bildirilemez"
-#: cp/decl.c:8961
+#: cp/decl.c:9620
msgid "cannot declare `::main' to be inline"
msgstr "`::main' inline olarak bildirilemez"
-#: cp/decl.c:8963
+#: cp/decl.c:9622
msgid "cannot declare `::main' to be static"
msgstr "::main' «static» olarak bildirilemez"
-#: cp/decl.c:8966
+#: cp/decl.c:9625
msgid "`main' must return `int'"
msgstr "`main', `int' döndürmeli"
-#: cp/decl.c:8994
+#: cp/decl.c:9653
msgid "non-local function `%#D' uses anonymous type"
msgstr "yerel olmayan işlev `%#D' anonim tür kullanıyor"
-#: cp/decl.c:8997
+#: cp/decl.c:9656
msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
msgstr "`%#D' niteliksiz türe başvurmuyor, bu durumda ilintileme için kullanılmamıştır"
-#: cp/decl.c:9003
+#: cp/decl.c:9662
msgid "non-local function `%#D' uses local type `%T'"
msgstr "yerel olmayan işlev `%#D' yerel tür `%T' kullanıyor"
-#: cp/decl.c:9026
+#: cp/decl.c:9691
msgid "%smember function `%D' cannot have `%T' method qualifier"
msgstr "%smember function `%D', `%T' yöntem niteleyicisini içeremez"
-#: cp/decl.c:9050
+#: cp/decl.c:9715
msgid "defining explicit specialization `%D' in friend declaration"
msgstr "kardeş bildirimlerde doğrudan özelleştirme `%D' tanımlanıyor"
#. Something like `template <class T> friend void f<T>()'.
-#: cp/decl.c:9060
+#: cp/decl.c:9725
msgid "invalid use of template-id `%D' in declaration of primary template"
msgstr "birincil şablon bildiriminde şablon kimliği `%D' kullanımı geçersiz"
-#: cp/decl.c:9088
+#: cp/decl.c:9753
msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde öntanımlı argümalar kullanılamaz"
-#: cp/decl.c:9095
+#: cp/decl.c:9760
msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
msgstr "kardeş şablon özelleştirmesi `%D' bildiriminde `inline' kullanılamaz"
-#: cp/decl.c:9157
+#: cp/decl.c:9822
msgid "definition of implicitly-declared `%D'"
msgstr "dolaylı bildirimli `%D' tanımı"
-#: cp/decl.c:9169 cp/decl2.c:1367
+#: cp/decl.c:9834 cp/decl2.c:785
msgid "no `%#D' member function declared in class `%T'"
msgstr "sınıf `%T' içinde bildirilmiş `%#D' diye bir üye işlev yok"
-#: cp/decl.c:9288
+#: cp/decl.c:9967
msgid "non-local variable `%#D' uses local type `%T'"
msgstr "yerel olmayan değişken`%#D' yerel tür `%T' kullanıyor"
-#: cp/decl.c:9378
+#: cp/decl.c:10064
msgid "invalid in-class initialization of static data member of non-integral type `%T'"
msgstr "tümleyen olmayan `%T türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
-#: cp/decl.c:9387
+#: cp/decl.c:10073
msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
msgstr "ISO C++ sabit olmayan statik üye `%D' nin sınıf içi ilklendirmesine izin vermez"
-#: cp/decl.c:9390
+#: cp/decl.c:10076
msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
msgstr "ISO C++ tümleyen olmayan `%T türündeki üye sabiti `%D' nin ilklendirilmesine izin vermez"
-#: cp/decl.c:9440
+#: cp/decl.c:10126
msgid "size of array `%D' has non-integer type"
msgstr "`%D' dizisinin boyutu tamsayı değil"
-#: cp/decl.c:9442
+#: cp/decl.c:10128
msgid "size of array has non-integer type"
msgstr "dizi boyutu tamsayı değil"
-#: cp/decl.c:9462
+#: cp/decl.c:10148
msgid "size of array `%D' is negative"
msgstr "`%D' dizisinin boyutu negatif"
-#: cp/decl.c:9464
+#: cp/decl.c:10150
msgid "size of array is negative"
msgstr "dizi boyutu negatif"
-#: cp/decl.c:9473
+#: cp/decl.c:10159
msgid "ISO C++ forbids zero-size array `%D'"
msgstr "ISO C++ da sıfır boyutlu dizi `%D' yasaktır"
-#: cp/decl.c:9475
+#: cp/decl.c:10161
msgid "ISO C++ forbids zero-size array"
msgstr "ISO C++ da sıfır boyutlu dizi yasaktır"
-#: cp/decl.c:9482
+#: cp/decl.c:10168
msgid "size of array `%D' is not an integral constant-expression"
msgstr "`%D' dizisinin boyutu bir tümleyen sabitli ifade değil"
-#: cp/decl.c:9485
+#: cp/decl.c:10171
msgid "size of array is not an integral constant-expression"
msgstr "dizi boyutu bir tümleyen sabitli ifade değil"
-#: cp/decl.c:9503
+#: cp/decl.c:10189
msgid "ISO C++ forbids variable-size array `%D'"
msgstr "ISO C++ da değişken boyutlu dizi `%D' yasaktır"
-#: cp/decl.c:9506
+#: cp/decl.c:10192
msgid "ISO C++ forbids variable-size array"
msgstr "ISO C++ da değişken boyutlu dizi yasaktır"
-#: cp/decl.c:9517
+#: cp/decl.c:10203
msgid "overflow in array dimension"
msgstr "dizi boyutunda taÅŸma"
-#: cp/decl.c:9576
+#: cp/decl.c:10262
msgid "declaration of `%D' as %s"
msgstr "`%D' %s olarak bildirilmiÅŸ"
-#: cp/decl.c:9578
+#: cp/decl.c:10264
#, c-format
msgid "creating %s"
msgstr "%s oluÅŸturuluyor"
-#: cp/decl.c:9590
+#: cp/decl.c:10276
msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
msgstr "çok boyutlu dizi olarak `%D' bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır"
-#: cp/decl.c:9593
+#: cp/decl.c:10279
msgid "multidimensional array must have bounds for all dimensions except the first"
msgstr "çok boyutlu dizi bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır"
-#: cp/decl.c:9622
+#: cp/decl.c:10308
msgid "return type specification for constructor invalid"
msgstr "kurucu için dönen değer tür özelliği geçersiz"
-#: cp/decl.c:9629
+#: cp/decl.c:10315
msgid "return type specification for destructor invalid"
msgstr "yıkıcı için dönen değer tür özelliği geçersiz"
-#: cp/decl.c:9635
+#: cp/decl.c:10321
msgid "operator `%T' declared to return `%T'"
-msgstr "işlemimi `%T' dönüş `%T' ye bildirimli"
+msgstr "işleç `%T' dönüş `%T' ye bildirimli"
-#: cp/decl.c:9637
+#: cp/decl.c:10323
msgid "return type specified for `operator %T'"
msgstr "`operator %T' için dönüş türü belirtilmiş"
-#: cp/decl.c:9805
+#: cp/decl.c:10491
msgid "destructors must be member functions"
msgstr "yıkıcılar üye işlevler olmalıdır"
-#: cp/decl.c:9824
+#: cp/decl.c:10510
msgid "destructor `%T' must match class name `%T'"
msgstr "yıkıcı `%T' sınıf ismi `%T' ile eşleşmeli"
-#: cp/decl.c:9874
+#: cp/decl.c:10539
+msgid "variable declaration is not allowed here"
+msgstr "deÄŸiÅŸken birdirimine burada izin verilmez"
+
+#: cp/decl.c:10566
msgid "invalid declarator"
msgstr "bildirim geçersiz"
-#: cp/decl.c:9927
+#: cp/decl.c:10617
msgid "declarator-id missing; using reserved word `%D'"
msgstr "bildirmci kimliği eksik; saklı yedek sözcük `%D' kullanılıyor"
-#: cp/decl.c:9984
+#: cp/decl.c:10674
msgid "type `%T' is not derived from type `%T'"
msgstr "tür `%T' `%T' türünden türetilmemiş"
#. Parse error puts this typespec where
#. a declarator should go.
-#: cp/decl.c:10030
+#: cp/decl.c:10726
msgid "`%T' specified as declarator-id"
msgstr "`%T' bildirici kimliÄŸi olarak belirtilmiÅŸ"
-#: cp/decl.c:10032
+#: cp/decl.c:10728
msgid " perhaps you want `%T' for a constructor"
msgstr " ihtimal ki bir kurucu için `%T' istiyorsunuz"
-#: cp/decl.c:10046
-msgid "`%D' as declarator"
-msgstr "bildirici olarak `%D'"
+#. Sometimes, we see a template-name used as part of a
+#. decl-specifier like in
+#. std::allocator alloc;
+#. Handle that gracefully.
+#: cp/decl.c:10750
+#, c-format
+msgid "invalid use of template-name '%E' in a declarator"
+msgstr "bir bildirim içinde şablon ismi `%E' kullanımı geçersiz"
-#: cp/decl.c:10061
+#: cp/decl.c:10770
msgid "declaration of `%D' as non-function"
msgstr "`%D' nin iÅŸlev olmayan olarak bildirimi"
-#: cp/decl.c:10138
+#: cp/decl.c:10847
msgid "`bool' is now a keyword"
msgstr "bool' şimdi bir anahtar sözcüktür"
-#: cp/decl.c:10140
+#: cp/decl.c:10849
msgid "extraneous `%T' ignored"
msgstr "fazlalık `%T' yoksayıldı"
-#: cp/decl.c:10156 cp/decl.c:10189
+#: cp/decl.c:10865 cp/decl.c:10910
msgid "multiple declarations `%T' and `%T'"
msgstr "`%T' ve `%T' çoklu bildirimleri"
-#: cp/decl.c:10169
+#: cp/decl.c:10878
msgid "ISO C++ does not support `long long'"
msgstr "ISO C++, `long long' desteklemiyor"
-#: cp/decl.c:10262 cp/decl.c:10265
+#: cp/decl.c:10983 cp/decl.c:10986
#, c-format
msgid "ISO C++ forbids declaration of `%s' with no type"
msgstr "ISO C++ da türsüz `%s' bildirimine izin verilmez"
#. The implicit typename extension is deprecated and will be
#. removed. Warn about its use now.
-#: cp/decl.c:10275
+#: cp/decl.c:10996
msgid "`%T' is implicitly a typename"
msgstr "`%T' dolaylı bir tür ismidir"
-#: cp/decl.c:10311
+#: cp/decl.c:11032
#, c-format
msgid "short, signed or unsigned invalid for `%s'"
msgstr "`%s' için 'short', 'signed' veya 'unsigned' geçersiz"
-#: cp/decl.c:10316
+#: cp/decl.c:11037
#, c-format
msgid "long and short specified together for `%s'"
msgstr "`%s' için 'long' ve 'short' birlikte belirtilmiş"
-#: cp/decl.c:10327
+#: cp/decl.c:11048
#, c-format
msgid "signed and unsigned given together for `%s'"
msgstr "`%s' için 'signed' ve 'unsigned' birlikte verilmiş"
-#: cp/decl.c:10436
+#: cp/decl.c:11157
msgid "qualifiers are not allowed on declaration of `operator %T'"
msgstr "`operator %T' bildiriminde niteleyicilere izin verilmez"
-#: cp/decl.c:10458
+#: cp/decl.c:11179
msgid "member `%D' cannot be declared both virtual and static"
msgstr "üye `%D', hem virtual hem de static olarak bildirilemez"
-#: cp/decl.c:10467
+#: cp/decl.c:11188
msgid "`%T::%D' is not a valid declarator"
msgstr "`%T::%D' geçerli bir bildirici değil"
-#: cp/decl.c:10478
+#: cp/decl.c:11200
msgid "storage class specifiers invalid in parameter declarations"
msgstr "saklatım öbeği belirteçleri parametre bildirimi içinde geçersiz"
-#: cp/decl.c:10482
+#: cp/decl.c:11204
msgid "typedef declaration invalid in parameter declaration"
msgstr "«typedef» bildirimi parametre bildirimi içinde geçersiz"
-#: cp/decl.c:10495
+#: cp/decl.c:11217
msgid "virtual outside class declaration"
msgstr "sanal dış öbek bildirimi"
-#: cp/decl.c:10549
+#: cp/decl.c:11278
#, c-format
msgid "storage class specified for %s `%s'"
msgstr "%s için saklatım öbeği `%s' belirtilmiş"
-#: cp/decl.c:10587
+#: cp/decl.c:11325
msgid "storage class specifiers invalid in friend function declarations"
msgstr "saklatım öbeği belirteçleri dost işlev bildirimleri içinde geçersiz"
-#: cp/decl.c:10691
-msgid "size of member `%D' is not constant"
-msgstr "üye `%D' boyutu bir sabit değil"
-
-#: cp/decl.c:10770
+#: cp/decl.c:11495
msgid "destructor cannot be static member function"
msgstr "yıkıcı, statik üye işlevi olamaz"
-#: cp/decl.c:10773
+#: cp/decl.c:11498
#, c-format
msgid "destructors may not be `%s'"
msgstr "yıkıcılar `%s' olmayabilir"
-#: cp/decl.c:10794
+#: cp/decl.c:11519
msgid "constructor cannot be static member function"
msgstr "kurucu, statik üye işlevi olamaz"
-#: cp/decl.c:10797
+#: cp/decl.c:11522
msgid "constructors cannot be declared virtual"
msgstr "kurucular virtual olarak bildirilemez"
-#: cp/decl.c:10802
+#: cp/decl.c:11527
#, c-format
msgid "constructors may not be `%s'"
msgstr "kurucular `%s' olmayabilir"
-#: cp/decl.c:10812
+#: cp/decl.c:11537
msgid "return value type specifier for constructor ignored"
msgstr "kurucu için dönen değer tür belirteci yoksayıldı"
-#: cp/decl.c:10831
+#: cp/decl.c:11556
#, c-format
msgid "can't initialize friend function `%s'"
msgstr "kardeÅŸ iÅŸlev `%s' ilklendirilemiyor"
#. Cannot be both friend and virtual.
-#: cp/decl.c:10835
+#: cp/decl.c:11560
msgid "virtual functions cannot be friends"
msgstr "sanal iÅŸlevler kardeÅŸ iÅŸlev olamaz"
-#: cp/decl.c:10840
+#: cp/decl.c:11565
msgid "friend declaration not in class definition"
msgstr "kardeş bildirimi sınıf bildiriminde değil"
-#: cp/decl.c:10842
+#: cp/decl.c:11567
#, c-format
msgid "can't define friend function `%s' in a local class definition"
msgstr "yerel sınıf tanımı içinde kardeş işlev `%s' tanımlanamaz"
-#: cp/decl.c:10866
+#: cp/decl.c:11591
msgid "destructors may not have parameters"
msgstr "yıkıcılar parametre almaz"
-#: cp/decl.c:10896
-#, c-format
-msgid "cannot declare %s to references"
-msgstr "%s referanslara bildirilemez"
+#: cp/decl.c:11622 cp/decl.c:11629
+msgid "cannot declare reference to `%#T'"
+msgstr "`%#T' ye referans bildirilemez"
-#: cp/decl.c:10907
-msgid "cannot declare pointer to `%#T' member"
-msgstr "`%#T' üyeye gösterge bildirilemez"
+#: cp/decl.c:11623
+msgid "cannot declare pointer to `%#T'"
+msgstr "`%#T' türüne gösterici bildirilemez"
-#: cp/decl.c:10922
-msgid "invalid type: `void &'"
-msgstr "geçersiz tür: `void &'"
+#: cp/decl.c:11628
+msgid "cannot declare pointer to `%#T' member"
+msgstr "`%#T' üyeye gösterici bildirilemez"
-#: cp/decl.c:11084
+#: cp/decl.c:11804
msgid "extra qualification `%T::' on member `%s' ignored"
msgstr "fazladan niteleme `%T::' üye `%s' üzerinde yoksayıldı"
-#: cp/decl.c:11094
+#: cp/decl.c:11814
msgid "cannot declare member function `%T::%s' within `%T'"
msgstr "üye işlev `%T::%s' `%T' içinde bildirilemez"
-#: cp/decl.c:11109
+#: cp/decl.c:11829
msgid "cannot declare member `%T::%s' within `%T'"
msgstr "üye `%T::%s' `%T' içinde bildirilemez"
+#: cp/decl.c:11908
+msgid "data member may not have variably modified type `%T'"
+msgstr "veri üyesi değişkene göre değişen `%T' türünde olamaz"
+
+#: cp/decl.c:11910
+msgid "parameter may not have variably modified type `%T'"
+msgstr "parametre değişkene göre değişen `%T' türünde olamaz"
+
#. [dcl.fct.spec] The explicit specifier shall only be used in
#. declarations of constructors within a class definition.
-#: cp/decl.c:11189
+#: cp/decl.c:11918
msgid "only declarations of constructors can be `explicit'"
msgstr "sadece kurucuların bildirimleri `explicit' olabilir"
-#: cp/decl.c:11197
+#: cp/decl.c:11926
#, c-format
msgid "non-member `%s' cannot be declared `mutable'"
msgstr "üye olmayan `%s', `mutable' olarak bildirilemez"
-#: cp/decl.c:11202
+#: cp/decl.c:11931
#, c-format
msgid "non-object member `%s' cannot be declared `mutable'"
msgstr "nesne olmayan `%s' `mutable' olarak bildirilemez"
-#: cp/decl.c:11208
+#: cp/decl.c:11937
#, c-format
msgid "function `%s' cannot be declared `mutable'"
msgstr "iÅŸlev `%s' `mutable' olarak bildirilemez"
-#: cp/decl.c:11213
+#: cp/decl.c:11942
#, c-format
msgid "static `%s' cannot be declared `mutable'"
msgstr "static `%s' `mutable' olarak bildirilemez"
-#: cp/decl.c:11218
+#: cp/decl.c:11947
#, c-format
msgid "const `%s' cannot be declared `mutable'"
msgstr "const `%s' `mutable' olarak bildirilemez"
-#: cp/decl.c:11231
+#: cp/decl.c:11960
msgid "template-id `%D' used as a declarator"
msgstr "şablon kimliği `%D' bir bildirici olarak kullanılmış"
-#: cp/decl.c:11252
+#: cp/decl.c:11981
msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
msgstr "ISO C++ zarflayan sınıf ile aynı isimde yuvalanmış tür `%D' ye izin vermez"
-#: cp/decl.c:11299
+#: cp/decl.c:12030
msgid "typedef name may not be class-qualified"
msgstr "typedef ismi sınıf nitelemeli olmayabilir"
-#: cp/decl.c:11307
+#: cp/decl.c:12038
msgid "invalid type qualifier for non-member function type"
msgstr "üyesiz işlev türleri için tür niteleyici geçersiz"
-#: cp/decl.c:11323
-msgid "typedef declaration includes an initializer"
-msgstr "typedef bildirimi bir ilklendirici içeriyor"
-
-#: cp/decl.c:11373
+#: cp/decl.c:12101
msgid "type qualifiers specified for friend class declaration"
msgstr "kardeş sınıf bildirimi için tür niteleyiciler belirtilmiş"
-#: cp/decl.c:11378
+#: cp/decl.c:12106
msgid "`inline' specified for friend class declaration"
msgstr "hardeş sınıf bildirimi için `inline' belirtilmiş"
-#: cp/decl.c:11388
+#: cp/decl.c:12114
msgid "template parameters cannot be friends"
msgstr "ÅŸablon parametreleri kardeÅŸler olamaz"
-#: cp/decl.c:11390
-msgid "friend declaration requires class-key, i.e. `friend class %T::%T'"
-msgstr "kardeş bildirimi sınıf anahtarı gerektirir, `friend class %T::%T' gibi"
+#: cp/decl.c:12116
+msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+msgstr "friend bildirimi sınıf anahtarı gerektirir, `friend class %T::%D' gibi"
-#: cp/decl.c:11395
+#: cp/decl.c:12120
msgid "friend declaration requires class-key, i.e. `friend %#T'"
msgstr "kardeş bildirimi `friend %#T' gibi bir sınıf anahtarı gerektirir"
-#: cp/decl.c:11409
+#: cp/decl.c:12134
msgid "trying to make class `%T' a friend of global scope"
msgstr "sınıf `%T' genel bağlamın kardeşi yapılmaya çalışılıyor"
-#: cp/decl.c:11420
+#: cp/decl.c:12145
msgid "invalid qualifiers on non-member function type"
msgstr "üyesiz işlev türünde geçersiz niteleyici"
-#: cp/decl.c:11439
+#: cp/decl.c:12164
msgid "abstract declarator `%T' used as declaration"
msgstr "mutlak bildirimci `%T' bildirim olarak kullanılmış"
-#: cp/decl.c:11451
+#: cp/decl.c:12176
msgid "unnamed variable or field declared void"
msgstr "adsız değişken ya da alan void olarak bildirilmiş"
-#: cp/decl.c:11460
+#: cp/decl.c:12185
msgid "variable or field declared void"
msgstr "deÄŸiÅŸken ya da alan void olarak bildirilmiÅŸ"
-#: cp/decl.c:11470
+#: cp/decl.c:12195
msgid "cannot use `::' in parameter declaration"
msgstr "parametre bildiriminde `::' kullanılamaz"
#. Something like struct S { int N::j; };
-#: cp/decl.c:11516
+#: cp/decl.c:12234
msgid "invalid use of `::'"
msgstr "`::' kullanımı geçersiz"
-#: cp/decl.c:11528
+#: cp/decl.c:12246
msgid "function `%D' cannot be declared friend"
msgstr "iÅŸlev `%D' kardeÅŸ olarak bildirilemez"
-#: cp/decl.c:11540
+#: cp/decl.c:12258
msgid "can't make `%D' into a method -- not in a class"
msgstr "bir yöntem içinde `%D' yapılamaz -- sınıf içinde değil"
-#: cp/decl.c:11549
+#: cp/decl.c:12267
msgid "function `%D' declared virtual inside a union"
msgstr "işlev `%D' bir birleşik yapı içinde virtual olarak bildirilmiş"
-#: cp/decl.c:11561
+#: cp/decl.c:12279
msgid "`%D' cannot be declared virtual, since it is always static"
msgstr "`%D' daima static olduÄŸundan sanal bildirilemez"
-#: cp/decl.c:11634
+#: cp/decl.c:12355
msgid "field `%D' has incomplete type"
msgstr "`%D' alanı içi boş türde"
-#: cp/decl.c:11636
+#: cp/decl.c:12357
msgid "name `%T' has incomplete type"
msgstr "isim `%T' içi boş türde"
-#: cp/decl.c:11645
+#: cp/decl.c:12366
msgid " in instantiation of template `%T'"
msgstr " şablon `%T' gerçeklemesinde"
-#: cp/decl.c:11655
+#: cp/decl.c:12376
#, c-format
msgid "`%s' is neither function nor member function; cannot be declared friend"
msgstr "`%s' ne işlev ne de üye işlev; kardeş olarak bildirilemez"
-#: cp/decl.c:11666
+#: cp/decl.c:12387
msgid "member functions are implicitly friends of their class"
msgstr "üye işlevler sınıflarının örtük kardeşleridir"
@@ -14817,94 +15582,99 @@ msgstr "üye işlevler sınıflarının örtük kardeşleridir"
#. the rest of the compiler does not correctly
#. handle the initialization unless the member is
#. static so we make it static below.
-#: cp/decl.c:11713
+#: cp/decl.c:12434
msgid "ISO C++ forbids initialization of member `%D'"
msgstr "ISO C++ üye `%D' ilklendirmesine izin vermez"
-#: cp/decl.c:11715
+#: cp/decl.c:12436
msgid "making `%D' static"
msgstr "`%D' static yapılıyor"
-#: cp/decl.c:11739
+#: cp/decl.c:12460
msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
msgstr "ISO C++ zarflayan sınıf ile aynı isimde statik veri üyesi `%D' ye izin vermez"
-#: cp/decl.c:11780
+#: cp/decl.c:12501
#, c-format
msgid "storage class `auto' invalid for function `%s'"
msgstr "saklama sınıfı `auto' `%s' işlevi için geçersiz"
-#: cp/decl.c:11782
+#: cp/decl.c:12503
#, c-format
msgid "storage class `register' invalid for function `%s'"
msgstr "saklama sınıfı `register' `%s' işlevi için geçersiz"
-#: cp/decl.c:11793
+#: cp/decl.c:12505
+#, c-format
+msgid "storage class `__thread' invalid for function `%s'"
+msgstr "saklama sınıfı `__thread' `%s' işlevi için geçersiz"
+
+#: cp/decl.c:12516
#, c-format
msgid "storage class `static' invalid for function `%s' declared out of global scope"
msgstr "saklama sınıfı `static' genel kapsam dışı bildirilmiş işlev `%s' için geçersiz"
-#: cp/decl.c:11795
+#: cp/decl.c:12518
#, c-format
msgid "storage class `inline' invalid for function `%s' declared out of global scope"
msgstr "`inline' saklama sınıfı, genel kapsam dışında bildirilen `%s' işlevi için geçersiz"
-#: cp/decl.c:11802
+#: cp/decl.c:12525
#, c-format
msgid "virtual non-class function `%s'"
msgstr "sanal sınıf olmayan işlev `%s'"
-#: cp/decl.c:11831
+#: cp/decl.c:12554
msgid "cannot declare member function `%D' to have static linkage"
msgstr "üye işlev `%D' static ilintilemeli olarak bildirilemez"
#. FIXME need arm citation
-#: cp/decl.c:11837
+#: cp/decl.c:12560
msgid "cannot declare static function inside another function"
msgstr "statik işlev diğer bir işlevin içinde bildirilemez"
-#: cp/decl.c:11865
+#: cp/decl.c:12588
msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
msgstr "`static' bir statik veri üyesini tanımlarken (bildirime zıt olarak) kullanılamayabilir"
-#: cp/decl.c:11871
+#: cp/decl.c:12594
msgid "static member `%D' declared `register'"
msgstr "statik üye `%D' `register' olarak bildirilmiş"
-#: cp/decl.c:11876
+#: cp/decl.c:12599
msgid "cannot explicitly declare member `%#D' to have extern linkage"
-msgstr "üye `%#D' dış ilintilemeye sahip olacak şekilde doğrudan bildirilemez"
+msgstr "üye `%#D' extern ilintilemeye sahip olacak şekilde doğrudan bildirilemez"
-#: cp/decl.c:12048
+#: cp/decl.c:12774
msgid "default argument for `%#D' has type `%T'"
msgstr "`%#D' için öntanımlı argüman `%T' türünde"
-#: cp/decl.c:12051
+#: cp/decl.c:12777
msgid "default argument for parameter of type `%T' has type `%T'"
msgstr "`%T' türündeki parametrenin öntanımlı argümanı `%T' türünde"
-#: cp/decl.c:12068
+#: cp/decl.c:12794
msgid "default argument `%E' uses local variable `%D'"
msgstr "öntanımlı argüman `%E' yerel değişken `%D' yi kullanıyor"
-#: cp/decl.c:12113
+#: cp/decl.c:12839
#, c-format
msgid "invalid string constant `%E'"
msgstr "geçersiz dizge sabit `%E'"
-#: cp/decl.c:12115
+#: cp/decl.c:12841
msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
msgstr "parametre listesindeki tamsayı sabit geçersiz, parametre ismi vermeyi unuttunuz mu?"
-#: cp/decl.c:12153
+#: cp/decl.c:12879
msgid "parameter `%D' invalidly declared method type"
msgstr "parametre `%D' geçersiz olarak yöntem türünde bildirilmiş"
-#: cp/decl.c:12159
+#: cp/decl.c:12885
msgid "parameter `%D' invalidly declared offset type"
msgstr "parametre `%D' geçersiz olarak göreli konum türünde bildirilmiş"
-#: cp/decl.c:12183
+#: cp/decl.c:12909
msgid "parameter `%D' includes %s to array of unknown bound `%T'"
msgstr "parametre `%D' bilinmeyen `%T' sınırlı diziye %s içeriyor"
@@ -14923,694 +15693,679 @@ msgstr "parametre `%D' bilinmeyen `%T' sınırlı diziye %s içeriyor"
#. or implicitly defined), there's no need to worry about their
#. existence. Theoretically, they should never even be
#. instantiated, but that's hard to forestall.
-#: cp/decl.c:12350
+#: cp/decl.c:13071
msgid "invalid constructor; you probably meant `%T (const %T&)'"
msgstr "kurucu geçersiz; `%T (const %T&)' anlamında kullandınız galiba"
-#: cp/decl.c:12501
+#: cp/decl.c:13222
msgid "`%D' must be a nonstatic member function"
msgstr "`%D' static olmayan bir üye işlev olmalıdır"
-#: cp/decl.c:12507
+#: cp/decl.c:13228
msgid "`%D' must be either a non-static member function or a non-member function"
msgstr "`%D' ya bir statik olmayan işlev ya da üye olmayan işlev olmalıdır"
-#: cp/decl.c:12524
+#: cp/decl.c:13245
msgid "`%D' must have an argument of class or enumerated type"
msgstr "`%D' bir sınıf argümanına sahip olmalı ya da enum türünde olmalı"
-#: cp/decl.c:12556
+#: cp/decl.c:13277
#, c-format
msgid "conversion to %s%s will never use a type conversion operator"
-msgstr "%s%s e dönüşüm asla bir tür dönüşüm işlemimi kullanmayacak"
+msgstr "%s%s e dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
#. 13.4.0.3
-#: cp/decl.c:12563
+#: cp/decl.c:13284
msgid "ISO C++ prohibits overloading operator ?:"
-msgstr "ISO C++ işlemimi ?: nın aşırı yüklenmesini yasaklar"
+msgstr "ISO C++ işleci ?: nın aşırı yüklenmesini yasaklar"
-#: cp/decl.c:12613
+#: cp/decl.c:13334
msgid "postfix `%D' must take `int' as its argument"
msgstr "sonek `%D' argüman olarak `int' almalı"
-#: cp/decl.c:12617
+#: cp/decl.c:13338
msgid "postfix `%D' must take `int' as its second argument"
msgstr "sonek `%D' ikinci argümanı olarak `int' almalı"
-#: cp/decl.c:12624
+#: cp/decl.c:13345
msgid "`%D' must take either zero or one argument"
msgstr "`%D' ya hiç argüman almamalı ya da bir argüman almalı"
-#: cp/decl.c:12626
+#: cp/decl.c:13347
msgid "`%D' must take either one or two arguments"
msgstr "`%D' ya bir ya da iki argüman almalı"
-#: cp/decl.c:12647
+#: cp/decl.c:13368
msgid "prefix `%D' should return `%T'"
msgstr "önek `%D' `%T' döndürmeli"
-#: cp/decl.c:12653
+#: cp/decl.c:13374
msgid "postfix `%D' should return `%T'"
msgstr "sonek `%D' `%T' ile dönmeli"
-#: cp/decl.c:12662
+#: cp/decl.c:13383
msgid "`%D' must take `void'"
msgstr "`%D' `void' almalı"
-#: cp/decl.c:12664 cp/decl.c:12672
+#: cp/decl.c:13385 cp/decl.c:13393
msgid "`%D' must take exactly one argument"
msgstr "`%D' kesinlikle bir argüman almalı"
-#: cp/decl.c:12674
+#: cp/decl.c:13395
msgid "`%D' must take exactly two arguments"
msgstr "`%D' kesinlikle iki argüman almalı"
-#: cp/decl.c:12682
+#: cp/decl.c:13403
msgid "user-defined `%D' always evaluates both arguments"
msgstr "kullanıcı tanımlı `%D' daima her iki argümanıyla birlikte değerlendirilir"
-#: cp/decl.c:12694
+#: cp/decl.c:13417
msgid "`%D' should return by value"
msgstr "`%D' değeriyle döndürülmeli"
-#: cp/decl.c:12706 cp/decl.c:12709
+#: cp/decl.c:13429 cp/decl.c:13432
msgid "`%D' cannot have default arguments"
msgstr "`%D' öntanımlı argümanlara sahip olamaz"
-#: cp/decl.c:12800
-msgid "`%s %T' declares a new type at namespace scope"
-msgstr "isim alanı bağlamında `%s %T' bir yeni tür bildiriyor"
-
-#: cp/decl.c:12803
-msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
-msgstr " bağımlı taban sınıflardaki isimler nitelemesiz isim aramasında görünür değil - kalıt türe başvurması için `%s %T::%T' denebilir"
-
-#: cp/decl.c:12841
+#: cp/decl.c:13475
msgid "using typedef-name `%D' after `%s'"
msgstr "typedef-ismi `%D' `%s' den sonra kullanılıyor"
-#: cp/decl.c:12846
+#: cp/decl.c:13481
msgid "using template type parameter `%T' after `%s'"
msgstr "`%s' den sonra şablon tür parametresi `%T' kullanımı"
-#: cp/decl.c:12926
+#: cp/decl.c:13542
+msgid "`%s %T' declares a new type at namespace scope"
+msgstr "isim alanı bağlamında `%s %T' bir yeni tür bildiriyor"
+
+#: cp/decl.c:13545
+msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+msgstr " bağımlı taban sınıflardaki isimler nitelemesiz isim aramasında görünür değil - kalıt türe başvurması için `%s %T::%T' denebilir"
+
+#: cp/decl.c:13663
msgid "use of enum `%#D' without previous declaration"
msgstr "önceden bildirilmeksizin enum `%#D' kullanımı"
-#: cp/decl.c:13024
+#: cp/decl.c:13749
msgid "derived union `%T' invalid"
msgstr "türetilmiş union `%T' geçersiz"
-#: cp/decl.c:13068
+#: cp/decl.c:13795
msgid "base type `%T' fails to be a struct or class type"
msgstr "taban tür `%T' bir yapı veya sınıf türü olarak hatalı"
-#: cp/decl.c:13078
+#: cp/decl.c:13805
msgid "base class `%T' has incomplete type"
msgstr "taban sınıf `%T' içi boş türde"
-#: cp/decl.c:13086
+#: cp/decl.c:13813
msgid "recursive type `%T' undefined"
msgstr "özyinelemeli tür `%T' tanımsız"
-#: cp/decl.c:13088
+#: cp/decl.c:13815
msgid "duplicate base type `%T' invalid"
msgstr "yinelenmiş taban türü `%T' geçersiz"
-#: cp/decl.c:13199
+#: cp/decl.c:13926
msgid "multiple definition of `%#T'"
msgstr "`%#T' çoklu tanımları"
-#: cp/decl.c:13200
+#: cp/decl.c:13927
msgid "previous definition here"
msgstr "önceden burada tanımlı"
-#: cp/decl.c:13371
+#: cp/decl.c:14030
+msgid "no integral type can represent all of the enumerator values for `%T'"
+msgstr "`%T' için tüm sembolik sabit değerlerini temsil edebilen bir tümleyen tür yok"
+
+#: cp/decl.c:14106
msgid "enumerator value for `%D' not integer constant"
msgstr "`%D' için sembolik sabitin değeri tamsayı sabit değil"
-#: cp/decl.c:13391
+#: cp/decl.c:14126
msgid "overflow in enumeration values at `%D'"
msgstr "`%D' de sembolik sabit listesi deÄŸerlerinde taÅŸma"
-#: cp/decl.c:13477
+#: cp/decl.c:14195
msgid "return type `%#T' is incomplete"
msgstr "dönüş türü `%#T' bir içi boş tür"
-#: cp/decl.c:13593
+#: cp/decl.c:14309
msgid "semicolon missing after declaration of `%#T'"
msgstr "`%T' bildiriminden sonra ; yok"
-#: cp/decl.c:13614
+#: cp/decl.c:14330
msgid "return type for `main' changed to `int'"
msgstr "`main' için dönen tür `int' olarak değişti"
-#: cp/decl.c:13645
+#: cp/decl.c:14361
msgid "`%D' implicitly declared before its definition"
msgstr "`%D' tanımından önce dolaylı olarak bildirilmiş"
-#: cp/decl.c:13667 cp/typeck.c:6530
+#: cp/decl.c:14383 cp/typeck.c:6314
msgid "`operator=' should return a reference to `*this'"
msgstr "`operator=' `*this'e bir referans döndürmeli"
-#: cp/decl.c:13931
+#: cp/decl.c:14643
msgid "parameter `%D' declared void"
msgstr "parametre `%D' void olarak bildirilmiÅŸ"
-#: cp/decl.c:14408
+#: cp/decl.c:15130
msgid "`%D' is already defined in class `%T'"
msgstr "`%D' zaten sınıf `%T' içinde tanımlı"
-#: cp/decl.c:14625
+#: cp/decl.c:15348
msgid "static member function `%#D' declared with type qualifiers"
msgstr "statik üye işlev `%#D' tür niteleyicilerle bildirilmiş"
-#: cp/decl2.c:529
-#, c-format
-msgid "-f%s is no longer supported"
-msgstr "-f%s artık desteklenmiyor"
-
-#: cp/decl2.c:535
-msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
-msgstr "-fhandle-exceptions'ın -fexceptions olarak ismi değiştirilmişti (ve şimdi öntanımlı olarak böyle)"
-
-#: cp/decl2.c:561
-msgid "-fname-mangling-version is no longer supported"
-msgstr "-fname-mangling-version artık desteklenmiyor"
-
-#: cp/decl2.c:624
-msgid "-Wno-strict-prototypes is not supported in C++"
-msgstr "C++ da -Wno-strict-prototypes desteklenmiyor"
-
-#: cp/decl2.c:761
+#: cp/decl2.c:153
#, c-format
msgid "duplicate type qualifiers in %s declaration"
msgstr "%s bildirimde yinelenmiş tür niteleyiciler"
-#: cp/decl2.c:800
+#: cp/decl2.c:192
msgid "template `%#D' instantiated in file without #pragma interface"
msgstr "şablon `%#D' dosya içinde #pragma arabirimsiz gerçeklendi"
-#: cp/decl2.c:806
+#: cp/decl2.c:198
msgid "template `%#D' defined in file without #pragma interface"
msgstr "şablon `%#D' dosya içinde #pragma arabirimsiz tanımlandı"
-#: cp/decl2.c:963
+#: cp/decl2.c:365
msgid "name missing for member function"
msgstr "üye işlev için isim eksik"
#. Something has gone very wrong. Assume we are mistakenly reducing
#. an expression instead of a declaration.
-#: cp/decl2.c:1026
+#: cp/decl2.c:428
msgid "parser may be lost: is there a '{' missing somewhere?"
msgstr "ayrıştırıcı kayıp olabilir: bir yerlerde kayıp '{' var mı?"
-#: cp/decl2.c:1057 cp/decl2.c:1071
+#: cp/decl2.c:459 cp/decl2.c:473
msgid "ambiguous conversion for array subscript"
msgstr "dizi altindisi için dönüşüm belirsiz"
-#: cp/decl2.c:1065
+#: cp/decl2.c:467
msgid "invalid types `%T[%T]' for array subscript"
msgstr "dizi altindisi için geçersiz türler `%T[%T]'"
-#: cp/decl2.c:1113
+#: cp/decl2.c:515
msgid "type `%#T' argument given to `delete', expected pointer"
-msgstr "tür `%#T' argümanı `delete'e verilmiş, gösterge umuluyordu"
+msgstr "`%#T' türünde argüman `silinecek' olarak belirtilmiş, gösterici umuluyordu"
-#: cp/decl2.c:1121
+#: cp/decl2.c:523
msgid "anachronistic use of array size in vector delete"
msgstr "vektör silmede dizi boyutunun zamansız kullanımı"
-#: cp/decl2.c:1131
+#: cp/decl2.c:533
msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
-msgstr "bir işlev silinemez. Sadece nesnelerin göstergeleri `silinecek' geçerli argümanlardır."
+msgstr "bir işlev silinemez. Sadece nesnelerin göstericileri `silinecek' geçerli argümanlardır."
-#: cp/decl2.c:1138
+#: cp/decl2.c:540
msgid "deleting `%T' is undefined"
msgstr "`%T' silinmesi tanımsız"
-#: cp/decl2.c:1146
+#: cp/decl2.c:548
msgid "deleting array `%#D'"
msgstr "dizi `%#D' siliniyor"
#. 14.5.2.2 [temp.mem]
#.
#. A local class shall not have member templates.
-#: cp/decl2.c:1180
+#: cp/decl2.c:582
msgid "invalid declaration of member template `%#D' in local class"
msgstr "yerel sınıf içinde üye şablonu `%#D' nin bildirimi geçersiz"
-#: cp/decl2.c:1189
+#: cp/decl2.c:591
msgid "invalid use of `virtual' in template declaration of `%#D'"
msgstr "`%#D' şablon bildiriminde geçersiz `virtual' kullanımı"
-#: cp/decl2.c:1199 cp/pt.c:2562
+#: cp/decl2.c:601 cp/pt.c:2745
msgid "template declaration of `%#D'"
msgstr "`%#D' ÅŸablon bildirimi"
-#: cp/decl2.c:1249
+#: cp/decl2.c:651
msgid "Java method '%D' has non-Java return type `%T'"
msgstr "Java yöntemi '%D' Java olmayan dönen tür `%T' içeriyor"
-#: cp/decl2.c:1258
+#: cp/decl2.c:660
msgid "Java method '%D' has non-Java parameter type `%T'"
msgstr "Java yöntemi '%D' Java olmayan parametre türü `%T' içeriyor"
-#: cp/decl2.c:1354
+#: cp/decl2.c:746
msgid "prototype for `%#D' does not match any in class `%T'"
msgstr "`%#D' prototipi sınıf `%T' içindeki hiçbir şeyle eşleşmiyor"
-#: cp/decl2.c:1356
-msgid "candidate%s: %+#D"
-msgstr "aday%s: %+#D"
-
-#: cp/decl2.c:1359
-msgid " %#D"
-msgstr " %#D"
-
-#: cp/decl2.c:1411
+#: cp/decl2.c:828
msgid "local class `%#T' shall not have static data member `%#D'"
msgstr "yerel sınıf `%#T static veri üyesi `%#D' içermemeli"
-#: cp/decl2.c:1419
+#: cp/decl2.c:836
msgid "initializer invalid for static member with constructor"
msgstr "kuruculu statik üye için ilklendirici geçersiz"
-#: cp/decl2.c:1422
+#: cp/decl2.c:839
msgid "(an out of class initialization is required)"
msgstr "(bir sınıf dışı ilklendirme gerekli)"
-#: cp/decl2.c:1481
+#: cp/decl2.c:898
msgid "invalid data member initialization"
msgstr "geçersiz veri üyesi ilklendirmesi"
-#: cp/decl2.c:1484
+#: cp/decl2.c:901
msgid "(use `=' to initialize static data members)"
msgstr "(statik veri üyelerini ilklendirmek için `=' kullanın)"
-#: cp/decl2.c:1524
+#: cp/decl2.c:947
msgid "member `%D' conflicts with virtual function table field name"
msgstr "üye `%D' sanal işlev tablosu alan ismi ile çelişiyor"
-#: cp/decl2.c:1544
+#: cp/decl2.c:967
msgid "`%D' is already defined in `%T'"
msgstr "`%D' zaten `%T' içinde tanımlı"
-#: cp/decl2.c:1595
+#: cp/decl2.c:1014
msgid "field initializer is not constant"
msgstr "alan ilklendirici sabit deÄŸil"
-#: cp/decl2.c:1618
+#: cp/decl2.c:1038
msgid "`asm' specifiers are not permitted on non-static data members"
msgstr "`asm' belirteçlerinde statik olmayan veri üyeleri kullanılamaz"
-#: cp/decl2.c:1670
+#: cp/decl2.c:1090
msgid "cannot declare `%D' to be a bit-field type"
msgstr "`%D' bir bit alanı türü olarak bildirilemez"
-#: cp/decl2.c:1680
+#: cp/decl2.c:1100
msgid "cannot declare bit-field `%D' with function type"
msgstr "bir alanı `%D' işlev türle bildirilemez"
-#: cp/decl2.c:1687
+#: cp/decl2.c:1107
msgid "`%D' is already defined in the class %T"
msgstr "`%D' zaten sınıf %T içinde tanımlı"
-#: cp/decl2.c:1694
+#: cp/decl2.c:1114
msgid "static member `%D' cannot be a bit-field"
msgstr "static üye `%D' bir bit alanı olarak bildirilemez"
-#: cp/decl2.c:1763
+#: cp/decl2.c:1201
msgid "initializer specified for non-member function `%D'"
msgstr "üye olmayan işlev `%D' için ilklendirici belirtilmiş"
-#: cp/decl2.c:1767
+#: cp/decl2.c:1205
msgid "invalid initializer for virtual method `%D'"
msgstr "sanal yöntem `%D' için geçersiz ilklendirici"
-#: cp/decl2.c:1871
+#: cp/decl2.c:1319
msgid "anonymous struct not inside named type"
msgstr "anonim yapı isimli türün içinde değil"
-#: cp/decl2.c:1967
+#: cp/decl2.c:1415
msgid "namespace-scope anonymous aggregates must be static"
msgstr "isim alanı bağlamındaki anonim kümeler static olmalıdır"
-#: cp/decl2.c:1977
+#: cp/decl2.c:1428
msgid "anonymous aggregate with no members"
msgstr "üyesiz anonim küme"
-#: cp/decl2.c:2044
+#: cp/decl2.c:1497
msgid "`operator new' must return type `%T'"
msgstr "`operator new' `%T' türünde dönmeli"
-#: cp/decl2.c:2052
+#: cp/decl2.c:1505
msgid "`operator new' takes type `size_t' (`%T') as first parameter"
msgstr "`operator new' ilk parametreyi `size_t' (`%T') türünde alır"
-#: cp/decl2.c:2079
+#: cp/decl2.c:1532
msgid "`operator delete' must return type `%T'"
msgstr "`operator delete' `%T' türünde dönmeli"
-#: cp/decl2.c:2087
+#: cp/decl2.c:1540
msgid "`operator delete' takes type `%T' as first parameter"
msgstr "`operator delete' ilk parametreyi `%T'` türünde alır"
#. Overflow occurred. That means there are at least 4 billion
#. initialization functions.
-#: cp/decl2.c:2828
+#: cp/decl2.c:2282
msgid "too many initialization functions required"
msgstr "çok fazla ilklendirme işlevi gerekli"
-#: cp/decl2.c:3639
+#: cp/decl2.c:3006
+msgid "inline function `%D' used but never defined"
+msgstr "özümlenen işlev `%D' tanımlanmadan kullanılmış"
+
+#: cp/decl2.c:3135
msgid "use of old-style cast"
-msgstr "eski tarz çevirim kullanımı"
+msgstr "eski tarz tür dönüşümü"
-#: cp/decl2.c:4220
+#: cp/decl2.c:3860
msgid "use of `%D' is ambiguous"
msgstr "`%D' kullanımı belirsiz"
-#: cp/decl2.c:4221
+#: cp/decl2.c:3861
msgid " first declared as `%#D' here"
msgstr " ilk defa burada `%#D' olarak bildirilmiÅŸ"
-#: cp/decl2.c:4224
+#: cp/decl2.c:3864
msgid " also declared as `%#D' here"
msgstr " ayrıca burada da `%#D' olarak bildirilmiş"
-#: cp/decl2.c:4239
+#: cp/decl2.c:3879
msgid "`%D' denotes an ambiguous type"
msgstr "`%D' bir belirsiz tür gösteriyor"
-#: cp/decl2.c:4240
+#: cp/decl2.c:3880
msgid " first type here"
msgstr " ilk tür burada"
-#: cp/decl2.c:4241
+#: cp/decl2.c:3881
msgid " other type here"
msgstr " diğer tür burada"
-#: cp/decl2.c:4338
+#: cp/decl2.c:3982
msgid "declaration of `%D' not in a namespace surrounding `%D'"
msgstr "`%D' bildirimi `%D' yi kuşatan isim alanının içinde değil"
-#: cp/decl2.c:4372
+#: cp/decl2.c:4016
msgid "`%D' should have been declared inside `%D'"
msgstr "`%D' zaten `%D' içinde bildirilmişti"
-#: cp/decl2.c:4506
+#: cp/decl2.c:4152
msgid "`%D' is not a function,"
msgstr "`%D' bir iÅŸlev deÄŸil,"
-#: cp/decl2.c:4507
+#: cp/decl2.c:4153
msgid " conflict with `%D'"
msgstr " `%D' ile çelişiyor"
#. The parser did not find it, so it's not there.
-#: cp/decl2.c:4821
+#: cp/decl2.c:4473
msgid "unknown namespace `%D'"
msgstr "bilinmeyen isim alanı `%D'"
-#: cp/decl2.c:4855 cp/decl2.c:5125
+#: cp/decl2.c:4507 cp/decl2.c:4794
msgid "`%T' is not a namespace"
msgstr "`%T' bir isim alanı değil"
-#: cp/decl2.c:4857
+#: cp/decl2.c:4509
msgid "`%D' is not a namespace"
msgstr "`%D' bir isim alanı değil"
-#: cp/decl2.c:4866
+#: cp/decl2.c:4518
msgid "a using-declaration cannot specify a template-id. Try `using %D'"
msgstr "bir using bildirimi bir ÅŸablon kimliÄŸi belirtemez. `using %D' deneyin"
-#: cp/decl2.c:4880
+#: cp/decl2.c:4532
msgid "namespace `%D' not allowed in using-declaration"
msgstr "using bildiriminde isim alanı `%D' kullanılamaz"
-#: cp/decl2.c:4909
+#: cp/decl2.c:4561
msgid "`%D' not declared"
msgstr "`%D' bildirilmemiÅŸ"
-#: cp/decl2.c:4960
+#. If the OLD_FN was really declared, the
+#. declarations don't match.
+#: cp/decl2.c:4573 cp/decl2.c:4615 cp/decl2.c:4640
msgid "`%D' is already declared in this scope"
msgstr "`%D' zaten bu baÄŸlamda bildirilmiÅŸ"
-#: cp/decl2.c:4987
+#: cp/decl2.c:4646
msgid "using declaration `%D' introduced ambiguous type `%T'"
msgstr "using bildirimi `%D' belirsiz tür `%T' ye dahil edildi"
-#: cp/decl2.c:5078
+#: cp/decl2.c:4740
msgid "using-declaration for non-member at class scope"
msgstr "sınıf bağlamında üye olmayan için using bildirimi"
-#: cp/decl2.c:5084
+#: cp/decl2.c:4746
msgid "using-declaration for destructor"
msgstr "yıkıcı için using bildirimi"
-#: cp/decl2.c:5090
+#: cp/decl2.c:4752
msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
msgstr "bir using bildirimi bir ÅŸablon kimliÄŸi belirtemez. `using %T::%D' deneyin"
-#: cp/decl2.c:5119
+#: cp/decl2.c:4788
msgid "namespace `%T' undeclared"
msgstr "isim alanı `%T' bildirimsiz"
-#: cp/decl2.c:5148
+#: cp/decl2.c:4817
msgid "default argument missing for parameter %P of `%+#D'"
msgstr "parametre %P (`%+#D' nin) için öntanımlı argüman eksik"
-#: cp/decl2.c:5238
+#: cp/decl2.c:4941
msgid "extra qualification `%T::' on member `%D' ignored"
msgstr "fazladan `%T::' nitelemesi üye `%D' üstünde yoksayıldı"
-#: cp/decl2.c:5242
+#: cp/decl2.c:4945
msgid "`%T' does not have a class or union named `%D'"
msgstr "`%T' `%D' isminde bir sınıf ya da birleşik yapı içermiyor"
-#: cp/decl2.c:5255
+#: cp/decl2.c:4963
msgid "`%T' is not a class or union type"
msgstr "`%T' bir sınıf ya da birleşik yapı değil"
+#: cp/decl2.c:4977
+msgid "template argument is required for `%T'"
+msgstr "şablon argüman `%#T' için gereklidir"
+
+#: cp/decl2.c:4995
+msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+msgstr "`%D' bildirimi `%D' içinde ve bu `%D' yi kapsamıyor"
+
#: cp/error.c:35
#, c-format
msgid "`%s' not supported by %s"
msgstr "`%s', %s tarafından desteklenmiyor"
-#: cp/error.c:577
+#: cp/error.c:571
#, c-format
msgid "<anonymous %s>"
msgstr "<anonim %s>"
-#: cp/error.c:814
+#: cp/error.c:810
#, c-format
msgid "(static %s for %s)"
msgstr "(%2$s için statik %1$s)"
-#: cp/error.c:2438
+#: cp/error.c:1503
+#, c-format
+msgid "\\x%x"
+msgstr "\\x%x"
+
+#: cp/error.c:2473
#, c-format
msgid "In %s `%s':"
msgstr "%s `%s' içinde:"
-#: cp/error.c:2493
+#: cp/error.c:2530
#, c-format
msgid "%s: In instantiation of `%s':\n"
msgstr "%s: `%s' gerçeklemesi içinde:\n"
-#: cp/error.c:2517
+#: cp/error.c:2554
#, c-format
msgid "%s:%d: instantiated from `%s'\n"
msgstr "%s:%d: `%s' den gerçeklenmiş\n"
-#: cp/error.c:2522
+#: cp/error.c:2559
#, c-format
msgid "%s:%d: instantiated from here\n"
msgstr "%s:%d: buradan gerçeklenmiş\n"
#. damn ICE suppression
-#: cp/error.c:2675
+#: cp/error.c:2713
#, c-format
msgid "unexpected letter `%c' in locate_error\n"
msgstr "locate_error içinde umulmayan `%c' harfi\n"
#. Can't throw a reference.
-#: cp/except.c:245
+#: cp/except.c:240
msgid "type `%T' is disallowed in Java `throw' or `catch'"
msgstr "tür `%T' Java `throw' veya `catch' içinde kullanılmaz"
-#: cp/except.c:256
+#: cp/except.c:251
msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
msgstr "Java `catch' ya da `throw' a `jthrowable' ile çağrı tanımsız"
#. Thrown object must be a Throwable.
-#: cp/except.c:263
+#: cp/except.c:258
msgid "type `%T' is not derived from `java::lang::Throwable'"
msgstr "tür `%T' `java::lang::Throwable'dan türetilmemiştir"
-#: cp/except.c:327
+#: cp/except.c:322
msgid "mixing C++ and Java catches in a single translation unit"
msgstr "tek çeviri birimi içinde karışık C++ ve Java tuzakları"
-#: cp/except.c:558
+#: cp/except.c:639
msgid "throwing NULL, which has integral, not pointer type"
-msgstr "tümleyen, gösterge olmayan NULL yakalanıyor"
+msgstr "tümleyen, gösterici olmayan NULL yakalanıyor"
-#: cp/except.c:663
+#: cp/except.c:730
msgid " in thrown expression"
msgstr " düşük ifade içinde"
-#: cp/except.c:775
+#: cp/except.c:856
msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
msgstr "ifade '%E', '%T' mutlak sınıf türünde throw ifadesi içinde kullanılamaz"
-#: cp/except.c:863
+#: cp/except.c:944
msgid "exception of type `%T' will be caught"
msgstr "`%T' türündeki olağandışılık yakalanmış olacak"
-#: cp/except.c:866
+#: cp/except.c:947
msgid " by earlier handler for `%T'"
msgstr " `%T'nin önceki tutamağı tarafından "
-#: cp/except.c:887
+#: cp/except.c:968
msgid "`...' handler must be the last handler for its try block"
msgstr "`...' tutamağı kendi blok denemesinde son tutamak olmalıdır"
-#: cp/friend.c:155
+#: cp/friend.c:159
msgid "`%D' is already a friend of class `%T'"
msgstr "`%D' zaten sınıf `%T' nin kardeşi"
-#: cp/friend.c:157
+#: cp/friend.c:161
msgid "previous friend declaration of `%D'"
msgstr "önceki `%D' kardeş bildirimi"
-#: cp/friend.c:197
+#: cp/friend.c:206
msgid "invalid type `%T' declared `friend'"
msgstr "geçersiz `friend' bildirimli tür `%T'"
#. [temp.friend]
-#.
#. Friend declarations shall not declare partial
#. specializations.
-#: cp/friend.c:209
+#: cp/friend.c:222
msgid "partial specialization `%T' declared `friend'"
msgstr "`friend' bildirimli kısmi özelleştirme `%T'"
-#: cp/friend.c:221
+#: cp/friend.c:231
msgid "class `%T' is implicitly friends with itself"
msgstr "sınıf `%T' kendisiyle dolaylı kardeş"
#. template <class T> friend typename S<T>::X;
-#: cp/friend.c:239
+#: cp/friend.c:249
msgid "typename type `%#T' declared `friend'"
msgstr "tür ismi türü `%#T' `friend' olarak bildirilmiş"
#. template <class T> friend class T;
-#: cp/friend.c:245
+#: cp/friend.c:255
msgid "template parameter type `%T' declared `friend'"
msgstr "şablon parametre türü `%T' `friend' olarak bildirilmiş"
#. template <class T> friend class A; where A is not a template
-#: cp/friend.c:251
+#: cp/friend.c:261
msgid "`%#T' is not a template"
msgstr "`%#T' bir ÅŸablon deÄŸil"
-#: cp/friend.c:266
+#: cp/friend.c:276
msgid "`%T' is already a friend of `%T'"
msgstr "`%T' zaten `%T' nin kardeÅŸi"
-#: cp/friend.c:362
+#: cp/friend.c:376
msgid "member `%D' declared as friend before type `%T' defined"
msgstr "üye `%D' tür `%T' tanımından önce friend olarak bildirilmiş"
-#: cp/friend.c:417
+#: cp/friend.c:431
msgid "friend declaration `%#D' declares a non-template function"
msgstr "kardeÅŸ bildirimi `%#D' bir ÅŸablon olmayan iÅŸlev bildiriyor"
-#: cp/friend.c:420
+#: cp/friend.c:434
msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
msgstr "(eğer istediğiniz bu değilse, işlev şablonunun zaten bildirilmiş olduğundan emin olduktan sonra burada işlev isminden sonra bir <> ekleyin)-Wno-non-template-friend bu uyarıyı iptal eder"
-#: cp/g++spec.c:198 java/jvspec.c:424
+#: cp/g++spec.c:211 java/jvspec.c:423
#, c-format
msgid "argument to `%s' missing\n"
msgstr "`%s' için argüman eksik\n"
-#: cp/init.c:285
+#: cp/init.c:334
+msgid "`%D' should be initialized in the member initialization list"
+msgstr "`%D' üye ilklendirici listesinde ilklendirilmiş olmalı"
+
+#: cp/init.c:384
msgid "default-initialization of `%#D', which has reference type"
msgstr "referans türe sahip `%#D'nin default ilklendirmesi"
-#: cp/init.c:290
+#: cp/init.c:389
msgid "uninitialized reference member `%D'"
msgstr "ilklendirilmemiş referans üyesi `%D'"
-#: cp/init.c:298
+#: cp/init.c:397
msgid "initializer list treated as compound expression"
msgstr "ilklendirici listesi bileşik ifade olarak ele alınıyor"
-#: cp/init.c:410
-msgid "member initializers for `%#D'"
-msgstr "`%#D'"
-
-#: cp/init.c:412
-msgid " and `%#D'"
-msgstr " ve `%#D' için üye ilklendiriciler"
-
-#: cp/init.c:413
-msgid " will be re-ordered to match declaration order"
-msgstr " bildirim sırasının eşlenmesi için yeniden sıralama yapılacak"
-
-#: cp/init.c:428
-msgid "multiple initializations given for member `%D'"
-msgstr "üye `%D' için çoklu ilklendiriciler verilmiş"
+#: cp/init.c:538
+msgid "`%D' will be initialized after"
+msgstr "`%D' sonradan ilklendirilmiÅŸ olacak"
-#: cp/init.c:500
-msgid "initializations for multiple members of `%T'"
-msgstr "`%T' nin çoklu üyeleri için ilklendirmeler"
+#: cp/init.c:541
+msgid "base `%T' will be initialized after"
+msgstr "`%T' tabanı sonradan ilklendirilmiş olacak"
-#: cp/init.c:617
-msgid "base initializers for `%#T'"
-msgstr "`%#T'"
+#: cp/init.c:544
+msgid " `%#D'"
+msgstr " `%#D'"
-#: cp/init.c:618
-msgid " and `%#T'"
-msgstr " ve `%#T' için taban ilklendiriciler"
+#: cp/init.c:546
+msgid " base `%T'"
+msgstr " `%T' tabanı için;"
-#: cp/init.c:619
-msgid " will be re-ordered to match inheritance order"
-msgstr " miras kalma sırasının eşlenmesi için yeniden sıralanacak"
+#: cp/init.c:564
+msgid "multiple initializations given for base `%T'"
+msgstr "taban `%T' için çoklu ilklendiriciler belirtilmiş"
#: cp/init.c:631
-msgid "base class `%T' already initialized"
-msgstr "taban sınıf `%T' zaten ilklendirilmiş"
+msgid "initializations for multiple members of `%T'"
+msgstr "`%T' nin çoklu üyeleri için ilklendirmeler"
-#: cp/init.c:702
+#: cp/init.c:688
msgid "base class `%#T' should be explicitly initialized in the copy constructor"
msgstr "taban sınıf `%#T' kopyalama kurucusunda doğrudan ilklendirilmiş olmalı"
-#: cp/init.c:745
-msgid "`%D' should be initialized in the member initialization list"
-msgstr "`%D' üye ilklendirici listesinde ilklendirilmiş olmalı"
-
-#: cp/init.c:987
+#: cp/init.c:926
msgid "class `%T' does not have any field named `%D'"
msgstr "sınıf `%T' `%D' isimli hiçbir alan içermiyor"
-#: cp/init.c:993
+#: cp/init.c:932
msgid "field `%#D' is static; the only point of initialization is its definition"
msgstr "alan `%#D' static'dir; tek ilklendirme noktası onun tanımıdır"
-#: cp/init.c:1032
+#: cp/init.c:965
msgid "unnamed initializer for `%T', which has no base classes"
msgstr "taban sınıfı olmayan `%T' için isimsiz ilklendirici"
-#: cp/init.c:1039
+#: cp/init.c:972
msgid "unnamed initializer for `%T', which uses multiple inheritance"
msgstr "çoklu kalıt kullanan `%T' için isimsiz ilklendirici"
-#: cp/init.c:1068
+#: cp/init.c:1007
msgid "type `%D' is not a direct or virtual base of `%T'"
msgstr "tür `%D' `%T' nin bir doğrudan ya da sanal tabanı değil"
-#: cp/init.c:1071
+#: cp/init.c:1010
msgid "type `%D' is not a direct base of `%T'"
msgstr "tür `%D' `%T'nin bir doğrudan tabanı değil"
@@ -15626,551 +16381,531 @@ msgstr "tür `%D' `%T'nin bir doğrudan tabanı değil"
#. COMPLEX zees(1.0, 0.0)[10];
#. }
#.
-#: cp/init.c:1165
+#: cp/init.c:1104
msgid "bad array initializer"
msgstr "dizi ilklendirici hatalı"
-#: cp/init.c:1357
+#: cp/init.c:1311
msgid "`%T' is not an aggregate type"
msgstr "`%T' bir küme türü değil"
-#: cp/init.c:1380
+#: cp/init.c:1334
msgid "`%T' fails to be an aggregate typedef"
msgstr "bir küme türü ataması olarak `%T' hatalı"
-#: cp/init.c:1389
+#: cp/init.c:1343
msgid "type `%T' is of non-aggregate type"
msgstr "`%T' küme olmayan türde"
-#: cp/init.c:1491
+#: cp/init.c:1446
msgid "cannot call destructor `%T::~%T' without object"
msgstr "yıkıcı `%T::~%T' nesnesiz çağrılamaz"
-#: cp/init.c:1531
+#: cp/init.c:1490
msgid "invalid use of non-static field `%D'"
msgstr "geçersiz static olmayan alan `%D' kullanımı"
#. We can get here when processing a bad default
#. argument, like:
#. struct S { int a; void f(int i = a); }
-#: cp/init.c:1540 cp/method.c:163
+#: cp/init.c:1499 cp/method.c:160
msgid "invalid use of member `%D'"
msgstr "geçersiz üye `%D' kullanımı"
-#: cp/init.c:1550
+#: cp/init.c:1509
msgid "no method `%T::%D'"
msgstr "`%T::%D' diye bir yöntem yok"
-#: cp/init.c:1643
+#: cp/init.c:1602
msgid "incomplete type `%T' does not have member `%D'"
msgstr "içi boş tür `%T' üye `%D' yi içermiyor"
-#: cp/init.c:1712
+#: cp/init.c:1676
msgid "`%D' is not a member of type `%T'"
msgstr "`%D' `%T' türünde bir üye değil"
-#: cp/init.c:1731
-msgid "illegal pointer to bit-field `%D'"
-msgstr "bit alanı `%D' göstergesi kuraldışı"
+#: cp/init.c:1695
+msgid "invalid pointer to bit-field `%D'"
+msgstr "`%D' bit alanı göstericisi geçersiz"
-#: cp/init.c:1770
+#: cp/init.c:1734
msgid "object missing in use of pointer-to-member construct"
-msgstr "üyeye gösterge oluşumu kullanımında nesne eksik"
+msgstr "üye göstericisi oluşumu kullanımında nesne eksik"
-#: cp/init.c:1810
+#: cp/init.c:1774
msgid "member `%D' is non-static but referenced as a static member"
msgstr "üye `%D' statik değil ama bir statik üye olarak başvurulmuş"
-#: cp/init.c:1812 cp/typeck.c:3130 cp/typeck.c:3238
+#: cp/init.c:1776 cp/typeck.c:2826 cp/typeck.c:2930
msgid "at this point in file"
msgstr "dosyanın burasında"
-#: cp/init.c:1853 cp/typeck.c:2929
+#: cp/init.c:1813
#, c-format
msgid "object missing in `%E'"
msgstr "`%E' içinde nesne eksik"
-#: cp/init.c:1984
+#: cp/init.c:1944
msgid "new of array type fails to specify size"
msgstr "dizi türünde new boyut belirtmede başarısız"
-#: cp/init.c:1995
+#: cp/init.c:1955
msgid "size in array new must have integral type"
msgstr "array new içindeki boyut bütünleyici türde olmalı"
-#: cp/init.c:2001
+#: cp/init.c:1961
msgid "zero size array reserves no space"
msgstr "sıfır boyutlu dizi için yer ayrılmaz"
-#: cp/init.c:2066
+#: cp/init.c:2026
msgid "new cannot be applied to a reference type"
msgstr "new bir referans türe uygulanamaz"
-#: cp/init.c:2072
+#: cp/init.c:2032
msgid "new cannot be applied to a function type"
msgstr "new bir işlev türe uygulanamaz"
-#: cp/init.c:2119
+#: cp/init.c:2079
msgid "call to Java constructor, while `jclass' undefined"
msgstr "`jclass' tanımlanmamışken Java kurucusuna çağrı"
-#: cp/init.c:2135
+#: cp/init.c:2095
msgid "can't find class$"
msgstr "class$ bulunamıyor"
-#: cp/init.c:2249
+#: cp/init.c:2209
msgid "invalid type `void' for new"
msgstr "new için `void' türü geçersiz"
-#: cp/init.c:2301
+#: cp/init.c:2261
#, c-format
msgid "call to Java constructor with `%s' undefined"
msgstr "`%s' li Java kurucusuna çağrı tanımsız"
-#: cp/init.c:2408
+#: cp/init.c:2369
msgid "ISO C++ forbids initialization in array new"
msgstr "ISO C++ da array new içinde ilklendirmeye izin verilmez"
-#: cp/init.c:2426 cp/typeck2.c:359 cp/typeck2.c:1217
+#: cp/init.c:2391 cp/typeck2.c:367 cp/typeck2.c:1208
msgid "initializer list being treated as compound expression"
msgstr "ilklendirici listesi bileşik ifade varsayılıyor"
-#: cp/init.c:2432
+#: cp/init.c:2397
msgid "ISO C++ forbids aggregate initializer to new"
msgstr "ISO C++ da new için küme ilklendiriciye izin verilmez"
-#: cp/init.c:2516
+#: cp/init.c:2485
msgid "uninitialized const in `new' of `%#T'"
msgstr "`%#T' nin `new' u içinde ilklendirilmemiş sabit"
-#: cp/init.c:2880
+#: cp/init.c:2864
msgid "initializer ends prematurely"
msgstr "ilklendirici erken sonlanıyor"
-#: cp/init.c:2950
+#: cp/init.c:2934
msgid "cannot initialize multi-dimensional array with initializer"
msgstr "çok boyutlu diziler ilklendiricilerle ilklendirilemez"
-#: cp/init.c:3125
+#: cp/init.c:3124
msgid "unknown array size in delete"
msgstr "delete içindeki dizi boyutu bilinmiyor"
-#: cp/init.c:3398
+#: cp/init.c:3389
msgid "type to vector delete is neither pointer or array type"
-msgstr "vektör silme işlemi için tür ne gösterge ne de dizi"
+msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
-#: cp/lex.c:144
+#: cp/lex.c:136
msgid "type name expected before `*'"
msgstr "`*' dan önce tür ismi gerekli"
-#: cp/lex.c:166
+#: cp/lex.c:158
msgid "cannot declare references to references"
msgstr "referanslara referans bildirilemez"
-#: cp/lex.c:171
+#: cp/lex.c:163
msgid "cannot declare pointers to references"
-msgstr "referanslara gösterge bildirilemez"
+msgstr "referanslara gösterici bildirilemez"
-#: cp/lex.c:175
+#: cp/lex.c:167
msgid "type name expected before `&'"
msgstr "`&' den önce tür ismi gerekli"
-#: cp/lex.c:993
+#: cp/lex.c:894
#, c-format
msgid "semicolon missing after %s declaration"
msgstr "%s bildiriminden sonra ; yok"
-#: cp/lex.c:996
+#: cp/lex.c:897
msgid "semicolon missing after declaration of `%T'"
msgstr "`%T' bildiriminden sonra ; yok"
-#: cp/lex.c:1044
+#: cp/lex.c:945
#, c-format
msgid "junk at end of #pragma %s"
msgstr "'#pragma %s' sonrası karışık"
-#: cp/lex.c:1051
+#: cp/lex.c:952
#, c-format
msgid "invalid #pragma %s"
msgstr "'#pragma %s' geçersiz"
-#: cp/lex.c:1060
+#: cp/lex.c:961
msgid "#pragma vtable no longer supported"
msgstr "#pragma vtable artık desteklenmiyor"
-#: cp/lex.c:1137
+#: cp/lex.c:1038
#, c-format
msgid "#pragma implementation for %s appears after file is included"
msgstr "%s için #pragma oluşumu dosya içerildikten sonra görünüyor"
-#: cp/lex.c:1162
+#: cp/lex.c:1063
msgid "junk at end of #pragma GCC java_exceptions"
msgstr "#pragma GCC java_exceptions sonrası karışık"
-#: cp/lex.c:1247
+#: cp/lex.c:1107
msgid "`%D' not defined"
msgstr "'%D' tanımlı değil"
-#: cp/lex.c:1252
+#: cp/lex.c:1110
msgid "`%D' was not declared in this scope"
msgstr "bu kapsamda `%D' bildirilmemiÅŸ "
-#: cp/lex.c:1262
+#: cp/lex.c:1118
msgid "`%D' undeclared (first use this function)"
msgstr "`%D' bildirilmemiş (bu işlevde ilk kullanımı)"
-#: cp/lex.c:1266
+#: cp/lex.c:1122
msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
msgstr "(her bildirimsiz tanımlayıcı sadece işlevin içinde ilk göründüğünde bir kere raporlanır)"
-#: cp/lex.c:1289
-#, c-format
-msgid "name lookup of `%s' changed"
-msgstr "`%s' içi isim görünümü değişti"
-
-#: cp/lex.c:1291
-msgid " matches this `%D' under ISO standard rules"
-msgstr " bu `%D' ISO standardının kuralları altında eşleşiyor"
-
-#: cp/lex.c:1293
-msgid " matches this `%D' under old rules"
-msgstr " bu `%D' eski kurallar altında eşleşiyor"
-
-#: cp/lex.c:1303 cp/lex.c:1310
-#, c-format
-msgid "name lookup of `%s' changed for new ISO `for' scoping"
-msgstr "yeni ISO `for' kapsamında `%s' isim araması değişti"
-
-#: cp/lex.c:1305
-msgid " cannot use obsolete binding at `%D' because it has a destructor"
-msgstr " `%D' deki modası geçmiş bağlantı bir yıkıcıya sahip olduğundan kullanılamaz"
-
-#: cp/lex.c:1312
-msgid " using obsolete binding at `%D'"
-msgstr " `%D' deki modası geçmiş bağlantı kullanılıyor"
-
-#: cp/lex.c:1378
+#: cp/lex.c:1242
msgid "`::%D' undeclared (first use here)"
msgstr "`::%D' bildirilmemiş (burada ilk kullanımı)"
-#: cp/mangle.c:1912
-msgid "real-valued template parameters when cross-compiling"
-msgstr "çapraz derlemede gerçek değerli şablon parametreleri"
+#: cp/mangle.c:2051
+msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+msgstr "çağrı ifadesi C++ ABI'deki bir bozukluktan dolayı anlamlandırılamıyor"
-#: cp/method.c:157
+#: cp/mangle.c:2363
+msgid "the mangled name of `%D' will change in a future version of GCC"
+msgstr "`D' nin anlamlandırılmış ismi GCC'nin gelecek sürümünde değişecek"
+
+#: cp/method.c:154
msgid "invalid use of member `%D' in static member function"
msgstr "statik üye işlev kapsamında üye `%D' kullanımı geçersiz "
-#: cp/method.c:205
+#: cp/method.c:216
msgid "use of namespace `%D' as expression"
msgstr "isim alanı `%D' nin ifade olarak kullanımı"
-#: cp/method.c:210
+#: cp/method.c:221
msgid "use of class template `%T' as expression"
msgstr "sınıf şablonu `%T' nin ifade olarak kullanımı"
-#: cp/method.c:223
+#: cp/method.c:234
#, c-format
msgid "use of %s from containing function"
msgstr "içeren işlevden %s kullanımı"
-#: cp/method.c:226
+#: cp/method.c:237
msgid " `%#D' declared here"
msgstr " `%#D' burada bildirilmiÅŸ"
-#: cp/method.c:244
+#: cp/method.c:255
msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
msgstr "üye `%D' için istek çoklu kalıt kafesi içinde belirsiz"
-#: cp/method.c:297
-msgid "implementation-reserved name `%D' used"
-msgstr "implementation-saklı ismi `%D' kullanıldı"
-
-#: cp/method.c:428
+#: cp/method.c:458
msgid "generic thunk code fails for method `%#D' which uses `...'"
msgstr "`...' kullanan `%#D' için genel thunk kodu başarısız"
-#: cp/method.c:653
+#: cp/method.c:697
msgid "non-static const member `%#D', can't use default assignment operator"
-msgstr "statik olmayan sabit üye `%#D', öntanımlı atama işlemimi kullanamaz"
+msgstr "statik olmayan sabit üye `%#D', öntanımlı atama işleci kullanamaz"
-#: cp/method.c:658
+#: cp/method.c:702
msgid "non-static reference member `%#D', can't use default assignment operator"
-msgstr "statik olmayan referans üyesi `%#D', öntanımlı atama işlemimi kullanamaz"
+msgstr "statik olmayan referans üyesi `%#D', öntanımlı atama işleci kullanamaz"
-#: parse.y:218
+#: parse.y:262
msgid "`%s' tag used in naming `%#T'"
msgstr "`%s' etiketi `%#T' isimlemesinde kullanılmış"
-#: parse.y:510
+#: parse.y:542
msgid "keyword `export' not implemented, and will be ignored"
msgstr "`export' anahtar sözcüğü gerçekleştirilmedi, ve yoksayılacak"
-#: parse.y:615
+#: parse.y:646
msgid "use of linkage spec `%D' is different from previous spec `%D'"
msgstr "özellik ilintilemesi `%D' kullanımı önceki özellik `%D' den farklı"
-#: parse.y:688
-msgid "invalid default template argument"
-msgstr "öntanımlı şablon argümanı geçersiz"
-
-#: parse.y:919
-msgid "only constructors take base initializers"
-msgstr "temel ilklendiricileri sadece kurucular alır"
-
-#: parse.y:921
+#: parse.y:943
msgid "no base or member initializers given following ':'"
msgstr "':' ile bir temel ya da üye ilklendirici verilmemiş"
-#: parse.y:963 parse.y:969
+#: parse.y:984
msgid "anachronistic old style base class initializer"
msgstr "eski tarz temel sınıf ilklendirici zamansız"
#. Handle `Class<Class<Type>>' without space in the `>>'
-#: parse.y:1095
+#: parse.y:1117
msgid "`>>' should be `> >' in template class name"
msgstr "şablon sınıf ismindeki `>>', `> >' olmalıydı"
-#: parse.y:1133
+#: parse.y:1164
msgid "use of template qualifier outside template"
msgstr "şablon niteleyicisinin şablon dışında kullanımı"
-#: parse.y:1162 parse.y:1171
+#: parse.y:1193 parse.y:1202
#, c-format
msgid "ISO C++ forbids an empty condition for `%s'"
msgstr "ISO C++ `%s' için bir boş koşula izin vermez"
-#: parse.y:1194
+#: parse.y:1225
msgid "definition of class `%T' in condition"
msgstr "koşul içinde class `%T' tanımı"
-#: parse.y:1196
+#: parse.y:1227
msgid "definition of enum `%T' in condition"
msgstr "koşul içinde enum `%T' tanımı"
-#: parse.y:1207
+#: parse.y:1238
msgid "definition of array `%#D' in condition"
msgstr "koşul içinde dizi `%#D' tanımı"
-#: parse.y:1316
+#: parse.y:1351
msgid "old style placement syntax, use () instead"
msgstr "eski tarz yerleştirme sözdizimi, yerine () kullanın"
-#: parse.y:1327
+#: parse.y:1362
msgid "`%T' is not a valid expression"
msgstr "`%T' bir geçerli ifade değil"
-#: parse.y:1338
-msgid "ISO C++ forbids initialization of new expression with `='"
-msgstr "ISO C++ da `=' ile yeni ifade ilklendirmesine izin verilmez"
-
+#. This was previously allowed as an extension, but
+#. was removed in G++ 3.3.
#: parse.y:1369
+msgid "initialization of new expression with `='"
+msgstr "new ifadesinin `=' ile ilklendirilmesi"
+
+#: parse.y:1395
msgid "ISO C++ forbids compound literals"
msgstr "ISO C++ da birleÅŸik sabitlere izin verilmez"
-#: parse.y:1611
+#: parse.y:1642
msgid "ISO C++ forbids braced-groups within expressions"
msgstr "ISO C++ da kaşlı ayraçla gruplanmış ifadelere izin verilmez"
-#: parse.y:2013 parse.y:2028
+#: parse.y:1721
+msgid "invalid use of template `%D'"
+msgstr "`%D' şablonunun kullanımı geçersiz"
+
+#: parse.y:2053 parse.y:2068
msgid "sigof type specifier"
msgstr "sigof tür belirteci"
-#: parse.y:2018
+#: parse.y:2058
msgid "`sigof' applied to non-aggregate expression"
msgstr "küme olmayan ifadeye `sigof' uygulanmış"
-#: parse.y:2033
+#: parse.y:2073
msgid "`sigof' applied to non-aggregate type"
msgstr "küme olmayan türe `sigof' uygulanmış"
-#: parse.y:2299
+#: parse.y:2339
msgid "using `typename' outside of template"
msgstr "şablon dışında `typename' kullanımı"
-#: parse.y:2370
+#: parse.y:2356
+msgid "qualified name does not name a class"
+msgstr "nitelenmiş isim bir sınıf ismi değil"
+
+#: parse.y:2417
#, c-format
msgid "storage class specifier `%s' not allowed after struct or class"
msgstr "yapı ya da sınıftan sonra saklama sınıfı belirteci `%s' kullanılamaz"
-#: parse.y:2372
+#: parse.y:2419
#, c-format
msgid "type specifier `%s' not allowed after struct or class"
msgstr "yapı ya da sınıftan sonra tür belirteci `%s' kullanılamaz"
-#: parse.y:2374
+#: parse.y:2421
#, c-format
msgid "type qualifier `%s' not allowed after struct or class"
msgstr "yapı ya da sınıftan sonra `%s' tür niteleyicisine izin verilmez "
-#: parse.y:2376
+#: parse.y:2423
msgid "no body nor ';' separates two class, struct or union declarations"
msgstr "iki sınıf, yapı ya da birleşik yapı bildirimlerini ne gövdesi ne de ';' ayırır"
-#: parse.y:2508
+#: parse.y:2553
msgid "no bases given following `:'"
msgstr "':' ile bir temel verilmemiÅŸ"
-#: parse.y:2539 parse.y:2554
+#: parse.y:2584 parse.y:2599
msgid "`%D' access"
msgstr "`%D' eriÅŸimi"
-#: parse.y:2544
+#: parse.y:2589
msgid "multiple access specifiers"
msgstr "çoklu erişim belirteçleri"
-#: parse.y:2562
+#: parse.y:2607
msgid "multiple `virtual' specifiers"
msgstr "çoklu `virtual' belirteçleri"
-#: parse.y:2599
+#: parse.y:2644
msgid "missing ';' before right brace"
msgstr "'}' dan önce ';' eksik"
-#: parse.y:2820
+#: parse.y:2865
msgid "ISO C++ forbids array dimensions with parenthesized type in new"
msgstr "ISO C++ new içinde parantezli dizi indislemeye izin vermez"
-#: parse.y:3107 parse.y:3127 parse.y:3136 parse.y:3165
+#: parse.y:3152 parse.y:3172 parse.y:3181 parse.y:3210
msgid "`%T' is not a class or namespace"
msgstr "`%T' bir sınıf ya da isim alanı değil"
-#: parse.y:3332
+#: parse.y:3377
msgid "ISO C++ forbids label declarations"
msgstr "ISO C++ etiket bildirimlerine izin vermez"
-#: parse.y:3492
+#: parse.y:3537
msgid "ISO C++ forbids computed gotos"
msgstr "ISO C++ hesaplanmış goto'lara izin vermez"
-#: parse.y:3500
+#: parse.y:3545
msgid "label must be followed by statement"
msgstr "etiketi deyim izlemeli"
-#: parse.y:3545
+#: parse.y:3590
msgid "must have at least one catch per try block"
msgstr "her deneme bloğu için en azından bir yakalama içermeli"
-#: parse.y:3605
+#: parse.y:3650
msgid "ISO C++ forbids compound statements inside for initializations"
msgstr "ISO C++ bileşik deyimler içeren ilklendirmelere izin vermez"
#. This helps us recover from really nasty
#. parse errors, for example, a missing right
#. parenthesis.
-#: parse.y:3690 parse.y:3700
+#: parse.y:3737 parse.y:3747
msgid "possibly missing ')'"
msgstr "galiba ')' eksik"
-#: parse.y:3793
+#: parse.y:3840
msgid "type specifier omitted for parameter"
msgstr "parametre için tür belirteci ihmal edildi"
-#: parse.y:3802
+#: parse.y:3849
#, c-format
msgid "`%E' is not a type, use `typename %E' to make it one"
msgstr "`%E' bir tür değil, tür yapmak için `typename %E' kullanın"
-#: parse.y:3804
+#: parse.y:3851
msgid "no type `%D' in `%T'"
msgstr "`%T' içinde `%D' isminde bir tür yok"
-#: parse.y:3807
+#: parse.y:3854
#, c-format
msgid "type specifier omitted for parameter `%E'"
msgstr "parametre `%E' için tür belirteci ihmal edildi"
-#: parse.y:3815
+#: parse.y:3862
msgid "'%D' is used as a type, but is not defined as a type."
msgstr "'%D' bir tür olarak kullanılmış ama tür olarak tanımlı değil"
-#: cp/pt.c:211
+#: cp/pt.c:284
msgid "data member `%D' cannot be a member template"
msgstr "veri üyesi `%D' bir üye şablonu olamaz"
-#: cp/pt.c:223
+#: cp/pt.c:296
msgid "invalid member template declaration `%D'"
msgstr "geçersiz üye şablonu bildirimi `%D'"
-#: cp/pt.c:618
+#: cp/pt.c:691
msgid "explicit specialization in non-namespace scope `%D'"
msgstr "isim alanı olmayan `%D' içinde doğrudan özelleştirme"
-#: cp/pt.c:630
+#: cp/pt.c:703
msgid "enclosing class templates are not explicitly specialized"
msgstr "sınıf şablonlarının zarflanması doğrudan özelleştirilmiyor"
-#: cp/pt.c:705
+#: cp/pt.c:792 cp/pt.c:833
msgid "specializing `%#T' in different namespace"
msgstr " `%#T' farklı isim alanında özelleştiriliyor"
-#: cp/pt.c:706
+#: cp/pt.c:793 cp/pt.c:834
msgid " from definition of `%#D'"
msgstr " `%#D' bildiriminden"
-#: cp/pt.c:714
+#: cp/pt.c:801
msgid "specialization of `%T' after instantiation"
msgstr "gerçeklemeden sonra `%T' özelleştirmesi"
-#: cp/pt.c:717
+#: cp/pt.c:848
+msgid "specialization `%T' after instantiation `%T'"
+msgstr "%T' özelleştirmesi, `%T' gerçeklemesinden sonra"
+
+#: cp/pt.c:860
msgid "explicit specialization of non-template `%T'"
msgstr "şablon olmayan `%T' örtük özelleştirmesi"
-#: cp/pt.c:849
+#: cp/pt.c:992
msgid "specialization of %D after instantiation"
msgstr "gerçeklemeden sonra %D özelleştirmesi"
-#: cp/pt.c:952
+#: cp/pt.c:1096
msgid "%s %+#D"
msgstr "%s %+#D"
-#: cp/pt.c:1003
+#: cp/pt.c:1147
msgid "`%D' is not a function template"
msgstr "`%D' bir iÅŸlev ÅŸablonu deÄŸil"
-#: cp/pt.c:1126
+#: cp/pt.c:1286
msgid "template-id `%D' for `%+D' does not match any template declaration"
msgstr "şablon kimliği `%D', `%+D' için hiçbir şablon bildirimi ile eşleşmiyor"
-#: cp/pt.c:1134
+#: cp/pt.c:1294
msgid "ambiguous template specialization `%D' for `%+D'"
msgstr "şablon özelleştirmesi `%D', `%+D' için belirsiz"
#. This case handles bogus declarations like template <>
#. template <class T> void f<int>();
-#: cp/pt.c:1361 cp/pt.c:1435
+#: cp/pt.c:1521 cp/pt.c:1595
msgid "template-id `%D' in declaration of primary template"
msgstr "birincil ÅŸablon bildiriminde ÅŸablon kimliÄŸi `%D'"
-#: cp/pt.c:1374
+#: cp/pt.c:1534
msgid "template parameter list used in explicit instantiation"
msgstr "şablon parametre listesi doğrudan gerçekleme içinde kullanılmış"
-#: cp/pt.c:1380
+#: cp/pt.c:1540
msgid "definition provided for explicit instantiation"
msgstr "tanım doğrudan gerçekleme için üretilmiş"
-#: cp/pt.c:1386
+#: cp/pt.c:1546
msgid "too many template parameter lists in declaration of `%D'"
msgstr "`%D' bildiriminde şablon parametresi listesi çok fazla"
-#: cp/pt.c:1402
+#: cp/pt.c:1562
msgid "too few template parameter lists in declaration of `%D'"
msgstr "`%D' bildiriminde şablon parametresi listesi çok az"
-#: cp/pt.c:1419
+#: cp/pt.c:1579
msgid "explicit specialization not preceded by `template <>'"
msgstr "doğrudan özelleştirme `template <>' tarafından öncelenmiyor"
-#: cp/pt.c:1432
+#: cp/pt.c:1592
msgid "partial specialization `%D' of function template"
msgstr "işlev şablonunun `%D' kısmî özelleştirmesi"
-#: cp/pt.c:1464
+#: cp/pt.c:1624
msgid "default argument specified in explicit specialization"
msgstr "doğrudan özelleştirme içinde öntanımlı argüman belirtilmiş"
-#: cp/pt.c:1468
+#: cp/pt.c:1628
msgid "template specialization with C linkage"
msgstr "C ilintileme ile şablon özelleştirmesi"
@@ -16182,99 +16917,99 @@ msgstr "C ilintileme ile şablon özelleştirmesi"
#. program is ill-formed.
#.
#. Similar language is found in [temp.explicit].
-#: cp/pt.c:1556
+#: cp/pt.c:1715
msgid "specialization of implicitly-declared special member function"
msgstr "örtük bildirimli özel üye işlev özelleştirmesi"
-#: cp/pt.c:1599
+#: cp/pt.c:1759
msgid "no member function `%D' declared in `%T'"
msgstr "`%T' içinde bildirilmiş `%D' diye bir üye işlev yok"
#. There are two many template parameter lists.
-#: cp/pt.c:1747
+#: cp/pt.c:1909
msgid "too many template parameter lists in declaration of `%T'"
msgstr "`%T' bildiriminde şablon parametresi listesi çok fazla"
-#: cp/pt.c:1843
+#: cp/pt.c:2005
msgid " shadows template parm `%#D'"
msgstr " şablon parametresi `%#D' gölgeleniyor"
-#: cp/pt.c:2247
+#: cp/pt.c:2409
msgid "template parameters not used in partial specialization:"
msgstr "kısmî özelleştirmede kullanılmayan şablon parametreleri:"
-#: cp/pt.c:2251
+#: cp/pt.c:2413
msgid " `%D'"
msgstr " `%D'"
-#: cp/pt.c:2263
+#: cp/pt.c:2425
msgid "partial specialization `%T' does not specialize any template arguments"
msgstr "kısmî özelleştirme `%T' hiç bir şablon argümanını özelleştirmiyor"
-#: cp/pt.c:2288
+#: cp/pt.c:2450
#, c-format
msgid "template argument `%E' involves template parameter(s)"
msgstr "şablon argümanı `%E' şablon parametre(ler)ini içine alıyor"
-#: cp/pt.c:2331
+#: cp/pt.c:2494
msgid "type `%T' of template argument `%E' depends on template parameter(s)"
msgstr "tür `%T' (şablon argümanı `%E' nin türü) şablon parametre(ler)ine bağımlı oluyor"
-#: cp/pt.c:2419
+#: cp/pt.c:2582
msgid "no default argument for `%D'"
msgstr "`%D' için öntanımlı argüman yok"
-#: cp/pt.c:2552
+#: cp/pt.c:2735
msgid "template with C linkage"
msgstr "C ilintilemeli ÅŸablon"
-#: cp/pt.c:2555
+#: cp/pt.c:2738
msgid "template class without a name"
msgstr "bir ismi olmayan şablon sınıfı"
-#: cp/pt.c:2632
+#: cp/pt.c:2815
msgid "`%D' does not declare a template type"
msgstr "`%D' bir şablon türü bildirmiyor"
-#: cp/pt.c:2638
+#: cp/pt.c:2821
msgid "template definition of non-template `%#D'"
msgstr "ÅŸablon olmayan `%#D' nin ÅŸablon bildirimi"
-#: cp/pt.c:2679
+#: cp/pt.c:2862
msgid "expected %d levels of template parms for `%#D', got %d"
msgstr "%d seviye umulurken `%#D' için şablon parametresi seviyesi olarak %d seviye alındı, "
-#: cp/pt.c:2691
+#: cp/pt.c:2874
msgid "got %d template parameters for `%#D'"
msgstr "%d şablon parametresi alındı (`%#D' için)"
-#: cp/pt.c:2694
+#: cp/pt.c:2877
msgid "got %d template parameters for `%#T'"
msgstr "%d şablon parametresi alındı (`%#T' için)"
-#: cp/pt.c:2696
+#: cp/pt.c:2879
#, c-format
msgid " but %d required"
msgstr " ama %d gerekiyordu"
-#: cp/pt.c:2764
+#: cp/pt.c:2962
msgid "`%T' is not a template type"
msgstr "`%T' bir şablon türü değil"
-#: cp/pt.c:2780
+#: cp/pt.c:2978
msgid "previous declaration `%D'"
msgstr "`%D' önceki bildirimi"
-#: cp/pt.c:2781
+#: cp/pt.c:2979
#, c-format
msgid "used %d template parameter%s instead of %d"
msgstr "%3$d yerine %1$d şablon parametresi kullanılmış %2$s"
-#: cp/pt.c:2797
+#: cp/pt.c:2995
msgid "template parameter `%#D'"
msgstr "ÅŸablon parametresi `%#D'"
-#: cp/pt.c:2798
+#: cp/pt.c:2996
msgid "redeclared here as `%#D'"
msgstr "burada yeniden `%#D' olarak bildirilmiÅŸ"
@@ -16282,714 +17017,713 @@ msgstr "burada yeniden `%#D' olarak bildirilmiÅŸ"
#.
#. A template-parameter may not be given default arguments
#. by two different declarations in the same scope.
-#: cp/pt.c:2808
+#: cp/pt.c:3006
msgid "redefinition of default argument for `%#D'"
msgstr "`%#D' nin öntanımlı argümanının yeniden tanımlanması"
-#: cp/pt.c:2809
+#: cp/pt.c:3007
msgid " original definition appeared here"
msgstr " özgün tanımı burada göründü"
-#: cp/pt.c:2902
+#: cp/pt.c:3100
#, c-format
msgid "`%E' is not a valid template argument"
msgstr "`%E' geçerli bir şablon argümanı değil"
-#: cp/pt.c:2906
+#: cp/pt.c:3104
msgid "it must be the address of a function with external linkage"
msgstr "o dış ilintilemeli bir işlevin adresi olmalı"
-#: cp/pt.c:2908
+#: cp/pt.c:3106
msgid "it must be the address of an object with external linkage"
msgstr "o dış ilintilemeli bir nesnenin adresi olmalı"
-#: cp/pt.c:2912
+#: cp/pt.c:3110
msgid "it must be a pointer-to-member of the form `&X::Y'"
-msgstr "o `&X::Y' şeklinde bir üye göstergesi olmalı"
+msgstr "o `&X::Y' şeklinde bir üye göstericisi olmalı"
-#: cp/pt.c:2923
+#: cp/pt.c:3121
#, c-format
msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
msgstr "statik ilintilemeli bir nesnenin adresi olduğundan, dizge sabiti %E geçerli bir şablon argümanı değil"
-#: cp/pt.c:2935
+#: cp/pt.c:3133
#, c-format
msgid "address of non-extern `%E' cannot be used as template argument"
msgstr "extern olmayan`%E' nin adresi şablon argümanı olarak kullanılamaz"
-#: cp/pt.c:2946
+#: cp/pt.c:3144
#, c-format
msgid "non-constant `%E' cannot be used as template argument"
msgstr "sabit olmayan `%E' şablon argümanı olarak kullanılamaz"
-#: cp/pt.c:2953
+#: cp/pt.c:3151
#, c-format
msgid "object `%E' cannot be used as template argument"
msgstr "nesne `%E' şablon argümanı olarak kullanılamaz"
-#: cp/pt.c:3333
+#: cp/pt.c:3526
#, c-format
msgid "to refer to a type member of a template parameter, use `typename %E'"
msgstr "bir şablon parametresinin bir tür üyesine başvuru yapmak için `typename %E' kullanın"
-#: cp/pt.c:3346 cp/pt.c:3362 cp/pt.c:3401
+#: cp/pt.c:3539 cp/pt.c:3555 cp/pt.c:3594
msgid "type/value mismatch at argument %d in template parameter list for `%D'"
msgstr "şablon parametre listesindeki %d. argümanda (`%D' için) tür/değer çelişkisi"
-#: cp/pt.c:3349
+#: cp/pt.c:3542
msgid " expected a constant of type `%T', got `%T'"
msgstr " `%T' türünde bir sabit umulurken `%T' alındı"
-#: cp/pt.c:3353
+#: cp/pt.c:3546
#, c-format
msgid " expected a type, got `%E'"
msgstr " bir tür umulurken `%E' alındı "
-#: cp/pt.c:3365
+#: cp/pt.c:3558
msgid " expected a type, got `%T'"
msgstr " bir tür umulurken `%T' alındı"
-#: cp/pt.c:3367
+#: cp/pt.c:3560
msgid " expected a class template, got `%T'"
msgstr " bir sınıf şablonu umulurken `%T' alındı"
-#: cp/pt.c:3403
+#: cp/pt.c:3596
msgid " expected a template of type `%D', got `%D'"
msgstr " `%D' türünde bir şablon umulurken `%D' alındı"
-#: cp/pt.c:3425
+#: cp/pt.c:3618
msgid "template-argument `%T' uses anonymous type"
msgstr "şablon argümanı `%T' anonim tür kullanıyor"
-#: cp/pt.c:3428
+#: cp/pt.c:3621
msgid "template-argument `%T' uses local type `%T'"
msgstr "şablon argümanı `%T' yerel tür `%T' kullanıyor"
-#: cp/pt.c:3463
+#: cp/pt.c:3631
+msgid "template-argument `%T' is a variably modified type"
+msgstr "şablon argümanı `%T' değişkene göre değişen türde"
+
+#: cp/pt.c:3666
msgid "could not convert template argument `%E' to `%T'"
msgstr "şablon argümanı `%E' `%T' ye dönüştürülemedi"
-#: cp/pt.c:3507
+#: cp/pt.c:3710
#, c-format
msgid "wrong number of template arguments (%d, should be %d)"
msgstr "yanlış sayıda şablon argümanı (%d yerine %d olmalıydı)"
-#: cp/pt.c:3511
+#: cp/pt.c:3714
msgid "provided for `%D'"
msgstr "`%D' için sağlanmış"
-#: cp/pt.c:3558
+#: cp/pt.c:3761
#, c-format
msgid "template argument %d is invalid"
msgstr "şablon argümanı %d geçersiz"
-#: cp/pt.c:3790
+#: cp/pt.c:3997
msgid "non-template used as template"
msgstr "şablon olarak şablon olmayan kullanılmış"
-#: cp/pt.c:3908
+#: cp/pt.c:4139
msgid "`%T' is not a template"
msgstr "`%T' bir ÅŸablon deÄŸil"
-#: cp/pt.c:3921
+#: cp/pt.c:4152
msgid "non-template type `%T' used as a template"
msgstr "şablon olarak şablon olmayan tür `%T' kullanılmış"
-#: cp/pt.c:3923
+#: cp/pt.c:4154
msgid "for template declaration `%D'"
msgstr "şablon bildirimi `%D' için"
-#: cp/pt.c:4486
+#: cp/pt.c:4770
msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
msgstr "%d lik en büyük şablon gerçekleme derinliği `%D' gerçeklemesinde aşılıyor (en büyük değeri arttırmak için -ftemplate-depth-NN kullanın)"
-#: cp/pt.c:4921
+#: cp/pt.c:5247
msgid "ambiguous class template instantiation for `%#T'"
msgstr "`%#T' için sınıf şablonu gerçeklemesi belirsiz"
-#: cp/pt.c:4928
+#: cp/pt.c:5254
msgid "%s %+#T"
msgstr "%s %+#T"
-#: cp/pt.c:5949 cp/pt.c:6054
+#: cp/pt.c:6284 cp/pt.c:6396
msgid "instantiation of `%D' as type `%T'"
msgstr "`%D' gerçeklemesi `%T' türünde"
-#: cp/pt.c:6096
+#: cp/pt.c:6440
msgid "invalid parameter type `%T'"
msgstr "geçersiz parametre türü `%T'"
-#: cp/pt.c:6098
+#: cp/pt.c:6442
msgid "in declaration `%D'"
msgstr "`%D' bildiriminde"
-#: cp/pt.c:6173
+#: cp/pt.c:6517
msgid "creating pointer to member function of non-class type `%T'"
-msgstr "sınıf olmayan `%T' türünde üye işlev göstergesi oluşturulması"
+msgstr "sınıf olmayan `%T' türünde üye işlev göstericisi oluşturulması"
-#: cp/pt.c:6336
+#: cp/pt.c:6680
msgid "creating array with size zero"
msgstr "dizi sıfır uzunlukta oluşturuluyor"
-#: cp/pt.c:6350
+#: cp/pt.c:6694
#, c-format
msgid "creating array with size zero (`%E')"
msgstr "sıfır boyutlu dizi oluşturuluyor (`%E')"
-#: cp/pt.c:6589
+#: cp/pt.c:6933
msgid "forming reference to void"
msgstr "void'e referans oluÅŸturuluyor"
-#: cp/pt.c:6591
+#: cp/pt.c:6935
msgid "forming %s to reference type `%T'"
msgstr "%s tür `%T'ye referans oluşturuyor"
-#: cp/pt.c:6629
+#: cp/pt.c:6973
msgid "creating pointer to member of non-class type `%T'"
-msgstr "sınıf olmayan `%T' türünde üye göstergesi oluşturulması"
+msgstr "sınıf olmayan `%T' türünde üye göstericisisi oluşturulması"
-#: cp/pt.c:6635
+#: cp/pt.c:6979
msgid "creating pointer to member reference type `%T'"
-msgstr "üye referans türü `%T' için gösterge oluşturulması"
+msgstr "`%T' üye referans türünde gösterici oluşturulması"
-#: cp/pt.c:6713
+#: cp/pt.c:7057
msgid "creating array of `%T'"
msgstr "`%T' dizisi oluşturulması"
-#: cp/pt.c:6756
+#: cp/pt.c:7100
msgid "`%T' is not a class, struct, or union type"
msgstr "`%T' bir class, struct, veya union türünde değil"
-#: cp/pt.c:6866
+#: cp/pt.c:7213
#, c-format
msgid "use of `%s' in template"
msgstr "şablonda `%s' kullanımı"
-#: cp/pt.c:7629
+#: cp/pt.c:7975
msgid "type `%T' composed from a local class is not a valid template-argument"
msgstr "bir yerel sınıfan oluşturulan `%T' geçerli bir şablon argümanı değil"
-#: cp/pt.c:7630
+#: cp/pt.c:7976
msgid " trying to instantiate `%D'"
msgstr " `%D' gerçeklenmeye çalışılıyor"
-#: cp/pt.c:8060
+#: cp/pt.c:8421
msgid "incomplete type unification"
msgstr "tamamlanmamış tür birleştirme"
-#: cp/pt.c:9027
+#: cp/pt.c:9387
#, c-format
msgid "use of `%s' in template type unification"
msgstr "şablon türü birleştirmede `%s' kullanımı"
-#: cp/pt.c:9447 cp/pt.c:9515
+#: cp/pt.c:9821 cp/pt.c:9893
msgid "explicit instantiation of non-template `%#D'"
msgstr "şablon olmayan `%#D' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:9463 cp/pt.c:9510
+#: cp/pt.c:9837 cp/pt.c:9888
msgid "no matching template for `%D' found"
msgstr "`%D' için eşleşen bir şablon yok"
-#: cp/pt.c:9469
+#: cp/pt.c:9843
msgid "explicit instantiation of `%#D'"
msgstr "`%#D' nin doğrudan gerçeklenmesi"
-#. [temp.spec]
-#.
-#. No program shall both explicitly instantiate and explicitly
-#. specialize a template.
-#: cp/pt.c:9486
-msgid "explicit instantiation of `%#D' after"
-msgstr "`%#D' nin doğrudan gerçeklenmesi sonra"
-
-#: cp/pt.c:9487 cp/pt.c:9624
-msgid "explicit specialization here"
-msgstr "burada doğrudan özelleştirme"
-
-#: cp/pt.c:9502
+#: cp/pt.c:9880
msgid "duplicate explicit instantiation of `%#D'"
msgstr "yinelenmiş doğrudan `%#D' gerçeklemesi"
-#: cp/pt.c:9527
+#: cp/pt.c:9905
msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
msgstr "ISO C++ doğrudan gerçeklemelerde `extern' kullanımına izin vermez"
-#: cp/pt.c:9531 cp/pt.c:9609
+#: cp/pt.c:9909 cp/pt.c:9999
msgid "storage class `%D' applied to template instantiation"
msgstr "saklama sınıfı `%D' şablon gerçeklemesine uygulanmış"
-#: cp/pt.c:9576
+#: cp/pt.c:9966
msgid "explicit instantiation of non-template type `%T'"
msgstr "şablon olmayan tür `%T' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:9590
+#: cp/pt.c:9980
msgid "explicit instantiation of `%#T' before definition of template"
msgstr "şablon tanımından önce `%T' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:9598
+#: cp/pt.c:9988
#, c-format
msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
msgstr "ISO C++ doğrudan gerçeklemelerde `%s' kullanımına izin vermez"
-#: cp/pt.c:9623
-msgid "explicit instantiation of `%#T' after"
-msgstr "`%#T' nin doğrudan gerçeklenmesi sonra"
-
-#: cp/pt.c:9641
+#: cp/pt.c:10032
msgid "duplicate explicit instantiation of `%#T'"
msgstr "yinelenmiş doğrudan `%#T' gerçeklemesi"
-#: cp/pt.c:10003
+#: cp/pt.c:10412
msgid "explicit instantiation of `%D' but no definition available"
msgstr "bir tanımlama olmadan `%D' nin doğrudan gerçeklenmesi"
-#: cp/pt.c:10375
+#: cp/pt.c:10815
msgid "`%#T' is not a valid type for a template constant parameter"
msgstr "`%#T' bir şablon sabiti parametresi için geçerli bir tür değildir"
-#: cp/repo.c:272
+#: cp/repo.c:271
msgid "-frepo must be used with -c"
msgstr "-frepo, -c ile kullanılmalı"
-#: cp/repo.c:366
+#: cp/repo.c:361
#, c-format
msgid "mysterious repository information in %s"
msgstr "%s içinde esrarengiz depo bilgisi"
-#: cp/repo.c:381
+#: cp/repo.c:376
#, c-format
msgid "can't create repository information file `%s'"
msgstr "depo bilgisi `%s' dosyasında oluşturulamıyor"
-#: cp/rtti.c:200
+#: cp/rtti.c:240
msgid "cannot use typeid with -fno-rtti"
msgstr "typeid, -fno-rtti ile kullanılamaz"
-#: cp/rtti.c:206
+#: cp/rtti.c:246
msgid "must #include <typeinfo> before using typeid"
msgstr "typeid kullanımından önce #include <türbilgisi> olmalı"
-#: cp/rtti.c:280
+#: cp/rtti.c:320
msgid "cannot create type information for type `%T' because its size is variable"
msgstr "boyutu değişken olduğundan tür `%T' için tür bilgisi oluşturulamıyor"
-#: cp/rtti.c:525 cp/rtti.c:539
+#: cp/rtti.c:584 cp/rtti.c:598
msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
-msgstr "`%#D' nin `%#T' ye dinamik çevirimi asla başarılı olamaz"
+msgstr "`%#D' nin `%#T' türüne özdevimli dönüşümü asla başarılı olamaz"
-#: cp/rtti.c:614
+#: cp/rtti.c:674
msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
-msgstr "`%E' (`%#T' türünde) den `%#T' ye dinamik çevirim yapılamaz (%s)"
+msgstr "`%E' (`%#T' türünde) den `%#T' türüne özdevimli dönüşüm yapılamaz (%s)"
-#: cp/search.c:340
-msgid "`%T' is an inaccessible base of `%T'"
-msgstr "`%T', `%T' nin bir erişilemeyen tabanıdır"
-
-#: cp/search.c:350
+#: cp/search.c:332
msgid "`%T' is an ambiguous base of `%T'"
msgstr "`%T', `%T' nin bir belirsiz tabanıdır"
-#: cp/search.c:1820
+#: cp/search.c:350
+msgid "`%T' is an inaccessible base of `%T'"
+msgstr "`%T', `%T' nin bir erişilemeyen tabanıdır"
+
+#. At parse time, we don't want to give this error, since
+#. we won't have enough state to make this kind of
+#. decision properly. But there are times (e.g., with
+#. enums in nested classes) when we do need to call
+#. this fn at parse time. So, in those cases, we pass
+#. complain as a 0 and just return a NULL_TREE.
+#: cp/search.c:1638
+msgid "assignment to non-static member `%D' of enclosing class `%T'"
+msgstr "`%D' statik olmayan ataması, `%T' sınıfında"
+
+#: cp/search.c:2050
msgid "adjusting pointers for covariant returns"
-msgstr "ortak değişen dönüşler için göstergeler ayarlanıyor"
+msgstr "ortak değişen dönüşler için göstericiler ayarlanıyor"
-#: cp/search.c:1824 cp/search.c:1831
+#: cp/search.c:2054 cp/search.c:2061
msgid "invalid covariant return type for `%#D'"
msgstr "`%#D' için ortak değişen dönüş türü geçersiz"
-#: cp/search.c:1825
+#: cp/search.c:2055
msgid " overriding `%#D' (must be pointer or reference to class)"
-msgstr " `%#D' değiştiriliyor (gösterge ya da sınıfa referans olmalı)"
+msgstr " `%#D' değiştiriliyor (gösterici ya da sınıfa referans olmalı)"
-#: cp/search.c:1832
+#: cp/search.c:2062
msgid " overriding `%#D' (must use pointer or reference)"
-msgstr " `%#D' değiştiriliyor (gösterge ya da referans olmalı)"
+msgstr " `%#D' değiştiriliyor (gösterici ya da referans olmalı)"
-#: cp/search.c:1837
+#: cp/search.c:2067
msgid "conflicting return type specified for `%#D'"
msgstr "`%D' için çelişen dönüş türü belirtilmiş"
-#: cp/search.c:1838
+#: cp/search.c:2068
msgid " overriding `%#D'"
msgstr " `%#D' deÄŸiÅŸtiriliyor"
-#: cp/search.c:1847
+#: cp/search.c:2077
#, c-format
msgid "looser throw specifier for `%#F'"
msgstr "`%#F' için throw belirteci daha gevşek"
-#: cp/search.c:1848
+#: cp/search.c:2078
#, c-format
msgid " overriding `%#F'"
msgstr " `%#F' deÄŸiÅŸtiriliyor"
#. A static member function cannot match an inherited
#. virtual member function.
-#: cp/search.c:1938
+#: cp/search.c:2167
msgid "`%#D' cannot be declared"
msgstr "`%#D' bildirilemez"
-#: cp/search.c:1939
+#: cp/search.c:2168
msgid " since `%#D' declared in base class"
msgstr " `%#D' taban sınıfta bildirildiğinden"
-#: cp/search.c:2080
+#: cp/search.c:2309
msgid "`%#D' needs a final overrider"
msgstr "`%#D' bir son deÄŸiÅŸtirici gerektiriyor"
-#: cp/semantics.c:911
+#: cp/semantics.c:919
#, c-format
msgid "type of asm operand `%E' could not be determined"
msgstr "asm terimi `%E'nin türü saptanamadı"
-#: cp/semantics.c:1053
+#: cp/semantics.c:1051
msgid "ISO C++ does not permit named return values"
msgstr "ISO C++ isimli dönen değerlere izin vermez"
-#: cp/semantics.c:1062
+#: cp/semantics.c:1060
msgid "return identifier `%D' already in place"
msgstr "dönüş belirteci `%D' zaten yerinde"
-#: cp/semantics.c:1070
+#: cp/semantics.c:1068
msgid "can't redefine default return value for constructors"
msgstr "kurucular için öntanımlı dönüş değeri tekrar tanımlanamaz"
-#: cp/semantics.c:1137
-msgid "base initializer for `%T'"
-msgstr "`%T' için taban ilklendirici"
-
-#: cp/semantics.c:1139
-msgid " will be re-ordered to precede member initializations"
-msgstr " üye ilklendirmelerinin öncesinde yeniden sıralanmış olacak"
+#: cp/semantics.c:1100
+msgid "only constructors take base initializers"
+msgstr "temel ilklendiricileri sadece kurucular alır"
-#: cp/semantics.c:1327
+#: cp/semantics.c:1343
msgid "`this' is unavailable for static member functions"
msgstr "statik üye işlevlerde `this' kullanılmaz"
-#: cp/semantics.c:1333
+#: cp/semantics.c:1349
msgid "invalid use of `this' in non-member function"
msgstr "üye olmayan işlevde `this' kullanımı geçersiz"
-#: cp/semantics.c:1335
+#: cp/semantics.c:1351
msgid "invalid use of `this' at top level"
msgstr "tepe seviyede `this' kullanımı geçersiz"
-#: cp/semantics.c:1373
+#: cp/semantics.c:1381
msgid "calling type `%T' like a method"
msgstr "tür `%T' çağrısı tıpkı bir yöntem gibi"
-#: cp/semantics.c:1409
+#: cp/semantics.c:1419
msgid "destructor specifier `%T::~%T()' must have matching names"
msgstr "yıkıcı belirteci `%T::~%T()' uyumlu isimlere sahip olmalı"
-#: cp/semantics.c:1415
+#: cp/semantics.c:1425
msgid "`%E' is not of type `%T'"
msgstr "`%E' `%T' türünde değil"
-#: cp/semantics.c:1608
+#: cp/semantics.c:1613
msgid "template type parameters must use the keyword `class' or `typename'"
msgstr "şablon türü parametrelerde `class' ya da `typename' sözcükleri kullanılmalı"
-#: cp/semantics.c:1670
+#: cp/semantics.c:1652
+msgid "invalid default template argument"
+msgstr "öntanımlı şablon argümanı geçersiz"
+
+#: cp/semantics.c:1694
msgid "definition of `%#T' inside template parameter list"
msgstr "şablon parametre listesinde `%#T' tanımı"
-#: cp/semantics.c:1686
+#: cp/semantics.c:1710
msgid "invalid definition of qualified type `%T'"
msgstr "nitelikli tür `%T' tanımı geçersiz"
-#: cp/semantics.c:2039
+#: cp/semantics.c:2053
+msgid "invalid base-class specification"
+msgstr "ana sınıf belirtimi geçersiz"
+
+#: cp/semantics.c:2062
msgid "base class `%T' has cv qualifiers"
msgstr "taban sınıf `%T' cv niteleyiciler içeriyor"
-#: cp/semantics.c:2072
+#: cp/semantics.c:2093
msgid "multiple declarators in template declaration"
msgstr "şablon bildiriminde çoklu bildiriciler"
-#: cp/spew.c:239
+#: cp/semantics.c:2120
+#, c-format
+msgid "type of `%E' is unknown"
+msgstr "`%E' türü bilinmiyor"
+
+#: cp/spew.c:225
#, c-format
msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
msgstr "tanıtıcı ismi `%s' GNU C++ dahili adlandırma stratejisi ile çelişiyor"
-#: cp/spew.c:1017 cp/spew.c:1292
+#: cp/spew.c:1002 cp/spew.c:1340
msgid "parse error at end of saved function text"
msgstr "kayıtlı işlev metninin sonunda ayrıştırma hatası"
-#: cp/spew.c:1062
+#: cp/spew.c:1090 cp/spew.c:1178
+msgid "%Hend of file read inside definition"
+msgstr "%Hdosya sonu tanım içinde okundu"
+
+#: cp/spew.c:1121
msgid "parse error in method specification"
msgstr "yöntem özelliklerinde ayrıştırma hatası"
-#: cp/spew.c:1104
+#: cp/spew.c:1161
msgid "function body for constructor missing"
msgstr "kurucu için işlev gövdesi yok"
-#: cp/spew.c:1371
+#: cp/spew.c:1262
+msgid "%Hend of file read inside default argument"
+msgstr "%Hdosya sonu öntanımlı argüman içinde okundu"
+
+#: cp/spew.c:1419
msgid "circular dependency in default args of `%#D'"
msgstr "`%#D' lik öntanımlı argümanlarda döngüsel bağımlılık"
-#: cp/spew.c:1435
+#: cp/spew.c:1483
msgid "invalid type `%T' for default argument to `%T'"
msgstr "`%T'ye öntanımlı argüman olarak geçersiz `%T' türü"
-#: cp/spew.c:1495
+#: cp/spew.c:1548
#, c-format
msgid "%s before `%s'"
msgstr "`%2$s' den önce %1$s"
-#: cp/spew.c:1497
+#: cp/spew.c:1550
#, c-format
msgid "%s before `%c'"
msgstr "`%2$c' den önce %1$s"
-#: cp/spew.c:1499
+#: cp/spew.c:1552
#, c-format
msgid "%s before `\\%o'"
msgstr "`\\%2$o' den önce %1$s"
-#: cp/spew.c:1502
+#: cp/spew.c:1555
#, c-format
msgid "%s before `%s' token"
msgstr "`%2$s' dizgeciğinden önce %1$s"
-#: cp/tree.c:224
+#: cp/tree.c:263 cp/tree.c:275
#, c-format
msgid "non-lvalue in %s"
msgstr "%s içinde olmayan sol yan"
-#: cp/tree.c:578
+#: cp/tree.c:562
msgid "`%V' qualifiers cannot be applied to `%T'"
msgstr "`%V' niteleyicisi `%T' ye uygulanamaz"
-#: cp/tree.c:581
-msgid "ignoring `%V' qualifiers on `%T'"
-msgstr "`%V' niteleyicileri `%T'de yoksayılıyor"
-
-#: cp/tree.c:1920
+#: cp/tree.c:1941
#, c-format
msgid "`%s' attribute can only be applied to Java class definitions"
msgstr "`%s' özniteliği sadece Java sınıf tanımlarında uygulanabilir"
-#: cp/tree.c:1950
+#: cp/tree.c:1971
#, c-format
msgid "`%s' attribute can only be applied to class definitions"
msgstr "`%s' özniteliği sadece sınıf tanımlarında uygulanabilir"
-#: cp/tree.c:1956
+#: cp/tree.c:1977
#, c-format
msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
msgstr "`%s' artık kullanılmıyor; g++ vtables şimdi öntanımlı olarak COM-uyumludur"
-#: cp/tree.c:1981
+#: cp/tree.c:2002
msgid "requested init_priority is not an integer constant"
msgstr "istenen init_priority bir tamsayı sabit değil"
-#: cp/tree.c:2002
+#: cp/tree.c:2023
#, c-format
msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
msgstr "`%s' özniteliği sadece sınıf türünün nesnelerinin dosya bağlamı tanımlarında kullanılabilir"
-#: cp/tree.c:2010
+#: cp/tree.c:2031
msgid "requested init_priority is out of range"
msgstr "istenen init_priority kapsamdışı"
-#: cp/tree.c:2020
+#: cp/tree.c:2041
msgid "requested init_priority is reserved for internal use"
msgstr "istenen init_priority iç kullanım için ayrılmıştır"
-#: cp/tree.c:2030
+#: cp/tree.c:2051
#, c-format
msgid "`%s' attribute is not supported on this platform"
msgstr "bu hedefte `%s' özniteliği desteklenmiyor"
-#: cp/typeck.c:518
+#: cp/tree.c:2588
+#, c-format
+msgid "lang_* check: failed in %s, at %s:%d"
+msgstr "lang_* denetimi: %2$s:%3$d: %1$s içinde başarısız"
+
+#: cp/typeck.c:524
#, c-format
msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
-msgstr "ISO C++'da işlev ve `void *' tür göstergeleri arasında %s yasaktır"
+msgstr "ISO C++'da işlev ve `void *' tür göstericileri arasında %s yasaktır"
-#: cp/typeck.c:539
+#: cp/typeck.c:545
msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
-msgstr "%s farklı gösterge türleri `%T' ve `%T' arasında bir çevrimi kaldırır"
+msgstr "%s farklı gösterici türleri `%T' ve `%T' arasında bir tür dönüşümünü kaldırır"
-#: cp/typeck.c:1430
+#: cp/typeck.c:1436
msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
msgstr "ISO C++ `%#T' den `(...)' ya dönüşümü yasaklar"
-#: cp/typeck.c:1500
-msgid "ISO C++ forbids applying `sizeof' to a function type"
-msgstr "ISO C++ işlev türe `sizeof' uygulanmasına izin vermez"
-
-#: cp/typeck.c:1506
-msgid "ISO C++ forbids applying `sizeof' to a member function"
-msgstr "ISO C++ bir üye işleve `sizeof' uygulanmasına izin vermez"
-
-#: cp/typeck.c:1512
-msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
-msgstr "ISO C++ bir boş tür olan `void' türe `sizeof' uygulanmasına izin vermez"
-
-#: cp/typeck.c:1526
-msgid "`sizeof' applied to non-static member"
-msgstr "'sizeof' bir statik olmayan üyeye uygulandı"
+#: cp/typeck.c:1514
+#, c-format
+msgid "invalid application of `%s' to a member function"
+msgstr "üye olmayan işleve `%s' uygulanması geçersiz"
-#: cp/typeck.c:1531
-msgid "`sizeof' applied to incomplete type `%T'"
-msgstr "sizeof bir içi boş `%T' türüne uygulandı"
+#: cp/typeck.c:1520
+#, c-format
+msgid "invalid application of `%s' to non-static member"
+msgstr "statik olmayab üyeye `%s' uygulanması geçersiz"
-#: cp/typeck.c:1561
+#: cp/typeck.c:1538
msgid "sizeof applied to a bit-field"
msgstr "sizeof bir bit alanına uygulandı"
-#: cp/typeck.c:1564
+#: cp/typeck.c:1541
msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
msgstr "ISO C++ bir işlev türü ifadesine `sizeof' uygulanmasına izin vermez"
-#: cp/typeck.c:1711
-msgid "invalid use of non-lvalue array"
-msgstr "sol tarafsız dizi kullanımı geçersiz"
-
-#: cp/typeck.c:1817
+#: cp/typeck.c:1759
msgid "deprecated conversion from string constant to `%T'"
msgstr "dizge sabitten `%T' ye modası geçmiş dönüşüm"
-#: cp/typeck.c:1835
-msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
-msgstr "üye `%T::%D' için kümeleme türü olmayan tür `%T' ifadesi içinde istek"
+#: cp/typeck.c:1890 cp/typeck.c:2122
+msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+msgstr "sınıf olmayan `%T' türündeki `%E'nin üyesi `%D' için istek"
+
+#: cp/typeck.c:1916
+msgid "`%D' is not a member of `%T'"
+msgstr "`%D' `%T' nin bir üyesi değil"
+
+#: cp/typeck.c:1957 cp/typeck.c:1978
+msgid "invalid access to non-static data member `%D' of NULL object"
+msgstr "NULL nesnenin static olmayan `%D' veri üyesine erişimi geçersiz"
-#: cp/typeck.c:2030
+#: cp/typeck.c:1959 cp/typeck.c:1980
+msgid "(perhaps the `offsetof' macro was used incorrectly)"
+msgstr "(belki `offsetof' makrosu yanlış kullanıldı)"
+
+#: cp/typeck.c:2168
+msgid "`%D::%D' is not a member of `%T'"
+msgstr "`%D::%D', `%T' nin bir üyesi değil"
+
+#: cp/typeck.c:2179
+msgid "`%T' is not a base of `%T'"
+msgstr "`%T' `%T' tabanında değil"
+
+#: cp/typeck.c:2199
msgid "destructor specifier `%T::~%T' must have matching names"
msgstr "yıkıcı belirteci `%T::~%T' uyumlu isimlere sahip olmalı"
-#: cp/typeck.c:2036
+#: cp/typeck.c:2205
msgid "type `%T' has no destructor"
msgstr "tür `%T' yıkıcıya sahip değil"
-#: cp/typeck.c:2053 cp/typeck.c:2135
-msgid "invalid use of type decl `%#D' as expression"
-msgstr "ifade olarak tür bildirimi `%#D' kullanımı geçersiz"
-
-#: cp/typeck.c:2058
-msgid "invalid use of template `%#D' as expression"
-msgstr "ifade olarak tür şablon `%#D' kullanımı geçersiz"
-
-#: cp/typeck.c:2126
-msgid "`%#T' has no member named `%D'"
-msgstr "`%#T' `%D' isminde bir üye içermiyor"
-
-#: cp/typeck.c:2176 cp/typeck.c:2205
-msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
-msgstr "POD olmayan tür `%T' deki offsetof geçersiz; yerine üyeye gösterge kullanın"
+#: cp/typeck.c:2244
+msgid "`%D' is not a member template function"
+msgstr "`%D' bir üye şablon işlevi değil"
#. A pointer to incomplete type (other than cv void) can be
#. dereferenced [expr.unary.op]/1
-#: cp/typeck.c:2316
+#: cp/typeck.c:2338
msgid "`%T' is not a pointer-to-object type"
-msgstr "`%T' bir nesneye gösterge türü değil"
+msgstr "`%T' bir nesne gösterici türü değil"
-#: cp/typeck.c:2343
+#: cp/typeck.c:2365
#, c-format
msgid "invalid use of `%s' on pointer to member"
-msgstr "üyeye göstergede `%s' kullanımı geçersiz"
+msgstr "üye göstericisinde `%s' kullanımı geçersiz"
-#: cp/typeck.c:2349
+#: cp/typeck.c:2371
msgid "invalid type argument"
msgstr "tür argümanı geçersiz"
-#: cp/typeck.c:2452
+#: cp/typeck.c:2474
msgid "ISO C++ forbids subscripting non-lvalue array"
msgstr "ISO C++ sol yan olmayan dizi indislemesine izin vermez"
-#: cp/typeck.c:2463
+#: cp/typeck.c:2485
msgid "subscripting array declared `register'"
msgstr "`register' olarak bildirilmiÅŸ dizi indislemesi"
-#: cp/typeck.c:2638 cp/typeck.c:2788
-msgid "pointer to member function called, but not in class scope"
-msgstr "üye işleve gösterge çağrıldı ama sınıf kapsamında değil"
-
-#: cp/typeck.c:2662
-msgid "object missing in call to method `%D'"
-msgstr "yöntem `%D' ye çağrı içinde nesne eksik"
-
-#: cp/typeck.c:2706
-msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
-msgstr "işlev `%D' aşırı yükü bildirilmiş ama onu çözümleyecek olanla görünen bir tanımı yok!?!"
-
-#: cp/typeck.c:2786
-msgid "invalid call to member function needing `this' in static member function scope"
-msgstr "statik üye işlev kapsamında `this' gerektiren üye işleve çağrı geçersiz"
+#: cp/typeck.c:2570
+#, c-format
+msgid "object missing in use of `%E'"
+msgstr "`%E' kullanımı içinde nesne eksik"
-#: cp/typeck.c:2965
+#: cp/typeck.c:2674
msgid "ISO C++ forbids calling `::main' from within program"
msgstr "ISO C++ program içinden `::main' çağrısına izin vermez"
-#: cp/typeck.c:2990
+#: cp/typeck.c:2699
#, c-format
msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
-msgstr "`%E (...)' içindeki üyeye gösterge işlevi çağırmada .* ya da ->* kullanılmalı"
+msgstr "`%E (...)' içindeki üye göstericili işlev çağrısında .* ya da ->* kullanılmalı"
-#: cp/typeck.c:3003
+#: cp/typeck.c:2712
#, c-format
msgid "`%E' cannot be used as a function"
msgstr "`%E' bir işlev olarak kullanılamaz"
-#: cp/typeck.c:3128
+#: cp/typeck.c:2824
msgid "too many arguments to %s `%+#D'"
msgstr "%s `%+#D' için argümanlar çok fazla"
-#: cp/typeck.c:3169
+#: cp/typeck.c:2865
msgid "parameter type of called function is incomplete"
msgstr "çağrılan işlevin parametre türünün içi boş"
-#: cp/typeck.c:3236
+#: cp/typeck.c:2928
msgid "too few arguments to %s `%+#D'"
msgstr "%s `%+#D' için argümanlar çok az"
-#: cp/typeck.c:3364 cp/typeck.c:3374
+#: cp/typeck.c:3056 cp/typeck.c:3066
msgid "assuming cast to type `%T' from overloaded function"
-msgstr "aşırı yüklü işlevden tür `%T' ye çevirim yapıldığı varsayılıyor"
+msgstr "aşırı yüklü işlevden `%T' ye tür dönüşümü yapıldığı varsayılıyor"
-#: cp/typeck.c:3434
+#: cp/typeck.c:3126
#, c-format
msgid "division by zero in `%E / 0'"
msgstr "`%E / 0' da sıfırla bölme"
-#: cp/typeck.c:3436
+#: cp/typeck.c:3128
#, c-format
msgid "division by zero in `%E / 0.'"
msgstr "`%E / 0.' da sıfırla bölme"
-#: cp/typeck.c:3466
+#: cp/typeck.c:3158
#, c-format
msgid "division by zero in `%E %% 0'"
msgstr "`%E %% 0' da sıfırla bölme"
-#: cp/typeck.c:3468
+#: cp/typeck.c:3160
#, c-format
msgid "division by zero in `%E %% 0.'"
msgstr "`%E %% 0.' da sıfırla bölme"
-#: cp/typeck.c:3548
+#: cp/typeck.c:3240
#, c-format
msgid "%s rotate count is negative"
msgstr "%s döngü sayısı negatif"
-#: cp/typeck.c:3551
+#: cp/typeck.c:3243
#, c-format
msgid "%s rotate count >= width of type"
msgstr "%s döngü sayısı >= tür genişliği"
-#: cp/typeck.c:3582 cp/typeck.c:3587 cp/typeck.c:3678 cp/typeck.c:3683
+#: cp/typeck.c:3274 cp/typeck.c:3279 cp/typeck.c:3370 cp/typeck.c:3375
msgid "ISO C++ forbids comparison between pointer and integer"
-msgstr "ISO C++ da gösterge ile tamsayı arasında karşılaştırmaya izin verilmez"
+msgstr "ISO C++ da gösterici ile tamsayı arasında karşılaştırmaya izin verilmez"
-#: cp/typeck.c:3863
+#: cp/typeck.c:3553
msgid "comparison between types `%#T' and `%#T'"
msgstr "`%#T' ile `%#T' türleri arasında karşılaştırma"
-#: cp/typeck.c:3899
+#: cp/typeck.c:3589
msgid "comparison between signed and unsigned integer expressions"
msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
-#: cp/typeck.c:3964
+#: cp/typeck.c:3654
msgid "invalid operands of types `%T' and `%T' to binary `%O'"
msgstr "iki terimli `%O' için `%T' ve `%T' türünde geçersiz terimler"
@@ -16997,274 +17731,280 @@ msgstr "iki terimli `%O' için `%T' ve `%T' türünde geçersiz terimler"
#. performed. Note that pointer-difference and pointer-addition
#. have already been handled above, and so we don't end up here in
#. that case.
-#: cp/typeck.c:3986
+#: cp/typeck.c:3676
msgid "NULL used in arithmetic"
msgstr "aritmetik içinde NULL kullanımı"
-#: cp/typeck.c:4053
+#: cp/typeck.c:3743
msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
-msgstr "ISO C++ bir çıkartma işlemi içinde `void *' türde gösterge kullanımına izin vermez"
+msgstr "ISO C++ bir çıkartma işlemi içinde `void *' türde gösterici kullanımına izin vermez"
-#: cp/typeck.c:4055
+#: cp/typeck.c:3745
msgid "ISO C++ forbids using pointer to a function in subtraction"
-msgstr "ISO C++ bir çıkartma işlemi içindeki bir işleve gösterge kullanımına izin vermez"
+msgstr "ISO C++ bir çıkartma işlemi içindeki bir işlev göstericisi kullanımına izin vermez"
-#: cp/typeck.c:4057
+#: cp/typeck.c:3747
msgid "ISO C++ forbids using pointer to a method in subtraction"
-msgstr "ISO C++ bir çıkartma işlemi içindeki bir yönteme gösterge kullanımına izin vermez"
+msgstr "ISO C++ bir çıkartma işlemi içinde bir yöntem göstericisi kullanımına izin vermez"
-#: cp/typeck.c:4059
+#: cp/typeck.c:3749
msgid "ISO C++ forbids using pointer to a member in subtraction"
-msgstr "ISO C++ bir çıkartma işlemi içindeki bir üyeye gösterge kullanımına izin vermez"
+msgstr "ISO C++ bir çıkartma işlemi içinde bir üye göstericisi kullanımına izin vermez"
-#: cp/typeck.c:4071
+#: cp/typeck.c:3761
msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
-msgstr "gösterge aritmetiğinde tamamlanmamış türe gösterge kullanımı geçersiz"
+msgstr "gösterici aritmetiğinde tamamlanmamış türe gösterici kullanımı geçersiz"
-#: cp/typeck.c:4108
-msgid "attempt to take address of bit-field structure member `%D'"
-msgstr "bit-alanı yapının `%D' üyesinin adresi alınmaya çalışılıyor"
+#: cp/typeck.c:3821
+#, c-format
+msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+msgstr "'%E' kullanımı üye işleve göstrge biçiminde geçersiz. Bir nitelikli kimlik kullanın."
-#: cp/typeck.c:4185
+#: cp/typeck.c:3827
+#, c-format
+msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+msgstr "parantez içene alınmış '%E' üye işleve gösterici biçiminde kullanılamaz"
+
+#: cp/typeck.c:3850
msgid "taking address of temporary"
msgstr "geçicinin adresi alınıyor"
-#: cp/typeck.c:4387
+#: cp/typeck.c:4091
#, c-format
msgid "ISO C++ forbids %sing an enum"
msgstr "ISO C++ bir enum'um %s-lenmesine izin vermez"
-#: cp/typeck.c:4399
+#: cp/typeck.c:4103
msgid "cannot %s a pointer to incomplete type `%T'"
-msgstr "içi boş tür `%T' ye bir gösterge %s yapılamaz"
+msgstr "içi boş `%T' türüne bir gösterici %s yapılamaz"
-#: cp/typeck.c:4406
+#: cp/typeck.c:4110
msgid "ISO C++ forbids %sing a pointer of type `%T'"
-msgstr "ISO C++ da bir `%T' türü gösterge %s için izin verilmez"
+msgstr "ISO C++ da bir `%T' türünde göstericiye %s için izin verilmez"
-#: cp/typeck.c:4431
+#: cp/typeck.c:4135
msgid "cast to non-reference type used as lvalue"
-msgstr "sol yan olarak kullanılmış referans olmayan türe çevirim"
+msgstr "sol yan olarak kullanılmış referans olmayan türe dönüşüm"
-#: cp/typeck.c:4465
+#: cp/typeck.c:4169
msgid "invalid use of `--' on bool variable `%D'"
msgstr "bool değişken `%D' üstünde `--' kullanımı geçersiz"
#. ARM $3.4
-#: cp/typeck.c:4498
+#: cp/typeck.c:4202
msgid "ISO C++ forbids taking address of function `::main'"
msgstr "ISO C++ `::main' işlevinin adresinin alınmasına izin vermez"
#. An expression like &memfn.
-#: cp/typeck.c:4565
+#: cp/typeck.c:4269
msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ üye işleve bir gösterge şekillendirecek bir niteliksiz statik olmayan üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir."
+msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir niteliksiz statik olmayan üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir."
-#: cp/typeck.c:4567
+#: cp/typeck.c:4271
msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
-msgstr "ISO C++ üye işleve bir gösterge şekillendirecek bir sınır üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir"
+msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir sınır üye işlevin adresinin alınmasına izin vermez. `&%T::%D' denebilir"
-#: cp/typeck.c:4591
+#: cp/typeck.c:4295
msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
-msgstr "ISO C++ bir sol yan olmayan ifadeye çevirimin adresinin alınmasına izin vermez"
+msgstr "ISO C++ bir sol yan olmayan ifadeye dönüşüm adresi alınmasına izin vermez"
-#: cp/typeck.c:4607
-msgid "unary `&'"
-msgstr "tekil `&'"
+#: cp/typeck.c:4324
+msgid "attempt to take address of bit-field structure member `%D'"
+msgstr "bit-alanı yapının `%D' üyesinin adresi alınmaya çalışılıyor"
-#: cp/typeck.c:4727
+#: cp/typeck.c:4444
msgid "taking address of destructor"
msgstr "yıkıcı adresinin alınması"
-#: cp/typeck.c:4740
+#: cp/typeck.c:4457
msgid "taking address of bound pointer-to-member expression"
-msgstr "üyeye gösterge ifadesinin sınır adresi alınıyor"
+msgstr "üyeye göstericili ifadenin sınır adresi alınıyor"
-#: cp/typeck.c:4756
+#: cp/typeck.c:4473
msgid "cannot create pointer to reference member `%D'"
-msgstr "referans üyesi `%D' için gösterge oluşturulamaz"
+msgstr "referans üyesi `%D' için gösterici oluşturulamaz"
-#: cp/typeck.c:4824
+#: cp/typeck.c:4536
msgid "cannot take the address of `this', which is an rvalue expression"
msgstr "bir sağ yan ifade olarak `this'in adresi alınamaz"
-#: cp/typeck.c:4840
+#: cp/typeck.c:4555
msgid "address requested for `%D', which is declared `register'"
msgstr "`register' olarak bildirilmiş `%D' için adres isteği"
-#: cp/typeck.c:5060
+#: cp/typeck.c:4682
msgid "static_cast from type `%T' to type `%T' casts away constness"
-msgstr "`%T' den `%T' ye static_cast const'suz dışına çevirim yapıyor"
+msgstr "`%T' türünden `%T' türüne durağan tür dönüşümü cost'suz dışı dönüşüme sebep oluyor"
-#: cp/typeck.c:5068
+#: cp/typeck.c:4871
msgid "invalid static_cast from type `%T' to type `%T'"
-msgstr "tür `%T' den tür `%T' ye static_cast geçersiz"
+msgstr "`%T' türünden `%T' türüne durağan tür dönüşümü geçersiz"
-#: cp/typeck.c:5107
+#: cp/typeck.c:4910
msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
-msgstr "tür `%T' nin bir sağ değerinin tür `%T' ye reinterpret_cast geçersiz"
+msgstr "`%T' türündeki bir sağ taraf değerinin `%T' türüne yeniden yorumlamalı dönüşümü geçersiz"
-#: cp/typeck.c:5127
+#: cp/typeck.c:4930
msgid "reinterpret_cast from `%T' to `%T' loses precision"
-msgstr "`%T' den `%T' ye reinterpret_cast doÄŸruluÄŸu kaybediyor"
+msgstr "`%T' den `%T' ye yeniden yorumlamalı tür dönüşümü hassasiyet kaybı oluşturuyor"
-#: cp/typeck.c:5140
+#: cp/typeck.c:4943
msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
-msgstr "`%T' den `%T' ye reinterpret_cast const (ya da volatile) dışı çevirim yapıyor"
+msgstr "`%T' türünden `%T' türüne yeniden yorumlamalı dönüşüm const (ya da volatile) dışı dönüşüm yapıyor"
-#: cp/typeck.c:5149
+#: cp/typeck.c:4952
msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
-msgstr "ISO C++ işlev ve nesne göstergeleri arasında çevirime izin vermez"
+msgstr "ISO C++ işlev ve nesne göstericileri arasında dönüşüme izin vermez"
-#: cp/typeck.c:5155
+#: cp/typeck.c:4958
msgid "invalid reinterpret_cast from type `%T' to type `%T'"
-msgstr "tür `%T' den tür `%T' ye reinterpret_cast geçersiz"
+msgstr "`%T' türünden `%T' türüne yeniden yorumlamalı dönüşüm geçersiz"
-#: cp/typeck.c:5182
+#: cp/typeck.c:4985
msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
-msgstr "ne bir gösterge ne de bir veri-üyesi-göstergesi olan tür `%T' ile const_cast kullanımı geçersiz"
+msgstr "ne bir gösterici ne de bir veri üyesi göstericili olan `%T' türü ile const_cast kullanımı geçersiz"
-#: cp/typeck.c:5185
+#: cp/typeck.c:4988
msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
-msgstr "bir gösterge ya da bir işlev türüne referans tür `%T' ile const_cast kullanımı geçersiz"
+msgstr "bir gösterici ya da bir işlev türüne referans `%T' türü ile const_cast kullanımı geçersiz"
-#: cp/typeck.c:5208
+#: cp/typeck.c:5011
msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
-msgstr "tür `%T' nin bir sağ değerinden tür `%T' ye const_cast geçersiz"
+msgstr "`%T' türündeki bir sağ taraf değerinden `%T' türüne const_cast geçersiz"
-#: cp/typeck.c:5224
+#: cp/typeck.c:5027
msgid "invalid const_cast from type `%T' to type `%T'"
-msgstr "tür `%T' den tür `%T' ye const_cast geçersiz"
+msgstr "`%T' türünden `%T' türüne const_cast geçersiz"
-#: cp/typeck.c:5266 cp/typeck.c:5271
+#: cp/typeck.c:5069 cp/typeck.c:5074
msgid "ISO C++ forbids casting to an array type `%T'"
-msgstr "ISO C++ da `%T' dizi türüne çevirime izin verilmez"
+msgstr "ISO C++ da `%T' dizi türüne dönüşüme izin verilmez"
-#: cp/typeck.c:5279
+#: cp/typeck.c:5082
msgid "invalid cast to function type `%T'"
-msgstr "`%T' işlev türüne çevirim geçersiz"
+msgstr "`%T' işlev türüne dönüşüm geçersiz"
-#: cp/typeck.c:5331
+#: cp/typeck.c:5138
msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
-msgstr "`%T' den `%T' ye çevirim, gösterge hedef türünden niteleyicileri iptal ediyor"
+msgstr "`%T' türünden `%T' türüne dönüşüm, gösterici hedef türünden niteleyicileri iptal ediyor"
-#: cp/typeck.c:5377
+#: cp/typeck.c:5184
msgid "cast from `%T' to `%T' increases required alignment of target type"
-msgstr "`%T' den `%T' ye çevirim hedef türün hizalama gereksinimini arttırıyor"
+msgstr "`%T' türünden `%T' türüne dönüşüm hedef türün hizalama gereksinimini arttırıyor"
-#: cp/typeck.c:5546
+#: cp/typeck.c:5357
msgid " in evaluation of `%Q(%#T, %#T)'"
msgstr " `%Q(%#T, %#T)' nin geliÅŸiminde"
-#: cp/typeck.c:5588
+#: cp/typeck.c:5399
msgid "ISO C++ forbids cast to non-reference type used as lvalue"
-msgstr "ISO C++ sol yan olarak kullanılmış referanssız türe çevirime izin vermez"
+msgstr "ISO C++ sol taraf değeri olarak kullanılmış referanssız türe dönüşüme izin vermez"
-#: cp/typeck.c:5659
+#: cp/typeck.c:5463
msgid "incompatible types in assignment of `%T' to `%T'"
msgstr "`%T' den `%T' ye değer atamada uyumsuz türler"
-#: cp/typeck.c:5666
+#: cp/typeck.c:5470
msgid "ISO C++ forbids assignment of arrays"
msgstr "ISO C++ dizilerin deÄŸer atanarak bildirimine izin vermez"
-#: cp/typeck.c:5809
+#: cp/typeck.c:5577
msgid " in pointer to member function conversion"
-msgstr " göstergeden üye işleve dönüşümde"
+msgstr " üye işleve gösterici dönüşümde"
-#: cp/typeck.c:5817
+#: cp/typeck.c:5585
msgid " in pointer to member conversion"
-msgstr " göstergeden üyeye dönüşümde"
+msgstr " üyeye gösterici dönüşümde"
#. This is a reinterpret cast, we choose to do nothing.
-#: cp/typeck.c:5828 cp/typeck.c:5847
+#: cp/typeck.c:5596 cp/typeck.c:5615
msgid "pointer to member cast via virtual base `%T' of `%T'"
-msgstr "sanal taban `%T' (`%T' nin) üzerinden göstergeden üyeye çevirim"
+msgstr "sanal taban `%T' türü (`%T' türünün) üzerinden üye göstericisine dönüşüm"
-#: cp/typeck.c:5851
+#: cp/typeck.c:5619
msgid "pointer to member conversion via virtual base `%T' of `%T'"
-msgstr "`%T' nin sanal tabanı `%T' üzerinden üye göstergesine dönüşüm"
+msgstr "`%T' türünün sanal tabanı `%T' türü üzerinden üye göstericisine dönüşüm"
-#: cp/typeck.c:5921
+#: cp/typeck.c:5695
msgid "invalid conversion to type `%T' from type `%T'"
msgstr "tür `%T' nin `%T' den dönüşümü geçersiz"
-#: cp/typeck.c:6086
+#: cp/typeck.c:5860
msgid "passing NULL used for non-pointer %s %P of `%D'"
-msgstr "`%D' işlevinin %P. argümanında göstergesiz %s için kulanılan NULL'un aktarılmasında"
+msgstr "`%D' işlevinin %P. argümanında göstericisiz %s için kullanılan NULL'un aktarılmasında"
-#: cp/typeck.c:6089
+#: cp/typeck.c:5863
msgid "%s to non-pointer type `%T' from NULL"
-msgstr "NULL'dan gösterge olmayan tür `%T' ye %s"
+msgstr "NULL'dan gösterici olmayan `%T' türüne %s"
-#: cp/typeck.c:6097
+#: cp/typeck.c:5871
msgid "passing `%T' for %s %P of `%D'"
msgstr "`%D' işlevinin %P. argümanında %s için `%T'nin aktarılmasında"
-#: cp/typeck.c:6100
+#: cp/typeck.c:5874
msgid "%s to `%T' from `%T'"
msgstr "`%T' nin `%T' den %s"
-#: cp/typeck.c:6110
+#: cp/typeck.c:5884
msgid "passing negative value `%E' for %s %P of `%D'"
msgstr "`%D' işlevinin %P. argümanında %s için `%T' negatif değerinin aktarılmasında"
-#: cp/typeck.c:6113
+#: cp/typeck.c:5887
msgid "%s of negative value `%E' to `%T'"
msgstr "%s `%E' nin `%T' için negatif değeridir"
-#: cp/typeck.c:6200
+#: cp/typeck.c:5982
msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
msgstr "`%T' `%T' ye argüman `%P' den `%D' ye için dönüştürülemez"
-#: cp/typeck.c:6203
+#: cp/typeck.c:5985
msgid "cannot convert `%T' to `%T' in %s"
msgstr " `%T' `%T' ye %s içinde dönüştürülemez"
-#: cp/typeck.c:6290 cp/typeck.c:6292
+#: cp/typeck.c:6073 cp/typeck.c:6075
msgid "in passing argument %P of `%+D'"
msgstr "`%+D' nin %P. argümanının aktarılmasında"
-#: cp/typeck.c:6406
+#: cp/typeck.c:6190
msgid "returning reference to temporary"
msgstr "geçiciye referans dönüyor"
-#: cp/typeck.c:6413
+#: cp/typeck.c:6197
msgid "reference to non-lvalue returned"
msgstr "sağ yansız dönüşlüye referans"
-#: cp/typeck.c:6425
+#: cp/typeck.c:6209
msgid "reference to local variable `%D' returned"
msgstr "yerel değişken `%D' ye referansa döndürüldü"
-#: cp/typeck.c:6428
+#: cp/typeck.c:6212
msgid "address of local variable `%D' returned"
msgstr "yerel değişken `%D' adresi döndürüldü"
-#: cp/typeck.c:6459
+#: cp/typeck.c:6243
msgid "returning a value from a destructor"
msgstr "bir yıkıcıdan değer dönüyor"
#. If a return statement appears in a handler of the
#. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.c:6467
+#: cp/typeck.c:6251
msgid "cannot return from a handler of a function-try-block of a constructor"
msgstr "bir kurucunun bir işlev deneme bloğunun bir tutamağından döndürülemez"
#. You can't return a value from a constructor.
-#: cp/typeck.c:6470
+#: cp/typeck.c:6254
msgid "returning a value from a constructor"
msgstr "kurucudan bir değer döndürülemez"
-#: cp/typeck.c:6487
+#: cp/typeck.c:6271
msgid "return-statement with no value, in function declared with a non-void return type"
msgstr "void olmayan dönen türlü işlevde return deyimi değer almamış"
-#: cp/typeck.c:6503
+#: cp/typeck.c:6287
msgid "return-statement with a value, in function declared with a void return type"
msgstr "void dönüşlü bildirilmiş işlevde return deyiminde bir değer var"
-#: cp/typeck.c:6524
+#: cp/typeck.c:6308
msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
msgstr "`operator new', `throw()' olarak bildirilmedikçe NULL dönmemeli (ya da -fcheck-new etkisindedir)"
@@ -17272,229 +18012,181 @@ msgstr "`operator new', `throw()' olarak bildirilmedikçe NULL dönmemeli (ya da
msgid "type `%T' is not a base type for type `%T'"
msgstr "tür `%T' tür `%T' için taban tür değil"
-#: cp/typeck2.c:151
+#: cp/typeck2.c:157
msgid "cannot declare variable `%D' to be of type `%T'"
msgstr "değişken `%D' `%T' türünde bildirilemez"
-#: cp/typeck2.c:154
+#: cp/typeck2.c:160
msgid "cannot declare parameter `%D' to be of type `%T'"
msgstr "parametre `%D' `%T' türünde bildirilemez"
-#: cp/typeck2.c:157
+#: cp/typeck2.c:163
msgid "cannot declare field `%D' to be of type `%T'"
msgstr "alan `%D' `%T' türünde bildirilemez"
-#: cp/typeck2.c:161
+#: cp/typeck2.c:167
msgid "invalid return type for member function `%#D'"
msgstr "üye işlev `%#D' için dönen değer türü geçersiz"
-#: cp/typeck2.c:163
+#: cp/typeck2.c:169
msgid "invalid return type for function `%#D'"
msgstr "işlev `%#D' için dönen değer türü geçersiz"
-#: cp/typeck2.c:166
+#: cp/typeck2.c:172
msgid "cannot allocate an object of type `%T'"
msgstr "`%T' türünde bir nesne tahsis edilemez"
-#: cp/typeck2.c:173
+#: cp/typeck2.c:179
msgid " because the following virtual functions are abstract:"
msgstr " çünkü aşağıdaki sanal işlevler kuramsaldır:"
-#: cp/typeck2.c:175
+#: cp/typeck2.c:181
msgid "\t%#D"
msgstr "\t%#D"
-#: cp/typeck2.c:178
+#: cp/typeck2.c:184
msgid " since type `%T' has abstract virtual functions"
msgstr " tür `%T' mutlak sanal işlevlere sahip olduğundan"
-#: cp/typeck2.c:213
-msgid "invalid use of undefined type `%#T'"
-msgstr "tanımsız `%#T' türünün kullanımı geçersiz"
-
-#: cp/typeck2.c:214
-msgid "forward declaration of `%#T'"
-msgstr "`%#T' için ileriye bildirim"
-
-#: cp/typeck2.c:218
-msgid "invalid use of `%T'"
-msgstr "`%T' kullanımı geçersiz"
-
-#: cp/typeck2.c:232
-msgid "invalid use of member (did you forget the `&' ?)"
-msgstr "üye kullanımı geçersiz ( `&' unutuldu mu? )"
-
-#: cp/typeck2.c:236
-msgid "invalid use of template type parameter"
-msgstr "şablon türü parametre kullanımı geçersiz"
-
-#: cp/typeck2.c:243
-msgid "address of overloaded function with no contextual type information"
-msgstr "bağlamsal tür bilgileri olmayan aşırı yüklü işlev adresi"
-
-#: cp/typeck2.c:245
-msgid "overloaded function with no contextual type information"
-msgstr "bağlamsal tür bilgileri olmayan aşırı yüklü işlev"
-
-#: cp/typeck2.c:247
-msgid "insufficient contextual information to determine type"
-msgstr "türü saptayacak bağlamsal bilgiler yetersiz"
-
-#: cp/typeck2.c:301
+#: cp/typeck2.c:338
msgid "constructor syntax used, but no constructor declared for type `%T'"
msgstr "kurucu sözdizimi kullanılmış ama `%T' türü için kurucu bildirilmemiş"
-#: cp/typeck2.c:311
-msgid "initializer list construction invalid for derived class object `%D'"
-msgstr "ilklendirici liste yapısı türetilmiş sınıf nesnesi `%D' için geçersiz"
-
-#: cp/typeck2.c:313
-msgid "initializer list construction invalid for polymorphic class object `%D'"
-msgstr "ilklendirici liste yapısı polimorfik sınıf nesnesi `%D' için geçersiz"
-
-#: cp/typeck2.c:316 cp/typeck2.c:322 cp/typeck2.c:328
-msgid "initializer list construction invalid for `%D'"
-msgstr "ilklendirici liste yapısı `%D' için geçersiz"
-
-#: cp/typeck2.c:317
-msgid "due to the presence of a constructor"
-msgstr "bir kurucunun varlığından kaynaklanıyor"
-
-#: cp/typeck2.c:323 cp/typeck2.c:329
-msgid "due to non-public access of member `%D'"
-msgstr "üye `%D' nin public olmayan erişiminden dolayı"
-
-#: cp/typeck2.c:341
+#: cp/typeck2.c:349
msgid "comma expression used to initialize return value"
msgstr "dönen değeri ilklendirirken virgüllü ifadeler kullanılmış"
-#: cp/typeck2.c:350
+#: cp/typeck2.c:358
msgid "cannot initialize arrays using this syntax"
msgstr "bu sözdizimi kullanılarak diziler ilklendirilemez"
-#: cp/typeck2.c:412
-msgid "ISO C++ forbids non-constant aggregate initializer expressions"
-msgstr "ISO C++ sabit olmayan kümeleme ilklendirici ifadelerine izin vermez"
-
-#: cp/typeck2.c:498
+#: cp/typeck2.c:473
msgid "initializing array with parameter list"
msgstr "dizi parametre listesi ile ilklendiriliyor"
-#: cp/typeck2.c:554
+#: cp/typeck2.c:529
msgid "initializer for scalar variable requires one element"
msgstr "skalar değişken ilklendiricisi bir öğe gerektirir"
-#: cp/typeck2.c:561
+#: cp/typeck2.c:536
msgid "braces around scalar initializer for `%T'"
msgstr "`%T' için skalar ilklendiriciyi kuşatan parantezler"
-#: cp/typeck2.c:564
+#: cp/typeck2.c:539
msgid "ignoring extra initializers for `%T'"
msgstr "`%T' için fazladan ilklendiricilerin yoksayılması"
-#: cp/typeck2.c:576
+#: cp/typeck2.c:551
msgid "variable-sized object of type `%T' may not be initialized"
msgstr "`%T' türünden değişken-uzunluklu nesne ilklendirilmiş olmayabilir"
-#: cp/typeck2.c:586
+#: cp/typeck2.c:561
msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
msgstr "`%T' türündeki alt nesne kurucu tarafından ilklendirilmiş olmalı, `%E' tarafından değil"
-#: cp/typeck2.c:652
+#: cp/typeck2.c:627
msgid "aggregate has a partly bracketed initializer"
msgstr "küme kısmen köşeli parantezli ilklendirici içeriyor"
-#: cp/typeck2.c:690 cp/typeck2.c:791
+#: cp/typeck2.c:665 cp/typeck2.c:770
msgid "non-trivial labeled initializers"
msgstr "anlamsız olmayan etiketli ilklendiriciler"
-#: cp/typeck2.c:707
+#: cp/typeck2.c:682
msgid "non-empty initializer for array of empty elements"
msgstr "boş öğeler dizisi için boş olmayan ilklendirici"
-#: cp/typeck2.c:757
+#: cp/typeck2.c:736
msgid "initializer list for object of class with virtual base classes"
msgstr "sanal taban sınıflarla sınıf nesnesi için öndeğer listesi"
-#: cp/typeck2.c:763
+#: cp/typeck2.c:742
msgid "initializer list for object of class with base classes"
msgstr "taban sınıflarla sınıf nesnesi için öndeğer listesi"
-#: cp/typeck2.c:769
+#: cp/typeck2.c:748
msgid "initializer list for object using virtual functions"
msgstr "sanal işlevler kullanan nesne için ilklendirici listesi"
-#: cp/typeck2.c:832 cp/typeck2.c:849
+#: cp/typeck2.c:811 cp/typeck2.c:827
msgid "missing initializer for member `%D'"
msgstr "üye `%D' için ilklendirici eksik"
-#: cp/typeck2.c:837
+#: cp/typeck2.c:816
msgid "uninitialized const member `%D'"
msgstr "ilklendirilmemiş sabit üyesi `%D'"
-#: cp/typeck2.c:840
+#: cp/typeck2.c:818
msgid "member `%D' with uninitialized const fields"
msgstr "üye `%D' ilklendirilmemiş sabit alanlı"
-#: cp/typeck2.c:843
+#: cp/typeck2.c:821
msgid "member `%D' is uninitialized reference"
msgstr "üye `%D' ilklendirilmemiş referanstır"
-#: cp/typeck2.c:886
+#: cp/typeck2.c:868
msgid "index value instead of field name in union initializer"
msgstr "birleşik yapı ilklendiricideki alan isminin yerine index değeri"
-#: cp/typeck2.c:898
+#: cp/typeck2.c:880
msgid "no field `%D' in union being initialized"
msgstr "birleşik yapı ilklendirmesinde `%D' diye bir alan yok"
-#: cp/typeck2.c:906
+#: cp/typeck2.c:888
msgid "union `%T' with no named members cannot be initialized"
msgstr "union `%T' isimli üyeler yokken ilklendirilemez"
-#: cp/typeck2.c:942
+#: cp/typeck2.c:924
msgid "excess elements in aggregate initializer"
msgstr "küme ilklendiricide gereğinden fazla öğe"
-#: cp/typeck2.c:1047
+#: cp/typeck2.c:1038
msgid "circular pointer delegation detected"
-msgstr "döngüsel gösterge görevlendirmesi saptandı"
+msgstr "döngüsel gösterici görevlendirmesi saptandı"
-#: cp/typeck2.c:1060
+#: cp/typeck2.c:1051
msgid "base operand of `->' has non-pointer type `%T'"
-msgstr "`->' için taban terim bir gösterge olmayan `%T' türünde"
+msgstr "`->' için taban terim bir gösterici olmayan `%T' türünde"
-#: cp/typeck2.c:1074
+#: cp/typeck2.c:1065
msgid "result of `operator->()' yields non-pointer result"
-msgstr "`operator->()' gösterge olmayan sonuç veriyor"
+msgstr "`operator->()' gösterici olmayan sonuç veriyor"
-#: cp/typeck2.c:1076
+#: cp/typeck2.c:1067
msgid "base operand of `->' is not a pointer"
-msgstr "`->' için taban terim bir gösterge değil"
+msgstr "`->' için taban terim bir gösterici değil"
-#: cp/typeck2.c:1142
+#: cp/typeck2.c:1133
msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
-msgstr "`%E', `%T' türünde olduğundan bir üye göstergesi plarak kullanılamaz"
+msgstr "`%E', `%T' türünde olduğundan bir üye göstericisi olarak kullanılamaz"
-#: cp/typeck2.c:1149
+#: cp/typeck2.c:1140
msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
-msgstr "üye göstergesi `%E' kümeleme türü olmayan `%T' türündeki `%E' ye uygulanamaz"
+msgstr "üye göstericisi `%E' kümeleme türü olmayan `%T' türündeki `%E' ye uygulanamaz"
-#: cp/typeck2.c:1158
+#: cp/typeck2.c:1149
msgid "member type `%T::' incompatible with object type `%T'"
msgstr "üye türü `%T::' nesne türü `%T' ile uyumsuz"
-#: cp/typeck2.c:1195
+#: cp/typeck2.c:1186
msgid "`%T' fails to be a typedef or built-in type"
msgstr "`%T' bir typedef veya yerleşik tür olarak hatalı"
-#: cp/typeck2.c:1268
+#: cp/typeck2.c:1259
#, c-format
msgid "ISO C++ forbids defining types within %s"
msgstr "ISO C++ %s ile türlerin tanımlanmasına izin vermez"
+#: cp/typeck2.c:1384
+msgid "call to function `%D' which throws incomplete type `%#T'"
+msgstr "içi boş tür `%#T' yakalanırken `%D' işlevine çağrı"
+
+#: cp/typeck2.c:1387
+msgid "call to function which throws incomplete type `%#T'"
+msgstr "içi boş tür `%#T' yakalanırken işleve çağrı"
+
#. XXX Not i18n clean.
-#: cp/cp-tree.h:3854
+#: cp/cp-tree.h:3936
#, c-format
msgid "%s is deprecated, please see the documentation for details"
msgstr "%s artık kullanılmıyor, lütfen ayrıntılar için belgelere bakınız"
@@ -17556,16 +18248,14 @@ msgid "Export functions even if they can be inlined"
msgstr "Özümlenebilir olsalar bile işlevler ihracedilir"
#: cp/lang-options.h:75
-msgid "Only emit explicit template instatiations"
+msgid "Only emit explicit template instantiations"
msgstr ""
"Sadece doğrudan belirtilmiş şablon gerçeklemeleri\n"
" yayınlanır"
#: cp/lang-options.h:78
-msgid "Only emit explicit instatiations of inline templates"
-msgstr ""
-"Sadece özümleme şablonlarının doğrudan başka\n"
-" değerlerle gerçeklenmesi sağlanır"
+msgid "Only emit explicit instantiations of inline templates"
+msgstr "Sadece özümleme şablonlarının doğrudan gerçeklenmesi sağlanır"
#: cp/lang-options.h:84
msgid "Don't pedwarn about uses of Microsoft extensions"
@@ -17609,7 +18299,7 @@ msgstr "Kullanılmayan sanal işlevler iptal edilir"
#: cp/lang-options.h:112
msgid "Implement vtables using thunks"
-msgstr "İşlev gösterge tablosu aşılarla oluşturulur"
+msgstr "İşlev gösterici tablosu aşılarla oluşturulur"
#: cp/lang-options.h:115
msgid "Emit common-like symbols as weak symbols"
@@ -17651,7 +18341,7 @@ msgstr "Sentezleme davranışı Cfront'dan farklıysa uyarır"
#: cp/lang-options.h:144
msgid "Don't warn when type converting pointers to member functions"
-msgstr "Üye işlev tür dönüşüm göstergelerinde uyarmaz"
+msgstr "Üye işlev göstericilerinn tür dönüşümlerinde uyarmaz"
#: cp/lang-options.h:146
msgid "Warn about violations of Effective C++ style rules"
@@ -17665,7 +18355,7 @@ msgstr ""
#: cp/lang-options.h:152
msgid "Warn if a C style cast is used in a program"
-msgstr "Bir programda C tarzı çevirim kullanılmışsa uyarır"
+msgstr "Bir yazılımda C tarzı tür dönüşümü kullanılmışsa uyarır"
#: cp/lang-options.h:156
msgid "Don't warn when non-templatized friend functions are declared within a template"
@@ -17677,65 +18367,65 @@ msgstr ""
msgid "Don't announce deprecation of compiler features"
msgstr "Derleyici özellikleri indiriminde uyarmaz"
-#: f/bad.c:386
+#: f/bad.c:387
msgid "note:"
msgstr "bilgi:"
-#: f/bad.c:390
+#: f/bad.c:391
msgid "warning:"
msgstr "uyarı:"
-#: f/bad.c:394
+#: f/bad.c:395
msgid "fatal:"
msgstr "ölümcül:"
-#: f/bad.c:436
+#: f/bad.c:437
msgid "(continued):"
msgstr "(devam):"
-#: f/bad.c:486 f/bad.c:504
+#: f/bad.c:487 f/bad.c:505
msgid "[REPORT BUG!!] %"
msgstr "[HATAYI RAPORLAYIN!!] %"
-#: f/bad.c:493 f/bad.c:525
+#: f/bad.c:494 f/bad.c:526
msgid "[REPORT BUG!!]"
msgstr "[HATAYI RAPORLAYIN!!]"
-#: f/com.c:3122
+#: f/com.c:3132
#, no-c-format
msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
msgstr "ASSIGN'lı etiket %0 daki `%A' içine sığmıyor -- daha geniş çocuklama kullanın"
-#: f/com.c:11606
+#: f/com.c:11623
msgid "no INTEGER type can hold a pointer on this configuration"
-msgstr "bu yapılandırmada bir göstergeyi tutabilen INTEGER tür yok"
+msgstr "bu yapılandırmada bir göstericiyi tutabilen INTEGER tür yok"
-#: f/com.c:11831
+#: f/com.c:11844
#, c-format
msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
-msgstr "yapılandırma: REAL, INTEGER, ve LOGICAL %d bit uzunlukta ve göstergeler de"
+msgstr "yapılandırma: REAL, INTEGER, ve LOGICAL %d bit genişlikte,"
-#: f/com.c:11833
+#: f/com.c:11846
#, c-format
msgid "and pointers are %d bits wide, but g77 doesn't yet work"
msgstr "%d bit uzunluktadır, ama g77 hepsi 32 bit uzunlukta olmadığından henüz"
-#: f/com.c:11835
+#: f/com.c:11848
msgid "properly unless they all are 32 bits wide"
msgstr "düzgün çalışmıyor"
-#: f/com.c:11836
+#: f/com.c:11849
msgid "Please keep this in mind before you report bugs."
msgstr "Lütfen bunu gözönünde bulundurarak bir hata raporu gönderin."
#. I/O will probably crash.
-#: f/com.c:11844
+#: f/com.c:11857
#, c-format
msgid "configuration: char * holds %d bits, but ftnlen only %d"
msgstr "yapılandırma: char * %d bit tutar ama ftnlen sadece %d bittir"
#. ASSIGN 10 TO I will crash.
-#: f/com.c:11853
+#: f/com.c:11866
#, c-format
msgid ""
"configuration: char * holds %d bits, but INTEGER only %d --\n"
@@ -17744,68 +18434,68 @@ msgstr ""
"yapılandırma: char * %d bit tutar ama INTEGER sadece %d bittir\n"
" -- ASSIGN deyimi başarısız"
-#: f/com.c:13687
+#: f/com.c:13681
msgid "In statement function"
msgstr "Deyim işlevi içinde:"
-#: f/com.c:13697
+#: f/com.c:13691
msgid "Outside of any program unit:\n"
msgstr "Her program biriminin dışında:\n"
-#: f/com.c:15386
+#: f/com.c:15320
#, no-c-format
msgid "%A from %B at %0%C"
msgstr "%0%C deki %B den %A"
-#: f/com.c:15563
+#: f/com.c:15497
msgid "directory name must immediately follow -I"
msgstr "dizin ismi -I'ye yapışık yazılmalı"
-#: f/com.c:15706
+#: f/com.c:15640
#, no-c-format
msgid "At %0, INCLUDE file %A exists, but is not readable"
msgstr "%0 da, INCLUDE dosyası %A var ama okunabilir değil"
-#: f/com.c:15741
+#: f/com.c:15675
#, no-c-format
msgid "At %0, INCLUDE nesting too deep"
msgstr "%0 da, INCLUDE iç içeliği çok derin"
-#: f/expr.c:9613
+#: f/expr.c:9614
#, no-c-format
msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
-msgstr "%0 ve %1 de tek satırda iki aritmetik işlemimi -- parantez kullanın"
+msgstr "%0 ve %1 de tek satırda iki aritmetik işleci -- parantez kullanın"
-#: f/expr.c:9663
+#: f/expr.c:9664
#, no-c-format
msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
-msgstr "%0 daki işlemimi %1 dekinden daha düşük önceliğe sahip -- parantez kullanın"
+msgstr "%0 daki işleç %1 dekinden daha düşük önceliğe sahip -- parantez kullanın"
-#: f/expr.c:10524
+#: f/expr.c:10525
#, no-c-format
msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
msgstr "%1 ve %2 deki LOGICAL terimleri için %0 da .EQ./.NE. yerine .EQV./.NEQV. kullanın"
-#: f/expr.c:10895
+#: f/expr.c:10896
#, no-c-format
msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
msgstr "%1 deki ** için desteklenmeyen terim -- öntanımlı olan INTEGER'a dönüştürülüyor"
-#: f/g77spec.c:256
+#: f/g77spec.c:234
#, c-format
msgid "overflowed output arg list for `%s'"
msgstr "`%s' için çıktı argüman listesi taştı"
-#: f/g77spec.c:395
+#: f/g77spec.c:373
msgid "--driver no longer supported"
msgstr "--driver artık desteklenmiyor"
-#: f/g77spec.c:408
+#: f/g77spec.c:386
#, c-format
msgid "argument to `%s' missing"
msgstr "`%s' için argüman eksik"
-#: f/g77spec.c:412
+#: f/g77spec.c:390
msgid "no input files; unwilling to write output files"
msgstr "girdi dosyası yok; çıktı dosyaları istemeyerek yazılıyor"
@@ -17814,121 +18504,103 @@ msgstr "girdi dosyası yok; çıktı dosyaları istemeyerek yazılıyor"
msgid "Implicit declaration of `%A' at %0"
msgstr "`%A' %0 da örtük bildirilmiş"
-#: f/lex.c:274
-#, no-c-format
-msgid "The meaning of `\\x' (at %0) varies with -traditional"
-msgstr "`\\x'in anlamı (%0 içinde) -traditional ile değişir"
-
-#: f/lex.c:325
-#, no-c-format
-msgid "The meaning of `\\a' (at %0) varies with -traditional"
-msgstr "`\\a'nın anlamı (%0 içinde) -traditional ile değişir"
-
-#: f/lex.c:355
+#: f/lex.c:326
#, no-c-format
msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
msgstr "%0 içinde ISO standardı olmayan önceleme dizgesi, '\\%A'"
-#: f/lex.c:374
+#: f/lex.c:345
#, no-c-format
msgid "Unknown escape sequence `\\%A' at %0"
msgstr "%0 içinde bilinmeyen önceleme dizgesi, `\\%A'"
-#: f/lex.c:383
+#: f/lex.c:354
#, no-c-format
msgid "Unterminated escape sequence `\\' at %0"
msgstr "%0 içinde sonlandırılmamış denetim dizgesi `\\'"
-#: f/lex.c:394
+#: f/lex.c:365
#, no-c-format
msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
msgstr "0x%A karakter kodundan önceki önceleme dizgesi %0 da, `\\' anlamsız"
-#: f/lex.c:422
+#: f/lex.c:393
#, no-c-format
msgid "\\x used at %0 with no following hex digits"
msgstr "%0 içinde \\x'den sonra onaltılık rakamlar yok"
-#: f/lex.c:436
+#: f/lex.c:407
#, no-c-format
msgid "Hex escape at %0 out of range"
msgstr "Onaltılık öncelem %0 da kapsam dışı"
-#: f/lex.c:470
+#: f/lex.c:441
#, no-c-format
msgid "Escape sequence at %0 out of range for character"
msgstr "%0 daki önceleme dizgesi karakter için kapsam dışı"
-#: f/lex.c:593
-msgid "the meaning of `\\x' varies with -traditional"
-msgstr "`\\x'in anlamı -traditional ile değişir"
-
-#: f/lex.c:630
+#: f/lex.c:595
msgid "hex escape out of range"
msgstr "onaltılık öncelem kapsam dışı"
-#: f/lex.c:676
-msgid "the meaning of `\\a' varies with -traditional"
-msgstr "`\\a'nın anlamı -traditional ile değişir"
-
-#: f/lex.c:692
+#: f/lex.c:648
#, c-format
msgid "non-ANSI-standard escape sequence, `\\%c'"
msgstr "ANSI standardı olmayan önceleme dizgesi, `\\%c'"
-#: f/lex.c:705
+#: f/lex.c:661
#, c-format
msgid "non-ISO escape sequence `\\%c'"
msgstr "ANSI standardı olmayan önceleme dizgesi, '\\%c'"
-#: f/lex.c:709
+#: f/lex.c:665
#, c-format
msgid "unknown escape sequence `\\%c'"
msgstr "bilinmeyen önceleme dizgesi, `\\%c'"
-#: f/lex.c:711
+#: f/lex.c:667
#, c-format
msgid "unknown escape sequence: `\\' followed by char code 0x%x"
msgstr "bilinmeyen önceleme dizgesi, `\\'den sonra 0x%x karakter kodu geliyor"
-#: f/lex.c:788
+#: f/lex.c:744
msgid "badly formed directive -- no closing quote"
msgstr "hatalı şekillendirilmiş yönerge -- kapatan tırnak yok"
-#: f/lex.c:846
+#: f/lex.c:802
msgid "#-lines for entering and leaving files don't match"
msgstr "girme ve bırakma dosyaları için #-satırları uyumsuz"
-#: f/lex.c:1008
+#: f/lex.c:964
msgid "bad directive -- missing close-quote"
msgstr "yönerge hatalı -- kapatan tırnak eksik"
-#: f/lex.c:1122
+#: f/lex.c:1078
#, c-format
msgid "ignoring pragma: %s"
msgstr "pragma yoksayılıyor: %s"
-#: f/lex.c:1200
+#: f/lex.c:1156
msgid "invalid #ident"
msgstr "#ident geçersiz"
-#: f/lex.c:1217
+#: f/lex.c:1173
msgid "undefined or invalid # directive"
msgstr "atanmamış ya da geçersiz # yönergesi"
-#: f/lex.c:1273
+#: f/lex.c:1229
msgid "invalid #line"
msgstr "#line geçersiz"
-#: f/lex.c:1329 f/lex.c:1373
+#: f/lex.c:1285 f/lex.c:1329
msgid "use `#line ...' instead of `# ...' in first line"
msgstr "ilk satırda `# ...' yerine `#line ...' kullanın"
-#: f/lex.c:1383
+#: f/lex.c:1339
msgid "invalid #-line"
msgstr "#-satırı geçersiz"
-#: f/lex.c:1476
+#: f/lex.c:1432
#, no-c-format
msgid "Null character at %0 -- line ignored"
msgstr "%0 da null karakter(ler) -- satır yoksayıldı"
@@ -17938,21 +18610,25 @@ msgstr "%0 da null karakter(ler) -- satır yoksayıldı"
msgid "INCLUDE at %0 not the only statement on the source line"
msgstr "%0 daki INCLUDE, kaynak satırındaki tek deyim değil"
-#: f/ste.c:1404 f/ste.c:1755
+#: f/ste.c:1400 f/ste.c:1747
msgid "ASSIGNed FORMAT specifier is too small"
msgstr "ASSIGN'lı FORMAT belirteci çok küçük"
#. ~~~Someday handle CHARACTER*1, CHARACTER*N
-#: f/ste.c:2636
+#: f/ste.c:2624
#, no-c-format
msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
msgstr "CHARACTER türü SELECT CASE (%0 da) desteklenmiyor -- özür"
-#: f/ste.c:2965
+#: f/ste.c:2729
+msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+msgstr "SELECT (%0 da) yinelenmiş case içeriyor -- CASE(ler) için tamsayı taşmasını kontrol edin"
+
+#: f/ste.c:2959
msgid "ASSIGN to variable that is too small"
msgstr "Değişkene ASSIGN çok küçük"
-#: f/ste.c:2993
+#: f/ste.c:2987
msgid "ASSIGNed GOTO target variable is too small"
msgstr "ASSIGN'lı GOTO hedef değişkeni çok küçük"
@@ -17961,21 +18637,21 @@ msgstr "ASSIGN'lı GOTO hedef değişkeni çok küçük"
msgid "Local adjustable symbol `%A' at %0"
msgstr "%0 da ayarlanabilir yerel sembol `%A'"
-#: f/target.c:2560
+#: f/target.c:2550
msgid "data initializer on host with different endianness"
-msgstr "farklı kıymetli bayt sıralamalı makina üzerinde veri ilklendirmesi"
+msgstr "farklı kıymetli bayt sıralamalı konak üzerinde veri ilklendirmesi"
-#: f/top.c:238
+#: f/top.c:237
#, c-format
msgid "%s no longer supported -- try -fvxt"
msgstr "%s artık desteklenmiyor -- yerine -fvxt deneyin"
-#: f/top.c:240
+#: f/top.c:239
#, c-format
msgid "%s no longer supported -- try -fno-vxt -ff90"
msgstr "%s artık desteklenmiyor -- yerine -fno-vxt -ff90 deneyin"
-#: f/top.c:308 f/top.c:310
+#: f/top.c:307 f/top.c:309
#, c-format
msgid "%s disabled, use normal debugging flags"
msgstr "%s iptal edildi, normal hata ayıklama seçeneği kullanın"
@@ -18354,7 +19030,7 @@ msgstr "%0 daki dizgecik (%1 deki ifade ya da alt ifadede) geçersiz"
#: f/bad.def:48
#, no-c-format
msgid "Missing operand for operator at %1 at end of expression at %0"
-msgstr "%1 deki işlemimi için %0 daki ifadenin sonunda terim eksik"
+msgstr "%1 deki işleç için %0 daki ifadenin sonunda terim eksik"
#: f/bad.def:51
#, no-c-format
@@ -18449,7 +19125,7 @@ msgstr "%0 daki üstel gerçel sayı için %1 de değer eksik"
#: f/bad.def:135
#, no-c-format
msgid "Expected binary operator between expressions at %0 and at %1"
-msgstr "%0 ve %1 deki ifadeler arasında iki terimli işlemimi umuluyor"
+msgstr "%0 ve %1 deki ifadeler arasında iki terimli işleci umuluyor"
#: f/bad.def:253
#, no-c-format
@@ -18509,12 +19185,12 @@ msgstr "%0 daki sonlandırıcı öncesinde sahte virgül"
#: f/bad.def:436
#, no-c-format
msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
-msgstr "%0 da, INTERFACE deyimi için ASSIGNMENT yerine atama işlemimi (=) olmayan OPERATOR belirtilmesi"
+msgstr "%0 da, INTERFACE deyimi için ASSIGNMENT yerine atama işleci (=) olmayan OPERATOR belirtilmesi"
#: f/bad.def:439
#, no-c-format
msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
-msgstr "%0 da, INTERFACE deyimi için ASSIGNMENT yerine atama işlemimi (=) olan OPERATOR belirtilmesi"
+msgstr "%0 da, INTERFACE deyimi için ASSIGNMENT yerine atama işleci (=) olan OPERATOR belirtilmesi"
#: f/bad.def:452
#, no-c-format
@@ -18614,7 +19290,7 @@ msgstr "%0 daki END deyiminde eksik olan `%A' anahtar sözcüğü %1 tarafından
#: f/bad.def:509
#, no-c-format
msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
-msgstr "%1 daki INTERFACE bir genel isim, iÅŸlemimi ya da atama belirtmediÄŸinden %0 daki MODULE PROCEDURE deyimi iptal edildi"
+msgstr "%1 daki INTERFACE bir genel isim, işleç ya da atama belirtmediğinden %0 daki MODULE PROCEDURE deyimi iptal edildi"
#: f/bad.def:512
#, no-c-format
@@ -18799,7 +19475,7 @@ msgstr "%1 için alt dizge referans içinde %0 da ':' eksik"
#: f/bad.def:650
#, no-c-format
msgid "Invalid use at %0 of substring operator on %1"
-msgstr "%1 üstünde altdizge işlemiminin %0 da kullanımı geçersiz"
+msgstr "%1 üstünde altdizge işlecinin %0 da kullanımı geçersiz"
#: f/bad.def:653
#, no-c-format
@@ -19238,319 +19914,324 @@ msgstr "Ä°sim listesi"
msgid "In anything"
msgstr "Hiçbirinde"
-#: java/check-init.c:915
+#: java/check-init.c:917
#, c-format
msgid "internal error in check-init: tree code not implemented: %s"
msgstr "check-init içinde hata: ağaç kodu oluşmadı: %s"
-#: java/check-init.c:988
+#: java/check-init.c:990
#, c-format
msgid "final field '%s' may not have been initialized"
msgstr "son alan '%s' ilklendirilmiÅŸ olmayabilir"
-#: java/class.c:568 java/class.c:593
+#: java/class.c:539 java/class.c:564
msgid "internal error - too many interface type"
msgstr "iç hata - çok fazla interface tür"
-#: java/class.c:744
+#: java/class.c:677
msgid "bad method signature"
msgstr "yöntem imzası hatalı"
-#: java/class.c:793
+#: java/class.c:726
msgid "misplaced ConstantValue attribute (not in any field)"
msgstr "ConstantValue özniteliği yanlış yerde (her alanda değil)"
-#: java/class.c:795
+#: java/class.c:728
#, c-format
msgid "duplicate ConstantValue attribute for field '%s'"
msgstr "alan '%s' için ConstantValue özniteliği yinelendi"
-#: java/class.c:806
+#: java/class.c:739
#, c-format
msgid "ConstantValue attribute of field '%s' has wrong type"
msgstr "Alan '%s' için ConstantValue özniteliği yanlış türde"
-#: java/class.c:1170
+#: java/class.c:1103
#, c-format
msgid "field '%s' not found in class"
msgstr "alan '%s' sınıfta yok"
-#: java/class.c:1432
+#: java/class.c:1365
msgid "abstract method in non-abstract class"
msgstr "kuramsal olmayan sınıfta kuramsal yöntem"
-#: java/class.c:2133
+#: java/class.c:2078
#, c-format
msgid "non-static method '%s' overrides static method"
msgstr "statik olmayan yöntem '%s' statik yönteme zorlanıyor"
-#: java/decl.c:1515
+#: java/decl.c:1541
#, c-format
msgid "In %s: overlapped variable and exception ranges at %d"
msgstr "%s içinde: %d de birbiri içinde değişken ve olağandışılık aralıkları"
-#: java/decl.c:1603
+#: java/decl.c:1622
msgid "bad type in parameter debug info"
msgstr "parametre hata ayıklama bilgisindeki tür hatalı"
-#: java/decl.c:1613
+#: java/decl.c:1632
#, c-format
msgid "bad PC range for debug info for local `%s'"
msgstr "yerel `%s' için hata ayıklama bilgisinin program sayacı (PC) kapsamı hatalı"
-#: java/expr.c:549
+#: java/expr.c:530
msgid "stack underflow - dup* operation"
msgstr "yığın alttan taşması - dup* işlemi"
-#: java/expr.c:1541
+#: java/expr.c:1534
#, c-format
msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
msgstr "referans `%s' belirsiz; `%s' ve `%s' arayüzlerinde görünüyor"
-#: java/expr.c:1570
+#: java/expr.c:1563
#, c-format
msgid "field `%s' not found"
msgstr "alan `%s' yok"
-#: java/expr.c:1725
+#: java/expr.c:1715
msgid "ret instruction not implemented"
msgstr "ret işlemi gerçeklenmedi"
-#: java/expr.c:1862
+#: java/expr.c:1857
#, c-format
msgid "method '%s' not found in class"
msgstr "sınıf içinde yöntem '%s' yok"
-#: java/expr.c:2066
+#: java/expr.c:2060
#, c-format
msgid "failed to find class '%s'"
msgstr "sınıf '%s' bulunamadı"
-#: java/expr.c:2078
+#: java/expr.c:2070
#, c-format
msgid "class '%s' has no method named '%s' matching signature '%s'"
msgstr "sınıf '%1$s' '%3$s' ile eşleşen '%2$s' yöntem ismini içermiyor"
-#: java/expr.c:2088
+#: java/expr.c:2080
msgid "invokestatic on non static method"
msgstr "stattik olmayan yöntemde invokestatic"
-#: java/expr.c:2093
+#: java/expr.c:2085
msgid "invokestatic on abstract method"
msgstr "kuramsal yöntemde invokestatic"
-#: java/expr.c:2101
+#: java/expr.c:2093
msgid "invoke[non-static] on static method"
msgstr "statik yöntemde invoke[non-static]"
-#: java/expr.c:2386
+#: java/expr.c:2396
#, c-format
msgid "missing field '%s' in '%s'"
msgstr "'%2$s' içinde alan '%1$s' eksik"
-#: java/expr.c:2392
+#: java/expr.c:2402
#, c-format
msgid "mismatching signature for field '%s' in '%s'"
msgstr "'%2$s' içindeki alan '%1$s' için imza çelişkili"
-#: java/expr.c:2415
+#: java/expr.c:2425
#, c-format
msgid "assignment to final field `%s' not in field's class"
msgstr "bitiş alanı `%s' ataması alanların sınıfı içinde değil"
-#: java/expr.c:2420
+#: java/expr.c:2430
#, c-format
msgid "assignment to final static field `%s' not in class initializer"
msgstr "bitiş statik alanı `%s' ataması sınıf ilklendiricisi içinde değil"
-#: java/expr.c:2427
+#: java/expr.c:2437
#, c-format
msgid "assignment to final field `%s' not in constructor"
msgstr "bitiş alanı `%s' ataması kurucu içinde değil"
-#: java/expr.c:2665
+#: java/expr.c:2684
#, c-format
msgid "can't expand %s"
msgstr "`%s' geniÅŸletilemiyor"
-#: java/expr.c:2841
+#: java/expr.c:2861
msgid "invalid PC in line number table"
msgstr "satır numarası tablosunda geçersiz program sayacı (PC)"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2886
+#: java/expr.c:2906
#, c-format
msgid "unreachable bytecode from %d to before %d"
msgstr "%d den %d nin öncesine baytkod erişilebilir değil"
#. We've just reached the end of a region of dead code.
-#: java/expr.c:2923
+#: java/expr.c:2943
#, c-format
msgid "unreachable bytecode from %d to the end of the method"
msgstr "yöntemin sonundaki %d den baytkod ulaşılabilir değil"
#. duplicate code from LOAD macro
-#: java/expr.c:3237
+#: java/expr.c:3261
msgid "unrecogized wide sub-instruction"
msgstr "geniş altişlem anlaşılamadı"
-#: java/jcf-io.c:410
+#: java/jcf-io.c:543
#, c-format
msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
msgstr "sınıf %s için kaynak dosyası onunla eşleşen sınıf dosyasından daha yeni. Yerine kaynak dosyası `%s' kullanıldı"
-#: java/jcf-parse.c:376
+#: java/jcf-parse.c:338
msgid "bad string constant"
msgstr "dizge sabit hatalı"
-#: java/jcf-parse.c:394
+#: java/jcf-parse.c:356
#, c-format
msgid "bad value constant type %d, index %d"
msgstr "değer sabiti türü %d, indeks %d hatalı"
-#: java/jcf-parse.c:566
+#: java/jcf-parse.c:528
#, c-format
msgid "can't reopen %s"
msgstr "%s tekrar açılamıyor"
-#: java/jcf-parse.c:571
+#: java/jcf-parse.c:533
#, c-format
msgid "can't close %s"
msgstr "%s kapatılamıyor"
-#: java/jcf-parse.c:653
+#: java/jcf-parse.c:619
#, c-format
msgid "cannot find file for class %s"
msgstr "sınıf %s için dosya bulunamıyor"
-#: java/jcf-parse.c:665
+#: java/jcf-parse.c:631
msgid "not a valid Java .class file"
msgstr "geçerli bir Java .class dosyası değil"
-#: java/jcf-parse.c:668
+#: java/jcf-parse.c:634
msgid "error while parsing constant pool"
msgstr "sabit havuzu çözümlenirken hata"
-#: java/jcf-parse.c:671
+#: java/jcf-parse.c:637
#, c-format
msgid "error in constant pool entry #%d\n"
msgstr "sabit havuzu girdisi #%d de hata\n"
#. FIXME - where was first time
-#: java/jcf-parse.c:683
+#: java/jcf-parse.c:649
#, c-format
msgid "reading class %s for the second time from %s"
msgstr "sınıf %s ikinci defadır %s den okunuyor"
-#: java/jcf-parse.c:701
+#: java/jcf-parse.c:667
msgid "error while parsing fields"
msgstr "alanlar çözümlenirken hata"
-#: java/jcf-parse.c:704
+#: java/jcf-parse.c:670
msgid "error while parsing methods"
msgstr "yöntemler çözümlenirken hata"
-#: java/jcf-parse.c:707
+#: java/jcf-parse.c:673
msgid "error while parsing final attributes"
msgstr "bitiş öznitelikleri çözümlenirken hata"
-#: java/jcf-parse.c:721
+#: java/jcf-parse.c:687
#, c-format
msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
msgstr "`gnu.gcj.gcj-compiled' özel sıfır uzunluklu `gnu.gcj.gcj-compiled' özniteliğine sahip olmayan `%s' içinde bulundu. Bu durum genellikle sınıf dosyalarının yolu doğru belirtilmediğinde ortaya çıkar. Sınıf dosyalarının yolunun nasıl belirtileceğini açıklayan info sayfasına bakmak için komut satırından `info gcj \"Input Options\"' yazınız"
-#: java/jcf-parse.c:811
+#: java/jcf-parse.c:777
msgid "missing Code attribute"
msgstr "Code özniteliği eksik"
-#: java/jcf-parse.c:1050
+#: java/jcf-parse.c:1014
msgid "source file seen twice on command line and will be compiled only once"
msgstr "komut satırında kaynak dosyası iki kere kullanılmış ve sadece bir kere derlenecek"
-#: java/jcf-parse.c:1066
+#: java/jcf-parse.c:1030
msgid "no input file specified"
msgstr "girdi dosyası belirtilmedi"
-#: java/jcf-parse.c:1095
+#: java/jcf-parse.c:1059
#, c-format
msgid "can't close input file %s"
msgstr "girdi dosyası %s kapatılamıyor"
-#: java/jcf-parse.c:1132
+#: java/jcf-parse.c:1096
#, c-format
msgid "bad zip/jar file %s"
msgstr "zip/jar dosyası %s hatalı"
-#: java/jcf-write.c:2630
+#: java/jcf-write.c:2650
#, c-format
msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
msgstr "generate_bytecode_insn içinde hata - ağaç kodu oluşturulamadı: %s"
-#: java/jcf-write.c:2937
+#: java/jcf-write.c:2988
msgid "field initializer type mismatch"
msgstr "alan ilklendirici türü uyumsuzluğu"
-#: java/jcf-write.c:3346
+#: java/jcf-write.c:3419
#, c-format
msgid "can't create directory %s"
msgstr "dizin %s oluşturulamıyor"
-#: java/jv-scan.c:183
+#: java/jcf-write.c:3473
+#, c-format
+msgid "can't create %s"
+msgstr "%s oluşturulamıyor"
+
+#: java/jv-scan.c:187
msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
msgstr "`--print-main', `--list-class' ve `--complexity' seçeneklerinden yalnız biri kullanılabilir"
-#: java/jv-scan.c:186
+#: java/jv-scan.c:190
#, c-format
msgid "can't open output file `%s'"
msgstr "çıktı dosyası `%s' açılamıyor"
-#: java/jv-scan.c:220
+#: java/jv-scan.c:224
#, c-format
msgid "file not found `%s'"
msgstr "`%s' yok"
-#: java/jvspec.c:427
+#: java/jvspec.c:426
msgid "can't specify `-D' without `--main'\n"
msgstr "`--main' olmaksızın `-D' belirtilemez\n"
-#: java/jvspec.c:430
+#: java/jvspec.c:429
#, c-format
msgid "`%s' is not a valid class name"
msgstr "\"%s\" geçerli bir sınıf ismi değil"
-#: java/jvspec.c:436
-msgid "-R requires -o"
-msgstr " -R, -o gerektirir"
+#: java/jvspec.c:435
+msgid "--resource requires -o"
+msgstr "--resource, -o gerektirir"
-#: java/jvspec.c:443
+#: java/jvspec.c:442
msgid "warning: already-compiled .class files ignored with -C"
msgstr "uyarı: zaten derlenmiş olan .class dosyaları -C ile yoksayıldı"
-#: java/jvspec.c:450
+#: java/jvspec.c:449
msgid "cannot specify both -C and -o"
msgstr "hem -C hem de -o belirtilemez"
-#: java/jvspec.c:462
+#: java/jvspec.c:461
msgid "cannot create temporary file"
msgstr "geçici dosya oluşturulamıyor"
-#: java/jvspec.c:490
+#: java/jvspec.c:489
msgid "using both @FILE with multiple files not implemented"
msgstr "çoklu dosyalarla her iki @FILE kullanımı gerçeklenmedi"
-#: java/jvspec.c:548
+#: java/jvspec.c:538
msgid "cannot specify `main' class when not linking"
msgstr "ilintileme yapılmayacaksa `main' sınıfı belirtilemez"
-#: java/lang.c:453
+#: java/lang.c:548
msgid "can't do dependency tracking with input from stdin"
msgstr "Standart girdiden girdili bağımlılık izlemesi yapılamaz"
-#: java/lang.c:469
+#: java/lang.c:564
msgid "couldn't determine target name for dependency tracking"
msgstr "bağımlılık izlemesi için hedef isim saptanamıyor"
-#: java/lex.c:308
+#: java/lex.c:303
#, c-format
msgid ""
"unknown encoding: `%s'\n"
@@ -19569,192 +20250,295 @@ msgstr ""
msgid "can't mangle %s"
msgstr "%s anlamlandırılamıyor"
-#: java/mangle_name.c:145 java/mangle_name.c:217
+#: java/mangle_name.c:144 java/mangle_name.c:216
msgid "internal error - invalid Utf8 name"
msgstr "iç hata - Utf8 ismi geçersiz"
-#: /usr/share/bison.simple:650
-msgid "parse error; also virtual memory exceeded"
-msgstr "ayrıştırma hatası; ayrıca sanal bellek aşıldı"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:747 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:785
-msgid "Missing name"
-msgstr "Ä°sim eksik"
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:881
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:962
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1303
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1364
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1574
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1796
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1805
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1816
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1827
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1839
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1854
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1871
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1873
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1945
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2116
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2178
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2330
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2342
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2349
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2356
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2367
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2369
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2407
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2409
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2411
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2432
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2434
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2436
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2452
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2454
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2475
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2477
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2479
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2507
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2509
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2511
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2513
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2531
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2533
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2555
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2566
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2577
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2588
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2601
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2605
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2607
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2620
+msgid "Missing term"
+msgstr "Terim eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:749 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:787 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:812 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:996 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1343 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1556 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1785 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1811 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1822 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1833 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1845
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse-scan.y:883
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:734
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:772
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:797
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1338
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1550
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1552
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1781
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1807
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1818
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1829
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1841
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1856
msgid "';' expected"
msgstr "';' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:810
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:732
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:770
+msgid "Missing name"
+msgstr "Ä°sim eksik"
+
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:795
msgid "'*' expected"
msgstr "'*' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:824
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:809
msgid "Class or interface declaration expected"
msgstr "Sınıf ya da arabirim bildirimi gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:859 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:861
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:846
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:848
msgid "Missing class name"
msgstr "Sınıf ismi yok"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:864 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:868 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:876 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1041 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1289 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1291 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1620 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1856 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1940
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:851
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:855
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:863
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1023
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1616
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1867
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1899
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1952
msgid "'{' expected"
msgstr "'{' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:878
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:865
msgid "Missing super class name"
msgstr "Süper sınıf ismi eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:888 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:875
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:891
msgid "Missing interface name"
msgstr "Arabirim ismi yok"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:975 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1308 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1369 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1578 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1800 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1809 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1820 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1831 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1843 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1860 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1862 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1933 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2104 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2166 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2318 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2330 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2337 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2344 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2355 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2357 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2395 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2397 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2399 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2420 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2422 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2424 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2440 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2442 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2463 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2465 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2467 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2495 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2497 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2499 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2501 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2519 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2521 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2532 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2543 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2554 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2565 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2589 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2593 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2595 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2608
-msgid "Missing term"
-msgstr "Terim eksik"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:990
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:977
msgid "Missing variable initializer"
msgstr "DeÄŸiÅŸken ilklendirici eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1007
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:994
msgid "Invalid declaration"
msgstr "Geçersiz bildirim"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1013
-msgid "Can't specify array dimension in a declaration"
-msgstr "Dizi boyutları bildirim sırasında belirtilemez"
-
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1015 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1091 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2141 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2163 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2167 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2202 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2279 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2289
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:997
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1082
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2153
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2175
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2179
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2214
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2291
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2301
msgid "']' expected"
msgstr "']' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1019
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1001
msgid "Unbalanced ']'"
msgstr "karşılıksız ']'"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1055
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1037
msgid "Invalid method declaration, method name required"
msgstr "Yöntem bildirimi geçersiz, yöntem ismi gerekiyor"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1061 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1063 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2024
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1042
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1047
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1052
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2036
msgid "Identifier expected"
msgstr "Tanıtıcı gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1066
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1057
msgid "Invalid method declaration, return type required"
msgstr "Yöntem bildirimi geçersiz, return türü gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1089 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1534 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1541 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1550 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1552 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1580 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1688 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1969 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2022
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1080
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1537
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1546
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1548
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1576
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1684
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2034
msgid "')' expected"
msgstr "')' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1105
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1096
msgid "Missing formal parameter term"
msgstr "Biçimsel parametre terimi eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1120 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1125
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1111
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1116
msgid "Missing identifier"
msgstr "Tanıtıcı eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1145 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1154
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1136
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1145
msgid "Missing class type term"
msgstr "class tür terimi eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1306
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1301
msgid "Invalid interface type"
msgstr "Geçersiz arabirim türü"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1498 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1667 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1669
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1494
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1663
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1665
msgid "':' expected"
msgstr "':' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1520 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1525 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1530
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1516
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1521
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1526
msgid "Invalid expression statement"
msgstr "Geçersiz ifade satırı"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1548 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1576 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1616 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1684 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1752 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1858 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1926 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2016 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2018 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2026 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2262 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2264
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1544
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1572
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1612
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1680
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1748
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1869
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1938
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2028
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2030
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2038
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2274
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2276
msgid "'(' expected"
msgstr "'(' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1618
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1614
msgid "Missing term or ')'"
msgstr "Terim ya da ')' eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1665
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1661
msgid "Missing or invalid constant expression"
msgstr "Geçersiz ya da eksik sabit ifadesi"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1686
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1682
msgid "Missing term and ')' expected"
msgstr "Terim eksik ve ')' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1725
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1721
msgid "Invalid control expression"
msgstr "Geçersiz denetim ifadesi"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1727 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1729
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1723
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1725
msgid "Invalid update expression"
msgstr "Geçersiz güncelleme ifadesi"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1754
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1750
msgid "Invalid init statement"
msgstr "Geçersiz ilklendirme satırı"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1929
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1941
msgid "Missing term or ')' expected"
msgstr "Terim eksik ya da ')' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1971
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1983
msgid "'class' or 'this' expected"
msgstr "'class' ya da 'this' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1973 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:1975
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1985
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:1987
msgid "'class' expected"
msgstr "'class' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2020
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2032
msgid "')' or term expected"
msgstr "')' ya da terim gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2139
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2151
msgid "'[' expected"
msgstr "'[' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2217
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2229
msgid "Field expected"
msgstr "Alan gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2274 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2284
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2286
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2296
msgid "Missing term and ']' expected"
msgstr "Terim eksik ve ']' gerekli"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2388
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2400
msgid "']' expected, invalid type expression"
msgstr "']' gerekli ve tür ifadesi geçersiz"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2391
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2403
msgid "Invalid type expression"
msgstr "Geçersiz tür ifadesi"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2503
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2515
msgid "Invalid reference type"
msgstr "Geçersiz referans türü"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2981
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2993
msgid "Constructor invocation must be first thing in a constructor"
msgstr "Constructor çağrısı bir kurucu içindeki ilk şey olmalı"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2983
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:2995
msgid "Only constructors can invoke constructors"
msgstr "Sadece kurucular birbirini çağırabilir"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:2992
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3004
#, c-format
msgid ": `%s' JDK1.1(TM) feature"
msgstr ": `%s' JDK1.1(TM) özelliği"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3052 /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:3054
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3064
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:3066
#, c-format
msgid ""
"%s.\n"
@@ -19763,54 +20547,54 @@ msgstr ""
"%s.\n"
"%s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6833
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6879
#, c-format
msgid "malformed .zip archive in CLASSPATH: %s"
msgstr "CLASSPATH içinde bozuk .zip arşivi: %s"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:6904
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:6950
#, c-format
msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
msgstr "Öntanımlı `%s' paketi bulunamıyor. CLASSPATH ortam değişkenini ve arşivlere erişimi kontrol ediniz"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12228
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12352
#, c-format
msgid "missing static field `%s'"
msgstr "statik alan `%s' eksik"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12233
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12357
#, c-format
msgid "not a static field `%s'"
msgstr "`%s' bir statik alan deÄŸil"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:12276
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:12400
#, c-format
msgid "No case for %s"
msgstr "%s için uygun bir case yok"
-#: /abuild/pthomas/gcc-3.1-20020415/gcc/java/parse.y:13122
+#: /home/mitchell/gcc-3.3.2/gcc-3.3.2/gcc/java/parse.y:13365
#, c-format
msgid "unregistered operator %s"
-msgstr "%s işlemimi tanınmıyor"
-
-#: java/typeck.c:178
-msgid "internal error - use of undefined type"
-msgstr "iç hata - atanmamış tür kullanımı"
+msgstr "%s işleci tanınmıyor"
-#: java/typeck.c:566
+#: java/typeck.c:553
msgid "junk at end of signature string"
msgstr "imza dizgesinden sonrası karışık"
-#: java/verify.c:480
+#: java/verify.c:479
msgid "bad pc in exception_table"
msgstr "exception_table içindeki pc hatalı"
-#: java/verify.c:1392
+#: java/verify.c:485
+msgid "exception handler inside code that is being protected"
+msgstr "hata değişkeni korunmuş kodun içinde"
+
+#: java/verify.c:1395
#, c-format
msgid "unknown opcode %d@pc=%d during verification"
msgstr "doğrulama sırasında bilinmeyen opkod %d@pc=%d"
-#: java/verify.c:1462 java/verify.c:1475 java/verify.c:1479
+#: java/verify.c:1465 java/verify.c:1478 java/verify.c:1482
#, c-format
msgid "verification error at PC=%d"
msgstr "PC=%d de doğrulama hatası"
@@ -19889,121 +20673,132 @@ msgstr ""
"Sanal yöntem çağrıları için adresleme tabloları\n"
" kullanılır"
-#: objc/objc-act.c:606
-msgid "no class name specified as argument to -fconstant-string-class"
-msgstr "-fconstant-string-class için argüman olarak sınıf ismi belirtilmemiş"
-
-#: objc/objc-act.c:757
+#: objc/objc-act.c:651
#, c-format
msgid "object does not conform to the `%s' protocol"
msgstr "nesne `%s'protokolüne uygun değil"
-#: objc/objc-act.c:801
+#: objc/objc-act.c:737 objc/objc-act.c:810
#, c-format
msgid "class `%s' does not implement the `%s' protocol"
msgstr "`%s' sınıfı `%s' protokolünü desteklemiyor"
-#: objc/objc-act.c:882
+#: objc/objc-act.c:914
#, c-format
msgid "`%s' cannot be statically allocated"
msgstr "`%s' statik olarak ayrılamıyor"
-#: objc/objc-act.c:939
+#: objc/objc-act.c:963
#, c-format
msgid "unexpected type for `id' (%s)"
msgstr "`id' için umulmadık tür (%s)"
-#: objc/objc-act.c:944
+#: objc/objc-act.c:968
msgid "undefined type `id', please import <objc/objc.h>"
msgstr "Atanmamış tür `id', lütfen <objc/objc.h> dahil edin"
-#: objc/objc-act.c:996
+#: objc/objc-act.c:1019
#, c-format
msgid "protocol `%s' has circular dependency"
msgstr "protokol `%s' döngüsel bağımlılık içeriyor"
-#: objc/objc-act.c:1018 objc/objc-act.c:5229
+#: objc/objc-act.c:1041 objc/objc-act.c:5301
#, c-format
msgid "cannot find protocol declaration for `%s'"
msgstr "`%s' için protokol bildirimi bulunamıyor"
-#: objc/objc-act.c:1279 objc/objc-act.c:5747 objc/objc-act.c:6077 objc/objc-act.c:6126 objc/objc-act.c:6162 objc-parse.y:1752
+#: objc/objc-act.c:1289 objc/objc-act.c:5877 objc/objc-act.c:6195
+#: objc/objc-act.c:6244 objc/objc-act.c:6280 objc-parse.y:1799
#, c-format
msgid "cannot find interface declaration for `%s'"
msgstr "`%s' için arabirim bildirimi bulunamıyor"
-#: objc/objc-act.c:1304
+#: objc/objc-act.c:1328
#, c-format
msgid "cannot find reference tag for class `%s'"
msgstr "sınıf `%s' için referans etiketi bulunamıyor"
-#: objc/objc-act.c:2314
+#: objc/objc-act.c:2050
+#, c-format
+msgid "creating selector for non existant method %s"
+msgstr "omayan yöntem %s için ayraç oluşturuyor"
+
+#: objc/objc-act.c:2364
#, c-format
msgid "cannot find class `%s'"
msgstr "sınıf `%s' bulunamıyor"
-#: objc/objc-act.c:2316
+#: objc/objc-act.c:2366
#, c-format
msgid "class `%s' already exists"
msgstr "sınıf `%s' zaten var"
#. fatal did not work with 2 args...should fix
-#: objc/objc-act.c:2440
+#: objc/objc-act.c:2473
#, c-format
msgid "cannot find interface declaration for `%s', superclass of `%s'"
msgstr "`%s' için arabirim bildirimi ve `%s' süper sınıfı bulunamıyor"
-#: objc/objc-act.c:2447
+#: objc/objc-act.c:2480
#, c-format
msgid "circular inheritance in interface declaration for `%s'"
msgstr "`%s' için arabirim bildiriminde döngüsel kalıtım"
-#: objc/objc-act.c:3500 objc/objc-act.c:3517
+#: objc/objc-act.c:3566 objc/objc-act.c:3583
msgid "inconsistent instance variable specification"
msgstr "çelişkili gerçekleme değişkeni özelliği"
-#: objc/objc-act.c:4710
+#: objc/objc-act.c:4580
+msgid "can not use an object as parameter to a method\n"
+msgstr "bir nesne bir yöntemde parametre olarak kullanılamaz\n"
+
+#: objc/objc-act.c:4780
#, c-format
msgid "multiple declarations for method `%s'"
msgstr "`%s' yöntemi için çok sayıda bildirim"
-#: objc/objc-act.c:4876
+#: objc/objc-act.c:4946
#, c-format
msgid "invalid receiver type `%s'"
msgstr "alıcı tür `%s' geçersiz"
-#: objc/objc-act.c:4907 objc/objc-act.c:4933 objc/objc-act.c:4981
+#: objc/objc-act.c:4977 objc/objc-act.c:5003 objc/objc-act.c:5051
#, c-format
msgid "`%s' does not respond to `%s'"
msgstr "`%s' `%s' i yanıtlamıyor"
-#: objc/objc-act.c:4913 objc/objc-act.c:7197
+#: objc/objc-act.c:4983 objc/objc-act.c:7318
#, c-format
msgid "no super class declared in interface for `%s'"
msgstr "Arabirim içinde `%s' için süper sınıf bildirilmemiş"
-#: objc/objc-act.c:5011
+#: objc/objc-act.c:5081
msgid "cannot find class (factory) method"
msgstr "sınıf yöntemi bulunamıyor"
-#: objc/objc-act.c:5012 objc/objc-act.c:5056
+#: objc/objc-act.c:5082 objc/objc-act.c:5126
#, c-format
msgid "return type for `%s' defaults to id"
msgstr "`%s' için dönen tür id ye öntanımlı"
-#: objc/objc-act.c:5029
+#: objc/objc-act.c:5099
#, c-format
msgid "method `%s' not implemented by protocol"
msgstr "yöntem `%s' protokol tarafından gerçekleştirilmiyor"
-#: objc/objc-act.c:5038
+#: objc/objc-act.c:5108
msgid "return type defaults to id"
msgstr "dönen tür id ye öntanımlı"
-#: objc/objc-act.c:5055
+#: objc/objc-act.c:5125
msgid "cannot find method"
msgstr "yöntem bulunamıyor"
+#: objc/objc-act.c:5399
+#, c-format
+msgid "undeclared selector `%s'"
+msgstr "bildirilmemiş ayraç `%s'"
+
#. Historically, a class method that produced objects (factory
#. method) would assign `self' to the instance that it
#. allocated. This would effectively turn the class method into
@@ -20013,108 +20808,108 @@ msgstr "yöntem bulunamıyor"
#. to an instance variable. It's better to catch the cases
#. where this is done unknowingly than to support the above
#. paradigm.
-#: objc/objc-act.c:5298
+#: objc/objc-act.c:5443
#, c-format
msgid "instance variable `%s' accessed in class method"
msgstr "gerçekleme değişkeni `%s' sınıf yönteminden erişimli"
-#: objc/objc-act.c:5548
+#: objc/objc-act.c:5678
#, c-format
msgid "duplicate definition of class method `%s'"
msgstr "sınıf yöntemi `%s' birden fazla atanmış"
-#: objc/objc-act.c:5554
+#: objc/objc-act.c:5684
#, c-format
msgid "duplicate declaration of class method `%s'"
msgstr "sınıf yöntemi `%s' birden fazla bildirilmiş"
-#: objc/objc-act.c:5590
+#: objc/objc-act.c:5720
#, c-format
msgid "duplicate definition of instance method `%s'"
msgstr "gerçekleme yöntemi `%s' birden fazla atanmış"
-#: objc/objc-act.c:5596
+#: objc/objc-act.c:5726
#, c-format
msgid "duplicate declaration of instance method `%s'"
msgstr "gerçekleme yöntemi `%s' birden fazla bildirilmiş"
-#: objc/objc-act.c:5636
+#: objc/objc-act.c:5766
#, c-format
msgid "duplicate interface declaration for category `%s(%s)'"
msgstr "`%s(%s)' kategororisi için birden fazla arayüz bildirimi"
-#: objc/objc-act.c:5722
+#: objc/objc-act.c:5852
#, c-format
msgid "instance variable `%s' is declared private"
msgstr "gerçekleme değişkeni `%s' private olarak bildirilmiş"
-#: objc/objc-act.c:5769
+#: objc/objc-act.c:5899
#, c-format
msgid "instance variable `%s' is declared %s"
msgstr "gerçekleme değişkeni `%s' %s olarak bildirilmiş"
-#: objc/objc-act.c:5779
+#: objc/objc-act.c:5909
msgid "static access to object of type `id'"
msgstr "`id' türünün nesnesine statik erişim"
-#: objc/objc-act.c:5816 objc/objc-act.c:5909
+#: objc/objc-act.c:5934 objc/objc-act.c:6027
#, c-format
msgid "incomplete implementation of class `%s'"
msgstr "`%s' sınıfının içi boş"
-#: objc/objc-act.c:5820 objc/objc-act.c:5914
+#: objc/objc-act.c:5938 objc/objc-act.c:6032
#, c-format
msgid "incomplete implementation of category `%s'"
msgstr "`%s' kategorisinin içi boş"
-#: objc/objc-act.c:5825 objc/objc-act.c:5919
+#: objc/objc-act.c:5943 objc/objc-act.c:6037
#, c-format
msgid "method definition for `%c%s' not found"
msgstr "`%c%s' için yöntem tanımı yok"
-#: objc/objc-act.c:5963
+#: objc/objc-act.c:6081
#, c-format
msgid "%s `%s' does not fully implement the `%s' protocol"
msgstr "%s `%s' `%s'protokolünü tamamen gerçekleştirmiyor"
-#: objc/objc-act.c:6021 objc/objc-act.c:8118
+#: objc/objc-act.c:6139 objc/objc-act.c:8249
msgid "`@end' missing in implementation context"
msgstr "oluşum bağlamında `@end' eksik"
-#: objc/objc-act.c:6049
+#: objc/objc-act.c:6167
#, c-format
msgid "reimplementation of class `%s'"
msgstr "`%s' sınıfının yeniden oluşumu"
-#: objc/objc-act.c:6091
+#: objc/objc-act.c:6209
#, c-format
msgid "conflicting super class name `%s'"
msgstr "süper sınıf ismi `%s' çelişiyor"
-#: objc/objc-act.c:6106
+#: objc/objc-act.c:6224
#, c-format
msgid "duplicate interface declaration for class `%s'"
msgstr "`%s' sınıfı için birden fazla arabirim bildirimi"
-#: objc/objc-act.c:6388
+#: objc/objc-act.c:6506
#, c-format
msgid "duplicate declaration for protocol `%s'"
msgstr "protokol `%s' için birden fazla bildirim"
-#: objc/objc-act.c:7238
+#: objc/objc-act.c:7363
msgid "[super ...] must appear in a method context"
msgstr "[super ...] bir yöntem bağlamında görünmeli"
-#: objc/objc-act.c:8220 objc/objc-act.c:8236
+#: objc/objc-act.c:8354 objc/objc-act.c:8370
#, c-format
msgid "potential selector conflict for method `%s'"
msgstr "yöntem `%s' için olası seçici çelişiyor"
-#: objc-parse.y:2612
+#: objc-parse.y:2655
msgid "`@end' must appear in an implementation context"
msgstr "`@end' bir oluşum bağlamında görünmeli"
-#: objc-parse.y:2886
+#: objc-parse.y:2931
msgid "method definition not in class context"
msgstr "yöntem tanımı sınıf bağlamında değil"
@@ -20146,6 +20941,24 @@ msgstr "Platforma özel niteliklerin C başlıklarını üretir"
msgid "Specify the name of the class for constant strings"
msgstr "Sabit dizgeler için sınıf ismi belirtilir"
+#. This is the contribution to the `lang_options' array in gcc.c for
+#. treelang.
+#: treelang/lang-options.h:26
+msgid "(debug) trace parsing process"
+msgstr "(hata ayıklama) trace parsing process"
+
+#: treelang/lang-options.h:27
+msgid "(debug) trace lexical analysis"
+msgstr "(hata ayıklama) trace lexical analysis"
+
+#: config/rs6000/darwin.h:62
+msgid " conflicting code gen style switches are used"
+msgstr " çelişen code gen tarzı switch'ler kullanılmış"
+
+#: config/i386/mingw32.h:85 config/i386/cygwin.h:171
+msgid "shared and mdll are not compatible"
+msgstr "shared ve mdll uyumsuz"
+
#: java/lang-specs.h:33
msgid "-fjni and -femit-class-files are incompatible"
msgstr "-fjni ve -femit-class-files uyumsuz"
@@ -20158,45 +20971,93 @@ msgstr "-fjni ve -femit-class-file uyumsuz"
msgid "-femit-class-file should used along with -fsyntax-only"
msgstr "-femit-class-file -fsyntax-only ile birlikte kullanılmalı"
-#: config/nextstep.h:161 config/nextstep.h:164
-msgid "-p profiling is no longer supported. Use -pg instead"
-msgstr "-p ayrımsaması artık desteklenmiyor. yerine -pg kullanın."
+#: ada/lang-specs.h:38 java/jvspec.c:77 gcc.c:716
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr "-pg ve -fomit-frame-pointer uyumsuz"
+
+#: ada/lang-specs.h:41
+msgid "-c or -S required for Ada"
+msgstr "Ada için -c ya da -S gerekli"
+
+#: config/darwin.h:212
+msgid "-current_version only allowed with -dynamiclib"
+msgstr "-current_version sadece -dynamiclib ile kullanılabilir"
+
+#: config/darwin.h:215
+msgid "-install_name only allowed with -dynamiclib"
+msgstr "-install_name sadece -dynamiclib ile kullanılabilir"
+
+#: config/darwin.h:220
+msgid "-bundle not allowed with -dynamiclib"
+msgstr "-bundle ile -dynamiclib birarada izin verilmez"
+
+#: config/darwin.h:221
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr "-bundle_loader ile -dynamiclib birarada izin verilmez"
+
+#: config/darwin.h:222
+msgid "-client_name not allowed with -dynamiclib"
+msgstr "-client_name ile -dynamiclib birarada izin verilmez"
+
+#: config/darwin.h:225
+msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+msgstr "-force_cpusubtype_ALL ile -dynamiclib birarada izin verilmez"
+
+#: config/darwin.h:226
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr "-force_flat_namespace ile -dynamiclib birarada izin verilmez"
-#: config/arm/arm.h:211
+#: config/darwin.h:228
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr "-keep_private_externs ile -dynamiclib birarada izin verilmez"
+
+#: config/darwin.h:229
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr "-private_bundle ile -dynamiclib birarada izin verilmez"
+
+#: config/sparc/freebsd.h:34 config/ia64/freebsd.h:23
+#: config/alpha/freebsd.h:44 config/rs6000/sysv4.h:1107
+#: config/i386/freebsd-aout.h:213
+msgid "`-p' not supported; use `-pg' and gprof(1)"
+msgstr "`-p' desteklenmiyor; `-pg' ve gprof(1) kullanın"
+
+#: config/sparc/linux64.h:197 config/sparc/linux64.h:208
+#: config/sparc/netbsd-elf.h:163 config/sparc/netbsd-elf.h:182
+#: config/sparc/sol2-bi.h:168 config/sparc/sol2-bi.h:178
+msgid "may not use both -m32 and -m64"
+msgstr "-m32 ve -m64 birlikte kullanılamaz"
+
+#: config/arm/arm.h:178
msgid "-mapcs-26 and -mapcs-32 may not be used together"
msgstr "-mapcs-26 ve -mapcs-32 birlikte kullanılamayabilir"
-#: config/arm/arm.h:223
+#: config/arm/arm.h:180
msgid "-msoft-float and -mhard_float may not be used together"
msgstr "-msoft-float ve -mhard_float birlikte kullanılamayabilir"
-#: config/arm/arm.h:234
+#: config/arm/arm.h:182
msgid "-mbig-endian and -mlittle-endian may not be used together"
msgstr "-mbig-endian ve -mlittle-endian birlikte kullanılamayabilir"
-#: config/arm/arm.h:252
-msgid "incompatible interworking options"
-msgstr "uyumsuz birlikte çalışma seçenekleri"
+#: config/i386/sco5.h:195
+msgid "-pg not supported on this platform"
+msgstr "-pg bu platformda desteklenmiyor"
-#: config/sparc/freebsd.h:31 config/ia64/freebsd.h:23 config/alpha/freebsd.h:36 config/i386/freebsd-aout.h:227
-msgid "`-p' not supported; use `-pg' and gprof(1)"
-msgstr "`-p' desteklenmiyor; `-pg' ve gprof(1) kullanın"
+#: config/i386/sco5.h:196
+msgid "-p and -pp specified - pick one"
+msgstr "-p ve -pp belirtilmiş - birini seçin"
-#: gcc.c:672 f/lang-specs.h:35
+#: config/i386/sco5.h:271
+msgid "-G and -static are mutually exclusive"
+msgstr "-G ve -static birlikte kullanılamaz"
+
+#: f/lang-specs.h:38 gcc.c:689
msgid "GNU C does not support -C without using -E"
msgstr "GNU C -E kulanılmaksızın -C desteklemiyor"
-#: gcc.c:699 ada/lang-specs.h:39 java/jvspec.c:77
-msgid "-pg and -fomit-frame-pointer are incompatible"
-msgstr "-pg ve -fomit-frame-pointer uyumsuz"
-
-#: gcc.c:846
-msgid "-E required when input is from standard input"
-msgstr "Standart girdiden girdi alınırken -E gereklidir"
-
-#: gcc.c:850
-msgid "compilation of header file requested"
-msgstr "başlık dosyası derlemesi istendi"
+#: f/lang-specs.h:39 gcc.c:690
+msgid "GNU C does not support -CC without using -E"
+msgstr "GNU C -E kulanılmaksızın -CC desteklemiyor"
#: config/mcore/mcore.h:60
msgid "choose either big or little endian, not both"
@@ -20210,97 +21071,1129 @@ msgstr "Ya m340 ya da m210 kullanın, ikisi birden olmaz"
msgid "the m210 does not have little endian support"
msgstr "m210 küçük ilkli bayt sıralamasının desteklemez"
-#: ada/lang-specs.h:42
-msgid "-c or -S required for Ada"
-msgstr "Ada için -c ya da -S gerekli"
+#: config/i386/cygwin.h:115
+msgid "mno-cygwin and mno-win32 are not compatible"
+msgstr "mno-cygwin ve mno-win32 uyumsuz"
+
+#: config/vax/netbsd-elf.h:42
+msgid "The -shared option is not currently supported for VAX ELF."
+msgstr "-shared seçeneği VAX ELF için şu an desteklenmiyor."
+
+#: treelang/lang-specs.h:52
+msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+msgstr "-pg veya -p ve -fomit-frame-pointer uyumsuz"
+
+#: gcc.c:847
+msgid "-E required when input is from standard input"
+msgstr "Standart girdiden girdi alınırken -E gereklidir"
+
+#: gcc.c:851
+msgid "compilation of header file requested"
+msgstr "başlık dosyası derlemesi istendi"
-#: config/mips/r3900.h:36 config/mips/r3900.h:42
+#: config/vax/vax.h:50 config/vax/vax.h:51
+msgid "profiling not supported with -mg\n"
+msgstr "-mg ile ayrımsama desteklenmiyor\n"
+
+#: config/mips/mips.h:954
+msgid "-pipe is not supported"
+msgstr "-pipe desteklenmiyor."
+
+#: config/mips/mips.h:1156 config/arc/arc.h:63
+msgid "may not use both -EB and -EL"
+msgstr "-EB ve -EL birlikte kullanılamayabilir"
+
+#: config/mips/r3900.h:35
msgid "-mhard-float not supported"
msgstr "-mhard-float desteklenmiyor"
-#: config/mips/r3900.h:38 config/mips/r3900.h:44
+#: config/mips/r3900.h:37
msgid "-msingle-float and -msoft-float can not both be specified"
msgstr "-msingle-float ve -msoft-float birlikte belirtilemez."
-#: config/mmix/mmix.h:112
-msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
-msgstr "-mabi=mmixware ve -mabi=gnu seçenekleri birlikte kullanılmamalı"
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s (`%T ? %T : %T' üç terimlisi için)"
-#: config/i860/fx2800.h:290
-msgid "-p option not supported: use -pg instead"
-msgstr "-p seçeneği desteklenmiyor: yerine -pg kullanın"
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s (`%T [%T]' işleci için)"
-#: config/arm/riscix.h:73 config/arm/riscix.h:133
-msgid "-mbsd and -pedantic incompatible"
-msgstr "-mbsd ve -pedantic uyumsuz"
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s (`%T %s %T' işleci için)"
-#: config/arm/riscix.h:74 config/arm/riscix.h:134
-msgid "-mbsd and -mxopen incompatible"
-msgstr "-mbsd ve -mxopen uyumsuz"
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s (`%s %T' işleci için)"
-#: config/arm/riscix.h:75 config/arm/riscix.h:135
-msgid "-mxopen and -pedantic incompatible"
-msgstr "-mxopen ve -pedantic uyumsuz"
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "çapraz derlemede gerçek değerli şablon parametreleri"
-#: config/arc/arc.h:59 config/mips/mips.h:1007
-msgid "may not use both -EB and -EL"
-msgstr "-EB ve -EL birlikte kullanılamayabilir"
+#~ msgid "due to a defect in the G++ 3.2 ABI, G++ has assigned the same mangled name to two different types"
+#~ msgstr "G++ 3.2 ABI içindeki bir bozulmadan dolayı, G++ iki farklı türde atanmış aynı anlamlı isim içeriyor"
-#: config/vax/vax.h:42 config/vax/vax.h:43
-msgid "profiling not supported with -mg\n"
-msgstr "-mg ile ayrımsama desteklenmiyor\n"
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static -mcoff ile geçerli değil"
-#: config/i386/cygwin.h:114
-msgid "mno-cygwin and mno-win32 are not compatible"
-msgstr "mno-cygwin ve mno-win32 uyumsuz"
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared -mcoff ile geçerli değil"
-#: config/i386/cygwin.h:169 config/i386/mingw32.h:69
-msgid "shared and mdll are not compatible"
-msgstr "shared ve mdll uyumsuz"
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic -mcoff ile geçerli değil"
-#: config/mips/mips.h:837
-msgid "-pipe is not supported"
-msgstr "-pipe desteklenmiyor."
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic -mcoff ile geçerli değil"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC -mcoff ile geçerli değil"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic -mcoff ile geçerli değil"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC -mcoff ile geçerli değil"
+
+#~ msgid "__alignof__ applied to an incomplete type"
+#~ msgstr "__alignof__ bir tamamlanmamış türe uygulanmış"
+
+#~ msgid "-traditional is deprecated and may be removed"
+#~ msgstr "-traditional kullanımdan kalkacak ve kalkmış da olabilir"
+
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "`%s' diye bir C standardı bilinmiyor"
+
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "external `%s' türü genel değil"
+
+#~ msgid "typedef `%s' is initialized"
+#~ msgstr "typedef `%s' ilklendirimiÅŸ"
+
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "isimsiz alanlara struct ve union dışında izin verilmiyor"
+
+#~ msgid "null format string"
+#~ msgstr "null biçem dizgesi"
+
+#~ msgid "ignoring #pragma %s"
+#~ msgstr "#pragma %s yoksayılıyor"
+
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "gerçel sayı sabitte hem 'f' hem de 'l' sonekleri"
+
+#~ msgid "floating point number exceeds range of '%s'"
+#~ msgstr "gerçel sayı '%s' kapsamını aşıyor"
+
+#~ msgid "decimal point in exponent - impossible!"
+#~ msgstr "üs bir ondalık sayı -- imkânsız!"
+
+#~ msgid "underscore in number"
+#~ msgstr "sayı içinde alt çizgi"
+
+#~ msgid "numeric constant with no digits"
+#~ msgstr "rakam içermeyen sayısal sabit"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "sayısal sabit tabanından büyük rakamlar içeriyor"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "gerçel sayı sabit onaltılık tabanda olmayabilir"
+
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "gerçel sayı sabitte `f' soneki birden fazla var"
+
+#~ msgid "traditional C rejects the 'f' suffix"
+#~ msgstr "geleneksel C 'f' sonekini kullanmaz"
+
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "gerçel sayı sabitte `l' soneki birden fazla var"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "geleneksel C 'l' sonekini kullanmaz"
+
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "gerçel sayı sabitte `i' ya da `j' soneki birden fazla var"
+
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C sanal sayısal sabitleri yasaklar"
+
+#~ msgid "floating constant out of range"
+#~ msgstr "gerçel sayı sabit kapsamdışı"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "gerçel sayı 'double' kapsamını aşıyor"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "tamsayı sabitte iki 'u' soneki"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "geleneksel C 'u' sonekini kullanmaz"
+
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "tamsayı sabitte üç 'l' soneki"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul' geçerli bir tamsayı soneki değil"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "'Ll' ve 'lL' geçerli tamsayı sonekleri değil"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "tamsayı sabitte birden fazla 'i' ya da 'j' soneki"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "tamsayı sabitteki sonek geçersiz"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "tamsayı sabit derleyicinin bu yapılandırması için çok büyük - %d bite indirildi"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "tamsayı sabitin genişliği -traditional ile değişir"
+
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "tamsayı sabit ISO C için unsigned, -traditional ile signed'dır"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "tamsayı sabitin uzunluğu diğer sistemlerde -traditional ile değişebilir"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "tamsayı sabit en büyük değer %s den daha büyük"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "bir unsigned long long int"
+
+#~ msgid "a long long int"
+#~ msgstr "bir long long int"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "bir unsigned long int"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "ondalık sabit unsigned tür için büyük"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "karmaşık tamsayı sabit `complex int' için çok büyük"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "tamsayı sabit türünün izin verdiği değerden büyük"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "'%.*s'den sonra boÅŸluk yok"
+
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C `varargs.h' kullanımına izin vermez"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "dizi bildiriminde saklatım öbeği belirteçleri"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "bir işlev türüne sizeof uygulanmış"
-#: config/mips/mips.h:1003
-msgid "may not use both -mfp64 and -msingle-float"
-msgstr "-mfp64 ve -msingle-float birlikte kullanılamayabilir"
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "bir void türe sizeof uygulanmış"
-#: config/mips/mips.h:1004
-msgid "may not use both -mfp64 and -m4650"
-msgstr "-mfp64 ve -m4650 birlikte kullanılamayabilir"
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof bir tamamlanmamış türe uygulanmış"
-#: config/mips/mips.h:1006
-msgid "may not use both -mgp32 and -mfp64"
-msgstr "-mfp64 ve -mgp32 birlikte kullanılamayabilir"
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "değişkenin göreli konumu kısmen yığında kısmende yazmaçta aktarılmış"
-#: config/i386/sco5.h:662 config/i386/sco5.h:737
-msgid "-static not valid with -mcoff"
-msgstr "-static -mcoff ile geçerli değil"
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "değişken boyutu hem yığın hem de yazmaç içine aktarılmış"
-#: config/i386/sco5.h:663 config/i386/sco5.h:738
-msgid "-shared not valid with -mcoff"
-msgstr "-shared -mcoff ile geçerli değil"
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
-#: config/i386/sco5.h:664 config/i386/sco5.h:739
-msgid "-symbolic not valid with -mcoff"
-msgstr "-symbolic -mcoff ile geçerli değil"
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "#if ifadesinde gerçel sayılar geçersiz"
-#: config/i386/sco5.h:702
-msgid "-fpic is not valid with -mcoff"
-msgstr "-fpic -mcoff ile geçerli değil"
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "geleneksel C `U' sonekini reddeder"
-#: config/i386/sco5.h:703
-msgid "-fPIC is not valid with -mcoff"
-msgstr "-fPIC -mcoff ile geçerli değil"
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "tamsayı sabitteki 'l' soneklerinin sayısı çok fazla"
-#: config/i386/sco5.h:740
-msgid "-fpic not valid with -mcoff"
-msgstr "-fpic -mcoff ile geçerli değil"
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "tamsayı sabit tabanı aşan rakamlar içeriyor"
-#: config/i386/sco5.h:741
-msgid "-fPIC not valid with -mcoff"
-msgstr "-fPIC -mcoff ile geçerli değil"
+#~ msgid "integer constant out of range"
+#~ msgstr "tamsayı sabit kapsamdışı"
+
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "#if ifadesinde dizge sabitler geçersiz"
+
+#~ msgid "missing binary operator"
+#~ msgstr "iki terimli iÅŸlemimi eksik"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "`%s' işlemiminin sol tarafı yok"
+
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "sistem dizini \"%s\" için arama sırası"
+
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr "sistem dizini olmayan \"%s\" dizini ile aynı olacak şekilde değiştiriliyor"
+
+#~ msgid " as it has already been specified as a non-system directory"
+#~ msgstr "bir sistem dizini olmayan olarak zaten belirtilmiÅŸ ÅŸekilde deÄŸiÅŸtiriliyor"
+
+#~ msgid "I/O error on output"
+#~ msgstr "Çıktıda G/Ç hatası"
+
+#~ msgid "argument missing after %s"
+#~ msgstr "%s den sonraki argüman eksik"
+
+#~ msgid "number missing after %s"
+#~ msgstr "%s den sonra sayı eksik"
+
+#~ msgid "target missing after %s"
+#~ msgstr "%s den sonraki hedef eksik"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP %s sürümü (cpplib)"
+
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic ISO C gereksinimlerine bağlı tüm uyarılar verilir\n"
+#~ " -pedantic-errors -pedantic uyarıları hata olarak verilir\n"
+#~ " -trigraphs ISO C üçlü harfleri desteklenir\n"
+#~ " -lang-c Girdi kaynakları C'de değerlendirilir\n"
+#~ " -lang-c89 Girdi kaynakları C89'da değerlendirilir\n"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Girdi kaynakları C++'da değerlendirilir\n"
+#~ " -lang-objc Girdi kaynakları ObjectiveC'de değerlendirilir\n"
+#~ " -lang-objc++ Girdi kaynakları ObjectiveC++'da değerlendirilir\n"
+#~ " -lang-asm Girdi kaynakları çeviricide değerlendirilir\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "sonlandırılmamış dizge sabitin olası başlangıcı"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "çok satırlı dizge sabitlerin modası geçti"
+
+#~ msgid "the meaning of '\\%c' varies with -traditional"
+#~ msgstr "`\\%c'nın anlamı -traditional ile değişir"
+
+#~ msgid "the meaning of '\\a' varies with -traditional"
+#~ msgstr "'\\a'nın anlamı -traditional ile değişir"
+
+#~ msgid "the meaning of '\\x' varies with -traditional"
+#~ msgstr "'\\x'in anlamı -traditional ile değişir"
+
+#~ msgid "escape sequence out of range for character"
+#~ msgstr "önceleme dizgesi karakter için kapsam dışı"
+
+#~ msgid "\"%s\" cannot be used as a macro name"
+#~ msgstr "\"%s\" bir makro ismi olarak kullanılamaz"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "yönergeler bir makro argüman içinde kullanılmayabilir"
+
+#~ msgid "invalid option %s"
+#~ msgstr "geçersiz %s seçeneği"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: uyarı: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: uyarı: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "daha kodlanmadı: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "%2$s:%3$d. satırındaki %1$s işlevinde derleyici iç hatası"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Telif Hakkı (C) 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "`-b' için argüman belirtilmemiş"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "`-V' için argüman belirtilmemiş"
+
+#~ msgid "invalid version number format"
+#~ msgstr "sürüm numarası biçemi geçersiz"
+
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr ".da dosyasının içeriği çok erken atıldı\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr ".da dosyasının içeriği atılmadı\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%3$s işlevindeki %2$d satırın %%%1$6.2f satırı çalıştırıldı\n"
+
+#~ msgid "No executable source lines in function %s\n"
+#~ msgstr "%s dosyasında çalıştırılacak satır yok\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%3$s işlevindeki %2$d dalın %%%1$6.2f dalı çalıştırıldı\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%3$s işlevindeki %2$d dalın %%%1$6.2f dalı en az bir kere alındı\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "%s işlevinin dalları yok\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%3$s işlevindeki %2$d çağrıdan %%%1$6.2f çağrı çalıştırıldı\n"
+
+#~ msgid "No calls in function %s\n"
+#~ msgstr "%s işlevinde çağrı yok\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in file %s\n"
+#~ msgstr "%3$s dosyasındaki %2$d satırın %%%1$6.2f satırı çalıştırıldı\n"
+
+#~ msgid "%6.2f%% of %d branches executed in file %s\n"
+#~ msgstr "%3$s dosyasındaki %2$d dalın %%%1$6.2f dalı çalıştırıldı\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+#~ msgstr "%3$s dosyasındaki %2$d dalın %%%1$6.2f dalı en az bir kere alındı\n"
+
+#~ msgid "%6.2f%% of %d calls executed in file %s\n"
+#~ msgstr "%3$s dosyasındaki %2$d çağrıdan %%%1$6.2f çağrı çalıştırıldı\n"
+
+#~ msgid "call %d returns = %s\n"
+#~ msgstr "%d. çağrı dönüşü = %s\n"
+
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "%d. çağrı dönüş yüzdesi = %%%s\n"
+
+#~ msgid "branch %d taken = %s\n"
+#~ msgstr "%d. dal alındı = %s\n"
+
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "%d. dal alınma yüzdesi = %%%s\n"
+
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr ".da dosyasının içeriği çok erken atıldı"
+
+#~ msgid ".da file contents not exhausted"
+#~ msgstr ".da dosyasının içeriği atılmadı"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "NaN'dan int'e dönüşüm"
+
+#~ msgid "conversion from NaN to unsigned int"
+#~ msgstr "NaN'dan unsigned int'e dönüşüm"
+
+#~ msgid "floating point overflow"
+#~ msgstr "gerçel sayı taşması"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "tamsayıya indirgemede taşma"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "işaretsiz tamsayıya indirgemede taşma"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: argüman alanı hatası"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: iÅŸlev eÅŸsizliÄŸi"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: kapsamın üstten taşma hatası"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: kapsamın alttan taşma hatası"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: tam kesinlik kaybı"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: kısmi kesinlik kaybı"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - işlem üretiyor"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr ""
+#~ "Ana ve hedef makina aynı kayan noktalı biçemi\n"
+#~ " kullanıyormuş gibi davranır"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Göstergeler bu üçlüden olarak derlenir: değer, taban ve son"
+
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr ""
+#~ "-traditional kullanıldığında float türler double\n"
+#~ " yapılmaz"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Geleneksel K&R tarzı C desteklemeye çalışılır"
+
+#~ msgid "internal error: %s"
+#~ msgstr "iç hata: %s"
+
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "crossjump iptal edildi: %d > 1000 temel blok ve %d >= 20 kenar/temel blok"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a Blok ayrımlaması etkinleştirilir\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Atlama ayrımlaması etkinleştirilir\n"
+
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "bir çerçeve göstergesi olmaksızın ayrımlama çalışmaz"
+
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "#if ifadelerinde gerçel sayılara izin verilmez"
+
+#~ msgid "invalid number in #if expression"
+#~ msgstr "#if ifadesindeki sayı geçersiz"
+
+#~ msgid "invalid character constant in #if"
+#~ msgstr "#if ifadesinde geçersiz karakter sabiti"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "#if ifadelerinde çift tırnaklı dizgelere izin verilmez"
+
+#~ msgid "invalid token in expression"
+#~ msgstr "ifadede geçersiz dizgecik"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "sekizlik karakter sabiti bir bayta sığmaz"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "onaltılık karakter sabiti bir bayta sığmaz"
+
+#~ msgid "empty #if expression"
+#~ msgstr "boÅŸ #if ifadesi"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "İfadeden sonrakiler anlaşılamadı."
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "makro ya da #include özyinelemesi çok derin"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "kullanımı: %s [seçenekler] girdi çıktı"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional C++'da desteklenmiyor"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional ve -ansi birlikte kullanılamaz"
+
+#~ msgid "filename missing after -i option"
+#~ msgstr "-i seçeneğinden sonra dosya ismi eksik"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "-o seçeneğinden sonra dosya ismi eksik"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "%s seçeneğinden sonraki hedef eksik"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "%s seçeneğinden sonra dosya ismi eksik"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "-%c seçeneğinden sonra makro ismi eksik"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs ve -traditional birlikte kullanılamaz"
+
+#~ msgid "directory name missing after -I option"
+#~ msgstr "-I seçeneğinden sonra dizin ismi eksik"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "açıklama içinde `/*'"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "sonlandırılmamış #%s koşulu"
+
+#~ msgid "not in any file?!"
+#~ msgstr "bir dosyada deÄŸil mi?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "`defined' ident ya da (ident) ile izlenmeli"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "cccp hatası: özel isimli-yapı türü geçersiz"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include \"dosyaismi\" ya da #include <dosyaismi> şeklinde kullanılır"
+
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "%.*s arama yolunda include dosyaları yok"
+
+#~ msgid "invalid macro name"
+#~ msgstr "geçersiz makro ismi"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "geçersiz makro ismi `%s'"
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "#define yönergesindeki parametre ismi bir rakam ile başlıyor"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "#define yönergesinde kötü vurgulanmış parametre listesi"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "#define yönergesinde sonlandırılmamış parametre listesi"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" yeniden tanımlanmış"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "# işlemiminden sonra bir makro ismi olmalı"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "geçersiz biçemli #line komutu"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "undef'lenen `defined'"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "`%s' sonra #undef yapılmış"
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "yönerge sonunda fazladan metin"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif bir koşulun içinde değil"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s bir koşulun içinde değil"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else'den sonra #elif ya da #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else bir koşulun içinde değil"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "karşılıksız #endif"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "sonlandırılmamış dizge ya da karakter sabiti"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "`%s' makrosuna verilmiş argümanlar"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "`%s' makrosuna argüman verilmemiş"
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "`%s' makrosuna sadece 1 argüman verilmiş"
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "`%2$s' makrosuna sadece %1$d argüman verilmiş"
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "`%2$s' makrosuna çok fazla (%1$d) argüman verilmiş"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "tradcpp.c:%2$d: %1$s işlevinde iç hata\n"
+#~ "Lütfen ayrıntılı bir hapa raporu gönderin.\n"
+#~ "İşlemler için %3$s adresine bakın."
+
+#~ msgid "optimization turned on"
+#~ msgstr "eniyileme etkin"
+
+#~ msgid "optimization turned off"
+#~ msgstr "eniyileme etkin deÄŸil"
+
+#~ msgid "optimization level restored"
+#~ msgstr "eniyileme seviyesi eski durumuna getirildi"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "VAX-C hizalaması kullanılır"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "%%V değeri geçersiz"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Kod DW biti 1 kabulüyle üretilir"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Kod DW biti 0 kabulüyle üretilir"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Kod bayt yazarak üretilir"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Bayt yazımı üretilmez"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Küçük bellek modeli kullanılır"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Normal bellek modeli kullanılır"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Geniş bellek modeli kullanılır"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "29050 kodu üretilir"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "29000 kodu üretilir"
+
+#~ msgid "Use kernel global registers"
+#~ msgstr "Çekirdek genel yazmaçları kullanılır"
+
+#~ msgid "Use user global registers"
+#~ msgstr "Kullanıcı genel yazmaçları kullanılır"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Yığın denetim kodu üretilir"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Yığın denetim kodu üretilmez"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Storem donanım hatasının oluru bulunur"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Storem donanım hatasının oluru bulunmaz"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Yerel değerler argüman yazmaçlarında saklanır"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "Yerel değerler argüman yazmaçlarında saklanmaz"
+
+#~ msgid "Do not generate multm instructions"
+#~ msgstr "multm komutları üretilmez"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Sembol isimlendirmesi BSD için yapılır"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Sembol isimlendirmesi X/OPEN için yapılır"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Sembol isimlendirmesi yapılmaz"
+
+#~ msgid "MCU `%s' not supported"
+#~ msgstr "MCU `%s' desteklenmiyor"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Kod C400 MİB için üretilir"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Kod C300 MİB için üretilir"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Kod c1 için üretilir"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Kod c2 için üretilir"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Kod c32 için üretilir"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Kod c34 için üretilir"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Standart çağrı sırasını kullnaır; argüman, sayı, word ile"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Argüman sayısını bir NOP işlemine koyar (basma'dan daha çabuk)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "Argüman sayısını basmaz, sembol tablosunu kullanır"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Oynak bellek referansları için veri arabelleği kullanılır"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Oynak bellek referansları için veri arabelleği kullanılmaz"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Oynak bellek referansları için veri arabelleği atlanır"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "64 bitlik long'lar kullanılır"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "cc ve libc uyumlu 32 bitlik long'lar kullanılır"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "gerçel sayı sabitlerin `inline' bildirimi bu makinada desteklenmiyor"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Unix çeviricinin kullanabileceği kod üretilir"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Bir gömülü çeviricinin kullanabileceği kod üretilir"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Standart MXDB bilgisini korur"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Etiket bilgisi korunur"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Dış etiket bilgisi üretir"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr ".s dosyasına tanıtıcı bilgi koyar"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Bir yapı, bir işlevin argümanıysa uyarır"
+
+#~ msgid "argument is a structure"
+#~ msgstr "argüman bir yapı"
+
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "`half-pic init' desteklenmediği sistemlerde kullanıldı"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Ayrımlama mcount kullanır"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Yarım PIC kodu yayınlanır"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "ELF nesne kodu yayınlanır"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "ROSE nesne kodu yayınlanır"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Semboller altçizgi ile başlar"
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Hizalama >word sınırlara yapılır"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Ayrımlama için mcount kullanılır"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Ayrımlama için mcount_ptr kullanılır"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Aritmetik işlemci kullanan kod üretilir"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Aritmetik işlemci kullanan kod üretilmez"
+
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "-mlong-double-64 seçeneği henüz çalışmıyor."
+
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr " -march seçeneği -mipsN ile uyumsuz olduğundan yoksayıldı."
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d desteklenmiyor"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s ile -mips%d uyumsuz"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "bu hedef -mabi seçeneğini desteklemez."
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "-mtune= seçeneğinin değeri (%s) hatalı"
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d 64 bit fp yazmaçlarını desteklemez"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d 64 bit gp yazmaçlarını desteklemez"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "OSF PIC kullanılır"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "OSF PIC kullanılmaz"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "3900 için eniyileme yapılır"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "4650 için eniyileme yapılır"
+
+#~ msgid "stack frame too big"
+#~ msgstr "yığın bağlamı çok büyük"
+
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "mmix_setup_incoming_varargs içinde ne varargs ne de stdarg var"
+
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "oof, hata ayıklamasız; değer düzeltiliyor:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Küçük ilkli veri üretilir"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Büyük ilkli veri üretilir"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Programcı denetim kodunu etkinleştirir"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Transmeta picoJava uzantıları etkinleştirilir"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Transmeta picoJava uzantıları kullanılmaz"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Aşamaların yeniden organizasyonu yapılmaz"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s yoksayıldı (tüm kod konum bağımsız)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "Hata ayıklama sırasında AIX'de -ffunction-sections etkisizdir"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections AIX'de desteklenmiyor"
+
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "`%s' için 3. argüman 2 bitlik bir sabit olmalı"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S tamamı birlerin maskı olarak hesaplandı"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S tamamı sıfırların maskı olarak hesaplandı"
+
+#~ msgid "no viable candidates"
+#~ msgstr "uygulanabilir aday yok"
+
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#~ msgstr "POD olmayan `%#T' türünün nesneleri `...' üzerinden aktarılamaz"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "`%D' zaten `%T' de bildirilmiÅŸti"
+
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "typedef `%D' ilkdeÄŸerli"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "bildirici olarak `%D'"
+
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "üye `%D' boyutu bir sabit değil"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "%s referanslara bildirilemez"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "geçersiz tür: `void &'"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "typedef bildirimi bir ilklendirici içeriyor"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version artık desteklenmiyor"
+
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "aday%s: %+#D"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "`%#D'"
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " bildirim sırasının eşlenmesi için yeniden sıralama yapılacak"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "üye `%D' için çoklu ilklendiriciler verilmiş"
+
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "`%T' için taban ilklendiriciler"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " miras kalma sırasının eşlenmesi için yeniden sıralanacak"
+
+#~ msgid "base class `%T' already initialized"
+#~ msgstr "taban sınıf `%T' zaten ilklendirilmiş"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "implementation-saklı ismi `%D' kullanıldı"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "`%#D' nin doğrudan gerçeklenmesi sonra"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "burada doğrudan özelleştirme"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "`%#T' nin doğrudan gerçeklenmesi sonra"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "`%T' için taban ilklendirici"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " üye ilklendirmelerinin öncesinde yeniden sıralanmış olacak"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "`%V' niteleyicileri `%T'de yoksayılıyor"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a function type"
+#~ msgstr "ISO C++ bir üye türe `sizeof' uygulanmasına izin vermez"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ bir üye işleve `sizeof' uygulanmasına izin vermez"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ bir boş tür olan `void' türe `sizeof' uygulanmasına izin vermez"
+
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr "'sizeof' bir statik olmayan üyeye uygulandı"
+
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "sizeof bir içi boş `%T' türüne uygulandı"
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "üye `%T::%D' için kümeleme türü olmayan tür `%T' ifadesi içinde istek"
+
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "ifade olarak tür bildirimi `%#D' kullanımı geçersiz"
+
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "ifade olarak tür şablon `%#D' kullanımı geçersiz"
+
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "POD olmayan tür `%T' deki offsetof geçersiz; yerine üyeye gösterge kullanın"
+
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "üye işleve gösterge çağrıldı ama sınıf kapsamında değil"
+
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "yöntem `%D' ye çağrı içinde nesne eksik"
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "işlev `%D' aşırı yükü bildirilmiş ama onu çözümleyecek olanla görünen bir tanımı yok!?!"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "statik üye işlev kapsamında `this' gerektiren üye işleve çağrı geçersiz"
+
+#~ msgid "unary `&'"
+#~ msgstr "tekil `&'"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "tanımsız `%#T' türünün kullanımı geçersiz"
+
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "`%#T' için ileriye bildirim"
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "`%T' kullanımı geçersiz"
+
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "üye kullanımı geçersiz ( `&' unutuldu mu? )"
+
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "şablon türü parametre kullanımı geçersiz"
+
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "bağlamsal tür bilgileri olmayan aşırı yüklü işlev adresi"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "bağlamsal tür bilgileri olmayan aşırı yüklü işlev"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "türü saptayacak bağlamsal bilgiler yetersiz"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "ilklendirici liste yapısı türetilmiş sınıf nesnesi `%D' için geçersiz"
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "ilklendirici liste yapısı polimorfik sınıf nesnesi `%D' için geçersiz"
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "ilklendirici liste yapısı `%D' için geçersiz"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "bir kurucunun varlığından kaynaklanıyor"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "üye `%D' nin public olmayan erişiminden dolayı"
+
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ sabit olmayan kümeleme ilklendirici ifadelerine izin vermez"
+
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "`\\x'in anlamı (%0 içinde) -traditional ile değişir"
+
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "`\\a'nın anlamı (%0 içinde) -traditional ile değişir"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "`\\x'in anlamı -traditional ile değişir"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "`\\a'nın anlamı -traditional ile değişir"
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "ayrıştırma hatası; ayrıca sanal bellek aşıldı"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Dizi boyutları bildirim sırasında belirtilemez"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "iç hata - atanmamış tür kullanımı"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "-fconstant-string-class için argüman olarak sınıf ismi belirtilmemiş"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "-p ayrımsaması artık desteklenmiyor. yerine -pg kullanın."
+
+#~ msgid "incompatible interworking options"
+#~ msgstr "uyumsuz birlikte çalışma seçenekleri"
+
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "-mabi=mmixware ve -mabi=gnu seçenekleri birlikte kullanılmamalı"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "-p seçeneği desteklenmiyor: yerine -pg kullanın"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd ve -pedantic uyumsuz"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd ve -mxopen uyumsuz"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen ve -pedantic uyumsuz"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "-mfp64 ve -msingle-float birlikte kullanılamayabilir"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "-mfp64 ve -m4650 birlikte kullanılamayabilir"
+
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "-mfp64 ve -mgp32 birlikte kullanılamayabilir"
+
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "Program bellek alanına sadece ilklendirilmiş değişkenler yerleştirilebilir."
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "`%#T' bildirimi"
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "bir -ifile seçeneği bir -map seçeneği gerektirir"
#~ msgid "__builtin_trap not supported by this target"
#~ msgstr "__builtin_trap bu hedef tarafından desteklenmiyor"
@@ -20434,9 +22327,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "cannot EXIT label `%s' outside current function"
#~ msgstr "EXIT etiketi `%s' işlevin dışında olamaz"
-#~ msgid "case selector not compatible with label"
-#~ msgstr "case seçici case etiketi ile uyumsuz"
-
#~ msgid "ELSE label not within a CASE statement"
#~ msgstr "ELSE etiketi bir CASE deyimi içinde değil"
@@ -20557,9 +22447,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "bad initializer for field `%s'"
#~ msgstr "`%s' alanı için hatalı ilklendirici"
-#~ msgid "no initializer value for variant field `%s'"
-#~ msgstr "variant alan `%s' için bir ilklendirici yok"
-
#~ msgid "no selected variant"
#~ msgstr "seçilmiş bir variant yok"
@@ -20683,9 +22570,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "non-value mode may only returned by LOC"
#~ msgstr "değer almayan kip sadece konumu ile döndürülebilir"
-#~ msgid "mode of `%s' is not a mode"
-#~ msgstr "`%s' kipi bir kip deÄŸil"
-
#~ msgid "`%s' may only be passed by LOC"
#~ msgstr "`%s' sadece konumu ile aktarılabilir"
@@ -21106,9 +22990,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "too few arguments in call to `readrecord'"
#~ msgstr "`readrecord' çağrısında argümanlar çok az"
-#~ msgid "incompatible record mode"
-#~ msgstr "uyumsuz kayıt kipi"
-
#~ msgid "store location must not be READonly"
#~ msgstr "saklama konumu SALTokunur olmamalı"
@@ -21271,15 +23152,9 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "control sequence overflow"
#~ msgstr "denetim dizgesinde taÅŸma"
-#~ msgid "invalid control sequence"
-#~ msgstr "geçersiz denetim dizgesi"
-
#~ msgid "invalid base in read control sequence"
#~ msgstr "okuma denetimi dizgesindeki taban geçersiz"
-#~ msgid "invalid digit in control sequence"
-#~ msgstr "denetim dizgesindeki rakam geçersiz"
-
#~ msgid "unterminated string literal"
#~ msgstr "sonlandırılmamış dizge sabit"
@@ -21373,9 +23248,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "start label '%s' does not match end label '%s'"
#~ msgstr "baÅŸlatma etiketi '%s' ile bitirme etiketi '%s' eÅŸleÅŸmiyor"
-#~ msgid "`%s' not declared"
-#~ msgstr "`%s' bildirilmedi"
-
#~ msgid "no RETURN or RESULT in procedure"
#~ msgstr "iÅŸlevde ne RETURN ne de RESULT var"
@@ -21424,9 +23296,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "'=' used where ':=' is required"
#~ msgstr "':=' gerekirken '=' kullanılmış"
-#~ msgid "initialization is not allowed in spec module"
-#~ msgstr "spec modülünde ilklendirme yapılamaz"
-
#~ msgid "loc-identity declaration without initialization"
#~ msgstr "ilklendirilmeksizin yerel kimlik bildirimi"
@@ -21469,9 +23338,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "unrecognized case label list after ','"
#~ msgstr "','den sonraki case etiketleri tanınmıyor"
-#~ msgid "bad ASM operand"
-#~ msgstr "hatalı ASM terimi"
-
#~ msgid "readonly location modified by 'asm'"
#~ msgstr "salt-okunur konum 'asm' tarafından değiştirildi"
@@ -21556,12 +23422,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "POS not allowed for ARRAY"
#~ msgstr "ARRAY için POS kullanılamaz"
-#~ msgid "STEP not allowed in field definition"
-#~ msgstr "alan tanımında STEP kullanılamaz"
-
-#~ msgid "missing field name"
-#~ msgstr "alan ismi eksik"
-
#~ msgid "bad field name following ','"
#~ msgstr "','ü izleyen alan ismi hatalı"
@@ -21616,9 +23476,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "mode with non-value property in signal definition"
#~ msgstr "sinyal tanımında değer almayan özellikli kip"
-#~ msgid "undeclared identifier `%s'"
-#~ msgstr "bildirilmemiş tanımlayıcı `%s'"
-
#~ msgid "RETURNS spec with invalid mode"
#~ msgstr "geçersiz kipte RETURNS özelliği"
@@ -21634,9 +23491,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "recordmode must not have the non-value property"
#~ msgstr "kayıt kipi değer almayan özelliğe sahip olmamalı"
-#~ msgid "tasking code %ld out of range for `%s'"
-#~ msgstr "görevlendirme kodu %ld `%s' için aralık dışında"
-
#~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
#~ msgstr "argüman `%s' için öznitelik geçersiz (sadece IN ya da LOC kullanılabilir)"
@@ -21874,9 +23728,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "can only take slice of array or string"
#~ msgstr "sadece dizi ya da dizgenin dilimi alınabilir"
-#~ msgid "slice length is not an integer"
-#~ msgstr "dilim uzunluğu bir yamsayı değil"
-
#~ msgid "slice length out-of-range"
#~ msgstr "dilim uzunluğu kapsam-dışı"
@@ -21925,9 +23776,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "location conversion between differently-sized modes"
#~ msgstr "farklı boyuttaki kipler arasında konum dönüşümü"
-#~ msgid "unsupported value conversion"
-#~ msgstr "desteklenmeyen değer dönüşümü"
-
#~ msgid "operand to bin must be a non-negative integer literal"
#~ msgstr "bin terimi bir negatif olmayan tamsayı sabit olmalı"
@@ -22712,9 +24560,6 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "Invalid length specification at %0 for IMPLICIT statement -- must be integer constant expression"
#~ msgstr "IMPLICIT deyimi için %0 daki uzunluk özelliği geçersiz -- tamsayı sabit ifadesi olmalı"
-#~ msgid "Invalid length specification at %0"
-#~ msgstr "%0 da uzunluk özelliği geçersiz"
-
#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
#~ msgstr "İşlevin %0 daki giriş noktasının türü önceki giriş noktası/larındaki tür(ler) ile çelişiyor -- ya tümü aynı karakter uzunluğunda olmalı yada hiçbiri karakter türünde olmamalı"
@@ -22774,6 +24619,3 @@ msgstr "-fPIC -mcoff ile geçerli değil"
#~ msgid "Set class path and suppress system path"
#~ msgstr "Sistem dosya yolu yerine sınıf dosya yolu ayarlanır"
-
-#~ msgid "a -ifile option requires a -map option"
-#~ msgstr "bir -ifile seçeneği bir -map seçeneği gerektirir"
diff --git a/gcc/predict.c b/gcc/predict.c
index 7e581468dec..3ad11e78536 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -51,10 +51,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "target.h"
#include "loop.h"
-/* real constants: 0, 1, 1-1/REG_BR_PROB_BASE, REG_BR_PROB_BASE, 0.5,
- REAL_BB_FREQ_MAX. */
+/* real constants: 0, 1, 1-1/REG_BR_PROB_BASE, REG_BR_PROB_BASE,
+ 1/REG_BR_PROB_BASE, 0.5, BB_FREQ_MAX. */
static REAL_VALUE_TYPE real_zero, real_one, real_almost_one, real_br_prob_base,
- real_one_half, real_bb_freq_max;
+ real_inv_br_prob_base, real_one_half, real_bb_freq_max;
/* Random guesstimation given names. */
#define PROB_VERY_UNLIKELY (REG_BR_PROB_BASE / 10 - 1)
@@ -183,6 +183,8 @@ predict_insn (insn, predictor, probability)
{
if (!any_condjump_p (insn))
abort ();
+ if (!flag_guess_branch_prob)
+ return;
REG_NOTES (insn)
= gen_rtx_EXPR_LIST (REG_BR_PRED,
@@ -986,20 +988,25 @@ propagate_freq (loop)
TYPE_MODE (double_type_node));
REAL_ARITHMETIC (tmp, MULT_EXPR, tmp,
BLOCK_INFO (e->src)->frequency);
- REAL_ARITHMETIC (tmp, RDIV_EXPR, tmp, real_br_prob_base);
+ REAL_ARITHMETIC (tmp, MULT_EXPR, tmp, real_inv_br_prob_base);
REAL_ARITHMETIC (frequency, PLUS_EXPR, frequency, tmp);
}
- if (REAL_VALUES_LESS (real_almost_one, cyclic_probability))
- memcpy (&cyclic_probability, &real_almost_one, sizeof (real_zero));
+ if (REAL_VALUES_IDENTICAL (cyclic_probability, real_zero))
+ memcpy (&BLOCK_INFO (bb)->frequency, &frequency, sizeof (frequency));
+ else
+ {
+ if (REAL_VALUES_LESS (real_almost_one, cyclic_probability))
+ memcpy (&cyclic_probability, &real_almost_one, sizeof (real_zero));
- /* BLOCK_INFO (bb)->frequency = frequency / (1 - cyclic_probability)
- */
+ /* BLOCK_INFO (bb)->frequency = frequency / (1 - cyclic_probability)
+ */
- REAL_ARITHMETIC (cyclic_probability, MINUS_EXPR, real_one,
+ REAL_ARITHMETIC (cyclic_probability, MINUS_EXPR, real_one,
cyclic_probability);
- REAL_ARITHMETIC (BLOCK_INFO (bb)->frequency,
- RDIV_EXPR, frequency, cyclic_probability);
+ REAL_ARITHMETIC (BLOCK_INFO (bb)->frequency,
+ RDIV_EXPR, frequency, cyclic_probability);
+ }
}
BLOCK_INFO (bb)->tovisit = 0;
@@ -1018,7 +1025,7 @@ propagate_freq (loop)
REAL_ARITHMETIC (tmp, MULT_EXPR, tmp,
BLOCK_INFO (bb)->frequency);
REAL_ARITHMETIC (EDGE_INFO (e)->back_edge_prob,
- RDIV_EXPR, tmp, real_br_prob_base);
+ MULT_EXPR, tmp, real_inv_br_prob_base);
}
@@ -1149,11 +1156,9 @@ estimate_bb_frequencies (loops)
REAL_VALUE_FROM_INT (real_br_prob_base, REG_BR_PROB_BASE, 0, double_mode);
REAL_VALUE_FROM_INT (real_bb_freq_max, BB_FREQ_MAX, 0, double_mode);
REAL_VALUE_FROM_INT (real_one_half, 2, 0, double_mode);
-
REAL_ARITHMETIC (real_one_half, RDIV_EXPR, real_one, real_one_half);
-
- REAL_ARITHMETIC (real_almost_one, RDIV_EXPR, real_one, real_br_prob_base);
- REAL_ARITHMETIC (real_almost_one, MINUS_EXPR, real_one, real_almost_one);
+ REAL_ARITHMETIC (real_inv_br_prob_base, RDIV_EXPR, real_one, real_br_prob_base);
+ REAL_ARITHMETIC (real_almost_one, MINUS_EXPR, real_one, real_inv_br_prob_base);
mark_dfs_back_edges ();
/* Fill in the probability values in flowgraph based on the REG_BR_PROB
@@ -1197,8 +1202,8 @@ estimate_bb_frequencies (loops)
REAL_VALUE_FROM_INT (EDGE_INFO (e)->back_edge_prob,
e->probability, 0, double_mode);
REAL_ARITHMETIC (EDGE_INFO (e)->back_edge_prob,
- RDIV_EXPR, EDGE_INFO (e)->back_edge_prob,
- real_br_prob_base);
+ MULT_EXPR, EDGE_INFO (e)->back_edge_prob,
+ real_inv_br_prob_base);
}
}
@@ -1213,13 +1218,14 @@ estimate_bb_frequencies (loops)
memcpy (&freq_max, &BLOCK_INFO (bb)->frequency,
sizeof (freq_max));
+ REAL_ARITHMETIC (freq_max, RDIV_EXPR, real_bb_freq_max, freq_max);
+
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
{
REAL_VALUE_TYPE tmp;
REAL_ARITHMETIC (tmp, MULT_EXPR, BLOCK_INFO (bb)->frequency,
- real_bb_freq_max);
- REAL_ARITHMETIC (tmp, RDIV_EXPR, tmp, freq_max);
+ freq_max);
REAL_ARITHMETIC (tmp, PLUS_EXPR, tmp, real_one_half);
bb->frequency = REAL_VALUE_UNSIGNED_FIX (tmp);
}
@@ -1264,7 +1270,7 @@ choose_function_section ()
but this requires more work as the frequency needs to match
for all generated objects so we need to merge the frequency
of all instances. For now just never set frequency for these. */
- || !DECL_ONE_ONLY (current_function_decl))
+ || DECL_ONE_ONLY (current_function_decl))
return;
if (cfun->function_frequency == FUNCTION_FREQUENCY_HOT)
DECL_SECTION_NAME (current_function_decl) =
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index c01f9185add..0a0ac9e0427 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -1,5 +1,5 @@
/* Print RTL for GNU C Compiler.
- Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000
+ Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000, 2002, 2003
Free Software Foundation, Inc.
This file is part of GCC.
@@ -491,6 +491,7 @@ print_rtx (in_rtx)
switch (GET_CODE (in_rtx))
{
+#ifndef GENERATOR_FILE
case MEM:
fputs (" [", outfile);
fprintf (outfile, HOST_WIDE_INT_PRINT_DEC, MEM_ALIAS_SET (in_rtx));
@@ -518,7 +519,6 @@ print_rtx (in_rtx)
fputc (']', outfile);
break;
-#ifndef GENERATOR_FILE
case CONST_DOUBLE:
if (FLOAT_MODE_P (GET_MODE (in_rtx)))
{
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index e7c16559e56..05ca52b3c56 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -328,7 +328,9 @@ print_node (file, prefix, node, indent)
if (TREE_CODE (node) == TYPE_DECL && TYPE_DECL_SUPPRESS_DEBUG (node))
fputs (" suppress-debug", file);
- if (TREE_CODE (node) == FUNCTION_DECL && DECL_INLINE (node))
+ if (TREE_CODE (node) == FUNCTION_DECL && DID_INLINE_FUNC (node))
+ fputs (" autoinline", file);
+ else if (TREE_CODE (node) == FUNCTION_DECL && DECL_INLINE (node))
fputs (" inline", file);
if (TREE_CODE (node) == FUNCTION_DECL && DECL_BUILT_IN (node))
fputs (" built-in", file);
diff --git a/gcc/ra-colorize.c b/gcc/ra-colorize.c
index eecea504f18..5db6474447c 100644
--- a/gcc/ra-colorize.c
+++ b/gcc/ra-colorize.c
@@ -532,13 +532,14 @@ merge_moves (u, v)
struct web *u, *v;
{
regset seen;
- struct move_list *ml;
+ struct move_list *ml, *ml_next;
seen = BITMAP_XMALLOC ();
for (ml = u->moves; ml; ml = ml->next)
bitmap_set_bit (seen, INSN_UID (ml->move->insn));
- for (ml = v->moves; ml; ml = ml->next)
+ for (ml = v->moves; ml; ml = ml_next)
{
+ ml_next = ml->next;
if (! bitmap_bit_p (seen, INSN_UID (ml->move->insn)))
{
ml->next = u->moves;
diff --git a/gcc/real.c b/gcc/real.c
index d9a4b801e3d..f775226c1ed 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -1,6 +1,6 @@
/* real.c - software floating point emulation.
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
Contributed by Stephen L. Moshier (moshier@world.std.com).
Re-written by Richard Henderson <rth@redhat.com>
@@ -1369,7 +1369,7 @@ real_to_integer2 (plow, phigh, r)
exp = r->exp;
if (exp <= 0)
goto underflow;
- if (exp >= 2*HOST_BITS_PER_WIDE_INT)
+ if (exp > 2*HOST_BITS_PER_WIDE_INT)
goto overflow;
rshift_significand (&t, r, 2*HOST_BITS_PER_WIDE_INT - exp);
@@ -2612,9 +2612,10 @@ encode_ieee_single (fmt, buf, r)
const REAL_VALUE_TYPE *r;
{
unsigned long image, sig, exp;
+ unsigned long sign = r->sign;
bool denormal = (r->sig[SIGSZ-1] & SIG_MSB) == 0;
- image = r->sign << 31;
+ image = sign << 31;
sig = (r->sig[SIGSZ-1] >> (HOST_BITS_PER_LONG - 24)) & 0x7fffff;
switch (r->class)
@@ -3208,6 +3209,23 @@ const struct real_format ieee_extended_intel_128_format =
true
};
+/* The following caters to i386 systems that set the rounding precision
+ to 53 bits instead of 64, e.g. FreeBSD. */
+const struct real_format ieee_extended_intel_96_round_53_format =
+ {
+ encode_ieee_extended,
+ decode_ieee_extended,
+ 2,
+ 1,
+ 53,
+ -16381,
+ 16384,
+ true,
+ true,
+ true,
+ true,
+ true
+ };
/* IBM 128-bit extended precision format: a pair of IEEE double precision
numbers whose sum is equal to the extended precision value. The number
@@ -3254,8 +3272,23 @@ encode_ibm_extended (fmt, buf, r)
u = *r;
clear_significand_below (&u, SIGNIFICAND_BITS - 53);
- /* v = remainder containing additional 53 bits of significand. */
- do_add (&v, r, &u, 1);
+ normalize (&u);
+ /* If the upper double is zero, we have a denormal double, so
+ move it to the first double and leave the second as zero. */
+ if (u.class == rvc_zero)
+ {
+ v = u;
+ u = *r;
+ normalize (&u);
+ }
+ else
+ {
+ /* v = remainder containing additional 53 bits of significand. */
+ do_add (&v, r, &u, 1);
+ round_for_format (&ieee_double_format, &v);
+ }
+
+ round_for_format (&ieee_double_format, &u);
encode_ieee_double (&ieee_double_format, &buf[0], &u);
encode_ieee_double (&ieee_double_format, &buf[2], &v);
@@ -3292,7 +3325,7 @@ const struct real_format ibm_extended_format =
2,
1,
53 + 53,
- -1021,
+ -1021 + 53,
1024,
true,
true,
diff --git a/gcc/real.h b/gcc/real.h
index a979cea67ac..7568a9e3279 100644
--- a/gcc/real.h
+++ b/gcc/real.h
@@ -221,6 +221,7 @@ extern const struct real_format ieee_single_format;
extern const struct real_format ieee_double_format;
extern const struct real_format ieee_extended_motorola_format;
extern const struct real_format ieee_extended_intel_96_format;
+extern const struct real_format ieee_extended_intel_96_round_53_format;
extern const struct real_format ieee_extended_intel_128_format;
extern const struct real_format ibm_extended_format;
extern const struct real_format ieee_quad_format;
diff --git a/gcc/recog.c b/gcc/recog.c
index d1db9c4e69d..dd080ddbfd3 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1086,7 +1086,7 @@ register_operand (op, mode)
#ifdef CANNOT_CHANGE_MODE_CLASS
if (GET_CODE (sub) == REG
&& REGNO (sub) < FIRST_PSEUDO_REGISTER
- && REG_CANNOT_CHANGE_MODE_P (REGNO (sub), mode, GET_MODE (sub))
+ && REG_CANNOT_CHANGE_MODE_P (REGNO (sub), GET_MODE (sub), mode)
&& GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_INT
&& GET_MODE_CLASS (GET_MODE (sub)) != MODE_COMPLEX_FLOAT)
return 0;
@@ -2515,12 +2515,25 @@ constrain_operands (strict)
break;
case 'm':
- if (GET_CODE (op) == MEM
- /* Before reload, accept what reload can turn into mem. */
- || (strict < 0 && CONSTANT_P (op))
- /* During reload, accept a pseudo */
- || (reload_in_progress && GET_CODE (op) == REG
- && REGNO (op) >= FIRST_PSEUDO_REGISTER))
+ /* Memory operands must be valid, to the extent
+ required by STRICT. */
+ if (GET_CODE (op) == MEM)
+ {
+ if (strict > 0
+ && !strict_memory_address_p (GET_MODE (op),
+ XEXP (op, 0)))
+ break;
+ if (strict == 0
+ && !memory_address_p (GET_MODE (op), XEXP (op, 0)))
+ break;
+ win = 1;
+ }
+ /* Before reload, accept what reload can turn into mem. */
+ else if (strict < 0 && CONSTANT_P (op))
+ win = 1;
+ /* During reload, accept a pseudo */
+ else if (reload_in_progress && GET_CODE (op) == REG
+ && REGNO (op) >= FIRST_PSEUDO_REGISTER)
win = 1;
break;
@@ -2742,62 +2755,43 @@ reg_fits_class_p (operand, class, offset, mode)
return 0;
}
-/* Split single instruction. Helper function for split_all_insns.
- Return last insn in the sequence if successful, or NULL if unsuccessful. */
+/* Split single instruction. Helper function for split_all_insns and
+ split_all_insns_noflow. Return last insn in the sequence if successful,
+ or NULL if unsuccessful. */
+
static rtx
split_insn (insn)
rtx insn;
{
- rtx set;
- if (!INSN_P (insn))
- ;
- /* Don't split no-op move insns. These should silently
- disappear later in final. Splitting such insns would
- break the code that handles REG_NO_CONFLICT blocks. */
+ /* Split insns here to get max fine-grain parallelism. */
+ rtx first = PREV_INSN (insn);
+ rtx last = try_split (PATTERN (insn), insn, 1);
- else if ((set = single_set (insn)) != NULL && set_noop_p (set))
- {
- /* Nops get in the way while scheduling, so delete them
- now if register allocation has already been done. It
- is too risky to try to do this before register
- allocation, and there are unlikely to be very many
- nops then anyways. */
- if (reload_completed)
- delete_insn_and_edges (insn);
- }
- else
- {
- /* Split insns here to get max fine-grain parallelism. */
- rtx first = PREV_INSN (insn);
- rtx last = try_split (PATTERN (insn), insn, 1);
+ if (last == insn)
+ return NULL_RTX;
- if (last != insn)
+ /* try_split returns the NOTE that INSN became. */
+ PUT_CODE (insn, NOTE);
+ NOTE_SOURCE_FILE (insn) = 0;
+ NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
+
+ /* ??? Coddle to md files that generate subregs in post-reload
+ splitters instead of computing the proper hard register. */
+ if (reload_completed && first != last)
+ {
+ first = NEXT_INSN (first);
+ for (;;)
{
- /* try_split returns the NOTE that INSN became. */
- PUT_CODE (insn, NOTE);
- NOTE_SOURCE_FILE (insn) = 0;
- NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
-
- /* ??? Coddle to md files that generate subregs in post-
- reload splitters instead of computing the proper
- hard register. */
- if (reload_completed && first != last)
- {
- first = NEXT_INSN (first);
- while (1)
- {
- if (INSN_P (first))
- cleanup_subreg_operands (first);
- if (first == last)
- break;
- first = NEXT_INSN (first);
- }
- }
- return last;
+ if (INSN_P (first))
+ cleanup_subreg_operands (first);
+ if (first == last)
+ break;
+ first = NEXT_INSN (first);
}
}
- return NULL_RTX;
+ return last;
}
+
/* Split all insns in the function. If UPD_LIFE, update life info after. */
void
@@ -2805,12 +2799,12 @@ split_all_insns (upd_life)
int upd_life;
{
sbitmap blocks;
- int changed;
+ bool changed;
basic_block bb;
blocks = sbitmap_alloc (last_basic_block);
sbitmap_zero (blocks);
- changed = 0;
+ changed = false;
FOR_EACH_BB_REVERSE (bb)
{
@@ -2819,38 +2813,70 @@ split_all_insns (upd_life)
for (insn = bb->head; !finish ; insn = next)
{
- rtx last;
-
/* Can't use `next_real_insn' because that might go across
CODE_LABELS and short-out basic blocks. */
next = NEXT_INSN (insn);
finish = (insn == bb->end);
- last = split_insn (insn);
- if (last)
+ if (INSN_P (insn))
{
- /* The split sequence may include barrier, but the
- BB boundary we are interested in will be set to previous
- one. */
-
- while (GET_CODE (last) == BARRIER)
- last = PREV_INSN (last);
- SET_BIT (blocks, bb->index);
- changed = 1;
- insn = last;
+ rtx set = single_set (insn);
+
+ /* Don't split no-op move insns. These should silently
+ disappear later in final. Splitting such insns would
+ break the code that handles REG_NO_CONFLICT blocks. */
+ if (set && set_noop_p (set))
+ {
+ /* Nops get in the way while scheduling, so delete them
+ now if register allocation has already been done. It
+ is too risky to try to do this before register
+ allocation, and there are unlikely to be very many
+ nops then anyways. */
+ if (reload_completed)
+ {
+ /* If the no-op set has a REG_UNUSED note, we need
+ to update liveness information. */
+ if (find_reg_note (insn, REG_UNUSED, NULL_RTX))
+ {
+ SET_BIT (blocks, bb->index);
+ changed = true;
+ }
+ /* ??? Is life info affected by deleting edges? */
+ delete_insn_and_edges (insn);
+ }
+ }
+ else
+ {
+ rtx last = split_insn (insn);
+ if (last)
+ {
+ /* The split sequence may include barrier, but the
+ BB boundary we are interested in will be set to
+ previous one. */
+
+ while (GET_CODE (last) == BARRIER)
+ last = PREV_INSN (last);
+ SET_BIT (blocks, bb->index);
+ changed = true;
+ }
+ }
}
}
}
if (changed)
{
+ int old_last_basic_block = last_basic_block;
+
find_many_sub_basic_blocks (blocks);
+
+ if (old_last_basic_block != last_basic_block && upd_life)
+ blocks = sbitmap_resize (blocks, last_basic_block, 1);
}
if (changed && upd_life)
- {
- count_or_remove_death_notes (blocks, 1);
- update_life_info (blocks, UPDATE_LIFE_LOCAL, PROP_DEATH_NOTES);
- }
+ update_life_info (blocks, UPDATE_LIFE_GLOBAL_RM_NOTES,
+ PROP_DEATH_NOTES | PROP_REG_INFO);
+
#ifdef ENABLE_CHECKING
verify_flow_info ();
#endif
@@ -2869,9 +2895,28 @@ split_all_insns_noflow ()
for (insn = get_insns (); insn; insn = next)
{
next = NEXT_INSN (insn);
- split_insn (insn);
+ if (INSN_P (insn))
+ {
+ /* Don't split no-op move insns. These should silently
+ disappear later in final. Splitting such insns would
+ break the code that handles REG_NO_CONFLICT blocks. */
+ rtx set = single_set (insn);
+ if (set && set_noop_p (set))
+ {
+ /* Nops get in the way while scheduling, so delete them
+ now if register allocation has already been done. It
+ is too risky to try to do this before register
+ allocation, and there are unlikely to be very many
+ nops then anyways.
+
+ ??? Should we use delete_insn when the CFG isn't valid? */
+ if (reload_completed)
+ delete_insn_and_edges (insn);
+ }
+ else
+ split_insn (insn);
+ }
}
- return;
}
#ifdef HAVE_peephole2
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 18bfeca3c75..3bc378e0216 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -249,13 +249,13 @@ static int get_hard_regnum PARAMS ((stack, rtx));
static rtx emit_pop_insn PARAMS ((rtx, stack, rtx,
enum emit_where));
static void emit_swap_insn PARAMS ((rtx, stack, rtx));
-static void move_for_stack_reg PARAMS ((rtx, stack, rtx));
+static bool move_for_stack_reg PARAMS ((rtx, stack, rtx));
static int swap_rtx_condition_1 PARAMS ((rtx));
static int swap_rtx_condition PARAMS ((rtx));
static void compare_for_stack_reg PARAMS ((rtx, stack, rtx));
-static void subst_stack_regs_pat PARAMS ((rtx, stack, rtx));
+static bool subst_stack_regs_pat PARAMS ((rtx, stack, rtx));
static void subst_asm_stack_regs PARAMS ((rtx, stack));
-static void subst_stack_regs PARAMS ((rtx, stack));
+static bool subst_stack_regs PARAMS ((rtx, stack));
static void change_stack PARAMS ((rtx, stack, stack,
enum emit_where));
static int convert_regs_entry PARAMS ((void));
@@ -426,9 +426,6 @@ reg_to_stack (first, file)
/* Clean up previous run. */
stack_regs_mentioned_data = 0;
- if (!optimize)
- split_all_insns (0);
-
/* See if there is something to do. Flow analysis is quite
expensive so we might save some compilation time. */
for (i = FIRST_STACK_REG; i <= LAST_STACK_REG; i++)
@@ -587,6 +584,9 @@ get_true_reg (pat)
}
}
+/* Set if we find any malformed asms in a block. */
+static bool any_malformed_asm;
+
/* There are many rules that an asm statement for stack-like regs must
follow. Those rules are explained at the top of this file: the rule
numbers below refer to that explanation. */
@@ -768,6 +768,7 @@ check_asm_stack_operands (insn)
{
/* Avoid further trouble with this insn. */
PATTERN (insn) = gen_rtx_USE (VOIDmode, const0_rtx);
+ any_malformed_asm = true;
return 0;
}
@@ -1051,9 +1052,10 @@ emit_swap_insn (insn, regstack, reg)
}
/* Handle a move to or from a stack register in PAT, which is in INSN.
- REGSTACK is the current stack. */
+ REGSTACK is the current stack. Return whether a control flow insn
+ was deleted in the process. */
-static void
+static bool
move_for_stack_reg (insn, regstack, pat)
rtx insn;
stack regstack;
@@ -1063,6 +1065,7 @@ move_for_stack_reg (insn, regstack, pat)
rtx *pdest = get_true_reg (&SET_DEST (pat));
rtx src, dest;
rtx note;
+ bool control_flow_insn_deleted = false;
src = *psrc; dest = *pdest;
@@ -1092,21 +1095,17 @@ move_for_stack_reg (insn, regstack, pat)
If so, just pop the src. */
if (find_regno_note (insn, REG_UNUSED, REGNO (dest)))
+ emit_pop_insn (insn, regstack, src, EMIT_AFTER);
+ else
{
- emit_pop_insn (insn, regstack, src, EMIT_AFTER);
-
- delete_insn (insn);
- return;
+ regstack->reg[i] = REGNO (dest);
+ SET_HARD_REG_BIT (regstack->reg_set, REGNO (dest));
+ CLEAR_HARD_REG_BIT (regstack->reg_set, REGNO (src));
}
- regstack->reg[i] = REGNO (dest);
-
- SET_HARD_REG_BIT (regstack->reg_set, REGNO (dest));
- CLEAR_HARD_REG_BIT (regstack->reg_set, REGNO (src));
-
+ control_flow_insn_deleted |= control_flow_insn_p (insn);
delete_insn (insn);
-
- return;
+ return control_flow_insn_deleted;
}
/* The source reg does not die. */
@@ -1121,8 +1120,9 @@ move_for_stack_reg (insn, regstack, pat)
if (find_regno_note (insn, REG_UNUSED, REGNO (dest)))
emit_pop_insn (insn, regstack, dest, EMIT_AFTER);
+ control_flow_insn_deleted |= control_flow_insn_p (insn);
delete_insn (insn);
- return;
+ return control_flow_insn_deleted;
}
/* The destination ought to be dead. */
@@ -1194,6 +1194,8 @@ move_for_stack_reg (insn, regstack, pat)
}
else
abort ();
+
+ return control_flow_insn_deleted;
}
/* Swap the condition on a branch, if there is one. Return true if we
@@ -1410,15 +1412,17 @@ compare_for_stack_reg (insn, regstack, pat_src)
}
/* Substitute new registers in PAT, which is part of INSN. REGSTACK
- is the current register layout. */
+ is the current register layout. Return whether a control flow insn
+ was deleted in the process. */
-static void
+static bool
subst_stack_regs_pat (insn, regstack, pat)
rtx insn;
stack regstack;
rtx pat;
{
rtx *dest, *src;
+ bool control_flow_insn_deleted = false;
switch (GET_CODE (pat))
{
@@ -1430,7 +1434,7 @@ subst_stack_regs_pat (insn, regstack, pat)
&& find_regno_note (insn, REG_DEAD, REGNO (*src)))
{
emit_pop_insn (insn, regstack, *src, EMIT_AFTER);
- return;
+ return control_flow_insn_deleted;
}
/* ??? Uninitialized USE should not happen. */
else if (get_hard_regnum (regstack, *src) == -1)
@@ -1480,7 +1484,7 @@ subst_stack_regs_pat (insn, regstack, pat)
FP_MODE_REG (REGNO (*dest), SFmode),
nan);
PATTERN (insn) = pat;
- move_for_stack_reg (insn, regstack, pat);
+ control_flow_insn_deleted |= move_for_stack_reg (insn, regstack, pat);
}
if (! note && COMPLEX_MODE_P (GET_MODE (*dest))
&& get_hard_regnum (regstack, FP_MODE_REG (REGNO (*dest), DFmode)) == -1)
@@ -1489,7 +1493,7 @@ subst_stack_regs_pat (insn, regstack, pat)
FP_MODE_REG (REGNO (*dest) + 1, SFmode),
nan);
PATTERN (insn) = pat;
- move_for_stack_reg (insn, regstack, pat);
+ control_flow_insn_deleted |= move_for_stack_reg (insn, regstack, pat);
}
}
}
@@ -1512,7 +1516,7 @@ subst_stack_regs_pat (insn, regstack, pat)
&& (GET_CODE (*src) == REG || GET_CODE (*src) == MEM
|| GET_CODE (*src) == CONST_DOUBLE)))
{
- move_for_stack_reg (insn, regstack, pat);
+ control_flow_insn_deleted |= move_for_stack_reg (insn, regstack, pat);
break;
}
@@ -1845,6 +1849,8 @@ subst_stack_regs_pat (insn, regstack, pat)
default:
break;
}
+
+ return control_flow_insn_deleted;
}
/* Substitute hard regnums for any stack regs in INSN, which has
@@ -2144,14 +2150,16 @@ subst_asm_stack_regs (insn, regstack)
/* Substitute stack hard reg numbers for stack virtual registers in
INSN. Non-stack register numbers are not changed. REGSTACK is the
current stack content. Insns may be emitted as needed to arrange the
- stack for the 387 based on the contents of the insn. */
+ stack for the 387 based on the contents of the insn. Return whether
+ a control flow insn was deleted in the process. */
-static void
+static bool
subst_stack_regs (insn, regstack)
rtx insn;
stack regstack;
{
rtx *note_link, note;
+ bool control_flow_insn_deleted = false;
int i;
if (GET_CODE (insn) == CALL_INSN)
@@ -2192,25 +2200,27 @@ subst_stack_regs (insn, regstack)
Any REG_UNUSED notes will be handled by subst_asm_stack_regs. */
subst_asm_stack_regs (insn, regstack);
- return;
+ return control_flow_insn_deleted;
}
if (GET_CODE (PATTERN (insn)) == PARALLEL)
for (i = 0; i < XVECLEN (PATTERN (insn), 0); i++)
{
if (stack_regs_mentioned_p (XVECEXP (PATTERN (insn), 0, i)))
- subst_stack_regs_pat (insn, regstack,
- XVECEXP (PATTERN (insn), 0, i));
+ control_flow_insn_deleted
+ |= subst_stack_regs_pat (insn, regstack,
+ XVECEXP (PATTERN (insn), 0, i));
}
else
- subst_stack_regs_pat (insn, regstack, PATTERN (insn));
+ control_flow_insn_deleted
+ |= subst_stack_regs_pat (insn, regstack, PATTERN (insn));
}
/* subst_stack_regs_pat may have deleted a no-op insn. If so, any
REG_UNUSED will already have been dealt with, so just return. */
if (GET_CODE (insn) == NOTE || INSN_DELETED_P (insn))
- return;
+ return control_flow_insn_deleted;
/* If there is a REG_UNUSED note on a stack register on this insn,
the indicated reg must be popped. The REG_UNUSED note is removed,
@@ -2226,6 +2236,8 @@ subst_stack_regs (insn, regstack)
}
else
note_link = &XEXP (note, 1);
+
+ return control_flow_insn_deleted;
}
/* Change the organization of the stack so that it fits a new basic
@@ -2615,11 +2627,14 @@ convert_regs_1 (file, block)
{
struct stack_def regstack;
block_info bi = BLOCK_INFO (block);
- int inserted, reg;
+ int deleted, inserted, reg;
rtx insn, next;
edge e, beste = NULL;
+ bool control_flow_insn_deleted = false;
inserted = 0;
+ deleted = 0;
+ any_malformed_asm = false;
/* Find the edge we will copy stack from. It should be the most frequent
one as it will get cheapest after compensation code is generated,
@@ -2650,10 +2665,24 @@ convert_regs_1 (file, block)
beste = e;
}
- /* Entry block does have stack already initialized. */
+ /* Initialize stack at block entry. */
if (bi->stack_in.top == -2)
- inserted |= compensate_edge (beste, file);
+ {
+ if (beste)
+ inserted |= compensate_edge (beste, file);
+ else
+ {
+ /* No predecessors. Create an arbitrary input stack. */
+ int reg;
+
+ bi->stack_in.top = -1;
+ for (reg = LAST_STACK_REG; reg >= FIRST_STACK_REG; --reg)
+ if (TEST_HARD_REG_BIT (bi->stack_in.reg_set, reg))
+ bi->stack_in.reg[++bi->stack_in.top] = reg;
+ }
+ }
else
+ /* Entry blocks do have stack already initialized. */
beste = NULL;
current_block = block;
@@ -2690,7 +2719,7 @@ convert_regs_1 (file, block)
INSN_UID (insn));
print_stack (file, &regstack);
}
- subst_stack_regs (insn, &regstack);
+ control_flow_insn_deleted |= subst_stack_regs (insn, &regstack);
}
}
while (next);
@@ -2729,13 +2758,36 @@ convert_regs_1 (file, block)
set = gen_rtx_SET (VOIDmode, FP_MODE_REG (reg, SFmode),
nan);
insn = emit_insn_after (set, insn);
- subst_stack_regs (insn, &regstack);
+ control_flow_insn_deleted |= subst_stack_regs (insn, &regstack);
}
}
-
- /* Something failed if the stack lives don't match. */
+
+ /* Amongst the insns possibly deleted during the substitution process above,
+ might have been the only trapping insn in the block. We purge the now
+ possibly dead EH edges here to avoid an ICE from fixup_abnormal_edges,
+ called at the end of convert_regs. The order in which we process the
+ blocks ensures that we never delete an already processed edge.
+
+ Note that, at this point, the CFG may have been damaged by the emission
+ of instructions after an abnormal call, which moves the basic block end
+ (and is the reason why we call fixup_abnormal_edges later). So we must
+ be sure that the trapping insn has been deleted before trying to purge
+ dead edges, otherwise we risk purging valid edges.
+
+ ??? We are normally supposed not to delete trapping insns, so we pretend
+ that the insns deleted above don't actually trap. It would have been
+ better to detect this earlier and avoid creating the EH edge in the first
+ place, still, but we don't have enough information at that time. */
+
+ if (control_flow_insn_deleted)
+ purge_dead_edges (block);
+
+ /* Something failed if the stack lives don't match. If we had malformed
+ asms, we zapped the instruction itself, but that didn't produce the
+ same pattern of register kills as before. */
GO_IF_HARD_REG_EQUAL (regstack.reg_set, bi->out_reg_set, win);
- abort ();
+ if (!any_malformed_asm)
+ abort ();
win:
bi->stack_out = regstack;
@@ -2775,6 +2827,10 @@ convert_regs_2 (file, block)
basic_block *stack, *sp;
int inserted;
+ /* We process the blocks in a top-down manner, in a way such that one block
+ is only processed after all its predecessors. The number of predecessors
+ of every block has already been computed. */
+
stack = (basic_block *) xmalloc (sizeof (*stack) * n_basic_blocks);
sp = stack;
@@ -2786,8 +2842,19 @@ convert_regs_2 (file, block)
edge e;
block = *--sp;
- inserted |= convert_regs_1 (file, block);
- BLOCK_INFO (block)->done = 1;
+
+ /* Processing BLOCK is achieved by convert_regs_1, which may purge
+ some dead EH outgoing edge after the deletion of the trapping
+ insn inside the block. Since the number of predecessors of
+ BLOCK's successors was computed based on the initial edge set,
+ we check the necessity to process some of these successors
+ before such an edge deletion may happen. However, there is
+ a pitfall: if BLOCK is the only predecessor of a successor and
+ the edge between them happens to be deleted, the successor
+ becomes unreachable and should not be processed. The problem
+ is that there is no way to preventively detect this case so we
+ stack the successor in all cases and hand over the task of
+ fixing up the discrepancy to convert_regs_1. */
for (e = block->succ; e ; e = e->succ_next)
if (! (e->flags & EDGE_DFS_BACK))
@@ -2796,6 +2863,9 @@ convert_regs_2 (file, block)
if (!BLOCK_INFO (e->dest)->predecessors)
*sp++ = e->dest;
}
+
+ inserted |= convert_regs_1 (file, block);
+ BLOCK_INFO (block)->done = 1;
}
while (sp != stack);
@@ -2836,18 +2906,9 @@ convert_regs (file)
block_info bi = BLOCK_INFO (b);
if (! bi->done)
- {
- int reg;
-
- /* Create an arbitrary input stack. */
- bi->stack_in.top = -1;
- for (reg = LAST_STACK_REG; reg >= FIRST_STACK_REG; --reg)
- if (TEST_HARD_REG_BIT (bi->stack_in.reg_set, reg))
- bi->stack_in.reg[++bi->stack_in.top] = reg;
-
- inserted |= convert_regs_2 (file, b);
- }
+ inserted |= convert_regs_2 (file, b);
}
+ clear_aux_for_blocks ();
fixup_abnormal_edges ();
if (inserted)
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 20c7d3b03d1..999a0d61f46 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -41,6 +41,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "toplev.h"
#include "output.h"
#include "ggc.h"
+#include "hashtab.h"
#ifndef REGISTER_MOVE_COST
#define REGISTER_MOVE_COST(m, x, y) 2
@@ -48,6 +49,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
static void init_reg_sets_1 PARAMS ((void));
static void init_reg_modes PARAMS ((void));
+static void init_reg_autoinc PARAMS ((void));
/* If we have auto-increment or auto-decrement and we can have secondary
reloads, we are not allowed to use classes requiring secondary
@@ -104,6 +106,13 @@ static const char initial_call_used_regs[] = CALL_USED_REGISTERS;
char call_really_used_regs[] = CALL_REALLY_USED_REGISTERS;
#endif
+#ifdef CALL_REALLY_USED_REGISTERS
+#define CALL_REALLY_USED_REGNO_P(X) call_really_used_regs[X]
+#else
+#define CALL_REALLY_USED_REGNO_P(X) call_used_regs[X]
+#endif
+
+
/* Indexed by hard register number, contains 1 for registers that are
fixed use or call used registers that cannot hold quantities across
calls even if we are willing to save and restore them. call fixed
@@ -227,12 +236,6 @@ static char *in_inc_dec;
#endif /* FORBIDDEN_INC_DEC_CLASSES */
-#ifdef CANNOT_CHANGE_MODE_CLASS
-/* All registers that have been subreged. Indexed by mode, where each
- entry is a regset of registers. */
-regset_head subregs_of_mode [NUM_MACHINE_MODES];
-#endif
-
/* Sample MEM values for use by memory_move_secondary_cost. */
static GTY(()) rtx top_of_stack[MAX_MACHINE_MODE];
@@ -446,7 +449,11 @@ init_reg_sets_1 ()
If we are generating PIC code, the PIC offset table register is
preserved across calls, though the target can override that. */
- if (i == STACK_POINTER_REGNUM || i == FRAME_POINTER_REGNUM)
+ if (i == STACK_POINTER_REGNUM)
+ ;
+ else if (global_regs[i])
+ SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+ else if (i == FRAME_POINTER_REGNUM)
;
#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
else if (i == HARD_FRAME_POINTER_REGNUM)
@@ -460,13 +467,7 @@ init_reg_sets_1 ()
else if (i == PIC_OFFSET_TABLE_REGNUM && fixed_regs[i])
;
#endif
- else if (0
-#ifdef CALL_REALLY_USED_REGISTERS
- || call_really_used_regs[i]
-#else
- || call_used_regs[i]
-#endif
- || global_regs[i])
+ else if (CALL_REALLY_USED_REGNO_P (i))
SET_HARD_REG_BIT (regs_invalidated_by_call, i);
}
@@ -576,6 +577,8 @@ init_regs ()
init_reg_sets_1 ();
init_reg_modes ();
+
+ init_reg_autoinc ();
}
/* Initialize some fake stack-frame MEM references for use in
@@ -789,6 +792,12 @@ globalize_reg (i)
global_regs[i] = 1;
+ /* If we're globalizing the frame pointer, we need to set the
+ appropriate regs_invalidated_by_call bit, even if it's already
+ set in fixed_regs. */
+ if (i != STACK_POINTER_REGNUM)
+ SET_HARD_REG_BIT (regs_invalidated_by_call, i);
+
/* If already fixed, nothing else to do. */
if (fixed_regs[i])
return;
@@ -799,7 +808,6 @@ globalize_reg (i)
SET_HARD_REG_BIT (fixed_reg_set, i);
SET_HARD_REG_BIT (call_used_reg_set, i);
SET_HARD_REG_BIT (call_fixed_reg_set, i);
- SET_HARD_REG_BIT (regs_invalidated_by_call, i);
}
/* Now the data and code for the `regclass' pass, which happens
@@ -1141,37 +1149,18 @@ scan_one_insn (insn, pass)
return insn;
}
-/* This is a pass of the compiler that scans all instructions
- and calculates the preferred class for each pseudo-register.
- This information can be accessed later by calling `reg_preferred_class'.
- This pass comes just before local register allocation. */
+/* Initialize information about which register classes can be used for
+ pseudos that are auto-incremented or auto-decremented. */
-void
-regclass (f, nregs, dump)
- rtx f;
- int nregs;
- FILE *dump;
+static void
+init_reg_autoinc ()
{
- rtx insn;
- int i;
- int pass;
-
- init_recog ();
-
- costs = (struct costs *) xmalloc (nregs * sizeof (struct costs));
-
#ifdef FORBIDDEN_INC_DEC_CLASSES
-
- in_inc_dec = (char *) xmalloc (nregs);
-
- /* Initialize information about which register classes can be used for
- pseudos that are auto-incremented or auto-decremented. It would
- seem better to put this in init_reg_sets, but we need to be able
- to allocate rtx, which we can't do that early. */
+ int i;
for (i = 0; i < N_REG_CLASSES; i++)
{
- rtx r = gen_rtx_REG (VOIDmode, 0);
+ rtx r = gen_rtx_raw_REG (VOIDmode, 0);
enum machine_mode m;
int j;
@@ -1212,6 +1201,32 @@ regclass (f, nregs, dump)
}
}
#endif /* FORBIDDEN_INC_DEC_CLASSES */
+}
+
+/* This is a pass of the compiler that scans all instructions
+ and calculates the preferred class for each pseudo-register.
+ This information can be accessed later by calling `reg_preferred_class'.
+ This pass comes just before local register allocation. */
+
+void
+regclass (f, nregs, dump)
+ rtx f;
+ int nregs;
+ FILE *dump;
+{
+ rtx insn;
+ int i;
+ int pass;
+
+ init_recog ();
+
+ costs = (struct costs *) xmalloc (nregs * sizeof (struct costs));
+
+#ifdef FORBIDDEN_INC_DEC_CLASSES
+
+ in_inc_dec = (char *) xmalloc (nregs);
+
+#endif /* FORBIDDEN_INC_DEC_CLASSES */
/* Normally we scan the insns once and determine the best class to use for
each register. However, if -fexpensive_optimizations are on, we do so
@@ -1678,7 +1693,7 @@ record_reg_classes (n_alts, n_ops, ops, modes,
if (GET_CODE (op) == MEM)
win = 1;
}
- if (EXTRA_ADDRESS_CONSTRAINT (op))
+ if (EXTRA_ADDRESS_CONSTRAINT (c))
{
/* Every address can be reloaded to fit. */
allows_addr = 1;
@@ -2405,9 +2420,15 @@ reg_scan_mark_refs (x, insn, note_flag, min_regno)
if (regno >= min_regno)
{
+ /* While the following 3 lines means that the inequality
+ REGNO_LAST_UID (regno) <= REGNO_LAST_NOTE_UID (regno)
+ is true at the end of the scanning, it may be subsequently
+ invalidated (e.g. in load_mems) so it should not be relied
+ upon. */
REGNO_LAST_NOTE_UID (regno) = INSN_UID (insn);
if (!note_flag)
REGNO_LAST_UID (regno) = INSN_UID (insn);
+
if (REGNO_FIRST_UID (regno) == 0)
REGNO_FIRST_UID (regno) = INSN_UID (insn);
/* If we are called by reg_scan_update() (indicated by min_regno
@@ -2604,6 +2625,77 @@ regset_release_memory ()
}
#ifdef CANNOT_CHANGE_MODE_CLASS
+
+struct subregs_of_mode_node
+{
+ unsigned int block;
+ unsigned char modes[MAX_MACHINE_MODE];
+};
+
+static htab_t subregs_of_mode;
+
+static hashval_t som_hash PARAMS ((const void *));
+static int som_eq PARAMS ((const void *, const void *));
+
+static hashval_t
+som_hash (x)
+ const void *x;
+{
+ const struct subregs_of_mode_node *a = x;
+ return a->block;
+}
+
+static int
+som_eq (x, y)
+ const void *x;
+ const void *y;
+{
+ const struct subregs_of_mode_node *a = x;
+ const struct subregs_of_mode_node *b = y;
+ return a->block == b->block;
+}
+
+void
+init_subregs_of_mode ()
+{
+ if (subregs_of_mode)
+ htab_empty (subregs_of_mode);
+ else
+ subregs_of_mode = htab_create (100, som_hash, som_eq, free);
+}
+
+void
+record_subregs_of_mode (subreg)
+ rtx subreg;
+{
+ struct subregs_of_mode_node dummy, *node;
+ enum machine_mode mode;
+ unsigned int regno;
+ void **slot;
+
+ if (!REG_P (SUBREG_REG (subreg)))
+ return;
+
+ regno = REGNO (SUBREG_REG (subreg));
+ mode = GET_MODE (subreg);
+
+ if (regno < FIRST_PSEUDO_REGISTER)
+ return;
+
+ dummy.block = regno & -8;
+ slot = htab_find_slot_with_hash (subregs_of_mode, &dummy,
+ dummy.block, INSERT);
+ node = *slot;
+ if (node == NULL)
+ {
+ node = xcalloc (1, sizeof (*node));
+ node->block = regno & -8;
+ *slot = node;
+ }
+
+ node->modes[mode] |= 1 << (regno & 7);
+}
+
/* Set bits in *USED which correspond to registers which can't change
their mode from FROM to any mode in which REGNO was encountered. */
@@ -2613,35 +2705,50 @@ cannot_change_mode_set_regs (used, from, regno)
enum machine_mode from;
unsigned int regno;
{
+ struct subregs_of_mode_node dummy, *node;
enum machine_mode to;
- enum reg_class class;
+ unsigned char mask;
+ unsigned int i;
- for (to = VOIDmode; to < MAX_MACHINE_MODE; ++to)
- if (REGNO_REG_SET_P (&subregs_of_mode[to], regno))
- {
- class = CANNOT_CHANGE_MODE_CLASS (from, to);
- if (class != NO_REGS)
- IOR_HARD_REG_SET (*used, reg_class_contents [(int) class]);
- }
+ dummy.block = regno & -8;
+ node = htab_find_with_hash (subregs_of_mode, &dummy, dummy.block);
+ if (node == NULL)
+ return;
+
+ mask = 1 << (regno & 7);
+ for (to = VOIDmode; to < NUM_MACHINE_MODES; to++)
+ if (node->modes[to] & mask)
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+ if (!TEST_HARD_REG_BIT (*used, i)
+ && REG_CANNOT_CHANGE_MODE_P (i, from, to))
+ SET_HARD_REG_BIT (*used, i);
}
/* Return 1 if REGNO has had an invalid mode change in CLASS from FROM
mode. */
bool
-invalid_mode_change_p (regno, class, from_mode)
+invalid_mode_change_p (regno, class, from)
unsigned int regno;
- enum reg_class class;
- enum machine_mode from_mode;
+ enum reg_class class;
+ enum machine_mode from;
{
- enum machine_mode to_mode;
+ struct subregs_of_mode_node dummy, *node;
+ enum machine_mode to;
+ unsigned char mask;
- for (to_mode = 0; to_mode < NUM_MACHINE_MODES; ++to_mode)
- if (REGNO_REG_SET_P (&subregs_of_mode[(int) to_mode], regno)
- && reg_classes_intersect_p
- (class, CANNOT_CHANGE_MODE_CLASS (from_mode, to_mode)))
- return 1;
- return 0;
+ dummy.block = regno & -8;
+ node = htab_find_with_hash (subregs_of_mode, &dummy, dummy.block);
+ if (node == NULL)
+ return false;
+
+ mask = 1 << (regno & 7);
+ for (to = VOIDmode; to < NUM_MACHINE_MODES; to++)
+ if (node->modes[to] & mask)
+ if (CANNOT_CHANGE_MODE_CLASS (from, to, class))
+ return true;
+
+ return false;
}
#endif /* CANNOT_CHANGE_MODE_CLASS */
diff --git a/gcc/regmove.c b/gcc/regmove.c
index c39e5cce7b7..cb5e547cecd 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -431,6 +431,16 @@ optimize_reg_copy_1 (insn, dest, src)
continue;
if (reg_set_p (src, p) || reg_set_p (dest, p)
+ /* If SRC is an asm-declared register, it must not be replaced
+ in any asm. Unfortunately, the REG_EXPR tree for the asm
+ variable may be absent in the SRC rtx, so we can't check the
+ actual register declaration easily (the asm operand will have
+ it, though). To avoid complicating the test for a rare case,
+ we just don't perform register replacement for a hard reg
+ mentioned in an asm. */
+ || (sregno < FIRST_PSEUDO_REGISTER
+ && asm_noperands (PATTERN (p)) >= 0
+ && reg_overlap_mentioned_p (src, PATTERN (p)))
/* Don't change a USE of a register. */
|| (GET_CODE (PATTERN (p)) == USE
&& reg_overlap_mentioned_p (src, XEXP (PATTERN (p), 0))))
diff --git a/gcc/regs.h b/gcc/regs.h
index 4a78212ec80..1e7ba441958 100644
--- a/gcc/regs.h
+++ b/gcc/regs.h
@@ -49,6 +49,9 @@ typedef struct reg_info_def
int first_uid; /* UID of first insn to use (REG n) */
int last_uid; /* UID of last insn to use (REG n) */
int last_note_uid; /* UID of last note to use (REG n) */
+ /* See the comment in reg_scan_mark_refs on
+ the relationship between last_uid and
+ last_note_uid. */
/* fields set by reg_scan & flow_analysis */
int sets; /* # of times (REG n) is set */
@@ -66,8 +69,6 @@ typedef struct reg_info_def
extern varray_type reg_n_info;
-extern regset_head subregs_of_mode [NUM_MACHINE_MODES];
-
/* Indexed by n, gives number of times (REG n) is used or set. */
#define REG_N_REFS(N) (VARRAY_REG (reg_n_info, N)->refs)
diff --git a/gcc/reload.c b/gcc/reload.c
index a5069241cc3..285ddf0b5b6 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -1,6 +1,6 @@
/* Search an insn for pseudo regs that must be in hard regs and are not.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -243,6 +243,7 @@ static int push_secondary_reload PARAMS ((int, rtx, int, int, enum reg_class,
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 int can_reload_into PARAMS ((rtx, int, enum machine_mode));
static void push_replacement PARAMS ((rtx *, int, enum machine_mode));
static void dup_replacements PARAMS ((rtx *, rtx *));
static void combine_reloads PARAMS ((void));
@@ -258,6 +259,7 @@ static int alternative_allows_memconst PARAMS ((const char *, int));
static rtx find_reloads_toplev PARAMS ((rtx, int, enum reload_type, int,
int, rtx, int *));
static rtx make_memloc PARAMS ((rtx, int));
+static int maybe_memory_address_p PARAMS ((enum machine_mode, rtx, rtx *));
static int find_reloads_address PARAMS ((enum machine_mode, rtx *, rtx, rtx *,
int, enum reload_type, int, rtx));
static rtx subst_reg_equivs PARAMS ((rtx, rtx));
@@ -818,6 +820,13 @@ reload_inner_reg_of_subreg (x, mode, output)
|| REGNO (inner) >= FIRST_PSEUDO_REGISTER)
return 0;
+ if (!subreg_offset_representable_p
+ (REGNO (SUBREG_REG (x)),
+ GET_MODE (SUBREG_REG (x)),
+ SUBREG_BYTE (x),
+ GET_MODE (x)))
+ return 1;
+
/* If INNER is not ok for MODE, then INNER will need reloading. */
if (! HARD_REGNO_MODE_OK (subreg_regno (x), mode))
return 1;
@@ -832,6 +841,59 @@ reload_inner_reg_of_subreg (x, mode, output)
!= (int) HARD_REGNO_NREGS (REGNO (inner), GET_MODE (inner))));
}
+/* Return nonzero if IN can be reloaded into REGNO with mode MODE without
+ requiring an extra reload register. The caller has already found that
+ IN contains some reference to REGNO, so check that we can produce the
+ new value in a single step. E.g. if we have
+ (set (reg r13) (plus (reg r13) (const int 1))), and there is an
+ instruction that adds one to a register, this should succeed.
+ However, if we have something like
+ (set (reg r13) (plus (reg r13) (const int 999))), and the constant 999
+ needs to be loaded into a register first, we need a separate reload
+ register.
+ Such PLUS reloads are generated by find_reload_address_part.
+ The out-of-range PLUS expressions are usually introduced in the instruction
+ patterns by register elimination and substituting pseudos without a home
+ by their function-invariant equivalences. */
+static int
+can_reload_into (in, regno, mode)
+ rtx in;
+ int regno;
+ enum machine_mode mode;
+{
+ rtx dst, test_insn;
+ int r = 0;
+ struct recog_data save_recog_data;
+
+ /* For matching constraints, we often get notional input reloads where
+ we want to use the original register as the reload register. I.e.
+ technically this is a non-optional input-output reload, but IN is
+ already a valid register, and has been chosen as the reload register.
+ Speed this up, since it trivially works. */
+ if (GET_CODE (in) == REG)
+ return 1;
+
+ /* To test MEMs properly, we'd have to take into account all the reloads
+ that are already scheduled, which can become quite complicated.
+ And since we've already handled address reloads for this MEM, it
+ should always succeed anyway. */
+ if (GET_CODE (in) == MEM)
+ return 1;
+
+ /* If we can make a simple SET insn that does the job, everything should
+ be fine. */
+ dst = gen_rtx_REG (mode, regno);
+ test_insn = make_insn_raw (gen_rtx_SET (VOIDmode, dst, in));
+ save_recog_data = recog_data;
+ if (recog_memoized (test_insn) >= 0)
+ {
+ extract_insn (test_insn);
+ r = constrain_operands (1);
+ }
+ recog_data = save_recog_data;
+ return r;
+}
+
/* Record one reload that needs to be performed.
IN is an rtx saying where the data are to be found before this instruction.
OUT says where they must be stored after the instruction.
@@ -968,9 +1030,7 @@ push_reload (in, out, inloc, outloc, class,
if (in != 0 && GET_CODE (in) == SUBREG
&& (subreg_lowpart_p (in) || strict_low)
#ifdef CANNOT_CHANGE_MODE_CLASS
- && !reg_classes_intersect_p
- (class, CANNOT_CHANGE_MODE_CLASS (GET_MODE (SUBREG_REG (in)),
- inmode))
+ && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SUBREG_REG (in)), inmode, class)
#endif
&& (CONSTANT_P (SUBREG_REG (in))
|| GET_CODE (SUBREG_REG (in)) == PLUS
@@ -1080,9 +1140,7 @@ push_reload (in, out, inloc, outloc, class,
if (out != 0 && GET_CODE (out) == SUBREG
&& (subreg_lowpart_p (out) || strict_low)
#ifdef CANNOT_CHANGE_MODE_CLASS
- && !reg_classes_intersect_p
- (class, CANNOT_CHANGE_MODE_CLASS (GET_MODE (SUBREG_REG (out)),
- outmode))
+ && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SUBREG_REG (out)), outmode, class)
#endif
&& (CONSTANT_P (SUBREG_REG (out))
|| strict_low
@@ -1528,7 +1586,11 @@ push_reload (in, out, inloc, outloc, class,
regno + offs))
break;
- if (offs == nregs)
+ if (offs == nregs
+ && (! (refers_to_regno_for_reload_p
+ (regno, (regno + HARD_REGNO_NREGS (regno, inmode)),
+ in, (rtx *)0))
+ || can_reload_into (in, regno, inmode)))
{
rld[i].reg_rtx = gen_rtx_REG (rel_mode, regno);
break;
@@ -2472,6 +2534,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
char pref_or_nothing[MAX_RECOG_OPERANDS];
/* Nonzero for a MEM operand whose entire address needs a reload. */
int address_reloaded[MAX_RECOG_OPERANDS];
+ /* Nonzero for an address operand that needs to be completely reloaded. */
+ int address_operand_reloaded[MAX_RECOG_OPERANDS];
/* Value of enum reload_type to use for operand. */
enum reload_type operand_type[MAX_RECOG_OPERANDS];
/* Value of enum reload_type to use within address of operand. */
@@ -2597,7 +2661,15 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
if (i == noperands - 1)
abort ();
- commutative = i;
+ /* We currently only support one commutative pair of
+ operands. Some existing asm code currently uses more
+ than one pair. Previously, that would usually work,
+ but sometimes it would crash the compiler. We
+ continue supporting that case as well as we can by
+ silently ignoring all but the first pair. In the
+ future we may handle it correctly. */
+ if (commutative < 0)
+ commutative = i;
}
else if (ISDIGIT (c))
{
@@ -2650,6 +2722,7 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
RTX_CODE code = GET_CODE (recog_data.operand[i]);
address_reloaded[i] = 0;
+ address_operand_reloaded[i] = 0;
operand_type[i] = (modified[i] == RELOAD_READ ? RELOAD_FOR_INPUT
: modified[i] == RELOAD_WRITE ? RELOAD_FOR_OUTPUT
: RELOAD_OTHER);
@@ -2664,10 +2737,11 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
else if (constraints[i][0] == 'p'
|| EXTRA_ADDRESS_CONSTRAINT (constraints[i][0]))
{
- 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);
+ address_operand_reloaded[i]
+ = 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);
/* If we now have a simple operand where we used to have a
PLUS or MULT, re-recognize and try again. */
@@ -2684,6 +2758,10 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
recog_data.operand[i] = *recog_data.operand_loc[i];
substed_operand[i] = recog_data.operand[i];
+
+ /* Address operands are reloaded in their existing mode,
+ no matter what is specified in the machine description. */
+ operand_mode[i] = GET_MODE (recog_data.operand[i]);
}
else if (code == MEM)
{
@@ -2864,6 +2942,12 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
if (GET_CODE (SUBREG_REG (operand)) == REG
&& REGNO (SUBREG_REG (operand)) < FIRST_PSEUDO_REGISTER)
{
+ if (!subreg_offset_representable_p
+ (REGNO (SUBREG_REG (operand)),
+ GET_MODE (SUBREG_REG (operand)),
+ SUBREG_BYTE (operand),
+ GET_MODE (operand)))
+ force_reload = 1;
offset += subreg_regno_offset (REGNO (SUBREG_REG (operand)),
GET_MODE (SUBREG_REG (operand)),
SUBREG_BYTE (operand),
@@ -2919,26 +3003,6 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
)
#endif
)
- /* This following hunk of code should no longer be
- needed at all with SUBREG_BYTE. If you need this
- code back, please explain to me why so I can
- fix the real problem. -DaveM */
-#if 0
- /* Subreg of a hard reg which can't handle the subreg's mode
- or which would handle that mode in the wrong number of
- registers for subregging to work. */
- || (GET_CODE (operand) == REG
- && REGNO (operand) < FIRST_PSEUDO_REGISTER
- && ((GET_MODE_SIZE (operand_mode[i]) <= UNITS_PER_WORD
- && (GET_MODE_SIZE (GET_MODE (operand))
- > UNITS_PER_WORD)
- && ((GET_MODE_SIZE (GET_MODE (operand))
- / UNITS_PER_WORD)
- != HARD_REGNO_NREGS (REGNO (operand),
- GET_MODE (operand))))
- || ! HARD_REGNO_MODE_OK (REGNO (operand) + offset,
- operand_mode[i])))
-#endif
)
force_reload = 1;
}
@@ -2969,9 +3033,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
break;
case '%':
- /* The last operand should not be marked commutative. */
- if (i != noperands - 1)
- commutative = i;
+ /* We only support one commutative marker, the first
+ one. We already set commutative above. */
break;
case '?':
@@ -3283,10 +3346,6 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
the address into a base register. */
this_alternative[i] = (int) MODE_BASE_REG_CLASS (VOIDmode);
badop = 0;
-
- /* Address constraints are reloaded in Pmode, no matter
- what mode is given in the machine description. */
- operand_mode[i] = Pmode;
break;
}
@@ -3856,6 +3915,7 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
}
else if (goal_alternative_matched[i] < 0
&& goal_alternative_matches[i] < 0
+ && !address_operand_reloaded[i]
&& optimize)
{
/* For each non-matching operand that's a MEM or a pseudo-register
@@ -4561,6 +4621,27 @@ make_memloc (ad, regno)
return tem;
}
+/* Returns true if AD could be turned into a valid memory reference
+ to mode MODE by reloading the part pointed to by PART into a
+ register. */
+
+static int
+maybe_memory_address_p (mode, ad, part)
+ enum machine_mode mode;
+ rtx ad;
+ rtx *part;
+{
+ int retv;
+ rtx tem = *part;
+ rtx reg = gen_rtx_REG (GET_MODE (tem), max_reg_num ());
+
+ *part = reg;
+ retv = memory_address_p (mode, ad);
+ *part = tem;
+
+ return retv;
+}
+
/* Record all reloads needed for handling memory address AD
which appears in *LOC in a memory reference to mode MODE
which itself is found in location *MEMREFLOC.
@@ -4841,26 +4922,24 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn)
that the index needs a reload and find_reloads_address_1 will take care
of it.
- If we decide to do something here, it must be that
- `double_reg_address_ok' is true and that this address rtl was made by
- eliminate_regs. We generate a reload of the fp/sp/ap + constant and
+ Handle all base registers here, not just fp/ap/sp, because on some
+ targets (namely Sparc) we can also get invalid addresses from preventive
+ subreg big-endian corrections made by find_reloads_toplev.
+
+ If we decide to do something, it must be that `double_reg_address_ok'
+ is true. We generate a reload of the base register + constant and
rework the sum so that the reload register will be added to the index.
This is safe because we know the address isn't shared.
- We check for fp/ap/sp as both the first and second operand of the
- innermost PLUS. */
+ We check for the base register as both the first and second operand of
+ the innermost PLUS. */
else if (GET_CODE (ad) == PLUS && GET_CODE (XEXP (ad, 1)) == CONST_INT
&& GET_CODE (XEXP (ad, 0)) == PLUS
- && (XEXP (XEXP (ad, 0), 0) == frame_pointer_rtx
-#if FRAME_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM
- || XEXP (XEXP (ad, 0), 0) == hard_frame_pointer_rtx
-#endif
-#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
- || XEXP (XEXP (ad, 0), 0) == arg_pointer_rtx
-#endif
- || XEXP (XEXP (ad, 0), 0) == stack_pointer_rtx)
- && ! memory_address_p (mode, ad))
+ && GET_CODE (XEXP (XEXP (ad, 0), 0)) == REG
+ && REGNO (XEXP (XEXP (ad, 0), 0)) < FIRST_PSEUDO_REGISTER
+ && REG_MODE_OK_FOR_BASE_P (XEXP (XEXP (ad, 0), 0), mode)
+ && ! maybe_memory_address_p (mode, ad, &XEXP (XEXP (ad, 0), 1)))
{
*loc = ad = gen_rtx_PLUS (GET_MODE (ad),
plus_constant (XEXP (XEXP (ad, 0), 0),
@@ -4877,15 +4956,10 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn)
else if (GET_CODE (ad) == PLUS && GET_CODE (XEXP (ad, 1)) == CONST_INT
&& GET_CODE (XEXP (ad, 0)) == PLUS
- && (XEXP (XEXP (ad, 0), 1) == frame_pointer_rtx
-#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
- || XEXP (XEXP (ad, 0), 1) == hard_frame_pointer_rtx
-#endif
-#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
- || XEXP (XEXP (ad, 0), 1) == arg_pointer_rtx
-#endif
- || XEXP (XEXP (ad, 0), 1) == stack_pointer_rtx)
- && ! memory_address_p (mode, ad))
+ && GET_CODE (XEXP (XEXP (ad, 0), 1)) == REG
+ && REGNO (XEXP (XEXP (ad, 0), 1)) < FIRST_PSEUDO_REGISTER
+ && REG_MODE_OK_FOR_BASE_P (XEXP (XEXP (ad, 0), 1), mode)
+ && ! maybe_memory_address_p (mode, ad, &XEXP (XEXP (ad, 0), 0)))
{
*loc = ad = gen_rtx_PLUS (GET_MODE (ad),
XEXP (XEXP (ad, 0), 0),
@@ -5230,6 +5304,19 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn)
SUBREG_BYTE (orig_op1),
GET_MODE (orig_op1))));
}
+ /* Plus in the index register may be created only as a result of
+ register remateralization for expresion like &localvar*4. Reload it.
+ It may be possible to combine the displacement on the outer level,
+ but it is probably not worthwhile to do so. */
+ if (context)
+ {
+ find_reloads_address (GET_MODE (x), loc, XEXP (x, 0), &XEXP (x, 0),
+ opnum, ADDR_TYPE (type), ind_levels, insn);
+ push_reload (*loc, NULL_RTX, loc, (rtx*) 0,
+ (context ? INDEX_REG_CLASS : MODE_BASE_REG_CLASS (mode)),
+ GET_MODE (x), VOIDmode, 0, 0, opnum, type);
+ return 1;
+ }
if (code0 == MULT || code0 == SIGN_EXTEND || code0 == TRUNCATE
|| code0 == ZERO_EXTEND || code1 == MEM)
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 399b1f1de2d..5e85f144f3f 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1,6 +1,6 @@
/* Reload pseudo regs into hard regs for insns that require hard regs.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -352,11 +352,14 @@ static int num_eliminable_invariants;
/* For each label, we record the offset of each elimination. If we reach
a label by more than one path and an offset differs, we cannot do the
- elimination. This information is indexed by the number of the label.
- The first table is an array of flags that records whether we have yet
- encountered a label and the second table is an array of arrays, one
- entry in the latter array for each elimination. */
-
+ elimination. This information is indexed by the difference of the
+ number of the label and the first label number. We can't offset the
+ pointer itself as this can cause problems on machines with segmented
+ memory. The first table is an array of flags that records whether we
+ have yet encountered a label and the second table is an array of arrays,
+ one entry in the latter array for each elimination. */
+
+static int first_label_num;
static char *offsets_known_at;
static int (*offsets_at)[NUM_ELIMINABLE_REGS];
@@ -673,11 +676,6 @@ reload (first, global)
struct elim_table *ep;
basic_block bb;
- /* The two pointers used to track the true location of the memory used
- for label offsets. */
- char *real_known_ptr = NULL;
- int (*real_at_ptr)[NUM_ELIMINABLE_REGS];
-
/* Make sure even insns with volatile mem refs are recognizable. */
init_recog ();
@@ -791,8 +789,18 @@ reload (first, global)
that is not a legitimate memory operand. As later
stages of reload assume that all addresses found
in the reg_equiv_* arrays were originally legitimate,
- we ignore such REG_EQUIV notes. */
- if (memory_operand (x, VOIDmode))
+ we ignore such REG_EQUIV notes.
+
+ It also can happen that a REG_EQUIV note contains a MEM
+ that carries the /u flag, for example when GCSE turns
+ the load of a constant into a move from a pseudo that
+ already contains the constant and attaches a REG_EQUAL
+ note to the insn, which is later promoted to REQ_EQUIV
+ by local-alloc. If the destination pseudo happens not
+ to be assigned to a hard reg, it will be replaced by
+ the MEM as the destination of the move, thus generating
+ a store to a possibly read-only memory location. */
+ if (memory_operand (x, VOIDmode) && ! RTX_UNCHANGING_P (x))
{
/* Always unshare the equivalence, so we can
substitute into this insn without touching the
@@ -856,21 +864,18 @@ reload (first, global)
init_elim_table ();
- num_labels = max_label_num () - get_first_label_num ();
+ first_label_num = get_first_label_num ();
+ num_labels = max_label_num () - first_label_num;
/* Allocate the tables used to store offset information at labels. */
/* We used to use alloca here, but the size of what it would try to
allocate would occasionally cause it to exceed the stack limit and
cause a core dump. */
- real_known_ptr = xmalloc (num_labels);
- real_at_ptr
+ offsets_known_at = xmalloc (num_labels);
+ offsets_at
= (int (*)[NUM_ELIMINABLE_REGS])
xmalloc (num_labels * NUM_ELIMINABLE_REGS * sizeof (int));
- offsets_known_at = real_known_ptr - get_first_label_num ();
- offsets_at
- = (int (*)[NUM_ELIMINABLE_REGS]) (real_at_ptr - get_first_label_num ());
-
/* Alter each pseudo-reg rtx to contain its hard reg number.
Assign stack slots to the pseudos that lack hard regs or equivalents.
Do not touch virtual registers. */
@@ -1269,10 +1274,10 @@ reload (first, global)
free (reg_equiv_memory_loc);
reg_equiv_memory_loc = 0;
- if (real_known_ptr)
- free (real_known_ptr);
- if (real_at_ptr)
- free (real_at_ptr);
+ if (offsets_known_at)
+ free (offsets_known_at);
+ if (offsets_at)
+ free (offsets_at);
free (reg_equiv_mem);
free (reg_equiv_init);
@@ -1296,6 +1301,14 @@ reload (first, global)
by this, so unshare everything here. */
unshare_all_rtl_again (first);
+#ifdef STACK_BOUNDARY
+ /* init_emit has set the alignment of the hard frame pointer
+ to STACK_BOUNDARY. It is very likely no longer valid if
+ the hard frame pointer was used for register allocation. */
+ if (!frame_pointer_needed)
+ REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = BITS_PER_UNIT;
+#endif
+
return failure;
}
@@ -2155,13 +2168,13 @@ set_label_offsets (x, insn, initial_p)
we guessed wrong, we will suppress an elimination that might have
been possible had we been able to guess correctly. */
- if (! offsets_known_at[CODE_LABEL_NUMBER (x)])
+ if (! offsets_known_at[CODE_LABEL_NUMBER (x) - first_label_num])
{
for (i = 0; i < NUM_ELIMINABLE_REGS; i++)
- offsets_at[CODE_LABEL_NUMBER (x)][i]
+ offsets_at[CODE_LABEL_NUMBER (x) - first_label_num][i]
= (initial_p ? reg_eliminate[i].initial_offset
: reg_eliminate[i].offset);
- offsets_known_at[CODE_LABEL_NUMBER (x)] = 1;
+ offsets_known_at[CODE_LABEL_NUMBER (x) - first_label_num] = 1;
}
/* Otherwise, if this is the definition of a label and it is
@@ -2178,7 +2191,7 @@ set_label_offsets (x, insn, initial_p)
where the offsets disagree. */
for (i = 0; i < NUM_ELIMINABLE_REGS; i++)
- if (offsets_at[CODE_LABEL_NUMBER (x)][i]
+ if (offsets_at[CODE_LABEL_NUMBER (x) - first_label_num][i]
!= (initial_p ? reg_eliminate[i].initial_offset
: reg_eliminate[i].offset))
reg_eliminate[i].can_eliminate = 0;
@@ -3376,6 +3389,16 @@ set_initial_elim_offsets ()
num_not_at_initial_offset = 0;
}
+/* Subroutine of set_initial_label_offsets called via for_each_eh_label. */
+
+static void set_initial_eh_label_offset PARAMS ((rtx));
+static void
+set_initial_eh_label_offset (label)
+ rtx label;
+{
+ set_label_offsets (label, NULL_RTX, 1);
+}
+
/* Initialize the known label offsets.
Set a known offset for each forced label to be at the initial offset
of each elimination. We do this because we assume that all
@@ -3387,11 +3410,13 @@ static void
set_initial_label_offsets ()
{
rtx x;
- memset ((char *) &offsets_known_at[get_first_label_num ()], 0, num_labels);
+ memset (offsets_known_at, 0, num_labels);
for (x = forced_labels; x; x = XEXP (x, 1))
if (XEXP (x, 0))
set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
+
+ for_each_eh_label (set_initial_eh_label_offset);
}
/* Set all elimination offsets to the known values for the code label given
@@ -3408,7 +3433,8 @@ set_offsets_for_label (insn)
num_not_at_initial_offset = 0;
for (i = 0, ep = reg_eliminate; i < NUM_ELIMINABLE_REGS; ep++, i++)
{
- ep->offset = ep->previous_offset = offsets_at[label_nr][i];
+ ep->offset = ep->previous_offset
+ = offsets_at[label_nr - first_label_num][i];
if (ep->can_eliminate && ep->offset != ep->initial_offset)
num_not_at_initial_offset++;
}
@@ -3934,6 +3960,7 @@ reload_as_needed (live_known)
if (asm_noperands (PATTERN (insn)) >= 0)
for (p = NEXT_INSN (prev); p != next; p = NEXT_INSN (p))
if (p != insn && INSN_P (p)
+ && GET_CODE (PATTERN (p)) != USE
&& (recog_memoized (p) < 0
|| (extract_insn (p), ! constrain_operands (1))))
{
@@ -4392,6 +4419,7 @@ reload_reg_free_p (regno, opnum, type)
/* In use for anything means we can't use it for RELOAD_OTHER. */
if (TEST_HARD_REG_BIT (reload_reg_used_in_other_addr, regno)
|| TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+ || TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
|| TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno))
return 0;
@@ -4573,6 +4601,7 @@ reload_reg_reaches_end_p (regno, opnum, type)
return 0;
return (! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr, regno)
+ && ! TEST_HARD_REG_BIT (reload_reg_used_in_op_addr_reload, regno)
&& ! TEST_HARD_REG_BIT (reload_reg_used_in_insn, regno)
&& ! TEST_HARD_REG_BIT (reload_reg_used, regno));
@@ -5497,7 +5526,7 @@ choose_reload_regs (chain)
#ifdef CANNOT_CHANGE_MODE_CLASS
(!REG_CANNOT_CHANGE_MODE_P (i, GET_MODE (last_reg),
need_mode)
- ||
+ &&
#endif
(GET_MODE_SIZE (GET_MODE (last_reg))
>= GET_MODE_SIZE (need_mode))
@@ -6127,13 +6156,15 @@ merge_assigned_reloads (insn)
? RELOAD_FOR_OTHER_ADDRESS : RELOAD_OTHER);
/* Check to see if we accidentally converted two reloads
- that use the same reload register to the same type.
- If so, the resulting code won't work, so abort. */
+ that use the same reload register with different inputs
+ to the same type. If so, the resulting code won't work,
+ so abort. */
if (rld[j].reg_rtx)
for (k = 0; k < j; k++)
if (rld[k].in != 0 && rld[k].reg_rtx != 0
&& rld[k].when_needed == rld[j].when_needed
- && rtx_equal_p (rld[k].reg_rtx, rld[j].reg_rtx))
+ && rtx_equal_p (rld[k].reg_rtx, rld[j].reg_rtx)
+ && ! rtx_equal_p (rld[k].in, rld[j].in))
abort ();
}
}
@@ -7612,6 +7643,11 @@ delete_output_reload (insn, j, last_reload_reg)
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)
@@ -8061,6 +8097,19 @@ reload_cse_simplify (insn, testreg)
int count = 0;
rtx value = NULL_RTX;
+ /* Registers mentioned in the clobber list for an asm cannot be reused
+ within the body of the asm. Invalidate those registers now so that
+ we don't try to substitute values for them. */
+ if (asm_noperands (body) >= 0)
+ {
+ for (i = XVECLEN (body, 0) - 1; i >= 0; --i)
+ {
+ rtx part = XVECEXP (body, 0, i);
+ if (GET_CODE (part) == CLOBBER && REG_P (XEXP (part, 0)))
+ cselib_invalidate_rtx (XEXP (part, 0));
+ }
+ }
+
/* If every action in a PARALLEL is a noop, we can delete
the entire PARALLEL. */
for (i = XVECLEN (body, 0) - 1; i >= 0; --i)
@@ -8274,7 +8323,13 @@ reload_cse_simplify_set (set, insn)
{
#ifdef LOAD_EXTEND_OP
if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD
- && extend_op != NIL)
+ && extend_op != NIL
+#ifdef CANNOT_CHANGE_MODE_CLASS
+ && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SET_DEST (set)),
+ word_mode,
+ REGNO_REG_CLASS (REGNO (SET_DEST (set))))
+#endif
+ )
{
rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set)));
ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set));
@@ -8345,6 +8400,8 @@ reload_cse_simplify_operands (insn, testreg)
{
cselib_val *v;
struct elt_loc_list *l;
+ rtx op;
+ enum machine_mode mode;
CLEAR_HARD_REG_SET (equiv_regs[i]);
@@ -8356,7 +8413,52 @@ reload_cse_simplify_operands (insn, testreg)
&& recog_data.operand_mode[i] == VOIDmode))
continue;
- v = cselib_lookup (recog_data.operand[i], recog_data.operand_mode[i], 0);
+ op = recog_data.operand[i];
+ mode = GET_MODE (op);
+#ifdef LOAD_EXTEND_OP
+ if (GET_CODE (op) == MEM
+ && GET_MODE_BITSIZE (mode) < BITS_PER_WORD
+ && LOAD_EXTEND_OP (mode) != NIL)
+ {
+ rtx set = single_set (insn);
+
+ /* We might have multiple sets, some of which do implict
+ extension. Punt on this for now. */
+ if (! set)
+ continue;
+ /* If the destination is a also MEM or a STRICT_LOW_PART, no
+ extension applies.
+ Also, if there is an explicit extension, we don't have to
+ worry about an implicit one. */
+ else if (GET_CODE (SET_DEST (set)) == MEM
+ || GET_CODE (SET_DEST (set)) == STRICT_LOW_PART
+ || GET_CODE (SET_SRC (set)) == ZERO_EXTEND
+ || GET_CODE (SET_SRC (set)) == SIGN_EXTEND)
+ ; /* Continue ordinary processing. */
+ /* If this is a straight load, make the extension explicit. */
+ else if (GET_CODE (SET_DEST (set)) == REG
+ && recog_data.n_operands == 2
+ && SET_SRC (set) == op
+ && SET_DEST (set) == recog_data.operand[1-i])
+ {
+ validate_change (insn, recog_data.operand_loc[i],
+ gen_rtx_fmt_e (LOAD_EXTEND_OP (mode),
+ word_mode, op),
+ 1);
+ validate_change (insn, recog_data.operand_loc[1-i],
+ gen_rtx_REG (word_mode, REGNO (SET_DEST (set))),
+ 1);
+ if (!apply_change_group ())
+ return 0;
+ return reload_cse_simplify_operands (insn, testreg);
+ }
+ else
+ /* ??? There might be arithmetic operations with memory that are
+ safe to optimize, but is it worth the trouble? */
+ continue;
+ }
+#endif /* LOAD_EXTEND_OP */
+ v = cselib_lookup (op, recog_data.operand_mode[i], 0);
if (! v)
continue;
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 31918ec43e3..d11e35d83c7 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -236,6 +236,12 @@ stop_search_p (insn, labels_p)
if (insn == 0)
return 1;
+ /* If the insn can throw an exception that is caught within the function,
+ it may effectively perform a jump from the viewpoint of the function.
+ Therefore act like for a jump. */
+ if (can_throw_internal (insn))
+ return 1;
+
switch (GET_CODE (insn))
{
case NOTE:
@@ -2397,7 +2403,9 @@ fill_simple_delay_slots (non_jumps_p)
&& eligible_for_delay (insn, slots_filled, next_trial, flags)
&& ! can_throw_internal (trial))
{
- rtx new_label = next_active_insn (next_trial);
+ /* See comment in relax_delay_slots about necessity of using
+ next_real_insn here. */
+ rtx new_label = next_real_insn (next_trial);
if (new_label != 0)
new_label = get_label_before (new_label);
@@ -3130,7 +3138,9 @@ relax_delay_slots (first)
&& (target_label = JUMP_LABEL (insn)) != 0)
{
target_label = follow_jumps (target_label);
- target_label = prev_label (next_active_insn (target_label));
+ /* See comment further down why we must use next_real_insn here,
+ instead of next_active_insn. */
+ target_label = prev_label (next_real_insn (target_label));
if (target_label == 0)
target_label = find_end_label ();
diff --git a/gcc/resource.c b/gcc/resource.c
index a72dd9ce1a4..f90342ddd66 100644
--- a/gcc/resource.c
+++ b/gcc/resource.c
@@ -1,5 +1,5 @@
/* Definitions for computing resource usage of specific insns.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -624,7 +624,7 @@ find_dead_or_set_registers (target, res, jump_target, jump_count, set, needed)
/* Given X, a part of an insn, and a pointer to a `struct resource',
RES, indicate which resources are modified by the insn. If
MARK_TYPE is MARK_SRC_DEST_CALL, also mark resources potentially
- set by the called routine. If MARK_TYPE is MARK_DEST, only mark SET_DESTs
+ set by the called routine.
If IN_DEST is nonzero, it means we are inside a SET. Otherwise,
objects are being referenced instead of set.
@@ -727,8 +727,7 @@ mark_set_resources (x, res, in_dest, mark_type)
|| GET_CODE (SET_SRC (x)) != CALL),
mark_type);
- if (mark_type != MARK_DEST)
- mark_set_resources (SET_SRC (x), res, 0, MARK_SRC_DEST);
+ mark_set_resources (SET_SRC (x), res, 0, MARK_SRC_DEST);
return;
case CLOBBER:
@@ -758,12 +757,9 @@ mark_set_resources (x, res, in_dest, mark_type)
case SIGN_EXTRACT:
case ZERO_EXTRACT:
- if (! (mark_type == MARK_DEST && in_dest))
- {
- mark_set_resources (XEXP (x, 0), res, in_dest, MARK_SRC_DEST);
- mark_set_resources (XEXP (x, 1), res, 0, MARK_SRC_DEST);
- mark_set_resources (XEXP (x, 2), res, 0, MARK_SRC_DEST);
- }
+ mark_set_resources (XEXP (x, 0), res, in_dest, MARK_SRC_DEST);
+ mark_set_resources (XEXP (x, 1), res, 0, MARK_SRC_DEST);
+ mark_set_resources (XEXP (x, 2), res, 0, MARK_SRC_DEST);
return;
case MEM:
@@ -810,13 +806,6 @@ mark_set_resources (x, res, in_dest, mark_type)
}
return;
- case STRICT_LOW_PART:
- if (! (mark_type == MARK_DEST && in_dest))
- {
- mark_set_resources (XEXP (x, 0), res, 0, MARK_SRC_DEST);
- return;
- }
-
case UNSPEC_VOLATILE:
case ASM_INPUT:
/* Traditional asm's are always volatile. */
diff --git a/gcc/resource.h b/gcc/resource.h
index fc2330c8e15..124cf9b21b8 100644
--- a/gcc/resource.h
+++ b/gcc/resource.h
@@ -37,8 +37,7 @@ struct resources
enum mark_resource_type
{
MARK_SRC_DEST = 0,
- MARK_SRC_DEST_CALL = 1,
- MARK_DEST = 2
+ MARK_SRC_DEST_CALL = 1
};
extern void mark_target_live_regs PARAMS ((rtx, rtx, struct resources *));
diff --git a/gcc/rtl.c b/gcc/rtl.c
index 065c02b40c3..8c6de3c7370 100644
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -1,6 +1,6 @@
/* RTL utility routines.
- Copyright (C) 1987, 1988, 1991, 1994, 1997, 1998, 1999, 2000, 2001, 2002
- Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1991, 1994, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -226,7 +226,7 @@ const char * const reg_note_name[] =
"REG_WAS_0", "REG_RETVAL", "REG_LIBCALL", "REG_NONNEG",
"REG_NO_CONFLICT", "REG_UNUSED", "REG_CC_SETTER", "REG_CC_USER",
"REG_LABEL", "REG_DEP_ANTI", "REG_DEP_OUTPUT", "REG_BR_PROB",
- "REG_EXEC_COUNT", "REG_NOALIAS", "REG_SAVE_AREA", "REG_BR_PRED",
+ "REG_NOALIAS", "REG_SAVE_AREA", "REG_BR_PRED",
"REG_FRAME_RELATED_EXPR", "REG_EH_CONTEXT", "REG_EH_REGION",
"REG_SAVE_NOTE", "REG_MAYBE_DEAD", "REG_NORETURN",
"REG_NON_LOCAL_GOTO", "REG_SETJMP", "REG_ALWAYS_RETURN",
@@ -396,29 +396,6 @@ shallow_copy_rtx (orig)
return copy;
}
-
-/* Return the alignment of MODE. This will be bounded by 1 and
- BIGGEST_ALIGNMENT. */
-
-unsigned int
-get_mode_alignment (mode)
- enum machine_mode mode;
-{
- unsigned int alignment;
-
- if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
- || GET_MODE_CLASS (mode) == MODE_COMPLEX_INT)
- alignment = GET_MODE_UNIT_SIZE (mode);
- else
- alignment = GET_MODE_SIZE (mode);
-
- /* Extract the LSB of the size. */
- alignment = alignment & -alignment;
- alignment *= BITS_PER_UNIT;
-
- alignment = MIN (BIGGEST_ALIGNMENT, MAX (1, alignment));
- return alignment;
-}
/* This is 1 until after the rtl generation pass. */
int rtx_equal_function_value_matters;
diff --git a/gcc/rtl.def b/gcc/rtl.def
index 353a225dcd9..d281406fee4 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -728,10 +728,8 @@ DEF_RTL_EXPR(RESX, "resx", "i", 'x')
DEF_RTL_EXPR(CONST_INT, "const_int", "w", 'o')
/* numeric floating point constant.
- Operand 0 ('0') is a chain of all CONST_DOUBLEs in use in the
- current function.
- Remaining operands hold the actual value. They are all 'w' and
- there may be from 1 to 4; see rtl.c. */
+ Operands hold the value. They are all 'w' and there may be from 2 to 6;
+ see real.h. */
DEF_RTL_EXPR(CONST_DOUBLE, "const_double", CONST_DOUBLE_FORMAT, 'o')
/* Describes a vector constant. */
@@ -1111,24 +1109,24 @@ DEF_RTL_EXPR(CALL_PLACEHOLDER, "call_placeholder", "uuuu", 'x')
that specifies where the parts of the result are taken from. Set bits
indicate operand 0, clear bits indicate operand 1. The parts are defined
by the mode of the vectors. */
-DEF_RTL_EXPR(VEC_MERGE, "vec_merge", "eee", 'x')
+DEF_RTL_EXPR(VEC_MERGE, "vec_merge", "eee", '3')
/* Describes an operation that selects parts of a vector.
Operands 0 is the source vector, operand 1 is a PARALLEL that contains
a CONST_INT for each of the subparts of the result vector, giving the
number of the source subpart that should be stored into it. */
-DEF_RTL_EXPR(VEC_SELECT, "vec_select", "ee", 'x')
+DEF_RTL_EXPR(VEC_SELECT, "vec_select", "ee", '2')
/* Describes a vector concat operation. Operands 0 and 1 are the source
vectors, the result is a vector that is as long as operands 0 and 1
combined and is the concatenation of the two source vectors. */
-DEF_RTL_EXPR(VEC_CONCAT, "vec_concat", "ee", 'x')
+DEF_RTL_EXPR(VEC_CONCAT, "vec_concat", "ee", '2')
/* Describes an operation that converts a small vector into a larger one by
duplicating the input values. The output vector mode must have the same
submodes as the input vector mode, and the number of output parts must be
an integer multiple of the number of input parts. */
-DEF_RTL_EXPR(VEC_DUPLICATE, "vec_duplicate", "e", 'x')
+DEF_RTL_EXPR(VEC_DUPLICATE, "vec_duplicate", "e", '1')
/* Addition with signed saturation */
DEF_RTL_EXPR(SS_PLUS, "ss_plus", "ee", 'c')
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 5f727b08d9c..ded9c99d46b 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1,6 +1,6 @@
/* Register Transfer Language (RTL) definitions for GNU C-Compiler
Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -140,7 +140,8 @@ struct rtx_def GTY((chain_next ("RTX_NEXT (&%h)"),
1 in a SET that is for a return.
In a CODE_LABEL, part of the two-bit alternate entry field. */
unsigned int jump : 1;
- /* In a CODE_LABEL, part of the two-bit alternate entry field. */
+ /* In a CODE_LABEL, part of the two-bit alternate entry field.
+ 1 in a MEM if it cannot trap. */
unsigned int call : 1;
/* 1 in a REG, MEM, or CONCAT if the value is set at most once, anywhere.
1 in a SUBREG if it references an unsigned object whose mode has been
@@ -683,11 +684,6 @@ enum reg_note
return. */
REG_BR_PROB,
- /* REG_EXEC_COUNT is attached to the first insn of each basic block, and
- the first insn after each CALL_INSN. It indicates how many times this
- block was executed. */
- REG_EXEC_COUNT,
-
/* Attached to a call insn; indicates that the call is malloc-like and
that the pointer returned cannot alias anything else. */
REG_NOALIAS,
@@ -1038,6 +1034,10 @@ extern unsigned int subreg_regno_offset PARAMS ((unsigned int,
enum machine_mode,
unsigned int,
enum machine_mode));
+extern bool subreg_offset_representable_p PARAMS ((unsigned int,
+ enum machine_mode,
+ unsigned int,
+ enum machine_mode));
extern unsigned int subreg_regno PARAMS ((rtx));
/* 1 if RTX is a subreg containing a reg that is already known to be
@@ -1105,6 +1105,10 @@ do { \
#define MEM_SCALAR_P(RTX) \
(RTL_FLAG_CHECK1("MEM_SCALAR_P", (RTX), MEM)->frame_related)
+/* 1 if RTX is a mem that cannot trap. */
+#define MEM_NOTRAP_P(RTX) \
+ (RTL_FLAG_CHECK1("MEM_NOTRAP_P", (RTX), MEM)->call)
+
/* If VAL is nonzero, set MEM_IN_STRUCT_P and clear MEM_SCALAR_P in
RTX. Otherwise, vice versa. Use this macro only when you are
*sure* that you know that the MEM is in a structure, or is a
@@ -1165,6 +1169,7 @@ do { \
(MEM_VOLATILE_P (LHS) = MEM_VOLATILE_P (RHS), \
MEM_IN_STRUCT_P (LHS) = MEM_IN_STRUCT_P (RHS), \
MEM_SCALAR_P (LHS) = MEM_SCALAR_P (RHS), \
+ MEM_NOTRAP_P (LHS) = MEM_NOTRAP_P (RHS), \
RTX_UNCHANGING_P (LHS) = RTX_UNCHANGING_P (RHS), \
MEM_KEEP_ALIAS_SET_P (LHS) = MEM_KEEP_ALIAS_SET_P (RHS), \
MEM_ATTRS (LHS) = MEM_ATTRS (RHS))
@@ -1559,7 +1564,7 @@ extern rtx simplify_rtx PARAMS ((rtx));
extern rtx avoid_constant_pool_reference PARAMS ((rtx));
/* In function.c */
-extern rtx gen_mem_addressof PARAMS ((rtx, tree));
+extern rtx gen_mem_addressof PARAMS ((rtx, tree, int));
/* In regclass.c */
extern enum machine_mode choose_hard_reg_mode PARAMS ((unsigned int,
@@ -1927,6 +1932,9 @@ extern int cse_main PARAMS ((rtx, int, int, FILE *));
extern void cse_end_of_basic_block PARAMS ((rtx,
struct cse_basic_block_data *,
int, int, int));
+extern void cse_condition_code_reg PARAMS ((void));
+extern enum machine_mode default_cc_modes_compatible PARAMS ((enum machine_mode,
+ enum machine_mode));
/* In jump.c */
extern int comparison_dominates_p PARAMS ((enum rtx_code, enum rtx_code));
@@ -1937,6 +1945,7 @@ extern int safe_to_remove_jump_p PARAMS ((rtx));
extern rtx pc_set PARAMS ((rtx));
extern rtx condjump_label PARAMS ((rtx));
extern int simplejump_p PARAMS ((rtx));
+extern int tablejump_p PARAMS ((rtx));
extern int returnjump_p PARAMS ((rtx));
extern int onlyjump_p PARAMS ((rtx));
extern int only_sets_cc0_p PARAMS ((rtx));
@@ -2111,6 +2120,8 @@ extern void regclass PARAMS ((rtx, int, FILE *));
extern void reg_scan PARAMS ((rtx, unsigned int, int));
extern void reg_scan_update PARAMS ((rtx, rtx, unsigned int));
extern void fix_register PARAMS ((const char *, int, int));
+extern void init_subregs_of_mode PARAMS ((void));
+extern void record_subregs_of_mode PARAMS ((rtx));
#ifdef HARD_CONST
extern void cannot_change_mode_set_regs PARAMS ((HARD_REG_SET *,
enum machine_mode,
@@ -2249,6 +2260,8 @@ extern void init_alias_once PARAMS ((void));
extern void init_alias_analysis PARAMS ((void));
extern void end_alias_analysis PARAMS ((void));
extern rtx addr_side_effect_eval PARAMS ((rtx, int, int));
+extern rtx get_reg_known_value PARAMS ((unsigned int));
+extern bool get_reg_known_equiv_p PARAMS ((unsigned int));
/* In sibcall.c */
typedef enum {
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index c992c439bc3..57b210e1d78 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -1481,7 +1481,9 @@ reg_overlap_mentioned_p (x, in)
unsigned int regno, endregno;
/* Overly conservative. */
- if (GET_CODE (x) == STRICT_LOW_PART)
+ if (GET_CODE (x) == STRICT_LOW_PART
+ || GET_CODE (x) == ZERO_EXTRACT
+ || GET_CODE (x) == SIGN_EXTRACT)
x = XEXP (x, 0);
/* If either argument is a constant, then modifying X can not affect IN. */
@@ -2138,7 +2140,6 @@ volatile_insn_p (x)
case REG:
case SCRATCH:
case CLOBBER:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
case CALL:
@@ -2149,6 +2150,7 @@ volatile_insn_p (x)
/* case TRAP_IF: This isn't clear yet. */
return 1;
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;
@@ -2205,7 +2207,6 @@ volatile_refs_p (x)
case REG:
case SCRATCH:
case CLOBBER:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
return 0;
@@ -2214,6 +2215,7 @@ volatile_refs_p (x)
return 1;
case MEM:
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;
@@ -2269,7 +2271,6 @@ side_effects_p (x)
case PC:
case REG:
case SCRATCH:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
return 0;
@@ -2292,6 +2293,7 @@ side_effects_p (x)
return 1;
case MEM:
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;
@@ -2363,6 +2365,8 @@ may_trap_p (x)
/* Memory ref can trap unless it's a static var or a stack slot. */
case MEM:
+ if (MEM_NOTRAP_P (x))
+ return 0;
return rtx_addr_can_trap_p (XEXP (x, 0));
/* Division by a non-constant might trap. */
@@ -2418,6 +2422,12 @@ may_trap_p (x)
return 1;
break;
+ case FIX:
+ /* Conversion of floating point might trap. */
+ if (flag_trapping_math && HONOR_NANS (GET_MODE (XEXP (x, 0))))
+ return 1;
+ break;
+
case NEG:
case ABS:
/* These operations don't trap even with floating point. */
@@ -3153,6 +3163,74 @@ subreg_regno_offset (xregno, xmode, offset, ymode)
return (y_offset / (mode_multiple / nregs_multiple)) * nregs_ymode;
}
+/* This function returns true when the offset is representable via
+ subreg_offset in the given regno.
+ xregno - A regno of an inner hard subreg_reg (or what will become one).
+ xmode - The mode of xregno.
+ offset - The byte offset.
+ ymode - The mode of a top level SUBREG (or what may become one).
+ RETURN - The regno offset which would be used. */
+bool
+subreg_offset_representable_p (xregno, xmode, offset, ymode)
+ unsigned int xregno;
+ enum machine_mode xmode;
+ unsigned int offset;
+ enum machine_mode ymode;
+{
+ int nregs_xmode, nregs_ymode;
+ int mode_multiple, nregs_multiple;
+ int y_offset;
+
+ if (xregno >= FIRST_PSEUDO_REGISTER)
+ abort ();
+
+ nregs_xmode = HARD_REGNO_NREGS (xregno, xmode);
+ nregs_ymode = HARD_REGNO_NREGS (xregno, ymode);
+
+ /* paradoxical subregs are always valid. */
+ if (offset == 0
+ && nregs_ymode > nregs_xmode
+ && (GET_MODE_SIZE (ymode) > UNITS_PER_WORD
+ ? WORDS_BIG_ENDIAN : BYTES_BIG_ENDIAN))
+ return true;
+
+ /* Lowpart subregs are always valid. */
+ if (offset == subreg_lowpart_offset (ymode, xmode))
+ return true;
+
+#ifdef ENABLE_CHECKING
+ /* This should always pass, otherwise we don't know how to verify the
+ constraint. These conditions may be relaxed but subreg_offset would
+ need to be redesigned. */
+ if (GET_MODE_SIZE (xmode) % GET_MODE_SIZE (ymode)
+ || GET_MODE_SIZE (ymode) % nregs_ymode
+ || nregs_xmode % nregs_ymode)
+ abort ();
+#endif
+
+ /* The XMODE value can be seen as an vector of NREGS_XMODE
+ values. The subreg must represent an lowpart of given field.
+ Compute what field it is. */
+ offset -= subreg_lowpart_offset (ymode,
+ mode_for_size (GET_MODE_BITSIZE (xmode)
+ / nregs_xmode,
+ MODE_INT, 0));
+
+ /* size of ymode must not be greater than the size of xmode. */
+ mode_multiple = GET_MODE_SIZE (xmode) / GET_MODE_SIZE (ymode);
+ if (mode_multiple == 0)
+ abort ();
+
+ y_offset = offset / GET_MODE_SIZE (ymode);
+ nregs_multiple = nregs_xmode / nregs_ymode;
+#ifdef ENABLE_CHECKING
+ if (offset % GET_MODE_SIZE (ymode)
+ || mode_multiple % nregs_multiple)
+ abort ();
+#endif
+ return (!(y_offset % (mode_multiple / nregs_multiple)));
+}
+
/* Return the final regno that a subreg expression refers to. */
unsigned int
subreg_regno (x)
diff --git a/gcc/sbitmap.c b/gcc/sbitmap.c
index 74aa7cd1b4e..74c24c92855 100644
--- a/gcc/sbitmap.c
+++ b/gcc/sbitmap.c
@@ -1,5 +1,5 @@
/* Simple bitmaps.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -47,6 +47,64 @@ sbitmap_alloc (n_elms)
return bmap;
}
+/* Resize a simple bitmap BMAP to N_ELMS bits. If increasing the
+ size of BMAP, clear the new bits to zero if the DEF argument
+ is zero, and set them to one otherwise. */
+
+sbitmap
+sbitmap_resize (bmap, n_elms, def)
+ sbitmap bmap;
+ unsigned int n_elms;
+ int def;
+{
+ unsigned int bytes, size, amt;
+ unsigned int last_bit;
+
+ size = SBITMAP_SET_SIZE (n_elms);
+ bytes = size * sizeof (SBITMAP_ELT_TYPE);
+ if (bytes > bmap->bytes)
+ {
+ amt = (sizeof (struct simple_bitmap_def)
+ + bytes - sizeof (SBITMAP_ELT_TYPE));
+ bmap = (sbitmap) xrealloc ((PTR) bmap, amt);
+ }
+
+ if (n_elms > bmap->n_bits)
+ {
+ if (def)
+ {
+ memset ((PTR) (bmap->elms + bmap->size), -1, bytes - bmap->bytes);
+
+ /* Set the new bits if the original last element. */
+ last_bit = bmap->n_bits % SBITMAP_ELT_BITS;
+ if (last_bit)
+ bmap->elms[bmap->size - 1]
+ |= ~((SBITMAP_ELT_TYPE)-1 >> (SBITMAP_ELT_BITS - last_bit));
+
+ /* Clear the unused bit in the new last element. */
+ last_bit = n_elms % SBITMAP_ELT_BITS;
+ if (last_bit)
+ bmap->elms[size - 1]
+ &= (SBITMAP_ELT_TYPE)-1 >> (SBITMAP_ELT_BITS - last_bit);
+ }
+ else
+ memset ((PTR) (bmap->elms + bmap->size), 0, bytes - bmap->bytes);
+ }
+ else if (n_elms < bmap->n_bits)
+ {
+ /* Clear the surplus bits in the last word. */
+ last_bit = n_elms % SBITMAP_ELT_BITS;
+ if (last_bit)
+ bmap->elms[size - 1]
+ &= (SBITMAP_ELT_TYPE)-1 >> (SBITMAP_ELT_BITS - last_bit);
+ }
+
+ bmap->n_bits = n_elms;
+ bmap->size = size;
+ bmap->bytes = bytes;
+ return bmap;
+}
+
/* Allocate a vector of N_VECS bitmaps of N_ELMS bits. */
sbitmap *
diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h
index d39759e00f2..42e466e437e 100644
--- a/gcc/sbitmap.h
+++ b/gcc/sbitmap.h
@@ -1,5 +1,5 @@
/* Simple bitmaps.
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -125,6 +125,7 @@ extern void dump_sbitmap_vector PARAMS ((FILE *, const char *,
int));
extern sbitmap sbitmap_alloc PARAMS ((unsigned int));
extern sbitmap *sbitmap_vector_alloc PARAMS ((unsigned int, unsigned int));
+extern sbitmap sbitmap_resize PARAMS ((sbitmap, unsigned int, int));
extern void sbitmap_copy PARAMS ((sbitmap, sbitmap));
extern int sbitmap_equal PARAMS ((sbitmap, sbitmap));
extern void sbitmap_zero PARAMS ((sbitmap));
diff --git a/gcc/scan-decls.c b/gcc/scan-decls.c
index e56401d066f..4f99319cc70 100644
--- a/gcc/scan-decls.c
+++ b/gcc/scan-decls.c
@@ -32,7 +32,9 @@ int brace_nesting = 0;
indicate the (brace nesting levels of) left braces that were
prefixed by extern "C". */
int extern_C_braces_length = 0;
-char extern_C_braces[20];
+/* 20 is not enough anymore on Solaris 9. */
+#define MAX_EXTERN_C_BRACES 200
+char extern_C_braces[MAX_EXTERN_C_BRACES];
#define in_extern_C_brace (extern_C_braces_length>0)
/* True if the function declaration currently being scanned is
@@ -222,6 +224,12 @@ scan_decls (pfile, argc, argv)
brace_nesting++;
extern_C_braces[extern_C_braces_length++]
= brace_nesting;
+ if (extern_C_braces_length >= MAX_EXTERN_C_BRACES)
+ {
+ fprintf (stderr,
+ "Internal error: out-of-bounds index\n");
+ exit (FATAL_EXIT_CODE);
+ }
goto new_statement;
}
}
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 98b0732291b..1befd3deb4a 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -41,8 +41,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "params.h"
#include "cselib.h"
-extern char *reg_known_equiv_p;
-extern rtx *reg_known_value;
static regset_head reg_pending_sets_head;
static regset_head reg_pending_clobbers_head;
@@ -101,10 +99,12 @@ deps_may_trap_p (mem)
{
rtx addr = XEXP (mem, 0);
- if (REG_P (addr)
- && REGNO (addr) >= FIRST_PSEUDO_REGISTER
- && reg_known_value[REGNO (addr)])
- addr = reg_known_value[REGNO (addr)];
+ if (REG_P (addr) && REGNO (addr) >= FIRST_PSEUDO_REGISTER)
+ {
+ rtx t = get_reg_known_value (REGNO (addr));
+ if (t)
+ addr = t;
+ }
return rtx_addr_can_trap_p (addr);
}
@@ -628,10 +628,12 @@ sched_analyze_1 (deps, x, insn)
/* Pseudos that are REG_EQUIV to something may be replaced
by that during reloading. We need only add dependencies for
the address in the REG_EQUIV note. */
- if (!reload_completed
- && reg_known_equiv_p[regno]
- && GET_CODE (reg_known_value[regno]) == MEM)
- sched_analyze_2 (deps, XEXP (reg_known_value[regno], 0), insn);
+ if (!reload_completed && get_reg_known_equiv_p (regno))
+ {
+ rtx t = get_reg_known_value (regno);
+ if (GET_CODE (t) == MEM)
+ sched_analyze_2 (deps, XEXP (t, 0), insn);
+ }
/* Don't let it cross a call after scheduling if it doesn't
already cross one. */
@@ -763,10 +765,12 @@ sched_analyze_2 (deps, x, insn)
/* Pseudos that are REG_EQUIV to something may be replaced
by that during reloading. We need only add dependencies for
the address in the REG_EQUIV note. */
- if (!reload_completed
- && reg_known_equiv_p[regno]
- && GET_CODE (reg_known_value[regno]) == MEM)
- sched_analyze_2 (deps, XEXP (reg_known_value[regno], 0), insn);
+ if (!reload_completed && get_reg_known_equiv_p (regno))
+ {
+ rtx t = get_reg_known_value (regno);
+ if (GET_CODE (t) == MEM)
+ sched_analyze_2 (deps, XEXP (t, 0), insn);
+ }
/* If the register does not already cross any calls, then add this
insn to the sched_before_next_call list so that it will still
@@ -977,12 +981,17 @@ sched_analyze_insn (deps, x, insn, loop_notes)
else
{
rtx pending, pending_mem;
- regset_head tmp;
- INIT_REG_SET (&tmp);
+ regset_head tmp_uses, tmp_sets;
+ INIT_REG_SET (&tmp_uses);
+ INIT_REG_SET (&tmp_sets);
+
+ (*current_sched_info->compute_jump_reg_dependencies)
+ (insn, &deps->reg_conditional_sets, &tmp_uses, &tmp_sets);
+ IOR_REG_SET (reg_pending_uses, &tmp_uses);
+ IOR_REG_SET (reg_pending_sets, &tmp_sets);
- (*current_sched_info->compute_jump_reg_dependencies) (insn, &tmp);
- IOR_REG_SET (reg_pending_uses, &tmp);
- CLEAR_REG_SET (&tmp);
+ CLEAR_REG_SET (&tmp_uses);
+ CLEAR_REG_SET (&tmp_sets);
/* All memory writes and volatile reads must happen before the
jump. Non-volatile reads must happen before the jump iff
@@ -1079,6 +1088,7 @@ sched_analyze_insn (deps, x, insn, loop_notes)
}
flush_pending_lists (deps, insn, true, true);
+ CLEAR_REG_SET (&deps->reg_conditional_sets);
reg_pending_barrier = false;
}
else
@@ -1110,6 +1120,7 @@ sched_analyze_insn (deps, x, insn, loop_notes)
add_dependence_list (insn, reg_last->clobbers, REG_DEP_OUTPUT);
add_dependence_list (insn, reg_last->uses, REG_DEP_ANTI);
reg_last->sets = alloc_INSN_LIST (insn, reg_last->sets);
+ SET_REGNO_REG_SET (&deps->reg_conditional_sets, i);
});
}
else
@@ -1158,6 +1169,7 @@ sched_analyze_insn (deps, x, insn, loop_notes)
reg_last->sets = alloc_INSN_LIST (insn, reg_last->sets);
reg_last->uses_length = 0;
reg_last->clobbers_length = 0;
+ CLEAR_REGNO_REG_SET (&deps->reg_conditional_sets, i);
});
}
@@ -1484,6 +1496,7 @@ init_deps (deps)
deps->reg_last = (struct deps_reg *)
xcalloc (max_reg, sizeof (struct deps_reg));
INIT_REG_SET (&deps->reg_last_in_use);
+ INIT_REG_SET (&deps->reg_conditional_sets);
deps->pending_read_insns = 0;
deps->pending_read_mems = 0;
@@ -1526,6 +1539,7 @@ free_deps (deps)
free_INSN_LIST_list (&reg_last->clobbers);
});
CLEAR_REG_SET (&deps->reg_last_in_use);
+ CLEAR_REG_SET (&deps->reg_conditional_sets);
free (deps->reg_last);
}
diff --git a/gcc/sched-ebb.c b/gcc/sched-ebb.c
index e9d7482e40e..5138b400f9e 100644
--- a/gcc/sched-ebb.c
+++ b/gcc/sched-ebb.c
@@ -1,6 +1,6 @@
/* Instruction scheduling pass.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by,
and currently maintained by, Jim Wilson (wilson@cygnus.com)
@@ -52,7 +52,8 @@ static int schedule_more_p PARAMS ((void));
static const char *ebb_print_insn PARAMS ((rtx, int));
static int rank PARAMS ((rtx, rtx));
static int contributes_to_priority PARAMS ((rtx, rtx));
-static void compute_jump_reg_dependencies PARAMS ((rtx, regset));
+static void compute_jump_reg_dependencies PARAMS ((rtx, regset, regset,
+ regset));
static void schedule_ebb PARAMS ((rtx, rtx));
/* Return nonzero if there are more insns that should be scheduled. */
@@ -160,22 +161,30 @@ contributes_to_priority (next, insn)
return 1;
}
-/* INSN is a JUMP_INSN. Store the set of registers that must be considered
- to be set by this jump in SET. */
+/* INSN is a JUMP_INSN, COND_SET is the set of registers that are
+ conditionally set before INSN. Store the set of registers that
+ must be considered as used by this jump in USED and that of
+ registers that must be considered as set in SET. */
static void
-compute_jump_reg_dependencies (insn, set)
+compute_jump_reg_dependencies (insn, cond_set, used, set)
rtx insn;
- regset set;
+ regset cond_set, used, set;
{
basic_block b = BLOCK_FOR_INSN (insn);
edge e;
for (e = b->succ; e; e = e->succ_next)
- if ((e->flags & EDGE_FALLTHRU) == 0)
- {
- bitmap_operation (set, set, e->dest->global_live_at_start,
- BITMAP_IOR);
- }
+ if (e->flags & EDGE_FALLTHRU)
+ /* The jump may be a by-product of a branch that has been merged
+ in the main codepath after being conditionalized. Therefore
+ it may guard the fallthrough block from using a value that has
+ conditionally overwritten that of the main codepath. So we
+ consider that it restores the value of the main codepath. */
+ bitmap_operation (set, e->dest->global_live_at_start, cond_set,
+ BITMAP_AND);
+ else
+ bitmap_operation (used, used, e->dest->global_live_at_start,
+ BITMAP_IOR);
}
/* Used in schedule_insns to initialize current_sched_info for scheduling
@@ -194,7 +203,7 @@ static struct sched_info ebb_sched_info =
NULL, NULL,
NULL, NULL,
- 0, 1
+ 0, 0
};
/* Schedule a single extended basic block, defined by the boundaries HEAD
diff --git a/gcc/sched-int.h b/gcc/sched-int.h
index 1b196562b18..765e1eb34fb 100644
--- a/gcc/sched-int.h
+++ b/gcc/sched-int.h
@@ -112,6 +112,9 @@ struct deps
/* Element N is set for each register that has any nonzero element
in reg_last[N].{uses,sets,clobbers}. */
regset_head reg_last_in_use;
+
+ /* Element N is set for each register that is conditionally set. */
+ regset_head reg_conditional_sets;
};
/* This structure holds some state of the current scheduling pass, and
@@ -146,9 +149,9 @@ struct sched_info
calculations. */
int (*contributes_to_priority) PARAMS ((rtx, rtx));
/* Called when computing dependencies for a JUMP_INSN. This function
- should store the set of registers that must be considered as set by
- the jump in the regset. */
- void (*compute_jump_reg_dependencies) PARAMS ((rtx, regset));
+ should store the set of registers that must be considered as used
+ and the set of registers that must be considered as set by the jump. */
+ void (*compute_jump_reg_dependencies) PARAMS ((rtx, regset, regset, regset));
/* The boundaries of the set of insns to be scheduled. */
rtx prev_head, next_tail;
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 88545b29b09..454718ae2f2 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -626,7 +626,8 @@ find_rgns (edge_list, dom)
int *max_hdr, *dfs_nr, *stack, *degree;
char no_loops = 1;
int node, child, loop_head, i, head, tail;
- int count = 0, sp, idx = 0, current_edge = out_edges[0];
+ int count = 0, sp, idx = 0;
+ int current_edge = out_edges[ENTRY_BLOCK_PTR->succ->dest->index];
int num_bbs, num_insns, unreachable;
int too_large_failure;
basic_block bb;
@@ -1967,7 +1968,8 @@ static int schedule_more_p PARAMS ((void));
static const char *rgn_print_insn PARAMS ((rtx, int));
static int rgn_rank PARAMS ((rtx, rtx));
static int contributes_to_priority PARAMS ((rtx, rtx));
-static void compute_jump_reg_dependencies PARAMS ((rtx, regset));
+static void compute_jump_reg_dependencies PARAMS ((rtx, regset, regset,
+ regset));
/* Return nonzero if there are more insns that should be scheduled. */
@@ -2254,12 +2256,16 @@ contributes_to_priority (next, insn)
return BLOCK_NUM (next) == BLOCK_NUM (insn);
}
-/* INSN is a JUMP_INSN. Store the set of registers that must be considered
- to be set by this jump in SET. */
+/* INSN is a JUMP_INSN, COND_SET is the set of registers that are
+ conditionally set before INSN. Store the set of registers that
+ must be considered as used by this jump in USED and that of
+ registers that must be considered as set in SET. */
static void
-compute_jump_reg_dependencies (insn, set)
+compute_jump_reg_dependencies (insn, cond_set, used, set)
rtx insn ATTRIBUTE_UNUSED;
+ regset cond_set ATTRIBUTE_UNUSED;
+ regset used ATTRIBUTE_UNUSED;
regset set ATTRIBUTE_UNUSED;
{
/* Nothing to do here, since we postprocess jumps in
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 212d3b90236..eca29457a8c 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -381,6 +381,44 @@ simplify_unary_operation (code, mode, op, op_mode)
unsigned int width = GET_MODE_BITSIZE (mode);
rtx trueop = avoid_constant_pool_reference (op);
+ if (code == VEC_DUPLICATE)
+ {
+ if (!VECTOR_MODE_P (mode))
+ abort ();
+ if (GET_MODE (trueop) != VOIDmode
+ && !VECTOR_MODE_P (GET_MODE (trueop))
+ && GET_MODE_INNER (mode) != GET_MODE (trueop))
+ abort ();
+ if (GET_MODE (trueop) != VOIDmode
+ && VECTOR_MODE_P (GET_MODE (trueop))
+ && GET_MODE_INNER (mode) != GET_MODE_INNER (GET_MODE (trueop)))
+ abort ();
+ if (GET_CODE (trueop) == CONST_INT || GET_CODE (trueop) == CONST_DOUBLE
+ || GET_CODE (trueop) == CONST_VECTOR)
+ {
+ int elt_size = GET_MODE_SIZE (GET_MODE_INNER (mode));
+ unsigned n_elts = (GET_MODE_SIZE (mode) / elt_size);
+ rtvec v = rtvec_alloc (n_elts);
+ unsigned int i;
+
+ if (GET_CODE (trueop) != CONST_VECTOR)
+ for (i = 0; i < n_elts; i++)
+ RTVEC_ELT (v, i) = trueop;
+ else
+ {
+ enum machine_mode inmode = GET_MODE (trueop);
+ int in_elt_size = GET_MODE_SIZE (GET_MODE_INNER (inmode));
+ unsigned in_n_elts = (GET_MODE_SIZE (inmode) / in_elt_size);
+
+ if (in_n_elts >= n_elts || n_elts % in_n_elts)
+ abort ();
+ for (i = 0; i < n_elts; i++)
+ RTVEC_ELT (v, i) = CONST_VECTOR_ELT (trueop, i % in_n_elts);
+ }
+ return gen_rtx_CONST_VECTOR (mode, v);
+ }
+ }
+
/* The order of these tests is critical so that, for example, we don't
check the wrong mode (input vs. output) for a conversion operation,
such as FIX. At some point, this should be simplified. */
@@ -1401,6 +1439,10 @@ simplify_binary_operation (code, mode, op0, op1)
/* ??? There are simplifications that can be done. */
return 0;
+ case VEC_SELECT:
+ case VEC_CONCAT:
+ return 0;
+
default:
abort ();
}
@@ -1931,8 +1973,10 @@ simplify_relational_operation (code, mode, op0, op1)
return const0_rtx;
/* For modes without NaNs, if the two operands are equal, we know the
- result. */
- if (!HONOR_NANS (GET_MODE (trueop0)) && rtx_equal_p (trueop0, trueop1))
+ result. Nevertheless, don't discard them if they have side-effects. */
+ if (!HONOR_NANS (GET_MODE (trueop0))
+ && rtx_equal_p (trueop0, trueop1)
+ && ! side_effects_p (trueop0))
equal = 1, op0lt = 0, op0ltu = 0, op1lt = 0, op1ltu = 0;
/* If the operands are floating-point constants, see if we can fold
@@ -2270,6 +2314,30 @@ simplify_ternary_operation (code, mode, op0_mode, op0, op1, op2)
}
}
break;
+ case VEC_MERGE:
+ if (GET_MODE (op0) != mode
+ || GET_MODE (op1) != mode
+ || !VECTOR_MODE_P (mode))
+ abort ();
+ op0 = avoid_constant_pool_reference (op0);
+ op1 = avoid_constant_pool_reference (op1);
+ op2 = avoid_constant_pool_reference (op2);
+ if (GET_CODE (op0) == CONST_VECTOR
+ && GET_CODE (op1) == CONST_VECTOR
+ && GET_CODE (op2) == CONST_INT)
+ {
+ int elt_size = GET_MODE_SIZE (GET_MODE_INNER (mode));
+ unsigned n_elts = (GET_MODE_SIZE (mode) / elt_size);
+ rtvec v = rtvec_alloc (n_elts);
+ unsigned int i;
+
+ for (i = 0; i < n_elts; i++)
+ RTVEC_ELT (v, i) = (INTVAL (op2) & (1 << i)
+ ? CONST_VECTOR_ELT (op0, i)
+ : CONST_VECTOR_ELT (op1, i));
+ return gen_rtx_CONST_VECTOR (mode, v);
+ }
+ break;
default:
abort ();
@@ -2351,13 +2419,16 @@ simplify_subreg (outermode, op, innermode, byte)
}
if (GET_CODE (elt) != CONST_INT)
return NULL_RTX;
+ /* Avoid overflow. */
+ if (high >> (HOST_BITS_PER_WIDE_INT - shift))
+ return NULL_RTX;
high = high << shift | sum >> (HOST_BITS_PER_WIDE_INT - shift);
sum = (sum << shift) + INTVAL (elt);
}
if (GET_MODE_BITSIZE (outermode) <= HOST_BITS_PER_WIDE_INT)
return GEN_INT (trunc_int_for_mode (sum, outermode));
else if (GET_MODE_BITSIZE (outermode) == 2* HOST_BITS_PER_WIDE_INT)
- return immed_double_const (high, sum, outermode);
+ return immed_double_const (sum, high, outermode);
else
return NULL_RTX;
}
@@ -2588,7 +2659,7 @@ simplify_subreg (outermode, op, innermode, byte)
|| ! rtx_equal_function_value_matters)
&& REGNO (op) < FIRST_PSEUDO_REGISTER
#ifdef CANNOT_CHANGE_MODE_CLASS
- && ! (REG_CANNOT_CHANGE_MODE_P (REGNO (op), outermode, innermode)
+ && ! (REG_CANNOT_CHANGE_MODE_P (REGNO (op), innermode, outermode)
&& GET_MODE_CLASS (innermode) != MODE_COMPLEX_INT
&& GET_MODE_CLASS (innermode) != MODE_COMPLEX_FLOAT)
#endif
diff --git a/gcc/stmt.c b/gcc/stmt.c
index f283b7590c6..6a053006903 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -541,10 +541,23 @@ expand_computed_goto (exp)
#endif
emit_queue ();
- do_pending_stack_adjust ();
- emit_indirect_jump (x);
- current_function_has_computed_jump = 1;
+ if (! cfun->computed_goto_common_label)
+ {
+ cfun->computed_goto_common_reg = copy_to_mode_reg (Pmode, x);
+ cfun->computed_goto_common_label = gen_label_rtx ();
+
+ do_pending_stack_adjust ();
+ emit_label (cfun->computed_goto_common_label);
+ emit_indirect_jump (cfun->computed_goto_common_reg);
+
+ current_function_has_computed_jump = 1;
+ }
+ else
+ {
+ emit_move_insn (cfun->computed_goto_common_reg, x);
+ emit_jump (cfun->computed_goto_common_label);
+ }
}
/* Handle goto statements and the labels that they can go to. */
@@ -1107,18 +1120,26 @@ n_occurrences (c, s)
}
/* Generate RTL for an asm statement (explicit assembler code).
- BODY is a STRING_CST node containing the assembler code text,
- or an ADDR_EXPR containing a STRING_CST. */
+ STRING is a STRING_CST node containing the assembler code text,
+ or an ADDR_EXPR containing a STRING_CST. VOL nonzero means the
+ insn is volatile; don't optimize it. */
void
-expand_asm (body)
- tree body;
+expand_asm (string, vol)
+ tree string;
+ int vol;
{
- if (TREE_CODE (body) == ADDR_EXPR)
- body = TREE_OPERAND (body, 0);
+ rtx body;
+
+ if (TREE_CODE (string) == ADDR_EXPR)
+ string = TREE_OPERAND (string, 0);
- emit_insn (gen_rtx_ASM_INPUT (VOIDmode,
- TREE_STRING_POINTER (body)));
+ body = gen_rtx_ASM_INPUT (VOIDmode, TREE_STRING_POINTER (string));
+
+ MEM_VOLATILE_P (body) = vol;
+
+ emit_insn (body);
+
clear_last_expr ();
}
@@ -1597,6 +1618,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
bool is_inout;
bool allows_reg;
bool allows_mem;
+ rtx op;
if (!parse_output_constraint (&constraints[i], i, ninputs,
noutputs, &allows_mem, &allows_reg,
@@ -1620,24 +1642,28 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
|| ! allows_reg
|| is_inout)
{
- output_rtx[i] = expand_expr (val, NULL_RTX, VOIDmode, EXPAND_WRITE);
+ op = expand_expr (val, NULL_RTX, VOIDmode, EXPAND_WRITE);
+ if (GET_CODE (op) == MEM)
+ op = validize_mem (op);
- if (! allows_reg && GET_CODE (output_rtx[i]) != MEM)
+ if (! allows_reg && GET_CODE (op) != MEM)
error ("output number %d not directly addressable", i);
- if ((! allows_mem && GET_CODE (output_rtx[i]) == MEM)
- || GET_CODE (output_rtx[i]) == CONCAT)
+ if ((! allows_mem && GET_CODE (op) == MEM)
+ || GET_CODE (op) == CONCAT)
{
- real_output_rtx[i] = protect_from_queue (output_rtx[i], 1);
- output_rtx[i] = gen_reg_rtx (GET_MODE (output_rtx[i]));
+ real_output_rtx[i] = protect_from_queue (op, 1);
+ op = gen_reg_rtx (GET_MODE (op));
if (is_inout)
- emit_move_insn (output_rtx[i], real_output_rtx[i]);
+ emit_move_insn (op, real_output_rtx[i]);
}
}
else
{
- output_rtx[i] = assign_temp (type, 0, 0, 1);
- TREE_VALUE (tail) = make_tree (type, output_rtx[i]);
+ op = assign_temp (type, 0, 0, 1);
+ op = validize_mem (op);
+ TREE_VALUE (tail) = make_tree (type, op);
}
+ output_rtx[i] = op;
generating_concat_p = old_generating_concat_p;
@@ -1684,11 +1710,15 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
val = TREE_VALUE (tail);
type = TREE_TYPE (val);
- op = expand_expr (val, NULL_RTX, VOIDmode, 0);
+ op = expand_expr (val, NULL_RTX, VOIDmode,
+ (allows_mem && !allows_reg
+ ? EXPAND_MEMORY : EXPAND_NORMAL));
/* Never pass a CONCAT to an ASM. */
if (GET_CODE (op) == CONCAT)
op = force_reg (GET_MODE (op), op);
+ else if (GET_CODE (op) == MEM)
+ op = validize_mem (op);
if (asm_operand_ok (op, constraint) <= 0)
{
@@ -1697,35 +1727,36 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
else if (!allows_mem)
warning ("asm operand %d probably doesn't match constraints",
i + noutputs);
- else if (CONSTANT_P (op))
- op = force_const_mem (TYPE_MODE (type), op);
- else if (GET_CODE (op) == REG
- || GET_CODE (op) == SUBREG
- || GET_CODE (op) == ADDRESSOF
- || GET_CODE (op) == CONCAT)
+ else if (GET_CODE (op) == MEM)
{
- tree qual_type = build_qualified_type (type,
- (TYPE_QUALS (type)
- | TYPE_QUAL_CONST));
- rtx memloc = assign_temp (qual_type, 1, 1, 1);
-
- emit_move_insn (memloc, op);
- op = memloc;
+ /* We won't recognize either volatile memory or memory
+ with a queued address as available a memory_operand
+ at this point. Ignore it: clearly this *is* a memory. */
}
-
- else if (GET_CODE (op) == MEM && MEM_VOLATILE_P (op))
+ else
{
- /* We won't recognize volatile memory as available a
- memory_operand at this point. Ignore it. */
+ warning ("use of memory input without lvalue in asm operand %d is deprecated",
+ i + noutputs);
+
+ if (CONSTANT_P (op))
+ {
+ op = force_const_mem (TYPE_MODE (type), op);
+ op = validize_mem (op);
+ }
+ else if (GET_CODE (op) == REG
+ || GET_CODE (op) == SUBREG
+ || GET_CODE (op) == ADDRESSOF
+ || GET_CODE (op) == CONCAT)
+ {
+ tree qual_type = build_qualified_type (type,
+ (TYPE_QUALS (type)
+ | TYPE_QUAL_CONST));
+ rtx memloc = assign_temp (qual_type, 1, 1, 1);
+ memloc = validize_mem (memloc);
+ emit_move_insn (memloc, op);
+ op = memloc;
+ }
}
- else if (queued_subexp_p (op))
- ;
- else
- /* ??? Leave this only until we have experience with what
- happens in combine and elsewhere when constraints are
- not satisfied. */
- warning ("asm operand %d probably doesn't match constraints",
- i + noutputs);
}
generating_concat_p = old_generating_concat_p;
@@ -2735,8 +2766,11 @@ expand_continue_loop (whichloop)
/* Emit information for branch prediction. */
rtx note;
- note = emit_note (NULL, NOTE_INSN_PREDICTION);
- NOTE_PREDICTION (note) = NOTE_PREDICT (PRED_CONTINUE, IS_TAKEN);
+ if (flag_guess_branch_prob)
+ {
+ note = emit_note (NULL, NOTE_INSN_PREDICTION);
+ NOTE_PREDICTION (note) = NOTE_PREDICT (PRED_CONTINUE, IS_TAKEN);
+ }
clear_last_expr ();
if (whichloop == 0)
whichloop = loop_stack;
@@ -2929,7 +2963,8 @@ expand_value_return (val)
rtx return_reg;
enum br_predictor pred;
- if ((pred = return_prediction (val)) != PRED_NO_PREDICTION)
+ if (flag_guess_branch_prob
+ && (pred = return_prediction (val)) != PRED_NO_PREDICTION)
{
/* Emit information for branch prediction. */
rtx note;
@@ -3312,15 +3347,15 @@ tail_recursion_args (actuals, formals)
else
{
rtx tmp = argvec[i];
-
+ int unsignedp = TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (a)));
+ promote_mode(TREE_TYPE (TREE_VALUE (a)), GET_MODE (tmp),
+ &unsignedp, 0);
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 (tmp, argvec[i], unsignedp);
}
- convert_move (DECL_RTL (f), tmp,
- TREE_UNSIGNED (TREE_TYPE (TREE_VALUE (a))));
+ convert_move (DECL_RTL (f), tmp, unsignedp);
}
}
@@ -3887,6 +3922,7 @@ expand_decl (decl)
&& !(flag_float_store
&& TREE_CODE (type) == REAL_TYPE)
&& ! TREE_THIS_VOLATILE (decl)
+ && ! DECL_NONLOCAL (decl)
&& (DECL_REGISTER (decl) || optimize))
{
/* Automatic variable that can go in a register. */
@@ -3914,7 +3950,7 @@ expand_decl (decl)
/* If something wants our address, try to use ADDRESSOF. */
if (TREE_ADDRESSABLE (decl))
- put_var_into_stack (decl);
+ put_var_into_stack (decl, /*rescan=*/false);
}
else if (TREE_CODE (DECL_SIZE_UNIT (decl)) == INTEGER_CST
@@ -4014,6 +4050,8 @@ expand_decl_init (decl)
/* Compute and store the initial value now. */
+ push_temp_slots ();
+
if (DECL_INITIAL (decl) == error_mark_node)
{
enum tree_code code = TREE_CODE (TREE_TYPE (decl));
@@ -4037,6 +4075,7 @@ expand_decl_init (decl)
/* Free any temporaries we made while initializing the decl. */
preserve_temp_slots (NULL_RTX);
free_temp_slots ();
+ pop_temp_slots ();
}
/* CLEANUP is an expression to be executed at exit from this binding contour;
@@ -4417,6 +4456,7 @@ expand_start_case (exit_flag, expr, type, printname)
nesting_stack = thiscase;
do_pending_stack_adjust ();
+ emit_queue ();
/* Make sure case_stmt.start points to something that won't
need any transformation before expand_end_case. */
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index db4c09f29f7..835cb7cb1e8 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -1,6 +1,6 @@
/* C-compiler utilities for types and variables storage layout
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1996, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -298,6 +298,29 @@ int_mode_for_mode (mode)
return mode;
}
+/* Return the alignment of MODE. This will be bounded by 1 and
+ BIGGEST_ALIGNMENT. */
+
+unsigned int
+get_mode_alignment (mode)
+ enum machine_mode mode;
+{
+ unsigned int alignment;
+
+ if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
+ || GET_MODE_CLASS (mode) == MODE_COMPLEX_INT)
+ alignment = GET_MODE_UNIT_SIZE (mode);
+ else
+ alignment = GET_MODE_SIZE (mode);
+
+ /* Extract the LSB of the size. */
+ alignment = alignment & -alignment;
+ alignment *= BITS_PER_UNIT;
+
+ alignment = MIN (BIGGEST_ALIGNMENT, MAX (1, alignment));
+ return alignment;
+}
+
/* Return the value of VALUE, rounded up to a multiple of DIVISOR.
This can only be applied to objects of a sizetype. */
@@ -343,6 +366,7 @@ layout_decl (decl, known_align)
{
tree type = TREE_TYPE (decl);
enum tree_code code = TREE_CODE (decl);
+ rtx rtl = NULL_RTX;
if (code == CONST_DECL)
return;
@@ -350,6 +374,8 @@ layout_decl (decl, known_align)
&& code != TYPE_DECL && code != FIELD_DECL)
abort ();
+ rtl = DECL_RTL_IF_SET (decl);
+
if (type == error_mark_node)
type = void_type_node;
@@ -464,6 +490,15 @@ layout_decl (decl, known_align)
larger_than_size);
}
}
+
+ /* If the RTL was already set, update its mode and mem attributes. */
+ if (rtl)
+ {
+ PUT_MODE (rtl, DECL_MODE (decl));
+ SET_DECL_RTL (decl, 0);
+ set_mem_attributes (rtl, decl, 1);
+ SET_DECL_RTL (decl, rtl);
+ }
}
/* Hook for a front-end function that can modify the record layout as needed
@@ -676,6 +711,9 @@ update_alignment_for_field (rli, field, known_align)
desired_align = DECL_ALIGN (field);
user_align = DECL_USER_ALIGN (field);
}
+ else if (!DECL_BIT_FIELD_TYPE (field))
+ /* Even packed non-bit-fields get byte alignment. */
+ desired_align = MAX (desired_align, BITS_PER_UNIT);
/* Some targets (i.e. i386, VMS) limit struct field alignment
to a lower boundary than alignment of variables unless
@@ -735,7 +773,7 @@ update_alignment_for_field (rli, field, known_align)
within the structure. */
if (! integer_zerop (DECL_SIZE (field)))
rli->record_align = MAX (rli->record_align, desired_align);
- else if (! DECL_PACKED (field))
+ else if (! DECL_PACKED (field) && !user_align)
desired_align = TYPE_ALIGN (type);
/* A named bit field of declared type `int'
@@ -771,6 +809,8 @@ update_alignment_for_field (rli, field, known_align)
TYPE_USER_ALIGN (rli->t) |= user_align;
+ DECL_ALIGN (field) = desired_align;
+
return desired_align;
}
diff --git a/gcc/system.h b/gcc/system.h
index 5adbd32b9c6..654c85fe30b 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -261,6 +261,12 @@ extern int errno;
#ifndef WSTOPSIG
#define WSTOPSIG WEXITSTATUS
#endif
+#ifndef WCOREDUMP
+#define WCOREDUMP(S) ((S) & WCOREFLG)
+#endif
+#ifndef WCOREFLG
+#define WCOREFLG 0200
+#endif
/* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they
are defined to 0 then we must provide the relevant declaration
@@ -578,7 +584,7 @@ typedef char _Bool;
#undef strdup
#pragma GCC poison calloc strdup
-#if defined(FLEX_SCANNER) || defined (YYBISON)
+#if defined(FLEX_SCANNER) || defined (YYBISON) || defined(YYBYACC)
/* Flex and bison use malloc and realloc. Yuk. */
#define malloc xmalloc
#define realloc xrealloc
diff --git a/gcc/target-def.h b/gcc/target-def.h
index 154d58d47e9..5e377c74883 100644
--- a/gcc/target-def.h
+++ b/gcc/target-def.h
@@ -1,5 +1,5 @@
/* Default initializers for a generic GCC target.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -239,6 +239,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_BINDS_LOCAL_P default_binds_local_p
#endif
+/* In cse.c. */
+#define TARGET_CC_MODES_COMPATIBLE default_cc_modes_compatible
+
/* In hook.c. */
#define TARGET_CANNOT_MODIFY_JUMPS_P hook_bool_void_false
#define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false
@@ -247,6 +250,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr
#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_tree_false
#define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_tree_false
+#define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false
#ifndef TARGET_IN_SMALL_DATA_P
#define TARGET_IN_SMALL_DATA_P hook_bool_tree_false
@@ -278,6 +282,8 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_BINDS_LOCAL_P, \
TARGET_ENCODE_SECTION_INFO, \
TARGET_STRIP_NAME_ENCODING, \
+ TARGET_FIXED_CONDITION_CODE_REGS, \
+ TARGET_CC_MODES_COMPATIBLE, \
TARGET_HAVE_NAMED_SECTIONS, \
TARGET_HAVE_CTORS_DTORS, \
TARGET_HAVE_TLS, \
diff --git a/gcc/target.h b/gcc/target.h
index 0ac1c5aa17b..7b25eda0640 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -1,5 +1,5 @@
/* Data structure definitions for a generic GCC target.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -279,6 +279,23 @@ struct gcc_target
/* Undo the effects of encode_section_info on the symbol string. */
const char * (* strip_name_encoding) PARAMS ((const char *));
+ /* Fetch the fixed register(s) which hold condition codes, for
+ targets where it makes sense to look for duplicate assignments to
+ the condition codes. This should return true if there is such a
+ register, false otherwise. The arguments should be set to the
+ fixed register numbers. Up to two condition code registers are
+ supported. If there is only one for this target, the int pointed
+ at by the second argument should be set to -1. */
+ bool (* fixed_condition_code_regs) PARAMS ((unsigned int *, unsigned int *));
+
+ /* If two condition code modes are compatible, return a condition
+ code mode which is compatible with both, such that a comparison
+ done in the returned mode will work for both of the original
+ modes. If the condition code modes are not compatible, return
+ VOIDmode. */
+ enum machine_mode (* cc_modes_compatible) PARAMS ((enum machine_mode,
+ enum machine_mode));
+
/* Leave the boolean fields at the end. */
/* True if arbitrary sections are supported. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7fc603cc378..896908ff779 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,10 +1,2050 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-05-01 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/19579
+ Backport from mainline
+ * gcc.c-torture/execute/20050124-1.c: New test.
+
+2005-04-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/18644
+ * g++.old-deja/g++.jason/warning9.C (struct A, main): Adjust.
+
+2005-01-22 Roger Sayle <roger@eyesopen.com>
+
+ PR target/18402
+ Backport from mainline
+ 2003-02-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR optimization/8555
+ * gcc.dg/20030204-1.c: New test.
+
+2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/17115
+ * g++.dg/warn/Winline-4.C: New test.
+
+2005-01-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/short-compare-1.c: New test.
+ * gcc.dg/short-compare-2.c: Likewise.
+
+2005-01-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport:
+ 2003-10-13 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.dg/asm-names.c: Use scan-assembler-not rather
+ than linker trickery.
+
+2005-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/execute/20020720-1.x: XFAIL for x86 when using
+ -fpic or -fPIC.
+
+2004-12-21 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/14765
+ * gcc.dg/pr14765-1.c: New test.
+
+2004-12-20 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR other/19093
+ * g++.dg/opt/max1.C: Fix for 64bit targets.
+
+2004-12-19 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/19068
+ * g++.dg/opt/max1.C: New test case.
+
+2004-12-16 Wolfgang Bangerth <bangerth@dealii.com>
+
+ * g++.dg/other/complex1.C: New test.
+
+2004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR rtl-optimization/16536
+ * gcc.c-torture/execute/restrict-1.c: New test.
+
+2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16681
+ * g++.dg/init/array15.C: New.
+ * g++.dg/init/array16.C: New.
+
+2004-11-29 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/9771
+ * gcc.dg/pr9771-1.c: New test case.
+
+2004-11-27 Falk Hueffner <falk@debian.org>
+
+ * gcc.dg/loop-6.c: New test.
+
+2004-10-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/inherit/thunk1.C: Run on the SPARC.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-08-08 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/16790
+ * gcc.c-torture/execute/pr16790-1.c: New test case.
+
+2004-08-04 Ulrich Weigand <uweigand@de.ibm.com>
+
+ Backport from mainline:
+ 2003-07-11 Jakub Jelinek <jakub@redhat.com>
+ * gcc.dg/20030711-1.c: New test.
+
+2004-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/16175
+ * g++.dg/template/ttp10.C: New test.
+
+2004-06-28 Josef Zlomek <zlomekj@suse.cz>
+
+ PR c/15549
+ Backport from mainline
+ 2003-08-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11946.C
+ * gcc.dg/c99-bool-1.c: Remove bogus warning.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
+
+ * gcc.dg/20001013-1.c: Run on 32-bit and 64-bit SPARC.
+ * gcc.dg/20001101-1.c: Likewise.
+ * gcc.dg/20001102-1.c: Likewise.
+
+ 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp2.c: Do not pass -m64. Remove redundant lines.
+ * gcc.dg/ultrasp4.c: Likewise.
+ * gcc.dg/ultrasp8.c: Do not pass -m64. Add sparcv9-*-*.
+
+ 2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/sparc-ret.c: Run only in 32-bit mode. Don't scan
+ the assembly output if -m64 is passed.
+
+2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/sparc-trap-1.c: New test.
+
+2004-05-26 Hans-Peter Nilsson <hp@axis.com>
+
+ PR optimization/15296
+ * gcc.c-torture/execute/pr15296.c: New test.
+
+2004-05-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * gcc.dg/loop-4.c: New test.
+
+2004-04-29 Matthias Klose <doko@debian.org>
+
+ Backport:
+
+ 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20040304-1.c: New test.
+
+2004-04-20 Paul Brook <paul@codesourcery.com>
+
+ PR 2123
+ * g++.dg/expr/anew1.C: XFAIL and make reproducible. Call abort on
+ failure and exit(0) on success.
+ * g++.dg/expr/anew2.C: Ditto.
+ * g++.dg/expr/anew3.C: Ditto.
+ * g++.dg/expr/anew4.C: Ditto.
+
+2004-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/14755
+ * gcc.c-torture/execute/20040331-1.c: New test.
+
+2004-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/14069
+ * gcc.dg/20040322-1.c: New test.
+
+ Backport from mainline:
+ 2003-04-07 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * gcc.dg/noncompile/init-4.c: New test.
+
+2004-03-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/20040127-1.c: New test.
+ * gcc.dg/20040127-2.c: New test.
+
+2004-03-21 Roger Sayle <roger@eyesopen.com>
+ Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcc.c-torture/execute/20040307-1.c: New test case.
+
+2004-03-21 Roger Sayle <roger@eyesopen.com>
+
+ PR target/13889
+ * gcc.c-torture/compile/pr13889.c: New test case.
+
+2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/14470
+ * gcc.c-torture/execute/20040313-1.c: New test.
+
+2004-03-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/14533
+ * gcc.dg/20040311-2.c: New test.
+
+2004-03-10 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/14289
+ * gcc.dg/pr14289-1.c: New test case.
+ * gcc.dg/pr14289-2.c: Likewise.
+ * gcc.dg/pr14289-3.c: Likewise.
+
+2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14409
+ * g++.dg/template/spec12.C: New test.
+
+2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20040306-1.c: New test.
+
+2004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/opt/inline4.C (dg-final): Robustify regexp.
+ * g++.dg/opt/inline6.C (dg-final): Robustify regexp.
+
+2004-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13635
+ * g++.dg/template/spec11.C: New test.
+
+2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14250
+ * g++.dg/other/switch1.C: New test.
+
+2004-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/parse/init1.C: New test.
+
+2004-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14209
+ * gcc.c-torture/execute/20040218-1.c: New test.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13086
+ * g++.dg/warn/incomplete1.C: Remove xfail.
+
+2004-02-03 Zack Weinberg <zack@codesourcery.com>
+
+ * g++.dg/eh/forced1.C, g++.dg/eh/forced2.C, g++.dg/eh/forced3.C
+ * g++.dg/eh/forced4.C: XFAIL ia64-hp-hpux11.*.
+ * g++.dg/eh/ia64-1.C: Test branch regs only #ifdef __LP64__.
+ * gcc.dg/cleanup-5.c: Run only on Linux targets.
+
+2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13683
+ * g++.dg/template/sizeof6.C: New test.
+
+2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13797
+ * g++.dg/template/nontype4.C: New test.
+ * g++.dg/template/nontype5.C: Likewise.
+
+ PR c++/10555, c++/10576
+ * g++.dg/template/memclass1.C: New test.
+
+2004-01-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/13392
+ * g++.dg/opt/expect2.C: New test.
+
+2004-01-02 Matthias Klose <doko@debian.org>
+
+ Backport from mainline:
+ 2003-12-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13081
+ * g++.dg/opt/inline6.C: New test.
+
+2004-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR optimization/13521
+ * gcc.c-torture/compile/20031231-1.c: New test.
+
+2003-12-31 Roger Sayle <roger@eyesopen.com>
+
+ PR fortran/12632
+ * g77.dg/12632.f: New test case.
+
+2003-12-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/13445
+ * g++.dg/template/scope2.C: New test.
+
+2003-12-28 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/13070
+ * g++.dg/warn/format3.C: New test case.
+
+2003-12-27 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ Backport from mainline:
+ 2003-11-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/2294
+ * g++.dg/lookup/using9.C: New test.
+
+2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/noreturn-7.c: New test.
+
+2003-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/null-pointer-1.c: New test.
+
+2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c++/5050
+ * g++.dg/template/recurse1.C: New test.
+
+2003-12-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11554
+ * testsuite/g++.dg/warn/ctor-init-1.C: New test.
+
+2003-12-21 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/13400
+ * gcc.c-torture/execute/20031215-1.c: New test case.
+
+2003-12-20 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/13031
+ * gcc.c-torture/compile/20031220-1.c: New test case.
+
+2003-12-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/13239
+ * g++.dg/opt/expect1.C: New test.
+
+2003-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13262
+ * g++.dg/template/access13.C: New test.
+
+2003-12-16 Zack Weinberg <zack@codesourcery.com>
+
+ * gcc.c-torture/compile/981223-1.x: Add -mb-step to command line
+ options on ia64-*-* instead of XFAILing the test case.
+
+2003-12-16 Hartmut Penner <hpenner@de.ibm.com>
+
+ * testsuite/gcc.dg/altivec-10.c: Test vec_cmple and vec_all_numeric.
+
+2003-12-12 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/13037
+ * g77.f-torture/execute/13037.f: New test case.
+
+2003-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/eh/ia64-1.C: New test.
+
+2003-12-12 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/13256
+ PR target/12598
+ Backport from mainline:
+ * gcc.dg/torture/dg-torture.exp: New directory. New file.
+ * gcc.dg/torture/cris-volatile-1.c: New test.
+ * gcc.c-torture/execute/20031201-1.c: New test.
+
+2003-12-12 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * gcc.dg/cpp/trad/xwin1.c: Remove, breaks testsuite (and I don't
+ know how to make it work).
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Wolfgang Bangerth <bangerth@dealii.org>
+
+ * gcc.dg/overflow-1.c: New test.
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g77.f-torture/compile/13060.f: New test.
+
+2003-12-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-12-07 Falk Hueffner <falk@debian.org>
+
+ * g++.dg/opt/noreturn-1.C: New test.
+
+2003-12-10 Robert Schiele <rschiele@uni-mannheim.de>
+
+ PR other/10819
+ * lib/gcc.exp (default_gcc_version): Do not match NL/CR characters
+ to fix Bug 10819.
+ * lib/g++.exp (g++_version): Likewise.
+ * lib/g77.exp (g77_version): Likewise.
+ * lib/objc.exp (default_objc_version): Likewise.
+
+2003-12-10 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ Backport from mainline:
+ * gcc.dg/cpp/trad/xwin1.c: New test case.
+
+2003-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-11-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/uninit-C.c: XFAIL on non 64-bit Solaris versions.
+
+2003-12-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/13323
+ * g++.dg/inherit/operator2.C: New test.
+
+2003-12-05 Stuart Menefy <stuart.menefy@st.com>
+ J"orn Rennecke <joern.rennecke@superh.com>
+
+ PR target/13302
+ * g++.dg/other/struct-va_list.C: New test.
+
+2003-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/20031202-1.c: New test.
+
+2003-12-03 Josef Zlomek <zlomekj@suse.cz>
+
+ Backport from mainline
+
+ 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/10239
+ * gcc.c-torture/compile/20031031-2.c: New test.
+
+ 2003-10-31 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/11640
+ * gcc.c-torture/compile/20031031-1.c: New test.
+
+2003-12-01 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/11634
+ * gcc.dg/20031201-2.c: New test case.
+
+2003-12-01 Zack Weinberg <zack@codesourcery.com>
+
+ PR 11433
+ * objc.dg/proto-lossage-3.m: New test.
+
+2003-12-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ Backport from mainline:
+
+ 2003-11-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/reg-stack4.C: New test.
+
+2003-11-14 Bernardo Innocenti <bernie@develer.com>
+
+ Backport from 3.4-branch
+
+ 2003-06-25 Giovanni Bajo <giovannibajo@libero.it>
+
+ PR c++/2094
+ * g++.dg/template/ptrmem6.C: New test.
+
+2003-11-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/const3.C: New test.
+
+2003-11-10 Waldek Hebisch <hebisch@math.uni.wroc.pl>
+
+ * gcc.dg/trampoline-1.c: New test.
+
+2003-11-08 Roger Sayle <roger@eyesopen.com>
+
+ Backport from mainline
+ PR optimization/10467, PR optimization/11741
+ * gcc.dg/20030926-1.c: New test case.
+ * gcc.dg/20031108-1.c: New test case.
+
+2003-11-08 Bernardo Innocenti <bernie@develer.com>
+
+ Backport from 3.4-branch
+
+ 2003-10-08 Giovanni Bajo <giovannibajo@libero.it>
+
+ * g++.dg/parse/error7.C: New test.
+
+2003-11-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from 3.4-branch
+ 2003-04-25 H.J. Lu <hjl@gnu.org>
+
+ * gcc.dg/ia64-sync-4.c: New test.
+
+2003-10-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR libgcj/10610
+ * gcc.dg/ppc-stackalign-1.c: New test.
+
+2003-10-28 Falk Hueffner <falk@debian.org>
+
+ PR target/12654
+ * gcc.c-torture/execute/20031020-1.c: New test.
+
+2003-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/reg-stack3.C: New test.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/12369
+ * g++.dg/template/friend25.C: New test.
+
+2003-10-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/7939
+ * g++.dg/template/crash11.C: New test.
+
+2003-10-14 Steven Bosscher <steven@gcc.gnu.org>
+
+ * g++.dg/tls/init-2.C: Fix. Expect two warnings.
+
+2003-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20031011-1.c: New test.
+
+2003-10-09 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ * gcc.dg/20031009-1.c: New test.
+
+2003-10-09 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/ext/attrib8.C: Only run it on x86 targets.
+
+2003-10-07 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/template/ptrmem4.C: Revise in view of fixes for PR
+ c++/10147.
+
+2003-10-06 Bob Wilson <bob.wilson@acm.org>
+
+ * g++.dg/template/spec10.C: Set exit value to zero on success. Fix
+ indentation.
+
+2003-10-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12337
+ * g++.dg/init/new9.C: New test.
+
+ PR c++/12334, c++/12236, c++/8656
+ * g++.dg/ext/attrib8.C: New test.
+
+2003-10-06 Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+ * g++.dg/opt/cfg2.C: New test.
+
+2003-10-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/float1.C: New test.
+
+2003-10-04 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/11409
+ * g++.dg/overload/builtin3.C: New test case.
+
+2003-10-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/c90-array-lval-6.c: New test.
+ * gcc.dg/c99-array-lval-6.c: New test.
+
+2003-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/12180
+ * gcc.dg/20031002-1.c: New test.
+
+2003-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12486
+ * g++.dg/inherit/error1.C: New test.
+
+2003-10-02 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/parse/parameter-declaration-1.C: Fix line number of
+ expected error message.
+
+2003-10-02 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcc.c-torture/compile/20031002-1.c: New test.
+
+2003-10-02 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/opt/cond1.C: New test.
+
+2003-09-29 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/unroll1.C: Change unsigned to __SIZE_TYPE__.
+
+2003-09-27 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/unroll1.C: New test.
+
+2003-09-24 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc.dg/cpp/Wunknown-pragmas-1.c: New test.
+
+2003-09-23 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.dg/darwin-abi-1.c: New file.
+
+2003-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/reg-stack2.C: New test.
+
+2003-09-21 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ * g++.dg/eh/delayslot1.C: New test.
+
+2003-09-19 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * g++.dg/init/array11.C: Change unsigned to __SIZE_TYPE__
+ so that it will not complain on LP64 targets.
+
+2003-09-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR target/11184
+ * gcc.dg/builtin-apply1.c: New test.
+
+2003-09-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11991
+ * g++.dg/rtti/typeid3.C: New test.
+
+2003-09-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12266
+ * g++.dg/overload/template1.C: New test.
+
+2003-09-17 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/cfg3.C: New test.
+
+2003-09-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/3907
+ * g++.dg/parse/template12.C: New test.
+
+2003-09-14 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/abi/bitfield11.C: New test.
+ * g++.dg/abi/bitfield12.C: Likewise.
+
+2003-09-14 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc.dg/cpp/separate-1.c: Adjust line of error. Test for correct
+ non-expansion of functional macro name without arguments at EOL.
+ * gcc.dg/cpp/spacing1.c: Revert 2003-08-04's change. Likewise.
+
+2003-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp10.c: New test.
+
+2003-09-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11786
+ * g++.dg/lookup/koenig2.C: New test.
+
+2003-09-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/5296
+ * g++.dg/rtti/typeid2.C: New test.
+
+2003-09-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/longbranch2.C: New test.
+
+2003-09-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/11665
+ * gcc.c-torture/compile/20030907-1.c: New test.
+ * g++.dg/init/array11.C: New test.
+
+2003-09-07 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11852
+ * g++.dg/init/struct1.C: New test.
+
+2003-09-07 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12181
+ * g++.dg/expr/comma1.C: New test.
+
+2003-09-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030907-1.c: New test.
+
+2003-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11867
+ * g++.dg/expr/static_cast5.C: New test.
+
+2003-09-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12163
+ * g++.dg/expr/static_cast4.C: New test.
+
+ PR c++/12146
+ * g++.dg/template/crash9.C: New test.
+
+2003-09-04 Mark Mitchell <mark@codesourcery.com>
+
+ Revert this patch:
+ * g++.dg/abi/layout4.C: New test.
+
+2003-09-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12053
+ * g++.dg/abi/layout4.C: New test.
+
+2003-09-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/12114
+ * g++.dg/init/ref9.C: New test.
+
+2003-08-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11928
+ * g++.dg/inherit/conv1.C: New test.
+
+2003-08-26 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * gcc.dg/noncompile/20030818-1.c: Expect second line of error.
+
+2003-08-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20030702-1.c: New test.
+
+2003-08-23 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/20030815-1.c: New test.
+
+2003-08-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcc.dg/cpp/separate-1.c: New test.
+ * gcc.dg/cpp/spacing1.c: Update.
+
+2003-08-22 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.misc-tests/linkage.exp: Treat all HP-UX platforms
+ identically.
+
+2003-08-22 Roger Sayle <roger@eyesopen.com>
+ Jim Wilson <wilson@tuliptree.org>
+
+ * gcc.dg/uninit-C.c: Only test TImode on 64-bit platforms.
+
+2003-08-22 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.old-deja/g++.ext/attrib5.C: XFAIL on hppa2*-hp-hpux11*.
+
+ * gcc.dg/20020313-1.c: Add "-w" to dg-options.
+
+ * gcc.misc-tests/linkage.exp: Add logic for ia64-hp-hpux*.
+
+ * g++.dg/other/packed1.C: Add XFAIL marker for ia64-hp-hpux*.
+
+2003-08-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR target/11805
+ * gcc.c-torture/compile/20030821-1.c: New.
+
+2003-08-18 Matt Kraai <kraai@alumni.cmu.edu>
+
+ * gcc.dg/noncompile/20030818-1.c: New.
+
+2003-08-08 Roger Sayle <roger@eyesopen.com>
+
+ PR c/11370
+ * gcc.dg/Wunreachable-6.c: New testcase.
+ * gcc.dg/Wunreachable-7.c: New testcase.
+
+2003-07-26 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c-torture/compile/zero-strct-2.c: New test.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/overload/operator1.C: New test.
+
+2003-07-24 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/init/enum2.C: New.
+
+2003-07-24 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/inherit/access5.C: New test.
+
+2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11513
+ * g++.dg/template/crash8.C: New test.
+
+2003-07-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11645
+ * g++.dg/inherit/access4.C: New test.
+
+2003-07-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/11282
+ * g++.dg/parse/crash7.C: New test.
+
+2003-07-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/10679
+ * g++.dg/opt/inline4.C: New test.
+
+2003-07-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11536
+ * gcc.dg/20030721-1.c: New test.
+
+2003-07-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11546
+ * g++.dg/template/lookup1.C: New test.
+
+2003-07-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/cfg1.C: New test.
+
+2003-07-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR optimization/11557
+ * gcc.dg/20030717-1.c: New test.
+
+2003-07-15 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/11473
+ * g++.dg/debug/debug8.C: New test.
+
+2003-07-15 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030715-1.c: New test.
+
+2003-07-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7053
+ * g++.dg/template/friend20.C: New test.
+
+2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR optimization/11440
+ * gcc.c-torture/execute/20030714-1.c: New test.
+
+2003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11154
+ * g++.dg/template/partial2.C: New test.
+
+2003-07-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11503
+ * g++.dg/template/anon1.C: New test.
+
+2003-07-13 Roger Sayle <roger@eyesopen.com>
+
+ PR optimization/11059
+ * g++.dg/opt/emptyunion.C: New testcase.
+
+2003-07-11 Danny Smith <dannysmith@users.sourceforge.net>
+
+ Backport from mainline.
+
+ 2003-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR c++/9738
+ * g++.dg/ext/dllimport2.C: New file.
+ * g++.dg/ext/dllimport3.C: New file.
+
+ 2003-07-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR c++/5287, PR c++/7910, PR c++/11021
+ * testsuite/g++.dg/ext/dllimport1.C: Add mingw32 as target. Add
+ tests for warnings.
+ * g++.dg/ext/dllimport2.C: Add tests for warnings.
+ * g++.dg/ext/dllimport3.C: Likewise.
+ * g++.dg/ext/dllimport4.C: New file.
+ * g++.dg/ext/dllimport5.C: New file.
+ * g++.dg/ext/dllimport6.C: New file.
+ * g++.dg/ext/dllimport7.C: New file.
+ * g++.dg/ext/dllimport8.C: New file.
+ * g++.dg/ext/dllimport9.C: New file.
+ * g++.dg/ext/dllimport10.C: New file.
+ * g++.dg/ext/dllexport1.C: New file.
+
+2003-07-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8164
+ * g++.dg/template/nontype2.C: New test.
+
+ PR c++/10558
+ * g++.dg/parse/template8.C: New test.
+
+2003-07-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10032
+ * g++.dg/warn/pedantic1.C: New test.
+
+2003-07-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10849
+ * g++.dg/template/access12.C: New test.
+
+2003-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/11420
+ * gcc.dg/20030707-1.c: New test.
+
+ * g++.dg/opt/strength-reduce.C: New test.
+
+2003-07-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * g++.dg/opt/stack1.C: New test.
+
+2003-07-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11345
+ * g++.old-deja/g++.jason/access8.C: Reove error marker.
+
+2003-07-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11431
+ * g++.dg/expr/static_cast3.C: New test.
+
+2003-07-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-call-1.c: New test.
+
+2003-07-03 Roger Sayle <roger@eyesopen.com>
+
+ PR target/10700
+ * gcc.c-torture/compile/20030703-1.c: New test case.
+
+2003-07-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-volatile-1.c: New test.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/6949
+ * g++.dg/template/local3.C: New test.
+
+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ * g++.dg/other/error5.C: Change line number of expected error.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11137
+ * g++.dg/init/attrib1.C: New test.
+
+ PR c++/11149
+ * g++.dg/lookup/scoped6.C: New test.
+
+2003-07-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9559
+ * g++.dg/init/static1.C: New test.
+
+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ * g++.dg/other/error6.C: New test.
+
+2003-06-30 Giovanni Bajo <giovannibajo@libero.it>
+
+ PR c++/11106
+ * g++.dg/other/error5.C: New test.
+
+2003-06-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10468
+ * g++.dg/ext/typeof5.C: New test.
+
+2003-06-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10796
+ * g++.dg/init/enum1.C: New test.
+
+2003-06-27 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20030627-1.c: New test.
+
+2003-06-26 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11332
+ * g++.dg/expr/static_cast2.C: New test.
+
+2003-06-25 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10990
+ * g++.dg/rtti/dyncast1.C: New test.
+ * g++.dg/abi/mangle4.C: Correct base-specifier access.
+ * g++.dg/lookup/scoped1.C: Remove XFAIL.
+ * g++.old-deja/g++.martin/pmf1.C: Correct base-specifier access.
+
+ PR c++/10931
+ * g++.dg/expr/static_cast1.C: New test.
+
+2003-06-25 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcc.c-torture/compile/20030625-1.c: New test.
+
+2003-06-25 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcc.dg/20030625-1.c: New test.
+
+2003-06-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/5754
+ * g++.dg/parse/crash6.C: New test.
+
+2003-06-23 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/opt/operator1.C: New test.
+
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * g++.old-deja/g++.benjamin/16077.C: Add -Wconversion option.
+ * g++.old-deja/g++.other/conv7.C: Likewise
+ * g++.old-deja/g++.other/overcnv2.C: Likewise.
+ * g++.old-deja/g++.other/overload14.C: Likewise.
+
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * g++.old-deja/g++.jason/conversion5.C: Adjust option.
+ * g++.old-deja/g++.bugs/900215_01.C: Likewise.
+
+2003-06-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10888
+ * g++.dg/warn/Winline-2.C: New test.
+
+ PR c++/10845
+ * g++.dg/template/member3.C: New test.
+
+2003-06-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10939
+ * g++.dg/template/func1.C: New test.
+
+ PR c++/9649
+ * g++.dg/template/static4.C: New test.
+ * g++.old-deja/g++.other/anon7.C: Remove spurious error messages.
+
+2003-06-19 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/11041
+ * g++.dg/init/ref7.C: New test.
+
+2003-06-19 Matt Austern <austern@apple.com>
+
+ PR c++/11228
+ * g++.dg/anew1.C: New test.
+ * g++.dg/anew2.C: New test.
+ * g++.dg/anew3.C: New test.
+ * g++.dg/anew4.C: New test.
+
+2003-06-19 Loren James Rittle <ljrittle@acm.org>
+
+ * gcc.dg/cpp/redef3.c: New file.
+
+2003-06-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10712
+ * g++.dg/lookup/using3.C: New test.
+
+ PR c++/11105
+ * g++.dg/abi/conv1.C: Remove it.
+ * g++.dg/template/conv7.C: New test.
+ * g++.dg/template/conv8.C: Likewise.
+ * g++.old-deja/g++.ext/pretty2.C: Do not test __FUNCTION__ for a
+ conversion operator.
+
+2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030611-1.c: New test.
+
+2003-06-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10635
+ * g++.dg/expr/cast1.C: New test.
+
+2003-06-10 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/noreturn-1.c: Move noreturn warning line.
+ * gcc.dg/return-type-1.c: Move control reaches end warning line.
+
+2003-06-10 Richard Henderson <rth@redhat.com>
+
+ * gcc.dg/asm-7.c: Adjust expected warning text.
+
+2003-06-08 Richard Henderson <rth@redhat.com>
+
+ * gcc.dg/20011029-2.c: Fix the array reference.
+ * gcc.dg/asm-7.c: New.
+
+2003-06-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/11039
+ * g++.dg/warn/implicit-typename2.C: New test.
+ * g++.dg/warn/implicit-typename3.C: New test.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * gcc.dg/cleanup-1.c: New.
+ * gcc.dg/cleanup-2.c: New.
+ * gcc.dg/cleanup-3.c: New.
+ * gcc.dg/cleanup-4.c: New.
+ * gcc.dg/cleanup-5.c: New.
+ * gcc.dg/cleanup-6.c: New.
+ * gcc.dg/cleanup-7.c: New.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp9.c: New test.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20030604-1.c: New test.
+ * gcc.dg/sparc-constant-1.c: New test.
+
+2003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10940
+ * g++.dg/template/spec10.C: New test.
+
+2003-06-01 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-loop-3.c: New test.
+
+2003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10956
+ * g++.dg/template/spec9.C: New test.
+
+2003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10849
+ * g++.dg/template/access10.C: New test.
+
+2003-05-24 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/compile/simd-5.x: XFAIL on SPARC64.
+
+2003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/10682
+ * g++.dg/template/instantiate4.C: New test.
+
+2003-05-16 Matthias Klose <doko@debian.org>
+
+ * parse/crash2.C: Use "(parse|syntax)" error.
+
+ Backport from mainline
+
+ 2003-03-17 Zack Weinberg <zack@codesourcery.com>
+
+ * objc.dg/naming-1.m: Use "(parse|syntax)" error.
+ * objc.dg/naming-2.m: Likewise.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * g++.dg/other/packed1.C: Mark xfail for sparc*- not sparc-.
+
+2003-05-05 Mark Mitchell <mark@codesourcery.com>
+ Kean Johnston <jkj@sco.com>
+
+ * gcc.dg/unused-4.c: Update.
+
+2003-05-02 Zack Weinberg <zack@codesourcery.com>
+
+ PR c/10604
+ * gcc.dg/compare7.c, g++.dg/warn/compare1.C: New testcases.
+
+2003-05-02 Richard Henderson <rth@redhat.com>
+
+ PR c++/10570
+ * g++.dg/eh/forced1.C: Expect catch-all handlers to run.
+ Verify exception_cleanup not called for rethrows.
+ * g++.dg/eh/forced2.C: Test that exception_cleanup is called
+ when exiting catch block without rethrowing.
+ * g++.dg/eh/forced3.C: New.
+ * g++.dg/eh/forced4.C: New.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10551
+ * g++.dg/template/explicit1.C: New test.
+
+ PR c++/10549
+ * g++.dg/other/bitfield1.C: New test.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10527
+ * g++.dg/init/new7.C: New test.
+
+ PR c++/10515
+ * g++.dg/ext/desig1.C: New test.
+ * g++.dg/ext/init1.C: Likewise.
+
+2003-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.old-deja/g++.pt/deduct5.C: Remove unnecessary initializer.
+
+2003-04-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10180
+ * g++.dg/warn/Winline-1.C: New test.
+
+2003-04-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10506
+ * g++.dg/init/new6.C: New test.
+
+ PR c++/10503
+ * g++.dg/init/ref6.C: New test.
+
+2003-04-26 David Edelsohn <edelsohn@gnu.org>
+
+ * g++.dg/warn/weak1.C: XFAIL on AIX4.
+
+2003-04-25 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.old-deja/g++.pt/instantiate12.C: Explicit instantiate
+ initialized static data members.
+
+2003-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10471
+ * g++.dg/template/defarg2.C: New test.
+
+2003-04-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.dg/other/packed1.C: XFAIL hppa*-*-*.
+
+2003-04-23 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/parse/typedef1.C: Tweak after fix for PR 10428.
+
+ PR c++/10451
+ * g++.dg/parse/crash4.C: New test.
+
+2003-04-23 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * g++.dg/other/packed1.C: Append the missing brace.
+
+2003-04-22 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/cpp/trad/funlike-5.c: New test.
+
+2003-04-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10446
+ * g++.dg/parse/crash3.C: New test.
+
+2003-04-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10428
+ * g++.dg/parse/elab1.C: New test.
+
+2003-04-22 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * g++.dg/other/packed1.C: Fix dg options.
+
+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/template/recurse.C: Adjust location of error messages.
+
+2003-04-21 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9881
+ * g++.dg/init/addr-const1.C: New test.
+ * g++.dg/other/packed1.C: XFAIL on aligned architectures.
+
+2003-04-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10405
+ * g++.dg/lookup/struct-hack1.C: New test.
+
+2003-04-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20030418-1.c: New test.
+
+2003-04-17 Janis Johnson <janis187@us.ibm.com>
+
+ * README.compat: Remove; content now in doc/sourcebuild.texi.
+
+2003-04-14 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/10377
+ * gcc.dg/20030414-1.c: New test.
+
+2003-04-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/10300
+ * g++.dg/init/new5.C: New test.
+
+2003-04-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7910
+ * g++.dg/ext/dllimport1.C: New test.
+
+2003-04-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp8.c: Fix for 32-bit Sparc.
+
+2003-04-11 Bud Davis <bdavis9659@comcast.net>
+
+ PR Fortran/9263
+ * g77.f-torture/noncompile/9263.f: New test
+ PR Fortran/1832
+ * g77.f-torture/execute/1832.f: New test
+
+2003-04-05 Zack Weinberg <zack@codesourcery.com>
+
+ PR optimization/10024
+ * gcc.c-torture/compile/20030405-1.c: New test.
+
+2003-04-04 Glen Nakamura <glen@imodulo.com>
+
+ * gcc.dg/20030324-1.c: Add comments and abort if test fails.
+
+2003-04-03 Mike Stump <mrs@apple.com>
+
+ * lib/scanasm.exp (scan-assembler): Add xfail processing for
+ target arg.
+ (scan-assembler-not): Likewise.
+ (scan-assembler-dem, scan-assembler-dem-not): Likewise.
+
+2003-03-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c/9936
+ * gcc.dg/20030331-2.c: New test.
+
+ PR c++/10278
+ * g++.dg/parse/crash2.C: New test.
+
+2003-03-30 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7647
+ * g++.dg/lookup-class-member-2.C: New test.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp8.c: New test.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp7.c: New test.
+
+2003-03-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10047
+ * g++.dg/template/inline1.C: New test.
+
+2003-03-28 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/sparc-dwarf2.c: New test.
+
+2003-03-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/10158
+ * g++.dg/template/friend18.C: New test.
+
+2003-03-26 Roger Sayle <roger@eyesopen.com>
+
+ * g77.f-torture/compile/20030326-1.f: New test case.
+
+2003-03-26 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc.c-torture/execute/20020227-1.x: Don't XFAIL for powerpc64.
+
+ * gcc.c-torture/compile/simd-5.x: Expect XFAIL for powerpc64.
+
+2003-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/ia64-sync-3.c: New test.
+
+2003-03-26 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp6.c: New test.
+
+2003-03-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-signbit-1.c: New test.
+ * gcc.dg/i386-signbit-2.c: New test.
+ * gcc.dg/i386-signbit-3.c: New test.
+
+2003-03-25 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp5.c: Fix options.
+
+2003-03-24 Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/10197
+ * g77.f-torture/execute/10197.f: New test.
+
+2003-03-24 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp5.c: Fix comment.
+
+2003-03-24 Glen Nakamura <glen@imodulo.com>
+
+ PR opt/10087
+ * gcc.dg/20030324-1.c: New test.
+
+2003-03-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9898, c++/383
+ * g++.dg/template/conv6.C: New test.
+
+ PR c++/10199
+ * g++.dg/lookup/template1.C: New test.
+
+2003-03-23 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/ultrasp5.c: New test.
+
+2003-03-23 Arpad Beszedes <beszedes@cc.u-szeged.hu>
+
+ PR middle-end/9967
+ * gcc.c-torture/execute/stdio-opt-1.c: Adjust test for change to
+ builtin fputs.
+
+2003-03-23 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
+
+ PR c/8224
+ * gcc.dg/20030323-1.c: New test.
+
+2003-03-22 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20030321-1.c: New test.
+
+2003-03-22 Bud Davis <bdavis9659@comcast.net>
+
+ * g77.f-torture/execute/select.f: New test.
+ * g77.f-torture/noncompile/select_no_compile.f: New test.
+
+2003-03-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/6412
+ * g++.dg/template/friend17.C: New test.
+
+2003-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/20030309-1.c: New test.
+
+2003-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.c-torture/execute/20030313-1.c: New test.
+
+2003-03-17 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9629
+ * g++.dg/init/ctor2.C: New test.
+
+2003-03-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8805
+ * g++.dg/eh/cleanup1.C: New test.
+
+2003-03-16 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
+
+ * gcc.c-torture/execute/20030316-1.c: New test case.
+
+2003-03-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * g++.old-deja/g++.mike/eh33.C: Remove xfail for hppa*-*-*.
+ * g++.old-deja/g++.mike/eh50.C: Likewise.
+
+2003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/6440
+ * g++.dg/template/spec7.C: New test.
+ * g++.dg/template/spec8.C: Likewise.
+
+2003-03-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20030314-1.c: New test.
+
+2003-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/parse/namespace9.C: New test.
+
+2003-03-13 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/init/ref5.C: New test.
+ * g++.dg/parse/ptrmem1.C: Likewise.
+
+2003-03-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * gcc.dg/special/ecos.exp (gcsec-1.c): Find linker used by gcc.
+ * gcc.dg/old-style-asm-1.c (dg-final): Add hpux label alternative to
+ regular expression.
+ * gcc.dg/inline-1.c (dg-final): Check for "xyzzy?,%r" on hppa*-*-*.
+
+2003-03-12 Steven Bosscher <s.bosscher@student.tudelft.nl>
+
+ * gcc.dg/return-type-3.c: New test.
+
+2003-03-12 Daniel Jacobowitz <drow@mvista.com>
+
+ * gcc.c-torture/execute/20030224-2.c: New test.
+
+2003-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/decl-3.c: New test.
+
+2003-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-loop-2.c: New test.
+
+2003-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9474
+ * g++.dg/parse/namespace8.C: New test.
+
+2003-03-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9924
+ * g++.dg/overload/builtin2.C: New test.
+
+2003-03-10 Devang Patel <dpatel@apple.com>
+
+ PR c++/9394
+ * g++.dg/cpp/c++_cmd_1.C: New test.
+ * g++.dg/cpp/c++_cmd_1.h: New file.
+
+2003-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9373
+ * cp-lang.c (cxx_get_alias_set): Use alias set zero for
+ pointers to member functions.
+
+2003-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8534
+ * g++.dg/opt/ptrmem1.C: New test.
+
+2003-03-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9912
+ * g++.dg/parse/class1.C: New test.
+ * g++.old-deja/g++.other/decl5.C: Adjust.
+
+2003-03-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-loop-1.c: New test.
+
+2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9970
+ * g++.dg/lookup/friend1.C: New test.
+
+2003-03-08 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * gcc.c-torture/execute/20020720-1.x: Add xfail for cris-*-*.
+
+ * gcc.dg/old-style-asm-1.c: Tweak to match mmix-knuth-mmixware.
+
+2003-03-08 Neil Booth <neil@daikokuya.co.uk>
+
+ * gcc.dg/cpp/Wunused.c: Update test.
+
+2003-03-08 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9809
+ * g++.dg/parse/builtin1.C: New test.
+
+2003-03-07 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/init/ref4.C: New test.
+
+2003-03-07 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030307-1.c: New test.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/init/ref3.C: New test.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9965
+ * g++.dg/init/ref2.C: New test.
+
+ PR c++/9400
+ * g++.dg/warn/Wshadow-2.C: New test.
+
+2003-03-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9791
+ * g++.dg/warn/Woverloaded-1.C: New test.
+
+2003-03-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20030305-1.c: New test.
+
+2003-03-04 Roger Sayle <roger@eyesopen.com>
+
+ * g++.old-deja/g++.other/builtins10.C: New test for PR 9367.
+ * gcc.dg/format/attr-5.c: Handle new conflicting types warning.
+
+2003-03-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9878
+ * g++.dg/init/ref1.C: New test.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * gcc.c-torture/execute/960312-1.x: New file, must pass -mshort
+ for HC11/HC12 (asm needs two int registers).
+ * gcc.c-torture/compile/20020312-1.x: New file, don't execute on
+ HC11/HC12 because the test uses an asm which needs two 32-bit
+ registers.
+
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * gcc.c-torture/compile/920501-12.x: New file, must pass -mshort
+ for HC11/HC12 (array is too large otherwise).
+ * gcc.c-torture/compile/920501-4.x: New file, likewise.
+ * gcc.c-torture/compile/20010518-2.x: Likewise.
+ * gcc.c-torture/compile/980506-1.x: Don't execute this test on
+ HC11/HC12 (array is too large).
+
+2003-02-28 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9879
+ * testsuite/g++.dg/init/new4.C: New test.
+
+2003-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9829
+ * g++.dg/parse/namespace1.C: New test.
+
+2003-02-25 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ PR target/9732
+ * gcc.dg/20030225-1.c: New test.
+
+2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX.
+ * gcc.dg/pragma-ep-1.c: Likewise.
+
+2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9602
+ * g++.dg/template/friend16.C: New test.
+
+2003-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/7982
+ * g++.dg/warn/implicit-typename1.C: New test.
+
+2003-02-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcc.dg/asmreg-1.c: New test.
+
+2003-02-21 Richard Henderson <rth@redhat.com>
+
+ * gcc.dg/attr-invalid.c: Allow __used__ on static data.
+
+2003-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9749
+ * g++.dg/parse/varmod1.C: New test.
+
+ PR c++/9727
+ * g++.dg/template/op1.C: New test.
+
+2003-02-21 Zack Weinberg <zack@codesourcery.com>
+
+ * gcc.dg/cpp/include3.c: New test.
+ * gcc.dg/cpp/inc/foo.h: New file.
+
+2003-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/8906
+ * g++.dg/template/nested2.C: New test.
+
+ PR c++/8724
+ * g++.dg/expr/dtor1.C: New test.
+
+2003-02-21 Glen Nakamura <glen@imodulo.com>
+
+ * gcc.c-torture/execute/20030221-1.c: New test.
+
+2003-02-20 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9729
+ * g++.dg/abi/conv1.C: New test.
+
+2003-02-20 Jan Hubicka <jh@suse.cz>
+
+ * gcc.c-torture/execute/20020720-1.x: XFAIL for x86-64.
+
+2003-02-19 Daniel Jacobowitz <drow@mvista.com>
+
+ * gcc.c-torture/compile/20030219-1.c: New test.
+
+2003-02-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcc.c-torture/execute/20030218-1.c: New.
+
+2003-02-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9704
+ * g++.dg/init/copy5.C: New test.
+
+2003-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9459
+ * g++.dg/ext/typeof4.C: New test.
+
+2003-02-12 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/i386-mmx-3.c: Change -march=k8 to -march=athlon.
+ * gcc.dg/i386-ssetype-1.c: Likewise.
+ * gcc.dg/i386-ssetype-2.c: Likewise.
+ * gcc.dg/i386-ssetype-3.c: Likewise.
+ * gcc.dg/i386-ssetype-4.c: Likewise.
+ * gcc.dg/i386-ssetype-5.c: Likewise.
+
+2003-02-14 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcc.dg/20030213-1.c: Expect warning for unsupported -fpic on
+ cris-*-elf* cris-*-aout* and mmix-*-*.
+
+2003-02-13 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcc.dg/20030213-1.c: New test.
+
+2003-02-11 Mark Mitchell <mark@codesourcery.com>
+
+ * g++.dg/parse/octal1.C: New file.
+
+2003-02-10 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+ * gcc.dg/decl-2.c: New test.
+
+2003-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.dg/20020430-1.c: Fix dg command typos.
+ * gcc.dg/20020503-1.c: Likewise.
+
+2003-02-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/compile/20030206-1.c: New test.
+
+2003-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/execute/20020227-1.x: Update specific XFAIL
+ conditions for SPARC targets.
+
+2003-02-04 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/i386-ssetype-?.c: Compile using -march=k8; fix for register
+ passing convetions.
+
+2003-02-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/7129
+ * testsuite/g++.dg/ext/max.C: New test.
+
+2003-02-03 Richard Earnshaw <rearnsha@arm.com>
+
+ * gcc.c-torture/exectue/ieee/20000320-1.c: The ARM VFP format is
+ 'natural-endian'.
+
+2003-02-01 Loren J. Rittle <ljrittle@acm.org>
+
+ * gcc.dg/struct-ret-libc.c: New test.
+
+2003-01-31 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20030129-1.c: New test.
+
+2003-01-31 Paolo Carlini <pcarlini@unitus.it>
+
+ Further tweaks for Bison-1.875.
+ * g++.dg/lookup/using2.C: Test for "(parse|syntax) error".
+ * g++.dg/other/do1.C: Likewise.
+ * g++.dg/parse/angle-bracket.C: Likewise.
+ * g++.dg/template/typename3.C: Likewise.
+
+2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8849
+ * g++.dg/template/ptrmem4.C: New test.
+
+2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9453
+ * g++.dg/template/friend14.C: New test.
+ * g++.dg/template/friend15.C: New test.
+ * g++.old-deja/g++.other/defarg1.C: Adjust error message.
+
+2003-01-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9437
+ * g++.dg/template/unify4.C: New test.
+
+2003-01-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/abi/dcast1.C: New test.
+
+2003-01-28 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ PR fortran/9258
+ * g77.dg/pr9258.f: New test.
+
+2003-01-27 Jeffrey D. Oldham <oldham@codesourcery.com>
+
+ PR c++/47
+ * g++.old-deja/g++.other/lookup24.C: New test.
+
+2003-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/7227
+ * gcc.dg/uninit-C.c: New test.
+
+2003-01-25 Jan Hubicka <jh@suse.cz>
+
+ PR opt/8492
+ * gcc.c-torture/compile/20030125-1.c
+
+2003-01-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gcc.dg/20030123-1.c: New test.
+
+2003-01-25 Paolo Carlini <pcarlini@unitus.it>
+
+ Tweaks for Bison-1.875. From the NEWS file:
+ "- `parse error' -> `syntax error'
+ Bison now uniformly uses the term `syntax error'"
+ * gcc.dg/cpp/19990413-1.c: Test for "(parse|syntax) error".
+ * gcc.dg/cpp/digraph2.c: Likewise.
+ * gcc.dg/cpp/direct2.c: Likewise.
+ * gcc.dg/cpp/paste4.c: Likewise.
+ * gcc.dg/c90-restrict-1.c: Likewise.
+ * gcc.dg/c99-func-2.c: Likewise.
+ * gcc.dg/noncompile/920721-2.c: Likewise.
+ * gcc.dg/noncompile/930622-2.c: Likewise.
+ * gcc.dg/noncompile/940112-1.c: Likewise.
+ * gcc.dg/noncompile/950921-1.c: Likewise.
+ * gcc.dg/noncompile/951123-1.c: Likewise.
+ * gcc.dg/noncompile/971104-1.c: Likewise.
+ * gcc.dg/noncompile/990416-1.c: Likewise.
+
+2003-01-22 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9328
+ * g++.dg/ext/typeof3.C: New test.
+
+2003-01-20 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcc.c-torture/execute/20030120-1.c: New.
+
+2003-01-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/execute/builtin-constant.x: XFAIL the test.
+
+2003-01-15 Stephane Carrez <stcarrez@nerim.fr>
+
+ * gcc.c-torture/compile/20000804-1.x: Don't execute this test at
+ all for HC11/HC12.
+ * gcc.c-torture/compile/20001205-1.x: Likewise.
+ * gcc.c-torture/compile/20001226-1.x: Likewise.
+ * gcc.c-torture/compile/920520-1.x: Likewise.
+ * gcc.c-torture/compile/961203-1.x: Likewise.
+ * gcc.c-torture/compile/20020604-1.x: Likewise.
+
+2003-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/i386-mmx-3.c: New test.
+
+2003-01-10 Josef Zlomek <zlomekj@suse.cz>
+
+ * gcc.c-torture/compile/20030110-1.c: New test.
+
+2003-01-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.dg/old-style-asm-1.c: New test.
+
+2003-01-09 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030109-1.c: New test.
+
+2003-01-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/9030
+ * g++.dg/template/friend12.C: New test.
+ * g++.dg/template/friend13.C: Likewise.
+ * g++.old-deja/g++.eh/spec6.C: Add missing error message.
+ * g++.old-deja/g++.other/defarg1.C: Change expected error message.
+
+2003-01-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/9165
+ * g++.dg/warn/Wunused-3.C: New test.
+
+2003-01-03 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/template/ntp2.C: New test.
+
+2003-01-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gcc.dg/h8300-stack-1.c: New.
+
+2002-12-31 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/profopt.exp: Change the name of a global variable to avoid
+ possible clashes with other test suites.
+
+2002-12-26 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/warn/inline1.C: New test.
+ * g++.old-deja/g++.brendan/crash64.C: Remove spurious inlines.
+ * g++.old-deja/g++.jason/synth10.C: Likewise.
+ * g++.old-deja/g++.mike/net31.C: Likewise.
+ * g++.old-deja/g++.mike/p8786.C: Likewise.
+
+ * g++.dg/template/friend10.C: New test.
+ * g++.dg/template/conv5.C: New test.
+
+2002-12-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/lookup/scoped3.C: New test.
+
+ * g++.dg/lookup/decl1.C: New test.
+ * g++.dg/lookup/decl2.C: New test.
+
+2002-12-24 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * g++.dg/init/new1.C, g++.dg/template/alignof1.C,
+ gcc.c-torture/compile/20021015-1.c,
+ gcc.c-torture/compile/20021015-2.c,
+ gcc.c-torture/compile/20021123-1.c,
+ gcc.c-torture/compile/20021123-2.c,
+ gcc.c-torture/compile/20021123-3.c,
+ gcc.c-torture/compile/20021123-4.c,
+ gcc.c-torture/execute/20021024-1.c: Add tests previously added
+ only to 3.1 or 3.2 branch.
+
+2002-12-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/parse/conv_op1.C: New test.
+
+2002-12-19 Devang Patel <dpatel@apple.com>
+
+ * gcc.dg/darwin-ld-5.c: Rewrite test to test -dynamic.
+
+2002-12-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20021219-1.c: New test.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8099
+ * g++.dg/template/friend9.C: New test.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/3663
+ * g++.dg/template/access7.C: New test.
+
+2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/8442
+ * g++.dg/template/type2.C: New test.
+ * g++.dg/template/ttp3.C: Change expected error message.
+
2002-12-12 Devang Patel <dpatel@apple.com>
* gcc.dg/darwin-ld-1.c: New test.
* gcc.dg/darwin-ld-2.c: New test.
* gcc.dg/darwin-ld-3.c: New test.
* gcc.dg/darwin-ld-4.c: New test.
* gcc.dg/darwin-ld-5.c: New test.
-
+
2002-12-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/compile/20021212-1.c: New test.
@@ -82,7 +2122,7 @@
PR c++/8727
* g++.dg/inherit/typeinfo1.C: New test.
-
+
PR c++/8663
* g++.dg/inherit/typedef1.C: New test.
@@ -114,7 +2154,7 @@
* gcc.dg/bitfld-6.c: New test.
-Wed Nov 27 14:37:34 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-27 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/execute/20021127.[cx]: New test.
@@ -231,7 +2271,7 @@ Wed Nov 27 14:37:34 CET 2002 Jan Hubicka <jh@suse.cz>
PR c/8439
* gcc.dg/20021110.c: New test.
-
+
2002-11-10 Mark Mitchell <mark@codesourcery.com>
* g++.dg/abi/vthunk3.C: Run only on x86.
@@ -254,7 +2294,7 @@ Wed Nov 27 14:37:34 CET 2002 Jan Hubicka <jh@suse.cz>
PR c++/8389
* g++.dg/template/access6.C: New test.
-Fri Nov 8 10:52:15 CET 2002 Jan Hubicka <jh@suse.cz>
+2002-11-08 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/compile/20021108-1.c: New testcase for x86-64 failure.
@@ -553,7 +2593,7 @@ Fri Nov 8 10:52:15 CET 2002 Jan Hubicka <jh@suse.cz>
PR c++/7584
* g++.dg/inherit/using3.C: New test.
-Thu Oct 17 19:12:58 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-17 Jan Hubicka <jh@suse.cz>
* gcc.dg/20021017-2.c: New test.
@@ -609,11 +2649,11 @@ Thu Oct 17 19:12:58 CEST 2002 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/execute/20021015-1.c: New test.
-Tue Oct 15 14:22:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-10-15 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/weak/typeof-2.c: For SH targets, return before baz3 test.
-Mon Oct 14 20:37:51 CEST 2002 Jan Hubicka <jh@suse.cz>
+2002-10-14 Jan Hubicka <jh@suse.cz>
* gcc.dg/i386-ssetype-[1-5].c: New tests.
@@ -654,7 +2694,7 @@ Mon Oct 14 20:37:51 CEST 2002 Jan Hubicka <jh@suse.cz>
* gcc.dg/cpp/assembler.S: Don't use -ansi.
-Fri Oct 11 10:56:49 2002 Richard Shann <richard.shann@superh.com>
+2002-10-11 Richard Shann <richard.shann@superh.com>
* gcc.c-torture/compile/simd-5.c: New test.
@@ -884,7 +2924,7 @@ Fri Oct 11 10:56:49 2002 Richard Shann <richard.shann@superh.com>
* g++.old-deja/g++.other/crash32.C: Mark ICE.
-Tue Sep 17 13:59:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-17 Nicola Pero <n.pero@mi.flashnet.it>
* objc.dg/comp-types-1.m: New test.
* objc.dg/comp-types-2.m: New test.
@@ -1037,7 +3077,7 @@ Tue Sep 17 13:59:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.dg/cpp/_Pragma4.c: Fix typo.
-Fri Sep 6 16:39:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-06 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/formal_protocol-6.x: Removed. This testcase is now
expected to pass.
@@ -1067,7 +3107,7 @@ Fri Sep 6 16:39:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.dg/weak-8.c: Ditto.
* gcc.dg/weak-9.c: Ditto.
-Thu Sep 5 00:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-09-05 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/loop-14.c: New test.
@@ -1081,11 +3121,11 @@ Thu Sep 5 00:34:33 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/cpp/_Pragma4.c: New test.
-Tue Sep 3 11:04:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-03 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/nil_method-1.m: New testcase.
-Sun Sep 1 12:47:39 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-09-01 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/class-tests-1.h (test_class_with_superclass): Call
[Object class], not [Object initialize].
@@ -1101,7 +3141,7 @@ Sun Sep 1 12:47:39 2002 Nicola Pero <n.pero@mi.flashnet.it>
* testsuite/g++.dg/abi/bitfield5.C: New test.
* testsuite/g++.dg/abi/vbase10.C: Likewise.
-Tue Aug 27 22:23:22 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-08-27 Nicola Pero <n.pero@mi.flashnet.it>
* objc.dg/undeclared-selector.m: New test.
@@ -1316,7 +3356,7 @@ Tue Aug 27 22:23:22 2002 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.c-torture/execute/va-arg-15.x, va-arg-16.x, va-arg-17.x:
Delete.
-Tue Jul 23 21:02:43 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-23 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/compile/simd-4.c: New test.
@@ -1402,7 +3442,7 @@ Tue Jul 23 21:02:43 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/compile/20020710-1.c: New test.
-Thu Jul 11 15:39:21 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-11 J"orn Rennecke <joern.rennecke@superh.com>
Andrew Pinski <pinskia@physics.uc.edu>
gcc.c-torture/compile/simd-2.c: New testcase.
@@ -1465,7 +3505,7 @@ Thu Jul 11 15:39:21 2002 J"orn Rennecke <joern.rennecke@superh.com>
* g++.dg/debug/debug6.C: New test.
* g++.dg/debug/debug7.C: New test.
-Thu Jul 4 07:36:48 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-04 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/compile/simd-3.c: New test.
@@ -1480,7 +3520,7 @@ Thu Jul 4 07:36:48 2002 J"orn Rennecke <joern.rennecke@superh.com>
* g++.dg/init/array4.C: New test.
* g++.dg/init/array5.C: New test.
-Wed Jul 3 10:25:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-03 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/simd-1.c (main): Also test &, |, ^, ~.
* gcc.c-torture/execute/simd-2.c (main): Likewise.
@@ -1549,7 +3589,7 @@ Wed Jul 3 10:25:41 2002 J"orn Rennecke <joern.rennecke@superh.com>
* lib/objc-torture.exp (objc-torture-compile): ...instead of here
(objc-torture-execute): or here.
-Mon Jul 1 12:51:05 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-07-01 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/arith-rand-ll.c: New test.
@@ -1571,7 +3611,7 @@ Mon Jul 1 12:51:05 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/string-opt-8.c (strncmp): Fix typo in
return type.
-Thu Jun 27 15:23:21 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-06-27 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/simd-2.c (i, j): Add initializer elements to
avoid division by zero.
@@ -1580,7 +3620,7 @@ Thu Jun 27 15:23:21 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/Wunknownprag.c: New tests.
-Tue Jun 25 21:50:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-06-25 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/simd-2.c: New test.
@@ -1847,7 +3887,7 @@ Tue Jun 25 21:50:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc/testsuite/gcc.dg/weak-8.c: New test.
-Thu May 23 11:09:26 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-05-23 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/weak-2.c: Allow optional leading underscore
in scan-assembler symbol name.
@@ -1884,11 +3924,11 @@ Thu May 23 11:09:26 2002 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/tls/tls.exp, gcc.dg/tls/trivial.c, gcc.dg/tls/diag-1.c,
gcc.dg/tls/diag-2.c, gcc.dg/tls/init-1.c: New directory and files.
-Tue May 21 14:25:32 2002 Brian R. Gaeke <brg@dgate.ORG>
+2002-05-21 Brian R. Gaeke <brg@dgate.ORG>
* g++.dg/other/copy2.C: New test.
-Mon May 20 10:51:35 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-05-20 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.c-torture/execute/memcpy-2.c (SEQUENCE_LENGTH): Define.
(MAX_COPY): Bump up to 10 times sizeof (long long).
@@ -2124,7 +4164,7 @@ Mon May 20 10:51:35 2002 J"orn Rennecke <joern.rennecke@superh.com>
PR c++/6438.
* g++.dg/parse/stmtexpr2.C: New test.
-Wed Apr 24 21:38:36 2002 J"orn Rennecke <joern.rennecke@superh.com>
+2002-04-24 J"orn Rennecke <joern.rennecke@superh.com>
* gcc.dg/20020312-2.c: Add SH target.
@@ -2465,7 +4505,7 @@ Wed Apr 24 21:38:36 2002 J"orn Rennecke <joern.rennecke@superh.com>
* g++.old-deja/g++.law/bit-fields2.C: Skip on mmix-knuth-mmixware.
-Thu Mar 28 16:38:09 2002 Jeffrey A Law (law@redhat.com)
+2002-03-28 Jeffrey A Law (law@redhat.com)
* gcc.c-torture/execute/20020328-1.c: New test.
@@ -2696,7 +4736,7 @@ Thu Mar 28 16:38:09 2002 Jeffrey A Law (law@redhat.com)
* gcc.dg/20020122-4.c: Ditto.
* gcc.dg/inline-2.c: Ditto.
-Thu Mar 14 14:28:38 2002 Jeffrey A Law (law@cygnus.com)
+2002-03-14 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20020314-1.c: New test.
@@ -2777,7 +4817,7 @@ Thu Mar 14 14:28:38 2002 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/va-arg-22.c: New test.
-Sat Mar 9 07:47:50 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+2002-03-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/compile/20020309-1.c: New test.
@@ -2785,7 +4825,7 @@ Sat Mar 9 07:47:50 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/execute/20020307-2.c: New test.
-Thu Mar 7 10:05:31 2002 Jeffrey A Law (law@redhat.com)
+2002-03-07 Jeffrey A Law (law@redhat.com)
* g77.f-torture/compile/20020307-1.f: New test.
@@ -3484,7 +5524,7 @@ Thu Mar 7 10:05:31 2002 Jeffrey A Law (law@redhat.com)
* gcc.dg/i386-mmx-1.c, gcc.dg/i386-mmx-2.c: New.
* gcc.dg/i386-sse-1.c, gcc.dg/i386-sse-2.c, gcc.dg/i386-sse-1.c: New.
-Fri Jan 11 12:13:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+2002-01-11 Nicola Pero <n.pero@mi.flashnet.it>
* objc.dg/special/unclaimed-category-1.m: Include objc/objc-api.h.
@@ -3507,7 +5547,7 @@ Fri Jan 11 12:13:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.c-torture/execute/20020108-1.c: Rewrite to choose the proper
type in which to perform the operation for each size.
-Wed Jan 9 16:48:33 2002 Alan Matsuoka (alanm@redhat.com)
+2002-01-09 Alan Matsuoka (alanm@redhat.com)
* gcc.c-torture/compile/20020109-2.c: New test.
@@ -3533,7 +5573,7 @@ Wed Jan 9 16:48:33 2002 Alan Matsuoka (alanm@redhat.com)
* gcc.dg/20010822-1.c: New test.
* gcc.dg/20011107-1.c: New test.
-Wed Jan 9 14:03:20 2002 Jeffrey A Law (law@redhat.com)
+2002-01-09 Jeffrey A Law (law@redhat.com)
* gcc.dg/asm-fs-1.c: Disable warnings when compiling.
@@ -3799,11 +5839,11 @@ Wed Jan 9 14:03:20 2002 Jeffrey A Law (law@redhat.com)
* g++.dg/other/error1.C: New test.
-Mon Dec 17 14:31:42 2001 Jeffrey A Law (law@redhat.com)
+2001-12-17 Jeffrey A Law (law@redhat.com)
* gcc.c-torture/execute/20011217-1.c: New test.
-Mon Dec 17 16:54:56 2001 Nicola Pero <nicola@brainstorm.co.uk>
+2001-12-17 Nicola Pero <nicola@brainstorm.co.uk>
* objc.dg/special/: New directory.
* objc.dg/special/special.exp: New file.
@@ -3837,7 +5877,7 @@ Mon Dec 17 16:54:56 2001 Nicola Pero <nicola@brainstorm.co.uk>
std::__malloc_alloc_template<0> and
std::__default_alloc_template<false, 0>.
-Thu Dec 13 10:35:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
+2001-12-13 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/bf-21.m: New test.
* objc/execute/enumeration-1.m: New test.
@@ -3916,7 +5956,7 @@ Thu Dec 13 10:35:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.dg/sparc-ret.c: New file, test return corruption bug for
ultrasparc.
-Fri Dec 7 06:29:03 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+2001-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* g++-old.deja/g++.robertl/eb101.C: Deleted.
@@ -4003,7 +6043,7 @@ Fri Dec 7 06:29:03 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* g++.old-deja/g++.pt/memtemp100.C: Remove non-standard
constructs.
-Wed Nov 28 15:05:54 2001 Jeffrey A Law (law@cygnus.com)
+2001-11-28 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20011128-1.c: New test.
@@ -4027,7 +6067,7 @@ Wed Nov 28 15:05:54 2001 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20011121-1.c: New test.
-Fri Nov 23 15:55:44 2001 Jeffrey A Law (law@cygnus.com)
+2001-11-23 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/ieee/20011123-1.c: New test.
@@ -4224,7 +6264,7 @@ Fri Nov 23 15:55:44 2001 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20011029-1.c: New test.
-Mon Oct 29 21:19:53 2001 Nicola Pero <n.pero@mi.flashnet.it>
+2001-10-29 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/class_self-1.m: New test.
* objc/execute/class_self-2.m: New test.
@@ -4799,7 +6839,7 @@ Mon Oct 29 21:19:53 2001 Nicola Pero <n.pero@mi.flashnet.it>
* g77.f-torture/execute/intrinsic-vax-cd.f: New test
* g77.f-torture/execute/intrinsic-f2c-z.f: New test
-Mon Jul 23 10:14:17 2001 Jeffrey A Law (law@cygnus.com)
+2001-07-23 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20010723-1.c: New test.
@@ -4863,7 +6903,7 @@ Mon Jul 23 10:14:17 2001 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20001229-1.c: Include <sys/proc.h> for
UAC_SIGBUS, UAC_NOPRINT definitions.
-Mon Jul 16 12:21:56 2001 Nicola Pero <n.pero@mi.flashnet.it>
+2001-07-16 Nicola Pero <n.pero@mi.flashnet.it>
* objc/execute/object_is_class.m: New test.
* objc/execute/object_is_meta_class.m: New test.
@@ -4915,7 +6955,7 @@ Mon Jul 16 12:21:56 2001 Nicola Pero <n.pero@mi.flashnet.it>
* gcc.c-torture/compile/20010701-1.c,
g++.old-deja/g++.ext/attrib6.C: New tests.
-Fri Jul 6 09:31:43 2001 Jeffrey A Law (law@cygnus.com)
+2001-07-06 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20010706-1.c: New test.
@@ -5229,7 +7269,7 @@ Wed May 23 2001 Jeffrey D. Oldham <oldham@codesourcery.com>
* gcc.dg/complete-port.c: New (revised version of libgcc1-test.c)
-Wed May 16 20:33:57 CEST 2001 Jan Hubicka <jh@suse.cz>
+2001-05-16 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/compile/20010516-1.c: New test.
@@ -5376,7 +7416,7 @@ Wed May 16 20:33:57 CEST 2001 Jan Hubicka <jh@suse.cz>
* g77.f-torture/compile/20000629-1.x: Remove - error
has been fixed.
-Thu Apr 26 11:15:12 2001 Jeffrey A Law (law@cygnus.com)
+2001-04-26 Jeffrey A Law (law@cygnus.com)
* g++.dg/special/initp1.C: Moved here from g++.old-deja/g++.ext.
Tweak slightly to work with g++.dg framework.
@@ -5584,7 +7624,7 @@ Thu Apr 26 11:15:12 2001 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.brendan/crash15.C (main): Same.
* g++.old-deja/g++.brendan/copy9.C: Same.
-Fri Apr 6 15:36:15 2001 J"orn Rennecke <amylaar@redhat.com>
+2001-04-06 J"orn Rennecke <amylaar@redhat.com>
* gcc.c-torture/execute/20001203-2.c (memset):
Count argument is of type __SIZE_TYPE__.
@@ -5827,7 +7867,7 @@ Fri Apr 6 15:36:15 2001 J"orn Rennecke <amylaar@redhat.com>
* g++.old-deja/g++.other/inline20.C: New test.
-Wed Feb 21 12:38:22 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
+2001-02-21 Ovidiu Predescu <ovidiu@cup.hp.com>
* objc/execute/nested-1.m: Added (contributed by Nicola Pero).
@@ -5859,11 +7899,11 @@ Wed Feb 21 12:38:22 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
* gcc.c-torture/execute/longlong.c: New test.
-Wed Feb 14 21:41:17 2001 J"orn Rennecke <amylaar@redhat.com>
+2001-02-14 J"orn Rennecke <amylaar@redhat.com>
* g++.old-deja/g++.brendan/new2.C (main): Use sizeof.
-Wed Feb 14 21:31:25 2001 J"orn Rennecke <amylaar@redhat.com>
+2001-02-14 J"orn Rennecke <amylaar@redhat.com>
* gcc.c-torture/execute/920302-1.c (execute):
Change argument type to short.
@@ -5953,7 +7993,7 @@ Wed Feb 14 21:31:25 2001 J"orn Rennecke <amylaar@redhat.com>
* g++.dg/stdbool-if.C: New test.
-Wed Feb 7 09:54:47 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
+2001-02-07 Ovidiu Predescu <ovidiu@cup.hp.com>
* objc/execute/fdecl.m: Added main().
@@ -5965,7 +8005,7 @@ Wed Feb 7 09:54:47 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
* gcc.dg/cpp/avoidpaste1.c: Update.
-Tue Feb 5 8:53:33 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
+2001-02-05 Ovidiu Predescu <ovidiu@cup.hp.com>
* objc/execute/bycopy-1.m, bycopy-2.m: Added new tests from Nicola
Pero <nicola@brainstorm.co.uk>.
@@ -6016,7 +8056,7 @@ Tue Feb 5 8:53:33 2001 Ovidiu Predescu <ovidiu@cup.hp.com>
* gcc.dg/c99-float-1.c: Back out "XFAIL FLT_EVAL_METHOD and
DECIMAL_DIG cases for Irix."
-Wed Jan 31 12:23:32 2001 J"orn Rennecke <amylaar@redhat.com>
+2001-01-31 J"orn Rennecke <amylaar@redhat.com>
* gcc.c-torture/execute/920302-1.c: Cast 0 to pointer.
@@ -6504,7 +8544,7 @@ Wed Jan 31 12:23:32 2001 J"orn Rennecke <amylaar@redhat.com>
* gcc.c-torture/compile/20001222-1.x: Remove.
-Thu Jan 4 13:54:11 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+2001-01-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/execute/built-in-setjmp.c: New.
@@ -6608,11 +8648,11 @@ Thu Jan 4 13:54:11 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/compile/20001222-1.c: New test.
* gcc.c-torture/compile/20001222-1.x: Xfail.
-Fri Dec 22 06:45:03 2000 Alexandre Oliva <aoliva@redhat.com>
+2000-12-22 Alexandre Oliva <aoliva@redhat.com>
* gcc.c-torture/execute/comp-goto-2.c: New test.
-Thu Dec 21 22:43:03 2000 J"orn Rennecke <amylaar@redhat.com>
+2000-12-21 J"orn Rennecke <amylaar@redhat.com>
* gcc.c-torture/execute/comp-goto-1.c (uint32, sint32):
Use long types if __INT_MAX__ is 32767.
@@ -7327,7 +9367,7 @@ Thu Dec 21 22:43:03 2000 J"orn Rennecke <amylaar@redhat.com>
* gcc.dg/cpp/include2.c: New tests.
-Fri Nov 3 13:32:14 2000 Mark P Mitchell <mark@codesourcery.com>
+2000-11-03 Mark P Mitchell <mark@codesourcery.com>
* lib/g++.exp (g++_set_ld_library_path): New function.
Use it to set LD_LIBRARYN32_PATH and LD_LIBRARY64_PATH.
@@ -7706,7 +9746,7 @@ Fri 15-Sep-2000 06:50:11 BST Neil Booth <NeilB@earthling.net>
* gcc.dg/cpp/paste10.c: Testcase for PASTE_LEFT buglet.
-Thu Sep 14 16:48:49 2000 Jeffrey A Law (law@cygnus.com)
+2000-09-14 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000914-1.c: New test.
@@ -7719,7 +9759,7 @@ Thu Sep 14 16:48:49 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/widechar-2.c: New test for wchar_t
constant by Ulrich Drepper <drepper@redhat.com>.
-Tue Sep 12 18:32:07 2000 J"orn Rennecke <amylaar@redhat.co.uk>
+2000-09-12 J"orn Rennecke <amylaar@redhat.co.uk>
* gcc.c-torture/compile/981006-1.x: No -fpic for sh-coff / sh-hms.
@@ -7955,7 +9995,7 @@ Tue Sep 12 18:32:07 2000 J"orn Rennecke <amylaar@redhat.co.uk>
* gcc.dg/20000724-1.c: New test.
* gcc.dg/20000807-1.c: New test.
-Sun Aug 20 01:41:35 MSD 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
+2000-08-20 Dennis Chernoivanov <cdi@sparc.spb.su>
* gcc.dg/cpp/pragma-1.c: New test.
* gcc.dg/cpp/pragma-2.c: New test.
@@ -7965,7 +10005,7 @@ Sun Aug 20 01:41:35 MSD 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
* gcc.dg/cpp/lexstrng.c: Don't include string.h.
* gcc.dg/cpp/paste2.c: Don't include string.h. Prototype strcmp.
-Fri Aug 18 16:57:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+2000-08-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/compile/20000818-1.c: New test.
@@ -8076,7 +10116,7 @@ Fri Aug 18 16:57:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.dg/c90-printf-2.c, gcc.dg/c99-printf-2.c: New tests.
-Sun Aug 6 11:41:51 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
+2000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
* lib/objc.exp (objc_target_compile): Set the ld_library_path so
that running programs linked against the shared version of libobjc
@@ -8113,7 +10153,7 @@ Sun Aug 6 11:41:51 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
* gcc.dg/cpp/20000625-2.c: Expect warning on line 8, not 9.
* gcc.dg/compare2.c: No longer expected to fail.
-Fri Aug 4 23:00:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
+2000-08-04 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/20000804-1.c: New test.
@@ -8125,7 +10165,7 @@ Fri Aug 4 23:00:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.dg/cpp/20000625-2.c: Don't expect a warning on line 4.
-Thu Aug 3 01:46:33 2000 Jeffrey A Law (law@cygnus.com)
+2000-08-03 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000803-1.c: New test.
@@ -8149,7 +10189,7 @@ Thu Aug 3 01:46:33 2000 Jeffrey A Law (law@cygnus.com)
* gcc.dg/cpp/macsyntx.c: Fix error regexp.
-Mon Jul 31 21:14:49 2000 Jeffrey A Law (law@cygnus.com)
+2000-07-31 Jeffrey A Law (law@cygnus.com)
* gcc-c-torture/execute/20000731-2.c: New test.
@@ -8187,7 +10227,7 @@ Mon Jul 31 21:14:49 2000 Jeffrey A Law (law@cygnus.com)
* gcc.dg/c90-impl-int-2.c, gcc.dg/c99-impl-int-2.c: New tests.
-Wed Jul 26 19:41:51 2000 Hans-Peter Nilsson <hp@axis.com>
+2000-07-26 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-tortuer/execute/20000726-1.c: New test.
@@ -8293,7 +10333,7 @@ Wed Jul 26 19:41:51 2000 Hans-Peter Nilsson <hp@axis.com>
* gcc.dg/cpp/cmdlne-dM.c: New test.
* gcc.dg/cpp/cmdlne-dD.c: New test.
-Mon Jul 17 03:13:12 2000 Jeffrey A Law (law@cygnus.com)
+2000-07-17 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000717-3.c: New test.
@@ -8321,7 +10361,7 @@ Mon Jul 17 03:13:12 2000 Jeffrey A Law (law@cygnus.com)
* gcc.dg/c99-impl-int-1.c, gcc.dg/c99-longlong-1.c,
* gcc.dg/c99-restrict-1.c, gcc.dg/c99-return-1.c: New tests.
-Mon Jul 17 00:41:57 2000 Greg McGary <greg@mcgary.org>
+2000-07-17 Greg McGary <greg@mcgary.org>
* gcc.c-torture/execute/20000717-1.c: New test.
* gcc.c-torture/execute/20000717-1.x: Expected to fail.
@@ -8536,7 +10576,7 @@ Mon Jul 17 00:41:57 2000 Greg McGary <greg@mcgary.org>
* gcc.dg/980217-1.c: Declare abort.
* gcc.dg/cpp/20000628-1a.h: Use a declaration instead of an asm.
-Thu Jun 29 09:42:40 2000 Jeffrey A Law (law@cygnus.com)
+2000-06-29 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/compile/20000629-1.f: New test.
* g77.f-torture/compile/20000629-1.x: Expected to fail.
@@ -8805,11 +10845,11 @@ Thu Jun 29 09:42:40 2000 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/old-deja.exp: Add -Wno-long-long.
-Fri Jun 9 22:46:34 2000 Jeffrey A Law (law@cygnus.com)
+2000-06-09 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000609-1.c: New test.
-Fri Jun 9 21:54:28 2000 Clinton Popetz <cpopetz@cygnus.com>
+2000-06-09 Clinton Popetz <cpopetz@cygnus.com>
* gcc.dg/20000609-1.c: New test.
@@ -8978,7 +11018,7 @@ Fri Jun 9 21:54:28 2000 Clinton Popetz <cpopetz@cygnus.com>
* gcc.c-torture/execute/conversion.c: Ditto.
* gcc.c-torture/execute/cvt-1.c: Ditto.
-Thu May 18 16:03:29 2000 Jeffrey A Law (law@cygnus.com)
+2000-05-18 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000518-1.c: New test.
@@ -8986,7 +11026,7 @@ Thu May 18 16:03:29 2000 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/compile/200005018.f: New test.
-Wed May 17 18:30:10 2000 Jeffrey A Law (law@cygnus.com)
+2000-05-17 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000517-1.c: New test.
@@ -9003,7 +11043,7 @@ Wed May 17 18:30:10 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990208-1.c (main): Don't pass
constants through to doit's conditional.
-Thu May 11 19:02:43 2000 Jeffrey A Law (law@cygnus.com)
+2000-05-11 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000511-1.c: New test.
* g77.f-torture/compile/20000511-1.f: New test.
@@ -9056,7 +11096,7 @@ Thu May 11 19:02:43 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000504-1.c: New test. Derived from
OpenSSL by Jason R Thorpe.
-Wed May 3 13:02:10 2000 Jim Wilson <wilson@cygnus.com>
+2000-05-03 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/20000503-1.c: New test for extract_muldiv bug.
@@ -9083,7 +11123,7 @@ Thu Apr 27 15:58:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
* gcc.c-torture/execute/va-arg-20.c: New test.
-Sun Apr 23 14:41:33 2000 Jeffrey A Law (law@cygnus.com)
+2000-04-23 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000422-1.c: New test.
@@ -9092,7 +11132,7 @@ Sun Apr 23 14:41:33 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000420-2.c: New test for stack misalignment
when optimizing, but without sibling-call optimizations (-O1).
-Thu Apr 20 11:57:03 2000 Jeffrey A Law (law@cygnus.com)
+2000-04-20 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000420-1.c: New test.
@@ -9101,7 +11141,7 @@ Thu Apr 20 11:57:03 2000 Jeffrey A Law (law@cygnus.com)
* g++.abi/ptrflags.C: New test.
* g++.eh/catchptr1.C: Test incomplete pointer chains.
-Wed Apr 19 09:16:32 2000 Catherine Moore <clm@cygnus.com>
+2000-04-19 Catherine Moore <clm@cygnus.com>
* gcc.c-torture/execute/921017-1.c: Check for NO_TRAMPOLINES.
@@ -9114,11 +11154,11 @@ Wed Apr 19 09:16:32 2000 Catherine Moore <clm@cygnus.com>
* gcc.dg/20000419-1.c: New test.
-Wed Apr 12 22:54:02 2000 Hans-Peter Nilsson <hp@axis.com>
+2000-04-12 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/20000412-6.c: New test.
-Wed Apr 12 10:25:08 2000 Jeffrey A Law (law@cygnus.com)
+2000-04-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000412-5.c: New test.
* g77.f-torture/compile/20000412-1.f: New test.
@@ -9179,7 +11219,7 @@ Wed Apr 12 10:25:08 2000 Jeffrey A Law (law@cygnus.com)
cpp-shift.c, cpp-shortcircuit.c, cpp-unary.c: Add FSF
copyright.
-Wed Apr 5 22:51:36 2000 Hans-Peter Nilsson <hp@axis.com>
+2000-04-05 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/960327-1.c (f): Add a letter to s[] to
avoid stack-frame overwrite.
@@ -9206,12 +11246,12 @@ Wed Apr 5 22:51:36 2000 Hans-Peter Nilsson <hp@axis.com>
* gcc.dg/cpp-redef-2.c, gcc.dg/cpp-tradwarn1.c,
gcc.dg/cpp-unc.c: Add -fno-show-column to compiler options.
-Mon Apr 3 02:35:34 2000 Jeffrey A Law (law@cygnus.com)
+2000-04-03 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000403-2.c: New test.
* gcc.c-torture/compile/20000403-1.c: New test.
-Mon Apr 3 16:53:52 2000 Hans-Peter Nilsson <hp@axis.com>
+2000-04-03 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/20000403-1.c: New test.
@@ -9219,7 +11259,7 @@ Mon Apr 3 16:53:52 2000 Hans-Peter Nilsson <hp@axis.com>
* gcc.c-torture/execute/20000402-1.c: New test.
-Mon Apr 3 14:10:34 2000 Donald Lindsay <dlindsay@cygnus.com>
+2000-04-03 Donald Lindsay <dlindsay@cygnus.com>
* gcc.c-torture/execute/va-arg-15.c: New test.
* gcc.c-torture/execute/va-arg-16.c: New test.
@@ -9247,7 +11287,7 @@ Mon Apr 3 14:10:34 2000 Donald Lindsay <dlindsay@cygnus.com>
* gcc.dg/cpp-shortcircuit.c New tests.
* gcc.dg/cpp-unary.c New tests.
-Wed Mar 29 13:44:23 2000 Jeffrey A Law (law@cygnus.com)
+2000-03-29 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000329-1.c: New test.
@@ -9281,7 +11321,7 @@ Wed Mar 29 13:44:23 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000319-1.c: New test.
-Tue Mar 14 08:58:37 2000 Jeffrey A Law (law@cygnus.com)
+2000-03-14 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000314-3.c: New test.
* gcc.c-torture/execute/20000314-2.c: New test.
@@ -9293,7 +11333,7 @@ Tue Mar 14 08:58:37 2000 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.warn/inline.C: New test.
-Fri Mar 10 01:15:19 2000 Hans-Peter Nilsson <hp@bitrange.com>
+2000-03-10 Hans-Peter Nilsson <hp@bitrange.com>
* gcc.c-torture/execute/divconst-2.c: Rewrite to check for
standards-compliant result rather than specific constants.
@@ -9326,7 +11366,7 @@ Fri Mar 10 01:15:19 2000 Hans-Peter Nilsson <hp@bitrange.com>
* g++.old-deja/g++.warn/impint2.C: New test.
-Sun Mar 5 23:25:12 2000 Hans-Peter Nilsson <hp@bitrange.com>
+2000-03-05 Hans-Peter Nilsson <hp@bitrange.com>
* gcc.c-torture/execute/20000224-1.c (main): Expected return-value
is 1, not zero.
@@ -9355,7 +11395,7 @@ Sun Mar 5 23:25:12 2000 Hans-Peter Nilsson <hp@bitrange.com>
* g++.old-deja/g++.pt/unify7.C: New test.
-Sat Feb 26 19:46:09 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+2000-02-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* g++.old-deja/g++.ext/attrib5.C: XFAIL on Alpha since no link alias.
* g++.old-deja/g++.pt/static3.C: Generalize system name for Alpha.
@@ -9369,7 +11409,7 @@ Sat Feb 26 19:46:09 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* gcc.c-torture/compile/cpp-2.c: New test.
* gcc.c-torture/compile/cpp-1.c: New test.
-Fri Feb 25 21:44:49 2000 Jeffrey A Law (law@cygnus.com)
+2000-02-25 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000225-1.c: New test.
@@ -9389,7 +11429,7 @@ Fri Feb 25 21:44:49 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/va-arg-13.c: New test.
-Wed Feb 23 14:16:06 2000 Donald Lindsay <dlindsay@cygnus.com>
+2000-02-23 Donald Lindsay <dlindsay@cygnus.com>
* gcc.c-torture/execute/va-arg-12.c: New test.
@@ -9414,15 +11454,15 @@ Wed Feb 23 14:16:06 2000 Donald Lindsay <dlindsay@cygnus.com>
* lib/g++.exp (g++_init): Add -fmessage-length=0 to
ALWAYS_CXXFLAGS.
-Fri Feb 11 12:35:40 2000 Robert Lipe <robertl@sco.com>
+2000-02-11 Robert Lipe <robertl@sco.com>
* gcc.c-torture/compile/20000211-3.c: New test.
-Fri Feb 11 12:35:40 2000 Martin Buchholz <martin@xemacs.org>
+2000-02-11 Martin Buchholz <martin@xemacs.org>
* gcc.c-torture/compile/20000211-2.c: New test.
-Fri Feb 11 12:35:40 2000 Jeffrey A Law (law@cygnus.com)
+2000-02-11 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000211-1.c: New test.
@@ -9477,16 +11517,16 @@ Fri Feb 11 12:35:40 2000 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/ieee/fp-cmp-4.c: New.
-Thu Jan 20 12:34:48 2000 Jeffrey A Law (law@cygnus.com)
+2000-01-20 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000120-2.c: New test.
* gcc.c-torture/execute/20000120-1.c: New test.
-Thu Jan 13 02:29:32 2000 Jeffrey A Law (law@cygnus.com)
+2000-01-13 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000113-1.c: New test.
-Wed Jan 12 20:26:58 2000 Jeffrey A Law (law@cygnus.com)
+2000-01-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/20000112-1.c: New test.
@@ -9494,7 +11534,7 @@ Wed Jan 12 20:26:58 2000 Jeffrey A Law (law@cygnus.com)
* gcc.dg/20000111-1.c: New test.
-Mon Jan 10 18:12:49 2000 Jeffrey A Law (law@cygnus.com)
+2000-01-10 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990628-1.c: Tweak to work on targets
with 16 bit integers.
@@ -9511,7 +11551,7 @@ Mon Jan 10 18:12:49 2000 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.other/cast4.C: New test.
-Wed Jan 5 00:26:20 2000 Jeffrey A Law (law@cygnus.com)
+2000-01-05 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/20000105-2.c: New test.
* gcc.c-torture/compile/20000105-1.c: New test.
@@ -9602,13 +11642,13 @@ Wed Jan 5 00:26:20 2000 Jeffrey A Law (law@cygnus.com)
* gcc.dg/991230-1.c: New test.
-Wed Dec 29 23:48:49 1999 Jeffrey A Law (law@cygnus.com)
+1999-12-29 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/991229-3.c: New test.
* gcc.c-torture/compile/991229-2.c: New test.
* gcc.c-torture/compile/991229-1.c: New test.
-Wed Dec 29 20:54:46 1999 Greg McGary <gkm@eng.ascend.com>
+1999-12-29 Greg McGary <gkm@eng.ascend.com>
* gcc.c-torture/compile/labels-2.c: New test.
@@ -9656,17 +11696,17 @@ Wed Dec 29 20:54:46 1999 Greg McGary <gkm@eng.ascend.com>
* gcc.dg/991214-1.c: New test.
-Mon Dec 13 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
+1999-12-13 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/991213-3.c: New test.
* gcc.c-torture/compile/991213-2.c: New test.
* gcc.c-torture/compile/991213-1.c: New test.
-Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+1999-12-10 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.dg/991209-1.c: New test.
-Wed Dec 8 23:44:08 1999 Nathan Sidwell <nathan@acm.org>
+1999-12-08 Nathan Sidwell <nathan@acm.org>
* gcc.c-torture/compile/991208-1.c: New test.
@@ -9714,7 +11754,7 @@ Wed Dec 8 23:44:08 1999 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.ext/pretty3.C: New test.
* g++.old-deja/g++.other/debug6.C: New test.
-Wed Oct 20 16:18:23 1999 Jim Wilson <wilson@cygnus.com>
+1999-10-20 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/noncompile/noncompile.exp: For 940510-1.c, change
compiler_output to look for one error message instead of two.
@@ -9743,7 +11783,7 @@ Wed Oct 20 16:18:23 1999 Jim Wilson <wilson@cygnus.com>
host is equipped with driver.h and driver.o so it can actually
compile and run the tests.
-Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
+1999-10-08 Bernd Schmidt <bernds@cygnus.co.uk>
* gcc.c-torture/compile/991008-1.c: New test.
@@ -9781,35 +11821,35 @@ Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* gcc.dg/array-1.c: New test.
-Sat Oct 30 22:23:46 1999 Stephen L Moshier <moshier@mediaone.net>
+1999-10-30 Stephen L Moshier <moshier@mediaone.net>
* gcc.c-torture/execute/991030-1.c: New test.
-Tue Oct 26 20:25:42 1999 Richard Henderson <rth@cygnus.com>
+1999-10-26 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/compile/991026-2.c: New test.
-Tue Oct 26 00:45:56 1999 Jeffrey A Law (law@cygnus.com)
+1999-10-26 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/991026-1.c: New test.
-Sat Oct 23 23:36:03 1999 Jeffrey A Law (law@cygnus.com)
+1999-10-23 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/991023-1.c: New test.
-Tue Oct 19 02:11:29 1999 Jeffrey A Law (law@cygnus.com)
+1999-10-19 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/991019-1.c: New test.
-Sat Oct 16 00:05:48 1999 Richard Henderson <rth@cygnus.com>
+1999-10-16 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/991016-1.c: New test.
-Thu Oct 14 04:22:47 1999 Stephane Carrez <stcarrez@worldnet.fr>
+1999-10-14 Stephane Carrez <stcarrez@worldnet.fr>
* gcc.c-torture/execute/991014-1.c: New test.
-Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+1999-10-13 J"orn Rennecke <amylaar@cygnus.co.uk>
* g++.old-deja/g++.other/union2.C: New test.
@@ -9827,12 +11867,12 @@ Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/va-arg-11.c: New test.
-Fri Oct 1 00:53:17 1999 Mark P. Mitchell <mark@codesourcery.com>
+1999-10-01 Mark P. Mitchell <mark@codesourcery.com>
* lib/file-format.exp (gcc_target_object_format): Don't
crash if objdump is unavailable.
-Wed Sep 29 23:48:44 1999 Donn Terry <donn@interix.com>
+1999-09-29 Donn Terry <donn@interix.com>
* gcc.misc-tests/mg.exp: delete extraneous redirection.
@@ -9840,15 +11880,15 @@ Wed Sep 29 23:48:44 1999 Donn Terry <donn@interix.com>
* gcc.c-torture/compile/990928-1.c: New test.
-Tue Sep 28 13:19:15 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-28 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/decl6.C: New test.
-Tue Sep 28 01:19:09 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+1999-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.c-torture/execute/va-arg-10.c: New test.
-Mon Sep 27 09:14:24 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-27 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.pt/memtemp77.C: Adjust expected
__PRETTY_FUNCTION__.
@@ -9866,7 +11906,7 @@ Mon Sep 27 09:14:24 BST 1999 Nathan Sidwell <nathan@acm.org>
* g++.dg/ecos.exp: Don't supply -finit-priority to cc1plus.
-Tue Sep 21 15:38:10 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-21 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/dyncast1.C: New test.
* g++.old-deja/g++.other/dyncast2.C: New test.
@@ -9888,25 +11928,25 @@ Tue Sep 21 15:38:10 BST 1999 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.eh/catch9.C: New test.
* g++.old-deja/g++.eh/catch9p.C: New test.
-Mon Sep 13 14:14:21 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-13 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/sizeof3.C: Remove XFAILS.
* g++.old-deja/g++.other/sizeof4.C: Remove XFAILS.
-Mon Sep 13 06:28:57 1999 Jeffrey A Law (law@cygnus.com)
+1999-09-13 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/990913-1.c: New test.
-Fri Sep 10 11:21:25 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-10 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.jason/rfg4.C: Revert erroneous change, add -w.
* g++.old-deja/g++.jason/rfg5.C: Likewise.
-Thu Sep 9 10:40:36 1999 Richard Henderson <rth@cygnus.com>
+1999-09-09 Richard Henderson <rth@cygnus.com>
* g++.old-deja/g++.other/delete6.C: Use size_t with operator new.
-Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-09 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/lookup11.C: New test.
* g++.old-deja/g++.bugs/900428_01.C: Rework now we understand
@@ -9920,7 +11960,7 @@ Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
* gcc.c-torture/noncompile/noncompile.exp: Add poison-1.c.
* gcc.c-torture/noncompile/poison-1.c: New file.
-Wed Sep 8 09:39:56 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-08 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/sizeof3.C: New test.
* g++.old-deja/g++.other/sizeof4.C: New test.
@@ -9944,31 +11984,31 @@ Wed Sep 8 09:39:56 BST 1999 Nathan Sidwell <nathan@acm.org>
* g77.f-torture/noncompile/19990826-4.f: Clarify who wrote what.
-Fri Sep 3 10:39:38 BST 1999 Richard Earnshaw <rearnsha@arm.com>
+1999-09-03 Richard Earnshaw <rearnsha@arm.com>
* gcc.c-torture/execute/990827-1.c: Fix typo.
-Fri Sep 03 09:31:10 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-03 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/deref1.C: New test.
-Thu Sep 02 09:27:34 BST 1999 Nathan Sidwell <nathan@acm.org>
+1999-09-02 Nathan Sidwell <nathan@acm.org>
* g++.old-deja/g++.other/ambig2.C: New test.
* g++.old-deja/g++.other/cond5.C: New test.
* g++.old-deja/g++.other/lookup16.C: New test.
-Thu Sep 2 01:17:51 1999 Marc Espie <espie@cvs.openbsd.org>
+1999-09-02 Marc Espie <espie@cvs.openbsd.org>
* gcc.dg/980414-1.c: Fix assembler syntax to work with old
assemblers too.
-Tue Aug 31 17:57:49 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-31 Jeffrey A Law (law@cygnus.com)
* lib/c-torture.exp: Avoid the "compare executables" optimization
when testing native.
-Sun Aug 29 14:35:41 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-29 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990829-1.c: New test.
* gcc.c-torture/compile/990829-1.c: New test.
@@ -9987,7 +12027,7 @@ Sun Aug 29 14:35:41 1999 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.pt/memtemp90.C: Renamed from lss-010.C.
* g++.old-deja/g++.pt/memtemp91.C: Renamed from lss-011.C.
-Fri Aug 27 01:24:16 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-27 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990827-1.c: New test.
@@ -10039,7 +12079,7 @@ Fri Aug 27 01:24:16 1999 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.other/local3.C: Removed XFAIL.
-Wed Aug 4 01:17:17 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-04 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/970312-1.c: Delete duplicate test.
@@ -10047,7 +12087,7 @@ Wed Aug 4 01:17:17 1999 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.eh/spec6.C: Add more tests. Remove XFAILS.
-Wed Aug 4 01:17:17 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-04 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990804-1.c: New test.
@@ -10065,13 +12105,13 @@ Wed Aug 4 01:17:17 1999 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.other/enum2.C: New test.
-Mon Aug 2 13:35:12 1999 Richard Henderson <rth@cygnus.com>
+1999-08-02 Richard Henderson <rth@cygnus.com>
Adapted from tests from Franz Sirl:
* gcc.c-torture/execute/va-arg-7.c: New test.
* gcc.c-torture/execute/va-arg-8.c: New test.
-Sun Aug 1 22:29:34 1999 Jeffrey A Law (law@cygnus.com)
+1999-08-01 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/990801-2.c: New test.
@@ -10089,7 +12129,7 @@ Sun Aug 1 22:29:34 1999 Jeffrey A Law (law@cygnus.com)
from fr1 to unknown_register, since fr1 is a legitimate register
on some machines.
-Sun Jul 25 21:41:37 1999 Jeffrey A Law (law@cygnus.com)
+1999-07-25 Jeffrey A Law (law@cygnus.com)
* README: More listname related changes.
@@ -10121,11 +12161,11 @@ Sun Jul 25 21:41:37 1999 Jeffrey A Law (law@cygnus.com)
* gcc.dg/special/ecos.exp: Remove definition of proc
gcc_target_object_format.
-Mon Jun 28 08:20:51 1999 Jeffrey A Law (law@cygnus.com)
+1999-06-28 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990628-1.c: New test.
-Fri Jun 25 05:28:40 1999 Jeffrey A Law (law@cygnus.com)
+1999-06-25 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/990625-2.c: New test.
@@ -10138,7 +12178,7 @@ Fri Jun 25 05:28:40 1999 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/dll.x: Only support the dll.c test on
ports that use the COFF/PE file format.
-Thu Jun 17 13:48:16 1999 Jeffrey A Law (law@cygnus.com)
+1999-06-17 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/990617-1.c: New test.
@@ -10154,7 +12194,7 @@ Thu Jun 17 13:48:16 1999 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.eh/catch1.C: New test.
-Mon Jun 7 23:39:16 1999 Jeffrey A Law (law@cygnus.com)
+1999-06-07 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.mike/p6610a.C: Expect failure on freebsd-elf.
@@ -10166,19 +12206,19 @@ Mon Jun 7 23:39:16 1999 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/compile/19990502-0.f: Replace with new,
shorter, test that still fails after recent changes.
-Fri Jun 4 02:25:04 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* gcc.c-torture/execute/990604-1.c: New test.
-Mon May 31 00:34:51 1999 Jeffrey A Law (law@cygnus.com)
+1999-05-31 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990531-1.c: New test.
-Thu May 27 02:38:36 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+1999-05-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.c-torture/compile/990527-1.c: New test.
-Thu May 27 02:18:51 1999 Joern Rennecke <amylaar@cygnus.com>
+1999-05-27 Joern Rennecke <amylaar@cygnus.com>
* gcc.c-torture/execute/990527-1.c: New test.
@@ -10191,7 +12231,7 @@ Thu May 27 02:18:51 1999 Joern Rennecke <amylaar@cygnus.com>
* g77.f-torture/compile/19990525-0.f: New test.
-Tue May 25 01:21:16 1999 Jeffrey A Law (law@cygnus.com)
+1999-05-25 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990525-2.c: New test.
@@ -10206,17 +12246,17 @@ Tue May 25 01:21:16 1999 Jeffrey A Law (law@cygnus.com)
after downgrade to warning (cp/ChangeLog: 1999-05-20 Jason
Merrill).
-Mon May 24 00:01:52 1999 Jeffrey A Law (law@cygnus.com)
+1999-05-24 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990524-1.c: New test.
* gcc.dg/990524-1.c: New test.
-Sun May 23 21:18:12 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+1999-05-23 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.c-torture/compile/990523-1.c: New test.
-Wed May 19 02:56:18 1999 Raja R Harinath <harinath@cs.umn.edu>
+1999-05-19 Raja R Harinath <harinath@cs.umn.edu>
* gcc.c-torture/compile/990519-1.c: New test.
@@ -10232,7 +12272,7 @@ Wed May 19 02:56:18 1999 Raja R Harinath <harinath@cs.umn.edu>
* gcc.dg/noreturn-1.c: New test.
-Thu May 13 02:02:46 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+1999-05-13 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* gcc.c-torture/execute/990513-1.c: New test.
@@ -10288,12 +12328,12 @@ Thu May 13 02:02:46 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* g77.f-torture/compile/19990502-0.f: New test.
-Sun May 2 01:38:50 1999 Craig Burley <craig@jcb-sc.com>
+1999-05-02 Craig Burley <craig@jcb-sc.com>
* g77.f-torture/execute/u77-test.f (main): Declare FTELL as
intrinsic.
-Sun May 2 01:13:37 1999 Craig Burley <craig@jcb-sc.com>
+1999-05-02 Craig Burley <craig@jcb-sc.com>
* g77.f-torture/execute/u77-test.f (main): List libU77
intrinsics not currently tested.
@@ -10302,12 +12342,12 @@ Sun May 2 01:13:37 1999 Craig Burley <craig@jcb-sc.com>
FTELL_subr, MCLOCK, MCLOCK8, and CPU_TIME.
Trim blanks off the ends of some printed strings.
-Sun May 2 00:06:45 1999 Craig Burley <craig@jcb-sc.com>
+1999-05-02 Craig Burley <craig@jcb-sc.com>
* g77.f-torture/execute/u77-test.f (main): Just warn about
FSTAT gid disagreement, as it's expected on some systems.
-Sat May 1 23:57:18 1999 Craig Burley <craig@jcb-sc.com>
+1999-05-01 Craig Burley <craig@jcb-sc.com>
* g77.f-torture/execute/u77-test.f: Generalize sum-checking to
use a new function, which allows for some slop.
@@ -10321,7 +12361,7 @@ Sat May 1 23:57:18 1999 Craig Burley <craig@jcb-sc.com>
libf2c/libU77 version, bringing patches to that version here.
Add suitable commentary.
-Sun Apr 25 12:28:59 1999 Richard Henderson <rth@cygnus.com>
+1999-04-25 Richard Henderson <rth@cygnus.com>
* gcc.dg/990424-1.c: New test.
@@ -10335,16 +12375,16 @@ Sun Apr 25 12:28:59 1999 Richard Henderson <rth@cygnus.com>
* g77.f-torture/compile/19990419-0.f: New test.
* g77.f-torture/execute/19990419-1.f: New test.
-Sat Apr 17 16:56:48 1999 Richard Henderson <rth@cygnus.com>
+1999-04-17 Richard Henderson <rth@cygnus.com>
* gcc.dg/uninit-9.c (func): Use __builtin_alloca instead of alloca
to avoid the need for a prototype to supress a warning.
-Wed Apr 7 23:08:59 1999 Jim Wilson <wilson@cygnus.com>
+1999-04-07 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/920501-7.c (main): Delete __I960__ ifndef.
-Sun Apr 4 04:02:53 1999 Jeffrey A Law (law@cygnus.com)
+1999-04-04 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990404-1.c: New test.
@@ -10355,12 +12395,12 @@ Sun Apr 4 04:02:53 1999 Jeffrey A Law (law@cygnus.com)
* gcc.misc-tests/m-un-2.c: Adjust regexps for new format of
missing initializer warnings.
-Sun Mar 28 00:49:41 1999 Jeffrey A Law (law@cygnus.com)
+1999-03-28 Jeffrey A Law (law@cygnus.com)
* lib/objc-torture.exp: Replace "77" with "Obj-C" in pattern
matching strings.
-Fri Mar 26 00:50:46 1999 Jeffrey A Law (law@cygnus.com)
+1999-03-26 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990326-1.c: New test from Charles Hannum.
@@ -10369,16 +12409,16 @@ Fri Mar 26 00:50:46 1999 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/execute/19990325-0.f: New test.
* g77.f-torture/execute/19990325-1.f: New test.
-Wed Mar 24 22:50:50 1999 Jeffrey A Law (law@cygnus.com)
+1999-03-24 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990324-1.c: New test.
-Mon Mar 22 14:55:58 1999 Jim Wilson <wilson@cygnus.com>
+1999-03-22 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/bf-sign-2.c (main): Replace struct sizeof
test with 4.
-Wed Mar 17 12:22:39 1999 Richard Henderson <rth@cygnus.com>
+1999-03-17 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/ieee/980619-1.x: New. Expected fail on x86.
@@ -10392,7 +12432,7 @@ Wed Mar 17 12:22:39 1999 Richard Henderson <rth@cygnus.com>
* g77.f-torture/execute/19990313-0.f: New test.
* g77.f-torture/execute/19990313-1.f: New test.
-Fri Mar 12 16:17:28 1999 Jim Wilson <wilson@cygnus.com>
+1999-03-12 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/970312-1.c, execute/980605-1.c (f): Change
printf to sprintf.
@@ -10431,7 +12471,7 @@ Fri Mar 12 16:17:28 1999 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/noncompile/noncompile.exp (951025-1.c): Accept an error
message on line 1 or line 2; cccp and cpplib do this differently.
-Mon Mar 1 23:29:14 1999 Jeffrey A Law (law@cygnus.com)
+1999-03-01 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.law/weak1.C: New test.
@@ -10457,7 +12497,7 @@ Mon Mar 1 23:29:14 1999 Jeffrey A Law (law@cygnus.com)
* lib/c-torture.exp: Add -O3 to TORTURE_OPTIONS list.
-Mon Feb 22 01:15:08 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-22 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990222-1.c: New test.
@@ -10470,17 +12510,17 @@ Mon Feb 22 01:15:08 1999 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/compile/19981216-0.f: New test.
-Sun Feb 14 01:26:29 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-14 Jeffrey A Law (law@cygnus.com)
* gcc.dg/990214-1.c: New test.
-Sat Feb 13 00:43:52 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-13 Jeffrey A Law (law@cygnus.com)
* gcc.dg/990213-2.c: New test.
* gcc.dg/990213-1.c: New test.
-Fri Feb 12 11:04:35 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/990106-2.c: Update to work on targets with 16bit
ints.
@@ -10492,11 +12532,11 @@ Fri Feb 12 11:04:35 1999 Jeffrey A Law (law@cygnus.com)
* lib/chill.exp: Fix typo: doesn'timeout -> doesn't
-Thu Feb 11 01:12:12 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-11 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990211-1.c: New test from Nathan SIdwell.
-Wed Feb 10 13:08:12 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
+1999-02-10 Jonathan Larmour <jlarmour@cygnus.co.uk>
* gcc.dg/special/ecos.exp: New test driver for new tests with
special requirements.
@@ -10513,7 +12553,7 @@ Wed Feb 10 13:08:12 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
* gcc.dg/special/wkali-2a.c: Accompanying file to wkali-2.c.
* gcc.dg/special/wkali-2b.c: Accompanying file to wkali-2.c.
-Wed Feb 10 12:15:35 1999 Felix Lee <flee@cygnus.com>
+1999-02-10 Felix Lee <flee@cygnus.com>
* lib/c-torture.exp (c-torture-compile): Pull out code for
analyzing gcc error messages.
@@ -10521,7 +12561,7 @@ Wed Feb 10 12:15:35 1999 Felix Lee <flee@cygnus.com>
positives.
* lib/gcc.exp (gcc_check_compile): New function.
-Mon Feb 8 21:42:57 1999 Richard Henderson <rth@cygnus.com>
+1999-02-08 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/990208-1.c: New test.
@@ -10542,7 +12582,7 @@ Mon Feb 8 21:42:57 1999 Richard Henderson <rth@cygnus.com>
* README: Add comment about g++.dg directory
-Sat Feb 6 18:00:38 1999 Jeffrey A Law (law@cygnus.com)
+1999-02-06 Jeffrey A Law (law@cygnus.com)
* README: Update email addresses.
@@ -10560,11 +12600,11 @@ Sat Feb 6 18:00:38 1999 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/memcheck/driver.c (main): Use exit or
abort to terminate program execution.
-Sat Jan 30 16:22:47 1999 Richard Henderson <rth@cygnus.com>
+1999-01-30 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/990130-1.c: New test.
-Sat Jan 30 11:10:06 1999 Jeffrey A Law (law@cygnus.com)
+1999-01-30 Jeffrey A Law (law@cygnus.com)
* gcc.dg/990130-1.c: New test.
@@ -10584,7 +12624,7 @@ Sat Jan 30 11:10:06 1999 Jeffrey A Law (law@cygnus.com)
positives.
* lib/gcc.exp (gcc_check_compile): new function.
-Sun Jan 17 00:02:33 1999 Jeffrey A Law (law@cygnus.com)
+1999-01-17 Jeffrey A Law (law@cygnus.com)
* gcc.dg/990117-1.c: New test.
@@ -10592,25 +12632,25 @@ Sun Jan 17 00:02:33 1999 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990117-1.c: New test from HJ Lu.
-Fri Jan 15 02:52:00 1999 Jeffrey A Law (law@cygnus.com)
+1999-01-15 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/compile/990115-1.f: New test.
-Thu Jan 7 23:39:47 1999 Jeffrey A Law (law@cygnus.com)
+1999-01-07 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/990107-1.c: New test
-Wed Jan 6 02:21:59 1999 Jeffrey A Law (law@cygnus.com)
+1999-01-06 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/990106-2.c: New test.
* gcc.c-torture/execute/990106-1.c: New test.
-Wed Dec 30 23:05:28 1998 Zack Weinberg <zack@rabi.columbia.edu>
+1998-12-30 Zack Weinberg <zack@rabi.columbia.edu>
* gcc.c-torture/compile/981223-1.c: New test.
-Tue Dec 29 11:33:25 1998 Richard Henderson <rth@cygnus.com>
+1998-12-29 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/bcp-1.c (bad10): Rename from opt3.
(opt3): Rename from opt4 and disable.
@@ -10627,11 +12667,11 @@ Tue Dec 29 11:33:25 1998 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/920501-4.c (main): Fix typo: replace | with ||.
-Fri Dec 11 10:25:57 1998 Jeffrey A Law (law@cygnus.com)
+1998-12-11 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.benjamin/p12475.C: Expect failure on mips64 targets.
-Fri Dec 11 01:12:45 1998 Zack Weinberg <zack@rabi.columbia.edu>
+1998-12-11 Zack Weinberg <zack@rabi.columbia.edu>
* gcc.c-torture/compile/981211-1.c: New test.
@@ -10641,7 +12681,7 @@ Fri Dec 11 01:12:45 1998 Zack Weinberg <zack@rabi.columbia.edu>
* g++.old-deja/g++.pt/instantiate6.C: Linker error, not crash.
-Tue Dec 8 22:50:04 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+1998-12-08 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.special/930510-1.c: Make C9X safe.
* gcc.misc-tests/gcov-1.c Similarly.
@@ -10651,7 +12691,7 @@ Tue Dec 8 22:50:04 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.dg/ultrasp1.c: New test.
-Sun Dec 6 00:40:12 1998 Richard Henderson <rth@cygnus.com>
+1998-12-06 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/981206.c: New test.
@@ -10725,7 +12765,7 @@ Sun Dec 6 00:40:12 1998 Richard Henderson <rth@cygnus.com>
* g77.f-torture/execute/labug1.f: New test.
-Sat Nov 21 21:41:05 1998 Jeffrey A Law (law@cygnus.com)
+1998-11-21 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980526-1.c: Do nothing if NO_LABEL_VALUES
is defined.
@@ -10739,7 +12779,7 @@ Sat Nov 21 21:41:05 1998 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.eh/throw2.C: New test. CV-qualifiers are not
properly discarded.
-Sun Oct 11 05:04:28 1998 Ken Raeburn <raeburn@cygnus.com>
+1998-10-11 Ken Raeburn <raeburn@cygnus.com>
* gcc.c-torture/execute/memcheck: New directory of tests for
-fcheck-memory-usage.
@@ -10751,11 +12791,11 @@ Sun Oct 11 05:04:28 1998 Ken Raeburn <raeburn@cygnus.com>
* README.g++: Eliminate obsolete information, update and move most
relevant stuff to README.
-Sat Nov 7 02:55:55 1998 Richard Henderson <rth@cygnus.com>
+1998-11-07 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/compile/981107-1.c: New test.
-Mon Nov 2 11:16:03 1998 Doug Evans <devans@canuck.cygnus.com>
+1998-11-02 Doug Evans <devans@canuck.cygnus.com>
* execute/memcpy-bi.c: New testcase.
@@ -10786,15 +12826,15 @@ Mon Nov 2 11:16:03 1998 Doug Evans <devans@canuck.cygnus.com>
* lib/old-dejagnu.exp (old-dejagnu): Document `Additional sources'.
-Thu Oct 22 16:01:44 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+1998-10-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* compile/981022-1.c, compile/981022-1.x: New test and driver.
-Mon Oct 19 14:03:07 1998 Jeffrey A Law (law@cygnus.com)
+1998-10-19 Jeffrey A Law (law@cygnus.com)
* 981019-1.c: New test.
-Wed Oct 14 21:11:19 1998 Robert Lipe <robertl@dgii.com>
+1998-10-14 Robert Lipe <robertl@dgii.com>
* lib/objc-torture.exp (objc-torture-execute): Add -I so we can
find objc headers.
@@ -10864,11 +12904,11 @@ Wed Oct 14 21:11:19 1998 Robert Lipe <robertl@dgii.com>
* g++.old-deja/g++.ns/extern1.C: Fix XFAIL mark.
-Fri Oct 9 19:19:19 1998 Jeffrey A Law (law@cygnus.com)
+1998-10-09 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/special/920521-1.c: Fix bogus test.
-Thu Oct 8 19:14:05 1998 Nick Clifton <nickc@cygnus.com>
+1998-10-08 Nick Clifton <nickc@cygnus.com>
* gcc.dg/dll-?.c Add thumb to target list.
Fix assembler scan patterns to match current assembler output.
@@ -10888,7 +12928,7 @@ Thu Oct 8 19:14:05 1998 Nick Clifton <nickc@cygnus.com>
* g++.old-deja/g++.other/init7.C: New test. Retry initialization
of static locals if first initialization throws.
-Wed Oct 7 12:00:20 1998 Jim Wilson <wilson@cygnus.com>
+1998-10-07 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/compile/981007-1.c: New test for irix6 -O0 core dump.
@@ -10944,16 +12984,16 @@ Wed Oct 7 12:00:20 1998 Jim Wilson <wilson@cygnus.com>
* g++.old-deja/g++.other/typename1.C: New test; template-dependent
type name without `typename' should be rejected with -pedantic.
-Fri Oct 2 21:55:58 1998 Richard Henderson <rth@cygnus.com>
+1998-10-02 Richard Henderson <rth@cygnus.com>
* g++.old-deja/g++.other/addrof1.C: New test.
-Thu Oct 1 17:15:26 1998 Nick Clifton <nickc@cygnus.com>
+1998-10-01 Nick Clifton <nickc@cygnus.com>
* gcc.c-torture/compile/981001-1.c: New test.
* gcc.c-torture/execute/981001-1.c: New test.
-Thu Oct 1 19:05:20 1998 Jeffrey A Law (law@cygnus.com)
+1998-10-01 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/981001-2.c: New test.
* gcc.c-torture/compile/981001-3.c: New test.
@@ -11036,50 +13076,50 @@ Thu Oct 1 19:05:20 1998 Jeffrey A Law (law@cygnus.com)
(un)signed char are different types for template specialization
purposes.
-Thu Sep 3 00:40:32 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+1998-09-03 Ovidiu Predescu <ovidiu@aracnet.com>
* lib/{objc.exp,objc-torture.exp}: New files for objc testing harness.
* objc: ObjC testsuite.
-Mon Aug 31 12:00:00 1998 Catherine Moore <clm@cygnus.com>
+1998-08-31 Catherine Moore <clm@cygnus.com>
* gcc.c-torture/execute/941014-1.x: New file.
-Mon Aug 31 15:19:32 1998 Nick Clifton <nickc@cygnus.com>
+1998-08-31 Nick Clifton <nickc@cygnus.com>
* lib/c-torture.exp: Add support for
torture_eval_before_compile and torture_eval_before_execute
variables.
-Sun Aug 30 17:38:20 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-30 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980626-1.c: Delete this test. We've declared the warning
this test triggers valid.
-Thu Aug 27 23:59:18 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-27 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980827-1.c: New test.
-Wed Aug 26 16:10:00 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-08-26 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/loop-4b.c: New test.
-Wed Aug 26 16:25:38 1998 Nick Clifton <nickc@cygnus.com>
+1998-08-26 Nick Clifton <nickc@cygnus.com>
* lib/c-torture.exp: Add support for
torture_eval_before_compile and torture_eval_before_execute
variables.
-Tue Aug 25 19:42:13 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-25 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980825-1.c: New test.
-Mon Aug 24 14:20:32 1998 Nick Clifton <nickc@cygnus.com>
+1998-08-24 Nick Clifton <nickc@cygnus.com>
* gcc.c-torture/execute/bcp-1.c (main): Fix optimize test loop to
count number tests in opt_t0 not good_t0.
-Mon Aug 24 16:38:52 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-24 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/930326-1.x: Fix typo.
@@ -11088,7 +13128,7 @@ Mon Aug 24 16:38:52 1998 Jeffrey A Law (law@cygnus.com)
* lib/old-dejagnu.exp: Make it possible to XFAIL a test that
causes an ICE.
-Fri Aug 21 23:59:18 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-21 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/unsorted/memtst.c: Reduce size of array when
STACK_SIZE is defined.
@@ -11096,7 +13136,7 @@ Fri Aug 21 23:59:18 1998 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980821-1.c: New test.
-Fri Aug 21 03:14:04 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-21 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980526-2.c: Disable for targets with 16bit ints.
@@ -11110,17 +13150,17 @@ Fri Aug 21 03:14:04 1998 Jeffrey A Law (law@cygnus.com)
* lib/old-dejagnu.exp: Revise handling of `Internal compiler
error'.
-Tue Aug 18 19:19:50 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-18 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/*.x: Some updates for the h8300 targets.
-Sun Aug 16 01:29:19 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-16 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980816-1.c: New test.
* gcc.dg/980816-1.c: New test.
-Thu Aug 13 00:13:55 1998 Jeffrey A Law (law@cygnus.com)
+1998-08-13 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/ieee/ieee.exp: Pass -ffloat-store to
compiler for ieee tests.
@@ -11135,11 +13175,11 @@ Thu Aug 13 00:13:55 1998 Jeffrey A Law (law@cygnus.com)
-finstrument-functions.
* gcc.c-torture/special/special.exp: Run it.
-Wed Jul 29 00:17:18 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-29 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980729-1.c: New test.
-Mon Jul 27 11:05:07 1998 Nick Clifton <nickc@cygnus.com>
+1998-07-27 Nick Clifton <nickc@cygnus.com>
* gcc.c-torture/execute/ieee/930529-1.c (main): Check to see if
__thumb__ is defined, and test for ARM style doubles if so.
@@ -11148,12 +13188,12 @@ Mon Jul 27 11:05:07 1998 Nick Clifton <nickc@cygnus.com>
* g77.f-torture/noncompile/980615-0.f: New test.
-Sun Jul 26 01:15:56 1998 H.J. Lu (hjl@gnu.org)
+1998-07-26 H.J. Lu (hjl@gnu.org)
* gcc.dg/980312-1.c: Do link instead of compile.
* gcc.dg/980313-1.c: Likewise.
-Sun Jul 26 01:05:02 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-26 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980726-1.c: New test.
@@ -11161,26 +13201,26 @@ Sun Jul 26 01:05:02 1998 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/execute/io0.f: New test.
-Fri Jul 24 11:02:43 1998 Nick Clifton <nickc@cygnus.com>
+1998-07-24 Nick Clifton <nickc@cygnus.com>
* gcc.c-torture/execute/comp-goto-1.c (main): Make main() return
an int.
-Thu Jun 18 15:12:30 1998 Michael Meissner <meissner@cygnus.com>
+1998-06-18 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/980618-{1,2}.c: New tests that showed up
m32r bugs.
-Fri Jul 17 14:19:32 1998 Nick Clifton <nickc@cygnus.com>
+1998-07-17 Nick Clifton <nickc@cygnus.com>
* gcc.dg/980626-1.c: Expect failures for all toolchains until
c-decl.c:grokdeclarator can handle mode attributes.
-Thu Jul 16 21:42:50 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-16 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980716-1.c: New test.
-Mon Jul 13 22:26:37 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-13 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/920715-1.x: No longer expected to fail on
the mn10200.
@@ -11200,42 +13240,42 @@ Mon Jul 13 22:26:37 1998 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/execute/970816-3.f: New test from Craig.
-Fri Jul 10 23:43:33 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
+1998-07-10 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
* g++.other/singleton.C: Return error value instead of taking
SIGSEGV.
-Fri Jul 10 10:02:03 1998 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
+1998-07-10 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
* g++.other/singleton.C: New test. Warning is under dispute.
Runtime crash is not.
-Thu Jul 9 23:07:45 1998 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
+1998-07-09 Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>
* g++.ns/{alias2.C, alias5.C, koenig4.C, lookup3.C ns13.C,
ns14.C, ns15.C, template3.C, undef1.C, using4.C, using5.C,
using6.C, using7.C}: New namespace tests.
-Thu Jul 9 22:44:49 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
+1998-07-09 Alexandre Oliva <oliva@dcc.unicamp.br>
* g++.old-deja/g++.other/partspec1.C: Test matching of partial
specialization with typedef'ed names used as array indexes.
-Thu Jul 9 00:38:51 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-09 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980709-1.c: New test.
* gcc.dg/980709-1.c: New test.
-Tue Jul 7 13:41:27 1998 Richard Henderson <rth@cygnus.com>
+1998-07-07 Richard Henderson <rth@cygnus.com>
* gcc.c-torture/execute/bcp-1.c: New test.
-Tue Jul 7 11:49:04 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-07 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980707-1.c: New test.
-Mon Jul 6 18:20:27 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl>
+1998-07-06 Kamil Iskra <iskra@student.uci.agh.edu.pl>
* gcc.c-torture/compile/980706-1.c: New test.
@@ -11244,13 +13284,13 @@ Mon Jul 6 18:20:27 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl>
* g77.f-torture/execute/980701-0.f,
g77.f-torture/execute/980701-1.f: New test from Craig.
-Wed Jul 1 00:52:51 1998 Jeffrey A Law (law@cygnus.com)
+1998-07-01 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/compile/980701-1.c: New test.
* gcc.c-torture/execute/980701-1.c: New test.
-Tue Jun 30 11:51:42 1998 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-ka
+1998-06-30 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-ka
rlsruhe.de>
* g++.old-deja/g++.robertl/eb132.C: New test.
@@ -11265,7 +13305,7 @@ rlsruhe.de>
* g77.f-torture/execute/980628-3.f: Remove mail headers.
-Sun Jun 28 12:49:02 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-28 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/execute/980628-4.f: New test from Craig.
* g77.f-torture/execute/980628-5.f: Likewise.
@@ -11275,64 +13315,64 @@ Sun Jun 28 12:49:02 1998 Jeffrey A Law (law@cygnus.com)
* g77.f-torture/execute/980628-3.f: Likewise.
* g77.f-torture/execute/980628-6.f: Likewise.
-Sun Jun 28 00:37:26 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-28 Jeffrey A Law (law@cygnus.com)
* lib/g77.exp (default_g77_version): Tweak to make it work in a build
directory when nothing has been installed yet.
-Sat Jun 27 23:23:18 1998 Carlo Wood <carlo@runaway.xs4all.nl>
+1998-06-27 Carlo Wood <carlo@runaway.xs4all.nl>
* gcc.c-torture/special/special.exp: Handle newer versions of
dejagnu.
-Fri Jun 26 17:57:40 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-26 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980626-1.c: New test.
-Fri Jun 19 23:26:12 1998 Bruno Haible <haible@ilog.fr>
+1998-06-19 Bruno Haible <haible@ilog.fr>
* gcc.misc-tests/m-un-2.c: New test.
* g++.old-deja/g++.other/warn01.c: Likewise.
-Fri Jun 19 14:06:36 1998 Robert Lipe <robertl@dgii.com>
+1998-06-19 Robert Lipe <robertl@dgii.com>
* gcc.dg/980414-1.c: Move comments outside of ASM to improve
compatibility with assmblers with a different comment character.
Eliminate use of GAS-specific extensions.
-Fri Jun 19 02:05:14 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-19 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/ieee/980619-1.c: New test.
-Fri Jun 19 00:58:11 1998 Robert Lipe <robertl@dgii.com>
+1998-06-19 Robert Lipe <robertl@dgii.com>
*lib/g77.exp: Replace search for libf2c.a with search for newly
renamed libg2c.a
-Wed Jun 17 18:53:12 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-17 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980617-1.c: New test.
-Fri Jun 12 01:08:49 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980612-1.c: New test.
-Mon Jun 8 02:13:42 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-08 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980523-1.c: Only test on ppc-linux.
* gcc.dg/980526-1.c, gcc.dg/switch-1.c: Likewise.
* gcc.c-torture/execute/980608-1.c: New test.
-Fri Jun 5 21:54:26 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-06-05 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/980605-1.c: New test.
-Thu Jun 4 01:39:24 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-04 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980604-1.c: New test.
-Tue Jun 2 20:51:43 1998 Jeffrey A Law (law@cygnus.com)
+1998-06-02 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/980602-1.c: New test.
* gcc.c-torture/execute/980602-2.c: Likewise.
@@ -11341,17 +13381,17 @@ Tue Jun 2 20:51:43 1998 Jeffrey A Law (law@cygnus.com)
* 970125-0.f: Fix per JCB. Add commentary.
-Sun May 31 23:23:29 1998 Michael Meissner <meissner@cygnus.com>
+1998-05-31 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/ieee/mzero2.c: New test to better test
IEEE -0 support.
-Fri May 29 01:10:12 1998 Peter Leven <leven@lpr.e-technik.tu-muenchen.de>
+1998-05-29 Peter Leven <leven@lpr.e-technik.tu-muenchen.de>
* gcc.c-torture/execute/ieee/fp-cmp-1.c: Set up signal handler
earlier.
-Thu May 28 00:17:42 1998 Catherine Moore <clm@cygnus.com>
+1998-05-28 Catherine Moore <clm@cygnus.com>
* gcc.c-torture/execute/980526-3.c: New test.
@@ -11362,12 +13402,12 @@ Thu May 28 00:17:42 1998 Catherine Moore <clm@cygnus.com>
* g++.old-deja/g++.jason/thunk3.C: Add m68k-motorola-sysv and
m88k-motorola-sysv3 to XFAIL.
-Tue May 26 23:58:03 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+1998-05-26 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* gcc.dg/980526-1.c: New test.
* gcc.c-torture/execute/980526-2.c: New test.
-Tue May 26 23:40:40 1998 Jeffrey A Law (law@cygnus.com)
+1998-05-26 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980523-1.c: Change "ppc" to "powerpc".
@@ -11384,7 +13424,7 @@ Tue May 26 23:40:40 1998 Jeffrey A Law (law@cygnus.com)
* lib/old-dejagnu.exp: All tests fail if we got an internal compiler
error for the line. Don't run multiple tests for the same line.
-Sat May 23 23:27:10 1998 Jeffrey A Law (law@cygnus.com)
+1998-05-23 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980523-1.c: New test.
@@ -11396,15 +13436,15 @@ Sat May 23 23:27:10 1998 Jeffrey A Law (law@cygnus.com)
* lib/old-dejagnu.exp: Ignore C++ "instantiated from" mesages.
-Thu May 21 23:23:21 1998 Jeffrey A Law (law@cygnus.com)
+1998-05-21 Jeffrey A Law (law@cygnus.com)
* gcc.dg/980520-1.c: New test.
-Wed May 20 14:37:15 1998 Manfred Hollstein <manfred@s-direktnet.de>
+1998-05-20 Manfred Hollstein <manfred@s-direktnet.de>
* gcc.dg/980502-1.c: Fix return type.
-Wed May 20 11:29:48 1998 Jeffrey A Law (law@cygnus.com)
+1998-05-20 Jeffrey A Law (law@cygnus.com)
* gcc.dg/{980502-1.c, clobbers.c}: New tests.
* gcc.c-torture/compile/{980504-1.c, 980506-1.c}: Likewise.
@@ -11432,7 +13472,7 @@ Wed May 20 11:29:48 1998 Jeffrey A Law (law@cygnus.com)
g77.f-torture/execute/claus.f, g77.f-torture/execute/cabs.f: Call
abort where appropriate.
-Tue May 5 19:20:13 1998 Michael Meissner <meissner@cygnus.com>
+1998-05-05 Michael Meissner <meissner@cygnus.com>
* lib/c-torture.exp (TORTURE_OPTIONS): Add -Os to options.
* lib/f-torture.exp (TORTURE_OPTIONS): Ditto.
@@ -11455,34 +13495,34 @@ Tue May 5 19:20:13 1998 Michael Meissner <meissner@cygnus.com>
* g77.f-torture/compile/970125-0.f: New test.
* g77.f-torture/compile/980419-1.f: New test.
-Wed Apr 8 13:09:15 1998 Jim Wilson <wilson@cygnus.com>
+1998-04-08 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/980407-1.c: Delete test. Is duplicate
of loop-4.c.
-Tue Apr 7 12:01:24 1998 Jim Wilson <wilson@cygnus.com>
+1998-04-07 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/980407-1.c: New test from Joern Rennecke.
-Fri Apr 3 12:27:49 1998 Jim Wilson <wilson@cygnus.com>
+1998-04-03 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/compile/980329-1.c: New test.
-Wed Mar 18 16:22:22 1998 Jim Wilson <wilson@cygnus.com>
+1998-03-18 Jim Wilson <wilson@cygnus.com>
* gcc.dg/980313-1.c: New test for fp conditional move on PPro.
* gcc.dg/980312-1.c: Fix typo in -march command.
-Mon Mar 16 20:01:30 1998 H.J. Lu (hjl@gnu.org)
+1998-03-16 H.J. Lu (hjl@gnu.org)
* gcc.dg/980312-1.c: New test for fp conditional move on PPro.
-Wed Mar 11 13:08:48 1998 Robert Lipe <robertl@dgii.com>
+1998-03-11 Robert Lipe <robertl@dgii.com>
* g77.f-torture/execute/980310-5.f: Deleted. Craig Burley and
Dave Love agree the Fortran source is bogus.
-Wed Mar 11 00:03:49 1998 Robert Lipe <robertl@dgii.com>
+1998-03-11 Robert Lipe <robertl@dgii.com>
* g77.f-torture/compile/980310-1.f, g77.f-torture/compile/980310-2.f
g77.f-torture/compile/980310-3.f, g77.f-torture/compile/980310-4.f
@@ -11490,7 +13530,7 @@ Wed Mar 11 00:03:49 1998 Robert Lipe <robertl@dgii.com>
g77.f-torture/compile/980310-8.f: New tests from egcs-bugs archives.
* g77.f-torture/execute/980310-5.f: New test from egcs-bugs archives.
-Tue Mar 10 00:31:51 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
+1998-03-10 Alexandre Oliva <oliva@dcc.unicamp.br>
* g++.old-deja/g++.other/friend1.C: New test.
@@ -11499,16 +13539,16 @@ Tue Mar 10 00:31:51 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
* g77.f-torture/execute/dnrm2.f (dnrm2): Avoid uninitialized (and
possibly uninitialized) variables and declare dnrm2.
-Mon Feb 23 15:16:53 1998 Robert Lipe <robertl@dgii.com>
+1998-02-23 Robert Lipe <robertl@dgii.com>
From Bruno Haible <haible@ilog.fr>:
* gcc.c-torture/execute/980223.c: New test.
-Fri Feb 13 00:36:07 1998 Jeffrey A Law (law@cygnus.com)
+1998-02-13 Jeffrey A Law (law@cygnus.com)
* gcc.dg/ifelse-1.c: New test.
-Mon Feb 9 02:08:47 1998 H.J. Lu (hjl@gnu.org)
+1998-02-09 H.J. Lu (hjl@gnu.org)
* lib/g77.exp (g77_target_compile): Fix multilibs for libf2c.
@@ -11518,32 +13558,32 @@ Mon Feb 9 02:08:47 1998 H.J. Lu (hjl@gnu.org)
handling to be like "excess errors test fails".
* Update various tests accordingly.
-Fri Feb 6 14:30:48 1998 Jim Wilson <wilson@cygnus.com>
+1998-02-06 Jim Wilson <wilson@cygnus.com>
* gcc.c-torture/execute/980205.c: New test.
-Sun Jan 18 01:33:59 1998 Jeffrey A Law (law@cygnus.com)
+1998-01-18 Jeffrey A Law (law@cygnus.com)
* lib/c-torture.exp: Look for .x files instead of .cexp files.
* lib/f-torture.exp: Similarly.
* gcc.c-torture: Rename all .cexp files to .x files.
-Mon Dec 8 23:55:26 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-12-08 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/noncompile/noncompile.exp (921102-1.c): Fixed comment.
(940510-1.c): Removed duplicate.
(971104-1.c): New test.
-Tue Nov 25 16:18:51 1997 Kate Hedstrom (kate@ahab.rutgers.edu)
+1997-11-25 Kate Hedstrom (kate@ahab.rutgers.edu)
* lib/f-torture.exp: Improve error and loop detection.
-Wed Nov 19 14:27:04 1997 Michael Meissner <meissner@cygnus.com>
+1997-11-19 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/950221-1.c (filler): If STACK_SIZE is defined,
use that to size the filler array.
-Fri Sep 26 10:50:53 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-09-26 Bob Manson <manson@charmed.cygnus.com>
* lib/c-torture.exp(c-torture-execute): Fix typo.
@@ -11551,57 +13591,57 @@ Fri Sep 26 10:50:53 1997 Bob Manson <manson@charmed.cygnus.com>
testcase as the executable name. Keep the executable around if
the test fails.
-Fri Sep 19 17:19:53 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-09-19 Bob Manson <manson@charmed.cygnus.com>
* lib/c-torture.exp (TORTURE_OPTIONS): Removed unnecessary
changes. Only test one -g option, and move it to the end of the
list of options to test.
-Fri Sep 19 17:58:00 1997 Michael Meissner <meissner@cygnus.com>
+1997-09-19 Michael Meissner <meissner@cygnus.com>
* lib/c-torture.exp (TORTURE_OPTIONS): Check for the environment
variable GCC_TORTURE_OPTIONS to supply default switches separated
by colons. If no environment variable, run tests with -O0 -g, -O1
-g, and -O2 -g as well.
-Wed Sep 17 10:12:26 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-09-17 Bob Manson <manson@charmed.cygnus.com>
* lib/plumhall.exp: Don't set PHSRC in this file. Add a few
explanatory comments. Fix indentation.
-Mon Sep 15 00:36:53 1997 Jeffrey A Law (law@cygnus.com)
+1997-09-15 Jeffrey A Law (law@cygnus.com)
* lib/g++.exp (g++_init): Look for xgcc in $basedir too.
-Thu Sep 11 13:54:47 1997 Jeffrey A Law (law@cygnus.com)
+1997-09-11 Jeffrey A Law (law@cygnus.com)
* g++.old-deja/g++.brendan/scope4.C: No longer expected to fail.
* g++.old-deja/g++.mike/p7325.C: Likewise.
* g++.old-deja/g++.mike/eh51.C: No longer expected to fail on the PA.
-Thu Sep 11 10:00:03 1997 Alexandre Oliva (oliva@dcc.unicamp.br)
+1997-09-11 Alexandre Oliva (oliva@dcc.unicamp.br)
* g++.old-deja/g++.brendan/crash20.C: Rework to avoid libg++.
* g++.old-deja/g++.brendan/crash30.C: Likewise.
* g++.old-deja/g++.brendan/crash39.C: Likewise.
* g++.old-deja/g++.law/operators4.C: Likewise.
-Thu Sep 11 09:53:40 1997 Joe Buck (jbuck@synopsys.com)
+1997-09-11 Joe Buck (jbuck@synopsys.com)
* g++.old-deja/g++.mike/p658.C: eliminate <bool.h> use.
* g++.old-deja/g++.mike/p784.C: Ditto.
* g++.old-deja/g++.mike/p785.C: Ditto.
-Fri Sep 5 00:21:42 1997 Jeffrey A Law (law@cygnus.com)
+1997-09-05 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/cbrt.c: Tweak to work on more targets.
-Wed Sep 3 17:29:35 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-09-03 Bob Manson <manson@charmed.cygnus.com>
* gcc.c-torture/execute/ieee/ieee.exp: Check for ieee_multilib_flags
target feature; pass this to c-torture-execute as needed.
-Wed Sep 3 17:15:00 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-09-03 Bob Manson <manson@charmed.cygnus.com>
* lib/c-torture.exp(c-torture-execute): If the previous and the
current executables being tested are identical, we don't need to
@@ -11609,15 +13649,15 @@ Wed Sep 3 17:15:00 1997 Bob Manson <manson@charmed.cygnus.com>
unique. Add an optional argument for passing additional compiler
flags.
-Tue Sep 2 16:34:31 1997 Doug Evans <dje@canuck.cygnus.com>
+1997-09-02 Doug Evans <dje@canuck.cygnus.com>
* lib/gcc-dg.exp (gcc-dg-test): Fix typos setting compile_type.
-Fri Aug 29 12:48:09 1997 Jeffrey A Law (law@cygnus.com)
+1997-08-29 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/921007-1.c: Make strcmp static.
-Thu Jul 31 12:17:24 1997 Jeffrey A Law (law@cygnus.com)
+1997-07-31 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/920501-9.c: Fix to work on targets with
32bit or larger longs.
@@ -11625,44 +13665,44 @@ Thu Jul 31 12:17:24 1997 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/961017-2.c: Fix to work on targets which
have either a 32bit long or 32bit int.
-Tue Jul 29 00:40:38 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-07-29 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/conversion.c (test_float_to_integer):
Make double precision tests dependent on sizeof (double).
-Wed Jul 9 15:15:40 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-07-09 Bob Manson <manson@charmed.cygnus.com>
* gcc.prms/5403.c: Allow CRLFs to occur at the start of the output
too.
-Tue Jun 17 22:11:16 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-06-17 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/compile/961203-1.cexp: New script.
-Mon Jun 16 15:27:06 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-06-16 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp(g++_init): Use g++_include_flags instead of making
up the includes ourselves.
-Wed Jun 11 17:33:21 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-06-11 Bob Manson <manson@charmed.cygnus.com>
* lib/plumhall.exp: Remove random include, and add a few
verbose messages for debugging.
-Fri Jun 6 14:23:24 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-06-06 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp: Use g++_link_flags from libgloss.exp, instead
of trying to do it ourselves.
-Wed Jun 4 03:38:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+1997-06-04 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcc.c-torture/execute/ieee/ieee.exp: Set -mieee for SH.
-Wed Jun 4 18:43:55 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-06-04 Bob Manson <manson@charmed.cygnus.com>
* gcc.prms/5403.c: Made regexp a bit less strict.
-Tue Jun 3 15:12:39 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-06-03 Bob Manson <manson@charmed.cygnus.com>
* lib/mike-gcc.exp: Don't use global exec_output anymore. Output
is returned from remote_load instead.
@@ -11671,30 +13711,30 @@ Tue Jun 3 15:12:39 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/old-dejagnu.exp: Ditto.
* lib/c-torture.exp: Ditto.
-Fri May 30 23:15:15 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-05-30 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp: Use build_wrapper procedure.
* lib/gcc.exp: Ditto.
-Tue May 20 15:23:27 1997 Jeffrey A Law (law@cygnus.com)
+1997-05-20 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/*.c: Include stdlib.h instead of using
an old-style decl for malloc. Fixes tests to work when
sizeof (int) != sizeof (size_t).
-Thu May 15 14:00:04 1997 Mike Meissner <meissner@cygnus.com>
+1997-05-15 Mike Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/va-arg-3.c: If NO_VARARGS is defined, nop test.
* gcc.c-torture/execute/strct-varg-1.c: If NO_VARARGS is defined,
use stdargs.h interface.
-Thu May 15 14:10:39 1997 Mike Meissner <meissner@cygnus.com>
+1997-05-15 Mike Meissner <meissner@cygnus.com>
* lib/gcc.exp (gcc_target_compile): If gcc,no_varargs, define
NO_VARARGS when compiling.
-Thu May 1 14:49:19 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-05-01 Bob Manson <manson@charmed.cygnus.com>
* lib/plumhall.exp(ph_includes): New procedure.
(ph_make): Use it.
@@ -11703,17 +13743,17 @@ Thu May 1 14:49:19 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp: Rename test-glue.c to testglue.c.
* lib/gcc.exp: Ditto.
-Thu Apr 10 14:50:26 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-04-10 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp(g++init): Don't try to be smart, always run g++_init
to completion when it's called.
-Fri Mar 21 16:34:52 1997 Michael Meissner <meissner@cygnus.com>
+1997-03-21 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/920501-7.c (main,x): If NO_LABELS_VALUES
is defined, don't do test.
-Thu Mar 20 09:50:32 1997 Doug Evans <dje@canuck.cygnus.com>
+1997-03-20 Doug Evans <dje@canuck.cygnus.com>
* lib/plumhall.exp (ph_make): Comment out errorCode=NONE test
for object files.
@@ -11723,7 +13763,7 @@ Thu Mar 20 09:50:32 1997 Doug Evans <dje@canuck.cygnus.com>
errorCode, record errorCode in log file.
(*): Replace send_log/verbose with verbose -log.
-Wed Mar 19 13:06:26 1997 Michael Meissner <meissner@cygnus.com>
+1997-03-19 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/ieee/rbug.c (main): Don't do long long to
double conversion if double isn't at least 8 bytes.
@@ -11735,7 +13775,7 @@ Wed Mar 19 13:06:26 1997 Michael Meissner <meissner@cygnus.com>
8 bytes, just exit, since 4 byte doubles don't have enough bits of
precision for the test to complete.
-Fri Mar 14 17:51:02 1997 Michael Meissner <meissner@cygnus.com>
+1997-03-14 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/920715-1.cexp (d10v-*-*): Expect to fail
if d10v is not compiled with the -mdouble64 flag.
@@ -11744,29 +13784,29 @@ Fri Mar 14 17:51:02 1997 Michael Meissner <meissner@cygnus.com>
* gcc.c-torture/execute/cvt-1.cexp (d10v-*-*): Expect to fail if
d10v is not compiled with the -mint32 flag.
-Thu Mar 13 16:09:28 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-03-13 Bob Manson <manson@charmed.cygnus.com>
* lib/plumhall.exp: Use incr_count.
-Wed Mar 12 10:01:33 1997 Jeffrey A Law (law@cygnus.com)
+1997-03-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.45.
-Sun Feb 23 18:12:04 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-23 Bob Manson <manson@charmed.cygnus.com>
* lib/gcc.exp(gcc_init): Add args parameter (which will contain
the name of the expect testcase file).
* lib/g++.exp(g++_init): Ditto.
-Thu Feb 20 13:53:05 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-20 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp(g++_exit): $gluefile lives on the build, not
the host.
* lib/gcc.exp(gcc_exit): New procedure.
-Wed Feb 19 15:16:16 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-19 Bob Manson <manson@charmed.cygnus.com>
* g++.old-deja/g++.rfg/*: Added "Build don't link" and ERROR
specs where appropriate.
@@ -11777,7 +13817,7 @@ Wed Feb 19 15:16:16 1997 Bob Manson <manson@charmed.cygnus.com>
* Converted all non-old-style g++ testcases to old-style, and
moved into g++.old-deja.
-Fri Feb 14 11:46:46 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-14 Bob Manson <manson@charmed.cygnus.com>
* lib/old-dejagnu.exp(old-dejagnu): Add various "skip if"
options.
@@ -11787,17 +13827,17 @@ Fri Feb 14 11:46:46 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp(g++_init): Don't unset gluefile unless it exists.
-Thu Feb 13 17:30:46 1997 Michael Meissner <meissner@cygnus.com>
+1997-02-13 Michael Meissner <meissner@cygnus.com>
* lib/gcc.exp (gcc_target_compile): Add support for defining
NO_TRAMPOLINES and NO_LABEL_VALUES if the baseboard file indicates
the machine doesn't have those features.
-Tue Feb 11 12:57:11 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-11 Bob Manson <manson@charmed.cygnus.com>
* g++.law/operators4.exp: Don't use LIBS.
-Sat Feb 8 14:45:55 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-08 Bob Manson <manson@charmed.cygnus.com>
* g++.law/virtual1.exp: Don't use CXX_FLAGS.
@@ -11810,7 +13850,7 @@ Sat Feb 8 14:45:55 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/gcc.exp: Allow use of --tool_exec and --tool_opt.
-Fri Feb 7 12:55:45 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-07 Bob Manson <manson@charmed.cygnus.com>
* lib/old-dejagnu.exp: Use prune_warnings instead of
prune_system_crud.
@@ -11820,13 +13860,13 @@ Fri Feb 7 12:55:45 1997 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp: Include both libstdc++ and libstdc++/stl.
-Fri Feb 7 10:41:53 1997 Jeffrey A Law (law@cygnus.com)
+1997-02-07 Jeffrey A Law (law@cygnus.com)
* 941014-2.c: Include stdlib.h
* 960327-1.c: Include stdio.h
* dbra.c, index-1.c: Don't assume ints are 32bits.
-Tue Feb 4 12:51:09 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-04 Bob Manson <manson@charmed.cygnus.com>
* lib/gcc.exp: Add gcc,stack_size target feature.
@@ -11838,12 +13878,12 @@ Tue Feb 4 12:51:09 1997 Bob Manson <manson@charmed.cygnus.com>
the correct include and link paths.
* g++.old-deja/old-deja.exp: Ditto.
-Mon Feb 3 19:00:07 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-03 Bob Manson <manson@charmed.cygnus.com>
* lib/g++.exp(g++_init): target_compile no longer returns the
filename of the result.
-Sun Feb 2 14:42:34 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-02 Bob Manson <manson@charmed.cygnus.com>
* gcc.misc-tests/gcov.exp: Add -nocomplain to the
call to glob.
@@ -11851,12 +13891,12 @@ Sun Feb 2 14:42:34 1997 Bob Manson <manson@charmed.cygnus.com>
* gcc.c-torture/special/special.exp: Change call to
gcc_target_compile to include the object file.
-Sun Feb 2 17:11:50 1997 Ian Lance Taylor <ian@cygnus.com>
+1997-02-02 Ian Lance Taylor <ian@cygnus.com>
* gcc.c-torture/special/special.exp: Correct misspelling in last
change.
-Sat Feb 1 12:34:23 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-02-01 Bob Manson <manson@charmed.cygnus.com>
* lib/plumhall.exp(ph_summary): Log the entire output of the
executable. Return -1 if there were any failures, 0 otherwise.
@@ -11864,17 +13904,17 @@ Sat Feb 1 12:34:23 1997 Bob Manson <manson@charmed.cygnus.com>
(ph_make): Clean up objects and executables that were built
if the tests succeeded.
-Thu Jan 30 13:45:56 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-01-30 Bob Manson <manson@charmed.cygnus.com>
* g++.old-deja/old-deja.exp: Add -L and -I flags so we include
libraries and includes in the build tree as appropriate.
-Wed Jan 29 17:19:34 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-01-29 Bob Manson <manson@charmed.cygnus.com>
* lib/c-torture.exp: Instead of looking for the global variable
NO_LONG_LONG, check to see if that's a feature of the target.
-Wed Jan 29 00:36:25 1997 Bob Manson <manson@charmed.cygnus.com>
+1997-01-29 Bob Manson <manson@charmed.cygnus.com>
* config/default.exp: Minimize. Delete the remainer of the files in
config; this functionality is now in devo/dejagnu/config.
@@ -11899,36 +13939,36 @@ Wed Jan 29 00:36:25 1997 Bob Manson <manson@charmed.cygnus.com>
lib/old-dejagnu.exp: Ditto.
lib/plumhall.exp: Ditto.
-Wed Jan 8 14:43:07 1997 Jim Wilson <wilson@cygnus.com>
+1997-01-08 Jim Wilson <wilson@cygnus.com>
* lib/plumhall.exp (ph_make): Use CFLAGS and ANSICFLAGS when linking.
(ph_linker): Likewise.
-Wed Nov 13 16:04:19 1996 Joern Rennecke <amylaar@cygnus.com>
+1996-11-13 Joern Rennecke <amylaar@cygnus.com>
* gcc.c-torture/execute/{loop-2e.c,loop-2f.c}: Only use
MAP_ANON / MAP_ANONYMOUS if defined;
else try to map from /dev/zero .
-Tue Nov 12 23:30:12 1996 Jeffrey A Law (law@cygnus.com)
+1996-11-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/{loop-2e.c,loop-2f.c}: If MAP_ANON
isn't defined, then define it to MAP_ANONYMOUS.
-Tue Nov 12 11:57:49 1996 Jeffrey A Law (law@cygnus.com)
+1996-11-12 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.42 release.
-Mon Nov 11 12:45:31 1996 Jeffrey A Law (law@cygnus.com)
+1996-11-11 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.41 release.
-Sun Oct 27 18:56:18 1996 Jeffrey A Law (law@cygnus.com)
+1996-10-27 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/enum-1.c: New test. Will be in next
c-torture release.
-Thu Aug 15 11:09:36 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
+1996-08-15 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/gcc.exp (gcc_init): Always append the target_info to CFLAGS
and LDFLAGS. Fix second case to append the target_info ldflags
@@ -11940,31 +13980,31 @@ Thu Aug 15 11:09:36 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
* config/proelf.exp: Load remote.exp and do `push_target hppro'.
(GDB): Fix relative path to go up another dir for finding gdb.
-Thu Aug 8 17:03:27 1996 Rob Savoye <rob@chinadoll.cygnus.com>
+1996-08-08 Rob Savoye <rob@chinadoll.cygnus.com>
* lib/gcc.exp(gcc_init): Set CFLAGS and LDFLAGS to their new
versions in the target_info array, if they don't exist.
-Fri Aug 2 15:39:03 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
+1996-08-02 Brendan Kehoe <brendan@lisa.cygnus.com>
* config/vx.exp (${tool}_load): Fix syntax of `$shell_id < 0'.
-Mon Jul 8 15:45:58 1996 Jim Wilson <wilson@cygnus.com>
+1996-07-08 Jim Wilson <wilson@cygnus.com>
* lib/g++.exp: Change all uses of $base_dir/ to $base_dir/../.
* lib/gcc.exp, lib/old-dejagnu.exp: Likewise.
-Mon Jul 1 15:53:00 1996 Bob Manson <manson@charmed.cygnus.com>
+1996-07-01 Bob Manson <manson@charmed.cygnus.com>
* lib/old-dejagnu.exp: Don't remove the output file before we've
actually tested it. Don't append pwd to the path of the executable
we're testing.
-Sun Jun 30 14:37:50 1996 Doug Evans <dje@canuck.cygnus.com>
+1996-06-30 Doug Evans <dje@canuck.cygnus.com>
* lib/g++.exp (default_g++_start): Don't pass LDFLAGS, LIBS if -c.
-Wed Jun 26 14:15:55 1996 Bob Manson <manson@charmed.cygnus.com>
+1996-06-26 Bob Manson <manson@charmed.cygnus.com>
* lib/old-dejagnu.exp (old-dejagnu): Add $tmpdir to specify a
temporary directory for compiler files, and set it to a default
@@ -11980,16 +14020,16 @@ Wed Jun 26 14:15:55 1996 Bob Manson <manson@charmed.cygnus.com>
the compiler writes the final output file as $output. Use $output
as the executable to be tested.
-Mon Jun 24 17:12:16 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
+1996-06-24 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp: Also add -Wl,-rpath,... for linux.
-Sat Jun 8 15:12:24 1996 Jeffrey A Law (law@cygnus.com)
+1996-06-08 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture/execute/pending-1.c: New test. Still
pending in Tege's queue.
-Wed Apr 24 18:13:45 1996 Jim Wilson <wilson@chestnut.cygnus.com>
+1996-04-24 Jim Wilson <wilson@chestnut.cygnus.com>
* lib/plumhall.exp (ph_summary): Add arguments name and exec_status.
Add variables local_failcnt and local_unresolvedcnt. Call gcc_fail
@@ -11999,19 +14039,19 @@ Wed Apr 24 18:13:45 1996 Jim Wilson <wilson@chestnut.cygnus.com>
(ph_execute): Add new argument. Pass additional arguments to
ph_summary. Call gcc_fail is there is no execution output.
-Wed Apr 24 13:39:23 1996 Jeffrey A Law (law@cygnus.com)
+1996-04-24 Jeffrey A Law (law@cygnus.com)
* lib/plumhall.exp (proc_summary): Output relavent summary
lines into the log so specific failures in plumhall can be
investigated.
-Wed Apr 10 13:23:45 1996 Jeffrey A Law (law@cygnus.com)
+1996-04-10 Jeffrey A Law (law@cygnus.com)
* lib/c-torture.exp: Provide a default value for $NO_LONG_LONG.
(c-torture-execute): Don't try to execute tests which use
"long long" types if $NO_LONG_LONG is nonzero.
-Mon Apr 8 08:52:29 1996 Doug Evans <dje@canuck.cygnus.com>
+1996-04-08 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/execute/ieee/ieee.exp: Run c-torture-execute,
not c-torture.
@@ -12019,31 +14059,31 @@ Mon Apr 8 08:52:29 1996 Doug Evans <dje@canuck.cygnus.com>
* gcc.ieee: Move from here.
* gcc.c-torture/execute/ieee: To here.
-Tue Mar 26 23:41:18 1996 Jeffrey A Law (law@cygnus.com)
+1996-03-26 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.41 release.
-Fri Mar 22 15:49:24 1996 Jeffrey A Law (law@cygnus.com)
+1996-03-22 Jeffrey A Law (law@cygnus.com)
* lib/c-torture.exp (c-torture-execute): Remove "$executable",
not "$output".
-Thu Mar 7 12:37:08 1996 Doug Evans <dje@charmed.cygnus.com>
+1996-03-07 Doug Evans <dje@charmed.cygnus.com>
* lib/gcc.exp (default_gcc_start): Don't pass $LDFLAGS $LIBS if
-c present.
-Sat Mar 2 22:36:37 1996 Jeffrey A Law (law@cygnus.com)
+1996-03-02 Jeffrey A Law (law@cygnus.com)
* config/proelf.exp: Handle connecting to a simulator.
-Wed Jan 31 00:58:15 1996 Jeffrey A Law (law@cygnus.com)
+1996-01-31 Jeffrey A Law (law@cygnus.com)
* config/proelf.exp: New file. Enough framework that we can
run c-torture tests on the proelf targets (or any other target
that gdb can connect to for that matter).
-Mon Jan 29 08:57:46 1996 Doug Evans <dje@canuck.cygnus.com>
+1996-01-29 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/special/special.exp: Delete libs arg to dg-runtest.
* gcc.ph/testing/limits/limits.exp: Likewise. Don't pass $CFLAGS.
@@ -12051,7 +14091,7 @@ Mon Jan 29 08:57:46 1996 Doug Evans <dje@canuck.cygnus.com>
* lib/plumhall.exp (ph_execute): Always call ph_summary if
exec_output exists.
-Sun Jan 28 11:28:43 1996 Doug Evans <dje@charmed.cygnus.com>
+1996-01-28 Doug Evans <dje@charmed.cygnus.com>
* config/sim.exp (SIM_TIME_LIMIT): New user settable variable.
(${tool}_load): Use 240 seconds if SIM_TIME_LIMIT not set.
@@ -12063,7 +14103,7 @@ Sun Jan 28 11:28:43 1996 Doug Evans <dje@charmed.cygnus.com>
${tool}_load.
* lib/chill.exp (verbose): Delete.
-Sat Jan 27 12:28:07 1996 Doug Evans <dje@charmed.cygnus.com>
+1996-01-27 Doug Evans <dje@charmed.cygnus.com>
* lib/gcc.exp (default_gcc_start): Change order of args to
$LDFLAGS $CFLAGS $LIBS.
@@ -12079,7 +14119,7 @@ Sat Jan 27 12:28:07 1996 Doug Evans <dje@charmed.cygnus.com>
* lib/dg.exp: Deleted, moved to dejagnu/lib.
-Wed Jan 24 18:37:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
+1996-01-24 Brendan Kehoe <brendan@lisa.cygnus.com>
* g++.old-deja/old-deja.exp: Add passing of $mathlib to old-dejagnu.
@@ -12089,28 +14129,28 @@ Wed Jan 24 18:37:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (g++_init): Take out use of -rpath for the sun4, not
necessary.
-Sat Jan 20 17:22:08 1996 Brendan Kehoe <brendan@cygnus.com>
+1996-01-20 Brendan Kehoe <brendan@cygnus.com>
* g++.old-deja/old-deja.exp: Move setting of runshlib out of the
global for loop; add use of $mathlib.
* lib/old-dejagnu.exp (old-dejagnu-init): Put the runshlib
settings here; set mathlib for anything but VxWorks.
-Mon Jan 22 16:31:57 1996 Jeffrey A Law (law@cygnus.com)
+1996-01-22 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.40 release.
-Wed Jan 3 00:54:33 1996 Jeffrey A Law (law@cygnus.com)
+1996-01-03 Jeffrey A Law (law@cygnus.com)
* gcc.ph/testing/limits/limits.exp: Load ${tool}-dg.exp, not
dg.exp.
-Sun Dec 3 16:17:42 1995 Jeffrey A. Law <law@sethra.cygnus.com>
+1995-12-03 Jeffrey A. Law <law@sethra.cygnus.com>
* lib/c-torture.exp (c-torture-execute): Declare "output" as
global.
-Fri Nov 17 20:01:19 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-11-17 Doug Evans <dje@canuck.cygnus.com>
* lib/g++.exp (LIBS): Define if not already.
* lib/gcc-dg.exp (gcc-dg-test): Set executable file as a.out.
@@ -12119,28 +14159,28 @@ Fri Nov 17 20:01:19 1995 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/special (921210-1.c): Call prune_system_crud and
prune_gcc_output.
-Thu Nov 16 09:15:40 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-11-16 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture-compile): Fix calls to `unsupported'.
(c-torture-execute): Likewise. Rename `name' to `testcase'.
-Wed Nov 15 23:04:36 1995 Jeffrey A Law (law@cygnus.com)
+1995-11-15 Jeffrey A Law (law@cygnus.com)
* gcc.c-torture: Update to c-torture-1.39 release.
-Sat Nov 4 12:52:05 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-11-04 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture-execute): Don't return if one option
fails, try others as well.
-Thu Nov 2 09:28:35 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-11-02 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture-execute): This proc's result is `void'.
If compilation fails, mark execute tests as `untested'.
If test is marked as unsupported, don't mark compilation and
execute tests as failed.
-Wed Oct 25 20:57:55 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-25 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (g++_init): Don't link in libg++, and look to
libstdc++ for whether or not we want to be doing shared
@@ -12148,47 +14188,47 @@ Wed Oct 25 20:57:55 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/mike-g++.exp (postbase): Don't link in libg++.
* g++.old-deja/old-deja.exp: Likewise.
-Mon Oct 23 13:05:11 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-23 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (CXX): Default to run `c++' instead of `g++'.
-Tue Oct 17 15:24:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-17 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (g++_init): Also check for libg++.sl for the hppa.
For that, add `-Wl,-a,shared_archive'.
* g++.old-deja/old-deja.exp: Likewise.
-Tue Oct 17 13:09:06 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-10-17 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture-execute): Ensure CFLAGS restored.
-Mon Oct 16 23:13:32 1995 Brendan Kehoe <brendan@cygnus.com>
+1995-10-16 Brendan Kehoe <brendan@cygnus.com>
* lib/mike-g++.exp (postbase): Pay attention to the status of
g++_load.
-Mon Oct 16 19:28:32 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-16 Brendan Kehoe <brendan@lisa.cygnus.com>
* g++.old-deja/old-deja.exp: Add $LIBS at the end of the args.
-Mon Oct 16 13:48:58 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-10-16 Doug Evans <dje@canuck.cygnus.com>
* lib/gcc.exp (default_gcc_start): No longer need to log program
being executed or its output, execute_anywhere does that now.
* lib/g++.exp (default_g++_version): Call execute_anywhere.
(default_g++_start): Likewise. Delete calls to verbose/send_log.
-Thu Oct 12 10:34:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-12 Brendan Kehoe <brendan@lisa.cygnus.com>
* g++.old-deja/old-deja.exp: Updated the shared libg++ tests to be
the same as those in lib/g++.exp.
-Tue Oct 10 13:47:27 1995 Jeff Law (law@hurl.cygnus.com)
+1995-10-10 Jeff Law (law@hurl.cygnus.com)
* gcc.c-torture: Update to c-torture-1.38 release.
* gcc.ieee: Related changes.
-Fri Oct 6 12:39:17 1995 Rob Savoye <rob@darkstar.cygnus.com>
+1995-10-06 Rob Savoye <rob@darkstar.cygnus.com>
* mike-gcc.exp, mike-g++.exp: Use "execute_anywhere" rather than
"exec". Minor reformatting changes.
@@ -12204,41 +14244,41 @@ Fri Oct 6 12:39:17 1995 Rob Savoye <rob@darkstar.cygnus.com>
Use execute_anywhere rather than calling exec directly. Now it
works for canadian cross testing.
-Thu Oct 5 10:06:45 1995 Brendan Kehoe <brendan@rtl.cygnus.com>
+1995-10-05 Brendan Kehoe <brendan@rtl.cygnus.com>
* lib/g++.exp: Add -nocomplain flag to glob. Use catch to put the
results into a variable, and check that rather than using file exists.
-Wed Oct 4 16:31:02 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-10-04 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp: Use glob to see libg++.so.2.7.0, since sun4 doesn't
create a libg++.so. For sunos4.1.*, also add -ltermcap.
-Tue Sep 26 10:15:14 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-26 Brendan Kehoe <brendan@lisa.cygnus.com>
* g++.old-deja/old-deja.exp: Create and pass runshlib and
lib_curses if there's a shared libg++ in the build tree.
-Fri Sep 22 10:47:24 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-09-22 Doug Evans <dje@canuck.cygnus.com>
* lib/mike-{gcc,g++}.exp (postbase): Restore CFLAGS, CXX_FLAGS, LIBS
if not supported target.
-Fri Sep 22 09:22:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (g++_init): Move empty setting of runshlib and
link_curses up to always happen, not just for native builds.
-Thu Sep 21 10:23:32 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-09-21 Jeff Law (law@snake.cs.utah.edu)
* gcc.c-torture: Update to c-torture-1.36 release.
* gcc.failure: Related changes.
-Wed Sep 20 10:56:26 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-09-20 Doug Evans <dje@canuck.cygnus.com>
* lib/plumhall.exp (PHSRC, PHDST): Allow config files to override.
-Tue Sep 19 17:26:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-19 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/g++.exp (g++_init): Put the shared and math lib stuff in here.
* lib/mike-g++.exp (postbase): Not in here. Still reference
@@ -12248,33 +14288,33 @@ Tue Sep 19 17:26:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
pass the runtime shared library options for Solaris, OSF/1, and
Irix5, and link with -lcurses to avoid unresolved references.
-Wed Sep 13 15:28:10 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-13 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/gcc.exp (gcc_init): Return if gcc_initialized is 1, so we
only run once.
-Wed Sep 13 10:51:52 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-09-13 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture-compile): Don't alter CFLAGS.
-Mon Sep 11 11:02:03 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-09-11 Jeff Law (law@snake.cs.utah.edu)
* gcc.c-torture: Update to c-torture-1.35 release. Note we
do not have a framework for the "compat" tests yet.
-Sat Sep 9 16:15:20 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/mike-g++.exp (postbase): New local variable `mathlib',
set to null if we're testing vxworks5.1. Use that instead of
`-lm' in the setting of LIBS for link and run.
-Fri Sep 8 13:53:38 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-08 Brendan Kehoe <brendan@lisa.cygnus.com>
* config/rom68k.exp (${tool}_load): Major changes to make it
work. Verified that it does in fact return the stuff in
exec_output properly. Catch any Emul or any TRAP other than 0.
-Thu Sep 7 23:04:06 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-09-07 Brendan Kehoe <brendan@lisa.cygnus.com>
* lib/mike-g++.exp (prebase): Call g++_init at the end to set
LDFLAGS properly for targets that need stuff from libgloss.
@@ -12282,7 +14322,7 @@ Thu Sep 7 23:04:06 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
only run once.
(gpp_initialized): New variable.
-Wed Sep 6 21:56:13 1995 Rob Savoye <rob@darkstar.cygnus.com>
+1995-09-06 Rob Savoye <rob@darkstar.cygnus.com>
* config/rom68k.exp: Load libgloss.exp.
* lib/gcc.exp (gcc_init): get proper flags for newlib and libgloss
@@ -12290,7 +14330,7 @@ Wed Sep 6 21:56:13 1995 Rob Savoye <rob@darkstar.cygnus.com>
* lib/g++.exp (g++_init): get proper flags for newlib and libgloss
so we can produce a fully linked binary.
-Sun Sep 3 13:25:26 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-09-03 Doug Evans <dje@canuck.cygnus.com>
* lib/plumhall.exp (ph_section): Watch for expected failures.
Add missing `else'.
@@ -12299,7 +14339,7 @@ Sun Sep 3 13:25:26 1995 Doug Evans <dje@canuck.cygnus.com>
run the testcase.
(c-torture): Likewise.
-Mon Aug 28 11:23:38 1995 Doug Evans <dje@cygnus.com>
+1995-08-28 Doug Evans <dje@cygnus.com>
* gcc.dg/dg.exp (scan-assembler, scan-assembler-not): New procs.
@@ -12315,12 +14355,12 @@ Mon Aug 28 11:23:38 1995 Doug Evans <dje@cygnus.com>
* lib/plumhall.exp (ph_execute): Only call ph_summary if
execution "succeeded".
-Mon Aug 14 14:03:53 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-08-14 Doug Evans <dje@canuck.cygnus.com>
* config/win32.exp: New file.
* lib/c-torture.exp (c-torture-execute): Handle $exe_ext.
-Fri Aug 4 15:39:54 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-08-04 Doug Evans <dje@canuck.cygnus.com>
* lib/gcc-dg.exp (gcc-dg-prune): Mark testcases that fill ram as
unsupported.
@@ -12333,7 +14373,7 @@ Fri Aug 4 15:39:54 1995 Doug Evans <dje@canuck.cygnus.com>
prune_system_crud.
* lib/old-dejagnu.exp (old-dejagnu): Likewise.
-Tue Aug 1 11:09:33 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-08-01 Doug Evans <dje@canuck.cygnus.com>
* gcc.misc-tests/{acker1.c,dhry.c,dhry.h,matrix1.c,optbench.c,
sieve.c,sort2.c}: New files.
@@ -12349,73 +14389,73 @@ Tue Aug 1 11:09:33 1995 Doug Evans <dje@canuck.cygnus.com>
* config/sh.exp: Deleted (use sim.exp instead).
-Fri Jul 28 11:33:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-07-28 Brendan Kehoe <brendan@lisa.cygnus.com>
* config/vx.exp: Declare CHECKTASK as global.
* config/vxworks29k.exp: Reduce to only set CHECKTASK, and load vx.exp.
* lib/mike-g++.exp: Load [pwd]/a.out, not `./a.out'.
* lib/old-dejagnu.exp: Load [pwd]/$executable.
-Wed Jul 26 19:45:39 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
+1995-07-26 Brendan Kehoe <brendan@lisa.cygnus.com>
* config/vxworks29k.exp: New file, for the a29k-vxworks5.1
target. Like vx.exp, only includes `vx29k.exp' instead of
`vxworks.exp'.
-Sun Jul 23 17:38:52 1995 Ian Lance Taylor <ian@cygnus.com>
+1995-07-23 Ian Lance Taylor <ian@cygnus.com>
* config/sim.exp: Increase time limit from 120 seconds to 240.
-Thu Jul 6 11:07:38 1995 Jeffrey A. Law <law@rtl.cygnus.com>
+1995-07-06 Jeffrey A. Law <law@rtl.cygnus.com>
* gcc.c-torture/execute/950628-1.c: New test.
-Sat Jun 10 18:51:41 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-06-10 Jeff Law (law@snake.cs.utah.edu)
* gcc.c-torture: Update with changes/additions from
c-torture-1.34.
-Mon Jun 5 17:58:07 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-06-05 Doug Evans <dje@canuck.cygnus.com>
* gcc.prms/prms.exp: Pass LDFLAGS to dg-test.
-Sun Jun 4 05:13:57 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-06-04 Jeff Law (law@snake.cs.utah.edu)
* gcc.c-torture/compile/funcptr-1.c: Test case for 7107.
-Thu Jun 1 00:06:19 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-06-01 Jeff Law (law@snake.cs.utah.edu)
* gcc.c-torture/compile/950512-1.c: New test.
* gcc.c-torture/execute/strct-pack-4.c, strct-pack-5.c}: Likewise.
* gcc.dg/struct-ret-1.c: Likewise.
-Wed May 31 14:25:13 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-05-31 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/execute/{920410-1.c,921113-1.c,921208-2.c,
930106-1.c,memcpy-1.c}: Use STACK_SIZE if defined.
-Tue May 30 11:19:54 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-05-30 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/special/920411-1.c: Deleted.
* gcc.c-torture/special/special.exp: Delete 920411-1.c.
-Mon May 22 16:55:11 1995 Doug Evans <dje@chestnut.cygnus.com>
+1995-05-22 Doug Evans <dje@chestnut.cygnus.com>
* config/sim.exp (${tool}_load): Hack in call to bash to get a
cpu limit.
-Fri May 12 18:57:54 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
+1995-05-12 Torbjorn Granlund <tege@rtl.cygnus.com>
* gcc.c-torture/execute/{950511-1.c,950512-1.c}: New tests.
-Thu May 4 14:23:54 1995 Torbjorn Granlund <tege@adder.cygnus.com>
+1995-05-04 Torbjorn Granlund <tege@adder.cygnus.com>
From kenner;
* gcc.c-torture/execute/va-arg-2.c (f[0-9], f1[0-5]): Verify format
is the proper length.
* va-arg-3.c: Likewise.
-Sun Apr 30 16:02:59 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-04-30 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp: Moved to dejagnu/lib. Copy kept here (for awhile).
* lib/gcc-dg.exp: New file, gcc interface to dg.exp.
@@ -12423,56 +14463,56 @@ Sun Apr 30 16:02:59 1995 Doug Evans <dje@canuck.cygnus.com>
* lib/gcc.exp (default_gcc_start): Delete old cruft. Delete result.
* lib/g++.exp (default_g++_start): Delete old cruft.
-Tue Apr 25 17:20:18 1995 Torbjorn Granlund <tege@cygnus.com>
+1995-04-25 Torbjorn Granlund <tege@cygnus.com>
* gcc.c-torture/execute/memcpy-1.c: Decrease stack requirements from
(2 * (1 << 18)) to (2 * (1 << 17)).
* gcc.c-torture/execute/arith-rand.c: Avoid -0x80000000/-1.
-Thu Apr 20 12:21:13 1995 J.T. Conklin <jtc@rtl.cygnus.com>
+1995-04-20 J.T. Conklin <jtc@rtl.cygnus.com>
* config/rom68k.exp: Renamed from config/idp.exp
-Tue Apr 18 13:33:26 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
+1995-04-18 Torbjorn Granlund <tege@rtl.cygnus.com>
* c-torture/compile/921109-2.c
-Tue Apr 18 10:45:12 1995 Mike Stump <mrs@cygnus.com>
+1995-04-18 Mike Stump <mrs@cygnus.com>
* lib/old-dejagnu.exp: We expect Execution test failure if we expected
excess errors.
-Sat Apr 15 11:16:58 1995 Doug Evans <dje@chestnut.cygnus.com>
+1995-04-15 Doug Evans <dje@chestnut.cygnus.com>
* lib/gcc.exp (default_gcc_start): Handle leading "-" in compiler
output.
* lib/g++.exp (default_g++_start): Likewise.
-Wed Mar 29 16:34:03 1995 Torbjorn Granlund <tege@adder.cygnus.com>
+1995-03-29 Torbjorn Granlund <tege@adder.cygnus.com>
* gcc.c-torture/compile/950329-1.c: New test.
-Tue Mar 28 16:10:33 1995 J.T. Conklin <jtc@rtl.cygnus.com>
+1995-03-28 J.T. Conklin <jtc@rtl.cygnus.com>
* config/bug.exp (${tool}_load): Updated to use new remote_open
and remote_close procs.
* config/idp.exp: New file.
-Wed Mar 22 15:01:58 1995 Torbjorn Granlund <tege@rtl.cygnus.com>
+1995-03-22 Torbjorn Granlund <tege@rtl.cygnus.com>
* gcc.c-torture/execute/950322-1.c: New test.
-Tue Mar 21 21:24:49 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-03-21 Doug Evans <dje@canuck.cygnus.com>
* config/vx.exp (${tool}_load): Clean up testing of return code from
vxworks_ld and vxworks_spawn.
-Tue Mar 21 17:01:42 1995 Doug Evans <dje@deneb.cygnus.com>
+1995-03-21 Doug Evans <dje@deneb.cygnus.com>
* lib/c-torture.exp (c-torture-execute): Pass same text to pass/fail.
-Mon Mar 13 14:49:42 1995 Mike Stump <mrs@cygnus.com>
+1995-03-13 Mike Stump <mrs@cygnus.com>
* lib/old-deja.exp: Add `excess errors test - ' error, now one
can mark excess errors on a machine by machine basis. Note, the
@@ -12482,12 +14522,12 @@ Mon Mar 13 14:49:42 1995 Mike Stump <mrs@cygnus.com>
mips-*-* alpha-*-* m68k-*-* is how to expect excess errors on
those 4 machines, but no others.
-Fri Mar 10 12:33:04 1995 J.T. Conklin <jtc@rtl.cygnus.com>
+1995-03-10 J.T. Conklin <jtc@rtl.cygnus.com>
* gcc.c-torture/execute/execute.exp (c-torture-execute): from here.
* lib/c-torture.exp: to here.
-Fri Mar 10 10:38:15 1995 Torbjorn Granlund <tege@adder.cygnus.com>
+1995-03-10 Torbjorn Granlund <tege@adder.cygnus.com>
* gcc.c-torture/execute/950221-1.c: New test.
* gcc.c-torture/execute/struct-ret-1.c: New test.
@@ -12495,12 +14535,12 @@ Fri Mar 10 10:38:15 1995 Torbjorn Granlund <tege@adder.cygnus.com>
* gcc.c-torture/execute/941101-1.c (f): Fix typo, == was !=.
-Fri Mar 3 16:28:35 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-03-03 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/execute/arith-1.c (main): Return 0.
* gcc.c-torture/execute/arith-rand.c (main): Return 0.
-Wed Mar 1 02:08:29 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
+1995-03-01 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
* g++.gb: New directory of tests, derived from my signature and
class scoping tests.
@@ -12533,16 +14573,16 @@ Wed Mar 1 02:08:29 1995 Gerald Baumgartner (gb@lorenzo.cs.purdue.edu)
* g++.gb/README: New file, explains what these tests are about.
-Tue Feb 28 10:37:52 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-02-28 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp (dg-do): Support `preprocess'.
(dg-test): Likewise.
-Mon Feb 13 15:18:10 1995 J.T. Conklin <jtc@rtl.cygnus.com>
+1995-02-13 J.T. Conklin <jtc@rtl.cygnus.com>
* config/udi.exp: change "continue -expect" to "exp_continue".
-Sat Feb 11 00:25:20 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
+1995-02-11 Torbjorn Granlund (tege@tiny.cygnus.com)
* gcc.c-torture/execute/{921025-1.c, 930525-1.c}:
Delete redundant tests.
@@ -12577,23 +14617,23 @@ Sat Feb 11 00:25:20 1995 Torbjorn Granlund (tege@tiny.cygnus.com)
* gcc.c-torture/compile/920902-1.c: Delete 2:nd parameter.
-Wed Feb 8 15:30:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
+1995-02-08 Jason Merrill <jason@phydeaux.cygnus.com>
* lib/mike-g++.exp: Add -lm to LIBS.
-Tue Feb 7 17:09:50 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-02-07 Doug Evans <dje@canuck.cygnus.com>
* lib/c-torture.exp (c-torture): Allow relative pathname in $srcdir.
-Mon Jan 30 14:33:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
+1995-01-30 Jason Merrill <jason@phydeaux.cygnus.com>
* lib/mike-g++.exp: Add -lstdc++ to LIBS.
-Thu Jan 12 16:41:34 1995 Doug Evans <dje@canuck.cygnus.com>
+1995-01-12 Doug Evans <dje@canuck.cygnus.com>
* gcc.misc-tests/dg-test.exp: Only run if $DG_TEST=yes.
-Mon Jan 2 11:50:10 1995 Jeff Law (law@snake.cs.utah.edu)
+1995-01-02 Jeff Law (law@snake.cs.utah.edu)
* g++.law/{arg9.C, arg10.C, arg11.C, arm15.C, arm16.C}: New tests.
* g++.law/{bad-error3.C, bad-error4.C, bad-error5.C}: Likewise.
@@ -12631,22 +14671,22 @@ Mon Jan 2 11:50:10 1995 Jeff Law (law@snake.cs.utah.edu)
No longer expected to fail.
* g++.law/missed-error3.C: Tweak for recent bool changes.
-Sun Dec 4 20:54:33 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-12-04 Doug Evans <dje@canuck.cygnus.com>
* config/emb-unix: Deleted.
* config/unix.exp (${tool}_load): Use new proc rsh_exec to perform
remote execution. Do final link on remote host if REMOTE_LINK is set.
-Thu Dec 1 08:43:05 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-12-01 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp (dg-test): Fix typo in last patch.
-Wed Nov 30 13:25:32 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-30 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp (dg-test): Fix pattern that searches for expected output
(handles multiple occurrences).
-Thu Nov 24 19:48:38 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-24 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/*/*.exp: Pass full pathname to c-torture.
* gcc.c-torture/execute/execute.exp (c-torture-execute): Remove
@@ -12658,16 +14698,16 @@ Thu Nov 24 19:48:38 1994 Doug Evans <dje@canuck.cygnus.com>
(gcc_fail): Likewise.
* lib/dg.exp (dg-test): Don't delete $subdir from pathname in messages.
-Wed Nov 23 13:56:00 1994 J.T. Conklin <jtc@rtl.cygnus.com>
+1994-11-23 J.T. Conklin <jtc@rtl.cygnus.com>
* lib/netware.exp: Only attach to NetWare i386 systems.
-Wed Nov 16 11:27:00 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-16 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp (dg-test): Don't print $subdir (or above) in pass/fail
messages. Add test name to "output pattern match" pass/fail message.
-Sat Nov 12 22:11:52 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-12 Doug Evans <dje@canuck.cygnus.com>
* gcc.dg: New testsuite.
* gcc.dg/dg.exp: New file.
@@ -12677,14 +14717,14 @@ Sat Nov 12 22:11:52 1994 Doug Evans <dje@canuck.cygnus.com>
* gcc.misc-tests/msgs.exp: New testcase driver.
-Wed Nov 9 14:23:09 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-09 Doug Evans <dje@canuck.cygnus.com>
* gcc.c-torture/execute/execute.exp (c-torture_execute): New proc.
Watch for illegal return values from ${tool}_load.
* config/unix.exp (${tool}_load): Fix pass/fail detection for
cross targets. Coerce return value >0 to 1.
-Tue Nov 8 14:10:33 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-08 Doug Evans <dje@canuck.cygnus.com>
* config/unix.exp (${tool}_load): Call program rsh, not proc.
@@ -12698,7 +14738,7 @@ Tue Nov 8 14:10:33 1994 Doug Evans <dje@canuck.cygnus.com>
and without loops.
* gcc.c-torture/execute/execute.exp: Likewise.
-Wed Nov 2 14:47:58 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-11-02 Doug Evans <dje@canuck.cygnus.com>
* config/*.exp: Clarify return code from ${tool}_load.
Call `unresolved' or `untested' instead of `warning' or `perror'
@@ -12741,13 +14781,13 @@ Wed Nov 2 14:47:58 1994 Doug Evans <dje@canuck.cygnus.com>
Get option list from TORTURE_OPTIONS. Delete -funroll[-all]-loops if
no loops. Update to reflect clarified return codes from ${tool}_load.
-Fri Oct 21 23:10:16 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-10-21 Doug Evans <dje@canuck.cygnus.com>
* lib/old-dejagnu.exp (process-option): Append ".*" to pattern
to grep for.
(old-dejagnu): Likewise (where necessary).
-Fri Oct 14 17:54:58 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-10-14 Doug Evans <dje@canuck.cygnus.com>
* gcc.misc-tests/gcov.exp: New file, for gcov testing.
@@ -12765,16 +14805,16 @@ Fri Oct 14 17:54:58 1994 Doug Evans <dje@canuck.cygnus.com>
Don't clobber previous definition of `unknown'.
Print tcl errors in `dg-final'.
-Wed Oct 12 13:05:37 1994 Doug Evans <dje@canuck.cygnus.com>
+1994-10-12 Doug Evans <dje@canuck.cygnus.com>
* lib/dg.exp (dg-process-target): Improve syntax error messages.
(dg-test): Don't print errorInfo, it contains stack backtrace.
-Mon Sep 26 12:18:53 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-26 Doug Evans (dje@canuck.cygnus.com)
* lib/g++.exp (runtest_file_p): Define if missing.
-Sat Sep 24 15:29:23 1994 Doug Evans (dje@cygnus.com)
+1994-09-24 Doug Evans (dje@cygnus.com)
* lib/mike-g++.exp: Comment out loading of g++.exp.
* lib/g++.exp: Update copyright. Test for existence of $CXX at start.
@@ -12791,7 +14831,7 @@ Sat Sep 24 15:29:23 1994 Doug Evans (dje@cygnus.com)
* g++.old-deja/old-deja.exp: utils.exp is loaded by runtest.exp.
* lib/old-dejagnu.exp: ${tool}.exp is loaded by config file.
-Thu Sep 22 11:39:17 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-22 Doug Evans (dje@canuck.cygnus.com)
* lib/c-torture.exp (c-torture-compile): Rework compiler
message processing.
@@ -12799,13 +14839,13 @@ Thu Sep 22 11:39:17 1994 Doug Evans (dje@canuck.cygnus.com)
* gcc.c-torture/compile/initbug1.{c,exp}: Deleted, not part of
c-torture.
-Wed Sep 21 09:49:43 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-21 Doug Evans (dje@canuck.cygnus.com)
* gcc.wendy/wendy.dis: Renamed from wendy.exp to disable the testsuite.
* lib/dg.exp (dg-process-target): Support { target native }.
-Tue Sep 20 17:16:55 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-20 Doug Evans (dje@canuck.cygnus.com)
* lib/dg.exp (dg-test): Clean up some comments. Delete code that
looked for "... program xxx got fatal signal".
@@ -12813,12 +14853,12 @@ Tue Sep 20 17:16:55 1994 Doug Evans (dje@canuck.cygnus.com)
Ignore compiler messages "path prefix not used" and "linker input
file unused".
-Wed Sep 14 11:44:40 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-14 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp (runtest_file_p): Define if missing.
* gcc.prms/template.c: Example to work from.
-Tue Sep 13 10:30:48 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-13 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp (gcc_finish): Delete code to update `testcnt'.
* lib/dg.exp (dg-test): Call unsupported testcases as such.
@@ -12839,12 +14879,12 @@ Tue Sep 13 10:30:48 1994 Doug Evans (dje@canuck.cygnus.com)
Separate execution pass/fail from output pattern match pass/fail.
Delete BUILD/XBUILD support (duplicate of LOSE/XLOSE).
-Mon Sep 12 13:47:35 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
+1994-09-12 Jim Wilson (wilson@sphagnum.cygnus.com)
* gcc.c-torture/special/special.exp: Don't expect failure for mips
target for 920510-1.c.
-Mon Sep 12 12:44:39 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-12 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp (gcc_init): Move initialized message to verbose level 3.
Clean up comment regarding use of passcnt, etc.
@@ -12862,11 +14902,11 @@ Mon Sep 12 12:44:39 1994 Doug Evans (dje@canuck.cygnus.com)
* g++.old-deja.exp: Likewise.
Move "Testing file" message to verbose level 1.
-Fri Sep 9 10:21:18 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-09 Doug Evans (dje@canuck.cygnus.com)
* gcc.wendy/t.c: Add DEJAGNU_CFLAGS:"-DNOPAUSE".
-Thu Sep 8 16:52:43 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-08 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp: Ensure CFLAGS, LIBS, and LDFLAGS are set.
(default_gcc_start): Accept optional second list element
@@ -12917,7 +14957,7 @@ Thu Sep 8 16:52:43 1994 Doug Evans (dje@canuck.cygnus.com)
* lib/c-torture.exp: Call gcc_pass/gcc_fail instead of
gcc_[ce]pass/fail.
-Wed Sep 7 11:09:08 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-09-07 Doug Evans (dje@canuck.cygnus.com)
* lib/g++.exp (g++_start): Rename arg to `prog' to avoid varargs
confusion.
@@ -12935,7 +14975,7 @@ Wed Sep 7 11:09:08 1994 Doug Evans (dje@canuck.cygnus.com)
Simplify verbose code, and include status and exec_output.
(g++_load): Use gcc_load.
-Sun Sep 4 13:59:27 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
+1994-09-04 Jim Wilson (wilson@sphagnum.cygnus.com)
* gcc.c-torture/noncompile/920928-1.c: Delete obsolete file.
* gcc.c-torture/noncompile/noncompile.exp: Delete support for
@@ -12943,7 +14983,7 @@ Sun Sep 4 13:59:27 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
940714-3.c as these testcases don't exist anymore. Make
va-arg-1.c expected to pass.
-Fri Aug 19 12:27:07 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-08-19 Doug Evans (dje@canuck.cygnus.com)
* gcc.misc-tests/misc.exp: Only run specific testcases.
* gcc.misc-tests/dg-test.exp: New file. Tests dg.exp.
@@ -12959,18 +14999,18 @@ Fri Aug 19 12:27:07 1994 Doug Evans (dje@canuck.cygnus.com)
Simplify "initialized" message.
(gcc_stat): Clean up comments a little.
-Tue Aug 16 11:16:46 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-08-16 Doug Evans (dje@canuck.cygnus.com)
* gcc.prms/prms.exp: New driver for gcc.prms testsuite directory.
-Mon Aug 15 21:20:36 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-08-15 Doug Evans (dje@canuck.cygnus.com)
* lib/old-dejagnu.exp (process-option): New proc.
(old-dejagnu-init, old-dejagnu-stat): Likewise.
(old-dejagnu): Simplify.
* g++.old-deja/old-deja.exp: Update to new version of old-dejagnu.
-Sun Aug 14 09:23:53 1994 Jeff Law (law@snake.cs.utah.edu)
+1994-08-14 Jeff Law (law@snake.cs.utah.edu)
* lib/c-torture.exp (c-torture): Only call setup_xfail if $xfail
exists and is not an empty string.
@@ -13007,7 +15047,7 @@ Sun Aug 14 09:23:53 1994 Jeff Law (law@snake.cs.utah.edu)
940712-1.c, calls.c, combine-hang.c, goto-1.c, init-2.c,
labels-1.c, packed-1.c, zero-strct-1.c}: Import from c-torture-1.29.
-Tue Jul 12 12:49:44 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
+1994-07-12 Jim Kingdon (kingdon@lioth.cygnus.com)
* gcc.execute/{940712-1.c, 940712-2.c, 940713-1.c, 940714-1.c},
gcc.noncompile/{940712-1.h, 940712-1a.h, 940712-1b.h, 940712-1.c,
@@ -13017,12 +15057,12 @@ Tue Jul 12 12:49:44 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
New tests.
* gcc.noncompile/noncompile.exp: Change accordingly.
-Thu Jul 7 14:20:33 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-07-07 Doug Evans (dje@canuck.cygnus.com)
* config/sim.exp, lib/c-torture.exp, lib/gcc.exp:
Undo previous clobberage.
-Mon Jul 4 17:00:59 1994 Jeff Law (law@snake.cs.utah.edu)
+1994-07-04 Jeff Law (law@snake.cs.utah.edu)
* gcc.compile/{931102-1.c, 931102-2.c, 931031-1.c}:
* gcc.special/{930510-1.c, special.exp}:
@@ -13030,18 +15070,18 @@ Mon Jul 4 17:00:59 1994 Jeff Law (law@snake.cs.utah.edu)
931102-2.c, struct-pack-1.c, divmod-1.c, complex-1.c,
struct-varargs-1.c}: New tests from c-torture-1.26.
-Tue Jun 28 17:39:42 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
+1994-06-28 J.T. Conklin (jtc@phishhead.cygnus.com)
* gcc.wendy/wendy.exp: add --'s so that -1 isn't parsed as an
argument to switch.
-Sat May 21 10:39:38 1994 Bill Cox (bill@rtl.cygnus.com)
+1994-05-21 Bill Cox (bill@rtl.cygnus.com)
* Revert the previous changes. Please see Rob's directory
(/lisa/test/rob/progressive/gcc/testsuite) for testing
fixes.
-Thu May 19 18:00:03 1994 Bill Cox (bill@rtl.cygnus.com)
+1994-05-19 Bill Cox (bill@rtl.cygnus.com)
* config/sim.exp, config/udi.exp, config/unix.exp, config/vx.exp,
g++.brendan/alignof.exp, g++.brendan/arm3.exp, g++.brendan/code-gen5.exp,
@@ -13071,17 +15111,17 @@ Thu May 19 18:00:03 1994 Bill Cox (bill@rtl.cygnus.com)
lib/chill.exp, lib/g++.exp, lib/gcc.exp, lib/mike-g++.exp, lib/mike-gcc.exp,
lib/old-dejagnu.exp: Checkin Rob's 94Q1 testing changes.
-Tue May 17 14:55:09 1994 Bill Cox (bill@rtl.cygnus.com)
+1994-05-17 Bill Cox (bill@rtl.cygnus.com)
* config/udi.exp, gcc.execute/execute.exp, gcc.wendy/wendy.exp,
lib/g++.exp, lib/old-dejagnu.exp: Replace error proc calls
with perror calls.
-Mon May 2 17:41:13 1994 Jason Merrill (jason@deneb.cygnus.com)
+1994-05-02 Jason Merrill (jason@deneb.cygnus.com)
* config/unix.exp (g++_load): Fix syntax.
-Thu Apr 14 12:22:10 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
+1994-04-14 Jim Wilson (wilson@sphagnum.cygnus.com)
* gcc.compile/initbug1.exp (CFLAGS): Add space at beginning.
* gcc.noncompile/921017-1.c: Deleted obsolete test.
@@ -13092,7 +15132,7 @@ Thu Apr 14 12:22:10 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
* gcc.wendy/hbm4.c: Correct typo.
* gcc.wendy/tad1.c, tad2.c: Correct expected output.
-Mon Mar 28 13:29:37 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-03-28 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp (gcc_[ce]{pass,fail}): Remove output/executable argument.
* gcc.wendy/wendy.exp (wendy_try): Remove `output' argument of
@@ -13104,19 +15144,19 @@ Mon Mar 28 13:29:37 1994 Doug Evans (dje@canuck.cygnus.com)
Call gcc_cpass, gcc_cfail.
(c-torture): Pass testing option to c-torture-compile.
-Mon Mar 21 12:40:33 1994 Doug Evans (dje@cygnus.com)
+1994-03-21 Doug Evans (dje@cygnus.com)
Bring patches over from progressive.
* config/default.exp: Exit remote shell cleanly.
(g++_exit, g++_start): Add default versions.
* config/sim.exp (gcc_load): Use perror, not error.
-Sun Mar 20 12:05:32 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-03-20 Doug Evans (dje@canuck.cygnus.com)
* lib/gcc.exp: Don't set CFLAGS if CC not set. It clobbers the value
set in site.exp.
-Mon Mar 14 19:30:28 1994 Doug Evans (dje@cygnus.com)
+1994-03-14 Doug Evans (dje@cygnus.com)
* gcc.wendy/wendy.exp (wendy_first_line): New proc to fetch
DEJAGNU_OUTPUT and DEJAGNU_CFLAGS.
@@ -13127,12 +15167,12 @@ Mon Mar 14 19:30:28 1994 Doug Evans (dje@cygnus.com)
* lib/gcc.exp: Minor cleanup work.
(gcc_cpass, gcc_cfail, gcc_epass, gcc_efail): New procs.
-Wed Mar 9 15:22:54 1994 Doug Evans (dje@canuck.cygnus.com)
+1994-03-09 Doug Evans (dje@canuck.cygnus.com)
* config/sim.exp (gcc_load): Document return codes better.
Don't pass -v to simulator.
-Thu Feb 24 07:15:18 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
+1994-02-24 Jeffrey A. Law (law@snake.cs.utah.edu)
* gcc.special/920717-x.c: Fix typo.
* gcc.special/special.exp (920717-x.c): Use $srcdir/$subdir to
@@ -13140,7 +15180,7 @@ Thu Feb 24 07:15:18 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
* lib/mike-gcc.exp: Fix typo.
-Tue Feb 15 15:41:47 1994 Rob Savoye (rob@darkstar.cygnus.com)
+1994-02-15 Rob Savoye (rob@darkstar.cygnus.com)
* lib/gcc.exp: Minor cleanup work. Find the proper gcc or g++
binary to use, transform the name.
@@ -13148,22 +15188,22 @@ Tue Feb 15 15:41:47 1994 Rob Savoye (rob@darkstar.cygnus.com)
it's now a special case of gcc that requires no special support.
Add a default.exp for unsupported targets.
-Fri Feb 11 12:59:54 1994 Rob Savoye (rob@poseidon.cygnus.com)
+1994-02-11 Rob Savoye (rob@poseidon.cygnus.com)
* g++.jason/report.exp, g++.old-deja/old-deja.exp,
lib/old-dejagnu.exp: Fix a few patterns to work with the new
version of Tcl.
-Wed Feb 9 21:35:47 1994 Rob Savoye (rob@darkstar.cygnus.com)
+1994-02-09 Rob Savoye (rob@darkstar.cygnus.com)
* lib/c-torture.exp: Made "file prefix*never used a pass, rather
than a warning.
-Sun Feb 6 16:52:13 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
+1994-02-06 Jeffrey A. Law (law@snake.cs.utah.edu)
* lib/mike-gcc.exp: Add in recent changes from mike-g++.exp.
-Mon Jan 3 17:28:25 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
+1994-01-03 Jim Wilson (wilson@sphagnum.cygnus.com)
* gcc.execute/execute.exp: Combine opt_list and foption_list into
option_list. Compile every file with only 4/6 option choices
@@ -13174,12 +15214,12 @@ Mon Jan 3 17:28:25 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
* lib/gcc.exp: Set LIBS, CFLAGS, and LDFLAGS to empty strings if
not already set.
-Thu Dec 30 17:17:07 1993 Mike Stump (mrs@rtl.cygnus.com)
+1993-12-30 Mike Stump (mrs@rtl.cygnus.com)
* lib/old-deja.exp: Add `excess errors test fails' error, now one
can put an XFAIL *-*-* on excess errors.
-Sun Dec 19 21:45:34 1993 Jeffrey A. Law (law@snake.cs.utah.edu
+1993-12-19 Jeffrey A. Law (law@snake.cs.utah.edu
* g++.law: Add more tests derived from g++-bugs snapshots.
@@ -13189,30 +15229,30 @@ Sun Dec 19 21:45:34 1993 Jeffrey A. Law (law@snake.cs.utah.edu
* lib/mike-gcc.exp (postbase): Delete the .o file after we've
compiled it, and the a.out file after we've run it.
-Fri Dec 17 11:29:56 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
+1993-12-17 Brendan Kehoe (brendan@lisa.cygnus.com)
* lib/mike-g++.exp (postbase): Delete the .o file after we've
compiled it, and the a.out file after we've run it.
-Fri Dec 17 10:18:16 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
+1993-12-17 Jeffrey A. Law (law@snake.cs.utah.edu)
* g++.law/*.exp: Avoid losing arguments added via "append" commands.
-Wed Dec 15 20:36:40 1993 Rob Savoye (rob@darkstar.cygnus.com)
+1993-12-15 Rob Savoye (rob@darkstar.cygnus.com)
* lib/gcc.exp, lib/g++.exp: Use catch rather than exec to get the
version number.
-Sun Dec 12 21:10:04 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
+1993-12-12 Jeffrey A. Law (law@snake.cs.utah.edu)
* g++.law: New directory of g++ tests derived from the g++-bugs
snapshots.
-Thu Dec 09 16:50:41 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-12-09 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.compile: initbug1.c initbug1.exp testcase added
-Mon Dec 06 11:09:52 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-12-06 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.dje/sizetype-1.exp, dje.exp: minor clean ups
* gcc.execute/execute.exp: minor cleanups. added gcc_stat calls. added
@@ -13221,7 +15261,7 @@ Mon Dec 06 11:09:52 1993 Jeffrey Wheat (cassidy@cygnus.com)
Jeff Law (law@cs.utah.edu)
-Tue Nov 30 16:34:07 1993 Mike Stump (mrs@cygnus.com)
+1993-11-30 Mike Stump (mrs@cygnus.com)
* config/unix-g++.exp: Follow the gcc way of doing things.
* g++.old-deja/old-deja.exp: Minor updates.
@@ -13229,37 +15269,37 @@ Tue Nov 30 16:34:07 1993 Mike Stump (mrs@cygnus.com)
* lib/old-dejagnu.exp: Minor updates.
* lib/mike-g++.exp: Always unset errorInfo.
-Sat Nov 6 11:34:51 1993 Mike Stump (mrs@cygnus.com)
+1993-11-06 Mike Stump (mrs@cygnus.com)
* lib/gcc.exp: Fix some errors with the below change, CC and
CFLAGS should be global when setting, not local.
-Wed Nov 3 11:16:26 1993 Rob Savoye (rob@darkstar.cygnus.com)
+1993-11-03 Rob Savoye (rob@darkstar.cygnus.com)
* lib/gcc.exp: Transform tool name.
-Wed Oct 27 23:57:29 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-27 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.*/*.exp: Fixd some de-stablizing changes. Sorry.
-Wed Oct 27 14:45:50 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-27 Jeffrey Wheat (cassidy@cygnus.com)
* lib/gcc.exp: change gcc_done to gcc_stat
-Wed Oct 27 09:57:51 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-27 Jeffrey Wheat (cassidy@cygnus.com)
* Upgraded gcc testsuite to c-torture version 1.25
-Sun Oct 24 10:58:03 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-24 Jeffrey Wheat (cassidy@cygnus.com)
* lib/gcc.exp: added reporting code. Changed verbose compile message.
* lib/c-torture: added hooks for new reporting code.
-Thu Oct 21 18:45:32 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-21 Jeffrey Wheat (cassidy@cygnus.com)
* config/sh-gcc.exp: check if sh-sim exists in the path
-Mon Oct 18 11:13:22 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-18 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.code_quality/code_quality.exp: Initial changes for new logic.
* gcc.compile/compile.exp: Initial changes for new logic.
@@ -13272,7 +15312,7 @@ Mon Oct 18 11:13:22 1993 Jeffrey Wheat (cassidy@cygnus.com)
* lib/c-torture.exp: Initial changes for new logic.
* lib/gcc.exp: Initial changes for new logic.
-Fri Oct 15 00:19:42 1993 Mike Stump (mrs@cygnus.com)
+1993-10-15 Mike Stump (mrs@cygnus.com)
* lib/mike-g++.exp, lib/old-dejagnu.exp: Make the message not
depend upon failure or success. Fully qualify names in failure
@@ -13282,38 +15322,38 @@ Fri Oct 15 00:19:42 1993 Mike Stump (mrs@cygnus.com)
like all others, so that things are uniform. Other miscellaneous
improvements.
-Wed Oct 13 15:04:51 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-13 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.cpp: new directory for cpp tests
-Mon Oct 4 09:03:41 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-10-04 Jeffrey Wheat (cassidy@cygnus.com)
* lib/chill.exp: Code reformatted, removed unused code.
* config/unix-chill.exp: Code reformatted, removed unused code.
* chill.execute/execute.exp: Code reformatted, removed unused code.
* chill.execute/oe/orient.exp: Code reformatted, removed unused code.
-Mon Oct 4 06:19:26 1993 Ian Lance Taylor (ian@cygnus.com)
+1993-10-04 Ian Lance Taylor (ian@cygnus.com)
* config/mips-gcc.exp, config/mips-g++.exp: New files. Execution
routines not written.
-Mon Sep 27 21:07:44 1993 Rob Savoye (rob@darkstar.cygnus.com)
+1993-09-27 Rob Savoye (rob@darkstar.cygnus.com)
* config/bug-gcc.exp: Use new procs from bug.exp.
-Tue Sep 21 18:21:12 1993 Rob Savoye (rob@darkstar.cygnus.com)
+1993-09-21 Rob Savoye (rob@darkstar.cygnus.com)
* config/vx-gcc.exp: Use new vxworks_ld proc, so files get loaded
via ftp, rather than depending on NFS.
* config/vx-gcc.exp: Use new vxworks_spawn proc to execute test
case.
-Thu Sep 9 23:09:15 1993 Rob Savoye (rob@darkstar.cygnus.com)
+1993-09-09 Rob Savoye (rob@darkstar.cygnus.com)
* config/bug-gcc.exp: Use new download proc.
-Tue Sep 14 19:23:58 1993 Jeffrey Wheat (cassidy at deneb.cygnus.com)
+1993-09-14 Jeffrey Wheat (cassidy at deneb.cygnus.com)
* chill.execute/execute.exp: cleanups, handles errors better
* chill.compile/compile.exp: rewrite, based on execute.exp
@@ -13324,13 +15364,13 @@ Tue Sep 14 19:23:58 1993 Jeffrey Wheat (cassidy at deneb.cygnus.com)
Added a hack to capture stderr from exec, so noncompile tests
can work.
-Sat Sep 11 15:30:10 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-09-11 Jeffrey Wheat (cassidy@cygnus.com)
* chill.execute/execute.exp: rewrite of testsuite driver
* lib/chill.exp: rewrite of testsuite driver
* config/unix-chill.exp: rewrite of testsuite driver
-Wed Aug 25 14:11:13 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-08-25 Bill Cox (bill@rtl.cygnus.com)
In chill.execute:
* iexpr.ch: Standardize uppercase.
@@ -13338,7 +15378,7 @@ Wed Aug 25 14:11:13 1993 Bill Cox (bill@rtl.cygnus.com)
* vary.ch: standardize. Correct varying string assignments.
* vary.dat: Add new output lines.
-Tue Aug 24 13:45:49 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-08-24 Bill Cox (bill@rtl.cygnus.com)
In chill.execute:
* chprintf.ch: Standardize use of uppercase.
@@ -13346,13 +15386,13 @@ Tue Aug 24 13:45:49 1993 Bill Cox (bill@rtl.cygnus.com)
rather than a SYN.
* pinits.ch: Standardize.
-Mon Aug 23 17:26:58 1993 Per Bothner (bothner@kalessin.cygnus.com)
+1993-08-23 Per Bothner (bothner@kalessin.cygnus.com)
* rts.c: Get malloc() from <stdlib.h>, not <malloc.h>.
* Makefil: Renamed to Makefile.in.
* configure.in: New.
-Mon Aug 23 14:24:13 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-08-23 Bill Cox (bill@rtl.cygnus.com)
In chill.execute:
* .cvsignore: Add result/output files.
@@ -13366,16 +15406,16 @@ Mon Aug 23 14:24:13 1993 Bill Cox (bill@rtl.cygnus.com)
* sets.ch: Tiny cleanup.
* vary1.ch: Re-indent.
-Tue Aug 17 15:42:07 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-08-17 Bill Cox (bill@rtl.cygnus.com)
* Add PR-related files to Makefiles, .cvsignore files, etc.
-Mon Aug 2 15:46:05 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
+1993-08-02 Jeff Wheat (cassidy@cygnus.com)
* gcc.unsorted: flow.c and loop.c - renamed to avoid conflicts
with compiler objects. New names are test-flow.c and test-loop.c
-Tue Jul 27 10:08:08 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
+1993-07-27 Jeff Wheat (cassidy@cygnus.com)
* Upgraded c-torture tests from 1.19 to 1.20
@@ -13386,24 +15426,24 @@ Tue Jul 27 10:08:08 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
* gcc.failure: 920411-1.c 920627-2.c
* gcc.ieee: 920518-1.c 920810-1.c 930529-1.c
-Tue Jul 20 15:19:44 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
+1993-07-20 Jeff Wheat (cassidy@cygnus.com)
* chill.compile/compile.exp chill.execute/execute.exp lib/chill.exp
More changes to get testsuite working properly. Needs more work.
Added some support for POSIX IEEE Std 1003.3-1991 error messages.
-Mon Jul 19 18:40:31 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
+1993-07-19 Jeff Wheat (cassidy@cygnus.com)
* chill.compile/compile.exp chill.execute/execute.exp lib/chill.exp
More changes to get testsuite working properly. Needs more work.
-Tue Jul 13 18:38:56 PDT 1993 Jeff Wheat (cassidy@cygnus.com)
+1993-07-13 Jeff Wheat (cassidy@cygnus.com)
* chill.compile/compile.exp: Added for Dejagnu support
* chill.execute/execute.exp: Added for Dejagnu support
* lib/chill.exp config/unix-chill.exp : Added for Dejagnu support
-Sat Jun 19 07:13:05 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-06-19 Bill Cox (bill@rtl.cygnus.com)
This should complete moving the CHILL test files.
* chill.noncompile(.cvsignore printf.grt
@@ -13417,12 +15457,12 @@ Sat Jun 19 07:13:05 1993 Bill Cox (bill@rtl.cygnus.com)
test-support files.
(Makefile): More corrections.
-Fri Jun 18 23:40:54 1993 Bill Cox (bill@rtl.cygnus.com)
+1993-06-18 Bill Cox (bill@rtl.cygnus.com)
* chill.compile, chill.execute, chill.nocompile: Add CHILL
test cases, ready for DejaGnu.
-Thu Jun 17 19:14:40 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-06-17 Jeffrey Wheat (cassidy@cygnus.com)
* Upgraded c-torture tests from 1.18 to 1.19
@@ -13435,23 +15475,23 @@ Thu Jun 17 19:14:40 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com)
* gcc.misc-test(s): added tests:
inst-check.c test-consts.c test-ior.c test-switch.c
-Wed Jun 9 16:53:26 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
+1993-06-09 Brendan Kehoe (brendan@lisa.cygnus.com)
* lib/mike-g++.exp: Load `./a.out', not `a.out'.
-Mon Jun 7 16:18:40 1993 Ian Lance Taylor (ian@cygnus.com)
+1993-06-07 Ian Lance Taylor (ian@cygnus.com)
* g++.old-deja/old-deja.exp: Don't delete all the .o files.
-Thu Jun 3 13:13:36 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-06-03 Jeffrey Wheat (cassidy@cygnus.com)
* Upgraded c-torture tests from 1.17 to 1.18
-Wed Jun 2 19:02:40 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com)
+1993-06-02 Jeffrey Wheat (cassidy@cygnus.com)
* Upgraded c-torture tests from 1.12 to 1.17
-Fri Apr 30 09:38:41 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-30 Mike Werner (mtw@deneb.cygnus.com)
* lib/old-dejagnu.exp:
Fixed handling of XFAIL target triplets to correctly
@@ -13460,7 +15500,7 @@ Fri Apr 30 09:38:41 1993 Mike Werner (mtw@deneb.cygnus.com)
printed out by the result of the testcases within a
given test file.
-Thu Apr 29 19:06:29 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-29 Mike Werner (mtw@deneb.cygnus.com)
* lib/old-dejagnu.exp:
Reworked expected failure handling to trigger off of XFAIL
@@ -13470,7 +15510,7 @@ Thu Apr 29 19:06:29 1993 Mike Werner (mtw@deneb.cygnus.com)
It has just occured that the handling of wildcards in the
target triplet may not be correct.
-Fri Apr 23 13:16:20 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-23 Mike Werner (mtw@deneb.cygnus.com)
* g++.old-deja/tests:
Moved all subdirectories up one level into g++.old-deja .
@@ -13485,11 +15525,11 @@ Fri Apr 23 13:16:20 1993 Mike Werner (mtw@deneb.cygnus.com)
this corrected a problem with erroneous diff logs. Added code
to search testcases for expected fail and unexpected pass keywords.
-Tue Apr 20 18:27:58 1993 Rob Savoye (rob at darkstar.cygnus.com)
+1993-04-20 Rob Savoye (rob at darkstar.cygnus.com)
* lib/c-torture.exp: Ignore "file path prefix*unused" message.
-Thu Apr 15 11:01:59 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-15 Mike Werner (mtw@deneb.cygnus.com)
* g++.old-deja/tests/g++.sun/g++.frag/1045608.C:
Removed extraneous text from end of "Special g++ Options"
@@ -13499,14 +15539,14 @@ Thu Apr 15 11:01:59 1993 Mike Werner (mtw@deneb.cygnus.com)
keywords, embedded in testcases comments, which will trigger
calls to xpass and xfail.
-Wed Apr 14 14:28:01 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-14 Mike Werner (mtw@deneb.cygnus.com)
* lib/old-dejagnu.exp: Cleaned up pattern matching for keyphrase
comments embedded in the testcases, especially the one looking for
special compiler options, as well as the pattern matching for the
compiler output again.
-Mon Apr 12 15:15:37 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-12 Mike Werner (mtw@deneb.cygnus.com)
* lib/old-dejagnu.exp: Do a proper check of the return value for
execute tests. Fixed several problems with the pattern matching
@@ -13516,27 +15556,27 @@ Mon Apr 12 15:15:37 1993 Mike Werner (mtw@deneb.cygnus.com)
executes the tests passed to it and returns a usable return
value.
-Sun Apr 11 17:22:37 1993 Rob Savoye (rob at darkstar.cygnus.com)
+1993-04-11 Rob Savoye (rob at darkstar.cygnus.com)
* lib/gcc.exp: Exits gracefully if $CC is bogus.
-Fri Apr 9 09:41:59 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-09 Mike Werner (mtw@deneb.cygnus.com)
* lib/old-dejagnu.exp , g++.old-deja/old-deja.exp:
Modified both files to properly execute the old style
dejagnu tests. The previous versions of these files were
experimental and did not function anything near correctly.
-Mon Apr 5 21:08:24 1993 Rob Savoye (rob@cygnus.com)
+1993-04-05 Rob Savoye (rob@cygnus.com)
* Removed all Makefile.in and configure.in files. No configuration
needed now.
-Fri Apr 2 12:15:17 1993 Mike Werner (mtw@deneb.cygnus.com)
+1993-04-02 Mike Werner (mtw@deneb.cygnus.com)
* lib: relocated old-dejagnu.exp from devo/dejagnu/lib
-Sun Mar 28 11:17:48 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
+1993-03-28 Ken Raeburn (raeburn@kr-pc.cygnus.com)
* gcc.compile/configure.in, gcc.unsorted/configure.in,
gcc.special/configure.in, gcc.noncompile/configure.in,
@@ -13545,18 +15585,18 @@ Sun Mar 28 11:17:48 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
g++.niklas/configure.in, g++.mike/configure.in: Remove extra quote
in srcname setting.
-Thu Mar 25 20:07:55 1993 Rob Savoye (rob at darkstar.cygnus.com)
+1993-03-25 Rob Savoye (rob at darkstar.cygnus.com)
* lib/udi.exp: Fixed mondfe and mondfe_download.
* config/udi-gcc.exp: Fixed misc bugs, works with expect 4.x.
* config/abug-gcc.exp: Fixed misc bugs, works with expect 4.x.
-Thu Mar 25 13:06:41 1993 Ian Lance Taylor (ian@cygnus.com)
+1993-03-25 Ian Lance Taylor (ian@cygnus.com)
* config/udi-gdb.exp: Check $shell_id after connecting to target.
(gdb_exit): Don't remove *_soc files.
-Mon Mar 22 14:28:46 1993 Ian Lance Taylor (ian@cygnus.com)
+1993-03-22 Ian Lance Taylor (ian@cygnus.com)
* lib/c-torture.exp: Don't look for main; instead always use -w
-c. This is how the c-torture tests work. Remove the object
@@ -13590,3 +15630,4 @@ Mon Mar 22 14:28:46 1993 Ian Lance Taylor (ian@cygnus.com)
correspond to c-torture 1.11.
* New file.
+
diff --git a/gcc/testsuite/g++.dg/abi/bitfield11.C b/gcc/testsuite/g++.dg/abi/bitfield11.C
new file mode 100644
index 00000000000..e78ea121d61
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/bitfield11.C
@@ -0,0 +1,14 @@
+// { dg-do run }
+// { dg-options "-w -fabi-version=0" }
+
+struct S {
+ char c : 1024;
+};
+
+S s;
+
+int main () {
+ s.c = 1;
+ if (*(char *)&s != 1)
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/abi/bitfield12.C b/gcc/testsuite/g++.dg/abi/bitfield12.C
new file mode 100644
index 00000000000..6cfda5d47df
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/bitfield12.C
@@ -0,0 +1,5 @@
+// { dg-options "-Wabi -fabi-version=1" }
+
+struct S { // { dg-warning "ABI" }
+ char c : 1024; // { dg-warning "width" }
+};
diff --git a/gcc/testsuite/g++.dg/abi/dcast1.C b/gcc/testsuite/g++.dg/abi/dcast1.C
new file mode 100644
index 00000000000..402684ff446
--- /dev/null
+++ b/gcc/testsuite/g++.dg/abi/dcast1.C
@@ -0,0 +1,29 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 28 Jan 2003 <nathan@codesourcery.com>
+
+// PR 9433. segfault at runtime.
+
+struct A { virtual void f() {}; };
+struct B {int b;};
+struct C : A, B { virtual void f() {}; int c;};
+struct D : C {int d;};
+struct E : C {int e;};
+struct F : protected D, E {int f;};
+struct H : virtual F {int h;};
+struct I : H {int i;};
+struct J : H {int j;};
+struct K : I, J { virtual void f() {}; int k; };
+struct M : K {int m;};
+struct N : M {int n;};
+struct O : M {int o;};
+struct P : N, O { virtual void f() {}; int p;};
+
+int main()
+{
+ P obj;
+ A* a1 = (D *) (&obj);
+ H* hp = dynamic_cast<H*>(a1);
+ return hp != 0;
+}
diff --git a/gcc/testsuite/g++.dg/abi/mangle4.C b/gcc/testsuite/g++.dg/abi/mangle4.C
index e0981273b2e..ec65654e8e2 100644
--- a/gcc/testsuite/g++.dg/abi/mangle4.C
+++ b/gcc/testsuite/g++.dg/abi/mangle4.C
@@ -2,7 +2,7 @@
// { dg-do compile }
class A {};
-class B : A {};
+class B : public A {};
template<const A* a> class C {};
template<const B* b> class D {};
diff --git a/gcc/testsuite/g++.dg/conversion/op2.C b/gcc/testsuite/g++.dg/conversion/op2.C
new file mode 100644
index 00000000000..d31896f23b6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/conversion/op2.C
@@ -0,0 +1,14 @@
+// PR c++/13907
+
+struct A {
+ operator int & ();
+ operator const int & () const;
+};
+
+void f(int &);
+void f(const int &);
+
+int main() {
+ const A x = A();
+ f(x);
+}
diff --git a/gcc/testsuite/g++.dg/cpp/c++_cmd_1.C b/gcc/testsuite/g++.dg/cpp/c++_cmd_1.C
new file mode 100644
index 00000000000..e4e0482936b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp/c++_cmd_1.C
@@ -0,0 +1,12 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-c -include ${srcdir}/g++.dg/cpp/c++_cmd_1.h" } */
+
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+int main ()
+{
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/cpp/c++_cmd_1.h b/gcc/testsuite/g++.dg/cpp/c++_cmd_1.h
new file mode 100644
index 00000000000..06f4941bc54
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp/c++_cmd_1.h
@@ -0,0 +1,6 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc. */
+
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+/* Header file for c++_cmd_1.C */
+
diff --git a/gcc/testsuite/g++.dg/debug/debug8.C b/gcc/testsuite/g++.dg/debug/debug8.C
new file mode 100644
index 00000000000..1f8a18ac8ac
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/debug8.C
@@ -0,0 +1,2 @@
+struct t{};
+struct g : public t{};
diff --git a/gcc/testsuite/g++.dg/eh/cleanup1.C b/gcc/testsuite/g++.dg/eh/cleanup1.C
new file mode 100644
index 00000000000..981b3e8d27f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/cleanup1.C
@@ -0,0 +1,417 @@
+struct vector { ~vector(); };
+struct C { C();
+ vector x; };
+
+struct A {
+ A();
+
+ typedef C T;
+
+ T a0000; T a0001; T a0002; T a0003; T a0004; T a0005; T a0006; T a0007; T a0008; T a0009;
+ T a0010; T a0011; T a0012; T a0013; T a0014; T a0015; T a0016; T a0017; T a0018; T a0019;
+ T a0020; T a0021; T a0022; T a0023; T a0024; T a0025; T a0026; T a0027; T a0028; T a0029;
+ T a0030; T a0031; T a0032; T a0033; T a0034; T a0035; T a0036; T a0037; T a0038; T a0039;
+ T a0040; T a0041; T a0042; T a0043; T a0044; T a0045; T a0046; T a0047; T a0048; T a0049;
+ T a0050; T a0051; T a0052; T a0053; T a0054; T a0055; T a0056; T a0057; T a0058; T a0059;
+ T a0060; T a0061; T a0062; T a0063; T a0064; T a0065; T a0066; T a0067; T a0068; T a0069;
+ T a0070; T a0071; T a0072; T a0073; T a0074; T a0075; T a0076; T a0077; T a0078; T a0079;
+ T a0080; T a0081; T a0082; T a0083; T a0084; T a0085; T a0086; T a0087; T a0088; T a0089;
+ T a0090; T a0091; T a0092; T a0093; T a0094; T a0095; T a0096; T a0097; T a0098; T a0099;
+ T a0100; T a0101; T a0102; T a0103; T a0104; T a0105; T a0106; T a0107; T a0108; T a0109;
+ T a0110; T a0111; T a0112; T a0113; T a0114; T a0115; T a0116; T a0117; T a0118; T a0119;
+ T a0120; T a0121; T a0122; T a0123; T a0124; T a0125; T a0126; T a0127; T a0128; T a0129;
+ T a0130; T a0131; T a0132; T a0133; T a0134; T a0135; T a0136; T a0137; T a0138; T a0139;
+ T a0140; T a0141; T a0142; T a0143; T a0144; T a0145; T a0146; T a0147; T a0148; T a0149;
+ T a0150; T a0151; T a0152; T a0153; T a0154; T a0155; T a0156; T a0157; T a0158; T a0159;
+ T a0160; T a0161; T a0162; T a0163; T a0164; T a0165; T a0166; T a0167; T a0168; T a0169;
+ T a0170; T a0171; T a0172; T a0173; T a0174; T a0175; T a0176; T a0177; T a0178; T a0179;
+ T a0180; T a0181; T a0182; T a0183; T a0184; T a0185; T a0186; T a0187; T a0188; T a0189;
+ T a0190; T a0191; T a0192; T a0193; T a0194; T a0195; T a0196; T a0197; T a0198; T a0199;
+ T a0200; T a0201; T a0202; T a0203; T a0204; T a0205; T a0206; T a0207; T a0208; T a0209;
+ T a0210; T a0211; T a0212; T a0213; T a0214; T a0215; T a0216; T a0217; T a0218; T a0219;
+ T a0220; T a0221; T a0222; T a0223; T a0224; T a0225; T a0226; T a0227; T a0228; T a0229;
+ T a0230; T a0231; T a0232; T a0233; T a0234; T a0235; T a0236; T a0237; T a0238; T a0239;
+ T a0240; T a0241; T a0242; T a0243; T a0244; T a0245; T a0246; T a0247; T a0248; T a0249;
+ T a0250; T a0251; T a0252; T a0253; T a0254; T a0255; T a0256; T a0257; T a0258; T a0259;
+ T a0260; T a0261; T a0262; T a0263; T a0264; T a0265; T a0266; T a0267; T a0268; T a0269;
+ T a0270; T a0271; T a0272; T a0273; T a0274; T a0275; T a0276; T a0277; T a0278; T a0279;
+ T a0280; T a0281; T a0282; T a0283; T a0284; T a0285; T a0286; T a0287; T a0288; T a0289;
+ T a0290; T a0291; T a0292; T a0293; T a0294; T a0295; T a0296; T a0297; T a0298; T a0299;
+ T a0300; T a0301; T a0302; T a0303; T a0304; T a0305; T a0306; T a0307; T a0308; T a0309;
+ T a0310; T a0311; T a0312; T a0313; T a0314; T a0315; T a0316; T a0317; T a0318; T a0319;
+ T a0320; T a0321; T a0322; T a0323; T a0324; T a0325; T a0326; T a0327; T a0328; T a0329;
+ T a0330; T a0331; T a0332; T a0333; T a0334; T a0335; T a0336; T a0337; T a0338; T a0339;
+ T a0340; T a0341; T a0342; T a0343; T a0344; T a0345; T a0346; T a0347; T a0348; T a0349;
+ T a0350; T a0351; T a0352; T a0353; T a0354; T a0355; T a0356; T a0357; T a0358; T a0359;
+ T a0360; T a0361; T a0362; T a0363; T a0364; T a0365; T a0366; T a0367; T a0368; T a0369;
+ T a0370; T a0371; T a0372; T a0373; T a0374; T a0375; T a0376; T a0377; T a0378; T a0379;
+ T a0380; T a0381; T a0382; T a0383; T a0384; T a0385; T a0386; T a0387; T a0388; T a0389;
+ T a0390; T a0391; T a0392; T a0393; T a0394; T a0395; T a0396; T a0397; T a0398; T a0399;
+ T a0400; T a0401; T a0402; T a0403; T a0404; T a0405; T a0406; T a0407; T a0408; T a0409;
+ T a0410; T a0411; T a0412; T a0413; T a0414; T a0415; T a0416; T a0417; T a0418; T a0419;
+ T a0420; T a0421; T a0422; T a0423; T a0424; T a0425; T a0426; T a0427; T a0428; T a0429;
+ T a0430; T a0431; T a0432; T a0433; T a0434; T a0435; T a0436; T a0437; T a0438; T a0439;
+ T a0440; T a0441; T a0442; T a0443; T a0444; T a0445; T a0446; T a0447; T a0448; T a0449;
+ T a0450; T a0451; T a0452; T a0453; T a0454; T a0455; T a0456; T a0457; T a0458; T a0459;
+ T a0460; T a0461; T a0462; T a0463; T a0464; T a0465; T a0466; T a0467; T a0468; T a0469;
+ T a0470; T a0471; T a0472; T a0473; T a0474; T a0475; T a0476; T a0477; T a0478; T a0479;
+ T a0480; T a0481; T a0482; T a0483; T a0484; T a0485; T a0486; T a0487; T a0488; T a0489;
+ T a0490; T a0491; T a0492; T a0493; T a0494; T a0495; T a0496; T a0497; T a0498; T a0499;
+
+ T a0500; T a0501; T a0502; T a0503; T a0504; T a0505; T a0506; T a0507; T a0508; T a0509;
+ T a0510; T a0511; T a0512; T a0513; T a0514; T a0515; T a0516; T a0517; T a0518; T a0519;
+ T a0520; T a0521; T a0522; T a0523; T a0524; T a0525; T a0526; T a0527; T a0528; T a0529;
+ T a0530; T a0531; T a0532; T a0533; T a0534; T a0535; T a0536; T a0537; T a0538; T a0539;
+ T a0540; T a0541; T a0542; T a0543; T a0544; T a0545; T a0546; T a0547; T a0548; T a0549;
+ T a0550; T a0551; T a0552; T a0553; T a0554; T a0555; T a0556; T a0557; T a0558; T a0559;
+ T a0560; T a0561; T a0562; T a0563; T a0564; T a0565; T a0566; T a0567; T a0568; T a0569;
+ T a0570; T a0571; T a0572; T a0573; T a0574; T a0575; T a0576; T a0577; T a0578; T a0579;
+ T a0580; T a0581; T a0582; T a0583; T a0584; T a0585; T a0586; T a0587; T a0588; T a0589;
+ T a0590; T a0591; T a0592; T a0593; T a0594; T a0595; T a0596; T a0597; T a0598; T a0599;
+ T a0600; T a0601; T a0602; T a0603; T a0604; T a0605; T a0606; T a0607; T a0608; T a0609;
+ T a0610; T a0611; T a0612; T a0613; T a0614; T a0615; T a0616; T a0617; T a0618; T a0619;
+ T a0620; T a0621; T a0622; T a0623; T a0624; T a0625; T a0626; T a0627; T a0628; T a0629;
+ T a0630; T a0631; T a0632; T a0633; T a0634; T a0635; T a0636; T a0637; T a0638; T a0639;
+ T a0640; T a0641; T a0642; T a0643; T a0644; T a0645; T a0646; T a0647; T a0648; T a0649;
+ T a0650; T a0651; T a0652; T a0653; T a0654; T a0655; T a0656; T a0657; T a0658; T a0659;
+ T a0660; T a0661; T a0662; T a0663; T a0664; T a0665; T a0666; T a0667; T a0668; T a0669;
+ T a0670; T a0671; T a0672; T a0673; T a0674; T a0675; T a0676; T a0677; T a0678; T a0679;
+ T a0680; T a0681; T a0682; T a0683; T a0684; T a0685; T a0686; T a0687; T a0688; T a0689;
+ T a0690; T a0691; T a0692; T a0693; T a0694; T a0695; T a0696; T a0697; T a0698; T a0699;
+ T a0700; T a0701; T a0702; T a0703; T a0704; T a0705; T a0706; T a0707; T a0708; T a0709;
+ T a0710; T a0711; T a0712; T a0713; T a0714; T a0715; T a0716; T a0717; T a0718; T a0719;
+ T a0720; T a0721; T a0722; T a0723; T a0724; T a0725; T a0726; T a0727; T a0728; T a0729;
+ T a0730; T a0731; T a0732; T a0733; T a0734; T a0735; T a0736; T a0737; T a0738; T a0739;
+ T a0740; T a0741; T a0742; T a0743; T a0744; T a0745; T a0746; T a0747; T a0748; T a0749;
+ T a0750; T a0751; T a0752; T a0753; T a0754; T a0755; T a0756; T a0757; T a0758; T a0759;
+ T a0760; T a0761; T a0762; T a0763; T a0764; T a0765; T a0766; T a0767; T a0768; T a0769;
+ T a0770; T a0771; T a0772; T a0773; T a0774; T a0775; T a0776; T a0777; T a0778; T a0779;
+ T a0780; T a0781; T a0782; T a0783; T a0784; T a0785; T a0786; T a0787; T a0788; T a0789;
+ T a0790; T a0791; T a0792; T a0793; T a0794; T a0795; T a0796; T a0797; T a0798; T a0799;
+ T a0800; T a0801; T a0802; T a0803; T a0804; T a0805; T a0806; T a0807; T a0808; T a0809;
+ T a0810; T a0811; T a0812; T a0813; T a0814; T a0815; T a0816; T a0817; T a0818; T a0819;
+ T a0820; T a0821; T a0822; T a0823; T a0824; T a0825; T a0826; T a0827; T a0828; T a0829;
+ T a0830; T a0831; T a0832; T a0833; T a0834; T a0835; T a0836; T a0837; T a0838; T a0839;
+ T a0840; T a0841; T a0842; T a0843; T a0844; T a0845; T a0846; T a0847; T a0848; T a0849;
+ T a0850; T a0851; T a0852; T a0853; T a0854; T a0855; T a0856; T a0857; T a0858; T a0859;
+ T a0860; T a0861; T a0862; T a0863; T a0864; T a0865; T a0866; T a0867; T a0868; T a0869;
+ T a0870; T a0871; T a0872; T a0873; T a0874; T a0875; T a0876; T a0877; T a0878; T a0879;
+ T a0880; T a0881; T a0882; T a0883; T a0884; T a0885; T a0886; T a0887; T a0888; T a0889;
+ T a0890; T a0891; T a0892; T a0893; T a0894; T a0895; T a0896; T a0897; T a0898; T a0899;
+ T a0900; T a0901; T a0902; T a0903; T a0904; T a0905; T a0906; T a0907; T a0908; T a0909;
+ T a0910; T a0911; T a0912; T a0913; T a0914; T a0915; T a0916; T a0917; T a0918; T a0919;
+ T a0920; T a0921; T a0922; T a0923; T a0924; T a0925; T a0926; T a0927; T a0928; T a0929;
+ T a0930; T a0931; T a0932; T a0933; T a0934; T a0935; T a0936; T a0937; T a0938; T a0939;
+ T a0940; T a0941; T a0942; T a0943; T a0944; T a0945; T a0946; T a0947; T a0948; T a0949;
+ T a0950; T a0951; T a0952; T a0953; T a0954; T a0955; T a0956; T a0957; T a0958; T a0959;
+ T a0960; T a0961; T a0962; T a0963; T a0964; T a0965; T a0966; T a0967; T a0968; T a0969;
+ T a0970; T a0971; T a0972; T a0973; T a0974; T a0975; T a0976; T a0977; T a0978; T a0979;
+ T a0980; T a0981; T a0982; T a0983; T a0984; T a0985; T a0986; T a0987; T a0988; T a0989;
+ T a0990; T a0991; T a0992; T a0993; T a0994; T a0995; T a0996; T a0997; T a0998; T a0999;
+ T a1000; T a1001; T a1002; T a1003; T a1004; T a1005; T a1006; T a1007; T a1008; T a1009;
+ T a1010; T a1011; T a1012; T a1013; T a1014; T a1015; T a1016; T a1017; T a1018; T a1019;
+ T a1020; T a1021; T a1022; T a1023; T a1024; T a1025; T a1026; T a1027; T a1028; T a1029;
+ T a1030; T a1031; T a1032; T a1033; T a1034; T a1035; T a1036; T a1037; T a1038; T a1039;
+ T a1040; T a1041; T a1042; T a1043; T a1044; T a1045; T a1046; T a1047; T a1048; T a1049;
+ T a1050; T a1051; T a1052; T a1053; T a1054; T a1055; T a1056; T a1057; T a1058; T a1059;
+ T a1060; T a1061; T a1062; T a1063; T a1064; T a1065; T a1066; T a1067; T a1068; T a1069;
+ T a1070; T a1071; T a1072; T a1073; T a1074; T a1075; T a1076; T a1077; T a1078; T a1079;
+ T a1080; T a1081; T a1082; T a1083; T a1084; T a1085; T a1086; T a1087; T a1088; T a1089;
+ T a1090; T a1091; T a1092; T a1093; T a1094; T a1095; T a1096; T a1097; T a1098; T a1099;
+ T a1100; T a1101; T a1102; T a1103; T a1104; T a1105; T a1106; T a1107; T a1108; T a1109;
+ T a1110; T a1111; T a1112; T a1113; T a1114; T a1115; T a1116; T a1117; T a1118; T a1119;
+ T a1120; T a1121; T a1122; T a1123; T a1124; T a1125; T a1126; T a1127; T a1128; T a1129;
+ T a1130; T a1131; T a1132; T a1133; T a1134; T a1135; T a1136; T a1137; T a1138; T a1139;
+ T a1140; T a1141; T a1142; T a1143; T a1144; T a1145; T a1146; T a1147; T a1148; T a1149;
+ T a1150; T a1151; T a1152; T a1153; T a1154; T a1155; T a1156; T a1157; T a1158; T a1159;
+ T a1160; T a1161; T a1162; T a1163; T a1164; T a1165; T a1166; T a1167; T a1168; T a1169;
+ T a1170; T a1171; T a1172; T a1173; T a1174; T a1175; T a1176; T a1177; T a1178; T a1179;
+ T a1180; T a1181; T a1182; T a1183; T a1184; T a1185; T a1186; T a1187; T a1188; T a1189;
+ T a1190; T a1191; T a1192; T a1193; T a1194; T a1195; T a1196; T a1197; T a1198; T a1199;
+ T a1200; T a1201; T a1202; T a1203; T a1204; T a1205; T a1206; T a1207; T a1208; T a1209;
+ T a1210; T a1211; T a1212; T a1213; T a1214; T a1215; T a1216; T a1217; T a1218; T a1219;
+ T a1220; T a1221; T a1222; T a1223; T a1224; T a1225; T a1226; T a1227; T a1228; T a1229;
+ T a1230; T a1231; T a1232; T a1233; T a1234; T a1235; T a1236; T a1237; T a1238; T a1239;
+ T a1240; T a1241; T a1242; T a1243; T a1244; T a1245; T a1246; T a1247; T a1248; T a1249;
+ T a1250; T a1251; T a1252; T a1253; T a1254; T a1255; T a1256; T a1257; T a1258; T a1259;
+ T a1260; T a1261; T a1262; T a1263; T a1264; T a1265; T a1266; T a1267; T a1268; T a1269;
+ T a1270; T a1271; T a1272; T a1273; T a1274; T a1275; T a1276; T a1277; T a1278; T a1279;
+ T a1280; T a1281; T a1282; T a1283; T a1284; T a1285; T a1286; T a1287; T a1288; T a1289;
+ T a1290; T a1291; T a1292; T a1293; T a1294; T a1295; T a1296; T a1297; T a1298; T a1299;
+ T a1300; T a1301; T a1302; T a1303; T a1304; T a1305; T a1306; T a1307; T a1308; T a1309;
+ T a1310; T a1311; T a1312; T a1313; T a1314; T a1315; T a1316; T a1317; T a1318; T a1319;
+ T a1320; T a1321; T a1322; T a1323; T a1324; T a1325; T a1326; T a1327; T a1328; T a1329;
+ T a1330; T a1331; T a1332; T a1333; T a1334; T a1335; T a1336; T a1337; T a1338; T a1339;
+ T a1340; T a1341; T a1342; T a1343; T a1344; T a1345; T a1346; T a1347; T a1348; T a1349;
+ T a1350; T a1351; T a1352; T a1353; T a1354; T a1355; T a1356; T a1357; T a1358; T a1359;
+ T a1360; T a1361; T a1362; T a1363; T a1364; T a1365; T a1366; T a1367; T a1368; T a1369;
+ T a1370; T a1371; T a1372; T a1373; T a1374; T a1375; T a1376; T a1377; T a1378; T a1379;
+ T a1380; T a1381; T a1382; T a1383; T a1384; T a1385; T a1386; T a1387; T a1388; T a1389;
+ T a1390; T a1391; T a1392; T a1393; T a1394; T a1395; T a1396; T a1397; T a1398; T a1399;
+ T a1400; T a1401; T a1402; T a1403; T a1404; T a1405; T a1406; T a1407; T a1408; T a1409;
+ T a1410; T a1411; T a1412; T a1413; T a1414; T a1415; T a1416; T a1417; T a1418; T a1419;
+ T a1420; T a1421; T a1422; T a1423; T a1424; T a1425; T a1426; T a1427; T a1428; T a1429;
+ T a1430; T a1431; T a1432; T a1433; T a1434; T a1435; T a1436; T a1437; T a1438; T a1439;
+ T a1440; T a1441; T a1442; T a1443; T a1444; T a1445; T a1446; T a1447; T a1448; T a1449;
+ T a1450; T a1451; T a1452; T a1453; T a1454; T a1455; T a1456; T a1457; T a1458; T a1459;
+ T a1460; T a1461; T a1462; T a1463; T a1464; T a1465; T a1466; T a1467; T a1468; T a1469;
+ T a1470; T a1471; T a1472; T a1473; T a1474; T a1475; T a1476; T a1477; T a1478; T a1479;
+ T a1480; T a1481; T a1482; T a1483; T a1484; T a1485; T a1486; T a1487; T a1488; T a1489;
+ T a1490; T a1491; T a1492; T a1493; T a1494; T a1495; T a1496; T a1497; T a1498; T a1499;
+ T a1500; T a1501; T a1502; T a1503; T a1504; T a1505; T a1506; T a1507; T a1508; T a1509;
+ T a1510; T a1511; T a1512; T a1513; T a1514; T a1515; T a1516; T a1517; T a1518; T a1519;
+ T a1520; T a1521; T a1522; T a1523; T a1524; T a1525; T a1526; T a1527; T a1528; T a1529;
+ T a1530; T a1531; T a1532; T a1533; T a1534; T a1535; T a1536; T a1537; T a1538; T a1539;
+ T a1540; T a1541; T a1542; T a1543; T a1544; T a1545; T a1546; T a1547; T a1548; T a1549;
+ T a1550; T a1551; T a1552; T a1553; T a1554; T a1555; T a1556; T a1557; T a1558; T a1559;
+ T a1560; T a1561; T a1562; T a1563; T a1564; T a1565; T a1566; T a1567; T a1568; T a1569;
+ T a1570; T a1571; T a1572; T a1573; T a1574; T a1575; T a1576; T a1577; T a1578; T a1579;
+ T a1580; T a1581; T a1582; T a1583; T a1584; T a1585; T a1586; T a1587; T a1588; T a1589;
+ T a1590; T a1591; T a1592; T a1593; T a1594; T a1595; T a1596; T a1597; T a1598; T a1599;
+ T a1600; T a1601; T a1602; T a1603; T a1604; T a1605; T a1606; T a1607; T a1608; T a1609;
+ T a1610; T a1611; T a1612; T a1613; T a1614; T a1615; T a1616; T a1617; T a1618; T a1619;
+ T a1620; T a1621; T a1622; T a1623; T a1624; T a1625; T a1626; T a1627; T a1628; T a1629;
+ T a1630; T a1631; T a1632; T a1633; T a1634; T a1635; T a1636; T a1637; T a1638; T a1639;
+ T a1640; T a1641; T a1642; T a1643; T a1644; T a1645; T a1646; T a1647; T a1648; T a1649;
+ T a1650; T a1651; T a1652; T a1653; T a1654; T a1655; T a1656; T a1657; T a1658; T a1659;
+ T a1660; T a1661; T a1662; T a1663; T a1664; T a1665; T a1666; T a1667; T a1668; T a1669;
+ T a1670; T a1671; T a1672; T a1673; T a1674; T a1675; T a1676; T a1677; T a1678; T a1679;
+ T a1680; T a1681; T a1682; T a1683; T a1684; T a1685; T a1686; T a1687; T a1688; T a1689;
+ T a1690; T a1691; T a1692; T a1693; T a1694; T a1695; T a1696; T a1697; T a1698; T a1699;
+ T a1700; T a1701; T a1702; T a1703; T a1704; T a1705; T a1706; T a1707; T a1708; T a1709;
+ T a1710; T a1711; T a1712; T a1713; T a1714; T a1715; T a1716; T a1717; T a1718; T a1719;
+ T a1720; T a1721; T a1722; T a1723; T a1724; T a1725; T a1726; T a1727; T a1728; T a1729;
+ T a1730; T a1731; T a1732; T a1733; T a1734; T a1735; T a1736; T a1737; T a1738; T a1739;
+ T a1740; T a1741; T a1742; T a1743; T a1744; T a1745; T a1746; T a1747; T a1748; T a1749;
+ T a1750; T a1751; T a1752; T a1753; T a1754; T a1755; T a1756; T a1757; T a1758; T a1759;
+ T a1760; T a1761; T a1762; T a1763; T a1764; T a1765; T a1766; T a1767; T a1768; T a1769;
+ T a1770; T a1771; T a1772; T a1773; T a1774; T a1775; T a1776; T a1777; T a1778; T a1779;
+ T a1780; T a1781; T a1782; T a1783; T a1784; T a1785; T a1786; T a1787; T a1788; T a1789;
+ T a1790; T a1791; T a1792; T a1793; T a1794; T a1795; T a1796; T a1797; T a1798; T a1799;
+ T a1800; T a1801; T a1802; T a1803; T a1804; T a1805; T a1806; T a1807; T a1808; T a1809;
+ T a1810; T a1811; T a1812; T a1813; T a1814; T a1815; T a1816; T a1817; T a1818; T a1819;
+ T a1820; T a1821; T a1822; T a1823; T a1824; T a1825; T a1826; T a1827; T a1828; T a1829;
+ T a1830; T a1831; T a1832; T a1833; T a1834; T a1835; T a1836; T a1837; T a1838; T a1839;
+ T a1840; T a1841; T a1842; T a1843; T a1844; T a1845; T a1846; T a1847; T a1848; T a1849;
+ T a1850; T a1851; T a1852; T a1853; T a1854; T a1855; T a1856; T a1857; T a1858; T a1859;
+ T a1860; T a1861; T a1862; T a1863; T a1864; T a1865; T a1866; T a1867; T a1868; T a1869;
+ T a1870; T a1871; T a1872; T a1873; T a1874; T a1875; T a1876; T a1877; T a1878; T a1879;
+ T a1880; T a1881; T a1882; T a1883; T a1884; T a1885; T a1886; T a1887; T a1888; T a1889;
+ T a1890; T a1891; T a1892; T a1893; T a1894; T a1895; T a1896; T a1897; T a1898; T a1899;
+ T a1900; T a1901; T a1902; T a1903; T a1904; T a1905; T a1906; T a1907; T a1908; T a1909;
+ T a1910; T a1911; T a1912; T a1913; T a1914; T a1915; T a1916; T a1917; T a1918; T a1919;
+ T a1920; T a1921; T a1922; T a1923; T a1924; T a1925; T a1926; T a1927; T a1928; T a1929;
+ T a1930; T a1931; T a1932; T a1933; T a1934; T a1935; T a1936; T a1937; T a1938; T a1939;
+ T a1940; T a1941; T a1942; T a1943; T a1944; T a1945; T a1946; T a1947; T a1948; T a1949;
+ T a1950; T a1951; T a1952; T a1953; T a1954; T a1955; T a1956; T a1957; T a1958; T a1959;
+ T a1960; T a1961; T a1962; T a1963; T a1964; T a1965; T a1966; T a1967; T a1968; T a1969;
+ T a1970; T a1971; T a1972; T a1973; T a1974; T a1975; T a1976; T a1977; T a1978; T a1979;
+ T a1980; T a1981; T a1982; T a1983; T a1984; T a1985; T a1986; T a1987; T a1988; T a1989;
+ T a1990; T a1991; T a1992; T a1993; T a1994; T a1995; T a1996; T a1997; T a1998; T a1999;
+
+
+ T a2000; T a2001; T a2002; T a2003; T a2004; T a2005; T a2006; T a2007; T a2008; T a2009;
+ T a2010; T a2011; T a2012; T a2013; T a2014; T a2015; T a2016; T a2017; T a2018; T a2019;
+ T a2020; T a2021; T a2022; T a2023; T a2024; T a2025; T a2026; T a2027; T a2028; T a2029;
+ T a2030; T a2031; T a2032; T a2033; T a2034; T a2035; T a2036; T a2037; T a2038; T a2039;
+ T a2040; T a2041; T a2042; T a2043; T a2044; T a2045; T a2046; T a2047; T a2048; T a2049;
+ T a2050; T a2051; T a2052; T a2053; T a2054; T a2055; T a2056; T a2057; T a2058; T a2059;
+ T a2060; T a2061; T a2062; T a2063; T a2064; T a2065; T a2066; T a2067; T a2068; T a2069;
+ T a2070; T a2071; T a2072; T a2073; T a2074; T a2075; T a2076; T a2077; T a2078; T a2079;
+ T a2080; T a2081; T a2082; T a2083; T a2084; T a2085; T a2086; T a2087; T a2088; T a2089;
+ T a2090; T a2091; T a2092; T a2093; T a2094; T a2095; T a2096; T a2097; T a2098; T a2099;
+ T a2100; T a2101; T a2102; T a2103; T a2104; T a2105; T a2106; T a2107; T a2108; T a2109;
+ T a2110; T a2111; T a2112; T a2113; T a2114; T a2115; T a2116; T a2117; T a2118; T a2119;
+ T a2120; T a2121; T a2122; T a2123; T a2124; T a2125; T a2126; T a2127; T a2128; T a2129;
+ T a2130; T a2131; T a2132; T a2133; T a2134; T a2135; T a2136; T a2137; T a2138; T a2139;
+ T a2140; T a2141; T a2142; T a2143; T a2144; T a2145; T a2146; T a2147; T a2148; T a2149;
+ T a2150; T a2151; T a2152; T a2153; T a2154; T a2155; T a2156; T a2157; T a2158; T a2159;
+ T a2160; T a2161; T a2162; T a2163; T a2164; T a2165; T a2166; T a2167; T a2168; T a2169;
+ T a2170; T a2171; T a2172; T a2173; T a2174; T a2175; T a2176; T a2177; T a2178; T a2179;
+ T a2180; T a2181; T a2182; T a2183; T a2184; T a2185; T a2186; T a2187; T a2188; T a2189;
+ T a2190; T a2191; T a2192; T a2193; T a2194; T a2195; T a2196; T a2197; T a2198; T a2199;
+ T a2200; T a2201; T a2202; T a2203; T a2204; T a2205; T a2206; T a2207; T a2208; T a2209;
+ T a2210; T a2211; T a2212; T a2213; T a2214; T a2215; T a2216; T a2217; T a2218; T a2219;
+ T a2220; T a2221; T a2222; T a2223; T a2224; T a2225; T a2226; T a2227; T a2228; T a2229;
+ T a2230; T a2231; T a2232; T a2233; T a2234; T a2235; T a2236; T a2237; T a2238; T a2239;
+ T a2240; T a2241; T a2242; T a2243; T a2244; T a2245; T a2246; T a2247; T a2248; T a2249;
+ T a2250; T a2251; T a2252; T a2253; T a2254; T a2255; T a2256; T a2257; T a2258; T a2259;
+ T a2260; T a2261; T a2262; T a2263; T a2264; T a2265; T a2266; T a2267; T a2268; T a2269;
+ T a2270; T a2271; T a2272; T a2273; T a2274; T a2275; T a2276; T a2277; T a2278; T a2279;
+ T a2280; T a2281; T a2282; T a2283; T a2284; T a2285; T a2286; T a2287; T a2288; T a2289;
+ T a2290; T a2291; T a2292; T a2293; T a2294; T a2295; T a2296; T a2297; T a2298; T a2299;
+ T a2300; T a2301; T a2302; T a2303; T a2304; T a2305; T a2306; T a2307; T a2308; T a2309;
+ T a2310; T a2311; T a2312; T a2313; T a2314; T a2315; T a2316; T a2317; T a2318; T a2319;
+ T a2320; T a2321; T a2322; T a2323; T a2324; T a2325; T a2326; T a2327; T a2328; T a2329;
+ T a2330; T a2331; T a2332; T a2333; T a2334; T a2335; T a2336; T a2337; T a2338; T a2339;
+ T a2340; T a2341; T a2342; T a2343; T a2344; T a2345; T a2346; T a2347; T a2348; T a2349;
+ T a2350; T a2351; T a2352; T a2353; T a2354; T a2355; T a2356; T a2357; T a2358; T a2359;
+ T a2360; T a2361; T a2362; T a2363; T a2364; T a2365; T a2366; T a2367; T a2368; T a2369;
+ T a2370; T a2371; T a2372; T a2373; T a2374; T a2375; T a2376; T a2377; T a2378; T a2379;
+ T a2380; T a2381; T a2382; T a2383; T a2384; T a2385; T a2386; T a2387; T a2388; T a2389;
+ T a2390; T a2391; T a2392; T a2393; T a2394; T a2395; T a2396; T a2397; T a2398; T a2399;
+ T a2400; T a2401; T a2402; T a2403; T a2404; T a2405; T a2406; T a2407; T a2408; T a2409;
+ T a2410; T a2411; T a2412; T a2413; T a2414; T a2415; T a2416; T a2417; T a2418; T a2419;
+ T a2420; T a2421; T a2422; T a2423; T a2424; T a2425; T a2426; T a2427; T a2428; T a2429;
+ T a2430; T a2431; T a2432; T a2433; T a2434; T a2435; T a2436; T a2437; T a2438; T a2439;
+ T a2440; T a2441; T a2442; T a2443; T a2444; T a2445; T a2446; T a2447; T a2448; T a2449;
+ T a2450; T a2451; T a2452; T a2453; T a2454; T a2455; T a2456; T a2457; T a2458; T a2459;
+ T a2460; T a2461; T a2462; T a2463; T a2464; T a2465; T a2466; T a2467; T a2468; T a2469;
+ T a2470; T a2471; T a2472; T a2473; T a2474; T a2475; T a2476; T a2477; T a2478; T a2479;
+ T a2480; T a2481; T a2482; T a2483; T a2484; T a2485; T a2486; T a2487; T a2488; T a2489;
+ T a2490; T a2491; T a2492; T a2493; T a2494; T a2495; T a2496; T a2497; T a2498; T a2499;
+ T a2500; T a2501; T a2502; T a2503; T a2504; T a2505; T a2506; T a2507; T a2508; T a2509;
+ T a2510; T a2511; T a2512; T a2513; T a2514; T a2515; T a2516; T a2517; T a2518; T a2519;
+ T a2520; T a2521; T a2522; T a2523; T a2524; T a2525; T a2526; T a2527; T a2528; T a2529;
+ T a2530; T a2531; T a2532; T a2533; T a2534; T a2535; T a2536; T a2537; T a2538; T a2539;
+ T a2540; T a2541; T a2542; T a2543; T a2544; T a2545; T a2546; T a2547; T a2548; T a2549;
+ T a2550; T a2551; T a2552; T a2553; T a2554; T a2555; T a2556; T a2557; T a2558; T a2559;
+ T a2560; T a2561; T a2562; T a2563; T a2564; T a2565; T a2566; T a2567; T a2568; T a2569;
+ T a2570; T a2571; T a2572; T a2573; T a2574; T a2575; T a2576; T a2577; T a2578; T a2579;
+ T a2580; T a2581; T a2582; T a2583; T a2584; T a2585; T a2586; T a2587; T a2588; T a2589;
+ T a2590; T a2591; T a2592; T a2593; T a2594; T a2595; T a2596; T a2597; T a2598; T a2599;
+ T a2600; T a2601; T a2602; T a2603; T a2604; T a2605; T a2606; T a2607; T a2608; T a2609;
+ T a2610; T a2611; T a2612; T a2613; T a2614; T a2615; T a2616; T a2617; T a2618; T a2619;
+ T a2620; T a2621; T a2622; T a2623; T a2624; T a2625; T a2626; T a2627; T a2628; T a2629;
+ T a2630; T a2631; T a2632; T a2633; T a2634; T a2635; T a2636; T a2637; T a2638; T a2639;
+ T a2640; T a2641; T a2642; T a2643; T a2644; T a2645; T a2646; T a2647; T a2648; T a2649;
+ T a2650; T a2651; T a2652; T a2653; T a2654; T a2655; T a2656; T a2657; T a2658; T a2659;
+ T a2660; T a2661; T a2662; T a2663; T a2664; T a2665; T a2666; T a2667; T a2668; T a2669;
+ T a2670; T a2671; T a2672; T a2673; T a2674; T a2675; T a2676; T a2677; T a2678; T a2679;
+ T a2680; T a2681; T a2682; T a2683; T a2684; T a2685; T a2686; T a2687; T a2688; T a2689;
+ T a2690; T a2691; T a2692; T a2693; T a2694; T a2695; T a2696; T a2697; T a2698; T a2699;
+ T a2700; T a2701; T a2702; T a2703; T a2704; T a2705; T a2706; T a2707; T a2708; T a2709;
+ T a2710; T a2711; T a2712; T a2713; T a2714; T a2715; T a2716; T a2717; T a2718; T a2719;
+ T a2720; T a2721; T a2722; T a2723; T a2724; T a2725; T a2726; T a2727; T a2728; T a2729;
+ T a2730; T a2731; T a2732; T a2733; T a2734; T a2735; T a2736; T a2737; T a2738; T a2739;
+ T a2740; T a2741; T a2742; T a2743; T a2744; T a2745; T a2746; T a2747; T a2748; T a2749;
+ T a2750; T a2751; T a2752; T a2753; T a2754; T a2755; T a2756; T a2757; T a2758; T a2759;
+ T a2760; T a2761; T a2762; T a2763; T a2764; T a2765; T a2766; T a2767; T a2768; T a2769;
+ T a2770; T a2771; T a2772; T a2773; T a2774; T a2775; T a2776; T a2777; T a2778; T a2779;
+ T a2780; T a2781; T a2782; T a2783; T a2784; T a2785; T a2786; T a2787; T a2788; T a2789;
+ T a2790; T a2791; T a2792; T a2793; T a2794; T a2795; T a2796; T a2797; T a2798; T a2799;
+ T a2800; T a2801; T a2802; T a2803; T a2804; T a2805; T a2806; T a2807; T a2808; T a2809;
+ T a2810; T a2811; T a2812; T a2813; T a2814; T a2815; T a2816; T a2817; T a2818; T a2819;
+ T a2820; T a2821; T a2822; T a2823; T a2824; T a2825; T a2826; T a2827; T a2828; T a2829;
+ T a2830; T a2831; T a2832; T a2833; T a2834; T a2835; T a2836; T a2837; T a2838; T a2839;
+ T a2840; T a2841; T a2842; T a2843; T a2844; T a2845; T a2846; T a2847; T a2848; T a2849;
+ T a2850; T a2851; T a2852; T a2853; T a2854; T a2855; T a2856; T a2857; T a2858; T a2859;
+ T a2860; T a2861; T a2862; T a2863; T a2864; T a2865; T a2866; T a2867; T a2868; T a2869;
+ T a2870; T a2871; T a2872; T a2873; T a2874; T a2875; T a2876; T a2877; T a2878; T a2879;
+ T a2880; T a2881; T a2882; T a2883; T a2884; T a2885; T a2886; T a2887; T a2888; T a2889;
+ T a2890; T a2891; T a2892; T a2893; T a2894; T a2895; T a2896; T a2897; T a2898; T a2899;
+ T a2900; T a2901; T a2902; T a2903; T a2904; T a2905; T a2906; T a2907; T a2908; T a2909;
+ T a2910; T a2911; T a2912; T a2913; T a2914; T a2915; T a2916; T a2917; T a2918; T a2919;
+ T a2920; T a2921; T a2922; T a2923; T a2924; T a2925; T a2926; T a2927; T a2928; T a2929;
+ T a2930; T a2931; T a2932; T a2933; T a2934; T a2935; T a2936; T a2937; T a2938; T a2939;
+ T a2940; T a2941; T a2942; T a2943; T a2944; T a2945; T a2946; T a2947; T a2948; T a2949;
+ T a2950; T a2951; T a2952; T a2953; T a2954; T a2955; T a2956; T a2957; T a2958; T a2959;
+ T a2960; T a2961; T a2962; T a2963; T a2964; T a2965; T a2966; T a2967; T a2968; T a2969;
+ T a2970; T a2971; T a2972; T a2973; T a2974; T a2975; T a2976; T a2977; T a2978; T a2979;
+ T a2980; T a2981; T a2982; T a2983; T a2984; T a2985; T a2986; T a2987; T a2988; T a2989;
+ T a2990; T a2991; T a2992; T a2993; T a2994; T a2995; T a2996; T a2997; T a2998; T a2999;
+
+
+ T a3000; T a3001; T a3002; T a3003; T a3004; T a3005; T a3006; T a3007; T a3008; T a3009;
+ T a3010; T a3011; T a3012; T a3013; T a3014; T a3015; T a3016; T a3017; T a3018; T a3019;
+ T a3020; T a3021; T a3022; T a3023; T a3024; T a3025; T a3026; T a3027; T a3028; T a3029;
+ T a3030; T a3031; T a3032; T a3033; T a3034; T a3035; T a3036; T a3037; T a3038; T a3039;
+ T a3040; T a3041; T a3042; T a3043; T a3044; T a3045; T a3046; T a3047; T a3048; T a3049;
+ T a3050; T a3051; T a3052; T a3053; T a3054; T a3055; T a3056; T a3057; T a3058; T a3059;
+ T a3060; T a3061; T a3062; T a3063; T a3064; T a3065; T a3066; T a3067; T a3068; T a3069;
+ T a3070; T a3071; T a3072; T a3073; T a3074; T a3075; T a3076; T a3077; T a3078; T a3079;
+ T a3080; T a3081; T a3082; T a3083; T a3084; T a3085; T a3086; T a3087; T a3088; T a3089;
+ T a3090; T a3091; T a3092; T a3093; T a3094; T a3095; T a3096; T a3097; T a3098; T a3099;
+ T a3100; T a3101; T a3102; T a3103; T a3104; T a3105; T a3106; T a3107; T a3108; T a3109;
+ T a3110; T a3111; T a3112; T a3113; T a3114; T a3115; T a3116; T a3117; T a3118; T a3119;
+ T a3120; T a3121; T a3122; T a3123; T a3124; T a3125; T a3126; T a3127; T a3128; T a3129;
+ T a3130; T a3131; T a3132; T a3133; T a3134; T a3135; T a3136; T a3137; T a3138; T a3139;
+ T a3140; T a3141; T a3142; T a3143; T a3144; T a3145; T a3146; T a3147; T a3148; T a3149;
+ T a3150; T a3151; T a3152; T a3153; T a3154; T a3155; T a3156; T a3157; T a3158; T a3159;
+ T a3160; T a3161; T a3162; T a3163; T a3164; T a3165; T a3166; T a3167; T a3168; T a3169;
+ T a3170; T a3171; T a3172; T a3173; T a3174; T a3175; T a3176; T a3177; T a3178; T a3179;
+ T a3180; T a3181; T a3182; T a3183; T a3184; T a3185; T a3186; T a3187; T a3188; T a3189;
+ T a3190; T a3191; T a3192; T a3193; T a3194; T a3195; T a3196; T a3197; T a3198; T a3199;
+ T a3200; T a3201; T a3202; T a3203; T a3204; T a3205; T a3206; T a3207; T a3208; T a3209;
+ T a3210; T a3211; T a3212; T a3213; T a3214; T a3215; T a3216; T a3217; T a3218; T a3219;
+ T a3220; T a3221; T a3222; T a3223; T a3224; T a3225; T a3226; T a3227; T a3228; T a3229;
+ T a3230; T a3231; T a3232; T a3233; T a3234; T a3235; T a3236; T a3237; T a3238; T a3239;
+ T a3240; T a3241; T a3242; T a3243; T a3244; T a3245; T a3246; T a3247; T a3248; T a3249;
+ T a3250; T a3251; T a3252; T a3253; T a3254; T a3255; T a3256; T a3257; T a3258; T a3259;
+ T a3260; T a3261; T a3262; T a3263; T a3264; T a3265; T a3266; T a3267; T a3268; T a3269;
+ T a3270; T a3271; T a3272; T a3273; T a3274; T a3275; T a3276; T a3277; T a3278; T a3279;
+ T a3280; T a3281; T a3282; T a3283; T a3284; T a3285; T a3286; T a3287; T a3288; T a3289;
+ T a3290; T a3291; T a3292; T a3293; T a3294; T a3295; T a3296; T a3297; T a3298; T a3299;
+ T a3300; T a3301; T a3302; T a3303; T a3304; T a3305; T a3306; T a3307; T a3308; T a3309;
+ T a3310; T a3311; T a3312; T a3313; T a3314; T a3315; T a3316; T a3317; T a3318; T a3319;
+ T a3320; T a3321; T a3322; T a3323; T a3324; T a3325; T a3326; T a3327; T a3328; T a3329;
+ T a3330; T a3331; T a3332; T a3333; T a3334; T a3335; T a3336; T a3337; T a3338; T a3339;
+ T a3340; T a3341; T a3342; T a3343; T a3344; T a3345; T a3346; T a3347; T a3348; T a3349;
+ T a3350; T a3351; T a3352; T a3353; T a3354; T a3355; T a3356; T a3357; T a3358; T a3359;
+ T a3360; T a3361; T a3362; T a3363; T a3364; T a3365; T a3366; T a3367; T a3368; T a3369;
+ T a3370; T a3371; T a3372; T a3373; T a3374; T a3375; T a3376; T a3377; T a3378; T a3379;
+ T a3380; T a3381; T a3382; T a3383; T a3384; T a3385; T a3386; T a3387; T a3388; T a3389;
+ T a3390; T a3391; T a3392; T a3393; T a3394; T a3395; T a3396; T a3397; T a3398; T a3399;
+ T a3400; T a3401; T a3402; T a3403; T a3404; T a3405; T a3406; T a3407; T a3408; T a3409;
+ T a3410; T a3411; T a3412; T a3413; T a3414; T a3415; T a3416; T a3417; T a3418; T a3419;
+ T a3420; T a3421; T a3422; T a3423; T a3424; T a3425; T a3426; T a3427; T a3428; T a3429;
+ T a3430; T a3431; T a3432; T a3433; T a3434; T a3435; T a3436; T a3437; T a3438; T a3439;
+ T a3440; T a3441; T a3442; T a3443; T a3444; T a3445; T a3446; T a3447; T a3448; T a3449;
+ T a3450; T a3451; T a3452; T a3453; T a3454; T a3455; T a3456; T a3457; T a3458; T a3459;
+ T a3460; T a3461; T a3462; T a3463; T a3464; T a3465; T a3466; T a3467; T a3468; T a3469;
+ T a3470; T a3471; T a3472; T a3473; T a3474; T a3475; T a3476; T a3477; T a3478; T a3479;
+ T a3480; T a3481; T a3482; T a3483; T a3484; T a3485; T a3486; T a3487; T a3488; T a3489;
+ T a3490; T a3491; T a3492; T a3493; T a3494; T a3495; T a3496; T a3497; T a3498; T a3499;
+ T a3500; T a3501; T a3502; T a3503; T a3504; T a3505; T a3506; T a3507; T a3508; T a3509;
+ T a3510; T a3511; T a3512; T a3513; T a3514; T a3515; T a3516; T a3517; T a3518; T a3519;
+ T a3520; T a3521; T a3522; T a3523; T a3524; T a3525; T a3526; T a3527; T a3528; T a3529;
+ T a3530; T a3531; T a3532; T a3533; T a3534; T a3535; T a3536; T a3537; T a3538; T a3539;
+ T a3540; T a3541; T a3542; T a3543; T a3544; T a3545; T a3546; T a3547; T a3548; T a3549;
+ T a3550; T a3551; T a3552; T a3553; T a3554; T a3555; T a3556; T a3557; T a3558; T a3559;
+ T a3560; T a3561; T a3562; T a3563; T a3564; T a3565; T a3566; T a3567; T a3568; T a3569;
+ T a3570; T a3571; T a3572; T a3573; T a3574; T a3575; T a3576; T a3577; T a3578; T a3579;
+ T a3580; T a3581; T a3582; T a3583; T a3584; T a3585; T a3586; T a3587; T a3588; T a3589;
+ T a3590; T a3591; T a3592; T a3593; T a3594; T a3595; T a3596; T a3597; T a3598; T a3599;
+ T a3600; T a3601; T a3602; T a3603; T a3604; T a3605; T a3606; T a3607; T a3608; T a3609;
+ T a3610; T a3611; T a3612; T a3613; T a3614; T a3615; T a3616; T a3617; T a3618; T a3619;
+ T a3620; T a3621; T a3622; T a3623; T a3624; T a3625; T a3626; T a3627; T a3628; T a3629;
+ T a3630; T a3631; T a3632; T a3633; T a3634; T a3635; T a3636; T a3637; T a3638; T a3639;
+ T a3640; T a3641; T a3642; T a3643; T a3644; T a3645; T a3646; T a3647; T a3648; T a3649;
+ T a3650; T a3651; T a3652; T a3653; T a3654; T a3655; T a3656; T a3657; T a3658; T a3659;
+ T a3660; T a3661; T a3662; T a3663; T a3664; T a3665; T a3666; T a3667; T a3668; T a3669;
+ T a3670; T a3671; T a3672; T a3673; T a3674; T a3675; T a3676; T a3677; T a3678; T a3679;
+ T a3680; T a3681; T a3682; T a3683; T a3684; T a3685; T a3686; T a3687; T a3688; T a3689;
+ T a3690; T a3691; T a3692; T a3693; T a3694; T a3695; T a3696; T a3697; T a3698; T a3699;
+ T a3700; T a3701; T a3702; T a3703; T a3704; T a3705; T a3706; T a3707; T a3708; T a3709;
+ T a3710; T a3711; T a3712; T a3713; T a3714; T a3715; T a3716; T a3717; T a3718; T a3719;
+ T a3720; T a3721; T a3722; T a3723; T a3724; T a3725; T a3726; T a3727; T a3728; T a3729;
+ T a3730; T a3731; T a3732; T a3733; T a3734; T a3735; T a3736; T a3737; T a3738; T a3739;
+ T a3740; T a3741; T a3742; T a3743; T a3744; T a3745; T a3746; T a3747; T a3748; T a3749;
+ T a3750; T a3751; T a3752; T a3753; T a3754; T a3755; T a3756; T a3757; T a3758; T a3759;
+ T a3760; T a3761; T a3762; T a3763; T a3764; T a3765; T a3766; T a3767; T a3768; T a3769;
+ T a3770; T a3771; T a3772; T a3773; T a3774; T a3775; T a3776; T a3777; T a3778; T a3779;
+ T a3780; T a3781; T a3782; T a3783; T a3784; T a3785; T a3786; T a3787; T a3788; T a3789;
+ T a3790; T a3791; T a3792; T a3793; T a3794; T a3795; T a3796; T a3797; T a3798; T a3799;
+ T a3800; T a3801; T a3802; T a3803; T a3804; T a3805; T a3806; T a3807; T a3808; T a3809;
+ T a3810; T a3811; T a3812; T a3813; T a3814; T a3815; T a3816; T a3817; T a3818; T a3819;
+ T a3820; T a3821; T a3822; T a3823; T a3824; T a3825; T a3826; T a3827; T a3828; T a3829;
+ T a3830; T a3831; T a3832; T a3833; T a3834; T a3835; T a3836; T a3837; T a3838; T a3839;
+ T a3840; T a3841; T a3842; T a3843; T a3844; T a3845; T a3846; T a3847; T a3848; T a3849;
+ T a3850; T a3851; T a3852; T a3853; T a3854; T a3855; T a3856; T a3857; T a3858; T a3859;
+ T a3860; T a3861; T a3862; T a3863; T a3864; T a3865; T a3866; T a3867; T a3868; T a3869;
+ T a3870; T a3871; T a3872; T a3873; T a3874; T a3875; T a3876; T a3877; T a3878; T a3879;
+ T a3880; T a3881; T a3882; T a3883; T a3884; T a3885; T a3886; T a3887; T a3888; T a3889;
+ T a3890; T a3891; T a3892; T a3893; T a3894; T a3895; T a3896; T a3897; T a3898; T a3899;
+ T a3900; T a3901; T a3902; T a3903; T a3904; T a3905; T a3906; T a3907; T a3908; T a3909;
+ T a3910; T a3911; T a3912; T a3913; T a3914; T a3915; T a3916; T a3917; T a3918; T a3919;
+ T a3920; T a3921; T a3922; T a3923; T a3924; T a3925; T a3926; T a3927; T a3928; T a3929;
+ T a3930; T a3931; T a3932; T a3933; T a3934; T a3935; T a3936; T a3937; T a3938; T a3939;
+ T a3940; T a3941; T a3942; T a3943; T a3944; T a3945; T a3946; T a3947; T a3948; T a3949;
+ T a3950; T a3951; T a3952; T a3953; T a3954; T a3955; T a3956; T a3957; T a3958; T a3959;
+ T a3960; T a3961; T a3962; T a3963; T a3964; T a3965; T a3966; T a3967; T a3968; T a3969;
+ T a3970; T a3971; T a3972; T a3973; T a3974; T a3975; T a3976; T a3977; T a3978; T a3979;
+ T a3980; T a3981; T a3982; T a3983; T a3984; T a3985; T a3986; T a3987; T a3988; T a3989;
+ T a3990; T a3991; T a3992; T a3993; T a3994; T a3995; T a3996; T a3997; T a3998; T a3999;
+};
+
+A::A() {}
diff --git a/gcc/testsuite/g++.dg/eh/cond2.C b/gcc/testsuite/g++.dg/eh/cond2.C
new file mode 100644
index 00000000000..e4b45f7a46f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/cond2.C
@@ -0,0 +1,19 @@
+// PR c++/14083
+
+struct A {
+ A() throw() { }
+ A(const A&) throw() { }
+};
+
+struct X {
+ A a;
+ X();
+ X& operator=(const X& __str);
+};
+
+bool operator==(const X& __lhs, const char* __rhs);
+
+int main() {
+ X x;
+ x=="" ? x : throw 1;
+}
diff --git a/gcc/testsuite/g++.dg/eh/delayslot1.C b/gcc/testsuite/g++.dg/eh/delayslot1.C
new file mode 100644
index 00000000000..ddc960e6d8b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/delayslot1.C
@@ -0,0 +1,47 @@
+// PR target/12301
+// Origin: Colin Hirsch <gcc@cohi.at>
+// Testcase by Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
+
+// This used to fail on SPARC because the reorg pass moved an insn
+// across a function call that can throw internally, in order to put
+// it in a delay slot.
+
+// { dg-do run }
+// { dg-options "-O" }
+
+struct S{
+ char *c;
+ char data[100];
+ S () : c (data) {};
+ S (const S& s) {
+ c = data;
+ data[0] = s.c[0];
+ }
+};
+
+S real_cast ()
+{
+ throw 3;
+}
+
+S cast_helper(S& debug)
+{
+ try {
+ return real_cast();
+ }
+ catch (int e) {
+ throw debug;
+ }
+}
+
+int main()
+{
+ S tmp;
+
+ try {
+ cast_helper (tmp);
+ }
+ catch (S& e) {}
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/eh/forced1.C b/gcc/testsuite/g++.dg/eh/forced1.C
new file mode 100644
index 00000000000..7244a35f36c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/forced1.C
@@ -0,0 +1,81 @@
+// HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
+// { dg-do run { xfail "ia64-hp-hpux11.*" } }
+
+// Test that forced unwinding runs all cleanups. Also tests that
+// rethrowing doesn't call the exception object destructor.
+
+#include <unwind.h>
+#include <stdlib.h>
+
+static int test = 0;
+
+static _Unwind_Reason_Code
+force_unwind_stop (int version, _Unwind_Action actions,
+ _Unwind_Exception_Class exc_class,
+ struct _Unwind_Exception *exc_obj,
+ struct _Unwind_Context *context,
+ void *stop_parameter)
+{
+ if (actions & _UA_END_OF_STACK)
+ {
+ if (test != 15)
+ abort ();
+ exit (0);
+ }
+
+ return _URC_NO_REASON;
+}
+
+static void
+force_unwind_cleanup (_Unwind_Reason_Code, struct _Unwind_Exception *)
+{
+ abort ();
+}
+
+static void force_unwind ()
+{
+ _Unwind_Exception *exc = new _Unwind_Exception;
+ exc->exception_class = 0;
+ exc->exception_cleanup = force_unwind_cleanup;
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
+#else
+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
+#endif
+
+ abort ();
+}
+
+struct S
+{
+ int bit;
+ S(int b) : bit(b) { }
+ ~S() { test |= bit; }
+};
+
+static void doit ()
+{
+ try {
+ S four(4);
+
+ try {
+ S one(1);
+ force_unwind ();
+
+ } catch(...) {
+ test |= 2;
+ throw;
+ }
+
+ } catch(...) {
+ test |= 8;
+ throw;
+ }
+}
+
+int main()
+{
+ doit ();
+ abort ();
+}
diff --git a/gcc/testsuite/g++.dg/eh/forced2.C b/gcc/testsuite/g++.dg/eh/forced2.C
new file mode 100644
index 00000000000..b8ace620dbe
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/forced2.C
@@ -0,0 +1,51 @@
+// HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
+// { dg-do run { xfail "ia64-hp-hpux11.*" } }
+
+// Test that leaving the catch block without rethrowing
+// does call the exception object destructor.
+
+#include <unwind.h>
+#include <stdlib.h>
+
+static _Unwind_Reason_Code
+force_unwind_stop (int version, _Unwind_Action actions,
+ _Unwind_Exception_Class exc_class,
+ struct _Unwind_Exception *exc_obj,
+ struct _Unwind_Context *context,
+ void *stop_parameter)
+{
+ if (actions & _UA_END_OF_STACK)
+ abort ();
+ return _URC_NO_REASON;
+}
+
+static void
+force_unwind_cleanup (_Unwind_Reason_Code, struct _Unwind_Exception *)
+{
+ exit (0);
+}
+
+static void
+force_unwind ()
+{
+ _Unwind_Exception *exc = new _Unwind_Exception;
+ exc->exception_class = 0;
+ exc->exception_cleanup = force_unwind_cleanup;
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
+#else
+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
+#endif
+
+ abort ();
+}
+
+int main()
+{
+ try {
+ force_unwind ();
+ } catch (...) {
+ }
+ abort ();
+}
diff --git a/gcc/testsuite/g++.dg/eh/forced3.C b/gcc/testsuite/g++.dg/eh/forced3.C
new file mode 100644
index 00000000000..29d65d91551
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/forced3.C
@@ -0,0 +1,56 @@
+// HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
+// { dg-do run { xfail "ia64-hp-hpux11.*" } }
+
+// Test that forced unwinding calls std::unexpected going
+// throw a nothrow function.
+
+#include <unwind.h>
+#include <stdlib.h>
+#include <exception>
+
+static _Unwind_Reason_Code
+force_unwind_stop (int version, _Unwind_Action actions,
+ _Unwind_Exception_Class exc_class,
+ struct _Unwind_Exception *exc_obj,
+ struct _Unwind_Context *context,
+ void *stop_parameter)
+{
+ if (actions & _UA_END_OF_STACK)
+ abort ();
+ return _URC_NO_REASON;
+}
+
+static void __attribute__((noreturn))
+force_unwind ()
+{
+ _Unwind_Exception *exc = new _Unwind_Exception;
+ exc->exception_class = 0;
+ exc->exception_cleanup = 0;
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
+#else
+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
+#endif
+
+ abort ();
+}
+
+static void
+handle_unexpected ()
+{
+ exit (0);
+}
+
+static void
+doit () throw()
+{
+ force_unwind ();
+}
+
+int main()
+{
+ std::set_unexpected (handle_unexpected);
+ doit ();
+ abort ();
+}
diff --git a/gcc/testsuite/g++.dg/eh/forced4.C b/gcc/testsuite/g++.dg/eh/forced4.C
new file mode 100644
index 00000000000..88b48c82b0a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/forced4.C
@@ -0,0 +1,50 @@
+// HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
+// { dg-do run { xfail "ia64-hp-hpux11.*" } }
+
+// Test that forced unwinding does not call std::unexpected going
+// throw a function with a non-empty exception spec.
+
+#include <unwind.h>
+#include <stdlib.h>
+
+static _Unwind_Reason_Code
+force_unwind_stop (int version, _Unwind_Action actions,
+ _Unwind_Exception_Class exc_class,
+ struct _Unwind_Exception *exc_obj,
+ struct _Unwind_Context *context,
+ void *stop_parameter)
+{
+ if (actions & _UA_END_OF_STACK)
+ abort ();
+ return _URC_NO_REASON;
+}
+
+static void __attribute__((noreturn))
+force_unwind ()
+{
+ _Unwind_Exception *exc = new _Unwind_Exception;
+ exc->exception_class = 0;
+ exc->exception_cleanup = 0;
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
+#else
+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
+#endif
+
+ abort ();
+}
+
+static void
+doit () throw(int)
+{
+ force_unwind ();
+}
+
+int main()
+{
+ try {
+ doit ();
+ } catch (...) {
+ }
+}
diff --git a/gcc/testsuite/g++.dg/eh/ia64-1.C b/gcc/testsuite/g++.dg/eh/ia64-1.C
new file mode 100644
index 00000000000..17ef7f8b78c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/ia64-1.C
@@ -0,0 +1,59 @@
+// Test whether call saved float and branch regs are restored properly
+// We can't do this test for branch regs in ILP32 mode.
+// { dg-do run { target ia64-*-* } }
+// { dg-options "-O2" }
+
+extern "C" void abort (void);
+
+#ifdef __LP64__
+char buf[128];
+#endif
+
+void __attribute__((noinline))
+bar (void)
+{
+ throw 1;
+}
+
+void __attribute__((noinline))
+foo (void)
+{
+ bar ();
+ bar ();
+}
+
+int
+main (void)
+{
+ register double f2 __asm ("f2");
+ register double f3 __asm ("f3");
+ register double f4 __asm ("f4");
+ register double f5 __asm ("f5");
+ register double f16 __asm ("f16");
+ register double f17 __asm ("f17");
+#ifdef __LP64__
+ register void *b1 __asm ("b1");
+ register void *b2 __asm ("b2");
+ register void *b3 __asm ("b3");
+ register void *b4 __asm ("b4");
+ register void *b5 __asm ("b5");
+#endif
+ f2 = 12.0; f3 = 13.0; f4 = 14.0; f5 = 15.0; f16 = 16.0; f17 = 17.0;
+#ifdef __LP64__
+ b1 = &buf[1]; b2 = &buf[2]; b3 = &buf[3]; b4 = &buf[4]; b5 = &buf[5];
+#endif
+ try
+ {
+ foo ();
+ }
+ catch (...) {}
+ if (f2 != 12.0 || f3 != 13.0 || f4 != 14.0
+ || f5 != 15.0 || f16 != 16.0 || f17 != 17.0)
+ abort ();
+#ifdef __LP64__
+ if (b1 != &buf[1] || b2 != &buf[2] || b3 != &buf[3]
+ || b4 != &buf[4] || b5 != &buf[5])
+ abort ();
+#endif
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/eh/spec7.C b/gcc/testsuite/g++.dg/eh/spec7.C
new file mode 100644
index 00000000000..08586a2af75
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/spec7.C
@@ -0,0 +1,35 @@
+// PR 14535
+// { dg-do run }
+// { dg-options "-O -finline" }
+//
+// Original test case failure required that Raiser constructor be inlined.
+
+extern "C" void abort();
+bool destructor_called = false;
+
+struct B {
+ virtual void Run(){};
+};
+
+struct D : public B {
+ virtual void Run()
+ {
+ struct O {
+ ~O() { destructor_called = true; };
+ } o;
+
+ struct Raiser {
+ Raiser() throw( int ) {throw 1;};
+ } raiser;
+ };
+};
+
+int main() {
+ try {
+ D d;
+ static_cast<B&>(d).Run();
+ } catch (...) {}
+
+ if (!destructor_called)
+ abort ();
+}
diff --git a/gcc/testsuite/g++.dg/expr/anew1.C b/gcc/testsuite/g++.dg/expr/anew1.C
new file mode 100644
index 00000000000..9e0d0ec601f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/anew1.C
@@ -0,0 +1,28 @@
+// { dg-do run { xfail *-*-* } }
+// XFAILed until PR2123 is fixed
+// PR 11228: array operator new, with zero-initialization and a variable sized array.
+// Regression test for PR
+// Author: Matt Austern <austern@apple.com>
+
+
+#include <new>
+#include <stdlib.h>
+#include <string.h>
+
+int* allocate(int n)
+{
+ void *p;
+ p = malloc(n * sizeof (int));
+ memset (p, 0xff, n * sizeof(int));
+ return new (p) int[n]();
+}
+
+int main()
+{
+ const int n = 17;
+ int* p = allocate(n);
+ for (int i = 0; i < n; ++i)
+ if (p[i] != 0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/g++.dg/expr/anew2.C b/gcc/testsuite/g++.dg/expr/anew2.C
new file mode 100644
index 00000000000..aa11eef149c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/anew2.C
@@ -0,0 +1,28 @@
+// { dg-do run { xfail *-*-* } }
+// XFAILed until PR2123 is fixed
+// PR 11228: array operator new, with zero-initialization and a variable sized array.
+// Regression test for PR
+// Author: Matt Austern <austern@apple.com>
+
+
+#include <new>
+#include <stdlib.h>
+#include <string.h>
+
+double* allocate(int n)
+{
+ void *p;
+ p = malloc(n * sizeof (double));
+ memset (p, 0xff, n * sizeof(double));
+ return new (p) double[n]();
+}
+
+int main()
+{
+ const int n = 17;
+ double* p = allocate(n);
+ for (int i = 0; i < n; ++i)
+ if (p[i] != 0.0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/g++.dg/expr/anew3.C b/gcc/testsuite/g++.dg/expr/anew3.C
new file mode 100644
index 00000000000..c8ab44183ca
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/anew3.C
@@ -0,0 +1,33 @@
+// { dg-do run { xfail *-*-* } }
+// XFAILed until PR2123 is fixed
+// PR 11228: array operator new, with zero-initialization and a variable sized array.
+// Regression test for PR
+// Author: Matt Austern <austern@apple.com>
+
+#include <new>
+#include <stdlib.h>
+#include <string.h>
+
+struct X
+{
+ int a;
+ double b;
+};
+
+X* allocate(int n)
+{
+ void *p;
+ p = malloc(n * sizeof (X));
+ memset (p, 0xff, n * sizeof(X));
+ return new (p) X[n]();
+}
+
+int main()
+{
+ const int n = 17;
+ X* p = allocate(n);
+ for (int i = 0; i < n; ++i)
+ if (p[i].a != 0 || p[i].b != 0.0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/g++.dg/expr/anew4.C b/gcc/testsuite/g++.dg/expr/anew4.C
new file mode 100644
index 00000000000..d86d5251412
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/anew4.C
@@ -0,0 +1,45 @@
+// { dg-do run { xfail *-*-* } }
+// XFAILed until PR2123 is fixed
+// PR 11228: array operator new, with zero-initialization and a variable sized array.
+// Regression test for PR
+// Author: Matt Austern <austern@apple.com>
+
+#include <new>
+#include <stdlib.h>
+#include <string.h>
+
+struct B
+{
+ B();
+ int n;
+};
+
+B::B()
+{
+ n = 137;
+}
+
+
+struct D : public B
+{
+ double x;
+};
+
+
+D* allocate(int n)
+{
+ void *p;
+ p = malloc(n * sizeof (D));
+ memset (p, 0xff, n * sizeof(D));
+ return new (p) D[n]();
+}
+
+int main()
+{
+ const int n = 17;
+ D* p = allocate(n);
+ for (int i = 0; i < n; ++i)
+ if (p[i].n != 137 || p[i].x != 0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/g++.dg/expr/cast1.C b/gcc/testsuite/g++.dg/expr/cast1.C
new file mode 100644
index 00000000000..ee1adcc3d23
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/cast1.C
@@ -0,0 +1,3 @@
+struct S; // { dg-error "forward" }
+
+void f(S* p) { ((S) (*p)); } // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/expr/comma1.C b/gcc/testsuite/g++.dg/expr/comma1.C
new file mode 100644
index 00000000000..5424ce1a84e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/comma1.C
@@ -0,0 +1,21 @@
+// { dg-do run }
+
+extern "C" void abort ();
+
+struct gtst
+{
+ unsigned char data[2];
+};
+
+static struct gtst s;
+
+int main(int argc, char *argv[])
+{
+ unsigned char * pc;
+ struct gtst * ps;
+ ps = &s;
+ pc = (ps->data[0]='A', ps->data);
+ if (&s.data[0] != pc)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/expr/cond5.C b/gcc/testsuite/g++.dg/expr/cond5.C
new file mode 100644
index 00000000000..cb62dd1cfa4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/cond5.C
@@ -0,0 +1,3 @@
+void f() {
+ true ? throw 1 : (void)7;
+}
diff --git a/gcc/testsuite/g++.dg/expr/dtor1.C b/gcc/testsuite/g++.dg/expr/dtor1.C
new file mode 100644
index 00000000000..0775a93c91b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/dtor1.C
@@ -0,0 +1,7 @@
+class Foo; // { dg-error "" }
+
+void
+bar(void* p)
+{
+ static_cast<Foo*>(p)->~Foo(); // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/expr/static_cast1.C b/gcc/testsuite/g++.dg/expr/static_cast1.C
new file mode 100644
index 00000000000..f1d88bff363
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/static_cast1.C
@@ -0,0 +1,5 @@
+void foo(int x)
+{
+ static_cast<const unsigned int&>(x);
+}
+
diff --git a/gcc/testsuite/g++.dg/expr/static_cast2.C b/gcc/testsuite/g++.dg/expr/static_cast2.C
new file mode 100644
index 00000000000..7b5d46dedf8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/static_cast2.C
@@ -0,0 +1,7 @@
+struct B {};
+
+int main () {
+ B a;
+ (1 ? static_cast<B&>(a) :
+ *static_cast<B*>(&a));
+}
diff --git a/gcc/testsuite/g++.dg/expr/static_cast3.C b/gcc/testsuite/g++.dg/expr/static_cast3.C
new file mode 100644
index 00000000000..744648c3f45
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/static_cast3.C
@@ -0,0 +1,24 @@
+template <class T> struct static_abort {};
+
+template <class E>
+struct any
+{
+ const E& self() const { return static_cast<const E&>(*this); }
+};
+
+struct range : public any<range>
+{
+ range() {}
+
+ template <class U>
+ range(const U&)
+ {
+ typedef typename static_abort<U>::ret t;
+ }
+};
+
+int main()
+{
+ const any<range>& r = *new range();
+ r.self();
+}
diff --git a/gcc/testsuite/g++.dg/expr/static_cast4.C b/gcc/testsuite/g++.dg/expr/static_cast4.C
new file mode 100644
index 00000000000..cea7f487393
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/static_cast4.C
@@ -0,0 +1,11 @@
+class C {
+public:
+ explicit C(int) {}
+};
+
+int main()
+{
+ int i = 0;
+ static_cast<C>(i);
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/expr/static_cast5.C b/gcc/testsuite/g++.dg/expr/static_cast5.C
new file mode 100644
index 00000000000..1a51f151677
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/static_cast5.C
@@ -0,0 +1,17 @@
+void ambig()
+{
+ struct A {};
+ struct B : A {};
+ struct C : A {};
+ struct D : B, C {};
+
+ D d;
+ A* ap = static_cast<B*> (&d);
+ D* db = static_cast<D*> (ap); // { dg-error "" }
+
+ D& dr1 = static_cast<D&> (*ap); // { dg-error "" }
+
+ A& ar = static_cast<C&> (d);
+ D& dr = static_cast<D&> (ar); // { dg-error "" }
+}
+
diff --git a/gcc/testsuite/g++.dg/ext/anon-struct4.C b/gcc/testsuite/g++.dg/ext/anon-struct4.C
new file mode 100644
index 00000000000..f0b3b57f70d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/anon-struct4.C
@@ -0,0 +1,3 @@
+// PR c++/14401
+
+struct { struct { int& i ; } bar ; } foo ; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/ext/array1.C b/gcc/testsuite/g++.dg/ext/array1.C
new file mode 100644
index 00000000000..d37cf912adc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/array1.C
@@ -0,0 +1,14 @@
+// PR c++/13574
+// { dg-options "" }
+
+class A {
+public:
+ A() : argc(0), argv() { };
+ private:
+ int argc;
+ char* argv[];
+};
+
+int main() {
+ A y;
+}
diff --git a/gcc/testsuite/g++.dg/ext/attrib8.C b/gcc/testsuite/g++.dg/ext/attrib8.C
new file mode 100644
index 00000000000..26021c56ca4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/attrib8.C
@@ -0,0 +1,10 @@
+// PR 8656
+// { dg-do compile { target i?86-*-* } }
+
+extern int * (__attribute__((stdcall)) *fooPtr)( void);
+int * __attribute__((stdcall)) myFn01( void) { return 0; }
+
+void snafu( void)
+{
+ fooPtr = myFn01;
+}
diff --git a/gcc/testsuite/g++.dg/ext/desig1.C b/gcc/testsuite/g++.dg/ext/desig1.C
new file mode 100644
index 00000000000..c3ff4c14258
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/desig1.C
@@ -0,0 +1,24 @@
+// { dg-options "" }
+
+struct a {
+ int x;
+};
+
+struct b {
+ int x;
+ int y;
+};
+
+struct foo {
+ union {
+ struct a a;
+ struct b b;
+ } u;
+};
+
+int main(void)
+{
+ struct foo bar = { u: { b: { x: 0, y: 0, }}};
+ (void)bar;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/ext/dllexport1.C b/gcc/testsuite/g++.dg/ext/dllexport1.C
new file mode 100644
index 00000000000..5f065d4a94a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllexport1.C
@@ -0,0 +1,23 @@
+// Test that inline functions are exported with -fkeep-inline-functions.
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// { dg-options -fkeep-inline-functions }
+
+__attribute__((dllexport)) inline int foo (int a) { return a;}
+
+
+class __attribute__((dllexport)) Bar
+{
+ public:
+ Bar(){};
+ int inline_bar(int a) {return a;}
+ int outline_bar(int a);
+};
+
+int Bar::outline_bar(int a) {return foo (a);}
+
+
+Bar abar;
+
+// { dg-final { scan-assembler "\.section\[ \t\]*.drectve\n.*_ZN3Bar11outline_barEi" } }
+// { dg-final { scan-assembler " -export:_ZN3Bar10inline_barEi" } }
+// { dg-final { scan-assembler " -export:_Z3fooi" } }
diff --git a/gcc/testsuite/g++.dg/ext/dllimport1.C b/gcc/testsuite/g++.dg/ext/dllimport1.C
new file mode 100644
index 00000000000..844c92ebc5a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport1.C
@@ -0,0 +1,31 @@
+// PR c++/7910
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// { dg-options { -Wall -W } }
+
+class __attribute__((dllimport)) Foo
+{
+ public:
+ virtual void dummy_foo_func(void)
+ {} // { dg-warning "inline function" }
+ void Foo::dummy_foo_fun2();
+ virtual ~Foo(); // avoid warning
+};
+
+void Foo::dummy_foo_fun2()
+{ // { dg-warning "defined" }
+}
+
+class Bar : public Foo
+{
+public:
+ ~Bar();
+ void dummy_bar_func();
+};
+
+Bar::~Bar()
+{}
+
+void Bar::dummy_bar_func()
+{}
+
+// { dg-final { scan-assembler-not "__imp___ZN3Foo14dummy_foo_fun" } }
diff --git a/gcc/testsuite/g++.dg/ext/dllimport10.C b/gcc/testsuite/g++.dg/ext/dllimport10.C
new file mode 100644
index 00000000000..c8aaf228a83
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport10.C
@@ -0,0 +1,16 @@
+// PR c++/5287, c++/11021
+// Inherit a virtual method from a dllimport'd base class.
+
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+struct __attribute__((dllimport)) A
+{
+ virtual void vfunc(void);
+};
+
+struct B : public A
+{
+};
+
+
+B aB;
diff --git a/gcc/testsuite/g++.dg/ext/dllimport2.C b/gcc/testsuite/g++.dg/ext/dllimport2.C
new file mode 100644
index 00000000000..8acad5b0d76
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport2.C
@@ -0,0 +1,29 @@
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+// PR c++/9738 Dllimport attribute is overriden by later definition/redeclaration
+
+void __attribute__((dllimport)) Bar(void);
+void __attribute__((dllimport)) Baz(void);
+__attribute__((dllimport)) int Biz;
+__attribute__((dllimport)) int Boz;
+
+void Foo(void)
+ {
+ Bar();
+ Baz();
+ Biz++;
+ Boz++;
+ }
+
+void Bar(void)
+ { // { dg-warning "defined" }
+ }
+
+void Baz(void); // { dg-warning "redeclared" }
+extern int Biz; // { dg-warning "redeclared" }
+int Boz; // { dg-warning "defined" }
+
+void foo()
+{
+ Biz++;
+}
diff --git a/gcc/testsuite/g++.dg/ext/dllimport3.C b/gcc/testsuite/g++.dg/ext/dllimport3.C
new file mode 100644
index 00000000000..5a13a509d4f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport3.C
@@ -0,0 +1,25 @@
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+// PR 10148 Dllimport attribute of object is overriden by later
+// redefinition without attribute.
+
+struct Foo
+ {
+ int a;
+ };
+
+ __attribute__((dllimport)) struct Foo f;
+
+ void Bar(void)
+ {
+ void* dummy = &f;
+ }
+
+ struct Foo f; // { dg-warning "defined" }
+
+// Dllimport sets DECL_NON_ADDR_CONST_P to 1, so following
+// assignment would require static_initialization_and_destruction
+// if attribute is retained.
+
+ void* dummy = &f;
+
diff --git a/gcc/testsuite/g++.dg/ext/dllimport4.C b/gcc/testsuite/g++.dg/ext/dllimport4.C
new file mode 100644
index 00000000000..f61773b89a0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport4.C
@@ -0,0 +1,6 @@
+// Report error if dllimport attribute in definition itself.
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+__attribute__((dllimport)) void bar () { } // { dg-error "definition" }
+
+__attribute__((dllimport)) int foo = 1; // { dg-error "definition" }
diff --git a/gcc/testsuite/g++.dg/ext/dllimport5.C b/gcc/testsuite/g++.dg/ext/dllimport5.C
new file mode 100644
index 00000000000..8e6f166295e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport5.C
@@ -0,0 +1,28 @@
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// Report error if static symbol definition has dllimport attribute.
+
+__attribute__((dllimport))
+ int impvar; // OK, implicit "extern"
+
+ static __attribute__((dllimport))
+ int static_impvar; // { dg-error "external linkage" }
+
+ static __attribute__((dllexport))
+int static_expvar; // { dg-error "external linkage" }
+
+static __attribute__((dllimport))
+void static_impfun(void); // { dg-error "external linkage" }
+
+void foo()
+{
+ __attribute__((dllimport))
+ int foovar; // OK, implicit "extern"
+ foovar++;
+}
+
+void bar()
+{
+ __attribute__((dllexport))
+ int barvar; // { dg-error "external linkage" }
+ barvar++;
+}
diff --git a/gcc/testsuite/g++.dg/ext/dllimport6.C b/gcc/testsuite/g++.dg/ext/dllimport6.C
new file mode 100644
index 00000000000..3b2a082f9b2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport6.C
@@ -0,0 +1,30 @@
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// Mark class static members as dllimport.
+
+struct Baz
+{
+ Baz(int a_ =0) : a(a_) {};
+ int a;
+};
+
+class __attribute__ ((dllimport)) Bar
+{
+ public:
+ static const int two = 2;
+ static const int three;
+ static const Baz null_baz;
+};
+
+int foo()
+{
+ Bar foobar;
+ const int* baz = &Bar::two;
+ int a = foobar.two;
+ int b = foobar.three;
+ int c = foobar.null_baz.a;
+ return (a + b + c + *baz);
+}
+
+// { dg-final { scan-assembler __imp___ZN3Bar3twoE } }
+// { dg-final { scan-assembler __imp___ZN3Bar5threeE } }
+// { dg-final { scan-assembler __imp___ZN3Bar8null_bazE } }
diff --git a/gcc/testsuite/g++.dg/ext/dllimport7.C b/gcc/testsuite/g++.dg/ext/dllimport7.C
new file mode 100644
index 00000000000..fa76d3eec8c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport7.C
@@ -0,0 +1,33 @@
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+// Report errors on definition of dllimport'd static data member .
+
+
+struct Baz
+{
+ Baz(int a_ =0) : a(a_) {};
+ int a;
+};
+
+class __declspec(dllimport) Bar
+{
+ public:
+ enum {one = 1};
+ static const int two = 2;
+ static const int three;
+ static const Baz null_baz;
+};
+
+const int Bar::three = 3; // { dg-error "definition of static data" }
+const Baz Bar::null_baz; // { dg-error "definition of static data" }
+
+
+int foo()
+{
+ Bar foobar;
+ const int* baz = &Bar::two;
+ int a = foobar.two;
+ int b = foobar.three;
+ int c = foobar.null_baz.a;
+ return (a + b + c + *baz);
+}
diff --git a/gcc/testsuite/g++.dg/ext/dllimport8.C b/gcc/testsuite/g++.dg/ext/dllimport8.C
new file mode 100644
index 00000000000..9052831774b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport8.C
@@ -0,0 +1,29 @@
+// PR c++/8378
+// Ignore dllimport of static members if marked inlined.
+// or if definition follows declaration in dllimported class.
+
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// { dg-options { -Wall -W } }
+
+struct __attribute__((dllimport)) Foo
+ {
+ static int static_int;
+ static void static_func1();
+ static void static_func2();
+ };
+
+void Foo::static_func1()
+ { // { dg-warning "defined" }
+ }
+
+inline void Foo::static_func2()
+ { // { dg-warning "inline function" }
+ }
+
+void testfoo()
+{
+ Foo::static_func1();
+ Foo::static_func2();
+}
+
+// { dg-final { scan-assembler-not "__imp__" } }
diff --git a/gcc/testsuite/g++.dg/ext/dllimport9.C b/gcc/testsuite/g++.dg/ext/dllimport9.C
new file mode 100644
index 00000000000..edf79efd8d1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport9.C
@@ -0,0 +1,23 @@
+// Handle dllimport attribute for functions declared inline.
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+// { dg-options { -W } }
+
+inline __attribute__((dllimport)) void bar() { } // { dg-warning "inline" }
+
+struct __attribute__ ((dllimport)) Blah
+{
+ void in_blah () { } // { dg-warning "inline" }
+ void out_blah ();
+};
+
+inline void Blah::out_blah(){ } // { dg-warning "inline" }
+
+void use_inlines()
+{
+ Blah aBlah;
+ bar();
+ aBlah.in_blah ();
+ aBlah.out_blah ();
+}
+
+// { dg-final { scan-assembler-not "__imp__" } }
diff --git a/gcc/testsuite/g++.dg/ext/max.C b/gcc/testsuite/g++.dg/ext/max.C
new file mode 100644
index 00000000000..bc65f1f7027
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/max.C
@@ -0,0 +1,6 @@
+struct s_t {
+};
+void foo(void) {
+ s_t s; int i;
+ s<?=i; // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/ext/typeof3.C b/gcc/testsuite/g++.dg/ext/typeof3.C
new file mode 100644
index 00000000000..cf78c7c6196
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/typeof3.C
@@ -0,0 +1,4 @@
+double f(double);
+float f(float);
+void h(typeof(f) g) {} // { dg-error "" }
+
diff --git a/gcc/testsuite/g++.dg/ext/typeof4.C b/gcc/testsuite/g++.dg/ext/typeof4.C
new file mode 100644
index 00000000000..2f423703514
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/typeof4.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// { dg-options "" }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/9459: typeof in return type of template function
+
+void foo (int) {}
+void foo (double) {}
+
+template <typename C>
+typeof(foo(1))
+bar () { return foo(1); }
diff --git a/gcc/testsuite/g++.dg/ext/typeof5.C b/gcc/testsuite/g++.dg/ext/typeof5.C
new file mode 100644
index 00000000000..ef75f255cb4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/typeof5.C
@@ -0,0 +1,17 @@
+// { dg-options "" }
+
+template <class T>
+void test1() {
+ int x = 0;
+ const typeof(x) & t1 = x+0;
+}
+
+void test2() {
+ int x = 0;
+ const typeof(x) & t1 = x+0;
+}
+
+int main() {
+ test1<int>();
+ test2 ();
+}
diff --git a/gcc/testsuite/g++.dg/inherit/access4.C b/gcc/testsuite/g++.dg/inherit/access4.C
new file mode 100644
index 00000000000..33f991b666f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/access4.C
@@ -0,0 +1,8 @@
+struct Container { int Count(); };
+struct List : private Container {
+ using Container::Count;
+};
+struct INetContentTypeParameterList : private List { void Clear(); };
+void INetContentTypeParameterList::Clear() {
+ Count();//Calling non static but in a non-static method.
+}
diff --git a/gcc/testsuite/g++.dg/inherit/access5.C b/gcc/testsuite/g++.dg/inherit/access5.C
new file mode 100644
index 00000000000..715a4a3b29b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/access5.C
@@ -0,0 +1,4 @@
+struct S { ~S(); };
+struct T : virtual private S {};
+struct U : private T {};
+U u;
diff --git a/gcc/testsuite/g++.dg/inherit/conv1.C b/gcc/testsuite/g++.dg/inherit/conv1.C
new file mode 100644
index 00000000000..e16c489a235
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/conv1.C
@@ -0,0 +1,23 @@
+typedef struct _A A;
+typedef struct _A B;
+
+void some_function(B *b);
+
+class AClass {
+
+public:
+ operator A*() { return 0;}
+
+};
+
+class BClass :public AClass {
+
+public:
+ operator B*() { return 0;}
+
+};
+
+int main(int argc, char **argv) {
+ BClass b;
+ some_function(b);
+}
diff --git a/gcc/testsuite/g++.dg/inherit/error1.C b/gcc/testsuite/g++.dg/inherit/error1.C
new file mode 100644
index 00000000000..1570bf11e2e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/error1.C
@@ -0,0 +1,10 @@
+// PR 12486
+
+struct A { int ma; };
+struct B { };
+
+void foo()
+{
+ B *b;
+ b->A::ma=0; // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/inherit/operator2.C b/gcc/testsuite/g++.dg/inherit/operator2.C
new file mode 100644
index 00000000000..09407e1b489
--- /dev/null
+++ b/gcc/testsuite/g++.dg/inherit/operator2.C
@@ -0,0 +1,22 @@
+typedef int INT_TYPEDEF;
+
+template<class T>
+class TypedIfc
+{
+public:
+ virtual ~TypedIfc() { }
+ virtual operator const T&() const = 0;
+ virtual const T& operator= (const T& t) = 0;
+};
+
+template<class Tnative>
+class NullIfc : public TypedIfc<Tnative>
+{
+public:
+ const Tnative& operator= (const Tnative& t) { return t; }
+ operator const Tnative&() const { return *(Tnative *)0; }
+};
+
+typedef TypedIfc<INT_TYPEDEF> INT_TYPEDEFIfc;
+
+NullIfc<int> i32;
diff --git a/gcc/testsuite/g++.dg/inherit/thunk1.C b/gcc/testsuite/g++.dg/inherit/thunk1.C
index 4426419e9da..3bbd05069df 100644
--- a/gcc/testsuite/g++.dg/inherit/thunk1.C
+++ b/gcc/testsuite/g++.dg/inherit/thunk1.C
@@ -1,4 +1,4 @@
-// { dg-do run { target i?86-*-* x86_64-*-* s390*-*-* alpha*-*-* ia64-*-* } }
+// { dg-do run { target i?86-*-* x86_64-*-* s390*-*-* alpha*-*-* ia64-*-* sparc*-*-* } }
#include <stdarg.h>
diff --git a/gcc/testsuite/g++.dg/init/addr-const1.C b/gcc/testsuite/g++.dg/init/addr-const1.C
new file mode 100644
index 00000000000..3b4637a4144
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/addr-const1.C
@@ -0,0 +1,38 @@
+// { dg-do run }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 19 Apr 2003 <nathan@codesourcery.com>
+
+// PR 9881. address-constant-expression not static initialized
+
+struct bar {
+ double p;
+}; // bar
+
+bar v;
+static bool error = false;
+
+struct foo {
+ static double *a;
+ static double *b;
+ static double storage;
+};
+
+struct baz {
+ baz () {
+ if (foo::a != &v.p)
+ error = true;
+ if (foo::b != &foo::storage)
+ error = true;
+ }
+};
+
+baz f; // Get constructor to run before any other non-static initializers
+
+double *foo::a = &(((bar *)(&v))->p);
+double *foo::b = &(((bar *)(&foo::storage))->p);
+double foo::storage = 0.0;
+
+int main() {
+ return error;
+}
diff --git a/gcc/testsuite/g++.dg/init/array10.C b/gcc/testsuite/g++.dg/init/array10.C
new file mode 100644
index 00000000000..3b059aa0fbf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array10.C
@@ -0,0 +1,6 @@
+// { dg-do compile }
+// { dg-options "" }
+
+typedef int __attribute__((mode(V2SI))) vec;
+
+vec foo[] = { (vec) {1, 2} };
diff --git a/gcc/testsuite/g++.dg/init/array11.C b/gcc/testsuite/g++.dg/init/array11.C
new file mode 100644
index 00000000000..e52effe9ff7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array11.C
@@ -0,0 +1,28 @@
+/* PR 11665
+ Orgin: jwhite@cse.unl.edu
+ The problem was in initializer_constant_valid_p,
+ "for a CONSTRUCTOR, only the last element
+ of the CONSTRUCTOR was being checked"
+ (from the email of the patch which fixed this).
+ This used to ICE because GCC thought gdt_table was a
+ constant value when it is not. */
+
+int x;
+
+typedef __SIZE_TYPE__ size_t;
+
+struct gdt
+{
+size_t a,b,c,d,e,f;
+};
+void f()
+{
+struct gdt gdt_table[2]=
+{
+ {
+ 0,
+ ( (((size_t)(&x))<<(24))&(-1<<(8)) ),
+ },
+};
+}
+
diff --git a/gcc/testsuite/g++.dg/init/array15.C b/gcc/testsuite/g++.dg/init/array15.C
new file mode 100644
index 00000000000..17160d07611
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array15.C
@@ -0,0 +1,46 @@
+// { dg-do run }
+
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 8 Dec 2004 <nathan@codesourcery.com>
+
+// PR 16681 too much memory used
+// Origin: Matt LaFary <lafary@activmedia.com>
+
+struct foo {
+ unsigned char buffer[4111222];
+ foo() ;
+ bool check () const;
+};
+
+foo::foo ()
+ : buffer()
+{}
+
+bool foo::check () const
+{
+ for (unsigned ix = sizeof (buffer); ix--;)
+ if (buffer[ix])
+ return false;
+ return true;
+}
+
+void *operator new (__SIZE_TYPE__ size, void *p)
+{
+ return p;
+}
+
+char heap[5000000];
+
+int main ()
+{
+ for (unsigned ix = sizeof (heap); ix--;)
+ heap[ix] = ix;
+
+ foo *f = new (heap) foo ();
+
+ if (!f->check ())
+ return 1;
+ return 0;
+}
+
+
diff --git a/gcc/testsuite/g++.dg/init/array16.C b/gcc/testsuite/g++.dg/init/array16.C
new file mode 100644
index 00000000000..fa4c1b65088
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array16.C
@@ -0,0 +1,106 @@
+// { dg-do run }
+
+// Copyright (C) 2004 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 8 Dec 2004 <nathan@codesourcery.com>
+
+// PR 16681 too much memory used
+// Origin: Matt LaFary <lafary@activmedia.com>
+
+
+struct elt
+{
+ static int count;
+ static elt*ptr;
+ static int abort;
+ char c;
+
+ elt ();
+ ~elt ();
+
+};
+
+int elt::count;
+elt *elt::ptr;
+int elt::abort;
+
+elt::elt ()
+ :c ()
+{
+ if (count >= 0)
+ {
+ if (!ptr)
+ ptr = this;
+ if (count == 100)
+ throw 2;
+ if (this != ptr)
+ abort = 1;
+ count++;
+ ptr++;
+ }
+}
+
+elt::~elt ()
+{
+ if (count >= 0)
+ {
+ ptr--;
+ count--;
+ if (ptr != this)
+ abort = 2;
+ }
+}
+
+struct foo {
+ elt buffer[4111222];
+ foo() ;
+ bool check () const;
+};
+
+foo::foo ()
+ : buffer()
+{}
+
+bool foo::check () const
+{
+ for (unsigned ix = sizeof (buffer)/ sizeof (buffer[0]); ix--;)
+ if (buffer[ix].c)
+ return false;
+ return true;
+}
+
+void *operator new (__SIZE_TYPE__ size, void *p)
+{
+ return p;
+}
+
+char heap[5000000];
+
+int main ()
+{
+ for (unsigned ix = sizeof (heap); ix--;)
+ heap[ix] = ix;
+
+ try
+ {
+ foo *f = new (heap) foo ();
+ return 1;
+ }
+ catch (...)
+ {
+ if (elt::count)
+ return 2;
+ if (elt::abort)
+ return elt::abort + 3;
+ }
+
+ for (unsigned ix = sizeof (heap); ix--;)
+ heap[ix] = ix;
+
+ elt::count = -1;
+ foo *f = new (heap) foo ();
+ if (!f->check ())
+ return 3;
+ return 0;
+}
+
+
diff --git a/gcc/testsuite/g++.dg/init/assign1.C b/gcc/testsuite/g++.dg/init/assign1.C
new file mode 100644
index 00000000000..690a481910a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/assign1.C
@@ -0,0 +1,30 @@
+// PR c++/13009
+// { dg-do run }
+
+struct A {
+ char a;
+};
+
+struct B: public virtual A {
+ #if 0 // this piece of code works around the problem
+ B& operator= (const B& other)
+ {
+ A::operator= (other);
+ }
+ #endif
+};
+
+struct C: public B {
+ char c;
+};
+
+int main() {
+ B b;
+ b.a = 'b';
+ C c;
+ c.a = c.c = 'c';
+
+ c.B::operator= (b);
+ if (c.a != 'b' || c.c != 'c')
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/init/attrib1.C b/gcc/testsuite/g++.dg/init/attrib1.C
new file mode 100644
index 00000000000..839e4ce215d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/attrib1.C
@@ -0,0 +1,10 @@
+// { dg-do run }
+
+void f() __attribute((__constructor__));
+int i;
+void f() { i = 1; }
+
+int main(int, char **)
+{
+ return 1-i;
+}
diff --git a/gcc/testsuite/g++.dg/init/ctor2.C b/gcc/testsuite/g++.dg/init/ctor2.C
new file mode 100644
index 00000000000..cf426f2bf16
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ctor2.C
@@ -0,0 +1,34 @@
+// { dg-do run }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 14 Mar 2003 <nathan@codesourcery.com>
+
+// PR 9629. The vtable is not set up until the base initializers have
+// run.
+
+struct A {
+ static A *a;
+ A ();
+};
+A *A::a;
+A::A () {a = this;}
+
+struct B {
+ static A *a;
+ B (A *);
+};
+A *B::a;
+B::B(A *a_) {a = a_;}
+
+struct C : virtual public A, public B {
+ C();
+};
+C::C () : B(this) {}
+
+struct D : virtual public C {};
+
+int main()
+{
+ new D();
+ return A::a != B::a;
+}
diff --git a/gcc/testsuite/g++.dg/init/ctor3.C b/gcc/testsuite/g++.dg/init/ctor3.C
new file mode 100644
index 00000000000..1678aaf2c4d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ctor3.C
@@ -0,0 +1,6 @@
+// PR c++/14401
+
+struct S {
+ S() {} // { dg-error "" }
+ const int i;
+};
diff --git a/gcc/testsuite/g++.dg/init/enum1.C b/gcc/testsuite/g++.dg/init/enum1.C
new file mode 100644
index 00000000000..f74a5ad2b55
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/enum1.C
@@ -0,0 +1,10 @@
+enum test {
+ acceptable = -1,
+ unacceptable = 0xffffffffffffffffLL
+}; // { dg-error "" }
+
+enum test t = acceptable, u = unacceptable;
+
+int main() {
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/init/enum2.C b/gcc/testsuite/g++.dg/init/enum2.C
new file mode 100644
index 00000000000..3dfa346a8a5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/enum2.C
@@ -0,0 +1,8 @@
+#include <limits.h>
+enum test {
+ z = 0,
+ c = UINT_MAX + 1LL
+} x = z;
+int main() {
+ return x != z;
+}
diff --git a/gcc/testsuite/g++.dg/init/error1.C b/gcc/testsuite/g++.dg/init/error1.C
new file mode 100644
index 00000000000..e930fc75c5e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/error1.C
@@ -0,0 +1,7 @@
+// PR c++/12696
+
+struct A {
+ static float b[10]; // { dg-error "" }
+}
+
+float A::b[] = {1,2,3}; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/init/goto1.C b/gcc/testsuite/g++.dg/init/goto1.C
new file mode 100644
index 00000000000..c086efd5428
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/goto1.C
@@ -0,0 +1,23 @@
+// PR c++/14724
+// { dg-do run }
+
+int j;
+
+template <class T>
+struct C {
+ C() { ++j; }
+ ~C() { --j; }
+};
+
+int main(int, char **) {
+ {
+ int i = 0;
+ again:
+ C<int> v;
+ if (++i < 10)
+ goto again;
+ }
+
+ return j;
+}
+
diff --git a/gcc/testsuite/g++.dg/init/new1.C b/gcc/testsuite/g++.dg/init/new1.C
new file mode 100644
index 00000000000..24b60d3c409
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new1.C
@@ -0,0 +1,20 @@
+// Origin: asharji@uwaterloo.ca
+
+// { dg-do compile }
+// { dg-options "-fvolatile" }
+
+typedef __SIZE_TYPE__ size_t;
+
+class bar {
+ int i;
+ public :
+ void * operator new ( size_t , void * storage );
+};
+
+class foo {
+ int storage[ 5 ];
+ public:
+ void mem ( ) {
+ bar *s = new ( ( void * ) & storage ) bar;
+ }
+};
diff --git a/gcc/testsuite/g++.dg/init/new4.C b/gcc/testsuite/g++.dg/init/new4.C
new file mode 100644
index 00000000000..ab2fe31314d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new4.C
@@ -0,0 +1 @@
+int *x = new int [2] ();
diff --git a/gcc/testsuite/g++.dg/init/new5.C b/gcc/testsuite/g++.dg/init/new5.C
new file mode 100644
index 00000000000..3a5981e075c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new5.C
@@ -0,0 +1,18 @@
+// { dg-do run }
+
+#include <new>
+
+void * operator new[](size_t, std::nothrow_t const &) throw()
+{ return NULL; }
+
+struct X {
+ struct Inner { ~Inner() {} };
+
+ X() {
+ Inner * ic = new (std::nothrow) Inner[1]; // SegFault here
+ }
+};
+
+int main() {
+ X table;
+}
diff --git a/gcc/testsuite/g++.dg/init/new6.C b/gcc/testsuite/g++.dg/init/new6.C
new file mode 100644
index 00000000000..ecbafd13e6c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new6.C
@@ -0,0 +1,8 @@
+// { dg-options "-fkeep-inline-functions" }
+
+struct B1 { virtual ~B1(); };
+struct B2 { virtual ~B2(); };
+struct D : B1, B2 {};
+struct X : D { X (); };
+
+X::X () { new int; }
diff --git a/gcc/testsuite/g++.dg/init/new7.C b/gcc/testsuite/g++.dg/init/new7.C
new file mode 100644
index 00000000000..e07d2261738
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new7.C
@@ -0,0 +1,7 @@
+template <class T>
+ struct Foo
+ {};
+
+ template <class T>
+ void Foo<T>::NON_EXISTENT(int* val = new int()) {} // { dg-error "" }
+
diff --git a/gcc/testsuite/g++.dg/init/new9.C b/gcc/testsuite/g++.dg/init/new9.C
new file mode 100644
index 00000000000..6729d76fd00
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/new9.C
@@ -0,0 +1,22 @@
+// PR 12337
+
+class A {};
+
+template <typename T>
+class X : public A {
+public:
+ X(T&);
+};
+
+class B {
+public:
+ bool foo(A*);
+ template <typename T>
+ bool foo(T& t) { return foo(new X<T>(t)); }
+};
+
+int main()
+{
+ B x, y;
+ x.foo(y);
+}
diff --git a/gcc/testsuite/g++.dg/init/ref1.C b/gcc/testsuite/g++.dg/init/ref1.C
new file mode 100644
index 00000000000..12caff2d0ed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref1.C
@@ -0,0 +1,5 @@
+void f(void)
+{
+ short x = 0;
+ const int &y = x;
+}
diff --git a/gcc/testsuite/g++.dg/init/ref10.C b/gcc/testsuite/g++.dg/init/ref10.C
new file mode 100644
index 00000000000..73fd6de92dc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref10.C
@@ -0,0 +1,14 @@
+// PR c++/13478
+
+struct A {};
+struct B : protected A {
+ B() {};
+ B(const A& ) {};
+private:
+ B(const B& ) {};
+};
+
+void foo(const A* ap)
+{
+ const B& br = *ap;
+}
diff --git a/gcc/testsuite/g++.dg/init/ref11.C b/gcc/testsuite/g++.dg/init/ref11.C
new file mode 100644
index 00000000000..b283e3a69be
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref11.C
@@ -0,0 +1,13 @@
+// PR c++/14230
+
+struct A {
+ A ();
+ A (const A&);
+ A& operator= (const A&);
+};
+
+struct D {
+ A a;
+};
+
+const A& z = D().a;
diff --git a/gcc/testsuite/g++.dg/init/ref2.C b/gcc/testsuite/g++.dg/init/ref2.C
new file mode 100644
index 00000000000..231ea047fff
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref2.C
@@ -0,0 +1,10 @@
+struct Base {
+ Base();
+ Base(const Base &);
+ Base & operator = (const Base &);
+};
+
+struct Derived : public Base {};
+
+Derived derived();
+const Base &b = derived();
diff --git a/gcc/testsuite/g++.dg/init/ref3.C b/gcc/testsuite/g++.dg/init/ref3.C
new file mode 100644
index 00000000000..776f2d0c5d2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref3.C
@@ -0,0 +1,12 @@
+struct Base { };
+struct Derived : public Base { };
+struct Choose {
+ operator Base&();
+ operator Derived&();
+};
+
+void f()
+{
+ Choose c;
+ Base& ref = c;
+}
diff --git a/gcc/testsuite/g++.dg/init/ref5.C b/gcc/testsuite/g++.dg/init/ref5.C
new file mode 100644
index 00000000000..ad1c30c36f8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref5.C
@@ -0,0 +1,12 @@
+struct A { };
+struct B : public A { };
+struct X {
+ operator B();
+};
+X x;
+
+int main()
+{
+ const A& r = x;
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/init/ref6.C b/gcc/testsuite/g++.dg/init/ref6.C
new file mode 100644
index 00000000000..50a96360366
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref6.C
@@ -0,0 +1,12 @@
+struct B {
+ void g() { }
+};
+
+struct A {
+ void f() {
+ B &b = b;
+ b.g();
+ }
+};
+
+int main(void) { }
diff --git a/gcc/testsuite/g++.dg/init/ref7.C b/gcc/testsuite/g++.dg/init/ref7.C
new file mode 100644
index 00000000000..0832069e32c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref7.C
@@ -0,0 +1,9 @@
+class hop
+{
+public:
+ hop operator* () const;
+};
+int main(void)
+{
+ const hop &x = *x;
+}
diff --git a/gcc/testsuite/g++.dg/init/ref8.C b/gcc/testsuite/g++.dg/init/ref8.C
new file mode 100644
index 00000000000..406cc10401d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref8.C
@@ -0,0 +1,10 @@
+struct A {
+ A operator=(const A&);
+};
+
+A operator*(A, A);
+
+A& operator+=(A& a, const A& b)
+{
+ return a = a * b; // { dg-error "non-const reference" }
+}
diff --git a/gcc/testsuite/g++.dg/init/ref9.C b/gcc/testsuite/g++.dg/init/ref9.C
new file mode 100644
index 00000000000..127b7d8e1fd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ref9.C
@@ -0,0 +1,36 @@
+// { dg-do run }
+
+struct ex;
+struct basic {
+ int refcount;
+ ex eval() const;
+ basic() : refcount(0) {}
+};
+
+struct ex {
+ basic *bp;
+ ex() : bp(0) { }
+ ex(const basic &);
+ virtual ~ex();
+ void construct_from_basic(const basic &);
+};
+
+ex basic::eval() const {
+ throw 1;
+}
+
+inline ex::ex(const basic &b) { construct_from_basic (b); }
+inline ex::~ex() { if (--bp->refcount == 0) delete bp; }
+void ex::construct_from_basic(const basic &b) {
+ const ex & tmpex = b.eval();
+ bp = tmpex.bp;
+ bp->refcount++;
+}
+
+ex pow() { return basic(); }
+
+int main()
+{
+ try { pow (); } catch (int) {}
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/init/static1.C b/gcc/testsuite/g++.dg/init/static1.C
new file mode 100644
index 00000000000..7609215dd4c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/static1.C
@@ -0,0 +1,4 @@
+struct A {
+ static const int size = BOGUS; // { dg-error "" }
+};
+const int A::size;
diff --git a/gcc/testsuite/g++.dg/init/static2.C b/gcc/testsuite/g++.dg/init/static2.C
new file mode 100644
index 00000000000..b0344f48066
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/static2.C
@@ -0,0 +1,25 @@
+// PR 14804
+// { dg-do run }
+
+struct A {
+ virtual void foo() = 0;
+};
+
+struct B : public A {
+ virtual void bar() = 0;
+};
+
+typedef void (A::*mfptr)();
+
+struct D {
+ mfptr p;
+};
+
+static const D ds[] = {
+ { reinterpret_cast<mfptr>(&B::bar) },
+};
+
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/init/struct1.C b/gcc/testsuite/g++.dg/init/struct1.C
new file mode 100644
index 00000000000..4cabc99e0e2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/struct1.C
@@ -0,0 +1,6 @@
+struct bug {
+ const char *name;
+ unsigned long type;
+};
+
+struct bug s = { 0, (unsigned long) &s | 1 };
diff --git a/gcc/testsuite/g++.dg/init/union1.C b/gcc/testsuite/g++.dg/init/union1.C
new file mode 100644
index 00000000000..0049f442916
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/union1.C
@@ -0,0 +1,5 @@
+// PR c++/14401
+
+union U {
+ int& i; // { dg-error "" }
+};
diff --git a/gcc/testsuite/g++.dg/lookup/class-member-2.C b/gcc/testsuite/g++.dg/lookup/class-member-2.C
new file mode 100644
index 00000000000..8e4dbe72d7a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/class-member-2.C
@@ -0,0 +1,7 @@
+template <typename T> struct A
+{
+ void foo () const {}
+ char A;
+};
+
+void bar() { A<void>().foo(); }
diff --git a/gcc/testsuite/g++.dg/lookup/decl1.C b/gcc/testsuite/g++.dg/lookup/decl1.C
new file mode 100644
index 00000000000..d9af65604cb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/decl1.C
@@ -0,0 +1,32 @@
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 24 Dec 2002 <nathan@codesourcery.com>
+
+// PR 8702. Failure to match templates.
+
+template <typename X> struct C1{};
+
+template <typename X>
+struct C2 {
+ template<typename Y> operator C1<Y>();
+ template<typename Y> operator C2<Y>();
+};
+
+template<typename X> template<typename Y>
+C2<X>::operator C1<Y>()
+{
+ return C1<Y>();
+}
+
+struct A
+{
+ operator int (); // { dg-error "operator" "" }
+ operator float (); // { dg-error "operator" "" }
+ operator float () const; // { dg-error "operator" "" }
+ template <typename T> operator T * (); // { dg-error "candidates" "" }
+};
+
+A::operator short () { // { dg-error "prototype for" "" }
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/lookup/decl2.C b/gcc/testsuite/g++.dg/lookup/decl2.C
new file mode 100644
index 00000000000..75ce0967a4b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/decl2.C
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 24 Dec 2002 <nathan@codesourcery.com>
+// Source Martin Buchholz martin@xemacs.org
+
+// PR 9053. Failed to consider templates that are disambiguated by
+// return type.
+
+template <typename T> class bar;
+template <> struct bar<const char*> { typedef void type; };
+template <typename T> class qux;
+template <> struct qux<int> { typedef void type; };
+
+template <typename T>
+typename bar<T>::type foo (T t) { }
+
+template <typename T>
+typename qux<T>::type foo (T t) { }
+
+
+int
+main (int argc, char *argv[])
+{
+ foo ("foo");
+ foo (7);
+}
diff --git a/gcc/testsuite/g++.dg/lookup/enum1.C b/gcc/testsuite/g++.dg/lookup/enum1.C
new file mode 100644
index 00000000000..e812925b6e0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/enum1.C
@@ -0,0 +1,9 @@
+enum Enum1 { None };
+
+namespace Test {
+ enum Enum2 { None };
+}
+
+namespace a {
+ enum { a } ;
+};
diff --git a/gcc/testsuite/g++.dg/lookup/enum2.C b/gcc/testsuite/g++.dg/lookup/enum2.C
new file mode 100644
index 00000000000..054933dd9d3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/enum2.C
@@ -0,0 +1,5 @@
+// PR c++/14476
+
+struct tree_common {
+ enum tree_code code : 8; // { dg-error "" }
+};
diff --git a/gcc/testsuite/g++.dg/lookup/friend1.C b/gcc/testsuite/g++.dg/lookup/friend1.C
new file mode 100644
index 00000000000..47fe0556519
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/friend1.C
@@ -0,0 +1,15 @@
+// { dg-do compile }
+
+// Origin: <matz@suse.de>
+
+// PR c++/9970: In-class friend function definition after
+// declaration lexical scope problem.
+
+void f();
+struct X
+{
+ enum { k = 1 };
+ friend void f() {
+ char a[k];
+ }
+};
diff --git a/gcc/testsuite/g++.dg/lookup/koenig2.C b/gcc/testsuite/g++.dg/lookup/koenig2.C
new file mode 100644
index 00000000000..04f95258999
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/koenig2.C
@@ -0,0 +1,15 @@
+struct S
+{
+ template <typename T> void operator() (T) {}
+};
+
+namespace N
+{
+ S s;
+ struct A {} a;
+}
+
+using N::s;
+
+void f () { s(N::a); }
+
diff --git a/gcc/testsuite/g++.dg/lookup/ns1.C b/gcc/testsuite/g++.dg/lookup/ns1.C
new file mode 100644
index 00000000000..c4fa5bc9c31
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/ns1.C
@@ -0,0 +1,19 @@
+// PR c++/12862
+
+typedef int Thingo;
+
+namespace A
+{
+ void Thingo();
+}
+
+void
+A::Thingo()
+{ }
+
+int
+main()
+{
+ A::Thingo();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/lookup/scoped1.C b/gcc/testsuite/g++.dg/lookup/scoped1.C
index 0fe8d33b6ec..72694a22205 100644
--- a/gcc/testsuite/g++.dg/lookup/scoped1.C
+++ b/gcc/testsuite/g++.dg/lookup/scoped1.C
@@ -17,6 +17,6 @@ struct C: public B
::A::i1 = 1;
::A::i2 = 1; // { dg-error "access" "" }
::A::f1 ();
- ::A::f2 (); // { dg-error "access" "" { xfail *-*-* } }
+ ::A::f2 (); // { dg-error "" }
}
};
diff --git a/gcc/testsuite/g++.dg/lookup/scoped3.C b/gcc/testsuite/g++.dg/lookup/scoped3.C
new file mode 100644
index 00000000000..992f1d12809
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/scoped3.C
@@ -0,0 +1,23 @@
+
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 24 Dec 2002 <nathan@codesourcery.com>
+
+// PR 7964. ICE with scoped method call
+
+struct A {
+ virtual void ostr() const;
+};
+
+class B : public virtual A {};
+
+template<typename T>
+struct C : public B
+{
+ void ostr() const
+ { B::ostr(); }
+};
+
+
+template C<int>;
diff --git a/gcc/testsuite/g++.dg/lookup/scoped6.C b/gcc/testsuite/g++.dg/lookup/scoped6.C
new file mode 100644
index 00000000000..d9566a7e099
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/scoped6.C
@@ -0,0 +1,17 @@
+template <typename X>
+class Foo {
+ int i;
+public:
+ Foo() {
+ X::explode(); // { dg-error "" }
+ }
+};
+
+class Bar {
+ Foo<int> foo_;
+public:
+ Bar() {} // { dg-error "instantiated" }
+};
+
+template class Foo<int>;
+
diff --git a/gcc/testsuite/g++.dg/lookup/struct-hack1.C b/gcc/testsuite/g++.dg/lookup/struct-hack1.C
new file mode 100644
index 00000000000..e84d65b3355
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/struct-hack1.C
@@ -0,0 +1,38 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 19 Apr 2003 <nathan@codesourcery.com>
+
+// PR 10405. ICE
+
+#define MEM_ENUM(name) int name; enum name {};
+
+struct Base
+{
+ MEM_ENUM (a)
+ MEM_ENUM (b)
+ MEM_ENUM (c)
+ MEM_ENUM (d)
+ MEM_ENUM (e)
+ MEM_ENUM (f)
+ MEM_ENUM (g)
+ MEM_ENUM (h)
+ MEM_ENUM (i)
+ MEM_ENUM (j)
+ MEM_ENUM (k)
+ MEM_ENUM (l)
+ MEM_ENUM (m)
+ MEM_ENUM (n)
+ MEM_ENUM (o)
+ MEM_ENUM (p)
+ MEM_ENUM (q)
+ MEM_ENUM (r)
+ MEM_ENUM (s)
+ MEM_ENUM (t)
+ MEM_ENUM (u)
+ MEM_ENUM (v)
+ MEM_ENUM (w)
+ };
+
+struct D : Base {};
+
diff --git a/gcc/testsuite/g++.dg/lookup/template1.C b/gcc/testsuite/g++.dg/lookup/template1.C
new file mode 100644
index 00000000000..0e8921261e8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/template1.C
@@ -0,0 +1,31 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 24 Mar 2003 <nathan@codesourcery.com>
+
+// PR 10199. Lookup problems
+
+class X {
+public:
+ template<int d>
+ int bar ();
+};
+
+template<int x>
+int fooo ();
+
+template<class T>
+void bar (T& g)
+{
+ int kk = fooo<17>(); // OK
+ X x;
+ int k = x.bar<17>(); // Not OK
+}
+
+int main ()
+{
+ X x;
+ int k=x.bar<17>(); // OK
+ int n;
+ bar(n);
+}
diff --git a/gcc/testsuite/g++.dg/lookup/using2.C b/gcc/testsuite/g++.dg/lookup/using2.C
index 92f134eaf84..b20ef0377c2 100644
--- a/gcc/testsuite/g++.dg/lookup/using2.C
+++ b/gcc/testsuite/g++.dg/lookup/using2.C
@@ -25,7 +25,7 @@ namespace N
template<int> void f() {}
}
-using N; // { dg-error "parse error" "" }
+using N; // { dg-error "(parse|syntax) error" "" }
using ::N; // { dg-error "using-declaration" "" }
using N::f< 0 >; // { dg-error "using-declaration" "" }
@@ -41,6 +41,6 @@ struct B : A {
struct C : A {
using A::f<double>; // { dg-error "using-declaration" "" }
- using A::X<int>; // { dg-error "parse error" "" }
+ using A::X<int>; // { dg-error "(parse|syntax) error" "" }
};
diff --git a/gcc/testsuite/g++.dg/lookup/using3.C b/gcc/testsuite/g++.dg/lookup/using3.C
new file mode 100644
index 00000000000..5f187fef564
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/using3.C
@@ -0,0 +1,11 @@
+template <typename T, bool=T::X> struct A
+{
+ int i;
+};
+
+template <typename T> struct B : A<T>
+{
+ using A<T>::i; // { dg-error "" }
+};
+
+B<void> b; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/lookup/using9.C b/gcc/testsuite/g++.dg/lookup/using9.C
new file mode 100644
index 00000000000..6ad8086f8e0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/using9.C
@@ -0,0 +1,30 @@
+// { dg-do compile }
+// Origin: C++ Standard Draft (7.3.3/12)
+// PR c++/2294: using declarations should not conflict, but only cause
+// an ambiguous overload set to be created.
+
+namespace B {
+ void f(int); // { dg-error "" }
+ void f(double); // { dg-error "" }
+}
+
+namespace C {
+ void f(int); // { dg-error "" }
+ void f(double); // { dg-error "" }
+ void f(char); // { dg-error "" }
+}
+
+void h()
+{
+ using B::f;
+ using C::f;
+ f('h');
+ f(1); // { dg-error "ambiguous" }
+ void f(int); // { dg-error "previous using declaration" }
+}
+
+void m()
+{
+ void f(int);
+ using B::f; // { dg-error "already declared" }
+}
diff --git a/gcc/testsuite/g++.dg/opt/cfg1.C b/gcc/testsuite/g++.dg/opt/cfg1.C
new file mode 100644
index 00000000000..dbc81fe9bd8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/cfg1.C
@@ -0,0 +1,36 @@
+// PR optimization/11083
+// Origin: <nick@ilm.com>
+// Reduced testcase by Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// The compiler used to keep unreachable basic blocks after dead edges
+// had been purged, which fooled the LCM code of the GCSE pass.
+
+// { dg-do compile }
+// { dg-options "-O2 -fnon-call-exceptions" }
+
+extern void *memmove (void *, const void *, unsigned int) throw ();
+
+struct S {
+ int *q;
+
+ S(int *i) : q(i) {}
+};
+
+struct X {
+ int *p;
+
+ void foo(S first, S last) {
+ try { memmove(0, 0, last.q - first.q); }
+ catch(...) { throw; }
+ }
+
+ void bar (const X& x);
+};
+
+void X::bar (const X& x)
+{
+ const unsigned int xlen = S(x.p).q - S(x.p).q;
+
+ if (xlen > 0)
+ foo(S(x.p), S(x.p));
+}
diff --git a/gcc/testsuite/g++.dg/opt/cfg2.C b/gcc/testsuite/g++.dg/opt/cfg2.C
new file mode 100644
index 00000000000..229f4bc3a52
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/cfg2.C
@@ -0,0 +1,38 @@
+// PR optimization/12215
+// Origin: <nick@ilm.com>
+// Reduced testcase by Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// This used to fail because the CSE pass destroyed the CFG in presence
+// of trapping loads, which led to the deletion of basic blocks.
+
+// { dg-do compile }
+// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
+
+
+struct B {
+ ~B() throw() {}
+};
+
+struct X {
+ X(const char*, const B&);
+ ~X() {}
+};
+
+bool m();
+void f(int &i, float &arg0);
+
+void g (const char **argv) {
+ float val;
+ int i = 1;
+
+ try {
+ while ( i < 1 )
+ {
+ X arg(argv[i], B());
+ if (m())
+ throw(0);
+
+ f(i, val);
+ }
+ } catch (...) {}
+}
diff --git a/gcc/testsuite/g++.dg/opt/cfg3.C b/gcc/testsuite/g++.dg/opt/cfg3.C
new file mode 100644
index 00000000000..123c2f5157b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/cfg3.C
@@ -0,0 +1,61 @@
+// PR optimization/11646
+// Origin: <nick@ilm.com>
+
+// This used to fail because the compiler inadvertently cleared
+// the EDGE_ABNORMAL flag on a EDGE_EH edge and didn't delete
+// unreachable blocks after CSE.
+
+// { dg-do compile }
+// { dg-options "-O -fgcse -fnon-call-exceptions" }
+
+struct C
+{
+ int i;
+};
+
+struct allocator
+{
+ ~allocator() throw() {}
+};
+
+struct _Vector_alloc_base
+{
+ _Vector_alloc_base(const allocator& __a) {}
+ allocator _M_data_allocator;
+ struct C *_M_start, *_M_end_of_storage;
+ void _M_deallocate(struct C* __p, unsigned int __n) {}
+};
+
+struct _Vector_base : _Vector_alloc_base
+{
+ _Vector_base(const allocator& __a) : _Vector_alloc_base(__a) { }
+ ~_Vector_base() { _M_deallocate(0, _M_end_of_storage - _M_start); }
+};
+
+struct vector : _Vector_base
+{
+ vector(const allocator& __a = allocator()) : _Vector_base(__a) {}
+ struct C& operator[](unsigned int __n) { return *_M_start; }
+};
+
+struct A
+{
+ float l() const;
+ A operator-(const A &) const;
+ const A& operator=(float) const;
+};
+
+struct B
+{
+ float d();
+};
+
+float f(const A& a, B& b)
+{
+ vector vc;
+ int index = vc[0].i;
+ A aa;
+ float d = (aa - a).l();
+ if (d > b.d()) aa = 0;
+ return b.d();
+}
diff --git a/gcc/testsuite/g++.dg/opt/cond1.C b/gcc/testsuite/g++.dg/opt/cond1.C
new file mode 100644
index 00000000000..ae8fa4d45d9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/cond1.C
@@ -0,0 +1,24 @@
+// { dg-do run }
+// { dg-options "-O2" }
+
+struct D { int x; };
+struct W
+{
+ W () {}
+ D & operator * () { return d; }
+ D d;
+};
+
+int
+foo (int y)
+{
+ W m;
+ (*m).x = (y > 1 ? y : 0);
+ return (*m).x;
+}
+
+int
+main ()
+{
+ return (foo (6) != 6);
+}
diff --git a/gcc/testsuite/g++.dg/opt/const3.C b/gcc/testsuite/g++.dg/opt/const3.C
new file mode 100644
index 00000000000..a3539ab15c8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/const3.C
@@ -0,0 +1,44 @@
+// PR optimization/12926
+// This failed on SPARC64 because the assignments to the bit-fields
+// were wrongly swapped in the constructor.
+
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern void abort(void);
+
+typedef __SIZE_TYPE__ size_t;
+
+void *my_out;
+
+struct A
+{
+ enum Type {P, U, S};
+
+ int foo1(void *, const char *);
+ int foo2(int, const Type);
+
+ A (const size_t size, const Type type): mSize(size), mType(type)
+ {
+ foo2(foo1(my_out, "type = "), type);
+ foo2(foo1(my_out, "mType = "), mType);
+ }
+
+ const size_t mSize : 8*sizeof(size_t) - 3;
+ Type mType : 2;
+};
+
+int i;
+
+int A::foo1(void *ios, const char *str) { }
+int A::foo2(int v, const Type t) { i=0; }
+
+int main()
+{
+ A testa(2, A::S);
+
+ if (testa.mType != A::S)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/emptyunion.C b/gcc/testsuite/g++.dg/opt/emptyunion.C
new file mode 100644
index 00000000000..105faed5844
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/emptyunion.C
@@ -0,0 +1,13 @@
+// PR optimization/11059
+// This testcase ICEd because clear_by_pieces was called with zero length.
+// { dg-do compile }
+// { dg-options "-O2" }
+
+union uni {};
+
+int main() {
+ uni *h;
+
+ h = (uni *)new uni();
+}
+
diff --git a/gcc/testsuite/g++.dg/opt/expect1.C b/gcc/testsuite/g++.dg/opt/expect1.C
new file mode 100644
index 00000000000..90a871f377a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/expect1.C
@@ -0,0 +1,17 @@
+// PR c++/13239
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort (void);
+
+struct Y {
+ int i;
+};
+
+bool foo () { return true; }
+Y bar () { Y y = {0}; return y; }
+
+int main ()
+{
+ __builtin_expect (foo () && (bar ().i) == 0, 0) ? 0 : (abort (), 1);
+}
diff --git a/gcc/testsuite/g++.dg/opt/expect2.C b/gcc/testsuite/g++.dg/opt/expect2.C
new file mode 100644
index 00000000000..1bb5d8331f0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/expect2.C
@@ -0,0 +1,11 @@
+// PR c++/13392
+// { dg-do compile }
+// { dg-options "-O0" }
+
+extern "C" void abort (void);
+struct X { ~X () throw() {} };
+bool foo (X s = X ()) { return false; }
+void bar ()
+{
+ __builtin_expect (foo () && true, 1) ? 0 : (abort (), 0);
+}
diff --git a/gcc/testsuite/g++.dg/opt/float1.C b/gcc/testsuite/g++.dg/opt/float1.C
new file mode 100644
index 00000000000..8f26ed5c852
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/float1.C
@@ -0,0 +1,21 @@
+// PR optimization/11637
+// Origin: <nick@ilm.com>
+
+// This used to fail to assemble on x86 because a decimal
+// floating point litteral was emitted, which originated
+// from a bogus REG_EQUAL note not removed by the combiner.
+
+// { dg-do assemble }
+// { dg-options "-O2 -fnon-call-exceptions" }
+
+void f(long int seed);
+
+void g(float &o)
+{
+ float a = 0.05f;
+ float b = 1.0 - a;
+ float c = 1.0 + a;
+
+ f(0);
+ o = a;
+}
diff --git a/gcc/testsuite/g++.dg/opt/inline4.C b/gcc/testsuite/g++.dg/opt/inline4.C
new file mode 100644
index 00000000000..b5c379006dd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/inline4.C
@@ -0,0 +1,13 @@
+// { dg-options "-O2 -ftemplate-depth-20000 --param min-inline-insns=100 --param max-inline-insns=3" }
+
+template <int I>
+inline void g() { g<I-1>(); return; }
+
+template <>
+inline void g<0>() { int i; return; }
+
+void h() {
+ g<1000>();
+}
+
+// { dg-final { scan-assembler-not "\n_?_Z1gILi\[0-9\]+EEvv\[: \t\n\]" } }
diff --git a/gcc/testsuite/g++.dg/opt/inline6.C b/gcc/testsuite/g++.dg/opt/inline6.C
new file mode 100644
index 00000000000..b1616c7e721
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/inline6.C
@@ -0,0 +1,14 @@
+// PR c++/13081
+// { dg-options "-O2" }
+// { dg-final { scan-assembler-not "\n_?_Z3fooIlET_S0_\[: \t\n\]" } }
+
+template<typename T> T foo(T);
+
+template<typename T> inline T foo(T t)
+{
+ return t;
+}
+
+void bar (long& l) {
+ l = foo(l);
+}
diff --git a/gcc/testsuite/g++.dg/opt/longbranch2.C b/gcc/testsuite/g++.dg/opt/longbranch2.C
new file mode 100644
index 00000000000..00c7f04c15c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/longbranch2.C
@@ -0,0 +1,62 @@
+// PR target/11689
+// Originator: thor@math.tu-berlin.de
+
+// { dg-do compile }
+// { dg-options "-O3 -funroll-loops -mcpu=k6 -fomit-frame-pointer" { target i?86-*-* } }
+
+// This used to fail to assemble because of an out-of-range 'loop' instructions.
+
+
+class JKeeper {
+public:
+ unsigned long a0;
+};
+
+class EBCOTLut : public JKeeper {
+ unsigned char a1[1<<8];
+ unsigned char a2[1<<8];
+ unsigned char a3[1<<8];
+ long a4[1<<9];
+public:
+ EBCOTLut(void);
+};
+
+EBCOTLut::EBCOTLut(void)
+{
+ unsigned char inter[36]; // intermediate lookup table;
+ unsigned long i;
+ for(i=0;i<36;i++) {
+ inter[i] = 0;
+ }
+ for(i=1;i<16;i++) {
+ a1[i | (1<<7)] = 8<<1;
+ a1[i | (1<<6)] = 8<<1;
+ }
+ for(i=0;i < ((1<<9)-1);i++) {
+ int ds = (i>>0) & 0x01; // significance of DOWN
+ int us = (i>>1) & 0x01; // significance of UP
+ int rs = (i>>2) & 0x01; // significance of RIGHT
+ int ls = (i>>3) & 0x01; // significance of LEFT
+ int dn = (i>>5) & 0x01; // sign of DOWN
+ int un = (i>>6) & 0x01; // sign of UP
+ int rn = (i>>7) & 0x01; // sign of RIGHT
+ int ln = (i>>8) & 0x01; // sign of LEFT
+ int h,v; // h and v as in the VM description
+
+ h = ls*(1-ln*2) + rs*(1-2*rn);
+ v = us*(1-un*2) + ds*(1-2*dn);
+ h = (h >= -1)?(h):(-1);
+ v = (v >= -1)?(v):(-1);
+ h = (h <= 1)?(h):(1);
+ v = (v <= 1)?(v):(1);
+ a2[i] = inter[((h+1)<<3) | (v+1)];
+ a3[i] = inter[((h+1)<<3) | (v+1)] & (unsigned char)(~1);
+ }
+ for(i=0;i< 1<<9; i++) {
+ a4[i] = 2*(i-(1<<(9-1)))*(i-(1<<(9-1))) -
+ ((i< (1<<(9-1)))?
+ (2*(i-(1<<(9-2)))*(i-(1<<(9-2)))):
+ (2*(i-(3<<(9-2)))*(i-(3<<(9-2)))));
+
+ }
+}
diff --git a/gcc/testsuite/g++.dg/opt/max1.C b/gcc/testsuite/g++.dg/opt/max1.C
new file mode 100644
index 00000000000..61b7021da66
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/max1.C
@@ -0,0 +1,29 @@
+/* PR middle-end/19068 */
+/* Test case by Andrew Pinski <pinskia@physics.uc.edu> */
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern "C" void abort (void);
+
+long fff[10];
+
+void f(long a)
+{
+ int i;
+ a = *((long*)(a+1+sizeof(long))) >? *((long*)(a+1));
+
+ for(i=0;i<10;i++)
+ fff[i] = a;
+}
+
+int main(void)
+{
+ int i;
+ long a[2] = {10,5};
+ f((long)(&a)-1);
+ for(i = 0;i<10;i++)
+ if (fff[i]!=10)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/opt/noreturn-1.C b/gcc/testsuite/g++.dg/opt/noreturn-1.C
new file mode 100644
index 00000000000..9b2fc0cf16a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/noreturn-1.C
@@ -0,0 +1,87 @@
+// PR optimization/12965
+// Origin: <qboosh@pld-linux.org>
+// Reduced testcase: Falk Hueffner <falk@debian.org>
+
+// This ICEd on Alpha because the reload pass emitted save/restore
+// insns around a no-return call.
+
+// { dg-do compile }
+// { dg-options "-O2" }
+
+template <typename _Alloc> class allocator;
+template <class _CharT> struct char_traits;
+template <typename _CharT,
+ typename _Traits = char_traits<_CharT>,
+ typename _Alloc = allocator<_CharT> >
+class basic_string;
+typedef basic_string<char> string;
+
+static inline int __exchange_and_add(volatile int * __mem, int __val) {
+ int __result;
+ asm("" : "=&r"(__result));
+ return __result;
+}
+
+template<typename _Tp> struct allocator {
+ allocator() throw() { }
+ allocator(const allocator &) throw() {}
+};
+
+template<typename _CharT, typename _Traits, typename _Alloc>
+struct basic_string {
+ typedef _Alloc allocator_type;
+ struct _Rep {
+ int _M_references;
+ void _M_dispose(const _Alloc & __a) {
+ if (__exchange_and_add(&_M_references, -1) <= 0)
+ _M_destroy(__a);
+ } void _M_destroy(const _Alloc &) throw();
+ };
+ struct _Alloc_hider : _Alloc {
+ _CharT *_M_p;
+ };
+ mutable _Alloc_hider _M_dataplus;
+ _CharT *_M_data() const { return _M_dataplus._M_p; }
+ _Rep *_M_rep() const {
+ return &((reinterpret_cast<_Rep *>(_M_data()))[-1]);
+ }
+ basic_string();
+ basic_string(const _CharT * __s, const _Alloc & __a = _Alloc());
+ ~basic_string() {
+ _M_rep()->_M_dispose(this->get_allocator());
+ }
+ allocator_type get_allocator() const { return _M_dataplus; }
+};
+
+struct Egeneric {
+ void stack(const string & passage, const string & message = "") { }
+};
+
+struct infinint {
+ void detruit() throw(Egeneric);
+ template<class T> void infinint_from(T a) throw(Egeneric);
+ infinint(long a = 0) throw(Egeneric) {
+ try {
+ infinint_from(a);
+ } catch(Egeneric& e) {
+ e.stack("infinint::infinint", "long");
+ }
+ }
+ ~infinint() throw(Egeneric) {
+ try {
+ detruit();
+ } catch(Egeneric& e) { }
+ }
+};
+
+struct inode {
+ string x;
+ infinint a, c;
+ infinint ea_offset;
+ inode();
+};
+
+inode::inode()
+{
+ ea_offset = 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/nrv7.C b/gcc/testsuite/g++.dg/opt/nrv7.C
new file mode 100644
index 00000000000..43c44a0944f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/nrv7.C
@@ -0,0 +1,13 @@
+// PR c++/15461
+
+struct A {
+ int i;
+};
+
+inline A foo () {
+ int j = 1;
+ A a = { j };
+ return a;
+}
+
+A tv = foo();
diff --git a/gcc/testsuite/g++.dg/opt/operator1.C b/gcc/testsuite/g++.dg/opt/operator1.C
new file mode 100644
index 00000000000..9f286b9f98c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/operator1.C
@@ -0,0 +1,10 @@
+// Tests whether g++ can handle large number of operators
+// { dg-do compile }
+
+#define OP0(n) struct I##n { int i; }; operator I##n ();
+#define OP1(n) OP0(n)
+#define OP2(n) OP1(n##0) OP1(n##1) OP1(n##2) OP1(n##3) OP1(n##4)
+#define OP3(n) OP2(n##0) OP2(n##1) OP2(n##2) OP2(n##3) OP2(n##4)
+struct S {
+ OP3(0) OP3(1) OP3(2) OP3(3) OP3(4) OP3(5)
+};
diff --git a/gcc/testsuite/g++.dg/opt/pr15054.C b/gcc/testsuite/g++.dg/opt/pr15054.C
new file mode 100644
index 00000000000..cfc48cf2498
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr15054.C
@@ -0,0 +1,36 @@
+// PR middle-end/15054
+// This used to abort due to overlapping stack temporaries.
+
+// { dg-do run }
+// { dg-options "-O" }
+
+extern "C" void abort (void);
+
+struct pointer
+{
+ void* ptr;
+
+ pointer(void* x = 0) : ptr(x) {}
+ pointer(const pointer& x) : ptr(x.ptr) {}
+};
+
+struct element
+{
+ int canary;
+
+ element() : canary(123) { }
+ ~element() { pointer(); if (canary != 123) abort (); }
+};
+
+inline pointer
+insert(const element& x)
+{
+ return pointer(new element(x));
+}
+
+int
+main (void)
+{
+ insert(element());
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/ptrmem1.C b/gcc/testsuite/g++.dg/opt/ptrmem1.C
new file mode 100644
index 00000000000..0a02a53a9bf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/ptrmem1.C
@@ -0,0 +1,12 @@
+// { dg-options "-O2" }
+
+class QWidget
+{
+ public: void repaint( bool erase = 1 );
+};
+void f (void)
+{
+ typedef void (QWidget::*A)(bool);
+ A b = &QWidget::repaint;
+}
+
diff --git a/gcc/testsuite/g++.dg/opt/ptrmem2.C b/gcc/testsuite/g++.dg/opt/ptrmem2.C
new file mode 100644
index 00000000000..19c43f7cd1f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/ptrmem2.C
@@ -0,0 +1,12 @@
+typedef unsigned int Mword;
+struct Thread
+{
+ Mword sys_ipc_log();
+ void hook_ipc_vector();
+ unsigned (Thread::*syscall_table)();
+};
+
+void Thread::hook_ipc_vector()
+{
+ syscall_table = &Thread::sys_ipc_log;
+}
diff --git a/gcc/testsuite/g++.dg/opt/reg-stack2.C b/gcc/testsuite/g++.dg/opt/reg-stack2.C
new file mode 100644
index 00000000000..08cd590b471
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/reg-stack2.C
@@ -0,0 +1,34 @@
+// PR target/9786
+// Origin: <nick@ilm.com>
+
+// This used to fail on x86 because the reg-stack pass deleted
+// an insn that could seemingly trap (but actually doesn't)
+// without updating the CFG.
+
+// { dg-do compile }
+// { dg-options "-O2 -fnon-call-exceptions" }
+
+struct D1 {
+ float l;
+ D1 GS() const {D1 d;float f=.299*l;d.l=f;return d;}
+ static D1 G() {return D1();}
+};
+
+struct D2 {
+ D1 g;
+ D2(const D1& gi) : g(gi) {}
+ D2 GS() const {return D2(g.GS());}
+};
+
+class A {
+ public:
+ virtual ~A() {}
+};
+
+class B : public A {
+ public:
+ B(const D2& mi);
+ D2 fm;
+};
+
+B::B(const D2 &mi) : fm(mi.GS()) {}
diff --git a/gcc/testsuite/g++.dg/opt/reg-stack3.C b/gcc/testsuite/g++.dg/opt/reg-stack3.C
new file mode 100644
index 00000000000..48dcb335b21
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/reg-stack3.C
@@ -0,0 +1,21 @@
+// PR target/12712
+// Origin: Markus Schoder <gccbug@gammarayburst.de>
+
+// This used to segfault on x86 because the reg-stack pass
+// created an unreachable basic block by purging an outgoing
+// edge, and was not prepared to handle it.
+
+// { dg-do compile }
+
+struct A
+{
+ ~A();
+ float f(float x);
+ float g() const {return 0;}
+};
+
+void h()
+{
+ A a, b;
+ a.f(b.g() + 1);
+}
diff --git a/gcc/testsuite/g++.dg/opt/reg-stack4.C b/gcc/testsuite/g++.dg/opt/reg-stack4.C
new file mode 100644
index 00000000000..b7ec5b77147
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/reg-stack4.C
@@ -0,0 +1,29 @@
+// PR target/12900
+// Origin: <snyder@fnal.gov>
+
+// This used to fail on x86 because the reg-stack pass
+// deleted a valid edge.
+
+// { dg-do compile }
+// { dg-options "-mcpu=i586 -O2" { target i?86-*-* } }
+
+struct array {
+ double data;
+ virtual ~array();
+};
+
+double glob;
+double ext1(double);
+int nmuons;
+
+void track_match()
+{
+ array vecdca;
+ if (glob < 10) return;
+ double p = glob*5;
+ double phi = vecdca.data;
+ ext1 (vecdca.data-glob);
+ ext1 (phi*2);
+ if (1 < p)
+ ++nmuons;
+}
diff --git a/gcc/testsuite/g++.dg/opt/stack1.C b/gcc/testsuite/g++.dg/opt/stack1.C
new file mode 100644
index 00000000000..bb6159c568e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/stack1.C
@@ -0,0 +1,135 @@
+// PR optimization/11198
+// Origin: Joerg Walter <jhr.walter@t-online.de>
+// Reduced testcase by: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+// Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// The compiler used to allocate the same stack slot for two aggregates,
+// overlooking that assignments to members given the same address on the
+// stack may not alias and thus may be reordered by the scheduling passes.
+
+// { dg-do run }
+// { dg-options "-O2 -frename-registers" }
+
+
+double zero_;
+
+inline const int&
+min(const int& a, const int& b) {
+ if (b < a) return b; return a;
+}
+
+struct barrier { barrier () {} };
+
+template <typename=void> struct unbounded_array {
+ inline unbounded_array (): data_ (new double [9]) {}
+ inline double& operator [] (int i) { return data_ [i]; }
+ double* data_;
+};
+
+inline int element (int i, int j) {
+ return i + j;
+}
+
+template <typename=void>
+struct matrix {
+ inline matrix () : size2_ (3) {}
+
+ inline unbounded_array<> &data () { return data_; }
+
+ inline double& el (int i, int j) {
+ int dead1 = j;
+ int dead2 = 1 + i - j;
+ if (j < size2_ && i-j < 2)
+ return data () [element (j,i-j+1)];
+ barrier ();
+ return zero_;
+ }
+
+ struct iterator2;
+
+ inline iterator2 find () {
+ return iterator2 (*this);
+ }
+
+ struct iterator1 {
+ inline iterator1 (matrix *m):
+ dead1 (m), i (0) {}
+ void *dead1;
+ int i;
+ int dead2;
+ };
+
+ const int size2_;
+ unbounded_array<> data_;
+};
+
+
+template<typename=void>
+struct adaptor {
+ adaptor (matrix<> &m) : m(&m), upper_ (1) {}
+
+ int size1 () const { return m->size1 (); }
+ int size2 () const { return 3; }
+ int lower () const { return 1; }
+ int upper () const { return upper_; }
+ matrix<> &data () { return *m; }
+
+ double& el (int i, int j) {
+ int dead1, dead2;
+ if (j < size2 () && i-j < 1)
+ return data ().el (i, j);
+
+ barrier ();
+ return zero_;
+ }
+
+ struct a_iterator2;
+
+ struct a_iterator1 {
+ a_iterator1 (adaptor &a, const matrix<>::iterator1 &it1):
+ a (&a), dead1 (it1) {}
+
+ a_iterator2 begin () const {
+ return a_iterator2(*a);
+ }
+ adaptor *a;
+ matrix<>::iterator1 dead1;
+ };
+
+ struct a_iterator2 {
+ a_iterator2 (adaptor &a) : a (&a) {}
+
+ double& f () const {
+ int i = 0;
+ int l = a->upper () + i;
+ int q = a->size2 ();
+ if (0 < q &&
+ l < a->lower () + 1 + a->upper ())
+ return a->m->el(0,0);
+
+ return a->el (i, 0);
+ }
+
+ adaptor *a;
+ };
+
+ matrix<> *m;
+ int upper_;
+};
+
+void matrix_swap (adaptor<> &bam1, adaptor<> &bam2)
+{
+ adaptor<>::a_iterator1 it1 (bam1,matrix<>::iterator1(bam1.m)),
+ it2 (bam2,matrix<>::iterator1(bam2.m));
+ int dead;
+ double x = it1.begin().f();
+ it2.begin().f() = x;
+}
+
+int main ()
+{
+ matrix<> m1,m2;
+ adaptor<> bam1 (m1), bam2 (m2);
+ matrix_swap (bam1, bam2);
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/strength-reduce.C b/gcc/testsuite/g++.dg/opt/strength-reduce.C
new file mode 100644
index 00000000000..7c4619a36fa
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/strength-reduce.C
@@ -0,0 +1,51 @@
+// This testcase was miscompiled on s390x, because strength-reduction
+// did not see biv in C::foo as used after loop, but it was used
+// in a REG_EQUAL note.
+// { dg-do run }
+// { dg-options "-O2" }
+
+extern "C" void abort (void);
+
+struct C
+{
+ int foo (char ch, int offset = 0x7fffffff) const;
+ int bar (int offset, char c) const;
+ char *a;
+};
+
+int C::bar (int offset, char c) const
+{
+ char ch = a[offset];
+ if (ch < c)
+ return -1;
+ if (ch > c)
+ return 1;
+ return 0;
+}
+
+int C::foo (char ch, int offset) const
+{
+ int len = __builtin_strlen (a);
+ if (len == 0)
+ return 0x7fffffff;
+ if (offset >= len)
+ offset = len - 1;
+
+ while (bar (offset, ch) != 0)
+ {
+ if (offset == 0)
+ return 0x7fffffff;
+ offset--;
+ }
+
+ return offset;
+}
+
+int main (void)
+{
+ C c;
+ c.a = "/some/dir/file.ext";
+ if (c.foo ('/') != 9)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/unroll1.C b/gcc/testsuite/g++.dg/opt/unroll1.C
new file mode 100644
index 00000000000..fd07f889a1d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/unroll1.C
@@ -0,0 +1,420 @@
+// PR optimization/12340
+// Origin: Richard Guenther <richard.guenther@uni-tuebingen.de>
+// Testcase by Eric Botcazou <ebotcazou@libertysurf.fr>
+
+// This used to segfault on x86 because the loop optimizer wrongly
+// interpreted a double assignment to a biv as a double increment,
+// which subsequently fooled the unroller.
+
+// { dg-do run }
+// { dg-options "-O2 -fno-exceptions -funroll-loops" }
+
+typedef __SIZE_TYPE__ size_t;
+
+inline void* operator new(size_t, void* __p) throw() { return __p; }
+inline void operator delete (void*, void*) throw() { };
+
+class Loc;
+class Interval;
+
+template<class DT>
+class DomainBase
+{
+public:
+ typedef typename DT::Domain_t Domain_t;
+ typedef typename DT::Storage_t Storage_t;
+
+ Domain_t &unwrap() { return *static_cast<Domain_t *>(this); }
+
+ const Domain_t &unwrap() const {
+ return *static_cast<Domain_t *>(const_cast<DomainBase<DT> *>(this));
+ }
+
+protected:
+ Storage_t domain_m;
+};
+
+template<class DT>
+class Domain : public DomainBase<DT>
+{
+ typedef DomainBase<DT> Base_t;
+
+public:
+ typedef typename DT::Size_t Size_t;
+ typedef typename DT::Element_t Element_t;
+ typedef typename Base_t::Domain_t Domain_t;
+ typedef typename Base_t::Storage_t Storage_t;
+
+ Domain_t &operator[](int) { return this->unwrap(); }
+
+ const Domain_t &operator[](int) const { return this->unwrap(); }
+
+ template<class T>
+ void setDomain(const T &newdom) {
+ DT::setDomain(this->domain_m, newdom);
+ }
+
+ Element_t first() const { return DT::first(this->domain_m); }
+
+ Size_t length() const { return DT::length(this->domain_m); }
+
+ Size_t size() const { return length(); }
+};
+
+template<class T>
+struct DomainTraits;
+
+template<>
+struct DomainTraits<Interval>
+{
+ typedef int Size_t;
+ typedef int Element_t;
+ typedef Interval Domain_t;
+ typedef Interval OneDomain_t;
+ typedef Loc AskDomain_t;
+ typedef int Storage_t[2];
+ enum { dimensions = 1 };
+ enum { wildcard = false };
+
+ static int first(const Storage_t &d) { return d[0]; }
+
+ static int length(const Storage_t &d) { return d[1]; }
+
+ static OneDomain_t &getDomain(Domain_t &d, int) { return d; }
+
+ static const OneDomain_t &getDomain(const Domain_t &d, int) { return d; }
+
+ template<class T>
+ static void setDomain(Storage_t &dom, const T &newdom) {
+ dom[0] = newdom.first();
+ dom[1] = newdom.length();
+ }
+
+ template<class T1, class T2>
+ static void setDomain(Storage_t &dom, const T1 &begval, const T2 &endval) {
+ dom[0] = begval;
+ dom[1] = (endval - begval + 1);
+ }
+
+};
+
+class Interval : public Domain<DomainTraits<Interval> >
+{
+public:
+ Interval(const Interval &a) : Domain<DomainTraits<Interval> >() {
+ for (int i=0; i < DomainTraits<Interval>::dimensions; ++i)
+ DomainTraits<Interval>::getDomain(*this, i).setDomain(
+ DomainTraits<Interval>::getDomain(a, i));
+ }
+
+ Interval(int a) : Domain<DomainTraits<Interval> >()
+ {
+ DomainTraits<Interval>::setDomain(domain_m, 0, a - 1);
+ }
+};
+
+template<>
+struct DomainTraits<Loc>
+{
+ typedef int Size_t;
+ typedef int Element_t;
+ typedef Loc Domain_t;
+ typedef Loc AskDomain_t;
+ typedef Loc MultResult_t;
+ typedef int Storage_t;
+
+ static int first(int d) { return d; }
+
+ template<class T>
+ static void setDomain(int &dom, const T &newdom) {
+ dom = DomainTraits<T>::getFirst(newdom);
+ }
+};
+
+template<>
+struct DomainTraits<int>
+ {
+ enum { dimensions = 1 };
+ enum { wildcard = false };
+
+ static int getPointDomain(int d, int) { return d; }
+
+ static int getFirst(const int &d) { return d; }
+};
+
+class Loc : public Domain<DomainTraits<Loc> >
+{
+public:
+ explicit Loc(const int &a) : Domain<DomainTraits<Loc> >() {
+ for (int i=0; i < 1; ++i)
+ (*this)[i].setDomain(DomainTraits<int>::getPointDomain(a, 0));
+ }
+};
+
+struct ElementProperties
+{
+ enum { hasTrivialDefaultConstructor = false };
+ enum { hasTrivialDestructor = false };
+
+ static void construct(double* addr)
+ {
+ new (addr) double();
+ }
+
+ static void construct(double* addr, const double& model)
+ {
+ new (addr) double(model);
+ }
+
+ static void destruct(double *addr) {}
+};
+
+class RefCounted
+{
+public:
+ RefCounted() : count_m(0) {}
+
+ void addReference() { ++count_m; }
+ bool removeRefAndCheckGarbage()
+ {
+ return (--count_m == 0);
+ }
+
+private:
+ int count_m;
+};
+
+class RefBlockController : public RefCounted
+{
+public:
+ explicit RefBlockController(unsigned int size)
+ : pBegin_m(0), pEnd_m(0), pEndOfStorage_m(0), dealloc_m(false)
+ {
+ reallocateStorage(size, false);
+
+ if (!ElementProperties::hasTrivialDefaultConstructor)
+ {
+ for (double * pt = begin(); pt != end(); ++pt)
+ ElementProperties::construct(pt);
+ }
+ }
+
+ ~RefBlockController()
+ {
+ deleteStorage();
+ }
+
+ double *begin() const
+ {
+ return pBegin_m;
+ }
+
+ double *end() const
+ {
+ return pEnd_m;
+ }
+
+ bool isMine() const
+ {
+ return dealloc_m;
+ }
+
+private:
+ void deleteStorage()
+ {
+ if (isMine() && pBegin_m != 0)
+ {
+ if (!ElementProperties::hasTrivialDestructor)
+ for (double *pt = begin(); pt != end(); ++pt)
+ ElementProperties::destruct(pt);
+
+ char *tmp = reinterpret_cast<char *>(pBegin_m);
+ delete [] tmp;
+ }
+ }
+
+ void reallocateStorage(unsigned int newsize, bool copyold = false)
+ {
+ double *pBeginNew = 0;
+ double *pEndNew = 0;
+ double *pEndOfStorageNew = 0;
+
+ if (newsize > 0)
+ {
+ int nsize = newsize * sizeof(double);
+ char *tmp = new char[nsize];
+ pBeginNew = reinterpret_cast<double *>(tmp);
+ pEndNew = pBeginNew + newsize;
+ pEndOfStorageNew = pBeginNew + (nsize / sizeof(double));
+
+ if (copyold)
+ {
+ double * pOld = begin();
+ double * pNew = pBeginNew;
+ while (pOld != end() && pNew != pEndNew)
+ ElementProperties::construct(pNew++,*pOld++);
+ }
+ }
+
+ deleteStorage();
+
+ pBegin_m = pBeginNew;
+ pEnd_m = pEndNew;
+ pEndOfStorage_m = pEndOfStorageNew;
+ dealloc_m = true;
+ }
+
+ double *pBegin_m;
+ double *pEnd_m;
+ double *pEndOfStorage_m;
+ bool dealloc_m;
+};
+
+class DataBlockController : public RefBlockController
+{
+public:
+ explicit
+ DataBlockController(unsigned int size)
+ : RefBlockController(size), dataObjectPtr_m(new char), owned_m(true) {}
+
+ ~DataBlockController()
+ {
+ if (owned_m) delete dataObjectPtr_m;
+ }
+
+private:
+ mutable char *dataObjectPtr_m;
+ bool owned_m;
+};
+
+class RefCountedPtr
+{
+public:
+ RefCountedPtr(DataBlockController * const pT) : ptr_m(pT)
+ { if (isValid()) ptr_m->addReference(); }
+
+ ~RefCountedPtr() { invalidate(); }
+
+ DataBlockController* operator->() const { return ptr_m; }
+ void invalidate();
+ bool isValid() const { return ptr_m != 0; }
+
+private:
+ friend class RefCountedBlockPtr;
+ DataBlockController * ptr_m;
+};
+
+inline void RefCountedPtr::invalidate()
+{
+ if ( isValid() && ptr_m->removeRefAndCheckGarbage() )
+ delete ptr_m;
+ ptr_m = 0;
+}
+
+class RefCountedBlockPtr
+{
+public:
+ explicit RefCountedBlockPtr(unsigned int size)
+ : offset_m(0),
+ blockControllerPtr_m(new DataBlockController(size)) {}
+
+ int offset() const
+ {
+ return offset_m;
+ }
+
+ double *beginPointer() const
+ {
+ return blockControllerPtr_m->begin();
+ }
+
+ double *currentPointer() const
+ {
+ return beginPointer() + offset();
+ }
+
+protected:
+ int offset_m;
+ RefCountedPtr blockControllerPtr_m;
+};
+
+class DataBlockPtr : public RefCountedBlockPtr
+{
+public:
+ explicit DataBlockPtr(unsigned int size) : RefCountedBlockPtr(size) {}
+};
+
+class Node
+{
+public:
+ Node(const Interval &owned, const Interval &allocated)
+ : domain_m(owned), allocated_m(allocated) {}
+
+ const Interval &allocated() const { return allocated_m; }
+
+private:
+ Interval domain_m;
+ Interval allocated_m;
+};
+
+class DomainLayout
+{
+public:
+ explicit DomainLayout(const Interval &dom) : node_m(0, dom) {}
+
+ const Interval &domain() const
+ {
+ return node_m.allocated();
+ }
+
+private:
+ Node node_m;
+};
+
+class BrickBase
+{
+public:
+ explicit BrickBase(const Interval &domain);
+
+ int offset(const Loc &dom) const { return off_m + dom[0].first(); }
+
+protected:
+ DomainLayout layout_m;
+ int firsts_m;
+ int off_m;
+};
+
+BrickBase::BrickBase(const Interval &dom)
+ : layout_m(dom)
+{
+ firsts_m = layout_m.domain()[0].first();
+ off_m = -firsts_m;
+}
+
+class Engine : public BrickBase
+{
+public:
+ explicit Engine(const Interval &dom)
+ : BrickBase(dom), dataBlock_m(dom.size()), data_m(dataBlock_m.currentPointer()) {}
+
+ double& operator()(const Loc &loc) const
+ {
+ return data_m[this->offset(loc)];
+ }
+
+private:
+ DataBlockPtr dataBlock_m;
+ double *data_m;
+};
+
+
+int main()
+{
+ Interval I(10);
+ Engine A(I);
+
+ for (int i = 0; i < 10; i++)
+ A(Loc(i)) = 2.0 + i - i*i;
+
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/opt/vtgc1.C b/gcc/testsuite/g++.dg/opt/vtgc1.C
deleted file mode 100644
index 511d45b36e7..00000000000
--- a/gcc/testsuite/g++.dg/opt/vtgc1.C
+++ /dev/null
@@ -1,136 +0,0 @@
-// { dg-do compile }
-// { dg-options "-fvtable-gc" }
-// Origin: Hans-Peter Nilsson <hp@bitrange.com>
-
-class Base0
-{
-public:
- Base0(); virtual ~Base0();
- virtual void f1();
- virtual void f2();
-private:
- int a_value;
-};
-
-class Base1 : public Base0
-{
-public:
- Base1(); virtual ~Base1();
- virtual void f1(), f2();
- virtual void f3();
-};
-
-class Base2 : public Base1
-{
-public:
- Base2(); virtual ~Base2();
- virtual void f1(), f2();
- virtual void f4();
-};
-
-class VbasedA : virtual public Base2
-{
-public:
- VbasedA(); virtual ~VbasedA();
- virtual void f1(), f2(), f3();
- virtual void f6();
-};
-
-class Side0
-{
-public:
- Side0(); virtual ~Side0();
- virtual void x1();
- virtual void xx();
-private:
- int ryan;
-};
-
-class Multisv0 : public Side0, virtual public Base2
-{
-public:
- Multisv0(); virtual ~Multisv0();
- virtual void f1(), f2();
- virtual void f3();
- virtual void f6();
- virtual void xx();
-};
-
-class Multivs1 : public Base2, virtual public Side0
-{
-public:
- Multivs1(); virtual ~Multivs1(); virtual void f1(); virtual void fx2();
- virtual void fx4(), fx5();
- virtual void f6();
- virtual void xx();
-};
-
-class Multiss2 : public Base2, public Side0
-{
-public:
- Multiss2(); virtual ~Multiss2(); virtual void f1(); virtual void fx2();
- virtual void fx4();
- virtual void f6();
- virtual void xx();
-};
-
-class Multivv3 : virtual public Base2, virtual public Side0
-{
-public:
- Multivv3(); virtual ~Multivv3(); virtual void f1(); virtual void fx2();
- virtual void fx4(), fx5();
- virtual void f6();
- virtual void xx();
-};
-
-Base0::Base0() {}
-Base0::~Base0() {}
-Base1::Base1() {}
-Base1::~Base1() {}
-Base2::Base2() {}
-Base2::~Base2() {}
-VbasedA::VbasedA() {}
-VbasedA::~VbasedA() {}
-Multisv0::Multisv0() {}
-Multisv0::~Multisv0() {}
-Multivs1::Multivs1() {}
-Multivs1::~Multivs1() {}
-Multiss2::Multiss2() {}
-Multiss2::~Multiss2() {}
-Multivv3::Multivv3() {}
-Multivv3::~Multivv3() {}
-Side0::Side0() {}
-Side0::~Side0() {}
-
-extern void x (VbasedA *);
-extern void x2 (Multisv0 *);
-extern void x3 (Multivs1 *);
-extern void x4 (Multiss2 *);
-extern void x5 (Multivv3 *);
-void y () { VbasedA ii; x(&ii);}
-void y2 () { Multisv0 ii; x2(&ii);}
-void y3 () { Multivs1 ii; x3(&ii);}
-void y4 () { Multiss2 ii; x4(&ii);}
-void y5 () { Multivv3 ii; x5(&ii);}
-void x (VbasedA *ii) { ii->f2();}
-void x2 (Multisv0 *ii) { ii->f2();}
-void x3 (Multivs1 *ii) { ii->f2();}
-void x4 (Multiss2 *ii) { ii->f2();}
-void x5 (Multivv3 *ii) { ii->f2();}
-
-// Use .* because of ia64's convention of marking symbols with "#", which
-// makes it through the c++filt.
-
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Multivv3.*0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*VTT for Multivv3.*0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Multiss2.*vtable for Base2" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Multivs1.*vtable for Base2" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*VTT for Multivs1.*vtable for Base2" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Multisv0.*vtable for Side0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*VTT for Multisv0.*vtable for Side0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Side0.*0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for VbasedA.*0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*VTT for VbasedA.*0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Base2.*vtable for Base1" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Base1.*vtable for Base0" } }
-// { dg-final { scan-assembler-dem "\.vtable_inherit\[ \t\]*vtable for Base0.*0" } }
diff --git a/gcc/testsuite/g++.dg/other/bitfield1.C b/gcc/testsuite/g++.dg/other/bitfield1.C
new file mode 100644
index 00000000000..896490fbafc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/bitfield1.C
@@ -0,0 +1,9 @@
+// { dg-options "-w" }
+
+union u1 {
+ char m1 : 16;
+} x;
+
+int main () {
+ x.m1 = 256;
+}
diff --git a/gcc/testsuite/g++.dg/other/complex1.C b/gcc/testsuite/g++.dg/other/complex1.C
new file mode 100644
index 00000000000..5c035142851
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/complex1.C
@@ -0,0 +1,28 @@
+// PR middle-end/18882
+// Origin: Petr Mikulik <mikulik@physics.muni.cz>
+// Testcase by Wolfgang Bangerth <bangerth@dealii.com>
+
+// { dg-do run }
+// { dg-options "" }
+
+extern "C" void abort ();
+
+struct C {
+ __complex__ long double c;
+};
+
+void foo()
+{
+ C x = {2+2i};
+
+ int n = 1;
+ C y = (n==1) ? x : (C){3+3i};
+ if (__imag__ y.c != 2)
+ abort ();
+}
+
+int main(void)
+{
+ foo ();
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/other/crash-2.C b/gcc/testsuite/g++.dg/other/crash-2.C
new file mode 100644
index 00000000000..961a18a2384
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/crash-2.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// { dg-options "-finline -finline-functions" }
+// Contributed by Hans Buchmann <hans dot buchmann at fhso dot ch>
+// PR c++/14033: ICE while inlining a function with incomplete parameter
+
+struct A; // { dg-error "forward declaration" }
+void foo(A a) {} // { dg-error "incomplete" }
+struct A {};
+
+void bar(void)
+{
+ foo(A());
+}
diff --git a/gcc/testsuite/g++.dg/other/do1.C b/gcc/testsuite/g++.dg/other/do1.C
index 5ff6c5682ba..5113ed727d0 100644
--- a/gcc/testsuite/g++.dg/other/do1.C
+++ b/gcc/testsuite/g++.dg/other/do1.C
@@ -8,6 +8,6 @@
void init ()
{
do { } while (0)
- obj = 0; // { dg-error "parse error" "" }
+ obj = 0; // { dg-error "(parse|syntax) error" "" }
}
diff --git a/gcc/testsuite/g++.dg/other/error5.C b/gcc/testsuite/g++.dg/other/error5.C
new file mode 100644
index 00000000000..6ed1ed08a22
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/error5.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// Origin: Wolfgang Bangerth <bangerth@ices.utexas.edu>
+// PR c++/11106: Error message gives partially mangled operator name
+
+template <typename T> struct S {
+ struct I {};
+};
+
+template <typename T> struct S2 : S<T> {
+ using S<T>::operator typename S<T>::I*;
+}; // { dg-error "operator S\\<T\\>" "" }
+
+template struct S2<int>; // { dg-error "instantiated" "" }
diff --git a/gcc/testsuite/g++.dg/other/error6.C b/gcc/testsuite/g++.dg/other/error6.C
new file mode 100644
index 00000000000..9b403c7207b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/error6.C
@@ -0,0 +1,19 @@
+// { dg-do compile }
+// Make sure we emit a decent error message when trying to mangle an
+// expression not supported by the C++ ABI due to a defect.
+
+template <int N>
+struct A {};
+
+struct B
+{
+ static int foo(void);
+};
+
+template <class T>
+A<sizeof(T::foo())> func(void);
+
+int main()
+{
+ func<B>(); // { dg-error "sorry, unimplemented" }
+}
diff --git a/gcc/testsuite/g++.dg/other/packed1.C b/gcc/testsuite/g++.dg/other/packed1.C
index b515854a849..c46c3730610 100644
--- a/gcc/testsuite/g++.dg/other/packed1.C
+++ b/gcc/testsuite/g++.dg/other/packed1.C
@@ -1,4 +1,7 @@
-// { dg-do run }
+// { dg-do run { xfail arm-*-* hppa*-*-* mips-*-* powerpc-*-* sh-*-* sparc*-*-* ia64-hp-hpux* } }
+
+// NMS:2003-04-21 this fails on strict aligned architectures again,
+// the patch was reverted because it broke something more important.
// Copyright (C) 2002 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 8 Aug 2002 <nathan@codesourcery.com>
@@ -19,4 +22,4 @@ int main ()
return 0;
-};
+}
diff --git a/gcc/testsuite/g++.dg/other/pragma-ep-1.C b/gcc/testsuite/g++.dg/other/pragma-ep-1.C
index 99450cd79e4..151003cb153 100644
--- a/gcc/testsuite/g++.dg/other/pragma-ep-1.C
+++ b/gcc/testsuite/g++.dg/other/pragma-ep-1.C
@@ -5,7 +5,7 @@
/* { dg-final { scan-assembler "four" } } */
/* { dg-final { scan-assembler-not "_four" } } */
-#ifndef __EXTERN_PREFIX
+#ifndef __PRAGMA_EXTERN_PREFIX
#error
#endif
diff --git a/gcc/testsuite/g++.dg/other/profile1.C b/gcc/testsuite/g++.dg/other/profile1.C
new file mode 100644
index 00000000000..bc92460830b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/profile1.C
@@ -0,0 +1,51 @@
+// PR 11767
+// { dg-do run }
+// { dg-options "-fnon-call-exceptions -fprofile-arcs" }
+
+#include <string>
+
+typedef unsigned long ACE_UINT32;
+extern "C" void abort();
+
+static ACE_UINT32 const msc_maxCurrencyID = 9999;
+
+class ResourceBalanceType2
+{
+ public:
+ explicit ResourceBalanceType2(
+ ACE_UINT32 resourceBalanceTypeID,
+ ACE_UINT32 isoValue,
+ const std::string& rc_shortName,
+ const std::string& rc_symbol
+ );
+ public:
+ const ACE_UINT32 mc_resBalTypeID;
+ const ACE_UINT32 mc_isoValue;
+ const std::string mc_shortName;
+ const std::string mc_symbol;
+};
+
+void f(){}
+
+ResourceBalanceType2::ResourceBalanceType2(
+ ACE_UINT32 resourceBalanceTypeID,
+ ACE_UINT32 isoValue,
+ const std::string& rc_shortName,
+ const std::string& rc_symbol)
+ : mc_resBalTypeID(resourceBalanceTypeID),
+ mc_isoValue(isoValue),
+ mc_shortName(rc_shortName),
+ mc_symbol(rc_symbol)
+{
+ bool isGreater = (mc_isoValue > msc_maxCurrencyID);
+ f();
+ bool temp = mc_isoValue > msc_maxCurrencyID;
+ if (!isGreater) abort();
+ if (!temp) abort();
+}
+
+int main (int argc, char * argv[])
+{
+ ACE_UINT32 const mc_isoValue = 10000;
+ ResourceBalanceType2 rbResourceBalanceType2(3, mc_isoValue, "ATM", "M");
+}
diff --git a/gcc/testsuite/g++.dg/other/struct-va_list.C b/gcc/testsuite/g++.dg/other/struct-va_list.C
new file mode 100644
index 00000000000..769b909ff46
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/struct-va_list.C
@@ -0,0 +1,8 @@
+// { dg-do compile }
+// PR target/13302
+
+#include <stdarg.h>
+
+struct NumArgState{
+ va_list ap;
+};
diff --git a/gcc/testsuite/g++.dg/other/switch1.C b/gcc/testsuite/g++.dg/other/switch1.C
new file mode 100644
index 00000000000..a22d2b573fa
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/switch1.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+// Contributed by: Nick Savoiu <savoiu at ics dot uci dot edu>
+// PR c++/14250: Incomplete type in switch statement
+
+template <typename T>
+struct A {
+ operator int();
+};
+
+struct C1 {
+ static A<void> t1;
+
+ void fun()
+ {
+ switch(t1)
+ {
+ default: break;
+ }
+ }
+};
diff --git a/gcc/testsuite/g++.dg/overload/builtin2.C b/gcc/testsuite/g++.dg/overload/builtin2.C
new file mode 100644
index 00000000000..4f9f52dda1a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/builtin2.C
@@ -0,0 +1,8 @@
+namespace __gnu_cxx {
+ void llabs(long long x);
+}
+
+namespace std {
+ using __gnu_cxx::llabs;
+ using __gnu_cxx::llabs;
+}
diff --git a/gcc/testsuite/g++.dg/overload/builtin3.C b/gcc/testsuite/g++.dg/overload/builtin3.C
new file mode 100644
index 00000000000..dcd9fd02e38
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/builtin3.C
@@ -0,0 +1,10 @@
+// PR c++/11409
+// { dg-do compile }
+
+namespace std {
+ double fabs (double);
+}
+using std::fabs;
+
+double (*p) (double) = &fabs; // { dg-bogus "is ambiguous" "" }
+
diff --git a/gcc/testsuite/g++.dg/overload/operator1.C b/gcc/testsuite/g++.dg/overload/operator1.C
new file mode 100644
index 00000000000..f4d1f53f14e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/operator1.C
@@ -0,0 +1,34 @@
+typedef struct _GdkDrawable GdkDrawable;
+typedef struct _GdkDrawable GdkBitmap;
+typedef struct _GdkDrawable GdkPixmap;
+
+class Drawable
+{
+public:
+ operator GdkDrawable* () const;
+};
+
+
+class Pixmap : public Drawable
+{
+public:
+ operator GdkPixmap* () const;
+
+};
+
+
+class Bitmap : public Pixmap
+{
+public:
+ operator GdkBitmap* () const;
+
+};
+
+class Event
+{
+};
+
+Bitmap::operator GdkBitmap* () const
+{
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/overload/template1.C b/gcc/testsuite/g++.dg/overload/template1.C
new file mode 100644
index 00000000000..5bfad8464f7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/template1.C
@@ -0,0 +1,12 @@
+template<typename T> T Foo (int) {T d;}
+
+void Baz (void (*)(int), int);
+
+int Foo ();
+int Baz (int (*)(), float);
+
+void Bar ()
+{
+ Baz (Foo, 1.0f);
+
+}
diff --git a/gcc/testsuite/g++.dg/parse/angle-bracket.C b/gcc/testsuite/g++.dg/parse/angle-bracket.C
index 9c1f2476c71..5fad51b44f9 100644
--- a/gcc/testsuite/g++.dg/parse/angle-bracket.C
+++ b/gcc/testsuite/g++.dg/parse/angle-bracket.C
@@ -4,6 +4,6 @@
int main()
{
- ( int() > int() ); // { dg-bogus "parse" "" { xfail *-*-* } }
+ ( int() > int() ); // { dg-bogus "parse|syntax" "" { xfail *-*-* } }
return 0;
}
diff --git a/gcc/testsuite/g++.dg/parse/class1.C b/gcc/testsuite/g++.dg/parse/class1.C
new file mode 100644
index 00000000000..819c48d9c21
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/class1.C
@@ -0,0 +1,10 @@
+namespace N
+{
+ struct A;
+ int f() {
+ struct N::A { // { dg-error "" }
+ A() {}
+ };
+ return 0;
+ }
+}
diff --git a/gcc/testsuite/g++.dg/parse/conv_op1.C b/gcc/testsuite/g++.dg/parse/conv_op1.C
new file mode 100644
index 00000000000..e892f01aadd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/conv_op1.C
@@ -0,0 +1,30 @@
+
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 21 Dec 2002 <nathan@codesourcery.com>
+
+// PR 8572. ICE with templated conversion operators.
+
+template <typename T> struct A
+{
+ struct B { };
+ operator B* () const;
+ B *Foo ();
+};
+
+template <typename T> typename A<T>::B *A<T>::Foo ()
+{
+ return 0;
+}
+
+template <typename T> A<T>::operator typename A<T>::B* () const
+{
+ return 0;
+}
+
+void Foo (A<int> &p)
+{
+ p.Foo ();
+ static_cast <A<int>::B *> (p);
+}
diff --git a/gcc/testsuite/g++.dg/parse/crash2.C b/gcc/testsuite/g++.dg/parse/crash2.C
new file mode 100644
index 00000000000..88eee267c82
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash2.C
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+int main(void)
+{
+ char x, y;
+ if ('A' == x) && ('B' == y)) { } /* { dg-error "(parse|syntax) error" } */
+ if (x == 'A') && (y == 'B')) { }
+}
diff --git a/gcc/testsuite/g++.dg/parse/crash3.C b/gcc/testsuite/g++.dg/parse/crash3.C
new file mode 100644
index 00000000000..5a48ebc7cc7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash3.C
@@ -0,0 +1,2 @@
+template <class T> struct L { struct I {}; };
+template <class T> void L<T>::I::foo() {} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/crash4.C b/gcc/testsuite/g++.dg/parse/crash4.C
new file mode 100644
index 00000000000..a24f0dd003c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash4.C
@@ -0,0 +1,12 @@
+struct Bar
+ {
+ typedef int type;
+ };
+
+ struct Foo
+ {
+ void func(void)
+ {
+ mutable Bar::type x; // { dg-error "" }
+ }
+ };
diff --git a/gcc/testsuite/g++.dg/parse/crash6.C b/gcc/testsuite/g++.dg/parse/crash6.C
new file mode 100644
index 00000000000..0cc5c84faf7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash6.C
@@ -0,0 +1,10 @@
+struct P {};
+
+template <typename >
+struct O
+{
+ struct I;
+};
+
+template <typename T>
+struct O<T>::I::S : P {}; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/crash7.C b/gcc/testsuite/g++.dg/parse/crash7.C
new file mode 100644
index 00000000000..533a0ec0f34
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash7.C
@@ -0,0 +1,19 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 23 Jul 2003 <nathan@codesourcery.com>
+
+// PR 11282. Infinite loop/memory consumption
+
+struct parameter_struct_t {
+ char short_option;
+ char *long_option;
+};
+
+parameter_struct_t *parameters[] = {
+ {
+ 'f'; // { dg-error "error before" "" }
+ "from";
+ };
+};
+
diff --git a/gcc/testsuite/g++.dg/parse/elab1.C b/gcc/testsuite/g++.dg/parse/elab1.C
new file mode 100644
index 00000000000..2997eef6255
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/elab1.C
@@ -0,0 +1,9 @@
+namespace Name {
+
+ typedef void *(*Function)( void *, int );
+
+ struct Foo {
+ struct Function xyz[5]; // { dg-error "" }
+ };
+
+}
diff --git a/gcc/testsuite/g++.dg/parse/error7.C b/gcc/testsuite/g++.dg/parse/error7.C
new file mode 100644
index 00000000000..8dd1e9d30da
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/error7.C
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// Properly print CALL_EXPRs while dumping expressions
+
+double g;
+int func(double);
+
+template <int>
+struct Foo {};
+
+Foo<func(g)> f; // { dg-error "" "func(g)" }
diff --git a/gcc/testsuite/g++.dg/parse/init1.C b/gcc/testsuite/g++.dg/parse/init1.C
new file mode 100644
index 00000000000..7e7011594ba
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/init1.C
@@ -0,0 +1,2 @@
+// { dg-do compile }
+int i[8] = { [0] 3 };
diff --git a/gcc/testsuite/g++.dg/parse/namespace1.C b/gcc/testsuite/g++.dg/parse/namespace1.C
new file mode 100644
index 00000000000..06642d429ef
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/namespace1.C
@@ -0,0 +1,10 @@
+namespace a {
+ namespace b {
+ void foo();
+ }
+}
+
+void
+a::b:foo() // { dg-error "" }
+{
+}
diff --git a/gcc/testsuite/g++.dg/parse/namespace8.C b/gcc/testsuite/g++.dg/parse/namespace8.C
new file mode 100644
index 00000000000..d5a9b0ac131
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/namespace8.C
@@ -0,0 +1,6 @@
+namespace X {
+ typedef struct {
+ } x;
+}
+typedef X::x x;
+using X::x;
diff --git a/gcc/testsuite/g++.dg/parse/namespace9.C b/gcc/testsuite/g++.dg/parse/namespace9.C
new file mode 100644
index 00000000000..7ff0267bff3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/namespace9.C
@@ -0,0 +1,8 @@
+namespace A {
+ void f();
+}
+int g()
+{
+ struct f { };
+ using A::f;
+}
diff --git a/gcc/testsuite/g++.dg/parse/octal1.C b/gcc/testsuite/g++.dg/parse/octal1.C
new file mode 100644
index 00000000000..8d62eef3c7d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/octal1.C
@@ -0,0 +1 @@
+int i = 08; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
index 11a9c7b7da9..22d6f214d7d 100644
--- a/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
+++ b/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C
@@ -3,4 +3,4 @@
// { dg-do compile }
struct {
- a(void = 0; a(0), a(0) // { dg-error "" "" { target *-*-* } 7 }
+ a(void = 0; a(0), a(0) // { dg-error "" "" { target *-*-* } }
diff --git a/gcc/testsuite/g++.dg/parse/ptrmem1.C b/gcc/testsuite/g++.dg/parse/ptrmem1.C
new file mode 100644
index 00000000000..b1174c7d97b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/ptrmem1.C
@@ -0,0 +1,10 @@
+struct A {
+ void f(int = 0) const;
+};
+
+typedef void (A::*PF)(int) const;
+
+void f()
+{
+ PF pf = &A::f;
+}
diff --git a/gcc/testsuite/g++.dg/parse/template12.C b/gcc/testsuite/g++.dg/parse/template12.C
new file mode 100644
index 00000000000..ba375bc437a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/template12.C
@@ -0,0 +1,10 @@
+template <int J>
+struct A {
+};
+
+struct B {
+ template <int I>
+ struct C : public A<I> {};
+
+ typedef double I;
+};
diff --git a/gcc/testsuite/g++.dg/parse/template8.C b/gcc/testsuite/g++.dg/parse/template8.C
new file mode 100644
index 00000000000..e4af7eea3a5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/template8.C
@@ -0,0 +1,16 @@
+namespace N
+{
+
+template <typename> struct A
+{
+ template <typename T> A(A<T>);
+};
+
+}
+
+void foo(N::A<int>);
+
+void bar()
+{
+ foo(N::A); // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/parse/typedef1.C b/gcc/testsuite/g++.dg/parse/typedef1.C
index 5dbd16a154f..68c09dd0f1c 100644
--- a/gcc/testsuite/g++.dg/parse/typedef1.C
+++ b/gcc/testsuite/g++.dg/parse/typedef1.C
@@ -1,3 +1,3 @@
// PR c++/6477
-typedef struct A_ *A; // { dg-error "previous declaration as" }
-typedef struct A B; // { dg-error "conflicting types" }
+typedef struct A_ *A;
+typedef struct A B; // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/varmod1.C b/gcc/testsuite/g++.dg/parse/varmod1.C
new file mode 100644
index 00000000000..bf64507ae9b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/varmod1.C
@@ -0,0 +1,7 @@
+int main(int argc, char** argv) {
+ int nx = 2;
+ void theerror(double a[][nx+1]); // { dg-error "" }
+ double** a;
+ theerror(a); // { dg-error "" }
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/rtti/dyncast1.C b/gcc/testsuite/g++.dg/rtti/dyncast1.C
new file mode 100644
index 00000000000..204b4462f93
--- /dev/null
+++ b/gcc/testsuite/g++.dg/rtti/dyncast1.C
@@ -0,0 +1,23 @@
+class JunkBase
+{
+public:
+ virtual void DoSomething( void ) = 0;
+protected:
+ virtual ~JunkBase( void ) {};
+ JunkBase( void ) {}
+};
+
+class Junk : protected JunkBase
+{
+public:
+ Junk( void ) : JunkBase() {}
+ virtual ~Junk( void ) {}
+protected:
+ inline JunkBase * AsBase( void )
+ { return dynamic_cast< JunkBase * >( this ); }
+ virtual void DoSomething( void ) { }
+};
+
+
+
+
diff --git a/gcc/testsuite/g++.dg/rtti/typeid2.C b/gcc/testsuite/g++.dg/rtti/typeid2.C
new file mode 100644
index 00000000000..0dbcc598b9d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/rtti/typeid2.C
@@ -0,0 +1,15 @@
+// { dg-do run }
+
+#include <typeinfo>
+
+template <typename T> const char *print_type (const T &) {
+ return typeid(T).name();
+}
+
+/* no template */ void pp1 (int) {}
+template <typename X> void pp2 (X) {}
+
+int main () {
+ if (print_type (&pp1) != print_type (&pp2<int>))
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/rtti/typeid3.C b/gcc/testsuite/g++.dg/rtti/typeid3.C
new file mode 100644
index 00000000000..b36563ad65a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/rtti/typeid3.C
@@ -0,0 +1,11 @@
+#include <typeinfo>
+
+template <template <class> class T> struct A {
+ void error() {
+ typeid(T).name(); // { dg-error "" }
+ }
+};
+
+template <class T> struct B {};
+
+template void A<B>::error(); // { dg-error "instantiated" }
diff --git a/gcc/testsuite/g++.dg/rtti/typeid4.C b/gcc/testsuite/g++.dg/rtti/typeid4.C
new file mode 100644
index 00000000000..e6a1dce16f0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/rtti/typeid4.C
@@ -0,0 +1,26 @@
+// { dg-do run }
+// { dg-options "-O2" }
+
+#include <typeinfo>
+#include <iostream>
+
+struct A { virtual ~A () {} };
+
+struct APtr
+{
+ APtr (A* p) : p_ (p) { }
+ A& operator* () const { return *p_; }
+ A* p_;
+};
+
+int main ()
+{
+ APtr ap (new A);
+ std::type_info const* const exp = &typeid (*ap);
+ for (bool cont = true; cont; cont = false)
+ {
+ std::cout << "inner: cont " << cont << std::endl;
+ if (exp) ;
+ }
+}
+
diff --git a/gcc/testsuite/g++.dg/template/access10.C b/gcc/testsuite/g++.dg/template/access10.C
new file mode 100644
index 00000000000..8b4883c254b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access10.C
@@ -0,0 +1,16 @@
+// { dg-do compile }
+
+// Origin: Giovanni Bajo <giovannibajo@libero.it>
+
+// PR c++/10849: Incorrect access checking on template specialization.
+
+class X {
+ private:
+ template <typename T> struct Y;
+};
+
+template <> struct X::Y<int> {};
+
+template <typename T> struct X::Y {};
+
+template struct X::Y<int>;
diff --git a/gcc/testsuite/g++.dg/template/access12.C b/gcc/testsuite/g++.dg/template/access12.C
new file mode 100644
index 00000000000..9185d51253e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access12.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+
+// Origin: Giovanni Bajo <giovannibajo@libero.it>
+
+// PR c++/10849: Incorrect access checking on class template partial
+// specialization.
+
+class X {
+ private:
+ template <typename T> struct Y;
+};
+
+template <typename T> struct X::Y<T*> {};
diff --git a/gcc/testsuite/g++.dg/template/access13.C b/gcc/testsuite/g++.dg/template/access13.C
new file mode 100644
index 00000000000..3a1442bb0e2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access13.C
@@ -0,0 +1,16 @@
+// { dg-do compile }
+
+// Origin: Francesco Monica <fmonica@ce.unipr.it>
+
+// PR c++/13262: Access checking during instantiation of static data
+// member.
+
+template <typename T> class Aclass {
+ private:
+ Aclass() {}
+ static Aclass instance;
+};
+
+template <typename T> Aclass<T> Aclass<T>::instance;
+
+template class Aclass<int>;
diff --git a/gcc/testsuite/g++.dg/template/access7.C b/gcc/testsuite/g++.dg/template/access7.C
new file mode 100644
index 00000000000..92d4c68db39
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access7.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+// PR c++/3663
+// Enforce access of nested type.
+
+template <typename A>
+class S {
+ class T {}; // { dg-error "private" }
+};
+
+template <typename A>
+typename A::T* f (A) { // { dg-error "this context" }
+ return 0;
+}
+
+void g () {
+ f (S<int> ()); // { dg-error "context|instantiated" }
+}
diff --git a/gcc/testsuite/g++.dg/template/alignof1.C b/gcc/testsuite/g++.dg/template/alignof1.C
new file mode 100644
index 00000000000..50a32183cfc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/alignof1.C
@@ -0,0 +1,13 @@
+template<typename T>
+int my_alignof()
+{
+ return __alignof__(T);
+}
+
+template<typename>
+struct X { };
+
+int main()
+{
+ return my_alignof<X<void> >();
+}
diff --git a/gcc/testsuite/g++.dg/template/anon1.C b/gcc/testsuite/g++.dg/template/anon1.C
new file mode 100644
index 00000000000..ef73df6b39e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/anon1.C
@@ -0,0 +1,21 @@
+struct x {
+ int foo () {}
+};
+
+template <class T>
+struct vector {
+ T& bar () {}
+};
+
+template <class T>
+struct y {
+ typedef struct {
+ x t;
+ } s;
+
+ vector<s> array;
+
+ int foo ()
+ { return array.bar().t.foo(); }
+};
+int i = y<x>().foo ();
diff --git a/gcc/testsuite/g++.dg/template/conv5.C b/gcc/testsuite/g++.dg/template/conv5.C
new file mode 100644
index 00000000000..80835437a98
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/conv5.C
@@ -0,0 +1,22 @@
+// { dg-do compile }
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 26 Dec 2002 <nathan@codesourcery.com>
+
+// PR 764. Failed to find friend in overload resolution
+
+template <class T>
+struct S
+{
+ friend bool operator== (const S&, const S&) {
+ return true;
+ }
+};
+
+int main ()
+{
+ // S<int> s;
+
+ const S<int> *p = 0;
+ *p == *p; // error
+}
diff --git a/gcc/testsuite/g++.dg/template/conv6.C b/gcc/testsuite/g++.dg/template/conv6.C
new file mode 100644
index 00000000000..2a4a29952d5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/conv6.C
@@ -0,0 +1,24 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 21 Mar 2003 <nathan@codesourcery.com>
+
+// PR 9898, DR 322. Conversion to reference type.
+
+template <typename> struct Ref {};
+template <typename> struct Val {};
+
+struct Wrapper
+{
+ template <typename U> operator Ref<U> & ();
+ template <typename U> operator Val<U> ();
+};
+
+void Foo (Wrapper l)
+{
+ static_cast <Ref<int> &> (l);
+ static_cast <Ref<int> const &> (l);
+ static_cast <Ref<int> > (l);
+ static_cast <Val<int> const &> (l);
+ static_cast <Val<int> > (l);
+}
diff --git a/gcc/testsuite/g++.dg/template/conv7.C b/gcc/testsuite/g++.dg/template/conv7.C
new file mode 100644
index 00000000000..86758b3623d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/conv7.C
@@ -0,0 +1,12 @@
+// { dg-options "-fabi-version=0" }
+
+template <typename T> struct S {
+ struct I{};
+ operator I* ();
+};
+
+template <typename T> struct S2 : S<T> {
+ operator typename S<T>::I* ();
+};
+
+template struct S2<int>;
diff --git a/gcc/testsuite/g++.dg/template/conv8.C b/gcc/testsuite/g++.dg/template/conv8.C
new file mode 100644
index 00000000000..96f3b986516
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/conv8.C
@@ -0,0 +1,12 @@
+// { dg-options "-fabi-version=1" }
+
+template <typename T> struct S {
+ struct I{};
+ operator I* ();
+};
+
+template <typename T> struct S2 : S<T> {
+ operator typename S<T>::I* ();
+};
+
+template struct S2<int>;
diff --git a/gcc/testsuite/g++.dg/template/crash11.C b/gcc/testsuite/g++.dg/template/crash11.C
new file mode 100644
index 00000000000..3c69514e243
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash11.C
@@ -0,0 +1,9 @@
+// { dg-do compile }
+
+// Origin: kparz@iastate.edu
+
+// PR c++/7939: ICE for invalid function parameter after template
+// substitution.
+
+template <class T, class U> void foo(T, U) {}
+template <class T> void foo<T,void>(T, void) {} // { dg-error "incomplete|invalid|partial" }
diff --git a/gcc/testsuite/g++.dg/template/crash8.C b/gcc/testsuite/g++.dg/template/crash8.C
new file mode 100644
index 00000000000..a6f26b30679
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash8.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+
+// Origin: David Robinson <drtr@dial.pipex.com>
+
+// PR c++/11513: ICE due to incorrect decision whether the tag is template.
+
+template <typename T>
+struct bar
+{
+ struct foo
+ {
+ int a;
+ };
+
+ template <typename U>
+ int wom(U c)
+ {
+ struct foo b;
+ }
+};
diff --git a/gcc/testsuite/g++.dg/template/crash9.C b/gcc/testsuite/g++.dg/template/crash9.C
new file mode 100644
index 00000000000..7a568fe054a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash9.C
@@ -0,0 +1,12 @@
+struct A { };
+struct B { };
+
+A f(const B & b) {
+ return A();
+}
+
+template<>
+B f(const A & a) { // { dg-error "" }
+ return B();
+}
+
diff --git a/gcc/testsuite/g++.dg/template/defarg2.C b/gcc/testsuite/g++.dg/template/defarg2.C
new file mode 100644
index 00000000000..3670389c5d0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/defarg2.C
@@ -0,0 +1,10 @@
+struct X {
+ X ();
+};
+
+template <int> struct O {
+ struct I {
+ I (const X & = X());
+ };
+};
+template struct O<2>;
diff --git a/gcc/testsuite/g++.dg/template/defarg4.C b/gcc/testsuite/g++.dg/template/defarg4.C
new file mode 100644
index 00000000000..293538adbd1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/defarg4.C
@@ -0,0 +1,14 @@
+// PR c++/14763
+
+struct A {
+ int get() const {}
+ static A *foo();
+};
+
+template<bool> struct S {
+ S(unsigned int = A::foo()->get()) ;
+};
+
+void foo() throw() {
+ S<false> f;
+}
diff --git a/gcc/testsuite/g++.dg/template/explicit1.C b/gcc/testsuite/g++.dg/template/explicit1.C
new file mode 100644
index 00000000000..64f581e58df
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/explicit1.C
@@ -0,0 +1,17 @@
+// { dg-do link }
+// { dg-options "-fno-implicit-templates" }
+
+template <class T> struct C {
+ ~C();
+};
+template <class T> C<T>::~C() {}
+
+struct X {
+ C<X> *p;
+ ~X() { delete p; }
+};
+
+template class C<X>;
+C<X> x;
+
+int main () {}
diff --git a/gcc/testsuite/g++.dg/template/friend10.C b/gcc/testsuite/g++.dg/template/friend10.C
new file mode 100644
index 00000000000..cab5e346f0b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend10.C
@@ -0,0 +1,45 @@
+// { dg-do run }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 24 Dec 2002 <nathan@codesourcery.com>
+
+// PR 5116. template instantiation can add a friend into a namespace,
+// and thus change overload resolution.
+
+#include <iostream>
+
+static int right;
+static int wrong;
+
+struct Buggy {};
+
+template <typename T>struct Handle
+{
+ Handle(T* p) {}
+
+ operator bool() const { wrong++; return true; }
+
+ friend std::ostream& operator<<(std::ostream& ostr, const Handle& r)
+ {
+ right++;
+
+ return ostr << "in operator<<(ostream&, const Handle&)";
+ }
+};
+
+typedef Handle<Buggy> Buggy_h;
+
+bool cmp (const Buggy_h& b1, const Buggy_h& b2)
+{
+ std::cout << b1 << " " << b2 << std::endl;
+ return false;
+}
+
+int main()
+{
+ Buggy o;
+
+ cmp (&o, &o);
+
+ return !(right == 2 && !wrong);
+}
diff --git a/gcc/testsuite/g++.dg/template/friend12.C b/gcc/testsuite/g++.dg/template/friend12.C
new file mode 100644
index 00000000000..0cd561b5a2a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend12.C
@@ -0,0 +1,24 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR 9030. Perform access checking to parameter and return type of
+// function template correctly when the template is friend.
+
+template <class T> class Outer {
+ private:
+ struct Inner {};
+
+ template <class T_>
+ friend typename Outer<T_>::Inner foo ();
+};
+
+template <class T>
+typename Outer<T>::Inner
+foo () {
+ return typename Outer<T>::Inner();
+}
+
+void f() {
+ foo<int>();
+}
diff --git a/gcc/testsuite/g++.dg/template/friend13.C b/gcc/testsuite/g++.dg/template/friend13.C
new file mode 100644
index 00000000000..6eebf6b951f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend13.C
@@ -0,0 +1,21 @@
+// { dg-do compile }
+
+// Perform access checking to parameter and return type of
+// function template correctly when only specialization is friend.
+
+template <class T>
+typename T::Inner
+foo () {
+ return typename T::Inner();
+}
+
+class Outer {
+ private:
+ struct Inner {};
+
+ friend Outer::Inner foo<Outer> ();
+};
+
+void f() {
+ foo<Outer>();
+}
diff --git a/gcc/testsuite/g++.dg/template/friend14.C b/gcc/testsuite/g++.dg/template/friend14.C
new file mode 100644
index 00000000000..6e07b98932a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend14.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// Perform access checking to parameter and return type of
+// function template correctly when the template is friend.
+
+template <class T> class O {
+ struct I { I (int); };
+
+ template <class T_>
+ friend typename O<T_>::I f ();
+};
+
+template <class T_>
+typename O<T_>::I f () { return 1; }
+
+struct X {
+ void g() { f<int>(); }
+};
diff --git a/gcc/testsuite/g++.dg/template/friend15.C b/gcc/testsuite/g++.dg/template/friend15.C
new file mode 100644
index 00000000000..4acbf2d1a56
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend15.C
@@ -0,0 +1,19 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/9453
+// Access checking when template friend is defined in class.
+
+template <typename> class X {
+ private:
+ struct Inner;
+
+ template <typename R>
+ friend typename X<R>::Inner * foo () { return 0; }
+};
+template class X<void>;
+
+struct U {
+ void bar () { foo<void> (); }
+};
diff --git a/gcc/testsuite/g++.dg/template/friend16.C b/gcc/testsuite/g++.dg/template/friend16.C
new file mode 100644
index 00000000000..3165ed2b59d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend16.C
@@ -0,0 +1,16 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/9602: Inline friend/pure virtual tree data sharing in
+// class template.
+
+template <typename T> struct X {
+ void foo (X);
+ friend void bar () {}
+};
+
+template <typename T>
+void X<T>::foo (X x) {}
+
+template struct X<int>;
diff --git a/gcc/testsuite/g++.dg/template/friend17.C b/gcc/testsuite/g++.dg/template/friend17.C
new file mode 100644
index 00000000000..50d60244150
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend17.C
@@ -0,0 +1,12 @@
+template <class T>
+struct X {
+ template <class U> void operator+=(U);
+
+ template <class V>
+ template <class U>
+ friend void X<V>::operator+=(U);
+};
+
+int main() {
+ X<int>() += 1.0;
+}
diff --git a/gcc/testsuite/g++.dg/template/friend18.C b/gcc/testsuite/g++.dg/template/friend18.C
new file mode 100644
index 00000000000..04ba26e9830
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend18.C
@@ -0,0 +1,19 @@
+// { dg-do run }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 26 Mar 2003 <nathan@codesourcery.com>
+
+// PR 10158. implicit inline template friends ICE'd
+
+template <int N> struct X
+{
+ template <int M> friend int foo(X const &)
+ {
+ return N * 10000 + M;
+ }
+};
+X<1234> bring;
+
+int main() {
+ return foo<5678> (bring) != 12345678;
+}
diff --git a/gcc/testsuite/g++.dg/template/friend20.C b/gcc/testsuite/g++.dg/template/friend20.C
new file mode 100644
index 00000000000..496d52f5e7f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend20.C
@@ -0,0 +1,15 @@
+template <class T>
+struct A
+{
+ friend void bar(A<T> a) {}
+};
+
+void bar(A<int>);
+
+int main()
+{
+ A<int> a;
+
+ bar(a);
+}
+
diff --git a/gcc/testsuite/g++.dg/template/friend25.C b/gcc/testsuite/g++.dg/template/friend25.C
new file mode 100644
index 00000000000..fa11defc21a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend25.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+
+// Origin: Jiangbin Zhao <zhaojiangbin@yahoo.com>
+
+// PR c++/12369: ICE for specialization of member function template
+// as friend in ordinary class.
+
+struct A {
+ template<class T> T* make() { return new T(); }
+};
+
+struct B {
+ friend B* A::make< B >(); // (1)
+};
diff --git a/gcc/testsuite/g++.dg/template/friend9.C b/gcc/testsuite/g++.dg/template/friend9.C
new file mode 100644
index 00000000000..4464e5f8ee8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend9.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/8099
+// Partial specialization as friend class
+
+template <int N, typename T> struct X;
+template <typename T> struct X<1,T>;
+
+template <typename P> class Y {
+ static int i;
+ template <int N, typename T> friend struct X;
+ friend struct X<1,P>;
+};
+
+template <typename T> struct X<1,T> {
+ X () { Y<T>::i; }; // access private field
+};
diff --git a/gcc/testsuite/g++.dg/template/func1.C b/gcc/testsuite/g++.dg/template/func1.C
new file mode 100644
index 00000000000..0d1677060c3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/func1.C
@@ -0,0 +1,13 @@
+template <typename T1,typename T2>
+inline void f(const T1&,const T2&) { }
+
+template <typename T1,typename T2,void F(const T1&,const T2&)>
+struct A {
+ template <typename T> void g(T& i) { }
+};
+
+int main() {
+ int i;
+ A<int,int,f> a;
+ a.g(i);
+}
diff --git a/gcc/testsuite/g++.dg/template/inline1.C b/gcc/testsuite/g++.dg/template/inline1.C
new file mode 100644
index 00000000000..c5e39bb2738
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/inline1.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+// { dg-options "-fno-default-inline -O0" }
+// { dg-final { scan-assembler-not _ZN1X3FooIiEEvT_: } }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 27 Mar 2003 <nathan@codesourcery.com>
+
+// PR 10047. bogus warning.
+
+struct X
+{
+ template <typename T> static void Foo (T) {}
+};
+
+extern template void X::Foo<int> (int); // extern, so don't emit it
+
+int main () {
+ X::Foo (1); // ok, we've seen the defn
+}
+
diff --git a/gcc/testsuite/g++.dg/template/instantiate4.C b/gcc/testsuite/g++.dg/template/instantiate4.C
new file mode 100644
index 00000000000..732b8529de2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/instantiate4.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/10682: Typedef to enum template instantiation logic.
+
+template <typename T>
+struct Foo {
+ enum E {a,b,c};
+ typedef E EE;
+};
+
+void Baz(Foo<int>::EE x);
diff --git a/gcc/testsuite/g++.dg/template/instantiate6.C b/gcc/testsuite/g++.dg/template/instantiate6.C
new file mode 100644
index 00000000000..895e6d8e505
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/instantiate6.C
@@ -0,0 +1,15 @@
+// { dg-do compile }
+
+// Origin: gianni@mariani.ws
+// Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/13289: ICE recursively instantiate static member data.
+
+template <int N> struct S {
+ static const int C;
+};
+
+template <int N>
+const int S<N>::C = S<(N+1)%2>::C;
+
+template struct S<1>;
diff --git a/gcc/testsuite/g++.dg/template/local3.C b/gcc/testsuite/g++.dg/template/local3.C
new file mode 100644
index 00000000000..4d6a5763b48
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/local3.C
@@ -0,0 +1,14 @@
+ template<class T>
+ void f(const T&)
+ {
+ struct B {
+
+ void g (T);
+ };
+ B b;
+ };
+ void g()
+ {
+ f(42);
+ }
+
diff --git a/gcc/testsuite/g++.dg/template/lookup1.C b/gcc/testsuite/g++.dg/template/lookup1.C
new file mode 100644
index 00000000000..0df77bac1c3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/lookup1.C
@@ -0,0 +1,17 @@
+template <class T0>
+class A {
+public:
+ class B;
+};
+
+template <class T0>
+class A<T0>::B {
+public:
+ class C;
+};
+
+template <class T0>
+class A<T0>::B::C {
+public:
+ A<T0> &a;
+};
diff --git a/gcc/testsuite/g++.dg/template/member.C b/gcc/testsuite/g++.dg/template/member.C
index f6f264e1926..69228334ff6 100644
--- a/gcc/testsuite/g++.dg/template/member.C
+++ b/gcc/testsuite/g++.dg/template/member.C
@@ -1,28 +1,28 @@
-// { dg-do compile }
-
-
-class BIXSet{
-int z[4];
-public:
-void f(BIXSet &other){
-z[0]=other.z[0];
-}
-
-};
-
-class TestCase2{
-public:
-BIXSet a,b;
-
-public:
-void run(void){
-BIXSet x,y;
-process(0,x,y);
-}
-
-protected:
-template<class BS> void process(const int d,BS &en,BS &lb){
-a.f(en);b.f(lb);
-}
-
-};
+// { dg-do compile }
+
+
+class BIXSet{
+int z[4];
+public:
+void f(BIXSet &other){
+z[0]=other.z[0];
+}
+
+};
+
+class TestCase2{
+public:
+BIXSet a,b;
+
+public:
+void run(void){
+BIXSet x,y;
+process(0,x,y);
+}
+
+protected:
+template<class BS> void process(const int d,BS &en,BS &lb){
+a.f(en);b.f(lb);
+}
+
+};
diff --git a/gcc/testsuite/g++.dg/template/member3.C b/gcc/testsuite/g++.dg/template/member3.C
new file mode 100644
index 00000000000..4f87e57bcb3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/member3.C
@@ -0,0 +1,19 @@
+template<typename T>
+struct A {
+ template<typename L> struct SubA { };
+
+ template<typename T1,typename L> void f(T1 & t1, SubA<L> & t2) { }
+ template<typename U> void g(SubA<U> & suba) { }
+ template<typename U> void h(SubA<U> & suba) { }
+};
+
+int main(void) {
+ int i;
+ A<int> a;
+ A<int>::SubA<int> suba;
+
+ a.f(i,suba);
+ a.g(suba);
+ a.h(suba);
+}
+
diff --git a/gcc/testsuite/g++.dg/template/memclass1.C b/gcc/testsuite/g++.dg/template/memclass1.C
new file mode 100644
index 00000000000..65921b31337
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/memclass1.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+// Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+// PR c++/10555: ICE for member class template when one of the
+// template argument levels contains errors.
+
+template <typename> struct A
+{
+ template <typename> struct B;
+};
+
+template <typename T> struct C
+{
+ typedef typename A<T>::template B<U> X; // { dg-error "mismatch|expected" }
+};
+
+C<void> c; // { dg-error "instantiated" }
diff --git a/gcc/testsuite/g++.dg/template/nested2.C b/gcc/testsuite/g++.dg/template/nested2.C
new file mode 100644
index 00000000000..be4f95f716d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/nested2.C
@@ -0,0 +1,9 @@
+template <class T> class CO {
+ class CI1 {
+ class CI2;
+ };
+};
+
+template <class T>
+class CO<T>::CI1::CI2 {};
+
diff --git a/gcc/testsuite/g++.dg/template/nontype2.C b/gcc/testsuite/g++.dg/template/nontype2.C
new file mode 100644
index 00000000000..6d37c489ef1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/nontype2.C
@@ -0,0 +1,11 @@
+template <bool> struct A {};
+
+template <bool> struct B
+{
+ void foo()
+ {
+ const int i=0;
+ typedef A< i<=1 > C; // { dg-error "" }
+ typedef A< i<=2 > C; // { dg-error "" }
+ }
+};
diff --git a/gcc/testsuite/g++.dg/template/nontype4.C b/gcc/testsuite/g++.dg/template/nontype4.C
new file mode 100644
index 00000000000..43ef2b0ce6b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/nontype4.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+
+// Origin: Ivan Godard <igodard@pacbell.net>
+// Volker Reichelt <reichelt@gcc.gnu.org>
+
+// PR c++/13797: ICE invalid nontype template parameter
+
+template <int> struct A
+{
+ typedef A<0> B; // { dg-error "not a valid type|conflict" }
+ template <B> struct B {}; // { dg-error "not a valid type|declaration" }
+};
+
+A<0> a; // { dg-error "instantiated" }
diff --git a/gcc/testsuite/g++.dg/template/nontype5.C b/gcc/testsuite/g++.dg/template/nontype5.C
new file mode 100644
index 00000000000..e53b6c1a654
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/nontype5.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+
+// Origin: Ivan Godard <igodard@pacbell.net>
+// Volker Reichelt <reichelt@gcc.gnu.org>
+
+// PR c++/13797: ICE invalid nontype template parameter
+
+template <int> struct A
+{
+ typedef A<0> B;
+ template <B> struct C {}; // { dg-error "not a valid type" }
+};
+
+A<0> a; // { dg-error "instantiated" }
diff --git a/gcc/testsuite/g++.dg/template/ntp2.C b/gcc/testsuite/g++.dg/template/ntp2.C
new file mode 100644
index 00000000000..42219e0fcb0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ntp2.C
@@ -0,0 +1,16 @@
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 26 Dec 2002 <nathan@codesourcery.com>
+
+// PR 3784: We were confusing non-type template parms.
+
+template <unsigned N> class X { };
+
+template <short N> void foo1(X<N>);
+template <unsigned N> void foo2(X<N>);
+
+int main() {
+ X<2> x;
+ foo2(x);
+}
diff --git a/gcc/testsuite/g++.dg/template/op1.C b/gcc/testsuite/g++.dg/template/op1.C
new file mode 100644
index 00000000000..7cc9c9e91c2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/op1.C
@@ -0,0 +1,12 @@
+template <class T> struct X {
+ typedef int type;
+};
+
+template <class T> struct O {
+ struct I {
+ operator typename X<T>::type ();
+ };
+};
+
+template <class T>
+O<T>::I::operator typename X<T>::type () {}
diff --git a/gcc/testsuite/g++.dg/template/partial2.C b/gcc/testsuite/g++.dg/template/partial2.C
new file mode 100644
index 00000000000..ebfdce27889
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/partial2.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+
+// Origin: lorgon1@yahoo.com
+
+// PR c++/11154: Multi-level template argument in partial ordering of
+// class template
+
+template <class A> struct Outer {
+ template <class T, class U = void, class V = void> struct Foo {};
+ template <class T, class U> struct Foo<T,U,void> {};
+ template <class T> struct Foo<T,void,void> {};
+};
+
+Outer<int>::Foo<int,void,void> f;
diff --git a/gcc/testsuite/g++.dg/template/ptrmem4.C b/gcc/testsuite/g++.dg/template/ptrmem4.C
new file mode 100644
index 00000000000..5cfd8c7c8d6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ptrmem4.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+
+// Origin: Scott Snyder <snyder@fnal.gov>
+
+// PR c++/8849
+// Pointer to member function template argument deduction ICE.
+
+
+template <class CONT> void queryAliases(CONT& fill_me); // { dg-error "argument" }
+
+struct SpyExample
+{
+ void ready();
+ void inputs();
+};
+
+void SpyExample::ready()
+{
+ queryAliases(inputs); // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/template/ptrmem6.C b/gcc/testsuite/g++.dg/template/ptrmem6.C
new file mode 100644
index 00000000000..1625eb9eb60
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ptrmem6.C
@@ -0,0 +1,43 @@
+// { dg-do compile }
+// Origin: <togawa at acm dot arg>
+// c++/2094: unsupported 'ptrmem_cst' in type unification
+
+struct R
+{
+ int i;
+};
+
+struct S
+{
+ int i;
+ int j;
+};
+
+struct S2 : S
+{};
+
+template<int S::*p, typename>
+struct X
+{
+ X ();
+ template<typename U> X(const X<p,U> &);
+};
+
+X<&S::i,S> x = X<&S::i,S>();
+X<&S::i,S> x2 = X<&S2::i,S>();
+X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" }
+X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" }
+
+template <class T>
+struct Foo
+{
+ void foo(void)
+ {
+ X<&T::i,T> x = X<&T::i,T>();
+ X<&S::i,S> x2 = X<&S2::i,S>();
+ X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" }
+ X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" }
+ }
+};
+
+template struct Foo<S>; // { dg-error "instantiated from" }
diff --git a/gcc/testsuite/g++.dg/template/recurse.C b/gcc/testsuite/g++.dg/template/recurse.C
index 61b94096783..ce4c9268cfe 100644
--- a/gcc/testsuite/g++.dg/template/recurse.C
+++ b/gcc/testsuite/g++.dg/template/recurse.C
@@ -6,7 +6,7 @@ template <int I> struct F
int operator()()
{
F<I+1> f; // { dg-error "" "" }
- return f()*I;
+ return f()*I; // { dg-error "" "" }
}
};
diff --git a/gcc/testsuite/g++.dg/template/scope2.C b/gcc/testsuite/g++.dg/template/scope2.C
new file mode 100644
index 00000000000..79b520cbeab
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/scope2.C
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 15 Aug 2003 <nathan@codesourcery.com>
+
+// checked instantiated bases in wrong scope.
+
+class Helper {};
+
+template<class T> struct X { };
+
+template<class T> class Base
+{
+ protected:
+ typedef Helper H;
+};
+
+template<class T >
+struct Derived : Base<T>
+{
+ typedef Base<T> Parent;
+ typedef typename Parent::H H;
+
+ class Nested : public X<H> {};
+
+ Nested m;
+
+ void Foo ();
+};
+
+void Foo (Derived<char> &x)
+{
+ x.Foo ();
+}
diff --git a/gcc/testsuite/g++.dg/template/sizeof6.C b/gcc/testsuite/g++.dg/template/sizeof6.C
new file mode 100644
index 00000000000..3ef3794b5b7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/sizeof6.C
@@ -0,0 +1,13 @@
+// { dg-do compile }
+// Contributed by Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
+// PR c++/13683: bogus warning about passing non-PODs through ellipsis
+
+struct B {};
+struct NonPOD : B {};
+
+struct A
+{
+ static int check(...);
+ static NonPOD GetNonPOD(void);
+ enum { value = sizeof(A::check(A::GetNonPOD())) };
+};
diff --git a/gcc/testsuite/g++.dg/template/spec10.C b/gcc/testsuite/g++.dg/template/spec10.C
new file mode 100644
index 00000000000..4bf7f46a290
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec10.C
@@ -0,0 +1,27 @@
+// { dg-do run }
+
+// Origin: Lynn Akers <lakers@peachtree.com>
+
+// PR c++/10940: Problem handling parameter list for static member
+// that is a specialization of a member template of a template class.
+
+template<int b>
+class o
+{
+public:
+ template<typename T> static void do_add(T* p, T v);
+};
+
+template<>
+template<typename T>
+inline void o<32>::do_add(T* p, T v)
+{
+ *p += v;
+}
+
+int main()
+{
+ int a = 0x1000;
+ o<32>().do_add<int>(&a, 0x2000);
+ return (a != 0x3000);
+}
diff --git a/gcc/testsuite/g++.dg/template/spec11.C b/gcc/testsuite/g++.dg/template/spec11.C
new file mode 100644
index 00000000000..36d93a94ee1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec11.C
@@ -0,0 +1,20 @@
+// { dg-do compile }
+
+// Origin: jhbrown@bluefinrobotics.com
+
+// PR c++/13635: ICE explicit specialization of member function template
+
+template <class foo>
+class bar {
+public:
+ template <class baz>
+ int func(baz *x);
+};
+
+template <>
+template <class baz>
+int bar<double>::func(baz *x) { return 5;}
+
+template <>
+template <>
+int bar<double>::func(int *x) { return 5;}
diff --git a/gcc/testsuite/g++.dg/template/spec12.C b/gcc/testsuite/g++.dg/template/spec12.C
new file mode 100644
index 00000000000..7cf2e2f0aa2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec12.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+// Contributed by: Wolfgang Bangerth <bangerth at dealii dot org>
+// PR c++/14409: Accepts invalid function signature for explicit instantiation
+
+struct X
+{
+ template <typename U>
+ void foo (U) {}
+
+ template <typename U>
+ void foo_const (U) const {}
+};
+
+template void X::foo (int);
+template void X::foo_const (int) const;
+
+template void X::foo (int) const; // { dg-error "" }
+template void X::foo_const (int); // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/template/spec7.C b/gcc/testsuite/g++.dg/template/spec7.C
new file mode 100644
index 00000000000..18d3c90c45e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec7.C
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// PR c++/6440: Specialization of member class template.
+
+template<class T> struct A
+{
+ template<class U> struct B {};
+};
+
+template<> template<class U>
+struct A<int>::B
+{
+ void f();
+ template <class V> void g(V);
+};
+
+template<> template<> template <class V> void A<int>::B<char>::g(V)
+{
+}
+
+A<int>::B<char> b;
+
+int h()
+{
+ b.f();
+ b.g(0);
+}
diff --git a/gcc/testsuite/g++.dg/template/spec8.C b/gcc/testsuite/g++.dg/template/spec8.C
new file mode 100644
index 00000000000..26d207b8131
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec8.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+
+// Specialization of member class template.
+
+template<class T1> struct A
+{
+ template<class T2> struct B {};
+};
+
+template <> template <> struct A<int>::B<int> {};
+template <> template <class U> struct A<int>::B {}; // { dg-error "specialization" }
diff --git a/gcc/testsuite/g++.dg/template/spec9.C b/gcc/testsuite/g++.dg/template/spec9.C
new file mode 100644
index 00000000000..013fa0d9920
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/spec9.C
@@ -0,0 +1,21 @@
+// { dg-do compile }
+
+// Origin: Lynn Akers <lakers@peachtree.com>
+// Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/10956: Incorrect template substitution for member template
+// specialization inside template class.
+
+template <int> struct C {
+ template<typename T> void pre_add(T);
+};
+
+template<>
+template<typename T>
+void C<32>::pre_add(T) {
+ T pre;
+}
+
+int main() {
+ C<32>().pre_add<int>(1);
+}
diff --git a/gcc/testsuite/g++.dg/template/static3.C b/gcc/testsuite/g++.dg/template/static3.C
new file mode 100644
index 00000000000..65cf2c9e7b2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/static3.C
@@ -0,0 +1,25 @@
+template <class data> class foo
+{
+ public:
+ static const int a;
+ static const int b;
+ static const int c;
+ static const int d;
+};
+
+template <class data> const int foo<data>::a = 1;
+template <class data> const int foo<data>::b = a;
+template <class data> const int foo<data>::c = b;
+template <class data> const int foo<data>::d = c;
+
+typedef foo<int> fooInt;
+
+int main( void )
+{
+ fooInt *f;
+
+ f = new fooInt();
+
+ if (f->c != 1 || f->d != 1)
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/template/static4.C b/gcc/testsuite/g++.dg/template/static4.C
new file mode 100644
index 00000000000..c5486326cdd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/static4.C
@@ -0,0 +1,7 @@
+template <class R>
+struct A {
+ static int _test; // { dg-error "" }
+ static int _test; // { dg-error "" }
+};
+template <class R> int A<R>::_test = 0;
+struct B : public A <int> { };
diff --git a/gcc/testsuite/g++.dg/template/ttp10.C b/gcc/testsuite/g++.dg/template/ttp10.C
new file mode 100644
index 00000000000..09bdb1a8467
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ttp10.C
@@ -0,0 +1,21 @@
+// { dg-do compile }
+
+// Origin: Ivan Godard <igodard@pacbell.net>
+// Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/16175: Missing cv qualifier in error message output
+
+template <typename> struct Template {};
+
+template<template<typename> class D>
+struct B {
+ static void foo1(const D<void> *); // { dg-error "const" }
+ static void foo2(volatile D<void> *);// { dg-error "volatile" }
+};
+
+class E : protected B<Template> {};
+
+void bar() {
+ E::foo1 (0); // { dg-error "context" }
+ E::foo2 (0); // { dg-error "context" }
+}
diff --git a/gcc/testsuite/g++.dg/template/ttp3.C b/gcc/testsuite/g++.dg/template/ttp3.C
index 05bd44a172e..fe9bd9eb382 100644
--- a/gcc/testsuite/g++.dg/template/ttp3.C
+++ b/gcc/testsuite/g++.dg/template/ttp3.C
@@ -14,7 +14,7 @@ class OUTER {
template <class T>
class List { };
- vector<class List> data; // { dg-error "type/value mismatch|expected a type|ISO C" "" }
+ vector<class List> data; // { dg-error "argument is required|ISO C" "" }
};
template <class T>
diff --git a/gcc/testsuite/g++.dg/template/type2.C b/gcc/testsuite/g++.dg/template/type2.C
new file mode 100644
index 00000000000..509c4820d6b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/type2.C
@@ -0,0 +1,16 @@
+// { dg-do compile }
+// Origin: Juan Carlos Arevalo-Baeza <jcab@JCABs-Rumblings.com>
+
+// PR c++/8442
+// Type template parameter incorrectly treated as template template
+// parameter.
+
+template <typename T> struct A {};
+
+template <typename T> struct B
+{
+ template <typename U> struct C {};
+ template <typename U> A<C<U> > foo(U);
+};
+
+B<void> b;
diff --git a/gcc/testsuite/g++.dg/template/typename3.C b/gcc/testsuite/g++.dg/template/typename3.C
index 1c573baa0df..a9a914286a9 100644
--- a/gcc/testsuite/g++.dg/template/typename3.C
+++ b/gcc/testsuite/g++.dg/template/typename3.C
@@ -3,5 +3,5 @@
template <class A>
struct B {
- typedef A::C::D E; // { dg-error "no type|parse error" }
+ typedef A::C::D E; // { dg-error "no type|(parse|syntax) error" }
};
diff --git a/gcc/testsuite/g++.dg/template/unify4.C b/gcc/testsuite/g++.dg/template/unify4.C
new file mode 100644
index 00000000000..19d9f3a9f03
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/unify4.C
@@ -0,0 +1,18 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 28 Jan 2003 <nathan@codesourcery.com>
+
+// PR 9437. We'd unify 'T *' with 'U C::*', which is obviously broken
+
+struct X
+{
+ template <typename T>
+ operator T* () const { return static_cast<T*> (0); }
+} null;
+
+struct A { int i; };
+
+static void f (int A::* pmi) { }
+
+int main () { f (null); } // { dg-error "cannot convert" "" }
diff --git a/gcc/testsuite/g++.dg/tls/init-2.C b/gcc/testsuite/g++.dg/tls/init-2.C
index 0fff6f6ab1e..4cc31c909ac 100644
--- a/gcc/testsuite/g++.dg/tls/init-2.C
+++ b/gcc/testsuite/g++.dg/tls/init-2.C
@@ -10,4 +10,4 @@ struct S
{
S();
};
-__thread S s; /* { dg-error "non-POD" } */
+__thread S s; /* { dg-error "" } two errors here */
diff --git a/gcc/testsuite/g++.dg/warn/Winline-1.C b/gcc/testsuite/g++.dg/warn/Winline-1.C
new file mode 100644
index 00000000000..2f8b39cfb4d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Winline-1.C
@@ -0,0 +1,10 @@
+// { dg-options "-Winline -O2" }
+
+static inline int foo(int x); // { dg-warning "" }
+
+int main()
+{
+ return(foo(17)); // { dg-warning "" }
+}
+
+inline int foo(int x) { return(x); }
diff --git a/gcc/testsuite/g++.dg/warn/Winline-2.C b/gcc/testsuite/g++.dg/warn/Winline-2.C
new file mode 100644
index 00000000000..646ffad38e4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Winline-2.C
@@ -0,0 +1,11 @@
+// { dg-options "-Winline -O" }
+
+#include <vector>
+
+using namespace std;
+
+int main(void)
+{
+ vector<int> v(10);
+}
+
diff --git a/gcc/testsuite/g++.dg/warn/Winline-4.C b/gcc/testsuite/g++.dg/warn/Winline-4.C
new file mode 100644
index 00000000000..188ab5aa896
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Winline-4.C
@@ -0,0 +1,17 @@
+// { dg-do compile }
+// { dg-options "-O2 -Winline" }
+// Origin: <markus at oberhumer dot com>
+// PR 17115: We should not emit -Winline warning for functions marked with
+// noinline
+
+struct Foo {
+ __attribute__((noinline)) int a(int r) { return r & 1; }
+ virtual __attribute__((noinline)) int b(int r) { return r & 1; }
+ static __attribute__((noinline)) int c(int r) { return r & 1; }
+};
+
+int bar(int r) {
+ Foo f;
+ int k = 1; k &= f.a(r); k &= f.b(r); k &= f.a(r);
+ return k;
+}
diff --git a/gcc/testsuite/g++.dg/warn/Woverloaded-1.C b/gcc/testsuite/g++.dg/warn/Woverloaded-1.C
new file mode 100644
index 00000000000..65a408b47d0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Woverloaded-1.C
@@ -0,0 +1,17 @@
+/* { dg-options "-Woverloaded-virtual" } */
+
+class Base {
+public:
+ virtual ~Base() {
+ }
+};
+
+class Derived: public Base {
+public:
+ int Base() { // There should be no error here.
+ return 5;
+ }
+};
+
+int main() {
+}
diff --git a/gcc/testsuite/g++.dg/warn/Wshadow-2.C b/gcc/testsuite/g++.dg/warn/Wshadow-2.C
new file mode 100644
index 00000000000..a3e9428b684
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wshadow-2.C
@@ -0,0 +1,10 @@
+/* { dg-options "-Wshadow" } */
+
+struct A {
+ void a1 () {
+ struct B { B() {} }; // There should be no warning here.
+ }
+ void a2 () {
+ struct B { };
+ }
+};
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-2.C b/gcc/testsuite/g++.dg/warn/Wunused-2.C
index 9cdd11e84a6..dcad9015e11 100644
--- a/gcc/testsuite/g++.dg/warn/Wunused-2.C
+++ b/gcc/testsuite/g++.dg/warn/Wunused-2.C
@@ -2,5 +2,5 @@
// { dg-options "-Wunused -O3" }
static const int i = 0;
-static void f() { } /* { dg-warning "defined but not used" } */
+static void f() { } /* { dg-warning "defined but not used" "" { xfail *-*-* } } */
static inline void g() { }
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-3.C b/gcc/testsuite/g++.dg/warn/Wunused-3.C
new file mode 100644
index 00000000000..31009094352
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wunused-3.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+// { dg-options "-Wunused -O" }
+
+void do_cleanups();
+
+class Cleanup {
+public:
+ ~Cleanup() { do_cleanups();}
+};
+
+static Cleanup dummy;
diff --git a/gcc/testsuite/g++.dg/warn/compare1.C b/gcc/testsuite/g++.dg/warn/compare1.C
new file mode 100644
index 00000000000..e00592262c6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/compare1.C
@@ -0,0 +1,10 @@
+/* -Wall is supposed to trigger -Wsign-compare for C++. PR 10604.
+ See also gcc.dg/compare7.c. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall" } */
+
+int f(unsigned a, int b)
+{
+ return a < b; /* { dg-warning "signed and unsigned" } */
+}
diff --git a/gcc/testsuite/g++.dg/warn/conv2.C b/gcc/testsuite/g++.dg/warn/conv2.C
new file mode 100644
index 00000000000..e3466002218
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/conv2.C
@@ -0,0 +1,3 @@
+// PR c++/13932
+
+int i = 1.; // { dg-warning "converting" }
diff --git a/gcc/testsuite/g++.dg/warn/conversion-function-1.C b/gcc/testsuite/g++.dg/warn/conversion-function-1.C
new file mode 100644
index 00000000000..878011cf328
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/conversion-function-1.C
@@ -0,0 +1,8 @@
+// Copyright (C) 2003 Free Software Foundation
+// Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
+// { dg-options "-Wno-conversion" }
+
+struct A {
+ operator A&();
+};
+
diff --git a/gcc/testsuite/g++.dg/warn/ctor-init-1.C b/gcc/testsuite/g++.dg/warn/ctor-init-1.C
new file mode 100644
index 00000000000..0796972fcb5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/ctor-init-1.C
@@ -0,0 +1,9 @@
+// PR c++/11554
+// { dg-options "-Wall" }
+
+struct Y {
+ Y ();
+ int i1, i2; // { dg-warning "" }
+};
+
+Y::Y () : i2(0), i1(0) {} // { dg-warning "" }
diff --git a/gcc/testsuite/g++.dg/warn/format3.C b/gcc/testsuite/g++.dg/warn/format3.C
new file mode 100644
index 00000000000..0bdaaee1772
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/format3.C
@@ -0,0 +1,12 @@
+// PR c++/13070
+// { dg-do compile }
+// { dg-options "-Wformat" }
+
+extern "C" int printf (const char*, ...);
+
+int main()
+{
+ printf("%d\n", 1, 1); // { dg-warning "too many" "printf warning" }
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/warn/implicit-typename1.C b/gcc/testsuite/g++.dg/warn/implicit-typename1.C
new file mode 100644
index 00000000000..ab5587ef72e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/implicit-typename1.C
@@ -0,0 +1,17 @@
+// The -pedantic option must be omitted to trigger the crash.
+// { dg-do compile }
+// { dg-options "" }
+
+// PR c++/7982: Crash warning about implicit typename.
+// The base class refers to another typename, while the
+// name lookup finds a template.
+
+template <typename T> struct X {};
+
+template <typename T> struct C {
+ typedef typename T::X X;
+};
+
+template <typename T> struct A : public C<T> {
+ typedef X<int> X; // { dg-warning "lookup|dependent base|typename" }
+};
diff --git a/gcc/testsuite/g++.dg/warn/implicit-typename2.C b/gcc/testsuite/g++.dg/warn/implicit-typename2.C
new file mode 100644
index 00000000000..2bd83cffa17
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/implicit-typename2.C
@@ -0,0 +1,12 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/11039: Implicit typename warning in friend class declaration.
+
+template <typename T> struct X {
+ struct Y {
+ struct Z {};
+ };
+ friend struct Y::Z;
+};
diff --git a/gcc/testsuite/g++.dg/warn/implicit-typename3.C b/gcc/testsuite/g++.dg/warn/implicit-typename3.C
new file mode 100644
index 00000000000..9b1ea8cfc5b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/implicit-typename3.C
@@ -0,0 +1,12 @@
+// { dg-do compile }
+
+// Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+
+// PR c++/11039: Implicit typename warning in friend class declaration.
+
+template <typename T> struct X {
+ struct Y {
+ struct Z {};
+ };
+ template <typename U> friend struct Y::Z f(U);
+};
diff --git a/gcc/testsuite/g++.dg/warn/incomplete1.C b/gcc/testsuite/g++.dg/warn/incomplete1.C
index f4d074aa085..389f8bd539e 100644
--- a/gcc/testsuite/g++.dg/warn/incomplete1.C
+++ b/gcc/testsuite/g++.dg/warn/incomplete1.C
@@ -16,6 +16,6 @@ A *a; // { dg-warning "`a' has incomplete type" "" }
int
main (int argc, char **argv)
{
- delete a; // { dg-warning "delete" "" { xfail *-*-* } }
+ delete a; // { dg-warning "delete" "" }
return 0;
}
diff --git a/gcc/testsuite/g++.dg/warn/inline1.C b/gcc/testsuite/g++.dg/warn/inline1.C
new file mode 100644
index 00000000000..24836e744eb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/inline1.C
@@ -0,0 +1,23 @@
+// { dg-do compile }
+
+// Copyright (C) 2002 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 26 Dec 2002 <nathan@codesourcery.com>
+
+// PR 4803. Used inline functions must have a definition.
+
+inline void Foo1 (); // { dg-warning "inline function" "" }
+inline void Bar1 ();
+template <typename T> inline void Foo2(T); // { dg-warning "inline function" "" }
+template <typename T> inline void Bar2(T);
+
+void Baz ()
+{
+ Foo1 ();
+ Foo2 (1);
+
+ Bar1 ();
+ Bar2 (1);
+}
+
+inline void Bar1 () {}
+template <typename T> inline void Bar2(T) {}
diff --git a/gcc/testsuite/g++.dg/warn/pedantic1.C b/gcc/testsuite/g++.dg/warn/pedantic1.C
new file mode 100644
index 00000000000..2a4d05536c5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/pedantic1.C
@@ -0,0 +1,11 @@
+// PR10032
+// { dg-options "-pedantic" }
+
+int main() {
+ goto label; // { dg-error "" }
+
+ int temp = 1; // { dg-error "" }
+
+ label: // { dg-error "" }
+ return 1;
+}
diff --git a/gcc/testsuite/g++.dg/warn/weak1.C b/gcc/testsuite/g++.dg/warn/weak1.C
index 6b209767b37..dbc0dfff71b 100644
--- a/gcc/testsuite/g++.dg/warn/weak1.C
+++ b/gcc/testsuite/g++.dg/warn/weak1.C
@@ -1,6 +1,6 @@
// { dg-do run }
// { dg-do compile { target *-*-coff i?86-pc-cygwin } }
-// { dg-warning "weak declaration" "COFF format does not support weak" { target *-*-coff i?86-pc-cygwin } 5 }
+// { dg-warning "weak declaration" "COFF format does not support weak" { target *-*-coff i?86-pc-cygwin powerpc-ibm-aix4* rs6000-ibm-aix4* } 5 }
extern void foo (void) __attribute__ ((weak));
diff --git a/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C b/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
index 05c3fcc6e43..f9abaf1b688 100644
--- a/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
+++ b/gcc/testsuite/g++.old-deja/g++.abi/cxa_vec.C
@@ -187,7 +187,7 @@ void test3 ()
{
// we expect to get here (via terminate)
if (ctor_count || dtor_count || blocks != 1)
- longjmp (jump, 3);
+ longjmp (jump, 3);
longjmp (jump, -1);
}
return;
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
index f38154ec507..1e465b62c73 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
@@ -1,6 +1,7 @@
// 981203 bkoz
// g++/16077
-// Build don't link:
+// Build don't link:
+// Special Options: -Wconversion
class nicaragua;
struct colombia {
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
index ccba22e245a..6c2825802f4 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
@@ -4,8 +4,8 @@ typedef long unsigned int size_t;
typedef void (*RF_Ptr)(void *);
struct _im_pers_mem_spec {
- inline _im_pers_mem_spec(void );
- inline _im_pers_mem_spec(auto int of, auto int n);
+ _im_pers_mem_spec(void );
+ _im_pers_mem_spec(auto int of, auto int n);
};
struct _type_desc {
diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C
index 70df42670d6..be7cb08599a 100644
--- a/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C
+++ b/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C
@@ -19,6 +19,8 @@
// 8/3/2000 (nathan): The std allows you to define such an op, but
// it will never be called. [class.conv.fct]. Make it an unconditional warning.
+// Special Options: -Wconversion
+
struct struct0 {
operator void (); // WARNING - operator void
diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C
index 1bde4cb92b8..d9d4edf1f48 100644
--- a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C
+++ b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C
@@ -25,7 +25,7 @@ template<class T> void fnx(T *) throw(T){} // ERROR - invalid use of void expre
void fx()
{
fnx((int *)0);
- fnx((void *)0);
+ fnx((void *)0); // ERROR - instantiated from here
}
// [except.spec] 2, exception specifiers must be the same set of types (but
diff --git a/gcc/testsuite/g++.old-deja/g++.ext/attrib5.C b/gcc/testsuite/g++.old-deja/g++.ext/attrib5.C
index 76fea4639b9..e7e9339b221 100644
--- a/gcc/testsuite/g++.old-deja/g++.ext/attrib5.C
+++ b/gcc/testsuite/g++.old-deja/g++.ext/attrib5.C
@@ -1,5 +1,5 @@
// Test that attributes weak and alias coexist.
-// excess errors test - XFAIL alpha*-dec-osf* *-*-hms i?86-pc-cygwin *-*-coff
+// excess errors test - XFAIL alpha*-dec-osf* *-*-hms i?86-pc-cygwin *-*-coff hppa2*-hp-hpux11*
extern "C" {
void f () __attribute__((weak, alias ("_f")));
diff --git a/gcc/testsuite/g++.old-deja/g++.ext/pretty2.C b/gcc/testsuite/g++.old-deja/g++.ext/pretty2.C
index c0c953a0539..b7e614bb60d 100644
--- a/gcc/testsuite/g++.old-deja/g++.ext/pretty2.C
+++ b/gcc/testsuite/g++.old-deja/g++.ext/pretty2.C
@@ -67,8 +67,6 @@ X::operator int ()
printf ("__FUNCTION__ %s\n", function);
printf ("__PRETTY_FUNCTION__ %s\n", pretty);
- if (strcmp (function, "operator i"))
- bad = true;
if (strcmp (pretty, "X::operator int()"))
bad = true;
return 0;
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access8.C b/gcc/testsuite/g++.old-deja/g++.jason/access8.C
index 40bb4babe4e..91e114a9fcb 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/access8.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/access8.C
@@ -25,6 +25,6 @@ void inh::myf(int i) {
}
void top_t::myf(int i) {
- inh::myf(i); // ERROR - cannot convert to inh XFAIL *-*-*
+ inh::myf(i); // ERROR - cannot convert to inh
mel::myf(i);
}
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C
index 303860b4725..ccf750199aa 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C
@@ -1,4 +1,5 @@
// Build don't link:
+// Special Options: -Wconversion
struct A { };
struct B: public A {
A a;
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth10.C b/gcc/testsuite/g++.old-deja/g++.jason/synth10.C
index d94e6bdebe9..07a372586c0 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/synth10.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/synth10.C
@@ -7,14 +7,14 @@ class A;
class AH
{
public:
- inline AH ( A * p = 0 );
+ AH ( A * p = 0 );
AH ( const AH & from )
: pointer( from.pointer ) { inc(); }
~ AH () { dec(); }
private:
A * pointer;
- inline void inc() const;
- inline void dec() const;
+ void inc() const;
+ void dec() const;
};
class A
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
index d46ba37650c..ca9b3a33f9c 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C
@@ -2,12 +2,12 @@
struct A {
operator int ();
- A& operator= (int); // WARNING - not used below
+ A& operator= (int);
};
main()
{
A a, b;
- a = b; // WARNING - uses synthesized op=
+ a = b;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.martin/pmf1.C b/gcc/testsuite/g++.old-deja/g++.martin/pmf1.C
index 5c6bb5403c5..fed7354df4c 100644
--- a/gcc/testsuite/g++.old-deja/g++.martin/pmf1.C
+++ b/gcc/testsuite/g++.old-deja/g++.martin/pmf1.C
@@ -4,7 +4,7 @@
struct B{};
-struct D:B{
+struct D: public B{
virtual void foo();
};
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh33.C b/gcc/testsuite/g++.old-deja/g++.mike/eh33.C
index d7c509ecd37..0c383501003 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/eh33.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/eh33.C
@@ -1,5 +1,5 @@
// Special g++ Options: -fexceptions
-// excess errors test - XFAIL hppa*-*-* a29k-*-* sparc64-*-elf z8k-*-* arm-*-pe
+// excess errors test - XFAIL a29k-*-* sparc64-*-elf z8k-*-* arm-*-pe
#include <exception>
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh50.C b/gcc/testsuite/g++.old-deja/g++.mike/eh50.C
index 702bbda7eac..4c65fd8e433 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/eh50.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/eh50.C
@@ -1,5 +1,5 @@
// Special g++ Options: -fexceptions
-// excess errors test - XFAIL hppa*-*-* a29k-*-* sparc64-*-elf z8k-*-* arm-*-pe
+// excess errors test - XFAIL a29k-*-* sparc64-*-elf z8k-*-* arm-*-pe
#include <exception>
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err1.C b/gcc/testsuite/g++.old-deja/g++.mike/err1.C
index 8748c7860b1..3f234bb92a4 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/err1.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/err1.C
@@ -2,7 +2,7 @@
struct gorf {
int stuff;
- void snarf();
+ void snarf(); // ERROR -
};
template <class T> void gorf::snarf() { return; } // ERROR -
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net31.C b/gcc/testsuite/g++.old-deja/g++.mike/net31.C
index 3ecf81c7349..05617a8b4ff 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/net31.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net31.C
@@ -13,7 +13,7 @@ class foo_b {
foo_b();
~foo_b();
foo_b(const foo_b&);
- inline double& operator()(int);
+ double& operator()(int);
foo_b& operator=(foo_b&);
void bar_a(int);
};
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8786.C b/gcc/testsuite/g++.old-deja/g++.mike/p8786.C
index b5443c0fa6b..0565fb2558a 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p8786.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p8786.C
@@ -4,7 +4,7 @@
class B {
public:
- inline ~B();
+ ~B();
};
class D : public B {
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt2.C b/gcc/testsuite/g++.old-deja/g++.mike/virt2.C
index 612d07e49e3..29f6a683302 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/virt2.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/virt2.C
@@ -1,10 +1,12 @@
+#include <stdio.h>
+
struct S0 {
- virtual int is_kind_of_S1 () const { return 0; }
+ virtual void is_kind_of_S1 () const { fprintf (stderr, "%p\n", this); }
virtual void dummy () { }
};
struct S1 : virtual public S0 {
- virtual int is_kind_of_S1 () const { return 1; }
+ virtual void is_kind_of_S1 () const { fprintf (stderr, "%p\n", this); }
virtual void dummy () { }
};
@@ -19,7 +21,19 @@ struct S3 : public S2, public S1 {
static struct S0 *var = new S3 ();
int main () {
- if (var->is_kind_of_S1() != 1)
- return 1;
+ void **vp = (void **) var;
+
+ printf ("%d\n", sizeof (S3));
+ printf ("%p\n", vp[0]);
+ printf ("%p\n", vp[1]);
+
+ // vp[1] is the vtable we care about.
+ void **vp2 = (void**) vp[1];
+ printf ("%p\n", vp2[0]);
+ printf ("%p\n", vp2[1]);
+ printf ("%p\n", vp2[2]);
+ printf ("%p\n", vp2[3]);
+
+ var->is_kind_of_S1();
return 0;
}
diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
index c885701b00c..e1ce9d28187 100644
--- a/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
+++ b/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
@@ -1,3 +1,43 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-07-06 Alexandre Oliva <aoliva@redhat.com>
* linkage1.C, linkage1-main.cc: New test.
diff --git a/gcc/testsuite/g++.old-deja/g++.other/builtins10.C b/gcc/testsuite/g++.old-deja/g++.other/builtins10.C
new file mode 100644
index 00000000000..0fa598001d9
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/builtins10.C
@@ -0,0 +1,7 @@
+// Build don't link:
+// Test that built-in functions don't warn when prototyped without arguments.
+// Origin: PR c++/9367
+// Copyright (C) 2003 Free Software Foundation.
+
+extern "C" int snprintf();
+
diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv7.C b/gcc/testsuite/g++.old-deja/g++.other/conv7.C
index 0a7e76dfe3f..fce911019bf 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/conv7.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/conv7.C
@@ -5,6 +5,7 @@
// Bug 2726. We ICE'd trying to say something about possibly confusing
// conversion overload resolution.
+// Special Options: -Wconversion
class foo
{
diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl5.C b/gcc/testsuite/g++.old-deja/g++.other/decl5.C
index 98a7c462d42..6847417e89c 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/decl5.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/decl5.C
@@ -1,6 +1,6 @@
// Build don't link:
-// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 22 Apr 1999 <nathan@acm.org>
// derived from a bug report by <rch@larissa.sd.bi.ruhr-uni-bochum.de>
// http://gcc.gnu.org/ml/gcc-bugs/1999-04n/msg00631.html
@@ -26,7 +26,7 @@ struct B {
struct A::fink { // ERROR - no such member
int m;
};
- struct A::Z { // ERROR XFAIL - A::Z not a member of B
+ struct A::Z { // ERROR - A::Z not a member of B
int m;
};
int m;
@@ -34,14 +34,14 @@ struct B {
struct ::Q { // ERROR XFAIL - ::Q not a member of B
int m;
};
- int A::fn() { // ERROR - A::fn not a member of B
+ int A::fn() { // ERROR XFAIL - A::fn not a member of B
return 0;
}
void fn(struct ::Q &);
- void foo(struct A::y); // ERROR - no such member
+ void foo(struct A::y); // ERROR XFAIL - no such member
};
-struct ::C { // WARNING - extra qualification
+struct ::C { // WARNING XFAIL - extra qualification
int i;
};
@@ -54,19 +54,19 @@ namespace NMS
{
void NMS::fn(); // WARNING - extra qualification XFAIL
int NMS::i; // WARNING - extra qualification XFAIL
- struct NMS::D { // WARNING - extra qualification
+ struct NMS::D { // WARNING - extra qualification XFAIL
int i;
};
- struct N::E { // ERROR - no such type
+ struct N::E { // ERROR - no such type XFAIL
int i;
};
- struct ::F { // ERROR - no such type
+ struct ::F { // ERROR - no such type XFAIL
int i;
};
- int N::fn() { // ERROR - N::fn not a member of NMS
+ int N::fn() { // ERROR - N::fn not a member of NMS XFAIL
return 0;
}
- struct N::F { // ERROR XFAIL - N::F not a member of NMS
+ struct N::F { // ERROR XFAIL - N::F not a member of NMS XFAIL
int i;
};
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup24.C b/gcc/testsuite/g++.old-deja/g++.other/lookup24.C
new file mode 100644
index 00000000000..c8988e278d1
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/lookup24.C
@@ -0,0 +1,25 @@
+// Build don't link:
+//
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Raymond <raymond@magma.magma-da.com>.
+//
+// PR c++/47 The parser failed to resolve 'B' in the return type of
+// A::C::D::foo.
+
+class A {
+public:
+ class B;
+ class C;
+};
+
+class A::B {
+};
+
+class A::C {
+ class D;
+};
+
+class A::C::D {
+public:
+ B* foo();
+};
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
index f8ef3d39e9b..93045e0fa55 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
@@ -2,6 +2,7 @@
// warn about it. We choose op char* not because it is a member of B --
// the standard says that all conversion ops are treated as coming from
// the type of the argument -- but because it is non-const.
+// Special Options: -Wconversion
struct A {
operator const char *() const { return ""; }
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload14.C b/gcc/testsuite/g++.old-deja/g++.other/overload14.C
index 8938ef1d7d4..617980588eb 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overload14.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overload14.C
@@ -1,3 +1,5 @@
+// Special Options: -Wconversion
+
extern "C" void abort();
struct A {
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/deduct5.C b/gcc/testsuite/g++.old-deja/g++.pt/deduct5.C
index d47a7669295..7c3769c88ab 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/deduct5.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/deduct5.C
@@ -7,7 +7,7 @@
template <typename T> int Foo (T const *ptr)
{
- static int count = 0;
+ static int count;
printf ("%s\n", __PRETTY_FUNCTION__);
count++;
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate12.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate12.C
index e1cc8534c8d..ce1efe0c731 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate12.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate12.C
@@ -48,3 +48,13 @@ int main ()
return 9;
return 0;
}
+
+// On platforms that do not have weak symbols, these static data
+// members must be explicitly instantiated. The iflag and jflag data
+// members should not have to be explicitly instantiated because their
+// const-ness should allow the compiler to elide references to the
+// actual variables.
+template const bool X<int>::cflag;
+template const bool X<int>::flag;
+template const bool X<float>::cflag;
+template const bool X<float>::flag;
diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C
deleted file mode 100644
index c27aa8d2df7..00000000000
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb42.C
+++ /dev/null
@@ -1,19 +0,0 @@
-//Build don't link:
-#include <vector>
-#include <algorithm>
-
-template <class T> class Expr
-{
-public :
-Expr(){};
-Expr(const T&){};
-};
-
-template <class T >
-inline bool compare(const Expr<T> a, const Expr<T> b){ return true; };
-
-int main()
-{
- std::vector<int> a(3);
- std::sort( a.begin(), a.end(), compare ); // ERROR - no matching function
-}
diff --git a/gcc/testsuite/g77.dg/12632.f b/gcc/testsuite/g77.dg/12632.f
new file mode 100644
index 00000000000..6801229eace
--- /dev/null
+++ b/gcc/testsuite/g77.dg/12632.f
@@ -0,0 +1,6 @@
+C { dg-do compile }
+C { dg-options "-fbounds-check" }
+ INTEGER I(1)
+ I(2) = 0 ! { dg-error "out of defined range" "out of defined range" }
+ END
+
diff --git a/gcc/testsuite/g77.dg/pr9258.f b/gcc/testsuite/g77.dg/pr9258.f
new file mode 100644
index 00000000000..9961b72b7f6
--- /dev/null
+++ b/gcc/testsuite/g77.dg/pr9258.f
@@ -0,0 +1,18 @@
+C Test case for PR/9258
+C Origin: kmccarty@princeton.edu
+C
+C { dg-do compile }
+ SUBROUTINE FOO (B)
+
+ 10 CALL BAR (A)
+ ASSIGN 20 TO M
+ IF (100.LT.A) GOTO 10
+ GOTO 40
+C
+ 20 IF (B.LT.ABS(A)) GOTO 10
+ ASSIGN 30 TO M
+ GOTO 40
+C
+ 30 ASSIGN 10 TO M
+ 40 GOTO M,(10,20,30)
+ END
diff --git a/gcc/testsuite/g77.f-torture/compile/13060.f b/gcc/testsuite/g77.f-torture/compile/13060.f
new file mode 100644
index 00000000000..200117b0271
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/compile/13060.f
@@ -0,0 +1,13 @@
+ subroutine geo2()
+ implicit none
+
+ integer ms,n,ne(2)
+
+ ne(1) = 1
+ ne(2) = 2
+ ms = 1
+
+ call call_me(ne(1)*ne(1))
+
+ n = ne(ms)
+ end
diff --git a/gcc/testsuite/g77.f-torture/compile/20030326-1.f b/gcc/testsuite/g77.f-torture/compile/20030326-1.f
new file mode 100644
index 00000000000..bcbc73c179b
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/compile/20030326-1.f
@@ -0,0 +1,14 @@
+C PR fortran/9793
+C larson@w6yx.stanford.edu
+C
+ integer a, b, c
+
+ c = -2147483648 / -1
+
+ a = 1
+ b = 0
+ c = a / b
+
+ print *, c
+
+ end
diff --git a/gcc/testsuite/g77.f-torture/execute/10197.f b/gcc/testsuite/g77.f-torture/execute/10197.f
new file mode 100644
index 00000000000..0fa81f67809
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/10197.f
@@ -0,0 +1,15 @@
+ IMPLICIT NONE
+ LOGICAL ERROR
+ CHARACTER*12 FORM
+ DATA ERROR /.FALSE./
+ DATA FORM /' '/
+ OPEN(UNIT=60,ACCESS='DIRECT',STATUS='SCRATCH',RECL=255)
+ INQUIRE(UNIT=60,FORM=FORM)
+ IF (FORM.EQ.'UNFORMATTED') THEN
+ ERROR = .FALSE.
+ ELSE
+ ERROR = .TRUE.
+ ENDIF
+ CLOSE(UNIT=60)
+ IF (ERROR) CALL ABORT
+ END
diff --git a/gcc/testsuite/g77.f-torture/execute/13037.f b/gcc/testsuite/g77.f-torture/execute/13037.f
new file mode 100644
index 00000000000..daafc528754
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/13037.f
@@ -0,0 +1,58 @@
+c PR optimization/13037
+c Contributed by Kirill Smelkov
+c bug symptom: zeta(kkzc) seems to reference to zeta(kkzc-1) instead
+c with gcc-3.2.2 it is OK, so it is a regression.
+c
+ subroutine bug1(expnt)
+ implicit none
+
+ double precision zeta
+ common /bug1_area/zeta(3)
+
+ double precision expnt(3)
+
+
+ integer k, kkzc
+
+ kkzc=0
+ do k=1,3
+ kkzc = kkzc + 1
+ zeta(kkzc) = expnt(k)
+ enddo
+
+c the following line activates the bug
+ call bug1_activator(kkzc)
+ end
+
+
+c dummy subroutine
+ subroutine bug1_activator(inum)
+ implicit none
+ integer inum
+ end
+
+
+c test driver
+ program test_bug1
+ implicit none
+
+ double precision zeta
+ common /bug1_area/zeta(3)
+
+ double precision expnt(3)
+
+ zeta(1) = 0.0d0
+ zeta(2) = 0.0d0
+ zeta(3) = 0.0d0
+
+ expnt(1) = 1.0d0
+ expnt(2) = 2.0d0
+ expnt(3) = 3.0d0
+
+ call bug1(expnt)
+ if ((zeta(1).ne.1) .or. (zeta(2).ne.2) .or. (zeta(3).ne.3)) then
+ call abort
+ endif
+
+ end
+
diff --git a/gcc/testsuite/g77.f-torture/execute/1832.f b/gcc/testsuite/g77.f-torture/execute/1832.f
new file mode 100644
index 00000000000..9ae1ca9fb27
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/1832.f
@@ -0,0 +1,8 @@
+ character*120 file
+ character*5 string
+ file = "c:/dos/adir/bdir/cdir/text.doc"
+ write(string, *) "a ", file
+ if (string .ne. ' a') call abort
+C-- The leading space is normal for list-directed output
+C-- "file" is not printed because it would overflow "string".
+ end
diff --git a/gcc/testsuite/g77.f-torture/execute/select.f b/gcc/testsuite/g77.f-torture/execute/select.f
new file mode 100644
index 00000000000..f1024330a71
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/execute/select.f
@@ -0,0 +1,173 @@
+C integer byte case with integer byte parameters as case(s)
+ subroutine ib
+ integer *1 a /1/
+ integer *1 one,two,three
+ parameter (one=1,two=2,three=3)
+ select case (a)
+ case (one)
+ case (two)
+ call abort
+ case (three)
+ call abort
+ case default
+ call abort
+ end select
+ print*,'normal ib'
+ end
+C integer halfword case with integer halfword parameters
+ subroutine ih
+ integer *2 a /1/
+ integer *2 one,two,three
+ parameter (one=1,two=2,three=3)
+ select case (a)
+ case (one)
+ case (two)
+ call abort
+ case (three)
+ call abort
+ case default
+ call abort
+ end select
+ print*,'normal ih'
+ end
+C integer case with integer parameters
+ subroutine iw
+ integer *4 a /1/
+ integer *4 one,two,three
+ parameter (one=1,two=2,three=3)
+ select case (a)
+ case (one)
+ case (two)
+ call abort
+ case (three)
+ call abort
+ case default
+ call abort
+ end select
+ print*,'normal iw'
+ end
+C integer double case with integer double parameters
+ subroutine id
+ integer *8 a /1/
+ integer *8 one,two,three
+ parameter (one=1,two=2,three=3)
+ select case (a)
+ case (one)
+ case (two)
+ call abort
+ case (three)
+ call abort
+ case default
+ call abort
+ end select
+ print*,'normal id'
+ end
+C integer byte select with integer case
+ subroutine ib_mixed
+ integer*1 s /1/
+ select case (s)
+ case (1)
+ case (2)
+ call abort
+ end select
+ print*,'ib ok'
+ end
+C integer halfword with integer case
+ subroutine ih_mixed
+ integer*2 s /1/
+ select case (s)
+ case (1)
+ case default
+ call abort
+ end select
+ print*,'ih ok'
+ end
+C integer word with integer case
+ subroutine iw_mixed
+ integer s /5/
+ select case (s)
+ case (1)
+ call abort
+ case (2)
+ call abort
+ case (3)
+ call abort
+ case (4)
+ call abort
+ case (5)
+C
+ case (6)
+ call abort
+ case default
+ call abort
+ end select
+ print*,'iw ok'
+ end
+C integer doubleword with integer case
+ subroutine id_mixed
+ integer *8 s /1024/
+ select case (s)
+ case (1)
+ call abort
+ case (1023)
+ call abort
+ case (1025)
+ call abort
+ case (1024)
+C
+ end select
+ print*,'i8 ok'
+ end
+ subroutine l1_mixed
+ logical*1 s /.TRUE./
+ select case (s)
+ case (.TRUE.)
+ case (.FALSE.)
+ call abort
+ end select
+ print*,'l1 ok'
+ end
+ subroutine l2_mixed
+ logical*2 s /.FALSE./
+ select case (s)
+ case (.TRUE.)
+ call abort
+ case (.FALSE.)
+ end select
+ print*,'lh ok'
+ end
+ subroutine l4_mixed
+ logical*4 s /.TRUE./
+ select case (s)
+ case (.FALSE.)
+ call abort
+ case (.TRUE.)
+ end select
+ print*,'lw ok'
+ end
+ subroutine l8_mixed
+ logical*8 s /.TRUE./
+ select case (s)
+ case (.TRUE.)
+ case (.FALSE.)
+ call abort
+ end select
+ print*,'ld ok'
+ end
+C main
+C -- regression cases
+ call ib
+ call ih
+ call iw
+ call id
+C -- new functionality
+ call ib_mixed
+ call ih_mixed
+ call iw_mixed
+ call id_mixed
+ end
+
+
+
+
+
diff --git a/gcc/testsuite/g77.f-torture/noncompile/9263.f b/gcc/testsuite/g77.f-torture/noncompile/9263.f
new file mode 100644
index 00000000000..e68b3e0a65f
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/noncompile/9263.f
@@ -0,0 +1,7 @@
+ PARAMETER (Q=1)
+ PARAMETER (P=10)
+ INTEGER C(10),D(10),E(10),F(10)
+ DATA (C(I),I=1,P) /10*10/ ! TERMINAL NOT INTEGER
+ DATA (D(I),I=Q,10) /10*10/ ! START NOT INTEGER
+ DATA (E(I),I=1,10,Q) /10*10/ ! INCREMENT NOT INTEGER
+ END
diff --git a/gcc/testsuite/g77.f-torture/noncompile/select_no_compile.f b/gcc/testsuite/g77.f-torture/noncompile/select_no_compile.f
new file mode 100644
index 00000000000..f7dad339a81
--- /dev/null
+++ b/gcc/testsuite/g77.f-torture/noncompile/select_no_compile.f
@@ -0,0 +1,10 @@
+ integer*1 one
+ integer*2 two
+ parameter (one=1)
+ parameter (two=2)
+ select case (I)
+ case (one)
+ case (two)
+ end select
+ end
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.x b/gcc/testsuite/gcc.c-torture/compile/20000804-1.x
index d2c3cec91a2..458c8e720e3 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.x
@@ -1,9 +1,8 @@
# This does not work on m68hc11 due to the use of an asm statement
# to force a 'long long' (64-bits) to go in a register.
-global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
- set torture_compile_xfail "$target_triplet"
+ return 1
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001205-1.x b/gcc/testsuite/gcc.c-torture/compile/20001205-1.x
index bde61fd93da..134cdf109fe 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001205-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/20001205-1.x
@@ -1,8 +1,7 @@
# This does not work on m68hc11 due to the asm statement which
# forces two 'long' (32-bits) variables to go in registers.
-global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
- set torture_compile_xfail "$target_triplet"
+ return 1
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.x b/gcc/testsuite/gcc.c-torture/compile/20001226-1.x
index 13616c69f37..6e46f46724e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001226-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.x
@@ -3,7 +3,7 @@
global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
- set torture_compile_xfail "$target_triplet"
+ return 1
}
# It doesn't work on Xtensa with -O0 because the function is larger
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010518-2.x b/gcc/testsuite/gcc.c-torture/compile/20010518-2.x
index 4cfce33b2dc..1bd6f8fd464 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010518-2.x
+++ b/gcc/testsuite/gcc.c-torture/compile/20010518-2.x
@@ -1,2 +1,8 @@
-set options "-S"
+# This test fails on HC11/HC12 when it is compiled without -mshort because
+# the array is too large (INT_MAX/2 > 64K). Force to use 16-bit ints for it.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ set options "-S -mshort"
+} else {
+ set options "-S"
+}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020312-1.x b/gcc/testsuite/gcc.c-torture/compile/20020312-1.x
new file mode 100644
index 00000000000..105f2516474
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20020312-1.x
@@ -0,0 +1,6 @@
+# This does not compile on HC11/HC12 due to the asm which requires
+# two 32-bit registers.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ return 1
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.x b/gcc/testsuite/gcc.c-torture/compile/20020604-1.x
index 4d4a49ef9e0..bced22f0f44 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.x
@@ -3,4 +3,8 @@ if { [istarget "h8300-*-*"] } {
return 1;
}
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ return 1;
+}
+
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021015-1.c b/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
new file mode 100644
index 00000000000..789b8a8b176
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
@@ -0,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 --git a/gcc/testsuite/gcc.c-torture/compile/20021015-2.c b/gcc/testsuite/gcc.c-torture/compile/20021015-2.c
new file mode 100644
index 00000000000..6b158c5bdc8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021015-2.c
@@ -0,0 +1,7 @@
+/* PR target/8232. */
+
+int f (char *p, char *q, int i)
+{
+ return bcmp (p, q, i);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021123-1.c b/gcc/testsuite/gcc.c-torture/compile/20021123-1.c
new file mode 100644
index 00000000000..dd2aa7e09dd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021123-1.c
@@ -0,0 +1,10 @@
+/* PR c/8439 */
+/* Verify that GCC properly handles null increments. */
+
+struct empty {
+};
+
+void foo(struct empty *p)
+{
+ p++;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021123-2.c b/gcc/testsuite/gcc.c-torture/compile/20021123-2.c
new file mode 100644
index 00000000000..423f8ec1964
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021123-2.c
@@ -0,0 +1,9 @@
+/* PR c/8518 */
+/* Contributed by Volker Reichelt. */
+
+/* Verify that GCC doesn't get confused by the
+ redefinition of an extern inline function. */
+
+extern int inline foo () { return 0; }
+extern int inline bar () { return 0; }
+static int inline bar () { return foo(); }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021123-3.c b/gcc/testsuite/gcc.c-torture/compile/20021123-3.c
new file mode 100644
index 00000000000..51f0e257dfd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021123-3.c
@@ -0,0 +1,9 @@
+/* PR c/8518 */
+/* Contributed by Volker Reichelt. */
+
+/* Verify that GCC doesn't get confused by the
+ redefinition of an extern inline function. */
+
+extern int inline foo () { return 0; }
+extern int inline bar () { return 0; }
+static int bar () { return foo(); }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021123-4.c b/gcc/testsuite/gcc.c-torture/compile/20021123-4.c
new file mode 100644
index 00000000000..d4306b89b99
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20021123-4.c
@@ -0,0 +1,11 @@
+/* PR c/8588 */
+/* Contributed by Volker Reichelt. */
+
+/* Verify that GCC converts integer constants
+ in shift operations. */
+
+void foo()
+{
+ unsigned int i, j;
+ j = (i >> 0xf0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030110-1.c b/gcc/testsuite/gcc.c-torture/compile/20030110-1.c
new file mode 100644
index 00000000000..1cbbaea3c10
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030110-1.c
@@ -0,0 +1,39 @@
+extern char bpp;
+
+void foo()
+{
+ if (bpp == 32)
+ {
+ if (2 < 8)
+ {
+ do
+ {
+ while (inb(0x9ae8) & (0x0100 >> (2 +1)));
+ }
+ while(0);
+ }
+ else
+ {
+ do
+ {
+ while (inb(0x9ae8) & (0x0100 >> (2)));
+ }
+ while(0);
+ }
+ }
+ else
+ do
+ {
+ while (inb(0x9ae8) & (0x0100 >> (1)));
+ }
+ while(0);
+ if (8 < 8)
+ {
+ do
+ {
+ while (inb(0x9ae8) & (0x0100 >> (8 +1)));
+ }
+ while(0);
+ }
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030125-1.c b/gcc/testsuite/gcc.c-torture/compile/20030125-1.c
new file mode 100644
index 00000000000..656304e2d67
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030125-1.c
@@ -0,0 +1,24 @@
+ int count;
+
+ int func(int *valp) {
+ int val, locked = 0;
+
+ while ((val = *valp) != 0) {
+ if (count) {
+ if (count)
+ locked = 1;
+ else
+ locked = 1;
+
+ if (!locked)
+ continue;
+ }
+
+ if (!count)
+ count--;
+
+ break;
+ }
+
+ return val;
+ }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030206-1.c b/gcc/testsuite/gcc.c-torture/compile/20030206-1.c
new file mode 100644
index 00000000000..1e0d5445877
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030206-1.c
@@ -0,0 +1,14 @@
+/* PR c/9530 */
+/* Contributed by Volker Reichelt. */
+
+/* Verify that the call to 'foo' is not turned
+ into a sibling call. */
+
+void foo(float d);
+
+float bar(float d);
+
+float baz(float d)
+{
+ foo(bar(d));
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030219-1.c b/gcc/testsuite/gcc.c-torture/compile/20030219-1.c
new file mode 100644
index 00000000000..ecc943f7737
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030219-1.c
@@ -0,0 +1,6 @@
+int global_one;
+
+void clobber_register()
+{
+ *(volatile unsigned char *)(0xE0000000 * global_one) = 0x00;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030305-1.c b/gcc/testsuite/gcc.c-torture/compile/20030305-1.c
new file mode 100644
index 00000000000..2f608196fdd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030305-1.c
@@ -0,0 +1,18 @@
+/* PR c/9799 */
+/* Verify that GCC doesn't crash on excess elements
+ in initializer for a flexible array member. */
+
+typedef struct {
+ int aaa;
+} s1_t;
+
+typedef struct {
+ int bbb;
+ s1_t s1_array[];
+} s2_t;
+
+static s2_t s2_array[]= {
+ { 1, 4 },
+ { 2, 5 },
+ { 3, 6 }
+};
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030314-1.c b/gcc/testsuite/gcc.c-torture/compile/20030314-1.c
new file mode 100644
index 00000000000..02d4fed526a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030314-1.c
@@ -0,0 +1,18 @@
+/* PR optimization/8396 */
+/* Originator: <papadopo@shfj.cea.fr> */
+
+/* Verify that the tree inliner doesn't mess up the types
+ when passing the value of read-only constant arguments. */
+
+static inline bar(const short int xs, const short int xe)
+{
+ if (xe && (xs < xe))
+ ;
+}
+
+void f()
+{
+ short int xe;
+
+ bar(0, xe);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030330-1.c b/gcc/testsuite/gcc.c-torture/compile/20030330-1.c
new file mode 100644
index 00000000000..a5d5de23b7a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030330-1.c
@@ -0,0 +1,7 @@
+/* PR c/10083 */
+/* This will result in a very small constant for umul_highpart, which
+ uncovered a bug in the Alpha machine description. */
+
+unsigned long f(unsigned long x) {
+ return x % 0x3fffffffffffffff;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030405-1.c b/gcc/testsuite/gcc.c-torture/compile/20030405-1.c
new file mode 100644
index 00000000000..2e61f1fa3ff
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030405-1.c
@@ -0,0 +1,58 @@
+/* PR optimization/10024 */
+extern int *allegro_errno;
+typedef long fixed;
+extern inline int
+fixfloor (fixed x)
+{
+ if (x >= 0)
+ return (x >> 16);
+ else
+ return ~((~x) >> 16);
+}
+extern inline int
+fixtoi (fixed x)
+{
+ return fixfloor (x) + ((x & 0x8000) >> 15);
+}
+extern inline fixed
+ftofix (double x)
+{
+ if (x > 32767.0)
+ {
+ *allegro_errno = 34;
+ return 0x7FFFFFFF;
+ }
+ if (x < -32767.0)
+ {
+ *allegro_errno = 34;
+ return -0x7FFFFFFF;
+ }
+ return (long) (x * 65536.0 + (x < 0 ? -0.5 : 0.5));
+}
+extern inline double
+fixtof (fixed x)
+{
+ return (double) x / 65536.0;
+}
+extern inline fixed
+fixdiv (fixed x, fixed y)
+{
+ if (y == 0)
+ {
+ *allegro_errno = 34;
+ return (x < 0) ? -0x7FFFFFFF : 0x7FFFFFFF;
+ }
+ else
+ return ftofix (fixtof (x) / fixtof (y));
+}
+extern inline fixed
+itofix (int x)
+{
+ return x << 16;
+}
+
+int
+foo (int n)
+{
+ return fixtoi (fixdiv (itofix (512), itofix (n)));
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030418-1.c b/gcc/testsuite/gcc.c-torture/compile/20030418-1.c
new file mode 100644
index 00000000000..f6d5a4af51c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030418-1.c
@@ -0,0 +1,16 @@
+/* PR optimization/7675 */
+/* Contributed by Volker Reichelt */
+
+/* Verify that we don't put automatic variables
+ in registers too early. */
+
+extern int dummy (int *);
+
+void foo(int i)
+{
+ int j=i;
+
+ void bar() { int x=j, y=i; }
+
+ dummy(&i);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030604-1.c b/gcc/testsuite/gcc.c-torture/compile/20030604-1.c
new file mode 100644
index 00000000000..7e36bfeb39e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030604-1.c
@@ -0,0 +1,18 @@
+/* PR optimization/10876 */
+/* Contributed by Christian Ehrhardt */
+
+/* Verify that the SPARC port doesn't emit
+ (minus) (reg) (const_int) insns. */
+
+void f(void)
+{
+ unsigned int butterfly, block, offset;
+ double *Z;
+
+ for (block = 0; block < 512; block += 512) {
+ double T1re, T2re;
+ offset = butterfly + block;
+ T1re += T2re;
+ T2re = Z[offset] + T1re;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030625-1.c b/gcc/testsuite/gcc.c-torture/compile/20030625-1.c
new file mode 100644
index 00000000000..e6b0be9af31
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030625-1.c
@@ -0,0 +1 @@
+void foo (const char *s, ...) { bar (&s); }
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030703-1.c b/gcc/testsuite/gcc.c-torture/compile/20030703-1.c
new file mode 100644
index 00000000000..4b45f5e574b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030703-1.c
@@ -0,0 +1,10 @@
+/* Extracted from PR target/10700. */
+/* The following code used to cause an ICE on 64-bit targets. */
+
+int SAD_Block(int *);
+void MBMotionEstimation(int *act_block, int block)
+{
+ SAD_Block(act_block + ( (8 * (block == 1 || block == 3))
+ + (8 * (block == 2 || block == 3))));
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030821-1.c b/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
new file mode 100644
index 00000000000..34700ae181f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030821-1.c
@@ -0,0 +1,24 @@
+/* PR target/11805. */
+
+/* Consider the following sequence.
+
+ (set (cc0)
+ (and:HI (reg:HI 0)
+ (const_int 1)))
+
+ (set (pc)
+ (if_then_else (le (cc0)
+ (const_int 0))
+ (label_ref 17)
+ (pc)))
+
+ On h8300, the first insn does not set the overflow flag, but the
+ second requires the overflow flag. As a result, when the final
+ wants to output the jump insn, it cannot find a test insn that
+ gives appropriate condition flags. */
+
+unsigned char
+foo (unsigned char a)
+{
+ return (a & 1) > 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030907-1.c b/gcc/testsuite/gcc.c-torture/compile/20030907-1.c
new file mode 100644
index 00000000000..e362b910284
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20030907-1.c
@@ -0,0 +1,25 @@
+/* PR 11665
+ Orgin: jwhite@cse.unl.edu
+ The problem was in initializer_constant_valid_p,
+ "for a CONSTRUCTOR, only the last element
+ of the CONSTRUCTOR was being checked"
+ (from the email of the patch which fixed this).
+ This used to ICE because GCC thought gdt_table was a
+ constant value when it is not. */
+
+int x;
+struct gdt
+{
+unsigned a,b,c,d,e,f;
+};
+void f()
+{
+struct gdt gdt_table[2]=
+{
+ {
+ 0,
+ ( (((unsigned)(&x))<<(24))&(-1<<(8)) ),
+ },
+};
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031002-1.c b/gcc/testsuite/gcc.c-torture/compile/20031002-1.c
new file mode 100644
index 00000000000..a023994f402
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031002-1.c
@@ -0,0 +1,9 @@
+/* PR/12292
+ http://gcc.gnu.org/ml/gcc-patches/2003-10/msg00143.html */
+
+char flags;
+
+int bug12292(int t)
+{
+ flags &= ~(1 << (t + 4));
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031011-1.c b/gcc/testsuite/gcc.c-torture/compile/20031011-1.c
new file mode 100644
index 00000000000..e35d76211b6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031011-1.c
@@ -0,0 +1,21 @@
+/* PR optimization/12544 */
+/* Origin: Tony Hosking <hosking@cs.purdue.edu> */
+
+/* Verify that non-local structures passed by invisible
+ reference are correctly put in the stack. */
+
+typedef struct {
+ int a;
+ int f;
+} A;
+
+A *b;
+
+void x (A a) {
+ void y () {
+ a.a = 0;
+ }
+
+ b = &a;
+ y();
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031031-1.c b/gcc/testsuite/gcc.c-torture/compile/20031031-1.c
new file mode 100644
index 00000000000..e641b78a358
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031031-1.c
@@ -0,0 +1,36 @@
+/* PR/11640 */
+
+int
+internal_insn_latency (int insn_code, int insn2_code)
+{
+ switch (insn_code)
+ {
+ case 256:
+ switch (insn2_code)
+ {
+ case 267:
+ return 8;
+ case 266:
+ return 8;
+ case 265:
+ return 8;
+ case 264:
+ return 8;
+ case 263:
+ return 8;
+ }
+ break;
+ case 273:
+ switch (insn2_code)
+ {
+ case 267:
+ return 5;
+ case 266:
+ return 5;
+ case 277:
+ return 3;
+ }
+ break;
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031031-2.c b/gcc/testsuite/gcc.c-torture/compile/20031031-2.c
new file mode 100644
index 00000000000..d69dc75cad8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031031-2.c
@@ -0,0 +1,36 @@
+/* PR/10239 */
+
+enum node_type
+{
+ INITIAL = 0, FREE,
+ PRECOLORED,
+ SIMPLIFY, SIMPLIFY_SPILL, SIMPLIFY_FAT, FREEZE, SPILL,
+ SELECT,
+ SPILLED, COALESCED, COLORED,
+ LAST_NODE_TYPE
+};
+
+inline void
+put_web (enum node_type type)
+{
+ switch (type)
+ {
+ case INITIAL:
+ case FREE:
+ case FREEZE:
+ case SPILL:
+ foo ();
+ break;
+ case PRECOLORED:
+ bar ();
+ break;
+ default:
+ baz ();
+ }
+}
+
+void
+reset_lists ()
+{
+ put_web (INITIAL);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031220-1.c b/gcc/testsuite/gcc.c-torture/compile/20031220-1.c
new file mode 100644
index 00000000000..026a2687fd6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031220-1.c
@@ -0,0 +1,21 @@
+/* PR optimization/13031 */
+/* The following code used to ICE on alphaev67-*-* at -O2 with an
+ unrecognizable instruction, caused by local register allocation
+ substituting a register for a constant in a conditional branch. */
+
+void emit(int, int);
+int f(void);
+static int signals[5];
+
+static inline void select(int sel, void *klass)
+{
+ emit(klass ? 0 : f(), signals[sel ? 0 : 1]);
+}
+
+void all(void *gil, void *l, void *icon)
+{
+ while (l)
+ if (icon)
+ select(0, gil);
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031231-1.c b/gcc/testsuite/gcc.c-torture/compile/20031231-1.c
new file mode 100644
index 00000000000..bbd8e7cb514
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20031231-1.c
@@ -0,0 +1,51 @@
+extern int f1 (int, void *);
+extern int *f2 (void) __attribute__ ((__const__));
+extern int f3 (int, void *);
+
+int
+test (int x, char *y, int z)
+{
+ int b = 0;
+
+ if (x < 1024)
+ {
+ y[0] = '\0';
+
+ do
+ {
+ switch (f1 (x, y + b))
+ {
+ case -1:
+ if (b == 0)
+ return -1;
+ else
+ return b;
+
+ default:
+ b++;
+ }
+ }
+ while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
+ }
+ else
+ {
+ do
+ {
+ switch (f3 (x, y + b))
+ {
+ case -1:
+ if ((*f2 ()) == 4)
+ continue;
+ if (b == 0)
+ return -1;
+ else
+ return b;
+
+ default:
+ b++;
+ }
+ }
+ while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
+ }
+ return b;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040304-1.c b/gcc/testsuite/gcc.c-torture/compile/20040304-1.c
new file mode 100644
index 00000000000..146d42f23d6
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20040304-1.c
@@ -0,0 +1,45 @@
+/* PR optimization/14235 */
+/* Origin: <senor_fjord@yahoo.com> */
+
+typedef signed char int8_t;
+typedef short int16_t;
+typedef int int32_t;
+typedef unsigned long long uint64_t;
+
+static const uint64_t LOW_BYTE_MASK = 0x00000000000000ffULL;
+static const uint64_t HIGH_BYTE_MASK = 0x000000000000ff00ULL;
+static const uint64_t WORD_MASK = 0x000000000000ffffULL;
+static const uint64_t DWORD_MASK = 0x00000000ffffffffULL;
+
+extern uint64_t *srca_mask;
+extern int *assert_thrown;
+
+void foo()
+{
+ uint64_t tempA = 0; /* actually a bunch of code to set A */
+ uint64_t tempB = 0; /* actually a bunch of code to set B */
+
+ /* cast A to right size */
+ tempA = (((*srca_mask == LOW_BYTE_MASK) ||
+ (*srca_mask == HIGH_BYTE_MASK)) ?
+ ((int8_t)tempA) :
+ ((*srca_mask == WORD_MASK) ?
+ ((int16_t)tempA) :
+ ((*srca_mask == DWORD_MASK) ?
+ ((int32_t)tempA) :
+ tempA)));
+
+ /* cast B to right size */
+ tempB = (((*srca_mask == LOW_BYTE_MASK) ||
+ (*srca_mask == HIGH_BYTE_MASK)) ?
+ ((int8_t)tempB) :
+ ((*srca_mask == WORD_MASK) ?
+ ((int16_t)tempB) :
+ ((*srca_mask == DWORD_MASK) ?
+ ((int32_t)tempB) :
+ tempB)));
+
+ if ((int) tempA > (int) tempB) {
+ *assert_thrown = 1;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/920501-12.x b/gcc/testsuite/gcc.c-torture/compile/920501-12.x
new file mode 100644
index 00000000000..61ba34933fb
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/920501-12.x
@@ -0,0 +1,6 @@
+# This test fails on HC11/HC12 when it is compiled without -mshort because
+# the stack arrays are too large. Force to use 16-bit ints for it.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ set options "-mshort"
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/920501-4.x b/gcc/testsuite/gcc.c-torture/compile/920501-4.x
new file mode 100644
index 00000000000..cf60af9be67
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/920501-4.x
@@ -0,0 +1,6 @@
+# This test fails on HC11/HC12 when it is compiled without -mshort because
+# the 'r0' array is too large. Force to use 16-bit ints for it.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ set options "-mshort"
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/920520-1.x b/gcc/testsuite/gcc.c-torture/compile/920520-1.x
index f7a13c87abc..3687bf6145d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920520-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/920520-1.x
@@ -3,8 +3,7 @@ set options "-S"
# This does not work on m68hc11 due to the asm which forces a
# float or a double to go in a register.
-global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
- set torture_compile_xfail "$target_triplet"
+ return 1
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/961203-1.x b/gcc/testsuite/gcc.c-torture/compile/961203-1.x
index e6fd4e41a70..e705ffe167a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/961203-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/961203-1.x
@@ -10,9 +10,8 @@ if { [istarget "h8300-*-*"] } {
# Array 'a' in this test is too large to fit in 64K.
-global target_triplet
if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"]} {
- set torture_compile_xfail "$target_triplet"
+ return 1
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.x b/gcc/testsuite/gcc.c-torture/compile/980506-1.x
index 056ef463835..133ed24d944 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980506-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.x
@@ -7,4 +7,7 @@ if { [istarget "h8300-*-*"] } {
return 1;
}
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ return 1
+}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/981223-1.x b/gcc/testsuite/gcc.c-torture/compile/981223-1.x
index f8d2aa6f938..0c5e8b16bd0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/981223-1.x
+++ b/gcc/testsuite/gcc.c-torture/compile/981223-1.x
@@ -1,20 +1,14 @@
-# The problem on IA-64 is that the assembler emits
+# On IA-64 the assembler may emit
#
# Warning: Additional NOP may be necessary to workaround Itanium
# processor A/B step errata
#
# This can be fixed by adding "-mb-step" to the command line, which
-# does in fact add the extra nop, if someone can tell me how to do
-# that for a c-torture compile test.
+# does in fact add the extra nop.
-set torture_eval_before_compile {
-
- set compiler_conditional_xfail_data {
- "need -mb-step" \
- "ia64-*-*" \
- { "-O2" "-O3" "-Os" } \
- { "" }
+if [istarget "ia64-*-*"] {
+ set torture_eval_before_compile {
+ set option "$option -mb-step"
}
}
-
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr13889.c b/gcc/testsuite/gcc.c-torture/compile/pr13889.c
new file mode 100644
index 00000000000..d14bc9ac542
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr13889.c
@@ -0,0 +1,7 @@
+/* PR target/13889 */
+struct { long long a; } *p;
+void initNetFlowFunct(void) {
+ unsigned int b = (unsigned int)-1;
+ p->a = b;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/simd-5.x b/gcc/testsuite/gcc.c-torture/compile/simd-5.x
index b7612f78787..ada37b18652 100644
--- a/gcc/testsuite/gcc.c-torture/compile/simd-5.x
+++ b/gcc/testsuite/gcc.c-torture/compile/simd-5.x
@@ -1,6 +1,41 @@
# h8300 does not have long long
if { [istarget "h8300-*-*"] } {
- return 1;
+ return 1;
+}
+
+if { [istarget "sparc64-*-*"] || [istarget "sparcv9-*-*"] } {
+ # On SPARC64/SPARC-V9 it fails, except with -m32.
+ set torture_eval_before_compile {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "PR target/9200" \
+ { "*-*-*" } \
+ { "*" } \
+ { "-m32" }
+ }
+ }
+} elseif { [istarget "sparc-*-*"] } {
+ # On regular SPARC it doesn't fail, except with -m64.
+ set torture_eval_before_compile {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "PR target/9200" \
+ { "*-*-*" } \
+ { "-m64" } \
+ { "" }
+ }
+ }
+} elseif { [istarget "powerpc64-*-*"] } {
+ # On PowerPC-64 it fails unconditionally.
+ set torture_eval_before_compile {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "PR target/9680" \
+ "*-*-*" \
+ { "*" } \
+ { "" }
+ }
+ }
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c b/gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c
new file mode 100644
index 00000000000..0f97f7d12b2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/zero-strct-2.c
@@ -0,0 +1,2 @@
+struct { } foo = { };
+void * bar(void) { return &foo; }
diff --git a/gcc/testsuite/gcc.c-torture/execute/20011126-1.c b/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
index 6c54043a458..ede938b0042 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20011126-1.c
@@ -1,19 +1,19 @@
-/* Produced a overflow in ifcvt.c, causing S to contain 0xffffffff7fffffff. */
-
-int a = 1;
-
-int main ()
-{
- long long s;
-
- s = a;
- if (s < 0)
- s = -2147483648LL;
- else
- s = 2147483647LL;
-
- if (s < 0)
- abort ();
-
- return 0;
-}
+/* Produced a overflow in ifcvt.c, causing S to contain 0xffffffff7fffffff. */
+
+int a = 1;
+
+int main ()
+{
+ long long s;
+
+ s = a;
+ if (s < 0)
+ s = -2147483648LL;
+ else
+ s = 2147483647LL;
+
+ if (s < 0)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020227-1.x b/gcc/testsuite/gcc.c-torture/execute/20020227-1.x
index 3c3c4bb9cb5..72adedff865 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020227-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20020227-1.x
@@ -2,20 +2,34 @@
# been observed to fail on at least mips-irix6, alpha, ia64, hppa64,
# sparc64/sparcv9 and mmix during April 2002.
-if { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"] || [istarget "mmix-*-*"]
- || [istarget "sparcv9-*-*"] || [istarget "mips*-*-irix6*"] } {
- set torture_execute_xfail [istarget]
-}
-
-# Regular sparc- also fails with -m64.
-set torture_eval_before_execute {
- global compiler_conditional_xfail_data
- set compiler_conditional_xfail_data {
- "This test fails on 64-bit targets, see PR6221." \
- { "sparc-*-*" } \
- { "-m64" } \
- { "" }
+if { [istarget "sparc64-*-*"] || [istarget "sparcv9-*-*"] } {
+ # On sparc64/sparcv9 it doesn't fail at -O0/-O1, or at all with -m32.
+ set torture_eval_before_execute {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "This test fails on 64-bit targets, see PR6221." \
+ { "*-*-*" } \
+ { "-O2" "-O3" "-Os" } \
+ { "-m32" }
+ }
}
+} elseif { [istarget "sparc-*-*"] } {
+ # Regular sparc fails with -m64, but not with -O0/-O1.
+ set torture_eval_before_execute {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "This test fails on 64-bit targets, see PR6221." \
+ { "*-*-*" } \
+ { "-m64" } \
+ { "-O0" "-O1" }
+ }
+ }
+} elseif { [istarget "powerpc64-*-*"] } {
+ # PowerPC-64 doesn't fail at any optimization level.
+} elseif { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"]
+ || [istarget "mmix-*-*"] || [istarget "mips*-*-irix6*"] } {
+ # Other 64-bit targets fail at all optimization levels.
+ set torture_execute_xfail [istarget]
}
return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
index ce0dd0033cb..4d1e27b91ec 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
@@ -11,11 +11,25 @@
# and can make the optimization.
# Don't XFAIL at -O0, that should never fail.
+if { [istarget "i?86-*-*"] } {
+ set torture_eval_before_compile {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "PR opt/10348" \
+ { "*-*-*" } \
+ { "-fpic" "-fPIC" } \
+ { "-O0" }
+ }
+ }
+ return 0
+}
+
set torture_eval_before_compile {
global compiler_conditional_xfail_data
set compiler_conditional_xfail_data {
"This test fails to optimize completely on certain platforms." \
- { "xtensa-*-*" "sh-*-*" "arm*-*-*" "strongarm*-*-*" "xscale*-*-*" "h8300*-*-*" } \
+ { "xtensa-*-*" "sh-*-*" "arm*-*-*" "strongarm*-*-*" "xscale*-*-*" \
+ "h8300*-*-*" "x86_64-*-*" "cris-*-*" } \
{ "*" } \
{ "-O0" }
}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021024-1.c b/gcc/testsuite/gcc.c-torture/execute/20021024-1.c
new file mode 100644
index 00000000000..f7d98e929a2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20021024-1.c
@@ -0,0 +1,43 @@
+/* Origin: PR target/6981 from Mattias Engdegaard <mattias@virtutech.se>. */
+
+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 --git a/gcc/testsuite/gcc.c-torture/execute/20021219-1.c b/gcc/testsuite/gcc.c-torture/execute/20021219-1.c
new file mode 100644
index 00000000000..2e658a5a885
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20021219-1.c
@@ -0,0 +1,18 @@
+/* PR optimization/8988 */
+/* Contributed by Kevin Easton */
+
+void foo(char *p1, char **p2)
+{}
+
+int main(void)
+{
+ char str[] = "foo { xx }";
+ char *ptr = str + 5;
+
+ foo(ptr, &ptr);
+
+ while (*ptr && (*ptr == 13 || *ptr == 32))
+ ptr++;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030109-1.c b/gcc/testsuite/gcc.c-torture/execute/20030109-1.c
new file mode 100644
index 00000000000..1bea931f64c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030109-1.c
@@ -0,0 +1,20 @@
+/* PR c/8032 */
+/* Verify that an empty initializer inside a partial
+ parent initializer doesn't confuse GCC. */
+
+struct X
+{
+ int a;
+ int b;
+ int z[];
+};
+
+struct X x = { .b = 40, .z = {} };
+
+int main ()
+{
+ if (x.b != 40)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030120-1.c b/gcc/testsuite/gcc.c-torture/execute/20030120-1.c
new file mode 100644
index 00000000000..0ac0ecf7025
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030120-1.c
@@ -0,0 +1,50 @@
+/* On H8/300 port, NOTICE_UPDATE_CC had a bug that causes the final
+ pass to remove test insns that should be kept. */
+
+unsigned short
+test1 (unsigned short w)
+{
+ if ((w & 0xff00) == 0)
+ {
+ if (w == 0)
+ w = 2;
+ }
+ return w;
+}
+
+unsigned long
+test2 (unsigned long w)
+{
+ if ((w & 0xffff0000) == 0)
+ {
+ if (w == 0)
+ w = 2;
+ }
+ return w;
+}
+
+int
+test3 (unsigned short a)
+{
+ if (a & 1)
+ return 1;
+ else if (a)
+ return 1;
+ else
+ return 0;
+}
+
+int
+main ()
+{
+ if (test1 (1) != 1)
+ abort ();
+
+ if (test2 (1) != 1)
+ abort ();
+
+ if (test3 (2) != 1)
+ abort ();
+
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030120-2.c b/gcc/testsuite/gcc.c-torture/execute/20030120-2.c
new file mode 100644
index 00000000000..298bc4f5b4f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030120-2.c
@@ -0,0 +1,19 @@
+/* PR 8848 */
+
+extern void abort ();
+
+int foo(int status)
+{
+ int s = 0;
+ if (status == 1) s=1;
+ if (status == 3) s=3;
+ if (status == 4) s=4;
+ return s;
+}
+
+int main()
+{
+ if (foo (3) != 3)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030218-1.c b/gcc/testsuite/gcc.c-torture/execute/20030218-1.c
new file mode 100644
index 00000000000..8dde79451fe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030218-1.c
@@ -0,0 +1,25 @@
+/* On H8, the predicate general_operand_src(op,mode) used to ignore
+ mode when op is a (mem (post_inc ...)). As a result, the pattern
+ for extendhisi2 was recognized as extendqisi2. */
+
+extern void abort ();
+extern void exit (int);
+
+short *q;
+
+long
+foo (short *p)
+{
+ long b = *p;
+ q = p + 1;
+ return b;
+}
+
+int
+main ()
+{
+ short a = 0xff00;
+ if (foo (&a) != (long) (short) 0xff00)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030221-1.c b/gcc/testsuite/gcc.c-torture/execute/20030221-1.c
new file mode 100644
index 00000000000..9dcee3e2338
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030221-1.c
@@ -0,0 +1,17 @@
+/* PR optimization/8613 */
+/* Contributed by Glen Nakamura */
+
+extern void abort (void);
+
+int main (void)
+{
+ char buf[16] = "1234567890";
+ char *p = buf;
+
+ *p++ = (char) __builtin_strlen (buf);
+
+ if ((buf[0] != 10) || (p - buf != 1))
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030224-2.c b/gcc/testsuite/gcc.c-torture/execute/20030224-2.c
new file mode 100644
index 00000000000..5b692fb4669
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030224-2.c
@@ -0,0 +1,28 @@
+/* Make sure that we don't free any temp stack slots associated with
+ initializing marker before we're finished with them. */
+
+extern void abort();
+
+typedef struct { short v16; } __attribute__((packed)) jint16_t;
+
+struct node {
+ jint16_t magic;
+ jint16_t nodetype;
+ int totlen;
+} __attribute__((packed));
+
+struct node node, *node_p = &node;
+
+int main()
+{
+ struct node marker = {
+ .magic = (jint16_t) {0x1985},
+ .nodetype = (jint16_t) {0x2003},
+ .totlen = node_p->totlen
+ };
+ if (marker.magic.v16 != 0x1985)
+ abort();
+ if (marker.nodetype.v16 != 0x2003)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030307-1.c b/gcc/testsuite/gcc.c-torture/execute/20030307-1.c
new file mode 100644
index 00000000000..3f4eb864d6c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030307-1.c
@@ -0,0 +1,26 @@
+/* PR optimization/8726 */
+/* Originator: Paul Eggert <eggert@twinsun.com> */
+
+/* Verify that GCC doesn't miscompile tail calls on Sparc. */
+
+extern void abort(void);
+
+int fcntl_lock(int fd, int op, long long offset, long long count, int type);
+
+int vfswrap_lock(char *fsp, int fd, int op, long long offset, long long count, int type)
+{
+ return fcntl_lock(fd, op, offset, count, type);
+}
+
+int fcntl_lock(int fd, int op, long long offset, long long count, int type)
+{
+ return type;
+}
+
+int main(void)
+{
+ if (vfswrap_lock (0, 1, 2, 3, 4, 5) != 5)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030313-1.c b/gcc/testsuite/gcc.c-torture/execute/20030313-1.c
new file mode 100644
index 00000000000..49245a0b39f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030313-1.c
@@ -0,0 +1,68 @@
+struct A
+{
+ unsigned long p, q, r, s;
+} x = { 13, 14, 15, 16 };
+
+extern void abort (void);
+extern void exit (int);
+
+static inline struct A *
+bar (void)
+{
+ struct A *r;
+
+ switch (8)
+ {
+ case 2:
+ abort ();
+ break;
+ case 8:
+ r = &x;
+ break;
+ default:
+ abort ();
+ break;
+ }
+ return r;
+}
+
+void
+foo (unsigned long *x, int y)
+{
+ if (y != 12)
+ abort ();
+ if (x[0] != 1 || x[1] != 11)
+ abort ();
+ if (x[2] != 2 || x[3] != 12)
+ abort ();
+ if (x[4] != 3 || x[5] != 13)
+ abort ();
+ if (x[6] != 4 || x[7] != 14)
+ abort ();
+ if (x[8] != 5 || x[9] != 15)
+ abort ();
+ if (x[10] != 6 || x[11] != 16)
+ abort ();
+}
+
+int
+main (void)
+{
+ unsigned long a[40];
+ int b = 0;
+
+ a[b++] = 1;
+ a[b++] = 11;
+ a[b++] = 2;
+ a[b++] = 12;
+ a[b++] = 3;
+ a[b++] = bar()->p;
+ a[b++] = 4;
+ a[b++] = bar()->q;
+ a[b++] = 5;
+ a[b++] = bar()->r;
+ a[b++] = 6;
+ a[b++] = bar()->s;
+ foo (a, b);
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030316-1.c b/gcc/testsuite/gcc.c-torture/execute/20030316-1.c
new file mode 100644
index 00000000000..bde2e136ad3
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030316-1.c
@@ -0,0 +1,12 @@
+/* PR target/9164 */
+/* The comparison operand was sign extended erraneously. */
+
+int
+main (void)
+{
+ long j = 0x40000000;
+ if ((unsigned int) (0x40000000 + j) < 0L)
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030613-1.c b/gcc/testsuite/gcc.c-torture/execute/20030613-1.c
new file mode 100644
index 00000000000..cb1623d9617
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030613-1.c
@@ -0,0 +1,62 @@
+/* PR optimization/10955 */
+/* Originator: <heinrich.brand@fujitsu-siemens.com> */
+
+/* This used to fail on SPARC32 at -O3 because the loop unroller
+ wrongly thought it could eliminate a pseudo in a loop, while
+ the pseudo was used outside the loop. */
+
+extern void abort(void);
+
+#define COMPLEX struct CS
+
+COMPLEX {
+ long x;
+ long y;
+};
+
+
+static COMPLEX CCID (COMPLEX x)
+{
+ COMPLEX a;
+
+ a.x = x.x;
+ a.y = x.y;
+
+ return a;
+}
+
+
+static COMPLEX CPOW (COMPLEX x, int y)
+{
+ COMPLEX a;
+ a = x;
+
+ while (--y > 0)
+ a=CCID(a);
+
+ return a;
+}
+
+
+static int c5p (COMPLEX x)
+{
+ COMPLEX a,b;
+ a = CPOW (x, 2);
+ b = CCID( CPOW(a,2) );
+
+ return (b.x == b.y);
+}
+
+
+int main (void)
+{
+ COMPLEX x;
+
+ x.x = -7;
+ x.y = -7;
+
+ if (!c5p(x))
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030714-1.c b/gcc/testsuite/gcc.c-torture/execute/20030714-1.c
new file mode 100644
index 00000000000..719baede26f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030714-1.c
@@ -0,0 +1,193 @@
+/* derived from PR optimization/11440 */
+
+extern void abort (void);
+extern void exit (int);
+
+typedef _Bool bool;
+const bool false = 0;
+const bool true = 1;
+
+enum EPosition
+{
+ STATIC, RELATIVE, ABSOLUTE, FIXED
+};
+typedef enum EPosition EPosition;
+
+enum EFloat
+{
+ FNONE = 0, FLEFT, FRIGHT
+};
+typedef enum EFloat EFloat;
+
+struct RenderBox
+{
+ int unused[6];
+ short m_verticalPosition;
+
+ bool m_layouted : 1;
+ bool m_unused : 1;
+ bool m_minMaxKnown : 1;
+ bool m_floating : 1;
+
+ bool m_positioned : 1;
+ bool m_overhangingContents : 1;
+ bool m_relPositioned : 1;
+ bool m_paintSpecial : 1;
+
+ bool m_isAnonymous : 1;
+ bool m_recalcMinMax : 1;
+ bool m_isText : 1;
+ bool m_inline : 1;
+
+ bool m_replaced : 1;
+ bool m_mouseInside : 1;
+ bool m_hasFirstLine : 1;
+ bool m_isSelectionBorder : 1;
+
+ bool (*isTableCell) (struct RenderBox *this);
+};
+
+typedef struct RenderBox RenderBox;
+
+struct RenderStyle
+{
+ struct NonInheritedFlags
+ {
+ union
+ {
+ struct
+ {
+ unsigned int _display : 4;
+ unsigned int _bg_repeat : 2;
+ bool _bg_attachment : 1;
+ unsigned int _overflow : 4 ;
+ unsigned int _vertical_align : 4;
+ unsigned int _clear : 2;
+ EPosition _position : 2;
+ EFloat _floating : 2;
+ unsigned int _table_layout : 1;
+ bool _flowAroundFloats :1;
+
+ unsigned int _styleType : 3;
+ bool _hasHover : 1;
+ bool _hasActive : 1;
+ bool _clipSpecified : 1;
+ unsigned int _unicodeBidi : 2;
+ int _unused : 1;
+ } f;
+ int _niflags;
+ };
+ } noninherited_flags;
+};
+
+typedef struct RenderStyle RenderStyle;
+
+extern void RenderObject_setStyle(RenderBox *this, RenderStyle *_style);
+extern void removeFromSpecialObjects(RenderBox *this);
+
+
+
+void RenderBox_setStyle(RenderBox *thisin, RenderStyle *_style)
+{
+ RenderBox *this = thisin;
+ bool oldpos, tmp;
+ EPosition tmppo;
+
+ tmp = this->m_positioned;
+
+ oldpos = tmp;
+
+ RenderObject_setStyle(this, _style);
+
+ tmppo = _style->noninherited_flags.f._position;
+
+ switch(tmppo)
+ {
+ case ABSOLUTE:
+ case FIXED:
+ {
+ bool ltrue = true;
+ this->m_positioned = ltrue;
+ break;
+ }
+
+ default:
+ {
+ EFloat tmpf;
+ EPosition tmpp;
+ if (oldpos)
+ {
+ bool ltrue = true;
+ this->m_positioned = ltrue;
+ removeFromSpecialObjects(this);
+ }
+ {
+ bool lfalse = false;
+ this->m_positioned = lfalse;
+ }
+
+ tmpf = _style->noninherited_flags.f._floating;
+
+ if(!this->isTableCell (this) && !(tmpf == FNONE))
+ {
+ bool ltrue = true;
+ this->m_floating = ltrue;
+ }
+ else
+ {
+ tmpp = _style->noninherited_flags.f._position;
+ if (tmpp == RELATIVE)
+ {
+ bool ltrue = true;
+ this->m_relPositioned = ltrue;
+ }
+ }
+ }
+ }
+}
+
+
+
+
+RenderBox g_this;
+RenderStyle g__style;
+
+void RenderObject_setStyle(RenderBox *this, RenderStyle *_style)
+{
+ (void) this;
+ (void) _style;
+}
+
+void removeFromSpecialObjects(RenderBox *this)
+{
+ (void) this;
+}
+
+bool RenderBox_isTableCell (RenderBox *this)
+{
+ (void) this;
+ return false;
+}
+
+int main (void)
+{
+
+ g_this.m_relPositioned = false;
+ g_this.m_positioned = false;
+ g_this.m_floating = false;
+ g_this.isTableCell = RenderBox_isTableCell;
+
+ g__style.noninherited_flags.f._position = FIXED;
+ g__style.noninherited_flags.f._floating = FNONE;
+
+ RenderBox_setStyle (&g_this, &g__style);
+
+ if (g_this.m_positioned != true)
+ abort ();
+ if (g_this.m_relPositioned != false)
+ abort ();
+ if (g_this.m_floating != false)
+ abort ();
+
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030715-1.c b/gcc/testsuite/gcc.c-torture/execute/20030715-1.c
new file mode 100644
index 00000000000..a2a28ce962c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030715-1.c
@@ -0,0 +1,35 @@
+/* PR optimization/11320 */
+/* Origin: Andreas Schwab <schwab@suse.de> */
+
+/* Verify that the scheduler correctly computes the dependencies
+ in the presence of conditional instructions. */
+
+int strcmp (const char *, const char *);
+int ap_standalone;
+
+const char *ap_check_cmd_context (void *a, int b)
+{
+ return 0;
+}
+
+const char *server_type (void *a, void *b, char *arg)
+{
+ const char *err = ap_check_cmd_context (a, 0x01|0x02|0x04|0x08|0x10);
+ if (err)
+ return err;
+
+ if (!strcmp (arg, "inetd"))
+ ap_standalone = 0;
+ else if (!strcmp (arg, "standalone"))
+ ap_standalone = 1;
+ else
+ return "ServerType must be either 'inetd' or 'standalone'";
+
+ return 0;
+}
+
+int main ()
+{
+ server_type (0, 0, "standalone");
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030907-1.c b/gcc/testsuite/gcc.c-torture/execute/20030907-1.c
new file mode 100644
index 00000000000..cbdcf0c2f84
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20030907-1.c
@@ -0,0 +1,22 @@
+/* PR optimization/11662 */
+/* Origin: heinrich.brand@fujitsu-siemens.com */
+
+/* This used to fail on SPARC at -O1 because the combiner didn't
+ correctly propagate an error indicator. */
+
+unsigned long long r;
+
+void test(unsigned long a, unsigned long b, unsigned long long c)
+{
+ r = (a^b)&c;
+}
+
+int main()
+{
+ test(1,2,3);
+
+ if (r != 3)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031020-1.c b/gcc/testsuite/gcc.c-torture/execute/20031020-1.c
new file mode 100644
index 00000000000..526ca0402f9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20031020-1.c
@@ -0,0 +1,23 @@
+/* PR target/12654
+ The Alpha backend tried to do a >= 1024 as (a - 1024) >= 0, which fails
+ for very large negative values. */
+/* Origin: tg@swox.com */
+
+#include <limits.h>
+
+extern void abort (void);
+
+void __attribute__((noinline))
+foo (long x)
+{
+ if (x >= 1024)
+ abort ();
+}
+
+int
+main ()
+{
+ foo (LONG_MIN);
+ foo (LONG_MIN + 10000);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031201-1.c b/gcc/testsuite/gcc.c-torture/execute/20031201-1.c
new file mode 100644
index 00000000000..7c8e0ea290f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20031201-1.c
@@ -0,0 +1,76 @@
+/* Copyright (C) 2003 Free Software Foundation.
+ PR target/13256
+ STRICT_LOW_PART was handled incorrectly in delay slots.
+ Origin: Hans-Peter Nilsson. */
+
+typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s1;
+typedef struct { unsigned int e0 : 16; unsigned int e1 : 16; } s2;
+typedef struct { s1 i12; s2 i16; } io;
+static int test_length = 2;
+static io *i;
+static int m = 1;
+static int d = 1;
+static unsigned long test_t0;
+static unsigned long test_t1;
+void test(void) __attribute__ ((__noinline__));
+extern int f1 (void *port) __attribute__ ((__noinline__));
+extern void f0 (void) __attribute__ ((__noinline__));
+int
+f1 (void *port)
+{
+ int fail_count = 0;
+ unsigned long tlen;
+ s1 x0 = {0};
+ s2 x1 = {0};
+
+ i = port;
+ x0.e0 = x1.e0 = 32;
+ i->i12 = x0;
+ i->i16 = x1;
+ do f0(); while (test_t1);
+ x0.e0 = x1.e0 = 8;
+ i->i12 = x0;
+ i->i16 = x1;
+ test ();
+ if (m)
+ {
+ unsigned long e = 1000000000 / 460800 * test_length;
+ tlen = test_t1 - test_t0;
+ if (((tlen-e) & 0x7FFFFFFF) > 1000)
+ f0();
+ }
+ if (d)
+ {
+ unsigned long e = 1000000000 / 460800 * test_length;
+ tlen = test_t1 - test_t0;
+ if (((tlen - e) & 0x7FFFFFFF) > 1000)
+ f0();
+ }
+ return fail_count != 0 ? 1 : 0;
+}
+
+int
+main ()
+{
+ io io0;
+ f1 (&io0);
+ abort ();
+}
+
+void
+test (void)
+{
+ io *iop = i;
+ if (iop->i12.e0 != 8 || iop->i16.e0 != 8)
+ abort ();
+ exit (0);
+}
+
+void
+f0 (void)
+{
+ static int washere = 0;
+ io *iop = i;
+ if (washere++ || iop->i12.e0 != 32 || iop->i16.e0 != 32)
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20031215-1.c b/gcc/testsuite/gcc.c-torture/execute/20031215-1.c
new file mode 100644
index 00000000000..d62177b2618
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20031215-1.c
@@ -0,0 +1,38 @@
+/* PR middle-end/13400 */
+/* The following test used to fail at run-time with a write to read-only
+ memory, caused by if-conversion converting a conditional write into an
+ unconditional write. */
+
+typedef struct {int c, l; char ch[3];} pstr;
+const pstr ao = {2, 2, "OK"};
+const pstr * const a = &ao;
+
+void test1(void)
+{
+ if (a->ch[a->l]) {
+ ((char *)a->ch)[a->l] = 0;
+ }
+}
+
+void test2(void)
+{
+ if (a->ch[a->l]) {
+ ((char *)a->ch)[a->l] = -1;
+ }
+}
+
+void test3(void)
+{
+ if (a->ch[a->l]) {
+ ((char *)a->ch)[a->l] = 1;
+ }
+}
+
+int main(void)
+{
+ test1();
+ test2();
+ test3();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040218-1.c b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
new file mode 100644
index 00000000000..4d1541af8bf
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c
@@ -0,0 +1,37 @@
+/* PR target/14209. Bug in cris.md, shrinking access size of
+ postincrement.
+ Origin: <hp@axis.com>. */
+
+long int xb (long int *y) __attribute__ ((__noinline__));
+long int xw (long int *y) __attribute__ ((__noinline__));
+short int yb (short int *y) __attribute__ ((__noinline__));
+
+long int xb (long int *y)
+{
+ long int xx = *y & 255;
+ return xx + y[1];
+}
+
+long int xw (long int *y)
+{
+ long int xx = *y & 65535;
+ return xx + y[1];
+}
+
+short int yb (short int *y)
+{
+ short int xx = *y & 255;
+ return xx + y[1];
+}
+
+int main (void)
+{
+ long int y[] = {-1, 16000};
+ short int yw[] = {-1, 16000};
+
+ if (xb (y) != 16255
+ || xw (y) != 81535
+ || yb (yw) != 16255)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040302-1.c b/gcc/testsuite/gcc.c-torture/execute/20040302-1.c
new file mode 100644
index 00000000000..07056c43f4e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040302-1.c
@@ -0,0 +1,24 @@
+int code[]={0,0,0,0,1};
+
+void foo(int x) {
+ volatile int b;
+ b = 0xffffffff;
+}
+
+void bar(int *pc) {
+ static const void *l[] = {&&lab0, &&end};
+
+ foo(0);
+ goto *l[*pc];
+ lab0:
+ foo(0);
+ pc++;
+ goto *l[*pc];
+ end:
+ return;
+}
+
+int main() {
+ bar(code);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040307-1.c b/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
new file mode 100644
index 00000000000..8ab8008bb99
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040307-1.c
@@ -0,0 +1,25 @@
+int main()
+{
+ int b = 0;
+
+ struct {
+ unsigned int bit0:1;
+ unsigned int bit1:1;
+ unsigned int bit2:1;
+ unsigned int bit3:1;
+ unsigned int bit4:1;
+ unsigned int bit5:1;
+ unsigned int bit6:1;
+ unsigned int bit7:1;
+ } sdata = {0x01};
+
+ while ( sdata.bit0-- > 0 ) {
+ b++ ;
+ if ( b > 100 ) break;
+ }
+
+ if (b != 1)
+ abort ();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040313-1.c b/gcc/testsuite/gcc.c-torture/execute/20040313-1.c
new file mode 100644
index 00000000000..c05fe730f0c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040313-1.c
@@ -0,0 +1,17 @@
+/* PR middle-end/14470 */
+/* Origin: Lodewijk Voge <lvoge@cs.vu.nl> */
+
+extern void abort(void);
+
+int main()
+{
+ int t[1025] = { 1024 }, d;
+
+ d = 0;
+ d = t[d]++;
+ if (t[0] != 1025)
+ abort();
+ if (d != 1024)
+ abort();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040331-1.c b/gcc/testsuite/gcc.c-torture/execute/20040331-1.c
new file mode 100644
index 00000000000..67b3e3a2e0c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040331-1.c
@@ -0,0 +1,12 @@
+/* PR c++/14755 */
+extern void abort (void);
+extern void exit (int);
+
+int
+main (void)
+{
+ struct { int count: 31; } s = { 0 };
+ while (s.count--)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050124-1.c b/gcc/testsuite/gcc.c-torture/execute/20050124-1.c
new file mode 100644
index 00000000000..9d039ef6623
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050124-1.c
@@ -0,0 +1,41 @@
+/* PR rtl-optimization/19579 */
+
+extern void abort (void);
+
+int
+foo (int i, int j)
+{
+ int k = i + 1;
+
+ if (j)
+ {
+ if (k > 0)
+ k++;
+ else if (k < 0)
+ k--;
+ }
+
+ return k;
+}
+
+int
+main (void)
+{
+ if (foo (-2, 0) != -1)
+ abort ();
+ if (foo (-1, 0) != 0)
+ abort ();
+ if (foo (0, 0) != 1)
+ abort ();
+ if (foo (1, 0) != 2)
+ abort ();
+ if (foo (-2, 1) != -2)
+ abort ();
+ if (foo (-1, 1) != 0)
+ abort ();
+ if (foo (0, 1) != 2)
+ abort ();
+ if (foo (1, 1) != 3)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/960312-1.x b/gcc/testsuite/gcc.c-torture/execute/960312-1.x
new file mode 100644
index 00000000000..ed4bac41066
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/960312-1.x
@@ -0,0 +1,7 @@
+# This test fails on HC11/HC12 when it is compiled without -mshort because
+# is uses an asm that requires two 32-bit registers (int). It passes
+# when using -mshort because there are enough registers; force -mshort.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+ set options "-mshort"
+}
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtin-constant.x b/gcc/testsuite/gcc.c-torture/execute/builtin-constant.x
new file mode 100644
index 00000000000..f1a6be7f02e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/builtin-constant.x
@@ -0,0 +1,11 @@
+set torture_eval_before_execute {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "This test fails on all targets when optimizing." \
+ { "*-*-*" } \
+ { "*" } \
+ { "-O0" }
+ }
+}
+
+return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
index ed266efdd86..5f1768c1abc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
@@ -49,7 +49,7 @@ int main()
exit (0);
c(0x3690000000000000ULL, 0x00000000U);
-#if (defined __arm__ || defined __thumb__) && ! defined __ARMEB__
+#if (defined __arm__ || defined __thumb__) && ! (defined __ARMEB__ || defined __VFP_FP__)
/* The ARM always stores FP numbers in big-wordian format,
even when running in little-byteian mode. */
c(0x0000000136900000ULL, 0x00000001U);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr15296.c b/gcc/testsuite/gcc.c-torture/execute/pr15296.c
new file mode 100644
index 00000000000..d2468e425af
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr15296.c
@@ -0,0 +1,73 @@
+/* PR optimization/15296. The delayed-branch scheduler caused code that
+ SEGV:d for CRIS; a register was set to -1 in a delay-slot for the
+ fall-through code, while that register held a pointer used in code at
+ the branch target. */
+
+typedef int __attribute__ ((mode (__pointer__))) intptr_t;
+typedef intptr_t W;
+union u0
+{
+ union u0 *r;
+ W i;
+};
+struct s1
+{
+ union u0 **m0;
+ union u0 m1[4];
+};
+
+void f (void *, struct s1 *, const union u0 *, W, W, W)
+ __attribute__ ((__noinline__));
+void g (void *, char *) __attribute__ ((__noinline__));
+
+void
+f (void *a, struct s1 *b, const union u0 *h, W v0, W v1, W v4)
+{
+ union u0 *e = 0;
+ union u0 *k = 0;
+ union u0 **v5 = b->m0;
+ union u0 *c = b->m1;
+ union u0 **d = &v5[0];
+l0:;
+ if (v0 < v1)
+ goto l0;
+ if (v0 == 0)
+ goto l3;
+ v0 = v4;
+ if (v0 != 0)
+ goto l3;
+ c[0].r = *d;
+ v1 = -1;
+ e = c[0].r;
+ if (e != 0)
+ g (a, "");
+ k = e + 3;
+ k->i = v1;
+ goto l4;
+l3:;
+ c[0].i = v0;
+ e = c[1].r;
+ if (e != 0)
+ g (a, "");
+ e = c[0].r;
+ if (e == 0)
+ g (a, "");
+ k = e + 2;
+ k->r = c[1].r;
+l4:;
+}
+
+void g (void *a, char *b) { abort (); }
+
+int
+main ()
+{
+ union u0 uv[] = {{ .i = 111 }, { .i = 222 }, { .i = 333 }, { .i = 444 }};
+ struct s1 s = { 0, {{ .i = 555 }, { .i = 0 }, { .i = 999 }, { .i = 777 }}};
+ f (0, &s, 0, 20000, 10000, (W) uv);
+ if (s.m1[0].i != (W) uv || s.m1[1].i != 0 || s.m1[2].i != 999
+ || s.m1[3].i != 777 || uv[0].i != 111 || uv[1].i != 222
+ || uv[2].i != 0 || uv[3].i != 444)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c b/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c
new file mode 100644
index 00000000000..dc6a77404b5
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c
@@ -0,0 +1,41 @@
+/* PR middle-end/16790. */
+
+extern void abort ();
+
+static void test1(unsigned int u1)
+{
+ unsigned int y_final_1;
+ signed short y_middle;
+ unsigned int y_final_2;
+
+ y_final_1 = (unsigned int)( (signed short)(u1 * 2) * 3 );
+ y_middle = (signed short)(u1 * 2);
+ y_final_2 = (unsigned int)( y_middle * 3 );
+
+ if (y_final_1 != y_final_2)
+ abort ();
+}
+
+
+static void test2(unsigned int u1)
+{
+ unsigned int y_final_1;
+ signed short y_middle;
+ unsigned int y_final_2;
+
+ y_final_1 = (unsigned int)( (signed short)(u1 << 1) * 3 );
+ y_middle = (signed short)(u1 << 1);
+ y_final_2 = (unsigned int)( y_middle * 3 );
+
+ if (y_final_1 != y_final_2)
+ abort ();
+}
+
+
+int main()
+{
+ test1(0x4000U);
+ test2(0x4000U);
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/execute/restrict-1.c b/gcc/testsuite/gcc.c-torture/execute/restrict-1.c
new file mode 100644
index 00000000000..3c5696cb597
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/restrict-1.c
@@ -0,0 +1,30 @@
+/* PR rtl-optimization/16536
+ Origin: Jeremy Denise <jeremy.denise@libertysurf.fr>
+ Reduced: Wolfgang Bangerth <bangerth@dealii.org>
+ Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+
+extern void abort ();
+
+typedef struct
+{
+ int i, dummy;
+} A;
+
+inline A foo (const A* p, const A* q)
+{
+ return (A){p->i+q->i};
+}
+
+void bar (A* __restrict__ p)
+{
+ *p=foo(p,p);
+ if (p->i!=2)
+ abort();
+}
+
+int main ()
+{
+ A a={1};
+ bar(&a);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c b/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c
index dbdc812fe6b..63708408235 100644
--- a/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c
@@ -54,7 +54,7 @@ int main()
return 0;
}
-#ifdef __OPTIMIZE__
+#if defined (__OPTIMIZE__) && ! defined (__OPTIMIZE_SIZE__)
/* When optimizing, all the above cases should be transformed into
something else. So any remaining calls to the original function
should abort. */
diff --git a/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c b/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
new file mode 100644
index 00000000000..89a11cf9f73
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/va-arg-23.c
@@ -0,0 +1,26 @@
+/* PR 9700 */
+/* Alpha got the base address for the va_list incorrect when there was
+ a structure that was passed partially in registers and partially on
+ the stack. */
+
+#include <stdarg.h>
+
+struct two { long x, y; };
+
+void foo(int a, int b, int c, int d, int e, struct two f, int g, ...)
+{
+ va_list args;
+ int h;
+
+ va_start(args, g);
+ h = va_arg(args, int);
+ if (g != 1 || h != 2)
+ abort ();
+}
+
+int main()
+{
+ struct two t = { 0, 0 };
+ foo(0, 0, 0, 0, 0, t, 1, 2);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20001013-1.c b/gcc/testsuite/gcc.dg/20001013-1.c
index 163a262ebe8..87126fc4a81 100644
--- a/gcc/testsuite/gcc.dg/20001013-1.c
+++ b/gcc/testsuite/gcc.dg/20001013-1.c
@@ -1,7 +1,5 @@
-/* ??? It'd be nice to run this for sparc32 as well, if we could know
- for sure that we're on an ultrasparc, rather than an older cpu. */
-/* { dg-do run { target sparcv9-*-* sparc64-*-* } } */
-/* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */
+/* { dg-do run { target sparc*-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */
int l;
diff --git a/gcc/testsuite/gcc.dg/20001101-1.c b/gcc/testsuite/gcc.dg/20001101-1.c
index 6cafff0d423..723901c4090 100644
--- a/gcc/testsuite/gcc.dg/20001101-1.c
+++ b/gcc/testsuite/gcc.dg/20001101-1.c
@@ -1,7 +1,5 @@
-/* ??? It'd be nice to run this for sparc32 as well, if we could know
- for sure that we're on an ultrasparc, rather than an older cpu. */
-/* { dg-do run { target sparcv9-*-* sparc64-*-* } } */
-/* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */
+/* { dg-do run { target sparc*-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */
int foo(double a, int b, int c, double *d, int h)
{
diff --git a/gcc/testsuite/gcc.dg/20001102-1.c b/gcc/testsuite/gcc.dg/20001102-1.c
index 2d9e45b0de3..d062353c680 100644
--- a/gcc/testsuite/gcc.dg/20001102-1.c
+++ b/gcc/testsuite/gcc.dg/20001102-1.c
@@ -1,7 +1,5 @@
-/* ??? It'd be nice to run this for sparc32 as well, if we could know
- for sure that we're on an ultrasparc, rather than an older cpu. */
-/* { dg-do run { target sparcv9-*-* sparc64-*-* } } */
-/* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */
+/* { dg-do run { target sparc*-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */
int foo(double a, int b, int c, double *d, int h)
{
diff --git a/gcc/testsuite/gcc.dg/20011029-2.c b/gcc/testsuite/gcc.dg/20011029-2.c
index b184af088d1..6fdc6216678 100644
--- a/gcc/testsuite/gcc.dg/20011029-2.c
+++ b/gcc/testsuite/gcc.dg/20011029-2.c
@@ -16,7 +16,7 @@ int foo (int s)
continue;
else if (({ register char r;
__asm__ __volatile__ ("" : "=q" (r)
- : "r" (0), "m" (a)
+ : "r" (0), "m" (a[0])
: "cc"); r; }))
continue;
}
diff --git a/gcc/testsuite/gcc.dg/20020313-1.c b/gcc/testsuite/gcc.dg/20020313-1.c
index f0ae6d4bde4..c8c5d7135ab 100644
--- a/gcc/testsuite/gcc.dg/20020313-1.c
+++ b/gcc/testsuite/gcc.dg/20020313-1.c
@@ -4,7 +4,9 @@
to, and aborted. */
/* { dg-do compile { target ia64-*-* } } */
-/* { dg-options "-O2 -mconstant-gp" } */
+/* In ILP32 mode, we get warnings about large integer constants.
+ Those cause spurious FAILs. */
+/* { dg-options "-w -O2 -mconstant-gp" } */
typedef unsigned long __u64;
typedef unsigned int __u32;
diff --git a/gcc/testsuite/gcc.dg/20020430-1.c b/gcc/testsuite/gcc.dg/20020430-1.c
index 981c4f36dab..5df76801bf4 100644
--- a/gcc/testsuite/gcc.dg/20020430-1.c
+++ b/gcc/testsuite/gcc.dg/20020430-1.c
@@ -4,8 +4,8 @@
until the last moment. After which we did not delete dead code,
which left a reference to the deleted ADDR_VEC. */
-/* { dg-do compile }
-/* { do-options "-O2 -frename-registers -fpic" } */
+/* { dg-do compile } */
+/* { dg-options "-O2 -frename-registers -fpic" } */
typedef unsigned long XID;
typedef XID Window;
diff --git a/gcc/testsuite/gcc.dg/20020503-1.c b/gcc/testsuite/gcc.dg/20020503-1.c
index 5f9168eb67d..6e669031cd6 100644
--- a/gcc/testsuite/gcc.dg/20020503-1.c
+++ b/gcc/testsuite/gcc.dg/20020503-1.c
@@ -4,8 +4,8 @@
for leaf functions, the function was still leaf, but LEAF_REG_REMAP
returned -1 for some registers (like %o0). */
/* { dg-do compile } */
-/* { do-options "-O2 -g" } */
-/* { do-options "-O2 -g -mflat" { target sparc*-*-* } } */
+/* { dg-options "-O2 -g" } */
+/* { dg-options "-O2 -g -mflat" { target sparc*-*-* } } */
void foo (char *a, char *b, char *c, char *d)
{
diff --git a/gcc/testsuite/gcc.dg/20030120-1.c b/gcc/testsuite/gcc.dg/20030120-1.c
new file mode 100644
index 00000000000..05689ad0961
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030120-1.c
@@ -0,0 +1,10 @@
+/* PR 7154 */
+/* { dg-do compile } */
+/* { dg-options "-O -fpic" } */
+/* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */
+
+const int x[1]={ 1 };
+void foo(int i, int *p)
+{
+ asm volatile("" : "+r"(i) : "m" (x[0]), "r"(p));
+}
diff --git a/gcc/testsuite/gcc.dg/20030123-1.c b/gcc/testsuite/gcc.dg/20030123-1.c
new file mode 100644
index 00000000000..1f5858808c4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030123-1.c
@@ -0,0 +1,17 @@
+/* This used to ICE due to a reload bug on s390*. */
+
+/* { dg-do compile { target s390*-*-* } } */
+/* { dg-options "-O2" } */
+
+void func (char *p);
+
+void test (void)
+{
+ char *p = alloca (4096);
+ long idx;
+
+ asm ("" : "=r" (idx) : : "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
+
+ func (p + idx + 1);
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030129-1.c b/gcc/testsuite/gcc.dg/20030129-1.c
new file mode 100644
index 00000000000..0b745a901b1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030129-1.c
@@ -0,0 +1,37 @@
+/* This used to ICE due to a reload bug on s390*. */
+
+/* { dg-do compile { target s390*-*-* } } */
+/* { dg-options "-O2" } */
+
+int f (unsigned int);
+void g (void *);
+
+void test (void *p, void *dummy)
+{
+ unsigned int flags = 0;
+
+ if (dummy)
+ g (dummy);
+
+ if (p)
+ flags |= 0x80000000;
+
+ asm volatile ("" : : : "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
+
+ if (dummy)
+ g (dummy);
+
+ if (p)
+ {
+ flags |= 0x20000000|0x80000000;
+
+ if (!f (0))
+ flags &= ~0x80000000;
+ }
+
+ f (flags);
+
+ if (dummy)
+ g (dummy);
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030204-1.c b/gcc/testsuite/gcc.dg/20030204-1.c
new file mode 100644
index 00000000000..e236e3a3a39
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030204-1.c
@@ -0,0 +1,16 @@
+/* PR optimization/8555 */
+/* { dg-do compile } */
+/* { dg-options "-O -ffast-math -funroll-loops" } */
+/* { dg-options "-march=pentium3 -O -ffast-math -funroll-loops" { target i?86-*-* } } */
+
+float foo (float *a, int i)
+{
+ int j;
+ float x = a[j = i - 1], y;
+
+ for (j = i; --j >= 0; )
+ if ((y = a[j]) > x)
+ x = y;
+
+ return x;
+}
diff --git a/gcc/testsuite/gcc.dg/20030213-1.c b/gcc/testsuite/gcc.dg/20030213-1.c
new file mode 100644
index 00000000000..c9fe3a40eaf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030213-1.c
@@ -0,0 +1,37 @@
+/* Testcase for http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01017.html */
+/* { dg-do link } */
+/* { dg-options "-O -fpic" } */
+/* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
+
+int *g;
+
+int main (void)
+{
+ switch (*g)
+ {
+ case 0:
+ {
+ switch (*g)
+ {
+ case 0: *g = 1; break;
+ case 1:
+ case 2: *g = 1; break;
+ case 3:
+ case 4: *g = 1; break;
+ }
+ break;
+ }
+ case 1:
+ {
+ switch (*g)
+ {
+ case 0: *g = 1; break;
+ case 1:
+ case 2: *g = 1; break;
+ case 3:
+ case 4: *g = 1; break;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20030225-1.c b/gcc/testsuite/gcc.dg/20030225-1.c
new file mode 100644
index 00000000000..7c30898b4ea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030225-1.c
@@ -0,0 +1,103 @@
+/* PR target/9732
+ This testcase segfaulted on PPC because PIC_OFFSET_TABLE_REGNUM was no
+ fixed register.
+ Distilled from the xvid sources by Guillaume Morin <guillaume@morinfr.org>
+ and Benjamin Herrenschmidt <benh@kernel.crashing.org>. */
+/* { dg-do run } */
+/* { dg-options "-O2 -fPIC" } */
+/* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */
+
+
+extern void exit (int);
+
+#define W1 2841 /* 2048*sqrt(2)*cos(1*pi/16) */
+#define W2 2676 /* 2048*sqrt(2)*cos(2*pi/16) */
+#define W3 2408 /* 2048*sqrt(2)*cos(3*pi/16) */
+#define W5 1609 /* 2048*sqrt(2)*cos(5*pi/16) */
+#define W6 1108 /* 2048*sqrt(2)*cos(6*pi/16) */
+#define W7 565 /* 2048*sqrt(2)*cos(7*pi/16) */
+
+
+/* private data */
+static short iclip[1024]; /* clipping table */
+static short *iclp;
+
+void
+idct_int32(short *const block)
+{
+ static short *blk;
+ static long i;
+ static long X0, X1, X2, X3, X4, X5, X6, X7, X8;
+
+ for (i = 0; i < 8; i++) /* idct columns */
+ {
+ blk = block + i;
+ /* shortcut */
+ if (! ((X1 = (blk[8 * 4] << 8)) | (X2 = blk[8 * 6])
+ | (X3 = blk[8 * 2]) | (X4 = blk[8 * 1]) | (X5 = blk[8 * 7])
+ | (X6 = blk[8 * 5]) | (X7 = blk[8 * 3])))
+ {
+ blk[8 * 0] = blk[8 * 1] = blk[8 * 2] =
+ blk[8 * 3] = blk[8 * 4] =
+ blk[8 * 5] = blk[8 * 6] = blk[8 * 7] =
+ iclp[(blk[8 * 0] + 32) >> 6];
+ continue;
+ }
+ X0 = (blk[8 * 0] << 8) + 8192;
+
+ /* first stage */
+ X8 = W7 * (X4 + X5) + 4;
+ X4 = (X8 + (W1 - W7) * X4) >> 3;
+ X5 = (X8 - (W1 + W7) * X5) >> 3;
+ X8 = W3 * (X6 + X7) + 4;
+ X6 = (X8 - (W3 - W5) * X6) >> 3;
+ X7 = (X8 - (W3 + W5) * X7) >> 3;
+
+ /* second stage */
+ X8 = X0 + X1;
+ X0 -= X1;
+ X1 = W6 * (X3 + X2) + 4;
+ X2 = (X1 - (W2 + W6) * X2) >> 3;
+ X3 = (X1 + (W2 - W6) * X3) >> 3;
+ X1 = X4 + X6;
+ X4 -= X6;
+ X6 = X5 + X7;
+ X5 -= X7;
+
+ /* third stage */
+ X7 = X8 + X3;
+ X8 -= X3;
+ X3 = X0 + X2;
+ X0 -= X2;
+ X2 = (181 * (X4 + X5) + 128) >> 8;
+ X4 = (181 * (X4 - X5) + 128) >> 8;
+
+ /* fourth stage */
+ blk[8 * 0] = iclp[(X7 + X1) >> 14];
+ blk[8 * 1] = iclp[(X3 + X2) >> 14];
+ blk[8 * 2] = iclp[(X0 + X4) >> 14];
+ blk[8 * 3] = iclp[(X8 + X6) >> 14];
+ blk[8 * 4] = iclp[(X8 - X6) >> 14];
+ blk[8 * 5] = iclp[(X0 - X4) >> 14];
+ blk[8 * 6] = iclp[(X3 - X2) >> 14];
+ blk[8 * 7] = iclp[(X7 - X1) >> 14];
+ }
+} /* end function idct_int32(block) */
+
+
+int main(void) {
+ int i;
+ unsigned short tab[64];
+
+ for (i = 0 ; i < 64 ; ++i)
+ {
+ tab[i] = (1+(int) (65535)*8000/(2147483647+1.0));
+ }
+
+ iclp = iclip + 512;
+ for (i = -512; i < 512; i++)
+ iclp[i] = (i < -256) ? -256 : ((i > 255) ? 255 : i);
+
+ idct_int32((short *) tab);
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/20030309-1.c b/gcc/testsuite/gcc.dg/20030309-1.c
new file mode 100644
index 00000000000..2431bc1b52f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030309-1.c
@@ -0,0 +1,42 @@
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+
+struct A0 { int x; };
+struct A1 { int x; int y[1]; };
+struct A2 { int x; int y[2]; };
+struct A3 { int x; int y[3]; };
+struct A4 { int x; int y[4]; };
+
+void *s;
+int u;
+
+int
+main (void)
+{
+ int x;
+ void *t = s;
+
+ switch (u)
+ {
+ case 0:
+ x = ((struct A0 *) t)->x;
+ break;
+ case 1:
+ x = ((struct A1 *) t)->x;
+ break;
+ case 2:
+ x = ((struct A2 *) t)->x;
+ break;
+ case 3:
+ x = ((struct A3 *) t)->x;
+ break;
+ case 4:
+ x = ((struct A4 *) t)->x;
+ break;
+ default:
+ x = 0;
+ break;
+ }
+
+ return x;
+}
diff --git a/gcc/testsuite/gcc.dg/20030321-1.c b/gcc/testsuite/gcc.dg/20030321-1.c
new file mode 100644
index 00000000000..228acec5471
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030321-1.c
@@ -0,0 +1,18 @@
+/* This used to ICE on s390 due to displacement overflow
+ when accessing the low-order subword. */
+
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+struct array
+{
+ char align[4092];
+ long long elem[2] __attribute__ ((__packed__));
+};
+
+long long
+test (struct array *array, int i)
+{
+ return array->elem[i];
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030323-1.c b/gcc/testsuite/gcc.dg/20030323-1.c
new file mode 100644
index 00000000000..8a563ec5eb2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030323-1.c
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+
+/* PR c/8224 */
+/* Contributed by Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> */
+
+extern void abort (void);
+
+unsigned f (int x)
+{
+ return (unsigned) (x / 2) / 2;
+}
+
+unsigned f1 (int x)
+{
+ unsigned xx = x / 2;
+ return xx / 2;
+}
+
+int main ()
+{
+ if (f1 (-5) != f (-5))
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20030324-1.c b/gcc/testsuite/gcc.dg/20030324-1.c
new file mode 100644
index 00000000000..7e46d040ee2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030324-1.c
@@ -0,0 +1,39 @@
+/* { dg-do run } */
+/* { dg-options "-O -fstrength-reduce -fstrict-aliasing -fforce-mem -fgcse" } */
+
+/* PR optimization/10087 */
+/* Contributed by Peter van Hoof <p.van-hoof@qub.ac.uk> */
+
+extern void abort(void);
+
+void b(int*,int*);
+
+typedef struct {
+ double T1;
+ char c;
+} S;
+
+int main(void)
+{
+ int i,j;
+ double s;
+
+ S x1[2][2];
+ S *x[2] = { x1[0], x1[1] };
+ S **E = x;
+
+ for( i=0; i < 2; i++ )
+ for( j=0; j < 2; j++ )
+ E[j][i].T1 = 1;
+
+ for( i=0; i < 2; i++ )
+ for( j=0; j < 2; j++ )
+ s = E[j][i].T1;
+
+ b(&j,&i);
+ if (s != 1)
+ abort ();
+ return 0;
+}
+
+void b(int *i, int *j) {}
diff --git a/gcc/testsuite/gcc.dg/20030331-2.c b/gcc/testsuite/gcc.dg/20030331-2.c
new file mode 100644
index 00000000000..210524da456
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030331-2.c
@@ -0,0 +1,10 @@
+// { dg-options "" }
+
+int foo() {
+ int yd;
+ float in[1][yd];
+
+ static void bar() {
+ printf("%p\n",in[0]);
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/20030414-1.c b/gcc/testsuite/gcc.dg/20030414-1.c
new file mode 100644
index 00000000000..9ba595318dc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030414-1.c
@@ -0,0 +1,39 @@
+/* PR target/10377
+ Distilled by Hans-Peter Nilsson <hp@axis.com> from ncurses-5.3 infocmp.c.
+ Copyright (C) 2003 Free Software Foundation. */
+
+/* { dg-do assemble } */
+/* { dg-options "-O2 -fPIC" { target *-*-*gnu* } } */
+
+extern int f2 (char *, char *);
+extern char *ss[];
+extern char *cc;
+void
+f1 (char *dd, char *bb)
+{
+ char *sp = bb + 1;
+ char *ap;
+ int i;
+ char *ee = 0;
+ char *cp;
+
+ for (i = 0, cp = cc; i < 42; i++)
+ if (cp)
+ {
+ if (f2 (dd, "xx") || f2 (ss[i], "xx") || f2 (ss[i], "yy"))
+ if (bb < cp)
+ continue;
+ ee = ss[i];
+ break;
+ }
+
+ if (!ee)
+ for (ap = cc; *ap; ap++)
+ if (f2(ap, sp))
+ {
+ ee = ap;
+ break;
+ }
+
+ cc = ee;
+}
diff --git a/gcc/testsuite/gcc.dg/20030625-1.c b/gcc/testsuite/gcc.dg/20030625-1.c
new file mode 100644
index 00000000000..4e78ae4ac7f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030625-1.c
@@ -0,0 +1,9 @@
+/* Testcase from http://gcc.gnu.org/ml/gcc-patches/2003-06/msg02557.html */
+/* { dg-do compile } */
+/* { dg-options "-g" } */
+
+typedef struct _foo foo;
+struct _foo {
+ struct _moo moo; /* { dg-error "moo" "has incomplete type" } */
+};
+
diff --git a/gcc/testsuite/gcc.dg/20030627-1.c b/gcc/testsuite/gcc.dg/20030627-1.c
new file mode 100644
index 00000000000..4135f71e3c4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030627-1.c
@@ -0,0 +1,20 @@
+/* This tests whether non-offsettable memory operands are reloaded
+ correctly in certain corner cases on s390 targets. */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu89" } */
+
+void test_inout (char *bd, int xd, char *bs, int xs)
+{
+ *(long long *)(bd + xd + 4093) = *(long long *)(bs + xs + 4093);
+}
+
+void test_in (char *bd, int xd, char *bs, int xs)
+{
+ *(long long *)(bd + xd) = *(long long *)(bs + xs + 4093);
+}
+
+void test_out (char *bd, int xd, char *bs, int xs)
+{
+ *(long long *)(bd + xd + 4093) = *(long long *)(bs + xs);
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030702-1.c b/gcc/testsuite/gcc.dg/20030702-1.c
new file mode 100644
index 00000000000..70dad2eb8a9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030702-1.c
@@ -0,0 +1,10 @@
+/* This tests whether REG_ALWAYS_RETURN notes are handled
+ correctly in combine. */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fpic -fprofile-arcs" } */
+
+void test (void)
+{
+ fork ();
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030708-1.c b/gcc/testsuite/gcc.dg/20030708-1.c
new file mode 100644
index 00000000000..b9786418ed9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030708-1.c
@@ -0,0 +1,14 @@
+/* PR c/11420 */
+/* { dg-do link } */
+/* { dg-options "-O2 -fpic" } */
+
+void (* volatile fn) (void);
+static void foo (void)
+{
+}
+
+int main (void)
+{
+ fn = foo;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20030711-1.c b/gcc/testsuite/gcc.dg/20030711-1.c
new file mode 100644
index 00000000000..25f515cbe50
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030711-1.c
@@ -0,0 +1,25 @@
+/* Test whether strncmp has not been "optimized" into memcmp
+ nor any code with memcmp semantics. */
+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* } } */
+/* { dg-options "-O2" } */
+#include <sys/mman.h>
+#include <stdlib.h>
+
+void __attribute__((noinline)) test (const char *p)
+{
+ if (__builtin_strncmp (p, "abcdefghijklmnopq", 17) == 0)
+ abort ();
+}
+
+int main (void)
+{
+ char *p = mmap (NULL, 131072, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (p == MAP_FAILED)
+ return 0;
+ if (munmap (p + 65536, 65536) < 0)
+ return 0;
+ __builtin_memcpy (p + 65536 - 5, "abcd", 5);
+ test (p + 65536 - 5);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20030717-1.c b/gcc/testsuite/gcc.dg/20030717-1.c
new file mode 100644
index 00000000000..6a7f6de6f44
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030717-1.c
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+
+int zero (void)
+{
+ return 0;
+}
+
+int one (void)
+{
+ return 1;
+}
+
+int main (void)
+{
+ int i = 1;
+ int r = (i ? one : zero)();
+ if (r != 1)
+ abort();
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/20030721-1.c b/gcc/testsuite/gcc.dg/20030721-1.c
new file mode 100644
index 00000000000..5e8ed0b434a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030721-1.c
@@ -0,0 +1,41 @@
+/* { dg-options "-O2" } */
+/* PR optimization/11536 */
+/* Origin: samal@kam.mff.cuni.cz <samal@kam.mff.cuni.cz> */
+/* Testcase by Andrew Pinski <pinskia@physics.uc.edu> */
+
+/* Verify that the loop optimizer doesn't use moving targets
+ to calculate the number of iterations of a loop. */
+
+extern void abort(void);
+
+void foo(int) __attribute__((__noinline__));
+
+void foo(int i)
+{
+ abort();
+}
+
+int main()
+{
+ int i;
+ int first= 0;
+ int last= 0;
+
+ while (last<3) {
+ last = first;
+
+ while (first<=last) {
+ first++;
+
+ for (i=0;i<3;i++)
+ last++;
+
+ if (last>10)
+ return 0;
+ }
+
+ foo(first);
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/20030815-1.c b/gcc/testsuite/gcc.dg/20030815-1.c
new file mode 100644
index 00000000000..fe1e7b49a58
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030815-1.c
@@ -0,0 +1,26 @@
+/* Test completion of incomplete types.
+ There used to be a bug where some types from incomplete
+ list were accidentally lost. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+typedef struct a A[1];
+typedef struct b B[1];
+typedef struct c C[1];
+typedef struct d D[1];
+typedef struct a E;
+typedef struct b F;
+typedef struct c G;
+typedef struct d H;
+struct a { int a; };
+struct c { int c; };
+struct d { int d; };
+struct b { int b; };
+int sa = sizeof (A);
+int sb = sizeof (B);
+int sc = sizeof (C);
+int sd = sizeof (D);
+int se = sizeof (E);
+int sf = sizeof (F);
+int sg = sizeof (G);
+int sh = sizeof (H);
diff --git a/gcc/testsuite/gcc.dg/20030926-1.c b/gcc/testsuite/gcc.dg/20030926-1.c
new file mode 100644
index 00000000000..085cb9b4da1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030926-1.c
@@ -0,0 +1,14 @@
+/* PR optimization/11741 */
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -minline-all-stringops -march=pentium4" } */
+
+void
+foo (char *p)
+{
+ for (;;)
+ {
+ memcpy (p, p + 1, strlen (p));
+ p++;
+ }
+}
+
diff --git a/gcc/testsuite/gcc.dg/20031002-1.c b/gcc/testsuite/gcc.dg/20031002-1.c
new file mode 100644
index 00000000000..57a31ed7f85
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031002-1.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+void generic_sendmsg (char *fmt, ...)
+{
+ __builtin_next_arg(fmt);
+}
+
+void generic_sendstat()
+{
+ double t;
+
+ generic_sendmsg("F %3.2f", t);
+}
diff --git a/gcc/testsuite/gcc.dg/20031009-1.c b/gcc/testsuite/gcc.dg/20031009-1.c
new file mode 100644
index 00000000000..696d574daf9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031009-1.c
@@ -0,0 +1,19 @@
+/* PR optimization/12510 */
+/* Origin: Lars Skovlund <lskovlun@image.dk> */
+/* Reduced testcase by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+
+/* Verify that one splitting pass is not missing on x86 at -O1 */
+
+/* { dg-do compile } */
+/* { dg-options "-O -mcpu=i686" { target i?86-*-* } } */
+
+extern foo(double);
+
+void bar(double x, double y)
+{
+ foo (x);
+ if (y) x = y ? 0 : 1/y;
+ else if (y) x = y < 1 ? 1 : y;
+ else x = 1/y < 1 ? 1 : x;
+ foo (x);
+}
diff --git a/gcc/testsuite/gcc.dg/20031108-1.c b/gcc/testsuite/gcc.dg/20031108-1.c
new file mode 100644
index 00000000000..00bf11c3b28
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031108-1.c
@@ -0,0 +1,35 @@
+/* PR optimization/10467 */
+/* { dg-do compile { target arm*-*-* xscale*-*-* strongarm*-*-* } } */
+/* { dg-options "-O2 -mthumb" } */
+
+typedef enum {Ident_1} Enumeration;
+
+typedef struct record
+{
+ struct record *Ptr_Comp;
+ Enumeration Discr;
+ union {
+ struct {
+ Enumeration Enum_Comp;
+ int Int_Comp;
+ char Str_Comp [31];
+ } var_1;
+ } variant;
+} *Rec_Pointer;
+
+Rec_Pointer Ptr_Glob;
+
+Proc_1 (Ptr_Val_Par)
+ Rec_Pointer Ptr_Val_Par;
+{
+ Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp;
+
+ *Ptr_Val_Par->Ptr_Comp = *Ptr_Glob;
+
+ if (Next_Record->Discr == Ident_1)
+ {
+ Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
+ &Next_Record->variant.var_1.Int_Comp);
+ }
+}
+
diff --git a/gcc/testsuite/gcc.dg/20031201-2.c b/gcc/testsuite/gcc.dg/20031201-2.c
new file mode 100644
index 00000000000..c32b5ebd2e2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031201-2.c
@@ -0,0 +1,41 @@
+/* PR optimization/11634 */
+
+/* The following code used to ICE in verify_local_live_at_start on
+ PA when compiled with -O2. The cause was that split_all_insns was
+ not updating liveness information when deleting no-op moves that
+ had REG_UNUSED notes. */
+
+/* { dg-do compile { target hppa*-*-* } } */
+/* { dg-options "-O2" } */
+
+void *f(void *s);
+void H5T_conv_vlen (unsigned long long nelmts, unsigned char *bg_ptr)
+{
+ long long seq_len;
+ unsigned long long bg_seq_len = 0;
+ unsigned src_base_size, dst_base_size;
+ void *tmp_buf = 0;
+ unsigned tmp_buf_size = 0;
+ unsigned long long elmtno;
+ for (elmtno = 0; elmtno < nelmts; elmtno++)
+ {
+ unsigned char *tmp = bg_ptr;
+ bg_seq_len = *tmp;
+ if (bg_seq_len > 0
+ && tmp_buf_size <
+ (unsigned) (bg_seq_len *
+ (src_base_size > dst_base_size
+ ? src_base_size
+ : dst_base_size)))
+ {
+ tmp_buf_size =
+ (unsigned) (bg_seq_len *
+ (src_base_size > dst_base_size
+ ? src_base_size
+ : dst_base_size));
+ }
+ if (bg_seq_len < seq_len)
+ f ((unsigned char *) tmp_buf + dst_base_size * bg_seq_len);
+ }
+}
+
diff --git a/gcc/testsuite/gcc.dg/20031202-1.c b/gcc/testsuite/gcc.dg/20031202-1.c
new file mode 100644
index 00000000000..8edfb3fb2be
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20031202-1.c
@@ -0,0 +1,44 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+/* { dg-options "-O2 -mcpu=i686" { target i?86-*-* } } */
+
+extern void abort (void);
+extern void exit (int);
+
+struct A { char p[6]; } __attribute__((packed));
+struct B {
+ struct A a;
+ void * const b;
+ struct A const * const c;
+ struct A const *d;
+};
+
+char v;
+
+int __attribute__((noinline))
+foo (struct B *b)
+{
+ int i;
+ for (i = 0; i < 6; ++i)
+ if (b->a.p[i])
+ abort ();
+ if (b->b != &v || b->c || b->d)
+ abort ();
+ return 12;
+}
+
+int __attribute__((noinline))
+bar (void *x)
+{
+ __asm __volatile ("" : "=r" (x) : "0" (x));
+ struct B y = { .b = x, .c = (void *) 0 };
+ return foo (&y) + 1;
+}
+
+int
+main (void)
+{
+ if (bar (&v) != 13)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/20040112-1.c b/gcc/testsuite/gcc.dg/20040112-1.c
new file mode 100644
index 00000000000..72ccad2a3a3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040112-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "testb" } } */
+void
+ftn (char *sp)
+{
+ char status;
+
+ while (1)
+ {
+ *sp = 0xE8;
+ status = *(volatile char *) sp;
+ if (status & 0x80)
+ break;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/20040127-1.c b/gcc/testsuite/gcc.dg/20040127-1.c
new file mode 100644
index 00000000000..0ea6062a5a9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040127-1.c
@@ -0,0 +1,24 @@
+/* PR target/10904 */
+/* Origin: <kminola@eng.umd.edu> */
+
+/* Verify that the register allocator correctly aligns
+ floating-point registers on SPARC64. */
+
+/* { dg-do assemble } */
+/* { dg-options "-O2" } */
+
+extern int foo1();
+extern int foo2();
+
+void foo(int n, int b)
+{
+ int i, a;
+
+ foo1();
+
+ a = (long)(b * ((double) 0.1));
+
+ for (i=0; i < n; i++) {
+ foo2(a);
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/20040127-2.c b/gcc/testsuite/gcc.dg/20040127-2.c
new file mode 100644
index 00000000000..6e56dd8fc10
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040127-2.c
@@ -0,0 +1,32 @@
+/* PR target/13058 */
+/* Origin: Lloyd Parkes <lloyd@must-have-coffee.gen.nz> */
+/* Reduced testcase by Falk Hueffner <falk@debian.org> */
+
+/* Verify that the register allocator correctly aligns
+ floating-point registers on SPARC64. */
+
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+typedef struct { int ThumbnailSize; } ImageInfo_t;
+
+double ConvertAnyFormat(void)
+{
+ return 0;
+}
+
+void ProcessExifDir(ImageInfo_t *ImageInfoP, int NumDirEntries)
+{
+ unsigned int ThumbnailSize;
+
+ for (; NumDirEntries;) {
+ Get16u();
+ switch (NumDirEntries) {
+ case 0x0201:
+ case 0x0202:
+ ThumbnailSize = ConvertAnyFormat();
+ }
+ }
+
+ ImageInfoP->ThumbnailSize = ThumbnailSize;
+}
diff --git a/gcc/testsuite/gcc.dg/20040306-1.c b/gcc/testsuite/gcc.dg/20040306-1.c
new file mode 100644
index 00000000000..903d20ac256
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040306-1.c
@@ -0,0 +1,22 @@
+/* This used to ICE due to a reload bug on s390*. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+
+typedef struct test
+{
+ unsigned short pad;
+ unsigned char type[6];
+} t;
+
+extern void set (t *a, t *b, t *c, t *d, t *e, t *f, t *g, t *h,
+ t *i, t *j, t *k, t *l, t *m, t *n, t *o, t *p);
+extern void use (t a, t b, t c, t d, t e, t f, t g, t h,
+ t i, t j, t k, t l, t m, t n, t o, t p);
+void test (void)
+{
+ t a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p;
+ set (&a, &b, &c, &d, &e, &f, &g, &h, &i, &j, &k, &l, &m, &n, &o, &p);
+ use (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
+}
diff --git a/gcc/testsuite/gcc.dg/20040311-2.c b/gcc/testsuite/gcc.dg/20040311-2.c
new file mode 100644
index 00000000000..0d0d5da3259
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040311-2.c
@@ -0,0 +1,36 @@
+/* PR target/14533 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fpic" } */
+
+void bar (char *, int);
+
+extern char b[];
+extern int d, e;
+struct S
+{
+ struct S *m;
+ int n;
+} **g;
+
+void
+foo (int x, char *y)
+{
+ struct S *h;
+ int k = 1, l;
+
+again:
+ for (h = *g; h != (struct S *) g; h = h->m)
+ {
+ if (k == 0 && h->n & 0x100000);
+ l = y - b;
+ if (e)
+ bar (b, l);
+ if (d)
+ bar (b, l);
+ }
+ if (k)
+ {
+ k = 0;
+ goto again;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/20040322-1.c b/gcc/testsuite/gcc.dg/20040322-1.c
new file mode 100644
index 00000000000..af5e0b4820c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20040322-1.c
@@ -0,0 +1,4 @@
+/* PR c/14069 */
+/* { dg-do compile } */
+struct S { int a; char b[]; char *c; }; /* { dg-error "error" "flexible array member not" } */
+struct S s = { .b = "foo", .c = .b }; /* { dg-error "error" "parse error before" } */
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-6.c b/gcc/testsuite/gcc.dg/Wunreachable-6.c
new file mode 100644
index 00000000000..77b6228fc86
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wunreachable-6.c
@@ -0,0 +1,18 @@
+/* PR c/11370 */
+/* { dg-do compile } */
+/* { dg-options "-Wunreachable-code" } */
+
+int main(int argc, char *argv[])
+{
+ if (argc != 1)
+ exit(1);
+
+ {
+ int ix; /* { dg-bogus "will never be executed" } */
+ ix = printf("hello\n");
+ printf("%d\n", ix);
+ }
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/Wunreachable-7.c b/gcc/testsuite/gcc.dg/Wunreachable-7.c
new file mode 100644
index 00000000000..a19c94a1760
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wunreachable-7.c
@@ -0,0 +1,18 @@
+/* PR c/11370 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wunreachable-code" } */
+
+int main(int argc, char *argv[])
+{
+ if (argc != 1)
+ exit(1);
+
+ {
+ int ix; /* { dg-bogus "will never be executed" } */
+ ix = printf("hello\n");
+ printf("%d\n", ix);
+ }
+
+ return 0;
+}
+
diff --git a/gcc/testsuite/gcc.dg/altivec-10.c b/gcc/testsuite/gcc.dg/altivec-10.c
new file mode 100644
index 00000000000..8d9223f3be4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-10.c
@@ -0,0 +1,86 @@
+/* { dg-do compile { target powerpc*-*-* } } */
+/* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
+
+#include <altivec.h>
+#include <signal.h>
+
+void
+sig_ill_handler (int sig)
+{
+ exit(0);
+}
+
+typedef union
+{
+ float f[4];
+ unsigned int i[4];
+ vector float v;
+} vec_float_t;
+
+void
+check_vec_all_num ()
+{
+ vec_float_t a, b, c;
+
+ a.i[0] = 0xfffa5a5a;
+ a.f[1] = 1.0;
+ a.f[2] = 1.0;
+ a.f[3] = 1.0;
+
+ b.f[0] = 1.0;
+ b.f[1] = 1.0;
+ b.f[2] = 1.0;
+ b.f[3] = 1.0;
+
+ c.i[0] = 0xfffa5a5a;
+ c.i[1] = 0xfffa5a5a;
+ c.i[2] = 0xfffa5a5a;
+ c.i[3] = 0xfffa5a5a;
+
+ if (vec_all_numeric (a.v))
+ abort ();
+
+ if (vec_all_nan (a.v))
+ abort ();
+
+ if (!vec_all_numeric (b.v))
+ abort ();
+
+ if (vec_all_nan (b.v))
+ abort ();
+
+ if (vec_all_numeric (c.v))
+ abort ();
+
+ if (!vec_all_nan (c.v))
+ abort ();
+
+}
+
+void
+check_cmple()
+{
+ vector float a = {1.0, 2.0, 3.0, 4.0};
+ vector float b = {1.0, 3.0, 2.0, 5.0};
+ vector signed int aux;
+ vector signed int le = {-1, -1, 0, -1};
+
+ aux = vec_cmple (a, b);
+
+ if (!vec_all_eq (aux, le))
+ abort ();
+}
+
+
+int
+main()
+{
+ /* Exit on systems without altivec. */
+ signal (SIGILL, sig_ill_handler);
+ asm volatile ("vor 0,0,0");
+ signal (SIGILL, SIG_DFL);
+
+ check_cmple ();
+ check_vec_all_num ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/asm-7.c b/gcc/testsuite/gcc.dg/asm-7.c
new file mode 100644
index 00000000000..42f40e719f9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asm-7.c
@@ -0,0 +1,28 @@
+/* Gcc 3.3.1 deprecates memory inputs of non-lvalues. */
+/* { dg-do compile } */
+
+void test(void)
+{
+ register int r;
+ register int r2;
+ int i;
+ static int m;
+ int *p;
+
+ __asm__ ("" : : "m"(r)); /* { dg-warning "address of register" } */
+ __asm__ ("" : : "m"(i));
+ __asm__ ("" : : "m"(m));
+ __asm__ ("" : : "m"(0)); /* { dg-warning "input without lvalue" } */
+ __asm__ ("" : : "m"(i+1)); /* { dg-warning "input without lvalue" } */
+ __asm__ ("" : : "m"(*p++));
+
+ __asm__ ("" : : "g"(r));
+ __asm__ ("" : : "g"(i));
+ __asm__ ("" : : "g"(m));
+ __asm__ ("" : : "g"(0));
+ __asm__ ("" : : "g"(i+1));
+
+ __asm__ ("" : "=m"(r2)); /* { dg-warning "address of register" } */
+ __asm__ ("" : "=m"(i));
+ __asm__ ("" : "=m"(m));
+}
diff --git a/gcc/testsuite/gcc.dg/asm-names.c b/gcc/testsuite/gcc.dg/asm-names.c
index dbfa7925427..f5e44e65f6c 100644
--- a/gcc/testsuite/gcc.dg/asm-names.c
+++ b/gcc/testsuite/gcc.dg/asm-names.c
@@ -2,26 +2,15 @@
to have an underscore prefixed, even if normal symbols are.
Problem reported by Krister Walfridsson <cato@df.lth.se>. */
-/* { dg-do link } */
+/* { dg-do compile } */
/* { dg-options "-fleading-underscore" } */
+/* { dg-final { scan-assembler-not "____frob14" } } */
extern void frobnicate (void) asm ("___frob14"); /* three underscores */
-void __frob14 (void) {} /* two underscores */
-
int
main (void)
{
frobnicate ();
return 0;
}
-
-/* In case built where the runtime expects no leading underscore on
- main(). */
-extern int xmain (void) asm ("main");
-
-int xmain (void) { return main(); }
-
-/* In case built where the runtime calls __main. */
-extern int ymain (void) asm ("___main");
-int ymain (void) { return main(); }
diff --git a/gcc/testsuite/gcc.dg/asmreg-1.c b/gcc/testsuite/gcc.dg/asmreg-1.c
new file mode 100644
index 00000000000..a779766d4a6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asmreg-1.c
@@ -0,0 +1,73 @@
+/* { dg-do compile { target cris-*-* } } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "\\\.ifnc \\\$r9-\\\$r10-\\\$r11-\\\$r12" } } */
+
+/* Sanity check for asm register operands in syscall failed for
+ cris-axis-linux-gnu due to regmove bug.
+ Hans-Peter Nilsson <hp@axis.com>. */
+
+extern void lseek64 (int, long long, int);
+extern int *__errno_location (void);
+struct dirent64
+{
+ long long d_off;
+ unsigned short int d_reclen;
+ char d_name[256];
+};
+struct kernel_dirent64
+{
+ long long d_off;
+ unsigned short d_reclen;
+ char d_name[256];
+};
+
+static inline int __attribute__ ((__always_inline__))
+__syscall_getdents64 (int fd, unsigned char * dirp, unsigned count)
+{
+ register unsigned long __sys_res asm ("r10");
+ register unsigned long __r10 __asm__ ("r10") = (unsigned long) fd;
+ register unsigned long __r11 __asm__ ("r11") = (unsigned long) dirp;
+ register unsigned long __r12 __asm__ ("r12") = (unsigned long) count;
+ register unsigned long __callno asm ("r9") = (220);
+ asm volatile (".ifnc %1-%0-%3-%4,$r9-$r10-$r11-$r12\n\t"
+ ".err\n\t"
+ ".endif\n\t"
+ "break 13"
+ : "=r" (__sys_res)
+ : "r" (__callno), "0" (__r10), "r" (__r11), "r" (__r12)
+ : "memory");
+ if (__sys_res >= (unsigned long) -4096)
+ {
+ (*__errno_location ()) = - __sys_res;
+ __sys_res = -1;
+ }
+ return __sys_res;
+}
+
+int
+__getdents64 (int fd, char *buf, unsigned nbytes)
+{
+ struct dirent64 *dp;
+ long long last_offset = -1;
+ int retval;
+ struct kernel_dirent64 *skdp, *kdp;
+ dp = (struct dirent64 *) buf;
+ skdp = kdp = __builtin_alloca (nbytes);
+ retval = __syscall_getdents64(fd, (char *)kdp, nbytes);
+ if (retval == -1)
+ return -1;
+ while ((char *) kdp < (char *) skdp + retval)
+ {
+ if ((char *) dp > buf + nbytes)
+ {
+ lseek64(fd, last_offset, 0);
+ break;
+ }
+ last_offset = kdp->d_off;
+ __builtin_memcpy (dp->d_name, kdp->d_name, kdp->d_reclen - 10);
+ dp = (struct dirent64 *) ((char *) dp + sizeof (*dp));
+ kdp = (struct kernel_dirent64 *) (((char *) kdp) + kdp->d_reclen);
+ }
+
+ return (char *) dp - buf;
+}
diff --git a/gcc/testsuite/gcc.dg/attr-invalid.c b/gcc/testsuite/gcc.dg/attr-invalid.c
index a999c267c3a..9cb64541548 100644
--- a/gcc/testsuite/gcc.dg/attr-invalid.c
+++ b/gcc/testsuite/gcc.dg/attr-invalid.c
@@ -43,7 +43,7 @@ struct ATSYM(struct) {
char dummy ATTR; /* { dg-warning "attribute ignored" "" } */
} ATTR; /* { dg-warning "does not apply to types" "" } */
-int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" "" } */
+int ATSYM(var) ATTR;
int ATSYM(fn_knrarg) (arg)
int arg ATTR; /* { dg-warning "attribute ignored" "" } */
@@ -52,7 +52,7 @@ int ATSYM(fn_knrarg) (arg)
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" "" } */
int ATSYM(fn_vars) (void) {
- static int svar ATTR; /* { dg-warning "attribute ignored" "" } */
+ static int svar ATTR;
auto int lvar ATTR; /* { dg-warning "attribute ignored" "" } */
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/builtin-apply1.c b/gcc/testsuite/gcc.dg/builtin-apply1.c
new file mode 100644
index 00000000000..38b384e7cca
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/builtin-apply1.c
@@ -0,0 +1,9 @@
+/* PR 11184 */
+/* Origin: Dara Hazeghi <dhazeghi@yahoo.com> */
+
+void *
+objc_msg_sendv (char * arg_frame, void (*foo)())
+{
+ return __builtin_apply ( foo, arg_frame, 4);
+}
+
diff --git a/gcc/testsuite/gcc.dg/c90-array-lval-6.c b/gcc/testsuite/gcc.dg/c90-array-lval-6.c
new file mode 100644
index 00000000000..f42ef52bd19
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c90-array-lval-6.c
@@ -0,0 +1,16 @@
+/* PR c/12446 */
+/* Origin: Keith Thompson <kst@cts.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+
+struct s { char c[1]; };
+
+extern struct s foo(void);
+
+void bar(void)
+{
+ char *ptr = foo().c; /* { dg-bogus "warning" "warning in place of error" } */
+}
+/* { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } 14 } */
diff --git a/gcc/testsuite/gcc.dg/c90-restrict-1.c b/gcc/testsuite/gcc.dg/c90-restrict-1.c
index 17af58b4b58..60d91b830a1 100644
--- a/gcc/testsuite/gcc.dg/c90-restrict-1.c
+++ b/gcc/testsuite/gcc.dg/c90-restrict-1.c
@@ -4,4 +4,4 @@
/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
char *restrict foo; /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "parse error|no type" "restrict not in C90" { target *-*-* } 6 } */
+/* { dg-error "(parse|syntax) error|no type" "restrict not in C90" { target *-*-* } 6 } */
diff --git a/gcc/testsuite/gcc.dg/c99-array-lval-6.c b/gcc/testsuite/gcc.dg/c99-array-lval-6.c
new file mode 100644
index 00000000000..426b3c75c90
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c99-array-lval-6.c
@@ -0,0 +1,15 @@
+/* PR c/12446 */
+/* Origin: Keith Thompson <kst@cts.com> */
+
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+
+
+struct s { char c[1]; };
+
+extern struct s foo(void);
+
+void bar(void)
+{
+ char *ptr = foo().c; /* { dg-bogus "non-lvalue" "array not decaying to lvalue" } */
+}
diff --git a/gcc/testsuite/gcc.dg/c99-bool-1.c b/gcc/testsuite/gcc.dg/c99-bool-1.c
index 1037eb55173..710219620b7 100644
--- a/gcc/testsuite/gcc.dg/c99-bool-1.c
+++ b/gcc/testsuite/gcc.dg/c99-bool-1.c
@@ -228,9 +228,7 @@ main (void)
abort ();
if ((u |= 2) != 1)
abort ();
- /* ??? A bit queer, since this gets optimized to ((u = (u != 3)) != 1)
- early in semantic analysis, which then yields the warning below. */
- if ((u ^= 3) != 1) /* { dg-warning "always true due to limited range" } */
+ if ((u ^= 3) != 1)
abort ();
/* Test comma expressions. */
u = 1;
diff --git a/gcc/testsuite/gcc.dg/c99-func-2.c b/gcc/testsuite/gcc.dg/c99-func-2.c
index d6a6f243f91..9dc8b58c673 100644
--- a/gcc/testsuite/gcc.dg/c99-func-2.c
+++ b/gcc/testsuite/gcc.dg/c99-func-2.c
@@ -6,5 +6,5 @@
void
foo (void)
{
- __func__ "foo"; /* { dg-error "parse error" "before string constant" } */
+ __func__ "foo"; /* { dg-error "(parse|syntax) error" "before string constant" } */
}
diff --git a/gcc/testsuite/gcc.dg/cleanup-1.c b/gcc/testsuite/gcc.dg/cleanup-1.c
new file mode 100644
index 00000000000..e5853c4baa8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-1.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-options "-Wall" } */
+/* Validate expected warnings and errors. */
+
+#define U __attribute__((unused))
+#define C(x) __attribute__((cleanup(x)))
+
+static int f1(void *x U) { return 0; }
+static void f2() { }
+static void f3(void) { }
+static void f4(void *x U) { }
+static void f5(int *x U) { }
+static void f6(double *x U) { }
+static void f7(const int *x U) { }
+static void f8(const int *x U, int y U) { }
+static void f9(int x U) { }
+
+void test(void)
+{
+ int o1 C(f1);
+ int o2 C(f2);
+ int o3 C(f3); /* { dg-error "too many arguments" } */
+ int o4 C(f4);
+ int o5 C(f5);
+ int o6 C(f6); /* { dg-warning "incompatible pointer type" } */
+ int o7 C(f7);
+ int o8 C(f8); /* { dg-error "too few arguments" } */
+ int o9 C(f9); /* { dg-warning "from pointer without a cast" } */
+ int o10 U C(undef); /* { dg-error "not a function" } */
+ int o11 U C(o1); /* { dg-error "not a function" } */
+ int o12 U C("f1"); /* { dg-error "not an identifier" } */
+ static int o13 U C(f1); /* { dg-warning "attribute ignored" } */
+}
+
+int o14 C(f1); /* { dg-warning "attribute ignored" } */
+void t15(int o U C(f1)) {} /* { dg-warning "attribute ignored" } */
diff --git a/gcc/testsuite/gcc.dg/cleanup-2.c b/gcc/testsuite/gcc.dg/cleanup-2.c
new file mode 100644
index 00000000000..2c798023ccb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-2.c
@@ -0,0 +1,22 @@
+/* { dg-do run } */
+/* { dg-options "" } */
+/* Verify that cleanup works in the most basic of ways. */
+
+extern void exit(int);
+extern void abort(void);
+
+static void handler(void *p __attribute__((unused)))
+{
+ exit (0);
+}
+
+static void doit(void)
+{
+ int x __attribute__((cleanup (handler)));
+}
+
+int main()
+{
+ doit ();
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/cleanup-3.c b/gcc/testsuite/gcc.dg/cleanup-3.c
new file mode 100644
index 00000000000..b5b01fd5905
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-3.c
@@ -0,0 +1,45 @@
+/* { dg-do run } */
+/* { dg-options "" } */
+/* Verify that the cleanup handler receives the proper contents
+ of the variable. */
+
+extern void exit(int);
+extern void abort(void);
+
+static int expected;
+
+static void
+handler(int *p)
+{
+ if (*p != expected)
+ abort ();
+}
+
+static void __attribute__((noinline))
+bar(void)
+{
+}
+
+static void doit(int x, int y)
+{
+ int r __attribute__((cleanup (handler)));
+ if (x < y)
+ {
+ r = 0;
+ return;
+ }
+
+ bar();
+ r = x + y;
+}
+
+int main()
+{
+ expected = 0;
+ doit (1, 2);
+
+ expected = 3;
+ doit (2, 1);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/cleanup-4.c b/gcc/testsuite/gcc.dg/cleanup-4.c
new file mode 100644
index 00000000000..a5487553d2b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-4.c
@@ -0,0 +1,39 @@
+/* { dg-do run } */
+/* { dg-options "" } */
+/* Verify cleanup execution on non-trivial exit from a block. */
+
+extern void exit(int);
+extern void abort(void);
+
+static int counter;
+
+static void
+handler(int *p)
+{
+ counter += *p;
+}
+
+static void __attribute__((noinline))
+bar(void)
+{
+}
+
+static void doit(int n, int n2)
+{
+ int i;
+ for (i = 0; i < n; ++i)
+ {
+ int dummy __attribute__((cleanup (handler))) = i;
+ if (i == n2)
+ break;
+ bar();
+ }
+}
+
+int main()
+{
+ doit (10, 6);
+ if (counter != 0 + 1 + 2 + 3 + 4 + 5 + 6)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/cleanup-5.c b/gcc/testsuite/gcc.dg/cleanup-5.c
new file mode 100644
index 00000000000..4b8468aa733
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-5.c
@@ -0,0 +1,50 @@
+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* mips*-*-linux* } } */
+/* { dg-options "-fexceptions" } */
+/* Verify that cleanups work with exception handling. */
+
+#include <unwind.h>
+#include <stdlib.h>
+
+static _Unwind_Reason_Code
+force_unwind_stop (int version, _Unwind_Action actions,
+ _Unwind_Exception_Class exc_class,
+ struct _Unwind_Exception *exc_obj,
+ struct _Unwind_Context *context,
+ void *stop_parameter)
+{
+ if (actions & _UA_END_OF_STACK)
+ abort ();
+ return _URC_NO_REASON;
+}
+
+static void force_unwind ()
+{
+ struct _Unwind_Exception *exc = malloc (sizeof (*exc));
+ exc->exception_class = 0;
+ exc->exception_cleanup = 0;
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
+#else
+ _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
+#endif
+
+ abort ();
+}
+
+static void handler (void *p __attribute__((unused)))
+{
+ exit (0);
+}
+
+static void doit ()
+{
+ char dummy __attribute__((cleanup (handler)));
+ force_unwind ();
+}
+
+int main()
+{
+ doit ();
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/cleanup-6.c b/gcc/testsuite/gcc.dg/cleanup-6.c
new file mode 100644
index 00000000000..4e3d53893af
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-6.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+/* Verify that a cleanup marked "inline" gets inlined. */
+
+static inline void xyzzy(void *p __attribute__((unused)))
+{
+}
+
+void doit(void)
+{
+ int x __attribute__((cleanup (xyzzy)));
+}
+
+/* { dg-final { scan-assembler-not "xyzzy" } } */
diff --git a/gcc/testsuite/gcc.dg/cleanup-7.c b/gcc/testsuite/gcc.dg/cleanup-7.c
new file mode 100644
index 00000000000..eae3d52980c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cleanup-7.c
@@ -0,0 +1,22 @@
+/* { dg-do run } */
+/* { dg-options "" } */
+/* Verify that the search for function happens in the proper scope. */
+
+extern void exit(int);
+extern void abort(void);
+
+int main()
+{
+ auto void xyzzy(void *p __attribute__((unused)))
+ {
+ exit (0);
+ }
+
+ auto void doit ()
+ {
+ int x __attribute__((cleanup (xyzzy)));
+ }
+
+ doit ();
+ abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/compare7.c b/gcc/testsuite/gcc.dg/compare7.c
new file mode 100644
index 00000000000..e2fbc04bfc2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/compare7.c
@@ -0,0 +1,10 @@
+/* -Wall is not supposed to trigger -Wsign-compare for C. PR 10604.
+ See also g++.dg/warn/compare1.C. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wall" } */
+
+int f(unsigned a, int b)
+{
+ return a < b; /* { dg-bogus "signed and unsigned" } */
+}
diff --git a/gcc/testsuite/gcc.dg/const-1.c b/gcc/testsuite/gcc.dg/const-1.c
new file mode 100644
index 00000000000..40678c6431c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/const-1.c
@@ -0,0 +1,56 @@
+/* PR optimization/13472 */
+/* Origin: <p.van-hoof@qub.ac.uk> */
+
+/* Verify that the reload pass doesn't emit a store
+ to the .rodata section. */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -pedantic -march=i686" { target i686-*-* } } */
+
+
+#define MAX2(a,b) (((a)>(b)) ? (a) : (b))
+
+const int q=0, p=0;
+
+typedef struct {
+ float a;
+ float b;
+} F;
+
+F **E, *D, C = { 2.f, 1.f };
+
+void G(float);
+void H(void);
+
+int main(void)
+{
+ D = &C;
+ E = &D;
+
+ H();
+ return 0;
+}
+
+void H(void)
+{
+ int i, l=1;
+ float b, o;
+
+ if( l )
+ {
+ b = 0.3f * MAX2(0.f,E[q][p].a - E[q][p].b);
+ o = E[q][p].a;
+ if( o > 1.e-36f )
+ G(o);
+ E[q][p].a *= b;
+ }
+ else
+ b = 1.f;
+ for( i=q; i<2; ++i )
+ ;
+}
+
+void G(float o)
+{
+}
+
diff --git a/gcc/testsuite/gcc.dg/cpp/19990413-1.c b/gcc/testsuite/gcc.dg/cpp/19990413-1.c
index 9abddb942fd..22fc5db2218 100644
--- a/gcc/testsuite/gcc.dg/cpp/19990413-1.c
+++ b/gcc/testsuite/gcc.dg/cpp/19990413-1.c
@@ -9,5 +9,5 @@ func(void)
{
FOO(i
= 4)
- else; /* { dg-error "parse error" "error on this line" { target *-*-* } { 12 } } */
+ else; /* { dg-error "(parse|syntax) error" "error on this line" { target *-*-* } { 12 } } */
}
diff --git a/gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c b/gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
new file mode 100644
index 00000000000..4f6a04be45a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
@@ -0,0 +1,29 @@
+/* Copyright 2003 Free Software Foundation, Inc. */
+
+/* { dg-do compile } */
+/* { dg-options "-Wunknown-pragmas" } */
+
+/* Make sure we get warnings in the expected lines. */
+
+#pragma unknown1 /* { dg-warning "unknown1" "unknown1" } */
+
+#define COMMA ,
+#define FOO(x) x
+#define BAR(x) _Pragma("unknown_before") x
+#define BAZ(x) x _Pragma("unknown_after")
+
+int _Pragma("unknown2") bar1; /* { dg-warning "unknown2" "unknown2" } */
+
+FOO(int _Pragma("unknown3") bar2); /* { dg-warning "unknown3" "unknown3" } */
+
+int BAR(bar3); /* { dg-warning "unknown_before" "unknown_before 1" } */
+
+BAR(int bar4); /* { dg-warning "unknown_before" "unknown_before 2" } */
+
+int BAZ(bar5); /* { dg-warning "unknown_after" "unknown_after 1" } */
+
+int BAZ(bar6;) /* { dg-warning "unknown_after" "unknown_after 2" } */
+
+FOO(int bar7; _Pragma("unknown4")) /* { dg-warning "unknown4" "unknown4" } */
+
+#pragma unknown5 /* { dg-warning "unknown5" "unknown5" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/Wunused.c b/gcc/testsuite/gcc.dg/cpp/Wunused.c
index aa099ee79c8..ac363ad04b8 100644
--- a/gcc/testsuite/gcc.dg/cpp/Wunused.c
+++ b/gcc/testsuite/gcc.dg/cpp/Wunused.c
@@ -1,7 +1,8 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc. */
+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
-/* { dg-options -Wunused-macros } */
+/* Duplicate command line options should not warn. */
+/* { dg-options "-Wunused-macros -Dfoo -Dfoo" } */
/* Test everything related to -Wunused-macros.
diff --git a/gcc/testsuite/gcc.dg/cpp/digraph2.c b/gcc/testsuite/gcc.dg/cpp/digraph2.c
index e67ec53878b..cac4e256b0a 100644
--- a/gcc/testsuite/gcc.dg/cpp/digraph2.c
+++ b/gcc/testsuite/gcc.dg/cpp/digraph2.c
@@ -9,7 +9,7 @@
int main (int argc, char *argv[])
{
return 0;
-%> /* { dg-error "parse error" } */
+%> /* { dg-error "(parse|syntax) error" } */
/* Place this after main () so we get to test both the compiler above
and the preprocessor below. */
diff --git a/gcc/testsuite/gcc.dg/cpp/direct2.c b/gcc/testsuite/gcc.dg/cpp/direct2.c
index d6dc1088c37..52d1e31f45f 100644
--- a/gcc/testsuite/gcc.dg/cpp/direct2.c
+++ b/gcc/testsuite/gcc.dg/cpp/direct2.c
@@ -33,5 +33,5 @@ void f ()
#define slashstar /##*
#define starslash *##/
-slashstar starslash /* { dg-error "parse error" "not a comment" } */
+slashstar starslash /* { dg-error "(parse|syntax) error" "not a comment" } */
/* { dg-warning "does not give" "paste warning(s)" { target *-*-* } 36 } */
diff --git a/gcc/testsuite/gcc.dg/cpp/inc/foo.h b/gcc/testsuite/gcc.dg/cpp/inc/foo.h
new file mode 100644
index 00000000000..ec770476c21
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/inc/foo.h
@@ -0,0 +1 @@
+extern int a;
diff --git a/gcc/testsuite/gcc.dg/cpp/include3.c b/gcc/testsuite/gcc.dg/cpp/include3.c
new file mode 100644
index 00000000000..8bea2b78ee8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/include3.c
@@ -0,0 +1,7 @@
+/* Unpatched, this file would include "inc/ foo.h" (note the space) */
+
+#define PREINC_XSTR(str) #str
+#define PREINC_STR(str) PREINC_XSTR(str)
+#define COMP_INC(comp,file) PREINC_STR(comp/file)
+
+#include COMP_INC(inc, foo.h)
diff --git a/gcc/testsuite/gcc.dg/cpp/paste4.c b/gcc/testsuite/gcc.dg/cpp/paste4.c
index 2215b34a7ad..4e575c2954e 100644
--- a/gcc/testsuite/gcc.dg/cpp/paste4.c
+++ b/gcc/testsuite/gcc.dg/cpp/paste4.c
@@ -11,6 +11,6 @@
int main ()
{
- double d = glue (1.0e, +1); /* { dg-error "exponent|parse error" } */
+ double d = glue (1.0e, +1); /* { dg-error "exponent|(parse|syntax) error" } */
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/cpp/redef3.c b/gcc/testsuite/gcc.dg/cpp/redef3.c
new file mode 100644
index 00000000000..78ee71e6598
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/redef3.c
@@ -0,0 +1,21 @@
+/* Test for redefining macros with mismatch token count (and the oddity). */
+
+/* { dg-do preprocess } */
+/* { dg-options "-DC -DD=1 -DE" } */
+
+#define A
+#define A 1
+#define B 2 3
+#define B 2
+#define C 1
+#define D 1 2
+#define E
+
+/* { dg-warning "redefined" "redef A" { target *-*-* } 7 }
+ { dg-warning "redefined" "redef B" { target *-*-* } 9 }
+ { dg-warning "redefined" "redef D" { target *-*-* } 11 }
+ { dg-warning "redefined" "redef E" { target *-*-* } 12 }
+ { dg-warning "previous" "prev def A" { target *-*-* } 6 }
+ { dg-warning "previous" "prev def B" { target *-*-* } 8 }
+ { dg-warning "previous" "prev def D/E" { target *-*-* } 0 }
+*/
diff --git a/gcc/testsuite/gcc.dg/cpp/separate-1.c b/gcc/testsuite/gcc.dg/cpp/separate-1.c
new file mode 100644
index 00000000000..a80e0014929
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/separate-1.c
@@ -0,0 +1,15 @@
+/* Copyright 2003 Free Software Foundation. */
+
+/* { dg-do compile } */
+/* { dg-options "-save-temps" } */
+
+/* Make sure we report errors in the right line, even if separate
+ preprocessing is used. */
+
+#define FOO()
+
+int FOO( /* { dg-error "(parse|syntax) error" "error on this line" } */
+ ), bar;
+
+int baz FOO /* { dg-error "(parse|syntax) error" "error on this line" } */
+; /* { dg-warning "no type or storage class" "warning on this line" } */
diff --git a/gcc/testsuite/gcc.dg/cpp/spacing1.c b/gcc/testsuite/gcc.dg/cpp/spacing1.c
index ad1af4e91c7..b7e713ba333 100644
--- a/gcc/testsuite/gcc.dg/cpp/spacing1.c
+++ b/gcc/testsuite/gcc.dg/cpp/spacing1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. */
+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
@@ -10,6 +10,15 @@
Neil Booth, 1 Dec 2000, 23 Sep 2001. */
+/* The actual location of the expansion of a multi-line macro
+ invocation is not defined: we might consider them to be in the same
+ line as the initial token of the invocation, or as the final token
+ of the invocation, or even anything in between. We choose to make
+ it the initial token, such that everything that is in a logical
+ line ends up in a single line after preprocessing.
+
+ Alexandre Oliva, Sept 13, 2003. */
+
#define str(x) #x
#define f(x) x
#define glue(x, y) x ## y
@@ -28,6 +37,8 @@
B Q B Q A Q A:
f
bar
+A
+bad
g "1 2" bam baz
*/
@@ -36,6 +47,8 @@ glue (EMPTY 4, 4) EMPTY;
A(Q) C(Q) D()Q D():
f
bar
+A
+bad
f (g) str
(
1
@@ -49,7 +62,9 @@ f (g) str
{ dg-final { if \{ [grep spacing1.i "B Q B Q A Q A:"] != "" \} \{ } }
{ dg-final { if \{ [grep spacing1.i "f.*bar"] == "" \} \{ } }
{ dg-final { if \{ [grep spacing1.i "^bar"] != "" \} \{ } }
+ { dg-final { if \{ [grep spacing1.i "^A$"] != "" \} \{ } }
+ { dg-final { if \{ [grep spacing1.i "^bad$"] != "" \} \{ } }
{ dg-final { if \{ [grep spacing1.i "g \"1 2\" bam baz"] != "" \} \{ } }
- { dg-final { return \} \} \} \} \} } }
+ { dg-final { return \} \} \} \} \} \} \} } }
{ dg-final { fail "spacing1.c: spacing and new-line preservation" } }
*/
diff --git a/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c b/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c
new file mode 100644
index 00000000000..f60a6ea7865
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c
@@ -0,0 +1,10 @@
+/* Test function like macro. */
+/* Contributed by Devang Patel <dpatel@apple.com> */
+
+/* {do-do preprocess } */
+/* { dg-options "-traditional-cpp -E -dD" } */
+int __srget (char *);
+#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
+#define getc(fp) __sgetc(fp)
+#define getchar() getc(stdin)
+
diff --git a/gcc/testsuite/gcc.dg/darwin-abi-1.c b/gcc/testsuite/gcc.dg/darwin-abi-1.c
new file mode 100644
index 00000000000..c7c0288e8bb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/darwin-abi-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-O" } */
+/* { dg-final { scan-assembler "li r3,12345\n\tbl " } } */
+
+/* Check that zero-size structures don't affect parameter passing. */
+
+struct empty { };
+extern void foo (struct empty e, int a);
+void bar (void) {
+ struct empty e;
+ foo (e, 12345);
+}
diff --git a/gcc/testsuite/gcc.dg/darwin-ld-5.c b/gcc/testsuite/gcc.dg/darwin-ld-5.c
index e32f1d9d3ca..0540f92bcbb 100644
--- a/gcc/testsuite/gcc.dg/darwin-ld-5.c
+++ b/gcc/testsuite/gcc.dg/darwin-ld-5.c
@@ -1,7 +1,7 @@
-/* Test Darwin linker option -bundle_loader. */
+/* Test Darwin linker option -dynamic. */
/* Developed by Devang Patel <dpatel@apple.com>. */
-/* { dg-options "-bundle -bundle_loader foo" } */
+/* { dg-options "-dynamic" } */
/* { dg-do link { target *-*-darwin* } } */
int main()
diff --git a/gcc/testsuite/gcc.dg/decl-2.c b/gcc/testsuite/gcc.dg/decl-2.c
new file mode 100644
index 00000000000..44fbc733027
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/decl-2.c
@@ -0,0 +1,10 @@
+/* PR c/7411 */
+/* Contributed by Christian Ehrhardt */
+/* { dg-do compile } */
+
+void foo(void)
+{
+ char c; /* { dg-error "previous declaration" } */
+ int i;
+ int c = i; /* { dg-error "conflicting types" } */
+}
diff --git a/gcc/testsuite/gcc.dg/decl-3.c b/gcc/testsuite/gcc.dg/decl-3.c
new file mode 100644
index 00000000000..b8d00d0203d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/decl-3.c
@@ -0,0 +1,5 @@
+/* PR c/9928 */
+/* { dg-do compile } */
+
+enum { CODES }; /* { dg-error "previous declaration" } */
+enum { CODES }; /* { dg-error "conflicting types" } */
diff --git a/gcc/testsuite/gcc.dg/format/attr-5.c b/gcc/testsuite/gcc.dg/format/attr-5.c
index a4e96344b61..36b11989687 100644
--- a/gcc/testsuite/gcc.dg/format/attr-5.c
+++ b/gcc/testsuite/gcc.dg/format/attr-5.c
@@ -11,7 +11,7 @@ static int scanf(const char *restrict, ...);
/* This sscanf declaration doesn't have variable arguments, so isn't
compatible with a format attribute. */
-extern int sscanf(const char *restrict, const char *restrict, int *);
+extern int sscanf(const char *restrict, const char *restrict, int *); /* { dg-warning "conflict" "conflict" } */
void
foo (const char *s, int *p)
diff --git a/gcc/testsuite/gcc.dg/gnu89-init-3.c b/gcc/testsuite/gcc.dg/gnu89-init-3.c
new file mode 100644
index 00000000000..bd4283ec875
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/gnu89-init-3.c
@@ -0,0 +1,18 @@
+/* PR 11527 */
+/* { dg-do compile } */
+/* { dg-options "-std=gnu89" } */
+
+typedef struct smrdd_memory_blocks_s
+{
+ int blocks;
+ int block[];
+} smrdd_memory_blocks_t;
+
+const smrdd_memory_blocks_t smrdd_memory_blocks =
+{
+ 3,
+ {
+ [5] = 5,
+ [1] = 2,
+ }
+};
diff --git a/gcc/testsuite/gcc.dg/h8300-stack-1.c b/gcc/testsuite/gcc.dg/h8300-stack-1.c
new file mode 100644
index 00000000000..b63bde29c9c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/h8300-stack-1.c
@@ -0,0 +1,14 @@
+/* Make sure that the H8 backend does not generate a non-atomic stack
+ adjustment. */
+/* { dg-do compile { target h8300-*-* } } */
+/* { dg-options "" } */
+
+void foo (short, short, short, short, short, short);
+
+void
+bar ()
+{
+ foo (0, 0, 0, 0, 0, 0);
+}
+
+/* { dg-final { scan-assembler-not "addx" } } */
diff --git a/gcc/testsuite/gcc.dg/i386-call-1.c b/gcc/testsuite/gcc.dg/i386-call-1.c
new file mode 100644
index 00000000000..9cd49da3b2f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-call-1.c
@@ -0,0 +1,39 @@
+/* PR optimization/11304 */
+/* Originator: <manuel.serrano@sophia.inria.fr> */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O -fomit-frame-pointer" } */
+
+/* Verify that %eax is always restored after a call. */
+
+extern void abort(void);
+
+volatile int r;
+
+void set_eax(int val)
+{
+ __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val));
+}
+
+void foo(int val)
+{
+ r = val;
+}
+
+int bar(int x)
+{
+ if (x)
+ {
+ set_eax(0);
+ return x;
+ }
+
+ foo(x);
+}
+
+int main(void)
+{
+ if (bar(1) != 1)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-loop-1.c b/gcc/testsuite/gcc.dg/i386-loop-1.c
new file mode 100644
index 00000000000..e8bdaf5bcd3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-loop-1.c
@@ -0,0 +1,105 @@
+/* PR optimization/9888 */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-mcpu=k6 -O3" } */
+
+/* Verify that GCC doesn't emit out of range 'loop' instructions. */
+
+extern void abort (void);
+extern void exit (int);
+
+
+f1 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (--a == -1)
+ return i;
+ }
+ return -1;
+}
+
+f2 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (--a != -1)
+ return i;
+ }
+ return -1;
+}
+
+f3 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (--a == 0)
+ return i;
+ }
+ return -1;
+}
+
+f4 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (--a != 0)
+ return i;
+ }
+ return -1;
+}
+
+f5 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (++a == 0)
+ return i;
+ }
+ return -1;
+}
+
+f6 (a)
+ long a;
+{
+ int i;
+ for (i = 0; i < 10; i++)
+ {
+ if (++a != 0)
+ return i;
+ }
+ return -1;
+}
+
+
+int main()
+{
+ if (f1 (5L) != 5)
+ abort ();
+ if (f2 (1L) != 0)
+ abort ();
+ if (f2 (0L) != 1)
+ abort ();
+ if (f3 (5L) != 4)
+ abort ();
+ if (f4 (1L) != 1)
+ abort ();
+ if (f4 (0L) != 0)
+ abort ();
+ if (f5 (-5L) != 4)
+ abort ();
+ if (f6 (-1L) != 1)
+ abort ();
+ if (f6 (0L) != 0)
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/i386-loop-2.c b/gcc/testsuite/gcc.dg/i386-loop-2.c
new file mode 100644
index 00000000000..9c87d8b840c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-loop-2.c
@@ -0,0 +1,80 @@
+/* PR optimization/9888 */
+/* Originator: Jim Bray <jb@as220.org> */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-mcpu=k6 -Os" } */
+
+enum reload_type
+{
+ RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN,
+ RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS,
+ RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS,
+ RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR,
+ RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS
+};
+
+#define FOO_SIZE 3
+
+/* My results, varying with FOO_SIZE:
+ 30: asm error "value of ..fff77 too large:
+ 3 to 29: ....ff7d...
+ 1 to 2: no error. */
+
+struct reload
+{
+ int foo[FOO_SIZE];
+ int opnum;
+ enum reload_type when_needed;
+ unsigned int optional:1;
+ unsigned int secondary_p:1;
+};
+
+#define N_RELOADS 2
+
+struct reload rld[N_RELOADS];
+int n_reloads = N_RELOADS;
+
+int main(void)
+{
+ int i;
+
+ enum reload_type operand_type[1];
+
+ enum reload_type address_type[1];
+
+ int operand_reloadnum[1];
+ int goal_alternative_matches[1];
+
+ for (i = 0; i < n_reloads; i++)
+ {
+ if (rld[i].secondary_p
+ && rld[i].when_needed == operand_type[rld[i].opnum])
+ rld[i].when_needed = address_type[rld[i].opnum];
+
+ if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
+ || rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
+ || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
+ || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
+ && (operand_reloadnum[rld[i].opnum] < 0
+ || rld[operand_reloadnum[rld[i].opnum]].optional))
+ {
+
+ if (rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
+ || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
+ rld[i].when_needed = RELOAD_FOR_OPADDR_ADDR;
+ else
+ rld[i].when_needed = RELOAD_FOR_OPERAND_ADDRESS;
+ }
+
+ if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
+ || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS)
+ && operand_reloadnum[rld[i].opnum] >= 0
+ && (rld[operand_reloadnum[rld[i].opnum]].when_needed
+ == RELOAD_OTHER))
+ rld[i].when_needed = RELOAD_FOR_OTHER_ADDRESS;
+
+ if (goal_alternative_matches[rld[i].opnum] >= 0)
+ rld[i].opnum = goal_alternative_matches[rld[i].opnum];
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-loop-3.c b/gcc/testsuite/gcc.dg/i386-loop-3.c
new file mode 100644
index 00000000000..6b95d6b5843
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-loop-3.c
@@ -0,0 +1,76 @@
+/* PR target/11044 */
+/* Originator: Tim McGrath <misty-@charter.net> */
+/* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-mcpu=k6 -O3 -ffast-math -funroll-loops" } */
+
+typedef struct
+{
+ unsigned char colormod;
+} entity_state_t;
+
+typedef struct
+{
+ int num_entities;
+ entity_state_t *entities;
+} packet_entities_t;
+
+typedef struct
+{
+ double senttime;
+ float ping_time;
+ packet_entities_t entities;
+} client_frame_t;
+
+typedef enum
+{
+ cs_free,
+ cs_server,
+ cs_zombie,
+ cs_connected,
+ cs_spawned
+} sv_client_state_t;
+
+typedef struct client_s
+{
+ sv_client_state_t state;
+ int ping;
+ client_frame_t frames[64];
+} client_t;
+
+int CalcPing (client_t *cl)
+{
+ float ping;
+ int count, i;
+ register client_frame_t *frame;
+
+ if (cl->state == cs_server)
+ return cl->ping;
+ ping = 0;
+ count = 0;
+ for (frame = cl->frames, i = 0; i < 64; i++, frame++) {
+ if (frame->ping_time > 0) {
+ ping += frame->ping_time;
+ count++;
+ }
+ }
+ if (!count)
+ return 9999;
+ ping /= count;
+
+ return ping * 1000;
+}
+
+int main(void)
+{
+ client_t cl;
+
+ memset(&cl, 0, sizeof(cl));
+
+ cl.frames[0].ping_time = 1.0f;
+
+ if (CalcPing(&cl) != 1000)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-mmx-3.c b/gcc/testsuite/gcc.dg/i386-mmx-3.c
new file mode 100644
index 00000000000..b4bd326e2c4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-mmx-3.c
@@ -0,0 +1,17 @@
+/* PR target/8870 */
+/* Originator: otaylor@redhat.com */
+/* { dg-do compile { target i?86-*-* x86_64-*-*} } */
+/* { dg-options "-O1 -mmmx -march=athlon" } */
+
+typedef int v4hi __attribute__ ((mode (V4HI)));
+
+static inline v4hi cvtsi_v4hi (int i)
+{
+ long long tmp = i;
+ return (v4hi) tmp;
+}
+
+v4hi bar (unsigned short a)
+{
+ return cvtsi_v4hi (a);
+}
diff --git a/gcc/testsuite/gcc.dg/i386-signbit-1.c b/gcc/testsuite/gcc.dg/i386-signbit-1.c
new file mode 100644
index 00000000000..3bdc5906b7a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-signbit-1.c
@@ -0,0 +1,28 @@
+/* PR optimization/8746 */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O1 -mcpu=i586" } */
+
+extern void abort (void);
+
+unsigned char r0;
+
+int foo(int x)
+{
+ unsigned char r = x&0xf0;
+
+ if (!(r&0x80))
+ {
+ r0 = r;
+ return 0;
+ }
+ else
+ return 1;
+}
+
+int main(void)
+{
+ if (foo(0x80) != 1)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-signbit-2.c b/gcc/testsuite/gcc.dg/i386-signbit-2.c
new file mode 100644
index 00000000000..de1605c35da
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-signbit-2.c
@@ -0,0 +1,28 @@
+/* PR optimization/8746 */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O1 -mcpu=i586" } */
+
+extern void abort (void);
+
+unsigned short r0;
+
+int foo(int x)
+{
+ unsigned short r = x&0xf000;
+
+ if (!(r&0x8000))
+ {
+ r0 = r;
+ return 0;
+ }
+ else
+ return 1;
+}
+
+int main(void)
+{
+ if (foo(0x8000) != 1)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-signbit-3.c b/gcc/testsuite/gcc.dg/i386-signbit-3.c
new file mode 100644
index 00000000000..f48908964b1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-signbit-3.c
@@ -0,0 +1,32 @@
+/* PR optimization/8746 */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O1 -mcpu=i586" } */
+
+extern void abort (void);
+
+volatile int j;
+
+void f0() { j=0; }
+void f1() { j=1; }
+
+int foo(int x)
+{
+ if ((short int)(x&0x8000) > (short int)0)
+ {
+ f0();
+ return 0;
+ }
+ else
+ {
+ f1();
+ return 1;
+ }
+}
+
+int main(void)
+{
+ if (foo(0x8000) != 1)
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/i386-sse-4.c b/gcc/testsuite/gcc.dg/i386-sse-4.c
new file mode 100644
index 00000000000..c94e7f8607f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-sse-4.c
@@ -0,0 +1,27 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O0 -msse" } */
+
+typedef void __vr __attribute__ ((__mode__ (__V4SF__)));
+
+struct vector
+{
+ union
+ {
+ __vr v;
+ float f[4];
+ };
+};
+
+void
+doit ()
+{
+ float f[4];
+ struct vector v;
+
+ f[0] = 0;
+ f[1] = 1;
+ f[2] = 2;
+ f[3] = 3;
+
+ v.v = __builtin_ia32_loadups (f);
+}
diff --git a/gcc/testsuite/gcc.dg/i386-ssetype-1.c b/gcc/testsuite/gcc.dg/i386-ssetype-1.c
index 6953b751b43..ebf089d114a 100644
--- a/gcc/testsuite/gcc.dg/i386-ssetype-1.c
+++ b/gcc/testsuite/gcc.dg/i386-ssetype-1.c
@@ -1,32 +1,35 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse2 -march=athlon" } */
-/* { dg-final { scan-assembler "andpd.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "andnpd.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "xorpd.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "orpd.*\[bs\]p" } } */
+/* { dg-final { scan-assembler "andpd.*magic" } } */
+/* { dg-final { scan-assembler "andnpd.*magic" } } */
+/* { dg-final { scan-assembler "xorpd.*magic" } } */
+/* { dg-final { scan-assembler "orpd.*magic" } } */
/* { dg-final { scan-assembler-not "movdqa" } } */
-/* { dg-final { scan-assembler "movapd.*\[bs\]p" } } */
+/* { dg-final { scan-assembler "movapd.*magic" } } */
/* Verify that we generate proper instruction with memory operand. */
#include <xmmintrin.h>
+
+__m128d magic_a, magic_b;
+
__m128d
-t1(__m128d a, __m128d b)
+t1(void)
{
-return _mm_and_pd (a,b);
+return _mm_and_pd (magic_a,magic_b);
}
__m128d
-t2(__m128d a, __m128d b)
+t2(void)
{
-return _mm_andnot_pd (a,b);
+return _mm_andnot_pd (magic_a,magic_b);
}
__m128d
-t3(__m128d a, __m128d b)
+t3(void)
{
-return _mm_or_pd (a,b);
+return _mm_or_pd (magic_a,magic_b);
}
__m128d
-t4(__m128d a, __m128d b)
+t4(void)
{
-return _mm_xor_pd (a,b);
+return _mm_xor_pd (magic_a,magic_b);
}
diff --git a/gcc/testsuite/gcc.dg/i386-ssetype-2.c b/gcc/testsuite/gcc.dg/i386-ssetype-2.c
index b66aa0cfd98..93551e601aa 100644
--- a/gcc/testsuite/gcc.dg/i386-ssetype-2.c
+++ b/gcc/testsuite/gcc.dg/i386-ssetype-2.c
@@ -5,7 +5,6 @@
/* { dg-final { scan-assembler "xorpd" } } */
/* { dg-final { scan-assembler "orpd" } } */
/* { dg-final { scan-assembler-not "movdqa" } } */
-/* { dg-final { scan-assembler "movapd" } } */
/* Verify that we generate proper instruction without memory operand. */
diff --git a/gcc/testsuite/gcc.dg/i386-ssetype-3.c b/gcc/testsuite/gcc.dg/i386-ssetype-3.c
index 4988c0c5abd..c36baccf0e4 100644
--- a/gcc/testsuite/gcc.dg/i386-ssetype-3.c
+++ b/gcc/testsuite/gcc.dg/i386-ssetype-3.c
@@ -1,32 +1,34 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse2 -march=athlon" } */
-/* { dg-final { scan-assembler "andps.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "andnps.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "xorps.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "orps.*\[bs\]p" } } */
+/* { dg-final { scan-assembler "andps.*magic" } } */
+/* { dg-final { scan-assembler "andnps.*magic" } } */
+/* { dg-final { scan-assembler "xorps.*magic" } } */
+/* { dg-final { scan-assembler "orps.*magic" } } */
/* { dg-final { scan-assembler-not "movdqa" } } */
-/* { dg-final { scan-assembler "movaps.*\[bs\]p" } } */
+/* { dg-final { scan-assembler "movaps.*magic" } } */
/* Verify that we generate proper instruction with memory operand. */
#include <xmmintrin.h>
+
+__m128 magic_a, magic_b;
__m128
-t1(__m128 a, __m128 b)
+t1(void)
{
-return _mm_and_ps (a,b);
+return _mm_and_ps (magic_a,magic_b);
}
__m128
-t2(__m128 a, __m128 b)
+t2(void)
{
-return _mm_andnot_ps (a,b);
+return _mm_andnot_ps (magic_a,magic_b);
}
__m128
-t3(__m128 a, __m128 b)
+t3(void)
{
-return _mm_or_ps (a,b);
+return _mm_or_ps (magic_a,magic_b);
}
__m128
-t4(__m128 a, __m128 b)
+t4(void)
{
-return _mm_xor_ps (a,b);
+return _mm_xor_ps (magic_a,magic_b);
}
diff --git a/gcc/testsuite/gcc.dg/i386-ssetype-5.c b/gcc/testsuite/gcc.dg/i386-ssetype-5.c
index 97cc22fd3a8..31e4ae3918f 100644
--- a/gcc/testsuite/gcc.dg/i386-ssetype-5.c
+++ b/gcc/testsuite/gcc.dg/i386-ssetype-5.c
@@ -1,33 +1,34 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse2 -march=athlon" } */
-/* { dg-final { scan-assembler "pand.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "pandn.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "pxor.*\[bs\]p" } } */
-/* { dg-final { scan-assembler "por.*\[bs\]p" } } */
+/* { dg-final { scan-assembler "pand.*magic" } } */
+/* { dg-final { scan-assembler "pandn.*magic" } } */
+/* { dg-final { scan-assembler "pxor.*magic" } } */
+/* { dg-final { scan-assembler "por.*magic" } } */
/* { dg-final { scan-assembler "movdqa" } } */
-/* { dg-final { scan-assembler-not "movaps.*\[bs\]p" } } */
+/* { dg-final { scan-assembler-not "movaps.*magic" } } */
/* Verify that we generate proper instruction with memory operand. */
#include <xmmintrin.h>
+__m128i magic_a, magic_b;
__m128i
-t1(__m128i a, __m128i b)
+t1(void)
{
-return _mm_and_si128 (a,b);
+return _mm_and_si128 (magic_a,magic_b);
}
__m128i
-t2(__m128i a, __m128i b)
+t2(void)
{
-return _mm_andnot_si128 (a,b);
+return _mm_andnot_si128 (magic_a,magic_b);
}
__m128i
-t3(__m128i a, __m128i b)
+t3(void)
{
-return _mm_or_si128 (a,b);
+return _mm_or_si128 (magic_a,magic_b);
}
__m128i
-t4(__m128i a, __m128i b)
+t4(void)
{
-return _mm_xor_si128 (a,b);
+return _mm_xor_si128 (magic_a,magic_b);
}
diff --git a/gcc/testsuite/gcc.dg/i386-volatile-1.c b/gcc/testsuite/gcc.dg/i386-volatile-1.c
new file mode 100644
index 00000000000..633ea5022ec
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/i386-volatile-1.c
@@ -0,0 +1,14 @@
+/* PR optimization/11381 */
+/* Originator: <tobias@ringstrom.mine.nu> */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O" } */
+
+/* Verify that the comparison is not optimized away. */
+
+void foo(volatile unsigned int *vaddr)
+{
+ while (*vaddr != *vaddr)
+ ;
+}
+
+/* { dg-final { scan-assembler "cmp" } } */
diff --git a/gcc/testsuite/gcc.dg/ia64-sync-3.c b/gcc/testsuite/gcc.dg/ia64-sync-3.c
new file mode 100644
index 00000000000..e718c1115e2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ia64-sync-3.c
@@ -0,0 +1,74 @@
+/* { dg-do run { target ia64-*-* } } */
+/* { dg-options } */
+
+/* Test basic functionality of the intrinsics. */
+
+#include <ia64intrin.h>
+
+static int AI[4];
+static int init_si[4] = { -30,-30,-50,-50 };
+static int test_si[4] = { -115,-115,25,25 };
+
+static void
+do_si (void)
+{
+ if (__sync_val_compare_and_swap(AI+0, -30, -115) != -30)
+ abort ();
+ if (__sync_val_compare_and_swap(AI+0, -30, -115) != -115)
+ abort ();
+ if (__sync_bool_compare_and_swap(AI+1, -30, -115) != 1)
+ abort ();
+ if (__sync_bool_compare_and_swap(AI+1, -30, -115) != 0)
+ abort ();
+
+ if (__sync_val_compare_and_swap(AI+2, AI[2], 25) != -50)
+ abort ();
+ if (__sync_val_compare_and_swap(AI+2, AI[2], 25) != 25)
+ abort ();
+ if (__sync_bool_compare_and_swap(AI+3, AI[3], 25) != 1)
+ abort ();
+ if (__sync_bool_compare_and_swap(AI+3, AI[3], 25) != 1)
+ abort ();
+}
+
+static long AL[4];
+static long init_di[4] = { -30,-30,-50,-50 };
+static long test_di[4] = { -115,-115,25,25 };
+
+static void
+do_di (void)
+{
+ if (__sync_val_compare_and_swap(AL+0, -30, -115) != -30)
+ abort ();
+ if (__sync_val_compare_and_swap(AL+0, -30, -115) != -115)
+ abort ();
+ if (__sync_bool_compare_and_swap(AL+1, -30, -115) != 1)
+ abort ();
+ if (__sync_bool_compare_and_swap(AL+1, -30, -115) != 0)
+ abort ();
+
+ if (__sync_val_compare_and_swap(AL+2, AL[2], 25) != -50)
+ abort ();
+ if (__sync_val_compare_and_swap(AL+2, AL[2], 25) != 25)
+ abort ();
+ if (__sync_bool_compare_and_swap(AL+3, AL[3], 25) != 1)
+ abort ();
+ if (__sync_bool_compare_and_swap(AL+3, AL[3], 25) != 1)
+ abort ();
+}
+
+int main()
+{
+ memcpy(AI, init_si, sizeof(init_si));
+ memcpy(AL, init_di, sizeof(init_di));
+
+ do_si ();
+ do_di ();
+
+ if (memcmp (AI, test_si, sizeof(test_si)))
+ abort ();
+ if (memcmp (AL, test_di, sizeof(test_di)))
+ abort ();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ia64-sync-4.c b/gcc/testsuite/gcc.dg/ia64-sync-4.c
new file mode 100644
index 00000000000..98dfdac78ac
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ia64-sync-4.c
@@ -0,0 +1,21 @@
+/* { dg-do compile { target ia64-*-* } } */
+/* { dg-options "-O2 -finline-functions" } */
+
+/* Test inlining __sync_bool_compare_and_swap_di. */
+
+#include <stdbool.h>
+#include <ia64intrin.h>
+
+static bool
+compare_and_swap(long *addr, long old, long new_val)
+{
+ return __sync_bool_compare_and_swap_di(addr, old, new_val);
+}
+
+void
+foo (long *address)
+{
+ long he_address = *address & ~1;
+ while (!compare_and_swap(address, he_address, he_address | 1))
+ he_address = *address & ~1;
+}
diff --git a/gcc/testsuite/gcc.dg/inline-1.c b/gcc/testsuite/gcc.dg/inline-1.c
index 17a9a2f7243..4dce611d912 100644
--- a/gcc/testsuite/gcc.dg/inline-1.c
+++ b/gcc/testsuite/gcc.dg/inline-1.c
@@ -1,7 +1,7 @@
/* Verify that DECL_INLINE gets copied between DECLs properly. */
/* { dg-do compile } */
/* { dg-options "-O1" } */
-/* { dg-final { scan-assembler-not "xyzzy" } } */
+/* { dg-final { if [ istarget hppa*-*-* ] { scan-assembler-not "xyzzy?,%r" } else { scan-assembler-not "xyzzy" } } } */
/* Test that declaration followed by definition inlines. */
static inline int xyzzy0 (int);
diff --git a/gcc/testsuite/gcc.dg/inline-5.c b/gcc/testsuite/gcc.dg/inline-5.c
new file mode 100644
index 00000000000..d72fad65610
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/inline-5.c
@@ -0,0 +1,13 @@
+/* PR middle-end/13448 */
+
+/* { dg-options "-O3" } */
+
+void funct (const int n)
+{
+ n++; /* { dg-error "" } */
+}
+
+int main () {
+ funct (1);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/loop-4.c b/gcc/testsuite/gcc.dg/loop-4.c
new file mode 100644
index 00000000000..c83fd1c0fc5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/loop-4.c
@@ -0,0 +1,25 @@
+/* PR optimization/11841 */
+/* Originator: Andrey Panov <panov@canopus.iacp.dvo.ru> */
+/* Reduced testcase by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+
+/* Verify that the (old) loop unroller doesn't wrongly mark a pseudo
+ referenced in a note as local. */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-loops" } */
+
+int *a;
+
+int main()
+{
+ double d[6];
+ int i, j;
+
+ for (i=0; i<4; ++i)
+ for (j=0; j<3; ++j)
+ d[i+j] = 0;
+
+ a = &i;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/loop-6.c b/gcc/testsuite/gcc.dg/loop-6.c
new file mode 100644
index 00000000000..653854eb8a0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/loop-6.c
@@ -0,0 +1,25 @@
+/* PR optimization/18577 */
+/* Origin: Falk Hueffner <falk@debian.org> */
+
+/* { dg-do run } */
+/* { dg-options "-O2 -funroll-all-loops" } */
+
+static float tfcos12[3];
+__attribute__((noinline)) double f(double x) { return x; }
+int g;
+
+int main(void)
+{
+ int i, j;
+ for (i = 0; i < 1; i++)
+ tfcos12[i] = 0.5;
+
+ for (i = 0; i < 1; i++)
+ {
+ tfcos12[i] = 0.5 * f(i);
+ for (j = 0; j < 12; j++)
+ g++;
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/nest.c b/gcc/testsuite/gcc.dg/nest.c
index 5520aa1b070..588a331162d 100644
--- a/gcc/testsuite/gcc.dg/nest.c
+++ b/gcc/testsuite/gcc.dg/nest.c
@@ -5,6 +5,7 @@
/* Support for -pg on irix relies on gcrt1.o which doesn't exist yet.
See: http://gcc.gnu.org/ml/gcc/2002-10/msg00169.html */
/* { dg-error "gcrt1.o" "Profiler support missing" { target mips*-*-irix* } 0 } */
+/* { dg-error "-pg not supported" "Profiler support missing" { target *-*-sco3.2v5* } 0 } */
long foo (long x)
{
diff --git a/gcc/testsuite/gcc.dg/noncompile/20030818-1.c b/gcc/testsuite/gcc.dg/noncompile/20030818-1.c
new file mode 100644
index 00000000000..71b89ec6fa7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noncompile/20030818-1.c
@@ -0,0 +1,3 @@
+/* PR 11207. */
+
+char font8x8[256][8] = { [-1] = { 0 } }; /* { dg-error "array index|near init" } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/920721-2.c b/gcc/testsuite/gcc.dg/noncompile/920721-2.c
index 9ec223c3af4..c698b085ea9 100644
--- a/gcc/testsuite/gcc.dg/noncompile/920721-2.c
+++ b/gcc/testsuite/gcc.dg/noncompile/920721-2.c
@@ -2,5 +2,5 @@ void f(int n)
{
int s;
for(s=0;s<n;s++)
- s==5?1 n=1; /* { dg-error "parse error" } */
+ s==5?1 n=1; /* { dg-error "(parse|syntax) error" } */
}
diff --git a/gcc/testsuite/gcc.dg/noncompile/930622-2.c b/gcc/testsuite/gcc.dg/noncompile/930622-2.c
index a1450afbf1f..3409118f0e2 100644
--- a/gcc/testsuite/gcc.dg/noncompile/930622-2.c
+++ b/gcc/testsuite/gcc.dg/noncompile/930622-2.c
@@ -1,6 +1,6 @@
f ()
{
int i;
- for (i--) /* { dg-error "parse" } */
+ for (i--) /* { dg-error "parse|syntax" } */
;
}
diff --git a/gcc/testsuite/gcc.dg/noncompile/940112-1.c b/gcc/testsuite/gcc.dg/noncompile/940112-1.c
index 24780df554e..953840f6dc8 100644
--- a/gcc/testsuite/gcc.dg/noncompile/940112-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/940112-1.c
@@ -4,4 +4,4 @@ f (int x)
double e = 1;
e = 1;
return (e)
-} /* { dg-error "parse error" } */
+} /* { dg-error "(parse|syntax) error" } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/950921-1.c b/gcc/testsuite/gcc.dg/noncompile/950921-1.c
index ed44338fcd1..0f6378524ec 100644
--- a/gcc/testsuite/gcc.dg/noncompile/950921-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/950921-1.c
@@ -1,10 +1,10 @@
typedef enum
{
- a = (X) 0, /* { dg-error "undeclared|not integer|parse error" } */
+ a = (X) 0, /* { dg-error "undeclared|not integer|(parse|syntax) error" } */
b
} c;
typedef enum
{
- d = (X) 0 /* { dg-error "undeclared|not integer|parse error" } */
+ d = (X) 0 /* { dg-error "undeclared|not integer|(parse|syntax) error" } */
} e;
diff --git a/gcc/testsuite/gcc.dg/noncompile/951123-1.c b/gcc/testsuite/gcc.dg/noncompile/951123-1.c
index 9a5a3215ed6..787cf1e94fa 100644
--- a/gcc/testsuite/gcc.dg/noncompile/951123-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/951123-1.c
@@ -1,2 +1,2 @@
struct S { int a; int b[2]; };
-struct S x = { 0, [0]; }; /* { dg-error "array index|near|parse" } */
+struct S x = { 0, [0]; }; /* { dg-error "array index|near|(parse|syntax)" } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/971104-1.c b/gcc/testsuite/gcc.dg/noncompile/971104-1.c
index a20b17add58..ed7cb523c3b 100644
--- a/gcc/testsuite/gcc.dg/noncompile/971104-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/971104-1.c
@@ -23,6 +23,6 @@ static void up(int sem){
printf("%s had processes sleeping on it!\n",
({ "MUTEX ", "BARB_SEM 1", "BARB_SEM 2", "CUST_SEM 1",
"CUST_SEM 2", "WAIT_SEM 1", "WAIT_SEM 2", "WAIT_SEM 3",
- "WAIT_SEM 4"} /* { dg-error "parse error" } */
+ "WAIT_SEM 4"} /* { dg-error "(parse|syntax) error" } */
[( sb.sem_num )]) );
}
diff --git a/gcc/testsuite/gcc.dg/noncompile/990416-1.c b/gcc/testsuite/gcc.dg/noncompile/990416-1.c
index 1e874871de2..6b69ead2fe1 100644
--- a/gcc/testsuite/gcc.dg/noncompile/990416-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/990416-1.c
@@ -1,7 +1,7 @@
typedef int word_type;
static void
-copy_reg (unsigned int reg, frame_state *udata, /* { dg-error "parse" } */
+copy_reg (unsigned int reg, frame_state *udata, /* { dg-error "parse|syntax" } */
frame_state *target_udata)
{
word_type *preg = get_reg_addr (reg, udata, 0); /* { dg-error "undeclared|function|without a cast" } */
diff --git a/gcc/testsuite/gcc.dg/noncompile/init-4.c b/gcc/testsuite/gcc.dg/noncompile/init-4.c
new file mode 100644
index 00000000000..906c115b8cc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noncompile/init-4.c
@@ -0,0 +1,3 @@
+struct a { char *b; } c[D] /* { dg-error "undeclared" } */
+ = /* { dg-error "storage size" } */
+ { { "" } } ; /* { dg-warning "braces around scalar initializer|near" } */
diff --git a/gcc/testsuite/gcc.dg/noreturn-1.c b/gcc/testsuite/gcc.dg/noreturn-1.c
index 6e72f362bf3..3bf62c15b40 100644
--- a/gcc/testsuite/gcc.dg/noreturn-1.c
+++ b/gcc/testsuite/gcc.dg/noreturn-1.c
@@ -7,8 +7,8 @@ extern void exit (int);
extern void foo1(void) __attribute__ ((__noreturn__));
void
foo1(void)
-{
-} /* { dg-warning "`noreturn' function does return" "detect falling off end of noreturn" } */
+{ /* { dg-warning "`noreturn' function does return" "detect falling off end of noreturn" } */
+}
extern void foo2(void) __attribute__ ((__noreturn__));
void
diff --git a/gcc/testsuite/gcc.dg/noreturn-7.c b/gcc/testsuite/gcc.dg/noreturn-7.c
new file mode 100644
index 00000000000..1d94a7ccea5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noreturn-7.c
@@ -0,0 +1,42 @@
+/* PR optimization/13394 */
+/* Origin: Carlo Wood <carlo@gcc.gnu.org> */
+
+/* Verify that a bogus "function does return" warning is not issued
+ in presence of tail recursion within a noreturn function. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wreturn-type -Wmissing-noreturn" } */
+
+
+void f(void) __attribute__ ((__noreturn__));
+void _exit(int status) __attribute__ ((__noreturn__));
+
+int z = 0;
+
+void g()
+{
+ if (++z > 10)
+ _exit(0);
+ g();
+} /* { dg-warning "possible candidate" } */
+
+void f()
+{
+ if (++z > 10)
+ _exit(0);
+ f();
+} /* { dg-bogus "does return" } */
+
+int h()
+{
+ if (++z > 10)
+ _exit(0);
+ return h();
+} /* { dg-bogus "end of non-void function" } */
+
+int k()
+{
+ if (++z > 10)
+ _exit(0);
+ k();
+} /* { dg-warning "end of non-void function" } */
diff --git a/gcc/testsuite/gcc.dg/null-pointer-1.c b/gcc/testsuite/gcc.dg/null-pointer-1.c
new file mode 100644
index 00000000000..8cc15c6d866
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/null-pointer-1.c
@@ -0,0 +1,20 @@
+/* PR c/13382 */
+/* Origin: Richard Hutchinson <richard.hutchinson@asa.co.uk> */
+
+/* Verify that the null initializer is converted to the right
+ pointer type. */
+
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+struct t
+{
+ int aMember;
+};
+
+struct t *const aPointer = 0;
+
+void foo()
+{
+ int anInt = (aPointer == 0) ? 0 : aPointer->aMember;
+}
diff --git a/gcc/testsuite/gcc.dg/old-style-asm-1.c b/gcc/testsuite/gcc.dg/old-style-asm-1.c
new file mode 100644
index 00000000000..c33707e609c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/old-style-asm-1.c
@@ -0,0 +1,27 @@
+/* PR inline-asm/8832 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* Verify that GCC doesn't optimize
+ old style asm instructions. */
+
+void foo(int v)
+{
+ if (v)
+ asm ("dummy1");
+
+ asm ("dummy2");
+
+ if (v)
+ asm ("dummy3");
+}
+
+/* The purpose of the test below is to check that there are two branches
+ in the generated code, supposedly corresponding to the if-statements.
+ Warning: this is fragile and assumes that one of the generated labels
+ for the branches matches the string "L2", or as with
+ mmix-knuth-mmixware, "L:2". That assumption is generally invalid,
+ because for example it depends on the target macro
+ ASM_GENERATE_INTERNAL_LABEL to generate a name matching this regexp (as
+ with the default definition). */
+/* { dg-final { scan-assembler "L(:|\\\$0*)?2" } } */
diff --git a/gcc/testsuite/gcc.dg/overflow-1.c b/gcc/testsuite/gcc.dg/overflow-1.c
new file mode 100644
index 00000000000..db51a5ef129
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/overflow-1.c
@@ -0,0 +1,25 @@
+/* PR optimization/13318 */
+/* Origin: <bremner@unb.ca> */
+/* Reduced testcase: Wolfgang Bangerth <bangerth@dealii.org> */
+
+/* Verify that the big multiplier doesn't cause an integer
+ overflow in the loop optimizer. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+struct S {
+ int key;
+ int rnext,rprev;
+};
+
+void foo(struct S* H)
+{
+ int i, k;
+ for (i=0; i<2; i++){
+ struct S* cell=H+k;
+ cell->key=i*(0xffffffffUL/2);
+ cell->rnext=k+(1-i);
+ cell->rprev=k+(1-i);
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/ppc-stackalign-1.c b/gcc/testsuite/gcc.dg/ppc-stackalign-1.c
new file mode 100644
index 00000000000..17f3c59d0f1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ppc-stackalign-1.c
@@ -0,0 +1,34 @@
+/* { dg-do run { target powerpc-*-linux* powerpc-*-sysv* } } */
+
+/* Test stack pointer alignment against variable alloca. */
+/* Inspired by PR libgcj/10610. */
+/* Origin: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>. */
+
+extern void abort (void);
+extern void exit (int);
+
+register unsigned long sp __asm__ ("r1");
+
+void g (int * val __attribute__ ((unused)))
+{
+ if (sp & 0xf)
+ abort ();
+}
+
+void f (int val)
+{
+ int *val1 = __builtin_alloca (val);
+
+ g (val1);
+ return;
+}
+
+int main (void)
+{
+ int i;
+
+ for (i = 1; i < 32; i++)
+ f (i);
+
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/pr14289-1.c b/gcc/testsuite/gcc.dg/pr14289-1.c
new file mode 100644
index 00000000000..652916325c2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr14289-1.c
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+register int a[2] asm("ebx");
+
+void Nase(void)
+{
+ int i=6;
+ a[i]=5; /* { dg-error "address of global" } */
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr14289-2.c b/gcc/testsuite/gcc.dg/pr14289-2.c
new file mode 100644
index 00000000000..7530b468cac
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr14289-2.c
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+static register int a[2] asm("ebx"); /* { dg-error "multiple storage" } */
+
+void Nase(void)
+{
+ int i=6;
+ a[i]=5; /* { dg-error "address of global" } */
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr14289-3.c b/gcc/testsuite/gcc.dg/pr14289-3.c
new file mode 100644
index 00000000000..7cfbf78ce05
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr14289-3.c
@@ -0,0 +1,12 @@
+/* PR middle-end/14289 */
+/* { dg-do compile { target i?86-*-* } } */
+/* { dg-options "-O0" } */
+
+extern register int a[2] asm("ebx"); /* { dg-error "multiple storage" } */
+
+void Nase(void)
+{
+ int i=6;
+ a[i]=5; /* { dg-error "address of global" } */
+}
+
diff --git a/gcc/testsuite/gcc.dg/pr14765-1.c b/gcc/testsuite/gcc.dg/pr14765-1.c
new file mode 100644
index 00000000000..d2b341839ce
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr14765-1.c
@@ -0,0 +1,11 @@
+/* Empty statement expressions should get void type. Bug 14765 from
+ Serge Belyshev <belyshev@lubercy.com>. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+int a;
+void fun ()
+{
+ a = 0;
+ a = ({}); /* { dg-error "not ignored" "void stmt expr" } */
+}
diff --git a/gcc/testsuite/gcc.dg/pr9771-1.c b/gcc/testsuite/gcc.dg/pr9771-1.c
new file mode 100644
index 00000000000..1e3bc036aee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr9771-1.c
@@ -0,0 +1,43 @@
+/* PR rtl-optimization/9771 */
+/* { dg-do run { target i?86-*-* } } */
+/* { dg-options "-O2 -fomit-frame-pointer -ffixed-ebp" } */
+
+extern void abort(void);
+extern void exit(int);
+
+register long *B asm ("ebp");
+
+long x = 10;
+long y = 20;
+
+void bar(void)
+{
+ B = &y;
+}
+
+void foo()
+{
+ long *adr = B;
+ long save = *adr;
+
+ *adr = 123;
+
+ bar();
+
+ *adr = save;
+}
+
+int main()
+{
+ B = &x;
+
+ foo();
+
+ if (x != 10 || y != 20)
+ abort();
+
+ /* We can't return, as our caller may assume %ebp is preserved! */
+ /* We could save/restore it (like foo), but its easier to exit. */
+ exit(0);
+}
+
diff --git a/gcc/testsuite/gcc.dg/pragma-ep-1.c b/gcc/testsuite/gcc.dg/pragma-ep-1.c
index 91ec640ca5b..e110ff90004 100644
--- a/gcc/testsuite/gcc.dg/pragma-ep-1.c
+++ b/gcc/testsuite/gcc.dg/pragma-ep-1.c
@@ -5,7 +5,7 @@
/* { dg-final { scan-assembler "four" } } */
/* { dg-final { scan-assembler-not "_four" } } */
-#ifndef __EXTERN_PREFIX
+#ifndef __PRAGMA_EXTERN_PREFIX
#error
#endif
diff --git a/gcc/testsuite/gcc.dg/return-type-1.c b/gcc/testsuite/gcc.dg/return-type-1.c
index 2507cafa5e4..037dbbf0823 100644
--- a/gcc/testsuite/gcc.dg/return-type-1.c
+++ b/gcc/testsuite/gcc.dg/return-type-1.c
@@ -5,5 +5,5 @@
/* { dg-options "-O -Wreturn-type" } */
int
foo(void)
-{
-} /* { dg-warning "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+{ /* { dg-warning "control reaches end of non-void function" "warning for falling off end of non-void function" } */
+}
diff --git a/gcc/testsuite/gcc.dg/return-type-3.c b/gcc/testsuite/gcc.dg/return-type-3.c
new file mode 100644
index 00000000000..b6fa16539a4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/return-type-3.c
@@ -0,0 +1,14 @@
+/* PR optimization/7189
+ This was a missing warning caused by a cfg cleanup after sibling
+ call optimization. The return clobber insn was cleaned up and
+ the warning was never issued. */
+/* { dg-do compile } */
+/* { dg-options "-foptimize-sibling-calls -Wreturn-type" } */
+
+extern void foo(void);
+
+int
+bar (void)
+{
+ foo();
+} /* { dg-warning "control reaches end of non-void function" "warning for falling off end of non-void function" } */
diff --git a/gcc/testsuite/gcc.dg/short-compare-1.c b/gcc/testsuite/gcc.dg/short-compare-1.c
new file mode 100644
index 00000000000..d4be16b1c92
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/short-compare-1.c
@@ -0,0 +1,21 @@
+/* PR rtl-optimization/19296 */
+/* Origin: Falk Hueffner <falk@debian.org> */
+
+/* { dg-do run } */
+/* { dg-options "-O" } */
+/* { dg-options "-O -mcpu=i686" { target i?86-*-* } } */
+/* { dg-options "-O -m32 -mcpu=i686" { target x86_64-*-* } } */
+
+extern void abort(void);
+
+void f(unsigned short ad)
+{
+ if (ad >= 0x4000 && ad < 0xc000)
+ abort();
+}
+
+int main(void)
+{
+ f(0xff00);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/short-compare-2.c b/gcc/testsuite/gcc.dg/short-compare-2.c
new file mode 100644
index 00000000000..d0796b3582c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/short-compare-2.c
@@ -0,0 +1,22 @@
+/* PR rtl-optimization/19296 */
+/* Origin: Falk Hueffner <falk@debian.org> */
+/* Testcase by Andrew Pinski <pinskia@gcc.gnu.org> */
+
+/* { dg-do run } */
+/* { dg-options "-O" } */
+/* { dg-options "-O -mcpu=i686" { target i?86-*-* } } */
+/* { dg-options "-O -m32 -mcpu=i686" { target x86_64-*-* } } */
+
+extern void abort();
+
+void f(unsigned short ad)
+{
+ if ((short) (ad - 0x4000) >= 0)
+ abort();
+}
+
+int main(void)
+{
+ f(0xc000);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/sibcall-1.c b/gcc/testsuite/gcc.dg/sibcall-1.c
index f9b1f7899b4..10e77df7e05 100644
--- a/gcc/testsuite/gcc.dg/sibcall-1.c
+++ b/gcc/testsuite/gcc.dg/sibcall-1.c
@@ -42,5 +42,8 @@ track (int n)
if (n == 0)
trackpoint = stackpos;
else if (n != 7 || trackpoint != stackpos)
- abort ();
+ {
+ printf ("%d %p %p\n", n, trackpoint, stackpos);
+ abort ();
+ }
}
diff --git a/gcc/testsuite/gcc.dg/sparc-constant-1.c b/gcc/testsuite/gcc.dg/sparc-constant-1.c
new file mode 100644
index 00000000000..bb4b1bce4f8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sparc-constant-1.c
@@ -0,0 +1,12 @@
+/* PR optimization/10876 */
+/* { dg-do compile { target sparc*-*-* } } */
+
+/* Verify that adding the constant 4096 is turned
+ into substracting the constant -4096. */
+
+int foo(int a)
+{
+ return a+4096;
+}
+
+/* { dg-final { scan-assembler "sub" } } */
diff --git a/gcc/testsuite/gcc.dg/sparc-dwarf2.c b/gcc/testsuite/gcc.dg/sparc-dwarf2.c
new file mode 100644
index 00000000000..d68cf620428
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sparc-dwarf2.c
@@ -0,0 +1,31 @@
+/* PR target/10114 */
+/* Originator: James Troup <james@nocrew.org> */
+/* { dg-do compile { target sparc-*-linux* } } */
+/* { dg-options "-g -O1" } */
+
+extern __inline double sqrt (double __x)
+{
+ register double __r;
+ __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x));
+ return __r;
+}
+
+static double our_skew, max_update_skew;
+
+static double Sqr(double x)
+{
+ return x*x;
+}
+
+void REF_SetReference(double skew)
+{
+ double previous_skew, new_skew;
+ double old_weight, new_weight, sum_weight;
+ double delta_freq1, delta_freq2;
+ double skew1, skew2;
+
+ previous_skew = our_skew;
+ skew1 = sqrt((Sqr(delta_freq1) * old_weight + Sqr(delta_freq2) * new_weight) / sum_weight);
+ skew2 = (previous_skew * old_weight + new_skew * new_weight) / sum_weight;
+ our_skew = skew1 + skew2;
+}
diff --git a/gcc/testsuite/gcc.dg/sparc-ret.c b/gcc/testsuite/gcc.dg/sparc-ret.c
index 629bbb155ef..3a4ddea58ec 100644
--- a/gcc/testsuite/gcc.dg/sparc-ret.c
+++ b/gcc/testsuite/gcc.dg/sparc-ret.c
@@ -3,8 +3,8 @@
Making sure that Ultrasparc return instructions do not read
below the stack. */
-/* { dg-do compile { target sparc*-*-* } } */
-/* { dg-options "-mcpu=ultrasparc -O -m32" } */
+/* { dg-do compile { target sparc-*-* } } */
+/* { dg-options "-mcpu=ultrasparc -O" } */
int bar (int a, int b, int c, int d, int e, int f, int g, int h)
@@ -14,7 +14,7 @@ int bar (int a, int b, int c, int d, int e, int f, int g, int h)
toto (&res);
return h;
}
-/* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*ld\[ \t\]*\\\[%sp\\+96\\\]" } } */
+/* { dg-final { global compiler_flags; if ![string match "*-m64 *" $compiler_flags] { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*ld\[ \t\]*\\\[%sp\\+96\\\]" } } } */
int bar2 ()
{
@@ -23,5 +23,4 @@ int bar2 ()
toto (&res);
return res;
}
-/* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*nop" } } */
-
+/* { dg-final { global compiler_flags; if ![string match "*-m64 *" $compiler_flags] { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*nop" } } } */
diff --git a/gcc/testsuite/gcc.dg/sparc-trap-1.c b/gcc/testsuite/gcc.dg/sparc-trap-1.c
new file mode 100644
index 00000000000..a516a886495
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/sparc-trap-1.c
@@ -0,0 +1,20 @@
+/* PR target/15693 */
+/* { dg-do compile { target sparc*-*-* } } */
+/* { dg-options "-O2" } */
+
+/* This used to fail on SPARC at -O2 because the combiner
+ produces a compare insn that was not rematched by the
+ compare expander. */
+
+static __inline__ __attribute__ ((always_inline))
+int page_mapping (unsigned flags)
+{
+ if (1u & (flags >> 16))
+ return 1;
+ return 0;
+}
+void install_page (unsigned flags)
+{
+ if (__builtin_expect (!page_mapping (flags), 0))
+ __builtin_trap ();
+}
diff --git a/gcc/testsuite/gcc.dg/special/ecos.exp b/gcc/testsuite/gcc.dg/special/ecos.exp
index b8875023ae1..835233f1d4b 100644
--- a/gcc/testsuite/gcc.dg/special/ecos.exp
+++ b/gcc/testsuite/gcc.dg/special/ecos.exp
@@ -155,7 +155,9 @@ if { [ check_weak_available ] == 1 } {
# gcsec-1.c
###########
-set ld_output [ remote_exec host "[ find_ld ]" "--help" ]
+# Check if the ld used by gcc supports --gc-sections.
+set gcc_ld [lindex [gcc_target_compile "-print-prog-name=ld" "" "none" ""] 0]
+set ld_output [remote_exec host "$gcc_ld" "--help"]
# AIX gld supports garbage collection. But AIX gcc does not support
# -ffunction-sections or -fdata-sections.
diff --git a/gcc/testsuite/gcc.dg/struct-ret-libc.c b/gcc/testsuite/gcc.dg/struct-ret-libc.c
new file mode 100644
index 00000000000..723e1cd029b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/struct-ret-libc.c
@@ -0,0 +1,16 @@
+/* Test evolved from source from Simona Perri <perri@mat.unical.it>
+ and Gerald Pfeifer<pfeifer@dbai.tuwien.ac.at>.
+
+ Copyright (C) 2003 Free Software Foundation */
+
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int main ()
+{
+ div_t d = div (20, 5);
+ if ((d.quot != 4) || (d.rem))
+ abort ();
+ exit (0);
+}
diff --git a/gcc/testsuite/gcc.dg/tls/alias-1.c b/gcc/testsuite/gcc.dg/tls/alias-1.c
new file mode 100644
index 00000000000..3372da3d10c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tls/alias-1.c
@@ -0,0 +1,21 @@
+/* { dg-do link } */
+/* Test that encode_section_info handles the change from externally
+ defined to locally defined (via hidden). Extracted from glibc. */
+
+struct __res_state {
+ char x[123];
+};
+
+extern __thread struct __res_state bar
+ __attribute__ ((tls_model ("initial-exec")));
+
+int main()
+{
+ bar.x[0] = 0;
+ return 0;
+}
+
+__thread struct __res_state foo;
+extern __thread struct __res_state bar
+ __attribute__ ((alias ("foo")))
+ __attribute__ ((visibility ("hidden")));
diff --git a/gcc/testsuite/gcc.dg/torture/cris-volatile-1.c b/gcc/testsuite/gcc.dg/torture/cris-volatile-1.c
new file mode 100644
index 00000000000..7f613c4dc77
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/cris-volatile-1.c
@@ -0,0 +1,72 @@
+/* Copyright (C) 2003 Free Software Foundation.
+ Check that size-optimizations for move insns (specifically peephole
+ optimizations) aren't applied to volatile objects in the CRIS port.
+ Origin: Hans-Peter Nilsson. */
+/* { dg-do compile { target cris-*-* } } */
+/* { dg-final { scan-assembler-not {movu\...\[} } } */
+/* { dg-final { scan-assembler-not {move\.[^d].\[} } } */
+/* { dg-final { scan-assembler-not {and\.[^d].\[} } } */
+/* { dg-final { scan-assembler-not {or\.[^d].\[} } } */
+
+static const unsigned long c = 0x0000FF00;
+unsigned long
+a1 (void)
+{
+ unsigned long m;
+ m = *(volatile unsigned long*) 0xb00000c8;
+ m &= c;
+ return m;
+}
+extern volatile unsigned long xx;
+unsigned long
+a2 (void)
+{
+ unsigned long m;
+ m = xx;
+ m &= c;
+ return m;
+}
+extern volatile unsigned long yy[];
+unsigned long
+a3 (void)
+{
+ unsigned long m;
+ m = yy[3];
+ m &= 0xfe00;
+ return m;
+}
+unsigned long
+ac1 (void)
+{
+ unsigned long m;
+ m = *(volatile unsigned long*) 0xb00000c8;
+ m &= 0xfe00;
+ return m;
+}
+extern volatile unsigned long xx;
+unsigned long
+ac2 (void)
+{
+ unsigned long m;
+ m = xx;
+ m &= 0xfe00;
+ return m;
+}
+extern volatile unsigned long yy[];
+unsigned long
+ac3 (void)
+{
+ unsigned long m;
+ m = yy[3];
+ m &= 0xfe00;
+ return m;
+}
+extern volatile unsigned long yy[];
+unsigned long
+oc3 (void)
+{
+ unsigned long m;
+ m = yy[3];
+ m |= ~0xf;
+ return m;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/dg-torture.exp b/gcc/testsuite/gcc.dg/torture/dg-torture.exp
new file mode 100644
index 00000000000..b151c2e0772
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/dg-torture.exp
@@ -0,0 +1,7 @@
+# This harness is for tests that should be run at all optimisation levels.
+
+load_lib gcc-dg.exp
+
+dg-init
+gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] ""
+dg-finish
diff --git a/gcc/testsuite/gcc.dg/trampoline-1.c b/gcc/testsuite/gcc.dg/trampoline-1.c
new file mode 100644
index 00000000000..dbbd8509bff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/trampoline-1.c
@@ -0,0 +1,50 @@
+/* PR target/12865 */
+/* Origin: Waldek Hebisch <hebisch@math.uni.wroc.pl> */
+
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+/* This used to fail on various versions of Solaris 2 because the
+ trampoline couldn't be made executable. */
+
+extern void abort(void);
+
+void foo (void)
+{
+ const int correct[1100] = {1, 0, -2, 0, 1, 0, 1, -1, -10, -30, -67};
+ int i;
+
+ double x1 (void) {return 1; }
+ double x2 (void) {return -1;}
+ double x3 (void) {return -1;}
+ double x4 (void) {return 1; }
+ double x5 (void) {return 0; }
+
+ typedef double pfun(void);
+
+ double a (int k, pfun x1, pfun x2, pfun x3, pfun x4, pfun x5)
+ {
+ double b (void)
+ {
+ k = k - 1;
+ return a (k, b, x1, x2, x3, x4 );
+ }
+
+ if (k <= 0)
+ return x4 () + x5 ();
+ else
+ return b ();
+ }
+
+ for (i=0; i<=10; i++)
+ {
+ if (fabs(a( i, x1, x2, x3, x4, x5 ) - correct [i]) > 0.1)
+ abort();
+ }
+}
+
+int main (void)
+{
+ foo ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp10.c b/gcc/testsuite/gcc.dg/ultrasp10.c
new file mode 100644
index 00000000000..ffa3229fa4f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp10.c
@@ -0,0 +1,25 @@
+/* PR target/11965 */
+/* Originator: <jk@tools.de> */
+/* { dg-do run { target sparc*-*-* } } */
+/* { dg-options "-O -mcpu=ultrasparc" } */
+
+/* This used to fail on 32-bit Ultrasparc because GCC emitted
+ an invalid shift instruction. */
+
+
+static inline unsigned int shift(int n, unsigned int value)
+{
+ return value << n;
+}
+
+unsigned int val = 1;
+
+int main(void)
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ val = shift(32, val);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp2.c b/gcc/testsuite/gcc.dg/ultrasp2.c
index 1b8e5827a29..1fd821c34e8 100644
--- a/gcc/testsuite/gcc.dg/ultrasp2.c
+++ b/gcc/testsuite/gcc.dg/ultrasp2.c
@@ -4,10 +4,7 @@
/* { dg-do compile } */
/* { dg-options "" } */
-/* { dg-options "-O0 -m64" { target sparc64-*-* } } */
-/* { dg-options "-O0 -m64" { target sparcv9-*-* } } */
-/* { dg-options "" { target sparc-*-solaris2.[0-6] } } */
-/* { dg-options "" { target sparc-*-solaris2.[0-6].* } } */
+/* { dg-options "-O0" { target sparc64-*-* sparcv9-*-* } } */
short foo() {
short i = (short)(1<<15);
diff --git a/gcc/testsuite/gcc.dg/ultrasp4.c b/gcc/testsuite/gcc.dg/ultrasp4.c
index b421688f004..6cd08b23d71 100644
--- a/gcc/testsuite/gcc.dg/ultrasp4.c
+++ b/gcc/testsuite/gcc.dg/ultrasp4.c
@@ -1,10 +1,7 @@
/* Simplified from PR target/5309. */
/* { dg-do compile } */
/* { dg-options "-O2" } */
-/* { dg-options "-O2 -m64 -mcpu=ultrasparc" { target sparc64-*-* } } */
-/* { dg-options "-O2 -m64 -mcpu=ultrasparc" { target sparcv9-*-* } } */
-/* { dg-options "-O2" { target sparc-*-solaris2.[0-6] } } */
-/* { dg-options "-O2" { target sparc-*-solaris2.[0-6].* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc" { target sparc64-*-* sparcv9-*-* } } */
long bar (unsigned int);
long foo (long x, unsigned int y)
diff --git a/gcc/testsuite/gcc.dg/ultrasp5.c b/gcc/testsuite/gcc.dg/ultrasp5.c
new file mode 100644
index 00000000000..91f3d21ffb6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp5.c
@@ -0,0 +1,12 @@
+/* PR target/10072 */
+/* Originator: Peter van Hoof <p.van-hoof@qub.ac.uk> */
+/* { dg-do compile { target sparc-*-* } } */
+/* { dg-options "-std=c99 -O1 -mcpu=ultrasparc -ffast-math" } */
+
+void p(int v)
+{
+ int i=v,j;
+ float a,b,c,x[i];
+
+ x[i] = (a/(((b)>(c)) ? (b) : (c)) - (((i) == (j)) ? 1.f : 0.f));
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp6.c b/gcc/testsuite/gcc.dg/ultrasp6.c
new file mode 100644
index 00000000000..0518086402e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp6.c
@@ -0,0 +1,150 @@
+/* PR target/7784 */
+/* Originator: Peter van Hoof <p.van-hoof@qub.ac.uk> */
+/* { dg-do compile { target sparc-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc" } */
+
+typedef struct
+{
+ float EnergyErg;
+ float ots;
+} EmLine;
+
+extern const int ipH_LIKE ;
+extern const int ipHYDROGEN ;
+extern const int ipH1s;
+extern const int ipH2s;
+extern const int ipH2p;
+
+extern EmLine ****EmisLines;
+
+typedef struct
+{
+ long n;
+ long s;
+ long l;
+} Elevels;
+
+extern struct t_iso
+{
+ float ***Pop2Ion;
+ long int numLevels[2][30L];
+} iso;
+
+extern struct t_LineSave
+{
+ long int nsum;
+ long int ndsum;
+ long int nComment;
+ long int npxdd;
+ long int ipass;
+ char chHoldComments[10][200];
+} LineSave;
+
+extern struct t_hydro
+{
+ int lgHydEmiss;
+ float **pestrk ;
+} hydro;
+
+extern struct t_dense
+{
+ double DensityLaw[10];
+ float frad[500];
+ float fhden[500];
+ float den0;
+ double eden;
+} dense;
+
+extern struct t_abund
+{
+ float xIonFracs[30L +3][30L +1];
+} abund;
+
+extern struct t_CaseBHS
+{
+ long int nDensity[2][8] , ntemp[2][8] , ncut[2][8] ;
+ int lgHCaseBOK[2][8];
+} CaseBHS ;
+
+extern struct t_smbeta
+{
+ float SimHBeta,
+ cn4861,
+ cn1216,
+ sv4861,
+ sv1216;
+} smbeta;
+
+extern struct t_phycon
+{
+ float te;
+} phycon;
+
+
+extern struct t_sphere
+{
+ int lgSphere;
+ float covgeo;
+} sphere;
+
+void linadd(double xInten, float wavelength, char *chLab, char chInfo);
+
+extern struct t_radiusVar
+{
+ int lgDrNeg;
+ double dVeff;
+} radius;
+
+void lines_hydro(void)
+{
+ long int i, nelem, ipHi, ipLo;
+ double hbetab, em , EmisFac, pump;
+ char chLabel[5];
+
+ linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][3]*hydro.pestrk[3][2]*3.025e-12, 6563,"Strk",'i');
+
+ linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][4]*hydro.pestrk[4][2]*4.084e-12, 4861,"Strk",'i');
+
+ linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][4]*hydro.pestrk[4][3]*1.059e-12, 18751,"Strk",'i');
+
+ linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][5]*hydro.pestrk[5][4]*4.900e-13, 40512,"Strk",'i');
+
+ ((void)((LineSave.ipass <1 || EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ots>= 0.) || (__assert("LineSave.ipass <1 || EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ots>= 0.", "lines_hydro.c", 118), 0)));
+
+ linadd(EmisLines[ipH_LIKE][ipHYDROGEN][3][ipH2s].ots*EmisLines[ipH_LIKE][ipHYDROGEN][3][ipH2s].EnergyErg, 6563,"Dest",'i');
+
+ linadd(EmisLines[ipH_LIKE][ipHYDROGEN][5][4].ots*EmisLines[ipH_LIKE][ipHYDROGEN][5][4].EnergyErg,40516, "Dest",'i');
+
+ smbeta.SimHBeta = smbeta.SimHBeta/(float)radius.dVeff*sphere.covgeo;
+
+ linadd(smbeta.SimHBeta,4861,"Q(H)",'i');
+
+ smbeta.SimHBeta = smbeta.SimHBeta*(float)radius.dVeff/sphere.covgeo;
+
+ for( nelem=0; nelem < 30L; nelem++ )
+ {
+ int iCase;
+ for( iCase=0; iCase<2; ++iCase )
+ {
+ char chAB[2]={'A','B'};
+ char chLab[5]="Ca ";
+
+ for( ipLo=1+iCase; ipLo<(((6)<(iso.numLevels[ipH_LIKE][nelem])) ? (6) : (5)); ++ipLo )
+ {
+ for( ipHi=ipLo+1; ipHi< (((ipLo+5)<(iso.numLevels[ipH_LIKE][nelem])) ? (ipLo+5) : (iso.numLevels[ipH_LIKE][nelem])); ++ipHi )
+ {
+ float wl;
+
+ hbetab = HSRate( ipHi,ipLo , nelem+1, phycon.te , dense.eden, chAB[iCase] );
+ if( hbetab<=0. )
+ CaseBHS.lgHCaseBOK[iCase][nelem] = 0;
+
+ if( !hydro.lgHydEmiss )
+ hbetab *= abund.xIonFracs[nelem][nelem+1]*dense.eden;
+
+ linadd(hbetab,wl,chLab,'i' );
+ }
+ }
+ }
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp7.c b/gcc/testsuite/gcc.dg/ultrasp7.c
new file mode 100644
index 00000000000..defe5f3c7ad
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp7.c
@@ -0,0 +1,49 @@
+/* PR c/8281 */
+/* Originator: TANIGUCHI Yasuaki <yasuaki@k8.dion.ne.jp> */
+/* { dg-do compile { target sparc-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc -fPIC" } */
+
+static const double bp = 1.0, dp_l[] = { 0.0 };
+
+double __ieee754_pow(double x, double y)
+{
+ union {
+ int lo;
+ double d;
+ }uz;
+
+ double y1,t1,p_h,t,z;
+ double z_h,z_l,p_l;
+ double t2,r,s,u,v,w;
+ int i = 0;
+
+ double s_h,t_h;
+ double s2,s_l,t_l;
+
+
+ v = 1.0/(v+bp);
+ uz.d = s_h = s = u*v;
+ uz.lo = 0;
+ s_h = uz.d;
+ uz.d = t_h;
+ uz.lo = 3;
+ t_h = uz.d;
+ s_l = v*((u-s_h*t_h)-s_h*t_l);
+ s2 = s*s;
+ r = s2* s2* (1.1+s2*(1.2+s2*(1.3+s2*(1.4+s2*(1.5+s2*1.6)))));
+ s2 = s_h*s_h;
+ uz.lo = 0;
+ t_h = uz.d;
+ t_l = r-((t_h-3.0)-s2);
+ v = s_l*t_h+t_l*s;
+ p_l = v-(p_h-u);
+ z_h = bp *p_h;
+ z_l = bp*p_h+p_l*1.0+dp_l[i];
+ t = (double)i;
+ t1 = (((bp+z_l)+bp)+t);
+ t2 = z_l-(((t1-t)-bp)-z_h);
+ p_l = (y-y1)*t1+y*t2;
+ z = p_l+p_h;
+
+ return s*z;
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp8.c b/gcc/testsuite/gcc.dg/ultrasp8.c
new file mode 100644
index 00000000000..f9289fae0ea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp8.c
@@ -0,0 +1,39 @@
+/* PR target/10067 */
+/* Originator: <dat94ali@ludat.lth.se> */
+/* { dg-do compile { target sparc*-*-* } } */
+/* { dg-options "-O2 -mtune=supersparc" { target sparc64-*-* sparcv9-*-* } } */
+
+struct _reent;
+
+extern unsigned long __malloc_trim_threshold;
+extern unsigned long __malloc_top_pad;
+
+int _mallopt_r(struct _reent *reent_ptr, int param_number, int value)
+{
+ __malloc_lock(reent_ptr);
+
+ switch(param_number)
+ {
+ case -1:
+ __malloc_trim_threshold = value;
+ __malloc_unlock(reent_ptr);
+ return 1;
+
+ case -2:
+ __malloc_top_pad = value;
+ __malloc_unlock(reent_ptr);
+ return 1;
+
+ case -3:
+ __malloc_unlock(reent_ptr);
+ return 1;
+
+ case -4:
+ __malloc_unlock(reent_ptr);
+ return value == 0;
+
+ default:
+ __malloc_unlock(reent_ptr);
+ return 0;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/ultrasp9.c b/gcc/testsuite/gcc.dg/ultrasp9.c
new file mode 100644
index 00000000000..885420e0509
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ultrasp9.c
@@ -0,0 +1,39 @@
+/* PR optimization/11018 */
+/* Originator: <partain@dcs.gla.ac.uk> */
+/* { dg-do run { target sparc*-*-* } } */
+/* { dg-options "-O2 -mcpu=ultrasparc" } */
+
+/* This used to fail on 32-bit Ultrasparc because
+ of broken DImode shift patterns. */
+
+extern void abort(void);
+
+typedef unsigned long long uint64_t;
+typedef unsigned int size_t;
+
+
+void to_octal (uint64_t value, char *where, size_t size)
+{
+ uint64_t v = value;
+ size_t i = size;
+
+ do
+ {
+ where[--i] = '0' + (v & ((1 << 3) - 1));
+ v >>= 3;
+ }
+ while (i);
+}
+
+
+int main (void)
+{
+ char buf[8];
+
+ to_octal(010644, buf, 6);
+
+ if (buf[1] != '1')
+ abort();
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/uninit-C.c b/gcc/testsuite/gcc.dg/uninit-C.c
new file mode 100644
index 00000000000..e8ca84eefe3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/uninit-C.c
@@ -0,0 +1,20 @@
+/* Spurious uninitialized variable warning, inspired by libgcc2.c. */
+/* { dg-do compile } */
+/* { dg-options "-O -Wuninitialized" } */
+
+/* Not all platforms support TImode integers. */
+#if defined(__LP64__) || defined(__sparc__)
+typedef int TItype __attribute__ ((mode (TI))); /* { dg-error "no data type for mode" "TI" { target sparc-sun-solaris2.[0-6]* } } */
+#else
+typedef long TItype;
+#endif
+
+TItype
+__subvdi3 (TItype a, TItype b)
+{
+ TItype w;
+
+ w = a - b;
+
+ return w;
+}
diff --git a/gcc/testsuite/gcc.dg/unused-4.c b/gcc/testsuite/gcc.dg/unused-4.c
index 53236008007..99e845f45a3 100644
--- a/gcc/testsuite/gcc.dg/unused-4.c
+++ b/gcc/testsuite/gcc.dg/unused-4.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-Wunused -O3" } */
-static const int i = 0; /* { dg-warning "defined but not used" } */
+static const int i = 0;
static void f() { } /* { dg-warning "defined but not used" } */
static inline void g() { }
diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
index 496c63c7a54..7aa99667566 100644
--- a/gcc/testsuite/gcc.misc-tests/linkage.exp
+++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
@@ -53,6 +53,11 @@ if [isnative] then {
if [ string match "*32-bit*" $file_string ] {
set native_cflags "-m31"
}
+ } elseif [istarget "*-hp-hpux*"] {
+ set file_string [exec file "linkage-x.o"]
+ if [ string match "*ELF-64*" $file_string ] {
+ set native_cflags "+DD64"
+ }
}
catch { exec rm -f linkage-y.o }
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 749e1f1c2cd..2ec0408ecca 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -50,7 +50,7 @@ proc g++_version { } {
set tmp [remote_exec host "$compiler -v"]
set status [lindex $tmp 0];
set output [lindex $tmp 1];
- regexp "version.*$" $output version
+ regexp "version\[^\n\r\]*" $output version
if { $status == 0 && [info exists version] } then {
if [is_remote host] {
clone_output "$compiler $version\n"
diff --git a/gcc/testsuite/lib/g77.exp b/gcc/testsuite/lib/g77.exp
index 8f20eb48cc8..49ac6c86e74 100644
--- a/gcc/testsuite/lib/g77.exp
+++ b/gcc/testsuite/lib/g77.exp
@@ -50,7 +50,7 @@ proc g77_version { } {
set tmp [remote_exec host "$compiler -v"]
set status [lindex $tmp 0];
set output [lindex $tmp 1];
- regexp "version.*$" $output version
+ regexp "version\[^\n\r\]*" $output version
if { $status == 0 && [info exists version] } then {
if [is_remote host] {
clone_output "$compiler $version\n"
diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp
index f090cb11f49..cdba01e81d5 100644
--- a/gcc/testsuite/lib/gcc.exp
+++ b/gcc/testsuite/lib/gcc.exp
@@ -56,7 +56,7 @@ proc default_gcc_version { } {
set tmp [remote_exec host "$compiler -v"]
set status [lindex $tmp 0];
set output [lindex $tmp 1];
- regexp "version.*$" $output version
+ regexp "version\[^\n\r\]*" $output version
if { $status == 0 && [info exists version] } then {
clone_output "$compiler_name $version\n"
} else {
diff --git a/gcc/testsuite/lib/objc.exp b/gcc/testsuite/lib/objc.exp
index 3ec19e336ff..74093df667b 100644
--- a/gcc/testsuite/lib/objc.exp
+++ b/gcc/testsuite/lib/objc.exp
@@ -56,7 +56,7 @@ proc default_objc_version { } {
set tmp [remote_exec host "$compiler -v"]
set status [lindex $tmp 0];
set output [lindex $tmp 1];
- regexp "version.*$" $output version
+ regexp "version\[^\n\r\]*" $output version
if { $status == 0 && [info exists version] } then {
clone_output "$compiler_name $version\n"
} else {
diff --git a/gcc/testsuite/lib/profopt.exp b/gcc/testsuite/lib/profopt.exp
index 5ecf314977f..4d32ff2fdbe 100644
--- a/gcc/testsuite/lib/profopt.exp
+++ b/gcc/testsuite/lib/profopt.exp
@@ -66,7 +66,7 @@ if ![info exists PROFOPT_OPTIONS] {
{ -Os } ]
}
-set option_list $PROFOPT_OPTIONS
+set prof_option_list $PROFOPT_OPTIONS
#
# profopt-cleanup -- remove profiling or performance results files.
@@ -126,7 +126,7 @@ proc profopt-perf-value { testcase perf_ext optstr } {
#
proc profopt-execute { src } {
global srcdir tmpdir
- global option_list
+ global prof_option_list
global tool profile_option feedback_option prof_ext perf_ext perf_delta
global verbose
@@ -142,7 +142,7 @@ proc profopt-execute { src } {
set executable $tmpdir/[file tail [file rootname $src].x]
set count 0
- foreach option $option_list {
+ foreach option $prof_option_list {
set execname1 "${executable}${count}1"
set execname2 "${executable}${count}2"
set execname3 "${executable}${count}3"
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp
index ebca4caac75..27bf88a0cab 100644
--- a/gcc/testsuite/lib/scanasm.exp
+++ b/gcc/testsuite/lib/scanasm.exp
@@ -32,8 +32,8 @@ proc scan-assembler { args } {
switch [dg-process-target [lindex $args 1]] {
"S" { }
"N" { return }
- "F" { error "scan-assembler: `xfail' not allowed here" }
- "P" { error "scan-assembler: `xfail' not allowed here" }
+ "F" { setup_xfail "*-*-*" }
+ "P" { }
}
}
@@ -70,8 +70,8 @@ proc scan-assembler-not { args } {
switch [dg-process-target [lindex $args 1]] {
"S" { }
"N" { return }
- "F" { error "scan-assembler-not: `xfail' not allowed here" }
- "P" { error "scan-assembler-not: `xfail' not allowed here" }
+ "F" { setup_xfail "*-*-*" }
+ "P" { }
}
}
@@ -107,8 +107,8 @@ proc scan-assembler-dem { args } {
switch [dg-process-target [lindex $args 1]] {
"S" { }
"N" { return }
- "F" { error "[lindex $args 0]: `xfail' not allowed here" }
- "P" { error "[lindex $args 0]: `xfail' not allowed here" }
+ "F" { setup_xfail "*-*-*" }
+ "P" { }
}
}
@@ -153,8 +153,8 @@ proc scan-assembler-dem-not { args } {
switch [dg-process-target [lindex $args 1]] {
"S" { }
"N" { return }
- "F" { error "scan-assembler-dem-not: `xfail' not allowed here" }
- "P" { error "scan-assembler-dem-not: `xfail' not allowed here" }
+ "F" { setup_xfail "*-*-*" }
+ "P" { }
}
}
diff --git a/gcc/testsuite/objc.dg/naming-1.m b/gcc/testsuite/objc.dg/naming-1.m
index f49c73678f9..69d98b7be51 100644
--- a/gcc/testsuite/objc.dg/naming-1.m
+++ b/gcc/testsuite/objc.dg/naming-1.m
@@ -17,5 +17,5 @@ void foo(void)
void bar(void)
{
View *view; /* ok */
- View = 1; /* { dg-error "parse error" } */
+ View = 1; /* { dg-error "(parse|syntax) error" } */
}
diff --git a/gcc/testsuite/objc.dg/naming-2.m b/gcc/testsuite/objc.dg/naming-2.m
index 2d15ae61074..a4716b0ab4d 100644
--- a/gcc/testsuite/objc.dg/naming-2.m
+++ b/gcc/testsuite/objc.dg/naming-2.m
@@ -4,7 +4,7 @@
@interface Foo
@end
-float Foo; /* { dg-error "parse error before" } */
+float Foo; /* { dg-error "(parse|syntax) error before" } */
double Bar;
@interface Bar
diff --git a/gcc/testsuite/objc.dg/private-1.m b/gcc/testsuite/objc.dg/private-1.m
new file mode 100644
index 00000000000..64b361811c5
--- /dev/null
+++ b/gcc/testsuite/objc.dg/private-1.m
@@ -0,0 +1,59 @@
+/* Test errors for accessing @private and @protected variables. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@interface MySuperClass
+{
+@private
+ int private;
+
+@protected
+ int protected;
+
+@public
+ int public;
+}
+- (void) test;
+@end
+
+@implementation MySuperClass
+- (void) test
+{
+ private = 12; /* Ok */
+ protected = 12; /* Ok */
+ public = 12; /* Ok */
+}
+@end
+
+
+@interface MyClass : MySuperClass
+@end
+
+@implementation MyClass
+- (void) test
+{
+ /* Private variables simply don't exist in the subclass. */
+ private = 12;/* { dg-error "undeclared" } */
+ /* { dg-error "function it appears in" "" { target *-*-* } { 37 } } */
+
+ protected = 12; /* Ok */
+ public = 12; /* Ok */
+}
+@end
+
+int main (void)
+{
+ MyClass *m = nil;
+
+ if (m != nil)
+ {
+ int access;
+
+ access = m->private; /* { dg-error "is declared private" } */
+ access = m->protected; /* { dg-error "is declared protected" } */
+ access = m->public; /* Ok */
+ }
+
+ return 0;
+}
diff --git a/gcc/testsuite/objc.dg/private-2.m b/gcc/testsuite/objc.dg/private-2.m
new file mode 100644
index 00000000000..eff376a0c84
--- /dev/null
+++ b/gcc/testsuite/objc.dg/private-2.m
@@ -0,0 +1,54 @@
+/* Test warnings for shadowing instance variables. */
+/* Author: Nicola Pero <nicola@brainstorm.co.uk>. */
+/* { dg-do compile } */
+#include <objc/objc.h>
+
+@interface MySuperClass
+{
+@private
+ int private;
+
+@protected
+ int protected;
+
+@public
+ int public;
+}
+- (void) test;
+@end
+
+@implementation MySuperClass
+- (void) test
+{
+ /* FIXME: I wonder if the warnings shouldn't be better generated
+ when the variable is declared, rather than used! */
+ int private = 12;
+ int protected = 12;
+ int public = 12;
+ int a;
+
+ a = private; /* { dg-warning "hides instance variable" } */
+ a = protected; /* { dg-warning "hides instance variable" } */
+ a = public; /* { dg-warning "hides instance variable" } */
+}
+@end
+
+
+@interface MyClass : MySuperClass
+@end
+
+@implementation MyClass
+- (void) test
+{
+ int private = 12;
+ int protected = 12;
+ int public = 12;
+ int a;
+
+ /* The private variable can be shadowed without warnings, because
+ * it's invisible, and not accessible, to the subclass! */
+ a = private; /* Ok */
+ a = protected; /* { dg-warning "hides instance variable" } */
+ a = public; /* { dg-warning "hides instance variable" } */
+}
+@end
diff --git a/gcc/testsuite/objc.dg/proto-lossage-3.m b/gcc/testsuite/objc.dg/proto-lossage-3.m
new file mode 100644
index 00000000000..512a59ee6dc
--- /dev/null
+++ b/gcc/testsuite/objc.dg/proto-lossage-3.m
@@ -0,0 +1,25 @@
+/* Crash due to descriptionFor(Instance|Class)Method applied to
+ a protocol with no instance/class methods respectively.
+ Problem report and original fix by richard@brainstorm.co.uk. */
+/* { dg-do run } */
+#include <objc/objc.h>
+#include <objc/Object.h>
+#include <objc/Protocol.h>
+
+@protocol NoInstanceMethods
++ testMethod;
+@end
+
+@protocol NoClassMethods
+- testMethod;
+@end
+
+int
+main()
+{
+[@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)];
+[@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)];
+[@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)];
+[@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)];
+return 0;
+}
diff --git a/gcc/testsuite/treelang/ChangeLog b/gcc/testsuite/treelang/ChangeLog
index 09a69046ad4..ea80c371801 100644
--- a/gcc/testsuite/treelang/ChangeLog
+++ b/gcc/testsuite/treelang/ChangeLog
@@ -1,3 +1,43 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-05-07 Tim Josling <tej@melbpc.org.au>
* Makefile.in: Fix copyright
diff --git a/gcc/timevar.c b/gcc/timevar.c
index 7a10fe78b47..47f2a68b89a 100644
--- a/gcc/timevar.c
+++ b/gcc/timevar.c
@@ -111,6 +111,7 @@ static float clocks_to_msec;
#include "flags.h"
#include "timevar.h"
+#include "toplev.h"
/* See timevar.h for an explanation of timing variables. */
@@ -317,7 +318,11 @@ timevar_pop (timevar)
return;
if (&timevars[timevar] != stack->timevar)
- abort ();
+ {
+ sorry ("cannot timevar_pop '%s' when top of timevars stack is '%s'",
+ timevars[timevar].name, stack->timevar->name);
+ abort ();
+ }
/* What time is it? */
get_time (&now);
diff --git a/gcc/timevar.def b/gcc/timevar.def
index 49eeedbf0a7..d26f10a6599 100644
--- a/gcc/timevar.def
+++ b/gcc/timevar.def
@@ -51,6 +51,9 @@ DEFTIMEVAR (TV_LIFE_UPDATE , "life info update")
DEFTIMEVAR (TV_CPP , "preprocessing")
DEFTIMEVAR (TV_LEX , "lexical analysis")
DEFTIMEVAR (TV_PARSE , "parser")
+DEFTIMEVAR (TV_NAME_LOOKUP , "name lookup")
+DEFTIMEVAR (TV_OVERLOAD , "overload resolution")
+DEFTIMEVAR (TV_TEMPLATE_INSTANTIATION, "template instantiation")
DEFTIMEVAR (TV_EXPAND , "expand")
DEFTIMEVAR (TV_VARCONST , "varconst")
DEFTIMEVAR (TV_INTEGRATION , "integration")
diff --git a/gcc/timevar.h b/gcc/timevar.h
index 149751c3467..dcf1701aef9 100644
--- a/gcc/timevar.h
+++ b/gcc/timevar.h
@@ -76,6 +76,9 @@ typedef enum
timevar_id_t;
#undef DEFTIMEVAR
+/* Execute the sequence: timevar_pop (TV), return (E); */
+#define POP_TIMEVAR_AND_RETURN(TV, E) return (timevar_pop (TV), (E))
+
extern void init_timevar PARAMS ((void));
extern void timevar_push PARAMS ((timevar_id_t));
extern void timevar_pop PARAMS ((timevar_id_t));
diff --git a/gcc/tlink.c b/gcc/tlink.c
index b4a724e1946..f1ad176a6d2 100644
--- a/gcc/tlink.c
+++ b/gcc/tlink.c
@@ -465,8 +465,8 @@ recompile_files ()
{
file *f;
- putenv (xstrdup ("COMPILER_PATH"));
- putenv (xstrdup ("LIBRARY_PATH"));
+ putenv (xstrdup ("COMPILER_PATH="));
+ putenv (xstrdup ("LIBRARY_PATH="));
while ((f = file_pop ()) != NULL)
{
@@ -631,10 +631,16 @@ scan_linker_output (fname)
else if (p = strchr (oldq, '"'), p)
p++, q = strchr (p, '"');
- /* Don't let the strstr's below see the demangled name; we
- might get spurious matches. */
if (p)
- p[-1] = '\0';
+ {
+ /* Don't let the strstr's below see the demangled name; we
+ might get spurious matches. */
+ p[-1] = '\0';
+
+ /* powerpc64-linux references .foo when calling function foo. */
+ if (*p == '.')
+ p++;
+ }
/* We need to check for certain error keywords here, or we would
mistakenly use GNU ld's "In function `foo':" message. */
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 0c06857e55a..8e8486d8a62 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1,6 +1,6 @@
/* Top level of GNU C compiler
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1115,7 +1115,7 @@ static const lang_independent_options f_options[] =
{"data-sections", &flag_data_sections, 1,
N_("place data items into their own section") },
{"verbose-asm", &flag_verbose_asm, 1,
- N_("Add extra commentry to assembler output") },
+ N_("Add extra commentary to assembler output") },
{"gnu-linker", &flag_gnu_linker, 1,
N_("Output GNU ld formatted global initializers") },
{"regmove", &flag_regmove, 1,
@@ -1143,7 +1143,7 @@ static const lang_independent_options f_options[] =
{"align-functions", &align_functions, 0,
N_("Align the start of functions") },
{"merge-constants", &flag_merge_constants, 1,
- N_("Attempt to merge identical constants accross compilation units") },
+ N_("Attempt to merge identical constants across compilation units") },
{"merge-all-constants", &flag_merge_constants, 2,
N_("Attempt to merge identical constants and constant variables") },
{"dump-unnumbered", &flag_dump_unnumbered, 1,
@@ -1904,8 +1904,10 @@ wrapup_global_declarations (vec, len)
{
decl = vec[i];
- /* We're not deferring this any longer. */
- DECL_DEFER_OUTPUT (decl) = 0;
+ /* We're not deferring this any longer. Assignment is
+ conditional to avoid needlessly dirtying PCH pages. */
+ if (DECL_DEFER_OUTPUT (decl) != 0)
+ DECL_DEFER_OUTPUT (decl) = 0;
if (TREE_CODE (decl) == VAR_DECL && DECL_SIZE (decl) == 0)
(*lang_hooks.finish_incomplete_decl) (decl);
@@ -2037,7 +2039,11 @@ check_global_declarations (vec, len)
/* Warn about static fns or vars defined but not used. */
if (((warn_unused_function && TREE_CODE (decl) == FUNCTION_DECL)
- || (warn_unused_variable && TREE_CODE (decl) == VAR_DECL))
+ /* We don't warn about "static const" variables because the
+ "rcs_id" idiom uses that construction. */
+ || (warn_unused_variable
+ && TREE_CODE (decl) == VAR_DECL && ! TREE_READONLY (decl)))
+ && ! DECL_IN_SYSTEM_HEADER (decl)
&& ! TREE_USED (decl)
/* The TREE_USED bit for file-scope decls is kept in the identifier,
to handle multiple external decls in different scopes. */
@@ -2112,8 +2118,6 @@ pop_srcloc ()
static void
compile_file ()
{
- tree globals;
-
/* Initialize yet another pass. */
init_final (main_input_filename);
@@ -2136,25 +2140,7 @@ compile_file ()
if (flag_syntax_only)
return;
- globals = (*lang_hooks.decls.getdecls) ();
-
- /* Really define vars that have had only a tentative definition.
- Really output inline functions that must actually be callable
- and have not been output so far. */
-
- {
- int len = list_length (globals);
- tree *vec = (tree *) xmalloc (sizeof (tree) * len);
- int i;
- tree decl;
-
- /* Process the decls in reverse order--earliest first.
- Put them into VEC from back to front, then take out from front. */
-
- for (i = 0, decl = globals; i < len; i++, decl = TREE_CHAIN (decl))
- vec[len - i - 1] = decl;
-
- wrapup_global_declarations (vec, len);
+ (*lang_hooks.decls.final_write_globals)();
/* This must occur after the loop to output deferred functions. Else
the profiler initializer would not be emitted if all the functions
@@ -2165,12 +2151,6 @@ compile_file ()
loop above. */
output_func_start_profiler ();
- check_global_declarations (vec, len);
-
- /* Clean up. */
- free (vec);
- }
-
/* Write out any pending weak symbol declarations. */
weak_finish ();
@@ -2454,12 +2434,17 @@ rest_of_compilation (decl)
goto exit_rest_of_compilation;
}
}
- else
- /* ??? Note that this has the effect of making it look
- like "inline" was specified for a function if we choose
- to inline it. This isn't quite right, but it's
- probably not worth the trouble to fix. */
- inlinable = DECL_INLINE (decl) = 1;
+ else
+ {
+ /* ??? Note that we used to just make it look like if
+ the "inline" keyword was specified when we decide
+ to inline it (because of -finline-functions).
+ garloff at suse dot de, 2002-04-24: Add another flag to
+ actually record this piece of information. */
+ if (!DECL_INLINE (decl))
+ DID_INLINE_FUNC (decl) = 1;
+ inlinable = DECL_INLINE (decl) = 1;
+ }
}
insns = get_insns ();
@@ -2599,9 +2584,12 @@ rest_of_compilation (decl)
delete_unreachable_blocks ();
/* Turn NOTE_INSN_PREDICTIONs into branch predictions. */
- timevar_push (TV_BRANCH_PROB);
- note_prediction_to_br_prob ();
- timevar_pop (TV_BRANCH_PROB);
+ if (flag_guess_branch_prob)
+ {
+ timevar_push (TV_BRANCH_PROB);
+ note_prediction_to_br_prob ();
+ timevar_pop (TV_BRANCH_PROB);
+ }
/* We may have potential sibling or tail recursion sites. Select one
(of possibly multiple) methods of performing the call. */
@@ -2628,6 +2616,15 @@ rest_of_compilation (decl)
delete_insn (insn);
}
close_dump_file (DFI_sibling, print_rtl, get_insns ());
+
+ /* We have to issue these warnings now already, because CFG cleanups
+ further down may destroy the required information. However, this
+ must be done after the sibcall optimization pass because the barrier
+ emitted for noreturn calls that are candidate for the optimization
+ is folded into the CALL_PLACEHOLDER until after this pass, so the
+ CFG is inaccurate. */
+ check_function_return_warnings ();
+
timevar_pop (TV_JUMP);
scope_to_insns_initialize ();
@@ -2682,21 +2679,26 @@ rest_of_compilation (decl)
timevar_push (TV_JUMP);
/* Turn NOTE_INSN_EXPECTED_VALUE into REG_BR_PROB. Do this
before jump optimization switches branch directions. */
- expected_value_to_br_prob ();
+ if (flag_guess_branch_prob)
+ expected_value_to_br_prob ();
reg_scan (insns, max_reg_num (), 0);
rebuild_jump_labels (insns);
find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
+ delete_trivially_dead_insns (insns, max_reg_num ());
if (rtl_dump_file)
dump_flow_info (rtl_dump_file);
cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0) | CLEANUP_PRE_LOOP
| (flag_thread_jumps ? CLEANUP_THREADING : 0));
/* CFG is no longer maintained up-to-date. */
- free_bb_for_insn ();
- copy_loop_headers (insns);
+ if (optimize)
+ {
+ free_bb_for_insn ();
+ copy_loop_headers (insns);
+ find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
+ }
purge_line_number_notes (insns);
- find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
timevar_pop (TV_JUMP);
close_dump_file (DFI_jump, print_rtl, insns);
@@ -2774,7 +2776,8 @@ rest_of_compilation (decl)
}
timevar_push (TV_JUMP);
- cleanup_cfg (optimize ? CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP: 0);
+ if (optimize)
+ cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
/* Try to identify useless null pointer tests and delete them. */
if (flag_delete_null_pointer_checks)
@@ -2818,7 +2821,8 @@ rest_of_compilation (decl)
tem = cse_main (insns, max_reg_num (), 0, rtl_dump_file);
if (tem)
rebuild_jump_labels (insns);
- purge_all_dead_edges (0);
+ if (purge_all_dead_edges (0))
+ delete_unreachable_blocks ();
delete_trivially_dead_insns (insns, max_reg_num ());
@@ -2849,8 +2853,8 @@ rest_of_compilation (decl)
open_dump_file (DFI_addressof, decl);
purge_addressof (insns);
- if (optimize)
- purge_all_dead_edges (0);
+ if (optimize && purge_all_dead_edges (0))
+ delete_unreachable_blocks ();
reg_scan (insns, max_reg_num (), 1);
close_dump_file (DFI_addressof, print_rtl, insns);
@@ -2972,8 +2976,9 @@ rest_of_compilation (decl)
open_dump_file (DFI_cfg, decl);
if (rtl_dump_file)
dump_flow_info (rtl_dump_file);
- cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0)
- | (flag_thread_jumps ? CLEANUP_THREADING : 0));
+ if (optimize)
+ cleanup_cfg (CLEANUP_EXPENSIVE
+ | (flag_thread_jumps ? CLEANUP_THREADING : 0));
/* It may make more sense to mark constant functions after dead code is
eliminated by life_analyzis, but we need to do it early, as -fprofile-arcs
@@ -3012,7 +3017,7 @@ rest_of_compilation (decl)
close_dump_file (DFI_bp, print_rtl_with_bb, insns);
timevar_pop (TV_BRANCH_PROB);
}
- if (optimize >= 0)
+ if (optimize > 0)
{
open_dump_file (DFI_ce1, decl);
if (flag_if_conversion)
@@ -3052,6 +3057,13 @@ rest_of_compilation (decl)
dump_flow_info (rtl_dump_file);
/* CFG is no longer maintained up-to-date. */
tem = cse_main (insns, max_reg_num (), 1, rtl_dump_file);
+
+ /* Run a pass to eliminate duplicated assignments to condition
+ code registers. We have to run this after bypass_jumps,
+ because it makes it harder for that pass to determine whether
+ a jump can be bypassed safely. */
+ cse_condition_code_reg ();
+
purge_all_dead_edges (0);
delete_trivially_dead_insns (insns, max_reg_num ());
@@ -3073,8 +3085,6 @@ rest_of_compilation (decl)
open_dump_file (DFI_life, decl);
regclass_init ();
- check_function_return_warnings ();
-
#ifdef ENABLE_CHECKING
verify_flow_info ();
#endif
@@ -3084,8 +3094,6 @@ rest_of_compilation (decl)
| (flag_thread_jumps ? CLEANUP_THREADING : 0));
timevar_pop (TV_FLOW);
- no_new_pseudos = 1;
-
if (warn_uninitialized || extra_warnings)
{
uninitialized_vars_warning (DECL_INITIAL (decl));
@@ -3095,17 +3103,19 @@ rest_of_compilation (decl)
if (optimize)
{
- clear_bb_flags ();
if (!flag_new_regalloc && initialize_uninitialized_subregs ())
{
- /* Insns were inserted, so things might look a bit different. */
+ /* Insns were inserted, and possibly pseudos created, so
+ things might look a bit different. */
insns = get_insns ();
- update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES,
- PROP_LOG_LINKS | PROP_REG_INFO
- | PROP_DEATH_NOTES);
+ allocate_reg_life_data ();
+ update_life_info (NULL, UPDATE_LIFE_GLOBAL_RM_NOTES,
+ PROP_LOG_LINKS | PROP_REG_INFO | PROP_DEATH_NOTES);
}
}
+ no_new_pseudos = 1;
+
close_dump_file (DFI_life, print_rtl_with_bb, insns);
ggc_collect ();
@@ -3363,10 +3373,13 @@ rest_of_compilation (decl)
#endif
/* If optimizing, then go ahead and split insns now. */
+#ifndef STACK_REGS
if (optimize > 0)
+#endif
split_all_insns (0);
- cleanup_cfg (optimize ? CLEANUP_EXPENSIVE : 0);
+ if (optimize)
+ cleanup_cfg (CLEANUP_EXPENSIVE);
/* On some machines, the prologue and epilogue code, or parts thereof,
can be represented as RTL. Doing so lets us schedule insns between
@@ -3434,10 +3447,6 @@ rest_of_compilation (decl)
close_dump_file (DFI_ce3, print_rtl_with_bb, insns);
timevar_pop (TV_IFCVT2);
}
-#ifdef STACK_REGS
- if (optimize)
- split_all_insns (1);
-#endif
#ifdef INSN_SCHEDULING
if (optimize > 0 && flag_schedule_insns_after_reload)
@@ -3465,6 +3474,23 @@ rest_of_compilation (decl)
#endif
#ifdef STACK_REGS
+#if defined (HAVE_ATTR_length)
+ /* If flow2 creates new instructions which need splitting
+ and scheduling after reload is not done, they might not be
+ splitten until final which doesn't allow splitting
+ if HAVE_ATTR_length. */
+#ifdef INSN_SCHEDULING
+ if (optimize && !flag_schedule_insns_after_reload)
+#else
+ if (optimize)
+#endif
+ {
+ timevar_push (TV_SHORTEN_BRANCH);
+ split_all_insns (1);
+ timevar_pop (TV_SHORTEN_BRANCH);
+ }
+#endif
+
timevar_push (TV_REG_STACK);
open_dump_file (DFI_stack, decl);
@@ -3687,6 +3713,10 @@ display_help ()
printf (_(" -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"));
printf (_(" -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"));
printf (_(" -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"));
+ printf (_(" -fstack-limit-register=<register> Trap if the stack goes past <register>\n"));
+ printf (_(" -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>\n"));
+ printf (_(" -frandom-seed=<string> Make compile reproducible using <string>\n"));
+
for (i = ARRAY_SIZE (f_options); i--;)
{
@@ -3964,6 +3994,16 @@ decode_f_option (arg)
read_integral_parameter (option_value, arg - 2,
MAX_INLINE_INSNS);
set_param_value ("max-inline-insns", val);
+ set_param_value ("max-inline-insns-single", val/2);
+ set_param_value ("max-inline-insns-auto", val/2);
+ set_param_value ("max-inline-insns-rtl", val);
+ if (val/4 < MIN_INLINE_INSNS)
+ {
+ if (val/4 > 10)
+ set_param_value ("min-inline-insns", val/4);
+ else
+ set_param_value ("min-inline-insns", 10);
+ }
}
else if ((option_value = skip_leading_substring (arg, "tls-model=")))
{
@@ -4032,6 +4072,10 @@ decode_f_option (arg)
}
else if (!strcmp (arg, "no-stack-limit"))
stack_limit_rtx = NULL_RTX;
+ else if ((option_value = skip_leading_substring (arg, "random-seed=")))
+ flag_random_seed = option_value;
+ else if (!strcmp (arg, "no-random-seed"))
+ flag_random_seed = NULL;
else if (!strcmp (arg, "preprocessed"))
/* Recognize this switch but do nothing. This prevents warnings
about an unrecognized switch if cpplib has not been linked in. */
@@ -4245,18 +4289,21 @@ independent_decode_option (argc, argv)
{
display_help ();
exit_after_options = 1;
+ return 1;
}
if (!strcmp (arg, "-target-help"))
{
display_target_options ();
exit_after_options = 1;
+ return 1;
}
if (!strcmp (arg, "-version"))
{
print_version (stderr, "");
exit_after_options = 1;
+ return 1;
}
/* Handle '--param <name>=<value>'. */
@@ -4534,6 +4581,9 @@ print_version (file, indent)
, indent, *indent != 0 ? " " : "",
lang_hooks.name, version_string, TARGET_NAME,
indent, __VERSION__);
+ fnotice (file, "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n",
+ indent, *indent != 0 ? " " : "",
+ PARAM_VALUE (GGC_MIN_EXPAND), PARAM_VALUE (GGC_MIN_HEAPSIZE));
}
/* Print an option value and return the adjusted position in the line.
@@ -4580,6 +4630,12 @@ print_switch_values (file, pos, max, indent, sep, term)
size_t j;
char **p;
+ /* Fill in the -frandom-seed option, if the user didn't pass it, so
+ that it can be printed below. This helps reproducibility. Of
+ course, the string may never be used, but we can't tell that at
+ this point in the compile. */
+ default_flag_random_seed ();
+
/* Print the options as passed. */
pos = print_single_switch (file, pos, max, indent, *indent ? " " : "", term,
@@ -4774,6 +4830,9 @@ parse_options_and_default_flags (argc, argv)
/* Register the language-independent parameters. */
add_params (lang_independent_params, LAST_PARAM);
+ /* This must be done after add_params but before argument processing. */
+ init_ggc_heuristics();
+
/* Perform language-specific options initialization. */
(*lang_hooks.init_options) ();
@@ -5075,7 +5134,7 @@ process_options ()
print_switch_values (stderr, 0, MAX_LINE, "", " ", "\n");
}
- if (! quiet_flag)
+ if (! quiet_flag || flag_detailed_statistics)
time_report = 1;
if (flag_syntax_only)
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 0f5ab59158f..a4da29adeca 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -35,6 +35,7 @@ Boston, MA 02111-1307, USA. */
#include "hashtab.h"
#include "splay-tree.h"
#include "langhooks.h"
+#include "diagnostic.h"
/* This should be eventually be generalized to other languages, but
this would require a shared function-as-trees infrastructure. */
@@ -125,6 +126,8 @@ static tree add_stmt_to_compound PARAMS ((tree, tree, tree));
#endif /* INLINER_FOR_JAVA */
static tree find_alloca_call_1 PARAMS ((tree *, int *, void *));
static tree find_alloca_call PARAMS ((tree));
+static tree find_builtin_longjmp_call_1 PARAMS ((tree *, int *, void *));
+static tree find_builtin_longjmp_call PARAMS ((tree));
/* The approximate number of instructions per statement. This number
need not be particularly accurate; it is used only to make
@@ -661,6 +664,10 @@ initialize_inlined_parameters (id, args, fn, block)
if (DECL_P (value))
value = build1 (NOP_EXPR, TREE_TYPE (value), value);
+ /* If this is a constant, make sure it has the right type. */
+ else if (TREE_TYPE (value) != TREE_TYPE (p))
+ value = fold (build1 (NOP_EXPR, TREE_TYPE (p), value));
+
splay_tree_insert (id->decl_map,
(splay_tree_key) p,
(splay_tree_value) value);
@@ -871,7 +878,7 @@ tree_inlinable_function_p (fn)
return inlinable_function_p (fn, NULL);
}
-/* if *TP is possibly call to alloca, return nonzero. */
+/* If *TP is possibly call to alloca, return nonzero. */
static tree
find_alloca_call_1 (tp, walk_subtrees, data)
tree *tp;
@@ -883,13 +890,38 @@ find_alloca_call_1 (tp, walk_subtrees, data)
return NULL;
}
-/* Return subexpression representing possible alloca call,
- if any. */
+/* Return subexpression representing possible alloca call, if any. */
static tree
find_alloca_call (exp)
tree exp;
{
- return walk_tree (&exp, find_alloca_call_1, NULL, NULL);
+ return walk_tree_without_duplicates (&exp, find_alloca_call_1, NULL);
+}
+
+static tree
+find_builtin_longjmp_call_1 (tp, walk_subtrees, data)
+ tree *tp;
+ int *walk_subtrees ATTRIBUTE_UNUSED;
+ void *data ATTRIBUTE_UNUSED;
+{
+ tree exp = *tp, decl;
+
+ if (TREE_CODE (exp) == CALL_EXPR
+ && TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
+ && (decl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0),
+ TREE_CODE (decl) == FUNCTION_DECL)
+ && DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL
+ && DECL_FUNCTION_CODE (decl) == BUILT_IN_LONGJMP)
+ return decl;
+
+ return NULL;
+}
+
+static tree
+find_builtin_longjmp_call (exp)
+ tree exp;
+{
+ return walk_tree_without_duplicates (&exp, find_builtin_longjmp_call_1, NULL);
}
/* Returns nonzero if FN is a function that can be inlined into the
@@ -903,6 +935,7 @@ inlinable_function_p (fn, id)
{
int inlinable;
int currfn_insns;
+ int max_inline_insns_single = MAX_INLINE_INSNS_SINGLE;
/* If we've already decided this function shouldn't be inlined,
there's no need to check again. */
@@ -911,7 +944,13 @@ inlinable_function_p (fn, id)
/* Assume it is not inlinable. */
inlinable = 0;
-
+
+ /* We may be here either because fn is declared inline or because
+ we use -finline-functions. For the second case, we are more
+ restrictive. */
+ if (DID_INLINE_FUNC (fn))
+ max_inline_insns_single = MAX_INLINE_INSNS_AUTO;
+
/* The number of instructions (estimated) of current function. */
currfn_insns = DECL_NUM_STMTS (fn) * INSNS_PER_STMT;
@@ -926,11 +965,24 @@ inlinable_function_p (fn, id)
DECL_INLINE set. */
else if (! DECL_INLINE (fn))
;
+#ifdef INLINER_FOR_JAVA
+ /* Synchronized methods can't be inlined. This is a bug. */
+ else if (METHOD_SYNCHRONIZED (fn))
+ ;
+#endif /* INLINER_FOR_JAVA */
/* We can't inline functions that are too big. Only allow a single
function to be of MAX_INLINE_INSNS_SINGLE size. Make special
allowance for extern inline functions, though. */
else if (! (*lang_hooks.tree_inlining.disregard_inline_limits) (fn)
- && currfn_insns > MAX_INLINE_INSNS_SINGLE)
+ && currfn_insns > max_inline_insns_single)
+ ;
+ /* We can't inline functions that call __builtin_longjmp at all.
+ The non-local goto machenery really requires the destination
+ be in a different function. If we allow the function calling
+ __builtin_longjmp to be inlined into the function calling
+ __builtin_setjmp, Things will Go Awry. */
+ /* ??? Need front end help to identify "regular" non-local goto. */
+ else if (find_builtin_longjmp_call (DECL_SAVED_TREE (fn)))
;
/* Refuse to inline alloca call unless user explicitly forced so as this may
change program's memory overhead drastically when the function using alloca
@@ -952,7 +1004,8 @@ inlinable_function_p (fn, id)
/* In case we don't disregard the inlining limits and we basically
can inline this function, investigate further. */
if (! (*lang_hooks.tree_inlining.disregard_inline_limits) (fn)
- && inlinable)
+ && inlinable
+ && currfn_insns > MIN_INLINE_INSNS)
{
int sum_insns = (id ? id->inlined_stmts : 0) * INSNS_PER_STMT
+ currfn_insns;
@@ -965,8 +1018,7 @@ inlinable_function_p (fn, id)
with slope -1/MAX_INLINE_SLOPE to exceedingly decrease the
allowable size. We always allow a size of MIN_INLINE_INSNS
though. */
- else if ((sum_insns > MAX_INLINE_INSNS)
- && (currfn_insns > MIN_INLINE_INSNS))
+ else if (sum_insns > MAX_INLINE_INSNS)
{
int max_curr = MAX_INLINE_INSNS_SINGLE
- (sum_insns - MAX_INLINE_INSNS) / MAX_INLINE_SLOPE;
@@ -1074,6 +1126,19 @@ expand_call_inline (tp, walk_subtrees, data)
abort ();
#endif /* INLINER_FOR_JAVA */
}
+ else if (TREE_CODE (t) == EXPR_WITH_FILE_LOCATION)
+ {
+ /* We're walking the subtree directly. */
+ *walk_subtrees = 0;
+ /* Update the source position. */
+ push_srcloc (EXPR_WFL_FILENAME (t), EXPR_WFL_LINENO (t));
+ walk_tree (&EXPR_WFL_NODE (t), expand_call_inline, data,
+ id->tree_pruner);
+ /* Restore the original source position. */
+ pop_srcloc ();
+
+ return NULL_TREE;
+ }
if (TYPE_P (t))
/* Because types were not copied in copy_body, CALL_EXPRs beneath
@@ -1106,7 +1171,16 @@ expand_call_inline (tp, walk_subtrees, data)
/* Don't try to inline functions that are not well-suited to
inlining. */
if (!inlinable_function_p (fn, id))
- return NULL_TREE;
+ {
+ if (warn_inline && DECL_INLINE (fn) && !DID_INLINE_FUNC (fn)
+ && !DECL_IN_SYSTEM_HEADER (fn)
+ && !lookup_attribute ("noinline", DECL_ATTRIBUTES (fn)))
+ {
+ warning_with_decl (fn, "inlining failed in call to `%s'");
+ warning ("called from here");
+ }
+ return NULL_TREE;
+ }
if (! (*lang_hooks.tree_inlining.start_inlining) (fn))
return NULL_TREE;
@@ -1370,6 +1444,13 @@ optimize_inline_calls (fn)
inline_data id;
tree prev_fn;
+
+ /* There is no point in performing inlining if errors have already
+ occurred -- and we might crash if we try to inline invalid
+ code. */
+ if (errorcount || sorrycount)
+ return;
+
/* Clear out ID. */
memset (&id, 0, sizeof (id));
@@ -1492,10 +1573,9 @@ walk_tree (tp, func, data, htab_)
/* Don't walk the same tree twice, if the user has requested
that we avoid doing so. */
- if (htab_find (htab, *tp))
- return NULL_TREE;
- /* If we haven't already seen this node, add it to the table. */
slot = htab_find_slot (htab, *tp, INSERT);
+ if (*slot)
+ return NULL_TREE;
*slot = *tp;
}
@@ -1617,6 +1697,7 @@ walk_tree (tp, func, data, htab_)
case ENUMERAL_TYPE:
case BLOCK:
case RECORD_TYPE:
+ case CHAR_TYPE:
/* None of thse have subtrees other than those already walked
above. */
break;
diff --git a/gcc/tree.c b/gcc/tree.c
index 04fddb26dd3..415d0824a36 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1,6 +1,6 @@
/* Language-independent node constructors for parse phase of GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -723,6 +723,24 @@ integer_pow2p (expr)
|| (low == 0 && (high & (high - 1)) == 0));
}
+/* Return 1 if EXPR is an integer constant other than zero or a
+ complex constant other than zero. */
+
+int
+integer_nonzerop (expr)
+ tree expr;
+{
+ STRIP_NOPS (expr);
+
+ return ((TREE_CODE (expr) == INTEGER_CST
+ && ! TREE_CONSTANT_OVERFLOW (expr)
+ && (TREE_INT_CST_LOW (expr) != 0
+ || TREE_INT_CST_HIGH (expr) != 0))
+ || (TREE_CODE (expr) == COMPLEX_CST
+ && (integer_nonzerop (TREE_REALPART (expr))
+ || integer_nonzerop (TREE_IMAGPART (expr)))));
+}
+
/* Return the power of two represented by a tree node known to be a
power of two. */
@@ -1668,6 +1686,13 @@ unsafe_for_reeval (expr)
unsafeness = 1;
break;
+ case EXIT_BLOCK_EXPR:
+ /* EXIT_BLOCK_LABELED_BLOCK, a.k.a. TREE_OPERAND (expr, 0), holds
+ a reference to an ancestor LABELED_BLOCK, so we need to avoid
+ unbounded recursion in the 'e' traversal code below. */
+ exp = EXIT_BLOCK_RETURN (expr);
+ return exp ? unsafe_for_reeval (exp) : 0;
+
default:
tmp = (*lang_hooks.unsafe_for_reeval) (expr);
if (tmp >= 0)
@@ -4004,10 +4029,10 @@ get_narrower (op, unsignedp_ptr)
/* See what's inside this conversion. If we decide to strip it,
we will set WIN. */
- op = TREE_OPERAND (op, 0);
if (bitschange > 0)
{
+ op = TREE_OPERAND (op, 0);
/* An extension: the outermost one can be stripped,
but remember whether it is zero or sign extension. */
if (first)
@@ -4026,6 +4051,7 @@ get_narrower (op, unsignedp_ptr)
if (first)
uns = TREE_UNSIGNED (TREE_TYPE (op));
first = 0;
+ op = TREE_OPERAND (op, 0);
}
win = op;
@@ -4345,6 +4371,38 @@ dump_tree_statistics ()
#define FILE_FUNCTION_FORMAT "_GLOBAL__%s_%s"
+const char *flag_random_seed;
+
+/* Set up a default flag_random_seed value, if there wasn't one already. */
+
+void
+default_flag_random_seed ()
+{
+ unsigned HOST_WIDE_INT value;
+ char *new_random_seed;
+
+ if (flag_random_seed != NULL)
+ return;
+
+ /* Get some more or less random data. */
+#ifdef HAVE_GETTIMEOFDAY
+ {
+ struct timeval tv;
+
+ gettimeofday (&tv, NULL);
+ value = (((unsigned HOST_WIDE_INT) tv.tv_usec << 16)
+ ^ tv.tv_sec ^ getpid ());
+ }
+#else
+ value = getpid ();
+#endif
+
+ /* This slightly overestimates the space required. */
+ new_random_seed = xmalloc (HOST_BITS_PER_WIDE_INT / 3 + 2);
+ sprintf (new_random_seed, HOST_WIDE_INT_PRINT_UNSIGNED, value);
+ flag_random_seed = new_random_seed;
+}
+
/* Appends 6 random characters to TEMPLATE to (hopefully) avoid name
clashes in cases where we can't reliably choose a unique name.
@@ -4356,40 +4414,20 @@ append_random_chars (template)
{
static const char letters[]
= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- static unsigned HOST_WIDE_INT value;
unsigned HOST_WIDE_INT v;
+ size_t i;
- if (! value)
- {
- struct stat st;
+ default_flag_random_seed ();
- /* VALUE should be unique for each file and must not change between
- compiles since this can cause bootstrap comparison errors. */
-
- if (stat (main_input_filename, &st) < 0)
- {
- /* This can happen when preprocessed text is shipped between
- machines, e.g. with bug reports. Assume that uniqueness
- isn't actually an issue. */
- value = 1;
- }
- else
- {
- /* In VMS, ino is an array, so we have to use both values. We
- conditionalize that. */
-#ifdef VMS
-#define INO_TO_INT(INO) ((int) (INO)[1] << 16 ^ (int) (INO)[2])
-#else
-#define INO_TO_INT(INO) INO
-#endif
- value = st.st_dev ^ INO_TO_INT (st.st_ino) ^ st.st_mtime;
- }
- }
+ /* This isn't a very good hash, but it does guarantee no collisions
+ when the random string is generated by the code above and the time
+ delta is small. */
+ v = 0;
+ for (i = 0; i < strlen (flag_random_seed); i++)
+ v = (v << 4) ^ (v >> (HOST_BITS_PER_WIDE_INT - 4)) ^ flag_random_seed[i];
template += strlen (template);
- v = value;
-
/* Fill in the random bits. */
template[0] = letters[v % 62];
v /= 62;
diff --git a/gcc/tree.h b/gcc/tree.h
index 36e7fd4eeb3..4fa56527118 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1,6 +1,6 @@
/* Front-end tree definitions for GNU compiler.
Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -174,7 +174,7 @@ struct tree_common GTY(())
TREE_STATIC in
VAR_DECL, FUNCTION_DECL, CONSTRUCTOR, ADDR_EXPR
TREE_NO_UNUSED_WARNING in
- CONVERT_EXPR, NOP_EXPR, COMPOUND_EXPR
+ CONVERT_EXPR, NOP_EXPR, COMPOUND_EXPR, NON_LVALUE_EXPR
TREE_VIA_VIRTUAL in
TREE_LIST or TREE_VEC
TREE_CONSTANT_OVERFLOW in
@@ -798,6 +798,8 @@ struct tree_vector GTY(())
(IDENTIFIER_NODE_CHECK (NODE)->identifier.id.len)
#define IDENTIFIER_POINTER(NODE) \
((const char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str)
+#define IDENTIFIER_HASH_VALUE(NODE) \
+ (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.hash_value)
/* Translate a hash table identifier pointer to a tree_identifier
pointer, and vice versa. */
@@ -1642,6 +1644,11 @@ struct tree_type GTY(())
where it is called. */
#define DECL_INLINE(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.inline_flag)
+/* Nonzero in a FUNCTION_DECL means this function has been found inlinable
+ only by virtue of -finline-functions */
+#define DID_INLINE_FUNC(NODE) \
+ (FUNCTION_DECL_CHECK (NODE)->decl.inlined_function_flag)
+
/* In a FUNCTION_DECL, nonzero if the function cannot be inlined. */
#define DECL_UNINLINABLE(NODE) (FUNCTION_DECL_CHECK (NODE)->decl.uninlinable)
@@ -1827,7 +1834,8 @@ struct tree_decl GTY(())
unsigned user_align : 1;
unsigned uninlinable : 1;
unsigned thread_local_flag : 1;
- /* Two unused bits. */
+ unsigned inlined_function_flag : 1;
+ /* One unused bit. */
unsigned lang_flag_0 : 1;
unsigned lang_flag_1 : 1;
@@ -2629,6 +2637,11 @@ extern int integer_all_onesp PARAMS ((tree));
extern int integer_pow2p PARAMS ((tree));
+/* integer_nonzerop (tree x) is nonzero if X is an integer constant
+ with a nonzero value. */
+
+extern int integer_nonzerop PARAMS ((tree));
+
/* staticp (tree x) is nonzero if X is a reference to data allocated
at a fixed address in memory. */
@@ -2821,7 +2834,7 @@ extern void expand_decl_init PARAMS ((tree));
extern void clear_last_expr PARAMS ((void));
extern void expand_label PARAMS ((tree));
extern void expand_goto PARAMS ((tree));
-extern void expand_asm PARAMS ((tree));
+extern void expand_asm PARAMS ((tree, int));
extern void expand_start_cond PARAMS ((tree, int));
extern void expand_end_cond PARAMS ((void));
extern void expand_start_else PARAMS ((void));
@@ -2971,7 +2984,7 @@ extern void expand_dummy_function_end PARAMS ((void));
extern void init_function_for_compilation PARAMS ((void));
extern void init_function_start PARAMS ((tree, const char *, int));
extern void assign_parms PARAMS ((tree));
-extern void put_var_into_stack PARAMS ((tree));
+extern void put_var_into_stack PARAMS ((tree, int));
extern void flush_addressof PARAMS ((tree));
extern void uninitialized_vars_warning PARAMS ((tree));
extern void setjmp_args_warning PARAMS ((void));
@@ -3090,6 +3103,7 @@ extern tree case_index_expr_type PARAMS ((void));
extern HOST_WIDE_INT all_cases_count PARAMS ((tree, int *));
extern void check_for_full_enumeration_handling PARAMS ((tree));
extern void declare_nonlocal_label PARAMS ((tree));
+extern void default_flag_random_seed PARAMS ((void));
/* If KIND=='I', return a suitable global initializer (constructor) name.
If KIND=='D', return a suitable global clean-up (destructor) name. */
diff --git a/gcc/treelang/ChangeLog b/gcc/treelang/ChangeLog
index 138a96dd8fa..4b4b0d04920 100644
--- a/gcc/treelang/ChangeLog
+++ b/gcc/treelang/ChangeLog
@@ -1,3 +1,83 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-08 Andreas Schwab <schwab@suse.de>
+
+ * Make-lang.in (treelang.check.fix): Replace one leftover PWD
+ with PWD_COMMAND.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Make-lang.in: Replace PWD with PWD_COMMAND.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-03-02 Matthias Klose <doko@debian.org>
+
+ * Make-lang.in (treelang.install-info): Install all info
+ files in $(infodir).
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * treelang.texi: Update to GFDL 1.2.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Make-lang.in (treelang.install.common.done)
+ (treelang.install-info, treelang.uninstall): Prepend
+ $(DESTDIR) to destination paths in all (un)installation
+ commands.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * treelang.texi: Use @copying.
+
+2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * treelang.texi: Include gcc-common.texi.
+ * Make-lang.in ($(srcdir)/treelang/treelang.info, treelang.dvi):
+ Depend on gcc-common.texi. Add other missing dependencies.
+ (treelang.dvi): Use texi2dvi.
+
+2002-12-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * treelang.texi: Use @ifnottex instead of @ifinfo.
+
2002-09-09 Tim Josling <tej@melbpc.org.au>
* treetree.c (objc_is_id): New.
diff --git a/gcc/treelang/Make-lang.in b/gcc/treelang/Make-lang.in
index a1337672872..3cb37434472 100644
--- a/gcc/treelang/Make-lang.in
+++ b/gcc/treelang/Make-lang.in
@@ -1,6 +1,6 @@
# Top level makefile fragment for TREELANG For GCC. -*- makefile -*-
-# Copyright (C) 1994, 1995, 1997, 1998, 1999 2000, 2001, 2002 Free
+# Copyright (C) 1994, 1995, 1997, 1998, 1999 2000, 2001, 2002, 2003 Free
# Software Foundation, Inc.
#This file is part of GCC.
@@ -134,15 +134,21 @@ treelang.rest.encap:
.phony:treelang.info
treelang.info: $(srcdir)/treelang/treelang.info
-$(srcdir)/treelang/treelang.info: $(srcdir)/treelang/treelang.texi
+$(srcdir)/treelang/treelang.info: $(srcdir)/treelang/treelang.texi \
+ $(srcdir)/doc/include/gcc-common.texi \
+ $(srcdir)/doc/include/gpl.texi \
+ $(srcdir)/doc/include/fdl.texi \
+ $(srcdir)/doc/include/funding.texi
cd $(srcdir) && $(MAKEINFO) $(MAKEINFOFLAGS) -Idoc/include \
-o treelang/treelang.info treelang/treelang.texi
-treelang.dvi: $(srcdir)/treelang/treelang.texi
- TEXINPUTS=$(srcdir)/treelang:$(srcdir):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/treelang/treelang.texi; \
- texindex treelang.??; \
- TEXINPUTS=$(srcdir)/treelang:$(srcdir):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/treelang/treelang.texi; \
- mv treelang.dvi treelang;
+treelang.dvi: $(srcdir)/treelang/treelang.texi \
+ $(srcdir)/doc/include/gcc-common.texi \
+ $(srcdir)/doc/include/gpl.texi \
+ $(srcdir)/doc/include/fdl.texi \
+ $(srcdir)/doc/include/funding.texi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ cd treelang && $(TEXI2DVI) -I $$s/doc/include $$s/treelang/treelang.texi
treelang.generated-manpages:
@@ -163,24 +169,29 @@ treelang.install.common.done: installdirs treelang.done
do \
if [ -f $$name ] ; then \
name2="`echo \`basename $$name\` | sed -e '$(program_transform_name)' `"; \
- rm -f $(bindir)/$$name2$(exeext); \
- echo $(INSTALL_PROGRAM) $$name$(exeext) $(bindir)/$$name2$(exeext); \
- $(INSTALL_PROGRAM) $$name$(exeext) $(bindir)/$$name2$(exeext); \
- chmod a+x $(bindir)/$$name2$(exeext); \
+ rm -f $(DESTDIR)$(bindir)/$$name2$(exeext); \
+ echo $(INSTALL_PROGRAM) $$name$(exeext) $(DESTDIR)$(bindir)/$$name2$(exeext); \
+ $(INSTALL_PROGRAM) $$name$(exeext) $(DESTDIR)$(bindir)/$$name2$(exeext); \
+ chmod a+x $(DESTDIR)$(bindir)/$$name2$(exeext); \
fi ; \
done
$(STAMP) treelang.install.common.done
treelang.install-info: $(srcdir)/treelang/treelang.info
- for name in $(srcdir)/treelang/treelang.info; \
- do \
- if [ -f $$name ] ; then \
- name2="`echo \`basename $$name\` | sed -e '$(program_transform_name)' `"; \
- rm -f $(libsubdir)/$$name2$(exeext); \
- $(INSTALL_PROGRAM) $$name$(exeext) $(libsubdir)/$$name2$(exeext); \
- chmod a+x $(libsubdir)/$$name2$(exeext); \
- fi ; \
- done
+ if [ -f $(srcdir)/treelang/treelang.info ] ; then \
+ rm -f $(DESTDIR)$(infodir)/treelang.info*; \
+ for f in $(srcdir)/treelang/treelang.info*; do \
+ realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$realfile; \
+ done; \
+ chmod a-x $(DESTDIR)$(infodir)/treelang.info*; \
+ else true; fi
+ @if [ -f $(srcdir)/treelang/treelang.info ] ; then \
+ if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/treelang.info"; \
+ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/treelang.info || : ; \
+ else : ; fi; \
+ else : ; fi
treelang.install-man:
@@ -190,8 +201,8 @@ treelang.uninstall:
echo $$name; \
name2="`echo $$name | sed -e '$(program_transform_name)' `"; \
echo becomes $$name2; \
- echo -rm -rf $(bindir)/$$name2$(exeext); \
- rm -rf $(bindir)/$$name2$(exeext); \
+ echo -rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \
+ rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \
done
-rm treelang.install.common.done
@@ -266,23 +277,23 @@ treelang.check: $(TESTSUITEDIR)/site.exp
# patch files for new empty files as required for cvs.
# STAMP does not cut it here as I need an empty file.
touch $(srcdir)/testsuite/treelang/{a01gcco01runpgmerr,a01gcc.out01,a01gcc.out01err}
- -rootme=`${PWD}`; export rootme; \
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ; \
+ -rootme=`${PWD_COMMAND}`; export rootme; \
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
TRANSFORM=$(program_transform_name); export TRANSFORM; \
if [ -f $${rootme}/../expect/expect ] ; then \
- TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD}` ; \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
- PATH=`cd ..;${PWD}`:$$PATH; export PATH; \
- gcc_extras="-B`cd ..;${PWD}` -B`cd ..;${PWD}`/treelang"; export gcc_extras; \
+ PATH=`cd ..;${PWD_COMMAND}`:$$PATH; export PATH; \
+ gcc_extras="-B`cd ..;${PWD_COMMAND}` -B`cd ..;${PWD_COMMAND}`/treelang"; export gcc_extras; \
$(RUNTEST) --tool treelang $(RUNTESTFLAGS)
rm $(srcdir)/testsuite/treelang/{a01gcco01runpgmerr,a01gcc.out01,a01gcc.out01err}
# GCC_EXTRAS="$(GCC_EXTRAS)"; export GCC_EXTRAS; \
# copy the output files from the current test to source ie say the new results are OK
treelang.check.fix: force
- srcdir=`cd ${srcdir}; ${PWD}` ; export srcdir ;
+ srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ;
-cp testsuite/treelang/*.out* t
-cp testsuite/treelang/*runpgm* t
-rm -f t/*nofilename
diff --git a/gcc/treelang/treelang.texi b/gcc/treelang/treelang.texi
index 52bcb7ddd23..f58a6f8effd 100644
--- a/gcc/treelang/treelang.texi
+++ b/gcc/treelang/treelang.texi
@@ -8,15 +8,12 @@
@c %**start of header
@setfilename treelang.info
+@include gcc-common.texi
+
+@set version-treelang 1.0
+
@set last-update 2001-07-30
@set copyrights-treelang 1995,1996,1997,1998,1999,2000,2001,2002
-@c DEVELOPMENT is set to indicate an in-development version,
-@c as compared to a release version. When making a release
-@c (e.g. a release branch in the CVS repository for GCC),
-@c clear this and set the version information correctly.
-@clear DEVELOPMENT
-@set version-treelang 1.0
-@set version-GCC 3.0
@set email-general gcc@@gcc.gnu.org
@set email-bugs gcc-bugs@@gcc.gnu.org or bug-gcc@@gnu.org
@@ -46,14 +43,6 @@
@c and make sure the following does NOT begin with '@c':
@c @clear USING
-@c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition. (from gcc.texi)
-@c @smallbook
-
-@c i also commented out the finalout command, so if there *are* any
-@c overfulls, you'll (hopefully) see the rectangle in the right hand
-@c margin. -- burley 1999-03-13 (from mew's comment in GCC.texi).
-@c @finalout
-
@ifset INTERNALS
@ifset USING
@settitle Using and Maintaining GNU Treelang
@@ -92,7 +81,29 @@
@c \global\normaloffset =0.75in
@c @end tex
-@ifinfo
+@copying
+Copyright @copyright{} @value{copyrights-treelang} Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being ``GNU General Public License'', the Front-Cover
+texts being (a) (see below), and with the Back-Cover Texts being (b)
+(see below). A copy of the license is included in the section entitled
+``GNU Free Documentation License''.
+
+(a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+(b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.
+@end copying
+
+@ifnottex
@dircategory Programming
@direntry
* treelang: (treelang). The GNU Treelang compiler.
@@ -118,26 +129,8 @@ Published by the Free Software Foundation
59 Temple Place - Suite 330
Boston, MA 02111-1307 USA
-Copyright (C) @value{copyrights-treelang} Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
-@end ifinfo
+@insertcopying
+@end ifnottex
treelang was Contributed by Tim Josling (@email{@value{email-josling}}).
Inspired by and based on the 'toy' language, written by Richard Kenner.
@@ -168,8 +161,6 @@ documentation.
@center for version @value{version-treelang}
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} @value{copyrights-treelang} Free Software Foundation, Inc.
-@sp 2
For the @value{which-treelang} Version*
@sp 1
Published by the Free Software Foundation @*
@@ -179,27 +170,11 @@ Boston, MA 02111-1307, USA@*
@c Printed copies are available for $? each.@*
@c ISBN ???
@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being ``GNU General Public License'', the Front-Cover
-texts being (a) (see below), and with the Back-Cover Texts being (b)
-(see below). A copy of the license is included in the section entitled
-``GNU Free Documentation License''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
+@insertcopying
@end titlepage
@page
-@ifinfo
+@ifnottex
@node Top, Copying,, (dir)
@top Introduction
@@ -226,7 +201,7 @@ new features and incompatibilities, and how to report bugs. It
corresponds to the @value{which-treelang} version of @code{treelang}.
@end ifclear
-@end ifinfo
+@end ifnottex
@ifset DEVELOPMENT
@emph{Warning:} This document is still under development, and might not
diff --git a/gcc/tsystem.h b/gcc/tsystem.h
index 104c7663751..5b81e48c732 100644
--- a/gcc/tsystem.h
+++ b/gcc/tsystem.h
@@ -19,6 +19,14 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library 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 GCC_TSYSTEM_H
#define GCC_TSYSTEM_H
diff --git a/gcc/unroll.c b/gcc/unroll.c
index a357ea209cf..8498874df41 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -302,9 +302,11 @@ unroll_loop (loop, insn_count, strength_reduce_p)
jump to the loop condition. Make sure to delete the jump
insn, otherwise the loop body will never execute. */
+ /* FIXME this actually checks for a jump to the continue point, which
+ is not the same as the condition in a for loop. As a result, this
+ optimization fails for most for loops. We should really use flow
+ information rather than instruction pattern matching. */
rtx ujump = ujump_to_loop_cont (loop->start, loop->cont);
- if (ujump)
- delete_related_insns (ujump);
/* If number of iterations is exactly 1, then eliminate the compare and
branch at the end of the loop since they will never be taken.
@@ -316,9 +318,10 @@ unroll_loop (loop, insn_count, strength_reduce_p)
if (GET_CODE (last_loop_insn) == BARRIER)
{
/* Delete the jump insn. This will delete the barrier also. */
- delete_related_insns (PREV_INSN (last_loop_insn));
+ last_loop_insn = PREV_INSN (last_loop_insn);
}
- else if (GET_CODE (last_loop_insn) == JUMP_INSN)
+
+ if (ujump && GET_CODE (last_loop_insn) == JUMP_INSN)
{
#ifdef HAVE_cc0
rtx prev = PREV_INSN (last_loop_insn);
@@ -330,24 +333,27 @@ unroll_loop (loop, insn_count, strength_reduce_p)
if (only_sets_cc0_p (prev))
delete_related_insns (prev);
#endif
- }
- /* Remove the loop notes since this is no longer a loop. */
- if (loop->vtop)
- delete_related_insns (loop->vtop);
- if (loop->cont)
- delete_related_insns (loop->cont);
- if (loop_start)
- delete_related_insns (loop_start);
- if (loop_end)
- delete_related_insns (loop_end);
+ delete_related_insns (ujump);
- return;
+ /* Remove the loop notes since this is no longer a loop. */
+ if (loop->vtop)
+ delete_related_insns (loop->vtop);
+ if (loop->cont)
+ delete_related_insns (loop->cont);
+ if (loop_start)
+ delete_related_insns (loop_start);
+ if (loop_end)
+ delete_related_insns (loop_end);
+
+ return;
+ }
}
- else if (loop_info->n_iterations > 0
- /* Avoid overflow in the next expression. */
- && loop_info->n_iterations < (unsigned) MAX_UNROLLED_INSNS
- && loop_info->n_iterations * insn_count < (unsigned) MAX_UNROLLED_INSNS)
+
+ if (loop_info->n_iterations > 0
+ /* Avoid overflow in the next expression. */
+ && loop_info->n_iterations < (unsigned) MAX_UNROLLED_INSNS
+ && loop_info->n_iterations * insn_count < (unsigned) MAX_UNROLLED_INSNS)
{
unroll_number = loop_info->n_iterations;
unroll_type = UNROLL_COMPLETELY;
@@ -786,10 +792,14 @@ unroll_loop (loop, insn_count, strength_reduce_p)
/* We must limit the generic test to max_reg_before_loop, because only
these pseudo registers have valid regno_first_uid info. */
for (r = FIRST_PSEUDO_REGISTER; r < max_reg_before_loop; ++r)
- if (REGNO_FIRST_UID (r) > 0 && REGNO_FIRST_UID (r) <= max_uid_for_loop
+ if (REGNO_FIRST_UID (r) > 0 && REGNO_FIRST_UID (r) < max_uid_for_loop
&& REGNO_FIRST_LUID (r) >= copy_start_luid
- && REGNO_LAST_UID (r) > 0 && REGNO_LAST_UID (r) <= max_uid_for_loop
- && REGNO_LAST_LUID (r) <= copy_end_luid)
+ /* See the comment in reg_scan_mark_refs on the relationship between
+ last_uid and last_note_uid. */
+ && REGNO_LAST_UID (r) > 0 && REGNO_LAST_UID (r) < max_uid_for_loop
+ && REGNO_LAST_LUID (r) <= copy_end_luid
+ && REGNO_LAST_NOTE_UID (r) > 0 && REGNO_LAST_NOTE_UID (r) < max_uid_for_loop
+ && REGNO_LAST_NOTE_LUID (r) <= copy_end_luid)
{
/* However, we must also check for loop-carried dependencies.
If the value the pseudo has at the end of iteration X is
@@ -1113,6 +1123,11 @@ unroll_loop (loop, insn_count, strength_reduce_p)
unroll_type = UNROLL_MODULO;
loop_preconditioned = 1;
+ /* Preconditioning changes the loop's initial value. We set
+ it to an unknown value so that doloop_optimize won't get
+ confused. */
+ loop_info->initial_value = 0;
+
/* Clean up. */
free (labels);
}
@@ -1621,11 +1636,13 @@ calculate_giv_inc (pattern, src_insn, regno)
}
else if (GET_CODE (increment) == IOR
+ || GET_CODE (increment) == PLUS
|| GET_CODE (increment) == ASHIFT
- || GET_CODE (increment) == PLUS)
+ || GET_CODE (increment) == LSHIFTRT)
{
/* The rs6000 port loads some constants with IOR.
- The alpha port loads some constants with ASHIFT and PLUS. */
+ The alpha port loads some constants with ASHIFT and PLUS.
+ The sparc64 port loads some constants with LSHIFTRT. */
rtx second_part = XEXP (increment, 1);
enum rtx_code code = GET_CODE (increment);
@@ -1642,8 +1659,10 @@ calculate_giv_inc (pattern, src_insn, regno)
increment = GEN_INT (INTVAL (increment) | INTVAL (second_part));
else if (code == PLUS)
increment = GEN_INT (INTVAL (increment) + INTVAL (second_part));
- else
+ else if (code == ASHIFT)
increment = GEN_INT (INTVAL (increment) << INTVAL (second_part));
+ else
+ increment = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (increment) >> INTVAL (second_part));
}
if (GET_CODE (increment) != CONST_INT)
@@ -2468,7 +2487,13 @@ biv_total_increment (bl)
if (v->always_computable && v->mult_val == const1_rtx
&& ! v->maybe_multiple
&& SCALAR_INT_MODE_P (v->mode))
- result = fold_rtx_mult_add (result, const1_rtx, v->add_val, v->mode);
+ {
+ /* If we have already counted it, skip it. */
+ if (v->same)
+ continue;
+
+ result = fold_rtx_mult_add (result, const1_rtx, v->add_val, v->mode);
+ }
else
return 0;
}
@@ -2828,8 +2853,9 @@ find_splittable_givs (loop, bl, unroll_type, increment, unroll_number)
{
rtx tem = gen_reg_rtx (v->mode);
record_base_value (REGNO (tem), v->add_val, 0);
- loop_iv_add_mult_hoist (loop, bl->initial_value, v->mult_val,
- v->add_val, tem);
+ loop_iv_add_mult_hoist (loop,
+ extend_value_for_giv (v, bl->initial_value),
+ v->mult_val, v->add_val, tem);
value = tem;
}
@@ -2937,11 +2963,15 @@ reg_dead_after_loop (loop, reg)
code = GET_CODE (insn);
if (GET_RTX_CLASS (code) == 'i')
{
- rtx set;
+ rtx set, note;
if (reg_referenced_p (reg, PATTERN (insn)))
return 0;
+ note = find_reg_equal_equiv_note (insn);
+ if (note && reg_overlap_mentioned_p (reg, XEXP (note, 0)))
+ return 0;
+
set = single_set (insn);
if (set && rtx_equal_p (SET_DEST (set), reg))
break;
@@ -3525,6 +3555,10 @@ loop_iterations (loop)
return 0;
}
+ /* If we have already counted it, skip it. */
+ if (biv_inc->same)
+ continue;
+
offset -= INTVAL (biv_inc->add_val);
}
}
@@ -3662,7 +3696,7 @@ loop_iterations (loop)
if (find_common_reg_term (temp, reg2))
initial_value = temp;
- else
+ else if (loop_invariant_p (loop, reg2))
{
/* Find what reg2 is equivalent to. Hopefully it will
either be reg1 or reg1 plus a constant. Let's ignore
diff --git a/gcc/unwind-c.c b/gcc/unwind-c.c
new file mode 100644
index 00000000000..fb2f720907b
--- /dev/null
+++ b/gcc/unwind-c.c
@@ -0,0 +1,186 @@
+/* Supporting functions for C exception handling.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Contributed by Aldy Hernandez <aldy@quesejoda.com>.
+ Shamelessly stolen from the Java front end.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#include "tconfig.h"
+#include "tsystem.h"
+#include "unwind.h"
+#define NO_SIZE_OF_ENCODED_VALUE
+#include "unwind-pe.h"
+
+typedef struct
+{
+ _Unwind_Ptr Start;
+ _Unwind_Ptr LPStart;
+ _Unwind_Ptr ttype_base;
+ const unsigned char *TType;
+ const unsigned char *action_table;
+ unsigned char ttype_encoding;
+ unsigned char call_site_encoding;
+} lsda_header_info;
+
+static const unsigned char *
+parse_lsda_header (struct _Unwind_Context *context, const unsigned char *p,
+ lsda_header_info *info)
+{
+ _Unwind_Word tmp;
+ unsigned char lpstart_encoding;
+
+ info->Start = (context ? _Unwind_GetRegionStart (context) : 0);
+
+ /* Find @LPStart, the base to which landing pad offsets are relative. */
+ lpstart_encoding = *p++;
+ if (lpstart_encoding != DW_EH_PE_omit)
+ p = read_encoded_value (context, lpstart_encoding, p, &info->LPStart);
+ else
+ info->LPStart = info->Start;
+
+ /* Find @TType, the base of the handler and exception spec type data. */
+ info->ttype_encoding = *p++;
+ if (info->ttype_encoding != DW_EH_PE_omit)
+ {
+ p = read_uleb128 (p, &tmp);
+ info->TType = p + tmp;
+ }
+ else
+ info->TType = 0;
+
+ /* The encoding and length of the call-site table; the action table
+ immediately follows. */
+ info->call_site_encoding = *p++;
+ p = read_uleb128 (p, &tmp);
+ info->action_table = p + tmp;
+
+ return p;
+}
+
+#ifdef __USING_SJLJ_EXCEPTIONS__
+#define PERSONALITY_FUNCTION __gcc_personality_sj0
+#define __builtin_eh_return_data_regno(x) x
+#else
+#define PERSONALITY_FUNCTION __gcc_personality_v0
+#endif
+
+_Unwind_Reason_Code
+PERSONALITY_FUNCTION (int, _Unwind_Action, _Unwind_Exception_Class,
+ struct _Unwind_Exception *, struct _Unwind_Context *);
+
+_Unwind_Reason_Code
+PERSONALITY_FUNCTION (int version,
+ _Unwind_Action actions,
+ _Unwind_Exception_Class exception_class ATTRIBUTE_UNUSED,
+ struct _Unwind_Exception *ue_header,
+ struct _Unwind_Context *context)
+{
+ lsda_header_info info;
+ const unsigned char *language_specific_data, *p, *action_record;
+ _Unwind_Ptr landing_pad, ip;
+
+ if (version != 1)
+ return _URC_FATAL_PHASE1_ERROR;
+
+ /* Currently we only support cleanups for C. */
+ if ((actions & _UA_CLEANUP_PHASE) == 0)
+ return _URC_CONTINUE_UNWIND;
+
+ language_specific_data = (const unsigned char *)
+ _Unwind_GetLanguageSpecificData (context);
+
+ /* If no LSDA, then there are no handlers or cleanups. */
+ if (! language_specific_data)
+ return _URC_CONTINUE_UNWIND;
+
+ /* Parse the LSDA header. */
+ p = parse_lsda_header (context, language_specific_data, &info);
+ ip = _Unwind_GetIP (context) - 1;
+ landing_pad = 0;
+
+#ifdef __USING_SJLJ_EXCEPTIONS__
+ /* The given "IP" is an index into the call-site table, with two
+ exceptions -- -1 means no-action, and 0 means terminate. But
+ since we're using uleb128 values, we've not got random access
+ to the array. */
+ if ((int) ip <= 0)
+ return _URC_CONTINUE_UNWIND;
+ else
+ {
+ _Unwind_Word cs_lp, cs_action;
+ do
+ {
+ p = read_uleb128 (p, &cs_lp);
+ p = read_uleb128 (p, &cs_action);
+ }
+ while (--ip);
+
+ /* Can never have null landing pad for sjlj -- that would have
+ been indicated by a -1 call site index. */
+ landing_pad = cs_lp + 1;
+ if (cs_action)
+ action_record = info.action_table + cs_action - 1;
+ goto found_something;
+ }
+#else
+ /* Search the call-site table for the action associated with this IP. */
+ while (p < info.action_table)
+ {
+ _Unwind_Ptr cs_start, cs_len, cs_lp;
+ _Unwind_Word cs_action;
+
+ /* Note that all call-site encodings are "absolute" displacements. */
+ p = read_encoded_value (0, info.call_site_encoding, p, &cs_start);
+ p = read_encoded_value (0, info.call_site_encoding, p, &cs_len);
+ p = read_encoded_value (0, info.call_site_encoding, p, &cs_lp);
+ p = read_uleb128 (p, &cs_action);
+
+ /* The table is sorted, so if we've passed the ip, stop. */
+ if (ip < info.Start + cs_start)
+ p = info.action_table;
+ else if (ip < info.Start + cs_start + cs_len)
+ {
+ if (cs_lp)
+ landing_pad = info.LPStart + cs_lp;
+ if (cs_action)
+ action_record = info.action_table + cs_action - 1;
+ goto found_something;
+ }
+ }
+
+#endif
+
+ /* IP is not in table. No associated cleanups. */
+ /* ??? This is where C++ calls std::terminate to catch throw
+ from a destructor. */
+ return _URC_CONTINUE_UNWIND;
+
+ found_something:
+ if (landing_pad == 0)
+ {
+ /* IP is present, but has a null landing pad.
+ No handler to be run. */
+ return _URC_CONTINUE_UNWIND;
+ }
+
+ _Unwind_SetGR (context, __builtin_eh_return_data_regno (0),
+ (_Unwind_Ptr) ue_header);
+ _Unwind_SetGR (context, __builtin_eh_return_data_regno (1), 0);
+ _Unwind_SetIP (context, landing_pad);
+ return _URC_INSTALL_CONTEXT;
+}
diff --git a/gcc/unwind-dw2-fde-darwin.c b/gcc/unwind-dw2-fde-darwin.c
index 77e44e852ad..630ffafab6d 100644
--- a/gcc/unwind-dw2-fde-darwin.c
+++ b/gcc/unwind-dw2-fde-darwin.c
@@ -86,12 +86,18 @@ enum {
ALLOCED_IMAGE_MASK = 2, /* The FDE entries were allocated by
malloc, and must be freed. This isn't
used by newer libgcc versions. */
- IMAGE_IS_TEXT_MASK = 4 /* This image is in the TEXT segment. */
+ IMAGE_IS_TEXT_MASK = 4, /* This image is in the TEXT segment. */
+ DESTRUCTOR_MAY_BE_CALLED_LIVE = 8 /* The destructor may be called on an
+ object that's part of the live
+ image list. */
};
-/* Delete any data we allocated on a live_images structure.
- IMAGE has already been removed from the KEYMGR_GCC3_LIVE_IMAGE_LIST.
- Called by KeyMgr (which will delete the struct after we return.) */
+/* Delete any data we allocated on a live_images structure. Either
+ IMAGE has already been removed from the
+ KEYMGR_GCC3_LIVE_IMAGE_LIST and the struct will be deleted
+ after we return, or that list is locked and we're being called
+ because this object might be about to be unloaded. Called by
+ KeyMgr. */
static void
live_image_destructor (struct live_images *image)
@@ -105,7 +111,10 @@ live_image_destructor (struct live_images *image)
image->object_info = NULL;
if (image->examined_p & ALLOCED_IMAGE_MASK)
free (image->fde);
+ image->fde = NULL;
}
+ image->examined_p = 0;
+ image->destructor = NULL;
}
/* Run through the list of live images. If we can allocate memory,
@@ -165,7 +174,8 @@ examine_objects (void *pc, struct dwarf_eh_bases *bases, int dont_alloc)
image->destructor = live_image_destructor;
image->object_info = ob;
- image->examined_p |= EXAMINED_IMAGE_MASK;
+ image->examined_p |= (EXAMINED_IMAGE_MASK
+ | DESTRUCTOR_MAY_BE_CALLED_LIVE);
}
image->fde = real_fde;
diff --git a/gcc/unwind-dw2-fde.h b/gcc/unwind-dw2-fde.h
index b7d96cfe992..7565c49f754 100644
--- a/gcc/unwind-dw2-fde.h
+++ b/gcc/unwind-dw2-fde.h
@@ -1,5 +1,5 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
@@ -166,7 +166,7 @@ next_fde (fde *f)
extern fde * _Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
static inline int
-last_fde (struct object *obj, fde *f)
+last_fde (struct object *obj __attribute__ ((__unused__)), fde *f)
{
#ifdef DWARF2_OBJECT_END_PTR_EXTENSION
return (char *)f == obj->fde_end || f->length == 0;
diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c
index 3c5feea4e03..58cc3cca438 100644
--- a/gcc/unwind-dw2.c
+++ b/gcc/unwind-dw2.c
@@ -1,5 +1,5 @@
/* DWARF2 exception handling and frame unwind runtime interface routines.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GCC.
@@ -23,6 +23,9 @@
#include "tsystem.h"
#include "dwarf2.h"
#include "unwind.h"
+#ifdef __USING_SJLJ_EXCEPTIONS__
+# define NO_SIZE_OF_ENCODED_VALUE
+#endif
#include "unwind-pe.h"
#include "unwind-dw2-fde.h"
#include "gthr.h"
@@ -62,7 +65,7 @@ struct _Unwind_Context
};
/* Byte size of every register managed by these routines. */
-static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS];
+static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS+1];
/* The result of interpreting the frame unwind info for a frame.
@@ -162,10 +165,23 @@ read_8s (const void *p) { const union unaligned *up = p; return up->s8; }
inline _Unwind_Word
_Unwind_GetGR (struct _Unwind_Context *context, int index)
{
+#ifdef DWARF_ZERO_REG
+ if (index == DWARF_ZERO_REG)
+ return 0;
+#endif
+
/* This will segfault if the register hasn't been saved. */
return * (_Unwind_Word *) context->reg[index];
}
+/* Get the value of the CFA as saved in CONTEXT. */
+
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *context)
+{
+ return (_Unwind_Ptr) context->cfa;
+}
+
/* Overwrite the saved value for register REG in CONTEXT with VAL. */
inline void
@@ -593,6 +609,10 @@ execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end,
case DW_OP_mul:
case DW_OP_or:
case DW_OP_plus:
+ case DW_OP_shl:
+ case DW_OP_shr:
+ case DW_OP_shra:
+ case DW_OP_xor:
case DW_OP_le:
case DW_OP_ge:
case DW_OP_eq:
@@ -692,7 +712,7 @@ execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end,
/* Most things push a result value. */
if ((size_t) stack_elt >= sizeof(stack)/sizeof(*stack))
abort ();
- stack[++stack_elt] = result;
+ stack[stack_elt++] = result;
no_push:;
}
@@ -782,6 +802,9 @@ execute_cfa_program (const unsigned char *insn_ptr,
case DW_CFA_undefined:
case DW_CFA_same_value:
+ insn_ptr = read_uleb128 (insn_ptr, &reg);
+ break;
+
case DW_CFA_nop:
break;
@@ -839,17 +862,17 @@ execute_cfa_program (const unsigned char *insn_ptr,
break;
case DW_CFA_def_cfa_expression:
- insn_ptr = read_uleb128 (insn_ptr, &utmp);
fs->cfa_exp = insn_ptr;
fs->cfa_how = CFA_EXP;
+ insn_ptr = read_uleb128 (insn_ptr, &utmp);
insn_ptr += utmp;
break;
case DW_CFA_expression:
insn_ptr = read_uleb128 (insn_ptr, &reg);
- insn_ptr = read_uleb128 (insn_ptr, &utmp);
fs->regs.reg[reg].how = REG_SAVED_EXP;
fs->regs.reg[reg].loc.exp = insn_ptr;
+ insn_ptr = read_uleb128 (insn_ptr, &utmp);
insn_ptr += utmp;
break;
@@ -918,6 +941,9 @@ uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
context->args_size = 0;
context->lsda = 0;
+ if (context->ra == 0)
+ return _URC_END_OF_STACK;
+
fde = _Unwind_Find_FDE (context->ra - 1, &context->bases);
if (fde == NULL)
{
@@ -1038,34 +1064,48 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs)
void *cfa;
long i;
+#ifdef EH_RETURN_STACKADJ_RTX
+ /* Special handling here: Many machines do not use a frame pointer,
+ and track the CFA only through offsets from the stack pointer from
+ one frame to the next. In this case, the stack pointer is never
+ stored, so it has no saved address in the context. What we do
+ have is the CFA from the previous stack frame.
+
+ In very special situations (such as unwind info for signal return),
+ there may be location expressions that use the stack pointer as well.
+
+ Do this conditionally for one frame. This allows the unwind info
+ for one frame to save a copy of the stack pointer from the previous
+ frame, and be able to use much easier CFA mechanisms to do it.
+ Always zap the saved stack pointer value for the next frame; carrying
+ the value over from one frame to another doesn't make sense. */
+
+ _Unwind_Word tmp_sp;
+
+ if (!orig_context.reg[__builtin_dwarf_sp_column ()])
+ {
+ tmp_sp = (_Unwind_Ptr) context->cfa;
+ orig_context.reg[__builtin_dwarf_sp_column ()] = &tmp_sp;
+ }
+ context->reg[__builtin_dwarf_sp_column ()] = NULL;
+#endif
+
/* Compute this frame's CFA. */
switch (fs->cfa_how)
{
case CFA_REG_OFFSET:
- /* Special handling here: Many machines do not use a frame pointer,
- and track the CFA only through offsets from the stack pointer from
- one frame to the next. In this case, the stack pointer is never
- stored, so it has no saved address in the context. What we do
- have is the CFA from the previous stack frame. */
- if (context->reg[fs->cfa_reg] == NULL)
- cfa = context->cfa;
- else
- cfa = (void *) (_Unwind_Ptr) _Unwind_GetGR (context, fs->cfa_reg);
+ cfa = (void *) (_Unwind_Ptr) _Unwind_GetGR (&orig_context, fs->cfa_reg);
cfa += fs->cfa_offset;
break;
case CFA_EXP:
- /* ??? No way of knowing what register number is the stack pointer
- to do the same sort of handling as above. Assume that if the
- CFA calculation is so complicated as to require a stack program
- that this will not be a problem. */
{
const unsigned char *exp = fs->cfa_exp;
_Unwind_Word len;
exp = read_uleb128 (exp, &len);
cfa = (void *) (_Unwind_Ptr)
- execute_stack_op (exp, exp + len, context, 0);
+ execute_stack_op (exp, exp + len, &orig_context, 0);
break;
}
@@ -1080,12 +1120,15 @@ uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs)
{
case REG_UNSAVED:
break;
+
case REG_SAVED_OFFSET:
context->reg[i] = cfa + fs->regs.reg[i].loc.offset;
break;
+
case REG_SAVED_REG:
context->reg[i] = orig_context.reg[fs->regs.reg[i].loc.reg];
break;
+
case REG_SAVED_EXP:
{
const unsigned char *exp = fs->regs.reg[i].loc.exp;
@@ -1137,6 +1180,7 @@ uw_init_context_1 (struct _Unwind_Context *context,
{
void *ra = __builtin_extract_return_addr (__builtin_return_address (0));
_Unwind_FrameState fs;
+ _Unwind_Word sp_slot;
memset (context, 0, sizeof (struct _Unwind_Context));
context->ra = ra;
@@ -1145,9 +1189,10 @@ uw_init_context_1 (struct _Unwind_Context *context,
abort ();
/* Force the frame state to use the known cfa value. */
- context->cfa = outer_cfa;
+ sp_slot = (_Unwind_Ptr) outer_cfa;
+ context->reg[__builtin_dwarf_sp_column ()] = &sp_slot;
fs.cfa_how = CFA_REG_OFFSET;
- fs.cfa_reg = 0;
+ fs.cfa_reg = __builtin_dwarf_sp_column ();
fs.cfa_offset = 0;
uw_update_context_1 (context, &fs);
@@ -1204,11 +1249,26 @@ uw_install_context_1 (struct _Unwind_Context *current,
memcpy (c, t, dwarf_reg_size_table[i]);
}
- /* We adjust SP by the difference between CURRENT and TARGET's CFA. */
- if (STACK_GROWS_DOWNWARD)
- return target->cfa - current->cfa + target->args_size;
- else
- return current->cfa - target->cfa - target->args_size;
+#ifdef EH_RETURN_STACKADJ_RTX
+ {
+ void *target_cfa;
+
+ /* If the last frame records a saved stack pointer, use it. */
+ if (target->reg[__builtin_dwarf_sp_column ()])
+ target_cfa = (void *)(_Unwind_Ptr)
+ _Unwind_GetGR (target, __builtin_dwarf_sp_column ());
+ else
+ target_cfa = target->cfa;
+
+ /* We adjust SP by the difference between CURRENT and TARGET's CFA. */
+ if (STACK_GROWS_DOWNWARD)
+ return target_cfa - current->cfa + target->args_size;
+ else
+ return current->cfa - target_cfa - target->args_size;
+ }
+#else
+ return 0;
+#endif
}
static inline _Unwind_Ptr
diff --git a/gcc/unwind-libunwind.c b/gcc/unwind-libunwind.c
new file mode 100644
index 00000000000..89e841759cf
--- /dev/null
+++ b/gcc/unwind-libunwind.c
@@ -0,0 +1,187 @@
+/* Subroutines needed for unwinding stack frames via the libunwind API.
+ Copyright (C) 2002, 2003
+ Free Software Foundation, Inc.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library 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 "tconfig.h"
+#include "tsystem.h"
+#include "unwind.h"
+
+#ifndef __USING_SJLJ_EXCEPTIONS__
+
+#define UNW_LOCAL_ONLY
+
+#include <libunwind.h>
+
+typedef struct {
+ _Unwind_Personality_Fn personality;
+} _Unwind_FrameState;
+
+struct _Unwind_Context {
+ unw_cursor_t cursor;
+};
+
+
+/* First come the helper-routines that are needed by unwind.inc. */
+
+static _Unwind_Reason_Code
+uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
+{
+ unw_proc_info_t pi;
+
+ if (unw_step (&context->cursor) <= 0)
+ return _URC_END_OF_STACK;
+
+ unw_get_proc_info(&context->cursor, &pi);
+ fs->personality = (_Unwind_Personality_Fn) pi.handler;
+
+ return _URC_NO_REASON;
+}
+
+#define uw_update_context(context,fs) do { ; } while (0)
+
+static inline _Unwind_Ptr
+uw_identify_context (struct _Unwind_Context *context)
+{
+ unw_word_t ip;
+ unw_get_reg (&context->cursor, UNW_REG_IP, &ip);
+ return (_Unwind_Ptr) ip;
+}
+
+#define uw_init_context(context) \
+do \
+ { \
+ unw_context_t uc; \
+ unw_getcontext (&uc); \
+ unw_init_local (&(context)->cursor, &uc); \
+ } \
+while (0)
+
+static inline void __attribute__ ((noreturn))
+uw_install_context (struct _Unwind_Context *current __attribute__ ((unused)),
+ struct _Unwind_Context *target)
+{
+ unw_resume (&(target)->cursor);
+ abort ();
+}
+
+
+/* Now come the helper-routines which may be called from an exception
+ handler. The interface for these routines are defined by the C++
+ ABI. See: http://www.codesourcery.com/cxx-abi/abi-eh.html */
+
+_Unwind_Word
+_Unwind_GetGR (struct _Unwind_Context *context, int index)
+{
+ unw_word_t ret;
+
+ /* Note: here we depend on the fact that general registers are
+ expected to start with register number 0! */
+ unw_get_reg (&context->cursor, index, &ret);
+ return ret;
+}
+
+/* Get the value of the CFA as saved in CONTEXT. */
+
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *context)
+{
+ unw_word_t ret;
+
+ unw_get_reg (&context->cursor, UNW_IA64_SP, &ret);
+ return ret;
+}
+
+/* Overwrite the saved value for register REG in CONTEXT with VAL. */
+
+void
+_Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
+{
+ /* Note: here we depend on the fact that general registers are
+ expected to start with register number 0! */
+ unw_set_reg (&context->cursor, index, val);
+}
+
+/* Retrieve the return address for CONTEXT. */
+
+inline _Unwind_Ptr
+_Unwind_GetIP (struct _Unwind_Context *context)
+{
+ unw_word_t ret;
+
+ unw_get_reg (&context->cursor, UNW_REG_IP, &ret);
+ return ret;
+}
+
+/* Overwrite the return address for CONTEXT with VAL. */
+
+inline void
+_Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
+{
+ unw_set_reg (&context->cursor, UNW_REG_IP, val);
+}
+
+void *
+_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
+{
+ unw_proc_info_t pi;
+
+ unw_get_proc_info(&context->cursor, &pi);
+ return (void *) pi.lsda;
+}
+
+_Unwind_Ptr
+_Unwind_GetRegionStart (struct _Unwind_Context *context)
+{
+ unw_proc_info_t pi;
+
+ unw_get_proc_info(&context->cursor, &pi);
+ return (_Unwind_Ptr) pi.start_ip;
+}
+
+void *
+_Unwind_FindEnclosingFunction (void *pc)
+{
+ return NULL;
+}
+
+#ifdef UNW_TARGET_IA64
+
+_Unwind_Word
+_Unwind_GetBSP (struct _Unwind_Context *context)
+{
+ unw_word_t ret;
+
+ unw_get_reg (&context->cursor, UNW_IA64_BSP, &ret);
+ return ret;
+}
+
+#endif
+
+#include "unwind.inc"
+
+#endif /* !__USING_SJLJ_EXCEPTIONS__ */
diff --git a/gcc/unwind-pe.h b/gcc/unwind-pe.h
index d32e506667d..bfa455c4f32 100644
--- a/gcc/unwind-pe.h
+++ b/gcc/unwind-pe.h
@@ -52,6 +52,8 @@
#define DW_EH_PE_indirect 0x80
+#ifndef NO_SIZE_OF_ENCODED_VALUE
+
/* Given an encoding, return the number of bytes the format occupies.
This is only defined for fixed-size encodings, and so does not
include leb128. */
@@ -76,6 +78,8 @@ size_of_encoded_value (unsigned char encoding)
__gxx_abort ();
}
+#endif
+
#ifndef NO_BASE_OF_ENCODED_VALUE
/* Given an encoding and an _Unwind_Context, return the base to which
diff --git a/gcc/unwind-sjlj.c b/gcc/unwind-sjlj.c
index e1063b4a9c1..7b523384647 100644
--- a/gcc/unwind-sjlj.c
+++ b/gcc/unwind-sjlj.c
@@ -174,6 +174,15 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
return context->fc->data[index];
}
+/* Get the value of the CFA as saved in CONTEXT. */
+
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *context)
+{
+ /* ??? Ideally __builtin_setjmp places the CFA in the jmpbuf. */
+ return NULL;
+}
+
void
_Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
{
@@ -280,6 +289,7 @@ uw_identify_context (struct _Unwind_Context *context)
#define _Unwind_RaiseException _Unwind_SjLj_RaiseException
#define _Unwind_ForcedUnwind _Unwind_SjLj_ForcedUnwind
#define _Unwind_Resume _Unwind_SjLj_Resume
+#define _Unwind_Resume_or_Rethrow _Unwind_SjLj_Resume_or_Rethrow
#include "unwind.inc"
diff --git a/gcc/unwind.h b/gcc/unwind.h
index 218181c218c..4f39223b03e 100644
--- a/gcc/unwind.h
+++ b/gcc/unwind.h
@@ -1,5 +1,5 @@
/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003 Free Software Foundation, Inc.
This file is part of GCC.
@@ -18,6 +18,13 @@
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header 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. */
+
/* This is derived from the C++ ABI for IA-64. Where we diverge
for cross-architecture compatibility are noted with "@@@". */
@@ -120,6 +127,18 @@ extern void _Unwind_DeleteException (struct _Unwind_Exception *);
e.g. executing cleanup code, and not to implement rethrowing. */
extern void _Unwind_Resume (struct _Unwind_Exception *);
+/* @@@ Resume propagation of an FORCE_UNWIND exception, or to rethrow
+ a normal exception that was handled. */
+extern _Unwind_Reason_Code _Unwind_Resume_or_Rethrow (struct _Unwind_Exception *);
+
+/* @@@ Use unwind data to perform a stack backtrace. The trace callback
+ is called for every stack frame in the call chain, but no cleanup
+ actions are performed. */
+typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
+ (struct _Unwind_Context *, void *);
+
+extern _Unwind_Reason_Code _Unwind_Backtrace (_Unwind_Trace_Fn, void *);
+
/* These functions are used for communicating information about the unwind
context (i.e. the unwind descriptors and the user register state) between
the unwind library and the personality routine and landing pad. Only
@@ -131,6 +150,9 @@ extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
+/* @@@ Retrieve the CFA of the given context. */
+extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
+
extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
@@ -166,6 +188,7 @@ extern _Unwind_Reason_Code _Unwind_SjLj_RaiseException
extern _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind
(struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
extern void _Unwind_SjLj_Resume (struct _Unwind_Exception *);
+extern _Unwind_Reason_Code _Unwind_SjLj_Resume_or_Rethrow (struct _Unwind_Exception *);
/* @@@ The following provide access to the base addresses for text
and data-relative addressing in the LDSA. In order to stay link
@@ -187,6 +210,9 @@ _Unwind_GetTextRelBase (struct _Unwind_Context *_C)
abort ();
return 0;
}
+
+/* @@@ Retrieve the Backing Store Pointer of the given context. */
+extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
#else
extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
diff --git a/gcc/unwind.inc b/gcc/unwind.inc
index 0422cb81a03..0938d501f5f 100644
--- a/gcc/unwind.inc
+++ b/gcc/unwind.inc
@@ -232,10 +232,73 @@ _Unwind_Resume (struct _Unwind_Exception *exc)
uw_install_context (&this_context, &cur_context);
}
+
+/* Resume propagation of an FORCE_UNWIND exception, or to rethrow
+ a normal exception that was handled. */
+
+_Unwind_Reason_Code
+_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *exc)
+{
+ struct _Unwind_Context this_context, cur_context;
+ _Unwind_Reason_Code code;
+
+ /* Choose between continuing to process _Unwind_RaiseException
+ or _Unwind_ForcedUnwind. */
+ if (exc->private_1 == 0)
+ return _Unwind_RaiseException (exc);
+
+ uw_init_context (&this_context);
+ cur_context = this_context;
+
+ code = _Unwind_ForcedUnwind_Phase2 (exc, &cur_context);
+
+ if (code != _URC_INSTALL_CONTEXT)
+ abort ();
+
+ uw_install_context (&this_context, &cur_context);
+}
+
+
/* A convenience function that calls the exception_cleanup field. */
void
_Unwind_DeleteException (struct _Unwind_Exception *exc)
{
- (*exc->exception_cleanup) (_URC_FOREIGN_EXCEPTION_CAUGHT, exc);
+ if (exc->exception_cleanup)
+ (*exc->exception_cleanup) (_URC_FOREIGN_EXCEPTION_CAUGHT, exc);
+}
+
+
+/* Perform stack backtrace through unwind data. */
+
+_Unwind_Reason_Code
+_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
+{
+ struct _Unwind_Context context;
+ _Unwind_Reason_Code code;
+
+ uw_init_context (&context);
+
+ while (1)
+ {
+ _Unwind_FrameState fs;
+
+ /* Set up fs to describe the FDE for the caller of context. */
+ code = uw_frame_state_for (&context, &fs);
+ if (code != _URC_NO_REASON && code != _URC_END_OF_STACK)
+ return _URC_FATAL_PHASE1_ERROR;
+
+ /* Call trace function. */
+ if ((*trace) (&context, trace_argument) != _URC_NO_REASON)
+ return _URC_FATAL_PHASE1_ERROR;
+
+ /* We're done at end of stack. */
+ if (code == _URC_END_OF_STACK)
+ break;
+
+ /* Update context to describe the same frame as fs. */
+ uw_update_context (&context, &fs);
+ }
+
+ return code;
}
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 8b321af8296..c9a9383fe24 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -1,6 +1,6 @@
/* Output variables, constants and external declarations, for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1586,6 +1586,8 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
else if (DECL_INITIAL (decl) == 0
|| DECL_INITIAL (decl) == error_mark_node
|| (flag_zero_initialized_in_bss
+ /* Leave constant zeroes in .rodata so they can be shared. */
+ && !TREE_READONLY (decl)
&& initializer_zerop (DECL_INITIAL (decl))))
{
unsigned HOST_WIDE_INT size = tree_low_cst (DECL_SIZE_UNIT (decl), 1);
@@ -2148,7 +2150,11 @@ struct rtx_const GTY(())
ENUM_BITFIELD(machine_mode) mode : 16;
union rtx_const_un {
REAL_VALUE_TYPE du;
- struct addr_const GTY ((tag ("1"))) addr;
+ struct rtx_const_u_addr {
+ rtx base;
+ const char *symbol;
+ HOST_WIDE_INT offset;
+ } GTY ((tag ("1"))) addr;
struct rtx_const_u_di {
HOST_WIDE_INT high;
HOST_WIDE_INT low;
@@ -2405,7 +2411,7 @@ compare_constant (t1, t2)
if (get_set_constructor_bytes (t2, tmp2, len) != NULL_TREE)
return 0;
- return memcmp (tmp1, tmp2, len) != 0;
+ return memcmp (tmp1, tmp2, len) == 0;
}
else
{
@@ -2656,6 +2662,7 @@ output_constant_def (exp, defer)
int labelno = -1;
rtx rtl;
+
/* We can't just use the saved RTL if this is a deferred string constant
and we are not to defer anymore. */
if (TREE_CODE (exp) != INTEGER_CST && TREE_CST_RTL (exp)
@@ -2819,6 +2826,7 @@ output_constant_def_contents (exp, reloc, labelno)
int labelno;
{
int align;
+ HOST_WIDE_INT size;
/* Align the location counter as required by EXP's data type. */
align = TYPE_ALIGN (TREE_TYPE (exp));
@@ -2836,17 +2844,24 @@ output_constant_def_contents (exp, reloc, labelno)
ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT));
}
- /* Output the label itself. */
+ size = int_size_in_bytes (TREE_TYPE (exp));
+ if (TREE_CODE (exp) == STRING_CST)
+ size = MAX (TREE_STRING_LENGTH (exp), size);
+
+ /* Do any machine/system dependent processing of the constant. */
+#ifdef ASM_DECLARE_CONSTANT_NAME
+ {
+ char label[256];
+ ASM_GENERATE_INTERNAL_LABEL (label, "LC", labelno);
+ ASM_DECLARE_CONSTANT_NAME (asm_out_file, label, exp, size);
+ }
+#else
+ /* Standard thing is just output label for the constant. */
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LC", labelno);
+#endif /* ASM_DECLARE_CONSTANT_NAME */
/* Output the value of EXP. */
- output_constant (exp,
- (TREE_CODE (exp) == STRING_CST
- ? MAX (TREE_STRING_LENGTH (exp),
- int_size_in_bytes (TREE_TYPE (exp)))
- : int_size_in_bytes (TREE_TYPE (exp))),
- align);
-
+ output_constant (exp, size, align);
}
/* Used in the hash tables to avoid outputting the same constant
@@ -2859,9 +2874,6 @@ struct constant_descriptor_rtx GTY(())
/* More constant_descriptors with the same hash code. */
struct constant_descriptor_rtx *next;
- /* The label of the constant. */
- const char *label;
-
/* A MEM for the constant. */
rtx rtl;
@@ -3081,13 +3093,12 @@ decode_rtx_const (mode, x, value)
if (value->kind >= RTX_INT && value->un.addr.base != 0)
switch (GET_CODE (value->un.addr.base))
{
-#if 0
case SYMBOL_REF:
/* Use the string's address, not the SYMBOL_REF's address,
for the sake of addresses of library routines. */
- value->un.addr.base = (rtx) XSTR (value->un.addr.base, 0);
+ value->un.addr.symbol = XSTR (value->un.addr.base, 0);
+ value->un.addr.base = NULL_RTX;
break;
-#endif
case LABEL_REF:
/* For a LABEL_REF, compare labels. */
@@ -3112,7 +3123,8 @@ simplify_subtraction (x)
if (val0.kind >= RTX_INT
&& val0.kind == val1.kind
- && val0.un.addr.base == val1.un.addr.base)
+ && val0.un.addr.base == val1.un.addr.base
+ && val0.un.addr.symbol == val1.un.addr.symbol)
return GEN_INT (val0.un.addr.offset - val1.un.addr.offset);
return x;
@@ -3764,11 +3776,27 @@ initializer_constant_valid_p (value, endtype)
|| TREE_CODE (TREE_TYPE (value)) == RECORD_TYPE)
&& TREE_CONSTANT (value)
&& CONSTRUCTOR_ELTS (value))
- return
- initializer_constant_valid_p (TREE_VALUE (CONSTRUCTOR_ELTS (value)),
- endtype);
+ {
+ tree elt;
+ bool absolute = true;
+
+ for (elt = CONSTRUCTOR_ELTS (value); elt; elt = TREE_CHAIN (elt))
+ {
+ tree reloc;
+ value = TREE_VALUE (elt);
+ reloc = initializer_constant_valid_p (value, TREE_TYPE (value));
+ if (!reloc)
+ return NULL_TREE;
+ if (reloc != null_pointer_node)
+ absolute = false;
+ }
+ /* For a non-absolute relocation, there is no single
+ variable that can be "the variable that determines the
+ relocation." */
+ return absolute ? null_pointer_node : error_mark_node;
+ }
- return TREE_STATIC (value) ? null_pointer_node : 0;
+ return TREE_STATIC (value) ? null_pointer_node : NULL_TREE;
case INTEGER_CST:
case VECTOR_CST:
@@ -4047,6 +4075,23 @@ output_constant (exp, size, align)
thissize = MIN (TREE_STRING_LENGTH (exp), size);
assemble_string (TREE_STRING_POINTER (exp), thissize);
}
+ else if (TREE_CODE (exp) == VECTOR_CST)
+ {
+ int elt_size;
+ tree link;
+ unsigned int nalign;
+ enum machine_mode inner;
+
+ inner = GET_MODE_INNER (TYPE_MODE (TREE_TYPE (exp)));
+ nalign = MIN (align, GET_MODE_ALIGNMENT (inner));
+
+ elt_size = GET_MODE_UNIT_SIZE (TYPE_MODE (TREE_TYPE (exp)));
+
+ link = TREE_VECTOR_CST_ELTS (exp);
+ output_constant (TREE_VALUE (link), elt_size, align);
+ while ((link = TREE_CHAIN (link)) != NULL)
+ output_constant (TREE_VALUE (link), elt_size, nalign);
+ }
else
abort ();
break;
@@ -4628,14 +4673,26 @@ assemble_alias (decl, target)
#endif
#else /* !ASM_OUTPUT_DEF */
#if defined (ASM_OUTPUT_WEAK_ALIAS) || defined (ASM_WEAKEN_DECL)
- if (! DECL_WEAK (decl))
- warning ("only weak aliases are supported in this configuration");
-
+ if (DECL_WEAK (decl))
+ {
+ tree *p, t;
#ifdef ASM_WEAKEN_DECL
- ASM_WEAKEN_DECL (asm_out_file, decl, name, IDENTIFIER_POINTER (target));
+ ASM_WEAKEN_DECL (asm_out_file, decl, name, IDENTIFIER_POINTER (target));
#else
- ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target));
+ ASM_OUTPUT_WEAK_ALIAS (asm_out_file, name, IDENTIFIER_POINTER (target));
#endif
+ /* Remove this function from the pending weak list so that
+ we do not emit multiple .weak directives for it. */
+ for (p = &weak_decls; (t = *p) ; )
+ if (DECL_ASSEMBLER_NAME (decl)
+ == DECL_ASSEMBLER_NAME (TREE_VALUE (t)))
+ *p = TREE_CHAIN (t);
+ else
+ p = &TREE_CHAIN (t);
+ }
+ else
+ warning ("only weak aliases are supported in this configuration");
+
#else
warning ("alias definitions not supported in this configuration; ignored");
#endif
@@ -4660,12 +4717,13 @@ default_assemble_visibility (decl, vis)
const char *name, *type;
- name = (* targetm.strip_name_encoding)
- (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
+ name = (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
type = visibility_types[vis];
#ifdef HAVE_GAS_HIDDEN
- fprintf (asm_out_file, "\t.%s\t%s\n", type, name);
+ fprintf (asm_out_file, "\t.%s\t", type);
+ assemble_name (asm_out_file, name);
+ fprintf (asm_out_file, "\n");
#else
warning ("visibility attribute not supported in this configuration; ignored");
#endif
@@ -4708,16 +4766,16 @@ make_decl_one_only (decl)
TREE_PUBLIC (decl) = 1;
- if (TREE_CODE (decl) == VAR_DECL
- && (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node))
- DECL_COMMON (decl) = 1;
- else if (SUPPORTS_ONE_ONLY)
+ if (SUPPORTS_ONE_ONLY)
{
#ifdef MAKE_DECL_ONE_ONLY
MAKE_DECL_ONE_ONLY (decl);
#endif
DECL_ONE_ONLY (decl) = 1;
}
+ else if (TREE_CODE (decl) == VAR_DECL
+ && (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node))
+ DECL_COMMON (decl) = 1;
else if (SUPPORTS_WEAK)
DECL_WEAK (decl) = 1;
else
diff --git a/gcc/version.c b/gcc/version.c
index 0e2662e910f..a6a651b8573 100644
--- a/gcc/version.c
+++ b/gcc/version.c
@@ -6,7 +6,7 @@
please modify this string to indicate that, e.g. by putting your
organization's name in parentheses at the end of the string. */
-const char version_string[] = "3.3 20021213 (experimental)";
+const char version_string[] = "3.3.6";
/* This is the location of the online document giving instructions for
reporting bugs. If you distribute a modified version of GCC,
@@ -15,4 +15,4 @@ const char version_string[] = "3.3 20021213 (experimental)";
forward us bugs reported to you, if you determine that they are
not bugs in your modifications.) */
-const char bug_report_url[] = "<URL:http://www.gnu.org/software/gcc/bugs.html>";
+const char bug_report_url[] = "<URL:http://gcc.gnu.org/bugs.html>";
diff --git a/include/ChangeLog b/include/ChangeLog
index f6b05bb7e51..dd1e27e24dc 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,88 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-03-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR bootstrap/14348
+ Backport
+ 2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
+ * obstack.h: Merge the following change from gnulib:
+ 2003-10-21 Paul Eggert <eggert@twinsun.com>
+ * obstack.h (obstack_1grow_fast): Properly parenthesize arg.
+ (obstack_ptr_grow_fast, obstack_int_grow_fast):
+ Don't use lvalue casts, as GCC plans to remove support for them
+ in GCC 3.5. Reported by Joseph S. Myers. This bug
+ was also present in the non-GCC version, indicating that this
+ code had always been buggy and had never been widely used.
+ (obstack_1grow, obstack_ptr_grow, obstack_int_grow,
+ obstack_blank):
+ Use the fast variant of each macro, rather than copying the
+ definiens of the fast variant; that way, we'll be more likely to
+ catch future bugs in the fast variants.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-11-12 Daniel Jacobowitz <drow@mvista.com>
+
+ Backport from mainline:
+ 2003-02-20 Daniel Jacobowitz <drow@mvista.com>
+ * libiberty.h (lrealpath): Add declaration.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * demangle.h: Support C++.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ansidecl.h (ATTRIBUTE_NONNULL, ATTRIBUTE_NULL_PRINTF,
+ ATTRIBUTE_NULL_PRINTF_1, ATTRIBUTE_NULL_PRINTF_2,
+ ATTRIBUTE_NULL_PRINTF_3, ATTRIBUTE_NULL_PRINTF_4,
+ ATTRIBUTE_NULL_PRINTF_5): New.
+ (ATTRIBUTE_PRINTF): Add ATTRIBUTE_NONNULL.
+
+2003-02-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * libiberty.h: Document return value of physmem routines.
+
+2003-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * libiberty.h (physmem_total, physmem_available): Prototype.
+
2002-11-23 Simon Burge <simonb@wasabisystems.com>
* libiberty.h (basename): Add NetBSD to the list.
diff --git a/include/ansidecl.h b/include/ansidecl.h
index d169b4f50ed..f8f2d737bf0 100644
--- a/include/ansidecl.h
+++ b/include/ansidecl.h
@@ -268,8 +268,21 @@ So instead we use the macro below and test it against specific values. */
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
#endif /* ATTRIBUTE_NORETURN */
+/* Attribute `nonnull' was valid as of gcc 3.3. */
+#ifndef ATTRIBUTE_NONNULL
+# if (GCC_VERSION >= 3003)
+# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
+# else
+# define ATTRIBUTE_NONNULL(m)
+# endif /* GNUC >= 3.3 */
+#endif /* ATTRIBUTE_NONNULL */
+
+/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
+ This was the case for the `printf' format attribute by itself
+ before GCC 3.3, but as of 3.3 we need to add the `nonnull'
+ attribute to retain this behavior. */
#ifndef ATTRIBUTE_PRINTF
-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
+#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
@@ -277,6 +290,21 @@ So instead we use the macro below and test it against specific values. */
#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
#endif /* ATTRIBUTE_PRINTF */
+/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
+ NULL format specifier was allowed as of gcc 3.3. */
+#ifndef ATTRIBUTE_NULL_PRINTF
+# if (GCC_VERSION >= 3003)
+# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
+# else
+# define ATTRIBUTE_NULL_PRINTF(m, n)
+# endif /* GNUC >= 3.3 */
+# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
+# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
+# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
+# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
+# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
+#endif /* ATTRIBUTE_NULL_PRINTF */
+
/* We use __extension__ in some places to suppress -pedantic warnings
about GCC extensions. This feature didn't work properly before
gcc 2.8. */
diff --git a/include/demangle.h b/include/demangle.h
index 21e9dd33820..bff266931c8 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -23,6 +23,10 @@
#include "ansidecl.h"
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
/* Options passed to cplus_demangle (in 2nd parameter). */
#define DMGL_NO_OPTS 0 /* For readability... */
@@ -160,4 +164,8 @@ enum gnu_v3_dtor_kinds {
extern enum gnu_v3_dtor_kinds
is_gnu_v3_mangled_dtor PARAMS ((const char *name));
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif /* DEMANGLE_H */
diff --git a/include/libiberty.h b/include/libiberty.h
index f9916c58c73..676ceaba4a9 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -85,6 +85,10 @@ extern char *basename ();
extern const char *lbasename PARAMS ((const char *));
+/* A well-defined realpath () that is always compiled in. */
+
+extern char *lrealpath PARAMS ((const char *));
+
/* Concatenate an arbitrary number of strings. You must pass NULL as
the last argument of this function, to terminate the list of
strings. Allocates memory using xmalloc. */
@@ -242,6 +246,10 @@ extern char *xstrdup PARAMS ((const char *)) ATTRIBUTE_MALLOC;
extern PTR xmemdup PARAMS ((const PTR, size_t, size_t)) ATTRIBUTE_MALLOC;
+/* Physical memory routines. Return values are in BYTES. */
+extern double physmem_total PARAMS ((void));
+extern double physmem_available PARAMS ((void));
+
/* hex character manipulation routines */
#define _hex_array_size 256
diff --git a/include/obstack.h b/include/obstack.h
index d86d9f2c426..5496ff24071 100644
--- a/include/obstack.h
+++ b/include/obstack.h
@@ -343,7 +343,7 @@ extern int obstack_exit_failure;
#endif
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
+#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
@@ -411,7 +411,7 @@ __extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + 1 > __o->chunk_limit) \
_obstack_newchunk (__o, 1); \
- *(__o->next_free)++ = (datum); \
+ obstack_1grow_fast (__o, datum); \
(void) 0; })
/* These assume that the obstack alignment is good enough for pointers or ints,
@@ -423,19 +423,28 @@ __extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (void *)); \
- *((void **)__o->next_free)++ = ((void *)datum); \
- (void) 0; })
+ obstack_ptr_grow_fast (__o, datum); })
# define obstack_int_grow(OBSTACK,datum) \
__extension__ \
({ struct obstack *__o = (OBSTACK); \
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
_obstack_newchunk (__o, sizeof (int)); \
- *((int *)__o->next_free)++ = ((int)datum); \
+ obstack_int_grow_fast (__o, datum); })
+
+# define obstack_ptr_grow_fast(OBSTACK,aptr) \
+__extension__ \
+({ struct obstack *__o1 = (OBSTACK); \
+ *(const void **) __o1->next_free = (aptr); \
+ __o1->next_free += sizeof (const void *); \
(void) 0; })
-# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(OBSTACK,aint) \
+__extension__ \
+({ struct obstack *__o1 = (OBSTACK); \
+ *(int *) __o1->next_free = (aint); \
+ __o1->next_free += sizeof (int); \
+ (void) 0; })
# define obstack_blank(OBSTACK,length) \
__extension__ \
@@ -443,7 +452,7 @@ __extension__ \
int __len = (length); \
if (__o->chunk_limit - __o->next_free < __len) \
_obstack_newchunk (__o, __len); \
- __o->next_free += __len; \
+ obstack_blank_fast (__o, __len); \
(void) 0; })
# define obstack_alloc(OBSTACK,length) \
@@ -530,26 +539,29 @@ __extension__ \
# define obstack_1grow(h,datum) \
( (((h)->next_free + 1 > (h)->chunk_limit) \
? (_obstack_newchunk ((h), 1), 0) : 0), \
- (*((h)->next_free)++ = (datum)))
+ obstack_1grow_fast (h, datum))
# define obstack_ptr_grow(h,datum) \
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
- (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
+ obstack_ptr_grow_fast (h, datum))
# define obstack_int_grow(h,datum) \
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
- (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
+ obstack_int_grow_fast (h, datum))
+
+# define obstack_ptr_grow_fast(h,aptr) \
+ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
-# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
+# define obstack_int_grow_fast(h,aint) \
+ (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
# define obstack_blank(h,length) \
( (h)->temp = (length), \
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->next_free += (h)->temp))
+ obstack_blank_fast (h, (h)->temp))
# define obstack_alloc(h,length) \
(obstack_blank ((h), (length)), obstack_finish ((h)))
diff --git a/libf2c/ChangeLog b/libf2c/ChangeLog
index 12c566ee949..72217d163c7 100644
--- a/libf2c/ChangeLog
+++ b/libf2c/ChangeLog
@@ -1,3 +1,90 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in: Replace PWD with PWD_COMMAND.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-23 Loren J. Rittle <ljrittle@acm.org>
+
+ * libI77/configure.in (_XOPEN_SOURCE): Bump to 600.
+ * libI77/configure: Regenerate.
+ * libU77/configure.in (_XOPEN_SOURCE): Bump to 600.
+ * libU77/configure: Regenerate.
+
+2003-04-11 Bud Davis <bdavis9659@comcast.net>
+
+ PR Fortran/1832
+ * libf2c/libI77/iio.c (z_putc): Check for overflowing length
+ of output string.
+
+2003-03-24 Bud Davis <bdavis9659@comcast.net>
+
+ PR fortran/10197
+ * libI77/open.c (f_open): A DIRECT ACCESS file is
+ UNFORMATTED by default.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in ($(LIBG2C)): -rpath is glibcpp_toolexeclibdir.
+ * aclocal.m4 (glibcpp_toolexeclibdir): Instead of
+ $(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless
+ version_specific_libs is enabled.
+ * configure: Rebuilt.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
+ (install, uninstall): Prepend $(DESTDIR) to destination
+ paths in all (un)installation commands.
+
2002-11-19 Toon Moene <toon@moene.indiv.nluug.nl>
PR fortran/8587
diff --git a/libf2c/Makefile.in b/libf2c/Makefile.in
index 5806a0b9594..7a2c1d9be9a 100644
--- a/libf2c/Makefile.in
+++ b/libf2c/Makefile.in
@@ -1,5 +1,5 @@
# Makefile for GNU F77 compiler runtime.
-# Copyright (C) 1995-1998, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1995-1998, 2001, 2002, 2003 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
@@ -20,7 +20,7 @@
#02111-1307, USA.
SHELL = @SHELL@
-PWD = $${PWDCMD-pwd}
+PWD_COMMAND = $${PWDCMD-pwd}
MAKEOVERRIDES=
.NOEXPORTS:
@@ -81,6 +81,7 @@ FLAGS_TO_PASS= \
WARN_CFLAGS='$(WARN_CFLAGS)' \
CFLAGS='$(CFLAGS)' \
CPPFLAGS='$(CPPFLAGS)' \
+ DESTDIR='$(DESTDIR)' \
AR='$(AR)' \
RANLIB='$(RANLIB)' \
prefix='$(prefix)' \
@@ -152,7 +153,7 @@ i77 f77 u77: g2c.h
$(LIBG2C): s-libi77 s-libf77 s-libu77 s-libe77
$(LIBTOOL) --mode=link $(CC) -o $@ \
-version-info $(VERSION_MAJOR):$(VERSION_MINOR):$(VERSION_SUB) \
- -rpath $(libdir)$(MULTISUBDIR) \
+ -rpath $(glibcpp_toolexeclibdir) \
-objectlist s-libe77 \
-objectlist s-libf77 \
-objectlist s-libi77 \
@@ -214,21 +215,21 @@ check:
cd libU77; $(MAKE) G77DIR=../../../gcc/ check
install: all
- $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(glibcpp_toolexeclibdir)
- $(LIBTOOL) --mode=install $(INSTALL) $(LIBG2C) $(glibcpp_toolexeclibdir)
- $(INSTALL_DATA) libfrtbegin.a $(glibcpp_toolexeclibdir)
- $(RANLIB) $(glibcpp_toolexeclibdir)/libfrtbegin.a
- $(INSTALL_DATA) g2c.h $(libsubdir)/include/g2c.h
+ $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(LIBTOOL) --mode=install $(INSTALL) $(LIBG2C) $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(INSTALL_DATA) libfrtbegin.a $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(RANLIB) $(DESTDIR)$(glibcpp_toolexeclibdir)/libfrtbegin.a
+ $(INSTALL_DATA) g2c.h $(DESTDIR)$(libsubdir)/include/g2c.h
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
- @-$(LIBTOOL) --mode=finish $(glibcpp_toolexeclibdir)
+ @-$(LIBTOOL) --mode=finish $(DESTDIR)$(glibcpp_toolexeclibdir)
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
uninstall:
- rm -f $(libsubdir)/include/g2c.h
- rm -f $(glibcpp_toolexeclibdir)/libfrtbegin.a
- $(LIBTOOL) --mode=uninstall rm -f $(glibcpp_toolexeclibdir)$(LIBG2C_BASE).la
+ rm -f $(DESTDIR)$(libsubdir)/include/g2c.h
+ rm -f $(DESTDIR)$(glibcpp_toolexeclibdir)/libfrtbegin.a
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(glibcpp_toolexeclibdir)$(LIBG2C_BASE).la
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
mostlyclean:
@@ -258,8 +259,8 @@ rebuilt: configure
installcheck installdirs all-unilib
subdir_do:
- @rootpre=`${PWD}`/; export rootpre; \
- srcrootpre=`cd $(srcdir); ${PWD}`/; export srcrootpre; \
+ @rootpre=`${PWD_COMMAND}`/; export rootpre; \
+ srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \
for i in .. $(DODIRS); do \
if [ x$$i != x.. ]; then \
if [ -f ./$$i/Makefile ]; then \
diff --git a/libf2c/aclocal.m4 b/libf2c/aclocal.m4
index b7d61e3c5a0..5d39edcfcbe 100644
--- a/libf2c/aclocal.m4
+++ b/libf2c/aclocal.m4
@@ -207,11 +207,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_SUBST(glibcpp_prefixdir)
diff --git a/libf2c/configure b/libf2c/configure
index af8502045c8..53d8da99d9b 100755
--- a/libf2c/configure
+++ b/libf2c/configure
@@ -49,7 +49,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -164,7 +163,6 @@ Configuration:
--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
@@ -335,11 +333,6 @@ EOF
-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=*)
@@ -505,16 +498,12 @@ fi
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
+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
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -642,7 +631,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:646: checking host system type" >&5
+echo "configure:635: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -663,7 +652,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:667: checking target system type" >&5
+echo "configure:656: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -681,7 +670,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:685: checking build system type" >&5
+echo "configure:674: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -713,12 +702,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:717: checking for Cygwin environment" >&5
+echo "configure:706: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 722 "configure"
+#line 711 "configure"
#include "confdefs.h"
int main() {
@@ -729,7 +718,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -746,19 +735,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:750: checking for mingw32 environment" >&5
+echo "configure:739: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 755 "configure"
+#line 744 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:762: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -793,7 +782,7 @@ esac
# be 'cp -p' if linking isn't available.
#ac_cv_prog_LN_S='cp -p'
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:797: checking whether ln -s works" >&5
+echo "configure:786: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -849,7 +838,7 @@ fi
# 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:853: checking for $ac_word" >&5
+echo "configure:842: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -879,7 +868,7 @@ if test -z "$CC"; then
# 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:883: checking for $ac_word" >&5
+echo "configure:872: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -928,7 +917,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:932: checking whether we are using GNU C" >&5
+echo "configure:921: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -937,7 +926,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -952,7 +941,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:956: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:945: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -983,7 +972,7 @@ 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:987: checking for $ac_word" >&5
+echo "configure:976: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1015,7 +1004,7 @@ fi
# 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:1019: checking for $ac_word" >&5
+echo "configure:1008: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1047,7 +1036,7 @@ fi
# 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:1051: checking for $ac_word" >&5
+echo "configure:1040: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1079,7 +1068,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1083: checking for $ac_word" >&5
+echo "configure:1072: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1123,7 +1112,7 @@ fi
# 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:1127: checking for a BSD compatible install" >&5
+echo "configure:1116: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1191,7 +1180,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1195: checking for executable suffix" >&5
+echo "configure:1184: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1201,10 +1190,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1231,13 +1220,13 @@ glibcpp_toolexeclibdir=no
glibcpp_prefixdir=${prefix}
echo $ac_n "checking for interface version number""... $ac_c" 1>&6
-echo "configure:1235: checking for interface version number" >&5
+echo "configure:1224: checking for interface version number" >&5
libstdcxx_interface=$INTERFACE
echo "$ac_t""$libstdcxx_interface" 1>&6
# Process the option "--enable-version-specific-runtime-libs"
echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:1241: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:1230: checking for --enable-version-specific-runtime-libs" >&5
# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
if test "${enable_version_specific_runtime_libs+set}" = set; then
enableval="$enable_version_specific_runtime_libs"
@@ -1272,11 +1261,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
@@ -1291,7 +1281,7 @@ fi
compiler_name=f771
rm -f skip-this-dir
echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6
-echo "configure:1295: checking if compiler $compiler_name has been built" >&5
+echo "configure:1285: checking if compiler $compiler_name has been built" >&5
if eval "test \"`echo '$''{'g77_cv_compiler_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1399,7 +1389,7 @@ ac_prog=ld
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:1403: checking for ld used by GCC" >&5
+echo "configure:1393: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1429,10 +1419,10 @@ echo "configure:1403: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1433: checking for GNU ld" >&5
+echo "configure:1423: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1436: checking for non-GNU ld" >&5
+echo "configure:1426: 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
@@ -1467,7 +1457,7 @@ else
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:1471: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1461: 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
@@ -1484,7 +1474,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1488: checking for $LD option to reload object files" >&5
+echo "configure:1478: 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
@@ -1496,7 +1486,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1500: checking for BSD-compatible nm" >&5
+echo "configure:1490: 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
@@ -1534,7 +1524,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1538: checking how to recognise dependant libraries" >&5
+echo "configure:1528: 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
@@ -1644,7 +1634,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -1707,13 +1697,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1711: checking for object suffix" >&5
+echo "configure:1701: 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:1717: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1707: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -1737,7 +1727,7 @@ case $deplibs_check_method in
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:1741: checking for ${ac_tool_prefix}file" >&5
+echo "configure:1731: 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
@@ -1799,7 +1789,7 @@ fi
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:1803: checking for file" >&5
+echo "configure:1793: 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
@@ -1870,7 +1860,7 @@ esac
# 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:1874: checking for $ac_word" >&5
+echo "configure:1864: 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
@@ -1902,7 +1892,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1906: checking for $ac_word" >&5
+echo "configure:1896: 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
@@ -1937,7 +1927,7 @@ fi
# 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:1941: checking for $ac_word" >&5
+echo "configure:1931: 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
@@ -1969,7 +1959,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1973: checking for $ac_word" >&5
+echo "configure:1963: 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
@@ -2036,8 +2026,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2040 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2041: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2030 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2049,6 +2052,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2056,7 +2060,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2064: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2069,12 +2073,54 @@ ia64-*-hpux*)
rm -rf conftest*
;;
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2078: checking whether the C compiler needs -belf" >&5
+echo "configure:2124: 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
@@ -2087,14 +2133,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2091 "configure"
+#line 2137 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2218,7 +2264,7 @@ else
# 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:2222: checking for $ac_word" >&5
+echo "configure:2268: 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
@@ -2258,7 +2304,7 @@ fi
# 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:2262: checking for a BSD compatible install" >&5
+echo "configure:2308: 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
@@ -2311,7 +2357,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:2315: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:2361: 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
@@ -2340,7 +2386,7 @@ fi
# Sanity check for the cross-compilation case:
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2344: checking how to run the C preprocessor" >&5
+echo "configure:2390: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2355,13 +2401,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2359 "configure"
+#line 2405 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2365: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2411: \"$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
:
@@ -2372,13 +2418,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2376 "configure"
+#line 2422 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2382: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2428: \"$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
:
@@ -2389,13 +2435,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2393 "configure"
+#line 2439 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2399: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2445: \"$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
:
@@ -2421,17 +2467,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for stdio.h""... $ac_c" 1>&6
-echo "configure:2425: checking for stdio.h" >&5
+echo "configure:2471: checking for stdio.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2430 "configure"
+#line 2476 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2481: \"$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*
@@ -2459,12 +2505,12 @@ fi
echo $ac_n "checking for built-in g77 integer types""... $ac_c" 1>&6
-echo "configure:2463: checking for built-in g77 integer types" >&5
+echo "configure:2509: checking for built-in g77 integer types" >&5
if eval "test \"`echo '$''{'libf2c_cv_has_g77_builtin_types'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2468 "configure"
+#line 2514 "configure"
#include "confdefs.h"
int main() {
@@ -2474,7 +2520,7 @@ __g77_longint g77l;
__g77_ulongint g77ul;
; return 0; }
EOF
-if { (eval echo configure:2478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2524: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libf2c_cv_has_g77_builtin_types=yes
else
@@ -2571,15 +2617,34 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
+t quote
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output. A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
# Without the "./", some shells look in PATH for config.status.
@@ -2798,6 +2863,7 @@ with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
diff --git a/libf2c/configure.in b/libf2c/configure.in
index 8b2e26ab8e4..6ba14c93a76 100644
--- a/libf2c/configure.in
+++ b/libf2c/configure.in
@@ -1,5 +1,6 @@
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 1995, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1995, 1997, 1998, 1999, 2002, 2003
+# Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
@@ -137,6 +138,7 @@ with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)
diff --git a/libf2c/libI77/configure b/libf2c/libI77/configure
index 7bca4a73988..ee4c73ae433 100755
--- a/libf2c/libI77/configure
+++ b/libf2c/libI77/configure
@@ -28,6 +28,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -142,6 +143,7 @@ Configuration:
--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
@@ -312,6 +314,11 @@ EOF
-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=*)
@@ -477,12 +484,16 @@ fi
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"
+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
@@ -530,7 +541,7 @@ fi
# 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:534: checking for $ac_word" >&5
+echo "configure:545: 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
@@ -560,7 +571,7 @@ if test -z "$CC"; then
# 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:564: checking for $ac_word" >&5
+echo "configure:575: 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
@@ -611,7 +622,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:615: checking for $ac_word" >&5
+echo "configure:626: 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
@@ -644,7 +655,7 @@ fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:648: checking whether we are using GNU C" >&5
+echo "configure:659: 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
@@ -653,7 +664,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:668: \"$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
@@ -672,7 +683,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:676: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:687: 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
@@ -705,20 +716,20 @@ fi
# These defines are necessary to get 64-bit file size support.
-# NetBSD 1.4 header files does not support XOPEN_SOURCE == 500, but it
+# NetBSD 1.4 header files does not support XOPEN_SOURCE == 600, but it
# handles 64-bit file sizes without needing these defines.
echo $ac_n "checking whether _XOPEN_SOURCE may be defined""... $ac_c" 1>&6
-echo "configure:712: checking whether _XOPEN_SOURCE may be defined" >&5
+echo "configure:723: checking whether _XOPEN_SOURCE may be defined" >&5
cat > conftest.$ac_ext <<EOF
-#line 714 "configure"
+#line 725 "configure"
#include "confdefs.h"
-#define _XOPEN_SOURCE 500L
+#define _XOPEN_SOURCE 600L
#include <unistd.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
may_use_xopen_source=yes
else
@@ -731,7 +742,7 @@ rm -f conftest*
echo "$ac_t""$may_use_xopen_source" 1>&6
if test $may_use_xopen_source = yes; then
cat >> confdefs.h <<\EOF
-#define _XOPEN_SOURCE 500L
+#define _XOPEN_SOURCE 600L
EOF
# The following is needed by irix6.2 so that struct timeval is declared.
@@ -761,7 +772,7 @@ LIBTOOL='$(SHELL) ../libtool'
test "$AR" || AR=ar
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:765: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:776: 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
@@ -791,7 +802,7 @@ fi
# Sanity check for the cross-compilation case:
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:795: checking how to run the C preprocessor" >&5
+echo "configure:806: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -806,13 +817,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 810 "configure"
+#line 821 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:827: \"$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
:
@@ -823,13 +834,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 827 "configure"
+#line 838 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:844: \"$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
:
@@ -840,13 +851,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 844 "configure"
+#line 855 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:850: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:861: \"$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
:
@@ -872,17 +883,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for stdio.h""... $ac_c" 1>&6
-echo "configure:876: checking for stdio.h" >&5
+echo "configure:887: checking for stdio.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 881 "configure"
+#line 892 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:897: \"$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*
@@ -910,12 +921,12 @@ fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:914: checking for ANSI C header files" >&5
+echo "configure:925: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 919 "configure"
+#line 930 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -923,7 +934,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:938: \"$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*
@@ -940,7 +951,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 944 "configure"
+#line 955 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -958,7 +969,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 962 "configure"
+#line 973 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -979,7 +990,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 983 "configure"
+#line 994 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -990,7 +1001,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1014,12 +1025,12 @@ EOF
fi
echo $ac_n "checking for posix""... $ac_c" 1>&6
-echo "configure:1018: checking for posix" >&5
+echo "configure:1029: checking for posix" >&5
if eval "test \"`echo '$''{'g77_cv_header_posix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1023 "configure"
+#line 1034 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <unistd.h>
@@ -1045,12 +1056,12 @@ echo "$ac_t""$g77_cv_header_posix" 1>&6
# We can rely on the GNU library being posix-ish. I guess checking the
# header isn't actually like checking the functions, though...
echo $ac_n "checking for GNU library""... $ac_c" 1>&6
-echo "configure:1049: checking for GNU library" >&5
+echo "configure:1060: checking for GNU library" >&5
if eval "test \"`echo '$''{'g77_cv_lib_gnu'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1054 "configure"
+#line 1065 "configure"
#include "confdefs.h"
#include <stdio.h>
#ifdef __GNU_LIBRARY__
@@ -1074,12 +1085,12 @@ echo "$ac_t""$g77_cv_lib_gnu" 1>&6
# Apparently cygwin needs to be special-cased.
echo $ac_n "checking for cyg\`win'32""... $ac_c" 1>&6
-echo "configure:1078: checking for cyg\`win'32" >&5
+echo "configure:1089: checking for cyg\`win'32" >&5
if eval "test \"`echo '$''{'g77_cv_sys_cygwin32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1083 "configure"
+#line 1094 "configure"
#include "confdefs.h"
#ifdef __CYGWIN32__
yes
@@ -1102,12 +1113,12 @@ echo "$ac_t""$g77_cv_sys_cygwin32" 1>&6
# ditto for mingw32.
echo $ac_n "checking for mingw32""... $ac_c" 1>&6
-echo "configure:1106: checking for mingw32" >&5
+echo "configure:1117: checking for mingw32" >&5
if eval "test \"`echo '$''{'g77_cv_sys_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1111 "configure"
+#line 1122 "configure"
#include "confdefs.h"
#ifdef __MINGW32__
yes
@@ -1130,12 +1141,12 @@ echo "$ac_t""$g77_cv_sys_mingw32" 1>&6
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1134: checking for working const" >&5
+echo "configure:1145: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1139 "configure"
+#line 1150 "configure"
#include "confdefs.h"
int main() {
@@ -1184,7 +1195,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1199: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1205,12 +1216,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1209: checking for size_t" >&5
+echo "configure:1220: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1214 "configure"
+#line 1225 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1243,12 +1254,12 @@ fi
# Apparently positive result on cygwin loses re. NON_UNIX_STDIO
# (as of cygwin b18). Likewise on mingw.
echo $ac_n "checking for fstat""... $ac_c" 1>&6
-echo "configure:1247: checking for fstat" >&5
+echo "configure:1258: checking for fstat" >&5
if eval "test \"`echo '$''{'ac_cv_func_fstat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1252 "configure"
+#line 1263 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char fstat(); below. */
@@ -1271,7 +1282,7 @@ fstat();
; return 0; }
EOF
-if { (eval echo configure:1275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_fstat=yes"
else
@@ -1291,7 +1302,7 @@ else
fi
echo $ac_n "checking need for NON_UNIX_STDIO""... $ac_c" 1>&6
-echo "configure:1295: checking need for NON_UNIX_STDIO" >&5
+echo "configure:1306: checking need for NON_UNIX_STDIO" >&5
if test $g77_cv_sys_cygwin32 = yes \
|| test $g77_cv_sys_mingw32 = yes \
|| test $ac_cv_func_fstat = no; then
@@ -1307,12 +1318,12 @@ fi
for ac_func in fseeko
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1311: checking for $ac_func" >&5
+echo "configure:1322: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1316 "configure"
+#line 1327 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1335,7 +1346,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1362,12 +1373,12 @@ done
for ac_func in ftello
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1366: checking for $ac_func" >&5
+echo "configure:1377: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1371 "configure"
+#line 1382 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1390,7 +1401,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1417,12 +1428,12 @@ done
for ac_func in ftruncate
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1421: checking for $ac_func" >&5
+echo "configure:1432: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1426 "configure"
+#line 1437 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1445,7 +1456,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1472,12 +1483,12 @@ done
for ac_func in mkstemp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1476: checking for $ac_func" >&5
+echo "configure:1487: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1481 "configure"
+#line 1492 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1500,7 +1511,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1527,12 +1538,12 @@ done
for ac_func in tempnam
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1531: checking for $ac_func" >&5
+echo "configure:1542: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1536 "configure"
+#line 1547 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1555,7 +1566,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1582,12 +1593,12 @@ done
for ac_func in tmpnam
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1586: checking for $ac_func" >&5
+echo "configure:1597: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1591 "configure"
+#line 1602 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1610,7 +1621,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1640,19 +1651,19 @@ done
# However, on my sunos4/gcc setup unistd.h leads us wrongly to believe
# we're posix-conformant, so always do the test.
echo $ac_n "checking for ansi/posix sprintf result""... $ac_c" 1>&6
-echo "configure:1644: checking for ansi/posix sprintf result" >&5
+echo "configure:1655: checking for ansi/posix sprintf result" >&5
if test "$cross_compiling" = yes; then
g77_cv_sys_sprintf_ansi=no
else
cat > conftest.$ac_ext <<EOF
-#line 1649 "configure"
+#line 1660 "configure"
#include "confdefs.h"
#include <stdio.h>
/* does sprintf return the number of chars transferred? */
main () {char foo[2]; (sprintf(foo, "1") == 1) ? exit(0) : exit(1);}
EOF
-if { (eval echo configure:1656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
g77_cv_sys_sprintf_ansi=yes
else
@@ -1683,9 +1694,9 @@ fi
# define NON_ANSI_RW_MODES on unix (can't hurt)
echo $ac_n "checking NON_ANSI_RW_MODES""... $ac_c" 1>&6
-echo "configure:1687: checking NON_ANSI_RW_MODES" >&5
+echo "configure:1698: checking NON_ANSI_RW_MODES" >&5
cat > conftest.$ac_ext <<EOF
-#line 1689 "configure"
+#line 1700 "configure"
#include "confdefs.h"
#ifdef unix
yes
@@ -1730,12 +1741,12 @@ EOF
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:1734: checking for off_t" >&5
+echo "configure:1745: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1739 "configure"
+#line 1750 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
diff --git a/libf2c/libI77/configure.in b/libf2c/libI77/configure.in
index 40713e091dd..83f98fbbabd 100644
--- a/libf2c/libI77/configure.in
+++ b/libf2c/libI77/configure.in
@@ -32,16 +32,16 @@ define([AC_PROG_CC_WORKS],[])
AC_PROG_CC
# These defines are necessary to get 64-bit file size support.
-# NetBSD 1.4 header files does not support XOPEN_SOURCE == 500, but it
+# NetBSD 1.4 header files does not support XOPEN_SOURCE == 600, but it
# handles 64-bit file sizes without needing these defines.
AC_MSG_CHECKING(whether _XOPEN_SOURCE may be defined)
-AC_TRY_COMPILE([#define _XOPEN_SOURCE 500L
+AC_TRY_COMPILE([#define _XOPEN_SOURCE 600L
#include <unistd.h>],,
may_use_xopen_source=yes,
may_use_xopen_source=no)
AC_MSG_RESULT($may_use_xopen_source)
if test $may_use_xopen_source = yes; then
- AC_DEFINE(_XOPEN_SOURCE, 500L, [Get Single Unix Specification semantics])
+ AC_DEFINE(_XOPEN_SOURCE, 600L, [Get Single Unix Specification semantics])
# The following is needed by irix6.2 so that struct timeval is declared.
AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Get Single Unix Specification semantics])
# The following is needed by Solaris2.5.1 so that struct timeval is declared.
diff --git a/libf2c/libI77/iio.c b/libf2c/libI77/iio.c
index 69f215425db..940cbf82f91 100644
--- a/libf2c/libI77/iio.c
+++ b/libf2c/libI77/iio.c
@@ -21,7 +21,7 @@ z_getc (void)
void
z_putc (int c)
{
- if (f__icptr < f__icend && f__recpos++ < f__svic->icirlen)
+ if (f__recpos++ < f__svic->icirlen && f__icptr < f__icend)
*f__icptr++ = c;
}
int
diff --git a/libf2c/libI77/open.c b/libf2c/libI77/open.c
index 790f5d67098..ac1e00ec6de 100644
--- a/libf2c/libI77/open.c
+++ b/libf2c/libI77/open.c
@@ -148,7 +148,10 @@ f_open (olist * a)
b->url = (int) a->orl;
b->ublnk = a->oblnk && (*a->oblnk == 'z' || *a->oblnk == 'Z');
if (a->ofm == 0)
- b->ufmt = 1;
+ if ((a->oacc) && (*a->oacc == 'D' || *a->oacc == 'd'))
+ b->ufmt = 0;
+ else
+ b->ufmt = 1;
else if (*a->ofm == 'f' || *a->ofm == 'F')
b->ufmt = 1;
else
diff --git a/libf2c/libU77/configure b/libf2c/libU77/configure
index 6b288eeb744..29a5f131a37 100755
--- a/libf2c/libU77/configure
+++ b/libf2c/libU77/configure
@@ -28,6 +28,7 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
+sitefile=
srcdir=
target=NONE
verbose=
@@ -142,6 +143,7 @@ Configuration:
--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
@@ -312,6 +314,11 @@ EOF
-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=*)
@@ -477,12 +484,16 @@ fi
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"
+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
@@ -530,7 +541,7 @@ fi
# 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:534: checking for $ac_word" >&5
+echo "configure:545: 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
@@ -560,7 +571,7 @@ if test -z "$CC"; then
# 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:564: checking for $ac_word" >&5
+echo "configure:575: 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
@@ -611,7 +622,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:615: checking for $ac_word" >&5
+echo "configure:626: 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
@@ -644,7 +655,7 @@ fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:648: checking whether we are using GNU C" >&5
+echo "configure:659: 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
@@ -653,7 +664,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:668: \"$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
@@ -672,7 +683,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:676: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:687: 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
@@ -705,20 +716,20 @@ fi
# These defines are necessary to get 64-bit file size support.
-# NetBSD 1.4 header files does not support XOPEN_SOURCE == 500, but it
+# NetBSD 1.4 header files does not support XOPEN_SOURCE == 600, but it
# handles 64-bit file sizes without needing these defines.
echo $ac_n "checking whether _XOPEN_SOURCE may be defined""... $ac_c" 1>&6
-echo "configure:712: checking whether _XOPEN_SOURCE may be defined" >&5
+echo "configure:723: checking whether _XOPEN_SOURCE may be defined" >&5
cat > conftest.$ac_ext <<EOF
-#line 714 "configure"
+#line 725 "configure"
#include "confdefs.h"
-#define _XOPEN_SOURCE 500L
+#define _XOPEN_SOURCE 600L
#include <unistd.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:722: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
may_use_xopen_source=yes
else
@@ -731,7 +742,7 @@ rm -f conftest*
echo "$ac_t""$may_use_xopen_source" 1>&6
if test $may_use_xopen_source = yes; then
cat >> confdefs.h <<\EOF
-#define _XOPEN_SOURCE 500L
+#define _XOPEN_SOURCE 600L
EOF
# The following is needed by irix6.2 so that struct timeval is declared.
@@ -763,7 +774,7 @@ fi
test "$AR" || AR=ar
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:767: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:778: 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
@@ -793,7 +804,7 @@ fi
# Extract the first word of "chmod", so it can be a program name with args.
set dummy chmod; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:797: checking for $ac_word" >&5
+echo "configure:808: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_ac_cv_prog_chmod'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -837,7 +848,7 @@ else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:841: checking how to run the C preprocessor" >&5
+echo "configure:852: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -852,13 +863,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 856 "configure"
+#line 867 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:873: \"$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
:
@@ -869,13 +880,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 873 "configure"
+#line 884 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:890: \"$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
:
@@ -886,13 +897,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 890 "configure"
+#line 901 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:896: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:907: \"$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
:
@@ -917,12 +928,12 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:921: checking for ANSI C header files" >&5
+echo "configure:932: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 926 "configure"
+#line 937 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -930,7 +941,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:945: \"$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*
@@ -947,7 +958,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 951 "configure"
+#line 962 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -965,7 +976,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 969 "configure"
+#line 980 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -986,7 +997,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 990 "configure"
+#line 1001 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -997,7 +1008,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1021,12 +1032,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1025: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1036: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1030 "configure"
+#line 1041 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -1035,7 +1046,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:1039: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1050: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -1060,17 +1071,17 @@ for ac_hdr in limits.h unistd.h sys/time.h string.h stdlib.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1064: checking for $ac_hdr" >&5
+echo "configure:1075: 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
-#line 1069 "configure"
+#line 1080 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1074: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1085: \"$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*
@@ -1098,12 +1109,12 @@ done
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1102: checking for working const" >&5
+echo "configure:1113: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1107 "configure"
+#line 1118 "configure"
#include "confdefs.h"
int main() {
@@ -1152,7 +1163,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1167: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1173,12 +1184,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1177: checking for size_t" >&5
+echo "configure:1188: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1182 "configure"
+#line 1193 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1206,12 +1217,12 @@ EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:1210: checking for mode_t" >&5
+echo "configure:1221: checking for mode_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1215 "configure"
+#line 1226 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1240,12 +1251,12 @@ fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1244: checking for pid_t" >&5
+echo "configure:1255: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1249 "configure"
+#line 1260 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1273,12 +1284,12 @@ EOF
fi
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:1277: checking for st_blksize in struct stat" >&5
+echo "configure:1288: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1282 "configure"
+#line 1293 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1286,7 +1297,7 @@ int main() {
struct stat s; s.st_blksize;
; return 0; }
EOF
-if { (eval echo configure:1290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blksize=yes
else
@@ -1307,12 +1318,12 @@ EOF
fi
echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6
-echo "configure:1311: checking for st_blocks in struct stat" >&5
+echo "configure:1322: checking for st_blocks in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1316 "configure"
+#line 1327 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1320,7 +1331,7 @@ int main() {
struct stat s; s.st_blocks;
; return 0; }
EOF
-if { (eval echo configure:1324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blocks=yes
else
@@ -1343,12 +1354,12 @@ else
fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
-echo "configure:1347: checking for st_rdev in struct stat" >&5
+echo "configure:1358: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1352 "configure"
+#line 1363 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -1356,7 +1367,7 @@ int main() {
struct stat s; s.st_rdev;
; return 0; }
EOF
-if { (eval echo configure:1360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_rdev=yes
else
@@ -1377,12 +1388,12 @@ EOF
fi
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:1381: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:1392: checking whether struct tm is in sys/time.h or time.h" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1386 "configure"
+#line 1397 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
@@ -1390,7 +1401,7 @@ int main() {
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:1394: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
@@ -1412,7 +1423,7 @@ fi
echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6
-echo "configure:1416: checking for gethostname in -lsocket" >&5
+echo "configure:1427: checking for gethostname in -lsocket" >&5
ac_lib_var=`echo socket'_'gethostname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1420,7 +1431,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1424 "configure"
+#line 1435 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1431,7 +1442,7 @@ int main() {
gethostname()
; return 0; }
EOF
-if { (eval echo configure:1435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1446: \"$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
@@ -1457,12 +1468,12 @@ for ac_func in symlink getcwd getwd lstat gethostname strerror clock \
getrusage times alarm getlogin getgid getuid kill link ttyname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1461: checking for $ac_func" >&5
+echo "configure:1472: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1466 "configure"
+#line 1477 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1485,7 +1496,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1514,12 +1525,12 @@ done
for ac_func in gettimeofday
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1518: checking for $ac_func" >&5
+echo "configure:1529: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1534 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1542,7 +1553,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1568,19 +1579,19 @@ done
if test "$ac_cv_func_gettimeofday" = yes; then
echo $ac_n "checking for struct timezone""... $ac_c" 1>&6
-echo "configure:1572: checking for struct timezone" >&5
+echo "configure:1583: checking for struct timezone" >&5
if eval "test \"`echo '$''{'g77_cv_struct_timezone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1577 "configure"
+#line 1588 "configure"
#include "confdefs.h"
#include <sys/time.h>
int main() {
struct timezone tz;
; return 0; }
EOF
-if { (eval echo configure:1584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
g77_cv_struct_timezone=yes
else
@@ -1601,7 +1612,7 @@ EOF
else
cat > conftest.$ac_ext <<EOF
-#line 1605 "configure"
+#line 1616 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
@@ -1624,7 +1635,7 @@ main ()
exit (0);
}
EOF
-if { (eval echo configure:1628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cat >> confdefs.h <<\EOF
#define HAVE_TIMEZONE 1
@@ -1640,12 +1651,12 @@ fi
fi
echo $ac_n "checking whether gettimeofday can accept two arguments""... $ac_c" 1>&6
-echo "configure:1644: checking whether gettimeofday can accept two arguments" >&5
+echo "configure:1655: checking whether gettimeofday can accept two arguments" >&5
if eval "test \"`echo '$''{'emacs_cv_gettimeofday_two_arguments'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1649 "configure"
+#line 1660 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
@@ -1671,7 +1682,7 @@ int main() {
gettimeofday (&time, DUMMY);
; return 0; }
EOF
-if { (eval echo configure:1675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
emacs_cv_gettimeofday_two_arguments=yes
else
diff --git a/libf2c/libU77/configure.in b/libf2c/libU77/configure.in
index b0e0aed6bf0..a56fc4cd311 100644
--- a/libf2c/libU77/configure.in
+++ b/libf2c/libU77/configure.in
@@ -32,16 +32,16 @@ define([AC_PROG_CC_WORKS],[])
AC_PROG_CC
# These defines are necessary to get 64-bit file size support.
-# NetBSD 1.4 header files does not support XOPEN_SOURCE == 500, but it
+# NetBSD 1.4 header files does not support XOPEN_SOURCE == 600, but it
# handles 64-bit file sizes without needing these defines.
AC_MSG_CHECKING(whether _XOPEN_SOURCE may be defined)
-AC_TRY_COMPILE([#define _XOPEN_SOURCE 500L
+AC_TRY_COMPILE([#define _XOPEN_SOURCE 600L
#include <unistd.h>],,
may_use_xopen_source=yes,
may_use_xopen_source=no)
AC_MSG_RESULT($may_use_xopen_source)
if test $may_use_xopen_source = yes; then
- AC_DEFINE(_XOPEN_SOURCE, 500L, [Get Single Unix Specification semantics])
+ AC_DEFINE(_XOPEN_SOURCE, 600L, [Get Single Unix Specification semantics])
# The following is needed by irix6.2 so that struct timeval is declared.
AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Get Single Unix Specification semantics])
# The following is needed by Solaris2.5.1 so that struct timeval is declared.
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index 8ed3398ea1e..c89c41f00f6 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,148 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-08 Kean Johnston <jkj@sco.com>
+
+ * configure.in: Add support for sco3.2v5.0*
+ * configure: Regenerated
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * README: Note that libffi is not part of GCC. Update the project
+ URL and status.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-07 Jeff Sturm <jsturm@one-point.com>
+
+ Fixes PR bootstrap/10656
+ * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
+ support for .register pseudo-op.
+ * src/sparc/v8.S: Use it.
+ * fficonfig.h.in: Rebuilt.
+ * configure: Rebuilt.
+
+2003-04-04 Loren J. Rittle <ljrittle@acm.org>
+
+ * include/Makefile.in: Regenerate.
+
+2003-03-22 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
+ bit mode.
+ * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
+ Receive closure pointer through parameter, read args using
+ __builtin_dwarf_cfa.
+ (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
+
+2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * libffi/src/powerpc/darwin_closure.S:
+ Fix alignement bug, allocate 8 bytes for the result.
+ * libffi/src/powerpc/aix_closure.S:
+ Likewise.
+ * libffi/src/powerpc/ffi_darwin.c:
+ Update stackframe description for aix/darwin_closure.S.
+
+2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
+ Andreas Schwab <schwab@suse.de>
+
+ * configure.in: Adjust command to source config-ml.in to account
+ for changes to the libffi_basedir definition.
+ (libffi_basedir): Remove ${srcdir} from value and include trailing
+ slash if nonempty.
+
+ * configure: Regenerate.
+
+2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * src/powerpc/ppc_closure.S: Recode to fit shared libs.
+
+2003-01-28 Andrew Haley <aph@redhat.com>
+
+ * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
+ * src/x86/ffi64.c (ffi_prep_closure): New.
+ (ffi_closure_UNIX64_inner): New.
+ * src/x86/unix64.S (ffi_closure_UNIX64): New.
+
+2003-01-22 Andrew Haley <aph@redhat.com>
+
+ * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
+ unwind info.
+
+2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * src/powerpc/darwin.S: Add unwind info.
+ * src/powerpc/darwin_closure.S: Likewise.
+
+2003-01-14 Andrew Haley <aph@redhat.com>
+
+ * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
+ (ffi_prep_cif_machdep): Likewise.
+ * src/x86/unix64.S: Add unwind info.
+
+2003-01-14 Andreas Jaeger <aj@suse.de>
+
+ * src/ffitest.c (main): Only use ffi_closures if those are
+ supported.
+
+2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * libffi/src/ffitest.c
+ add closure testcases
+
+2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
+
+ * libffi/src/powerpc/ffi.c
+ fix alignment bug for float (4 byte aligned iso 8 byte)
+
+2003-01-03 Jeff Sturm <jsturm@one-point.com>
+
+ * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
+ * src/ffitest.c (main): Use static storage for closure.
+ * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
+ * src/sparc/v8.S (ffi_closure_v8): New.
+ * src/sparc/v9.S (ffi_closure_v9): New.
+
2002-11-10 Ranjit Mathew <rmathew@hotmail.com>
* include/ffi.h.in: Added FFI_STDCALL ffi_type
diff --git a/libffi/ChangeLog.libgcj b/libffi/ChangeLog.libgcj
index 4c5be6d3fd0..5c38225c2a5 100644
--- a/libffi/ChangeLog.libgcj
+++ b/libffi/ChangeLog.libgcj
@@ -1,3 +1,16 @@
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2002-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
+ Remove USE_LIBDIR conditional.
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
+ * Makefile.in, configure: Rebuilt.
+
Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* include/Makefile.in: Rebuilt.
diff --git a/libffi/Makefile.am b/libffi/Makefile.am
index 9ee70acc02f..8cae05309bb 100644
--- a/libffi/Makefile.am
+++ b/libffi/Makefile.am
@@ -76,15 +76,6 @@ MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
toolexeclib_LTLIBRARIES = libffi.la
noinst_LTLIBRARIES = libffi_convenience.la
diff --git a/libffi/Makefile.in b/libffi/Makefile.in
index 37adbf795a4..598d683d7b7 100644
--- a/libffi/Makefile.in
+++ b/libffi/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -80,6 +80,8 @@ TARGET = @TARGET@
TARGETDIR = @TARGETDIR@
VERSION = @VERSION@
libffi_basedir = @libffi_basedir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
AUTOMAKE_OPTIONS = cygnus
@@ -152,9 +154,6 @@ MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
toolexeclib_LTLIBRARIES = libffi.la
noinst_LTLIBRARIES = libffi_convenience.la
@@ -216,7 +215,7 @@ libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
@ARM_TRUE@libffi_convenience_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
@S390_TRUE@libffi_convenience_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
@X86_64_TRUE@libffi_convenience_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
-@SH_TRUE@libffi_convenience_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
+@SH_TRUE@libfficonvenience_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
AM_CFLAGS = -fexceptions
@@ -224,7 +223,7 @@ libffi_la_LDFLAGS = -release $(VERSION)
INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+mkinstalldirs = $(SHELL) $(top_srcdir)/${libffi_basedir}/../mkinstalldirs
CONFIG_HEADER = fficonfig.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
@@ -236,112 +235,112 @@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libffi_convenience_la_LDFLAGS =
libffi_convenience_la_LIBADD =
-@MIPS_GCC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@MIPS_GCC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@MIPS_GCC_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
-@MIPS_GCC_TRUE@src/mips/n32.lo
-@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
-@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closures.lo
@ALPHA_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
@ALPHA_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
@ALPHA_TRUE@src/java_raw_api.lo src/alpha/ffi.lo src/alpha/osf.lo
@IA64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
-@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@POWERPC_DARWIN_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@POWERPC_DARWIN_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
-@POWERPC_DARWIN_TRUE@src/powerpc/darwin.lo \
-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
-@MIPS_SGI_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@MIPS_SGI_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@MIPS_SGI_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
-@MIPS_SGI_TRUE@src/mips/n32.lo
-@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@MIPS_LINUX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@MIPS_LINUX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo
+@MIPS_GCC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@MIPS_GCC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@MIPS_GCC_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
+@MIPS_GCC_TRUE@src/mips/n32.lo
@S390_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
-@SH_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@SH_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@SH_TRUE@src/sh/sysv.lo src/sh/ffi.lo
+@M68K_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
@X86_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo
-@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
-@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
-@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo
-@ARM_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo
@POWERPC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
@POWERPC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
@POWERPC_TRUE@src/java_raw_api.lo src/powerpc/ffi.lo \
@POWERPC_TRUE@src/powerpc/sysv.lo src/powerpc/ppc_closure.lo
+@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@MIPS_LINUX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@MIPS_LINUX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo
+@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo
+@X86_64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@X86_64_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@X86_64_TRUE@src/java_raw_api.lo src/x86/ffi64.lo src/x86/unix64.lo \
+@X86_64_TRUE@src/x86/ffi.lo src/x86/sysv.lo
@SPARC_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
@SPARC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
@SPARC_TRUE@src/java_raw_api.lo src/sparc/ffi.lo src/sparc/v8.lo \
@SPARC_TRUE@src/sparc/v9.lo
-@M68K_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
+@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
+@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closures.lo
+@MIPS_SGI_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@MIPS_SGI_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@MIPS_SGI_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
+@MIPS_SGI_TRUE@src/mips/n32.lo
+@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo \
+@POWERPC_DARWIN_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+@POWERPC_DARWIN_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
+@POWERPC_DARWIN_TRUE@src/powerpc/darwin.lo \
+@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
+@ARM_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo
libffi_la_LIBADD =
-@MIPS_GCC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@MIPS_GCC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@MIPS_GCC_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
-@POWERPC_AIX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \
-@POWERPC_AIX_TRUE@src/powerpc/aix_closures.lo
-@ALPHA_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo
+@SH_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
+@SH_TRUE@src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \
+@SH_TRUE@src/sh/ffi.lo
@IA64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
-@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@POWERPC_DARWIN_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@POWERPC_DARWIN_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/darwin.lo \
-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
-@MIPS_SGI_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@MIPS_SGI_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@MIPS_SGI_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
-@MIPS_LINUX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@MIPS_LINUX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@MIPS_LINUX_TRUE@src/mips/ffi.lo src/mips/o32.lo
-@S390_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
-@X86_64_TRUE@libffi_convenience_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@X86_64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@X86_64_TRUE@src/x86/ffi.lo src/x86/sysv.lo src/x86/unix64.lo src/x86/ffi64.lo
-@SH_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
-@SH_TRUE@src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo src/sh/ffi.lo
@X86_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \
@X86_TRUE@src/x86/sysv.lo
-@X86_WIN32_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
-@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
-@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo
-@ARM_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
-@ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \
-@ARM_TRUE@src/arm/ffi.lo
@POWERPC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@POWERPC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@POWERPC_TRUE@src/powerpc/ffi.lo src/powerpc/sysv.lo \
@POWERPC_TRUE@src/powerpc/ppc_closure.lo
+@MIPS_LINUX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@MIPS_LINUX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@MIPS_LINUX_TRUE@src/mips/ffi.lo src/mips/o32.lo
@SPARC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@SPARC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@SPARC_TRUE@src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo
+@POWERPC_AIX_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \
+@POWERPC_AIX_TRUE@src/powerpc/aix_closures.lo
+@MIPS_SGI_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@MIPS_SGI_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@MIPS_SGI_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
+@ARM_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
+@ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \
+@ARM_TRUE@src/arm/ffi.lo
+@ALPHA_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo
+@MIPS_GCC_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@MIPS_GCC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@MIPS_GCC_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
+@S390_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
@M68K_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
-@X86_64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo src/types.lo \
-@X86_64_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \
-@X86_64_TRUE@src/x86/sysv.lo src/x86/unix64.lo src/x86/ffi64.lo
+@X86_WIN32_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo
+@X86_64_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@X86_64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@X86_64_TRUE@src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo \
+@X86_64_TRUE@src/x86/sysv.lo
+@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS = src/debug.lo src/prep_cif.lo \
+@POWERPC_DARWIN_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+@POWERPC_DARWIN_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/darwin.lo \
+@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
noinst_PROGRAMS = ffitest$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
@@ -524,7 +523,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
- test "$$subdir" != "." || dot_seen=yes; \
+ test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@@ -617,7 +616,7 @@ distdir: $(DISTFILES)
-chmod 777 $(distdir)
$(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \
$(distdir)/src/m68k $(distdir)/src/mips \
- $(distdir)/src/powerpc $(distdir)/src/s390 \
+ $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh \
$(distdir)/src/sparc $(distdir)/src/x86
@for file in $(DISTFILES); do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
diff --git a/libffi/README b/libffi/README
index a00f23daf3a..21a7735bf74 100644
--- a/libffi/README
+++ b/libffi/README
@@ -1,9 +1,13 @@
-README for libffi-2.00
+This directory contains the libffi package, which is not part of GCC but
+shipped with GCC as convenience.
+
+Status
+======
libffi-2.00 has not been released yet! This is a development snapshot!
-libffi-1.20 was released on [SOME FUTURE DAY]. Check the libffi web
-page for updates: <URL:http://sourceware.cygnus.com/libffi/>.
+libffi-1.20 was released on October 5, 1998. Check the libffi web
+page for updates: <URL:http://sources.redhat.com/libffi/>.
What is libffi?
diff --git a/libffi/configure b/libffi/configure
index 13a6187c2b4..5434a220ef1 100755
--- a/libffi/configure
+++ b/libffi/configure
@@ -53,7 +53,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -168,7 +167,6 @@ Configuration:
--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
@@ -339,11 +337,6 @@ EOF
-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=*)
@@ -509,16 +502,12 @@ fi
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
+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
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -557,12 +546,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:561: checking for Cygwin environment" >&5
+echo "configure:550: 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 <<EOF
-#line 566 "configure"
+#line 555 "configure"
#include "confdefs.h"
int main() {
@@ -573,7 +562,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -590,19 +579,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:594: checking for mingw32 environment" >&5
+echo "configure:583: 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 <<EOF
-#line 599 "configure"
+#line 588 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:595: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -644,16 +633,16 @@ fi
if test "${srcdir}" = "."; then
if test "${with_target_subdir}" != "."; then
- libffi_basedir="${srcdir}/${with_multisrctop}.."
+ libffi_basedir="${with_multisrctop}../"
else
- libffi_basedir="${srcdir}/${with_multisrctop}"
+ libffi_basedir="${with_multisrctop}"
fi
else
- libffi_basedir="${srcdir}"
+ libffi_basedir=
fi
ac_aux_dir=
-for ac_dir in ${libffi_basedir}/.. $srcdir/${libffi_basedir}/..; do
+for ac_dir in ${libffi_basedir}.. $srcdir/${libffi_basedir}..; do
if test -f $ac_dir/install-sh; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -665,7 +654,7 @@ for ac_dir in ${libffi_basedir}/.. $srcdir/${libffi_basedir}/..; do
fi
done
if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in ${libffi_basedir}/.. $srcdir/${libffi_basedir}/.." 1>&2; exit 1; }
+ { echo "configure: error: can not find install-sh or install.sh in ${libffi_basedir}.. $srcdir/${libffi_basedir}.." 1>&2; exit 1; }
fi
ac_config_guess=$ac_aux_dir/config.guess
ac_config_sub=$ac_aux_dir/config.sub
@@ -679,7 +668,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:683: checking host system type" >&5
+echo "configure:672: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -770,7 +759,7 @@ else
fi
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:774: checking build system type" >&5
+echo "configure:763: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -790,7 +779,7 @@ echo "$ac_t""$build" 1>&6
# 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:794: checking for $ac_word" >&5
+echo "configure:783: 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
@@ -820,7 +809,7 @@ if test -z "$CC"; then
# 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:824: checking for $ac_word" >&5
+echo "configure:813: 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
@@ -871,7 +860,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:875: checking for $ac_word" >&5
+echo "configure:864: 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
@@ -903,7 +892,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:907: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:896: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -914,12 +903,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 918 "configure"
+#line 907 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -945,12 +934,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:949: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:938: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:954: checking whether we are using GNU C" >&5
+echo "configure:943: 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
@@ -959,7 +948,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:952: \"$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
@@ -978,7 +967,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:982: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:971: 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
@@ -1021,7 +1010,7 @@ ac_prog=ld
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:1025: checking for ld used by GCC" >&5
+echo "configure:1014: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1051,10 +1040,10 @@ echo "configure:1025: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1055: checking for GNU ld" >&5
+echo "configure:1044: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1058: checking for non-GNU ld" >&5
+echo "configure:1047: 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
@@ -1089,7 +1078,7 @@ else
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:1093: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1082: 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
@@ -1106,7 +1095,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1110: checking for $LD option to reload object files" >&5
+echo "configure:1099: 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
@@ -1118,7 +1107,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1122: checking for BSD-compatible nm" >&5
+echo "configure:1111: 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
@@ -1156,7 +1145,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1160: checking whether ln -s works" >&5
+echo "configure:1149: 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
@@ -1177,7 +1166,7 @@ else
fi
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1181: checking how to recognise dependant libraries" >&5
+echo "configure:1170: 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
@@ -1287,7 +1276,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -1350,13 +1339,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1354: checking for object suffix" >&5
+echo "configure:1343: 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:1360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -1376,7 +1365,7 @@ ac_objext=$ac_cv_objext
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1380: checking for executable suffix" >&5
+echo "configure:1369: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1386,10 +1375,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1419,7 +1408,7 @@ case $deplibs_check_method in
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:1423: checking for ${ac_tool_prefix}file" >&5
+echo "configure:1412: 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
@@ -1481,7 +1470,7 @@ fi
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:1485: checking for file" >&5
+echo "configure:1474: 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
@@ -1552,7 +1541,7 @@ esac
# 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:1556: checking for $ac_word" >&5
+echo "configure:1545: 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
@@ -1584,7 +1573,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1588: checking for $ac_word" >&5
+echo "configure:1577: 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
@@ -1619,7 +1608,7 @@ fi
# 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:1623: checking for $ac_word" >&5
+echo "configure:1612: 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
@@ -1651,7 +1640,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1655: checking for $ac_word" >&5
+echo "configure:1644: 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
@@ -1718,8 +1707,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 1722 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 1711 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:1712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -1731,6 +1733,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -1738,7 +1741,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:1742: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:1745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -1751,12 +1754,54 @@ ia64-*-hpux*)
rm -rf conftest*
;;
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:1761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:1760: checking whether the C compiler needs -belf" >&5
+echo "configure:1805: 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
@@ -1769,14 +1814,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 1773 "configure"
+#line 1818 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -1904,7 +1949,7 @@ exec 5>>./config.log
# 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:1908: checking for a BSD compatible install" >&5
+echo "configure:1953: 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
@@ -1957,7 +2002,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:1961: checking whether build environment is sane" >&5
+echo "configure:2006: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -2014,7 +2059,7 @@ test "$program_suffix" != NONE &&
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:2018: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:2063: 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
@@ -2053,7 +2098,7 @@ fi
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:2057: checking for working aclocal" >&5
+echo "configure:2102: 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.
@@ -2066,7 +2111,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:2070: checking for working autoconf" >&5
+echo "configure:2115: 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.
@@ -2079,7 +2124,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:2083: checking for working automake" >&5
+echo "configure:2128: 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.
@@ -2092,7 +2137,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:2096: checking for working autoheader" >&5
+echo "configure:2141: 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.
@@ -2105,7 +2150,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:2109: checking for working makeinfo" >&5
+echo "configure:2154: 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.
@@ -2122,7 +2167,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:2126: checking for executable suffix" >&5
+echo "configure:2171: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2132,10 +2177,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:2136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:2181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -2153,7 +2198,7 @@ echo "$ac_t""${ac_cv_exeext}" 1>&6
ac_exeext=$EXEEXT
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:2157: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:2202: 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"
@@ -2179,7 +2224,7 @@ fi
# 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:2183: checking for $ac_word" >&5
+echo "configure:2228: 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
@@ -2209,7 +2254,7 @@ if test -z "$CC"; then
# 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:2213: checking for $ac_word" >&5
+echo "configure:2258: 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
@@ -2260,7 +2305,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2264: checking for $ac_word" >&5
+echo "configure:2309: 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
@@ -2292,7 +2337,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2296: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2341: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -2303,12 +2348,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 2307 "configure"
+#line 2352 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -2334,12 +2379,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2338: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2383: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2343: checking whether we are using GNU C" >&5
+echo "configure:2388: 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
@@ -2348,7 +2393,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2397: \"$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
@@ -2367,7 +2412,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2371: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2416: 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
@@ -2408,6 +2453,7 @@ TARGETDIR="unknown"
case "$host" in
mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
+i*86-*-sco3.2v5*) TARGET=X86; TARGETDIR=x86;;
i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
i*86-*-freebsd*) TARGET=X86; TARGETDIR=x86;;
@@ -2590,7 +2636,7 @@ if test x$TARGET = xMIPS_LINUX; then
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2594: checking how to run the C preprocessor" >&5
+echo "configure:2640: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2605,13 +2651,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2609 "configure"
+#line 2655 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2615: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2661: \"$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
:
@@ -2622,13 +2668,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2626 "configure"
+#line 2672 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2678: \"$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
:
@@ -2639,13 +2685,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2643 "configure"
+#line 2689 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2649: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2695: \"$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
:
@@ -2670,12 +2716,12 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2674: checking for ANSI C header files" >&5
+echo "configure:2720: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2679 "configure"
+#line 2725 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2683,7 +2729,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2687: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2733: \"$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*
@@ -2700,7 +2746,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2704 "configure"
+#line 2750 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2718,7 +2764,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2722 "configure"
+#line 2768 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2739,7 +2785,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2743 "configure"
+#line 2789 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2750,7 +2796,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2776,12 +2822,12 @@ fi
for ac_func in memcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2780: checking for $ac_func" >&5
+echo "configure:2826: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2785 "configure"
+#line 2831 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2804,7 +2850,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2831,19 +2877,19 @@ done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2835: checking for working alloca.h" >&5
+echo "configure:2881: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2840 "configure"
+#line 2886 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:2847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -2864,12 +2910,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2868: checking for alloca" >&5
+echo "configure:2914: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2873 "configure"
+#line 2919 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -2897,7 +2943,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:2901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -2929,12 +2975,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2933: checking whether alloca needs Cray hooks" >&5
+echo "configure:2979: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2938 "configure"
+#line 2984 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -2959,12 +3005,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2963: checking for $ac_func" >&5
+echo "configure:3009: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2968 "configure"
+#line 3014 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2987,7 +3033,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3014,7 +3060,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3018: checking stack direction for C alloca" >&5
+echo "configure:3064: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3022,7 +3068,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 3026 "configure"
+#line 3072 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -3041,7 +3087,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:3045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -3064,13 +3110,13 @@ fi
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:3068: checking size of short" >&5
+echo "configure:3114: checking size of short" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3074 "configure"
+#line 3120 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3080,7 +3126,7 @@ int main() {
switch (0) case 0: case (sizeof (short) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_short=$ac_size
else
@@ -3103,13 +3149,13 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:3107: checking size of int" >&5
+echo "configure:3153: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3113 "configure"
+#line 3159 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3119,7 +3165,7 @@ int main() {
switch (0) case 0: case (sizeof (int) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_int=$ac_size
else
@@ -3142,13 +3188,13 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:3146: checking size of long" >&5
+echo "configure:3192: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3152 "configure"
+#line 3198 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3158,7 +3204,7 @@ int main() {
switch (0) case 0: case (sizeof (long) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3208: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_long=$ac_size
else
@@ -3181,13 +3227,13 @@ EOF
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:3185: checking size of long long" >&5
+echo "configure:3231: checking size of long long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3191 "configure"
+#line 3237 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3197,7 +3243,7 @@ int main() {
switch (0) case 0: case (sizeof (long long) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_long_long=$ac_size
else
@@ -3220,13 +3266,13 @@ EOF
echo $ac_n "checking size of float""... $ac_c" 1>&6
-echo "configure:3224: checking size of float" >&5
+echo "configure:3270: checking size of float" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3230 "configure"
+#line 3276 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3236,7 +3282,7 @@ int main() {
switch (0) case 0: case (sizeof (float) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3240: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_float=$ac_size
else
@@ -3259,13 +3305,13 @@ EOF
echo $ac_n "checking size of double""... $ac_c" 1>&6
-echo "configure:3263: checking size of double" >&5
+echo "configure:3309: checking size of double" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3269 "configure"
+#line 3315 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3275,7 +3321,7 @@ int main() {
switch (0) case 0: case (sizeof (double) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3279: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3325: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_double=$ac_size
else
@@ -3298,13 +3344,13 @@ EOF
echo $ac_n "checking size of long double""... $ac_c" 1>&6
-echo "configure:3302: checking size of long double" >&5
+echo "configure:3348: checking size of long double" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3308 "configure"
+#line 3354 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3314,7 +3360,7 @@ int main() {
switch (0) case 0: case (sizeof (long double) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_long_double=$ac_size
else
@@ -3338,13 +3384,13 @@ EOF
echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:3342: checking size of void *" >&5
+echo "configure:3388: checking size of void *" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 3348 "configure"
+#line 3394 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -3354,7 +3400,7 @@ int main() {
switch (0) case 0: case (sizeof (void *) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:3358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_void_p=$ac_size
else
@@ -3377,14 +3423,14 @@ EOF
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3381: checking whether byte ordering is bigendian" >&5
+echo "configure:3427: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
-#line 3388 "configure"
+#line 3434 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -3395,11 +3441,11 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:3399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
-#line 3403 "configure"
+#line 3449 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
@@ -3410,7 +3456,7 @@ int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:3414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
@@ -3430,7 +3476,7 @@ if test "$cross_compiling" = yes; then
echo $ac_n "cross-compiling... " 2>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3434 "configure"
+#line 3480 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
@@ -3443,7 +3489,7 @@ main () {
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:3447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian=no
else
@@ -3461,7 +3507,7 @@ fi
echo "$ac_t""$ac_cv_c_bigendian" 1>&6
if test $ac_cv_c_bigendian = unknown; then
echo $ac_n "checking to probe for byte ordering""... $ac_c" 1>&6
-echo "configure:3465: checking to probe for byte ordering" >&5
+echo "configure:3511: checking to probe for byte ordering" >&5
cat >conftest.c <<EOF
short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
@@ -3511,7 +3557,7 @@ fi
if test x$TARGET = xSPARC; then
echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6
-echo "configure:3515: checking assembler and linker support unaligned pc related relocs" >&5
+echo "configure:3561: checking assembler and linker support unaligned pc related relocs" >&5
if eval "test \"`echo '$''{'libffi_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3521,14 +3567,14 @@ else
CFLAGS="$CFLAGS -fpic"
LDFLAGS="$LDFLAGS -shared"
cat > conftest.$ac_ext <<EOF
-#line 3525 "configure"
+#line 3571 "configure"
#include "confdefs.h"
asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");
int main() {
; return 0; }
EOF
-if { (eval echo configure:3532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
libffi_cv_as_sparc_ua_pcrel=yes
else
@@ -3549,6 +3595,43 @@ echo "$ac_t""$libffi_cv_as_sparc_ua_pcrel" 1>&6
EOF
fi
+
+ echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
+echo "configure:3601: checking assembler .register pseudo-op support" >&5
+if eval "test \"`echo '$''{'libffi_cv_as_register_pseudo_op'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ libffi_cv_as_register_pseudo_op=unknown
+ # Check if we have .register
+ cat > conftest.$ac_ext <<EOF
+#line 3609 "configure"
+#include "confdefs.h"
+asm (".register %g2, #scratch");
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:3616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ libffi_cv_as_register_pseudo_op=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ libffi_cv_as_register_pseudo_op=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$libffi_cv_as_register_pseudo_op" 1>&6
+ if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_AS_REGISTER_PSEUDO_OP 1
+EOF
+
+ fi
fi
@@ -3604,15 +3687,17 @@ EOF
fi
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
fi
+toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
+
+
if test "${multilib}" = "yes"; then
multilib_arg="--enable-multilib"
@@ -3821,8 +3906,8 @@ s%@CPP@%$CPP%g
s%@ALLOCA@%$ALLOCA%g
s%@TARGET@%$TARGET%g
s%@TARGETDIR@%$TARGETDIR%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
+s%@toolexecdir@%$toolexecdir%g
+s%@toolexeclibdir@%$toolexeclibdir%g
CEOF
EOF
@@ -4042,6 +4127,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libffi_basedir=${libffi_basedir}
CC="${CC}"
DEFS="$DEFS"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
test ! -d include && mkdir include
test ! -f include/fficonfig.h && cp fficonfig.h include/fficonfig.h
if cmp -s fficonfig.h include/fficonfig.h 2>/dev/null; then
@@ -4057,7 +4143,7 @@ test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
if test -n "$CONFIG_FILES"; then
LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${libffi_basedir}/../config-ml.in
+ ac_file=Makefile . ${srcdir}/${libffi_basedir}../config-ml.in
fi
exit 0
diff --git a/libffi/configure.in b/libffi/configure.in
index 3dccbeb85b3..704b353d502 100644
--- a/libffi/configure.in
+++ b/libffi/configure.in
@@ -22,15 +22,15 @@ dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
if test "${srcdir}" = "."; then
if test "${with_target_subdir}" != "."; then
- libffi_basedir="${srcdir}/${with_multisrctop}.."
+ libffi_basedir="${with_multisrctop}../"
else
- libffi_basedir="${srcdir}/${with_multisrctop}"
+ libffi_basedir="${with_multisrctop}"
fi
else
- libffi_basedir="${srcdir}"
+ libffi_basedir=
fi
AC_SUBST(libffi_basedir)
-AC_CONFIG_AUX_DIR(${libffi_basedir}/..)
+AC_CONFIG_AUX_DIR(${libffi_basedir}..)
AC_CANONICAL_HOST
@@ -48,6 +48,7 @@ TARGETDIR="unknown"
case "$host" in
mips-sgi-irix5.* | mips-sgi-irix6.*) TARGET=MIPS; TARGETDIR=mips;;
i*86-*-linux*) TARGET=X86; TARGETDIR=x86;;
+i*86-*-sco3.2v5*) TARGET=X86; TARGETDIR=x86;;
i*86-*-solaris*) TARGET=X86; TARGETDIR=x86;;
i*86-*-beos*) TARGET=X86; TARGETDIR=x86;;
i*86-*-freebsd*) TARGET=X86; TARGETDIR=x86;;
@@ -133,6 +134,19 @@ if test x$TARGET = xSPARC; then
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
[Define if your assembler and linker support unaligned PC relative relocs.])
fi
+
+ AC_CACHE_CHECK([assembler .register pseudo-op support],
+ libffi_cv_as_register_pseudo_op, [
+ libffi_cv_as_register_pseudo_op=unknown
+ # Check if we have .register
+ AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
+ [libffi_cv_as_register_pseudo_op=yes],
+ [libffi_cv_as_register_pseudo_op=no])
+ ])
+ if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
+ AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
+ [Define if your assembler supports .register.])
+ fi
fi
AC_SUBST(TARGET)
@@ -164,7 +178,17 @@ AC_ARG_ENABLE(purify-safety,
AC_DEFINE(USING_PURIFY)
fi)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
+fi
+toolexeclibdir=$toolexeclibdir/`$CC -print-multi-os-directory`
+AC_SUBST(toolexecdir)
+AC_SUBST(toolexeclibdir)
if test "${multilib}" = "yes"; then
multilib_arg="--enable-multilib"
@@ -176,7 +200,7 @@ AC_OUTPUT(include/Makefile include/ffi.h Makefile,
[
if test -n "$CONFIG_FILES"; then
LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${libffi_basedir}/../config-ml.in
+ ac_file=Makefile . ${srcdir}/${libffi_basedir}../config-ml.in
fi
],
srcdir=${srcdir}
@@ -188,6 +212,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libffi_basedir=${libffi_basedir}
CC="${CC}"
DEFS="$DEFS"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
test ! -d include && mkdir include
test ! -f include/fficonfig.h && cp fficonfig.h include/fficonfig.h
if cmp -s fficonfig.h include/fficonfig.h 2>/dev/null; then
diff --git a/libffi/fficonfig.h.in b/libffi/fficonfig.h.in
index ac15aeddbd7..2b6f5817dd3 100644
--- a/libffi/fficonfig.h.in
+++ b/libffi/fficonfig.h.in
@@ -25,10 +25,6 @@
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
-/* Define if your processor stores words with the most significant
- byte first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
/* Define this if you want extra debugging */
#undef FFI_DEBUG
@@ -42,32 +38,42 @@
/* Define this is you do not want support for the raw API. */
#undef FFI_NO_RAW_API
-/* The number of bytes in a double. */
-#undef SIZEOF_DOUBLE
+/* Define if you have the memcpy function. */
+#undef HAVE_MEMCPY
-/* The number of bytes in a float. */
-#undef SIZEOF_FLOAT
+/* The number of bytes in type short */
+#undef SIZEOF_SHORT
-/* The number of bytes in a int. */
+/* The number of bytes in type int */
#undef SIZEOF_INT
-/* The number of bytes in a long. */
+/* The number of bytes in type long */
#undef SIZEOF_LONG
-/* The number of bytes in a long double. */
-#undef SIZEOF_LONG_DOUBLE
-
-/* The number of bytes in a long long. */
+/* The number of bytes in type long long */
#undef SIZEOF_LONG_LONG
-/* The number of bytes in a short. */
-#undef SIZEOF_SHORT
+/* The number of bytes in type float */
+#undef SIZEOF_FLOAT
-/* The number of bytes in a void *. */
+/* The number of bytes in type double */
+#undef SIZEOF_DOUBLE
+
+/* The number of bytes in type long double */
+#undef SIZEOF_LONG_DOUBLE
+
+/* The number of bytes in type void * */
#undef SIZEOF_VOID_P
-/* Define if you have the memcpy function. */
-#undef HAVE_MEMCPY
+/* whether byteorder is bigendian */
+#undef WORDS_BIGENDIAN
+
+/* 1234 = LIL_ENDIAN, 4321 = BIGENDIAN */
+#undef BYTEORDER
-/* Define if your assembler and linker support unaligned PC relative relocs. */
+/* Define if your assembler and linker support unaligned PC relative relocs. */
#undef HAVE_AS_SPARC_UA_PCREL
+
+/* Define if your assembler supports .register. */
+#undef HAVE_AS_REGISTER_PSEUDO_OP
+
diff --git a/libffi/include/Makefile.in b/libffi/include/Makefile.in
index 13aa274f405..b5d4e2de87b 100644
--- a/libffi/include/Makefile.in
+++ b/libffi/include/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -81,6 +81,8 @@ TARGET = @TARGET@
TARGETDIR = @TARGETDIR@
VERSION = @VERSION@
libffi_basedir = @libffi_basedir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
AUTOMAKE_OPTIONS = foreign
@@ -89,7 +91,7 @@ EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
hackdir = $(includedir)
hack_DATA = fficonfig.h ffi.h ffi_mips.h
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+mkinstalldirs = $(SHELL) $(top_srcdir)/${libffi_basedir}../mkinstalldirs
CONFIG_HEADER = ../fficonfig.h
CONFIG_CLEAN_FILES = ffi.h
DATA = $(hack_DATA)
diff --git a/libffi/include/ffi.h.in b/libffi/include/ffi.h.in
index c660ede75af..fe91ecd5e2e 100644
--- a/libffi/include/ffi.h.in
+++ b/libffi/include/ffi.h.in
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------*-C-*-
- libffi @VERSION@ - Copyright (c) 1996-2002 Cygnus Solutions
+ libffi @VERSION@ - Copyright (c) 1996-2003 Cygnus Solutions
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -170,6 +170,13 @@ extern "C" {
#endif
#endif
+#ifdef X86_64
+#if defined (__i386__)
+#undef X86_64
+#define X86
+#endif
+#endif
+
#ifndef LIBFFI_ASM
/* ---- Generic type definitions ----------------------------------------- */
@@ -443,6 +450,18 @@ struct ffi_ia64_trampoline_struct {
#define FFI_TRAMPOLINE_SIZE 24 /* see struct below */
#define FFI_NATIVE_RAW_API 0
+#elif defined(SPARC64)
+
+#define FFI_CLOSURES 1
+#define FFI_TRAMPOLINE_SIZE 24
+#define FFI_NATIVE_RAW_API 0
+
+#elif defined(SPARC)
+
+#define FFI_CLOSURES 1
+#define FFI_TRAMPOLINE_SIZE 16
+#define FFI_NATIVE_RAW_API 0
+
#elif defined(S390)
#define FFI_CLOSURES 1
@@ -459,6 +478,12 @@ struct ffi_ia64_trampoline_struct {
#define FFI_TRAMPOLINE_SIZE 16
#define FFI_NATIVE_RAW_API 0
+#elif defined(__x86_64__)
+
+#define FFI_CLOSURES 1
+#define FFI_TRAMPOLINE_SIZE 24
+#define FFI_NATIVE_RAW_API 0
+
#else
#define FFI_CLOSURES 0
diff --git a/libffi/src/ffitest.c b/libffi/src/ffitest.c
index da528317bb3..a05b746865d 100644
--- a/libffi/src/ffitest.c
+++ b/libffi/src/ffitest.c
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- ffitest.c - Copyright (c) 1996, 1997, 1998, 2002 Red Hat, Inc.
+ ffitest.c - Copyright (c) 1996, 1997, 1998, 2002, 2003 Red Hat, Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -288,10 +288,121 @@ static test_structure_9 struct9 (test_structure_9 ts)
static void
closure_test_fn(ffi_cif* cif,void* resp,void** args, void* userdata)
{
- *(ffi_arg*)resp = *(int*)args[0] + (int)(*(float*)args[1]) + (int)(long)userdata;
+ *(ffi_arg*)resp =
+ (int)*(unsigned long long *)args[0] + (int)(*(int *)args[1]) +
+ (int)(*(unsigned long long *)args[2]) + (int)*(int *)args[3] +
+ (int)(*(signed short *)args[4]) +
+ (int)(*(unsigned long long *)args[5]) +
+ (int)*(int *)args[6] + (int)(*(int *)args[7]) +
+ (int)(*(double *)args[8]) + (int)*(int *)args[9] +
+ (int)(*(int *)args[10]) + (int)(*(float *)args[11]) +
+ (int)*(int *)args[12] + (int)(*(int *)args[13]) +
+ (int)(*(int *)args[14]) + *(int *)args[15] + (int)(long)userdata;
+
+ printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n",
+ (int)*(unsigned long long *)args[0], (int)(*(int *)args[1]),
+ (int)(*(unsigned long long *)args[2]),
+ (int)*(int *)args[3], (int)(*(signed short *)args[4]),
+ (int)(*(unsigned long long *)args[5]),
+ (int)*(int *)args[6], (int)(*(int *)args[7]),
+ (int)(*(double *)args[8]), (int)*(int *)args[9],
+ (int)(*(int *)args[10]), (int)(*(float *)args[11]),
+ (int)*(int *)args[12], (int)(*(int *)args[13]),
+ (int)(*(int *)args[14]),*(int *)args[15],
+ (int)(long)userdata, *(int*)resp);
}
-typedef int (*closure_test_type)(int, float);
+typedef int (*closure_test_type)(unsigned long long, int, unsigned long long,
+ int, signed short, unsigned long long, int,
+ int, double, int, int, float, int, int,
+ int, int);
+
+static void closure_test_fn1(ffi_cif* cif,void* resp,void** args,
+ void* userdata)
+ {
+ *(ffi_arg*)resp =
+ (int)*(float *)args[0] +(int)(*(float *)args[1]) +
+ (int)(*(float *)args[2]) + (int)*(float *)args[3] +
+ (int)(*(signed short *)args[4]) + (int)(*(float *)args[5]) +
+ (int)*(float *)args[6] + (int)(*(int *)args[7]) +
+ (int)(*(double*)args[8]) + (int)*(int *)args[9] +
+ (int)(*(int *)args[10]) + (int)(*(float *)args[11]) +
+ (int)*(int *)args[12] + (int)(*(int *)args[13]) +
+ (int)(*(int *)args[14]) + *(int *)args[15] + (int)(long)userdata;
+
+ printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n",
+ (int)*(float *)args[0], (int)(*(float *)args[1]),
+ (int)(*(float *)args[2]), (int)*(float *)args[3],
+ (int)(*(signed short *)args[4]), (int)(*(float *)args[5]),
+ (int)*(float *)args[6], (int)(*(int *)args[7]),
+ (int)(*(double *)args[8]), (int)*(int *)args[9],
+ (int)(*(int *)args[10]), (int)(*(float *)args[11]),
+ (int)*(int *)args[12], (int)(*(int *)args[13]),
+ (int)(*(int *)args[14]), *(int *)args[15],
+ (int)(long)userdata, *(int*)resp);
+}
+
+typedef int (*closure_test_type1)(float, float, float, float, signed short,
+ float, float, int, double, int, int, float,
+ int, int, int, int);
+
+static void closure_test_fn2(ffi_cif* cif,void* resp,void** args,
+ void* userdata)
+ {
+ *(ffi_arg*)resp =
+ (int)*(double *)args[0] +(int)(*(double *)args[1]) +
+ (int)(*(double *)args[2]) + (int)*(double *)args[3] +
+ (int)(*(signed short *)args[4]) + (int)(*(double *)args[5]) +
+ (int)*(double *)args[6] + (int)(*(int *)args[7]) +
+ (int)(*(double *)args[8]) + (int)*(int *)args[9] +
+ (int)(*(int *)args[10]) + (int)(*(float *)args[11]) +
+ (int)*(int *)args[12] + (int)(*(float *)args[13]) +
+ (int)(*(int *)args[14]) + *(int *)args[15] + (int)(long)userdata;
+
+ printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n",
+ (int)*(double *)args[0], (int)(*(double *)args[1]),
+ (int)(*(double *)args[2]), (int)*(double *)args[3],
+ (int)(*(signed short *)args[4]), (int)(*(double *)args[5]),
+ (int)*(double *)args[6], (int)(*(int *)args[7]),
+ (int)(*(double*)args[8]), (int)*(int *)args[9],
+ (int)(*(int *)args[10]), (int)(*(float *)args[11]),
+ (int)*(int *)args[12], (int)(*(float *)args[13]),
+ (int)(*(int *)args[14]), *(int *)args[15], (int)(long)userdata,
+ *(int*)resp);
+ }
+
+typedef int (*closure_test_type2)(double, double, double, double, signed short,
+ double, double, int, double, int, int, float,
+ int, float, int, int);
+
+static void closure_test_fn3(ffi_cif* cif,void* resp,void** args,
+ void* userdata)
+ {
+ *(ffi_arg*)resp =
+ (int)*(float *)args[0] +(int)(*(float *)args[1]) +
+ (int)(*(float *)args[2]) + (int)*(float *)args[3] +
+ (int)(*(float *)args[4]) + (int)(*(float *)args[5]) +
+ (int)*(float *)args[6] + (int)(*(float *)args[7]) +
+ (int)(*(double *)args[8]) + (int)*(int *)args[9] +
+ (int)(*(float *)args[10]) + (int)(*(float *)args[11]) +
+ (int)*(int *)args[12] + (int)(*(float *)args[13]) +
+ (int)(*(float *)args[14]) + *(int *)args[15] + (int)(long)userdata;
+
+ printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n",
+ (int)*(float *)args[0], (int)(*(float *)args[1]),
+ (int)(*(float *)args[2]), (int)*(float *)args[3],
+ (int)(*(float *)args[4]), (int)(*(float *)args[5]),
+ (int)*(float *)args[6], (int)(*(float *)args[7]),
+ (int)(*(double *)args[8]), (int)*(int *)args[9],
+ (int)(*(float *)args[10]), (int)(*(float *)args[11]),
+ (int)*(int *)args[12], (int)(*(float *)args[13]),
+ (int)(*(float *)args[14]), *(int *)args[15], (int)(long)userdata,
+ *(int*)resp);
+ }
+
+typedef int (*closure_test_type3)(float, float, float, float, float, float,
+ float, float, double, int, float, float, int,
+ float, float, int);
#endif
int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
@@ -315,6 +426,14 @@ int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
ffi_arg rint;
long long rlonglong;
+# if FFI_CLOSURES
+ /* The closure must not be an automatic variable on
+ platforms (Solaris) that forbid stack execution by default. */
+ static ffi_closure cl;
+#endif
+
+ ffi_type * cl_arg_types[17];
+
ffi_type ts1_type;
ffi_type ts2_type;
ffi_type ts3_type;
@@ -1044,22 +1163,137 @@ int main(/*@unused@*/ int argc, /*@unused@*/ char *argv[])
# if FFI_CLOSURES
/* A simple closure test */
{
- ffi_closure cl;
- ffi_type * cl_arg_types[3];
+ (void) puts("\nEnter FFI_CLOSURES\n");
+
+ cl_arg_types[0] = &ffi_type_uint64;
+ cl_arg_types[1] = &ffi_type_uint;
+ cl_arg_types[2] = &ffi_type_uint64;
+ cl_arg_types[3] = &ffi_type_uint;
+ cl_arg_types[4] = &ffi_type_sshort;
+ cl_arg_types[5] = &ffi_type_uint64;
+ cl_arg_types[6] = &ffi_type_uint;
+ cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[8] = &ffi_type_double;
+ cl_arg_types[9] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[11] = &ffi_type_float;
+ cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[13] = &ffi_type_uint;
+ cl_arg_types[14] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[16] = NULL;
+
+ /* Initialize the cif */
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16,
+ &ffi_type_sint, cl_arg_types) == FFI_OK);
+
+ CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn,
+ (void *) 3 /* userdata */) == FFI_OK);
+
+ CHECK((*((closure_test_type)(&cl)))
+ (1LL, 2, 3LL, 4, 127, 429LL, 7, 8, 9.5, 10, 11, 12, 13,
+ 19, 21, 1) == 680);
+ }
+
+ {
- cl_arg_types[0] = &ffi_type_sint;
+ cl_arg_types[0] = &ffi_type_float;
cl_arg_types[1] = &ffi_type_float;
- cl_arg_types[2] = NULL;
+ cl_arg_types[2] = &ffi_type_float;
+ cl_arg_types[3] = &ffi_type_float;
+ cl_arg_types[4] = &ffi_type_sshort;
+ cl_arg_types[5] = &ffi_type_float;
+ cl_arg_types[6] = &ffi_type_float;
+ cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[8] = &ffi_type_double;
+ cl_arg_types[9] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[11] = &ffi_type_float;
+ cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[13] = &ffi_type_uint;
+ cl_arg_types[14] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[16] = NULL;
/* Initialize the cif */
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
- &ffi_type_sint, cl_arg_types) == FFI_OK);
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16,
+ &ffi_type_sint, cl_arg_types) == FFI_OK);
- CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn,
- (void *) 3 /* userdata */)
- == FFI_OK);
- CHECK((*((closure_test_type)(&cl)))(1, 2.0) == 6);
+ CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn1,
+ (void *) 3 /* userdata */) == FFI_OK);
+
+ CHECK((*((closure_test_type1)(&cl)))
+ (1.1, 2.2, 3.3, 4.4, 127, 5.5, 6.6, 8, 9, 10, 11, 12.0, 13,
+ 19, 21, 1) == 255);
+ }
+
+ {
+
+ cl_arg_types[0] = &ffi_type_double;
+ cl_arg_types[1] = &ffi_type_double;
+ cl_arg_types[2] = &ffi_type_double;
+ cl_arg_types[3] = &ffi_type_double;
+ cl_arg_types[4] = &ffi_type_sshort;
+ cl_arg_types[5] = &ffi_type_double;
+ cl_arg_types[6] = &ffi_type_double;
+ cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[8] = &ffi_type_double;
+ cl_arg_types[9] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[11] = &ffi_type_float;
+ cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[13] = &ffi_type_float;
+ cl_arg_types[14] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[16] = NULL;
+
+ /* Initialize the cif */
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16,
+ &ffi_type_sint, cl_arg_types) == FFI_OK);
+
+ CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn2,
+ (void *) 3 /* userdata */) == FFI_OK);
+
+ CHECK((*((closure_test_type2)(&cl)))
+ (1, 2, 3, 4, 127, 5, 6, 8, 9, 10, 11, 12.0, 13,
+ 19.0, 21, 1) == 255);
+
+ }
+
+ {
+
+ cl_arg_types[0] = &ffi_type_float;
+ cl_arg_types[1] = &ffi_type_float;
+ cl_arg_types[2] = &ffi_type_float;
+ cl_arg_types[3] = &ffi_type_float;
+ cl_arg_types[4] = &ffi_type_float;
+ cl_arg_types[5] = &ffi_type_float;
+ cl_arg_types[6] = &ffi_type_float;
+ cl_arg_types[7] = &ffi_type_float;
+ cl_arg_types[8] = &ffi_type_double;
+ cl_arg_types[9] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_float;
+ cl_arg_types[11] = &ffi_type_float;
+ cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[13] = &ffi_type_float;
+ cl_arg_types[14] = &ffi_type_float;
+ cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[16] = NULL;
+
+ /* Initialize the cif */
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16,
+ &ffi_type_sint, cl_arg_types) == FFI_OK);
+
+ CHECK(ffi_prep_closure(&cl, &cif, closure_test_fn3,
+ (void *) 3 /* userdata */) == FFI_OK);
+
+ CHECK((*((closure_test_type3)(&cl)))
+ (1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9, 10, 11.11, 12.0, 13,
+ 19.19, 21.21, 1) == 135);
}
+
+ (void) puts("\nFinished FFI_CLOSURES\n");
+
# endif
/* If we arrived here, all is good */
diff --git a/libffi/src/powerpc/aix_closure.S b/libffi/src/powerpc/aix_closure.S
index 7fa96f1fc95..d0d50ca56bd 100644
--- a/libffi/src/powerpc/aix_closure.S
+++ b/libffi/src/powerpc/aix_closure.S
@@ -1,6 +1,6 @@
/* -----------------------------------------------------------------------
- aix_closures.S - Copyright (c) 2002 Free Software Foundation, Inc.
- based on darwin_closures.S
+ aix_closure.S - Copyright (c) 2002 2003 Free Software Foundation, Inc.
+ based on darwin_closure.S
PowerPC Assembly glue.
@@ -106,24 +106,25 @@ ffi_closure_ASM:
/* 24 Bytes (Linkage Area) */
/* 32 Bytes (params) */
/* 104 Bytes (13*8 from FPR) */
- /* 4 Bytes (result)
- /* 164 Bytes */
+ /* 8 Bytes (result)
+ /* 168 Bytes */
- stwu r1,-164(r1) /* skip over caller save area */
+ stwu r1,-176(r1) /* skip over caller save area
+ keep stack aligned to 16 */
/* we want to build up an area for the parameters passed */
/* in registers (both floating point and integer) */
- /* we store gpr 3 to gpr 10 (aligned to 4) */
- /* in the parents outgoing area */
- stw r3, 188(r1)
- stw r4, 192(r1)
- stw r5, 196(r1)
- stw r6, 200(r1)
- stw r7, 204(r1)
- stw r8, 208(r1)
- stw r9, 212(r1)
- stw r10, 216(r1)
+ /* we store gpr 3 to gpr 10 (aligned to 4)
+ in the parents outgoing area */
+ stw r3, 200(r1)
+ stw r4, 204(r1)
+ stw r5, 208(r1)
+ stw r6, 212(r1)
+ stw r7, 216(r1)
+ stw r8, 220(r1)
+ stw r9, 224(r1)
+ stw r10, 228(r1)
/* next save fpr 1 to fpr 13 (aligned to 8) */
stfd f1, 56(r1)
@@ -148,14 +149,14 @@ ffi_closure_ASM:
addi r4,r1,160
/* now load up the pointer to the saved gpr registers */
- addi r5,r1,188
+ addi r5,r1,200
/* now load up the pointer to the saved fpr registers */
addi r6,r1,56
/* now load up the pointer to the outgoing parameter */
/* stack in the previous frame */
- addi r7,r1,220
+ addi r7,r1,232
/* make the call */
bl .ffi_closure_helper_DARWIN
@@ -243,7 +244,7 @@ L..58:
/* case void / done */
L..44:
- addi r1,r1,164 /* restore stack pointer */
+ addi r1,r1,176 /* restore stack pointer */
lwz r0,8(r1) /* get return address */
mtlr r0 /* reset link register */
blr
diff --git a/libffi/src/powerpc/darwin.S b/libffi/src/powerpc/darwin.S
index 9da89bde287..108d2acff72 100644
--- a/libffi/src/powerpc/darwin.S
+++ b/libffi/src/powerpc/darwin.S
@@ -3,8 +3,6 @@
PowerPC Assembly glue.
- $Id: darwin.S,v 1.1 2001/10/09 05:32:15 bryce Exp $
-
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
@@ -39,30 +37,34 @@
.text
.align 2
_ffi_call_DARWIN:
- mr r12,r8 // We only need r12 until the call, so it doesn't have to be saved...
+LFB0:
+ mr r12,r8 /* We only need r12 until the call,
+ so it doesn't have to be saved... */
+LFB1:
/* Save the old stack pointer as AP. */
mr r8,r1
-
+LCFI0:
/* Allocate the stack space we need. */
stwux r1,r1,r4
/* Save registers we use. */
mflr r9
- stw r28,-16(r8)
+ stw r28,-16(r8)
stw r29,-12(r8)
stw r30, -8(r8)
stw r31, -4(r8)
-
- stw r9, 8(r8)
+
+ stw r9, 8(r8)
stw r2, 20(r1)
+LCFI1:
/* Save arguments over call... */
- mr r31,r5 /* flags, */
- mr r30,r6 /* rvalue, */
- mr r29,r7 /* function address, */
- mr r28,r8 /* our AP. */
-
+ mr r31,r5 /* flags, */
+ mr r30,r6 /* rvalue, */
+ mr r29,r7 /* function address, */
+ mr r28,r8 /* our AP. */
+LCFI2:
/* Call ffi_prep_args. */
mr r4,r1
li r9,0
@@ -145,7 +147,8 @@ L(fp_return_value):
L(float_return_value):
stfs f1,0(r30)
b L(done_return_value)
-//END(_ffi_call_DARWIN)
+LFE1:
+/* END(_ffi_call_DARWIN) */
/* Provide a null definition of _ffi_call_AIX. */
.text
@@ -155,5 +158,61 @@ L(float_return_value):
.align 2
_ffi_call_AIX:
blr
-//END(_ffi_call_AIX)
-
+/* END(_ffi_call_AIX) */
+
+.data
+.section __TEXT,__eh_frame
+Lframe1:
+ .set L$set$0,LECIE1-LSCIE1
+ .long L$set$0 ; Length of Common Information Entry
+LSCIE1:
+ .long 0x0 ; CIE Identifier Tag
+ .byte 0x1 ; CIE Version
+ .ascii "zR\0" ; CIE Augmentation
+ .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor
+ .byte 0x7c ; sleb128 -4; CIE Data Alignment Factor
+ .byte 0x41 ; CIE RA Column
+ .byte 0x1 ; uleb128 0x1; Augmentation size
+ .byte 0x10 ; FDE Encoding (pcrel)
+ .byte 0xc ; DW_CFA_def_cfa
+ .byte 0x1 ; uleb128 0x1
+ .byte 0x0 ; uleb128 0x0
+ .align 2
+LECIE1:
+LSFDE1:
+ .set L$set$1,LEFDE1-LASFDE1
+ .long L$set$1 ; FDE Length
+LASFDE1:
+ .set L$set$2,LASFDE1-Lframe1
+ .long L$set$2 ; FDE CIE offset
+ .long LFB0-. ; FDE initial location
+ .set L$set$3,LFE1-LFB0
+ .long L$set$3 ; FDE address range
+ .byte 0x0 ; uleb128 0x0; Augmentation size
+ .byte 0x4 ; DW_CFA_advance_loc4
+ .set L$set$4,LCFI0-LFB1
+ .long L$set$4
+ .byte 0xd ; DW_CFA_def_cfa_register
+ .byte 0x08 ; uleb128 0x08
+ .byte 0x4 ; DW_CFA_advance_loc4
+ .set L$set$5,LCFI1-LCFI0
+ .long L$set$5
+ .byte 0x11 ; DW_CFA_offset_extended_sf
+ .byte 0x41 ; uleb128 0x41
+ .byte 0x7e ; sleb128 -2
+ .byte 0x9f ; DW_CFA_offset, column 0x1f
+ .byte 0x1 ; uleb128 0x1
+ .byte 0x9e ; DW_CFA_offset, column 0x1e
+ .byte 0x2 ; uleb128 0x2
+ .byte 0x9d ; DW_CFA_offset, column 0x1d
+ .byte 0x3 ; uleb128 0x3
+ .byte 0x9c ; DW_CFA_offset, column 0x1c
+ .byte 0x4 ; uleb128 0x4
+ .byte 0x4 ; DW_CFA_advance_loc4
+ .set L$set$6,LCFI2-LCFI1
+ .long L$set$6
+ .byte 0xd ; DW_CFA_def_cfa_register
+ .byte 0x1c ; uleb128 0x1c
+ .align 2
+LEFDE1:
+
diff --git a/libffi/src/powerpc/darwin_closure.S b/libffi/src/powerpc/darwin_closure.S
index 9e54d2231b9..9ae17d8cce8 100644
--- a/libffi/src/powerpc/darwin_closure.S
+++ b/libffi/src/powerpc/darwin_closure.S
@@ -1,6 +1,6 @@
/* -----------------------------------------------------------------------
- darwin_closures.S - Copyright (c) 2002 Free Software Foundation, Inc.
- based on ppc_closures.S
+ darwin_closure.S - Copyright (c) 2002 2003 Free Software Foundation,
+ Inc. based on ppc_closure.S
PowerPC Assembly glue.
@@ -37,31 +37,32 @@
.text
.align 2
_ffi_closure_ASM:
+LFB1:
+ mflr r0 /* extract return address */
+ stw r0, 8(r1) /* save the return address */
+LCFI0:
+ /* 24 Bytes (Linkage Area)
+ 32 Bytes (outgoing parameter area, always reserved)
+ 104 Bytes (13*8 from FPR)
+ 8 Bytes (result)
+ 168 Bytes */
- mflr r0 /* extract return address */
- stw r0, 8(r1) /* save the return address */
+ stwu r1,-176(r1) /* skip over caller save area
+ keep stack aligned to 16 */
+LCFI1:
+ /* we want to build up an area for the parameters passed
+ in registers (both floating point and integer) */
- /* 24 Bytes (Linkage Area) */
- /* 32 Bytes (outgoing parameter area, always reserved) */
- /* 104 Bytes (13*8 from FPR) */
- /* 4 Bytes (result)
- /* 164 Bytes */
-
- stwu r1,-164(r1) /* skip over caller save area */
-
-/* we want to build up an area for the parameters passed */
-/* in registers (both floating point and integer) */
-
- /* we store gpr 3 to gpr 10 (aligned to 4) */
- /* in the parents outgoing area */
- stw r3, 188(r1)
- stw r4, 192(r1)
- stw r5, 196(r1)
- stw r6, 200(r1)
- stw r7, 204(r1)
- stw r8, 208(r1)
- stw r9, 212(r1)
- stw r10, 216(r1)
+ /* we store gpr 3 to gpr 10 (aligned to 4)
+ in the parents outgoing area */
+ stw r3, 200(r1)
+ stw r4, 204(r1)
+ stw r5, 208(r1)
+ stw r6, 212(r1)
+ stw r7, 216(r1)
+ stw r8, 220(r1)
+ stw r9, 224(r1)
+ stw r10, 228(r1)
/* we save fpr 1 to fpr 13 (aligned to 8) */
stfd f1, 56(r1)
@@ -85,15 +86,15 @@ _ffi_closure_ASM:
/* now load up the pointer to the result storage */
addi r4,r1,160
- /* now load up the pointer to the saved gpr registers */
- addi r5,r1,188
+ /* now load up the pointer to the saved gpr registers */
+ addi r5,r1,200
/* now load up the pointer to the saved fpr registers */
addi r6,r1,56
- /* now load up the pointer to the outgoing parameter */
- /* stack in the previous frame */
- addi r7,r1,220
+ /* now load up the pointer to the outgoing parameter
+ stack in the previous frame */
+ addi r7,r1,232
/* make the call */
bl L(_ffi_closure_helper_DARWIN)
@@ -111,7 +112,9 @@ _ffi_closure_ASM:
lwzx r3,r4,r3 /* get the contents of that table value */
add r3,r3,r4 /* add contents of table to table address */
mtctr r3
- bctr /* jump to it */
+ bctr /* jump to it */
+LFE1:
+ .align 2
.L60:
.long .L44-.L60 /* FFI_TYPE_VOID */
@@ -180,10 +183,54 @@ _ffi_closure_ASM:
/* case void / done */
.L44:
- addi r1,r1,164 /* restore stack pointer */
- lwz r0,8(r1) /* get return address */
- mtlr r0 /* reset link register */
+ addi r1,r1,176 /* restore stack pointer */
+ lwz r0,8(r1) /* get return address */
+ mtlr r0 /* reset link register */
blr
-/* END(ffi_closure_ASM) */
+/* END(ffi_closure_ASM) */
+
+.data
+.section __TEXT,__eh_frame
+Lframe1:
+ .set L$set$0,LECIE1-LSCIE1
+ .long L$set$0 ; Length of Common Information Entry
+LSCIE1:
+ .long 0x0 ; CIE Identifier Tag
+ .byte 0x1 ; CIE Version
+ .ascii "zR\0" ; CIE Augmentation
+ .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor
+ .byte 0x7c ; sleb128 -4; CIE Data Alignment Factor
+ .byte 0x41 ; CIE RA Column
+ .byte 0x1 ; uleb128 0x1; Augmentation size
+ .byte 0x10 ; FDE Encoding (pcrel)
+ .byte 0xc ; DW_CFA_def_cfa
+ .byte 0x1 ; uleb128 0x1
+ .byte 0x0 ; uleb128 0x0
+ .align 2
+LECIE1:
+LSFDE1:
+ .set L$set$1,LEFDE1-LASFDE1
+ .long L$set$1 ; FDE Length
+
+LASFDE1:
+ .set L$set$2,LASFDE1-Lframe1
+ .long L$set$2 ; FDE CIE offset
+ .long LFB1-. ; FDE initial location
+ .set L$set$3,LFE1-LFB1
+ .long L$set$3 ; FDE address range
+ .byte 0x0 ; uleb128 0x0; Augmentation size
+ .byte 0x4 ; DW_CFA_advance_loc4
+ .set L$set$3,LCFI1-LCFI0
+ .long L$set$3
+ .byte 0xe ; DW_CFA_def_cfa_offset
+ .byte 176,1 ; uleb128 176
+ .byte 0x4 ; DW_CFA_advance_loc4
+ .set L$set$4,LCFI0-LFB1
+ .long L$set$4
+ .byte 0x11 ; DW_CFA_offset_extended_sf
+ .byte 0x41 ; uleb128 0x41
+ .byte 0x7e ; sleb128 -2
+ .align 2
+LEFDE1:
diff --git a/libffi/src/powerpc/ffi.c b/libffi/src/powerpc/ffi.c
index c93aec0ed87..ea1a14e8f65 100644
--- a/libffi/src/powerpc/ffi.c
+++ b/libffi/src/powerpc/ffi.c
@@ -137,11 +137,20 @@ void ffi_prep_args(extended_cif *ecif, unsigned *const stack)
switch ((*ptr)->type)
{
case FFI_TYPE_FLOAT:
- case FFI_TYPE_DOUBLE:
- if ((*ptr)->type == FFI_TYPE_FLOAT)
- double_tmp = *(float *)*p_argv;
+ double_tmp = *(float *)*p_argv;
+ if (fparg_count >= NUM_FPR_ARG_REGISTERS)
+ {
+ *(float *)next_arg = (float)double_tmp;
+ next_arg += 1;
+ }
else
- double_tmp = *(double *)*p_argv;
+ *fpr_base++ = double_tmp;
+ fparg_count++;
+ FFI_ASSERT(flags & FLAG_FP_ARGUMENTS);
+ break;
+
+ case FFI_TYPE_DOUBLE:
+ double_tmp = *(double *)*p_argv;
if (fparg_count >= NUM_FPR_ARG_REGISTERS)
{
@@ -320,6 +329,10 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
switch ((*ptr)->type)
{
case FFI_TYPE_FLOAT:
+ fparg_count++;
+ /* floating singles are not 8-aligned on stack */
+ break;
+
case FFI_TYPE_DOUBLE:
fparg_count++;
/* If this FP arg is going on the stack, it must be
@@ -612,20 +625,15 @@ ffi_closure_helper_SYSV (ffi_closure* closure, void * rvalue,
case FFI_TYPE_FLOAT:
/* unfortunately float values are stored as doubles
* in the ffi_closure_SYSV code (since we don't check
- * the type in that routine). This is also true
- * of floats passed on the outgoing parameter stack.
- * Also, on the outgoing stack all values are aligned
- * to 8
- *
- * Don't you just love the simplicity of this ABI!
+ * the type in that routine).
*/
/* there are 8 64bit floating point registers */
if (nf < 8) {
- temp = *(double*)pfr;
+ temp = *(double*)pfr;
*(float*)pfr = (float)temp;
- avalue[i] = pfr;
+ avalue[i] = pfr;
nf++;
pfr+=2;
} else {
@@ -634,12 +642,9 @@ ffi_closure_helper_SYSV (ffi_closure* closure, void * rvalue,
* parameter stack. This is probably a really
* naughty thing to do but...
*/
- if (((long)pst) & 4) pst++;
- temp = *(double*)pst;
- *(float*)pst = (float)temp;
avalue[i] = pst;
nf++;
- pst+=2;
+ pst+=1;
}
break;
diff --git a/libffi/src/powerpc/ffi_darwin.c b/libffi/src/powerpc/ffi_darwin.c
index d9182ab741d..3f705275c5f 100644
--- a/libffi/src/powerpc/ffi_darwin.c
+++ b/libffi/src/powerpc/ffi_darwin.c
@@ -6,8 +6,6 @@
Darwin ABI support (c) 2001 John Hornkvist
AIX ABI support (c) 2002 Free Software Foundation, Inc.
- $Id: ffi_darwin.c,v 1.4 2002/03/07 18:24:42 dje Exp $
-
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
``Software''), to deal in the Software without restriction, including
@@ -412,38 +410,40 @@ typedef struct aix_fd_struct {
+---------------------------------------+ 20
| saved TOC pointer 4 |
+---------------------------------------+ 24
- | always reserved 8*4=32 (revious GPRs)|
+ | always reserved 8*4=32 (previous GPRs)|
| according to the linkage convention |
- | from AIX |
+ | from AIX |
+---------------------------------------+ 56
- | our FPR area 13*8=104 |
- | f1 |
- | . |
- | f13 |
+ | our FPR area 13*8=104 |
+ | f1 |
+ | . |
+ | f13 |
+---------------------------------------+ 160
- | result area 4 |
-SP current --> +---------------------------------------+ 164 <- parent frame
- | back chain to caller 4 |
+ | result area 8 |
+---------------------------------------+ 168
+ | alignement to the next multiple of 16 |
+SP current --> +---------------------------------------+ 176 <- parent frame
+ | back chain to caller 4 |
+ +---------------------------------------+ 180
| saved CR 4 |
- +---------------------------------------+ 172
+ +---------------------------------------+ 184
| saved LR 4 |
- +---------------------------------------+ 176
+ +---------------------------------------+ 188
| reserved for compilers 4 |
- +---------------------------------------+ 180
+ +---------------------------------------+ 192
| reserved for binders 4 |
- +---------------------------------------+ 184
+ +---------------------------------------+ 196
| saved TOC pointer 4 |
- +---------------------------------------+ 188
+ +---------------------------------------+ 200
| always reserved 8*4=32 we store our |
- | GPRs here |
- | r3 |
- | . |
- | r10 |
- +---------------------------------------+ 220
- | PST area, overflow part |
+ | GPRs here |
+ | r3 |
+ | . |
+ | r10 |
+ +---------------------------------------+ 232
+ | PST area, overflow part |
+---------------------------------------+ xxx
- | ???? |
+ | ???? |
+---------------------------------------+ xxx
*/
diff --git a/libffi/src/powerpc/ppc_closure.S b/libffi/src/powerpc/ppc_closure.S
index a9ea9c7ee52..e402fb5cda3 100644
--- a/libffi/src/powerpc/ppc_closure.S
+++ b/libffi/src/powerpc/ppc_closure.S
@@ -1,14 +1,13 @@
#define LIBFFI_ASM
#include <powerpc/asm.h>
-.globl ffi_closure_helper_SYSV
+ .file "ppc_closure.S"
ENTRY(ffi_closure_SYSV)
.LFB1:
stwu %r1,-144(%r1)
.LCFI0:
mflr %r0
- stw %r31,140(%r1)
.LCFI1:
stw %r0,148(%r1)
@@ -63,87 +62,136 @@ ENTRY(ffi_closure_SYSV)
# look up the proper starting point in table
# by using return type as offset
addi %r5,%r1,112 # get pointer to results area
- addis %r4,0,.L60@ha # get address of jump table
- addi %r4,%r4,.L60@l
- slwi %r3,%r3,2 # now multiply return type by 4
- lwzx %r3,%r4,%r3 # get the contents of that table value
- add %r3,%r3,%r4 # add contents of table to table address
+ bl .Lget_ret_type0_addr # get pointer to .Lret_type0 into LR
+ mflr %r4 # move to r4
+ slwi %r3,%r3,4 # now multiply return type by 16
+ add %r3,%r3,%r4 # add contents of table to table address
mtctr %r3
bctr # jump to it
.LFE1:
- .align 2
-.L60:
- .long .L44-.L60 # FFI_TYPE_VOID
- .long .L50-.L60 # FFI_TYPE_INT
- .long .L47-.L60 # FFI_TYPE_FLOAT
- .long .L46-.L60 # FFI_TYPE_DOUBLE
- .long .L46-.L60 # FFI_TYPE_LONGDOUBLE
- .long .L56-.L60 # FFI_TYPE_UINT8
- .long .L55-.L60 # FFI_TYPE_SINT8
- .long .L58-.L60 # FFI_TYPE_UINT16
- .long .L57-.L60 # FFI_TYPE_SINT16
- .long .L50-.L60 # FFI_TYPE_UINT32
- .long .L50-.L60 # FFI_TYPE_SINT32
- .long .L48-.L60 # FFI_TYPE_UINT64
- .long .L48-.L60 # FFI_TYPE_SINT64
- .long .L44-.L60 # FFI_TYPE_STRUCT
- .long .L50-.L60 # FFI_TYPE_POINTER
-
-
-# case double
-.L46:
- lfd %f1,0(%r5)
- b .L44
-# case float
-.L47:
+# Each of the ret_typeX code fragments has to be exactly 16 bytes long
+# (4 instructions). For cache effectiveness we align to a 16 byte boundary
+# first.
+ .align 4
+
+ nop
+ nop
+ nop
+.Lget_ret_type0_addr:
+ blrl
+
+# case FFI_TYPE_VOID
+.Lret_type0:
+ b .Lfinish
+ nop
+ nop
+ nop
+
+# case FFI_TYPE_INT
+.Lret_type1:
+ lwz %r3,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_FLOAT
+.Lret_type2:
lfs %f1,0(%r5)
- b .L44
-
-# case long long
-.L48:
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_DOUBLE
+.Lret_type3:
+ lfd %f1,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_LONGDOUBLE
+.Lret_type4:
+ lfd %f1,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_UINT8
+.Lret_type5:
+ lbz %r3,3(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_SINT8
+.Lret_type6:
+ lbz %r3,3(%r5)
+ extsb %r3,%r3
+ b .Lfinish
+ nop
+
+# case FFI_TYPE_UINT16
+.Lret_type7:
+ lhz %r3,2(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_SINT16
+.Lret_type8:
+ lha %r3,2(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_UINT32
+.Lret_type9:
+ lwz %r3,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_SINT32
+.Lret_type10:
+ lwz %r3,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case FFI_TYPE_UINT64
+.Lret_type11:
lwz %r3,0(%r5)
lwz %r4,4(%r5)
- b .L44
-
-# case default / int32 / pointer
-.L50:
+ b .Lfinish
+ nop
+
+# case FFI_TYPE_SINT64
+.Lret_type12:
lwz %r3,0(%r5)
- b .L44
-
-# case signed int8
-.L55:
- addi %r5,%r5,3
- lbz %r3,0(%r5)
- extsb %r3,%r3
- b .L44
-
-# case unsigned int8
-.L56:
- addi %r5,%r5,3
- lbz %r3,0(%r5)
- b .L44
-
-# case signed int16
-.L57:
- addi %r5,%r5,2
- lhz %r3,0(%r5)
- extsh %r3,%r3
- b .L44
-
-#case unsigned int16
-.L58:
- addi %r5,%r5,2
- lhz %r3,0(%r5)
-
-# case void / done
-.L44:
+ lwz %r4,4(%r5)
+ b .Lfinish
+ nop
+
+# case FFI_TYPE_STRUCT
+.Lret_type13:
+ b .Lfinish
+ nop
+ nop
+ nop
+
+# case FFI_TYPE_POINTER
+.Lret_type14:
+ lwz %r3,0(%r5)
+ b .Lfinish
+ nop
+ nop
+
+# case done
+.Lfinish:
- lwz %r11,0(%r1)
- lwz %r0,4(%r11)
+ lwz %r0,148(%r1)
mtlr %r0
- lwz %r31,-4(%r11)
- mr %r1,%r11
+ addi %r1,%r1,144
blr
END(ffi_closure_SYSV)
diff --git a/libffi/src/sparc/ffi.c b/libffi/src/sparc/ffi.c
index dc975356b4b..573fc84ee5a 100644
--- a/libffi/src/sparc/ffi.c
+++ b/libffi/src/sparc/ffi.c
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1996 Cygnus Solutions
+ ffi.c - Copyright (c) 1996, 2003 Cygnus Solutions
Sparc Foreign Function Interface
@@ -28,6 +28,12 @@
#include <stdlib.h>
+#ifdef SPARC64
+extern void ffi_closure_v9(void);
+#else
+extern void ffi_closure_v8(void);
+#endif
+
/* ffi_prep_args is called by the assembly routine once stack space
has been allocated for the function's arguments */
@@ -409,3 +415,101 @@ void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
}
}
+
+ffi_status
+ffi_prep_closure (ffi_closure* closure,
+ ffi_cif* cif,
+ void (*fun)(ffi_cif*, void*, void**, void*),
+ void *user_data)
+{
+ unsigned int *tramp = (unsigned int *) &closure->tramp[0];
+ unsigned long fn;
+ unsigned long ctx = (unsigned long) closure;
+
+#ifdef SPARC64
+ /* Trampoline address is equal to the closure address. We take advantage
+ of that to reduce the trampoline size by 8 bytes. */
+ FFI_ASSERT (cif->abi == FFI_V9);
+ fn = (unsigned long) ffi_closure_v9;
+ tramp[0] = 0x83414000; /* rd %pc, %g1 */
+ tramp[1] = 0xca586010; /* ldx [%g1+16], %g5 */
+ tramp[2] = 0x81c14000; /* jmp %g5 */
+ tramp[3] = 0x01000000; /* nop */
+ *((unsigned long *) &tramp[4]) = fn;
+#else
+ FFI_ASSERT (cif->abi == FFI_V8);
+ fn = (unsigned long) ffi_closure_v8;
+ tramp[0] = 0x03000000 | fn >> 10; /* sethi %hi(fn), %g1 */
+ tramp[1] = 0x05000000 | ctx >> 10; /* sethi %hi(ctx), %g2 */
+ tramp[2] = 0x81c06000 | (fn & 0x3ff); /* jmp %g1+%lo(fn) */
+ tramp[3] = 0x8410a000 | (ctx & 0x3ff);/* or %g2, %lo(ctx) */
+#endif
+
+ closure->cif = cif;
+ closure->fun = fun;
+ closure->user_data = user_data;
+
+ /* Flush the Icache. FIXME: alignment isn't certain, assume 8 bytes */
+#ifdef SPARC64
+ asm volatile ("flush %0" : : "r" (closure) : "memory");
+ asm volatile ("flush %0" : : "r" (((char *) closure) + 8) : "memory");
+#else
+ asm volatile ("iflush %0" : : "r" (closure) : "memory");
+ asm volatile ("iflush %0" : : "r" (((char *) closure) + 8) : "memory");
+#endif
+
+ return FFI_OK;
+}
+
+int
+ffi_closure_sparc_inner(ffi_closure *closure,
+ void *rvalue, unsigned long *gpr, double *fpr)
+{
+ ffi_cif *cif;
+ void **avalue;
+ ffi_type **arg_types;
+ int i, avn, argn;
+
+ cif = closure->cif;
+ avalue = alloca(cif->nargs * sizeof(void *));
+
+ argn = 0;
+
+ /* Copy the caller's structure return address to that the closure
+ returns the data directly to the caller. */
+ if (cif->flags == FFI_TYPE_STRUCT)
+ {
+ rvalue = (void *) gpr[0];
+ argn = 1;
+ }
+
+ i = 0;
+ avn = cif->nargs;
+ arg_types = cif->arg_types;
+
+ /* Grab the addresses of the arguments from the stack frame. */
+ while (i < avn)
+ {
+ /* Assume big-endian. FIXME */
+ argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
+
+#ifdef SPARC64
+ if (i < 6 && (arg_types[i]->type == FFI_TYPE_FLOAT
+ || arg_types[i]->type == FFI_TYPE_DOUBLE
+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
+ || arg_types[i]->type == FFI_TYPE_LONGDOUBLE
+#endif
+ ))
+ avalue[i] = ((char *) &fpr[argn]) - arg_types[i]->size;
+ else
+#endif
+ avalue[i] = ((char *) &gpr[argn]) - arg_types[i]->size;
+ i++;
+ }
+
+ /* Invoke the closure. */
+ (closure->fun) (cif, rvalue, avalue, closure->user_data);
+
+ /* Tell ffi_closure_sparc how to perform return type promotions. */
+ return cif->rtype->type;
+}
diff --git a/libffi/src/sparc/v8.S b/libffi/src/sparc/v8.S
index d94fe03d2aa..53374de3855 100644
--- a/libffi/src/sparc/v8.S
+++ b/libffi/src/sparc/v8.S
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- v8.S - Copyright (c) 1996, 1997 Cygnus Solutions
+ v8.S - Copyright (c) 1996, 1997, 2003 Cygnus Solutions
Sparc Foreign Function Interface
@@ -94,6 +94,74 @@ longlong:
.ffi_call_V8_end:
.size ffi_call_V8,.ffi_call_V8_end-ffi_call_V8
+
+#define STACKFRAME 104 /* 16*4 register window +
+ 1*4 struct return +
+ 6*4 args backing store +
+ 3*4 locals */
+
+/* ffi_closure_v8(...)
+
+ Receives the closure argument in %g2. */
+
+ .text
+ .align 8
+ .globl ffi_closure_v8
+
+ffi_closure_v8:
+#ifdef HAVE_AS_REGISTER_PSEUDO_OP
+ .register %g2, #scratch
+#endif
+.LLFB2:
+ save %sp, -STACKFRAME, %sp
+.LLCFI1:
+
+ ! Store all of the potential argument registers in va_list format.
+ st %i0, [%fp+68+0]
+ st %i1, [%fp+68+4]
+ st %i2, [%fp+68+8]
+ st %i3, [%fp+68+12]
+ st %i4, [%fp+68+16]
+ st %i5, [%fp+68+20]
+
+ ! Call ffi_closure_sparc_inner to do the bulk of the work.
+ mov %g2, %o0
+ add %fp, -8, %o1
+ add %fp, 68, %o2
+ call ffi_closure_sparc_inner
+ mov 0, %o3
+
+ ! Load up the return value in the proper type.
+ cmp %o0, FFI_TYPE_VOID
+ be done1
+
+ cmp %o0, FFI_TYPE_FLOAT
+ be,a done1
+ ld [%fp-8], %f0
+
+ cmp %o0, FFI_TYPE_DOUBLE
+ be,a done1
+ ldd [%fp-8], %f0
+
+ cmp %o0, FFI_TYPE_SINT64
+ be,a integer
+ ld [%fp-4], %i1
+
+ cmp %o0, FFI_TYPE_UINT64
+ be,a integer
+ ld [%fp-4], %i1
+
+integer:
+ ld [%fp-8], %i0
+
+done1:
+ ret
+ restore
+.LLFE2:
+
+.ffi_closure_v8_end:
+ .size ffi_closure_v8,.ffi_closure_v8_end-ffi_closure_v8
+
#ifdef SPARC64
#define WS 8
#define nword xword
@@ -148,3 +216,26 @@ longlong:
.byte 0x1f ! uleb128 0x1f
.align WS
.LLEFDE1:
+.LLSFDE2:
+ .uaword .LLEFDE2-.LLASFDE2 ! FDE Length
+.LLASFDE2:
+ .uaword .LLASFDE2-.LLframe1 ! FDE CIE offset
+#ifdef HAVE_AS_SPARC_UA_PCREL
+ .uaword %r_disp32(.LLFB2)
+ .uaword .LLFE2-.LLFB2 ! FDE address range
+#else
+ .align WS
+ .nword .LLFB2
+ .uanword .LLFE2-.LLFB2 ! FDE address range
+#endif
+ .byte 0x0 ! uleb128 0x0; Augmentation size
+ .byte 0x4 ! DW_CFA_advance_loc4
+ .uaword .LLCFI1-.LLFB2
+ .byte 0xd ! DW_CFA_def_cfa_register
+ .byte 0x1e ! uleb128 0x1e
+ .byte 0x2d ! DW_CFA_GNU_window_save
+ .byte 0x9 ! DW_CFA_register
+ .byte 0xf ! uleb128 0xf
+ .byte 0x1f ! uleb128 0x1f
+ .align WS
+.LLEFDE2:
diff --git a/libffi/src/sparc/v9.S b/libffi/src/sparc/v9.S
index bd358c0d84d..8dc9c90f661 100644
--- a/libffi/src/sparc/v9.S
+++ b/libffi/src/sparc/v9.S
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- v9.S - Copyright (c) 2000 Cygnus Solutions
+ v9.S - Copyright (c) 2000, 2003 Cygnus Solutions
Sparc 64bit Foreign Function Interface
@@ -99,7 +99,7 @@ _ffi_call_V9:
cmp %i3, FFI_TYPE_STRUCT
be,pn %icc, dostruct
- cmp %i3, FFI_TYPE_LONGDOUBLE
+ cmp %i3, FFI_TYPE_LONGDOUBLE
bne,pt %icc, done
nop
std %f0, [%i4+0]
@@ -125,6 +125,88 @@ dostruct:
.ffi_call_V9_end:
.size ffi_call_V9,.ffi_call_V9_end-ffi_call_V9
+
+#define STACKFRAME 240 /* 16*8 register window +
+ 6*8 args backing store +
+ 8*8 locals */
+#define FP %fp+STACK_BIAS
+
+/* ffi_closure_v9(...)
+
+ Receives the closure argument in %g1. */
+
+ .text
+ .align 8
+ .globl ffi_closure_v9
+
+ffi_closure_v9:
+.LLFB2:
+ save %sp, -STACKFRAME, %sp
+.LLCFI1:
+
+ ! Store all of the potential argument registers in va_list format.
+ stx %i0, [FP+128+0]
+ stx %i1, [FP+128+8]
+ stx %i2, [FP+128+16]
+ stx %i3, [FP+128+24]
+ stx %i4, [FP+128+32]
+ stx %i5, [FP+128+40]
+
+ ! Store possible floating point argument registers too.
+ std %f0, [FP-48]
+ std %f2, [FP-40]
+ std %f4, [FP-32]
+ std %f6, [FP-24]
+ std %f8, [FP-16]
+ std %f10, [FP-8]
+
+ ! Call ffi_closure_sparc_inner to do the bulk of the work.
+ mov %g1, %o0
+ add %fp, STACK_BIAS-64, %o1
+ add %fp, STACK_BIAS+128, %o2
+ call ffi_closure_sparc_inner
+ add %fp, STACK_BIAS-48, %o3
+
+ ! Load up the return value in the proper type.
+ cmp %o0, FFI_TYPE_VOID
+ be,pn %icc, done1
+
+ cmp %o0, FFI_TYPE_FLOAT
+ be,a,pn %icc, done1
+ ld [FP-64], %f0
+
+ cmp %o0, FFI_TYPE_DOUBLE
+ be,a,pn %icc, done1
+ ldd [FP-64], %f0
+
+ cmp %o0, FFI_TYPE_LONGDOUBLE
+ be,a,pn %icc, longdouble1
+ ldd [FP-64], %f0
+
+ cmp %o0, FFI_TYPE_STRUCT
+ be,pn %icc, struct1
+
+ ! FFI_TYPE_UINT64 | FFI_TYPE_SINT64 | FFI_TYPE_POINTER
+ ldx [FP-64], %i0
+
+done1:
+ ret
+ restore
+
+struct1:
+ ldx [FP-56], %i2
+ ret
+ restore
+
+longdouble1:
+ ldd [FP-56], %f2
+ ret
+ restore
+.LLFE2:
+
+.ffi_closure_v9_end:
+ .size ffi_closure_v9,.ffi_closure_v9_end-ffi_closure_v9
+
.section ".eh_frame",#alloc,#write
.LLframe1:
.uaword .LLECIE1-.LLSCIE1 ! Length of Common Information Entry
@@ -169,5 +251,27 @@ dostruct:
.byte 0x1f ! uleb128 0x1f
.align 8
.LLEFDE1:
-
+.LLSFDE2:
+ .uaword .LLEFDE2-.LLASFDE2 ! FDE Length
+.LLASFDE2:
+ .uaword .LLASFDE2-.LLframe1 ! FDE CIE offset
+#ifdef HAVE_AS_SPARC_UA_PCREL
+ .uaword %r_disp32(.LLFB2)
+ .uaword .LLFE2-.LLFB2 ! FDE address range
+#else
+ .align 8
+ .xword .LLFB2
+ .uaxword .LLFE2-.LLFB2 ! FDE address range
+#endif
+ .byte 0x0 ! uleb128 0x0; Augmentation size
+ .byte 0x4 ! DW_CFA_advance_loc4
+ .uaword .LLCFI1-.LLFB2
+ .byte 0xd ! DW_CFA_def_cfa_register
+ .byte 0x1e ! uleb128 0x1e
+ .byte 0x2d ! DW_CFA_GNU_window_save
+ .byte 0x9 ! DW_CFA_register
+ .byte 0xf ! uleb128 0xf
+ .byte 0x1f ! uleb128 0x1f
+ .align 8
+.LLEFDE2:
#endif
diff --git a/libffi/src/x86/ffi.c b/libffi/src/x86/ffi.c
index 68135f97c35..bd0874f771a 100644
--- a/libffi/src/x86/ffi.c
+++ b/libffi/src/x86/ffi.c
@@ -214,35 +214,29 @@ void ffi_call(/*@dependent@*/ ffi_cif *cif,
static void ffi_prep_incoming_args_SYSV (char *stack, void **ret,
void** args, ffi_cif* cif);
-static void ffi_closure_SYSV ();
-static void ffi_closure_raw_SYSV ();
+static void ffi_closure_SYSV (ffi_closure *)
+ __attribute__ ((regparm(1)));
+static void ffi_closure_raw_SYSV (ffi_raw_closure *)
+ __attribute__ ((regparm(1)));
-/* This function is jumped to by the trampoline, on entry, %ecx (a
- * caller-save register) holds the address of the closure.
- * Clearly, this requires __GNUC__, so perhaps we should translate this
- * into an assembly file if this is to be distributed with ffi.
- */
+/* This function is jumped to by the trampoline */
static void
-ffi_closure_SYSV ()
+ffi_closure_SYSV (closure)
+ ffi_closure *closure;
{
// this is our return value storage
long double res;
// our various things...
- void *args;
ffi_cif *cif;
void **arg_area;
- ffi_closure *closure;
unsigned short rtype;
void *resp = (void*)&res;
+ void *args = __builtin_dwarf_cfa ();
- /* grab the trampoline context pointer */
- asm ("movl %%ecx,%0" : "=r" (closure));
-
cif = closure->cif;
arg_area = (void**) alloca (cif->nargs * sizeof (void*));
- asm ("leal 8(%%ebp),%0" : "=q" (args));
/* this call will initialize ARG_AREA, such that each
* element in that array points to the corresponding
@@ -330,11 +324,11 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue,
({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
unsigned int __fun = (unsigned int)(FUN); \
unsigned int __ctx = (unsigned int)(CTX); \
- unsigned int __dis = __fun - ((unsigned int) __tramp + 10); \
- *(unsigned char*) &__tramp[0] = 0xb9; \
- *(unsigned int*) &__tramp[1] = __ctx; \
- *(unsigned char*) &__tramp[5] = 0xe9; \
- *(unsigned int*) &__tramp[6] = __dis; \
+ unsigned int __dis = __fun - ((unsigned int) __tramp + FFI_TRAMPOLINE_SIZE); \
+ *(unsigned char*) &__tramp[0] = 0xb8; \
+ *(unsigned int*) &__tramp[1] = __ctx; /* movl __ctx, %eax */ \
+ *(unsigned char *) &__tramp[5] = 0xe9; \
+ *(unsigned int*) &__tramp[6] = __dis; /* jmp __fun */ \
})
@@ -364,30 +358,23 @@ ffi_prep_closure (ffi_closure* closure,
#if !FFI_NO_RAW_API
static void
-ffi_closure_raw_SYSV ()
+ffi_closure_raw_SYSV (closure)
+ ffi_raw_closure *closure;
{
// this is our return value storage
long double res;
// our various things...
- void *args;
ffi_raw *raw_args;
ffi_cif *cif;
- ffi_raw_closure *closure;
unsigned short rtype;
void *resp = (void*)&res;
- /* grab the trampoline context pointer */
- asm ("movl %%ecx,%0" : "=r" (closure));
-
- /* take the argument pointer */
- asm ("leal 8(%%ebp),%0" : "=q" (args));
-
/* get the cif */
cif = closure->cif;
/* the SYSV/X86 abi matches the RAW API exactly, well.. almost */
- raw_args = (ffi_raw*) args;
+ raw_args = (ffi_raw*) __builtin_dwarf_cfa ();
(closure->fun) (cif, resp, raw_args, closure->user_data);
diff --git a/libffi/src/x86/ffi64.c b/libffi/src/x86/ffi64.c
index f278a924eda..9427a37c8b5 100644
--- a/libffi/src/x86/ffi64.c
+++ b/libffi/src/x86/ffi64.c
@@ -27,6 +27,7 @@
#include <ffi_common.h>
#include <stdlib.h>
+#include <stdarg.h>
/* ffi_prep_args is called by the assembly routine once stack space
has been allocated for the function's arguments */
@@ -285,7 +286,8 @@ ffi_prep_args (stackLayout *stack, extended_cif *ecif)
/* First check if the return value should be passed in memory. If so,
pass the pointer as the first argument. */
gprcount = ssecount = 0;
- if (examine_argument (ecif->cif->rtype, 1, &g, &s) == 0)
+ if (ecif->cif->rtype->type != FFI_TYPE_VOID
+ && examine_argument (ecif->cif->rtype, 1, &g, &s) == 0)
(void *)stack->gpr[gprcount++] = ecif->rvalue;
for (i=ecif->cif->nargs, p_arg=ecif->cif->arg_types, p_argv = ecif->avalue;
@@ -389,8 +391,8 @@ ffi_prep_cif_machdep (ffi_cif *cif)
/* If the return value should be passed in memory, pass the pointer
as the first argument. The actual memory isn't allocated here. */
-
- if (examine_argument (cif->rtype, 1, &g, &s) == 0)
+ if (cif->rtype->type != FFI_TYPE_VOID
+ && examine_argument (cif->rtype, 1, &g, &s) == 0)
gprcount = 1;
/* Go over all arguments and determine the way they should be passed.
@@ -570,4 +572,135 @@ void ffi_call(/*@dependent@*/ ffi_cif *cif,
}
}
+extern void ffi_closure_UNIX64(void);
+
+ffi_status
+ffi_prep_closure (ffi_closure* closure,
+ ffi_cif* cif,
+ void (*fun)(ffi_cif*, void*, void**, void*),
+ void *user_data)
+{
+ volatile unsigned short *tramp;
+
+ /* FFI_ASSERT (cif->abi == FFI_OSF); */
+
+ tramp = (volatile unsigned short *) &closure->tramp[0];
+ tramp[0] = 0xbb49; /* mov <code>, %r11 */
+ tramp[5] = 0xba49; /* mov <data>, %r10 */
+ tramp[10] = 0xff49; /* jmp *%r11 */
+ tramp[11] = 0x00e3;
+ *(void * volatile *) &tramp[1] = ffi_closure_UNIX64;
+ *(void * volatile *) &tramp[6] = closure;
+
+ closure->cif = cif;
+ closure->fun = fun;
+ closure->user_data = user_data;
+
+ return FFI_OK;
+}
+
+int
+ffi_closure_UNIX64_inner(ffi_closure *closure, va_list l, void *rp)
+{
+ ffi_cif *cif;
+ void **avalue;
+ ffi_type **arg_types;
+ long i, avn, argn;
+
+ cif = closure->cif;
+ avalue = alloca(cif->nargs * sizeof(void *));
+
+ argn = 0;
+
+ i = 0;
+ avn = cif->nargs;
+ arg_types = cif->arg_types;
+
+ /* Grab the addresses of the arguments from the stack frame. */
+ while (i < avn)
+ {
+ switch (arg_types[i]->type)
+ {
+ case FFI_TYPE_SINT8:
+ case FFI_TYPE_UINT8:
+ case FFI_TYPE_SINT16:
+ case FFI_TYPE_UINT16:
+ case FFI_TYPE_SINT32:
+ case FFI_TYPE_UINT32:
+ case FFI_TYPE_SINT64:
+ case FFI_TYPE_UINT64:
+ case FFI_TYPE_POINTER:
+ {
+ if (l->gp_offset > 48-8)
+ {
+ avalue[i] = l->overflow_arg_area;
+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+ }
+ else
+ {
+ avalue[i] = (char *)l->reg_save_area + l->gp_offset;
+ l->gp_offset += 8;
+ }
+ }
+ break;
+
+ case FFI_TYPE_STRUCT:
+ /* FIXME */
+ FFI_ASSERT(0);
+ break;
+
+ case FFI_TYPE_DOUBLE:
+ {
+ if (l->fp_offset > 176-16)
+ {
+ avalue[i] = l->overflow_arg_area;
+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+ }
+ else
+ {
+ avalue[i] = (char *)l->reg_save_area + l->fp_offset;
+ l->fp_offset += 16;
+ }
+ }
+#if DEBUG_FFI
+ fprintf (stderr, "double arg %d = %g\n", i, *(double *)avalue[i]);
+#endif
+ break;
+
+ case FFI_TYPE_FLOAT:
+ {
+ if (l->fp_offset > 176-16)
+ {
+ avalue[i] = l->overflow_arg_area;
+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
+ }
+ else
+ {
+ avalue[i] = (char *)l->reg_save_area + l->fp_offset;
+ l->fp_offset += 16;
+ }
+ }
+#if DEBUG_FFI
+ fprintf (stderr, "float arg %d = %g\n", i, *(float *)avalue[i]);
+#endif
+ break;
+
+ default:
+ FFI_ASSERT(0);
+ }
+
+ argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
+ i++;
+ }
+
+ /* Invoke the closure. */
+ (closure->fun) (cif, rp, avalue, closure->user_data);
+
+ /* FIXME: Structs not supported. */
+ FFI_ASSERT(cif->rtype->type != FFI_TYPE_STRUCT);
+
+ /* Tell ffi_closure_UNIX64 how to perform return type promotions. */
+
+ return cif->rtype->type;
+}
#endif /* ifndef __x86_64__ */
diff --git a/libffi/src/x86/unix64.S b/libffi/src/x86/unix64.S
index 2e64b4195bf..f0cd3c9c0c9 100644
--- a/libffi/src/x86/unix64.S
+++ b/libffi/src/x86/unix64.S
@@ -162,5 +162,141 @@ sse2floatfloat:
movaps (%rdi), %xmm0
movq %xmm0, (%rsi)
ret
-
+
+ .align 2
+.globl ffi_closure_UNIX64
+ .type ffi_closure_UNIX64,@function
+
+ffi_closure_UNIX64:
+.LFB2:
+ pushq %rbp
+.LCFI10:
+ movq %rsp, %rbp
+.LCFI11:
+ subq $240, %rsp
+.LCFI12:
+ movq %rdi, -176(%rbp)
+ movq %rsi, -168(%rbp)
+ movq %rdx, -160(%rbp)
+ movq %rcx, -152(%rbp)
+ movq %r8, -144(%rbp)
+ movq %r9, -136(%rbp)
+ /* FIXME: We can avoid all this stashing of XMM registers by
+ (in ffi_prep_closure) computing the number of
+ floating-point args and moving it into %rax before calling
+ this function. Once this is done, uncomment the next few
+ lines and only the essential XMM registers will be written
+ to memory. This is a significant saving. */
+/* movzbl %al, %eax */
+/* movq %rax, %rdx */
+/* leaq 0(,%rdx,4), %rax */
+/* leaq 2f(%rip), %rdx */
+/* subq %rax, %rdx */
+ leaq -1(%rbp), %rax
+/* jmp *%rdx */
+ movaps %xmm7, -15(%rax)
+ movaps %xmm6, -31(%rax)
+ movaps %xmm5, -47(%rax)
+ movaps %xmm4, -63(%rax)
+ movaps %xmm3, -79(%rax)
+ movaps %xmm2, -95(%rax)
+ movaps %xmm1, -111(%rax)
+ movaps %xmm0, -127(%rax)
+2:
+ movl %edi, -180(%rbp)
+ movl $0, -224(%rbp)
+ movl $48, -220(%rbp)
+ leaq 16(%rbp), %rax
+ movq %rax, -216(%rbp)
+ leaq -176(%rbp), %rdx
+ movq %rdx, -208(%rbp)
+ leaq -224(%rbp), %rsi
+ movq %r10, %rdi
+ movq %rsp, %rdx
+ call ffi_closure_UNIX64_inner@PLT
+
+ cmpl $FFI_TYPE_FLOAT, %eax
+ je 1f
+ cmpl $FFI_TYPE_DOUBLE, %eax
+ je 2f
+ cmpl $FFI_TYPE_LONGDOUBLE, %eax
+ je 3f
+ cmpl $FFI_TYPE_STRUCT, %eax
+ je 4f
+ popq %rax
+ leave
+ ret
+1:
+2:
+3:
+ movaps -240(%rbp), %xmm0
+ leave
+ ret
+4:
+ leave
+ ret
+.LFE2:
+
+ .section .eh_frame,"a",@progbits
+.Lframe0:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .string "zR"
+ .uleb128 0x1
+ .sleb128 -8
+ .byte 0x10
+ .uleb128 0x1
+ .byte 0x1b
+ .byte 0xc
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90
+ .uleb128 0x1
+ .align 8
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe0
+
+ .long .LFB1-.
+ .long .LFE1-.LFB1
+ .uleb128 0x0
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI0-.LFB1
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset: r6 at cfa-16
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI1-.LCFI0
+ .byte 0x86 # DW_CFA_offset: r6 at cfa-16
+ .uleb128 0x2
+ .byte 0xd # DW_CFA_def_cfa_reg: r6
+ .uleb128 0x6
+ .align 8
+.LEFDE1:
+.LSFDE3:
+ .long .LEFDE3-.LASFDE3 # FDE Length
+.LASFDE3:
+ .long .LASFDE3-.Lframe0 # FDE CIE offset
+
+ .long .LFB2-. # FDE initial location
+ .long .LFE2-.LFB2 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI10-.LFB2
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI11-.LCFI10
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE3:
+
#endif /* __x86_64__ */
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 7280aa03747..d07ce854a8d 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,231 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-11-12 Daniel Jacobowitz <drow@mvista.com>
+
+ Backport from mainline:
+ 2003-02-20 Daniel Jacobowitz <drow@mvista.com>
+
+ * Makefile.in (CFILES): Add lrealpath.c.
+ (REQUIRED_OFILES): Add lrealpath.o.
+ (lrealpath.o): Add rule.
+ * aclocal.m4 (libiberty_NEED_DECLARATION): Add.
+ * configure.in: Add realpath and canonicalize_file_name to
+ checkfuncs and AC_CHECK_FUNCS. Use libiberty_NEED_DECLARATION
+ for canonicalize_file_name.
+ * lrealpath.c: New file.
+ * make-relative-prefix.c: Update documentation.
+ (make_relative_prefix): Simplify. Use lbasename and lrealpath.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+ * functions.texi: Regenerated.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-06-19 Dara Hazeghi <dhazeghi@yahoo.com>
+
+ * configure.in: Add check for malloc.h needed by
+ m68k for function free().
+ * configure: Regenerated.
+ * config.in: Add HAVE_MALLOC_H.
+ * hashtab.c: include malloc.h were available for
+ free().
+
+2003-06-09 Albert Chin-A-Young <china@thewrittenword.com>
+
+ PR bootstrap/10974
+ * physmem.c: Update comment.
+ * configure.in: Modify test for _system_configuration for older
+ AIX systems.
+
+ * config.in, configure: Regenerated.
+
+2003-06-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR other/10810
+ * test-demangle.c (getline): Fix fence-post error.
+
+2003-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Backport from mainline:
+ 2003-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * vsprintf.c: Include "ansidecl.h" earlier, rely on
+ ANSI_PROTOTYPES and possibly include <stdarg.h>.
+
+2003-05-14 Carlo Wood <carlo@alinoe.com>
+
+ * cp-demangle.c: Fix typo in "char_traints" string-literal.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/10338
+ PR bootstrap/10198
+ PR bootstrap/10140
+ * getopt.c (exchange, _getopt_initialize): Use mempcpy not
+ __mempcpy.
+ * regex.c (regerror): Likewise.
+
+2003-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.in (HAVE_UINTPTR_T): Always define.
+ * configure: Regenerated.
+
+2003-03-23 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (MULTIOSDIR): New macro. Use $(CC) $(LIBCFLAGS)
+ instead of $$CC alone.
+ (install_to_tooldir): Use it.
+
+2003-03-03 Mark Mitchell <mark@codesourcery.com>
+
+ * cplus-dem.c: Add license exception to copyright notice.
+
+2003-02-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * physmem.c: Formatting changes from upstream.
+
+2003-02-24 Danny Smith <dannysmith@users.source.forge.net>
+
+ * physmem.c (physmem_total): Add _WIN32 support.
+ (physmem_available): Likewise.
+
+2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * physmem.c (physmem_total) [HAVE_GETSYSINFO]: Test for
+ GSI_PHYSMEM.
+ (physmem_available) [HAVE_TABLE]: Test for TBL_VMSTATS.
+
+2003-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.in: Check for sys/systemcfg.h and
+ _system_configuration.
+ * physmem.c: Add support for AIX. Tweek formatting as per
+ upstream coreutils beta.
+
+2003-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ Richard Earnshaw <rearnsha@arm.com>
+ Geoffrey Keating <geoffk@apple.com>
+
+ * configure.in: Check for sys/sysctl.h and sysctl.
+ * physmem.c: Add support for *bsd and darwin.
+ * Makefile.in: Generate depedency for physmem.o.
+
+2003-02-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * physmem.c (physmem_total) [HAVE_GETSYSINFO]: Use getsysinfo on
+ Tru64 UNIX.
+ (physmem_available) [HAVE_TABLE && HAVE_SYS_TABLE_H]: Use table on
+ Tru64 UNIX.
+
+ * configure.in (AC_CHECK_HEADERS): Check for sys/sysinfo.h,
+ machine/hal_sysinfo.h, sys/table.h.
+ (checkfuncs, AC_CHECKFUNCS): Check for getsysinfo, table.
+ * configure, config.in: Regenerate.
+
+2003-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.in: Check for sys/sysmp.h and sysmp.
+ * physmem.c: Pull upstream copy, add support for irix6.
+
+ * config.in, configure: Regenerated.
+
+2003-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * physmem.c (physmem_total, physmem_available): De-ANSI-fy.
+ * configure.in (AC_CHECK_FUNCS): Add pstat_getstatic and
+ pstat_getdynamic.
+
+2003-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (CFILES): Add physmem.c.
+ (REQUIRED_OFILES): Add physmem.o.
+ * configure.in: Check for sys/pstat.h.
+ (checkfuncs): Add pstat_getstatic and pstat_getdynamic.
+ * physmem.c: New file, copied from textutils.
+
+ * config.in, configure: Regenerated.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * acconfig.h: New file. Add uintptr_t.
+ * config.in: Regenerated.
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * libiberty.texi: Update to GFDL 1.2.
+
+2003-02-02 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (libiberty_topdir): New subst.
+ (mkinstalldirs): Redefine in terms of the above.
+ * configure.in: AC_SUBST it.
+ * configure: Regenerate.
+
+2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (all-subdir, check-subdir, installcheck-subdir)
+ (info-subdir, install-info-subdir, clean-info-subdir)
+ (dvi-subdir, install-subdir, etags-subdir, mostlyclean-subdir)
+ (clean-subdir, distclean-subdir, maintainer-clean-subdir):
+ Pass $(FLAGS_TO_PASS).
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (install_to_tooldir): Instead of $(MULTISUBDIR), use
+ /`$$CC -print-multi-os-directory`.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
+ (install_to_libdir, install_to_tooldir): Add a mkinstalldirs
+ command.
+
+2003-01-20 Josef Zlomek <zlomekj@suse.cz>
+
+ * hashtab.c (htab_expand): Fix allocation of new entries.
+
2002-12-04 Danny Smith <dannysmith@users.sourceforge.net>
* make-relative-prefix.c (HAVE_HOST_EXECUTABLE_SUFFIX):
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index cdf14a4311b..d936928c76b 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -1,6 +1,6 @@
#
# Makefile
-# Copyright (C) 1990, 91-99, 2000, 2001, 2002
+# Copyright (C) 1990, 91-99, 2000, 2001, 2002, 2003
# Free Software Foundation
#
# This file is part of the libiberty library.
@@ -26,6 +26,7 @@
# Makefile for libiberty directory
#
+libiberty_topdir = @libiberty_topdir@
srcdir = @srcdir@
VPATH = @srcdir@
@@ -50,7 +51,7 @@ MULTICLEAN = true
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
-mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs
+mkinstalldirs = $(SHELL) $(libiberty_topdir)/mkinstalldirs
# Some compilers can't handle cc -c blah.c -o foo/blah.o.
OUTPUT_OPTION = @OUTPUT_OPTION@
@@ -84,6 +85,7 @@ FLAGS_TO_PASS = \
"AR_FLAGS=$(AR_FLAGS)" \
"CC=$(CC)" \
"CFLAGS=$(CFLAGS)" \
+ "DESTDIR=$(DESTDIR)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"EXTRA_OFILES=$(EXTRA_OFILES)" \
"HDEFINES=$(HDEFINES)" \
@@ -135,11 +137,11 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
hashtab.c hex.c \
index.c insque.c \
lbasename.c \
- make-relative-prefix.c \
+ lrealpath.c make-relative-prefix.c \
make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmove.c \
memset.c mkstemps.c \
objalloc.c obstack.c \
- partition.c pexecute.c putenv.c \
+ partition.c pexecute.c physmem.c putenv.c \
random.c regex.c rename.c rindex.c \
safe-ctype.c setenv.c sigsetmask.c sort.c spaces.c \
splay-tree.c strcasecmp.c strchr.c strdup.c strerror.c \
@@ -160,10 +162,10 @@ REQUIRED_OFILES = regex.o cplus-dem.o cp-demangle.o md5.o \
getopt.o getopt1.o getpwd.o getruntime.o \
hashtab.o hex.o \
lbasename.o \
- make-relative-prefix.o \
+ lrealpath.o make-relative-prefix.o \
make-temp-file.o \
objalloc.o obstack.o \
- partition.o pexecute.o \
+ partition.o physmem.o pexecute.o \
safe-ctype.o sort.o spaces.o splay-tree.o strerror.o \
strsignal.o \
ternary.o \
@@ -261,6 +263,7 @@ INSTALL_DEST = @INSTALL_DEST@
install: install_to_$(INSTALL_DEST) install-subdir
install_to_libdir: all
+ ${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR)
$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n
( cd $(DESTDIR)$(libdir)$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n )
mv -f $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)
@@ -276,10 +279,16 @@ install_to_libdir: all
fi
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+# This is tricky. Even though CC in the Makefile contains
+# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
+# default multilib, so we have to take LIBCFLAGS into account as well,
+# since it will be passed the multilib flags.
+MULTIOSDIR = `$(CC) $(LIBCFLAGS) -print-multi-os-directory`
install_to_tooldir: all
- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n
- ( cd $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n )
- mv -f $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)
+ ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
+ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
+ ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; $(RANLIB) $(TARGETLIB)n )
+ mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
# needed-list is used by libstdc++. NEEDED is the list of functions
@@ -390,7 +399,7 @@ maintainer-clean-subdir: config.h
@subdirs='$(SUBDIRS)'; \
target=`echo $@ | sed -e 's/-subdir//'`; \
for dir in $$subdirs ; do \
- cd $$dir && $(MAKE) $$target; \
+ cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $$target; \
done
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir
@@ -434,6 +443,7 @@ hashtab.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/hashtab.h \
hex.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
lbasename.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
$(INCDIR)/safe-ctype.h
+lrealpath.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
make-relative-prefix.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
make-temp-file.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
md5.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
@@ -449,6 +459,7 @@ partition.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
$(INCDIR)/partition.h
pexecute.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
$(INCDIR)/safe-ctype.h
+physmem.o: config.h $(INCDIR)/libiberty.h
putenv.o: config.h $(INCDIR)/ansidecl.h
random.o: $(INCDIR)/ansidecl.h
regex.o: config.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h
diff --git a/libiberty/acconfig.h b/libiberty/acconfig.h
new file mode 100644
index 00000000000..364cb41da7c
--- /dev/null
+++ b/libiberty/acconfig.h
@@ -0,0 +1,3 @@
+/* Define to `unsigned long' if <sys/types.h> doesn't define. */
+#undef uintptr_t
+
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
index 103e246de7e..6c5dc6ac64b 100644
--- a/libiberty/aclocal.m4
+++ b/libiberty/aclocal.m4
@@ -87,6 +87,35 @@ then AC_DEFINE(NEED_DECLARATION_ERRNO, 1,
fi
])
+dnl See whether we need a declaration for a function.
+AC_DEFUN(libiberty_NEED_DECLARATION,
+[AC_MSG_CHECKING([whether $1 must be declared])
+AC_CACHE_VAL(libiberty_cv_decl_needed_$1,
+[AC_TRY_COMPILE([
+#include "confdefs.h"
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif],
+[char *(*pfn) = (char *(*)) $1],
+libiberty_cv_decl_needed_$1=no, libiberty_cv_decl_needed_$1=yes)])
+AC_MSG_RESULT($libiberty_cv_decl_needed_$1)
+if test $libiberty_cv_decl_needed_$1 = yes; then
+ AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1,
+ [Define if $1 is not declared in system header files.])
+fi
+])dnl
+
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
# are probably using a cross compiler, which will not be able to fully
diff --git a/libiberty/config.in b/libiberty/config.in
index e06bbce857d..f6ca4448927 100644
--- a/libiberty/config.in
+++ b/libiberty/config.in
@@ -15,6 +15,9 @@
/* Define as __inline if that's what the C compiler calls it. */
#undef inline
+/* Define if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
/* Define to `int' if <sys/types.h> doesn't define. */
#undef pid_t
@@ -30,6 +33,9 @@
/* Define vfork as fork if vfork does not work. */
#undef vfork
+/* Define to `unsigned long' if <sys/types.h> doesn't define. */
+#undef uintptr_t
+
/* Define if you have the _doprnt function. */
#undef HAVE__DOPRNT
@@ -57,6 +63,9 @@
/* Define if you have the calloc function. */
#undef HAVE_CALLOC
+/* Define if you have the canonicalize_file_name function. */
+#undef HAVE_CANONICALIZE_FILE_NAME
+
/* Define if you have the clock function. */
#undef HAVE_CLOCK
@@ -72,6 +81,9 @@
/* Define if you have the getrusage function. */
#undef HAVE_GETRUSAGE
+/* Define if you have the getsysinfo function. */
+#undef HAVE_GETSYSINFO
+
/* Define if you have the gettimeofday function. */
#undef HAVE_GETTIMEOFDAY
@@ -105,12 +117,21 @@
/* Define if you have the psignal function. */
#undef HAVE_PSIGNAL
+/* Define if you have the pstat_getdynamic function. */
+#undef HAVE_PSTAT_GETDYNAMIC
+
+/* Define if you have the pstat_getstatic function. */
+#undef HAVE_PSTAT_GETSTATIC
+
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
/* Define if you have the random function. */
#undef HAVE_RANDOM
+/* Define if you have the realpath function. */
+#undef HAVE_REALPATH
+
/* Define if you have the rename function. */
#undef HAVE_RENAME
@@ -162,6 +183,15 @@
/* Define if you have the sysconf function. */
#undef HAVE_SYSCONF
+/* Define if you have the sysctl function. */
+#undef HAVE_SYSCTL
+
+/* Define if you have the sysmp function. */
+#undef HAVE_SYSMP
+
+/* Define if you have the table function. */
+#undef HAVE_TABLE
+
/* Define if you have the times function. */
#undef HAVE_TIMES
@@ -192,6 +222,9 @@
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
+/* Define if you have the <machine/hal_sysinfo.h> header file. */
+#undef HAVE_MACHINE_HAL_SYSINFO_H
+
/* Define if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
@@ -210,12 +243,30 @@
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
+/* Define if you have the <sys/pstat.h> header file. */
+#undef HAVE_SYS_PSTAT_H
+
/* Define if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
+/* Define if you have the <sys/sysctl.h> header file. */
+#undef HAVE_SYS_SYSCTL_H
+
+/* Define if you have the <sys/sysinfo.h> header file. */
+#undef HAVE_SYS_SYSINFO_H
+
+/* Define if you have the <sys/sysmp.h> header file. */
+#undef HAVE_SYS_SYSMP_H
+
+/* Define if you have the <sys/systemcfg.h> header file. */
+#undef HAVE_SYS_SYSTEMCFG_H
+
+/* Define if you have the <sys/table.h> header file. */
+#undef HAVE_SYS_TABLE_H
+
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
@@ -225,6 +276,9 @@
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
/* Define if errno must be declared even when <errno.h> is included. */
#undef NEED_DECLARATION_ERRNO
@@ -252,3 +306,9 @@
STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
+/* Define if you have the _system_configuration variable. */
+#undef HAVE__SYSTEM_CONFIGURATION
+
+/* Define if canonicalize_file_name is not declared in system header files. */
+#undef NEED_DECLARATION_CANONICALIZE_FILE_NAME
+
diff --git a/libiberty/configure b/libiberty/configure
index cac9f5637a9..88dfe6b9c8a 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -583,6 +583,7 @@ if test "${srcdir}" = "."; then
else
libiberty_topdir="${srcdir}/.."
fi
+
ac_aux_dir=
for ac_dir in $libiberty_topdir $srcdir/$libiberty_topdir; do
if test -f $ac_dir/install-sh; then
@@ -605,7 +606,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:609: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:610: 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"
@@ -630,7 +631,7 @@ fi
# Extract the first word of "makeinfo", so it can be a program name with args.
set dummy makeinfo; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:634: checking for $ac_word" >&5
+echo "configure:635: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -676,7 +677,7 @@ fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:680: checking for $ac_word" >&5
+echo "configure:681: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -716,7 +717,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:720: checking host system type" >&5
+echo "configure:721: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -739,7 +740,7 @@ echo "$ac_t""$host" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:743: checking build system type" >&5
+echo "configure:744: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -765,7 +766,7 @@ fi
# 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:769: checking for $ac_word" >&5
+echo "configure:770: 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
@@ -797,7 +798,7 @@ fi
# 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:801: checking for $ac_word" >&5
+echo "configure:802: 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
@@ -829,7 +830,7 @@ if test -n "$ac_tool_prefix"; then
# 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:833: checking for $ac_word" >&5
+echo "configure:834: 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
@@ -866,7 +867,7 @@ fi
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:870: checking for $ac_word" >&5
+echo "configure:871: 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
@@ -896,7 +897,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:900: checking for $ac_word" >&5
+echo "configure:901: 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
@@ -945,7 +946,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:949: checking whether we are using GNU C" >&5
+echo "configure:950: 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
@@ -954,7 +955,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:959: \"$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
@@ -970,7 +971,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:974: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:975: 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
@@ -1002,10 +1003,10 @@ fi
if test "x$CC" != xcc; then
echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6
-echo "configure:1006: checking whether $CC and cc understand -c and -o together" >&5
+echo "configure:1007: checking whether $CC and cc understand -c and -o together" >&5
else
echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6
-echo "configure:1009: checking whether cc understands -c and -o together" >&5
+echo "configure:1010: checking whether cc understands -c and -o together" >&5
fi
set dummy $CC; ac_cc="`echo $2 |
sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
@@ -1017,16 +1018,16 @@ else
# We do the test twice because some compilers refuse to overwrite an
# existing .o file with -o, though they will create one.
ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5'
-if { (eval echo configure:1021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
- test -f conftest.o && { (eval echo configure:1022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+if { (eval echo configure:1022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+ test -f conftest.o && { (eval echo configure:1023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
then
eval ac_cv_prog_cc_${ac_cc}_c_o=yes
if test "x$CC" != xcc; then
# Test first that cc exists at all.
- if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1027: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
ac_try='cc -c conftest.c -o conftest.o 1>&5'
- if { (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
- test -f conftest.o && { (eval echo configure:1030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+ if { (eval echo configure:1030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+ test -f conftest.o && { (eval echo configure:1031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
then
# cc works too.
:
@@ -1062,7 +1063,7 @@ fi
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1066: checking for POSIXized ISC" >&5
+echo "configure:1067: 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
@@ -1083,12 +1084,12 @@ else
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1087: checking for working const" >&5
+echo "configure:1088: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1092 "configure"
+#line 1093 "configure"
#include "confdefs.h"
int main() {
@@ -1137,7 +1138,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1158,21 +1159,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1162: checking for inline" >&5
+echo "configure:1163: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 1169 "configure"
+#line 1170 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:1176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -1215,7 +1216,7 @@ esac
# 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:1219: checking for a BSD compatible install" >&5
+echo "configure:1220: 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
@@ -1276,7 +1277,7 @@ host_makefile_frag=${frag}
# able to link anything, it had better be able to at least compile
# something.
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1280: checking how to run the C preprocessor" >&5
+echo "configure:1281: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1291,13 +1292,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1295 "configure"
+#line 1296 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1302: \"$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
:
@@ -1308,13 +1309,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1312 "configure"
+#line 1313 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1319: \"$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
:
@@ -1325,13 +1326,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1329 "configure"
+#line 1330 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1336: \"$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
:
@@ -1355,21 +1356,21 @@ else
fi
echo "$ac_t""$CPP" 1>&6
-for ac_hdr in sys/file.h sys/param.h limits.h stdlib.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h
+for ac_hdr in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1363: checking for $ac_hdr" >&5
+echo "configure:1364: 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
-#line 1368 "configure"
+#line 1369 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1373: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1374: \"$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*
@@ -1396,12 +1397,12 @@ fi
done
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1400: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:1401: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1405 "configure"
+#line 1406 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -1417,7 +1418,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:1421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@@ -1438,12 +1439,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1442: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:1443: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1447 "configure"
+#line 1448 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -1452,7 +1453,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:1456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -1474,19 +1475,19 @@ fi
echo $ac_n "checking whether errno must be declared""... $ac_c" 1>&6
-echo "configure:1478: checking whether errno must be declared" >&5
+echo "configure:1479: checking whether errno must be declared" >&5
if eval "test \"`echo '$''{'libiberty_cv_declare_errno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1483 "configure"
+#line 1484 "configure"
#include "confdefs.h"
#include <errno.h>
int main() {
int x = errno;
; return 0; }
EOF
-if { (eval echo configure:1490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libiberty_cv_declare_errno=no
else
@@ -1508,12 +1509,12 @@ fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1512: checking for ANSI C header files" >&5
+echo "configure:1513: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1517 "configure"
+#line 1518 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1521,7 +1522,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1526: \"$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*
@@ -1538,7 +1539,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1542 "configure"
+#line 1543 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1556,7 +1557,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1560 "configure"
+#line 1561 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1577,7 +1578,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1581 "configure"
+#line 1582 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1588,7 +1589,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1612,12 +1613,12 @@ EOF
fi
echo $ac_n "checking for uintptr_t""... $ac_c" 1>&6
-echo "configure:1616: checking for uintptr_t" >&5
+echo "configure:1617: checking for uintptr_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_uintptr_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1621 "configure"
+#line 1622 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1644,14 +1645,13 @@ EOF
fi
-
-if test $ac_cv_type_uintptr_t = yes
-then
- cat >> confdefs.h <<\EOF
+# Given the above check, we always have uintptr_t or a fallback
+# definition. So define HAVE_UINTPTR_T in case any imported code
+# relies on it.
+cat >> confdefs.h <<\EOF
#define HAVE_UINTPTR_T 1
EOF
-fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
echo "configure:1658: checking for pid_t" >&5
@@ -1737,6 +1737,8 @@ funcs="$funcs waitpid"
vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
+checkfuncs="$checkfuncs realpath canonicalize_file_name"
+checkfuncs="$checkfuncs pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl"
# These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h.
@@ -1744,12 +1746,12 @@ if test "x" = "y"; then
for ac_func in asprintf atexit basename bcmp bcopy bsearch bzero calloc clock
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1748: checking for $ac_func" >&5
+echo "configure:1750: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1753 "configure"
+#line 1755 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1772,7 +1774,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1799,12 +1801,12 @@ done
for ac_func in getcwd getpagesize index insque mkstemps memchr memcmp memcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1803: checking for $ac_func" >&5
+echo "configure:1805: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1808 "configure"
+#line 1810 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1827,7 +1829,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1854,12 +1856,12 @@ done
for ac_func in memmove memset putenv random rename rindex sigsetmask
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1858: checking for $ac_func" >&5
+echo "configure:1860: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1863 "configure"
+#line 1865 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1882,7 +1884,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1909,12 +1911,12 @@ done
for ac_func in strcasecmp setenv strchr strdup strncasecmp strrchr strstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1913: checking for $ac_func" >&5
+echo "configure:1915: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1918 "configure"
+#line 1920 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1937,7 +1939,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1964,12 +1966,12 @@ done
for ac_func in strtod strtol strtoul tmpnam vasprintf vfprintf vprintf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1968: checking for $ac_func" >&5
+echo "configure:1970: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1973 "configure"
+#line 1975 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1992,7 +1994,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2019,12 +2021,12 @@ done
for ac_func in vsprintf waitpid getrusage on_exit psignal strerror strsignal
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2023: checking for $ac_func" >&5
+echo "configure:2025: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2028 "configure"
+#line 2030 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2047,7 +2049,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2074,12 +2076,122 @@ done
for ac_func in sysconf times sbrk gettimeofday ffs
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2078: checking for $ac_func" >&5
+echo "configure:2080: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2085 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_func in realpath canonicalize_file_name
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2135: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2140 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ for ac_func in pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2190: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2083 "configure"
+#line 2195 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2102,7 +2214,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2332,7 +2444,7 @@ if test -z "${setobjs}"; then
# We haven't set the list of objects yet. Use the standard autoconf
# tests. This will only work if the compiler works.
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2336: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2448: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -2343,12 +2455,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 2347 "configure"
+#line 2459 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -2374,19 +2486,19 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2378: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2490: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
for ac_func in $funcs
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2385: checking for $ac_func" >&5
+echo "configure:2497: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2390 "configure"
+#line 2502 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2409,7 +2521,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2436,12 +2548,12 @@ done
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2440: checking whether alloca needs Cray hooks" >&5
+echo "configure:2552: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2445 "configure"
+#line 2557 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -2466,12 +2578,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2470: checking for $ac_func" >&5
+echo "configure:2582: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2475 "configure"
+#line 2587 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2494,7 +2606,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2520,7 +2632,7 @@ fi
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2524: checking stack direction for C alloca" >&5
+echo "configure:2636: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2528,7 +2640,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 2532 "configure"
+#line 2644 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -2547,7 +2659,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:2551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -2569,17 +2681,17 @@ EOF
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:2573: checking for vfork.h" >&5
+echo "configure:2685: checking for vfork.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2578 "configure"
+#line 2690 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2695: \"$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*
@@ -2604,18 +2716,18 @@ else
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:2608: checking for working vfork" >&5
+echo "configure:2720: checking for working vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:2614: checking for vfork" >&5
+echo "configure:2726: checking for vfork" >&5
if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2619 "configure"
+#line 2731 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vfork(); below. */
@@ -2638,7 +2750,7 @@ vfork();
; return 0; }
EOF
-if { (eval echo configure:2642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vfork=yes"
else
@@ -2660,7 +2772,7 @@ fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
else
cat > conftest.$ac_ext <<EOF
-#line 2664 "configure"
+#line 2776 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
@@ -2755,7 +2867,7 @@ main() {
}
}
EOF
-if { (eval echo configure:2759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_vfork_works=yes
else
@@ -2787,12 +2899,12 @@ fi
for ac_func in _doprnt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2791: checking for $ac_func" >&5
+echo "configure:2903: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2796 "configure"
+#line 2908 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2815,7 +2927,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2845,12 +2957,12 @@ done
for ac_func in _doprnt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2849: checking for $ac_func" >&5
+echo "configure:2961: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2854 "configure"
+#line 2966 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2873,7 +2985,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2901,19 +3013,19 @@ done
for v in $vars; do
echo $ac_n "checking for $v""... $ac_c" 1>&6
-echo "configure:2905: checking for $v" >&5
+echo "configure:3017: checking for $v" >&5
if eval "test \"`echo '$''{'libiberty_cv_var_$v'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2910 "configure"
+#line 3022 "configure"
#include "confdefs.h"
int *p;
int main() {
extern int $v []; p = $v;
; return 0; }
EOF
-if { (eval echo configure:2917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "libiberty_cv_var_$v=yes"
else
@@ -2936,15 +3048,91 @@ EOF
echo "$ac_t""no" 1>&6
fi
done
+
+ # special check for _system_configuration because AIX <4.3.2 do not
+ # contain the `physmem' member.
+ echo $ac_n "checking for external symbol _system_configuration""... $ac_c" 1>&6
+echo "configure:3056: checking for external symbol _system_configuration" >&5
+ cat > conftest.$ac_ext <<EOF
+#line 3058 "configure"
+#include "confdefs.h"
+#include <sys/systemcfg.h>
+int main() {
+double x = _system_configuration.physmem;
+; return 0; }
+EOF
+if { (eval echo configure:3065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE__SYSTEM_CONFIGURATION 1
+EOF
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ echo "$ac_t""no" 1>&6
+fi
+rm -f conftest*
+
+ echo $ac_n "checking whether canonicalize_file_name must be declared""... $ac_c" 1>&6
+echo "configure:3081: checking whether canonicalize_file_name must be declared" >&5
+if eval "test \"`echo '$''{'libiberty_cv_decl_needed_canonicalize_file_name'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3086 "configure"
+#include "confdefs.h"
+
+#include "confdefs.h"
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+char *(*pfn) = (char *(*)) canonicalize_file_name
+; return 0; }
+EOF
+if { (eval echo configure:3108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ libiberty_cv_decl_needed_canonicalize_file_name=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ libiberty_cv_decl_needed_canonicalize_file_name=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libiberty_cv_decl_needed_canonicalize_file_name" 1>&6
+if test $libiberty_cv_decl_needed_canonicalize_file_name = yes; then
+ cat >> confdefs.h <<\EOF
+#define NEED_DECLARATION_CANONICALIZE_FILE_NAME 1
+EOF
+
+fi
+
for ac_func in $checkfuncs
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2943: checking for $ac_func" >&5
+echo "configure:3131: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2948 "configure"
+#line 3136 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2967,7 +3155,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2993,21 +3181,21 @@ done
fi
-for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
+for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3001: checking for $ac_hdr" >&5
+echo "configure:3189: 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
-#line 3006 "configure"
+#line 3194 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3199: \"$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*
@@ -3036,12 +3224,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3040: checking for $ac_func" >&5
+echo "configure:3228: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3045 "configure"
+#line 3233 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3064,7 +3252,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3089,7 +3277,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3093: checking for working mmap" >&5
+echo "configure:3281: 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
@@ -3097,7 +3285,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3101 "configure"
+#line 3289 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3125,24 +3313,11 @@ else
#include <fcntl.h>
#include <sys/mman.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+# include <unistd.h>
+# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@@ -3250,7 +3425,7 @@ main()
}
EOF
-if { (eval echo configure:3254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3429: \"$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
@@ -3274,7 +3449,7 @@ fi
echo $ac_n "checking for working strncmp""... $ac_c" 1>&6
-echo "configure:3278: checking for working strncmp" >&5
+echo "configure:3453: checking for working strncmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_strncmp_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3282,7 +3457,7 @@ else
ac_cv_func_strncmp_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 3286 "configure"
+#line 3461 "configure"
#include "confdefs.h"
/* Test by Jim Wilson and Kaveh Ghazi.
@@ -3346,7 +3521,7 @@ main ()
}
EOF
-if { (eval echo configure:3350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_strncmp_works=yes
else
@@ -3510,6 +3685,7 @@ s%@includedir@%$includedir%g
s%@oldincludedir@%$oldincludedir%g
s%@infodir@%$infodir%g
s%@mandir@%$mandir%g
+s%@libiberty_topdir@%$libiberty_topdir%g
s%@MAINT@%$MAINT%g
s%@NOTMAINT@%$NOTMAINT%g
s%@MAKEINFO@%$MAKEINFO%g
@@ -3759,6 +3935,7 @@ with_build_subdir=${with_build_subdir}
with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
libiberty_topdir=${libiberty_topdir}
EOF
diff --git a/libiberty/configure.in b/libiberty/configure.in
index a8dc66fa83c..8a58d12c1e2 100644
--- a/libiberty/configure.in
+++ b/libiberty/configure.in
@@ -35,6 +35,7 @@ if test "${srcdir}" = "."; then
else
libiberty_topdir="${srcdir}/.."
fi
+AC_SUBST(libiberty_topdir)
AC_CONFIG_AUX_DIR($libiberty_topdir)
dnl Very limited version of automake's enable-maintainer-mode
@@ -141,18 +142,17 @@ AC_SUBST_FILE(host_makefile_frag)
# It's OK to check for header files. Although the compiler may not be
# able to link anything, it had better be able to at least compile
# something.
-AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h)
+AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h)
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
libiberty_AC_DECLARE_ERRNO
AC_CHECK_TYPE(uintptr_t, unsigned long)
-
-if test $ac_cv_type_uintptr_t = yes
-then
- AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.])
-fi
+# Given the above check, we always have uintptr_t or a fallback
+# definition. So define HAVE_UINTPTR_T in case any imported code
+# relies on it.
+AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.])
AC_TYPE_PID_T
@@ -206,6 +206,8 @@ funcs="$funcs waitpid"
vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
+checkfuncs="$checkfuncs realpath canonicalize_file_name"
+checkfuncs="$checkfuncs pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl"
# These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h.
@@ -217,6 +219,8 @@ if test "x" = "y"; then
AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf)
AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal)
AC_CHECK_FUNCS(sysconf times sbrk gettimeofday ffs)
+ AC_CHECK_FUNCS(realpath canonicalize_file_name)
+ AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl)
AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.])
AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
@@ -422,6 +426,18 @@ if test -z "${setobjs}"; then
AC_MSG_RESULT(no)
fi
done
+
+ # special check for _system_configuration because AIX <4.3.2 do not
+ # contain the `physmem' member.
+ AC_MSG_CHECKING([for external symbol _system_configuration])
+ AC_TRY_COMPILE([#include <sys/systemcfg.h>],
+ [double x = _system_configuration.physmem;],
+ [AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE__SYSTEM_CONFIGURATION, 1,
+ [Define if you have the _system_configuration variable.])],
+ [AC_MSG_RESULT([no])])
+
+ libiberty_NEED_DECLARATION(canonicalize_file_name)
AC_CHECK_FUNCS($checkfuncs)
fi
@@ -455,5 +471,6 @@ with_build_subdir=${with_build_subdir}
with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
libiberty_topdir=${libiberty_topdir}
)
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 9adf5fd0503..5dcce5560ee 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -3398,7 +3398,7 @@ demangle_substitution (dm, template_p)
}
else
{
- RETURN_IF_ERROR (result_add (dm, "std::basic_istream<char, std::char_traints<char> >"));
+ RETURN_IF_ERROR (result_add (dm, "std::basic_istream<char, std::char_traits<char> >"));
new_last_source_name = "basic_istream";
}
*template_p = 0;
diff --git a/libiberty/cplus-dem.c b/libiberty/cplus-dem.c
index f42d6181d40..199f767736d 100644
--- a/libiberty/cplus-dem.c
+++ b/libiberty/cplus-dem.c
@@ -11,6 +11,15 @@ modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
+In addition to the permissions in the GNU Library General Public
+License, the Free Software Foundation gives you unlimited permission
+to link the compiled version of this file into combinations with other
+programs, and to distribute those combinations without any restriction
+coming from the use of this file. (The Library Public License
+restrictions do apply in other respects; for example, they cover
+modification of the file, and distribution when not linked into a
+combined executable.)
+
Libiberty 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
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
index 7d9c181d219..841151ce5a2 100644
--- a/libiberty/functions.texi
+++ b/libiberty/functions.texi
@@ -408,6 +408,41 @@ can be found, return @code{NULL}.
@end deftypefn
+@c lrealpath.c:25
+@deftypefn Replacement {const char*} lrealpath (const char *@var{name})
+
+Given a pointer to a string containing a pathname, returns a canonical
+version of the filename. Symlinks will be resolved, and ``.'' and ``..''
+components will be simplified. The returned value will be allocated using
+@code{malloc}, or @code{NULL} will be returned on a memory allocation error.
+
+@end deftypefn
+
+@c make-relative-prefix.c:24
+@deftypefn Extension {const char*} make_relative_prefix (const char *@var{progname}, const char *@var{bin_prefix}, const char *@var{prefix})
+
+Given three paths @var{progname}, @var{bin_prefix}, @var{prefix},
+return the path that is in the same position relative to
+@var{progname}'s directory as @var{prefix} is relative to
+@var{bin_prefix}. That is, a string starting with the directory
+portion of @var{progname}, followed by a relative pathname of the
+difference between @var{bin_prefix} and @var{prefix}.
+
+If @var{progname} does not contain any directory separators,
+@code{make_relative_prefix} will search @env{PATH} to find a program
+named @var{progname}. Also, if @var{progname} is a symbolic link,
+the symbolic link will be resolved.
+
+For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta},
+@var{prefix} is @code{/alpha/beta/gamma/omega/}, and @var{progname} is
+@code{/red/green/blue/gcc}, then this function will return
+@code{/red/green/blue/../../omega/}.
+
+The return value is normally allocated via @code{malloc}. If no
+relative prefix can be found, return @code{NULL}.
+
+@end deftypefn
+
@c make-temp-file.c:138
@deftypefn Replacement char* make_temp_file (const char *@var{suffix})
diff --git a/libiberty/getopt.c b/libiberty/getopt.c
index 2402a39e2f8..a1e482763c1 100644
--- a/libiberty/getopt.c
+++ b/libiberty/getopt.c
@@ -333,8 +333,8 @@ exchange (argv)
nonoption_flags_len = nonoption_flags_max_len = 0;
else
{
- memset (__mempcpy (new_str, __getopt_nonoption_flags,
- nonoption_flags_max_len),
+ memset (mempcpy (new_str, __getopt_nonoption_flags,
+ nonoption_flags_max_len),
'\0', top + 1 - nonoption_flags_max_len);
nonoption_flags_max_len = top + 1;
__getopt_nonoption_flags = new_str;
@@ -444,7 +444,7 @@ _getopt_initialize (argc, argv, optstring)
if (__getopt_nonoption_flags == NULL)
nonoption_flags_max_len = -1;
else
- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+ memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
'\0', nonoption_flags_max_len - len);
}
}
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c
index 6bf59ff7378..9426a185178 100644
--- a/libiberty/hashtab.c
+++ b/libiberty/hashtab.c
@@ -45,6 +45,10 @@ Boston, MA 02111-1307, USA. */
#include <string.h>
#endif
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+
#include <stdio.h>
#include "libiberty.h"
@@ -306,16 +310,18 @@ htab_expand (htab)
PTR *olimit;
PTR *p;
PTR *nentries;
+ size_t nsize;
oentries = htab->entries;
olimit = oentries + htab->size;
- htab->size = higher_prime_number (htab->size * 2);
+ nsize = higher_prime_number (htab->size * 2);
- nentries = (PTR *) (*htab->alloc_f) (htab->size, sizeof (PTR *));
+ nentries = (PTR *) (*htab->alloc_f) (nsize, sizeof (PTR));
if (nentries == NULL)
return 0;
htab->entries = nentries;
+ htab->size = nsize;
htab->n_elements -= htab->n_deleted;
htab->n_deleted = 0;
diff --git a/libiberty/libiberty.texi b/libiberty/libiberty.texi
index 4b60d6a07fb..b57e3c530e1 100644
--- a/libiberty/libiberty.texi
+++ b/libiberty/libiberty.texi
@@ -29,7 +29,7 @@ This edition accompanies GCC 3, September 2001.
Copyright @copyright{} 2001 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
+ under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
@@ -58,7 +58,7 @@ notice identical to this one except for the removal of this paragraph
Copyright @copyright{} 2001 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
+ under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
diff --git a/libiberty/lrealpath.c b/libiberty/lrealpath.c
new file mode 100644
index 00000000000..b001b38ef66
--- /dev/null
+++ b/libiberty/lrealpath.c
@@ -0,0 +1,128 @@
+/* Libiberty realpath. Like realpath, but more consistent behavior.
+ Based on gdb_realpath from GDB.
+
+ Copyright 2003 Free Software Foundation, Inc.
+
+ This file is part of the libiberty library.
+
+ 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. */
+
+/*
+
+@deftypefn Replacement {const char*} lrealpath (const char *@var{name})
+
+Given a pointer to a string containing a pathname, returns a canonical
+version of the filename. Symlinks will be resolved, and ``.'' and ``..''
+components will be simplified. The returned value will be allocated using
+@code{malloc}, or @code{NULL} will be returned on a memory allocation error.
+
+@end deftypefn
+
+*/
+
+#include "config.h"
+#include "ansidecl.h"
+#include "libiberty.h"
+
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+/* On GNU libc systems the declaration is only visible with _GNU_SOURCE. */
+#if defined(HAVE_CANONICALIZE_FILE_NAME) \
+ && defined(NEED_DECLARATION_CANONICALIZE_FILE_NAME)
+extern char *canonicalize_file_name (const char *);
+#endif
+
+#if defined(HAVE_REALPATH)
+# if defined (PATH_MAX)
+# define REALPATH_LIMIT PATH_MAX
+# else
+# if defined (MAXPATHLEN)
+# define REALPATH_LIMIT MAXPATHLEN
+# endif
+# endif
+#endif
+
+char *
+lrealpath (filename)
+ const char *filename;
+{
+ /* Method 1: The system has a compile time upper bound on a filename
+ path. Use that and realpath() to canonicalize the name. This is
+ the most common case. Note that, if there isn't a compile time
+ upper bound, you want to avoid realpath() at all costs. */
+#if defined(REALPATH_LIMIT)
+ {
+ char buf[REALPATH_LIMIT];
+ const char *rp = realpath (filename, buf);
+ if (rp == NULL)
+ rp = filename;
+ return strdup (rp);
+ }
+#endif /* REALPATH_LIMIT */
+
+ /* Method 2: The host system (i.e., GNU) has the function
+ canonicalize_file_name() which malloc's a chunk of memory and
+ returns that, use that. */
+#if defined(HAVE_CANONICALIZE_FILE_NAME)
+ {
+ char *rp = canonicalize_file_name (filename);
+ if (rp == NULL)
+ return strdup (filename);
+ else
+ return rp;
+ }
+#endif
+
+ /* Method 3: Now we're getting desperate! The system doesn't have a
+ compile time buffer size and no alternative function. Query the
+ OS, using pathconf(), for the buffer limit. Care is needed
+ though, some systems do not limit PATH_MAX (return -1 for
+ pathconf()) making it impossible to pass a correctly sized buffer
+ to realpath() (it could always overflow). On those systems, we
+ skip this. */
+#if defined (HAVE_REALPATH) && defined (HAVE_UNISTD_H)
+ {
+ /* Find out the max path size. */
+ long path_max = pathconf ("/", _PC_PATH_MAX);
+ if (path_max > 0)
+ {
+ /* PATH_MAX is bounded. */
+ char *buf, *rp, *ret;
+ buf = malloc (path_max);
+ if (buf == NULL)
+ return NULL;
+ rp = realpath (filename, buf);
+ ret = strdup (rp ? rp : filename);
+ free (buf);
+ return ret;
+ }
+ }
+#endif
+
+ /* This system is a lost cause, just duplicate the filename. */
+ return strdup (filename);
+}
diff --git a/libiberty/make-relative-prefix.c b/libiberty/make-relative-prefix.c
index c208cdce024..dc4f8d5259d 100644
--- a/libiberty/make-relative-prefix.c
+++ b/libiberty/make-relative-prefix.c
@@ -23,16 +23,25 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
@deftypefn Extension {const char*} make_relative_prefix (const char *@var{progname}, const char *@var{bin_prefix}, const char *@var{prefix})
-Given three strings @var{progname}, @var{bin_prefix}, @var{prefix}, return a string
-that gets to @var{prefix} starting with the directory portion of @var{progname} and
-a relative pathname of the difference between @var{bin_prefix} and @var{prefix}.
-
-For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta}, @var{prefix}
-is @code{/alpha/beta/gamma/omega/}, and @var{progname} is @code{/red/green/blue/gcc},
-then this function will return @code{/red/green/blue/../../omega/}.
-
-The return value is normally allocated via @code{malloc}. If no relative prefix
-can be found, return @code{NULL}.
+Given three paths @var{progname}, @var{bin_prefix}, @var{prefix},
+return the path that is in the same position relative to
+@var{progname}'s directory as @var{prefix} is relative to
+@var{bin_prefix}. That is, a string starting with the directory
+portion of @var{progname}, followed by a relative pathname of the
+difference between @var{bin_prefix} and @var{prefix}.
+
+If @var{progname} does not contain any directory separators,
+@code{make_relative_prefix} will search @env{PATH} to find a program
+named @var{progname}. Also, if @var{progname} is a symbolic link,
+the symbolic link will be resolved.
+
+For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta},
+@var{prefix} is @code{/alpha/beta/gamma/omega/}, and @var{progname} is
+@code{/red/green/blue/gcc}, then this function will return
+@code{/red/green/blue/../../omega/}.
+
+The return value is normally allocated via @code{malloc}. If no
+relative prefix can be found, return @code{NULL}.
@end deftypefn
@@ -223,19 +232,14 @@ make_relative_prefix (progname, bin_prefix, prefix)
int prog_num, bin_num, prefix_num;
int i, n, common;
int needed_len;
- char *ret, *ptr;
+ char *ret, *ptr, *full_progname = NULL;
if (progname == NULL || bin_prefix == NULL || prefix == NULL)
return NULL;
- prog_dirs = split_directories (progname, &prog_num);
- bin_dirs = split_directories (bin_prefix, &bin_num);
- if (bin_dirs == NULL || prog_dirs == NULL)
- return NULL;
-
/* If there is no full pathname, try to find the program by checking in each
of the directories specified in the PATH environment variable. */
- if (prog_num == 1)
+ if (lbasename (progname) == progname)
{
char *temp;
@@ -278,14 +282,7 @@ make_relative_prefix (progname, bin_prefix, prefix)
#endif
)
{
- free_split_directories (prog_dirs);
progname = nstore;
- prog_dirs = split_directories (progname, &prog_num);
- if (prog_dirs == NULL)
- {
- free_split_directories (bin_dirs);
- return NULL;
- }
break;
}
@@ -299,6 +296,16 @@ make_relative_prefix (progname, bin_prefix, prefix)
}
}
+ full_progname = lrealpath (progname);
+ if (full_progname == NULL)
+ return NULL;
+
+ prog_dirs = split_directories (full_progname, &prog_num);
+ bin_dirs = split_directories (bin_prefix, &bin_num);
+ free (full_progname);
+ if (bin_dirs == NULL || prog_dirs == NULL)
+ return NULL;
+
/* Remove the program name from comparison of directory names. */
prog_num--;
diff --git a/libiberty/physmem.c b/libiberty/physmem.c
new file mode 100644
index 00000000000..f64e07c74d4
--- /dev/null
+++ b/libiberty/physmem.c
@@ -0,0 +1,305 @@
+/* Calculate the size of physical memory.
+ Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, 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. */
+
+/* Written by Paul Eggert. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if HAVE_SYS_PSTAT_H
+# include <sys/pstat.h>
+#endif
+
+#if HAVE_SYS_SYSMP_H
+# include <sys/sysmp.h>
+#endif
+
+#if HAVE_SYS_SYSINFO_H && HAVE_MACHINE_HAL_SYSINFO_H
+# include <sys/sysinfo.h>
+# include <machine/hal_sysinfo.h>
+#endif
+
+#if HAVE_SYS_TABLE_H
+# include <sys/table.h>
+#endif
+
+#include <sys/types.h>
+
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
+#if HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
+
+#if HAVE_SYS_SYSTEMCFG_H
+# include <sys/systemcfg.h>
+#endif
+
+#ifdef _WIN32
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* MEMORYSTATUSEX is missing from older windows headers, so define
+ a local replacement. */
+typedef struct
+{
+ DWORD dwLength;
+ DWORD dwMemoryLoad;
+ DWORDLONG ullTotalPhys;
+ DWORDLONG ullAvailPhys;
+ DWORDLONG ullTotalPageFile;
+ DWORDLONG ullAvailPageFile;
+ DWORDLONG ullTotalVirtual;
+ DWORDLONG ullAvailVirtual;
+ DWORDLONG ullAvailExtendedVirtual;
+} lMEMORYSTATUSEX;
+typedef WINBOOL (WINAPI *PFN_MS_EX) (lMEMORYSTATUSEX*);
+#endif
+
+#include "libiberty.h"
+
+/* Return the total amount of physical memory. */
+double
+physmem_total ()
+{
+#if defined _SC_PHYS_PAGES && defined _SC_PAGESIZE
+ { /* This works on linux-gnu, solaris2 and cygwin. */
+ double pages = sysconf (_SC_PHYS_PAGES);
+ double pagesize = sysconf (_SC_PAGESIZE);
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+#endif
+
+#if HAVE_PSTAT_GETSTATIC
+ { /* This works on hpux11. */
+ struct pst_static pss;
+ if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0))
+ {
+ double pages = pss.physical_memory;
+ double pagesize = pss.page_size;
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+ }
+#endif
+
+#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
+ { /* This works on irix6. */
+ struct rminfo realmem;
+ if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
+ {
+ double pagesize = sysconf (_SC_PAGESIZE);
+ double pages = realmem.physmem;
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+ }
+#endif
+
+#if HAVE_GETSYSINFO && defined GSI_PHYSMEM
+ { /* This works on Tru64 UNIX V4/5. */
+ int physmem;
+
+ if (getsysinfo (GSI_PHYSMEM, (caddr_t) &physmem, sizeof (physmem),
+ NULL, NULL, NULL) == 1)
+ {
+ double kbytes = physmem;
+
+ if (0 <= kbytes)
+ return kbytes * 1024.0;
+ }
+ }
+#endif
+
+#if HAVE_SYSCTL && defined HW_PHYSMEM
+ { /* This works on *bsd and darwin. */
+ unsigned int physmem;
+ size_t len = sizeof physmem;
+ static int mib[2] = { CTL_HW, HW_PHYSMEM };
+
+ if (sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0
+ && len == sizeof (physmem))
+ return (double) physmem;
+ }
+#endif
+
+#if HAVE__SYSTEM_CONFIGURATION
+ /* This works on AIX 4.3.3+. */
+ return _system_configuration.physmem;
+#endif
+
+#if defined _WIN32
+ { /* this works on windows */
+ PFN_MS_EX pfnex;
+ HMODULE h = GetModuleHandle ("kernel32.dll");
+
+ if (!h)
+ return 0.0;
+
+ /* Use GlobalMemoryStatusEx if available. */
+ if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
+ {
+ lMEMORYSTATUSEX lms_ex;
+ lms_ex.dwLength = sizeof lms_ex;
+ if (!pfnex (&lms_ex))
+ return 0.0;
+ return (double) lms_ex.ullTotalPhys;
+ }
+
+ /* Fall back to GlobalMemoryStatus which is always available.
+ but returns wrong results for physical memory > 4GB. */
+ else
+ {
+ MEMORYSTATUS ms;
+ GlobalMemoryStatus (&ms);
+ return (double) ms.dwTotalPhys;
+ }
+ }
+#endif
+
+ /* Return 0 if we can't determine the value. */
+ return 0;
+}
+
+/* Return the amount of physical memory available. */
+double
+physmem_available ()
+{
+#if defined _SC_AVPHYS_PAGES && defined _SC_PAGESIZE
+ { /* This works on linux-gnu, solaris2 and cygwin. */
+ double pages = sysconf (_SC_AVPHYS_PAGES);
+ double pagesize = sysconf (_SC_PAGESIZE);
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+#endif
+
+#if HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC
+ { /* This works on hpux11. */
+ struct pst_static pss;
+ struct pst_dynamic psd;
+ if (0 <= pstat_getstatic (&pss, sizeof pss, 1, 0)
+ && 0 <= pstat_getdynamic (&psd, sizeof psd, 1, 0))
+ {
+ double pages = psd.psd_free;
+ double pagesize = pss.page_size;
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+ }
+#endif
+
+#if HAVE_SYSMP && defined MP_SAGET && defined MPSA_RMINFO && defined _SC_PAGESIZE
+ { /* This works on irix6. */
+ struct rminfo realmem;
+ if (sysmp (MP_SAGET, MPSA_RMINFO, &realmem, sizeof realmem) == 0)
+ {
+ double pagesize = sysconf (_SC_PAGESIZE);
+ double pages = realmem.availrmem;
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+ }
+#endif
+
+#if HAVE_TABLE && defined TBL_VMSTATS
+ { /* This works on Tru64 UNIX V4/5. */
+ struct tbl_vmstats vmstats;
+
+ if (table (TBL_VMSTATS, 0, &vmstats, 1, sizeof (vmstats)) == 1)
+ {
+ double pages = vmstats.free_count;
+ double pagesize = vmstats.pagesize;
+
+ if (0 <= pages && 0 <= pagesize)
+ return pages * pagesize;
+ }
+ }
+#endif
+
+#if HAVE_SYSCTL && defined HW_USERMEM
+ { /* This works on *bsd and darwin. */
+ unsigned int usermem;
+ size_t len = sizeof usermem;
+ static int mib[2] = { CTL_HW, HW_USERMEM };
+
+ if (sysctl (mib, ARRAY_SIZE (mib), &usermem, &len, NULL, 0) == 0
+ && len == sizeof (usermem))
+ return (double) usermem;
+ }
+#endif
+
+#if defined _WIN32
+ { /* this works on windows */
+ PFN_MS_EX pfnex;
+ HMODULE h = GetModuleHandle ("kernel32.dll");
+
+ if (!h)
+ return 0.0;
+
+ /* Use GlobalMemoryStatusEx if available. */
+ if ((pfnex = (PFN_MS_EX) GetProcAddress (h, "GlobalMemoryStatusEx")))
+ {
+ lMEMORYSTATUSEX lms_ex;
+ lms_ex.dwLength = sizeof lms_ex;
+ if (!pfnex (&lms_ex))
+ return 0.0;
+ return (double) lms_ex.ullAvailPhys;
+ }
+
+ /* Fall back to GlobalMemoryStatus which is always available.
+ but returns wrong results for physical memory > 4GB */
+ else
+ {
+ MEMORYSTATUS ms;
+ GlobalMemoryStatus (&ms);
+ return (double) ms.dwAvailPhys;
+ }
+ }
+#endif
+
+ /* Guess 25% of physical memory. */
+ return physmem_total () / 4;
+}
+
+
+#if DEBUG
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+ printf ("%12.f %12.f\n", physmem_total (), physmem_available ());
+ exit (0);
+}
+
+#endif /* DEBUG */
+
+/*
+Local Variables:
+compile-command: "gcc -DDEBUG -DHAVE_CONFIG_H -I.. -g -O -Wall -W physmem.c"
+End:
+*/
diff --git a/libiberty/regex.c b/libiberty/regex.c
index f9d9a4e26dc..e3439b2ff63 100644
--- a/libiberty/regex.c
+++ b/libiberty/regex.c
@@ -8200,7 +8200,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
if (msg_size > errbuf_size)
{
#if defined HAVE_MEMPCPY || defined _LIBC
- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
#else
memcpy (errbuf, msg, errbuf_size - 1);
errbuf[errbuf_size - 1] = 0;
diff --git a/libiberty/testsuite/test-demangle.c b/libiberty/testsuite/test-demangle.c
index 82f263e88af..6e5d0b4b973 100644
--- a/libiberty/testsuite/test-demangle.c
+++ b/libiberty/testsuite/test-demangle.c
@@ -65,7 +65,7 @@ getline(buf)
line: copy this line into the buffer and return. */
while (c != EOF && c != '\n')
{
- if (count >= alloc)
+ if (count + 1 >= alloc)
{
alloc *= 2;
data = xrealloc (data, alloc);
diff --git a/libiberty/vsprintf.c b/libiberty/vsprintf.c
index b69e9bc9ca6..9f09d7e2758 100644
--- a/libiberty/vsprintf.c
+++ b/libiberty/vsprintf.c
@@ -26,9 +26,13 @@ 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 <ansidecl.h>
+#ifdef ANSI_PROTOTYPES
+#include <stdarg.h>
+#else
#include <varargs.h>
+#endif
#include <stdio.h>
-#include <ansidecl.h>
#undef vsprintf
#if defined _IOSTRG && defined _IOWRT
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index d9c65cc89b1..3b6becac154 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,1800 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-06-22 Bryce McKinlay <mckinlay@redhat.com>
+
+ Fix PR libgcj/12475
+ * gnu/gcj/runtime/StackTrace.java (finalize): Declare.
+ * gnu/gcj/runtime/natStackTrace.cc (finalize): New. Free "addrs".
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-03 Michael Koch <konqueror@gmx.de>
+
+ Fixes PR libgcj/14695:
+ * java/net/NetworkInterface.java
+ (getByName): Return null when no interface was found.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-24 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * prims.cc (catch_segv): Unblock correct signal.
+ (catch_fpe): Likewise.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-20 Andrew Haley <aph@redhat.com>
+
+ * prims.cc (unblock_signal): New function.
+ (catch_segv): Use it.
+ (catch_fpe): Likewise.
+
+ * include/i386-signal.h (RESTORE): New.
+ (INIT_SEGV): Set restorer.
+ (INIT_FPE): Likewise.
+
+2003-08-08 Kean Johnston <jkj@sco.com>
+
+ * java/io/natFilePosix.cc: HAVE_READDIR_R is broken on SCO. Undefine.
+ If MAXPATHLEN is not defined by the system, define it.
+ * java/io/natFileDescriptorPosix.cc: Ditto.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-11 Michael Koch <konqueror@gmx.de>
+
+ * gnu/gcj/convert/natIconv.cc
+ (iconv_init): Fixed possible memory leak by releasing allocated iconv
+ handle.
+
+2003-07-11 Jeff Sturm <jsturm@one-point.com>
+
+ PR libgcj/10886:
+ * gnu/java/rmi/server/UnicastRemoteCall.java (returnValue):
+ Test for empty vector.
+
+2003-07-11 Jeff Sturm <jsturm@one-point.com>
+
+ PR libgcj/10838:
+ * java/io/ObjectInputStream (enableResolveObject):
+ Fixed spelling of permission name.
+
+2003-07-11 Matt Kraai <kraii@alumni.cmu.edu>
+
+ * gnu/gcj/runtime/SharedLibLoader.java: Fix misspelling.
+ * gnu/gcj/runtime/natSharedLibLoader.cc: Likewise.
+ * java/awt/im/InputContext.java: Remove a redundant
+ partial line.
+
+2003-07-11 Jeff Sturm <jsturm@one-point.com>
+
+ * gnu/gcj/runtime/FirstThread.java (KinputASCII, KoutputASCII):
+ Create dummy references for static linking.
+
+2003-07-07 Adam Megacz <adam@xwt.org>
+
+ * posix.cc: added #include<stdio.h>
+
+2003-06-30 Gary Benson <gbenson@redhat.com>
+
+ For PR libgcj/11349:
+ * javax/naming/spi/NamingManager.java (getURLContext): Use
+ correct name for factory class.
+
+2003-06-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+ * include/powerpc-signal.h: New File.
+ * configure.in: Use it.
+ * configure: Regenerated.
+
+2003-06-10 Andrew Haley <aph@redhat.com>
+
+ * include/x86_64-signal.h (MAKE_THROW_FRAME): Mark sigcontext on
+ stack volatile to prevent optimization from removing it.
+
+2003-06-06 Mark Wielaard <mark@klomp.org>
+
+ * java/security/Security.java (secprops): Initialize.
+ (loadProviders): Return boolean.
+ (static): Check result of loadProvider calls. If necessary
+ display WARNING and fallback to Gnu provider.
+
+2002-06-06 James Clark <jjc@jclark.com>
+
+ Fix for PR libgcj/8738:
+ * gnu/gcj/convert/UnicodeToBytes.java (havePendingBytes): New method.
+ * gnu/gcj/convert/Output_SJIS.java (havePendingBytes): Likewise.
+ * gnu/gcj/convert/Output_EUCJIS.java (havePendingBytes): Likewise.
+ * gnu/gcj/convert/Output_UTF8.java (havePendingBytes): Likewise.
+ (write): Always decrease avail when count is increased.
+ * java/lang/natString.cc (getBytes): Check converter havePendingBytes()
+ and whether output buffer is full before increasing size.
+
+2002-06-06 Mark Wielaard <mark@klomp dot org>
+
+ * java/io/PrintStream.java (writeChars(char[],int, int)):
+ Check converter.havePendingBytes().
+ (writeChars(String,int,int)): Likewise.
+ * java/io/OutputStreamWriter.java (writeChars(char[], int, int)):
+ Check converter.havePendingBytes() and flush buffer when stalled.
+
+ * mauve-libgcj: Don't ignore java.lang.String.surrogate.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-06 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc: Reverted previous patch.
+
+2003-05-01 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/10582:
+ * verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow):
+ Removed.
+ (type::compatible): Use _Jv_IsAssignableFrom.
+ * java/lang/natClass.cc (iindex_mutex_initialized): Now static.
+ (_Jv_IsAssignableFrom): Work even when source or target class is
+ not prepared.
+
+2003-04-15 Mohan Embar <gnustuff@thisiscool.com>
+
+ * include/win32.h: added dummy ECONNREFUSED define and
+ _Jv_select() declaration
+ * win32.cc (_Jv_select): placeholder implementation
+ (_Jv_platform_initProperties): Fix by Ranjit
+ Mathew (rmathew@hotmail.com): use generic names
+ like "x86" for the "os.arch" property to be consistent with
+ what Sun's JDK produces. Use the wProcessorArchitecture
+ member of the Win32 SYSTEM_INFO structure, filled in a call
+ to GetSystemInfo( ), instead of dwProcessorType
+ * gnu/java/nio/natSocketChannelImpl.cc (SocketRead): use
+ elements(data) and explicitly cast to char* on platforms
+ where jbyte is not signed char
+ (SocketWrite): idem
+
+2003-03-29 Mohan Embar <gnustuff@thisiscool.com>
+
+ * include/jvm.h: (_Jv_GetNbArgs) added
+ (_Jv_GetSafeArg) added
+ (_Jv_SetArgs) added
+ * prims.cc: (_Jv_GetNbArgs) implemented
+ (_Jv_GetSafeArg) implemented
+ (_Jv_SetArgs) implemented
+ (_Jv_RunMain) use _Jv_SetArgs() instead of explicitly
+ setting _Jv_argc and _Jv_argv
+ * posix.cc: (_Jv_ThisExecutable) use _Jv_GetSafeArg()
+ instead of _Jv_argv
+ * java/lang/natRuntime.cc: (insertSystemProperties) use
+ _Jv_GetSafeArg() instead of _Jv_argv
+
+2003-04-19 Jerry Quinn <jlquinn@optonline.net>
+
+ * java/math/BigInteger.java (probablePrime): New.
+ * java/math/BigDecimal.java (unscaledValue): New.
+
+2003-04-19 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/io/File.java (getAbsolutePath): On Windows, take care
+ of paths like "C:", "G:foo\bar", etc.
+ (getName): Make it work correctly on Windows.
+ (getParent): Make it work correctly on Windows. For UNIX,
+ fix bug that causes "/" to be returned as the parent of "/",
+ instead of null as returned by Sun's JRE.
+
+ * java/io/natFileWin32.cc: Change copyright owner to FSF.
+
+2003-04-16 Tom Tromey <tromey@redhat.com>
+
+ * mauve-libgcj: Disable some tests we can't compile.
+
+2003-04-10 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc (pop64): Removed.
+ (verify_instructions_0) <op_pop2>: Inline code. Don't throw
+ exception if top-of-stack is narrow.
+ (initialize_stack): Check to ensure that <init> is not static and
+ <clinit> is.
+
+2003-03-29 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * configure.in (HAVE_BACKTRACE) [s390*-*-linux*]: Define.
+ * configure: Regenerate.
+
+2003-03-14 Jeroen Frijters <jeroen@sumatra.nl>
+
+ * java/io/ObjectInputStream.java (readObject): Cleaned up the class
+ hierarchy loop.
+ (readFields(Object,ObjectStreamField[],boolean)): Changed argument
+ list to Object,ObjectStreamClass, moved callReadMethod code up into
+ readObject and added Class argument to all setXxxField calls.
+ (callReadMethod): Changed Class argument to ObjectStreamClass to be
+ consistent with ObjectOutputStream and to facilitate caching the
+ Method in the future.
+ (setBooleanField): Added Class argument.
+ (setByteField): Likewise.
+ (setCharField): Likewise.
+ (setDoubleField): Likewise.
+ (setFloatField): Likewise.
+ (setIntField): Likewise.
+ (setLongField): Likewise.
+ (setShortField): Likewise.
+ (setObjectField): Likewise.
+ * java/io/ObjectOutputStream.java (writeObject): Cleaned up the
+ class hierarchy loop.
+ (defaultWriteObject): Call writeFields with new argument list.
+ (writeFields(Object,ObjectStreamField[],boolean): Changed argument
+ list to Object,ObjectStreamClass, moved callWriteMethod up into
+ writeObject and added Class argument to all getXxxField calls.
+ (callWriteMethod): Added ObjectStreamClass argument to be able to
+ get the proper class to call getMethod on (each class can have (or
+ not have) its own writeObject method).
+ (getBooleanField): Added Class argument.
+ (getByteField): Likewise.
+ (getCharField): Likewise.
+ (getDoubleField): Likewise.
+ (getFloatField): Likewise.
+ (getIntField): Likewise.
+ (getLongField): Likewise.
+ (getShortField): Likewise.
+ (getObjectField): Likewise.
+ * java/io/ObjectStreamClass.java (hasReadMethod): Added method to
+ facilitate caching the Method object in the future.
+
+2003-03-10 2003-02-27 Mohan Embar <gnustuff@thisiscool.com>
+
+ * include/jvm.h: removed declaration of _Jv_ThisExecutable()
+ setter; made return value of getter const char* instead of char*
+ * prims.cc: removed all references to _Jv_ThisExecutable().
+ These are in the platform-specific sections now.
+ * posix.cc: define platform-specific _Jv_ThisExecutable().
+ Handle DISABLE_MAIN_ARGS and HAVE_PROC_SELF_EXE cases
+ * win32.cc: define platform-specific _Jv_ThisExecutable()
+ using GetModuleFilename()
+ * java/lang/natRuntime.cc: set gnu.gcj.progname property
+ to argv[0] instead of _Jv_ThisExecutable()
+
+2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
+
+ * gnu/gcj/runtime/NameFinder.java (usingAddr2name): New flag
+ that is set if we are using addr2name.awk instead of addr2line.
+ (NameFinder): Set usingAddr2name if using addr2name.awk.
+ (getExternalLabel): New native method to convert a method
+ name to an external label.
+ (lookup): Convert name given by addr2line to an external label
+ before demangling.
+
+ * gnu/gcj/runtime/natNameFinder.cc (LABEL_PREFIX): New string
+ constant representing the prefix attached to method names to
+ convert them to an external label.
+ (gnu::gcj::runtime::NameFinder::getExternalLabel): Define
+ using LABEL_PREFIX.
+
+2003-03-09 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/9934:
+ * java/io/natFileDescriptorPosix.cc (available): Fixed arguments
+ to lseek. Return 0 if we can't compute the value.
+
+2003-03-03 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc (handle_jsr_insn): Don't fail if `jsr' appears at end
+ of bytecode.
+ (handle_ret_insn): Fail if returning to jsr that appears at end of
+ bytecode.
+
+2003-03-02 Mark Wielaard <mark@klomp.org>
+
+ * java/util/Properties.java (load): Only skip line if the first
+ character is a comment, whitespaces don't count.
+
+2003-03-01 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * posix-threads.cc: Include <unistd.h> if HAVE_UNISTD_H is defined.
+ (_Jv_ThreadSetPriority): Test for _POSIX_THREAD_PRIORITY_SCHEDULING.
+
+2003-03-01 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/io/File.java (normalizePath): Remove trailing separator
+ on Windows only if path is not of the form "x:\".
+
+ * java/io/natFileWin32.cc (WIN32_EPOCH_MILLIS): New constant.
+ (java::io::File::attr): Change formatting a bit and use
+ WIN32_EPOCH_MILLIS instead of magic numbers.
+ (java::io::File::isAbsolute): Path must have at least 3
+ characters for a UNC network path.
+ (java::io::File::init_native): Define.
+ (java::io::File::performCreate): Likewise.
+ (java::io::File::performSetReadOnly): Likewise.
+ (java::io::File::performSetLastModified): Likewise.
+ (java::io::File::performListRoots): Likewise.
+
+2003-03-01 Michael Koch <konqueror@gmx.de>
+
+ * java/net/DatagramSocket.java
+ (closed): New member variable.
+ (close): Use closed variable.
+ (getInetAddress): No need to call isConnected().
+ (getPort): No need to call isConnected().
+ (disconnect): Reset remoteAddress and remotePort, fixed typo.
+ (isClosed): Reimplemented.
+
+2003-03-01 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/io/File (getAbsolutePath): Prefix drive specifier on
+ Windows for paths starting with a '\'.
+ (toURL): Make URL more consistent with what Sun's JDK returns.
+
+ * java/io/natFileWin32.cc (java::io::File::isAbsolute): Return
+ true only if the path is a UNC network path or it starts with a
+ drive specifier.
+
+ * java/net/URLStreamHandler.java (parseURL): Correct minor typo.
+ Be prepared to handle either '/' or '\\' in the file path for
+ Windows if using the "file" protocol.
+ Canonicalise the file path if using a relative path in the given
+ context and the "file" protocol.
+
+2003-03-01 Mohan Embar <gnustuff@thisiscool.com>
+
+ * java/lang/natWin32Process.cc (startProcess): Double-quote each
+ program array element passed to CreateProcess.
+
+2003-03-01 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/natSocketChannelImpl.cc:
+ Reverse logic for DISABLE_JAVA_NET. Thanks to Krister Walfridsson
+ <cato@df.lth.se> for pointing to it.
+
+ * gnu/java/nio/natSocketChannelImpl.cc:
+ Added support for platforms without network support.
+
+ * java/nio/channels/FileChannel.java
+ (toString): New implementation, added documentation.
+ (map): Added exception documentation.
+ (size): Added exception documentation.
+ (write): New methods, documentation work.
+ (read): New methods, documentation work.
+ (implCloseChannel): Rewrote exception documentation.
+ (force): Throws IOException, added documentation.
+ (lock): New methods.
+ (tryLock): New methods.
+ (position): New methods.
+ (transferTo): New method.
+ (transferFrom): New method.
+ (truncate): New method.
+ * java/nio/channels/spi/SelectorProvider.java
+ (provider): Implemented.
+ * Makefile.am
+ (ordinary_java_source_files): Added the following files:
+ gnu/java/nio/DatagramChannelImpl.java
+ gnu/java/nio/FileChannelImpl.java
+ gnu/java/nio/PipeImpl.java
+ gnu/java/nio/SelectionKeyImpl.java
+ gnu/java/nio/SelectorImpl.java
+ gnu/java/nio/SelectorProviderImpl.java
+ gnu/java/nio/ServerSocketChannelImpl.java
+ gnu/java/nio/SocketChannelImpl.java
+ java/nio/channels/FileLock.java
+ (nat_java_source_files): Added the following files:
+ gnu/java/nio/natFileChannelImpl.cc
+ gnu/java/nio/natSelectorImpl.cc
+ gnu/java/nio/natSocketChannelImpl.cc
+ * Makefile.in: Regenerated.
+
+2003-03-01 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/ByteBufferImpl.java
+ (ByteBufferImpl): Renamed two variables.
+ * gnu/java/nio/CharBufferImpl.java
+ (CharBufferImpl): Renamed two variables.
+ * gnu/java/nio/DoubleBufferImpl.java
+ (DoubleBufferImpl): Renamed two variables.
+ * gnu/java/nio/FloatBufferImpl.java
+ (FloatBufferImpl): Renamed two variables.
+ * gnu/java/nio/IntBufferImpl.java
+ (IntBufferImpl): Renamed two variables.
+ * gnu/java/nio/LongBufferImpl.java
+ (LongBufferImpl): Renamed two variables.
+ * gnu/java/nio/ShortBufferImpl.java
+ (ShortBufferImpl): Renamed two variables.
+ * java/nio/CharBuffer.java
+ (wrap): Fixed arguments to CharBufferImpl constructor.
+ (hasArray): Only not read-only buffers have backing arrays.
+ (length): Documentation added.
+ (subSequence): Documentation added.
+ * java/nio/DoubleBuffer.java
+ (hasArray): Only not read-only buffers have backing arrays.
+ * java/nio/FloatBuffer.java
+ (hasArray): Only not read-only buffers have backing arrays.
+ * java/nio/IntBuffer.java
+ (hasArray): Only not read-only buffers have backing arrays.
+ * java/nio/LongBuffer.java
+ (hasArray): Only not read-only buffers have backing arrays.
+ * java/nio/ShortBuffer.java
+ (hasArray): Only not read-only buffers have backing arrays.
+
+2003-03-01 Mark Wielaard <mark@klomp.org>
+
+ * java/io/ObjectInputStream.java: Reindent.
+ * java/io/ObjectOutputStream.java: Likewise.
+
+2003-02-28 Hans Boehm <Hans.Boehm@hp.com>
+
+ * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Allocate a full
+ jvalue for each argument. Simplify.
+ * testsuite/libjava.jni/calls.c (docall),
+ testsuite/libjava.jni/calls.java (longpb_f): check for argument
+ misalignment.
+
+2003-02-28 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (nat_source_files): Remove
+ java/io/natObjectOutputStream.cc.
+ * Makefile.in: Regenerated.
+ * mauve-libgcj: Don't exclude java.io.ObjectInputOutput tests.
+ * java/io/ObjectStreamField.java (typename): New field.
+ (ObjectStreamField(String, Class)): Initialize new field.
+ (ObjectStreamField(String, String)): New Constructor.
+ (getTypeCode): Use new field.
+ (getTypeString): Use new field.
+ * java/io/ObjectOutputStream.java (writeObject): Rethrow fatal
+ ObjectStreamExceptions. Remember and reset old BlockDataMode.
+ Handle reading of Proxy classes. Never drain(), just write
+ TC_ENDBLOCKDATA. Rethrow ObjectStreamExceptions.
+ (drain): Check writeDataAsBlocks before calling writeBlockDataHeader.
+ (flush): Call flush(), not just drain().
+ (writeBoolean): Always use blockDataOutput.
+ (writeByte): Likewise.
+ (writeShort): Likewise.
+ (writeChar): Likewise.
+ (writeInt): Likewise.
+ (writeLong): Likewise.
+ (writeFloat): Likewise.
+ (writeDouble): Likewise.
+ (writeBytes): Likewise.
+ (putfield (put(String,Object))): Throw IllegalArgumentException if
+ field cannot be found.
+ (putfield (write(ObjectOutput))): Remember old BlockDataMode.
+ (writeArraySizeAndElements): Write byte[] in one go.
+ (writeFields): Write TC_ENDBLOCKDATA when call_write_method, otherwise
+ set BlockDataMode to false.
+ (annotateProxyClass): New method.
+ (defaultProtocolVersion): Now defaults to PROTOCOL_VERSION_2
+ (getField): No longer native.
+ (getMethod): Likewise.
+ (setBlockDataMode): Always drain() on switch, return old mode.
+ (static): New static code block.
+ * java/io/natObjectOutputStream.cc: Removed.
+ * java/io/ObjectInputStream.java (getField): No longer native.
+ (getMethod): Likewise.
+ (readObject): Remember and reset old BlockDataMode. Track whether
+ object is consumed. Handle TC_ENDBLOCKDATA, TC_PROXYCLASSDESC and
+ TC_LONGSTRING.
+ (defaultReadObject): Set BlockDataMode to false during readFields.
+ (resolveClass): Create new SecurityManager if necessary.
+ Use Class.forName() if null ClassLoader found.
+ (read(byte[],int,int): Copy remaining bytes to data before calling
+ readNextBlock().
+ (readFields): Set and reset BlockDataMode on call_read_method.
+ Catch NoSuchFieldErrors.
+ (setBlockDataMode): Return old mode.
+ (static): New static code block.
+ * java/io/natObjectInputStream.cc (getField): Removed.
+ (getMethod): Likewise.
+
+2003-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/zip/ZipEntry.java (setComment): Don't check length when
+ argument is null.
+
+2003-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/zip/ZipEntry.java (ZipEntry(String)): When name is bigger
+ then 65535 chars throw IllegalArgumentException.
+
+2003-02-21 Mark Wielaard <mark@klomp.org>
+
+ * java/util/zip/ZipFile.java (finalize): New method.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * gnu/gcj/runtime/natStackTrace.cc: Include platform.h immediately
+ after config.h. Use <> for consistency.
+ * java/lang/natObject.cc: Likewise.
+ * java/lang/natRuntime.cc: Likewise.
+ * java/lang/natSystem.cc: Likewise.
+ * java/util/natTimeZone.cc: Likewise.
+ * win32.cc: Likewise.
+ * include/posix.h (fcntl, socket, connect, close, bind, accept,
+ listen, write, read): Undef to avoid interference from OS macros.
+
+2003-02-18 Raif S. Naffah <raif@fl.net.au>
+
+ * java/math/BigInteger.java (euclidInv): Take result array as an
+ argument. Updated all callers.
+ (modInverse): Removed unused variables.
+
+2003-02-17 Michael Koch <konqueror@gmx.de>
+
+ * java/net/DatagramSocket.java
+ (connect): Merged with classpath.
+ (disconnect): Merged documentation with classpath.
+ (receice): Merged documentation with classpath.
+ (send): Merged documentation with classpath.
+
+2003-02-17 Jesse Rosenstock <jmr@ugcs.caltech.edu>
+
+ * java/nio/charset/Charset.java
+ (isRegistered): Fixed method args and implementation.
+ * java/nio/charset/CharsetEncoder.java
+ (unmappableCharacterAction): New method.
+
+2003-02-17 Raif S. Naffah <raif@fl.net.au>
+
+ * java/math/BigInteger.java (euclidInv): Return array of
+ `BigInteger's. Changed all callers.
+
+2003-02-16 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/util/Properties.java (store): Move the code formerly in
+ list(), into this method.
+ (list (PrintStream)): Just call list (PrintWriter) with a
+ PrintWriter object constructed from the given PrintStream object.
+ (list (PrintWriter)): Emulate the output of Properties.list()
+ as found in JDK 1.3/1.4.
+
+2003-02-16 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc (_Jv_BytecodeVerifier::pop_jump): Removed unused
+ variable.
+
+2003-02-14 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/natServerSocketChannelImpl.cc: Removed.
+ * gnu/java/nio/ServerSocketChannelImpl.java
+ (SocketAccept): Removed.
+ (accept): Commented out use of SocketAccept.
+
+2003-02-14 Mark Wielaard <mark@klomp.org>
+
+ * java/math/BigDecimal.java (BigDecimal(String)): Always set scale to
+ zero when there is an exponent and the significant is zero.
+ (divide): Always set scale to newScale even in special ZERO case.
+
+2003-02-14 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/System.java (properties): Use Properties.clone.
+ (setProperties): Likewise.
+
+2003-02-13 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc (state::seen_subrs): New field.
+ (state::state): Initialize it.
+ (state::clean_subrs): New method.
+ (state::~state): Call it.
+ (state::copy): Copy subroutine list.
+ (state::add_subr): New method.
+ (state::merge): Only register a change if the current subroutine
+ hasn't yet been noted.
+
+2003-02-13 Mark Wielaard <mark@klomp.org>
+
+ * java/io/InputStreamReader.java (getEncoding): Return null when
+ closed.
+ * java/io/OutputStreamWriter.java (getEncoding): Likewise.
+
+2003-02-13 Mark Wielaard <mark@klomp.org>
+
+ * java/util/zip/InflaterInputStream.java (read): Return zero when len
+ is zero.
+
+2003-02-13 Mark Wielaard <mark@klomp.org>
+
+ * java/io/BufferedOutputStream.java (write(int)): Only flush when
+ next byte cannot be buffered.
+
+2003-02-13 Casey Marshall <rsdio@metastatic.org>
+
+ PR libgcj/9271:
+ * java/security/SecureRandom.java (next): Avoid bias in results.
+
+2003-02-13 Michael <konqueror@gmx.de>
+
+ * gnu/java/nio/FileChannelImpl.java
+ (lengthInternal): Must be native.
+ (size): Check if channel is already closed.
+ (implCloseChannel): Reformated.
+ (read): w was unused, removed it.
+ (read): Removed.
+ (read): New method.
+ (write): New method.
+ (map): Check arguments.
+ (force): Throws IOException, check if channel is closed.
+ (transferTo): New method.
+ (transferFrom): New method.
+ (lock): New method.
+ (tryLock): New method.
+ (position): New method.
+ (truncate): New method.
+ (nio_mmap_file): Uncommented.
+ (nio_munmap_file): Uncommented.
+ (nio_msync): Uncommented.
+ * gnu/java/nio/natFileChannelImpl.cc: New file.
+
+2003-02-13 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/ByteBuffer.java
+ (endian): New member variable.
+ (get): New methods.
+ (equals): New method.
+ (compareTo): New method.
+ (order): New methods.
+ (compact): New method.
+ (isDirect): New method.
+ (slice): New method.
+ (duplicate): New method.
+ (asReadOnlyBuffer): New method.
+ (asCharBuffer): New method.
+ (asDoubleBuffer): New method.
+ (asFloatBuffer): New method.
+ (asIntBuffer): New method.
+ (asLongBuffer): New method.
+ (asShortBuffer): New method.
+ (get*): New methods.
+ (put*): New methods.
+ (toString): New method.
+ * java/nio/CharBuffer.java
+ (CharBuffer): Implement Comparable instead of Cloneable.
+ (get): May not be final.
+ (put): May not be final.
+
+2003-02-13 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/natSocketChannelImpl.cc
+ (SocketConnect): This is not implemented yet.
+ (SocketBind): This is not implemented yet.
+
+2003-02-13 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/natByteBufferImpl.cc,
+ gnu/java/nio/natCharBufferImpl.cc,
+ gnu/java/nio/natDoubleBufferImpl.cc,
+ gnu/java/nio/natFloatBufferImpl.cc,
+ gnu/java/nio/natIntBufferImpl.cc,
+ gnu/java/nio/natLongBufferImpl.cc,
+ gnu/java/nio/natShortBufferImpl.cc:
+ Added copyright and license.
+ * java/nio/DoubleBuffer.java,
+ java/nio/FloatBuffer.java,
+ java/nio/IntBuffer.java,
+ java/nio/LongBuffer.java,
+ java/nio/ShortBuffer.java
+ (array): Throw exceptions.
+ (arrayOffset): Throw exceptions.
+
+2002-02-13 Ranjit Mathew <rmathew@hotmail.com>
+
+ * gnu/gcj/runtime/NameFinder.java (createStackTraceElement): Use
+ lastIndexOf( ) instead of indexOf( ) to find the colon before
+ the line number, because Win32 file names might contain a
+ drive letter and a colon at the start of an absolute path.
+
+2003-02-12 Jeff Sturm <jsturm@one-point.com>
+
+ * configure.host (alpha*-*): Default to -mieee.
+ * configure.in (IEEESPEC): New.
+ * libgcj.spec.in (jc1): Add IEEESPEC.
+ * configure: Rebuild.
+
+2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
+
+ * include/win32.h: Include ws2tcpip.h instead of
+ winsock.h to obtain definition of the socklen_t type.
+ Remove IP_TOS definition - not needed with ws2tcpip.h
+ (_Jv_connect): Correct slight formatting error.
+
+2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
+
+ * jni.cc (_Jv_LookupJNIMethod): Modify to accept the
+ size of the arguments for a JNI function. For Win32,
+ modify to search for all forms of possible exported
+ names of an stdcall JNI function.
+ (_Jv_JNIMethod::call): Modify to calculate the size
+ of the arguments passed to a JNI function and pass
+ it to _Jv_LookupJNIMethod.
+
+2003-02-12 Michael Koch <konqueror@gmx.de>
+
+ * java/net/NetPermission.java
+ (NetPermission): Make doucmentation match the method declaration.
+ * java/net/NetworkInterface.java
+ (equals): Reformated for GNU coding style.
+ * java/net/ServerSocket.java: Merged with classpath.
+ * java/net/Socket.java: Partly merged with classpath (Added some
+ @since).
+ * java/net/SocketImpl.java
+ (localPort): Merged with classpath (initialize with -1).
+ * java/net/SocketPermission.java: Merged with classpath (reindented).
+ * java/net/URLDecoder.java: Merged with classpath (reindented).
+
+2003-02-12 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/channels/Channels.java: New file.
+ * Makefile.am
+ (ordinary_java_source_files): Added java/nio/channels/Channels.java.
+ * Makefile.in: Regenerated.
+
+2003-02-12 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/ByteBuffer.java
+ (allocate): Implemented.
+ (wrap): Implemented.
+ * java/nio/CharBuffer.java:
+ Some documentation added and reworked.
+ (endian): Removed.
+ (allocate): Implemented.
+ (wrap): Implemented.
+ (array): Throw exceptions.
+ (arrayOffset): Throw exceptions.
+ (toString): Implemented.
+ (length): Implemented.
+ (put): Implemented.
+ (charAt): Implemented.
+
+2003-02-11 John Leuner <jewel@debian.org>
+
+ * java/util/zip/ZipInputStream.java: Fix problem with 0-length
+ reads from end of file.
+
+2003-02-11 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/ByteBufferImpl.java:
+ Reformated and removed some code.
+ (backing_buffer): Removed.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (ByteBufferImpl): Use parent constructor, initialize readOnly.
+ * gnu/java/nio/CharBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (CharBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * gnu/java/nio/DoubleBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (DoubleBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * gnu/java/nio/FloatBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (FloatBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * gnu/java/nio/IntBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (IntBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * gnu/java/nio/LongBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (LongBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * gnu/java/nio/ShortBufferImpl.java:
+ Reformated and removed some code.
+ (array_offset): Removed.
+ (ro): Renamed to readOnly.
+ (ShortBufferImpl): Use parent constructor, initialize readOnly.
+ (inc_pos): Removed.
+ (order): New method.
+ * Makefile.am
+ (ordinary_java_source_files): Added the following files:
+ gnu/java/nio/ByteBufferImpl.java
+ gnu/java/nio/CharBufferImpl.java
+ gnu/java/nio/DoubleBufferImpl.java
+ gnu/java/nio/FloatBufferImpl.java
+ gnu/java/nio/IntBufferImpl.java
+ gnu/java/nio/LongBufferImpl.java
+ gnu/java/nio/ShortBufferImpl.java
+ java/nio/DoubleBuffer.java
+ java/nio/FloatBuffer.java
+ java/nio/IntBuffer.java
+ java/nio/LongBuffer.java
+ java/nio/ShortBuffer.java
+ (nat_source_files): Added the following files:
+ gnu/java/nio/natByteBufferImpl.cc
+ gnu/java/nio/natCharBufferImpl.cc
+ gnu/java/nio/natDoubleBufferImpl.cc
+ gnu/java/nio/natFloatBufferImpl.cc
+ gnu/java/nio/natIntBufferImpl.cc
+ gnu/java/nio/natLongBufferImpl.cc
+ gnu/java/nio/natShortBufferImpl.cc
+ * Makefile.in: Regenerated.
+
+2003-02-11 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/natCharBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/natDoubleBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/natFloatBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/natIntBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/natLongBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/natShortBufferImpl.cc
+ (nio_cast): Removed.
+ (nio_put_*): Removed.
+ (nio_get_*): Removed.
+ * gnu/java/nio/SelectorProviderImpl.java
+ (openDatagramChannel): Throws IOException.
+ (openPipe): Throws IOException.
+ (openSelector): Throws IOException.
+ (openServerSocketChannel): Throws IOException.
+ (openSocketChannel): Throws IOException.
+ * gnu/java/nio/ServerSocketChannelImpl.java
+ (ServerSocketChannelImpl): Throws IOException.
+ (implCloseSelectableChannel): Throws IOException.
+ (implConfigureBlocking): Throws IOException.
+ * java/nio/ByteBuffer.java
+ (readOnly): Removed.
+ (hasArray): Use isReadOnly() instead of readOnly.
+ (array): Use isReadOnly() instead of readOnly.
+ (arrayOffset): Use isReadOnly() instead of readOnly.
+ * java/nio/CharBuffer.java
+ (CharBuffer): Implements Cloneable and CharSequence.
+
+2003-02-11 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/Buffer.java
+ (cap, lim, pos, mark): Made private
+ (Buffer): Added package private constructor.
+ * java/nio/ByteBuffer.java
+ (ByteBuffer): Implements Cloneable.
+ (offset): New member variable.
+ (readOnly): New member variable.
+ (backing_buffer): New member variable.
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet, documentation added.
+ (allocate): Documentation added.
+ (wrap): Documentation added.
+ (ByteBuffer): New constructor.
+ (hasArray): New method.
+ (array): New method.
+ (arrayOffset): New method.
+ (get): Documentation added.
+ (put): Documentation added.
+ * java/nio/CharBuffer.java
+ (CharBuffer): New constructor.
+ (compareTo): Don't access member variables of Buffer directly.
+ * java/nio/DoubleBuffer.java
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet.
+ * java/nio/FloatBuffer.java
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet.
+ * java/nio/IntBuffer.java
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet.
+ * java/nio/LongBuffer.java
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet.
+ * java/nio/MappedByteBuffer.java
+ (MappedByteBuffer): New method.
+ (force): New method.
+ (isLoaded): New method.
+ (load): New method.
+ * java/nio/ShortBuffer.java
+ (allocateDirect): Throw exception and tell that direct buffers are
+ not supported yet.
+
+2003-02-11 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/io/natFileDescriptorWin32.cc
+ (java::io::FileDescriptor::read): Return -1 (EOF) if ReadFile( )
+ returns with Win32 error code ERROR_BROKEN_PIPE.
+
+2003-02-10 Tom Tromey <tromey@redhat.com>
+
+ * javax/sql/ConnectionEvent.java (serialVersionUID): New field.
+ (ex): Renamed from sqlException.
+
+2003-02-10 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/DoubleBuffer.java
+ (DoubleBuffer): Implements Comparable.
+ (endian): Removed.
+ (array_offset): New member variable.
+ (DoubleBuffer): New constuctor.
+ (get): May not be final.
+ (put): May not be final.
+ (arrayOffset): Implemented.
+ (order): Made abstract.
+ (order): Removed.
+ (as*Buffer): Removed.
+ (get*): Removed.
+ (put*): Removed.
+ * java/nio/FloatBuffer.java
+ (FloatBuffer): Implements Comparable.
+ (endian): Removed.
+ (array_offset): New member variable.
+ (FloatBuffer): New constuctor.
+ (get): May not be final.
+ (put): May not be final.
+ (arrayOffset): Implemented.
+ (order): Made abstract.
+ (order): Removed.
+ (as*Buffer): Removed.
+ (get*): Removed.
+ (put*): Removed.
+ * java/nio/IntBuffer.java
+ (IntBuffer): Implements Comparable.
+ (endian): Removed.
+ (array_offset): New member variable.
+ (IntBuffer): New constuctor.
+ (get): May not be final.
+ (put): May not be final.
+ (arrayOffset): Implemented.
+ (order): Made abstract.
+ (order): Removed.
+ (as*Buffer): Removed.
+ (get*): Removed.
+ (put*): Removed.
+ * java/nio/LongBuffer.java
+ (LongBuffer): Implements Comparable.
+ (endian): Removed.
+ (array_offset): New member variable.
+ (LongBuffer): New constuctor.
+ (get): May not be final.
+ (put): May not be final.
+ (arrayOffset): Implemented.
+ (order): Made abstract.
+ (order): Removed.
+ (as*Buffer): Removed.
+ (get*): Removed.
+ (put*): Removed.
+ * java/nio/ShortBuffer.java
+ (ShortBuffer): Implements Comparable.
+ (endian): Removed.
+ (array_offset): New member variable.
+ (ShortBuffer): New constuctor.
+ (get): May not be final.
+ (put): May not be final.
+ (arrayOffset): Implemented.
+ (order): Made abstract.
+ (order): Removed.
+ (as*Buffer): Removed.
+ (get*): Removed.
+ (put*): Removed.
+
+2003-02-10 Michael Koch <konqueror@gmx.de>
+
+ * gnu/java/nio/FileLockImpl.java,
+ java/nio/channels/FileLock.java: New files.
+
+2003-02-10 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/charset/IllegalCharsetNameException.java
+ (serialVersionUID): New member variable.
+ (charsetName): New member variable.
+ (IllegalCharsetException): New implementation.
+ (getCharsetName): New implementation.
+ * java/nio/charset/UnsupportedCharsetException.java
+ (serialVersionUID): New member variable.
+ (charsetName): New member variable.
+ (UnsupportedCharsetException): New implementation.
+ (getCharsetName): New implementation.
+
+2003-02-10 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/channels/DatagramChannel.java
+ (write): Throws IOException.
+ (connect): Throws IOException.
+ (disconnect): Throws IOException.
+ (read): Throws IOException.
+ (receive): Throws IOException.
+ (send): Throws IOException.
+ * java/nio/channels/Pipe.java
+ (open): Throws IOException.
+ * java/nio/channels/SelectableChannel.java
+ (configureBlocking): Throws IOException.
+ * java/nio/channels/ServerSocketChannel.java
+ (accept): Throws IOException.
+ * java/nio/channels/SocketChannel.java
+ (SocketChannel): Implements ByteChannel, ScatteringByteChannel,
+ GatheringByteChannel.
+ (read): Throws IOException.
+ (write): Throws IOException.
+ (finishConnect): Throws IOException.
+ * java/nio/channels/spi/AbstractInterruptibleChannel.java
+ (end): Throws AsynchronousCloseException.
+ * java/nio/channels/spi/AbstractSelectableChannel.java
+ (configureBlocking): Throws IOException.
+ (implCloseChannel): Throws IOException.
+ (implCloseSelectableChannel): Throws IOException.
+ (implConfigureBlocking): Throws IOException.
+ * java/nio/channels/spi/SelectorProvider.java
+ (openDatagramChannel): Throws IOException.
+ (openPipe): Throws IOException.
+ (openSelector): Throws IOException.
+ (openServerSocketChannel): Throws IOException.
+ (openSocketChannel): Throws IOException.
+
+2003-02-10 Raif S. Naffah <raif@fl.net.au>
+
+ * gnu/java/security/provider/SHA1PRNG.java (ensureIsSeeded): new
+ method used to ensure seeding has occurred and that a specific
+ seed can be set and used.
+
+2003-02-10 Michael Koch <konqueror@gmx.de>
+
+ * java/nio/channels/SelectionKey.java
+ (OP_ACCEPT, OP_CONNECT, OP_READ, OP_WRITE): Initialize with correct
+ values.
+
+2003-02-10 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/lang/Win32Process.java (destroy): Declare as native.
+ (hasExited): New native method.
+ (exitValue): Define.
+ (getErrorStream): Likewise.
+ (getInputStream): Likewise.
+ (getOutputStream): Likewise.
+ (waitFor): Declare as native.
+ (startProcess): New native method.
+ (cleanup): Likewise.
+ (ConcreteProcess): Define.
+ (outputStream, inputStream, errorStream): New members.
+ (procHandle, exitCode): Likewise.
+
+ * java/lang/natWin32Process.cc
+ (java::lang::ConcreteProcess::cleanup): Define.
+ (java::lang::ConcreteProcess::destroy): Likewise.
+ (java::lang::ConcreteProcess::hasExited): Likewise.
+ (java::lang::ConcreteProcess::waitFor): Likewise.
+ (new_string): Likewise.
+ (java::lang::ConcreteProcess::startProcess): Likewise.
+
+2003-02-10 Raif S. Naffah <raif@fl.net.au>
+
+ * java/math/BigInteger.java:
+ Updated notice to include years 2002 and 3.
+ Added 2 private (int) arrays with values from the HAC (Handbook of
+ Applied Cryptography -A. Menezes & al): k[] that contains bit lengths
+ and t[] that contains nbr. of tests --used in isProbablePrime().
+
+ * java/math/BigInteger.java (make(long)): Merged into valueOf(long).
+
+ * java/math/BigInteger.java (make(int[],int), add(int,int),
+ add(BI,BI,int), times(BI,int), divide(long,long,BI,BI,int), gcd(BI),
+ isProbablePrime(int), shift(BI,int), valueOf(String,int), neg(BI),
+ bitOp(int,BI,BI), and(BI,int)): Use valueOf(long) instead of
+ make(long).
+
+ * java/math/BigInteger.java (euclidInv): Reduce number of work vars
+ (euclidInv(int,int,int)): Now returns an array of 2 ints instead of 3.
+ (euclidInv(BI,BI,BI)): Used to return an array of 2 BIs; now accepts 6
+ BIs and returns void.
+ (modInverse(BI)): Use new signatures of euclidInv().
+
+ * java/math/BigInteger.java (isProbablePrime(int)): Use divide() with
+ static small primes instead of remainder().
+ Use pre-computed max nbr of trials based on bitlength of BI to test.
+ Use pre-computed small primes for the trial tests instead of random
+ numbers.
+
+ * java/math/BigInteger.java (isOdd, isMinusOne, pow): Removed.
+ not used.
+
+ * java/math/BigInteger.java (format(int,StringBuffer)): Removed
+ invoacation of MPN.chars_per_word(). not used.
+
+ * java/math/BigInteger.java (gcd(int,int)): Declared 'tmp' once as
+ local var and used where needed.
+
+ * java/math/BigInteger.java (modPow(BI,BI)): Fixed spelling.
+ Combined declaration with initialisation of locals.
+ Removed unused var.
+
+ * java/math/BigInteger.java: Style changes
+ (pow(int)): Removed 'else' keyword.
+ (toString(int)): idem.
+ (doubleValue()): idem.
+ (bitLength()): idem.
+ (equals(Object)): Use static methods name in same class w/o prepending
+ class name.
+ (doubleValue()): idem.
+ (setNegative(BI)): idem.
+ (negate()): idem.
+ (and(BI,int)): idem.
+ (and(BI)): idem.
+ (gcd(BI)): idem.
+ (byteArrayToIntArray()): Removed casting to (int). this is
+ std. behaviour.
+ (canonicalize()): idem.
+ (alloc(int)): Always instantiate a new BI.
+
+2003-02-10 Tom Tromey <tromey@redhat.com>
+
+ * java/sql/Timestamp.java (compareTo(Object)): New method.
+ (compareTo(Timestamp)): Likewise.
+ (serialVersionUID): Updated.
+
+2003-02-07 Mark Wielaard <mark@klomp.org>
+
+ * java/util/jar/JarFile.java (JarFile(String, boolean)): Read manifest
+ when verify is true.
+ (JarFile(File, boolean)): Likewise.
+ (manifestRead): Set manifestRead field correctly.
+
+2003-02-07 Stephen Crawley <crawley@dstc.edu.au>
+
+ * java/math/BigDecimal(valueOf): fix DiagBigDecimal val008, val013
+ tests; see patch #1016 on Savannah.
+
+2003-02-07 Stephen Crawley <crawley@dstc.edu.au>
+
+ * java/math/BigDecimal.java (BigDecimal): enhance parsing of exponents
+ (toString): do not return Strings starting with . and - erroneously.
+ Improves Mauve results to 12 of 600 instead of 16 of 338 on
+ DiagBigDecimal.
+
+2003-02-07 Stephen Crawley <crawley@dstc.edu.au>
+
+ * java/beans/PropertyDescriptor.java
+ (PropertyDescriptor(String, Class)): Sanity check getter and setter
+ methods.
+ (PropertyDescriptor(String, Class, String, String)): Likewise.
+ (PropertyDescriptor(String, Method, Method): Factor out getter and
+ setter method sanity checks into new method.
+ (findMethods): Don't do parameter sanity checking of get method here.
+ (checkMethods): New method.
+
+2003-02-07 Stephen Crawley <crawley@dstc.edu.au>
+
+ * java/beans/PropertyDescriptor.java: Reformat.
+
+2003-02-04 Tom Tromey <tromey@redhat.com>
+
+ * java/io/PipedOutputStream.java (flush): Declare as throwing
+ IOException.
+ (close): Likewise.
+ * java/io/PipedWriter.java (close): Declare as throwing
+ IOException.
+ * java/io/StringWriter.java (close): Declare as throwing
+ IOException.
+
+2003-02-03 Ranjit Mathew <rmathew@hotmail.com>
+
+ * java/lang/natRuntime.cc (java::lang::Runtime::_load)): Take care
+ of the fact that on Win32, JNI_OnLoad is an "stdcall" function and
+ could also have been exported as "JNI_OnLoad@8" (MinGW) or
+ "_JNI_OnLoad@8" (MSVC).
+
+2003-02-03 Ranjit Mathew <rmathew@hotmail.com>
+
+ * resolve.cc (_Jv_JNIMethod::ncode): Use stdcall calling
+ convention on Win32 to invoke native JNI methods.
+
+2003-02-03 Andrew Haley <aph@redhat.com>
+
+ * configure.host (x86_64): Enable interpreter.
+
+2003-01-28 Andrew Haley <aph@redhat.com>
+
+ * libgcj.spec.in (jc1): Add BACKTRACESPEC.
+ * configure.host (x86_64): Default to -fno-omit-frame-pointer.
+ * configure.in (BACKTRACESPEC): New.
+ * configure: Regenerate.
+
+2003-02-02 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (lib_gnu_awt_xlib_la_LDFLAGS): Link against
+ libstdc++.
+
+2003-01-31 Tom Tromey <tromey@redhat.com>
+
+ * jni.cc (_Jv_JNI_NewObjectArray): Check that initializer can be
+ cast to element type.
+ (_Jv_JNI_SetObjectArrayElement): Check array bounds.
+ (_Jv_JNI_GetObjectArrayElement): Likewise.
+
+2003-01-31 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (cond_x_ltlibrary): Renamed library to
+ lib-gnu-awt-xlib.la.
+ (lib_gnu_awt_xlib_la_SOURCES): Renamed.
+ (EXTRA_lib_gnu_awt_xlib_la_SOURCES): Likewise.
+ (lib_gnu_awt_xlib_la_DEPENDENCIES): Likewise.
+ (lib_gnu_awt_xlib_la_LIBADD): Likewise.
+ (lib_gnu_awt_xlib_la_LDFLAGS): Likewise.
+ (lib_gnu_awt_xlib_la_LINK): Likewise.
+ (install-exec-hook): Removed.
+ (lib-gnu-awt-xlib.la): Renamed.
+
+ * aclocal.m4, configure, include/config.h.in: Rebuilt.
+ * acinclude.m4 (CHECK_FOR_BROKEN_MINGW_LD): Moved from
+ aclocal.m4.
+
+2003-01-31 Julian Dolby <dolby@us.ibm.com>
+
+ * java/util/Properties.java (load): Ignore backslash before EOF.
+
+2003-01-28 Oscar Pearce <oscar@pearceenterprises.com>
+
+ * java/awt/Component.java (processPaintEvent): Dispose of Graphics
+ object when finished.
+
+2003-01-28 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * libjava/configure.host: Disable can_unwind_signal on darwin.
+
+2003-01-28 Ranjit Mathew <rmathew@hotmail.com>
+
+ Fixes PR java/9254:
+ * include/win32-threads.h (_Jv_Mutex_t): Convert to a struct
+ additionally containing id of the owner thread as well as
+ the number of nested times the thread has acquired the mutex.
+ (_Jv_MutexInit): Initialise owner thread id and refcount to 0.
+ (_Jv_MutexDestroy): Reset owner thread id and refcount to 0.
+ (_Jv_MutexUnlock): Check if really the owner thread, reset
+ owner thread id to 0 before leaving, if leaving for the last
+ time.
+ (_Jv_MutexLock): Set owner thread id in the mutex and increment
+ refcount.
+ (_Jv_ThreadYield): Yield using a call to Sleep(0).
+ * win32-threads.cc (_Jv_CondWait): Check if really owner of
+ the passed mutex.
+ Pass handle of the broadcast event, instead of a pointer to it
+ in Win32 ResetEvent( ) call.
+ Remove incorrect return values.
+ (_Jv_CondDestroy): Close both event handles and delete
+ critical section.
+ (_Jv_CondNotify): Check if really the owner thread.
+ (_Jv_CondNotifyAll): Check if really the owner thread.
+ (_Jv_InitThreads): Change daemon_cond to a manual-reset event.
+ (really_start): Use SetEvent( ) to signal daemon_cond.
+ (_Jv_ThreadWait): Remove SignalObjectAndWait( ) and use
+ WaitForSingleObject( ) instead to wait for daemon_cond to be
+ signalled.
+
+2003-01-28 Ranjit Mathew <rmathew@hotmail.com>
+
+ * configure.in: Specifically define HAVE_BACKTRACE if building
+ for MinGW.
+ * include/win32.h: Remove HAVE_BACKTRACE definition.
+ * gnu/gcj/runtime/natStackTrace.cc: Include platform.h.
+ * configure: Rebuilt.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (toolexecdir, toolexecmainlibdir, toolexeclibdir):
+ Set and AC_SUBST. Remove USE_LIBDIR conditional.
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
+ (toolexecmainlib_DATA): Renamed from toolexeclib_DATA.
+ * Makefile.in, configure: Rebuilt.
+
+2003-01-24 Ranjit Mathew <rmathew@hotmail.com>
+
+ Fixes PR java/9253:
+ * java/io/natFileWin32.cc (performList): Append only "*.*"
+ if the canonical file path already has a "\" at the end.
+
+2003-01-24 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/ClassLoader.java (findLoadedClass): Removed erroneous
+ comment.
+
+2003-01-22 Andrew Haley <aph@redhat.com>
+
+ * x86_64-signal.h: Add simple handler for x86_64 32-bit mode.
+ * configure.host (CHECKREFSPEC): Define for x86_64.
+
+2003-01-21 Tom Tromey <tromey@redhat.com>
+
+ * java/util/natResourceBundle.cc (getCallingClassLoader): Start
+ search at 2, not 3.
+
+2003-01-21 Vladimir Puskas <vpuskas@eunet.yu>
+
+ * java/io/natFileWin32.cc (isAbsolute): Check path length before
+ looking at any characters.
+ * java/io/natFilePosix.cc (_stat): Only compute `buf' if it will
+ be used.
+ (isAbsolute): Check path's length as well.
+
+2003-01-17 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (core_java_source_files): Add VMObjectStreamClass.java.
+ (nat_source_files): Add natVMObjectStreamClass.cc.
+ * Makefile.in: Regenerated.
+ * gcj/javaprims.h (namespace java): Regenerated.
+ * java/io/ObjectStreamClass.java (getClassUID): Call
+ VMObjectStreamClass.hasClassInitializer().
+ (hasClassInitializer): Removed.
+ * java/io/VMObjectStreamClass.java: New class.
+ * java/io/natVMObjectStreamClass.cc: New file.
+ * java/lang/Class.h: Make java::io::VMObjectStreamClass friend class.
+
+2003-01-19 Michael Koch <konqueror@gmx.de>
+
+ * java/net/MulticastSocket.java
+ (setInterface): Reindented.
+
+2003-01-16 Mark Wielaard <mark@klomp.org>
+
+ * java/net/SocketImpl.java (toString): Don't explicitly call
+ toString() on possible null address.
+
+2003-01-15 Scott Gilbertson <scottg@mantatest.com>
+
+ * gnu/gcj/xlib/natGC.cc (fillPolygon): New method.
+ * gnu/gcj/xlib/GC.java (fillPolygon): Declare.
+ * gnu/awt/xlib/XGraphics.java (fillPolygon): Added translateX and
+ translateY arguments. Implement.
+ * gnu/awt/j2d/IntegerGraphicsState.java (fillPolygon): Pass
+ down translation arguments.
+ (drawPolyline, drawPolygon): Fix incorrect tests.
+ * gnu/awt/j2d/DirectRasterGraphics.java (fillPolygon): Added
+ translateX and translateY arguments.
+
+2003-01-15 Scott Gilbertson <scottg@mantatest.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (xlib_includes): New macro.
+ (INCLUDES): Use it.
+
+2003-01-15 Scott Gilbertson <scottg@mantatest.com>
+
+ * gnu/awt/xlib/XToolkit.java (getColorModel): Implemented.
+ * gnu/awt/xlib/XGraphicsConfiguration.java (getPixel): Work with
+ 16-bit display mode.
+
+2003-01-15 Scott Gilbertson <scottg@mantatest.com>
+
+ * java/awt/CardLayout.java (show): Rewrote.
+ (gotoComponent): Removed `target' argument. Simplified code.
+ Don't pre-compute `choice' unless `what' is FIRST or LAST.
+ Changed all callers.
+ (NONE): Removed.
+
+2003-01-14 Michael Koch <konqueror@gmx.de>
+
+ * java/net/InetSocketAddress.java
+ (serialVersionUID): New member variable.
+ * java/net/NetPermission.java
+ (NetPermission): Dont implement java.io.Serialization directly.
+ * java/net/SocketAddress.java:
+ (serialVersionUID): Documentation added.
+
+2003-01-14 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/Label.java
+ (Label): Implements javax.accessibility.Accessible;
+ * java/awt/List.java
+ (List): Implements javax.accessibility.Accessible;
+ * java/awt/ScrollPane.java
+ (ScrollPane): Implements javax.accessibility.Accessible;
+ * java/awt/Scrollbar.java
+ (Scrollbar): Implements javax.accessibility.Accessible;
+ * java/awt/TextComponent.java
+ (setCaretPosition): Throw exception, documentation added.
+ * java/awt/Toolkit.java:
+ Added some newlines in method documentations.
+ (createButton): Exception documentation added.
+ (createTextField): Exception documentation added.
+ (createLabel): Exception documentation added.
+ (createList): Exception documentation added.
+ (createCheckbox): Exception documentation added.
+ (createScrollbar): Exception documentation added.
+ (createScrollPane): Exception documentation added.
+ (createTextArea): Exception documentation added.
+ (createChoice): Exception documentation added.
+ (createFrame): Exception documentation added.
+ (createWindow): Exception documentation added.
+ (createDialog): Exception documentation added.
+ (createMenuBar): Exception documentation added.
+ (createMenu): Exception documentation added.
+ (createMenuItem): Exception documentation added.
+ (createFileDialog): Exception documentation added.
+ (createCheckboxMenuItem): Exception documentation added.
+ (loadSystemColors): Exception documentation added.
+ (setDynamicLayout): Exception documentation added.
+ (isDynamicLayoutSet): Exception documentation added.
+ (isDynamicLayoutActive): Exception documentation added.
+ (getScreenSize): Exception documentation added.
+ (getScreenResolution): Exception documentation added.
+ (getScreenInsets): Exception documentation added.
+ (getColorModel): Exception documentation added.
+ (getSystemClipboard): Exception documentation added.
+ (getSystemSelection): Exception documentation added.
+ (getMenuShortcutKeyMask): Exception documentation added.
+ (getSystemEventQueue): Exception documentation added.
+ * java/awt/Window.java:
+ Reindented some code.
+ (Window): Centralized implementation, documentation added.
+ (finalize): Documentation added.
+ (hide): Fixed typo in comment.
+ (getWindowListeners): Documentation added.
+ * java/awt/color/ColorSpace.java
+ (toRGB): Documentation added.
+ * java/awt/color/ICC_ColorSpace.java
+ (ICC_ColorSpace): Documentation added.
+ (toRGB): Throw exception, documentation added.
+ (fromRGB): Throw exception, documentation added.
+ (toCIEXYZ): Documentation added.
+ (fromCIEXYZ): Documentation added.
+ (getMinValue): Documentation added.
+ (getMaxValue): Documentation added.
+ * java/awt/geom/Dimension2D.java
+ (clone): Documentation added.
+ * java/awt/geom/GeneralPath.java
+ (clone): Documentation added.
+ * java/awt/geom/Line2D.java
+ (clone): Documentation added.
+ * java/awt/geom/QuadCurve2D.java
+ (clone): Documentation added.
+ * java/awt/image/ColorModel.java
+ (ColorModel): Throw exception, documentation added.
+ * java/awt/image/ImageFilter.java
+ (clone): Doesnt throw CloneNotSupportedException.
+
+2003-01-14 Andrew Haley <aph@redhat.com>
+
+ * java/lang/natRuntime.cc (_load): StackTrace access needs to be
+ in a try block.
+
+2003-01-10 Andrew Haley <aph@redhat.com>
+
+ * include/dwarf2-signal.h: Remove x86_64.
+ * configure.host (x86_64 DIVIDESPEC): Remove.
+ * include/x86_64-signal.h: New file.
+ * configure.in: Regenerate.
+
+2003-01-10 Michael Koch <konqueror@gmx.de>
+
+ * java/net/DatagramSocket.java
+ (ch): Description added.
+ (remotePort): Initialize with -1.
+ (connect): Doesnt throws SocketException.
+ * java/net/MulticastSocket.java
+ (setInterface): Merge with Classpath.
+ * java/net/ServerSocket.java
+ (closed): New member variable.
+ (bind): Check if socket is closed.
+ (close): Close an associated channel too, set new value to closed.
+ (isBound): Reindented.
+ (isClosed): Implemented.
+ * java/net/Socket.java
+ (closed): New member variable.
+ (bind): Check if socket is closed.
+ (connect): Check if socket is closed.
+ (close): Close an associated channel too, set new value to closed.
+ (isClosed): Implemented.
+
+2003-01-10 Michael Koch <konqueror@gmx.de>
+
+ * java/awt/DisplayMode.java
+ (equals): Fixed argument type and implementation.
+
+2003-01-07 Michael Koch <konqueror@gmx.de>
+
+ * java/net/DatagramSocket.java:
+ Added classpath license info.
+ (DatagramSocket): Merged description with classpath.
+ (close): Merged description with classpath.
+ (getChannel): Merged description with classpath.
+ (getInetAddress): Merged description with classpath.
+ (getPort): Merged description with classpath.
+ (getLocalAddress): Merged description with classpath.
+ (getLocalPort): Merged description with classpath.
+ (getSoTimeout): Merged description with classpath.
+ (setSoTimeout): Merged description with classpath.
+ (getSendBufferSize): Merged description with classpath.
+ (setSendBufferSize): Merged description with classpath.
+ (getReceiveBufferSize): Merged description with classpath.
+ (setReceiveBufferSize): Merged description with classpath.
+
+2003-01-07 Tom Tromey <tromey@redhat.com>
+
+ * include/posix.h (_Jv_platform_usleep): Wrap in ifdef
+ JV_HASH_SYNCHRONIZATION.
+ * include/win32.h (_Jv_platform_usleep): Wrap in ifdef
+ JV_HASH_SYNCHRONIZATION.
+
+2003-01-04 Tom Tromey <tromey@redhat.com>
+
+ * java/awt/List.java: Merged with Classpath.
+
+2003-01-03 Mark Wielaard <mark@klomp.org>
+
+ * java/io/FileDescriptor.java (position): New private field.
+ * java/io/natFileDescriptorPosix.cc (write): Up position.
+ (setLength): Use and set position.
+ (seek): Set position.
+ (getFilePointer): Return position.
+ (read): Up position.
+
+2003-01-03 Mark Wielaard <mark@klomp.org>
+
+ Merge with Classpath:
+ * java/io/ObjectStreamClass.java (lookup): Split method and call
+ lookupForClassObject().
+ (lookupForClassObject): New method.
+ (isProxyClass): New field.
+ (setClass): Set isProxyClass, add object to classLookupTable, set
+ superClass and calculateOffsets.
+ (ObjectStreamClass): Set isProxyClass. Only set uid when Serializable
+ and not a proxy class.
+ (setFields): Set accessible true for serialPersistentFields.
+ (getClassUID): Same for suid. And check if suid is of type long.
+ (hasClassInitializer): Don't throw NoSuchMethodError.
+
+2003-01-03 Jeff Sturm <jsturm@one-point.com>
+
+ * configure.host (sparc*-*): Enable bytecode interpreter.
+
+2003-01-03 Mark Wielaard <mark@klomp.org>
+
+ * java/io/FileInputStream.java (finalize): Don't explicitly
+ finalize FileDescriptor.
+
+2003-01-03 Dhek Bhun Kho <bhun@chello.nl>
+
+ * gnu/java/rmi/server/UnicastServerRef.java (unexportObject):
+ Don't throw RemoteException.
+ * java/rmi/server/UnicastRemoteObject.java (unexportObject): Don't
+ throw RemoteException.
+
+2003-01-03 Joerg Brunsmann <joerg_brunsmann@yahoo.de>
+
+ * gnu/gcj/protocol/http/Connection.java (proxyPort, proxyInUse,
+ proxyHost): New static fields.
+ (<clinit>): Initialize new fields.
+ (connect): Use proxy if necessary.
+ (usingProxy): Implement.
+
+2003-01-03 Eric Blake <ebb9@email.byu.edu>
+
+ * java/util/TreeMap.java (fabricateTree): Fix off-by-one error.
+ (TreeIterator.remove): Prefer IllegalStateException over
+ ConcurrentModificationException, to match Sun.
+
+2002-01-02 Anthony Green <green@redhat.com>
+
+ * boehm.cc (_Jv_MarkObj): Mark the protectionDomain of a class.
+
+2003-01-02 Mark Wielaard <mark@klomp.org>
+
+ * java/net/HttpURLConnection.java (HTTP_NOT_IMPLEMENTED): Must be
+ public.
+ (HTTP_USE_PROXY): Add field.
+ (getResponseVals): Only set responseCode when not yet explicitly
+ set by subclass.
+
+2003-01-02 Artur Biesiadowski <abies@pg.gda.pl>
+ Mark Wielaard <mark@klomp.org>
+
+ * java/util/zip/ZipFile.java (entries): Now HashMap.
+ (readLeShort(DataInput, byte[])): Read from given byte array.
+ (readLeInt(DataInput, byte[]): Likewise.
+ (readLeShort(byte[] b, int off)): New method.
+ (readLeInt(byte[] b, int off)): Likewise.
+ (readEntries): Use byte arrays to read info in bigger chunks.
+ (getEntries): Return HashMap.
+ (getEntry): Use HashMap.
+ (locBuf): New private field.
+ (checkLocalHeader): Use locBuf to read info in one chunk.
+ (getInputStream): Use entries HashMap, wrap PartialInputStream
+ in BufferedInputStream.
+ (ZipEntryEnumeration): Use HashMap and Interator.
+
+2003-01-02 Mark Wielaard <mark@klomp.org>
+ Jeroen Frijters <jeroen@sumatra.nl>
+
+ * java/net/URLClassLoader.java (Resource.getCodeSource):
+ Fix check certs == null.
+ (getCanonicalFileURL): Removed method.
+ (JarURLLoader): Don't call removed method.
+ (FileURLLoader): Likewise.
+ (FileURLLoader.getResource): Don't canonicalize file name.
+
+2003-01-01 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (rmi_java_source_files): Added RMIClassLoaderSpi.
+ * java/awt/AlphaComposite.java, java/awt/BasicStroke.java,
+ java/awt/BufferCapabilities.java, java/awt/Button.java,
+ java/awt/CheckboxMenuItem.java, java/awt/Choice.java,
+ java/awt/Container.java, java/awt/Cursor.java,
+ java/awt/EventQueue.java, java/awt/FileDialog.java,
+ java/awt/Graphics2D.java, java/awt/Label.java, java/awt/Menu.java,
+ java/awt/MenuBar.java, java/awt/MenuComponent.java,
+ java/awt/PopupMenu.java, java/awt/ScrollPane.java,
+ java/awt/Scrollbar.java, java/awt/TextArea.java,
+ java/awt/TextField.java, java/awt/color/CMMException.java,
+ java/awt/color/ColorSpace.java, java/awt/color/ICC_Profile.java,
+ java/awt/color/ProfileDataException.java,
+ java/awt/datatransfer/Clipboard.java,
+ java/awt/datatransfer/DataFlavor.java,
+ java/awt/datatransfer/FlavorMap.java,
+ java/awt/datatransfer/SystemFlavorMap.java,
+ java/awt/dnd/DragGestureEvent.java,
+ java/awt/dnd/DragGestureRecognizer.java,
+ java/awt/dnd/DragSource.java, java/awt/dnd/DropTarget.java,
+ java/awt/event/WindowEvent.java, java/awt/geom/PathIterator.java,
+ java/awt/im/InputMethodHighlight.java,
+ java/io/PipedOutputStream.java, java/io/PipedWriter.java,
+ java/rmi/server/RMIClassLoader.java: Merged from Classpath.
+
+ * gnu/awt/j2d/Graphics2DImpl.java (drawImage): Changed type of
+ `op' to BufferedImageOp.
+
+2002-12-31 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR libgcj/7416:
+ * javax/naming/InitialContext.java (init): Use
+ gnu.classpath.home.url.
+ * java/security/Security.java: Use new properties.
+ (loadProviders): Accept base url; use it.
+ * java/lang/System.java: Document gnu.classpath.vm.shortname, and
+ gnu.classpath.home.url.
+ (gnu.classpath.home.url): Define.
+ (gnu.classpath.vm.shortname): Likewise.
+
+2002-12-31 Tom Tromey <tromey@redhat.com>
+ Ranjit Mathew <rmathew@hotmail.com>
+
+ Fix for PR libgcj/8997:
+ * java/lang/natObject.cc (spin): Use _Jv_platform_usleep.
+ Include platform.h.
+ * include/posix.h (_Jv_platform_usleep): New function.
+ * include/win32.h (_Jv_platform_usleep): New function.
+
+2002-12-30 Tom Tromey <tromey@redhat.com>
+
+ * gcj/javaprims.h: Updated class list.
+
+2002-12-30 Mark Wielaard <mark@klomp.org>
+
+ * java/net/URLStreamHandler.java (toExternalForm): Ignore port
+ if zero or smaller.
+
+2002-12-30 Mark Wielaard <mark@klomp.org>
+
+ * java/util/Properties (formatForOutput): Don't fall through to
+ default case after escaping character.
+
+2002-11-30 Mark Wielaard <mark@klomp.org>
+
+ * java/lang/StringBuffer.java (getChars): Remove wrong dstOffset check
+ against count.
+
+2002-11-21 Anthony Green <green@redhat.com>
+
+ * Makefile.am: Move org.xml.sax and org.w3c.dom into their own
+ libraries.
+ * Makefile.in: Rebuilt.
+
+2002-12-19 Anthony Green <green@redhat.com>
+
+ * Makefile.am (ordinary_java_source_files): Add
+ org/xml/sax/helpers/NewInstance.java.
+ * Makefile.in: Rebuilt.
+ * org/xml/sax/package.html, org/xml/sax/ext/package.html,
+ org/xml/sax/helpers/package.html: New files.
+ * org/xml/sax/*: Upgrade to SAX 2.0.1 release from
+ http://www.saxproject.org.
+
+2002-12-19 Andrew Haley <aph@redhat.com>
+
+ * java/util/natResourceBundle.cc: Include
+ ArrayIndexOutOfBoundsException.h.
+ (getCallingClassLoader): Don't put upper bound on stack search.
+ Catch ArrayIndexOutOfBoundsException.
+
+2002-12-19 Tom Tromey <tromey@redhat.com>
+
+ * libtool-version: Increased `current'.
+
+2002-12-19 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natClassLoader.cc (defineClass0): Removed erroneous
+ comment.
+ * java/lang/ClassLoader.java (defineClass): Use chained
+ exception when rethrowing.
+ * defineclass.cc (handleClassBegin): Mark class as interpreted.
+ * java/lang/reflect/Modifier.java (INVISIBLE, INTERPRETED): New
+ constants.
+ * resolve.cc (_Jv_PrepareMissingMethods): New function.
+ (_Jv_PrepareClass): Use it.
+ * include/java-interp.h (_Jv_IsInterpretedClass): Rewrote.
+ (_Jv_InterpClass): _Jv_PrepareMissingMethods now friend.
+ * java/lang/Class.h (Class::getModifiers): Mask with ALL_FLAGS.
+ (Class): _Jv_PrepareMissingMethods now friend.
+ * java/lang/natClassLoader.cc (defineClass0): Use JvSynchronize.
+ Record `NULL' for system class loader.
+ (_Jv_RegisterInitiatingLoader): Use JvSynchronize. Special case
+ system class loader.
+ (_Jv_FindClassInCache): Likewise.
+ (_Jv_UnregisterClass): Use JvSynchronize. Free old loader info.
+ (_Jv_FindClass): Special case system class loader.
+ * java/lang/natClass.cc (_Jv_abstractMethodError): New function.
+ (_Jv_SetVTableEntries): Put _Jv_abstractMethodError into empty
+ vtable slots.
+ (_Jv_LayoutVTableMethods): Don't generate vtable slot for a method
+ in a final class.
+ (_getDeclaredMethod): Don't return synthetic methods.
+ (getDeclaredMethods): Likewise.
+ (_getMethod): Likewise.
+ (_getMethods): Likewise.
+
+2002-12-18 Raif Naffah <raif@fl.net.au>
+
+ * java/math/BigInteger.java (euclidInv): Make sure quot and rem are in
+ canonical form after divide().
+ (modInverse): Likewise.
+
2002-12-13 Casey Marshall <rsdio@metastatic.org>
Mark Wielaard <mark@klomp.org>
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 0db820f360f..c07b7d769b5 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -14,23 +14,17 @@ endif
## What gets installed, and where.
##
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
if XLIB_AWT
-cond_x_ltlibrary = libgcjx.la
+cond_x_ltlibrary = lib-gnu-awt-xlib.la
+## We require libstdc++-v3 to be in the same build tree.
+xlib_includes = -I../libstdc++-v3/include -I../libstdc++-v3/include/$(target_alias) -I$(srcdir)/../libstdc++-v3/libsupc++
else
cond_x_ltlibrary =
+xlib_includes =
endif
-toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary)
-toolexeclib_DATA = libgcj.spec
+toolexeclib_LTLIBRARIES = libgcj.la lib-org-xml-sax.la lib-org-w3c-dom.la $(cond_x_ltlibrary)
+toolexecmainlib_DATA = libgcj.spec
jardir = $(datadir)/java
jar_DATA = libgcj-@gcc_version@.jar
@@ -107,10 +101,9 @@ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
LIBFFIINCS = @LIBFFIINCS@
INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
- $(GCINCS) $(THREADINCS) $(INCLTDL) \
+ $(GCINCS) $(THREADINCS) $(INCLTDL) $(xlib_includes) \
$(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
-
## ################################################################
##
@@ -147,27 +140,79 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LINK = $(LIBLINK)
-libgcjx_la_SOURCES = $(x_nat_source_files)
-EXTRA_libgcjx_la_SOURCES = $(x_java_source_files)
-libgcjx_la_DEPENDENCIES = libgcj-@gcc_version@.jar $(x_javao_files)
-libgcjx_la_LIBADD = $(x_javao_files)
-libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
+lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \
+org/w3c/dom/CDATASection.java \
+org/w3c/dom/CharacterData.java \
+org/w3c/dom/Comment.java \
+org/w3c/dom/DOMException.java \
+org/w3c/dom/DOMImplementation.java \
+org/w3c/dom/Document.java \
+org/w3c/dom/DocumentFragment.java \
+org/w3c/dom/DocumentType.java \
+org/w3c/dom/Element.java \
+org/w3c/dom/Entity.java \
+org/w3c/dom/EntityReference.java \
+org/w3c/dom/NamedNodeMap.java \
+org/w3c/dom/Node.java \
+org/w3c/dom/NodeList.java \
+org/w3c/dom/Notation.java \
+org/w3c/dom/ProcessingInstruction.java \
+org/w3c/dom/Text.java \
+org/w3c/dom/ranges/DocumentRange.java \
+org/w3c/dom/ranges/Range.java \
+org/w3c/dom/ranges/RangeException.java \
+org/w3c/dom/traversal/DocumentTraversal.java \
+org/w3c/dom/traversal/NodeFilter.java \
+org/w3c/dom/traversal/NodeIterator.java \
+org/w3c/dom/traversal/TreeWalker.java
+
+lib_org_xml_sax_la_SOURCES = org/xml/sax/ext/DeclHandler.java \
+org/xml/sax/ext/LexicalHandler.java \
+org/xml/sax/helpers/AttributeListImpl.java \
+org/xml/sax/helpers/AttributesImpl.java \
+org/xml/sax/helpers/DefaultHandler.java \
+org/xml/sax/helpers/LocatorImpl.java \
+org/xml/sax/helpers/NamespaceSupport.java \
+org/xml/sax/helpers/NewInstance.java \
+org/xml/sax/helpers/ParserAdapter.java \
+org/xml/sax/helpers/ParserFactory.java \
+org/xml/sax/helpers/XMLFilterImpl.java \
+org/xml/sax/helpers/XMLReaderAdapter.java \
+org/xml/sax/helpers/XMLReaderFactory.java \
+org/xml/sax/AttributeList.java \
+org/xml/sax/Attributes.java \
+org/xml/sax/ContentHandler.java \
+org/xml/sax/DTDHandler.java \
+org/xml/sax/DocumentHandler.java \
+org/xml/sax/EntityResolver.java \
+org/xml/sax/ErrorHandler.java \
+org/xml/sax/HandlerBase.java \
+org/xml/sax/InputSource.java \
+org/xml/sax/Locator.java \
+org/xml/sax/Parser.java \
+org/xml/sax/SAXException.java \
+org/xml/sax/SAXNotRecognizedException.java \
+org/xml/sax/SAXNotSupportedException.java \
+org/xml/sax/SAXParseException.java \
+org/xml/sax/XMLFilter.java \
+org/xml/sax/XMLReader.java
+
+lib_gnu_awt_xlib_la_SOURCES = $(x_nat_source_files)
+EXTRA_lib_gnu_awt_xlib_la_SOURCES = $(x_java_source_files)
+lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-@gcc_version@.jar $(x_javao_files)
+lib_gnu_awt_xlib_la_LIBADD = $(x_javao_files)
+lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
+ @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) \
## The mysterious backslash is consumed by make.
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
-libgcjx_la_LINK = $(LIBLINK)
-
-## Make a symlink for each `libgcjx' file that was installed.
-install-exec-hook:
- cd $(DESTDIR)$(libdir) && \
- if test -f libgcjx.la; then \
- rm -f gnu-awt-xlib.la; \
- $(LN_S) libgcjx.la gnu-awt-xlib.la; \
- fi
+lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
all_java_source_files = \
$(java_source_files) \
$(built_java_source_files) \
+ $(lib_org_xml_sax_la_SOURCES) \
+ $(lib_org_w3c_dom_la_SOURCES) \
$(x_java_source_files)
all_java_class_files = $(all_java_source_files:.java=.class)
@@ -218,7 +263,7 @@ $(c_files): %.lo: %.c
$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
## FIXME: GNU make.
-$(javao_files) $(x_javao_files): %.lo: %.java
+$(javao_files) $(x_javao_files) $(lib_org_w3c_dom_la_OBJECTS) $(lib_org_xml_sax_la_OBJECTS): %.lo: %.java
$(GCJCOMPILE) -o $@ $<
## Pass the list of object files to libtool in a temporary file to
@@ -229,10 +274,10 @@ libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
@GCLIBS@ @LIBFFI@ @ZLIBS@ \
-rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(LIBS)
-libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES)
- @: $(shell echo Creating list of files to link...) $(shell rm -f libgcjx.objectlist || :) $(shell touch libgcjx.objectlist) $(foreach object,$(libgcjx_la_OBJECTS) $(libgcjx_la_LIBADD),$(shell echo $(object) >> libgcjx.objectlist))
- $(libgcjx_la_LINK) -objectlist libgcjx.objectlist \
- -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS)
+lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPENDENCIES)
+ @: $(shell echo Creating list of files to link...) $(shell rm -f lib_gnu_awt_xlib.objectlist || :) $(shell touch lib_gnu_awt_xlib.objectlist) $(foreach object,$(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_LIBADD),$(shell echo $(object) >> lib_gnu_awt_xlib.objectlist))
+ $(lib_gnu_awt_xlib_la_LINK) -objectlist lib_gnu_awt_xlib.objectlist \
+ -rpath $(toolexeclibdir) $(lib_gnu_awt_xlib_la_LDFLAGS) $(LIBS)
## ################################################################
@@ -1277,6 +1322,7 @@ java/rmi/server/LogStream.java \
java/rmi/server/ObjID.java \
java/rmi/server/Operation.java \
java/rmi/server/RMIClassLoader.java \
+java/rmi/server/RMIClassLoaderSpi.java \
java/rmi/server/RMIClientSocketFactory.java \
java/rmi/server/RMIFailureHandler.java \
java/rmi/server/RMIServerSocketFactory.java \
@@ -1630,6 +1676,7 @@ java/io/StringWriter.java \
java/io/SyncFailedException.java \
java/io/UTFDataFormatException.java \
java/io/UnsupportedEncodingException.java \
+java/io/VMObjectStreamClass.java \
java/io/WriteAbortedException.java \
java/io/Writer.java \
java/util/AbstractCollection.java \
@@ -1873,6 +1920,21 @@ gnu/java/locale/LocaleInformation_zh_HK.java \
gnu/java/locale/LocaleInformation_zh_SG.java \
gnu/java/locale/LocaleInformation_zh_TW.java \
gnu/java/math/MPN.java \
+gnu/java/nio/ByteBufferImpl.java \
+gnu/java/nio/CharBufferImpl.java \
+gnu/java/nio/DatagramChannelImpl.java \
+gnu/java/nio/DoubleBufferImpl.java \
+gnu/java/nio/FileChannelImpl.java \
+gnu/java/nio/FloatBufferImpl.java \
+gnu/java/nio/IntBufferImpl.java \
+gnu/java/nio/LongBufferImpl.java \
+gnu/java/nio/PipeImpl.java \
+gnu/java/nio/SelectionKeyImpl.java \
+gnu/java/nio/SelectorImpl.java \
+gnu/java/nio/SelectorProviderImpl.java \
+gnu/java/nio/ServerSocketChannelImpl.java \
+gnu/java/nio/ShortBufferImpl.java \
+gnu/java/nio/SocketChannelImpl.java \
gnu/java/nio/charset/ISO_8859_1.java \
gnu/java/nio/charset/Provider.java \
gnu/java/nio/charset/US_ASCII.java \
@@ -1975,20 +2037,27 @@ java/nio/BufferUnderflowException.java \
java/nio/ByteBuffer.java \
java/nio/ByteOrder.java \
java/nio/CharBuffer.java \
+java/nio/DoubleBuffer.java \
+java/nio/FloatBuffer.java \
+java/nio/IntBuffer.java \
java/nio/InvalidMarkException.java \
+java/nio/LongBuffer.java \
java/nio/MappedByteBuffer.java \
java/nio/ReadOnlyBufferException.java \
+java/nio/ShortBuffer.java \
java/nio/channels/AlreadyConnectedException.java \
java/nio/channels/AsynchronousCloseException.java \
java/nio/channels/ByteChannel.java \
java/nio/channels/CancelledKeyException.java \
java/nio/channels/Channel.java \
+java/nio/channels/Channels.java \
java/nio/channels/ClosedByInterruptException.java \
java/nio/channels/ClosedChannelException.java \
java/nio/channels/ClosedSelectorException.java \
java/nio/channels/ConnectionPendingException.java \
java/nio/channels/DatagramChannel.java \
java/nio/channels/FileChannel.java \
+java/nio/channels/FileLock.java \
java/nio/channels/FileLockInterruptionException.java \
java/nio/channels/GatheringByteChannel.java \
java/nio/channels/IllegalBlockingModeException.java \
@@ -2220,60 +2289,6 @@ java/util/zip/ZipException.java \
java/util/zip/ZipFile.java \
java/util/zip/ZipInputStream.java \
java/util/zip/ZipOutputStream.java \
-org/w3c/dom/Attr.java \
-org/w3c/dom/CDATASection.java \
-org/w3c/dom/CharacterData.java \
-org/w3c/dom/Comment.java \
-org/w3c/dom/DOMException.java \
-org/w3c/dom/DOMImplementation.java \
-org/w3c/dom/Document.java \
-org/w3c/dom/DocumentFragment.java \
-org/w3c/dom/DocumentType.java \
-org/w3c/dom/Element.java \
-org/w3c/dom/Entity.java \
-org/w3c/dom/EntityReference.java \
-org/w3c/dom/NamedNodeMap.java \
-org/w3c/dom/Node.java \
-org/w3c/dom/NodeList.java \
-org/w3c/dom/Notation.java \
-org/w3c/dom/ProcessingInstruction.java \
-org/w3c/dom/Text.java \
-org/w3c/dom/ranges/DocumentRange.java \
-org/w3c/dom/ranges/Range.java \
-org/w3c/dom/ranges/RangeException.java \
-org/w3c/dom/traversal/DocumentTraversal.java \
-org/w3c/dom/traversal/NodeFilter.java \
-org/w3c/dom/traversal/NodeIterator.java \
-org/w3c/dom/traversal/TreeWalker.java \
-org/xml/sax/ext/DeclHandler.java \
-org/xml/sax/ext/LexicalHandler.java \
-org/xml/sax/helpers/AttributeListImpl.java \
-org/xml/sax/helpers/AttributesImpl.java \
-org/xml/sax/helpers/DefaultHandler.java \
-org/xml/sax/helpers/LocatorImpl.java \
-org/xml/sax/helpers/NamespaceSupport.java \
-org/xml/sax/helpers/ParserAdapter.java \
-org/xml/sax/helpers/ParserFactory.java \
-org/xml/sax/helpers/XMLFilterImpl.java \
-org/xml/sax/helpers/XMLReaderAdapter.java \
-org/xml/sax/helpers/XMLReaderFactory.java \
-org/xml/sax/AttributeList.java \
-org/xml/sax/Attributes.java \
-org/xml/sax/ContentHandler.java \
-org/xml/sax/DTDHandler.java \
-org/xml/sax/DocumentHandler.java \
-org/xml/sax/EntityResolver.java \
-org/xml/sax/ErrorHandler.java \
-org/xml/sax/HandlerBase.java \
-org/xml/sax/InputSource.java \
-org/xml/sax/Locator.java \
-org/xml/sax/Parser.java \
-org/xml/sax/SAXException.java \
-org/xml/sax/SAXNotRecognizedException.java \
-org/xml/sax/SAXNotSupportedException.java \
-org/xml/sax/SAXParseException.java \
-org/xml/sax/XMLFilter.java \
-org/xml/sax/XMLReader.java \
$(rmi_java_source_files) \
$(awt_java_source_files) \
$(convert_source_files) \
@@ -2321,10 +2336,20 @@ gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natStackTrace.cc \
gnu/gcj/runtime/natStringBuffer.cc \
gnu/gcj/runtime/natVMClassLoader.cc \
+gnu/java/nio/natByteBufferImpl.cc \
+gnu/java/nio/natCharBufferImpl.cc \
+gnu/java/nio/natDoubleBufferImpl.cc \
+gnu/java/nio/natFileChannelImpl.cc \
+gnu/java/nio/natFloatBufferImpl.cc \
+gnu/java/nio/natIntBufferImpl.cc \
+gnu/java/nio/natLongBufferImpl.cc \
+gnu/java/nio/natSelectorImpl.cc \
+gnu/java/nio/natShortBufferImpl.cc \
+gnu/java/nio/natSocketChannelImpl.cc \
java/io/natFile.cc \
java/io/natFileDescriptor.cc \
java/io/natObjectInputStream.cc \
-java/io/natObjectOutputStream.cc \
+java/io/natVMObjectStreamClass.cc \
java/lang/natCharacter.cc \
java/lang/natClass.cc \
java/lang/natClassLoader.cc \
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index c8d722f0521..cdc5802d91c 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -65,6 +65,7 @@ target_alias = @target_alias@
target_triplet = @target@
AR = @AR@
AS = @AS@
+BACKTRACESPEC = @BACKTRACESPEC@
CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@
@@ -85,6 +86,7 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INTERPRETER = @INTERPRETER@
JC1GCSPEC = @JC1GCSPEC@
@@ -127,18 +129,20 @@ here = @here@
libgcj_basedir = @libgcj_basedir@
mkinstalldirs = @mkinstalldirs@
tool_include_dir = @tool_include_dir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign
@TESTSUBDIR_TRUE@SUBDIRS = @TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include
@TESTSUBDIR_FALSE@SUBDIRS = @TESTSUBDIR_FALSE@$(DIRLTDL) gcj include
-@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
-@XLIB_AWT_TRUE@cond_x_ltlibrary = @XLIB_AWT_TRUE@libgcjx.la
+@XLIB_AWT_TRUE@cond_x_ltlibrary = @XLIB_AWT_TRUE@lib-gnu-awt-xlib.la
@XLIB_AWT_FALSE@cond_x_ltlibrary =
+@XLIB_AWT_TRUE@xlib_includes = @XLIB_AWT_TRUE@-I../libstdc++-v3/include -I../libstdc++-v3/include/$(target_alias) -I$(srcdir)/../libstdc++-v3/libsupc++
+@XLIB_AWT_FALSE@xlib_includes =
-toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary)
-toolexeclib_DATA = libgcj.spec
+toolexeclib_LTLIBRARIES = libgcj.la lib-org-xml-sax.la lib-org-w3c-dom.la $(cond_x_ltlibrary)
+toolexecmainlib_DATA = libgcj.spec
jardir = $(datadir)/java
jar_DATA = libgcj-@gcc_version@.jar
@@ -182,7 +186,7 @@ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
LIBFFIINCS = @LIBFFIINCS@
INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
- $(GCINCS) $(THREADINCS) $(INCLTDL) \
+ $(GCINCS) $(THREADINCS) $(INCLTDL) $(xlib_includes) \
$(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
@@ -218,19 +222,81 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
libgcj_la_LINK = $(LIBLINK)
-libgcjx_la_SOURCES = $(x_nat_source_files)
-EXTRA_libgcjx_la_SOURCES = $(x_java_source_files)
-libgcjx_la_DEPENDENCIES = libgcj-@gcc_version@.jar $(x_javao_files)
-libgcjx_la_LIBADD = $(x_javao_files)
-libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
+lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \
+org/w3c/dom/CDATASection.java \
+org/w3c/dom/CharacterData.java \
+org/w3c/dom/Comment.java \
+org/w3c/dom/DOMException.java \
+org/w3c/dom/DOMImplementation.java \
+org/w3c/dom/Document.java \
+org/w3c/dom/DocumentFragment.java \
+org/w3c/dom/DocumentType.java \
+org/w3c/dom/Element.java \
+org/w3c/dom/Entity.java \
+org/w3c/dom/EntityReference.java \
+org/w3c/dom/NamedNodeMap.java \
+org/w3c/dom/Node.java \
+org/w3c/dom/NodeList.java \
+org/w3c/dom/Notation.java \
+org/w3c/dom/ProcessingInstruction.java \
+org/w3c/dom/Text.java \
+org/w3c/dom/ranges/DocumentRange.java \
+org/w3c/dom/ranges/Range.java \
+org/w3c/dom/ranges/RangeException.java \
+org/w3c/dom/traversal/DocumentTraversal.java \
+org/w3c/dom/traversal/NodeFilter.java \
+org/w3c/dom/traversal/NodeIterator.java \
+org/w3c/dom/traversal/TreeWalker.java
+
+
+lib_org_xml_sax_la_SOURCES = org/xml/sax/ext/DeclHandler.java \
+org/xml/sax/ext/LexicalHandler.java \
+org/xml/sax/helpers/AttributeListImpl.java \
+org/xml/sax/helpers/AttributesImpl.java \
+org/xml/sax/helpers/DefaultHandler.java \
+org/xml/sax/helpers/LocatorImpl.java \
+org/xml/sax/helpers/NamespaceSupport.java \
+org/xml/sax/helpers/NewInstance.java \
+org/xml/sax/helpers/ParserAdapter.java \
+org/xml/sax/helpers/ParserFactory.java \
+org/xml/sax/helpers/XMLFilterImpl.java \
+org/xml/sax/helpers/XMLReaderAdapter.java \
+org/xml/sax/helpers/XMLReaderFactory.java \
+org/xml/sax/AttributeList.java \
+org/xml/sax/Attributes.java \
+org/xml/sax/ContentHandler.java \
+org/xml/sax/DTDHandler.java \
+org/xml/sax/DocumentHandler.java \
+org/xml/sax/EntityResolver.java \
+org/xml/sax/ErrorHandler.java \
+org/xml/sax/HandlerBase.java \
+org/xml/sax/InputSource.java \
+org/xml/sax/Locator.java \
+org/xml/sax/Parser.java \
+org/xml/sax/SAXException.java \
+org/xml/sax/SAXNotRecognizedException.java \
+org/xml/sax/SAXNotSupportedException.java \
+org/xml/sax/SAXParseException.java \
+org/xml/sax/XMLFilter.java \
+org/xml/sax/XMLReader.java
+
+
+lib_gnu_awt_xlib_la_SOURCES = $(x_nat_source_files)
+EXTRA_lib_gnu_awt_xlib_la_SOURCES = $(x_java_source_files)
+lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-@gcc_version@.jar $(x_javao_files)
+lib_gnu_awt_xlib_la_LIBADD = $(x_javao_files)
+lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
+ @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
-libgcjx_la_LINK = $(LIBLINK)
+lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
all_java_source_files = \
$(java_source_files) \
$(built_java_source_files) \
+ $(lib_org_xml_sax_la_SOURCES) \
+ $(lib_org_w3c_dom_la_SOURCES) \
$(x_java_source_files)
@@ -1035,6 +1101,7 @@ java/rmi/server/LogStream.java \
java/rmi/server/ObjID.java \
java/rmi/server/Operation.java \
java/rmi/server/RMIClassLoader.java \
+java/rmi/server/RMIClassLoaderSpi.java \
java/rmi/server/RMIClientSocketFactory.java \
java/rmi/server/RMIFailureHandler.java \
java/rmi/server/RMIServerSocketFactory.java \
@@ -1385,6 +1452,7 @@ java/io/StringWriter.java \
java/io/SyncFailedException.java \
java/io/UTFDataFormatException.java \
java/io/UnsupportedEncodingException.java \
+java/io/VMObjectStreamClass.java \
java/io/WriteAbortedException.java \
java/io/Writer.java \
java/util/AbstractCollection.java \
@@ -1623,6 +1691,21 @@ gnu/java/locale/LocaleInformation_zh_HK.java \
gnu/java/locale/LocaleInformation_zh_SG.java \
gnu/java/locale/LocaleInformation_zh_TW.java \
gnu/java/math/MPN.java \
+gnu/java/nio/ByteBufferImpl.java \
+gnu/java/nio/CharBufferImpl.java \
+gnu/java/nio/DatagramChannelImpl.java \
+gnu/java/nio/DoubleBufferImpl.java \
+gnu/java/nio/FileChannelImpl.java \
+gnu/java/nio/FloatBufferImpl.java \
+gnu/java/nio/IntBufferImpl.java \
+gnu/java/nio/LongBufferImpl.java \
+gnu/java/nio/PipeImpl.java \
+gnu/java/nio/SelectionKeyImpl.java \
+gnu/java/nio/SelectorImpl.java \
+gnu/java/nio/SelectorProviderImpl.java \
+gnu/java/nio/ServerSocketChannelImpl.java \
+gnu/java/nio/ShortBufferImpl.java \
+gnu/java/nio/SocketChannelImpl.java \
gnu/java/nio/charset/ISO_8859_1.java \
gnu/java/nio/charset/Provider.java \
gnu/java/nio/charset/US_ASCII.java \
@@ -1725,20 +1808,27 @@ java/nio/BufferUnderflowException.java \
java/nio/ByteBuffer.java \
java/nio/ByteOrder.java \
java/nio/CharBuffer.java \
+java/nio/DoubleBuffer.java \
+java/nio/FloatBuffer.java \
+java/nio/IntBuffer.java \
java/nio/InvalidMarkException.java \
+java/nio/LongBuffer.java \
java/nio/MappedByteBuffer.java \
java/nio/ReadOnlyBufferException.java \
+java/nio/ShortBuffer.java \
java/nio/channels/AlreadyConnectedException.java \
java/nio/channels/AsynchronousCloseException.java \
java/nio/channels/ByteChannel.java \
java/nio/channels/CancelledKeyException.java \
java/nio/channels/Channel.java \
+java/nio/channels/Channels.java \
java/nio/channels/ClosedByInterruptException.java \
java/nio/channels/ClosedChannelException.java \
java/nio/channels/ClosedSelectorException.java \
java/nio/channels/ConnectionPendingException.java \
java/nio/channels/DatagramChannel.java \
java/nio/channels/FileChannel.java \
+java/nio/channels/FileLock.java \
java/nio/channels/FileLockInterruptionException.java \
java/nio/channels/GatheringByteChannel.java \
java/nio/channels/IllegalBlockingModeException.java \
@@ -1970,60 +2060,6 @@ java/util/zip/ZipException.java \
java/util/zip/ZipFile.java \
java/util/zip/ZipInputStream.java \
java/util/zip/ZipOutputStream.java \
-org/w3c/dom/Attr.java \
-org/w3c/dom/CDATASection.java \
-org/w3c/dom/CharacterData.java \
-org/w3c/dom/Comment.java \
-org/w3c/dom/DOMException.java \
-org/w3c/dom/DOMImplementation.java \
-org/w3c/dom/Document.java \
-org/w3c/dom/DocumentFragment.java \
-org/w3c/dom/DocumentType.java \
-org/w3c/dom/Element.java \
-org/w3c/dom/Entity.java \
-org/w3c/dom/EntityReference.java \
-org/w3c/dom/NamedNodeMap.java \
-org/w3c/dom/Node.java \
-org/w3c/dom/NodeList.java \
-org/w3c/dom/Notation.java \
-org/w3c/dom/ProcessingInstruction.java \
-org/w3c/dom/Text.java \
-org/w3c/dom/ranges/DocumentRange.java \
-org/w3c/dom/ranges/Range.java \
-org/w3c/dom/ranges/RangeException.java \
-org/w3c/dom/traversal/DocumentTraversal.java \
-org/w3c/dom/traversal/NodeFilter.java \
-org/w3c/dom/traversal/NodeIterator.java \
-org/w3c/dom/traversal/TreeWalker.java \
-org/xml/sax/ext/DeclHandler.java \
-org/xml/sax/ext/LexicalHandler.java \
-org/xml/sax/helpers/AttributeListImpl.java \
-org/xml/sax/helpers/AttributesImpl.java \
-org/xml/sax/helpers/DefaultHandler.java \
-org/xml/sax/helpers/LocatorImpl.java \
-org/xml/sax/helpers/NamespaceSupport.java \
-org/xml/sax/helpers/ParserAdapter.java \
-org/xml/sax/helpers/ParserFactory.java \
-org/xml/sax/helpers/XMLFilterImpl.java \
-org/xml/sax/helpers/XMLReaderAdapter.java \
-org/xml/sax/helpers/XMLReaderFactory.java \
-org/xml/sax/AttributeList.java \
-org/xml/sax/Attributes.java \
-org/xml/sax/ContentHandler.java \
-org/xml/sax/DTDHandler.java \
-org/xml/sax/DocumentHandler.java \
-org/xml/sax/EntityResolver.java \
-org/xml/sax/ErrorHandler.java \
-org/xml/sax/HandlerBase.java \
-org/xml/sax/InputSource.java \
-org/xml/sax/Locator.java \
-org/xml/sax/Parser.java \
-org/xml/sax/SAXException.java \
-org/xml/sax/SAXNotRecognizedException.java \
-org/xml/sax/SAXNotSupportedException.java \
-org/xml/sax/SAXParseException.java \
-org/xml/sax/XMLFilter.java \
-org/xml/sax/XMLReader.java \
$(rmi_java_source_files) \
$(awt_java_source_files) \
$(convert_source_files) \
@@ -2070,10 +2106,20 @@ gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natStackTrace.cc \
gnu/gcj/runtime/natStringBuffer.cc \
gnu/gcj/runtime/natVMClassLoader.cc \
+gnu/java/nio/natByteBufferImpl.cc \
+gnu/java/nio/natCharBufferImpl.cc \
+gnu/java/nio/natDoubleBufferImpl.cc \
+gnu/java/nio/natFileChannelImpl.cc \
+gnu/java/nio/natFloatBufferImpl.cc \
+gnu/java/nio/natIntBufferImpl.cc \
+gnu/java/nio/natLongBufferImpl.cc \
+gnu/java/nio/natSelectorImpl.cc \
+gnu/java/nio/natShortBufferImpl.cc \
+gnu/java/nio/natSocketChannelImpl.cc \
java/io/natFile.cc \
java/io/natFileDescriptor.cc \
java/io/natObjectInputStream.cc \
-java/io/natObjectOutputStream.cc \
+java/io/natVMObjectStreamClass.cc \
java/lang/natCharacter.cc \
java/lang/natClass.cc \
java/lang/natClassLoader.cc \
@@ -2240,9 +2286,14 @@ gnu/gcj/io/shs.lo gnu/gcj/protocol/core/natCoreInputStream.lo \
gnu/gcj/runtime/natFinalizerThread.lo gnu/gcj/runtime/natFirstThread.lo \
gnu/gcj/runtime/natNameFinder.lo gnu/gcj/runtime/natSharedLibLoader.lo \
gnu/gcj/runtime/natStackTrace.lo gnu/gcj/runtime/natStringBuffer.lo \
-gnu/gcj/runtime/natVMClassLoader.lo java/io/natFile.lo \
+gnu/gcj/runtime/natVMClassLoader.lo gnu/java/nio/natByteBufferImpl.lo \
+gnu/java/nio/natCharBufferImpl.lo gnu/java/nio/natDoubleBufferImpl.lo \
+gnu/java/nio/natFileChannelImpl.lo gnu/java/nio/natFloatBufferImpl.lo \
+gnu/java/nio/natIntBufferImpl.lo gnu/java/nio/natLongBufferImpl.lo \
+gnu/java/nio/natSelectorImpl.lo gnu/java/nio/natShortBufferImpl.lo \
+gnu/java/nio/natSocketChannelImpl.lo java/io/natFile.lo \
java/io/natFileDescriptor.lo java/io/natObjectInputStream.lo \
-java/io/natObjectOutputStream.lo java/lang/natCharacter.lo \
+java/io/natVMObjectStreamClass.lo java/lang/natCharacter.lo \
java/lang/natClass.lo java/lang/natClassLoader.lo \
java/lang/natConcreteProcess.lo java/lang/natDouble.lo \
java/lang/natFloat.lo java/lang/natMath.lo java/lang/natObject.lo \
@@ -2257,7 +2308,47 @@ java/net/natPlainDatagramSocketImpl.lo java/net/natPlainSocketImpl.lo \
java/text/natCollator.lo java/util/natResourceBundle.lo \
java/util/natTimeZone.lo java/util/zip/natDeflater.lo \
java/util/zip/natInflater.lo
-libgcjx_la_OBJECTS = gnu/gcj/xlib/natClip.lo \
+lib_org_xml_sax_la_LDFLAGS =
+lib_org_xml_sax_la_LIBADD =
+lib_org_xml_sax_la_OBJECTS = org/xml/sax/ext/DeclHandler.lo \
+org/xml/sax/ext/LexicalHandler.lo \
+org/xml/sax/helpers/AttributeListImpl.lo \
+org/xml/sax/helpers/AttributesImpl.lo \
+org/xml/sax/helpers/DefaultHandler.lo \
+org/xml/sax/helpers/LocatorImpl.lo \
+org/xml/sax/helpers/NamespaceSupport.lo \
+org/xml/sax/helpers/NewInstance.lo org/xml/sax/helpers/ParserAdapter.lo \
+org/xml/sax/helpers/ParserFactory.lo \
+org/xml/sax/helpers/XMLFilterImpl.lo \
+org/xml/sax/helpers/XMLReaderAdapter.lo \
+org/xml/sax/helpers/XMLReaderFactory.lo org/xml/sax/AttributeList.lo \
+org/xml/sax/Attributes.lo org/xml/sax/ContentHandler.lo \
+org/xml/sax/DTDHandler.lo org/xml/sax/DocumentHandler.lo \
+org/xml/sax/EntityResolver.lo org/xml/sax/ErrorHandler.lo \
+org/xml/sax/HandlerBase.lo org/xml/sax/InputSource.lo \
+org/xml/sax/Locator.lo org/xml/sax/Parser.lo \
+org/xml/sax/SAXException.lo org/xml/sax/SAXNotRecognizedException.lo \
+org/xml/sax/SAXNotSupportedException.lo \
+org/xml/sax/SAXParseException.lo org/xml/sax/XMLFilter.lo \
+org/xml/sax/XMLReader.lo
+lib_org_w3c_dom_la_LDFLAGS =
+lib_org_w3c_dom_la_LIBADD =
+lib_org_w3c_dom_la_OBJECTS = org/w3c/dom/Attr.lo \
+org/w3c/dom/CDATASection.lo org/w3c/dom/CharacterData.lo \
+org/w3c/dom/Comment.lo org/w3c/dom/DOMException.lo \
+org/w3c/dom/DOMImplementation.lo org/w3c/dom/Document.lo \
+org/w3c/dom/DocumentFragment.lo org/w3c/dom/DocumentType.lo \
+org/w3c/dom/Element.lo org/w3c/dom/Entity.lo \
+org/w3c/dom/EntityReference.lo org/w3c/dom/NamedNodeMap.lo \
+org/w3c/dom/Node.lo org/w3c/dom/NodeList.lo org/w3c/dom/Notation.lo \
+org/w3c/dom/ProcessingInstruction.lo org/w3c/dom/Text.lo \
+org/w3c/dom/ranges/DocumentRange.lo org/w3c/dom/ranges/Range.lo \
+org/w3c/dom/ranges/RangeException.lo \
+org/w3c/dom/traversal/DocumentTraversal.lo \
+org/w3c/dom/traversal/NodeFilter.lo \
+org/w3c/dom/traversal/NodeIterator.lo \
+org/w3c/dom/traversal/TreeWalker.lo
+lib_gnu_awt_xlib_la_OBJECTS = gnu/gcj/xlib/natClip.lo \
gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \
gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \
gnu/gcj/xlib/natGC.lo gnu/gcj/xlib/natPixmap.lo \
@@ -2291,7 +2382,7 @@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CF
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 $@
-DATA = $(jar_DATA) $(toolexeclib_DATA)
+DATA = $(jar_DATA) $(toolexecmainlib_DATA)
DIST_COMMON = README COPYING ChangeLog Makefile.am Makefile.in NEWS \
THANKS acinclude.m4 aclocal.m4 configure configure.in \
@@ -2553,7 +2644,19 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/java/locale/LocaleInformation_zh_HK.P \
.deps/gnu/java/locale/LocaleInformation_zh_SG.P \
.deps/gnu/java/locale/LocaleInformation_zh_TW.P \
-.deps/gnu/java/math/MPN.P .deps/gnu/java/nio/charset/ISO_8859_1.P \
+.deps/gnu/java/math/MPN.P .deps/gnu/java/nio/ByteBufferImpl.P \
+.deps/gnu/java/nio/CharBufferImpl.P \
+.deps/gnu/java/nio/DatagramChannelImpl.P \
+.deps/gnu/java/nio/DoubleBufferImpl.P \
+.deps/gnu/java/nio/FileChannelImpl.P \
+.deps/gnu/java/nio/FloatBufferImpl.P .deps/gnu/java/nio/IntBufferImpl.P \
+.deps/gnu/java/nio/LongBufferImpl.P .deps/gnu/java/nio/PipeImpl.P \
+.deps/gnu/java/nio/SelectionKeyImpl.P .deps/gnu/java/nio/SelectorImpl.P \
+.deps/gnu/java/nio/SelectorProviderImpl.P \
+.deps/gnu/java/nio/ServerSocketChannelImpl.P \
+.deps/gnu/java/nio/ShortBufferImpl.P \
+.deps/gnu/java/nio/SocketChannelImpl.P \
+.deps/gnu/java/nio/charset/ISO_8859_1.P \
.deps/gnu/java/nio/charset/Provider.P \
.deps/gnu/java/nio/charset/US_ASCII.P \
.deps/gnu/java/nio/charset/UTF_16.P \
@@ -2562,6 +2665,16 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/java/nio/charset/UTF_16Encoder.P \
.deps/gnu/java/nio/charset/UTF_16LE.P \
.deps/gnu/java/nio/charset/UTF_8.P \
+.deps/gnu/java/nio/natByteBufferImpl.P \
+.deps/gnu/java/nio/natCharBufferImpl.P \
+.deps/gnu/java/nio/natDoubleBufferImpl.P \
+.deps/gnu/java/nio/natFileChannelImpl.P \
+.deps/gnu/java/nio/natFloatBufferImpl.P \
+.deps/gnu/java/nio/natIntBufferImpl.P \
+.deps/gnu/java/nio/natLongBufferImpl.P \
+.deps/gnu/java/nio/natSelectorImpl.P \
+.deps/gnu/java/nio/natShortBufferImpl.P \
+.deps/gnu/java/nio/natSocketChannelImpl.P \
.deps/gnu/java/rmi/RMIMarshalledObjectInputStream.P \
.deps/gnu/java/rmi/RMIMarshalledObjectOutputStream.P \
.deps/gnu/java/rmi/dgc/DGCImpl.P .deps/gnu/java/rmi/dgc/DGCImpl_Skel.P \
@@ -2892,10 +3005,11 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/io/SyncFailedException.P \
.deps/java/io/UTFDataFormatException.P \
.deps/java/io/UnsupportedEncodingException.P \
+.deps/java/io/VMObjectStreamClass.P \
.deps/java/io/WriteAbortedException.P .deps/java/io/Writer.P \
.deps/java/io/natFile.P .deps/java/io/natFileDescriptor.P \
.deps/java/io/natObjectInputStream.P \
-.deps/java/io/natObjectOutputStream.P \
+.deps/java/io/natVMObjectStreamClass.P \
.deps/java/lang/AbstractMethodError.P \
.deps/java/lang/ArithmeticException.P \
.deps/java/lang/ArrayIndexOutOfBoundsException.P \
@@ -3029,19 +3143,22 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/nio/BufferOverflowException.P \
.deps/java/nio/BufferUnderflowException.P .deps/java/nio/ByteBuffer.P \
.deps/java/nio/ByteOrder.P .deps/java/nio/CharBuffer.P \
-.deps/java/nio/InvalidMarkException.P .deps/java/nio/MappedByteBuffer.P \
-.deps/java/nio/ReadOnlyBufferException.P \
+.deps/java/nio/DoubleBuffer.P .deps/java/nio/FloatBuffer.P \
+.deps/java/nio/IntBuffer.P .deps/java/nio/InvalidMarkException.P \
+.deps/java/nio/LongBuffer.P .deps/java/nio/MappedByteBuffer.P \
+.deps/java/nio/ReadOnlyBufferException.P .deps/java/nio/ShortBuffer.P \
.deps/java/nio/channels/AlreadyConnectedException.P \
.deps/java/nio/channels/AsynchronousCloseException.P \
.deps/java/nio/channels/ByteChannel.P \
.deps/java/nio/channels/CancelledKeyException.P \
-.deps/java/nio/channels/Channel.P \
+.deps/java/nio/channels/Channel.P .deps/java/nio/channels/Channels.P \
.deps/java/nio/channels/ClosedByInterruptException.P \
.deps/java/nio/channels/ClosedChannelException.P \
.deps/java/nio/channels/ClosedSelectorException.P \
.deps/java/nio/channels/ConnectionPendingException.P \
.deps/java/nio/channels/DatagramChannel.P \
.deps/java/nio/channels/FileChannel.P \
+.deps/java/nio/channels/FileLock.P \
.deps/java/nio/channels/FileLockInterruptionException.P \
.deps/java/nio/channels/GatheringByteChannel.P \
.deps/java/nio/channels/IllegalBlockingModeException.P \
@@ -3117,6 +3234,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/java/rmi/server/LoaderHandler.P .deps/java/rmi/server/LogStream.P \
.deps/java/rmi/server/ObjID.P .deps/java/rmi/server/Operation.P \
.deps/java/rmi/server/RMIClassLoader.P \
+.deps/java/rmi/server/RMIClassLoaderSpi.P \
.deps/java/rmi/server/RMIClientSocketFactory.P \
.deps/java/rmi/server/RMIFailureHandler.P \
.deps/java/rmi/server/RMIServerSocketFactory.P \
@@ -3701,6 +3819,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/org/xml/sax/helpers/DefaultHandler.P \
.deps/org/xml/sax/helpers/LocatorImpl.P \
.deps/org/xml/sax/helpers/NamespaceSupport.P \
+.deps/org/xml/sax/helpers/NewInstance.P \
.deps/org/xml/sax/helpers/ParserAdapter.P \
.deps/org/xml/sax/helpers/ParserFactory.P \
.deps/org/xml/sax/helpers/XMLFilterImpl.P \
@@ -3708,8 +3827,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/org/xml/sax/helpers/XMLReaderFactory.P .deps/posix-threads.P \
.deps/posix.P .deps/prims.P .deps/resolve.P .deps/verify.P \
.deps/win32-threads.P .deps/win32.P
-SOURCES = $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(libgcjx_la_SOURCES) $(EXTRA_libgcjx_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(rmic_SOURCES) $(EXTRA_rmic_SOURCES) $(rmiregistry_SOURCES) $(EXTRA_rmiregistry_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES)
-OBJECTS = $(libgcj_la_OBJECTS) $(libgcjx_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(rmic_OBJECTS) $(rmiregistry_OBJECTS) $(gen_from_JIS_OBJECTS)
+SOURCES = $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(lib_org_xml_sax_la_SOURCES) $(lib_org_w3c_dom_la_SOURCES) $(lib_gnu_awt_xlib_la_SOURCES) $(EXTRA_lib_gnu_awt_xlib_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(rmic_SOURCES) $(EXTRA_rmic_SOURCES) $(rmiregistry_SOURCES) $(EXTRA_rmiregistry_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES)
+OBJECTS = $(libgcj_la_OBJECTS) $(lib_org_xml_sax_la_OBJECTS) $(lib_org_w3c_dom_la_OBJECTS) $(lib_gnu_awt_xlib_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(rmic_OBJECTS) $(rmiregistry_OBJECTS) $(gen_from_JIS_OBJECTS)
all: all-redirect
.SUFFIXES:
@@ -3796,6 +3915,12 @@ distclean-libtool:
maintainer-clean-libtool:
+lib-org-xml-sax.la: $(lib_org_xml_sax_la_OBJECTS) $(lib_org_xml_sax_la_DEPENDENCIES)
+ $(LINK) -rpath $(toolexeclibdir) $(lib_org_xml_sax_la_LDFLAGS) $(lib_org_xml_sax_la_OBJECTS) $(lib_org_xml_sax_la_LIBADD) $(LIBS)
+
+lib-org-w3c-dom.la: $(lib_org_w3c_dom_la_OBJECTS) $(lib_org_w3c_dom_la_DEPENDENCIES)
+ $(LINK) -rpath $(toolexeclibdir) $(lib_org_w3c_dom_la_LDFLAGS) $(lib_org_w3c_dom_la_OBJECTS) $(lib_org_w3c_dom_la_LIBADD) $(LIBS)
+
mostlyclean-binPROGRAMS:
clean-binPROGRAMS:
@@ -3894,23 +4019,23 @@ uninstall-jarDATA:
rm -f $(DESTDIR)$(jardir)/$$p; \
done
-install-toolexeclibDATA: $(toolexeclib_DATA)
+install-toolexecmainlibDATA: $(toolexecmainlib_DATA)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(toolexeclibdir)
- @list='$(toolexeclib_DATA)'; for p in $$list; do \
+ $(mkinstalldirs) $(DESTDIR)$(toolexecmainlibdir)
+ @list='$(toolexecmainlib_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexeclibdir)/$$p; \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexecmainlibdir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toolexecmainlibdir)/$$p; \
else if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(toolexeclibdir)/$$p; \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toolexecmainlibdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(toolexecmainlibdir)/$$p; \
fi; fi; \
done
-uninstall-toolexeclibDATA:
+uninstall-toolexecmainlibDATA:
@$(NORMAL_UNINSTALL)
- list='$(toolexeclib_DATA)'; for p in $$list; do \
- rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \
+ list='$(toolexecmainlib_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(toolexecmainlibdir)/$$p; \
done
# This directory's subdirectories are mostly independent; you can cd
@@ -4125,9 +4250,7 @@ check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
install-exec-am: install-toolexeclibLTLIBRARIES install-binPROGRAMS \
- install-binSCRIPTS install-toolexeclibDATA
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+ install-binSCRIPTS install-toolexecmainlibDATA
install-exec: install-exec-recursive
install-data-am: install-jarDATA install-data-local
@@ -4138,7 +4261,7 @@ install-am: all-am
install: install-recursive
uninstall-am: uninstall-toolexeclibLTLIBRARIES uninstall-binPROGRAMS \
uninstall-binSCRIPTS uninstall-jarDATA \
- uninstall-toolexeclibDATA
+ uninstall-toolexecmainlibDATA
uninstall: uninstall-recursive
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA)
all-redirect: all-recursive
@@ -4148,7 +4271,7 @@ installdirs: installdirs-recursive
installdirs-am:
$(mkinstalldirs) $(DESTDIR)$(toolexeclibdir) $(DESTDIR)$(bindir) \
$(DESTDIR)$(bindir) $(DESTDIR)$(jardir) \
- $(DESTDIR)$(toolexeclibdir)
+ $(DESTDIR)$(toolexecmainlibdir)
mostlyclean-generic:
@@ -4207,12 +4330,12 @@ distclean-binPROGRAMS clean-binPROGRAMS maintainer-clean-binPROGRAMS \
uninstall-binPROGRAMS install-binPROGRAMS mostlyclean-noinstPROGRAMS \
distclean-noinstPROGRAMS clean-noinstPROGRAMS \
maintainer-clean-noinstPROGRAMS uninstall-binSCRIPTS install-binSCRIPTS \
-uninstall-jarDATA install-jarDATA uninstall-toolexeclibDATA \
-install-toolexeclibDATA install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
+uninstall-jarDATA install-jarDATA uninstall-toolexecmainlibDATA \
+install-toolexecmainlibDATA install-data-recursive \
+uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
@@ -4224,13 +4347,6 @@ installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-install-exec-hook:
- cd $(DESTDIR)$(libdir) && \
- if test -f libgcjx.la; then \
- rm -f gnu-awt-xlib.la; \
- $(LN_S) libgcjx.la gnu-awt-xlib.la; \
- fi
-
.java.class:
$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here):$(srcdir) \
-d $(here) $<
@@ -4264,7 +4380,7 @@ $(c_files): %.lo: %.c
$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
-$(javao_files) $(x_javao_files): %.lo: %.java
+$(javao_files) $(x_javao_files) $(lib_org_w3c_dom_la_OBJECTS) $(lib_org_xml_sax_la_OBJECTS): %.lo: %.java
$(GCJCOMPILE) -o $@ $<
libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
@@ -4273,10 +4389,10 @@ libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES)
@GCLIBS@ @LIBFFI@ @ZLIBS@ \
-rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(LIBS)
-libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES)
- @: $(shell echo Creating list of files to link...) $(shell rm -f libgcjx.objectlist || :) $(shell touch libgcjx.objectlist) $(foreach object,$(libgcjx_la_OBJECTS) $(libgcjx_la_LIBADD),$(shell echo $(object) >> libgcjx.objectlist))
- $(libgcjx_la_LINK) -objectlist libgcjx.objectlist \
- -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS)
+lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPENDENCIES)
+ @: $(shell echo Creating list of files to link...) $(shell rm -f lib_gnu_awt_xlib.objectlist || :) $(shell touch lib_gnu_awt_xlib.objectlist) $(foreach object,$(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_LIBADD),$(shell echo $(object) >> lib_gnu_awt_xlib.objectlist))
+ $(lib_gnu_awt_xlib_la_LINK) -objectlist lib_gnu_awt_xlib.objectlist \
+ -rpath $(toolexeclibdir) $(lib_gnu_awt_xlib_la_LDFLAGS) $(LIBS)
.class.h:
$(GCJH) -classpath '' -bootclasspath $(top_builddir) $(basename $<)
diff --git a/libjava/acinclude.m4 b/libjava/acinclude.m4
index d205aa029dd..ab3b2f1dd27 100644
--- a/libjava/acinclude.m4
+++ b/libjava/acinclude.m4
@@ -273,3 +273,27 @@ AC_DEFUN([AM_LC_MESSAGES],
[Define if your <locale.h> file defines LC_MESSAGES.])
fi
fi])
+
+AC_DEFUN([CHECK_FOR_BROKEN_MINGW_LD],
+[
+AC_MSG_CHECKING(whether 'ld' is at least 2.13)
+LD_PROG=`$CC --print-prog-name=ld`
+LD_VERSION=`$LD_PROG --version`
+LD_VERSION_MAJOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 4`
+LD_VERSION_MINOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 2`
+if expr "$LD_VERSION_MAJOR" \> 2 > /dev/null; then
+ LD_OK="ok"
+else
+ if expr "$LD_VERSION_MAJOR" = 2 && expr "$LD_VERSION_MINOR" \>= 13 > /dev/null; then
+ LD_OK="ok"
+ fi
+fi
+if test "x$LD_OK" != x; then
+ AC_MSG_RESULT([yes; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
+else
+ AC_MSG_RESULT([no; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
+ AC_MSG_WARN([ld <2.13 detected; enabling JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS hack...])
+ AC_DEFINE(JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS, 1,
+ [Indicate that linker is not able to 8-byte align static data])
+fi[]dnl
+])# CHECK_FOR_BROKEN_MINGW_LD
diff --git a/libjava/aclocal.m4 b/libjava/aclocal.m4
index 26e735711b9..5748ebada1f 100644
--- a/libjava/aclocal.m4
+++ b/libjava/aclocal.m4
@@ -286,6 +286,30 @@ AC_DEFUN([AM_LC_MESSAGES],
fi
fi])
+AC_DEFUN([CHECK_FOR_BROKEN_MINGW_LD],
+[
+AC_MSG_CHECKING(whether 'ld' is at least 2.13)
+LD_PROG=`$CC --print-prog-name=ld`
+LD_VERSION=`$LD_PROG --version`
+LD_VERSION_MAJOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 4`
+LD_VERSION_MINOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 2`
+if expr "$LD_VERSION_MAJOR" \> 2 > /dev/null; then
+ LD_OK="ok"
+else
+ if expr "$LD_VERSION_MAJOR" = 2 && expr "$LD_VERSION_MINOR" \>= 13 > /dev/null; then
+ LD_OK="ok"
+ fi
+fi
+if test "x$LD_OK" != x; then
+ AC_MSG_RESULT([yes; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
+else
+ AC_MSG_RESULT([no; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
+ AC_MSG_WARN([ld <2.13 detected; enabling JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS hack...])
+ AC_DEFINE(JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS, 1,
+ [Indicate that linker is not able to 8-byte align static data])
+fi[]dnl
+])# CHECK_FOR_BROKEN_MINGW_LD
+
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
@@ -434,26 +458,3 @@ for am_file in <<$1>>; do
done<<>>dnl>>)
changequote([,]))])
-AC_DEFUN([CHECK_FOR_BROKEN_MINGW_LD],
-[
-AC_MSG_CHECKING(whether 'ld' is at least 2.13)
-LD_PROG=`$CC --print-prog-name=ld`
-LD_VERSION=`$LD_PROG --version`
-LD_VERSION_MAJOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 4`
-LD_VERSION_MINOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 2`
-if expr "$LD_VERSION_MAJOR" \> 2 > /dev/null; then
- LD_OK="ok"
-else
- if expr "$LD_VERSION_MAJOR" = 2 && expr "$LD_VERSION_MINOR" \>= 13 > /dev/null; then
- LD_OK="ok"
- fi
-fi
-if test "x$LD_OK" != x; then
- AC_MSG_RESULT([yes; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
-else
- AC_MSG_RESULT([no; major=$LD_VERSION_MAJOR, minor=$LD_VERSION_MINOR])
- AC_MSG_WARN([ld <2.13 detected; enabling JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS hack...])
- AC_DEFINE(JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS, 1,
- [Indicate that linker is not able to 8-byte align static data])
-fi[]dnl
-])# CHECK_FOR_BROKEN_MINGW_LD
diff --git a/libjava/boehm.cc b/libjava/boehm.cc
index 90796f2ddf0..5006059dabd 100644
--- a/libjava/boehm.cc
+++ b/libjava/boehm.cc
@@ -203,6 +203,8 @@ _Jv_MarkObj (void *addr, void *msp, void *msl, void * /* env */)
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cBlabel);
p = (ptr_t) c->arrayclass;
MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cDlabel);
+ p = (ptr_t) c->protectionDomain;
+ MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, cPlabel);
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (c))
diff --git a/libjava/configure b/libjava/configure
index 4160fef7d68..810bb4ae690 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -2036,7 +2036,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -2430,6 +2430,19 @@ case $host in
# Find out which ABI we are using.
echo '#line 2432 "configure"' > conftest.$ac_ext
if { (eval echo configure:2433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2441,6 +2454,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2448,7 +2462,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2466: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2464,14 +2478,14 @@ ia64-*-hpux*)
x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
case $host in
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*)
+ ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -2508,7 +2522,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2512: checking whether the C compiler needs -belf" >&5
+echo "configure:2526: 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
@@ -2521,14 +2535,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2525 "configure"
+#line 2539 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2558,12 +2572,12 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
esac
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2562: checking how to run the C++ preprocessor" >&5
+echo "configure:2576: 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
else
- ac_ext=C
+ ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
@@ -2571,12 +2585,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 2575 "configure"
+#line 2589 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2594: \"$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
:
@@ -2589,18 +2603,15 @@ else
fi
rm -f conftest*
ac_cv_prog_CXXCPP="$CXXCPP"
- ac_ext=c
+ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
-
fi
- CXXCPP="$ac_cv_prog_CXXCPP"
-else
- ac_cv_prog_CXXCPP=$CXXCPP
fi
+CXXCPP="$ac_cv_prog_CXXCPP"
echo "$ac_t""$CXXCPP" 1>&6
@@ -2815,7 +2826,7 @@ INTERPRETER="$libgcj_interpreter"
echo $ac_n "checking for exception model to use""... $ac_c" 1>&6
-echo "configure:2819: checking for exception model to use" >&5
+echo "configure:2830: 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.
@@ -2830,7 +2841,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 2834 "configure"
+#line 2845 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -2841,7 +2852,7 @@ void foo()
EOF
old_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=-S
-if { (eval echo configure:2845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2856: \"$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
@@ -2951,7 +2962,7 @@ case "$TARGET_ECOS" in
PLATFORMH=win32.h
echo $ac_n "checking whether 'ld' is at least 2.13""... $ac_c" 1>&6
-echo "configure:2955: checking whether 'ld' is at least 2.13" >&5
+echo "configure:2966: checking whether 'ld' is at least 2.13" >&5
LD_PROG=`$CC --print-prog-name=ld`
LD_VERSION=`$LD_PROG --version`
LD_VERSION_MAJOR=`echo "$LD_VERSION" | head -1 | cut -d '.' -f 1 | cut -d ' ' -f 4`
@@ -2995,7 +3006,7 @@ esac
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2999: checking how to run the C preprocessor" >&5
+echo "configure:3010: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -3010,13 +3021,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 3014 "configure"
+#line 3025 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3031: \"$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
:
@@ -3027,13 +3038,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 3031 "configure"
+#line 3042 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3037: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3048: \"$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
:
@@ -3044,13 +3055,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 3048 "configure"
+#line 3059 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3054: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3065: \"$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
:
@@ -3075,7 +3086,7 @@ fi
echo "$ac_t""$CPP" 1>&6
cat > conftest.$ac_ext <<EOF
-#line 3079 "configure"
+#line 3090 "configure"
#include "confdefs.h"
#include <stdint.h>
EOF
@@ -3090,7 +3101,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3094 "configure"
+#line 3105 "configure"
#include "confdefs.h"
#include <inttypes.h>
EOF
@@ -3105,7 +3116,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3109 "configure"
+#line 3120 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -3120,7 +3131,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3124 "configure"
+#line 3135 "configure"
#include "confdefs.h"
#include <sys/config.h>
EOF
@@ -3137,7 +3148,7 @@ rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3141 "configure"
+#line 3152 "configure"
#include "confdefs.h"
#include <time.h>
EOF
@@ -3152,7 +3163,7 @@ fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3156 "configure"
+#line 3167 "configure"
#include "confdefs.h"
#include <time.h>
EOF
@@ -3204,7 +3215,7 @@ ZLIBTESTSPEC=
libsubdir=.libs
echo $ac_n "checking for garbage collector to use""... $ac_c" 1>&6
-echo "configure:3208: checking for garbage collector to use" >&5
+echo "configure:3219: checking for garbage collector to use" >&5
# Check whether --enable-java-gc or --disable-java-gc was given.
if test "${enable_java_gc+set}" = set; then
enableval="$enable_java_gc"
@@ -3257,7 +3268,7 @@ esac
echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
-echo "configure:3261: checking for thread model used by GCC" >&5
+echo "configure:3272: checking for thread model used by GCC" >&5
THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
echo "$ac_t""$THREADS" 1>&6
@@ -3465,12 +3476,12 @@ else
for ac_func in strerror ioctl select fstat open fsync sleep opendir
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3469: checking for $ac_func" >&5
+echo "configure:3480: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3474 "configure"
+#line 3485 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3493,7 +3504,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3520,12 +3531,12 @@ done
for ac_func in gmtime_r localtime_r readdir_r getpwuid_r getcwd
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3524: checking for $ac_func" >&5
+echo "configure:3535: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3529 "configure"
+#line 3540 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3548,7 +3559,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3575,12 +3586,12 @@ done
for ac_func in access stat mkdir rename rmdir unlink realpath utime chmod
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3579: checking for $ac_func" >&5
+echo "configure:3590: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3584 "configure"
+#line 3595 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3603,7 +3614,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3630,12 +3641,12 @@ done
for ac_func in nl_langinfo setlocale
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3634: checking for $ac_func" >&5
+echo "configure:3645: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3639 "configure"
+#line 3650 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3658,7 +3669,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3685,12 +3696,12 @@ done
for ac_func in inet_aton inet_addr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3689: checking for $ac_func" >&5
+echo "configure:3700: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3694 "configure"
+#line 3705 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3713,7 +3724,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3740,12 +3751,12 @@ done
for ac_func in inet_pton uname inet_ntoa
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3744: checking for $ac_func" >&5
+echo "configure:3755: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3749 "configure"
+#line 3760 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3768,7 +3779,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3795,12 +3806,12 @@ done
for ac_func in fork execvp pipe sigaction ftruncate
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3799: checking for $ac_func" >&5
+echo "configure:3810: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3804 "configure"
+#line 3815 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3823,7 +3834,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3851,17 +3862,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3855: checking for $ac_hdr" >&5
+echo "configure:3866: 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
-#line 3860 "configure"
+#line 3871 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3876: \"$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*
@@ -3888,12 +3899,12 @@ fi
done
echo $ac_n "checking for backtrace""... $ac_c" 1>&6
-echo "configure:3892: checking for backtrace" >&5
+echo "configure:3903: checking for backtrace" >&5
if eval "test \"`echo '$''{'ac_cv_func_backtrace'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3897 "configure"
+#line 3908 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char backtrace(); below. */
@@ -3916,7 +3927,7 @@ backtrace();
; return 0; }
EOF
-if { (eval echo configure:3920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_backtrace=yes"
else
@@ -3935,9 +3946,6 @@ if eval "test \"`echo '$ac_cv_func_'backtrace`\" = yes"; then
ia64-*-linux*)
# Has broken backtrace()
;;
- s390*-*-linux*)
- # Has broken backtrace()
- ;;
*)
cat >> confdefs.h <<\EOF
#define HAVE_BACKTRACE 1
@@ -3948,11 +3956,22 @@ EOF
else
echo "$ac_t""no" 1>&6
+
+ case "$host" in
+ *mingw*)
+ # Has backtrace() defined in libgcj itself
+ cat >> confdefs.h <<\EOF
+#define HAVE_BACKTRACE 1
+EOF
+
+ ;;
+ esac
+
fi
echo $ac_n "checking for dladdr in -ldl""... $ac_c" 1>&6
-echo "configure:3956: checking for dladdr in -ldl" >&5
+echo "configure:3975: checking for dladdr in -ldl" >&5
ac_lib_var=`echo dl'_'dladdr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3960,7 +3979,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3964 "configure"
+#line 3983 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3971,7 +3990,7 @@ int main() {
dladdr()
; return 0; }
EOF
-if { (eval echo configure:3975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3994: \"$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
@@ -4001,7 +4020,7 @@ do
ac_safe=`echo "$ac_file" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_file""... $ac_c" 1>&6
-echo "configure:4005: checking for $ac_file" >&5
+echo "configure:4024: checking for $ac_file" >&5
if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4059,7 +4078,7 @@ fi
echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:4063: checking for iconv" >&5
+echo "configure:4082: checking for iconv" >&5
if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4067,7 +4086,7 @@ else
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
cat > conftest.$ac_ext <<EOF
-#line 4071 "configure"
+#line 4090 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -4077,7 +4096,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:4081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_func_iconv=yes
else
@@ -4089,7 +4108,7 @@ rm -f conftest*
am_save_LIBS="$LIBS"
LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
cat > conftest.$ac_ext <<EOF
-#line 4093 "configure"
+#line 4112 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <iconv.h>
@@ -4099,7 +4118,7 @@ iconv_t cd = iconv_open("","");
iconv_close(cd);
; return 0; }
EOF
-if { (eval echo configure:4103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_lib_iconv=yes
am_cv_func_iconv=yes
@@ -4120,13 +4139,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
EOF
echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:4124: checking for iconv declaration" >&5
+echo "configure:4143: checking for iconv declaration" >&5
if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4130 "configure"
+#line 4149 "configure"
#include "confdefs.h"
#include <stdlib.h>
@@ -4145,7 +4164,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4168: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_proto_iconv_arg1=""
else
@@ -4174,19 +4193,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:4178: checking for LC_MESSAGES" >&5
+echo "configure:4197: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4183 "configure"
+#line 4202 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:4190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -4207,12 +4226,12 @@ EOF
fi
fi
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:4211: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:4230: checking whether struct tm is in sys/time.h or time.h" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4216 "configure"
+#line 4235 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
@@ -4220,7 +4239,7 @@ int main() {
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:4224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4243: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
@@ -4241,12 +4260,12 @@ EOF
fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4245: checking for tm_zone in struct tm" >&5
+echo "configure:4264: checking for tm_zone in struct tm" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4250 "configure"
+#line 4269 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_cv_struct_tm>
@@ -4254,7 +4273,7 @@ int main() {
struct tm tm; tm.tm_zone;
; return 0; }
EOF
-if { (eval echo configure:4258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm_zone=yes
else
@@ -4274,12 +4293,12 @@ EOF
else
echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4278: checking for tzname" >&5
+echo "configure:4297: checking for tzname" >&5
if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4283 "configure"
+#line 4302 "configure"
#include "confdefs.h"
#include <time.h>
#ifndef tzname /* For SGI. */
@@ -4289,7 +4308,7 @@ int main() {
atoi(*tzname);
; return 0; }
EOF
-if { (eval echo configure:4293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_tzname=yes
else
@@ -4314,12 +4333,12 @@ fi
for ac_func in gethostbyname_r
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4318: checking for $ac_func" >&5
+echo "configure:4337: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4323 "configure"
+#line 4342 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4342,7 +4361,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4369,7 +4388,7 @@ EOF
# We look for the one that returns `int'.
# Hopefully this check is robust enough.
cat > conftest.$ac_ext <<EOF
-#line 4373 "configure"
+#line 4392 "configure"
#include "confdefs.h"
#include <netdb.h>
EOF
@@ -4389,7 +4408,7 @@ rm -f conftest*
*" -D_REENTRANT "*) ;;
*)
echo $ac_n "checking whether gethostbyname_r declaration requires -D_REENTRANT""... $ac_c" 1>&6
-echo "configure:4393: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5
+echo "configure:4412: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5
if eval "test \"`echo '$''{'libjava_cv_gethostbyname_r_needs_reentrant'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4402,14 +4421,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 4406 "configure"
+#line 4425 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
gethostbyname_r("", 0, 0);
; return 0; }
EOF
-if { (eval echo configure:4413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libjava_cv_gethostbyname_r_needs_reentrant=no
else
@@ -4419,14 +4438,14 @@ else
CPPFLAGS_SAVE="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_REENTRANT"
cat > conftest.$ac_ext <<EOF
-#line 4423 "configure"
+#line 4442 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
gethostbyname_r("", 0, 0);
; return 0; }
EOF
-if { (eval echo configure:4430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libjava_cv_gethostbyname_r_needs_reentrant=yes
else
@@ -4461,12 +4480,12 @@ EOF
esac
echo $ac_n "checking for struct hostent_data""... $ac_c" 1>&6
-echo "configure:4465: checking for struct hostent_data" >&5
+echo "configure:4484: checking for struct hostent_data" >&5
if eval "test \"`echo '$''{'libjava_cv_struct_hostent_data'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4470 "configure"
+#line 4489 "configure"
#include "confdefs.h"
#if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
@@ -4477,7 +4496,7 @@ int main() {
struct hostent_data data;
; return 0; }
EOF
-if { (eval echo configure:4481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libjava_cv_struct_hostent_data=yes
else
@@ -4509,7 +4528,7 @@ done
# to exist where expected. (The root issue: AC_CHECK_FUNCS assumes C
# linkage check is enough, yet C++ code requires proper prototypes.)
cat > conftest.$ac_ext <<EOF
-#line 4513 "configure"
+#line 4532 "configure"
#include "confdefs.h"
#include <netdb.h>
EOF
@@ -4520,12 +4539,12 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
for ac_func in gethostbyaddr_r
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4524: checking for $ac_func" >&5
+echo "configure:4543: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4529 "configure"
+#line 4548 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4548,7 +4567,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4575,7 +4594,7 @@ EOF
# We look for the one that returns `int'.
# Hopefully this check is robust enough.
cat > conftest.$ac_ext <<EOF
-#line 4579 "configure"
+#line 4598 "configure"
#include "confdefs.h"
#include <netdb.h>
EOF
@@ -4602,12 +4621,12 @@ rm -f conftest*
for ac_func in gethostname
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4606: checking for $ac_func" >&5
+echo "configure:4625: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4611 "configure"
+#line 4630 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4630,7 +4649,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4654,7 +4673,7 @@ EOF
EOF
cat > conftest.$ac_ext <<EOF
-#line 4658 "configure"
+#line 4677 "configure"
#include "confdefs.h"
#include <unistd.h>
EOF
@@ -4685,12 +4704,12 @@ done
for ac_func in pthread_mutexattr_settype pthread_mutexattr_setkind_np
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4689: checking for $ac_func" >&5
+echo "configure:4708: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4694 "configure"
+#line 4713 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4713,7 +4732,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4743,12 +4762,12 @@ done
for ac_func in sched_yield
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4747: checking for $ac_func" >&5
+echo "configure:4766: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4752 "configure"
+#line 4771 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4771,7 +4790,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4793,7 +4812,7 @@ EOF
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6
-echo "configure:4797: checking for sched_yield in -lrt" >&5
+echo "configure:4816: checking for sched_yield in -lrt" >&5
ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4801,7 +4820,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lrt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4805 "configure"
+#line 4824 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4812,7 +4831,7 @@ int main() {
sched_yield()
; return 0; }
EOF
-if { (eval echo configure:4816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4835: \"$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
@@ -4838,7 +4857,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6
-echo "configure:4842: checking for sched_yield in -lposix4" >&5
+echo "configure:4861: checking for sched_yield in -lposix4" >&5
ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4846,7 +4865,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lposix4 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4850 "configure"
+#line 4869 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4857,7 +4876,7 @@ int main() {
sched_yield()
; return 0; }
EOF
-if { (eval echo configure:4861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4880: \"$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
@@ -4893,7 +4912,7 @@ done
# We can save a little space at runtime if the mutex has m_count
# or __m_count. This is a nice hack for Linux.
cat > conftest.$ac_ext <<EOF
-#line 4897 "configure"
+#line 4916 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
@@ -4902,7 +4921,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define PTHREAD_MUTEX_HAVE_M_COUNT 1
@@ -4914,7 +4933,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 4918 "configure"
+#line 4937 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
@@ -4923,7 +4942,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:4927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define PTHREAD_MUTEX_HAVE___M_COUNT 1
@@ -4943,12 +4962,12 @@ rm -f conftest*
for ac_func in gettimeofday time ftime
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4947: checking for $ac_func" >&5
+echo "configure:4966: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4952 "configure"
+#line 4971 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4971,7 +4990,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5002,12 +5021,12 @@ done
for ac_func in memmove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5006: checking for $ac_func" >&5
+echo "configure:5025: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5011 "configure"
+#line 5030 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5030,7 +5049,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5060,12 +5079,12 @@ done
for ac_func in memcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5064: checking for $ac_func" >&5
+echo "configure:5083: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5069 "configure"
+#line 5088 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5088,7 +5107,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5117,7 +5136,7 @@ done
fi
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:5121: checking for dlopen in -ldl" >&5
+echo "configure:5140: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5125,7 +5144,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5129 "configure"
+#line 5148 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5136,7 +5155,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:5140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5159: \"$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
@@ -5181,7 +5200,7 @@ fi
#--------------------------------------------------------------------
echo $ac_n "checking for socket libraries""... $ac_c" 1>&6
-echo "configure:5185: checking for socket libraries" >&5
+echo "configure:5204: checking for socket libraries" >&5
if eval "test \"`echo '$''{'gcj_cv_lib_sockets'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5189,12 +5208,12 @@ else
gcj_checkBoth=0
unset ac_cv_func_connect
echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:5193: checking for connect" >&5
+echo "configure:5212: checking for connect" >&5
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5198 "configure"
+#line 5217 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
@@ -5217,7 +5236,7 @@ connect();
; return 0; }
EOF
-if { (eval echo configure:5221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_connect=yes"
else
@@ -5240,7 +5259,7 @@ fi
if test "$gcj_checkSocket" = 1; then
unset ac_cv_func_connect
echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:5244: checking for main in -lsocket" >&5
+echo "configure:5263: checking for main in -lsocket" >&5
ac_lib_var=`echo socket'_'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
@@ -5248,14 +5267,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5252 "configure"
+#line 5271 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5278: \"$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
@@ -5282,12 +5301,12 @@ fi
LIBS="$LIBS -lsocket -lnsl"
unset ac_cv_func_accept
echo $ac_n "checking for accept""... $ac_c" 1>&6
-echo "configure:5286: checking for accept" >&5
+echo "configure:5305: checking for accept" >&5
if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5291 "configure"
+#line 5310 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char accept(); below. */
@@ -5310,7 +5329,7 @@ accept();
; return 0; }
EOF
-if { (eval echo configure:5314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_accept=yes"
else
@@ -5337,12 +5356,12 @@ fi
gcj_oldLibs=$LIBS
LIBS="$LIBS $gcj_cv_lib_sockets"
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5341: checking for gethostbyname" >&5
+echo "configure:5360: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5346 "configure"
+#line 5365 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
@@ -5365,7 +5384,7 @@ gethostbyname();
; return 0; }
EOF
-if { (eval echo configure:5369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes"
else
@@ -5383,7 +5402,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:5387: checking for main in -lnsl" >&5
+echo "configure:5406: checking for main in -lnsl" >&5
ac_lib_var=`echo nsl'_'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
@@ -5391,14 +5410,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5395 "configure"
+#line 5414 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5421: \"$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
@@ -5430,7 +5449,7 @@ echo "$ac_t""$gcj_cv_lib_sockets" 1>&6
if test "$with_system_zlib" = yes; then
echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:5434: checking for deflate in -lz" >&5
+echo "configure:5453: checking for deflate in -lz" >&5
ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5438,7 +5457,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lz $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5442 "configure"
+#line 5461 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5449,7 +5468,7 @@ int main() {
deflate()
; return 0; }
EOF
-if { (eval echo configure:5453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5472: \"$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
@@ -5476,7 +5495,7 @@ fi
# requires -ldl.
if test "$GC" = boehm; then
echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6
-echo "configure:5480: checking for main in -ldl" >&5
+echo "configure:5499: checking for main in -ldl" >&5
ac_lib_var=`echo dl'_'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
@@ -5484,14 +5503,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5488 "configure"
+#line 5507 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5514: \"$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
@@ -5557,7 +5576,7 @@ fi
# Extract the first word of "${ac_tool_prefix}gcj", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcj; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5561: checking for $ac_word" >&5
+echo "configure:5580: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5589,7 +5608,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "gcj", so it can be a program name with args.
set dummy gcj; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5593: checking for $ac_word" >&5
+echo "configure:5612: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5651,13 +5670,13 @@ exec 5>>./config.log
CPPFLAGS=$GCJ_SAVE_CPPFLAGS
echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:5655: checking size of void *" >&5
+echo "configure:5674: checking size of void *" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence.
cat > conftest.$ac_ext <<EOF
-#line 5661 "configure"
+#line 5680 "configure"
#include "confdefs.h"
#include "confdefs.h"
#include <sys/types.h>
@@ -5667,7 +5686,7 @@ int main() {
switch (0) case 0: case (sizeof (void *) == $ac_size):;
; return 0; }
EOF
-if { (eval echo configure:5671: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sizeof_void_p=$ac_size
else
@@ -5711,6 +5730,7 @@ fi
+
if test "$CANADIAN" = yes; then
CANADIAN_TRUE=
CANADIAN_FALSE='#'
@@ -5738,15 +5758,6 @@ else
fi
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
-else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
-fi
-
-
if test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes; then
NEEDS_DATA_START_TRUE=
NEEDS_DATA_START_FALSE='#'
@@ -5756,6 +5767,19 @@ else
fi
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexecmainlibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexecmainlibdir='$(libdir)'
+fi
+toolexeclibdir=$toolexecmainlibdir/`$CC -print-multi-os-directory`
+
+
+
+
# Determine gcj version number.
gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`
@@ -5768,18 +5792,18 @@ EOF
echo $ac_n "checking for g++ -ffloat-store bug""... $ac_c" 1>&6
-echo "configure:5772: checking for g++ -ffloat-store bug" >&5
+echo "configure:5796: checking for g++ -ffloat-store bug" >&5
save_CFLAGS="$CFLAGS"
CFLAGS="-x c++ -O2 -ffloat-store"
cat > conftest.$ac_ext <<EOF
-#line 5776 "configure"
+#line 5800 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:5783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
else
@@ -5799,17 +5823,17 @@ for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5803: checking for $ac_hdr" >&5
+echo "configure:5827: 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
-#line 5808 "configure"
+#line 5832 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5837: \"$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*
@@ -5839,17 +5863,17 @@ for ac_hdr in dirent.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5843: checking for $ac_hdr" >&5
+echo "configure:5867: 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
-#line 5848 "configure"
+#line 5872 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5877: \"$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*
@@ -5879,17 +5903,17 @@ for ac_hdr in inttypes.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5883: checking for $ac_hdr" >&5
+echo "configure:5907: 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
-#line 5888 "configure"
+#line 5912 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5917: \"$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*
@@ -5925,12 +5949,12 @@ fi
done
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:5929: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:5953: checking for sys/wait.h that is POSIX.1 compatible" >&5
if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5934 "configure"
+#line 5958 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
@@ -5946,7 +5970,7 @@ wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:5950: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
@@ -5968,12 +5992,12 @@ fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:5972: checking for ANSI C header files" >&5
+echo "configure:5996: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5977 "configure"
+#line 6001 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -5981,7 +6005,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6009: \"$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*
@@ -5998,7 +6022,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 6002 "configure"
+#line 6026 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -6016,7 +6040,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 6020 "configure"
+#line 6044 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -6037,7 +6061,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 6041 "configure"
+#line 6065 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -6048,7 +6072,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:6052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -6072,12 +6096,12 @@ EOF
fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:6076: checking for ssize_t" >&5
+echo "configure:6100: checking for ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6081 "configure"
+#line 6105 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -6106,9 +6130,9 @@ fi
echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
-echo "configure:6110: checking for in_addr_t" >&5
+echo "configure:6134: checking for in_addr_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 6112 "configure"
+#line 6136 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -6122,7 +6146,7 @@ int main() {
in_addr_t foo;
; return 0; }
EOF
-if { (eval echo configure:6126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_IN_ADDR_T 1
@@ -6138,16 +6162,16 @@ fi
rm -f conftest*
echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:6142: checking whether struct ip_mreq is in netinet/in.h" >&5
+echo "configure:6166: checking whether struct ip_mreq is in netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6144 "configure"
+#line 6168 "configure"
#include "confdefs.h"
#include <netinet/in.h>
int main() {
struct ip_mreq mreq;
; return 0; }
EOF
-if { (eval echo configure:6151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_STRUCT_IP_MREQ 1
@@ -6163,16 +6187,16 @@ fi
rm -f conftest*
echo $ac_n "checking whether struct ipv6_mreq is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:6167: checking whether struct ipv6_mreq is in netinet/in.h" >&5
+echo "configure:6191: checking whether struct ipv6_mreq is in netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6169 "configure"
+#line 6193 "configure"
#include "confdefs.h"
#include <netinet/in.h>
int main() {
struct ipv6_mreq mreq6;
; return 0; }
EOF
-if { (eval echo configure:6176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_STRUCT_IPV6_MREQ 1
@@ -6188,16 +6212,16 @@ fi
rm -f conftest*
echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6
-echo "configure:6192: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
+echo "configure:6216: checking whether struct sockaddr_in6 is in netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6194 "configure"
+#line 6218 "configure"
#include "confdefs.h"
#include <netinet/in.h>
int main() {
struct sockaddr_in6 addr6;
; return 0; }
EOF
-if { (eval echo configure:6201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6225: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_INET6 1
@@ -6213,9 +6237,9 @@ fi
rm -f conftest*
echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6
-echo "configure:6217: checking for socklen_t in sys/socket.h" >&5
+echo "configure:6241: checking for socklen_t in sys/socket.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6219 "configure"
+#line 6243 "configure"
#include "confdefs.h"
#define _POSIX_PII_SOCKET
#include <sys/types.h>
@@ -6224,7 +6248,7 @@ int main() {
socklen_t x = 5;
; return 0; }
EOF
-if { (eval echo configure:6228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_SOCKLEN_T 1
@@ -6240,16 +6264,16 @@ fi
rm -f conftest*
echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
-echo "configure:6244: checking for tm_gmtoff in struct tm" >&5
+echo "configure:6268: checking for tm_gmtoff in struct tm" >&5
cat > conftest.$ac_ext <<EOF
-#line 6246 "configure"
+#line 6270 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
struct tm tim; tim.tm_gmtoff = 0;
; return 0; }
EOF
-if { (eval echo configure:6253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define STRUCT_TM_HAS_GMTOFF 1
@@ -6262,16 +6286,16 @@ else
rm -rf conftest*
echo "$ac_t""no" 1>&6
echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6
-echo "configure:6266: checking for global timezone variable" >&5
+echo "configure:6290: checking for global timezone variable" >&5
cat > conftest.$ac_ext <<EOF
-#line 6268 "configure"
+#line 6292 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
void i(){long z2 = 2*timezone;}
; return 0; }
EOF
-if { (eval echo configure:6275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_TIMEZONE 1
@@ -6284,16 +6308,16 @@ else
rm -rf conftest*
echo "$ac_t""no" 1>&6
echo $ac_n "checking for global _timezone variable""... $ac_c" 1>&6
-echo "configure:6288: checking for global _timezone variable" >&5
+echo "configure:6312: checking for global _timezone variable" >&5
cat > conftest.$ac_ext <<EOF
-#line 6290 "configure"
+#line 6314 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
long z2 = _timezone;
; return 0; }
EOF
-if { (eval echo configure:6297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_UNDERSCORE_TIMEZONE 1
@@ -6315,19 +6339,19 @@ rm -f conftest*
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:6319: checking for working alloca.h" >&5
+echo "configure:6343: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6324 "configure"
+#line 6348 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:6331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -6348,12 +6372,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:6352: checking for alloca" >&5
+echo "configure:6376: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6357 "configure"
+#line 6381 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -6381,7 +6405,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:6385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -6413,12 +6437,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:6417: checking whether alloca needs Cray hooks" >&5
+echo "configure:6441: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6422 "configure"
+#line 6446 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -6443,12 +6467,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6447: checking for $ac_func" >&5
+echo "configure:6471: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6452 "configure"
+#line 6476 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6471,7 +6495,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6498,7 +6522,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:6502: checking stack direction for C alloca" >&5
+echo "configure:6526: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6506,7 +6530,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 6510 "configure"
+#line 6534 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -6525,7 +6549,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:6529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -6552,7 +6576,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6556: checking for $ac_word" >&5
+echo "configure:6580: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6600,7 +6624,7 @@ case "${host}" in
SIGNAL_HANDLER=include/dwarf2-signal.h
;;
powerpc-*-linux*)
- SIGNAL_HANDLER=include/dwarf2-signal.h
+ SIGNAL_HANDLER=include/powerpc-signal.h
;;
alpha*-*-linux*)
SIGNAL_HANDLER=include/dwarf2-signal.h
@@ -6609,7 +6633,7 @@ case "${host}" in
SIGNAL_HANDLER=include/s390-signal.h
;;
x86_64*-*-linux*)
- SIGNAL_HANDLER=include/dwarf2-signal.h
+ SIGNAL_HANDLER=include/x86_64-signal.h
;;
sparc*-*-linux*)
SIGNAL_HANDLER=include/dwarf2-signal.h
@@ -6627,6 +6651,15 @@ if test "$enable_sjlj_exceptions" = yes; then
SIGNAL_HANDLER=include/default-signal.h
fi
+# Define here any compiler flags that you need in order to make backtrace() work.
+BACKTRACESPEC=
+case "${host}" in
+ x86_64*-*-linux*)
+ BACKTRACESPEC=-fno-omit-frame-pointer
+ ;;
+esac
+
+
@@ -6642,7 +6675,7 @@ fi
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:6646: checking for X" >&5
+echo "configure:6679: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
@@ -6704,12 +6737,12 @@ if test "$ac_x_includes" = NO; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 6708 "configure"
+#line 6741 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6746: \"$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*
@@ -6778,14 +6811,14 @@ if test "$ac_x_libraries" = NO; then
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6782 "configure"
+#line 6815 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:6789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
@@ -6891,17 +6924,17 @@ else
case "`(uname -sr) 2>/dev/null`" in
"SunOS 5"*)
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:6895: checking whether -R must be followed by a space" >&5
+echo "configure:6928: checking whether -R must be followed by a space" >&5
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 6898 "configure"
+#line 6931 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:6905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_nospace=yes
else
@@ -6917,14 +6950,14 @@ rm -f conftest*
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 6921 "configure"
+#line 6954 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:6928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_space=yes
else
@@ -6956,7 +6989,7 @@ rm -f conftest*
# libraries were built with DECnet support. And karl@cs.umb.edu says
# the Alpha needs dnet_stub (dnet does not exist).
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:6960: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:6993: checking for dnet_ntoa in -ldnet" >&5
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -6964,7 +6997,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6968 "configure"
+#line 7001 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -6975,7 +7008,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:6979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7012: \"$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
@@ -6997,7 +7030,7 @@ fi
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:7001: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:7034: checking for dnet_ntoa in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7005,7 +7038,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7009 "configure"
+#line 7042 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7016,7 +7049,7 @@ int main() {
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:7020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7053: \"$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
@@ -7045,12 +7078,12 @@ fi
# The nsl library prevents programs from opening the X display
# on Irix 5.2, according to dickey@clark.net.
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:7049: checking for gethostbyname" >&5
+echo "configure:7082: checking for gethostbyname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7054 "configure"
+#line 7087 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
@@ -7073,7 +7106,7 @@ gethostbyname();
; return 0; }
EOF
-if { (eval echo configure:7077: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes"
else
@@ -7094,7 +7127,7 @@ fi
if test $ac_cv_func_gethostbyname = no; then
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:7098: checking for gethostbyname in -lnsl" >&5
+echo "configure:7131: checking for gethostbyname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7102,7 +7135,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7106 "configure"
+#line 7139 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7113,7 +7146,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:7117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7150: \"$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
@@ -7143,12 +7176,12 @@ fi
# -lsocket must be given before -lnsl if both are needed.
# We assume that if connect needs -lnsl, so does gethostbyname.
echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:7147: checking for connect" >&5
+echo "configure:7180: checking for connect" >&5
if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7152 "configure"
+#line 7185 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
@@ -7171,7 +7204,7 @@ connect();
; return 0; }
EOF
-if { (eval echo configure:7175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_connect=yes"
else
@@ -7192,7 +7225,7 @@ fi
if test $ac_cv_func_connect = no; then
echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:7196: checking for connect in -lsocket" >&5
+echo "configure:7229: checking for connect in -lsocket" >&5
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7200,7 +7233,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7204 "configure"
+#line 7237 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7211,7 +7244,7 @@ int main() {
connect()
; return 0; }
EOF
-if { (eval echo configure:7215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7248: \"$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
@@ -7235,12 +7268,12 @@ fi
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:7239: checking for remove" >&5
+echo "configure:7272: checking for remove" >&5
if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7244 "configure"
+#line 7277 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
@@ -7263,7 +7296,7 @@ remove();
; return 0; }
EOF
-if { (eval echo configure:7267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+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_remove=yes"
else
@@ -7284,7 +7317,7 @@ fi
if test $ac_cv_func_remove = no; then
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:7288: checking for remove in -lposix" >&5
+echo "configure:7321: checking for remove in -lposix" >&5
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7292,7 +7325,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7296 "configure"
+#line 7329 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7303,7 +7336,7 @@ int main() {
remove()
; return 0; }
EOF
-if { (eval echo configure:7307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7340: \"$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
@@ -7327,12 +7360,12 @@ fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:7331: checking for shmat" >&5
+echo "configure:7364: checking for shmat" >&5
if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7336 "configure"
+#line 7369 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
@@ -7355,7 +7388,7 @@ shmat();
; return 0; }
EOF
-if { (eval echo configure:7359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shmat=yes"
else
@@ -7376,7 +7409,7 @@ fi
if test $ac_cv_func_shmat = no; then
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:7380: checking for shmat in -lipc" >&5
+echo "configure:7413: checking for shmat in -lipc" >&5
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7384,7 +7417,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lipc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7388 "configure"
+#line 7421 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7395,7 +7428,7 @@ int main() {
shmat()
; return 0; }
EOF
-if { (eval echo configure:7399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7432: \"$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
@@ -7428,7 +7461,7 @@ fi
# libraries we check for below, so use a different variable.
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:7432: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:7465: checking for IceConnectionNumber in -lICE" >&5
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -7436,7 +7469,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lICE $X_EXTRA_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7440 "configure"
+#line 7473 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7447,7 +7480,7 @@ int main() {
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:7451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7484: \"$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
@@ -7756,20 +7789,23 @@ s%@ZINCS@%$ZINCS%g
s%@DIVIDESPEC@%$DIVIDESPEC%g
s%@CHECKREFSPEC@%$CHECKREFSPEC%g
s%@EXCEPTIONSPEC@%$EXCEPTIONSPEC%g
+s%@IEEESPEC@%$IEEESPEC%g
s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
s%@NULL_TARGET_TRUE@%$NULL_TARGET_TRUE%g
s%@NULL_TARGET_FALSE@%$NULL_TARGET_FALSE%g
s%@NATIVE_TRUE@%$NATIVE_TRUE%g
s%@NATIVE_FALSE@%$NATIVE_FALSE%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
s%@NEEDS_DATA_START_TRUE@%$NEEDS_DATA_START_TRUE%g
s%@NEEDS_DATA_START_FALSE@%$NEEDS_DATA_START_FALSE%g
s%@GCC_UNWIND_INCLUDE@%$GCC_UNWIND_INCLUDE%g
+s%@toolexecdir@%$toolexecdir%g
+s%@toolexecmainlibdir@%$toolexecmainlibdir%g
+s%@toolexeclibdir@%$toolexeclibdir%g
s%@GCJVERSION@%$GCJVERSION%g
s%@ALLOCA@%$ALLOCA%g
s%@PERL@%$PERL%g
+s%@BACKTRACESPEC@%$BACKTRACESPEC%g
s%@SYSDEP_SOURCES@%$SYSDEP_SOURCES%g
s%@X_CFLAGS@%$X_CFLAGS%g
s%@X_PRE_LIBS@%$X_PRE_LIBS%g
@@ -8044,6 +8080,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libgcj_basedir=${libgcj_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
diff --git a/libjava/configure.host b/libjava/configure.host
index f5d1ef07cda..7f3b69fb772 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -96,20 +96,21 @@ case "${host}" in
slow_pthread_self=yes
;;
x86_64-*)
+ CHECKREFSPEC="%{m32:-fcheck-references}"
sysdeps_dir=x86-64
- libgcj_flags="${libgcj_flags} -ffloat-store"
- libgcj_interpreter=no
+ libgcj_flags="${libgcj_flags} -ffloat-store -fno-omit-frame-pointer"
libgcj_cxxflags="-D__NO_MATH_INLINES"
libgcj_cflags="-D__NO_MATH_INLINES"
- DIVIDESPEC=-fno-use-divide-subroutine
enable_hash_synchronization_default=yes
slow_pthread_self=yes
+ libgcj_interpreter=yes
;;
alpha*-*)
sysdeps_dir=alpha
libgcj_flags="${libgcj_flags} -mieee"
libgcj_interpreter=yes
enable_hash_synchronization_default=yes
+ IEEESPEC=-mieee
;;
powerpc64*-*)
# libffi not ported.
@@ -132,7 +133,8 @@ case "${host}" in
libgcj_interpreter=yes
enable_hash_synchronization_default=yes
;;
- sparc-*)
+ sparc*-*)
+ libgcj_interpreter=yes
;;
ia64-*)
sysdeps_dir=ia64
@@ -167,6 +169,7 @@ case "${host}" in
*-*-darwin*)
enable_hash_synchronization_default=no
slow_pthread_self=
+ can_unwind_signal=no
;;
*-*-freebsd*)
slow_pthread_self=
diff --git a/libjava/configure.in b/libjava/configure.in
index 59f821accce..6f482b2dbe1 100644
--- a/libjava/configure.in
+++ b/libjava/configure.in
@@ -515,13 +515,17 @@ else
ia64-*-linux*)
# Has broken backtrace()
;;
- s390*-*-linux*)
- # Has broken backtrace()
- ;;
*)
AC_DEFINE(HAVE_BACKTRACE)
;;
esac
+ ], [
+ case "$host" in
+ *mingw*)
+ # Has backtrace() defined in libgcj itself
+ AC_DEFINE(HAVE_BACKTRACE)
+ ;;
+ esac
])
AC_CHECK_LIB(dl, dladdr, [
@@ -785,14 +789,27 @@ AC_SUBST(ZINCS)
AC_SUBST(DIVIDESPEC)
AC_SUBST(CHECKREFSPEC)
AC_SUBST(EXCEPTIONSPEC)
+AC_SUBST(IEEESPEC)
AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes || test "$NULL_TARGET" = yes)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes)
AC_SUBST(GCC_UNWIND_INCLUDE)
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexecmainlibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexecmainlibdir='$(libdir)'
+fi
+toolexeclibdir=$toolexecmainlibdir/`$CC -print-multi-os-directory`
+AC_SUBST(toolexecdir)
+AC_SUBST(toolexecmainlibdir)
+AC_SUBST(toolexeclibdir)
+
# Determine gcj version number.
changequote(<<,>>)
gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`
@@ -907,7 +924,7 @@ case "${host}" in
SIGNAL_HANDLER=include/dwarf2-signal.h
;;
powerpc-*-linux*)
- SIGNAL_HANDLER=include/dwarf2-signal.h
+ SIGNAL_HANDLER=include/powerpc-signal.h
;;
alpha*-*-linux*)
SIGNAL_HANDLER=include/dwarf2-signal.h
@@ -916,7 +933,7 @@ case "${host}" in
SIGNAL_HANDLER=include/s390-signal.h
;;
x86_64*-*-linux*)
- SIGNAL_HANDLER=include/dwarf2-signal.h
+ SIGNAL_HANDLER=include/x86_64-signal.h
;;
sparc*-*-linux*)
SIGNAL_HANDLER=include/dwarf2-signal.h
@@ -934,6 +951,15 @@ if test "$enable_sjlj_exceptions" = yes; then
SIGNAL_HANDLER=include/default-signal.h
fi
+# Define here any compiler flags that you need in order to make backtrace() work.
+BACKTRACESPEC=
+case "${host}" in
+ x86_64*-*-linux*)
+ BACKTRACESPEC=-fno-omit-frame-pointer
+ ;;
+esac
+AC_SUBST(BACKTRACESPEC)
+
AC_SUBST(SYSDEP_SOURCES)
AC_LINK_FILES($SIGNAL_HANDLER, include/java-signal.h)
@@ -1027,4 +1053,5 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libgcj_basedir=${libgcj_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc
index dc350028cdd..81de5ad7da2 100644
--- a/libjava/defineclass.cc
+++ b/libjava/defineclass.cc
@@ -890,7 +890,7 @@ _Jv_ClassReader::handleClassBegin
throw_no_class_def_found_error (msg);
}
- def->accflags = access_flags;
+ def->accflags = access_flags | java::lang::reflect::Modifier::INTERPRETED;
pool_data[this_class].clazz = def;
pool_tags[this_class] = JV_CONSTANT_ResolvedClass;
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index 201722f80ca..f74286df92d 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -65,6 +65,7 @@ target_alias = @target_alias@
target_triplet = @target@
AR = @AR@
AS = @AS@
+BACKTRACESPEC = @BACKTRACESPEC@
CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@
@@ -86,6 +87,7 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INTERPRETER = @INTERPRETER@
JC1GCSPEC = @JC1GCSPEC@
@@ -129,6 +131,9 @@ here = @here@
libgcj_basedir = @libgcj_basedir@
mkinstalldirs = @mkinstalldirs@
tool_include_dir = @tool_include_dir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
index 8ed649432a2..e2840731ed0 100644
--- a/libjava/gcj/javaprims.h
+++ b/libjava/gcj/javaprims.h
@@ -120,6 +120,7 @@ extern "Java"
class SyncFailedException;
class UTFDataFormatException;
class UnsupportedEncodingException;
+ class VMObjectStreamClass;
class ValidatorAndPriority;
class WriteAbortedException;
class Writer;
@@ -230,16 +231,18 @@ extern "Java"
class Array;
class Constructor;
class Field;
- class InvocationHandler;
+ class InvocationHandler;
class InvocationTargetException;
class Member;
class Method;
class Modifier;
- class Proxy;
- class Proxy$ProxyData;
- class Proxy$ProxyType;
+ class Proxy;
+ class Proxy$ClassFactory;
+ class Proxy$ProxyData;
+ class Proxy$ProxySignature;
+ class Proxy$ProxyType;
class ReflectPermission;
- class UndeclaredThrowableException;
+ class UndeclaredThrowableException;
};
};
@@ -334,7 +337,6 @@ extern "Java"
class RandomAccess;
class RandomAccessSubList;
class ResourceBundle;
- class ResourceBundle$Security;
class Set;
class SimpleTimeZone;
class SortedMap;
@@ -371,6 +373,13 @@ extern "Java"
class Manifest;
};
+ namespace regex
+ {
+ class Matcher;
+ class Pattern;
+ class PatternSyntaxException;
+ };
+
namespace zip
{
class Adler32;
diff --git a/libjava/gnu/awt/j2d/DirectRasterGraphics.java b/libjava/gnu/awt/j2d/DirectRasterGraphics.java
index 8d25b88d018..28aad9b0404 100644
--- a/libjava/gnu/awt/j2d/DirectRasterGraphics.java
+++ b/libjava/gnu/awt/j2d/DirectRasterGraphics.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -61,7 +61,8 @@ public interface DirectRasterGraphics extends Cloneable
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
- public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints);
+ public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
+ int translateX, int translateY);
public void drawString(String str, int x, int y);
diff --git a/libjava/gnu/awt/j2d/Graphics2DImpl.java b/libjava/gnu/awt/j2d/Graphics2DImpl.java
index ef4d742c056..5af41bfc9cb 100644
--- a/libjava/gnu/awt/j2d/Graphics2DImpl.java
+++ b/libjava/gnu/awt/j2d/Graphics2DImpl.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation
+/* Copyright (C) 2000, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -24,6 +24,7 @@ import java.awt.Stroke;
import java.awt.geom.AffineTransform;
import java.awt.image.ImageObserver;
import java.awt.image.BufferedImage;
+import java.awt.image.BufferedImageOp;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.RenderableImage;
import java.text.AttributedCharacterIterator;
@@ -459,7 +460,7 @@ public class Graphics2DImpl extends Graphics2D implements Cloneable
throw new UnsupportedOperationException(msg);
}
- public void drawImage(BufferedImage image, BufferedImage op, int x, int y)
+ public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y)
{
throw new UnsupportedOperationException("not implemented yet");
}
diff --git a/libjava/gnu/awt/j2d/IntegerGraphicsState.java b/libjava/gnu/awt/j2d/IntegerGraphicsState.java
index 90a1a4d2ab5..bfea6611ca5 100644
--- a/libjava/gnu/awt/j2d/IntegerGraphicsState.java
+++ b/libjava/gnu/awt/j2d/IntegerGraphicsState.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -212,7 +212,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState
public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
{
- if ((tx == 0) || (ty == 0))
+ if ((tx == 0) && (ty == 0))
{
directGfx.drawPolyline(xPoints, yPoints, nPoints);
return;
@@ -223,7 +223,7 @@ public class IntegerGraphicsState extends AbstractGraphicsState
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
{
- if ((tx == 0) || (ty == 0))
+ if ((tx == 0) && (ty == 0))
{
directGfx.drawPolygon(xPoints, yPoints, nPoints);
return;
@@ -232,15 +232,11 @@ public class IntegerGraphicsState extends AbstractGraphicsState
throw new UnsupportedOperationException("translate not implemented");
}
- public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
+ public void fillPolygon (int[] xPoints, int[] yPoints, int nPoints)
{
- if ((tx == 0) || (ty == 0))
- {
- directGfx.fillPolygon(xPoints, yPoints, nPoints);
- return;
- }
-
- throw new UnsupportedOperationException("translate not implemented");
+ // FIXME: remove tx & ty args once translation via AffineTransform
+ // is implemented.
+ directGfx.fillPolygon (xPoints, yPoints, nPoints, tx, ty);
}
public boolean drawImage(Image image, int x, int y,
diff --git a/libjava/gnu/awt/xlib/XGraphics.java b/libjava/gnu/awt/xlib/XGraphics.java
index 27b07a2369a..90f53880e85 100644
--- a/libjava/gnu/awt/xlib/XGraphics.java
+++ b/libjava/gnu/awt/xlib/XGraphics.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -176,10 +176,10 @@ public class XGraphics implements Cloneable, DirectRasterGraphics
throw new UnsupportedOperationException("not implemented");
}
- public void fillPolygon(int[] xPoints, int[] yPoints, int
- nPoints)
+ public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
+ int translateX, int translateY)
{
- throw new UnsupportedOperationException("not implemented");
+ context.fillPolygon(xPoints, yPoints, nPoints, translateX, translateY);
}
public void drawString(String str, int x, int y)
diff --git a/libjava/gnu/awt/xlib/XGraphicsConfiguration.java b/libjava/gnu/awt/xlib/XGraphicsConfiguration.java
index 9ae12d6f8b9..7d7d5159fe0 100644
--- a/libjava/gnu/awt/xlib/XGraphicsConfiguration.java
+++ b/libjava/gnu/awt/xlib/XGraphicsConfiguration.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -389,15 +389,32 @@ public class XGraphicsConfiguration extends GraphicsConfiguration
int getPixel(Color color)
{
+ /* FIXME: consider an integer technique whenever
+ * the ColorModel is 8 bits per color.
+ * The problem with using integers is that it doesn't work unless
+ * the colors are 8 bits each (as in the array), since ColorModel.getDataElement(int[],int)
+ * expects non-normalized values. For example, in a 16-bit display mode, you
+ * would typically have 5 bits each for red and blue, and 6 bits for green.
int[] components =
- {
- color.getRed(),
- color.getGreen(),
- color.getBlue(),
- 0xff
- };
-
- ColorModel cm = getColorModel();
- return cm.getDataElement(components, 0);
+ {
+ color.getRed (),
+ color.getGreen (),
+ color.getBlue (),
+ 0xff
+ };
+ */
+
+ float[] normalizedComponents =
+ {
+ ((float)color.getRed ()) / 255F,
+ ((float)color.getGreen ()) / 255F,
+ ((float)color.getBlue ()) / 255F,
+ 1
+ };
+ int[] unnormalizedComponents = { 0, 0, 0, 0xff };
+ ColorModel cm = getColorModel ();
+ cm.getUnnormalizedComponents(normalizedComponents, 0,
+ unnormalizedComponents, 0);
+ return cm.getDataElement (unnormalizedComponents, 0);
}
}
diff --git a/libjava/gnu/awt/xlib/XToolkit.java b/libjava/gnu/awt/xlib/XToolkit.java
index 0c199b2b7f7..c71b39d0f80 100644
--- a/libjava/gnu/awt/xlib/XToolkit.java
+++ b/libjava/gnu/awt/xlib/XToolkit.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation
+/* Copyright (C) 2000, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -173,7 +173,7 @@ public class XToolkit extends Toolkit
public java.awt.image.ColorModel getColorModel()
{
- throw new UnsupportedOperationException("not implemented yet");
+ return getDefaultXGraphicsConfiguration().getColorModel();
}
public String[] getFontList()
diff --git a/libjava/gnu/gcj/convert/Output_EUCJIS.java b/libjava/gnu/gcj/convert/Output_EUCJIS.java
index 0662239aa85..c0cc4378b26 100644
--- a/libjava/gnu/gcj/convert/Output_EUCJIS.java
+++ b/libjava/gnu/gcj/convert/Output_EUCJIS.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation
+/* Copyright (C) 1999, 2003 Free Software Foundation
This file is part of libgcj.
@@ -22,6 +22,11 @@ public class Output_EUCJIS extends UnicodeToBytes
public native int write (String str, int inpos, int inlength, char[] work);
+ public boolean havePendingBytes()
+ {
+ return pending1 >= 0;
+ }
+
int pending1 = -1;
int pending2;
}
diff --git a/libjava/gnu/gcj/convert/Output_SJIS.java b/libjava/gnu/gcj/convert/Output_SJIS.java
index c5370642378..67470ba7803 100644
--- a/libjava/gnu/gcj/convert/Output_SJIS.java
+++ b/libjava/gnu/gcj/convert/Output_SJIS.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation
+/* Copyright (C) 1999, 2003 Free Software Foundation
This file is part of libgcj.
@@ -22,5 +22,10 @@ public class Output_SJIS extends UnicodeToBytes
public native int write (String str, int inpos, int inlength, char[] work);
+ public boolean havePendingBytes()
+ {
+ return pending >= 0;
+ }
+
int pending = -1;
}
diff --git a/libjava/gnu/gcj/convert/Output_UTF8.java b/libjava/gnu/gcj/convert/Output_UTF8.java
index 01f5ce890e3..f54e7ebcfc2 100644
--- a/libjava/gnu/gcj/convert/Output_UTF8.java
+++ b/libjava/gnu/gcj/convert/Output_UTF8.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -104,6 +104,7 @@ public class Output_UTF8 extends UnicodeToBytes
{
value = (hi_part - 0xD800) * 0x400 + (ch - 0xDC00) + 0x10000;
buf[count++] = (byte) (0xF0 | (value >> 18));
+ avail--;
bytes_todo = 3;
hi_part = 0;
}
@@ -118,4 +119,10 @@ public class Output_UTF8 extends UnicodeToBytes
}
return inpos - start_pos;
}
+
+ public boolean havePendingBytes()
+ {
+ return bytes_todo > 0;
+ }
+
}
diff --git a/libjava/gnu/gcj/convert/UnicodeToBytes.java b/libjava/gnu/gcj/convert/UnicodeToBytes.java
index 8181cb83109..0785d7ea43e 100644
--- a/libjava/gnu/gcj/convert/UnicodeToBytes.java
+++ b/libjava/gnu/gcj/convert/UnicodeToBytes.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -146,6 +146,17 @@ public abstract class UnicodeToBytes extends IOConverter
return write(work, 0, srcEnd - inpos);
}
+ /**
+ * Returns true when the converter has consumed some bytes that are
+ * not yet converted to characters because further continuation
+ * bytes are needed. Defaults to false, should be overridden by
+ * decoders that internally store some bytes.
+ */
+ public boolean havePendingBytes()
+ {
+ return false;
+ }
+
/** Indicate that the converter is resuable.
* This class keeps track of converters on a per-encoding basis.
* When done with an encoder you may call this method to indicate
diff --git a/libjava/gnu/gcj/convert/natIconv.cc b/libjava/gnu/gcj/convert/natIconv.cc
index 0ed8606f94b..7b7ec64488e 100644
--- a/libjava/gnu/gcj/convert/natIconv.cc
+++ b/libjava/gnu/gcj/convert/natIconv.cc
@@ -268,6 +268,9 @@ gnu::gcj::convert::IOConverter::iconv_init (void)
// Conversion must be complete for us to use the result.
if (r != (size_t) -1 && inc == 0 && outc == 0)
result = (c != 0xfeff);
+
+ // Release iconv handle.
+ iconv_close (handle);
}
#endif /* HAVE_ICONV */
return result;
diff --git a/libjava/gnu/gcj/protocol/http/Connection.java b/libjava/gnu/gcj/protocol/http/Connection.java
index caababa6823..1a6fc0105f9 100644
--- a/libjava/gnu/gcj/protocol/http/Connection.java
+++ b/libjava/gnu/gcj/protocol/http/Connection.java
@@ -1,6 +1,6 @@
// Connection.java - Implementation of HttpURLConnection for http protocol.
-/* Copyright (C) 1999, 2000 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -25,10 +25,11 @@ import java.util.Enumeration;
/**
* Written using on-line Java Platform 1.2 API Specification, as well
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status: Minimal subset of functionality. Proxies and Redirects
- * not yet handled. FileNameMap handling needs to be considered.
- * useCaches, ifModifiedSince, and allowUserInteraction need
- * consideration as well as doInput and doOutput.
+ * Status: Minimal subset of functionality. Proxies only partially
+ * handled; Redirects not yet handled. FileNameMap handling needs to
+ * be considered. useCaches, ifModifiedSince, and
+ * allowUserInteraction need consideration as well as doInput and
+ * doOutput.
*/
class Connection extends HttpURLConnection
@@ -40,6 +41,33 @@ class Connection extends HttpURLConnection
private Vector hdrVec = new Vector();
private BufferedInputStream bufferedIn;
+ private static int proxyPort = 80;
+ private static boolean proxyInUse = false;
+ private static String proxyHost = null;
+
+ static
+ {
+ // Recognize some networking properties listed at
+ // http://java.sun.com/j2se/1.4/docs/guide/net/properties.html.
+ String port = null;
+ proxyHost = System.getProperty("http.proxyHost");
+ if (proxyHost != null)
+ {
+ proxyInUse = true;
+ if ((port = System.getProperty("http.proxyPort")) != null)
+ {
+ try
+ {
+ proxyPort = Integer.parseInt(port);
+ }
+ catch (Throwable t)
+ {
+ // Nothing.
+ }
+ }
+ }
+ }
+
public Connection(URL url)
{
super(url);
@@ -85,12 +113,20 @@ class Connection extends HttpURLConnection
// Get address and port number.
int port;
- InetAddress destAddr = InetAddress.getByName(url.getHost());
- if ((port = url.getPort()) == -1)
- port = 80;
+ if (proxyInUse)
+ {
+ port = proxyPort;
+ sock = new Socket(proxyHost, port);
+ }
+ else
+ {
+ InetAddress destAddr = InetAddress.getByName(url.getHost());
+ if ((port = url.getPort()) == -1)
+ port = 80;
+ // Open socket and output stream.
+ sock = new Socket(destAddr, port);
+ }
- // Open socket and output stream.
- sock = new Socket(destAddr, port);
PrintWriter out = new PrintWriter(sock.getOutputStream());
// Send request including any request properties that were set.
@@ -123,10 +159,9 @@ class Connection extends HttpURLConnection
}
}
- // TODO: public boolean usingProxy()
public boolean usingProxy()
{
- return false;
+ return proxyInUse;
}
// Override default method in URLConnection.
diff --git a/libjava/gnu/gcj/runtime/FirstThread.java b/libjava/gnu/gcj/runtime/FirstThread.java
index fbc7a5bee2b..c276880b6e0 100644
--- a/libjava/gnu/gcj/runtime/FirstThread.java
+++ b/libjava/gnu/gcj/runtime/FirstThread.java
@@ -94,4 +94,6 @@ final class FirstThread extends Thread
static final Class Kfile = gnu.gcj.protocol.file.Handler.class;
static final Class Khttp = gnu.gcj.protocol.http.Handler.class;
static final Class Kjar = gnu.gcj.protocol.jar.Handler.class;
+ static final Class KinputASCII = gnu.gcj.convert.Input_ASCII.class;
+ static final Class KoutputASCII = gnu.gcj.convert.Output_ASCII.class;
}
diff --git a/libjava/gnu/gcj/runtime/NameFinder.java b/libjava/gnu/gcj/runtime/NameFinder.java
index 1d729d252ac..19820c1bd6b 100644
--- a/libjava/gnu/gcj/runtime/NameFinder.java
+++ b/libjava/gnu/gcj/runtime/NameFinder.java
@@ -103,6 +103,11 @@ public class NameFinder
private BufferedReader addr2lineIn;
/**
+ * Flag set if using addr2name.awk instead of addr2line from binutils.
+ */
+ private boolean usingAddr2name = false;
+
+ /**
* Creates a new NameFinder. Call close to get rid of any resources
* created while using the <code>lookup</code> methods.
*/
@@ -142,6 +147,7 @@ public class NameFinder
{
String[] exec = new String[] {"addr2name.awk", executable};
addr2line = runtime.exec(exec);
+ usingAddr2name = true;
}
catch (IOException ioe2) { addr2line = null; }
}
@@ -181,6 +187,11 @@ public class NameFinder
native private String getAddrAsString(RawData addrs, int n);
/**
+ * Returns the label that is exported for the given method name.
+ */
+ native private String getExternalLabel(String name);
+
+ /**
* If nth element of stack is an interpreted frame, return the
* element representing the method being interpreted.
*/
@@ -212,6 +223,15 @@ public class NameFinder
addr2lineOut.flush();
name = addr2lineIn.readLine();
file = addr2lineIn.readLine();
+
+ // addr2line uses symbolic debugging information instead
+ // of the actually exported labels as addr2name.awk does.
+ // This name might need some modification, depending on
+ // the system, to make it a label like that returned
+ // by addr2name.awk or dladdr.
+ if (! usingAddr2name)
+ if (name != null && ! "??".equals (name))
+ name = getExternalLabel (name);
}
catch (IOException ioe) { addr2line = null; }
}
@@ -371,7 +391,7 @@ public class NameFinder
int line = -1;
if (fileName != null)
{
- int colon = file.indexOf(':');
+ int colon = file.lastIndexOf(':');
if (colon > 0)
{
fileName = file.substring(0, colon);
diff --git a/libjava/gnu/gcj/runtime/SharedLibLoader.java b/libjava/gnu/gcj/runtime/SharedLibLoader.java
index ac2f72d4b64..40d041d7d21 100644
--- a/libjava/gnu/gcj/runtime/SharedLibLoader.java
+++ b/libjava/gnu/gcj/runtime/SharedLibLoader.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation
+/* Copyright (C) 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -27,7 +27,7 @@ public class SharedLibLoader extends ClassLoader
/** Load a shared library, and associate a ClassLoader with it.
* @param libname named of shared library (passed to dlopen)
* @param parent the parent ClassLoader
- * @parem flags passed to dlopen
+ * @param flags passed to dlopen
*/
public SharedLibLoader(String libname, ClassLoader parent, int flags)
{
diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java
index 5faaa1495ae..d3fe88f166d 100644
--- a/libjava/gnu/gcj/runtime/StackTrace.java
+++ b/libjava/gnu/gcj/runtime/StackTrace.java
@@ -155,6 +155,7 @@ public final class StackTrace
}
private native void fillInStackTrace(int n, int offset);
+ protected native void finalize();
private static native MethodRef getCompiledMethodRef(RawData addr);
private static IdentityHashMap map = new IdentityHashMap();
diff --git a/libjava/gnu/gcj/runtime/natNameFinder.cc b/libjava/gnu/gcj/runtime/natNameFinder.cc
index 29687cb5bb9..6605e380591 100644
--- a/libjava/gnu/gcj/runtime/natNameFinder.cc
+++ b/libjava/gnu/gcj/runtime/natNameFinder.cc
@@ -15,6 +15,8 @@ details. */
#include <config.h>
+#include <string.h>
+
#include <gcj/cni.h>
#include <jvm.h>
#include <java/lang/String.h>
@@ -28,6 +30,37 @@ details. */
#include <dlfcn.h>
#endif
+// On some systems, a prefix is attached to a method name before
+// it is exported as a label. The GCC preprocessor predefines
+// this prefix as the macro __USER_LABEL_PREFIX__ which expands to
+// a string (not string constant) representing the prefix, if any.
+#undef LABEL_PREFIX
+#ifdef __USER_LABEL_PREFIX__
+
+#define USER_LABEL_PREFIX_STRING_0(s) #s
+#define USER_LABEL_PREFIX_STRING(s) USER_LABEL_PREFIX_STRING_0(s)
+
+#define LABEL_PREFIX USER_LABEL_PREFIX_STRING(__USER_LABEL_PREFIX__)
+
+#else /* __USER_LABEL_PREFIX__ */
+
+#define LABEL_PREFIX ""
+
+#endif /* ! __USER_LABEL_PREFIX__ */
+
+java::lang::String*
+gnu::gcj::runtime::NameFinder::getExternalLabel (java::lang::String* name)
+{
+ jsize nameLen = JvGetStringUTFLength (name);
+ jsize pfxLen = strlen (LABEL_PREFIX);
+ char *newName = (char *) JvMalloc (pfxLen + nameLen + 1);
+ *(newName + 0) = '\0';
+ strcpy (newName, LABEL_PREFIX);
+ JvGetStringUTFRegion (name, 0, nameLen, newName + pfxLen);
+ *(newName + pfxLen + nameLen) = '\0';
+ return JvNewStringLatin1 (newName);
+}
+
java::lang::String*
gnu::gcj::runtime::NameFinder::getExecutable (void)
{
diff --git a/libjava/gnu/gcj/runtime/natSharedLibLoader.cc b/libjava/gnu/gcj/runtime/natSharedLibLoader.cc
index 233540917b3..5d9e02ad2df 100644
--- a/libjava/gnu/gcj/runtime/natSharedLibLoader.cc
+++ b/libjava/gnu/gcj/runtime/natSharedLibLoader.cc
@@ -1,6 +1,6 @@
// natSharedLibLoader.cc - Implementation of FirstThread native methods.
-/* Copyright (C) 2001 Free Software Foundation
+/* Copyright (C) 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -62,7 +62,7 @@ gnu::gcj::runtime::SharedLibLoader::init(jbyteArray libname, jint flags)
}
handler = (gnu::gcj::RawData*) h;
#else
- const char *msg = "ShareedLibLoader is not supported on this platform";
+ const char *msg = "SharedLibLoader is not supported on this platform";
throw new java::lang::UnsupportedOperationException(JvNewStringLatin1(msg));
#endif
}
diff --git a/libjava/gnu/gcj/runtime/natStackTrace.cc b/libjava/gnu/gcj/runtime/natStackTrace.cc
index e977f356638..ef887cf2cac 100644
--- a/libjava/gnu/gcj/runtime/natStackTrace.cc
+++ b/libjava/gnu/gcj/runtime/natStackTrace.cc
@@ -1,6 +1,6 @@
// natStackTrace.cc - native helper methods for Throwable
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc
+/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc
This file is part of libgcj.
@@ -16,6 +16,7 @@ details. */
*/
#include <config.h>
+#include <platform.h>
#include <string.h>
@@ -194,4 +195,9 @@ gnu::gcj::runtime::StackTrace::update(void)
}
}
-
+void
+gnu::gcj::runtime::StackTrace::finalize(void)
+{
+ if (addrs != NULL)
+ _Jv_Free (addrs);
+}
diff --git a/libjava/gnu/gcj/xlib/GC.java b/libjava/gnu/gcj/xlib/GC.java
index 6b33715cf6c..1806c2ae569 100644
--- a/libjava/gnu/gcj/xlib/GC.java
+++ b/libjava/gnu/gcj/xlib/GC.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -84,6 +84,8 @@ public class GC implements Cloneable
public native void drawRectangle(int x, int y, int w, int h);
public native void fillRectangle(int x, int y, int w, int h);
+ public native void fillPolygon(int[] xPoints, int[] yPoints, int nPoints,
+ int translateX, int translateY);
/**
*
diff --git a/libjava/gnu/gcj/xlib/natGC.cc b/libjava/gnu/gcj/xlib/natGC.cc
index 66de35f868b..1a1bd586d8e 100644
--- a/libjava/gnu/gcj/xlib/natGC.cc
+++ b/libjava/gnu/gcj/xlib/natGC.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* Copyright (C) 2000, 2003 Free Software Foundation
This file is part of libgcj.
@@ -11,6 +11,7 @@ details. */
#include <X11/Xlib.h>
#include <gcj/cni.h>
+#include <gcj/array.h>
#include <gnu/gcj/RawData.h>
#include <java/lang/String.h>
#include <java/awt/Rectangle.h>
@@ -154,6 +155,27 @@ void gnu::gcj::xlib::GC::fillRectangle(jint x, jint y, jint w, jint h)
// no fast fail
}
+void gnu::gcj::xlib::GC::fillPolygon(jintArray xPoints, jintArray yPoints,
+ jint nPoints,
+ jint translateX, jint translateY)
+{
+ Display* display = target->getDisplay();
+ ::Display* dpy = (::Display*) (display->display);
+ ::Drawable drawableXID = target->getXID();
+ ::GC gc = (::GC) structure;
+ typedef ::XPoint xpoint;
+ std::vector<xpoint> points(nPoints+1);
+ for (int i=0; i<nPoints; i++)
+ {
+ points[i].x = elements(xPoints)[i] + translateX;
+ points[i].y = elements(yPoints)[i] + translateY;
+ }
+ points[nPoints] = points[0];
+ XFillPolygon(dpy, drawableXID, gc, &(points.front()), nPoints,
+ Complex, CoordModeOrigin);
+ // no fast fail
+}
+
void gnu::gcj::xlib::GC::clearArea(jint x, jint y, jint w, jint h,
jboolean exposures)
{
diff --git a/libjava/gnu/java/nio/ByteBufferImpl.java b/libjava/gnu/java/nio/ByteBufferImpl.java
index 54fba2492e1..149dc1c9683 100644
--- a/libjava/gnu/java/nio/ByteBufferImpl.java
+++ b/libjava/gnu/java/nio/ByteBufferImpl.java
@@ -43,37 +43,35 @@ import java.nio.DoubleBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.nio.LongBuffer;
+import java.nio.ReadOnlyBufferException;
import java.nio.ShortBuffer;
+/**
+ * This is a Heap memory implementation
+ */
public final class ByteBufferImpl extends ByteBuffer
{
- private byte[] backing_buffer;
- private int array_offset;
- private boolean ro;
-
+ private boolean readOnly;
+
public ByteBufferImpl (int cap, int off, int lim)
{
- this.cap = cap;
- limit (lim);
- position (off);
- this.backing_buffer = new byte[cap];
+ super (cap, lim, off, 0);
+ this.backing_buffer = new byte [cap];
+ readOnly = false;
}
- public ByteBufferImpl (byte[] array, int off, int lim)
+ public ByteBufferImpl (byte[] array, int offset, int length)
{
- this.cap = array.length;
- limit (lim);
- position (off);
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
+ readOnly = false;
}
public ByteBufferImpl (ByteBufferImpl copy)
{
- this.cap = copy.capacity ();
- limit (copy.limit ());
- position (copy.position ());
- ro = copy.ro;
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
+ readOnly = copy.isReadOnly ();
}
void inc_pos (int toAdd)
@@ -89,52 +87,140 @@ public final class ByteBufferImpl extends ByteBuffer
private static native byte[] nio_cast(float[]copy);
private static native byte[] nio_cast(double[]copy);
+ ByteBufferImpl (byte[] copy)
+ {
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
- ByteBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(ByteBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/1); return res; }
+ private static native byte nio_get_Byte (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Byte (ByteBufferImpl b, int index, int limit, byte value);
+
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 1);
+ return res;
+ }
- ByteBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Char(ByteBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/1); return res; }
+ ByteBufferImpl (char[] copy)
+ {
+ super (copy.length * 2, copy.length * 2, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
- ByteBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Short(ByteBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/1); return res; }
+ private static native char nio_get_Char (ByteBufferImpl b, int index, int limit);
- ByteBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Int(ByteBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/1); return res; }
+ private static native void nio_put_Char (ByteBufferImpl b, int index, int limit, char value);
- ByteBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Long(ByteBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/1); return res; }
+ public CharBuffer asCharBuffer ()
+ {
+ CharBufferImpl res = new CharBufferImpl (backing_buffer);
+ res.limit ((limit () * 2) / 1);
+ return res;
+ }
- ByteBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Float(ByteBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/1); return res; }
+ ByteBufferImpl (short[] copy)
+ {
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
+
+ private static native short nio_get_Short (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Short (ByteBufferImpl b, int index, int limit, short value);
+
+ public ShortBuffer asShortBuffer ()
+ {
+ ShortBufferImpl res = new ShortBufferImpl (backing_buffer);
+ res.limit ((limit () * 2) / 1);
+ return res;
+ }
- ByteBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(ByteBufferImpl b, int index, int limit);
- private static native void nio_put_Double(ByteBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/1); return res; }
+ ByteBufferImpl (int[] copy)
+ {
+ super (copy.length * 4, copy.length * 4, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast(copy) : null;
+ readOnly = false;
+ }
+
+ private static native int nio_get_Int (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Int (ByteBufferImpl b, int index, int limit, int value);
+
+ public IntBuffer asIntBuffer ()
+ {
+ IntBufferImpl res = new IntBufferImpl (backing_buffer);
+ res.limit ((limit() * 4) / 1);
+ return res;
+ }
+
+ ByteBufferImpl (long[] copy)
+ {
+ super (copy.length * 8, copy.length * 8, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
+
+ private static native long nio_get_Long (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Long (ByteBufferImpl b, int index, int limit, long value);
+
+ public LongBuffer asLongBuffer ()
+ {
+ LongBufferImpl res = new LongBufferImpl (backing_buffer);
+ res.limit ((limit() * 8) / 1);
+ return res;
+ }
+
+ ByteBufferImpl (float[] copy)
+ {
+ super (copy.length * 4, copy.length * 4, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
+
+ private static native float nio_get_Float (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Float (ByteBufferImpl b, int index, int limit, float value);
+
+ public FloatBuffer asFloatBuffer ()
+ {
+ FloatBufferImpl res = new FloatBufferImpl (backing_buffer);
+ res.limit ((limit() * 4) / 1);
+ return res;
+ }
+
+ ByteBufferImpl (double[] copy)
+ {
+ super (copy.length * 8, copy.length * 8, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
+
+ private static native double nio_get_Double (ByteBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Double (ByteBufferImpl b, int index, int limit, double value);
+
+ public DoubleBuffer asDoubleBuffer ()
+ {
+ DoubleBufferImpl res = new DoubleBufferImpl (backing_buffer);
+ res.limit ((limit () * 8) / 1);
+ return res;
+ }
public boolean isReadOnly()
{
- return ro;
+ return readOnly;
}
public ByteBuffer slice()
{
- ByteBufferImpl A = new ByteBufferImpl(this);
- A.array_offset = position();
- return A;
+ return new ByteBufferImpl(this);
}
public ByteBuffer duplicate()
@@ -145,7 +231,7 @@ public final class ByteBufferImpl extends ByteBuffer
public ByteBuffer asReadOnlyBuffer()
{
ByteBufferImpl a = new ByteBufferImpl(this);
- a.ro = true;
+ a.readOnly = true;
return a;
}
@@ -156,7 +242,7 @@ public final class ByteBufferImpl extends ByteBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public byte get()
@@ -168,6 +254,9 @@ public final class ByteBufferImpl extends ByteBuffer
final public ByteBuffer put(byte b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -180,14 +269,201 @@ public final class ByteBufferImpl extends ByteBuffer
final public ByteBuffer put(int index, byte b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public ByteBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public ByteBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public ByteBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public ByteBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public ByteBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public ByteBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public ByteBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public ByteBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public ByteBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public ByteBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public ByteBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public ByteBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+ final public char getChar ()
+ {
+ char a = nio_get_Char (this, position (), limit ());
+ inc_pos (2);
+ return a;
+ }
+
+ final public ByteBuffer putChar (char value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Char (this, position (), limit (), value);
+ inc_pos (2);
+ return this;
+ }
+
+ final public char getChar (int index)
+ {
+ char a = nio_get_Char (this, index, limit ());
+ return a;
+ }
+
+ final public ByteBuffer putChar (int index, char value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Char (this, index, limit (), value);
+ return this;
+ }
+
+ final public short getShort ()
+ {
+ short a = nio_get_Short (this, position (), limit ());
+ inc_pos (2);
+ return a;
+ }
+
+ final public ByteBuffer putShort (short value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Short (this, position (), limit(), value);
+ inc_pos (2);
+ return this;
+ }
+
+ final public short getShort (int index)
+ {
+ short a = nio_get_Short (this, index, limit ());
+ return a;
+ }
+
+ final public ByteBuffer putShort (int index, short value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Short (this, index, limit (), value);
+ return this;
+ }
+
+ final public int getInt ()
+ {
+ int a = nio_get_Int (this, position (), limit ());
+ inc_pos (4);
+ return a;
+ }
+
+ final public ByteBuffer putInt (int value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Int (this, position (), limit , value);
+ inc_pos (4);
+ return this;
+ }
+
+ final public int getInt (int index)
+ {
+ int a = nio_get_Int (this, index, limit ());
+ return a;
+ }
+
+ final public ByteBuffer putInt (int index, int value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Int(this, index, limit (), value);
+ return this;
+ }
+
+ final public long getLong ()
+ {
+ long a = nio_get_Long (this, position (), limit ());
+ inc_pos (8);
+ return a;
+ }
+
+ final public ByteBuffer putLong (long value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Long (this, position (), limit (), value);
+ inc_pos (8);
+ return this;
+ }
+
+ final public long getLong (int index)
+ {
+ long a = nio_get_Long (this, index, limit ());
+ return a;
+ }
+
+ final public ByteBuffer putLong (int index, long value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Long (this, index, limit (), value);
+ return this;
+ }
+
+ final public float getFloat ()
+ {
+ float a = nio_get_Float (this, position (), limit ());
+ inc_pos (4);
+ return a;
+ }
+
+ final public ByteBuffer putFloat (float value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Float (this, position (), limit (), value);
+ inc_pos (4);
+ return this;
+ }
+
+ final public float getFloat (int index)
+ {
+ float a = nio_get_Float (this, index, limit ());
+ return a;
+ }
+
+ final public ByteBuffer putFloat (int index, float value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Float (this, index, limit(), value);
+ return this;
+ }
+
+ final public double getDouble ()
+ {
+ double a = nio_get_Double (this, position (), limit ());
+ inc_pos (8);
+ return a;
+ }
+
+ final public ByteBuffer putDouble (double value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Double (this, position(), limit (), value);
+ inc_pos (8);
+ return this;
+ }
+
+ final public double getDouble (int index)
+ {
+ return nio_get_Double (this, index, limit ());
+ }
+
+ final public ByteBuffer putDouble (int index, double value)
+ {
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
+ nio_put_Double (this, index, limit (), value);
+ return this;
+ }
}
diff --git a/libjava/gnu/java/nio/CharBufferImpl.java b/libjava/gnu/java/nio/CharBufferImpl.java
index 399dd6096b8..5126e28f096 100644
--- a/libjava/gnu/java/nio/CharBufferImpl.java
+++ b/libjava/gnu/java/nio/CharBufferImpl.java
@@ -40,101 +40,65 @@ package gnu.java.nio;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class CharBufferImpl extends CharBuffer
{
- private boolean ro;
+ private boolean readOnly;
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
-
public CharBufferImpl(int cap, int off, int lim)
{
- this.backing_buffer = new char[cap];
- this.cap = cap;
- this.limit(lim);
- this.position(off);
+ super (cap, lim, off, 0);
+ this.backing_buffer = new char [cap];
+ readOnly = false;
}
- public CharBufferImpl(char[] array, int off, int lim)
+ public CharBufferImpl(char[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public CharBufferImpl (CharBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit (copy.limit());
- position (copy.position ());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos (int a)
+ private static native char[] nio_cast (byte[] copy);
+
+ CharBufferImpl (byte[] copy)
{
- position (position () + a);
+ super (copy.length / 2, copy.length / 2, 0, 0);
+ this.backing_buffer = (copy != null ? nio_cast (copy) : null);
+ readOnly = false;
}
- CharBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(CharBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/2); return res; }
-
- CharBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Char(CharBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; }
-
- CharBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Short(CharBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; }
-
- CharBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Int(CharBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; }
-
- CharBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Long(CharBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; }
+ private static native byte nio_get_Byte (CharBufferImpl b, int index, int limit);
- CharBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Float(CharBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; }
+ private static native void nio_put_Byte (CharBufferImpl b, int index, int limit, byte value);
- CharBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(CharBufferImpl b, int index, int limit);
- private static native void nio_put_Double(CharBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; }
-
- private static native char[] nio_cast(byte[]copy);
- private static native char[] nio_cast(char[]copy);
- private static native char[] nio_cast(short[]copy);
- private static native char[] nio_cast(long[]copy);
- private static native char[] nio_cast(int[]copy);
- private static native char[] nio_cast(float[]copy);
- private static native char[] nio_cast(double[]copy);
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 2);
+ return res;
+ }
public boolean isReadOnly()
{
- return ro;
+ return readOnly;
}
public CharBuffer slice()
{
- CharBufferImpl buffer = new CharBufferImpl (this);
- buffer.array_offset = position ();
- return buffer;
+ return new CharBufferImpl (this);
}
public CharBuffer duplicate()
@@ -144,9 +108,9 @@ public final class CharBufferImpl extends CharBuffer
public CharBuffer asReadOnlyBuffer()
{
- CharBufferImpl a = new CharBufferImpl(this);
- a.ro = true;
- return a;
+ CharBufferImpl result = new CharBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public CharBuffer compact()
@@ -156,7 +120,7 @@ public final class CharBufferImpl extends CharBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public CharSequence subSequence (int start, int end)
@@ -172,6 +136,9 @@ public final class CharBufferImpl extends CharBuffer
position () + end);
}
+ /**
+ * Relative get method. Reads the next character from the buffer.
+ */
final public char get()
{
char e = backing_buffer[position()];
@@ -179,27 +146,54 @@ public final class CharBufferImpl extends CharBuffer
return e;
}
+ /**
+ * Relative put method. Writes <code>value</code> to the next position
+ * in the buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
final public CharBuffer put(char b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
}
-
- final public char getChar() { return get(); } final public CharBuffer putChar(char value) { return put(value); } final public char getChar(int index) { return get(index); } final public CharBuffer putChar(int index, char value) { return put(index, value); };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public CharBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public CharBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public CharBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public CharBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public CharBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public CharBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public CharBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public CharBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public CharBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public CharBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+ /**
+ * Absolute get method. Reads the character at position <code>index</code>.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ */
final public char get(int index)
{
+ if (index < 0
+ || index >= limit ())
+ throw new IndexOutOfBoundsException ();
+
return backing_buffer[index];
}
+ /**
+ * Absolute put method. Writes <code>value</value> to position
+ * <code>index</code> in the buffer.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
final public CharBuffer put(int index, char b)
{
+ if (index < 0
+ || index >= limit ())
+ throw new IndexOutOfBoundsException ();
+
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
@@ -207,6 +201,6 @@ public final class CharBufferImpl extends CharBuffer
public final ByteOrder order()
{
- return endian;
+ return ByteOrder.BIG_ENDIAN;
}
}
diff --git a/libjava/gnu/java/nio/DoubleBufferImpl.java b/libjava/gnu/java/nio/DoubleBufferImpl.java
index de0e6717fd0..f4dffc2d8f4 100644
--- a/libjava/gnu/java/nio/DoubleBufferImpl.java
+++ b/libjava/gnu/java/nio/DoubleBufferImpl.java
@@ -38,100 +38,66 @@ exception statement from your version. */
package gnu.java.nio;
import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
+import java.nio.ByteOrder;
import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class DoubleBufferImpl extends DoubleBuffer
{
- private int array_offset;
- private boolean ro;
+ private boolean readOnly;
public DoubleBufferImpl(int cap, int off, int lim)
{
+ super (cap, lim, off, 0);
this.backing_buffer = new double[cap];
- this.cap = cap;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
- public DoubleBufferImpl(double[] array, int off, int lim)
+ public DoubleBufferImpl(double[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public DoubleBufferImpl(DoubleBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit(copy.limit());
- position(copy.position());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos(int a)
+ DoubleBufferImpl (byte[] copy)
{
- position(position() + a);
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
}
-
- DoubleBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(DoubleBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/8); return res; }
-
- DoubleBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Char(DoubleBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/8); return res; }
-
- DoubleBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Short(DoubleBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/8); return res; }
- DoubleBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Int(DoubleBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/8); return res; }
+ private static native byte nio_get_Byte (DoubleBufferImpl b, int index, int limit);
- DoubleBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Long(DoubleBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/8); return res; }
+ private static native void nio_put_Byte (DoubleBufferImpl b, int index, int limit, byte value);
- DoubleBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Float(DoubleBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/8); return res; }
-
- DoubleBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(DoubleBufferImpl b, int index, int limit);
- private static native void nio_put_Double(DoubleBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/8); return res; }
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 8);
+ return res;
+ }
- private static native double[] nio_cast(byte[]copy);
- private static native double[] nio_cast(char[]copy);
- private static native double[] nio_cast(short[]copy);
- private static native double[] nio_cast(long[]copy);
- private static native double[] nio_cast(int[]copy);
- private static native double[] nio_cast(float[]copy);
- private static native double[] nio_cast(double[]copy);
+ private static native double[] nio_cast (byte[] copy);
- public boolean isReadOnly()
+ public boolean isReadOnly ()
{
- return ro;
+ return readOnly;
}
- public DoubleBuffer slice()
+ public DoubleBuffer slice ()
{
- DoubleBufferImpl A = new DoubleBufferImpl(this);
- A.array_offset = position();
- return A;
+ return new DoubleBufferImpl (this);
}
public DoubleBuffer duplicate()
@@ -141,9 +107,9 @@ public final class DoubleBufferImpl extends DoubleBuffer
public DoubleBuffer asReadOnlyBuffer()
{
- DoubleBufferImpl a = new DoubleBufferImpl(this);
- a.ro = true;
- return a;
+ DoubleBufferImpl result = new DoubleBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public DoubleBuffer compact()
@@ -153,7 +119,7 @@ public final class DoubleBufferImpl extends DoubleBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public double get()
@@ -165,6 +131,9 @@ public final class DoubleBufferImpl extends DoubleBuffer
final public DoubleBuffer put(double b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -177,14 +146,15 @@ public final class DoubleBufferImpl extends DoubleBuffer
final public DoubleBuffer put(int index, double b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
-
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public DoubleBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public DoubleBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public DoubleBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public DoubleBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public DoubleBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public DoubleBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public DoubleBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public DoubleBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public DoubleBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public DoubleBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { return get(); } final public DoubleBuffer putDouble(double value) { return put(value); } final public double getDouble(int index) { return get(index); } final public DoubleBuffer putDouble(int index, double value) { return put(index, value); };
+
+ final public ByteOrder order ()
+ {
+ return ByteOrder.BIG_ENDIAN;
+ }
}
diff --git a/libjava/gnu/java/nio/FileChannelImpl.java b/libjava/gnu/java/nio/FileChannelImpl.java
index 26b48e5e51c..31779bbc64e 100644
--- a/libjava/gnu/java/nio/FileChannelImpl.java
+++ b/libjava/gnu/java/nio/FileChannelImpl.java
@@ -44,7 +44,13 @@ import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.MappedByteBuffer;
+import java.nio.channels.ClosedChannelException;
import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
+import java.nio.channels.NonReadableChannelException;
+import java.nio.channels.NonWritableChannelException;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.WritableByteChannel;
/**
* This file is not user visible !
@@ -66,11 +72,7 @@ public class FileChannelImpl extends FileChannel
* This method came from java.io.RandomAccessFile
* It is private there so we will repeat it here.
*/
-// private native long lengthInternal (int native_fd) throws IOException;
- private long lengthInternal (int native_fd) throws IOException
- {
- return 0;
- };
+ private native long lengthInternal (int native_fd) throws IOException;
public FileChannelImpl (int fd, Object obj)
{
@@ -80,39 +82,42 @@ public class FileChannelImpl extends FileChannel
public long size () throws IOException
{
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
return lengthInternal (fd);
}
- protected void implCloseChannel() throws IOException
+ protected void implCloseChannel() throws IOException
{
if (address != 0)
- {
+ {
nio_unmmap_file (fd, address, (int) length);
- }
+ address = 0;
+ }
// FIXME
fd = 0;
if (file_obj instanceof RandomAccessFile)
- {
+ {
RandomAccessFile o = (RandomAccessFile) file_obj;
o.close();
- }
+ }
else if (file_obj instanceof FileInputStream)
- {
+ {
FileInputStream o = (FileInputStream) file_obj;
o.close();
- }
+ }
else if (file_obj instanceof FileOutputStream)
- {
+ {
FileOutputStream o = (FileOutputStream) file_obj;
o.close();
- }
+ }
}
public int read (ByteBuffer dst) throws IOException
{
- int w = 0;
int s = (int)size();
if (buf == null)
@@ -128,9 +133,18 @@ public class FileChannelImpl extends FileChannel
return s;
}
- public long read (ByteBuffer[] dsts) throws IOException
+ public int read (ByteBuffer dst, long position)
+ throws IOException
{
- return read (dsts, 0, dsts.length);
+ if (position < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: check for NonReadableChannelException
+
+ throw new Error ("Not implemented");
}
public long read (ByteBuffer[] dsts, int offset, int length)
@@ -164,6 +178,20 @@ public class FileChannelImpl extends FileChannel
return w;
}
+ public int write (ByteBuffer src, long position)
+ throws IOException
+ {
+ if (position < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: check for NonWritableChannelException
+
+ throw new Error ("Not implemented");
+ }
+
public long write(ByteBuffer[] srcs, int offset, int length)
throws IOException
{
@@ -173,13 +201,22 @@ public class FileChannelImpl extends FileChannel
{
res += write (srcs[i]);
}
- return res;
- }
+
+ return res;
+ }
public MappedByteBuffer map (FileChannel.MapMode mode, long position,
long size)
throws IOException
{
+ if ((mode != MapMode.READ_ONLY
+ && mode != MapMode.READ_WRITE
+ && mode != MapMode.PRIVATE)
+ || position < 0
+ || size < 0
+ || size > Integer.MAX_VALUE)
+ throw new IllegalArgumentException ();
+
// int cmode = mode.m;
// address = nio_mmap_file (fd, position, size, cmode);
// length = size;
@@ -208,27 +245,113 @@ public class FileChannelImpl extends FileChannel
/**
* msync with the disk
*/
- public void force (boolean metaData)
+ public void force (boolean metaData) throws IOException
{
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: What to do with metaData ?
+
nio_msync (fd, address, length);
}
-// static native long nio_mmap_file (int fd, long pos, int size, int mode);
+ public long transferTo (long position, long count, WritableByteChannel target)
+ throws IOException
+ {
+ if (position < 0
+ || count < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: check for NonReadableChannelException
+ // FIXME: check for NonWritableChannelException
+
+ throw new Error ("Not implemented");
+ }
+
+ public long transferFrom (ReadableByteChannel src, long position, long count)
+ throws IOException
+ {
+ if (position < 0
+ || count < 0)
+ throw new IllegalArgumentException ();
-// static native void nio_unmmap_file (int fd, long address, int size);
+ if (!isOpen ())
+ throw new ClosedChannelException ();
-// static native void nio_msync (int fd, long address, int length);
+ // FIXME: check for NonReadableChannelException
+ // FIXME: check for NonWritableChannelException
+
+ throw new Error ("Not implemented");
+ }
- static long nio_mmap_file (int fd, long pos, int size, int mode)
+ public FileLock lock (long position, long size, boolean shared)
+ throws IOException
{
- return 0;
+ if (position < 0
+ || size < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: check for NonReadableChannelException
+ // FIXME: check for NonWritableChannelException
+
+ throw new Error ("Not implemented");
}
+
+ public FileLock tryLock (long position, long size, boolean shared)
+ throws IOException
+ {
+ if (position < 0
+ || size < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
- static void nio_unmmap_file (int fd, long address, int size)
+ throw new Error ("Not implemented");
+ }
+
+ public long position ()
+ throws IOException
+ {
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ throw new Error ("not implemented");
+ }
+
+ public FileChannel position (long newPosition)
+ throws IOException
{
- };
+ if (newPosition < 0)
+ throw new IllegalArgumentException ();
- static void nio_msync (int fd, long address, int length)
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ throw new Error ("not implemented");
+ }
+
+ public FileChannel truncate (long size)
+ throws IOException
{
- };
+ if (size < 0)
+ throw new IllegalArgumentException ();
+
+ if (!isOpen ())
+ throw new ClosedChannelException ();
+
+ // FIXME: check for NonWritableChannelException
+
+ throw new Error ("not implemented");
+ }
+
+ private static native long nio_mmap_file (int fd, long pos, int size, int mode);
+ private static native void nio_unmmap_file (int fd, long address, int size);
+ private static native void nio_msync (int fd, long address, int length);
}
diff --git a/libjava/gnu/java/nio/FileLockImpl.java b/libjava/gnu/java/nio/FileLockImpl.java
new file mode 100644
index 00000000000..2e55f6bb657
--- /dev/null
+++ b/libjava/gnu/java/nio/FileLockImpl.java
@@ -0,0 +1,63 @@
+/* FileChannelImpl.java --
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.nio;
+
+import java.nio.channels.FileChannel;
+import java.nio.channels.FileLock;
+
+/**
+ * @author Michael Koch
+ */
+public class FileLockImpl extends FileLock
+{
+ public FileLockImpl (FileChannel channel, long position, long size,
+ boolean shared)
+ {
+ super (channel, position, size, shared);
+ }
+
+ public boolean isValid ()
+ {
+ throw new Error ("Not implemented");
+ }
+
+ public void release ()
+ {
+ throw new Error ("Not implemented");
+ }
+}
diff --git a/libjava/gnu/java/nio/FloatBufferImpl.java b/libjava/gnu/java/nio/FloatBufferImpl.java
index bab47425f1d..6c77103bb2f 100644
--- a/libjava/gnu/java/nio/FloatBufferImpl.java
+++ b/libjava/gnu/java/nio/FloatBufferImpl.java
@@ -38,49 +38,49 @@ exception statement from your version. */
package gnu.java.nio;
import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
+import java.nio.ByteOrder;
import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class FloatBufferImpl extends FloatBuffer
{
- private int array_offset;
- private boolean ro;
+ private boolean readOnly;
public FloatBufferImpl(int cap, int off, int lim)
{
- this.backing_buffer = new float[cap];
- this.cap = cap;
- this.limit(lim);
- this.position(off);
+ super (cap, lim, off, 0);
+ this.backing_buffer = new float [cap];
+ readOnly = false;
}
- public FloatBufferImpl(float[] array, int off, int lim)
+ public FloatBufferImpl(float[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public FloatBufferImpl(FloatBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit(copy.limit());
- position(copy.position());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos(int a)
+ private static native float[] nio_cast (byte[] copy);
+
+ FloatBufferImpl (byte[] copy)
{
- position(position() + a);
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
}
-
- FloatBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast (copy) : null; }
+
private static native byte nio_get_Byte (FloatBufferImpl b, int index, int limit);
+
private static native void nio_put_Byte (FloatBufferImpl b, int index, int limit, byte value);
public ByteBuffer asByteBuffer()
@@ -90,54 +90,14 @@ public final class FloatBufferImpl extends FloatBuffer
return res;
}
- FloatBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Char(FloatBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/4); return res; }
-
- FloatBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Short(FloatBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/4); return res; }
-
- FloatBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Int(FloatBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/4); return res; }
-
- FloatBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Long(FloatBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/4); return res; }
-
- FloatBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Float(FloatBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/4); return res; }
-
- FloatBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(FloatBufferImpl b, int index, int limit);
- private static native void nio_put_Double(FloatBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/4); return res; }
-
- private static native float[] nio_cast(byte[]copy);
- private static native float[] nio_cast(char[]copy);
- private static native float[] nio_cast(short[]copy);
- private static native float[] nio_cast(long[]copy);
- private static native float[] nio_cast(int[]copy);
- private static native float[] nio_cast(float[]copy);
- private static native float[] nio_cast(double[]copy);
-
- public boolean isReadOnly()
+ public boolean isReadOnly ()
{
- return ro;
+ return readOnly;
}
public FloatBuffer slice()
{
- FloatBufferImpl A = new FloatBufferImpl(this);
- A.array_offset = position();
- return A;
+ return new FloatBufferImpl (this);
}
public FloatBuffer duplicate()
@@ -147,9 +107,9 @@ public final class FloatBufferImpl extends FloatBuffer
public FloatBuffer asReadOnlyBuffer()
{
- FloatBufferImpl a = new FloatBufferImpl(this);
- a.ro = true;
- return a;
+ FloatBufferImpl result = new FloatBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public FloatBuffer compact()
@@ -159,7 +119,7 @@ public final class FloatBufferImpl extends FloatBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public float get()
@@ -171,6 +131,9 @@ public final class FloatBufferImpl extends FloatBuffer
final public FloatBuffer put(float b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -183,14 +146,15 @@ public final class FloatBufferImpl extends FloatBuffer
final public FloatBuffer put(int index, float b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public FloatBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public FloatBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public FloatBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public FloatBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public FloatBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public FloatBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public FloatBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public FloatBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { return get(); } final public FloatBuffer putFloat(float value) { return put(value); } final public float getFloat(int index) { return get(index); } final public FloatBuffer putFloat(int index, float value) { return put(index, value); };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public FloatBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public FloatBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+ final public ByteOrder order ()
+ {
+ return ByteOrder.BIG_ENDIAN;
+ }
}
diff --git a/libjava/gnu/java/nio/IntBufferImpl.java b/libjava/gnu/java/nio/IntBufferImpl.java
index cccc418487c..d9f80636aa6 100644
--- a/libjava/gnu/java/nio/IntBufferImpl.java
+++ b/libjava/gnu/java/nio/IntBufferImpl.java
@@ -38,100 +38,66 @@ exception statement from your version. */
package gnu.java.nio;
import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
+import java.nio.ByteOrder;
import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class IntBufferImpl extends IntBuffer
{
- private int array_offset;
- private boolean ro;
+ private boolean readOnly;
public IntBufferImpl(int cap, int off, int lim)
{
+ super (cap, lim, off, 0);
this.backing_buffer = new int[cap];
- this.cap = cap;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
- public IntBufferImpl(int[] array, int off, int lim)
+ public IntBufferImpl(int[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public IntBufferImpl(IntBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit(copy.limit());
- position(copy.position());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos(int a)
+ private static native int[] nio_cast (byte[] copy);
+
+ IntBufferImpl (byte[] copy)
{
- position(position() + a);
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
}
- IntBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(IntBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/4); return res; }
-
- IntBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Char(IntBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/4); return res; }
-
- IntBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Short(IntBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/4); return res; }
-
- IntBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Int(IntBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/4); return res; }
-
- IntBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Long(IntBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/4); return res; }
-
- IntBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Float(IntBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/4); return res; }
+ private static native byte nio_get_Byte (IntBufferImpl b, int index, int limit);
- IntBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(IntBufferImpl b, int index, int limit);
- private static native void nio_put_Double(IntBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/4); return res; }
+ private static native void nio_put_Byte (IntBufferImpl b, int index, int limit, byte value);
- private static native int[] nio_cast(byte[]copy);
- private static native int[] nio_cast(char[]copy);
- private static native int[] nio_cast(short[]copy);
- private static native int[] nio_cast(long[]copy);
- private static native int[] nio_cast(int[]copy);
- private static native int[] nio_cast(float[]copy);
- private static native int[] nio_cast(double[]copy);
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 4);
+ return res;
+ }
public boolean isReadOnly()
{
- return ro;
+ return readOnly;
}
public IntBuffer slice()
{
- IntBufferImpl A = new IntBufferImpl(this);
- A.array_offset = position();
- return A;
+ return new IntBufferImpl (this);
}
public IntBuffer duplicate()
@@ -141,9 +107,9 @@ public final class IntBufferImpl extends IntBuffer
public IntBuffer asReadOnlyBuffer()
{
- IntBufferImpl a = new IntBufferImpl(this);
- a.ro = true;
- return a;
+ IntBufferImpl result = new IntBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public IntBuffer compact()
@@ -153,7 +119,7 @@ public final class IntBufferImpl extends IntBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public int get()
@@ -165,6 +131,9 @@ public final class IntBufferImpl extends IntBuffer
final public IntBuffer put(int b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -177,14 +146,15 @@ public final class IntBufferImpl extends IntBuffer
final public IntBuffer put(int index, int b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
-
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public IntBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public IntBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public IntBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public IntBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { return get(); } final public IntBuffer putInt(int value) { return put(value); } final public int getInt(int index) { return get(index); } final public IntBuffer putInt(int index, int value) { return put(index, value); };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public IntBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public IntBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public IntBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public IntBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public IntBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public IntBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+
+ final public ByteOrder order ()
+ {
+ return ByteOrder.BIG_ENDIAN;
+ }
}
diff --git a/libjava/gnu/java/nio/LongBufferImpl.java b/libjava/gnu/java/nio/LongBufferImpl.java
index 8f29b06939f..e17f4870b09 100644
--- a/libjava/gnu/java/nio/LongBufferImpl.java
+++ b/libjava/gnu/java/nio/LongBufferImpl.java
@@ -38,100 +38,66 @@ exception statement from your version. */
package gnu.java.nio;
import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
+import java.nio.ByteOrder;
import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class LongBufferImpl extends LongBuffer
{
- private int array_offset;
- private boolean ro;
+ private boolean readOnly;
public LongBufferImpl(int cap, int off, int lim)
{
+ super (cap, lim, off, 0);
this.backing_buffer = new long[cap];
- this.cap = cap ;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
- public LongBufferImpl(long[] array, int off, int lim)
+ public LongBufferImpl(long[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public LongBufferImpl(LongBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit(copy.limit());
- position(copy.position());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos(int a)
+ private static native long[] nio_cast (byte[] copy);
+
+ LongBufferImpl (byte[] copy)
{
- position(position() + a);
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
}
- LongBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(LongBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/8); return res; }
-
- LongBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Char(LongBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/8); return res; }
-
- LongBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Short(LongBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/8); return res; }
-
- LongBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Int(LongBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/8); return res; }
-
- LongBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Long(LongBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/8); return res; }
+ private static native byte nio_get_Byte (LongBufferImpl b, int index, int limit);
- LongBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Float(LongBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/8); return res; }
+ private static native void nio_put_Byte (LongBufferImpl b, int index, int limit, byte value);
- LongBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(LongBufferImpl b, int index, int limit);
- private static native void nio_put_Double(LongBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/8); return res; }
-
- private static native long[] nio_cast(byte[]copy);
- private static native long[] nio_cast(char[]copy);
- private static native long[] nio_cast(short[]copy);
- private static native long[] nio_cast(long[]copy);
- private static native long[] nio_cast(int[]copy);
- private static native long[] nio_cast(float[]copy);
- private static native long[] nio_cast(double[]copy);
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 8);
+ return res;
+ }
public boolean isReadOnly()
{
- return ro;
+ return readOnly;
}
public LongBuffer slice()
{
- LongBufferImpl A = new LongBufferImpl(this);
- A.array_offset = position();
- return A;
+ return new LongBufferImpl (this);
}
public LongBuffer duplicate()
@@ -141,9 +107,9 @@ public final class LongBufferImpl extends LongBuffer
public LongBuffer asReadOnlyBuffer()
{
- LongBufferImpl a = new LongBufferImpl(this);
- a.ro = true;
- return a;
+ LongBufferImpl result = new LongBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public LongBuffer compact()
@@ -153,7 +119,7 @@ public final class LongBufferImpl extends LongBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public long get()
@@ -165,6 +131,9 @@ public final class LongBufferImpl extends LongBuffer
final public LongBuffer put(long b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -177,14 +146,15 @@ public final class LongBufferImpl extends LongBuffer
final public LongBuffer put(int index, long b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public LongBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public LongBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { short a = nio_get_Short(this, position(), limit()); inc_pos(2); return a; } final public LongBuffer putShort(short value) { nio_put_Short(this, position(), limit(), value); inc_pos(2); return this; } final public short getShort(int index) { short a = nio_get_Short(this, index, limit()); return a; } final public LongBuffer putShort(int index, short value) { nio_put_Short(this, index, limit(), value); return this; };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public LongBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public LongBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { return get(); } final public LongBuffer putLong(long value) { return put(value); } final public long getLong(int index) { return get(index); } final public LongBuffer putLong(int index, long value) { return put(index, value); };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public LongBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public LongBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public LongBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public LongBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+ final public ByteOrder order ()
+ {
+ return ByteOrder.BIG_ENDIAN;
+ }
}
diff --git a/libjava/gnu/java/nio/SelectorProviderImpl.java b/libjava/gnu/java/nio/SelectorProviderImpl.java
index 3fedfc73546..d58e10a010e 100644
--- a/libjava/gnu/java/nio/SelectorProviderImpl.java
+++ b/libjava/gnu/java/nio/SelectorProviderImpl.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package gnu.java.nio;
+import java.io.IOException;
import java.nio.channels.DatagramChannel;
import java.nio.channels.Pipe;
import java.nio.channels.ServerSocketChannel;
@@ -51,26 +52,31 @@ public class SelectorProviderImpl extends SelectorProvider
}
public DatagramChannel openDatagramChannel ()
+ throws IOException
{
return new DatagramChannelImpl (this);
}
public Pipe openPipe ()
+ throws IOException
{
return new PipeImpl ();
}
public AbstractSelector openSelector ()
+ throws IOException
{
return new SelectorImpl (this);
}
public ServerSocketChannel openServerSocketChannel ()
+ throws IOException
{
return new ServerSocketChannelImpl (this);
}
public SocketChannel openSocketChannel ()
+ throws IOException
{
return new SocketChannelImpl (this);
}
diff --git a/libjava/gnu/java/nio/ServerSocketChannelImpl.java b/libjava/gnu/java/nio/ServerSocketChannelImpl.java
index 4a51f2a4b61..039b50308d6 100644
--- a/libjava/gnu/java/nio/ServerSocketChannelImpl.java
+++ b/libjava/gnu/java/nio/ServerSocketChannelImpl.java
@@ -54,10 +54,8 @@ class ServerSocketChannelImpl extends ServerSocketChannel
boolean connected = false;
// InetSocketAddress sa;
- private static native int SocketAccept (ServerSocketChannelImpl server,
- SocketChannelImpl s);
-
protected ServerSocketChannelImpl (SelectorProvider provider)
+ throws IOException
{
super (provider);
fd = SocketChannelImpl.SocketCreate ();
@@ -86,14 +84,14 @@ class ServerSocketChannelImpl extends ServerSocketChannel
}
}
- protected void implCloseSelectableChannel ()
+ protected void implCloseSelectableChannel () throws IOException
{
connected = false;
SocketChannelImpl.SocketClose (fd);
fd = SocketChannelImpl.SocketCreate ();
}
- protected void implConfigureBlocking (boolean block)
+ protected void implConfigureBlocking (boolean block) throws IOException
{
blocking = block;
}
@@ -102,7 +100,7 @@ class ServerSocketChannelImpl extends ServerSocketChannel
{
SocketChannelImpl result = new SocketChannelImpl (provider ());
result.sa = new InetSocketAddress (0);
- int res = SocketAccept (this,result);
+ //int res = SocketAccept (this,result);
return result;
}
diff --git a/libjava/gnu/java/nio/ShortBufferImpl.java b/libjava/gnu/java/nio/ShortBufferImpl.java
index bccb2d0f65a..e4c9a060539 100644
--- a/libjava/gnu/java/nio/ShortBufferImpl.java
+++ b/libjava/gnu/java/nio/ShortBufferImpl.java
@@ -38,100 +38,66 @@ exception statement from your version. */
package gnu.java.nio;
import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
+import java.nio.ByteOrder;
import java.nio.ShortBuffer;
+import java.nio.ReadOnlyBufferException;
+/**
+ * This is a Heap memory implementation
+ */
public final class ShortBufferImpl extends ShortBuffer
{
- private int array_offset;
- private boolean ro;
+ private boolean readOnly;
public ShortBufferImpl(int cap, int off, int lim)
{
- this.backing_buffer = new short[cap];
- this.cap = cap ;
- this.limit(lim);
- this.position(off);
+ super (cap, lim, off, 0);
+ this.backing_buffer = new short [cap];
+ readOnly = false;
}
- public ShortBufferImpl(short[] array, int off, int lim)
+ public ShortBufferImpl(short[] array, int offset, int length)
{
+ super (array.length, length, offset, 0);
this.backing_buffer = array;
- this.cap = array.length;
- this.limit(lim);
- this.position(off);
+ readOnly = false;
}
public ShortBufferImpl(ShortBufferImpl copy)
{
+ super (copy.capacity (), copy.limit (), copy.position (), 0);
backing_buffer = copy.backing_buffer;
- ro = copy.ro;
- limit(copy.limit());
- position(copy.position());
+ readOnly = copy.isReadOnly ();
}
- void inc_pos(int a)
+ private static native short[] nio_cast (byte[] copy);
+
+ ShortBufferImpl (byte[] copy)
{
- position(position() + a);
+ super (copy.length, copy.length, 0, 0);
+ this.backing_buffer = copy != null ? nio_cast (copy) : null;
+ readOnly = false;
+ }
+
+ private static native byte nio_get_Byte (ShortBufferImpl b, int index, int limit);
+
+ private static native void nio_put_Byte (ShortBufferImpl b, int index, int limit, byte value);
+
+ public ByteBuffer asByteBuffer ()
+ {
+ ByteBufferImpl res = new ByteBufferImpl (backing_buffer);
+ res.limit ((limit () * 1) / 2);
+ return res;
}
-
- ShortBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native byte nio_get_Byte(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Byte(ShortBufferImpl b, int index, int limit, byte value);
- public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/2); return res; }
-
- ShortBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native char nio_get_Char(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Char(ShortBufferImpl b, int index, int limit, char value);
- public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; }
-
- ShortBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native short nio_get_Short(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Short(ShortBufferImpl b, int index, int limit, short value);
- public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; }
-
- ShortBufferImpl(int[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native int nio_get_Int(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Int(ShortBufferImpl b, int index, int limit, int value);
- public IntBuffer asIntBuffer() { IntBufferImpl res = new IntBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; }
-
- ShortBufferImpl(long[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native long nio_get_Long(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Long(ShortBufferImpl b, int index, int limit, long value);
- public LongBuffer asLongBuffer() { LongBufferImpl res = new LongBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; }
-
- ShortBufferImpl(float[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native float nio_get_Float(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Float(ShortBufferImpl b, int index, int limit, float value);
- public FloatBuffer asFloatBuffer() { FloatBufferImpl res = new FloatBufferImpl(backing_buffer); res.limit((limit()*4)/2); return res; }
-
- ShortBufferImpl(double[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; }
- private static native double nio_get_Double(ShortBufferImpl b, int index, int limit);
- private static native void nio_put_Double(ShortBufferImpl b, int index, int limit, double value);
- public DoubleBuffer asDoubleBuffer() { DoubleBufferImpl res = new DoubleBufferImpl(backing_buffer); res.limit((limit()*8)/2); return res; }
-
- private static native short[] nio_cast(byte[]copy);
- private static native short[] nio_cast(char[]copy);
- private static native short[] nio_cast(short[]copy);
- private static native short[] nio_cast(long[]copy);
- private static native short[] nio_cast(int[]copy);
- private static native short[] nio_cast(float[]copy);
- private static native short[] nio_cast(double[]copy);
public boolean isReadOnly()
{
- return ro;
+ return readOnly;
}
public ShortBuffer slice()
{
- ShortBufferImpl a = new ShortBufferImpl(this);
- a.array_offset = position();
- return a;
+ return new ShortBufferImpl (this);
}
public ShortBuffer duplicate()
@@ -141,9 +107,9 @@ public final class ShortBufferImpl extends ShortBuffer
public ShortBuffer asReadOnlyBuffer()
{
- ShortBufferImpl a = new ShortBufferImpl(this);
- a.ro = true;
- return a;
+ ShortBufferImpl result = new ShortBufferImpl (this);
+ result.readOnly = true;
+ return result;
}
public ShortBuffer compact()
@@ -153,7 +119,7 @@ public final class ShortBufferImpl extends ShortBuffer
public boolean isDirect()
{
- return backing_buffer != null;
+ return false;
}
final public short get()
@@ -165,6 +131,9 @@ public final class ShortBufferImpl extends ShortBuffer
final public ShortBuffer put(short b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[position()] = b;
position(position()+1);
return this;
@@ -177,14 +146,15 @@ public final class ShortBufferImpl extends ShortBuffer
final public ShortBuffer put(int index, short b)
{
+ if (readOnly)
+ throw new ReadOnlyBufferException ();
+
backing_buffer[index] = b;
return this;
}
-
- final public char getChar() { char a = nio_get_Char(this, position(), limit()); inc_pos(2); return a; } final public ShortBuffer putChar(char value) { nio_put_Char(this, position(), limit(), value); inc_pos(2); return this; } final public char getChar(int index) { char a = nio_get_Char(this, index, limit()); return a; } final public ShortBuffer putChar(int index, char value) { nio_put_Char(this, index, limit(), value); return this; };
- final public short getShort() { return get(); } final public ShortBuffer putShort(short value) { return put(value); } final public short getShort(int index) { return get(index); } final public ShortBuffer putShort(int index, short value) { return put(index, value); };
- final public int getInt() { int a = nio_get_Int(this, position(), limit()); inc_pos(4); return a; } final public ShortBuffer putInt(int value) { nio_put_Int(this, position(), limit(), value); inc_pos(4); return this; } final public int getInt(int index) { int a = nio_get_Int(this, index, limit()); return a; } final public ShortBuffer putInt(int index, int value) { nio_put_Int(this, index, limit(), value); return this; };
- final public long getLong() { long a = nio_get_Long(this, position(), limit()); inc_pos(8); return a; } final public ShortBuffer putLong(long value) { nio_put_Long(this, position(), limit(), value); inc_pos(8); return this; } final public long getLong(int index) { long a = nio_get_Long(this, index, limit()); return a; } final public ShortBuffer putLong(int index, long value) { nio_put_Long(this, index, limit(), value); return this; };
- final public float getFloat() { float a = nio_get_Float(this, position(), limit()); inc_pos(4); return a; } final public ShortBuffer putFloat(float value) { nio_put_Float(this, position(), limit(), value); inc_pos(4); return this; } final public float getFloat(int index) { float a = nio_get_Float(this, index, limit()); return a; } final public ShortBuffer putFloat(int index, float value) { nio_put_Float(this, index, limit(), value); return this; };
- final public double getDouble() { double a = nio_get_Double(this, position(), limit()); inc_pos(8); return a; } final public ShortBuffer putDouble(double value) { nio_put_Double(this, position(), limit(), value); inc_pos(8); return this; } final public double getDouble(int index) { double a = nio_get_Double(this, index, limit()); return a; } final public ShortBuffer putDouble(int index, double value) { nio_put_Double(this, index, limit(), value); return this; };
+
+ final public ByteOrder order ()
+ {
+ return ByteOrder.BIG_ENDIAN;
+ }
}
diff --git a/libjava/gnu/java/nio/natByteBufferImpl.cc b/libjava/gnu/java/nio/natByteBufferImpl.cc
index b98b694e87b..2bb1e41a622 100644
--- a/libjava/gnu/java/nio/natByteBufferImpl.cc
+++ b/libjava/gnu/java/nio/natByteBufferImpl.cc
@@ -1,3 +1,13 @@
+// natByteBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
diff --git a/libjava/gnu/java/nio/natCharBufferImpl.cc b/libjava/gnu/java/nio/natCharBufferImpl.cc
index 2d01a679bfa..9fb54e14561 100644
--- a/libjava/gnu/java/nio/natCharBufferImpl.cc
+++ b/libjava/gnu/java/nio/natCharBufferImpl.cc
@@ -1,3 +1,13 @@
+// natCharBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::CharBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jchar>*
-gnu::java::nio::CharBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::CharBufferImpl::nio_put_Byte(gnu::java::nio::CharBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::CharBufferImpl::nio_put_Char(gnu::java::nio::CharBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::CharBufferImpl::nio_put_Short(gnu::java::nio::CharBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::CharBufferImpl::nio_put_Int(gnu::java::nio::CharBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::CharBufferImpl::nio_put_Long(gnu::java::nio::CharBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::CharBufferImpl::nio_put_Float(gnu::java::nio::CharBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::CharBufferImpl::nio_put_Double(gnu::java::nio::CharBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::CharBufferImpl::nio_get_Byte(gnu::java::nio::CharBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::CharBufferImpl::nio_get_Char(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::CharBufferImpl::nio_get_Short(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::CharBufferImpl::nio_get_Int(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::CharBufferImpl::nio_get_Long(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::CharBufferImpl::nio_get_Float(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::CharBufferImpl::nio_get_Double(gnu::java::nio::CharBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natDoubleBufferImpl.cc b/libjava/gnu/java/nio/natDoubleBufferImpl.cc
index 53bf73db5a6..6c66a337417 100644
--- a/libjava/gnu/java/nio/natDoubleBufferImpl.cc
+++ b/libjava/gnu/java/nio/natDoubleBufferImpl.cc
@@ -1,3 +1,13 @@
+// natDoubleBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jdouble>*
-gnu::java::nio::DoubleBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::DoubleBufferImpl::nio_put_Byte(gnu::java::nio::DoubleBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Char(gnu::java::nio::DoubleBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Short(gnu::java::nio::DoubleBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Int(gnu::java::nio::DoubleBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Long(gnu::java::nio::DoubleBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Float(gnu::java::nio::DoubleBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::DoubleBufferImpl::nio_put_Double(gnu::java::nio::DoubleBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::DoubleBufferImpl::nio_get_Byte(gnu::java::nio::DoubleBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::DoubleBufferImpl::nio_get_Char(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::DoubleBufferImpl::nio_get_Short(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::DoubleBufferImpl::nio_get_Int(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::DoubleBufferImpl::nio_get_Long(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::DoubleBufferImpl::nio_get_Float(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::DoubleBufferImpl::nio_get_Double(gnu::java::nio::DoubleBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natFileChannelImpl.cc b/libjava/gnu/java/nio/natFileChannelImpl.cc
new file mode 100644
index 00000000000..87386305bc6
--- /dev/null
+++ b/libjava/gnu/java/nio/natFileChannelImpl.cc
@@ -0,0 +1,53 @@
+// natFileChannelImpl.cc
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <jvm.h>
+
+#include <errno.h>
+#include <string.h>
+#include <sys/types.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#include <gnu/java/nio/FileChannelImpl.h>
+#include <java/io/IOException.h>
+#include <java/nio/channels/FileChannel.h>
+
+jlong
+gnu::java::nio::FileChannelImpl::lengthInternal (jint fd)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("lengthInternal not implemented"));
+}
+
+jlong
+gnu::java::nio::FileChannelImpl::nio_mmap_file (jint, jlong, jint, jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("mmap not implemented"));
+}
+
+void
+gnu::java::nio::FileChannelImpl::nio_unmmap_file (jint, jlong, jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("munmap not implemented"));
+}
+
+void
+gnu::java::nio::FileChannelImpl::nio_msync (jint, jlong, jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("msync not implemented"));
+}
diff --git a/libjava/gnu/java/nio/natFloatBufferImpl.cc b/libjava/gnu/java/nio/natFloatBufferImpl.cc
index 2462be539f9..9785454634c 100644
--- a/libjava/gnu/java/nio/natFloatBufferImpl.cc
+++ b/libjava/gnu/java/nio/natFloatBufferImpl.cc
@@ -1,3 +1,13 @@
+// natFloatBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jfloat>*
-gnu::java::nio::FloatBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::FloatBufferImpl::nio_put_Byte(gnu::java::nio::FloatBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Char(gnu::java::nio::FloatBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Short(gnu::java::nio::FloatBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Int(gnu::java::nio::FloatBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Long(gnu::java::nio::FloatBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Float(gnu::java::nio::FloatBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::FloatBufferImpl::nio_put_Double(gnu::java::nio::FloatBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::FloatBufferImpl::nio_get_Byte(gnu::java::nio::FloatBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::FloatBufferImpl::nio_get_Char(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::FloatBufferImpl::nio_get_Short(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::FloatBufferImpl::nio_get_Int(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::FloatBufferImpl::nio_get_Long(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::FloatBufferImpl::nio_get_Float(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::FloatBufferImpl::nio_get_Double(gnu::java::nio::FloatBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natIntBufferImpl.cc b/libjava/gnu/java/nio/natIntBufferImpl.cc
index 6a14653917e..eff70f838bb 100644
--- a/libjava/gnu/java/nio/natIntBufferImpl.cc
+++ b/libjava/gnu/java/nio/natIntBufferImpl.cc
@@ -1,3 +1,13 @@
+// natIntBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::IntBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jint>*
-gnu::java::nio::IntBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::IntBufferImpl::nio_put_Byte(gnu::java::nio::IntBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::IntBufferImpl::nio_put_Char(gnu::java::nio::IntBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::IntBufferImpl::nio_put_Short(gnu::java::nio::IntBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::IntBufferImpl::nio_put_Int(gnu::java::nio::IntBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::IntBufferImpl::nio_put_Long(gnu::java::nio::IntBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::IntBufferImpl::nio_put_Float(gnu::java::nio::IntBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::IntBufferImpl::nio_put_Double(gnu::java::nio::IntBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::IntBufferImpl::nio_get_Byte(gnu::java::nio::IntBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::IntBufferImpl::nio_get_Char(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::IntBufferImpl::nio_get_Short(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::IntBufferImpl::nio_get_Int(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::IntBufferImpl::nio_get_Long(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::IntBufferImpl::nio_get_Float(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::IntBufferImpl::nio_get_Double(gnu::java::nio::IntBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natLongBufferImpl.cc b/libjava/gnu/java/nio/natLongBufferImpl.cc
index ea21f475c61..a84248136e5 100644
--- a/libjava/gnu/java/nio/natLongBufferImpl.cc
+++ b/libjava/gnu/java/nio/natLongBufferImpl.cc
@@ -1,3 +1,13 @@
+// natLongBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::LongBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jlong>*
-gnu::java::nio::LongBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::LongBufferImpl::nio_put_Byte(gnu::java::nio::LongBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::LongBufferImpl::nio_put_Char(gnu::java::nio::LongBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::LongBufferImpl::nio_put_Short(gnu::java::nio::LongBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::LongBufferImpl::nio_put_Int(gnu::java::nio::LongBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::LongBufferImpl::nio_put_Long(gnu::java::nio::LongBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::LongBufferImpl::nio_put_Float(gnu::java::nio::LongBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::LongBufferImpl::nio_put_Double(gnu::java::nio::LongBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::LongBufferImpl::nio_get_Byte(gnu::java::nio::LongBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::LongBufferImpl::nio_get_Char(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::LongBufferImpl::nio_get_Short(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::LongBufferImpl::nio_get_Int(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::LongBufferImpl::nio_get_Long(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::LongBufferImpl::nio_get_Float(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::LongBufferImpl::nio_get_Double(gnu::java::nio::LongBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natServerSocketChannelImpl.cc b/libjava/gnu/java/nio/natServerSocketChannelImpl.cc
deleted file mode 100644
index 1f7d7fc6890..00000000000
--- a/libjava/gnu/java/nio/natServerSocketChannelImpl.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// natSelectorImpl.cc
-
-/* Copyright (C) 2002 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <platform.h>
-
-#include <errno.h>
-#include <netinet/in.h>
-
-#include <gcj/cni.h>
-#include <gnu/java/nio/ServerSocketChannelImpl.h>
-#include <gnu/java/nio/SocketChannelImpl.h>
-#include <java/io/IOException.h>
-#include <java/net/InetSocketAddress.h>
-#include <java/net/SocketException.h>
-
-union SockAddr
-{
- struct sockaddr_in address;
-#ifdef HAVE_INET6
- struct sockaddr_in6 address6;
-#endif
-};
-
-jint
-gnu::java::nio::ServerSocketChannelImpl::SocketAccept (
- ServerSocketChannelImpl* socket,
- SocketChannelImpl* s)
-{
- union SockAddr u;
- struct sockaddr *ptr = (struct sockaddr *) &u.address;
- socklen_t addrlen = sizeof(struct sockaddr);
-/*
- jbyteArray haddress = socket->sa->getAddress ()->addr;
- jbyte *bytes = elements (haddress);
- int len = haddress->length;
-
- if (len == 4)
- {
- u.address.sin_family = AF_INET;
- memcpy (&u.address.sin_addr, bytes, len);
- len = sizeof (struct sockaddr_in);
- u.address.sin_port = htons ( socket->sa->getPort ());
- }
-#ifdef HAVE_INET6
- else if (len == 16)
- {
- u.address6.sin6_family = AF_INET6;
- memcpy (&u.address6.sin6_addr, bytes, len);
- len = sizeof (struct sockaddr_in6);
- u.address6.sin6_port = htons (socket->sa->getPort ());
- }
-#endif
- else
- throw new ::java::net::SocketException (JvNewStringUTF ("invalid length"));
-*/
-
- int sock = _Jv_accept (socket->fd, ptr, &addrlen);
-
- // FIXME: write address/port in ptr into java variables
-
- if (sock < 0)
- {
- char* strerr = strerror (errno);
- throw new ::java::io::IOException (JvNewStringUTF (strerr));
- }
-
- s->fd = sock;
- return sock;
-}
diff --git a/libjava/gnu/java/nio/natShortBufferImpl.cc b/libjava/gnu/java/nio/natShortBufferImpl.cc
index bfcfe28a6e2..188bff9575e 100644
--- a/libjava/gnu/java/nio/natShortBufferImpl.cc
+++ b/libjava/gnu/java/nio/natShortBufferImpl.cc
@@ -1,3 +1,13 @@
+// natShortBufferImpl.cc
+
+/* Copyright (C) 2002, 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
#include <config.h>
#include <gcj/cni.h>
@@ -11,115 +21,13 @@ gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jbyte>*)
return NULL;
}
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jshort>*)
-{
- return NULL;
-}
-
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jint>*)
-{
- return NULL;
-}
-
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jlong>*)
-{
- return NULL;
-}
-
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jchar>*)
-{
- return NULL;
-}
-
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jfloat>*)
-{
- return NULL;
-}
-
-JArray<jshort>*
-gnu::java::nio::ShortBufferImpl::nio_cast(JArray<jdouble>*)
-{
- return NULL;
-}
-
void
gnu::java::nio::ShortBufferImpl::nio_put_Byte(gnu::java::nio::ShortBufferImpl*, jint, jint, jbyte)
{
}
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Char(gnu::java::nio::ShortBufferImpl*, jint, jint, jchar)
-{
-}
-
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Short(gnu::java::nio::ShortBufferImpl*, jint, jint, jshort)
-{
-}
-
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Int(gnu::java::nio::ShortBufferImpl*, jint, jint, jint)
-{
-}
-
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Long(gnu::java::nio::ShortBufferImpl*, jint, jint, jlong)
-{
-}
-
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Float(gnu::java::nio::ShortBufferImpl*, jint, jint, jfloat)
-{
-}
-
-void
-gnu::java::nio::ShortBufferImpl::nio_put_Double(gnu::java::nio::ShortBufferImpl*, jint, jint, jdouble)
-{
-}
-
jbyte
gnu::java::nio::ShortBufferImpl::nio_get_Byte(gnu::java::nio::ShortBufferImpl*, jint, jint)
{
return 0;
}
-
-jchar
-gnu::java::nio::ShortBufferImpl::nio_get_Char(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return ' ';
-}
-
-jshort
-gnu::java::nio::ShortBufferImpl::nio_get_Short(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jint
-gnu::java::nio::ShortBufferImpl::nio_get_Int(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jlong
-gnu::java::nio::ShortBufferImpl::nio_get_Long(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return 0;
-}
-
-jfloat
-gnu::java::nio::ShortBufferImpl::nio_get_Float(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return 0.0;
-}
-
-jdouble
-gnu::java::nio::ShortBufferImpl::nio_get_Double(gnu::java::nio::ShortBufferImpl*, jint, jint)
-{
- return 0.0;
-}
diff --git a/libjava/gnu/java/nio/natSocketChannelImpl.cc b/libjava/gnu/java/nio/natSocketChannelImpl.cc
index 4e6c6da3782..3476a0a0f75 100644
--- a/libjava/gnu/java/nio/natSocketChannelImpl.cc
+++ b/libjava/gnu/java/nio/natSocketChannelImpl.cc
@@ -1,6 +1,6 @@
-// natSelectorImpl.cc
+// natSocketChannelImpl.cc
-/* Copyright (C) 2002 Free Software Foundation
+/* Copyright (C) 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -19,6 +19,62 @@ details. */
#include <java/net/InetAddress.h>
#include <java/net/SocketException.h>
+
+#ifdef DISABLE_JAVA_NET
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketCreate ()
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketCreate not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketConnect (jint,
+ ::java::net::InetAddress *,
+ jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketConnect not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketBind (jint, ::java::net::InetAddress *,
+ jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketBind not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketListen (jint, jint)
+{
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketList not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketAvailable (jint)
+{
+ throw new ::java::net::SocketException (JvNewStringLatin1 ("SocketAvailable: not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketClose (jint)
+{
+ throw new ::java::net::SocketException (JvNewStringLatin1 ("SocketClose: not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketRead (jint, jbyteArray, jint, jint)
+{
+ throw new ::java::net::SocketException (JvNewStringLatin1 ("SocketRead: not implemented"));
+}
+
+jint
+gnu::java::nio::SocketChannelImpl::SocketWrite (jint, jbyteArray, jint, jint)
+{
+ throw new ::java::net::SocketException (JvNewStringLatin1 ("SocketWrite: not implemented"));
+}
+
+#else // DISABLE_JAVA_NET
+
jint
gnu::java::nio::SocketChannelImpl::SocketCreate ()
{
@@ -38,15 +94,7 @@ gnu::java::nio::SocketChannelImpl::SocketConnect (jint fd,
::java::net::InetAddress *addr,
jint port)
{
- int result = _Jv_connect_address (fd, addr, port, addr, port);
-
- if (result < 0)
- {
- char* strerr = strerror (errno);
- throw new ::java::io::IOException (JvNewStringUTF (strerr));
- }
-
- return result;
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketConnect not implemented"));
}
jint
@@ -54,15 +102,7 @@ gnu::java::nio::SocketChannelImpl::SocketBind (jint fd,
::java::net::InetAddress *addr,
jint port)
{
- int result = _Jv_bind_address (fd, addr, port);
-
- if (result < 0)
- {
- char* strerr = strerror (errno);
- throw new ::java::io::IOException (JvNewStringUTF (strerr));
- }
-
- return result;
+ throw new ::java::io::IOException (JvNewStringUTF ("SocketBind not implemented"));
}
jint
@@ -103,7 +143,9 @@ jint
gnu::java::nio::SocketChannelImpl::SocketRead (jint fd, jbyteArray data,
jint offset, jint length)
{
- int result = ::recv (fd, data, offset, length);
+ /* The cast to char* is needed to placate the Win32 API. */
+ int result =
+ ::recv (fd, reinterpret_cast<char*>(elements(data)), offset, length);
if (result < 0)
{
@@ -118,7 +160,11 @@ jint
gnu::java::nio::SocketChannelImpl::SocketWrite (jint fd, jbyteArray data,
jint offset, jint length)
{
- int result = ::send (fd, data, offset, length);
+ /* The cast to char* is needed to placate the Win32 API. I used char*
+ instead of const char* because I wasn't sure about the API on all
+ UNICES. */
+ int result =
+ ::send (fd, reinterpret_cast<char*>(elements(data)), offset, length);
if (result < 0)
{
@@ -128,3 +174,5 @@ gnu::java::nio::SocketChannelImpl::SocketWrite (jint fd, jbyteArray data,
return result;
}
+
+#endif // DISABLE_JAVA_NET
diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall.java b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
index 734002aaa65..68d1bfe01d8 100644
--- a/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
+++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
@@ -213,7 +213,7 @@ public class UnicastRemoteCall
Object returnValue()
{
- return vec.elementAt(0);
+ return (vec.size() > 0 ? vec.elementAt(0) : null);
}
Object[] getArguments()
diff --git a/libjava/gnu/java/rmi/server/UnicastServerRef.java b/libjava/gnu/java/rmi/server/UnicastServerRef.java
index 4f64452b124..a3a999f2e9f 100644
--- a/libjava/gnu/java/rmi/server/UnicastServerRef.java
+++ b/libjava/gnu/java/rmi/server/UnicastServerRef.java
@@ -1,5 +1,5 @@
/*
- Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (c) 1996, 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,7 +129,7 @@ public RemoteStub getStub(){
}
-public boolean unexportObject(Remote obj, boolean force) throws RemoteException {
+public boolean unexportObject(Remote obj, boolean force) {
// Remove all hashes of methods which may be called.
buildMethodHash(obj.getClass(), false);
return UnicastServer.unexportObject(this, force);
diff --git a/libjava/gnu/java/security/provider/SHA1PRNG.java b/libjava/gnu/java/security/provider/SHA1PRNG.java
index 669b1b55b75..97a8b9e3433 100644
--- a/libjava/gnu/java/security/provider/SHA1PRNG.java
+++ b/libjava/gnu/java/security/provider/SHA1PRNG.java
@@ -1,5 +1,5 @@
/* SHA1PRNG.java --- Secure Random SPI SHA1PRNG
- Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -51,27 +51,22 @@ public class SHA1PRNG extends SecureRandomSpi implements Serializable
byte data[];
int seedpos;
int datapos;
+ private boolean seeded = false; // set to true when we seed this
public SHA1PRNG()
{
try {
digest = MessageDigest.getInstance("SHA");
} catch ( NoSuchAlgorithmException nsae) {
- System.out.println("Failed to find SHA Message Digest: " + nsae);
- nsae.printStackTrace();
+// System.out.println("Failed to find SHA Message Digest: " + nsae);
+// nsae.printStackTrace();
+ throw new InternalError ("no SHA implementation found");
}
seed = new byte[20];
seedpos = 0;
data = new byte[40];
- datapos = 0;
-
- new Random().nextBytes(seed);
-
- byte digestdata[];
- digestdata = digest.digest( data );
- System.arraycopy( digestdata, 0, data, 0, 20);
-
+ datapos = 20; // try to force hashing a first block
}
public void engineSetSeed(byte[] seed)
@@ -84,6 +79,7 @@ public class SHA1PRNG extends SecureRandomSpi implements Serializable
public void engineNextBytes(byte[] bytes)
{
+ ensureIsSeeded ();
int loc = 0;
while (loc < bytes.length)
{
@@ -113,4 +109,18 @@ public class SHA1PRNG extends SecureRandomSpi implements Serializable
engineNextBytes( tmp );
return tmp;
}
+
+ private void ensureIsSeeded()
+ {
+ if (!seeded)
+ {
+ new Random(0L).nextBytes(seed);
+
+ byte[] digestdata = digest.digest(data);
+ System.arraycopy(digestdata, 0, data, 0, 20);
+
+ seeded = true;
+ }
+ }
+
}
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index 1deb2b46dc3..f428794f686 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -65,6 +65,7 @@ target_alias = @target_alias@
target_triplet = @target@
AR = @AR@
AS = @AS@
+BACKTRACESPEC = @BACKTRACESPEC@
CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@
@@ -86,6 +87,7 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INTERPRETER = @INTERPRETER@
JC1GCSPEC = @JC1GCSPEC@
@@ -129,6 +131,9 @@ here = @here@
libgcj_basedir = @libgcj_basedir@
mkinstalldirs = @mkinstalldirs@
tool_include_dir = @tool_include_dir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign
diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in
index cd770f93ac6..5fb650327b6 100644
--- a/libjava/include/config.h.in
+++ b/libjava/include/config.h.in
@@ -1,4 +1,4 @@
-/* include/config.h.in. Generated automatically from configure.in by autoheader 2.13. */
+/* include/config.h.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h
index b996732b743..7dbcd9dfd2d 100644
--- a/libjava/include/dwarf2-signal.h
+++ b/libjava/include/dwarf2-signal.h
@@ -209,9 +209,6 @@ do \
while (0)
#endif
#elif !defined(__ia64__)
-#if defined(__x86_64__)
-#define SYS_sigaction SYS_rt_sigaction
-#endif
#define INIT_SEGV \
do \
{ \
diff --git a/libjava/include/i386-signal.h b/libjava/include/i386-signal.h
index 6ad496c47a4..2ca1aefab70 100644
--- a/libjava/include/i386-signal.h
+++ b/libjava/include/i386-signal.h
@@ -108,6 +108,22 @@ struct old_i386_kernel_sigaction {
void (*sa_restorer) (void);
};
+#define RESTORE(name, syscall) RESTORE2 (name, syscall)
+# define RESTORE2(name, syscall) \
+asm \
+ ( \
+ ".text\n" \
+ ".byte 0 # Yes, this really is necessary\n" \
+ " .align 8\n" \
+ "__" #name ":\n" \
+ " popl %eax\n" \
+ " movl $" #syscall ", %eax\n" \
+ " int $0x80" \
+ );
+
+RESTORE (restore, __NR_sigreturn)
+static void restore (void) asm ("__restore");
+
#define INIT_SEGV \
do \
{ \
@@ -115,7 +131,8 @@ do \
struct old_i386_kernel_sigaction kact; \
kact.k_sa_handler = catch_segv; \
kact.k_sa_mask = 0; \
- kact.k_sa_flags = 0; \
+ kact.k_sa_flags = 0x4000000; \
+ kact.sa_restorer = restore; \
syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \
} \
while (0)
@@ -128,7 +145,8 @@ do \
struct old_i386_kernel_sigaction kact; \
kact.k_sa_handler = catch_fpe; \
kact.k_sa_mask = 0; \
- kact.k_sa_flags = 0; \
+ kact.k_sa_flags = 0x4000000; \
+ kact.sa_restorer = restore; \
syscall (SYS_sigaction, SIGFPE, &kact, NULL); \
} \
while (0)
@@ -147,10 +165,7 @@ while (0)
* Also, there is at the present time no unwind info in the
* linuxthreads library's signal handlers and so we can't unwind
- * through them anyway.
-
- * Finally, the code that glibc uses to return from a signal handler
- * is subject to change. */
+ * through them anyway. */
#endif /* JAVA_SIGNAL_H */
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index a44db38ca85..a00f4db0a1d 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -21,6 +21,7 @@ details. */
#include <java/lang/Class.h>
#include <java/lang/ClassLoader.h>
+#include <java/lang/reflect/Modifier.h>
#include <gnu/gcj/runtime/StackTrace.h>
extern "C" {
@@ -30,7 +31,7 @@ extern "C" {
extern inline jboolean
_Jv_IsInterpretedClass (jclass c)
{
- return (c->loader != 0);
+ return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
}
struct _Jv_ResolvedMethod;
@@ -158,6 +159,7 @@ class _Jv_InterpClass : public java::lang::Class
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
friend void _Jv_PrepareClass(jclass);
+ friend void _Jv_PrepareMissingMethods (jclass base2, jclass iface_class);
friend void _Jv_InitField (jobject, jclass, int);
#ifdef JV_MARKOBJ_DECL
friend JV_MARKOBJ_DECL;
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index e02901de824..507c4c0b8a9 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -352,9 +352,21 @@ extern "C"
jlong _Jv_remJ (jlong, jlong);
}
-/* get/set the name of the running executable. */
-extern char *_Jv_ThisExecutable (void);
-extern void _Jv_ThisExecutable (const char *);
+/* Get the number of arguments (cf. argc) or 0 if our argument
+ list was never initialized. */
+extern int _Jv_GetNbArgs (void);
+
+/* Get the specified argument (cf. argv[index]) or "" if either
+ our argument list was never initialized or the specified index
+ is out of bounds. */
+extern const char * _Jv_GetSafeArg (int index);
+
+/* Sets our argument list. Can be used by programs with non-standard
+ entry points. */
+extern void _Jv_SetArgs (int argc, const char **argv);
+
+/* Get the name of the running executable. */
+extern const char *_Jv_ThisExecutable (void);
/* Return a pointer to a symbol in executable or loaded library. */
void *_Jv_FindSymbolInExecutable (const char *);
diff --git a/libjava/include/posix.h b/libjava/include/posix.h
index cdcdb5d45ac..0aadd47d3b3 100644
--- a/libjava/include/posix.h
+++ b/libjava/include/posix.h
@@ -1,6 +1,6 @@
// posix.h -- Helper functions for POSIX-flavored OSs.
-/* Copyright (C) 2000, 2002 Free Software Foundation
+/* Copyright (C) 2000, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -60,6 +60,16 @@ _Jv_platform_close_on_exec (jint fd)
::fcntl (fd, F_SETFD, FD_CLOEXEC);
}
+#undef fcntl
+
+#ifdef JV_HASH_SYNCHRONIZATION
+inline void
+_Jv_platform_usleep (unsigned long usecs)
+{
+ usleep (usecs);
+}
+#endif /* JV_HASH_SYNCHRONIZATION */
+
#ifndef DISABLE_JAVA_NET
#ifndef HAVE_SOCKLEN_T
@@ -72,18 +82,24 @@ _Jv_socket (int domain, int type, int protocol)
return ::socket (domain, type, protocol);
}
+#undef socket
+
inline int
_Jv_connect (jint fd, sockaddr *ptr, int len)
{
return ::connect (fd, ptr, len);
}
+#undef connect
+
inline int
_Jv_close (jint fd)
{
return ::close (fd);
}
+#undef close
+
// Avoid macro definitions of bind from system headers, e.g. on
// Solaris 7 with _XOPEN_SOURCE. FIXME
inline int
@@ -92,6 +108,8 @@ _Jv_bind (int fd, struct sockaddr *addr, int addrlen)
return ::bind (fd, addr, addrlen);
}
+#undef bind
+
// Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET
inline int
_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
@@ -99,24 +117,32 @@ _Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
return ::accept (fd, addr, addrlen);
}
+#undef accept
+
inline int
_Jv_listen (int fd, int backlog)
{
return ::listen (fd, backlog);
}
+#undef listen
+
inline int
_Jv_write(int s, void *buf, int len)
{
return ::write (s, buf, len);
}
+#undef write
+
inline int
_Jv_read(int s, void *buf, int len)
{
return ::read (s, buf, len);
}
+#undef read
+
#endif /* DISABLE_JAVA_NET */
#endif /* __JV_POSIX_H__ */
diff --git a/libjava/include/powerpc-signal.h b/libjava/include/powerpc-signal.h
new file mode 100644
index 00000000000..00a5a6dfb8f
--- /dev/null
+++ b/libjava/include/powerpc-signal.h
@@ -0,0 +1,87 @@
+// powerpc-signal.h - Catch runtime signals and turn them into exceptions
+// on a powerpc based Linux system.
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+
+#ifndef JAVA_SIGNAL_H
+# define JAVA_SIGNAL_H 1
+
+# include <signal.h>
+# include <sys/syscall.h>
+
+# define HANDLE_SEGV 1
+# undef HANDLE_FPE
+
+# define SIGNAL_HANDLER(_name) \
+ static void _name (int /* _signal */, struct sigcontext *_sc)
+
+/* PPC either leaves PC pointing at a faulting instruction or the
+ following instruction, depending on the signal. SEGV always does
+ the former, so we adjust the saved PC to point to the following
+ instruction. This is what the handler in libgcc expects. */
+
+# define MAKE_THROW_FRAME(_exception) \
+do \
+ { \
+ _sc->regs->nip += 4; \
+ } \
+while (0)
+
+/* For an explanation why we cannot simply use sigaction to
+ install the handlers, see i386-signal.h. */
+
+/* We use kernel_old_sigaction here because we're calling the kernel
+ directly rather than via glibc. The sigaction structure that the
+ syscall uses is a different shape from the one in userland and not
+ visible to us in a header file so we define it here.
+ Additionally we want a proper prototype for the handler function
+ with the struct sigcontext pointer passed by the kernel as the 2nd
+ argument, which isn't there in userland headers.
+
+ Note that we explicitly avoid the SA_SIGINFO flag in INIT_SEGV and
+ INIT_FPE below. Using the ucontext pointer passed as 3rd argument
+ of a SA_SIGINFO type handler would need complicated backwards
+ compatibility hacks in MAKE_THROW_FRAME, as the ucontext layout
+ on PPC changed during the 2.5 kernel series. */
+
+struct kernel_old_sigaction {
+ void (*k_sa_handler) (int, struct sigcontext *);
+ unsigned long k_sa_mask;
+ unsigned long k_sa_flags;
+ void (*k_sa_restorer) (void);
+};
+
+# define INIT_SEGV \
+do \
+ { \
+ nullp = new java::lang::NullPointerException (); \
+ struct kernel_old_sigaction kact; \
+ kact.k_sa_handler = catch_segv; \
+ kact.k_sa_mask = 0; \
+ kact.k_sa_flags = 0; \
+ syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \
+ } \
+while (0)
+
+# define INIT_FPE \
+do \
+ { \
+ arithexception = new java::lang::ArithmeticException \
+ (JvNewStringLatin1 ("/ by zero")); \
+ struct kernel_old_sigaction kact; \
+ kact.k_sa_handler = catch_fpe; \
+ kact.k_sa_mask = 0; \
+ kact.k_sa_flags = 0; \
+ syscall (SYS_sigaction, SIGFPE, &kact, NULL); \
+ } \
+while (0)
+
+#endif /* JAVA_SIGNAL_H */
+
diff --git a/libjava/include/win32-threads.h b/libjava/include/win32-threads.h
index e8cf80598c2..5e40ae24b87 100644
--- a/libjava/include/win32-threads.h
+++ b/libjava/include/win32-threads.h
@@ -1,7 +1,8 @@
// -*- c++ -*-
// win32-threads.h - Defines for using Win32 threads.
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+ Foundation
This file is part of libgcj.
@@ -18,13 +19,32 @@ details. */
// Typedefs.
//
-typedef struct _Jv_ConditionVariable_t {
+typedef struct
+{
+ // ev[0] (signal) is a Win32 auto-reset event for _Jv_CondNotify
+ // ev[1] (broadcast) is a Win32 manual-reset event for _Jv_CondNotifyAll
HANDLE ev[2];
- CRITICAL_SECTION count_mutex;
+
+ // Number of threads waiting on this condition variable
int blocked_count;
-};
-typedef CRITICAL_SECTION _Jv_Mutex_t;
+ // Protects access to the blocked_count variable
+ CRITICAL_SECTION count_mutex;
+
+} _Jv_ConditionVariable_t;
+
+typedef struct
+{
+ // The thread-id of the owner thread if any, 0 otherwise
+ DWORD owner;
+
+ // Track nested mutex acquisitions by the same thread
+ int refcount;
+
+ // The actual Windows construct used to implement this mutex
+ CRITICAL_SECTION cs;
+
+} _Jv_Mutex_t;
typedef struct
{
@@ -60,25 +80,39 @@ int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *);
inline void _Jv_MutexInit (_Jv_Mutex_t *mu)
{
- InitializeCriticalSection(mu);
+ mu->owner = 0UL;
+ mu->refcount = 0;
+ InitializeCriticalSection (&(mu->cs));
}
#define _Jv_HaveMutexDestroy
inline void _Jv_MutexDestroy (_Jv_Mutex_t *mu)
{
- DeleteCriticalSection(mu);
+ mu->owner = 0UL;
+ mu->refcount = 0;
+ DeleteCriticalSection (&(mu->cs));
mu = NULL;
}
inline int _Jv_MutexUnlock (_Jv_Mutex_t *mu)
{
- LeaveCriticalSection(mu);
- return 0;
+ if (mu->owner == GetCurrentThreadId ( ))
+ {
+ mu->refcount--;
+ if (mu->refcount == 0)
+ mu->owner = 0UL;
+ LeaveCriticalSection (&(mu->cs));
+ return 0;
+ }
+ else
+ return 1;
}
inline int _Jv_MutexLock (_Jv_Mutex_t *mu)
{
- EnterCriticalSection(mu);
+ EnterCriticalSection (&(mu->cs));
+ mu->owner = GetCurrentThreadId ( );
+ mu->refcount++;
return 0;
}
@@ -104,9 +138,7 @@ inline _Jv_Thread_t *_Jv_ThreadCurrentData(void)
inline void _Jv_ThreadYield (void)
{
- // FIXME: win98 freezes hard (OS hang) when we use this --
- // for now, we simply don't yield
- // Sleep (0);
+ Sleep (0);
}
void _Jv_ThreadRegister (_Jv_Thread_t *data);
diff --git a/libjava/include/win32.h b/libjava/include/win32.h
index d4c0ab6c18d..969af0818f9 100644
--- a/libjava/include/win32.h
+++ b/libjava/include/win32.h
@@ -1,6 +1,6 @@
// win32.h -- Helper functions for Microsoft-flavored OSs.
-/* Copyright (C) 2002 Free Software Foundation
+/* Copyright (C) 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -14,9 +14,7 @@ details. */
#include <windows.h>
#undef STRICT
-#undef __INSIDE_CYGWIN__
-#include <winsock.h>
-#define IP_TOS 3
+#include <ws2tcpip.h>
#include <gcj/cni.h>
#include <java/util/Properties.h>
@@ -32,6 +30,11 @@ details. */
#define ENOTCONN 0
#define ECONNRESET 0
+/* This is incorrect, but allows java/net/natPlainDatagramSocketImpl.cc
+ to compile under MingW. This will be remedied in a subsequent gcj
+ release where the Win32 and Posix networking code have been forked. */
+#define ECONNREFUSED 0
+
#ifndef ENOPROTOOPT
#define ENOPROTOOPT 109
#endif
@@ -41,6 +44,7 @@ details. */
extern void _Jv_platform_initialize (void);
extern void _Jv_platform_initProperties (java::util::Properties*);
extern jlong _Jv_platform_gettimeofday ();
+extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *);
inline void
_Jv_platform_close_on_exec (jint)
@@ -48,6 +52,21 @@ _Jv_platform_close_on_exec (jint)
// Ignore.
}
+#ifdef JV_HASH_SYNCHRONIZATION
+/* Suspends the execution of the current thread for the specified
+ number of microseconds. Tries to emulate the behaviour of usleep()
+ on UNIX and provides a granularity of 1 millisecond. */
+inline void
+_Jv_platform_usleep (unsigned long usecs)
+{
+ if (usecs > 0UL)
+ {
+ unsigned long millis = ((usecs + 999UL) / 1000UL);
+ Sleep (millis);
+ }
+}
+#endif /* JV_HASH_SYNCHRONIZATION */
+
#ifndef DISABLE_JAVA_NET
static inline int
@@ -59,7 +78,7 @@ _Jv_socket (int domain, int type, int protocol)
inline int
_Jv_connect (jint fd, sockaddr *ptr, int len)
{
- return ::connect (fd, ptr, len);
+ return ::connect (fd, ptr, len);
}
inline int
@@ -100,8 +119,6 @@ _Jv_read(int s, void *buf, int len)
#endif /* DISABLE_JAVA_NET */
-#define HAVE_BACKTRACE
-
/* Store up to SIZE return address of the current program state in
ARRAY and return the exact number of values stored. */
extern int backtrace (void **__array, int __size);
diff --git a/libjava/include/x86_64-signal.h b/libjava/include/x86_64-signal.h
new file mode 100644
index 00000000000..fed55d1ce6e
--- /dev/null
+++ b/libjava/include/x86_64-signal.h
@@ -0,0 +1,96 @@
+// x86_64-signal.h - Catch runtime signals and turn them into exceptions
+// on an x86_64 based GNU/Linux system.
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+
+#ifndef JAVA_SIGNAL_H
+#define JAVA_SIGNAL_H 1
+
+#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __x86_64__
+
+#define HANDLE_SEGV 1
+
+#define SIGNAL_HANDLER(_name) \
+static void _Jv_##_name (int, siginfo_t *, void *_p)
+
+extern "C"
+{
+ struct kernel_sigaction
+ {
+ void (*k_sa_sigaction)(int,siginfo_t *,void *);
+ unsigned long k_sa_flags;
+ void (*k_sa_restorer) (void);
+ sigset_t k_sa_mask;
+ };
+}
+
+#define MAKE_THROW_FRAME(_exception) \
+do \
+{ \
+ /* Advance the program counter so that it is after the start of the \
+ instruction: the x86_64 exception handler expects \
+ the PC to point to the instruction after a call. */ \
+ struct ucontext *_uc = (struct ucontext *)_p; \
+ volatile struct sigcontext *_sc = (struct sigcontext *) &_uc->uc_mcontext; \
+ _sc->rip += 2; \
+} \
+while (0)
+
+#define RESTORE(name, syscall) RESTORE2 (name, syscall)
+#define RESTORE2(name, syscall) \
+asm \
+ ( \
+ ".byte 0 # Yes, this really is necessary\n" \
+ ".align 16\n" \
+ "__" #name ":\n" \
+ " movq $" #syscall ", %rax\n" \
+ " syscall\n" \
+ );
+
+/* The return code for realtime-signals. */
+RESTORE (restore_rt, __NR_rt_sigreturn)
+static void restore_rt (void) asm ("__restore_rt");
+
+#define INIT_SEGV \
+do \
+ { \
+ nullp = new java::lang::NullPointerException (); \
+ struct kernel_sigaction act; \
+ act.k_sa_sigaction = _Jv_catch_segv; \
+ sigemptyset (&act.k_sa_mask); \
+ act.k_sa_flags = SA_SIGINFO|0x4000000; \
+ act.k_sa_restorer = restore_rt; \
+ syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \
+ } \
+while (0)
+
+/* We use syscall(SYS_rt_sigaction) in INIT_SEGV instead of
+ * sigaction() because on some systems the pthreads wrappers for
+ * signal handlers are not compiled with unwind information, so it's
+ * not possible to unwind through them. This is a problem that will
+ * go away if all systems ever have pthreads libraries that are
+ * compiled with unwind info. */
+
+#else /* __x86_64__ */
+
+/* This is for the 32-bit subsystem on on x86-64. Catching signals
+ doesn't yet work on that target. */
+
+#undef HANDLE_SEGV
+#undef HANDLE_FPE
+
+#define INIT_SEGV do {} while (0)
+#define INIT_FPE do {} while (0)
+
+#endif /* __x86_64__ */
+#endif /* JAVA_SIGNAL_H */
diff --git a/libjava/java/awt/AlphaComposite.java b/libjava/java/awt/AlphaComposite.java
index 14649fc74a3..f0795a96010 100644
--- a/libjava/java/awt/AlphaComposite.java
+++ b/libjava/java/awt/AlphaComposite.java
@@ -64,6 +64,7 @@ public final class AlphaComposite implements Composite
return size() > MAX_CACHE_SIZE;
}
};
+
public static final int CLEAR = 1;
public static final int SRC = 2;
public static final int DST = 9;
@@ -88,6 +89,7 @@ public final class AlphaComposite implements Composite
public static final AlphaComposite SrcAtop = getInstance(SRC_ATOP);
public static final AlphaComposite DstAtop = getInstance(DST_ATOP);
public static final AlphaComposite Xor = getInstance(XOR);
+
private final int rule;
private final float alpha;
private AlphaComposite(int rule, float alpha)
@@ -95,10 +97,32 @@ public final class AlphaComposite implements Composite
this.rule = rule;
this.alpha = alpha;
}
+
+ /**
+ * Creates an AlphaComposite object with the specified rule.
+ *
+ * @param rule The compositing rule.
+ *
+ * @exception IllegalArgumentException If rule is not one of the following:
+ * CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT,
+ * SRC_ATOP, DST_ATOP, or XOR.
+ */
public static AlphaComposite getInstance(int rule)
{
return getInstance(rule, 1);
}
+
+ /**
+ * Creates an AlphaComposite object with the specified rule and the constant
+ * alpha to multiply with the alpha of the source. The source is multiplied
+ * with the specified alpha before being composited with the destination.
+ *
+ * @param rule The compositing rule.
+ *
+ * @exception IllegalArgumentException If rule is not one of the following:
+ * CLEAR, SRC, DST, SRC_OVER, DST_OVER, SRC_IN, DST_IN, SRC_OUT, DST_OUT,
+ * SRC_ATOP, DST_ATOP, or XOR.
+ */
public static AlphaComposite getInstance(int rule, float alpha)
{
if (rule < CLEAR || rule > XOR || ! (alpha >= 0 && alpha <= 1))
diff --git a/libjava/java/awt/BasicStroke.java b/libjava/java/awt/BasicStroke.java
index c3290336cd9..3d0a2e74506 100644
--- a/libjava/java/awt/BasicStroke.java
+++ b/libjava/java/awt/BasicStroke.java
@@ -1,5 +1,5 @@
/* BasicStroke.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,12 +59,31 @@ public class BasicStroke implements Stroke
private final float[] dash;
private final float phase;
+ /**
+ * Creates a basic stroke.
+ *
+ * @param width May not be negative .
+ * @param cap May be either CAP_BUTT, CAP_ROUND or CAP_SQUARE.
+ * @param join May be either JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER.
+ * @param miterlimit the limit to trim the miter join. The miterlimit must be
+ * greater than or equal to 1.0f.
+ * @param dash The array representing the dashing pattern.
+ * @param dash_phase is negative and dash is not null.
+ *
+ * @exception IllegalArgumentException If one input parameter doesn't meet
+ * its needs.
+ */
public BasicStroke(float width, int cap, int join, float miterlimit,
float[] dash, float dashPhase)
{
- if (width < 0 || miterlimit < 1 || cap < CAP_BUTT || cap > CAP_SQUARE
- || join < JOIN_MITER || join > JOIN_BEVEL)
+ if (width < 0 ||
+ miterlimit < 1.0f ||
+ cap < CAP_BUTT ||
+ cap > CAP_SQUARE ||
+ join < JOIN_MITER ||
+ join > JOIN_BEVEL)
throw new IllegalArgumentException();
+
this.width = width;
this.cap = cap;
this.join = join;
@@ -73,21 +92,54 @@ public class BasicStroke implements Stroke
phase = dashPhase;
}
+ /**
+ * Creates a basic stroke.
+ *
+ * @param width The width of the BasicStroke. May not be negative .
+ * @param cap May be either CAP_BUTT, CAP_ROUND or CAP_SQUARE.
+ * @param join May be either JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER.
+ * @param miterlimit the limit to trim the miter join. The miterlimit must be
+ * greater than or equal to 1.0f.
+ *
+ * @exception IllegalArgumentException If one input parameter doesn't meet
+ * its needs.
+ */
public BasicStroke(float width, int cap, int join, float miterlimit)
{
this(width, cap, join, miterlimit, null, 0);
}
+ /**
+ * Creates a basic stroke.
+ *
+ * @param width The width of the BasicStroke. May not be nehative.
+ * @param cap May be either CAP_BUTT, CAP_ROUND or CAP_SQUARE.
+ * @param join May be either JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER.
+ *
+ * @exception IllegalArgumentException If one input parameter doesn't meet
+ * its needs.
+ * @exception IllegalArgumentException FIXME
+ */
public BasicStroke(float width, int cap, int join)
{
this(width, cap, join, 10, null, 0);
}
+ /**
+ * Creates a basic stroke.
+ *
+ * @param width The width of the BasicStroke.
+ *
+ * @exception IllegalArgumentException If width is negative.
+ */
public BasicStroke(float width)
{
this(width, CAP_SQUARE, JOIN_MITER, 10, null, 0);
}
+ /**
+ * Creates a basic stroke.
+ */
public BasicStroke()
{
this(1, CAP_SQUARE, JOIN_MITER, 10, null, 0);
diff --git a/libjava/java/awt/BufferCapabilities.java b/libjava/java/awt/BufferCapabilities.java
index 389594b76b5..871529e6e93 100644
--- a/libjava/java/awt/BufferCapabilities.java
+++ b/libjava/java/awt/BufferCapabilities.java
@@ -67,6 +67,11 @@ public class BufferCapabilities implements Cloneable
private final ImageCapabilities back;
private final FlipContents flip;
+ /**
+ * Creates a buffer capabilities object.
+ *
+ * @exception IllegalArgumentException If frontCaps or backCaps are null.
+ */
public BufferCapabilities(ImageCapabilities front, ImageCapabilities back,
FlipContents flip)
{
diff --git a/libjava/java/awt/Button.java b/libjava/java/awt/Button.java
index ed954ddcfda..989fbc95173 100644
--- a/libjava/java/awt/Button.java
+++ b/libjava/java/awt/Button.java
@@ -90,6 +90,9 @@ private transient ActionListener action_listeners;
/**
* Initializes a new instance of <code>Button</code> with no label.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true
*/
public
Button()
@@ -104,12 +107,18 @@ Button()
* label. The action command name is also initialized to this value.
*
* @param label The label to display on the button.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true
*/
public
Button(String label)
{
this.label = label;
actionCommand = label;
+
+ if (GraphicsEnvironment.isHeadless ())
+ throw new HeadlessException ();
}
/*************************************************************************/
@@ -211,6 +220,10 @@ removeActionListener(ActionListener listener)
/** Returns all registered EventListers of the given listenerType.
* listenerType must be a subclass of EventListener, or a
* ClassClassException is thrown.
+ *
+ * @exception ClassCastException If listenerType doesn't specify a class or
+ * interface that implements @see java.util.EventListener.
+ *
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType)
diff --git a/libjava/java/awt/CardLayout.java b/libjava/java/awt/CardLayout.java
index 10ffa2ec6c2..1900a6094e2 100644
--- a/libjava/java/awt/CardLayout.java
+++ b/libjava/java/awt/CardLayout.java
@@ -1,6 +1,6 @@
// CardLayout.java - Card-based layout engine
-/* Copyright (C) 1999, 2000, 2002 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation
This file is part of GNU Classpath.
@@ -110,7 +110,7 @@ public class CardLayout implements LayoutManager2, Serializable
*/
public void first (Container parent)
{
- gotoComponent (parent, FIRST, null);
+ gotoComponent (parent, FIRST);
}
/** Return this layout manager's horizontal gap. */
@@ -154,7 +154,7 @@ public class CardLayout implements LayoutManager2, Serializable
*/
public void last (Container parent)
{
- gotoComponent (parent, LAST, null);
+ gotoComponent (parent, LAST);
}
/**
@@ -210,7 +210,7 @@ public class CardLayout implements LayoutManager2, Serializable
*/
public void next (Container parent)
{
- gotoComponent (parent, NEXT, null);
+ gotoComponent (parent, NEXT);
}
/** Get the preferred layout size of the container.
@@ -228,7 +228,7 @@ public class CardLayout implements LayoutManager2, Serializable
*/
public void previous (Container parent)
{
- gotoComponent (parent, PREV, null);
+ gotoComponent (parent, PREV);
}
/** Remove the indicated component from this layout manager.
@@ -273,7 +273,21 @@ public class CardLayout implements LayoutManager2, Serializable
{
Object target = tab.get (name);
if (target != null)
- gotoComponent (parent, NONE, (Component) target);
+ {
+ int num = parent.ncomponents;
+ // This is more efficient than calling getComponents().
+ Component[] comps = parent.component;
+ for (int i = 0; i < num; ++i)
+ {
+ if (comps[i].isVisible())
+ {
+ if (target == comps[i])
+ return;
+ comps[i].setVisible (false);
+ }
+ }
+ ((Component) target).setVisible (true);
+ }
}
/**
@@ -286,9 +300,11 @@ public class CardLayout implements LayoutManager2, Serializable
return getClass ().getName () + "[" + hgap + "," + vgap + "]";
}
- // This implements first(), last(), next(), and previous().
- private void gotoComponent (Container parent, int what,
- Component target)
+ /** This implements first(), last(), next(), and previous().
+ * @param parent The parent container
+ * @param what The type of goto: FIRST, LAST, NEXT or PREV
+ */
+ private void gotoComponent (Container parent, int what)
{
synchronized (parent.getTreeLock ())
{
@@ -301,19 +317,9 @@ public class CardLayout implements LayoutManager2, Serializable
choice = 0;
else if (what == LAST)
choice = num - 1;
- else if (what >= 0)
- choice = what;
for (int i = 0; i < num; ++i)
{
- // If TARGET is set then we are looking for a specific
- // component.
- if (target != null)
- {
- if (target == comps[i])
- choice = i;
- }
-
if (comps[i].isVisible ())
{
if (what == NEXT)
@@ -335,7 +341,7 @@ public class CardLayout implements LayoutManager2, Serializable
return;
}
comps[i].setVisible (false);
-
+
if (choice >= 0)
break;
}
@@ -403,7 +409,6 @@ public class CardLayout implements LayoutManager2, Serializable
private int LAST = 1;
private int NEXT = 2;
private int PREV = 3;
- private int NONE = 4;
// These constants are used by the private getSize method.
private int MIN = 0;
diff --git a/libjava/java/awt/CheckboxMenuItem.java b/libjava/java/awt/CheckboxMenuItem.java
index 2f7ecd79fc5..88218397c3c 100644
--- a/libjava/java/awt/CheckboxMenuItem.java
+++ b/libjava/java/awt/CheckboxMenuItem.java
@@ -84,6 +84,9 @@ private transient ItemListener item_listeners;
/**
* Initializes a new instance of <code>CheckboxMenuItem</code> with no
* label and an initial state of off.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
*/
public
CheckboxMenuItem()
@@ -98,6 +101,9 @@ CheckboxMenuItem()
* specified label and an initial state of off.
*
* @param label The label of the menu item.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
*/
public
CheckboxMenuItem(String label)
@@ -114,12 +120,18 @@ CheckboxMenuItem(String label)
* @param label The label of the menu item.
* @param state The initial state of the menu item, where <code>true</code>
* is on, and <code>false</code> is off.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
*/
public
CheckboxMenuItem(String label, boolean state)
{
super(label);
this.state = state;
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/Choice.java b/libjava/java/awt/Choice.java
index 81a2a31c932..4c7b505535c 100644
--- a/libjava/java/awt/Choice.java
+++ b/libjava/java/awt/Choice.java
@@ -85,13 +85,17 @@ private ItemListener item_listeners;
* Constructors
*/
-/**
- * Initializes a new instance of <code>Choice</code>.
- */
-public
-Choice()
-{
-}
+ /**
+ * Initializes a new instance of <code>Choice</code>.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true
+ */
+ public Choice()
+ {
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
+ }
/*************************************************************************/
@@ -146,12 +150,16 @@ getItem(int index)
* Adds the specified item to this choice box.
*
* @param item The item to add.
+ *
+ * @exception NullPointerException If the item's value is null
+ *
+ * @since 1.1
*/
public synchronized void
add(String item)
{
if (item == null)
- throw new IllegalArgumentException ("item must be non-null");
+ throw new NullPointerException ("item must be non-null");
pItems.addElement(item);
@@ -171,7 +179,12 @@ add(String item)
/**
* Adds the specified item to this choice box.
*
+ * This method is oboslete since Java 2 platform 1.1. Please use @see add
+ * instead.
+ *
* @param item The item to add.
+ *
+ * @exception NullPointerException If the item's value is equal to null
*/
public synchronized void
addItem(String item)
@@ -189,10 +202,15 @@ addItem(String item)
*
* @param item The item to add.
* @param index The index at which the item should be inserted.
+ *
+ * @exception IllegalArgumentException If index is less than 0
*/
public synchronized void
insert(String item, int index)
{
+ if (index < 0)
+ throw new IllegalArgumentException ("index may not be less then 0");
+
if (index > getItemCount ())
index = getItemCount ();
diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java
index fd039116bb8..d61db055f56 100644
--- a/libjava/java/awt/Component.java
+++ b/libjava/java/awt/Component.java
@@ -1,5 +1,5 @@
/* Component.java -- a graphics component
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of GNU Classpath.
@@ -4168,19 +4168,26 @@ p * <li>the set of backward traversal keys
return;
Graphics gfx = getGraphics();
- Shape clip = event.getUpdateRect();
- gfx.setClip(clip);
-
- switch (event.id)
+ try
{
- case PaintEvent.PAINT:
- paint(gfx);
- break;
- case PaintEvent.UPDATE:
- update(gfx);
- break;
- default:
- throw new IllegalArgumentException("unknown paint event");
+ Shape clip = event.getUpdateRect();
+ gfx.setClip(clip);
+
+ switch (event.id)
+ {
+ case PaintEvent.PAINT:
+ paint(gfx);
+ break;
+ case PaintEvent.UPDATE:
+ update(gfx);
+ break;
+ default:
+ throw new IllegalArgumentException("unknown paint event");
+ }
+ }
+ finally
+ {
+ gfx.dispose();
}
}
diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java
index dd2390d35ba..9494d8c56ac 100644
--- a/libjava/java/awt/Container.java
+++ b/libjava/java/awt/Container.java
@@ -59,7 +59,9 @@ import javax.accessibility.Accessible;
*
* @author original author unknown
* @author Eric Blake <ebb9@email.byu.edu>
+ *
* @since 1.0
+ *
* @status still missing 1.4 support
*/
public class Container extends Component
@@ -78,7 +80,9 @@ public class Container extends Component
Dimension maxSize;
- /** @since 1.4 */
+ /**
+ * @since 1.4
+ */
boolean focusCycleRoot;
int containerSerializedDataVersion;
@@ -107,6 +111,7 @@ public class Container extends Component
* Returns the number of components in this container.
*
* @return The number of components in this container.
+ *
* @deprecated use {@link #getComponentCount()} instead
*/
public int countComponents()
@@ -118,16 +123,19 @@ public class Container extends Component
* Returns the component at the specified index.
*
* @param index The index of the component to retrieve.
+ *
* @return The requested component.
+ *
* @throws ArrayIndexOutOfBoundsException If the specified index is invalid
*/
public Component getComponent(int n)
{
synchronized (getTreeLock ())
{
- if (n < 0 || n >= ncomponents)
- throw new ArrayIndexOutOfBoundsException("no such component");
- return component[n];
+ if (n < 0 || n >= ncomponents)
+ throw new ArrayIndexOutOfBoundsException("no such component");
+
+ return component[n];
}
}
@@ -140,10 +148,12 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- Component[] result = new Component[ncomponents];
- if (ncomponents > 0)
- System.arraycopy(component, 0, result, 0, ncomponents);
- return result;
+ Component[] result = new Component[ncomponents];
+
+ if (ncomponents > 0)
+ System.arraycopy(component, 0, result, 0, ncomponents);
+
+ return result;
}
}
@@ -157,6 +167,7 @@ public class Container extends Component
{
if (peer == null)
return new Insets(0, 0, 0, 0);
+
return ((ContainerPeer) peer).getInsets();
}
@@ -177,6 +188,7 @@ public class Container extends Component
* component list.
*
* @param component The component to add to the container.
+ *
* @return The same component that was added.
*/
public Component add(Component comp)
@@ -190,7 +202,7 @@ public class Container extends Component
* component list. This method should not be used. Instead, use
* <code>add(Component, Object</code>.
*
- * @param name FIXME
+ * @param name The name of the component to be added.
* @param component The component to be added.
*
* @return The same component that was added.
@@ -268,69 +280,70 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- if (index > ncomponents
- || (index < 0 && index != -1)
- || comp instanceof Window
- || (comp instanceof Container
- && ((Container) comp).isAncestorOf(this)))
- throw new IllegalArgumentException();
-
- // Reparent component, and make sure component is instantiated if
- // we are.
- if (comp.parent != null)
- comp.parent.remove(comp);
- comp.parent = this;
- if (peer != null)
- {
- comp.addNotify();
-
- if (comp.isLightweight())
- enableEvents(comp.eventMask);
- }
+ if (index > ncomponents
+ || (index < 0 && index != -1)
+ || comp instanceof Window
+ || (comp instanceof Container
+ && ((Container) comp).isAncestorOf(this)))
+ throw new IllegalArgumentException();
+
+ // Reparent component, and make sure component is instantiated if
+ // we are.
+ if (comp.parent != null)
+ comp.parent.remove(comp);
+ comp.parent = this;
+ if (peer != null)
+ {
+ comp.addNotify();
- invalidate();
+ if (comp.isLightweight())
+ enableEvents(comp.eventMask);
+ }
- if (component == null)
- component = new Component[4]; // FIXME, better initial size?
+ invalidate();
- // This isn't the most efficient implementation. We could do less
- // copying when growing the array. It probably doesn't matter.
- if (ncomponents >= component.length)
- {
- int nl = component.length * 2;
- Component[] c = new Component[nl];
- System.arraycopy(component, 0, c, 0, ncomponents);
- component = c;
- }
- if (index == -1)
- component[ncomponents++] = comp;
- else
- {
- System.arraycopy(component, index, component, index + 1,
- ncomponents - index);
- component[index] = comp;
- ++ncomponents;
- }
+ if (component == null)
+ component = new Component[4]; // FIXME, better initial size?
- // Notify the layout manager.
- if (layoutMgr != null)
- {
- if (layoutMgr instanceof LayoutManager2)
- {
- LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
- lm2.addLayoutComponent(comp, constraints);
- }
- else if (constraints instanceof String)
- layoutMgr.addLayoutComponent((String) constraints, comp);
- else
- layoutMgr.addLayoutComponent(null, comp);
- }
+ // This isn't the most efficient implementation. We could do less
+ // copying when growing the array. It probably doesn't matter.
+ if (ncomponents >= component.length)
+ {
+ int nl = component.length * 2;
+ Component[] c = new Component[nl];
+ System.arraycopy(component, 0, c, 0, ncomponents);
+ component = c;
+ }
+
+ if (index == -1)
+ component[ncomponents++] = comp;
+ else
+ {
+ System.arraycopy(component, index, component, index + 1,
+ ncomponents - index);
+ component[index] = comp;
+ ++ncomponents;
+ }
- // Post event to notify of adding the container.
- ContainerEvent ce = new ContainerEvent(this,
- ContainerEvent.COMPONENT_ADDED,
- comp);
- getToolkit().getSystemEventQueue().postEvent(ce);
+ // Notify the layout manager.
+ if (layoutMgr != null)
+ {
+ if (layoutMgr instanceof LayoutManager2)
+ {
+ LayoutManager2 lm2 = (LayoutManager2) layoutMgr;
+ lm2.addLayoutComponent(comp, constraints);
+ }
+ else if (constraints instanceof String)
+ layoutMgr.addLayoutComponent((String) constraints, comp);
+ else
+ layoutMgr.addLayoutComponent(null, comp);
+ }
+
+ // Post event to notify of adding the container.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_ADDED,
+ comp);
+ getToolkit().getSystemEventQueue().postEvent(ce);
}
}
@@ -343,24 +356,24 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- Component r = component[index];
+ Component r = component[index];
- r.removeNotify();
+ r.removeNotify();
- System.arraycopy(component, index + 1, component, index,
- ncomponents - index - 1);
- component[--ncomponents] = null;
+ System.arraycopy(component, index + 1, component, index,
+ ncomponents - index - 1);
+ component[--ncomponents] = null;
- invalidate();
+ invalidate();
- if (layoutMgr != null)
- layoutMgr.removeLayoutComponent(r);
+ if (layoutMgr != null)
+ layoutMgr.removeLayoutComponent(r);
- // Post event to notify of adding the container.
- ContainerEvent ce = new ContainerEvent(this,
- ContainerEvent.COMPONENT_REMOVED,
- r);
- getToolkit().getSystemEventQueue().postEvent(ce);
+ // Post event to notify of adding the container.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_REMOVED,
+ r);
+ getToolkit().getSystemEventQueue().postEvent(ce);
}
}
@@ -373,14 +386,14 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- for (int i = 0; i < ncomponents; ++i)
- {
- if (component[i] == comp)
- {
- remove(i);
- break;
- }
- }
+ for (int i = 0; i < ncomponents; ++i)
+ {
+ if (component[i] == comp)
+ {
+ remove(i);
+ break;
+ }
+ }
}
}
@@ -391,8 +404,8 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- while (ncomponents > 0)
- remove(0);
+ while (ncomponents > 0)
+ remove(0);
}
}
@@ -525,6 +538,7 @@ public class Container extends Component
* Returns the preferred size of this container.
*
* @return The preferred size of this container.
+ *
* @deprecated use {@link #getPreferredSize()} instead
*/
public Dimension preferredSize()
@@ -549,6 +563,7 @@ public class Container extends Component
* Returns the minimum size of this container.
*
* @return The minimum size of this container.
+ *
* @deprecated use {@link #getMinimumSize()} instead
*/
public Dimension minimumSize()
@@ -709,6 +724,10 @@ public class Container extends Component
}
/**
+ * Returns an array of all the objects currently registered as FooListeners
+ * upon this Container. FooListeners are registered using the addFooListener
+ * method.
+ *
* @since 1.3
*/
public EventListener[] getListeners(Class listenerType)
@@ -760,6 +779,7 @@ public class Container extends Component
* AWT 1.0 event processor.
*
* @param event The event that occurred.
+ *
* @deprecated use {@link #dispatchEvent(AWTEvent)} instead
*/
public void deliverEvent(Event e)
@@ -784,20 +804,20 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- if (! contains(x, y))
- return null;
- for (int i = 0; i < ncomponents; ++i)
- {
- // Ignore invisible children...
- if (!component[i].isVisible())
- continue;
-
- int x2 = x - component[i].x;
- int y2 = y - component[i].y;
- if (component[i].contains(x2, y2))
- return component[i];
- }
- return this;
+ if (! contains(x, y))
+ return null;
+ for (int i = 0; i < ncomponents; ++i)
+ {
+ // Ignore invisible children...
+ if (!component[i].isVisible())
+ continue;
+
+ int x2 = x - component[i].x;
+ int y2 = y - component[i].y;
+ if (component[i].contains(x2, y2))
+ return component[i];
+ }
+ return this;
}
}
@@ -813,6 +833,7 @@ public class Container extends Component
*
* @return The component containing the specified point, or <code>null</code>
* if there is no such point.
+ *
* @deprecated use {@link #getComponentAt(int, int)} instead
*/
public Component locate(int x, int y)
@@ -841,31 +862,31 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- if (! contains(x, y))
- return null;
-
- for (int i = 0; i < ncomponents; ++i)
- {
- // Ignore invisible children...
- if (!component[i].isVisible())
- continue;
-
- int x2 = x - component[i].x;
- int y2 = y - component[i].y;
- // We don't do the contains() check right away because
- // findComponentAt would redundantly do it first thing.
- if (component[i] instanceof Container)
- {
- Container k = (Container) component[i];
- Component r = k.findComponentAt(x2, y2);
- if (r != null)
- return r;
- }
- else if (component[i].contains(x2, y2))
- return component[i];
- }
+ if (! contains(x, y))
+ return null;
- return this;
+ for (int i = 0; i < ncomponents; ++i)
+ {
+ // Ignore invisible children...
+ if (!component[i].isVisible())
+ continue;
+
+ int x2 = x - component[i].x;
+ int y2 = y - component[i].y;
+ // We don't do the contains() check right away because
+ // findComponentAt would redundantly do it first thing.
+ if (component[i] instanceof Container)
+ {
+ Container k = (Container) component[i];
+ Component r = k.findComponentAt(x2, y2);
+ if (r != null)
+ return r;
+ }
+ else if (component[i].contains(x2, y2))
+ return component[i];
+ }
+
+ return this;
}
}
@@ -894,9 +915,9 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- for (int i = 0; i < ncomponents; ++i)
- component[i].removeNotify();
- super.removeNotify();
+ for (int i = 0; i < ncomponents; ++i)
+ component[i].removeNotify();
+ super.removeNotify();
}
}
@@ -913,14 +934,14 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- while (true)
- {
- if (comp == null)
- return false;
- if (comp == this)
- return true;
- comp = comp.getParent();
- }
+ while (true)
+ {
+ if (comp == null)
+ return false;
+ if (comp == this)
+ return true;
+ comp = comp.getParent();
+ }
}
}
@@ -950,9 +971,9 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- super.list(out, indent);
- for (int i = 0; i < ncomponents; ++i)
- component[i].list(out, indent + 2);
+ super.list(out, indent);
+ for (int i = 0; i < ncomponents; ++i)
+ component[i].list(out, indent + 2);
}
}
@@ -967,62 +988,93 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- super.list(out, indent);
- for (int i = 0; i < ncomponents; ++i)
- component[i].list(out, indent + 2);
+ super.list(out, indent);
+ for (int i = 0; i < ncomponents; ++i)
+ component[i].list(out, indent + 2);
}
}
public void setFocusTraversalKeys(int id, Set keys)
{
+ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS)
+ throw new IllegalArgumentException ();
}
+
public Set getFocusTraversalKeys(int id)
{
+ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS)
+ throw new IllegalArgumentException ();
+
return null;
}
+
public boolean areFocusTraversalKeysSet(int id)
{
+ if (id != KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS &&
+ id != KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS)
+ throw new IllegalArgumentException ();
+
return false;
}
+
public boolean isFocusCycleRoot(Container c)
{
return false;
}
+
public void transferFocusBackward()
{
}
+
public void setFocusTraversalPolicy(FocusTraversalPolicy policy)
{
}
+
public FocusTraversalPolicy getFocusTraversalPolicy()
{
return null;
}
+
public boolean isFocusTraversalPolicySet()
{
return false;
}
+
public void setFocusCycleRoot(boolean focusCycleRoot)
{
}
+
public boolean isFocusCycleRoot()
{
return false;
}
+
public void transferFocusDownCycle()
{
}
+
public void applyComponentOrientation(ComponentOrientation o)
{
+ if (orientation == null)
+ throw new NullPointerException ();
}
+
public void addPropertyChangeListener(PropertyChangeListener l)
{
}
+
public void addPropertyChangeListener(String name, PropertyChangeListener l)
{
}
-
// Hidden helper methods.
/**
@@ -1044,14 +1096,14 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- for (int i = 0; i < ncomponents; ++i)
- {
- Component comp = component[i];
- boolean applicable = comp.isVisible()
- && (comp.isLightweight() || !lightweightOnly);
-
- if (applicable)
- visitChild(gfx, visitor, comp);
+ for (int i = 0; i < ncomponents; ++i)
+ {
+ Component comp = component[i];
+ boolean applicable = comp.isVisible()
+ && (comp.isLightweight() || !lightweightOnly);
+
+ if (applicable)
+ visitChild(gfx, visitor, comp);
}
}
}
@@ -1100,50 +1152,50 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- int start, end;
- if (child != null)
- {
- for (start = 0; start < ncomponents; ++start)
- {
- if (component[start] == child)
- break;
- }
- end = start;
- // This special case lets us be sure to terminate.
- if (end == 0)
- end = ncomponents;
- ++start;
- }
- else
- {
- start = 0;
- end = ncomponents;
- }
+ int start, end;
+ if (child != null)
+ {
+ for (start = 0; start < ncomponents; ++start)
+ {
+ if (component[start] == child)
+ break;
+ }
+ end = start;
+ // This special case lets us be sure to terminate.
+ if (end == 0)
+ end = ncomponents;
+ ++start;
+ }
+ else
+ {
+ start = 0;
+ end = ncomponents;
+ }
- for (int j = start; j != end; ++j)
- {
- if (j >= ncomponents)
- {
- // The JCL says that we should wrap here. However, that
- // seems wrong. To me it seems that focus order should be
- // global within in given window. So instead if we reach
- // the end we try to look in our parent, if we have one.
- if (parent != null)
- return parent.findNextFocusComponent(this);
- j -= ncomponents;
- }
- if (component[j] instanceof Container)
- {
- Component c = component[j];
- c = c.findNextFocusComponent(null);
- if (c != null)
- return c;
- }
- else if (component[j].isFocusTraversable())
- return component[j];
- }
+ for (int j = start; j != end; ++j)
+ {
+ if (j >= ncomponents)
+ {
+ // The JCL says that we should wrap here. However, that
+ // seems wrong. To me it seems that focus order should be
+ // global within in given window. So instead if we reach
+ // the end we try to look in our parent, if we have one.
+ if (parent != null)
+ return parent.findNextFocusComponent(this);
+ j -= ncomponents;
+ }
+ if (component[j] instanceof Container)
+ {
+ Component c = component[j];
+ c = c.findNextFocusComponent(null);
+ if (c != null)
+ return c;
+ }
+ else if (component[j].isFocusTraversable())
+ return component[j];
+ }
- return null;
+ return null;
}
}
@@ -1151,16 +1203,15 @@ public class Container extends Component
{
synchronized (getTreeLock ())
{
- for (int i = ncomponents; --i >= 0; )
- {
- component[i].addNotify();
- if (component[i].isLightweight())
- enableEvents(component[i].eventMask);
- }
+ for (int i = ncomponents; --i >= 0; )
+ {
+ component[i].addNotify();
+ if (component[i].isLightweight())
+ enableEvents(component[i].eventMask);
+ }
}
}
-
// Nested classes.
/* The following classes are used in concert with the
@@ -1200,6 +1251,7 @@ public class Container extends Component
* This class provides accessibility support for subclasses of container.
*
* @author Eric Blake <ebb9@email.byu.edu>
+ *
* @since 1.3
*/
protected class AccessibleAWTContainer extends AccessibleAWTComponent
@@ -1234,14 +1286,14 @@ public class Container extends Component
public int getAccessibleChildrenCount()
{
synchronized (getTreeLock ())
- {
- int count = 0;
- int i = component == null ? 0 : component.length;
- while (--i >= 0)
- if (component[i] instanceof Accessible)
- count++;
- return count;
- }
+ {
+ int count = 0;
+ int i = component == null ? 0 : component.length;
+ while (--i >= 0)
+ if (component[i] instanceof Accessible)
+ count++;
+ return count;
+ }
}
/**
@@ -1253,17 +1305,17 @@ public class Container extends Component
public Accessible getAccessibleChild(int i)
{
synchronized (getTreeLock ())
- {
- if (component == null)
- return null;
- int index = -1;
- while (i >= 0 && ++index < component.length)
- if (component[index] instanceof Accessible)
- i--;
- if (i < 0)
- return (Accessible) component[index];
- return null;
- }
+ {
+ if (component == null)
+ return null;
+ int index = -1;
+ while (i >= 0 && ++index < component.length)
+ if (component[index] instanceof Accessible)
+ i--;
+ if (i < 0)
+ return (Accessible) component[index];
+ return null;
+ }
}
/**
@@ -1271,7 +1323,9 @@ public class Container extends Component
* coordinates), if one exists.
*
* @param p the point to look at
+ *
* @return an accessible object at that point, or null
+ *
* @throws NullPointerException if p is null
*/
public Accessible getAccessibleAt(Point p)
@@ -1286,6 +1340,7 @@ public class Container extends Component
* when children are added or removed from the enclosing accessible object.
*
* @author Eric Blake <ebb9@email.byu.edu>
+ *
* @since 1.3
*/
protected class AccessibleContainerHandler implements ContainerListener
@@ -1324,7 +1379,6 @@ public class Container extends Component
} // class AccessibleAWTPanel
} // class Container
-
/**
* Undocumented helper class.
* STUBBED
@@ -1339,39 +1393,50 @@ class LightweightDispatcher implements Serializable, AWTEventListener
private transient boolean isMouseInNativeContainer;
private Cursor nativeCursor;
private long eventMask;
+
LightweightDispatcher(Container c)
{
}
+
void dispose()
{
}
+
void enableEvents(long l)
{
}
+
boolean dispatchEvent(AWTEvent e)
{
return true;
}
+
boolean isMouseGrab(MouseEvent e)
{
return true;
}
+
boolean processMouseEvent(MouseEvent e)
{
return true;
}
+
void trackMouseEnterExit(Component c, MouseEvent e)
{
}
+
void startListeningForOtherDrags()
{
}
+
void stopListeningForOtherDrags()
{
}
+
public void eventDispatched(AWTEvent e)
{
}
+
void retargetMouseEvent(Component c, int i, MouseEvent e)
{
}
diff --git a/libjava/java/awt/Cursor.java b/libjava/java/awt/Cursor.java
index 5852b8bbf85..8652a1e5ebe 100644
--- a/libjava/java/awt/Cursor.java
+++ b/libjava/java/awt/Cursor.java
@@ -133,11 +133,14 @@ public class Cursor implements java.io.Serializable
* type.
*
* @param type The cursor type.
+ *
+ * @exception IllegalArgumentException If the specified cursor type is invalid
*/
public Cursor(int type)
{
if (type < 0 || type >= PREDEFINED_COUNT)
throw new IllegalArgumentException ("invalid cursor " + type);
+
this.type = type;
// FIXME: lookup and set name?
}
@@ -171,9 +174,20 @@ public class Cursor implements java.io.Serializable
return predefined[type];
}
+ /**
+ * Retrieves the system specific custom Cursor named Cursor names are,
+ * for example: "Invalid.16x16".
+ *
+ * @exception AWTException
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
+ */
public static Cursor getSystemCustomCursor(String name)
throws AWTException
{
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
+
// FIXME
return null;
}
diff --git a/libjava/java/awt/DisplayMode.java b/libjava/java/awt/DisplayMode.java
index b988e20be5e..533ab5ef482 100644
--- a/libjava/java/awt/DisplayMode.java
+++ b/libjava/java/awt/DisplayMode.java
@@ -1,5 +1,5 @@
/* DisplayMode.java -- a description of display mode configurations
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -140,16 +140,16 @@ public final class DisplayMode
* Test for equality. This returns true for two modes with identical
* parameters.
*
- * @param o the object to compare to
+ * @param dm The display mode to compare to
+ *
* @return true if it is equal
*/
- public boolean equals(Object o)
+ public boolean equals (DisplayMode dm)
{
- if (! (o instanceof DisplayMode))
- return false;
- DisplayMode m = (DisplayMode) o;
- return width == m.width && height == m.height && bitDepth == m.bitDepth
- && refreshRate == m.refreshRate;
+ return (width == dm.width
+ && height == dm.height
+ && bitDepth == dm.bitDepth
+ && refreshRate == dm.refreshRate);
}
/**
diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java
index 1ce3d163181..6b64fb7ee3b 100644
--- a/libjava/java/awt/EventQueue.java
+++ b/libjava/java/awt/EventQueue.java
@@ -151,6 +151,8 @@ public class EventQueue
* Posts a new event to the queue.
*
* @param event The event to post to the queue.
+ *
+ * @exception NullPointerException If event is null.
*/
public synchronized void postEvent(AWTEvent evt)
{
@@ -209,7 +211,19 @@ public class EventQueue
notify();
}
- /** @since JDK1.2 */
+ /**
+ * Causes runnable to have its run method called in the dispatch thread of the
+ * EventQueue. This will happen after all pending events are processed. The
+ * call blocks until this has happened. This method will throw an Error if
+ * called from the event dispatcher thread.
+ *
+ * @exception InterruptedException If another thread has interrupted
+ * this thread.
+ * @exception InvocationTargetException If an exception is thrown when running
+ * runnable.
+ *
+ * @since 1.2
+ */
public static void invokeAndWait(Runnable runnable)
throws InterruptedException, InvocationTargetException
{
@@ -254,6 +268,8 @@ public class EventQueue
* All pending events are transferred to the new queue. Calls to postEvent,
* getNextEvent, and peekEvent are forwarded to the pushed queue until it
* is removed with a pop().
+ *
+ * @exception NullPointerException if newEventQueue is null.
*/
public synchronized void push(EventQueue newEventQueue)
{
@@ -271,7 +287,11 @@ public class EventQueue
}
/** Transfer any pending events from this queue back to the parent queue that
- * was previously push()ed. Event dispatch from this queue is suspended. */
+ * was previously push()ed. Event dispatch from this queue is suspended.
+ *
+ * @exception EmptyStackException If no previous push was made on this
+ * EventQueue.
+ */
protected void pop() throws EmptyStackException
{
if (prev == null)
@@ -297,6 +317,12 @@ public class EventQueue
}
}
+ /**
+ * Dispatches an event. The manner in which the event is dispatched depends
+ * upon the type of the event and the type of the event's source object.
+ *
+ * @exception NullPointerException If event is null.
+ */
protected void dispatchEvent(AWTEvent evt)
{
if (evt instanceof ActiveEvent)
diff --git a/libjava/java/awt/FileDialog.java b/libjava/java/awt/FileDialog.java
index 2019572d5f6..764424c82c3 100644
--- a/libjava/java/awt/FileDialog.java
+++ b/libjava/java/awt/FileDialog.java
@@ -142,16 +142,15 @@ FileDialog(Frame parent, String title)
* @param title The title for this dialog.
* @param mode The mode of the dialog, either <code>LOAD</code> or
* <code>SAVE</code>.
+ *
+ * @exception IllegalArgumentException If an illegal file dialog mode
+ * is supplied.
*/
public
FileDialog(Frame parent, String title, int mode)
{
super(parent, title, true);
-
- if ((mode != LOAD) && (mode != SAVE))
- throw new IllegalArgumentException("Bad mode: " + mode);
-
- this.mode = mode;
+ setMode (mode);
}
/*************************************************************************/
@@ -180,6 +179,9 @@ getMode()
* peer is created.
*
* @param mode The new mode of this file dialog.
+ *
+ * @exception IllegalArgumentException If an illegal file dialog mode
+ * is supplied.
*/
public void
setMode(int mode)
diff --git a/libjava/java/awt/Graphics2D.java b/libjava/java/awt/Graphics2D.java
index 879fae5ad51..ed80936bfcb 100644
--- a/libjava/java/awt/Graphics2D.java
+++ b/libjava/java/awt/Graphics2D.java
@@ -38,6 +38,7 @@ package java.awt;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
+import java.awt.image.BufferedImageOp;
import java.awt.image.RenderedImage;
import java.awt.image.ImageObserver;
import java.awt.image.renderable.RenderableImage;
@@ -74,7 +75,7 @@ public abstract class Graphics2D extends Graphics
ImageObserver obs);
public abstract void drawImage(BufferedImage image,
- BufferedImage op,
+ BufferedImageOp op,
int x,
int y);
diff --git a/libjava/java/awt/Label.java b/libjava/java/awt/Label.java
index 36ea45b944a..4f248c30bb9 100644
--- a/libjava/java/awt/Label.java
+++ b/libjava/java/awt/Label.java
@@ -40,6 +40,8 @@ package java.awt;
import java.awt.peer.LabelPeer;
import java.awt.peer.ComponentPeer;
+import java.io.Serializable;
+import javax.accessibility.Accessible;
/**
* This component is used for displaying simple text strings that cannot
@@ -48,7 +50,7 @@ import java.awt.peer.ComponentPeer;
* @author Aaron M. Renn (arenn@urbanophile.com)
* @author Tom Tromey <tromey@cygnus.com>
*/
-public class Label extends Component implements java.io.Serializable
+public class Label extends Component implements Serializable, Accessible
{
/*
@@ -99,6 +101,8 @@ private String text;
/**
* Initializes a new instance of <code>Label</code> with no text.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Label()
@@ -113,6 +117,8 @@ Label()
* text that is aligned to the left.
*
* @param text The text of the label.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Label(String text)
@@ -130,12 +136,17 @@ Label(String text)
* @param alignment The desired alignment for the text in this label,
* which must be one of <code>LEFT</code>, <code>CENTER</code>, or
* <code>RIGHT</code>.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Label(String text, int alignment)
{
setAlignment (alignment);
setText (text);
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/List.java b/libjava/java/awt/List.java
index f2c6d078832..561a30d4dab 100644
--- a/libjava/java/awt/List.java
+++ b/libjava/java/awt/List.java
@@ -46,13 +46,15 @@ import java.awt.event.ItemListener;
import java.awt.peer.ListPeer;
import java.awt.peer.ComponentPeer;
import java.util.Vector;
+import javax.accessibility.Accessible;
/**
* Class that implements a listbox widget
*
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
-public class List extends Component implements ItemSelectable, Serializable
+public class List extends Component
+ implements ItemSelectable, Serializable, Accessible
{
/*
@@ -113,6 +115,8 @@ private ActionListener action_listeners;
/**
* Initializes a new instance of <code>List</code> with no visible lines
* and multi-select disabled.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
List()
@@ -127,6 +131,8 @@ List()
* number of visible lines and multi-select disabled.
*
* @param lines The number of visible lines in the list.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
List(int rows)
@@ -143,12 +149,17 @@ List(int rows)
* @param lines The number of visible lines in the list.
* @param multipleMode <code>true</code> if multiple lines can be selected
* simultaneously, <code>false</code> otherwise.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
List(int rows, boolean multipleMode)
{
this.rows = rows;
this.multipleMode = multipleMode;
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java
index 18d63be7490..326101b76e5 100644
--- a/libjava/java/awt/Menu.java
+++ b/libjava/java/awt/Menu.java
@@ -95,6 +95,8 @@ static final MenuItem separator = new MenuItem("-");
/**
* Initializes a new instance of <code>Menu</code> with no label and that
* is not a tearoff;
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Menu()
@@ -108,6 +110,8 @@ Menu()
* that has the specified label.
*
* @param label The menu label.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Menu(String label)
@@ -124,6 +128,8 @@ Menu(String label)
* @param label The label for this menu
* @param isTearOff <code>true</code> if this menu is a tear off menu,
* <code>false</code> otherwise.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
Menu(String label, boolean isTearOff)
@@ -134,6 +140,9 @@ Menu(String label, boolean isTearOff)
if (label.equals("Help"))
isHelpMenu = true;
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java
index 2e1a9636155..b9ddef9aa1b 100644
--- a/libjava/java/awt/MenuBar.java
+++ b/libjava/java/awt/MenuBar.java
@@ -86,10 +86,14 @@ private Vector menus = new Vector();
/**
* Initializes a new instance of <code>MenuBar</code>.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
MenuBar()
{
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/MenuComponent.java b/libjava/java/awt/MenuComponent.java
index b9c6ea020f1..548aa77937a 100644
--- a/libjava/java/awt/MenuComponent.java
+++ b/libjava/java/awt/MenuComponent.java
@@ -92,10 +92,14 @@ private static transient Toolkit toolkit = Toolkit.getDefaultToolkit();
/**
* Default constructor for subclasses.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected
MenuComponent()
{
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/PopupMenu.java b/libjava/java/awt/PopupMenu.java
index 9553b87f10a..d0f1980472b 100644
--- a/libjava/java/awt/PopupMenu.java
+++ b/libjava/java/awt/PopupMenu.java
@@ -65,6 +65,9 @@ private static final long serialVersionUID = -4620452533522760060L;
/**
* Initializes a new instance of <code>PopupMenu</code>.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
*/
public
PopupMenu()
@@ -78,11 +81,17 @@ PopupMenu()
* label.
*
* @param label The label for this popup menu.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless()
+ * returns true.
*/
public
PopupMenu(String label)
{
super(label);
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/ScrollPane.java b/libjava/java/awt/ScrollPane.java
index e558d0bc23f..045600cddf2 100644
--- a/libjava/java/awt/ScrollPane.java
+++ b/libjava/java/awt/ScrollPane.java
@@ -41,6 +41,8 @@ package java.awt;
import java.awt.peer.ScrollPanePeer;
import java.awt.peer.ContainerPeer;
import java.awt.peer.ComponentPeer;
+import java.io.Serializable;
+import javax.accessibility.Accessible;
/**
* This widget provides a scrollable region that allows a single
@@ -48,7 +50,7 @@ import java.awt.peer.ComponentPeer;
*
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
-public class ScrollPane extends Container implements java.io.Serializable
+public class ScrollPane extends Container implements Accessible, Serializable
{
/*
@@ -113,6 +115,8 @@ private Point scrollPosition = new Point(0, 0);
/**
* Initializes a new instance of <code>ScrollPane</code> with a default
* scrollbar policy of <code>SCROLLBARS_AS_NEEDED</code>.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
ScrollPane()
@@ -128,10 +132,15 @@ ScrollPane()
*
* @param scrollbarDisplayPolicy When to display scrollbars, which must
* be one of the constants defined in this class.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public
ScrollPane(int scrollbarDisplayPolicy)
{
+ if (GraphicsEnvironment.isHeadless ())
+ throw new HeadlessException ();
+
this.scrollbarDisplayPolicy = scrollbarDisplayPolicy;
if (scrollbarDisplayPolicy != SCROLLBARS_ALWAYS
diff --git a/libjava/java/awt/Scrollbar.java b/libjava/java/awt/Scrollbar.java
index 1f1875955bf..4bdc3166ad9 100644
--- a/libjava/java/awt/Scrollbar.java
+++ b/libjava/java/awt/Scrollbar.java
@@ -1,5 +1,5 @@
/* Scrollbar.java -- AWT Scrollbar widget
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,9 +40,10 @@ package java.awt;
import java.awt.peer.ScrollbarPeer;
import java.awt.peer.ComponentPeer;
-
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;
+import java.io.Serializable;
+import javax.accessibility.Accessible;
/**
* This class implements a scrollbar widget.
@@ -50,8 +51,9 @@ import java.awt.event.AdjustmentEvent;
* @author Aaron M. Renn (arenn@urbanophile.com)
* @author Tom Tromey <tromey@cygnus.com>
*/
-public class Scrollbar extends Component implements Adjustable,
- java.io.Serializable
+public class Scrollbar extends Component implements Accessible,
+ Adjustable,
+ Serializable
{
// FIXME: Serialization readObject/writeObject
@@ -126,7 +128,9 @@ private AdjustmentListener adjustment_listeners;
/**
* Initializes a new instance of <code>Scrollbar</code> with a
- * veritical orientation and default values for all other parameters.
+ * vertical orientation and default values for all other parameters.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
Scrollbar()
@@ -145,6 +149,7 @@ Scrollbar()
*
* @param orientation The orientation of this scrollbar.
*
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
* @exception IllegalArgumentException If the orientation value is not valid.
*/
public
@@ -168,12 +173,16 @@ Scrollbar(int orientation) throws IllegalArgumentException
* @param minimum The minimum value of the scrollbar.
* @param maximum The maximum value of the scrollbar.
*
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
* @exception IllegalArgumentException If the orientation value is not valid.
*/
public
Scrollbar(int orientation, int value, int visibleAmount, int minimum,
int maximum) throws IllegalArgumentException
{
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
+
if ((orientation != HORIZONTAL) && (orientation != VERTICAL))
throw new IllegalArgumentException("Bad orientation value: "
+ orientation);
diff --git a/libjava/java/awt/TextArea.java b/libjava/java/awt/TextArea.java
index 799656ec554..f164add49a1 100644
--- a/libjava/java/awt/TextArea.java
+++ b/libjava/java/awt/TextArea.java
@@ -109,6 +109,8 @@ private int scrollbarVisibility;
* Initialize a new instance of <code>TextArea</code> that is empty
* and is one row and one column. Both horizontal and vertical
* scrollbars will be used.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextArea()
@@ -124,6 +126,8 @@ TextArea()
* scrollbars will be used.
*
* @param text The text to display in this text area.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextArea(String text)
@@ -140,6 +144,8 @@ TextArea(String text)
*
* @param rows The number of rows in this text area.
* @param columns The number of columns in this text area.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextArea(int rows, int columns)
@@ -156,6 +162,8 @@ TextArea(int rows, int columns)
* @param text The text to display in this text area.
* @param rows The number of rows in this text area.
* @param columns The number of columns in this text area.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextArea(String text, int rows, int columns)
@@ -174,12 +182,17 @@ TextArea(String text, int rows, int columns)
* @param rows The number of rows in this text area.
* @param columns The number of columns in this text area.
* @param scrollbarVisibility Which scrollbars to display.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextArea(String text, int rows, int columns, int scrollbarVisibility)
{
super(text);
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
+
if ((rows < 1) || (columns < 0))
throw new IllegalArgumentException("Bad row or column value");
diff --git a/libjava/java/awt/TextComponent.java b/libjava/java/awt/TextComponent.java
index 5ba80edc1da..6dc904cc8b1 100644
--- a/libjava/java/awt/TextComponent.java
+++ b/libjava/java/awt/TextComponent.java
@@ -291,10 +291,18 @@ getCaretPosition()
* Sets the caret position to the specified value.
*
* @param caretPosition The new caret position.
+ *
+ * @exception IllegalArgumentException If the value supplied for position
+ * is less than zero.
+ *
+ * @since 1.1
*/
public synchronized void
setCaretPosition(int caretPosition)
{
+ if (caretPosition < 0)
+ throw new IllegalArgumentException ();
+
TextComponentPeer tcp = (TextComponentPeer)getPeer();
if (tcp != null)
tcp.setCaretPosition(caretPosition);
diff --git a/libjava/java/awt/TextField.java b/libjava/java/awt/TextField.java
index 28d444ce95f..0106d77e3ad 100644
--- a/libjava/java/awt/TextField.java
+++ b/libjava/java/awt/TextField.java
@@ -84,9 +84,11 @@ private ActionListener action_listeners;
* Constructors
*/
-/*
+/**
* Initializes a new instance of <code>TextField</code> that is empty
* and has one column.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextField()
@@ -102,6 +104,8 @@ TextField()
* length of the text string.
*
* @param text The text to display in the field.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextField(String text)
@@ -116,6 +120,8 @@ TextField(String text)
* and has the specified number of columns.
*
* @param columns The number of columns in the text field.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextField(int columns)
@@ -131,12 +137,17 @@ TextField(int columns)
*
* @param text The text to display in the field.
* @param columns The number of columns in the field.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
*/
public
TextField(String text, int columns)
{
super(text);
this.columns = columns;
+
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
/*************************************************************************/
diff --git a/libjava/java/awt/Toolkit.java b/libjava/java/awt/Toolkit.java
index fb5e020a29e..da9bc0e4e4b 100644
--- a/libjava/java/awt/Toolkit.java
+++ b/libjava/java/awt/Toolkit.java
@@ -123,7 +123,10 @@ public abstract class Toolkit
* Creates a peer object for the specified <code>Button</code>.
*
* @param target The <code>Button</code> to create the peer for.
+ *
* @return The peer for the specified <code>Button</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract ButtonPeer createButton(Button target);
@@ -132,6 +135,8 @@ public abstract class Toolkit
*
* @param target The <code>TextField</code> to create the peer for.
* @return The peer for the specified <code>TextField</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract TextFieldPeer createTextField(TextField target);
@@ -140,6 +145,8 @@ public abstract class Toolkit
*
* @param target The <code>Label</code> to create the peer for.
* @return The peer for the specified <code>Label</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract LabelPeer createLabel(Label target);
@@ -148,6 +155,8 @@ public abstract class Toolkit
*
* @param target The <code>List</code> to create the peer for.
* @return The peer for the specified <code>List</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract ListPeer createList(List target);
@@ -156,6 +165,8 @@ public abstract class Toolkit
*
* @param target The <code>Checkbox</code> to create the peer for.
* @return The peer for the specified <code>Checkbox</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract CheckboxPeer createCheckbox(Checkbox target);
@@ -164,6 +175,8 @@ public abstract class Toolkit
*
* @param target The <code>Scrollbar</code> to create the peer for.
* @return The peer for the specified <code>Scrollbar</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract ScrollbarPeer createScrollbar(Scrollbar target);
@@ -172,6 +185,8 @@ public abstract class Toolkit
*
* @param target The <code>ScrollPane</code> to create the peer for.
* @return The peer for the specified <code>ScrollPane</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract ScrollPanePeer createScrollPane(ScrollPane target);
@@ -180,6 +195,8 @@ public abstract class Toolkit
*
* @param target The <code>TextArea</code> to create the peer for.
* @return The peer for the specified <code>TextArea</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract TextAreaPeer createTextArea(TextArea target);
@@ -188,6 +205,8 @@ public abstract class Toolkit
*
* @param target The <code>Choice</code> to create the peer for.
* @return The peer for the specified <code>Choice</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract ChoicePeer createChoice(Choice target);
@@ -196,6 +215,8 @@ public abstract class Toolkit
*
* @param target The <code>Frame</code> to create the peer for.
* @return The peer for the specified <code>Frame</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract FramePeer createFrame(Frame target);
@@ -220,6 +241,8 @@ public abstract class Toolkit
*
* @param target The <code>Window</code> to create the peer for.
* @return The peer for the specified <code>Window</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract WindowPeer createWindow(Window target);
@@ -228,6 +251,8 @@ public abstract class Toolkit
*
* @param target The dialog to create the peer for
* @return The peer for the specified font name.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract DialogPeer createDialog(Dialog target);
@@ -236,6 +261,8 @@ public abstract class Toolkit
*
* @param target The <code>MenuBar</code> to create the peer for.
* @return The peer for the specified <code>MenuBar</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract MenuBarPeer createMenuBar(MenuBar target);
@@ -244,6 +271,8 @@ public abstract class Toolkit
*
* @param target The <code>Menu</code> to create the peer for.
* @return The peer for the specified <code>Menu</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract MenuPeer createMenu(Menu target);
@@ -252,6 +281,8 @@ public abstract class Toolkit
*
* @param target The <code>PopupMenu</code> to create the peer for.
* @return The peer for the specified <code>PopupMenu</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract PopupMenuPeer createPopupMenu(PopupMenu target);
@@ -260,6 +291,8 @@ public abstract class Toolkit
*
* @param target The <code>MenuItem</code> to create the peer for.
* @return The peer for the specified <code>MenuItem</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract MenuItemPeer createMenuItem(MenuItem target);
@@ -268,6 +301,8 @@ public abstract class Toolkit
*
* @param target The <code>FileDialog</code> to create the peer for.
* @return The peer for the specified <code>FileDialog</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract FileDialogPeer createFileDialog(FileDialog target);
@@ -276,6 +311,8 @@ public abstract class Toolkit
*
* @param target The <code>CheckboxMenuItem</code> to create the peer for.
* @return The peer for the specified <code>CheckboxMenuItem</code> object.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected abstract CheckboxMenuItemPeer
createCheckboxMenuItem(CheckboxMenuItem target);
@@ -310,6 +347,8 @@ public abstract class Toolkit
* the interface used by the <code>SystemColors</code> class.
*
* @param colors The array to copy the system colors into.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected void loadSystemColors(int systemColors[])
{
@@ -318,6 +357,8 @@ public abstract class Toolkit
/**
* @since 1.4
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public void setDynamicLayout(boolean dynamic)
{
@@ -325,6 +366,8 @@ public abstract class Toolkit
/**
* @since 1.4
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
protected boolean isDynamicLayoutSet()
{
@@ -333,6 +376,8 @@ public abstract class Toolkit
/**
* @since 1.4
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public boolean isDynamicLayoutActive()
{
@@ -343,6 +388,8 @@ public abstract class Toolkit
* Returns the dimensions of the screen in pixels.
*
* @return The dimensions of the screen in pixels.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public abstract Dimension getScreenSize();
@@ -350,10 +397,14 @@ public abstract class Toolkit
* Returns the screen resolution in dots per square inch.
*
* @return The screen resolution in dots per square inch.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public abstract int getScreenResolution();
/**
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+ *
* @since 1.4
*/
public Insets getScreenInsets(GraphicsConfiguration gc)
@@ -396,6 +447,7 @@ public abstract class Toolkit
* if the property is not set.
*
* @return An instance of the system default toolkit.
+ *
* @throws AWTError If the toolkit cannot be loaded.
*/
public static Toolkit getDefaultToolkit()
@@ -450,6 +502,7 @@ public abstract class Toolkit
* @param height The height of the image.
* @param observer The observer to receive events about the preparation
* process.
+ *
* @return <code>true</code> if the image is already prepared for rendering,
* <code>false</code> otherwise.
*/
@@ -465,6 +518,7 @@ public abstract class Toolkit
* @param height The height of the image.
* @param observer The observer to receive events about the preparation
* process.
+ *
* @return A union of the bitmasks from
* <code>java.awt.image.ImageObserver</code> that indicates the current
* state of the imaging readying process.
@@ -476,6 +530,7 @@ public abstract class Toolkit
* Creates an image using the specified <code>ImageProducer</code>
*
* @param producer The <code>ImageProducer</code> to create the image from.
+ *
* @return The created image.
*/
public abstract Image createImage(ImageProducer producer);
@@ -485,6 +540,7 @@ public abstract class Toolkit
* a recognized format. Supported formats vary from toolkit to toolkit.
*
* @param data The raw image data.
+ *
* @return The created image.
*/
public Image createImage(byte[] data)
@@ -500,6 +556,7 @@ public abstract class Toolkit
* @param data The raw image data.
* @param offset The offset into the data where the image data starts.
* @param len The length of the image data.
+ *
* @return The created image.
*/
public abstract Image createImage(byte[] data, int offset, int len);
@@ -511,6 +568,7 @@ public abstract class Toolkit
* @param frame The window initiating the print job.
* @param title The print job title.
* @param props The print job properties.
+ *
* @return The requested print job, or <code>null</code> if the job
* was cancelled.
*/
@@ -536,10 +594,14 @@ public abstract class Toolkit
* Returns the system clipboard.
*
* @return THe system clipboard.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public abstract Clipboard getSystemClipboard();
/**
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+ *
* @since 1.4
*/
public Clipboard getSystemSelection()
@@ -553,6 +615,8 @@ public abstract class Toolkit
* to change the default.
*
* @return The key mask for the menu accelerator key.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
*/
public int getMenuShortcutKeyMask()
{
diff --git a/libjava/java/awt/Window.java b/libjava/java/awt/Window.java
index b8befaf0507..31e6b573f53 100644
--- a/libjava/java/awt/Window.java
+++ b/libjava/java/awt/Window.java
@@ -86,32 +86,56 @@ public class Window extends Container
* parent. The window will initially be invisible.
*
* @param parent The owning <code>Frame</code> of this window.
+ *
+ * @exception IllegalArgumentException If the owner's GraphicsConfiguration
+ * is not from a screen device, or if owner is null; this exception is always
+ * thrown when GraphicsEnvironment.isHeadless returns true.
*/
public Window(Frame owner)
{
- this((Window) owner);
+ this (owner, owner.getGraphicsConfiguration ());
}
- /** @since 1.2 */
+ /**
+ * Initializes a new instance of <code>Window</code> with the specified
+ * parent. The window will initially be invisible.
+ *
+ * @exception IllegalArgumentException If the owner's GraphicsConfiguration
+ * is not from a screen device, or if owner is null; this exception is always
+ * thrown when GraphicsEnvironment.isHeadless returns true.
+ *
+ * @since 1.2
+ */
public Window(Window owner)
{
- this();
- if (owner == null)
- throw new IllegalArgumentException("owner must not be null");
-
- this.parent = owner;
-
- // FIXME: add to owner's "owned window" list
- //owner.owned.add(this); // this should be a weak reference
+ this (owner, owner.getGraphicsConfiguration ());
}
- /** @since 1.3 */
+ /**
+ * Initializes a new instance of <code>Window</code> with the specified
+ * parent. The window will initially be invisible.
+ *
+ * @exception IllegalArgumentException If owner is null or if gc is not from a
+ * screen device; this exception is always thrown when
+ * GraphicsEnvironment.isHeadless returns true.
+ *
+ * @since 1.3
+ */
public Window(Window owner, GraphicsConfiguration gc)
{
- this(owner);
+ this ();
+
+ if (owner == null)
+ throw new IllegalArgumentException ("owner must not be null");
+ this.parent = owner;
+
+ // FIXME: add to owner's "owned window" list
+ //owner.owned.add(this); // this should be a weak reference
+
/* FIXME: Security check
SecurityManager.checkTopLevelWindow(...)
+ */
if (gc != null
&& gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN)
@@ -119,11 +143,10 @@ public class Window extends Container
if (gc == null)
graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
- .getDefaultScreenDevice()
- .getDefaultConfiguration();
+ .getDefaultScreenDevice()
+ .getDefaultConfiguration();
else
- */
- graphicsConfiguration = gc;
+ graphicsConfiguration = gc;
}
GraphicsConfiguration getGraphicsConfigurationImpl()
@@ -134,6 +157,12 @@ public class Window extends Container
return super.getGraphicsConfigurationImpl();
}
+ /**
+ * Disposes of the input methods and context, and removes the WeakReference
+ * which formerly pointed to this Window from the parent's owned Window list.
+ *
+ * @exception Throwable The Exception raised by this method.
+ */
protected void finalize() throws Throwable
{
// FIXME: remove from owner's "owned window" list (Weak References)
@@ -185,7 +214,7 @@ public class Window extends Container
public void hide()
{
- // FIXME: call hide() on amy "owned" children here.
+ // FIXME: call hide() on any "owned" children here.
super.hide();
}
@@ -233,8 +262,8 @@ public class Window extends Container
{
if (peer != null)
{
- WindowPeer wp = (WindowPeer) peer;
- wp.toFront();
+ WindowPeer wp = (WindowPeer) peer;
+ wp.toFront();
}
}
@@ -265,12 +294,12 @@ public class Window extends Container
if (!secure)
{
if (warningString != null)
- return warningString;
- else
- {
- String warning = System.getProperty("awt.appletWarning");
- return warning;
- }
+ return warningString;
+ else
+ {
+ String warning = System.getProperty("awt.appletWarning");
+ return warning;
+ }
}
return null;
}
@@ -338,6 +367,11 @@ public class Window extends Container
windowListener = AWTEventMulticaster.remove(windowListener, listener);
}
+ /**
+ * Returns an array of all the window listeners registered on this window.
+ *
+ * @since 1.4
+ */
public synchronized WindowListener[] getWindowListeners()
{
return (WindowListener[])
@@ -345,7 +379,16 @@ public class Window extends Container
WindowListener.class);
}
- /** @since 1.3 */
+ /**
+ * Returns an array of all the objects currently registered as FooListeners
+ * upon this Window. FooListeners are registered using the addFooListener
+ * method.
+ *
+ * @exception ClassCastException If listenerType doesn't specify a class or
+ * interface that implements java.util.EventListener.
+ *
+ * @since 1.3
+ */
public EventListener[] getListeners(Class listenerType)
{
if (listenerType == WindowListener.class)
diff --git a/libjava/java/awt/color/CMMException.java b/libjava/java/awt/color/CMMException.java
index 0d146e6c6eb..a0948ef27eb 100644
--- a/libjava/java/awt/color/CMMException.java
+++ b/libjava/java/awt/color/CMMException.java
@@ -44,7 +44,7 @@ package java.awt.color;
* @author Eric Blake <ebb9@email.byu.edu>
* @status updated to 1.4
*/
-public class CMMException extends Exception
+public class CMMException extends RuntimeException
{
/**
* Compatible with JDK 1.2+.
diff --git a/libjava/java/awt/color/ColorSpace.java b/libjava/java/awt/color/ColorSpace.java
index 4f68fabcb7b..8bf0a8196c0 100644
--- a/libjava/java/awt/color/ColorSpace.java
+++ b/libjava/java/awt/color/ColorSpace.java
@@ -46,7 +46,7 @@ import java.io.Serializable;
* @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
* @since 1.2
*/
-public abstract class ColorSpace
+public abstract class ColorSpace implements Serializable
{
/**
* Compatible with JDK 1.2+.
@@ -131,6 +131,13 @@ public abstract class ColorSpace
return false;
}
+ /**
+ * Transforms a color value assumed to be in this ColorSpace into a value in
+ * the default CS_sRGB color space.
+ *
+ * @exception ArrayIndexOutOfBoundsException If array length is not at least
+ * the number of components in this ColorSpace.
+ */
public abstract float[] toRGB(float[] colorvalue);
public abstract float[] fromRGB(float[] rgbvalue);
diff --git a/libjava/java/awt/color/ICC_ColorSpace.java b/libjava/java/awt/color/ICC_ColorSpace.java
index 1a144dbfbd2..2b7016742c9 100644
--- a/libjava/java/awt/color/ICC_ColorSpace.java
+++ b/libjava/java/awt/color/ICC_ColorSpace.java
@@ -81,6 +81,12 @@ public class ICC_ColorSpace extends ColorSpace
*/
private boolean needScaleInit;
+ /**
+ * Constructs a new ICC_ColorSpace from an ICC_Profile object.
+ *
+ * @exception IllegalArgumentException If profile is inappropriate for
+ * representing a ColorSpace.
+ */
public ICC_ColorSpace(ICC_Profile profile)
{
super(CS_sRGB, profile.getNumComponents());
@@ -92,18 +98,45 @@ public class ICC_ColorSpace extends ColorSpace
return thisProfile;
}
+ /**
+ * Transforms a color value assumed to be in this ColorSpace into a value in
+ * the default CS_sRGB color space.
+ *
+ * @exception ArrayIndexOutOfBoundsException If array length is not at least
+ * the number of components in this ColorSpace.
+ */
public float[] toRGB(float[] colorvalue)
{
+ if (colorvalue.length < numComponents)
+ throw new IllegalArgumentException ();
+
// FIXME: Always assumes sRGB:
return colorvalue;
}
+ /**
+ * Transforms a color value assumed to be in the default CS_sRGB color space
+ * into this ColorSpace.
+ *
+ * @exception ArrayIndexOutOfBoundsException If array length is not at
+ * least 3.
+ */
public float[] fromRGB(float[] rgbvalue)
{
+ if (rgbvalue.length < 3)
+ throw new IllegalArgumentException ();
+
// FIXME: Always assumes sRGB:
return rgbvalue;
}
+ /**
+ * Transforms a color value assumed to be in this ColorSpace into the
+ * CS_CIEXYZ conversion color space.
+ *
+ * @exception ArrayIndexOutOfBoundsException If array length is not at
+ * least the number of components in this ColorSpace.
+ */
public float[] toCIEXYZ(float[] colorvalue)
{
// FIXME: Not implemented
diff --git a/libjava/java/awt/color/ICC_Profile.java b/libjava/java/awt/color/ICC_Profile.java
index 7adaac06472..eb534ebffca 100644
--- a/libjava/java/awt/color/ICC_Profile.java
+++ b/libjava/java/awt/color/ICC_Profile.java
@@ -245,7 +245,7 @@ public class ICC_Profile implements Serializable
write(new FileOutputStream(filename));
}
- public void write(OutputStream out)
+ public void write(OutputStream out) throws IOException
{
throw new Error("not implemented");
}
diff --git a/libjava/java/awt/color/ProfileDataException.java b/libjava/java/awt/color/ProfileDataException.java
index 130781faf9b..89f47a207e1 100644
--- a/libjava/java/awt/color/ProfileDataException.java
+++ b/libjava/java/awt/color/ProfileDataException.java
@@ -45,7 +45,7 @@ package java.awt.color;
* @author Eric Blake <ebb9@email.byu.edu>
* @status updated to 1.4
*/
-public class ProfileDataException extends Exception
+public class ProfileDataException extends RuntimeException
{
/**
* Compatible with JDK 1.2+.
diff --git a/libjava/java/awt/datatransfer/Clipboard.java b/libjava/java/awt/datatransfer/Clipboard.java
index 6ef9e70b6aa..93bba7c1a3d 100644
--- a/libjava/java/awt/datatransfer/Clipboard.java
+++ b/libjava/java/awt/datatransfer/Clipboard.java
@@ -103,6 +103,8 @@ getName()
* Returns the contents of the clipboard.
*
* @param requestor The object requesting the contents.
+ *
+ * @exception IllegalStateException If the clipboard is currently unavailable
*/
public synchronized Transferable
getContents(Object requestor)
@@ -120,6 +122,8 @@ getContents(Object requestor)
*
* @param contents The new clipboard contents.
* @param owner The new clipboard owner
+ *
+ * @exception IllegalStateException If the clipboard is currently unavailable
*/
public synchronized void
setContents(Transferable contents, ClipboardOwner owner)
diff --git a/libjava/java/awt/datatransfer/DataFlavor.java b/libjava/java/awt/datatransfer/DataFlavor.java
index 85f6ae5d455..e1500a7926c 100644
--- a/libjava/java/awt/datatransfer/DataFlavor.java
+++ b/libjava/java/awt/datatransfer/DataFlavor.java
@@ -281,6 +281,7 @@ DataFlavor(Class representationClass, String humanPresentableName)
*
* @exception IllegalArgumentException If the representation class
* specified cannot be loaded.
+ * @exception ClassNotFoundException If the class is not loaded.
*/
public
DataFlavor(String mimeType, String humanPresentableName,
@@ -504,6 +505,8 @@ setHumanPresentableName(String humanPresentableName)
*
* @return <code>true</code> if the MIME type is equal to this object's
* MIME type, <code>false</code> otherwise.
+ *
+ * @exception NullPointerException If mimeType is null.
*/
public final boolean
isMimeTypeEqual(String mimeType)
@@ -652,6 +655,10 @@ isFlavorJavaFileListType()
* Returns a copy of this object.
*
* @return A copy of this object.
+ *
+ * @exception CloneNotSupportedException If the object's class does not support
+ * the Cloneable interface. Subclasses that override the clone method can also
+ * throw this exception to indicate that an instance cannot be cloned.
*/
public Object
clone()
@@ -813,6 +820,8 @@ normalizeMimeType(String type)
* Serialize this class.
*
* @param stream The <code>ObjectOutput</code> stream to serialize to.
+ *
+ * @exception IOException If an error occurs.
*/
public void
writeExternal(ObjectOutput stream) throws IOException
@@ -826,6 +835,10 @@ writeExternal(ObjectOutput stream) throws IOException
* De-serialize this class.
*
* @param stream The <code>ObjectInput</code> stream to deserialize from.
+ *
+ * @exception IOException If an error ocurs.
+ * @exception ClassNotFoundException If the class for an object being restored
+ * cannot be found.
*/
public void
readExternal(ObjectInput stream) throws IOException, ClassNotFoundException
@@ -950,6 +963,10 @@ selectBestTextFlavor(DataFlavor[] availableFlavors)
*
* @param transferable The <code>Transferable</code> for which a text
* <code>Reader</code> is requested.
+ *
+ * @exception IllegalArgumentException If the representation class is not one
+ * of the seven listed above or the Transferable has null data.
+ * @exception NullPointerException If the Transferable is null.
* @exception UnsupportedFlavorException when the transferable doesn't
* support this <code>DataFlavor</code>. Or if the representable class
* isn't a (subclass of) <code>Reader</code>, <code>String</code>,
diff --git a/libjava/java/awt/datatransfer/FlavorMap.java b/libjava/java/awt/datatransfer/FlavorMap.java
index 96b160842d9..a3926150631 100644
--- a/libjava/java/awt/datatransfer/FlavorMap.java
+++ b/libjava/java/awt/datatransfer/FlavorMap.java
@@ -41,42 +41,35 @@ package java.awt.datatransfer;
import java.util.Map;
/**
- * This interface maps between native platform type names and DataFlavors.
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
+ * This interface maps between native platform type names and DataFlavors.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ */
public interface FlavorMap
{
+ /**
+ * Maps the specified <code>DataFlavor</code> objects to the native
+ * data type name. The returned <code>Map</code> has keys that are
+ * the data flavors and values that are strings. The returned map
+ * may be modified. This can be useful for implementing nested mappings.
+ *
+ * @param flavors An array of data flavors to map
+ * or null for all data flavors.
+ *
+ * @return A <code>Map</code> of native data types.
+ */
+ public abstract Map getNativesForFlavors (DataFlavor[] flavors);
-/**
- * Maps the specified <code>DataFlavor</code> objects to the native
- * data type name. The returned <code>Map</code> has keys that are
- * the data flavors and values that are strings. The returned map
- * may be modified. This can be useful for implementing nested mappings.
- *
- * @param flavors An array of data flavors to map
- * or null for all data flavors.
- *
- * @return A <code>Map</code> of native data types.
- */
-public abstract Map
-getNativesForFlavors(DataFlavor[] flavors);
-
-/*************************************************************************/
-
-/**
- * Maps the specified native type names to <code>DataFlavor</code>'s.
- * The returned <code>Map</code> has keys that are strings and values
- * that are <code>DataFlavor</code>'s. The returned map may be
- * modified. This can be useful for implementing nested mappings.
- *
- * @param natives An array of native types to map
- * or null for all native types.
- *
- * @return A <code>Map</code> of data flavors.
- */
-public abstract Map
-getFlavorsForNatives(String[] natives);
-
-} // interface FlavorMap
-
+ /**
+ * Maps the specified native type names to <code>DataFlavor</code>'s.
+ * The returned <code>Map</code> has keys that are strings and values
+ * that are <code>DataFlavor</code>'s. The returned map may be
+ * modified. This can be useful for implementing nested mappings.
+ *
+ * @param natives An array of native types to map
+ * or null for all native types.
+ *
+ * @return A <code>Map</code> of data flavors.
+ */
+ public abstract Map getFlavorsForNatives (String[] natives);
+}
diff --git a/libjava/java/awt/datatransfer/SystemFlavorMap.java b/libjava/java/awt/datatransfer/SystemFlavorMap.java
index 50064db4c92..7d914120e8f 100644
--- a/libjava/java/awt/datatransfer/SystemFlavorMap.java
+++ b/libjava/java/awt/datatransfer/SystemFlavorMap.java
@@ -40,6 +40,7 @@ package java.awt.datatransfer;
import java.util.HashMap;
import java.util.Map;
+import java.util.List;
/**
* This class maps between native platform type names and DataFlavors.
@@ -47,134 +48,122 @@ import java.util.Map;
* XXX - The current implementation does no mapping at all.
*
* @author Mark Wielaard (mark@klomp.org)
- */
-public final class SystemFlavorMap implements FlavorMap
-{
-
-/**
- * The default (instance) flavor map.
- */
-private static FlavorMap defaultFlavorMap;
-
-/**
- * Private constructor.
- */
-private SystemFlavorMap()
-{
-}
-
-/*************************************************************************/
-
-/**
- * Maps the specified <code>DataFlavor</code> objects to the native
- * data type name. The returned <code>Map</code> has keys that are
- * the data flavors and values that are strings. The returned map
- * may be modified. This can be useful for implementing nested mappings.
- *
- * @param flavors An array of data flavors to map
- * or null for all data flavors.
*
- * @return A <code>Map</code> of native data types to data flavors.
- */
-public Map
-getNativesForFlavors(DataFlavor[] flavors)
-{
- return(new HashMap());
-}
-
-/*************************************************************************/
-
-/**
- * Maps the specified native type names to <code>DataFlavor</code>'s.
- * The returned <code>Map</code> has keys that are strings and values
- * that are <code>DataFlavor</code>'s. The returned map may be
- * modified. This can be useful for implementing nested mappings.
- *
- * @param natives An array of native types to map
- * or null for all native types.
- *
- * @return A <code>Map</code> of data flavors to native type names.
- */
-public Map
-getFlavorsForNatives(String[] natives)
-{
- return(new HashMap());
-}
-
-/*************************************************************************/
-
-/**
- * Returns the default (instance) (System)FlavorMap.
- */
-public static FlavorMap
-getDefaultFlavorMap()
-{
- if (defaultFlavorMap == null)
- defaultFlavorMap = new SystemFlavorMap();
-
- return(defaultFlavorMap);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the native type name for the given java mime type.
- */
-public static String
-encodeJavaMIMEType(String mime)
-{
- return null;
-}
-
-/*************************************************************************/
-
-/**
- * Returns the native type name for the given data flavor.
- */
-public static String
-encodeDataFlavor(DataFlavor df)
-{
- return null;
-}
-
-/*************************************************************************/
-
-/**
- * Returns true if the native type name can be represented as
- * a java mime type.
- */
-public static boolean
-isJavaMIMEType(String name)
-{
- return(false);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the java mime type for the given the native type name.
+ * @since 1.2
*/
-public static String
-decodeJavaMIMEType(String name)
+public final class SystemFlavorMap implements FlavorMap, FlavorTable
{
- return null;
-}
-
-/*************************************************************************/
-
-/**
- * Returns the data flavor given the native type name
- * or null when no such data flavor exists.
- */
-public static DataFlavor
-decodeDataFlavor(String name) throws ClassNotFoundException
-{
- String javaMIMEType = decodeJavaMIMEType(name);
- if (javaMIMEType != null)
- return(new DataFlavor(javaMIMEType));
- else
- return(null);
-}
+ /**
+ * The default (instance) flavor map.
+ */
+ private static FlavorMap defaultFlavorMap;
+
+ /**
+ * Private constructor.
+ */
+ private SystemFlavorMap ()
+ {
+ }
+
+ /**
+ * Maps the specified <code>DataFlavor</code> objects to the native
+ * data type name. The returned <code>Map</code> has keys that are
+ * the data flavors and values that are strings. The returned map
+ * may be modified. This can be useful for implementing nested mappings.
+ *
+ * @param flavors An array of data flavors to map
+ * or null for all data flavors.
+ *
+ * @return A <code>Map</code> of native data types to data flavors.
+ */
+ public Map getNativesForFlavors (DataFlavor[] flavors)
+ {
+ return new HashMap();
+ }
+
+ /**
+ * Maps the specified native type names to <code>DataFlavor</code>'s.
+ * The returned <code>Map</code> has keys that are strings and values
+ * that are <code>DataFlavor</code>'s. The returned map may be
+ * modified. This can be useful for implementing nested mappings.
+ *
+ * @param natives An array of native types to map
+ * or null for all native types.
+ *
+ * @return A <code>Map</code> of data flavors to native type names.
+ */
+ public Map getFlavorsForNatives (String[] natives)
+ {
+ return new HashMap();
+ }
+
+ /**
+ * Returns the default (instance) (System)FlavorMap.
+ */
+ public static FlavorMap getDefaultFlavorMap ()
+ {
+ if (defaultFlavorMap == null)
+ defaultFlavorMap = new SystemFlavorMap ();
+
+ return defaultFlavorMap;
+ }
+
+ /**
+ * Returns the native type name for the given java mime type.
+ */
+ public static String encodeJavaMIMEType (String mime)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the native type name for the given data flavor.
+ */
+ public static String encodeDataFlavor (DataFlavor df)
+ {
+ return null;
+ }
+
+ /**
+ * Returns true if the native type name can be represented as
+ * a java mime type.
+ */
+ public static boolean isJavaMIMEType (String name)
+ {
+ return false;
+ }
+
+ /**
+ * Returns the java mime type for the given the native type name.
+ */
+ public static String decodeJavaMIMEType (String name)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the data flavor given the native type name
+ * or null when no such data flavor exists.
+ */
+ public static DataFlavor decodeDataFlavor (String name)
+ throws ClassNotFoundException
+ {
+ String javaMIMEType = decodeJavaMIMEType (name);
+
+ if (javaMIMEType != null)
+ return new DataFlavor (javaMIMEType);
+ else
+ return null;
+ }
+
+ public List getFlavorsForNative (String nat)
+ {
+ throw new Error ("Not implemented");
+ }
+
+ public List getNativesForFlavor (DataFlavor flav)
+ {
+ throw new Error ("Not implemented");
+ }
} // class SystemFlavorMap
-
diff --git a/libjava/java/awt/dnd/DragGestureEvent.java b/libjava/java/awt/dnd/DragGestureEvent.java
index 84fa1cbb901..3d268820ba7 100644
--- a/libjava/java/awt/dnd/DragGestureEvent.java
+++ b/libjava/java/awt/dnd/DragGestureEvent.java
@@ -113,15 +113,42 @@ public class DragGestureEvent extends EventObject
{
return null;
}
+
+ /**
+ * Starts the drag given the initial Cursor to display, the Transferable
+ * object, and the DragSourceListener to use.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(Cursor dragCursor, Transferable trans)
{
startDrag(dragCursor, null, null, trans, null);
}
+
+ /**
+ * Starts the drag given the initial Cursor to display, the Transferable
+ * object, and the DragSourceListener to use.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(Cursor dragCursor, Transferable trans,
DragSourceListener l)
{
startDrag(dragCursor, null, null, trans, l);
}
+
+ /**
+ * Starts the drag given the initial Cursor to display, the Transferable
+ * object, and the DragSourceListener to use.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(Cursor dragCursor, Image dragImage, Point imageOffset,
Transferable trans, DragSourceListener l)
{
diff --git a/libjava/java/awt/dnd/DragGestureRecognizer.java b/libjava/java/awt/dnd/DragGestureRecognizer.java
index 674e26e8a3b..cd204b6fe93 100644
--- a/libjava/java/awt/dnd/DragGestureRecognizer.java
+++ b/libjava/java/awt/dnd/DragGestureRecognizer.java
@@ -130,6 +130,12 @@ public abstract class DragGestureRecognizer implements Serializable
throw new Error("not implemented");
}
+ /**
+ * Register a new DragGestureListener.
+ *
+ * @exception TooManyListenersException If a DragGestureListener has already
+ * been added.
+ */
public void addDragGestureListener(DragGestureListener dgl)
throws TooManyListenersException
{
diff --git a/libjava/java/awt/dnd/DragSource.java b/libjava/java/awt/dnd/DragSource.java
index 01cae00a3cf..740235ac83c 100644
--- a/libjava/java/awt/dnd/DragSource.java
+++ b/libjava/java/awt/dnd/DragSource.java
@@ -40,6 +40,8 @@ package java.awt.dnd;
import java.awt.Component;
import java.awt.Cursor;
+import java.awt.GraphicsEnvironment;
+import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Point;
import java.awt.datatransfer.FlavorMap;
@@ -62,10 +64,20 @@ public class DragSource implements Serializable
public static final Cursor DefaultMoveNoDrop = null;
public static final Cursor DefaultLinkNoDrop = null;
+ /**
+ * Initializes the drag source.
+ *
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+ */
public DragSource()
{
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException ();
}
+ /**
+ * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+ */
public static DragSource getDefaultDragSource()
{
return null;
@@ -76,6 +88,13 @@ public class DragSource implements Serializable
return false;
}
+ /**
+ * Start a drag, given the DragGestureEvent that initiated the drag.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Image dragImage, Point imageOffset,
Transferable trans, DragSourceListener dsl,
@@ -83,6 +102,13 @@ public class DragSource implements Serializable
{
}
+ /**
+ * Start a drag, given the DragGestureEvent that initiated the drag.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Transferable trans, DragSourceListener dsl,
FlavorMap map)
@@ -90,6 +116,13 @@ public class DragSource implements Serializable
startDrag(trigger, dragCursor, null, null, trans, dsl, map);
}
+ /**
+ * Start a drag, given the DragGestureEvent that initiated the drag.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Image dragImage, Point imageOffset,
Transferable trans, DragSourceListener dsl)
@@ -97,12 +130,25 @@ public class DragSource implements Serializable
startDrag(trigger, dragCursor, dragImage, imageOffset, trans, dsl, null);
}
+ /**
+ * Start a drag, given the DragGestureEvent that initiated the drag.
+ *
+ * @exception InvalidDnDOperationException If the Drag and Drop system is
+ * unable to initiate a drag operation, or if the user attempts to start
+ * a drag while an existing drag operation is still executing.
+ */
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Transferable trans, DragSourceListener dsl)
{
startDrag(trigger, dragCursor, null, null, trans, dsl, null);
}
+ /**
+ * Creates the DragSourceContext to handle this drag.
+ *
+ * @exception IllegalArgumentException FIXME
+ * @exception NullPointerException If dscp, dgl, dragImage or t is null.
+ */
protected DragSourceContext
createDragSourceContext(DragSourceContextPeer peer, DragGestureEvent dge,
Cursor cursor, Image image, Point offset,
diff --git a/libjava/java/awt/dnd/DropTarget.java b/libjava/java/awt/dnd/DropTarget.java
index c469605b8b4..53c09178d32 100644
--- a/libjava/java/awt/dnd/DropTarget.java
+++ b/libjava/java/awt/dnd/DropTarget.java
@@ -42,10 +42,13 @@ import java.awt.Component;
import java.awt.datatransfer.FlavorMap;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.Serializable;
+import java.util.EventListener;
import java.util.TooManyListenersException;
/** STUB CLASS ONLY */
public class DropTarget
+ implements DropTargetListener, EventListener, Serializable
{
protected static class DropTargetAutoScroller
implements ActionListener
@@ -67,6 +70,9 @@ public class DropTarget
}
}
+ // FIXME: check the correctness of default value.
+ private boolean isActive = false;
+
/**
* FIXME
*
@@ -133,11 +139,12 @@ public class DropTarget
public void setActive(boolean isActive)
{
+ this.isActive = isActive;
}
public boolean isActive()
{
- return false;
+ return this.isActive;
}
/**
diff --git a/libjava/java/awt/event/WindowEvent.java b/libjava/java/awt/event/WindowEvent.java
index ca51ba545b4..6e40d5165b8 100644
--- a/libjava/java/awt/event/WindowEvent.java
+++ b/libjava/java/awt/event/WindowEvent.java
@@ -109,7 +109,7 @@ public class WindowEvent extends ComponentEvent
public static final int WINDOW_STATE_CHANGED = 209;
/** This is the last id in the range of event ids used by this class. */
- public static final int WINDOW_LAST = 207;
+ public static final int WINDOW_LAST = 209;
/**
* The other Window involved in a focus or activation change. For
diff --git a/libjava/java/awt/geom/Dimension2D.java b/libjava/java/awt/geom/Dimension2D.java
index e111e5434cf..dbbdf6b25b3 100644
--- a/libjava/java/awt/geom/Dimension2D.java
+++ b/libjava/java/awt/geom/Dimension2D.java
@@ -86,6 +86,7 @@ public abstract class Dimension2D implements Cloneable
* may occur.
*
* @param d the dimension containing the new values
+ *
* @throws NullPointerException if d is null
*/
public void setSize(Dimension2D d)
@@ -98,6 +99,10 @@ public abstract class Dimension2D implements Cloneable
* as this one.
*
* @return the clone
+ *
+ * @exception OutOfMemoryError If there is not enough memory available.
+ *
+ * @since 1.2
*/
public Object clone()
{
diff --git a/libjava/java/awt/geom/GeneralPath.java b/libjava/java/awt/geom/GeneralPath.java
index 267db6ca0e3..6c1b578fc19 100644
--- a/libjava/java/awt/geom/GeneralPath.java
+++ b/libjava/java/awt/geom/GeneralPath.java
@@ -338,6 +338,10 @@ public final class GeneralPath implements Shape, Cloneable
* this one.
*
* @return the clone
+ *
+ * @exception OutOfMemoryError If there is not enough memory available.
+ *
+ * @since 1.2
*/
public Object clone()
{
diff --git a/libjava/java/awt/geom/Line2D.java b/libjava/java/awt/geom/Line2D.java
index 9e551103332..d2dd65c4341 100644
--- a/libjava/java/awt/geom/Line2D.java
+++ b/libjava/java/awt/geom/Line2D.java
@@ -752,6 +752,10 @@ public abstract class Line2D implements Shape, Cloneable
* this one.
*
* @return the clone
+ *
+ * @exception OutOfMemoryError If there is not enough memory available.
+ *
+ * @since 1.2
*/
public Object clone()
{
diff --git a/libjava/java/awt/geom/PathIterator.java b/libjava/java/awt/geom/PathIterator.java
index 6cf77d74df2..c23eb351306 100644
--- a/libjava/java/awt/geom/PathIterator.java
+++ b/libjava/java/awt/geom/PathIterator.java
@@ -84,7 +84,7 @@ public interface PathIterator
* (P1), and final interpolated control point (P2):
* <pre>
* P(t) = B(2,0)*CP + B(2,1)*P1 + B(2,2)*P2
- * 0 <= t <= 1
+ * 0 &lt;= t &lt;= 1
* B(n,m) = mth coefficient of nth degree Bernstein polynomial
* = C(n,m) * t^(m) * (1 - t)^(n-m)
* C(n,m) = Combinations of n things, taken m at a time
@@ -100,7 +100,7 @@ public interface PathIterator
* (P2), and final interpolated control point (P3):
* <pre>
* P(t) = B(3,0)*CP + B(3,1)*P1 + B(3,2)*P2 + B(3,3)*P3
- * 0 <= t <= 1
+ * 0 &lt;= t &lt;= 1
* B(n,m) = mth coefficient of nth degree Bernstein polynomial
* = C(n,m) * t^(m) * (1 - t)^(n-m)
* C(n,m) = Combinations of n things, taken m at a time
diff --git a/libjava/java/awt/geom/QuadCurve2D.java b/libjava/java/awt/geom/QuadCurve2D.java
index 2f1aafad21b..05748fc979d 100644
--- a/libjava/java/awt/geom/QuadCurve2D.java
+++ b/libjava/java/awt/geom/QuadCurve2D.java
@@ -289,6 +289,10 @@ public abstract class QuadCurve2D implements Shape, Cloneable
* this one.
*
* @return the clone
+ *
+ * @exception OutOfMemoryError If there is not enough memory available.
+ *
+ * @since 1.2
*/
public Object clone()
{
diff --git a/libjava/java/awt/im/InputContext.java b/libjava/java/awt/im/InputContext.java
index e4431f9c374..dc83b280ef1 100644
--- a/libjava/java/awt/im/InputContext.java
+++ b/libjava/java/awt/im/InputContext.java
@@ -1,5 +1,5 @@
/* InputContext.java -- provides the context for text input
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -340,7 +340,6 @@ public class InputContext
*
* @throws UnsupportedOperationException if there is no current input method,
* or the input method does not support reconversion
- * @throws UnsupportedOperationException if ther
* @since 1.3
*/
public void reconvert()
diff --git a/libjava/java/awt/im/InputMethodHighlight.java b/libjava/java/awt/im/InputMethodHighlight.java
index 5398fc5de77..2946d259b91 100644
--- a/libjava/java/awt/im/InputMethodHighlight.java
+++ b/libjava/java/awt/im/InputMethodHighlight.java
@@ -178,7 +178,7 @@ public class InputMethodHighlight
* @return the style map
* @since 1.3
*/
- public Map getSytle()
+ public Map getStyle()
{
return style;
}
diff --git a/libjava/java/awt/image/ColorModel.java b/libjava/java/awt/image/ColorModel.java
index 14a1b2e73b9..fab51667edb 100644
--- a/libjava/java/awt/image/ColorModel.java
+++ b/libjava/java/awt/image/ColorModel.java
@@ -120,10 +120,32 @@ public abstract class ColorModel implements Transparency
Buffers.smallestAppropriateTransferType(bits * 4));
}
+ /**
+ * Constructs a ColorModel that translates pixel values to
+ * color/alpha components.
+ *
+ * @exception IllegalArgumentException If the length of the bit array is less
+ * than the number of color or alpha components in this ColorModel, or if the
+ * transparency is not a valid value, or if the sum of the number of bits in
+ * bits is less than 1 or if any of the elements in bits is less than 0.
+ */
protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace,
boolean hasAlpha, boolean isAlphaPremultiplied,
int transparency, int transferType)
{
+ int bits_sum = 0;
+ for (int i = 0; i < bits.length; i++)
+ {
+ if (bits [i] < 0)
+ throw new IllegalArgumentException ();
+
+ bits_sum |= bits [i];
+ }
+
+ if ((bits.length < cspace.numComponents)
+ || (bits_sum < 1))
+ throw new IllegalArgumentException ();
+
this.pixel_bits = pixel_bits;
this.bits = bits;
this.cspace = cspace;
diff --git a/libjava/java/awt/image/ImageFilter.java b/libjava/java/awt/image/ImageFilter.java
index b34bb7d9cd3..86bc0210a4b 100644
--- a/libjava/java/awt/image/ImageFilter.java
+++ b/libjava/java/awt/image/ImageFilter.java
@@ -81,9 +81,18 @@ public class ImageFilter implements ImageConsumer, Cloneable
*
* @see java.lang.Object#clone ()
*/
- public Object clone() throws CloneNotSupportedException
+ public Object clone()
{
- return (super.clone());
+ try
+ {
+ return super.clone();
+ }
+ catch (CloneNotSupportedException e)
+ {
+ // This should never happen as this class implements the
+ // Cloneable interface.
+ throw new InternalError ();
+ }
}
/**
diff --git a/libjava/java/beans/PropertyDescriptor.java b/libjava/java/beans/PropertyDescriptor.java
index b75cac9e766..00db4166ced 100644
--- a/libjava/java/beans/PropertyDescriptor.java
+++ b/libjava/java/beans/PropertyDescriptor.java
@@ -65,280 +65,312 @@ import java.lang.reflect.*;
**/
public class PropertyDescriptor extends FeatureDescriptor {
- Class propertyType;
- Method getMethod;
- Method setMethod;
-
- Class propertyEditorClass;
- boolean bound;
- boolean constrained;
-
- PropertyDescriptor(String name) {
- setName(name);
- }
-
- /** Create a new PropertyDescriptor by introspection.
- ** This form of constructor creates the PropertyDescriptor by
- ** looking for a getter method named <CODE>get&lt;name&gt;()</CODE>
- ** (or, optionally, if the property is boolean,
- ** <CODE>is&lt;name&gt;()</CODE>) and
- ** <CODE>set&lt;name&gt;()</CODE> in class
- ** <CODE>&lt;beanClass&gt;</CODE>, where &lt;name&gt; has its
- ** first letter capitalized by the constructor.<P>
- **
- ** <B>Implementation note:</B> If there is a get method (or
- ** boolean isXXX() method), then the return type of that method
- ** is used to find the set method. If there is no get method,
- ** then the set method is searched for exhaustively.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get method and multiple set methods with
- ** the same name and a single parameter (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Class beanClass) throws IntrospectionException {
- setName(name);
- String capitalized;
- try {
- capitalized = Character.toUpperCase(name.charAt(0)) + name.substring(1);
- } catch(StringIndexOutOfBoundsException e) {
- capitalized = "";
- }
- findMethods(beanClass, "is" + capitalized, "get" + capitalized, "set" + capitalized);
- }
-
- /** Create a new PropertyDescriptor by introspection.
- ** This form of constructor allows you to specify the
- ** names of the get and set methods to search for.<P>
- **
- ** <B>Implementation note:</B> If there is a get method (or
- ** boolean isXXX() method), then the return type of that method
- ** is used to find the set method. If there is no get method,
- ** then the set method is searched for exhaustively.<P>
- **
- ** <B>Spec note:</B>
- ** If there is no get method and multiple set methods with
- ** the same name and a single parameter (different type of course),
- ** then an IntrospectionException is thrown. While Sun's spec
- ** does not state this, it can make Bean behavior different on
- ** different systems (since method order is not guaranteed) and as
- ** such, can be treated as a bug in the spec. I am not aware of
- ** whether Sun's implementation catches this.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param beanClass the class the get and set methods live in.
- ** @param getMethodName the name of the get method.
- ** @param setMethodName the name of the set method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Class beanClass, String getMethodName, String setMethodName) throws IntrospectionException {
- setName(name);
- findMethods(beanClass, getMethodName, null, setMethodName);
- }
-
- /** Create a new PropertyDescriptor using explicit Methods.
- ** Note that the methods will be checked for conformance to standard
- ** Property method rules, as described above at the top of this class.
- **
- ** @param name the programmatic name of the property, usually
- ** starting with a lowercase letter (e.g. fooManChu
- ** instead of FooManChu).
- ** @param getMethod the get method.
- ** @param setMethod the set method.
- ** @exception IntrospectionException if the methods are not found or invalid.
- **/
- public PropertyDescriptor(String name, Method getMethod, Method setMethod) throws IntrospectionException {
- setName(name);
- if(getMethod != null && getMethod.getParameterTypes().length > 0) {
- throw new IntrospectionException("get method has parameters");
- }
- if(setMethod != null && setMethod.getParameterTypes().length != 1) {
- throw new IntrospectionException("set method does not have exactly one parameter");
- }
- if(getMethod != null && setMethod != null) {
- if(!getMethod.getReturnType().equals(setMethod.getParameterTypes()[0])) {
- throw new IntrospectionException("set and get methods do not share the same type");
- }
- if(!getMethod.getDeclaringClass().isAssignableFrom(setMethod.getDeclaringClass())
- && !setMethod.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass())) {
- throw new IntrospectionException("set and get methods are not in the same class.");
- }
- }
- this.getMethod = getMethod;
- this.setMethod = setMethod;
- if(getMethod != null) {
- this.propertyType = getMethod.getReturnType();
- } else {
- this.propertyType = setMethod.getParameterTypes()[0];
- }
- }
-
- /** Get the property type.
- ** This is the type the get method returns and the set method
- ** takes in.
- **/
- public Class getPropertyType() {
- return propertyType;
- }
-
- /** Get the get method. Why they call it readMethod here and
- ** get everywhere else is beyond me.
- **/
- public Method getReadMethod() {
- return getMethod;
- }
-
- /** Get the set method. Why they call it writeMethod here and
- ** set everywhere else is beyond me.
- **/
- public Method getWriteMethod() {
- return setMethod;
+ Class propertyType;
+ Method getMethod;
+ Method setMethod;
+
+ Class propertyEditorClass;
+ boolean bound;
+ boolean constrained;
+
+ PropertyDescriptor(String name) {
+ setName(name);
+ }
+
+ /** Create a new PropertyDescriptor by introspection.
+ ** This form of constructor creates the PropertyDescriptor by
+ ** looking for a getter method named <CODE>get&lt;name&gt;()</CODE>
+ ** (or, optionally, if the property is boolean,
+ ** <CODE>is&lt;name&gt;()</CODE>) and
+ ** <CODE>set&lt;name&gt;()</CODE> in class
+ ** <CODE>&lt;beanClass&gt;</CODE>, where &lt;name&gt; has its
+ ** first letter capitalized by the constructor.<P>
+ **
+ ** <B>Implementation note:</B> If there is both are both isXXX and
+ ** getXXX methods, the former is used in preference to the latter.
+ ** We do not check that an isXXX method returns a boolean. In both
+ ** cases, this matches the behaviour of JDK 1.4<P>
+ **
+ ** @param name the programmatic name of the property, usually
+ ** starting with a lowercase letter (e.g. fooManChu
+ ** instead of FooManChu).
+ ** @param beanClass the class the get and set methods live in.
+ ** @exception IntrospectionException if the methods are not found
+ ** or invalid.
+ **/
+ public PropertyDescriptor(String name, Class beanClass)
+ throws IntrospectionException
+ {
+ setName(name);
+ if (name.length() == 0) {
+ throw new IntrospectionException("empty property name");
+ }
+ String caps = Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ findMethods(beanClass, "is" + caps, "get" + caps, "set" + caps);
+ if (getMethod == null) {
+ throw new IntrospectionException("Cannot find an is" + caps +
+ " or get" + caps + " method");
+ }
+ if (setMethod == null) {
+ throw new IntrospectionException("Cannot find a " + caps + " method");
+ }
+ checkMethods();
+ }
+
+ /** Create a new PropertyDescriptor by introspection.
+ ** This form of constructor allows you to specify the
+ ** names of the get and set methods to search for.<P>
+ **
+ ** <B>Implementation note:</B> If there is a get method (or
+ ** boolean isXXX() method), then the return type of that method
+ ** is used to find the set method. If there is no get method,
+ ** then the set method is searched for exhaustively.<P>
+ **
+ ** <B>Spec note:</B>
+ ** If there is no get method and multiple set methods with
+ ** the same name and a single parameter (different type of course),
+ ** then an IntrospectionException is thrown. While Sun's spec
+ ** does not state this, it can make Bean behavior different on
+ ** different systems (since method order is not guaranteed) and as
+ ** such, can be treated as a bug in the spec. I am not aware of
+ ** whether Sun's implementation catches this.
+ **
+ ** @param name the programmatic name of the property, usually
+ ** starting with a lowercase letter (e.g. fooManChu
+ ** instead of FooManChu).
+ ** @param beanClass the class the get and set methods live in.
+ ** @param getMethodName the name of the get method.
+ ** @param setMethodName the name of the set method.
+ ** @exception IntrospectionException if the methods are not found
+ ** or invalid.
+ **/
+ public PropertyDescriptor(String name, Class beanClass,
+ String getMethodName, String setMethodName)
+ throws IntrospectionException
+ {
+ setName(name);
+ findMethods(beanClass, getMethodName, null, setMethodName);
+ if (getMethod == null && getMethodName != null) {
+ throw new IntrospectionException("Cannot find a getter method called " +
+ getMethodName);
+ }
+ if (setMethod == null && setMethodName != null) {
+ throw new IntrospectionException("Cannot find a setter method called " +
+ setMethodName);
+ }
+ checkMethods();
+ }
+
+ /** Create a new PropertyDescriptor using explicit Methods.
+ ** Note that the methods will be checked for conformance to standard
+ ** Property method rules, as described above at the top of this class.
+ **
+ ** @param name the programmatic name of the property, usually
+ ** starting with a lowercase letter (e.g. fooManChu
+ ** instead of FooManChu).
+ ** @param getMethod the get method.
+ ** @param setMethod the set method.
+ ** @exception IntrospectionException if the methods are not found
+ ** or invalid.
+ **/
+ public PropertyDescriptor(String name, Method getMethod, Method setMethod)
+ throws IntrospectionException
+ {
+ setName(name);
+ this.getMethod = getMethod;
+ this.setMethod = setMethod;
+ if (getMethod != null) {
+ this.propertyType = getMethod.getReturnType();
+ }
+ else if (setMethod != null) {
+ this.propertyType = setMethod.getParameterTypes()[0];
+ }
+ checkMethods();
+ }
+
+ /** Get the property type.
+ ** This is the type the get method returns and the set method
+ ** takes in.
+ **/
+ public Class getPropertyType() {
+ return propertyType;
+ }
+
+ /** Get the get method. Why they call it readMethod here and
+ ** get everywhere else is beyond me.
+ **/
+ public Method getReadMethod() {
+ return getMethod;
+ }
+
+ /** Get the set method. Why they call it writeMethod here and
+ ** set everywhere else is beyond me.
+ **/
+ public Method getWriteMethod() {
+ return setMethod;
+ }
+
+ /** Get whether the property is bound. Defaults to false. **/
+ public boolean isBound() {
+ return bound;
+ }
+
+ /** Set whether the property is bound.
+ ** As long as the the bean implements addPropertyChangeListener() and
+ ** removePropertyChangeListener(), setBound(true) may safely be called.<P>
+ ** If these things are not true, then the behavior of the system
+ ** will be undefined.<P>
+ **
+ ** When a property is bound, its set method is required to fire the
+ ** <CODE>PropertyChangeListener.propertyChange())</CODE> event
+ ** after the value has changed.
+ ** @param bound whether the property is bound or not.
+ **/
+ public void setBound(boolean bound) {
+ this.bound = bound;
+ }
+
+ /** Get whether the property is constrained. Defaults to false. **/
+ public boolean isConstrained() {
+ return constrained;
+ }
+
+ /** Set whether the property is constrained.
+ ** If the set method throws <CODE>java.beans.PropertyVetoException</CODE>
+ ** (or subclass thereof) and the bean implements addVetoableChangeListener()
+ ** and removeVetoableChangeListener(), then setConstrained(true) may safely
+ ** be called. Otherwise, the system behavior is undefined.
+ ** <B>Spec note:</B> given those strict parameters, it would be nice if it
+ ** got set automatically by detection, but oh well.<P>
+ ** When a property is constrained, its set method is required to:<P>
+ ** <OL>
+ ** <LI>Fire the <CODE>VetoableChangeListener.vetoableChange()</CODE>
+ ** event notifying others of the change and allowing them a chance to
+ ** say it is a bad thing.</LI>
+ ** <LI>If any of the listeners throws a PropertyVetoException, then
+ ** it must fire another vetoableChange() event notifying the others
+ ** of a reversion to the old value (though, of course, the change
+ ** was never made). Then it rethrows the PropertyVetoException and
+ ** exits.</LI>
+ ** <LI>If all has gone well to this point, the value may be changed.</LI>
+ ** </OL>
+ ** @param constrained whether the property is constrained or not.
+ **/
+ public void setConstrained(boolean constrained) {
+ this.constrained = constrained;
+ }
+
+ /** Get the PropertyEditor class. Defaults to null. **/
+ public Class getPropertyEditorClass() {
+ return propertyEditorClass;
+ }
+
+ /** Set the PropertyEditor class. If the class does not implement
+ ** the PropertyEditor interface, you will likely get an exception
+ ** late in the game.
+ ** @param propertyEditorClass the PropertyEditor class for this
+ ** class to use.
+ **/
+ public void setPropertyEditorClass(Class propertyEditorClass) {
+ this.propertyEditorClass = propertyEditorClass;
+ }
+
+ private void findMethods(Class beanClass, String getMethodName1,
+ String getMethodName2, String setMethodName)
+ throws IntrospectionException
+ {
+ try {
+ // Try the first get method name
+ if (getMethodName1 != null) {
+ try {
+ getMethod = beanClass.getMethod(getMethodName1, new Class[0]);
+ }
+ catch (NoSuchMethodException e) {
}
+ }
- /** Get whether the property is bound. Defaults to false. **/
- public boolean isBound() {
- return bound;
+ // Fall back to the second get method name
+ if (getMethod == null && getMethodName2 != null) {
+ try {
+ getMethod = beanClass.getMethod(getMethodName2, new Class[0]);
+ }
+ catch (NoSuchMethodException e) {
}
+ }
- /** Set whether the property is bound.
- ** As long as the the bean implements addPropertyChangeListener() and
- ** removePropertyChangeListener(), setBound(true) may safely be called.<P>
- ** If these things are not true, then the behavior of the system
- ** will be undefined.<P>
- **
- ** When a property is bound, its set method is required to fire the
- ** <CODE>PropertyChangeListener.propertyChange())</CODE> event
- ** after the value has changed.
- ** @param bound whether the property is bound or not.
- **/
- public void setBound(boolean bound) {
- this.bound = bound;
+ // Try the set method name
+ if (setMethodName != null) {
+ if (getMethod != null) {
+ // If there is a get method, use its return type to help
+ // select the corresponding set method.
+ Class propertyType = getMethod.getReturnType();
+ if (propertyType == Void.TYPE) {
+ String msg = "The property's read method has return type 'void'";
+ throw new IntrospectionException(msg);
+ }
+
+ Class[] setArgs = new Class[]{propertyType};
+ try {
+ setMethod = beanClass.getMethod(setMethodName, setArgs);
+ }
+ catch (NoSuchMethodException e) {
+ }
}
-
- /** Get whether the property is constrained. Defaults to false. **/
- public boolean isConstrained() {
- return constrained;
- }
-
- /** Set whether the property is constrained.
- ** If the set method throws <CODE>java.beans.PropertyVetoException</CODE>
- ** (or subclass thereof) and the bean implements addVetoableChangeListener()
- ** and removeVetoableChangeListener(), then setConstrained(true) may safely
- ** be called. Otherwise, the system behavior is undefined.
- ** <B>Spec note:</B> given those strict parameters, it would be nice if it
- ** got set automatically by detection, but oh well.<P>
- ** When a property is constrained, its set method is required to:<P>
- ** <OL>
- ** <LI>Fire the <CODE>VetoableChangeListener.vetoableChange()</CODE>
- ** event notifying others of the change and allowing them a chance to
- ** say it is a bad thing.</LI>
- ** <LI>If any of the listeners throws a PropertyVetoException, then
- ** it must fire another vetoableChange() event notifying the others
- ** of a reversion to the old value (though, of course, the change
- ** was never made). Then it rethrows the PropertyVetoException and
- ** exits.</LI>
- ** <LI>If all has gone well to this point, the value may be changed.</LI>
- ** </OL>
- ** @param constrained whether the property is constrained or not.
- **/
- public void setConstrained(boolean constrained) {
- this.constrained = constrained;
+ else if (getMethodName1 == null && getMethodName2 == null) {
+ // If this is a write-only property, choose the first set method
+ // with the required name, one parameter and return type 'void'
+ Method[] methods = beanClass.getMethods();
+ for (int i = 0; i < methods.length; i++) {
+ if (methods[i].getName().equals(setMethodName) &&
+ methods[i].getParameterTypes().length == 1 &&
+ methods[i].getReturnType() == Void.TYPE) {
+ setMethod = methods[i];
+ break;
+ }
+ }
}
+ }
+ }
+ catch (SecurityException e) {
+ // FIXME -- shouldn't we just allow SecurityException to propagate?
+ String msg = "SecurityException thrown on attempt to access methods.";
+ throw new IntrospectionException(msg);
+ }
+ }
- /** Get the PropertyEditor class. Defaults to null. **/
- public Class getPropertyEditorClass() {
- return propertyEditorClass;
+ private void checkMethods()
+ throws IntrospectionException
+ {
+ if (getMethod != null) {
+ if (getMethod.getParameterTypes().length > 0) {
+ throw new IntrospectionException("get method has parameters");
+ }
+ this.propertyType = getMethod.getReturnType();
+ if (propertyType == Void.TYPE) {
+ throw new IntrospectionException("get method has void return type");
+ }
+ }
+ if (setMethod != null) {
+ if (setMethod.getParameterTypes().length != 1) {
+ String msg = "set method does not have exactly one parameter";
+ throw new IntrospectionException(msg);
+ }
+ if (getMethod == null) {
+ propertyType = setMethod.getParameterTypes()[0];
+ }
+ else {
+ if (!propertyType.equals(setMethod.getParameterTypes()[0])) {
+ String msg = "set and get methods do not share the same type";
+ throw new IntrospectionException(msg);
}
-
- /** Set the PropertyEditor class. If the class does not implement
- ** the PropertyEditor interface, you will likely get an exception
- ** late in the game.
- ** @param propertyEditorClass the PropertyEditor class for this class to use.
- **/
- public void setPropertyEditorClass(Class propertyEditorClass) {
- this.propertyEditorClass = propertyEditorClass;
- }
-
- private void findMethods(Class beanClass, String getMethodName1, String getMethodName2, String setMethodName) throws IntrospectionException {
- try {
- if(getMethodName1 != null) {
- try {
- getMethod = beanClass.getMethod(getMethodName1, new Class[0]);
- } catch(NoSuchMethodException E) {
- }
- if(getMethodName2 != null) {
- if(getMethod != null && !getMethod.getReturnType().equals(java.lang.Boolean.TYPE)) {
- // If the is() method exists but isn't boolean, we'll just go on and look for
- // an ordinary get() method.
- getMethod = null;
- }
-
- Method getMethod2;
- try {
- getMethod2 = beanClass.getMethod(getMethodName2, new Class[0]);
- } catch(NoSuchMethodException E) {
- getMethod2 = null;
- }
- if(getMethod2 != null) {
- if(getMethod != null) {
- if(!getMethod.getReturnType().equals(getMethod2.getReturnType())) {
- throw new IntrospectionException("Both " + getMethodName1 + " and " + getMethodName2 + " exist, and have contradictory return types.");
- }
- } else {
- getMethod = getMethod2;
- }
- }
- }
- }
-
- if(getMethod != null) {
- propertyType = getMethod.getReturnType();
- if(setMethodName != null) {
- Class[] setArgs = new Class[1];
- setArgs[0] = propertyType;
- try {
- setMethod = beanClass.getMethod(setMethodName, setArgs);
- if(!setMethod.getReturnType().equals(java.lang.Void.TYPE)) {
- throw new IntrospectionException(setMethodName + " has non-void return type");
- }
- } catch(NoSuchMethodException E) {
- }
- }
- } else if(setMethodName != null) {
- Method[] m = beanClass.getMethods();
- for(int i=0;i<m.length;i++) {
- Method current = m[i];
- if(current.getName().equals(setMethodName)
- && current.getParameterTypes().length == 1
- && current.getReturnType().equals(java.lang.Void.TYPE)) {
- if(setMethod != null) {
- throw new IntrospectionException("Multiple, different set methods found that fit the bill!");
- } else {
- setMethod = current;
- propertyType = current.getParameterTypes()[0];
- }
- }
- }
- if(setMethod == null) {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
- } else {
- throw new IntrospectionException("Cannot find get or set methods.");
- }
- } catch(SecurityException E) {
- throw new IntrospectionException("SecurityException thrown on attempt to access methods.");
- }
+ if ((!getMethod.getDeclaringClass().
+ isAssignableFrom(setMethod.getDeclaringClass())) &&
+ (!setMethod.getDeclaringClass().
+ isAssignableFrom(getMethod.getDeclaringClass()))) {
+ String msg = "set and get methods are not in the same class.";
+ throw new IntrospectionException(msg);
}
+ }
+ }
+ }
}
diff --git a/libjava/java/io/BufferedOutputStream.java b/libjava/java/io/BufferedOutputStream.java
index 2cbdd4a1687..e324cbcf938 100644
--- a/libjava/java/io/BufferedOutputStream.java
+++ b/libjava/java/io/BufferedOutputStream.java
@@ -1,5 +1,5 @@
/* BufferedOutputStream.java -- Buffer output into large blocks before writing
- Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -189,11 +189,11 @@ finalize() throws IOException
public synchronized void
write(int b) throws IOException
{
- buf[count] = (byte)(b & 0xFF);
-
- ++count;
if (count == buf.length)
flush();
+
+ buf[count] = (byte)(b & 0xFF);
+ ++count;
}
/*************************************************************************/
diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java
index 2086f1057aa..6e5ce8e64ff 100644
--- a/libjava/java/io/File.java
+++ b/libjava/java/io/File.java
@@ -1,6 +1,6 @@
// File.java - File name
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of libgcj.
@@ -96,9 +96,13 @@ public class File implements Serializable, Comparable
if (dupIndex == -1)
{
- // Ignore trailing separator.
- if (plen > 1 && p.charAt(plen - 1) == separatorChar)
- return p.substring(0, plen - 1);
+ // Ignore trailing separator (though on Windows "a:\", for
+ // example, is a valid and minimal path).
+ if (plen > 1 && p.charAt (plen - 1) == separatorChar)
+ {
+ if (! (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':'))
+ return p.substring (0, plen - 1);
+ }
else
return p;
}
@@ -120,10 +124,16 @@ public class File implements Serializable, Comparable
dupIndex = p.indexOf(dupSeparator, last);
}
- // Again, ignore possible trailing separator.
+ // Again, ignore possible trailing separator (except special cases
+ // like "a:\" on Windows).
int end;
- if (plen > 1 && p.charAt(plen - 1) == separatorChar)
- end = plen - 1;
+ if (plen > 1 && p.charAt (plen - 1) == separatorChar)
+ {
+ if (separatorChar == '\\' && plen == 3 && p.charAt (1) == ':')
+ end = plen;
+ else
+ end = plen - 1;
+ }
else
end = plen;
newpath.append(p.substring(last, end));
@@ -153,12 +163,47 @@ public class File implements Serializable, Comparable
this (dir == null ? null : dir.path, name);
}
- // FIXME ???
public String getAbsolutePath ()
{
if (isAbsolute ())
return path;
- return System.getProperty("user.dir") + separatorChar + path;
+ else if (separatorChar == '\\'
+ && path.length () > 0 && path.charAt (0) == '\\')
+ {
+ // On Windows, even if the path starts with a '\\' it is not
+ // really absolute until we prefix the drive specifier from
+ // the current working directory to it.
+ return System.getProperty ("user.dir").substring (0, 2) + path;
+ }
+ else if (separatorChar == '\\'
+ && path.length () > 1 && path.charAt (1) == ':'
+ && ((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z')))
+ {
+ // On Windows, a process has a current working directory for
+ // each drive and a path like "G:foo\bar" would mean the
+ // absolute path "G:\wombat\foo\bar" if "\wombat" is the
+ // working directory on the G drive.
+ String drvDir = null;
+ try
+ {
+ drvDir = new File (path.substring (0, 2)).getCanonicalPath ();
+ }
+ catch (IOException e)
+ {
+ drvDir = path.substring (0, 2) + "\\";
+ }
+
+ // Note: this would return "C:\\." for the path "C:.", if "\"
+ // is the working folder on the C drive, but this is
+ // consistent with what Sun's JRE 1.4.1.01 actually returns!
+ if (path.length () > 2)
+ return drvDir + '\\' + path.substring (2, path.length ());
+ else
+ return drvDir;
+ }
+ else
+ return System.getProperty ("user.dir") + separatorChar + path;
}
/** @since 1.2 */
@@ -177,19 +222,84 @@ public class File implements Serializable, Comparable
public String getName ()
{
- int last = path.lastIndexOf(separatorChar);
- return path.substring(last + 1);
+ int nameSeqIndex = 0;
+
+ if (separatorChar == '\\' && path.length () > 1)
+ {
+ // On Windows, ignore the drive specifier or the leading '\\'
+ // of a UNC network path, if any (a.k.a. the "prefix").
+ if ((path.charAt (0) == '\\' && path.charAt (1) == '\\')
+ || (((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z'))
+ && path.charAt (1) == ':'))
+ {
+ if (path.length () > 2)
+ nameSeqIndex = 2;
+ else
+ return "";
+ }
+ }
+
+ String nameSeq
+ = (nameSeqIndex > 0 ? path.substring (nameSeqIndex) : path);
+
+ int last = nameSeq.lastIndexOf (separatorChar);
+
+ return nameSeq.substring (last + 1);
}
public String getParent ()
{
- int last = path.lastIndexOf(separatorChar);
- if (last == -1)
+ String prefix = null;
+ int nameSeqIndex = 0;
+
+ // The "prefix", if present, is the leading "/" on UNIX and
+ // either the drive specifier (e.g. "C:") or the leading "\\"
+ // of a UNC network path on Windows.
+ if (separatorChar == '/' && path.charAt (0) == '/')
+ {
+ prefix = "/";
+ nameSeqIndex = 1;
+ }
+ else if (separatorChar == '\\' && path.length () > 1)
+ {
+ if ((path.charAt (0) == '\\' && path.charAt (1) == '\\')
+ || (((path.charAt (0) >= 'a' && path.charAt (0) <= 'z')
+ || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z'))
+ && path.charAt (1) == ':'))
+ {
+ prefix = path.substring (0, 2);
+ nameSeqIndex = 2;
+ }
+ }
+
+ // According to the JDK docs, the returned parent path is the
+ // portion of the name sequence before the last separator
+ // character, if found, prefixed by the prefix, otherwise null.
+ if (nameSeqIndex < path.length ())
+ {
+ String nameSeq = path.substring (nameSeqIndex, path.length ());
+ int last = nameSeq.lastIndexOf (separatorChar);
+ if (last == -1)
+ return prefix;
+ else if (last == (nameSeq.length () - 1))
+ // Note: The path would not have a trailing separator
+ // except for cases like "C:\" on Windows (see
+ // normalizePath( )), where Sun's JRE 1.4 returns null.
+ return null;
+ else if (last == 0)
+ last++;
+
+ if (prefix != null)
+ return prefix + nameSeq.substring (0, last);
+ else
+ return nameSeq.substring (0, last);
+ }
+ else
+ // Sun's JRE 1.4 returns null if the prefix is the only
+ // component of the path - so "/" gives null on UNIX and
+ // "C:", "\\", etc. return null on Windows.
return null;
- // FIXME: POSIX assumption.
- if (last == 0 && path.charAt (0) == '/')
- ++last;
- return path.substring(0, last);
}
/** @since 1.2 */
@@ -289,8 +399,14 @@ public class File implements Serializable, Comparable
public URL toURL () throws MalformedURLException
{
- return new URL ("file://" + getAbsolutePath ()
- + (isDirectory() ? "/" : ""));
+ // On Win32, Sun's JDK returns URLs of the form "file:/c:/foo/bar.txt",
+ // while on UNIX, it returns URLs of the form "file:/foo/bar.txt".
+ if (separatorChar == '\\')
+ return new URL ("file:/" + getAbsolutePath ().replace ('\\', '/')
+ + (isDirectory() ? "/" : ""));
+ else
+ return new URL ("file:" + getAbsolutePath ()
+ + (isDirectory() ? "/" : ""));
}
private final native boolean performMkdir ();
diff --git a/libjava/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java
index 08f8edfaa0d..f105c6f8ab0 100644
--- a/libjava/java/io/FileDescriptor.java
+++ b/libjava/java/io/FileDescriptor.java
@@ -1,6 +1,6 @@
// FileDescriptor.java - Open file or device
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -101,4 +101,6 @@ public final class FileDescriptor
// we want to make sure this has the value -1. This is the most
// efficient way to accomplish that.
private int fd = -1;
+
+ private long position = 0;
}
diff --git a/libjava/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java
index d7efc26db87..85d7bbe0879 100644
--- a/libjava/java/io/FileInputStream.java
+++ b/libjava/java/io/FileInputStream.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -61,8 +61,8 @@ public class FileInputStream extends InputStream
protected void finalize() throws IOException
{
- if (fd != null)
- fd.finalize();
+ // We don't actually need this, but we include it because it is
+ // mentioned in the JCL.
}
public final FileDescriptor getFD() throws IOException
diff --git a/libjava/java/io/InputStreamReader.java b/libjava/java/io/InputStreamReader.java
index fff979c97ac..80272d01a22 100644
--- a/libjava/java/io/InputStreamReader.java
+++ b/libjava/java/io/InputStreamReader.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -70,7 +70,10 @@ public class InputStreamReader extends Reader
}
}
- public String getEncoding() { return converter.getName(); }
+ public String getEncoding()
+ {
+ return in != null ? converter.getName() : null;
+ }
public boolean ready() throws IOException
{
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java
index 08ce401fad8..2056925409d 100644
--- a/libjava/java/io/ObjectInputStream.java
+++ b/libjava/java/io/ObjectInputStream.java
@@ -1,5 +1,5 @@
/* ObjectInputStream.java -- Class used to read serialized objects
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath 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 Classpath 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
@@ -38,8 +38,6 @@ exception statement from your version. */
package java.io;
-import gnu.classpath.Configuration;
-
import java.lang.reflect.Array;
import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
@@ -53,7 +51,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
-
+import gnu.classpath.Configuration;
public class ObjectInputStream extends InputStream
implements ObjectInput, ObjectStreamConstants
@@ -130,287 +128,329 @@ public class ObjectInputStream extends InputStream
Object ret_val;
was_deserializing = this.isDeserializing;
- if (! was_deserializing)
- setBlockDataMode (false);
+ boolean is_consumed = false;
+ boolean old_mode = setBlockDataMode (false);
this.isDeserializing = true;
byte marker = this.realInputStream.readByte ();
dumpElement ("MARKER: 0x" + Integer.toHexString(marker) + " ");
- switch (marker)
- {
- case TC_BLOCKDATA:
- case TC_BLOCKDATALONG:
- if (marker == TC_BLOCKDATALONG)
- dumpElementln ("BLOCKDATALONG");
- else
- dumpElementln ("BLOCKDATA");
- readNextBlock (marker);
- throw new StreamCorruptedException ("Unexpected blockData");
-
- case TC_NULL:
- dumpElementln ("NULL");
- ret_val = null;
- break;
-
- case TC_REFERENCE:
- {
- dumpElement ("REFERENCE ");
- Integer oid = new Integer (this.realInputStream.readInt ());
- dumpElementln (Integer.toHexString(oid.intValue()));
- ret_val = ((ObjectIdentityWrapper)
- this.objectLookupTable.get (oid)).object;
- break;
- }
-
- case TC_CLASS:
- {
- dumpElementln ("CLASS");
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class clazz = osc.forClass ();
- assignNewHandle (clazz);
- ret_val = clazz;
- break;
- }
-
- case TC_CLASSDESC:
- {
- dumpElement ("CLASSDESC NAME=");
- String name = this.realInputStream.readUTF ();
- dumpElement (name + "; UID=");
- long uid = this.realInputStream.readLong ();
- dumpElement (Long.toHexString(uid) + "; FLAGS=");
- byte flags = this.realInputStream.readByte ();
- dumpElement (Integer.toHexString(flags) + "; FIELD COUNT=");
- short field_count = this.realInputStream.readShort ();
- dumpElementln (Short.toString(field_count));
- ObjectStreamField[] fields = new ObjectStreamField[field_count];
-
- ObjectStreamClass osc = new ObjectStreamClass (name, uid,
- flags, fields);
- assignNewHandle (osc);
-
- for (int i=0; i < field_count; i++)
- {
- dumpElement (" TYPE CODE=");
- char type_code = (char)this.realInputStream.readByte ();
- dumpElement (type_code + "; FIELD NAME=");
- String field_name = this.realInputStream.readUTF ();
- dumpElementln (field_name);
- String class_name;
-
- if (type_code == 'L' || type_code == '[')
- class_name = (String)readObject ();
- else
- class_name = String.valueOf (type_code);
-
- fields[i] =
- new ObjectStreamField (field_name,
- TypeSignature.getClassForEncoding
- (class_name));
- }
-
- Class cl = resolveClass (osc);
- osc.setClass (cl);
- setBlockDataMode (false);
-
- if (this.realInputStream.readByte () != TC_ENDBLOCKDATA)
- throw new IOException ("Data annotated to class was not consumed.");
- dumpElementln ("ENDBLOCKDATA ");
-
- osc.setSuperclass ((ObjectStreamClass)readObject ());
- ret_val = osc;
- break;
- }
-
- case TC_STRING:
- {
- dumpElement ("STRING=");
- String s = this.realInputStream.readUTF ();
- dumpElementln (s);
- ret_val = processResolution (s, assignNewHandle (s));
- break;
- }
-
- case TC_ARRAY:
- {
- dumpElementln ("ARRAY");
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class componentType = osc.forClass ().getComponentType ();
- dumpElement ("ARRAY LENGTH=");
- int length = this.realInputStream.readInt ();
- dumpElementln (length + "; COMPONENT TYPE=" + componentType);
- Object array = Array.newInstance (componentType, length);
- int handle = assignNewHandle (array);
- readArrayElements (array, componentType);
- for (int i=0, len=Array.getLength(array); i < len; i++)
- dumpElementln (" ELEMENT[" + i + "]=" + Array.get(array, i));
- ret_val = processResolution (array, handle);
- break;
- }
-
- case TC_OBJECT:
+ try
{
- dumpElementln ("OBJECT");
- ObjectStreamClass osc = (ObjectStreamClass)readObject ();
- Class clazz = osc.forClass ();
-
- if (!Serializable.class.isAssignableFrom (clazz))
- throw new NotSerializableException (clazz + " is not Serializable, and thus cannot be deserialized.");
-
- if (Externalizable.class.isAssignableFrom (clazz))
- {
- Externalizable obj = null;
-
- try
- {
- obj = (Externalizable)clazz.newInstance ();
- }
- catch (InstantiationException e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created");
- }
- catch (IllegalAccessException e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created because class or zero-argument constructor is not accessible");
- }
- catch (NoSuchMethodError e)
- {
- throw new ClassNotFoundException ("Instance of " + clazz
- + " could not be created because zero-argument constructor is not defined");
- }
-
- int handle = assignNewHandle (obj);
-
- boolean read_from_blocks = ((osc.getFlags () & SC_BLOCK_DATA) != 0);
-
- if (read_from_blocks)
- setBlockDataMode (true);
-
- obj.readExternal (this);
-
- if (read_from_blocks)
- setBlockDataMode (false);
-
- ret_val = processResolution (obj, handle);
- break;
- } // end if (Externalizable.class.isAssignableFrom (clazz))
-
- // find the first non-serializable, non-abstract
- // class in clazz's inheritance hierarchy
- Class first_nonserial = clazz.getSuperclass ();
- while (Serializable.class.isAssignableFrom (first_nonserial)
- || Modifier.isAbstract (first_nonserial.getModifiers ()))
- first_nonserial = first_nonserial.getSuperclass ();
-
-// DEBUGln ("Using " + first_nonserial
-// + " as starting point for constructing " + clazz);
-
- Object obj = null;
- obj = newObject (clazz, first_nonserial);
-
- if (obj == null)
- throw new ClassNotFoundException ("Instance of " + clazz +
- " could not be created");
-
- int handle = assignNewHandle (obj);
- this.currentObject = obj;
- ObjectStreamClass[] hierarchy =
- ObjectStreamClass.getObjectStreamClasses (clazz);
-
-// DEBUGln ("Got class hierarchy of depth " + hierarchy.length);
-
- boolean has_read;
- for (int i=0; i < hierarchy.length; i++)
- {
- this.currentObjectStreamClass = hierarchy[i];
-
- dumpElementln ("Reading fields of "
- + this.currentObjectStreamClass.getName ());
-
- has_read = true;
-
- try
- {
- this.currentObjectStreamClass.forClass ().
- getDeclaredMethod ("readObject", readObjectParams);
- }
- catch (NoSuchMethodException e)
+ switch (marker)
{
- has_read = false;
+ case TC_ENDBLOCKDATA:
+ {
+ ret_val = null;
+ is_consumed = true;
+ break;
+ }
+
+ case TC_BLOCKDATA:
+ case TC_BLOCKDATALONG:
+ {
+ if (marker == TC_BLOCKDATALONG)
+ dumpElementln ("BLOCKDATALONG");
+ else
+ dumpElementln ("BLOCKDATA");
+ readNextBlock (marker);
+ throw new StreamCorruptedException ("Unexpected blockData");
+ }
+
+ case TC_NULL:
+ {
+ dumpElementln ("NULL");
+ ret_val = null;
+ break;
+ }
+
+ case TC_REFERENCE:
+ {
+ dumpElement ("REFERENCE ");
+ Integer oid = new Integer (this.realInputStream.readInt ());
+ dumpElementln (Integer.toHexString(oid.intValue()));
+ ret_val = ((ObjectIdentityWrapper)
+ this.objectLookupTable.get (oid)).object;
+ break;
+ }
+
+ case TC_CLASS:
+ {
+ dumpElementln ("CLASS");
+ ObjectStreamClass osc = (ObjectStreamClass)readObject ();
+ Class clazz = osc.forClass ();
+ assignNewHandle (clazz);
+ ret_val = clazz;
+ break;
+ }
+
+ case TC_PROXYCLASSDESC:
+ {
+ dumpElementln ("PROXYCLASS");
+ int n_intf = this.realInputStream.readInt();
+ String[] intfs = new String[n_intf];
+ for (int i = 0; i < n_intf; i++)
+ {
+ intfs[i] = this.realInputStream.readUTF();
+ System.out.println(intfs[i]);
+ }
+
+ boolean oldmode = setBlockDataMode (true);
+ Class cl = resolveProxyClass(intfs);
+ setBlockDataMode(oldmode);
+
+ ObjectStreamClass osc = ObjectStreamClass.lookup(cl);
+ assignNewHandle (osc);
+
+ if (!is_consumed)
+ {
+ byte b = this.realInputStream.readByte ();
+ if (b != TC_ENDBLOCKDATA)
+ throw new IOException ("Data annotated to class was not consumed." + b);
+ }
+ else
+ is_consumed = false;
+ ObjectStreamClass superosc = (ObjectStreamClass)readObject ();
+ osc.setSuperclass (superosc);
+ ret_val = osc;
+ break;
+ }
+
+ case TC_CLASSDESC:
+ {
+ dumpElement ("CLASSDESC NAME=");
+ String name = this.realInputStream.readUTF ();
+ dumpElement (name + "; UID=");
+ long uid = this.realInputStream.readLong ();
+ dumpElement (Long.toHexString(uid) + "; FLAGS=");
+ byte flags = this.realInputStream.readByte ();
+ dumpElement (Integer.toHexString(flags) + "; FIELD COUNT=");
+ short field_count = this.realInputStream.readShort ();
+ dumpElementln (Short.toString(field_count));
+ ObjectStreamField[] fields = new ObjectStreamField[field_count];
+ ObjectStreamClass osc = new ObjectStreamClass (name, uid,
+ flags, fields);
+ assignNewHandle (osc);
+
+ for (int i=0; i < field_count; i++)
+ {
+ dumpElement (" TYPE CODE=");
+ char type_code = (char)this.realInputStream.readByte ();
+ dumpElement (type_code + "; FIELD NAME=");
+ String field_name = this.realInputStream.readUTF ();
+ dumpElementln (field_name);
+ String class_name;
+
+ if (type_code == 'L' || type_code == '[')
+ class_name = (String)readObject ();
+ else
+ class_name = String.valueOf (type_code);
+
+ // There're many cases you can't get java.lang.Class from
+ // typename if your context class loader can't load it,
+ // then use typename to construct the field
+ fields[i] =
+ new ObjectStreamField (field_name, class_name);
+ }
+
+ boolean oldmode = setBlockDataMode (true);
+ osc.setClass (resolveClass (osc));
+ setBlockDataMode (oldmode);
+
+ if (!is_consumed)
+ {
+ byte b = this.realInputStream.readByte ();
+ if (b != TC_ENDBLOCKDATA)
+ throw new IOException ("Data annotated to class was not consumed." + b);
+ }
+ else
+ is_consumed = false;
+
+ osc.setSuperclass ((ObjectStreamClass)readObject ());
+ ret_val = osc;
+ break;
+ }
+
+ case TC_STRING:
+ case TC_LONGSTRING:
+ {
+ dumpElement ("STRING=");
+ String s = this.realInputStream.readUTF ();
+ dumpElementln (s);
+ ret_val = processResolution (s, assignNewHandle (s));
+ break;
+ }
+
+ case TC_ARRAY:
+ {
+ dumpElementln ("ARRAY");
+ ObjectStreamClass osc = (ObjectStreamClass)readObject ();
+ Class componentType = osc.forClass ().getComponentType ();
+ dumpElement ("ARRAY LENGTH=");
+ int length = this.realInputStream.readInt ();
+ dumpElementln (length + "; COMPONENT TYPE=" + componentType);
+ Object array = Array.newInstance (componentType, length);
+ int handle = assignNewHandle (array);
+ readArrayElements (array, componentType);
+ for (int i=0, len=Array.getLength(array); i < len; i++)
+ dumpElementln (" ELEMENT[" + i + "]=" + Array.get(array, i));
+ ret_val = processResolution (array, handle);
+ break;
+ }
+
+ case TC_OBJECT:
+ {
+ dumpElementln ("OBJECT");
+ ObjectStreamClass osc = (ObjectStreamClass)readObject ();
+ Class clazz = osc.forClass ();
+
+ if (!Serializable.class.isAssignableFrom (clazz))
+ throw new NotSerializableException (clazz + " is not Serializable, and thus cannot be deserialized.");
+
+ if (Externalizable.class.isAssignableFrom (clazz))
+ {
+ Externalizable obj = null;
+
+ try
+ {
+ obj = (Externalizable)clazz.newInstance ();
+ }
+ catch (InstantiationException e)
+ {
+ throw new ClassNotFoundException ("Instance of " + clazz
+ + " could not be created");
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new ClassNotFoundException ("Instance of " + clazz
+ + " could not be created because class or zero-argument constructor is not accessible");
+ }
+ catch (NoSuchMethodError e)
+ {
+ throw new ClassNotFoundException ("Instance of " + clazz
+ + " could not be created because zero-argument constructor is not defined");
+ }
+
+ int handle = assignNewHandle (obj);
+
+ boolean read_from_blocks = ((osc.getFlags () & SC_BLOCK_DATA) != 0);
+
+ boolean oldmode = this.readDataFromBlock;
+ if (read_from_blocks)
+ setBlockDataMode (true);
+
+ obj.readExternal (this);
+
+ if (read_from_blocks)
+ setBlockDataMode (oldmode);
+
+ ret_val = processResolution (obj, handle);
+ break;
+ } // end if (Externalizable.class.isAssignableFrom (clazz))
+
+ // find the first non-serializable, non-abstract
+ // class in clazz's inheritance hierarchy
+ Class first_nonserial = clazz.getSuperclass ();
+ while (Serializable.class.isAssignableFrom (first_nonserial)
+ || Modifier.isAbstract (first_nonserial.getModifiers ()))
+ first_nonserial = first_nonserial.getSuperclass ();
+
+ Object obj = null;
+ obj = newObject (clazz, first_nonserial);
+
+ if (obj == null)
+ throw new ClassNotFoundException ("Instance of " + clazz +
+ " could not be created");
+
+ int handle = assignNewHandle (obj);
+ this.currentObject = obj;
+ ObjectStreamClass[] hierarchy =
+ ObjectStreamClass.getObjectStreamClasses (clazz);
+
+ for (int i=0; i < hierarchy.length; i++)
+ {
+ this.currentObjectStreamClass = hierarchy[i];
+
+ dumpElementln ("Reading fields of "
+ + this.currentObjectStreamClass.getName ());
+
+ // XXX: should initialize fields in classes in the hierarchy
+ // that aren't in the stream
+ // should skip over classes in the stream that aren't in the
+ // real classes hierarchy
+
+ if (this.currentObjectStreamClass.hasReadMethod())
+ {
+ fieldsAlreadyRead = false;
+ boolean oldmode = setBlockDataMode (true);
+ callReadMethod (obj, this.currentObjectStreamClass);
+ setBlockDataMode (oldmode);
+ dumpElement ("ENDBLOCKDATA? ");
+ try
+ {
+ // FIXME: XXX: This try block is to catch EOF which is
+ // thrown for some objects. That indicates a bug in the logic.
+ if (this.realInputStream.readByte () != TC_ENDBLOCKDATA)
+ throw new IOException ("No end of block data seen for class with readObject (ObjectInputStream) method.");
+ dumpElementln ("yes");
+ }
+ catch (EOFException e)
+ {
+ dumpElementln ("no, got EOFException");
+ }
+ catch (IOException e)
+ {
+ dumpElementln ("no, got IOException");
+ }
+ }
+ else
+ {
+ readFields (obj, currentObjectStreamClass);
+ }
+ }
+
+ this.currentObject = null;
+ this.currentObjectStreamClass = null;
+ ret_val = processResolution (obj, handle);
+ break;
+ }
+
+ case TC_RESET:
+ dumpElementln ("RESET");
+ clearHandles ();
+ ret_val = readObject ();
+ break;
+
+ case TC_EXCEPTION:
+ {
+ dumpElement ("EXCEPTION=");
+ Exception e = (Exception)readObject ();
+ dumpElementln (e.toString());
+ clearHandles ();
+ throw new WriteAbortedException ("Exception thrown during writing of stream", e);
+ }
+
+ default:
+ throw new IOException ("Unknown marker on stream: " + marker);
}
-
- // XXX: should initialize fields in classes in the hierarchy
- // that aren't in the stream
- // should skip over classes in the stream that aren't in the
- // real classes hierarchy
- readFields (obj, this.currentObjectStreamClass.fields,
- has_read, this.currentObjectStreamClass);
-
- if (has_read)
- {
- dumpElement ("ENDBLOCKDATA? ");
- try
- {
- // FIXME: XXX: This try block is to catch EOF which is
- // thrown for some objects. That indicates a bug in the logic.
- if (this.realInputStream.readByte () != TC_ENDBLOCKDATA)
- throw new IOException ("No end of block data seen for class with readObject (ObjectInputStream) method.");
- dumpElementln ("yes");
- }
- catch (EOFException e)
- {
- dumpElementln ("no, got EOFException");
- }
- catch (IOException e)
- {
- dumpElementln ("no, got IOException");
- }
- }
- }
-
- this.currentObject = null;
- this.currentObjectStreamClass = null;
- ret_val = processResolution (obj, handle);
- break;
}
-
- case TC_RESET:
- dumpElementln ("RESET");
- clearHandles ();
- ret_val = readObject ();
- break;
-
- case TC_EXCEPTION:
+ finally
{
- dumpElement ("EXCEPTION=");
- Exception e = (Exception)readObject ();
- dumpElementln (e.toString());
- clearHandles ();
- throw new WriteAbortedException ("Exception thrown during writing of stream", e);
+ setBlockDataMode (old_mode);
+
+ this.isDeserializing = was_deserializing;
+
+ if (! was_deserializing)
+ {
+ if (validators.size () > 0)
+ invokeValidators ();
+ }
}
-
- default:
- throw new IOException ("Unknown marker on stream");
- }
-
- this.isDeserializing = was_deserializing;
-
- if (! was_deserializing)
- {
- setBlockDataMode (true);
-
- if (validators.size () > 0)
- invokeValidators ();
- }
-
+
return ret_val;
}
-
/**
Reads the current objects non-transient, non-static fields from
the current class from the underlying output stream.
@@ -439,9 +479,9 @@ public class ObjectInputStream extends InputStream
if (fieldsAlreadyRead)
throw new NotActiveException ("defaultReadObject called but fields already read from stream (by defaultReadObject or readFields)");
- readFields (this.currentObject,
- this.currentObjectStreamClass.fields,
- false, this.currentObjectStreamClass);
+ boolean oldmode = setBlockDataMode(false);
+ readFields (this.currentObject, this.currentObjectStreamClass);
+ setBlockDataMode(oldmode);
fieldsAlreadyRead = true;
}
@@ -500,13 +540,18 @@ public class ObjectInputStream extends InputStream
throws ClassNotFoundException, IOException
{
SecurityManager sm = System.getSecurityManager ();
+ if (sm == null)
+ sm = new SecurityManager () {};
// FIXME: currentClassLoader doesn't yet do anything useful. We need
// to call forName() with the classloader of the class which called
// readObject(). See SecurityManager.getClassContext().
ClassLoader cl = currentClassLoader (sm);
- return Class.forName (osc.getName (), true, cl);
+ if (cl == null)
+ return Class.forName (osc.getName ());
+ else
+ return cl.loadClass (osc.getName ());
}
/**
@@ -569,7 +614,7 @@ public class ObjectInputStream extends InputStream
{
SecurityManager sm = System.getSecurityManager ();
if (sm != null)
- sm.checkPermission (new SerializablePermission ("enableSubtitution"));
+ sm.checkPermission (new SerializablePermission ("enableSubstitution"));
}
boolean old_val = this.resolveEnabled;
@@ -603,11 +648,11 @@ public class ObjectInputStream extends InputStream
public int read () throws IOException
{
if (this.readDataFromBlock)
- {
- if (this.blockDataPosition >= this.blockDataBytes)
- readNextBlock ();
- return (this.blockData[this.blockDataPosition++] & 0xff);
- }
+ {
+ if (this.blockDataPosition >= this.blockDataBytes)
+ readNextBlock ();
+ return (this.blockData[this.blockDataPosition++] & 0xff);
+ }
else
return this.realInputStream.read ();
}
@@ -615,16 +660,26 @@ public class ObjectInputStream extends InputStream
public int read (byte[] data, int offset, int length) throws IOException
{
if (this.readDataFromBlock)
- {
- if (this.blockDataPosition + length > this.blockDataBytes)
- readNextBlock ();
+ {
+ if (this.blockDataPosition + length > this.blockDataBytes)
+ {
+ int remain = this.blockDataBytes - this.blockDataPosition;
+ if (remain != 0)
+ {
+ System.arraycopy (this.blockData, this.blockDataPosition,
+ data, offset, remain);
+ offset += remain;
+ length -= remain;
+ }
+ readNextBlock ();
+ }
- System.arraycopy (this.blockData, this.blockDataPosition,
- data, offset, length);
- blockDataPosition += length;
+ System.arraycopy (this.blockData, this.blockDataPosition,
+ data, offset, length);
+ this.blockDataPosition += length;
- return length;
- }
+ return length;
+ }
else
return this.realInputStream.read (data, offset, length);
}
@@ -632,12 +687,12 @@ public class ObjectInputStream extends InputStream
public int available () throws IOException
{
if (this.readDataFromBlock)
- {
- if (this.blockDataPosition >= this.blockDataBytes)
- readNextBlock ();
+ {
+ if (this.blockDataPosition >= this.blockDataBytes)
+ readNextBlock ();
- return this.blockDataBytes - this.blockDataPosition;
- }
+ return this.blockDataBytes - this.blockDataPosition;
+ }
else
return this.realInputStream.available ();
}
@@ -785,181 +840,181 @@ public class ObjectInputStream extends InputStream
// Apparently Block data is not used with GetField as per
// empirical evidence against JDK 1.2. Also see Mauve test
// java.io.ObjectInputOutput.Test.GetPutField.
- setBlockDataMode (false);
+ boolean oldmode = setBlockDataMode (false);
readFully (prim_field_data);
for (int i = 0; i < objs.length; ++ i)
objs[i] = readObject ();
- setBlockDataMode (true);
+ setBlockDataMode (oldmode);
return new GetField ()
- {
- public ObjectStreamClass getObjectStreamClass ()
{
- return clazz;
- }
+ public ObjectStreamClass getObjectStreamClass ()
+ {
+ return clazz;
+ }
- public boolean defaulted (String name)
- throws IOException, IllegalArgumentException
- {
- return clazz.getField (name) == null;
- }
+ public boolean defaulted (String name)
+ throws IOException, IllegalArgumentException
+ {
+ return clazz.getField (name) == null;
+ }
- public boolean get (String name, boolean defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Boolean.TYPE);
+ public boolean get (String name, boolean defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Boolean.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- return prim_field_data[field.getOffset ()] == 0 ? false : true;
- }
+ return prim_field_data[field.getOffset ()] == 0 ? false : true;
+ }
- public char get (String name, char defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Character.TYPE);
+ public char get (String name, char defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Character.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- int off = field.getOffset ();
+ int off = field.getOffset ();
- return (char)(((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
+ return (char)(((prim_field_data[off++] & 0xFF) << 8)
+ | (prim_field_data[off] & 0xFF));
+ }
- public byte get (String name, byte defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Byte.TYPE);
+ public byte get (String name, byte defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Byte.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- return prim_field_data[field.getOffset ()];
- }
+ return prim_field_data[field.getOffset ()];
+ }
- public short get (String name, short defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Short.TYPE);
+ public short get (String name, short defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Short.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- int off = field.getOffset ();
+ int off = field.getOffset ();
- return (short)(((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
+ return (short)(((prim_field_data[off++] & 0xFF) << 8)
+ | (prim_field_data[off] & 0xFF));
+ }
- public int get (String name, int defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Integer.TYPE);
+ public int get (String name, int defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Integer.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- int off = field.getOffset ();
+ int off = field.getOffset ();
- return ((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF);
- }
+ return ((prim_field_data[off++] & 0xFF) << 24)
+ | ((prim_field_data[off++] & 0xFF) << 16)
+ | ((prim_field_data[off++] & 0xFF) << 8)
+ | (prim_field_data[off] & 0xFF);
+ }
- public long get (String name, long defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Long.TYPE);
+ public long get (String name, long defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Long.TYPE);
+
+ if (field == null)
+ return defvalue;
+
+ int off = field.getOffset ();
+
+ return (long)(((prim_field_data[off++] & 0xFF) << 56)
+ | ((prim_field_data[off++] & 0xFF) << 48)
+ | ((prim_field_data[off++] & 0xFF) << 40)
+ | ((prim_field_data[off++] & 0xFF) << 32)
+ | ((prim_field_data[off++] & 0xFF) << 24)
+ | ((prim_field_data[off++] & 0xFF) << 16)
+ | ((prim_field_data[off++] & 0xFF) << 8)
+ | (prim_field_data[off] & 0xFF));
+ }
+
+ public float get (String name, float defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Float.TYPE);
+
+ if (field == null)
+ return defvalue;
+
+ int off = field.getOffset ();
+
+ return Float.intBitsToFloat (((prim_field_data[off++] & 0xFF) << 24)
+ | ((prim_field_data[off++] & 0xFF) << 16)
+ | ((prim_field_data[off++] & 0xFF) << 8)
+ | (prim_field_data[off] & 0xFF));
+ }
+
+ public double get (String name, double defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field = getField (name, Double.TYPE);
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- int off = field.getOffset ();
+ int off = field.getOffset ();
- return (long)(((prim_field_data[off++] & 0xFF) << 56)
+ return Double.longBitsToDouble
+ ( (long) (((prim_field_data[off++] & 0xFF) << 56)
| ((prim_field_data[off++] & 0xFF) << 48)
| ((prim_field_data[off++] & 0xFF) << 40)
| ((prim_field_data[off++] & 0xFF) << 32)
| ((prim_field_data[off++] & 0xFF) << 24)
| ((prim_field_data[off++] & 0xFF) << 16)
| ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public float get (String name, float defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Float.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return Float.intBitsToFloat (((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF));
- }
-
- public double get (String name, double defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field = getField (name, Double.TYPE);
-
- if (field == null)
- return defvalue;
-
- int off = field.getOffset ();
-
- return Double.longBitsToDouble (
- (long)(((prim_field_data[off++] & 0xFF) << 56)
- | ((prim_field_data[off++] & 0xFF) << 48)
- | ((prim_field_data[off++] & 0xFF) << 40)
- | ((prim_field_data[off++] & 0xFF) << 32)
- | ((prim_field_data[off++] & 0xFF) << 24)
- | ((prim_field_data[off++] & 0xFF) << 16)
- | ((prim_field_data[off++] & 0xFF) << 8)
- | (prim_field_data[off] & 0xFF)));
- }
+ | (prim_field_data[off] & 0xFF)));
+ }
- public Object get (String name, Object defvalue)
- throws IOException, IllegalArgumentException
- {
- ObjectStreamField field =
- getField (name, defvalue == null ? null : defvalue.getClass ());
+ public Object get (String name, Object defvalue)
+ throws IOException, IllegalArgumentException
+ {
+ ObjectStreamField field =
+ getField (name, defvalue == null ? null : defvalue.getClass ());
- if (field == null)
- return defvalue;
+ if (field == null)
+ return defvalue;
- return objs[field.getOffset ()];
- }
+ return objs[field.getOffset ()];
+ }
- private ObjectStreamField getField (String name, Class type)
- throws IllegalArgumentException
- {
- ObjectStreamField field = clazz.getField (name);
+ private ObjectStreamField getField (String name, Class type)
+ throws IllegalArgumentException
+ {
+ ObjectStreamField field = clazz.getField (name);
- if (field == null)
- return null;
+ if (field == null)
+ return null;
- Class field_type = field.getType ();
+ Class field_type = field.getType ();
- if (type == field_type ||
- (type == null && ! field_type.isPrimitive ()))
- return field;
+ if (type == field_type ||
+ (type == null && ! field_type.isPrimitive ()))
+ return field;
- throw new IllegalArgumentException ("Field requested is of type "
- + field_type.getName ()
- + ", but requested type was "
- + (type == null ?
- "Object" : type.getName ()));
- }
- };
+ throw new IllegalArgumentException ("Field requested is of type "
+ + field_type.getName ()
+ + ", but requested type was "
+ + (type == null ?
+ "Object" : type.getName ()));
+ }
+ };
}
@@ -990,7 +1045,7 @@ public class ObjectInputStream extends InputStream
de serialization mechanism provided by
<code>ObjectInputStream</code>. To make this method be used for
writing objects, subclasses must invoke the 0-argument
- constructor on this class from there constructor.
+ constructor on this class from their constructor.
@see ObjectInputStream ()
*/
@@ -1005,15 +1060,7 @@ public class ObjectInputStream extends InputStream
private int assignNewHandle (Object obj)
{
this.objectLookupTable.put (new Integer (this.nextOID),
- new ObjectIdentityWrapper (obj));
-
-// try
-// {
-// DEBUG ("Assigning handle " + this.nextOID);
-// DEBUGln (" to " + obj);
-// }
-// catch (Throwable t) {}
-
+ new ObjectIdentityWrapper (obj));
return this.nextOID++;
}
@@ -1025,22 +1072,22 @@ public class ObjectInputStream extends InputStream
{
Method m = null;
try
- {
- Class classArgs[] = {};
- m = obj.getClass ().getDeclaredMethod ("readResolve", classArgs);
- // m can't be null by definition since an exception would
- // have been thrown so a check for null is not needed.
- obj = m.invoke (obj, new Object[] {});
- }
+ {
+ Class classArgs[] = {};
+ m = obj.getClass ().getDeclaredMethod ("readResolve", classArgs);
+ // m can't be null by definition since an exception would
+ // have been thrown so a check for null is not needed.
+ obj = m.invoke (obj, new Object[] {});
+ }
catch (NoSuchMethodException ignore)
- {
- }
+ {
+ }
catch (IllegalAccessException ignore)
- {
- }
+ {
+ }
catch (InvocationTargetException ignore)
- {
- }
+ {
+ }
}
if (this.resolveEnabled)
@@ -1062,7 +1109,6 @@ public class ObjectInputStream extends InputStream
private void readNextBlock () throws IOException
{
-// DEBUGln ("In readNextBlock ");
readNextBlock (this.realInputStream.readByte ());
}
@@ -1070,21 +1116,21 @@ public class ObjectInputStream extends InputStream
private void readNextBlock (byte marker) throws IOException
{
if (marker == TC_BLOCKDATA)
- {
- dumpElement ("BLOCK DATA SIZE=");
- this.blockDataBytes = this.realInputStream.readUnsignedByte ();
- dumpElementln (Integer.toString(this.blockDataBytes));
- }
+ {
+ dumpElement ("BLOCK DATA SIZE=");
+ this.blockDataBytes = this.realInputStream.readUnsignedByte ();
+ dumpElementln (Integer.toString(this.blockDataBytes));
+ }
else if (marker == TC_BLOCKDATALONG)
- {
- dumpElement ("BLOCK DATA LONG SIZE=");
- this.blockDataBytes = this.realInputStream.readInt ();
- dumpElementln (Integer.toString(this.blockDataBytes));
- }
+ {
+ dumpElement ("BLOCK DATA LONG SIZE=");
+ this.blockDataBytes = this.realInputStream.readInt ();
+ dumpElementln (Integer.toString(this.blockDataBytes));
+ }
else
- {
- throw new EOFException ("Attempt to read primitive data, but no data block is active.");
- }
+ {
+ throw new EOFException ("Attempt to read primitive data, but no data block is active.");
+ }
if (this.blockData.length < this.blockDataBytes)
this.blockData = new byte[this.blockDataBytes];
@@ -1098,89 +1144,77 @@ public class ObjectInputStream extends InputStream
throws ClassNotFoundException, IOException
{
if (clazz.isPrimitive ())
- {
- if (clazz == Boolean.TYPE)
- {
- boolean[] cast_array = (boolean[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readBoolean ();
- return;
- }
- if (clazz == Byte.TYPE)
- {
- byte[] cast_array = (byte[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readByte ();
- return;
- }
- if (clazz == Character.TYPE)
- {
- char[] cast_array = (char[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readChar ();
- return;
- }
- if (clazz == Double.TYPE)
- {
- double[] cast_array = (double[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readDouble ();
- return;
- }
- if (clazz == Float.TYPE)
- {
- float[] cast_array = (float[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readFloat ();
- return;
- }
- if (clazz == Integer.TYPE)
- {
- int[] cast_array = (int[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readInt ();
- return;
- }
- if (clazz == Long.TYPE)
{
- long[] cast_array = (long[])array;
- for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readLong ();
- return;
+ if (clazz == Boolean.TYPE)
+ {
+ boolean[] cast_array = (boolean[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readBoolean ();
+ return;
+ }
+ if (clazz == Byte.TYPE)
+ {
+ byte[] cast_array = (byte[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readByte ();
+ return;
+ }
+ if (clazz == Character.TYPE)
+ {
+ char[] cast_array = (char[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readChar ();
+ return;
+ }
+ if (clazz == Double.TYPE)
+ {
+ double[] cast_array = (double[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readDouble ();
+ return;
+ }
+ if (clazz == Float.TYPE)
+ {
+ float[] cast_array = (float[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readFloat ();
+ return;
+ }
+ if (clazz == Integer.TYPE)
+ {
+ int[] cast_array = (int[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readInt ();
+ return;
+ }
+ if (clazz == Long.TYPE)
+ {
+ long[] cast_array = (long[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readLong ();
+ return;
+ }
+ if (clazz == Short.TYPE)
+ {
+ short[] cast_array = (short[])array;
+ for (int i=0; i < cast_array.length; i++)
+ cast_array[i] = this.realInputStream.readShort ();
+ return;
+ }
}
- if (clazz == Short.TYPE)
+ else
{
- short[] cast_array = (short[])array;
+ Object[] cast_array = (Object[])array;
for (int i=0; i < cast_array.length; i++)
- cast_array[i] = this.realInputStream.readShort ();
- return;
- }
- }
- else
- {
- Object[] cast_array = (Object[])array;
- for (int i=0; i < cast_array.length; i++)
cast_array[i] = readObject ();
- }
+ }
}
- private void readFields (Object obj, ObjectStreamField[] stream_fields,
- boolean call_read_method,
- ObjectStreamClass stream_osc)
+ private void readFields (Object obj, ObjectStreamClass stream_osc)
throws ClassNotFoundException, IOException
{
-// DEBUGln ("In readFields");
- if (call_read_method)
- {
-// DEBUGln (" call_read_method is true");
- fieldsAlreadyRead = false;
- setBlockDataMode (true);
- callReadMethod (obj, stream_osc.forClass ());
- setBlockDataMode (false);
- return;
- }
-
+ ObjectStreamField[] stream_fields = stream_osc.fields;
ObjectStreamField[] real_fields =
ObjectStreamClass.lookup (stream_osc.forClass ()).fields;
@@ -1194,144 +1228,150 @@ public class ObjectInputStream extends InputStream
while (stream_idx < stream_fields.length
&& real_idx < real_fields.length)
- {
- default_initialize = false;
- set_value = true;
-
- if (stream_idx == stream_fields.length)
- default_initialize = true;
- else
- {
- stream_field = stream_fields[stream_idx];
- type = stream_field.getType ();
- }
-
- if (real_idx == real_fields.length)
- set_value = false;
- else
- {
- real_field = real_fields[real_idx];
- type = real_field.getType ();
- field_name = real_field.getName ();
- }
-
- if (set_value && !default_initialize)
{
- int comp_val =
- real_field.compareTo (stream_field);
+ default_initialize = false;
+ set_value = true;
- if (comp_val < 0)
- {
+ if (stream_idx == stream_fields.length)
default_initialize = true;
- real_idx++;
- }
- else if (comp_val > 0)
- {
+ else
+ {
+ stream_field = stream_fields[stream_idx];
+ type = stream_field.getType ();
+ }
+
+ if (real_idx == real_fields.length)
set_value = false;
- stream_idx++;
- }
else
- {
- real_idx++;
- stream_idx++;
- }
- }
+ {
+ real_field = real_fields[real_idx];
+ type = real_field.getType ();
+ field_name = real_field.getName ();
+ }
- if (type == Boolean.TYPE)
- {
- boolean value =
- default_initialize ? false : this.realInputStream.readBoolean ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setBooleanField (obj, field_name, value);
- }
- else if (type == Byte.TYPE)
- {
- byte value =
- default_initialize ? 0 : this.realInputStream.readByte ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setByteField (obj, field_name, value);
- }
- else if (type == Character.TYPE)
- {
- char value =
- default_initialize ? (char)0 : this.realInputStream.readChar ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setCharField (obj, field_name, value);
- }
- else if (type == Double.TYPE)
- {
- double value =
- default_initialize ? 0 : this.realInputStream.readDouble ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setDoubleField (obj, field_name, value);
- }
- else if (type == Float.TYPE)
- {
- float value =
- default_initialize ? 0 : this.realInputStream.readFloat ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setFloatField (obj, field_name, value);
- }
- else if (type == Integer.TYPE)
- {
- int value =
- default_initialize ? 0 : this.realInputStream.readInt ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setIntField (obj, field_name, value);
- }
- else if (type == Long.TYPE)
- {
- long value =
- default_initialize ? 0 : this.realInputStream.readLong ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setLongField (obj, field_name, value);
- }
- else if (type == Short.TYPE)
- {
- short value =
- default_initialize ? (short)0 : this.realInputStream.readShort ();
- if (!default_initialize && set_value)
- dumpElementln (" " + field_name + ": " + value);
- if (set_value)
- setShortField (obj, field_name, value);
- }
- else
- {
- Object value =
- default_initialize ? null : readObject ();
- if (set_value)
- setObjectField (obj, field_name,
- real_field.getTypeString (), value);
+ if (set_value && !default_initialize)
+ {
+ int comp_val =
+ real_field.compareTo (stream_field);
+
+ if (comp_val < 0)
+ {
+ default_initialize = true;
+ real_idx++;
+ }
+ else if (comp_val > 0)
+ {
+ set_value = false;
+ stream_idx++;
+ }
+ else
+ {
+ real_idx++;
+ stream_idx++;
+ }
+ }
+
+ try
+ {
+ if (type == Boolean.TYPE)
+ {
+ boolean value =
+ default_initialize ? false : this.realInputStream.readBoolean ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setBooleanField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Byte.TYPE)
+ {
+ byte value =
+ default_initialize ? 0 : this.realInputStream.readByte ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setByteField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Character.TYPE)
+ {
+ char value =
+ default_initialize ? (char)0 : this.realInputStream.readChar ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setCharField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Double.TYPE)
+ {
+ double value =
+ default_initialize ? 0 : this.realInputStream.readDouble ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setDoubleField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Float.TYPE)
+ {
+ float value =
+ default_initialize ? 0 : this.realInputStream.readFloat ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setFloatField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Integer.TYPE)
+ {
+ int value =
+ default_initialize ? 0 : this.realInputStream.readInt ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setIntField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Long.TYPE)
+ {
+ long value =
+ default_initialize ? 0 : this.realInputStream.readLong ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setLongField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else if (type == Short.TYPE)
+ {
+ short value =
+ default_initialize ? (short)0 : this.realInputStream.readShort ();
+ if (!default_initialize && set_value)
+ dumpElementln (" " + field_name + ": " + value);
+ if (set_value)
+ setShortField (obj, stream_osc.forClass (), field_name, value);
+ }
+ else
+ {
+ Object value =
+ default_initialize ? null : readObject ();
+ if (set_value)
+ setObjectField (obj, stream_osc.forClass (), field_name,
+ real_field.getTypeString (), value);
+ }
+ }
+ catch (NoSuchFieldError e)
+ {
+ dumpElementln("XXXX " + field_name + " does not exist.");
+ }
}
- }
}
-
// Toggles writing primitive data to block-data buffer.
- private void setBlockDataMode (boolean on)
+ private boolean setBlockDataMode (boolean on)
{
-// DEBUGln ("Setting block data mode to " + on);
-
+ boolean oldmode = this.readDataFromBlock;
this.readDataFromBlock = on;
if (on)
this.dataInputStream = this.blockDataInput;
else
this.dataInputStream = this.realInputStream;
+ return oldmode;
}
@@ -1340,15 +1380,15 @@ public class ObjectInputStream extends InputStream
private Object newObject (Class real_class, Class constructor_class)
{
try
- {
- Object obj = allocateObject (real_class);
- callConstructor (constructor_class, obj);
- return obj;
- }
+ {
+ Object obj = allocateObject (real_class);
+ callConstructor (constructor_class, obj);
+ return obj;
+ }
catch (InstantiationException e)
- {
- return null;
- }
+ {
+ return null;
+ }
}
@@ -1361,14 +1401,14 @@ public class ObjectInputStream extends InputStream
Arrays.sort (validators);
try
- {
- for (int i=0; i < validators.length; i++)
- ((ObjectInputValidation)validators[i]).validateObject ();
- }
+ {
+ for (int i=0; i < validators.length; i++)
+ ((ObjectInputValidation)validators[i]).validateObject ();
+ }
finally
- {
- this.validators.removeAllElements ();
- }
+ {
+ this.validators.removeAllElements ();
+ }
}
@@ -1380,14 +1420,21 @@ public class ObjectInputStream extends InputStream
return ClassLoader.getSystemClassLoader ();
}
- private static native Field getField (Class klass, String name)
- throws java.lang.NoSuchFieldException;
+ private static Field getField (Class klass, String name)
+ throws java.lang.NoSuchFieldException
+ {
+ return klass.getDeclaredField(name);
+ }
- private static native Method getMethod (Class klass, String name, Class args[])
- throws java.lang.NoSuchMethodException;
+ private static Method getMethod (Class klass, String name, Class args[])
+ throws java.lang.NoSuchMethodException
+ {
+ return klass.getDeclaredMethod(name, args);
+ }
- private void callReadMethod (Object obj, Class klass) throws IOException
+ private void callReadMethod (Object obj, ObjectStreamClass osc) throws IOException
{
+ Class klass = osc.forClass();
try
{
Class classArgs[] = {ObjectInputStream.class};
@@ -1421,12 +1468,11 @@ public class ObjectInputStream extends InputStream
private native void callConstructor (Class clazz, Object obj);
- private void setBooleanField (Object obj, String field_name,
+ private void setBooleanField (Object obj, Class klass, String field_name,
boolean val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setBoolean (obj, val);
@@ -1436,12 +1482,11 @@ public class ObjectInputStream extends InputStream
}
}
- private void setByteField (Object obj, String field_name,
- byte val)
+ private void setByteField (Object obj, Class klass, String field_name,
+ byte val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setByte (obj, val);
@@ -1451,12 +1496,11 @@ public class ObjectInputStream extends InputStream
}
}
- private void setCharField (Object obj, String field_name,
+ private void setCharField (Object obj, Class klass, String field_name,
char val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setChar (obj, val);
@@ -1466,12 +1510,11 @@ public class ObjectInputStream extends InputStream
}
}
- private void setDoubleField (Object obj, String field_name,
+ private void setDoubleField (Object obj, Class klass, String field_name,
double val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setDouble (obj, val);
@@ -1481,12 +1524,11 @@ public class ObjectInputStream extends InputStream
}
}
- private void setFloatField (Object obj, String field_name,
+ private void setFloatField (Object obj, Class klass, String field_name,
float val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setFloat (obj, val);
@@ -1496,12 +1538,11 @@ public class ObjectInputStream extends InputStream
}
}
- private void setIntField (Object obj, String field_name,
- int val)
+ private void setIntField (Object obj, Class klass, String field_name,
+ int val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setInt (obj, val);
@@ -1512,12 +1553,11 @@ public class ObjectInputStream extends InputStream
}
- private void setLongField (Object obj, String field_name,
- long val)
+ private void setLongField (Object obj, Class klass, String field_name,
+ long val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setLong (obj, val);
@@ -1528,12 +1568,11 @@ public class ObjectInputStream extends InputStream
}
- private void setShortField (Object obj, String field_name,
+ private void setShortField (Object obj, Class klass, String field_name,
short val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
f.setShort (obj, val);
@@ -1544,12 +1583,11 @@ public class ObjectInputStream extends InputStream
}
- private void setObjectField (Object obj, String field_name, String type_code,
+ private void setObjectField (Object obj, Class klass, String field_name, String type_code,
Object val)
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
f.setAccessible(true);
// FIXME: We should check the type_code here
@@ -1580,7 +1618,7 @@ public class ObjectInputStream extends InputStream
private boolean fieldsAlreadyRead;
private Vector validators;
- private static boolean dump;
+ private static boolean dump;
private void dumpElement (String msg)
{
@@ -1593,6 +1631,14 @@ public class ObjectInputStream extends InputStream
if (Configuration.DEBUG && dump)
System.out.println(msg);
}
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary ("javaio");
+ }
+ }
}
diff --git a/libjava/java/io/ObjectOutputStream.java b/libjava/java/io/ObjectOutputStream.java
index d7c893f1696..a051a96f3d8 100644
--- a/libjava/java/io/ObjectOutputStream.java
+++ b/libjava/java/io/ObjectOutputStream.java
@@ -1,5 +1,5 @@
/* ObjectOutputStream.java -- Class used to write serialized objects
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath 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 Classpath 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
@@ -46,6 +46,7 @@ import java.util.Hashtable;
import gnu.java.io.ObjectIdentityWrapper;
import gnu.java.lang.reflect.TypeSignature;
+import gnu.classpath.Configuration;
/**
An <code>ObjectOutputStream</code> can be used to write objects
@@ -76,22 +77,22 @@ import gnu.java.lang.reflect.TypeSignature;
in a graph lost.
Example usage:
- <pre>
- Hashtable map = new Hashtable ();
- map.put ("one", new Integer (1));
- map.put ("two", new Integer (2));
+ <pre>
+ Hashtable map = new Hashtable ();
+ map.put ("one", new Integer (1));
+ map.put ("two", new Integer (2));
- ObjectOutputStream oos =
- new ObjectOutputStream (new FileOutputStream ("numbers"));
- oos.writeObject (map);
- oos.close ();
+ ObjectOutputStream oos =
+ new ObjectOutputStream (new FileOutputStream ("numbers"));
+ oos.writeObject (map);
+ oos.close ();
- ObjectInputStream ois =
- new ObjectInputStream (new FileInputStream ("numbers"));
- Hashtable newmap = (Hashtable)ois.readObject ();
+ ObjectInputStream ois =
+ new ObjectInputStream (new FileInputStream ("numbers"));
+ Hashtable newmap = (Hashtable)ois.readObject ();
- System.out.println (newmap);
- </pre>
+ System.out.println (newmap);
+ </pre>
The default serialization can be overriden in two ways.
@@ -167,232 +168,246 @@ public class ObjectOutputStream extends OutputStream
public final void writeObject (Object obj) throws IOException
{
if (useSubclassMethod)
- {
- writeObjectOverride (obj);
- return;
- }
+ {
+ writeObjectOverride (obj);
+ return;
+ }
boolean was_serializing = isSerializing;
-
- if (! was_serializing)
- setBlockDataMode (false);
-
+ boolean old_mode = setBlockDataMode (false);
try
- {
- isSerializing = true;
- boolean replaceDone = false;
-
- drain ();
-
- while (true)
{
- if (obj == null)
- {
- realOutput.writeByte (TC_NULL);
- break;
- }
-
- Integer handle = findHandle (obj);
- if (handle != null)
- {
- realOutput.writeByte (TC_REFERENCE);
- realOutput.writeInt (handle.intValue ());
- break;
- }
-
- if (obj instanceof Class)
- {
- realOutput.writeByte (TC_CLASS);
- writeObject (ObjectStreamClass.lookup ((Class)obj));
- assignNewHandle (obj);
- break;
- }
-
- if (obj instanceof ObjectStreamClass)
- {
- ObjectStreamClass osc = (ObjectStreamClass)obj;
- realOutput.writeByte (TC_CLASSDESC);
- realOutput.writeUTF (osc.getName ());
- realOutput.writeLong (osc.getSerialVersionUID ());
- assignNewHandle (obj);
-
- int flags = osc.getFlags ();
-
- if (protocolVersion == PROTOCOL_VERSION_2
- && osc.isExternalizable ())
- flags |= SC_BLOCK_DATA;
-
- realOutput.writeByte (flags);
-
- ObjectStreamField[] fields = osc.fields;
- realOutput.writeShort (fields.length);
-
- ObjectStreamField field;
- for (int i=0; i < fields.length; i++)
- {
- field = fields[i];
- realOutput.writeByte (field.getTypeCode ());
- realOutput.writeUTF (field.getName ());
-
- if (! field.isPrimitive ())
- writeObject (field.getTypeString ());
- }
-
- setBlockDataMode (true);
- annotateClass (osc.forClass ());
- setBlockDataMode (false);
- realOutput.writeByte (TC_ENDBLOCKDATA);
-
- if (osc.isSerializable ())
- writeObject (osc.getSuper ());
- else
- writeObject (null);
- break;
- }
-
-
+ isSerializing = true;
+ boolean replaceDone = false;
Object replacedObject = null;
+
+ while (true)
+ {
+ if (obj == null)
+ {
+ realOutput.writeByte (TC_NULL);
+ break;
+ }
- if ((replacementEnabled || obj instanceof Serializable)
- && ! replaceDone)
- {
- replacedObject = obj;
+ Integer handle = findHandle (obj);
+ if (handle != null)
+ {
+ realOutput.writeByte (TC_REFERENCE);
+ realOutput.writeInt (handle.intValue ());
+ break;
+ }
- if (obj instanceof Serializable)
- {
- Method m = null;
- try
+ if (obj instanceof Class)
{
- Class classArgs[] = {};
- m = obj.getClass ().getDeclaredMethod ("writeReplace",
- classArgs);
- // m can't be null by definition since an exception would
- // have been thrown so a check for null is not needed.
- obj = m.invoke (obj, new Object[] {});
+ Class cl = (Class)obj;
+ ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject (cl);
+ assignNewHandle (obj);
+ realOutput.writeByte (TC_CLASS);
+ if (!osc.isProxyClass)
+ {
+ writeObject (osc);
+ }
+ else
+ {
+ realOutput.writeByte (TC_PROXYCLASSDESC);
+ Class[] intfs = cl.getInterfaces();
+ realOutput.writeInt(intfs.length);
+ for (int i = 0; i < intfs.length; i++)
+ realOutput.writeUTF(intfs[i].getName());
+
+ boolean oldmode = setBlockDataMode (true);
+ annotateProxyClass(cl);
+ setBlockDataMode (oldmode);
+ realOutput.writeByte(TC_ENDBLOCKDATA);
+
+ writeObject (osc.getSuper());
+ }
+ break;
}
- catch (NoSuchMethodException ignore)
+
+ if (obj instanceof ObjectStreamClass)
{
+ ObjectStreamClass osc = (ObjectStreamClass)obj;
+ realOutput.writeByte (TC_CLASSDESC);
+ realOutput.writeUTF (osc.getName ());
+ realOutput.writeLong (osc.getSerialVersionUID ());
+ assignNewHandle (obj);
+
+ int flags = osc.getFlags ();
+
+ if (protocolVersion == PROTOCOL_VERSION_2
+ && osc.isExternalizable ())
+ flags |= SC_BLOCK_DATA;
+
+ realOutput.writeByte (flags);
+
+ ObjectStreamField[] fields = osc.fields;
+ realOutput.writeShort (fields.length);
+
+ ObjectStreamField field;
+ for (int i=0; i < fields.length; i++)
+ {
+ field = fields[i];
+ realOutput.writeByte (field.getTypeCode ());
+ realOutput.writeUTF (field.getName ());
+
+ if (! field.isPrimitive ())
+ writeObject (field.getTypeString ());
+ }
+
+ boolean oldmode = setBlockDataMode (true);
+ annotateClass (osc.forClass ());
+ setBlockDataMode (oldmode);
+ realOutput.writeByte (TC_ENDBLOCKDATA);
+
+ if (osc.isSerializable ())
+ writeObject (osc.getSuper ());
+ else
+ writeObject (null);
+ break;
}
- catch (IllegalAccessException ignore)
+
+ if ((replacementEnabled || obj instanceof Serializable)
+ && ! replaceDone)
{
+ replacedObject = obj;
+
+ if (obj instanceof Serializable)
+ {
+ Method m = null;
+ try
+ {
+ Class classArgs[] = {};
+ m = obj.getClass ().getDeclaredMethod ("writeReplace",
+ classArgs);
+ // m can't be null by definition since an exception would
+ // have been thrown so a check for null is not needed.
+ obj = m.invoke (obj, new Object[] {});
+ }
+ catch (NoSuchMethodException ignore)
+ {
+ }
+ catch (IllegalAccessException ignore)
+ {
+ }
+ catch (InvocationTargetException ignore)
+ {
+ }
+ }
+
+ if (replacementEnabled)
+ obj = replaceObject (obj);
+
+ replaceDone = true;
+ continue;
}
- catch (InvocationTargetException ignore)
+
+ if (obj instanceof String)
{
+ realOutput.writeByte (TC_STRING);
+ assignNewHandle (obj);
+ realOutput.writeUTF ((String)obj);
+ break;
}
- }
- if (replacementEnabled)
- obj = replaceObject (obj);
+ Class clazz = obj.getClass ();
+ ObjectStreamClass osc = ObjectStreamClass.lookupForClassObject (clazz);
+ if (osc == null)
+ throw new NotSerializableException (clazz.getName ());
- replaceDone = true;
- continue;
- }
+ if (clazz.isArray ())
+ {
+ realOutput.writeByte (TC_ARRAY);
+ writeObject (osc);
+ assignNewHandle (obj);
+ writeArraySizeAndElements (obj, clazz.getComponentType ());
+ break;
+ }
- if (obj instanceof String)
- {
- realOutput.writeByte (TC_STRING);
- assignNewHandle (obj);
- realOutput.writeUTF ((String)obj);
- break;
- }
+ realOutput.writeByte (TC_OBJECT);
+ writeObject (osc);
- Class clazz = obj.getClass ();
- ObjectStreamClass osc = ObjectStreamClass.lookup (clazz);
- if (osc == null)
- throw new NotSerializableException (clazz.getName ());
+ if (replaceDone)
+ assignNewHandle (replacedObject);
+ else
+ assignNewHandle (obj);
- if (clazz.isArray ())
- {
- realOutput.writeByte (TC_ARRAY);
- writeObject (osc);
- assignNewHandle (obj);
- writeArraySizeAndElements (obj, clazz.getComponentType ());
- break;
- }
+ if (obj instanceof Externalizable)
+ {
+ if (protocolVersion == PROTOCOL_VERSION_2)
+ setBlockDataMode (true);
- realOutput.writeByte (TC_OBJECT);
- writeObject (osc);
+ ((Externalizable)obj).writeExternal (this);
- if (replaceDone)
- assignNewHandle (replacedObject);
- else
- assignNewHandle (obj);
+ if (protocolVersion == PROTOCOL_VERSION_2)
+ {
+ setBlockDataMode (false);
+ realOutput.writeByte (TC_ENDBLOCKDATA);
+ }
- if (obj instanceof Externalizable)
- {
- if (protocolVersion == PROTOCOL_VERSION_2)
- setBlockDataMode (true);
+ break;
+ }
- ((Externalizable)obj).writeExternal (this);
+ if (obj instanceof Serializable)
+ {
+ currentObject = obj;
+ ObjectStreamClass[] hierarchy =
+ ObjectStreamClass.getObjectStreamClasses (clazz);
+
+ for (int i=0; i < hierarchy.length; i++)
+ {
+ currentObjectStreamClass = hierarchy[i];
+
+ fieldsAlreadyWritten = false;
+ if (currentObjectStreamClass.hasWriteMethod ())
+ {
+ setBlockDataMode (true);
+ callWriteMethod (obj, currentObjectStreamClass);
+ setBlockDataMode (false);
+ realOutput.writeByte (TC_ENDBLOCKDATA);
+ }
+ else
+ writeFields (obj, currentObjectStreamClass);
+ }
+
+ currentObject = null;
+ currentObjectStreamClass = null;
+ currentPutField = null;
+ break;
+ }
- if (protocolVersion == PROTOCOL_VERSION_2)
+ throw new NotSerializableException (clazz.getName ());
+ } // end pseudo-loop
+ }
+ catch (ObjectStreamException ose)
+ {
+ // Rethrow these are fatal.
+ throw ose;
+ }
+ catch (IOException e)
+ {
+ realOutput.writeByte (TC_EXCEPTION);
+ reset (true);
+
+ setBlockDataMode (false);
+ try
{
- setBlockDataMode (false);
- drain ();
+ writeObject (e);
}
-
- break;
- }
-
- if (obj instanceof Serializable)
- {
- currentObject = obj;
- ObjectStreamClass[] hierarchy =
- ObjectStreamClass.getObjectStreamClasses (clazz);
-
- boolean has_write;
- for (int i=0; i < hierarchy.length; i++)
+ catch (IOException ioe)
{
- currentObjectStreamClass = hierarchy[i];
-
- fieldsAlreadyWritten = false;
- has_write = currentObjectStreamClass.hasWriteMethod ();
-
- writeFields (obj, currentObjectStreamClass.fields,
- has_write);
-
- if (has_write)
- {
- drain ();
- realOutput.writeByte (TC_ENDBLOCKDATA);
- }
+ throw new StreamCorruptedException ("Exception " + ioe + " thrown while exception was being written to stream.");
}
- currentObject = null;
- currentObjectStreamClass = null;
- currentPutField = null;
- break;
- }
-
- throw new NotSerializableException (clazz.getName ());
- } // end pseudo-loop
- }
- catch (IOException e)
- {
- realOutput.writeByte (TC_EXCEPTION);
- reset (true);
-
- try
- {
- writeObject (e);
+ reset (true);
}
- catch (IOException ioe)
+ finally
{
- throw new StreamCorruptedException ("Exception " + ioe + " thrown while exception was being written to stream.");
+ isSerializing = was_serializing;
+ setBlockDataMode (old_mode);
}
-
- reset (true);
- }
- finally
- {
- isSerializing = was_serializing;
-
- if (! was_serializing)
- setBlockDataMode (true);
- }
}
-
/**
Writes the current objects non-transient, non-static fields from
the current class to the underlying output stream.
@@ -413,7 +428,7 @@ public class ObjectOutputStream extends OutputStream
throws IOException, NotActiveException
{
markFieldsWritten ();
- writeFields (currentObject, currentObjectStreamClass.fields, false);
+ writeFields (currentObject, currentObjectStreamClass);
}
@@ -450,12 +465,12 @@ public class ObjectOutputStream extends OutputStream
private void reset (boolean internal) throws IOException
{
if (!internal)
- {
- if (isSerializing)
- throw new IOException ("Reset called while serialization in progress");
+ {
+ if (isSerializing)
+ throw new IOException ("Reset called while serialization in progress");
- realOutput.writeByte (TC_RESET);
- }
+ realOutput.writeByte (TC_RESET);
+ }
clearHandles ();
}
@@ -466,8 +481,8 @@ public class ObjectOutputStream extends OutputStream
according to the specified protocol. There are currently two
different protocols, specified by <code>PROTOCOL_VERSION_1</code>
and <code>PROTOCOL_VERSION_2</code>. This implementation writes
- data using <code>PROTOCOL_VERSION_1</code> by default, as is done
- by the JDK 1.1.
+ data using <code>PROTOCOL_VERSION_2</code> by default, as is done
+ by the JDK 1.2.
A non-portable method, <code>setDefaultProtocolVersion (int
version)</code> is provided to change the default protocol
@@ -528,6 +543,8 @@ public class ObjectOutputStream extends OutputStream
protected void annotateClass (Class cl) throws IOException
{}
+ protected void annotateProxyClass(Class cl) throws IOException
+ {}
/**
Allows subclasses to replace objects that are written to the
@@ -633,12 +650,12 @@ public class ObjectOutputStream extends OutputStream
public void write (int data) throws IOException
{
if (writeDataAsBlocks)
- {
- if (blockDataCount == BUFFER_SIZE)
- drain ();
+ {
+ if (blockDataCount == BUFFER_SIZE)
+ drain ();
- blockData[ blockDataCount++ ] = (byte)data;
- }
+ blockData[ blockDataCount++ ] = (byte)data;
+ }
else
realOutput.write (data);
}
@@ -659,22 +676,22 @@ public class ObjectOutputStream extends OutputStream
public void write (byte[] b, int off, int len) throws IOException
{
if (writeDataAsBlocks)
- {
- if (len < 0)
- throw new IndexOutOfBoundsException ();
-
- if (blockDataCount + len < BUFFER_SIZE)
{
- System.arraycopy (b, off, blockData, blockDataCount, len);
- blockDataCount += len;
- }
- else
- {
- drain ();
- writeBlockDataHeader (len);
- realOutput.write (b, off, len);
+ if (len < 0)
+ throw new IndexOutOfBoundsException ();
+
+ if (blockDataCount + len < BUFFER_SIZE)
+ {
+ System.arraycopy (b, off, blockData, blockDataCount, len);
+ blockDataCount += len;
+ }
+ else
+ {
+ drain ();
+ writeBlockDataHeader (len);
+ realOutput.write (b, off, len);
+ }
}
- }
else
realOutput.write (b, off, len);
}
@@ -702,7 +719,8 @@ public class ObjectOutputStream extends OutputStream
if (blockDataCount == 0)
return;
- writeBlockDataHeader (blockDataCount);
+ if (writeDataAsBlocks)
+ writeBlockDataHeader (blockDataCount);
realOutput.write (blockData, 0, blockDataCount);
blockDataCount = 0;
}
@@ -713,7 +731,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void close () throws IOException
{
- drain ();
+ flush ();
realOutput.close ();
}
@@ -723,7 +741,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeBoolean (boolean data) throws IOException
{
- dataOutput.writeBoolean (data);
+ blockDataOutput.writeBoolean (data);
}
@@ -732,7 +750,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeByte (int data) throws IOException
{
- dataOutput.writeByte (data);
+ blockDataOutput.writeByte (data);
}
@@ -741,7 +759,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeShort (int data) throws IOException
{
- dataOutput.writeShort (data);
+ blockDataOutput.writeShort (data);
}
@@ -750,7 +768,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeChar (int data) throws IOException
{
- dataOutput.writeChar (data);
+ blockDataOutput.writeChar (data);
}
@@ -759,7 +777,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeInt (int data) throws IOException
{
- dataOutput.writeInt (data);
+ blockDataOutput.writeInt (data);
}
@@ -768,7 +786,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeLong (long data) throws IOException
{
- dataOutput.writeLong (data);
+ blockDataOutput.writeLong (data);
}
@@ -777,7 +795,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeFloat (float data) throws IOException
{
- dataOutput.writeFloat (data);
+ blockDataOutput.writeFloat (data);
}
@@ -786,7 +804,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeDouble (double data) throws IOException
{
- dataOutput.writeDouble (data);
+ blockDataOutput.writeDouble (data);
}
@@ -795,7 +813,7 @@ public class ObjectOutputStream extends OutputStream
*/
public void writeBytes (String data) throws IOException
{
- dataOutput.writeBytes (data);
+ blockDataOutput.writeBytes (data);
}
@@ -854,141 +872,143 @@ public class ObjectOutputStream extends OutputStream
currentPutField = new PutField ()
{
private byte[] prim_field_data
- = new byte[currentObjectStreamClass.primFieldSize];
+ = new byte[currentObjectStreamClass.primFieldSize];
private Object[] objs
- = new Object[currentObjectStreamClass.objectFieldCount];
+ = new Object[currentObjectStreamClass.objectFieldCount];
public void put (String name, boolean value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'Z');
- prim_field_data[field.getOffset ()] = (byte)(value ? 1 : 0);
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'Z');
+ prim_field_data[field.getOffset ()] = (byte)(value ? 1 : 0);
+ }
public void put (String name, byte value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'B');
- prim_field_data[field.getOffset ()] = value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'B');
+ prim_field_data[field.getOffset ()] = value;
+ }
public void put (String name, char value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'C');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'C');
+ int off = field.getOffset ();
+ prim_field_data[off++] = (byte)(value >>> 8);
+ prim_field_data[off] = (byte)value;
+ }
public void put (String name, double value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'D');
- int off = field.getOffset ();
- long l_value = Double.doubleToLongBits (value);
- prim_field_data[off++] = (byte)(l_value >>> 52);
- prim_field_data[off++] = (byte)(l_value >>> 48);
- prim_field_data[off++] = (byte)(l_value >>> 40);
- prim_field_data[off++] = (byte)(l_value >>> 32);
- prim_field_data[off++] = (byte)(l_value >>> 24);
- prim_field_data[off++] = (byte)(l_value >>> 16);
- prim_field_data[off++] = (byte)(l_value >>> 8);
- prim_field_data[off] = (byte)l_value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'D');
+ int off = field.getOffset ();
+ long l_value = Double.doubleToLongBits (value);
+ prim_field_data[off++] = (byte)(l_value >>> 52);
+ prim_field_data[off++] = (byte)(l_value >>> 48);
+ prim_field_data[off++] = (byte)(l_value >>> 40);
+ prim_field_data[off++] = (byte)(l_value >>> 32);
+ prim_field_data[off++] = (byte)(l_value >>> 24);
+ prim_field_data[off++] = (byte)(l_value >>> 16);
+ prim_field_data[off++] = (byte)(l_value >>> 8);
+ prim_field_data[off] = (byte)l_value;
+ }
public void put (String name, float value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'F');
- int off = field.getOffset ();
- int i_value = Float.floatToIntBits (value);
- prim_field_data[off++] = (byte)(i_value >>> 24);
- prim_field_data[off++] = (byte)(i_value >>> 16);
- prim_field_data[off++] = (byte)(i_value >>> 8);
- prim_field_data[off] = (byte)i_value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'F');
+ int off = field.getOffset ();
+ int i_value = Float.floatToIntBits (value);
+ prim_field_data[off++] = (byte)(i_value >>> 24);
+ prim_field_data[off++] = (byte)(i_value >>> 16);
+ prim_field_data[off++] = (byte)(i_value >>> 8);
+ prim_field_data[off] = (byte)i_value;
+ }
public void put (String name, int value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'I');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 24);
- prim_field_data[off++] = (byte)(value >>> 16);
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'I');
+ int off = field.getOffset ();
+ prim_field_data[off++] = (byte)(value >>> 24);
+ prim_field_data[off++] = (byte)(value >>> 16);
+ prim_field_data[off++] = (byte)(value >>> 8);
+ prim_field_data[off] = (byte)value;
+ }
public void put (String name, long value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'J');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 52);
- prim_field_data[off++] = (byte)(value >>> 48);
- prim_field_data[off++] = (byte)(value >>> 40);
- prim_field_data[off++] = (byte)(value >>> 32);
- prim_field_data[off++] = (byte)(value >>> 24);
- prim_field_data[off++] = (byte)(value >>> 16);
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'J');
+ int off = field.getOffset ();
+ prim_field_data[off++] = (byte)(value >>> 52);
+ prim_field_data[off++] = (byte)(value >>> 48);
+ prim_field_data[off++] = (byte)(value >>> 40);
+ prim_field_data[off++] = (byte)(value >>> 32);
+ prim_field_data[off++] = (byte)(value >>> 24);
+ prim_field_data[off++] = (byte)(value >>> 16);
+ prim_field_data[off++] = (byte)(value >>> 8);
+ prim_field_data[off] = (byte)value;
+ }
public void put (String name, short value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- checkType (field, 'S');
- int off = field.getOffset ();
- prim_field_data[off++] = (byte)(value >>> 8);
- prim_field_data[off] = (byte)value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ checkType (field, 'S');
+ int off = field.getOffset ();
+ prim_field_data[off++] = (byte)(value >>> 8);
+ prim_field_data[off] = (byte)value;
+ }
public void put (String name, Object value)
throws IOException, IllegalArgumentException
- {
- ObjectStreamField field
- = currentObjectStreamClass.getField (name);
- if (value != null &&
- ! field.getType ().isAssignableFrom (value.getClass ()))
- throw new IllegalArgumentException ();
- objs[field.getOffset ()] = value;
- }
+ {
+ ObjectStreamField field
+ = currentObjectStreamClass.getField (name);
+ if (field == null)
+ throw new IllegalArgumentException ();
+ if (value != null &&
+ ! field.getType ().isAssignableFrom (value.getClass ()))
+ throw new IllegalArgumentException ();
+ objs[field.getOffset ()] = value;
+ }
public void write (ObjectOutput out) throws IOException
- {
- // Apparently Block data is not used with PutField as per
- // empirical evidence against JDK 1.2. Also see Mauve test
- // java.io.ObjectInputOutput.Test.GetPutField.
- setBlockDataMode (false);
- out.write (prim_field_data);
- for (int i = 0; i < objs.length; ++ i)
- out.writeObject (objs[i]);
- setBlockDataMode (true);
- }
+ {
+ // Apparently Block data is not used with PutField as per
+ // empirical evidence against JDK 1.2. Also see Mauve test
+ // java.io.ObjectInputOutput.Test.GetPutField.
+ boolean oldmode = setBlockDataMode (false);
+ out.write (prim_field_data);
+ for (int i = 0; i < objs.length; ++ i)
+ out.writeObject (objs[i]);
+ setBlockDataMode (oldmode);
+ }
private void checkType (ObjectStreamField field, char type)
throws IllegalArgumentException
- {
- if (TypeSignature.getEncodingOfClass (field.getType ()).charAt (0) != type)
- throw new IllegalArgumentException ();
- }
+ {
+ if (TypeSignature.getEncodingOfClass (field.getType ()).charAt (0) != type)
+ throw new IllegalArgumentException ();
+ }
};
// end PutFieldImpl
@@ -1010,15 +1030,15 @@ public class ObjectOutputStream extends OutputStream
private void writeBlockDataHeader (int size) throws IOException
{
if (size < 256)
- {
- realOutput.writeByte (TC_BLOCKDATA);
- realOutput.write (size);
- }
+ {
+ realOutput.writeByte (TC_BLOCKDATA);
+ realOutput.write (size);
+ }
else
- {
- realOutput.writeByte (TC_BLOCKDATALONG);
- realOutput.writeInt (size);
- }
+ {
+ realOutput.writeByte (TC_BLOCKDATALONG);
+ realOutput.writeInt (size);
+ }
}
@@ -1054,142 +1074,141 @@ public class ObjectOutputStream extends OutputStream
int length = Array.getLength (array);
if (clazz.isPrimitive ())
- {
- if (clazz == Boolean.TYPE)
- {
- boolean[] cast_array = (boolean[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeBoolean (cast_array[i]);
- return;
- }
- if (clazz == Byte.TYPE)
- {
- byte[] cast_array = (byte[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeByte (cast_array[i]);
- return;
- }
- if (clazz == Character.TYPE)
- {
- char[] cast_array = (char[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeChar (cast_array[i]);
- return;
- }
- if (clazz == Double.TYPE)
- {
- double[] cast_array = (double[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeDouble (cast_array[i]);
- return;
- }
- if (clazz == Float.TYPE)
- {
- float[] cast_array = (float[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeFloat (cast_array[i]);
- return;
- }
- if (clazz == Integer.TYPE)
- {
- int[] cast_array = (int[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeInt (cast_array[i]);
- return;
- }
- if (clazz == Long.TYPE)
{
- long[] cast_array = (long[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- realOutput.writeLong (cast_array[i]);
- return;
+ if (clazz == Boolean.TYPE)
+ {
+ boolean[] cast_array = (boolean[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeBoolean (cast_array[i]);
+ return;
+ }
+ if (clazz == Byte.TYPE)
+ {
+ byte[] cast_array = (byte[])array;
+ realOutput.writeInt (length);
+ realOutput.write(cast_array, 0, length);
+ return;
+ }
+ if (clazz == Character.TYPE)
+ {
+ char[] cast_array = (char[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeChar (cast_array[i]);
+ return;
+ }
+ if (clazz == Double.TYPE)
+ {
+ double[] cast_array = (double[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeDouble (cast_array[i]);
+ return;
+ }
+ if (clazz == Float.TYPE)
+ {
+ float[] cast_array = (float[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeFloat (cast_array[i]);
+ return;
+ }
+ if (clazz == Integer.TYPE)
+ {
+ int[] cast_array = (int[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeInt (cast_array[i]);
+ return;
+ }
+ if (clazz == Long.TYPE)
+ {
+ long[] cast_array = (long[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeLong (cast_array[i]);
+ return;
+ }
+ if (clazz == Short.TYPE)
+ {
+ short[] cast_array = (short[])array;
+ realOutput.writeInt (length);
+ for (int i=0; i < length; i++)
+ realOutput.writeShort (cast_array[i]);
+ return;
+ }
}
- if (clazz == Short.TYPE)
+ else
{
- short[] cast_array = (short[])array;
+ Object[] cast_array = (Object[])array;
realOutput.writeInt (length);
for (int i=0; i < length; i++)
- realOutput.writeShort (cast_array[i]);
- return;
+ writeObject (cast_array[i]);
}
- }
- else
- {
- Object[] cast_array = (Object[])array;
- realOutput.writeInt (length);
- for (int i=0; i < length; i++)
- writeObject (cast_array[i]);
- }
}
- // writes out FIELDS of OBJECT. If CALL_WRITE_METHOD is true, use
- // object's writeObject (ObjectOutputStream), otherwise use default
- // serialization. FIELDS are already in canonical order.
- private void writeFields (Object obj,
- ObjectStreamField[] fields,
- boolean call_write_method) throws IOException
+ // writes out FIELDS of OBJECT for the specified ObjectStreamClass.
+ // FIELDS are already in canonical order.
+ private void writeFields (Object obj, ObjectStreamClass osc)
+ throws IOException
{
- if (call_write_method)
- {
- setBlockDataMode (true);
- callWriteMethod (obj);
- setBlockDataMode (false);
- return;
- }
-
+ ObjectStreamField[] fields = osc.fields;
+ boolean oldmode = setBlockDataMode (false);
String field_name;
Class type;
for (int i=0; i < fields.length; i++)
- {
- field_name = fields[i].getName ();
- type = fields[i].getType ();
-
- if (type == Boolean.TYPE)
- realOutput.writeBoolean (getBooleanField (obj, field_name));
- else if (type == Byte.TYPE)
- realOutput.writeByte (getByteField (obj, field_name));
- else if (type == Character.TYPE)
- realOutput.writeChar (getCharField (obj, field_name));
- else if (type == Double.TYPE)
- realOutput.writeDouble (getDoubleField (obj, field_name));
- else if (type == Float.TYPE)
- realOutput.writeFloat (getFloatField (obj, field_name));
- else if (type == Integer.TYPE)
- realOutput.writeInt (getIntField (obj, field_name));
- else if (type == Long.TYPE)
- realOutput.writeLong (getLongField (obj, field_name));
- else if (type == Short.TYPE)
- realOutput.writeShort (getShortField (obj, field_name));
- else
- writeObject (getObjectField (obj, field_name,
- TypeSignature.getEncodingOfClass (type)));
- }
+ {
+ field_name = fields[i].getName ();
+ type = fields[i].getType ();
+
+ if (type == Boolean.TYPE)
+ realOutput.writeBoolean (getBooleanField (obj, osc.forClass(), field_name));
+ else if (type == Byte.TYPE)
+ realOutput.writeByte (getByteField (obj, osc.forClass(), field_name));
+ else if (type == Character.TYPE)
+ realOutput.writeChar (getCharField (obj, osc.forClass(), field_name));
+ else if (type == Double.TYPE)
+ realOutput.writeDouble (getDoubleField (obj, osc.forClass(), field_name));
+ else if (type == Float.TYPE)
+ realOutput.writeFloat (getFloatField (obj, osc.forClass(), field_name));
+ else if (type == Integer.TYPE)
+ realOutput.writeInt (getIntField (obj, osc.forClass(), field_name));
+ else if (type == Long.TYPE)
+ realOutput.writeLong (getLongField (obj, osc.forClass(), field_name));
+ else if (type == Short.TYPE)
+ realOutput.writeShort (getShortField (obj, osc.forClass(), field_name));
+ else
+ writeObject (getObjectField (obj, osc.forClass(), field_name,
+ fields[i].getTypeString ()));
+ }
+ setBlockDataMode (oldmode);
}
// Toggles writing primitive data to block-data buffer.
- private void setBlockDataMode (boolean on)
+ private boolean setBlockDataMode (boolean on) throws IOException
{
+ if (on == writeDataAsBlocks)
+ return on;
+
+ drain();
+ boolean oldmode = writeDataAsBlocks;
writeDataAsBlocks = on;
if (on)
dataOutput = blockDataOutput;
else
dataOutput = realOutput;
+
+ return oldmode;
}
- private void callWriteMethod (Object obj) throws IOException
+ private void callWriteMethod (Object obj, ObjectStreamClass osc) throws IOException
{
- Class klass = obj.getClass ();
+ Class klass = osc.forClass();
try
{
Class classArgs[] = {ObjectOutputStream.class};
@@ -1218,11 +1237,11 @@ public class ObjectOutputStream extends OutputStream
}
}
- private boolean getBooleanField (Object obj, String field_name) throws IOException
+ private boolean getBooleanField (Object obj, Class klass, String field_name)
+ throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
boolean b = f.getBoolean (obj);
return b;
@@ -1233,11 +1252,10 @@ public class ObjectOutputStream extends OutputStream
}
}
- private byte getByteField (Object obj, String field_name) throws IOException
+ private byte getByteField (Object obj, Class klass, String field_name) throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
byte b = f.getByte (obj);
return b;
@@ -1248,11 +1266,10 @@ public class ObjectOutputStream extends OutputStream
}
}
- private char getCharField (Object obj, String field_name) throws IOException
+ private char getCharField (Object obj, Class klass, String field_name) throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
char b = f.getChar (obj);
return b;
@@ -1263,11 +1280,11 @@ public class ObjectOutputStream extends OutputStream
}
}
- private double getDoubleField (Object obj, String field_name) throws IOException
+ private double getDoubleField (Object obj, Class klass, String field_name)
+ throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
double b = f.getDouble (obj);
return b;
@@ -1278,11 +1295,11 @@ public class ObjectOutputStream extends OutputStream
}
}
- private float getFloatField (Object obj, String field_name) throws IOException
+ private float getFloatField (Object obj, Class klass, String field_name)
+ throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
float b = f.getFloat (obj);
return b;
@@ -1293,11 +1310,10 @@ public class ObjectOutputStream extends OutputStream
}
}
- private int getIntField (Object obj, String field_name) throws IOException
+ private int getIntField (Object obj, Class klass, String field_name) throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
int b = f.getInt (obj);
return b;
@@ -1308,11 +1324,10 @@ public class ObjectOutputStream extends OutputStream
}
}
- private long getLongField (Object obj, String field_name) throws IOException
+ private long getLongField (Object obj, Class klass, String field_name) throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
long b = f.getLong (obj);
return b;
@@ -1323,11 +1338,11 @@ public class ObjectOutputStream extends OutputStream
}
}
- private short getShortField (Object obj, String field_name) throws IOException
+ private short getShortField (Object obj, Class klass, String field_name)
+ throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
short b = f.getShort (obj);
return b;
@@ -1338,12 +1353,11 @@ public class ObjectOutputStream extends OutputStream
}
}
- private Object getObjectField (Object obj, String field_name,
+ private Object getObjectField (Object obj, Class klass, String field_name,
String type_code) throws IOException
{
try
{
- Class klass = obj.getClass ();
Field f = getField (klass, field_name);
Object o = f.get (obj);
// FIXME: We should check the type_code here
@@ -1355,16 +1369,22 @@ public class ObjectOutputStream extends OutputStream
}
}
- private static native Field getField (Class klass, String name)
- throws java.lang.NoSuchFieldException;
+ private static Field getField (Class klass, String name)
+ throws java.lang.NoSuchFieldException
+ {
+ return klass.getDeclaredField(name);
+ }
- private static native Method getMethod (Class klass, String name, Class[] args)
- throws java.lang.NoSuchMethodException;
+ private static Method getMethod (Class klass, String name, Class[] args)
+ throws java.lang.NoSuchMethodException
+ {
+ return klass.getDeclaredMethod(name, args);
+ }
// this value comes from 1.2 spec, but is used in 1.1 as well
private final static int BUFFER_SIZE = 1024;
- private static int defaultProtocolVersion = PROTOCOL_VERSION_1;
+ private static int defaultProtocolVersion = PROTOCOL_VERSION_2;
private DataOutputStream dataOutput;
private boolean writeDataAsBlocks;
@@ -1382,4 +1402,12 @@ public class ObjectOutputStream extends OutputStream
private Hashtable OIDLookupTable;
private int protocolVersion;
private boolean useSubclassMethod;
+
+ static
+ {
+ if (Configuration.INIT_LOAD_LIBRARY)
+ {
+ System.loadLibrary ("javaio");
+ }
+ }
}
diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java
index ecdd91d00c6..19a69ec47bc 100644
--- a/libjava/java/io/ObjectStreamClass.java
+++ b/libjava/java/io/ObjectStreamClass.java
@@ -1,6 +1,6 @@
/* ObjectStreamClass.java -- Class used to write class information
about serialized objects.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,6 +44,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.lang.reflect.Proxy;
import java.security.DigestOutputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -76,6 +77,19 @@ public class ObjectStreamClass implements Serializable
if (! (Serializable.class).isAssignableFrom (cl))
return null;
+ return lookupForClassObject (cl);
+ }
+
+ /**
+ * This lookup for internal use by ObjectOutputStream. Suppose
+ * we have a java.lang.Class object C for class A, though A is not
+ * serializable, but it's okay to serialize C.
+ */
+ static ObjectStreamClass lookupForClassObject (Class cl)
+ {
+ if (cl == null)
+ return null;
+
ObjectStreamClass osc = (ObjectStreamClass)classLookupTable.get (cl);
if (osc != null)
@@ -180,6 +194,28 @@ public class ObjectStreamClass implements Serializable
// Returns true iff the class that this ObjectStreamClass represents
+ // has the following method:
+ //
+ // private void readObject (ObjectOutputStream)
+ //
+ // This method is used by the class to override default
+ // serialization behavior.
+ boolean hasReadMethod ()
+ {
+ try
+ {
+ Class[] readObjectParams = { ObjectInputStream.class };
+ forClass ().getDeclaredMethod ("readObject", readObjectParams);
+ return true;
+ }
+ catch (NoSuchMethodException e)
+ {
+ return false;
+ }
+ }
+
+
+ // Returns true iff the class that this ObjectStreamClass represents
// implements Serializable but does *not* implement Externalizable.
boolean isSerializable ()
{
@@ -260,22 +296,29 @@ public class ObjectStreamClass implements Serializable
void setClass (Class cl) throws InvalidClassException
{
this.clazz = cl;
+
long class_uid = getClassUID (cl);
if (uid == 0)
+ uid = class_uid;
+ else
{
- uid = class_uid;
- return;
- }
-
- // Check that the actual UID of the resolved class matches the UID from
- // the stream.
- if (uid != class_uid)
- {
- String msg = cl +
- ": Local class not compatible: stream serialVersionUID="
- + uid + ", local serialVersionUID=" + class_uid;
- throw new InvalidClassException (msg);
+ // Check that the actual UID of the resolved class matches the UID from
+ // the stream.
+ if (uid != class_uid)
+ {
+ String msg = cl +
+ ": Local class not compatible: stream serialVersionUID="
+ + uid + ", local serialVersionUID=" + class_uid;
+ throw new InvalidClassException (msg);
+ }
}
+
+ isProxyClass = clazz != null && Proxy.isProxyClass (clazz);
+ ObjectStreamClass osc = (ObjectStreamClass)classLookupTable.get (clazz);
+ if (osc == null)
+ classLookupTable.put (clazz, this);
+ superClass = lookupForClassObject (clazz.getSuperclass ());
+ calculateOffsets ();
}
void setSuperclass (ObjectStreamClass osc)
@@ -328,12 +371,15 @@ public class ObjectStreamClass implements Serializable
{
uid = 0;
flags = 0;
+ isProxyClass = Proxy.isProxyClass (cl);
clazz = cl;
name = cl.getName ();
setFlags (cl);
setFields (cl);
- uid = getClassUID (cl);
+ // to those class nonserializable, its uid field is 0
+ if ( (Serializable.class).isAssignableFrom (cl) && !isProxyClass)
+ uid = getClassUID (cl);
superClass = lookup (cl.getSuperclass ());
}
@@ -377,6 +423,7 @@ public class ObjectStreamClass implements Serializable
{
Field serialPersistentFields
= cl.getDeclaredField ("serialPersistentFields");
+ serialPersistentFields.setAccessible(true);
int modifiers = serialPersistentFields.getModifiers ();
if (Modifier.isStatic (modifiers)
@@ -427,26 +474,27 @@ public class ObjectStreamClass implements Serializable
{
try
{
+ // Use getDeclaredField rather than getField, since serialVersionUID
+ // may not be public AND we only want the serialVersionUID of this
+ // class, not a superclass or interface.
Field suid = cl.getDeclaredField ("serialVersionUID");
+ suid.setAccessible(true);
int modifiers = suid.getModifiers ();
- if (Modifier.isStatic (modifiers) && Modifier.isFinal (modifiers))
- return suid.getLong (null);
+ if (Modifier.isStatic (modifiers)
+ && Modifier.isFinal (modifiers)
+ && suid.getType() == Long.TYPE)
+ return suid.getLong (null);
}
catch (NoSuchFieldException ignore)
- {
- }
+ {}
catch (IllegalAccessException ignore)
- {
- }
+ {}
// cl didn't define serialVersionUID, so we have to compute it
try
{
- MessageDigest md = null;
- DigestOutputStream digest_out = null;
- DataOutputStream data_out = null;
-
+ MessageDigest md;
try
{
md = MessageDigest.getInstance ("SHA");
@@ -459,8 +507,10 @@ public class ObjectStreamClass implements Serializable
md = MessageDigest.getInstance ("SHA");
}
- digest_out = new DigestOutputStream (nullOutputStream, md);
- data_out = new DataOutputStream (digest_out);
+ DigestOutputStream digest_out =
+ new DigestOutputStream (nullOutputStream, md);
+ DataOutputStream data_out = new DataOutputStream (digest_out);
+
data_out.writeUTF (cl.getName ());
int modifiers = cl.getModifiers ();
@@ -497,17 +547,7 @@ public class ObjectStreamClass implements Serializable
}
// write class initializer method if present
- boolean has_init;
- try
- {
- has_init = hasClassInitializer (cl);
- }
- catch (NoSuchMethodError e)
- {
- has_init = false;
- }
-
- if (has_init)
+ if (VMObjectStreamClass.hasClassInitializer (cl))
{
data_out.writeUTF ("<clinit>");
data_out.writeInt (Modifier.STATIC);
@@ -564,11 +604,11 @@ public class ObjectStreamClass implements Serializable
catch (NoSuchAlgorithmException e)
{
throw new RuntimeException ("The SHA algorithm was not found to use in computing the Serial Version UID for class "
- + cl.getName ());
+ + cl.getName (), e);
}
catch (IOException ioe)
{
- throw new RuntimeException (ioe.getMessage ());
+ throw new RuntimeException (ioe);
}
}
@@ -582,6 +622,7 @@ public class ObjectStreamClass implements Serializable
// Use getDeclaredField rather than getField for the same reason
// as above in getDefinedSUID.
Field f = clazz.getDeclaredField ("getSerialPersistentFields");
+ f.setAccessible(true);
o = (ObjectStreamField[])f.get (null);
}
catch (java.lang.NoSuchFieldException e)
@@ -594,29 +635,6 @@ public class ObjectStreamClass implements Serializable
return o;
}
-
- // Returns true if CLAZZ has a static class initializer
- // (a.k.a. <clinit>).
- //
- // A NoSuchMethodError is raised if CLAZZ has no such method.
- private static boolean hasClassInitializer (Class clazz)
- throws java.lang.NoSuchMethodError
- {
- Method m = null;
-
- try
- {
- Class classArgs[] = {};
- m = clazz.getDeclaredMethod ("<clinit>", classArgs);
- }
- catch (java.lang.NoSuchMethodException e)
- {
- throw new java.lang.NoSuchMethodError ();
- }
-
- return m != null;
- }
-
public static final ObjectStreamField[] NO_FIELDS = {};
private static Hashtable classLookupTable = new Hashtable ();
@@ -640,9 +658,12 @@ public class ObjectStreamClass implements Serializable
int primFieldSize = -1; // -1 if not yet calculated
int objectFieldCount;
+ boolean isProxyClass = false;
+
// This is probably not necessary because this class is special cased already
// but it will avoid showing up as a discrepancy when comparing SUIDs.
private static final long serialVersionUID = -6120832682080437368L;
+
}
diff --git a/libjava/java/io/ObjectStreamField.java b/libjava/java/io/ObjectStreamField.java
index e0f8d6131a8..bb78a786c1f 100644
--- a/libjava/java/io/ObjectStreamField.java
+++ b/libjava/java/io/ObjectStreamField.java
@@ -47,8 +47,23 @@ public class ObjectStreamField implements java.lang.Comparable
{
this.name = name;
this.type = type;
+ this.typename = TypeSignature.getEncodingOfClass(type);
}
-
+
+ /**
+ * There're many cases you can't get java.lang.Class from typename if your context
+ * class loader can't load it, then use typename to construct the field
+ */
+ ObjectStreamField (String name, String typename){
+ this.name = name;
+ this.typename = typename;
+ try{
+ type = TypeSignature.getClassForEncoding(typename);
+ }catch(ClassNotFoundException e){
+ type = Object.class; //??
+ }
+ }
+
public String getName ()
{
return name;
@@ -61,12 +76,13 @@ public class ObjectStreamField implements java.lang.Comparable
public char getTypeCode ()
{
- return TypeSignature.getEncodingOfClass (type).charAt (0);
+ return typename.charAt (0);
}
public String getTypeString ()
{
- return TypeSignature.getEncodingOfClass (type);
+ // use intern()
+ return typename.intern();
}
public int getOffset ()
@@ -106,5 +122,6 @@ public class ObjectStreamField implements java.lang.Comparable
private String name;
private Class type;
+ private String typename;
private int offset = -1; // XXX make sure this is correct
}
diff --git a/libjava/java/io/OutputStreamWriter.java b/libjava/java/io/OutputStreamWriter.java
index 527ff75c66b..ff86a71fd0f 100644
--- a/libjava/java/io/OutputStreamWriter.java
+++ b/libjava/java/io/OutputStreamWriter.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -28,7 +28,10 @@ public class OutputStreamWriter extends Writer
private char[] work;
private int wcount;
- public String getEncoding() { return converter.getName(); }
+ public String getEncoding()
+ {
+ return out != null ? converter.getName() : null;
+ }
private OutputStreamWriter(OutputStream out, UnicodeToBytes encoder)
{
@@ -103,7 +106,7 @@ public class OutputStreamWriter extends Writer
private void writeChars(char[] buf, int offset, int count)
throws IOException
{
- while (count > 0)
+ while (count > 0 || converter.havePendingBytes())
{
// We must flush if out.count == out.buf.length.
// It is probably a good idea to flush if out.buf is almost full.
@@ -116,6 +119,13 @@ public class OutputStreamWriter extends Writer
}
converter.setOutput(out.buf, out.count);
int converted = converter.write(buf, offset, count);
+ // Flush if we cannot make progress.
+ if (converted == 0 && out.count == converter.count)
+ {
+ out.flush();
+ if (out.count != 0)
+ throw new IOException("unable to flush output byte buffer");
+ }
offset += converted;
count -= converted;
out.count = converter.count;
diff --git a/libjava/java/io/PipedOutputStream.java b/libjava/java/io/PipedOutputStream.java
index b819f309c2a..09d8db707e9 100644
--- a/libjava/java/io/PipedOutputStream.java
+++ b/libjava/java/io/PipedOutputStream.java
@@ -1,5 +1,5 @@
/* PipedOutputStream.java -- Write portion of piped streams.
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -97,7 +97,7 @@ public class PipedOutputStream extends OutputStream
*/
public void connect(PipedInputStream sink) throws IOException
{
- if (sink != null)
+ if (this.sink != null || sink.source != null)
throw new IOException ("Already connected");
sink.connect(this);
}
@@ -154,7 +154,7 @@ public class PipedOutputStream extends OutputStream
* had read all available data. Thats not the case - this method
* appears to be a no-op?
*/
- public void flush()
+ public void flush() throws IOException
{
}
@@ -165,7 +165,7 @@ public class PipedOutputStream extends OutputStream
*
* @exception IOException If an error occurs
*/
- public void close()
+ public void close() throws IOException
{
// A close call on an unconnected PipedOutputStream has no effect.
if (sink != null)
diff --git a/libjava/java/io/PipedWriter.java b/libjava/java/io/PipedWriter.java
index a8844d746f2..e1a21156075 100644
--- a/libjava/java/io/PipedWriter.java
+++ b/libjava/java/io/PipedWriter.java
@@ -1,5 +1,5 @@
/* PipedWriter.java -- Write portion of piped character streams.
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -100,7 +100,7 @@ public class PipedWriter extends Writer
*/
public void connect(PipedReader sink) throws IOException
{
- if (sink != null)
+ if (this.sink != null || sink.source != null)
throw new IOException ("Already connected");
sink.connect(this);
}
@@ -166,7 +166,7 @@ public class PipedWriter extends Writer
*
* @exception IOException If an error occurs
*/
- public void close()
+ public void close() throws IOException
{
// A close call on an unconnected PipedWriter has no effect.
if (sink != null)
diff --git a/libjava/java/io/PrintStream.java b/libjava/java/io/PrintStream.java
index 621778da9d5..09bc85dca5b 100644
--- a/libjava/java/io/PrintStream.java
+++ b/libjava/java/io/PrintStream.java
@@ -1,6 +1,6 @@
// PrintStream.java - Print string representations
-/* Copyright (C) 1998, 1999, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation
This file is part of libgcj.
@@ -110,7 +110,7 @@ public class PrintStream extends FilterOutputStream
private void writeChars(char[] buf, int offset, int count)
throws IOException
{
- while (count > 0)
+ while (count > 0 || converter.havePendingBytes())
{
converter.setOutput(work_bytes, 0);
int converted = converter.write(buf, offset, count);
@@ -123,7 +123,7 @@ public class PrintStream extends FilterOutputStream
private void writeChars(String str, int offset, int count)
throws IOException
{
- while (count > 0)
+ while (count > 0 || converter.havePendingBytes())
{
converter.setOutput(work_bytes, 0);
int converted = converter.write(str, offset, count, work);
diff --git a/libjava/java/io/StringWriter.java b/libjava/java/io/StringWriter.java
index edf85715612..660ef166a2e 100644
--- a/libjava/java/io/StringWriter.java
+++ b/libjava/java/io/StringWriter.java
@@ -1,5 +1,5 @@
/* StringWriter.java -- Writes bytes to a StringBuffer
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -61,7 +61,7 @@ public class StringWriter extends Writer
* This method closes the stream. The contents of the internal buffer
* can still be retrieved, but future writes are not guaranteed to work.
*/
- public void close ()
+ public void close () throws IOException
{
// JCL says this does nothing. This seems to violate the Writer
// contract, in that other methods should still throw an
diff --git a/libjava/java/io/VMObjectStreamClass.java b/libjava/java/io/VMObjectStreamClass.java
new file mode 100644
index 00000000000..fd4023e402b
--- /dev/null
+++ b/libjava/java/io/VMObjectStreamClass.java
@@ -0,0 +1,50 @@
+/* VMObjectStreamClass.java -- VM helper functions for ObjectStreamClass
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.io;
+
+import java.lang.reflect.Method;
+
+final class VMObjectStreamClass
+{
+ /**
+ * Returns true if CLAZZ has a static class initializer
+ * (a.k.a. <clinit>).
+ */
+ static native boolean hasClassInitializer (Class clazz);
+}
diff --git a/libjava/java/io/natFileDescriptorPosix.cc b/libjava/java/io/natFileDescriptorPosix.cc
index 80e6bad97ae..04a55ff0e2e 100644
--- a/libjava/java/io/natFileDescriptorPosix.cc
+++ b/libjava/java/io/natFileDescriptorPosix.cc
@@ -1,6 +1,6 @@
// natFileDescriptor.cc - Native part of FileDescriptor class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -18,6 +18,10 @@ details. */
#include <sys/stat.h>
#include <sys/param.h>
+#ifndef MAXPATHLEN
+# define MAXPATHLEN 1024
+#endif
+
#ifdef HAVE_SYS_IOCTL_H
#define BSD_COMP /* Get FIONREAD on Solaris2. */
#include <sys/ioctl.h>
@@ -147,6 +151,7 @@ java::io::FileDescriptor::write (jint b)
throw new IOException (JvNewStringLatin1 (strerror (errno)));
}
}
+ position++;
}
void
@@ -177,6 +182,7 @@ java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
written += r;
len -= r;
bytes += r;
+ position += r;
}
}
@@ -193,7 +199,6 @@ void
java::io::FileDescriptor::setLength (jlong pos)
{
struct stat sb;
- off_t orig;
#ifdef HAVE_FTRUNCATE
if (::fstat (fd, &sb))
@@ -202,10 +207,6 @@ java::io::FileDescriptor::setLength (jlong pos)
if ((jlong) sb.st_size == pos)
return;
- orig = ::lseek (fd, (off_t) 0, SEEK_CUR);
- if (orig == -1)
- throw new IOException (JvNewStringLatin1 (strerror (errno)));
-
// If the file is too short, we extend it. We can't rely on
// ftruncate() extending the file. So we lseek() to 1 byte less
// than we want, and then we write a single byte at the end.
@@ -215,11 +216,15 @@ java::io::FileDescriptor::setLength (jlong pos)
throw new IOException (JvNewStringLatin1 (strerror (errno)));
char out = '\0';
int r = ::write (fd, &out, 1);
- if (r <= 0 || ::lseek (fd, orig, SEEK_SET) == -1)
+ if (r <= 0 || ::lseek (fd, position, SEEK_SET) == -1)
throw new IOException (JvNewStringLatin1 (strerror (errno)));
}
- else if (::ftruncate (fd, (off_t) pos))
- throw new IOException (JvNewStringLatin1 (strerror (errno)));
+ else
+ {
+ if (::ftruncate (fd, (off_t) pos))
+ throw new IOException (JvNewStringLatin1 (strerror (errno)));
+ position = pos;
+ }
#else /* HAVE_FTRUNCATE */
throw new IOException (JvNewStringLatin1 ("FileDescriptor.setLength not implemented"));
#endif /* HAVE_FTRUNCATE */
@@ -230,19 +235,29 @@ java::io::FileDescriptor::seek (jlong pos, jint whence, jboolean eof_trunc)
{
JvAssert (whence == SET || whence == CUR);
- jlong len = length ();
- jlong here = getFilePointer ();
-
- if (eof_trunc
- && ((whence == SET && pos > len) || (whence == CUR && here + pos > len)))
+ if (eof_trunc)
{
- whence = SET;
- pos = len;
+ jlong len = length ();
+ if (whence == SET)
+ {
+ if (pos > len)
+ pos = len;
+ }
+ else
+ {
+ jlong here = getFilePointer ();
+ if (here + pos > len)
+ {
+ pos = len;
+ whence = SET;
+ }
+ }
}
off_t r = ::lseek (fd, (off_t) pos, whence == SET ? SEEK_SET : SEEK_CUR);
if (r == -1)
throw new IOException (JvNewStringLatin1 (strerror (errno)));
+ position = r;
return r;
}
@@ -258,10 +273,7 @@ java::io::FileDescriptor::length (void)
jlong
java::io::FileDescriptor::getFilePointer (void)
{
- off_t r = ::lseek (fd, 0, SEEK_CUR);
- if (r == -1)
- throw new IOException (JvNewStringLatin1 (strerror (errno)));
- return r;
+ return position;
}
jint
@@ -282,6 +294,7 @@ java::io::FileDescriptor::read (void)
}
throw new IOException (JvNewStringLatin1 (strerror (errno)));
}
+ position++;
return b & 0xFF;
}
@@ -313,6 +326,7 @@ java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
}
throw new IOException (JvNewStringLatin1 (strerror (errno)));
}
+ position += r;
return r;
}
@@ -361,7 +375,7 @@ java::io::FileDescriptor::available (void)
off_t where = 0;
if (fstat (fd, &sb) != -1
&& S_ISREG (sb.st_mode)
- && (where = lseek (fd, SEEK_CUR, 0)) != (off_t) -1)
+ && (where = lseek (fd, 0, SEEK_CUR)) != (off_t) -1)
{
num = (long) (sb.st_size - where);
num_set = true;
@@ -387,6 +401,6 @@ java::io::FileDescriptor::available (void)
return (jint) num;
#else
- throw new IOException (JvNewStringLatin1 ("unimplemented"));
+ return 0;
#endif
}
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
index 4b157f7042c..87f94e81222 100644
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ b/libjava/java/io/natFileDescriptorWin32.cc
@@ -1,6 +1,7 @@
// natFileDescriptorWin32.cc - Native part of FileDescriptor class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+ Foundation, Inc.
This file is part of libgcj.
@@ -288,7 +289,13 @@ java::io::FileDescriptor::read(void)
DWORD read;
if (! ReadFile ((HANDLE)fd, &buf, 1, &read, NULL))
- throw new IOException (JvNewStringLatin1 (winerr ()));
+ {
+ if (GetLastError () == ERROR_BROKEN_PIPE)
+ return -1;
+ else
+ throw new IOException (JvNewStringLatin1 (winerr ()));
+ }
+
if (! read)
return -1;
else
@@ -313,9 +320,15 @@ java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
DWORD read;
if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL))
- throw new IOException (JvNewStringLatin1 (winerr ()));
+ {
+ if (GetLastError () == ERROR_BROKEN_PIPE)
+ return -1;
+ else
+ throw new IOException (JvNewStringLatin1 (winerr ()));
+ }
if (read == 0) return -1;
+
return (jint)read;
}
diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc
index f9fe78ef203..d6b106eaefe 100644
--- a/libjava/java/io/natFilePosix.cc
+++ b/libjava/java/io/natFilePosix.cc
@@ -1,6 +1,6 @@
// natFile.cc - Native part of File class for POSIX.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -26,6 +26,10 @@ details. */
#include <string.h>
#include <utime.h>
+#ifndef MAXPATHLEN
+# define MAXPATHLEN 1024
+#endif
+
#include <gcj/cni.h>
#include <jvm.h>
#include <java/io/File.h>
@@ -36,6 +40,10 @@ details. */
#include <java/io/FileFilter.h>
#include <java/lang/System.h>
+#ifdef _SCO_DS
+# undef HAVE_READDIR_R
+#endif
+
jboolean
java::io::File::_access (jint query)
{
@@ -60,14 +68,14 @@ java::io::File::_access (jint query)
jboolean
java::io::File::_stat (jint query)
{
+ if (query == ISHIDDEN)
+ return getName()->charAt(0) == '.';
+
+#ifdef HAVE_STAT
char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1);
jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
buf[total] = '\0';
- if (query == ISHIDDEN)
- return (getName()->charAt(0) == '.');
-
-#ifdef HAVE_STAT
struct stat sb;
if (::stat (buf, &sb))
return false;
@@ -131,7 +139,7 @@ java::io::File::getCanonicalPath (void)
jboolean
java::io::File::isAbsolute (void)
{
- return path->charAt(0) == '/';
+ return path->length() > 0 && path->charAt(0) == '/';
}
jobjectArray
diff --git a/libjava/java/io/natFileWin32.cc b/libjava/java/io/natFileWin32.cc
index ebdaeab1d78..1e068329a32 100644
--- a/libjava/java/io/natFileWin32.cc
+++ b/libjava/java/io/natFileWin32.cc
@@ -1,6 +1,6 @@
-// natFileWin32.cc - Native part of File class.
+// natFileWin32.cc - Native part of File class for Win32.
-/* Copyright (C) 1998, 1999, 2002 Red Hat, Inc.
+/* Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
This file is part of libgcj.
@@ -26,6 +26,19 @@ details. */
#include <java/io/FileFilter.h>
#include <java/lang/System.h>
+// Java timestamps are milliseconds since the UNIX epoch (00:00:00 UTC on
+// January 1, 1970) while Win32 file-times are 100-nanosecond intervals
+// since the Win32 epoch (00:00:00 UTC on January 1, 1601). The following
+// constant represents the number of milliseconds to be added to a
+// Java timestamp to base it on the Win32 epoch.
+//
+// There were 369 years between 1601 and 1970, including 89 leap years
+// (since 1700, 1800 and 1900 were not leap years):
+//
+// (89*366 + 280*365) days * 86400 seconds/day = 11644473600 seconds
+//
+#define WIN32_EPOCH_MILLIS 11644473600000LL
+
jboolean
java::io::File::_access (jint query)
{
@@ -91,12 +104,16 @@ java::io::File::attr (jint query)
FindClose( sHandle);
if (query == LENGTH)
- return ((long long)info.nFileSizeHigh) << 32 | (unsigned long long)info.nFileSizeLow;
- else {
- // FIXME? This is somewhat compiler dependant (the LL constant suffix)
- // The file time as return by windows is the number of 100-nanosecond intervals since January 1, 1601
- return (((((long long)info.ftLastWriteTime.dwHighDateTime) << 32) | ((unsigned long long)info.ftLastWriteTime.dwLowDateTime)) - 116444736000000000LL) / 10000LL;
- }
+ return ((long long)info.nFileSizeHigh) << 32
+ | (unsigned long long)info.nFileSizeLow;
+ else
+ {
+ // The file time as returned by Windows is in terms of the number
+ // of 100-nanosecond intervals since 00:00:00 UTC, January 1, 1601.
+ return (((((long long)info.ftLastWriteTime.dwHighDateTime) << 32)
+ | ((unsigned long long)info.ftLastWriteTime.dwLowDateTime))
+ - WIN32_EPOCH_MILLIS*10000LL) / 10000LL;
+ }
}
jstring
@@ -119,8 +136,14 @@ java::io::File::getCanonicalPath (void)
jboolean
java::io::File::isAbsolute (void)
{
- if (path->charAt(0) == '/' || path->charAt(0) == '\\')
+ // See if the path represents a Windows UNC network path.
+ if (path->length () > 2
+ && (path->charAt (0) == '\\') && (path->charAt (1) == '\\'))
return true;
+
+ // Note that the path is not an absolute path even if it starts with
+ // a '/' or a '\' because it lacks a drive specifier.
+
if (path->length() < 3)
return false;
// Hard-code A-Za-z because Windows (I think) can't use non-ASCII
@@ -132,8 +155,11 @@ java::io::File::isAbsolute (void)
&& (path->charAt(2) == '/' || path->charAt(2) == '\\'));
}
-void java::io::File::init_native() { }
-
+void java::io::File::init_native ()
+{
+ maxPathLen = MAX_PATH;
+ caseSensitive = false;
+}
jobjectArray
java::io::File::performList (java::io::FilenameFilter *filter,
@@ -145,8 +171,10 @@ java::io::File::performList (java::io::FilenameFilter *filter,
return NULL;
char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (canon) + 5);
jsize total = JvGetStringUTFRegion (canon, 0, canon->length(), buf);
- // FIXME?
- strcpy(&buf[total], "\\*.*");
+ if (buf[total-1] == '\\')
+ strcpy (&buf[total], "*.*");
+ else
+ strcpy (&buf[total], "\\*.*");
WIN32_FIND_DATA data;
HANDLE handle = FindFirstFile (buf, &data);
@@ -186,7 +214,6 @@ java::io::File::performList (java::io::FilenameFilter *filter,
return ret;
}
-
jboolean
java::io::File::performMkdir (void)
{
@@ -229,7 +256,112 @@ java::io::File::performDelete ()
return (DeleteFile (buf)) ? true : false;
}
-jboolean java::io::File::performCreate (void) { JvFail("unimplemented\n"); }
-jboolean java::io::File::performSetReadOnly() { JvFail("unimplemented"); }
-jboolean java::io::File::performSetLastModified(jlong time) { JvFail("unimplemented"); }
-JArray<java::io::File*>* java::io::File::performListRoots() { JvFail("unimplemented"); }
+jboolean java::io::File::performCreate (void)
+{
+ jstring canon = getCanonicalPath ();
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (canon) + 1);
+ jsize total = JvGetStringUTFRegion (canon, 0, canon->length (), buf);
+ buf[total] = '\0';
+
+ HANDLE h = CreateFile (buf, 0, 0, NULL, CREATE_NEW,
+ FILE_ATTRIBUTE_NORMAL, NULL);
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ CloseHandle (h);
+ return true;
+ }
+ else
+ {
+ if (GetLastError () == ERROR_ALREADY_EXISTS)
+ return false;
+ else
+ throw new IOException (JvNewStringLatin1 ("CreateFile failed"));
+ }
+}
+
+jboolean java::io::File::performSetReadOnly ()
+{
+ jstring canon = getCanonicalPath ();
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (canon) + 1);
+ jsize total = JvGetStringUTFRegion (canon, 0, canon->length (), buf);
+ buf[total] = '\0';
+
+ DWORD attrs = GetFileAttributes (buf);
+ if (attrs != INVALID_FILE_ATTRIBUTES)
+ {
+ if (SetFileAttributes (buf, attrs | FILE_ATTRIBUTE_READONLY) != 0)
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+}
+
+jboolean java::io::File::performSetLastModified (jlong time)
+{
+ jstring canon = getCanonicalPath ();
+ char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (canon) + 1);
+ jsize total = JvGetStringUTFRegion (canon, 0, canon->length (), buf);
+ buf[total] = '\0';
+
+ FILETIME modTime;
+ long long mTime100ns = ((long long) time /* Ha! */
+ + WIN32_EPOCH_MILLIS) * 10000LL;
+
+ modTime.dwLowDateTime = (DWORD) mTime100ns;
+ modTime.dwHighDateTime = (DWORD) (mTime100ns >> 32);
+
+ jboolean retVal = false;
+ HANDLE h = CreateFile (buf, FILE_WRITE_ATTRIBUTES,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL, OPEN_EXISTING, 0, NULL);
+
+ if (h != INVALID_HANDLE_VALUE)
+ {
+ if (SetFileTime (h, NULL, &modTime, &modTime) != 0)
+ retVal = true;
+
+ CloseHandle (h);
+ }
+
+ return retVal;
+}
+
+JArray<java::io::File*>* java::io::File::performListRoots ()
+{
+ DWORD drivesBitmap = GetLogicalDrives ();
+ DWORD mask;
+
+ // Possible drive letters are from ASCII 'A'-'Z'.
+ int numDrives = 0;
+ mask = 1;
+ for (int i = 0; i < 26; i++)
+ {
+ if ((drivesBitmap & mask) != 0)
+ numDrives++;
+ mask <<= 1;
+ }
+
+ JArray<java::io::File *> *roots
+ = reinterpret_cast <JArray<java::io::File *>*>
+ (JvNewObjectArray (numDrives, &java::io::File::class$, NULL));
+
+ ::java::io::File **rootsArray = elements (roots);
+
+ char aDriveRoot[] = {'A', ':', '\\', '\0'};
+ mask = 1;
+ for (int i = 0, j = 0; i < 26; i++)
+ {
+ if ((drivesBitmap & mask) != 0)
+ {
+ rootsArray[j]
+ = new ::java::io::File (JvNewStringLatin1 (aDriveRoot));
+ j++;
+ }
+ mask <<= 1;
+ aDriveRoot[0]++;
+ }
+
+ return roots;
+}
diff --git a/libjava/java/io/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc
index 8240144827f..8b84e7e3199 100644
--- a/libjava/java/io/natObjectInputStream.cc
+++ b/libjava/java/io/natObjectInputStream.cc
@@ -69,16 +69,3 @@ java::io::ObjectInputStream::callConstructor (jclass klass, jobject obj)
+ m->offset);
_Jv_CallAnyMethodA (obj, JvPrimClass (void), meth, false, arg_types, NULL);
}
-
-java::lang::reflect::Field *
-java::io::ObjectInputStream::getField (jclass klass, jstring name)
-{
- return klass->getPrivateField (name);
-}
-
-java::lang::reflect::Method *
-java::io::ObjectInputStream::getMethod (jclass klass, jstring name,
- JArray<jclass> *arg_types)
-{
- return klass->getPrivateMethod (name, arg_types);
-}
diff --git a/libjava/java/io/natObjectOutputStream.cc b/libjava/java/io/natObjectOutputStream.cc
deleted file mode 100644
index 45ab7537fc3..00000000000
--- a/libjava/java/io/natObjectOutputStream.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// natObjectOutputStream.cc - Native part of ObjectOutputStream class.
-
-/* Copyright (C) 1998, 1999 Free Software Foundation
-
- This ObjectOutputStream is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the ObjectOutputStream "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-
-#include <gcj/cni.h>
-#include <jvm.h>
-#include <java/io/ObjectOutputStream$PutField.h>
-#include <java/io/ObjectOutputStream.h>
-#include <java/io/IOException.h>
-#include <java/lang/Class.h>
-
-
-java::lang::reflect::Field *
-java::io::ObjectOutputStream::getField (jclass klass, jstring name)
-{
- return klass->getPrivateField (name);
-}
-
-java::lang::reflect::Method *
-java::io::ObjectOutputStream::getMethod (jclass klass, jstring name,
- JArray<jclass> *arg_types)
-{
- return klass->getPrivateMethod (name, arg_types);
-}
-
diff --git a/libjava/java/io/natVMObjectStreamClass.cc b/libjava/java/io/natVMObjectStreamClass.cc
new file mode 100644
index 00000000000..b7a056c457f
--- /dev/null
+++ b/libjava/java/io/natVMObjectStreamClass.cc
@@ -0,0 +1,23 @@
+// natVMObjectStreamClass.cc - Native part of VMObjectStreamClass class.
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This VMObjectStreamClass is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for
+details. */
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/io/VMObjectStreamClass.h>
+#include <java/lang/Class.h>
+
+jboolean
+java::io::VMObjectStreamClass::hasClassInitializer (jclass klass)
+{
+ _Jv_Method *meth = _Jv_GetMethodLocal(klass, gcj::clinit_name,
+ gcj::void_signature);
+ return (meth != NULL);
+}
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index 4ccf3886431..0012fc24365 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -1,6 +1,6 @@
// Class.h - Header file for java.lang.Class. -*- c++ -*-
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -182,9 +182,9 @@ public:
JArray<java::lang::reflect::Method *> *getMethods (void);
inline jint getModifiers (void)
- {
- return accflags;
- }
+ {
+ return accflags & java::lang::reflect::Modifier::ALL_FLAGS;
+ }
jstring getName (void);
@@ -348,6 +348,7 @@ private:
_Jv_Utf8Const *method_signature);
friend void _Jv_PrepareClass (jclass);
+ friend void _Jv_PrepareMissingMethods (jclass base, jclass iface_class);
friend class _Jv_ClassReader;
friend class _Jv_InterpClass;
@@ -360,6 +361,7 @@ private:
friend class _Jv_BytecodeVerifier;
friend class gnu::gcj::runtime::StackTrace;
+ friend class java::io::VMObjectStreamClass;
// Chain for class pool.
jclass next;
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java
index 033b2cc4a6e..5d564dce747 100644
--- a/libjava/java/lang/ClassLoader.java
+++ b/libjava/java/lang/ClassLoader.java
@@ -1,6 +1,6 @@
// ClassLoader.java - Define policies for loading Java classes.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -468,17 +468,18 @@ public abstract class ClassLoader
{
throw x; // rethrow
}
- catch (java.lang.VirtualMachineError x)
+ catch (VirtualMachineError x)
{
throw x; // rethrow
}
- catch (java.lang.Throwable x)
+ catch (Throwable x)
{
// This should never happen, or we are beyond spec.
- throw new InternalError ("Unexpected exception "
- + "while defining class "
- + name + ": "
- + x.toString ());
+ InternalError r = new InternalError ("Unexpected exception "
+ + "while defining class "
+ + name);
+ r.initCause(x);
+ throw r;
}
}
@@ -732,8 +733,7 @@ public abstract class ClassLoader
/**
* If a class named <code>name</code> was previously loaded using
* this <code>ClassLoader</code>, then it is returned. Otherwise
- * it returns <code>null</code>. (Unlike the JDK this is native,
- * since we implement the class table internally.)
+ * it returns <code>null</code>.
* @param name class to find.
* @return the class loaded, or null.
*/
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java
index bfaaaf92f23..922d6bb6d24 100644
--- a/libjava/java/lang/StringBuffer.java
+++ b/libjava/java/lang/StringBuffer.java
@@ -308,26 +308,27 @@ public final class StringBuffer implements Serializable, CharSequence
}
}
- /** Get the specified array of characters.
- * The characters will be copied into the array you pass in.
- * @param srcOffset the index to start copying from in the
- * <code>StringBuffer</code>.
- * @param srcEnd the number of characters to copy.
- * @param dst the array to copy into.
- * @param dstOffset the index to start copying into <code>dst</code>.
- * @exception NullPointerException if dst is null.
- * @exception IndexOutOfBoundsException if any source or target
- * indices are out of range.
- * @see java.lang.System#arraycopy(java.lang.Object,int,java.lang.Object,int,int)
- */
- public synchronized void getChars (int srcOffset, int srcEnd,
- char[] dst, int dstOffset)
- {
- if (srcOffset < 0 || srcOffset > srcEnd)
- throw new StringIndexOutOfBoundsException (srcOffset);
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public synchronized void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
int todo = srcEnd - srcOffset;
- if (srcEnd > count || dstOffset + todo > count)
- throw new StringIndexOutOfBoundsException (srcEnd);
+ if (srcOffset < 0 || srcEnd > count || todo < 0)
+ throw new StringIndexOutOfBoundsException();
System.arraycopy(value, srcOffset, dst, dstOffset, todo);
}
diff --git a/libjava/java/lang/System.java b/libjava/java/lang/System.java
index edc818fb181..2e7c031b16c 100644
--- a/libjava/java/lang/System.java
+++ b/libjava/java/lang/System.java
@@ -1,5 +1,5 @@
/* System.java -- useful methods to interface with the system
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -73,22 +73,41 @@ public final class System
loadLibrary("javalang");
Properties defaultProperties = Runtime.defaultProperties;
- defaultProperties.put("gnu.cpu.endian",
- isWordsBigEndian() ? "big" : "little");
+ // Set base URL if not already set.
+ if (defaultProperties.get("gnu.classpath.home.url") == null)
+ defaultProperties.put("gnu.classpath.home.url",
+ "file://"
+ + defaultProperties.get("gnu.classpath.home")
+ + "/lib");
+
+ // Set short name if not already set.
+ if (defaultProperties.get("gnu.classpath.vm.shortname") == null)
+ {
+ String value = defaultProperties.getProperty("java.vm.name");
+ int index = value.lastIndexOf(' ');
+ if (index != -1)
+ value = value.substring(index + 1);
+ defaultProperties.put("gnu.classpath.vm.shortname", value);
+ }
+
+ defaultProperties.put("gnu.cpu.endian",
+ isWordsBigEndian() ? "big" : "little");
// XXX FIXME - Temp hack for old systems that set the wrong property
if (defaultProperties.get("java.io.tmpdir") == null)
defaultProperties.put("java.io.tmpdir",
defaultProperties.get("java.tmpdir"));
}
-
+
/**
* Stores the current system properties. This can be modified by
* {@link #setProperties(Properties)}, but will never be null, because
* setProperties(null) sucks in the default properties.
*/
+ // Note that we use clone here and not new. Some programs assume
+ // that the system properties do not have a parent.
private static Properties properties
- = new Properties(Runtime.defaultProperties);
+ = (Properties) Runtime.defaultProperties.clone();
/**
* The standard InputStream. This is assigned at startup and starts its
@@ -101,7 +120,7 @@ public final class System
* however.
*/
public static final InputStream in
- = new BufferedInputStream (new FileInputStream(FileDescriptor.in));
+ = new BufferedInputStream(new FileInputStream(FileDescriptor.in));
/**
* The standard output PrintStream. This is assigned at startup and
* starts its life perfectly valid. Although it is marked final, you can
@@ -113,7 +132,7 @@ public final class System
* you, however.
*/
public static final PrintStream out
- = new PrintStream(new BufferedOutputStream (new FileOutputStream(FileDescriptor.out)), true);
+ = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.out)), true);
/**
* The standard output PrintStream. This is assigned at startup and
* starts its life perfectly valid. Although it is marked final, you can
@@ -125,7 +144,7 @@ public final class System
* you, however.
*/
public static final PrintStream err
- = new PrintStream(new BufferedOutputStream (new FileOutputStream(FileDescriptor.err)), true);
+ = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true);
/**
* This class is uninstantiable.
@@ -312,6 +331,10 @@ public final class System
* In addition, gnu defines several other properties, where ? stands for
* each character in '0' through '9':
* <dl>
+ * <dl> gnu.classpath.vm.shortname <dd> Succinct version of the VM name;
+ * used for finding property files in file system
+ * <dl> gnu.classpath.home.url <dd> Base URL; used for finding
+ * property files in file system
* <dt> gnu.cpu.endian <dd>big or little
* <dt> gnu.java.io.encoding_scheme_alias.ISO-8859-? <dd>8859_?
* <dt> gnu.java.io.encoding_scheme_alias.iso-8859-? <dd>8859_?
@@ -348,7 +371,11 @@ public final class System
if (sm != null)
sm.checkPropertiesAccess();
if (properties == null)
- properties = new Properties(Runtime.defaultProperties);
+ {
+ // Note that we use clone here and not new. Some programs
+ // assume that the system properties do not have a parent.
+ properties = (Properties) Runtime.defaultProperties.clone();
+ }
System.properties = properties;
}
diff --git a/libjava/java/lang/Win32Process.java b/libjava/java/lang/Win32Process.java
index 72911d2961b..b1c7e027379 100644
--- a/libjava/java/lang/Win32Process.java
+++ b/libjava/java/lang/Win32Process.java
@@ -1,6 +1,6 @@
// Win32Process.java - Subclass of Process for Win32 systems.
-/* Copyright (C) 2002 Free Software Foundation
+/* Copyright (C) 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -22,51 +22,63 @@ import java.io.IOException;
// This is entirely internal to our implementation.
-// NOTE: when this is implemented, we'll need to add
-// HANDLE_FLAG_INHERIT in FileDescriptor and other places, to make
-// sure that file descriptors aren't inherited by the child process.
-// See _Jv_platform_close_on_exec.
-
// This file is copied to `ConcreteProcess.java' before compilation.
// Hence the class name apparently does not match the file name.
final class ConcreteProcess extends Process
{
- public void destroy ()
- {
- throw new Error("not implemented");
- }
-
+ public native void destroy ();
+
+ public native boolean hasExited ();
+
public int exitValue ()
{
- throw new Error("not implemented");
+ if (! hasExited ())
+ throw new IllegalThreadStateException ("Process has not exited");
+
+ return exitCode;
}
public InputStream getErrorStream ()
{
- throw new Error("not implemented");
+ return errorStream;
}
public InputStream getInputStream ()
{
- throw new Error("not implemented");
+ return inputStream;
}
public OutputStream getOutputStream ()
{
- throw new Error("not implemented");
+ return outputStream;
}
- public int waitFor () throws InterruptedException
- {
- throw new Error("not implemented");
- }
+ public native int waitFor () throws InterruptedException;
+
+ public native void startProcess (String[] progarray,
+ String[] envp,
+ File dir)
+ throws IOException;
+
+ public native void cleanup ();
public ConcreteProcess (String[] progarray,
String[] envp,
File dir)
throws IOException
{
- throw new IOException("not implemented");
+ startProcess (progarray, envp, dir);
}
+ // The standard streams (stdin, stdout and stderr, respectively)
+ // of the child as seen by the parent process.
+ private OutputStream outputStream;
+ private InputStream inputStream;
+ private InputStream errorStream;
+
+ // Handle to the child process - cast to HANDLE before use.
+ private int procHandle;
+
+ // Exit code of the child if it has exited.
+ private int exitCode;
}
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index bafac789b0d..b1319c8fc9f 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -343,7 +343,9 @@ java::lang::Class::_getDeclaredMethod (jstring name,
while (--i >= 0)
{
if (_Jv_equalUtf8Consts (methods[i].name, utf_name)
- && _Jv_equaln (methods[i].signature, partial_sig, p_len))
+ && _Jv_equaln (methods[i].signature, partial_sig, p_len)
+ && (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) == 0)
{
// Found it.
using namespace java::lang::reflect;
@@ -368,7 +370,9 @@ java::lang::Class::getDeclaredMethods (void)
if (method->name == NULL
|| _Jv_equalUtf8Consts (method->name, clinit_name)
|| _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name))
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
continue;
numMethods++;
}
@@ -382,7 +386,9 @@ java::lang::Class::getDeclaredMethods (void)
if (method->name == NULL
|| _Jv_equalUtf8Consts (method->name, clinit_name)
|| _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name))
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
continue;
java::lang::reflect::Method* rmethod
= new java::lang::reflect::Method ();
@@ -514,7 +520,9 @@ java::lang::Class::_getMethod (jstring name, JArray<jclass> *param_types)
{
// FIXME: access checks.
if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
- && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len))
+ && _Jv_equaln (klass->methods[i].signature, partial_sig, p_len)
+ && (klass->methods[i].accflags
+ & java::lang::reflect::Modifier::INVISIBLE) == 0)
{
// Found it.
using namespace java::lang::reflect;
@@ -565,7 +573,9 @@ java::lang::Class::_getMethods (JArray<java::lang::reflect::Method *> *result,
if (method->name == NULL
|| _Jv_equalUtf8Consts (method->name, clinit_name)
|| _Jv_equalUtf8Consts (method->name, init_name)
- || _Jv_equalUtf8Consts (method->name, finit_name))
+ || _Jv_equalUtf8Consts (method->name, finit_name)
+ || (method->accflags
+ & java::lang::reflect::Modifier::INVISIBLE) != 0)
continue;
// Only want public methods.
if (! java::lang::reflect::Modifier::isPublic (method->accflags))
@@ -954,14 +964,14 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
{
if (source == target)
return true;
-
+
// If target is array, so must source be.
- if (target->isArray ())
+ while (target->isArray ())
{
if (! source->isArray())
return false;
- return _Jv_IsAssignableFrom(target->getComponentType(),
- source->getComponentType());
+ target = target->getComponentType();
+ source = source->getComponentType();
}
if (target->isInterface())
@@ -971,7 +981,7 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
if (__builtin_expect
(source->idt == NULL || source->isInterface(), false))
return _Jv_InterfaceAssignableFrom (target, source);
-
+
_Jv_IDispatchTable *cl_idt = source->idt;
_Jv_IDispatchTable *if_idt = target->idt;
@@ -987,23 +997,31 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
}
return false;
}
-
+
// Primitive TYPE classes are only assignable to themselves.
- if (__builtin_expect (target->isPrimitive(), false))
+ if (__builtin_expect (target->isPrimitive() || source->isPrimitive(), false))
return false;
-
+
if (target == &java::lang::Object::class$)
+ return true;
+ else if (source->ancestors == NULL || target->ancestors == NULL)
{
- if (source->isPrimitive())
- return false;
- return true;
+ // We need this case when either SOURCE or TARGET has not has
+ // its constant-time tables prepared.
+
+ // At this point we know that TARGET can't be Object, so it is
+ // safe to use that as the termination point.
+ while (source && source != &java::lang::Object::class$)
+ {
+ if (source == target)
+ return true;
+ source = source->getSuperclass();
+ }
}
- else if (source->ancestors != NULL
- && target->ancestors != NULL
- && source->depth >= target->depth
+ else if (source->depth >= target->depth
&& source->ancestors[source->depth - target->depth] == target)
return true;
-
+
return false;
}
@@ -1342,7 +1360,7 @@ _Jv_AppendPartialITable (jclass klass, jclass iface, void **itable,
}
static _Jv_Mutex_t iindex_mutex;
-bool iindex_mutex_initialized = false;
+static bool iindex_mutex_initialized = false;
// We need to find the correct offset in the Class Interface Dispatch
// Table for a given interface. Once we have that, invoking an interface
@@ -1564,6 +1582,13 @@ isVirtualMethod (_Jv_Method *meth)
&& meth->name->data[0] != '<');
}
+// This is put in empty vtable slots.
+static void
+_Jv_abstractMethodError (void)
+{
+ throw new java::lang::AbstractMethodError();
+}
+
// Prepare virtual method declarations in KLASS, and any superclasses as
// required, by determining their vtable index, setting method->index, and
// finally setting the class's vtable_method_count. Must be called with the
@@ -1594,13 +1619,16 @@ _Jv_LayoutVTableMethods (jclass klass)
continue;
if (superclass != NULL)
- super_meth = _Jv_LookupDeclaredMethod (superclass, meth->name,
- meth->signature);
+ {
+ super_meth = _Jv_LookupDeclaredMethod (superclass, meth->name,
+ meth->signature);
+ }
if (super_meth)
meth->index = super_meth->index;
- else if (! (meth->accflags & java::lang::reflect::Modifier::FINAL))
- meth->index = index++;
+ else if (! (meth->accflags & java::lang::reflect::Modifier::FINAL)
+ && ! (klass->accflags & java::lang::reflect::Modifier::FINAL))
+ meth->index = index++;
}
klass->vtable_method_count = index;
@@ -1626,8 +1654,7 @@ _Jv_SetVTableEntries (jclass klass, _Jv_VTable *vtable, jboolean *flags)
continue;
if ((meth->accflags & Modifier::ABSTRACT))
{
- // FIXME: we should set abstract slots to a function that
- // throws AbstractMethodError. How can we do that on IA-64?
+ vtable->set_method(meth->index, (void *) &_Jv_abstractMethodError);
flags[meth->index] = false;
}
else
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index aeee08a6265..96a81812219 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -56,17 +56,18 @@ java::lang::ClassLoader::defineClass0 (jstring name,
sizeof (_Jv_InterpClass));
_Jv_InitNewClassFields (klass);
- // synchronize on the class, so that it is not
- // attempted initialized until we're done loading.
- _Jv_MonitorEnter (klass);
+ // Synchronize on the class, so that it is not attempted initialized
+ // until we're done loading.
+ JvSynchronize sync (klass);
- // record which is the defining loader
- klass->loader = this;
+ // Record the defining loader. For the system class loader, we
+ // record NULL.
+ if (this != java::lang::ClassLoader::getSystemClassLoader())
+ klass->loader = this;
- // register that we are the initiating loader...
if (name != 0)
{
- _Jv_Utf8Const * name2 = _Jv_makeUtf8Const (name);
+ _Jv_Utf8Const *name2 = _Jv_makeUtf8Const (name);
if (! _Jv_VerifyClassName (name2))
throw new java::lang::ClassFormatError
@@ -86,16 +87,8 @@ java::lang::ClassLoader::defineClass0 (jstring name,
_Jv_UnregisterClass (klass);
- _Jv_MonitorExit (klass);
-
- // FIXME: Here we may want to test that EX does
- // indeed represent a valid exception. That is,
- // anything but ClassNotFoundException,
- // or some kind of Error.
-
- // FIXME: Rewrite this as a cleanup instead of
- // as a catch handler.
-
+ // If EX is not a ClassNotFoundException, that's ok, because we
+ // account for the possibility in defineClass().
throw ex;
}
@@ -104,10 +97,6 @@ java::lang::ClassLoader::defineClass0 (jstring name,
// if everything proceeded sucessfully, we're loaded.
JvAssert (klass->state == JV_STATE_LOADED);
- // if an exception is generated, this is initially missed.
- // however, we come back here in handleException0 below...
- _Jv_MonitorExit (klass);
-
return klass;
#else // INTERPRETER
@@ -293,10 +282,11 @@ _Jv_PrepareCompiledClass (jclass klass)
// Hash function for Utf8Consts.
#define HASH_UTF(Utf) (((Utf)->hash) % HASH_LEN)
-struct _Jv_LoaderInfo {
- _Jv_LoaderInfo *next;
- java::lang::Class *klass;
- java::lang::ClassLoader *loader;
+struct _Jv_LoaderInfo
+{
+ _Jv_LoaderInfo *next;
+ java::lang::Class *klass;
+ java::lang::ClassLoader *loader;
};
static _Jv_LoaderInfo *initiated_classes[HASH_LEN];
@@ -309,9 +299,12 @@ static jclass loaded_classes[HASH_LEN];
jclass
_Jv_FindClassInCache (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
{
- _Jv_MonitorEnter (&java::lang::Class::class$);
+ JvSynchronize sync (&java::lang::Class::class$);
jint hash = HASH_UTF (name);
+ if (loader && loader == java::lang::ClassLoader::getSystemClassLoader())
+ loader = NULL;
+
// first, if LOADER is a defining loader, then it is also initiating
jclass klass;
for (klass = loaded_classes[hash]; klass; klass = klass->next)
@@ -337,15 +330,13 @@ _Jv_FindClassInCache (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
}
}
- _Jv_MonitorExit (&java::lang::Class::class$);
-
return klass;
}
void
_Jv_UnregisterClass (jclass the_class)
{
- _Jv_MonitorEnter (&java::lang::Class::class$);
+ JvSynchronize sync (&java::lang::Class::class$);
jint hash = HASH_UTF(the_class->name);
jclass *klass = &(loaded_classes[hash]);
@@ -363,29 +354,32 @@ _Jv_UnregisterClass (jclass the_class)
{
while (*info && (*info)->klass == the_class)
{
+ _Jv_LoaderInfo *old = *info;
*info = (*info)->next;
+ _Jv_Free (old);
}
if (*info == NULL)
break;
}
-
- _Jv_MonitorExit (&java::lang::Class::class$);
}
void
_Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
{
- // non-gc alloc!
- _Jv_LoaderInfo *info = (_Jv_LoaderInfo *) _Jv_Malloc (sizeof(_Jv_LoaderInfo));
+ if (loader && loader == java::lang::ClassLoader::getSystemClassLoader())
+ loader = NULL;
+
+ // This information can't be visible to the GC.
+ _Jv_LoaderInfo *info
+ = (_Jv_LoaderInfo *) _Jv_Malloc (sizeof(_Jv_LoaderInfo));
jint hash = HASH_UTF(klass->name);
- _Jv_MonitorEnter (&java::lang::Class::class$);
+ JvSynchronize sync (&java::lang::Class::class$);
info->loader = loader;
info->klass = klass;
info->next = initiated_classes[hash];
initiated_classes[hash] = info;
- _Jv_MonitorExit (&java::lang::Class::class$);
}
// This function is called many times during startup, before main() is
@@ -471,6 +465,9 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
{
jstring sname = _Jv_NewStringUTF (name->data);
+ java::lang::ClassLoader *sys
+ = java::lang::ClassLoader::getSystemClassLoader ();
+
if (loader)
{
// Load using a user-defined loader, jvmspec 5.3.2
@@ -479,14 +476,14 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
// If "loader" delegated the loadClass operation to another
// loader, explicitly register that it is also an initiating
// loader of the given class.
- if (klass && (klass->getClassLoader () != loader))
+ java::lang::ClassLoader *delegate = (loader == sys
+ ? NULL
+ : loader);
+ if (klass && klass->getClassLoaderInternal () != delegate)
_Jv_RegisterInitiatingLoader (klass, loader);
}
else
{
- java::lang::ClassLoader *sys
- = java::lang::ClassLoader::getSystemClassLoader ();
-
// Load using the bootstrap loader jvmspec 5.3.1.
klass = sys->loadClass (sname, false);
diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc
index 4c2fd6cab03..33f3e8de27f 100644
--- a/libjava/java/lang/natObject.cc
+++ b/libjava/java/lang/natObject.cc
@@ -1,6 +1,6 @@
// natObject.cc - Implementation of the Object class.
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -9,6 +9,7 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
+#include <platform.h>
#include <string.h>
@@ -532,7 +533,7 @@ spin(unsigned n)
unsigned duration = MIN_SLEEP_USECS << (n - yield_limit);
if (n >= 15 + yield_limit || duration > MAX_SLEEP_USECS)
duration = MAX_SLEEP_USECS;
- java::lang::Thread::sleep(0, duration);
+ _Jv_platform_usleep(duration);
}
}
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index f5177b0aa35..86eca64faf9 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -1,6 +1,6 @@
// natRuntime.cc - Implementation of native side of Runtime class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -9,6 +9,7 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
+#include <platform.h>
#include <stdlib.h>
@@ -29,11 +30,10 @@ details. */
#include <java/lang/ConcreteProcess.h>
#include <java/lang/ClassLoader.h>
#include <gnu/gcj/runtime/StackTrace.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <jni.h>
-#include "platform.h"
-
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
@@ -181,19 +181,26 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
ClassLoader *sys = ClassLoader::getSystemClassLoader();
ClassLoader *look = NULL;
gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(10);
- for (int i = 0; i < 10; ++i)
- {
- jclass klass = t->classAt(i);
- if (klass != NULL)
+ try
+ {
+ for (int i = 0; i < 10; ++i)
{
- ClassLoader *loader = klass->getClassLoaderInternal();
- if (loader != NULL && loader != sys)
+ jclass klass = t->classAt(i);
+ if (klass != NULL)
{
- look = loader;
- break;
+ ClassLoader *loader = klass->getClassLoaderInternal();
+ if (loader != NULL && loader != sys)
+ {
+ look = loader;
+ break;
+ }
}
}
}
+ catch (::java::lang::ArrayIndexOutOfBoundsException *e)
+ {
+ }
+
if (look != NULL)
{
// Don't include solib prefix in string passed to
@@ -233,6 +240,19 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
add_library (h);
void *onload = lt_dlsym (h, "JNI_OnLoad");
+
+#ifdef WIN32
+ // On Win32, JNI_OnLoad is an "stdcall" function taking two pointers
+ // (8 bytes) as arguments. It could also have been exported as
+ // "JNI_OnLoad@8" (MinGW) or "_JNI_OnLoad@8" (MSVC).
+ if (onload == NULL)
+ {
+ onload = lt_dlsym (h, "JNI_OnLoad@8");
+ if (onload == NULL)
+ onload = lt_dlsym (h, "_JNI_OnLoad@8");
+ }
+#endif /* WIN32 */
+
if (onload != NULL)
{
JavaVM *vm = _Jv_GetJavaVM ();
@@ -241,7 +261,7 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
// FIXME: what?
return;
}
- jint vers = ((jint (*) (JavaVM *, void *)) onload) (vm, NULL);
+ jint vers = ((jint (JNICALL *) (JavaVM *, void *)) onload) (vm, NULL);
if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2
&& vers != JNI_VERSION_1_4)
{
@@ -587,7 +607,7 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
}
// The name used to invoke this process (argv[0] in C).
- SET ("gnu.gcj.progname", _Jv_ThisExecutable());
+ SET ("gnu.gcj.progname", _Jv_GetSafeArg (0));
// Allow platform specific settings and overrides.
_Jv_platform_initProperties (newprops);
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
index 0d30a35af51..4fc453127ad 100644
--- a/libjava/java/lang/natString.cc
+++ b/libjava/java/lang/natString.cc
@@ -586,12 +586,12 @@ java::lang::String::getBytes (jstring enc)
jint offset = 0;
gnu::gcj::convert::UnicodeToBytes *converter
= gnu::gcj::convert::UnicodeToBytes::getEncoder(enc);
- while (todo > 0)
+ while (todo > 0 || converter->havePendingBytes())
{
converter->setOutput(buffer, bufpos);
int converted = converter->write(this, offset, todo, NULL);
bufpos = converter->count;
- if (converted == 0)
+ if (converted == 0 && bufpos == converter->count)
{
buflen *= 2;
jbyteArray newbuffer = JvNewByteArray(buflen);
@@ -599,10 +599,10 @@ java::lang::String::getBytes (jstring enc)
buffer = newbuffer;
}
else
- {
- offset += converted;
- todo -= converted;
- }
+ bufpos = converter->count;
+
+ offset += converted;
+ todo -= converted;
}
converter->done ();
if (bufpos == buflen)
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
index ffa3f1a5053..e2d42324386 100644
--- a/libjava/java/lang/natSystem.cc
+++ b/libjava/java/lang/natSystem.cc
@@ -1,6 +1,6 @@
// natSystem.cc - Native code implementing System class.
-/* Copyright (C) 1998, 1999, 2000, 2001 , 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -9,6 +9,7 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
+#include <platform.h>
#include <stdio.h>
#include <string.h>
@@ -24,8 +25,6 @@ details. */
#include <java/io/PrintStream.h>
#include <java/io/InputStream.h>
-#include "platform.h"
-
void
diff --git a/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc
index e69de29bb2d..ff7ddb5f50a 100644
--- a/libjava/java/lang/natWin32Process.cc
+++ b/libjava/java/lang/natWin32Process.cc
@@ -0,0 +1,295 @@
+// natWin32Process.cc - Native side of Win32 process code.
+
+/* Copyright (C) 2003 Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+// Conflicts with the definition in "java/lang/reflect/Modifier.h"
+#undef STRICT
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+#include <java/lang/ConcreteProcess.h>
+#include <java/lang/IllegalThreadStateException.h>
+#include <java/lang/InterruptedException.h>
+#include <java/lang/NullPointerException.h>
+#include <java/lang/Thread.h>
+#include <java/io/File.h>
+#include <java/io/FileDescriptor.h>
+#include <java/io/FileInputStream.h>
+#include <java/io/FileOutputStream.h>
+#include <java/io/IOException.h>
+#include <java/lang/OutOfMemoryError.h>
+
+void
+java::lang::ConcreteProcess::cleanup (void)
+{
+ if (inputStream != NULL)
+ {
+ inputStream->close ();
+ inputStream = NULL;
+ }
+
+ if (outputStream != NULL)
+ {
+ outputStream->close ();
+ outputStream = NULL;
+ }
+
+ if (errorStream != NULL)
+ {
+ errorStream->close ();
+ errorStream = NULL;
+ }
+}
+
+void
+java::lang::ConcreteProcess::destroy (void)
+{
+ if (! hasExited ())
+ {
+ // Kill it forcibly and assign an (arbitrary) exit code of 0.
+ TerminateProcess ((HANDLE) procHandle, 0);
+ exitCode = 0;
+
+ cleanup ();
+ }
+}
+
+jboolean
+java::lang::ConcreteProcess::hasExited (void)
+{
+ DWORD exitStatus;
+
+ if (GetExitCodeProcess ((HANDLE) procHandle, &exitStatus) != 0)
+ {
+ // NOTE: STILL_ACTIVE is defined as "259" by Win32 - if the
+ // child actually exits with this return code, we have a
+ // problem here. See MSDN documentation on GetExitCodeProcess( ).
+
+ if (exitStatus == STILL_ACTIVE)
+ return false;
+ else
+ {
+ cleanup ();
+ exitCode = exitStatus;
+ return true;
+ }
+ }
+ else
+ return true;
+}
+
+jint
+java::lang::ConcreteProcess::waitFor (void)
+{
+ if (! hasExited ())
+ {
+ DWORD exitStatus = 0UL;
+
+ // FIXME: The wait should be interruptible.
+ WaitForSingleObject ((HANDLE) procHandle, INFINITE);
+
+ GetExitCodeProcess ((HANDLE) procHandle, &exitStatus);
+ exitCode = exitStatus;
+
+ cleanup ();
+ }
+
+ return exitCode;
+}
+
+static char *
+new_string (jstring string)
+{
+ jsize s = _Jv_GetStringUTFLength (string);
+ char *buf = (char *) _Jv_Malloc (s + 1);
+ _Jv_GetStringUTFRegion (string, 0, s, buf);
+ buf[s] = '\0';
+ return buf;
+}
+
+void
+java::lang::ConcreteProcess::startProcess (jstringArray progarray,
+ jstringArray envp,
+ java::io::File *dir)
+{
+ using namespace java::io;
+
+ procHandle = (jint) INVALID_HANDLE_VALUE;
+
+ // Reconstruct the command line.
+ jstring *elts = elements (progarray);
+
+ int cmdLineLen = 0;
+
+ for (int i = 0; i < progarray->length; ++i)
+ cmdLineLen += (_Jv_GetStringUTFLength (elts[i]) + 3);
+
+ char *cmdLine = (char *) _Jv_Malloc (cmdLineLen + 1);
+ char *cmdLineCurPos = cmdLine;
+
+ for (int i = 0; i < progarray->length; ++i)
+ {
+ if (i > 0)
+ *cmdLineCurPos++ = ' ';
+ *cmdLineCurPos++ = '\"';
+ jsize s = _Jv_GetStringUTFLength (elts[i]);
+ _Jv_GetStringUTFRegion (elts[i], 0, s, cmdLineCurPos);
+ cmdLineCurPos += s;
+ *cmdLineCurPos++ = '\"';
+ }
+ *cmdLineCurPos = '\0';
+
+ // Get the environment, if any.
+ char *env = NULL;
+ if (envp)
+ {
+ elts = elements (envp);
+
+ int envLen = 0;
+ for (int i = 0; i < envp->length; ++i)
+ envLen += (_Jv_GetStringUTFLength (elts[i]) + 1);
+
+ env = (char *) _Jv_Malloc (envLen + 1);
+
+ int j = 0;
+ for (int i = 0; i < envp->length; ++i)
+ {
+ jsize s = _Jv_GetStringUTFLength (elts[i]);
+ _Jv_GetStringUTFRegion (elts[i], 0, s, (env + j));
+
+ j += s;
+ *(env + j) = '\0';
+ j++;
+ }
+ *(env + j) = '\0';
+ }
+
+ // Get the working directory path, if specified.
+ char *wdir = NULL;
+ if (dir != NULL)
+ wdir = new_string (dir->getPath ());
+
+ errorStream = NULL;
+ inputStream = NULL;
+ outputStream = NULL;
+
+ java::lang::Throwable *exc = NULL;
+
+ try
+ {
+ // We create anonymous pipes to communicate with the child
+ // on each of standard streams.
+
+ HANDLE cldStdInRd, cldStdInWr;
+ HANDLE cldStdOutRd, cldStdOutWr;
+ HANDLE cldStdErrRd, cldStdErrWr;
+
+ SECURITY_ATTRIBUTES sAttrs;
+
+ // Explicitly allow the handles to the pipes to be inherited.
+ sAttrs.nLength = sizeof (SECURITY_ATTRIBUTES);
+ sAttrs.bInheritHandle = 1;
+ sAttrs.lpSecurityDescriptor = NULL;
+
+
+ char tmpBuff[64];
+ if (CreatePipe (&cldStdInRd, &cldStdInWr, &sAttrs, 0) == 0)
+ {
+ sprintf (tmpBuff,
+ "Error creating stdin pipe (Win32 Error Code: %lu)",
+ GetLastError ());
+ throw new IOException (JvNewStringLatin1 (tmpBuff));
+ }
+
+ if (CreatePipe (&cldStdOutRd, &cldStdOutWr, &sAttrs, 0) == 0)
+ {
+ sprintf (tmpBuff,
+ "Error creating stdout pipe (Win32 Error Code: %lu)",
+ GetLastError ());
+ throw new IOException (JvNewStringLatin1 (tmpBuff));
+ }
+
+ if (CreatePipe (&cldStdErrRd, &cldStdErrWr, &sAttrs, 0) == 0)
+ {
+ sprintf (tmpBuff,
+ "Error creating stderr pipe (Win32 Error Code: %lu)",
+ GetLastError ());
+ throw new IOException (JvNewStringLatin1 (tmpBuff));
+ }
+
+ outputStream = new FileOutputStream
+ (new FileDescriptor ((jint) cldStdInWr));
+ inputStream = new FileInputStream
+ (new FileDescriptor ((jint) cldStdOutRd));
+ errorStream = new FileInputStream
+ (new FileDescriptor ((jint) cldStdErrRd));
+
+ // Now create the child process.
+ PROCESS_INFORMATION pi;
+ STARTUPINFO si;
+
+ ZeroMemory (&pi, sizeof (PROCESS_INFORMATION));
+
+ ZeroMemory (&si, sizeof (STARTUPINFO));
+ si.cb = sizeof (STARTUPINFO);
+
+ // Explicitly specify the handles to the standard streams.
+ si.dwFlags |= STARTF_USESTDHANDLES;
+
+ si.hStdInput = cldStdInRd;
+ si.hStdOutput = cldStdOutWr;
+ si.hStdError = cldStdErrWr;
+
+ if (CreateProcess (NULL,
+ cmdLine,
+ NULL,
+ NULL,
+ 1,
+ 0,
+ env,
+ wdir,
+ &si,
+ &pi) == 0)
+ {
+ sprintf (tmpBuff,
+ "Error creating child process (Win32 Error Code: %lu)",
+ GetLastError ());
+ throw new IOException (JvNewStringLatin1 (tmpBuff));
+ }
+
+ procHandle = (jint ) pi.hProcess;
+
+ // Close the wrong ends (for the parent) of the pipes.
+ CloseHandle (cldStdInRd);
+ CloseHandle (cldStdOutWr);
+ CloseHandle (cldStdErrWr);
+
+ _Jv_Free (cmdLine);
+ if (env != NULL)
+ _Jv_Free (env);
+ if (wdir != NULL)
+ _Jv_Free (wdir);
+ }
+ catch (java::lang::Throwable *thrown)
+ {
+ cleanup ();
+ exc = thrown;
+ }
+
+ if (exc != NULL)
+ throw exc;
+}
diff --git a/libjava/java/lang/reflect/Modifier.java b/libjava/java/lang/reflect/Modifier.java
index 75d0c9b47f5..8171a88feb5 100644
--- a/libjava/java/lang/reflect/Modifier.java
+++ b/libjava/java/lang/reflect/Modifier.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Modifier
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -158,6 +158,17 @@ public class Modifier
static final int ALL_FLAGS = 0xfff;
/**
+ * GCJ-LOCAL: This access flag is set on methods we declare
+ * internally but which must not be visible to reflection.
+ */
+ static final int INVISIBLE = 0x1000;
+
+ /**
+ * GCJ-LOCAL: This access flag is set on interpreted classes.
+ */
+ static final int INTERPRETED = 0x1000;
+
+ /**
* Check whether the given modifier is abstract.
* @param mod the modifier.
* @return <code>true</code> if abstract, <code>false</code> otherwise.
diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc
index 9b697d25024..c0f7077cc40 100644
--- a/libjava/java/lang/reflect/natMethod.cc
+++ b/libjava/java/lang/reflect/natMethod.cc
@@ -358,46 +358,30 @@ _Jv_CallAnyMethodA (jobject obj,
obj = JvAllocObject (return_type);
}
- int i = 0;
- int size = 0;
- if (needs_this)
- {
- // The `NULL' type is `Object'.
- argtypes[i++] = get_ffi_type (NULL);
- size += sizeof (jobject);
- }
-
- for (int arg = 0; i < param_count; ++i, ++arg)
- {
- argtypes[i] = get_ffi_type (paramelts[arg]);
- if (paramelts[arg]->isPrimitive())
- size += paramelts[arg]->size();
- else
- size += sizeof (jobject);
- }
-
+ const int size_per_arg = sizeof(jvalue);
ffi_cif cif;
- if (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, param_count,
- rtype, argtypes) != FFI_OK)
- {
- // FIXME: throw some kind of VirtualMachineError here.
- }
- char *p = (char *) __builtin_alloca (size);
- void **values = (void **) __builtin_alloca (param_count * sizeof (void *));
+ char *p = (char *) __builtin_alloca (param_count * size_per_arg);
+ // Overallocate to get correct alignment.
+ void **values = (void **)
+ __builtin_alloca (param_count * sizeof (void *));
- i = 0;
+ int i = 0;
if (needs_this)
{
+ // The `NULL' type is `Object'.
+ argtypes[i] = get_ffi_type (NULL);
values[i] = p;
memcpy (p, &obj, sizeof (jobject));
- p += sizeof (jobject);
+ p += size_per_arg;
++i;
}
for (int arg = 0; i < param_count; ++i, ++arg)
{
int tsize;
+
+ argtypes[i] = get_ffi_type (paramelts[arg]);
if (paramelts[arg]->isPrimitive())
tsize = paramelts[arg]->size();
else
@@ -406,9 +390,16 @@ _Jv_CallAnyMethodA (jobject obj,
// Copy appropriate bits from the jvalue into the ffi array.
// FIXME: we could do this copying all in one loop, above, by
// over-allocating a bit.
+ // How do we do this without breaking big-endian platforms?
values[i] = p;
memcpy (p, &args[arg], tsize);
- p += tsize;
+ p += size_per_arg;
+ }
+
+ if (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, param_count,
+ rtype, argtypes) != FFI_OK)
+ {
+ // FIXME: throw some kind of VirtualMachineError here.
}
using namespace java::lang;
diff --git a/libjava/java/math/BigDecimal.java b/libjava/java/math/BigDecimal.java
index 713ba08e151..fc99cf1f7d2 100644
--- a/libjava/java/math/BigDecimal.java
+++ b/libjava/java/math/BigDecimal.java
@@ -178,15 +178,31 @@ public class BigDecimal extends Number implements Comparable
// Now parse exponent.
if (point < len)
{
- int exp = Integer.parseInt (num.substring (point + 1));
- exp -= scale;
- if (exp > 0)
+ point++;
+ if (num.charAt(point) == '+')
+ point++;
+
+ if (point >= len )
+ throw new NumberFormatException ("no exponent following e or E");
+
+ try
{
- intVal = intVal.multiply (BigInteger.valueOf (10).pow (exp));
- scale = 0;
+ int exp = Integer.parseInt (num.substring (point));
+ exp -= scale;
+ if (signum () == 0)
+ scale = 0;
+ else if (exp > 0)
+ {
+ intVal = intVal.multiply (BigInteger.valueOf (10).pow (exp));
+ scale = 0;
+ }
+ else
+ scale = - exp;
+ }
+ catch (NumberFormatException ex)
+ {
+ throw new NumberFormatException ("malformed exponent");
}
- else
- scale = - exp;
}
}
@@ -198,7 +214,7 @@ public class BigDecimal extends Number implements Comparable
public static BigDecimal valueOf (long val, int scale)
throws NumberFormatException
{
- if (scale == 0)
+ if ((scale == 0) && ((int)val == val))
switch ((int) val)
{
case 0:
@@ -252,7 +268,7 @@ public class BigDecimal extends Number implements Comparable
throw new ArithmeticException ("scale is negative: " + newScale);
if (intVal.signum () == 0) // handle special case of 0.0/0.0
- return ZERO;
+ return newScale == 0 ? ZERO : new BigDecimal (ZERO.intVal, newScale);
// Ensure that pow gets a non-negative value.
int valScale = val.scale;
@@ -415,6 +431,11 @@ public class BigDecimal extends Number implements Comparable
return scale;
}
+ public BigInteger unscaledValue()
+ {
+ return intVal;
+ }
+
public BigDecimal abs ()
{
return new BigDecimal (intVal.abs (), scale);
@@ -431,19 +452,29 @@ public class BigDecimal extends Number implements Comparable
if (scale == 0)
return bigStr;
- int point = bigStr.length() - scale;
boolean negative = (bigStr.charAt(0) == '-');
- StringBuffer sb = new StringBuffer(bigStr.length() + 1 +
- (point <= 0 ? -point+1 : 0));
- if (negative)
- sb.append('-');
- while (point <= 0)
+
+ int point = bigStr.length() - scale - (negative ? 1 : 0);
+
+ StringBuffer sb = new StringBuffer(bigStr.length() + 2 +
+ (point <= 0 ? (-point + 1) : 0));
+ if (point <= 0)
+ {
+ if (negative)
+ sb.append('-');
+ sb.append('0').append('.');
+ while (point < 0)
+ {
+ sb.append('0');
+ point++;
+ }
+ sb.append(bigStr.substring(negative ? 1 : 0));
+ }
+ else
{
- sb.append('0');
- point++;
+ sb.append(bigStr);
+ sb.insert(point + (negative ? 1 : 0), '.');
}
- sb.append(bigStr.substring(negative ? 1 : 0));
- sb.insert(point, '.');
return sb.toString();
}
diff --git a/libjava/java/math/BigInteger.java b/libjava/java/math/BigInteger.java
index e8c6b1dfdc9..34ec5a4c425 100644
--- a/libjava/java/math/BigInteger.java
+++ b/libjava/java/math/BigInteger.java
@@ -1,5 +1,5 @@
/* java.math.BigInteger -- Arbitary precision integers
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -110,6 +110,12 @@ public class BigInteger extends Number implements Comparable
109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251 };
+ /** HAC (Handbook of Applied Cryptography), Alfred Menezes & al. Table 4.4. */
+ private static final int[] k =
+ {100,150,200,250,300,350,400,500,600,800,1250, Integer.MAX_VALUE};
+ private static final int[] t =
+ { 27, 18, 15, 12, 9, 8, 7, 6, 5, 4, 3, 2};
+
private BigInteger()
{
}
@@ -217,39 +223,47 @@ public class BigInteger extends Number implements Comparable
}
}
+ /**
+ * Return a BigInteger that is bitLength bits long with a
+ * probability < 2^-100 of being composite.
+ *
+ * @param bitLength length in bits of resulting number
+ * @param rnd random number generator to use
+ * @throws ArithmeticException if bitLength < 2
+ * @since 1.4
+ */
+ public static BigInteger probablePrime(int bitLength, Random rnd)
+ {
+ if (bitLength < 2)
+ throw new ArithmeticException();
+
+ return new BigInteger(bitLength, 100, rnd);
+ }
+
/** Return a (possibly-shared) BigInteger with a given long value. */
- private static BigInteger make(long value)
+ public static BigInteger valueOf(long val)
{
- if (value >= minFixNum && value <= maxFixNum)
- return smallFixNums[(int)value - minFixNum];
- int i = (int) value;
- if ((long)i == value)
+ if (val >= minFixNum && val <= maxFixNum)
+ return smallFixNums[(int) val - minFixNum];
+ int i = (int) val;
+ if ((long) i == val)
return new BigInteger(i);
BigInteger result = alloc(2);
result.ival = 2;
result.words[0] = i;
- result.words[1] = (int) (value >> 32);
+ result.words[1] = (int)(val >> 32);
return result;
}
- // FIXME: Could simply rename 'make' method above as valueOf while
- // changing all instances of 'make'. Don't do this until this class
- // is done as the Kawa class this is based on has 'make' methods
- // with other parameters; wait to see if they are used in BigInteger.
- public static BigInteger valueOf(long val)
- {
- return make(val);
- }
-
/** Make a canonicalized BigInteger from an array of words.
* The array may be reused (without copying). */
private static BigInteger make(int[] words, int len)
{
if (words == null)
- return make(len);
+ return valueOf(len);
len = BigInteger.wordsNeeded(words, len);
if (len <= 1)
- return len == 0 ? ZERO : make(words[0]);
+ return len == 0 ? ZERO : valueOf(words[0]);
BigInteger num = new BigInteger();
num.words = words;
num.ival = len;
@@ -267,15 +281,15 @@ public class BigInteger extends Number implements Comparable
int bptr = 0;
int word = sign;
for (int i = bytes.length % 4; i > 0; --i, bptr++)
- word = (word << 8) | (((int) bytes[bptr]) & 0xff);
+ word = (word << 8) | (bytes[bptr] & 0xff);
words[--nwords] = word;
// Elements remaining in byte[] are a multiple of 4.
while (nwords > 0)
words[--nwords] = bytes[bptr++] << 24 |
- (((int) bytes[bptr++]) & 0xff) << 16 |
- (((int) bytes[bptr++]) & 0xff) << 8 |
- (((int) bytes[bptr++]) & 0xff);
+ (bytes[bptr++] & 0xff) << 16 |
+ (bytes[bptr++] & 0xff) << 8 |
+ (bytes[bptr++] & 0xff);
return words;
}
@@ -284,9 +298,8 @@ public class BigInteger extends Number implements Comparable
*/
private static BigInteger alloc(int nwords)
{
- if (nwords <= 1)
- return new BigInteger();
BigInteger result = new BigInteger();
+ if (nwords > 1)
result.words = new int[nwords];
return result;
}
@@ -376,12 +389,6 @@ public class BigInteger extends Number implements Comparable
return compareTo(this, val) > 0 ? this : val;
}
- private final boolean isOdd()
- {
- int low = words == null ? ival : words[0];
- return (low & 1) != 0;
- }
-
private final boolean isZero()
{
return words == null && ival == 0;
@@ -392,11 +399,6 @@ public class BigInteger extends Number implements Comparable
return words == null && ival == 1;
}
- private final boolean isMinusOne()
- {
- return words == null && ival == -1;
- }
-
/** Calculate how many words are significant in words[0:len-1].
* Returns the least value x such that x>0 && words[0:x-1]==words[0:len-1],
* when words is viewed as a 2's complement integer.
@@ -433,14 +435,14 @@ public class BigInteger extends Number implements Comparable
words = null;
}
if (words == null && ival >= minFixNum && ival <= maxFixNum)
- return smallFixNums[(int) ival - minFixNum];
+ return smallFixNums[ival - minFixNum];
return this;
}
/** Add two ints, yielding a BigInteger. */
private static final BigInteger add(int x, int y)
{
- return BigInteger.make((long) x + (long) y);
+ return valueOf((long) x + (long) y);
}
/** Add a BigInteger and an int, yielding a new BigInteger. */
@@ -526,13 +528,13 @@ public class BigInteger extends Number implements Comparable
private static BigInteger add(BigInteger x, BigInteger y, int k)
{
if (x.words == null && y.words == null)
- return BigInteger.make((long) k * (long) y.ival + (long) x.ival);
+ return valueOf((long) k * (long) y.ival + (long) x.ival);
if (k != 1)
{
if (k == -1)
y = BigInteger.neg(y);
else
- y = BigInteger.times(y, BigInteger.make(k));
+ y = BigInteger.times(y, valueOf(k));
}
if (x.words == null)
return BigInteger.add(y, x.ival);
@@ -580,7 +582,7 @@ public class BigInteger extends Number implements Comparable
int[] xwords = x.words;
int xlen = x.ival;
if (xwords == null)
- return BigInteger.make((long) xlen * (long) y);
+ return valueOf((long) xlen * (long) y);
boolean negative;
BigInteger result = BigInteger.alloc(xlen + 1);
if (xwords[xlen - 1] < 0)
@@ -662,7 +664,7 @@ public class BigInteger extends Number implements Comparable
xNegative = true;
if (x == Long.MIN_VALUE)
{
- divide(BigInteger.make(x), BigInteger.make(y),
+ divide(valueOf(x), valueOf(y),
quotient, remainder, rounding_mode);
return;
}
@@ -684,7 +686,7 @@ public class BigInteger extends Number implements Comparable
remainder.set(x);
}
else
- divide(BigInteger.make(x), BigInteger.make(y),
+ divide(valueOf(x), valueOf(y),
quotient, remainder, rounding_mode);
return;
}
@@ -966,39 +968,6 @@ public class BigInteger extends Number implements Comparable
return rem.canonicalize();
}
- /** Calculate power for BigInteger exponents.
- * @param y exponent assumed to be non-negative. */
- private BigInteger pow(BigInteger y)
- {
- if (isOne())
- return this;
- if (isMinusOne())
- return y.isOdd () ? this : ONE;
- if (y.words == null && y.ival >= 0)
- return pow(y.ival);
-
- // Assume exponent is non-negative.
- if (isZero())
- return this;
-
- // Implemented by repeated squaring and multiplication.
- BigInteger pow2 = this;
- BigInteger r = null;
- for (;;) // for (i = 0; ; i++)
- {
- // pow2 == x**(2**i)
- // prod = x**(sum(j=0..i-1, (y>>j)&1))
- if (y.isOdd())
- r = r == null ? pow2 : times(r, pow2); // r *= pow2
- y = BigInteger.shift(y, -1);
- if (y.isZero())
- break;
- // pow2 *= pow2;
- pow2 = times(pow2, pow2);
- }
- return r == null ? ONE : r;
- }
-
/** Calculate the integral power of a BigInteger.
* @param exponent the exponent (must be non-negative)
*/
@@ -1008,7 +977,6 @@ public class BigInteger extends Number implements Comparable
{
if (exponent == 0)
return ONE;
- else
throw new ArithmeticException("negative exponent");
}
if (isZero())
@@ -1051,51 +1019,34 @@ public class BigInteger extends Number implements Comparable
private static final int[] euclidInv(int a, int b, int prevDiv)
{
- // Storage for return values, plus one slot for a temp int (see below).
- int[] xy;
-
if (b == 0)
throw new ArithmeticException("not invertible");
- else if (b == 1)
- {
+
+ if (b == 1)
// Success: values are indeed invertible!
// Bottom of the recursion reached; start unwinding.
- xy = new int[3];
- xy[0] = -prevDiv;
- xy[1] = 1;
- return xy;
- }
-
- xy = euclidInv(b, a % b, a / b); // Recursion happens here.
+ return new int[] { -prevDiv, 1 };
- // xy[2] is just temp storage for intermediate results in the following
- // calculation. This saves us a bit of space over having an int
- // allocated at every level of this recursive method.
- xy[2] = xy[0];
- xy[0] = xy[2] * -prevDiv + xy[1];
- xy[1] = xy[2];
+ int[] xy = euclidInv(b, a % b, a / b); // Recursion happens here.
+ a = xy[0]; // use our local copy of 'a' as a work var
+ xy[0] = a * -prevDiv + xy[1];
+ xy[1] = a;
return xy;
}
- private static final BigInteger[]
- euclidInv(BigInteger a, BigInteger b, BigInteger prevDiv)
+ private static final void euclidInv(BigInteger a, BigInteger b,
+ BigInteger prevDiv, BigInteger[] xy)
{
- // FIXME: This method could be more efficient memory-wise and should be
- // modified as such since it is recursive.
-
- // Storage for return values, plus one slot for a temp int (see below).
- BigInteger[] xy;
-
if (b.isZero())
throw new ArithmeticException("not invertible");
- else if (b.isOne())
+
+ if (b.isOne())
{
// Success: values are indeed invertible!
// Bottom of the recursion reached; start unwinding.
- xy = new BigInteger[3];
xy[0] = neg(prevDiv);
- xy[1] = ONE;
- return xy;
+ xy[1] = ONE;
+ return;
}
// Recursion happens in the following conditional!
@@ -1104,25 +1055,23 @@ public class BigInteger extends Number implements Comparable
if (a.words == null)
{
int[] xyInt = euclidInv(b.ival, a.ival % b.ival, a.ival / b.ival);
- xy = new BigInteger[3];
xy[0] = new BigInteger(xyInt[0]);
- xy[1] = new BigInteger(xyInt[1]);
+ xy[1] = new BigInteger(xyInt[1]);
}
else
{
BigInteger rem = new BigInteger();
BigInteger quot = new BigInteger();
divide(a, b, quot, rem, FLOOR);
- xy = euclidInv(b, rem, quot);
+ // quot and rem may not be in canonical form. ensure
+ rem.canonicalize();
+ quot.canonicalize();
+ euclidInv(b, rem, quot, xy);
}
- // xy[2] is just temp storage for intermediate results in the following
- // calculation. This saves us a bit of space over having a BigInteger
- // allocated at every level of this recursive method.
- xy[2] = xy[0];
- xy[0] = add(xy[1], times(xy[2], prevDiv), -1);
- xy[1] = xy[2];
- return xy;
+ BigInteger t = xy[0];
+ xy[0] = add(xy[1], times(t, prevDiv), -1);
+ xy[1] = t;
}
public BigInteger modInverse(BigInteger y)
@@ -1133,7 +1082,7 @@ public class BigInteger extends Number implements Comparable
// Degenerate cases.
if (y.isOne())
return ZERO;
- else if (isOne())
+ if (isOne())
return ONE;
// Use Euclid's algorithm as in gcd() but do this recursively
@@ -1141,8 +1090,6 @@ public class BigInteger extends Number implements Comparable
// unwind from the recursion.
// Used http://www.math.nmsu.edu/~crypto/EuclideanAlgo.html as reference.
BigInteger result = new BigInteger();
- int xval = ival;
- int yval = y.ival;
boolean swapped = false;
if (y.words == null)
@@ -1153,8 +1100,8 @@ public class BigInteger extends Number implements Comparable
// math. Note that BigInteger.mod() must be used even if this is
// already an int as the % operator would provide a negative result if
// this is negative, BigInteger.mod() never returns negative values.
- if (words != null || isNegative())
- xval = mod(y).ival;
+ int xval = (words != null || isNegative()) ? mod(y).ival : ival;
+ int yval = y.ival;
// Swap values so x > y.
if (yval > xval)
@@ -1175,16 +1122,13 @@ public class BigInteger extends Number implements Comparable
}
else
{
- BigInteger x = this;
-
// As above, force this to be a positive value via modulo math.
- if (isNegative())
- x = mod(y);
+ BigInteger x = isNegative() ? this.mod(y) : this;
// Swap values so x > y.
if (x.compareTo(y) < 0)
{
- BigInteger tmp = x; x = y; y = tmp;
+ result = x; x = y; y = result; // use 'result' as a work var
swapped = true;
}
// As above (for ints), result will be in the 2nd element unless
@@ -1192,7 +1136,12 @@ public class BigInteger extends Number implements Comparable
BigInteger rem = new BigInteger();
BigInteger quot = new BigInteger();
divide(x, y, quot, rem, FLOOR);
- result = euclidInv(y, rem, quot)[swapped ? 0 : 1];
+ // quot and rem may not be in canonical form. ensure
+ rem.canonicalize();
+ quot.canonicalize();
+ BigInteger[] xy = new BigInteger[2];
+ euclidInv(y, rem, quot, xy);
+ result = swapped ? xy[0] : xy[1];
// Result can't be negative, so make it positive by adding the
// original modulus, y (which is now x if they were swapped).
@@ -1216,16 +1165,13 @@ public class BigInteger extends Number implements Comparable
// To do this naively by first raising this to the power of exponent
// and then performing modulo m would be extremely expensive, especially
// for very large numbers. The solution is found in Number Theory
- // where a combination of partial powers and modulos can be done easily.
+ // where a combination of partial powers and moduli can be done easily.
//
// We'll use the algorithm for Additive Chaining which can be found on
// p. 244 of "Applied Cryptography, Second Edition" by Bruce Schneier.
- BigInteger s, t, u;
- int i;
-
- s = ONE;
- t = this;
- u = exponent;
+ BigInteger s = ONE;
+ BigInteger t = this;
+ BigInteger u = exponent;
while (!u.isZero())
{
@@ -1242,24 +1188,22 @@ public class BigInteger extends Number implements Comparable
private static final int gcd(int a, int b)
{
// Euclid's algorithm, copied from libg++.
+ int tmp;
if (b > a)
{
- int tmp = a; a = b; b = tmp;
+ tmp = a; a = b; b = tmp;
}
for(;;)
{
if (b == 0)
return a;
- else if (b == 1)
+ if (b == 1)
return b;
- else
- {
- int tmp = b;
+ tmp = b;
b = a % b;
a = tmp;
}
}
- }
public BigInteger gcd(BigInteger y)
{
@@ -1268,7 +1212,7 @@ public class BigInteger extends Number implements Comparable
if (words == null)
{
if (xval == 0)
- return BigInteger.abs(y);
+ return abs(y);
if (y.words == null
&& xval != Integer.MIN_VALUE && yval != Integer.MIN_VALUE)
{
@@ -1276,14 +1220,14 @@ public class BigInteger extends Number implements Comparable
xval = -xval;
if (yval < 0)
yval = -yval;
- return BigInteger.make(BigInteger.gcd(xval, yval));
+ return valueOf(gcd(xval, yval));
}
xval = 1;
}
if (y.words == null)
{
if (yval == 0)
- return BigInteger.abs(this);
+ return abs(this);
yval = 1;
}
int len = (xval > yval ? xval : yval) + 1;
@@ -1298,8 +1242,24 @@ public class BigInteger extends Number implements Comparable
return result.canonicalize();
}
+ /**
+ * <p>Returns <code>true</code> if this BigInteger is probably prime,
+ * <code>false</code> if it's definitely composite. If <code>certainty</code>
+ * is <code><= 0</code>, <code>true</code> is returned.</p>
+ *
+ * @param certainty a measure of the uncertainty that the caller is willing
+ * to tolerate: if the call returns <code>true</code> the probability that
+ * this BigInteger is prime exceeds <code>(1 - 1/2<sup>certainty</sup>)</code>.
+ * The execution time of this method is proportional to the value of this
+ * parameter.
+ * @return <code>true</code> if this BigInteger is probably prime,
+ * <code>false</code> if it's definitely composite.
+ */
public boolean isProbablePrime(int certainty)
{
+ if (certainty < 1)
+ return true;
+
/** We'll use the Rabin-Miller algorithm for doing a probabilistic
* primality test. It is fast, easy and has faster decreasing odds of a
* composite passing than with other tests. This means that this
@@ -1311,19 +1271,20 @@ public class BigInteger extends Number implements Comparable
* Cryptography, Second Edition" by Bruce Schneier.
*/
- // First rule out small prime factors and assure the number is odd.
- for (int i = 0; i < primes.length; i++)
+ // First rule out small prime factors
+ BigInteger rem = new BigInteger();
+ int i;
+ for (i = 0; i < primes.length; i++)
{
if (words == null && ival == primes[i])
return true;
- if (remainder(make(primes[i])).isZero())
+
+ divide(this, smallFixNums[primes[i] - minFixNum], null, rem, TRUNCATE);
+ if (rem.canonicalize().isZero())
return false;
}
// Now perform the Rabin-Miller test.
- // NB: I know that this can be simplified programatically, but
- // I have tried to keep it as close as possible to the algorithm
- // as written in the Schneier book for reference purposes.
// Set b to the number of times 2 evenly divides (this - 1).
// I.e. 2^b is the largest power of 2 that divides (this - 1).
@@ -1331,22 +1292,31 @@ public class BigInteger extends Number implements Comparable
int b = pMinus1.getLowestSetBit();
// Set m such that this = 1 + 2^b * m.
- BigInteger m = pMinus1.divide(make(2L << b - 1));
-
- Random rand = new Random();
- while (certainty-- > 0)
- {
- // Pick a random number greater than 1 and less than this.
- // The algorithm says to pick a small number to make the calculations
- // go faster, but it doesn't say how small; we'll use 2 to 1024.
- int a = rand.nextInt();
- a = (a < 0 ? -a : a) % 1023 + 2;
-
- BigInteger z = make(a).modPow(m, this);
+ BigInteger m = pMinus1.divide(valueOf(2L << b - 1));
+
+ // The HAC (Handbook of Applied Cryptography), Alfred Menezes & al. Note
+ // 4.49 (controlling the error probability) gives the number of trials
+ // for an error probability of 1/2**80, given the number of bits in the
+ // number to test. we shall use these numbers as is if/when 'certainty'
+ // is less or equal to 80, and twice as much if it's greater.
+ int bits = this.bitLength();
+ for (i = 0; i < k.length; i++)
+ if (bits <= k[i])
+ break;
+ int trials = t[i];
+ if (certainty > 80)
+ trials *= 2;
+ BigInteger z;
+ for (int t = 0; t < trials; t++)
+ {
+ // The HAC (Handbook of Applied Cryptography), Alfred Menezes & al.
+ // Remark 4.28 states: "...A strategy that is sometimes employed
+ // is to fix the bases a to be the first few primes instead of
+ // choosing them at random.
+ z = smallFixNums[primes[t] - minFixNum].modPow(m, this);
if (z.isOne() || z.equals(pMinus1))
continue; // Passes the test; may be prime.
- int i;
for (i = 0; i < b; )
{
if (z.isOne())
@@ -1355,7 +1325,7 @@ public class BigInteger extends Number implements Comparable
if (z.equals(pMinus1))
break; // Passes the test; may be prime.
- z = z.modPow(make(2), this);
+ z = z.modPow(valueOf(2), this);
}
if (i == b && !z.equals(pMinus1))
@@ -1456,9 +1426,9 @@ public class BigInteger extends Number implements Comparable
if (x.words == null)
{
if (count <= 0)
- return make(count > -32 ? x.ival >> (-count) : x.ival < 0 ? -1 : 0);
+ return valueOf(count > -32 ? x.ival >> (-count) : x.ival < 0 ? -1 : 0);
if (count < 32)
- return make((long) x.ival << count);
+ return valueOf((long) x.ival << count);
}
if (count == 0)
return x;
@@ -1496,7 +1466,6 @@ public class BigInteger extends Number implements Comparable
work = words;
int len = ival;
- int buf_size = len * (MPN.chars_per_word(radix) + 1);
if (radix == 16)
{
if (neg)
@@ -1549,7 +1518,7 @@ public class BigInteger extends Number implements Comparable
{
if (words == null)
return Integer.toString(ival, radix);
- else if (ival <= 2)
+ if (ival <= 2)
return Long.toString(longValue(), radix);
int buf_size = ival * (MPN.chars_per_word(radix) + 1);
StringBuffer buffer = new StringBuffer(buf_size);
@@ -1599,7 +1568,7 @@ public class BigInteger extends Number implements Comparable
{
if (obj == null || ! (obj instanceof BigInteger))
return false;
- return BigInteger.equals(this, (BigInteger) obj);
+ return equals(this, (BigInteger) obj);
}
private static BigInteger valueOf(String s, int radix)
@@ -1609,7 +1578,7 @@ public class BigInteger extends Number implements Comparable
// Testing (len < MPN.chars_per_word(radix)) would be more accurate,
// but slightly more expensive, for little practical gain.
if (len <= 15 && radix <= 16)
- return BigInteger.make(Long.parseLong(s, radix));
+ return valueOf(Long.parseLong(s, radix));
int byte_len = 0;
byte[] bytes = new byte[len];
@@ -1654,8 +1623,7 @@ public class BigInteger extends Number implements Comparable
if (ival <= 2)
return (double) longValue();
if (isNegative())
- return BigInteger.neg(this).roundToDouble(0, true, false);
- else
+ return neg(this).roundToDouble(0, true, false);
return roundToDouble(0, false, false);
}
@@ -1763,7 +1731,6 @@ public class BigInteger extends Number implements Comparable
* Assumes words.length >= (this.words == null ? 1 : this.ival).
* Result is zero-extended, but need not be a valid 2's complement number.
*/
-
private void getAbsolute(int[] words)
{
int len;
@@ -1814,7 +1781,7 @@ public class BigInteger extends Number implements Comparable
return;
}
realloc(len + 1);
- if (BigInteger.negate(words, x.words, len))
+ if (negate(words, x.words, len))
words[len++] = 0;
ival = len;
}
@@ -1838,7 +1805,7 @@ public class BigInteger extends Number implements Comparable
private static BigInteger neg(BigInteger x)
{
if (x.words == null && x.ival != Integer.MIN_VALUE)
- return make(- x.ival);
+ return valueOf(- x.ival);
BigInteger result = new BigInteger(0);
result.setNegative(x);
return result.canonicalize();
@@ -1846,7 +1813,7 @@ public class BigInteger extends Number implements Comparable
public BigInteger negate()
{
- return BigInteger.neg(this);
+ return neg(this);
}
/** Calculates ceiling(log2(this < 0 ? -this : this+1))
@@ -1856,7 +1823,6 @@ public class BigInteger extends Number implements Comparable
{
if (words == null)
return MPN.intLength(ival);
- else
return MPN.intLength(words, ival);
}
@@ -1907,7 +1873,7 @@ public class BigInteger extends Number implements Comparable
case 1: return x.and(y);
case 3: return x;
case 5: return y;
- case 15: return make(-1);
+ case 15: return valueOf(-1);
}
BigInteger result = new BigInteger();
setBitOp(result, op, x, y);
@@ -2105,15 +2071,15 @@ public class BigInteger extends Number implements Comparable
private static BigInteger and(BigInteger x, int y)
{
if (x.words == null)
- return BigInteger.make(x.ival & y);
+ return valueOf(x.ival & y);
if (y >= 0)
- return BigInteger.make(x.words[0] & y);
+ return valueOf(x.words[0] & y);
int len = x.ival;
int[] words = new int[len];
words[0] = x.words[0] & y;
while (--len > 0)
words[len] = x.words[len];
- return BigInteger.make(words, x.ival);
+ return make(words, x.ival);
}
/** Return the logical (bit-wise) "and" of two BigIntegers. */
@@ -2136,7 +2102,7 @@ public class BigInteger extends Number implements Comparable
words[i] = x.words[i] & y.words[i];
for ( ; i < len; i++)
words[i] = x.words[i];
- return BigInteger.make(words, len);
+ return make(words, len);
}
/** Return the logical (bit-wise) "(inclusive) or" of two BigIntegers. */
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java
index b2f2ca11ce3..4a5a6236b29 100644
--- a/libjava/java/net/DatagramSocket.java
+++ b/libjava/java/net/DatagramSocket.java
@@ -1,12 +1,39 @@
-// DatagramSocket.java
-
-/* Copyright (C) 1999, 2000, 2002 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
+/* DatagramSocket.java -- A class to model UDP sockets
+ Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
package java.net;
@@ -15,16 +42,23 @@ import java.nio.channels.DatagramChannel;
import java.nio.channels.IllegalBlockingModeException;
/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 3, 1999.
- */
-
-/**
* Written using on-line Java Platform 1.2 API Specification, as well
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
* Status: Believed complete and correct.
*/
+/**
+ * This class models a connectionless datagram socket that sends
+ * individual packets of data across the network. In the TCP/IP world,
+ * this means UDP. Datagram packets do not have guaranteed delivery,
+ * or any guarantee about the order the data will be received on the
+ * remote host.
+ *
+ * @author Aaron M. Renn (arenn@urbanophile.com)
+ * @author Warren Levy (warrenl@cygnus.com)
+ * @date May 3, 1999.
+ */
+
public class DatagramSocket
{
/**
@@ -33,24 +67,31 @@ public class DatagramSocket
*/
static DatagramSocketImplFactory factory;
+ /**
+ * This is the implementation object used by this socket.
+ */
DatagramSocketImpl impl;
+ /**
+ * The unique DatagramChannel object associated with this datagram socket,
+ * or null.
+ */
DatagramChannel ch;
+ /**
+ * This is the address we are "connected" to
+ */
private InetAddress remoteAddress;
- private int remotePort;
/**
- * Creates a DatagramSocket
- *
- * @exception SocketException If an error occurs
- * @exception SecurityException If a security manager exists and
- * its checkListen method doesn't allow the operation
+ * This is the port we are "connected" to
*/
- public DatagramSocket() throws SocketException
- {
- this(0, null);
- }
+ private int remotePort = -1;
+
+ /**
+ * Indicates when the socket is closed.
+ */
+ private boolean closed = false;
/**
* Creates a DatagramSocket from a specified DatagramSocketImpl instance
@@ -67,31 +108,27 @@ public class DatagramSocket
}
/**
- * Creates a datagram socket that is bound to a given socket address
- *
- * @param bindaddr The socket address to bind to
+ * Initializes a new instance of <code>DatagramSocket</code> that binds to
+ * a random port and every address on the local machine.
*
- * @exception SocketException If an error occurs
+ * @exception SocketException If an error occurs.
* @exception SecurityException If a security manager exists and
- * its checkListen method doesn't allow the operation
- *
- * @since 1.4
+ * its checkListen method doesn't allow the operation.
*/
- public DatagramSocket (SocketAddress bindaddr)
- throws SocketException
+ public DatagramSocket() throws SocketException
{
- this (((InetSocketAddress) bindaddr).getPort (),
- ((InetSocketAddress) bindaddr).getAddress ());
+ this(0, null);
}
/**
- * Creates a datagram socket that is bound to a specific port
+ * Initializes a new instance of <code>DatagramSocket</code> that binds to
+ * the specified port and every address on the local machine.
*
- * @param port The port number to bind to
+ * @param port The local port number to bind to.
*
- * @exception SocketException If an error occurs
- * @exception SecurityException If a security manager exists and
- * its checkListen method doesn't allow the operation
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation.
+ * @exception SocketException If an error occurs.
*/
public DatagramSocket(int port) throws SocketException
{
@@ -99,14 +136,15 @@ public class DatagramSocket
}
/**
- * Creates a datagram socket that is bound to a specific port/inet address
+ * Initializes a new instance of <code>DatagramSocket</code> that binds to
+ * the specified local port and address.
*
- * @param port The port number to bind to
- * @param laddr The local address to bind to
+ * @param port The local port number to bind to.
+ * @param laddr The local address to bind to.
*
- * @exception SocketException If an error occurs
- * @exception SecurityException If a security manager exists and
- * its checkListen method doesn't allow the operation
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation.
+ * @exception SocketException If an error occurs.
*/
public DatagramSocket(int port, InetAddress laddr) throws SocketException
{
@@ -123,8 +161,8 @@ public class DatagramSocket
else
try
{
- impl = (DatagramSocketImpl) Class.forName("java.net." + propVal +
- "DatagramSocketImpl").newInstance();
+ impl = (DatagramSocketImpl) Class.forName
+ ("java.net." + propVal + "DatagramSocketImpl").newInstance();
}
catch (Exception e)
{
@@ -145,64 +183,68 @@ public class DatagramSocket
}
/**
- * Binds the socket to the given socket addres
+ * Initializes a new instance of <code>DatagramSocket</code> that binds to
+ * the specified local port and address.
*
- * @param address The socket address to bind to
+ * @param port The local port number to bind to.
+ * @param laddr The local address to bind to.
*
- * @exception SocketException If an error occurs
- * @exception SecurityException If a security manager exists and
- * its checkListen method doesn't allow the operation
- * @exception IllegalArgumentException If address type is not supported
+ * @exception SecurityException If a security manager exists and its
+ * checkListen method doesn't allow the operation.
+ * @exception SocketException If an error occurs.
*
* @since 1.4
*/
- public void bind (SocketAddress address)
- throws SocketException
+ public DatagramSocket (SocketAddress address) throws SocketException
{
- if (! (address instanceof InetSocketAddress))
- throw new IllegalArgumentException ();
-
- InetSocketAddress tmp = (InetSocketAddress) address;
-
- SecurityManager s = System.getSecurityManager ();
- if (s != null)
- s.checkListen(tmp.getPort ());
-
- impl.bind (tmp.getPort (), tmp.getAddress ());
+ this (((InetSocketAddress) address).getPort (),
+ ((InetSocketAddress) address).getAddress ());
}
/**
- * Closes the datagram socket
+ * Closes this datagram socket.
*/
public void close()
{
- impl.close();
- remoteAddress = null;
- remotePort = -1;
+ if (!closed)
+ {
+ impl.close();
+ remoteAddress = null;
+ remotePort = -1;
+ closed = true;
+ }
}
/**
- * Checks if the datagram socket is closed
+ * This method returns the remote address to which this socket is
+ * connected. If this socket is not connected, then this method will
+ * return <code>null</code>.
*
- * @since 1.4
+ * @return The remote address.
+ *
+ * @since 1.2
*/
- public boolean isClosed()
+ public InetAddress getInetAddress()
{
- return !impl.getFileDescriptor().valid();
+ return remoteAddress;
}
/**
- * Gets a datagram channel assoziated with the socket
+ * This method returns the remote port to which this socket is
+ * connected. If this socket is not connected, then this method will
+ * return -1.
*
- * @since 1.4
+ * @return The remote port.
+ *
+ * @since 1.2
*/
- public DatagramChannel getChannel()
+ public int getPort()
{
- return ch;
+ return remotePort;
}
/**
- * Returns the local address of the datagram socket
+ * Returns the local address this datagram socket is bound to.
*
* @since 1.1
*/
@@ -226,7 +268,7 @@ public class DatagramSocket
// s.checkConnect("localhost", -1);
try
{
- return (InetAddress)impl.getOption(SocketOptions.SO_BINDADDR);
+ return (InetAddress)impl.getOption(SocketOptions.SO_BINDADDR);
}
catch (SocketException ex)
{
@@ -234,19 +276,19 @@ public class DatagramSocket
try
{
- return InetAddress.getLocalHost();
+ return InetAddress.getLocalHost();
}
catch (UnknownHostException ex)
{
- // FIXME: This should never happen, so how can we avoid this construct?
- return null;
+ // FIXME: This should never happen, so how can we avoid this construct?
+ return null;
}
}
/**
- * Returns the local port this socket uses
+ * Returns the local port this socket is bound to.
*
- * @return The local port number
+ * @return The local port number.
*/
public int getLocalPort()
{
@@ -257,11 +299,12 @@ public class DatagramSocket
}
/**
- * Gets the SO_TIMEOUT value
+ * Returns the value of the socket's SO_TIMEOUT setting. If this method
+ * returns 0 then SO_TIMEOUT is disabled.
*
- * @return The current timeout in milliseconds
+ * @return The current timeout in milliseconds.
*
- * @exception SocketException If an error occurs
+ * @exception SocketException If an error occurs.
*
* @since 1.1
*/
@@ -271,6 +314,7 @@ public class DatagramSocket
throw new SocketException ("Cannot initialize Socket implementation");
Object timeout = impl.getOption(SocketOptions.SO_TIMEOUT);
+
if (timeout instanceof Integer)
return ((Integer)timeout).intValue();
else
@@ -278,20 +322,186 @@ public class DatagramSocket
}
/**
- * Receive a datagram packet
+ * Sets the value of the socket's SO_TIMEOUT value. A value of 0 will
+ * disable SO_TIMEOUT. Any other value is the number of milliseconds
+ * a socket read/write will block before timing out.
+ *
+ * @param timeout The new SO_TIMEOUT value in milliseconds.
+ *
+ * @exception SocketException If an error occurs.
+ *
+ * @since 1.1
+ */
+ public synchronized void setSoTimeout(int timeout) throws SocketException
+ {
+ if (timeout < 0)
+ throw new IllegalArgumentException("Invalid timeout: " + timeout);
+
+ impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
+ }
+
+ /**
+ * This method returns the value of the system level socket option
+ * SO_SNDBUF, which is used by the operating system to tune buffer
+ * sizes for data transfers.
*
- * @param p The datagram packet to put the incoming data into
+ * @return The send buffer size.
+ *
+ * @exception SocketException If an error occurs.
+ *
+ * @since 1.2
+ */
+ public int getSendBufferSize() throws SocketException
+ {
+ if (impl == null)
+ throw new SocketException ("Cannot initialize Socket implementation");
+
+ Object obj = impl.getOption(SocketOptions.SO_SNDBUF);
+
+ if (obj instanceof Integer)
+ return(((Integer)obj).intValue());
+ else
+ throw new SocketException("Unexpected type");
+ }
+
+ /**
+ * This method sets the value for the system level socket option
+ * SO_SNDBUF to the specified value. Note that valid values for this
+ * option are specific to a given operating system.
+ *
+ * @param size The new send buffer size.
+ *
+ * @exception SocketException If an error occurs.
+ * @exception IllegalArgumentException If size is 0 or negative.
+ *
+ * @since 1.2
+ */
+ public void setSendBufferSize(int size) throws SocketException
+ {
+ if (size < 0)
+ throw new IllegalArgumentException("Buffer size is less than 0");
+
+ impl.setOption(SocketOptions.SO_SNDBUF, new Integer(size));
+ }
+
+ /**
+ * This method returns the value of the system level socket option
+ * SO_RCVBUF, which is used by the operating system to tune buffer
+ * sizes for data transfers.
+ *
+ * @return The receive buffer size.
+ *
+ * @exception SocketException If an error occurs.
+ *
+ * @since 1.2
+ */
+ public int getReceiveBufferSize() throws SocketException
+ {
+ if (impl == null)
+ throw new SocketException ("Cannot initialize Socket implementation");
+
+ Object obj = impl.getOption(SocketOptions.SO_RCVBUF);
+
+ if (obj instanceof Integer)
+ return(((Integer)obj).intValue());
+ else
+ throw new SocketException("Unexpected type");
+ }
+
+ /**
+ * This method sets the value for the system level socket option
+ * SO_RCVBUF to the specified value. Note that valid values for this
+ * option are specific to a given operating system.
+ *
+ * @param size The new receive buffer size.
+ *
+ * @exception SocketException If an error occurs.
+ * @exception IllegalArgumentException If size is 0 or negative.
*
- * @exception IOException If an error occurs
+ * @since 1.2
+ */
+ public void setReceiveBufferSize(int size) throws SocketException
+ {
+ if (impl == null)
+ throw new SocketException ("Cannot initialize Socket implementation");
+
+ if (size < 0)
+ throw new IllegalArgumentException("Buffer size is less than 0");
+
+ impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size));
+ }
+
+ /**
+ * This method connects this socket to the specified address and port.
+ * When a datagram socket is connected, it will only send or receive
+ * packets to and from the host to which it is connected. A multicast
+ * socket that is connected may only send and not receive packets.
+ *
+ * @param address The address to connect this socket to.
+ * @param port The port to connect this socket to.
+ *
+ * @exception SocketException If an error occurs.
+ * @exception IllegalArgumentException If address or port are invalid.
+ * @exception SecurityException If the caller is not allowed to send
+ * datagrams to or receive from this address and port.
+ *
+ * @since 1.2
+ */
+ public void connect(InetAddress address, int port)
+ {
+ if (address == null)
+ throw new IllegalArgumentException ("Connect address may not be null");
+
+ if ((port < 1) || (port > 65535))
+ throw new IllegalArgumentException ("Port number is illegal: " + port);
+
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ sm.checkConnect(address.getHostName(), port);
+
+ try
+ {
+ impl.connect (address, port);
+ remoteAddress = address;
+ remotePort = port;
+ }
+ catch (SocketException e)
+ {
+ }
+ }
+
+ /**
+ * This method disconnects this socket from the address/port it was
+ * connected to. If the socket was not connected in the first place,
+ * this method does nothing.
+ *
+ * @since 1.2
+ */
+ public void disconnect()
+ {
+ impl.disconnect();
+ remoteAddress = null;
+ remotePort = -1;
+ }
+
+ /**
+ * Reads a datagram packet from the socket. Note that this method
+ * will block until a packet is received from the network. On return,
+ * the passed in <code>DatagramPacket</code> is populated with the data
+ * received and all the other information about the packet.
+ *
+ * @param p The datagram packet to put the incoming data into.
+ *
+ * @exception IOException If an error occurs.
* @exception SocketTimeoutException If setSoTimeout was previously called
- * and the timeout has expired
+ * and the timeout has expired.
* @exception PortUnreachableException If the socket is connected to a
* currently unreachable destination. Note, there is no guarantee that the
- * exception will be thrown
+ * exception will be thrown.
* @exception IllegalBlockingModeException If this socket has an associated
- * channel, and the channel is in non-blocking mode
+ * channel, and the channel is in non-blocking mode.
* @exception SecurityException If a security manager exists and its
- * checkAccept ethod doesn't allow the receive
+ * checkAccept ethod doesn't allow the receive.
*/
public synchronized void receive(DatagramPacket p) throws IOException
{
@@ -313,18 +523,19 @@ public class DatagramSocket
}
/**
- * Sends a datagram packet
+ * Sends the specified packet. The host and port to which the packet
+ * are to be sent should be set inside the packet.
*
- * @param p The datagram packet to send
+ * @param p The datagram packet to send.
*
- * @exception IOException If an error occurs
+ * @exception IOException If an error occurs.
* @exception SecurityException If a security manager exists and its
- * checkMulticast or checkConnect method doesn't allow the send
+ * checkMulticast or checkConnect method doesn't allow the send.
* @exception PortUnreachableException If the socket is connected to a
* currently unreachable destination. Note, there is no guarantee that the
- * exception will be thrown
+ * exception will be thrown.
* @exception IllegalBlockingModeException If this socket has an associated
- * channel, and the channel is in non-blocking mode
+ * channel, and the channel is in non-blocking mode.
*/
public void send(DatagramPacket p) throws IOException
{
@@ -357,62 +568,59 @@ public class DatagramSocket
}
/**
- * Sets a new value for SO_TIMEOUT
+ * Binds the socket to the given socket address.
*
- * @param timeout The timeout in milliseconds
+ * @param address The socket address to bind to.
*
- * @exception SocketException If an error occurs
+ * @exception SocketException If an error occurs.
+ * @exception SecurityException If a security manager exists and
+ * its checkListen method doesn't allow the operation.
+ * @exception IllegalArgumentException If address type is not supported.
*
- * @since 1.1
+ * @since 1.4
*/
- public synchronized void setSoTimeout(int timeout) throws SocketException
+ public void bind (SocketAddress address)
+ throws SocketException
{
- if (timeout < 0)
- throw new IllegalArgumentException("Invalid timeout: " + timeout);
+ if (! (address instanceof InetSocketAddress))
+ throw new IllegalArgumentException ();
- impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
+ InetSocketAddress tmp = (InetSocketAddress) address;
+
+ SecurityManager s = System.getSecurityManager ();
+ if (s != null)
+ s.checkListen(tmp.getPort ());
+
+ impl.bind (tmp.getPort (), tmp.getAddress ());
}
/**
- * Connects the datagrem socket to a specified address/port
+ * Checks if the datagram socket is closed.
*
- * @param address The address to connect to
- * @param port The port to connect to
- *
- * @exception SocketException If an error occurs
- * @exception IllegalArgumentException If address is null
- * or the port number is illegal
- * @exception SecurityException If the caller is not allowed to send
- * datagrams to and receive datagrams from the address and port
- *
- * @since 1.2
+ * @since 1.4
*/
- public void connect(InetAddress address, int port)
- throws SocketException
+ public boolean isClosed()
{
- if (address == null)
- throw new IllegalArgumentException ("Address may not be null");
-
- if (port < 1 || port > 65535)
- throw new IllegalArgumentException ("Port number is illegal");
-
- SecurityManager s = System.getSecurityManager();
- if (s != null)
- s.checkAccept(address.getHostName (), port);
-
- impl.connect (address, port);
+ return closed;
+ }
- remoteAddress = address;
- remotePort = port;
+ /**
+ * Returns the datagram channel assoziated with this datagram socket.
+ *
+ * @since 1.4
+ */
+ public DatagramChannel getChannel()
+ {
+ return ch;
}
/**
* Connects the datagram socket to a specified socket address.
*
- * @param address The socket address to connect to
+ * @param address The socket address to connect to.
*
- * @exception SocketException If an error occurs
- * @exception IllegalArgumentException If address type is not supported
+ * @exception SocketException If an error occurs.
+ * @exception IllegalArgumentException If address type is not supported.
*
* @since 1.4
*/
@@ -427,17 +635,7 @@ public class DatagramSocket
}
/**
- * Disconnects the datagram socket
- *
- * @since 1.2
- */
- public void disconnect()
- {
- impl.disconnect();
- }
-
- /**
- * Returns the binding state of the socket
+ * Returns the binding state of the socket.
*
* @since 1.4
*/
@@ -456,7 +654,7 @@ public class DatagramSocket
}
/**
- * Returns the connection state of the socket
+ * Returns the connection state of the socket.
*
* @since 1.4
*/
@@ -466,35 +664,8 @@ public class DatagramSocket
}
/**
- * Returns the InetAddress the socket is connected to
- * or null if the socket is not connected
- *
- * @since 1.2
- */
- public InetAddress getInetAddress()
- {
- if (!isConnected ())
- return null;
-
- return remoteAddress;
- }
-
- /**
- * Returns the port number the socket is connected to or -1 if not connected
- *
- * @since 1.2
- */
- public int getPort()
- {
- if (!isConnected ())
- return -1;
-
- return remotePort;
- }
-
- /**
* Returns the SocketAddress of the host this socket is conneted to
- * or null if this socket is not connected
+ * or null if this socket is not connected.
*
* @since 1.4
*/
@@ -508,7 +679,7 @@ public class DatagramSocket
/**
* Returns the local SocketAddress this socket is bound to
- * or null if it is not bound
+ * or null if it is not bound.
*
* @since 1.4
*/
@@ -529,36 +700,12 @@ public class DatagramSocket
}
/**
- * This method returns the value of the system level socket option
- * SO_RCVBUF, which is used by the operating system to tune buffer
- * sizes for data transfers.
+ * Enables/Disables SO_REUSEADDR.
*
- * @return The receive buffer size.
+ * @param on Whether or not to have SO_REUSEADDR turned on.
*
* @exception SocketException If an error occurs.
*
- * @since 1.2
- */
- public int getReceiveBufferSize() throws SocketException
- {
- if (impl == null)
- throw new SocketException ("Cannot initialize Socket implementation");
-
- Object obj = impl.getOption(SocketOptions.SO_RCVBUF);
-
- if (obj instanceof Integer)
- return(((Integer)obj).intValue());
- else
- throw new SocketException("Unexpected type");
- }
-
- /**
- * Enables/Disables SO_REUSEADDR
- *
- * @param on Whether or not to have SO_REUSEADDR turned on
- *
- * @exception SocketException If an error occurs
- *
* @since 1.4
*/
public void setReuseAddress(boolean on) throws SocketException
@@ -570,9 +717,9 @@ public class DatagramSocket
}
/**
- * Checks if SO_REUSEADDR is enabled
+ * Checks if SO_REUSEADDR is enabled.
*
- * @exception SocketException If an error occurs
+ * @exception SocketException If an error occurs.
*
* @since 1.4
*/
@@ -673,73 +820,6 @@ public class DatagramSocket
}
/**
- * This method returns the value of the system level socket option
- * SO_SNDBUF, which is used by the operating system to tune buffer
- * sizes for data transfers.
- *
- * @return The send buffer size.
- *
- * @exception SocketException If an error occurs.
- *
- * @since 1.2
- */
- public int getSendBufferSize() throws SocketException
- {
- if (impl == null)
- throw new SocketException ("Cannot initialize Socket implementation");
-
- Object obj = impl.getOption(SocketOptions.SO_SNDBUF);
-
- if (obj instanceof Integer)
- return(((Integer)obj).intValue());
- else
- throw new SocketException("Unexpected type");
- }
-
- /**
- * This method sets the value for the system level socket option
- * SO_RCVBUF to the specified value. Note that valid values for this
- * option are specific to a given operating system.
- *
- * @param size The new receive buffer size.
- *
- * @exception SocketException If an error occurs.
- * @exception IllegalArgumentException If size is 0 or negative
- *
- * @since 1.2
- */
- public void setReceiveBufferSize(int size) throws SocketException
- {
- if (impl == null)
- throw new SocketException ("Cannot initialize Socket implementation");
-
- if (size < 0)
- throw new IllegalArgumentException("Buffer size is less than 0");
-
- impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size));
- }
-
- /**
- * This method sets the value for the system level socket option
- * SO_SNDBUF to the specified value. Note that valid values for this
- * option are specific to a given operating system.
- *
- * @param size The new send buffer size.
- *
- * @exception SocketException If an error occurs.
- * @exception IllegalArgumentException If size is 0 or negative
- *
- * @since 1.2
- */
- public void setSendBufferSize(int size) throws SocketException
- {
- if (size < 0)
- throw new IllegalArgumentException("Buffer size is less than 0");
-
- impl.setOption(SocketOptions.SO_SNDBUF, new Integer(size));
- }
-
- /**
* Sets the datagram socket implementation factory for the application
*
* @param fac The factory to set
diff --git a/libjava/java/net/HttpURLConnection.java b/libjava/java/net/HttpURLConnection.java
index e914b190203..ebc0f8175f4 100644
--- a/libjava/java/net/HttpURLConnection.java
+++ b/libjava/java/net/HttpURLConnection.java
@@ -142,6 +142,11 @@ public abstract class HttpURLConnection extends URLConnection
* a conditional GET.
*/
public static final int HTTP_NOT_MODIFIED = 304;
+
+ /**
+ * The requested resource needs to be accessed through a proxy.
+ */
+ public static final int HTTP_USE_PROXY = 305;
/* HTTP Client Error Response Codes */
@@ -250,7 +255,7 @@ public abstract class HttpURLConnection extends URLConnection
* The server does not support the requested functionality.
* @since 1.3
*/
- static final int HTTP_NOT_IMPLEMENTED = 501;
+ public static final int HTTP_NOT_IMPLEMENTED = 501;
/**
* The proxy encountered a bad response from the server it was proxy-ing for
@@ -459,31 +464,36 @@ public abstract class HttpURLConnection extends URLConnection
connect();
gotResponseVals = true;
- // Response is the first header received from the connection.
- String respField = getHeaderField(0);
-
- if (respField == null || ! respField.startsWith("HTTP/"))
- {
- // Set to default values on failure.
- responseCode = -1;
- responseMessage = null;
- return;
- }
- int firstSpc, nextSpc;
- firstSpc = respField.indexOf(' ');
- nextSpc = respField.indexOf(' ', firstSpc + 1);
- responseMessage = respField.substring(nextSpc + 1);
- String codeStr = respField.substring(firstSpc + 1, nextSpc);
- try
+ // If responseCode not yet explicitly set by subclass
+ if (responseCode == -1)
{
- responseCode = Integer.parseInt(codeStr);
- }
- catch (NumberFormatException e)
- {
- // Set to default values on failure.
- responseCode = -1;
- responseMessage = null;
+ // Response is the first header received from the connection.
+ String respField = getHeaderField(0);
+
+ if (respField == null || ! respField.startsWith("HTTP/"))
+ {
+ // Set to default values on failure.
+ responseCode = -1;
+ responseMessage = null;
+ return;
+ }
+
+ int firstSpc, nextSpc;
+ firstSpc = respField.indexOf(' ');
+ nextSpc = respField.indexOf(' ', firstSpc + 1);
+ responseMessage = respField.substring(nextSpc + 1);
+ String codeStr = respField.substring(firstSpc + 1, nextSpc);
+ try
+ {
+ responseCode = Integer.parseInt(codeStr);
+ }
+ catch (NumberFormatException e)
+ {
+ // Set to default values on failure.
+ responseCode = -1;
+ responseMessage = null;
+ }
}
}
diff --git a/libjava/java/net/InetSocketAddress.java b/libjava/java/net/InetSocketAddress.java
index 1b740dcc507..3c54b51a0f0 100644
--- a/libjava/java/net/InetSocketAddress.java
+++ b/libjava/java/net/InetSocketAddress.java
@@ -47,6 +47,11 @@ package java.net;
public class InetSocketAddress extends SocketAddress
{
+ /**
+ * Compatible with JDK 1.4+
+ */
+ private static final long serialVersionUID = 5076001401234631237L;
+
String hostname;
InetAddress addr;
int port;
diff --git a/libjava/java/net/MulticastSocket.java b/libjava/java/net/MulticastSocket.java
index 2700ebee511..dca1a85678b 100644
--- a/libjava/java/net/MulticastSocket.java
+++ b/libjava/java/net/MulticastSocket.java
@@ -1,5 +1,6 @@
/* MulticastSocket.java -- Class for using multicast sockets
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -160,16 +161,18 @@ public class MulticastSocket extends DatagramSocket
return impl.getTimeToLive();
}
- /**
- * Sets the interface to use for sending multicast packets.
- *
- * @param inf The new interface to use
- *
- * @exception SocketException If an error occurs
- */
- public void setInterface(InetAddress inf) throws SocketException
+ /**
+ * Sets the interface to use for sending multicast packets.
+ *
+ * @param addr The new interface to use.
+ *
+ * @exception SocketException If an error occurs.
+ *
+ * @since 1.4
+ */
+ public void setInterface(InetAddress addr) throws SocketException
{
- impl.setOption(SocketOptions.IP_MULTICAST_IF, inf);
+ impl.setOption(SocketOptions.IP_MULTICAST_IF, addr);
}
/**
diff --git a/libjava/java/net/NetPermission.java b/libjava/java/net/NetPermission.java
index f5b625a0d6f..1807d457d6c 100644
--- a/libjava/java/net/NetPermission.java
+++ b/libjava/java/net/NetPermission.java
@@ -48,7 +48,6 @@ import java.security.BasicPermission;
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
public final class NetPermission extends BasicPermission
- implements java.io.Serializable
{
static final long serialVersionUID = -8343910153355041693L;
@@ -65,7 +64,7 @@ public final class NetPermission extends BasicPermission
/**
* Initializes a new instance of <code>NetPermission</code> with the
- * specified name and value. Note that the value field is irrelevant and is
+ * specified name and perms. Note that the perms field is irrelevant and is
* ignored. This constructor should never need to be used.
*
* @param name The name of this permission
diff --git a/libjava/java/net/NetworkInterface.java b/libjava/java/net/NetworkInterface.java
index 60a7d764cbc..193c24f0b4c 100644
--- a/libjava/java/net/NetworkInterface.java
+++ b/libjava/java/net/NetworkInterface.java
@@ -115,12 +115,15 @@ public final class NetworkInterface
}
/**
- * Returns an network interface by name
+ * Returns an network interface by name
*
- * @param name The name of the interface to return
+ * @param name The name of the interface to return
+ *
+ * @return a <code>NetworkInterface</code> object representing the interface,
+ * or null if there is no interface with that name.
*
- * @exception SocketException If an error occurs
- * @exception NullPointerException If the specified name is null
+ * @exception SocketException If an error occurs
+ * @exception NullPointerException If the specified name is null
*/
public static NetworkInterface getByName (String name)
throws SocketException
@@ -137,7 +140,8 @@ public final class NetworkInterface
return tmp;
}
- throw new SocketException ("no network interface with this name exists");
+ // No interface with the given name found.
+ return null;
}
/**
@@ -200,8 +204,9 @@ public final class NetworkInterface
return false;
NetworkInterface tmp = (NetworkInterface) obj;
- return name.equals (tmp.name) &&
- inetAddresses.equals (tmp.inetAddresses);
+
+ return (name.equals (tmp.name)
+ && inetAddresses.equals (tmp.inetAddresses));
}
/**
diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java
index 62917b6a8a5..0285c128c77 100644
--- a/libjava/java/net/ServerSocket.java
+++ b/libjava/java/net/ServerSocket.java
@@ -77,6 +77,8 @@ public class ServerSocket
*/
private ServerSocketChannel ch;
+ private boolean closed = false;
+
/**
* Constructor that simply sets the implementation.
*
@@ -200,6 +202,9 @@ public class ServerSocket
*/
public void bind (SocketAddress endpoint, int backlog) throws IOException
{
+ if (closed)
+ throw new SocketException ("ServerSocket is closed");
+
if (impl == null)
throw new IOException ("Cannot initialize Socket implementation");
@@ -315,7 +320,13 @@ public class ServerSocket
*/
public void close () throws IOException
{
- impl.close();
+ if (impl != null)
+ impl.close ();
+
+ if (ch != null)
+ ch.close ();
+
+ closed = true;
}
/**
@@ -345,7 +356,7 @@ public class ServerSocket
}
catch (SocketException e)
{
- return false;
+ return false;
}
return true;
@@ -358,8 +369,7 @@ public class ServerSocket
*/
public boolean isClosed()
{
- // FIXME: implement this
- return false;
+ return closed;
}
/**
diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java
index 592f39a3dd3..005fd0461b2 100644
--- a/libjava/java/net/Socket.java
+++ b/libjava/java/net/Socket.java
@@ -85,6 +85,8 @@ public class Socket
SocketChannel ch; // this field must have been set if created by SocketChannel
+ private boolean closed = false;
+
// Constructors
/**
@@ -93,6 +95,7 @@ public class Socket
* might want this behavior.
*
* @specnote This constructor is public since JDK 1.4
+ * @since 1.1
*/
public Socket ()
{
@@ -120,6 +123,8 @@ public class Socket
* <code>Socket</code>
*
* @exception SocketException If an error occurs
+ *
+ * @since 1.1
*/
protected Socket (SocketImpl impl) throws SocketException
{
@@ -178,6 +183,8 @@ public class Socket
* exists and does not allow a connection to the specified host/port or
* binding to the specified local host/port.
* @exception IOException If a connection error occurs.
+ *
+ * @since 1.1
*/
public Socket (String host, int port,
InetAddress localAddr, int localPort) throws IOException
@@ -198,6 +205,8 @@ public class Socket
* @exception IOException If an error occurs
* @exception SecurityException If a security manager exists and its
* checkConnect method doesn't allow the operation
+ *
+ * @since 1.1
*/
public Socket (InetAddress address, int port,
InetAddress localAddr, int localPort) throws IOException
@@ -308,6 +317,9 @@ public class Socket
*/
public void bind (SocketAddress bindpoint) throws IOException
{
+ if (closed)
+ throw new SocketException ("Socket is closed");
+
if ( !(bindpoint instanceof InetSocketAddress))
throw new IllegalArgumentException ();
@@ -330,6 +342,9 @@ public class Socket
public void connect (SocketAddress endpoint)
throws IOException
{
+ if (closed)
+ throw new SocketException ("Socket is closed");
+
if (! (endpoint instanceof InetSocketAddress))
throw new IllegalArgumentException ("Address type not supported");
@@ -357,6 +372,9 @@ public class Socket
public void connect (SocketAddress endpoint, int timeout)
throws IOException
{
+ if (closed)
+ throw new SocketException ("Socket is closed");
+
if (! (endpoint instanceof InetSocketAddress))
throw new IllegalArgumentException ("Address type not supported");
@@ -385,6 +403,8 @@ public class Socket
* is not connected, then <code>null</code> is returned.
*
* @return The local address
+ *
+ * @since 1.1
*/
public InetAddress getLocalAddress ()
{
@@ -510,6 +530,8 @@ public class Socket
* @param on true to enable, false to disable
*
* @exception SocketException If an error occurs or Socket is not connected
+ *
+ * @since 1.1
*/
public void setTcpNoDelay (boolean on) throws SocketException
{
@@ -528,6 +550,8 @@ public class Socket
* @return Whether or not TCP_NODELAY is set
*
* @exception SocketException If an error occurs or Socket not connected
+ *
+ * @since 1.1
*/
public boolean getTcpNoDelay() throws SocketException
{
@@ -556,6 +580,8 @@ public class Socket
*
* @exception SocketException If an error occurs or Socket not connected
* @exception IllegalArgumentException If linger is negative
+ *
+ * @since 1.1
*/
public void setSoLinger(boolean on, int linger) throws SocketException
{
@@ -591,6 +617,8 @@ public class Socket
* if SO_LINGER not set
*
* @exception SocketException If an error occurs or Socket is not connected
+ *
+ * @since 1.1
*/
public int getSoLinger() throws SocketException
{
@@ -670,6 +698,8 @@ public class Socket
* 0 if not set
*
* @exception SocketException If an error occurs or Socket not connected
+ *
+ * @since 1.1
*/
public synchronized void setSoTimeout (int timeout) throws SocketException
{
@@ -696,6 +726,8 @@ public class Socket
* if not set
*
* @exception SocketException If an error occurs or Socket not connected
+ *
+ * @since 1.1
*/
public synchronized int getSoTimeout () throws SocketException
{
@@ -811,7 +843,7 @@ public class Socket
*
* @exception SocketException If an error occurs or Socket is not connected
*
- * @since Java 1.3
+ * @since 1.3
*/
public void setKeepAlive (boolean on) throws SocketException
{
@@ -829,7 +861,7 @@ public class Socket
*
* @exception SocketException If an error occurs or Socket is not connected
*
- * @since Java 1.3
+ * @since 1.3
*/
public boolean getKeepAlive () throws SocketException
{
@@ -853,6 +885,11 @@ public class Socket
{
if (impl != null)
impl.close();
+
+ if (ch != null)
+ ch.close();
+
+ closed = true;
}
/**
@@ -902,6 +939,8 @@ public class Socket
* Closes the input side of the socket stream.
*
* @exception IOException If an error occurs.
+ *
+ * @since 1.3
*/
public void shutdownInput() throws IOException
{
@@ -915,6 +954,8 @@ public class Socket
* Closes the output side of the socket stream.
*
* @exception IOException If an error occurs.
+ *
+ * @since 1.3
*/
public void shutdownOutput() throws IOException
{
@@ -928,6 +969,8 @@ public class Socket
* Returns the socket channel associated with this socket.
*
* It returns null if no associated socket exists.
+ *
+ * @since 1.4
*/
public SocketChannel getChannel()
{
@@ -1016,6 +1059,8 @@ public class Socket
/**
* Checks if the socket is connected
+ *
+ * @since 1.4
*/
public boolean isConnected ()
{
@@ -1024,6 +1069,8 @@ public class Socket
/**
* Checks if the socket is already bound.
+ *
+ * @since 1.4
*/
public boolean isBound ()
{
@@ -1032,15 +1079,18 @@ public class Socket
/**
* Checks if the socket is closed.
+ *
+ * @since 1.4
*/
public boolean isClosed ()
{
- // FIXME: implement this.
- return false;
+ return closed;
}
/**
* Checks if the socket's input stream is shutdown
+ *
+ * @since 1.4
*/
public boolean isInputShutdown ()
{
@@ -1049,6 +1099,8 @@ public class Socket
/**
* Checks if the socket's output stream is shutdown
+ *
+ * @since 1.4
*/
public boolean isOutputShutdown ()
{
diff --git a/libjava/java/net/SocketAddress.java b/libjava/java/net/SocketAddress.java
index 370049d6fdc..f3e67d84cc0 100644
--- a/libjava/java/net/SocketAddress.java
+++ b/libjava/java/net/SocketAddress.java
@@ -48,6 +48,9 @@ import java.io.Serializable;
*/
public abstract class SocketAddress implements Serializable
{
+ /**
+ * Compatible with JDK 1.4+
+ */
static final long serialVersionUID = 5215720748342549866L;
/**
diff --git a/libjava/java/net/SocketImpl.java b/libjava/java/net/SocketImpl.java
index 795e7139bee..12dcb0b9a5c 100644
--- a/libjava/java/net/SocketImpl.java
+++ b/libjava/java/net/SocketImpl.java
@@ -74,7 +74,7 @@ public abstract class SocketImpl implements SocketOptions
/**
* The port number the socket is bound to locally
*/
- protected int localport;
+ protected int localport = -1;
/**
* The port number of the remote end of the socket connection
@@ -271,8 +271,9 @@ public abstract class SocketImpl implements SocketOptions
*/
public String toString()
{
- return "[addr=" + address.toString() + ",port=" + Integer.toString(port)
- + ",localport=" + Integer.toString(localport) + "]";
+ return "[addr=" + address
+ + ",port=" + port
+ + ",localport=" + localport + "]";
}
/**
diff --git a/libjava/java/net/SocketPermission.java b/libjava/java/net/SocketPermission.java
index 18fb7ef2f1f..6fa65f8793a 100644
--- a/libjava/java/net/SocketPermission.java
+++ b/libjava/java/net/SocketPermission.java
@@ -276,62 +276,62 @@ public final class SocketPermission extends Permission
// Get ours
if (hostport.indexOf(":") == -1)
{
- ourfirstport = 0;
- ourlastport = 65535;
+ ourfirstport = 0;
+ ourlastport = 65535;
}
else
{
- // FIXME: Needs bulletproofing.
- // This will dump if hostport if all sorts of bad data was passed to
- // the constructor
- String range = hostport.substring(hostport.indexOf(":") + 1);
- if (range.startsWith("-"))
- ourfirstport = 0;
- else if (range.indexOf("-") == -1)
- ourfirstport = Integer.parseInt(range);
- else
- ourfirstport =
- Integer.parseInt(range.substring(0, range.indexOf("-")));
-
- if (range.endsWith("-"))
- ourlastport = 65535;
- else if (range.indexOf("-") == -1)
- ourlastport = Integer.parseInt(range);
- else
- ourlastport =
- Integer.parseInt(range.
- substring(range.indexOf("-") + 1,
- range.length()));
+ // FIXME: Needs bulletproofing.
+ // This will dump if hostport if all sorts of bad data was passed to
+ // the constructor
+ String range = hostport.substring(hostport.indexOf(":") + 1);
+ if (range.startsWith("-"))
+ ourfirstport = 0;
+ else if (range.indexOf("-") == -1)
+ ourfirstport = Integer.parseInt(range);
+ else
+ ourfirstport =
+ Integer.parseInt(range.substring(0, range.indexOf("-")));
+
+ if (range.endsWith("-"))
+ ourlastport = 65535;
+ else if (range.indexOf("-") == -1)
+ ourlastport = Integer.parseInt(range);
+ else
+ ourlastport =
+ Integer.parseInt(range.
+ substring(range.indexOf("-") + 1,
+ range.length()));
}
// Get theirs
if (p.hostport.indexOf(":") == -1)
{
- theirfirstport = 0;
- ourlastport = 65535;
+ theirfirstport = 0;
+ ourlastport = 65535;
}
else
{
- // This will dump if hostport if all sorts of bad data was passed to
- // the constructor
- String range = p.hostport.substring(hostport.indexOf(":") + 1);
- if (range.startsWith("-"))
- theirfirstport = 0;
- else if (range.indexOf("-") == -1)
- theirfirstport = Integer.parseInt(range);
- else
- theirfirstport =
- Integer.parseInt(range.substring(0, range.indexOf("-")));
-
- if (range.endsWith("-"))
- theirlastport = 65535;
- else if (range.indexOf("-") == -1)
- theirlastport = Integer.parseInt(range);
- else
- theirlastport =
- Integer.parseInt(range.
- substring(range.indexOf("-") + 1,
- range.length()));
+ // This will dump if hostport if all sorts of bad data was passed to
+ // the constructor
+ String range = p.hostport.substring(hostport.indexOf(":") + 1);
+ if (range.startsWith("-"))
+ theirfirstport = 0;
+ else if (range.indexOf("-") == -1)
+ theirfirstport = Integer.parseInt(range);
+ else
+ theirfirstport =
+ Integer.parseInt(range.substring(0, range.indexOf("-")));
+
+ if (range.endsWith("-"))
+ theirlastport = 65535;
+ else if (range.indexOf("-") == -1)
+ theirlastport = Integer.parseInt(range);
+ else
+ theirlastport =
+ Integer.parseInt(range.
+ substring(range.indexOf("-") + 1,
+ range.length()));
}
// Now check them
@@ -361,17 +361,17 @@ public final class SocketPermission extends Permission
String ourcanonical = null, theircanonical = null;
try
{
- ourcanonical = InetAddress.getByName(ourhost).getHostName();
- theircanonical = InetAddress.getByName(theirhost).getHostName();
+ ourcanonical = InetAddress.getByName(ourhost).getHostName();
+ theircanonical = InetAddress.getByName(theirhost).getHostName();
}
catch (UnknownHostException e)
{
- // Who didn't resolve? Just assume current address is canonical enough
- // Is this ok to do?
- if (ourcanonical == null)
- ourcanonical = ourhost;
- if (theircanonical == null)
- theircanonical = theirhost;
+ // Who didn't resolve? Just assume current address is canonical enough
+ // Is this ok to do?
+ if (ourcanonical == null)
+ ourcanonical = ourhost;
+ if (theircanonical == null)
+ theircanonical = theirhost;
}
if (ourcanonical.equals(theircanonical))
@@ -380,9 +380,9 @@ public final class SocketPermission extends Permission
// Well, last chance. Try for a wildcard
if (ourhost.indexOf("*.") != -1)
{
- String wild_domain = ourhost.substring(ourhost.indexOf("*" + 1));
- if (theircanonical.endsWith(wild_domain))
- return (true);
+ String wild_domain = ourhost.substring(ourhost.indexOf("*" + 1));
+ if (theircanonical.endsWith(wild_domain))
+ return (true);
}
// Didn't make it
diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java
index c6dc4b1d44d..d7fc77f8ab4 100644
--- a/libjava/java/net/URLClassLoader.java
+++ b/libjava/java/net/URLClassLoader.java
@@ -238,7 +238,7 @@ public class URLClassLoader extends SecureClassLoader
CodeSource getCodeSource()
{
Certificate[] certs = getCertificates();
- if (certs != null)
+ if (certs == null)
return loader.noCertCodeSource;
else
return new CodeSource(loader.baseURL, certs);
@@ -271,34 +271,18 @@ public class URLClassLoader extends SecureClassLoader
abstract InputStream getInputStream() throws IOException;
}
- static URL getCanonicalFileURL(URL url)
- {
- if ("file".equals(url.getProtocol()))
- {
- try
- {
- File f = new File(url.getFile()).getCanonicalFile();
- url = new URL("file", "", f.toString());
- }
- catch (IOException ignore)
- {
- }
- }
- return url;
- }
-
/**
* A <code>JarURLLoader</code> is a type of <code>URLLoader</code>
* only loading from jar url.
*/
final static class JarURLLoader extends URLLoader
{
- final JarFile jarfile; // The canonical jar file for this url
+ final JarFile jarfile; // The jar file for this url
final URL baseJarURL; // Base jar: url for all resources loaded from jar
public JarURLLoader(URLClassLoader classloader, URL baseURL)
{
- super(classloader, getCanonicalFileURL(baseURL));
+ super(classloader, baseURL);
// cache url prefix for all resources in this jar url
String external = baseURL.toExternalForm();
@@ -481,11 +465,11 @@ public class URLClassLoader extends SecureClassLoader
*/
final static class FileURLLoader extends URLLoader
{
- File dir; //the canonical file for this file url
+ File dir; //the file for this file url
FileURLLoader(URLClassLoader classloader, URL url)
{
- super(classloader, getCanonicalFileURL(url));
+ super(classloader, url);
dir = new File(baseURL.getFile());
}
@@ -493,13 +477,6 @@ public class URLClassLoader extends SecureClassLoader
Resource getResource(String name)
{
File file = new File(dir, name);
- try
- {
- file = file.getCanonicalFile();
- }
- catch (IOException ignore)
- {
- }
if (file.exists() && !file.isDirectory())
return new FileResource(this, name, file);
return null;
diff --git a/libjava/java/net/URLDecoder.java b/libjava/java/net/URLDecoder.java
index 36747409983..0a9067160b2 100644
--- a/libjava/java/net/URLDecoder.java
+++ b/libjava/java/net/URLDecoder.java
@@ -82,12 +82,12 @@ public class URLDecoder
{
try
{
- return decode(s, "UTF-8");
+ return decode(s, "UTF-8");
}
catch (UnsupportedEncodingException uee)
{
- // Should never happen since UTF-8 encoding should always be supported
- return s;
+ // Should never happen since UTF-8 encoding should always be supported
+ return s;
}
}
diff --git a/libjava/java/net/URLStreamHandler.java b/libjava/java/net/URLStreamHandler.java
index 128a0d2d3da..d3dd3ccf0f7 100644
--- a/libjava/java/net/URLStreamHandler.java
+++ b/libjava/java/net/URLStreamHandler.java
@@ -1,5 +1,5 @@
/* URLStreamHandler.java -- Abstract superclass for all protocol handlers
- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.net;
import java.io.IOException;
+import java.io.File;
/*
* Written using on-line Java Platform 1.2 API Specification, as well
@@ -112,7 +113,7 @@ public abstract class URLStreamHandler
* subclasses that implement protocols with URL's the follow a different
* syntax should override this method. The lone exception is that if
* the protocol name set in the URL is "file", this method will accept
- * a an empty hostname (i.e., "file:///"), which is legal for that protocol
+ * an empty hostname (i.e., "file:///"), which is legal for that protocol
*
* @param url The URL object in which to store the results
* @param spec The String-ized URL to parse
@@ -176,8 +177,32 @@ public abstract class URLStreamHandler
else if (start < end)
{
// Context is available, but only override it if there is a new file.
- file = file.substring(0, file.lastIndexOf('/'))
- + '/' + spec.substring(start, end);
+ char sepChar = '/';
+ int lastSlash = file.lastIndexOf (sepChar);
+ if (lastSlash < 0 && File.separatorChar != sepChar
+ && url.getProtocol ().equals ("file"))
+ {
+ // On Windows, even '\' is allowed in a "file" URL.
+ sepChar = File.separatorChar;
+ lastSlash = file.lastIndexOf (sepChar);
+ }
+
+ file = file.substring(0, lastSlash)
+ + sepChar + spec.substring (start, end);
+
+ if (url.getProtocol ().equals ("file"))
+ {
+ // For "file" URLs constructed relative to a context, we
+ // need to canonicalise the file path.
+ try
+ {
+ file = new File (file).getCanonicalPath ();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
ref = null;
}
@@ -436,7 +461,7 @@ public abstract class URLStreamHandler
// ignores a non-default port if host is null or "". That is inconsistent
// with the spec since the result of this method is spec'ed so it can be
// used to construct a new URL that is equivalent to the original.
- boolean port_needed = port >= 0 && port != getDefaultPort();
+ boolean port_needed = port > 0 && port != getDefaultPort();
if (port_needed)
sb.append(':').append(port);
diff --git a/libjava/java/nio/Buffer.java b/libjava/java/nio/Buffer.java
index 9474fb453f0..7d291bedbc1 100644
--- a/libjava/java/nio/Buffer.java
+++ b/libjava/java/nio/Buffer.java
@@ -39,11 +39,33 @@ package java.nio;
public abstract class Buffer
{
- int cap = 0;
- int limit = 0;
- int pos = 0;
- int mark = -1;
-
+ private int cap = 0;
+ private int limit = 0;
+ private int pos = 0;
+ private int mark = -1;
+
+ // Creates a new Buffer.
+ //
+ // Should be package private.
+ //
+ Buffer (int capacity, int limit, int position, int mark)
+ {
+ if (capacity < 0)
+ throw new IllegalArgumentException ();
+
+ cap = capacity;
+ limit (limit);
+ position (position);
+
+ if (mark > 0)
+ {
+ if (mark > pos)
+ throw new IllegalArgumentException ();
+
+ this.mark = mark;
+ }
+ }
+
/**
* Retrieves the capacity of the buffer.
*/
diff --git a/libjava/java/nio/ByteBuffer.java b/libjava/java/nio/ByteBuffer.java
index 874943a8757..8b7c6013019 100644
--- a/libjava/java/nio/ByteBuffer.java
+++ b/libjava/java/nio/ByteBuffer.java
@@ -37,43 +37,574 @@ exception statement from your version. */
package java.nio;
-public abstract class ByteBuffer extends Buffer
+import gnu.java.nio.ByteBufferImpl;
+
+/**
+ * @since 1.4
+ */
+public abstract class ByteBuffer extends Buffer implements Comparable
{
+ private ByteOrder endian = ByteOrder.BIG_ENDIAN;
+
+ int offset;
+ byte[] backing_buffer;
+
+ /**
+ * Allocates a new direct byte buffer.
+ */
+ public static ByteBuffer allocateDirect (int capacity)
+ {
+ throw new Error ("direct buffers are not implemented");
+ }
+
+ /**
+ * Allocates a new byte buffer.
+ */
public static ByteBuffer allocate (int capacity)
{
- return null;
+ return new ByteBufferImpl (capacity, 0, capacity);
}
+ /**
+ * Wraps a byte array into a buffer.
+ *
+ * @exception IndexOutOfBoundsException If the preconditions on the offset
+ * and length parameters do not hold
+ */
final public static ByteBuffer wrap (byte[] array, int offset, int length)
{
- return null;
+ return new ByteBufferImpl (array, offset, length);
}
+ /**
+ * Wraps a byte array into a buffer.
+ */
final public static ByteBuffer wrap (byte[] array)
{
return wrap (array, 0, array.length);
}
-
- final public ByteBuffer put (ByteBuffer src)
+
+ ByteBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ }
+
+ /**
+ * This method transfers bytes from this buffer into
+ * the given destination array.
+ *
+ * @param dst The destination array
+ * @param offset The offset within the array of the first byte to be written;
+ * must be non-negative and no larger than dst.length.
+ * @param length The maximum number of bytes to be written to the given array;
+ * must be non-negative and no larger than dst.length - offset.
+ *
+ * @exception BufferUnderflowException If there are fewer than length bytes
+ * remaining in this buffer.
+ * @exception IndexOutOfBoundsException - If the preconditions on the offset
+ * and length parameters do not hold.
+ */
+ public ByteBuffer get (byte[] dst, int offset, int length)
+ {
+ if ((offset < 0)
+ || (offset > dst.length)
+ || (length < 0)
+ || (length > (dst.length - offset)))
+ throw new IndexOutOfBoundsException ();
+
+ for (int i = offset; i < offset + length; i++)
+ {
+ dst [i] = get();
+ }
+
+ return this;
+ }
+
+ /**
+ * This method transfers bytes from this buffer into the given
+ * destination array.
+ *
+ * @param dst The byte array to write into.
+ *
+ * @exception BufferUnderflowException If there are fewer than dst.length
+ * bytes remaining in this buffer.
+ */
+ public ByteBuffer get (byte[] dst)
{
+ return get (dst, 0, dst.length);
+ }
+
+ /**
+ * Writes the content of src into the buffer.
+ *
+ * @param src The source data.
+ *
+ * @exception BufferOverflowException If there is insufficient space in this
+ * buffer for the remaining bytes in the source buffer.
+ * @exception IllegalArgumentException If the source buffer is this buffer.
+ * @exception ReadOnlyBufferException If this buffer is read only.
+ */
+ public ByteBuffer put (ByteBuffer src)
+ {
+ if (src == this)
+ throw new IllegalArgumentException ();
+
while (src.hasRemaining ())
put (src.get ());
return this;
}
-
- final public ByteBuffer put (byte[] src, int offset, int length)
+
+ /**
+ * Writes the content of the the array src into the buffer.
+ *
+ * @param src The array to copy into the buffer.
+ * @param offset The offset within the array of the first byte to be read;
+ * must be non-negative and no larger than src.length.
+ * @param length The number of bytes to be read from the given array;
+ * must be non-negative and no larger than src.length - offset.
+ *
+ * @exception BufferOverflowException If there is insufficient space in this
+ * buffer for the remaining bytes in the source buffer.
+ * @exception IndexOutOfBoundsException If the preconditions on the offset
+ * and length parameters do not hold.
+ * @exception ReadOnlyBufferException If this buffer is read only.
+ */
+ public ByteBuffer put (byte[] src, int offset, int length)
{
+ if ((offset < 0) ||
+ (offset > src.length) ||
+ (length < 0) ||
+ (length > src.length - offset))
+ throw new IndexOutOfBoundsException ();
+
for (int i = offset; i < offset + length; i++)
put (src [i]);
+
return this;
}
+
+ /**
+ * Writes the content of the the array src into the buffer.
+ *
+ * @param src The array to copy into the buffer.
+ *
+ * @exception BufferOverflowException If there is insufficient space in this
+ * buffer for the remaining bytes in the source buffer.
+ * @exception ReadOnlyBufferException If this buffer is read only.
+ */
public final ByteBuffer put (byte[] src)
{
return put (src, 0, src.length);
}
+ /**
+ * Tells whether or not this buffer is backed by an accessible byte array.
+ */
+ public final boolean hasArray ()
+ {
+ return (backing_buffer != null
+ && !isReadOnly ());
+ }
+
+ /**
+ * Returns the byte array that backs this buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is backed by an array
+ * but is read-only.
+ * @exception UnsupportedOperationException If this buffer is not backed
+ * by an accessible array.
+ */
+ public final byte[] array ()
+ {
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return backing_buffer;
+ }
+
+ /**
+ * Returns the offset within this buffer's backing array of the first element
+ * of the buffer
+ *
+ * @exception ReadOnlyBufferException If this buffer is backed by an array
+ * but is read-only.
+ * @exception UnsupportedOperationException If this buffer is not backed
+ * by an accessible array.
+ */
+ public final int arrayOffset ()
+ {
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return offset;
+ }
+
+ /**
+ * Tells whether or not this buffer is equal to another object.
+ */
+ public boolean equals (Object obj)
+ {
+ if (obj != null &&
+ obj instanceof ByteBuffer)
+ {
+ return compareTo (obj) == 0;
+ }
+
+ return false;
+ }
+
+ /**
+ * Compares this buffer to another object.
+ *
+ * @exception ClassCastException If the argument is not a byte buffer
+ */
+ public int compareTo (Object obj)
+ {
+ ByteBuffer a = (ByteBuffer) obj;
+
+ if (a.remaining() != remaining())
+ {
+ return 1;
+ }
+
+ if (! hasArray() ||
+ ! a.hasArray())
+ {
+ return 1;
+ }
+
+ int r = remaining();
+ int i1 = position ();
+ int i2 = a.position ();
+
+ for (int i = 0; i < r; i++)
+ {
+ int t = (int) (get (i1) - a.get (i2));
+
+ if (t != 0)
+ {
+ return (int) t;
+ }
+ }
+
+ return 0;
+ }
+
+ /**
+ * Retrieves this buffer's byte order.
+ */
+ public final ByteOrder order()
+ {
+ return endian;
+ }
+
+ /**
+ * Modifies this buffer's byte order.
+ */
+ public final ByteBuffer order (ByteOrder endian)
+ {
+ this.endian = endian;
+ return this;
+ }
+
+ /**
+ * Reads the byte at this buffer's current position,
+ * and then increments the position.
+ *
+ * @exception BufferUnderflowException If the buffer's current position
+ * is not smaller than its limit.
+ */
public abstract byte get ();
+ /**
+ * Relative put method.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
public abstract ByteBuffer put (byte b);
+
+ /**
+ * Absolute get method.
+ *
+ * @exception IndexOutOfBoundsException FIXME
+ */
+ public abstract byte get (int index);
+
+ /**
+ * Absolute put method.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only
+ * @exception IndexOutOfBoundsException FIXME
+ */
+ public abstract ByteBuffer put (int index, byte b);
+
+ /**
+ * Compacts this buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only
+ */
+ public abstract ByteBuffer compact();
+
+ /**
+ * Tells whether or not this buffer is direct.
+ */
+ public abstract boolean isDirect();
+
+ /**
+ * Creates a new byte buffer whose content is a shared subsequence of this
+ * buffer's content.
+ */
+ public abstract ByteBuffer slice();
+
+ /**
+ * Creates a new byte buffer that shares this buffer's content.
+ */
+ public abstract ByteBuffer duplicate();
+
+ /**
+ * Creates a new, read-only byte buffer that shares this buffer's content.
+ */
+ public abstract ByteBuffer asReadOnlyBuffer();
+
+ /**
+ * Creates a view of this byte buffer as a short buffer.
+ */
+ public abstract ShortBuffer asShortBuffer();
+
+ /**
+ * Creates a view of this byte buffer as a char buffer.
+ */
+ public abstract CharBuffer asCharBuffer();
+
+ /**
+ * Creates a view of this byte buffer as an integer buffer.
+ */
+ public abstract IntBuffer asIntBuffer();
+
+ /**
+ * Creates a view of this byte buffer as a long buffer.
+ */
+ public abstract LongBuffer asLongBuffer();
+
+ /**
+ * Creates a view of this byte buffer as a float buffer.
+ */
+ public abstract FloatBuffer asFloatBuffer();
+
+ /**
+ * Creates a view of this byte buffer as a double buffer.
+ */
+ public abstract DoubleBuffer asDoubleBuffer();
+
+ /**
+ * Relative get method for reading a character value.
+ *
+ * @exception BufferUnderflowException If there are fewer than two bytes
+ * remaining in this buffer.
+ */
+ public abstract char getChar();
+
+ /**
+ * Relative put method for writing a character value.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ */
+ public abstract ByteBuffer putChar(char value);
+
+ /**
+ * Absolute get method for reading a character value.
+ *
+ * @exception IndexOutOfBoundsException If there are fewer than two bytes
+ * remaining in this buffer
+ */
+ public abstract char getChar(int index);
+
+ /**
+ * Absolute put method for writing a character value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus one.
+ */
+ public abstract ByteBuffer putChar(int index, char value);
+
+ /**
+ * Relative get method for reading a short value.
+ *
+ * @exception BufferUnderflowException If index is negative or not smaller
+ * than the buffer's limit, minus one.
+ */
+ public abstract short getShort();
+
+ /**
+ * Relative put method for writing a short value.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ */
+ public abstract ByteBuffer putShort(short value);
+
+ /**
+ * Absolute get method for reading a short value.
+ *
+ * @exception IndexOutOfBoundsException If there are fewer than two bytes
+ * remaining in this buffer
+ */
+ public abstract short getShort(int index);
+
+ /**
+ * Absolute put method for writing a short value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus one.
+ */
+ public abstract ByteBuffer putShort(int index, short value);
+
+ /**
+ * Relative get method for reading an integer value.
+ *
+ * @exception BufferUnderflowException If there are fewer than four bytes
+ * remaining in this buffer.
+ */
+ public abstract int getInt();
+
+ /**
+ * Relative put method for writing an integer value.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ */
+ public abstract ByteBuffer putInt(int value);
+
+ /**
+ * Absolute get method for reading an integer value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus three.
+ */
+ public abstract int getInt(int index);
+
+ /**
+ * Absolute put method for writing an integer value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus three.
+ */
+ public abstract ByteBuffer putInt(int index, int value);
+
+ /**
+ * Relative get method for reading a long value.
+ *
+ * @exception BufferUnderflowException If there are fewer than eight bytes
+ * remaining in this buffer.
+ */
+ public abstract long getLong();
+
+ /**
+ * Relative put method for writing a long value.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ */
+ public abstract ByteBuffer putLong(long value);
+
+ /**
+ * Absolute get method for reading a long value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus seven.
+ */
+ public abstract long getLong(int index);
+
+ /**
+ * Absolute put method for writing a float value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus seven.
+ */
+ public abstract ByteBuffer putLong(int index, long value);
+
+ /**
+ * Relative get method for reading a float value.
+ *
+ * @exception BufferUnderflowException If there are fewer than four bytes
+ * remaining in this buffer.
+ */
+ public abstract float getFloat();
+
+ /**
+ * Relative put method for writing a float value.
+ *
+ * @exception BufferOverflowException If there are fewer than four bytes
+ * remaining in this buffer.
+ */
+ public abstract ByteBuffer putFloat(float value);
+
+ /**
+ * Absolute get method for reading a float value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus three.
+ */
+ public abstract float getFloat(int index);
+
+ /**
+ * Relative put method for writing a float value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus three.
+ */
+ public abstract ByteBuffer putFloat(int index, float value);
+
+ /**
+ * Relative get method for reading a double value.
+ *
+ * @exception BufferUnderflowException If there are fewer than eight bytes
+ * remaining in this buffer.
+ */
+ public abstract double getDouble();
+
+ /**
+ * Relative put method for writing a double value.
+ *
+ * @exception BufferOverflowException If this buffer's current position is
+ * not smaller than its limit.
+ */
+ public abstract ByteBuffer putDouble(double value);
+
+ /**
+ * Absolute get method for reading a double value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus seven.
+ */
+ public abstract double getDouble(int index);
+
+ /**
+ * Absolute put method for writing a double value.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit, minus seven.
+ */
+ public abstract ByteBuffer putDouble(int index, double value);
+
+ /**
+ * Returns a string summarizing the state of this buffer.
+ */
+ public String toString ()
+ {
+ return getClass ().getName () +
+ "[pos=" + position () +
+ " lim=" + limit () +
+ " cap=" + capacity () + "]";
+ }
}
diff --git a/libjava/java/nio/CharBuffer.java b/libjava/java/nio/CharBuffer.java
index 2a21ef93ff5..e2996023047 100644
--- a/libjava/java/nio/CharBuffer.java
+++ b/libjava/java/nio/CharBuffer.java
@@ -37,144 +37,226 @@ exception statement from your version. */
package java.nio;
+import gnu.java.nio.CharBufferImpl;
+
+/**
+ * @since 1.4
+ */
public abstract class CharBuffer extends Buffer
+ implements Comparable, CharSequence
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
-
protected char [] backing_buffer;
+ /**
+ * Allocates a new <code>CharBuffer</code> object with a given capacity.
+ */
public static CharBuffer allocate (int capacity)
{
- return null;
+ return new CharBufferImpl (capacity, 0, capacity);
}
/**
+ * Wraps a character array into a <code>CharBuffer</code> object.
+ *
* @exception IndexOutOfBoundsException If the preconditions on the offset
* and length parameters do not hold
*/
final public static CharBuffer wrap (char[] array, int offset, int length)
{
- if ((offset < 0) ||
- (offset > array.length) ||
- (length < 0) ||
- (length > (array.length - offset)))
- throw new IndexOutOfBoundsException ();
-
- return null;
+ return new CharBufferImpl (array, offset, length);
}
+ /**
+ * Wraps a character sequence into a <code>CharBuffer</code> object.
+ */
final public static CharBuffer wrap (CharSequence a)
{
return wrap (a, 0, a.length ());
}
/**
+ * Wraps a character sequence into a <code>CharBuffer</code> object.
+ *
* @exception IndexOutOfBoundsException If the preconditions on the offset
* and length parameters do not hold
*/
final public static CharBuffer wrap (CharSequence a, int offset, int length)
{
- char [] buffer = new char [length];
+ if ((offset < 0)
+ || (offset > a.length ())
+ || (length < 0)
+ || (length > (a.length () - offset)))
+ throw new IndexOutOfBoundsException ();
+
+ char [] buffer = new char [a.length ()];
for (int i = offset; i < length; i++)
{
buffer [i] = a.charAt (i);
}
- return wrap (buffer, 0, length);
+ return wrap (buffer, offset, length);
}
+ /**
+ * Wraps a character array into a <code>CharBuffer</code> object.
+ */
final public static CharBuffer wrap (char[] array)
{
- return wrap (array, 0, array.length);
+ return wrap (array, 0, array.length);
+ }
+
+ CharBuffer (int cap, int lim, int pos, int mark)
+ {
+ super (cap, lim, pos, mark);
}
/**
- * @exception BufferUnderflowException FIXME
+ * Relative get method.
+ *
+ * @exception BufferUnderflowException If the buffer's current position is
+ * not smaller than its limit.
* @exception IndexOutOfBoundsException If the preconditions on the offset
* and length parameters do not hold
*/
- final public CharBuffer get (char[] dst, int offset, int length)
+ public CharBuffer get (char[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
dst [i] = get ();
}
+
return this;
}
/**
- * @exception BufferUnderflowException FIXME
+ * Relative get method.
+ *
+ * @exception BufferUnderflowException If there are fewer than length
+ * characters remaining in this buffer.
*/
- final public CharBuffer get (char[] dst)
+ public CharBuffer get (char[] dst)
{
return get (dst, 0, dst.length);
}
/**
- * @exception BufferOverflowException FIXME
- * @exception IllegalArgumentException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * @exception BufferOverflowException If there are fewer than length of
+ * source buffer characters remaining in this buffer.
+ * @exception IllegalArgumentException If the source buffer is this buffer.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
- final public CharBuffer put (CharBuffer src)
+ public CharBuffer put (CharBuffer src)
{
- while (src.hasRemaining ())
- put (src.get ());
+ if (src == this)
+ throw new IllegalArgumentException ();
+
+ if (src.length () > 0)
+ {
+ char [] toPut = new char [src.length ()];
+ src.get (toPut);
+ src.put (toPut);
+ }
return this;
}
/**
- * @exception BufferOverflowException FIXME
+ * @exception BufferOverflowException If there are fewer then length
+ * characters remaining in this buffer.
* @exception IndexOutOfBoundsException If the preconditions on the offset
* and length parameters do not hold
- * @exception ReadOnlyBufferException FIXME
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
- final public CharBuffer put (char[] src, int offset, int length)
+ public CharBuffer put (char[] src, int offset, int length)
{
+ if (offset < 0
+ || offset >= src.length
+ || length < 0
+ || length >= (src.length - offset))
+ throw new IndexOutOfBoundsException ();
+
+ // Put nothing into this buffer when not enough space left.
+ if (length > remaining ())
+ throw new BufferOverflowException ();
+
for (int i = offset; i < offset + length; i++)
- put (src [i]);
+ {
+ put (src [i]);
+ }
return this;
}
/**
- * @exception BufferOverflowException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * Relative put method.
+ *
+ * @exception BufferOverflowException If there are fewer then length of the
+ * array characters remaining in this buffer.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public final CharBuffer put (char[] src)
{
return put (src, 0, src.length);
}
+ /**
+ * Tells wether this is buffer is backed by an array or not.
+ */
public final boolean hasArray ()
{
- return backing_buffer != null;
+ return (backing_buffer != null
+ && ! isReadOnly ());
}
/**
- * @exception ReadOnlyBufferException FIXME
- * @exception UnsupportedOperationException FIXME
+ * Returns the array that backs this buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ * @exception UnsupportedOperationException If this buffer is not backed
+ * by an accessible array.
*/
public final char[] array ()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
/**
- * @exception ReadOnlyBufferException FIXME
- * @exception UnsupportedOperationException FIXME
+ * Returns the offset to the position of a character in this buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ * @exception UnsupportedOperationException If this buffer is not backed
+ * by an accessible array.
*/
public final int arrayOffset ()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return 0;
}
+ /**
+ * Calculates a hash code for this buffer-
+ */
public int hashCode ()
{
+ // FIXME: Check what SUN calculates here.
return super.hashCode ();
}
+ /**
+ * Checks if this buffer is equal to obj.
+ */
public boolean equals (Object obj)
{
if (obj instanceof CharBuffer)
@@ -184,7 +266,10 @@ public abstract class CharBuffer extends Buffer
}
/**
- * @exception ClassCastException FIXME
+ * Compares two character buffer objects.
+ *
+ * @exception ClassCastException If obj is not an object derived from
+ * <code>CharBuffer</code>.
*/
public int compareTo(Object obj)
{
@@ -197,8 +282,8 @@ public abstract class CharBuffer extends Buffer
return 1;
int r = remaining ();
- int i1 = pos;
- int i2 = a.pos;
+ int i1 = position ();
+ int i2 = a.position ();
for (int i = 0; i < r; i++)
{
@@ -207,85 +292,134 @@ public abstract class CharBuffer extends Buffer
if (t != 0)
return (int) t;
}
+
return 0;
}
/**
- * @exception BufferUnderflowException FIXME
+ * Relative get method.
+ *
+ * @exception BufferUnderflowException If there are no remaining characters
+ * in this buffer.
*/
public abstract char get ();
/**
- * @exception BufferOverflowException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * Relative put method.
+ *
+ * @exception BufferOverflowException If there no remaining characters in
+ * this buffer.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public abstract CharBuffer put (char b);
/**
- * @exception IndexOutOfBoundsException FIXME
+ * Absolute get method.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
*/
public abstract char get (int index);
/**
- * @exception IndexOutOfBoundsException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * Absolute put method.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public abstract CharBuffer put (int index, char b);
/**
- * @exception ReadOnlyBufferException FIXME
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public abstract CharBuffer compact ();
+ /**
+ * Tells wether this buffer is direct or not.
+ */
public abstract boolean isDirect ();
public abstract CharBuffer slice ();
+ /**
+ * Duplicates this buffer.
+ */
public abstract CharBuffer duplicate ();
+ /**
+ * Returns this buffer made read-only.
+ */
public abstract CharBuffer asReadOnlyBuffer ();
+ /**
+ * Returns the remaining content of the buffer as a string.
+ */
public String toString ()
{
- return "";
+ return new String (array (), position (), length ());
}
+ /**
+ * Returns the length of the remaining chars in this buffer.
+ */
public final int length ()
{
- return 0;
+ return remaining ();
}
+ /**
+ * Returns the byte order of this buffer.
+ */
public abstract ByteOrder order ();
/**
- * @exception IndexOutOfBoundsException FIXME
+ * Creates a new character buffer that represents the specified subsequence
+ * of this buffer, relative to the current position.
+ *
+ * @exception IndexOutOfBoundsException If the preconditions on start and
+ * end do not hold.
*/
public abstract CharSequence subSequence (int start, int length);
/**
- * @exception BufferOverflowException FIXME
- * @exception IndexOutOfBoundsException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * Relative put method.
+ *
+ * @exception BufferOverflowException If there is insufficient space in this
+ * buffer.
+ * @exception IndexOutOfBoundsException If the preconditions on the start
+ * and end parameters do not hold.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public CharBuffer put (String str, int start, int length)
{
- return null;
+ return put (str.toCharArray (), start, length);
}
/**
- * @exception BufferOverflowException FIXME
- * @exception ReadOnlyBufferException FIXME
+ * Relative put method.
+ *
+ * @exception BufferOverflowException If there is insufficient space in this
+ * buffer.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
*/
public final CharBuffer put (String str)
{
- return null;
+ return put (str, 0, str.length ());
}
/**
- * @exception IndexOutOfBoundsException FIXME
+ * Returns the character at <code>position() + index</code>.
+ *
+ * @exception IndexOutOfBoundsException If index is negative not smaller than
+ * <code>remaining()</code>.
*/
public final char charAt (int index)
{
- return ' ';
+ if (index < 0
+ || index >= remaining ())
+ throw new IndexOutOfBoundsException ();
+
+ return get (position () + index);
}
}
diff --git a/libjava/java/nio/DoubleBuffer.java b/libjava/java/nio/DoubleBuffer.java
index 7059b6e2430..27f3a16d34e 100644
--- a/libjava/java/nio/DoubleBuffer.java
+++ b/libjava/java/nio/DoubleBuffer.java
@@ -39,14 +39,14 @@ package java.nio;
import gnu.java.nio.DoubleBufferImpl;
-public abstract class DoubleBuffer extends Buffer
+public abstract class DoubleBuffer extends Buffer implements Comparable
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
protected double [] backing_buffer;
+ protected int array_offset;
public static DoubleBuffer allocateDirect(int capacity)
{
- return new DoubleBufferImpl(capacity, 0, capacity);
+ throw new Error ("direct buffers are not implemented");
}
public static DoubleBuffer allocate(int capacity)
@@ -77,7 +77,12 @@ public abstract class DoubleBuffer extends Buffer
return wrap(array, 0, array.length);
}
- final public DoubleBuffer get (double[] dst, int offset, int length)
+ DoubleBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ }
+
+ public DoubleBuffer get (double[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
@@ -87,12 +92,12 @@ public abstract class DoubleBuffer extends Buffer
return this;
}
- final public DoubleBuffer get(double[] dst)
+ public DoubleBuffer get (double[] dst)
{
return get(dst, 0, dst.length);
}
- final public DoubleBuffer put(DoubleBuffer src)
+ public DoubleBuffer put (DoubleBuffer src)
{
while (src.hasRemaining())
put(src.get());
@@ -100,7 +105,7 @@ public abstract class DoubleBuffer extends Buffer
return this;
}
- final public DoubleBuffer put (double[] src, int offset, int length)
+ public DoubleBuffer put (double[] src, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
put(src[i]);
@@ -115,17 +120,30 @@ public abstract class DoubleBuffer extends Buffer
public final boolean hasArray()
{
- return (backing_buffer != null);
+ return (backing_buffer != null
+ && !isReadOnly ());
}
public final double[] array()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
public final int arrayOffset()
{
- return 0;
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return array_offset;
}
public int hashCode()
@@ -172,17 +190,7 @@ public abstract class DoubleBuffer extends Buffer
return 0;
}
- public final ByteOrder order()
- {
- return endian;
- }
-
- public final DoubleBuffer order(ByteOrder bo)
- {
- endian = bo;
- return this;
- }
-
+ public abstract ByteOrder order ();
public abstract double get();
public abstract DoubleBuffer put (double b);
public abstract double get(int index);
@@ -192,34 +200,4 @@ public abstract class DoubleBuffer extends Buffer
public abstract DoubleBuffer slice();
public abstract DoubleBuffer duplicate();
public abstract DoubleBuffer asReadOnlyBuffer();
- public abstract ShortBuffer asShortBuffer();
- public abstract CharBuffer asCharBuffer();
- public abstract IntBuffer asIntBuffer();
- public abstract LongBuffer asLongBuffer();
- public abstract FloatBuffer asFloatBuffer();
- public abstract DoubleBuffer asDoubleBuffer();
- public abstract char getChar();
- public abstract DoubleBuffer putChar(char value);
- public abstract char getChar(int index);
- public abstract DoubleBuffer putChar(int index, char value);
- public abstract short getShort();
- public abstract DoubleBuffer putShort(short value);
- public abstract short getShort(int index);
- public abstract DoubleBuffer putShort(int index, short value);
- public abstract int getInt();
- public abstract DoubleBuffer putInt(int value);
- public abstract int getInt(int index);
- public abstract DoubleBuffer putInt(int index, int value);
- public abstract long getLong();
- public abstract DoubleBuffer putLong(long value);
- public abstract long getLong(int index);
- public abstract DoubleBuffer putLong(int index, long value);
- public abstract float getFloat();
- public abstract DoubleBuffer putFloat(float value);
- public abstract float getFloat(int index);
- public abstract DoubleBuffer putFloat(int index, float value);
- public abstract double getDouble();
- public abstract DoubleBuffer putDouble(double value);
- public abstract double getDouble(int index);
- public abstract DoubleBuffer putDouble(int index, double value);
}
diff --git a/libjava/java/nio/FloatBuffer.java b/libjava/java/nio/FloatBuffer.java
index f06ef187791..16c92d61023 100644
--- a/libjava/java/nio/FloatBuffer.java
+++ b/libjava/java/nio/FloatBuffer.java
@@ -39,14 +39,14 @@ package java.nio;
import gnu.java.nio.FloatBufferImpl;
-public abstract class FloatBuffer extends Buffer
+public abstract class FloatBuffer extends Buffer implements Comparable
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
protected float [] backing_buffer;
+ protected int array_offset;
public static FloatBuffer allocateDirect(int capacity)
{
- return new FloatBufferImpl (capacity, 0, capacity);
+ throw new Error ("direct buffers not implemented");
}
public static FloatBuffer allocate(int capacity)
@@ -77,7 +77,13 @@ public abstract class FloatBuffer extends Buffer
return wrap(array, 0, array.length);
}
- final public FloatBuffer get(float[] dst, int offset, int length)
+ FloatBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ array_offset = 0;
+ }
+
+ public FloatBuffer get (float[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
@@ -87,12 +93,12 @@ public abstract class FloatBuffer extends Buffer
return this;
}
- final public FloatBuffer get(float[] dst)
+ public FloatBuffer get (float[] dst)
{
return get(dst, 0, dst.length);
}
- final public FloatBuffer put(FloatBuffer src)
+ public FloatBuffer put (FloatBuffer src)
{
while (src.hasRemaining())
put(src.get());
@@ -100,7 +106,7 @@ public abstract class FloatBuffer extends Buffer
return this;
}
- final public FloatBuffer put(float[] src, int offset, int length)
+ public FloatBuffer put (float[] src, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
put(src[i]);
@@ -115,17 +121,30 @@ public abstract class FloatBuffer extends Buffer
public final boolean hasArray()
{
- return (backing_buffer != null);
+ return (backing_buffer != null
+ && !isReadOnly ());
}
public final float[] array()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
public final int arrayOffset()
{
- return 0;
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return array_offset;
}
public int hashCode()
@@ -139,6 +158,7 @@ public abstract class FloatBuffer extends Buffer
{
return compareTo(obj) == 0;
}
+
return false;
}
@@ -171,17 +191,7 @@ public abstract class FloatBuffer extends Buffer
return 0;
}
- public final ByteOrder order()
- {
- return endian;
- }
-
- public final FloatBuffer order(ByteOrder bo)
- {
- endian = bo;
- return this;
- }
-
+ public abstract ByteOrder order ();
public abstract float get();
public abstract java.nio. FloatBuffer put(float b);
public abstract float get(int index);
@@ -191,34 +201,4 @@ public abstract class FloatBuffer extends Buffer
public abstract FloatBuffer slice();
public abstract FloatBuffer duplicate();
public abstract FloatBuffer asReadOnlyBuffer();
- public abstract ShortBuffer asShortBuffer();
- public abstract CharBuffer asCharBuffer();
- public abstract IntBuffer asIntBuffer();
- public abstract LongBuffer asLongBuffer();
- public abstract FloatBuffer asFloatBuffer();
- public abstract DoubleBuffer asDoubleBuffer();
- public abstract char getChar();
- public abstract FloatBuffer putChar(char value);
- public abstract char getChar(int index);
- public abstract FloatBuffer putChar(int index, char value);
- public abstract short getShort();
- public abstract FloatBuffer putShort(short value);
- public abstract short getShort(int index);
- public abstract FloatBuffer putShort(int index, short value);
- public abstract int getInt();
- public abstract FloatBuffer putInt(int value);
- public abstract int getInt(int index);
- public abstract FloatBuffer putInt(int index, int value);
- public abstract long getLong();
- public abstract FloatBuffer putLong(long value);
- public abstract long getLong(int index);
- public abstract FloatBuffer putLong(int index, long value);
- public abstract float getFloat();
- public abstract FloatBuffer putFloat(float value);
- public abstract float getFloat(int index);
- public abstract FloatBuffer putFloat(int index, float value);
- public abstract double getDouble();
- public abstract FloatBuffer putDouble(double value);
- public abstract double getDouble(int index);
- public abstract FloatBuffer putDouble(int index, double value);
}
diff --git a/libjava/java/nio/IntBuffer.java b/libjava/java/nio/IntBuffer.java
index d2d28d36b10..18e353b2013 100644
--- a/libjava/java/nio/IntBuffer.java
+++ b/libjava/java/nio/IntBuffer.java
@@ -39,14 +39,14 @@ package java.nio;
import gnu.java.nio.IntBufferImpl;
-public abstract class IntBuffer extends Buffer
+public abstract class IntBuffer extends Buffer implements Comparable
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
protected int [] backing_buffer;
+ protected int array_offset;
public static IntBuffer allocateDirect(int capacity)
{
- return new IntBufferImpl (capacity, 0, capacity);
+ throw new Error ("direct buffers not implemented");
}
public static IntBuffer allocate(int capacity)
@@ -77,7 +77,13 @@ public abstract class IntBuffer extends Buffer
return wrap(array, 0, array.length);
}
- final public IntBuffer get(int[] dst, int offset, int length)
+ IntBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ array_offset = 0;
+ }
+
+ public IntBuffer get(int[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
@@ -87,12 +93,12 @@ public abstract class IntBuffer extends Buffer
return this;
}
- final public IntBuffer get(int[] dst)
+ public IntBuffer get (int[] dst)
{
return get(dst, 0, dst.length);
}
- final public IntBuffer put(IntBuffer src)
+ public IntBuffer put (IntBuffer src)
{
while (src.hasRemaining())
put(src.get());
@@ -100,7 +106,7 @@ public abstract class IntBuffer extends Buffer
return this;
}
- final public IntBuffer put(int[] src, int offset, int length)
+ public IntBuffer put (int[] src, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
put(src[i]);
@@ -115,17 +121,30 @@ public abstract class IntBuffer extends Buffer
public final boolean hasArray()
{
- return (backing_buffer != null);
+ return (backing_buffer != null
+ && !isReadOnly ());
}
public final int[] array()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
public final int arrayOffset()
{
- return 0;
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return array_offset;
}
public int hashCode()
@@ -172,17 +191,7 @@ public abstract class IntBuffer extends Buffer
return 0;
}
- public final ByteOrder order()
- {
- return endian;
- }
-
- public final IntBuffer order(ByteOrder bo)
- {
- endian = bo;
- return this;
- }
-
+ public abstract ByteOrder order();
public abstract int get();
public abstract IntBuffer put(int b);
public abstract int get(int index);
@@ -192,34 +201,4 @@ public abstract class IntBuffer extends Buffer
public abstract IntBuffer slice();
public abstract IntBuffer duplicate();
public abstract IntBuffer asReadOnlyBuffer();
- public abstract ShortBuffer asShortBuffer();
- public abstract CharBuffer asCharBuffer();
- public abstract IntBuffer asIntBuffer();
- public abstract LongBuffer asLongBuffer();
- public abstract FloatBuffer asFloatBuffer();
- public abstract DoubleBuffer asDoubleBuffer();
- public abstract char getChar();
- public abstract IntBuffer putChar(char value);
- public abstract char getChar(int index);
- public abstract IntBuffer putChar(int index, char value);
- public abstract short getShort();
- public abstract IntBuffer putShort(short value);
- public abstract short getShort(int index);
- public abstract IntBuffer putShort(int index, short value);
- public abstract int getInt();
- public abstract IntBuffer putInt(int value);
- public abstract int getInt(int index);
- public abstract IntBuffer putInt(int index, int value);
- public abstract long getLong();
- public abstract IntBuffer putLong(long value);
- public abstract long getLong(int index);
- public abstract IntBuffer putLong(int index, long value);
- public abstract float getFloat();
- public abstract IntBuffer putFloat(float value);
- public abstract float getFloat(int index);
- public abstract IntBuffer putFloat(int index, float value);
- public abstract double getDouble();
- public abstract IntBuffer putDouble(double value);
- public abstract double getDouble(int index);
- public abstract IntBuffer putDouble(int index, double value);
}
diff --git a/libjava/java/nio/LongBuffer.java b/libjava/java/nio/LongBuffer.java
index 5bca6d53b70..8b737194d0c 100644
--- a/libjava/java/nio/LongBuffer.java
+++ b/libjava/java/nio/LongBuffer.java
@@ -39,14 +39,14 @@ package java.nio;
import gnu.java.nio.LongBufferImpl;
-public abstract class LongBuffer extends Buffer
+public abstract class LongBuffer extends Buffer implements Comparable
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
protected long [] backing_buffer;
+ protected int array_offset;
public static LongBuffer allocateDirect(int capacity)
{
- return new LongBufferImpl(capacity, 0, capacity);
+ throw new Error ("direct buffers not implemented");
}
public static LongBuffer allocate(int capacity)
@@ -77,7 +77,13 @@ public abstract class LongBuffer extends Buffer
return wrap(array, 0, array.length);
}
- final public LongBuffer get(long[] dst, int offset, int length)
+ LongBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ array_offset = 0;
+ }
+
+ public LongBuffer get (long[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
@@ -87,12 +93,12 @@ public abstract class LongBuffer extends Buffer
return this;
}
- final public LongBuffer get(long[] dst)
+ public LongBuffer get (long[] dst)
{
return get(dst, 0, dst.length);
}
- final public LongBuffer put(LongBuffer src)
+ public LongBuffer put (LongBuffer src)
{
while (src.hasRemaining())
put(src.get());
@@ -100,7 +106,7 @@ public abstract class LongBuffer extends Buffer
return this;
}
- final public LongBuffer put(long[] src, int offset, int length)
+ public LongBuffer put (long[] src, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
put(src[i]);
@@ -115,17 +121,30 @@ public abstract class LongBuffer extends Buffer
public final boolean hasArray()
{
- return (backing_buffer != null);
+ return (backing_buffer != null
+ && !isReadOnly ());
}
public final long[] array()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
public final int arrayOffset()
{
- return 0;
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return array_offset;
}
public int hashCode()
@@ -173,17 +192,7 @@ public abstract class LongBuffer extends Buffer
return 0;
}
- public final ByteOrder order()
- {
- return endian;
- }
-
- public final LongBuffer order(ByteOrder bo)
- {
- endian = bo;
- return this;
- }
-
+ public abstract ByteOrder order();
public abstract long get();
public abstract java.nio. LongBuffer put(long b);
public abstract long get(int index);
@@ -193,34 +202,4 @@ public abstract class LongBuffer extends Buffer
public abstract LongBuffer slice();
public abstract LongBuffer duplicate();
public abstract LongBuffer asReadOnlyBuffer();
- public abstract ShortBuffer asShortBuffer();
- public abstract CharBuffer asCharBuffer();
- public abstract IntBuffer asIntBuffer();
- public abstract LongBuffer asLongBuffer();
- public abstract FloatBuffer asFloatBuffer();
- public abstract DoubleBuffer asDoubleBuffer();
- public abstract char getChar();
- public abstract LongBuffer putChar(char value);
- public abstract char getChar(int index);
- public abstract LongBuffer putChar(int index, char value);
- public abstract short getShort();
- public abstract LongBuffer putShort(short value);
- public abstract short getShort(int index);
- public abstract LongBuffer putShort(int index, short value);
- public abstract int getInt();
- public abstract LongBuffer putInt(int value);
- public abstract int getInt(int index);
- public abstract LongBuffer putInt(int index, int value);
- public abstract long getLong();
- public abstract LongBuffer putLong(long value);
- public abstract long getLong(int index);
- public abstract LongBuffer putLong(int index, long value);
- public abstract float getFloat();
- public abstract LongBuffer putFloat(float value);
- public abstract float getFloat(int index);
- public abstract LongBuffer putFloat(int index, float value);
- public abstract double getDouble();
- public abstract LongBuffer putDouble(double value);
- public abstract double getDouble(int index);
- public abstract LongBuffer putDouble(int index, double value);
}
diff --git a/libjava/java/nio/MappedByteBuffer.java b/libjava/java/nio/MappedByteBuffer.java
index dc1b20d892c..305327b74c5 100644
--- a/libjava/java/nio/MappedByteBuffer.java
+++ b/libjava/java/nio/MappedByteBuffer.java
@@ -37,6 +37,29 @@ exception statement from your version. */
package java.nio;
+/**
+ * @author Michael Koch
+ * @since 1.4
+ */
public abstract class MappedByteBuffer extends ByteBuffer
{
+ MappedByteBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ }
+
+ public final MappedByteBuffer force ()
+ {
+ return this;
+ }
+
+ public final boolean isLoaded ()
+ {
+ return true;
+ }
+
+ public final MappedByteBuffer load ()
+ {
+ return this;
+ }
}
diff --git a/libjava/java/nio/ShortBuffer.java b/libjava/java/nio/ShortBuffer.java
index 5301366ceee..8c5915dc148 100644
--- a/libjava/java/nio/ShortBuffer.java
+++ b/libjava/java/nio/ShortBuffer.java
@@ -39,14 +39,14 @@ package java.nio;
import gnu.java.nio.ShortBufferImpl;
-public abstract class ShortBuffer extends Buffer
+public abstract class ShortBuffer extends Buffer implements Comparable
{
- private ByteOrder endian = ByteOrder.BIG_ENDIAN;
protected short [] backing_buffer;
+ protected int array_offset;
public static ShortBuffer allocateDirect(int capacity)
{
- return new ShortBufferImpl(capacity, 0, capacity);
+ throw new Error ("direct buffers not implemented");
}
public static ShortBuffer allocate(int capacity)
@@ -77,7 +77,13 @@ public abstract class ShortBuffer extends Buffer
return wrap(array, 0, array.length);
}
- final public ShortBuffer get(short[] dst, int offset, int length)
+ ShortBuffer (int capacity, int limit, int position, int mark)
+ {
+ super (capacity, limit, position, mark);
+ array_offset = 0;
+ }
+
+ public ShortBuffer get (short[] dst, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
{
@@ -87,12 +93,12 @@ public abstract class ShortBuffer extends Buffer
return this;
}
- final public ShortBuffer get(short[] dst)
+ public ShortBuffer get (short[] dst)
{
return get(dst, 0, dst.length);
}
- final public ShortBuffer put(ShortBuffer src)
+ public ShortBuffer put (ShortBuffer src)
{
while (src.hasRemaining())
put(src.get());
@@ -100,7 +106,7 @@ public abstract class ShortBuffer extends Buffer
return this;
}
- final public ShortBuffer put(short[] src, int offset, int length)
+ public ShortBuffer put (short[] src, int offset, int length)
{
for (int i = offset; i < offset + length; i++)
put(src[i]);
@@ -115,17 +121,30 @@ public abstract class ShortBuffer extends Buffer
public final boolean hasArray()
{
- return (backing_buffer != null);
+ return (backing_buffer != null
+ && !isReadOnly ());
}
public final short[] array()
{
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
return backing_buffer;
}
public final int arrayOffset()
{
- return 0;
+ if (backing_buffer == null)
+ throw new UnsupportedOperationException ();
+
+ if (isReadOnly ())
+ throw new ReadOnlyBufferException ();
+
+ return array_offset;
}
public int hashCode()
@@ -173,17 +192,7 @@ public abstract class ShortBuffer extends Buffer
return 0;
}
- public final ByteOrder order()
- {
- return endian;
- }
-
- public final ShortBuffer order(ByteOrder bo)
- {
- endian = bo;
- return this;
- }
-
+ public abstract ByteOrder order ();
public abstract short get();
public abstract java.nio. ShortBuffer put(short b);
public abstract short get(int index);
@@ -193,34 +202,4 @@ public abstract class ShortBuffer extends Buffer
public abstract ShortBuffer slice();
public abstract ShortBuffer duplicate();
public abstract ShortBuffer asReadOnlyBuffer();
- public abstract ShortBuffer asShortBuffer();
- public abstract CharBuffer asCharBuffer();
- public abstract IntBuffer asIntBuffer();
- public abstract LongBuffer asLongBuffer();
- public abstract FloatBuffer asFloatBuffer();
- public abstract DoubleBuffer asDoubleBuffer();
- public abstract char getChar();
- public abstract ShortBuffer putChar(char value);
- public abstract char getChar(int index);
- public abstract ShortBuffer putChar(int index, char value);
- public abstract short getShort();
- public abstract ShortBuffer putShort(short value);
- public abstract short getShort(int index);
- public abstract ShortBuffer putShort(int index, short value);
- public abstract int getInt();
- public abstract ShortBuffer putInt(int value);
- public abstract int getInt(int index);
- public abstract ShortBuffer putInt(int index, int value);
- public abstract long getLong();
- public abstract ShortBuffer putLong(long value);
- public abstract long getLong(int index);
- public abstract ShortBuffer putLong(int index, long value);
- public abstract float getFloat();
- public abstract ShortBuffer putFloat(float value);
- public abstract float getFloat(int index);
- public abstract ShortBuffer putFloat(int index, float value);
- public abstract double getDouble();
- public abstract ShortBuffer putDouble(double value);
- public abstract double getDouble(int index);
- public abstract ShortBuffer putDouble(int index, double value);
}
diff --git a/libjava/java/nio/channels/Channels.java b/libjava/java/nio/channels/Channels.java
new file mode 100644
index 00000000000..d911b41d00b
--- /dev/null
+++ b/libjava/java/nio/channels/Channels.java
@@ -0,0 +1,130 @@
+/* Channels.java --
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.nio.channels;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.nio.channels.WritableByteChannel;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+
+/**
+ * @since 1.4
+ */
+public final class Channels
+{
+ /**
+ * Constructs a stream that reads bytes from the given channel.
+ */
+ public static InputStream newInputStream (ReadableByteChannel ch)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a stream that writes bytes to the given channel.
+ */
+ public static OutputStream newOutputStream (WritableByteChannel ch)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a channel that reads bytes from the given stream.
+ */
+ public static ReadableByteChannel newChannel (InputStream in)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a channel that writes bytes to the given stream.
+ */
+ public static WritableByteChannel newChannel (OutputStream out)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a reader that decodes bytes from the given channel using the
+ * given decoder.
+ */
+ public static Reader newReader (ReadableByteChannel ch, CharsetDecoder dec,
+ int minBufferCap)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a reader that decodes bytes from the given channel according to
+ * the named charset.
+ *
+ * @exception UnsupportedCharsetException If no support for the named charset
+ * is available in this instance of the Java virtual machine.
+ */
+ public static Reader newReader (ReadableByteChannel ch, String csName)
+ {
+ return newReader (ch, Charset.forName (csName).newDecoder (), -1);
+ }
+
+ /**
+ * Constructs a writer that encodes characters using the given encoder and
+ * writes the resulting bytes to the given channel.
+ */
+ public static Writer newWriter (WritableByteChannel ch, CharsetEncoder enc,
+ int minBufferCap)
+ {
+ throw new Error ("not implemented");
+ }
+
+ /**
+ * Constructs a writer that encodes characters according to the named charset
+ * and writes the resulting bytes to the given channel.
+ *
+ * @exception UnsupportedCharsetException If no support for the named charset
+ * is available in this instance of the Java virtual machine.
+ */
+ public static Writer newWriter (WritableByteChannel ch,
+ String csName)
+ {
+ return newWriter (ch, Charset.forName (csName).newEncoder (), -1);
+ }
+}
diff --git a/libjava/java/nio/channels/DatagramChannel.java b/libjava/java/nio/channels/DatagramChannel.java
index 6c457557b95..4a7ac9825f7 100644
--- a/libjava/java/nio/channels/DatagramChannel.java
+++ b/libjava/java/nio/channels/DatagramChannel.java
@@ -88,7 +88,7 @@ public abstract class DatagramChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException The channel's socket is not connected.
*/
- public final long write (ByteBuffer[] srcs)
+ public final long write (ByteBuffer[] srcs) throws IOException
{
long b = 0;
@@ -111,14 +111,15 @@ public abstract class DatagramChannel
* @exception SecurityException If a security manager has been installed and
* it does not permit datagrams to be sent to the given address.
*/
- public abstract DatagramChannel connect (SocketAddress remote);
+ public abstract DatagramChannel connect (SocketAddress remote)
+ throws IOException;
/**
* Disonnects this channel's socket.
*
* @exception IOException If an error occurs
*/
- public abstract DatagramChannel disconnect ();
+ public abstract DatagramChannel disconnect () throws IOException;
/**
* Tells whether or not this channel's socket is connected.
@@ -131,7 +132,7 @@ public abstract class DatagramChannel
/**
* Reads data from this channel.
*/
- public abstract int read (ByteBuffer dst);
+ public abstract int read (ByteBuffer dst) throws IOException;
/**
* Reads data from this channel.
@@ -139,7 +140,8 @@ public abstract class DatagramChannel
* @exception IOException If an error occurs.
* @exception NotYetConnectedException The channel's socket is not connected.
*/
- public abstract long read (ByteBuffer[] dsts, int offset, int length);
+ public abstract long read (ByteBuffer[] dsts, int offset, int length)
+ throws IOException;
/**
* Receives a datagram via this channel.
@@ -154,7 +156,7 @@ public abstract class DatagramChannel
* @exception SecurityException If a security manager has been installed and
* it does not permit datagrams to be sent to the given address.
*/
- public abstract SocketAddress receive (ByteBuffer dst);
+ public abstract SocketAddress receive (ByteBuffer dst) throws IOException;
/**
* Sends a datagram via this channel.
@@ -169,7 +171,8 @@ public abstract class DatagramChannel
* @exception SecurityException If a security manager has been installed and
* it does not permit datagrams to be sent to the given address.
*/
- public abstract int send (ByteBuffer src, SocketAddress target);
+ public abstract int send (ByteBuffer src, SocketAddress target)
+ throws IOException;
/**
* Retrieves the channel's socket.
@@ -182,7 +185,7 @@ public abstract class DatagramChannel
* @exception IOException If an error occurs.
* @exception NotYetConnectedException The channel's socket is not connected.
*/
- public abstract int write (ByteBuffer src);
+ public abstract int write (ByteBuffer src) throws IOException;
/**
* Writes data to this channel.
@@ -190,7 +193,8 @@ public abstract class DatagramChannel
* @exception IOException If an error occurs.
* @exception NotYetConnectedException The channel's socket is not connected.
*/
- public abstract long write (ByteBuffer[] srcs, int offset, int length);
+ public abstract long write (ByteBuffer[] srcs, int offset, int length)
+ throws IOException;
/**
* Retrieves the valid operations for this channel.
diff --git a/libjava/java/nio/channels/FileChannel.java b/libjava/java/nio/channels/FileChannel.java
index 8970b983923..3fa0f35843e 100644
--- a/libjava/java/nio/channels/FileChannel.java
+++ b/libjava/java/nio/channels/FileChannel.java
@@ -65,9 +65,17 @@ public abstract class FileChannel extends AbstractInterruptibleChannel
m = a;
}
+ /**
+ * Returns a string representation of the <code>MapMode</code> object.
+ */
public String toString()
{
- return "" + m;
+ if (this == READ_ONLY)
+ return "READ_ONLY";
+ else if (this == READ_WRITE)
+ return "READ_WRITE";
+
+ return "PRIVATE";
}
}
@@ -81,20 +89,28 @@ public abstract class FileChannel extends AbstractInterruptibleChannel
/**
* Maps the file into the memory.
*
- * @exception IOException If an error occurs.
+ * @exception IllegalArgumentException If the preconditions on the parameters
+ * do not hold.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonReadableChannelException If mode is READ_ONLY but this channel was
+ * not opened for reading.
+ * @exception NonWritableChannelException If mode is READ_WRITE or PRIVATE but this
+ * channel was not opened for writing.
*/
public abstract MappedByteBuffer map(MapMode mode, long position, long size)
throws IOException;
/**
* Return the size of the file thus far
+ *
+ * @exception ClosedChannelException If this channel is closed.
*/
public abstract long size() throws IOException;
/**
* Writes data to the channel.
*
- * @exception IOException If an error occurs.
+ * @exception IOException If an I/O error occurs.
*/
public long write (ByteBuffer[] srcs) throws IOException
{
@@ -110,26 +126,243 @@ public abstract class FileChannel extends AbstractInterruptibleChannel
/**
* Writes data to the channel.
+ *
+ * @exception IOException If an I/O error occurs.
+ */
+ public abstract int write (ByteBuffer src) throws IOException;
+
+ /**
+ * Writes data to the channel.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedByInterruptException If another thread interrupts the
+ * current thread while the transfer is in progress, thereby closing both
+ * channels and setting the current thread's interrupt status.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If position is negative.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonWritableChannelException If this channel was not opened for
+ * writing.
+ */
+ public abstract int write (ByteBuffer srcs, long position) throws IOException;
+
+ /**
+ * Writes data to the channel.
+ *
+ * @exception IOException If an I/O error occurs.
*/
public abstract long write(ByteBuffer[] srcs, int offset, int length)
throws IOException;
/**
* Reads data from the channel.
+ *
+ * @exception IOException If an I/O error occurs.
+ */
+ public abstract long read (ByteBuffer[] dsts, int offset, int length)
+ throws IOException;
+
+ /**
+ * Reads data from the channel.
+ *
+ * @exception IOException If an I/O error occurs.
+ */
+ public final long read (ByteBuffer[] dsts) throws IOException
+ {
+ long result = 0;
+
+ for (int i = 0; i < dsts.length; i++)
+ {
+ read (dsts [i]);
+ }
+
+ return result;
+ }
+
+ /**
+ * Reads data from the channel.
+ *
+ * @exception IOException If an I/O error occurs.
*/
public abstract int read(ByteBuffer dst) throws IOException;
/**
+ * Reads data from the channel.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedByInterruptException If another thread interrupts the
+ * current thread while the transfer is in progress, thereby closing both
+ * channels and setting the current thread's interrupt status.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If position is negative.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonReadableChannelException If this channel was not opened for
+ * reading.
+ */
+ public abstract int read(ByteBuffer dst, long position) throws IOException;
+
+ /**
* Closes the channel.
*
* This is called from @see close.
*
- * @exception IOException If an error occurs.
+ * @exception IOException If an I/O error occurs.
*/
protected abstract void implCloseChannel() throws IOException;
/**
* msync with the disk
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IOException If an I/O error occurs.
+ */
+ public abstract void force(boolean metaData) throws IOException;
+
+ /**
+ * Creates a file lock for the whole assoziated file.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception FileLockInterruptionException If the invoking thread is
+ * interrupted while blocked in this method.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonReadableChannelException If shared is true and this channel
+ * was not opened for reading.
+ * @exception NonWritableChannelException If shared is false and this channel
+ * was not opened for writing.
+ * @exception OverlappingFileLockException If a lock that overlaps the
+ * requested region is already held by this Java virtual machine, or if
+ * another thread is already blocked in this method and is attempting to lock
+ * an overlapping region.
+ */
+ public final FileLock lock () throws IOException
+ {
+ return lock (0, Long.MAX_VALUE, false);
+ }
+
+ /**
+ * Creates a file lock for a region of the assoziated file.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception FileLockInterruptionException If the invoking thread is
+ * interrupted while blocked in this method.
+ * @exception IllegalArgumentException If the preconditions on the parameters
+ * do not hold.
+ * @exception IOException If an I/O error occurs.
+ * @exception OverlappingFileLockException If a lock that overlaps the
+ * requested region is already held by this Java virtual machine, or if
+ * another thread is already blocked in this method and is attempting to lock
+ * an overlapping region.
+ * @exception NonReadableChannelException If shared is true and this channel
+ * was not opened for reading.
+ * @exception NonWritableChannelException If shared is false and this channel
+ * was not opened for writing.
+ */
+ public abstract FileLock lock (long position, long size, boolean shared)
+ throws IOException;
+
+ /**
+ * Tries to aqquire alock on the whole assoziated file.
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IOException If an I/O error occurs.
+ * @exception OverlappingFileLockException If a lock that overlaps the
+ * requested region is already held by this Java virtual machine, or if
+ * another thread is already blocked in this method and is attempting to lock
+ * an overlapping region.
+ */
+ public final FileLock tryLock () throws IOException
+ {
+ return tryLock (0, Long.MAX_VALUE, false);
+ }
+
+ /**
+ * Tries to aqquire a lock on a region of the assoziated file.
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If the preconditions on the parameters
+ * do not hold.
+ * @exception IOException If an I/O error occurs.
+ * @exception OverlappingFileLockException If a lock that overlaps the
+ * requested region is already held by this Java virtual machine, or if
+ * another thread is already blocked in this method and is attempting to lock
+ * an overlapping region.
+ */
+ public abstract FileLock tryLock (long position, long size, boolean shared)
+ throws IOException;
+
+ /**
+ * Returns the current position on the file.
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IOException If an I/O error occurs.
+ */
+ public abstract long position () throws IOException;
+
+ /**
+ * Sets the position of the channel on the assoziated file.
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If newPosition is negative.
+ * @exception IOException If an I/O error occurs.
+ */
+ public abstract FileChannel position (long newPosition) throws IOException;
+
+ /**
+ * Transfers bytes from this channel's file to the given writable byte
+ * channel.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedByInterruptException If another thread interrupts the
+ * current thread while the transfer is in progress, thereby closing both
+ * channels and setting the current thread's interrupt status.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If the preconditions on the parameters
+ * do not hold.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonReadableChannelException If this channel was not opened for
+ * reading.
+ * @exception NonWritableChannelException If the target channel was not
+ * opened for writing.
+ */
+ public abstract long transferTo (long position, long count,
+ WritableByteChannel target)
+ throws IOException;
+
+ /**
+ * Transfers bytes from the given readable channel into this channel.
+ *
+ * @exception AsynchronousCloseException If another thread closes this channel
+ * while the transfer is in progress.
+ * @exception ClosedByInterruptException If another thread interrupts the
+ * current thread while the transfer is in progress, thereby closing both
+ * channels and setting the current thread's interrupt status.
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If the preconditions on the parameters
+ * do not hold.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonReadableChannelException If the source channel was not
+ * opened for reading.
+ * @exception NonWritableChannelException If this channel was not opened for
+ * writing.
+ */
+ public abstract long transferFrom (ReadableByteChannel src, long position,
+ long count) throws IOException;
+
+ /**
+ * Truncates the channel's file at <code>size</code>.
+ *
+ * @exception ClosedChannelException If this channel is closed.
+ * @exception IllegalArgumentException If size is negative.
+ * @exception IOException If an I/O error occurs.
+ * @exception NonWritableChannelException If this channel was not opened for
+ * writing.
*/
- public abstract void force(boolean metaData);
+ public abstract FileChannel truncate (long size) throws IOException;
}
diff --git a/libjava/java/nio/channels/FileLock.java b/libjava/java/nio/channels/FileLock.java
new file mode 100644
index 00000000000..1b4595e5c43
--- /dev/null
+++ b/libjava/java/nio/channels/FileLock.java
@@ -0,0 +1,137 @@
+/* FileLock.java --
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.nio.channels;
+
+import java.io.IOException;
+
+/**
+ * @since 1.4
+ */
+public abstract class FileLock
+{
+ FileChannel channel;
+ long position;
+ long size;
+ boolean shared;
+
+ /**
+ * Initializes the file lock.
+ *
+ * @exception IllegalArgumentException If the preconditions on the parameters do not hold
+ */
+ protected FileLock (FileChannel channel, long position, long size,
+ boolean shared)
+ {
+ if (position < 0 ||
+ size < 0)
+ throw new IllegalArgumentException ();
+
+ this.channel = channel;
+ this.position = position;
+ this.size = size;
+ this.shared = shared;
+ }
+
+ /**
+ * Tells whether or not this lock is valid.
+ */
+ public abstract boolean isValid();
+
+ /**
+ * Releases this lock.
+ *
+ * @exception IOException If an error occurs
+ * @exception ClosedChannelException If the locked channel is no longer open.
+ */
+ public abstract void release () throws IOException;
+
+ /**
+ * Returns the file channel upon whose file this lock is held.
+ */
+ public final FileChannel channel ()
+ {
+ return channel;
+ }
+
+ /**
+ * Tells whether this lock is shared.
+ */
+ public final boolean isShared ()
+ {
+ return shared;
+ }
+
+ /**
+ * Tells whether or not this lock overlaps the given lock range.
+ */
+ public final boolean overlaps (long position, long size)
+ {
+ if (position > this.position +this.size)
+ return false;
+
+ if (position + size < this.position)
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Returns the position within the file of the first byte of the
+ * locked region.
+ */
+ public final long position ()
+ {
+ return position;
+ }
+
+ /**
+ * Returns the size of the locked region in bytes.
+ */
+ public final long size ()
+ {
+ return size;
+ }
+
+ /**
+ * Returns a string describing the range, type, and validity of this lock.
+ */
+ public final String toString ()
+ {
+ return "file-lock:pos=" + position + "size=" + size;
+ }
+}
diff --git a/libjava/java/nio/channels/Pipe.java b/libjava/java/nio/channels/Pipe.java
index 22f3d156f68..939d7b52ad2 100644
--- a/libjava/java/nio/channels/Pipe.java
+++ b/libjava/java/nio/channels/Pipe.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.nio.channels;
+import java.io.IOException;
import java.nio.channels.spi.AbstractSelectableChannel;
import java.nio.channels.spi.SelectorProvider;
@@ -104,7 +105,7 @@ public abstract class Pipe
*
* @exception IOException If an error occurs
*/
- public static Pipe open()
+ public static Pipe open() throws IOException
{
return SelectorProvider.provider ().openPipe();
}
diff --git a/libjava/java/nio/channels/SelectableChannel.java b/libjava/java/nio/channels/SelectableChannel.java
index 2bc5cc47e35..72abac89654 100644
--- a/libjava/java/nio/channels/SelectableChannel.java
+++ b/libjava/java/nio/channels/SelectableChannel.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.nio.channels;
+import java.io.IOException;
import java.nio.channels.spi.AbstractInterruptibleChannel;
import java.nio.channels.spi.SelectorProvider;
@@ -67,7 +68,8 @@ public abstract class SelectableChannel
* is registered with one or more selectors.
* @exception IOException If an error occurs.
*/
- public abstract SelectableChannel configureBlocking (boolean block);
+ public abstract SelectableChannel configureBlocking (boolean block)
+ throws IOException;
/**
* Tells whether this channel is blocking or not.
diff --git a/libjava/java/nio/channels/SelectionKey.java b/libjava/java/nio/channels/SelectionKey.java
index 8d06a301143..39b66f1902a 100644
--- a/libjava/java/nio/channels/SelectionKey.java
+++ b/libjava/java/nio/channels/SelectionKey.java
@@ -43,10 +43,10 @@ package java.nio.channels;
*/
public abstract class SelectionKey
{
- public static final int OP_ACCEPT = 1<<0;
- public static final int OP_CONNECT = 1<<1;
- public static final int OP_READ = 1<<2;
- public static final int OP_WRITE = 1<<3;
+ public static final int OP_ACCEPT = 16;
+ public static final int OP_CONNECT = 8;
+ public static final int OP_READ = 1;
+ public static final int OP_WRITE = 4;
Object attached;
diff --git a/libjava/java/nio/channels/ServerSocketChannel.java b/libjava/java/nio/channels/ServerSocketChannel.java
index 16a3a82df5b..e41af212623 100644
--- a/libjava/java/nio/channels/ServerSocketChannel.java
+++ b/libjava/java/nio/channels/ServerSocketChannel.java
@@ -73,7 +73,7 @@ public abstract class ServerSocketChannel
* @exception SecurityException If a security manager has been installed and
* it does not permit access to the remote endpoint of the new connection.
*/
- public abstract SocketChannel accept ();
+ public abstract SocketChannel accept () throws IOException;
/**
* Retrieves the channels socket.
diff --git a/libjava/java/nio/channels/SocketChannel.java b/libjava/java/nio/channels/SocketChannel.java
index 368a8ee468c..c22eb1d1945 100644
--- a/libjava/java/nio/channels/SocketChannel.java
+++ b/libjava/java/nio/channels/SocketChannel.java
@@ -49,6 +49,7 @@ import java.net.SocketAddress;
* @since 1.4
*/
abstract public class SocketChannel extends AbstractSelectableChannel
+ implements ByteChannel, ScatteringByteChannel, GatheringByteChannel
{
/**
* Initializes this socket.
@@ -100,7 +101,7 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public final long read (ByteBuffer[] dsts)
+ public final long read (ByteBuffer[] dsts) throws IOException
{
long b = 0;
@@ -118,7 +119,7 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public final long write (ByteBuffer[] dsts)
+ public final long write (ByteBuffer[] dsts) throws IOException
{
long b = 0;
@@ -144,7 +145,7 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public abstract int read (ByteBuffer dst);
+ public abstract int read (ByteBuffer dst) throws IOException;
/**
* Connects the channel's socket to the remote address.
@@ -179,7 +180,7 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception NoConnectionPendingException If this channel is not connected
* and a connection operation has not been initiated.
*/
- public abstract boolean finishConnect ();
+ public abstract boolean finishConnect () throws IOException;
/**
* Tells whether or not the channel's socket is connected.
@@ -197,7 +198,8 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public abstract long read (ByteBuffer[] dsts, int offset, int length);
+ public abstract long read (ByteBuffer[] dsts, int offset, int length)
+ throws IOException;
/**
* Retrieves the channel's socket.
@@ -210,7 +212,7 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public abstract int write (ByteBuffer src);
+ public abstract int write (ByteBuffer src) throws IOException;
/**
* Writes data to the channel.
@@ -218,5 +220,6 @@ abstract public class SocketChannel extends AbstractSelectableChannel
* @exception IOException If an error occurs
* @exception NotYetConnectedException If this channel is not yet connected.
*/
- public abstract long write (ByteBuffer[] srcs, int offset, int length);
+ public abstract long write (ByteBuffer[] srcs, int offset, int length)
+ throws IOException;
}
diff --git a/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java b/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java
index 855087b5f07..dd4177a8a01 100644
--- a/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java
+++ b/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package java.nio.channels.spi;
import java.io.IOException;
+import java.nio.channels.AsynchronousCloseException;
import java.nio.channels.Channel;
import java.nio.channels.InterruptibleChannel;
@@ -84,6 +85,7 @@ public abstract class AbstractInterruptibleChannel
* I/O operation was interrupted.
*/
protected final void end (boolean completed)
+ throws AsynchronousCloseException
{
}
diff --git a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
index da03693d2cc..b13bb4af24f 100644
--- a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
+++ b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
@@ -75,6 +75,7 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
* Adjusts this channel's blocking mode.
*/
public final SelectableChannel configureBlocking (boolean block)
+ throws IOException
{
synchronized (LOCK)
{
@@ -90,7 +91,7 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
*
* @exception IOException If an error occurs
*/
- protected final void implCloseChannel ()
+ protected final void implCloseChannel () throws IOException
{
implCloseSelectableChannel ();
}
@@ -98,12 +99,13 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
/**
* Closes this selectable channel.
*/
- protected abstract void implCloseSelectableChannel ();
+ protected abstract void implCloseSelectableChannel () throws IOException;
/**
* Adjusts this channel's blocking mode.
*/
- protected abstract void implConfigureBlocking (boolean block);
+ protected abstract void implConfigureBlocking (boolean block)
+ throws IOException;
/**
* Tells whether or not every I/O operation on this channel will block
diff --git a/libjava/java/nio/channels/spi/SelectorProvider.java b/libjava/java/nio/channels/spi/SelectorProvider.java
index 06017f76edb..1d4ccfa5339 100644
--- a/libjava/java/nio/channels/spi/SelectorProvider.java
+++ b/libjava/java/nio/channels/spi/SelectorProvider.java
@@ -37,7 +37,8 @@ exception statement from your version. */
package java.nio.channels.spi;
-/* import gnu.java.nio.channels.SelectorProviderImpl; */
+import gnu.java.nio.SelectorProviderImpl;
+import java.io.IOException;
import java.nio.channels.DatagramChannel;
import java.nio.channels.Pipe;
import java.nio.channels.ServerSocketChannel;
@@ -67,27 +68,28 @@ public abstract class SelectorProvider
/**
* Opens a datagram channel.
*/
- public abstract DatagramChannel openDatagramChannel ();
+ public abstract DatagramChannel openDatagramChannel () throws IOException;
/**
* Opens a pipe.
*/
- public abstract Pipe openPipe ();
+ public abstract Pipe openPipe () throws IOException;
/**
* Opens a selector.
*/
- public abstract AbstractSelector openSelector ();
+ public abstract AbstractSelector openSelector () throws IOException;
/**
* Opens a server socket channel.
*/
- public abstract ServerSocketChannel openServerSocketChannel ();
+ public abstract ServerSocketChannel openServerSocketChannel ()
+ throws IOException;
/**
* Opens a socket channel.
*/
- public abstract SocketChannel openSocketChannel ();
+ public abstract SocketChannel openSocketChannel () throws IOException;
/**
* Returns the system-wide default selector provider for this invocation
@@ -95,8 +97,10 @@ public abstract class SelectorProvider
*/
public static SelectorProvider provider ()
{
-/* if (pr == null) */
-/* pr = new SelectorProviderImpl (); */
+ if (pr == null)
+ {
+ pr = new SelectorProviderImpl ();
+ }
return pr;
}
diff --git a/libjava/java/nio/charset/Charset.java b/libjava/java/nio/charset/Charset.java
index cc60c99b9b6..889267f302f 100644
--- a/libjava/java/nio/charset/Charset.java
+++ b/libjava/java/nio/charset/Charset.java
@@ -187,9 +187,10 @@ public abstract class Charset implements Comparable
return canonicalName;
}
- public final boolean isRegistered (String name)
+ public final boolean isRegistered ()
{
- return !name.startsWith ("x-") && !name.startsWith ("X-");
+ return (!canonicalName.startsWith ("x-")
+ && !canonicalName.startsWith ("X-"));
}
public abstract boolean contains (Charset cs);
diff --git a/libjava/java/nio/charset/CharsetEncoder.java b/libjava/java/nio/charset/CharsetEncoder.java
index dd434a79752..dc1fa99cd93 100644
--- a/libjava/java/nio/charset/CharsetEncoder.java
+++ b/libjava/java/nio/charset/CharsetEncoder.java
@@ -319,6 +319,11 @@ public abstract class CharsetEncoder
return this;
}
+ public CodingErrorAction unmappableCharacterAction ()
+ {
+ return unmappableCharacterAction;
+ }
+
public final CharsetEncoder onUnmappableCharacter
(CodingErrorAction newAction)
{
diff --git a/libjava/java/nio/charset/IllegalCharsetNameException.java b/libjava/java/nio/charset/IllegalCharsetNameException.java
index 762eb687fbf..f46e63aa14f 100644
--- a/libjava/java/nio/charset/IllegalCharsetNameException.java
+++ b/libjava/java/nio/charset/IllegalCharsetNameException.java
@@ -38,16 +38,25 @@ exception statement from your version. */
package java.nio.charset;
/**
+ * @author Michael Koch
* @since 1.4
*/
public class IllegalCharsetNameException extends IllegalArgumentException
{
/**
+ * Compatible with JDK 1.4+
+ */
+ private static final long serialVersionUID = 1457525358470002989L;
+
+ String charsetName;
+
+ /**
* Creates the exception
*/
public IllegalCharsetNameException (String charsetName)
{
- super (charsetName);
+ super ();
+ this.charsetName = charsetName;
}
/**
@@ -55,6 +64,6 @@ public class IllegalCharsetNameException extends IllegalArgumentException
*/
public String getCharsetName ()
{
- return getMessage ();
+ return charsetName;
}
}
diff --git a/libjava/java/nio/charset/UnsupportedCharsetException.java b/libjava/java/nio/charset/UnsupportedCharsetException.java
index 13aaa520524..beb0be96df3 100644
--- a/libjava/java/nio/charset/UnsupportedCharsetException.java
+++ b/libjava/java/nio/charset/UnsupportedCharsetException.java
@@ -38,16 +38,25 @@ exception statement from your version. */
package java.nio.charset;
/**
+ * @author Michael Koch
* @since 1.4
*/
public class UnsupportedCharsetException extends IllegalArgumentException
{
/**
+ * Compatible with JDK 1.4+
+ */
+ private static final long serialVersionUID = 1490765524727386367L;
+
+ String charsetName;
+
+ /**
* Creates the exception
*/
public UnsupportedCharsetException (String charsetName)
{
- super (charsetName);
+ super ();
+ this.charsetName = charsetName;
}
/**
@@ -55,6 +64,6 @@ public class UnsupportedCharsetException extends IllegalArgumentException
*/
public String getCharsetName ()
{
- return getMessage ();
+ return charsetName;
}
}
diff --git a/libjava/java/rmi/server/RMIClassLoader.java b/libjava/java/rmi/server/RMIClassLoader.java
index 1b00970e441..057ca0fd402 100644
--- a/libjava/java/rmi/server/RMIClassLoader.java
+++ b/libjava/java/rmi/server/RMIClassLoader.java
@@ -172,7 +172,7 @@ public class RMIClassLoader
}
}
- return loader != null ? loader.loadClass(name) : Class.forName(name);
+ return loader.loadClass(name);
}
public static String getClassAnnotation(Class cl)
diff --git a/libjava/java/rmi/server/RMIClassLoaderSpi.java b/libjava/java/rmi/server/RMIClassLoaderSpi.java
new file mode 100644
index 00000000000..2dbb3849c27
--- /dev/null
+++ b/libjava/java/rmi/server/RMIClassLoaderSpi.java
@@ -0,0 +1,64 @@
+/* RMIClassLoaderSpi.java
+ Copyright (c) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath 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 Classpath 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 Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.rmi.server;
+
+import java.net.MalformedURLException;
+
+/**
+ * @author Michael Koch
+ * @since 1.4
+ */
+public abstract class RMIClassLoaderSpi
+{
+ public RMIClassLoaderSpi()
+ {
+ }
+
+ public abstract Class loadClass (String codeBase, String name,
+ ClassLoader defaultLoader)
+ throws MalformedURLException, ClassNotFoundException;
+
+ public abstract Class loadProxyClass (String codeBase, String[] interfaces,
+ ClassLoader defaultLoader)
+ throws MalformedURLException, ClassNotFoundException;
+
+ public abstract ClassLoader getClassLoader (String codebase)
+ throws MalformedURLException;
+
+ public abstract String getClassAnnotation (Class cl);
+}
diff --git a/libjava/java/rmi/server/UnicastRemoteObject.java b/libjava/java/rmi/server/UnicastRemoteObject.java
index aefe9701ecd..4e2f06ae64b 100644
--- a/libjava/java/rmi/server/UnicastRemoteObject.java
+++ b/libjava/java/rmi/server/UnicastRemoteObject.java
@@ -1,5 +1,5 @@
/*
- Copyright (c) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (c) 1996, 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -113,7 +113,7 @@ public static RemoteStub exportObject(Remote obj) throws RemoteException {
}
public static boolean unexportObject(Remote obj, boolean force)
- throws RemoteException, NoSuchObjectException
+ throws NoSuchObjectException
{
if (obj instanceof RemoteObject)
{
diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java
index a0b7f95f397..d9ac153da2b 100644
--- a/libjava/java/security/SecureRandom.java
+++ b/libjava/java/security/SecureRandom.java
@@ -1,5 +1,5 @@
/* SecureRandom.java --- Secure Random class implmentation
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -36,6 +36,7 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.security;
+
import java.io.Serializable;
import java.util.Random;
import java.util.Enumeration;
@@ -358,9 +359,10 @@ public class SecureRandom extends Random
int ret = 0;
for (int i = 0; i < tmp.length; i++)
- ret |= tmp[i] << (8 * i);
+ ret |= (tmp[i] & 0xFF) << (8 * i);
- return ret;
+ long mask = (1L << numBits) - 1;
+ return (int) (ret & mask);
}
/**
diff --git a/libjava/java/security/Security.java b/libjava/java/security/Security.java
index bf7a993ad47..f336c55470d 100644
--- a/libjava/java/security/Security.java
+++ b/libjava/java/security/Security.java
@@ -1,5 +1,5 @@
/* Security.java --- Java base security class implmentation
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,9 +37,10 @@ exception statement from your version. */
package java.security;
import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
+import java.net.URL;
import java.security.Provider;
import java.util.Vector;
import java.util.Enumeration;
@@ -55,13 +56,30 @@ import java.util.Properties;
public final class Security extends Object
{
private static Vector providers = new Vector();
- private static Properties secprops;
+ private static Properties secprops = new Properties();
static
{
- loadProviders(System.getProperty("java.home"),
- System.getProperty("java.vm.name"));
- loadProviders(System.getProperty("gnu.classpath.home"), "classpath");
+ String base = System.getProperty("gnu.classpath.home.url");
+ String vendor = System.getProperty("gnu.classpath.vm.shortname");
+
+ // Try VM specific security file
+ boolean loaded = loadProviders(base, vendor);
+
+ // Append classpath standard provider if possible
+ if (!loadProviders(base, "classpath") && !loaded && providers.size() == 0)
+ {
+ // No providers found and both security files failed to load properly.
+ System.err.println
+ ("WARNING: could not properly read security provider files:");
+ System.err.println
+ (" " + base + "/security/" + vendor + ".security");
+ System.err.println
+ (" " + base + "/security/" + "classpath" + ".security");
+ System.err.println
+ (" Falling back to standard GNU security provider");
+ providers.addElement(new gnu.java.security.provider.Gnu());
+ }
}
// This class can't be instantiated.
@@ -69,21 +87,21 @@ public final class Security extends Object
{
}
- private static void loadProviders(String dir, String vendor)
+ /**
+ * Tries to load the vender specific security providers from the given
+ * base URL. Returns true if the resource could be read and completely
+ * parsed successfully, false otherwise.
+ */
+ private static boolean loadProviders(String baseUrl, String vendor)
{
- if (dir == null || vendor == null)
- return;
-
- String separator = System.getProperty("file.separator");
- String secfilestr = (dir +
- separator + "lib" +
- separator + "security" +
- separator + vendor + ".security");
+ if (baseUrl == null || vendor == null)
+ return false;
+ boolean result = true;
+ String secfilestr = baseUrl + "/security/" + vendor + ".security";
try
{
- FileInputStream fin = new FileInputStream(secfilestr);
- secprops = new Properties();
+ InputStream fin = new URL(secfilestr).openStream();
secprops.load(fin);
int i = 1;
@@ -111,19 +129,20 @@ public final class Security extends Object
exception = x;
}
if (exception != null)
- System.err.println ("Error loading security provider " + name
- + ": " + exception);
+ {
+ System.err.println ("WARNING: Error loading security provider "
+ + name + ": " + exception);
+ result = false;
+ }
i++;
}
}
- catch (FileNotFoundException ignored)
- {
- // Actually we probibly shouldn't ignore these, once the security
- // properties file is actually installed somewhere.
- }
catch (IOException ignored)
{
+ result = false;
}
+
+ return result;
}
/**
diff --git a/libjava/java/sql/Timestamp.java b/libjava/java/sql/Timestamp.java
index c42ff3ca9e9..0f8b44c43a6 100644
--- a/libjava/java/sql/Timestamp.java
+++ b/libjava/java/sql/Timestamp.java
@@ -1,5 +1,5 @@
/* Time.java -- Wrapper around java.util.Date
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import java.text.SimpleDateFormat;
*/
public class Timestamp extends java.util.Date
{
- static final long serialVersionUID = 3581463369166924961L;
+ static final long serialVersionUID = 2745179027874758501L;
/**
* Used for parsing and formatting this date.
@@ -237,19 +237,37 @@ public class Timestamp extends java.util.Date
}
/**
+ * Compare two Timestamp
+ * @param when the other Timestamp.
+ * @return 0, if the date represented
+ * by obj is exactly the same as the time represented by this
+ * object, a negative if this Timestamp is before the other Timestamp, and
+ * a positive value otherwise.
* @since 1.2
*/
- /*
public int compareTo(Timestamp ts)
{
-
- }*/
-
+ int s = super.compareTo((java.util.Date) ts);
+ if (s != 0)
+ return s;
+ // If Date components were equal, then we check the nanoseconds.
+ return nanos - ts.nanos;
+ }
+
/**
+ * Compares this Timestamp to another. This behaves like
+ * <code>compareTo(Timestamp)</code>, but it may throw a
+ * <code>ClassCastException</code>
+ * @param obj the other Timestamp.
+ * @return 0, if the Timestamp represented
+ * by obj is exactly the same as the time represented by this
+ * object, a negative if this Timestamp is before the other Timestamp, and
+ * a positive value otherwise.
+ * @exception ClassCastException if obj is not of type Timestamp.
* @since 1.2
- *//*
+ */
public int compareTo(Object obj)
{
return compareTo((Timestamp) obj);
- }*/
+ }
}
diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java
index adad25055ac..52ca144cb70 100644
--- a/libjava/java/util/Properties.java
+++ b/libjava/java/util/Properties.java
@@ -1,5 +1,5 @@
/* Properties.java -- a set of persistent properties
- Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -188,13 +188,17 @@ label = Name:\\u0020</pre>
{
char c = 0;
int pos = 0;
+ // If empty line or begins with a comment character, skip this line.
+ if (line.length() == 0
+ || line.charAt(0) == '#' || line.charAt(0) == '!')
+ continue;
+
while (pos < line.length()
&& Character.isWhitespace(c = line.charAt(pos)))
pos++;
- // If line is empty or begins with a comment character,
- // skip this line.
- if (pos == line.length() || c == '#' || c == '!')
+ // If line is empty skip this line.
+ if (pos == line.length())
continue;
// The characters up to the next Whitespace, ':', or '='
@@ -271,6 +275,13 @@ label = Name:\\u0020</pre>
{
// The line continues on the next line.
line = reader.readLine();
+
+ // We might have seen a backslash at the end of
+ // the file. The JDK ignores the backslash in
+ // this case, so we follow for compatibility.
+ if (line == null)
+ break;
+
pos = 0;
while (pos < line.length()
&& Character.isWhitespace(c = line.charAt(pos)))
@@ -370,9 +381,21 @@ label = Name:\\u0020</pre>
= new PrintWriter(new OutputStreamWriter(out, "ISO-8859-1"));
if (header != null)
writer.println("#" + header);
- writer.println("#" + new Date());
- list(writer);
- writer.flush();
+ writer.println ("#" + Calendar.getInstance ().getTime ());
+
+ Iterator iter = entrySet ().iterator ();
+ int i = size ();
+ StringBuffer s = new StringBuffer (); // Reuse the same buffer.
+ while (--i >= 0)
+ {
+ Map.Entry entry = (Map.Entry) iter.next ();
+ formatForOutput ((String) entry.getKey (), s, true);
+ s.append ('=');
+ formatForOutput ((String) entry.getValue (), s, false);
+ writer.println (s);
+ }
+
+ writer.flush ();
}
/**
@@ -446,54 +469,50 @@ label = Name:\\u0020</pre>
}
/**
- * Writes the key/value pairs to the given print stream. They are
- * written in the way described in the method store. This does not visit
- * the keys in the default properties.
+ * Prints the key/value pairs to the given print stream. This is
+ * mainly useful for debugging purposes.
*
- * @param out the stream, where the key/value pairs are written to
- * @throws ClassCastException if this property contains any key or
+ * @param out the print stream, where the key/value pairs are written to
+ * @throws ClassCastException if this property contains a key or a
* value that isn't a string
- * @see #store(OutputStream, String)
+ * @see #list(PrintWriter)
*/
public void list(PrintStream out)
{
- Iterator iter = entrySet().iterator();
- int i = size();
- StringBuffer s = new StringBuffer(); // Reuse the same buffer.
- while (--i >= 0)
- {
- Map.Entry entry = (Map.Entry) iter.next();
- formatForOutput((String) entry.getKey(), s, true);
- s.append('=');
- formatForOutput((String) entry.getValue(), s, false);
- out.println(s);
- }
+ PrintWriter writer = new PrintWriter (out);
+ list (writer);
}
/**
- * Writes the key/value pairs to the given print writer. They are
- * written in the way, described in the method store.
+ * Prints the key/value pairs to the given print writer. This is
+ * mainly useful for debugging purposes.
*
- * @param out the writer, where the key/value pairs are written to
- * @throws ClassCastException if this property contains any key or
+ * @param out the print writer where the key/value pairs are written to
+ * @throws ClassCastException if this property contains a key or a
* value that isn't a string
- * @see #store(OutputStream, String)
* @see #list(PrintStream)
* @since 1.1
*/
public void list(PrintWriter out)
{
- Iterator iter = entrySet().iterator();
- int i = size();
- StringBuffer s = new StringBuffer(); // Reuse the same buffer.
+ out.println ("-- listing properties --");
+
+ Iterator iter = entrySet ().iterator ();
+ int i = size ();
while (--i >= 0)
{
- Map.Entry entry = (Map.Entry) iter.next();
- formatForOutput((String) entry.getKey(), s, true);
- s.append('=');
- formatForOutput((String) entry.getValue(), s, false);
- out.println(s);
+ Map.Entry entry = (Map.Entry) iter.next ();
+ out.print ((String) entry.getKey () + "=");
+
+ // JDK 1.3/1.4 restrict the printed value, but not the key,
+ // to 40 characters, including the truncating ellipsis.
+ String s = (String ) entry.getValue ();
+ if (s != null && s.length () > 40)
+ out.println (s.substring (0, 37) + "...");
+ else
+ out.println (s);
}
+ out.flush ();
}
/**
@@ -540,6 +559,7 @@ label = Name:\\u0020</pre>
case '=':
case ':':
buffer.append('\\').append(c);
+ break;
default:
if (c < ' ' || c > '~')
{
diff --git a/libjava/java/util/TreeMap.java b/libjava/java/util/TreeMap.java
index dfa9bc63881..e0cff28e02c 100644
--- a/libjava/java/util/TreeMap.java
+++ b/libjava/java/util/TreeMap.java
@@ -865,7 +865,7 @@ public class TreeMap extends AbstractMap
int rowsize;
// Fill each row that is completely full of nodes.
- for (rowsize = 2; rowsize + rowsize < count; rowsize <<= 1)
+ for (rowsize = 2; rowsize + rowsize <= count; rowsize <<= 1)
{
Node parent = row;
Node last = null;
@@ -1468,10 +1468,10 @@ public class TreeMap extends AbstractMap
*/
public void remove()
{
- if (knownMod != modCount)
- throw new ConcurrentModificationException();
if (last == null)
throw new IllegalStateException();
+ if (knownMod != modCount)
+ throw new ConcurrentModificationException();
removeNode(last);
last = null;
diff --git a/libjava/java/util/jar/JarFile.java b/libjava/java/util/jar/JarFile.java
index d6fd9846b6e..394b51af6d0 100644
--- a/libjava/java/util/jar/JarFile.java
+++ b/libjava/java/util/jar/JarFile.java
@@ -1,5 +1,5 @@
/* JarFile.java - Representation of a jar file
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -71,10 +71,10 @@ public class JarFile extends ZipFile
*/
private Manifest manifest;
- /** Wether to verify the manifest and all entries. */
+ /** Whether to verify the manifest and all entries. */
private boolean verify;
- /** Wether the has already been loaded. */
+ /** Whether the has already been loaded. */
private boolean manifestRead = false;
// Constructors
@@ -109,6 +109,11 @@ public class JarFile extends ZipFile
FileNotFoundException, IOException
{
super(fileName);
+ if (verify)
+ {
+ manifest = readManifest();
+ verify();
+ }
}
/**
@@ -141,6 +146,11 @@ public class JarFile extends ZipFile
IOException
{
super(file);
+ if (verify)
+ {
+ manifest = readManifest();
+ verify();
+ }
}
/**
@@ -165,6 +175,11 @@ public class JarFile extends ZipFile
FileNotFoundException, IOException, IllegalArgumentException
{
super(file, mode);
+ if (verify)
+ {
+ manifest = readManifest();
+ verify();
+ }
}
// Methods
@@ -196,15 +211,18 @@ public class JarFile extends ZipFile
if (manEntry != null)
{
InputStream in = super.getInputStream(manEntry);
+ manifestRead = true;
return new Manifest(in);
}
else
{
+ manifestRead = true;
return null;
}
}
catch (IOException ioe)
{
+ manifestRead = true;
return null;
}
}
diff --git a/libjava/java/util/natResourceBundle.cc b/libjava/java/util/natResourceBundle.cc
index 21a9565c996..35e90ee23d3 100644
--- a/libjava/java/util/natResourceBundle.cc
+++ b/libjava/java/util/natResourceBundle.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation
+/* Copyright (C) 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -16,17 +16,27 @@ details. */
#include <java/lang/SecurityManager.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/Class.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <gnu/gcj/runtime/StackTrace.h>
java::lang::ClassLoader *
java::util::ResourceBundle::getCallingClassLoader ()
{
gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(6);
- for (int i = 3; i < 6; ++i)
+ try
+ {
+ /* Frame 0 is this method, frame 1 is getBundle, so starting at
+ frame 2 we might see the user's class. FIXME: should account
+ for reflection, JNI, etc, here. */
+ for (int i = 2; ; ++i)
+ {
+ jclass klass = t->classAt(i);
+ if (klass != NULL)
+ return klass->getClassLoaderInternal();
+ }
+ }
+ catch (::java::lang::ArrayIndexOutOfBoundsException *e)
{
- jclass klass = t->classAt(i);
- if (klass != NULL)
- return klass->getClassLoaderInternal();
}
return NULL;
}
diff --git a/libjava/java/util/natTimeZone.cc b/libjava/java/util/natTimeZone.cc
index ea59293513d..cb564a97591 100644
--- a/libjava/java/util/natTimeZone.cc
+++ b/libjava/java/util/natTimeZone.cc
@@ -1,6 +1,6 @@
// natTimeZone.cc -- Native side of TimeZone class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -9,12 +9,11 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
+#include <platform.h>
#include <gcj/cni.h>
#include <jvm.h>
-#include "platform.h"
-
#include <java/util/TimeZone.h>
#include <java/lang/Character.h>
#include <java/lang/Integer.h>
diff --git a/libjava/java/util/zip/InflaterInputStream.java b/libjava/java/util/zip/InflaterInputStream.java
index 5aac73d7e5a..b04534977f1 100644
--- a/libjava/java/util/zip/InflaterInputStream.java
+++ b/libjava/java/util/zip/InflaterInputStream.java
@@ -1,5 +1,5 @@
/* InflaterInputStream.java - Input stream filter for decompressing
- Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -90,6 +90,8 @@ public class InflaterInputStream extends FilterInputStream
{
if (inf == null)
throw new IOException ("stream closed");
+ if (len == 0)
+ return 0;
if (inf.finished())
return -1;
diff --git a/libjava/java/util/zip/ZipEntry.java b/libjava/java/util/zip/ZipEntry.java
index c9f1b1d7d44..5284d793f6c 100644
--- a/libjava/java/util/zip/ZipEntry.java
+++ b/libjava/java/util/zip/ZipEntry.java
@@ -84,11 +84,15 @@ public class ZipEntry implements ZipConstants, Cloneable
* Creates a zip entry with the given name.
* @param name the name. May include directory components separated
* by '/'.
+ *
+ * @exception NullPointerException when name is null.
+ * @exception IllegalArgumentException when name is bigger then 65535 chars.
*/
public ZipEntry(String name)
{
- if (name == null)
- throw new NullPointerException();
+ int length = name.length();
+ if (length > 65535)
+ throw new IllegalArgumentException("name length is " + length);
this.name = name;
}
@@ -365,7 +369,7 @@ public class ZipEntry implements ZipConstants, Cloneable
*/
public void setComment(String comment)
{
- if (comment.length() > 0xffff)
+ if (comment != null && comment.length() > 0xffff)
throw new IllegalArgumentException();
this.comment = comment;
}
diff --git a/libjava/java/util/zip/ZipFile.java b/libjava/java/util/zip/ZipFile.java
index eb79d03e594..8f7ef6f8d6f 100644
--- a/libjava/java/util/zip/ZipFile.java
+++ b/libjava/java/util/zip/ZipFile.java
@@ -1,5 +1,5 @@
/* java.util.zip.ZipFile
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.util.zip;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInput;
import java.io.DataInputStream;
@@ -46,7 +47,8 @@ import java.io.IOException;
import java.io.EOFException;
import java.io.RandomAccessFile;
import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.NoSuchElementException;
/**
@@ -58,6 +60,7 @@ import java.util.NoSuchElementException;
* entries in different threads.
*
* @author Jochen Hoenicke
+ * @author Artur Biesiadowski
*/
public class ZipFile implements ZipConstants
{
@@ -79,7 +82,7 @@ public class ZipFile implements ZipConstants
private final RandomAccessFile raf;
// The entries of this zip file when initialized and not yet closed.
- private Hashtable entries;
+ private HashMap entries;
private boolean closed = false;
@@ -137,33 +140,74 @@ public class ZipFile implements ZipConstants
}
/**
- * Read an unsigned short in little endian byte order.
+ * Read an unsigned short in little endian byte order from the given
+ * DataInput stream using the given byte buffer.
+ *
+ * @param di DataInput stream to read from.
+ * @param b the byte buffer to read in (must be at least 2 bytes long).
+ * @return The value read.
+ *
* @exception IOException if a i/o error occured.
* @exception EOFException if the file ends prematurely
*/
- private final int readLeShort(DataInput di) throws IOException
+ private final int readLeShort(DataInput di, byte[] b) throws IOException
{
- byte[] b = new byte[2];
- di.readFully(b);
+ di.readFully(b, 0, 2);
return (b[0] & 0xff) | (b[1] & 0xff) << 8;
}
/**
- * Read an int in little endian byte order.
+ * Read an int in little endian byte order from the given
+ * DataInput stream using the given byte buffer.
+ *
+ * @param di DataInput stream to read from.
+ * @param b the byte buffer to read in (must be at least 4 bytes long).
+ * @return The value read.
+ *
* @exception IOException if a i/o error occured.
* @exception EOFException if the file ends prematurely
*/
- private final int readLeInt(DataInput di) throws IOException
+ private final int readLeInt(DataInput di, byte[] b) throws IOException
{
- byte[] b = new byte[4];
- di.readFully(b);
+ di.readFully(b, 0, 4);
return ((b[0] & 0xff) | (b[1] & 0xff) << 8)
| ((b[2] & 0xff) | (b[3] & 0xff) << 8) << 16;
}
+
+ /**
+ * Read an unsigned short in little endian byte order from the given
+ * byte buffer at the given offset.
+ *
+ * @param b the byte array to read from.
+ * @param off the offset to read from.
+ * @return The value read.
+ */
+ private final int readLeShort(byte[] b, int off)
+ {
+ return (b[off] & 0xff) | (b[off+1] & 0xff) << 8;
+ }
+
+ /**
+ * Read an int in little endian byte order from the given
+ * byte buffer at the given offset.
+ *
+ * @param b the byte array to read from.
+ * @param off the offset to read from.
+ * @return The value read.
+ */
+ private final int readLeInt(byte[] b, int off)
+ {
+ return ((b[off] & 0xff) | (b[off+1] & 0xff) << 8)
+ | ((b[off+2] & 0xff) | (b[off+3] & 0xff) << 8) << 16;
+ }
+
+
/**
* Read the central directory of a zip file and fill the entries
- * array. This is called exactly once when first needed.
+ * array. This is called exactly once when first needed. It is called
+ * while holding the lock on <code>raf</code>.
+ *
* @exception IOException if a i/o error occured.
* @exception ZipException if the central directory is malformed
*/
@@ -175,6 +219,8 @@ public class ZipFile implements ZipConstants
* file isn't a zip file.
*/
long pos = raf.length() - ENDHDR;
+ byte[] ebs = new byte[CENHDR];
+
do
{
if (pos < 0)
@@ -182,45 +228,42 @@ public class ZipFile implements ZipConstants
("central directory not found, probably not a zip file: " + name);
raf.seek(pos--);
}
- while (readLeInt(raf) != ENDSIG);
+ while (readLeInt(raf, ebs) != ENDSIG);
+
if (raf.skipBytes(ENDTOT - ENDNRD) != ENDTOT - ENDNRD)
throw new EOFException(name);
- int count = readLeShort(raf);
+ int count = readLeShort(raf, ebs);
if (raf.skipBytes(ENDOFF - ENDSIZ) != ENDOFF - ENDSIZ)
throw new EOFException(name);
- int centralOffset = readLeInt(raf);
+ int centralOffset = readLeInt(raf, ebs);
- entries = new Hashtable(count);
+ entries = new HashMap(count+count/2);
raf.seek(centralOffset);
- byte[] ebs = new byte[24];
- ByteArrayInputStream ebais = new ByteArrayInputStream(ebs);
- DataInputStream edip = new DataInputStream(ebais);
+
+ byte[] buffer = new byte[16];
for (int i = 0; i < count; i++)
{
- if (readLeInt(raf) != CENSIG)
+ raf.readFully(ebs);
+ if (readLeInt(ebs, 0) != CENSIG)
throw new ZipException("Wrong Central Directory signature: " + name);
- if (raf.skipBytes(CENHOW - CENVEM) != CENHOW - CENVEM)
- throw new EOFException(name);
-
- raf.readFully(ebs);
- ebais.reset();
- int method = readLeShort(edip);
- int dostime = readLeInt(edip);
- int crc = readLeInt(edip);
- int csize = readLeInt(edip);
- int size = readLeInt(edip);
- int nameLen = readLeShort(edip);
- int extraLen = readLeShort(edip);
- int commentLen = readLeShort(edip);
-
- if (raf.skipBytes(CENOFF - CENDSK) != CENOFF - CENDSK)
- throw new EOFException(name);
- int offset = readLeInt(raf);
-
- byte[] buffer = new byte[Math.max(nameLen, commentLen)];
+
+ int method = readLeShort(ebs, CENHOW);
+ int dostime = readLeInt(ebs, CENTIM);
+ int crc = readLeInt(ebs, CENCRC);
+ int csize = readLeInt(ebs, CENSIZ);
+ int size = readLeInt(ebs, CENLEN);
+ int nameLen = readLeShort(ebs, CENNAM);
+ int extraLen = readLeShort(ebs, CENEXT);
+ int commentLen = readLeShort(ebs, CENCOM);
+
+ int offset = readLeInt(ebs, CENOFF);
+
+ int needBuffer = Math.max(nameLen, commentLen);
+ if (buffer.length < needBuffer)
+ buffer = new byte[needBuffer];
raf.readFully(buffer, 0, nameLen);
- String name = new String(buffer, 0, nameLen);
+ String name = new String(buffer, 0, 0, nameLen);
ZipEntry entry = new ZipEntry(name);
entry.setMethod(method);
@@ -248,6 +291,7 @@ public class ZipFile implements ZipConstants
* Closes the ZipFile. This also closes all input streams given by
* this class. After this is called, no further method should be
* called.
+ *
* @exception IOException if a i/o error occured.
*/
public void close() throws IOException
@@ -261,13 +305,22 @@ public class ZipFile implements ZipConstants
}
/**
+ * Calls the <code>close()</code> method when this ZipFile has not yet
+ * been explicitly closed.
+ */
+ protected void finalize() throws IOException
+ {
+ if (!closed) close();
+ }
+
+ /**
* Returns an enumeration of all Zip entries in this Zip file.
*/
public Enumeration entries()
{
try
{
- return new ZipEntryEnumeration(getEntries().elements());
+ return new ZipEntryEnumeration(getEntries().values().iterator());
}
catch (IOException ioe)
{
@@ -281,7 +334,7 @@ public class ZipFile implements ZipConstants
* @exception IllegalStateException when the ZipFile has already been closed.
* @exception IOEexception when the entries could not be read.
*/
- private Hashtable getEntries() throws IOException
+ private HashMap getEntries() throws IOException
{
synchronized(raf)
{
@@ -297,15 +350,16 @@ public class ZipFile implements ZipConstants
/**
* Searches for a zip entry in this archive with the given name.
+ *
* @param the name. May contain directory components separated by
* slashes ('/').
* @return the zip entry, or null if no entry with that name exists.
- * @see #entries */
+ */
public ZipEntry getEntry(String name)
{
try
{
- Hashtable entries = getEntries();
+ HashMap entries = getEntries();
ZipEntry entry = (ZipEntry) entries.get(name);
return entry != null ? (ZipEntry) entry.clone() : null;
}
@@ -315,10 +369,17 @@ public class ZipFile implements ZipConstants
}
}
+
+ //access should be protected by synchronized(raf)
+ private byte[] locBuf = new byte[LOCHDR];
+
/**
* Checks, if the local header of the entry at index i matches the
* central directory, and returns the offset to the data.
+ *
+ * @param entry to check.
* @return the start offset of the (compressed) data.
+ *
* @exception IOException if a i/o error occured.
* @exception ZipException if the local header doesn't match the
* central directory header
@@ -328,24 +389,18 @@ public class ZipFile implements ZipConstants
synchronized (raf)
{
raf.seek(entry.offset);
- if (readLeInt(raf) != LOCSIG)
+ raf.readFully(locBuf);
+
+ if (readLeInt(locBuf, 0) != LOCSIG)
throw new ZipException("Wrong Local header signature: " + name);
- /* skip version and flags */
- if (raf.skipBytes(LOCHOW - LOCVER) != LOCHOW - LOCVER)
- throw new EOFException(name);
-
- if (entry.getMethod() != readLeShort(raf))
+ if (entry.getMethod() != readLeShort(locBuf, LOCHOW))
throw new ZipException("Compression method mismatch: " + name);
- /* Skip time, crc, size and csize */
- if (raf.skipBytes(LOCNAM - LOCTIM) != LOCNAM - LOCTIM)
- throw new EOFException(name);
-
- if (entry.getName().length() != readLeShort(raf))
+ if (entry.getName().length() != readLeShort(locBuf, LOCNAM))
throw new ZipException("file name length mismatch: " + name);
- int extraLen = entry.getName().length() + readLeShort(raf);
+ int extraLen = entry.getName().length() + readLeShort(locBuf, LOCEXT);
return entry.offset + LOCHDR + extraLen;
}
}
@@ -354,13 +409,16 @@ public class ZipFile implements ZipConstants
* Creates an input stream reading the given zip entry as
* uncompressed data. Normally zip entry should be an entry
* returned by getEntry() or entries().
+ *
+ * @param entry the entry to create an InputStream for.
* @return the input stream.
+ *
* @exception IOException if a i/o error occured.
* @exception ZipException if the Zip archive is malformed.
*/
public InputStream getInputStream(ZipEntry entry) throws IOException
{
- Hashtable entries = getEntries();
+ HashMap entries = getEntries();
String name = entry.getName();
ZipEntry zipEntry = (ZipEntry) entries.get(name);
if (zipEntry == null)
@@ -368,8 +426,8 @@ public class ZipFile implements ZipConstants
long start = checkLocalHeader(zipEntry);
int method = zipEntry.getMethod();
- InputStream is = new PartialInputStream
- (raf, start, zipEntry.getCompressedSize());
+ InputStream is = new BufferedInputStream(new PartialInputStream
+ (raf, start, zipEntry.getCompressedSize()));
switch (method)
{
case ZipOutputStream.STORED:
@@ -406,16 +464,16 @@ public class ZipFile implements ZipConstants
private static class ZipEntryEnumeration implements Enumeration
{
- private final Enumeration elements;
+ private final Iterator elements;
- public ZipEntryEnumeration(Enumeration elements)
+ public ZipEntryEnumeration(Iterator elements)
{
this.elements = elements;
}
public boolean hasMoreElements()
{
- return elements.hasMoreElements();
+ return elements.hasNext();
}
public Object nextElement()
@@ -423,13 +481,13 @@ public class ZipFile implements ZipConstants
/* We return a clone, just to be safe that the user doesn't
* change the entry.
*/
- return ((ZipEntry)elements.nextElement()).clone();
+ return ((ZipEntry)elements.next()).clone();
}
}
private static class PartialInputStream extends InputStream
{
- RandomAccessFile raf;
+ private final RandomAccessFile raf;
long filepos, end;
public PartialInputStream(RandomAccessFile raf, long start, long len)
diff --git a/libjava/java/util/zip/ZipInputStream.java b/libjava/java/util/zip/ZipInputStream.java
index c4905978d74..2fba9f556dc 100644
--- a/libjava/java/util/zip/ZipInputStream.java
+++ b/libjava/java/util/zip/ZipInputStream.java
@@ -1,5 +1,5 @@
/* java.util.zip.ZipInputStream
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -286,6 +286,8 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
*/
public int read(byte[] b, int off, int len) throws IOException
{
+ if (len == 0)
+ return 0;
if (crc == null)
throw new IOException("Stream closed.");
if (entry == null)
diff --git a/libjava/javax/naming/InitialContext.java b/libjava/javax/naming/InitialContext.java
index 99ae426e9ab..705e24ad1eb 100644
--- a/libjava/javax/naming/InitialContext.java
+++ b/libjava/javax/naming/InitialContext.java
@@ -1,5 +1,5 @@
/* InitialContext.java --
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -126,18 +126,22 @@ public class InitialContext implements Context
}
catch (IOException e) {}
- String home = System.getProperty("java.home");
+ String home = System.getProperty("gnu.classpath.home.url");
if (home != null)
{
- String fileName = home + File.separator
- + "lib" + File.separator + "jndi.properties";
+ String url = home + "/jndi.properties";
Properties p = new Properties ();
- try {
- InputStream is = new FileInputStream (fileName);
- p.load (is);
- is.close ();
- } catch (IOException e) {}
+ try
+ {
+ InputStream is = new URL(url).openStream();
+ p.load (is);
+ is.close ();
+ }
+ catch (IOException e)
+ {
+ // Ignore.
+ }
merge (myProps, p);
}
diff --git a/libjava/javax/naming/spi/NamingManager.java b/libjava/javax/naming/spi/NamingManager.java
index bb3d87253d7..6d02f9d2cba 100644
--- a/libjava/javax/naming/spi/NamingManager.java
+++ b/libjava/javax/naming/spi/NamingManager.java
@@ -1,5 +1,5 @@
/* NamingManager.java --
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -117,7 +117,7 @@ public class NamingManager
prefixes = "com.sun.jndi.url";
}
- scheme += "URLContextFactory";
+ scheme = scheme + "." + scheme + "URLContextFactory";
StringTokenizer tokens = new StringTokenizer (prefixes, ":");
while (tokens.hasMoreTokens ())
diff --git a/libjava/javax/sql/ConnectionEvent.java b/libjava/javax/sql/ConnectionEvent.java
index 1c4b5ef5b71..b973dca3dc3 100644
--- a/libjava/javax/sql/ConnectionEvent.java
+++ b/libjava/javax/sql/ConnectionEvent.java
@@ -1,5 +1,5 @@
/* ConnectionEvent.java
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,8 +46,11 @@ import java.util.EventObject;
*/
public class ConnectionEvent extends EventObject
{
- private SQLException sqlException;
-
+ private static final long serialVersionUID = -4843217645290030002L;
+
+ // Note that the name is chosen for serialization.
+ private SQLException ex;
+
/**
* @since 1.4
*/
@@ -62,7 +65,7 @@ public class ConnectionEvent extends EventObject
public ConnectionEvent(PooledConnection con, SQLException ex)
{
super(con);
- this.sqlException = ex;
+ this.ex = ex;
}
/**
@@ -70,6 +73,6 @@ public class ConnectionEvent extends EventObject
*/
public SQLException getSQLException()
{
- return sqlException;
+ return ex;
}
}
diff --git a/libjava/jni.cc b/libjava/jni.cc
index b841b4fc481..7dd98364118 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -1,6 +1,6 @@
// jni.cc - JNI implementation, including the jump table.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -10,6 +10,7 @@ details. */
#include <config.h>
+#include <stdio.h>
#include <stddef.h>
#include <string.h>
@@ -1388,6 +1389,7 @@ static jarray
elementClass = unwrap (elementClass);
init = unwrap (init);
+ _Jv_CheckCast (elementClass, init);
jarray result = JvNewObjectArray (length, elementClass, init);
return (jarray) wrap_value (env, result);
}
@@ -1402,6 +1404,8 @@ static jobject
(JNICALL _Jv_JNI_GetObjectArrayElement) (JNIEnv *env, jobjectArray array,
jsize index)
{
+ if ((unsigned) index >= (unsigned) array->length)
+ _Jv_ThrowBadArrayIndex (index);
jobject *elts = elements (unwrap (array));
return wrap_value (env, elts[index]);
}
@@ -1416,6 +1420,8 @@ static void
value = unwrap (value);
_Jv_CheckArrayStore (array, value);
+ if ((unsigned) index >= (unsigned) array->length)
+ _Jv_ThrowBadArrayIndex (index);
jobject *elts = elements (array);
elts[index] = value;
}
@@ -2023,9 +2029,9 @@ _Jv_GetJNIEnvNewFrame (jclass klass)
// This is `extern "C"' because the compiler uses it.
extern "C" void *
_Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
- _Jv_Utf8Const *signature)
+ _Jv_Utf8Const *signature, int args_size)
{
- char buf[10 + 6 * (name->length + signature->length)];
+ char buf[10 + 6 * (name->length + signature->length) + 12];
int long_start;
void *function;
@@ -2045,18 +2051,72 @@ _Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
return function;
// If there was no override, then look in the symbol table.
- mangled_name (klass, name, signature, buf, &long_start);
- char c = buf[long_start];
- buf[long_start] = '\0';
- function = _Jv_FindSymbolInExecutable (buf);
+ buf[0] = '_';
+ mangled_name (klass, name, signature, buf + 1, &long_start);
+ char c = buf[long_start + 1];
+ buf[long_start + 1] = '\0';
+
+ function = _Jv_FindSymbolInExecutable (buf + 1);
+#ifdef WIN32
+ // On Win32, we use the "stdcall" calling convention (see JNICALL
+ // in jni.h).
+ //
+ // For a function named 'fooBar' that takes 'nn' bytes as arguments,
+ // by default, MinGW GCC exports it as 'fooBar@nn', MSVC exports it
+ // as '_fooBar@nn' and Borland C exports it as 'fooBar'. We try to
+ // take care of all these variations here.
+
+ char asz_buf[12]; /* '@' + '2147483647' (32-bit INT_MAX) + '\0' */
+ char long_nm_sv[11]; /* Ditto, except for the '\0'. */
+
if (function == NULL)
{
- buf[long_start] = c;
+ // We have tried searching for the 'fooBar' form (BCC) - now
+ // try the others.
+
+ // First, save the part of the long name that will be damaged
+ // by appending '@nn'.
+ memcpy (long_nm_sv, (buf + long_start + 1 + 1), sizeof (long_nm_sv));
+
+ sprintf (asz_buf, "@%d", args_size);
+ strcat (buf, asz_buf);
+
+ // Search for the '_fooBar@nn' form (MSVC).
function = _Jv_FindSymbolInExecutable (buf);
+
+ if (function == NULL)
+ {
+ // Search for the 'fooBar@nn' form (MinGW GCC).
+ function = _Jv_FindSymbolInExecutable (buf + 1);
+ }
+ }
+#else /* WIN32 */
+ args_size; /* Dummy statement to avoid unused parameter warning */
+#endif /* ! WIN32 */
+
+ if (function == NULL)
+ {
+ buf[long_start + 1] = c;
+#ifdef WIN32
+ // Restore the part of the long name that was damaged by
+ // appending the '@nn'.
+ memcpy ((buf + long_start + 1 + 1), long_nm_sv, sizeof (long_nm_sv));
+#endif /* WIN32 */
+ function = _Jv_FindSymbolInExecutable (buf + 1);
if (function == NULL)
{
- jstring str = JvNewStringUTF (name->data);
- throw new java::lang::UnsatisfiedLinkError (str);
+#ifdef WIN32
+ strcat (buf, asz_buf);
+ function = _Jv_FindSymbolInExecutable (buf);
+ if (function == NULL)
+ function = _Jv_FindSymbolInExecutable (buf + 1);
+
+ if (function == NULL)
+#endif /* WIN32 */
+ {
+ jstring str = JvNewStringUTF (name->data);
+ throw new java::lang::UnsatisfiedLinkError (str);
+ }
}
}
@@ -2087,9 +2147,17 @@ _Jv_JNIMethod::call (ffi_cif *, void *ret, ffi_raw *args, void *__this)
// time.
JvSynchronize sync (global_ref_table);
if (_this->function == NULL)
- _this->function = _Jv_LookupJNIMethod (_this->defining_class,
- _this->self->name,
- _this->self->signature);
+ {
+ int args_size = sizeof (JNIEnv *) + _this->args_raw_size;
+
+ if (_this->self->accflags & java::lang::reflect::Modifier::STATIC)
+ args_size += sizeof (_this->defining_class);
+
+ _this->function = _Jv_LookupJNIMethod (_this->defining_class,
+ _this->self->name,
+ _this->self->signature,
+ args_size);
+ }
}
JvAssert (_this->args_raw_size % sizeof (ffi_raw) == 0);
diff --git a/libjava/libgcj.spec.in b/libjava/libgcj.spec.in
index e1b3526f9cb..93d449d904d 100644
--- a/libjava/libgcj.spec.in
+++ b/libjava/libgcj.spec.in
@@ -6,4 +6,4 @@
%rename lib liborig
*lib: -lgcj -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
-*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ -fkeep-inline-functions
+*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions
diff --git a/libjava/libltdl/ChangeLog b/libjava/libltdl/ChangeLog
index e84f3c7591b..8ca8e91a641 100644
--- a/libjava/libltdl/ChangeLog
+++ b/libjava/libltdl/ChangeLog
@@ -1,3 +1,43 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-04-28 Mark Mitchell <mark@codesourcery.com>
* .cvsignore: Remove files that are present in CVS.
diff --git a/libjava/libtool-version b/libjava/libtool-version
index 318fd04b258..8c0164a94a0 100644
--- a/libjava/libtool-version
+++ b/libjava/libtool-version
@@ -3,4 +3,4 @@
# a separate file so that version updates don't involve re-running
# automake.
# CURRENT:REVISION:AGE
-3:0:0
+4:0:0
diff --git a/libjava/mauve-libgcj b/libjava/mauve-libgcj
index 64ee52e1cc8..46bb94ae804 100644
--- a/libjava/mauve-libgcj
+++ b/libjava/mauve-libgcj
@@ -15,7 +15,6 @@ JDBC2.0
# The following tests seem to hang or crash the testsuite.
# This a problem when running Mauve "standalone".
-!java.io.ObjectInputOutput
!java.lang.reflect.Array.newInstance
# Character.unicode seems to be very broken (the test)
@@ -26,3 +25,15 @@ JDBC2.0
# The behaviour of the garbarge collector cannot be predicted.
# Note the . at the end so we do test java.lang.reflect
!java.lang.ref.
+
+# There are a bunch of valid tests we can't pass in
+# this release.
+!java.security.Signature.getInstance14
+!java.security.Security.getProviders
+!java.security.Security.getAlgorithms
+!java.security.MessageDigest.getInstance14
+!java.security.KeyPairGenerator.getInstance14
+!java.security.KeyFactory.getInstance14
+!java.security.AlgorithmParameters.getInstance14
+!java.security.AlgorithmParameterGenerator.getInstance14
+!java.net.DatagramSocket.DatagramSocketTest2
diff --git a/libjava/org/xml/sax/AttributeList.java b/libjava/org/xml/sax/AttributeList.java
index 9ea9295e191..b1a647aa16e 100644
--- a/libjava/org/xml/sax/AttributeList.java
+++ b/libjava/org/xml/sax/AttributeList.java
@@ -1,191 +1,193 @@
-// SAX Attribute List Interface.
-// No warranty; no copyright -- use this as you will.
-// $Id: AttributeList.java,v 1.1 2000/10/02 02:43:16 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Interface for an element's attribute specifications.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This is the original SAX1 interface for reporting an element's
- * attributes. Unlike the new {@link org.xml.sax.Attributes Attributes}
- * interface, it does not support Namespace-related information.</p>
- *
- * <p>When an attribute list is supplied as part of a
- * {@link org.xml.sax.DocumentHandler#startElement startElement}
- * event, the list will return valid results only during the
- * scope of the event; once the event handler returns control
- * to the parser, the attribute list is invalid. To save a
- * persistent copy of the attribute list, use the SAX1
- * {@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
- * helper class.</p>
- *
- * <p>An attribute list includes only attributes that have been
- * specified or defaulted: #IMPLIED attributes will not be included.</p>
- *
- * <p>There are two ways for the SAX application to obtain information
- * from the AttributeList. First, it can iterate through the entire
- * list:</p>
- *
- * <pre>
- * public void startElement (String name, AttributeList atts) {
- * for (int i = 0; i < atts.getLength(); i++) {
- * String name = atts.getName(i);
- * String type = atts.getType(i);
- * String value = atts.getValue(i);
- * [...]
- * }
- * }
- * </pre>
- *
- * <p>(Note that the result of getLength() will be zero if there
- * are no attributes.)
- *
- * <p>As an alternative, the application can request the value or
- * type of specific attributes:</p>
- *
- * <pre>
- * public void startElement (String name, AttributeList atts) {
- * String identifier = atts.getValue("id");
- * String label = atts.getValue("label");
- * [...]
- * }
- * </pre>
- *
- * @deprecated This interface has been replaced by the SAX2
- * {@link org.xml.sax.Attributes Attributes}
- * interface, which includes Namespace support.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.DocumentHandler#startElement startElement
- * @see org.xml.sax.helpers.AttributeListImpl AttributeListImpl
- */
-public interface AttributeList {
-
-
- ////////////////////////////////////////////////////////////////////
- // Iteration methods.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the number of attributes in this list.
- *
- * <p>The SAX parser may provide attributes in any
- * arbitrary order, regardless of the order in which they were
- * declared or specified. The number of attributes may be
- * zero.</p>
- *
- * @return The number of attributes in the list.
- */
- public abstract int getLength ();
-
-
- /**
- * Return the name of an attribute in this list (by position).
- *
- * <p>The names must be unique: the SAX parser shall not include the
- * same attribute twice. Attributes without values (those declared
- * #IMPLIED without a value specified in the start tag) will be
- * omitted from the list.</p>
- *
- * <p>If the attribute name has a namespace prefix, the prefix
- * will still be attached.</p>
- *
- * @param i The index of the attribute in the list (starting at 0).
- * @return The name of the indexed attribute, or null
- * if the index is out of range.
- * @see #getLength
- */
- public abstract String getName (int i);
-
-
- /**
- * Return the type of an attribute in the list (by position).
- *
- * <p>The attribute type is one of the strings "CDATA", "ID",
- * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
- * or "NOTATION" (always in upper case).</p>
- *
- * <p>If the parser has not read a declaration for the attribute,
- * or if the parser does not report attribute types, then it must
- * return the value "CDATA" as stated in the XML 1.0 Recommentation
- * (clause 3.3.3, "Attribute-Value Normalization").</p>
- *
- * <p>For an enumerated attribute that is not a notation, the
- * parser will report the type as "NMTOKEN".</p>
- *
- * @param i The index of the attribute in the list (starting at 0).
- * @return The attribute type as a string, or
- * null if the index is out of range.
- * @see #getLength
- * @see #getType(java.lang.String)
- */
- public abstract String getType (int i);
-
-
- /**
- * Return the value of an attribute in the list (by position).
- *
- * <p>If the attribute value is a list of tokens (IDREFS,
- * ENTITIES, or NMTOKENS), the tokens will be concatenated
- * into a single string separated by whitespace.</p>
- *
- * @param i The index of the attribute in the list (starting at 0).
- * @return The attribute value as a string, or
- * null if the index is out of range.
- * @see #getLength
- * @see #getValue(java.lang.String)
- */
- public abstract String getValue (int i);
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Lookup methods.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the type of an attribute in the list (by name).
- *
- * <p>The return value is the same as the return value for
- * getType(int).</p>
- *
- * <p>If the attribute name has a namespace prefix in the document,
- * the application must include the prefix here.</p>
- *
- * @param name The name of the attribute.
- * @return The attribute type as a string, or null if no
- * such attribute exists.
- * @see #getType(int)
- */
- public abstract String getType (String name);
-
-
- /**
- * Return the value of an attribute in the list (by name).
- *
- * <p>The return value is the same as the return value for
- * getValue(int).</p>
- *
- * <p>If the attribute name has a namespace prefix in the document,
- * the application must include the prefix here.</p>
- *
- * @param i The index of the attribute in the list.
- * @return The attribute value as a string, or null if
- * no such attribute exists.
- * @see #getValue(int)
- */
- public abstract String getValue (String name);
-
-}
-
-// end of AttributeList.java
+// SAX Attribute List Interface.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: AttributeList.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Interface for an element's attribute specifications.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This is the original SAX1 interface for reporting an element's
+ * attributes. Unlike the new {@link org.xml.sax.Attributes Attributes}
+ * interface, it does not support Namespace-related information.</p>
+ *
+ * <p>When an attribute list is supplied as part of a
+ * {@link org.xml.sax.DocumentHandler#startElement startElement}
+ * event, the list will return valid results only during the
+ * scope of the event; once the event handler returns control
+ * to the parser, the attribute list is invalid. To save a
+ * persistent copy of the attribute list, use the SAX1
+ * {@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
+ * helper class.</p>
+ *
+ * <p>An attribute list includes only attributes that have been
+ * specified or defaulted: #IMPLIED attributes will not be included.</p>
+ *
+ * <p>There are two ways for the SAX application to obtain information
+ * from the AttributeList. First, it can iterate through the entire
+ * list:</p>
+ *
+ * <pre>
+ * public void startElement (String name, AttributeList atts) {
+ * for (int i = 0; i < atts.getLength(); i++) {
+ * String name = atts.getName(i);
+ * String type = atts.getType(i);
+ * String value = atts.getValue(i);
+ * [...]
+ * }
+ * }
+ * </pre>
+ *
+ * <p>(Note that the result of getLength() will be zero if there
+ * are no attributes.)
+ *
+ * <p>As an alternative, the application can request the value or
+ * type of specific attributes:</p>
+ *
+ * <pre>
+ * public void startElement (String name, AttributeList atts) {
+ * String identifier = atts.getValue("id");
+ * String label = atts.getValue("label");
+ * [...]
+ * }
+ * </pre>
+ *
+ * @deprecated This interface has been replaced by the SAX2
+ * {@link org.xml.sax.Attributes Attributes}
+ * interface, which includes Namespace support.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.DocumentHandler#startElement startElement
+ * @see org.xml.sax.helpers.AttributeListImpl AttributeListImpl
+ */
+public interface AttributeList {
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Iteration methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the number of attributes in this list.
+ *
+ * <p>The SAX parser may provide attributes in any
+ * arbitrary order, regardless of the order in which they were
+ * declared or specified. The number of attributes may be
+ * zero.</p>
+ *
+ * @return The number of attributes in the list.
+ */
+ public abstract int getLength ();
+
+
+ /**
+ * Return the name of an attribute in this list (by position).
+ *
+ * <p>The names must be unique: the SAX parser shall not include the
+ * same attribute twice. Attributes without values (those declared
+ * #IMPLIED without a value specified in the start tag) will be
+ * omitted from the list.</p>
+ *
+ * <p>If the attribute name has a namespace prefix, the prefix
+ * will still be attached.</p>
+ *
+ * @param i The index of the attribute in the list (starting at 0).
+ * @return The name of the indexed attribute, or null
+ * if the index is out of range.
+ * @see #getLength
+ */
+ public abstract String getName (int i);
+
+
+ /**
+ * Return the type of an attribute in the list (by position).
+ *
+ * <p>The attribute type is one of the strings "CDATA", "ID",
+ * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+ * or "NOTATION" (always in upper case).</p>
+ *
+ * <p>If the parser has not read a declaration for the attribute,
+ * or if the parser does not report attribute types, then it must
+ * return the value "CDATA" as stated in the XML 1.0 Recommentation
+ * (clause 3.3.3, "Attribute-Value Normalization").</p>
+ *
+ * <p>For an enumerated attribute that is not a notation, the
+ * parser will report the type as "NMTOKEN".</p>
+ *
+ * @param i The index of the attribute in the list (starting at 0).
+ * @return The attribute type as a string, or
+ * null if the index is out of range.
+ * @see #getLength
+ * @see #getType(java.lang.String)
+ */
+ public abstract String getType (int i);
+
+
+ /**
+ * Return the value of an attribute in the list (by position).
+ *
+ * <p>If the attribute value is a list of tokens (IDREFS,
+ * ENTITIES, or NMTOKENS), the tokens will be concatenated
+ * into a single string separated by whitespace.</p>
+ *
+ * @param i The index of the attribute in the list (starting at 0).
+ * @return The attribute value as a string, or
+ * null if the index is out of range.
+ * @see #getLength
+ * @see #getValue(java.lang.String)
+ */
+ public abstract String getValue (int i);
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Lookup methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the type of an attribute in the list (by name).
+ *
+ * <p>The return value is the same as the return value for
+ * getType(int).</p>
+ *
+ * <p>If the attribute name has a namespace prefix in the document,
+ * the application must include the prefix here.</p>
+ *
+ * @param name The name of the attribute.
+ * @return The attribute type as a string, or null if no
+ * such attribute exists.
+ * @see #getType(int)
+ */
+ public abstract String getType (String name);
+
+
+ /**
+ * Return the value of an attribute in the list (by name).
+ *
+ * <p>The return value is the same as the return value for
+ * getValue(int).</p>
+ *
+ * <p>If the attribute name has a namespace prefix in the document,
+ * the application must include the prefix here.</p>
+ *
+ * @param i The index of the attribute in the list.
+ * @return The attribute value as a string, or null if
+ * no such attribute exists.
+ * @see #getValue(int)
+ */
+ public abstract String getValue (String name);
+
+}
+
+// end of AttributeList.java
diff --git a/libjava/org/xml/sax/Attributes.java b/libjava/org/xml/sax/Attributes.java
index f10067a9288..251fe206a00 100644
--- a/libjava/org/xml/sax/Attributes.java
+++ b/libjava/org/xml/sax/Attributes.java
@@ -1,243 +1,252 @@
-// Attributes.java - attribute list with Namespace support
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: Attributes.java,v 1.1 2000/10/02 02:43:16 sboag Exp $
-
-
-package org.xml.sax;
-
-
-/**
- * Interface for a list of XML attributes.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This interface allows access to a list of attributes in
- * three different ways:</p>
- *
- * <ol>
- * <li>by attribute index;</li>
- * <li>by Namespace-qualified name; or</li>
- * <li>by qualified (prefixed) name.</li>
- * </ol>
- *
- * <p>The list will not contain attributes that were declared
- * #IMPLIED but not specified in the start tag. It will also not
- * contain attributes used as Namespace declarations (xmlns*) unless
- * the <code>http://xml.org/sax/features/namespace-prefixes</code>
- * feature is set to <var>true</var> (it is <var>false</var> by
- * default).</p>
- *
- * <p>If the namespace-prefixes feature (see above) is <var>false</var>,
- * access by qualified name may not be available; if the
- * <code>http://xml.org/sax/features/namespaces</code>
- * feature is <var>false</var>, access by Namespace-qualified names
- * may not be available.</p>
- *
- * <p>This interface replaces the now-deprecated SAX1 {@link
- * org.xml.sax.AttributeList AttributeList} interface, which does not
- * contain Namespace support. In addition to Namespace support, it
- * adds the <var>getIndex</var> methods (below).</p>
- *
- * <p>The order of attributes in the list is unspecified, and will
- * vary from implementation to implementation.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.helpers.AttributeListImpl
- */
-public interface Attributes
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Indexed access.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the number of attributes in the list.
- *
- * <p>Once you know the number of attributes, you can iterate
- * through the list.</p>
- *
- * @return The number of attributes in the list.
- * @see #getURI(int)
- * @see #getLocalName(int)
- * @see #getQName(int)
- * @see #getType(int)
- * @see #getValue(int)
- */
- public abstract int getLength ();
-
-
- /**
- * Look up an attribute's Namespace URI by index.
- *
- * @param index The attribute index (zero-based).
- * @return The Namespace URI, or the empty string if none
- * is available, or null if the index is out of
- * range.
- * @see #getLength
- */
- public abstract String getURI (int index);
-
-
- /**
- * Look up an attribute's local name by index.
- *
- * @param index The attribute index (zero-based).
- * @return The local name, or the empty string if Namespace
- * processing is not being performed, or null
- * if the index is out of range.
- * @see #getLength
- */
- public abstract String getLocalName (int index);
-
-
- /**
- * Look up an attribute's XML 1.0 qualified name by index.
- *
- * @param index The attribute index (zero-based).
- * @return The XML 1.0 qualified name, or the empty string
- * if none is available, or null if the index
- * is out of range.
- * @see #getLength
- */
- public abstract String getQName (int index);
-
-
- /**
- * Look up an attribute's type by index.
- *
- * <p>The attribute type is one of the strings "CDATA", "ID",
- * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
- * or "NOTATION" (always in upper case).</p>
- *
- * <p>If the parser has not read a declaration for the attribute,
- * or if the parser does not report attribute types, then it must
- * return the value "CDATA" as stated in the XML 1.0 Recommentation
- * (clause 3.3.3, "Attribute-Value Normalization").</p>
- *
- * <p>For an enumerated attribute that is not a notation, the
- * parser will report the type as "NMTOKEN".</p>
- *
- * @param index The attribute index (zero-based).
- * @return The attribute's type as a string, or null if the
- * index is out of range.
- * @see #getLength
- */
- public abstract String getType (int index);
-
-
- /**
- * Look up an attribute's value by index.
- *
- * <p>If the attribute value is a list of tokens (IDREFS,
- * ENTITIES, or NMTOKENS), the tokens will be concatenated
- * into a single string with each token separated by a
- * single space.</p>
- *
- * @param index The attribute index (zero-based).
- * @return The attribute's value as a string, or null if the
- * index is out of range.
- * @see #getLength
- */
- public abstract String getValue (int index);
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Name-based query.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Look up the index of an attribute by Namespace name.
- *
- * @param uri The Namespace URI, or the empty string if
- * the name has no Namespace URI.
- * @param localName The attribute's local name.
- * @return The index of the attribute, or -1 if it does not
- * appear in the list.
- */
- public int getIndex (String uri, String localPart);
-
-
- /**
- * Look up the index of an attribute by XML 1.0 qualified name.
- *
- * @param qName The qualified (prefixed) name.
- * @return The index of the attribute, or -1 if it does not
- * appear in the list.
- */
- public int getIndex (String qName);
-
-
- /**
- * Look up an attribute's type by Namespace name.
- *
- * <p>See {@link #getType(int) getType(int)} for a description
- * of the possible types.</p>
- *
- * @param uri The Namespace URI, or the empty String if the
- * name has no Namespace URI.
- * @param localName The local name of the attribute.
- * @return The attribute type as a string, or null if the
- * attribute is not in the list or if Namespace
- * processing is not being performed.
- */
- public abstract String getType (String uri, String localName);
-
-
- /**
- * Look up an attribute's type by XML 1.0 qualified name.
- *
- * <p>See {@link #getType(int) getType(int)} for a description
- * of the possible types.</p>
- *
- * @param qName The XML 1.0 qualified name.
- * @return The attribute type as a string, or null if the
- * attribute is not in the list or if qualified names
- * are not available.
- */
- public abstract String getType (String qName);
-
-
- /**
- * Look up an attribute's value by Namespace name.
- *
- * <p>See {@link #getValue(int) getValue(int)} for a description
- * of the possible values.</p>
- *
- * @param uri The Namespace URI, or the empty String if the
- * name has no Namespace URI.
- * @param localName The local name of the attribute.
- * @return The attribute value as a string, or null if the
- * attribute is not in the list.
- */
- public abstract String getValue (String uri, String localName);
-
-
- /**
- * Look up an attribute's value by XML 1.0 qualified name.
- *
- * <p>See {@link #getValue(int) getValue(int)} for a description
- * of the possible values.</p>
- *
- * @param qName The XML 1.0 qualified name.
- * @return The attribute value as a string, or null if the
- * attribute is not in the list or if qualified names
- * are not available.
- */
- public abstract String getValue (String qName);
-
-}
-
-// end of Attributes.java
+// Attributes.java - attribute list with Namespace support
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: Attributes.java,v 1.5.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+
+package org.xml.sax;
+
+
+/**
+ * Interface for a list of XML attributes.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This interface allows access to a list of attributes in
+ * three different ways:</p>
+ *
+ * <ol>
+ * <li>by attribute index;</li>
+ * <li>by Namespace-qualified name; or</li>
+ * <li>by qualified (prefixed) name.</li>
+ * </ol>
+ *
+ * <p>The list will not contain attributes that were declared
+ * #IMPLIED but not specified in the start tag. It will also not
+ * contain attributes used as Namespace declarations (xmlns*) unless
+ * the <code>http://xml.org/sax/features/namespace-prefixes</code>
+ * feature is set to <var>true</var> (it is <var>false</var> by
+ * default).
+ * Because SAX2 conforms to the "Namespaces in XML" specification,
+ * it does not give namespace declaration attributes a namespace URI.
+ * Some other W3C specifications are in conflict with that, expecting
+ * these declarations to be in a namespace.
+ * Handler code may need to resolve that conflict.
+ * </p>
+ *
+ * <p>If the namespace-prefixes feature (see above) is <var>false</var>,
+ * access by qualified name may not be available; if the
+ * <code>http://xml.org/sax/features/namespaces</code>
+ * feature is <var>false</var>, access by Namespace-qualified names
+ * may not be available.</p>
+ *
+ * <p>This interface replaces the now-deprecated SAX1 {@link
+ * org.xml.sax.AttributeList AttributeList} interface, which does not
+ * contain Namespace support. In addition to Namespace support, it
+ * adds the <var>getIndex</var> methods (below).</p>
+ *
+ * <p>The order of attributes in the list is unspecified, and will
+ * vary from implementation to implementation.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.helpers.AttributesImpl
+ * @see org.xml.sax.ext.DeclHandler#attributeDecl
+ */
+public interface Attributes
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Indexed access.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the number of attributes in the list.
+ *
+ * <p>Once you know the number of attributes, you can iterate
+ * through the list.</p>
+ *
+ * @return The number of attributes in the list.
+ * @see #getURI(int)
+ * @see #getLocalName(int)
+ * @see #getQName(int)
+ * @see #getType(int)
+ * @see #getValue(int)
+ */
+ public abstract int getLength ();
+
+
+ /**
+ * Look up an attribute's Namespace URI by index.
+ *
+ * @param index The attribute index (zero-based).
+ * @return The Namespace URI, or the empty string if none
+ * is available, or null if the index is out of
+ * range.
+ * @see #getLength
+ */
+ public abstract String getURI (int index);
+
+
+ /**
+ * Look up an attribute's local name by index.
+ *
+ * @param index The attribute index (zero-based).
+ * @return The local name, or the empty string if Namespace
+ * processing is not being performed, or null
+ * if the index is out of range.
+ * @see #getLength
+ */
+ public abstract String getLocalName (int index);
+
+
+ /**
+ * Look up an attribute's XML 1.0 qualified name by index.
+ *
+ * @param index The attribute index (zero-based).
+ * @return The XML 1.0 qualified name, or the empty string
+ * if none is available, or null if the index
+ * is out of range.
+ * @see #getLength
+ */
+ public abstract String getQName (int index);
+
+
+ /**
+ * Look up an attribute's type by index.
+ *
+ * <p>The attribute type is one of the strings "CDATA", "ID",
+ * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES",
+ * or "NOTATION" (always in upper case).</p>
+ *
+ * <p>If the parser has not read a declaration for the attribute,
+ * or if the parser does not report attribute types, then it must
+ * return the value "CDATA" as stated in the XML 1.0 Recommentation
+ * (clause 3.3.3, "Attribute-Value Normalization").</p>
+ *
+ * <p>For an enumerated attribute that is not a notation, the
+ * parser will report the type as "NMTOKEN".</p>
+ *
+ * @param index The attribute index (zero-based).
+ * @return The attribute's type as a string, or null if the
+ * index is out of range.
+ * @see #getLength
+ */
+ public abstract String getType (int index);
+
+
+ /**
+ * Look up an attribute's value by index.
+ *
+ * <p>If the attribute value is a list of tokens (IDREFS,
+ * ENTITIES, or NMTOKENS), the tokens will be concatenated
+ * into a single string with each token separated by a
+ * single space.</p>
+ *
+ * @param index The attribute index (zero-based).
+ * @return The attribute's value as a string, or null if the
+ * index is out of range.
+ * @see #getLength
+ */
+ public abstract String getValue (int index);
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Name-based query.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Look up the index of an attribute by Namespace name.
+ *
+ * @param uri The Namespace URI, or the empty string if
+ * the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return The index of the attribute, or -1 if it does not
+ * appear in the list.
+ */
+ public int getIndex (String uri, String localName);
+
+
+ /**
+ * Look up the index of an attribute by XML 1.0 qualified name.
+ *
+ * @param qName The qualified (prefixed) name.
+ * @return The index of the attribute, or -1 if it does not
+ * appear in the list.
+ */
+ public int getIndex (String qName);
+
+
+ /**
+ * Look up an attribute's type by Namespace name.
+ *
+ * <p>See {@link #getType(int) getType(int)} for a description
+ * of the possible types.</p>
+ *
+ * @param uri The Namespace URI, or the empty String if the
+ * name has no Namespace URI.
+ * @param localName The local name of the attribute.
+ * @return The attribute type as a string, or null if the
+ * attribute is not in the list or if Namespace
+ * processing is not being performed.
+ */
+ public abstract String getType (String uri, String localName);
+
+
+ /**
+ * Look up an attribute's type by XML 1.0 qualified name.
+ *
+ * <p>See {@link #getType(int) getType(int)} for a description
+ * of the possible types.</p>
+ *
+ * @param qName The XML 1.0 qualified name.
+ * @return The attribute type as a string, or null if the
+ * attribute is not in the list or if qualified names
+ * are not available.
+ */
+ public abstract String getType (String qName);
+
+
+ /**
+ * Look up an attribute's value by Namespace name.
+ *
+ * <p>See {@link #getValue(int) getValue(int)} for a description
+ * of the possible values.</p>
+ *
+ * @param uri The Namespace URI, or the empty String if the
+ * name has no Namespace URI.
+ * @param localName The local name of the attribute.
+ * @return The attribute value as a string, or null if the
+ * attribute is not in the list.
+ */
+ public abstract String getValue (String uri, String localName);
+
+
+ /**
+ * Look up an attribute's value by XML 1.0 qualified name.
+ *
+ * <p>See {@link #getValue(int) getValue(int)} for a description
+ * of the possible values.</p>
+ *
+ * @param qName The XML 1.0 qualified name.
+ * @return The attribute value as a string, or null if the
+ * attribute is not in the list or if qualified names
+ * are not available.
+ */
+ public abstract String getValue (String qName);
+
+}
+
+// end of Attributes.java
diff --git a/libjava/org/xml/sax/ContentHandler.java b/libjava/org/xml/sax/ContentHandler.java
index 0d84d0eae99..06462c51eec 100644
--- a/libjava/org/xml/sax/ContentHandler.java
+++ b/libjava/org/xml/sax/ContentHandler.java
@@ -1,374 +1,408 @@
-// ContentHandler.java - handle main document content.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: ContentHandler.java,v 1.1 2000/10/02 02:43:16 sboag Exp $
-
-package org.xml.sax;
-
-
-/**
- * Receive notification of the logical content of a document.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This is the main interface that most SAX applications
- * implement: if the application needs to be informed of basic parsing
- * events, it implements this interface and registers an instance with
- * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler
- * setContentHandler} method. The parser uses the instance to report
- * basic document-related events like the start and end of elements
- * and character data.</p>
- *
- * <p>The order of events in this interface is very important, and
- * mirrors the order of information in the document itself. For
- * example, all of an element's content (character data, processing
- * instructions, and/or subelements) will appear, in order, between
- * the startElement event and the corresponding endElement event.</p>
- *
- * <p>This interface is similar to the now-deprecated SAX 1.0
- * DocumentHandler interface, but it adds support for Namespaces
- * and for reporting skipped entities (in non-validating XML
- * processors).</p>
- *
- * <p>Implementors should note that there is also a Java class
- * {@link java.net.ContentHandler ContentHandler} in the java.net
- * package; that means that it's probably a bad idea to do</p>
- *
- * <blockquote>
- * import java.net.*;
- * import org.xml.sax.*;
- * </blockquote>
- *
- * <p>In fact, "import ...*" is usually a sign of sloppy programming
- * anyway, so the user should consider this a feature rather than a
- * bug.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.XMLReader
- * @see org.xml.sax.DTDHandler
- * @see org.xml.sax.ErrorHandler
- */
-public interface ContentHandler
-{
-
- /**
- * Receive an object for locating the origin of SAX document events.
- *
- * <p>SAX parsers are strongly encouraged (though not absolutely
- * required) to supply a locator: if it does so, it must supply
- * the locator to the application by invoking this method before
- * invoking any of the other methods in the ContentHandler
- * interface.</p>
- *
- * <p>The locator allows the application to determine the end
- * position of any document-related event, even if the parser is
- * not reporting an error. Typically, the application will
- * use this information for reporting its own errors (such as
- * character content that does not match an application's
- * business rules). The information returned by the locator
- * is probably not sufficient for use with a search engine.</p>
- *
- * <p>Note that the locator will return correct information only
- * during the invocation of the events in this interface. The
- * application should not attempt to use it at any other time.</p>
- *
- * @param locator An object that can return the location of
- * any SAX document event.
- * @see org.xml.sax.Locator
- */
- public void setDocumentLocator (Locator locator);
-
-
- /**
- * Receive notification of the beginning of a document.
- *
- * <p>The SAX parser will invoke this method only once, before any
- * other methods in this interface or in {@link org.xml.sax.DTDHandler
- * DTDHandler} (except for {@link #setDocumentLocator
- * setDocumentLocator}).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #endDocument
- */
- public void startDocument ()
- throws SAXException;
-
-
- /**
- * Receive notification of the end of a document.
- *
- * <p>The SAX parser will invoke this method only once, and it will
- * be the last method invoked during the parse. The parser shall
- * not invoke this method until it has either abandoned parsing
- * (because of an unrecoverable error) or reached the end of
- * input.</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #startDocument
- */
- public void endDocument()
- throws SAXException;
-
-
- /**
- * Begin the scope of a prefix-URI Namespace mapping.
- *
- * <p>The information from this event is not necessary for
- * normal Namespace processing: the SAX XML reader will
- * automatically replace prefixes for element and attribute
- * names when the <code>http://xml.org/sax/features/namespaces</code>
- * feature is <var>true</var> (the default).</p>
- *
- * <p>There are cases, however, when applications need to
- * use prefixes in character data or in attribute values,
- * where they cannot safely be expanded automatically; the
- * start/endPrefixMapping event supplies the information
- * to the application to expand prefixes in those contexts
- * itself, if necessary.</p>
- *
- * <p>Note that start/endPrefixMapping events are not
- * guaranteed to be properly nested relative to each-other:
- * all startPrefixMapping events will occur before the
- * corresponding {@link #startElement startElement} event,
- * and all {@link #endPrefixMapping endPrefixMapping}
- * events will occur after the corresponding {@link #endElement
- * endElement} event, but their order is not otherwise
- * guaranteed.</p>
- *
- * <p>There should never be start/endPrefixMapping events for the
- * "xml" prefix, since it is predeclared and immutable.</p>
- *
- * @param prefix The Namespace prefix being declared.
- * @param uri The Namespace URI the prefix is mapped to.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see #endPrefixMapping
- * @see #startElement
- */
- public void startPrefixMapping (String prefix, String uri)
- throws SAXException;
-
-
- /**
- * End the scope of a prefix-URI mapping.
- *
- * <p>See {@link #startPrefixMapping startPrefixMapping} for
- * details. This event will always occur after the corresponding
- * {@link #endElement endElement} event, but the order of
- * {@link #endPrefixMapping endPrefixMapping} events is not otherwise
- * guaranteed.</p>
- *
- * @param prefix The prefix that was being mapping.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see #startPrefixMapping
- * @see #endElement
- */
- public void endPrefixMapping (String prefix)
- throws SAXException;
-
-
- /**
- * Receive notification of the beginning of an element.
- *
- * <p>The Parser will invoke this method at the beginning of every
- * element in the XML document; there will be a corresponding
- * {@link #endElement endElement} event for every startElement event
- * (even when the element is empty). All of the element's content will be
- * reported, in order, before the corresponding endElement
- * event.</p>
- *
- * <p>This event allows up to three name components for each
- * element:</p>
- *
- * <ol>
- * <li>the Namespace URI;</li>
- * <li>the local name; and</li>
- * <li>the qualified (prefixed) name.</li>
- * </ol>
- *
- * <p>Any or all of these may be provided, depending on the
- * values of the <var>http://xml.org/sax/features/namespaces</var>
- * and the <var>http://xml.org/sax/features/namespace-prefixes</var>
- * properties:</p>
- *
- * <ul>
- * <li>the Namespace URI and local name are required when
- * the namespaces property is <var>true</var> (the default), and are
- * optional when the namespaces property is <var>false</var> (if one is
- * specified, both must be);</li>
- * <li>the qualified name is required when the namespace-prefixes property
- * is <var>true</var>, and is optional when the namespace-prefixes property
- * is <var>false</var> (the default).</li>
- * </ul>
- *
- * <p>Note that the attribute list provided will contain only
- * attributes with explicit values (specified or defaulted):
- * #IMPLIED attributes will be omitted. The attribute list
- * will contain attributes used for Namespace declarations
- * (xmlns* attributes) only if the
- * <code>http://xml.org/sax/features/namespace-prefixes</code>
- * property is true (it is false by default, and support for a
- * true value is optional).</p>
- *
- * @param uri The Namespace URI, or the empty string if the
- * element has no Namespace URI or if Namespace
- * processing is not being performed.
- * @param localName The local name (without prefix), or the
- * empty string if Namespace processing is not being
- * performed.
- * @param qName The qualified name (with prefix), or the
- * empty string if qualified names are not available.
- * @param atts The attributes attached to the element. If
- * there are no attributes, it shall be an empty
- * Attributes object.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #endElement
- * @see org.xml.sax.Attributes
- */
- public void startElement (String namespaceURI, String localName,
- String qName, Attributes atts)
- throws SAXException;
-
-
- /**
- * Receive notification of the end of an element.
- *
- * <p>The SAX parser will invoke this method at the end of every
- * element in the XML document; there will be a corresponding
- * {@link #startElement startElement} event for every endElement
- * event (even when the element is empty).</p>
- *
- * <p>For information on the names, see startElement.</p>
- *
- * @param uri The Namespace URI, or the empty string if the
- * element has no Namespace URI or if Namespace
- * processing is not being performed.
- * @param localName The local name (without prefix), or the
- * empty string if Namespace processing is not being
- * performed.
- * @param qName The qualified XML 1.0 name (with prefix), or the
- * empty string if qualified names are not available.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public void endElement (String namespaceURI, String localName,
- String qName)
- throws SAXException;
-
-
- /**
- * Receive notification of character data.
- *
- * <p>The Parser will call this method to report each chunk of
- * character data. SAX parsers may return all contiguous character
- * data in a single chunk, or they may split it into several
- * chunks; however, all of the characters in any single event
- * must come from the same external entity so that the Locator
- * provides useful information.</p>
- *
- * <p>The application must not attempt to read from the array
- * outside of the specified range.</p>
- *
- * <p>Note that some parsers will report whitespace in element
- * content using the {@link #ignorableWhitespace ignorableWhitespace}
- * method rather than this one (validating parsers <em>must</em>
- * do so).</p>
- *
- * @param ch The characters from the XML document.
- * @param start The start position in the array.
- * @param length The number of characters to read from the array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #ignorableWhitespace
- * @see org.xml.sax.Locator
- */
- public void characters (char ch[], int start, int length)
- throws SAXException;
-
-
- /**
- * Receive notification of ignorable whitespace in element content.
- *
- * <p>Validating Parsers must use this method to report each chunk
- * of whitespace in element content (see the W3C XML 1.0 recommendation,
- * section 2.10): non-validating parsers may also use this method
- * if they are capable of parsing and using content models.</p>
- *
- * <p>SAX parsers may return all contiguous whitespace in a single
- * chunk, or they may split it into several chunks; however, all of
- * the characters in any single event must come from the same
- * external entity, so that the Locator provides useful
- * information.</p>
- *
- * <p>The application must not attempt to read from the array
- * outside of the specified range.</p>
- *
- * @param ch The characters from the XML document.
- * @param start The start position in the array.
- * @param length The number of characters to read from the array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #characters
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException;
-
-
- /**
- * Receive notification of a processing instruction.
- *
- * <p>The Parser will invoke this method once for each processing
- * instruction found: note that processing instructions may occur
- * before or after the main document element.</p>
- *
- * <p>A SAX parser must never report an XML declaration (XML 1.0,
- * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
- * using this method.</p>
- *
- * @param target The processing instruction target.
- * @param data The processing instruction data, or null if
- * none was supplied. The data does not include any
- * whitespace separating it from the target.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public void processingInstruction (String target, String data)
- throws SAXException;
-
-
- /**
- * Receive notification of a skipped entity.
- *
- * <p>The Parser will invoke this method once for each entity
- * skipped. Non-validating processors may skip entities if they
- * have not seen the declarations (because, for example, the
- * entity was declared in an external DTD subset). All processors
- * may skip external entities, depending on the values of the
- * <code>http://xml.org/sax/features/external-general-entities</code>
- * and the
- * <code>http://xml.org/sax/features/external-parameter-entities</code>
- * properties.</p>
- *
- * @param name The name of the skipped entity. If it is a
- * parameter entity, the name will begin with '%', and if
- * it is the external DTD subset, it will be the string
- * "[dtd]".
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public void skippedEntity (String name)
- throws SAXException;
-}
-
-// end of ContentHandler.java
+// ContentHandler.java - handle main document content.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: ContentHandler.java,v 1.4.2.9 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+
+/**
+ * Receive notification of the logical content of a document.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This is the main interface that most SAX applications
+ * implement: if the application needs to be informed of basic parsing
+ * events, it implements this interface and registers an instance with
+ * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler
+ * setContentHandler} method. The parser uses the instance to report
+ * basic document-related events like the start and end of elements
+ * and character data.</p>
+ *
+ * <p>The order of events in this interface is very important, and
+ * mirrors the order of information in the document itself. For
+ * example, all of an element's content (character data, processing
+ * instructions, and/or subelements) will appear, in order, between
+ * the startElement event and the corresponding endElement event.</p>
+ *
+ * <p>This interface is similar to the now-deprecated SAX 1.0
+ * DocumentHandler interface, but it adds support for Namespaces
+ * and for reporting skipped entities (in non-validating XML
+ * processors).</p>
+ *
+ * <p>Implementors should note that there is also a Java class
+ * {@link java.net.ContentHandler ContentHandler} in the java.net
+ * package; that means that it's probably a bad idea to do</p>
+ *
+ * <blockquote>
+ * import java.net.*;
+ * import org.xml.sax.*;
+ * </blockquote>
+ *
+ * <p>In fact, "import ...*" is usually a sign of sloppy programming
+ * anyway, so the user should consider this a feature rather than a
+ * bug.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLReader
+ * @see org.xml.sax.DTDHandler
+ * @see org.xml.sax.ErrorHandler
+ */
+public interface ContentHandler
+{
+
+ /**
+ * Receive an object for locating the origin of SAX document events.
+ *
+ * <p>SAX parsers are strongly encouraged (though not absolutely
+ * required) to supply a locator: if it does so, it must supply
+ * the locator to the application by invoking this method before
+ * invoking any of the other methods in the ContentHandler
+ * interface.</p>
+ *
+ * <p>The locator allows the application to determine the end
+ * position of any document-related event, even if the parser is
+ * not reporting an error. Typically, the application will
+ * use this information for reporting its own errors (such as
+ * character content that does not match an application's
+ * business rules). The information returned by the locator
+ * is probably not sufficient for use with a search engine.</p>
+ *
+ * <p>Note that the locator will return correct information only
+ * during the invocation of the events in this interface. The
+ * application should not attempt to use it at any other time.</p>
+ *
+ * @param locator An object that can return the location of
+ * any SAX document event.
+ * @see org.xml.sax.Locator
+ */
+ public void setDocumentLocator (Locator locator);
+
+
+ /**
+ * Receive notification of the beginning of a document.
+ *
+ * <p>The SAX parser will invoke this method only once, before any
+ * other event callbacks (except for {@link #setDocumentLocator
+ * setDocumentLocator}).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #endDocument
+ */
+ public void startDocument ()
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the end of a document.
+ *
+ * <p>The SAX parser will invoke this method only once, and it will
+ * be the last method invoked during the parse. The parser shall
+ * not invoke this method until it has either abandoned parsing
+ * (because of an unrecoverable error) or reached the end of
+ * input.</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #startDocument
+ */
+ public void endDocument()
+ throws SAXException;
+
+
+ /**
+ * Begin the scope of a prefix-URI Namespace mapping.
+ *
+ * <p>The information from this event is not necessary for
+ * normal Namespace processing: the SAX XML reader will
+ * automatically replace prefixes for element and attribute
+ * names when the <code>http://xml.org/sax/features/namespaces</code>
+ * feature is <var>true</var> (the default).</p>
+ *
+ * <p>There are cases, however, when applications need to
+ * use prefixes in character data or in attribute values,
+ * where they cannot safely be expanded automatically; the
+ * start/endPrefixMapping event supplies the information
+ * to the application to expand prefixes in those contexts
+ * itself, if necessary.</p>
+ *
+ * <p>Note that start/endPrefixMapping events are not
+ * guaranteed to be properly nested relative to each other:
+ * all startPrefixMapping events will occur immediately before the
+ * corresponding {@link #startElement startElement} event,
+ * and all {@link #endPrefixMapping endPrefixMapping}
+ * events will occur immediately after the corresponding
+ * {@link #endElement endElement} event,
+ * but their order is not otherwise
+ * guaranteed.</p>
+ *
+ * <p>There should never be start/endPrefixMapping events for the
+ * "xml" prefix, since it is predeclared and immutable.</p>
+ *
+ * @param prefix The Namespace prefix being declared.
+ * An empty string is used for the default element namespace,
+ * which has no prefix.
+ * @param uri The Namespace URI the prefix is mapped to.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ * @see #endPrefixMapping
+ * @see #startElement
+ */
+ public void startPrefixMapping (String prefix, String uri)
+ throws SAXException;
+
+
+ /**
+ * End the scope of a prefix-URI mapping.
+ *
+ * <p>See {@link #startPrefixMapping startPrefixMapping} for
+ * details. These events will always occur immediately after the
+ * corresponding {@link #endElement endElement} event, but the order of
+ * {@link #endPrefixMapping endPrefixMapping} events is not otherwise
+ * guaranteed.</p>
+ *
+ * @param prefix The prefix that was being mapping.
+ * This is the empty string when a default mapping scope ends.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ * @see #startPrefixMapping
+ * @see #endElement
+ */
+ public void endPrefixMapping (String prefix)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the beginning of an element.
+ *
+ * <p>The Parser will invoke this method at the beginning of every
+ * element in the XML document; there will be a corresponding
+ * {@link #endElement endElement} event for every startElement event
+ * (even when the element is empty). All of the element's content will be
+ * reported, in order, before the corresponding endElement
+ * event.</p>
+ *
+ * <p>This event allows up to three name components for each
+ * element:</p>
+ *
+ * <ol>
+ * <li>the Namespace URI;</li>
+ * <li>the local name; and</li>
+ * <li>the qualified (prefixed) name.</li>
+ * </ol>
+ *
+ * <p>Any or all of these may be provided, depending on the
+ * values of the <var>http://xml.org/sax/features/namespaces</var>
+ * and the <var>http://xml.org/sax/features/namespace-prefixes</var>
+ * properties:</p>
+ *
+ * <ul>
+ * <li>the Namespace URI and local name are required when
+ * the namespaces property is <var>true</var> (the default), and are
+ * optional when the namespaces property is <var>false</var> (if one is
+ * specified, both must be);</li>
+ * <li>the qualified name is required when the namespace-prefixes property
+ * is <var>true</var>, and is optional when the namespace-prefixes property
+ * is <var>false</var> (the default).</li>
+ * </ul>
+ *
+ * <p>Note that the attribute list provided will contain only
+ * attributes with explicit values (specified or defaulted):
+ * #IMPLIED attributes will be omitted. The attribute list
+ * will contain attributes used for Namespace declarations
+ * (xmlns* attributes) only if the
+ * <code>http://xml.org/sax/features/namespace-prefixes</code>
+ * property is true (it is false by default, and support for a
+ * true value is optional).</p>
+ *
+ * <p>Like {@link #characters characters()}, attribute values may have
+ * characters that need more than one <code>char</code> value. </p>
+ *
+ * @param uri The Namespace URI, or the empty string if the
+ * element has no Namespace URI or if Namespace
+ * processing is not being performed.
+ * @param localName The local name (without prefix), or the
+ * empty string if Namespace processing is not being
+ * performed.
+ * @param qName The qualified name (with prefix), or the
+ * empty string if qualified names are not available.
+ * @param atts The attributes attached to the element. If
+ * there are no attributes, it shall be an empty
+ * Attributes object.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #endElement
+ * @see org.xml.sax.Attributes
+ */
+ public void startElement (String uri, String localName,
+ String qName, Attributes atts)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the end of an element.
+ *
+ * <p>The SAX parser will invoke this method at the end of every
+ * element in the XML document; there will be a corresponding
+ * {@link #startElement startElement} event for every endElement
+ * event (even when the element is empty).</p>
+ *
+ * <p>For information on the names, see startElement.</p>
+ *
+ * @param uri The Namespace URI, or the empty string if the
+ * element has no Namespace URI or if Namespace
+ * processing is not being performed.
+ * @param localName The local name (without prefix), or the
+ * empty string if Namespace processing is not being
+ * performed.
+ * @param qName The qualified XML 1.0 name (with prefix), or the
+ * empty string if qualified names are not available.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public void endElement (String uri, String localName,
+ String qName)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of character data.
+ *
+ * <p>The Parser will call this method to report each chunk of
+ * character data. SAX parsers may return all contiguous character
+ * data in a single chunk, or they may split it into several
+ * chunks; however, all of the characters in any single event
+ * must come from the same external entity so that the Locator
+ * provides useful information.</p>
+ *
+ * <p>The application must not attempt to read from the array
+ * outside of the specified range.</p>
+ *
+ * <p>Individual characters may consist of more than one Java
+ * <code>char</code> value. There are two important cases where this
+ * happens, because characters can't be represented in just sixteen bits.
+ * In one case, characters are represented in a <em>Surrogate Pair</em>,
+ * using two special Unicode values. Such characters are in the so-called
+ * "Astral Planes", with a code point above U+FFFF. A second case involves
+ * composite characters, such as a base character combining with one or
+ * more accent characters. </p>
+ *
+ * <p> Your code should not assume that algorithms using
+ * <code>char</code>-at-a-time idioms will be working in character
+ * units; in some cases they will split characters. This is relevant
+ * wherever XML permits arbitrary characters, such as attribute values,
+ * processing instruction data, and comments as well as in data reported
+ * from this method. It's also generally relevant whenever Java code
+ * manipulates internationalized text; the issue isn't unique to XML.</p>
+ *
+ * <p>Note that some parsers will report whitespace in element
+ * content using the {@link #ignorableWhitespace ignorableWhitespace}
+ * method rather than this one (validating parsers <em>must</em>
+ * do so).</p>
+ *
+ * @param ch The characters from the XML document.
+ * @param start The start position in the array.
+ * @param length The number of characters to read from the array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #ignorableWhitespace
+ * @see org.xml.sax.Locator
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of ignorable whitespace in element content.
+ *
+ * <p>Validating Parsers must use this method to report each chunk
+ * of whitespace in element content (see the W3C XML 1.0 recommendation,
+ * section 2.10): non-validating parsers may also use this method
+ * if they are capable of parsing and using content models.</p>
+ *
+ * <p>SAX parsers may return all contiguous whitespace in a single
+ * chunk, or they may split it into several chunks; however, all of
+ * the characters in any single event must come from the same
+ * external entity, so that the Locator provides useful
+ * information.</p>
+ *
+ * <p>The application must not attempt to read from the array
+ * outside of the specified range.</p>
+ *
+ * @param ch The characters from the XML document.
+ * @param start The start position in the array.
+ * @param length The number of characters to read from the array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #characters
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of a processing instruction.
+ *
+ * <p>The Parser will invoke this method once for each processing
+ * instruction found: note that processing instructions may occur
+ * before or after the main document element.</p>
+ *
+ * <p>A SAX parser must never report an XML declaration (XML 1.0,
+ * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+ * using this method.</p>
+ *
+ * <p>Like {@link #characters characters()}, processing instruction
+ * data may have characters that need more than one <code>char</code>
+ * value. </p>
+ *
+ * @param target The processing instruction target.
+ * @param data The processing instruction data, or null if
+ * none was supplied. The data does not include any
+ * whitespace separating it from the target.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of a skipped entity.
+ * This is not called for entity references within markup constructs
+ * such as element start tags or markup declarations. (The XML
+ * recommendation requires reporting skipped external entities.
+ * SAX also reports internal entity expansion/non-expansion, except
+ * within markup constructs.)
+ *
+ * <p>The Parser will invoke this method each time the entity is
+ * skipped. Non-validating processors may skip entities if they
+ * have not seen the declarations (because, for example, the
+ * entity was declared in an external DTD subset). All processors
+ * may skip external entities, depending on the values of the
+ * <code>http://xml.org/sax/features/external-general-entities</code>
+ * and the
+ * <code>http://xml.org/sax/features/external-parameter-entities</code>
+ * properties.</p>
+ *
+ * @param name The name of the skipped entity. If it is a
+ * parameter entity, the name will begin with '%', and if
+ * it is the external DTD subset, it will be the string
+ * "[dtd]".
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public void skippedEntity (String name)
+ throws SAXException;
+}
+
+// end of ContentHandler.java
diff --git a/libjava/org/xml/sax/DTDHandler.java b/libjava/org/xml/sax/DTDHandler.java
index 509a0069ba8..ee84bb24c45 100644
--- a/libjava/org/xml/sax/DTDHandler.java
+++ b/libjava/org/xml/sax/DTDHandler.java
@@ -1,108 +1,117 @@
-// SAX DTD handler.
-// No warranty; no copyright -- use this as you will.
-// $Id: DTDHandler.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Receive notification of basic DTD-related events.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>If a SAX application needs information about notations and
- * unparsed entities, then the application implements this
- * interface and registers an instance with the SAX parser using
- * the parser's setDTDHandler method. The parser uses the
- * instance to report notation and unparsed entity declarations to
- * the application.</p>
- *
- * <p>Note that this interface includes only those DTD events that
- * the XML recommendation <em>requires</em> processors to report:
- * notation and unparsed entity declarations.</p>
- *
- * <p>The SAX parser may report these events in any order, regardless
- * of the order in which the notations and unparsed entities were
- * declared; however, all DTD events must be reported after the
- * document handler's startDocument event, and before the first
- * startElement event.</p>
- *
- * <p>It is up to the application to store the information for
- * future use (perhaps in a hash table or object tree).
- * If the application encounters attributes of type "NOTATION",
- * "ENTITY", or "ENTITIES", it can use the information that it
- * obtained through this interface to find the entity and/or
- * notation corresponding with the attribute value.</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser#setDTDHandler
- * @see org.xml.sax.HandlerBase
- */
-public interface DTDHandler {
-
-
- /**
- * Receive notification of a notation declaration event.
- *
- * <p>It is up to the application to record the notation for later
- * reference, if necessary.</p>
- *
- * <p>At least one of publicId and systemId must be non-null.
- * If a system identifier is present, and it is a URL, the SAX
- * parser must resolve it fully before passing it to the
- * application through this event.</p>
- *
- * <p>There is no guarantee that the notation declaration will be
- * reported before any unparsed entities that use it.</p>
- *
- * @param name The notation name.
- * @param publicId The notation's public identifier, or null if
- * none was given.
- * @param systemId The notation's system identifier, or null if
- * none was given.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #unparsedEntityDecl
- * @see org.xml.sax.AttributeList
- */
- public abstract void notationDecl (String name,
- String publicId,
- String systemId)
- throws SAXException;
-
-
- /**
- * Receive notification of an unparsed entity declaration event.
- *
- * <p>Note that the notation name corresponds to a notation
- * reported by the {@link #notationDecl notationDecl} event.
- * It is up to the application to record the entity for later
- * reference, if necessary.</p>
- *
- * <p>If the system identifier is a URL, the parser must resolve it
- * fully before passing it to the application.</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @param name The unparsed entity's name.
- * @param publicId The entity's public identifier, or null if none
- * was given.
- * @param systemId The entity's system identifier.
- * @param notation name The name of the associated notation.
- * @see #notationDecl
- * @see org.xml.sax.AttributeList
- */
- public abstract void unparsedEntityDecl (String name,
- String publicId,
- String systemId,
- String notationName)
- throws SAXException;
-
-}
-
-// end of DTDHandler.java
+// SAX DTD handler.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: DTDHandler.java,v 1.5.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Receive notification of basic DTD-related events.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>If a SAX application needs information about notations and
+ * unparsed entities, then the application implements this
+ * interface and registers an instance with the SAX parser using
+ * the parser's setDTDHandler method. The parser uses the
+ * instance to report notation and unparsed entity declarations to
+ * the application.</p>
+ *
+ * <p>Note that this interface includes only those DTD events that
+ * the XML recommendation <em>requires</em> processors to report:
+ * notation and unparsed entity declarations.</p>
+ *
+ * <p>The SAX parser may report these events in any order, regardless
+ * of the order in which the notations and unparsed entities were
+ * declared; however, all DTD events must be reported after the
+ * document handler's startDocument event, and before the first
+ * startElement event.
+ * (If the {@link org.xml.sax.ext.LexicalHandler LexicalHandler} is
+ * used, these events must also be reported before the endDTD event.)
+ * </p>
+ *
+ * <p>It is up to the application to store the information for
+ * future use (perhaps in a hash table or object tree).
+ * If the application encounters attributes of type "NOTATION",
+ * "ENTITY", or "ENTITIES", it can use the information that it
+ * obtained through this interface to find the entity and/or
+ * notation corresponding with the attribute value.</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLReader#setDTDHandler
+ */
+public interface DTDHandler {
+
+
+ /**
+ * Receive notification of a notation declaration event.
+ *
+ * <p>It is up to the application to record the notation for later
+ * reference, if necessary;
+ * notations may appear as attribute values and in unparsed entity
+ * declarations, and are sometime used with processing instruction
+ * target names.</p>
+ *
+ * <p>At least one of publicId and systemId must be non-null.
+ * If a system identifier is present, and it is a URL, the SAX
+ * parser must resolve it fully before passing it to the
+ * application through this event.</p>
+ *
+ * <p>There is no guarantee that the notation declaration will be
+ * reported before any unparsed entities that use it.</p>
+ *
+ * @param name The notation name.
+ * @param publicId The notation's public identifier, or null if
+ * none was given.
+ * @param systemId The notation's system identifier, or null if
+ * none was given.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #unparsedEntityDecl
+ * @see org.xml.sax.Attributes
+ */
+ public abstract void notationDecl (String name,
+ String publicId,
+ String systemId)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of an unparsed entity declaration event.
+ *
+ * <p>Note that the notation name corresponds to a notation
+ * reported by the {@link #notationDecl notationDecl} event.
+ * It is up to the application to record the entity for later
+ * reference, if necessary;
+ * unparsed entities may appear as attribute values.
+ * </p>
+ *
+ * <p>If the system identifier is a URL, the parser must resolve it
+ * fully before passing it to the application.</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @param name The unparsed entity's name.
+ * @param publicId The entity's public identifier, or null if none
+ * was given.
+ * @param systemId The entity's system identifier.
+ * @param notationName The name of the associated notation.
+ * @see #notationDecl
+ * @see org.xml.sax.Attributes
+ */
+ public abstract void unparsedEntityDecl (String name,
+ String publicId,
+ String systemId,
+ String notationName)
+ throws SAXException;
+
+}
+
+// end of DTDHandler.java
diff --git a/libjava/org/xml/sax/DocumentHandler.java b/libjava/org/xml/sax/DocumentHandler.java
index be0a189c45b..10c07b2f627 100644
--- a/libjava/org/xml/sax/DocumentHandler.java
+++ b/libjava/org/xml/sax/DocumentHandler.java
@@ -1,230 +1,232 @@
-// SAX document handler.
-// No warranty; no copyright -- use this as you will.
-// $Id: DocumentHandler.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Receive notification of general document events.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This was the main event-handling interface for SAX1; in
- * SAX2, it has been replaced by {@link org.xml.sax.ContentHandler
- * ContentHandler}, which provides Namespace support and reporting
- * of skipped entities. This interface is included in SAX2 only
- * to support legacy SAX1 applications.</p>
- *
- * <p>The order of events in this interface is very important, and
- * mirrors the order of information in the document itself. For
- * example, all of an element's content (character data, processing
- * instructions, and/or subelements) will appear, in order, between
- * the startElement event and the corresponding endElement event.</p>
- *
- * <p>Application writers who do not want to implement the entire
- * interface can derive a class from HandlerBase, which implements
- * the default functionality; parser writers can instantiate
- * HandlerBase to obtain a default handler. The application can find
- * the location of any document event using the Locator interface
- * supplied by the Parser through the setDocumentLocator method.</p>
- *
- * @deprecated This interface has been replaced by the SAX2
- * {@link org.xml.sax.ContentHandler ContentHandler}
- * interface, which includes Namespace support.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser#setDocumentHandler
- * @see org.xml.sax.Locator
- * @see org.xml.sax.HandlerBase
- */
-public interface DocumentHandler {
-
-
- /**
- * Receive an object for locating the origin of SAX document events.
- *
- * <p>SAX parsers are strongly encouraged (though not absolutely
- * required) to supply a locator: if it does so, it must supply
- * the locator to the application by invoking this method before
- * invoking any of the other methods in the DocumentHandler
- * interface.</p>
- *
- * <p>The locator allows the application to determine the end
- * position of any document-related event, even if the parser is
- * not reporting an error. Typically, the application will
- * use this information for reporting its own errors (such as
- * character content that does not match an application's
- * business rules). The information returned by the locator
- * is probably not sufficient for use with a search engine.</p>
- *
- * <p>Note that the locator will return correct information only
- * during the invocation of the events in this interface. The
- * application should not attempt to use it at any other time.</p>
- *
- * @param locator An object that can return the location of
- * any SAX document event.
- * @see org.xml.sax.Locator
- */
- public abstract void setDocumentLocator (Locator locator);
-
-
- /**
- * Receive notification of the beginning of a document.
- *
- * <p>The SAX parser will invoke this method only once, before any
- * other methods in this interface or in DTDHandler (except for
- * setDocumentLocator).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public abstract void startDocument ()
- throws SAXException;
-
-
- /**
- * Receive notification of the end of a document.
- *
- * <p>The SAX parser will invoke this method only once, and it will
- * be the last method invoked during the parse. The parser shall
- * not invoke this method until it has either abandoned parsing
- * (because of an unrecoverable error) or reached the end of
- * input.</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public abstract void endDocument ()
- throws SAXException;
-
-
- /**
- * Receive notification of the beginning of an element.
- *
- * <p>The Parser will invoke this method at the beginning of every
- * element in the XML document; there will be a corresponding
- * endElement() event for every startElement() event (even when the
- * element is empty). All of the element's content will be
- * reported, in order, before the corresponding endElement()
- * event.</p>
- *
- * <p>If the element name has a namespace prefix, the prefix will
- * still be attached. Note that the attribute list provided will
- * contain only attributes with explicit values (specified or
- * defaulted): #IMPLIED attributes will be omitted.</p>
- *
- * @param name The element type name.
- * @param atts The attributes attached to the element, if any.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #endElement
- * @see org.xml.sax.AttributeList
- */
- public abstract void startElement (String name, AttributeList atts)
- throws SAXException;
-
-
- /**
- * Receive notification of the end of an element.
- *
- * <p>The SAX parser will invoke this method at the end of every
- * element in the XML document; there will be a corresponding
- * startElement() event for every endElement() event (even when the
- * element is empty).</p>
- *
- * <p>If the element name has a namespace prefix, the prefix will
- * still be attached to the name.</p>
- *
- * @param name The element type name
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public abstract void endElement (String name)
- throws SAXException;
-
-
- /**
- * Receive notification of character data.
- *
- * <p>The Parser will call this method to report each chunk of
- * character data. SAX parsers may return all contiguous character
- * data in a single chunk, or they may split it into several
- * chunks; however, all of the characters in any single event
- * must come from the same external entity, so that the Locator
- * provides useful information.</p>
- *
- * <p>The application must not attempt to read from the array
- * outside of the specified range.</p>
- *
- * <p>Note that some parsers will report whitespace using the
- * ignorableWhitespace() method rather than this one (validating
- * parsers must do so).</p>
- *
- * @param ch The characters from the XML document.
- * @param start The start position in the array.
- * @param length The number of characters to read from the array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #ignorableWhitespace
- * @see org.xml.sax.Locator
- */
- public abstract void characters (char ch[], int start, int length)
- throws SAXException;
-
-
- /**
- * Receive notification of ignorable whitespace in element content.
- *
- * <p>Validating Parsers must use this method to report each chunk
- * of ignorable whitespace (see the W3C XML 1.0 recommendation,
- * section 2.10): non-validating parsers may also use this method
- * if they are capable of parsing and using content models.</p>
- *
- * <p>SAX parsers may return all contiguous whitespace in a single
- * chunk, or they may split it into several chunks; however, all of
- * the characters in any single event must come from the same
- * external entity, so that the Locator provides useful
- * information.</p>
- *
- * <p>The application must not attempt to read from the array
- * outside of the specified range.</p>
- *
- * @param ch The characters from the XML document.
- * @param start The start position in the array.
- * @param length The number of characters to read from the array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see #characters
- */
- public abstract void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException;
-
-
- /**
- * Receive notification of a processing instruction.
- *
- * <p>The Parser will invoke this method once for each processing
- * instruction found: note that processing instructions may occur
- * before or after the main document element.</p>
- *
- * <p>A SAX parser should never report an XML declaration (XML 1.0,
- * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
- * using this method.</p>
- *
- * @param target The processing instruction target.
- * @param data The processing instruction data, or null if
- * none was supplied.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- */
- public abstract void processingInstruction (String target, String data)
- throws SAXException;
-
-}
-
-// end of DocumentHandler.java
+// SAX document handler.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: DocumentHandler.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Receive notification of general document events.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This was the main event-handling interface for SAX1; in
+ * SAX2, it has been replaced by {@link org.xml.sax.ContentHandler
+ * ContentHandler}, which provides Namespace support and reporting
+ * of skipped entities. This interface is included in SAX2 only
+ * to support legacy SAX1 applications.</p>
+ *
+ * <p>The order of events in this interface is very important, and
+ * mirrors the order of information in the document itself. For
+ * example, all of an element's content (character data, processing
+ * instructions, and/or subelements) will appear, in order, between
+ * the startElement event and the corresponding endElement event.</p>
+ *
+ * <p>Application writers who do not want to implement the entire
+ * interface can derive a class from HandlerBase, which implements
+ * the default functionality; parser writers can instantiate
+ * HandlerBase to obtain a default handler. The application can find
+ * the location of any document event using the Locator interface
+ * supplied by the Parser through the setDocumentLocator method.</p>
+ *
+ * @deprecated This interface has been replaced by the SAX2
+ * {@link org.xml.sax.ContentHandler ContentHandler}
+ * interface, which includes Namespace support.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.Parser#setDocumentHandler
+ * @see org.xml.sax.Locator
+ * @see org.xml.sax.HandlerBase
+ */
+public interface DocumentHandler {
+
+
+ /**
+ * Receive an object for locating the origin of SAX document events.
+ *
+ * <p>SAX parsers are strongly encouraged (though not absolutely
+ * required) to supply a locator: if it does so, it must supply
+ * the locator to the application by invoking this method before
+ * invoking any of the other methods in the DocumentHandler
+ * interface.</p>
+ *
+ * <p>The locator allows the application to determine the end
+ * position of any document-related event, even if the parser is
+ * not reporting an error. Typically, the application will
+ * use this information for reporting its own errors (such as
+ * character content that does not match an application's
+ * business rules). The information returned by the locator
+ * is probably not sufficient for use with a search engine.</p>
+ *
+ * <p>Note that the locator will return correct information only
+ * during the invocation of the events in this interface. The
+ * application should not attempt to use it at any other time.</p>
+ *
+ * @param locator An object that can return the location of
+ * any SAX document event.
+ * @see org.xml.sax.Locator
+ */
+ public abstract void setDocumentLocator (Locator locator);
+
+
+ /**
+ * Receive notification of the beginning of a document.
+ *
+ * <p>The SAX parser will invoke this method only once, before any
+ * other methods in this interface or in DTDHandler (except for
+ * setDocumentLocator).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public abstract void startDocument ()
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the end of a document.
+ *
+ * <p>The SAX parser will invoke this method only once, and it will
+ * be the last method invoked during the parse. The parser shall
+ * not invoke this method until it has either abandoned parsing
+ * (because of an unrecoverable error) or reached the end of
+ * input.</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public abstract void endDocument ()
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the beginning of an element.
+ *
+ * <p>The Parser will invoke this method at the beginning of every
+ * element in the XML document; there will be a corresponding
+ * endElement() event for every startElement() event (even when the
+ * element is empty). All of the element's content will be
+ * reported, in order, before the corresponding endElement()
+ * event.</p>
+ *
+ * <p>If the element name has a namespace prefix, the prefix will
+ * still be attached. Note that the attribute list provided will
+ * contain only attributes with explicit values (specified or
+ * defaulted): #IMPLIED attributes will be omitted.</p>
+ *
+ * @param name The element type name.
+ * @param atts The attributes attached to the element, if any.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #endElement
+ * @see org.xml.sax.AttributeList
+ */
+ public abstract void startElement (String name, AttributeList atts)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of the end of an element.
+ *
+ * <p>The SAX parser will invoke this method at the end of every
+ * element in the XML document; there will be a corresponding
+ * startElement() event for every endElement() event (even when the
+ * element is empty).</p>
+ *
+ * <p>If the element name has a namespace prefix, the prefix will
+ * still be attached to the name.</p>
+ *
+ * @param name The element type name
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public abstract void endElement (String name)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of character data.
+ *
+ * <p>The Parser will call this method to report each chunk of
+ * character data. SAX parsers may return all contiguous character
+ * data in a single chunk, or they may split it into several
+ * chunks; however, all of the characters in any single event
+ * must come from the same external entity, so that the Locator
+ * provides useful information.</p>
+ *
+ * <p>The application must not attempt to read from the array
+ * outside of the specified range.</p>
+ *
+ * <p>Note that some parsers will report whitespace using the
+ * ignorableWhitespace() method rather than this one (validating
+ * parsers must do so).</p>
+ *
+ * @param ch The characters from the XML document.
+ * @param start The start position in the array.
+ * @param length The number of characters to read from the array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #ignorableWhitespace
+ * @see org.xml.sax.Locator
+ */
+ public abstract void characters (char ch[], int start, int length)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of ignorable whitespace in element content.
+ *
+ * <p>Validating Parsers must use this method to report each chunk
+ * of ignorable whitespace (see the W3C XML 1.0 recommendation,
+ * section 2.10): non-validating parsers may also use this method
+ * if they are capable of parsing and using content models.</p>
+ *
+ * <p>SAX parsers may return all contiguous whitespace in a single
+ * chunk, or they may split it into several chunks; however, all of
+ * the characters in any single event must come from the same
+ * external entity, so that the Locator provides useful
+ * information.</p>
+ *
+ * <p>The application must not attempt to read from the array
+ * outside of the specified range.</p>
+ *
+ * @param ch The characters from the XML document.
+ * @param start The start position in the array.
+ * @param length The number of characters to read from the array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see #characters
+ */
+ public abstract void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of a processing instruction.
+ *
+ * <p>The Parser will invoke this method once for each processing
+ * instruction found: note that processing instructions may occur
+ * before or after the main document element.</p>
+ *
+ * <p>A SAX parser should never report an XML declaration (XML 1.0,
+ * section 2.8) or a text declaration (XML 1.0, section 4.3.1)
+ * using this method.</p>
+ *
+ * @param target The processing instruction target.
+ * @param data The processing instruction data, or null if
+ * none was supplied.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ */
+ public abstract void processingInstruction (String target, String data)
+ throws SAXException;
+
+}
+
+// end of DocumentHandler.java
diff --git a/libjava/org/xml/sax/EntityResolver.java b/libjava/org/xml/sax/EntityResolver.java
index 3270471453a..acc365aad63 100644
--- a/libjava/org/xml/sax/EntityResolver.java
+++ b/libjava/org/xml/sax/EntityResolver.java
@@ -1,110 +1,119 @@
-// SAX entity resolver.
-// No warranty; no copyright -- use this as you will.
-// $Id: EntityResolver.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-import java.io.IOException;
-
-
-/**
- * Basic interface for resolving entities.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>If a SAX application needs to implement customized handling
- * for external entities, it must implement this interface and
- * register an instance with the SAX driver using the
- * {@link org.xml.sax.XMLReader#setEntityResolver setEntityResolver}
- * method.</p>
- *
- * <p>The XML reader will then allow the application to intercept any
- * external entities (including the external DTD subset and external
- * parameter entities, if any) before including them.</p>
- *
- * <p>Many SAX applications will not need to implement this interface,
- * but it will be especially useful for applications that build
- * XML documents from databases or other specialised input sources,
- * or for applications that use URI types other than URLs.</p>
- *
- * <p>The following resolver would provide the application
- * with a special character stream for the entity with the system
- * identifier "http://www.myhost.com/today":</p>
- *
- * <pre>
- * import org.xml.sax.EntityResolver;
- * import org.xml.sax.InputSource;
- *
- * public class MyResolver implements EntityResolver {
- * public InputSource resolveEntity (String publicId, String systemId)
- * {
- * if (systemId.equals("http://www.myhost.com/today")) {
- * // return a special input source
- * MyReader reader = new MyReader();
- * return new InputSource(reader);
- * } else {
- * // use the default behaviour
- * return null;
- * }
- * }
- * }
- * </pre>
- *
- * <p>The application can also use this interface to redirect system
- * identifiers to local URIs or to look up replacements in a catalog
- * (possibly by using the public identifier).</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser#setEntityResolver
- * @see org.xml.sax.InputSource
- */
-public interface EntityResolver {
-
-
- /**
- * Allow the application to resolve external entities.
- *
- * <p>The Parser will call this method before opening any external
- * entity except the top-level document entity (including the
- * external DTD subset, external entities referenced within the
- * DTD, and external entities referenced within the document
- * element): the application may request that the parser resolve
- * the entity itself, that it use an alternative URI, or that it
- * use an entirely different input source.</p>
- *
- * <p>Application writers can use this method to redirect external
- * system identifiers to secure and/or local URIs, to look up
- * public identifiers in a catalogue, or to read an entity from a
- * database or other input source (including, for example, a dialog
- * box).</p>
- *
- * <p>If the system identifier is a URL, the SAX parser must
- * resolve it fully before reporting it to the application.</p>
- *
- * @param publicId The public identifier of the external entity
- * being referenced, or null if none was supplied.
- * @param systemId The system identifier of the external entity
- * being referenced.
- * @return An InputSource object describing the new input source,
- * or null to request that the parser open a regular
- * URI connection to the system identifier.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException A Java-specific IO exception,
- * possibly the result of creating a new InputStream
- * or Reader for the InputSource.
- * @see org.xml.sax.InputSource
- */
- public abstract InputSource resolveEntity (String publicId,
- String systemId)
- throws SAXException, IOException;
-
-}
-
-// end of EntityResolver.java
+// SAX entity resolver.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: EntityResolver.java,v 1.7.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+import java.io.IOException;
+
+
+/**
+ * Basic interface for resolving entities.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>If a SAX application needs to implement customized handling
+ * for external entities, it must implement this interface and
+ * register an instance with the SAX driver using the
+ * {@link org.xml.sax.XMLReader#setEntityResolver setEntityResolver}
+ * method.</p>
+ *
+ * <p>The XML reader will then allow the application to intercept any
+ * external entities (including the external DTD subset and external
+ * parameter entities, if any) before including them.</p>
+ *
+ * <p>Many SAX applications will not need to implement this interface,
+ * but it will be especially useful for applications that build
+ * XML documents from databases or other specialised input sources,
+ * or for applications that use URI types other than URLs.</p>
+ *
+ * <p>The following resolver would provide the application
+ * with a special character stream for the entity with the system
+ * identifier "http://www.myhost.com/today":</p>
+ *
+ * <pre>
+ * import org.xml.sax.EntityResolver;
+ * import org.xml.sax.InputSource;
+ *
+ * public class MyResolver implements EntityResolver {
+ * public InputSource resolveEntity (String publicId, String systemId)
+ * {
+ * if (systemId.equals("http://www.myhost.com/today")) {
+ * // return a special input source
+ * MyReader reader = new MyReader();
+ * return new InputSource(reader);
+ * } else {
+ * // use the default behaviour
+ * return null;
+ * }
+ * }
+ * }
+ * </pre>
+ *
+ * <p>The application can also use this interface to redirect system
+ * identifiers to local URIs or to look up replacements in a catalog
+ * (possibly by using the public identifier).</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLReader#setEntityResolver
+ * @see org.xml.sax.InputSource
+ */
+public interface EntityResolver {
+
+
+ /**
+ * Allow the application to resolve external entities.
+ *
+ * <p>The parser will call this method before opening any external
+ * entity except the top-level document entity. Such entities include
+ * the external DTD subset and external parameter entities referenced
+ * within the DTD (in either case, only if the parser reads external
+ * parameter entities), and external general entities referenced
+ * within the document element (if the parser reads external general
+ * entities). The application may request that the parser locate
+ * the entity itself, that it use an alternative URI, or that it
+ * use data provided by the application (as a character or byte
+ * input stream).</p>
+ *
+ * <p>Application writers can use this method to redirect external
+ * system identifiers to secure and/or local URIs, to look up
+ * public identifiers in a catalogue, or to read an entity from a
+ * database or other input source (including, for example, a dialog
+ * box). Neither XML nor SAX specifies a preferred policy for using
+ * public or system IDs to resolve resources. However, SAX specifies
+ * how to interpret any InputSource returned by this method, and that
+ * if none is returned, then the system ID will be dereferenced as
+ * a URL. </p>
+ *
+ * <p>If the system identifier is a URL, the SAX parser must
+ * resolve it fully before reporting it to the application.</p>
+ *
+ * @param publicId The public identifier of the external entity
+ * being referenced, or null if none was supplied.
+ * @param systemId The system identifier of the external entity
+ * being referenced.
+ * @return An InputSource object describing the new input source,
+ * or null to request that the parser open a regular
+ * URI connection to the system identifier.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException A Java-specific IO exception,
+ * possibly the result of creating a new InputStream
+ * or Reader for the InputSource.
+ * @see org.xml.sax.InputSource
+ */
+ public abstract InputSource resolveEntity (String publicId,
+ String systemId)
+ throws SAXException, IOException;
+
+}
+
+// end of EntityResolver.java
diff --git a/libjava/org/xml/sax/ErrorHandler.java b/libjava/org/xml/sax/ErrorHandler.java
index 8b3e090cd6d..e82302093ad 100644
--- a/libjava/org/xml/sax/ErrorHandler.java
+++ b/libjava/org/xml/sax/ErrorHandler.java
@@ -1,123 +1,125 @@
-// SAX error handler.
-// No warranty; no copyright -- use this as you will.
-// $Id: ErrorHandler.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-
-/**
- * Basic interface for SAX error handlers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>If a SAX application needs to implement customized error
- * handling, it must implement this interface and then register an
- * instance with the XML reader using the
- * {@link org.xml.sax.XMLReader#setErrorHandler setErrorHandler}
- * method. The parser will then report all errors and warnings
- * through this interface.</p>
- *
- * <p><strong>WARNING:</strong> If an application does <em>not</em>
- * register an ErrorHandler, XML parsing errors will go unreported
- * and bizarre behaviour may result.</p>
- *
- * <p>For XML processing errors, a SAX driver must use this interface
- * instead of throwing an exception: it is up to the application
- * to decide whether to throw an exception for different types of
- * errors and warnings. Note, however, that there is no requirement that
- * the parser continue to provide useful information after a call to
- * {@link #fatalError fatalError} (in other words, a SAX driver class
- * could catch an exception and report a fatalError).</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser#setErrorHandler
- * @see org.xml.sax.SAXParseException
- */
-public interface ErrorHandler {
-
-
- /**
- * Receive notification of a warning.
- *
- * <p>SAX parsers will use this method to report conditions that
- * are not errors or fatal errors as defined by the XML 1.0
- * recommendation. The default behaviour is to take no action.</p>
- *
- * <p>The SAX parser must continue to provide normal parsing events
- * after invoking this method: it should still be possible for the
- * application to process the document through to the end.</p>
- *
- * <p>Filters may use this method to report other, non-XML warnings
- * as well.</p>
- *
- * @param exception The warning information encapsulated in a
- * SAX parse exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.SAXParseException
- */
- public abstract void warning (SAXParseException exception)
- throws SAXException;
-
-
- /**
- * Receive notification of a recoverable error.
- *
- * <p>This corresponds to the definition of "error" in section 1.2
- * of the W3C XML 1.0 Recommendation. For example, a validating
- * parser would use this callback to report the violation of a
- * validity constraint. The default behaviour is to take no
- * action.</p>
- *
- * <p>The SAX parser must continue to provide normal parsing events
- * after invoking this method: it should still be possible for the
- * application to process the document through to the end. If the
- * application cannot do so, then the parser should report a fatal
- * error even if the XML 1.0 recommendation does not require it to
- * do so.</p>
- *
- * <p>Filters may use this method to report other, non-XML errors
- * as well.</p>
- *
- * @param exception The error information encapsulated in a
- * SAX parse exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.SAXParseException
- */
- public abstract void error (SAXParseException exception)
- throws SAXException;
-
-
- /**
- * Receive notification of a non-recoverable error.
- *
- * <p>This corresponds to the definition of "fatal error" in
- * section 1.2 of the W3C XML 1.0 Recommendation. For example, a
- * parser would use this callback to report the violation of a
- * well-formedness constraint.</p>
- *
- * <p>The application must assume that the document is unusable
- * after the parser has invoked this method, and should continue
- * (if at all) only for the sake of collecting addition error
- * messages: in fact, SAX parsers are free to stop reporting any
- * other events once this method has been invoked.</p>
- *
- * @param exception The error information encapsulated in a
- * SAX parse exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.SAXParseException
- */
- public abstract void fatalError (SAXParseException exception)
- throws SAXException;
-
-}
-
-// end of ErrorHandler.java
+// SAX error handler.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: ErrorHandler.java,v 1.4.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+
+/**
+ * Basic interface for SAX error handlers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>If a SAX application needs to implement customized error
+ * handling, it must implement this interface and then register an
+ * instance with the XML reader using the
+ * {@link org.xml.sax.XMLReader#setErrorHandler setErrorHandler}
+ * method. The parser will then report all errors and warnings
+ * through this interface.</p>
+ *
+ * <p><strong>WARNING:</strong> If an application does <em>not</em>
+ * register an ErrorHandler, XML parsing errors will go unreported
+ * and bizarre behaviour may result.</p>
+ *
+ * <p>For XML processing errors, a SAX driver must use this interface
+ * instead of throwing an exception: it is up to the application
+ * to decide whether to throw an exception for different types of
+ * errors and warnings. Note, however, that there is no requirement that
+ * the parser continue to provide useful information after a call to
+ * {@link #fatalError fatalError} (in other words, a SAX driver class
+ * could catch an exception and report a fatalError).</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLReader#setErrorHandler
+ * @see org.xml.sax.SAXParseException
+ */
+public interface ErrorHandler {
+
+
+ /**
+ * Receive notification of a warning.
+ *
+ * <p>SAX parsers will use this method to report conditions that
+ * are not errors or fatal errors as defined by the XML 1.0
+ * recommendation. The default behaviour is to take no action.</p>
+ *
+ * <p>The SAX parser must continue to provide normal parsing events
+ * after invoking this method: it should still be possible for the
+ * application to process the document through to the end.</p>
+ *
+ * <p>Filters may use this method to report other, non-XML warnings
+ * as well.</p>
+ *
+ * @param exception The warning information encapsulated in a
+ * SAX parse exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.SAXParseException
+ */
+ public abstract void warning (SAXParseException exception)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of a recoverable error.
+ *
+ * <p>This corresponds to the definition of "error" in section 1.2
+ * of the W3C XML 1.0 Recommendation. For example, a validating
+ * parser would use this callback to report the violation of a
+ * validity constraint. The default behaviour is to take no
+ * action.</p>
+ *
+ * <p>The SAX parser must continue to provide normal parsing events
+ * after invoking this method: it should still be possible for the
+ * application to process the document through to the end. If the
+ * application cannot do so, then the parser should report a fatal
+ * error even if the XML 1.0 recommendation does not require it to
+ * do so.</p>
+ *
+ * <p>Filters may use this method to report other, non-XML errors
+ * as well.</p>
+ *
+ * @param exception The error information encapsulated in a
+ * SAX parse exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.SAXParseException
+ */
+ public abstract void error (SAXParseException exception)
+ throws SAXException;
+
+
+ /**
+ * Receive notification of a non-recoverable error.
+ *
+ * <p>This corresponds to the definition of "fatal error" in
+ * section 1.2 of the W3C XML 1.0 Recommendation. For example, a
+ * parser would use this callback to report the violation of a
+ * well-formedness constraint.</p>
+ *
+ * <p>The application must assume that the document is unusable
+ * after the parser has invoked this method, and should continue
+ * (if at all) only for the sake of collecting addition error
+ * messages: in fact, SAX parsers are free to stop reporting any
+ * other events once this method has been invoked.</p>
+ *
+ * @param exception The error information encapsulated in a
+ * SAX parse exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.SAXParseException
+ */
+ public abstract void fatalError (SAXParseException exception)
+ throws SAXException;
+
+}
+
+// end of ErrorHandler.java
diff --git a/libjava/org/xml/sax/HandlerBase.java b/libjava/org/xml/sax/HandlerBase.java
index 34a8f7675d9..42c3a07e0e8 100644
--- a/libjava/org/xml/sax/HandlerBase.java
+++ b/libjava/org/xml/sax/HandlerBase.java
@@ -1,368 +1,370 @@
-// SAX default handler base class.
-// No warranty; no copyright -- use this as you will.
-// $Id: HandlerBase.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Default base class for handlers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class implements the default behaviour for four SAX1
- * interfaces: EntityResolver, DTDHandler, DocumentHandler,
- * and ErrorHandler. It is now obsolete, but is included in SAX2 to
- * support legacy SAX1 applications. SAX2 applications should use
- * the {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}
- * class instead.</p>
- *
- * <p>Application writers can extend this class when they need to
- * implement only part of an interface; parser writers can
- * instantiate this class to provide default handlers when the
- * application has not supplied its own.</p>
- *
- * <p>Note that the use of this class is optional.</p>
- *
- * @deprecated This class works with the deprecated
- * {@link org.xml.sax.DocumentHandler DocumentHandler}
- * interface. It has been replaced by the SAX2
- * {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}
- * class.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.EntityResolver
- * @see org.xml.sax.DTDHandler
- * @see org.xml.sax.DocumentHandler
- * @see org.xml.sax.ErrorHandler
- */
-public class HandlerBase
- implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of the EntityResolver interface.
- ////////////////////////////////////////////////////////////////////
-
- /**
- * Resolve an external entity.
- *
- * <p>Always return null, so that the parser will use the system
- * identifier provided in the XML document. This method implements
- * the SAX default behaviour: application writers can override it
- * in a subclass to do special translations such as catalog lookups
- * or URI redirection.</p>
- *
- * @param publicId The public identifier, or null if none is
- * available.
- * @param systemId The system identifier provided in the XML
- * document.
- * @return The new input source, or null to require the
- * default behaviour.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.EntityResolver#resolveEntity
- */
- public InputSource resolveEntity (String publicId, String systemId)
- throws SAXException
- {
- return null;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of DTDHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive notification of a notation declaration.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass if they wish to keep track of the notations
- * declared in a document.</p>
- *
- * @param name The notation name.
- * @param publicId The notation public identifier, or null if not
- * available.
- * @param systemId The notation system identifier.
- * @see org.xml.sax.DTDHandler#notationDecl
- */
- public void notationDecl (String name, String publicId, String systemId)
- {
- // no op
- }
-
-
- /**
- * Receive notification of an unparsed entity declaration.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to keep track of the unparsed entities
- * declared in a document.</p>
- *
- * @param name The entity name.
- * @param publicId The entity public identifier, or null if not
- * available.
- * @param systemId The entity system identifier.
- * @param notationName The name of the associated notation.
- * @see org.xml.sax.DTDHandler#unparsedEntityDecl
- */
- public void unparsedEntityDecl (String name, String publicId,
- String systemId, String notationName)
- {
- // no op
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of DocumentHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive a Locator object for document events.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass if they wish to store the locator for use
- * with other document events.</p>
- *
- * @param locator A locator for all SAX document events.
- * @see org.xml.sax.DocumentHandler#setDocumentLocator
- * @see org.xml.sax.Locator
- */
- public void setDocumentLocator (Locator locator)
- {
- // no op
- }
-
-
- /**
- * Receive notification of the beginning of the document.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the beginning
- * of a document (such as allocating the root node of a tree or
- * creating an output file).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#startDocument
- */
- public void startDocument ()
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the end of the document.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the beginning
- * of a document (such as finalising a tree or closing an output
- * file).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#endDocument
- */
- public void endDocument ()
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the start of an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the start of
- * each element (such as allocating a new tree node or writing
- * output to a file).</p>
- *
- * @param name The element type name.
- * @param attributes The specified or defaulted attributes.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#startElement
- */
- public void startElement (String name, AttributeList attributes)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the end of an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the end of
- * each element (such as finalising a tree node or writing
- * output to a file).</p>
- *
- * @param name The element type name.
- * @param attributes The specified or defaulted attributes.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#endElement
- */
- public void endElement (String name)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of character data inside an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method to take specific actions for each chunk of character data
- * (such as adding the data to a node or buffer, or printing it to
- * a file).</p>
- *
- * @param ch The characters.
- * @param start The start position in the character array.
- * @param length The number of characters to use from the
- * character array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#characters
- */
- public void characters (char ch[], int start, int length)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of ignorable whitespace in element content.
- *
- * <p>By default, do nothing. Application writers may override this
- * method to take specific actions for each chunk of ignorable
- * whitespace (such as adding data to a node or buffer, or printing
- * it to a file).</p>
- *
- * @param ch The whitespace characters.
- * @param start The start position in the character array.
- * @param length The number of characters to use from the
- * character array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#ignorableWhitespace
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of a processing instruction.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions for each
- * processing instruction, such as setting status variables or
- * invoking other methods.</p>
- *
- * @param target The processing instruction target.
- * @param data The processing instruction data, or null if
- * none is supplied.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DocumentHandler#processingInstruction
- */
- public void processingInstruction (String target, String data)
- throws SAXException
- {
- // no op
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of the ErrorHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive notification of a parser warning.
- *
- * <p>The default implementation does nothing. Application writers
- * may override this method in a subclass to take specific actions
- * for each warning, such as inserting the message in a log file or
- * printing it to the console.</p>
- *
- * @param e The warning information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#warning
- * @see org.xml.sax.SAXParseException
- */
- public void warning (SAXParseException e)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of a recoverable parser error.
- *
- * <p>The default implementation does nothing. Application writers
- * may override this method in a subclass to take specific actions
- * for each error, such as inserting the message in a log file or
- * printing it to the console.</p>
- *
- * @param e The warning information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#warning
- * @see org.xml.sax.SAXParseException
- */
- public void error (SAXParseException e)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Report a fatal XML parsing error.
- *
- * <p>The default implementation throws a SAXParseException.
- * Application writers may override this method in a subclass if
- * they need to take specific actions for each fatal error (such as
- * collecting all of the errors into a single report): in any case,
- * the application must stop all regular processing when this
- * method is invoked, since the document is no longer reliable, and
- * the parser may no longer report parsing events.</p>
- *
- * @param e The error information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#fatalError
- * @see org.xml.sax.SAXParseException
- */
- public void fatalError (SAXParseException e)
- throws SAXException
- {
- throw e;
- }
-
-}
-
-// end of HandlerBase.java
+// SAX default handler base class.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: HandlerBase.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Default base class for handlers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class implements the default behaviour for four SAX1
+ * interfaces: EntityResolver, DTDHandler, DocumentHandler,
+ * and ErrorHandler. It is now obsolete, but is included in SAX2 to
+ * support legacy SAX1 applications. SAX2 applications should use
+ * the {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}
+ * class instead.</p>
+ *
+ * <p>Application writers can extend this class when they need to
+ * implement only part of an interface; parser writers can
+ * instantiate this class to provide default handlers when the
+ * application has not supplied its own.</p>
+ *
+ * <p>Note that the use of this class is optional.</p>
+ *
+ * @deprecated This class works with the deprecated
+ * {@link org.xml.sax.DocumentHandler DocumentHandler}
+ * interface. It has been replaced by the SAX2
+ * {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}
+ * class.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.EntityResolver
+ * @see org.xml.sax.DTDHandler
+ * @see org.xml.sax.DocumentHandler
+ * @see org.xml.sax.ErrorHandler
+ */
+public class HandlerBase
+ implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of the EntityResolver interface.
+ ////////////////////////////////////////////////////////////////////
+
+ /**
+ * Resolve an external entity.
+ *
+ * <p>Always return null, so that the parser will use the system
+ * identifier provided in the XML document. This method implements
+ * the SAX default behaviour: application writers can override it
+ * in a subclass to do special translations such as catalog lookups
+ * or URI redirection.</p>
+ *
+ * @param publicId The public identifer, or null if none is
+ * available.
+ * @param systemId The system identifier provided in the XML
+ * document.
+ * @return The new input source, or null to require the
+ * default behaviour.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.EntityResolver#resolveEntity
+ */
+ public InputSource resolveEntity (String publicId, String systemId)
+ throws SAXException
+ {
+ return null;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of DTDHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive notification of a notation declaration.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to keep track of the notations
+ * declared in a document.</p>
+ *
+ * @param name The notation name.
+ * @param publicId The notation public identifier, or null if not
+ * available.
+ * @param systemId The notation system identifier.
+ * @see org.xml.sax.DTDHandler#notationDecl
+ */
+ public void notationDecl (String name, String publicId, String systemId)
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of an unparsed entity declaration.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to keep track of the unparsed entities
+ * declared in a document.</p>
+ *
+ * @param name The entity name.
+ * @param publicId The entity public identifier, or null if not
+ * available.
+ * @param systemId The entity system identifier.
+ * @param notationName The name of the associated notation.
+ * @see org.xml.sax.DTDHandler#unparsedEntityDecl
+ */
+ public void unparsedEntityDecl (String name, String publicId,
+ String systemId, String notationName)
+ {
+ // no op
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of DocumentHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive a Locator object for document events.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to store the locator for use
+ * with other document events.</p>
+ *
+ * @param locator A locator for all SAX document events.
+ * @see org.xml.sax.DocumentHandler#setDocumentLocator
+ * @see org.xml.sax.Locator
+ */
+ public void setDocumentLocator (Locator locator)
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the beginning of the document.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the beginning
+ * of a document (such as allocating the root node of a tree or
+ * creating an output file).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#startDocument
+ */
+ public void startDocument ()
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the end of the document.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the beginning
+ * of a document (such as finalising a tree or closing an output
+ * file).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#endDocument
+ */
+ public void endDocument ()
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the start of an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the start of
+ * each element (such as allocating a new tree node or writing
+ * output to a file).</p>
+ *
+ * @param name The element type name.
+ * @param attributes The specified or defaulted attributes.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#startElement
+ */
+ public void startElement (String name, AttributeList attributes)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the end of an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the end of
+ * each element (such as finalising a tree node or writing
+ * output to a file).</p>
+ *
+ * @param name The element type name.
+ * @param attributes The specified or defaulted attributes.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#endElement
+ */
+ public void endElement (String name)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of character data inside an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of character data
+ * (such as adding the data to a node or buffer, or printing it to
+ * a file).</p>
+ *
+ * @param ch The characters.
+ * @param start The start position in the character array.
+ * @param length The number of characters to use from the
+ * character array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#characters
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of ignorable whitespace in element content.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of ignorable
+ * whitespace (such as adding data to a node or buffer, or printing
+ * it to a file).</p>
+ *
+ * @param ch The whitespace characters.
+ * @param start The start position in the character array.
+ * @param length The number of characters to use from the
+ * character array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#ignorableWhitespace
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of a processing instruction.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions for each
+ * processing instruction, such as setting status variables or
+ * invoking other methods.</p>
+ *
+ * @param target The processing instruction target.
+ * @param data The processing instruction data, or null if
+ * none is supplied.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DocumentHandler#processingInstruction
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of the ErrorHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive notification of a parser warning.
+ *
+ * <p>The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each warning, such as inserting the message in a log file or
+ * printing it to the console.</p>
+ *
+ * @param e The warning information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#warning
+ * @see org.xml.sax.SAXParseException
+ */
+ public void warning (SAXParseException e)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of a recoverable parser error.
+ *
+ * <p>The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each error, such as inserting the message in a log file or
+ * printing it to the console.</p>
+ *
+ * @param e The warning information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#warning
+ * @see org.xml.sax.SAXParseException
+ */
+ public void error (SAXParseException e)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Report a fatal XML parsing error.
+ *
+ * <p>The default implementation throws a SAXParseException.
+ * Application writers may override this method in a subclass if
+ * they need to take specific actions for each fatal error (such as
+ * collecting all of the errors into a single report): in any case,
+ * the application must stop all regular processing when this
+ * method is invoked, since the document is no longer reliable, and
+ * the parser may no longer report parsing events.</p>
+ *
+ * @param e The error information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#fatalError
+ * @see org.xml.sax.SAXParseException
+ */
+ public void fatalError (SAXParseException e)
+ throws SAXException
+ {
+ throw e;
+ }
+
+}
+
+// end of HandlerBase.java
diff --git a/libjava/org/xml/sax/InputSource.java b/libjava/org/xml/sax/InputSource.java
index 985ca220387..f6c09071d47 100644
--- a/libjava/org/xml/sax/InputSource.java
+++ b/libjava/org/xml/sax/InputSource.java
@@ -1,321 +1,336 @@
-// SAX input source.
-// No warranty; no copyright -- use this as you will.
-// $Id: InputSource.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-import java.io.Reader;
-import java.io.InputStream;
-
-/**
- * A single input source for an XML entity.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class allows a SAX application to encapsulate information
- * about an input source in a single object, which may include
- * a public identifier, a system identifier, a byte stream (possibly
- * with a specified encoding), and/or a character stream.</p>
- *
- * <p>There are two places that the application will deliver this
- * input source to the parser: as the argument to the Parser.parse
- * method, or as the return value of the EntityResolver.resolveEntity
- * method.</p>
- *
- * <p>The SAX parser will use the InputSource object to determine how
- * to read XML input. If there is a character stream available, the
- * parser will read that stream directly; if not, the parser will use
- * a byte stream, if available; if neither a character stream nor a
- * byte stream is available, the parser will attempt to open a URI
- * connection to the resource identified by the system
- * identifier.</p>
- *
- * <p>An InputSource object belongs to the application: the SAX parser
- * shall never modify it in any way (it may modify a copy if
- * necessary).</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser#parse
- * @see org.xml.sax.EntityResolver#resolveEntity
- * @see java.io.InputStream
- * @see java.io.Reader
- */
-public class InputSource {
-
- /**
- * Zero-argument default constructor.
- *
- * @see #setPublicId
- * @see #setSystemId
- * @see #setByteStream
- * @see #setCharacterStream
- * @see #setEncoding
- */
- public InputSource ()
- {
- }
-
-
- /**
- * Create a new input source with a system identifier.
- *
- * <p>Applications may use setPublicId to include a
- * public identifier as well, or setEncoding to specify
- * the character encoding, if known.</p>
- *
- * <p>If the system identifier is a URL, it must be full resolved.</p>
- *
- * @param systemId The system identifier (URI).
- * @see #setPublicId
- * @see #setSystemId
- * @see #setByteStream
- * @see #setEncoding
- * @see #setCharacterStream
- */
- public InputSource (String systemId)
- {
- setSystemId(systemId);
- }
-
-
- /**
- * Create a new input source with a byte stream.
- *
- * <p>Application writers may use setSystemId to provide a base
- * for resolving relative URIs, setPublicId to include a
- * public identifier, and/or setEncoding to specify the object's
- * character encoding.</p>
- *
- * @param byteStream The raw byte stream containing the document.
- * @see #setPublicId
- * @see #setSystemId
- * @see #setEncoding
- * @see #setByteStream
- * @see #setCharacterStream
- */
- public InputSource (InputStream byteStream)
- {
- setByteStream(byteStream);
- }
-
-
- /**
- * Create a new input source with a character stream.
- *
- * <p>Application writers may use setSystemId() to provide a base
- * for resolving relative URIs, and setPublicId to include a
- * public identifier.</p>
- *
- * <p>The character stream shall not include a byte order mark.</p>
- *
- * @see #setPublicId
- * @see #setSystemId
- * @see #setByteStream
- * @see #setCharacterStream
- */
- public InputSource (Reader characterStream)
- {
- setCharacterStream(characterStream);
- }
-
-
- /**
- * Set the public identifier for this input source.
- *
- * <p>The public identifier is always optional: if the application
- * writer includes one, it will be provided as part of the
- * location information.</p>
- *
- * @param publicId The public identifier as a string.
- * @see #getPublicId
- * @see org.xml.sax.Locator#getPublicId
- * @see org.xml.sax.SAXParseException#getPublicId
- */
- public void setPublicId (String publicId)
- {
- this.publicId = publicId;
- }
-
-
- /**
- * Get the public identifier for this input source.
- *
- * @return The public identifier, or null if none was supplied.
- * @see #setPublicId
- */
- public String getPublicId ()
- {
- return publicId;
- }
-
-
- /**
- * Set the system identifier for this input source.
- *
- * <p>The system identifier is optional if there is a byte stream
- * or a character stream, but it is still useful to provide one,
- * since the application can use it to resolve relative URIs
- * and can include it in error messages and warnings (the parser
- * will attempt to open a connection to the URI only if
- * there is no byte stream or character stream specified).</p>
- *
- * <p>If the application knows the character encoding of the
- * object pointed to by the system identifier, it can register
- * the encoding using the setEncoding method.</p>
- *
- * <p>If the system ID is a URL, it must be fully resolved.</p>
- *
- * @param systemId The system identifier as a string.
- * @see #setEncoding
- * @see #getSystemId
- * @see org.xml.sax.Locator#getSystemId
- * @see org.xml.sax.SAXParseException#getSystemId
- */
- public void setSystemId (String systemId)
- {
- this.systemId = systemId;
- }
-
-
- /**
- * Get the system identifier for this input source.
- *
- * <p>The getEncoding method will return the character encoding
- * of the object pointed to, or null if unknown.</p>
- *
- * <p>If the system ID is a URL, it will be fully resolved.</p>
- *
- * @return The system identifier.
- * @see #setSystemId
- * @see #getEncoding
- */
- public String getSystemId ()
- {
- return systemId;
- }
-
-
- /**
- * Set the byte stream for this input source.
- *
- * <p>The SAX parser will ignore this if there is also a character
- * stream specified, but it will use a byte stream in preference
- * to opening a URI connection itself.</p>
- *
- * <p>If the application knows the character encoding of the
- * byte stream, it should set it with the setEncoding method.</p>
- *
- * @param byteStream A byte stream containing an XML document or
- * other entity.
- * @see #setEncoding
- * @see #getByteStream
- * @see #getEncoding
- * @see java.io.InputStream
- */
- public void setByteStream (InputStream byteStream)
- {
- this.byteStream = byteStream;
- }
-
-
- /**
- * Get the byte stream for this input source.
- *
- * <p>The getEncoding method will return the character
- * encoding for this byte stream, or null if unknown.</p>
- *
- * @return The byte stream, or null if none was supplied.
- * @see #getEncoding
- * @see #setByteStream
- */
- public InputStream getByteStream ()
- {
- return byteStream;
- }
-
-
- /**
- * Set the character encoding, if known.
- *
- * <p>The encoding must be a string acceptable for an
- * XML encoding declaration (see section 4.3.3 of the XML 1.0
- * recommendation).</p>
- *
- * <p>This method has no effect when the application provides a
- * character stream.</p>
- *
- * @param encoding A string describing the character encoding.
- * @see #setSystemId
- * @see #setByteStream
- * @see #getEncoding
- */
- public void setEncoding (String encoding)
- {
- this.encoding = encoding;
- }
-
-
- /**
- * Get the character encoding for a byte stream or URI.
- *
- * @return The encoding, or null if none was supplied.
- * @see #setByteStream
- * @see #getSystemId
- * @see #getByteStream
- */
- public String getEncoding ()
- {
- return encoding;
- }
-
-
- /**
- * Set the character stream for this input source.
- *
- * <p>If there is a character stream specified, the SAX parser
- * will ignore any byte stream and will not attempt to open
- * a URI connection to the system identifier.</p>
- *
- * @param characterStream The character stream containing the
- * XML document or other entity.
- * @see #getCharacterStream
- * @see java.io.Reader
- */
- public void setCharacterStream (Reader characterStream)
- {
- this.characterStream = characterStream;
- }
-
-
- /**
- * Get the character stream for this input source.
- *
- * @return The character stream, or null if none was supplied.
- * @see #setCharacterStream
- */
- public Reader getCharacterStream ()
- {
- return characterStream;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- private String publicId;
- private String systemId;
- private InputStream byteStream;
- private String encoding;
- private Reader characterStream;
-
-}
-
-// end of InputSource.java
+// SAX input source.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: InputSource.java,v 1.5.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+import java.io.Reader;
+import java.io.InputStream;
+
+/**
+ * A single input source for an XML entity.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class allows a SAX application to encapsulate information
+ * about an input source in a single object, which may include
+ * a public identifier, a system identifier, a byte stream (possibly
+ * with a specified encoding), and/or a character stream.</p>
+ *
+ * <p>There are two places that the application can deliver an
+ * input source to the parser: as the argument to the Parser.parse
+ * method, or as the return value of the EntityResolver.resolveEntity
+ * method.</p>
+ *
+ * <p>The SAX parser will use the InputSource object to determine how
+ * to read XML input. If there is a character stream available, the
+ * parser will read that stream directly, disregarding any text
+ * encoding declaration found in that stream.
+ * If there is no character stream, but there is
+ * a byte stream, the parser will use that byte stream, using the
+ * encoding specified in the InputSource or else (if no encoding is
+ * specified) autodetecting the character encoding using an algorithm
+ * such as the one in the XML specification. If neither a character
+ * stream nor a
+ * byte stream is available, the parser will attempt to open a URI
+ * connection to the resource identified by the system
+ * identifier.</p>
+ *
+ * <p>An InputSource object belongs to the application: the SAX parser
+ * shall never modify it in any way (it may modify a copy if
+ * necessary). However, standard processing of both byte and
+ * character streams is to close them on as part of end-of-parse cleanup,
+ * so applications should not attempt to re-use such streams after they
+ * have been handed to a parser. </p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLReader#parse(org.xml.sax.InputSource)
+ * @see org.xml.sax.EntityResolver#resolveEntity
+ * @see java.io.InputStream
+ * @see java.io.Reader
+ */
+public class InputSource {
+
+ /**
+ * Zero-argument default constructor.
+ *
+ * @see #setPublicId
+ * @see #setSystemId
+ * @see #setByteStream
+ * @see #setCharacterStream
+ * @see #setEncoding
+ */
+ public InputSource ()
+ {
+ }
+
+
+ /**
+ * Create a new input source with a system identifier.
+ *
+ * <p>Applications may use setPublicId to include a
+ * public identifier as well, or setEncoding to specify
+ * the character encoding, if known.</p>
+ *
+ * <p>If the system identifier is a URL, it must be fully
+ * resolved (it may not be a relative URL).</p>
+ *
+ * @param systemId The system identifier (URI).
+ * @see #setPublicId
+ * @see #setSystemId
+ * @see #setByteStream
+ * @see #setEncoding
+ * @see #setCharacterStream
+ */
+ public InputSource (String systemId)
+ {
+ setSystemId(systemId);
+ }
+
+
+ /**
+ * Create a new input source with a byte stream.
+ *
+ * <p>Application writers should use setSystemId() to provide a base
+ * for resolving relative URIs, may use setPublicId to include a
+ * public identifier, and may use setEncoding to specify the object's
+ * character encoding.</p>
+ *
+ * @param byteStream The raw byte stream containing the document.
+ * @see #setPublicId
+ * @see #setSystemId
+ * @see #setEncoding
+ * @see #setByteStream
+ * @see #setCharacterStream
+ */
+ public InputSource (InputStream byteStream)
+ {
+ setByteStream(byteStream);
+ }
+
+
+ /**
+ * Create a new input source with a character stream.
+ *
+ * <p>Application writers should use setSystemId() to provide a base
+ * for resolving relative URIs, and may use setPublicId to include a
+ * public identifier.</p>
+ *
+ * <p>The character stream shall not include a byte order mark.</p>
+ *
+ * @see #setPublicId
+ * @see #setSystemId
+ * @see #setByteStream
+ * @see #setCharacterStream
+ */
+ public InputSource (Reader characterStream)
+ {
+ setCharacterStream(characterStream);
+ }
+
+
+ /**
+ * Set the public identifier for this input source.
+ *
+ * <p>The public identifier is always optional: if the application
+ * writer includes one, it will be provided as part of the
+ * location information.</p>
+ *
+ * @param publicId The public identifier as a string.
+ * @see #getPublicId
+ * @see org.xml.sax.Locator#getPublicId
+ * @see org.xml.sax.SAXParseException#getPublicId
+ */
+ public void setPublicId (String publicId)
+ {
+ this.publicId = publicId;
+ }
+
+
+ /**
+ * Get the public identifier for this input source.
+ *
+ * @return The public identifier, or null if none was supplied.
+ * @see #setPublicId
+ */
+ public String getPublicId ()
+ {
+ return publicId;
+ }
+
+
+ /**
+ * Set the system identifier for this input source.
+ *
+ * <p>The system identifier is optional if there is a byte stream
+ * or a character stream, but it is still useful to provide one,
+ * since the application can use it to resolve relative URIs
+ * and can include it in error messages and warnings (the parser
+ * will attempt to open a connection to the URI only if
+ * there is no byte stream or character stream specified).</p>
+ *
+ * <p>If the application knows the character encoding of the
+ * object pointed to by the system identifier, it can register
+ * the encoding using the setEncoding method.</p>
+ *
+ * <p>If the system identifier is a URL, it must be fully
+ * resolved (it may not be a relative URL).</p>
+ *
+ * @param systemId The system identifier as a string.
+ * @see #setEncoding
+ * @see #getSystemId
+ * @see org.xml.sax.Locator#getSystemId
+ * @see org.xml.sax.SAXParseException#getSystemId
+ */
+ public void setSystemId (String systemId)
+ {
+ this.systemId = systemId;
+ }
+
+
+ /**
+ * Get the system identifier for this input source.
+ *
+ * <p>The getEncoding method will return the character encoding
+ * of the object pointed to, or null if unknown.</p>
+ *
+ * <p>If the system ID is a URL, it will be fully resolved.</p>
+ *
+ * @return The system identifier, or null if none was supplied.
+ * @see #setSystemId
+ * @see #getEncoding
+ */
+ public String getSystemId ()
+ {
+ return systemId;
+ }
+
+
+ /**
+ * Set the byte stream for this input source.
+ *
+ * <p>The SAX parser will ignore this if there is also a character
+ * stream specified, but it will use a byte stream in preference
+ * to opening a URI connection itself.</p>
+ *
+ * <p>If the application knows the character encoding of the
+ * byte stream, it should set it with the setEncoding method.</p>
+ *
+ * @param byteStream A byte stream containing an XML document or
+ * other entity.
+ * @see #setEncoding
+ * @see #getByteStream
+ * @see #getEncoding
+ * @see java.io.InputStream
+ */
+ public void setByteStream (InputStream byteStream)
+ {
+ this.byteStream = byteStream;
+ }
+
+
+ /**
+ * Get the byte stream for this input source.
+ *
+ * <p>The getEncoding method will return the character
+ * encoding for this byte stream, or null if unknown.</p>
+ *
+ * @return The byte stream, or null if none was supplied.
+ * @see #getEncoding
+ * @see #setByteStream
+ */
+ public InputStream getByteStream ()
+ {
+ return byteStream;
+ }
+
+
+ /**
+ * Set the character encoding, if known.
+ *
+ * <p>The encoding must be a string acceptable for an
+ * XML encoding declaration (see section 4.3.3 of the XML 1.0
+ * recommendation).</p>
+ *
+ * <p>This method has no effect when the application provides a
+ * character stream.</p>
+ *
+ * @param encoding A string describing the character encoding.
+ * @see #setSystemId
+ * @see #setByteStream
+ * @see #getEncoding
+ */
+ public void setEncoding (String encoding)
+ {
+ this.encoding = encoding;
+ }
+
+
+ /**
+ * Get the character encoding for a byte stream or URI.
+ * This value will be ignored when the application provides a
+ * character stream.
+ *
+ * @return The encoding, or null if none was supplied.
+ * @see #setByteStream
+ * @see #getSystemId
+ * @see #getByteStream
+ */
+ public String getEncoding ()
+ {
+ return encoding;
+ }
+
+
+ /**
+ * Set the character stream for this input source.
+ *
+ * <p>If there is a character stream specified, the SAX parser
+ * will ignore any byte stream and will not attempt to open
+ * a URI connection to the system identifier.</p>
+ *
+ * @param characterStream The character stream containing the
+ * XML document or other entity.
+ * @see #getCharacterStream
+ * @see java.io.Reader
+ */
+ public void setCharacterStream (Reader characterStream)
+ {
+ this.characterStream = characterStream;
+ }
+
+
+ /**
+ * Get the character stream for this input source.
+ *
+ * @return The character stream, or null if none was supplied.
+ * @see #setCharacterStream
+ */
+ public Reader getCharacterStream ()
+ {
+ return characterStream;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ private String publicId;
+ private String systemId;
+ private InputStream byteStream;
+ private String encoding;
+ private Reader characterStream;
+
+}
+
+// end of InputSource.java
diff --git a/libjava/org/xml/sax/Locator.java b/libjava/org/xml/sax/Locator.java
index be55656042e..d94c3ea4abd 100644
--- a/libjava/org/xml/sax/Locator.java
+++ b/libjava/org/xml/sax/Locator.java
@@ -1,126 +1,136 @@
-// SAX locator interface for document events.
-// No warranty; no copyright -- use this as you will.
-// $Id: Locator.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-
-/**
- * Interface for associating a SAX event with a document location.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>If a SAX parser provides location information to the SAX
- * application, it does so by implementing this interface and then
- * passing an instance to the application using the content
- * handler's {@link org.xml.sax.ContentHandler#setDocumentLocator
- * setDocumentLocator} method. The application can use the
- * object to obtain the location of any other content handler event
- * in the XML source document.</p>
- *
- * <p>Note that the results returned by the object will be valid only
- * during the scope of each content handler method: the application
- * will receive unpredictable results if it attempts to use the
- * locator at any other time.</p>
- *
- * <p>SAX parsers are not required to supply a locator, but they are
- * very strongly encouraged to do so. If the parser supplies a
- * locator, it must do so before reporting any other document events.
- * If no locator has been set by the time the application receives
- * the {@link org.xml.sax.ContentHandler#startDocument startDocument}
- * event, the application should assume that a locator is not
- * available.</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- */
-public interface Locator {
-
-
- /**
- * Return the public identifier for the current document event.
- *
- * <p>The return value is the public identifier of the document
- * entity or of the external parsed entity in which the markup
- * triggering the event appears.</p>
- *
- * @return A string containing the public identifier, or
- * null if none is available.
- * @see #getSystemId
- */
- public abstract String getPublicId ();
-
-
- /**
- * Return the system identifier for the current document event.
- *
- * <p>The return value is the system identifier of the document
- * entity or of the external parsed entity in which the markup
- * triggering the event appears.</p>
- *
- * <p>If the system identifier is a URL, the parser must resolve it
- * fully before passing it to the application.</p>
- *
- * @return A string containing the system identifier, or null
- * if none is available.
- * @see #getPublicId
- */
- public abstract String getSystemId ();
-
-
- /**
- * Return the line number where the current document event ends.
- *
- * <p><strong>Warning:</strong> The return value from the method
- * is intended only as an approximation for the sake of error
- * reporting; it is not intended to provide sufficient information
- * to edit the character content of the original XML document.</p>
- *
- * <p>The return value is an approximation of the line number
- * in the document entity or external parsed entity where the
- * markup triggering the event appears.</p>
- *
- * <p>If possible, the SAX driver should provide the line position
- * of the first character after the text associated with the document
- * event. The first line in the document is line 1.</p>
- *
- * @return The line number, or -1 if none is available.
- * @see #getColumnNumber
- */
- public abstract int getLineNumber ();
-
-
- /**
- * Return the column number where the current document event ends.
- *
- * <p><strong>Warning:</strong> The return value from the method
- * is intended only as an approximation for the sake of error
- * reporting; it is not intended to provide sufficient information
- * to edit the character content of the original XML document.</p>
- *
- * <p>The return value is an approximation of the column number
- * in the document entity or external parsed entity where the
- * markup triggering the event appears.</p>
- *
- * <p>If possible, the SAX driver should provide the line position
- * of the first character after the text associated with the document
- * event.</p>
- *
- * <p>If possible, the SAX driver should provide the line position
- * of the first character after the text associated with the document
- * event. The first column in each line is column 1.</p>
- *
- * @return The column number, or -1 if none is available.
- * @see #getLineNumber
- */
- public abstract int getColumnNumber ();
-
-}
-
-// end of Locator.java
+// SAX locator interface for document events.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: Locator.java,v 1.4.2.5 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+
+/**
+ * Interface for associating a SAX event with a document location.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>If a SAX parser provides location information to the SAX
+ * application, it does so by implementing this interface and then
+ * passing an instance to the application using the content
+ * handler's {@link org.xml.sax.ContentHandler#setDocumentLocator
+ * setDocumentLocator} method. The application can use the
+ * object to obtain the location of any other SAX event
+ * in the XML source document.</p>
+ *
+ * <p>Note that the results returned by the object will be valid only
+ * during the scope of each callback method: the application
+ * will receive unpredictable results if it attempts to use the
+ * locator at any other time, or after parsing completes.</p>
+ *
+ * <p>SAX parsers are not required to supply a locator, but they are
+ * very strongly encouraged to do so. If the parser supplies a
+ * locator, it must do so before reporting any other document events.
+ * If no locator has been set by the time the application receives
+ * the {@link org.xml.sax.ContentHandler#startDocument startDocument}
+ * event, the application should assume that a locator is not
+ * available.</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.ContentHandler#setDocumentLocator
+ */
+public interface Locator {
+
+
+ /**
+ * Return the public identifier for the current document event.
+ *
+ * <p>The return value is the public identifier of the document
+ * entity or of the external parsed entity in which the markup
+ * triggering the event appears.</p>
+ *
+ * @return A string containing the public identifier, or
+ * null if none is available.
+ * @see #getSystemId
+ */
+ public abstract String getPublicId ();
+
+
+ /**
+ * Return the system identifier for the current document event.
+ *
+ * <p>The return value is the system identifier of the document
+ * entity or of the external parsed entity in which the markup
+ * triggering the event appears.</p>
+ *
+ * <p>If the system identifier is a URL, the parser must resolve it
+ * fully before passing it to the application. For example, a file
+ * name must always be provided as a <em>file:...</em> URL, and other
+ * kinds of relative URI are also resolved against their bases.</p>
+ *
+ * @return A string containing the system identifier, or null
+ * if none is available.
+ * @see #getPublicId
+ */
+ public abstract String getSystemId ();
+
+
+ /**
+ * Return the line number where the current document event ends.
+ * Lines are delimited by line ends, which are defined in
+ * the XML specification.
+ *
+ * <p><strong>Warning:</strong> The return value from the method
+ * is intended only as an approximation for the sake of diagnostics;
+ * it is not intended to provide sufficient information
+ * to edit the character content of the original XML document.
+ * In some cases, these "line" numbers match what would be displayed
+ * as columns, and in others they may not match the source text
+ * due to internal entity expansion. </p>
+ *
+ * <p>The return value is an approximation of the line number
+ * in the document entity or external parsed entity where the
+ * markup triggering the event appears.</p>
+ *
+ * <p>If possible, the SAX driver should provide the line position
+ * of the first character after the text associated with the document
+ * event. The first line is line 1.</p>
+ *
+ * @return The line number, or -1 if none is available.
+ * @see #getColumnNumber
+ */
+ public abstract int getLineNumber ();
+
+
+ /**
+ * Return the column number where the current document event ends.
+ * This is one-based number of Java <code>char</code> values since
+ * the last line end.
+ *
+ * <p><strong>Warning:</strong> The return value from the method
+ * is intended only as an approximation for the sake of diagnostics;
+ * it is not intended to provide sufficient information
+ * to edit the character content of the original XML document.
+ * For example, when lines contain combining character sequences, wide
+ * characters, surrogate pairs, or bi-directional text, the value may
+ * not correspond to the column in a text editor's display. </p>
+ *
+ * <p>The return value is an approximation of the column number
+ * in the document entity or external parsed entity where the
+ * markup triggering the event appears.</p>
+ *
+ * <p>If possible, the SAX driver should provide the line position
+ * of the first character after the text associated with the document
+ * event. The first column in each line is column 1.</p>
+ *
+ * @return The column number, or -1 if none is available.
+ * @see #getLineNumber
+ */
+ public abstract int getColumnNumber ();
+
+}
+
+// end of Locator.java
diff --git a/libjava/org/xml/sax/Parser.java b/libjava/org/xml/sax/Parser.java
index e775ca97c87..2999265c4c3 100644
--- a/libjava/org/xml/sax/Parser.java
+++ b/libjava/org/xml/sax/Parser.java
@@ -1,207 +1,209 @@
-// SAX parser interface.
-// No warranty; no copyright -- use this as you will.
-// $Id: Parser.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-import java.io.IOException;
-import java.util.Locale;
-
-
-/**
- * Basic interface for SAX (Simple API for XML) parsers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This was the main event supplier interface for SAX1; it has
- * been replaced in SAX2 by {@link org.xml.sax.XMLReader XMLReader},
- * which includes Namespace support and sophisticated configurability
- * and extensibility.</p>
- *
- * <p>All SAX1 parsers must implement this basic interface: it allows
- * applications to register handlers for different types of events
- * and to initiate a parse from a URI, or a character stream.</p>
- *
- * <p>All SAX1 parsers must also implement a zero-argument constructor
- * (though other constructors are also allowed).</p>
- *
- * <p>SAX1 parsers are reusable but not re-entrant: the application
- * may reuse a parser object (possibly with a different input source)
- * once the first parse has completed successfully, but it may not
- * invoke the parse() methods recursively within a parse.</p>
- *
- * @deprecated This interface has been replaced by the SAX2
- * {@link org.xml.sax.XMLReader XMLReader}
- * interface, which includes Namespace support.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.EntityResolver
- * @see org.xml.sax.DTDHandler
- * @see org.xml.sax.DocumentHandler
- * @see org.xml.sax.ErrorHandler
- * @see org.xml.sax.HandlerBase
- * @see org.xml.sax.InputSource
- */
-public interface Parser
-{
-
- /**
- * Allow an application to request a locale for errors and warnings.
- *
- * <p>SAX parsers are not required to provide localisation for errors
- * and warnings; if they cannot support the requested locale,
- * however, they must throw a SAX exception. Applications may
- * not request a locale change in the middle of a parse.</p>
- *
- * @param locale A Java Locale object.
- * @exception org.xml.sax.SAXException Throws an exception
- * (using the previous or default locale) if the
- * requested locale is not supported.
- * @see org.xml.sax.SAXException
- * @see org.xml.sax.SAXParseException
- */
- public abstract void setLocale (Locale locale)
- throws SAXException;
-
-
- /**
- * Allow an application to register a custom entity resolver.
- *
- * <p>If the application does not register an entity resolver, the
- * SAX parser will resolve system identifiers and open connections
- * to entities itself (this is the default behaviour implemented in
- * HandlerBase).</p>
- *
- * <p>Applications may register a new or different entity resolver
- * in the middle of a parse, and the SAX parser must begin using
- * the new resolver immediately.</p>
- *
- * @param resolver The object for resolving entities.
- * @see EntityResolver
- * @see HandlerBase
- */
- public abstract void setEntityResolver (EntityResolver resolver);
-
-
- /**
- * Allow an application to register a DTD event handler.
- *
- * <p>If the application does not register a DTD handler, all DTD
- * events reported by the SAX parser will be silently
- * ignored (this is the default behaviour implemented by
- * HandlerBase).</p>
- *
- * <p>Applications may register a new or different
- * handler in the middle of a parse, and the SAX parser must
- * begin using the new handler immediately.</p>
- *
- * @param handler The DTD handler.
- * @see DTDHandler
- * @see HandlerBase
- */
- public abstract void setDTDHandler (DTDHandler handler);
-
-
- /**
- * Allow an application to register a document event handler.
- *
- * <p>If the application does not register a document handler, all
- * document events reported by the SAX parser will be silently
- * ignored (this is the default behaviour implemented by
- * HandlerBase).</p>
- *
- * <p>Applications may register a new or different handler in the
- * middle of a parse, and the SAX parser must begin using the new
- * handler immediately.</p>
- *
- * @param handler The document handler.
- * @see DocumentHandler
- * @see HandlerBase
- */
- public abstract void setDocumentHandler (DocumentHandler handler);
-
-
- /**
- * Allow an application to register an error event handler.
- *
- * <p>If the application does not register an error event handler,
- * all error events reported by the SAX parser will be silently
- * ignored, except for fatalError, which will throw a SAXException
- * (this is the default behaviour implemented by HandlerBase).</p>
- *
- * <p>Applications may register a new or different handler in the
- * middle of a parse, and the SAX parser must begin using the new
- * handler immediately.</p>
- *
- * @param handler The error handler.
- * @see ErrorHandler
- * @see SAXException
- * @see HandlerBase
- */
- public abstract void setErrorHandler (ErrorHandler handler);
-
-
- /**
- * Parse an XML document.
- *
- * <p>The application can use this method to instruct the SAX parser
- * to begin parsing an XML document from any valid input
- * source (a character stream, a byte stream, or a URI).</p>
- *
- * <p>Applications may not invoke this method while a parse is in
- * progress (they should create a new Parser instead for each
- * additional XML document). Once a parse is complete, an
- * application may reuse the same Parser object, possibly with a
- * different input source.</p>
- *
- * @param source The input source for the top-level of the
- * XML document.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see org.xml.sax.InputSource
- * @see #parse(java.lang.String)
- * @see #setEntityResolver
- * @see #setDTDHandler
- * @see #setDocumentHandler
- * @see #setErrorHandler
- */
- public abstract void parse (InputSource source)
- throws SAXException, IOException;
-
-
- /**
- * Parse an XML document from a system identifier (URI).
- *
- * <p>This method is a shortcut for the common case of reading a
- * document from a system identifier. It is the exact
- * equivalent of the following:</p>
- *
- * <pre>
- * parse(new InputSource(systemId));
- * </pre>
- *
- * <p>If the system identifier is a URL, it must be fully resolved
- * by the application before it is passed to the parser.</p>
- *
- * @param systemId The system identifier (URI).
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see #parse(org.xml.sax.InputSource)
- */
- public abstract void parse (String systemId)
- throws SAXException, IOException;
-
-}
-
-// end of Parser.java
+// SAX parser interface.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: Parser.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+import java.io.IOException;
+import java.util.Locale;
+
+
+/**
+ * Basic interface for SAX (Simple API for XML) parsers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This was the main event supplier interface for SAX1; it has
+ * been replaced in SAX2 by {@link org.xml.sax.XMLReader XMLReader},
+ * which includes Namespace support and sophisticated configurability
+ * and extensibility.</p>
+ *
+ * <p>All SAX1 parsers must implement this basic interface: it allows
+ * applications to register handlers for different types of events
+ * and to initiate a parse from a URI, or a character stream.</p>
+ *
+ * <p>All SAX1 parsers must also implement a zero-argument constructor
+ * (though other constructors are also allowed).</p>
+ *
+ * <p>SAX1 parsers are reusable but not re-entrant: the application
+ * may reuse a parser object (possibly with a different input source)
+ * once the first parse has completed successfully, but it may not
+ * invoke the parse() methods recursively within a parse.</p>
+ *
+ * @deprecated This interface has been replaced by the SAX2
+ * {@link org.xml.sax.XMLReader XMLReader}
+ * interface, which includes Namespace support.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.EntityResolver
+ * @see org.xml.sax.DTDHandler
+ * @see org.xml.sax.DocumentHandler
+ * @see org.xml.sax.ErrorHandler
+ * @see org.xml.sax.HandlerBase
+ * @see org.xml.sax.InputSource
+ */
+public interface Parser
+{
+
+ /**
+ * Allow an application to request a locale for errors and warnings.
+ *
+ * <p>SAX parsers are not required to provide localisation for errors
+ * and warnings; if they cannot support the requested locale,
+ * however, they must throw a SAX exception. Applications may
+ * not request a locale change in the middle of a parse.</p>
+ *
+ * @param locale A Java Locale object.
+ * @exception org.xml.sax.SAXException Throws an exception
+ * (using the previous or default locale) if the
+ * requested locale is not supported.
+ * @see org.xml.sax.SAXException
+ * @see org.xml.sax.SAXParseException
+ */
+ public abstract void setLocale (Locale locale)
+ throws SAXException;
+
+
+ /**
+ * Allow an application to register a custom entity resolver.
+ *
+ * <p>If the application does not register an entity resolver, the
+ * SAX parser will resolve system identifiers and open connections
+ * to entities itself (this is the default behaviour implemented in
+ * HandlerBase).</p>
+ *
+ * <p>Applications may register a new or different entity resolver
+ * in the middle of a parse, and the SAX parser must begin using
+ * the new resolver immediately.</p>
+ *
+ * @param resolver The object for resolving entities.
+ * @see EntityResolver
+ * @see HandlerBase
+ */
+ public abstract void setEntityResolver (EntityResolver resolver);
+
+
+ /**
+ * Allow an application to register a DTD event handler.
+ *
+ * <p>If the application does not register a DTD handler, all DTD
+ * events reported by the SAX parser will be silently
+ * ignored (this is the default behaviour implemented by
+ * HandlerBase).</p>
+ *
+ * <p>Applications may register a new or different
+ * handler in the middle of a parse, and the SAX parser must
+ * begin using the new handler immediately.</p>
+ *
+ * @param handler The DTD handler.
+ * @see DTDHandler
+ * @see HandlerBase
+ */
+ public abstract void setDTDHandler (DTDHandler handler);
+
+
+ /**
+ * Allow an application to register a document event handler.
+ *
+ * <p>If the application does not register a document handler, all
+ * document events reported by the SAX parser will be silently
+ * ignored (this is the default behaviour implemented by
+ * HandlerBase).</p>
+ *
+ * <p>Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately.</p>
+ *
+ * @param handler The document handler.
+ * @see DocumentHandler
+ * @see HandlerBase
+ */
+ public abstract void setDocumentHandler (DocumentHandler handler);
+
+
+ /**
+ * Allow an application to register an error event handler.
+ *
+ * <p>If the application does not register an error event handler,
+ * all error events reported by the SAX parser will be silently
+ * ignored, except for fatalError, which will throw a SAXException
+ * (this is the default behaviour implemented by HandlerBase).</p>
+ *
+ * <p>Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately.</p>
+ *
+ * @param handler The error handler.
+ * @see ErrorHandler
+ * @see SAXException
+ * @see HandlerBase
+ */
+ public abstract void setErrorHandler (ErrorHandler handler);
+
+
+ /**
+ * Parse an XML document.
+ *
+ * <p>The application can use this method to instruct the SAX parser
+ * to begin parsing an XML document from any valid input
+ * source (a character stream, a byte stream, or a URI).</p>
+ *
+ * <p>Applications may not invoke this method while a parse is in
+ * progress (they should create a new Parser instead for each
+ * additional XML document). Once a parse is complete, an
+ * application may reuse the same Parser object, possibly with a
+ * different input source.</p>
+ *
+ * @param source The input source for the top-level of the
+ * XML document.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ * @see org.xml.sax.InputSource
+ * @see #parse(java.lang.String)
+ * @see #setEntityResolver
+ * @see #setDTDHandler
+ * @see #setDocumentHandler
+ * @see #setErrorHandler
+ */
+ public abstract void parse (InputSource source)
+ throws SAXException, IOException;
+
+
+ /**
+ * Parse an XML document from a system identifier (URI).
+ *
+ * <p>This method is a shortcut for the common case of reading a
+ * document from a system identifier. It is the exact
+ * equivalent of the following:</p>
+ *
+ * <pre>
+ * parse(new InputSource(systemId));
+ * </pre>
+ *
+ * <p>If the system identifier is a URL, it must be fully resolved
+ * by the application before it is passed to the parser.</p>
+ *
+ * @param systemId The system identifier (URI).
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ * @see #parse(org.xml.sax.InputSource)
+ */
+ public abstract void parse (String systemId)
+ throws SAXException, IOException;
+
+}
+
+// end of Parser.java
diff --git a/libjava/org/xml/sax/SAXException.java b/libjava/org/xml/sax/SAXException.java
index 69537e91706..b11d998edad 100644
--- a/libjava/org/xml/sax/SAXException.java
+++ b/libjava/org/xml/sax/SAXException.java
@@ -1,144 +1,153 @@
-// SAX exception class.
-// No warranty; no copyright -- use this as you will.
-// $Id: SAXException.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Encapsulate a general SAX error or warning.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class can contain basic error or warning information from
- * either the XML parser or the application: a parser writer or
- * application writer can subclass it to provide additional
- * functionality. SAX handlers may throw this exception or
- * any exception subclassed from it.</p>
- *
- * <p>If the application needs to pass through other types of
- * exceptions, it must wrap those exceptions in a SAXException
- * or an exception derived from a SAXException.</p>
- *
- * <p>If the parser or application needs to include information about a
- * specific location in an XML document, it should use the
- * {@link org.xml.sax.SAXParseException SAXParseException} subclass.</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.SAXParseException
- */
-public class SAXException extends Exception {
-
-
- /**
- * Create a new SAXException.
- *
- * @param message The error or warning message.
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXException (String message) {
- super(message);
- this.exception = null;
- }
-
-
- /**
- * Create a new SAXException wrapping an existing exception.
- *
- * <p>The existing exception will be embedded in the new
- * one, and its message will become the default message for
- * the SAXException.</p>
- *
- * @param e The exception to be wrapped in a SAXException.
- */
- public SAXException (Exception e)
- {
- super();
- this.exception = e;
- }
-
-
- /**
- * Create a new SAXException from an existing exception.
- *
- * <p>The existing exception will be embedded in the new
- * one, but the new exception will have its own message.</p>
- *
- * @param message The detail message.
- * @param e The exception to be wrapped in a SAXException.
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXException (String message, Exception e)
- {
- super(message);
- this.exception = e;
- }
-
-
- /**
- * Return a detail message for this exception.
- *
- * <p>If there is an embedded exception, and if the SAXException
- * has no detail message of its own, this method will return
- * the detail message from the embedded exception.</p>
- *
- * @return The error or warning message.
- * @see org.xml.sax.Parser#setLocale
- */
- public String getMessage ()
- {
- String message = super.getMessage();
-
- if (message == null && exception != null) {
- return exception.getMessage();
- } else {
- return message;
- }
- }
-
-
- /**
- * Return the embedded exception, if any.
- *
- * @return The embedded exception, or null if there is none.
- */
- public Exception getException ()
- {
- return exception;
- }
-
-
- /**
- * Override toString to pick up any embedded exception.
- *
- * @return A string representation of this exception.
- */
- public String toString ()
- {
- if (exception != null) {
- return exception.toString();
- } else {
- return super.toString();
- }
- }
-
-
-
- //////////////////////////////////////////////////////////////////////
- // Internal state.
- //////////////////////////////////////////////////////////////////////
-
-
- /**
- * @serial The embedded exception if tunnelling, or null.
- */
- private Exception exception;
-
-}
-
-// end of SAXException.java
+// SAX exception class.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: SAXException.java,v 1.4.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Encapsulate a general SAX error or warning.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class can contain basic error or warning information from
+ * either the XML parser or the application: a parser writer or
+ * application writer can subclass it to provide additional
+ * functionality. SAX handlers may throw this exception or
+ * any exception subclassed from it.</p>
+ *
+ * <p>If the application needs to pass through other types of
+ * exceptions, it must wrap those exceptions in a SAXException
+ * or an exception derived from a SAXException.</p>
+ *
+ * <p>If the parser or application needs to include information about a
+ * specific location in an XML document, it should use the
+ * {@link org.xml.sax.SAXParseException SAXParseException} subclass.</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.SAXParseException
+ */
+public class SAXException extends Exception {
+
+
+ /**
+ * Create a new SAXException.
+ */
+ public SAXException ()
+ {
+ super();
+ this.exception = null;
+ }
+
+
+ /**
+ * Create a new SAXException.
+ *
+ * @param message The error or warning message.
+ */
+ public SAXException (String message) {
+ super(message);
+ this.exception = null;
+ }
+
+
+ /**
+ * Create a new SAXException wrapping an existing exception.
+ *
+ * <p>The existing exception will be embedded in the new
+ * one, and its message will become the default message for
+ * the SAXException.</p>
+ *
+ * @param e The exception to be wrapped in a SAXException.
+ */
+ public SAXException (Exception e)
+ {
+ super();
+ this.exception = e;
+ }
+
+
+ /**
+ * Create a new SAXException from an existing exception.
+ *
+ * <p>The existing exception will be embedded in the new
+ * one, but the new exception will have its own message.</p>
+ *
+ * @param message The detail message.
+ * @param e The exception to be wrapped in a SAXException.
+ */
+ public SAXException (String message, Exception e)
+ {
+ super(message);
+ this.exception = e;
+ }
+
+
+ /**
+ * Return a detail message for this exception.
+ *
+ * <p>If there is an embedded exception, and if the SAXException
+ * has no detail message of its own, this method will return
+ * the detail message from the embedded exception.</p>
+ *
+ * @return The error or warning message.
+ */
+ public String getMessage ()
+ {
+ String message = super.getMessage();
+
+ if (message == null && exception != null) {
+ return exception.getMessage();
+ } else {
+ return message;
+ }
+ }
+
+
+ /**
+ * Return the embedded exception, if any.
+ *
+ * @return The embedded exception, or null if there is none.
+ */
+ public Exception getException ()
+ {
+ return exception;
+ }
+
+
+ /**
+ * Override toString to pick up any embedded exception.
+ *
+ * @return A string representation of this exception.
+ */
+ public String toString ()
+ {
+ if (exception != null) {
+ return exception.toString();
+ } else {
+ return super.toString();
+ }
+ }
+
+
+
+ //////////////////////////////////////////////////////////////////////
+ // Internal state.
+ //////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * @serial The embedded exception if tunnelling, or null.
+ */
+ private Exception exception;
+
+}
+
+// end of SAXException.java
diff --git a/libjava/org/xml/sax/SAXNotRecognizedException.java b/libjava/org/xml/sax/SAXNotRecognizedException.java
index 0fbc4c85ba9..83aac69a7d3 100644
--- a/libjava/org/xml/sax/SAXNotRecognizedException.java
+++ b/libjava/org/xml/sax/SAXNotRecognizedException.java
@@ -1,44 +1,55 @@
-// SAXNotRecognizedException.java - unrecognized feature or value.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: SAXNotRecognizedException.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-
-package org.xml.sax;
-
-
-/**
- * Exception class for an unrecognized identifier.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>An XMLReader will throw this exception when it finds an
- * unrecognized feature or property identifier; SAX applications and
- * extensions may use this class for other, similar purposes.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.SAXNotSupportedException
- */
-public class SAXNotRecognizedException extends SAXException
-{
-
- /**
- * Construct a new exception with the given message.
- *
- * @param message The text message of the exception.
- */
- public SAXNotRecognizedException (String message)
- {
- super(message);
- }
-
-}
-
-// end of SAXNotRecognizedException.java
+// SAXNotRecognizedException.java - unrecognized feature or value.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: SAXNotRecognizedException.java,v 1.4.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+
+package org.xml.sax;
+
+
+/**
+ * Exception class for an unrecognized identifier.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>An XMLReader will throw this exception when it finds an
+ * unrecognized feature or property identifier; SAX applications and
+ * extensions may use this class for other, similar purposes.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.SAXNotSupportedException
+ */
+public class SAXNotRecognizedException extends SAXException
+{
+
+ /**
+ * Default constructor.
+ */
+ public SAXNotRecognizedException ()
+ {
+ super();
+ }
+
+
+ /**
+ * Construct a new exception with the given message.
+ *
+ * @param message The text message of the exception.
+ */
+ public SAXNotRecognizedException (String message)
+ {
+ super(message);
+ }
+
+}
+
+// end of SAXNotRecognizedException.java
diff --git a/libjava/org/xml/sax/SAXNotSupportedException.java b/libjava/org/xml/sax/SAXNotSupportedException.java
index 3376d47cc5b..2939eb192a5 100644
--- a/libjava/org/xml/sax/SAXNotSupportedException.java
+++ b/libjava/org/xml/sax/SAXNotSupportedException.java
@@ -1,44 +1,55 @@
-// SAXNotSupportedException.java - unsupported feature or value.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: SAXNotSupportedException.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-
-package org.xml.sax;
-
-/**
- * Exception class for an unsupported operation.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>An XMLReader will throw this exception when it recognizes a
- * feature or property identifier, but cannot perform the requested
- * operation (setting a state or value). Other SAX2 applications and
- * extensions may use this class for similar purposes.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.SAXNotRecognizedException
- */
-public class SAXNotSupportedException extends SAXException
-{
-
- /**
- * Construct a new exception with the given message.
- *
- * @param message The text message of the exception.
- */
- public SAXNotSupportedException (String message)
- {
- super(message);
- }
-
-}
-
-// end of SAXNotSupportedException.java
+// SAXNotSupportedException.java - unsupported feature or value.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: SAXNotSupportedException.java,v 1.4.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+
+package org.xml.sax;
+
+/**
+ * Exception class for an unsupported operation.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>An XMLReader will throw this exception when it recognizes a
+ * feature or property identifier, but cannot perform the requested
+ * operation (setting a state or value). Other SAX2 applications and
+ * extensions may use this class for similar purposes.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.SAXNotRecognizedException
+ */
+public class SAXNotSupportedException extends SAXException
+{
+
+ /**
+ * Construct a new exception with no message.
+ */
+ public SAXNotSupportedException ()
+ {
+ super();
+ }
+
+
+ /**
+ * Construct a new exception with the given message.
+ *
+ * @param message The text message of the exception.
+ */
+ public SAXNotSupportedException (String message)
+ {
+ super(message);
+ }
+
+}
+
+// end of SAXNotSupportedException.java
diff --git a/libjava/org/xml/sax/SAXParseException.java b/libjava/org/xml/sax/SAXParseException.java
index a5dcc06f0fb..e87d79f3f74 100644
--- a/libjava/org/xml/sax/SAXParseException.java
+++ b/libjava/org/xml/sax/SAXParseException.java
@@ -1,264 +1,270 @@
-// SAX exception class.
-// No warranty; no copyright -- use this as you will.
-// $Id: SAXParseException.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-/**
- * Encapsulate an XML parse error or warning.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This exception will include information for locating the error
- * in the original XML document. Note that although the application
- * will receive a SAXParseException as the argument to the handlers
- * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface,
- * the application is not actually required to throw the exception;
- * instead, it can simply read the information in it and take a
- * different action.</p>
- *
- * <p>Since this exception is a subclass of {@link org.xml.sax.SAXException
- * SAXException}, it inherits the ability to wrap another exception.</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.SAXException
- * @see org.xml.sax.Locator
- * @see org.xml.sax.ErrorHandler
- */
-public class SAXParseException extends SAXException {
-
-
- //////////////////////////////////////////////////////////////////////
- // Constructors.
- //////////////////////////////////////////////////////////////////////
-
-
- /**
- * Create a new SAXParseException from a message and a Locator.
- *
- * <p>This constructor is especially useful when an application is
- * creating its own exception from within a {@link org.xml.sax.ContentHandler
- * ContentHandler} callback.</p>
- *
- * @param message The error or warning message.
- * @param locator The locator object for the error or warning (may be
- * null).
- * @see org.xml.sax.Locator
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXParseException (String message, Locator locator) {
- super(message);
- if (locator != null) {
- init(locator.getPublicId(), locator.getSystemId(),
- locator.getLineNumber(), locator.getColumnNumber());
- } else {
- init(null, null, -1, -1);
- }
- }
-
-
- /**
- * Wrap an existing exception in a SAXParseException.
- *
- * <p>This constructor is especially useful when an application is
- * creating its own exception from within a {@link org.xml.sax.ContentHandler
- * ContentHandler} callback, and needs to wrap an existing exception that is not a
- * subclass of {@link org.xml.sax.SAXException SAXException}.</p>
- *
- * @param message The error or warning message, or null to
- * use the message from the embedded exception.
- * @param locator The locator object for the error or warning (may be
- * null).
- * @param e Any exception.
- * @see org.xml.sax.Locator
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXParseException (String message, Locator locator,
- Exception e) {
- super(message, e);
- if (locator != null) {
- init(locator.getPublicId(), locator.getSystemId(),
- locator.getLineNumber(), locator.getColumnNumber());
- } else {
- init(null, null, -1, -1);
- }
- }
-
-
- /**
- * Create a new SAXParseException.
- *
- * <p>This constructor is most useful for parser writers.</p>
- *
- * <p>If the system identifier is a URL, the parser must resolve it
- * fully before creating the exception.</p>
- *
- * @param message The error or warning message.
- * @param publicId The public identifier of the entity that generated
- * the error or warning.
- * @param systemId The system identifier of the entity that generated
- * the error or warning.
- * @param lineNumber The line number of the end of the text that
- * caused the error or warning.
- * @param columnNumber The column number of the end of the text that
- * cause the error or warning.
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXParseException (String message, String publicId, String systemId,
- int lineNumber, int columnNumber)
- {
- super(message);
- init(publicId, systemId, lineNumber, columnNumber);
- }
-
-
- /**
- * Create a new SAXParseException with an embedded exception.
- *
- * <p>This constructor is most useful for parser writers who
- * need to wrap an exception that is not a subclass of
- * {@link org.xml.sax.SAXException SAXException}.</p>
- *
- * <p>If the system identifier is a URL, the parser must resolve it
- * fully before creating the exception.</p>
- *
- * @param message The error or warning message, or null to use
- * the message from the embedded exception.
- * @param publicId The public identifier of the entity that generated
- * the error or warning.
- * @param systemId The system identifier of the entity that generated
- * the error or warning.
- * @param lineNumber The line number of the end of the text that
- * caused the error or warning.
- * @param columnNumber The column number of the end of the text that
- * cause the error or warning.
- * @param e Another exception to embed in this one.
- * @see org.xml.sax.Parser#setLocale
- */
- public SAXParseException (String message, String publicId, String systemId,
- int lineNumber, int columnNumber, Exception e)
- {
- super(message, e);
- init(publicId, systemId, lineNumber, columnNumber);
- }
-
-
- /**
- * Internal initialization method.
- *
- * @param publicId The public identifier of the entity which generated the exception,
- * or null.
- * @param systemId The system identifier of the entity which generated the exception,
- * or null.
- * @param lineNumber The line number of the error, or -1.
- * @param columnNumber The column number of the error, or -1.
- */
- private void init (String publicId, String systemId,
- int lineNumber, int columnNumber)
- {
- this.publicId = publicId;
- this.systemId = systemId;
- this.lineNumber = lineNumber;
- this.columnNumber = columnNumber;
- }
-
-
- /**
- * Get the public identifier of the entity where the exception occurred.
- *
- * @return A string containing the public identifier, or null
- * if none is available.
- * @see org.xml.sax.Locator#getPublicId
- */
- public String getPublicId ()
- {
- return this.publicId;
- }
-
-
- /**
- * Get the system identifier of the entity where the exception occurred.
- *
- * <p>If the system identifier is a URL, it will be resolved
- * fully.</p>
- *
- * @return A string containing the system identifier, or null
- * if none is available.
- * @see org.xml.sax.Locator#getSystemId
- */
- public String getSystemId ()
- {
- return this.systemId;
- }
-
-
- /**
- * The line number of the end of the text where the exception occurred.
- *
- * @return An integer representing the line number, or -1
- * if none is available.
- * @see org.xml.sax.Locator#getLineNumber
- */
- public int getLineNumber ()
- {
- return this.lineNumber;
- }
-
-
- /**
- * The column number of the end of the text where the exception occurred.
- *
- * <p>The first column in a line is position 1.</p>
- *
- * @return An integer representing the column number, or -1
- * if none is available.
- * @see org.xml.sax.Locator#getColumnNumber
- */
- public int getColumnNumber ()
- {
- return this.columnNumber;
- }
-
-
-
- //////////////////////////////////////////////////////////////////////
- // Internal state.
- //////////////////////////////////////////////////////////////////////
-
-
- /**
- * @serial The public identifier, or null.
- * @see #getPublicId
- */
- private String publicId;
-
-
- /**
- * @serial The system identifier, or null.
- * @see #getSystemId
- */
- private String systemId;
-
-
- /**
- * @serial The line number, or -1.
- * @see #getLineNumber
- */
- private int lineNumber;
-
-
- /**
- * @serial The column number, or -1.
- * @see #getColumnNumber
- */
- private int columnNumber;
-
-}
-
-// end of SAXParseException.java
+// SAX exception class.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: SAXParseException.java,v 1.3.2.5 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+/**
+ * Encapsulate an XML parse error or warning.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This exception may include information for locating the error
+ * in the original XML document, as if it came from a {@link Locator}
+ * object. Note that although the application
+ * will receive a SAXParseException as the argument to the handlers
+ * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface,
+ * the application is not actually required to throw the exception;
+ * instead, it can simply read the information in it and take a
+ * different action.</p>
+ *
+ * <p>Since this exception is a subclass of {@link org.xml.sax.SAXException
+ * SAXException}, it inherits the ability to wrap another exception.</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.SAXException
+ * @see org.xml.sax.Locator
+ * @see org.xml.sax.ErrorHandler
+ */
+public class SAXParseException extends SAXException {
+
+
+ //////////////////////////////////////////////////////////////////////
+ // Constructors.
+ //////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Create a new SAXParseException from a message and a Locator.
+ *
+ * <p>This constructor is especially useful when an application is
+ * creating its own exception from within a {@link org.xml.sax.ContentHandler
+ * ContentHandler} callback.</p>
+ *
+ * @param message The error or warning message.
+ * @param locator The locator object for the error or warning (may be
+ * null).
+ * @see org.xml.sax.Locator
+ */
+ public SAXParseException (String message, Locator locator) {
+ super(message);
+ if (locator != null) {
+ init(locator.getPublicId(), locator.getSystemId(),
+ locator.getLineNumber(), locator.getColumnNumber());
+ } else {
+ init(null, null, -1, -1);
+ }
+ }
+
+
+ /**
+ * Wrap an existing exception in a SAXParseException.
+ *
+ * <p>This constructor is especially useful when an application is
+ * creating its own exception from within a {@link org.xml.sax.ContentHandler
+ * ContentHandler} callback, and needs to wrap an existing exception that is not a
+ * subclass of {@link org.xml.sax.SAXException SAXException}.</p>
+ *
+ * @param message The error or warning message, or null to
+ * use the message from the embedded exception.
+ * @param locator The locator object for the error or warning (may be
+ * null).
+ * @param e Any exception.
+ * @see org.xml.sax.Locator
+ */
+ public SAXParseException (String message, Locator locator,
+ Exception e) {
+ super(message, e);
+ if (locator != null) {
+ init(locator.getPublicId(), locator.getSystemId(),
+ locator.getLineNumber(), locator.getColumnNumber());
+ } else {
+ init(null, null, -1, -1);
+ }
+ }
+
+
+ /**
+ * Create a new SAXParseException.
+ *
+ * <p>This constructor is most useful for parser writers.</p>
+ *
+ * <p>All parameters except the message are as if
+ * they were provided by a {@link Locator}. For example, if the
+ * system identifier is a URL (including relative filename), the
+ * caller must resolve it fully before creating the exception.</p>
+ *
+ *
+ * @param message The error or warning message.
+ * @param publicId The public identifer of the entity that generated
+ * the error or warning.
+ * @param systemId The system identifer of the entity that generated
+ * the error or warning.
+ * @param lineNumber The line number of the end of the text that
+ * caused the error or warning.
+ * @param columnNumber The column number of the end of the text that
+ * cause the error or warning.
+ */
+ public SAXParseException (String message, String publicId, String systemId,
+ int lineNumber, int columnNumber)
+ {
+ super(message);
+ init(publicId, systemId, lineNumber, columnNumber);
+ }
+
+
+ /**
+ * Create a new SAXParseException with an embedded exception.
+ *
+ * <p>This constructor is most useful for parser writers who
+ * need to wrap an exception that is not a subclass of
+ * {@link org.xml.sax.SAXException SAXException}.</p>
+ *
+ * <p>All parameters except the message and exception are as if
+ * they were provided by a {@link Locator}. For example, if the
+ * system identifier is a URL (including relative filename), the
+ * caller must resolve it fully before creating the exception.</p>
+ *
+ * @param message The error or warning message, or null to use
+ * the message from the embedded exception.
+ * @param publicId The public identifer of the entity that generated
+ * the error or warning.
+ * @param systemId The system identifer of the entity that generated
+ * the error or warning.
+ * @param lineNumber The line number of the end of the text that
+ * caused the error or warning.
+ * @param columnNumber The column number of the end of the text that
+ * cause the error or warning.
+ * @param e Another exception to embed in this one.
+ */
+ public SAXParseException (String message, String publicId, String systemId,
+ int lineNumber, int columnNumber, Exception e)
+ {
+ super(message, e);
+ init(publicId, systemId, lineNumber, columnNumber);
+ }
+
+
+ /**
+ * Internal initialization method.
+ *
+ * @param publicId The public identifier of the entity which generated the exception,
+ * or null.
+ * @param systemId The system identifier of the entity which generated the exception,
+ * or null.
+ * @param lineNumber The line number of the error, or -1.
+ * @param columnNumber The column number of the error, or -1.
+ */
+ private void init (String publicId, String systemId,
+ int lineNumber, int columnNumber)
+ {
+ this.publicId = publicId;
+ this.systemId = systemId;
+ this.lineNumber = lineNumber;
+ this.columnNumber = columnNumber;
+ }
+
+
+ /**
+ * Get the public identifier of the entity where the exception occurred.
+ *
+ * @return A string containing the public identifier, or null
+ * if none is available.
+ * @see org.xml.sax.Locator#getPublicId
+ */
+ public String getPublicId ()
+ {
+ return this.publicId;
+ }
+
+
+ /**
+ * Get the system identifier of the entity where the exception occurred.
+ *
+ * <p>If the system identifier is a URL, it will have been resolved
+ * fully.</p>
+ *
+ * @return A string containing the system identifier, or null
+ * if none is available.
+ * @see org.xml.sax.Locator#getSystemId
+ */
+ public String getSystemId ()
+ {
+ return this.systemId;
+ }
+
+
+ /**
+ * The line number of the end of the text where the exception occurred.
+ *
+ * <p>The first line is line 1.</p>
+ *
+ * @return An integer representing the line number, or -1
+ * if none is available.
+ * @see org.xml.sax.Locator#getLineNumber
+ */
+ public int getLineNumber ()
+ {
+ return this.lineNumber;
+ }
+
+
+ /**
+ * The column number of the end of the text where the exception occurred.
+ *
+ * <p>The first column in a line is position 1.</p>
+ *
+ * @return An integer representing the column number, or -1
+ * if none is available.
+ * @see org.xml.sax.Locator#getColumnNumber
+ */
+ public int getColumnNumber ()
+ {
+ return this.columnNumber;
+ }
+
+
+
+ //////////////////////////////////////////////////////////////////////
+ // Internal state.
+ //////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * @serial The public identifier, or null.
+ * @see #getPublicId
+ */
+ private String publicId;
+
+
+ /**
+ * @serial The system identifier, or null.
+ * @see #getSystemId
+ */
+ private String systemId;
+
+
+ /**
+ * @serial The line number, or -1.
+ * @see #getLineNumber
+ */
+ private int lineNumber;
+
+
+ /**
+ * @serial The column number, or -1.
+ * @see #getColumnNumber
+ */
+ private int columnNumber;
+
+}
+
+// end of SAXParseException.java
diff --git a/libjava/org/xml/sax/XMLFilter.java b/libjava/org/xml/sax/XMLFilter.java
index b10e8647ff0..eaca11ca321 100644
--- a/libjava/org/xml/sax/XMLFilter.java
+++ b/libjava/org/xml/sax/XMLFilter.java
@@ -1,65 +1,67 @@
-// XMLFilter.java - filter SAX2 events.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: XMLFilter.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-
-package org.xml.sax;
-
-
-/**
- * Interface for an XML filter.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>An XML filter is like an XML reader, except that it obtains its
- * events from another XML reader rather than a primary source like
- * an XML document or database. Filters can modify a stream of
- * events as they pass on to the final application.</p>
- *
- * <p>The XMLFilterImpl helper class provides a convenient base
- * for creating SAX2 filters, by passing on all {@link org.xml.sax.EntityResolver
- * EntityResolver}, {@link org.xml.sax.DTDHandler DTDHandler},
- * {@link org.xml.sax.ContentHandler ContentHandler} and {@link org.xml.sax.ErrorHandler
- * ErrorHandler} events automatically.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.helpers.XMLFilterImpl
- */
-public interface XMLFilter extends XMLReader
-{
-
- /**
- * Set the parent reader.
- *
- * <p>This method allows the application to link the filter to
- * a parent reader (which may be another filter). The argument
- * may not be null.</p>
- *
- * @param parent The parent reader.
- */
- public abstract void setParent (XMLReader parent);
-
-
- /**
- * Get the parent reader.
- *
- * <p>This method allows the application to query the parent
- * reader (which may be another filter). It is generally a
- * bad idea to perform any operations on the parent reader
- * directly: they should all pass through this filter.</p>
- *
- * @return The parent filter, or null if none has been set.
- */
- public abstract XMLReader getParent ();
-
-}
-
-// end of XMLFilter.java
+// XMLFilter.java - filter SAX2 events.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: XMLFilter.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+
+package org.xml.sax;
+
+
+/**
+ * Interface for an XML filter.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>An XML filter is like an XML reader, except that it obtains its
+ * events from another XML reader rather than a primary source like
+ * an XML document or database. Filters can modify a stream of
+ * events as they pass on to the final application.</p>
+ *
+ * <p>The XMLFilterImpl helper class provides a convenient base
+ * for creating SAX2 filters, by passing on all {@link org.xml.sax.EntityResolver
+ * EntityResolver}, {@link org.xml.sax.DTDHandler DTDHandler},
+ * {@link org.xml.sax.ContentHandler ContentHandler} and {@link org.xml.sax.ErrorHandler
+ * ErrorHandler} events automatically.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.helpers.XMLFilterImpl
+ */
+public interface XMLFilter extends XMLReader
+{
+
+ /**
+ * Set the parent reader.
+ *
+ * <p>This method allows the application to link the filter to
+ * a parent reader (which may be another filter). The argument
+ * may not be null.</p>
+ *
+ * @param parent The parent reader.
+ */
+ public abstract void setParent (XMLReader parent);
+
+
+ /**
+ * Get the parent reader.
+ *
+ * <p>This method allows the application to query the parent
+ * reader (which may be another filter). It is generally a
+ * bad idea to perform any operations on the parent reader
+ * directly: they should all pass through this filter.</p>
+ *
+ * @return The parent filter, or null if none has been set.
+ */
+ public abstract XMLReader getParent ();
+
+}
+
+// end of XMLFilter.java
diff --git a/libjava/org/xml/sax/XMLReader.java b/libjava/org/xml/sax/XMLReader.java
index 26e382b9fa9..23f3daf3a9f 100644
--- a/libjava/org/xml/sax/XMLReader.java
+++ b/libjava/org/xml/sax/XMLReader.java
@@ -1,415 +1,398 @@
-// XMLReader.java - read an XML document.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: XMLReader.java,v 1.1 2000/10/02 02:43:17 sboag Exp $
-
-package org.xml.sax;
-
-import java.io.IOException;
-
-
-/**
- * Interface for reading an XML document using callbacks.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p><strong>Note:</strong> despite its name, this interface does
- * <em>not</em> extend the standard Java {@link java.io.Reader Reader}
- * interface, because reading XML is a fundamentally different activity
- * than reading character data.</p>
- *
- * <p>XMLReader is the interface that an XML parser's SAX2 driver must
- * implement. This interface allows an application to set and
- * query features and properties in the parser, to register
- * event handlers for document processing, and to initiate
- * a document parse.</p>
- *
- * <p>All SAX interfaces are assumed to be synchronous: the
- * {@link #parse parse} methods must not return until parsing
- * is complete, and readers must wait for an event-handler callback
- * to return before reporting the next event.</p>
- *
- * <p>This interface replaces the (now deprecated) SAX 1.0 {@link
- * org.xml.sax.Parser Parser} interface. The XMLReader interface
- * contains two important enhancements over the old Parser
- * interface:</p>
- *
- * <ol>
- * <li>it adds a standard way to query and set features and
- * properties; and</li>
- * <li>it adds Namespace support, which is required for many
- * higher-level XML standards.</li>
- * </ol>
- *
- * <p>There are adapters available to convert a SAX1 Parser to
- * a SAX2 XMLReader and vice-versa.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.XMLFilter
- * @see org.xml.sax.helpers.ParserAdapter
- * @see org.xml.sax.helpers.XMLReaderAdapter
- */
-public interface XMLReader
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Configuration.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Look up the value of a feature.
- *
- * <p>The feature name is any fully-qualified URI. It is
- * possible for an XMLReader to recognize a feature name but
- * to be unable to return its value; this is especially true
- * in the case of an adapter for a SAX1 Parser, which has
- * no way of knowing whether the underlying parser is
- * performing validation or expanding external entities.</p>
- *
- * <p>All XMLReaders are required to recognize the
- * http://xml.org/sax/features/namespaces and the
- * http://xml.org/sax/features/namespace-prefixes feature names.</p>
- *
- * <p>Some feature values may be available only in specific
- * contexts, such as before, during, or after a parse.</p>
- *
- * <p>Typical usage is something like this:</p>
- *
- * <pre>
- * XMLReader r = new MySAXDriver();
- *
- * // try to activate validation
- * try {
- * r.setFeature("http://xml.org/sax/features/validation", true);
- * } catch (SAXException e) {
- * System.err.println("Cannot activate validation.");
- * }
- *
- * // register event handlers
- * r.setContentHandler(new MyContentHandler());
- * r.setErrorHandler(new MyErrorHandler());
- *
- * // parse the first document
- * try {
- * r.parse("http://www.foo.com/mydoc.xml");
- * } catch (IOException e) {
- * System.err.println("I/O exception reading XML document");
- * } catch (SAXException e) {
- * System.err.println("XML exception reading document.");
- * }
- * </pre>
- *
- * <p>Implementors are free (and encouraged) to invent their own features,
- * using names built on their own URIs.</p>
- *
- * @param name The feature name, which is a fully-qualified URI.
- * @return The current state of the feature (true or false).
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the feature name but
- * cannot determine its value at this time.
- * @see #setFeature
- */
- public boolean getFeature (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException;
-
-
- /**
- * Set the state of a feature.
- *
- * <p>The feature name is any fully-qualified URI. It is
- * possible for an XMLReader to recognize a feature name but
- * to be unable to set its value; this is especially true
- * in the case of an adapter for a SAX1 {@link org.xml.sax.Parser Parser},
- * which has no way of affecting whether the underlying parser is
- * validating, for example.</p>
- *
- * <p>All XMLReaders are required to support setting
- * http://xml.org/sax/features/namespaces to true and
- * http://xml.org/sax/features/namespace-prefixes to false.</p>
- *
- * <p>Some feature values may be immutable or mutable only
- * in specific contexts, such as before, during, or after
- * a parse.</p>
- *
- * @param name The feature name, which is a fully-qualified URI.
- * @param state The requested state of the feature (true or false).
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the feature name but
- * cannot set the requested value.
- * @see #getFeature
- */
- public void setFeature (String name, boolean value)
- throws SAXNotRecognizedException, SAXNotSupportedException;
-
-
- /**
- * Look up the value of a property.
- *
- * <p>The property name is any fully-qualified URI. It is
- * possible for an XMLReader to recognize a property name but
- * to be unable to return its state; this is especially true
- * in the case of an adapter for a SAX1 {@link org.xml.sax.Parser
- * Parser}.</p>
- *
- * <p>XMLReaders are not required to recognize any specific
- * property names, though an initial core set is documented for
- * SAX2.</p>
- *
- * <p>Some property values may be available only in specific
- * contexts, such as before, during, or after a parse.</p>
- *
- * <p>Implementors are free (and encouraged) to invent their own properties,
- * using names built on their own URIs.</p>
- *
- * @param name The property name, which is a fully-qualified URI.
- * @return The current value of the property.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the property name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the property name but
- * cannot determine its value at this time.
- * @see #setProperty
- */
- public Object getProperty (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException;
-
-
- /**
- * Set the value of a property.
- *
- * <p>The property name is any fully-qualified URI. It is
- * possible for an XMLReader to recognize a property name but
- * to be unable to set its value; this is especially true
- * in the case of an adapter for a SAX1 {@link org.xml.sax.Parser
- * Parser}.</p>
- *
- * <p>XMLReaders are not required to recognize setting
- * any specific property names, though a core set is provided with
- * SAX2.</p>
- *
- * <p>Some property values may be immutable or mutable only
- * in specific contexts, such as before, during, or after
- * a parse.</p>
- *
- * <p>This method is also the standard mechanism for setting
- * extended handlers.</p>
- *
- * @param name The property name, which is a fully-qualified URI.
- * @param state The requested value for the property.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the property name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the property name but
- * cannot set the requested value.
- */
- public void setProperty (String name, Object value)
- throws SAXNotRecognizedException, SAXNotSupportedException;
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Event handlers.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Allow an application to register an entity resolver.
- *
- * <p>If the application does not register an entity resolver,
- * the XMLReader will perform its own default resolution.</p>
- *
- * <p>Applications may register a new or different resolver in the
- * middle of a parse, and the SAX parser must begin using the new
- * resolver immediately.</p>
- *
- * @param resolver The entity resolver.
- * @exception java.lang.NullPointerException If the resolver
- * argument is null.
- * @see #getEntityResolver
- */
- public void setEntityResolver (EntityResolver resolver);
-
-
- /**
- * Return the current entity resolver.
- *
- * @return The current entity resolver, or null if none
- * has been registered.
- * @see #setEntityResolver
- */
- public EntityResolver getEntityResolver ();
-
-
- /**
- * Allow an application to register a DTD event handler.
- *
- * <p>If the application does not register a DTD handler, all DTD
- * events reported by the SAX parser will be silently ignored.</p>
- *
- * <p>Applications may register a new or different handler in the
- * middle of a parse, and the SAX parser must begin using the new
- * handler immediately.</p>
- *
- * @param handler The DTD handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
- * @see #getDTDHandler
- */
- public void setDTDHandler (DTDHandler handler);
-
-
- /**
- * Return the current DTD handler.
- *
- * @return The current DTD handler, or null if none
- * has been registered.
- * @see #setDTDHandler
- */
- public DTDHandler getDTDHandler ();
-
-
- /**
- * Allow an application to register a content event handler.
- *
- * <p>If the application does not register a content handler, all
- * content events reported by the SAX parser will be silently
- * ignored.</p>
- *
- * <p>Applications may register a new or different handler in the
- * middle of a parse, and the SAX parser must begin using the new
- * handler immediately.</p>
- *
- * @param handler The content handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
- * @see #getContentHandler
- */
- public void setContentHandler (ContentHandler handler);
-
-
- /**
- * Return the current content handler.
- *
- * @return The current content handler, or null if none
- * has been registered.
- * @see #setContentHandler
- */
- public ContentHandler getContentHandler ();
-
-
- /**
- * Allow an application to register an error event handler.
- *
- * <p>If the application does not register an error handler, all
- * error events reported by the SAX parser will be silently
- * ignored; however, normal processing may not continue. It is
- * highly recommended that all SAX applications implement an
- * error handler to avoid unexpected bugs.</p>
- *
- * <p>Applications may register a new or different handler in the
- * middle of a parse, and the SAX parser must begin using the new
- * handler immediately.</p>
- *
- * @param handler The error handler.
- * @exception java.lang.NullPointerException If the handler
- * argument is null.
- * @see #getErrorHandler
- */
- public void setErrorHandler (ErrorHandler handler);
-
-
- /**
- * Return the current error handler.
- *
- * @return The current error handler, or null if none
- * has been registered.
- * @see #setErrorHandler
- */
- public ErrorHandler getErrorHandler ();
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Parsing.
- ////////////////////////////////////////////////////////////////////
-
- /**
- * Parse an XML document.
- *
- * <p>The application can use this method to instruct the XML
- * reader to begin parsing an XML document from any valid input
- * source (a character stream, a byte stream, or a URI).</p>
- *
- * <p>Applications may not invoke this method while a parse is in
- * progress (they should create a new XMLReader instead for each
- * nested XML document). Once a parse is complete, an
- * application may reuse the same XMLReader object, possibly with a
- * different input source.</p>
- *
- * <p>During the parse, the XMLReader will provide information
- * about the XML document through the registered event
- * handlers.</p>
- *
- * <p>This method is synchronous: it will not return until parsing
- * has ended. If a client application wants to terminate
- * parsing early, it should throw an exception.</p>
- *
- * @param source The input source for the top-level of the
- * XML document.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see org.xml.sax.InputSource
- * @see #parse(java.lang.String)
- * @see #setEntityResolver
- * @see #setDTDHandler
- * @see #setContentHandler
- * @see #setErrorHandler
- */
- public void parse (InputSource input)
- throws IOException, SAXException;
-
-
- /**
- * Parse an XML document from a system identifier (URI).
- *
- * <p>This method is a shortcut for the common case of reading a
- * document from a system identifier. It is the exact
- * equivalent of the following:</p>
- *
- * <pre>
- * parse(new InputSource(systemId));
- * </pre>
- *
- * <p>If the system identifier is a URL, it must be fully resolved
- * by the application before it is passed to the parser.</p>
- *
- * @param systemId The system identifier (URI).
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see #parse(org.xml.sax.InputSource)
- */
- public void parse (String systemId)
- throws IOException, SAXException;
-
-}
-
-// end of XMLReader.java
+// XMLReader.java - read an XML document.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: XMLReader.java,v 1.3.2.5 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax;
+
+import java.io.IOException;
+
+
+/**
+ * Interface for reading an XML document using callbacks.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p><strong>Note:</strong> despite its name, this interface does
+ * <em>not</em> extend the standard Java {@link java.io.Reader Reader}
+ * interface, because reading XML is a fundamentally different activity
+ * than reading character data.</p>
+ *
+ * <p>XMLReader is the interface that an XML parser's SAX2 driver must
+ * implement. This interface allows an application to set and
+ * query features and properties in the parser, to register
+ * event handlers for document processing, and to initiate
+ * a document parse.</p>
+ *
+ * <p>All SAX interfaces are assumed to be synchronous: the
+ * {@link #parse parse} methods must not return until parsing
+ * is complete, and readers must wait for an event-handler callback
+ * to return before reporting the next event.</p>
+ *
+ * <p>This interface replaces the (now deprecated) SAX 1.0 {@link
+ * org.xml.sax.Parser Parser} interface. The XMLReader interface
+ * contains two important enhancements over the old Parser
+ * interface (as well as some minor ones):</p>
+ *
+ * <ol>
+ * <li>it adds a standard way to query and set features and
+ * properties; and</li>
+ * <li>it adds Namespace support, which is required for many
+ * higher-level XML standards.</li>
+ * </ol>
+ *
+ * <p>There are adapters available to convert a SAX1 Parser to
+ * a SAX2 XMLReader and vice-versa.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLFilter
+ * @see org.xml.sax.helpers.ParserAdapter
+ * @see org.xml.sax.helpers.XMLReaderAdapter
+ */
+public interface XMLReader
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Configuration.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Look up the value of a feature flag.
+ *
+ * <p>The feature name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a feature name but
+ * temporarily be unable to return its value.
+ * Some feature values may be available only in specific
+ * contexts, such as before, during, or after a parse.
+ * Also, some feature values may not be programmatically accessible.
+ * (In the case of an adapter for SAX1 {@link Parser}, there is no
+ * implementation-independent way to expose whether the underlying
+ * parser is performing validation, expanding external entities,
+ * and so forth.) </p>
+ *
+ * <p>All XMLReaders are required to recognize the
+ * http://xml.org/sax/features/namespaces and the
+ * http://xml.org/sax/features/namespace-prefixes feature names.</p>
+ *
+ * <p>Typical usage is something like this:</p>
+ *
+ * <pre>
+ * XMLReader r = new MySAXDriver();
+ *
+ * // try to activate validation
+ * try {
+ * r.setFeature("http://xml.org/sax/features/validation", true);
+ * } catch (SAXException e) {
+ * System.err.println("Cannot activate validation.");
+ * }
+ *
+ * // register event handlers
+ * r.setContentHandler(new MyContentHandler());
+ * r.setErrorHandler(new MyErrorHandler());
+ *
+ * // parse the first document
+ * try {
+ * r.parse("http://www.foo.com/mydoc.xml");
+ * } catch (IOException e) {
+ * System.err.println("I/O exception reading XML document");
+ * } catch (SAXException e) {
+ * System.err.println("XML exception reading document.");
+ * }
+ * </pre>
+ *
+ * <p>Implementors are free (and encouraged) to invent their own features,
+ * using names built on their own URIs.</p>
+ *
+ * @param name The feature name, which is a fully-qualified URI.
+ * @return The current value of the feature (true or false).
+ * @exception org.xml.sax.SAXNotRecognizedException If the feature
+ * value can't be assigned or retrieved.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * XMLReader recognizes the feature name but
+ * cannot determine its value at this time.
+ * @see #setFeature
+ */
+ public boolean getFeature (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException;
+
+
+ /**
+ * Set the value of a feature flag.
+ *
+ * <p>The feature name is any fully-qualified URI. It is
+ * possible for an XMLReader to expose a feature value but
+ * to be unable to change the current value.
+ * Some feature values may be immutable or mutable only
+ * in specific contexts, such as before, during, or after
+ * a parse.</p>
+ *
+ * <p>All XMLReaders are required to support setting
+ * http://xml.org/sax/features/namespaces to true and
+ * http://xml.org/sax/features/namespace-prefixes to false.</p>
+ *
+ * @param name The feature name, which is a fully-qualified URI.
+ * @param value The requested value of the feature (true or false).
+ * @exception org.xml.sax.SAXNotRecognizedException If the feature
+ * value can't be assigned or retrieved.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * XMLReader recognizes the feature name but
+ * cannot set the requested value.
+ * @see #getFeature
+ */
+ public void setFeature (String name, boolean value)
+ throws SAXNotRecognizedException, SAXNotSupportedException;
+
+
+ /**
+ * Look up the value of a property.
+ *
+ * <p>The property name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a property name but
+ * temporarily be unable to return its value.
+ * Some property values may be available only in specific
+ * contexts, such as before, during, or after a parse.</p>
+ *
+ * <p>XMLReaders are not required to recognize any specific
+ * property names, though an initial core set is documented for
+ * SAX2.</p>
+ *
+ * <p>Implementors are free (and encouraged) to invent their own properties,
+ * using names built on their own URIs.</p>
+ *
+ * @param name The property name, which is a fully-qualified URI.
+ * @return The current value of the property.
+ * @exception org.xml.sax.SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * XMLReader recognizes the property name but
+ * cannot determine its value at this time.
+ * @see #setProperty
+ */
+ public Object getProperty (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException;
+
+
+ /**
+ * Set the value of a property.
+ *
+ * <p>The property name is any fully-qualified URI. It is
+ * possible for an XMLReader to recognize a property name but
+ * to be unable to change the current value.
+ * Some property values may be immutable or mutable only
+ * in specific contexts, such as before, during, or after
+ * a parse.</p>
+ *
+ * <p>XMLReaders are not required to recognize setting
+ * any specific property names, though a core set is defined by
+ * SAX2.</p>
+ *
+ * <p>This method is also the standard mechanism for setting
+ * extended handlers.</p>
+ *
+ * @param name The property name, which is a fully-qualified URI.
+ * @param value The requested value for the property.
+ * @exception org.xml.sax.SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * XMLReader recognizes the property name but
+ * cannot set the requested value.
+ */
+ public void setProperty (String name, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException;
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Event handlers.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Allow an application to register an entity resolver.
+ *
+ * <p>If the application does not register an entity resolver,
+ * the XMLReader will perform its own default resolution.</p>
+ *
+ * <p>Applications may register a new or different resolver in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * resolver immediately.</p>
+ *
+ * @param resolver The entity resolver.
+ * @see #getEntityResolver
+ */
+ public void setEntityResolver (EntityResolver resolver);
+
+
+ /**
+ * Return the current entity resolver.
+ *
+ * @return The current entity resolver, or null if none
+ * has been registered.
+ * @see #setEntityResolver
+ */
+ public EntityResolver getEntityResolver ();
+
+
+ /**
+ * Allow an application to register a DTD event handler.
+ *
+ * <p>If the application does not register a DTD handler, all DTD
+ * events reported by the SAX parser will be silently ignored.</p>
+ *
+ * <p>Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately.</p>
+ *
+ * @param handler The DTD handler.
+ * @see #getDTDHandler
+ */
+ public void setDTDHandler (DTDHandler handler);
+
+
+ /**
+ * Return the current DTD handler.
+ *
+ * @return The current DTD handler, or null if none
+ * has been registered.
+ * @see #setDTDHandler
+ */
+ public DTDHandler getDTDHandler ();
+
+
+ /**
+ * Allow an application to register a content event handler.
+ *
+ * <p>If the application does not register a content handler, all
+ * content events reported by the SAX parser will be silently
+ * ignored.</p>
+ *
+ * <p>Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately.</p>
+ *
+ * @param handler The content handler.
+ * @see #getContentHandler
+ */
+ public void setContentHandler (ContentHandler handler);
+
+
+ /**
+ * Return the current content handler.
+ *
+ * @return The current content handler, or null if none
+ * has been registered.
+ * @see #setContentHandler
+ */
+ public ContentHandler getContentHandler ();
+
+
+ /**
+ * Allow an application to register an error event handler.
+ *
+ * <p>If the application does not register an error handler, all
+ * error events reported by the SAX parser will be silently
+ * ignored; however, normal processing may not continue. It is
+ * highly recommended that all SAX applications implement an
+ * error handler to avoid unexpected bugs.</p>
+ *
+ * <p>Applications may register a new or different handler in the
+ * middle of a parse, and the SAX parser must begin using the new
+ * handler immediately.</p>
+ *
+ * @param handler The error handler.
+ * @see #getErrorHandler
+ */
+ public void setErrorHandler (ErrorHandler handler);
+
+
+ /**
+ * Return the current error handler.
+ *
+ * @return The current error handler, or null if none
+ * has been registered.
+ * @see #setErrorHandler
+ */
+ public ErrorHandler getErrorHandler ();
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Parsing.
+ ////////////////////////////////////////////////////////////////////
+
+ /**
+ * Parse an XML document.
+ *
+ * <p>The application can use this method to instruct the XML
+ * reader to begin parsing an XML document from any valid input
+ * source (a character stream, a byte stream, or a URI).</p>
+ *
+ * <p>Applications may not invoke this method while a parse is in
+ * progress (they should create a new XMLReader instead for each
+ * nested XML document). Once a parse is complete, an
+ * application may reuse the same XMLReader object, possibly with a
+ * different input source.</p>
+ *
+ * <p>During the parse, the XMLReader will provide information
+ * about the XML document through the registered event
+ * handlers.</p>
+ *
+ * <p>This method is synchronous: it will not return until parsing
+ * has ended. If a client application wants to terminate
+ * parsing early, it should throw an exception.</p>
+ *
+ * @param source The input source for the top-level of the
+ * XML document.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ * @see org.xml.sax.InputSource
+ * @see #parse(java.lang.String)
+ * @see #setEntityResolver
+ * @see #setDTDHandler
+ * @see #setContentHandler
+ * @see #setErrorHandler
+ */
+ public void parse (InputSource input)
+ throws IOException, SAXException;
+
+
+ /**
+ * Parse an XML document from a system identifier (URI).
+ *
+ * <p>This method is a shortcut for the common case of reading a
+ * document from a system identifier. It is the exact
+ * equivalent of the following:</p>
+ *
+ * <pre>
+ * parse(new InputSource(systemId));
+ * </pre>
+ *
+ * <p>If the system identifier is a URL, it must be fully resolved
+ * by the application before it is passed to the parser.</p>
+ *
+ * @param systemId The system identifier (URI).
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ * @see #parse(org.xml.sax.InputSource)
+ */
+ public void parse (String systemId)
+ throws IOException, SAXException;
+
+}
diff --git a/libjava/org/xml/sax/ext/DeclHandler.java b/libjava/org/xml/sax/ext/DeclHandler.java
index 1fede3428de..742f4648c90 100644
--- a/libjava/org/xml/sax/ext/DeclHandler.java
+++ b/libjava/org/xml/sax/ext/DeclHandler.java
@@ -1,131 +1,143 @@
-// DeclHandler.java - Optional handler for DTD declaration events.
-// Public Domain: no warranty.
-// $Id: DeclHandler.java,v 1.1 2000/10/02 02:43:19 sboag Exp $
-
-package org.xml.sax.ext;
-
-import org.xml.sax.SAXException;
-
-
-/**
- * SAX2 extension handler for DTD declaration events.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This is an optional extension handler for SAX2 to provide
- * information about DTD declarations in an XML document. XML
- * readers are not required to support this handler.</p>
- *
- * <p>Note that data-related DTD declarations (unparsed entities and
- * notations) are already reported through the {@link
- * org.xml.sax.DTDHandler DTDHandler} interface.</p>
- *
- * <p>If you are using the declaration handler together with a lexical
- * handler, all of the events will occur between the
- * {@link org.xml.sax.ext.LexicalHandler#startDTD startDTD} and the
- * {@link org.xml.sax.ext.LexicalHandler#endDTD endDTD} events.</p>
- *
- * <p>To set the DeclHandler for an XML reader, use the
- * {@link org.xml.sax.XMLReader#setProperty setProperty} method
- * with the propertyId "http://xml.org/sax/handlers/DeclHandler".
- * If the reader does not support declaration events, it will throw a
- * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
- * or a
- * {@link org.xml.sax.SAXNotSupportedException SAXNotSupportedException}
- * when you attempt to register the handler.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0beta
- * @see org.xml.sax.XMLReader
- */
-public interface DeclHandler
-{
-
- /**
- * Report an element type declaration.
- *
- * <p>The content model will consist of the string "EMPTY", the
- * string "ANY", or a parenthesised group, optionally followed
- * by an occurrence indicator. The model will be normalized so
- * that all whitespace is removed,and will include the enclosing
- * parentheses.</p>
- *
- * @param name The element type name.
- * @param model The content model as a normalized string.
- * @exception SAXException The application may raise an exception.
- */
- public abstract void elementDecl (String name, String model)
- throws SAXException;
-
-
- /**
- * Report an attribute type declaration.
- *
- * <p>Only the effective (first) declaration for an attribute will
- * be reported. The type will be one of the strings "CDATA",
- * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY",
- * "ENTITIES", or "NOTATION", or a parenthesized token group with
- * the separator "|" and all whitespace removed.</p>
- *
- * @param eName The name of the associated element.
- * @param aName The name of the attribute.
- * @param type A string representing the attribute type.
- * @param valueDefault A string representing the attribute default
- * ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if
- * none of these applies.
- * @param value A string representing the attribute's default value,
- * or null if there is none.
- * @exception SAXException The application may raise an exception.
- */
- public abstract void attributeDecl (String eName,
- String aName,
- String type,
- String valueDefault,
- String value)
- throws SAXException;
-
-
- /**
- * Report an internal entity declaration.
- *
- * <p>Only the effective (first) declaration for each entity
- * will be reported.</p>
- *
- * @param name The name of the entity. If it is a parameter
- * entity, the name will begin with '%'.
- * @param value The replacement text of the entity.
- * @exception SAXException The application may raise an exception.
- * @see #externalEntityDecl
- * @see org.xml.sax.DTDHandler#unparsedEntityDecl
- */
- public abstract void internalEntityDecl (String name, String value)
- throws SAXException;
-
-
- /**
- * Report a parsed external entity declaration.
- *
- * <p>Only the effective (first) declaration for each entity
- * will be reported.</p>
- *
- * @param name The name of the entity. If it is a parameter
- * entity, the name will begin with '%'.
- * @param publicId The declared public identifier of the entity, or
- * null if none was declared.
- * @param systemId The declared system identifier of the entity.
- * @exception SAXException The application may raise an exception.
- * @see #internalEntityDecl
- * @see org.xml.sax.DTDHandler#unparsedEntityDecl
- */
- public abstract void externalEntityDecl (String name, String publicId,
- String systemId)
- throws SAXException;
-
-}
-
-// end of DeclHandler.java
+// DeclHandler.java - Optional handler for DTD declaration events.
+// http://www.saxproject.org
+// Public Domain: no warranty.
+// $Id: DeclHandler.java,v 1.2.2.5 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.ext;
+
+import org.xml.sax.SAXException;
+
+
+/**
+ * SAX2 extension handler for DTD declaration events.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This is an optional extension handler for SAX2 to provide more
+ * complete information about DTD declarations in an XML document.
+ * XML readers are not required to recognize this handler, and it
+ * is not part of core-only SAX2 distributions.</p>
+ *
+ * <p>Note that data-related DTD declarations (unparsed entities and
+ * notations) are already reported through the {@link
+ * org.xml.sax.DTDHandler DTDHandler} interface.</p>
+ *
+ * <p>If you are using the declaration handler together with a lexical
+ * handler, all of the events will occur between the
+ * {@link org.xml.sax.ext.LexicalHandler#startDTD startDTD} and the
+ * {@link org.xml.sax.ext.LexicalHandler#endDTD endDTD} events.</p>
+ *
+ * <p>To set the DeclHandler for an XML reader, use the
+ * {@link org.xml.sax.XMLReader#setProperty setProperty} method
+ * with the property name
+ * <code>http://xml.org/sax/properties/declaration-handler</code>
+ * and an object implementing this interface (or null) as the value.
+ * If the reader does not report declaration events, it will throw a
+ * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
+ * when you attempt to register the handler.</p>
+ *
+ * @since SAX 2.0 (extensions 1.0)
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public interface DeclHandler
+{
+
+ /**
+ * Report an element type declaration.
+ *
+ * <p>The content model will consist of the string "EMPTY", the
+ * string "ANY", or a parenthesised group, optionally followed
+ * by an occurrence indicator. The model will be normalized so
+ * that all parameter entities are fully resolved and all whitespace
+ * is removed,and will include the enclosing parentheses. Other
+ * normalization (such as removing redundant parentheses or
+ * simplifying occurrence indicators) is at the discretion of the
+ * parser.</p>
+ *
+ * @param name The element type name.
+ * @param model The content model as a normalized string.
+ * @exception SAXException The application may raise an exception.
+ */
+ public abstract void elementDecl (String name, String model)
+ throws SAXException;
+
+
+ /**
+ * Report an attribute type declaration.
+ *
+ * <p>Only the effective (first) declaration for an attribute will
+ * be reported. The type will be one of the strings "CDATA",
+ * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY",
+ * "ENTITIES", a parenthesized token group with
+ * the separator "|" and all whitespace removed, or the word
+ * "NOTATION" followed by a space followed by a parenthesized
+ * token group with all whitespace removed.</p>
+ *
+ * <p>The value will be the value as reported to applications,
+ * appropriately normalized and with entity and character
+ * references expanded. </p>
+ *
+ * @param eName The name of the associated element.
+ * @param aName The name of the attribute.
+ * @param type A string representing the attribute type.
+ * @param mode A string representing the attribute defaulting mode
+ * ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if
+ * none of these applies.
+ * @param value A string representing the attribute's default value,
+ * or null if there is none.
+ * @exception SAXException The application may raise an exception.
+ */
+ public abstract void attributeDecl (String eName,
+ String aName,
+ String type,
+ String mode,
+ String value)
+ throws SAXException;
+
+
+ /**
+ * Report an internal entity declaration.
+ *
+ * <p>Only the effective (first) declaration for each entity
+ * will be reported. All parameter entities in the value
+ * will be expanded, but general entities will not.</p>
+ *
+ * @param name The name of the entity. If it is a parameter
+ * entity, the name will begin with '%'.
+ * @param value The replacement text of the entity.
+ * @exception SAXException The application may raise an exception.
+ * @see #externalEntityDecl
+ * @see org.xml.sax.DTDHandler#unparsedEntityDecl
+ */
+ public abstract void internalEntityDecl (String name, String value)
+ throws SAXException;
+
+
+ /**
+ * Report a parsed external entity declaration.
+ *
+ * <p>Only the effective (first) declaration for each entity
+ * will be reported.</p>
+ *
+ * @param name The name of the entity. If it is a parameter
+ * entity, the name will begin with '%'.
+ * @param publicId The declared public identifier of the entity, or
+ * null if none was declared.
+ * @param systemId The declared system identifier of the entity.
+ * @exception SAXException The application may raise an exception.
+ * @see #internalEntityDecl
+ * @see org.xml.sax.DTDHandler#unparsedEntityDecl
+ */
+ public abstract void externalEntityDecl (String name, String publicId,
+ String systemId)
+ throws SAXException;
+
+}
+
+// end of DeclHandler.java
diff --git a/libjava/org/xml/sax/ext/LexicalHandler.java b/libjava/org/xml/sax/ext/LexicalHandler.java
index 4ac1617ca00..15b2557c504 100644
--- a/libjava/org/xml/sax/ext/LexicalHandler.java
+++ b/libjava/org/xml/sax/ext/LexicalHandler.java
@@ -1,161 +1,212 @@
-// LexicalHandler.java - optional handler for lexical parse events.
-// Public Domain: no warranty.
-// $Id: LexicalHandler.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.ext;
-
-import org.xml.sax.SAXException;
-
-/**
- * SAX2 extension handler for lexical events.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This is an optional extension handler for SAX2 to provide
- * lexical information about an XML document, such as comments
- * and CDATA section boundaries; XML readers are not required to
- * support this handler.</p>
- *
- * <p>The events in the lexical handler apply to the entire document,
- * not just to the document element, and all lexical handler events
- * must appear between the content handler's startDocument and
- * endDocument events.</p>
- *
- * <p>To set the LexicalHandler for an XML reader, use the
- * {@link org.xml.sax.XMLReader#setProperty setProperty} method
- * with the propertyId "http://xml.org/sax/handlers/LexicalHandler".
- * If the reader does not support lexical events, it will throw a
- * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
- * or a
- * {@link org.xml.sax.SAXNotSupportedException SAXNotSupportedException}
- * when you attempt to register the handler.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0beta
- * @see org.xml.sax.XMLReader#setProperty
- * @see org.xml.sax.SAXNotRecognizedException
- * @see org.xml.sax.SAXNotSupportedException
- */
-public interface LexicalHandler
-{
-
- /**
- * Report the start of DTD declarations, if any.
- *
- * <p>Any declarations are assumed to be in the internal subset
- * unless otherwise indicated by a {@link #startEntity startEntity}
- * event.</p>
- *
- * <p>Note that the start/endDTD events will appear within
- * the start/endDocument events from ContentHandler and
- * before the first startElement event.</p>
- *
- * @param name The document type name.
- * @param publicId The declared public identifier for the
- * external DTD subset, or null if none was declared.
- * @param systemId The declared system identifier for the
- * external DTD subset, or null if none was declared.
- * @exception SAXException The application may raise an
- * exception.
- * @see #endDTD
- * @see #startEntity
- */
- public abstract void startDTD (String name, String publicId,
- String systemId)
- throws SAXException;
-
-
- /**
- * Report the end of DTD declarations.
- *
- * @exception SAXException The application may raise an exception.
- * @see #startDTD
- */
- public abstract void endDTD ()
- throws SAXException;
-
-
- /**
- * Report the beginning of an entity in content.
- *
- * <p><strong>NOTE:</entity> entity references in attribute
- * values -- and the start and end of the document entity --
- * are never reported.</p>
- *
- * <p>The start and end of the external DTD subset are reported
- * using the pseudo-name "[dtd]". All other events must be
- * properly nested within start/end entity events.</p>
- *
- * <p>Note that skipped entities will be reported through the
- * {@link org.xml.sax.ContentHandler#skippedEntity skippedEntity}
- * event, which is part of the ContentHandler interface.</p>
- *
- * @param name The name of the entity. If it is a parameter
- * entity, the name will begin with '%'.
- * @exception SAXException The application may raise an exception.
- * @see #endEntity
- * @see org.xml.sax.ext.DeclHandler#internalEntityDecl
- * @see org.xml.sax.ext.DeclHandler#externalEntityDecl
- */
- public abstract void startEntity (String name)
- throws SAXException;
-
-
- /**
- * Report the end of an entity.
- *
- * @param name The name of the entity that is ending.
- * @exception SAXException The application may raise an exception.
- * @see #startEntity
- */
- public abstract void endEntity (String name)
- throws SAXException;
-
-
- /**
- * Report the start of a CDATA section.
- *
- * <p>The contents of the CDATA section will be reported through
- * the regular {@link org.xml.sax.ContentHandler#characters
- * characters} event.</p>
- *
- * @exception SAXException The application may raise an exception.
- * @see #endCDATA
- */
- public abstract void startCDATA ()
- throws SAXException;
-
-
- /**
- * Report the end of a CDATA section.
- *
- * @exception SAXException The application may raise an exception.
- * @see #startCDATA
- */
- public abstract void endCDATA ()
- throws SAXException;
-
-
- /**
- * Report an XML comment anywhere in the document.
- *
- * <p>This callback will be used for comments inside or outside the
- * document element, including comments in the external DTD
- * subset (if read).</p>
- *
- * @param ch An array holding the characters in the comment.
- * @param start The starting position in the array.
- * @param length The number of characters to use from the array.
- * @exception SAXException The application may raise an exception.
- */
- public abstract void comment (char ch[], int start, int length)
- throws SAXException;
-
-}
-
-// end of LexicalHandler.java
+// LexicalHandler.java - optional handler for lexical parse events.
+// http://www.saxproject.org
+// Public Domain: no warranty.
+// $Id: LexicalHandler.java,v 1.2.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.ext;
+
+import org.xml.sax.SAXException;
+
+/**
+ * SAX2 extension handler for lexical events.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This is an optional extension handler for SAX2 to provide
+ * lexical information about an XML document, such as comments
+ * and CDATA section boundaries.
+ * XML readers are not required to recognize this handler, and it
+ * is not part of core-only SAX2 distributions.</p>
+ *
+ * <p>The events in the lexical handler apply to the entire document,
+ * not just to the document element, and all lexical handler events
+ * must appear between the content handler's startDocument and
+ * endDocument events.</p>
+ *
+ * <p>To set the LexicalHandler for an XML reader, use the
+ * {@link org.xml.sax.XMLReader#setProperty setProperty} method
+ * with the property name
+ * <code>http://xml.org/sax/properties/lexical-handler</code>
+ * and an object implementing this interface (or null) as the value.
+ * If the reader does not report lexical events, it will throw a
+ * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}
+ * when you attempt to register the handler.</p>
+ *
+ * @since SAX 2.0 (extensions 1.0)
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public interface LexicalHandler
+{
+
+ /**
+ * Report the start of DTD declarations, if any.
+ *
+ * <p>This method is intended to report the beginning of the
+ * DOCTYPE declaration; if the document has no DOCTYPE declaration,
+ * this method will not be invoked.</p>
+ *
+ * <p>All declarations reported through
+ * {@link org.xml.sax.DTDHandler DTDHandler} or
+ * {@link org.xml.sax.ext.DeclHandler DeclHandler} events must appear
+ * between the startDTD and {@link #endDTD endDTD} events.
+ * Declarations are assumed to belong to the internal DTD subset
+ * unless they appear between {@link #startEntity startEntity}
+ * and {@link #endEntity endEntity} events. Comments and
+ * processing instructions from the DTD should also be reported
+ * between the startDTD and endDTD events, in their original
+ * order of (logical) occurrence; they are not required to
+ * appear in their correct locations relative to DTDHandler
+ * or DeclHandler events, however.</p>
+ *
+ * <p>Note that the start/endDTD events will appear within
+ * the start/endDocument events from ContentHandler and
+ * before the first
+ * {@link org.xml.sax.ContentHandler#startElement startElement}
+ * event.</p>
+ *
+ * @param name The document type name.
+ * @param publicId The declared public identifier for the
+ * external DTD subset, or null if none was declared.
+ * @param systemId The declared system identifier for the
+ * external DTD subset, or null if none was declared.
+ * (Note that this is not resolved against the document
+ * base URI.)
+ * @exception SAXException The application may raise an
+ * exception.
+ * @see #endDTD
+ * @see #startEntity
+ */
+ public abstract void startDTD (String name, String publicId,
+ String systemId)
+ throws SAXException;
+
+
+ /**
+ * Report the end of DTD declarations.
+ *
+ * <p>This method is intended to report the end of the
+ * DOCTYPE declaration; if the document has no DOCTYPE declaration,
+ * this method will not be invoked.</p>
+ *
+ * @exception SAXException The application may raise an exception.
+ * @see #startDTD
+ */
+ public abstract void endDTD ()
+ throws SAXException;
+
+
+ /**
+ * Report the beginning of some internal and external XML entities.
+ *
+ * <p>The reporting of parameter entities (including
+ * the external DTD subset) is optional, and SAX2 drivers that
+ * report LexicalHandler events may not implement it; you can use the
+ * <code
+ * >http://xml.org/sax/features/lexical-handler/parameter-entities</code>
+ * feature to query or control the reporting of parameter entities.</p>
+ *
+ * <p>General entities are reported with their regular names,
+ * parameter entities have '%' prepended to their names, and
+ * the external DTD subset has the pseudo-entity name "[dtd]".</p>
+ *
+ * <p>When a SAX2 driver is providing these events, all other
+ * events must be properly nested within start/end entity
+ * events. There is no additional requirement that events from
+ * {@link org.xml.sax.ext.DeclHandler DeclHandler} or
+ * {@link org.xml.sax.DTDHandler DTDHandler} be properly ordered.</p>
+ *
+ * <p>Note that skipped entities will be reported through the
+ * {@link org.xml.sax.ContentHandler#skippedEntity skippedEntity}
+ * event, which is part of the ContentHandler interface.</p>
+ *
+ * <p>Because of the streaming event model that SAX uses, some
+ * entity boundaries cannot be reported under any
+ * circumstances:</p>
+ *
+ * <ul>
+ * <li>general entities within attribute values</li>
+ * <li>parameter entities within declarations</li>
+ * </ul>
+ *
+ * <p>These will be silently expanded, with no indication of where
+ * the original entity boundaries were.</p>
+ *
+ * <p>Note also that the boundaries of character references (which
+ * are not really entities anyway) are not reported.</p>
+ *
+ * <p>All start/endEntity events must be properly nested.
+ *
+ * @param name The name of the entity. If it is a parameter
+ * entity, the name will begin with '%', and if it is the
+ * external DTD subset, it will be "[dtd]".
+ * @exception SAXException The application may raise an exception.
+ * @see #endEntity
+ * @see org.xml.sax.ext.DeclHandler#internalEntityDecl
+ * @see org.xml.sax.ext.DeclHandler#externalEntityDecl
+ */
+ public abstract void startEntity (String name)
+ throws SAXException;
+
+
+ /**
+ * Report the end of an entity.
+ *
+ * @param name The name of the entity that is ending.
+ * @exception SAXException The application may raise an exception.
+ * @see #startEntity
+ */
+ public abstract void endEntity (String name)
+ throws SAXException;
+
+
+ /**
+ * Report the start of a CDATA section.
+ *
+ * <p>The contents of the CDATA section will be reported through
+ * the regular {@link org.xml.sax.ContentHandler#characters
+ * characters} event; this event is intended only to report
+ * the boundary.</p>
+ *
+ * @exception SAXException The application may raise an exception.
+ * @see #endCDATA
+ */
+ public abstract void startCDATA ()
+ throws SAXException;
+
+
+ /**
+ * Report the end of a CDATA section.
+ *
+ * @exception SAXException The application may raise an exception.
+ * @see #startCDATA
+ */
+ public abstract void endCDATA ()
+ throws SAXException;
+
+
+ /**
+ * Report an XML comment anywhere in the document.
+ *
+ * <p>This callback will be used for comments inside or outside the
+ * document element, including comments in the external DTD
+ * subset (if read). Comments in the DTD must be properly
+ * nested inside start/endDTD and start/endEntity events (if
+ * used).</p>
+ *
+ * @param ch An array holding the characters in the comment.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use from the array.
+ * @exception SAXException The application may raise an exception.
+ */
+ public abstract void comment (char ch[], int start, int length)
+ throws SAXException;
+
+}
+
+// end of LexicalHandler.java
diff --git a/libjava/org/xml/sax/ext/package.html b/libjava/org/xml/sax/ext/package.html
new file mode 100644
index 00000000000..bbb02f9276b
--- /dev/null
+++ b/libjava/org/xml/sax/ext/package.html
@@ -0,0 +1,49 @@
+<HTML><HEAD>
+
+</HEAD><BODY>
+
+<p>
+This package contains interfaces to optional SAX2 handlers.
+
+<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+for more information about SAX.</p>
+
+<p>
+The package is independent of the SAX2 core, though the functionality
+exposed generally needs to be implemented within a parser.
+That independence has several consequences:</p>
+
+<ul>
+
+<li>SAX2 drivers are <em>not</em> required to recognize these handlers,
+and you cannot assume that the class files will be present in every SAX2
+installation.</li>
+
+<li>This package may be updated independently of SAX2 (i.e. new
+handlers may be added without updating SAX2 itself).</li>
+
+<li>The handlers are not implemented by the SAX2
+<code>org.xml.sax.helpers.DefaultHandler</code> or
+<code>org.xml.sax.helpers.XMLFilterImpl</code> classes.
+You can subclass these if you need such behaviour.</li>
+
+<li>The handlers need to be registered differently than regular SAX2
+handlers.</li>
+
+</ul>
+
+<p>This package, SAX2-ext, is a standardized extension to SAX2. It is
+designed both to allow SAX parsers to pass certain types of information
+to applications, and to serve as a simple model for other SAX2 parser
+extension packages. Not all such extension packages should need to
+be recognized directly by parsers, however.
+As an example, most schema systems can be cleanly layered on top
+of parsers supporting the standardized SAX2 interfaces. </p>
+
+<p><strong>NOTE:</strong> this package alone does add any
+functionality; it simply provides optional interfaces for SAX2 drivers
+to use. You must use a SAX2 driver that recognizes these interfaces if
+you actually want to have access to lexical and declaration
+information.</p>
+
+</BODY></HTML>
diff --git a/libjava/org/xml/sax/helpers/AttributeListImpl.java b/libjava/org/xml/sax/helpers/AttributeListImpl.java
index 69754728c1f..6cabed4fe8b 100644
--- a/libjava/org/xml/sax/helpers/AttributeListImpl.java
+++ b/libjava/org/xml/sax/helpers/AttributeListImpl.java
@@ -1,310 +1,312 @@
-// SAX default implementation for AttributeList.
-// No warranty; no copyright -- use this as you will.
-// $Id: AttributeListImpl.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import org.xml.sax.AttributeList;
-
-import java.util.Vector;
-
-
-/**
- * Default implementation for AttributeList.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>AttributeList implements the deprecated SAX1 {@link
- * org.xml.sax.AttributeList AttributeList} interface, and has been
- * replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl
- * AttributesImpl} interface.</p>
- *
- * <p>This class provides a convenience implementation of the SAX
- * {@link org.xml.sax.AttributeList AttributeList} interface. This
- * implementation is useful both for SAX parser writers, who can use
- * it to provide attributes to the application, and for SAX application
- * writers, who can use it to create a persistent copy of an element's
- * attribute specifications:</p>
- *
- * <pre>
- * private AttributeList myatts;
- *
- * public void startElement (String name, AttributeList atts)
- * {
- * // create a persistent copy of the attribute list
- * // for use outside this method
- * myatts = new AttributeListImpl(atts);
- * [...]
- * }
- * </pre>
- *
- * <p>Please note that SAX parsers are not required to use this
- * class to provide an implementation of AttributeList; it is
- * supplied only as an optional convenience. In particular,
- * parser writers are encouraged to invent more efficient
- * implementations.</p>
- *
- * @deprecated This class implements a deprecated interface,
- * {@link org.xml.sax.AttributeList AttributeList};
- * that interface has been replaced by
- * {@link org.xml.sax.Attributes Attributes},
- * which is implemented in the
- * {@link org.xml.sax.helpers.AttributesImpl
- * AttributesImpl} helper class.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.AttributeList
- * @see org.xml.sax.DocumentHandler#startElement
- */
-public class AttributeListImpl implements AttributeList
-{
-
- /**
- * Create an empty attribute list.
- *
- * <p>This constructor is most useful for parser writers, who
- * will use it to create a single, reusable attribute list that
- * can be reset with the clear method between elements.</p>
- *
- * @see #addAttribute
- * @see #clear
- */
- public AttributeListImpl ()
- {
- }
-
-
- /**
- * Construct a persistent copy of an existing attribute list.
- *
- * <p>This constructor is most useful for application writers,
- * who will use it to create a persistent copy of an existing
- * attribute list.</p>
- *
- * @param atts The attribute list to copy
- * @see org.xml.sax.DocumentHandler#startElement
- */
- public AttributeListImpl (AttributeList atts)
- {
- setAttributeList(atts);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Methods specific to this class.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set the attribute list, discarding previous contents.
- *
- * <p>This method allows an application writer to reuse an
- * attribute list easily.</p>
- *
- * @param atts The attribute list to copy.
- */
- public void setAttributeList (AttributeList atts)
- {
- int count = atts.getLength();
-
- clear();
-
- for (int i = 0; i < count; i++) {
- addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i));
- }
- }
-
-
- /**
- * Add an attribute to an attribute list.
- *
- * <p>This method is provided for SAX parser writers, to allow them
- * to build up an attribute list incrementally before delivering
- * it to the application.</p>
- *
- * @param name The attribute name.
- * @param type The attribute type ("NMTOKEN" for an enumeration).
- * @param value The attribute value (must not be null).
- * @see #removeAttribute
- * @see org.xml.sax.DocumentHandler#startElement
- */
- public void addAttribute (String name, String type, String value)
- {
- names.addElement(name);
- types.addElement(type);
- values.addElement(value);
- }
-
-
- /**
- * Remove an attribute from the list.
- *
- * <p>SAX application writers can use this method to filter an
- * attribute out of an AttributeList. Note that invoking this
- * method will change the length of the attribute list and
- * some of the attribute's indices.</p>
- *
- * <p>If the requested attribute is not in the list, this is
- * a no-op.</p>
- *
- * @param name The attribute name.
- * @see #addAttribute
- */
- public void removeAttribute (String name)
- {
- int i = names.indexOf(name);
-
- if (i >= 0) {
- names.removeElementAt(i);
- types.removeElementAt(i);
- values.removeElementAt(i);
- }
- }
-
-
- /**
- * Clear the attribute list.
- *
- * <p>SAX parser writers can use this method to reset the attribute
- * list between DocumentHandler.startElement events. Normally,
- * it will make sense to reuse the same AttributeListImpl object
- * rather than allocating a new one each time.</p>
- *
- * @see org.xml.sax.DocumentHandler#startElement
- */
- public void clear ()
- {
- names.removeAllElements();
- types.removeAllElements();
- values.removeAllElements();
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.AttributeList
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the number of attributes in the list.
- *
- * @return The number of attributes in the list.
- * @see org.xml.sax.AttributeList#getLength
- */
- public int getLength ()
- {
- return names.size();
- }
-
-
- /**
- * Get the name of an attribute (by position).
- *
- * @param i The position of the attribute in the list.
- * @return The attribute name as a string, or null if there
- * is no attribute at that position.
- * @see org.xml.sax.AttributeList#getName(int)
- */
- public String getName (int i)
- {
- if (i < 0) {
- return null;
- }
- try {
- return (String)names.elementAt(i);
- } catch (ArrayIndexOutOfBoundsException e) {
- return null;
- }
- }
-
-
- /**
- * Get the type of an attribute (by position).
- *
- * @param i The position of the attribute in the list.
- * @return The attribute type as a string ("NMTOKEN" for an
- * enumeration, and "CDATA" if no declaration was
- * read), or null if there is no attribute at
- * that position.
- * @see org.xml.sax.AttributeList#getType(int)
- */
- public String getType (int i)
- {
- if (i < 0) {
- return null;
- }
- try {
- return (String)types.elementAt(i);
- } catch (ArrayIndexOutOfBoundsException e) {
- return null;
- }
- }
-
-
- /**
- * Get the value of an attribute (by position).
- *
- * @param i The position of the attribute in the list.
- * @return The attribute value as a string, or null if
- * there is no attribute at that position.
- * @see org.xml.sax.AttributeList#getValue(int)
- */
- public String getValue (int i)
- {
- if (i < 0) {
- return null;
- }
- try {
- return (String)values.elementAt(i);
- } catch (ArrayIndexOutOfBoundsException e) {
- return null;
- }
- }
-
-
- /**
- * Get the type of an attribute (by name).
- *
- * @param name The attribute name.
- * @return The attribute type as a string ("NMTOKEN" for an
- * enumeration, and "CDATA" if no declaration was
- * read).
- * @see org.xml.sax.AttributeList#getType(java.lang.String)
- */
- public String getType (String name)
- {
- return getType(names.indexOf(name));
- }
-
-
- /**
- * Get the value of an attribute (by name).
- *
- * @param name The attribute name.
- * @see org.xml.sax.AttributeList#getValue(java.lang.String)
- */
- public String getValue (String name)
- {
- return getValue(names.indexOf(name));
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- Vector names = new Vector();
- Vector types = new Vector();
- Vector values = new Vector();
-
-}
-
-// end of AttributeListImpl.java
+// SAX default implementation for AttributeList.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: AttributeListImpl.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import org.xml.sax.AttributeList;
+
+import java.util.Vector;
+
+
+/**
+ * Default implementation for AttributeList.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>AttributeList implements the deprecated SAX1 {@link
+ * org.xml.sax.AttributeList AttributeList} interface, and has been
+ * replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl
+ * AttributesImpl} interface.</p>
+ *
+ * <p>This class provides a convenience implementation of the SAX
+ * {@link org.xml.sax.AttributeList AttributeList} interface. This
+ * implementation is useful both for SAX parser writers, who can use
+ * it to provide attributes to the application, and for SAX application
+ * writers, who can use it to create a persistent copy of an element's
+ * attribute specifications:</p>
+ *
+ * <pre>
+ * private AttributeList myatts;
+ *
+ * public void startElement (String name, AttributeList atts)
+ * {
+ * // create a persistent copy of the attribute list
+ * // for use outside this method
+ * myatts = new AttributeListImpl(atts);
+ * [...]
+ * }
+ * </pre>
+ *
+ * <p>Please note that SAX parsers are not required to use this
+ * class to provide an implementation of AttributeList; it is
+ * supplied only as an optional convenience. In particular,
+ * parser writers are encouraged to invent more efficient
+ * implementations.</p>
+ *
+ * @deprecated This class implements a deprecated interface,
+ * {@link org.xml.sax.AttributeList AttributeList};
+ * that interface has been replaced by
+ * {@link org.xml.sax.Attributes Attributes},
+ * which is implemented in the
+ * {@link org.xml.sax.helpers.AttributesImpl
+ * AttributesImpl} helper class.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.AttributeList
+ * @see org.xml.sax.DocumentHandler#startElement
+ */
+public class AttributeListImpl implements AttributeList
+{
+
+ /**
+ * Create an empty attribute list.
+ *
+ * <p>This constructor is most useful for parser writers, who
+ * will use it to create a single, reusable attribute list that
+ * can be reset with the clear method between elements.</p>
+ *
+ * @see #addAttribute
+ * @see #clear
+ */
+ public AttributeListImpl ()
+ {
+ }
+
+
+ /**
+ * Construct a persistent copy of an existing attribute list.
+ *
+ * <p>This constructor is most useful for application writers,
+ * who will use it to create a persistent copy of an existing
+ * attribute list.</p>
+ *
+ * @param atts The attribute list to copy
+ * @see org.xml.sax.DocumentHandler#startElement
+ */
+ public AttributeListImpl (AttributeList atts)
+ {
+ setAttributeList(atts);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Methods specific to this class.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set the attribute list, discarding previous contents.
+ *
+ * <p>This method allows an application writer to reuse an
+ * attribute list easily.</p>
+ *
+ * @param atts The attribute list to copy.
+ */
+ public void setAttributeList (AttributeList atts)
+ {
+ int count = atts.getLength();
+
+ clear();
+
+ for (int i = 0; i < count; i++) {
+ addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i));
+ }
+ }
+
+
+ /**
+ * Add an attribute to an attribute list.
+ *
+ * <p>This method is provided for SAX parser writers, to allow them
+ * to build up an attribute list incrementally before delivering
+ * it to the application.</p>
+ *
+ * @param name The attribute name.
+ * @param type The attribute type ("NMTOKEN" for an enumeration).
+ * @param value The attribute value (must not be null).
+ * @see #removeAttribute
+ * @see org.xml.sax.DocumentHandler#startElement
+ */
+ public void addAttribute (String name, String type, String value)
+ {
+ names.addElement(name);
+ types.addElement(type);
+ values.addElement(value);
+ }
+
+
+ /**
+ * Remove an attribute from the list.
+ *
+ * <p>SAX application writers can use this method to filter an
+ * attribute out of an AttributeList. Note that invoking this
+ * method will change the length of the attribute list and
+ * some of the attribute's indices.</p>
+ *
+ * <p>If the requested attribute is not in the list, this is
+ * a no-op.</p>
+ *
+ * @param name The attribute name.
+ * @see #addAttribute
+ */
+ public void removeAttribute (String name)
+ {
+ int i = names.indexOf(name);
+
+ if (i >= 0) {
+ names.removeElementAt(i);
+ types.removeElementAt(i);
+ values.removeElementAt(i);
+ }
+ }
+
+
+ /**
+ * Clear the attribute list.
+ *
+ * <p>SAX parser writers can use this method to reset the attribute
+ * list between DocumentHandler.startElement events. Normally,
+ * it will make sense to reuse the same AttributeListImpl object
+ * rather than allocating a new one each time.</p>
+ *
+ * @see org.xml.sax.DocumentHandler#startElement
+ */
+ public void clear ()
+ {
+ names.removeAllElements();
+ types.removeAllElements();
+ values.removeAllElements();
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.AttributeList
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the number of attributes in the list.
+ *
+ * @return The number of attributes in the list.
+ * @see org.xml.sax.AttributeList#getLength
+ */
+ public int getLength ()
+ {
+ return names.size();
+ }
+
+
+ /**
+ * Get the name of an attribute (by position).
+ *
+ * @param i The position of the attribute in the list.
+ * @return The attribute name as a string, or null if there
+ * is no attribute at that position.
+ * @see org.xml.sax.AttributeList#getName(int)
+ */
+ public String getName (int i)
+ {
+ if (i < 0) {
+ return null;
+ }
+ try {
+ return (String)names.elementAt(i);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+
+ /**
+ * Get the type of an attribute (by position).
+ *
+ * @param i The position of the attribute in the list.
+ * @return The attribute type as a string ("NMTOKEN" for an
+ * enumeration, and "CDATA" if no declaration was
+ * read), or null if there is no attribute at
+ * that position.
+ * @see org.xml.sax.AttributeList#getType(int)
+ */
+ public String getType (int i)
+ {
+ if (i < 0) {
+ return null;
+ }
+ try {
+ return (String)types.elementAt(i);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+
+ /**
+ * Get the value of an attribute (by position).
+ *
+ * @param i The position of the attribute in the list.
+ * @return The attribute value as a string, or null if
+ * there is no attribute at that position.
+ * @see org.xml.sax.AttributeList#getValue(int)
+ */
+ public String getValue (int i)
+ {
+ if (i < 0) {
+ return null;
+ }
+ try {
+ return (String)values.elementAt(i);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+
+ /**
+ * Get the type of an attribute (by name).
+ *
+ * @param name The attribute name.
+ * @return The attribute type as a string ("NMTOKEN" for an
+ * enumeration, and "CDATA" if no declaration was
+ * read).
+ * @see org.xml.sax.AttributeList#getType(java.lang.String)
+ */
+ public String getType (String name)
+ {
+ return getType(names.indexOf(name));
+ }
+
+
+ /**
+ * Get the value of an attribute (by name).
+ *
+ * @param name The attribute name.
+ * @see org.xml.sax.AttributeList#getValue(java.lang.String)
+ */
+ public String getValue (String name)
+ {
+ return getValue(names.indexOf(name));
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ Vector names = new Vector();
+ Vector types = new Vector();
+ Vector values = new Vector();
+
+}
+
+// end of AttributeListImpl.java
diff --git a/libjava/org/xml/sax/helpers/AttributesImpl.java b/libjava/org/xml/sax/helpers/AttributesImpl.java
index b714f39fdb8..d16cb335664 100644
--- a/libjava/org/xml/sax/helpers/AttributesImpl.java
+++ b/libjava/org/xml/sax/helpers/AttributesImpl.java
@@ -1,606 +1,620 @@
-// AttributesImpl.java - default implementation of Attributes.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: AttributesImpl.java,v 1.2 2001/05/31 16:03:17 garyp Exp $
-
-
-package org.xml.sax.helpers;
-
-import org.xml.sax.Attributes;
-
-
-/**
- * Default implementation of the Attributes interface.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class provides a default implementation of the SAX2
- * {@link org.xml.sax.Attributes Attributes} interface, with the
- * addition of manipulators so that the list can be modified or
- * reused.</p>
- *
- * <p>There are two typical uses of this class:</p>
- *
- * <ol>
- * <li>to take a persistent snapshot of an Attributes object
- * in a {@link org.xml.sax.ContentHandler#startElement startElement} event; or</li>
- * <li>to construct or modify an Attributes object in a SAX2 driver or filter.</li>
- * </ol>
- *
- * <p>This class replaces the now-deprecated SAX1 {@link
- * org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
- * class; in addition to supporting the updated Attributes
- * interface rather than the deprecated {@link org.xml.sax.AttributeList
- * AttributeList} interface, it also includes a much more efficient
- * implementation using a single array rather than a set of Vectors.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- */
-public class AttributesImpl implements Attributes
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Constructors.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Construct a new, empty AttributesImpl object.
- */
- public AttributesImpl ()
- {
- length = 0;
- data = null;
- }
-
-
- /**
- * Copy an existing Attributes object.
- *
- * <p>This constructor is especially useful inside a
- * {@link org.xml.sax.ContentHandler#startElement startElement} event.</p>
- *
- * @param atts The existing Attributes object.
- */
- public AttributesImpl (Attributes atts)
- {
- setAttributes(atts);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.Attributes.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the number of attributes in the list.
- *
- * @return The number of attributes in the list.
- * @see org.xml.sax.Attributes#getLength
- */
- public int getLength ()
- {
- return length;
- }
-
-
- /**
- * Return an attribute's Namespace URI.
- *
- * @param index The attribute's index (zero-based).
- * @return The Namespace URI, the empty string if none is
- * available, or null if the index is out of range.
- * @see org.xml.sax.Attributes#getURI
- */
- public String getURI (int index)
- {
- if (index >= 0 && index < length) {
- return data[index*5];
- } else {
- return null;
- }
- }
-
-
- /**
- * Return an attribute's local name.
- *
- * @param index The attribute's index (zero-based).
- * @return The attribute's local name, the empty string if
- * none is available, or null if the index if out of range.
- * @see org.xml.sax.Attributes#getLocalName
- */
- public String getLocalName (int index)
- {
- if (index >= 0 && index < length) {
- return data[index*5+1];
- } else {
- return null;
- }
- }
-
-
- /**
- * Return an attribute's qualified (prefixed) name.
- *
- * @param index The attribute's index (zero-based).
- * @return The attribute's qualified name, the empty string if
- * none is available, or null if the index is out of bounds.
- * @see org.xml.sax.Attributes#getQName
- */
- public String getQName (int index)
- {
- if (index >= 0 && index < length) {
- return data[index*5+2];
- } else {
- return null;
- }
- }
-
-
- /**
- * Return an attribute's type by index.
- *
- * @param index The attribute's index (zero-based).
- * @return The attribute's type, "CDATA" if the type is unknown, or null
- * if the index is out of bounds.
- * @see org.xml.sax.Attributes#getType(int)
- */
- public String getType (int index)
- {
- if (index >= 0 && index < length) {
- return data[index*5+3];
- } else {
- return null;
- }
- }
-
-
- /**
- * Return an attribute's value by index.
- *
- * @param index The attribute's index (zero-based).
- * @return The attribute's value or null if the index is out of bounds.
- * @see org.xml.sax.Attributes#getValue(int)
- */
- public String getValue (int index)
- {
- if (index >= 0 && index < length) {
- return data[index*5+4];
- } else {
- return null;
- }
- }
-
-
- /**
- * Look up an attribute's index by Namespace name.
- *
- * <p>In many cases, it will be more efficient to look up the name once and
- * use the index query methods rather than using the name query methods
- * repeatedly.</p>
- *
- * @param uri The attribute's Namespace URI, or the empty
- * string if none is available.
- * @param localName The attribute's local name.
- * @return The attribute's index, or -1 if none matches.
- * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String)
- */
- public int getIndex (String uri, String localName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i].equals(uri) && data[i+1].equals(localName)) {
- return i / 5;
- }
- }
- return -1;
- }
-
-
- /**
- * Look up an attribute's index by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attribute's index, or -1 if none matches.
- * @see org.xml.sax.Attributes#getIndex(java.lang.String)
- */
- public int getIndex (String qName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i+2].equals(qName)) {
- return i / 5;
- }
- }
- return -1;
- }
-
-
- /**
- * Look up an attribute's type by Namespace-qualified name.
- *
- * @param uri The Namespace URI, or the empty string for a name
- * with no explicit Namespace URI.
- * @param localName The local name.
- * @return The attribute's type, or null if there is no
- * matching attribute.
- * @see org.xml.sax.Attributes#getType(java.lang.String,java.lang.String)
- */
- public String getType (String uri, String localName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i].equals(uri) && data[i+1].equals(localName)) {
- return data[i+3];
- }
- }
- return null;
- }
-
-
- /**
- * Look up an attribute's type by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attribute's type, or null if there is no
- * matching attribute.
- * @see org.xml.sax.Attributes#getType(java.lang.String)
- */
- public String getType (String qName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i+2].equals(qName)) {
- return data[i+3];
- }
- }
- return null;
- }
-
-
- /**
- * Look up an attribute's value by Namespace-qualified name.
- *
- * @param uri The Namespace URI, or the empty string for a name
- * with no explicit Namespace URI.
- * @param localName The local name.
- * @return The attribute's value, or null if there is no
- * matching attribute.
- * @see org.xml.sax.Attributes#getValue(java.lang.String,java.lang.String)
- */
- public String getValue (String uri, String localName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i].equals(uri) && data[i+1].equals(localName)) {
- return data[i+4];
- }
- }
- return null;
- }
-
-
- /**
- * Look up an attribute's value by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attribute's value, or null if there is no
- * matching attribute.
- * @see org.xml.sax.Attributes#getValue(java.lang.String)
- */
- public String getValue (String qName)
- {
- int max = length * 5;
- for (int i = 0; i < max; i += 5) {
- if (data[i+2].equals(qName)) {
- return data[i+4];
- }
- }
- return null;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Manipulators.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Clear the attribute list for reuse.
- *
- * <p>Note that no memory is actually freed by this call:
- * the current arrays are kept so that they can be
- * reused.</p>
- */
- public void clear ()
- {
- length = 0;
- }
-
-
- /**
- * Copy an entire Attributes object.
- *
- * <p>It may be more efficient to reuse an existing object
- * rather than constantly allocating new ones.</p>
- *
- * @param atts The attributes to copy.
- */
- public void setAttributes (Attributes atts)
- {
- clear();
- length = atts.getLength();
- data = new String[length*5];
- for (int i = 0; i < length; i++) {
- data[i*5] = atts.getURI(i);
- data[i*5+1] = atts.getLocalName(i);
- data[i*5+2] = atts.getQName(i);
- data[i*5+3] = atts.getType(i);
- data[i*5+4] = atts.getValue(i);
- }
- }
-
-
- /**
- * Add an attribute to the end of the list.
- *
- * <p>For the sake of speed, this method does no checking
- * to see if the attribute is already in the list: that is
- * the responsibility of the application.</p>
- *
- * @param uri The Namespace URI, or the empty string if
- * none is available or Namespace processing is not
- * being performed.
- * @param localName The local name, or the empty string if
- * Namespace processing is not being performed.
- * @param qName The qualified (prefixed) name, or the empty string
- * if qualified names are not available.
- * @param type The attribute type as a string.
- * @param value The attribute value.
- */
- public void addAttribute (String uri, String localName, String qName,
- String type, String value)
- {
- ensureCapacity(length+1);
- data[length*5] = uri;
- data[length*5+1] = localName;
- data[length*5+2] = qName;
- data[length*5+3] = type;
- data[length*5+4] = value;
- length++;
- }
-
-
- /**
- * Set an attribute in the list.
- *
- * <p>For the sake of speed, this method does no checking
- * for name conflicts or well-formedness: such checks are the
- * responsibility of the application.</p>
- *
- * @param index The index of the attribute (zero-based).
- * @param uri The Namespace URI, or the empty string if
- * none is available or Namespace processing is not
- * being performed.
- * @param localName The local name, or the empty string if
- * Namespace processing is not being performed.
- * @param qName The qualified name, or the empty string
- * if qualified names are not available.
- * @param type The attribute type as a string.
- * @param value The attribute value.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setAttribute (int index, String uri, String localName,
- String qName, String type, String value)
- {
- if (index >= 0 && index < length) {
- data[index*5] = uri;
- data[index*5+1] = localName;
- data[index*5+2] = qName;
- data[index*5+3] = type;
- data[index*5+4] = value;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Remove an attribute from the list.
- *
- * @param index The index of the attribute (zero-based).
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void removeAttribute (int index)
- {
- if (index >= 0 && index < length) {
- data[index*5] = null;
- data[index*5+1] = null;
- data[index*5+2] = null;
- data[index*5+3] = null;
- data[index*5+4] = null;
- if (index < length - 1) {
- System.arraycopy(data, (index+1)*5, data, index*5,
- (length-index-1)*5);
- }
- length--;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Set the Namespace URI of a specific attribute.
- *
- * @param index The index of the attribute (zero-based).
- * @param uri The attribute's Namespace URI, or the empty
- * string for none.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setURI (int index, String uri)
- {
- if (index >= 0 && index < length) {
- data[index*5] = uri;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Set the local name of a specific attribute.
- *
- * @param index The index of the attribute (zero-based).
- * @param localName The attribute's local name, or the empty
- * string for none.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setLocalName (int index, String localName)
- {
- if (index >= 0 && index < length) {
- data[index*5+1] = localName;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Set the qualified name of a specific attribute.
- *
- * @param index The index of the attribute (zero-based).
- * @param qName The attribute's qualified name, or the empty
- * string for none.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setQName (int index, String qName)
- {
- if (index >= 0 && index < length) {
- data[index*5+2] = qName;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Set the type of a specific attribute.
- *
- * @param index The index of the attribute (zero-based).
- * @param type The attribute's type.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setType (int index, String type)
- {
- if (index >= 0 && index < length) {
- data[index*5+3] = type;
- } else {
- badIndex(index);
- }
- }
-
-
- /**
- * Set the value of a specific attribute.
- *
- * @param index The index of the attribute (zero-based).
- * @param value The attribute's value.
- * @exception java.lang.ArrayIndexOutOfBoundsException When the
- * supplied index does not point to an attribute
- * in the list.
- */
- public void setValue (int index, String value)
- {
- if (index >= 0 && index < length) {
- data[index*5+4] = value;
- } else {
- badIndex(index);
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal methods.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Ensure the internal array's capacity.
- *
- * @param n The minimum number of attributes that the array must
- * be able to hold.
- */
- private void ensureCapacity (int n)
- {
- if (n > 0 && data == null) {
- data = new String[25];
- }
-
- int max = data.length;
- if (max >= n * 5) {
- return;
- }
-
-
- while (max < n * 5) {
- max *= 2;
- }
- String newData[] = new String[max];
- System.arraycopy(data, 0, newData, 0, length*5);
- data = newData;
- }
-
-
- /**
- * Report a bad array index in a manipulator.
- *
- * @param index The index to report.
- * @exception java.lang.ArrayIndexOutOfBoundsException Always.
- */
- private void badIndex (int index)
- throws ArrayIndexOutOfBoundsException
- {
- String msg =
- "Attempt to modify attribute at illegal index: " + index;
- throw new ArrayIndexOutOfBoundsException(msg);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- int length;
- String data [];
-
-}
-
-// end of AttributesImpl.java
-
+// AttributesImpl.java - default implementation of Attributes.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: AttributesImpl.java,v 1.6.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+
+package org.xml.sax.helpers;
+
+import org.xml.sax.Attributes;
+
+
+/**
+ * Default implementation of the Attributes interface.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class provides a default implementation of the SAX2
+ * {@link org.xml.sax.Attributes Attributes} interface, with the
+ * addition of manipulators so that the list can be modified or
+ * reused.</p>
+ *
+ * <p>There are two typical uses of this class:</p>
+ *
+ * <ol>
+ * <li>to take a persistent snapshot of an Attributes object
+ * in a {@link org.xml.sax.ContentHandler#startElement startElement} event; or</li>
+ * <li>to construct or modify an Attributes object in a SAX2 driver or filter.</li>
+ * </ol>
+ *
+ * <p>This class replaces the now-deprecated SAX1 {@link
+ * org.xml.sax.helpers.AttributeListImpl AttributeListImpl}
+ * class; in addition to supporting the updated Attributes
+ * interface rather than the deprecated {@link org.xml.sax.AttributeList
+ * AttributeList} interface, it also includes a much more efficient
+ * implementation using a single array rather than a set of Vectors.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public class AttributesImpl implements Attributes
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constructors.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Construct a new, empty AttributesImpl object.
+ */
+ public AttributesImpl ()
+ {
+ length = 0;
+ data = null;
+ }
+
+
+ /**
+ * Copy an existing Attributes object.
+ *
+ * <p>This constructor is especially useful inside a
+ * {@link org.xml.sax.ContentHandler#startElement startElement} event.</p>
+ *
+ * @param atts The existing Attributes object.
+ */
+ public AttributesImpl (Attributes atts)
+ {
+ setAttributes(atts);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.Attributes.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the number of attributes in the list.
+ *
+ * @return The number of attributes in the list.
+ * @see org.xml.sax.Attributes#getLength
+ */
+ public int getLength ()
+ {
+ return length;
+ }
+
+
+ /**
+ * Return an attribute's Namespace URI.
+ *
+ * @param index The attribute's index (zero-based).
+ * @return The Namespace URI, the empty string if none is
+ * available, or null if the index is out of range.
+ * @see org.xml.sax.Attributes#getURI
+ */
+ public String getURI (int index)
+ {
+ if (index >= 0 && index < length) {
+ return data[index*5];
+ } else {
+ return null;
+ }
+ }
+
+
+ /**
+ * Return an attribute's local name.
+ *
+ * @param index The attribute's index (zero-based).
+ * @return The attribute's local name, the empty string if
+ * none is available, or null if the index if out of range.
+ * @see org.xml.sax.Attributes#getLocalName
+ */
+ public String getLocalName (int index)
+ {
+ if (index >= 0 && index < length) {
+ return data[index*5+1];
+ } else {
+ return null;
+ }
+ }
+
+
+ /**
+ * Return an attribute's qualified (prefixed) name.
+ *
+ * @param index The attribute's index (zero-based).
+ * @return The attribute's qualified name, the empty string if
+ * none is available, or null if the index is out of bounds.
+ * @see org.xml.sax.Attributes#getQName
+ */
+ public String getQName (int index)
+ {
+ if (index >= 0 && index < length) {
+ return data[index*5+2];
+ } else {
+ return null;
+ }
+ }
+
+
+ /**
+ * Return an attribute's type by index.
+ *
+ * @param index The attribute's index (zero-based).
+ * @return The attribute's type, "CDATA" if the type is unknown, or null
+ * if the index is out of bounds.
+ * @see org.xml.sax.Attributes#getType(int)
+ */
+ public String getType (int index)
+ {
+ if (index >= 0 && index < length) {
+ return data[index*5+3];
+ } else {
+ return null;
+ }
+ }
+
+
+ /**
+ * Return an attribute's value by index.
+ *
+ * @param index The attribute's index (zero-based).
+ * @return The attribute's value or null if the index is out of bounds.
+ * @see org.xml.sax.Attributes#getValue(int)
+ */
+ public String getValue (int index)
+ {
+ if (index >= 0 && index < length) {
+ return data[index*5+4];
+ } else {
+ return null;
+ }
+ }
+
+
+ /**
+ * Look up an attribute's index by Namespace name.
+ *
+ * <p>In many cases, it will be more efficient to look up the name once and
+ * use the index query methods rather than using the name query methods
+ * repeatedly.</p>
+ *
+ * @param uri The attribute's Namespace URI, or the empty
+ * string if none is available.
+ * @param localName The attribute's local name.
+ * @return The attribute's index, or -1 if none matches.
+ * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String)
+ */
+ public int getIndex (String uri, String localName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i].equals(uri) && data[i+1].equals(localName)) {
+ return i / 5;
+ }
+ }
+ return -1;
+ }
+
+
+ /**
+ * Look up an attribute's index by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attribute's index, or -1 if none matches.
+ * @see org.xml.sax.Attributes#getIndex(java.lang.String)
+ */
+ public int getIndex (String qName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i+2].equals(qName)) {
+ return i / 5;
+ }
+ }
+ return -1;
+ }
+
+
+ /**
+ * Look up an attribute's type by Namespace-qualified name.
+ *
+ * @param uri The Namespace URI, or the empty string for a name
+ * with no explicit Namespace URI.
+ * @param localName The local name.
+ * @return The attribute's type, or null if there is no
+ * matching attribute.
+ * @see org.xml.sax.Attributes#getType(java.lang.String,java.lang.String)
+ */
+ public String getType (String uri, String localName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i].equals(uri) && data[i+1].equals(localName)) {
+ return data[i+3];
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Look up an attribute's type by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attribute's type, or null if there is no
+ * matching attribute.
+ * @see org.xml.sax.Attributes#getType(java.lang.String)
+ */
+ public String getType (String qName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i+2].equals(qName)) {
+ return data[i+3];
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Look up an attribute's value by Namespace-qualified name.
+ *
+ * @param uri The Namespace URI, or the empty string for a name
+ * with no explicit Namespace URI.
+ * @param localName The local name.
+ * @return The attribute's value, or null if there is no
+ * matching attribute.
+ * @see org.xml.sax.Attributes#getValue(java.lang.String,java.lang.String)
+ */
+ public String getValue (String uri, String localName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i].equals(uri) && data[i+1].equals(localName)) {
+ return data[i+4];
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Look up an attribute's value by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attribute's value, or null if there is no
+ * matching attribute.
+ * @see org.xml.sax.Attributes#getValue(java.lang.String)
+ */
+ public String getValue (String qName)
+ {
+ int max = length * 5;
+ for (int i = 0; i < max; i += 5) {
+ if (data[i+2].equals(qName)) {
+ return data[i+4];
+ }
+ }
+ return null;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Manipulators.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Clear the attribute list for reuse.
+ *
+ * <p>Note that little memory is freed by this call:
+ * the current array is kept so it can be
+ * reused.</p>
+ */
+ public void clear ()
+ {
+ if (data != null) {
+ for (int i = 0; i < (length * 5); i++)
+ data [i] = null;
+ }
+ length = 0;
+ }
+
+
+ /**
+ * Copy an entire Attributes object.
+ *
+ * <p>It may be more efficient to reuse an existing object
+ * rather than constantly allocating new ones.</p>
+ *
+ * @param atts The attributes to copy.
+ */
+ public void setAttributes (Attributes atts)
+ {
+ clear();
+ length = atts.getLength();
+ if (length > 0) {
+ data = new String[length*5];
+ for (int i = 0; i < length; i++) {
+ data[i*5] = atts.getURI(i);
+ data[i*5+1] = atts.getLocalName(i);
+ data[i*5+2] = atts.getQName(i);
+ data[i*5+3] = atts.getType(i);
+ data[i*5+4] = atts.getValue(i);
+ }
+ }
+ }
+
+
+ /**
+ * Add an attribute to the end of the list.
+ *
+ * <p>For the sake of speed, this method does no checking
+ * to see if the attribute is already in the list: that is
+ * the responsibility of the application.</p>
+ *
+ * @param uri The Namespace URI, or the empty string if
+ * none is available or Namespace processing is not
+ * being performed.
+ * @param localName The local name, or the empty string if
+ * Namespace processing is not being performed.
+ * @param qName The qualified (prefixed) name, or the empty string
+ * if qualified names are not available.
+ * @param type The attribute type as a string.
+ * @param value The attribute value.
+ */
+ public void addAttribute (String uri, String localName, String qName,
+ String type, String value)
+ {
+ ensureCapacity(length+1);
+ data[length*5] = uri;
+ data[length*5+1] = localName;
+ data[length*5+2] = qName;
+ data[length*5+3] = type;
+ data[length*5+4] = value;
+ length++;
+ }
+
+
+ /**
+ * Set an attribute in the list.
+ *
+ * <p>For the sake of speed, this method does no checking
+ * for name conflicts or well-formedness: such checks are the
+ * responsibility of the application.</p>
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param uri The Namespace URI, or the empty string if
+ * none is available or Namespace processing is not
+ * being performed.
+ * @param localName The local name, or the empty string if
+ * Namespace processing is not being performed.
+ * @param qName The qualified name, or the empty string
+ * if qualified names are not available.
+ * @param type The attribute type as a string.
+ * @param value The attribute value.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setAttribute (int index, String uri, String localName,
+ String qName, String type, String value)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5] = uri;
+ data[index*5+1] = localName;
+ data[index*5+2] = qName;
+ data[index*5+3] = type;
+ data[index*5+4] = value;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Remove an attribute from the list.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void removeAttribute (int index)
+ {
+ if (index >= 0 && index < length) {
+ if (index < length - 1) {
+ System.arraycopy(data, (index+1)*5, data, index*5,
+ (length-index-1)*5);
+ }
+ index = (length - 1) * 5;
+ data [index++] = null;
+ data [index++] = null;
+ data [index++] = null;
+ data [index++] = null;
+ data [index] = null;
+ length--;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Set the Namespace URI of a specific attribute.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param uri The attribute's Namespace URI, or the empty
+ * string for none.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setURI (int index, String uri)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5] = uri;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Set the local name of a specific attribute.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param localName The attribute's local name, or the empty
+ * string for none.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setLocalName (int index, String localName)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5+1] = localName;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Set the qualified name of a specific attribute.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param qName The attribute's qualified name, or the empty
+ * string for none.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setQName (int index, String qName)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5+2] = qName;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Set the type of a specific attribute.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param type The attribute's type.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setType (int index, String type)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5+3] = type;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+ /**
+ * Set the value of a specific attribute.
+ *
+ * @param index The index of the attribute (zero-based).
+ * @param value The attribute's value.
+ * @exception java.lang.ArrayIndexOutOfBoundsException When the
+ * supplied index does not point to an attribute
+ * in the list.
+ */
+ public void setValue (int index, String value)
+ {
+ if (index >= 0 && index < length) {
+ data[index*5+4] = value;
+ } else {
+ badIndex(index);
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Ensure the internal array's capacity.
+ *
+ * @param n The minimum number of attributes that the array must
+ * be able to hold.
+ */
+ private void ensureCapacity (int n) {
+ if (n <= 0) {
+ return;
+ }
+ int max;
+ if (data == null || data.length == 0) {
+ max = 25;
+ }
+ else if (data.length >= n * 5) {
+ return;
+ }
+ else {
+ max = data.length;
+ }
+ while (max < n * 5) {
+ max *= 2;
+ }
+
+ String newData[] = new String[max];
+ if (length > 0) {
+ System.arraycopy(data, 0, newData, 0, length*5);
+ }
+ data = newData;
+ }
+
+
+ /**
+ * Report a bad array index in a manipulator.
+ *
+ * @param index The index to report.
+ * @exception java.lang.ArrayIndexOutOfBoundsException Always.
+ */
+ private void badIndex (int index)
+ throws ArrayIndexOutOfBoundsException
+ {
+ String msg =
+ "Attempt to modify attribute at illegal index: " + index;
+ throw new ArrayIndexOutOfBoundsException(msg);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ int length;
+ String data [];
+
+}
+
+// end of AttributesImpl.java
+
diff --git a/libjava/org/xml/sax/helpers/DefaultHandler.java b/libjava/org/xml/sax/helpers/DefaultHandler.java
index 957d44d882e..873e754a1a5 100644
--- a/libjava/org/xml/sax/helpers/DefaultHandler.java
+++ b/libjava/org/xml/sax/helpers/DefaultHandler.java
@@ -1,447 +1,468 @@
-// DefaultHandler.java - default implementation of the core handlers.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: DefaultHandler.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.Attributes;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.DTDHandler;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-
-/**
- * Default base class for SAX2 event handlers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class is available as a convenience base class for SAX2
- * applications: it provides default implementations for all of the
- * callbacks in the four core SAX2 handler classes:</p>
- *
- * <ul>
- * <li>{@link org.xml.sax.EntityResolver EntityResolver}</li>
- * <li>{@link org.xml.sax.DTDHandler DTDHandler}</li>
- * <li>{@link org.xml.sax.ContentHandler ContentHandler}</li>
- * <li>{@link org.xml.sax.ErrorHandler ErrorHandler}</li>
- * </ul>
- *
- * <p>Application writers can extend this class when they need to
- * implement only part of an interface; parser writers can
- * instantiate this class to provide default handlers when the
- * application has not supplied its own.</p>
- *
- * <p>This class replaces the deprecated SAX1
- * {@link org.xml.sax.HandlerBase HandlerBase} class.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.EntityResolver
- * @see org.xml.sax.DTDHandler
- * @see org.xml.sax.ContentHandler
- * @see org.xml.sax.ErrorHandler
- */
-public class DefaultHandler
- implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of the EntityResolver interface.
- ////////////////////////////////////////////////////////////////////
-
- /**
- * Resolve an external entity.
- *
- * <p>Always return null, so that the parser will use the system
- * identifier provided in the XML document. This method implements
- * the SAX default behaviour: application writers can override it
- * in a subclass to do special translations such as catalog lookups
- * or URI redirection.</p>
- *
- * @param publicId The public identifier, or null if none is
- * available.
- * @param systemId The system identifier provided in the XML
- * document.
- * @return The new input source, or null to require the
- * default behaviour.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.EntityResolver#resolveEntity
- */
- public InputSource resolveEntity (String publicId, String systemId)
- throws SAXException
- {
- return null;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of DTDHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive notification of a notation declaration.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass if they wish to keep track of the notations
- * declared in a document.</p>
- *
- * @param name The notation name.
- * @param publicId The notation public identifier, or null if not
- * available.
- * @param systemId The notation system identifier.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DTDHandler#notationDecl
- */
- public void notationDecl (String name, String publicId, String systemId)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of an unparsed entity declaration.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to keep track of the unparsed entities
- * declared in a document.</p>
- *
- * @param name The entity name.
- * @param publicId The entity public identifier, or null if not
- * available.
- * @param systemId The entity system identifier.
- * @param notationName The name of the associated notation.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.DTDHandler#unparsedEntityDecl
- */
- public void unparsedEntityDecl (String name, String publicId,
- String systemId, String notationName)
- throws SAXException
- {
- // no op
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of ContentHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive a Locator object for document events.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass if they wish to store the locator for use
- * with other document events.</p>
- *
- * @param locator A locator for all SAX document events.
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- * @see org.xml.sax.Locator
- */
- public void setDocumentLocator (Locator locator)
- {
- // no op
- }
-
-
- /**
- * Receive notification of the beginning of the document.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the beginning
- * of a document (such as allocating the root node of a tree or
- * creating an output file).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#startDocument
- */
- public void startDocument ()
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the end of the document.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the end
- * of a document (such as finalising a tree or closing an output
- * file).</p>
- *
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#endDocument
- */
- public void endDocument ()
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the start of a Namespace mapping.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the start of
- * each Namespace prefix scope (such as storing the prefix mapping).</p>
- *
- * @param prefix The Namespace prefix being declared.
- * @param uri The Namespace URI mapped to the prefix.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#startPrefixMapping
- */
- public void startPrefixMapping (String prefix, String uri)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the end of a Namespace mapping.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the end of
- * each prefix mapping.</p>
- *
- * @param prefix The Namespace prefix being declared.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#endPrefixMapping
- */
- public void endPrefixMapping (String prefix)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the start of an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the start of
- * each element (such as allocating a new tree node or writing
- * output to a file).</p>
- *
- * @param name The element type name.
- * @param attributes The specified or defaulted attributes.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#startElement
- */
- public void startElement (String uri, String localName,
- String qName, Attributes attributes)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of the end of an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions at the end of
- * each element (such as finalising a tree node or writing
- * output to a file).</p>
- *
- * @param name The element type name.
- * @param attributes The specified or defaulted attributes.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#endElement
- */
- public void endElement (String uri, String localName, String qName)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of character data inside an element.
- *
- * <p>By default, do nothing. Application writers may override this
- * method to take specific actions for each chunk of character data
- * (such as adding the data to a node or buffer, or printing it to
- * a file).</p>
- *
- * @param ch The characters.
- * @param start The start position in the character array.
- * @param length The number of characters to use from the
- * character array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#characters
- */
- public void characters (char ch[], int start, int length)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of ignorable whitespace in element content.
- *
- * <p>By default, do nothing. Application writers may override this
- * method to take specific actions for each chunk of ignorable
- * whitespace (such as adding data to a node or buffer, or printing
- * it to a file).</p>
- *
- * @param ch The whitespace characters.
- * @param start The start position in the character array.
- * @param length The number of characters to use from the
- * character array.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#ignorableWhitespace
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of a processing instruction.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions for each
- * processing instruction, such as setting status variables or
- * invoking other methods.</p>
- *
- * @param target The processing instruction target.
- * @param data The processing instruction data, or null if
- * none is supplied.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#processingInstruction
- */
- public void processingInstruction (String target, String data)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of a skipped entity.
- *
- * <p>By default, do nothing. Application writers may override this
- * method in a subclass to take specific actions for each
- * processing instruction, such as setting status variables or
- * invoking other methods.</p>
- *
- * @param name The name of the skipped entity.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ContentHandler#processingInstruction
- */
- public void skippedEntity (String name)
- throws SAXException
- {
- // no op
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Default implementation of the ErrorHandler interface.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Receive notification of a parser warning.
- *
- * <p>The default implementation does nothing. Application writers
- * may override this method in a subclass to take specific actions
- * for each warning, such as inserting the message in a log file or
- * printing it to the console.</p>
- *
- * @param e The warning information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#warning
- * @see org.xml.sax.SAXParseException
- */
- public void warning (SAXParseException e)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Receive notification of a recoverable parser error.
- *
- * <p>The default implementation does nothing. Application writers
- * may override this method in a subclass to take specific actions
- * for each error, such as inserting the message in a log file or
- * printing it to the console.</p>
- *
- * @param e The warning information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#warning
- * @see org.xml.sax.SAXParseException
- */
- public void error (SAXParseException e)
- throws SAXException
- {
- // no op
- }
-
-
- /**
- * Report a fatal XML parsing error.
- *
- * <p>The default implementation throws a SAXParseException.
- * Application writers may override this method in a subclass if
- * they need to take specific actions for each fatal error (such as
- * collecting all of the errors into a single report): in any case,
- * the application must stop all regular processing when this
- * method is invoked, since the document is no longer reliable, and
- * the parser may no longer report parsing events.</p>
- *
- * @param e The error information encoded as an exception.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @see org.xml.sax.ErrorHandler#fatalError
- * @see org.xml.sax.SAXParseException
- */
- public void fatalError (SAXParseException e)
- throws SAXException
- {
- throw e;
- }
-
-}
-
-// end of DefaultHandler.java
+// DefaultHandler.java - default implementation of the core handlers.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: DefaultHandler.java,v 1.5.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.io.IOException;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.Attributes;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+
+/**
+ * Default base class for SAX2 event handlers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class is available as a convenience base class for SAX2
+ * applications: it provides default implementations for all of the
+ * callbacks in the four core SAX2 handler classes:</p>
+ *
+ * <ul>
+ * <li>{@link org.xml.sax.EntityResolver EntityResolver}</li>
+ * <li>{@link org.xml.sax.DTDHandler DTDHandler}</li>
+ * <li>{@link org.xml.sax.ContentHandler ContentHandler}</li>
+ * <li>{@link org.xml.sax.ErrorHandler ErrorHandler}</li>
+ * </ul>
+ *
+ * <p>Application writers can extend this class when they need to
+ * implement only part of an interface; parser writers can
+ * instantiate this class to provide default handlers when the
+ * application has not supplied its own.</p>
+ *
+ * <p>This class replaces the deprecated SAX1
+ * {@link org.xml.sax.HandlerBase HandlerBase} class.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson,
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.EntityResolver
+ * @see org.xml.sax.DTDHandler
+ * @see org.xml.sax.ContentHandler
+ * @see org.xml.sax.ErrorHandler
+ */
+public class DefaultHandler
+ implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of the EntityResolver interface.
+ ////////////////////////////////////////////////////////////////////
+
+ /**
+ * Resolve an external entity.
+ *
+ * <p>Always return null, so that the parser will use the system
+ * identifier provided in the XML document. This method implements
+ * the SAX default behaviour: application writers can override it
+ * in a subclass to do special translations such as catalog lookups
+ * or URI redirection.</p>
+ *
+ * @param publicId The public identifer, or null if none is
+ * available.
+ * @param systemId The system identifier provided in the XML
+ * document.
+ * @return The new input source, or null to require the
+ * default behaviour.
+ * @exception java.io.IOException If there is an error setting
+ * up the new input source.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.EntityResolver#resolveEntity
+ */
+ public InputSource resolveEntity (String publicId, String systemId)
+ throws IOException, SAXException
+ {
+ return null;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of DTDHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive notification of a notation declaration.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to keep track of the notations
+ * declared in a document.</p>
+ *
+ * @param name The notation name.
+ * @param publicId The notation public identifier, or null if not
+ * available.
+ * @param systemId The notation system identifier.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DTDHandler#notationDecl
+ */
+ public void notationDecl (String name, String publicId, String systemId)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of an unparsed entity declaration.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to keep track of the unparsed entities
+ * declared in a document.</p>
+ *
+ * @param name The entity name.
+ * @param publicId The entity public identifier, or null if not
+ * available.
+ * @param systemId The entity system identifier.
+ * @param notationName The name of the associated notation.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.DTDHandler#unparsedEntityDecl
+ */
+ public void unparsedEntityDecl (String name, String publicId,
+ String systemId, String notationName)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of ContentHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive a Locator object for document events.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass if they wish to store the locator for use
+ * with other document events.</p>
+ *
+ * @param locator A locator for all SAX document events.
+ * @see org.xml.sax.ContentHandler#setDocumentLocator
+ * @see org.xml.sax.Locator
+ */
+ public void setDocumentLocator (Locator locator)
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the beginning of the document.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the beginning
+ * of a document (such as allocating the root node of a tree or
+ * creating an output file).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#startDocument
+ */
+ public void startDocument ()
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the end of the document.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the end
+ * of a document (such as finalising a tree or closing an output
+ * file).</p>
+ *
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#endDocument
+ */
+ public void endDocument ()
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the start of a Namespace mapping.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the start of
+ * each Namespace prefix scope (such as storing the prefix mapping).</p>
+ *
+ * @param prefix The Namespace prefix being declared.
+ * @param uri The Namespace URI mapped to the prefix.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#startPrefixMapping
+ */
+ public void startPrefixMapping (String prefix, String uri)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the end of a Namespace mapping.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the end of
+ * each prefix mapping.</p>
+ *
+ * @param prefix The Namespace prefix being declared.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#endPrefixMapping
+ */
+ public void endPrefixMapping (String prefix)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the start of an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the start of
+ * each element (such as allocating a new tree node or writing
+ * output to a file).</p>
+ *
+ * @param uri The Namespace URI, or the empty string if the
+ * element has no Namespace URI or if Namespace
+ * processing is not being performed.
+ * @param localName The local name (without prefix), or the
+ * empty string if Namespace processing is not being
+ * performed.
+ * @param qName The qualified name (with prefix), or the
+ * empty string if qualified names are not available.
+ * @param atts The attributes attached to the element. If
+ * there are no attributes, it shall be an empty
+ * Attributes object.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#startElement
+ */
+ public void startElement (String uri, String localName,
+ String qName, Attributes attributes)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of the end of an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions at the end of
+ * each element (such as finalising a tree node or writing
+ * output to a file).</p>
+ *
+ * @param uri The Namespace URI, or the empty string if the
+ * element has no Namespace URI or if Namespace
+ * processing is not being performed.
+ * @param localName The local name (without prefix), or the
+ * empty string if Namespace processing is not being
+ * performed.
+ * @param qName The qualified name (with prefix), or the
+ * empty string if qualified names are not available.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#endElement
+ */
+ public void endElement (String uri, String localName, String qName)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of character data inside an element.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of character data
+ * (such as adding the data to a node or buffer, or printing it to
+ * a file).</p>
+ *
+ * @param ch The characters.
+ * @param start The start position in the character array.
+ * @param length The number of characters to use from the
+ * character array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#characters
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of ignorable whitespace in element content.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method to take specific actions for each chunk of ignorable
+ * whitespace (such as adding data to a node or buffer, or printing
+ * it to a file).</p>
+ *
+ * @param ch The whitespace characters.
+ * @param start The start position in the character array.
+ * @param length The number of characters to use from the
+ * character array.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#ignorableWhitespace
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of a processing instruction.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions for each
+ * processing instruction, such as setting status variables or
+ * invoking other methods.</p>
+ *
+ * @param target The processing instruction target.
+ * @param data The processing instruction data, or null if
+ * none is supplied.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#processingInstruction
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of a skipped entity.
+ *
+ * <p>By default, do nothing. Application writers may override this
+ * method in a subclass to take specific actions for each
+ * processing instruction, such as setting status variables or
+ * invoking other methods.</p>
+ *
+ * @param name The name of the skipped entity.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ContentHandler#processingInstruction
+ */
+ public void skippedEntity (String name)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Default implementation of the ErrorHandler interface.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Receive notification of a parser warning.
+ *
+ * <p>The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each warning, such as inserting the message in a log file or
+ * printing it to the console.</p>
+ *
+ * @param e The warning information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#warning
+ * @see org.xml.sax.SAXParseException
+ */
+ public void warning (SAXParseException e)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Receive notification of a recoverable parser error.
+ *
+ * <p>The default implementation does nothing. Application writers
+ * may override this method in a subclass to take specific actions
+ * for each error, such as inserting the message in a log file or
+ * printing it to the console.</p>
+ *
+ * @param e The warning information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#warning
+ * @see org.xml.sax.SAXParseException
+ */
+ public void error (SAXParseException e)
+ throws SAXException
+ {
+ // no op
+ }
+
+
+ /**
+ * Report a fatal XML parsing error.
+ *
+ * <p>The default implementation throws a SAXParseException.
+ * Application writers may override this method in a subclass if
+ * they need to take specific actions for each fatal error (such as
+ * collecting all of the errors into a single report): in any case,
+ * the application must stop all regular processing when this
+ * method is invoked, since the document is no longer reliable, and
+ * the parser may no longer report parsing events.</p>
+ *
+ * @param e The error information encoded as an exception.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @see org.xml.sax.ErrorHandler#fatalError
+ * @see org.xml.sax.SAXParseException
+ */
+ public void fatalError (SAXParseException e)
+ throws SAXException
+ {
+ throw e;
+ }
+
+}
+
+// end of DefaultHandler.java
diff --git a/libjava/org/xml/sax/helpers/LocatorImpl.java b/libjava/org/xml/sax/helpers/LocatorImpl.java
index 634044ccff2..4b297eabd9c 100644
--- a/libjava/org/xml/sax/helpers/LocatorImpl.java
+++ b/libjava/org/xml/sax/helpers/LocatorImpl.java
@@ -1,212 +1,214 @@
-// SAX default implementation for Locator.
-// No warranty; no copyright -- use this as you will.
-// $Id: LocatorImpl.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import org.xml.sax.Locator;
-
-
-/**
- * Provide an optional convenience implementation of Locator.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class is available mainly for application writers, who
- * can use it to make a persistent snapshot of a locator at any
- * point during a document parse:</p>
- *
- * <pre>
- * Locator locator;
- * Locator startloc;
- *
- * public void setLocator (Locator locator)
- * {
- * // note the locator
- * this.locator = locator;
- * }
- *
- * public void startDocument ()
- * {
- * // save the location of the start of the document
- * // for future use.
- * Locator startloc = new LocatorImpl(locator);
- * }
- *</pre>
- *
- * <p>Normally, parser writers will not use this class, since it
- * is more efficient to provide location information only when
- * requested, rather than constantly updating a Locator object.</p>
- *
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Locator Locator
- */
-public class LocatorImpl implements Locator
-{
-
-
- /**
- * Zero-argument constructor.
- *
- * <p>This will not normally be useful, since the main purpose
- * of this class is to make a snapshot of an existing Locator.</p>
- */
- public LocatorImpl ()
- {
- }
-
-
- /**
- * Copy constructor.
- *
- * <p>Create a persistent copy of the current state of a locator.
- * When the original locator changes, this copy will still keep
- * the original values (and it can be used outside the scope of
- * DocumentHandler methods).</p>
- *
- * @param locator The locator to copy.
- */
- public LocatorImpl (Locator locator)
- {
- setPublicId(locator.getPublicId());
- setSystemId(locator.getSystemId());
- setLineNumber(locator.getLineNumber());
- setColumnNumber(locator.getColumnNumber());
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.Locator
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Return the saved public identifier.
- *
- * @return The public identifier as a string, or null if none
- * is available.
- * @see org.xml.sax.Locator#getPublicId
- * @see #setPublicId
- */
- public String getPublicId ()
- {
- return publicId;
- }
-
-
- /**
- * Return the saved system identifier.
- *
- * @return The system identifier as a string, or null if none
- * is available.
- * @see org.xml.sax.Locator#getSystemId
- * @see #setSystemId
- */
- public String getSystemId ()
- {
- return systemId;
- }
-
-
- /**
- * Return the saved line number (1-based).
- *
- * @return The line number as an integer, or -1 if none is available.
- * @see org.xml.sax.Locator#getLineNumber
- * @see #setLineNumber
- */
- public int getLineNumber ()
- {
- return lineNumber;
- }
-
-
- /**
- * Return the saved column number (1-based).
- *
- * @return The column number as an integer, or -1 if none is available.
- * @see org.xml.sax.Locator#getColumnNumber
- * @see #setColumnNumber
- */
- public int getColumnNumber ()
- {
- return columnNumber;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Setters for the properties (not in org.xml.sax.Locator)
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set the public identifier for this locator.
- *
- * @param publicId The new public identifier, or null
- * if none is available.
- * @see #getPublicId
- */
- public void setPublicId (String publicId)
- {
- this.publicId = publicId;
- }
-
-
- /**
- * Set the system identifier for this locator.
- *
- * @param systemId The new system identifier, or null
- * if none is available.
- * @see #getSystemId
- */
- public void setSystemId (String systemId)
- {
- this.systemId = systemId;
- }
-
-
- /**
- * Set the line number for this locator (1-based).
- *
- * @param lineNumber The line number, or -1 if none is available.
- * @see #getLineNumber
- */
- public void setLineNumber (int lineNumber)
- {
- this.lineNumber = lineNumber;
- }
-
-
- /**
- * Set the column number for this locator (1-based).
- *
- * @param columnNumber The column number, or -1 if none is available.
- * @see #getColumnNumber
- */
- public void setColumnNumber (int columnNumber)
- {
- this.columnNumber = columnNumber;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- private String publicId;
- private String systemId;
- private int lineNumber;
- private int columnNumber;
-
-}
-
-// end of LocatorImpl.java
+// SAX default implementation for Locator.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: LocatorImpl.java,v 1.3.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import org.xml.sax.Locator;
+
+
+/**
+ * Provide an optional convenience implementation of Locator.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class is available mainly for application writers, who
+ * can use it to make a persistent snapshot of a locator at any
+ * point during a document parse:</p>
+ *
+ * <pre>
+ * Locator locator;
+ * Locator startloc;
+ *
+ * public void setLocator (Locator locator)
+ * {
+ * // note the locator
+ * this.locator = locator;
+ * }
+ *
+ * public void startDocument ()
+ * {
+ * // save the location of the start of the document
+ * // for future use.
+ * Locator startloc = new LocatorImpl(locator);
+ * }
+ *</pre>
+ *
+ * <p>Normally, parser writers will not use this class, since it
+ * is more efficient to provide location information only when
+ * requested, rather than constantly updating a Locator object.</p>
+ *
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.Locator Locator
+ */
+public class LocatorImpl implements Locator
+{
+
+
+ /**
+ * Zero-argument constructor.
+ *
+ * <p>This will not normally be useful, since the main purpose
+ * of this class is to make a snapshot of an existing Locator.</p>
+ */
+ public LocatorImpl ()
+ {
+ }
+
+
+ /**
+ * Copy constructor.
+ *
+ * <p>Create a persistent copy of the current state of a locator.
+ * When the original locator changes, this copy will still keep
+ * the original values (and it can be used outside the scope of
+ * DocumentHandler methods).</p>
+ *
+ * @param locator The locator to copy.
+ */
+ public LocatorImpl (Locator locator)
+ {
+ setPublicId(locator.getPublicId());
+ setSystemId(locator.getSystemId());
+ setLineNumber(locator.getLineNumber());
+ setColumnNumber(locator.getColumnNumber());
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.Locator
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Return the saved public identifier.
+ *
+ * @return The public identifier as a string, or null if none
+ * is available.
+ * @see org.xml.sax.Locator#getPublicId
+ * @see #setPublicId
+ */
+ public String getPublicId ()
+ {
+ return publicId;
+ }
+
+
+ /**
+ * Return the saved system identifier.
+ *
+ * @return The system identifier as a string, or null if none
+ * is available.
+ * @see org.xml.sax.Locator#getSystemId
+ * @see #setSystemId
+ */
+ public String getSystemId ()
+ {
+ return systemId;
+ }
+
+
+ /**
+ * Return the saved line number (1-based).
+ *
+ * @return The line number as an integer, or -1 if none is available.
+ * @see org.xml.sax.Locator#getLineNumber
+ * @see #setLineNumber
+ */
+ public int getLineNumber ()
+ {
+ return lineNumber;
+ }
+
+
+ /**
+ * Return the saved column number (1-based).
+ *
+ * @return The column number as an integer, or -1 if none is available.
+ * @see org.xml.sax.Locator#getColumnNumber
+ * @see #setColumnNumber
+ */
+ public int getColumnNumber ()
+ {
+ return columnNumber;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Setters for the properties (not in org.xml.sax.Locator)
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set the public identifier for this locator.
+ *
+ * @param publicId The new public identifier, or null
+ * if none is available.
+ * @see #getPublicId
+ */
+ public void setPublicId (String publicId)
+ {
+ this.publicId = publicId;
+ }
+
+
+ /**
+ * Set the system identifier for this locator.
+ *
+ * @param systemId The new system identifier, or null
+ * if none is available.
+ * @see #getSystemId
+ */
+ public void setSystemId (String systemId)
+ {
+ this.systemId = systemId;
+ }
+
+
+ /**
+ * Set the line number for this locator (1-based).
+ *
+ * @param lineNumber The line number, or -1 if none is available.
+ * @see #getLineNumber
+ */
+ public void setLineNumber (int lineNumber)
+ {
+ this.lineNumber = lineNumber;
+ }
+
+
+ /**
+ * Set the column number for this locator (1-based).
+ *
+ * @param columnNumber The column number, or -1 if none is available.
+ * @see #getColumnNumber
+ */
+ public void setColumnNumber (int columnNumber)
+ {
+ this.columnNumber = columnNumber;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ private String publicId;
+ private String systemId;
+ private int lineNumber;
+ private int columnNumber;
+
+}
+
+// end of LocatorImpl.java
diff --git a/libjava/org/xml/sax/helpers/NamespaceSupport.java b/libjava/org/xml/sax/helpers/NamespaceSupport.java
index a4588c3d2c7..917a7f75dce 100644
--- a/libjava/org/xml/sax/helpers/NamespaceSupport.java
+++ b/libjava/org/xml/sax/helpers/NamespaceSupport.java
@@ -1,689 +1,770 @@
-// NamespaceSupport.java - generic Namespace support for SAX.
-// Written by David Megginson, sax@megginson.com
-// This class is in the Public Domain. NO WARRANTY!
-
-// $Id: NamespaceSupport.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import java.util.EmptyStackException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-
-/**
- * Encapsulate Namespace logic for use by SAX drivers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class encapsulates the logic of Namespace processing:
- * it tracks the declarations currently in force for each context
- * and automatically processes qualified XML 1.0 names into their
- * Namespace parts; it can also be used in reverse for generating
- * XML 1.0 from Namespaces.</p>
- *
- * <p>Namespace support objects are reusable, but the reset method
- * must be invoked between each session.</p>
- *
- * <p>Here is a simple session:</p>
- *
- * <pre>
- * String parts[] = new String[3];
- * NamespaceSupport support = new NamespaceSupport();
- *
- * support.pushContext();
- * support.declarePrefix("", "http://www.w3.org/1999/xhtml");
- * support.declarePrefix("dc", "http://www.purl.org/dc#");
- *
- * String parts[] = support.processName("p", parts, false);
- * System.out.println("Namespace URI: " + parts[0]);
- * System.out.println("Local name: " + parts[1]);
- * System.out.println("Raw name: " + parts[2]);
-
- * String parts[] = support.processName("dc:title", parts, false);
- * System.out.println("Namespace URI: " + parts[0]);
- * System.out.println("Local name: " + parts[1]);
- * System.out.println("Raw name: " + parts[2]);
-
- * support.popContext();
- * </pre>
- *
- * <p>Note that this class is optimized for the use case where most
- * elements do not contain Namespace declarations: if the same
- * prefix/URI mapping is repeated for each context (for example), this
- * class will be somewhat less efficient.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- */
-public class NamespaceSupport
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Constants.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * The XML Namespace as a constant.
- *
- * <p>This is the Namespace URI that is automatically mapped
- * to the "xml" prefix.</p>
- */
- public final static String XMLNS =
- "http://www.w3.org/XML/1998/namespace";
-
-
- /**
- * An empty enumeration.
- */
- private final static Enumeration EMPTY_ENUMERATION =
- new Vector().elements();
-
-
- ////////////////////////////////////////////////////////////////////
- // Constructor.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Create a new Namespace support object.
- */
- public NamespaceSupport ()
- {
- reset();
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Context management.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Reset this Namespace support object for reuse.
- *
- * <p>It is necessary to invoke this method before reusing the
- * Namespace support object for a new session.</p>
- */
- public void reset ()
- {
- contexts = new Context[32];
- contextPos = 0;
- contexts[contextPos] = currentContext = new Context();
- currentContext.declarePrefix("xml", XMLNS);
- }
-
-
- /**
- * Start a new Namespace context.
- *
- * <p>Normally, you should push a new context at the beginning
- * of each XML element: the new context will automatically inherit
- * the declarations of its parent context, but it will also keep
- * track of which declarations were made within this context.</p>
- *
- * <p>The Namespace support object always starts with a base context
- * already in force: in this context, only the "xml" prefix is
- * declared.</p>
- *
- * @see #popContext
- */
- public void pushContext ()
- {
- int max = contexts.length;
- contextPos++;
-
- // Extend the array if necessary
- if (contextPos >= max) {
- Context newContexts[] = new Context[max*2];
- System.arraycopy(contexts, 0, newContexts, 0, max);
- max *= 2;
- contexts = newContexts;
- }
-
- // Allocate the context if necessary.
- currentContext = contexts[contextPos];
- if (currentContext == null) {
- contexts[contextPos] = currentContext = new Context();
- }
-
- // Set the parent, if any.
- if (contextPos > 0) {
- currentContext.setParent(contexts[contextPos - 1]);
- }
- }
-
-
- /**
- * Revert to the previous Namespace context.
- *
- * <p>Normally, you should pop the context at the end of each
- * XML element. After popping the context, all Namespace prefix
- * mappings that were previously in force are restored.</p>
- *
- * <p>You must not attempt to declare additional Namespace
- * prefixes after popping a context, unless you push another
- * context first.</p>
- *
- * @see #pushContext
- */
- public void popContext ()
- {
- contextPos--;
- if (contextPos < 0) {
- throw new EmptyStackException();
- }
- currentContext = contexts[contextPos];
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Operations within a context.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Declare a Namespace prefix.
- *
- * <p>This method declares a prefix in the current Namespace
- * context; the prefix will remain in force until this context
- * is popped, unless it is shadowed in a descendant context.</p>
- *
- * <p>To declare a default Namespace, use the empty string. The
- * prefix must not be "xml" or "xmlns".</p>
- *
- * <p>Note that you must <em>not</em> declare a prefix after
- * you've pushed and popped another Namespace.</p>
- *
- * <p>Note that there is an asymmetry in this library: while {@link
- * #getPrefix getPrefix} will not return the default "" prefix,
- * even if you have declared one; to check for a default prefix,
- * you have to look it up explicitly using {@link #getURI getURI}.
- * This asymmetry exists to make it easier to look up prefixes
- * for attribute names, where the default prefix is not allowed.</p>
- *
- * @param prefix The prefix to declare, or null for the empty
- * string.
- * @param uri The Namespace URI to associate with the prefix.
- * @return true if the prefix was legal, false otherwise
- * @see #processName
- * @see #getURI
- * @see #getPrefix
- */
- public boolean declarePrefix (String prefix, String uri)
- {
- if (prefix.equals("xml") || prefix.equals("xmlns")) {
- return false;
- } else {
- currentContext.declarePrefix(prefix, uri);
- return true;
- }
- }
-
-
- /**
- * Process a raw XML 1.0 name.
- *
- * <p>This method processes a raw XML 1.0 name in the current
- * context by removing the prefix and looking it up among the
- * prefixes currently declared. The return value will be the
- * array supplied by the caller, filled in as follows:</p>
- *
- * <dl>
- * <dt>parts[0]</dt>
- * <dd>The Namespace URI, or an empty string if none is
- * in use.</dd>
- * <dt>parts[1]</dt>
- * <dd>The local name (without prefix).</dd>
- * <dt>parts[2]</dt>
- * <dd>The original raw name.</dd>
- * </dl>
- *
- * <p>All of the strings in the array will be internalized. If
- * the raw name has a prefix that has not been declared, then
- * the return value will be null.</p>
- *
- * <p>Note that attribute names are processed differently than
- * element names: an unprefixed element name will received the
- * default Namespace (if any), while an unprefixed element name
- * will not.</p>
- *
- * @param qName The raw XML 1.0 name to be processed.
- * @param parts An array supplied by the caller, capable of
- * holding at least three members.
- * @param isAttribute A flag indicating whether this is an
- * attribute name (true) or an element name (false).
- * @return The supplied array holding three internalized strings
- * representing the Namespace URI (or empty string), the
- * local name, and the raw XML 1.0 name; or null if there
- * is an undeclared prefix.
- * @see #declarePrefix
- * @see java.lang.String#intern */
- public String [] processName (String qName, String parts[],
- boolean isAttribute)
- {
- String myParts[] = currentContext.processName(qName, isAttribute);
- if (myParts == null) {
- return null;
- } else {
- parts[0] = myParts[0];
- parts[1] = myParts[1];
- parts[2] = myParts[2];
- return parts;
- }
- }
-
-
- /**
- * Look up a prefix and get the currently-mapped Namespace URI.
- *
- * <p>This method looks up the prefix in the current context.
- * Use the empty string ("") for the default Namespace.</p>
- *
- * @param prefix The prefix to look up.
- * @return The associated Namespace URI, or null if the prefix
- * is undeclared in this context.
- * @see #getPrefix
- * @see #getPrefixes
- */
- public String getURI (String prefix)
- {
- return currentContext.getURI(prefix);
- }
-
-
- /**
- * Return an enumeration of all prefixes currently declared.
- *
- * <p><strong>Note:</strong> if there is a default prefix, it will not be
- * returned in this enumeration; check for the default prefix
- * using the {@link #getURI getURI} with an argument of "".</p>
- *
- * @return An enumeration of all prefixes declared in the
- * current context except for the empty (default)
- * prefix.
- * @see #getDeclaredPrefixes
- * @see #getURI
- */
- public Enumeration getPrefixes ()
- {
- return currentContext.getPrefixes();
- }
-
-
- /**
- * Return one of the prefixes mapped to a Namespace URI.
- *
- * <p>If more than one prefix is currently mapped to the same
- * URI, this method will make an arbitrary selection; if you
- * want all of the prefixes, use the {@link #getPrefixes}
- * method instead.</p>
- *
- * <p><strong>Note:</strong> this will never return the empty (default) prefix;
- * to check for a default prefix, use the {@link #getURI getURI}
- * method with an argument of "".</p>
- *
- * @param uri The Namespace URI.
- * @param isAttribute true if this prefix is for an attribute
- * (and the default Namespace is not allowed).
- * @return One of the prefixes currently mapped to the URI supplied,
- * or null if none is mapped or if the URI is assigned to
- * the default Namespace.
- * @see #getPrefixes(java.lang.String)
- * @see #getURI
- */
- public String getPrefix (String uri)
- {
- return currentContext.getPrefix(uri);
- }
-
-
- /**
- * Return an enumeration of all prefixes currently declared for a URI.
- *
- * <p>This method returns prefixes mapped to a specific Namespace
- * URI. The xml: prefix will be included. If you want only one
- * prefix that's mapped to the Namespace URI, and you don't care
- * which one you get, use the {@link #getPrefix getPrefix}
- * method instead.</p>
- *
- * <p><strong>Note:</strong> the empty (default) prefix is <em>never</em> included
- * in this enumeration; to check for the presence of a default
- * Namespace, use the {@link #getURI getURI} method with an
- * argument of "".</p>
- *
- * @param uri The Namespace URI.
- * @return An enumeration of all prefixes declared in the
- * current context.
- * @see #getPrefix
- * @see #getDeclaredPrefixes
- * @see #getURI
- */
- public Enumeration getPrefixes (String uri)
- {
- Vector prefixes = new Vector();
- Enumeration allPrefixes = getPrefixes();
- while (allPrefixes.hasMoreElements()) {
- String prefix = (String)allPrefixes.nextElement();
- if (uri.equals(getURI(prefix))) {
- prefixes.addElement(prefix);
- }
- }
- return prefixes.elements();
- }
-
-
- /**
- * Return an enumeration of all prefixes declared in this context.
- *
- * <p>The empty (default) prefix will be included in this
- * enumeration; note that this behaviour differs from that of
- * {@link #getPrefix} and {@link #getPrefixes}.</p>
- *
- * @return An enumeration of all prefixes declared in this
- * context.
- * @see #getPrefixes
- * @see #getURI
- */
- public Enumeration getDeclaredPrefixes ()
- {
- return currentContext.getDeclaredPrefixes();
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- private Context contexts[];
- private Context currentContext;
- private int contextPos;
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal classes.
- ////////////////////////////////////////////////////////////////////
-
- /**
- * Internal class for a single Namespace context.
- *
- * <p>This module caches and reuses Namespace contexts, so the number allocated
- * will be equal to the element depth of the document, not to the total
- * number of elements (i.e. 5-10 rather than tens of thousands).</p>
- */
- final class Context {
-
- /**
- * Create the root-level Namespace context.
- */
- Context ()
- {
- copyTables();
- }
-
-
- /**
- * (Re)set the parent of this Namespace context.
- *
- * @param context The parent Namespace context object.
- */
- void setParent (Context parent)
- {
- this.parent = parent;
- declarations = null;
- prefixTable = parent.prefixTable;
- uriTable = parent.uriTable;
- elementNameTable = parent.elementNameTable;
- attributeNameTable = parent.attributeNameTable;
- defaultNS = parent.defaultNS;
- tablesDirty = false;
- }
-
-
- /**
- * Declare a Namespace prefix for this context.
- *
- * @param prefix The prefix to declare.
- * @param uri The associated Namespace URI.
- * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix
- */
- void declarePrefix (String prefix, String uri)
- {
- // Lazy processing...
- if (!tablesDirty) {
- copyTables();
- }
- if (declarations == null) {
- declarations = new Vector();
- }
-
- prefix = prefix.intern();
- uri = uri.intern();
- if ("".equals(prefix)) {
- if ("".equals(uri)) {
- defaultNS = null;
- } else {
- defaultNS = uri;
- }
- } else {
- prefixTable.put(prefix, uri);
- uriTable.put(uri, prefix); // may wipe out another prefix
- }
- declarations.addElement(prefix);
- }
-
-
- /**
- * Process a raw XML 1.0 name in this context.
- *
- * @param qName The raw XML 1.0 name.
- * @param isAttribute true if this is an attribute name.
- * @return An array of three strings containing the
- * URI part (or empty string), the local part,
- * and the raw name, all internalized, or null
- * if there is an undeclared prefix.
- * @see org.xml.sax.helpers.NamespaceSupport#processName
- */
- String [] processName (String qName, boolean isAttribute)
- {
- String name[];
- Hashtable table;
-
- // Select the appropriate table.
- if (isAttribute) {
- table = elementNameTable;
- } else {
- table = attributeNameTable;
- }
-
- // Start by looking in the cache, and
- // return immediately if the name
- // is already known in this content
- name = (String[])table.get(qName);
- if (name != null) {
- return name;
- }
-
- // We haven't seen this name in this
- // context before.
- name = new String[3];
- int index = qName.indexOf(':');
-
-
- // No prefix.
- if (index == -1) {
- if (isAttribute || defaultNS == null) {
- name[0] = "";
- } else {
- name[0] = defaultNS;
- }
- name[1] = qName.intern();
- name[2] = name[1];
- }
-
- // Prefix
- else {
- String prefix = qName.substring(0, index);
- String local = qName.substring(index+1);
- String uri;
- if ("".equals(prefix)) {
- uri = defaultNS;
- } else {
- uri = (String)prefixTable.get(prefix);
- }
- if (uri == null) {
- return null;
- }
- name[0] = uri;
- name[1] = local.intern();
- name[2] = qName.intern();
- }
-
- // Save in the cache for future use.
- table.put(name[2], name);
- tablesDirty = true;
- return name;
- }
-
-
- /**
- * Look up the URI associated with a prefix in this context.
- *
- * @param prefix The prefix to look up.
- * @return The associated Namespace URI, or null if none is
- * declared.
- * @see org.xml.sax.helpers.NamespaceSupport#getURI
- */
- String getURI (String prefix)
- {
- if ("".equals(prefix)) {
- return defaultNS;
- } else if (prefixTable == null) {
- return null;
- } else {
- return (String)prefixTable.get(prefix);
- }
- }
-
-
- /**
- * Look up one of the prefixes associated with a URI in this context.
- *
- * <p>Since many prefixes may be mapped to the same URI,
- * the return value may be unreliable.</p>
- *
- * @param uri The URI to look up.
- * @return The associated prefix, or null if none is declared.
- * @see org.xml.sax.helpers.NamespaceSupport#getPrefix
- */
- String getPrefix (String uri)
- {
- if (uriTable == null) {
- return null;
- } else {
- return (String)uriTable.get(uri);
- }
- }
-
-
- /**
- * Return an enumeration of prefixes declared in this context.
- *
- * @return An enumeration of prefixes (possibly empty).
- * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes
- */
- Enumeration getDeclaredPrefixes ()
- {
- if (declarations == null) {
- return EMPTY_ENUMERATION;
- } else {
- return declarations.elements();
- }
- }
-
-
- /**
- * Return an enumeration of all prefixes currently in force.
- *
- * <p>The default prefix, if in force, is <em>not</em>
- * returned, and will have to be checked for separately.</p>
- *
- * @return An enumeration of prefixes (never empty).
- * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes
- */
- Enumeration getPrefixes ()
- {
- if (prefixTable == null) {
- return EMPTY_ENUMERATION;
- } else {
- return prefixTable.keys();
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////
- // Internal methods.
- ////////////////////////////////////////////////////////////////
-
-
- /**
- * Copy on write for the internal tables in this context.
- *
- * <p>This class is optimized for the normal case where most
- * elements do not contain Namespace declarations.</p>
- */
- private void copyTables ()
- {
- if (prefixTable != null) {
- prefixTable = (Hashtable)prefixTable.clone();
- } else {
- prefixTable = new Hashtable();
- }
- if (uriTable != null) {
- uriTable = (Hashtable)uriTable.clone();
- } else {
- uriTable = new Hashtable();
- }
- elementNameTable = new Hashtable();
- attributeNameTable = new Hashtable();
- tablesDirty = true;
- }
-
-
-
- ////////////////////////////////////////////////////////////////
- // Protected state.
- ////////////////////////////////////////////////////////////////
-
- Hashtable prefixTable;
- Hashtable uriTable;
- Hashtable elementNameTable;
- Hashtable attributeNameTable;
- String defaultNS = null;
-
-
-
- ////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////
-
- private Vector declarations = null;
- private boolean tablesDirty = false;
- private Context parent = null;
- }
-}
-
-// end of NamespaceSupport.java
+// NamespaceSupport.java - generic Namespace support for SAX.
+// http://www.saxproject.org
+// Written by David Megginson
+// This class is in the Public Domain. NO WARRANTY!
+
+// $Id: NamespaceSupport.java,v 1.6.2.5 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.util.EmptyStackException;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+
+
+/**
+ * Encapsulate Namespace logic for use by applications using SAX,
+ * or internally by SAX drivers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class encapsulates the logic of Namespace processing:
+ * it tracks the declarations currently in force for each context
+ * and automatically processes qualified XML 1.0 names into their
+ * Namespace parts; it can also be used in reverse for generating
+ * XML 1.0 from Namespaces.</p>
+ *
+ * <p>Namespace support objects are reusable, but the reset method
+ * must be invoked between each session.</p>
+ *
+ * <p>Here is a simple session:</p>
+ *
+ * <pre>
+ * String parts[] = new String[3];
+ * NamespaceSupport support = new NamespaceSupport();
+ *
+ * support.pushContext();
+ * support.declarePrefix("", "http://www.w3.org/1999/xhtml");
+ * support.declarePrefix("dc", "http://www.purl.org/dc#");
+ *
+ * parts = support.processName("p", parts, false);
+ * System.out.println("Namespace URI: " + parts[0]);
+ * System.out.println("Local name: " + parts[1]);
+ * System.out.println("Raw name: " + parts[2]);
+ *
+ * parts = support.processName("dc:title", parts, false);
+ * System.out.println("Namespace URI: " + parts[0]);
+ * System.out.println("Local name: " + parts[1]);
+ * System.out.println("Raw name: " + parts[2]);
+ *
+ * support.popContext();
+ * </pre>
+ *
+ * <p>Note that this class is optimized for the use case where most
+ * elements do not contain Namespace declarations: if the same
+ * prefix/URI mapping is repeated for each context (for example), this
+ * class will be somewhat less efficient.</p>
+ *
+ * <p>Although SAX drivers (parsers) may choose to use this class to
+ * implement namespace handling, they are not required to do so.
+ * Applications must track namespace information themselves if they
+ * want to use namespace information.
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public class NamespaceSupport
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constants.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * The XML Namespace URI as a constant.
+ * The value is <code>http://www.w3.org/XML/1998/namespace</code>
+ * as defined in the XML Namespaces specification.
+ *
+ * <p>This is the Namespace URI that is automatically mapped
+ * to the "xml" prefix.</p>
+ */
+ public final static String XMLNS =
+ "http://www.w3.org/XML/1998/namespace";
+
+
+ /**
+ * An empty enumeration.
+ */
+ private final static Enumeration EMPTY_ENUMERATION =
+ new Vector().elements();
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constructor.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Create a new Namespace support object.
+ */
+ public NamespaceSupport ()
+ {
+ reset();
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Context management.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Reset this Namespace support object for reuse.
+ *
+ * <p>It is necessary to invoke this method before reusing the
+ * Namespace support object for a new session.</p>
+ */
+ public void reset ()
+ {
+ contexts = new Context[32];
+ contextPos = 0;
+ contexts[contextPos] = currentContext = new Context();
+ currentContext.declarePrefix("xml", XMLNS);
+ }
+
+
+ /**
+ * Start a new Namespace context.
+ * The new context will automatically inherit
+ * the declarations of its parent context, but it will also keep
+ * track of which declarations were made within this context.
+ *
+ * <p>Event callback code should start a new context once per element.
+ * This means being ready to call this in either of two places.
+ * For elements that don't include namespace declarations, the
+ * <em>ContentHandler.startElement()</em> callback is the right place.
+ * For elements with such a declaration, it'd done in the first
+ * <em>ContentHandler.startPrefixMapping()</em> callback.
+ * A boolean flag can be used to
+ * track whether a context has been started yet. When either of
+ * those methods is called, it checks the flag to see if a new context
+ * needs to be started. If so, it starts the context and sets the
+ * flag. After <em>ContentHandler.startElement()</em>
+ * does that, it always clears the flag.
+ *
+ * <p>Normally, SAX drivers would push a new context at the beginning
+ * of each XML element. Then they perform a first pass over the
+ * attributes to process all namespace declarations, making
+ * <em>ContentHandler.startPrefixMapping()</em> callbacks.
+ * Then a second pass is made, to determine the namespace-qualified
+ * names for all attributes and for the element name.
+ * Finally all the information for the
+ * <em>ContentHandler.startElement()</em> callback is available,
+ * so it can then be made.
+ *
+ * <p>The Namespace support object always starts with a base context
+ * already in force: in this context, only the "xml" prefix is
+ * declared.</p>
+ *
+ * @see org.xml.sax.ContentHandler
+ * @see #popContext
+ */
+ public void pushContext ()
+ {
+ int max = contexts.length;
+
+ contexts [contextPos].declsOK = false;
+ contextPos++;
+
+ // Extend the array if necessary
+ if (contextPos >= max) {
+ Context newContexts[] = new Context[max*2];
+ System.arraycopy(contexts, 0, newContexts, 0, max);
+ max *= 2;
+ contexts = newContexts;
+ }
+
+ // Allocate the context if necessary.
+ currentContext = contexts[contextPos];
+ if (currentContext == null) {
+ contexts[contextPos] = currentContext = new Context();
+ }
+
+ // Set the parent, if any.
+ if (contextPos > 0) {
+ currentContext.setParent(contexts[contextPos - 1]);
+ }
+ }
+
+
+ /**
+ * Revert to the previous Namespace context.
+ *
+ * <p>Normally, you should pop the context at the end of each
+ * XML element. After popping the context, all Namespace prefix
+ * mappings that were previously in force are restored.</p>
+ *
+ * <p>You must not attempt to declare additional Namespace
+ * prefixes after popping a context, unless you push another
+ * context first.</p>
+ *
+ * @see #pushContext
+ */
+ public void popContext ()
+ {
+ contexts[contextPos].clear();
+ contextPos--;
+ if (contextPos < 0) {
+ throw new EmptyStackException();
+ }
+ currentContext = contexts[contextPos];
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Operations within a context.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Declare a Namespace prefix. All prefixes must be declared
+ * before they are referenced. For example, a SAX driver (parser)
+ * would scan an element's attributes
+ * in two passes: first for namespace declarations,
+ * then a second pass using {@link #processName processName()} to
+ * interpret prefixes against (potentially redefined) prefixes.
+ *
+ * <p>This method declares a prefix in the current Namespace
+ * context; the prefix will remain in force until this context
+ * is popped, unless it is shadowed in a descendant context.</p>
+ *
+ * <p>To declare the default element Namespace, use the empty string as
+ * the prefix.</p>
+ *
+ * <p>Note that you must <em>not</em> declare a prefix after
+ * you've pushed and popped another Namespace context, or
+ * treated the declarations phase as complete by processing
+ * a prefixed name.</p>
+ *
+ * <p>Note that there is an asymmetry in this library: {@link
+ * #getPrefix getPrefix} will not return the "" prefix,
+ * even if you have declared a default element namespace.
+ * To check for a default namespace,
+ * you have to look it up explicitly using {@link #getURI getURI}.
+ * This asymmetry exists to make it easier to look up prefixes
+ * for attribute names, where the default prefix is not allowed.</p>
+ *
+ * @param prefix The prefix to declare, or the empty string to
+ * indicate the default element namespace. This may never have
+ * the value "xml" or "xmlns".
+ * @param uri The Namespace URI to associate with the prefix.
+ * @return true if the prefix was legal, false otherwise
+ * @exception IllegalStateException when a prefix is declared
+ * after looking up a name in the context, or after pushing
+ * another context on top of it.
+ *
+ * @see #processName
+ * @see #getURI
+ * @see #getPrefix
+ */
+ public boolean declarePrefix (String prefix, String uri)
+ {
+ if (prefix.equals("xml") || prefix.equals("xmlns")) {
+ return false;
+ } else {
+ currentContext.declarePrefix(prefix, uri);
+ return true;
+ }
+ }
+
+
+ /**
+ * Process a raw XML 1.0 name, after all declarations in the current
+ * context have been handled by {@link #declarePrefix declarePrefix()}.
+ *
+ * <p>This method processes a raw XML 1.0 name in the current
+ * context by removing the prefix and looking it up among the
+ * prefixes currently declared. The return value will be the
+ * array supplied by the caller, filled in as follows:</p>
+ *
+ * <dl>
+ * <dt>parts[0]</dt>
+ * <dd>The Namespace URI, or an empty string if none is
+ * in use.</dd>
+ * <dt>parts[1]</dt>
+ * <dd>The local name (without prefix).</dd>
+ * <dt>parts[2]</dt>
+ * <dd>The original raw name.</dd>
+ * </dl>
+ *
+ * <p>All of the strings in the array will be internalized. If
+ * the raw name has a prefix that has not been declared, then
+ * the return value will be null.</p>
+ *
+ * <p>Note that attribute names are processed differently than
+ * element names: an unprefixed element name will received the
+ * default Namespace (if any), while an unprefixed attribute name
+ * will not.</p>
+ *
+ * @param qName The raw XML 1.0 name to be processed.
+ * @param parts An array supplied by the caller, capable of
+ * holding at least three members.
+ * @param isAttribute A flag indicating whether this is an
+ * attribute name (true) or an element name (false).
+ * @return The supplied array holding three internalized strings
+ * representing the Namespace URI (or empty string), the
+ * local name, and the raw XML 1.0 name; or null if there
+ * is an undeclared prefix.
+ * @see #declarePrefix
+ * @see java.lang.String#intern */
+ public String [] processName (String qName, String parts[],
+ boolean isAttribute)
+ {
+ String myParts[] = currentContext.processName(qName, isAttribute);
+ if (myParts == null) {
+ return null;
+ } else {
+ parts[0] = myParts[0];
+ parts[1] = myParts[1];
+ parts[2] = myParts[2];
+ return parts;
+ }
+ }
+
+
+ /**
+ * Look up a prefix and get the currently-mapped Namespace URI.
+ *
+ * <p>This method looks up the prefix in the current context.
+ * Use the empty string ("") for the default Namespace.</p>
+ *
+ * @param prefix The prefix to look up.
+ * @return The associated Namespace URI, or null if the prefix
+ * is undeclared in this context.
+ * @see #getPrefix
+ * @see #getPrefixes
+ */
+ public String getURI (String prefix)
+ {
+ return currentContext.getURI(prefix);
+ }
+
+
+ /**
+ * Return an enumeration of all prefixes currently declared.
+ *
+ * <p><strong>Note:</strong> if there is a default prefix, it will not be
+ * returned in this enumeration; check for the default prefix
+ * using the {@link #getURI getURI} with an argument of "".</p>
+ *
+ * @return An enumeration of all prefixes declared in the
+ * current context except for the empty (default)
+ * prefix.
+ * @see #getDeclaredPrefixes
+ * @see #getURI
+ */
+ public Enumeration getPrefixes ()
+ {
+ return currentContext.getPrefixes();
+ }
+
+
+ /**
+ * Return one of the prefixes mapped to a Namespace URI.
+ *
+ * <p>If more than one prefix is currently mapped to the same
+ * URI, this method will make an arbitrary selection; if you
+ * want all of the prefixes, use the {@link #getPrefixes}
+ * method instead.</p>
+ *
+ * <p><strong>Note:</strong> this will never return the empty (default) prefix;
+ * to check for a default prefix, use the {@link #getURI getURI}
+ * method with an argument of "".</p>
+ *
+ * @param uri The Namespace URI.
+ * @param isAttribute true if this prefix is for an attribute
+ * (and the default Namespace is not allowed).
+ * @return One of the prefixes currently mapped to the URI supplied,
+ * or null if none is mapped or if the URI is assigned to
+ * the default Namespace.
+ * @see #getPrefixes(java.lang.String)
+ * @see #getURI
+ */
+ public String getPrefix (String uri)
+ {
+ return currentContext.getPrefix(uri);
+ }
+
+
+ /**
+ * Return an enumeration of all prefixes currently declared for a URI.
+ *
+ * <p>This method returns prefixes mapped to a specific Namespace
+ * URI. The xml: prefix will be included. If you want only one
+ * prefix that's mapped to the Namespace URI, and you don't care
+ * which one you get, use the {@link #getPrefix getPrefix}
+ * method instead.</p>
+ *
+ * <p><strong>Note:</strong> the empty (default) prefix is <em>never</em> included
+ * in this enumeration; to check for the presence of a default
+ * Namespace, use the {@link #getURI getURI} method with an
+ * argument of "".</p>
+ *
+ * @param uri The Namespace URI.
+ * @return An enumeration of all prefixes declared in the
+ * current context.
+ * @see #getPrefix
+ * @see #getDeclaredPrefixes
+ * @see #getURI
+ */
+ public Enumeration getPrefixes (String uri)
+ {
+ Vector prefixes = new Vector();
+ Enumeration allPrefixes = getPrefixes();
+ while (allPrefixes.hasMoreElements()) {
+ String prefix = (String)allPrefixes.nextElement();
+ if (uri.equals(getURI(prefix))) {
+ prefixes.addElement(prefix);
+ }
+ }
+ return prefixes.elements();
+ }
+
+
+ /**
+ * Return an enumeration of all prefixes declared in this context.
+ *
+ * <p>The empty (default) prefix will be included in this
+ * enumeration; note that this behaviour differs from that of
+ * {@link #getPrefix} and {@link #getPrefixes}.</p>
+ *
+ * @return An enumeration of all prefixes declared in this
+ * context.
+ * @see #getPrefixes
+ * @see #getURI
+ */
+ public Enumeration getDeclaredPrefixes ()
+ {
+ return currentContext.getDeclaredPrefixes();
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ private Context contexts[];
+ private Context currentContext;
+ private int contextPos;
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal classes.
+ ////////////////////////////////////////////////////////////////////
+
+ /**
+ * Internal class for a single Namespace context.
+ *
+ * <p>This module caches and reuses Namespace contexts,
+ * so the number allocated
+ * will be equal to the element depth of the document, not to the total
+ * number of elements (i.e. 5-10 rather than tens of thousands).
+ * Also, data structures used to represent contexts are shared when
+ * possible (child contexts without declarations) to further reduce
+ * the amount of memory that's consumed.
+ * </p>
+ */
+ final class Context {
+
+ /**
+ * Create the root-level Namespace context.
+ */
+ Context ()
+ {
+ copyTables();
+ }
+
+
+ /**
+ * (Re)set the parent of this Namespace context.
+ * The context must either have been freshly constructed,
+ * or must have been cleared.
+ *
+ * @param context The parent Namespace context object.
+ */
+ void setParent (Context parent)
+ {
+ this.parent = parent;
+ declarations = null;
+ prefixTable = parent.prefixTable;
+ uriTable = parent.uriTable;
+ elementNameTable = parent.elementNameTable;
+ attributeNameTable = parent.attributeNameTable;
+ defaultNS = parent.defaultNS;
+ declSeen = false;
+ declsOK = true;
+ }
+
+ /**
+ * Makes associated state become collectible,
+ * invalidating this context.
+ * {@link #setParent} must be called before
+ * this context may be used again.
+ */
+ void clear ()
+ {
+ parent = null;
+ prefixTable = null;
+ uriTable = null;
+ elementNameTable = null;
+ attributeNameTable = null;
+ defaultNS = null;
+ }
+
+
+ /**
+ * Declare a Namespace prefix for this context.
+ *
+ * @param prefix The prefix to declare.
+ * @param uri The associated Namespace URI.
+ * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix
+ */
+ void declarePrefix (String prefix, String uri)
+ {
+ // Lazy processing...
+ if (!declsOK)
+ throw new IllegalStateException (
+ "can't declare any more prefixes in this context");
+ if (!declSeen) {
+ copyTables();
+ }
+ if (declarations == null) {
+ declarations = new Vector();
+ }
+
+ prefix = prefix.intern();
+ uri = uri.intern();
+ if ("".equals(prefix)) {
+ if ("".equals(uri)) {
+ defaultNS = null;
+ } else {
+ defaultNS = uri;
+ }
+ } else {
+ prefixTable.put(prefix, uri);
+ uriTable.put(uri, prefix); // may wipe out another prefix
+ }
+ declarations.addElement(prefix);
+ }
+
+
+ /**
+ * Process a raw XML 1.0 name in this context.
+ *
+ * @param qName The raw XML 1.0 name.
+ * @param isAttribute true if this is an attribute name.
+ * @return An array of three strings containing the
+ * URI part (or empty string), the local part,
+ * and the raw name, all internalized, or null
+ * if there is an undeclared prefix.
+ * @see org.xml.sax.helpers.NamespaceSupport#processName
+ */
+ String [] processName (String qName, boolean isAttribute)
+ {
+ String name[];
+ Hashtable table;
+
+ // detect errors in call sequence
+ declsOK = false;
+
+ // Select the appropriate table.
+ if (isAttribute) {
+ table = attributeNameTable;
+ } else {
+ table = elementNameTable;
+ }
+
+ // Start by looking in the cache, and
+ // return immediately if the name
+ // is already known in this content
+ name = (String[])table.get(qName);
+ if (name != null) {
+ return name;
+ }
+
+ // We haven't seen this name in this
+ // context before. Maybe in the parent
+ // context, but we can't assume prefix
+ // bindings are the same.
+ name = new String[3];
+ name[2] = qName.intern();
+ int index = qName.indexOf(':');
+
+
+ // No prefix.
+ if (index == -1) {
+ if (isAttribute || defaultNS == null) {
+ name[0] = "";
+ } else {
+ name[0] = defaultNS;
+ }
+ name[1] = name[2];
+ }
+
+ // Prefix
+ else {
+ String prefix = qName.substring(0, index);
+ String local = qName.substring(index+1);
+ String uri;
+ if ("".equals(prefix)) {
+ uri = defaultNS;
+ } else {
+ uri = (String)prefixTable.get(prefix);
+ }
+ if (uri == null) {
+ return null;
+ }
+ name[0] = uri;
+ name[1] = local.intern();
+ }
+
+ // Save in the cache for future use.
+ // (Could be shared with parent context...)
+ table.put(name[2], name);
+ return name;
+ }
+
+
+ /**
+ * Look up the URI associated with a prefix in this context.
+ *
+ * @param prefix The prefix to look up.
+ * @return The associated Namespace URI, or null if none is
+ * declared.
+ * @see org.xml.sax.helpers.NamespaceSupport#getURI
+ */
+ String getURI (String prefix)
+ {
+ if ("".equals(prefix)) {
+ return defaultNS;
+ } else if (prefixTable == null) {
+ return null;
+ } else {
+ return (String)prefixTable.get(prefix);
+ }
+ }
+
+
+ /**
+ * Look up one of the prefixes associated with a URI in this context.
+ *
+ * <p>Since many prefixes may be mapped to the same URI,
+ * the return value may be unreliable.</p>
+ *
+ * @param uri The URI to look up.
+ * @return The associated prefix, or null if none is declared.
+ * @see org.xml.sax.helpers.NamespaceSupport#getPrefix
+ */
+ String getPrefix (String uri)
+ {
+ if (uriTable == null) {
+ return null;
+ } else {
+ return (String)uriTable.get(uri);
+ }
+ }
+
+
+ /**
+ * Return an enumeration of prefixes declared in this context.
+ *
+ * @return An enumeration of prefixes (possibly empty).
+ * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes
+ */
+ Enumeration getDeclaredPrefixes ()
+ {
+ if (declarations == null) {
+ return EMPTY_ENUMERATION;
+ } else {
+ return declarations.elements();
+ }
+ }
+
+
+ /**
+ * Return an enumeration of all prefixes currently in force.
+ *
+ * <p>The default prefix, if in force, is <em>not</em>
+ * returned, and will have to be checked for separately.</p>
+ *
+ * @return An enumeration of prefixes (never empty).
+ * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes
+ */
+ Enumeration getPrefixes ()
+ {
+ if (prefixTable == null) {
+ return EMPTY_ENUMERATION;
+ } else {
+ return prefixTable.keys();
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // Internal methods.
+ ////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Copy on write for the internal tables in this context.
+ *
+ * <p>This class is optimized for the normal case where most
+ * elements do not contain Namespace declarations.</p>
+ */
+ private void copyTables ()
+ {
+ if (prefixTable != null) {
+ prefixTable = (Hashtable)prefixTable.clone();
+ } else {
+ prefixTable = new Hashtable();
+ }
+ if (uriTable != null) {
+ uriTable = (Hashtable)uriTable.clone();
+ } else {
+ uriTable = new Hashtable();
+ }
+ elementNameTable = new Hashtable();
+ attributeNameTable = new Hashtable();
+ declSeen = true;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // Protected state.
+ ////////////////////////////////////////////////////////////////
+
+ Hashtable prefixTable;
+ Hashtable uriTable;
+ Hashtable elementNameTable;
+ Hashtable attributeNameTable;
+ String defaultNS = null;
+ boolean declsOK = true;
+
+
+
+ ////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////
+
+ private Vector declarations = null;
+ private boolean declSeen = false;
+ private Context parent = null;
+ }
+}
+
+// end of NamespaceSupport.java
diff --git a/libjava/org/xml/sax/helpers/NewInstance.java b/libjava/org/xml/sax/helpers/NewInstance.java
new file mode 100644
index 00000000000..7d107a65239
--- /dev/null
+++ b/libjava/org/xml/sax/helpers/NewInstance.java
@@ -0,0 +1,80 @@
+// NewInstance.java - create a new instance of a class by name.
+// http://www.saxproject.org
+// Written by Edwin Goei, edwingo@apache.org
+// and by David Brownell, dbrownell@users.sourceforge.net
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: NewInstance.java,v 1.1.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * Create a new instance of a class by name.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class contains a static method for creating an instance of a
+ * class from an explicit class name. It tries to use the thread's context
+ * ClassLoader if possible and falls back to using
+ * Class.forName(String).</p>
+ *
+ * <p>This code is designed to compile and run on JDK version 1.1 and later
+ * including versions of Java 2.</p>
+ *
+ * @author Edwin Goei, David Brownell
+ * @version 2.0.1 (sax2r2)
+ */
+class NewInstance {
+
+ /**
+ * Creates a new instance of the specified class name
+ *
+ * Package private so this code is not exposed at the API level.
+ */
+ static Object newInstance (ClassLoader classLoader, String className)
+ throws ClassNotFoundException, IllegalAccessException,
+ InstantiationException
+ {
+ Class driverClass;
+ if (classLoader == null) {
+ driverClass = Class.forName(className);
+ } else {
+ driverClass = classLoader.loadClass(className);
+ }
+ return driverClass.newInstance();
+ }
+
+ /**
+ * Figure out which ClassLoader to use. For JDK 1.2 and later use
+ * the context ClassLoader.
+ */
+ static ClassLoader getClassLoader ()
+ {
+ Method m = null;
+
+ try {
+ m = Thread.class.getMethod("getContextClassLoader", null);
+ } catch (NoSuchMethodException e) {
+ // Assume that we are running JDK 1.1, use the current ClassLoader
+ return NewInstance.class.getClassLoader();
+ }
+
+ try {
+ return (ClassLoader) m.invoke(Thread.currentThread(), null);
+ } catch (IllegalAccessException e) {
+ // assert(false)
+ throw new UnknownError(e.getMessage());
+ } catch (InvocationTargetException e) {
+ // assert(e.getTargetException() instanceof SecurityException)
+ throw new UnknownError(e.getMessage());
+ }
+ }
+}
diff --git a/libjava/org/xml/sax/helpers/ParserAdapter.java b/libjava/org/xml/sax/helpers/ParserAdapter.java
index 06071b7bdd5..ca66a9e2dc7 100644
--- a/libjava/org/xml/sax/helpers/ParserAdapter.java
+++ b/libjava/org/xml/sax/helpers/ParserAdapter.java
@@ -1,1008 +1,1026 @@
-// ParserAdapter.java - adapt a SAX1 Parser to a SAX2 XMLReader.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: ParserAdapter.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-import org.xml.sax.Parser; // deprecated
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.AttributeList; // deprecated
-import org.xml.sax.EntityResolver;
-import org.xml.sax.DTDHandler;
-import org.xml.sax.DocumentHandler; // deprecated
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import org.xml.sax.XMLReader;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
-
-
-/**
- * Adapt a SAX1 Parser as a SAX2 XMLReader.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class wraps a SAX1 {@link org.xml.sax.Parser Parser}
- * and makes it act as a SAX2 {@link org.xml.sax.XMLReader XMLReader},
- * with feature, property, and Namespace support. Note
- * that it is not possible to report {@link org.xml.sax.ContentHandler#skippedEntity
- * skippedEntity} events, since SAX1 does not make that information available.</p>
- *
- * <p>This adapter does not test for duplicate Namespace-qualified
- * attribute names.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.helpers.XMLReaderAdapter
- * @see org.xml.sax.XMLReader
- * @see org.xml.sax.Parser
- */
-public class ParserAdapter implements XMLReader, DocumentHandler
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Constructors.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Construct a new parser adapter.
- *
- * <p>Use the "org.xml.sax.parser" property to locate the
- * embedded SAX1 driver.</p>
- *
- * @exception org.xml.sax.SAXException If the embedded driver
- * cannot be instantiated or if the
- * org.xml.sax.parser property is not specified.
- */
- public ParserAdapter ()
- throws SAXException
- {
- super();
-
- String driver = System.getProperty("org.xml.sax.parser");
-
- try {
- setup(ParserFactory.makeParser());
- } catch (ClassNotFoundException e1) {
- throw new
- SAXException("Cannot find SAX1 driver class " +
- driver, e1);
- } catch (IllegalAccessException e2) {
- throw new
- SAXException("SAX1 driver class " +
- driver +
- " found but cannot be loaded", e2);
- } catch (InstantiationException e3) {
- throw new
- SAXException("SAX1 driver class " +
- driver +
- " loaded but cannot be instantiated", e3);
- } catch (ClassCastException e4) {
- throw new
- SAXException("SAX1 driver class " +
- driver +
- " does not implement org.xml.sax.Parser");
- } catch (NullPointerException e5) {
- throw new
- SAXException("System property org.xml.sax.parser not specified");
- }
- }
-
-
- /**
- * Construct a new parser adapter.
- *
- * <p>Note that the embedded parser cannot be changed once the
- * adapter is created; to embed a different parser, allocate
- * a new ParserAdapter.</p>
- *
- * @param parser The SAX1 parser to embed.
- * @exception java.lang.NullPointerException If the parser parameter
- * is null.
- */
- public ParserAdapter (Parser parser)
- {
- super();
- setup(parser);
- }
-
-
- /**
- * Internal setup method.
- *
- * @param parser The embedded parser.
- * @exception java.lang.NullPointerException If the parser parameter
- * is null.
- */
- private void setup (Parser parser)
- {
- if (parser == null) {
- throw new
- NullPointerException("Parser argument must not be null");
- }
- this.parser = parser;
- atts = new AttributesImpl();
- nsSupport = new NamespaceSupport();
- attAdapter = new AttributeListAdapter();
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.XMLReader.
- ////////////////////////////////////////////////////////////////////
-
-
- //
- // Internal constants for the sake of convenience.
- //
- private final static String FEATURES = "http://xml.org/sax/features/";
- private final static String NAMESPACES = FEATURES + "namespaces";
- private final static String NAMESPACE_PREFIXES = FEATURES + "namespace-prefixes";
- private final static String VALIDATION = FEATURES + "validation";
- private final static String EXTERNAL_GENERAL =
- FEATURES + "external-general-entities";
- private final static String EXTERNAL_PARAMETER =
- FEATURES + "external-parameter-entities";
-
-
- /**
- * Set a feature for the parser.
- *
- * <p>The only features supported are namespaces and
- * namespace-prefixes.</p>
- *
- * @param name The feature name, as a complete URI.
- * @param state The requested feature state.
- * @exception org.xml.sax.SAXNotRecognizedException If the feature
- * name is not known.
- * @exception org.xml.sax.SAXNotSupportedException If the feature
- * state is not supported.
- * @see org.xml.sax.XMLReader#setFeature
- */
- public void setFeature (String name, boolean state)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (name.equals(NAMESPACES)) {
- checkNotParsing("feature", name);
- namespaces = state;
- if (!namespaces && !prefixes) {
- prefixes = true;
- }
- } else if (name.equals(NAMESPACE_PREFIXES)) {
- checkNotParsing("feature", name);
- prefixes = state;
- if (!prefixes && !namespaces) {
- namespaces = true;
- }
- } else if (name.equals(VALIDATION) ||
- name.equals(EXTERNAL_GENERAL) ||
- name.equals(EXTERNAL_PARAMETER)) {
- throw new SAXNotSupportedException("Feature: " + name);
- } else {
- throw new SAXNotRecognizedException("Feature: " + name);
- }
- }
-
-
- /**
- * Check a parser feature.
- *
- * <p>The only features supported are namespaces and
- * namespace-prefixes.</p>
- *
- * @param name The feature name, as a complete URI.
- * @return The current feature state.
- * @exception org.xml.sax.SAXNotRecognizedException If the feature
- * name is not known.
- * @exception org.xml.sax.SAXNotSupportedException If querying the
- * feature state is not supported.
- * @see org.xml.sax.XMLReader#setFeature
- */
- public boolean getFeature (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (name.equals(NAMESPACES)) {
- return namespaces;
- } else if (name.equals(NAMESPACE_PREFIXES)) {
- return prefixes;
- } else if (name.equals(VALIDATION) ||
- name.equals(EXTERNAL_GENERAL) ||
- name.equals(EXTERNAL_PARAMETER)) {
- throw new SAXNotSupportedException("Feature: " + name);
- } else {
- throw new SAXNotRecognizedException("Feature: " + name);
- }
- }
-
-
- /**
- * Set a parser property.
- *
- * <p>No special properties are currently supported.</p>
- *
- * @param name The property name.
- * @param value The property value.
- * @exception org.xml.sax.SAXNotRecognizedException If the feature
- * name is not known.
- * @exception org.xml.sax.SAXNotSupportedException If the feature
- * state is not supported.
- * @see org.xml.sax.XMLReader#setProperty
- */
- public void setProperty (String name, Object value)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- throw new SAXNotRecognizedException("Property: " + name);
- }
-
-
- /**
- * Get a parser property.
- *
- * <p>No special properties are currently supported.</p>
- *
- * @param name The property name.
- * @return The property value.
- * @exception org.xml.sax.SAXNotRecognizedException If the feature
- * name is not known.
- * @exception org.xml.sax.SAXNotSupportedException If the feature
- * state is not supported.
- * @see org.xml.sax.XMLReader#getProperty
- */
- public Object getProperty (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- throw new SAXNotRecognizedException("Property: " + name);
- }
-
-
- /**
- * Set the entity resolver.
- *
- * @param resolver The new entity resolver.
- * @exception java.lang.NullPointerException If the entity resolver
- * parameter is null.
- * @see org.xml.sax.XMLReader#setEntityResolver
- */
- public void setEntityResolver (EntityResolver resolver)
- {
- if (resolver == null) {
- throw new NullPointerException("Null entity resolver");
- }
- entityResolver = resolver;
- }
-
-
- /**
- * Return the current entity resolver.
- *
- * @return The current entity resolver, or null if none was supplied.
- * @see org.xml.sax.XMLReader#getEntityResolver
- */
- public EntityResolver getEntityResolver ()
- {
- return entityResolver;
- }
-
-
- /**
- * Set the DTD handler.
- *
- * @param resolver The new DTD handler.
- * @exception java.lang.NullPointerException If the DTD handler
- * parameter is null.
- * @see org.xml.sax.XMLReader#setEntityResolver
- */
- public void setDTDHandler (DTDHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null DTD handler");
- }
- dtdHandler = handler;
- }
-
-
- /**
- * Return the current DTD handler.
- *
- * @return The current DTD handler, or null if none was supplied.
- * @see org.xml.sax.XMLReader#getEntityResolver
- */
- public DTDHandler getDTDHandler ()
- {
- return dtdHandler;
- }
-
-
- /**
- * Set the content handler.
- *
- * @param resolver The new content handler.
- * @exception java.lang.NullPointerException If the content handler
- * parameter is null.
- * @see org.xml.sax.XMLReader#setEntityResolver
- */
- public void setContentHandler (ContentHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null content handler");
- }
- contentHandler = handler;
- }
-
-
- /**
- * Return the current content handler.
- *
- * @return The current content handler, or null if none was supplied.
- * @see org.xml.sax.XMLReader#getEntityResolver
- */
- public ContentHandler getContentHandler ()
- {
- return contentHandler;
- }
-
-
- /**
- * Set the error handler.
- *
- * @param resolver The new error handler.
- * @exception java.lang.NullPointerException If the error handler
- * parameter is null.
- * @see org.xml.sax.XMLReader#setEntityResolver
- */
- public void setErrorHandler (ErrorHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null error handler");
- }
- errorHandler = handler;
- }
-
-
- /**
- * Return the current error handler.
- *
- * @return The current error handler, or null if none was supplied.
- * @see org.xml.sax.XMLReader#getEntityResolver
- */
- public ErrorHandler getErrorHandler ()
- {
- return errorHandler;
- }
-
-
- /**
- * Parse an XML document.
- *
- * @param systemId The absolute URL of the document.
- * @exception java.io.IOException If there is a problem reading
- * the raw content of the document.
- * @exception org.xml.sax.SAXException If there is a problem
- * processing the document.
- * @see #parse(org.xml.sax.InputSource)
- * @see org.xml.sax.Parser#parse(java.lang.String)
- */
- public void parse (String systemId)
- throws IOException, SAXException
- {
- parse(new InputSource(systemId));
- }
-
-
- /**
- * Parse an XML document.
- *
- * @param input An input source for the document.
- * @exception java.io.IOException If there is a problem reading
- * the raw content of the document.
- * @exception org.xml.sax.SAXException If there is a problem
- * processing the document.
- * @see #parse(java.lang.String)
- * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource)
- */
- public void parse (InputSource input)
- throws IOException, SAXException
- {
- if (parsing) {
- throw new SAXException("Parser is already in use");
- }
- setupParser();
- parsing = true;
- try {
- parser.parse(input);
- } finally {
- parsing = false;
- }
- parsing = false;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.DocumentHandler.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Adapt a SAX1 document locator event.
- *
- * @param locator A document locator.
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- */
- public void setDocumentLocator (Locator locator)
- {
- this.locator = locator;
- if (contentHandler != null) {
- contentHandler.setDocumentLocator(locator);
- }
- }
-
-
- /**
- * Adapt a SAX1 start document event.
- *
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#startDocument
- */
- public void startDocument ()
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.startDocument();
- }
- }
-
-
- /**
- * Adapt a SAX1 end document event.
- *
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#endDocument
- */
- public void endDocument ()
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.endDocument();
- }
- }
-
-
- /**
- * Adapt a SAX1 startElement event.
- *
- * <p>If necessary, perform Namespace processing.</p>
- *
- * @param qName The qualified (prefixed) name.
- * @param qAtts The XML 1.0 attribute list (with qnames).
- */
- public void startElement (String qName, AttributeList qAtts)
- throws SAXException
- {
- // If we're not doing Namespace
- // processing, dispatch this quickly.
- if (!namespaces) {
- if (contentHandler != null) {
- attAdapter.setAttributeList(qAtts);
- contentHandler.startElement("", "", qName.intern(),
- attAdapter);
- }
- return;
- }
-
-
- // OK, we're doing Namespace processing.
- nsSupport.pushContext();
- boolean seenDecl = false;
- atts.clear();
-
- // Take a first pass and copy all
- // attributes into the SAX2 attribute
- // list, noting any Namespace
- // declarations.
- int length = qAtts.getLength();
- for (int i = 0; i < length; i++) {
- String attQName = qAtts.getName(i);
- String type = qAtts.getType(i);
- String value = qAtts.getValue(i);
-
- // Found a declaration...
- if (attQName.startsWith("xmlns")) {
- String prefix;
- int n = attQName.indexOf(':');
- if (n == -1) {
- prefix = "";
- } else {
- prefix = attQName.substring(n+1);
- }
- if (!nsSupport.declarePrefix(prefix, value)) {
- reportError("Illegal Namespace prefix: " + prefix);
- }
- if (contentHandler != null) {
- contentHandler.startPrefixMapping(prefix, value);
- }
- // We may still have to add this to
- // the list.
- if (prefixes) {
- atts.addAttribute("", "", attQName.intern(),
- type, value);
- }
- seenDecl = true;
-
- // This isn't a declaration.
- } else {
- String attName[] = processName(attQName, true);
- atts.addAttribute(attName[0], attName[1], attName[2],
- type, value);
- }
- }
-
- // If there was a Namespace declaration,
- // we have to make a second pass just
- // to be safe -- this will happen very
- // rarely, possibly only once for each
- // document.
- if (seenDecl) {
- length = atts.getLength();
- for (int i = 0; i < length; i++) {
- String attQName = atts.getQName(i);
- if (!attQName.startsWith("xmlns")) {
- String attName[] = processName(attQName, true);
- atts.setURI(i, attName[0]);
- atts.setLocalName(i, attName[1]);
- }
- }
- }
-
- // OK, finally report the event.
- if (contentHandler != null) {
- String name[] = processName(qName, false);
- contentHandler.startElement(name[0], name[1], name[2], atts);
- }
- }
-
-
- /**
- * Adapt a SAX1 end element event.
- *
- * @param qName The qualified (prefixed) name.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#endElement
- */
- public void endElement (String qName)
- throws SAXException
- {
- // If we're not doing Namespace
- // processing, dispatch this quickly.
- if (!namespaces) {
- if (contentHandler != null) {
- contentHandler.endElement("", "", qName.intern());
- }
- return;
- }
-
- // Split the name.
- String names[] = processName(qName, false);
- if (contentHandler != null) {
- contentHandler.endElement(names[0], names[1], names[2]);
- Enumeration prefixes = nsSupport.getDeclaredPrefixes();
- while (prefixes.hasMoreElements()) {
- String prefix = (String)prefixes.nextElement();
- contentHandler.endPrefixMapping(prefix);
- }
- }
- nsSupport.popContext();
- }
-
-
- /**
- * Adapt a SAX1 characters event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#characters
- */
- public void characters (char ch[], int start, int length)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.characters(ch, start, length);
- }
- }
-
-
- /**
- * Adapt a SAX1 ignorable whitespace event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#ignorableWhitespace
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.ignorableWhitespace(ch, start, length);
- }
- }
-
-
- /**
- * Adapt a SAX1 processing instruction event.
- *
- * @param target The processing instruction target.
- * @param data The remainder of the processing instruction
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.DocumentHandler#processingInstruction
- */
- public void processingInstruction (String target, String data)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.processingInstruction(target, data);
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal utility methods.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Initialize the parser before each run.
- */
- private void setupParser ()
- {
- nsSupport.reset();
-
- if (entityResolver != null) {
- parser.setEntityResolver(entityResolver);
- }
- if (dtdHandler != null) {
- parser.setDTDHandler(dtdHandler);
- }
- if (errorHandler != null) {
- parser.setErrorHandler(errorHandler);
- }
- parser.setDocumentHandler(this);
- locator = null;
- }
-
-
- /**
- * Process a qualified (prefixed) name.
- *
- * <p>If the name has an undeclared prefix, use only the qname
- * and make an ErrorHandler.error callback in case the app is
- * interested.</p>
- *
- * @param qName The qualified (prefixed) name.
- * @param isAttribute true if this is an attribute name.
- * @return The name split into three parts.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception if there is an error callback.
- */
- private String [] processName (String qName, boolean isAttribute)
- throws SAXException
- {
- String parts[] = nsSupport.processName(qName, nameParts,
- isAttribute);
- if (parts == null) {
- parts = new String[3];
- parts[2] = qName.intern();
- reportError("Undeclared prefix: " + qName);
- }
- return parts;
- }
-
-
- /**
- * Report a non-fatal error.
- *
- * @param message The error message.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception.
- */
- void reportError (String message)
- throws SAXException
- {
- if (errorHandler == null) {
- return;
- }
-
- SAXParseException e;
- if (locator != null) {
- e = new SAXParseException(message, locator);
- } else {
- e = new SAXParseException(message, null, null, -1, -1);
- }
- errorHandler.error(e);
- }
-
-
- /**
- * Throw an exception if we are parsing.
- *
- * <p>Use this method to detect illegal feature or
- * property changes.</p>
- *
- * @param type The type of thing (feature or property).
- * @param name The feature or property name.
- * @exception org.xml.sax.SAXNotSupportedException If a
- * document is currently being parsed.
- */
- private void checkNotParsing (String type, String name)
- throws SAXNotSupportedException
- {
- if (parsing) {
- throw new SAXNotSupportedException("Cannot change " +
- type + ' ' +
- name + " while parsing");
-
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- private NamespaceSupport nsSupport;
- private AttributeListAdapter attAdapter;
-
- private boolean parsing = false;
- private String nameParts[] = new String[3];
-
- private Parser parser = null;
-
- private AttributesImpl atts = null;
-
- // Features
- private boolean namespaces = true;
- private boolean prefixes = false;
-
- // Properties
-
- // Handlers
- Locator locator;
-
- EntityResolver entityResolver = null;
- DTDHandler dtdHandler = null;
- ContentHandler contentHandler = null;
- ErrorHandler errorHandler = null;
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Inner class to wrap an AttributeList when not doing NS proc.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Adapt a SAX1 AttributeList as a SAX2 Attributes object.
- *
- * <p>This class is in the Public Domain, and comes with NO
- * WARRANTY of any kind.</p>
- *
- * <p>This wrapper class is used only when Namespace support
- * is disabled -- it provides pretty much a direct mapping
- * from SAX1 to SAX2, except that names and types are
- * interned whenever requested.</p>
- */
- final class AttributeListAdapter implements Attributes
- {
-
- /**
- * Construct a new adapter.
- */
- AttributeListAdapter ()
- {
- }
-
-
- /**
- * Set the embedded AttributeList.
- *
- * <p>This method must be invoked before any of the others
- * can be used.</p>
- *
- * @param The SAX1 attribute list (with qnames).
- */
- void setAttributeList (AttributeList qAtts)
- {
- this.qAtts = qAtts;
- }
-
-
- /**
- * Return the length of the attribute list.
- *
- * @return The number of attributes in the list.
- * @see org.xml.sax.Attributes#getLength
- */
- public int getLength ()
- {
- return qAtts.getLength();
- }
-
-
- /**
- * Return the Namespace URI of the specified attribute.
- *
- * @param The attribute's index.
- * @return Always the empty string.
- * @see org.xml.sax.Attributes#getURI
- */
- public String getURI (int i)
- {
- return "";
- }
-
-
- /**
- * Return the local name of the specified attribute.
- *
- * @param The attribute's index.
- * @return Always the empty string.
- * @see org.xml.sax.Attributes#getLocalName
- */
- public String getLocalName (int i)
- {
- return "";
- }
-
-
- /**
- * Return the qualified (prefixed) name of the specified attribute.
- *
- * @param The attribute's index.
- * @return The attribute's qualified name, internalized.
- */
- public String getQName (int i)
- {
- return qAtts.getName(i).intern();
- }
-
-
- /**
- * Return the type of the specified attribute.
- *
- * @param The attribute's index.
- * @return The attribute's type as an internalized string.
- */
- public String getType (int i)
- {
- return qAtts.getType(i).intern();
- }
-
-
- /**
- * Return the value of the specified attribute.
- *
- * @param The attribute's index.
- * @return The attribute's value.
- */
- public String getValue (int i)
- {
- return qAtts.getValue(i);
- }
-
-
- /**
- * Look up an attribute index by Namespace name.
- *
- * @param uri The Namespace URI or the empty string.
- * @param localName The local name.
- * @return The attributes index, or -1 if none was found.
- * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String)
- */
- public int getIndex (String uri, String localName)
- {
- return -1;
- }
-
-
- /**
- * Look up an attribute index by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attributes index, or -1 if none was found.
- * @see org.xml.sax.Attributes#getIndex(java.lang.String)
- */
- public int getIndex (String qName)
- {
- int max = atts.getLength();
- for (int i = 0; i < max; i++) {
- if (qAtts.getName(i).equals(qName)) {
- return i;
- }
- }
- return -1;
- }
-
-
- /**
- * Look up the type of an attribute by Namespace name.
- *
- * @param uri The Namespace URI
- * @param localName The local name.
- * @return The attribute's type as an internalized string.
- */
- public String getType (String uri, String localName)
- {
- return null;
- }
-
-
- /**
- * Look up the type of an attribute by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attribute's type as an internalized string.
- */
- public String getType (String qName)
- {
- return qAtts.getType(qName).intern();
- }
-
-
- /**
- * Look up the value of an attribute by Namespace name.
- *
- * @param uri The Namespace URI
- * @param localName The local name.
- * @return The attribute's value.
- */
- public String getValue (String uri, String localName)
- {
- return null;
- }
-
-
- /**
- * Look up the value of an attribute by qualified (prefixed) name.
- *
- * @param qName The qualified name.
- * @return The attribute's value.
- */
- public String getValue (String qName)
- {
- return qAtts.getValue(qName);
- }
-
- private AttributeList qAtts;
- }
-}
-
-// end of ParserAdapter.java
+// ParserAdapter.java - adapt a SAX1 Parser to a SAX2 XMLReader.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: ParserAdapter.java,v 1.8.2.4 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Vector;
+
+import org.xml.sax.Parser; // deprecated
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.AttributeList; // deprecated
+import org.xml.sax.EntityResolver;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.DocumentHandler; // deprecated
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+import org.xml.sax.XMLReader;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+
+
+/**
+ * Adapt a SAX1 Parser as a SAX2 XMLReader.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class wraps a SAX1 {@link org.xml.sax.Parser Parser}
+ * and makes it act as a SAX2 {@link org.xml.sax.XMLReader XMLReader},
+ * with feature, property, and Namespace support. Note
+ * that it is not possible to report {@link org.xml.sax.ContentHandler#skippedEntity
+ * skippedEntity} events, since SAX1 does not make that information available.</p>
+ *
+ * <p>This adapter does not test for duplicate Namespace-qualified
+ * attribute names.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.helpers.XMLReaderAdapter
+ * @see org.xml.sax.XMLReader
+ * @see org.xml.sax.Parser
+ */
+public class ParserAdapter implements XMLReader, DocumentHandler
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constructors.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Construct a new parser adapter.
+ *
+ * <p>Use the "org.xml.sax.parser" property to locate the
+ * embedded SAX1 driver.</p>
+ *
+ * @exception SAXException If the embedded driver
+ * cannot be instantiated or if the
+ * org.xml.sax.parser property is not specified.
+ */
+ public ParserAdapter ()
+ throws SAXException
+ {
+ super();
+
+ String driver = System.getProperty("org.xml.sax.parser");
+
+ try {
+ setup(ParserFactory.makeParser());
+ } catch (ClassNotFoundException e1) {
+ throw new
+ SAXException("Cannot find SAX1 driver class " +
+ driver, e1);
+ } catch (IllegalAccessException e2) {
+ throw new
+ SAXException("SAX1 driver class " +
+ driver +
+ " found but cannot be loaded", e2);
+ } catch (InstantiationException e3) {
+ throw new
+ SAXException("SAX1 driver class " +
+ driver +
+ " loaded but cannot be instantiated", e3);
+ } catch (ClassCastException e4) {
+ throw new
+ SAXException("SAX1 driver class " +
+ driver +
+ " does not implement org.xml.sax.Parser");
+ } catch (NullPointerException e5) {
+ throw new
+ SAXException("System property org.xml.sax.parser not specified");
+ }
+ }
+
+
+ /**
+ * Construct a new parser adapter.
+ *
+ * <p>Note that the embedded parser cannot be changed once the
+ * adapter is created; to embed a different parser, allocate
+ * a new ParserAdapter.</p>
+ *
+ * @param parser The SAX1 parser to embed.
+ * @exception java.lang.NullPointerException If the parser parameter
+ * is null.
+ */
+ public ParserAdapter (Parser parser)
+ {
+ super();
+ setup(parser);
+ }
+
+
+ /**
+ * Internal setup method.
+ *
+ * @param parser The embedded parser.
+ * @exception java.lang.NullPointerException If the parser parameter
+ * is null.
+ */
+ private void setup (Parser parser)
+ {
+ if (parser == null) {
+ throw new
+ NullPointerException("Parser argument must not be null");
+ }
+ this.parser = parser;
+ atts = new AttributesImpl();
+ nsSupport = new NamespaceSupport();
+ attAdapter = new AttributeListAdapter();
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.XMLReader.
+ ////////////////////////////////////////////////////////////////////
+
+
+ //
+ // Internal constants for the sake of convenience.
+ //
+ private final static String FEATURES = "http://xml.org/sax/features/";
+ private final static String NAMESPACES = FEATURES + "namespaces";
+ private final static String NAMESPACE_PREFIXES = FEATURES + "namespace-prefixes";
+
+
+ /**
+ * Set a feature flag for the parser.
+ *
+ * <p>The only features recognized are namespaces and
+ * namespace-prefixes.</p>
+ *
+ * @param name The feature name, as a complete URI.
+ * @param value The requested feature value.
+ * @exception SAXNotRecognizedException If the feature
+ * can't be assigned or retrieved.
+ * @exception SAXNotSupportedException If the feature
+ * can't be assigned that value.
+ * @see org.xml.sax.XMLReader#setFeature
+ */
+ public void setFeature (String name, boolean value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (name.equals(NAMESPACES)) {
+ checkNotParsing("feature", name);
+ namespaces = value;
+ if (!namespaces && !prefixes) {
+ prefixes = true;
+ }
+ } else if (name.equals(NAMESPACE_PREFIXES)) {
+ checkNotParsing("feature", name);
+ prefixes = value;
+ if (!prefixes && !namespaces) {
+ namespaces = true;
+ }
+ } else {
+ throw new SAXNotRecognizedException("Feature: " + name);
+ }
+ }
+
+
+ /**
+ * Check a parser feature flag.
+ *
+ * <p>The only features recognized are namespaces and
+ * namespace-prefixes.</p>
+ *
+ * @param name The feature name, as a complete URI.
+ * @return The current feature value.
+ * @exception SAXNotRecognizedException If the feature
+ * value can't be assigned or retrieved.
+ * @exception SAXNotSupportedException If the
+ * feature is not currently readable.
+ * @see org.xml.sax.XMLReader#setFeature
+ */
+ public boolean getFeature (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (name.equals(NAMESPACES)) {
+ return namespaces;
+ } else if (name.equals(NAMESPACE_PREFIXES)) {
+ return prefixes;
+ } else {
+ throw new SAXNotRecognizedException("Feature: " + name);
+ }
+ }
+
+
+ /**
+ * Set a parser property.
+ *
+ * <p>No properties are currently recognized.</p>
+ *
+ * @param name The property name.
+ * @param value The property value.
+ * @exception SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved.
+ * @exception SAXNotSupportedException If the property
+ * can't be assigned that value.
+ * @see org.xml.sax.XMLReader#setProperty
+ */
+ public void setProperty (String name, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ throw new SAXNotRecognizedException("Property: " + name);
+ }
+
+
+ /**
+ * Get a parser property.
+ *
+ * <p>No properties are currently recognized.</p>
+ *
+ * @param name The property name.
+ * @return The property value.
+ * @exception SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved.
+ * @exception SAXNotSupportedException If the property
+ * value is not currently readable.
+ * @see org.xml.sax.XMLReader#getProperty
+ */
+ public Object getProperty (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ throw new SAXNotRecognizedException("Property: " + name);
+ }
+
+
+ /**
+ * Set the entity resolver.
+ *
+ * @param resolver The new entity resolver.
+ * @see org.xml.sax.XMLReader#setEntityResolver
+ */
+ public void setEntityResolver (EntityResolver resolver)
+ {
+ entityResolver = resolver;
+ }
+
+
+ /**
+ * Return the current entity resolver.
+ *
+ * @return The current entity resolver, or null if none was supplied.
+ * @see org.xml.sax.XMLReader#getEntityResolver
+ */
+ public EntityResolver getEntityResolver ()
+ {
+ return entityResolver;
+ }
+
+
+ /**
+ * Set the DTD handler.
+ *
+ * @param resolver The new DTD handler.
+ * @see org.xml.sax.XMLReader#setEntityResolver
+ */
+ public void setDTDHandler (DTDHandler handler)
+ {
+ dtdHandler = handler;
+ }
+
+
+ /**
+ * Return the current DTD handler.
+ *
+ * @return The current DTD handler, or null if none was supplied.
+ * @see org.xml.sax.XMLReader#getEntityResolver
+ */
+ public DTDHandler getDTDHandler ()
+ {
+ return dtdHandler;
+ }
+
+
+ /**
+ * Set the content handler.
+ *
+ * @param resolver The new content handler.
+ * @see org.xml.sax.XMLReader#setEntityResolver
+ */
+ public void setContentHandler (ContentHandler handler)
+ {
+ contentHandler = handler;
+ }
+
+
+ /**
+ * Return the current content handler.
+ *
+ * @return The current content handler, or null if none was supplied.
+ * @see org.xml.sax.XMLReader#getEntityResolver
+ */
+ public ContentHandler getContentHandler ()
+ {
+ return contentHandler;
+ }
+
+
+ /**
+ * Set the error handler.
+ *
+ * @param resolver The new error handler.
+ * @see org.xml.sax.XMLReader#setEntityResolver
+ */
+ public void setErrorHandler (ErrorHandler handler)
+ {
+ errorHandler = handler;
+ }
+
+
+ /**
+ * Return the current error handler.
+ *
+ * @return The current error handler, or null if none was supplied.
+ * @see org.xml.sax.XMLReader#getEntityResolver
+ */
+ public ErrorHandler getErrorHandler ()
+ {
+ return errorHandler;
+ }
+
+
+ /**
+ * Parse an XML document.
+ *
+ * @param systemId The absolute URL of the document.
+ * @exception java.io.IOException If there is a problem reading
+ * the raw content of the document.
+ * @exception SAXException If there is a problem
+ * processing the document.
+ * @see #parse(org.xml.sax.InputSource)
+ * @see org.xml.sax.Parser#parse(java.lang.String)
+ */
+ public void parse (String systemId)
+ throws IOException, SAXException
+ {
+ parse(new InputSource(systemId));
+ }
+
+
+ /**
+ * Parse an XML document.
+ *
+ * @param input An input source for the document.
+ * @exception java.io.IOException If there is a problem reading
+ * the raw content of the document.
+ * @exception SAXException If there is a problem
+ * processing the document.
+ * @see #parse(java.lang.String)
+ * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource)
+ */
+ public void parse (InputSource input)
+ throws IOException, SAXException
+ {
+ if (parsing) {
+ throw new SAXException("Parser is already in use");
+ }
+ setupParser();
+ parsing = true;
+ try {
+ parser.parse(input);
+ } finally {
+ parsing = false;
+ }
+ parsing = false;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.DocumentHandler.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 document locator event.
+ *
+ * @param locator A document locator.
+ * @see org.xml.sax.ContentHandler#setDocumentLocator
+ */
+ public void setDocumentLocator (Locator locator)
+ {
+ this.locator = locator;
+ if (contentHandler != null) {
+ contentHandler.setDocumentLocator(locator);
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 start document event.
+ *
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#startDocument
+ */
+ public void startDocument ()
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.startDocument();
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 end document event.
+ *
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#endDocument
+ */
+ public void endDocument ()
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.endDocument();
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 startElement event.
+ *
+ * <p>If necessary, perform Namespace processing.</p>
+ *
+ * @param qName The qualified (prefixed) name.
+ * @param qAtts The XML 1.0 attribute list (with qnames).
+ * @exception SAXException The client may raise a
+ * processing exception.
+ */
+ public void startElement (String qName, AttributeList qAtts)
+ throws SAXException
+ {
+ // These are exceptions from the
+ // first pass; they should be
+ // ignored if there's a second pass,
+ // but reported otherwise.
+ Vector exceptions = null;
+
+ // If we're not doing Namespace
+ // processing, dispatch this quickly.
+ if (!namespaces) {
+ if (contentHandler != null) {
+ attAdapter.setAttributeList(qAtts);
+ contentHandler.startElement("", "", qName.intern(),
+ attAdapter);
+ }
+ return;
+ }
+
+
+ // OK, we're doing Namespace processing.
+ nsSupport.pushContext();
+ int length = qAtts.getLength();
+
+ // First pass: handle NS decls
+ for (int i = 0; i < length; i++) {
+ String attQName = qAtts.getName(i);
+
+ if (!attQName.startsWith("xmlns"))
+ continue;
+ // Could be a declaration...
+ String prefix;
+ int n = attQName.indexOf(':');
+
+ // xmlns=...
+ if (n == -1 && attQName.length () == 5) {
+ prefix = "";
+ } else if (n != 5) {
+ // XML namespaces spec doesn't discuss "xmlnsf:oo"
+ // (and similarly named) attributes ... at most, warn
+ continue;
+ } else // xmlns:foo=...
+ prefix = attQName.substring(n+1);
+
+ String value = qAtts.getValue(i);
+ if (!nsSupport.declarePrefix(prefix, value)) {
+ reportError("Illegal Namespace prefix: " + prefix);
+ continue;
+ }
+ if (contentHandler != null)
+ contentHandler.startPrefixMapping(prefix, value);
+ }
+
+ // Second pass: copy all relevant
+ // attributes into the SAX2 AttributeList
+ // using updated prefix bindings
+ atts.clear();
+ for (int i = 0; i < length; i++) {
+ String attQName = qAtts.getName(i);
+ String type = qAtts.getType(i);
+ String value = qAtts.getValue(i);
+
+ // Declaration?
+ if (attQName.startsWith("xmlns")) {
+ String prefix;
+ int n = attQName.indexOf(':');
+
+ if (n == -1 && attQName.length () == 5) {
+ prefix = "";
+ } else if (n != 5) {
+ // XML namespaces spec doesn't discuss "xmlnsf:oo"
+ // (and similarly named) attributes ... ignore
+ prefix = null;
+ } else {
+ prefix = attQName.substring(n+1);
+ }
+ // Yes, decl: report or prune
+ if (prefix != null) {
+ if (prefixes)
+ atts.addAttribute("", "", attQName.intern(),
+ type, value);
+ continue;
+ }
+ }
+
+ // Not a declaration -- report
+ try {
+ String attName[] = processName(attQName, true, true);
+ atts.addAttribute(attName[0], attName[1], attName[2],
+ type, value);
+ } catch (SAXException e) {
+ if (exceptions == null)
+ exceptions = new Vector();
+ exceptions.addElement(e);
+ atts.addAttribute("", attQName, attQName, type, value);
+ }
+ }
+
+ // now handle the deferred exception reports
+ if (exceptions != null && errorHandler != null) {
+ for (int i = 0; i < exceptions.size(); i++)
+ errorHandler.error((SAXParseException)
+ (exceptions.elementAt(i)));
+ }
+
+ // OK, finally report the event.
+ if (contentHandler != null) {
+ String name[] = processName(qName, false, false);
+ contentHandler.startElement(name[0], name[1], name[2], atts);
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 end element event.
+ *
+ * @param qName The qualified (prefixed) name.
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#endElement
+ */
+ public void endElement (String qName)
+ throws SAXException
+ {
+ // If we're not doing Namespace
+ // processing, dispatch this quickly.
+ if (!namespaces) {
+ if (contentHandler != null) {
+ contentHandler.endElement("", "", qName.intern());
+ }
+ return;
+ }
+
+ // Split the name.
+ String names[] = processName(qName, false, false);
+ if (contentHandler != null) {
+ contentHandler.endElement(names[0], names[1], names[2]);
+ Enumeration prefixes = nsSupport.getDeclaredPrefixes();
+ while (prefixes.hasMoreElements()) {
+ String prefix = (String)prefixes.nextElement();
+ contentHandler.endPrefixMapping(prefix);
+ }
+ }
+ nsSupport.popContext();
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 characters event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use.
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#characters
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.characters(ch, start, length);
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 ignorable whitespace event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use.
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#ignorableWhitespace
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.ignorableWhitespace(ch, start, length);
+ }
+ }
+
+
+ /**
+ * Adapter implementation method; do not call.
+ * Adapt a SAX1 processing instruction event.
+ *
+ * @param target The processing instruction target.
+ * @param data The remainder of the processing instruction
+ * @exception SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.DocumentHandler#processingInstruction
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.processingInstruction(target, data);
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal utility methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Initialize the parser before each run.
+ */
+ private void setupParser ()
+ {
+ nsSupport.reset();
+
+ if (entityResolver != null) {
+ parser.setEntityResolver(entityResolver);
+ }
+ if (dtdHandler != null) {
+ parser.setDTDHandler(dtdHandler);
+ }
+ if (errorHandler != null) {
+ parser.setErrorHandler(errorHandler);
+ }
+ parser.setDocumentHandler(this);
+ locator = null;
+ }
+
+
+ /**
+ * Process a qualified (prefixed) name.
+ *
+ * <p>If the name has an undeclared prefix, use only the qname
+ * and make an ErrorHandler.error callback in case the app is
+ * interested.</p>
+ *
+ * @param qName The qualified (prefixed) name.
+ * @param isAttribute true if this is an attribute name.
+ * @return The name split into three parts.
+ * @exception SAXException The client may throw
+ * an exception if there is an error callback.
+ */
+ private String [] processName (String qName, boolean isAttribute,
+ boolean useException)
+ throws SAXException
+ {
+ String parts[] = nsSupport.processName(qName, nameParts,
+ isAttribute);
+ if (parts == null) {
+ if (useException)
+ throw makeException("Undeclared prefix: " + qName);
+ reportError("Undeclared prefix: " + qName);
+ parts = new String[3];
+ parts[0] = parts[1] = "";
+ parts[2] = qName.intern();
+ }
+ return parts;
+ }
+
+
+ /**
+ * Report a non-fatal error.
+ *
+ * @param message The error message.
+ * @exception SAXException The client may throw
+ * an exception.
+ */
+ void reportError (String message)
+ throws SAXException
+ {
+ if (errorHandler != null)
+ errorHandler.error(makeException(message));
+ }
+
+
+ /**
+ * Construct an exception for the current context.
+ *
+ * @param message The error message.
+ */
+ private SAXParseException makeException (String message)
+ {
+ if (locator != null) {
+ return new SAXParseException(message, locator);
+ } else {
+ return new SAXParseException(message, null, null, -1, -1);
+ }
+ }
+
+
+ /**
+ * Throw an exception if we are parsing.
+ *
+ * <p>Use this method to detect illegal feature or
+ * property changes.</p>
+ *
+ * @param type The type of thing (feature or property).
+ * @param name The feature or property name.
+ * @exception SAXNotSupportedException If a
+ * document is currently being parsed.
+ */
+ private void checkNotParsing (String type, String name)
+ throws SAXNotSupportedException
+ {
+ if (parsing) {
+ throw new SAXNotSupportedException("Cannot change " +
+ type + ' ' +
+ name + " while parsing");
+
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ private NamespaceSupport nsSupport;
+ private AttributeListAdapter attAdapter;
+
+ private boolean parsing = false;
+ private String nameParts[] = new String[3];
+
+ private Parser parser = null;
+
+ private AttributesImpl atts = null;
+
+ // Features
+ private boolean namespaces = true;
+ private boolean prefixes = false;
+
+ // Properties
+
+ // Handlers
+ Locator locator;
+
+ EntityResolver entityResolver = null;
+ DTDHandler dtdHandler = null;
+ ContentHandler contentHandler = null;
+ ErrorHandler errorHandler = null;
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Inner class to wrap an AttributeList when not doing NS proc.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Adapt a SAX1 AttributeList as a SAX2 Attributes object.
+ *
+ * <p>This class is in the Public Domain, and comes with NO
+ * WARRANTY of any kind.</p>
+ *
+ * <p>This wrapper class is used only when Namespace support
+ * is disabled -- it provides pretty much a direct mapping
+ * from SAX1 to SAX2, except that names and types are
+ * interned whenever requested.</p>
+ */
+ final class AttributeListAdapter implements Attributes
+ {
+
+ /**
+ * Construct a new adapter.
+ */
+ AttributeListAdapter ()
+ {
+ }
+
+
+ /**
+ * Set the embedded AttributeList.
+ *
+ * <p>This method must be invoked before any of the others
+ * can be used.</p>
+ *
+ * @param The SAX1 attribute list (with qnames).
+ */
+ void setAttributeList (AttributeList qAtts)
+ {
+ this.qAtts = qAtts;
+ }
+
+
+ /**
+ * Return the length of the attribute list.
+ *
+ * @return The number of attributes in the list.
+ * @see org.xml.sax.Attributes#getLength
+ */
+ public int getLength ()
+ {
+ return qAtts.getLength();
+ }
+
+
+ /**
+ * Return the Namespace URI of the specified attribute.
+ *
+ * @param The attribute's index.
+ * @return Always the empty string.
+ * @see org.xml.sax.Attributes#getURI
+ */
+ public String getURI (int i)
+ {
+ return "";
+ }
+
+
+ /**
+ * Return the local name of the specified attribute.
+ *
+ * @param The attribute's index.
+ * @return Always the empty string.
+ * @see org.xml.sax.Attributes#getLocalName
+ */
+ public String getLocalName (int i)
+ {
+ return "";
+ }
+
+
+ /**
+ * Return the qualified (prefixed) name of the specified attribute.
+ *
+ * @param The attribute's index.
+ * @return The attribute's qualified name, internalized.
+ */
+ public String getQName (int i)
+ {
+ return qAtts.getName(i).intern();
+ }
+
+
+ /**
+ * Return the type of the specified attribute.
+ *
+ * @param The attribute's index.
+ * @return The attribute's type as an internalized string.
+ */
+ public String getType (int i)
+ {
+ return qAtts.getType(i).intern();
+ }
+
+
+ /**
+ * Return the value of the specified attribute.
+ *
+ * @param The attribute's index.
+ * @return The attribute's value.
+ */
+ public String getValue (int i)
+ {
+ return qAtts.getValue(i);
+ }
+
+
+ /**
+ * Look up an attribute index by Namespace name.
+ *
+ * @param uri The Namespace URI or the empty string.
+ * @param localName The local name.
+ * @return The attributes index, or -1 if none was found.
+ * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String)
+ */
+ public int getIndex (String uri, String localName)
+ {
+ return -1;
+ }
+
+
+ /**
+ * Look up an attribute index by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attributes index, or -1 if none was found.
+ * @see org.xml.sax.Attributes#getIndex(java.lang.String)
+ */
+ public int getIndex (String qName)
+ {
+ int max = atts.getLength();
+ for (int i = 0; i < max; i++) {
+ if (qAtts.getName(i).equals(qName)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+
+ /**
+ * Look up the type of an attribute by Namespace name.
+ *
+ * @param uri The Namespace URI
+ * @param localName The local name.
+ * @return The attribute's type as an internalized string.
+ */
+ public String getType (String uri, String localName)
+ {
+ return null;
+ }
+
+
+ /**
+ * Look up the type of an attribute by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attribute's type as an internalized string.
+ */
+ public String getType (String qName)
+ {
+ return qAtts.getType(qName).intern();
+ }
+
+
+ /**
+ * Look up the value of an attribute by Namespace name.
+ *
+ * @param uri The Namespace URI
+ * @param localName The local name.
+ * @return The attribute's value.
+ */
+ public String getValue (String uri, String localName)
+ {
+ return null;
+ }
+
+
+ /**
+ * Look up the value of an attribute by qualified (prefixed) name.
+ *
+ * @param qName The qualified name.
+ * @return The attribute's value.
+ */
+ public String getValue (String qName)
+ {
+ return qAtts.getValue(qName);
+ }
+
+ private AttributeList qAtts;
+ }
+}
+
+// end of ParserAdapter.java
diff --git a/libjava/org/xml/sax/helpers/ParserFactory.java b/libjava/org/xml/sax/helpers/ParserFactory.java
index 9ca7b55002f..acedfd13ae4 100644
--- a/libjava/org/xml/sax/helpers/ParserFactory.java
+++ b/libjava/org/xml/sax/helpers/ParserFactory.java
@@ -1,129 +1,129 @@
-// SAX parser factory.
-// No warranty; no copyright -- use this as you will.
-// $Id: ParserFactory.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import java.lang.ClassNotFoundException;
-import java.lang.IllegalAccessException;
-import java.lang.InstantiationException;
-import java.lang.SecurityException;
-import java.lang.ClassCastException;
-
-import org.xml.sax.Parser;
-
-
-/**
- * Java-specific class for dynamically loading SAX parsers.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p><strong>Note:</strong> This class is designed to work with the now-deprecated
- * SAX1 {@link org.xml.sax.Parser Parser} class. SAX2 applications should use
- * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p>
- *
- * <p>ParserFactory is not part of the platform-independent definition
- * of SAX; it is an additional convenience class designed
- * specifically for Java XML application writers. SAX applications
- * can use the static methods in this class to allocate a SAX parser
- * dynamically at run-time based either on the value of the
- * `org.xml.sax.parser' system property or on a string containing the class
- * name.</p>
- *
- * <p>Note that the application still requires an XML parser that
- * implements SAX1.</p>
- *
- * @deprecated This class works with the deprecated
- * {@link org.xml.sax.Parser Parser}
- * interface.
- * @since SAX 1.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser
- * @see java.lang.Class
- */
-public class ParserFactory {
-
-
- /**
- * Private null constructor.
- */
- private ParserFactory ()
- {
- }
-
-
- /**
- * Create a new SAX parser using the `org.xml.sax.parser' system property.
- *
- * <p>The named class must exist and must implement the
- * {@link org.xml.sax.Parser Parser} interface.</p>
- *
- * @exception java.lang.NullPointerException There is no value
- * for the `org.xml.sax.parser' system property.
- * @exception java.lang.ClassNotFoundException The SAX parser
- * class was not found (check your CLASSPATH).
- * @exception IllegalAccessException The SAX parser class was
- * found, but you do not have permission to load
- * it.
- * @exception InstantiationException The SAX parser class was
- * found but could not be instantiated.
- * @exception java.lang.ClassCastException The SAX parser class
- * was found and instantiated, but does not implement
- * org.xml.sax.Parser.
- * @see #makeParser(java.lang.String)
- * @see org.xml.sax.Parser
- */
- public static Parser makeParser ()
- throws ClassNotFoundException,
- IllegalAccessException,
- InstantiationException,
- NullPointerException,
- ClassCastException
- {
- String className = System.getProperty("org.xml.sax.parser");
- if (className == null) {
- throw new NullPointerException("No value for sax.parser property");
- } else {
- return makeParser(className);
- }
- }
-
-
- /**
- * Create a new SAX parser object using the class name provided.
- *
- * <p>The named class must exist and must implement the
- * {@link org.xml.sax.Parser Parser} interface.</p>
- *
- * @param className A string containing the name of the
- * SAX parser class.
- * @exception java.lang.ClassNotFoundException The SAX parser
- * class was not found (check your CLASSPATH).
- * @exception IllegalAccessException The SAX parser class was
- * found, but you do not have permission to load
- * it.
- * @exception InstantiationException The SAX parser class was
- * found but could not be instantiated.
- * @exception java.lang.ClassCastException The SAX parser class
- * was found and instantiated, but does not implement
- * org.xml.sax.Parser.
- * @see #makeParser()
- * @see org.xml.sax.Parser
- */
- public static Parser makeParser (String className)
- throws ClassNotFoundException,
- IllegalAccessException,
- InstantiationException,
- ClassCastException
- {
- return (Parser)(Class.forName(className).newInstance());
- }
-
-}
-
-// end of ParserFactory.java
+// SAX parser factory.
+// http://www.saxproject.org
+// No warranty; no copyright -- use this as you will.
+// $Id: ParserFactory.java,v 1.4.2.3 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.lang.ClassNotFoundException;
+import java.lang.IllegalAccessException;
+import java.lang.InstantiationException;
+import java.lang.SecurityException;
+import java.lang.ClassCastException;
+
+import org.xml.sax.Parser;
+
+
+/**
+ * Java-specific class for dynamically loading SAX parsers.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p><strong>Note:</strong> This class is designed to work with the now-deprecated
+ * SAX1 {@link org.xml.sax.Parser Parser} class. SAX2 applications should use
+ * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p>
+ *
+ * <p>ParserFactory is not part of the platform-independent definition
+ * of SAX; it is an additional convenience class designed
+ * specifically for Java XML application writers. SAX applications
+ * can use the static methods in this class to allocate a SAX parser
+ * dynamically at run-time based either on the value of the
+ * `org.xml.sax.parser' system property or on a string containing the class
+ * name.</p>
+ *
+ * <p>Note that the application still requires an XML parser that
+ * implements SAX1.</p>
+ *
+ * @deprecated This class works with the deprecated
+ * {@link org.xml.sax.Parser Parser}
+ * interface.
+ * @since SAX 1.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ */
+public class ParserFactory {
+
+
+ /**
+ * Private null constructor.
+ */
+ private ParserFactory ()
+ {
+ }
+
+
+ /**
+ * Create a new SAX parser using the `org.xml.sax.parser' system property.
+ *
+ * <p>The named class must exist and must implement the
+ * {@link org.xml.sax.Parser Parser} interface.</p>
+ *
+ * @exception java.lang.NullPointerException There is no value
+ * for the `org.xml.sax.parser' system property.
+ * @exception java.lang.ClassNotFoundException The SAX parser
+ * class was not found (check your CLASSPATH).
+ * @exception IllegalAccessException The SAX parser class was
+ * found, but you do not have permission to load
+ * it.
+ * @exception InstantiationException The SAX parser class was
+ * found but could not be instantiated.
+ * @exception java.lang.ClassCastException The SAX parser class
+ * was found and instantiated, but does not implement
+ * org.xml.sax.Parser.
+ * @see #makeParser(java.lang.String)
+ * @see org.xml.sax.Parser
+ */
+ public static Parser makeParser ()
+ throws ClassNotFoundException,
+ IllegalAccessException,
+ InstantiationException,
+ NullPointerException,
+ ClassCastException
+ {
+ String className = System.getProperty("org.xml.sax.parser");
+ if (className == null) {
+ throw new NullPointerException("No value for sax.parser property");
+ } else {
+ return makeParser(className);
+ }
+ }
+
+
+ /**
+ * Create a new SAX parser object using the class name provided.
+ *
+ * <p>The named class must exist and must implement the
+ * {@link org.xml.sax.Parser Parser} interface.</p>
+ *
+ * @param className A string containing the name of the
+ * SAX parser class.
+ * @exception java.lang.ClassNotFoundException The SAX parser
+ * class was not found (check your CLASSPATH).
+ * @exception IllegalAccessException The SAX parser class was
+ * found, but you do not have permission to load
+ * it.
+ * @exception InstantiationException The SAX parser class was
+ * found but could not be instantiated.
+ * @exception java.lang.ClassCastException The SAX parser class
+ * was found and instantiated, but does not implement
+ * org.xml.sax.Parser.
+ * @see #makeParser()
+ * @see org.xml.sax.Parser
+ */
+ public static Parser makeParser (String className)
+ throws ClassNotFoundException,
+ IllegalAccessException,
+ InstantiationException,
+ ClassCastException
+ {
+ return (Parser) NewInstance.newInstance (
+ NewInstance.getClassLoader (), className);
+ }
+
+}
+
diff --git a/libjava/org/xml/sax/helpers/XMLFilterImpl.java b/libjava/org/xml/sax/helpers/XMLFilterImpl.java
index 5b1afaf6c2f..2f848089131 100644
--- a/libjava/org/xml/sax/helpers/XMLFilterImpl.java
+++ b/libjava/org/xml/sax/helpers/XMLFilterImpl.java
@@ -1,769 +1,714 @@
-// XMLFilterImpl.java - base SAX2 filter implementation.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: XMLFilterImpl.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import java.io.IOException;
-
-import org.xml.sax.XMLReader;
-import org.xml.sax.XMLFilter;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.Attributes;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.DTDHandler;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.SAXNotSupportedException;
-import org.xml.sax.SAXNotRecognizedException;
-
-
-/**
- * Base class for deriving an XML filter.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class is designed to sit between an {@link org.xml.sax.XMLReader
- * XMLReader} and the client application's event handlers. By default, it
- * does nothing but pass requests up to the reader and events
- * on to the handlers unmodified, but subclasses can override
- * specific methods to modify the event stream or the configuration
- * requests as they pass through.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.XMLFilter
- * @see org.xml.sax.XMLReader
- * @see org.xml.sax.EntityResolver
- * @see org.xml.sax.DTDHandler
- * @see org.xml.sax.ContentHandler
- * @see org.xml.sax.ErrorHandler
- */
-public class XMLFilterImpl
- implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Constructors.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Construct an empty XML filter, with no parent.
- *
- * <p>This filter will have no parent: you must assign a parent
- * before you start a parse or do any configuration with
- * setFeature or setProperty.</p>
- *
- * @see org.xml.sax.XMLReader#setFeature
- * @see org.xml.sax.XMLReader#setProperty
- */
- public XMLFilterImpl ()
- {
- super();
- }
-
-
- /**
- * Construct an XML filter with the specified parent.
- *
- * @see #setParent
- * @see #getParent
- */
- public XMLFilterImpl (XMLReader parent)
- {
- super();
- setParent(parent);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.XMLFilter.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set the parent reader.
- *
- * <p>This is the {@link org.xml.sax.XMLReader XMLReader} from which
- * this filter will obtain its events and to which it will pass its
- * configuration requests. The parent may itself be another filter.</p>
- *
- * <p>If there is no parent reader set, any attempt to parse
- * or to set or get a feature or property will fail.</p>
- *
- * @param parent The parent XML reader.
- * @exception java.lang.NullPointerException If the parent is null.
- * @see #getParent
- */
- public void setParent (XMLReader parent)
- {
- if (parent == null) {
- throw new NullPointerException("Null parent");
- }
- this.parent = parent;
- }
-
-
- /**
- * Get the parent reader.
- *
- * @return The parent XML reader, or null if none is set.
- * @see #setParent
- */
- public XMLReader getParent ()
- {
- return parent;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.XMLReader.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set the state of a feature.
- *
- * <p>This will always fail if the parent is null.</p>
- *
- * @param name The feature name.
- * @param state The requested feature state.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the feature name but
- * cannot set the requested value.
- * @see org.xml.sax.XMLReader#setFeature
- */
- public void setFeature (String name, boolean state)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (parent != null) {
- parent.setFeature(name, state);
- } else {
- throw new SAXNotRecognizedException("Feature: " + name);
- }
- }
-
-
- /**
- * Look up the state of a feature.
- *
- * <p>This will always fail if the parent is null.</p>
- *
- * @param name The feature name.
- * @return The current state of the feature.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the feature name but
- * cannot determine its state at this time.
- * @see org.xml.sax.XMLReader#getFeature
- */
- public boolean getFeature (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (parent != null) {
- return parent.getFeature(name);
- } else {
- throw new SAXNotRecognizedException("Feature: " + name);
- }
- }
-
-
- /**
- * Set the value of a property.
- *
- * <p>This will always fail if the parent is null.</p>
- *
- * @param name The property name.
- * @param state The requested property value.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the property name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the property name but
- * cannot set the requested value.
- * @see org.xml.sax.XMLReader#setProperty
- */
- public void setProperty (String name, Object value)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (parent != null) {
- parent.setProperty(name, value);
- } else {
- throw new SAXNotRecognizedException("Property: " + name);
- }
- }
-
-
- /**
- * Look up the value of a property.
- *
- * @param name The property name.
- * @return The current value of the property.
- * @exception org.xml.sax.SAXNotRecognizedException When the
- * XMLReader does not recognize the feature name.
- * @exception org.xml.sax.SAXNotSupportedException When the
- * XMLReader recognizes the property name but
- * cannot determine its value at this time.
- * @see org.xml.sax.XMLReader#setFeature
- */
- public Object getProperty (String name)
- throws SAXNotRecognizedException, SAXNotSupportedException
- {
- if (parent != null) {
- return parent.getProperty(name);
- } else {
- throw new SAXNotRecognizedException("Property: " + name);
- }
- }
-
-
- /**
- * Set the entity resolver.
- *
- * @param resolver The new entity resolver.
- * @exception java.lang.NullPointerException If the resolver
- * is null.
- * @see org.xml.sax.XMLReader#setEntityResolver
- */
- public void setEntityResolver (EntityResolver resolver)
- {
- if (resolver == null) {
- throw new NullPointerException("Null entity resolver");
- } else {
- entityResolver = resolver;
- }
- }
-
-
- /**
- * Get the current entity resolver.
- *
- * @return The current entity resolver, or null if none was set.
- * @see org.xml.sax.XMLReader#getEntityResolver
- */
- public EntityResolver getEntityResolver ()
- {
- return entityResolver;
- }
-
-
- /**
- * Set the DTD event handler.
- *
- * @param resolver The new DTD handler.
- * @exception java.lang.NullPointerException If the handler
- * is null.
- * @see org.xml.sax.XMLReader#setDTDHandler
- */
- public void setDTDHandler (DTDHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null DTD handler");
- } else {
- dtdHandler = handler;
- }
- }
-
-
- /**
- * Get the current DTD event handler.
- *
- * @return The current DTD handler, or null if none was set.
- * @see org.xml.sax.XMLReader#getDTDHandler
- */
- public DTDHandler getDTDHandler ()
- {
- return dtdHandler;
- }
-
-
- /**
- * Set the content event handler.
- *
- * @param resolver The new content handler.
- * @exception java.lang.NullPointerException If the handler
- * is null.
- * @see org.xml.sax.XMLReader#setContentHandler
- */
- public void setContentHandler (ContentHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null content handler");
- } else {
- contentHandler = handler;
- }
- }
-
-
- /**
- * Get the content event handler.
- *
- * @return The current content handler, or null if none was set.
- * @see org.xml.sax.XMLReader#getContentHandler
- */
- public ContentHandler getContentHandler ()
- {
- return contentHandler;
- }
-
-
- /**
- * Set the error event handler.
- *
- * @param handle The new error handler.
- * @exception java.lang.NullPointerException If the handler
- * is null.
- * @see org.xml.sax.XMLReader#setErrorHandler
- */
- public void setErrorHandler (ErrorHandler handler)
- {
- if (handler == null) {
- throw new NullPointerException("Null error handler");
- } else {
- errorHandler = handler;
- }
- }
-
-
- /**
- * Get the current error event handler.
- *
- * @return The current error handler, or null if none was set.
- * @see org.xml.sax.XMLReader#getErrorHandler
- */
- public ErrorHandler getErrorHandler ()
- {
- return errorHandler;
- }
-
-
- /**
- * Parse a document.
- *
- * @param input The input source for the document entity.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see org.xml.sax.XMLReader#parse(org.xml.sax.InputSource)
- */
- public void parse (InputSource input)
- throws SAXException, IOException
- {
- setupParse();
- parent.parse(input);
- }
-
-
- /**
- * Parse a document.
- *
- * @param systemId The system identifier as a fully-qualified URI.
- * @exception org.xml.sax.SAXException Any SAX exception, possibly
- * wrapping another exception.
- * @exception java.io.IOException An IO exception from the parser,
- * possibly from a byte stream or character stream
- * supplied by the application.
- * @see org.xml.sax.XMLReader#parse(java.lang.String)
- */
- public void parse (String systemId)
- throws SAXException, IOException
- {
- parse(new InputSource(systemId));
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.EntityResolver.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Filter an external entity resolution.
- *
- * @param publicId The entity's public identifier, or null.
- * @param systemId The entity's system identifier.
- * @return A new InputSource or null for the default.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @exception java.io.IOException The client may throw an
- * I/O-related exception while obtaining the
- * new InputSource.
- * @see org.xml.sax.EntityResolver#resolveEntity
- */
- public InputSource resolveEntity (String publicId, String systemId)
- throws SAXException, IOException
- {
- if (entityResolver != null) {
- return entityResolver.resolveEntity(publicId, systemId);
- } else {
- return null;
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.DTDHandler.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Filter a notation declaration event.
- *
- * @param name The notation name.
- * @param publicId The notation's public identifier, or null.
- * @param systemId The notation's system identifier, or null.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.DTDHandler#notationDecl
- */
- public void notationDecl (String name, String publicId, String systemId)
- throws SAXException
- {
- if (dtdHandler != null) {
- dtdHandler.notationDecl(name, publicId, systemId);
- }
- }
-
-
- /**
- * Filter an unparsed entity declaration event.
- *
- * @param name The entity name.
- * @param publicId The entity's public identifier, or null.
- * @param systemId The entity's system identifier, or null.
- * @param notationName The name of the associated notation.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.DTDHandler#unparsedEntityDecl
- */
- public void unparsedEntityDecl (String name, String publicId,
- String systemId, String notationName)
- throws SAXException
- {
- if (dtdHandler != null) {
- dtdHandler.unparsedEntityDecl(name, publicId, systemId,
- notationName);
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.ContentHandler.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Filter a new document locator event.
- *
- * @param locator The document locator.
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- */
- public void setDocumentLocator (Locator locator)
- {
- this.locator = locator;
- if (contentHandler != null) {
- contentHandler.setDocumentLocator(locator);
- }
- }
-
-
- /**
- * Filter a start document event.
- *
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#startDocument
- */
- public void startDocument ()
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.startDocument();
- }
- }
-
-
- /**
- * Filter an end document event.
- *
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#endDocument
- */
- public void endDocument ()
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.endDocument();
- }
- }
-
-
- /**
- * Filter a start Namespace prefix mapping event.
- *
- * @param prefix The Namespace prefix.
- * @param uri The Namespace URI.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#startPrefixMapping
- */
- public void startPrefixMapping (String prefix, String uri)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.startPrefixMapping(prefix, uri);
- }
- }
-
-
- /**
- * Filter an end Namespace prefix mapping event.
- *
- * @param prefix The Namespace prefix.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#endPrefixMapping
- */
- public void endPrefixMapping (String prefix)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.endPrefixMapping(prefix);
- }
- }
-
-
- /**
- * Filter a start element event.
- *
- * @param uri The element's Namespace URI, or the empty string.
- * @param localName The element's local name, or the empty string.
- * @param qName The element's qualified (prefixed) name, or the empty
- * string.
- * @param atts The element's attributes.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#startElement
- */
- public void startElement (String uri, String localName, String qName,
- Attributes atts)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.startElement(uri, localName, qName, atts);
- }
- }
-
-
- /**
- * Filter an end element event.
- *
- * @param uri The element's Namespace URI, or the empty string.
- * @param localName The element's local name, or the empty string.
- * @param qName The element's qualified (prefixed) name, or the empty
- * string.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#endElement
- */
- public void endElement (String uri, String localName, String qName)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.endElement(uri, localName, qName);
- }
- }
-
-
- /**
- * Filter a character data event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use from the array.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#characters
- */
- public void characters (char ch[], int start, int length)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.characters(ch, start, length);
- }
- }
-
-
- /**
- * Filter an ignorable whitespace event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use from the array.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#ignorableWhitespace
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.ignorableWhitespace(ch, start, length);
- }
- }
-
-
- /**
- * Filter a processing instruction event.
- *
- * @param target The processing instruction target.
- * @param data The text following the target.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#processingInstruction
- */
- public void processingInstruction (String target, String data)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.processingInstruction(target, data);
- }
- }
-
-
- /**
- * Filter a skipped entity event.
- *
- * @param name The name of the skipped entity.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ContentHandler#skippedEntity
- */
- public void skippedEntity (String name)
- throws SAXException
- {
- if (contentHandler != null) {
- contentHandler.skippedEntity(name);
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.ErrorHandler.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Filter a warning event.
- *
- * @param e The nwarning as an exception.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ErrorHandler#warning
- */
- public void warning (SAXParseException e)
- throws SAXException
- {
- if (errorHandler != null) {
- errorHandler.warning(e);
- }
- }
-
-
- /**
- * Filter an error event.
- *
- * @param e The error as an exception.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ErrorHandler#error
- */
- public void error (SAXParseException e)
- throws SAXException
- {
- if (errorHandler != null) {
- errorHandler.error(e);
- }
- }
-
-
- /**
- * Filter a fatal error event.
- *
- * @param e The error as an exception.
- * @exception org.xml.sax.SAXException The client may throw
- * an exception during processing.
- * @see org.xml.sax.ErrorHandler#fatalError
- */
- public void fatalError (SAXParseException e)
- throws SAXException
- {
- if (errorHandler != null) {
- errorHandler.fatalError(e);
- }
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal methods.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set up before a parse.
- *
- * <p>Before every parse, check whether the parent is
- * non-null, and re-register the filter for all of the
- * events.</p>
- */
- private void setupParse ()
- {
- if (parent == null) {
- throw new NullPointerException("No parent for filter");
- }
- parent.setEntityResolver(this);
- parent.setDTDHandler(this);
- parent.setContentHandler(this);
- parent.setErrorHandler(this);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- private XMLReader parent = null;
- private Locator locator = null;
- private EntityResolver entityResolver = null;
- private DTDHandler dtdHandler = null;
- private ContentHandler contentHandler = null;
- private ErrorHandler errorHandler = null;
-
-}
-
-// end of XMLFilterImpl.java
+// XMLFilterImpl.java - base SAX2 filter implementation.
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: XMLFilterImpl.java,v 1.3.2.7 2002/01/29 21:34:14 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.io.IOException;
+
+import org.xml.sax.XMLReader;
+import org.xml.sax.XMLFilter;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+import org.xml.sax.Attributes;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.SAXNotRecognizedException;
+
+
+/**
+ * Base class for deriving an XML filter.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class is designed to sit between an {@link org.xml.sax.XMLReader
+ * XMLReader} and the client application's event handlers. By default, it
+ * does nothing but pass requests up to the reader and events
+ * on to the handlers unmodified, but subclasses can override
+ * specific methods to modify the event stream or the configuration
+ * requests as they pass through.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.XMLFilter
+ * @see org.xml.sax.XMLReader
+ * @see org.xml.sax.EntityResolver
+ * @see org.xml.sax.DTDHandler
+ * @see org.xml.sax.ContentHandler
+ * @see org.xml.sax.ErrorHandler
+ */
+public class XMLFilterImpl
+ implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constructors.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Construct an empty XML filter, with no parent.
+ *
+ * <p>This filter will have no parent: you must assign a parent
+ * before you start a parse or do any configuration with
+ * setFeature or setProperty, unless you use this as a pure event
+ * consumer rather than as an {@link XMLReader}.</p>
+ *
+ * @see org.xml.sax.XMLReader#setFeature
+ * @see org.xml.sax.XMLReader#setProperty
+ * @see #setParent
+ */
+ public XMLFilterImpl ()
+ {
+ super();
+ }
+
+
+ /**
+ * Construct an XML filter with the specified parent.
+ *
+ * @see #setParent
+ * @see #getParent
+ */
+ public XMLFilterImpl (XMLReader parent)
+ {
+ super();
+ setParent(parent);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.XMLFilter.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set the parent reader.
+ *
+ * <p>This is the {@link org.xml.sax.XMLReader XMLReader} from which
+ * this filter will obtain its events and to which it will pass its
+ * configuration requests. The parent may itself be another filter.</p>
+ *
+ * <p>If there is no parent reader set, any attempt to parse
+ * or to set or get a feature or property will fail.</p>
+ *
+ * @param parent The parent XML reader.
+ * @see #getParent
+ */
+ public void setParent (XMLReader parent)
+ {
+ this.parent = parent;
+ }
+
+
+ /**
+ * Get the parent reader.
+ *
+ * @return The parent XML reader, or null if none is set.
+ * @see #setParent
+ */
+ public XMLReader getParent ()
+ {
+ return parent;
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.XMLReader.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set the value of a feature.
+ *
+ * <p>This will always fail if the parent is null.</p>
+ *
+ * @param name The feature name.
+ * @param value The requested feature value.
+ * @exception org.xml.sax.SAXNotRecognizedException If the feature
+ * value can't be assigned or retrieved from the parent.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * parent recognizes the feature name but
+ * cannot set the requested value.
+ */
+ public void setFeature (String name, boolean value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (parent != null) {
+ parent.setFeature(name, value);
+ } else {
+ throw new SAXNotRecognizedException("Feature: " + name);
+ }
+ }
+
+
+ /**
+ * Look up the value of a feature.
+ *
+ * <p>This will always fail if the parent is null.</p>
+ *
+ * @param name The feature name.
+ * @return The current value of the feature.
+ * @exception org.xml.sax.SAXNotRecognizedException If the feature
+ * value can't be assigned or retrieved from the parent.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * parent recognizes the feature name but
+ * cannot determine its value at this time.
+ */
+ public boolean getFeature (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (parent != null) {
+ return parent.getFeature(name);
+ } else {
+ throw new SAXNotRecognizedException("Feature: " + name);
+ }
+ }
+
+
+ /**
+ * Set the value of a property.
+ *
+ * <p>This will always fail if the parent is null.</p>
+ *
+ * @param name The property name.
+ * @param value The requested property value.
+ * @exception org.xml.sax.SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved from the parent.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * parent recognizes the property name but
+ * cannot set the requested value.
+ */
+ public void setProperty (String name, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (parent != null) {
+ parent.setProperty(name, value);
+ } else {
+ throw new SAXNotRecognizedException("Property: " + name);
+ }
+ }
+
+
+ /**
+ * Look up the value of a property.
+ *
+ * @param name The property name.
+ * @return The current value of the property.
+ * @exception org.xml.sax.SAXNotRecognizedException If the property
+ * value can't be assigned or retrieved from the parent.
+ * @exception org.xml.sax.SAXNotSupportedException When the
+ * parent recognizes the property name but
+ * cannot determine its value at this time.
+ */
+ public Object getProperty (String name)
+ throws SAXNotRecognizedException, SAXNotSupportedException
+ {
+ if (parent != null) {
+ return parent.getProperty(name);
+ } else {
+ throw new SAXNotRecognizedException("Property: " + name);
+ }
+ }
+
+
+ /**
+ * Set the entity resolver.
+ *
+ * @param resolver The new entity resolver.
+ */
+ public void setEntityResolver (EntityResolver resolver)
+ {
+ entityResolver = resolver;
+ }
+
+
+ /**
+ * Get the current entity resolver.
+ *
+ * @return The current entity resolver, or null if none was set.
+ */
+ public EntityResolver getEntityResolver ()
+ {
+ return entityResolver;
+ }
+
+
+ /**
+ * Set the DTD event handler.
+ *
+ * @param resolver The new DTD handler.
+ */
+ public void setDTDHandler (DTDHandler handler)
+ {
+ dtdHandler = handler;
+ }
+
+
+ /**
+ * Get the current DTD event handler.
+ *
+ * @return The current DTD handler, or null if none was set.
+ */
+ public DTDHandler getDTDHandler ()
+ {
+ return dtdHandler;
+ }
+
+
+ /**
+ * Set the content event handler.
+ *
+ * @param resolver The new content handler.
+ */
+ public void setContentHandler (ContentHandler handler)
+ {
+ contentHandler = handler;
+ }
+
+
+ /**
+ * Get the content event handler.
+ *
+ * @return The current content handler, or null if none was set.
+ */
+ public ContentHandler getContentHandler ()
+ {
+ return contentHandler;
+ }
+
+
+ /**
+ * Set the error event handler.
+ *
+ * @param handle The new error handler.
+ */
+ public void setErrorHandler (ErrorHandler handler)
+ {
+ errorHandler = handler;
+ }
+
+
+ /**
+ * Get the current error event handler.
+ *
+ * @return The current error handler, or null if none was set.
+ */
+ public ErrorHandler getErrorHandler ()
+ {
+ return errorHandler;
+ }
+
+
+ /**
+ * Parse a document.
+ *
+ * @param input The input source for the document entity.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ */
+ public void parse (InputSource input)
+ throws SAXException, IOException
+ {
+ setupParse();
+ parent.parse(input);
+ }
+
+
+ /**
+ * Parse a document.
+ *
+ * @param systemId The system identifier as a fully-qualified URI.
+ * @exception org.xml.sax.SAXException Any SAX exception, possibly
+ * wrapping another exception.
+ * @exception java.io.IOException An IO exception from the parser,
+ * possibly from a byte stream or character stream
+ * supplied by the application.
+ */
+ public void parse (String systemId)
+ throws SAXException, IOException
+ {
+ parse(new InputSource(systemId));
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.EntityResolver.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Filter an external entity resolution.
+ *
+ * @param publicId The entity's public identifier, or null.
+ * @param systemId The entity's system identifier.
+ * @return A new InputSource or null for the default.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ * @exception java.io.IOException The client may throw an
+ * I/O-related exception while obtaining the
+ * new InputSource.
+ */
+ public InputSource resolveEntity (String publicId, String systemId)
+ throws SAXException, IOException
+ {
+ if (entityResolver != null) {
+ return entityResolver.resolveEntity(publicId, systemId);
+ } else {
+ return null;
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.DTDHandler.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Filter a notation declaration event.
+ *
+ * @param name The notation name.
+ * @param publicId The notation's public identifier, or null.
+ * @param systemId The notation's system identifier, or null.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void notationDecl (String name, String publicId, String systemId)
+ throws SAXException
+ {
+ if (dtdHandler != null) {
+ dtdHandler.notationDecl(name, publicId, systemId);
+ }
+ }
+
+
+ /**
+ * Filter an unparsed entity declaration event.
+ *
+ * @param name The entity name.
+ * @param publicId The entity's public identifier, or null.
+ * @param systemId The entity's system identifier, or null.
+ * @param notationName The name of the associated notation.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void unparsedEntityDecl (String name, String publicId,
+ String systemId, String notationName)
+ throws SAXException
+ {
+ if (dtdHandler != null) {
+ dtdHandler.unparsedEntityDecl(name, publicId, systemId,
+ notationName);
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.ContentHandler.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Filter a new document locator event.
+ *
+ * @param locator The document locator.
+ */
+ public void setDocumentLocator (Locator locator)
+ {
+ this.locator = locator;
+ if (contentHandler != null) {
+ contentHandler.setDocumentLocator(locator);
+ }
+ }
+
+
+ /**
+ * Filter a start document event.
+ *
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void startDocument ()
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.startDocument();
+ }
+ }
+
+
+ /**
+ * Filter an end document event.
+ *
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void endDocument ()
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.endDocument();
+ }
+ }
+
+
+ /**
+ * Filter a start Namespace prefix mapping event.
+ *
+ * @param prefix The Namespace prefix.
+ * @param uri The Namespace URI.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void startPrefixMapping (String prefix, String uri)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.startPrefixMapping(prefix, uri);
+ }
+ }
+
+
+ /**
+ * Filter an end Namespace prefix mapping event.
+ *
+ * @param prefix The Namespace prefix.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void endPrefixMapping (String prefix)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.endPrefixMapping(prefix);
+ }
+ }
+
+
+ /**
+ * Filter a start element event.
+ *
+ * @param uri The element's Namespace URI, or the empty string.
+ * @param localName The element's local name, or the empty string.
+ * @param qName The element's qualified (prefixed) name, or the empty
+ * string.
+ * @param atts The element's attributes.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void startElement (String uri, String localName, String qName,
+ Attributes atts)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.startElement(uri, localName, qName, atts);
+ }
+ }
+
+
+ /**
+ * Filter an end element event.
+ *
+ * @param uri The element's Namespace URI, or the empty string.
+ * @param localName The element's local name, or the empty string.
+ * @param qName The element's qualified (prefixed) name, or the empty
+ * string.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void endElement (String uri, String localName, String qName)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.endElement(uri, localName, qName);
+ }
+ }
+
+
+ /**
+ * Filter a character data event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use from the array.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.characters(ch, start, length);
+ }
+ }
+
+
+ /**
+ * Filter an ignorable whitespace event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use from the array.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.ignorableWhitespace(ch, start, length);
+ }
+ }
+
+
+ /**
+ * Filter a processing instruction event.
+ *
+ * @param target The processing instruction target.
+ * @param data The text following the target.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.processingInstruction(target, data);
+ }
+ }
+
+
+ /**
+ * Filter a skipped entity event.
+ *
+ * @param name The name of the skipped entity.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void skippedEntity (String name)
+ throws SAXException
+ {
+ if (contentHandler != null) {
+ contentHandler.skippedEntity(name);
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.ErrorHandler.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Filter a warning event.
+ *
+ * @param e The warning as an exception.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void warning (SAXParseException e)
+ throws SAXException
+ {
+ if (errorHandler != null) {
+ errorHandler.warning(e);
+ }
+ }
+
+
+ /**
+ * Filter an error event.
+ *
+ * @param e The error as an exception.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void error (SAXParseException e)
+ throws SAXException
+ {
+ if (errorHandler != null) {
+ errorHandler.error(e);
+ }
+ }
+
+
+ /**
+ * Filter a fatal error event.
+ *
+ * @param e The error as an exception.
+ * @exception org.xml.sax.SAXException The client may throw
+ * an exception during processing.
+ */
+ public void fatalError (SAXParseException e)
+ throws SAXException
+ {
+ if (errorHandler != null) {
+ errorHandler.fatalError(e);
+ }
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal methods.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set up before a parse.
+ *
+ * <p>Before every parse, check whether the parent is
+ * non-null, and re-register the filter for all of the
+ * events.</p>
+ */
+ private void setupParse ()
+ {
+ if (parent == null) {
+ throw new NullPointerException("No parent for filter");
+ }
+ parent.setEntityResolver(this);
+ parent.setDTDHandler(this);
+ parent.setContentHandler(this);
+ parent.setErrorHandler(this);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ private XMLReader parent = null;
+ private Locator locator = null;
+ private EntityResolver entityResolver = null;
+ private DTDHandler dtdHandler = null;
+ private ContentHandler contentHandler = null;
+ private ErrorHandler errorHandler = null;
+
+}
+
+// end of XMLFilterImpl.java
diff --git a/libjava/org/xml/sax/helpers/XMLReaderAdapter.java b/libjava/org/xml/sax/helpers/XMLReaderAdapter.java
index 4fb44d91d8e..19c8d3f8e88 100644
--- a/libjava/org/xml/sax/helpers/XMLReaderAdapter.java
+++ b/libjava/org/xml/sax/helpers/XMLReaderAdapter.java
@@ -1,526 +1,539 @@
-// XMLReaderAdapter.java - adapt an SAX2 XMLReader to a SAX1 Parser
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the public domain.
-
-// $Id: XMLReaderAdapter.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-
-import java.io.IOException;
-import java.util.Locale;
-
-import org.xml.sax.Parser; // deprecated
-import org.xml.sax.Locator;
-import org.xml.sax.InputSource;
-import org.xml.sax.AttributeList; // deprecated
-import org.xml.sax.EntityResolver;
-import org.xml.sax.DTDHandler;
-import org.xml.sax.DocumentHandler; // deprecated
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-
-import org.xml.sax.XMLReader;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXNotSupportedException;
-
-
-/**
- * Adapt a SAX2 XMLReader as a SAX1 Parser.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader}
- * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader
- * must support a true value for the
- * http://xml.org/sax/features/namespace-prefixes property or parsing will fail
- * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader
- * supports a false value for the http://xml.org/sax/features/namespaces
- * property, that will also be used to improve efficiency.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.Parser
- * @see org.xml.sax.XMLReader
- */
-public class XMLReaderAdapter implements Parser, ContentHandler
-{
-
-
- ////////////////////////////////////////////////////////////////////
- // Constructor.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Create a new adapter.
- *
- * <p>Use the "org.xml.sax.driver" property to locate the SAX2
- * driver to embed.</p>
- *
- * @exception org.xml.sax.SAXException If the embedded driver
- * cannot be instantiated or if the
- * org.xml.sax.driver property is not specified.
- */
- public XMLReaderAdapter ()
- throws SAXException
- {
- setup(XMLReaderFactory.createXMLReader());
- }
-
-
- /**
- * Create a new adapter.
- *
- * <p>Create a new adapter, wrapped around a SAX2 XMLReader.
- * The adapter will make the XMLReader act like a SAX1
- * Parser.</p>
- *
- * @param xmlReader The SAX2 XMLReader to wrap.
- * @exception java.lang.NullPointerException If the argument is null.
- */
- public XMLReaderAdapter (XMLReader xmlReader)
- {
- setup(xmlReader);
- }
-
-
-
- /**
- * Internal setup.
- *
- * @param xmlReader The embedded XMLReader.
- */
- private void setup (XMLReader xmlReader)
- {
- if (xmlReader == null) {
- throw new NullPointerException("XMLReader must not be null");
- }
- this.xmlReader = xmlReader;
- qAtts = new AttributesAdapter();
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.Parser.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set the locale for error reporting.
- *
- * <p>This is not supported in SAX2, and will always throw
- * an exception.</p>
- *
- * @param The locale for error reporting.
- * @see org.xml.sax.Parser#setLocale
- */
- public void setLocale (Locale locale)
- throws SAXException
- {
- throw new SAXNotSupportedException("setLocale not supported");
- }
-
-
- /**
- * Register the entity resolver.
- *
- * @param resolver The new resolver.
- * @see org.xml.sax.Parser#setEntityResolver
- */
- public void setEntityResolver (EntityResolver resolver)
- {
- xmlReader.setEntityResolver(resolver);
- }
-
-
- /**
- * Register the DTD event handler.
- *
- * @param handler The new DTD event handler.
- * @see org.xml.sax.Parser#setDTDHandler
- */
- public void setDTDHandler (DTDHandler handler)
- {
- xmlReader.setDTDHandler(handler);
- }
-
-
- /**
- * Register the SAX1 document event handler.
- *
- * <p>Note that the SAX1 document handler has no Namespace
- * support.</p>
- *
- * @param handler The new SAX1 document event handler.
- * @see org.xml.sax.Parser#setDocumentHandler
- */
- public void setDocumentHandler (DocumentHandler handler)
- {
- documentHandler = handler;
- }
-
-
- /**
- * Register the error event handler.
- *
- * @param handler The new error event handler.
- * @see org.xml.sax.Parser#setErrorHandler
- */
- public void setErrorHandler (ErrorHandler handler)
- {
- xmlReader.setErrorHandler(handler);
- }
-
-
- /**
- * Parse the document.
- *
- * <p>This method will throw an exception if the embedded
- * XMLReader does not support the
- * http://xml.org/sax/features/namespace-prefixes property.</p>
- *
- * @param systemId The absolute URL of the document.
- * @exception java.io.IOException If there is a problem reading
- * the raw content of the document.
- * @exception org.xml.sax.SAXException If there is a problem
- * processing the document.
- * @see #parse(org.xml.sax.InputSource)
- * @see org.xml.sax.Parser#parse(java.lang.String)
- */
- public void parse (String systemId)
- throws IOException, SAXException
- {
- parse(new InputSource(systemId));
- }
-
-
- /**
- * Parse the document.
- *
- * <p>This method will throw an exception if the embedded
- * XMLReader does not support the
- * http://xml.org/sax/features/namespace-prefixes property.</p>
- *
- * @param input An input source for the document.
- * @exception java.io.IOException If there is a problem reading
- * the raw content of the document.
- * @exception org.xml.sax.SAXException If there is a problem
- * processing the document.
- * @see #parse(java.lang.String)
- * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource)
- */
- public void parse (InputSource input)
- throws IOException, SAXException
- {
- setupXMLReader();
- xmlReader.parse(input);
- }
-
-
- /**
- * Set up the XML reader.
- */
- private void setupXMLReader ()
- throws SAXException
- {
- xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
- try {
- xmlReader.setFeature("http://xml.org/sax/features/namespaces",
- false);
- } catch (SAXException e) {
- // NO OP: it's just extra information, and we can ignore it
- }
- xmlReader.setContentHandler(this);
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Implementation of org.xml.sax.ContentHandler.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Set a document locator.
- *
- * @param locator The document locator.
- * @see org.xml.sax.ContentHandler#setDocumentLocator
- */
- public void setDocumentLocator (Locator locator)
- {
- documentHandler.setDocumentLocator(locator);
- }
-
-
- /**
- * Start document event.
- *
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#startDocument
- */
- public void startDocument ()
- throws SAXException
- {
- documentHandler.startDocument();
- }
-
-
- /**
- * End document event.
- *
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#endDocument
- */
- public void endDocument ()
- throws SAXException
- {
- documentHandler.endDocument();
- }
-
-
- /**
- * Adapt a SAX2 start prefix mapping event.
- *
- * @param prefix The prefix being mapped.
- * @param uri The Namespace URI being mapped to.
- * @see org.xml.sax.ContentHandler#startPrefixMapping
- */
- public void startPrefixMapping (String prefix, String uri)
- {
- }
-
-
- /**
- * Adapt a SAX2 end prefix mapping event.
- *
- * @param prefix The prefix being mapped.
- * @see org.xml.sax.ContentHandler#endPrefixMapping
- */
- public void endPrefixMapping (String prefix)
- {
- }
-
-
- /**
- * Adapt a SAX2 start element event.
- *
- * @param uri The Namespace URI.
- * @param localName The Namespace local name.
- * @param qName The qualified (prefixed) name.
- * @param atts The SAX2 attributes.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#endDocument
- */
- public void startElement (String uri, String localName,
- String qName, Attributes atts)
- throws SAXException
- {
- qAtts.setAttributes(atts);
- documentHandler.startElement(qName, qAtts);
- }
-
-
- /**
- * Adapt a SAX2 end element event.
- *
- * @param uri The Namespace URI.
- * @param localName The Namespace local name.
- * @param qName The qualified (prefixed) name.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#endElement
- */
- public void endElement (String uri, String localName,
- String qName)
- throws SAXException
- {
- documentHandler.endElement(qName);
- }
-
-
- /**
- * Adapt a SAX2 characters event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#characters
- */
- public void characters (char ch[], int start, int length)
- throws SAXException
- {
- documentHandler.characters(ch, start, length);
- }
-
-
- /**
- * Adapt a SAX2 ignorable whitespace event.
- *
- * @param ch An array of characters.
- * @param start The starting position in the array.
- * @param length The number of characters to use.
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#ignorableWhitespace
- */
- public void ignorableWhitespace (char ch[], int start, int length)
- throws SAXException
- {
- documentHandler.ignorableWhitespace(ch, start, length);
- }
-
-
- /**
- * Adapt a SAX2 processing instruction event.
- *
- * @param target The processing instruction target.
- * @param data The remainder of the processing instruction
- * @exception org.xml.sax.SAXException The client may raise a
- * processing exception.
- * @see org.xml.sax.ContentHandler#processingInstruction
- */
- public void processingInstruction (String target, String data)
- throws SAXException
- {
- documentHandler.processingInstruction(target, data);
- }
-
-
- /**
- * Adapt a SAX2 skipped entity event.
- *
- * @param name The name of the skipped entity.
- * @see org.xml.sax.ContentHandler#skippedEntity
- */
- public void skippedEntity (String name)
- throws SAXException
- {
- }
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal state.
- ////////////////////////////////////////////////////////////////////
-
- XMLReader xmlReader;
- DocumentHandler documentHandler;
- AttributesAdapter qAtts;
-
-
-
- ////////////////////////////////////////////////////////////////////
- // Internal class.
- ////////////////////////////////////////////////////////////////////
-
-
- /**
- * Internal class to wrap a SAX2 Attributes object for SAX1.
- */
- final class AttributesAdapter implements AttributeList
- {
- AttributesAdapter ()
- {
- }
-
-
- /**
- * Set the embedded Attributes object.
- *
- * @param The embedded SAX2 Attributes.
- */
- void setAttributes (Attributes attributes)
- {
- this.attributes = attributes;
- }
-
-
- /**
- * Return the number of attributes.
- *
- * @return The length of the attribute list.
- * @see org.xml.sax.AttributeList#getLength
- */
- public int getLength ()
- {
- return attributes.getLength();
- }
-
-
- /**
- * Return the qualified (prefixed) name of an attribute by position.
- *
- * @return The qualified name.
- * @see org.xml.sax.AttributeList#getName
- */
- public String getName (int i)
- {
- return attributes.getQName(i);
- }
-
-
- /**
- * Return the type of an attribute by position.
- *
- * @return The type.
- * @see org.xml.sax.AttributeList#getType(int)
- */
- public String getType (int i)
- {
- return attributes.getType(i);
- }
-
-
- /**
- * Return the value of an attribute by position.
- *
- * @return The value.
- * @see org.xml.sax.AttributeList#getValue(int)
- */
- public String getValue (int i)
- {
- return attributes.getValue(i);
- }
-
-
- /**
- * Return the type of an attribute by qualified (prefixed) name.
- *
- * @return The type.
- * @see org.xml.sax.AttributeList#getType(java.lang.String)
- */
- public String getType (String qName)
- {
- return attributes.getType(qName);
- }
-
-
- /**
- * Return the value of an attribute by qualified (prefixed) name.
- *
- * @return The value.
- * @see org.xml.sax.AttributeList#getValue(java.lang.String)
- */
- public String getValue (String qName)
- {
- return attributes.getValue(qName);
- }
-
- private Attributes attributes;
- }
-
-}
-
-// end of XMLReaderAdapter.java
+// XMLReaderAdapter.java - adapt an SAX2 XMLReader to a SAX1 Parser
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+// $Id: XMLReaderAdapter.java,v 1.5.2.3 2002/01/29 21:34:15 dbrownell Exp $
+
+package org.xml.sax.helpers;
+
+import java.io.IOException;
+import java.util.Locale;
+
+import org.xml.sax.Parser; // deprecated
+import org.xml.sax.Locator;
+import org.xml.sax.InputSource;
+import org.xml.sax.AttributeList; // deprecated
+import org.xml.sax.EntityResolver;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.DocumentHandler; // deprecated
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+
+import org.xml.sax.XMLReader;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXNotSupportedException;
+
+
+/**
+ * Adapt a SAX2 XMLReader as a SAX1 Parser.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader}
+ * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader
+ * must support a true value for the
+ * http://xml.org/sax/features/namespace-prefixes property or parsing will fail
+ * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader
+ * supports a false value for the http://xml.org/sax/features/namespaces
+ * property, that will also be used to improve efficiency.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson
+ * @version 2.0.1 (sax2r2)
+ * @see org.xml.sax.Parser
+ * @see org.xml.sax.XMLReader
+ */
+public class XMLReaderAdapter implements Parser, ContentHandler
+{
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Constructor.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Create a new adapter.
+ *
+ * <p>Use the "org.xml.sax.driver" property to locate the SAX2
+ * driver to embed.</p>
+ *
+ * @exception org.xml.sax.SAXException If the embedded driver
+ * cannot be instantiated or if the
+ * org.xml.sax.driver property is not specified.
+ */
+ public XMLReaderAdapter ()
+ throws SAXException
+ {
+ setup(XMLReaderFactory.createXMLReader());
+ }
+
+
+ /**
+ * Create a new adapter.
+ *
+ * <p>Create a new adapter, wrapped around a SAX2 XMLReader.
+ * The adapter will make the XMLReader act like a SAX1
+ * Parser.</p>
+ *
+ * @param xmlReader The SAX2 XMLReader to wrap.
+ * @exception java.lang.NullPointerException If the argument is null.
+ */
+ public XMLReaderAdapter (XMLReader xmlReader)
+ {
+ setup(xmlReader);
+ }
+
+
+
+ /**
+ * Internal setup.
+ *
+ * @param xmlReader The embedded XMLReader.
+ */
+ private void setup (XMLReader xmlReader)
+ {
+ if (xmlReader == null) {
+ throw new NullPointerException("XMLReader must not be null");
+ }
+ this.xmlReader = xmlReader;
+ qAtts = new AttributesAdapter();
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.Parser.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set the locale for error reporting.
+ *
+ * <p>This is not supported in SAX2, and will always throw
+ * an exception.</p>
+ *
+ * @param The locale for error reporting.
+ * @see org.xml.sax.Parser#setLocale
+ * @exception org.xml.sax.SAXException Thrown unless overridden.
+ */
+ public void setLocale (Locale locale)
+ throws SAXException
+ {
+ throw new SAXNotSupportedException("setLocale not supported");
+ }
+
+
+ /**
+ * Register the entity resolver.
+ *
+ * @param resolver The new resolver.
+ * @see org.xml.sax.Parser#setEntityResolver
+ */
+ public void setEntityResolver (EntityResolver resolver)
+ {
+ xmlReader.setEntityResolver(resolver);
+ }
+
+
+ /**
+ * Register the DTD event handler.
+ *
+ * @param handler The new DTD event handler.
+ * @see org.xml.sax.Parser#setDTDHandler
+ */
+ public void setDTDHandler (DTDHandler handler)
+ {
+ xmlReader.setDTDHandler(handler);
+ }
+
+
+ /**
+ * Register the SAX1 document event handler.
+ *
+ * <p>Note that the SAX1 document handler has no Namespace
+ * support.</p>
+ *
+ * @param handler The new SAX1 document event handler.
+ * @see org.xml.sax.Parser#setDocumentHandler
+ */
+ public void setDocumentHandler (DocumentHandler handler)
+ {
+ documentHandler = handler;
+ }
+
+
+ /**
+ * Register the error event handler.
+ *
+ * @param handler The new error event handler.
+ * @see org.xml.sax.Parser#setErrorHandler
+ */
+ public void setErrorHandler (ErrorHandler handler)
+ {
+ xmlReader.setErrorHandler(handler);
+ }
+
+
+ /**
+ * Parse the document.
+ *
+ * <p>This method will throw an exception if the embedded
+ * XMLReader does not support the
+ * http://xml.org/sax/features/namespace-prefixes property.</p>
+ *
+ * @param systemId The absolute URL of the document.
+ * @exception java.io.IOException If there is a problem reading
+ * the raw content of the document.
+ * @exception org.xml.sax.SAXException If there is a problem
+ * processing the document.
+ * @see #parse(org.xml.sax.InputSource)
+ * @see org.xml.sax.Parser#parse(java.lang.String)
+ */
+ public void parse (String systemId)
+ throws IOException, SAXException
+ {
+ parse(new InputSource(systemId));
+ }
+
+
+ /**
+ * Parse the document.
+ *
+ * <p>This method will throw an exception if the embedded
+ * XMLReader does not support the
+ * http://xml.org/sax/features/namespace-prefixes property.</p>
+ *
+ * @param input An input source for the document.
+ * @exception java.io.IOException If there is a problem reading
+ * the raw content of the document.
+ * @exception org.xml.sax.SAXException If there is a problem
+ * processing the document.
+ * @see #parse(java.lang.String)
+ * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource)
+ */
+ public void parse (InputSource input)
+ throws IOException, SAXException
+ {
+ setupXMLReader();
+ xmlReader.parse(input);
+ }
+
+
+ /**
+ * Set up the XML reader.
+ */
+ private void setupXMLReader ()
+ throws SAXException
+ {
+ xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
+ try {
+ xmlReader.setFeature("http://xml.org/sax/features/namespaces",
+ false);
+ } catch (SAXException e) {
+ // NO OP: it's just extra information, and we can ignore it
+ }
+ xmlReader.setContentHandler(this);
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Implementation of org.xml.sax.ContentHandler.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Set a document locator.
+ *
+ * @param locator The document locator.
+ * @see org.xml.sax.ContentHandler#setDocumentLocator
+ */
+ public void setDocumentLocator (Locator locator)
+ {
+ if (documentHandler != null)
+ documentHandler.setDocumentLocator(locator);
+ }
+
+
+ /**
+ * Start document event.
+ *
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#startDocument
+ */
+ public void startDocument ()
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.startDocument();
+ }
+
+
+ /**
+ * End document event.
+ *
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#endDocument
+ */
+ public void endDocument ()
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.endDocument();
+ }
+
+
+ /**
+ * Adapt a SAX2 start prefix mapping event.
+ *
+ * @param prefix The prefix being mapped.
+ * @param uri The Namespace URI being mapped to.
+ * @see org.xml.sax.ContentHandler#startPrefixMapping
+ */
+ public void startPrefixMapping (String prefix, String uri)
+ {
+ }
+
+
+ /**
+ * Adapt a SAX2 end prefix mapping event.
+ *
+ * @param prefix The prefix being mapped.
+ * @see org.xml.sax.ContentHandler#endPrefixMapping
+ */
+ public void endPrefixMapping (String prefix)
+ {
+ }
+
+
+ /**
+ * Adapt a SAX2 start element event.
+ *
+ * @param uri The Namespace URI.
+ * @param localName The Namespace local name.
+ * @param qName The qualified (prefixed) name.
+ * @param atts The SAX2 attributes.
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#endDocument
+ */
+ public void startElement (String uri, String localName,
+ String qName, Attributes atts)
+ throws SAXException
+ {
+ if (documentHandler != null) {
+ qAtts.setAttributes(atts);
+ documentHandler.startElement(qName, qAtts);
+ }
+ }
+
+
+ /**
+ * Adapt a SAX2 end element event.
+ *
+ * @param uri The Namespace URI.
+ * @param localName The Namespace local name.
+ * @param qName The qualified (prefixed) name.
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#endElement
+ */
+ public void endElement (String uri, String localName,
+ String qName)
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.endElement(qName);
+ }
+
+
+ /**
+ * Adapt a SAX2 characters event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use.
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#characters
+ */
+ public void characters (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.characters(ch, start, length);
+ }
+
+
+ /**
+ * Adapt a SAX2 ignorable whitespace event.
+ *
+ * @param ch An array of characters.
+ * @param start The starting position in the array.
+ * @param length The number of characters to use.
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#ignorableWhitespace
+ */
+ public void ignorableWhitespace (char ch[], int start, int length)
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.ignorableWhitespace(ch, start, length);
+ }
+
+
+ /**
+ * Adapt a SAX2 processing instruction event.
+ *
+ * @param target The processing instruction target.
+ * @param data The remainder of the processing instruction
+ * @exception org.xml.sax.SAXException The client may raise a
+ * processing exception.
+ * @see org.xml.sax.ContentHandler#processingInstruction
+ */
+ public void processingInstruction (String target, String data)
+ throws SAXException
+ {
+ if (documentHandler != null)
+ documentHandler.processingInstruction(target, data);
+ }
+
+
+ /**
+ * Adapt a SAX2 skipped entity event.
+ *
+ * @param name The name of the skipped entity.
+ * @see org.xml.sax.ContentHandler#skippedEntity
+ * @exception org.xml.sax.SAXException Throwable by subclasses.
+ */
+ public void skippedEntity (String name)
+ throws SAXException
+ {
+ }
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal state.
+ ////////////////////////////////////////////////////////////////////
+
+ XMLReader xmlReader;
+ DocumentHandler documentHandler;
+ AttributesAdapter qAtts;
+
+
+
+ ////////////////////////////////////////////////////////////////////
+ // Internal class.
+ ////////////////////////////////////////////////////////////////////
+
+
+ /**
+ * Internal class to wrap a SAX2 Attributes object for SAX1.
+ */
+ final class AttributesAdapter implements AttributeList
+ {
+ AttributesAdapter ()
+ {
+ }
+
+
+ /**
+ * Set the embedded Attributes object.
+ *
+ * @param The embedded SAX2 Attributes.
+ */
+ void setAttributes (Attributes attributes)
+ {
+ this.attributes = attributes;
+ }
+
+
+ /**
+ * Return the number of attributes.
+ *
+ * @return The length of the attribute list.
+ * @see org.xml.sax.AttributeList#getLength
+ */
+ public int getLength ()
+ {
+ return attributes.getLength();
+ }
+
+
+ /**
+ * Return the qualified (prefixed) name of an attribute by position.
+ *
+ * @return The qualified name.
+ * @see org.xml.sax.AttributeList#getName
+ */
+ public String getName (int i)
+ {
+ return attributes.getQName(i);
+ }
+
+
+ /**
+ * Return the type of an attribute by position.
+ *
+ * @return The type.
+ * @see org.xml.sax.AttributeList#getType(int)
+ */
+ public String getType (int i)
+ {
+ return attributes.getType(i);
+ }
+
+
+ /**
+ * Return the value of an attribute by position.
+ *
+ * @return The value.
+ * @see org.xml.sax.AttributeList#getValue(int)
+ */
+ public String getValue (int i)
+ {
+ return attributes.getValue(i);
+ }
+
+
+ /**
+ * Return the type of an attribute by qualified (prefixed) name.
+ *
+ * @return The type.
+ * @see org.xml.sax.AttributeList#getType(java.lang.String)
+ */
+ public String getType (String qName)
+ {
+ return attributes.getType(qName);
+ }
+
+
+ /**
+ * Return the value of an attribute by qualified (prefixed) name.
+ *
+ * @return The value.
+ * @see org.xml.sax.AttributeList#getValue(java.lang.String)
+ */
+ public String getValue (String qName)
+ {
+ return attributes.getValue(qName);
+ }
+
+ private Attributes attributes;
+ }
+
+}
+
+// end of XMLReaderAdapter.java
diff --git a/libjava/org/xml/sax/helpers/XMLReaderFactory.java b/libjava/org/xml/sax/helpers/XMLReaderFactory.java
index 9443b27dcca..e1fa80c84cf 100644
--- a/libjava/org/xml/sax/helpers/XMLReaderFactory.java
+++ b/libjava/org/xml/sax/helpers/XMLReaderFactory.java
@@ -1,136 +1,203 @@
-// XMLReaderFactory.java - factory for creating a new reader.
-// Written by David Megginson, sax@megginson.com
-// NO WARRANTY! This class is in the Public Domain.
-
-// $Id: XMLReaderFactory.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
-
-package org.xml.sax.helpers;
-import org.xml.sax.Parser;
-import org.xml.sax.XMLReader;
-import org.xml.sax.SAXException;
-
-
-/**
- * Factory for creating an XML reader.
- *
- * <blockquote>
- * <em>This module, both source code and documentation, is in the
- * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
- * </blockquote>
- *
- * <p>This class contains static methods for creating an XML reader
- * from an explicit class name, or for creating an XML reader based
- * on the value of the <code>org.xml.sax.driver</code> system
- * property:</p>
- *
- * <pre>
- * try {
- * XMLReader myReader = XMLReaderFactory.createXMLReader();
- * } catch (SAXException e) {
- * System.err.println(e.getMessage());
- * }
- * </pre>
- *
- * <p>Note that these methods will not be usable in environments where
- * system properties are not accessible or where the application or
- * applet is not permitted to load classes dynamically.</p>
- *
- * <p><strong>Note to implementors:</strong> SAX implementations in specialized
- * environments may replace this class with a different one optimized for the
- * environment, as long as its method signatures remain the same.</p>
- *
- * @since SAX 2.0
- * @author David Megginson,
- * <a href="mailto:sax@megginson.com">sax@megginson.com</a>
- * @version 2.0
- * @see org.xml.sax.XMLReader
- */
-final public class XMLReaderFactory
-{
-
- /**
- * Private constructor.
- *
- * <p>This constructor prevents the class from being instantiated.</p>
- */
- private XMLReaderFactory ()
- {
- }
-
-
- /**
- * Attempt to create an XML reader from a system property.
- *
- * <p>This method uses the value of the system property
- * "org.xml.sax.driver" as the full name of a Java class
- * and tries to instantiate that class as a SAX2
- * XMLReader.</p>
- *
- * <p>Note that many Java interpreters allow system properties
- * to be specified on the command line.</p>
- *
- * @return A new XMLReader.
- * @exception org.xml.sax.SAXException If the value of the
- * "org.xml.sax.driver" system property is null,
- * or if the class cannot be loaded and instantiated.
- * @see #createXMLReader(java.lang.String)
- */
- public static XMLReader createXMLReader ()
- throws SAXException
- {
- String className = System.getProperty("org.xml.sax.driver");
- if (className == null) {
- Parser parser;
- try {
- parser = ParserFactory.makeParser();
- } catch (Exception e) {
- parser = null;
- }
- if (parser == null) {
- throw new
- SAXException("System property org.xml.sax.driver not specified");
- } else {
- return new ParserAdapter(parser);
- }
- } else {
- return createXMLReader(className);
- }
- }
-
-
- /**
- * Attempt to create an XML reader from a class name.
- *
- * <p>Given a class name, this method attempts to load
- * and instantiate the class as an XML reader.</p>
- *
- * @return A new XML reader.
- * @exception org.xml.sax.SAXException If the class cannot be
- * loaded, instantiated, and cast to XMLReader.
- * @see #createXMLReader()
- */
- public static XMLReader createXMLReader (String className)
- throws SAXException
- {
- try {
- return (XMLReader)(Class.forName(className).newInstance());
- } catch (ClassNotFoundException e1) {
- throw new SAXException("SAX2 driver class " + className +
- " not found", e1);
- } catch (IllegalAccessException e2) {
- throw new SAXException("SAX2 driver class " + className +
- " found but cannot be loaded", e2);
- } catch (InstantiationException e3) {
- throw new SAXException("SAX2 driver class " + className +
- " loaded but cannot be instantiated (no empty public constructor?)",
- e3);
- } catch (ClassCastException e4) {
- throw new SAXException("SAX2 driver class " + className +
- " does not implement XMLReader", e4);
- }
-
- }
-
-}
-
-// end of XMLReaderFactory.java
+// XMLReaderFactory.java - factory for creating a new reader.
+// http://www.saxproject.org
+// Written by David Megginson
+// and by David Brownell
+// NO WARRANTY! This class is in the Public Domain.
+
+// $Id: XMLReaderFactory.java,v 1.5.2.4 2002/01/29 21:34:15 dbrownell Exp $
+
+package org.xml.sax.helpers;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import org.xml.sax.XMLReader;
+import org.xml.sax.SAXException;
+
+
+/**
+ * Factory for creating an XML reader.
+ *
+ * <blockquote>
+ * <em>This module, both source code and documentation, is in the
+ * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
+ * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+ * for further information.
+ * </blockquote>
+ *
+ * <p>This class contains static methods for creating an XML reader
+ * from an explicit class name, or based on runtime defaults:</p>
+ *
+ * <pre>
+ * try {
+ * XMLReader myReader = XMLReaderFactory.createXMLReader();
+ * } catch (SAXException e) {
+ * System.err.println(e.getMessage());
+ * }
+ * </pre>
+ *
+ * <p><strong>Note to Distributions bundled with parsers:</strong>
+ * You should modify the implementation of the no-arguments
+ * <em>createXMLReader</em> to handle cases where the external
+ * configuration mechanisms aren't set up. That method should do its
+ * best to return a parser when one is in the class path, even when
+ * nothing bound its class name to <code>org.xml.sax.driver</code> so
+ * those configuration mechanisms would see it.</p>
+ *
+ * @since SAX 2.0
+ * @author David Megginson, David Brownell
+ * @version 2.0.1 (sax2r2)
+ */
+final public class XMLReaderFactory
+{
+ /**
+ * Private constructor.
+ *
+ * <p>This constructor prevents the class from being instantiated.</p>
+ */
+ private XMLReaderFactory ()
+ {
+ }
+
+ private static final String property = "org.xml.sax.driver";
+
+ /**
+ * Attempt to create an XMLReader from system defaults.
+ * In environments which can support it, the name of the XMLReader
+ * class is determined by trying each these options in order, and
+ * using the first one which succeeds:</p> <ul>
+ *
+ * <li>If the system property <code>org.xml.sax.driver</code>
+ * has a value, that is used as an XMLReader class name. </li>
+ *
+ * <li>The JAR "Services API" is used to look for a class name
+ * in the <em>META-INF/services/org.xml.sax.driver</em> file in
+ * jarfiles available to the runtime.</li>
+ *
+ * <li> SAX parser distributions are strongly encouraged to provide
+ * a default XMLReader class name that will take effect only when
+ * previous options (on this list) are not successful.</li>
+ *
+ * <li>Finally, if {@link ParserFactory#makeParser()} can
+ * return a system default SAX1 parser, that parser is wrapped in
+ * a {@link ParserAdapter}. (This is a migration aid for SAX1
+ * environments, where the <code>org.xml.sax.parser</code> system
+ * property will often be usable.) </li>
+ *
+ * </ul>
+ *
+ * <p> In environments such as small embedded systems, which can not
+ * support that flexibility, other mechanisms to determine the default
+ * may be used. </p>
+ *
+ * <p>Note that many Java environments allow system properties to be
+ * initialized on a command line. This means that <em>in most cases</em>
+ * setting a good value for that property ensures that calls to this
+ * method will succeed, except when security policies intervene.
+ * This will also maximize application portability to older SAX
+ * environments, with less robust implementations of this method.
+ * </p>
+ *
+ * @return A new XMLReader.
+ * @exception org.xml.sax.SAXException If no default XMLReader class
+ * can be identified and instantiated.
+ * @see #createXMLReader(java.lang.String)
+ */
+ public static XMLReader createXMLReader ()
+ throws SAXException
+ {
+ String className = null;
+ ClassLoader loader = NewInstance.getClassLoader ();
+
+ // 1. try the JVM-instance-wide system property
+ try { className = System.getProperty (property); }
+ catch (Exception e) { /* normally fails for applets */ }
+
+ // 2. if that fails, try META-INF/services/
+ if (className == null) {
+ try {
+ String service = "META-INF/services/" + property;
+ InputStream in;
+ BufferedReader reader;
+
+ if (loader == null)
+ in = ClassLoader.getSystemResourceAsStream (service);
+ else
+ in = loader.getResourceAsStream (service);
+
+ if (in != null) {
+ reader = new BufferedReader (
+ new InputStreamReader (in, "UTF8"));
+ className = reader.readLine ();
+ in.close ();
+ }
+ } catch (Exception e) {
+ }
+ }
+
+ // 3. Distro-specific fallback
+ if (className == null) {
+// BEGIN DISTRIBUTION-SPECIFIC
+
+ // EXAMPLE:
+ // className = "com.example.sax.XmlReader";
+ // or a $JAVA_HOME/jre/lib/*properties setting...
+
+// END DISTRIBUTION-SPECIFIC
+ }
+
+ // do we know the XMLReader implementation class yet?
+ if (className != null)
+ return loadClass (loader, className);
+
+ // 4. panic -- adapt any SAX1 parser
+ try {
+ return new ParserAdapter (ParserFactory.makeParser ());
+ } catch (Exception e) {
+ throw new SAXException ("Can't create default XMLReader; "
+ + "is system property org.xml.sax.driver set?");
+ }
+ }
+
+
+ /**
+ * Attempt to create an XML reader from a class name.
+ *
+ * <p>Given a class name, this method attempts to load
+ * and instantiate the class as an XML reader.</p>
+ *
+ * <p>Note that this method will not be usable in environments where
+ * the caller (perhaps an applet) is not permitted to load classes
+ * dynamically.</p>
+ *
+ * @return A new XML reader.
+ * @exception org.xml.sax.SAXException If the class cannot be
+ * loaded, instantiated, and cast to XMLReader.
+ * @see #createXMLReader()
+ */
+ public static XMLReader createXMLReader (String className)
+ throws SAXException
+ {
+ return loadClass (NewInstance.getClassLoader (), className);
+ }
+
+ private static XMLReader loadClass (ClassLoader loader, String className)
+ throws SAXException
+ {
+ try {
+ return (XMLReader) NewInstance.newInstance (loader, className);
+ } catch (ClassNotFoundException e1) {
+ throw new SAXException("SAX2 driver class " + className +
+ " not found", e1);
+ } catch (IllegalAccessException e2) {
+ throw new SAXException("SAX2 driver class " + className +
+ " found but cannot be loaded", e2);
+ } catch (InstantiationException e3) {
+ throw new SAXException("SAX2 driver class " + className +
+ " loaded but cannot be instantiated (no empty public constructor?)",
+ e3);
+ } catch (ClassCastException e4) {
+ throw new SAXException("SAX2 driver class " + className +
+ " does not implement XMLReader", e4);
+ }
+ }
+}
diff --git a/libjava/org/xml/sax/helpers/package.html b/libjava/org/xml/sax/helpers/package.html
new file mode 100644
index 00000000000..458d1229c47
--- /dev/null
+++ b/libjava/org/xml/sax/helpers/package.html
@@ -0,0 +1,13 @@
+<HTML><HEAD>
+
+<!-- $Id: package.html,v 1.3.2.1 2001/11/09 20:32:58 dbrownell Exp $ -->
+
+</HEAD><BODY>
+
+<p>This package contains "helper" classes, including
+support for bootstrapping SAX-based applications.
+
+<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+for more information about SAX.</p>
+
+</BODY></HTML>
diff --git a/libjava/org/xml/sax/package.html b/libjava/org/xml/sax/package.html
new file mode 100644
index 00000000000..25f4b86cdf3
--- /dev/null
+++ b/libjava/org/xml/sax/package.html
@@ -0,0 +1,164 @@
+<html><head>
+
+<!-- $Id: package.html,v 1.2.2.2 2002/01/12 21:42:21 dbrownell Exp $ -->
+
+</head><body>
+
+<p> This package provides the core SAX APIs.
+Some SAX1 APIs are deprecated to encourage integration of
+namespace-awareness into designs of new applications
+and into maintainance of existing infrastructure. </p>
+
+<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
+for more information about SAX.</p>
+
+
+<h2> SAX2 Standard Feature Flags </h2>
+
+<p> One of the essential characteristics of SAX2 is that it added
+feature flags which can be used to examine and perhaps modify
+parser modes, in particular modes such as validation.
+Since features are identified by (absolute) URIs, anyone
+can define such features.
+Currently defined standard feature URIs have the prefix
+<code>http://xml.org/sax/features/</code> before an identifier such as
+<code>validation</code>. Turn features on or off using
+<em>setFeature</em>. Those standard identifiers are: </p>
+
+
+<table border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr align="center" bgcolor="#ccccff">
+ <th>Feature ID</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>external-general-entities</td>
+ <td><em>unspecified</em></td>
+ <td> Reports whether this parser processes external
+ general entities; always true if validating</td>
+ </tr>
+
+ <tr>
+ <td>external-parameter-entities</td>
+ <td><em>unspecified</em></td>
+ <td> Reports whether this parser processes external
+ parameter entities; always true if validating</td>
+ </tr>
+
+ <tr>
+ <td>lexical-handler/parameter-entities</td>
+ <td><em>unspecified</em></td>
+ <td> true indicates that the LexicalHandler will report the
+ beginning and end of parameter entities
+ </td>
+ </tr>
+
+ <tr>
+ <td>namespaces</td>
+ <td>true</td>
+ <td> true indicates namespace URIs and unprefixed local names
+ for element and attribute names will be available </td>
+ </tr>
+
+ <tr>
+ <td>namespace-prefixes</td>
+ <td>false</td>
+ <td> true indicates XML 1.0 names (with prefixes) and attributes
+ (including <em>xmlns*</em> attributes) will be available </td>
+ </tr>
+
+ <tr>
+ <td>string-interning</td>
+ <td><em>unspecified</em></td>
+ <td> true if all XML names (for elements, prefixes, attributes,
+ entities, notations, and local names),
+ as well as Namespace URIs, will have been interned
+ using <em>java.lang.String.intern</em>. This supports fast
+ testing of equality/inequality against string constants.</td>
+ </tr>
+
+ <tr>
+ <td>validation</td>
+ <td><em>unspecified</em></td>
+ <td> controls whether the parser is reporting all validity
+ errors; if true, all external entities will be read. </td>
+ </tr>
+
+</table>
+
+<p> Support for the default values of the
+<em>namespaces</em> and <em>namespace-prefixes</em>
+properties is required.
+</p>
+
+<p> For default values not specified by SAX2,
+each XMLReader implementation specifies its default,
+or may choose not to expose the feature flag.
+Unless otherwise specified here,
+implementations may support changing current values
+of these standard feature flags, but not while parsing.
+</p>
+
+<h2> SAX2 Standard Handler and Property IDs </h2>
+
+<p> For parser interface characteristics that are described
+as objects, a separate namespace is defined. The
+objects in this namespace are again identified by URI, and
+the standard property URIs have the prefix
+<code>http://xml.org/sax/properties/</code> before an identifier such as
+<code>lexical-handler</code> or
+<code>dom-node</code>. Manage those properties using
+<em>setProperty()</em>. Those identifiers are: </p>
+
+<table border="1" cellpadding="3" cellspacing="0" width="100%">
+ <tr align="center" bgcolor="#ccccff">
+ <th>Property ID</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>declaration-handler</td>
+ <td> Used to see most DTD declarations except those treated
+ as lexical ("document element name is ...") or which are
+ mandatory for all SAX parsers (<em>DTDHandler</em>).
+ The Object must implement <a href="ext/DeclHandler.html"
+ ><em>org.xml.sax.ext.DeclHandler</em></a>.
+ </td>
+ </tr>
+
+ <tr>
+ <td>dom-node</td>
+ <td> For "DOM Walker" style parsers, which ignore their
+ <em>parser.parse()</em> parameters, this is used to
+ specify the DOM (sub)tree being walked by the parser.
+ The Object must implement the
+ <em>org.w3c.dom.Node</em> interface.
+ </td>
+ </tr>
+
+ <tr>
+ <td>lexical-handler</td>
+ <td> Used to see some syntax events that are essential in some
+ applications: comments, CDATA delimeters, selected general
+ entity inclusions, and the start and end of the DTD
+ (and declaration of document element name).
+ The Object must implement <a href="ext/LexicalHandler.html"
+ ><em>org.xml.sax.ext.LexicalHandler</em></a>.
+ </td>
+ </tr>
+
+ <tr>
+ <td>xml-string</td>
+ <td> Readable only during a parser callback, this exposes a <b>TBS</b>
+ chunk of characters responsible for the current event. </td>
+ </tr>
+
+</table>
+
+<p> All of these standard properties are optional;
+XMLReader implementations need not support them.
+</p>
+
+</body></html>
diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc
index e92348bcc2c..656f483e96d 100644
--- a/libjava/posix-threads.cc
+++ b/libjava/posix-threads.cc
@@ -24,6 +24,9 @@ details. */
#include <signal.h>
#include <errno.h>
#include <limits.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h> // To test for _POSIX_THREAD_PRIORITY_SCHEDULING
+#endif
#include <gcj/cni.h>
#include <jvm.h>
@@ -318,6 +321,7 @@ _Jv_ThreadDestroyData (_Jv_Thread_t *data)
void
_Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
{
+#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
if (data->flags & FLAG_START)
{
struct sched_param param;
@@ -325,6 +329,7 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio)
param.sched_priority = prio;
pthread_setschedparam (data->thread, SCHED_RR, &param);
}
+#endif
}
void
diff --git a/libjava/posix.cc b/libjava/posix.cc
index ebff1c9ec79..73c0f5f4329 100644
--- a/libjava/posix.cc
+++ b/libjava/posix.cc
@@ -15,6 +15,7 @@ details. */
#include <stdlib.h>
#include <errno.h>
#include <signal.h>
+#include <stdio.h>
#include <jvm.h>
#include <java/lang/Thread.h>
@@ -25,6 +26,23 @@ details. */
extern "C" unsigned long long _clock (void);
#endif
+#if defined(HAVE_PROC_SELF_EXE)
+static char exec_name[20];
+ // initialized in _Jv_platform_initialize()
+#endif
+
+const char *_Jv_ThisExecutable (void)
+{
+#if defined(DISABLE_MAIN_ARGS)
+ return "[Embedded App]";
+#elif defined(HAVE_PROC_SELF_EXE)
+ return exec_name;
+ // initialized in _Jv_platform_initialize()
+#else
+ return _Jv_GetSafeArg (0);
+#endif
+}
+
// gettimeofday implementation.
jlong
_Jv_platform_gettimeofday ()
@@ -62,6 +80,11 @@ _Jv_platform_initialize (void)
#else
signal (SIGPIPE, SIG_IGN);
#endif
+
+#if defined (HAVE_PROC_SELF_EXE)
+ // Compute our executable name
+ sprintf (exec_name, "/proc/%d/exe", getpid ());
+#endif
}
// Set platform-specific System properties.
diff --git a/libjava/prims.cc b/libjava/prims.cc
index 2195db161e1..f69975f9951 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -86,13 +86,34 @@ const char *_Jv_Jar_Class_Path;
property_pair *_Jv_Environment_Properties;
#endif
-// The name of this executable.
-static char *_Jv_execName;
-
// Stash the argv pointer to benefit native libraries that need it.
const char **_Jv_argv;
int _Jv_argc;
+// Argument support.
+int
+_Jv_GetNbArgs (void)
+{
+ // _Jv_argc is 0 if not explicitly initialized.
+ return _Jv_argc;
+}
+
+const char *
+_Jv_GetSafeArg (int index)
+{
+ if (index >=0 && index < _Jv_GetNbArgs ())
+ return _Jv_argv[index];
+ else
+ return "";
+}
+
+void
+_Jv_SetArgs (int argc, const char **argv)
+{
+ _Jv_argc = argc;
+ _Jv_argv = argv;
+}
+
#ifdef ENABLE_JVMPI
// Pointer to JVMPI notification functions.
void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event);
@@ -101,6 +122,20 @@ void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
#endif
+/* Unblock a signal. Unless we do this, the signal may only be sent
+ once. */
+static void
+unblock_signal (int signum)
+{
+#ifdef _POSIX_VERSION
+ sigset_t sigs;
+
+ sigemptyset (&sigs);
+ sigaddset (&sigs, signum);
+ sigprocmask (SIG_UNBLOCK, &sigs, NULL);
+#endif
+}
+
extern "C" void _Jv_ThrowSignal (jthrowable) __attribute ((noreturn));
// Just like _Jv_Throw, but fill in the stack trace first. Although
@@ -118,6 +153,7 @@ static java::lang::NullPointerException *nullp;
SIGNAL_HANDLER (catch_segv)
{
+ unblock_signal (SIGSEGV);
MAKE_THROW_FRAME (nullp);
_Jv_ThrowSignal (nullp);
}
@@ -128,6 +164,7 @@ static java::lang::ArithmeticException *arithexception;
#ifdef HANDLE_FPE
SIGNAL_HANDLER (catch_fpe)
{
+ unblock_signal (SIGFPE);
#ifdef HANDLE_DIVIDE_OVERFLOW
HANDLE_DIVIDE_OVERFLOW;
#else
@@ -707,22 +744,6 @@ static JArray<jstring> *arg_vec;
// The primary thread.
static java::lang::Thread *main_thread;
-char *
-_Jv_ThisExecutable (void)
-{
- return _Jv_execName;
-}
-
-void
-_Jv_ThisExecutable (const char *name)
-{
- if (name)
- {
- _Jv_execName = (char *) _Jv_Malloc (strlen (name) + 1);
- strcpy (_Jv_execName, name);
- }
-}
-
#ifndef DISABLE_GETENV_PROPERTIES
static char *
@@ -955,24 +976,10 @@ void
_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
bool is_jar)
{
- _Jv_argv = argv;
- _Jv_argc = argc;
+ _Jv_SetArgs (argc, argv);
java::lang::Runtime *runtime = NULL;
-
-#ifdef DISABLE_MAIN_ARGS
- _Jv_ThisExecutable ("[Embedded App]");
-#else
-#ifdef HAVE_PROC_SELF_EXE
- char exec_name[20];
- sprintf (exec_name, "/proc/%d/exe", getpid ());
- _Jv_ThisExecutable (exec_name);
-#else
- _Jv_ThisExecutable (argv[0]);
-#endif /* HAVE_PROC_SELF_EXE */
-#endif /* DISABLE_MAIN_ARGS */
-
try
{
// Set this very early so that it is seen when java.lang.System
diff --git a/libjava/resolve.cc b/libjava/resolve.cc
index e195c333cc8..8f24c9126b9 100644
--- a/libjava/resolve.cc
+++ b/libjava/resolve.cc
@@ -1,6 +1,6 @@
// resolve.cc - Code for linking and resolving classes and pool entries.
-/* Copyright (C) 1999, 2000, 2001 , 2002 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001 , 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -238,7 +238,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
// First search the class itself.
the_method = _Jv_SearchMethodInClass (owner, klass,
- method_name, method_signature);
+ method_name, method_signature);
if (the_method != 0)
{
@@ -246,9 +246,10 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
goto end_of_method_search;
}
- // If we are resolving an interface method, search the interface's
- // superinterfaces (A superinterface is not an interface's superclass -
- // a superinterface is implemented by the interface).
+ // If we are resolving an interface method, search the
+ // interface's superinterfaces (A superinterface is not an
+ // interface's superclass - a superinterface is implemented by
+ // the interface).
if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref)
{
_Jv_ifaces ifaces;
@@ -257,8 +258,8 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
ifaces.list = (jclass *) _Jv_Malloc (ifaces.len * sizeof (jclass *));
_Jv_GetInterfaces (owner, &ifaces);
-
- for (int i=0; i < ifaces.count; i++)
+
+ for (int i = 0; i < ifaces.count; i++)
{
jclass cls = ifaces.list[i];
the_method = _Jv_SearchMethodInClass (cls, klass, method_name,
@@ -269,9 +270,9 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
break;
}
}
-
+
_Jv_Free (ifaces.list);
-
+
if (the_method != 0)
goto end_of_method_search;
}
@@ -281,7 +282,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
cls = cls->getSuperclass ())
{
the_method = _Jv_SearchMethodInClass (cls, klass,
- method_name, method_signature);
+ method_name, method_signature);
if (the_method != 0)
{
found_class = cls;
@@ -363,6 +364,58 @@ _Jv_SearchMethodInClass (jclass cls, jclass klass,
return 0;
}
+// A helper for _Jv_PrepareClass. This adds missing `Miranda methods'
+// to a class.
+void
+_Jv_PrepareMissingMethods (jclass base2, jclass iface_class)
+{
+ _Jv_InterpClass *base = reinterpret_cast<_Jv_InterpClass *> (base2);
+ for (int i = 0; i < iface_class->interface_count; ++i)
+ {
+ for (int j = 0; j < iface_class->interfaces[i]->method_count; ++j)
+ {
+ _Jv_Method *meth = &iface_class->interfaces[i]->methods[j];
+ // Don't bother with <clinit>.
+ if (meth->name->data[0] == '<')
+ continue;
+ _Jv_Method *new_meth = _Jv_LookupDeclaredMethod (base, meth->name,
+ meth->signature);
+ if (! new_meth)
+ {
+ // We assume that such methods are very unlikely, so we
+ // just reallocate the method array each time one is
+ // found. This greatly simplifies the searching --
+ // otherwise we have to make sure that each such method
+ // found is really unique among all superinterfaces.
+ int new_count = base->method_count + 1;
+ _Jv_Method *new_m
+ = (_Jv_Method *) _Jv_AllocBytes (sizeof (_Jv_Method)
+ * new_count);
+ memcpy (new_m, base->methods,
+ sizeof (_Jv_Method) * base->method_count);
+
+ // Add new method.
+ new_m[base->method_count] = *meth;
+ new_m[base->method_count].index = (_Jv_ushort) -1;
+ new_m[base->method_count].accflags
+ |= java::lang::reflect::Modifier::INVISIBLE;
+
+ _Jv_MethodBase **new_im
+ = (_Jv_MethodBase **) _Jv_AllocBytes (sizeof (_Jv_MethodBase *)
+ * new_count);
+ memcpy (new_im, base->interpreted_methods,
+ sizeof (_Jv_MethodBase *) * base->method_count);
+
+ base->methods = new_m;
+ base->interpreted_methods = new_im;
+ base->method_count = new_count;
+ }
+ }
+
+ _Jv_PrepareMissingMethods (base, iface_class->interfaces[i]);
+ }
+}
+
void
_Jv_PrepareClass(jclass klass)
{
@@ -516,13 +569,24 @@ _Jv_PrepareClass(jclass klass)
}
}
- if (clz->accflags & Modifier::INTERFACE)
+ if ((clz->accflags & Modifier::INTERFACE))
{
clz->state = JV_STATE_PREPARED;
clz->notifyAll ();
return;
}
+ // A class might have so-called "Miranda methods". This is a method
+ // that is declared in an interface and not re-declared in an
+ // abstract class. Some compilers don't emit declarations for such
+ // methods in the class; this will give us problems since we expect
+ // a declaration for any method requiring a vtable entry. We handle
+ // this here by searching for such methods and constructing new
+ // internal declarations for them. We only need to do this for
+ // abstract classes.
+ if ((clz->accflags & Modifier::ABSTRACT))
+ _Jv_PrepareMissingMethods (clz, clz);
+
clz->vtable_method_count = -1;
_Jv_MakeVTable (clz);
@@ -937,7 +1001,14 @@ _Jv_JNIMethod::ncode ()
memcpy (&jni_arg_types[offset], &closure->arg_types[0],
arg_count * sizeof (ffi_type *));
- if (ffi_prep_cif (&jni_cif, FFI_DEFAULT_ABI,
+ // NOTE: This must agree with the JNICALL definition in jni.h
+#ifdef WIN32
+#define FFI_JNI_ABI FFI_STDCALL
+#else
+#define FFI_JNI_ABI FFI_DEFAULT_ABI
+#endif
+
+ if (ffi_prep_cif (&jni_cif, FFI_JNI_ABI,
extra_args + arg_count, rtype,
jni_arg_types) != FFI_OK)
throw_internal_error ("ffi_prep_cif failed for JNI function");
diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog
index 8791dd4ec85..a1d33f68ef3 100644
--- a/libjava/testsuite/ChangeLog
+++ b/libjava/testsuite/ChangeLog
@@ -1,3 +1,188 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-06 Tom Tromey <tromey@redhat.com>
+
+ * libjava.lang/verify.java: New file.
+ * libjava.lang/verify.out: New file.
+
+2003-05-02 Tom Tromey <tromey@redhat.com>
+
+ PR java/10459:
+ * libjava.compile/pr10459_2.java: New file.
+ * libjava.compile/pr10459.java: New file.
+
+2003-05-01 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/10582:
+ * libjava.lang/assign.java: New file.
+ * libjava.lang/assign.out: New file.
+
+2003-04-16 Tom Tromey <tromey@redhat.com>
+
+ * libjava.mauve/xfails: Added some more failing tests.
+
+2003-04-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR middle-end/8866
+ * libjava.lang/PR8866.java: New test.
+
+2003-04-16 Andrew Haley <aph@redhat.com>
+
+ * libjava.lang/Throw_2.java (main): Make a successful test produce
+ some output.
+
+2003-03-10 Tom Tromey <tromey@redhat.com>
+
+ * libjava.lang/initfield.java: New file.
+ * libjava.lang/initfield.out: New file.
+
+2003-03-10 Tom Tromey <tromey@redhat.com>
+
+ * libjava.jacks/jacks.xfail: Updated to reflect reality.
+
+2003-03-02 Mark Wielaard <mark@klomp.org>
+
+ * libjava.mauve/xfails: Remove all AcuniaPropertiesTest failures
+
+2003-02-16 Mark Wielaard <mark@klomp.org>
+
+ * libjava.mauve/xfails: Add Class.reflect2 and String.getBytes FAILs.
+
+2003-02-15 Mark Wielaard <mark@klomp.org>
+
+ * lib/libjava.exp (test_libjava_from_javac): Use regsub not string map.
+ * libjava.mauve/mauve.exp (mauve_compute_uses): Likewise.
+ (test_mauve): Likewise.
+
+2003-02-14 Mark Wielaard <mark@klomp.org>
+
+ * lib/libjava.exp (test_libjava_from_javac): Don't create .o files
+ containing $ characters and always quote class files with "'"s.
+
+2003-02-14 Mark Wielaard <mark@klomp.org>
+
+ * libjava.mauve/mauve.exp (mauve_compute_uses): Add inner class
+ object files by changing all occurances of $ to ^.
+ (test_mauve): Replace ^ with $ for class file names and quote
+ them with "'"s.
+
+2003-02-13 Tom Tromey <tromey@redhat.com>
+
+ * libjava.mauve/xfails: Added entries for an unimplemented Class
+ method.
+
+2003-02-07 Mark Wielaard <mark@klomp.org>
+
+ * libjava.mauve/xfails: Add new entries for
+ gnu.testlet.java.text.CollationElementIterator.jdk11
+
+2003-02-03 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * libjava.jacks/jacks.exp (gcj_jacks_write): Set LD_LIBRARY_PATH
+ to find libgcc_s. Set JAVA_CLASSPATH to find libgcj.jar.
+
+2003-01-31 Mark Wielaard <mark@klomp.org>
+
+ * lib/libjava.exp (libjava_prune_warnings): Remove all unreachable
+ bytecode warnings.
+
+2003-01-28 Tom Tromey <tromey@redhat.com>
+
+ * libjava.jacks/jacks.xfail: More lexer tests now pass.
+
+2003-01-27 Tom Tromey <tromey@redhat.com>
+
+ * libjava.compile/consthrow.java: New file.
+ * libjava.compile/consthrow.xfail: New file.
+
+2003-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * libjava.lang/pr8823.xfail: New file, add "xfail-byte".
+
+2003-01-24 Ranjit Mathew <rmathew@hotmail.com>
+
+ * libjava.jni/calls.c (Java_calls_docall): Define with
+ JNIEXPORT and JNICALL method attributes.
+ * libjava.jni/field.c (Java_field_fetch): Likewise.
+ * libjava.jni/final_method.c (Java_final_1method_meth): Likewise.
+ * libjava.jni/findclass.c (Java_findclass_doit): Likewise.
+ * libjava.jni/invoke.c (Java_invoke_val): Likewise.
+ * libjava.jni/martin.c (Java_martin_myNative): Likewise.
+ * libjava.jni/noclass.c (Java_noclass_find_1it): Likewise.
+ * libjava.jni/overload.c (Java_overload_over__I): Likewise.
+ (Java_overload_over__II): Likewise.
+ * libjava.jni/register.c (JNI_OnLoad): Likewise.
+ * libjava.jni/simple_int.c (Java_simple_1int_nat): Likewise.
+ * libjava.jni/throwit.c (Java_throwit_throwit): Likewise.
+ * libjava.jni/virtual.c (Java_virtual_equals): Likewise.
+
+2003-01-21 Tom Tromey <tromey@redhat.com>
+
+ * libjava.jacks/jacks.xfail: All 8.4.3 tests and 9.4-modifier-10
+ now pass.
+
+2003-01-12 Tom Tromey <tromey@redhat.com>
+
+ Fix for PR libgcj/9139:
+ * lib/libjava.exp (find_javac): Put value of libgcj_jar into
+ return value when gcj is used.
+ * libjava.mauve/mauve.exp (test_mauve): Use libgcj_jar global.
+
+2003-01-03 Tom Tromey <tromey@redhat.com>
+
+ * libjava.compile/pr8712.java: New file, for PR java/8712.
+
+2003-01-01 Tom Tromey <tromey@redhat.com>
+
+ * libjava.compile/pr8955.java: New test, for PR java/8955.
+
+2002-12-19 Tom Tromey <tromey@redhat.com>
+
+ * libjava.jacks/jacks.xfail: Updated.
+
+2002-12-18 Tom Tromey <tromey@redhat.com>
+
+ * libjava.lang/pr8945.java: New file.
+ * libjava.lang/pr8945.out: New file.
+
2002-12-12 Tom Tromey <tromey@redhat.com>
* libjava.loader/loader.exp (gcj_loader_test_one): Use
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index e5ed9768763..56dbd5c8b06 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -65,6 +65,7 @@ target_alias = @target_alias@
target_triplet = @target@
AR = @AR@
AS = @AS@
+BACKTRACESPEC = @BACKTRACESPEC@
CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@
@@ -86,6 +87,7 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
INCLTDL = @INCLTDL@
INTERPRETER = @INTERPRETER@
JC1GCSPEC = @JC1GCSPEC@
@@ -129,6 +131,9 @@ here = @here@
libgcj_basedir = @libgcj_basedir@
mkinstalldirs = @mkinstalldirs@
tool_include_dir = @tool_include_dir@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign dejagnu
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
index a807c4c8d60..6be5ec67662 100644
--- a/libjava/testsuite/lib/libjava.exp
+++ b/libjava/testsuite/lib/libjava.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
load_lib "libgloss.exp"
@@ -18,9 +18,15 @@ proc libjava_prune_warnings {text} {
set len [llength $tlist]
for {set i [expr {$len - 1}]} {$i >= 2} {incr i -1} {
if {[string match "*unreachable bytecode*" [lindex $tlist $i]]} {
- # Delete this line and the previous two lines.
- set tlist [lreplace $tlist [expr {$i - 2}] $i]
- incr i -2
+ # Delete this line, all other unreachable warnings and the previous
+ # two lines containing the method and class.
+ set j [expr {$i - 1}]
+ while {[string match "*unreachable bytecode*" [lindex $tlist $j]]} {
+ incr j -1
+ }
+ incr j -1
+ set tlist [lreplace $tlist $j $i]
+ set i $j
}
}
return [join $tlist \n]
@@ -74,7 +80,7 @@ proc find_gcjh {} {
}
proc find_javac {} {
- global SUN_JAVAC GCJ_UNDER_TEST env
+ global SUN_JAVAC GCJ_UNDER_TEST env libgcj_jar
# If JDK doesn't run on your platform but some other
# JDK-compatible javac does, you may set SUN_JAVAC to point to it.
# One of the most important properties of a SUN_JAVAC is that it
@@ -87,7 +93,7 @@ proc find_javac {} {
if {[info exists env(SUN_JAVAC)]} {
set SUN_JAVAC $env(SUN_JAVAC)
} else {
- set SUN_JAVAC "$GCJ_UNDER_TEST -C"
+ set SUN_JAVAC "$GCJ_UNDER_TEST -C -I$libgcj_jar"
}
}
return $SUN_JAVAC
@@ -781,8 +787,10 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
if {$mode == "compile"} {
foreach c_file $class_files {
set executable [file rootname [file tail $c_file]].o
+ # Don't write files which contain $ chars.
+ regsub -all "\\$" $executable "\^" executable
set x [libjava_prune_warnings \
- [libjava_tcompile $c_file "$executable" $type $args]]
+ [libjava_tcompile '$c_file' "$executable" $type $args]]
lappend removeList $executable
if {$x != ""} {
break
diff --git a/libjava/testsuite/libjava.compile/consthrow.java b/libjava/testsuite/libjava.compile/consthrow.java
new file mode 100644
index 00000000000..02d1afc01dd
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/consthrow.java
@@ -0,0 +1,6 @@
+public class consthrow
+{
+ public consthrow () throws Object
+ {
+ }
+}
diff --git a/libjava/testsuite/libjava.compile/consthrow.xfail b/libjava/testsuite/libjava.compile/consthrow.xfail
new file mode 100644
index 00000000000..f34b59d3181
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/consthrow.xfail
@@ -0,0 +1,2 @@
+no-link
+shouldfail
diff --git a/libjava/testsuite/libjava.compile/pr10459.java b/libjava/testsuite/libjava.compile/pr10459.java
new file mode 100644
index 00000000000..5bcc09c7326
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/pr10459.java
@@ -0,0 +1,10 @@
+public class pr10459
+{
+ pr10459 x;
+
+ public void aMethod() throws Throwable
+ {
+ for (; ;x.clone().clone())
+ ;
+ }
+}
diff --git a/libjava/testsuite/libjava.compile/pr10459_2.java b/libjava/testsuite/libjava.compile/pr10459_2.java
new file mode 100644
index 00000000000..5b878ca0c27
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/pr10459_2.java
@@ -0,0 +1,10 @@
+public class pr10459_2
+{
+ pr10459_2 x;
+
+ public void aMethod() throws Throwable
+ {
+ for (; ;x.clone().clone())
+ break;
+ }
+}
diff --git a/libjava/testsuite/libjava.compile/pr8712.java b/libjava/testsuite/libjava.compile/pr8712.java
new file mode 100644
index 00000000000..7a6eb754d90
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/pr8712.java
@@ -0,0 +1,7 @@
+public class pr8712
+{
+ boolean x(pr8712 a)
+ {
+ return (!(a instanceof pr8712));
+ }
+}
diff --git a/libjava/testsuite/libjava.compile/pr8955.java b/libjava/testsuite/libjava.compile/pr8955.java
new file mode 100644
index 00000000000..ae78f503f9c
--- /dev/null
+++ b/libjava/testsuite/libjava.compile/pr8955.java
@@ -0,0 +1,13 @@
+public class pr8955
+{
+ static final int val = Integer.MIN_VALUE;
+ void foo()
+ {
+ switch(1) {
+ case val:
+ break;
+ case 1:
+ break;
+ }
+ }
+}
diff --git a/libjava/testsuite/libjava.jacks/jacks.exp b/libjava/testsuite/libjava.jacks/jacks.exp
index b7f87eb6316..d8611f5e438 100644
--- a/libjava/testsuite/libjava.jacks/jacks.exp
+++ b/libjava/testsuite/libjava.jacks/jacks.exp
@@ -14,6 +14,9 @@ proc gcj_jacks_setup_xfail {ary} {
proc gcj_jacks_write {filename} {
global GCJ_UNDER_TEST
+ global libgcj_jar
+ global libjava_libgcc_s_path
+ global original_ld_library_path
set gcjl [split $GCJ_UNDER_TEST]
set gcj_cmd [lindex $gcjl 0]
@@ -22,7 +25,7 @@ proc gcj_jacks_write {filename} {
set fd [open $filename w]
puts $fd "set JAVAC $gcj_cmd"
- puts $fd "set JAVA_CLASSPATH \"\""
+ puts $fd "set JAVA_CLASSPATH \"$libgcj_jar\""
puts $fd "set JAVAC_FLAGS [list $rest]"
puts $fd "set JAVA [list [libjava_find_gij]]"
puts $fd "set JAVA_FLAGS \"\""
@@ -32,6 +35,8 @@ proc gcj_jacks_write {filename} {
# "Time-consuming JVM limitation tests".
# puts $fd "set tcltest::testConstraints(jvm) 1"
close $fd
+
+ setenv LD_LIBRARY_PATH $libjava_libgcc_s_path:$original_ld_library_path
}
proc gcj_jacks_parse {file} {
diff --git a/libjava/testsuite/libjava.jacks/jacks.xfail b/libjava/testsuite/libjava.jacks/jacks.xfail
index 8e2ebe77f0e..c4999c234c7 100644
--- a/libjava/testsuite/libjava.jacks/jacks.xfail
+++ b/libjava/testsuite/libjava.jacks/jacks.xfail
@@ -7,7 +7,6 @@
14.7-shadow-3
14.3-1
14.3-scope-2
-14.3-scope-3
14.3-scope-4
14.3-scope-5
14.3-scope-9
@@ -151,12 +150,8 @@
8.1.2-enclosing-4
8.1.2-enclosing-5
8.1.3-object-3
-8.1.3-superclass-10
-8.1.3-superclass-12
-8.1.3-superclass-13
-8.1.4-superinterface-8
-8.1.4-superinterface-10
-8.1.4-superinterface-11
+8.1.3-superclass-5
+8.1.3-superclass-6
8.2-accessibility-inherited-member-5
8.8.5.1-example-1
8.8.5.1-example-3
@@ -171,7 +166,7 @@
8.8.5.1-qualified-15
8.8.7-inaccessible-default-constructor-toplevel-2
8.8.7-accessible-default-constructor-inner-18
-8.8.7-accessible-default-constructor-inner-20
+8.8.7-accessible-default-constructor-inner-26
8.3-inheritance-1
8.3-inheritance-2
8.3-inheritance-3
@@ -218,9 +213,14 @@
8.6-checked-exception-10
8.6-checked-exception-11
8.6-checked-exception-12
+8.6-complete-1
+8.6-complete-4
+8.6-complete-5
8.6-abrupt-1
8.6-abrupt-4
-8.5-inheritance-4
+8.5-inheritance-1
+8.5-inheritance-2
+8.5-inheritance-3
8.5-inheritance-6
8.5.2-non-static-member-usage-2
8.4.6-miranda-2
@@ -257,11 +257,9 @@
8.4.6.3-signature-10
8.4.6.3-signature-12
8.4.6.3-signature-15
-8.4.3-native-9
-8.4.3-native-10
-8.4.3-bad-1
-8.4.3-bad-2
8.7-abrupt-1
+8.7-complete-1
+8.7-complete-3
5.1.3-dti-1
5.1.3-dti-2
5.1.3-fti-1
@@ -428,13 +426,19 @@
15.9.5.1-exception-3
15.9.5.1-exception-4
15.9.3-choosing-4
+15.9.1-unqualified-anonymous-2
+15.9.1-unqualified-anonymous-4
+15.9.1-unqualified-anonymous-5
+15.9.1-unqualified-anonymous-12
+15.9.1-unqualified-anonymous-14
+15.9.1-unqualified-anonymous-15
15.9.1-unqualified-anonymous-23
-15.9.1-unqualified-anonymous-25
+15.9.1-unqualified-anonymous-24
15.9.1-unqualified-anonymous-26
15.9.1-unqualified-anonymous-27
15.9.1-qualified-anonymous-2
-15.9.1-qualified-anonymous-6
-15.9.1-qualified-anonymous-7
+15.9.1-qualified-anonymous-4
+15.9.1-qualified-anonymous-5
15.9.1-qualified-anonymous-10
15.9.1-qualified-anonymous-12
15.9.1-qualified-anonymous-13
@@ -445,18 +449,20 @@
15.9.1-qualified-anonymous-22
15.9.1-qualified-anonymous-26
15.9.1-qualified-anonymous-28
-15.9.1-unqualified-concrete-6
-15.9.1-unqualified-concrete-7
+15.9.1-unqualified-concrete-2
+15.9.1-unqualified-concrete-4
+15.9.1-unqualified-concrete-5
15.9.1-unqualified-concrete-10
+15.9.1-unqualified-concrete-14
15.9.1-unqualified-concrete-15
-15.9.1-qualified-concrete-6
-15.9.1-qualified-concrete-7
+15.9.1-qualified-concrete-4
+15.9.1-qualified-concrete-5
15.9.1-qualified-concrete-10
15.9.1-qualified-concrete-12
15.9.1-qualified-concrete-14
15.9.1-qualified-concrete-16
15.9.1-qualified-concrete-20
-15.9.1-qualified-concrete-23
+15.9.1-qualified-concrete-24
15.28-primitive-9
15.28-primitive-15
15.28-primitive-16
@@ -574,6 +580,7 @@
15.14.2-final-3
15.14.1-final-2
15.14.1-final-3
+15.8.2-synthetic-1
15.8.2-type-11
15.8.2-type-12
15.8.2-type-13
@@ -589,7 +596,6 @@
15.15.2-final-3
15.15.1-final-2
15.15.1-final-3
-9.4-modifier-10
9.4.1-conflict-2
9.3.1-init-1
9.3.1-illegal-forward-1
@@ -601,9 +607,6 @@
9.1.1-in-interface-3
9.1.1-in-interface-9
9.1.1-in-interface-16
-9.1.2-interface-3
-9.1.2-interface-5
-9.1.2-interface-6
9.1.2-supertype-1
9.2-implicit-2
9.2-implicit-3
@@ -616,46 +619,7 @@
9.2-implicit-17
9.2-implicit-18
9.2-implicit-19
-3.7-line-number-1
-3.7-line-number-2
-3.7-line-number-3
-3.7-line-number-4
-3.7-line-number-5
-3.7-line-number-6
-3.7-line-number-7
-3.7-line-number-8
-3.7-line-number-9
-3.7-line-number-10
-3.7-line-number-11
-3.7-line-number-12
-3.7-line-number-13
-3.7-line-number-14
3.2-valid-1
-3.4-line-number-1
-3.4-line-number-2
-3.4-line-number-3
-3.4-line-number-4
-3.4-line-number-5
-3.4-line-number-6
-3.4-line-number-7
-3.4-line-number-8
-3.4-line-number-9
-3.4-line-number-10
-3.4-line-number-11
-3.4-line-number-12
-3.4-line-number-13
-3.4-line-number-14
-3.4-line-number-15
-3.4-line-number-16
-3.4-line-number-17
-3.4-line-number-18
-3.4-line-number-19
-3.4-line-number-20
-3.4-line-number-21
-3.4-line-number-22
-3.4-line-number-23
-3.4-line-number-24
-3.4-line-number-25
3.10.2-round-6
3.10.2-round-7
3.10.2-round-9
@@ -666,10 +630,6 @@
3.10.2-double-14
3.10.1-invalid-3
3.10.1-invalid-4
-3.3-invalid-5
-3.3-invalid-6
-3.3-invalid-7
-3.3-invalid-8
6.6.2.2-protected-creation-3
6.6.2.1-protected-instance-field-3
6.6.2.1-protected-instance-field-4
@@ -680,10 +640,6 @@
6.6.2.1-protected-instance-method-6
6.6.2.1-protected-instance-method-7
6.6.2.1-protected-type-2
-6.6.2.1-protected-type-4
-6.6.2.1-protected-type-5
-6.6.2.1-protected-type-7
-6.6.2.1-protected-type-8
6.6.1-8
6.6.1-11
6.6.1-array-2
@@ -711,18 +667,19 @@
6.5.6.1-local-4
6.5.6.1-field-6
6.5.6.1-explicit-constructor-2
-6.5.4.2-qualified-1
6.5.4.1-simple-6
-6.5.4.1-simple-8
+6.5.4.1-simple-10
+6.5.4.1-simple-11
6.5.1-type-15
6.5.1-type-16
-6.5.1-type-19
-6.5.1-typeorpackage-1
6.5.1-typeorpackage-2
+6.5.5.2-type-4
6.5.5.2-type-5
6.5.5.2-type-6
6.5.5.2-type-7
6.5.5.2-type-8
+6.5.5.1-import-2
+6.5.5.1-import-3
6.5.5.1-nested-4
6.5.5.1-nested-7
6.5.5.1-nested-8
@@ -733,20 +690,29 @@
6.5.5.1-nested-19
6.5.5.1-nested-20
6.5.5.1-nested-21
-6.5.5.1-nested-22
6.5.5.1-nested-23
6.3-1
+7.4.2-2
7.5.1-canonical-3
-7.5.1-accessible-1
+7.5.1-accessible-4
+7.5.1-accessible-5
7.5.1-duplicate-4
+7.5.1-shadow-2
+7.5.2-canonical-2
7.5.2-canonical-3
7.5.2-accessible-1
7.5.2-accessible-3
+7.5.2-accessible-4
+7.5.2-duplicate-1
+7.5.2-duplicate-2
7.5.2-duplicate-3
+7.5.2-duplicate-4
7.1-named-5
7.1-named-6
7.1-named-7
+7.6-optional-restrictions-1
7.6-unnamed-scope-1
+7.6-unnamed-scope-2
4.5.4-static-1
4.5.4-static-5
4.5.4-parameter-2
@@ -802,10 +768,10 @@ non-jls-zip-2
13.1-runtime-constant-1
13.1-runtime-constant-3
13.1-runtime-field-1
+13.4.8-constant-runtime-1
14-runtime-jump-1
14-runtime-jump-2
14.3.1-runtime-3
-14.19.2-runtime-try-1
8.1.2-runtime-1
6.6.1-runtime-privateconstructor-1
8.8.3-runtime-inner-4
@@ -831,11 +797,11 @@ non-jls-zip-2
15.11.1-runtime-static-1
15.11.1-runtime-static-2
15.11.1-runtime-static-3
+15.11.1-runtime-static-4
15.12.3-runtime-mode-1
15.12.3-runtime-mode-2
15.12.3-runtime-mode-3
15.12.3-runtime-mode-4
-15.12.3-runtime-mode-5
15.12.3-runtime-mode-6
15.12.4.1-runtime-static-1
15.12.4.1-runtime-static-2
@@ -846,3 +812,4 @@ non-jls-zip-2
15.20-2-runtime-1
15.15-runtime-3
15.15-runtime-4
+14.19.2-runtime-try-1
diff --git a/libjava/testsuite/libjava.jni/calls.c b/libjava/testsuite/libjava.jni/calls.c
index 080e5271cfb..709e55d13ba 100644
--- a/libjava/testsuite/libjava.jni/calls.c
+++ b/libjava/testsuite/libjava.jni/calls.c
@@ -1,7 +1,7 @@
#include <stdio.h>
#include <calls.h>
-jint
+JNIEXPORT jint JNICALL
Java_calls_docall (JNIEnv *env, jobject _this)
{
jmethodID method;
@@ -47,6 +47,12 @@ Java_calls_docall (JNIEnv *env, jobject _this)
if (l != 2033)
++fails;
+ method = (*env)->GetStaticMethodID (env, klass, "longpb_f", "(BJBJBJ)J");
+ l = (*env)->CallStaticLongMethod (env, klass, method, (jbyte) 13, (jlong) 3,
+ (jbyte) 13, (jlong) 3, (jbyte) 13, (jlong) 4);
+ if (l != 3033)
+ ++fails;
+
method = (*env)->GetMethodID (env, klass, "void_f", "()V");
(*env)->CallVoidMethod (env, _this, method);
diff --git a/libjava/testsuite/libjava.jni/calls.java b/libjava/testsuite/libjava.jni/calls.java
index b98017c0c13..19c33be2a83 100644
--- a/libjava/testsuite/libjava.jni/calls.java
+++ b/libjava/testsuite/libjava.jni/calls.java
@@ -37,6 +37,12 @@ public class calls extends base
return q + 2023;
}
+ public static long longpb_f (byte b1, long q1, byte b2, long q2,
+ byte b3, long q3)
+ {
+ return q1 + q2 + q3 + 3023;
+ }
+
public void void_f ()
{
System.out.println ("void");
diff --git a/libjava/testsuite/libjava.jni/field.c b/libjava/testsuite/libjava.jni/field.c
index 358c293e7c5..bce0cc896e6 100644
--- a/libjava/testsuite/libjava.jni/field.c
+++ b/libjava/testsuite/libjava.jni/field.c
@@ -1,7 +1,7 @@
#include <jni.h>
#include <field.h>
-jobjectArray
+JNIEXPORT jobjectArray JNICALL
Java_field_fetch (JNIEnv *env, jobject this)
{
jclass cls;
diff --git a/libjava/testsuite/libjava.jni/final_method.c b/libjava/testsuite/libjava.jni/final_method.c
index 82977374bcb..76d5ae52827 100644
--- a/libjava/testsuite/libjava.jni/final_method.c
+++ b/libjava/testsuite/libjava.jni/final_method.c
@@ -1,6 +1,6 @@
#include <final_method.h>
-jstring
+JNIEXPORT jstring JNICALL
Java_final_1method_meth (JNIEnv *env, jobject thisv)
{
return (*env)->NewStringUTF (env, "zardoz has spoken");
diff --git a/libjava/testsuite/libjava.jni/findclass.c b/libjava/testsuite/libjava.jni/findclass.c
index 9a71508ab3f..1a58a55fee4 100644
--- a/libjava/testsuite/libjava.jni/findclass.c
+++ b/libjava/testsuite/libjava.jni/findclass.c
@@ -2,7 +2,7 @@
#include <findclass.h>
-jclass
+JNIEXPORT jclass JNICALL
Java_findclass_doit (JNIEnv *env, jclass klass, jstring name)
{
const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
diff --git a/libjava/testsuite/libjava.jni/invoke.c b/libjava/testsuite/libjava.jni/invoke.c
index 35a446eae25..c2b78d239cb 100644
--- a/libjava/testsuite/libjava.jni/invoke.c
+++ b/libjava/testsuite/libjava.jni/invoke.c
@@ -1,6 +1,6 @@
#include <invoke.h>
-jint
+JNIEXPORT jint JNICALL
Java_invoke_val (JNIEnv *env, jclass klass)
{
return 23;
diff --git a/libjava/testsuite/libjava.jni/martin.c b/libjava/testsuite/libjava.jni/martin.c
index 947bd452c04..0fbb8d0aa73 100644
--- a/libjava/testsuite/libjava.jni/martin.c
+++ b/libjava/testsuite/libjava.jni/martin.c
@@ -2,7 +2,8 @@
#include "martin.h"
#include <stdio.h>
-void Java_martin_myNative(JNIEnv* env, jobject this, jstring s)
+JNIEXPORT void JNICALL
+Java_martin_myNative(JNIEnv* env, jobject this, jstring s)
{
jclass cls;
jfieldID fid;
diff --git a/libjava/testsuite/libjava.jni/noclass.c b/libjava/testsuite/libjava.jni/noclass.c
index 5f2caf428ae..87c649c30e6 100644
--- a/libjava/testsuite/libjava.jni/noclass.c
+++ b/libjava/testsuite/libjava.jni/noclass.c
@@ -1,6 +1,6 @@
#include <noclass.h>
-void
+JNIEXPORT void JNICALL
Java_noclass_find_1it (JNIEnv *env, jclass k)
{
/* We cause an exception by asking for a class we know does not
diff --git a/libjava/testsuite/libjava.jni/overload.c b/libjava/testsuite/libjava.jni/overload.c
index d171fc3ac9b..4e7a2d9289b 100644
--- a/libjava/testsuite/libjava.jni/overload.c
+++ b/libjava/testsuite/libjava.jni/overload.c
@@ -1,13 +1,13 @@
#include <overload.h>
-jint
+JNIEXPORT jint JNICALL
Java_overload_over__I (JNIEnv *env, jclass klass, jint val)
{
return val;
}
-jint
+JNIEXPORT jint JNICALL
Java_overload_over__II (JNIEnv *env, jclass klass, jint one, jint two)
{
return one + two;
diff --git a/libjava/testsuite/libjava.jni/register.c b/libjava/testsuite/libjava.jni/register.c
index 738182cf0f6..0490902420e 100644
--- a/libjava/testsuite/libjava.jni/register.c
+++ b/libjava/testsuite/libjava.jni/register.c
@@ -8,7 +8,7 @@ some_random_name (JNIEnv *env, jclass k, jint v)
return v - 1;
}
-jint
+JNIEXPORT jint JNICALL
JNI_OnLoad (JavaVM *vm, void *nothing)
{
JNIEnv *env;
diff --git a/libjava/testsuite/libjava.jni/simple_int.c b/libjava/testsuite/libjava.jni/simple_int.c
index a86f2d2babd..a7c64b0cd5f 100644
--- a/libjava/testsuite/libjava.jni/simple_int.c
+++ b/libjava/testsuite/libjava.jni/simple_int.c
@@ -1,6 +1,6 @@
#include <simple_int.h>
-jint
+JNIEXPORT jint JNICALL
Java_simple_1int_nat (JNIEnv *env, jclass klass, jint val)
{
return 2 * val;
diff --git a/libjava/testsuite/libjava.jni/throwit.c b/libjava/testsuite/libjava.jni/throwit.c
index 0b02459b464..34a3ca07676 100644
--- a/libjava/testsuite/libjava.jni/throwit.c
+++ b/libjava/testsuite/libjava.jni/throwit.c
@@ -1,7 +1,7 @@
#include <stdlib.h>
#include <throwit.h>
-void
+JNIEXPORT void JNICALL
Java_throwit_throwit (JNIEnv *env, jclass klass, jstring name,
jboolean is_new)
{
diff --git a/libjava/testsuite/libjava.jni/virtual.c b/libjava/testsuite/libjava.jni/virtual.c
index bda837df102..0246970835b 100644
--- a/libjava/testsuite/libjava.jni/virtual.c
+++ b/libjava/testsuite/libjava.jni/virtual.c
@@ -1,6 +1,6 @@
#include <virtual.h>
-jboolean
+JNIEXPORT jboolean JNICALL
Java_virtual_equals (JNIEnv *env, jobject thisv, jobject other)
{
return JNI_FALSE;
diff --git a/libjava/testsuite/libjava.lang/PR8866.java b/libjava/testsuite/libjava.lang/PR8866.java
new file mode 100644
index 00000000000..fa620667445
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/PR8866.java
@@ -0,0 +1,22 @@
+public class PR8866
+{
+ public static void main (String args[])
+ {
+ String attTypeString = "";
+
+ switch (args.length) {
+ case 1:
+ attTypeString = "string";
+ case 4:
+ attTypeString = "ID";;
+ case 5:
+ attTypeString = "IDREF";;
+ case 6:
+ attTypeString = "NMTOKEN";;
+ case 7:
+ attTypeString = "NOTATION";;
+ default:
+ ;
+ }
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/Throw_2.java b/libjava/testsuite/libjava.lang/Throw_2.java
index 353ae974662..6d1d0e6b449 100644
--- a/libjava/testsuite/libjava.lang/Throw_2.java
+++ b/libjava/testsuite/libjava.lang/Throw_2.java
@@ -34,6 +34,7 @@ public class Throw_2
}
catch (NullPointerException _)
{
+ System.out.println ("1");
}
catch (Throwable _)
{
@@ -48,6 +49,7 @@ public class Throw_2
}
catch (NullPointerException _)
{
+ System.out.println ("2");
}
catch (Throwable _)
{
diff --git a/libjava/testsuite/libjava.lang/Throw_2.out b/libjava/testsuite/libjava.lang/Throw_2.out
index e69de29bb2d..1191247b6d9 100644
--- a/libjava/testsuite/libjava.lang/Throw_2.out
+++ b/libjava/testsuite/libjava.lang/Throw_2.out
@@ -0,0 +1,2 @@
+1
+2
diff --git a/libjava/testsuite/libjava.lang/assign.java b/libjava/testsuite/libjava.lang/assign.java
new file mode 100644
index 00000000000..ff288c93b79
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/assign.java
@@ -0,0 +1,19 @@
+// Test for an array assignment bug we've had.
+
+public class assign
+{
+ public static class base
+ {
+ }
+
+ public static class derived extends base
+ {
+ }
+
+ public static void main(String[] args)
+ {
+ base[][] x1 = new base[3][3];
+ derived[] x2 = new derived[3];
+ x1[0] = x2;
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/assign.out b/libjava/testsuite/libjava.lang/assign.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/assign.out
diff --git a/libjava/testsuite/libjava.lang/initfield.java b/libjava/testsuite/libjava.lang/initfield.java
new file mode 100644
index 00000000000..4ee6154806d
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/initfield.java
@@ -0,0 +1,20 @@
+// gcj generated buggy code when we reference a field of a
+// non-constant member that we inherit from an interface.
+
+interface iface
+{
+ final value x = new value();
+}
+
+final class value
+{
+ Object field = "maude";
+}
+
+public class initfield implements iface
+{
+ public static void main(String[] args)
+ {
+ System.out.println(x.field);
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/initfield.out b/libjava/testsuite/libjava.lang/initfield.out
new file mode 100644
index 00000000000..b3668c4d4d6
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/initfield.out
@@ -0,0 +1 @@
+maude
diff --git a/libjava/testsuite/libjava.lang/pr8823.xfail b/libjava/testsuite/libjava.lang/pr8823.xfail
new file mode 100644
index 00000000000..81d6df0a027
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/pr8823.xfail
@@ -0,0 +1 @@
+xfail-byte
diff --git a/libjava/testsuite/libjava.lang/pr8945.java b/libjava/testsuite/libjava.lang/pr8945.java
new file mode 100644
index 00000000000..9c5dce89a4a
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/pr8945.java
@@ -0,0 +1,9 @@
+public class pr8945
+{
+ public static void main(String[] args)
+ {
+ String foo = "hello";
+ int pos = 3;
+ System.out.println(foo.substring(pos,++pos));
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/pr8945.out b/libjava/testsuite/libjava.lang/pr8945.out
new file mode 100644
index 00000000000..1f9d725a9de
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/pr8945.out
@@ -0,0 +1 @@
+l
diff --git a/libjava/testsuite/libjava.lang/verify.java b/libjava/testsuite/libjava.lang/verify.java
new file mode 100644
index 00000000000..71b4b5c43a7
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/verify.java
@@ -0,0 +1,20 @@
+// Test for a verification regression.
+
+interface I { }
+class D implements I { }
+class E extends D { }
+
+public class verify
+{
+ static void call(I v) { }
+
+ static void doit (Object x)
+ {
+ call ((x instanceof I) ? (I) x : new E ());
+ }
+
+ public static void main(String[] args)
+ {
+ doit(null);
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/verify.out b/libjava/testsuite/libjava.lang/verify.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/verify.out
diff --git a/libjava/testsuite/libjava.mauve/mauve.exp b/libjava/testsuite/libjava.mauve/mauve.exp
index 1ca2884249c..cdc7e21f2dd 100644
--- a/libjava/testsuite/libjava.mauve/mauve.exp
+++ b/libjava/testsuite/libjava.mauve/mauve.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation.
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation.
# Written by Tom Tromey <tromey@cygnus.com>.
# Incorporate Mauve into libjava's DejaGNU test suite framework.
@@ -46,6 +46,13 @@ proc mauve_compute_uses {aName} {
foreach file $ufiles {
set file [file rootname $file].o
lappend uses($item) $file
+ # Now add all inner classes
+ foreach inner [glob -nocomplain [file rootname $file]$*.class] {
+ # Prevent excessive escaping by replacing $ with a ^ in the .o name
+ set inner [file rootname $inner].o
+ regsub -all "\\$" $inner "\^" inner
+ lappend uses($item) $inner
+ }
}
}
@@ -86,25 +93,25 @@ proc test_mauve {} {
set full_srcdir [pwd]
cd $here/mauve-build
- global env
- global GCJ_UNDER_TEST
- global TOOL_EXECUTABLE
+ global env libgcj_jar
+ global GCJ_UNDER_TEST
+ global TOOL_EXECUTABLE
- if ![info exists GCJ_UNDER_TEST] {
- if [info exists TOOL_EXECUTABLE] {
- set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
- } else {
- if [info exists env(GCJ)] {
- set GCJ_UNDER_TEST env(GCJ)
- } else {
- set GCJ_UNDER_TEST "[find_gcj]"
- }
- }
+ if ![info exists GCJ_UNDER_TEST] {
+ if [info exists TOOL_EXECUTABLE] {
+ set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
+ } else {
+ if [info exists env(GCJ)] {
+ set GCJ_UNDER_TEST env(GCJ)
+ } else {
+ set GCJ_UNDER_TEST "[find_gcj]"
+ }
}
+ }
- # Append -B and -I so that libgcj.spec and libgcj.zip are found
- # before they're installed.
- set env(GCJ) "$GCJ_UNDER_TEST -B$objdir/../ -I$objdir/../libgcj.jar"
+ # Append -B and -I so that libgcj.spec and libgcj.jar are found
+ # before they're installed.
+ set env(GCJ) "$GCJ_UNDER_TEST -B$objdir/../ -I$libgcj_jar"
if {[catch {
system "$env(MAUVEDIR)/configure --with-gcj 2>&1"
@@ -179,9 +186,11 @@ proc test_mauve {} {
foreach obj $uses($file) {
if {! [file exists $obj]} then {
verbose "compiling $obj for test of $class"
+ # The .class file does contain a $, but we can quote it between "'"s.
set srcfile [file rootname $obj].class
+ regsub -all "\\^" $srcfile "\$" srcfile
set x [libjava_prune_warnings \
- [target_compile [pwd]/$srcfile $obj object $compile_args]]
+ [libjava_tcompile '[pwd]/$srcfile' $obj object $compile_args]]
if {$x != ""} then {
fail "Compile $obj for $class"
set ok 0
@@ -196,7 +205,7 @@ proc test_mauve {} {
}
set x [libjava_prune_warnings \
- [target_compile [concat $uses($file) $objlist] \
+ [libjava_tcompile [concat $uses($file) $objlist] \
$Executable executable $link_args]]
if {$x != ""} then {
set proc_ok 0
diff --git a/libjava/testsuite/libjava.mauve/xfails b/libjava/testsuite/libjava.mauve/xfails
index 270c28a0378..c96d4a42d59 100644
--- a/libjava/testsuite/libjava.mauve/xfails
+++ b/libjava/testsuite/libjava.mauve/xfails
@@ -25,8 +25,25 @@ FAIL: gnu.testlet.java.lang.Character.getType (number 20)
FAIL: gnu.testlet.java.lang.Character.getType (number 22)
FAIL: gnu.testlet.java.lang.Class.ClassTest: Error: test_getClassLoader failed - 1 (number 1)
FAIL: gnu.testlet.java.lang.Class.ClassTest: Error: test_getClassLoader failed - 2 (number 1)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 2)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 3)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 5)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 3)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 4)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 5)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 1)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 2)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 3)
FAIL: gnu.testlet.java.lang.Double.DoubleTest: Error: test_intValue returned wrong results CYGNUS: Float to int conversions - 1 (number 1)
FAIL: gnu.testlet.java.lang.Float.FloatTest: Error: test_intValue returned wrong results - 1 (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UTF-16") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeBig") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeBigUnmarked") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeLittle") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeLittleUnmarked") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes14: String.getBytes("ISO8859_15") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes14: String.getBytes("UTF-16BE") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes14: String.getBytes("UTF-16LE") (number 1)
FAIL: gnu.testlet.java.text.AttributedString.Test: Attribute key count (number 1)
FAIL: gnu.testlet.java.text.DateFormatSymbols.Test: patterns (number 2)
FAIL: gnu.testlet.java.text.SimpleDateFormat.Test: equals() (number 1)
@@ -37,6 +54,40 @@ FAIL: gnu.testlet.java.text.SimpleDateFormat.regress: EDT (number 1)
FAIL: gnu.testlet.java.text.SimpleDateFormat.regress: EST (number 1)
FAIL: gnu.testlet.java.text.SimpleDateFormat.regress: PDT (number 1)
FAIL: gnu.testlet.java.text.DateFormatSymbols.Test: invalid locale (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: CollationElementIterator (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 0 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 1 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 10 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 11 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 12 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 13 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 2 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 3 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 4 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 5 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 6 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 7 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 8 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: next() 9 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 0 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 1 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 10 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 11 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 12 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 13 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 2 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 3 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 4 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 5 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 6 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 7 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: primaryOrder() 8 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: secondaryOrder() 12 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: secondaryOrder() 4 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: secondaryOrder() 5 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: secondaryOrder() 7 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: secondaryOrder() 9 (number 1)
+FAIL: gnu.testlet.java.text.CollationElementIterator.jdk11: tertiaryOrder() 10 (number 1)
FAIL: gnu.testlet.java.net.ServerSocket.ServerSocketTest: Error : test_params failed - 5getInetAddress did not return proper values (number 1)
FAIL: gnu.testlet.java.net.Socket.SocketTest: Error : test_BasicServer failed - 11 exception was thrown :Illegal seek (number 1)
FAIL: gnu.testlet.java.net.URLConnection.URLConnectionTest: Error in test_Basics - 2 should not have raised Throwable here (number 1)
@@ -49,10 +100,31 @@ FAIL: gnu.testlet.java.net.URL.URLTest: new URL(string) (number 18)
FAIL: gnu.testlet.java.net.URL.URLTest: new URL(protocol, host, file) (number 26)
FAIL: gnu.testlet.java.net.URL.URLTest: new URL(protocol, host, file) (number 54)
FAIL: gnu.testlet.java.net.MulticastSocket.MulticastSocketTest: joinGroup() twice. (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: should throw NullPointerException -- 1 (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: v does not contain:$longvalue=I'mtryingtogiveavaluelongerthen40characters$ (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: should throw NullPointerException -- 1 (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: all elements are the same (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: checkvalue -- got:$ents=$ (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: checkvalue -- got:$dog=nocat $ (number 1)
-FAIL: gnu.testlet.java.util.Properties.AcuniaPropertiesTest: check if all elements were found -- got: [dog=no\cat ] (number 1)
+FAIL: gnu.testlet.java.io.File.jdk11: getCanonicalPath () (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.InputTest: gnu.testlet.java.io.ObjectInputOutput.Test$GetPutField (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.OutputTest: Serializable: gnu.testlet.java.io.ObjectInputOutput.Test$Extern () (number 2)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.OutputTest: Serializable: test(str=null, x=0) (number 2)
+FAIL: gnu.testlet.java.io.OutputStreamWriter.jdk11: OutputStreamWriter(writer, encoding) (number 1)
+FAIL: gnu.testlet.java.io.OutputStreamWriter.jdk11: OutputStreamWriter(writer, encoding) // alias (number 1)
+FAIL: gnu.testlet.java.lang.Double.DoubleTest: Error: test_shortbyteValue failed - 5 (number 1)
+FAIL: gnu.testlet.java.lang.Float.FloatTest: Error: test_shortbyteValue failed - 5 (number 1)
+FAIL: gnu.testlet.java.net.DatagramSocket.DatagramSocketTest2: Expected IOException (number 1)
+FAIL: gnu.testlet.java.net.Socket.SocketTest: Error : test_params failed - 1 get port did not return proper values (number 1)
+FAIL: gnu.testlet.java.net.Socket.jdk13: unexpected error: Success (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: getHours (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: getMinutes (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: getSeconds (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: setHours (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: setMinutes (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: setSeconds (number 1)
+FAIL: gnu.testlet.java.sql.Date.DateTest: valueOf (number 1)
+FAIL: gnu.testlet.java.sql.DriverManager.DriverManagerTest: getDriver (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: getDate (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: getDay (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: getMonth (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: getYear (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: setDate (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: setMonth (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: setYear (number 1)
+FAIL: gnu.testlet.java.sql.Time.TimeTest: valueOf (number 1)
+FAIL: gnu.testlet.java.sql.Timestamp.TimestampTest: valueOf (number 1)
diff --git a/libjava/verify.cc b/libjava/verify.cc
index dbf80d4bf03..4a6ca458849 100644
--- a/libjava/verify.cc
+++ b/libjava/verify.cc
@@ -1,6 +1,6 @@
// defineclass.cc - defining a class from .class format.
-/* Copyright (C) 2001, 2002 Free Software Foundation
+/* Copyright (C) 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -128,6 +128,34 @@ private:
return r;
}
+ __attribute__ ((__noreturn__)) void verify_fail (char *s, jint pc = -1)
+ {
+ using namespace java::lang;
+ StringBuffer *buf = new StringBuffer ();
+
+ buf->append (JvNewStringLatin1 ("verification failed"));
+ if (pc == -1)
+ pc = start_PC;
+ if (pc != -1)
+ {
+ buf->append (JvNewStringLatin1 (" at PC "));
+ buf->append (pc);
+ }
+
+ _Jv_InterpMethod *method = current_method;
+ buf->append (JvNewStringLatin1 (" in "));
+ buf->append (current_class->getName());
+ buf->append ((jchar) ':');
+ buf->append (JvNewStringUTF (method->get_method()->name->data));
+ buf->append ((jchar) '(');
+ buf->append (JvNewStringUTF (method->get_method()->signature->data));
+ buf->append ((jchar) ')');
+
+ buf->append (JvNewStringLatin1 (": "));
+ buf->append (JvNewStringLatin1 (s));
+ throw new java::lang::VerifyError (buf->toString ());
+ }
+
// This enum holds a list of tags for all the different types we
// need to handle. Reference types are treated specially by the
// type class.
@@ -793,6 +821,12 @@ private:
// assigns to locals[0] (overwriting `this') and then returns
// without really initializing.
type this_type;
+ // This is a list of all subroutines that have been seen at this
+ // point. Ordinarily this is NULL; it is only allocated and used
+ // in relatively weird situations involving non-ret exit from a
+ // subroutine. We have to keep track of this in this way to avoid
+ // endless recursion in these cases.
+ subr_info *seen_subrs;
// INVALID marks a state which is not on the linked list of states
// requiring reverification.
@@ -811,6 +845,7 @@ private:
stack = NULL;
locals = NULL;
local_changed = NULL;
+ seen_subrs = NULL;
}
state (int max_stack, int max_locals)
@@ -823,6 +858,7 @@ private:
stack[i] = unsuitable_type;
locals = new type[max_locals];
local_changed = (bool *) _Jv_Malloc (sizeof (bool) * max_locals);
+ seen_subrs = NULL;
for (int i = 0; i < max_locals; ++i)
{
locals[i] = unsuitable_type;
@@ -838,6 +874,7 @@ private:
stack = new type[max_stack];
locals = new type[max_locals];
local_changed = (bool *) _Jv_Malloc (sizeof (bool) * max_locals);
+ seen_subrs = NULL;
copy (orig, max_stack, max_locals, ret_semantics);
next = INVALID;
}
@@ -850,6 +887,7 @@ private:
delete[] locals;
if (local_changed)
_Jv_Free (local_changed);
+ clean_subrs ();
}
void *operator new[] (size_t bytes)
@@ -872,6 +910,17 @@ private:
_Jv_Free (mem);
}
+ void clean_subrs ()
+ {
+ subr_info *info = seen_subrs;
+ while (info != NULL)
+ {
+ subr_info *next = info->next;
+ _Jv_Free (info);
+ info = next;
+ }
+ }
+
void copy (const state *copy, int max_stack, int max_locals,
bool ret_semantics = false)
{
@@ -891,6 +940,16 @@ private:
locals[i] = copy->locals[i];
local_changed[i] = copy->local_changed[i];
}
+
+ clean_subrs ();
+ if (copy->seen_subrs)
+ {
+ for (subr_info *info = seen_subrs; info != NULL; info = info->next)
+ add_subr (info->pc);
+ }
+ else
+ seen_subrs = NULL;
+
this_type = copy->this_type;
// Don't modify `next'.
}
@@ -917,6 +976,15 @@ private:
local_changed[i] = false;
}
+ // Indicate that we've been in this this subroutine.
+ void add_subr (int pc)
+ {
+ subr_info *n = (subr_info *) _Jv_Malloc (sizeof (subr_info));
+ n->pc = pc;
+ n->next = seen_subrs;
+ seen_subrs = n;
+ }
+
// Merge STATE_OLD into this state. Destructively modifies this
// state. Returns true if the new state was in fact changed.
// Will throw an exception if the states are not mergeable.
@@ -944,10 +1012,23 @@ private:
}
else
{
- // If the subroutines differ, indicate that the state
- // changed. This is needed to detect when subroutines have
- // merged.
- changed = true;
+ // If the subroutines differ, and we haven't seen this
+ // subroutine before, indicate that the state changed. This
+ // is needed to detect when subroutines have merged.
+ bool found = false;
+ for (subr_info *info = seen_subrs; info != NULL; info = info->next)
+ {
+ if (info->pc == state_old->subroutine)
+ {
+ found = true;
+ break;
+ }
+ }
+ if (! found)
+ {
+ add_subr (state_old->subroutine);
+ changed = true;
+ }
}
// Merge stacks. Special handling for NO_STACK case.
@@ -1121,14 +1202,6 @@ private:
return r;
}
- type pop64 ()
- {
- type r = pop_raw ();
- if (! r.iswide ())
- verify_fail ("wide pop of narrow type");
- return r;
- }
-
type pop_type (type match)
{
match.promote ();
@@ -1351,7 +1424,6 @@ private:
{
int *prev_loc = &next_verify_pc;
int npc = next_verify_pc;
- bool skipped = false;
while (npc != state::NO_NEXT)
{
@@ -1368,7 +1440,6 @@ private:
return npc;
}
- skipped = true;
prev_loc = &states[npc]->next;
npc = states[npc]->next;
}
@@ -1447,6 +1518,12 @@ private:
for (subr_info *subr = jsr_ptrs[csub]; subr != NULL; subr = subr->next)
{
+ // We might be returning to a `jsr' that is at the end of the
+ // bytecode. This is ok if we never return from the called
+ // subroutine, but if we see this here it is an error.
+ if (subr->pc >= current_method->code_length)
+ verify_fail ("fell off end");
+
// Temporarily modify the current state so it looks like we're
// in the enclosing context.
current_state->subroutine = get_subroutine (subr->pc);
@@ -1496,16 +1573,15 @@ private:
// the local variable state across the jsr, but the subroutine
// might change the stack depth, so we can't make any assumptions
// about it. So we have yet another special case. We know that
- // at this point PC points to the instruction after the jsr.
-
- // FIXME: what if we have a jsr at the end of the code, but that
- // jsr has no corresponding ret? Is this verifiable, or is it
- // not? If it is then we need a special case here.
- if (PC >= current_method->code_length)
- verify_fail ("fell off end");
-
- current_state->stacktop = state::NO_STACK;
- push_jump_merge (PC, current_state);
+ // at this point PC points to the instruction after the jsr. Note
+ // that it is ok to have a `jsr' at the end of the bytecode,
+ // provided that the called subroutine never returns. So, we have
+ // a special case here and another one when we handle the ret.
+ if (PC < current_method->code_length)
+ {
+ current_state->stacktop = state::NO_STACK;
+ push_jump_merge (PC, current_state);
+ }
invalidate_pc ();
}
@@ -2076,21 +2152,31 @@ private:
bool initialize_stack ()
{
int var = 0;
- bool is_init = false;
+ bool is_init = _Jv_equalUtf8Consts (current_method->self->name,
+ gcj::init_name);
+ bool is_clinit = _Jv_equalUtf8Consts (current_method->self->name,
+ gcj::clinit_name);
using namespace java::lang::reflect;
if (! Modifier::isStatic (current_method->self->accflags))
{
type kurr (current_class);
- if (_Jv_equalUtf8Consts (current_method->self->name, gcj::init_name))
+ if (is_init)
{
kurr.set_uninitialized (type::SELF, this);
is_init = true;
}
+ else if (is_clinit)
+ verify_fail ("<clinit> method must be static");
set_variable (0, kurr);
current_state->set_this_type (kurr);
++var;
}
+ else
+ {
+ if (is_init)
+ verify_fail ("<init> method must be non-static");
+ }
// We have to handle wide arguments specially here.
int arg_count = _Jv_count_arguments (current_method->self->signature);
@@ -2441,7 +2527,11 @@ private:
pop32 ();
break;
case op_pop2:
- pop64 ();
+ {
+ type t = pop_raw ();
+ if (! t.iswide ())
+ pop32 ();
+ }
break;
case op_dup:
{
@@ -3064,34 +3154,6 @@ private:
}
}
- __attribute__ ((__noreturn__)) void verify_fail (char *s, jint pc = -1)
- {
- using namespace java::lang;
- StringBuffer *buf = new StringBuffer ();
-
- buf->append (JvNewStringLatin1 ("verification failed"));
- if (pc == -1)
- pc = start_PC;
- if (pc != -1)
- {
- buf->append (JvNewStringLatin1 (" at PC "));
- buf->append (pc);
- }
-
- _Jv_InterpMethod *method = current_method;
- buf->append (JvNewStringLatin1 (" in "));
- buf->append (current_class->getName());
- buf->append ((jchar) ':');
- buf->append (JvNewStringUTF (method->get_method()->name->data));
- buf->append ((jchar) '(');
- buf->append (JvNewStringUTF (method->get_method()->signature->data));
- buf->append ((jchar) ')');
-
- buf->append (JvNewStringLatin1 (": "));
- buf->append (JvNewStringLatin1 (s));
- throw new java::lang::VerifyError (buf->toString ());
- }
-
public:
void verify_instructions ()
diff --git a/libjava/win32-threads.cc b/libjava/win32-threads.cc
index d31c1919a1e..3a3999a8f2d 100644
--- a/libjava/win32-threads.cc
+++ b/libjava/win32-threads.cc
@@ -1,6 +1,7 @@
// win32-threads.cc - interface between libjava and Win32 threads.
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software
+ Foundation, Inc.
This file is part of libgcj.
@@ -70,12 +71,14 @@ DWORD _Jv_ThreadDataKey;
inline void
ensure_condvar_initialized(_Jv_ConditionVariable_t *cv)
{
- if (cv->ev[0] == 0) {
- cv->ev[0] = CreateEvent (NULL, 0, 0, NULL);
- if (cv->ev[0] == 0) JvFail("CreateEvent() failed");
- cv->ev[1] = CreateEvent (NULL, 1, 0, NULL);
- if (cv->ev[1] == 0) JvFail("CreateEvent() failed");
- }
+ if (cv->ev[0] == 0)
+ {
+ cv->ev[0] = CreateEvent (NULL, 0, 0, NULL);
+ if (cv->ev[0] == 0) JvFail("CreateEvent() failed");
+
+ cv->ev[1] = CreateEvent (NULL, 1, 0, NULL);
+ if (cv->ev[1] == 0) JvFail("CreateEvent() failed");
+ }
}
// Reimplementation of the general algorithm described at
@@ -85,11 +88,13 @@ ensure_condvar_initialized(_Jv_ConditionVariable_t *cv)
int
_Jv_CondWait(_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos)
{
+ if (mu->owner != GetCurrentThreadId ( ))
+ return _JV_NOT_OWNER;
- EnterCriticalSection(&cv->count_mutex);
- ensure_condvar_initialized(cv);
+ EnterCriticalSection (&cv->count_mutex);
+ ensure_condvar_initialized (cv);
cv->blocked_count++;
- LeaveCriticalSection(&cv->count_mutex);
+ LeaveCriticalSection (&cv->count_mutex);
DWORD time;
if ((millis == 0) && (nanos > 0)) time = 1;
@@ -102,18 +107,17 @@ _Jv_CondWait(_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint na
EnterCriticalSection(&cv->count_mutex);
cv->blocked_count--;
- // If we were unblocked by the second event (the broadcast one) and nobody is
- // left, then reset the signal.
- int last_waiter = rval == WAIT_OBJECT_0 + 1 && cv->blocked_count == 0;
+ // If we were unblocked by the second event (the broadcast one)
+ // and nobody is left, then reset the event.
+ int last_waiter = (rval == (WAIT_OBJECT_0 + 1)) && (cv->blocked_count == 0);
LeaveCriticalSection(&cv->count_mutex);
- if (last_waiter) ResetEvent(&cv->ev[1]);
+ if (last_waiter)
+ ResetEvent (cv->ev[1]);
_Jv_MutexLock (mu);
- if (rval == WAIT_FAILED) return GetLastError();
- else if (rval == WAIT_TIMEOUT) return ETIMEDOUT;
- else return 0;
+ return 0;
}
void
@@ -121,39 +125,56 @@ _Jv_CondInit (_Jv_ConditionVariable_t *cv)
{
// we do lazy creation of Events since CreateEvent() is insanely expensive
cv->ev[0] = 0;
- InitializeCriticalSection(&cv->count_mutex);
+ InitializeCriticalSection (&cv->count_mutex);
cv->blocked_count = 0;
}
void
_Jv_CondDestroy (_Jv_ConditionVariable_t *cv)
{
- if (cv->ev[0] != 0) CloseHandle(cv->ev[0]);
- cv = NULL;
+ if (cv->ev[0] != 0)
+ {
+ CloseHandle (cv->ev[0]);
+ CloseHandle (cv->ev[1]);
+
+ cv->ev[0] = 0;
+ }
+
+ DeleteCriticalSection (&cv->count_mutex);
}
int
-_Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *)
+_Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu)
{
- EnterCriticalSection(&cv->count_mutex);
- ensure_condvar_initialized(cv);
+ if (mu->owner != GetCurrentThreadId ( ))
+ return _JV_NOT_OWNER;
+
+ EnterCriticalSection (&cv->count_mutex);
+ ensure_condvar_initialized (cv);
int somebody_is_blocked = cv->blocked_count > 0;
- LeaveCriticalSection(&cv->count_mutex);
+ LeaveCriticalSection (&cv->count_mutex);
+
+ if (somebody_is_blocked)
+ SetEvent (cv->ev[0]);
- if (somebody_is_blocked) return SetEvent (cv->ev[0]) ? 0 : GetLastError();
- else return 0;
+ return 0;
}
int
-_Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *)
+_Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu)
{
- EnterCriticalSection(&cv->count_mutex);
- ensure_condvar_initialized(cv);
+ if (mu->owner != GetCurrentThreadId ( ))
+ return _JV_NOT_OWNER;
+
+ EnterCriticalSection (&cv->count_mutex);
+ ensure_condvar_initialized (cv);
int somebody_is_blocked = cv->blocked_count > 0;
- LeaveCriticalSection(&cv->count_mutex);
+ LeaveCriticalSection (&cv->count_mutex);
- if (somebody_is_blocked) return SetEvent (cv->ev[1]) ? 0 : GetLastError();
- else return 0;
+ if (somebody_is_blocked)
+ SetEvent (cv->ev[1]);
+
+ return 0;
}
//
@@ -165,8 +186,8 @@ _Jv_InitThreads (void)
{
_Jv_ThreadKey = TlsAlloc();
_Jv_ThreadDataKey = TlsAlloc();
- daemon_mutex = CreateMutex(NULL, 0, NULL);
- daemon_cond = CreateEvent(NULL, 0, 0, NULL);
+ daemon_mutex = CreateMutex (NULL, 0, NULL);
+ daemon_cond = CreateEvent (NULL, 1, 0, NULL);
non_daemon_count = 0;
}
@@ -255,7 +276,7 @@ really_start (void* x)
WaitForSingleObject (daemon_mutex, INFINITE);
non_daemon_count--;
if (! non_daemon_count)
- PulseEvent (daemon_cond);
+ SetEvent (daemon_cond);
ReleaseMutex (daemon_mutex);
}
@@ -297,10 +318,12 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStart
void
_Jv_ThreadWait (void)
{
- WaitForSingleObject(daemon_mutex, INFINITE);
- if(non_daemon_count)
- SignalObjectAndWait(daemon_mutex, daemon_cond, INFINITE, 0);
- ReleaseMutex(daemon_mutex);
+ WaitForSingleObject (daemon_mutex, INFINITE);
+ if (non_daemon_count)
+ {
+ ReleaseMutex (daemon_mutex);
+ WaitForSingleObject (daemon_cond, INFINITE);
+ }
}
void
diff --git a/libjava/win32.cc b/libjava/win32.cc
index af1163fbfa9..4919e65e396 100644
--- a/libjava/win32.cc
+++ b/libjava/win32.cc
@@ -1,6 +1,6 @@
// win32.cc - Helper functions for Microsoft-flavored OSs.
-/* Copyright (C) 2002 Free Software Foundation
+/* Copyright (C) 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -9,12 +9,13 @@ Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
+#include <platform.h>
#include <jvm.h>
#include <sys/timeb.h>
#include <stdlib.h>
-#include "platform.h"
#include <java/lang/ArithmeticException.h>
+#include <java/lang/UnsupportedOperationException.h>
#include <java/util/Properties.h>
static LONG CALLBACK
@@ -28,6 +29,15 @@ win32_exception_handler (LPEXCEPTION_POINTERS e)
return EXCEPTION_CONTINUE_SEARCH;
}
+// Platform-specific executable name
+static char exec_name[MAX_PATH];
+ // initialized in _Jv_platform_initialize()
+
+const char *_Jv_ThisExecutable (void)
+{
+ return exec_name;
+}
+
// Platform-specific VM initialization.
void
_Jv_platform_initialize (void)
@@ -37,8 +47,12 @@ _Jv_platform_initialize (void)
if (WSAStartup (MAKEWORD (1, 1), &data))
MessageBox (NULL, "Error initialising winsock library.", "Error",
MB_OK | MB_ICONEXCLAMATION);
+
// Install exception handler
SetUnhandledExceptionFilter (win32_exception_handler);
+
+ // Initialize our executable name
+ GetModuleFileName(NULL, exec_name, sizeof(exec_name));
}
// gettimeofday implementation.
@@ -90,7 +104,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
_Jv_Free (buffer);
}
-
+
// Use GetUserName to set 'user.name'.
buflen = 257; // UNLEN + 1
buffer = (char *) _Jv_MallocUnchecked (buflen);
@@ -101,8 +115,8 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
_Jv_Free (buffer);
}
- // According to the api documentation for 'GetWindowsDirectory()', the
- // environmental variable HOMEPATH always specifies the user's home
+ // According to the api documentation for 'GetWindowsDirectory()', the
+ // environmental variable HOMEPATH always specifies the user's home
// directory or a default directory. On the 3 windows machines I checked
// only 1 had it set. If it's not set, JDK1.3.1 seems to set it to
// the windows directory, so we'll do the same.
@@ -117,7 +131,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
if (winHome != NULL)
{
if (GetWindowsDirectory (winHome, MAX_PATH))
- SET ("user.home", winHome);
+ SET ("user.home", winHome);
_Jv_Free (winHome);
}
}
@@ -135,7 +149,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
if (buffer != NULL)
{
sprintf (buffer, "%d.%d", (int) osvi.dwMajorVersion,
- (int) osvi.dwMinorVersion);
+ (int) osvi.dwMinorVersion);
SET ("os.version", buffer);
_Jv_Free (buffer);
}
@@ -150,7 +164,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
else if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
SET ("os.name", "Windows Me");
else
- SET ("os.name", "Windows ??");
+ SET ("os.name", "Windows ??");
break;
case VER_PLATFORM_WIN32_NT:
@@ -173,23 +187,24 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
// Set the OS architecture.
SYSTEM_INFO si;
GetSystemInfo (&si);
- switch (si.dwProcessorType)
+ switch (si.wProcessorArchitecture)
{
- case PROCESSOR_INTEL_386:
- SET ("os.arch", "i386");
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ SET ("os.arch", "x86");
break;
- case PROCESSOR_INTEL_486:
- SET ("os.arch", "i486");
+ case PROCESSOR_ARCHITECTURE_MIPS:
+ SET ("os.arch", "mips");
break;
- case PROCESSOR_INTEL_PENTIUM:
- SET ("os.arch", "i586");
+ case PROCESSOR_ARCHITECTURE_ALPHA:
+ SET ("os.arch", "alpha");
break;
- case PROCESSOR_MIPS_R4000:
- SET ("os.arch", "MIPS4000");
+ case PROCESSOR_ARCHITECTURE_PPC:
+ SET ("os.arch", "ppc");
break;
- case PROCESSOR_ALPHA_21064:
- SET ("os.arch", "ALPHA");
+ case PROCESSOR_ARCHITECTURE_IA64:
+ SET ("os.arch", "ia64");
break;
+ case PROCESSOR_ARCHITECTURE_UNKNOWN:
default:
SET ("os.arch", "unknown");
break;
@@ -217,3 +232,11 @@ backtrace (void **__array, int __size)
}
return i;
}
+
+/* Placeholder implementation */
+int
+_Jv_select (int, fd_set *, fd_set *, fd_set *, struct timeval *)
+{
+ throw new java::lang::UnsupportedOperationException(JvNewStringUTF("_Jv_select() not implemented in Win32"));
+ return 0;
+}
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index dd1bc296408..3c35788f23d 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,80 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-03-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR bootstrap/14348
+ Backport
+ 2003-10-20 Joseph S. Myers <jsm@polyomino.org.uk>
+ * objc/hash.h (hash_string): Don't use a cast as an lvalue.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-12-01 Zack Weinberg <zack@codesourcery.com>
+
+ PR 11433
+ * Protocol.m (descriptionForInstanceMethod): Don't dereference
+ instance_methods if it's NULL.
+ (descriptionForClassMethod): Likewise for class_methods.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * aclocal.m4 (glibcpp_toolexeclibdir): Instead of
+ $(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless
+ version_specific_libs is enabled.
+ * configure: Rebuilt.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR.
+ (install-libs, install-headers): Prepend $(DESTDIR) to
+ destination paths in all (un)installation commands.
+
2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (all): Fix multilib parallel build.
@@ -141,7 +218,7 @@ Mon Dec 17 17:02:12 2001 Nicola Pero <nicola@brainstorm.co.uk>
2001-11-14 Aldy Hernandez <aldyh@redhat.com>
- * encoding.c: Add target_flags.
+ * encoding.c: Add target_flags.
2001-11-07 Aldy Hernandez <aldyh@redhat.com>
@@ -152,18 +229,18 @@ Mon Dec 17 17:02:12 2001 Nicola Pero <nicola@brainstorm.co.uk>
Mon Oct 29 21:29:21 2001 Nicola Pero <n.pero@mi.flashnet.it>
* class.c: Rewritten the class table to use optimized, lock-free
- lookup. This more than doubles the speed of class method
- invocations. (class_table_setup), (class_table_insert),
- (class_table_replace), (class_table_get_safe),
- (class_table_next), (class_table_print),
- (class_table_print_histogram): New functions.
- (__objc_init_class_tables): Use class_table_setup.
- (__objc_add_class_to_hash): Use class_table_get_safe and
- class_table_insert. (objc_lookup_class), (objc_get_class): Do not
- assert the existence of the table; do not lock the runtime; use
- class_table_get_safe. (objc_next_class): Use class_table_next.
- (__objc_resolve_class_links): Use class_table_next.
- (class_pose_as): Use class_table_replace.
+ lookup. This more than doubles the speed of class method
+ invocations. (class_table_setup), (class_table_insert),
+ (class_table_replace), (class_table_get_safe),
+ (class_table_next), (class_table_print),
+ (class_table_print_histogram): New functions.
+ (__objc_init_class_tables): Use class_table_setup.
+ (__objc_add_class_to_hash): Use class_table_get_safe and
+ class_table_insert. (objc_lookup_class), (objc_get_class): Do not
+ assert the existence of the table; do not lock the runtime; use
+ class_table_get_safe. (objc_next_class): Use class_table_next.
+ (__objc_resolve_class_links): Use class_table_next.
+ (class_pose_as): Use class_table_replace.
2001-09-10 Ovidiu Predescu <ovidiu@cup.hp.com>
diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in
index 4d5c5da8db4..244f1e75a1a 100644
--- a/libobjc/Makefile.in
+++ b/libobjc/Makefile.in
@@ -118,6 +118,7 @@ FLAGS_TO_PASS = \
"AR_FLAGS=$(AR_FLAGS)" \
"CC=$(CC)" \
"CFLAGS=$(CFLAGS)" \
+ "DESTDIR=$(DESTDIR)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"EXTRA_OFILES=$(EXTRA_OFILES)" \
"HDEFINES=$(HDEFINES)" \
@@ -318,21 +319,21 @@ ${srcdir}/configure: configure.in
install: install-libs install-headers
install-libs: installdirs
- $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(glibcpp_toolexeclibdir)
- $(LIBTOOL_INSTALL) $(INSTALL) libobjc.la $(glibcpp_toolexeclibdir);
+ $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(LIBTOOL_INSTALL) $(INSTALL) libobjc.la $(DESTDIR)$(glibcpp_toolexeclibdir);
if [ "$(OBJC_BOEHM_GC)" ]; then \
$(LIBTOOL_INSTALL) $(INSTALL) libobjc_gc.la \
- $(glibcpp_toolexeclibdir);\
+ $(DESTDIR)$(glibcpp_toolexeclibdir);\
fi
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
- @-$(LIBTOOL) --mode=finish $(glibcpp_toolexeclibdir)
+ @-$(LIBTOOL) --mode=finish $(DESTDIR)$(glibcpp_toolexeclibdir)
# Copy Objective C headers to installation include directory.
install-headers:
- $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(libsubdir)/include/objc
+ $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(libsubdir)/include/objc
for file in $(OBJC_H); do \
realfile=$(srcdir)/objc/$${file}; \
- $(INSTALL_DATA) $${realfile} $(libsubdir)/include/objc; \
+ $(INSTALL_DATA) $${realfile} $(DESTDIR)$(libsubdir)/include/objc; \
done
check uninstall install-strip dist installcheck installdirs:
diff --git a/libobjc/Protocol.m b/libobjc/Protocol.m
index 3c18a02ce97..ab41bfe2ce7 100644
--- a/libobjc/Protocol.m
+++ b/libobjc/Protocol.m
@@ -80,11 +80,12 @@ struct objc_method_description_list {
const char* name = sel_get_name (aSel);
struct objc_method_description *result;
- for (i = 0; i < instance_methods->count; i++)
- {
- if (!strcmp ((char*)instance_methods->list[i].name, name))
- return &(instance_methods->list[i]);
- }
+ if (instance_methods)
+ for (i = 0; i < instance_methods->count; i++)
+ {
+ if (!strcmp ((char*)instance_methods->list[i].name, name))
+ return &(instance_methods->list[i]);
+ }
for (proto_list = protocol_list; proto_list; proto_list = proto_list->next)
{
@@ -107,11 +108,12 @@ struct objc_method_description_list {
const char* name = sel_get_name (aSel);
struct objc_method_description *result;
- for (i = 0; i < class_methods->count; i++)
- {
- if (!strcmp ((char*)class_methods->list[i].name, name))
- return &(class_methods->list[i]);
- }
+ if (class_methods)
+ for (i = 0; i < class_methods->count; i++)
+ {
+ if (!strcmp ((char*)class_methods->list[i].name, name))
+ return &(class_methods->list[i]);
+ }
for (proto_list = protocol_list; proto_list; proto_list = proto_list->next)
{
diff --git a/libobjc/aclocal.m4 b/libobjc/aclocal.m4
index a85624f1d30..ed643f6038c 100644
--- a/libobjc/aclocal.m4
+++ b/libobjc/aclocal.m4
@@ -207,11 +207,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_SUBST(glibcpp_prefixdir)
diff --git a/libobjc/configure b/libobjc/configure
index 85ffb615f8c..d7afae5d2bb 100755
--- a/libobjc/configure
+++ b/libobjc/configure
@@ -52,7 +52,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -167,7 +166,6 @@ Configuration:
--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
@@ -338,11 +336,6 @@ EOF
-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=*)
@@ -508,16 +501,12 @@ fi
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
+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
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -646,7 +635,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:650: checking host system type" >&5
+echo "configure:639: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -667,7 +656,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:671: checking target system type" >&5
+echo "configure:660: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -685,7 +674,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:689: checking build system type" >&5
+echo "configure:678: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -717,12 +706,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:721: checking for Cygwin environment" >&5
+echo "configure:710: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 726 "configure"
+#line 715 "configure"
#include "confdefs.h"
int main() {
@@ -733,7 +722,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -750,19 +739,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:754: checking for mingw32 environment" >&5
+echo "configure:743: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 759 "configure"
+#line 748 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -797,7 +786,7 @@ esac
# be 'cp -p' if linking isn't available.
#ac_cv_prog_LN_S='cp -p'
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:801: checking whether ln -s works" >&5
+echo "configure:790: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -853,7 +842,7 @@ fi
# 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:857: checking for $ac_word" >&5
+echo "configure:846: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -883,7 +872,7 @@ if test -z "$CC"; then
# 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:887: checking for $ac_word" >&5
+echo "configure:876: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -932,7 +921,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:936: checking whether we are using GNU C" >&5
+echo "configure:925: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -941,7 +930,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -956,7 +945,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:960: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:949: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -987,7 +976,7 @@ 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:991: checking for $ac_word" >&5
+echo "configure:980: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1019,7 +1008,7 @@ fi
# 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:1023: checking for $ac_word" >&5
+echo "configure:1012: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1051,7 +1040,7 @@ fi
# 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:1055: checking for $ac_word" >&5
+echo "configure:1044: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1083,7 +1072,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1087: checking for $ac_word" >&5
+echo "configure:1076: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1127,7 +1116,7 @@ fi
# 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:1131: checking for a BSD compatible install" >&5
+echo "configure:1120: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1195,7 +1184,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1199: checking for executable suffix" >&5
+echo "configure:1188: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1205,10 +1194,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1235,13 +1224,13 @@ glibcpp_toolexeclibdir=no
glibcpp_prefixdir=${prefix}
echo $ac_n "checking for interface version number""... $ac_c" 1>&6
-echo "configure:1239: checking for interface version number" >&5
+echo "configure:1228: checking for interface version number" >&5
libstdcxx_interface=$INTERFACE
echo "$ac_t""$libstdcxx_interface" 1>&6
# Process the option "--enable-version-specific-runtime-libs"
echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:1245: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:1234: checking for --enable-version-specific-runtime-libs" >&5
# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
if test "${enable_version_specific_runtime_libs+set}" = set; then
enableval="$enable_version_specific_runtime_libs"
@@ -1276,11 +1265,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
@@ -1295,7 +1285,7 @@ fi
compiler_name=cc1obj
rm -f skip-this-dir
echo $ac_n "checking if compiler $compiler_name has been built""... $ac_c" 1>&6
-echo "configure:1299: checking if compiler $compiler_name has been built" >&5
+echo "configure:1289: checking if compiler $compiler_name has been built" >&5
if eval "test \"`echo '$''{'objc_cv_compiler_exists'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1407,7 +1397,7 @@ ac_prog=ld
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:1411: checking for ld used by GCC" >&5
+echo "configure:1401: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1437,10 +1427,10 @@ echo "configure:1411: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1441: checking for GNU ld" >&5
+echo "configure:1431: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1444: checking for non-GNU ld" >&5
+echo "configure:1434: 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
@@ -1475,7 +1465,7 @@ else
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:1479: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1469: 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
@@ -1492,7 +1482,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1496: checking for $LD option to reload object files" >&5
+echo "configure:1486: 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
@@ -1504,7 +1494,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1508: checking for BSD-compatible nm" >&5
+echo "configure:1498: 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
@@ -1542,7 +1532,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1546: checking how to recognise dependant libraries" >&5
+echo "configure:1536: 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
@@ -1652,7 +1642,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -1715,13 +1705,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1719: checking for object suffix" >&5
+echo "configure:1709: checking for object suffix" >&5
if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
rm -f conftest*
echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -1745,7 +1735,7 @@ case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:1749: checking for ${ac_tool_prefix}file" >&5
+echo "configure:1739: 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
@@ -1807,7 +1797,7 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:1811: checking for file" >&5
+echo "configure:1801: 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
@@ -1878,7 +1868,7 @@ esac
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1882: checking for $ac_word" >&5
+echo "configure:1872: 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
@@ -1910,7 +1900,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1914: checking for $ac_word" >&5
+echo "configure:1904: 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
@@ -1945,7 +1935,7 @@ fi
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1949: checking for $ac_word" >&5
+echo "configure:1939: 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
@@ -1977,7 +1967,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1981: checking for $ac_word" >&5
+echo "configure:1971: 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
@@ -2044,8 +2034,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2048 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2049: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2038 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2039: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2057,6 +2060,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2064,7 +2068,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2077,12 +2081,54 @@ ia64-*-hpux*)
rm -rf conftest*
;;
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2086: checking whether the C compiler needs -belf" >&5
+echo "configure:2132: 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
@@ -2095,14 +2141,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2099 "configure"
+#line 2145 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2132,7 +2178,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2136: checking for $ac_word" >&5
+echo "configure:2182: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2164,7 +2210,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2168: checking for $ac_word" >&5
+echo "configure:2214: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2199,7 +2245,7 @@ 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:2203: checking for $ac_word" >&5
+echo "configure:2249: 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
@@ -2231,7 +2277,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "as", so it can be a program name with args.
set dummy as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2235: checking for $ac_word" >&5
+echo "configure:2281: 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
@@ -2266,7 +2312,7 @@ fi
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2270: checking for $ac_word" >&5
+echo "configure:2316: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2298,7 +2344,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2302: checking for $ac_word" >&5
+echo "configure:2348: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2334,12 +2380,12 @@ fi
# recent cygwin and mingw systems supply a stub DllMain which the user
# can override, but on older systems we have to supply one
echo $ac_n "checking if libtool should supply DllMain function""... $ac_c" 1>&6
-echo "configure:2338: checking if libtool should supply DllMain function" >&5
+echo "configure:2384: checking if libtool should supply DllMain function" >&5
if eval "test \"`echo '$''{'lt_cv_need_dllmain'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2343 "configure"
+#line 2389 "configure"
#include "confdefs.h"
int main() {
@@ -2347,7 +2393,7 @@ extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
DllMain (0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:2351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_need_dllmain=no
else
@@ -2368,19 +2414,19 @@ echo "$ac_t""$lt_cv_need_dllmain" 1>&6
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -mdll"
echo $ac_n "checking how to link DLLs""... $ac_c" 1>&6
-echo "configure:2372: checking how to link DLLs" >&5
+echo "configure:2418: checking how to link DLLs" >&5
if eval "test \"`echo '$''{'lt_cv_cc_dll_switch'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2377 "configure"
+#line 2423 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_dll_switch=-mdll
else
@@ -2498,7 +2544,7 @@ else
# 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:2502: checking for $ac_word" >&5
+echo "configure:2548: 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
@@ -2538,7 +2584,7 @@ fi
# 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:2542: checking for a BSD compatible install" >&5
+echo "configure:2588: 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
@@ -2591,7 +2637,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:2595: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:2641: 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
@@ -2620,7 +2666,7 @@ fi
# Sanity check for the cross-compilation case:
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2624: checking how to run the C preprocessor" >&5
+echo "configure:2670: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2635,13 +2681,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2639 "configure"
+#line 2685 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2645: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2691: \"$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
:
@@ -2652,13 +2698,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2656 "configure"
+#line 2702 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2708: \"$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
:
@@ -2669,13 +2715,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2673 "configure"
+#line 2719 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2679: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2725: \"$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
:
@@ -2701,17 +2747,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "stdio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for stdio.h""... $ac_c" 1>&6
-echo "configure:2705: checking for stdio.h" >&5
+echo "configure:2751: checking for stdio.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2710 "configure"
+#line 2756 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2761: \"$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*
@@ -2739,12 +2785,12 @@ fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2743: checking for ANSI C header files" >&5
+echo "configure:2789: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2748 "configure"
+#line 2794 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2752,7 +2798,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2756: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2802: \"$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*
@@ -2769,7 +2815,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2773 "configure"
+#line 2819 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -2787,7 +2833,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 2791 "configure"
+#line 2837 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -2808,7 +2854,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 2812 "configure"
+#line 2858 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2819,7 +2865,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:2823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -2847,17 +2893,17 @@ for ac_hdr in sched.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2851: checking for $ac_hdr" >&5
+echo "configure:2897: 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
-#line 2856 "configure"
+#line 2902 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2907: \"$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*
@@ -2887,7 +2933,7 @@ done
# Determine CFLAGS for gthread.
echo $ac_n "checking for gthread cflags""... $ac_c" 1>&6
-echo "configure:2891: checking for gthread cflags" >&5
+echo "configure:2937: checking for gthread cflags" >&5
if eval "test \"`echo '$''{'objc_cv_gthread_flags'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3310,6 +3356,7 @@ with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
diff --git a/libobjc/configure.in b/libobjc/configure.in
index 51554522e96..ac92c423450 100644
--- a/libobjc/configure.in
+++ b/libobjc/configure.in
@@ -1,5 +1,6 @@
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 1995, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1995, 1997, 1998, 1999, 2002, 2003
+# Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Objective C.
@@ -143,6 +144,7 @@ with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)
diff --git a/libobjc/objc/hash.h b/libobjc/objc/hash.h
index e695012aa43..446026c821f 100644
--- a/libobjc/objc/hash.h
+++ b/libobjc/objc/hash.h
@@ -172,10 +172,10 @@ hash_string (cache_ptr cache, const void *key)
{
unsigned int ret = 0;
unsigned int ctr = 0;
+ const char *ckey = key;
-
- while (*(char *) key) {
- ret ^= *(char *) key++ << ctr;
+ while (*ckey) {
+ ret ^= *ckey++ << ctr;
ctr = (ctr + 1) % sizeof (void *);
}
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ee8cdb3cd16..e749495c8d3 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,1874 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2005-05-03 Jones Desougi <jones@ingate.com>
+
+ PR libstdc++/21131
+ * acinclude.m4: Fix comments.
+
+2005-02-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * testsuite/thread/pthread1.cc: Do not invoke pthread_setconcurrency
+ on Solaris 2.6 and below.
+ * testsuite/thread/pthread2.cc: Likewise.
+ * testsuite/thread/pthread3.cc: Likewise.
+ * testsuite/thread/pthread4.cc: Likewise.
+ * testsuite/thread/pthread5.cc: Likewise.
+ * testsuite/thread/pthread6.cc: Likewise.
+
+2005-02-02 Zack Weinberg <zack@codesourcery.com>
+
+ Backport from mainline:
+ Paolo Carlini <pcarlini@suse.de>
+ * include/bits/istream.tcc (readsome):
+ Tidy, closely following 27.6.1.3, p30.
+
+2005-01-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR libstdc++/19510
+ * include/bits/stl_list.h (_List_iterator_base): Initialize _M_node
+ in constructor.
+ (_List_iterator): Initialize _List_iterator_base in constructor.
+ * include/bits/stl_tree.h (_Rb_tree_iterator): Initialize _M_node
+ in constructor.
+
+2004-12-03 Richard Henderson <rth@redhat.com>
+
+ PR 17856
+ * config/cpu/i486/atomicity.h (__exchange_and_add, __atomic_add):
+ Split in-out memory constraints.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-08-25 Jonathan Wakely <redi@gcc.gnu.org>
+
+ * include/ext/enc_filebuf.h: Move concept-check macro to class scope.
+
+2004-07-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Export typeinfo information.
+ * configure.in (libtool_VERSION): To 5:7:0.
+ * configure: Regenerate.
+ * testsuite/abi_check.cc (check_version): Add CXXABI_1.2.2.
+
+2004-07-25 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR bootstrap/15120
+ * configure: Rebuilt.
+
+2004-07-08 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * testsuite/22_locale/time_put_members_char.cc (test01): Allow either
+ "Son" or "So" as abbreviated name for Sunday in de_DE locale.
+ * testsuite/22_locale/time_put_members_wchar_t.cc (test01): Likewise.
+
+2004-06-28 David Asher <david.asher@cavium.com>
+
+ PR libstdc++/11352
+ * include/bits/locale_facets.tcc (__pad<>::_S_pad): Don't
+ access __olds beyond __oldlen.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-24 Ronald Landheer-Cieslak <ronald@landheer.com>
+
+ PR libstdc++/11171
+ * acinclude.m4: Deal with --with-newlib.
+ * aclocal.m4: Regenerate.
+ * configure.in: Set os_include_dir correctly when --with-newlib.
+ * configure: Regenerate.
+
+2004-05-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/14720
+ * config/linker-map.gnu: Export basic_ios::_M_setstate.
+ * testsuite/abi_check.cc (check_version): Add GLIBCXX_3.2.4
+ to known versions.
+ * configure.in (libtool_VERSION): To 5:6:0.
+ * configure: Regenerated.
+
+2004-05-07 Matthias Klose <doko@debian.org>
+
+ * include/backward/iterator.h: Add GPL copyright info,
+ with exception clause.
+ * config/cpu/hppa/atomicity.h: Likewise.
+ * config/io/c_io_libio_codecvt.c: Likewise.
+ * include/bits/boost_concept_check.h: Likewise.
+ * include/backward/iterator.h: Likewise.
+ * libsupc++/tinfo.h: Likewise.
+ * po/string_literals.cc: Likewise.
+ * src/wstring-inst.cc: Likewise.
+ * libio/_G_config.h: Likewise.
+ * libio/iolibio.h: Likewise.
+
+2004-02-22 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/14220
+ * include/bits/locale_facets.tcc (num_put<>::_M_convert_float):
+ Don't clip the precision passed down to __convert_from_v:
+ 22.2.2.2.2 nowhere says so.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2004-02-04 Benjamin Kosnik <bkoz@redhat.com>
+ Zack Weinberg <zack@codesourcery.com>
+
+ * config/io/basic_file_stdio.cc (__gnu_internal::fopen_mode):
+ New function.
+ (__basic_file<char>::sys_open, __basic_file<char>::open): Use it.
+ (__basic_file<char>::_M_open_mode): Use it. Mark deprecated.
+
+ * testsuite/27_io/filebuf_members.cc (test_06, test_07):
+ Correct flags to filebuf::open calls.
+
+2004-01-29 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12657
+ * include/bits/basic_ios.tcc (copyfmt(const basic_ios&)):
+ Implement resolution of DR 292 (WP).
+
+2004-01-28 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13369
+ * include/bits/locale_facets.tcc (__verify_grouping):
+ Fix to deal properly with __grouping_tmp.size() >
+ __grouping.size().
+
+2004-01-29 Paolo Carlini <pcarlini@suse.de>
+
+ * Reverting Sylvain Pion's patch to libstdc++/10783, backported
+ from mainline: probably not safe for the ABI.
+
+2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR libstdc++/13462
+ * include/bits/stl_multiset.h (std::multiset): Define pointer
+ as allocator's pointer, likewise for reference, const_pointer, and
+ const_reference.
+ * include/bits/stl_set.h (std::set): Likewise.
+ * include/ext/hash_set (__gnu_cxx::hash_set): Likewise.
+ (__gnu_cxx::hash_multiset): Likewise.
+
+2004-01-28 Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
+
+ PR libstdc++/10783
+ * include/bits/stl_iterator.h (class __normal_iterator):
+ Don't inherit from iterator, add missing typedefs.
+
+2004-01-27 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12967
+ * include/bits/list.tcc (merge): Implement resolution of
+ DR 300 [WP].
+
+2004-01-27 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13884
+ * include/bits/sstream.tcc: Guard use of extern template.
+
+2004-01-27 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc
+ (money_put::do_put(..., long double)): Use the basic_string
+ constructor for char arrays, not that for C-strings, to pass
+ __digits to do_put(..., const string_type&): __ws isn't
+ null-terminated.
+
+2004-01-27 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (__pad<>::_S_pad):
+ Improve performance-wise: avoid one traits::copy, avoid
+ the __builtin_alloca, streamline.
+
+2004-01-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12971
+ * include/bits/locale_facets.tcc
+ (money_put::do_put(..., long double)): Fix conversion
+ specification as per DR 328 [WP].
+
+2004-01-26 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12540
+ * config/locale/gnu/monetary_members.cc: Don't leak memory
+ on exception.
+
+2004-01-26 Andreas Schwab <schwab@suse.de>
+
+ * config/locale/gnu/monetary_members.cc: Restore locale before
+ rethrowing exception.
+
+2004-01-25 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13650
+ * include/bits/basic_string.tcc (compare(size_type, size_type,
+ const _CharT*, size_type)): Implement correctly the resolution
+ of DR 5: basically, s is a char array, -not- a C string.
+
+ * include/bits/basic_string.tcc (_M_clone): Null-terminate.
+
+2004-01-19 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/12352
+ PR libstdc++/12438
+ * include/bits/locale_classes.h (locale::locale(const locale&,
+ _Facet*)): Don't leak memory on exception.
+ * include/bits/locale_facets.tcc (locale::combine(const locale&)):
+ Likewise.
+ * src/locale.cc (locale::locale(const char*)): Likewise.
+ * src/localename.cc (locale::_Impl::~_Impl(),
+ locale::_Impl::_Impl(const _Impl&, size_t),
+ locale::_Impl::_Impl(const char*, size_t)): Likewise.
+ (locale::_Impl::_M_replace_categories(const _Impl*, category):
+ Tweak.
+
+2004-01-12 Marc Espie <espie@openbsd.org>
+
+ * src/Makefile.am (version.dep): backport from HEAD.
+ * src/Makefile.in: regen.
+
+2004-01-12 Gernot Hillier <gernot.hillier@siemens.com>
+
+ * configure.in: GLIBCXX->GLIBCPP.
+ * configure: Regenerated.
+ * aclocal.m4: Regenerated.
+
+2004-01-07 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in: Add io bits to linux cross config.
+ * configure: Regenerate.
+
+2004-01-07 Paolo Carlini <pcarlini@suse.de>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/13007
+ * include/bits/fstream.tcc (imbue): Don't touch the stored
+ locale.
+ * include/std/std_streambuf.h (imbue): According to the
+ standard, base class version does nothing.
+ (pubimbue): Store the locale.
+
+2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/6243
+ * testsuite/lib/libstdc++.exp (v3-init): Add
+ original_ld_library_path, calculate ld_library path, set
+ LD_LIBRARY_PATH to both. Based on libjava.exp.
+
+2003-12-10 Benjamin Kosnik <bkoz@redhat.com>
+ Alexandre Oliva <aoliva@redhat.com>
+
+ PR libstdc++/11612
+ * testsuite/Makefile.am (GLIBCXX_DIR): New.
+ (GLIBGCC_DIR): New.
+ (CXXLINK): Use both with -R so libtool links the correct libs.
+
+2003-12-08 David S. Miller <davem@redhat.com>
+
+ PR libstdc++/12496
+ * config/cpu/sparc/atomicity.h (__exchange_and_add, __atomic_add):
+ Extend increment to _Atomic_word before giving to assembler.
+
+2003-12-04 Christopher Saunders <ctsa@u.washington.edu>
+
+ PR libstdc++/13290
+ * include/bits/stl_algo.h (generate_n): Fix typo.
+
+2003-12-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/basic_ios.h (basic_ios::setstate): Revert.
+ * include/bits/istream.tcc: Only call setstate if __err != goodbit.
+ * include/bits/ostream.tcc: Same.
+ * testsuite/27_io/basic_ios/exceptions/char/2.cc: New.
+
+2003-12-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/9371
+ PR libstdc++/9546
+ PR libstdc++/10093
+ PR libstdc++/10095
+ * include/bits/basic_ios.h (basic_ios::setstate): Elide if goodbit.
+ (basic_ios::_M_setstate): Consolidate common error handling code.
+ * include/bits/basic_ios.tcc: Tweak.
+ * include/bits/fstream.tcc: Tweak.
+ * include/bits/istream.tcc: Use _M_setstate for common exception
+ handling. Move setstate calls after catch.
+ (basic_istream::tellg): Check for exceptions thrown by streambuf
+ virtual functions.
+ (basic_istream::seekg): Same.
+ * include/bits/ostream.tcc: Same, but for ostream.
+ (basic_ostream::flush): Check for exceptions thrown by streambuf
+ virtual functions.
+ (basic_istream::tellp): Same.
+ (basic_istream::seekp): Same.
+ * include/bits/locale_facets.tcc: Tweak.
+ * include/bits/streambuf.tcc: Tweak.
+ (__copy_streambufs): Propagate exceptions.
+
+2003-11-26 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/12297
+ * include/bits/istream.tcc
+ (basic_istream::sentry::sentry): Set failbit and eofbit when eof.
+
+2003-11-26 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/12594
+ * include/bits/ostream.tcc
+ (basic_ostream::operator<<(basic_ostream& (*)(basic_ostream&)),
+ basic_ostream::operator<<(basic_ios& (*)(basic_ios&)),
+ basic_ostream::operator<<(ios_base& (*)(ios_base&))):
+ Implement the resolution of DR 60 (TC): These are not formatted
+ output functions so don't construct sentry objects and don't
+ catch exceptions.
+ (basic_ostream::put, basic_ostream::write): Implement the
+ resolution of DR 63 (TC) by catching exceptions and setting
+ badbit.
+ (basic_ostream::flush): Implement the resolution of DR 60 (TC):
+ This is not an unformatted output function so don't construct
+ a sentry object.
+
+2003-10-25 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (money_get::do_get(...,
+ long double&): Properly size the temporary buffer.
+
+2003-10-20 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/10081
+ * include/bits/basic_ios.h (basic_ios::basic_ios): Initialize
+ _M_fctype, _M_fnumput, _M_fnumget.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11740
+ * config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is):
+ Fix to actually return (M & m) != 0 as per 22.2.1.1.2.
+ * config/locale/generic/ctype_members.cc: Same.
+
+2003-10-02 Harald Boehme <boehme@informatik.hu-berlin.de>
+
+ PR libstdc++/12451
+ * libsupc++/cxxabi.h: Move forward declaration of __class_type_info.
+
+2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.target: Handle Solaris 2.5 micro releases explicitly.
+ Remove wildcards from Solaris 2.6, 7-9: there were no
+ micro releases.
+ Treat Solaris 10 and up like 7-9.
+
+2003-09-30 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/12296
+ * include/bits/istream.tcc (peek): Set eofbit if sgetc
+ returns eof.
+
+2003-09-30 Nathan Myers <ncm@cantrip.org>
+ Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11400
+ * include/bits/stl_algo.h (search_n):
+ Use iterator_traits<>::difference_type for __n.
+
+2003-09-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/11065
+ * config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is): Fix.
+ * config/locale/generic/ctype_members.cc: Same.
+
+ * config/os/generic/ctype_inline.h: Update.
+
+2003-09-10 Daniel Jacobowitz <drow@mvista.com>
+ Andreas Jaeger <aj@suse.de>
+
+ PR libstdc++/12189
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Don't build
+ abi_check if cross compiling.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-25 Zack Weinberg <zack@codesourcery.com>
+
+ * config/os/hpux/os_defines.h: Unconditionally define
+ _GLIBCPP_GTHREAD_USE_WEAK to 0.
+
+2003-08-11 Andreas Jaeger <aj@suse.de>
+
+ * include/Makefile.am (stamp-c_base): Add dependency on stamp-bits
+ to make SMP-safe.
+ * include/Makefile.in: Regenerated.
+
+2003-08-07 Bernardo Innocenti <bernie@develer.com>
+
+ PR libstdc++/11784
+ * libstdc++-v3/config/cpu/m68k/atomicity.h (__exchange_and_add):
+ Replace variants with new BSET-based version.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-07-24 Nathan Myers <ncm-nospam@cantrip.org>
+
+ * testsuite/23_containers/map_operators.cc: Conform to
+ container requirement as value must be Assignable.
+
+2003-07-18 Andreas Jaeger <aj@suse.de>
+
+ * config/abi/sparc-linux-gnu/baseline_symbols.txt: New file.
+ * config/abi/mips-linux-gnu/baseline_symbols.txt: New file.
+ * config/abi/hppa-linux-gnu/baseline_symbols.txt: New file.
+ * config/abi/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
+
+2003-07-17 Greg Schafer <gschafer@zip.com.au>
+
+ * configure.in: Use 'true' and 'false' for
+ GLIBCPP_IS_CROSS_COMPILING, otherwise memory limits are
+ not checked when not cross compiling.
+ * configure: Regenerate.
+
+2003-07-17 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11528
+ * include/bits/locale_facets.tcc (money_get::do_get):
+ Strip only _leading_ zeros.
+
+2003-07-15 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/thread/pthread4.cc: Further tweak to avoid fini race.
+
+2003-07-15 Petur Runolfsson <peturr02@ru.is>
+
+ * Revert previous commit: not safe on platforms with
+ wint_t != size_t.
+
+2003-07-15 Petur Runolfsson <peturr02@ru.is>
+
+ * include/bits/char_traits.h (char_traits<wchar_t>::move):
+ Change last parameter from int_type to size_t.
+
+2003-07-08 Benjamin Kosnik <bkoz@redhat.com>
+ Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/ios_base.h (ios_base::_M_getloc): Return reference
+ to the imbued locale.
+ * include/bits/locale_classes.h
+ (__locale_cache_base,__locale_cache): Declare.
+ (locale,locale::_Impl): Befriend __use_cache.
+ (locale::_Impl::_M_get_cache): New function.
+ (locale::_Impl::_M_install_cache): New function.
+ * include/bits/locale_facets.h (__locale_cache): Declare.
+ (numpunct): Befriend __locale_cache.
+ (__locale_cache_base): New class.
+ (__locale_cache): New class.
+ * include/bits/locale_facets.tcc (__use_cache): New function.
+ (num_put::_M_convert_int,_M_convert_float,do_put): Use it.
+ Use cache data members in place of calls to facet.
+ (num_put::_M_convert_int): Use _M_getloc.
+ (num_put::_M_convert_float): Use _M_getloc.
+ (__locale_cache::__locale_cache(locale&): New.
+ (__locale_cache::__locale_cache(locale&,bool)): New.
+ * src/globals.cc (facet_cache_vec): New.
+ (locale_cache_np_c, locale_cache_np_w): New.
+ * src/locale-inst.cc
+ (__locale_cache<numpunct<char> >): Define.
+ (__locale_cache<numpunct<wchar_t> >): Define.
+ (__use_cache<numpunct<char> >): Define.
+ (__use_cache<numpunct<wchar_t> >): Define.
+ * src/localename.cc (facet_cache_vec): Declare.
+ (locale_cache_np_c, locale_cache_np_w): Declare.
+ (locale::_Impl::~Impl): Destroy caches.
+ (locale::_Impl::Impl): Initialize cache storage. Fill in
+ static caches.
+ (locale::_Impl::_M_install_facet): Expand cache storage.
+
+2003-07-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/locale_facets.tcc (__int_to_char): Move common
+ case to the top.
+
+2003-07-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * testsuite/27_io/ostream_inserter_arith.cc (test05, test06):
+ Add missing bool test.
+
+2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am: Replace PWD with PWD_COMMAND.
+ * Makefile.in: Regenerated.
+ * docs/html/Makefile: Likewise.
+
+2003-07-01 Roger Sayle <roger@eyesopen.com>
+
+ * acinclude.m4 (GLIBCPP_CHECK_STDLIB_SUPPORT): Fix typo in CXXFLAGS.
+ (GLIBCPP_CHECK_MATH_SUPPORT): Likewise.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2003-06-27 Matthias Klose <doko@debian.org>
+
+ * testsuite/Makefile.am (check-abi, check-abi-verbose): Save
+ output of abi-check in libstdc++-v3-abi.sum.
+ * testsuite/Makefile.in: Regenerate.
+
+2003-06-25 Phil Edwards <pme@gcc.gnu.org>
+
+ Bulk documentation merge (copy) from trunk.
+ * docs/doxygen/filter, docs/doxygen/filter.sed,
+ docs/doxygen/mainpage.html, docs/doxygen/run_doxygen,
+ docs/doxygen/user.cfg.in, docs/html/configopts.html,
+ docs/html/documentation.html, docs/html/explanations.html,
+ docs/html/install.html, docs/html/test.html, docs/html/17_intro/BUGS,
+ docs/html/17_intro/CHECKLIST, docs/html/17_intro/contribute.html,
+ docs/html/20_util/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.
+
+2003-06-23 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.target (freebsd*): Set abi_baseline_pair.
+ * config/abi/i386-freebsd4/baseline_symbols.txt: Update from 3.2
+ (at or near first release) to 3.3.
+ * config/abi/i386-freebsd5/baseline_symbols.txt: New file.
+ * config/abi/alpha-freebsd5/baseline_symbols.txt: New file.
+ * config/abi/sparc-freebsd5/baseline_symbols.txt: New file.
+
+2003-06-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR bootstrap/11272
+ Backport from mainline:
+
+ 2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+
+ * config/io/basic_file_stdio.cc: include <unistd.h>.
+
+2003-06-20 Matthias Klose <doko@debian.org>
+
+ * configure.target: Set try_cpu to target_cpu for existing
+ baseline files.
+
+2003-06-19 Andreas Jaeger <aj@suse.de>
+
+ * configure.in: Pass MULTISUBDIR to testsuite/Makefile.
+ * configure: Regenerated.
+
+2003-06-19 Andreas Jaeger <aj@suse.de>
+
+ Backport from mainline:
+ 2003-06-18 Andreas Jaeger <aj@suse.de>
+
+ * testsuite/Makefile.am (new-abi-baseline): Create baseline
+ directory.
+ (baseline_file): Use baseline_dir.
+ (baseline_dir): New.
+ (mkinstalldirs): New.
+
+ * acinclude.m4: Rename baseline_file to baseline_dir, strip
+ filename from baseline_dir.
+
+ * testsuite/Makefile.in: Regenerated.
+ * Makefile.in: Regenerated.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+ 2003-06-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/abi/i486-linux-gnu/baseline_symbols.txt: Update to 3.3.0.
+
+ 2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
+
+ * Makefile.am (check-abi): Move...
+ (new-abi-baseline): Move...
+ * testsuite/Makefile.am: ...here.
+ (new-abi-baseline): Conditionalize.
+ (check-abi): Conditionalize.
+ (check-abi-verbose): New.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+ * configure.in: Consolidate testsuite configure bits.
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Same.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+ * testsuite/abi_check.cc: Add --check-verbose.
+ Only output detailed information if --check-verbose.
+
+
+ 2003-06-16 Andreas Jaeger <aj@suse.de>
+
+ * testsuite/abi_check.cc: Create summary report.
+
+ 2003-06-16 Andreas Jaeger <aj@suse.de>
+
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Make
+ check-abi multilib aware.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+ 2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
+ Andreas Jaeger <aj@suse.de>
+
+ * configure.target: Set x86_64 abi_baseline pair correctly.
+
+
+ 2003-06-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/abi/i686-pc-linux-gnu: To..
+ * config/abi/i486-linux-gnu: ...this.
+ * config/abi/alphaev67-unknown-linux-gnu: To..
+ * config/abi/alpha-linux-gnu: ...this.
+ * config/abi/ia64-unknown-linux-gnu: To...
+ * config/abi/ia64-linux-gnu: ...this.
+ * config/abi/x86_64-unknown-linux-gnu: To...
+ * config/abi/x86_64-linux-gnu: ...this.
+ * config/abi/i386-unknown-freebsd4: To...
+ * config/abi/i386-freebsd4: ...this.
+ * configure.target: abi_baseline_triplet to abi_baseline_pair.
+ Simplify cpu bits so that abi_baseline_pair can use the same
+ cpu configuration.
+ * acinclude.m4: Same.
+ * aclocal.m4: Regenerate.
+ * configure.in: Can't get enable_abi_check to yes unless native.
+ * configure: Regenerate.
+
+2003-06-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:5:0.
+ * configure: Regenerated.
+
+2003-06-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11095
+ * include/bits/istream.tcc (operator>>(basic_istream&, _CharT*)):
+ Deal with width() smaller than zero.
+ * include/bits/ostream.tcc (operator<<(basic_ostream&, _CharT),
+ operator<<(basic_ostream&, char), operator<<(basic_ostream&,
+ const _CharT*), operator<<(basic_ostream<_CharT, _Traits>&,
+ const char*), operator<<(basic_ostream<char, _Traits>&,
+ const char*), operator<<(basic_ostream, const basic_string&)): Likewise.
+
+2003-06-06 Nathan Myers <ncm-nospam@cantrip.org>
+
+ * include/bits/stl_iterator.h (reverse_iterator::reverse_iterator()):
+ Apply DR235: default constructor default-initializes data member.
+ Instantiated on a pointer type, the member has to end up equal
+ to zero.
+
+2003-06-02 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR libstdc++/9815
+ * config/cpu/i386/atomicity.h (__exchange_and_add): add intel
+ asm case to asm.
+ * config/cpu/i486/atomicity.h (__exchange_and_add): Likewise.
+ (__atomic_add): likewise.
+
+2003-06-02 Richard Kreckel <Richard.Kreckel@GiNaC.DE>
+
+ PR libstdc++/11062
+ * config/cpu/mips/atomicity.h: Change __attribute__ ((unused)) to
+ __attribute__ ((__unused__)).
+ * config/os/aix/atomicity.h: Likewise.
+
+2003-05-27 Steve Ellcey <sje@cup.hp.com>
+
+ * config/os/hpux/os_defines.h: Define _LIBUNWIND_STD_ABI if we are
+ on IA64 HP-UX.
+ * libsupc++/eh_throw.cc: Don't call _Unwind_Resume_or_Rethrow if
+ _LIBUNWIND_STD_ABI is set.
+
+2003-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * libmath/stubs.c (hypot, hypotf, hypotl): Don't divide by
+ zero.
+ Update copyright year.
+
+2003-05-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * include/bits/stl_alloc.h (__default_alloc_template::_S_chunk_alloc):
+ Cast via void* to avoid -Wcast-align warnings.
+ (__default_alloc_template::_S_refill): Likewise.
+
+2003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR libstdc++/10689
+ * include/std/std_complex.h (pow): Tidy.
+
+2003-05-17 Nathan Myers <ncm@cantrip.org>
+
+ * include/bits/streambuf.tcc (__copy_streambufs): Rewrote.
+
+2003-05-15 Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite/Makefile.am: Properly quote LD_RUN_PATH.
+ * testsuite/Makefile.in: Regenerate.
+
+2003-05-14 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/thread/pthread4.cc: Tweak test.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * docs/html/faq/index.html (3.10): Add note about mips atomicity.h.
+ * docs/html/faq/index.txt: Regenerated.
+
+2003-05-02 Joel Sherrill <joel.sherrill@OARcorp.com>
+ Loren J. Rittle <ljrittle@acm.org>
+ Martin v. Loewis <martin@v.loewis.de>
+
+ libstdc++/10556
+ * config/cpu/i386/atomicity.h: New file.
+
+2003-05-02 Richard Henderson <rth@redhat.com>
+
+ PR c++/10570
+ * libsupc++/eh_catch.cc (__cxa_begin_catch): Handle foreign exceptions.
+ (__cxa_end_catch): Likewise.
+ * libsupc++/eh_throw.cc (__cxa_rethrow): Likewise. Use
+ _Unwind_Resume_or_Rethrow.
+ * libsupc++/eh_personality.cc (empty_exception_spec): New.
+ (PERSONALITY_FUNCTION): Don't ignore terminate or catch-all
+ for _UA_FORCE_UNWIND. Honor empty filter spec for foreign
+ exceptions. Don't push terminate/unexpected to cxa functions.
+ (__cxa_call_unexpected): Remove foreign exception fixmes.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ Revert __locale_cache.
+ * include/bits/locale_facets.tcc (num_put::_M_convert_int): Remove
+ __locale_cache.
+ (num_put::_M_convert_int): Same.
+ (num_put::do_put(bool)): Same.
+ (__locale_cache::_M_init): Same.
+ (__locale_cache::_S_callback): Same.
+ * include/bits/locale_facets.h (__locale_cache_base): Remove.
+ (__locale_cache): Remove.
+ * include/bits/basic_ios.h (basic_ios::init): Remove __locale_cache.
+ (basic_ios::_M_cache_locale): Same.
+ * include/bits/basic_ios.tcc: Same.
+ * include/bits/ios_base.h: Same.
+ (ios_base::_M_cache): Remove.
+ * src/locale-inst.cc: Same.
+ * src/ios.cc: Same.
+ * src/globals.cc: Same.
+
+ * config/linker-map.gnu: Same.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:4:0.
+ * configure: Regenerated.
+
+ * testsuite/abi_check.cc (check_version): Update known versions.
+ Check added symbols for version_name != base version. Add missing
+ symbols to incompatible list.
+
+ * config/linker-map.gnu: Fixup for __basic_file::showmanyc_helper.
+
+2003-05-01 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCPP_EXPORT_FLAGS): Remove -Winline.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+2003-05-01 Paolo Carlini <pcarlini@unitus.it>
+ Nathan Myers <ncm@cantrip.org>
+
+ Backport from mainline fix of 2003-03-28.
+ PR libstdc++/9533
+ * include/bits/fstream.tcc (basic_filebuf<>::open): Don't
+ call underflow().
+ (basic_filebuf<>::showmanyc): Use the information provided
+ by codecvt and __basic_file<>::showmanyc_helper to implement
+ a non-trivial showmanyc.
+ * config/io/basic_file_stdio.h
+ (__basic_file<>::showmanyc_helper): New, declare.
+ * config/io/basic_file_stdio.cc
+ (__basic_file<>::showmanyc_helper): Define.
+ (__basic_file<>::_M_open_mode): Don't set O_NONBLOCK.
+ (__basic_file<char>::open): Don't call fcntl().
+ * acinclude.m4 (GLIBCPP_CHECK_S_ISREG_OR_S_IFREG,
+ GLIBCPP_CHECK_POLL): New macros.
+ * configure.in: Call here.
+ * acconfig.h: Add #undefs for the corresponding symbols.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * config.h.in: Regenerate.
+
+2003-04-29 Phil Edwards <pme@gcc.gnu.org>
+
+ Bulk documentation merge (copy) from trunk.
+ * docs/doxygen/Intro.3, docs/doxygen/TODO, docs/doxygen/mainpage.html,
+ docs/doxygen/run_doxygen, docs/doxygen/user.cfg.in,
+ docs/html/configopts.html, docs/html/debug.html,
+ docs/html/documentation.html, docs/html/explanations.html,
+ docs/html/install.html, docs/html/17_intro/howto.html,
+ docs/html/17_intro/porting.html, docs/html/18_support/howto.html,
+ docs/html/19_diagnostics/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.
+
+2003-04-28 Nathan Myers <ncm@cantrip.org>
+
+ Move some basic_string members out of line because
+ they are too big to reasonably be inline.
+ * include/bits/basic_string.h
+ (assign(const basic_string&, size_type, size_type),
+ assign(const _CharT*, size_type),
+ insert(size_type, const basic_string&, size_type, size_type),
+ insert(size_type, const _CharT*, size_type),
+ replace(size_type, size_type, const _CharT*, size_type)):
+ Move from here to...
+ * include/bits/basic_string.tcc: ...here.
+
+2003-04-28 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/10132
+ * include/std/std_fstream.h (basic_filebuf::is_open): Add throw()
+ exception specifications.
+ (basic_filebuf::close): Same.
+ (basic_filebuf::_M_destroy_internal_buffer): Same.
+ (basic_filebuf): Remove __res_type typedef.
+ * include/std/std_streambuf.h:
+ (basic_streambuf::_M_pback_destroy): Same.
+ * src/fstream.cc: Same.
+ * include/bits/fstream.tcc
+ (basic_filebuf::_M_convert_to_external): Simplify.
+ (basic_filebuf::seekoff): Use has_facet before use_facet.
+ (basic_filebuf::close): Add exception specification of throw().
+
+2003-04-25 Ranjit Mathew <rmathew@hotmail.com>
+ Phil Edwards <pme@gcc.gnu.org>
+
+ * testsuite_flags.in: Guard against the possibility
+ of having "xgcc" as a part of a folder name in the
+ path to the GCC build folder.
+ * testsuite/Makefile.am: Likewise.
+ * testsuite/Makefile.in: Regenerated.
+
+2003-04-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * src/localename.cc (__gnu_cxx::facet_vec): Correct types.
+
+2003-04-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/locale/generic/c_locale.h: Fix placement for old parser.
+
+2003-04-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/locale/generic/c_locale.h (__convert_from_v): Use
+ attribute unused.
+
+2003-04-23 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/istream.tcc (putback, unget, sync, tellg, seekg):
+ Comment and change to comply with DR 60 and the effect on gcount().
+ * include/std/std_istream.h: Update comments.
+
+2003-04-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * testsuite/27_io/filebuf_members.cc (test_07): Adjust timing.
+
+2003-04-22 Jerry Quinn <jlquinn@optonline.net>
+ Benjamin Kosnik <bkoz at redhat dot com>
+
+ * include/bits/basic_ios.h (ios_base::Init::_S_ios_create):
+ Declare friend.
+ (basic_ios::init, basic_ios::_M_cache_locale): Add locale
+ cache argument.
+ * include/bits/basic_ios.tcc (basic_ios::init): Pass cache to
+ _M_cache_locale.
+ (basic_ios::_M_cache_locale): Use placement new if cache is
+ provided. Track the distinction in iword(0).
+ * include/bits/locale_facets.tcc
+ (__locale_cache::_S_callback): Only delete cache if iword(0)
+ is 0, i.e. not static.
+ * src/globals.cc: Allocate space for __locale_cache objects.
+ * src/ios.cc (__gnu_cxx): Declare extern __locale_cache objects
+ for standard wide and narrow stream objects.
+ (ios_base::Init::_S_ios_create): Use them.
+
+2003-04-18 Loren J. Rittle <ljrittle@acm.org>
+
+ * config/os/bsd/freebsd/ctype_inline.h: Support _M_table
+ when so installed.
+
+ * docs/html/17_intro/porting.texi (_GLIBCPP_USE_C99_CHECK): New macro.
+ (_GLIBCPP_USE_C99_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
+ * config/os/bsd/freebsd/os_defines.h (_GLIBCPP_USE_C99_CHECK):
+ New macro.
+ (_GLIBCPP_USE_C99_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_CHECK): New macro.
+ (_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC): New macro.
+ * include/c_std/std_cstdlib.h: Use new macros.
+ * include/c_std/std_cstdio.h: Use new macros.
+ * include/c_std/std_cwchar.h: Use new macros.
+
+2003-04-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/9555
+ * include/bits/ostream.tcc: Catch all exceptions for formatted
+ output, instead of std::exception and derivatives.
+ * include/bits/istream.tcc: Same.
+
+2003-04-17 Andreas Tobler <toa@pop.agri.ch>
+ Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/os/generic/ctype_inline.h: Fix.
+
+2003-04-17 Andreas Tobler <toa@pop.agri.ch>
+
+ * configure.target (_cpu_incdir_fullpath): Solaris 2.9 uses
+ solaris includes, not generic.
+
+2003-04-15 Benjamin Kosnik <bkoz@redhat.com>
+ Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9423
+ * docs/html/27_io/howto.html
+ ('The buffering is screwing up my program!'): Explain that
+ opening counts as an I/O operation.
+
+2003-04-15 Andreas Tobler <a.tobler@schweiz.ch>
+
+ * testsuite/thread/pthread1.cc: Enable for darwin test.
+ * testsuite/thread/pthread2.cc: Same.
+ * testsuite/thread/pthread3.cc: Same.
+ * testsuite/thread/pthread4.cc: Same.
+ * testsuite/thread/pthread5.cc: Same.
+ * testsuite/thread/pthread6.cc: Same.
+
+2003-04-15 Loren J. Rittle <ljrittle@acm.org>
+
+ * include/bits/concept_check.h: Fix multi-line comment.
+ * testsuite/17_intro/headers.cc (dg-options): Add -Wall -Wsystem-header
+ when target is *-*-freebsd*.
+
+ libstdc++/7680
+ * include/c_std/std_cmath.h (__gnu_cx::__c99_binding): New namespace.
+ Populate it with multiple legal ways to obtain the C99 float
+ transcendentals. Use them instead of direct global reference.
+ (C99 FP capture): Guard usage with _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC.
+ * docs/html/17_intro/porting.texi
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK): New macro.
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): New macro.
+ (_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC): New macro.
+ * config/os/bsd/freebsd/os_defines.h
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK): New macro.
+ (_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): New macro.
+ * testsuite/26_numerics/c_math_dynamic.cc: New file.
+
+ * testsuite/26_numerics/c99_classification_macros_c.cc: Add XFAIL.
+
+2003-04-14 M. Warner Losh <imp@bsdimp.com>
+
+ * include/std/std_fstream.h: Add required typename.
+
+2003-04-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * os/hpux/ctype_inline.h: Replace with gnu-linux version.
+
+2003-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * basic_file_stdio.cc (__basic_file<char>::close): Don't flush stream
+ twice. Always set _M_cfile to 0 when stream was open.
+
+2003-04-04 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/10276
+ * src/ios.cc (ios_base::_M_init): Remove _M_callbacks
+ initialization.
+
+2003-03-31 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/ext/stdio_filebuf.h
+ (stdio_filebuf::stdio_filebuf(int, openmode, bool, size_t),
+ stdio_filebuf::stdio_filebuf(__c_file*, openmode, size_t):
+ _M_buf_size_opt == 0 means only "not to use an allocated buffer"
+ since a stack-based buffer is used for small values of the size_t
+ parameter.
+ * include/bits/fstream.tcc (basic_filebuf::_M_really_overflow).
+ If _M_buf_size != 0 flush out the buffer (any kind, stack-based too).
+ * testsuite/ext/stdio_filebuf_2.cc: New testfile.
+
+2003-03-25 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/10097
+ * src/fstream.cc (basic_filebuf<char>::_M_underflow_common,
+ basic_filebuf<wchar_t>::_M_underflow_common):
+ if (gptr() < egptr()) return *gptr().
+ * testsuite/27_io/filebuf_virtuals.cc (test15): Add.
+
+ * testsuite/27_io/filebuf_members.cc (test_04): Minor
+ changes: unlink fifo before making it, fix spelling error.
+
+2003-03-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * config/os/hpux/ctype_noninline.h (ctype<char>::classic_table):
+ Correct return value.
+
+2003-03-21 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/5730
+ * include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
+ * include/std/std_complex.h (norm): Use faster,
+ less accurate computation for builtin float types under --fast-math.
+
+2003-03-21 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/10167
+ * config/locale/ieee_1003.1-2001/codecvt_specializations.h
+ (do_out, do_unshift, do_in): qualify 'ok', 'error', 'partial',
+ 'noconv' with codecvt_base::.
+
+2003-03-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * src/strstream.cc (strstreambuf::overflow): Make sure operands of
+ min and max have the same type.
+ * include/bits/basic_string.tcc (append, rfind, compare): Likewise.
+
+2003-03-17 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/Makefile.am (CLEANFILES): Add tmp*.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/27_io/filebuf_members.cc: Consistently name tmp files.
+ Cleanups.
+
+2003-03-17 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9964
+ * include/bits/fstream.tcc (basic_filebuf::close):
+ Always close file, even when write fails.
+ * testsuite/27_io/filebuf_members.cc (test_07): New test.
+
+2003-03-17 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * libsupc++/Makefile.am (LTCOMPILE): Add $(AM_CFLAGS) $(CFLAGS).
+ * libsupc++/Makefile.in: Regenerate.
+
+2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9988
+ * include/bits/fstream.tcc (overflow): don't write EOF to file.
+ * testsuite/27_io/filebuf_virtuals.cc (test14): Add.
+
+2003-03-09 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9424
+ * include/bits/streambuf.tcc (__copy_streambufs): Use
+ sgetn-sputn only when sputn cannot fail, otherwise fall back
+ to safe snextc-sputc.
+ * testsuite/27_io/streambuf_members.cc (test11, test12): Add.
+
+2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+ PR libstdc++/9561
+ * include/bits/basic_ios.h (_M_setstate): New.
+ * include/bits/ostream.tcc (operator<<): Use it.
+ * include/bits/istream.tcc (operator>>): Use it.
+ * include/std/std_ostream.h (operator<<): Make friends.
+ * include/std/std_istream.h (operator>>): Make friends.
+ * testsuite/27_io/ostream_exception.cc,
+ testsuite/27_io/istream_exception.cc: New tests.
+
+2003-03-08 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9182
+ * include/bits/fstream.tcc (_M_really_overflow): Check
+ for _M_convert_to_external possible failures.
+ * include/std/std_fstream.h (sync): Check _M_really_overflow
+ return value and return -1 in case of failure.
+ * testsuite/27_io/filebuf_virtuals.cc (test12, test13): Add.
+
+ * include/bits/fstream.tcc (_M_convert_to_external):
+ Set __elen to zero if codecvt::out eventually fails.
+
+2003-03-08 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9826
+ * include/bits/istream.tcc (operator>>(_CharT*),
+ operator>>(basic_string&), ws): Pass a char_type to __ctype.is.
+ * testsuite/27_io/stringstream.cc (test02): Add.
+
+ * include/bits/istream.tcc (operator>>(_CharT*)):
+ Assign a char_type to *__s.
+
+2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::ios_base): Correct order of _M_word and
+ _M_word_size initialization.
+
+2003-03-07 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Tweak.
+
+2003-03-07 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9817
+ * include/bits/locale_facets.tcc
+ (collate::do_compare, collate::do_transform):
+ Handle nul characters in input.
+
+2003-03-07 Jerry Quinn <jlquinn@tiamat>
+
+ * include/bits/streambuf_iterator.h (_M_put): Set _M_failed if
+ sputn fails.
+ * testsuite/27_io/ostream_fail.cc: New test.
+
+2003-03-07 Matthias Klose <doko@debian.org>
+
+ * Makefile.am (AM_MAKEFLAGS): Also pass gxx_include_dir.
+ FLAGS_TO_PASS: Set to AM_MAKEFLAGS
+ * Makefile.in: Regenerate.
+ * libsupc++/Makefile.am: Express glibcppinstalldir in terms
+ of gxx_include_dir.
+ AM_MAKEFLAGS: Pass gxx_include_dir.
+ * libsupc++/Makefile.in: Regenerate.
+
+2003-03-06 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::_M_init): Remove _M_word_size.
+ (ios_base::ios_base): Set _M_word, _M_word_size.
+ (ios_base::~ios_base): Remove redundant test.
+ * testsuite/27_io/ios_base_storage.cc (test03): New.
+
+2003-03-05 Jerry Quinn <jlquinn@optonline.net>
+
+ * testsuite/27_io/ios_base_storage.cc (test02): Set exception
+ mask. Test setting small-numbered pword and iword slots. Test
+ behavior at limit of numeric_limits::max. Check that values are
+ still good after failures.
+
+2003-03-05 Carlo Wood <carlo@alinoe.com>
+
+ * include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
+ _S_initialized() in order to allow debugging libraries to detect
+ when the std streams are initialized from an overloaded operator
+ new.
+
+2003-03-04 Benjamin Kosnik <bkoz@redhat.com>
+
+ * config/linker-map.gnu: Version.
+
+2003-03-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/basic_ios.h: Update copyright.
+ (_M_cache_locale): New.
+ (_M_cache_facets): Deprecate.
+ * include/bits/basic_ios.tcc (basic_ios::copyfmt): Set up locale
+ caching.
+ (basic_ios::imbue,basic_ios::init): Use _M_cache_locale.
+ (basic_ios::_M_cache_locale): New.
+ (basic_ios::_M_cache_facets): Deprecate.
+ * include/bits/ios_base.h (__locale_cache_base): Declare.
+ (ios_base::_M_cache): Define.
+ * include/bits/locale_facets.h
+ (__locale_cache_base,__locale_cache<_CharT>): New classes.
+ * include/bits/locale_facets.tcc
+ (num_put::_M_convert_int): Use locale cache literal string,
+ grouping flag, thousands separator.
+ (num_out::_M_convert_float): Use locale cache grouping flag, decimal
+ point, thousands separator.
+ (__locale_cache<_CharT>::_M_init,__locale_cache<_CharT>::_S_callback):
+ New.
+ * src/locale-inst.cc
+ (__locale_cache<_CharT>::_S_callback, __locale_cache<char>,
+ __locale_cache<wchar_t>): New.
+
+2003-03-04 Jerry Quinn <jlquinn@optonline.net>
+
+ * src/ios.cc (ios_base::_M_grow_words): Don't delete _M_word on
+ new failure. Throw exception if badbit and exception mask when ix
+ >= numeric_limits<int>::max().
+
+2003-03-03 Benjamin Kosnik <benjamin@redhat.com>
+
+ * config/linker-map.gnu (GLIBCPP_3.2.3): New.
+ Add new symbols.
+ * testsuite/abi_check.cc: Update.
+
+2003-03-03 Jerry Quinn <jlquinn@optonline.net>
+ Benjamin Kosnik <benjamin@redhat.com>
+
+ * include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
+ Add indexes into this array.
+ (__num_base::_S_atoms): To _S_atoms_in.
+ (num_put::_M_insert): Rename to _M_pad.
+ (num_put::_M_convert_int): Adjust remove __mod, __modl arguments.
+ (num_put::_M_widen_int): Rename to _M_group_int.
+ (num_put::_M_widen_float): Rename to _M_group_float.
+ * include/bits/locale_facets.tcc (__int_to_char): New inline
+ function and adapter functions.
+ (num_put::_M_group_int): Streamline.
+ (num_put::_M_group_float): Streamline.
+ (num_put::_M_convert_int): Remove unused parameter names. Choose
+ large enough buffer for text. Use __int_to_char instead of
+ __convert_from_v. Formatted text is now at the end of the buffer.
+ (num_put::_M_convert_float): Preliminary fixups.
+ * src/locale-inst.cc (__convert_from_v<long long>): Add ifdef.
+ (__int_to_char<unsigned long long>): Same.
+ (__int_to_char<char, unsigned long>): New.
+ (__int_to_char<char, unsigned long long>): New.
+ (__int_to_char<wchar_t, unsigned long>): New.
+ (__int_to_char<wchar_t, unsigned long long>): New.
+ * src/locale.cc: Add _S_atoms_in, _S_atoms_out.
+
+2003-02-28 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/27_io/ios_base_storage.cc (main): Call
+ set_memory_limits.
+
+2003-02-28 Brad Spencer <spencer@infointeractive.com>
+ Nathan Myers <ncm@cantrip.org>
+
+ * src/Makefile.am (stamp-debug): Clean.
+ * src/Makefile.in: Regenerate.
+
+2002-02-28 Loren J. Rittle <ljrittle@acm.org>
+
+ * src/Makefile.am: Resolve non-portable use of $<.
+ * src/Makefile.in: Rebuilt.
+
+2002-02-28 Phil Edwards <pme@gcc.gnu.org>
+
+ * configure.in (GLIBCPP_ENABLE_CXX_FLAGS): Do not pass arguments,
+ let the defaults work.
+ * configure: Regenerate.
+
+2002-02-28 Phil Edwards <pme@gcc.gnu.org>
+
+ * acinclude.m4: Remove trailing whitespace.
+ (GLIBCPP_ENABLE_CXX_FLAGS): Fix.
+ * aclocal.m4, configure: Regenerate.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none.
+ Call GLIBCPP_ENABLE_DEBUG_FLAGS.
+ * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new
+ conditional if --enable-debug is yes. Rework.
+ (GLIBCPP_ENABLE_DEBUG_FLAGS): New.
+ * aclocal.m4: Regenerate.
+ * libio/Makefile.am: Remove DEBUG_FLAGS.
+ * libio/Makefile.in: Regenerate.
+ * libsupc++/Makefile.am: Remove DEBUG_FLAGS.
+ * libsupc++/Makefile.in: Regenerate.
+ * docs/html/configopts.html: Add docs for --enable-debug,
+ --enable-debug-flags.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ Correct dependency tracking, build warts.
+ * configure.in: Correct repeated AC_OUTPUT thrashing by
+ config-ml.in
+ * configure: Regenerate.
+ * include/Makefile.am (stamp-target): Stamp in top_builddir.
+ * include/Makefile.in: Regenerate.
+ * src/Makefile.am (codecvt_members.cc): New rule.
+ (collate_members.cc): Same.
+ (ctype_members.cc): Same.
+ (messages_members.cc): Same.
+ (monetary_members.cc): Same.
+ (numeric_members.cc): Same.
+ (time_members.cc): Same.
+ (c++locale.cc): Same.
+ (basic_file.cc): Same.
+ * src/Makefile.in: Regenerate.
+ * acinclude.m4 (CCTYPE_CHAR_CC): Remove.
+ (CCCODECVT_CC): Don't link, AC_SUBST.
+ (CCOLLATE_CC): Same.
+ (CCTYPE_CC): Same.
+ (CMESSAGES_CC): Same.
+ (CMONEY_CC): Same.
+ (CNUMERIC_CC): Same.
+ (CTIME_CC): Same.
+ (CLOCALE_CC): Same.
+ * aclocal.m4: Regenerate.
+
+ * src/Makefile.am (libstdc___la_LIBADD): Use top_builddir
+ for convenience libraries.
+ (version_arg): Rename linker.map to libstdc++.ver.
+ (libstdc___la_DEPENDENCIES): Remove linker.map, add
+ libstdc++-symbol.ver as a dependency.
+ (libstdc++-symbol.ver): Add rule.
+ * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Change LINKER_MAP to
+ SYMVER_MAP. Don't link, AC_SUBST.
+
+ * include/Makefile.am (target_headers_noinst): New.
+ (stamp-target): Add CLOCALE_INTERNAL_H.
+ * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Don't link
+ CLOCALE_INTERNAL_H, AC_SUBST.
+ * config/locale/gnu/c_locale.cc: Modify c++locale_internal.h
+ include.
+ * config/locale/gnu/time_members.cc: Same.
+ * config/locale/gnu/numeric_members.cc: Same.
+ * config/locale/gnu/monetary_members.cc: Same.
+ * config/locale/gnu/messages_members.cc: Same.
+ * config/locale/gnu/ctype_members.cc: Same.
+ * config/locale/gnu/collate_members.cc: Same.
+ * config/locale/gnu/codecvt_members.cc: Same.
+ * config/locale/generic/codecvt_members.cc: Remove.
+
+2003-02-27 Jerry Quinn <jlquinn@optonline.net>
+
+ * config/locale/generic/messages_members.h (messages::messages):
+ Remove name from unused parameter.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/Makefile.am (stamp-std-precompile): Add rule.
+ * include/Makefile.in: Regenerated.
+
+2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/c++config (_GLIBCPP_EXTERN_TEMPLATE): Define.
+ * include/bits/basic_ios.tcc: Guard use of extern template.
+ * include/std/std_iomanip.h: Same.
+ * include/bits/streambuf.tcc: Same.
+ * include/bits/stl_alloc.h: Same.
+ * include/bits/locale_facets.tcc: Same.
+ * include/bits/ostream.tcc: Same.
+ * include/bits/istream.tcc: Same.
+ * include/bits/fstream.tcc: Same.
+ * include/bits/basic_string.tcc: Same.
+
+2003-02-25 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9825
+ * src/fstream.cc
+ (basic_filebuf<char/wchar_t>::_M_underflow_common): When
+ __bump is true (uflow), always increment the read pointer
+ (_M_in_cur) before returning successfully.
+ * testsuite/27_io/filebuf_virtuals.cc (test11): Add.
+
+2003-02-25 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/std/std_sstream.h (str()): the size of the
+ current string may be different from the initial one
+ whenever _M_out_end > _M_out_beg.
+ * testsuite/27_io/stringbuf_members.cc (test07): Add.
+
+2003-02-21 Phil Edwards <pme@gcc.gnu.org>
+
+ * config/cpu/generic/atomicity.h (_Atomic_add_mutex): Fix declaration.
+ (_GLIBCPP_NEED_GENERIC_MUTEX): Define for this file.
+ (_Atomic_add_mutex_once, __gthread_atomic_add_mutex_once): Declare
+ when we don't have static mutex initialization.
+ (__exchange_and_add): Use _Atomic_add_mutex_once.
+ * src/misc-inst.cc: Definitions of all the above.
+ * config/linker-map.gnu: Also export locking symbols needed for the
+ generic atomicity.h case.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-19 Phil Edwards <pme@gcc.gnu.org>
+
+ PR libstdc++/9582
+ * include/bits/stl_alloc.h: Remove all traces of assert().
+
+2003-02-18 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9582
+ * include/bits/stl_alloc.h (__pool_alloc::allocate): Remove assert.
+
+2003-02-17 Paolo Carlini <pcarlini@unitus.it>
+
+ * src/locale-inst.cc: Do not include <cassert>.
+ * src/locale.cc: Likewise.
+
+2003-02-17 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9169
+ * include/bits/fstream.tcc (_M_convert_to_external):
+ Deal correctly with noconv, as prescribed by 27.8.1.4,p8.
+ * testsuite/27_io/filebuf_virtuals.cc (test10): Add.
+
+2003-02-13 Paolo Carlini <pcarlini@unitus.it>
+
+ * include/bits/ostream.tcc (sentry::sentry): Improve
+ performance-wise the fix for libstdc++/9563.
+
+2003-02-13 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9320
+ * include/ext/stdio_filebuf.h
+ (stdio_filebuf(int, std::ios_base::openmode, bool, int_type),
+ stdio_filebuf(std::__c_file*, std::ios_base::openmode, int_type)):
+ Change to take a __size parameter of type size_t, not
+ of type (template parameter dependent) int_type.
+ * src/ios.cc (ios_base::Init::_S_ios_create): Change type of
+ size vars to size_t.
+ * testsuite/ext/stdio_filebuf.cc: Add.
+
+2003-02-12 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9563
+ * include/bits/ostream.tcc (sentry::sentry): Check
+ the state of the stream after the preparation.
+ * testsuite/27_io/ostream_sentry.cc: Add.
+
+2003-02-11 Scott Snyder <snyder@fnal.gov>
+
+ PR libstdc++/9659
+ * include/bits/fstream.tcc (seekoff): Avoid operator+
+ for pos_type.
+
+2003-02-11 Paolo Carlini <pcarlini@unitus.it>
+ Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9318
+ * include/bits/streambuf.tcc (__copy_streambufs):
+ Don't conditionalize the copy to __testput.
+ * testsuite/27_io/streambuf_members.cc (test09, test10): Add.
+
+2003-02-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * hppa/atomicity.h (__Atomicity_lock<__inst>::_S_atomicity_lock):
+ Correct alignment.
+ (__exchange_and_add, __atomic_add): Use PA 2.0 ordered store to reset
+ lock.
+
+2003-02-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9548
+ Implement resolution of DR 231 (Ready)
+ * include/bits/locale_facets.h (__num_base::_S_format_float):
+ Return void.
+ * src/locale.cc (__num_base::_S_format_float): Implement
+ resolution of DR 231.
+ * include/bits/locale_facets.tcc (num_put::_M_convert_float):
+ Tweak uses. Check for negative precision.
+ * testsuite/22_locale/num_put_members_char.cc (test06): Add
+ * testsuite/22_locale/num_put_members_wchar_t.cc (test06): Ditto.
+
+2003-02-07 Paolo Carlini <pcarlini@unitus.it>
+
+ * testsuite/27_io/filebuf_virtuals.cc (test08): Fix for
+ unsigned char platforms.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/locale_facets.tcc (time_put::do_put): Use __write.
+ (money_put::do_put): Same.
+
+2003-02-05 Jerry Quinn <jlquinn@optonline.net>
+
+ * include/bits/ios_base.h (ios_base): Document reserved storage.
+
+ * include/bits/locale_facets.h: (struct __pad): Comment on
+ implementation.
+ (__verify_grouping): Same.
+ (__add_grouping): Same.
+ * include/bits/locale_facets.tcc (__verify_grouping): Move
+ comments to declaration.
+ (__add_grouping): Same.
+
+ * include/bits/locale_facets.tcc:
+ (__write<_CharT, _OutIter>): New function.
+ (__write<_CharT>): New function specialization.
+ (num_put::_M_insert): Remove explicit loop over iterator. Use
+ __write.
+ (num_put::_M_widen_float): Remove __basefield.
+ (num_put::_M_widen_int): Move __basefield to within grouping block.
+
+ * include/bits/streambuf_iterator.h: Include <streambuf>.
+ (ostreambuf_iterator::_M_put): Add.
+
+2003-02-05 Paolo Carlini <pcarlini@unitus.it>
+
+ * testsuite/26_numerics/valarray_name_lookup.cc: Fix typo.
+
+2003-02-05 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9439, PR libstdc++/9425
+ * config/io/basic_file_stdio.cc
+ (__basic_file<char>::seekoff, seekpos): Return -1L if
+ fseek fails.
+ * include/bits/fstream.tcc (basic_filebuf::seekoff):
+ Check _M_file.seekoff return value; always return
+ pos_type(off_type(-1)) in case of failure.
+ (basic_filebuf::pbackfail): Check this->seekoff return
+ value and return traits_type::eof() in case of failure.
+ * testsuite/27_io/filebuf_virtuals.cc (test09): Add.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/26_numerics/valarray_name_lookup.cc: Fix.
+
+2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ * configure.in (libtool_VERSION): To 5:3:0.
+ * configure: Regenerated.
+
+2003-02-04 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9538
+ * include/bits/streambuf.tcc (sputbackc): Access
+ this->gptr()[-1] only if _M_in_beg < _M_in_cur.
+ * testsuite/27_io/filebuf_virtuals.cc (test08): Add.
+
+2003-02-04 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9507
+ * include/bits/fstream.tcc (open): If the 'ate' repositioning
+ operation fails, calls close _and_ returns a null pointer
+ to indicate failure (27.8.1.3,4).
+ * testsuite/27_io/filebuf_members.cc (test_06): Add.
+
+2003-02-04 Petur Runolfsson <peturr02@ru.is>
+
+ * testsuite/27_io/filebuf_members.cc (test_04): Remove exit(0).
+
+2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * docs/html/17_intro/porting.texi: Update to GFDL 1.2.
+ * docs/html/17_intro/porting.html: Regenerate.
+
+2003-02-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR libstdc++/9234
+ * include/bits/valarray_meta.h (_UnBase::operator[]): Apply unary
+ operator.
+
+ * include/bits/valarray_meta.h (__not_equal_to): Use != instead of ==.
+
+ * testsuite/26_numerics/valarray_operators.cc: New test.
+
+2003-01-28 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/9433
+ * libsupc++/tinfo.cc (__vmi_class_type_info::__do_dyncast): Cope
+ with bases which are very ambiguous.
+
+2003-01-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * src/Makefile.am (CONFIG_CXXFLAGS): Reverse order of
+ @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@.
+ * libsupc++/Makefile.am (CONFIG_CXXFLAGS): Likewise.
+ * src/Makefile.in: Regenerate.
+ * libsupc++/Makefile.in: Regenerate.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * acinclude.m4 (glibcpp_toolexeclibdir): Instead of
+ $(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless
+ version_specific_libs is enabled.
+ * aclocal.m4, configure: Rebuilt.
+
+2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de>
+
+ * include/Makefile.am (install-data-local): Prepend
+ $(DESTDIR) to destination paths in all (un)installation
+ commands. Use ${c_base_builddir} and ${std_builddir}
+ as destination subdirectories to achieve consistency with
+ preceding mkinstalldirs commands. No effect because both
+ variables contain "." only.
+ * include/Makefile.in: Regenerate.
+
+2003-01-23 Phil Edwards <pme@gcc.gnu.org>
+
+ Bulk documentation merge (copy) from trunk.
+ * docs/doxygen/tables.html, docs/doxygen/user.cfg.in,
+ docs/html/configopts.html, docs/html/debug.html,
+ docs/html/documentation.html, docs/html/17_intro/howto.html,
+ docs/html/19_diagnostics/howto.html, docs/html/ext/sgiexts.html:
+ Merge from trunk.
+
+2003-01-23 Petur Runolfsson <peturr02@ru.is>
+
+ PR libstdc++/9322
+ * include/std/std_streambuf.h
+ (basic_streambuf::basic_streambuf,
+ basic_streambuf::~basic_streambuf,
+ basic_streambuf::getloc, basic_streambuf::imbue):
+ Remove _M_buf_locale_init use.
+ * include/bits/fstream.tcc (basic_filebuf::imbue): Likewise
+ * testsuite/27_io/filebuf_virtuals.cc (test08): Add.
+ * testsuite/27_io/streambuf_members.cc (test08): Add.
+ * testsuite/27_io/stringbuf_virtuals.cc (test08): Add.
+
+2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ Revert include ordering.
+ * config/locale/generic/c_locale.h: Add include guards.
+ * config/locale/gnu/c_locale.h: Same.
+ * include/bits/locale_classes.h: Remove cctype include.
+ * include/std/std_iosfwd.h: Add c++locale.h, cctype includes.
+ * include/std/std_fstream.h: Remove streambuf include.
+ * include/std/std_sstream.h: Remove streambuf include.
+
+2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ Match 3.2.0 ABI.
+ * include/bits/stl_alloc.h: Revert.
+
+ * include/bits/codecvt.h: Revert.
+ * config/locale/gnu/codecvt_members.cc: Revert.
+ * src/codecvt.cc: Revert.
+ * src/localename.cc: Revert.
+
+ * include/bits/ios_base.h (ios_base::~ios_base): Revert.
+
+ * config/linker-map.gnu: Mostly match 3_2-branch file.
+
+2003-01-22 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/locale_facets.h: Move non-facet classes requiring
+ <string> to...
+ * include/bits/locale_classes.h: New.
+ * include/bits/Makefile.am (bits_headers_src): Add locale_classes.h.
+ * include/bits/Makefile.in: Regenerate.
+
+ * include/bits/locale_facets.tcc (__convert_from_v): Move to...
+ * config/locale/gnu/c_locale.h: ...here.
+ * config/locale/generic/c_locale.h: Same.
+
+ * include/bits/locale_facets.tcc: Move declarations to...
+ * include/bits/locale_facets.h: ...here.
+ * include/bits/basic_ios.h: Tweak includes accordingly.
+ * include/std/std_sstream.h: Add streambuf include.
+ * include/std/std_fstream.h: Ditto.
+ * include/std/std_locale.h: Add locale_classes.h include.
+ * include/std/std_iosfwd.h: Tweak.
+ * src/concept-inst.cc: Add iterator include.
+
+ * config/linker-map.gnu: Specify __cxa functions, mark __cxa_dyn_*
+ bits as unexported in the future.
+
+2003-01-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Substitute
+ GLIBCPP_TEST_WCHAR_T if building wchar_t bits in the library.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * testsuite/Makefile.am (all-local): Add conditional rule to
+ generate testsuite_wchar_t.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/lib/libstdc++-v3-dg.exp
+ (libstdc++-v3-list-sourcefiles): Remove wchar_t files if
+ testsuite_wchar_t is not present in the build directory.
+ * testsuite/libstdc++-v3.dg/dg.exp: Add -g -O2 to DEFAULT_CXXFLAGS.
+ Remove setulimit bits.
+ * testsuite/26_numerics/complex_value.cc: Set to noopts.
+ * testsuite/Makefile.am (CLEANFILES): Add.
+ * testsuite/Makefile.in: Regenerate.
+
+2003-01-15 Benjamin Kosnik <bkoz@redhat.com>
+
+ Renames, namespaces for testsuite utilities.
+ * testsuite/testsuite_hooks.h: Put into namespace __gnu_cxx_test.
+ (gnu_allocator_tracker): Rename to allocation_tracker.
+ (gnu_new_allocator): Rename to tracker_alloc.
+ (__set_testsuite_memlimit): Rename to set_memory_limits.
+ (gnu_assignment_operator): Rename to assignment_operator.
+ (gnu_destructor): Rename to destructor.
+ (gnu_copy_tracker): Rename to copy_tracker.
+ (gnu_char, gnu_int, gnu_long): Rename to pod_char, pod_int, pod_long.
+ (run_tests_wrapped_locale): New.
+ (run_tests_wrapped_env): New.
+ * testsuite/testsuite_hooks.cc: Same.
+ (class locale_data): Add.
+ (class enviornment_variable): Add.
+ (class not_found): Add.
+ * testsuite/testsuite_allocator.h: Same.
+ * testsuite/testsuite_allocator.cc: Same.
+ * testsuite/23_containers/deque_ctor.cc
+ (test_copy_ctor_exception_safety): Change gnu_allocator_tracker to
+ allocation_tracker.
+ Change gnu_new_allocator to tracker_alloc.
+ Change gnu_counting_struct to counter.
+ Change gnu_copy_tracker to copy_tracker.
+ Change gnu_copy_constructor to copy_constructor.
+ Change gnu_assignment_operator to assignment_operator.
+ Inject.
+ * testsuite/23_containers/vector_capacity.cc: Same.
+ * testsuite/23_containers/vector_ctor.cc (test01): Same.
+ * testsuite/23_containers/list_modifiers.cc: Change
+ gnu_copy_tracker to copy_tracker.
+ * testsuite/21_strings/ctor_copy_dtor.cc (main): Change
+ __set_testsuite_memlimit to set_memory_limits.
+ * testsuite/21_strings/insert.cc (main): Same.
+ * testsuite/27_io/filebuf.cc: Change gnu_char to pod_char.
+ * testsuite/27_io/stringstream.cc: Same.
+ * testsuite/27_io/stringbuf.cc: Same.
+ * testsuite/27_io/streambuf.cc: Same.
+ * testsuite/27_io/ostream.cc: Same.
+ * testsuite/27_io/istream.cc: Same.
+ * testsuite/27_io/fstream.cc: Same.
+ * testsuite/lib/libstdc++-v3-dg.exp
+ (libstdc++-v3-list-sourcefiles): Additionally handle files two and
+ three levels deeper in glob patterns.
+
+2003-01-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * config/os/hpux/os_defines.h (_GLIBCPP_GTHREAD_USE_WEAK): Define for
+ __hppa__.
+
+2003-01-10 Benjamin Kosnik <bkoz@redhat.com>
+ Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>
+
+ PR libstdc++/9269
+ * include/std/std_fstream.h (basic_filebuf::uflow): Declare.
+ (basic_filebuf::underflow): Declare.
+ Move definitions.
+
+2003-01-07 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/8707
+ * Makefile.am (distclean-multi): Fix.
+ * Makefile.in: Regenerate.
+
+2003-01-06 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/locale_facets.h (messages): Move ctor, dtor
+ definitions to..
+ (__timepunct): Same.
+ * config/locale/gnu/messages_members.h (messages): Add dtor, ctor
+ definitions. Conditionalize for GNU systems.
+ * config/locale/generic/messages_members.h (messages): Add dtor, ctor
+ definitions.
+ * config/locale/gnu/time_members.h (messages): New. Add dtor, ctor
+ definitions. Conditionalize for GNU systems.
+ * config/locale/generic/time_members.h (messages): New. Add dtor, ctor
+ definitions.
+ * include/bits/localefwd.h (locale::facet::_S_c_name): Add.
+ * src/locale.cc: Define.
+ * src/localename.cc (locale::_Impl::_Impl(facet**, size_t, bool):
+ Use it.
+ * config/locale/gnu/time_members.h: Use it.
+ * config/locale/gnu/messages_members.h: Use it.
+ * config/linker-map.gnu: Add locale::facets details.
+ * include/Makefile.am (target_headers_extra): Add time_members.h.
+ * include/Makefile.in: Regenerate.
+ * acinclude.m4: Export CTIME_H.
+ * aclocal.m4: Regenerate.
+ * configure: Regnerate.
+
+2003-01-06 Paolo Carlini <pcarlini@unitus.it>
+
+ * src/codecvt.cc
+ (codecvt<char, char, mbstate_t>::do_in, do_out):
+ Tweak parameters to avoid unused parameter warnings.
+
+2003-01-06 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9151
+ * include/bits/locale_facets.cc (num_put::_M_convert_float):
+ Limit __prec to digits10 + 2, not digits10 + 1, taking into
+ account the possibility of %{g,G} conversion specifiers
+ inside _S_format_float.
+ * testsuite/27_io/ostream_inserter_arith.cc (test06): Add.
+
+2003-01-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init,
+ libstdc++-v3-list-sourcefiles): Additionally handle files one
+ level deeper in glob patterns.
+
+ * testsuite/27_io/istream_extractor_arith.cc: Delete, split...
+ * testsuite/27_io/istream_extractor_arith/01.cc,
+ testsuite/27_io/istream_extractor_arith/02.cc,
+ testsuite/27_io/istream_extractor_arith/03.cc,
+ testsuite/27_io/istream_extractor_arith/06.cc,
+ testsuite/27_io/istream_extractor_arith/07.cc,
+ testsuite/27_io/istream_extractor_arith/08.cc,
+ testsuite/27_io/istream_extractor_arith/09.cc,
+ testsuite/27_io/istream_extractor_arith/10.cc,
+ testsuite/27_io/istream_extractor_arith/11.cc,
+ testsuite/27_io/istream_extractor_arith/12.cc,
+ testsuite/27_io/istream_extractor_arith/13.cc: ... to new files.
+ * testsuite/27_io/istream_extractor_arith/12.cc: Add XFAIL for
+ sparc*-*-solaris2*.
+
+2003-01-05 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/9168
+ * src/codecvt.cc
+ (codecvt<char, char, mbstate_t>::do_in, do_out):
+ Implement the resolution of DR19 (TC).
+ * testsuite/22_locale/codecvt_members_char_char.cc
+ (test01): Tweak.
+
+2002-12-29 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/std/std_bitset.h: Better comments.
+
+2002-12-29 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/std/std_bitset.h (_Base_bitset::_M_do_left_shift,
+ _Base_bitset::_M_do_right_shift): Expect a non-zero shift.
+ (bitset::operator<<=, bitset::operator>>=): When shifting more bits
+ than are in the bitset, zero memory rather than segfault.
+ (operator>>(basic_istream,bitset): Only call setstate once, after
+ all work has been done.
+
+ * testsuite/23_containers/bitset_members.cc (test03): New test.
+ * testsuite/23_containers/bitset_shift.cc (test02): New test.
+
+2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * docs/html/17_intro/porting.texi: Use @copying.
+ * docs/html/17_intro/porting.html: Regenerate.
+
+2002-12-23 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/io/basic_file_stdio.cc (__basic_file::_M_open_mode):
+ Don't use O_NONBLOCK if it is not defined.
+ (__basic_file::open): Don't use fcntl either.
+
+2002-12-19 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/8949
+ * include/std/std_limits.h
+ (struct numeric_limits<short>,
+ struct numeric_limits<unsigned short>,
+ struct numeric_limits<int>,
+ struct numeric_limits<unsigned int>,
+ struct numeric_limits<long>,
+ struct numeric_limits<unsigned long>,
+ struct numeric_limits<long long>,
+ struct numeric_limits<unsigned long long>): According
+ to 18.2.1.2,53 and 18.2.1.5,1 is_iec559 shall be false.
+ * testsuite/18_support/numeric_limits.cc: Add test04.
+
+2002-12-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * testsuite/23_containers/vector_capacity.cc (test03): Move ...
+ * testsuite/23_containers/vector_resize.cc: ...here as a new file.
+ Pass in -lmalloc for irix6.
+ * testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6.
+
2002-12-11 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8887
@@ -27,7 +1898,7 @@
2002-12-02 Paolo Carlini <pcarlini@unitus.it>
* include/bits/basic_string.h (compare(const basic_string&)):
- Fully qualify min() with std::.
+ Fully qualify min() with std::.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
@@ -46,7 +1917,7 @@
basic_string::compare(size_type, size_type, const _CharT*,
size_type), _S_string_copy(const basic_string&, _CharT*,
typename _Alloc::size_type)): Fully qualify min() with std::.
-
+
2002-12-02 Paolo Carlini <pcarlini@unitus.it>
* include/bits/basic_string.tcc
@@ -67,7 +1938,7 @@
* docs/html/faq/index.html: Add tip about a namespace for extensions.
2002-11-28 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
@@ -87,7 +1958,7 @@
__cxa_guard_release, __cxa_guard_abort in CXXABI_1.2.1.
2002-11-25 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
@@ -95,7 +1966,7 @@
2002-11-25 Stephen M. Webb <stephen@bregmasoft.com>
- * testsuite/testsuite_allocator.h: New file.
+ * testsuite/testsuite_allocator.h: New file.
* testsuite/testsuite_allocator.cc: New file.
* testsuite/Makefile.am: Added testsuite_allocator to test library.
* testsuite/testsuite_hooks.h: Added more detailed tracker objects
@@ -127,7 +1998,7 @@
Trivial cosmetic tweaks.
2002-11-22 Laszlo Ersek <erseklaszlo@chello.hu>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8645
* include/bits/stl_tree.h (_Rb_tree_rebalance_for_erase):
@@ -180,7 +2051,7 @@
include/std/std_streambuf.h: Doxygenate all I/O entities.
2002-11-20 Benjamin Kosnik <bkoz@redhat.com>
- Jonathan Lennox <lennox@cs.columbia.edu>
+ Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs):
Revert previous fix for the interactive half of
@@ -220,7 +2091,7 @@
and std::codecvt<wchar_t>::codecvt(size_t) into one export pattern.
2002-11-15 Benjamin Kosnik <bkoz@redhat.com>
- Gabriel Dos Reis <gdr@integrable-solutions.net>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
PR libstdc++/8230
* include/bits/stl_alloc.h: Use builtin_expect for the most
@@ -228,16 +2099,16 @@
(__default_alloc_template::allocate): Check for null, throw
bad_alloc.
* include/bits/vector.tcc: Formatting tweaks.
- * include/bits/stl_vector.h: Same.
+ * include/bits/stl_vector.h: Same.
* testsuite/20_util/allocator_members.cc (test02): Add.
* testsuite/23_containers/vector_capacity.cc (test03): Add.
-
+
2002-11-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.
2002-11-15 Paolo Carlini <pcarlini@unitus.it>
- Loren J. Rittle <ljrittle@acm.org>
+ Loren J. Rittle <ljrittle@acm.org>
PR libstdc++/8399
* acinclude.m4
@@ -258,11 +2129,11 @@
* acconfig.h (HAVE_DRAND48): Add.
(HAVE_GETPAGESIZE): Add.
- (HAVE_SETENV): Add.
- (HAVE_SIGSETJMP): Add.
+ (HAVE_SETENV): Add.
+ (HAVE_SIGSETJMP): Add.
* config.h.in: Regenerate.
* configure: Regenerate.
-
+
2002-11-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
* config/os/hpux/os_defines.h (_GLIBCPP_INST_ATOMICITY_LOCK): Define
@@ -275,7 +2146,7 @@
requested size is bigger than max_size().
* include/bits/stl_bvector.h (vector<bool>::reserve): Same.
* testsuite/23_containers/vector_capacity.cc (test02): Add.
-
+
2002-11-13 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Export all _S_construct.
@@ -290,15 +2161,15 @@
* docs/html/install.html, docs/html/22_locale/locale.html: HTML fix.
2002-11-11 Benjamin Kosnik <bkoz@redhat.com>
-
- PR libstdc++/6746
- * include/bits/fstream.tcc (filebuf::open): Set input pointers.
+
+ PR libstdc++/6746
+ * include/bits/fstream.tcc (filebuf::open): Set input pointers.
* config/io/basic_file_stdio.cc (__basic_file::_M_open_mode): Set
__p_mode as well.
(__basic_file::open): Set to non-block for input.
* testsuite/27_io/istream_unformatted.cc (test12): Add.
(test13): Same.
-
+
2002-11-11 Jonathan Wakely <redi@gcc.gnu.org>
* docs/html/17_intro/howto.html: Make "chapter 22 notes" a link.
@@ -313,7 +2184,7 @@
docs/html/ext/sgiexts.html: Add missing <html> tag.
2002-11-07 Phil Edwards <pme@gcc.gnu.org>
- Richard Earnshaw <rearnsha@arm.com>
+ Richard Earnshaw <rearnsha@arm.com>
* config/cpu/generic/atomicity.h: Provide atomic __exchange_and_add
and __atomic_add.
@@ -341,9 +2212,9 @@
for null buffer.
(istream::operator>>(_CharT*)): Use traits_type.
(istream::ws): Same.
- (istream::operator>>(string)): Same.
+ (istream::operator>>(string)): Same.
* testsuite/27_io/istream_unformatted.cc (test11): Add.
-
+
2002-11-05 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8466
@@ -371,7 +2242,7 @@
* config/linker-map.gnu: Export string operator+.
Export __default_alloc_template::_S_force_new.
* testsuite/abi_check.cc: Output tweaks.
-
+
2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8172
@@ -382,17 +2253,17 @@
PR libstdc++/7926
* configure.target: Simplify.
* config/cpu/i386/atomicity.h: Remove.
- * config/cpu/i386: Remove.
+ * config/cpu/i386: Remove.
* config/cpu/arm/atomicity.h: Remove.
- * config/cpu/arm: Remove.
+ * config/cpu/arm: Remove.
* config/cpu/x86-64/atomicity.h: Remove.
- * config/cpu/x86-64: Remove.
-
+ * config/cpu/x86-64: Remove.
+
2002-11-01 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
PR libstdc++/8197
* config/link-map.gnu: Export math stubbs.
-
+
2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8318
@@ -406,7 +2277,7 @@
* include/bits/basic_ios.tcc: Same.
* include/bits/streambuf.tcc: Same.
* include/bits/locale_facets.tcc: Same.
-
+
2002-11-01 John Carter <john.carter@tait.co.nz>
PR libstdc++/7961
@@ -419,7 +2290,7 @@
* include/bits/istream.tcc (istream::tellg): Remove sentry bits.
(istream::seekg): Same.
* testsuite/27_io/istream_seeks.cc (test06): New.
-
+
2002-10-28 Jason Thorpe <thorpej@wasabisystems.com>
* testsuite/thread/pthread5.cc: Include <unistd.h>
@@ -481,7 +2352,7 @@
for FreeBSD 5.
2002-10-18 Loren J. Rittle <ljrittle@acm.org>
- Brad Spencer <spencer@infointeractive.com>
+ Brad Spencer <spencer@infointeractive.com>
(provided alternate patch and improvements)
* docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document
@@ -546,21 +2417,21 @@
c_locale_impl.
* testsuite/abi_check.cc (line_to_symbol_info): Collect size info.
* docs/html/abi.txt: Update.
-
+
2002-10-14 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/static_members.cc (test02): Less provincial.
2002-10-14 Benjamin Kosnik <bkoz@redhat.com>
- * testsuite/22_locale/static_members.cc (test02): Disable for
+ * 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-13 Danny Smith <dannysmith@users.sourceforge.net>
+2002-10-13 Danny Smith <dannysmith@users.sourceforge.net>
* include/bits/stl_threads.h (_GLIBCPP_mutex,
_GLIBCPP_mutex_init,_GLIBCPP_mutex_address,
@@ -580,7 +2451,7 @@
* testsuite/22_locale/static_members.cc (test02): Avoid null strings.
2002-10-12 Jonathan Wakely <jw@kayari.org>
- Gabriel Dos Reis <gdr@integrable-solutions.net>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
* docs/html/21_strings/howto.html#5: Correct nasting of XHTML
elements. Correct allocator-related text.
@@ -601,19 +2472,19 @@
hack around m4 issues with quoting '@'.
* src/locale.cc: Use _GLIBCPP_ASM_SYMVER.
* src/globals.cc: Same.
-
+
* testsuite/22_locale/ctor_copy_dtor.cc (test04): Fix for
non-glibc systems.
2002-10-10 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu (GLIBCPP_3.2.1): Add.
- (GLIBCPP_3.2): Don't export locale::_S_*.
+ (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.
- * src/globals.cc: Same.
+ * src/localename.cc: Same.
+ * src/globals.cc: Same.
2002-10-10 Phil Edwards <pme@gcc.gnu.org>
@@ -621,7 +2492,7 @@
* docs/html/17_intro/porting.texi: Expand on os_include_dir.
* docs/html/17_intro/porting.html: Regenerate.
-2002-10-09 Benjamin Kosnik <bkoz@redhat.com>
+2002-10-09 Benjamin Kosnik <bkoz@redhat.com>
* src/locale.cc: Fix comments, move ctors together.
* testsuite/22_locale/static_members.cc (test03): Add.
@@ -632,9 +2503,9 @@
* 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-08 Paolo Carlini <pcarlini@unitus.it>
- Benjamin Kosnik <bkoz@redhat.com>
+ Benjamin Kosnik <bkoz@redhat.com>
* include/bits/localefwd.h (class locale): Add static member
_S_num_extra_categories, encoding the number of additional
@@ -645,7 +2516,7 @@
(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
+ * 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.
@@ -664,7 +2535,7 @@
* 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-inst.cc: Remove extra includes.
* src/locale.cc: Remove extra includes.
Add _S_extra_categories_size definition.
Correct "C" initialization.
@@ -679,7 +2550,7 @@
* 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.
@@ -687,7 +2558,7 @@
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/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
@@ -765,7 +2636,7 @@
(__glibcpp_long_double_bits): Remove.
(__glibcpp_long_bits): Remove.
* config/os/hpux/os_defines.h (__glibcpp_wchar_t_is_signed): Remove.
- * config/os/bsd/freebsd/os_defines.h:
+ * config/os/bsd/freebsd/os_defines.h:
(__glibcpp_long_double_bits): Remove.
* config/os/aix/os_defines.h (__glibcpp_wchar_t_bits): Remove.
(__glibcpp_wchar_t_is_signed): Remove.
@@ -778,13 +2649,13 @@
* config/cpu/arm/cpu_limits.h: Remove.
* config/cpu/cris/cpu_limits.h: Remove.
* config/cpu/generic/cpu_limits.h: Remove.
- * config/cpu/generic/limits.h: Remove.
+ * config/cpu/generic/limits.h: Remove.
* config/cpu/ia64/cpu_limits.h: Remove.
- * config/cpu/m68k/cpu_limits.h: Remove.
- * config/cpu/mmix/cpu_limits.h: Remove.
- * config/cpu/powerpc/cpu_limits.h: Remove.
+ * config/cpu/m68k/cpu_limits.h: Remove.
+ * config/cpu/mmix/cpu_limits.h: Remove.
+ * config/cpu/powerpc/cpu_limits.h: Remove.
* config/cpu/S390/cpu_limits.h: Remove.
-
+
2002-09-25 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* testsuite/18_support/numeric_limits.cc: Check the maximum and
@@ -792,9 +2663,9 @@
2002-09-25 Mark Mitchell <mark@codesourcery.com>
- * include/std/std_limits.h (numeric_limits<unsigned char>::digits):
+ * include/std/std_limits.h (numeric_limits<unsigned char>::digits):
Fix typo.
-
+
2002-09-23 Richard Henderson <rth@redhat.com>
* include/std/std_limits.h (__glibcpp_plain_char_is_signed,
@@ -842,9 +2713,9 @@
__glibcpp_s8_digits10 et al; check vs the installed versions
of digits10 for particular sizes.
- * include/std/std_limits.h (__glibcpp_float_is_modulo,
- __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
- (numeric_limits<T>::is_modulo, T floating): Use false.
+ * include/std/std_limits.h (__glibcpp_float_is_modulo,
+ __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
+ (numeric_limits<T>::is_modulo, T floating): Use false.
2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
@@ -994,16 +2865,16 @@
* 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-11 Benjamin Kosnik <bkoz@redhat.com>
* 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.
+ * config/locale/generic/c_locale.h (__convert_from_v): Add.
2002-09-11 Paolo Carlini <pcarlini@unitus.it>
@@ -1016,28 +2887,28 @@
(target_sources): New.
(target_sources_extra): New.
* src/Makefile.in: Regenerate.
- * acinclude.m4: Set CCODECVT_CC.
+ * acinclude.m4: Set CCODECVT_CC.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* src/locale.cc: Move ctype definitions...
- * src/ctype.cc: ...here. New file.
+ * 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.
+ * 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.
+ * src/vterminate.cc: Same.
2002-09-10 Gabriel Dos Reis <gdr@soliton.integrable-solutions.net>
* include/bits/stl_vector.h (vector<>): Don't use a name with
different meanings before and after re-evaluation in the completed
- scope.
+ scope.
* include/bits/basic_string.h (basic_string<>): Likewise.
* include/bits/stl_bvector.h (vector<bool>): Likewise.
* include/bits/stl_deque.h (std): Likewise.
@@ -1071,16 +2942,16 @@
* docs/html/configopts.html: Change grouping. Note ABI impacts.
Update information for locale model defaults.
* docs/html/install.html: Update include directory
- information.
- Update testing information.
+ information.
+ Update testing information.
Update linux issues for named locales.
* docs/html/abi.txt: Fix typos.
Add more info.
* src/misc-inst.cc: Add missing 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 <jakub@redhat.com>
@@ -1293,7 +3164,7 @@
__glibcpp_double_bits, __glibcpp_long_double_bits): Remove. Use
compiler predifined macros.
(__glibcpp_wchar_t_is_signed): Define based on compiler predefined
- __WCHAR_UNSIGNED__.
+ __WCHAR_UNSIGNED__.
2002-08-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
@@ -1349,7 +3220,7 @@
(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
Likewise.
-
+
* src/limits.cc (__glibcpp_float_infinity, __glibcpp_float_QNaN,
__glibcpp_float_SNaN, __glibcpp_float_denorm_min): Define.
(__glibcpp_double_infinity, __glibcpp_double_QNaN,
@@ -1357,7 +3228,7 @@
(__glibcpp_long_double_infinity, __glibcpp_long_double_QNaN,
__glibcpp_long_double_SNaN, __glibcpp_long_double_denorm_min):
Likewise.
-
+
2002-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* include/std/std_limits.h: Indent conditional macro definitions.
@@ -1391,7 +3262,7 @@
* testsuite/Makefile.am (noinst_PROGRAMS): Make conditional on
native compiling.
* testsuite/Makefile.in: Regenerate.
-
+
2002-08-22 Loren J. Rittle <ljrittle@acm.org>
* testsuite/abi_check.cc: Enhance shell portability.
@@ -1409,7 +3280,7 @@
2002-08-22 Benjamin Kosnik <bkoz@redhat.com>
Phil Edwards <pme@gcc.gnu.org>
Ulrich Drepper <drepper@redhat.com>
-
+
* Makefile.am (check-abi): New rule.
* Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Export baseline_file.
@@ -1417,17 +3288,17 @@
* configure: Regenerate.
* testsuite/Makefile.am (noinst_PROGRAMS): Add abi_check.
(abi_check_SOURCES): Add.
- * testsuite/Makefile.in: Regenerate.
+ * 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 <bkoz@redhat.com>
* configure.in (libtool_VERSION): Update to 5:1:0.
* configure: Regenerate.
-
+
2002-08-19 Jonathan Wakely <jw@kayari.org>
* docs/html/configopts.html, docs/html/documentation.html,
@@ -1445,9 +3316,9 @@
Revert PR libstdc++/7445
* src/locale.cc (locale::classic): Revert.
-
+
* docs/html/17_intro/TODO: Add.
-
+
2002-08-15 Phil Edwards <pme@gcc.gnu.org>
* docs/html/documentation.html: Update doxygen links for 3.2.
@@ -1483,11 +3354,11 @@
2002-08-08 Danny Smith <dannysmith@users.sourceforge.net>
Benjamin Kosnik <bkoz@redhat.com>
-
+
* include/bits/istream.tcc (basic_istream::ignore): Use sbumpc,
not snextc.
* testsuite/27_io/narrow_stream_objects.cc (test10): Add.
-
+
2002-08-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
* libsupc++/Makefile.am (LTCOMPILE): Add LIBSUPCXX_PICFLAGS.
@@ -1497,7 +3368,7 @@
PR/7491
* include/bits/slice_array.h(_DEFINE_VALARRAY_OPERATOR):
- Instantiate with new function objects.
+ Instantiate with new function objects.
* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): Likewise.
Reformat. Uglify.
* include/bits/gslice_array.h: Likewise.
@@ -1532,9 +3403,9 @@
* include/bits/valarray_meta.h (_UnFunBase<>): Remove.
(_UnFunClos<>): Same.
(_UnBase<>): Reformat. Make first template-parameter non
- template.
+ template.
(_UnClos<>): Likewise.
- (_Expr<>): Reformate. Adjust unary member operator return types.
+ (_Expr<>): Reformate. Adjust unary member operator return types.
(_DEFINE_EXPR_UNARY_OPERATOR): Adjust definition.
(_DEFINE_EXPR_UNARY_FUNCTION): Likewise.
* include/std/std_valarray.h (_UnClos<>): Adjust declaration.
@@ -1555,9 +3426,9 @@
Revert PR libstdc++/6594
* src/strstream.cc (strstreambuf): Revert.
(strstreambuf::overflow): Same.
- (strstreambuf::~strstreambuf): Same.
+ (strstreambuf::~strstreambuf): Same.
* testsuite/backward/strstream_members.cc (test02): Add.
-
+
* docs/html/abi.txt: Update. Spell check.
* testsuite/19_diagnostics/stdexceptions.cc (test04): Add bool test.
@@ -1566,7 +3437,7 @@
* testsuite/Makefile.in: Regenerate.
* testsuite/testsuite_hooks.h: Use __throw_exception_again,
include functexcept.h so that -fno-exceptions will build.
-
+
2002-08-02 Gabriel Dos Reis <gdr@nerim.net>
* include/bits/valarray_meta.h (__unary_plus, __negate,
@@ -1575,7 +3446,7 @@
__shift_left, __shift_right, __logical_and, __logical_or,
__logical_not, __equal_to, __not_equal_to, __less, __less_equal,
__greater_equal, __greater, __atan2, __pow): New function object
- classes.
+ classes.
(__fun<>): New function traits class.
2002-08-01 Rick Danos <rdanos@hotmail.com>
@@ -1588,10 +3459,10 @@
* libsupc++/Makefile.am (LT_COMPILE): Remove C++ flags.
* libsupc++/Makefile.in: Regenerate.
-
+
2002-08-01 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
-
+
* config/linker-map.gnu: Change CXXABI_1 to CXXABI_1.2,
GLIBCPP_3.1 to GLIBCPP_3.2.
@@ -1606,7 +3477,7 @@
2002-07-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7442
- * libsupc++/cxxabi.h
+ * libsupc++/cxxabi.h
(__base_class_info): Change to __base_class_type_info. 2.9.5p6c
(__base_class_info::__base): Change to __base_type. 2.9.5p6c
(__base_class_info::offset_shift): Change to __offset_shift. 2.9.5p6c
@@ -1656,15 +3527,15 @@
(istream::sync): Same.
(istream::sentry::sentry): Use eq_int_type.
(istream::get): Same.
- * include/bits/ostream.tcc: Change __pad to
- __pad<_CharT, _Traits>::_S_pad.
+ * include/bits/ostream.tcc: Change __pad to
+ __pad<_CharT, _Traits>::_S_pad.
* include/bits/locale_facets.h: Add __pad_traits generic and
ostreambuf_iterator specialization.
* include/bits/locale_facets.tcc: Change __pad into struct __pad
with a _CharT and _Traits template parameter and _S_pad static
member function.
* src/locale-inst.cc: Update __pad instantiations.
-
+
* include/std/std_fstream.h: Declare _M_underflow_common
specializations.
* src/fstream.cc: New. Add _M_underflow_common specializations.
@@ -1686,12 +3557,12 @@
* testsuite/27_io/streambuf.cc: Add instantiation test,
testsuite_hooks include.
* testsuite/27_io/istream.cc: Same.
- * testsuite/27_io/ostream.cc: Same.
+ * testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/fstream.cc: Same.
* testsuite/27_io/stringstream.cc: Same.
* testsuite/27_io/filebuf.cc: Same.
* testsuite/27_io/stringbuf.cc: Same.
-
+
2002-07-29 Alan Modra <amodra@bigpond.net.au>
* config/cpu/powerpc/cpu_limits.h (__glibcpp_long_bits): Define.
@@ -1714,36 +3585,36 @@
* testsuite/27_io/ostream.cc: Same.
* testsuite/27_io/filebuf.cc: Same.
* testsuite/27_io/stringbuf.cc: Replace content, move to...
- * testsuite/27_io/stringbuf_members.cc: ...here.
+ * testsuite/27_io/stringbuf_members.cc: ...here.
* testsuite/27_io/streambuf.cc: Replace content, move to...
- * testsuite/27_io/streambuf_members.cc: ...here.
+ * testsuite/27_io/streambuf_members.cc: ...here.
* testsuite/27_io/stringstream.cc: Replace content, move to...
* testsuite/27_io/stringstream_members.cc: ...here.
* testsuite/27_io/ios.cc: New file.
* testsuite/27_io/fstream.cc: New file.
- * testsuite/27_io/ifstream.cc: New file.
- * testsuite/27_io/ofstream.cc: New file.
- * testsuite/27_io/istringstream.cc: New file.
- * testsuite/27_io/ostringstream.cc: New file.
-
+ * testsuite/27_io/ifstream.cc: New file.
+ * testsuite/27_io/ofstream.cc: New file.
+ * testsuite/27_io/istringstream.cc: New file.
+ * testsuite/27_io/ostringstream.cc: New file.
+
2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7220
* include/bits/istream.tcc (istream::ignore): Don't extract on
zero.
* testsuite/27_io/istream_unformatted.cc (test10): Add.
-
+
2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/27_io/ios_base_type.cc: Move to...
* testsuite/27_io/ios_base_types.cc: ...here.
-
+
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7222
* src/locale.cc (locale::locale(const char*)): Use setlocale NULL.
* testsuite/22_locale/ctor_copy_dtor.cc (test02): New.
-
+
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7230
@@ -1754,7 +3625,7 @@
* include/backward/strstream: Revert.
* include/backward/strstream.h: Remove.
* src/strstream.cc: Revert.
- * testsuite/backward/strstream_members.cc: Change include.
+ * testsuite/backward/strstream_members.cc: Change include.
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
@@ -1762,7 +3633,7 @@
* include/bits/ios_base.h (ios_base::streampos): Add.
(ios_base::streamoff): Add.
* testsuite/27_io/ios_base_type.cc: New.
-
+
2002-07-24 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/7286
@@ -1770,7 +3641,7 @@
* testsuite/18_support/new_delete_placement.cc: New.
* docs/html/abi.txt: Fix typos.
-
+
2002-07-23 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/documentation.html: Remove libstdc++-v3.0.86 links,
@@ -1778,10 +3649,10 @@
De-tangle contributor information from introductory notes.
Move abi.txt link placement, activate.
Re-organize.
- Move chapter info into old FAQ format.
+ Move chapter info into old FAQ format.
* docs/html/organization.html: Removed, obsoleted by doxygen work.
* docs/html/abi.txt: Add notes on testing ABI changes.
-
+
2002-07-20 Phil Edwards <pme@gcc.gnu.org>
* docs/html/abi.txt: New file.
@@ -1803,15 +3674,15 @@
* bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): Fix typo of
_Nname to _Name.
-
+
2002-07-19 Gabriel Dos Reis <gdr@nerim.net>
DR/123
- * include/bits/slice_array.h
+ * include/bits/slice_array.h
(slice_array<T>::operator=(const T&)): Constify.
- * include/bits/gslice_array.h
+ * include/bits/gslice_array.h
(gslice_array<T>::operator=(const T&)): Likewise.
- * include/bits/mask_array.h
+ * include/bits/mask_array.h
(mask_array<T>::operator=(const T&)): Likewise.
* include/bits/indirect_array.h
(indirect_array<T>::operator=(const T&): Likewise.
@@ -1893,8 +3764,8 @@
* include/std/std_streambuf.h (basic_streambuf::_M_buf): Change to
size_t, from int_type.
- (basic_streambuf::_M_buf_size_opt): Same.
- (basic_streambuf::_S_pback_sizex): Same.
+ (basic_streambuf::_M_buf_size_opt): Same.
+ (basic_streambuf::_S_pback_sizex): Same.
* include/bits/streambuf.tcc: Same.
* include/std/std_streambuf.h (basic_streambuf::snextc): Use
eq_int_type.
@@ -3022,7 +4893,7 @@
2002-04-16 Paolo Carlini <pcarlini@unitus.it>
- * testsuite/24_iterators/rel_ops.cc: New test.
+ * testsuite/24_iterators/rel_ops.cc: New test.
2002-04-16 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
@@ -5029,7 +6900,7 @@
* testsuite/27_io/filebuf_members.cc: Add test.
2002-01-07 Benjamin Kosnik <bkoz@redhat.com>
- Craig Rodrigues <rodrigc@mediaone.net>
+ Craig Rodrigues <rodrigc@mediaone.net>
libstdc++/5174
* po/Makefile.am (mkinstalldirs): Add.
diff --git a/libstdc++-v3/Makefile.am b/libstdc++-v3/Makefile.am
index 7e70390ce5e..642bdc30635 100644
--- a/libstdc++-v3/Makefile.am
+++ b/libstdc++-v3/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the toplevel directory of the GNU C++ Standard library.
##
-## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
@@ -29,7 +29,7 @@ SUBDIRS = include libio libmath libsupc++ src po testsuite
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
-PWD = $${PWDCMD-pwd}
+PWD_COMMAND = $${PWDCMD-pwd}
# These two special 'check-script' rules use the bash script 'mkcheck'
# to do testing. This script is not as portable as the dejagnu test
@@ -46,42 +46,22 @@ check-script-install: $(top_builddir)/mkcheck
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}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${builddir})
doxygen-maint:
- -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=maint $${srcdir} $${builddir})
doxygen-man:
- -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=man $${srcdir} $${builddir})
@@ -90,7 +70,7 @@ doxygen-man:
# Multilib support.
MAKEOVERRIDES=
-# Multilib variables.
+# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@@ -98,16 +78,16 @@ MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-# Multilib Makefile bits.
+# Multilib support.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
maintainer-clean-multi
-all-am: all-multi
-install-am: install-multi
-mostlyclean-am: mostlyclean-multi
-clean-am: clean-multi
-distclean-am: distclean-multi
-maintainer-clean-am: maintainer-clean-multi
+all-recursive: all-multi
+install-recursive: install-multi
+mostlyclean-recursive: mostlyclean-multi
+clean-recursive: clean-multi
+distclean-recursive: distclean-multi
+maintainer-clean-recursive: maintainer-clean-multi
all-multi:
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
@@ -156,6 +136,7 @@ AM_MAKEFLAGS = \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index 97f5ee38aec..4ff8e32b321 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -106,11 +117,13 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WERROR = @WERROR@
+baseline_dir = @baseline_dir@
check_msgfmt = @check_msgfmt@
enable_shared = @enable_shared@
enable_static = @enable_static@
@@ -138,16 +151,12 @@ SUBDIRS = include libio libmath libsupc++ src po testsuite
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
-PWD = $${PWDCMD-pwd}
-
-# 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@
+PWD_COMMAND = $${PWDCMD-pwd}
# Multilib support.
MAKEOVERRIDES =
-# Multilib variables.
+# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@@ -185,6 +194,7 @@ AM_MAKEFLAGS = \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
@@ -273,7 +283,7 @@ testsuite_flags: $(top_builddir)/config.status testsuite_flags.in
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
+ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -293,7 +303,7 @@ check-recursive installcheck-recursive info-recursive dvi-recursive:
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $(MAKEFLAGS); amf=$$2; \
+ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
@@ -485,54 +495,38 @@ check-script-install: $(top_builddir)/mkcheck
-(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:
- -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${builddir})
doxygen-maint:
- -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=maint $${srcdir} $${builddir})
doxygen-man:
- -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
- builddir=`${PWD}`; \
+ -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
+ builddir=`${PWD_COMMAND}`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=man $${srcdir} $${builddir})
.PHONY: doxygen doxygen-maint doxygen-man
-# Multilib Makefile bits.
+# Multilib support.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
maintainer-clean-multi
-all-am: all-multi
-install-am: install-multi
-mostlyclean-am: mostlyclean-multi
-clean-am: clean-multi
-distclean-am: distclean-multi
-maintainer-clean-am: maintainer-clean-multi
+all-recursive: all-multi
+install-recursive: install-multi
+mostlyclean-recursive: mostlyclean-multi
+clean-recursive: clean-multi
+distclean-recursive: distclean-multi
+maintainer-clean-recursive: maintainer-clean-multi
all-multi:
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
diff --git a/libstdc++-v3/acconfig.h b/libstdc++-v3/acconfig.h
index 4d18634889f..91af8fa31ae 100644
--- a/libstdc++-v3/acconfig.h
+++ b/libstdc++-v3/acconfig.h
@@ -135,6 +135,15 @@
// Define if the compiler/host combination has __builtin_sqrtl
#undef HAVE___BUILTIN_SQRTL
+// Define if poll is available in <poll.h>.
+#undef HAVE_POLL
+
+// Define if S_ISREG (Posix) is available in <sys/stat.h>.
+#undef HAVE_S_ISREG
+
+// Define if S_IFREG is available in <sys/stat.h>.
+#undef HAVE_S_IFREG
+
// Define if LC_MESSAGES is available in <locale.h>.
#undef HAVE_LC_MESSAGES
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 567c59b16fb..b6a1156d61d 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -64,6 +64,8 @@ AC_DEFUN(GLIBCPP_CONFIGURE, [
AC_PROG_LN_S
# We use these options to decide which functions to include.
+ AC_ARG_WITH(newlib,
+ [ --with-newlib use newlib headers])
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR
configuring in a subdirectory])
@@ -267,8 +269,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
@@ -361,7 +362,7 @@ AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -541,7 +542,7 @@ dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
-dnl ASSUMES argument is a math function with TWO parameters
+dnl ASSUMES argument is a stdlib function with TWO parameters
dnl
dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2
AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
@@ -570,7 +571,7 @@ dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
-dnl ASSUMES argument is a function with THREE parameters
+dnl ASSUMES argument is a stdlib function with THREE parameters
dnl
dnl GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3
AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
@@ -598,7 +599,7 @@ dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
-dnl ASSUMES argument is a function with ONE parameter
+dnl ASSUMES argument is a unistd function with ONE parameter
dnl
dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1
AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [
@@ -744,7 +745,7 @@ dnl GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
@@ -786,7 +787,7 @@ dnl GLIBCPP_CHECK_MATH_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
dnl Check libm
AC_CHECK_LIB(m, sin, libm="-lm")
@@ -911,7 +912,11 @@ AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
AC_SUBST(LIBMATHOBJS)
+ AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
])
@@ -937,6 +942,8 @@ dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
dnl
dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
+ dnl Wide characters disabled by default.
+ enable_wchar_t=no
dnl Test wchar.h for mbstate_t, which is needed for char_traits and
dnl others even if wchar_t support is not on.
@@ -982,7 +989,7 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
ac_wfuncs=no)
dnl Checks for names injected into std:: by the c_std headers.
- AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -1027,30 +1034,33 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
dnl At the moment, only enable wchar_t specializations if all the
dnl above support is present.
- AC_MSG_CHECKING([for enabled wchar_t specializations])
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
- AC_MSG_RESULT("yes")
- else
- AC_MSG_RESULT("no")
+ AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
+ enable_wchar_t=yes
fi
- else
- dnl Wide characters disabled by the user.
- AC_MSG_WARN([wchar_t support disabled.])
fi
+ AC_MSG_CHECKING([for enabled wchar_t specializations])
+ AC_MSG_RESULT($enable_wchar_t)
+ AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
])
dnl
-dnl Check for special debugging mode; not for production use.
+dnl Check to see if debugging libraries are to be built.
dnl
dnl GLIBCPP_ENABLE_DEBUG
-dnl --enable-debug sets '-ggdb3 -O0'.
-dnl --disable-debug sets '-g' and whatever optimization options the
-dnl compiler can handle.
-dnl + --enable-maintainer-mode automatically defaults this to on.
-dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
+dnl
+dnl --enable-debug
+dnl builds a separate set of debugging libraries in addition to the
+dnl normal (shared, static) libstdc++ binaries.
+dnl
+dnl --disable-debug
+dnl builds only one (non-debug) version of libstdc++.
+dnl
+dnl --enable-debug-flags=FLAGS
+dnl iff --enable-debug == yes, then use FLAGS to build the debug library.
+dnl
dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
dnl defaults to `no'.
@@ -1058,7 +1068,7 @@ AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
AC_ARG_ENABLE(debug,
changequote(<<, >>)dnl
-<< --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
+<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
changequote([, ])dnl
[case "${enableval}" in
yes) enable_debug=yes ;;
@@ -1066,17 +1076,56 @@ changequote([, ])dnl
*) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
esac],
enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
+AC_MSG_CHECKING([for additional debug build])
+AC_MSG_RESULT($enable_debug)
+AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
+])
+
+
+dnl Check for explicit debug flags.
+dnl
+dnl GLIBCPP_ENABLE_DEBUG_FLAGS
+dnl
+dnl --enable-debug-flags='-O1'
+dnl is a general method for passing flags to be used when
+dnl building debug libraries with --enable-debug.
+dnl
+dnl --disable-debug-flags does nothing.
+dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags)
+dnl If "default flags" is an empty string (or "none"), the effect is
+dnl the same as --disable or --enable=no.
+AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl
+define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
+AC_ARG_ENABLE(debug_flags,
+changequote(<<, >>)dnl
+<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
+changequote([, ])dnl
+[case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
+ esac],
+enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl
dnl Option parsed, now set things appropriately
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
;;
esac
AC_SUBST(DEBUG_FLAGS)
+
+AC_MSG_CHECKING([for debug build flags])
+AC_MSG_RESULT($DEBUG_FLAGS)
])
@@ -1097,25 +1146,21 @@ dnl If "default flags" is an empty string (or "none"), the effect is
dnl the same as --disable or --enable=no.
AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
-AC_ARG_ENABLE(cxx-flags,
+AC_MSG_CHECKING([for extra compiler flags for building])
+AC_ARG_ENABLE(cxx_flags,
changequote(<<, >>)dnl
<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
+ [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
changequote([, ])dnl
-[case "x$enableval" in
- xyes)
- AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac],
-enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
-
-dnl Thinko on my part during design. This kludge is the workaround.
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
+[case "x$enable_cxx_flags" in
+ xyes)
+ AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac],
+enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
dnl Run through flags (either default or command-line) and set anything
dnl extra (e.g., #defines) that must accompany particular g++ options.
@@ -1130,6 +1175,7 @@ if test -n "$enable_cxx_flags"; then
done
fi
EXTRA_CXX_FLAGS="$enable_cxx_flags"
+AC_MSG_RESULT($EXTRA_CXX_FLAGS)
AC_SUBST(EXTRA_CXX_FLAGS)
])
@@ -1227,6 +1273,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -1261,6 +1308,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
+ CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
@@ -1277,6 +1325,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -1291,23 +1340,20 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
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_SUBST(CCODECVT_CC)
+ AC_SUBST(CCOLLATE_CC)
+ AC_SUBST(CCTYPE_CC)
+ AC_SUBST(CMESSAGES_CC)
+ AC_SUBST(CMONEY_CC)
+ AC_SUBST(CNUMERIC_CC)
+ AC_SUBST(CTIME_H)
+ AC_SUBST(CTIME_CC)
+ AC_SUBST(CLOCALE_CC)
+ AC_SUBST(CLOCALE_INTERNAL_H)
])
@@ -1408,7 +1454,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
esac
AC_SUBST(CSTDIO_H)
AC_SUBST(BASIC_FILE_H)
- AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
+ AC_SUBST(BASIC_FILE_CC)
# 2000-08-04 bkoz hack
CCODECVT_C=config/io/c_io_libio_codecvt.c
@@ -1727,7 +1773,7 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
dnl
-dnl Check for what kind of C headers to use.
+dnl Check for what type of C headers to use.
dnl
dnl GLIBCPP_ENABLE_CHEADERS
dnl --enable-cheaders= [does stuff].
@@ -1740,7 +1786,7 @@ define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
AC_MSG_CHECKING([for c header strategy to use])
AC_ARG_ENABLE(cheaders,
changequote(<<, >>)dnl
-<< --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
+<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
changequote([, ])
[case "$enableval" in
c)
@@ -1843,7 +1889,7 @@ AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
OPTIMIZE_CXXFLAGS=
AC_SUBST(OPTIMIZE_CXXFLAGS)
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
AC_SUBST(WARN_FLAGS)
])
@@ -1919,11 +1965,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_MSG_CHECKING([for install location])
@@ -2074,18 +2121,32 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
- GLIBCPP_CHECK_SETRLIMIT
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+ GLIBCPP_CHECK_SETRLIMIT
- # Look for setenv, so that extended locale tests can be performed.
- GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ # Look for setenv, so that extended locale tests can be performed.
+ GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ fi
# 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")
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
+ AC_SUBST(baseline_dir)
+
+ # Determine if checking the ABI is desirable.
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
+ enable_abi_check=no
+ else
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
+ fi
+ AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])
@@ -2099,6 +2160,45 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN])
AC_DEFUN([AC_PROG_LD])
])
+dnl
+dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
+ AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
+ [glibcpp_cv_S_ISREG=yes],
+ [glibcpp_cv_S_ISREG=no])
+ ])
+ AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
+ [glibcpp_cv_S_IFREG=yes],
+ [glibcpp_cv_S_IFREG=no])
+ ])
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ AC_DEFINE(HAVE_S_ISREG)
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ AC_DEFINE(HAVE_S_IFREG)
+ fi
+])
+
+dnl
+dnl Check whether poll is available in <poll.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_POLL, [
+ AC_CACHE_VAL(glibcpp_cv_POLL, [
+ AC_TRY_COMPILE([#include <poll.h>],
+ [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
+ [glibcpp_cv_POLL=yes],
+ [glibcpp_cv_POLL=no])
+ ])
+ if test x$glibcpp_cv_POLL = xyes; then
+ AC_DEFINE(HAVE_POLL)
+ fi
+])
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -2235,15 +2335,15 @@ fi
dnl Everything parsed; figure out what file to use.
case $enable_symvers in
no)
- LINKER_MAP=config/linker-map.dummy
+ SYMVER_MAP=config/linker-map.dummy
;;
gnu)
- LINKER_MAP=config/linker-map.gnu
+ SYMVER_MAP=config/linker-map.gnu
AC_DEFINE(_GLIBCPP_SYMVER)
;;
esac
-AC_LINK_FILES($LINKER_MAP, src/linker.map)
+AC_SUBST(SYMVER_MAP)
AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers)
diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4
index e42653992d8..74f3de011e9 100644
--- a/libstdc++-v3/aclocal.m4
+++ b/libstdc++-v3/aclocal.m4
@@ -76,6 +76,8 @@ AC_DEFUN(GLIBCPP_CONFIGURE, [
AC_PROG_LN_S
# We use these options to decide which functions to include.
+ AC_ARG_WITH(newlib,
+ [ --with-newlib use newlib headers])
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR
configuring in a subdirectory])
@@ -279,8 +281,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
@@ -373,7 +374,7 @@ AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -756,7 +757,7 @@ dnl GLIBCPP_CHECK_STDLIB_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
@@ -798,7 +799,7 @@ dnl GLIBCPP_CHECK_MATH_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
dnl Check libm
AC_CHECK_LIB(m, sin, libm="-lm")
@@ -923,7 +924,11 @@ AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
AC_SUBST(LIBMATHOBJS)
+ AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
])
@@ -949,6 +954,8 @@ dnl Define HAVE_MBSTATE_T if mbstate_t is not in wchar.h
dnl
dnl GLIBCPP_CHECK_WCHAR_T_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
+ dnl Wide characters disabled by default.
+ enable_wchar_t=no
dnl Test wchar.h for mbstate_t, which is needed for char_traits and
dnl others even if wchar_t support is not on.
@@ -994,7 +1001,7 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
ac_wfuncs=no)
dnl Checks for names injected into std:: by the c_std headers.
- AC_CHECK_FUNCS(btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -1039,30 +1046,33 @@ AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
dnl At the moment, only enable wchar_t specializations if all the
dnl above support is present.
- AC_MSG_CHECKING([for enabled wchar_t specializations])
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
- AC_MSG_RESULT("yes")
- else
- AC_MSG_RESULT("no")
+ AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
+ enable_wchar_t=yes
fi
- else
- dnl Wide characters disabled by the user.
- AC_MSG_WARN([wchar_t support disabled.])
fi
+ AC_MSG_CHECKING([for enabled wchar_t specializations])
+ AC_MSG_RESULT($enable_wchar_t)
+ AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
])
dnl
-dnl Check for special debugging mode; not for production use.
+dnl Check to see if debugging libraries are to be built.
dnl
dnl GLIBCPP_ENABLE_DEBUG
-dnl --enable-debug sets '-ggdb3 -O0'.
-dnl --disable-debug sets '-g' and whatever optimization options the
-dnl compiler can handle.
-dnl + --enable-maintainer-mode automatically defaults this to on.
-dnl + Perhaps -D/-U of NDEBUG, DEBUG, DEBUG_ASSERT, ...?
+dnl
+dnl --enable-debug
+dnl builds a separate set of debugging libraries in addition to the
+dnl normal (shared, static) libstdc++ binaries.
+dnl
+dnl --disable-debug
+dnl builds only one (non-debug) version of libstdc++.
+dnl
+dnl --enable-debug-flags=FLAGS
+dnl iff --enable-debug == yes, then use FLAGS to build the debug library.
+dnl
dnl + Usage: GLIBCPP_ENABLE_DEBUG[(DEFAULT)]
dnl Where DEFAULT is either `yes' or `no'. If ommitted, it
dnl defaults to `no'.
@@ -1070,7 +1080,7 @@ AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [dnl
define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))dnl
AC_ARG_ENABLE(debug,
changequote(<<, >>)dnl
-<< --enable-debug extra debugging, turn off optimization [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
+<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
changequote([, ])dnl
[case "${enableval}" in
yes) enable_debug=yes ;;
@@ -1078,17 +1088,56 @@ changequote([, ])dnl
*) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
esac],
enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
+AC_MSG_CHECKING([for additional debug build])
+AC_MSG_RESULT($enable_debug)
+AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
+])
+
+
+dnl Check for explicit debug flags.
+dnl
+dnl GLIBCPP_ENABLE_DEBUG_FLAGS
+dnl
+dnl --enable-debug-flags='-O1'
+dnl is a general method for passing flags to be used when
+dnl building debug libraries with --enable-debug.
+dnl
+dnl --disable-debug-flags does nothing.
+dnl + Usage: GLIBCPP_ENABLE_DEBUG_FLAGS(default flags)
+dnl If "default flags" is an empty string (or "none"), the effect is
+dnl the same as --disable or --enable=no.
+AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [dnl
+define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
+AC_ARG_ENABLE(debug_flags,
+changequote(<<, >>)dnl
+<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
+changequote([, ])dnl
+[case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
+ esac],
+enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)dnl
dnl Option parsed, now set things appropriately
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
;;
esac
AC_SUBST(DEBUG_FLAGS)
+
+AC_MSG_CHECKING([for debug build flags])
+AC_MSG_RESULT($DEBUG_FLAGS)
])
@@ -1109,25 +1158,21 @@ dnl If "default flags" is an empty string (or "none"), the effect is
dnl the same as --disable or --enable=no.
AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [dnl
define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))dnl
-AC_ARG_ENABLE(cxx-flags,
+AC_MSG_CHECKING([for extra compiler flags for building])
+AC_ARG_ENABLE(cxx_flags,
changequote(<<, >>)dnl
<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
+ [default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
changequote([, ])dnl
-[case "x$enableval" in
- xyes)
- AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac],
-enable_cxx_flags='GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT')
-
-dnl Thinko on my part during design. This kludge is the workaround.
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
+[case "x$enable_cxx_flags" in
+ xyes)
+ AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac],
+enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
dnl Run through flags (either default or command-line) and set anything
dnl extra (e.g., #defines) that must accompany particular g++ options.
@@ -1142,6 +1187,7 @@ if test -n "$enable_cxx_flags"; then
done
fi
EXTRA_CXX_FLAGS="$enable_cxx_flags"
+AC_MSG_RESULT($EXTRA_CXX_FLAGS)
AC_SUBST(EXTRA_CXX_FLAGS)
])
@@ -1239,6 +1285,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -1273,6 +1320,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
+ CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
@@ -1289,6 +1337,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -1303,23 +1352,20 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
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_SUBST(CCODECVT_CC)
+ AC_SUBST(CCOLLATE_CC)
+ AC_SUBST(CCTYPE_CC)
+ AC_SUBST(CMESSAGES_CC)
+ AC_SUBST(CMONEY_CC)
+ AC_SUBST(CNUMERIC_CC)
+ AC_SUBST(CTIME_H)
+ AC_SUBST(CTIME_CC)
+ AC_SUBST(CLOCALE_CC)
+ AC_SUBST(CLOCALE_INTERNAL_H)
])
@@ -1420,7 +1466,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
esac
AC_SUBST(CSTDIO_H)
AC_SUBST(BASIC_FILE_H)
- AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
+ AC_SUBST(BASIC_FILE_CC)
# 2000-08-04 bkoz hack
CCODECVT_C=config/io/c_io_libio_codecvt.c
@@ -1739,7 +1785,7 @@ AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [dnl
dnl
-dnl Check for what kind of C headers to use.
+dnl Check for what type of C headers to use.
dnl
dnl GLIBCPP_ENABLE_CHEADERS
dnl --enable-cheaders= [does stuff].
@@ -1752,7 +1798,7 @@ define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))dnl
AC_MSG_CHECKING([for c header strategy to use])
AC_ARG_ENABLE(cheaders,
changequote(<<, >>)dnl
-<< --enable-cheaders construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
+<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
changequote([, ])
[case "$enableval" in
c)
@@ -1855,7 +1901,7 @@ AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
OPTIMIZE_CXXFLAGS=
AC_SUBST(OPTIMIZE_CXXFLAGS)
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
AC_SUBST(WARN_FLAGS)
])
@@ -1931,11 +1977,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_MSG_CHECKING([for install location])
@@ -2086,18 +2133,32 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
- GLIBCPP_CHECK_SETRLIMIT
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+ GLIBCPP_CHECK_SETRLIMIT
- # Look for setenv, so that extended locale tests can be performed.
- GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ # Look for setenv, so that extended locale tests can be performed.
+ GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
+ fi
# 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")
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
+ AC_SUBST(baseline_dir)
+
+ # Determine if checking the ABI is desirable.
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
+ enable_abi_check=no
+ else
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
+ fi
+ AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])
@@ -2111,6 +2172,45 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN])
AC_DEFUN([AC_PROG_LD])
])
+dnl
+dnl Check whether S_ISREG (Posix) or S_IFREG is available in <sys/stat.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_S_ISREG_OR_S_IFREG, [
+ AC_CACHE_VAL(glibcpp_cv_S_ISREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode); ],
+ [glibcpp_cv_S_ISREG=yes],
+ [glibcpp_cv_S_ISREG=no])
+ ])
+ AC_CACHE_VAL(glibcpp_cv_S_IFREG, [
+ AC_TRY_LINK([#include <sys/stat.h>],
+ [struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode; ],
+ [glibcpp_cv_S_IFREG=yes],
+ [glibcpp_cv_S_IFREG=no])
+ ])
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ AC_DEFINE(HAVE_S_ISREG)
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ AC_DEFINE(HAVE_S_IFREG)
+ fi
+])
+
+dnl
+dnl Check whether poll is available in <poll.h>.
+dnl
+
+AC_DEFUN(GLIBCPP_CHECK_POLL, [
+ AC_CACHE_VAL(glibcpp_cv_POLL, [
+ AC_TRY_COMPILE([#include <poll.h>],
+ [struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0); ],
+ [glibcpp_cv_POLL=yes],
+ [glibcpp_cv_POLL=no])
+ ])
+ if test x$glibcpp_cv_POLL = xyes; then
+ AC_DEFINE(HAVE_POLL)
+ fi
+])
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -2247,15 +2347,15 @@ fi
dnl Everything parsed; figure out what file to use.
case $enable_symvers in
no)
- LINKER_MAP=config/linker-map.dummy
+ SYMVER_MAP=config/linker-map.dummy
;;
gnu)
- LINKER_MAP=config/linker-map.gnu
+ SYMVER_MAP=config/linker-map.gnu
AC_DEFINE(_GLIBCPP_SYMVER)
;;
esac
-AC_LINK_FILES($LINKER_MAP, src/linker.map)
+AC_SUBST(SYMVER_MAP)
AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers)
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index 6ac56fdae35..4d9dec31158 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -113,6 +113,15 @@
// Define if the compiler/host combination has __builtin_sqrtl
#undef HAVE___BUILTIN_SQRTL
+// Define if poll is available in <poll.h>.
+#undef HAVE_POLL
+
+// Define if S_ISREG (Posix) is available in <sys/stat.h>.
+#undef HAVE_S_ISREG
+
+// Define if S_IFREG is available in <sys/stat.h>.
+#undef HAVE_S_IFREG
+
// Define if LC_MESSAGES is available in <locale.h>.
#undef HAVE_LC_MESSAGES
@@ -743,6 +752,12 @@
/* Define if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define if you have the <sys/filio.h> header file. */
+#undef HAVE_SYS_FILIO_H
+
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
/* Define if you have the <sys/isa_defs.h> header file. */
#undef HAVE_SYS_ISA_DEFS_H
diff --git a/libstdc++-v3/config/abi/alpha-freebsd5/baseline_symbols.txt b/libstdc++-v3/config/abi/alpha-freebsd5/baseline_symbols.txt
new file mode 100644
index 00000000000..6afb865077a
--- /dev/null
+++ b/libstdc++-v3/config/abi/alpha-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@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_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEmm@@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_traitsIwESaIwEE6appendEmw@@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_traitsIwESaIwEE6assignEmw@@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_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_traitsIwESaIwEE6insertEmmw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@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_traitsIwESaIwEE7replaceEmmmw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@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_traitsIwESaIwEEC1EmwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@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_traitsIwESaIwEEC2EmwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@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_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@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_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@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:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@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_overflowEi@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEli@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@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:_ZNSt5ctypeIcEC1EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@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:_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:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@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_base7_M_initEv@@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_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@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:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@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:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTSSt10__num_base@@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:_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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_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:_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:_ZTIs@@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: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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@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: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:_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:_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:_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:_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:_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:_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.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:576:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:584:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcout@@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_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base6xdigitE@@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:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@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 --git a/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt
index b2df36d3bf7..b2df36d3bf7 100644
--- a/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt
new file mode 100644
index 00000000000..6990e640ad4
--- /dev/null
+++ b/libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3071 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@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_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@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_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEjj@@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_traitsIwESaIwEE6appendEjw@@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_traitsIwESaIwEE6assignEjw@@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_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_traitsIwESaIwEE6insertEjjw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@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_traitsIwESaIwEE7replaceEjjjw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@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_traitsIwESaIwEEC1EjwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@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_traitsIwESaIwEEC2EjwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@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:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@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:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@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:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@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:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@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__timepunctIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@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:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@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:_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:_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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@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_base7_M_initEv@@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_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@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:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@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:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@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:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@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:_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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@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: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:15:_ZTSSt10__num_base@@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:_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:_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:_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:_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:176:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:176:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:176:_ZSt8buf_cout@@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:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:192:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:192:_ZSt9buf_wcout@@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:_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:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@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_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+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_force_newE@@GLIBCPP_3.2.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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_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:_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:_ZTIs@@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 --git a/libstdc++-v3/config/abi/i386-unknown-freebsd4/baseline_symbols.txt b/libstdc++-v3/config/abi/i386-freebsd4/baseline_symbols.txt
index c5b8fa0a739..5372a28e3bd 100644
--- a/libstdc++-v3/config/abi/i386-unknown-freebsd4/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/i386-freebsd4/baseline_symbols.txt
@@ -184,11 +184,17 @@ FUNC:_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_
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_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
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
@@ -200,6 +206,7 @@ FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8io
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@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_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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
@@ -547,6 +554,7 @@ FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
FUNC:_ZNSt11range_errorD1Ev@@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_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
@@ -1077,6 +1085,7 @@ FUNC:_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@
FUNC:_ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
FUNC:_ZStlsIfcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E@@GLIBCPP_3.2
FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_@@GLIBCPP_3.2
+FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_@@GLIBCPP_3.2.1
FUNC:_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
@@ -1163,6 +1172,9 @@ 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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
FUNC:__cxa_pure_virtual@@CXXABI_1.2
FUNC:__cxa_rethrow@@CXXABI_1.2
FUNC:__cxa_throw@@CXXABI_1.2
@@ -1178,8 +1190,28 @@ 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:__signbit@@GLIBCPP_3.2.1
+FUNC:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
OBJECT:12:_ZNSt6locale5_Impl11_S_id_ctypeE@@GLIBCPP_3.2
OBJECT:12:_ZSt9collate_c@@GLIBCPP_3.2
OBJECT:12:_ZTIN10__cxxabiv116__enum_type_infoE@@GLIBCPP_3.2
@@ -1685,6 +1717,8 @@ OBJECT:49:_ZTSN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEE@@GLIBCPP_3.2
OBJECT:49:_ZTSSt18basic_stringstreamIcSt11char_traitsIcESaIcEE@@GLIBCPP_3.2
OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
OBJECT:4:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
OBJECT:4:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
OBJECT:4:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
@@ -1846,6 +1880,7 @@ 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_force_newE@@GLIBCPP_3.2.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:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@GLIBCPP_3.2
diff --git a/libstdc++-v3/config/abi/i386-freebsd5/baseline_symbols.txt b/libstdc++-v3/config/abi/i386-freebsd5/baseline_symbols.txt
new file mode 100644
index 00000000000..c66b031d4b3
--- /dev/null
+++ b/libstdc++-v3/config/abi/i386-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@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_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEjj@@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_traitsIwESaIwEE6appendEjw@@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_traitsIwESaIwEE6assignEjw@@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_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_traitsIwESaIwEE6insertEjjw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@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_traitsIwESaIwEE7replaceEjjjw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@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_traitsIwESaIwEEC1EjwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@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_traitsIwESaIwEEC2EjwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@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_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@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_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@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:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@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_overflowEi@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEii@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@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:_ZNSt5ctypeIcEC1EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@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:_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:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@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_base7_M_initEv@@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_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPij@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@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:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@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:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@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: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:15:_ZTSSt10__num_base@@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:_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:_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:_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:_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:_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:_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:480:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:480:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCPP_3.2
+OBJECT:48:_ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCPP_3.2
+OBJECT:496:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:496:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:496:_ZSt9buf_wcout@@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_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10ctype_base6xdigitE@@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_force_newE@@GLIBCPP_3.2.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:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_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:_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:_ZTIs@@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 --git a/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt
index be8fc9b94d1..018ef0ea4a2 100644
--- a/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt
@@ -27,6 +27,9 @@ 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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
FUNC:__cxa_pure_virtual@@CXXABI_1.2
FUNC:__cxa_rethrow@@CXXABI_1.2
FUNC:__cxa_throw@@CXXABI_1.2
@@ -405,11 +408,17 @@ FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_
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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
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_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
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
@@ -429,12 +438,19 @@ FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt
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_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertES3_RSt8ios_basecPKci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
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_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
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
@@ -454,6 +470,7 @@ FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt
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_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
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
@@ -983,6 +1000,7 @@ 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_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
@@ -1909,8 +1927,10 @@ FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_Setbase@@GLIBCPP
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_ERKS6_S8_@@GLIBCPP_3.2.1
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_ERKS6_S8_@@GLIBCPP_3.2.1
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
@@ -1997,7 +2017,11 @@ FUNC:_ZTv0_n12_NSt19basic_ostringstreamIwSt11char_traitsIwESaIwEED1Ev@@GLIBCPP_3
FUNC:_ZTv0_n12_NSt9strstreamD0Ev@@GLIBCPP_3.2
FUNC:_ZTv0_n12_NSt9strstreamD1Ev@@GLIBCPP_3.2
OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
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
@@ -2656,6 +2680,8 @@ 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:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
OBJECT:4:_ZNSt11__timepunctIcE2idE@@GLIBCPP_3.2
OBJECT:4:_ZNSt11__timepunctIwE2idE@@GLIBCPP_3.2
OBJECT:4:_ZNSt14numeric_limitsIaE10has_denormE@@GLIBCPP_3.2
@@ -2814,6 +2840,7 @@ 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_force_newE@@GLIBCPP_3.2.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
diff --git a/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt
index eb729d3a2a0..eb729d3a2a0 100644
--- a/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt
new file mode 100644
index 00000000000..4d049b0701f
--- /dev/null
+++ b/libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3071 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@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_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@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_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEjj@@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_traitsIwESaIwEE6appendEjw@@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_traitsIwESaIwEE6assignEjw@@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_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_traitsIwESaIwEE6insertEjjw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@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_traitsIwESaIwEE7replaceEjjjw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@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_traitsIwESaIwEEC1EjwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@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_traitsIwESaIwEEC2EjwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@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:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@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:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@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:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@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:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@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__timepunctIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@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:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@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:_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:_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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@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_base7_M_initEv@@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_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@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:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@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:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@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:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@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:_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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@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:_ZTSSt10__num_base@@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:_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:_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:_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:_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_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+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_force_newE@@GLIBCPP_3.2.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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_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:_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:_ZTIs@@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 --git a/libstdc++-v3/config/abi/sparc-freebsd5/baseline_symbols.txt b/libstdc++-v3/config/abi/sparc-freebsd5/baseline_symbols.txt
new file mode 100644
index 00000000000..b63c4a360a6
--- /dev/null
+++ b/libstdc++-v3/config/abi/sparc-freebsd5/baseline_symbols.txt
@@ -0,0 +1,3073 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEmm@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcmm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsm@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcm@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEmm@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEm@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_isEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEmPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEmc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE10do_scan_isEmPKwS2_@@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_notEmPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE19_M_convert_to_wmaskEm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEPKwS2_Pm@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE5do_isEmw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwm@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_traitsIcEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiimRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEmm@@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_traitsIwESaIwEE6appendEmw@@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_traitsIwESaIwEE6assignEmw@@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_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_traitsIwESaIwEE6insertEmmw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwm@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_mw@@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_traitsIwESaIwEE7replaceEmmmw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@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_traitsIwESaIwEEC1EmwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@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_traitsIwESaIwEEC2EmwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPclc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPcl@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPclc@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKcl@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEm@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEmc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEmmc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEm@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEmc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcm@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_mc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmPKcm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmRKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEmmmc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEm@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEmmm@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmm@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EmcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEm@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPcl@@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_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EE24_M_initialize_moneypunctEPiPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Em@@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_timepunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP7__sFILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC1EPP13pthread_mutex@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcEC2EPP13pthread_mutex@@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:_ZNSt12strstreambufC1EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1El@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvmEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKal@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKcl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhl@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPalS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPclS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhlS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2El@@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_overflowEi@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_filebufIwSt11char_traitsIwEE9pbackfailEi@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5tellgEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5ungetEv@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEli@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_traitsIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE8pubimbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEi@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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_traitsIwESaIwEE8overflowEi@@GLIBCPP_3.2
+FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEi@@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:_ZNSt5ctypeIcEC1EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC1EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcEC2EPiPKmbm@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Em@@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:_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:_ZNSt6locale5facet16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet17_S_clone_c_localeERPi@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5facet19_S_destroy_c_localeERPi@@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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Em@@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_base7_M_initEv@@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_baseC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_baseD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EPiPKcm@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwE22_M_initialize_numpunctEPi@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EPim@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Em@@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:_ZNSt8valarrayImEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC1Em@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayImEC2Em@@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:_ZSt10unexpectedv@@GLIBCPP_3.2
+FUNC:_ZSt13set_terminatePFvvE@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIfEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIlEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vImEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIxEvPKcRT_RSt12_Ios_IostateRKPii@@GLIBCPP_3.2
+FUNC:_ZSt14__convert_to_vIyEvPKcRT_RSt12_Ios_IostateRKPii@@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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znam@@GLIBCPP_3.2
+FUNC:_ZnamRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwm@@GLIBCPP_3.2
+FUNC:_ZnwmRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:__signbitf@@GLIBCPP_3.2.1
+FUNC:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:nan@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTSSt10__num_base@@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:_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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:16:_ZTISt10money_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:_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:_ZTIs@@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: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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:24:_ZTISt11range_error@@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: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:_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:_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:_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:_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:_ZNSt6locale5_Impl11_S_id_ctypeE@@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_c@@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:_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:576:_ZSt7buf_cin@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cerr@@GLIBCPP_3.2
+OBJECT:576:_ZSt8buf_cout@@GLIBCPP_3.2
+OBJECT:584:_ZSt8buf_wcin@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcerr@@GLIBCPP_3.2
+OBJECT:584:_ZSt9buf_wcout@@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_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10ctype_base5alnumE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5alphaE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5cntrlE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5digitE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5graphE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5lowerE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5printE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5punctE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5spaceE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base5upperE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10ctype_base6xdigitE@@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_force_newE@@GLIBCPP_3.2.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:_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE@@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:_ZNSt6locale2id12_S_highwaterE@@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 --git a/libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt
new file mode 100644
index 00000000000..3969f4e6910
--- /dev/null
+++ b/libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt
@@ -0,0 +1,3205 @@
+FUNC:_ZN9__gnu_cxx27__verbose_terminate_handlerEv@@CXXABI_1.2
+FUNC:_ZNKSaIcE7addressERKc@@GLIBCPP_3.2
+FUNC:_ZNKSaIcE7addressERc@@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_traitsIwESaIwEE4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_sharedEv@@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_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_traitsIwESaIwEE6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE6substrEjj@@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_traitsIwESaIwEE7compareEPKw@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE7compareERKS2_@@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_traitsIwESaIwEE8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSbIwSt11char_traitsIwESaIwEE8max_sizeEv@@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_ofEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_ofERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs12find_last_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:_ZNKSs13find_first_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs13get_allocatorEv@@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:_ZNKSs16find_last_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:_ZNKSs17find_first_not_ofEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNKSs3endEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_leakedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4_Rep12_M_is_sharedEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4copyEPcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4dataEv@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs4findEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs4rendEv@@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:_ZNKSs5rfindEPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEPKcjj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindERKSsj@@GLIBCPP_3.2
+FUNC:_ZNKSs5rfindEcj@@GLIBCPP_3.2
+FUNC:_ZNKSs6_M_repEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6lengthEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNKSs6substrEjj@@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:_ZNKSs7compareEPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareERKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSs7compareEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNKSs8_M_checkEj@@GLIBCPP_3.2
+FUNC:_ZNKSs8capacityEv@@GLIBCPP_3.2
+FUNC:_ZNKSs8max_sizeEv@@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:_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:_ZNKSt11logic_error4whatEv@@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_traitsIcEE5equalERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIcSt11char_traitsIcEEdeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE5equalERKS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEE6_M_getEv@@GLIBCPP_3.2
+FUNC:_ZNKSt19istreambuf_iteratorIwSt11char_traitsIwEEdeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt4fposI11__mbstate_tEcvlEv@@GLIBCPP_3.2
+FUNC:_ZNKSt4fposI11__mbstate_tEeqERKS1_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_scan_isEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE11do_scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE2isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEPKcS2_Pt@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5do_isEtc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE5tableEv@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEPKcS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE8scan_notEtPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEPKcS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIcE9do_narrowEcc@@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_widenEPKcS2_Pw@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE8do_widenEc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCPP_3.2
+FUNC:_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale2id5_M_idEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6locale4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt6localeneERKS_@@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:_ZNKSt7collateIcE10_M_compareEPKcS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE10do_compareEPKcS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12_M_transformEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIcE12do_transformEPKcS2_@@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:_ZNKSt7collateIwE10_M_compareEPKwS2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12_M_transformEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNKSt7collateIwE12do_transformEPKwS2_@@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:_ZNKSt7complexIdE4imagEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7complexIdE4realEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7complexIeE4imagEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7complexIeE4realEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7complexIfE4imagEv@@GLIBCPP_3.2
+FUNC:_ZNKSt7complexIfE4realEv@@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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_IostateRPv@@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_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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
+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_basecPKv@@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_basecx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6_M_padEciRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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_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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
+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_basewPKv@@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_basewx@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewy@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6_M_padEwiRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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_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_base5flagsEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base5widthEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base6getlocEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8ios_base9precisionEv@@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_traitsIcEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIcERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_traitsIwEEE14_M_extract_numERS3_S5_RiiijRKSt5ctypeIwERSt12_Ios_Iostate@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14do_get_weekdayES3_S3_RSt8ios_baseRSt12_Ios_IostateP2tm@@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_basecPK2tmPKcSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmPKwSB_@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8time_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPK2tmcc@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayIjE4sizeEv@@GLIBCPP_3.2
+FUNC:_ZNKSt8valarrayIjEixEj@@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_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_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_traitsIwEEE3getES3_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_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_bRSt8ios_baseRSt12_Ios_IostateRe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basecRKSs@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_bRSt8ios_basece@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_bRSt8ios_basewe@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewRKSbIwS2_SaIwEE@@GLIBCPP_3.2
+FUNC:_ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_bRSt8ios_basewe@@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:_ZNKSt9type_info4nameEv@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_infoeqERKS_@@GLIBCPP_3.2
+FUNC:_ZNKSt9type_infoneERKS_@@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:_ZNSaIcEC1IwEERKSaIT_E@@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_Alloc_hiderD1Ev@@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_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_traitsIwESaIwEE4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE4swapERS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE5clearEv@@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_traitsIwESaIwEE5eraseEjj@@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_traitsIwESaIwEE6appendEjw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE6appendIPKwEERS2_T_S7_@@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_traitsIwESaIwEE6assignEjw@@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_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_traitsIwESaIwEE6insertEjjw@@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_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_PKwS8_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_PKwj@@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_traitsIwESaIwEE7replaceEN9__gnu_cxx17__normal_iteratorIPwS2_EES6_jw@@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_traitsIwESaIwEE7replaceEjjjw@@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_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@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_traitsIwESaIwEEC1EjwRKS1_@@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_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@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_traitsIwESaIwEEC2EjwRKS1_@@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_traitsIwESaIwEEaSEPKw@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSERKS2_@@GLIBCPP_3.2
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEaSEw@@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:_ZNSi3getEPci@@GLIBCPP_3.2
+FUNC:_ZNSi3getEPcic@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCPP_3.2
+FUNC:_ZNSi3getERSt15basic_streambufIcSt11char_traitsIcEEc@@GLIBCPP_3.2
+FUNC:_ZNSi3getERc@@GLIBCPP_3.2
+FUNC:_ZNSi3getEv@@GLIBCPP_3.2
+FUNC:_ZNSi4peekEv@@GLIBCPP_3.2
+FUNC:_ZNSi4readEPci@@GLIBCPP_3.2
+FUNC:_ZNSi4syncEv@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSi5seekgElSt12_Ios_Seekdir@@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:_ZNSi7getlineEPci@@GLIBCPP_3.2
+FUNC:_ZNSi7getlineEPcic@@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:_ZNSirsERPv@@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:_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:_ZNSo5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSo5seekpElSt12_Ios_Seekdir@@GLIBCPP_3.2
+FUNC:_ZNSo5tellpEv@@GLIBCPP_3.2
+FUNC:_ZNSo5writeEPKci@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC1ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryC2ERSo@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSo6sentrycvbEv@@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:_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:_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:_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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs10_M_replaceIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_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:_ZNSs10_M_replaceIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_St18input_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSs12_Alloc_hiderD1Ev@@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_iteratorIPKcSsEEEERSsNS1_IPcSsEES7_T_S8_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIN9__gnu_cxx17__normal_iteratorIPcSsEEEERSsS3_S3_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPKcEERSsN9__gnu_cxx17__normal_iteratorIPcSsEES6_T_S7_@@GLIBCPP_3.2
+FUNC:_ZNSs15_M_replace_safeIPcEERSsN9__gnu_cxx17__normal_iteratorIS0_SsEES4_T_S5_@@GLIBCPP_3.2
+FUNC:_ZNSs2atEj@@GLIBCPP_3.2
+FUNC:_ZNSs3endEv@@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:_ZNSs4rendEv@@GLIBCPP_3.2
+FUNC:_ZNSs4swapERSs@@GLIBCPP_3.2
+FUNC:_ZNSs5beginEv@@GLIBCPP_3.2
+FUNC:_ZNSs5clearEv@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEE@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEN9__gnu_cxx17__normal_iteratorIPcSsEES2_@@GLIBCPP_3.2
+FUNC:_ZNSs5eraseEjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6appendERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6appendEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6appendIPKcEERSsT_S3_@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6assignERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6assignEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEN9__gnu_cxx17__normal_iteratorIPcSsEEjc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs6insertEjjc@@GLIBCPP_3.2
+FUNC:_ZNSs6rbeginEv@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEj@@GLIBCPP_3.2
+FUNC:_ZNSs6resizeEjc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_dataEPc@@GLIBCPP_3.2
+FUNC:_ZNSs7_M_leakEv@@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_PKcS4_@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_PKcj@@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:_ZNSs7replaceEN9__gnu_cxx17__normal_iteratorIPcSsEES2_jc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKc@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjPKcj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSs@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSs7replaceEjjjc@@GLIBCPP_3.2
+FUNC:_ZNSs7reserveEj@@GLIBCPP_3.2
+FUNC:_ZNSs9_M_mutateEjjj@@GLIBCPP_3.2
+FUNC:_ZNSs9push_backEc@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC1ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjj@@GLIBCPP_3.2
+FUNC:_ZNSsC2ERKSsjjRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2EjcRKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPKcSsEEEET_S5_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPKcEET_S2_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsC2IPcEET_S1_RKSaIcE@@GLIBCPP_3.2
+FUNC:_ZNSsD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSsD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSsaSEPKc@@GLIBCPP_3.2
+FUNC:_ZNSsaSERKSs@@GLIBCPP_3.2
+FUNC:_ZNSsaSEc@@GLIBCPP_3.2
+FUNC:_ZNSsixEj@@GLIBCPP_3.2
+FUNC:_ZNSspLEPKc@@GLIBCPP_3.2
+FUNC:_ZNSspLERKSs@@GLIBCPP_3.2
+FUNC:_ZNSspLEc@@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:_ZNSt10bad_typeidC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10bad_typeidD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10ctype_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstream3strEv@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC1EPci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPc@@GLIBCPP_3.2
+FUNC:_ZNSt10istrstreamC2EPci@@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:_ZNSt10money_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EE24_M_initialize_moneypunctEP15__locale_structPKc@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb0EEC2Ej@@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:_ZNSt10moneypunctIcLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIcLb1EEC2Ej@@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:_ZNSt10moneypunctIwLb0EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb0EEC2Ej@@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:_ZNSt10moneypunctIwLb1EEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt10moneypunctIwLb1EED2Ev@@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:_ZNSt11__timepunctIcE23_M_initialize_timepunctEP15__locale_struct@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIcEC2Ej@@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__timepunctIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11__timepunctIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE11eq_int_typeERKiS2_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE11to_int_typeERKc@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE12to_char_typeERKi@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE2eqERKcS2_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE4copyEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE4findEPKcjRS1_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE4moveEPcPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE6assignEPcjc@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE6assignERcRKc@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE6lengthEPKc@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE7compareEPKcS2_j@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIcE7not_eofERKi@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE11eq_int_typeERKjS2_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE11to_int_typeERKw@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE12to_char_typeERKj@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE2eqERKwS2_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE3eofEv@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE4copyEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE4findEPKwjRS1_@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE4moveEPwPKwj@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE6assignEPwjw@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE6assignERwRKw@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE6lengthEPKw@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE7compareEPKwS2_j@@GLIBCPP_3.2
+FUNC:_ZNSt11char_traitsIwE7not_eofERKj@@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:_ZNSt12__basic_fileIcE10sys_ungetcEi@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE12_M_open_modeESt13_Ios_OpenmodeRiS2_Pc@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
+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_openEP8_IO_FILESt13_Ios_Openmode@@GLIBCPP_3.2
+FUNC:_ZNSt12__basic_fileIcE8sys_openEiSt13_Ios_Openmodeb@@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:_ZNSt12strstreambufC1EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC1Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPFPvjEPFvS0_E@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKai@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKci@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPKhi@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPaiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPciS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2EPhiS0_@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufC2Ei@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt12strstreambufD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13bad_exceptionC1Ev@@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_traitsIwEE5seekgESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_istreamIwSt11char_traitsIwEE5seekgElSt12_Ios_Seekdir@@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_traitsIwEErsERPv@@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_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_traitsIwEE5seekpESt4fposI11__mbstate_tE@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpElSt12_Ios_Seekdir@@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_traitsIwEE6sentryD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentryD2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@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_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_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_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:_ZNSt13messages_baseC2Ev@@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:_ZNSt14numeric_limitsIiE3maxEv@@GLIBCPP_3.2
+FUNC:_ZNSt14numeric_limitsIiE3minEv@@GLIBCPP_3.2
+FUNC:_ZNSt14numeric_limitsIjE3maxEv@@GLIBCPP_3.2
+FUNC:_ZNSt14numeric_limitsIsE3maxEv@@GLIBCPP_3.2
+FUNC:_ZNSt14numeric_limitsIsE3minEv@@GLIBCPP_3.2
+FUNC:_ZNSt14numeric_limitsItE3maxEv@@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_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_streambufIcSt11char_traitsIcEEaSERKS2_@@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_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_streambufIwSt11char_traitsIwEEaSERKS2_@@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:_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKcSsEEEC1ES4_@@GLIBCPP_3.2
+FUNC:_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEEEC1ES8_@@GLIBCPP_3.2
+FUNC:_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPcSsEEEC1ES3_@@GLIBCPP_3.2
+FUNC:_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPwSbIwSt11char_traitsIwESaIwEEEEEC1ES7_@@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:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC1EPSt15basic_streambufIcS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC1ERSi@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEi@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEC1EPSt15basic_streambufIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEC1ERSt13basic_istreamIwS1_E@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEi@@GLIBCPP_3.2
+FUNC:_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@@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:_ZNSt4fposI11__mbstate_tEC1ElS0_@@GLIBCPP_3.2
+FUNC:_ZNSt4fposI11__mbstate_tEC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt4fposI11__mbstate_tEmIEl@@GLIBCPP_3.2
+FUNC:_ZNSt4fposI11__mbstate_tEmiEl@@GLIBCPP_3.2
+FUNC:_ZNSt4fposI11__mbstate_tEpLEl@@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:_ZNSt5ctypeIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt5ctypeIwEC2Ej@@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:_ZNSt6locale5_Impl16_M_add_referenceEv@@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_Impl18_M_check_same_nameEv@@GLIBCPP_3.2
+FUNC:_ZNSt6locale5_Impl19_M_remove_referenceEv@@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:_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:_ZNSt6locale6globalERKS_@@GLIBCPP_3.2
+FUNC:_ZNSt6locale7classicEv@@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:_ZNSt6localeaSERKS_@@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:_ZNSt7collateIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7collateIwED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt7complexIdEC1Edd@@GLIBCPP_3.2
+FUNC:_ZNSt7complexIeEC1Eee@@GLIBCPP_3.2
+FUNC:_ZNSt7complexIfEC1Eff@@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_castC1Ev@@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_base14_Callback_list16_M_add_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base14_Callback_list19_M_remove_referenceEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base14_Callback_listC1EPFvNS_5eventERS_iEiPS0_@@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_base4setfESt13_Ios_Fmtflags@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base4setfESt13_Ios_FmtflagsS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5flagsESt13_Ios_Fmtflags@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5imbueERKSt6locale@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base5widthEi@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6_WordsC1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base6xallocEv@@GLIBCPP_3.2
+FUNC:_ZNSt8ios_base7_M_initEv@@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_base9precisionEi@@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:_ZNSt8iteratorISt18input_iterator_tagclPcRcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt18input_iterator_tagwlPwRwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt19output_iterator_tagvvvvEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt26random_access_iterator_tagciPKcRS1_EC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt26random_access_iterator_tagciPcRcEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt26random_access_iterator_tagwiPKwRS1_EC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8iteratorISt26random_access_iterator_tagwiPwRwEC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIcED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2EP15__locale_structPKcj@@GLIBCPP_3.2
+FUNC:_ZNSt8messagesIwEC2Ej@@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:_ZNSt8numpunctIcEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIcEC2Ej@@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:_ZNSt8numpunctIwEC1EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2EP15__locale_structj@@GLIBCPP_3.2
+FUNC:_ZNSt8numpunctIwEC2Ej@@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:_ZNSt8valarrayIjEC1ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC1Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2ERKS0_@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEC2Ej@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjED2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt8valarrayIjEixEj@@GLIBCPP_3.2
+FUNC:_ZNSt9bad_allocC1Ev@@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:_ZNSt9exceptionC2Ev@@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:_ZNSt9time_baseC2Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD0Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD1Ev@@GLIBCPP_3.2
+FUNC:_ZNSt9type_infoD2Ev@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIN9__gnu_cxx17__normal_iteratorIPKcSsEEENSt15iterator_traitsIT_E15difference_typeES6_S6_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E15difference_typeESA_SA_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIN9__gnu_cxx17__normal_iteratorIPcSsEEENSt15iterator_traitsIT_E15difference_typeES5_S5_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIN9__gnu_cxx17__normal_iteratorIPwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E15difference_typeES9_S9_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIPKcENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIPKwENSt15iterator_traitsIT_E15difference_typeES3_S3_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIPcENSt15iterator_traitsIT_E15difference_typeES2_S2_St26random_access_iterator_tag@@GLIBCPP_3.2
+FUNC:_ZSt10__distanceIPwENSt15iterator_traitsIT_E15difference_typeES2_S2_St26random_access_iterator_tag@@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__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPKcSsEEENSt15iterator_traitsIT_E17iterator_categoryERKS6_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E17iterator_categoryERKSA_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPcSsEEENSt15iterator_traitsIT_E17iterator_categoryERKS5_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIN9__gnu_cxx17__normal_iteratorIPwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E17iterator_categoryERKS9_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIPKcENSt15iterator_traitsIT_E17iterator_categoryERKS3_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIPKwENSt15iterator_traitsIT_E17iterator_categoryERKS3_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIPcENSt15iterator_traitsIT_E17iterator_categoryERKS2_@@GLIBCPP_3.2
+FUNC:_ZSt19__iterator_categoryIPwENSt15iterator_traitsIT_E17iterator_categoryERKS2_@@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:_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKcSsEEENSt15iterator_traitsIT_E15difference_typeES6_S6_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E15difference_typeESA_SA_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPcSsEEENSt15iterator_traitsIT_E15difference_typeES5_S5_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPwSbIwSt11char_traitsIwESaIwEEEEENSt15iterator_traitsIT_E15difference_typeES9_S9_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIPKcENSt15iterator_traitsIT_E15difference_typeES3_S3_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIPKwENSt15iterator_traitsIT_E15difference_typeES3_S3_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIPcENSt15iterator_traitsIT_E15difference_typeES2_S2_@@GLIBCPP_3.2
+FUNC:_ZSt8distanceIPwENSt15iterator_traitsIT_E15difference_typeES2_S2_@@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:_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:_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:_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:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKS3_@@GLIBCPP_3.2
+FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_PKc@@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_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
+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_ERKS6_S8_@@GLIBCPP_3.2.1
+FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@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:_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:_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
+FUNC:_ZdaPv@@GLIBCPP_3.2
+FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_ZdlPv@@GLIBCPP_3.2
+FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znaj@@GLIBCPP_3.2
+FUNC:_ZnajRKSt9nothrow_t@@GLIBCPP_3.2
+FUNC:_Znwj@@GLIBCPP_3.2
+FUNC:_ZnwjRKSt9nothrow_t@@GLIBCPP_3.2
+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@@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_clear@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy@@CXXABI_1.2
+FUNC:__cxa_dyn_string_copy_cstr@@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@@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_new@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend@@CXXABI_1.2
+FUNC:__cxa_dyn_string_prepend_cstr@@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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
+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:atan2l@@GLIBCPP_3.2.1
+FUNC:coshl@@GLIBCPP_3.2.1
+FUNC:cosl@@GLIBCPP_3.2.1
+FUNC:expl@@GLIBCPP_3.2.1
+FUNC:hypotl@@GLIBCPP_3.2.1
+FUNC:log10l@@GLIBCPP_3.2.1
+FUNC:logl@@GLIBCPP_3.2.1
+FUNC:powl@@GLIBCPP_3.2.1
+FUNC:sinhl@@GLIBCPP_3.2.1
+FUNC:sinl@@GLIBCPP_3.2.1
+FUNC:sqrtl@@GLIBCPP_3.2.1
+FUNC:tanhl@@GLIBCPP_3.2.1
+FUNC:tanl@@GLIBCPP_3.2.1
+OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
+OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
+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:_ZTISt11__timepunctIcE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11__timepunctIwE@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11logic_error@@GLIBCPP_3.2
+OBJECT:12:_ZTISt11range_error@@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:_ZTSSt10__num_base@@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:_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:_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:_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:_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_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_terminalE@@GLIBCPP_3.2
+OBJECT:4:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
+OBJECT:4:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:4:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:4:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
+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_force_newE@@GLIBCPP_3.2.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:_ZTINSt6locale5facetE@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10__num_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10ctype_base@@GLIBCPP_3.2
+OBJECT:8:_ZTISt10money_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:_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:_ZTIs@@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 --git a/libstdc++-v3/config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt
index 15af15630db..299af6148a8 100644
--- a/libstdc++-v3/config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt
+++ b/libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt
@@ -355,11 +355,17 @@ FUNC:_ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_
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_group_intERKSscRSt8ios_basePcS9_Ri@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE12_M_widen_intES3_RSt8ios_basecPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIlEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intImEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIxEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intIyEES3_S3_RSt8ios_basecccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_group_floatERKSscPKcPcS9_Ri@@GLIBCPP_3.2.3
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
@@ -371,6 +377,7 @@ FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8io
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE3putES3_RSt8ios_basecm@@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_traitsIcEEE6_M_padEclRSt8ios_basePcPKcRi@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt8ios_basecPKv@@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
@@ -380,11 +387,17 @@ FUNC:_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE6do_putES3_RSt
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_group_intERKSswRSt8ios_basePwS9_Ri@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE12_M_widen_intES3_RSt8ios_basewPci@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIlEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intImEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIxEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewT_@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intIyEES3_S3_RSt8ios_basewccT_@@GLIBCPP_3.2
+FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_group_floatERKSswPKwPwS9_Ri@@GLIBCPP_3.2.3
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
@@ -396,6 +409,7 @@ FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8io
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE3putES3_RSt8ios_basewm@@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_traitsIwEEE6_M_padEwlRSt8ios_basePwPKwRi@@GLIBCPP_3.2.3
FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv@@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
@@ -933,6 +947,7 @@ FUNC:_ZNSt11range_errorD0Ev@@GLIBCPP_3.2
FUNC:_ZNSt11range_errorD1Ev@@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_fileIcE16showmanyc_helperEv@@GLIBCPP_3.2.3
FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCPP_3.2
FUNC:_ZNSt12__basic_fileIcE4syncEv@@GLIBCPP_3.2
@@ -1462,6 +1477,7 @@ 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
@@ -1531,16 +1547,12 @@ FUNC:_ZNSt6localeC2Ev@@GLIBCPP_3.2
FUNC:_ZNSt6localeD1Ev@@GLIBCPP_3.2
FUNC:_ZNSt6localeD2Ev@@GLIBCPP_3.2
FUNC:_ZNSt6localeaSERKS_@@GLIBCPP_3.2
-FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structm@@GLIBCPP_3.2
FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1Em@@GLIBCPP_3.2
-FUNC:_ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structm@@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_tEC1EP15__locale_structm@@GLIBCPP_3.2
FUNC:_ZNSt7codecvtIwc11__mbstate_tEC1Em@@GLIBCPP_3.2
-FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structm@@GLIBCPP_3.2
FUNC:_ZNSt7codecvtIwc11__mbstate_tEC2Em@@GLIBCPP_3.2
FUNC:_ZNSt7codecvtIwc11__mbstate_tED0Ev@@GLIBCPP_3.2
FUNC:_ZNSt7codecvtIwc11__mbstate_tED1Ev@@GLIBCPP_3.2
@@ -1860,8 +1872,10 @@ FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E@@GL
FUNC:_ZStlsIwSt11char_traitsIwEERSt13basic_ostreamIT_T0_ES6_c@@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_ERKS6_S8_@@GLIBCPP_3.2.1
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_ERKS6_S8_@@GLIBCPP_3.2.1
FUNC:_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_@@GLIBCPP_3.2
FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Pa@@GLIBCPP_3.2
FUNC:_ZStrsISt11char_traitsIcEERSt13basic_istreamIcT_ES5_Ph@@GLIBCPP_3.2
@@ -1984,6 +1998,9 @@ 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_guard_abort@@CXXABI_1.2.1
+FUNC:__cxa_guard_acquire@@CXXABI_1.2.1
+FUNC:__cxa_guard_release@@CXXABI_1.2.1
FUNC:__cxa_pure_virtual@@CXXABI_1.2
FUNC:__cxa_rethrow@@CXXABI_1.2
FUNC:__cxa_throw@@CXXABI_1.2
@@ -2000,7 +2017,11 @@ FUNC:__cxa_vec_new@@CXXABI_1.2
FUNC:__dynamic_cast@@CXXABI_1.2
FUNC:__gxx_personality_v0@@CXXABI_1.2
OBJECT:0:CXXABI_1.2
+OBJECT:0:CXXABI_1.2.1
OBJECT:0:GLIBCPP_3.2
+OBJECT:0:GLIBCPP_3.2.1
+OBJECT:0:GLIBCPP_3.2.2
+OBJECT:0:GLIBCPP_3.2.3
OBJECT:104:_ZTVSt10moneypunctIcLb0EE@@GLIBCPP_3.2
OBJECT:104:_ZTVSt10moneypunctIcLb1EE@@GLIBCPP_3.2
OBJECT:104:_ZTVSt10moneypunctIwLb0EE@@GLIBCPP_3.2
@@ -2065,6 +2086,8 @@ 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
@@ -2371,8 +2394,6 @@ 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:_ZSt9codecvt_c@@GLIBCPP_3.2
-OBJECT:24:_ZSt9codecvt_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
@@ -2794,6 +2815,7 @@ 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_templateILb1ELi0EE12_S_force_newE@@GLIBCPP_3.2.2
OBJECT:4:_ZNSt6locale2id12_S_highwaterE@@GLIBCPP_3.2
OBJECT:4:_ZNSt6locale3allE@@GLIBCPP_3.2
OBJECT:4:_ZNSt6locale4noneE@@GLIBCPP_3.2
@@ -2991,6 +3013,8 @@ OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep11_S_max_sizeE@@GLIBCPP_3.2
OBJECT:8:_ZNSbIwSt11char_traitsIwESaIwEE4nposE@@GLIBCPP_3.2
OBJECT:8:_ZNSs4_Rep11_S_max_sizeE@@GLIBCPP_3.2
OBJECT:8:_ZNSs4nposE@@GLIBCPP_3.2
+OBJECT:8:_ZNSt10__num_base11_S_atoms_inE@@GLIBCPP_3.2.3
+OBJECT:8:_ZNSt10__num_base12_S_atoms_outE@@GLIBCPP_3.2.3
OBJECT:8:_ZNSt10moneypunctIcLb0EE2idE@@GLIBCPP_3.2
OBJECT:8:_ZNSt10moneypunctIcLb1EE2idE@@GLIBCPP_3.2
OBJECT:8:_ZNSt10moneypunctIwLb0EE2idE@@GLIBCPP_3.2
diff --git a/libstdc++-v3/config/cpu/generic/atomicity.h b/libstdc++-v3/config/cpu/generic/atomicity.h
index 2cf6c3ced68..829a77c52cb 100644
--- a/libstdc++-v3/config/cpu/generic/atomicity.h
+++ b/libstdc++-v3/config/cpu/generic/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: Generic version -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,24 +32,35 @@
#include <bits/gthr.h>
+#define _GLIBCPP_NEED_GENERIC_MUTEX
+
typedef int _Atomic_word;
namespace __gnu_cxx
{
- __gthread_mutex_t _Atomic_add_mutex __attribute__ ((__weak__))
- = __GTHREAD_MUTEX_INIT;
+ extern __gthread_mutex_t _Atomic_add_mutex;
+
+#ifndef __GTHREAD_MUTEX_INIT
+ extern __gthread_once_t _Atomic_add_mutex_once;
+ extern void __gthread_atomic_add_mutex_once();
+#endif
}
static inline _Atomic_word
__attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word* __mem, int __val)
{
- _Atomic_word __result;
+#ifndef __GTHREAD_MUTEX_INIT
+ __gthread_once (&__gnu_cxx::_Atomic_add_mutex_once,
+ __gnu_cxx::__gthread_atomic_add_mutex_once);
+#endif
+
+ _Atomic_word __result;
- __gthread_mutex_lock (&__gnu_cxx::_Atomic_add_mutex);
+ __gthread_mutex_lock (&__gnu_cxx::_Atomic_add_mutex);
- __result = *__mem;
- *__mem += __val;
+ __result = *__mem;
+ *__mem += __val;
__gthread_mutex_unlock (&__gnu_cxx::_Atomic_add_mutex);
return __result;
diff --git a/libstdc++-v3/config/cpu/hppa/atomicity.h b/libstdc++-v3/config/cpu/hppa/atomicity.h
index eefb32d4a8e..f7f16093b45 100644
--- a/libstdc++-v3/config/cpu/hppa/atomicity.h
+++ b/libstdc++-v3/config/cpu/hppa/atomicity.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. PA-RISC version. -*- C++ -*-
- Copyright 2002 Free Software Foundation, Inc.
+ Copyright 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,6 +17,15 @@
write to the Free Software Foundation, Inc., 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
@@ -25,11 +34,12 @@ typedef int _Atomic_word;
template <int __inst>
struct __Atomicity_lock
{
- static volatile int __attribute__ ((aligned (16))) _S_atomicity_lock;
+ static volatile int _S_atomicity_lock;
};
template <int __inst>
-volatile int __Atomicity_lock<__inst>::_S_atomicity_lock = 1;
+volatile int
+__Atomicity_lock<__inst>::_S_atomicity_lock __attribute__ ((aligned (16))) = 1;
/* Because of the lack of weak support when using the hpux
som linker, we explicitly instantiate the atomicity lock
@@ -58,8 +68,9 @@ __exchange_and_add (volatile _Atomic_word* __mem, int __val)
result = *__mem;
*__mem = result + __val;
- __asm__ __volatile__("");
- lock = tmp;
+ /* Reset lock with PA 2.0 "ordered" store. */
+ __asm__ __volatile__ ("stw,ma %1,0(%0)"
+ : : "r" (&lock), "r" (tmp) : "memory");
return result;
}
@@ -80,8 +91,9 @@ __atomic_add (_Atomic_word* __mem, int __val)
: "r" (&lock));
*__mem += __val;
- __asm__ __volatile__("");
- lock = tmp;
+ /* Reset lock with PA 2.0 "ordered" store. */
+ __asm__ __volatile__ ("stw,ma %1,0(%0)"
+ : : "r" (&lock), "r" (tmp) : "memory");
}
#endif
diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h
new file mode 100644
index 00000000000..d619dbb99ce
--- /dev/null
+++ b/libstdc++-v3/config/cpu/i386/atomicity.h
@@ -0,0 +1,75 @@
+// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*-
+
+// Copyright (C) 2003 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 <int __inst>
+struct __Atomicity_lock
+{
+ static volatile _Atomic_word _S_atomicity_lock;
+};
+
+template <int __inst>
+volatile _Atomic_word __Atomicity_lock<__inst>::_S_atomicity_lock = 0;
+
+template volatile _Atomic_word __Atomicity_lock<0>::_S_atomicity_lock;
+
+static inline _Atomic_word
+__attribute__ ((__unused__))
+__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+{
+ register _Atomic_word __result, __tmp = 1;
+
+ /* obtain the atomic exchange/add spin lock */
+ do {
+ __asm__ __volatile__ ("xchg{l} {%0,%1|%1,%0}"
+ : "+m" (__Atomicity_lock<0>::_S_atomicity_lock),
+ "+r" (__tmp));
+ } while (__tmp);
+
+ __result = *__mem;
+ *__mem += __val;
+
+ /* release spin lock */
+ __Atomicity_lock<0>::_S_atomicity_lock = 0;
+
+ return __result;
+}
+
+static inline void
+__attribute__ ((__unused__))
+__atomic_add (volatile _Atomic_word* __mem, int __val)
+{
+ __exchange_and_add (__mem, __val);
+}
+
+#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h
index 92f5011c3a1..1195cb93305 100644
--- a/libstdc++-v3/config/cpu/i486/atomicity.h
+++ b/libstdc++-v3/config/cpu/i486/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2004 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,9 +37,9 @@ __attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word *__mem, int __val)
{
register _Atomic_word __result;
- __asm__ __volatile__ ("lock; xaddl %0,%2"
- : "=r" (__result)
- : "0" (__val), "m" (*__mem)
+ __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
+ : "=r" (__result), "=m" (*__mem)
+ : "0" (__val), "m"(*__mem)
: "memory");
return __result;
}
@@ -48,8 +48,10 @@ static inline void
__attribute__ ((__unused__))
__atomic_add (volatile _Atomic_word* __mem, int __val)
{
- __asm__ __volatile__ ("lock; addl %0,%1"
- : : "ir" (__val), "m" (*__mem) : "memory");
+ __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
+ : "=m" (*__mem)
+ : "ir" (__val), "m"(*__mem)
+ : "memory");
}
#endif /* atomicity.h */
diff --git a/libstdc++-v3/config/cpu/m68k/atomicity.h b/libstdc++-v3/config/cpu/m68k/atomicity.h
index db327355954..c80e2e32a8b 100644
--- a/libstdc++-v3/config/cpu/m68k/atomicity.h
+++ b/libstdc++-v3/config/cpu/m68k/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: m68k version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,8 +32,9 @@
typedef int _Atomic_word;
-#if defined(__mc68020__) || defined(__mc68030__) \
- || defined(__mc68040__) || defined(__mc68060__)
+#if ( defined(__mc68020__) || defined(__mc68030__) \
+ || defined(__mc68040__) || defined(__mc68060__) ) \
+ && !defined(__mcpu32__)
// These variants support compare-and-swap.
static inline _Atomic_word
@@ -74,8 +75,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
return __result;
}
-#elif !defined(__mcf5200__) && !defined(__mcf5300__)
-// 68000, 68010, cpu32 and 5400 support test-and-set.
+#else
template <int __inst>
struct __Atomicity_lock
@@ -94,9 +94,26 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
{
_Atomic_word __result;
+// bset with no immediate addressing
+#if defined(__mcf5200__) || defined(__mcf5300__) || defined(__mcf5400__)
+ __asm__ __volatile__("1: bset.b #7,%0@\n\tjbne 1b"
+ : /* no outputs */
+ : "a"(&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "cc", "memory");
+
+// bset with immediate addressing
+#elif defined(__mc68000__)
+ __asm__ __volatile__("1: bset.b #7,%0\n\tjbne 1b"
+ : "+m"(__Atomicity_lock<0>::_S_atomicity_lock)
+ : /* none */
+ : "cc");
+
+#else // 680x0, cpu32, 5400 support test-and-set.
__asm__ __volatile__("1: tas %0\n\tjbne 1b"
- : "=m"(__Atomicity_lock<0>::_S_atomicity_lock)
- : "m"(__Atomicity_lock<0>::_S_atomicity_lock));
+ : "+m"(__Atomicity_lock<0>::_S_atomicity_lock)
+ : /* none */
+ : "cc");
+#endif
__result = *__mem;
*__mem = __result + __val;
@@ -106,45 +123,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
return __result;
}
-#elif defined(__vxWorks__) || defined(__embedded__)
-// The best we can hope for is to disable interrupts, which we
-// can only do from supervisor mode.
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
- _Atomic_word __result;
- short __level, __tmpsr;
- __asm__ __volatile__ ("move%.w %%sr,%0\n\tor%.l %0,%1\n\tmove%.w %1,%%sr"
- : "=d"(__level), "=d"(__tmpsr) : "1"(0x700));
-
- __result = *__mem;
- *__mem = __result + __val;
-
- __asm__ __volatile__ ("move%.w %0,%%sr" : : "d"(__level));
-
- return __result;
-}
-
-#else
-// These variants do not support any atomic operations at all.
-
-#warning "__exchange_and_add is not atomic for this target"
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
- _Atomic_word __result;
-
- __result = *__mem;
- *__mem = __result + __val;
-
- return __result;
-}
-
-#endif /* CAS / IRQ / TAS */
+#endif /* TAS / BSET */
static inline void
__attribute__ ((__unused__))
@@ -155,4 +134,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
(void) __exchange_and_add (__mem, __val);
}
-#endif /* atomicity.h */
+#endif /* _BITS_ATOMICITY_H */
diff --git a/libstdc++-v3/config/cpu/mips/atomicity.h b/libstdc++-v3/config/cpu/mips/atomicity.h
index 447355b7a6d..7bacabd00ae 100644
--- a/libstdc++-v3/config/cpu/mips/atomicity.h
+++ b/libstdc++-v3/config/cpu/mips/atomicity.h
@@ -33,7 +33,7 @@
typedef int _Atomic_word;
static inline int
-__attribute__ ((unused))
+__attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word *__mem, int __val)
{
int __result, __tmp;
@@ -57,7 +57,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
}
static inline void
-__attribute__ ((unused))
+__attribute__ ((__unused__))
__atomic_add (volatile _Atomic_word *__mem, int __val)
{
int __result;
diff --git a/libstdc++-v3/config/cpu/sparc/atomicity.h b/libstdc++-v3/config/cpu/sparc/atomicity.h
index 23804db00b7..de044d9c619 100644
--- a/libstdc++-v3/config/cpu/sparc/atomicity.h
+++ b/libstdc++-v3/config/cpu/sparc/atomicity.h
@@ -39,6 +39,7 @@ __attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word *__mem, int __val)
{
_Atomic_word __tmp1, __tmp2;
+ _Atomic_word __val_extended = __val;
__asm__ __volatile__("1: ldx [%2], %0\n\t"
" add %0, %3, %1\n\t"
@@ -47,7 +48,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
" brnz,pn %0, 1b\n\t"
" nop"
: "=&r" (__tmp1), "=&r" (__tmp2)
- : "r" (__mem), "r" (__val)
+ : "r" (__mem), "r" (__val_extended)
: "memory");
return __tmp2;
}
@@ -57,6 +58,7 @@ __attribute__ ((__unused__))
__atomic_add (volatile _Atomic_word* __mem, int __val)
{
_Atomic_word __tmp1, __tmp2;
+ _Atomic_word __val_extended = __val;
__asm__ __volatile__("1: ldx [%2], %0\n\t"
" add %0, %3, %1\n\t"
@@ -65,7 +67,7 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
" brnz,pn %0, 1b\n\t"
" nop"
: "=&r" (__tmp1), "=&r" (__tmp2)
- : "r" (__mem), "r" (__val)
+ : "r" (__mem), "r" (__val_extended)
: "memory");
}
diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc
index ff23d983ae8..476e11a5d9f 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.cc
+++ b/libstdc++-v3/config/io/basic_file_stdio.cc
@@ -1,6 +1,6 @@
// Wrapper of C-language FILE struct -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2004 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,6 +33,67 @@
#include <bits/basic_file.h>
#include <fcntl.h>
+#include <unistd.h>
+
+#ifdef _GLIBCPP_HAVE_SYS_IOCTL_H
+#define BSD_COMP /* Get FIONREAD on Solaris2. */
+#include <sys/ioctl.h>
+#endif
+
+// Pick up FIONREAD on Solaris 2.5.
+#ifdef _GLIBCPP_HAVE_SYS_FILIO_H
+#include <sys/filio.h>
+#endif
+
+#ifdef _GLIBCPP_HAVE_POLL
+#include <poll.h>
+#endif
+
+#if defined(_GLIBCPP_HAVE_S_ISREG) || defined(_GLIBCPP_HAVE_S_IFREG)
+# include <sys/stat.h>
+# ifdef _GLIBCPP_HAVE_S_ISREG
+# define _GLIBCPP_ISREG(x) S_ISREG(x)
+# else
+# define _GLIBCPP_ISREG(x) (((x) & S_IFMT) == S_IFREG)
+# endif
+#endif
+
+namespace __gnu_internal
+{
+ // Map ios_base::openmode flags to a string for use in fopen().
+ // Table of valid combinations as given in [lib.filebuf.members]/2.
+ static const char*
+ fopen_mode(std::ios_base::openmode mode)
+ {
+ enum
+ {
+ in = std::ios_base::in,
+ out = std::ios_base::out,
+ trunc = std::ios_base::trunc,
+ app = std::ios_base::app,
+ binary = std::ios_base::binary
+ };
+
+ switch (mode & (in|out|trunc|app|binary))
+ {
+ case ( out ): return "w";
+ case ( out |app ): return "a";
+ case ( out|trunc ): return "w";
+ case (in ): return "r";
+ case (in|out ): return "r+";
+ case (in|out|trunc ): return "w+";
+
+ case ( out |binary): return "wb";
+ case ( out |app|binary): return "ab";
+ case ( out|trunc |binary): return "wb";
+ case (in |binary): return "rb";
+ case (in|out |binary): return "r+b";
+ case (in|out|trunc |binary): return "w+b";
+
+ default: return 0; // invalid
+ }
+ }
+} // namespace __gnu_internal
namespace std
{
@@ -42,52 +103,16 @@ namespace std
__basic_file<char>::~__basic_file()
{ this->close(); }
-
- void
- __basic_file<char>::_M_open_mode(ios_base::openmode __mode, int& __p_mode,
- int&, char* __c_mode)
- {
- bool __testb = __mode & ios_base::binary;
- bool __testi = __mode & ios_base::in;
- bool __testo = __mode & ios_base::out;
- bool __testt = __mode & ios_base::trunc;
- bool __testa = __mode & ios_base::app;
-
- // Set __c_mode for use in fopen.
- // Set __p_mode for use in open.
- if (!__testi && __testo && !__testt && !__testa)
- {
- strcpy(__c_mode, "w");
- __p_mode = (O_WRONLY | O_CREAT);
- }
- if (!__testi && __testo && !__testt && __testa)
- {
- strcpy(__c_mode, "a");
- __p_mode |= O_WRONLY | O_CREAT | O_APPEND;
- }
- if (!__testi && __testo && __testt && !__testa)
- {
- strcpy(__c_mode, "w");
- __p_mode |= O_WRONLY | O_CREAT | O_TRUNC;
- }
- if (__testi && !__testo && !__testt && !__testa)
- {
- strcpy(__c_mode, "r");
- __p_mode |= O_RDONLY | O_NONBLOCK;
- }
- if (__testi && __testo && !__testt && !__testa)
- {
- strcpy(__c_mode, "r+");
- __p_mode |= O_RDWR | O_CREAT;
- }
- if (__testi && __testo && __testt && !__testa)
- {
- strcpy(__c_mode, "w+");
- __p_mode |= O_RDWR | O_CREAT | O_TRUNC;
- }
- if (__testb)
- strcat(__c_mode, "b");
+ // Preserved for binary compatibility only.
+ // Do not use. Gone in 3.4.
+ void
+ __basic_file<char>::_M_open_mode(ios_base::openmode __mode, int&, int&,
+ char* __c_mode)
+ {
+ const char* r = __gnu_internal::fopen_mode(__mode);
+ if (r)
+ strcpy(__c_mode, r);
}
__basic_file<char>*
@@ -108,12 +133,9 @@ namespace std
bool __del)
{
__basic_file* __ret = NULL;
- int __p_mode = 0;
- int __rw_mode = 0;
- char __c_mode[4];
-
- _M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
- if (!this->is_open() && (_M_cfile = fdopen(__fd, __c_mode)))
+ const char* __c_mode = __gnu_internal::fopen_mode(__mode);
+ if (__c_mode && !this->is_open()
+ && (_M_cfile = fdopen(__fd, __c_mode)))
{
// Iff __del is true, then close will fclose the fd.
_M_cfile_created = __del;
@@ -139,22 +161,12 @@ namespace std
int /*__prot*/)
{
__basic_file* __ret = NULL;
- int __p_mode = 0;
- int __rw_mode = 0;
- char __c_mode[4];
-
- _M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
-
- if (!this->is_open())
+ const char* __c_mode = __gnu_internal::fopen_mode(__mode);
+ if (__c_mode && !this->is_open())
{
if ((_M_cfile = fopen(__name, __c_mode)))
{
_M_cfile_created = true;
-
- // Set input to nonblocking for fifos.
- if (__mode & ios_base::in)
- fcntl(this->fd(), F_SETFL, O_NONBLOCK);
-
__ret = this;
}
}
@@ -175,12 +187,12 @@ namespace std
__basic_file* __retval = static_cast<__basic_file*>(NULL);
if (this->is_open())
{
- fflush(_M_cfile);
- if ((_M_cfile_created && fclose(_M_cfile) == 0) || !_M_cfile_created)
- {
- _M_cfile = 0;
- __retval = this;
- }
+ if (_M_cfile_created)
+ fclose(_M_cfile);
+ else
+ fflush(_M_cfile);
+ _M_cfile = 0;
+ __retval = this;
}
return __retval;
}
@@ -197,18 +209,54 @@ namespace std
__basic_file<char>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode /*__mode*/)
{
- fseek(_M_cfile, __off, __way);
- return ftell(_M_cfile);
+ if (!fseek(_M_cfile, __off, __way))
+ return ftell(_M_cfile);
+ else
+ // Fseek failed.
+ return -1L;
}
streamoff
__basic_file<char>::seekpos(streamoff __pos, ios_base::openmode /*__mode*/)
{
- fseek(_M_cfile, __pos, ios_base::beg);
- return ftell(_M_cfile);
+ if (!fseek(_M_cfile, __pos, ios_base::beg))
+ return ftell(_M_cfile);
+ else
+ // Fseek failed.
+ return -1L;
}
int
__basic_file<char>::sync()
{ return fflush(_M_cfile); }
+
+ streamsize
+ __basic_file<char>::showmanyc_helper()
+ {
+#ifdef FIONREAD
+ // Pipes and sockets.
+ int __num = 0;
+ int __r = ioctl(this->fd(), FIONREAD, &__num);
+ if (!__r && __num >= 0)
+ return __num;
+#endif
+
+#ifdef _GLIBCPP_HAVE_POLL
+ // Cheap test.
+ struct pollfd __pfd[1];
+ __pfd[0].fd = this->fd();
+ __pfd[0].events = POLLIN;
+ if (poll(__pfd, 1, 0) <= 0)
+ return 0;
+#endif
+
+#if defined(_GLIBCPP_HAVE_S_ISREG) || defined(_GLIBCPP_HAVE_S_IFREG)
+ // Regular files.
+ struct stat __buffer;
+ int __ret = fstat(this->fd(), &__buffer);
+ if (!__ret && _GLIBCPP_ISREG(__buffer.st_mode))
+ return __buffer.st_size - ftell(_M_cfile);
+#endif
+ return 0;
+ }
} // namespace std
diff --git a/libstdc++-v3/config/io/basic_file_stdio.h b/libstdc++-v3/config/io/basic_file_stdio.h
index fe6edbb7058..cefd38f1a0d 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.h
+++ b/libstdc++-v3/config/io/basic_file_stdio.h
@@ -108,6 +108,9 @@ namespace std
int
sync();
+
+ streamsize
+ showmanyc_helper();
};
} // namespace std
diff --git a/libstdc++-v3/config/io/c_io_libio_codecvt.c b/libstdc++-v3/config/io/c_io_libio_codecvt.c
index 38d8b55e0c2..5c74101263a 100644
--- a/libstdc++-v3/config/io/c_io_libio_codecvt.c
+++ b/libstdc++-v3/config/io/c_io_libio_codecvt.c
@@ -23,6 +23,14 @@
other reasons why the executable file might be covered by the GNU
General Public License. */
+// 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.
/* Slightly modified from glibc/libio/iofwide.c */
#include <libio.h>
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index 050376cba93..15cdff51fd5 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -1,6 +1,6 @@
## Linker script for GNU ld 2.11.94+ only.
##
-## Copyright (C) 2002 Free Software Foundation, Inc.
+## Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
##
@@ -30,7 +30,12 @@ GLIBCPP_3.2 {
{
std::[A-Za]*;
std::ba[a-r]*;
- std::basic_[a-r]*;
+ std::basic_[a-h]*;
+ std::basic_ifstream*;
+ std::basic_istringstream*;
+ std::basic_istream*;
+ std::basic_iostream*;
+ std::basic_[j-r]*;
std::basic_streambuf*;
std::basic_stringbuf*;
std::basic_stringstream*;
@@ -50,24 +55,79 @@ GLIBCPP_3.2 {
std::[A-Zd-k]*;
std::length_error*;
std::logic_error*;
- std::locale::[A-Za-z]*;
+ std::locale::[A-Za-e]*;
+ std::locale::facet::[A-Za-z]*;
+ std::locale::facet::_M*;
+ std::locale::facet::_S_c_locale;
+ std::locale::facet::_S_clone_c_locale*;
+ std::locale::facet::_S_create_c_locale*;
+ std::locale::facet::_S_destroy_c_locale*;
+ std::locale::[A-Zg-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::[A-Zm]*;
+ std::n[a-t]*;
+ std::num_put_[cw];
+ std::numeric*;
+ std::numpunct*;
+ std::num_get*;
+ std::num_get_[cw];
+ std::n[v-z]*;
+ std::ostrstream*;
+ std::overflow_error*;
+ std::out_of_range*;
+ std::[A-Zp-z]*;
std::__throw_*;
- std::__basic_file*;
- std::__num_base*;
- std::__timepunct*;
std::__numeric_limits_base*;
+ std::__timepunct*;
std::_S_bit_count;
std::_S_first_one
};
# Names not in an 'extern' block are mangled names.
+ _ZSt7getline*;
+ _ZStrs*;
+ _ZNSo*;
+ _ZNKSt9basic_ios*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE15_M_cache_facetsERKSt6locale;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[A-Z]*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][A-Za-z]*;
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][0-9][A-Za-z]*;
+
+ _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC*;
+ _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED*;
+ _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC*;
+ _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE6do_put*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE3put*;
+ _ZNSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE2idE;
+
+ _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basecccT_;
+
+ _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basewccT_;
+
+ _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_baseccT_;
+
+ _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_basewcT_;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE12_M_widen_int*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_widen_float*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE9_M_insert*;
+
+ _ZSt9use_facetISt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEEERKT_RKSt6locale;
+
+ # __num_base
+ _ZNSt10__num_base13_S_format_intERKSt8ios_basePccc;
+ _ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc[il];
+ _ZNSt10__num_base8_S_atomsE;
# std::string minus binary operator plus
_ZNKSs*;
@@ -97,8 +157,28 @@ GLIBCPP_3.2 {
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_;
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_;
+ # std::__basic_file minus showmanyc_helper
+ _ZNSt12__basic_fileIcED*;
+ _ZNSt12__basic_fileIcEC*;
+ _ZNSt12__basic_fileIcE8sys_open*;
+ _ZNSt12__basic_fileIcE8sys_getc*;
+ _ZNSt12__basic_fileIcE10sys_ungetc*;
+ _ZNSt12__basic_fileIcE7seekpos*;
+ _ZNSt12__basic_fileIcE7seekoff*;
+ _ZNSt12__basic_fileIcE6xsputn*;
+ _ZNSt12__basic_fileIcE6xsgetn*;
+ _ZNSt12__basic_fileIcE5close*;
+ _ZNSt12__basic_fileIcE4sync*;
+ _ZNSt12__basic_fileIcE4open*;
+ _ZNSt12__basic_fileIcE2fd*;
+ _ZNSt12__basic_fileIcE12_M_open_modeE*;
+ _ZNKSt12__basic_fileIcE7is_open*;
+
# std::locale destructors
_ZNSt6localeD*;
+
+ # std::locale::facet destructors
+ _ZNSt6locale5facetD*;
# std::codecvt<char> members.
_ZNKSt7codecvtIcc11__mbstate_tE*;
@@ -171,12 +251,53 @@ GLIBCPP_3.2 {
_ZdaPvRKSt9nothrow_t;
# vtable
- _ZTV*;
- _ZTT*;
+ _ZTVS[a-z];
+ _ZTVSt[0-9][A-Za-z]*;
+ _ZTVSt[0-9][0-9][A-Za-z]*;
+ _ZTTS[a-z];
+ _ZTTSt[0-9][A-Za-z]*;
+ _ZTTSt[0-9][0-9][A-Za-z]*;
+ _ZTVN9__gnu_cxx*;
+ _ZTVNSt6locale5facetE;
+ _ZTVSt11__timepunctI[cw]E;
+ _ZTVNSt8ios_base7failureE;
+ _ZTVSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+ _ZTVSt21__ctype_abstract_baseI[cw]E;
+
+ # XXX
+ _ZTVN10__cxxabi*;
# typeinfo
- _ZTI*;
- _ZTS*;
+ _ZTI[a-z];
+ _ZTIP[a-z];
+ _ZTIPK[a-z];
+ _ZTIS[a-z];
+ _ZTISt[0-9][A-Za-z]*;
+ _ZTISt[0-9][0-9][A-Za-z]*;
+ _ZTS[a-z];
+ _ZTSS[a-z];
+ _ZTSP[a-z];
+ _ZTSPK[a-z];
+ _ZTSSt[0-9][A-Za-z]*;
+ _ZTSSt[0-9][0-9][A-Za-z]*;
+ _ZTSN9__gnu_cxx*;
+ _ZTIN9__gnu_cxx*;
+ _ZTINSt8ios_base7failureE;
+ _ZTSNSt8ios_base7failureE;
+ _ZTINSt6locale5facetE;
+ _ZTSNSt6locale5facetE;
+ _ZTISt11__timepunctI[cw]E;
+ _ZTSSt11__timepunctI[cw]E;
+ _ZTSSt10__num_base;
+ _ZTISt10__num_base;
+ _ZTSSt21__ctype_abstract_baseI[cw]E;
+ _ZTISt21__ctype_abstract_baseI[cw]E;
+ _ZTISt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+ _ZTSSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE;
+
+ # XXX
+ _ZTIN10__cxxabi*;
+ _ZTSN10__cxxabi*;
# function-scope static objects requires a guard variable.
_ZGV*;
@@ -204,8 +325,6 @@ GLIBCPP_3.2.1 {
_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;
@@ -242,6 +361,46 @@ GLIBCPP_3.2.1 {
} GLIBCPP_3.2;
+GLIBCPP_3.2.2 {
+
+ _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
+
+} GLIBCPP_3.2.1;
+
+GLIBCPP_3.2.3 {
+
+ global:
+
+ extern "C++"
+ {
+ # Needed only when generic cpu's atomicity.h is in use.
+ __gnu_cxx::_Atomic_add_mutex;
+ __gnu_cxx::_Atomic_add_mutex_once;
+ __gnu_cxx::__gthread_atomic_add_mutex_once;
+
+ std::__num_base::_S_atoms_in;
+ std::__num_base::_S_atoms_out
+ };
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE6_M_pad*;
+
+ _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_convert_intI[yxml]EES3_S3_RSt8ios_base[cw]T_;
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE14_M_group_float*;
+
+ _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE12_M_group_int*;
+
+ # __basic_file::showmanyc_helper
+ _ZNSt12__basic_fileIcE16showmanyc_helperEv;
+
+} GLIBCPP_3.2.2;
+
+GLIBCPP_3.2.4 {
+
+ _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE11_M_setstateESt12_Ios_Iostate;
+
+} GLIBCPP_3.2.3;
+
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.2 {
@@ -253,24 +412,6 @@ CXXABI_1.2 {
__cxa_call_unexpected;
__cxa_current_exception_type;
__cxa_demangle;
- __cxa_dyn_string_append_char;
- __cxa_dyn_string_append_cstr;
- __cxa_dyn_string_append;
- __cxa_dyn_string_clear;
- __cxa_dyn_string_copy_cstr;
- __cxa_dyn_string_copy;
- __cxa_dyn_string_delete;
- __cxa_dyn_string_eq;
- __cxa_dyn_string_init;
- __cxa_dyn_string_insert_char;
- __cxa_dyn_string_insert_cstr;
- __cxa_dyn_string_insert;
- __cxa_dyn_string_new;
- __cxa_dyn_string_prepend_cstr;
- __cxa_dyn_string_prepend;
- __cxa_dyn_string_release;
- __cxa_dyn_string_resize;
- __cxa_dyn_string_substring;
__cxa_end_catch;
__cxa_free_exception;
__cxa_get_globals;
@@ -295,6 +436,26 @@ CXXABI_1.2 {
# __gnu_cxx::_verbose_terminate_handler()
_ZN9__gnu_cxx27__verbose_terminate_handlerEv;
+ # XXX Should not be exported.
+ __cxa_dyn_string_append_char;
+ __cxa_dyn_string_append_cstr;
+ __cxa_dyn_string_append;
+ __cxa_dyn_string_clear;
+ __cxa_dyn_string_copy_cstr;
+ __cxa_dyn_string_copy;
+ __cxa_dyn_string_delete;
+ __cxa_dyn_string_eq;
+ __cxa_dyn_string_init;
+ __cxa_dyn_string_insert_char;
+ __cxa_dyn_string_insert_cstr;
+ __cxa_dyn_string_insert;
+ __cxa_dyn_string_new;
+ __cxa_dyn_string_prepend_cstr;
+ __cxa_dyn_string_prepend;
+ __cxa_dyn_string_release;
+ __cxa_dyn_string_resize;
+ __cxa_dyn_string_substring;
+
local:
*;
};
@@ -306,4 +467,29 @@ CXXABI_1.2.1 {
__cxa_guard_release;
__cxa_guard_abort;
-} CXXABI_1.2; \ No newline at end of file
+} CXXABI_1.2;
+
+CXXABI_1.2.2 {
+
+ # *_type_info classes, ctor and dtor
+ _ZN10__cxxabiv117__array_type_info*;
+ _ZN10__cxxabiv117__class_type_info*;
+ _ZN10__cxxabiv116__enum_type_info*;
+ _ZN10__cxxabiv120__function_type_info*;
+ _ZN10__cxxabiv123__fundamental_type_info*;
+ _ZN10__cxxabiv117__pbase_type_info*;
+ _ZN10__cxxabiv129__pointer_to_member_type_info*;
+ _ZN10__cxxabiv119__pointer_type_info*;
+ _ZN10__cxxabiv120__si_class_type_info*;
+ _ZN10__cxxabiv121__vmi_class_type_info*;
+
+ # *_type_info classes, member functions
+ _ZNK10__cxxabiv117__class_type_info*;
+ _ZNK10__cxxabiv120__function_type_info*;
+ _ZNK10__cxxabiv117__pbase_type_info*;
+ _ZNK10__cxxabiv129__pointer_to_member_type_info*;
+ _ZNK10__cxxabiv119__pointer_type_info*;
+ _ZNK10__cxxabiv120__si_class_type_info*;
+ _ZNK10__cxxabiv121__vmi_class_type_info*;
+
+} CXXABI_1.2.1;
diff --git a/libstdc++-v3/config/locale/generic/c_locale.h b/libstdc++-v3/config/locale/generic/c_locale.h
index 9627d8646af..1f2accb1c29 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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,6 +33,11 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#ifndef _CPP_BITS_C_LOCALE_H
+#define _CPP_BITS_C_LOCALE_H 1
+
+#pragma GCC system_header
+
#include <clocale>
#define _GLIBCPP_NUM_CATEGORIES 0
@@ -41,9 +46,15 @@ namespace std
{
typedef int* __c_locale;
+ // 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<typename _Tv>
int
- __convert_from_v(char* __out, const int __size, const char* __fmt,
+ __convert_from_v(char* __out,
+ const int __attribute__ ((__unused__)) __size,
+ const char* __fmt,
_Tv __v, const __c_locale&, int __prec = -1)
{
char* __old = setlocale(LC_ALL, NULL);
@@ -69,3 +80,5 @@ namespace std
return __ret;
}
}
+
+#endif
diff --git a/libstdc++-v3/config/locale/generic/codecvt_members.cc b/libstdc++-v3/config/locale/generic/codecvt_members.cc
index 814b8a2874d..ff65dffa1e9 100644
--- a/libstdc++-v3/config/locale/generic/codecvt_members.cc
+++ b/libstdc++-v3/config/locale/generic/codecvt_members.cc
@@ -34,7 +34,6 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
namespace std
{
diff --git a/libstdc++-v3/config/locale/generic/ctype_members.cc b/libstdc++-v3/config/locale/generic/ctype_members.cc
index f147983c6a2..71e810abef7 100644
--- a/libstdc++-v3/config/locale/generic/ctype_members.cc
+++ b/libstdc++-v3/config/locale/generic/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -126,15 +126,35 @@ namespace std
bool
ctype<wchar_t>::
do_is(mask __m, char_type __c) const
- { return static_cast<bool>(iswctype(__c, _M_convert_to_wmask(__m))); }
+ {
+ bool __ret = false;
+ const size_t __bitmasksize = 10;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(1 << __bitcur);
+ if (__m & __bit)
+ __ret |= iswctype(__c, _M_convert_to_wmask(__bit));
+ }
+ return __ret;
+ }
const wchar_t*
ctype<wchar_t>::
- do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __m) const
+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
{
- while (__lo < __hi && !this->do_is(*__m, *__lo))
- ++__lo;
- return __lo;
+ for (;__lo < __hi; ++__vec, ++__lo)
+ {
+ const size_t __bitmasksize = 10;
+ mask __m = 0;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(1 << __bitcur);
+ if (iswctype(*__lo, _M_convert_to_wmask(__bit)))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ return __hi;
}
const wchar_t*
diff --git a/libstdc++-v3/config/locale/generic/messages_members.h b/libstdc++-v3/config/locale/generic/messages_members.h
index 62dd24d6838..c1c8e4d1ac5 100644
--- a/libstdc++-v3/config/locale/generic/messages_members.h
+++ b/libstdc++-v3/config/locale/generic/messages_members.h
@@ -1,6 +1,6 @@
// std::messages implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 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,6 +35,16 @@
// Non-virtual member functions.
template<typename _CharT>
+ messages<_CharT>::messages(size_t __refs)
+ : locale::facet(__refs)
+ { _M_c_locale_messages = _S_c_locale; }
+
+ template<typename _CharT>
+ messages<_CharT>::messages(__c_locale, const char*, size_t __refs)
+ : locale::facet(__refs)
+ { _M_c_locale_messages = _S_c_locale; }
+
+ template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
const char*) const
@@ -42,6 +52,10 @@
// Virtual member functions.
template<typename _CharT>
+ messages<_CharT>::~messages()
+ { _S_destroy_c_locale(_M_c_locale_messages); }
+
+ template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::do_open(const basic_string<char>&, const locale&) const
{ return 0; }
@@ -56,3 +70,12 @@
void
messages<_CharT>::do_close(catalog) const
{ }
+
+ // messages_byname
+ template<typename _CharT>
+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
+ : messages<_CharT>(__refs)
+ {
+ _S_destroy_c_locale(_M_c_locale_messages);
+ _S_create_c_locale(_M_c_locale_messages, __s);
+ }
diff --git a/libstdc++-v3/config/locale/generic/time_members.cc b/libstdc++-v3/config/locale/generic/time_members.cc
index 8d5226b0b2e..df43f03a53d 100644
--- a/libstdc++-v3/config/locale/generic/time_members.cc
+++ b/libstdc++-v3/config/locale/generic/time_members.cc
@@ -1,4 +1,4 @@
-// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
+// std::time_get, std::time_put implementation, generic version -*- C++ -*-
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/config/locale/generic/time_members.h b/libstdc++-v3/config/locale/generic/time_members.h
new file mode 100644
index 00000000000..03c31d1797e
--- /dev/null
+++ b/libstdc++-v3/config/locale/generic/time_members.h
@@ -0,0 +1,61 @@
+// std::time_get, std::time_put implementation, generic version -*- C++ -*-
+
+// Copyright (C) 2001, 2002, 2003 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.5.1.2 - time_get functions
+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
+//
+
+// Written by Benjamin Kosnik <bkoz@redhat.com>
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(size_t __refs)
+ : locale::facet(__refs)
+ {
+ _M_name_timepunct = _S_c_name;
+ _M_initialize_timepunct();
+ }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
+ size_t __refs)
+ : locale::facet(__refs)
+ {
+ _M_name_timepunct = new char[strlen(__s) + 1];
+ strcpy(_M_name_timepunct, __s);
+ _M_initialize_timepunct(__cloc);
+ }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::~__timepunct()
+ {
+ if (_S_c_name != _M_name_timepunct)
+ delete [] _M_name_timepunct;
+ _S_destroy_c_locale(_M_c_locale_timepunct);
+ }
diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc
index 19f98fc98a0..065e10aa2e1 100644
--- a/libstdc++-v3/config/locale/gnu/c_locale.cc
+++ b/libstdc++-v3/config/locale/gnu/c_locale.cc
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -36,7 +36,7 @@
#include <locale>
#include <stdexcept>
#include <langinfo.h>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/libstdc++-v3/config/locale/gnu/c_locale.h b/libstdc++-v3/config/locale/gnu/c_locale.h
index 130b843d7f9..37df3fa3a3a 100644
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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,6 +33,11 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
+#ifndef _CPP_BITS_C_LOCALE_H
+#define _CPP_BITS_C_LOCALE_H 1
+
+#pragma GCC system_header
+
#include <clocale>
#include <langinfo.h> // For codecvt
#include <iconv.h> // For codecvt using iconv, iconv_t
@@ -53,6 +58,10 @@ namespace std
{
typedef __locale_t __c_locale;
+ // 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<typename _Tv>
int
__convert_from_v(char* __out, const int __size, const char* __fmt,
@@ -92,3 +101,5 @@ namespace std
return __ret;
}
}
+
+#endif
diff --git a/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
index aa855a6a1f2..c3d3e34935c 100644
--- a/libstdc++-v3/config/locale/gnu/codecvt_members.cc
+++ b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
@@ -1,6 +1,6 @@
// std::codecvt implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
@@ -50,7 +50,7 @@ namespace std
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(_M_c_locale_codecvt);
+ __c_locale __old = __uselocale(_S_c_locale);
#endif
size_t __conv = wcsrtombs(__to, &__from, __len, &__state);
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
@@ -85,7 +85,7 @@ namespace std
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(_M_c_locale_codecvt);
+ __c_locale __old = __uselocale(_S_c_locale);
#endif
size_t __conv = mbsrtowcs(__to, &__from, __len, &__state);
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
diff --git a/libstdc++-v3/config/locale/gnu/collate_members.cc b/libstdc++-v3/config/locale/gnu/collate_members.cc
index 97ff0c557b0..1ac209467d8 100644
--- a/libstdc++-v3/config/locale/gnu/collate_members.cc
+++ b/libstdc++-v3/config/locale/gnu/collate_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/libstdc++-v3/config/locale/gnu/ctype_members.cc b/libstdc++-v3/config/locale/gnu/ctype_members.cc
index 3b78c60405a..ee4cc0af85e 100644
--- a/libstdc++-v3/config/locale/gnu/ctype_members.cc
+++ b/libstdc++-v3/config/locale/gnu/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
@@ -129,19 +129,42 @@ namespace std
bool
ctype<wchar_t>::
- do_is(mask __m, char_type __c) const
+ do_is(mask __m, wchar_t __c) const
{
- return static_cast<bool>(__iswctype_l(__c, _M_convert_to_wmask(__m),
- _M_c_locale_ctype));
+ // Highest bitmask in ctype_base == 10, but extra in "C"
+ // library for blank.
+ bool __ret = false;
+ const size_t __bitmasksize = 11;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
+ if (__m & __bit)
+ __ret |= __iswctype_l(__c, _M_convert_to_wmask(__bit),
+ _M_c_locale_ctype);
+ }
+ return __ret;
}
const wchar_t*
ctype<wchar_t>::
- do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __m) const
+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
{
- while (__lo < __hi && !this->do_is(*__m, *__lo))
- ++__lo;
- return __lo;
+ for (;__lo < __hi; ++__vec, ++__lo)
+ {
+ // Highest bitmask in ctype_base == 10, but extra in "C"
+ // library for blank.
+ const size_t __bitmasksize = 11;
+ mask __m = 0;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
+ if (__iswctype_l(*__lo, _M_convert_to_wmask(__bit),
+ _M_c_locale_ctype))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ return __hi;
}
const wchar_t*
diff --git a/libstdc++-v3/config/locale/gnu/messages_members.cc b/libstdc++-v3/config/locale/gnu/messages_members.cc
index 54a3c8fa9f6..fad01dfabfc 100644
--- a/libstdc++-v3/config/locale/gnu/messages_members.cc
+++ b/libstdc++-v3/config/locale/gnu/messages_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/libstdc++-v3/config/locale/gnu/messages_members.h b/libstdc++-v3/config/locale/gnu/messages_members.h
index 68a2ea39531..d98d8d11fff 100644
--- a/libstdc++-v3/config/locale/gnu/messages_members.h
+++ b/libstdc++-v3/config/locale/gnu/messages_members.h
@@ -1,6 +1,6 @@
// std::messages implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -28,13 +28,35 @@
// the GNU General Public License.
//
-// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
+// ISO C++ 14882: 22.2.7.1.2 messages functions
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
// Non-virtual member functions.
template<typename _CharT>
+ messages<_CharT>::messages(size_t __refs)
+ : locale::facet(__refs)
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ _M_name_messages = _S_c_name;
+#endif
+ _M_c_locale_messages = _S_c_locale;
+ }
+
+ template<typename _CharT>
+ messages<_CharT>::messages(__c_locale __cloc,
+ const char* __s, size_t __refs)
+ : locale::facet(__refs)
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ _M_name_messages = new char[strlen(__s) + 1];
+ strcpy(_M_name_messages, __s);
+#endif
+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
+ }
+
+ template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
const char* __dir) const
@@ -43,6 +65,17 @@
return this->do_open(__s, __loc);
}
+ // Virtual member functions.
+ template<typename _CharT>
+ messages<_CharT>::~messages()
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ if (_S_c_name != _M_name_messages)
+ delete [] _M_name_messages;
+#endif
+ _S_destroy_c_locale(_M_c_locale_messages);
+ }
+
template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::do_open(const basic_string<char>& __s,
@@ -58,3 +91,18 @@
void
messages<_CharT>::do_close(catalog) const
{ }
+
+ // messages_byname
+ template<typename _CharT>
+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
+ : messages<_CharT>(__refs)
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ if (_S_c_name != _M_name_messages)
+ delete [] _M_name_messages;
+ _M_name_messages = new char[strlen(__s) + 1];
+ strcpy(_M_name_messages, __s);
+#endif
+ _S_destroy_c_locale(_M_c_locale_messages);
+ _S_create_c_locale(_M_c_locale_messages, __s);
+ }
diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc
index 17d4d421767..78acbcefb76 100644
--- a/libstdc++-v3/config/locale/gnu/monetary_members.cc
+++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc
@@ -1,6 +1,6 @@
// std::moneypunct implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004 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,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
@@ -356,47 +356,64 @@ namespace std
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;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__cpossign, __len, &__state);
- _M_positive_sign = __wcs;
- }
- else
- _M_positive_sign = L"";
-
+ wchar_t* __wcs_ps = 0;
+ wchar_t* __wcs_ns = 0;
char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
- __len = strlen(__cnegsign);
- if (!__nposn)
- _M_negative_sign = L"()";
- else if (__len)
- {
- ++__len;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__cnegsign, __len, &__state);
- _M_negative_sign = __wcs;
+ try
+ {
+ mbstate_t __state;
+ size_t __len = strlen(__cpossign);
+ if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ __wcs_ps = new wchar_t[__len];
+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
+ _M_positive_sign = __wcs_ps;
+ }
+ else
+ _M_positive_sign = L"";
+
+ __len = strlen(__cnegsign);
+ if (!__nposn)
+ _M_negative_sign = L"()";
+ else if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ __wcs_ns = new wchar_t[__len];
+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
+ _M_negative_sign = __wcs_ns;
+ }
+ else
+ _M_negative_sign = L"";
+
+ // _Intl == true.
+ __len = strlen(__ccurr);
+ if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ wchar_t* __wcs = new wchar_t[__len];
+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
+ _M_curr_symbol = __wcs;
+ }
+ else
+ _M_curr_symbol = L"";
}
- else
- _M_negative_sign = L"";
-
- // _Intl == true.
- __len = strlen(__ccurr);
- if (__len)
+ catch (...)
{
- ++__len;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__ccurr, __len, &__state);
- _M_curr_symbol = __wcs;
+ delete __wcs_ps;
+ delete __wcs_ns;
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ __uselocale(__old);
+#else
+ setlocale(LC_ALL, __old);
+ free(__old);
+#endif
+ __throw_exception_again;
}
- else
- _M_curr_symbol = L"";
-
+
_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, __cloc));
char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
@@ -447,7 +464,6 @@ namespace std
char* __old = strdup(setlocale(LC_ALL, NULL));
setlocale(LC_ALL, __name);
#endif
-
_M_decimal_point = static_cast<wchar_t>(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w);
_M_thousands_sep = static_cast<wchar_t>(((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);
@@ -456,47 +472,64 @@ namespace std
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)
- {
- ++__len;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__cpossign, __len, &__state);
- _M_positive_sign = __wcs;
- }
- else
- _M_positive_sign = L"";
-
- char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
- __len = strlen(__cnegsign);
- if (!__nposn)
- _M_negative_sign = L"()";
- else if (__len)
- {
- ++__len;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__cnegsign, __len, &__state);
- _M_negative_sign = __wcs;
- }
- else
- _M_negative_sign = L"";
-
- // _Intl == true.
- __len = strlen(__ccurr);
- if (__len)
- {
- ++__len;
- memset(&__state, 0, sizeof(mbstate_t));
- wchar_t* __wcs = new wchar_t[__len];
- mbsrtowcs(__wcs, &__ccurr, __len, &__state);
- _M_curr_symbol = __wcs;
+ wchar_t* __wcs_ps = 0;
+ wchar_t* __wcs_ns = 0;
+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
+ try
+ {
+ mbstate_t __state;
+ size_t __len;
+ __len = strlen(__cpossign);
+ if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ __wcs_ps = new wchar_t[__len];
+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
+ _M_positive_sign = __wcs_ps;
+ }
+ else
+ _M_positive_sign = L"";
+
+ __len = strlen(__cnegsign);
+ if (!__nposn)
+ _M_negative_sign = L"()";
+ else if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ __wcs_ns = new wchar_t[__len];
+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
+ _M_negative_sign = __wcs_ns;
+ }
+ else
+ _M_negative_sign = L"";
+
+ // _Intl == true.
+ __len = strlen(__ccurr);
+ if (__len)
+ {
+ ++__len;
+ memset(&__state, 0, sizeof(mbstate_t));
+ wchar_t* __wcs = new wchar_t[__len];
+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
+ _M_curr_symbol = __wcs;
+ }
+ else
+ _M_curr_symbol = L"";
+ }
+ catch (...)
+ {
+ delete __wcs_ps;
+ delete __wcs_ns;
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+ __uselocale(__old);
+#else
+ setlocale(LC_ALL, __old);
+ free(__old);
+#endif
+ __throw_exception_again;
}
- else
- _M_curr_symbol = L"";
_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
diff --git a/libstdc++-v3/config/locale/gnu/numeric_members.cc b/libstdc++-v3/config/locale/gnu/numeric_members.cc
index a502bfb2150..1aa05293d4c 100644
--- a/libstdc++-v3/config/locale/gnu/numeric_members.cc
+++ b/libstdc++-v3/config/locale/gnu/numeric_members.cc
@@ -34,7 +34,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/libstdc++-v3/config/locale/gnu/time_members.cc b/libstdc++-v3/config/locale/gnu/time_members.cc
index 7df10b8ab71..db590efbb9c 100644
--- a/libstdc++-v3/config/locale/gnu/time_members.cc
+++ b/libstdc++-v3/config/locale/gnu/time_members.cc
@@ -35,7 +35,7 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
-#include "c++locale_internal.h"
+#include <bits/c++locale_internal.h>
namespace std
{
diff --git a/libstdc++-v3/config/locale/gnu/time_members.h b/libstdc++-v3/config/locale/gnu/time_members.h
new file mode 100644
index 00000000000..2ea24102808
--- /dev/null
+++ b/libstdc++-v3/config/locale/gnu/time_members.h
@@ -0,0 +1,68 @@
+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
+
+// Copyright (C) 2001, 2002, 2003 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.5.1.2 - time_get functions
+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
+//
+
+// Written by Benjamin Kosnik <bkoz@redhat.com>
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(size_t __refs)
+ : locale::facet(__refs)
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ _M_name_timepunct = _S_c_name;
+#endif
+ _M_initialize_timepunct();
+ }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::__timepunct(__c_locale __cloc,
+ const char* __s,
+ size_t __refs)
+ : locale::facet(__refs)
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ _M_name_timepunct = new char[strlen(__s) + 1];
+ strcpy(_M_name_timepunct, __s);
+#endif
+ _M_initialize_timepunct(__cloc);
+ }
+
+ template<typename _CharT>
+ __timepunct<_CharT>::~__timepunct()
+ {
+#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
+ if (_S_c_name != _M_name_timepunct)
+ delete [] _M_name_timepunct;
+#endif
+ _S_destroy_c_locale(_M_c_locale_timepunct);
+ }
diff --git a/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h b/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h
index a7d56ae33af..0cbfb2a3d6d 100644
--- a/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h
+++ b/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h
@@ -260,7 +260,7 @@
extern_type* __to, extern_type* __to_end,
extern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -304,7 +304,7 @@
{
__from_next = reinterpret_cast<const intern_type*>(__cfrom);
__to_next = reinterpret_cast<extern_type*>(__cto);
- __ret = ok;
+ __ret = codecvt_base::ok;
}
else
{
@@ -312,10 +312,10 @@
{
__from_next = reinterpret_cast<const intern_type*>(__cfrom);
__to_next = reinterpret_cast<extern_type*>(__cto);
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
}
return __ret;
@@ -327,7 +327,7 @@
do_unshift(state_type& __state, extern_type* __to,
extern_type* __to_end, extern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -345,14 +345,14 @@
{
__to_next = reinterpret_cast<extern_type*>(__cto);
if (__tlen == __tmultiple * (__to_end - __to))
- __ret = noconv;
+ __ret = codecvt_base::noconv;
else if (__tlen == 0)
- __ret = ok;
+ __ret = codecvt_base::ok;
else
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
return __ret;
}
@@ -365,7 +365,7 @@
intern_type* __to, intern_type* __to_end,
intern_type*& __to_next) const
{
- result __ret = error;
+ result __ret = codecvt_base::error;
if (__state._M_good())
{
typedef state_type::__desc_type __desc_type;
@@ -410,7 +410,7 @@
{
__from_next = reinterpret_cast<const extern_type*>(__cfrom);
__to_next = reinterpret_cast<intern_type*>(__cto);
- __ret = ok;
+ __ret = codecvt_base::ok;
}
else
{
@@ -418,10 +418,10 @@
{
__from_next = reinterpret_cast<const extern_type*>(__cfrom);
__to_next = reinterpret_cast<intern_type*>(__cto);
- __ret = partial;
+ __ret = codecvt_base::partial;
}
else
- __ret = error;
+ __ret = codecvt_base::error;
}
}
return __ret;
diff --git a/libstdc++-v3/config/os/aix/atomicity.h b/libstdc++-v3/config/os/aix/atomicity.h
index ecac7dac225..af4fa5a808c 100644
--- a/libstdc++-v3/config/os/aix/atomicity.h
+++ b/libstdc++-v3/config/os/aix/atomicity.h
@@ -43,14 +43,14 @@ typedef int _Atomic_word;
#include <sys/atomic_op.h>
static inline int
-__attribute__ ((unused))
+__attribute__ ((__unused__))
__exchange_and_add (atomic_p __mem, int __val)
{
return fetch_and_add (__mem, __val);
}
static inline void
-__attribute__ ((unused))
+__attribute__ ((__unused__))
__atomic_add (atomic_p __mem, int __val)
{
(void) fetch_and_add (__mem, __val);
diff --git a/libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h b/libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
index b4ba03f30f5..d69324ad572 100644
--- a/libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
+++ b/libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2003 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
@@ -38,35 +38,42 @@
ctype<char>::
is(mask __m, char __c) const
{
- return __istype(__c, __m);
+ if (_M_table)
+ return _M_table[static_cast<unsigned char>(__c)] & __m;
+ else
+ return __istype(__c, __m);
}
const char*
ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const
{
- for (;__low < __high; ++__vec, ++__low)
- {
+ if (_M_table)
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ else
+ for (;__low < __high; ++__vec, ++__low)
+ {
#if defined (_CTYPE_S) || defined (__istype)
- *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
- | space | print | graph | cntrl | punct | alnum);
+ *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
+ | space | print | graph | cntrl | punct | alnum);
#else
- mask __m = 0;
- if (this->is(upper, *__low)) __m |= upper;
- if (this->is(lower, *__low)) __m |= lower;
- if (this->is(alpha, *__low)) __m |= alpha;
- if (this->is(digit, *__low)) __m |= digit;
- if (this->is(xdigit, *__low)) __m |= xdigit;
- if (this->is(space, *__low)) __m |= space;
- if (this->is(print, *__low)) __m |= print;
- if (this->is(graph, *__low)) __m |= graph;
- if (this->is(cntrl, *__low)) __m |= cntrl;
- if (this->is(punct, *__low)) __m |= punct;
- // Do not include explicit line for alnum mask since it is a
- // pure composite of masks on FreeBSD.
- *__vec = __m;
+ mask __m = 0;
+ if (this->is(upper, *__low)) __m |= upper;
+ if (this->is(lower, *__low)) __m |= lower;
+ if (this->is(alpha, *__low)) __m |= alpha;
+ if (this->is(digit, *__low)) __m |= digit;
+ if (this->is(xdigit, *__low)) __m |= xdigit;
+ if (this->is(space, *__low)) __m |= space;
+ if (this->is(print, *__low)) __m |= print;
+ if (this->is(graph, *__low)) __m |= graph;
+ if (this->is(cntrl, *__low)) __m |= cntrl;
+ if (this->is(punct, *__low)) __m |= punct;
+ // Do not include explicit line for alnum mask since it is a
+ // pure composite of masks on FreeBSD.
+ *__vec = __m;
#endif
- }
+ }
return __high;
}
@@ -74,8 +81,13 @@
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && !this->is(__m, *__low))
- ++__low;
+ if (_M_table)
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ else
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
return __low;
}
@@ -83,12 +95,12 @@
ctype<char>::
scan_not(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && this->is(__m, *__low) != 0)
- ++__low;
+ if (_M_table)
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ else
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
return __low;
}
-
-
-
-
-
diff --git a/libstdc++-v3/config/os/bsd/freebsd/os_defines.h b/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
index b898c1ce252..55040a7ac4b 100644
--- a/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
+++ b/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
@@ -34,4 +34,11 @@
// System-specific #define, typedefs, corrections, etc, go here. This
// file will come before all others.
+#define _GLIBCPP_USE_C99_CHECK 1
+#define _GLIBCPP_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
+#define _GLIBCPP_USE_C99_LONG_LONG_CHECK 1
+#define _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC (_GLIBCPP_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
+#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
+#define _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
+
#endif
diff --git a/libstdc++-v3/config/os/generic/ctype_inline.h b/libstdc++-v3/config/os/generic/ctype_inline.h
index c10cb565b76..0da0c7ccfb5 100644
--- a/libstdc++-v3/config/os/generic/ctype_inline.h
+++ b/libstdc++-v3/config/os/generic/ctype_inline.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -39,69 +39,97 @@
// functionality should be added for the native os in question: see
// the config/os/bits/ctype_*.h files.
+// Constructing a synthetic "C" table should be seriously considered...
+
bool
ctype<char>::
is(mask __m, char __c) const
{
- bool __ret;
- switch (__m)
+ if (_M_table)
+ return _M_table[static_cast<unsigned char>(__c)] & __m;
+ else
{
- case space:
- __ret = isspace(__c);
- break;
- case print:
- __ret = isprint(__c);
- break;
- case cntrl:
- __ret = iscntrl(__c);
- break;
- case upper:
- __ret = isupper(__c);
- break;
- case lower:
- __ret = islower(__c);
- break;
- case alpha:
- __ret = isalpha(__c);
- break;
- case digit:
- __ret = isdigit(__c);
- break;
- case punct:
- __ret = ispunct(__c);
- break;
- case xdigit:
- __ret = isxdigit(__c);
- break;
- case alnum:
- __ret = isalnum(__c);
- break;
- case graph:
- __ret = isgraph(__c);
- break;
- default:
- __ret = false;
- break;
+ bool __ret = true;
+ bool __any_match = false;
+ const size_t __bitmasksize = 10;
+ size_t __bitcur = 0; // Lowest bitmask in ctype_base == 0
+ for (;__ret && __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ mask __bit = static_cast<mask>(1 << __bitcur);
+ if (__m & __bit)
+ {
+ __any_match = true;
+ bool __testis;
+ switch (__bit)
+ {
+ case space:
+ __testis = isspace(__c);
+ break;
+ case print:
+ __testis = isprint(__c);
+ break;
+ case cntrl:
+ __testis = iscntrl(__c);
+ break;
+ case upper:
+ __testis = isupper(__c);
+ break;
+ case lower:
+ __testis = islower(__c);
+ break;
+ case alpha:
+ __testis = isalpha(__c);
+ break;
+ case digit:
+ __testis = isdigit(__c);
+ break;
+ case punct:
+ __testis = ispunct(__c);
+ break;
+ case xdigit:
+ __testis = isxdigit(__c);
+ break;
+ case alnum:
+ __testis = isalnum(__c);
+ break;
+ case graph:
+ __testis = isgraph(__c);
+ break;
+ default:
+ __testis = false;
+ break;
+ }
+ __ret &= __testis;
+ }
+ }
+ return __ret & __any_match;
}
- return __ret;
}
const char*
ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const
{
- const int __bitmasksize = 11; // Highest bitmask in ctype_base == 10
- for (;__low < __high; ++__vec, ++__low)
+ if (_M_table)
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+ else
{
- mask __m = 0;
- int __i = 0; // Lowest bitmask in ctype_base == 0
- for (;__i < __bitmasksize; ++__i)
+ // Highest bitmask in ctype_base == 10.
+ const size_t __bitmasksize = 10;
+ for (;__low < __high; ++__vec, ++__low)
{
- mask __bit = static_cast<mask>(1 << __i);
- if (this->is(__bit, *__low))
- __m |= __bit;
+ mask __m = 0;
+ // Lowest bitmask in ctype_base == 0
+ size_t __i = 0;
+ for (;__i <= __bitmasksize; ++__i)
+ {
+ mask __bit = static_cast<mask>(1 << __i);
+ if (this->is(__bit, *__low))
+ __m |= __bit;
+ }
+ *__vec = __m;
}
- *__vec = __m;
}
return __high;
}
@@ -110,8 +138,13 @@
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && !this->is(__m, *__low))
- ++__low;
+ if (_M_table)
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+ ++__low;
+ else
+ while (__low < __high && !this->is(__m, *__low))
+ ++__low;
return __low;
}
@@ -119,7 +152,12 @@
ctype<char>::
scan_not(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && this->is(__m, *__low) != 0)
- ++__low;
+ if (_M_table)
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+ ++__low;
+ else
+ while (__low < __high && this->is(__m, *__low) != 0)
+ ++__low;
return __low;
}
diff --git a/libstdc++-v3/config/os/hpux/ctype_inline.h b/libstdc++-v3/config/os/hpux/ctype_inline.h
index 35cc3063d4c..af409c87629 100644
--- a/libstdc++-v3/config/os/hpux/ctype_inline.h
+++ b/libstdc++-v3/config/os/hpux/ctype_inline.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// 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
@@ -36,22 +36,15 @@
bool
ctype<char>::
- is(mask __m, char __c) const
- { return _M_table[(unsigned char)(__c)] & __m; }
+ is(mask __m, char __c) const
+ { return _M_table[static_cast<unsigned char>(__c)] & __m; }
const char*
ctype<char>::
- is(const char* __low, const char* __high, mask* __vec) const
+ is(const char* __low, const char* __high, mask* __vec) const
{
- const int __bitmasksize = 11; // Highest bitmask in ctype_base == 10
- for (;__low < __high; ++__vec, ++__low)
- {
- mask __m = _M_table[*__low];
- int __i = 0; // Lowest bitmask in ctype_base == 0
- while (__i < __bitmasksize && !(__m & static_cast<mask>(1 << __i)))
- ++__i;
- *__vec = static_cast<mask>(1 << __i);
- }
+ while (__low < __high)
+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
return __high;
}
@@ -59,7 +52,8 @@
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && !this->is(__m, *__low))
+ while (__low < __high
+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
++__low;
return __low;
}
@@ -68,12 +62,8 @@
ctype<char>::
scan_not(mask __m, const char* __low, const char* __high) const
{
- while (__low < __high && this->is(__m, *__low) != 0)
+ while (__low < __high
+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
++__low;
return __low;
}
-
-
-
-
-
diff --git a/libstdc++-v3/config/os/hpux/ctype_noninline.h b/libstdc++-v3/config/os/hpux/ctype_noninline.h
index 7ec3b30ed9c..a85bc9cff82 100644
--- a/libstdc++-v3/config/os/hpux/ctype_noninline.h
+++ b/libstdc++-v3/config/os/hpux/ctype_noninline.h
@@ -36,7 +36,7 @@
const ctype_base::mask*
ctype<char>::classic_table() throw()
- { return 0; }
+ { return __SB_masks; }
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
size_t __refs)
diff --git a/libstdc++-v3/config/os/hpux/os_defines.h b/libstdc++-v3/config/os/hpux/os_defines.h
index 9dd4fb41af6..6414b4108b4 100644
--- a/libstdc++-v3/config/os/hpux/os_defines.h
+++ b/libstdc++-v3/config/os/hpux/os_defines.h
@@ -84,9 +84,23 @@ namespace std
typedef long int __padding_type;
#endif
+// GCC on IA64 HP-UX uses the HP-UX system unwind library,
+// it does not have the _Unwind_Resume_or_Rethrow entry point
+// because that is not part of the standard IA64 Unwind ABI.
+#if defined (__ia64__)
+#define _LIBUNWIND_STD_ABI 1
+#endif
+
/* We need explicit instantiation of the atomicity lock on HPPA if
there is no weak support. */
#if !defined(_GLIBCPP_SUPPORTS_WEAK) && defined (__hppa__)
#define _GLIBCPP_INST_ATOMICITY_LOCK 1
#endif
+
+/* Don't use pragma weak in gthread headers. HP-UX rejects programs
+ with unsatisfied external references even if all of those references
+ are weak; gthread relies on such unsatisfied references being resolved
+ to null pointers when weak symbol support is on. */
+#define _GLIBCPP_GTHREAD_USE_WEAK 0
+
#endif
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 972ed70937f..9ff891d0db4 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -14,6 +14,8 @@ ac_default_prefix=/usr/local
ac_help="$ac_help
--enable-multilib build hella library versions (default)"
ac_help="$ac_help
+ --with-newlib use newlib headers"
+ac_help="$ac_help
--with-target-subdir=SUBDIR
configuring in a subdirectory"
ac_help="$ac_help
@@ -34,8 +36,6 @@ ac_help="$ac_help
ac_help="$ac_help
--with-pic try to use only PIC/non-PIC objects [default=use both]"
ac_help="$ac_help
- --enable-debug extra debugging, turn off optimization [default=no]"
-ac_help="$ac_help
--enable-cstdio enable stdio for target io package.
--enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
"
@@ -46,23 +46,28 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-nls use Native Language Support (default)"
ac_help="$ac_help
+ --enable-cheaders=MODEL construct "C" header files for g++ [default=c_std]"
+ac_help="$ac_help
--enable-c-mbchar enable multibyte (wide) characters [default=yes]"
ac_help="$ac_help
--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=yes]"
ac_help="$ac_help
--enable-long-long turns on 'long long' [default=yes]"
ac_help="$ac_help
- --enable-cheaders construct "C" header files for g++ [default=c_std]"
-ac_help="$ac_help
- --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
- [default=none]"
-ac_help="$ac_help
--enable-sjlj-exceptions force use of builtin_setjmp for exceptions"
ac_help="$ac_help
--enable-libunwind-exceptions force use of libunwind for exceptions"
ac_help="$ac_help
--enable-concept-checks use Boost-derived template checks [default=no]"
ac_help="$ac_help
+ --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
+ [default=]"
+ac_help="$ac_help
+ --enable-debug build extra debug library [default=no]"
+ac_help="$ac_help
+ --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
+ library;[default=none]"
+ac_help="$ac_help
--enable-symvers=style enables symbol versioning of the shared library [default=yes]"
ac_help="$ac_help
--with-gxx-include-dir the installation directory for include files"
@@ -588,7 +593,7 @@ ORIGINAL_LD_FOR_MULTILIBS=$LD
PACKAGE=libstdc++
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=5:7:0
@@ -688,7 +693,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:692: checking host system type" >&5
+echo "configure:697: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -709,7 +714,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
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
+echo "configure:718: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -727,7 +732,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
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
+echo "configure:736: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -761,12 +766,12 @@ else
fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:765: checking for Cygwin environment" >&5
+echo "configure:770: 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 <<EOF
-#line 770 "configure"
+#line 775 "configure"
#include "confdefs.h"
int main() {
@@ -777,7 +782,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -794,19 +799,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:798: checking for mingw32 environment" >&5
+echo "configure:803: 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 <<EOF
-#line 803 "configure"
+#line 808 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -842,7 +847,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:846: checking for $ac_word" >&5
+echo "configure:851: 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
@@ -876,7 +881,7 @@ done
# 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:880: checking whether ln -s works" >&5
+echo "configure:885: 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
@@ -898,6 +903,12 @@ fi
# We use these options to decide which functions to include.
+ # Check whether --with-newlib or --without-newlib was given.
+if test "${with_newlib+set}" = set; then
+ withval="$with_newlib"
+ :
+fi
+
# Check whether --with-target-subdir or --without-target-subdir was given.
if test "${with_target_subdir+set}" = set; then
withval="$with_target_subdir"
@@ -933,7 +944,7 @@ fi
# 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:937: checking for $ac_word" >&5
+echo "configure:948: 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
@@ -963,7 +974,7 @@ fi
# 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:967: checking for $ac_word" >&5
+echo "configure:978: 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
@@ -1012,7 +1023,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1016: checking whether we are using GNU C" >&5
+echo "configure:1027: 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
@@ -1021,7 +1032,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1036: \"$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
@@ -1036,7 +1047,7 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1040: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1051: 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
@@ -1079,7 +1090,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1083: checking for $ac_word" >&5
+echo "configure:1094: 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
@@ -1114,7 +1125,7 @@ test -n "$glibcpp_CXX" || glibcpp_CXX="gcc"
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:1118: checking whether we are using GNU C++" >&5
+echo "configure:1129: 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
@@ -1123,7 +1134,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1127: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1138: \"$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
@@ -1138,7 +1149,7 @@ echo "$ac_t""$ac_cv_prog_gxx" 1>&6
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1142: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1153: 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
@@ -1168,14 +1179,14 @@ echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
# For directory versioning (e.g., headers) and other variables.
echo $ac_n "checking for GCC version number""... $ac_c" 1>&6
-echo "configure:1172: checking for GCC version number" >&5
+echo "configure:1183: 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:1179: checking for strerror in -lcposix" >&5
+echo "configure:1190: 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
@@ -1183,7 +1194,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcposix $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1187 "configure"
+#line 1198 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1194,7 +1205,7 @@ int main() {
strerror()
; return 0; }
EOF
-if { (eval echo configure:1198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1209: \"$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
@@ -1220,7 +1231,7 @@ 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:1224: checking for $ac_word" >&5
+echo "configure:1235: 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
@@ -1252,7 +1263,7 @@ fi
# 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:1256: checking for $ac_word" >&5
+echo "configure:1267: 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
@@ -1284,7 +1295,7 @@ fi
# 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:1288: checking for $ac_word" >&5
+echo "configure:1299: 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
@@ -1316,7 +1327,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1320: checking for $ac_word" >&5
+echo "configure:1331: 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
@@ -1360,7 +1371,7 @@ fi
# 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:1364: checking for a BSD compatible install" >&5
+echo "configure:1375: 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
@@ -1414,7 +1425,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1418: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:1429: 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"
@@ -1452,7 +1463,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1456: checking for executable suffix" >&5
+echo "configure:1467: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1462,7 +1473,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@@ -1499,7 +1510,7 @@ ac_exeext=$EXEEXT
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:1503: checking whether build environment is sane" >&5
+echo "configure:1514: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -1556,7 +1567,7 @@ test "$program_suffix" != NONE &&
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:1560: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1571: 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
@@ -1602,7 +1613,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:1606: checking for working aclocal" >&5
+echo "configure:1617: 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.
@@ -1615,7 +1626,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:1619: checking for working autoconf" >&5
+echo "configure:1630: 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.
@@ -1628,7 +1639,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:1632: checking for working automake" >&5
+echo "configure:1643: 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.
@@ -1641,7 +1652,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:1645: checking for working autoheader" >&5
+echo "configure:1656: 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.
@@ -1654,7 +1665,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:1658: checking for working makeinfo" >&5
+echo "configure:1669: 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.
@@ -1753,7 +1764,7 @@ ac_prog=ld
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:1757: checking for ld used by GCC" >&5
+echo "configure:1768: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1783,10 +1794,10 @@ echo "configure:1757: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1787: checking for GNU ld" >&5
+echo "configure:1798: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1790: checking for non-GNU ld" >&5
+echo "configure:1801: 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
@@ -1821,7 +1832,7 @@ else
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:1825: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1836: 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
@@ -1838,7 +1849,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1842: checking for $LD option to reload object files" >&5
+echo "configure:1853: 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
@@ -1850,7 +1861,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1854: checking for BSD-compatible nm" >&5
+echo "configure:1865: 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
@@ -1888,7 +1899,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1892: checking how to recognise dependant libraries" >&5
+echo "configure:1903: 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
@@ -1998,7 +2009,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -2061,13 +2072,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:2065: checking for object suffix" >&5
+echo "configure:2076: 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:2071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -2091,7 +2102,7 @@ case $deplibs_check_method in
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:2095: checking for ${ac_tool_prefix}file" >&5
+echo "configure:2106: 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
@@ -2153,7 +2164,7 @@ fi
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:2157: checking for file" >&5
+echo "configure:2168: 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
@@ -2224,7 +2235,7 @@ esac
# 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:2228: checking for $ac_word" >&5
+echo "configure:2239: 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
@@ -2256,7 +2267,7 @@ if test -n "$ac_tool_prefix"; then
# 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:2260: checking for $ac_word" >&5
+echo "configure:2271: 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
@@ -2291,7 +2302,7 @@ fi
# 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:2295: checking for $ac_word" >&5
+echo "configure:2306: 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
@@ -2323,7 +2334,7 @@ if test -n "$ac_tool_prefix"; then
# 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:2327: checking for $ac_word" >&5
+echo "configure:2338: 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
@@ -2390,8 +2401,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 2394 "configure"' > conftest.$ac_ext
- if { (eval echo configure:2395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 2405 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:2406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2403,6 +2427,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2410,7 +2435,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2426,14 +2451,14 @@ ia64-*-hpux*)
x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
case $host in
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*)
+ ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -2470,7 +2495,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2474: checking whether the C compiler needs -belf" >&5
+echo "configure:2499: 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
@@ -2483,14 +2508,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2487 "configure"
+#line 2512 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2520,7 +2545,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
esac
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:2524: checking how to run the C++ preprocessor" >&5
+echo "configure:2549: 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
@@ -2533,12 +2558,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 2537 "configure"
+#line 2562 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2542: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2567: \"$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
:
@@ -2676,7 +2701,7 @@ exec 5>>./config.log
# 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:2680: checking for GNU make" >&5
+echo "configure:2705: 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
@@ -2701,30 +2726,8 @@ echo "$ac_t""$_cv_gnu_make_command" 1>&6 ;
# Enable all the variable C++ stuff. C_MBCHAR must come early.
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
- enableval="$enable_debug"
- case "${enableval}" in
- yes) enable_debug=yes ;;
- no) enable_debug=no ;;
- *) { echo "configure: error: Unknown argument to enable/disable extra debugging" 1>&2; exit 1; } ;;
- esac
-else
- enable_debug=no
-fi
-
-case "${enable_debug}" in
- yes)
- DEBUG_FLAGS='-O0 -ggdb3'
- ;;
- no)
- DEBUG_FLAGS='-g'
- ;;
-esac
-
-
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2728: checking how to run the C preprocessor" >&5
+echo "configure:2731: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2739,13 +2742,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2743 "configure"
+#line 2746 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2752: \"$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
:
@@ -2756,13 +2759,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2760 "configure"
+#line 2763 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (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
:
@@ -2773,13 +2776,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2777 "configure"
+#line 2780 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2786: \"$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
:
@@ -2805,7 +2808,7 @@ echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for cstdio to use""... $ac_c" 1>&6
-echo "configure:2809: checking for cstdio to use" >&5
+echo "configure:2812: 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"
@@ -2829,17 +2832,17 @@ fi
# 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:2833: checking for libio.h" >&5
+echo "configure:2836: 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
-#line 2838 "configure"
+#line 2841 "configure"
#include "confdefs.h"
#include <libio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2846: \"$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*
@@ -2869,9 +2872,9 @@ fi
case "$target" in
*-*-linux*)
echo $ac_n "checking for glibc version >= 2.2""... $ac_c" 1>&6
-echo "configure:2873: checking for glibc version >= 2.2" >&5
+echo "configure:2876: checking for glibc version >= 2.2" >&5
cat > conftest.$ac_ext <<EOF
-#line 2875 "configure"
+#line 2878 "configure"
#include "confdefs.h"
#include <features.h>
@@ -2985,7 +2988,7 @@ fi
echo $ac_n "checking for clocale to use""... $ac_c" 1>&6
-echo "configure:2989: checking for clocale to use" >&5
+echo "configure:2992: 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"
@@ -3003,7 +3006,7 @@ fi
case x${target_os} in
xlinux* | xgnu*)
cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
+#line 3010 "configure"
#include "confdefs.h"
#include <features.h>
@@ -3029,7 +3032,7 @@ rm -f conftest*
enable_clocale_flag=generic
else
cat > conftest.$ac_ext <<EOF
-#line 3033 "configure"
+#line 3036 "configure"
#include "confdefs.h"
#define _GNU_SOURCE 1
@@ -3056,7 +3059,7 @@ else
}
EOF
-if { (eval echo configure:3060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3063: \"$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
@@ -3102,6 +3105,7 @@ fi
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -3117,7 +3121,7 @@ fi
# 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:3121: checking for $ac_word" >&5
+echo "configure:3125: 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
@@ -3165,6 +3169,7 @@ fi
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
+ CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
@@ -3181,6 +3186,7 @@ fi
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
+ CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@@ -3195,9 +3201,6 @@ fi
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
-
@@ -3205,13 +3208,73 @@ fi
-# AC_LINK_FILES($CCTYPE_CHAR_CC, src/ctype_members_char.cc)
+
+
+echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6
+echo "configure:3221: 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"
+
+ case "$enableval" in
+ c)
+ enable_cheaders=c
+ ;;
+ c_std)
+ enable_cheaders=c_std
+ ;;
+ *) { echo "configure: error: Unknown argument to enable/disable "C" headers" 1>&2; exit 1; }
+ ;;
+ esac
+else
+ enable_cheaders=c_std
+fi
+
+ echo "$ac_t""$enable_cheaders" 1>&6
+
+ case "$enable_cheaders" in
+ c_std)
+ C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
+ ;;
+ c)
+ C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
+ ;;
+ esac
+
+
+
+
+if test "$enable_cheaders" = c; then
+ GLIBCPP_C_HEADERS_C_TRUE=
+ GLIBCPP_C_HEADERS_C_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_C_TRUE='#'
+ GLIBCPP_C_HEADERS_C_FALSE=
+fi
+
+
+if test "$enable_cheaders" = c_std; then
+ GLIBCPP_C_HEADERS_C_STD_TRUE=
+ GLIBCPP_C_HEADERS_C_STD_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_C_STD_TRUE='#'
+ GLIBCPP_C_HEADERS_C_STD_FALSE=
+fi
+
+
+if test "$c_compatibility" = yes; then
+ GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE=
+ GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#'
+else
+ GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#'
+ GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE=
+fi
# Check whether --enable-c-mbchar or --disable-c-mbchar was given.
if test "${enable_c_mbchar+set}" = set; then
@@ -3250,16 +3313,16 @@ cross_compiling=$ac_cv_prog_cxx_cross
# Check for the existence of <math.h> functions used if C99 is enabled.
ac_c99_math=yes;
echo $ac_n "checking for ISO C99 support in <math.h>""... $ac_c" 1>&6
-echo "configure:3254: checking for ISO C99 support in <math.h>" >&5
+echo "configure:3317: checking for ISO C99 support in <math.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3256 "configure"
+#line 3319 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fpclassify(0.0);
; return 0; }
EOF
-if { (eval echo configure:3263: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3269,14 +3332,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3273 "configure"
+#line 3336 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isfinite(0.0);
; return 0; }
EOF
-if { (eval echo configure:3280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3286,14 +3349,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3290 "configure"
+#line 3353 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isinf(0.0);
; return 0; }
EOF
-if { (eval echo configure:3297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3303,14 +3366,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3307 "configure"
+#line 3370 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isnan(0.0);
; return 0; }
EOF
-if { (eval echo configure:3314: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3320,14 +3383,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3324 "configure"
+#line 3387 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isnormal(0.0);
; return 0; }
EOF
-if { (eval echo configure:3331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3394: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3337,14 +3400,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3341 "configure"
+#line 3404 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
signbit(0.0);
; return 0; }
EOF
-if { (eval echo configure:3348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3354,14 +3417,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3358 "configure"
+#line 3421 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isgreater(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3371,14 +3434,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3375 "configure"
+#line 3438 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isgreaterequal(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3388,14 +3451,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3392 "configure"
+#line 3455 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isless(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3405,14 +3468,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3409 "configure"
+#line 3472 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
islessequal(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3422,14 +3485,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3426 "configure"
+#line 3489 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
islessgreater(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3439,14 +3502,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3443 "configure"
+#line 3506 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
isunordered(0.0,0.0);
; return 0; }
EOF
-if { (eval echo configure:3450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3460,16 +3523,16 @@ rm -f conftest*
# Check for the existence in <stdio.h> of vscanf, et. al.
ac_c99_stdio=yes;
echo $ac_n "checking for ISO C99 support in <stdio.h>""... $ac_c" 1>&6
-echo "configure:3464: checking for ISO C99 support in <stdio.h>" >&5
+echo "configure:3527: checking for ISO C99 support in <stdio.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3466 "configure"
+#line 3529 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
snprintf("12", 0, "%i");
; return 0; }
EOF
-if { (eval echo configure:3473: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3536: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3479,7 +3542,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3483 "configure"
+#line 3546 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3490,7 +3553,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3500,7 +3563,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3504 "configure"
+#line 3567 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3511,7 +3574,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3521,7 +3584,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3525 "configure"
+#line 3588 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3532,7 +3595,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3536: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3542,7 +3605,7 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3546 "configure"
+#line 3609 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdarg.h>
@@ -3553,7 +3616,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3567,20 +3630,20 @@ rm -f conftest*
# Check for the existence in <stdlib.h> of lldiv_t, et. al.
ac_c99_stdlib=yes;
echo $ac_n "checking for lldiv_t declaration""... $ac_c" 1>&6
-echo "configure:3571: checking for lldiv_t declaration" >&5
+echo "configure:3634: 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 <<EOF
-#line 3577 "configure"
+#line 3640 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
lldiv_t mydivt;
; return 0; }
EOF
-if { (eval echo configure:3584: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_c99_lldiv_t=yes
else
@@ -3596,16 +3659,16 @@ fi
echo "$ac_t""$ac_c99_lldiv_t" 1>&6
echo $ac_n "checking for ISO C99 support in <stdlib.h>""... $ac_c" 1>&6
-echo "configure:3600: checking for ISO C99 support in <stdlib.h>" >&5
+echo "configure:3663: checking for ISO C99 support in <stdlib.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3602 "configure"
+#line 3665 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtof("gnu", &tmp);
; return 0; }
EOF
-if { (eval echo configure:3609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3615,14 +3678,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3619 "configure"
+#line 3682 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtold("gnu", &tmp);
; return 0; }
EOF
-if { (eval echo configure:3626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3632,14 +3695,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3636 "configure"
+#line 3699 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
llabs(10);
; return 0; }
EOF
-if { (eval echo configure:3643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3649,14 +3712,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3653 "configure"
+#line 3716 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
lldiv(10,1);
; return 0; }
EOF
-if { (eval echo configure:3660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3666,14 +3729,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3670 "configure"
+#line 3733 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
atoll("10");
; return 0; }
EOF
-if { (eval echo configure:3677: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3683,14 +3746,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3687 "configure"
+#line 3750 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
_Exit(0);
; return 0; }
EOF
-if { (eval echo configure:3694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3757: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3708,16 +3771,16 @@ rm -f conftest*
# 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 <wchar.h>""... $ac_c" 1>&6
-echo "configure:3712: checking for additional ISO C99 support in <wchar.h>" >&5
+echo "configure:3775: checking for additional ISO C99 support in <wchar.h>" >&5
cat > conftest.$ac_ext <<EOF
-#line 3714 "configure"
+#line 3777 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstold(L"10.0", NULL);
; return 0; }
EOF
-if { (eval echo configure:3721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3727,14 +3790,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3731 "configure"
+#line 3794 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstoll(L"10", NULL, 10);
; return 0; }
EOF
-if { (eval echo configure:3738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3801: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3744,14 +3807,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3748 "configure"
+#line 3811 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
wcstoull(L"10", NULL, 10);
; return 0; }
EOF
-if { (eval echo configure:3755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3763,7 +3826,7 @@ rm -f conftest*
echo "$ac_t""$ac_c99_wchar" 1>&6
echo $ac_n "checking for enabled ISO C99 support""... $ac_c" 1>&6
-echo "configure:3767: checking for enabled ISO C99 support" >&5
+echo "configure:3830: 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" ||
@@ -3811,17 +3874,17 @@ cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking for enabled long long I/O support""... $ac_c" 1>&6
-echo "configure:3815: checking for enabled long long I/O support" >&5
+echo "configure:3878: checking for enabled long long I/O support" >&5
# iostreams require strtoll, strtoull to compile
cat > conftest.$ac_ext <<EOF
-#line 3818 "configure"
+#line 3881 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtoll("gnu", &tmp, 10);
; return 0; }
EOF
-if { (eval echo configure:3825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3831,14 +3894,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 3835 "configure"
+#line 3898 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char* tmp; strtoull("gnu", &tmp, 10);
; return 0; }
EOF
-if { (eval echo configure:3842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3905: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -3865,69 +3928,9 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
-echo $ac_n "checking for c header strategy to use""... $ac_c" 1>&6
-echo "configure:3870: 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"
-
- case "$enableval" in
- c)
- enable_cheaders=c
- ;;
- c_std)
- enable_cheaders=c_std
- ;;
- *) { echo "configure: error: Unknown argument to enable/disable "C" headers" 1>&2; exit 1; }
- ;;
- esac
-else
- enable_cheaders=c_std
-fi
-
- echo "$ac_t""$enable_cheaders" 1>&6
-
- case "$enable_cheaders" in
- c_std)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
- ;;
- c)
- C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
- ;;
- esac
-
-
-
-
-if test "$enable_cheaders" = c; then
- GLIBCPP_C_HEADERS_C_TRUE=
- GLIBCPP_C_HEADERS_C_FALSE='#'
-else
- GLIBCPP_C_HEADERS_C_TRUE='#'
- GLIBCPP_C_HEADERS_C_FALSE=
-fi
-
-
-if test "$enable_cheaders" = c_std; then
- GLIBCPP_C_HEADERS_C_STD_TRUE=
- GLIBCPP_C_HEADERS_C_STD_FALSE='#'
-else
- GLIBCPP_C_HEADERS_C_STD_TRUE='#'
- GLIBCPP_C_HEADERS_C_STD_FALSE=
-fi
-
-
-if test "$c_compatibility" = yes; then
- GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE=
- GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE='#'
-else
- GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE='#'
- GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE=
-fi
-
echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6
-echo "configure:3931: checking for thread model used by GCC" >&5
+echo "configure:3934: 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
@@ -3945,42 +3948,9 @@ EOF
glibcpp_thread_h=gthr-$target_thread_file.h
-# Check whether --enable-cxx-flags or --disable-cxx-flags was given.
-if test "${enable_cxx_flags+set}" = set; then
- enableval="$enable_cxx_flags"
- case "x$enableval" in
- xyes)
- { echo "configure: error: --enable-cxx-flags needs compiler flags as arguments" 1>&2; exit 1; } ;;
- xno|x)
- enable_cxx_flags='' ;;
- *)
- enable_cxx_flags="$enableval" ;;
- esac
-else
- enable_cxx_flags='none'
-fi
-
-
-if test "$enable_cxx_flags" = "none"; then
- enable_cxx_flags='';
-fi
-
-if test -n "$enable_cxx_flags"; then
- for f in $enable_cxx_flags; do
- case "$f" in
- -fhonor-std) ;;
- -*) ;;
- *) # and we're trying to pass /what/ exactly?
- { echo "configure: error: compiler flags start with a -" 1>&2; exit 1; } ;;
- esac
- done
-fi
-EXTRA_CXX_FLAGS="$enable_cxx_flags"
-
-
echo $ac_n "checking for exception model to use""... $ac_c" 1>&6
-echo "configure:3984: checking for exception model to use" >&5
+echo "configure:3954: 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.
@@ -3995,7 +3965,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 3999 "configure"
+#line 3969 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -4006,7 +3976,7 @@ void foo()
EOF
old_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=-S
- if { (eval echo configure:4010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:3980: \"$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
@@ -4039,7 +4009,7 @@ cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking for use of libunwind""... $ac_c" 1>&6
-echo "configure:4043: checking for use of libunwind" >&5
+echo "configure:4013: 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"
@@ -4074,23 +4044,110 @@ EOF
fi
+echo $ac_n "checking for extra compiler flags for building""... $ac_c" 1>&6
+echo "configure:4049: checking for extra compiler flags for building" >&5
+# Check whether --enable-cxx_flags or --disable-cxx_flags was given.
+if test "${enable_cxx_flags+set}" = set; then
+ enableval="$enable_cxx_flags"
+ case "x$enable_cxx_flags" in
+ xyes)
+ { echo "configure: error: --enable-cxx-flags needs compiler flags as arguments" 1>&2; exit 1; } ;;
+ xno | xnone | x)
+ enable_cxx_flags='' ;;
+ *)
+ enable_cxx_flags="$enableval" ;;
+esac
+else
+ enable_cxx_flags=
+fi
+
+
+if test -n "$enable_cxx_flags"; then
+ for f in $enable_cxx_flags; do
+ case "$f" in
+ -fhonor-std) ;;
+ -*) ;;
+ *) # and we're trying to pass /what/ exactly?
+ { echo "configure: error: compiler flags start with a -" 1>&2; exit 1; } ;;
+ esac
+ done
+fi
+EXTRA_CXX_FLAGS="$enable_cxx_flags"
+echo "$ac_t""$EXTRA_CXX_FLAGS" 1>&6
+
+
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+ enableval="$enable_debug"
+ case "${enableval}" in
+ yes) enable_debug=yes ;;
+ no) enable_debug=no ;;
+ *) { echo "configure: error: Unknown argument to enable/disable extra debugging" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_debug=no
+fi
+echo $ac_n "checking for additional debug build""... $ac_c" 1>&6
+echo "configure:4092: checking for additional debug build" >&5
+echo "$ac_t""$enable_debug" 1>&6
+
+
+if test "$enable_debug" = yes; then
+ GLIBCPP_BUILD_DEBUG_TRUE=
+ GLIBCPP_BUILD_DEBUG_FALSE='#'
+else
+ GLIBCPP_BUILD_DEBUG_TRUE='#'
+ GLIBCPP_BUILD_DEBUG_FALSE=
+fi
+
+# Check whether --enable-debug_flags or --disable-debug_flags was given.
+if test "${enable_debug_flags+set}" = set; then
+ enableval="$enable_debug_flags"
+ case "${enableval}" in
+ none) ;;
+ -*) enable_debug_flags="${enableval}" ;;
+ *) { echo "configure: error: Unknown argument to extra debugging flags" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_debug_flags=none
+fi
+
+case x"$enable_debug" in
+ xyes)
+ case "$enable_debug_flags" in
+ none)
+ DEBUG_FLAGS="-g3 -O0";;
+ -*) #valid input
+ DEBUG_FLAGS="${enableval}"
+ esac
+ ;;
+ xno)
+ DEBUG_FLAGS=""
+ ;;
+esac
+
+
+echo $ac_n "checking for debug build flags""... $ac_c" 1>&6
+echo "configure:4132: checking for debug build flags" >&5
+echo "$ac_t""$DEBUG_FLAGS" 1>&6
+
# Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c
for ac_hdr in string.h stdlib.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4084: checking for $ac_hdr" >&5
+echo "configure:4141: 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
-#line 4089 "configure"
+#line 4146 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4094: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4151: \"$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*
@@ -4133,7 +4190,7 @@ fi
if test -n "$with_cross_host" || test x"$build" != x"$host"; then
# We are being configured with some form of cross compiler.
- GLIBCPP_IS_CROSS_COMPILING=1
+ GLIBCPP_IS_CROSS_COMPILING=true
# This lets us hard-code the functionality we know we'll have in the cross
# target environment. "Let" is a sugar-coated word placed on an especially
@@ -4171,17 +4228,17 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4175: checking for $ac_hdr" >&5
+echo "configure:4232: 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
-#line 4180 "configure"
+#line 4237 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4242: \"$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*
@@ -4259,12 +4316,12 @@ done
# 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:4263: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:4320: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 4268 "configure"
+#line 4325 "configure"
#include "confdefs.h"
int main(void)
@@ -4275,7 +4332,7 @@ else
}
EOF
-if { (eval echo configure:4279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -4300,7 +4357,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -4309,7 +4366,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:4313: checking for main in -lm" >&5
+echo "configure:4370: 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
@@ -4317,14 +4374,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4321 "configure"
+#line 4378 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:4328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4385: \"$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
@@ -4354,12 +4411,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4358: checking for $ac_func" >&5
+echo "configure:4415: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4363 "configure"
+#line 4420 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4382,7 +4439,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4411,12 +4468,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4415: checking for $ac_func" >&5
+echo "configure:4472: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4420 "configure"
+#line 4477 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4439,7 +4496,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4467,12 +4524,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4471: checking for $ac_func" >&5
+echo "configure:4528: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4476 "configure"
+#line 4533 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4495,7 +4552,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4525,12 +4582,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4529: checking for $ac_func" >&5
+echo "configure:4586: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4534 "configure"
+#line 4591 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4553,7 +4610,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4580,21 +4637,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:4589: checking for mbstate_t" >&5
+echo "configure:4659: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4591 "configure"
+#line 4661 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:4598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4668: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -4616,17 +4686,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4620: checking for $ac_hdr" >&5
+echo "configure:4690: 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
-#line 4625 "configure"
+#line 4695 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4700: \"$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*
@@ -4657,17 +4727,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4661: checking for $ac_hdr" >&5
+echo "configure:4731: 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
-#line 4666 "configure"
+#line 4736 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4671: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4741: \"$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*
@@ -4700,16 +4770,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:4704: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:4774: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 4706 "configure"
+#line 4776 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:4713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4783: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -4722,9 +4792,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:4726: checking for WEOF" >&5
+echo "configure:4796: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 4728 "configure"
+#line 4798 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -4733,7 +4803,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:4737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -4749,12 +4819,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4753: checking for $ac_func" >&5
+echo "configure:4823: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4758 "configure"
+#line 4828 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4777,7 +4847,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4804,7 +4874,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -4812,12 +4882,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4816: checking for $ac_func" >&5
+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 <<EOF
-#line 4821 "configure"
+#line 4891 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4840,7 +4910,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4868,7 +4938,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:4872: checking for ISO C99 wchar_t support" >&5
+echo "configure:4942: 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
@@ -4880,17 +4950,17 @@ echo "configure:4872: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:4884: checking for iconv.h" >&5
+echo "configure:4954: 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
-#line 4889 "configure"
+#line 4959 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4894: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4964: \"$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*
@@ -4914,17 +4984,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:4918: checking for langinfo.h" >&5
+echo "configure:4988: 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
-#line 4923 "configure"
+#line 4993 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4998: \"$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*
@@ -4948,7 +5018,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:4952: checking for iconv in -liconv" >&5
+echo "configure:5022: 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
@@ -4956,7 +5026,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4960 "configure"
+#line 5030 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4967,7 +5037,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:4971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5041: \"$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
@@ -4993,12 +5063,12 @@ fi
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:4997: checking for $ac_func" >&5
+echo "configure:5067: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5002 "configure"
+#line 5072 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5021,7 +5091,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5051,7 +5121,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:5055: checking for XPG2 wchar_t support" >&5
+echo "configure:5125: 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
@@ -5061,22 +5131,167 @@ echo "configure:5055: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:5066: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
+ fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:5145: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
+
+
+ # For showmanyc_helper().
+ for ac_hdr in sys/ioctl.h sys/filio.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:5163: 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
+#line 5168 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_POLL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 5205 "configure"
+#include "confdefs.h"
+#include <poll.h>
+int main() {
+struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0);
+; return 0; }
+EOF
+if { (eval echo configure:5212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ glibcpp_cv_POLL=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_POLL=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_POLL = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_POLL 1
+EOF
+
+ fi
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_ISREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 5238 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode);
+; return 0; }
+EOF
+if { (eval echo configure:5245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_IFREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 5263 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode;
+; return 0; }
+EOF
+if { (eval echo configure:5270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_ISREG 1
+EOF
+
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_IFREG 1
+EOF
+
fi
+
cat >> confdefs.h <<\EOF
#define HAVE_COPYSIGN 1
EOF
@@ -5152,17 +5367,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5156: checking for $ac_hdr" >&5
+echo "configure:5371: 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
-#line 5161 "configure"
+#line 5376 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5381: \"$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*
@@ -5240,12 +5455,12 @@ done
# 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:5244: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:5459: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 5249 "configure"
+#line 5464 "configure"
#include "confdefs.h"
int main(void)
@@ -5256,7 +5471,7 @@ else
}
EOF
-if { (eval echo configure:5260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -5281,7 +5496,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -5290,7 +5505,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5294: checking for main in -lm" >&5
+echo "configure:5509: 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
@@ -5298,14 +5513,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5302 "configure"
+#line 5517 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5524: \"$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
@@ -5335,12 +5550,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5339: checking for $ac_func" >&5
+echo "configure:5554: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5344 "configure"
+#line 5559 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5363,7 +5578,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5392,12 +5607,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5396: checking for $ac_func" >&5
+echo "configure:5611: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5401 "configure"
+#line 5616 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5420,7 +5635,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5448,12 +5663,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5452: checking for $ac_func" >&5
+echo "configure:5667: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5457 "configure"
+#line 5672 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5476,7 +5691,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5506,12 +5721,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5510: checking for $ac_func" >&5
+echo "configure:5725: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5515 "configure"
+#line 5730 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5534,7 +5749,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5561,21 +5776,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:5570: checking for mbstate_t" >&5
+echo "configure:5798: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 5572 "configure"
+#line 5800 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:5579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -5597,17 +5825,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5601: checking for $ac_hdr" >&5
+echo "configure:5829: 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
-#line 5606 "configure"
+#line 5834 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5839: \"$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*
@@ -5638,17 +5866,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5642: checking for $ac_hdr" >&5
+echo "configure:5870: 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
-#line 5647 "configure"
+#line 5875 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5880: \"$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*
@@ -5681,16 +5909,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:5685: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:5913: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 5687 "configure"
+#line 5915 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:5694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -5703,9 +5931,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:5707: checking for WEOF" >&5
+echo "configure:5935: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 5709 "configure"
+#line 5937 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -5714,7 +5942,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:5718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -5730,12 +5958,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5734: checking for $ac_func" >&5
+echo "configure:5962: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5739 "configure"
+#line 5967 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5758,7 +5986,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5785,7 +6013,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -5793,12 +6021,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5797: checking for $ac_func" >&5
+echo "configure:6025: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5802 "configure"
+#line 6030 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5821,7 +6049,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5849,7 +6077,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:5853: checking for ISO C99 wchar_t support" >&5
+echo "configure:6081: 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
@@ -5861,17 +6089,17 @@ echo "configure:5853: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:5865: checking for iconv.h" >&5
+echo "configure:6093: 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
-#line 5870 "configure"
+#line 6098 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6103: \"$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*
@@ -5895,17 +6123,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:5899: checking for langinfo.h" >&5
+echo "configure:6127: 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
-#line 5904 "configure"
+#line 6132 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6137: \"$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*
@@ -5929,7 +6157,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:5933: checking for iconv in -liconv" >&5
+echo "configure:6161: 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
@@ -5937,7 +6165,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5941 "configure"
+#line 6169 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5948,7 +6176,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:5952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6180: \"$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
@@ -5974,12 +6202,12 @@ fi
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:5978: checking for $ac_func" >&5
+echo "configure:6206: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5983 "configure"
+#line 6211 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6002,7 +6230,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6032,7 +6260,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:6036: checking for XPG2 wchar_t support" >&5
+echo "configure:6264: 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
@@ -6042,21 +6270,27 @@ echo "configure:6036: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:6047: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:6284: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
os_include_dir="os/hpux"
cat >> confdefs.h <<\EOF
@@ -6113,17 +6347,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6117: checking for $ac_hdr" >&5
+echo "configure:6351: 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
-#line 6122 "configure"
+#line 6356 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6127: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6361: \"$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*
@@ -6201,12 +6435,12 @@ done
# 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:6205: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:6439: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 6210 "configure"
+#line 6444 "configure"
#include "confdefs.h"
int main(void)
@@ -6217,7 +6451,7 @@ else
}
EOF
-if { (eval echo configure:6221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -6242,7 +6476,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -6251,7 +6485,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:6255: checking for main in -lm" >&5
+echo "configure:6489: 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
@@ -6259,14 +6493,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6263 "configure"
+#line 6497 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:6270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6504: \"$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
@@ -6296,12 +6530,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6300: checking for $ac_func" >&5
+echo "configure:6534: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6305 "configure"
+#line 6539 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6324,7 +6558,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6353,12 +6587,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6357: checking for $ac_func" >&5
+echo "configure:6591: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6362 "configure"
+#line 6596 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6381,7 +6615,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6409,12 +6643,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6413: checking for $ac_func" >&5
+echo "configure:6647: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6418 "configure"
+#line 6652 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6437,7 +6671,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6467,12 +6701,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6471: checking for $ac_func" >&5
+echo "configure:6705: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6476 "configure"
+#line 6710 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6495,7 +6729,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6522,21 +6756,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:6531: checking for mbstate_t" >&5
+echo "configure:6778: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 6533 "configure"
+#line 6780 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:6540: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -6558,17 +6805,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6562: checking for $ac_hdr" >&5
+echo "configure:6809: 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
-#line 6567 "configure"
+#line 6814 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6572: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6819: \"$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*
@@ -6599,17 +6846,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6603: checking for $ac_hdr" >&5
+echo "configure:6850: 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
-#line 6608 "configure"
+#line 6855 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6613: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6860: \"$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*
@@ -6642,16 +6889,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:6646: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:6893: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 6648 "configure"
+#line 6895 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:6655: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -6664,9 +6911,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:6668: checking for WEOF" >&5
+echo "configure:6915: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 6670 "configure"
+#line 6917 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -6675,7 +6922,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:6679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6926: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -6691,12 +6938,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6695: checking for $ac_func" >&5
+echo "configure:6942: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6700 "configure"
+#line 6947 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6719,7 +6966,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6746,7 +6993,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -6754,12 +7001,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6758: checking for $ac_func" >&5
+echo "configure:7005: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6763 "configure"
+#line 7010 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6782,7 +7029,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6810,7 +7057,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:6814: checking for ISO C99 wchar_t support" >&5
+echo "configure:7061: 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
@@ -6822,17 +7069,17 @@ echo "configure:6814: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:6826: checking for iconv.h" >&5
+echo "configure:7073: 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
-#line 6831 "configure"
+#line 7078 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6836: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7083: \"$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*
@@ -6856,17 +7103,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:6860: checking for langinfo.h" >&5
+echo "configure:7107: 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
-#line 6865 "configure"
+#line 7112 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6870: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7117: \"$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*
@@ -6890,7 +7137,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:6894: checking for iconv in -liconv" >&5
+echo "configure:7141: 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
@@ -6898,7 +7145,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6902 "configure"
+#line 7149 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -6909,7 +7156,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:6913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7160: \"$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
@@ -6935,12 +7182,12 @@ fi
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:6939: checking for $ac_func" >&5
+echo "configure:7186: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6944 "configure"
+#line 7191 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6963,7 +7210,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6993,7 +7240,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:6997: checking for XPG2 wchar_t support" >&5
+echo "configure:7244: 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
@@ -7003,21 +7250,27 @@ echo "configure:6997: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:7008: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:7264: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
os_include_dir="os/bsd/netbsd"
cat >> confdefs.h <<\EOF
@@ -7084,17 +7337,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7088: checking for $ac_hdr" >&5
+echo "configure:7341: 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
-#line 7093 "configure"
+#line 7346 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7351: \"$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*
@@ -7172,12 +7425,12 @@ done
# 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:7176: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:7429: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 7181 "configure"
+#line 7434 "configure"
#include "confdefs.h"
int main(void)
@@ -7188,7 +7441,7 @@ else
}
EOF
-if { (eval echo configure:7192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -7213,7 +7466,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -7222,7 +7475,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:7226: checking for main in -lm" >&5
+echo "configure:7479: 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
@@ -7230,14 +7483,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7234 "configure"
+#line 7487 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:7241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7494: \"$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
@@ -7267,12 +7520,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7271: checking for $ac_func" >&5
+echo "configure:7524: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7276 "configure"
+#line 7529 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7295,7 +7548,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7324,12 +7577,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7328: checking for $ac_func" >&5
+echo "configure:7581: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7333 "configure"
+#line 7586 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7352,7 +7605,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7380,12 +7633,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7384: checking for $ac_func" >&5
+echo "configure:7637: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7389 "configure"
+#line 7642 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7408,7 +7661,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7438,12 +7691,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7442: checking for $ac_func" >&5
+echo "configure:7695: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7447 "configure"
+#line 7700 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7466,7 +7719,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7493,21 +7746,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:7502: checking for mbstate_t" >&5
+echo "configure:7768: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 7504 "configure"
+#line 7770 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:7511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -7529,17 +7795,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7533: checking for $ac_hdr" >&5
+echo "configure:7799: 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
-#line 7538 "configure"
+#line 7804 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7809: \"$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*
@@ -7570,17 +7836,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7574: checking for $ac_hdr" >&5
+echo "configure:7840: 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
-#line 7579 "configure"
+#line 7845 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7850: \"$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*
@@ -7613,16 +7879,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:7617: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:7883: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 7619 "configure"
+#line 7885 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:7626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -7635,9 +7901,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:7639: checking for WEOF" >&5
+echo "configure:7905: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 7641 "configure"
+#line 7907 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -7646,7 +7912,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:7650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7916: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -7662,12 +7928,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7666: checking for $ac_func" >&5
+echo "configure:7932: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7671 "configure"
+#line 7937 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7690,7 +7956,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7717,7 +7983,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -7725,12 +7991,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7729: checking for $ac_func" >&5
+echo "configure:7995: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7734 "configure"
+#line 8000 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7753,7 +8019,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7781,7 +8047,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:7785: checking for ISO C99 wchar_t support" >&5
+echo "configure:8051: 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
@@ -7793,17 +8059,17 @@ echo "configure:7785: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:7797: checking for iconv.h" >&5
+echo "configure:8063: 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
-#line 7802 "configure"
+#line 8068 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7807: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8073: \"$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*
@@ -7827,17 +8093,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:7831: checking for langinfo.h" >&5
+echo "configure:8097: 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
-#line 7836 "configure"
+#line 8102 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7841: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8107: \"$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*
@@ -7861,7 +8127,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:7865: checking for iconv in -liconv" >&5
+echo "configure:8131: 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
@@ -7869,7 +8135,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 7873 "configure"
+#line 8139 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -7880,7 +8146,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:7884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8150: \"$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
@@ -7906,12 +8172,12 @@ fi
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:7910: checking for $ac_func" >&5
+echo "configure:8176: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 7915 "configure"
+#line 8181 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -7934,7 +8200,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:7938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -7964,7 +8230,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:7968: checking for XPG2 wchar_t support" >&5
+echo "configure:8234: 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
@@ -7974,21 +8240,27 @@ echo "configure:7968: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:7979: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:8254: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
os_include_dir="os/bsd/freebsd"
cat >> confdefs.h <<\EOF
@@ -8071,17 +8343,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8075: checking for $ac_hdr" >&5
+echo "configure:8347: 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
-#line 8080 "configure"
+#line 8352 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8085: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8357: \"$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*
@@ -8157,12 +8429,12 @@ done
# 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:8161: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:8433: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 8166 "configure"
+#line 8438 "configure"
#include "confdefs.h"
int main(void)
@@ -8173,7 +8445,7 @@ else
}
EOF
-if { (eval echo configure:8177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -8198,7 +8470,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -8207,7 +8479,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:8211: checking for main in -lm" >&5
+echo "configure:8483: 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
@@ -8215,14 +8487,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 8219 "configure"
+#line 8491 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:8226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8498: \"$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
@@ -8252,12 +8524,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8256: checking for $ac_func" >&5
+echo "configure:8528: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8261 "configure"
+#line 8533 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8280,7 +8552,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8309,12 +8581,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8313: checking for $ac_func" >&5
+echo "configure:8585: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8318 "configure"
+#line 8590 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8337,7 +8609,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8365,12 +8637,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8369: checking for $ac_func" >&5
+echo "configure:8641: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8374 "configure"
+#line 8646 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8393,7 +8665,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8423,12 +8695,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8427: checking for $ac_func" >&5
+echo "configure:8699: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8432 "configure"
+#line 8704 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8451,7 +8723,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8478,21 +8750,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:8487: checking for mbstate_t" >&5
+echo "configure:8772: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 8489 "configure"
+#line 8774 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:8496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8781: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -8514,17 +8799,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8518: checking for $ac_hdr" >&5
+echo "configure:8803: 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
-#line 8523 "configure"
+#line 8808 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8813: \"$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*
@@ -8555,17 +8840,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8559: checking for $ac_hdr" >&5
+echo "configure:8844: 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
-#line 8564 "configure"
+#line 8849 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8854: \"$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*
@@ -8598,16 +8883,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:8602: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:8887: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 8604 "configure"
+#line 8889 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:8611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -8620,9 +8905,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:8624: checking for WEOF" >&5
+echo "configure:8909: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 8626 "configure"
+#line 8911 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -8631,7 +8916,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:8635: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -8647,12 +8932,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8651: checking for $ac_func" >&5
+echo "configure:8936: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8656 "configure"
+#line 8941 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8675,7 +8960,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8702,7 +8987,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -8710,12 +8995,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8714: checking for $ac_func" >&5
+echo "configure:8999: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8719 "configure"
+#line 9004 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8738,7 +9023,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8766,7 +9051,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:8770: checking for ISO C99 wchar_t support" >&5
+echo "configure:9055: 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
@@ -8778,17 +9063,17 @@ echo "configure:8770: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:8782: checking for iconv.h" >&5
+echo "configure:9067: 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
-#line 8787 "configure"
+#line 9072 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8792: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9077: \"$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*
@@ -8812,17 +9097,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:8816: checking for langinfo.h" >&5
+echo "configure:9101: 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
-#line 8821 "configure"
+#line 9106 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8826: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9111: \"$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*
@@ -8846,7 +9131,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:8850: checking for iconv in -liconv" >&5
+echo "configure:9135: 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
@@ -8854,7 +9139,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 8858 "configure"
+#line 9143 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -8865,7 +9150,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:8869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9154: \"$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
@@ -8891,12 +9176,12 @@ fi
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:8895: checking for $ac_func" >&5
+echo "configure:9180: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 8900 "configure"
+#line 9185 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -8919,7 +9204,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:8923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -8949,7 +9234,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:8953: checking for XPG2 wchar_t support" >&5
+echo "configure:9238: 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
@@ -8959,21 +9244,27 @@ echo "configure:8953: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:8964: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:9258: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
os_include_dir="os/mingw32"
;;
@@ -9033,12 +9324,12 @@ EOF
# 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:9037: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:9328: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 9042 "configure"
+#line 9333 "configure"
#include "confdefs.h"
int main(void)
@@ -9049,7 +9340,7 @@ else
}
EOF
-if { (eval echo configure:9053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:9344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -9074,7 +9365,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -9083,7 +9374,7 @@ fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:9087: checking for main in -lm" >&5
+echo "configure:9378: 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
@@ -9091,14 +9382,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 9095 "configure"
+#line 9386 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:9102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9393: \"$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
@@ -9128,12 +9419,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9132: checking for $ac_func" >&5
+echo "configure:9423: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9137 "configure"
+#line 9428 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9156,7 +9447,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9185,12 +9476,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9189: checking for $ac_func" >&5
+echo "configure:9480: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9194 "configure"
+#line 9485 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9213,7 +9504,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9241,12 +9532,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9245: checking for $ac_func" >&5
+echo "configure:9536: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9250 "configure"
+#line 9541 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9269,7 +9560,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9299,12 +9590,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9303: checking for $ac_func" >&5
+echo "configure:9594: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9308 "configure"
+#line 9599 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9327,7 +9618,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9354,21 +9645,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:9363: checking for mbstate_t" >&5
+echo "configure:9667: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 9365 "configure"
+#line 9669 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:9372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9676: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -9390,17 +9694,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9394: checking for $ac_hdr" >&5
+echo "configure:9698: 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
-#line 9399 "configure"
+#line 9703 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9708: \"$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*
@@ -9431,17 +9735,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9435: checking for $ac_hdr" >&5
+echo "configure:9739: 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
-#line 9440 "configure"
+#line 9744 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9445: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9749: \"$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*
@@ -9474,16 +9778,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:9478: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:9782: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 9480 "configure"
+#line 9784 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:9487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9791: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -9496,9 +9800,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:9500: checking for WEOF" >&5
+echo "configure:9804: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 9502 "configure"
+#line 9806 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -9507,7 +9811,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:9511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9815: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -9523,12 +9827,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9527: checking for $ac_func" >&5
+echo "configure:9831: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9532 "configure"
+#line 9836 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9551,7 +9855,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9578,7 +9882,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -9586,12 +9890,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9590: checking for $ac_func" >&5
+echo "configure:9894: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9595 "configure"
+#line 9899 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9614,7 +9918,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9642,7 +9946,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:9646: checking for ISO C99 wchar_t support" >&5
+echo "configure:9950: 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
@@ -9654,17 +9958,17 @@ echo "configure:9646: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:9658: checking for iconv.h" >&5
+echo "configure:9962: 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
-#line 9663 "configure"
+#line 9967 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9668: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9972: \"$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*
@@ -9688,17 +9992,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:9692: checking for langinfo.h" >&5
+echo "configure:9996: 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
-#line 9697 "configure"
+#line 10001 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10006: \"$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*
@@ -9722,7 +10026,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:9726: checking for iconv in -liconv" >&5
+echo "configure:10030: 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
@@ -9730,7 +10034,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 9734 "configure"
+#line 10038 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -9741,7 +10045,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:9745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10049: \"$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
@@ -9767,12 +10071,12 @@ fi
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:9771: checking for $ac_func" >&5
+echo "configure:10075: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9776 "configure"
+#line 10080 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -9795,7 +10099,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:9799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10103: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -9825,7 +10129,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:9829: checking for XPG2 wchar_t support" >&5
+echo "configure:10133: 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
@@ -9835,21 +10139,27 @@ echo "configure:9829: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:9840: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:10153: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
os_include_dir="os/qnx/qnx6.1"
cat >> confdefs.h <<\EOF
@@ -9910,6 +10220,10 @@ EOF
;;
esac
+if test x"$with_newlib" = "xyes"; then
+ os_include_dir="os/newlib"
+fi
+
case "$target" in
*-mingw32*)
;;
@@ -10336,7 +10650,7 @@ else
# We are being configured natively. We can do more elaborate tests
# that include AC_TRY_COMPILE now, as the linker is assumed to be
# working.
- GLIBCPP_IS_CROSS_COMPILING=0
+ GLIBCPP_IS_CROSS_COMPILING=false
CANADIAN=no
# Check for available headers.
@@ -10345,17 +10659,17 @@ else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10349: checking for $ac_hdr" >&5
+echo "configure:10663: 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
-#line 10354 "configure"
+#line 10668 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10673: \"$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*
@@ -10406,10 +10720,10 @@ cross_compiling=$ac_cv_prog_cxx_cross
# Check for -ffunction-sections -fdata-sections
echo $ac_n "checking for g++ that supports -ffunction-sections -fdata-sections""... $ac_c" 1>&6
-echo "configure:10410: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
+echo "configure:10724: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
cat > conftest.$ac_ext <<EOF
-#line 10413 "configure"
+#line 10727 "configure"
#include "confdefs.h"
int main() {
@@ -10417,7 +10731,7 @@ int foo;
; return 0; }
EOF
-if { (eval echo configure:10421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10735: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_fdsections=yes
else
@@ -10433,8 +10747,7 @@ rm -f conftest*
# this is the suspicious part
CXXFLAGS=''
fi
- if test x"$ac_fdsections" = x"yes" &&
- test x"$enable_debug" = x"no"; then
+ if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
echo "$ac_t""$ac_fdsections" 1>&6
@@ -10499,12 +10812,12 @@ cross_compiling=$ac_cv_prog_cc_cross
# 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:10503: checking for ld that supports -Wl,--gc-sections" >&5
+echo "configure:10816: checking for ld that supports -Wl,--gc-sections" >&5
if test "$cross_compiling" = yes; then
ac_sectionLDflags=yes
else
cat > conftest.$ac_ext <<EOF
-#line 10508 "configure"
+#line 10821 "configure"
#include "confdefs.h"
int main(void)
@@ -10515,7 +10828,7 @@ else
}
EOF
-if { (eval echo configure:10519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_sectionLDflags=yes
else
@@ -10540,7 +10853,7 @@ fi
fi
# Set linker optimization flags.
- if test x"$with_gnu_ld" = x"yes" && test x"$enable_debug" = x"no"; then
+ if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
@@ -10550,7 +10863,7 @@ fi
echo $ac_n "checking for __builtin_abs declaration""... $ac_c" 1>&6
-echo "configure:10554: checking for __builtin_abs declaration" >&5
+echo "configure:10867: 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
@@ -10565,14 +10878,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10569 "configure"
+#line 10882 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_abs(0);
; return 0; }
EOF
-if { (eval echo configure:10576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_abs_use=yes
else
@@ -10596,21 +10909,21 @@ fi
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:10600: checking for __builtin_abs linkage" >&5
+echo "configure:10913: 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 <<EOF
-#line 10607 "configure"
+#line 10920 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_abs(0);
; return 0; }
EOF
-if { (eval echo configure:10614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10927: \"$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
@@ -10636,7 +10949,7 @@ EOF
echo $ac_n "checking for __builtin_fabsf declaration""... $ac_c" 1>&6
-echo "configure:10640: checking for __builtin_fabsf declaration" >&5
+echo "configure:10953: 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
@@ -10651,14 +10964,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10655 "configure"
+#line 10968 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:10662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsf_use=yes
else
@@ -10682,21 +10995,21 @@ fi
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:10686: checking for __builtin_fabsf linkage" >&5
+echo "configure:10999: 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 <<EOF
-#line 10693 "configure"
+#line 11006 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:10700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11013: \"$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
@@ -10722,7 +11035,7 @@ EOF
echo $ac_n "checking for __builtin_fabs declaration""... $ac_c" 1>&6
-echo "configure:10726: checking for __builtin_fabs declaration" >&5
+echo "configure:11039: 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
@@ -10737,14 +11050,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10741 "configure"
+#line 11054 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabs(0);
; return 0; }
EOF
-if { (eval echo configure:10748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabs_use=yes
else
@@ -10768,21 +11081,21 @@ fi
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:10772: checking for __builtin_fabs linkage" >&5
+echo "configure:11085: 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 <<EOF
-#line 10779 "configure"
+#line 11092 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabs(0);
; return 0; }
EOF
-if { (eval echo configure:10786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11099: \"$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
@@ -10808,7 +11121,7 @@ EOF
echo $ac_n "checking for __builtin_fabsl declaration""... $ac_c" 1>&6
-echo "configure:10812: checking for __builtin_fabsl declaration" >&5
+echo "configure:11125: 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
@@ -10823,14 +11136,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10827 "configure"
+#line 11140 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:10834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_fabsl_use=yes
else
@@ -10854,21 +11167,21 @@ fi
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:10858: checking for __builtin_fabsl linkage" >&5
+echo "configure:11171: 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 <<EOF
-#line 10865 "configure"
+#line 11178 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:10872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11185: \"$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
@@ -10894,7 +11207,7 @@ EOF
echo $ac_n "checking for __builtin_labs declaration""... $ac_c" 1>&6
-echo "configure:10898: checking for __builtin_labs declaration" >&5
+echo "configure:11211: 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
@@ -10909,14 +11222,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 10913 "configure"
+#line 11226 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_labs(0);
; return 0; }
EOF
-if { (eval echo configure:10920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11233: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_labs_use=yes
else
@@ -10940,21 +11253,21 @@ fi
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:10944: checking for __builtin_labs linkage" >&5
+echo "configure:11257: 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 <<EOF
-#line 10951 "configure"
+#line 11264 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_labs(0);
; return 0; }
EOF
-if { (eval echo configure:10958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11271: \"$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
@@ -10981,7 +11294,7 @@ EOF
echo $ac_n "checking for __builtin_sqrtf declaration""... $ac_c" 1>&6
-echo "configure:10985: checking for __builtin_sqrtf declaration" >&5
+echo "configure:11298: 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
@@ -10996,14 +11309,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11000 "configure"
+#line 11313 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:11007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtf_use=yes
else
@@ -11027,21 +11340,21 @@ fi
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:11031: checking for __builtin_sqrtf linkage" >&5
+echo "configure:11344: 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 <<EOF
-#line 11038 "configure"
+#line 11351 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:11045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11358: \"$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
@@ -11067,7 +11380,7 @@ EOF
echo $ac_n "checking for __builtin_sqrt declaration""... $ac_c" 1>&6
-echo "configure:11071: checking for __builtin_sqrt declaration" >&5
+echo "configure:11384: 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
@@ -11082,14 +11395,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11086 "configure"
+#line 11399 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrt(0);
; return 0; }
EOF
-if { (eval echo configure:11093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrt_use=yes
else
@@ -11113,21 +11426,21 @@ fi
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:11117: checking for __builtin_sqrt linkage" >&5
+echo "configure:11430: 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 <<EOF
-#line 11124 "configure"
+#line 11437 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrt(0);
; return 0; }
EOF
-if { (eval echo configure:11131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11444: \"$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
@@ -11153,7 +11466,7 @@ EOF
echo $ac_n "checking for __builtin_sqrtl declaration""... $ac_c" 1>&6
-echo "configure:11157: checking for __builtin_sqrtl declaration" >&5
+echo "configure:11470: 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
@@ -11168,14 +11481,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11172 "configure"
+#line 11485 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:11179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sqrtl_use=yes
else
@@ -11199,21 +11512,21 @@ fi
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:11203: checking for __builtin_sqrtl linkage" >&5
+echo "configure:11516: 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 <<EOF
-#line 11210 "configure"
+#line 11523 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:11217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11530: \"$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
@@ -11240,7 +11553,7 @@ EOF
echo $ac_n "checking for __builtin_sinf declaration""... $ac_c" 1>&6
-echo "configure:11244: checking for __builtin_sinf declaration" >&5
+echo "configure:11557: 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
@@ -11255,14 +11568,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11259 "configure"
+#line 11572 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinf(0);
; return 0; }
EOF
-if { (eval echo configure:11266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinf_use=yes
else
@@ -11286,21 +11599,21 @@ fi
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:11290: checking for __builtin_sinf linkage" >&5
+echo "configure:11603: 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 <<EOF
-#line 11297 "configure"
+#line 11610 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinf(0);
; return 0; }
EOF
-if { (eval echo configure:11304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11617: \"$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
@@ -11326,7 +11639,7 @@ EOF
echo $ac_n "checking for __builtin_sin declaration""... $ac_c" 1>&6
-echo "configure:11330: checking for __builtin_sin declaration" >&5
+echo "configure:11643: 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
@@ -11341,14 +11654,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11345 "configure"
+#line 11658 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sin(0);
; return 0; }
EOF
-if { (eval echo configure:11352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11665: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sin_use=yes
else
@@ -11372,21 +11685,21 @@ fi
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:11376: checking for __builtin_sin linkage" >&5
+echo "configure:11689: 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 <<EOF
-#line 11383 "configure"
+#line 11696 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sin(0);
; return 0; }
EOF
-if { (eval echo configure:11390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11703: \"$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
@@ -11412,7 +11725,7 @@ EOF
echo $ac_n "checking for __builtin_sinl declaration""... $ac_c" 1>&6
-echo "configure:11416: checking for __builtin_sinl declaration" >&5
+echo "configure:11729: 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
@@ -11427,14 +11740,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11431 "configure"
+#line 11744 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinl(0);
; return 0; }
EOF
-if { (eval echo configure:11438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_sinl_use=yes
else
@@ -11458,21 +11771,21 @@ fi
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:11462: checking for __builtin_sinl linkage" >&5
+echo "configure:11775: 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 <<EOF
-#line 11469 "configure"
+#line 11782 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_sinl(0);
; return 0; }
EOF
-if { (eval echo configure:11476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11789: \"$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
@@ -11499,7 +11812,7 @@ EOF
echo $ac_n "checking for __builtin_cosf declaration""... $ac_c" 1>&6
-echo "configure:11503: checking for __builtin_cosf declaration" >&5
+echo "configure:11816: 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
@@ -11514,14 +11827,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11518 "configure"
+#line 11831 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosf(0);
; return 0; }
EOF
-if { (eval echo configure:11525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosf_use=yes
else
@@ -11545,21 +11858,21 @@ fi
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:11549: checking for __builtin_cosf linkage" >&5
+echo "configure:11862: 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 <<EOF
-#line 11556 "configure"
+#line 11869 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosf(0);
; return 0; }
EOF
-if { (eval echo configure:11563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11876: \"$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
@@ -11585,7 +11898,7 @@ EOF
echo $ac_n "checking for __builtin_cos declaration""... $ac_c" 1>&6
-echo "configure:11589: checking for __builtin_cos declaration" >&5
+echo "configure:11902: 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
@@ -11600,14 +11913,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11604 "configure"
+#line 11917 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cos(0);
; return 0; }
EOF
-if { (eval echo configure:11611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cos_use=yes
else
@@ -11631,21 +11944,21 @@ fi
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:11635: checking for __builtin_cos linkage" >&5
+echo "configure:11948: 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 <<EOF
-#line 11642 "configure"
+#line 11955 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cos(0);
; return 0; }
EOF
-if { (eval echo configure:11649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11962: \"$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
@@ -11671,7 +11984,7 @@ EOF
echo $ac_n "checking for __builtin_cosl declaration""... $ac_c" 1>&6
-echo "configure:11675: checking for __builtin_cosl declaration" >&5
+echo "configure:11988: 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
@@ -11686,14 +11999,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11690 "configure"
+#line 12003 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosl(0);
; return 0; }
EOF
-if { (eval echo configure:11697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func___builtin_cosl_use=yes
else
@@ -11717,21 +12030,21 @@ fi
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:11721: checking for __builtin_cosl linkage" >&5
+echo "configure:12034: 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 <<EOF
-#line 11728 "configure"
+#line 12041 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
__builtin_cosl(0);
; return 0; }
EOF
-if { (eval echo configure:11735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12048: \"$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
@@ -11819,10 +12132,10 @@ EOF
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:11826: checking for sin in -lm" >&5
+echo "configure:12139: 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
@@ -11830,7 +12143,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 11834 "configure"
+#line 12147 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -11841,7 +12154,7 @@ int main() {
sin()
; return 0; }
EOF
-if { (eval echo configure:11845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12158: \"$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
@@ -11867,7 +12180,7 @@ fi
echo $ac_n "checking for isinf declaration""... $ac_c" 1>&6
-echo "configure:11871: checking for isinf declaration" >&5
+echo "configure:12184: 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
@@ -11882,7 +12195,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11886 "configure"
+#line 12199 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -11893,7 +12206,7 @@ int main() {
isinf(0);
; return 0; }
EOF
-if { (eval echo configure:11897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinf_use=yes
else
@@ -11920,12 +12233,12 @@ fi
for ac_func in isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11924: checking for $ac_func" >&5
+echo "configure:12237: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11929 "configure"
+#line 12242 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -11948,7 +12261,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:11952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -11975,7 +12288,7 @@ done
else
echo $ac_n "checking for _isinf declaration""... $ac_c" 1>&6
-echo "configure:11979: checking for _isinf declaration" >&5
+echo "configure:12292: 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
@@ -11990,7 +12303,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 11994 "configure"
+#line 12307 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12001,7 +12314,7 @@ int main() {
_isinf(0);
; return 0; }
EOF
-if { (eval echo configure:12005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12318: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinf_use=yes
else
@@ -12028,12 +12341,12 @@ fi
for ac_func in _isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12032: checking for $ac_func" >&5
+echo "configure:12345: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12037 "configure"
+#line 12350 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12056,7 +12369,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12086,7 +12399,7 @@ done
echo $ac_n "checking for isnan declaration""... $ac_c" 1>&6
-echo "configure:12090: checking for isnan declaration" >&5
+echo "configure:12403: 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
@@ -12101,7 +12414,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12105 "configure"
+#line 12418 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12112,7 +12425,7 @@ int main() {
isnan(0);
; return 0; }
EOF
-if { (eval echo configure:12116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnan_use=yes
else
@@ -12139,12 +12452,12 @@ fi
for ac_func in isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12143: checking for $ac_func" >&5
+echo "configure:12456: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12148 "configure"
+#line 12461 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12167,7 +12480,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12194,7 +12507,7 @@ done
else
echo $ac_n "checking for _isnan declaration""... $ac_c" 1>&6
-echo "configure:12198: checking for _isnan declaration" >&5
+echo "configure:12511: 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
@@ -12209,7 +12522,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12213 "configure"
+#line 12526 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12220,7 +12533,7 @@ int main() {
_isnan(0);
; return 0; }
EOF
-if { (eval echo configure:12224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnan_use=yes
else
@@ -12247,12 +12560,12 @@ fi
for ac_func in _isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12251: checking for $ac_func" >&5
+echo "configure:12564: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12256 "configure"
+#line 12569 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12275,7 +12588,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12305,7 +12618,7 @@ done
echo $ac_n "checking for finite declaration""... $ac_c" 1>&6
-echo "configure:12309: checking for finite declaration" >&5
+echo "configure:12622: 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
@@ -12320,7 +12633,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12324 "configure"
+#line 12637 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12331,7 +12644,7 @@ int main() {
finite(0);
; return 0; }
EOF
-if { (eval echo configure:12335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finite_use=yes
else
@@ -12358,12 +12671,12 @@ fi
for ac_func in finite
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12362: checking for $ac_func" >&5
+echo "configure:12675: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12367 "configure"
+#line 12680 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12386,7 +12699,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12413,7 +12726,7 @@ done
else
echo $ac_n "checking for _finite declaration""... $ac_c" 1>&6
-echo "configure:12417: checking for _finite declaration" >&5
+echo "configure:12730: 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
@@ -12428,7 +12741,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12432 "configure"
+#line 12745 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12439,7 +12752,7 @@ int main() {
_finite(0);
; return 0; }
EOF
-if { (eval echo configure:12443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finite_use=yes
else
@@ -12466,12 +12779,12 @@ fi
for ac_func in _finite
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12470: checking for $ac_func" >&5
+echo "configure:12783: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12475 "configure"
+#line 12788 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12494,7 +12807,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12524,7 +12837,7 @@ done
echo $ac_n "checking for copysign declaration""... $ac_c" 1>&6
-echo "configure:12528: checking for copysign declaration" >&5
+echo "configure:12841: 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
@@ -12539,14 +12852,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12543 "configure"
+#line 12856 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
copysign(0, 0);
; return 0; }
EOF
-if { (eval echo configure:12550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_copysign_use=yes
else
@@ -12573,12 +12886,12 @@ fi
for ac_func in copysign
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12577: checking for $ac_func" >&5
+echo "configure:12890: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12582 "configure"
+#line 12895 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12601,7 +12914,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12628,7 +12941,7 @@ done
else
echo $ac_n "checking for _copysign declaration""... $ac_c" 1>&6
-echo "configure:12632: checking for _copysign declaration" >&5
+echo "configure:12945: 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
@@ -12643,14 +12956,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12647 "configure"
+#line 12960 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_copysign(0, 0);
; return 0; }
EOF
-if { (eval echo configure:12654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__copysign_use=yes
else
@@ -12677,12 +12990,12 @@ fi
for ac_func in _copysign
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12681: checking for $ac_func" >&5
+echo "configure:12994: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12686 "configure"
+#line 12999 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12705,7 +13018,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12735,7 +13048,7 @@ done
echo $ac_n "checking for sincos declaration""... $ac_c" 1>&6
-echo "configure:12739: checking for sincos declaration" >&5
+echo "configure:13052: 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
@@ -12750,14 +13063,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12754 "configure"
+#line 13067 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincos(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:12761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincos_use=yes
else
@@ -12784,12 +13097,12 @@ fi
for ac_func in sincos
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12788: checking for $ac_func" >&5
+echo "configure:13101: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12793 "configure"
+#line 13106 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12812,7 +13125,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12839,7 +13152,7 @@ done
else
echo $ac_n "checking for _sincos declaration""... $ac_c" 1>&6
-echo "configure:12843: checking for _sincos declaration" >&5
+echo "configure:13156: 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
@@ -12854,14 +13167,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12858 "configure"
+#line 13171 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincos(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:12865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincos_use=yes
else
@@ -12888,12 +13201,12 @@ fi
for ac_func in _sincos
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12892: checking for $ac_func" >&5
+echo "configure:13205: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12897 "configure"
+#line 13210 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12916,7 +13229,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12946,7 +13259,7 @@ done
echo $ac_n "checking for fpclass declaration""... $ac_c" 1>&6
-echo "configure:12950: checking for fpclass declaration" >&5
+echo "configure:13263: 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
@@ -12961,7 +13274,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 12965 "configure"
+#line 13278 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -12972,7 +13285,7 @@ int main() {
fpclass(0);
; return 0; }
EOF
-if { (eval echo configure:12976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13289: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fpclass_use=yes
else
@@ -12999,12 +13312,12 @@ fi
for ac_func in fpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13003: checking for $ac_func" >&5
+echo "configure:13316: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13008 "configure"
+#line 13321 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13027,7 +13340,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13054,7 +13367,7 @@ done
else
echo $ac_n "checking for _fpclass declaration""... $ac_c" 1>&6
-echo "configure:13058: checking for _fpclass declaration" >&5
+echo "configure:13371: 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
@@ -13069,7 +13382,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13073 "configure"
+#line 13386 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13080,7 +13393,7 @@ int main() {
_fpclass(0);
; return 0; }
EOF
-if { (eval echo configure:13084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fpclass_use=yes
else
@@ -13107,12 +13420,12 @@ fi
for ac_func in _fpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13111: checking for $ac_func" >&5
+echo "configure:13424: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13116 "configure"
+#line 13429 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13135,7 +13448,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13165,7 +13478,7 @@ done
echo $ac_n "checking for qfpclass declaration""... $ac_c" 1>&6
-echo "configure:13169: checking for qfpclass declaration" >&5
+echo "configure:13482: 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
@@ -13180,7 +13493,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13184 "configure"
+#line 13497 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13191,7 +13504,7 @@ int main() {
qfpclass(0);
; return 0; }
EOF
-if { (eval echo configure:13195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_qfpclass_use=yes
else
@@ -13218,12 +13531,12 @@ fi
for ac_func in qfpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13222: checking for $ac_func" >&5
+echo "configure:13535: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13227 "configure"
+#line 13540 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13246,7 +13559,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13273,7 +13586,7 @@ done
else
echo $ac_n "checking for _qfpclass declaration""... $ac_c" 1>&6
-echo "configure:13277: checking for _qfpclass declaration" >&5
+echo "configure:13590: 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
@@ -13288,7 +13601,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13292 "configure"
+#line 13605 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13299,7 +13612,7 @@ int main() {
_qfpclass(0);
; return 0; }
EOF
-if { (eval echo configure:13303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13616: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__qfpclass_use=yes
else
@@ -13326,12 +13639,12 @@ fi
for ac_func in _qfpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13330: checking for $ac_func" >&5
+echo "configure:13643: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13335 "configure"
+#line 13648 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13354,7 +13667,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13384,7 +13697,7 @@ done
echo $ac_n "checking for hypot declaration""... $ac_c" 1>&6
-echo "configure:13388: checking for hypot declaration" >&5
+echo "configure:13701: 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
@@ -13399,14 +13712,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13403 "configure"
+#line 13716 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypot(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypot_use=yes
else
@@ -13433,12 +13746,12 @@ fi
for ac_func in hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13437: checking for $ac_func" >&5
+echo "configure:13750: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13442 "configure"
+#line 13755 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13461,7 +13774,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13465: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13488,7 +13801,7 @@ done
else
echo $ac_n "checking for _hypot declaration""... $ac_c" 1>&6
-echo "configure:13492: checking for _hypot declaration" >&5
+echo "configure:13805: 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
@@ -13503,14 +13816,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13507 "configure"
+#line 13820 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypot(0, 0);
; return 0; }
EOF
-if { (eval echo configure:13514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypot_use=yes
else
@@ -13537,12 +13850,12 @@ fi
for ac_func in _hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13541: checking for $ac_func" >&5
+echo "configure:13854: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13546 "configure"
+#line 13859 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13565,7 +13878,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13882: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13595,7 +13908,7 @@ done
echo $ac_n "checking for float trig functions""... $ac_c" 1>&6
-echo "configure:13599: checking for float trig functions" >&5
+echo "configure:13912: 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
@@ -13609,7 +13922,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13613 "configure"
+#line 13926 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -13618,7 +13931,7 @@ int main() {
coshf sinhf tanhf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:13622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:13935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_float_trig_use=yes
else
@@ -13644,12 +13957,12 @@ fi
coshf sinhf tanhf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13648: checking for $ac_func" >&5
+echo "configure:13961: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13653 "configure"
+#line 13966 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13672,7 +13985,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13700,7 +14013,7 @@ done
echo $ac_n "checking for float round functions""... $ac_c" 1>&6
-echo "configure:13704: checking for float round functions" >&5
+echo "configure:14017: 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
@@ -13714,14 +14027,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13718 "configure"
+#line 14031 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in ceilf floorf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:13725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14038: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_float_round_use=yes
else
@@ -13745,12 +14058,12 @@ fi
for ac_func in ceilf floorf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13749: checking for $ac_func" >&5
+echo "configure:14062: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13754 "configure"
+#line 14067 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13773,7 +14086,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13802,7 +14115,7 @@ done
echo $ac_n "checking for expf declaration""... $ac_c" 1>&6
-echo "configure:13806: checking for expf declaration" >&5
+echo "configure:14119: 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
@@ -13817,7 +14130,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13821 "configure"
+#line 14134 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13828,7 +14141,7 @@ int main() {
expf(0);
; return 0; }
EOF
-if { (eval echo configure:13832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_expf_use=yes
else
@@ -13855,12 +14168,12 @@ fi
for ac_func in expf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13859: checking for $ac_func" >&5
+echo "configure:14172: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13864 "configure"
+#line 14177 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13883,7 +14196,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -13910,7 +14223,7 @@ done
else
echo $ac_n "checking for _expf declaration""... $ac_c" 1>&6
-echo "configure:13914: checking for _expf declaration" >&5
+echo "configure:14227: 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
@@ -13925,7 +14238,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 13929 "configure"
+#line 14242 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -13936,7 +14249,7 @@ int main() {
_expf(0);
; return 0; }
EOF
-if { (eval echo configure:13940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__expf_use=yes
else
@@ -13963,12 +14276,12 @@ fi
for ac_func in _expf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13967: checking for $ac_func" >&5
+echo "configure:14280: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13972 "configure"
+#line 14285 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -13991,7 +14304,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:13995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14021,7 +14334,7 @@ done
echo $ac_n "checking for isnanf declaration""... $ac_c" 1>&6
-echo "configure:14025: checking for isnanf declaration" >&5
+echo "configure:14338: 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
@@ -14036,7 +14349,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14040 "configure"
+#line 14353 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14047,7 +14360,7 @@ int main() {
isnanf(0);
; return 0; }
EOF
-if { (eval echo configure:14051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnanf_use=yes
else
@@ -14074,12 +14387,12 @@ fi
for ac_func in isnanf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14078: checking for $ac_func" >&5
+echo "configure:14391: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14083 "configure"
+#line 14396 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14102,7 +14415,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14129,7 +14442,7 @@ done
else
echo $ac_n "checking for _isnanf declaration""... $ac_c" 1>&6
-echo "configure:14133: checking for _isnanf declaration" >&5
+echo "configure:14446: 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
@@ -14144,7 +14457,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14148 "configure"
+#line 14461 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14155,7 +14468,7 @@ int main() {
_isnanf(0);
; return 0; }
EOF
-if { (eval echo configure:14159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnanf_use=yes
else
@@ -14182,12 +14495,12 @@ fi
for ac_func in _isnanf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14186: checking for $ac_func" >&5
+echo "configure:14499: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14191 "configure"
+#line 14504 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14210,7 +14523,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14240,7 +14553,7 @@ done
echo $ac_n "checking for isinff declaration""... $ac_c" 1>&6
-echo "configure:14244: checking for isinff declaration" >&5
+echo "configure:14557: 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
@@ -14255,7 +14568,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14259 "configure"
+#line 14572 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14266,7 +14579,7 @@ int main() {
isinff(0);
; return 0; }
EOF
-if { (eval echo configure:14270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinff_use=yes
else
@@ -14293,12 +14606,12 @@ fi
for ac_func in isinff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14297: checking for $ac_func" >&5
+echo "configure:14610: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14302 "configure"
+#line 14615 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14321,7 +14634,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14348,7 +14661,7 @@ done
else
echo $ac_n "checking for _isinff declaration""... $ac_c" 1>&6
-echo "configure:14352: checking for _isinff declaration" >&5
+echo "configure:14665: 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
@@ -14363,7 +14676,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14367 "configure"
+#line 14680 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14374,7 +14687,7 @@ int main() {
_isinff(0);
; return 0; }
EOF
-if { (eval echo configure:14378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinff_use=yes
else
@@ -14401,12 +14714,12 @@ fi
for ac_func in _isinff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14405: checking for $ac_func" >&5
+echo "configure:14718: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14410 "configure"
+#line 14723 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14429,7 +14742,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14459,7 +14772,7 @@ done
echo $ac_n "checking for atan2f declaration""... $ac_c" 1>&6
-echo "configure:14463: checking for atan2f declaration" >&5
+echo "configure:14776: 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
@@ -14474,14 +14787,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14478 "configure"
+#line 14791 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
atan2f(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_atan2f_use=yes
else
@@ -14508,12 +14821,12 @@ fi
for ac_func in atan2f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14512: checking for $ac_func" >&5
+echo "configure:14825: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14517 "configure"
+#line 14830 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14536,7 +14849,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14563,7 +14876,7 @@ done
else
echo $ac_n "checking for _atan2f declaration""... $ac_c" 1>&6
-echo "configure:14567: checking for _atan2f declaration" >&5
+echo "configure:14880: 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
@@ -14578,14 +14891,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14582 "configure"
+#line 14895 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_atan2f(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__atan2f_use=yes
else
@@ -14612,12 +14925,12 @@ fi
for ac_func in _atan2f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14616: checking for $ac_func" >&5
+echo "configure:14929: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14621 "configure"
+#line 14934 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14640,7 +14953,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14670,7 +14983,7 @@ done
echo $ac_n "checking for fabsf declaration""... $ac_c" 1>&6
-echo "configure:14674: checking for fabsf declaration" >&5
+echo "configure:14987: 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
@@ -14685,7 +14998,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14689 "configure"
+#line 15002 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14696,7 +15009,7 @@ int main() {
fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:14700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fabsf_use=yes
else
@@ -14723,12 +15036,12 @@ fi
for ac_func in fabsf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14727: checking for $ac_func" >&5
+echo "configure:15040: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14732 "configure"
+#line 15045 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14751,7 +15064,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14778,7 +15091,7 @@ done
else
echo $ac_n "checking for _fabsf declaration""... $ac_c" 1>&6
-echo "configure:14782: checking for _fabsf declaration" >&5
+echo "configure:15095: 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
@@ -14793,7 +15106,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14797 "configure"
+#line 15110 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -14804,7 +15117,7 @@ int main() {
_fabsf(0);
; return 0; }
EOF
-if { (eval echo configure:14808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fabsf_use=yes
else
@@ -14831,12 +15144,12 @@ fi
for ac_func in _fabsf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14835: checking for $ac_func" >&5
+echo "configure:15148: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14840 "configure"
+#line 15153 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14859,7 +15172,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14889,7 +15202,7 @@ done
echo $ac_n "checking for fmodf declaration""... $ac_c" 1>&6
-echo "configure:14893: checking for fmodf declaration" >&5
+echo "configure:15206: 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
@@ -14904,14 +15217,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 14908 "configure"
+#line 15221 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fmodf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:14915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fmodf_use=yes
else
@@ -14938,12 +15251,12 @@ fi
for ac_func in fmodf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:14942: checking for $ac_func" >&5
+echo "configure:15255: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14947 "configure"
+#line 15260 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -14966,7 +15279,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:14970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -14993,7 +15306,7 @@ done
else
echo $ac_n "checking for _fmodf declaration""... $ac_c" 1>&6
-echo "configure:14997: checking for _fmodf declaration" >&5
+echo "configure:15310: 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
@@ -15008,14 +15321,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15012 "configure"
+#line 15325 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_fmodf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fmodf_use=yes
else
@@ -15042,12 +15355,12 @@ fi
for ac_func in _fmodf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15046: checking for $ac_func" >&5
+echo "configure:15359: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15051 "configure"
+#line 15364 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15070,7 +15383,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15100,7 +15413,7 @@ done
echo $ac_n "checking for frexpf declaration""... $ac_c" 1>&6
-echo "configure:15104: checking for frexpf declaration" >&5
+echo "configure:15417: 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
@@ -15115,14 +15428,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15119 "configure"
+#line 15432 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
frexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_frexpf_use=yes
else
@@ -15149,12 +15462,12 @@ fi
for ac_func in frexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15153: checking for $ac_func" >&5
+echo "configure:15466: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15158 "configure"
+#line 15471 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15177,7 +15490,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15204,7 +15517,7 @@ done
else
echo $ac_n "checking for _frexpf declaration""... $ac_c" 1>&6
-echo "configure:15208: checking for _frexpf declaration" >&5
+echo "configure:15521: 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
@@ -15219,14 +15532,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15223 "configure"
+#line 15536 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_frexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15230: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__frexpf_use=yes
else
@@ -15253,12 +15566,12 @@ fi
for ac_func in _frexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15257: checking for $ac_func" >&5
+echo "configure:15570: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15262 "configure"
+#line 15575 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15281,7 +15594,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15311,7 +15624,7 @@ done
echo $ac_n "checking for hypotf declaration""... $ac_c" 1>&6
-echo "configure:15315: checking for hypotf declaration" >&5
+echo "configure:15628: 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
@@ -15326,14 +15639,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15330 "configure"
+#line 15643 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypotf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypotf_use=yes
else
@@ -15360,12 +15673,12 @@ fi
for ac_func in hypotf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15364: checking for $ac_func" >&5
+echo "configure:15677: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15369 "configure"
+#line 15682 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15388,7 +15701,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15415,7 +15728,7 @@ done
else
echo $ac_n "checking for _hypotf declaration""... $ac_c" 1>&6
-echo "configure:15419: checking for _hypotf declaration" >&5
+echo "configure:15732: 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
@@ -15430,14 +15743,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15434 "configure"
+#line 15747 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypotf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypotf_use=yes
else
@@ -15464,12 +15777,12 @@ fi
for ac_func in _hypotf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15468: checking for $ac_func" >&5
+echo "configure:15781: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15473 "configure"
+#line 15786 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15492,7 +15805,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15522,7 +15835,7 @@ done
echo $ac_n "checking for ldexpf declaration""... $ac_c" 1>&6
-echo "configure:15526: checking for ldexpf declaration" >&5
+echo "configure:15839: 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
@@ -15537,14 +15850,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15541 "configure"
+#line 15854 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
ldexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15548: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15861: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_ldexpf_use=yes
else
@@ -15571,12 +15884,12 @@ fi
for ac_func in ldexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15575: checking for $ac_func" >&5
+echo "configure:15888: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15580 "configure"
+#line 15893 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15599,7 +15912,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15626,7 +15939,7 @@ done
else
echo $ac_n "checking for _ldexpf declaration""... $ac_c" 1>&6
-echo "configure:15630: checking for _ldexpf declaration" >&5
+echo "configure:15943: 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
@@ -15641,14 +15954,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15645 "configure"
+#line 15958 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_ldexpf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:15652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15965: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__ldexpf_use=yes
else
@@ -15675,12 +15988,12 @@ fi
for ac_func in _ldexpf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15679: checking for $ac_func" >&5
+echo "configure:15992: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15684 "configure"
+#line 15997 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15703,7 +16016,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15733,7 +16046,7 @@ done
echo $ac_n "checking for logf declaration""... $ac_c" 1>&6
-echo "configure:15737: checking for logf declaration" >&5
+echo "configure:16050: 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
@@ -15748,7 +16061,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15752 "configure"
+#line 16065 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15759,7 +16072,7 @@ int main() {
logf(0);
; return 0; }
EOF
-if { (eval echo configure:15763: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_logf_use=yes
else
@@ -15786,12 +16099,12 @@ fi
for ac_func in logf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15790: checking for $ac_func" >&5
+echo "configure:16103: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15795 "configure"
+#line 16108 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15814,7 +16127,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15841,7 +16154,7 @@ done
else
echo $ac_n "checking for _logf declaration""... $ac_c" 1>&6
-echo "configure:15845: checking for _logf declaration" >&5
+echo "configure:16158: 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
@@ -15856,7 +16169,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15860 "configure"
+#line 16173 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15867,7 +16180,7 @@ int main() {
_logf(0);
; return 0; }
EOF
-if { (eval echo configure:15871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__logf_use=yes
else
@@ -15894,12 +16207,12 @@ fi
for ac_func in _logf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15898: checking for $ac_func" >&5
+echo "configure:16211: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15903 "configure"
+#line 16216 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -15922,7 +16235,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:15926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -15952,7 +16265,7 @@ done
echo $ac_n "checking for log10f declaration""... $ac_c" 1>&6
-echo "configure:15956: checking for log10f declaration" >&5
+echo "configure:16269: 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
@@ -15967,7 +16280,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 15971 "configure"
+#line 16284 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -15978,7 +16291,7 @@ int main() {
log10f(0);
; return 0; }
EOF
-if { (eval echo configure:15982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_log10f_use=yes
else
@@ -16005,12 +16318,12 @@ fi
for ac_func in log10f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16009: checking for $ac_func" >&5
+echo "configure:16322: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16014 "configure"
+#line 16327 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16033,7 +16346,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16060,7 +16373,7 @@ done
else
echo $ac_n "checking for _log10f declaration""... $ac_c" 1>&6
-echo "configure:16064: checking for _log10f declaration" >&5
+echo "configure:16377: 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
@@ -16075,7 +16388,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16079 "configure"
+#line 16392 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16086,7 +16399,7 @@ int main() {
_log10f(0);
; return 0; }
EOF
-if { (eval echo configure:16090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16403: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__log10f_use=yes
else
@@ -16113,12 +16426,12 @@ fi
for ac_func in _log10f
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16117: checking for $ac_func" >&5
+echo "configure:16430: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16122 "configure"
+#line 16435 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16141,7 +16454,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16171,7 +16484,7 @@ done
echo $ac_n "checking for modff declaration""... $ac_c" 1>&6
-echo "configure:16175: checking for modff declaration" >&5
+echo "configure:16488: 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
@@ -16186,14 +16499,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16190 "configure"
+#line 16503 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
modff(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16197: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_modff_use=yes
else
@@ -16220,12 +16533,12 @@ fi
for ac_func in modff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16224: checking for $ac_func" >&5
+echo "configure:16537: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16229 "configure"
+#line 16542 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16248,7 +16561,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16275,7 +16588,7 @@ done
else
echo $ac_n "checking for _modff declaration""... $ac_c" 1>&6
-echo "configure:16279: checking for _modff declaration" >&5
+echo "configure:16592: 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
@@ -16290,14 +16603,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16294 "configure"
+#line 16607 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_modff(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16614: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__modff_use=yes
else
@@ -16324,12 +16637,12 @@ fi
for ac_func in _modff
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16328: checking for $ac_func" >&5
+echo "configure:16641: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16333 "configure"
+#line 16646 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16352,7 +16665,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16382,7 +16695,7 @@ done
echo $ac_n "checking for powf declaration""... $ac_c" 1>&6
-echo "configure:16386: checking for powf declaration" >&5
+echo "configure:16699: 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
@@ -16397,14 +16710,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16401 "configure"
+#line 16714 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
powf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16408: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_powf_use=yes
else
@@ -16431,12 +16744,12 @@ fi
for ac_func in powf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16435: checking for $ac_func" >&5
+echo "configure:16748: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16440 "configure"
+#line 16753 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16459,7 +16772,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16486,7 +16799,7 @@ done
else
echo $ac_n "checking for _powf declaration""... $ac_c" 1>&6
-echo "configure:16490: checking for _powf declaration" >&5
+echo "configure:16803: 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
@@ -16501,14 +16814,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16505 "configure"
+#line 16818 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_powf(0, 0);
; return 0; }
EOF
-if { (eval echo configure:16512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__powf_use=yes
else
@@ -16535,12 +16848,12 @@ fi
for ac_func in _powf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16539: checking for $ac_func" >&5
+echo "configure:16852: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16544 "configure"
+#line 16857 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16563,7 +16876,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16593,7 +16906,7 @@ done
echo $ac_n "checking for sqrtf declaration""... $ac_c" 1>&6
-echo "configure:16597: checking for sqrtf declaration" >&5
+echo "configure:16910: 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
@@ -16608,7 +16921,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16612 "configure"
+#line 16925 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16619,7 +16932,7 @@ int main() {
sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:16623: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sqrtf_use=yes
else
@@ -16646,12 +16959,12 @@ fi
for ac_func in sqrtf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16650: checking for $ac_func" >&5
+echo "configure:16963: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16655 "configure"
+#line 16968 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16674,7 +16987,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16701,7 +17014,7 @@ done
else
echo $ac_n "checking for _sqrtf declaration""... $ac_c" 1>&6
-echo "configure:16705: checking for _sqrtf declaration" >&5
+echo "configure:17018: 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
@@ -16716,7 +17029,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16720 "configure"
+#line 17033 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -16727,7 +17040,7 @@ int main() {
_sqrtf(0);
; return 0; }
EOF
-if { (eval echo configure:16731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sqrtf_use=yes
else
@@ -16754,12 +17067,12 @@ fi
for ac_func in _sqrtf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16758: checking for $ac_func" >&5
+echo "configure:17071: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16763 "configure"
+#line 17076 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16782,7 +17095,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16812,7 +17125,7 @@ done
echo $ac_n "checking for sincosf declaration""... $ac_c" 1>&6
-echo "configure:16816: checking for sincosf declaration" >&5
+echo "configure:17129: 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
@@ -16827,14 +17140,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16831 "configure"
+#line 17144 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincosf(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:16838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincosf_use=yes
else
@@ -16861,12 +17174,12 @@ fi
for ac_func in sincosf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16865: checking for $ac_func" >&5
+echo "configure:17178: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16870 "configure"
+#line 17183 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16889,7 +17202,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -16916,7 +17229,7 @@ done
else
echo $ac_n "checking for _sincosf declaration""... $ac_c" 1>&6
-echo "configure:16920: checking for _sincosf declaration" >&5
+echo "configure:17233: 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
@@ -16931,14 +17244,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 16935 "configure"
+#line 17248 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincosf(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:16942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincosf_use=yes
else
@@ -16965,12 +17278,12 @@ fi
for ac_func in _sincosf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16969: checking for $ac_func" >&5
+echo "configure:17282: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16974 "configure"
+#line 17287 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -16993,7 +17306,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:16997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17023,7 +17336,7 @@ done
echo $ac_n "checking for finitef declaration""... $ac_c" 1>&6
-echo "configure:17027: checking for finitef declaration" >&5
+echo "configure:17340: 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
@@ -17038,7 +17351,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17042 "configure"
+#line 17355 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17049,7 +17362,7 @@ int main() {
finitef(0);
; return 0; }
EOF
-if { (eval echo configure:17053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finitef_use=yes
else
@@ -17076,12 +17389,12 @@ fi
for ac_func in finitef
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17080: checking for $ac_func" >&5
+echo "configure:17393: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17085 "configure"
+#line 17398 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17104,7 +17417,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17131,7 +17444,7 @@ done
else
echo $ac_n "checking for _finitef declaration""... $ac_c" 1>&6
-echo "configure:17135: checking for _finitef declaration" >&5
+echo "configure:17448: 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
@@ -17146,7 +17459,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17150 "configure"
+#line 17463 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17157,7 +17470,7 @@ int main() {
_finitef(0);
; return 0; }
EOF
-if { (eval echo configure:17161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finitef_use=yes
else
@@ -17184,12 +17497,12 @@ fi
for ac_func in _finitef
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17188: checking for $ac_func" >&5
+echo "configure:17501: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17193 "configure"
+#line 17506 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17212,7 +17525,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17242,7 +17555,7 @@ done
echo $ac_n "checking for long double trig functions""... $ac_c" 1>&6
-echo "configure:17246: checking for long double trig functions" >&5
+echo "configure:17559: 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
@@ -17256,7 +17569,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17260 "configure"
+#line 17573 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -17265,7 +17578,7 @@ int main() {
coshl sinhl tanhl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:17269: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_long_double_trig_use=yes
else
@@ -17291,12 +17604,12 @@ fi
coshl sinhl tanhl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17295: checking for $ac_func" >&5
+echo "configure:17608: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17300 "configure"
+#line 17613 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17319,7 +17632,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17347,7 +17660,7 @@ done
echo $ac_n "checking for long double round functions""... $ac_c" 1>&6
-echo "configure:17351: checking for long double round functions" >&5
+echo "configure:17664: 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
@@ -17361,14 +17674,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17365 "configure"
+#line 17678 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in ceill floorl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:17372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_long_double_round_use=yes
else
@@ -17392,12 +17705,12 @@ fi
for ac_func in ceill floorl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17396: checking for $ac_func" >&5
+echo "configure:17709: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17401 "configure"
+#line 17714 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17420,7 +17733,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17449,7 +17762,7 @@ done
echo $ac_n "checking for isnanl declaration""... $ac_c" 1>&6
-echo "configure:17453: checking for isnanl declaration" >&5
+echo "configure:17766: 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
@@ -17464,7 +17777,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17468 "configure"
+#line 17781 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17475,7 +17788,7 @@ int main() {
isnanl(0);
; return 0; }
EOF
-if { (eval echo configure:17479: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isnanl_use=yes
else
@@ -17502,12 +17815,12 @@ fi
for ac_func in isnanl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17506: checking for $ac_func" >&5
+echo "configure:17819: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17511 "configure"
+#line 17824 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17530,7 +17843,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17557,7 +17870,7 @@ done
else
echo $ac_n "checking for _isnanl declaration""... $ac_c" 1>&6
-echo "configure:17561: checking for _isnanl declaration" >&5
+echo "configure:17874: 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
@@ -17572,7 +17885,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17576 "configure"
+#line 17889 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17583,7 +17896,7 @@ int main() {
_isnanl(0);
; return 0; }
EOF
-if { (eval echo configure:17587: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isnanl_use=yes
else
@@ -17610,12 +17923,12 @@ fi
for ac_func in _isnanl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17614: checking for $ac_func" >&5
+echo "configure:17927: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17619 "configure"
+#line 17932 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17638,7 +17951,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17668,7 +17981,7 @@ done
echo $ac_n "checking for isinfl declaration""... $ac_c" 1>&6
-echo "configure:17672: checking for isinfl declaration" >&5
+echo "configure:17985: 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
@@ -17683,7 +17996,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17687 "configure"
+#line 18000 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17694,7 +18007,7 @@ int main() {
isinfl(0);
; return 0; }
EOF
-if { (eval echo configure:17698: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isinfl_use=yes
else
@@ -17721,12 +18034,12 @@ fi
for ac_func in isinfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17725: checking for $ac_func" >&5
+echo "configure:18038: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17730 "configure"
+#line 18043 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17749,7 +18062,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17776,7 +18089,7 @@ done
else
echo $ac_n "checking for _isinfl declaration""... $ac_c" 1>&6
-echo "configure:17780: checking for _isinfl declaration" >&5
+echo "configure:18093: 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
@@ -17791,7 +18104,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17795 "configure"
+#line 18108 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -17802,7 +18115,7 @@ int main() {
_isinfl(0);
; return 0; }
EOF
-if { (eval echo configure:17806: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__isinfl_use=yes
else
@@ -17829,12 +18142,12 @@ fi
for ac_func in _isinfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17833: checking for $ac_func" >&5
+echo "configure:18146: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17838 "configure"
+#line 18151 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17857,7 +18170,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17887,7 +18200,7 @@ done
echo $ac_n "checking for copysignl declaration""... $ac_c" 1>&6
-echo "configure:17891: checking for copysignl declaration" >&5
+echo "configure:18204: 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
@@ -17902,14 +18215,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 17906 "configure"
+#line 18219 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
copysignl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:17913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18226: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_copysignl_use=yes
else
@@ -17936,12 +18249,12 @@ fi
for ac_func in copysignl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17940: checking for $ac_func" >&5
+echo "configure:18253: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17945 "configure"
+#line 18258 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -17964,7 +18277,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:17968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -17991,7 +18304,7 @@ done
else
echo $ac_n "checking for _copysignl declaration""... $ac_c" 1>&6
-echo "configure:17995: checking for _copysignl declaration" >&5
+echo "configure:18308: 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
@@ -18006,14 +18319,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18010 "configure"
+#line 18323 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_copysignl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__copysignl_use=yes
else
@@ -18040,12 +18353,12 @@ fi
for ac_func in _copysignl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18044: checking for $ac_func" >&5
+echo "configure:18357: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18049 "configure"
+#line 18362 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18068,7 +18381,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18098,7 +18411,7 @@ done
echo $ac_n "checking for atan2l declaration""... $ac_c" 1>&6
-echo "configure:18102: checking for atan2l declaration" >&5
+echo "configure:18415: 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
@@ -18113,14 +18426,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18117 "configure"
+#line 18430 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
atan2l(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18124: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_atan2l_use=yes
else
@@ -18147,12 +18460,12 @@ fi
for ac_func in atan2l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18151: checking for $ac_func" >&5
+echo "configure:18464: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18156 "configure"
+#line 18469 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18175,7 +18488,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18202,7 +18515,7 @@ done
else
echo $ac_n "checking for _atan2l declaration""... $ac_c" 1>&6
-echo "configure:18206: checking for _atan2l declaration" >&5
+echo "configure:18519: 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
@@ -18217,14 +18530,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18221 "configure"
+#line 18534 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_atan2l(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__atan2l_use=yes
else
@@ -18251,12 +18564,12 @@ fi
for ac_func in _atan2l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18255: checking for $ac_func" >&5
+echo "configure:18568: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18260 "configure"
+#line 18573 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18279,7 +18592,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18309,7 +18622,7 @@ done
echo $ac_n "checking for expl declaration""... $ac_c" 1>&6
-echo "configure:18313: checking for expl declaration" >&5
+echo "configure:18626: 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
@@ -18324,7 +18637,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18328 "configure"
+#line 18641 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18335,7 +18648,7 @@ int main() {
expl(0);
; return 0; }
EOF
-if { (eval echo configure:18339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18652: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_expl_use=yes
else
@@ -18362,12 +18675,12 @@ fi
for ac_func in expl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18366: checking for $ac_func" >&5
+echo "configure:18679: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18371 "configure"
+#line 18684 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18390,7 +18703,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18417,7 +18730,7 @@ done
else
echo $ac_n "checking for _expl declaration""... $ac_c" 1>&6
-echo "configure:18421: checking for _expl declaration" >&5
+echo "configure:18734: 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
@@ -18432,7 +18745,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18436 "configure"
+#line 18749 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18443,7 +18756,7 @@ int main() {
_expl(0);
; return 0; }
EOF
-if { (eval echo configure:18447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__expl_use=yes
else
@@ -18470,12 +18783,12 @@ fi
for ac_func in _expl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18474: checking for $ac_func" >&5
+echo "configure:18787: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18479 "configure"
+#line 18792 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18498,7 +18811,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18528,7 +18841,7 @@ done
echo $ac_n "checking for fabsl declaration""... $ac_c" 1>&6
-echo "configure:18532: checking for fabsl declaration" >&5
+echo "configure:18845: 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
@@ -18543,7 +18856,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18547 "configure"
+#line 18860 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18554,7 +18867,7 @@ int main() {
fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:18558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fabsl_use=yes
else
@@ -18581,12 +18894,12 @@ fi
for ac_func in fabsl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18585: checking for $ac_func" >&5
+echo "configure:18898: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18590 "configure"
+#line 18903 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18609,7 +18922,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18636,7 +18949,7 @@ done
else
echo $ac_n "checking for _fabsl declaration""... $ac_c" 1>&6
-echo "configure:18640: checking for _fabsl declaration" >&5
+echo "configure:18953: 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
@@ -18651,7 +18964,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18655 "configure"
+#line 18968 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -18662,7 +18975,7 @@ int main() {
_fabsl(0);
; return 0; }
EOF
-if { (eval echo configure:18666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18979: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fabsl_use=yes
else
@@ -18689,12 +19002,12 @@ fi
for ac_func in _fabsl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18693: checking for $ac_func" >&5
+echo "configure:19006: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18698 "configure"
+#line 19011 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18717,7 +19030,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18747,7 +19060,7 @@ done
echo $ac_n "checking for fmodl declaration""... $ac_c" 1>&6
-echo "configure:18751: checking for fmodl declaration" >&5
+echo "configure:19064: 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
@@ -18762,14 +19075,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18766 "configure"
+#line 19079 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
fmodl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_fmodl_use=yes
else
@@ -18796,12 +19109,12 @@ fi
for ac_func in fmodl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18800: checking for $ac_func" >&5
+echo "configure:19113: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18805 "configure"
+#line 19118 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18824,7 +19137,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18851,7 +19164,7 @@ done
else
echo $ac_n "checking for _fmodl declaration""... $ac_c" 1>&6
-echo "configure:18855: checking for _fmodl declaration" >&5
+echo "configure:19168: 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
@@ -18866,14 +19179,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18870 "configure"
+#line 19183 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_fmodl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19190: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__fmodl_use=yes
else
@@ -18900,12 +19213,12 @@ fi
for ac_func in _fmodl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18904: checking for $ac_func" >&5
+echo "configure:19217: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18909 "configure"
+#line 19222 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18928,7 +19241,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18958,7 +19271,7 @@ done
echo $ac_n "checking for frexpl declaration""... $ac_c" 1>&6
-echo "configure:18962: checking for frexpl declaration" >&5
+echo "configure:19275: 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
@@ -18973,14 +19286,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 18977 "configure"
+#line 19290 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
frexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:18984: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_frexpl_use=yes
else
@@ -19007,12 +19320,12 @@ fi
for ac_func in frexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19011: checking for $ac_func" >&5
+echo "configure:19324: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19016 "configure"
+#line 19329 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19035,7 +19348,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19062,7 +19375,7 @@ done
else
echo $ac_n "checking for _frexpl declaration""... $ac_c" 1>&6
-echo "configure:19066: checking for _frexpl declaration" >&5
+echo "configure:19379: 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
@@ -19077,14 +19390,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19081 "configure"
+#line 19394 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_frexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__frexpl_use=yes
else
@@ -19111,12 +19424,12 @@ fi
for ac_func in _frexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19115: checking for $ac_func" >&5
+echo "configure:19428: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19120 "configure"
+#line 19433 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19139,7 +19452,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19169,7 +19482,7 @@ done
echo $ac_n "checking for hypotl declaration""... $ac_c" 1>&6
-echo "configure:19173: checking for hypotl declaration" >&5
+echo "configure:19486: 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
@@ -19184,14 +19497,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19188 "configure"
+#line 19501 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
hypotl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_hypotl_use=yes
else
@@ -19218,12 +19531,12 @@ fi
for ac_func in hypotl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19222: checking for $ac_func" >&5
+echo "configure:19535: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19227 "configure"
+#line 19540 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19246,7 +19559,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19273,7 +19586,7 @@ done
else
echo $ac_n "checking for _hypotl declaration""... $ac_c" 1>&6
-echo "configure:19277: checking for _hypotl declaration" >&5
+echo "configure:19590: 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
@@ -19288,14 +19601,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19292 "configure"
+#line 19605 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_hypotl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__hypotl_use=yes
else
@@ -19322,12 +19635,12 @@ fi
for ac_func in _hypotl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19326: checking for $ac_func" >&5
+echo "configure:19639: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19331 "configure"
+#line 19644 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19350,7 +19663,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19380,7 +19693,7 @@ done
echo $ac_n "checking for ldexpl declaration""... $ac_c" 1>&6
-echo "configure:19384: checking for ldexpl declaration" >&5
+echo "configure:19697: 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
@@ -19395,14 +19708,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19399 "configure"
+#line 19712 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
ldexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19719: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_ldexpl_use=yes
else
@@ -19429,12 +19742,12 @@ fi
for ac_func in ldexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19433: checking for $ac_func" >&5
+echo "configure:19746: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19438 "configure"
+#line 19751 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19457,7 +19770,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19484,7 +19797,7 @@ done
else
echo $ac_n "checking for _ldexpl declaration""... $ac_c" 1>&6
-echo "configure:19488: checking for _ldexpl declaration" >&5
+echo "configure:19801: 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
@@ -19499,14 +19812,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19503 "configure"
+#line 19816 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_ldexpl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:19510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__ldexpl_use=yes
else
@@ -19533,12 +19846,12 @@ fi
for ac_func in _ldexpl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19537: checking for $ac_func" >&5
+echo "configure:19850: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19542 "configure"
+#line 19855 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19561,7 +19874,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19591,7 +19904,7 @@ done
echo $ac_n "checking for logl declaration""... $ac_c" 1>&6
-echo "configure:19595: checking for logl declaration" >&5
+echo "configure:19908: 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
@@ -19606,7 +19919,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19610 "configure"
+#line 19923 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19617,7 +19930,7 @@ int main() {
logl(0);
; return 0; }
EOF
-if { (eval echo configure:19621: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_logl_use=yes
else
@@ -19644,12 +19957,12 @@ fi
for ac_func in logl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19648: checking for $ac_func" >&5
+echo "configure:19961: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19653 "configure"
+#line 19966 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19672,7 +19985,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19699,7 +20012,7 @@ done
else
echo $ac_n "checking for _logl declaration""... $ac_c" 1>&6
-echo "configure:19703: checking for _logl declaration" >&5
+echo "configure:20016: 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
@@ -19714,7 +20027,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19718 "configure"
+#line 20031 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19725,7 +20038,7 @@ int main() {
_logl(0);
; return 0; }
EOF
-if { (eval echo configure:19729: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__logl_use=yes
else
@@ -19752,12 +20065,12 @@ fi
for ac_func in _logl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19756: checking for $ac_func" >&5
+echo "configure:20069: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19761 "configure"
+#line 20074 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19780,7 +20093,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19810,7 +20123,7 @@ done
echo $ac_n "checking for log10l declaration""... $ac_c" 1>&6
-echo "configure:19814: checking for log10l declaration" >&5
+echo "configure:20127: 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
@@ -19825,7 +20138,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19829 "configure"
+#line 20142 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19836,7 +20149,7 @@ int main() {
log10l(0);
; return 0; }
EOF
-if { (eval echo configure:19840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20153: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_log10l_use=yes
else
@@ -19863,12 +20176,12 @@ fi
for ac_func in log10l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19867: checking for $ac_func" >&5
+echo "configure:20180: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19872 "configure"
+#line 20185 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19891,7 +20204,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:19895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -19918,7 +20231,7 @@ done
else
echo $ac_n "checking for _log10l declaration""... $ac_c" 1>&6
-echo "configure:19922: checking for _log10l declaration" >&5
+echo "configure:20235: 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
@@ -19933,7 +20246,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 19937 "configure"
+#line 20250 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -19944,7 +20257,7 @@ int main() {
_log10l(0);
; return 0; }
EOF
-if { (eval echo configure:19948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20261: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__log10l_use=yes
else
@@ -19971,12 +20284,12 @@ fi
for ac_func in _log10l
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19975: checking for $ac_func" >&5
+echo "configure:20288: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 19980 "configure"
+#line 20293 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -19999,7 +20312,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20029,7 +20342,7 @@ done
echo $ac_n "checking for modfl declaration""... $ac_c" 1>&6
-echo "configure:20033: checking for modfl declaration" >&5
+echo "configure:20346: 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
@@ -20044,14 +20357,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20048 "configure"
+#line 20361 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
modfl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:20055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_modfl_use=yes
else
@@ -20078,12 +20391,12 @@ fi
for ac_func in modfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20082: checking for $ac_func" >&5
+echo "configure:20395: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20087 "configure"
+#line 20400 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20106,7 +20419,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20133,7 +20446,7 @@ done
else
echo $ac_n "checking for _modfl declaration""... $ac_c" 1>&6
-echo "configure:20137: checking for _modfl declaration" >&5
+echo "configure:20450: 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
@@ -20148,14 +20461,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20152 "configure"
+#line 20465 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_modfl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:20159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__modfl_use=yes
else
@@ -20182,12 +20495,12 @@ fi
for ac_func in _modfl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20186: checking for $ac_func" >&5
+echo "configure:20499: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20191 "configure"
+#line 20504 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20210,7 +20523,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20240,7 +20553,7 @@ done
echo $ac_n "checking for powl declaration""... $ac_c" 1>&6
-echo "configure:20244: checking for powl declaration" >&5
+echo "configure:20557: 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
@@ -20255,14 +20568,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20259 "configure"
+#line 20572 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
powl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:20266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_powl_use=yes
else
@@ -20289,12 +20602,12 @@ fi
for ac_func in powl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20293: checking for $ac_func" >&5
+echo "configure:20606: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20298 "configure"
+#line 20611 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20317,7 +20630,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20344,7 +20657,7 @@ done
else
echo $ac_n "checking for _powl declaration""... $ac_c" 1>&6
-echo "configure:20348: checking for _powl declaration" >&5
+echo "configure:20661: 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
@@ -20359,14 +20672,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20363 "configure"
+#line 20676 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_powl(0, 0);
; return 0; }
EOF
-if { (eval echo configure:20370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__powl_use=yes
else
@@ -20393,12 +20706,12 @@ fi
for ac_func in _powl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20397: checking for $ac_func" >&5
+echo "configure:20710: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20402 "configure"
+#line 20715 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20421,7 +20734,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20451,7 +20764,7 @@ done
echo $ac_n "checking for sqrtl declaration""... $ac_c" 1>&6
-echo "configure:20455: checking for sqrtl declaration" >&5
+echo "configure:20768: 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
@@ -20466,7 +20779,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20470 "configure"
+#line 20783 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -20477,7 +20790,7 @@ int main() {
sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:20481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sqrtl_use=yes
else
@@ -20504,12 +20817,12 @@ fi
for ac_func in sqrtl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20508: checking for $ac_func" >&5
+echo "configure:20821: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20513 "configure"
+#line 20826 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20532,7 +20845,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20559,7 +20872,7 @@ done
else
echo $ac_n "checking for _sqrtl declaration""... $ac_c" 1>&6
-echo "configure:20563: checking for _sqrtl declaration" >&5
+echo "configure:20876: 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
@@ -20574,7 +20887,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20578 "configure"
+#line 20891 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -20585,7 +20898,7 @@ int main() {
_sqrtl(0);
; return 0; }
EOF
-if { (eval echo configure:20589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sqrtl_use=yes
else
@@ -20612,12 +20925,12 @@ fi
for ac_func in _sqrtl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20616: checking for $ac_func" >&5
+echo "configure:20929: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20621 "configure"
+#line 20934 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20640,7 +20953,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20670,7 +20983,7 @@ done
echo $ac_n "checking for sincosl declaration""... $ac_c" 1>&6
-echo "configure:20674: checking for sincosl declaration" >&5
+echo "configure:20987: 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
@@ -20685,14 +20998,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20689 "configure"
+#line 21002 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
sincosl(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:20696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_sincosl_use=yes
else
@@ -20719,12 +21032,12 @@ fi
for ac_func in sincosl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20723: checking for $ac_func" >&5
+echo "configure:21036: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20728 "configure"
+#line 21041 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20747,7 +21060,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20774,7 +21087,7 @@ done
else
echo $ac_n "checking for _sincosl declaration""... $ac_c" 1>&6
-echo "configure:20778: checking for _sincosl declaration" >&5
+echo "configure:21091: 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
@@ -20789,14 +21102,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20793 "configure"
+#line 21106 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
_sincosl(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:20800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__sincosl_use=yes
else
@@ -20823,12 +21136,12 @@ fi
for ac_func in _sincosl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20827: checking for $ac_func" >&5
+echo "configure:21140: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20832 "configure"
+#line 21145 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20851,7 +21164,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20881,7 +21194,7 @@ done
echo $ac_n "checking for finitel declaration""... $ac_c" 1>&6
-echo "configure:20885: checking for finitel declaration" >&5
+echo "configure:21198: 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
@@ -20896,7 +21209,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 20900 "configure"
+#line 21213 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -20907,7 +21220,7 @@ int main() {
finitel(0);
; return 0; }
EOF
-if { (eval echo configure:20911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21224: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_finitel_use=yes
else
@@ -20934,12 +21247,12 @@ fi
for ac_func in finitel
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:20938: checking for $ac_func" >&5
+echo "configure:21251: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 20943 "configure"
+#line 21256 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -20962,7 +21275,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:20966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -20989,7 +21302,7 @@ done
else
echo $ac_n "checking for _finitel declaration""... $ac_c" 1>&6
-echo "configure:20993: checking for _finitel declaration" >&5
+echo "configure:21306: 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
@@ -21004,7 +21317,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21008 "configure"
+#line 21321 "configure"
#include "confdefs.h"
#include <math.h>
#ifdef HAVE_IEEEFP_H
@@ -21015,7 +21328,7 @@ int main() {
_finitel(0);
; return 0; }
EOF
-if { (eval echo configure:21019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__finitel_use=yes
else
@@ -21042,12 +21355,12 @@ fi
for ac_func in _finitel
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21046: checking for $ac_func" >&5
+echo "configure:21359: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21051 "configure"
+#line 21364 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21070,7 +21383,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21101,7 +21414,7 @@ done
echo $ac_n "checking for _float trig functions""... $ac_c" 1>&6
-echo "configure:21105: checking for _float trig functions" >&5
+echo "configure:21418: 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
@@ -21115,7 +21428,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21119 "configure"
+#line 21432 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -21124,7 +21437,7 @@ int main() {
_coshf _sinhf _tanhf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:21128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__float_trig_use=yes
else
@@ -21150,12 +21463,12 @@ fi
_coshf _sinhf _tanhf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21154: checking for $ac_func" >&5
+echo "configure:21467: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21159 "configure"
+#line 21472 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21178,7 +21491,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21206,7 +21519,7 @@ done
echo $ac_n "checking for _float round functions""... $ac_c" 1>&6
-echo "configure:21210: checking for _float round functions" >&5
+echo "configure:21523: 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
@@ -21220,14 +21533,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21224 "configure"
+#line 21537 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in _ceilf _floorf; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:21231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__float_round_use=yes
else
@@ -21251,12 +21564,12 @@ fi
for ac_func in _ceilf _floorf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21255: checking for $ac_func" >&5
+echo "configure:21568: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21260 "configure"
+#line 21573 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21279,7 +21592,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21308,7 +21621,7 @@ done
echo $ac_n "checking for _long double trig functions""... $ac_c" 1>&6
-echo "configure:21312: checking for _long double trig functions" >&5
+echo "configure:21625: 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
@@ -21322,7 +21635,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21326 "configure"
+#line 21639 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
@@ -21331,7 +21644,7 @@ int main() {
_coshl _sinhl _tanhl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:21335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__long_double_trig_use=yes
else
@@ -21357,12 +21670,12 @@ fi
_coshl _sinhl _tanhl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21361: checking for $ac_func" >&5
+echo "configure:21674: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21366 "configure"
+#line 21679 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21385,7 +21698,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21413,7 +21726,7 @@ done
echo $ac_n "checking for _long double round functions""... $ac_c" 1>&6
-echo "configure:21417: checking for _long double round functions" >&5
+echo "configure:21730: 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
@@ -21427,14 +21740,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 21431 "configure"
+#line 21744 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
`for x in _ceill _floorl; do echo "$x (0);"; done`
; return 0; }
EOF
-if { (eval echo configure:21438: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:21751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func__long_double_round_use=yes
else
@@ -21458,12 +21771,12 @@ fi
for ac_func in _ceill _floorl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21462: checking for $ac_func" >&5
+echo "configure:21775: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21467 "configure"
+#line 21780 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21486,7 +21799,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21518,7 +21831,7 @@ done
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:21522: checking for main in -lm" >&5
+echo "configure:21835: 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
@@ -21526,14 +21839,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 21530 "configure"
+#line 21843 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:21537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21850: \"$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
@@ -21563,12 +21876,12 @@ fi
for ac_func in nan copysignf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21567: checking for $ac_func" >&5
+echo "configure:21880: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21572 "configure"
+#line 21885 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21591,7 +21904,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21620,12 +21933,12 @@ done
for ac_func in __signbit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21624: checking for $ac_func" >&5
+echo "configure:21937: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21629 "configure"
+#line 21942 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21648,7 +21961,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21676,12 +21989,12 @@ done
for ac_func in __signbitf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21680: checking for $ac_func" >&5
+echo "configure:21993: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21685 "configure"
+#line 21998 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21704,7 +22017,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21734,12 +22047,12 @@ done
for ac_func in __signbitl
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21738: checking for $ac_func" >&5
+echo "configure:22051: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21743 "configure"
+#line 22056 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21762,7 +22075,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -21789,21 +22102,34 @@ done
fi
+ if test -n "$LIBMATHOBJS"; then
+ need_libmath=yes
+ fi
+
+
+if test "$need_libmath" = yes; then
+ GLIBCPP_BUILD_LIBMATH_TRUE=
+ GLIBCPP_BUILD_LIBMATH_FALSE='#'
+else
+ GLIBCPP_BUILD_LIBMATH_TRUE='#'
+ GLIBCPP_BUILD_LIBMATH_FALSE=
+fi
+ enable_wchar_t=no
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:21798: checking for mbstate_t" >&5
+echo "configure:22124: checking for mbstate_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 21800 "configure"
+#line 22126 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
mbstate_t teststate;
; return 0; }
EOF
-if { (eval echo configure:21807: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_mbstate_t=yes
else
@@ -21825,17 +22151,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:21829: checking for $ac_hdr" >&5
+echo "configure:22155: 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
-#line 21834 "configure"
+#line 22160 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:21839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22165: \"$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*
@@ -21866,17 +22192,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:21870: checking for $ac_hdr" >&5
+echo "configure:22196: 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
-#line 21875 "configure"
+#line 22201 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:21880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22206: \"$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*
@@ -21909,16 +22235,16 @@ done
test x"$enable_c_mbchar" != xno; then
echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6
-echo "configure:21913: checking for WCHAR_MIN and WCHAR_MAX" >&5
+echo "configure:22239: checking for WCHAR_MIN and WCHAR_MAX" >&5
cat > conftest.$ac_ext <<EOF
-#line 21915 "configure"
+#line 22241 "configure"
#include "confdefs.h"
#include <wchar.h>
int main() {
int i = WCHAR_MIN; int j = WCHAR_MAX;
; return 0; }
EOF
-if { (eval echo configure:21922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_wchar_minmax=yes
else
@@ -21931,9 +22257,9 @@ rm -f conftest*
echo "$ac_t""$has_wchar_minmax" 1>&6
echo $ac_n "checking for WEOF""... $ac_c" 1>&6
-echo "configure:21935: checking for WEOF" >&5
+echo "configure:22261: checking for WEOF" >&5
cat > conftest.$ac_ext <<EOF
-#line 21937 "configure"
+#line 22263 "configure"
#include "confdefs.h"
#include <wchar.h>
@@ -21942,7 +22268,7 @@ int main() {
wint_t i = WEOF;
; return 0; }
EOF
-if { (eval echo configure:21946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
has_weof=yes
else
@@ -21958,12 +22284,12 @@ rm -f conftest*
for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:21962: checking for $ac_func" >&5
+echo "configure:22288: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 21967 "configure"
+#line 22293 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -21986,7 +22312,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:21990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22013,7 +22339,7 @@ fi
done
- for ac_func in btowc wctob fgetwc fgetwc fgetws fputwc fputws fwide \
+ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
@@ -22021,12 +22347,12 @@ done
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22025: checking for $ac_func" >&5
+echo "configure:22351: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22030 "configure"
+#line 22356 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22049,7 +22375,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22077,7 +22403,7 @@ done
echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6
-echo "configure:22081: checking for ISO C99 wchar_t support" >&5
+echo "configure:22407: 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
@@ -22089,17 +22415,17 @@ echo "configure:22081: checking for ISO C99 wchar_t support" >&5
ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for iconv.h""... $ac_c" 1>&6
-echo "configure:22093: checking for iconv.h" >&5
+echo "configure:22419: 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
-#line 22098 "configure"
+#line 22424 "configure"
#include "confdefs.h"
#include <iconv.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:22103: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22429: \"$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*
@@ -22123,17 +22449,17 @@ fi
ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
-echo "configure:22127: checking for langinfo.h" >&5
+echo "configure:22453: 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
-#line 22132 "configure"
+#line 22458 "configure"
#include "confdefs.h"
#include <langinfo.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:22137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:22463: \"$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*
@@ -22157,7 +22483,7 @@ fi
echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6
-echo "configure:22161: checking for iconv in -liconv" >&5
+echo "configure:22487: 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
@@ -22165,7 +22491,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 22169 "configure"
+#line 22495 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -22176,7 +22502,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:22180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22506: \"$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
@@ -22202,12 +22528,12 @@ fi
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:22206: checking for $ac_func" >&5
+echo "configure:22532: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22211 "configure"
+#line 22537 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22230,7 +22556,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22260,7 +22586,7 @@ done
LIBS="$ac_save_LIBS"
echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6
-echo "configure:22264: checking for XPG2 wchar_t support" >&5
+echo "configure:22590: 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
@@ -22270,30 +22596,36 @@ echo "configure:22264: checking for XPG2 wchar_t support" >&5
fi
echo "$ac_t""$ac_XPG2_wchar_t" 1>&6
- echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
-echo "configure:22275: checking for enabled wchar_t specializations" >&5
- if test x"$ac_isoC99_wchar_t" = xyes &&
+ if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
- cat >> confdefs.h <<\EOF
+ cat >> confdefs.h <<\EOF
#define _GLIBCPP_USE_WCHAR_T 1
EOF
- echo "$ac_t"""yes"" 1>&6
- else
- echo "$ac_t"""no"" 1>&6
+ enable_wchar_t=yes
fi
- else
- echo "configure: warning: wchar_t support disabled." 1>&2
fi
+ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6
+echo "configure:22610: checking for enabled wchar_t specializations" >&5
+ echo "$ac_t""$enable_wchar_t" 1>&6
+
+
+if test "$enable_wchar_t" = yes; then
+ GLIBCPP_TEST_WCHAR_T_TRUE=
+ GLIBCPP_TEST_WCHAR_T_FALSE='#'
+else
+ GLIBCPP_TEST_WCHAR_T_TRUE='#'
+ GLIBCPP_TEST_WCHAR_T_FALSE=
+fi
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
+ CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
echo $ac_n "checking for strtold declaration""... $ac_c" 1>&6
-echo "configure:22297: checking for strtold declaration" >&5
+echo "configure:22629: 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
@@ -22308,14 +22640,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 22312 "configure"
+#line 22644 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
strtold(0, 0);
; return 0; }
EOF
-if { (eval echo configure:22319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_strtold_use=yes
else
@@ -22341,12 +22673,12 @@ fi
for ac_func in strtold
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22345: checking for $ac_func" >&5
+echo "configure:22677: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22350 "configure"
+#line 22682 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22369,7 +22701,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22397,7 +22729,7 @@ done
echo $ac_n "checking for strtof declaration""... $ac_c" 1>&6
-echo "configure:22401: checking for strtof declaration" >&5
+echo "configure:22733: 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
@@ -22412,14 +22744,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 22416 "configure"
+#line 22748 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
strtof(0, 0);
; return 0; }
EOF
-if { (eval echo configure:22423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_strtof_use=yes
else
@@ -22445,12 +22777,12 @@ fi
for ac_func in strtof
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22449: checking for $ac_func" >&5
+echo "configure:22781: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22454 "configure"
+#line 22786 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22473,7 +22805,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22502,12 +22834,12 @@ done
for ac_func in drand48
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22506: checking for $ac_func" >&5
+echo "configure:22838: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22511 "configure"
+#line 22843 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22530,7 +22862,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22564,7 +22896,7 @@ done
echo $ac_n "checking for isatty declaration""... $ac_c" 1>&6
-echo "configure:22568: checking for isatty declaration" >&5
+echo "configure:22900: checking for isatty declaration" >&5
if test x${glibcpp_cv_func_isatty_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_isatty_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -22579,14 +22911,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 22583 "configure"
+#line 22915 "configure"
#include "confdefs.h"
#include <unistd.h>
int main() {
isatty(0);
; return 0; }
EOF
-if { (eval echo configure:22590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:22922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_isatty_use=yes
else
@@ -22612,12 +22944,12 @@ fi
for ac_func in isatty
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22616: checking for $ac_func" >&5
+echo "configure:22948: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22621 "configure"
+#line 22953 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22640,7 +22972,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:22976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22669,20 +23001,159 @@ done
CXXFLAGS="$ac_save_CXXFLAGS"
+
+ # For showmanyc_helper().
+ for ac_hdr in sys/ioctl.h sys/filio.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:23011: 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
+#line 23016 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:23021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_POLL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 23053 "configure"
+#include "confdefs.h"
+#include <poll.h>
+int main() {
+struct pollfd pfd[1]; pfd[0].events = POLLIN; poll(pfd, 1, 0);
+; return 0; }
+EOF
+if { (eval echo configure:23060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ glibcpp_cv_POLL=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_POLL=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_POLL = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_POLL 1
+EOF
+
+ fi
+
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_ISREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 23086 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_ISREG(buffer.st_mode);
+; return 0; }
+EOF
+if { (eval echo configure:23093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_ISREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if eval "test \"`echo '$''{'glibcpp_cv_S_IFREG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 23111 "configure"
+#include "confdefs.h"
+#include <sys/stat.h>
+int main() {
+struct stat buffer; fstat(0, &buffer); S_IFREG & buffer.st_mode;
+; return 0; }
+EOF
+if { (eval echo configure:23118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_cv_S_IFREG=no
+fi
+rm -f conftest*
+
+fi
+
+ if test x$glibcpp_cv_S_ISREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_ISREG 1
+EOF
+
+ elif test x$glibcpp_cv_S_IFREG = xyes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_S_IFREG 1
+EOF
+
+ fi
+
+
ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for locale.h""... $ac_c" 1>&6
-echo "configure:22676: checking for locale.h" >&5
+echo "configure:23147: 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
-#line 22681 "configure"
+#line 23152 "configure"
#include "confdefs.h"
#include <locale.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:22686: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23157: \"$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*
@@ -22700,19 +23171,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:22704: checking for LC_MESSAGES" >&5
+echo "configure:23175: 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 <<EOF
-#line 22709 "configure"
+#line 23180 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:22716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23187: \"$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
@@ -22739,7 +23210,7 @@ fi
cat > conftest.$ac_ext <<EOF
-#line 22743 "configure"
+#line 23214 "configure"
#include "confdefs.h"
#include <setjmp.h>
@@ -22748,7 +23219,7 @@ int main() {
sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);
; return 0; }
EOF
-if { (eval echo configure:22752: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define HAVE_SIGSETJMP 1
@@ -22765,17 +23236,17 @@ rm -f conftest*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:22769: checking for $ac_hdr" >&5
+echo "configure:23240: 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
-#line 22774 "configure"
+#line 23245 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:22779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23250: \"$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*
@@ -22804,12 +23275,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:22808: checking for $ac_func" >&5
+echo "configure:23279: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 22813 "configure"
+#line 23284 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -22832,7 +23303,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:22836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -22857,7 +23328,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:22861: checking for working mmap" >&5
+echo "configure:23332: 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
@@ -22865,7 +23336,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 22869 "configure"
+#line 23340 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -23018,7 +23489,7 @@ main()
}
EOF
-if { (eval echo configure:23022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:23493: \"$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
@@ -23041,25 +23512,159 @@ EOF
fi
- # Establish limits on memory usage during 'make check'
-
-
+fi
+
+# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
+# Check whether --enable-symvers or --disable-symvers was given.
+if test "${enable_symvers+set}" = set; then
+ enableval="$enable_symvers"
+ case "$enableval" in
+ yes) enable_symvers=yes ;;
+ no) enable_symvers=no ;;
+ # other names here, just as sanity checks
+ #gnu|sun|etcetera) enable_symvers=$enableval ;;
+ gnu) enable_symvers=$enableval ;;
+ *) { echo "configure: error: Unknown argument to enable/disable symvers" 1>&2; exit 1; } ;;
+ esac
+else
+ enable_symvers=yes
+fi
+
+# If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
+# don't know enough about $LD to do tricks...
+if test x$enable_shared = xno ||
+ test "x$LD" = x ||
+ test x$glibcpp_gnu_ld_version = x; then
+ enable_symvers=no
+fi
+
+# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
+if test $enable_symvers != no; then
+ echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6
+echo "configure:23545: checking for shared libgcc" >&5
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=' -lgcc_s'
+ cat > conftest.$ac_ext <<EOF
+#line 23549 "configure"
+#include "confdefs.h"
+
+int main() {
+return 0
+; return 0; }
+EOF
+if { (eval echo configure:23556: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ glibcpp_shared_libgcc=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ glibcpp_shared_libgcc=no
+fi
+rm -f conftest*
+ CFLAGS="$ac_save_CFLAGS"
+ echo "$ac_t""$glibcpp_shared_libgcc" 1>&6
+fi
+
+# For GNU ld, we need at least this version. It's 2.12 in the same format
+# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
+glibcpp_min_gnu_ld_version=21200
+
+# Check to see if unspecified "yes" value can win, given results
+# above.
+if test $enable_symvers = yes ; then
+ if test $with_gnu_ld = yes &&
+ test $glibcpp_shared_libgcc = yes ;
+ then
+ if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
+ enable_symvers=gnu
+ else
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS='-shared -Wl,--version-script,conftest.map'
+ enable_symvers=no
+
+ echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
+
+ cat > conftest.$ac_ext <<EOF
+#line 23591 "configure"
+#include "confdefs.h"
+int foo;
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:23598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ enable_symvers=gnu
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ else
+ # this is the suspicious part
+ CFLAGS=''
+ fi
+ rm -f conftest.map
+ fi
+ else
+ # just fail for now
+ enable_symvers=no
+ fi
+fi
+
+case $enable_symvers in
+ no)
+ SYMVER_MAP=config/linker-map.dummy
+ ;;
+ gnu)
+ SYMVER_MAP=config/linker-map.gnu
+ cat >> confdefs.h <<\EOF
+#define _GLIBCPP_SYMVER 1
+EOF
+
+ ;;
+esac
+
+
+
+
+if test $enable_symvers != no; then
+ GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE=
+ GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE='#'
+else
+ GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE='#'
+ GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE=
+fi
+echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
+echo "configure:23644: checking versioning on shared library symbols" >&5
+echo "$ac_t""$enable_symvers" 1>&6
+
+
+# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
+
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
+ # Do checks for memory limit functions.
+
setrlimit_have_headers=yes
for ac_hdr in unistd.h sys/time.h sys/resource.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:23053: checking for $ac_hdr" >&5
+echo "configure:23658: 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
-#line 23058 "configure"
+#line 23663 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:23063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23668: \"$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*
@@ -23092,7 +23697,7 @@ done
# Can't do these in a loop, else the resulting syntax is wrong.
cat > conftest.$ac_ext <<EOF
-#line 23096 "configure"
+#line 23701 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
@@ -23102,7 +23707,7 @@ int main() {
int f = RLIMIT_DATA ;
; return 0; }
EOF
-if { (eval echo configure:23106: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -23119,7 +23724,7 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 23123 "configure"
+#line 23728 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
@@ -23129,7 +23734,7 @@ int main() {
int f = RLIMIT_RSS ;
; return 0; }
EOF
-if { (eval echo configure:23133: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -23146,7 +23751,7 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 23150 "configure"
+#line 23755 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
@@ -23156,7 +23761,7 @@ int main() {
int f = RLIMIT_VMEM ;
; return 0; }
EOF
-if { (eval echo configure:23160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -23173,7 +23778,7 @@ EOF
cat > conftest.$ac_ext <<EOF
-#line 23177 "configure"
+#line 23782 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
@@ -23183,7 +23788,7 @@ int main() {
int f = RLIMIT_AS ;
; return 0; }
EOF
-if { (eval echo configure:23187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23792: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
@@ -23205,7 +23810,7 @@ EOF
else
cat > conftest.$ac_ext <<EOF
-#line 23209 "configure"
+#line 23814 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
@@ -23215,7 +23820,7 @@ int main() {
struct rlimit r; setrlimit(0, &r);
; return 0; }
EOF
-if { (eval echo configure:23219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_setrlimit=yes
else
@@ -23231,7 +23836,7 @@ fi
fi
echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
-echo "configure:23235: checking for testsuite memory limit support" >&5
+echo "configure:23840: 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
@@ -23244,10 +23849,10 @@ EOF
echo "$ac_t""$ac_mem_limits" 1>&6
- # Look for setenv, so that extended locale tests can be performed.
-
+ # Look for setenv, so that extended locale tests can be performed.
+
echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6
-echo "configure:23251: checking for setenv declaration" >&5
+echo "configure:23856: 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
@@ -23262,14 +23867,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 23266 "configure"
+#line 23871 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
setenv(0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:23273: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_setenv_use=yes
else
@@ -23295,12 +23900,12 @@ fi
for ac_func in setenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:23299: checking for $ac_func" >&5
+echo "configure:23904: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 23304 "configure"
+#line 23909 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -23323,7 +23928,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:23327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -23349,152 +23954,34 @@ done
fi
+ fi
# Export file names for ABI checking.
- baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
+ baseline_dir="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)"
- # 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.
-# Check whether --enable-symvers or --disable-symvers was given.
-if test "${enable_symvers+set}" = set; then
- enableval="$enable_symvers"
- case "$enableval" in
- yes) enable_symvers=yes ;;
- no) enable_symvers=no ;;
- # other names here, just as sanity checks
- #gnu|sun|etcetera) enable_symvers=$enableval ;;
- gnu) enable_symvers=$enableval ;;
- *) { echo "configure: error: Unknown argument to enable/disable symvers" 1>&2; exit 1; } ;;
- esac
-else
- enable_symvers=yes
-fi
-
-# If we never went through the GLIBCPP_CHECK_LINKER_FEATURES macro, then we
-# don't know enough about $LD to do tricks...
-if test x$enable_shared = xno ||
- test "x$LD" = x ||
- test x$glibcpp_gnu_ld_version = x; then
- enable_symvers=no
-fi
-
-# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
-if test $enable_symvers != no; then
- echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6
-echo "configure:23398: checking for shared libgcc" >&5
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=' -lgcc_s'
- cat > conftest.$ac_ext <<EOF
-#line 23402 "configure"
-#include "confdefs.h"
-
-int main() {
-return 0
-; return 0; }
-EOF
-if { (eval echo configure:23409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- glibcpp_shared_libgcc=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- glibcpp_shared_libgcc=no
-fi
-rm -f conftest*
- CFLAGS="$ac_save_CFLAGS"
- echo "$ac_t""$glibcpp_shared_libgcc" 1>&6
-fi
-
-# For GNU ld, we need at least this version. It's 2.12 in the same format
-# as the tested-for version. See GLIBCPP_CHECK_LINKER_FEATURES for more.
-glibcpp_min_gnu_ld_version=21200
-
-# Check to see if unspecified "yes" value can win, given results
-# above.
-if test $enable_symvers = yes ; then
- if test $with_gnu_ld = yes &&
- test $glibcpp_shared_libgcc = yes ;
- then
- if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
- enable_symvers=gnu
- else
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS='-shared -Wl,--version-script,conftest.map'
- enable_symvers=no
-
- echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
-
- cat > conftest.$ac_ext <<EOF
-#line 23444 "configure"
-#include "confdefs.h"
-int foo;
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:23451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- enable_symvers=gnu
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- else
- # this is the suspicious part
- CFLAGS=''
- fi
- rm -f conftest.map
- fi
+ # Determine if checking the ABI is desirable.
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
+ enable_abi_check=no
else
- # just fail for now
- enable_symvers=no
+ case "$host" in
+ *-*-cygwin*)
+ enable_abi_check=no ;;
+ *)
+ enable_abi_check=yes ;;
+ esac
fi
-fi
-
-case $enable_symvers in
- no)
- LINKER_MAP=config/linker-map.dummy
- ;;
- gnu)
- LINKER_MAP=config/linker-map.gnu
- cat >> confdefs.h <<\EOF
-#define _GLIBCPP_SYMVER 1
-EOF
-
- ;;
-esac
-
-
-
+
-if test $enable_symvers != no; then
- GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE=
- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE='#'
+if test "$enable_abi_check" = yes; then
+ GLIBCPP_TEST_ABI_TRUE=
+ GLIBCPP_TEST_ABI_FALSE='#'
else
- GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE='#'
- GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE=
+ GLIBCPP_TEST_ABI_TRUE='#'
+ GLIBCPP_TEST_ABI_FALSE=
fi
-echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
-echo "configure:23497: checking versioning on shared library symbols" >&5
-echo "$ac_t""$enable_symvers" 1>&6
# Propagate the target-specific source directories through the build chain.
@@ -23580,7 +24067,7 @@ glibcpp_prefixdir=${prefix}
# Process the option --with-gxx-include-dir=<path to include-files directory>
echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:23584: checking for --with-gxx-include-dir" >&5
+echo "configure:24071: 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"
@@ -23604,7 +24091,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
# Process the option "--enable-version-specific-runtime-libs"
echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:23608: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:24095: 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"
@@ -23642,15 +24129,16 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
- glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
+ glibcpp_toolexeclibdir='$(libdir)'
fi
+ glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:23654: checking for install location" >&5
+echo "configure:24142: checking for install location" >&5
echo "$ac_t""$gxx_include_dir" 1>&6
@@ -23691,7 +24179,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
OPTIMIZE_CXXFLAGS=
- WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
+ WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings'
@@ -23705,9 +24193,9 @@ fi
# Generate the various Makefiles, include files, and scripts.
# NB: Multilibs need MULTISUBDIR defined correctly in src/Makefile.am
-# and libsupc++/Makefile.am so that multilib installs will end up
-# installed in the correct place. To work around this not being passed
-# down from config-ml.in -> top_srcdir/Makefile.am ->
+# libsupc++/Makefile.am and testsuite/Makefile.am so that multilib installs
+# will end up installed in the correct place. To work around this not being
+# passed down from config-ml.in -> top_srcdir/Makefile.am ->
# top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
trap '' 1 2 15
cat > confcache <<\EOF
@@ -23894,10 +24382,10 @@ s%@CXXCPP@%$CXXCPP%g
s%@enable_shared@%$enable_shared%g
s%@enable_static@%$enable_static%g
s%@ifGNUmake@%$ifGNUmake%g
-s%@DEBUG_FLAGS@%$DEBUG_FLAGS%g
s%@CPP@%$CPP%g
s%@CSTDIO_H@%$CSTDIO_H%g
s%@BASIC_FILE_H@%$BASIC_FILE_H%g
+s%@BASIC_FILE_CC@%$BASIC_FILE_CC%g
s%@CCODECVT_C@%$CCODECVT_C%g
s%@GLIBCPP_BUILD_LIBIO_TRUE@%$GLIBCPP_BUILD_LIBIO_TRUE%g
s%@GLIBCPP_BUILD_LIBIO_FALSE@%$GLIBCPP_BUILD_LIBIO_FALSE%g
@@ -23914,6 +24402,16 @@ s%@USE_NLS@%$USE_NLS%g
s%@CLOCALE_H@%$CLOCALE_H%g
s%@CCODECVT_H@%$CCODECVT_H%g
s%@CMESSAGES_H@%$CMESSAGES_H%g
+s%@CCODECVT_CC@%$CCODECVT_CC%g
+s%@CCOLLATE_CC@%$CCOLLATE_CC%g
+s%@CCTYPE_CC@%$CCTYPE_CC%g
+s%@CMESSAGES_CC@%$CMESSAGES_CC%g
+s%@CMONEY_CC@%$CMONEY_CC%g
+s%@CNUMERIC_CC@%$CNUMERIC_CC%g
+s%@CTIME_H@%$CTIME_H%g
+s%@CTIME_CC@%$CTIME_CC%g
+s%@CLOCALE_CC@%$CLOCALE_CC%g
+s%@CLOCALE_INTERNAL_H@%$CLOCALE_INTERNAL_H%g
s%@C_INCLUDE_DIR@%$C_INCLUDE_DIR%g
s%@GLIBCPP_C_HEADERS_C_TRUE@%$GLIBCPP_C_HEADERS_C_TRUE%g
s%@GLIBCPP_C_HEADERS_C_FALSE@%$GLIBCPP_C_HEADERS_C_FALSE%g
@@ -23922,18 +24420,26 @@ s%@GLIBCPP_C_HEADERS_C_STD_FALSE@%$GLIBCPP_C_HEADERS_C_STD_FALSE%g
s%@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE%g
s%@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@%$GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE%g
s%@glibcpp_thread_h@%$glibcpp_thread_h%g
-s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g
s%@LIBUNWIND_FLAG@%$LIBUNWIND_FLAG%g
+s%@EXTRA_CXX_FLAGS@%$EXTRA_CXX_FLAGS%g
+s%@GLIBCPP_BUILD_DEBUG_TRUE@%$GLIBCPP_BUILD_DEBUG_TRUE%g
+s%@GLIBCPP_BUILD_DEBUG_FALSE@%$GLIBCPP_BUILD_DEBUG_FALSE%g
+s%@DEBUG_FLAGS@%$DEBUG_FLAGS%g
s%@SECTION_FLAGS@%$SECTION_FLAGS%g
s%@SECTION_LDFLAGS@%$SECTION_LDFLAGS%g
s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g
s%@LIBMATHOBJS@%$LIBMATHOBJS%g
+s%@GLIBCPP_BUILD_LIBMATH_TRUE@%$GLIBCPP_BUILD_LIBMATH_TRUE%g
+s%@GLIBCPP_BUILD_LIBMATH_FALSE@%$GLIBCPP_BUILD_LIBMATH_FALSE%g
+s%@GLIBCPP_TEST_WCHAR_T_TRUE@%$GLIBCPP_TEST_WCHAR_T_TRUE%g
+s%@GLIBCPP_TEST_WCHAR_T_FALSE@%$GLIBCPP_TEST_WCHAR_T_FALSE%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%@SYMVER_MAP@%$SYMVER_MAP%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%@baseline_dir@%$baseline_dir%g
+s%@GLIBCPP_TEST_ABI_TRUE@%$GLIBCPP_TEST_ABI_TRUE%g
+s%@GLIBCPP_TEST_ABI_FALSE@%$GLIBCPP_TEST_ABI_FALSE%g
s%@OS_INC_SRCDIR@%$OS_INC_SRCDIR%g
s%@ATOMICITY_INC_SRCDIR@%$ATOMICITY_INC_SRCDIR%g
s%@GLIBCPP_IS_CROSS_COMPILING@%$GLIBCPP_IS_CROSS_COMPILING%g
@@ -24162,51 +24668,6 @@ cat >> $CONFIG_STATUS <<\EOF
fi; done
EOF
-
-cat >> $CONFIG_STATUS <<EOF
-ac_sources="$BASIC_FILE_CC $CLOCALE_CC $CCODECVT_CC $CCOLLATE_CC $CCTYPE_CC $CMESSAGES_CC $CMONEY_CC $CNUMERIC_CC $CTIME_CC $CLOCALE_INTERNAL_H $LINKER_MAP"
-ac_dests="src/basic_file.cc src/c++locale.cc src/codecvt_members.cc src/collate_members.cc src/ctype_members.cc src/messages_members.cc src/monetary_members.cc src/numeric_members.cc src/time_members.cc src/c++locale_internal.h src/linker.map"
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-srcdir=$ac_given_srcdir
-while test -n "$ac_sources"; do
- set $ac_dests; ac_dest=$1; shift; ac_dests=$*
- set $ac_sources; ac_source=$1; shift; ac_sources=$*
-
- echo "linking $srcdir/$ac_source to $ac_dest"
-
- if test ! -r $srcdir/$ac_source; then
- { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
- fi
- rm -f $ac_dest
-
- # Make relative symlinks.
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
- # The dest file is in a subdirectory.
- test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
- ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dest_dir_suffix.
- ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dest_dir_suffix= ac_dots=
- fi
-
- case "$srcdir" in
- [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
- *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
- esac
-
- # Make a symlink if possible; otherwise try a hard link.
- if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
- ln $srcdir/$ac_source $ac_dest; then :
- else
- { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
- fi
-done
-EOF
cat >> $CONFIG_STATUS <<EOF
srcdir=${srcdir}
@@ -24218,6 +24679,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
glibcpp_basedir=${glibcpp_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
@@ -24227,6 +24689,7 @@ if test -n "$CONFIG_FILES"; then
ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
grep '^MULTISUBDIR =' Makefile >> src/Makefile
grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+ grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
fi
chmod +x mkcheck
chmod +x testsuite_flags
diff --git a/libstdc++-v3/configure.in b/libstdc++-v3/configure.in
index 53308955957..f2ac675a8a0 100644
--- a/libstdc++-v3/configure.in
+++ b/libstdc++-v3/configure.in
@@ -13,7 +13,7 @@ ORIGINAL_LD_FOR_MULTILIBS=$LD
PACKAGE=libstdc++
AC_SUBST(PACKAGE)
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=5:2:0
+libtool_VERSION=5:7:0
AC_SUBST(libtool_VERSION)
GLIBCPP_TOPREL_CONFIGURE
@@ -54,18 +54,19 @@ AC_SUBST(enable_static)
GLIBCPP_CHECK_GNU_MAKE
# Enable all the variable C++ stuff. C_MBCHAR must come early.
-GLIBCPP_ENABLE_DEBUG($USE_MAINTAINER_MODE)
GLIBCPP_ENABLE_CSTDIO
GLIBCPP_ENABLE_CLOCALE
+GLIBCPP_ENABLE_CHEADERS([$c_model])
GLIBCPP_ENABLE_C_MBCHAR([yes])
GLIBCPP_ENABLE_C99([yes])
GLIBCPP_ENABLE_LONG_LONG([yes])
-GLIBCPP_ENABLE_CHEADERS([$c_model])
GLIBCPP_ENABLE_THREADS
-GLIBCPP_ENABLE_CXX_FLAGS([none])
GLIBCPP_ENABLE_SJLJ_EXCEPTIONS
GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS
GLIBCPP_ENABLE_CONCEPT_CHECKS
+GLIBCPP_ENABLE_CXX_FLAGS
+GLIBCPP_ENABLE_DEBUG([no])
+GLIBCPP_ENABLE_DEBUG_FLAGS([none])
# Check for headers necessary for libsupc++ using dyn-string.c/cxa_demangle.c
AC_CHECK_HEADERS(string.h stdlib.h)
@@ -86,7 +87,7 @@ fi
if test -n "$with_cross_host" || test x"$build" != x"$host"; then
# We are being configured with some form of cross compiler.
- GLIBCPP_IS_CROSS_COMPILING=1
+ GLIBCPP_IS_CROSS_COMPILING=true
# This lets us hard-code the functionality we know we'll have in the cross
# target environment. "Let" is a sugar-coated word placed on an especially
@@ -126,6 +127,12 @@ if test -n "$with_cross_host" || test x"$build" != x"$host"; then
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
+
+ # For showmanyc_helper().
+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
+ GLIBCPP_CHECK_POLL
+ GLIBCPP_CHECK_S_ISREG_OR_S_IFREG
+
AC_DEFINE(HAVE_COPYSIGN)
AC_DEFINE(HAVE_COPYSIGNF)
AC_DEFINE(HAVE_FINITE)
@@ -270,6 +277,10 @@ changequote([,])dnl
;;
esac
+if test x"$with_newlib" = "xyes"; then
+ os_include_dir="os/newlib"
+fi
+
case "$target" in
*-mingw32*)
;;
@@ -396,7 +407,7 @@ else
# We are being configured natively. We can do more elaborate tests
# that include AC_TRY_COMPILE now, as the linker is assumed to be
# working.
- GLIBCPP_IS_CROSS_COMPILING=0
+ GLIBCPP_IS_CROSS_COMPILING=false
CANADIAN=no
# Check for available headers.
@@ -411,6 +422,12 @@ else
GLIBCPP_CHECK_WCHAR_T_SUPPORT
GLIBCPP_CHECK_STDLIB_SUPPORT
GLIBCPP_CHECK_UNISTD_SUPPORT
+
+ # For showmanyc_helper().
+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
+ GLIBCPP_CHECK_POLL
+ GLIBCPP_CHECK_S_ISREG_OR_S_IFREG
+
AC_LC_MESSAGES
AC_TRY_COMPILE([
@@ -421,13 +438,14 @@ else
AC_FUNC_MMAP
- # Establish limits on memory usage during 'make check'
- GLIBCPP_CONFIGURE_TESTSUITE
fi
-# This depends on the possibly-skipped linker test above.
+# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
GLIBCPP_ENABLE_SYMVERS([yes])
+# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
+GLIBCPP_CONFIGURE_TESTSUITE
+
# Propagate the target-specific source directories through the build chain.
# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH
# uses it, and it only gets used in this file.)
@@ -465,9 +483,9 @@ AC_SUBST(LIBSUPCXX_PICFLAGS)
# Generate the various Makefiles, include files, and scripts.
# NB: Multilibs need MULTISUBDIR defined correctly in src/Makefile.am
-# and libsupc++/Makefile.am so that multilib installs will end up
-# installed in the correct place. To work around this not being passed
-# down from config-ml.in -> top_srcdir/Makefile.am ->
+# libsupc++/Makefile.am and testsuite/Makefile.am so that multilib installs
+# will end up installed in the correct place. To work around this not being
+# passed down from config-ml.in -> top_srcdir/Makefile.am ->
# top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
AC_OUTPUT(Makefile \
include/Makefile src/Makefile \
@@ -478,6 +496,7 @@ AC_OUTPUT(Makefile \
ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
grep '^MULTISUBDIR =' Makefile >> src/Makefile
grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+ grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
fi
chmod +x mkcheck
chmod +x testsuite_flags
@@ -491,6 +510,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
glibcpp_basedir=${glibcpp_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)
dnl In autoconf 2.5x, AC_OUTPUT is replaced by three AC_ macros:
dnl AC_CONFIG_FILES(Makefile \
@@ -502,6 +522,7 @@ dnl [if test -n "$CONFIG_FILES"; then
dnl ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
dnl grep '^MULTISUBDIR =' Makefile >> src/Makefile
dnl grep '^MULTISUBDIR =' Makefile >> libsupc++/Makefile
+dnl grep '^MULTISUBDIR =' Makefile >> testsuite/Makefile
dnl fi
dnl chmod +x mkcheck
dnl chmod +x testsuite_flags
diff --git a/libstdc++-v3/configure.target b/libstdc++-v3/configure.target
index a186659daf3..c1d1cb1829c 100644
--- a/libstdc++-v3/configure.target
+++ b/libstdc++-v3/configure.target
@@ -17,27 +17,27 @@
# It sets the following shell variables:
#
# cpu_include_dir CPU-specific directory, defaults to cpu/generic
-# if cpu/target_cpu doesn't exist. This is
-# used to set ATOMICITYH.
+# if cpu/target_cpu doesn't exist. This is
+# used to set ATOMICITYH.
#
# os_include_dir OS-specific directory, defaults to os/generic.
#
# c_model the model to use for "C" headers, defaults to c_std.
#
# c_compatibility if "C" compatibility headers are necessary,
-# defaults to no.
+# defaults to no.
#
-# abi_baseline_triplet directory name for ABI compat testing,
-# defaults to target (as per config.guess)
+# abi_baseline_pair directory name for ABI compat testing,
+# defaults to target (as per config.guess)
#
# ATOMICITYH location of atomicity.h,
-# defaults to cpu_include_dir
+# defaults to cpu_include_dir
#
# It possibly modifies the following variables:
#
# OPT_LDFLAGS extra flags to pass when linking the library, of
-# the form '-Wl,blah'
-# (defaults to empty in acinclude.m4)
+# the form '-Wl,blah'
+# (defaults to empty in acinclude.m4)
#
#
# If the defaults will not work for your platform, you need only change the
@@ -50,14 +50,8 @@
# Try to guess a default cpu_include_dir based on the name of the CPU. We
# cannot do this for os_include_dir; there are too many portable operating
# systems out there. :-)
-abi_baseline_triplet=${target}
c_model=c_std
c_compatibility=no
-if test -d ${glibcpp_srcdir}/config/cpu/${target_cpu}; then
- cpu_include_dir="cpu/${target_cpu}"
-else
- cpu_include_dir="cpu/generic"
-fi
# TARGET-SPECIFIC OVERRIDES
@@ -65,43 +59,45 @@ fi
# Here we override defaults and catch more general cases due to naming
# conventions (e.g., chip_name* to catch all variants).
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+
case "${target_cpu}" in
alpha*)
- cpu_include_dir="cpu/alpha"
+ try_cpu=alpha
;;
athlon* | i586 | i686 | i786 | x86_64)
- cpu_include_dir="cpu/i486"
+ try_cpu=i486
;;
hppa*)
- cpu_include_dir="cpu/hppa"
+ try_cpu=hppa
;;
m680[246]0)
- cpu_include_dir="cpu/m68k"
+ try_cpu=m68k
;;
powerpc* | rs6000)
- cpu_include_dir="cpu/powerpc"
+ try_cpu=powerpc
;;
s390x)
- cpu_include_dir="cpu/s390"
+ try_cpu=s390
;;
sparc* | ultrasparc)
- cpu_include_dir="cpu/sparc"
+ try_cpu=sparc
+ ;;
+ *)
+ if test -d ${glibcpp_srcdir}/config/cpu/${target_cpu}; then
+ try_cpu=${target_cpu}
+ else
+ try_cpu=generic
+ fi
;;
esac
-# Now look for the file(s) usually tied to a CPU model, and make default
-# choices for those if they haven't been explicitly set already.
-_cpu_incdir_fullpath=${glibcpp_srcdir}/config/${cpu_include_dir}
-if test x${ATOMICITYH+set} != xset; then
- if test -f ${_cpu_incdir_fullpath}/atomicity.h; then
- ATOMICITYH=$cpu_include_dir
- else
- ATOMICITYH="cpu/generic"
- fi
-fi
-unset _cpu_incdir_fullpath
-
+# Now look for the file(s) usually tied to a CPU model, and make
+# default choices for those if they haven't been explicitly set
+# already.
+cpu_include_dir="cpu/${try_cpu}"
+ATOMICITYH=$cpu_include_dir
+abi_baseline_pair=${try_cpu}-${host_os}
# Set any OS-dependent bits.
# Set the os_include_dir.
@@ -136,8 +132,6 @@ case "${target_os}" in
;;
freebsd*)
os_include_dir="os/bsd/freebsd"
- # The FreeBSD ABI is expressed in the major version number only.
- abi_baseline_triplet=`echo ${target} | sed 's,\(\.[0-9]*\)*$,,'`
;;
gnu* | linux*)
os_include_dir="os/gnu-linux"
@@ -160,13 +154,13 @@ case "${target_os}" in
netbsd*)
os_include_dir="os/bsd/netbsd"
;;
- solaris2.5*)
+ solaris2.5 | solaris2.5.[0-9])
os_include_dir="os/solaris/solaris2.5"
;;
- solaris2.6*)
+ solaris2.6)
os_include_dir="os/solaris/solaris2.6"
;;
- solaris2.[78]*)
+ solaris2.[789] | solaris2.1[0-9])
os_include_dir="os/solaris/solaris2.7"
;;
windiss*)
@@ -188,4 +182,19 @@ case "${target}" in
mips*-*-linux*)
ATOMICITYH="cpu/mips"
;;
+ x86_64-*-linux*)
+ abi_baseline_pair="x86_64-linux-gnu"
+ ;;
+ alpha*-*-freebsd5*)
+ abi_baseline_pair="alpha-freebsd5"
+ ;;
+ i*86-*-freebsd4*)
+ abi_baseline_pair="i386-freebsd4"
+ ;;
+ i*86-*-freebsd5*)
+ abi_baseline_pair="i386-freebsd5"
+ ;;
+ sparc*-*-freebsd5*)
+ abi_baseline_pair="sparc-freebsd5"
+ ;;
esac
diff --git a/libstdc++-v3/docs/doxygen/Intro.3 b/libstdc++-v3/docs/doxygen/Intro.3
index fc44025c0c3..26b62512147 100644
--- a/libstdc++-v3/docs/doxygen/Intro.3
+++ b/libstdc++-v3/docs/doxygen/Intro.3
@@ -1,8 +1,8 @@
.\" t
.\" This man page is released under the FDL as part of libstdc++-v3.
-.TH Intro 3 "27 March 2002" "GNU libstdc++-v3" "Standard C++ Library"
+.TH C++Intro 3 "25 Febuary 2003" "GNU libstdc++-v3" "Standard C++ Library"
.SH NAME
-Intro \- Introduction to the GNU libstdc++-v3 man pages
+C++Intro \- Introduction to the GNU libstdc++-v3 man pages
.SH DESCRIPTION
This man page serves as a brief introduction to the GNU implementation of
the Standard C++ Library. For a better introduction and more complete
@@ -12,10 +12,10 @@ homepage listed at the end.
.P
All standard library entities are declared within
.I namespace std
-and have manual entries beginning with "std_". For example, to see
+and have manual entries beginning with "std::". For example, to see
documentation of the template class
.I std::vector
-one would use "man std_vector". Some entities do not have a separate man
+one would use "man std::vector". Some entities do not have a separate man
page; for those see the main listing in "man Namespace_Std".
.P
All the man pages are automatically generated by Doxygen. For more
@@ -37,7 +37,7 @@ Binder_functors Functors which "remember" an argument.
Comparison_functors Functors wrapping built-in comparisons.
Containers An introduction to container classes.
Func_ptr_functors Functors for use with pointers to functions.
-Intro This page.
+C++Intro This page.
Intro_functors An introduction to function objects, or functors.
Iterator_types Programatically distinguishing iterators/pointers.
Logical_functors Functors wrapping the Boolean operations.
@@ -112,10 +112,9 @@ need to know about it, but it can be useful. See FAQ 2.5.
.TP
.I libstdc++.so[.N]
The library implementation in shared object form. This will be used in
-preference to the static archive form by default. Currently N will either
-start with 3 or with 4, but your system vendor may change the name as they
-see fit. If N is in the 2.x series, then you are looking at the old
-libstdc++-v2 library, which we do not maintain.
+preference to the static archive form by default. N will be a number equal
+to or greater than 3. If N is in the 2.x series, then you are looking at
+the old libstdc++-v2 library, which we do not maintain.
.TP
.I libstdc++.la
.TP
diff --git a/libstdc++-v3/docs/doxygen/TODO b/libstdc++-v3/docs/doxygen/TODO
index 0b6e3d6c00b..3c895907780 100644
--- a/libstdc++-v3/docs/doxygen/TODO
+++ b/libstdc++-v3/docs/doxygen/TODO
@@ -19,11 +19,12 @@ entity to the generated TODO page.
-----------------------------------------------------------
c17 FINISHED (Nothing in Clause 17 "exists" in terms of code.)
-c18 <limits>, Note A
+c18 FINISHED, Note A
c19 Note A
c20 Note A
-c21 Untouched, Note B
-c22 Untouched
+c21 Untouched (top-level class note for basic_string done),
+ Note B
+c22 Untouched; see docs/html/22_locale/*
c23 See doxygroups.cc and Note B. Notes on what invalidates
iterators need to be added. std::list-specific memfns need
to be filled out.
diff --git a/libstdc++-v3/docs/doxygen/filter b/libstdc++-v3/docs/doxygen/filter
new file mode 100755
index 00000000000..4ea2d41b955
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/filter
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+script=$1
+file=$2
+
+# Possibly allow some files to go unchanged. Other
+# future manipulations are likely.
+case $file in
+ */alloc_policies.h)
+ cat $file ;;
+ *) sed -f $script $file ;;
+esac
+
diff --git a/libstdc++-v3/docs/doxygen/filter.sed b/libstdc++-v3/docs/doxygen/filter.sed
new file mode 100644
index 00000000000..e9c11a481c0
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/filter.sed
@@ -0,0 +1,26 @@
+# Input filter for doxygen.
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# Phil Edwards <pme@gcc.gnu.org>
+
+# single+capital is easy
+s/_Tp/Type/g
+s/_\([A-Z]\)/\1/g
+
+# double+lower is not so easy; some names should be left alone.
+# The following is a sloppy start. Possibly just require GNU tools
+# and use extensions.
+s/__a/a/g
+s/__c/c/g
+s/__first/first/g
+s/__in/in/g
+s/__last/last/g
+s/__n/n/g
+s/__out/out/g
+s/__pred/pred/g
+s/__position/position/g
+s/__pos/position/g
+s/__s/s/g
+s/__value/value/g
+s/__x/x/g
+s/__y/y/g
+
diff --git a/libstdc++-v3/docs/doxygen/mainpage.html b/libstdc++-v3/docs/doxygen/mainpage.html
index f205d5f344c..e0998fc0320 100644
--- a/libstdc++-v3/docs/doxygen/mainpage.html
+++ b/libstdc++-v3/docs/doxygen/mainpage.html
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Main Page</title>
+<title>libstdc++-v3 Source: Main Index</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
@@ -23,7 +23,7 @@
<h1>libstdc++-v3 Source Documentation</h1>
-<h2> Documentation Overview </h2>
+<h2>Documentation Overview</h2>
<p class="smallertext">@LEVEL@-level docs, generated @DATE@.</p>
@@ -48,6 +48,7 @@
<ul>
<li><a href="annotated.html">Compound List</a>
<li><a href="classes.html">Alphabetical List</a>
+ <li><a href="namespaces.html">Namespace List</a>
<li><a href="files.html">File List</a>
<li><a href="modules.html">Modules</a>
</ul>
@@ -81,16 +82,6 @@ href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/C++STYLE">C++STYLE</a>.
make sure that the initial formatting is sound.
</p>
-<p>The formatting guidelines for using libstdc++-v3 with doxygen are still
- incomplete. There seems to be a marginal preference for the use of
- Java-Doc style formatting, with the idea that the single-line style
- (triple-slash) is the least intrusive mechanism for getting libstdc++-v3
- documented and cross-referenced while at the same time minimizing
- disruption to the current formatting. Full documentation of functions
- (parameter types, return values, etc) will require the slash-splat-splat
- &quot;extended C&quot; commenting style.
-</p>
-
<h2> Full page index </h2>
<p>Here are entry points to all the pages generated by Doxygen:
<ul>
diff --git a/libstdc++-v3/docs/doxygen/run_doxygen b/libstdc++-v3/docs/doxygen/run_doxygen
index 6a0806ce410..76b51110dff 100644
--- a/libstdc++-v3/docs/doxygen/run_doxygen
+++ b/libstdc++-v3/docs/doxygen/run_doxygen
@@ -1,7 +1,7 @@
#!/bin/sh
# Runs doxygen and massages the output files.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
#
# Synopsis: run_doxygen --mode=[user|maint|man] v3srcdir v3builddir
#
@@ -131,12 +131,11 @@ test $do_man = yes && {
chmod -R u+w $outdir/man/man3/ext
}
-set -e
(
set -e
cd $builddir
- sed -e "s=@outdir@=${outdir}=" \
- -e "s=@srcdir@=${srcdir}=" \
+ sed -e "s=@outdir@=${outdir}=g" \
+ -e "s=@srcdir@=${srcdir}=g" \
-e "s=@html_output_dir@=html_${mode}=" \
-e "s=@enabled_sections@=${enabled_sections}=" \
-e "s=@do_html@=${do_html}=" \
@@ -147,15 +146,29 @@ set -e
$doxygen ${outdir}/${mode}.cfg
echo :: Finished, exit code was $?
)
-set +e
+ret=$?
+test $ret -ne 0 && exit $ret
test $do_html = yes && {
+ cd ${outdir}/html_${mode}
sed -e "s=@LEVEL@=${LEVELtext}=" \
-e "s=@DATE@=${DATEtext}=" \
- ${srcdir}/docs/doxygen/mainpage.html > ${outdir}/html_${mode}/index.html
- cd ${outdir}/html_${mode}
+ ${srcdir}/docs/doxygen/mainpage.html > index.html
+
+ # The following bit of line noise changes annoying
+ # std::foo < typename _Ugly1, typename _Ugly2, .... _DefaultUgly17 >
+ # to user-friendly
+ # std::foo
+ # in the major "Compound List" page.
sed -e 's=\(::[[:alnum:]_]*\)&lt; .* &gt;=\1=' annotated.html > annstrip.html
mv annstrip.html annotated.html
+
+ # Work around a bug in doxygen 1.3.
+ for f in class*html struct*html; do
+ sed '1,10s!^<title> Template!<title>Template !' $f > TEMP
+ mv TEMP $f
+ done
+
cp ${srcdir}/docs/doxygen/tables.html tables.html
echo ::
echo :: HTML pages begin with
@@ -231,7 +244,40 @@ a\
mv TEMP $f
done
-cp ${srcdir}/docs/doxygen/Intro.3 .
+# Also, break this (generated) line up. It's ugly as sin.
+problematic=`grep -l '[^^]Definition at line' *.3`
+for f in $problematic; do
+ sed 's/Definition at line/\
+.PP\
+&/' $f > TEMP
+ mv TEMP $f
+done
+
+cp ${srcdir}/docs/doxygen/Intro.3 C++Intro.3
+
+# Why didn't I do this at the start? Were rabid weasels eating my brain?
+# Who the fsck would "man std_vector" when the class isn't named that?
+for f in std_*; do
+ newname=`echo $f | sed 's/^std_/std::/'`
+ mv $f $newname
+done
+for f in __gnu_cxx_*; do
+ newname=`echo $f | sed 's/^__gnu_cxx_/__gnu_cxx::/'`
+ mv $f $newname
+done
+for f in *__policy_*; do
+ newname=`echo $f | sed 's/__policy_/__policy::/'`
+ mv $f $newname
+done
+
+# Also, for some reason, typedefs don't get their own man pages. Sigh.
+for f in ios streambuf istream ostream iostream stringbuf \
+ istringstream ostringstream stringstream filebuf ifstream \
+ ofstream fstream string;
+do
+ echo ".so man3/std::basic_${f}.3" > std::${f}.3
+ echo ".so man3/std::basic_${f}.3" > std::w${f}.3
+done
echo ::
echo :: Man pages in ${outdir}/man
@@ -243,4 +289,3 @@ echo ::
exit 0
# vim:ts=4:et:
-
diff --git a/libstdc++-v3/docs/doxygen/tables.html b/libstdc++-v3/docs/doxygen/tables.html
index 7c340529352..07e9f3e4b7b 100644
--- a/libstdc++-v3/docs/doxygen/tables.html
+++ b/libstdc++-v3/docs/doxygen/tables.html
@@ -31,10 +31,6 @@
are also noted or incorporated.
</p>
-<p class="smallertext">This will probably be incomplete for a while because
-filling out the tables is mind-frothingly boring. Also, the HTML table
-rendering is ugly. (Update: mozilla 0.9.9 looks MUCH better.)</p>
-
<hr />
<a name="65"><p>
diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in
index 966d6e855bb..f661f925ff2 100644
--- a/libstdc++-v3/docs/doxygen/user.cfg.in
+++ b/libstdc++-v3/docs/doxygen/user.cfg.in
@@ -1,4 +1,4 @@
-# Doxyfile 1.2.18
+# Doxyfile 1.3-rc2
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -43,12 +43,11 @@ OUTPUT_DIRECTORY = @outdir@
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch,
-# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en
-# (Japanese with english messages), Korean, Norwegian, Polish, Portuguese,
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch,
+# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en
+# (Japanese with english messages), Korean, Norwegian, Polish, Portuguese,
# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian.
-
OUTPUT_LANGUAGE = English
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
@@ -68,8 +67,8 @@ EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.
EXTRACT_LOCAL_CLASSES = NO
@@ -89,13 +88,20 @@ HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
# documentation.
HIDE_FRIEND_COMPOUNDS = NO
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
@@ -104,7 +110,7 @@ HIDE_FRIEND_COMPOUNDS = NO
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
+# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
@@ -116,12 +122,12 @@ REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = YES
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
-# members of a class in the documentation of that class as if those members were
-# ordinary class members. Constructors, destructors and assignment operators of
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
+# members of a class in the documentation of that class as if those members were
+# ordinary class members. Constructors, destructors and assignment operators of
# the base classes will not be shown.
-INLINE_INHERITED_MEMB = NO
+INLINE_INHERITED_MEMB = YES
# pedwards -- this is useful, but ch27 gets huge
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
@@ -144,12 +150,6 @@ STRIP_FROM_PATH =
INTERNAL_DOCS = NO
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower case letters. If set to YES upper case letters are also
# allowed. This is useful if you have classes or files whose names only differ
@@ -190,17 +190,17 @@ SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = NO
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
# description. Set this tag to YES if you prefer the old behaviour instead.
MULTILINE_CPP_IS_BRIEF = YES
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
+# If set to NO, the detailed description appears after the member
# documentation.
DETAILS_AT_TOP = NO
@@ -253,8 +253,8 @@ GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
# \deprecated commands in the documentation.
GENERATE_DEPRECATEDLIST= YES
@@ -267,7 +267,7 @@ GENERATE_DEPRECATEDLIST= YES
# You can put \n's in the value part of an alias to insert newlines.
ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." \
-"isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink"
+ "isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink"
# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
@@ -291,9 +291,9 @@ MAX_INITIALIZER_LINES = 0
OPTIMIZE_OUTPUT_FOR_C = NO
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
-# only. Doxygen will then generate output that is more tailored for Java.
-# For instance namespaces will be presented as packages, qualified scopes
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
+# only. Doxygen will then generate output that is more tailored for Java.
+# For instance namespaces will be presented as packages, qualified scopes
# will look different, etc.
OPTIMIZE_OUTPUT_JAVA = NO
@@ -325,6 +325,13 @@ WARNINGS = NO
WARN_IF_UNDOCUMENTED = NO
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = NO
+
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
@@ -375,9 +382,12 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
-EXCLUDE = Makefile CVS
+EXCLUDE = Makefile \
+ CVS \
+ include/bits/demangle.h \
+ stdc++.h.gch
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
# that are symbolic links (a Unix filesystem feature) are excluded from the input.
EXCLUDE_SYMLINKS = NO
@@ -387,8 +397,9 @@ EXCLUDE_SYMLINKS = NO
# certain files from those directories.
EXCLUDE_PATTERNS = CVS \
- stamp-* \
- Makefile
+ stamp-* \
+ Makefile \
+ *gch*
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
@@ -423,7 +434,7 @@ IMAGE_PATH =
# input file. Doxygen will then use the output that the filter program writes
# to standard output.
-INPUT_FILTER =
+INPUT_FILTER = "@srcdir@/docs/doxygen/filter @srcdir@/docs/doxygen/filter.sed"
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
@@ -445,6 +456,12 @@ SOURCE_BROWSER = YES
INLINE_SOURCES = NO
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = NO
+
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
# then for each documented function all documented
# functions referencing it will be listed.
@@ -533,19 +550,19 @@ HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
# written to the html output dir.
-CHM_FILE =
+CHM_FILE =
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non empty doxygen will try to run
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non empty doxygen will try to run
# the html help compiler on the generated index.hhp.
-HHC_LOCATION =
+HHC_LOCATION =
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
@@ -606,13 +623,13 @@ GENERATE_LATEX = NO
LATEX_OUTPUT = latex
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to
-# be invoked. If left blank `latex' will be used as the default command name.
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
LATEX_CMD_NAME = latex
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
# default command name.
MAKEINDEX_CMD_NAME = makeindex
@@ -723,10 +740,10 @@ MAN_OUTPUT = man
MAN_EXTENSION = .3
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
# would be unable to find the correct page. The default is NO.
MAN_LINKS = NO
@@ -743,31 +760,64 @@ MAN_LINKS = NO
GENERATE_XML = NO
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_SCHEMA =
+XML_SCHEMA =
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
# syntax of the XML files.
-XML_DTD =
+XML_DTD =
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
# and incomplete at the moment.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
@@ -860,8 +910,8 @@ GENERATE_TAGFILE =
ALLEXTERNALS = YES
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
# be listed.
EXTERNAL_GROUPS = YES
@@ -883,8 +933,8 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
# or is not a class.
HIDE_UNDOC_RELATIONS = YES
@@ -934,7 +984,7 @@ INCLUDED_BY_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. Possible values are png, jpg, or gif
# If left blank png will be used.
@@ -1022,6 +1072,3 @@ BIN_ABSPATH = /usr/local/bin/
# the documentation for these projects as well.
EXT_DOC_PATHS =
-
-### End of file.
-
diff --git a/libstdc++-v3/docs/html/17_intro/BUGS b/libstdc++-v3/docs/html/17_intro/BUGS
index 04e4bc80623..e71304d0666 100644
--- a/libstdc++-v3/docs/html/17_intro/BUGS
+++ b/libstdc++-v3/docs/html/17_intro/BUGS
@@ -1,7 +1,4 @@
-2000-03-24 libstdc++2.90.8
-
-- testsuite/27_io/istream_extractors_char.cc:
- Failing on all platforms with -O2, working with -O. Need to look at this.
+2003-04-26
- _GLIBCPP_HAS_BUILTIN_SINF: We should still hold out for a cleaner solution the is currenly the case in bits/std_cmath.h.
diff --git a/libstdc++-v3/docs/html/17_intro/CHECKLIST b/libstdc++-v3/docs/html/17_intro/CHECKLIST
index 9d3f80d3e36..ad02b0d8731 100644
--- a/libstdc++-v3/docs/html/17_intro/CHECKLIST
+++ b/libstdc++-v3/docs/html/17_intro/CHECKLIST
@@ -1,6 +1,6 @@
Completion Checklist for the Standard C++ Library
- Updated: 1999-05-18
+ Updated: 2003-04-25
Status Code Legend:
M - Missing
@@ -17,10 +17,8 @@
issues appear [in brackets].
Note that this checklist does not (yet) include all emendations
- recommended by the ISO Library Working Group: (restricted site)
- http://www.cygnus.com/iso/wp/html/fdis/lwg-issues.html
- The LWG has announced its intention to release a public version
- of the issues list, URL to be added here. XXX
+ recommended by the ISO Library Working Group:
+ http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-toc.html
Detailed explanation of status codes:
@@ -36,7 +34,7 @@
It may have an incorrect base class, wrong namespace, wrong
storage class, or simply not fully implement requirements.
However, it may be sufficiently usable to help test other
- components.
+ components.
T - Implemented, pending test/inspection: Implementation believed
to be complete, and informal testing suggests it is ready for
@@ -49,14 +47,14 @@
Inspected, "implementation-defined" documentation accepted,
local usability criteria satisfied, formally inspected for
other untestable conformance. (Untestable requirements
- include exception-safety, thread-safety, worst-case
- complexity, memory cleanliness, usefulness.)
+ include exception-safety, thread-safety, worst-case
+ complexity, memory cleanliness, usefulness.)
P - Portability verified: Qualified on all primary target platforms.
C - Certified: Formally certified to have passed all tests,
inspections, qualifications; approved under "signing authority"
- to be used to satisfy contractual guarantees.
+ to be used to satisfy contractual guarantees.
----------------------------------------------------------------------
<algorithm> <iomanip> <list> <ostream> <streambuf>
@@ -89,11 +87,11 @@ X wctrans_t, wctype_t, and wint_t.
subroutines is implementation-defined.
18.1 Types [lib.support.types]
-X <cstddef>
-X NULL
-X offsetof
-X ptrdiff_t
-X size_t
+X <cstddef>
+X NULL
+X offsetof
+X ptrdiff_t
+X size_t
18.2 Implementation properties [lib.support.limits]
@@ -101,9 +99,6 @@ X size_t
18.2.1 Numeric limits [lib.limits]
- [Note: the numeric_limits templates are now automatically
- generated. ]
-
X template<class T> class numeric_limits;
T enum float_round_style;
@@ -192,7 +187,7 @@ T denorm present = 1;
1 Header <climits> (Table 3):
CHAR_BIT INT_MAX LONG_MIN SCHAR_MIN UCHAR_MAX USHRT_MAX
-X CHAR_MAX INT_MIN MB_LEN_MAX SHRT_MAX UINT_MAX
+X CHAR_MAX INT_MIN MB_LEN_MAX SHRT_MAX UINT_MAX
CHAR_MIN LONG_MAX SCHAR_MAX SHRT_MIN ULONG_MAX
3 Header <cfloat> (Table 4):
@@ -457,7 +452,7 @@ X |Macros: EDOM ERANGE errno |
Header <utility> synopsis
// _lib.operators_, operators:
-X namespace rel_ops {
+T namespace rel_ops {
T template<class T> bool operator!=(const T&, const T&);
T template<class T> bool operator> (const T&, const T&);
T template<class T> bool operator<=(const T&, const T&);
@@ -2280,7 +2275,7 @@ X Functions: localeconv setlocale
Header <deque> synopsis
-X template <class T, class Allocator = allocator<T> > class deque;
+T template <class T, class Allocator = allocator<T> > class deque;
T template <class T, class Allocator>
bool operator==(const deque<T,Allocator>& x, const deque<T,Allocator>& y);
T template <class T, class Allocator>
@@ -2299,7 +2294,7 @@ T template <class T, class Allocator>
Header <list> synopsis
-X template <class T, class Allocator = allocator<T> > class list;
+T template <class T, class Allocator = allocator<T> > class list;
T template <class T, class Allocator>
bool operator==(const list<T,Allocator>& x, const list<T,Allocator>& y);
T template <class T, class Allocator>
@@ -2319,7 +2314,7 @@ T template <class T, class Allocator>
Header <queue> synopsis
namespace std {
-X template <class T, class Container = deque<T> > class queue;
+T template <class T, class Container = deque<T> > class queue;
T template <class T, class Container>
bool operator==(const queue<T, Container>& x,
const queue<T, Container>& y);
@@ -2418,13 +2413,13 @@ T template <class Allocator>
23.2.1 Template class deque [lib.deque]
template <class T, class Allocator = allocator<T> >
-X class deque {
+T class deque {
public:
// types:
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef T value_type;
@@ -2511,14 +2506,14 @@ T template <class T, class Allocator>
23.2.2 Template class list [lib.list]
-X template <class T, class Allocator = allocator<T> >
+T template <class T, class Allocator = allocator<T> >
class list {
public:
// types:
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef T value_type;
@@ -2720,13 +2715,13 @@ T template <class T, class Container>
23.2.4 Template class vector [lib.vector]
template <class T, class Allocator = allocator<T> >
-X class vector {
+T class vector {
public:
// types:
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef T value_type;
@@ -2814,12 +2809,12 @@ T template <class T, class Allocator>
23.2.5 Class vector<bool> [lib.vector.bool]
-X template <class Allocator> class vector<bool, Allocator> {
+T template <class Allocator> class vector<bool, Allocator> {
public:
// types:
T typedef bool const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef bool value_type;
@@ -2925,7 +2920,7 @@ T template <class Allocator>
template <class Key, class T, class Compare = less<Key>,
class Allocator = allocator<pair<const Key, T> > >
-X class map;
+T class map;
T template <class Key, class T, class Compare, class Allocator>
bool operator==(const map<Key,T,Compare,Allocator>& x,
@@ -2978,7 +2973,7 @@ T template <class Key, class T, class Compare, class Allocator>
template <class Key, class Compare = less<Key>,
class Allocator = allocator<Key> >
-X class set;
+T class set;
T template <class Key, class Compare, class Allocator>
bool operator==(const set<Key,Compare,Allocator>& x,
@@ -3031,7 +3026,7 @@ T template <class Key, class Compare, class Allocator>
template <class Key, class T, class Compare = less<Key>,
class Allocator = allocator<pair<const Key, T> > >
-X class map {
+T class map {
public:
// types:
T typedef Key key_type;
@@ -3041,8 +3036,8 @@ T typedef Compare key_compare;
T typedef Allocator allocator_type;
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef typename Allocator::pointer pointer;
@@ -3140,7 +3135,7 @@ T template <class Key, class T, class Compare, class Allocator>
template <class Key, class T, class Compare = less<Key>,
class Allocator = allocator<pair<const Key, T> > >
-X class multimap {
+T class multimap {
public:
// types:
T typedef Key key_type;
@@ -3150,8 +3145,8 @@ T typedef Compare key_compare;
T typedef Allocator allocator_type;
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type
T typedef typename Allocator::pointer pointer;
@@ -3248,7 +3243,7 @@ T template <class Key, class T, class Compare, class Allocator>
template <class Key, class Compare = less<Key>,
class Allocator = allocator<Key> >
-X class set {
+T class set {
public:
// types:
T typedef Key key_type;
@@ -3258,8 +3253,8 @@ T typedef Compare value_compare;
T typedef Allocator allocator_type;
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type;
T typedef typename Allocator::pointer pointer;
@@ -3338,7 +3333,7 @@ T template <class Key, class Compare, class Allocator>
template <class Key, class Compare = less<Key>,
class Allocator = allocator<Key> >
-X class multiset {
+T class multiset {
public:
// types:
T typedef Key key_type;
@@ -3348,8 +3343,8 @@ T typedef Compare value_compare;
T typedef Allocator allocator_type;
T typedef typename Allocator::reference reference;
T typedef typename Allocator::const_reference const_reference;
-X typedef implementation defined iterator;
-X typedef implementation defined const_iterator;
+T typedef implementation defined iterator;
+T typedef implementation defined const_iterator;
T typedef implementation defined size_type;
T typedef implementation defined difference_type
T typedef typename Allocator::pointer pointer;
@@ -3430,14 +3425,7 @@ T template <class Key, class Compare, class Allocator>
Header <bitset> synopsis
- [What's this stuff?
- #include <cstddef> // for size_t
- #include <string>
- #include <stdexcept> // for invalid_argument,
- // out_of_range, overflow_error
- #include <iosfwd> // for istream, ostream
- ]
-X template <size_t N> class bitset;
+T template <size_t N> class bitset;
// _lib.bitset.operators_ bitset operations:
T template <size_t N>
bitset<N> operator&(const bitset<N>&, const bitset<N>&);
@@ -3452,7 +3440,7 @@ T template <class charT, class traits, size_t N>
basic_ostream<charT, traits>&
operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x);
-X template<size_t N> class bitset {
+T template<size_t N> class bitset {
public:
// bit reference:
T class reference {
diff --git a/libstdc++-v3/docs/html/17_intro/contribute.html b/libstdc++-v3/docs/html/17_intro/contribute.html
index 17bc65f4ed0..3219f16da0e 100644
--- a/libstdc++-v3/docs/html/17_intro/contribute.html
+++ b/libstdc++-v3/docs/html/17_intro/contribute.html
@@ -11,8 +11,10 @@
<!-- #include virtual="/include/header-subpages.html"-->
<body>
<h2>How to contribute</h2>
-<p>
-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:
+<p> The Standard C++ Library v3, follows an open development
+model. Active contributors are assigned maintainer-ship
+responsibility, and given write access to the CVS repository. First
+time contributors should follow this procedure:
</p>
<hr />
@@ -33,9 +35,8 @@ and their web-site is right
<a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998">buy the standard on-line.)</a>
</li>
-<li> The library working group bugs, and known defects, can be obtained at these web sites:
+<li> The library working group bugs, and known defects, can be obtained here:
<a href="http://www.dkuug.dk/jtc1/sc22/wg21/">http://www.dkuug.dk/jtc1/sc22/wg21 </a>
- and <a href="http://www.comeaucomputing.com/iso/">http://www.comeaucomputing.com/iso/</a>
</li>
<li> The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found <a href="http://reality.sgi.com/austern_mti/std-c++/faq.html"> here </a>.
@@ -60,11 +61,31 @@ and their web-site is right
Small changes can be accepted without a copyright assignment form on
file. New code and additions to the library need completed copyright
assignment form on file at the FSF. Note: your employer may be required
-to fill out appropriate disclaimer forms as well. Here is the <a href="libstdc++-assign.txt"> form. </a>
+to fill out appropriate disclaimer forms as well.
+</p>
+
+<p> Historically, the libstdc++ assignment form added the following question:
+</p>
-Please contact <a href="mailto:benjamin@cygnus.com">Benjamin
+<code>[Which Belgian comic book character is better, Tintin or
+Asterix, and why?]</code>
+
+<p>
+While not strictly necessary, humoring the maintainers and answering
+this question would be appreciated.
+</p>
+
+<p>
+For more information about getting a copyright assignment, please see
+<a href=http://www.gnu.org/prep/maintain_4.html#SEC4=> Legal Issues</a>
+</p>
+
+<p>
+Please contact <a href="mailto:bkoz+assign@redhat.com">Benjamin
Kosnik</a> if you are confused about the assignment or have general
-licensing questions.
+licensing questions. When requesting an assignment form from <a
+HREF="mailto:assign@gnu.org">assign@gnu.org</a>, please cc
+the above libstdc++ maintainer so that progress can be monitored.
</p>
@@ -82,7 +103,7 @@ response from the maintainers) it would have all of these pieces:
<li> A description of the bug and how your patch fixes this bug. For
new features a description of the feature and your implementation. </li>
- <li> A ChangeLog entry as plaintext; see the various ChangeLog files
+ <li> A ChangeLog entry as plain text; 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
@@ -98,7 +119,7 @@ response from the maintainers) it would have all of these pieces:
<li> 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. </li>
+discussion should be sent to the libstdc++ mailing list. </li>
</ul>
diff --git a/libstdc++-v3/docs/html/17_intro/howto.html b/libstdc++-v3/docs/html/17_intro/howto.html
index 9d10becfad4..fc43d0f5892 100644
--- a/libstdc++-v3/docs/html/17_intro/howto.html
+++ b/libstdc++-v3/docs/html/17_intro/howto.html
@@ -163,7 +163,7 @@
<p>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
-<a href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-26.4">item [26.4]</a>.
+<a href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4">item [27.4]</a>.
</p>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
@@ -189,6 +189,9 @@
<p>For each entry, we give the section number of the standard, when
applicable. This list is probably incomplet and inkorrekt.
</p>
+ <p><strong>[1.9]/11 #3</strong> If <code>isatty(3)</code> is true, then
+ interactive stream support is implied.
+ </p>
<p><strong>[17.4.4.5]</strong> Non-reentrant functions are probably best
discussed in the various sections on multithreading (see above).
</p>
@@ -216,7 +219,8 @@
<a href="../18_support/howto.html#5">runtime demangler function</a>.
(The classes in <code>&lt;stdexcept&gt;</code> have constructors which
require an argument to use later for <code>what()</code> calls, so the
- question does not arise in most user-defined exceptions.)
+ problem of <code>what()</code>'s value does not arise in most
+ user-defined exceptions.)
</p>
<p><strong>[18.5.1]/7</strong> The return value of
<code>std::type_info::name()</code> is the mangled type name (see the
diff --git a/libstdc++-v3/docs/html/17_intro/porting.html b/libstdc++-v3/docs/html/17_intro/porting.html
index c28f89f407f..ac51f450673 100644
--- a/libstdc++-v3/docs/html/17_intro/porting.html
+++ b/libstdc++-v3/docs/html/17_intro/porting.html
@@ -2,60 +2,84 @@
<head>
<title>Porting libstdc++-v3</title>
<meta http-equiv="Content-Type" content="text/html">
-<meta name=description content="Porting libstdc++-v3">
-<meta name=generator content="makeinfo 4.2">
-<link href="http://www.gnu.org/software/texinfo/" rel=generator-home>
+<meta name="description" content="Porting libstdc++-v3">
+<meta name="generator" content="makeinfo 4.3">
+<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
+<!--
+Copyright &copy; 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ <p>Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being "GNU General Public License", the Front-Cover
+texts being (a) (see below), and with the Back-Cover Texts being (b)
+(see below). A copy of the license is included in the section entitled
+"GNU Free Documentation License".
+
+ <p>(a) The FSF's Front-Cover Text is:
+
+ <p>A GNU Manual
+
+ <p>(b) The FSF's Back-Cover Text is:
+
+ <p>You have freedom to copy and modify this GNU Manual, like GNU
+ software. Copies published by the Free Software Foundation raise
+ funds for GNU development.-->
</head>
<body>
-<h1>Porting libstdc++-v3</h1>
+<h1 class="settitle">Porting libstdc++-v3</h1>
+<div class="node">
<p><hr>
Node:<a name="Top">Top</a>,
-Next:<a rel=next accesskey=n href="#Operating%20system">Operating system</a>,
-Up:<a rel=up accesskey=u href="#dir">(dir)</a>
+Next:<a rel="next" accesskey="n" href="#Operating%20system">Operating system</a>,
+Up:<a rel="up" accesskey="u" href="#dir">(dir)</a>
<br>
+</div>
-<h2>Porting libstdc++-v3</h2>
+<h2 class="unnumbered">Porting libstdc++-v3</h2>
-<p>This document explains how to port libstdc++-v3 (the GNU C++ library) to
+ <p>This document explains how to port libstdc++-v3 (the GNU C++ library) to
a new target.
-<p>In order to make the GNU C++ library (libstdc++-v3) work with a new
+ <p>In order to make the GNU C++ library (libstdc++-v3) work with a new
target, you must edit some configuration files and provide some new
header files. Unless this is done, libstdc++-v3 will use generic
settings which may not be correct for your target; even if they are
correct, they will likely be inefficient.
-<p>Before you get started, make sure that you have a working C library on
+ <p>Before you get started, make sure that you have a working C library on
your target. The C library need not precisely comply with any
particular standard, but should generally conform to the requirements
imposed by the ANSI/ISO standard.
-<p>In addition, you should try to verify that the C++ compiler generally
+ <p>In addition, you should try to verify that the C++ compiler generally
works. It is difficult to test the C++ compiler without a working
library, but you should at least try some minimal test cases.
-<p>Here are the primary steps required to port the library:
+ <p>Here are the primary steps required to port the library:
-<ul>
-<li><a accesskey=1 href="#Operating%20system">Operating system</a>: Configuring for your operating system.
-<li><a accesskey=2 href="#CPU">CPU</a>: Configuring for your processor chip.
-<li><a accesskey=3 href="#Character%20types">Character types</a>: Implementing character classification.
-<li><a accesskey=4 href="#Thread%20safety">Thread safety</a>: Implementing atomic operations.
-<li><a accesskey=5 href="#Numeric%20limits">Numeric limits</a>: Implementing numeric limits.
-<li><a accesskey=6 href="#Libtool">Libtool</a>: Using libtool.
-<li><a accesskey=7 href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>: How you can copy and share this manual.
+<ul class="menu">
+<li><a accesskey="1" href="#Operating%20system">Operating system</a>: Configuring for your operating system.
+<li><a accesskey="2" href="#CPU">CPU</a>: Configuring for your processor chip.
+<li><a accesskey="3" href="#Character%20types">Character types</a>: Implementing character classification.
+<li><a accesskey="4" href="#Thread%20safety">Thread safety</a>: Implementing atomic operations.
+<li><a accesskey="5" href="#Numeric%20limits">Numeric limits</a>: Implementing numeric limits.
+<li><a accesskey="6" href="#Libtool">Libtool</a>: Using libtool.
+<li><a accesskey="7" href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>: How you can copy and share this manual.
</ul>
+<div class="node">
<p><hr>
Node:<a name="Operating%20system">Operating system</a>,
-Next:<a rel=next accesskey=n href="#CPU">CPU</a>,
-Previous:<a rel=previous accesskey=p href="#Top">Top</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#CPU">CPU</a>,
+Previous:<a rel="previous" accesskey="p" href="#Top">Top</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>Operating system</h2>
+<h2 class="chapter">Operating system</h2>
-<p>If you are porting to a new operating system (as opposed to a new chip
+ <p>If you are porting to a new operating system (as opposed to a new chip
using an existing operating system), you will need to create a new
directory in the <code>config/os</code> hierarchy. For example, the IRIX
configuration files are all in <code>config/os/irix</code>. There is no set
@@ -68,7 +92,7 @@ directory. The important information is that there needs to be a
directory under <code>config/os</code> to store the files for your operating
system.
-<p>You might have to change the <code>configure.target</code> file to ensure that
+ <p>You might have to change the <code>configure.target</code> file to ensure that
your new directory is activated. Look for the switch statement that sets
<code>os_include_dir</code>, and add a pattern to handle your operating system
if the default will not suffice. The switch statement switches on only
@@ -76,17 +100,17 @@ the OS portion of the standard target triplet; e.g., the <code>solaris2.8</code>
in <code>sparc-sun-solaris2.8</code>. If the new directory is named after the
OS portion of the triplet (the default), then nothing needs to be changed.
-<p>The first file to create in this directory, should be called
+ <p>The first file to create in this directory, should be called
<code>os_defines.h</code>. This file contains basic macro definitions
that are required to allow the C++ library to work with your C library.
This file should provide macro definitions for <code>__off_t</code>,
<code>__off64_t</code>, and <code>__ssize_t</code>. Typically, this just looks
like:
-<br><pre>#define __off_t off_t
-#define __off64_t off64_t
-#define __ssize_t ssize_t
-</pre>
+<pre class="example"> #define __off_t off_t
+ #define __off64_t off64_t
+ #define __ssize_t ssize_t
+ </pre>
<p>You don't have to provide these definitions if your system library
already defines these types - but the only library known to provide
@@ -95,7 +119,7 @@ provide these macros. Note that this file does not have to include a
header file that defines <code>off_t</code>, or the other types; you simply
have to provide the macros.
-<p>In addition, several libstdc++-v3 source files unconditionally define
+ <p>In addition, several libstdc++-v3 source files unconditionally define
the macro <code>_POSIX_SOURCE</code>. On many systems, defining this macro
causes large portions of the C library header files to be eliminated
at preprocessing time. Therefore, you may have to <code>#undef</code> this
@@ -110,71 +134,112 @@ need to define. You will need to add them to the
target. It will not work to simply define these macros in
<code>os_defines.h</code>.
-<p>At this time, there is one libstdc++-v3-specific macro which may be
+ <p>At this time, there are a few libstdc++-v3-specific macro which may be
defined. <code>_G_USING_THUNKS</code> may be defined to 0 to express that the
port doesn't use thunks (although it is unclear that this is still
useful since libio support isn't currently working and the g++ v3 ABI
invalidates the assumption that some ports don't use thunks).
-<p>Finally, you should bracket the entire file in an include-guard, like
+ <p><code>_GLIBCPP_USE_C99_CHECK</code> may be defined to 1 to check C99
+function declarations (which are not covered by specialization below)
+found in system headers against versions found in the library headers
+derived from the standard.
+
+ <p><code>_GLIBCPP_USE_C99_DYNAMIC</code> may be defined to an expression that
+yields 0 if and only if the system headers are exposing proper support
+for C99 functions (which are not covered by specialization below). If
+defined, it must be 0 while bootstrapping the compiler/rebuilding the
+library.
+
+ <p><code>_GLIBCPP_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check
+the set of C99 long long function declarations found in system headers
+against versions found in the library headers derived from the
+standard.
+
+ <p><code>_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an
+expression that yields 0 if and only if the system headers are
+exposing proper support for the set of C99 long long functions. If
+defined, it must be 0 while bootstrapping the compiler/rebuilding the
+library.
+
+ <p><code>_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an
+expression that yields 0 if and only if the system headers
+are exposing proper support for the related set of macros. If defined,
+it must be 0 while bootstrapping the compiler/rebuilding the library.
+
+ <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined
+to 1 to check the related set of function declarations found in system
+headers against versions found in the library headers derived from
+the standard.
+
+ <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined
+to an expression that yields 0 if and only if the system headers
+are exposing proper support for the related set of functions. If defined,
+it must be 0 while bootstrapping the compiler/rebuilding the library.
+
+ <p>Finally, you should bracket the entire file in an include-guard, like
this:
-<br><pre>#ifndef _GLIBCPP_OS_DEFINES
-#define _GLIBCPP_OS_DEFINES
-...
-#endif
-</pre>
+<pre class="example"> #ifndef _GLIBCPP_OS_DEFINES
+ #define _GLIBCPP_OS_DEFINES
+ ...
+ #endif
+ </pre>
-<p>We recommend copying an existing <code>os_defines.h</code> to use as a
+ <p>We recommend copying an existing <code>os_defines.h</code> to use as a
starting point.
+<div class="node">
<p><hr>
Node:<a name="CPU">CPU</a>,
-Next:<a rel=next accesskey=n href="#Character%20types">Character types</a>,
-Previous:<a rel=previous accesskey=p href="#Operating%20system">Operating system</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#Character%20types">Character types</a>,
+Previous:<a rel="previous" accesskey="p" href="#Operating%20system">Operating system</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>CPU</h2>
+<h2 class="chapter">CPU</h2>
-<p>If you are porting to a new chip (as opposed to a new operating system
+ <p>If you are porting to a new chip (as opposed to a new operating system
running on an existing chip), you will need to create a new directory in the
<code>config/cpu</code> hierarchy. Much like the <a href="#Operating%20system">Operating system</a> setup,
there are no strict rules on how to organize the CPU configuration
directory, but careful naming choices will allow the configury to find your
setup files without explicit help.
-<p>We recommend that for a target triplet <code>&lt;CPU&gt;-&lt;vendor&gt;-&lt;OS&gt;</code>, you
+ <p>We recommend that for a target triplet <code>&lt;CPU&gt;-&lt;vendor&gt;-&lt;OS&gt;</code>, you
name your configuration directory <code>config/cpu/&lt;CPU&gt;</code>. If you do this,
the configury will find the directory itself. Otherwise you will need to
edit the <code>configure.target</code> file and, in the switch statement that sets
<code>cpu_include_dir</code>, add a pattern to handle your chip.
-<p>Note that some chip families share a single configuration directory, for
+ <p>Note that some chip families share a single configuration directory, for
example, <code>alpha</code>, <code>alphaev5</code>, and <code>alphaev6</code> all use the
<code>config/cpu/alpha</code> directory, and there is an entry in the
<code>configure.target</code> switch statement to handle this.
-<p>The <code>cpu_include_dir</code> sets default locations for the files controlling
+ <p>The <code>cpu_include_dir</code> sets default locations for the files controlling
<a href="#Thread%20safety">Thread safety</a> and <a href="#Numeric%20limits">Numeric limits</a>, if the defaults are not
appropriate for your chip.
+<div class="node">
<p><hr>
Node:<a name="Character%20types">Character types</a>,
-Next:<a rel=next accesskey=n href="#Thread%20safety">Thread safety</a>,
-Previous:<a rel=previous accesskey=p href="#CPU">CPU</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#Thread%20safety">Thread safety</a>,
+Previous:<a rel="previous" accesskey="p" href="#CPU">CPU</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>Character types</h2>
+<h2 class="chapter">Character types</h2>
-<p>The library requires that you provide three header files to implement
+ <p>The library requires that you provide three header files to implement
character classification, analogous to that provided by the C libraries
<code>&lt;ctype.h&gt;</code> header. You can model these on the files provided in
<code>config/os/generic</code>. However, these files will almost
certainly need some modification.
-<p>The first file to write is <code>ctype_base.h</code>. This file provides
+ <p>The first file to write is <code>ctype_base.h</code>. This file provides
some very basic information about character classification. The libstdc++-v3
library assumes that your C library implements <code>&lt;ctype.h&gt;</code> by using
a table (indexed by character code) containing integers, where each of
@@ -184,33 +249,33 @@ file gives the type of the integer, and the values of the various bit
masks. You will have to peer at your own <code>&lt;ctype.h&gt;</code> to figure out
how to define the values required by this file.
-<p>The <code>ctype_base.h</code> header file does not need include guards.
+ <p>The <code>ctype_base.h</code> header file does not need include guards.
It should contain a single <code>struct</code> definition called
<code>ctype_base</code>. This <code>struct</code> should contain two type
declarations, and one enumeration declaration, like this example, taken
from the IRIX configuration:
-<br><pre>struct ctype_base
-{
- typedef unsigned int mask;
- typedef int* __to_type;
-
- enum
- {
- space = _ISspace,
- print = _ISprint,
- cntrl = _IScntrl,
- upper = _ISupper,
- lower = _ISlower,
- alpha = _ISalpha,
- digit = _ISdigit,
- punct = _ISpunct,
- xdigit = _ISxdigit,
- alnum = _ISalnum,
- graph = _ISgraph
- };
-};
-</pre>
+<pre class="example"> struct ctype_base
+ {
+ typedef unsigned int mask;
+ typedef int* __to_type;
+
+ enum
+ {
+ space = _ISspace,
+ print = _ISprint,
+ cntrl = _IScntrl,
+ upper = _ISupper,
+ lower = _ISlower,
+ alpha = _ISalpha,
+ digit = _ISdigit,
+ punct = _ISpunct,
+ xdigit = _ISxdigit,
+ alnum = _ISalnum,
+ graph = _ISgraph
+ };
+ };
+ </pre>
<p>The <code>mask</code> type is the type of the elements in the table. If your
C library uses a table to map lower-case numbers to upper-case numbers,
@@ -220,29 +285,29 @@ penalty, or if your library doesn't implement <code>toupper</code> and
<code>tolower</code> in this way, you can pick any pointer-to-integer type,
but you must still define the type.
-<p>The enumeration should give definitions for all the values in the above
+ <p>The enumeration should give definitions for all the values in the above
example, using the values from your native <code>&lt;ctype.h&gt;</code>. They can
be given symbolically (as above), or numerically, if you prefer. You do
not have to include <code>&lt;ctype.h&gt;</code> in this header; it will always be
included before <code>ctype_base.h</code> is included.
-<p>The next file to write is <code>ctype_noninline.h</code>, which also does
+ <p>The next file to write is <code>ctype_noninline.h</code>, which also does
not require include guards. This file defines a few member functions
that will be included in <code>include/bits/locale_facets.h</code>. The first
function that must be written is the <code>ctype&lt;char&gt;::ctype</code>
constructor. Here is the IRIX example:
-<br><pre>ctype&lt;char&gt;::ctype(const mask* __table = 0, bool __del = false,
- size_t __refs = 0)
- : _Ctype_nois&lt;char&gt;(__refs), _M_del(__table != 0 &amp;&amp; __del),
- _M_toupper(NULL),
- _M_tolower(NULL),
- _M_ctable(NULL),
- _M_table(!__table
- ? (const mask*) (__libc_attr._ctype_tbl-&gt;_class + 1)
- : __table)
- { }
-</pre>
+<pre class="example"> ctype&lt;char&gt;::ctype(const mask* __table = 0, bool __del = false,
+ size_t __refs = 0)
+ : _Ctype_nois&lt;char&gt;(__refs), _M_del(__table != 0 &amp;&amp; __del),
+ _M_toupper(NULL),
+ _M_tolower(NULL),
+ _M_ctable(NULL),
+ _M_table(!__table
+ ? (const mask*) (__libc_attr._ctype_tbl-&gt;_class + 1)
+ : __table)
+ { }
+ </pre>
<p>There are two parts of this that you might choose to alter. The first,
and most important, is the line involving <code>__libc_attr</code>. That is
@@ -253,140 +318,142 @@ operating system's tables to map upper-case letters to lower-case, and
vice versa, you should initialize <code>_M_toupper</code> and
<code>_M_tolower</code> with those tables, in similar fashion.
-<p>Now, you have to write two functions to convert from upper-case to
+ <p>Now, you have to write two functions to convert from upper-case to
lower-case, and vice versa. Here are the IRIX versions:
-<br><pre>char
-ctype&lt;char&gt;::do_toupper(char __c) const
-{ return _toupper(__c); }
-
-char
-ctype&lt;char&gt;::do_tolower(char __c) const
-{ return _tolower(__c); }
-</pre>
+<pre class="example"> char
+ ctype&lt;char&gt;::do_toupper(char __c) const
+ { return _toupper(__c); }
+
+ char
+ ctype&lt;char&gt;::do_tolower(char __c) const
+ { return _tolower(__c); }
+ </pre>
<p>Your C library provides equivalents to IRIX's <code>_toupper</code> and
<code>_tolower</code>. If you initialized <code>_M_toupper</code> and
<code>_M_tolower</code> above, then you could use those tables instead.
-<p>Finally, you have to provide two utility functions that convert strings
+ <p>Finally, you have to provide two utility functions that convert strings
of characters. The versions provided here will always work - but you
could use specialized routines for greater performance if you have
machinery to do that on your system:
-<br><pre>const char*
-ctype&lt;char&gt;::do_toupper(char* __low, const char* __high) const
-{
- while (__low &lt; __high)
- {
- *__low = do_toupper(*__low);
- ++__low;
- }
- return __high;
-}
-
-const char*
-ctype&lt;char&gt;::do_tolower(char* __low, const char* __high) const
-{
- while (__low &lt; __high)
- {
- *__low = do_tolower(*__low);
- ++__low;
- }
- return __high;
-}
-</pre>
-
-<p>You must also provide the <code>ctype_inline.h</code> file, which
+<pre class="example"> const char*
+ ctype&lt;char&gt;::do_toupper(char* __low, const char* __high) const
+ {
+ while (__low &lt; __high)
+ {
+ *__low = do_toupper(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+
+ const char*
+ ctype&lt;char&gt;::do_tolower(char* __low, const char* __high) const
+ {
+ while (__low &lt; __high)
+ {
+ *__low = do_tolower(*__low);
+ ++__low;
+ }
+ return __high;
+ }
+ </pre>
+
+ <p>You must also provide the <code>ctype_inline.h</code> file, which
contains a few more functions. On most systems, you can just copy
<code>config/os/generic/ctype_inline.h</code> and use it on your system.
-<p>In detail, the functions provided test characters for particular
+ <p>In detail, the functions provided test characters for particular
properties; they are analogous to the functions like <code>isalpha</code> and
<code>islower</code> provided by the C library.
-<p>The first function is implemented like this on IRIX:
+ <p>The first function is implemented like this on IRIX:
-<br><pre>bool
-ctype&lt;char&gt;::
-is(mask __m, char __c) const throw()
-{ return (_M_table)[(unsigned char)(__c)] &amp; __m; }
-</pre>
+<pre class="example"> bool
+ ctype&lt;char&gt;::
+ is(mask __m, char __c) const throw()
+ { return (_M_table)[(unsigned char)(__c)] &amp; __m; }
+ </pre>
<p>The <code>_M_table</code> is the table passed in above, in the constructor.
This is the table that contains the bitmasks for each character. The
implementation here should work on all systems.
-<p>The next function is:
+ <p>The next function is:
-<br><pre>const char*
-ctype&lt;char&gt;::
-is(const char* __low, const char* __high, mask* __vec) const throw()
-{
- while (__low &lt; __high)
- *__vec++ = (_M_table)[(unsigned char)(*__low++)];
- return __high;
-}
-</pre>
+<pre class="example"> const char*
+ ctype&lt;char&gt;::
+ is(const char* __low, const char* __high, mask* __vec) const throw()
+ {
+ while (__low &lt; __high)
+ *__vec++ = (_M_table)[(unsigned char)(*__low++)];
+ return __high;
+ }
+ </pre>
<p>This function is similar; it copies the masks for all the characters
from <code>__low</code> up until <code>__high</code> into the vector given by
<code>__vec</code>.
-<p>The last two functions again are entirely generic:
-
-<br><pre>const char*
-ctype&lt;char&gt;::
-scan_is(mask __m, const char* __low, const char* __high) const throw()
-{
- while (__low &lt; __high &amp;&amp; !this-&gt;is(__m, *__low))
- ++__low;
- return __low;
-}
-
-const char*
-ctype&lt;char&gt;::
-scan_not(mask __m, const char* __low, const char* __high) const throw()
-{
- while (__low &lt; __high &amp;&amp; this-&gt;is(__m, *__low))
- ++__low;
- return __low;
-}
-</pre>
-
+ <p>The last two functions again are entirely generic:
+
+<pre class="example"> const char*
+ ctype&lt;char&gt;::
+ scan_is(mask __m, const char* __low, const char* __high) const throw()
+ {
+ while (__low &lt; __high &amp;&amp; !this-&gt;is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+
+ const char*
+ ctype&lt;char&gt;::
+ scan_not(mask __m, const char* __low, const char* __high) const throw()
+ {
+ while (__low &lt; __high &amp;&amp; this-&gt;is(__m, *__low))
+ ++__low;
+ return __low;
+ }
+ </pre>
+
+<div class="node">
<p><hr>
Node:<a name="Thread%20safety">Thread safety</a>,
-Next:<a rel=next accesskey=n href="#Numeric%20limits">Numeric limits</a>,
-Previous:<a rel=previous accesskey=p href="#Character%20types">Character types</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#Numeric%20limits">Numeric limits</a>,
+Previous:<a rel="previous" accesskey="p" href="#Character%20types">Character types</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>Thread safety</h2>
+<h2 class="chapter">Thread safety</h2>
-<p>The C++ library string functionality requires a couple of atomic
+ <p>The C++ library string functionality requires a couple of atomic
operations to provide thread-safety. If you don't take any special
action, the library will use stub versions of these functions that are
not thread-safe. They will work fine, unless your applications are
multi-threaded.
-<p>If you want to provide custom, safe, versions of these functions, there
+ <p>If you want to provide custom, safe, versions of these functions, there
are two distinct approaches. One is to provide a version for your CPU,
using assembly language constructs. The other is to use the
thread-safety primitives in your operating system. In either case, you
make a file called <code>atomicity.h</code>, and the variable
<code>ATOMICITYH</code> must point to this file.
-<p>If you are using the assembly-language approach, put this code in
+ <p>If you are using the assembly-language approach, put this code in
<code>config/cpu/&lt;chip&gt;/atomicity.h</code>, where chip is the name of
your processor (see <a href="#CPU">CPU</a>). No additional changes are necessary to
locate the file in this case; <code>ATOMICITYH</code> will be set by default.
-<p>If you are using the operating system thread-safety primitives approach,
+ <p>If you are using the operating system thread-safety primitives approach,
you can also put this code in the same CPU directory, in which case no more
work is needed to locate the file. For examples of this approach,
see the <code>atomicity.h</code> file for IRIX or IA64.
-<p>Alternatively, if the primitives are more closely related to the OS
+ <p>Alternatively, if the primitives are more closely related to the OS
than they are to the CPU, you can put the <code>atomicity.h</code> file in
the <a href="#Operating%20system">Operating system</a> directory instead. In this case, you must
edit <code>configure.target</code>, and in the switch statement that handles
@@ -394,133 +461,139 @@ operating systems, override the <code>ATOMICITYH</code> variable to point to
the appropriate <code>os_include_dir</code>. For examples of this approach,
see the <code>atomicity.h</code> file for AIX.
-<p>With those bits out of the way, you have to actually write
+ <p>With those bits out of the way, you have to actually write
<code>atomicity.h</code> itself. This file should be wrapped in an
include guard named <code>_BITS_ATOMICITY_H</code>. It should define one
type, and two functions.
-<p>The type is <code>_Atomic_word</code>. Here is the version used on IRIX:
+ <p>The type is <code>_Atomic_word</code>. Here is the version used on IRIX:
-<br><pre>typedef long _Atomic_word;
-</pre>
+<pre class="example"> typedef long _Atomic_word;
+ </pre>
<p>This type must be a signed integral type supporting atomic operations.
If you're using the OS approach, use the same type used by your system's
primitives. Otherwise, use the type for which your CPU provides atomic
primitives.
-<p>Then, you must provide two functions. The bodies of these functions
+ <p>Then, you must provide two functions. The bodies of these functions
must be equivalent to those provided here, but using atomic operations:
-<br><pre>static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (_Atomic_word* __mem, int __val)
-{
- _Atomic_word __result = *__mem;
- *__mem += __val;
- return __result;
-}
-
-static inline void
-__attribute__ ((__unused__))
-__atomic_add (_Atomic_word* __mem, int __val)
-{
- *__mem += __val;
-}
-</pre>
-
+<pre class="example"> static inline _Atomic_word
+ __attribute__ ((__unused__))
+ __exchange_and_add (_Atomic_word* __mem, int __val)
+ {
+ _Atomic_word __result = *__mem;
+ *__mem += __val;
+ return __result;
+ }
+
+ static inline void
+ __attribute__ ((__unused__))
+ __atomic_add (_Atomic_word* __mem, int __val)
+ {
+ *__mem += __val;
+ }
+ </pre>
+
+<div class="node">
<p><hr>
Node:<a name="Numeric%20limits">Numeric limits</a>,
-Next:<a rel=next accesskey=n href="#Libtool">Libtool</a>,
-Previous:<a rel=previous accesskey=p href="#Thread%20safety">Thread safety</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#Libtool">Libtool</a>,
+Previous:<a rel="previous" accesskey="p" href="#Thread%20safety">Thread safety</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>Numeric limits</h2>
+<h2 class="chapter">Numeric limits</h2>
-<p>The C++ library requires information about the fundamental data types,
+ <p>The C++ library requires information about the fundamental data types,
such as the minimum and maximum representable values of each type.
You can define each of these values individually, but it is usually
easiest just to indicate how many bits are used in each of the data
types and let the library do the rest. For information about the
macros to define, see the top of <code>include/bits/std_limits.h</code>.
-<p>If you need to define any macros, you can do so in <code>os_defines.h</code>.
+ <p>If you need to define any macros, you can do so in <code>os_defines.h</code>.
However, if all operating systems for your CPU are likely to use the
same values, you can provide a CPU-specific file instead so that you
do not have to provide the same definitions for each operating system.
To take that approach, create a new file called <code>cpu_limits.h</code> in
your CPU configuration directory (see <a href="#CPU">CPU</a>).
+<div class="node">
<p><hr>
Node:<a name="Libtool">Libtool</a>,
-Next:<a rel=next accesskey=n href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>,
-Previous:<a rel=previous accesskey=p href="#Numeric%20limits">Numeric limits</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Next:<a rel="next" accesskey="n" href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>,
+Previous:<a rel="previous" accesskey="p" href="#Numeric%20limits">Numeric limits</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
+</div>
-<h2>Libtool</h2>
+<h2 class="chapter">Libtool</h2>
-<p>The C++ library is compiled, archived and linked with libtool.
+ <p>The C++ library is compiled, archived and linked with libtool.
Explaining the full workings of libtool is beyond the scope of this
document, but there are a few, particular bits that are necessary for
porting.
-<p>Some parts of the libstdc++-v3 library are compiled with the libtool
+ <p>Some parts of the libstdc++-v3 library are compiled with the libtool
<code>--tags CXX</code> option (the C++ definitions for libtool). Therefore,
<code>ltcf-cxx.sh</code> in the top-level directory needs to have the correct
logic to compile and archive objects equivalent to the C version of libtool,
<code>ltcf-c.sh</code>. Some libtool targets have definitions for C but not
for C++, or C++ definitions which have not been kept up to date.
-<p>The C++ run-time library contains initialization code that needs to be
+ <p>The C++ run-time library contains initialization code that needs to be
run as the library is loaded. Often, that requires linking in special
object files when the C++ library is built as a shared library, or
taking other system-specific actions.
-<p>The libstdc++-v3 library is linked with the C version of libtool, even
+ <p>The libstdc++-v3 library is linked with the C version of libtool, even
though it is a C++ library. Therefore, the C version of libtool needs to
ensure that the run-time library initializers are run. The usual way to
do this is to build the library using <code>gcc -shared</code>.
-<p>If you need to change how the library is linked, look at
+ <p>If you need to change how the library is linked, look at
<code>ltcf-c.sh</code> in the top-level directory. Find the switch statement
that sets <code>archive_cmds</code>. Here, adjust the setting for your
operating system.
+<div class="node">
<p><hr>
Node:<a name="GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>,
-Previous:<a rel=previous accesskey=p href="#Libtool">Libtool</a>,
-Up:<a rel=up accesskey=u href="#Top">Top</a>
+Previous:<a rel="previous" accesskey="p" href="#Libtool">Libtool</a>,
+Up:<a rel="up" accesskey="u" href="#Top">Top</a>
<br>
-
-<h2>GNU Free Documentation License</h2>
-
-<div align="center">Version 1.1, March 2000</div>
-<br><pre>Copyright &copy; 2000 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-</pre>
-
-<ol type=1 start=0>
-</p><li>PREAMBLE
-
-<p>The purpose of this License is to make a manual, textbook, or other
-written document <dfn>free</dfn> in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-<p>This License is a kind of "copyleft", which means that derivative
+</div>
+
+<h2 class="unnumbered">GNU Free Documentation License</h2>
+
+<div align="center">Version 1.2, November 2002</div>
+<pre class="display"> Copyright &copy; 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ </pre>
+
+ <ol type=1 start=0>
+<li>PREAMBLE
+
+ <p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <dfn>free</dfn> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+ <p>This License is a kind of "copyleft", which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
-<p>We have designed this License in order to use it for manuals for free
+ <p>We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
@@ -528,70 +601,97 @@ it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
-</p><li>APPLICABILITY AND DEFINITIONS
+ </p><li>APPLICABILITY AND DEFINITIONS
-<p>This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The "Document", below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as "you".
+ <p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as "you". You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
-<p>A "Modified Version" of the Document means any work containing the
+ <p>A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
-<p>A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
+ <p>A "Secondary Section" is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
-<p>The "Invariant Sections" are certain Secondary Sections whose titles
+ <p>The "Invariant Sections" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
-<p>The "Cover Texts" are certain short passages of text that are listed,
+ <p>The "Cover Texts" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
-<p>A "Transparent" copy of the Document means a machine-readable copy,
+ <p>A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
+general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not "Transparent" is called "Opaque".
-
-<p>Examples of suitable formats for Transparent copies include plain
-<small>ASCII</small> without markup, Texinfo input format, LaTeX input format,
-<small>SGML</small> or <small>XML</small> using a publicly available
-<small>DTD</small>, and standard-conforming simple <small>HTML</small> designed
-for human modification. Opaque formats include PostScript,
-<small>PDF</small>, proprietary formats that can be read and edited only by
-proprietary word processors, <small>SGML</small> or <small>XML</small> for which
-the <small>DTD</small> and/or processing tools are not generally available,
-and the machine-generated <small>HTML</small> produced by some word
-processors for output purposes only.
-
-<p>The "Title Page" means, for a printed book, the title page itself,
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+ <p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <small>SGML</small> or <small>XML</small> using a publicly available
+<small>DTD</small>, and standard-conforming simple <small>HTML</small>,
+PostScript or <small>PDF</small> designed for human modification. Examples
+of transparent image formats include <small>PNG</small>, <small>XCF</small> and
+<small>JPG</small>. Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <small>SGML</small> or
+<small>XML</small> for which the <small>DTD</small> and/or processing tools are
+not generally available, and the machine-generated <small>HTML</small>,
+PostScript or <small>PDF</small> produced by some word processors for
+output purposes only.
+
+ <p>The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, "Title Page" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
-</p><li>VERBATIM COPYING
+ <p>A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+ <p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+ </p><li>VERBATIM COPYING
-<p>You may copy and distribute the Document in any medium, either
+ <p>You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
@@ -601,14 +701,15 @@ copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
-<p>You may also lend copies, under the same conditions stated above, and
+ <p>You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
-</p><li>COPYING IN QUANTITY
+ </p><li>COPYING IN QUANTITY
-<p>If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
+ <p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
@@ -618,76 +719,76 @@ Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
-<p>If the required texts for either cover are too voluminous to fit
+ <p>If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
-<p>If you publish or distribute Opaque copies of the Document numbering
+ <p>If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-<p>It is requested, but not required, that you contact the authors of the
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+ <p>It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
-</p><li>MODIFICATIONS
+ </p><li>MODIFICATIONS
-<p>You may copy and distribute a Modified Version of the Document under
+ <p>You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
-<ol type=A start=1>
-</p><li>Use in the Title Page (and on the covers, if any) a title distinct
+ <ol type=A start=1>
+<li>Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
-<li>List on the Title Page, as authors, one or more persons or entities
+ <li>List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
-Document (all of its principal authors, if it has less than five).
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
-<li>State on the Title page the name of the publisher of the
+ <li>State on the Title page the name of the publisher of the
Modified Version, as the publisher.
-<li>Preserve all the copyright notices of the Document.
+ <li>Preserve all the copyright notices of the Document.
-<li>Add an appropriate copyright notice for your modifications
+ <li>Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
-<li>Include, immediately after the copyright notices, a license notice
+ <li>Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
-<li>Preserve in that license notice the full lists of Invariant Sections
+ <li>Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
-<li>Include an unaltered copy of this License.
+ <li>Include an unaltered copy of this License.
-<li>Preserve the section entitled "History", and its title, and add to
-it an item stating at least the title, year, new authors, and
+ <li>Preserve the section Entitled "History", Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
-there is no section entitled "History" in the Document, create one
+there is no section Entitled "History" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
-<li>Preserve the network location, if any, given in the Document for
+ <li>Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the "History" section.
@@ -695,36 +796,38 @@ You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
-<li>In any section entitled "Acknowledgments" or "Dedications",
-preserve the section's title, and preserve in the section all the
-substance and tone of each of the contributor acknowledgments
-and/or dedications given therein.
+ <li>For any section Entitled "Acknowledgements" or "Dedications", Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
-<li>Preserve all the Invariant Sections of the Document,
+ <li>Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
-<li>Delete any section entitled "Endorsements". Such a section
+ <li>Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
-<li>Do not retitle any existing section as "Endorsements"
-or to conflict in title with any Invariant Section.
-</ol>
+ <li>Do not retitle any existing section to be Entitled "Endorsements" or
+to conflict in title with any Invariant Section.
-<p>If the Modified Version includes new front-matter sections or
+ <li>Preserve any Warranty Disclaimers.
+ </ol>
+
+ <p>If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
-<p>You may add a section entitled "Endorsements", provided it contains
+ <p>You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties--for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
-<p>You may add a passage of up to five words as a Front-Cover Text, and a
+ <p>You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
@@ -734,20 +837,20 @@ by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
-<p>The author(s) and publisher(s) of the Document do not by this License
+ <p>The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
-</p><li>COMBINING DOCUMENTS
+ </p><li>COMBINING DOCUMENTS
-<p>You may combine the Document with other documents released under this
+ <p>You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
-license notice.
+license notice, and that you preserve all their Warranty Disclaimers.
-<p>The combined work need only contain one copy of this License, and
+ <p>The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
@@ -756,58 +859,67 @@ author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
-<p>In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgments",
-and any sections entitled "Dedications". You must delete all sections
-entitled "Endorsements."
+ <p>In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all
+sections Entitled "Endorsements."
-</p><li>COLLECTIONS OF DOCUMENTS
+ </p><li>COLLECTIONS OF DOCUMENTS
-<p>You may make a collection consisting of the Document and other documents
+ <p>You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
-<p>You may extract a single document from such a collection, and distribute
+ <p>You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
-</p><li>AGGREGATION WITH INDEPENDENT WORKS
+ </p><li>AGGREGATION WITH INDEPENDENT WORKS
-<p>A compilation of the Document or its derivatives with other separate
+ <p>A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an "aggregate", and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-<p>If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-</p><li>TRANSLATION
-
-<p>Translation is considered a kind of modification, so you may
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+ <p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+ </p><li>TRANSLATION
+
+ <p>Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
+translation of this License, and all the license notices in the
+Document, and any Warrany Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+ <p>If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
-</p><li>TERMINATION
+ </p><li>TERMINATION
-<p>You may not copy, modify, sublicense, or distribute the Document except
+ <p>You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to
copy, modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However,
@@ -815,15 +927,15 @@ parties who have received copies, or rights, from you under this
License will not have their licenses terminated so long as such
parties remain in full compliance.
-</p><li>FUTURE REVISIONS OF THIS LICENSE
+ </p><li>FUTURE REVISIONS OF THIS LICENSE
-<p>The Free Software Foundation may publish new, revised versions
+ <p>The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
-<p>Each version of the License is given a distinguishing version number.
+ <p>Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
@@ -831,57 +943,57 @@ of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
-</ol>
+ </ol>
-<h3>ADDENDUM: How to use this License for your documents</h3>
+<h3 class="unnumberedsec">ADDENDUM: How to use this License for your documents</h3>
-<p>To use this License in a document you have written, include a copy of
+ <p>To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
-<br><pre> Copyright (C) <var>year</var> <var>your name</var>.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being <var>list their titles</var>, with the
- Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts being <var>list</var>.
- A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-</pre>
-
-<p>If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write "no Front-Cover Texts" instead of
-"Front-Cover Texts being <var>list</var>"; likewise for Back-Cover Texts.
-
-<p>If your document contains nontrivial examples of program code, we
+<pre class="smallexample"> Copyright (C) <var>year</var> <var>your name</var>.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+ </pre>
+
+ <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the "with...Texts." line with this:
+
+<pre class="smallexample"> with the Invariant Sections being <var>list their titles</var>, with
+ the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+ being <var>list</var>.
+ </pre>
+
+ <p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ <p>If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
+<div class="contents">
<h2>Table of Contents</h2>
<ul>
-<li><a name="toc_Top"></a>
- <a href="#Top">Porting libstdc++-v3</a>
-<li><a name="toc_Operating%20system"></a>
- <a href="#Operating%20system">Operating system</a>
-<li><a name="toc_CPU"></a>
- <a href="#CPU">CPU</a>
-<li><a name="toc_Character%20types"></a>
- <a href="#Character%20types">Character types</a>
-<li><a name="toc_Thread%20safety"></a>
- <a href="#Thread%20safety">Thread safety</a>
-<li><a name="toc_Numeric%20limits"></a>
- <a href="#Numeric%20limits">Numeric limits</a>
-<li><a name="toc_Libtool"></a>
- <a href="#Libtool">Libtool</a>
-<li><a name="toc_GNU%20Free%20Documentation%20License"></a>
- <a href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>
+<li><a name="toc_Top" href="#Top">Porting libstdc++-v3</a>
+<li><a name="toc_Operating%20system" href="#Operating%20system">Operating system</a>
+<li><a name="toc_CPU" href="#CPU">CPU</a>
+<li><a name="toc_Character%20types" href="#Character%20types">Character types</a>
+<li><a name="toc_Thread%20safety" href="#Thread%20safety">Thread safety</a>
+<li><a name="toc_Numeric%20limits" href="#Numeric%20limits">Numeric limits</a>
+<li><a name="toc_Libtool" href="#Libtool">Libtool</a>
+<li><a name="toc_GNU%20Free%20Documentation%20License" href="#GNU%20Free%20Documentation%20License">GNU Free Documentation License</a>
<ul>
<li><a href="#GNU%20Free%20Documentation%20License">ADDENDUM: How to use this License for your documents</a>
-</ul>
-</ul>
+</li></ul>
+</li></ul>
+</div>
-</body></html>
+ </body></html>
diff --git a/libstdc++-v3/docs/html/17_intro/porting.texi b/libstdc++-v3/docs/html/17_intro/porting.texi
index 6c6ec1f7f48..6f3618c637d 100644
--- a/libstdc++-v3/docs/html/17_intro/porting.texi
+++ b/libstdc++-v3/docs/html/17_intro/porting.texi
@@ -8,26 +8,11 @@
@settitle Porting libstdc++-v3
@setchapternewpage odd
-@ifinfo
-This file explains how to port libstdc++-v3 (the GNU C++ library) to
-a new target.
-
-Copyright (c) 2000, 2001, 2002 Free Software Foundation, Inc.
-@end ifinfo
-
-@c ---------------------------------------------------------------------
-@c Titlepage
-@c ---------------------------------------------------------------------
-
-@titlepage
-@title Porting libstdc++-v3
-@author Mark Mitchell
-@page
-@vskip 0pt plus 1filll
+@copying
Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
+under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'', the Front-Cover
texts being (a) (see below), and with the Back-Cover Texts being (b)
@@ -43,6 +28,25 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development.
+@end copying
+
+@ifinfo
+This file explains how to port libstdc++-v3 (the GNU C++ library) to
+a new target.
+
+@insertcopying
+@end ifinfo
+
+@c ---------------------------------------------------------------------
+@c Titlepage
+@c ---------------------------------------------------------------------
+
+@titlepage
+@title Porting libstdc++-v3
+@author Mark Mitchell
+@page
+@vskip 0pt plus 1filll
+@insertcopying
@end titlepage
@c ---------------------------------------------------------------------
@@ -146,12 +150,49 @@ need to define. You will need to add them to the
target. It will not work to simply define these macros in
@file{os_defines.h}.
-At this time, there is one libstdc++-v3-specific macro which may be
+At this time, there are a few libstdc++-v3-specific macro which may be
defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the
port doesn't use thunks (although it is unclear that this is still
useful since libio support isn't currently working and the g++ v3 ABI
invalidates the assumption that some ports don't use thunks).
+@code{_GLIBCPP_USE_C99_CHECK} may be defined to 1 to check C99
+function declarations (which are not covered by specialization below)
+found in system headers against versions found in the library headers
+derived from the standard.
+
+@code{_GLIBCPP_USE_C99_DYNAMIC} may be defined to an expression that
+yields 0 if and only if the system headers are exposing proper support
+for C99 functions (which are not covered by specialization below). If
+defined, it must be 0 while bootstrapping the compiler/rebuilding the
+library.
+
+@code{_GLIBCPP_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check
+the set of C99 long long function declarations found in system headers
+against versions found in the library headers derived from the
+standard.
+
+@code{_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC} may be defined to an
+expression that yields 0 if and only if the system headers are
+exposing proper support for the set of C99 long long functions. If
+defined, it must be 0 while bootstrapping the compiler/rebuilding the
+library.
+
+@code{_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC} may be defined to an
+expression that yields 0 if and only if the system headers
+are exposing proper support for the related set of macros. If defined,
+it must be 0 while bootstrapping the compiler/rebuilding the library.
+
+@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined
+to 1 to check the related set of function declarations found in system
+headers against versions found in the library headers derived from
+the standard.
+
+@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined
+to an expression that yields 0 if and only if the system headers
+are exposing proper support for the related set of functions. If defined,
+it must be 0 while bootstrapping the compiler/rebuilding the library.
+
Finally, you should bracket the entire file in an include-guard, like
this:
diff --git a/libstdc++-v3/docs/html/18_support/howto.html b/libstdc++-v3/docs/html/18_support/howto.html
index c95f956a370..df7305cc033 100644
--- a/libstdc++-v3/docs/html/18_support/howto.html
+++ b/libstdc++-v3/docs/html/18_support/howto.html
@@ -117,7 +117,9 @@
<p>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 <code>numeric_limits</code> defined as follows:
+ template class <code>numeric_limits</code>, documented
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/structstd_1_1numeric__limits.html">here</a>
+ and defined as follows:
</p>
<pre>
template&lt;typename T&gt; struct class {
diff --git a/libstdc++-v3/docs/html/19_diagnostics/howto.html b/libstdc++-v3/docs/html/19_diagnostics/howto.html
index d1d759d5a43..b658be83c7a 100644
--- a/libstdc++-v3/docs/html/19_diagnostics/howto.html
+++ b/libstdc++-v3/docs/html/19_diagnostics/howto.html
@@ -169,6 +169,14 @@
%</pre>
<p>The 'Aborted' line comes from the call to abort(), of course.
</p>
+ <p><strong>UPDATE:</strong> Starting with GCC 3.4, this is the default
+ termination handler; nothing need be done to use it. To go back to
+ the previous &quot;silent death&quot; method, simply include
+ <code>&lt;exception&gt;</code> and <code>&lt;cstdlib&gt;</code>,
+ and call
+ </p>
+ <pre>
+ std::set_terminate (std::abort);</pre>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
</p>
diff --git a/libstdc++-v3/docs/html/20_util/howto.html b/libstdc++-v3/docs/html/20_util/howto.html
index 9952849c0fb..af40bceae0e 100644
--- a/libstdc++-v3/docs/html/20_util/howto.html
+++ b/libstdc++-v3/docs/html/20_util/howto.html
@@ -30,6 +30,7 @@
<li><a href="#2"><code>auto_ptr</code> inside container classes</a></li>
<li><a href="#3">Functors</a></li>
<li><a href="#4">Pairs</a></li>
+ <li><a href="#5">Memory allocators</a></li>
</ul>
<hr />
@@ -207,7 +208,14 @@
<a href="../faq/index.html">to the FAQ</a>.
</p>
-
+<hr />
+<h2><a name="5">Memory allocators</a></h2>
+ <p>The available free store (&quot;heap&quot;) management classes are
+ described <a href="../ext/howto.html">here</a>.
+ </p>
+ <p>Return <a href="#top">to top of page</a> or
+ <a href="../faq/index.html">to the FAQ</a>.
+ </p>
<!-- ####################################################### -->
diff --git a/libstdc++-v3/docs/html/27_io/howto.html b/libstdc++-v3/docs/html/27_io/howto.html
index d7a984ec3d5..4a0b6a927fb 100644
--- a/libstdc++-v3/docs/html/27_io/howto.html
+++ b/libstdc++-v3/docs/html/27_io/howto.html
@@ -35,6 +35,7 @@
<li><a href="#8">Pathetic performance? Ditch C.</a></li>
<li><a href="#9">Threads and I/O</a></li>
<li><a href="#10">Which header?</a></li>
+ <li><a href="#11">Using FILE*s and file descriptors with IOStreams</a></li>
</ul>
<hr />
@@ -158,15 +159,18 @@
because the data needs to appear quickly (a prime example is a
log file for security-related information). The way to do this is
just to turn off the buffering <em>before any I/O operations at
- all</em> have been done, i.e., as soon as possible after opening:
+ all</em> have been done (note that opening counts as an I/O operation):
</p>
<pre>
- std::ofstream os (&quot;/foo/bar/baz&quot;);
- std::ifstream is (&quot;/qux/quux/quuux&quot;);
+ std::ofstream os;
+ std::ifstream is;
int i;
os.rdbuf()-&gt;pubsetbuf(0,0);
is.rdbuf()-&gt;pubsetbuf(0,0);
+
+ os.open(&quot;/foo/bar/baz&quot;);
+ is.open(&quot;/qux/quux/quuux&quot;);
...
os &lt;&lt; &quot;this data is written immediately\n&quot;;
is &gt;&gt; i; // and this will probably cause a disk read </pre>
@@ -391,7 +395,9 @@
}
</pre>
<p>Try it yourself! More examples can be found in 3.1.x code, in
- <code>include/ext/*_filebuf.h</code>.
+ <code>include/ext/*_filebuf.h</code>, and on
+ <a href="http://www.informatik.uni-konstanz.de/~kuehl/c++/iostream/">Dietmar
+ K&uuml;hl's IOStreams page</a>.
</p>
<hr />
@@ -692,6 +698,62 @@
</p>
+<hr />
+<h2><a name="11">Using FILE*s and file descriptors with IOStreams</a></h2>
+ <!-- referenced by ext/howto.html#2, update link if numbering changes -->
+ <p>The v2 library included non-standard extensions to construct
+ <code>std::filebuf</code>s from C stdio types such as
+ <code>FILE*</code>s and POSIX file descriptors.
+ Today the recommended way to use stdio types with libstdc++-v3
+ IOStreams is via the <code>stdio_filebuf</code> class (see below),
+ but earlier releases provided slightly different mechanisms.
+ </p>
+ <ul>
+ <li>3.0.x <code>filebuf</code>s have another ctor with this signature:
+ <br />
+ <code>basic_filebuf(__c_file_type*, ios_base::openmode, int_type);</code>
+ <br />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:
+ <ul>
+ <li><code>__c_file_type* F </code>
+ // the __c_file_type typedef usually boils down to stdio's FILE
+ </li>
+ <li><code>ios_base::openmode M </code>
+ // same as all the other uses of openmode
+ </li>
+ <li><code>int_type B </code>
+ // buffer size, defaults to BUFSIZ if not specified
+ </li>
+ </ul>
+ For those wanting to use file descriptors instead of FILE*'s, I
+ invite you to contemplate the mysteries of C's <code>fdopen()</code>.
+ </li>
+ <li>In library snapshot 3.0.95 and later, <code>filebuf</code>s bring
+ back an old extension: the <code>fd()</code> member function. The
+ integer returned from this function can be used for whatever file
+ descriptors can be used for on your platform. Naturally, the
+ 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.
+ </li>
+ <li>Beginning with 3.1, the extra <code>filebuf</code> constructor and
+ the <code>fd()</code> function were removed from the standard
+ filebuf. Instead, <code>&lt;ext/stdio_filebuf.h&gt;</code> contains
+ a derived class called
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/class____gnu__cxx_1_1stdio__filebuf.html"><code>__gnu_cxx::stdio_filebuf</code></a>.
+ This class can be constructed from a C <code>FILE*</code> or a file
+ descriptor, and provides the <code>fd()</code> function.
+ </li>
+ </ul>
+ <p>If you want to access a <code>filebuf</code>s file descriptor to
+ implement file locking (e.g. using the <code>fcntl()</code> system
+ call) then you might be interested in Henry Suter's
+ <a href="http://suter.home.cern.ch/suter/RWLock.html">RWLock</a>
+ class.
+ </p>
+
<!-- ####################################################### -->
<hr />
diff --git a/libstdc++-v3/docs/html/Makefile b/libstdc++-v3/docs/html/Makefile
index efc75bec86f..c252ca2631b 100644
--- a/libstdc++-v3/docs/html/Makefile
+++ b/libstdc++-v3/docs/html/Makefile
@@ -1,5 +1,5 @@
-PWD=$${PWDCMD-pwd}
+PWD_COMMAND=$${PWDCMD-pwd}
MAKEINFO=makeinfo
INC=../../../gcc/doc/include
@@ -25,7 +25,7 @@ documentation.html: $(wildcard */howto.html)
rm tmp.top tmp.middle tmp.bottom
faq/index.txt: faq/index.html
- lynx -dump $< | sed "s%file://localhost`${PWD}`%..%" > $@
+ lynx -dump $< | sed "s%file://localhost`${PWD_COMMAND}`%..%" > $@
17_intro/porting.html: 17_intro/porting.texi
${MAKEINFO} -I ${INC} --html --no-split $< -o $@
diff --git a/libstdc++-v3/docs/html/configopts.html b/libstdc++-v3/docs/html/configopts.html
index eab9864f330..4ba060363ca 100644
--- a/libstdc++-v3/docs/html/configopts.html
+++ b/libstdc++-v3/docs/html/configopts.html
@@ -17,13 +17,15 @@
<h1 class="centered"><a name="top">Interesting <code>configure</code>
options</a></h1>
-<p>The latest version of this document is always available at
+<p class="fineprint"><em>
+ The latest version of this document is always available at
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html">
http://gcc.gnu.org/onlinedocs/libstdc++/configopts.html</a>.
-</p>
+</em></p>
-<p>To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
-</p>
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
<!-- ####################################################### -->
<hr />
@@ -76,23 +78,11 @@ options</a></h1>
<dd><p>Adds support for named libstdc++ include directory. For instance,
the following puts all the libstdc++ headers into a directory
called &quot;2.97-20001008&quot; instead of the usual
- &quot;g++-v3&quot;.
+ &quot;c++/(version)&quot;.
</p>
<pre>
--with-gxx-include-dir=/foo/H-x86-gcc-3-c-gxx-inc/include/2.97-20001008</pre> </dd>
- <dt><code>--enable-debug </code></dt>
- <dd><p>The configure script will automatically detect the highest
- level of optimization that the compiler in use can use.
- This --enable flag will disable all optimizations and instruct
- the compiler to emit as much extra debugging information as it
- can, for use inside GDB. Note this make command, executed in
- the build directory, will do much the same thing, without the
- configuration difference:
- <code>make CXXFLAGS='-g -O0' all</code>
- </p>
- </dd>
-
<dt><code>--enable-cstdio </code></dt>
<dd><p>This is an abbreviated form of <code>'--enable-cstdio=stdio'</code>
(described next). This option can change the library ABI.
@@ -100,13 +90,10 @@ options</a></h1>
</dd>
<dt><code>--enable-cstdio=OPTION </code></dt>
- <dd><p>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
- <a href="http://sources.redhat.com/glibc/">glibc</a>, the
- GNU C library), or 'stdio' to use a generic &quot;C&quot;
- abstraction. The default is 'stdio'. A longer explanation
- is <a href="explanations.html#cstdio">here</a>.
+ <dd><p>Select a target-specific I/O package. At the moment, the only
+ choice is to use 'stdio', a generic &quot;C&quot; abstraction.
+ The default is 'stdio'. A longer explanation is <a
+ href="explanations.html#cstdio">here</a>.
</p>
</dd>
@@ -157,6 +144,33 @@ options</a></h1>
</p>
</dd>
+ <dt><code>--enable-debug </code></dt>
+ <dd><p>Build separate debug libraries in addition to what is normally built.
+ By default, the debug libraries are compiled with
+ <code> CXXFLAGS='-g3 -O0'</code>
+ , are installed in <code>${libdir}/debug</code>, and have the
+ same names and versioning information as the non-debug
+ libraries. This option is off by default.
+ </p>
+ <p>Note this make command, executed in
+ the build directory, will do much the same thing, without the
+ configuration difference and without building everything twice:
+ <code>make CXXFLAGS='-g3 -O0' all</code>
+ </p>
+ </dd>
+
+ <dt><code>--enable-debug-flags=FLAGS</code></dt>
+
+ <dd><p>This option is only valid when <code> --enable-debug </code>
+ is also specified, and applies to the debug builds only. With
+ this option, you can pass a specific string of flags to the
+ compiler to use when building the debug versions of libstdc++.
+ FLAGS is a quoted string of options, like
+ </p>
+ <pre>
+ --enable-debug-flags='-g3 -O1 -gdwarf-2'</pre>
+ </dd>
+
<dt><code>--enable-cxx-flags=FLAGS</code></dt>
<dd><p>With this option, you can pass a string of -f (functionality)
flags to the compiler to use when building libstdc++. This
@@ -238,12 +252,13 @@ options</a></h1>
</dd>
<dt><code>--enable-symvers[=style] </code></dt>
- <dd><p>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
- linker be in use. With no style given, the configure script will
- 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.
+ <dd><p>In 3.1 and later, 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 linker be in use. With no style
+ given, the configure script will 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.
</p>
</dd>
</dl>
diff --git a/libstdc++-v3/docs/html/debug.html b/libstdc++-v3/docs/html/debug.html
new file mode 100644
index 00000000000..0ca332c7346
--- /dev/null
+++ b/libstdc++-v3/docs/html/debug.html
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="AUTHOR" content="bkoz@gcc.gnu.org (Benjamin Kosnik)" />
+ <meta name="KEYWORDS" content="c++, libstdc++, gdb, g++, debug" />
+ <meta name="DESCRIPTION" content="Debugging C++ binaries" />
+ <meta name="GENERATOR" content="vi and ten fingers" />
+ <title>Debugging schemes and strategies</title>
+<link rel="StyleSheet" href="lib3styles.css" />
+</head>
+<body>
+
+<h1 class="centered"><a name="top">Debugging schemes and strategies</a></h1>
+
+<p class="fineprint"><em>
+ The latest version of this document is always available at
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/debug.html">
+ http://gcc.gnu.org/onlinedocs/libstdc++/debug.html</a>.
+</em></p>
+
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
+
+<!-- ####################################################### -->
+<hr />
+<p>There are numerous things that can be done to improve the ease with
+ which C++ binaries are debugged when using the GNU C++
+ tool chain. Here are some things to keep in mind when debugging C++
+ code with GNU tools.
+</p>
+
+<h3 class="left"><a name="gplusplus">Compiler flags determine debug info</a></h3>
+<p>The default optimizations and debug flags for a libstdc++ build are
+ <code>-g -O2</code>. However, both debug and optimization flags can
+ be varied to change debugging characteristics. For instance,
+ turning off all optimization via the <code>-g -O0</code> flag will
+ disable inlining, so that stepping through all functions, including
+ inlined constructors and destructors, is possible. Or, the debug
+ format that the compiler and debugger use to communicate
+ information about source constructs can be changed via <code>
+ -gdwarf-2 </code> or <code> -gstabs </code> flags: some debugging
+ formats permit more expressive type and scope information to be
+ shown in gdb.
+ The default debug information for a particular platform can be
+ identified via the value set by the PREFERRED_DEBUGGING_TYPE macro
+ in the gcc sources.
+</p>
+
+<p>Many other options are available: please see
+<a href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging%20Options">"Options for Debugging Your Program"</a>
+ in Using the GNU Compiler Collection (GCC) for a complete list.
+</p>
+
+
+<h3 class="left"><a name="lib">Using special flags to make a debug binary</a></h3>
+<p>There are two ways to build libstdc++ with debug flags. The first
+ is to run make from the toplevel in a freshly-configured tree with
+ specialized debug <code>CXXFLAGS</code>, as in
+</p>
+<pre>
+ make CXXFLAGS='-g3 -O0' all
+</pre>
+
+<p>This quick and dirty approach is often sufficient for quick
+ debugging tasks, but the lack of state can be confusing in the long
+ term.
+</p>
+<p>A second approach is to use the configuration flags
+</p>
+<pre>
+ --enable-debug
+</pre>
+<p>and perhaps</p>
+<pre>
+ --enable-debug-flags='...'
+</pre>
+<p>to create a separate debug build. Both the normal build and the
+ debug build will persist, without having to specify
+ <code>CXXFLAGS</code>, and the debug library will be installed in a
+ separate directory tree, in <code>(prefix)/lib/debug</code>. For
+ more information, look at the <a href="configopts.html">configuration
+ options</a> document.
+</p>
+
+
+<h3 class="left"><a name="mem">Tips for memory leak hunting</a></h3>
+
+<p>There are various third party memory tracing and debug utilities
+ that can be used to provide detailed memory allocation information
+ about C++ code. An exhaustive list of tools is not going to be
+ attempted, but includes <code>mtrace</code>, <code>valgrind</code>,
+ <code>mudflap</code>, and <code>purify</code>. Also highly
+ recommended are <code>libcwd</code> and some other one that I
+ forget right now.
+</p>
+
+<p>Regardless of the memory debugging tool being used, there is one
+ thing of great importance to keep in mind when debugging C++ code
+ that uses <code>new</code> and <code>delete</code>:
+ there are different kinds of allocation schemes that can be used by
+ <code> std::allocator </code>. For implementation details, see this
+ <a href="ext/howto.html#3"> document</a> and look specifically for
+ <code>GLIBCPP_FORCE_NEW</code>.
+</p>
+
+<p>In a nutshell, the default allocator used by <code>
+ std::allocator</code> is a high-performance pool allocator, and can
+ give the mistaken impression that memory is being leaked, when in
+ reality the memory is still being used by the library and is reclaimed
+ after program termination.
+</p>
+
+<p>For valgrind, there are some specific items to keep in mind. First
+ of all, use a version of valgrind that will work with current GNU
+ C++ tools: the first that can do this is valgrind 1.0.4, but later
+ versions should work at least as well. Second of all, use a
+ completely unoptimized build to avoid confusing valgrind. Third,
+ use GLIBCPP_FORCE_NEW to keep extraneous pool allocation noise from
+ cluttering debug information.
+</p>
+
+<p>Fourth, it may be necessary to force deallocation in other
+ libraries as well, namely the "C" library. On linux, this can be
+ accomplished with the appropriate use of the
+ <code>__cxa_atexit</code> or <code>atexit</code> functions.
+</p>
+
+<pre>
+ #include &lt;cstdlib&gt;
+
+ extern "C" void __libc_freeres(void);
+
+ void do_something() { }
+
+ int main()
+ {
+ atexit(__libc_freeres);
+ do_something();
+ return 0;
+ }
+</pre>
+
+
+<p>or, using <code>__cxa_atexit</code>:</p>
+
+<pre>
+ extern "C" void __libc_freeres(void);
+ extern "C" int __cxa_atexit(void (*func) (void *), void *arg, void *d);
+
+ void do_something() { }
+
+ int main()
+ {
+ extern void* __dso_handle __attribute__ ((__weak__));
+ __cxa_atexit((void (*) (void *)) __libc_freeres, NULL,
+ &amp;__dso_handle ? __dso_handle : NULL);
+ do_test();
+ return 0;
+ }
+</pre>
+
+<p>Suggested valgrind flags, given the suggestions above about setting
+ up the runtime environment, library, and test file, might be:
+</p>
+<pre>
+ valgrind -v --num-callers=20 --leak-check=yes --leak-resolution=high --show-reachable=yes a.out
+</pre>
+
+
+<h3 class="left"><a name="gdb">Some gdb strategies</a></h3>
+<p>Many options are available for gdb itself: please see <a
+ href="http://sources.redhat.com/gdb/current/onlinedocs/gdb_13.html#SEC109">
+ "GDB features for C++" </a> in the gdb documentation. Also
+ recommended: the other parts of this manual.
+</p>
+
+<p>These settings can either be switched on in at the gdb command
+ line, or put into a .gdbint file to establish default debugging
+ characteristics, like so:
+</p>
+
+<pre>
+ set print pretty on
+ set print object on
+ set print static-members on
+ set print vtbl on
+ set print demangle on
+ set demangle-style gnu-v3
+</pre>
+
+
+<h3 class="left"><a name="verbterm">Tracking uncaught exceptions</a></h3>
+<p>The <a href="19_diagnostics/howto.html#4">verbose termination handler</a>
+ gives information about uncaught exceptions which are killing the
+ program. It is described in the linked-to page.
+</p>
+
+
+<p>Return <a href="#top">to the top of the page</a> or
+ <a href="http://gcc.gnu.org/libstdc++/">to the libstdc++ homepage</a>.
+</p>
+
+
+<!-- ####################################################### -->
+
+<hr />
+<p class="fineprint"><em>
+See <a href="17_intro/license.html">license.html</a> for copying conditions.
+Comments and suggestions are welcome, and may be sent to
+<a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
+</em></p>
+
+
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/documentation.html b/libstdc++-v3/docs/html/documentation.html
index 0dc25bedfa0..2e9a811873b 100644
--- a/libstdc++-v3/docs/html/documentation.html
+++ b/libstdc++-v3/docs/html/documentation.html
@@ -39,15 +39,20 @@
- latest version info, recent changes and news</li>
<li><a href="17_intro/TODO">TODO</a>
- tasks yet undone</li>
+ <li><a href="faq/index.html">FAQ (HTML)</a>,
+ <a href="faq/index.txt">FAQ (text)</a></li>
</ul>
<hr />
<br />
-<h2><a name="2">Configuring, Building, Installing</a></h2>
+<h2><a name="2">Configuring, Building, Testing, Installing</a></h2>
<ul>
<li><a href="configopts.html">Configure options</a></li>
<li><a href="install.html">Getting started: configure, build, install</a>
</li>
+ <li><a href="test.html">Testing details</a>
+ <li><a href="debug.html">Debugging schemes and strategies</a>
+ </li>
</ul>
@@ -62,28 +67,28 @@
the library classes, finding out what is in a particular include
file, looking at inheritance diagrams, etc.
</p>
-<p>The Source-Level documentation can be viewed online:</p>
+<p>The source-level documentation for the most recent releases can
+ be viewed online:
+</p>
<ul>
- <li><a href="libstdc++-html-USERS-3.1/index.html">for the 3.1 release</a>
- </li>
- <li><a href="libstdc++-html-USERS-3.2.1/index.html">for the 3.2.1 release</a>
- </li>
- <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
- (for the snapshot or later; see the date on the first page)
- </li>
+ <li><a href="libstdc++-html-USERS-3.3/index.html">for the 3.3 release</a></li>
+ <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
+ (for the main development tree; see the date on the first page)
+ </li>
</ul>
<p>This generated HTML collection, as above, is also available for download in
the libstdc++ snapshots directory at
<code>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/&gt;</code>.
- You will almost certainly need to use one of the <a
- href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
- the tarball. After unpacking, simply load
- libstdc++-html-*/index.html into a browser. Feedback (and
- additional documentation!) is welcome.
+ You will almost certainly need to use one of the
+ <a href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
+ the tarball. After unpacking, simply load libstdc++-html-*/index.html
+ into a browser.
+</p>
+<p>Documentation for older releases is available for download only, not
+ online viewing.
</p>
-<p>
- In addition, an initial set of man pages are also available in the
- same place as the HTML collections. Start with Intro(3).
+<p>In addition, an initial set of man pages are also available in the
+ same place as the HTML collections. Start with C++Intro(3).
</p>
@@ -138,6 +143,7 @@
<li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li>
<li><a href="20_util/howto.html#3">Functors</a></li>
<li><a href="20_util/howto.html#4">Pairs</a></li>
+ <li><a href="20_util/howto.html#5">Memory allocators</a></li>
</ul>
</li>
@@ -209,6 +215,7 @@
<li><a href="27_io/howto.html#8">Pathetic performance? Ditch C.</a></li>
<li><a href="27_io/howto.html#9">Threads and I/O</a></li>
<li><a href="27_io/howto.html#10">Which header?</a></li>
+ <li><a href="27_io/howto.html#11">Using FILE*s and file descriptors with IOStreams</a></li>
</ul>
</li>
@@ -216,10 +223,11 @@
<ul>
<li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
<li><a href="ext/howto.html#2">Added members and types</a></li>
- <li><a href="ext/howto.html#3">Allocators (versions 3.0, 3.1, 3.2)</a></li>
- <li><a href="ext/howto.html#6">Allocators (version 3.3)</a></li>
+ <li><a href="ext/howto.html#3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></li>
+ <li><a href="ext/howto.html#6">Allocators (version 3.4)</a></li>
<li><a href="ext/howto.html#4">Compile-time checks</a></li>
<li><a href="ext/howto.html#5">LWG Issues</a></li>
+ <li><a href="ext/../18_support/howto.html#5">Demangling</a></li>
</ul>
</li>
@@ -231,7 +239,8 @@
<h2><a name="5">Contributor-Specific Information</a></h2>
<ul>
<li><a href="17_intro/contribute.html">Contributor checklist</a></li>
- <li><a href="17_intro/libstdc++-assign.txt">Copyright assignment form for libstdc++-v3</a></li>
+ <li><a href="http://gcc.gnu.org/cvswrite.html">Getting CVS write access
+ (look for &quot;Write after approval&quot;)</a></li>
<li><a href="17_intro/BADNAMES">BADNAMES</a>
- names to avoid because of potential collisions</li>
<li><a href="17_intro/C++STYLE">C++STYLE</a>
diff --git a/libstdc++-v3/docs/html/explanations.html b/libstdc++-v3/docs/html/explanations.html
index dac57b87288..86aa4036984 100644
--- a/libstdc++-v3/docs/html/explanations.html
+++ b/libstdc++-v3/docs/html/explanations.html
@@ -17,13 +17,15 @@
<h1 class="centered"><a name="top">Explanatory notes about libstdc++-v3
design</a></h1>
-<p>The latest version of this document is always available at
+<p class="fineprint"><em>
+ The latest version of this document is always available at
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html">
http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html</a>.
-</p>
+</em></p>
-<p>To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
-</p>
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
<!-- ####################################################### -->
@@ -46,12 +48,6 @@ design</a></h1>
disadvantage is that the C++ code will run slower (fortunately, the layer
is thin).
</p>
-<p>Choosing 'libio' is the cool way; it allows C++ and C to share some
- buffers. It's disabled because of tricky synchronization issues. Other
- cool ways (various methods of sharing resources between C and C++
- facilities, instead of layering) are possible. This approach can speed
- up I/O significantly.
-</p>
<p>Other packages are possible. For a new package, a header must be
written to provide types like streamsize (usually just a typedef), as
well as some internal types like<code> __c_file_type </code> and
diff --git a/libstdc++-v3/docs/html/ext/howto.html b/libstdc++-v3/docs/html/ext/howto.html
index 3d08c570385..3289619625c 100644
--- a/libstdc++-v3/docs/html/ext/howto.html
+++ b/libstdc++-v3/docs/html/ext/howto.html
@@ -41,10 +41,11 @@
<ul>
<li><a href="#1">Ropes and trees and hashes, oh my!</a></li>
<li><a href="#2">Added members and types</a></li>
- <li><a href="#3">Allocators (versions 3.0, 3.1, 3.2)</a></li>
- <li><a href="#6">Allocators (version 3.3)</a></li>
+ <li><a href="#3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></li>
+ <li><a href="#6">Allocators (version 3.4)</a></li>
<li><a href="#4">Compile-time checks</a></li>
<li><a href="#5">LWG Issues</a></li>
+ <li><a href="../18_support/howto.html#5">Demangling</a></li>
</ul>
<hr />
@@ -124,47 +125,16 @@
<a href="sgiexts.html">their own page</a>. Since the SGI STL is no
longer actively maintained, we will try and keep this code working
ourselves.</li>
- <li>3.0.x <code>filebuf</code>s have another ctor with this signature:
- <br />
- <code>basic_filebuf(__c_file_type*, ios_base::openmode, int_type);</code>
- <br />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:
- <ul>
- <li><code>__c_file_type* F </code>
- // the __c_file_type typedef usually boils down to stdio's FILE
- </li>
- <li><code>ios_base::openmode M </code>
- // same as all the other uses of openmode
- </li>
- <li><code>int_type B </code>
- // buffer size, defaults to BUFSIZ if not specified
- </li>
- </ul>
- For those wanting to use file descriptors instead of FILE*'s, I
- invite you to contemplate the mysteries of C's <code>fdopen()</code>.
- </li>
- <li>In library snapshot 3.0.95 and later, <code>filebuf</code>s bring
- back an old extension: the <code>fd()</code> member function. The
- integer returned from this function can be used for whatever file
- descriptors can be used for on your platform. Naturally, the
- 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.
- </li>
- <li>Beginning with 3.1, the extra <code>filebuf</code> constructor and
- the <code>fd()</code> function were removed from the standard
- filebuf. Instead, <code>&lt;ext/stdio_filebuf.h&gt;</code> contains
- a derived class called <code>__gnu_cxx::stdio_filebuf</code>.
- </li>
+ <li>Extensions allowing <code>filebuf</code>s to be constructed from
+ stdio types are described in the
+ <a href="../27_io/howto.html#11">chapter 27 notes</a>.</li>
</ul>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
</p>
<hr />
-<h2><a name="3">Allocators (versions 3.0, 3.1, 3.2)</a></h2>
+<h2><a name="3">Allocators (versions 3.0, 3.1, 3.2, 3.3)</a></h2>
<p>Thread-safety, space efficiency, high speed, portability... this is a
mess. Where to begin?
</p>
@@ -391,9 +361,14 @@
</p>
<hr />
-<h2><a name="6">Allocators (version 3.3)</a></h2>
+<h2><a name="6">Allocators (version 3.4)</a></h2>
<p>Changes are coming...
</p>
+ <p>If you plan on writing your own allocators,
+ <a href="../documentation.html#4">source documentation</a> is
+ available. You'll need to get the &quot;maintainers&quot; collection
+ in order to see the helper classes and extra notes.
+ </p>
<p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>.
</p>
@@ -456,6 +431,13 @@
<dd>Apparently extracting Boolean values was messed up...
</dd>
+ <dt><a href="lwg-defects.html#19">19</a>:
+ <em>&quot;Noconv&quot; definition too vague</em>
+ </dt>
+ <dd>If <code>codecvt::do_in</code> returns <code>noconv</code> there are
+ no changes to the values in <code>[to, to_limit)</code>.
+ </dd>
+
<dt><a href="lwg-defects.html#22">22</a>:
<em>Member open vs flags</em>
</dt>
@@ -488,6 +470,13 @@
&quot;copying stream state&quot; was deemed too complicated.
</dd>
+ <dt><a href="lwg-defects.html#60">60</a>:
+ <em>What is a formatted input function?</em>
+ </dt>
+ <dd>This DR made many widespread changes to <code>basic_istream</code>,
+ not all of which have been implemented.
+ </dd>
+
<dt><a href="lwg-defects.html#68">68</a>:
<em>Extractors for char* should store null at end</em>
</dt>
@@ -508,6 +497,13 @@
<code>max_size()</code> rather than <code>npos</code>.
</dd>
+ <dt><a href="lwg-defects.html#90">90</a>:
+ <em>Incorrect description of operator&gt;&gt; for strings</em>
+ </dt>
+ <dd>The effect contain <code>isspace(c,getloc())</code> which must be
+ replaced by <code>isspace(c,is.getloc())</code>.
+ </dd>
+
<dt><a href="lwg-defects.html#109">109</a>:
<em>Missing binders for non-const sequence elements</em>
</dt>
@@ -562,6 +558,12 @@
calculating an incorrect number of characters to write.
</dd>
+ <dt><a href="lwg-defects.html#171">171</a>:
+ <em>Strange seekpos() semantics due to joint position</em>
+ </dt>
+ <dd>Quite complex to summarize...
+ </dd>
+
<dt><a href="lwg-defects.html#181">181</a>:
<em>make_pair() unintended behavior</em>
</dt>
@@ -590,6 +592,20 @@
for const instances.
</dd>
+ <dt><a href="lwg-active.html#231">231</a>:
+ <em>Precision in iostream?</em>
+ </dt>
+ <dd>For conversion from a floating-point type, <code>str.precision()</code>
+ is specified in the conversion specification.
+ </dd>
+
+ <dt><a href="lwg-defects.html#235">235</a>:
+ <em>No specification of default ctor for reverse_iterator</em>
+ </dt>
+ <dd>The declaration of <code>reverse_iterator</code> lists a default constructor.
+ However, no specification is given what this constructor should do.
+ </dd>
+
<dt><a href="lwg-defects.html#251">251</a>:
<em>basic_stringbuf missing allocator_type</em>
</dt>
@@ -610,6 +626,13 @@
are trivial), since no description of them was ever given.
</dd>
+ <dt><a href="lwg-defects.html#271">271</a>:
+ <em>basic_iostream missing typedefs</em>
+ </dt>
+ <dd>The typedefs it inherits from its base classes can't be used, since
+ (for example) <code>basic_iostream&lt;T&gt;::traits_type</code> is ambiguous.
+ </dd>
+
<dt><a href="lwg-defects.html#275">275</a>:
<em>Wrong type in num_get::get() overloads</em>
</dt>
diff --git a/libstdc++-v3/docs/html/ext/sgiexts.html b/libstdc++-v3/docs/html/ext/sgiexts.html
index 3f65aa340bb..68e9abf5543 100644
--- a/libstdc++-v3/docs/html/ext/sgiexts.html
+++ b/libstdc++-v3/docs/html/ext/sgiexts.html
@@ -10,7 +10,7 @@
<meta name="DESCRIPTION" content="SGI extensions preserved in libstdc++-v3." />
<meta name="GENERATOR" content="vi and eight fingers" />
<title>SGI extensions to the library in libstdc++-v3</title>
-<link rel="StyleSheet" href="lib3styles.css" />
+<link rel="StyleSheet" href="../lib3styles.css" />
</head>
<body>
@@ -29,7 +29,7 @@ libstdc++-v3</a></h1>
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/10/07 18:11:22 $ (UTC).
+ $Date: 2003/04/16 17:02:47 $ (UTC).
</p>
<p>Descriptions range from the scanty to the verbose. You should also check
diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html
index f472bfc9dc6..336c93c54e8 100644
--- a/libstdc++-v3/docs/html/faq/index.html
+++ b/libstdc++-v3/docs/html/faq/index.html
@@ -10,25 +10,27 @@
<meta name="DESCRIPTION" content="FAQ for the GNU libstdc++ effort." />
<title>libstdc++-v3 FAQ</title>
<link rel="StyleSheet" href="../lib3styles.css" />
-<!--
- ** Locations of "the most recent snapshot is the Nth" text are
- ** answers 1_1, 1_4, 4_1.
+<!--
+ ** Locations of "the most recent snapshot is the Nth" text are
+ ** answers 1_1, .
-->
</head>
<body>
<h1 class="centered">libstdc++ Frequently Asked Questions</h1>
-<p>The latest version of this document is always available at
+<p class="fineprint"><em>
+ The latest version of this document is always available at
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/faq/">
http://gcc.gnu.org/onlinedocs/libstdc++/faq/</a>. The main documentation
page is at
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html">
http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html</a>.
-</p>
+</em></p>
-<p>To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
-</p>
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
<!-- ####################################################### -->
<hr />
@@ -53,7 +55,7 @@
<ol>
<li><a href="#2_1">How do I install libstdc++-v3?</a> </li>
<li><a href="#2_2">[removed]</a> </li>
- <li><a href="#2_3">What is this CVS thing that you keep
+ <li><a href="#2_3">What is this CVS thing that you keep
mentioning?</a> </li>
<li><a href="#2_4">How do I know if it works?</a> </li>
<li><a href="#2_5">This library is HUGE! And what's libsupc++?</a> </li>
@@ -72,6 +74,9 @@
</li>
<li><a href="#3_6">OS X ctype.h is broken! How can I hack it?</a></li>
<li><a href="#3_7">Threading is broken on i386</a></li>
+ <li><a href="#3_8">Recent GNU/Linux glibc required?</a></li>
+ <li><a href="#3_9">Can't use wchar_t/wstring on FreeBSD</a></li>
+ <li><a href="#3_10">MIPS atomic operations</a></li>
</ol>
</li>
@@ -92,6 +97,7 @@
<em>constraints</em> in the STL...</a> </li>
<li><a href="#4_4_dlsym">program crashes when using library code
in a dynamically-loaded library</a> </li>
+ <li><a href="#4_4_leak">"memory leaks" in containers</a> </li>
</ul>
</li>
<li><a href="#4_5">Aw, that's easy to fix!</a> </li>
@@ -122,8 +128,8 @@
<!-- I suspect these will mostly be links to/into existing documents. -->
<h2><a name="1_1">1.1 What is libstdc++-v3?</a></h2>
<p>The GNU Standard C++ Library v3 is an
- ongoing project to implement the ISO 14882 Standard C++ library
- as described in chapters 17 through 27 and annex D. As the
+ ongoing project to implement the ISO 14882 Standard C++ library
+ as described in chapters 17 through 27 and annex D. As the
library reaches stable plateaus, it is captured in a snapshot
and released. The latest release is
<a href="http://gcc.gnu.org/libstdc++/index.html#download">the
@@ -132,7 +138,7 @@
far the project has come, or just want the latest
bleeding-edge code, the up-to-date source is available over
anonymous CVS, and can even be browsed over the Web (see
- <a href="#1_4">1.4</a> below).
+ <a href="#1_4">1.4</a> below).
</p>
<p>The older libstdc++-v2 project is no longer maintained; the code
has been completely replaced and rewritten.
@@ -140,7 +146,7 @@
report bugs to your system vendor, not to the V3 list.
</p>
<p>A more formal description of the V3 goals can be found in the
- official <a href="../17_intro/DESIGN">design document</a>.
+ official <a href="../17_intro/DESIGN">design document</a>.
</p>
<hr />
@@ -151,11 +157,11 @@
implementations are (as the Draft Standard used to say)
&quot;incomplet and incorrekt,&quot; and many suffer from
limitations of the compilers that use them.
- </p>
+ </p>
<p>The GNU C/C++/FORTRAN/&lt;pick-a-language&gt; compiler
(<code>gcc</code>, <code>g++</code>, etc) is widely considered to be
one of the leading compilers in the world. Its development
- has recently been taken over by the
+ has recently been taken over by the
<a href="http://gcc.gnu.org/">GCC team</a>. All of
the rapid development and near-legendary
<a href="http://gcc.gnu.org/gcc-3.0/buildstat.html">portability</a>
@@ -173,8 +179,8 @@
<h2><a name="1_3">1.3 Who's in charge of it?</a></h2>
<p>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
+ Benjamin Kosnik, Gabriel Dos Reis, Phil Edwards, Ulrich Drepper,
+ Loren James Rittle, and Paolo Carlini are the lead maintainers of
the CVS archive.
</p>
<p>Development and discussion is held on the libstdc++ mailing
@@ -186,23 +192,22 @@
<hr />
<h2><a name="1_4">1.4 How do I get libstdc++?</a></h2>
- <p>The fourteenth (and latest) snapshot of libstdc++-v3 is
- <a href="http://gcc.gnu.org/libstdc++/index.html#download">available
- via ftp</a>.
- </p>
<p>The <a href="http://gcc.gnu.org/libstdc++/">homepage</a>
has instructions for retrieving the latest CVS sources, and for
browsing the CVS sources over the web.
</p>
+ <p>Stable versions of libstdc++-v3 are included with releases of
+ <a href="http://gcc.gnu.org/releases.html">the GCC compilers</a>.
+ </p>
<p>The subset commonly known as the Standard Template Library
(chapters 23 through 25, mostly) is adapted from the final release
of the SGI STL.
- </p>
+ </p>
<hr />
<h2><a name="1_5">1.5 When is libstdc++ going to be finished?</a></h2>
-<!-- <p>Nathan Myers gave the best of all possible answers in <a
- href="http://www.deja.com/getdoc.xp?AN=469581698&fmt=text">a
+<!-- <p>Nathan Myers gave the best of all possible answers in <a
+ href="http://www.deja.com/getdoc.xp?AN=469581698&fmt=text">a
Usenet article</a>.</p>
which is no longer available, thanks deja...-->
<p>Nathan Myers gave the best of all possible answers, responding to a
@@ -219,7 +224,7 @@ which is no longer available, thanks deja...-->
source code; anybody who is willing to help write
documentation, for example, or has found a bug in code that
we all thought was working, is more than welcome!
- </p>
+ </p>
<hr />
<h2><a name="1_7">1.7 What happened to libg++? I need that!</a></h2>
@@ -247,16 +252,15 @@ which is no longer available, thanks deja...-->
a lot of our attention, because they don't require a lot of our
time.) It is entirely plausable that the &quot;useful stuff&quot;
from libg++ might be extracted into an updated utilities library,
- but nobody has stated such a project yet.
+ but nobody has started such a project yet.
</p>
- <!-- The advertisement, so to speak, might have to go. Hmmmmm. -->
<p>(The <a href="http://www.boost.org/">Boost</a> site houses free
C++ libraries that do varying things, and happened to be started
by members of the Standards Committee. Certain &quot;useful
stuff&quot; classes will probably migrate there.)
</p>
<p>For the bold and/or desperate, the
- <a href="http://gcc.gnu.org/fom_serv/cache/33.html">GCC FAQ</a>
+ <a href="http://gcc.gnu.org/extensions.html">GCC extensions page</a>
describes where to find the last libg++ source.
</p>
@@ -312,7 +316,7 @@ which is no longer available, thanks deja...-->
browse those files over CVSweb ahead of time to get a feel for
what's required. RELEASE-NOTES is located in the
&quot;.../docs/17_intro/&quot; directory of the distribution.
- </p>
+ </p>
<hr />
<h2><a name="2_2">2.2 [removed]</a></h2>
@@ -327,9 +331,9 @@ which is no longer available, thanks deja...-->
control packages. It was selected for GNU projects because it's
free (speech), free (beer), and very high quality. The <a
href="http://www.gnu.org/software/cvs/cvs.html">CVS entry in
- the GNU software catalogue</a> has a better description as
+ the GNU software catalogue</a> has a better description as
well as a
- <a href="http://www.cvshome.org/">link to the makers of CVS</a>.
+ <a href="http://www.cvshome.org/">link to the makers of CVS</a>.
</p>
<p>The &quot;anonymous client checkout&quot; feature of CVS is
similar to anonymous FTP in that it allows anyone to retrieve
@@ -344,7 +348,9 @@ which is no longer available, thanks deja...-->
<h2><a name="2_4">2.4 How do I know if it works?</a></h2>
<p>libstdc++-v3 comes with its own testsuite. You do not need
to actually install the library (&quot;<code>make
- install</code>&quot;) to run the testsuite.
+ install</code>&quot;) to run the testsuite, but you do need
+ DejaGNU, as described
+ <a href="http://gcc.gnu.org/install/test.html">here</a>.
</p>
<p>To run the testsuite on the library after building it, use
&quot;make check&quot; while in your build directory. To run
@@ -357,7 +363,7 @@ which is no longer available, thanks deja...-->
</p>
<hr />
- <h2><a name="2_5">2.4 This library is HUGE! And what's libsupc++?</a></h2>
+ <h2><a name="2_5">2.5 This library is HUGE! And what's libsupc++?</a></h2>
<p>Usually the size of libraries on disk isn't noticeable. When a
link editor (or simply &quot;linker&quot;) pulls things from a
static archive library, only the necessary object files are copied
@@ -426,7 +432,7 @@ which is no longer available, thanks deja...-->
should, in theory, be usable under any ISO-compliant
compiler. It will still be targeted and optimized for
GCC/g++, however.
- </p>
+ </p>
<hr />
<h2><a name="3_2">3.2 [removed]</a></h2>
@@ -499,23 +505,62 @@ which is no longer available, thanks deja...-->
</p>
<hr />
- <h2><a name="3_7">Threading is broken on i386</a></h2>
+ <h2><a name="3_7">3.7 Threading is broken on i386</a></h2>
<p>Support for atomic integer operations is/was broken on i386
platforms. The assembly code accidentally used opcodes that are
only available on the i486 and later. So if you configured GCC
to target, for example, i386-linux, but actually used the programs
- on an i686, then you would encounter no problems. Only when
- actually running the code on a i386 will the problem appear.
+ on an i686, then you would encounter no problems. Only when
+ actually running the code on a i386 will the problem appear.
</p>
<p>This is fixed in 3.2.2.
</p>
<hr />
+ <h2><a name="3_8">3.8 Recent GNU/Linux glibc required?</a></h2>
+ <p>When running on GNU/Linux, libstdc++ 3.2.1 (shared library version
+ 5.0.1) and later uses localization and formatting code from the system
+ C library (glibc) version 2.2.5. That version of glibc is over a
+ year old and contains necessary bugfixes. Many GNU/Linux distros make
+ glibc version 2.3.x available now.
+ </p>
+ <p>The guideline is simple: the more recent the C++ library, the
+ more recent the C library. (This is also documented in the main
+ GCC installation instructions.)
+ </p>
+
+<hr />
+ <h2><a name="3_9">3.9 Can't use wchar_t/wstring on FreeBSD</a></h2>
+ <p>At the moment there are a few problems in FreeBSD's support for
+ wide character functions, and as a result the libstdc++ configury
+ decides that wchar_t support should be disabled. Once the underlying
+ problems are fixed in FreeBSD (soon), the library support will
+ automatically enable itself.
+ </p>
+ <p>You can fix the problems yourself, and learn more about the situation,
+ by reading
+ <a href="http://gcc.gnu.org/ml/libstdc++/2003-02/subjects.html#00286">
+ this short thread</a> (&quot;_GLIBCPP_USE_WCHAR_T undefined in
+ FreeBSD's c++config.h?&quot;).
+ </p>
+
+<hr />
+ <h2><a name="3_10">3.10 MIPS atomic operations</a></h2>
+ <p>The atomic locking routines for MIPS targets requires MIPS II
+ and later. A patch went in just after the 3.3 release to
+ make mips* use the generic implementation instead. You can also
+ configure for mipsel-elf as a workaround.
+ </p>
+ <p>mips*-*-linux* continues to use the MIPS II routines, and more
+ work in this area is expected.
+ </p>
+
+<hr />
<h1><a name="4_0">4.0 Known Bugs and Non-Bugs</a></h1>
<em>Note that this section can get rapdily outdated -- such is the
- nature of an open-source project. For the latest information, join
- the mailing list or look through recent archives. The RELEASE-
- NOTES and BUGS files are generally kept up-to-date.</em>
+ nature of an open-source project. For the latest information, join
+ the mailing list or look through recent archives. The RELEASE-
+ NOTES and BUGS files are generally kept up-to-date.</em>
<p>For 3.0.1, the most common &quot;bug&quot; is an apparently missing
&quot;<code>../</code>&quot; in include/Makefile, resulting in files
@@ -546,59 +591,22 @@ which is no longer available, thanks deja...-->
</p>
<h2><a name="4_1">4.1 What works already?</a></h2>
- <p>This is a verbatim clip from the &quot;Status&quot; section
+ <p>Short answer: Pretty much everything <em>works</em> except for some
+ corner cases. Also, localization is incomplete. For whether it works
+ well, or as you expect it to work, see 5.2.
+ </p>
+ <p>Long answer: See the docs/html/17_intro/CHECKLIST file, which is
+ badly outdated...
+ </p>
+ <p>What follows is a verbatim clip from the &quot;Status&quot; section
of the RELEASE-NOTES for the latest snapshot. For a list of
fixed bugs, see that file.
- </p>
+ </p>
<!-- Yeah, I meant that "verbatim clip" thing literally... :-) -->
<pre>
New:
----
-(post 3.0.97)
-- more doxygen documentation
-- more named locale fixups
-- stdio_filebuf that takes fd, FILE
-- io performance tuning
-- allocation tuning, valgrind fixups
-- __cxa_demangle now supported
-(3.0.97)
-- more doxygen documentation.
-- more named locale bug fixes
-- support for symbol versioning when using GNU ld &gt;= 2.12
-- wide-io
-- tuning for executable size
-(3.0.96)
-- more doxygen documentation.
-- extensions moved out of namespace std
-- HPUX long long support
-- more string optimizations
-- support for NetBSD cross compiles
-- concept_check merge from boost
-- header simplification
-- named locale bug shakeout
-- thread testsuite
-(3.0.95)
-- add S390, m68k, x86-64 support.
-- doxygen documentation has been extended, including man pages.
-- verbose terminate handling has been added.
-- some libsupc++ tweaks
-- warnings for deprecated headers now active.
-- dejagnu testsuite preliminary documentation.
-- dejagnu testsuite default.
-- dejagnu testsuite cross compiler, multilib safe.
-- long long iostreams on by default, rework of ISO C99 support.
-- iterator re-write and testsuites.
-- container testsuites.
-- allocator revamp and testsuites.
-- more concept-checking work.
-- basic_string optimization and MT fixes.
-- new limits implementation.
-- update -fno-exceptions code, verify it works.
-- full named locale support fpr all facets, choice of gnu,
- ieee_1003.1-200x (POSIX 2), or generic models. Full support depends
- on target OS and underlying &quot;C&quot; library support.
</pre>
@@ -680,8 +688,8 @@ New:
reason is that the state flags are <strong>not</strong> cleared
on a successful call to open(). The standard unfortunately did
not specify behavior in this case, and to everybody's great sorrow,
- the <a href="../ext/howto.html#5">proposed LWG resolution</a> (see
- DR #22) is to leave the flags unchanged. You must insert a call
+ the <a href="../ext/howto.html#5">proposed LWG resolution in
+ DR #22</a> is to leave the flags unchanged. You must insert a call
to <code>fs.clear()</code> between the calls to close() and open(),
and then everything will work like we all expect it to work.
</p>
@@ -705,16 +713,15 @@ New:
</p>
<p>If the headers are in <code>${prefix}/include/g++-3</code>, or if
the installed library's name looks like <code>libstdc++-2.10.a</code>
- or <code>libstdc++-libc6-2.10.so</code>,
- 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.
+ or <code>libstdc++-libc6-2.10.so</code>, 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.
</p>
- <p>Currently our header files are installed in
- <code>${prefix}/include/g++-v3</code> (see the 'v'?). This may
- change with the next release of GCC, as it may be too confusing,
- but <a href="http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html">the
- question has not yet been decided</a>.
+ <p>For GCC versions 3.0 and 3.1 the libstdc++-v3 header files are
+ installed in <code>${prefix}/include/g++-v3</code> (see the 'v'?).
+ Starting with version 3.2 the headers are installed in
+ <code>${prefix}/include/c++/${version}</code> as this prevents
+ headers from previous versions being found by mistake.
</p>
<p><a name="4_4_glibc"><strong>glibc</strong></a>
If you're on a GNU/Linux system and have just upgraded to
@@ -754,17 +761,29 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
when compiling and linking:
</p>
<pre>
- // compile the library components
+ // compile your library components
g++ -fPIC -c a.cc
g++ -fPIC -c b.cc
...
g++ -fPIC -c z.cc
- // create the library
+ // create your library
g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o
// link the executable
g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl</pre>
+ <p><a name="4_4_leak"><strong>"memory leaks" in containers</strong></a>
+ A few people have reported that the standard containers appear
+ to leak memory when tested with memory checkers such as
+ <a href="http://developer.kde.org/~sewardj/">valgrind</a>.
+ The library's default allocators keep free memory in a pool
+ for later reuse, rather than returning it to the OS. Although
+ this memory is always reachable by the library and is never
+ lost, memory debugging tools can report it as a leak. If you
+ want to test the library for memory leaks please read
+ <a href="../debug.html#mem">Tips for memory leak hunting</a>
+ first.
+ </p>
<hr />
<h2><a name="4_5">4.5 Aw, that's easy to fix!</a></h2>
@@ -781,7 +800,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
entry, it is a Good Thing if you can additionally create a small
test program to test for the presence of the bug that your
patch fixes. Bugs have a way of being reintroduced; if an old
- bug creeps back in, it will be caught immediately by the
+ bug creeps back in, it will be caught immediately by the
<a href="#2_4">testsuite</a> -- but only if such a test exists.
</p>
@@ -858,7 +877,8 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
<p>In particular, <code>string</code> is not from SGI and makes no
use of their &quot;rope&quot; class (which is included as an
optional extension), nor is <code>valarray</code> and some others.
- Classes like <code>vector&lt;&gt;</code> are, however.
+ Classes like <code>vector&lt;&gt;</code> are, however we have
+ made significant changes to them since then.
</p>
<p>The FAQ for SGI's STL (one jump off of their main page) is
recommended reading.
@@ -904,7 +924,6 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
<p>This is a bit cleaner than defining typedefs for all the
instantiations you might need.
</p>
-
<p>Extensions to the library have
<a href="../ext/howto.html">their own page</a>.
</p>
@@ -917,15 +936,21 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
<hr />
<h2><a name="5_6">5.6 Is libstdc++-v3 thread-safe?</a></h2>
- <p>When the system's libc is itself thread-safe, a non-generic
- implementation of atomicity.h exists for the architecture, and gcc
- itself reports a thread model other than single; libstdc++-v3
- strives to be thread-safe. The user-code must guard against
- concurrent method calls which may access any particular library
- object's state. Typically, the application programmer may infer
- what object locks must be held based on the objects referenced in
- a method call. Without getting into great detail, here is an
- example which requires user-level locks:
+ <p>libstdc++-v3 strives to be thread-safe when all of the following
+ conditions are met:
+ </p>
+ <ul>
+ <li>The system's libc is itself thread-safe,</li>
+ <li><code>gcc -v</code> reports a thread model other than 'single',</li>
+ <li>[pre-3.3 only] a non-generic implementation of atomicity.h
+ exists for the architecture in question.</li>
+ </ul>
+ <p>The user-code must guard against concurrent method calls which may
+ access any particular library object's state. Typically, the
+ application programmer may infer what object locks must be held
+ based on the objects referenced in a method call. Without getting
+ into great detail, here is an example which requires user-level
+ locks:
</p>
<pre>
library_class_a shared_object_a;
@@ -949,12 +974,12 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
object_a.mutate ();
} </pre>
<p>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,
+ long as each thread carefully locks out access by any other
+ thread while it uses any object visible to another thread, i.e.,
+ treat library objects like any other shared resource. In general,
this requirement includes both read and write access to objects;
- unless otherwise documented as safe, do not assume that two
- threads may access a shared standard library object at the
- same time.
+ unless otherwise documented as safe, do not assume that two threads
+ may access a shared standard library object at the same time.
</p>
<p>See chapters <a href="../17_intro/howto.html#3">17</a> (library
introduction), <a href="../23_containers/howto.html#3">23</a>
@@ -1006,7 +1031,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
a &quot;free-standing implementation&quot; that doesn't include (much
of) the standard library. It is a good basis for the work to come.
</p>
- <p>A useful C++ ABI must also incorporate many details of the standard
+ <p>A useful C++ ABI must also incorporate many details of the standard
library implementation. For a C ABI, the layouts of a few structs
(such as FILE, stat, jmpbuf, and the like) and a few macros suffice.
For C++, the details include the complete set of names of functions
@@ -1018,7 +1043,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
those details so that future bug fixes and optimizations don't
force breaking the ABI.
</p>
- <p>There are ways to help isolate library implementation details from the
+ <p>There are ways to help isolate library implementation details from the
ABI, but they trade off against speed. Library details used in
inner loops (e.g., getchar) must be exposed and frozen for all
time, but many others may reasonably be kept hidden from user code,
diff --git a/libstdc++-v3/docs/html/faq/index.txt b/libstdc++-v3/docs/html/faq/index.txt
index 3ea90597d43..257b27dfbf5 100644
--- a/libstdc++-v3/docs/html/faq/index.txt
+++ b/libstdc++-v3/docs/html/faq/index.txt
@@ -4,9 +4,9 @@
The latest version of this document is always available at
[1]http://gcc.gnu.org/onlinedocs/libstdc++/faq/. The main
documentation page is at
- [2]http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html.
+ [2]http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html.
- To the [3]libstdc++-v3 homepage.
+ To the [3]libstdc++-v3 homepage.
_________________________________________________________________
Questions
@@ -35,31 +35,35 @@
5. [25]_XOPEN_SOURCE / _GNU_SOURCE / etc is always defined
6. [26]OS X ctype.h is broken! How can I hack it?
7. [27]Threading is broken on i386
- 4. [28]Known Bugs and Non-Bugs
- 1. [29]What works already?
- 2. [30]Bugs in gcc/g++ (not libstdc++-v3)
- 3. [31]Bugs in the C++ language/lib specification
- 4. [32]Things in libstdc++ that only look like bugs
- o [33]reopening a stream fails
- o [34]-Weffc++ complains too much
- o [35]"ambiguous overloads" after including an old-style
+ 8. [28]Recent GNU/Linux glibc required?
+ 9. [29]Can't use wchar_t/wstring on FreeBSD
+ 10. [30]MIPS atomic operations
+ 4. [31]Known Bugs and Non-Bugs
+ 1. [32]What works already?
+ 2. [33]Bugs in gcc/g++ (not libstdc++-v3)
+ 3. [34]Bugs in the C++ language/lib specification
+ 4. [35]Things in libstdc++ that only look like bugs
+ o [36]reopening a stream fails
+ o [37]-Weffc++ complains too much
+ o [38]"ambiguous overloads" after including an old-style
header
- o [36]The g++-3 headers are not ours
- o [37]compilation errors from streambuf.h
- o [38]errors about *Concept and constraints in the STL...
- o [39]program crashes when using library code in a
+ o [39]The g++-3 headers are not ours
+ o [40]compilation errors from streambuf.h
+ o [41]errors about *Concept and constraints in the STL...
+ o [42]program crashes when using library code in a
dynamically-loaded library
- 5. [40]Aw, that's easy to fix!
- 5. [41]Miscellaneous
- 1. [42]string::iterator is not char*; vector<T>::iterator is not
+ o [43]"memory leaks" in containers
+ 5. [44]Aw, that's easy to fix!
+ 5. [45]Miscellaneous
+ 1. [46]string::iterator is not char*; vector<T>::iterator is not
T*
- 2. [43]What's next after libstdc++-v3?
- 3. [44]What about the STL from SGI?
- 4. [45]Extensions and Backward Compatibility
- 5. [46][removed]
- 6. [47]Is libstdc++-v3 thread-safe?
- 7. [48]How do I get a copy of the ISO C++ Standard?
- 8. [49]What's an ABI and why is it so messy?
+ 2. [47]What's next after libstdc++-v3?
+ 3. [48]What about the STL from SGI?
+ 4. [49]Extensions and Backward Compatibility
+ 5. [50][removed]
+ 6. [51]Is libstdc++-v3 thread-safe?
+ 7. [52]How do I get a copy of the ISO C++ Standard?
+ 8. [53]What's an ABI and why is it so messy?
_________________________________________________________________
1.0 General Information
@@ -69,19 +73,19 @@
The GNU Standard C++ Library v3 is an ongoing project to implement the
ISO 14882 Standard C++ library as described in chapters 17 through 27
and annex D. As the library reaches stable plateaus, it is captured in
- a snapshot and released. The latest release is [50]the fourteenth
+ a snapshot and released. The latest release is [54]the fourteenth
snapshot but newer versions have been included in recent GCC releases.
For those who want to see exactly how far the project has come, or
just want the latest bleeding-edge code, the up-to-date source is
available over anonymous CVS, and can even be browsed over the Web
- (see [51]1.4 below).
+ (see [55]1.4 below).
The older libstdc++-v2 project is no longer maintained; the code has
- been completely replaced and rewritten. [52]If you are using V2, then
+ been completely replaced and rewritten. [56]If you are using V2, then
you need to report bugs to your system vendor, not to the V3 list.
A more formal description of the V3 goals can be found in the official
- [53]design document.
+ [57]design document.
_________________________________________________________________
1.2 Why should I use libstdc++?
@@ -94,8 +98,8 @@
The GNU C/C++/FORTRAN/<pick-a-language> compiler (gcc, g++, etc) is
widely considered to be one of the leading compilers in the world. Its
- development has recently been taken over by the [54]GCC team. All of
- the rapid development and near-legendary [55]portability that are the
+ development has recently been taken over by the [58]GCC team. All of
+ the rapid development and near-legendary [59]portability that are the
hallmarks of an open-source project are being applied to libstdc++.
That means that all of the Standard classes and functions (such as
@@ -113,18 +117,18 @@
Development and discussion is held on the libstdc++ mailing list.
Subscribing to the list, or searching the list archives, is open to
- everyone. You can read instructions for doing so on the [56]homepage.
+ everyone. You can read instructions for doing so on the [60]homepage.
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 [57]available
- via ftp.
-
- The [58]homepage has instructions for retrieving the latest CVS
+ The [61]homepage has instructions for retrieving the latest CVS
sources, and for browsing the CVS sources over the web.
+ Stable versions of libstdc++-v3 are included with releases of [62]the
+ GCC compilers.
+
The subset commonly known as the Standard Template Library (chapters
23 through 25, mostly) is adapted from the final release of the SGI
STL.
@@ -138,7 +142,7 @@
1.6 How do I contribute to the effort?
- Here is [59]a page devoted to this topic. Subscribing to the mailing
+ Here is [63]a page devoted to this topic. Subscribing to the mailing
list (see above, or the homepage) is a very good idea if you have
something to contribute, or if you have spare time and want to help.
Contributions don't have to be in the form of source code; anybody who
@@ -170,15 +174,15 @@
the SGI STL aren't maintained by us and don't get a lot of our
attention, because they don't require a lot of our time.) It is
entirely plausable that the "useful stuff" from libg++ might be
- extracted into an updated utilities library, but nobody has stated
+ extracted into an updated utilities library, but nobody has started
such a project yet.
- (The [60]Boost site houses free C++ libraries that do varying things,
+ (The [64]Boost site houses free C++ libraries that do varying things,
and happened to be started by members of the Standards Committee.
Certain "useful stuff" classes will probably migrate there.)
- For the bold and/or desperate, the [61]GCC FAQ describes where to find
- the last libg++ source.
+ For the bold and/or desperate, the [65]GCC extensions page describes
+ where to find the last libg++ source.
_________________________________________________________________
1.8 What if I have more questions?
@@ -187,16 +191,16 @@
remains unanswered, then just ask the mailing list. At present, you do
not need to be subscribed to the list to send a message to it. More
information is available on the homepage (including how to browse the
- list archives); to send to the list, use [62]libstdc++@gcc.gnu.org.
+ list archives); to send to the list, use [66]libstdc++@gcc.gnu.org.
If you have a question that you think should be included here, or if
- you have a question about a question/answer here, contact [63]Phil
- Edwards or [64]Gabriel Dos Reis.
+ you have a question about a question/answer here, contact [67]Phil
+ Edwards or [68]Gabriel Dos Reis.
_________________________________________________________________
1.9 What are the license terms for libstdc++-v3?
- See [65]our license description for these and related questions.
+ See [69]our license description for these and related questions.
_________________________________________________________________
2.0 Installation
@@ -213,13 +217,13 @@
* The GNU Autotools are needed if you are messing with the configury
or makefiles.
- The file [66]documentation.html provides a good overview of the steps
+ The file [70]documentation.html provides a good overview of the steps
necessary to build, install, and use the library. Instructions for
configuring the library with new flags such as --enable-threads are
there also, as well as patches and instructions for working with GCC
2.95.
- The top-level install.html and [67]RELEASE-NOTES files contain the
+ The top-level install.html and [71]RELEASE-NOTES files contain the
exact build and installation instructions. You may wish to browse
those files over CVSweb ahead of time to get a feel for what's
required. RELEASE-NOTES is located in the ".../docs/17_intro/"
@@ -236,8 +240,8 @@
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 [68]CVS entry in the GNU
- software catalogue has a better description as well as a [69]link to
+ free (beer), and very high quality. The [72]CVS entry in the GNU
+ software catalogue has a better description as well as a [73]link to
the makers of CVS.
The "anonymous client checkout" feature of CVS is similar to anonymous
@@ -250,7 +254,8 @@
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 install") to run the testsuite.
+ install the library ("make install") to run the testsuite, but you do
+ need DejaGNU, as described [74]here.
To run the testsuite on the library after building it, use "make
check" while in your build directory. To run the testsuite on the
@@ -262,7 +267,7 @@
up your idea and send it to the list!
_________________________________________________________________
-2.4 This library is HUGE! And what's libsupc++?
+2.5 This library is HUGE! And what's libsupc++?
Usually the size of libraries on disk isn't noticeable. When a link
editor (or simply "linker") pulls things from a static archive
@@ -288,7 +293,7 @@
people don't like it, so here are two pseudo-solutions:
If the only functions from libstdc++.a which you need are language
- support functions (those listed in [70]clause 18 of the standard,
+ support functions (those listed in [75]clause 18 of the standard,
e.g., new and delete), then try linking against libsupc++.a (usually
specifying -lsupc++ when calling g++ for the final link step will do
it). This library contains only those support routines, one per object
@@ -383,7 +388,7 @@
- < /dev/null" to display a list of predefined macros for any
particular installation.
- This has been discussed on the mailing lists [71]quite a bit.
+ This has been discussed on the mailing lists [76]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.
@@ -392,11 +397,11 @@
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. [72]Here's a link to the
+ patch is quite simple, and well-known. [77]Here's a link to the
solution.
_________________________________________________________________
-Threading is broken on i386
+3.7 Threading is broken on i386
Support for atomic integer operations is/was broken on i386 platforms.
The assembly code accidentally used opcodes that are only available on
@@ -408,6 +413,43 @@ Threading is broken on i386
This is fixed in 3.2.2.
_________________________________________________________________
+3.8 Recent GNU/Linux glibc required?
+
+ When running on GNU/Linux, libstdc++ 3.2.1 (shared library version
+ 5.0.1) and later uses localization and formatting code from the system
+ C library (glibc) version 2.2.5. That version of glibc is over a year
+ old and contains necessary bugfixes. Many GNU/Linux distros make glibc
+ version 2.3.x available now.
+
+ The guideline is simple: the more recent the C++ library, the more
+ recent the C library. (This is also documented in the main GCC
+ installation instructions.)
+ _________________________________________________________________
+
+3.9 Can't use wchar_t/wstring on FreeBSD
+
+ At the moment there are a few problems in FreeBSD's support for wide
+ character functions, and as a result the libstdc++ configury decides
+ that wchar_t support should be disabled. Once the underlying problems
+ are fixed in FreeBSD (soon), the library support will automatically
+ enable itself.
+
+ You can fix the problems yourself, and learn more about the situation,
+ by reading [78]this short thread ("_GLIBCPP_USE_WCHAR_T undefined in
+ FreeBSD's c++config.h?").
+ _________________________________________________________________
+
+3.10 MIPS atomic operations
+
+ The atomic locking routines for MIPS targets requires MIPS II and
+ later. A patch went in just after the 3.3 release to make mips* use
+ the generic implementation instead. You can also configure for
+ mipsel-elf as a workaround.
+
+ mips*-*-linux* continues to use the MIPS II routines, and more work in
+ this area is expected.
+ _________________________________________________________________
+
4.0 Known Bugs and Non-Bugs
Note that this section can get rapdily outdated -- such is the nature
@@ -417,7 +459,7 @@ Threading is broken on i386
For 3.0.1, the most common "bug" is an apparently missing "../" in
include/Makefile, resulting in files like gthr.h and gthr-single.h not
- being found. Please read [73]the configuration instructions for GCC,
+ being found. Please read [79]the configuration instructions for GCC,
specifically the part about configuring in a separate build directory,
and how strongly recommended it is. Building in the source directory
is fragile, is rarely tested, and tends to break, as in this case.
@@ -425,7 +467,7 @@ Threading is broken on i386
For 3.1, the most common "bug" is a parse error when using <fstream>,
ending with a message, "bits/basic_file.h:52: parse error before `{'
- token." Please read [74]the installation instructions for GCC,
+ token." Please read [80]the installation instructions for GCC,
specifically the part about not installing newer versions on top of
older versions. If you install 3.1 over a 3.0.x release, then the
wrong basic_file.h header will be found (its location changed between
@@ -438,53 +480,17 @@ Threading is broken on i386
4.1 What works already?
- This is a verbatim clip from the "Status" section of the RELEASE-NOTES
- for the latest snapshot. For a list of fixed bugs, see that file.
+ Short answer: Pretty much everything works except for some corner
+ cases. Also, localization is incomplete. For whether it works well, or
+ as you expect it to work, see 5.2.
+
+ Long answer: See the docs/html/17_intro/CHECKLIST file, which is badly
+ outdated...
+
+ What follows is a verbatim clip from the "Status" section of the
+ RELEASE-NOTES for the latest snapshot. For a list of fixed bugs, see
+ that file.
New:
----
-(post 3.0.97)
-- more doxygen documentation
-- more named locale fixups
-- stdio_filebuf that takes fd, FILE
-- io performance tuning
-- allocation tuning, valgrind fixups
-- __cxa_demangle now supported
-(3.0.97)
-- more doxygen documentation.
-- more named locale bug fixes
-- support for symbol versioning when using GNU ld >= 2.12
-- wide-io
-- tuning for executable size
-(3.0.96)
-- more doxygen documentation.
-- extensions moved out of namespace std
-- HPUX long long support
-- more string optimizations
-- support for NetBSD cross compiles
-- concept_check merge from boost
-- header simplification
-- named locale bug shakeout
-- thread testsuite
-(3.0.95)
-- add S390, m68k, x86-64 support.
-- doxygen documentation has been extended, including man pages.
-- verbose terminate handling has been added.
-- some libsupc++ tweaks
-- warnings for deprecated headers now active.
-- dejagnu testsuite preliminary documentation.
-- dejagnu testsuite default.
-- dejagnu testsuite cross compiler, multilib safe.
-- long long iostreams on by default, rework of ISO C99 support.
-- iterator re-write and testsuites.
-- container testsuites.
-- allocator revamp and testsuites.
-- more concept-checking work.
-- basic_string optimization and MT fixes.
-- new limits implementation.
-- update -fno-exceptions code, verify it works.
-- full named locale support fpr all facets, choice of gnu,
- ieee_1003.1-200x (POSIX 2), or generic models. Full support depends
- on target OS and underlying "C" library support.
_________________________________________________________________
4.2 Bugs in gcc/g++ (not libstdc++-v3)
@@ -494,30 +500,30 @@ New:
libstdc++. If you are experiencing one of these problems, you can find
more information on the libstdc++ and the GCC mailing lists.
- Before reporting a bug, examine the [75]bugs database with the
+ Before reporting a bug, examine the [81]bugs database with the
category set to "libstdc++". The BUGS file in the source tree also
tracks known serious problems.
* Debugging is problematic, due to bugs in line-number generation
(mostly fixed in the compiler) and gdb lagging behind the compiler
(lack of personnel). We recommend configuring the compiler using
--with-dwarf2 if the DWARF2 debugging format is not already the
- default on your platform. Also, [76]changing your GDB settings can
+ default on your platform. Also, [82]changing your GDB settings can
have a profound effect on your C++ debugging experiences. :-)
_________________________________________________________________
4.3 Bugs in the C++ language/lib specification
- Yes, unfortunately, there are some. In a [77]message to the list,
+ Yes, unfortunately, there are some. In a [83]message to the list,
Nathan Myers announced that he has started a list of problems in the
ISO C++ Standard itself, especially with regard to the chapters that
- concern the library. The list itself is [78]posted on his website.
+ concern the library. The list itself is [84]posted on his website.
Developers who are having problems interpreting the Standard may wish
to consult his notes.
For those people who are not part of the ISO Library Group (i.e.,
nearly all of us needing to read this page in the first place :-), a
- public list of the library defects is occasionally published [79]here.
- Some of these have resulted in [80]code changes.
+ public list of the library defects is occasionally published [85]here.
+ Some of these have resulted in [86]code changes.
_________________________________________________________________
4.4 Things in libstdc++ that only look like bugs
@@ -549,7 +555,7 @@ New:
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 [81]proposed LWG resolution (see DR #22) is to leave the flags
+ the [87]proposed LWG resolution in 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.
@@ -559,7 +565,7 @@ New:
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 [82]sums things up here. The collisions with
+ Nathan Myers [88]sums things up here. The collisions with
vector/string iterator types have been fixed for 3.1.
The g++-3 headers are not ours
@@ -567,7 +573,7 @@ New:
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 [83]the GCC bug database).
+ paragraph of the page describing [89]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,
@@ -575,9 +581,11 @@ New:
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 [84]the question has not yet been decided.
+ For GCC versions 3.0 and 3.1 the libstdc++-v3 header files are
+ installed in ${prefix}/include/g++-v3 (see the 'v'?). Starting with
+ version 3.2 the headers are installed in
+ ${prefix}/include/c++/${version} as this prevents headers from
+ previous versions being found by mistake.
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
@@ -590,7 +598,7 @@ 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 [85]old v2 library which is no
+ Note that 2.95.x shipped with the [90]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.
@@ -603,38 +611,47 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
visibility, or you just plain forgot, etc).
More information, including how to optionally enable/disable the
- checks, is available [86]here.
+ checks, is available [91]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
+ // compile your library components
g++ -fPIC -c a.cc
g++ -fPIC -c b.cc
...
g++ -fPIC -c z.cc
- // create the library
+ // create your library
g++ -fPIC -shared -rdynamic -o libfoo.so a.o b.o ... z.o
// link the executable
g++ -fPIC -rdynamic -o foo ... -L. -lfoo -ldl
+
+ "memory leaks" in containers A few people have reported that the
+ standard containers appear to leak memory when tested with memory
+ checkers such as [92]valgrind. The library's default allocators keep
+ free memory in a pool for later reuse, rather than returning it to the
+ OS. Although this memory is always reachable by the library and is
+ never lost, memory debugging tools can report it as a leak. If you
+ want to test the library for memory leaks please read [93]Tips for
+ memory leak hunting first.
_________________________________________________________________
4.5 Aw, that's easy to fix!
If you have found a bug in the library and you think you have a
working fix, then send it in! The main GCC site has a page on
- [87]submitting patches that covers the procedure, but for libstdc++
+ [94]submitting patches that covers the procedure, but for libstdc++
you should also send the patch to our mailing list in addition to the
- GCC patches mailing list. The libstdc++ [88]contributors' page also
+ GCC patches mailing list. The libstdc++ [95]contributors' page also
talks about how to submit patches.
In addition to the description, the patch, and the ChangeLog entry, it
is a Good Thing if you can additionally create a small test program to
test for the presence of the bug that your patch fixes. Bugs have a
way of being reintroduced; if an old bug creeps back in, it will be
- caught immediately by the [89]testsuite -- but only if such a test
+ caught immediately by the [96]testsuite -- but only if such a test
exists.
_________________________________________________________________
@@ -668,7 +685,7 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
libstdc++. Some of that is already happening, see 4.2. Some of
those changes are being predicted by the library maintainers, and
we add code to the library based on what the current proposed
- resolution specifies. Those additions are listed in [90]the
+ resolution specifies. Those additions are listed in [97]the
extensions page.
2. Performance tuning. Lots of performance tuning. This too is
already underway for post-3.0 releases, starting with memory
@@ -684,20 +701,21 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
type from C99.) Bugfixes and rewrites (to improve or fix thread
safety, for instance) will of course be a continuing task.
- [91]This question about the next libstdc++ prompted some brief but
- interesting [92]speculation.
+ [98]This question about the next libstdc++ prompted some brief but
+ interesting [99]speculation.
_________________________________________________________________
5.3 What about the STL from SGI?
- The [93]STL from SGI, version 3.3, was the most recent merge of the
+ The [100]STL from SGI, version 3.3, was the most recent merge of the
STL codebase. The code in libstdc++ contains many fixes and changes,
and it is very likely that the SGI code is no longer under active
development. We expect that no future merges will take place.
In particular, string is not from SGI and makes no use of their "rope"
class (which is included as an optional extension), nor is valarray
- and some others. Classes like vector<> are, however.
+ and some others. Classes like vector<> are, however we have made
+ significant changes to them since then.
The FAQ for SGI's STL (one jump off of their main page) is recommended
reading.
@@ -714,7 +732,32 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
headers whose directories are not searched directly, e.g.,
<sys/stat.h>, <X11/Xlib.h>.
- Extensions to the library have [94]their own page.
+ The extensions are no longer in the global or std namespaces, instead
+ they are declared in the __gnu_cxx namespace. For maximum portability,
+ consider defining a namespace alias to use to talk about extensions,
+ e.g.:
+ #ifdef __GNUC__
+ #if __GNUC__ < 3
+ #include <hash_map.h>
+ namespace Sgi { using ::hash_map; }; // inherit globals
+ #else
+ #include <ext/hash_map>
+ #if __GNUC_MINOR__ == 0
+ namespace Sgi = std; // GCC 3.0
+ #else
+ namespace Sgi = ::__gnu_cxx; // GCC 3.1 and later
+ #endif
+ #endif
+ #else // ... there are other compilers, right?
+ namespace Sgi = std;
+ #endif
+
+ Sgi::hash_map<int,int> my_map;
+
+ This is a bit cleaner than defining typedefs for all the
+ instantiations you might need.
+
+ Extensions to the library have [101]their own page.
_________________________________________________________________
5.5 [removed]
@@ -725,15 +768,18 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff
5.6 Is libstdc++-v3 thread-safe?
- When the system's libc is itself thread-safe, a non-generic
- implementation of atomicity.h exists for the architecture, and gcc
- itself reports a thread model other than single; libstdc++-v3 strives
- to be thread-safe. The user-code must guard against concurrent method
- calls which may access any particular library object's state.
- Typically, the application programmer may infer what object locks must
- be held based on the objects referenced in a method call. Without
- getting into great detail, here is an example which requires
- user-level locks:
+ libstdc++-v3 strives to be thread-safe when all of the following
+ conditions are met:
+ * The system's libc is itself thread-safe,
+ * gcc -v reports a thread model other than 'single',
+ * [pre-3.3 only] a non-generic implementation of atomicity.h exists
+ for the architecture in question.
+
+ The user-code must guard against concurrent method calls which may
+ access any particular library object's state. Typically, the
+ application programmer may infer what object locks must be held based
+ on the objects referenced in a method call. Without getting into great
+ detail, here is an example which requires user-level locks:
library_class_a shared_object_a;
thread_main () {
@@ -758,13 +804,14 @@ a
All library objects are safe to use in a multithreaded program as long
as each thread carefully locks out access by any other thread while it
- uses any object visible to another thread. In general, this
- requirement includes both read and write access to objects; unless
- otherwise documented as safe, do not assume that two threads may
- access a shared standard library object at the same time.
+ uses any object visible to another thread, i.e., treat library objects
+ like any other shared resource. In general, this requirement includes
+ both read and write access to objects; unless otherwise documented as
+ safe, do not assume that two threads may access a shared standard
+ library object at the same time.
- See chapters [95]17 (library introduction), [96]23 (containers), and
- [97]27 (I/O) for more information.
+ See chapters [102]17 (library introduction), [103]23 (containers), and
+ [104]27 (I/O) for more information.
_________________________________________________________________
5.7 How do I get a copy of the ISO C++ Standard?
@@ -775,11 +822,11 @@ a
their two-meeting commitment for voting rights, may get a copy of the
standard from their respective national standards organization. In the
USA, this national standards organization is ANSI and their website is
- right [98]here. (And if you've already registered with them, clicking
- this link will take you to directly to the place where you can [99]buy
- the standard on-line.
+ right [105]here. (And if you've already registered with them, clicking
+ this link will take you to directly to the place where you can
+ [106]buy the standard on-line.
- Who is your country's member body? Visit the [100]ISO homepage and
+ Who is your country's member body? Visit the [107]ISO homepage and
find out!
_________________________________________________________________
@@ -830,8 +877,8 @@ a
encompasses the standard library.
_________________________________________________________________
- See [101]license.html for copying conditions. Comments and suggestions
- are welcome, and may be sent to [102]the libstdc++ mailing list.
+ See [108]license.html for copying conditions. Comments and suggestions
+ are welcome, and may be sent to [109]the libstdc++ mailing list.
References
@@ -862,78 +909,85 @@ References
25. ../faq/index.html#3_5
26. ../faq/index.html#3_6
27. ../faq/index.html#3_7
- 28. ../faq/index.html#4_0
- 29. ../faq/index.html#4_1
- 30. ../faq/index.html#4_2
- 31. ../faq/index.html#4_3
- 32. ../faq/index.html#4_4
- 33. ../faq/index.html#4_4_iostreamclear
- 34. ../faq/index.html#4_4_Weff
- 35. ../faq/index.html#4_4_rel_ops
- 36. ../faq/index.html#4_4_interface
- 37. ../faq/index.html#4_4_glibc
- 38. ../faq/index.html#4_4_checks
- 39. ../faq/index.html#4_4_dlsym
- 40. ../faq/index.html#4_5
- 41. ../faq/index.html#5_0
- 42. ../faq/index.html#5_1
- 43. ../faq/index.html#5_2
- 44. ../faq/index.html#5_3
- 45. ../faq/index.html#5_4
- 46. ../faq/index.html#5_5
- 47. ../faq/index.html#5_6
- 48. ../faq/index.html#5_7
- 49. ../faq/index.html#5_8
- 50. http://gcc.gnu.org/libstdc++/index.html#download
- 51. ../faq/index.html#1_4
- 52. ../faq/index.html#4_4_interface
- 53. ../17_intro/DESIGN
- 54. http://gcc.gnu.org/
- 55. http://gcc.gnu.org/gcc-3.0/buildstat.html
- 56. http://gcc.gnu.org/libstdc++/
- 57. http://gcc.gnu.org/libstdc++/index.html#download
- 58. http://gcc.gnu.org/libstdc++/
- 59. ../17_intro/contribute.html
- 60. http://www.boost.org/
- 61. http://gcc.gnu.org/fom_serv/cache/33.html
- 62. mailto:libstdc++@gcc.gnu.org
- 63. mailto:pme@gcc.gnu.org
- 64. mailto:gdr@gcc.gnu.org
- 65. ../17_intro/license.html
- 66. ../documentation.html
- 67. ../17_intro/RELEASE-NOTES
- 68. http://www.gnu.org/software/cvs/cvs.html
- 69. http://www.cvshome.org/
- 70. ../18_support/howto.html
- 71. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris
- 72. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html
- 73. http://gcc.gnu.org/install/configure.html
- 74. http://gcc.gnu.org/install/
- 75. http://gcc.gnu.org/bugs.html
- 76. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html
- 77. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html
- 78. http://www.cantrip.org/draft-bugs.txt
- 79. http://anubis.dkuug.dk/jtc1/sc22/wg21/
- 80. ../faq/index.html#5_2
- 81. ../ext/howto.html#5
- 82. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
- 83. http://gcc.gnu.org/gnatswrite.html
- 84. http://gcc.gnu.org/ml/gcc/2000-10/msg00732.html
- 85. ../faq/index.html#4_4_interface
- 86. ../19_diagnostics/howto.html#3
- 87. http://gcc.gnu.org/contribute.html
- 88. ../17_intro/contribute.html
- 89. ../faq/index.html#2_4
- 90. ../ext/howto.html#5
- 91. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html
- 92. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html
- 93. http://www.sgi.com/Technology/STL/
- 94. ../ext/howto.html
- 95. ../17_intro/howto.html#3
- 96. ../23_containers/howto.html#3
- 97. ../27_io/howto.html#9
- 98. http://www.ansi.org/
- 99. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
- 100. http://www.iso.ch/
- 101. ../17_intro/license.html
- 102. mailto:libstdc++@gcc.gnu.org
+ 28. ../faq/index.html#3_8
+ 29. ../faq/index.html#3_9
+ 30. ../faq/index.html#3_10
+ 31. ../faq/index.html#4_0
+ 32. ../faq/index.html#4_1
+ 33. ../faq/index.html#4_2
+ 34. ../faq/index.html#4_3
+ 35. ../faq/index.html#4_4
+ 36. ../faq/index.html#4_4_iostreamclear
+ 37. ../faq/index.html#4_4_Weff
+ 38. ../faq/index.html#4_4_rel_ops
+ 39. ../faq/index.html#4_4_interface
+ 40. ../faq/index.html#4_4_glibc
+ 41. ../faq/index.html#4_4_checks
+ 42. ../faq/index.html#4_4_dlsym
+ 43. ../faq/index.html#4_4_leak
+ 44. ../faq/index.html#4_5
+ 45. ../faq/index.html#5_0
+ 46. ../faq/index.html#5_1
+ 47. ../faq/index.html#5_2
+ 48. ../faq/index.html#5_3
+ 49. ../faq/index.html#5_4
+ 50. ../faq/index.html#5_5
+ 51. ../faq/index.html#5_6
+ 52. ../faq/index.html#5_7
+ 53. ../faq/index.html#5_8
+ 54. http://gcc.gnu.org/libstdc++/index.html#download
+ 55. ../faq/index.html#1_4
+ 56. ../faq/index.html#4_4_interface
+ 57. ../17_intro/DESIGN
+ 58. http://gcc.gnu.org/
+ 59. http://gcc.gnu.org/gcc-3.0/buildstat.html
+ 60. http://gcc.gnu.org/libstdc++/
+ 61. http://gcc.gnu.org/libstdc++/
+ 62. http://gcc.gnu.org/releases.html
+ 63. ../17_intro/contribute.html
+ 64. http://www.boost.org/
+ 65. http://gcc.gnu.org/extensions.html
+ 66. mailto:libstdc++@gcc.gnu.org
+ 67. mailto:pme@gcc.gnu.org
+ 68. mailto:gdr@gcc.gnu.org
+ 69. ../17_intro/license.html
+ 70. ../documentation.html
+ 71. ../17_intro/RELEASE-NOTES
+ 72. http://www.gnu.org/software/cvs/cvs.html
+ 73. http://www.cvshome.org/
+ 74. http://gcc.gnu.org/install/test.html
+ 75. ../18_support/howto.html
+ 76. http://gcc.gnu.org/cgi-bin/htsearch?method=and&format=builtin-long&sort=score&words=_XOPEN_SOURCE+Solaris
+ 77. http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html
+ 78. http://gcc.gnu.org/ml/libstdc++/2003-02/subjects.html#00286
+ 79. http://gcc.gnu.org/install/configure.html
+ 80. http://gcc.gnu.org/install/
+ 81. http://gcc.gnu.org/bugs.html
+ 82. http://gcc.gnu.org/ml/libstdc++/2002-02/msg00034.html
+ 83. http://gcc.gnu.org/ml/libstdc++/1998/msg00006.html
+ 84. http://www.cantrip.org/draft-bugs.txt
+ 85. http://anubis.dkuug.dk/jtc1/sc22/wg21/
+ 86. ../faq/index.html#5_2
+ 87. ../ext/howto.html#5
+ 88. http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
+ 89. http://gcc.gnu.org/gnatswrite.html
+ 90. ../faq/index.html#4_4_interface
+ 91. ../19_diagnostics/howto.html#3
+ 92. http://developer.kde.org/~sewardj/
+ 93. ../debug.html#mem
+ 94. http://gcc.gnu.org/contribute.html
+ 95. ../17_intro/contribute.html
+ 96. ../faq/index.html#2_4
+ 97. ../ext/howto.html#5
+ 98. http://gcc.gnu.org/ml/libstdc++/1999/msg00080.html
+ 99. http://gcc.gnu.org/ml/libstdc++/1999/msg00084.html
+ 100. http://www.sgi.com/Technology/STL/
+ 101. ../ext/howto.html
+ 102. ../17_intro/howto.html#3
+ 103. ../23_containers/howto.html#3
+ 104. ../27_io/howto.html#9
+ 105. http://www.ansi.org/
+ 106. http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998
+ 107. http://www.iso.ch/
+ 108. ../17_intro/license.html
+ 109. mailto:libstdc++@gcc.gnu.org
diff --git a/libstdc++-v3/docs/html/install.html b/libstdc++-v3/docs/html/install.html
index e4295aaa4de..038291b8acc 100644
--- a/libstdc++-v3/docs/html/install.html
+++ b/libstdc++-v3/docs/html/install.html
@@ -14,15 +14,17 @@
</head>
<body>
-<h1 class="centered"><a name="top">libstdc++-v3 INSTALL</a></h1>
+<h1 class="centered"><a name="top">Getting started: configure, build, install</a></h1>
-<p>The latest version of this document is always available at
+<p class="fineprint"><em>
+ The latest version of this document is always available at
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/install.html">
http://gcc.gnu.org/onlinedocs/libstdc++/install.html</a>.
-</p>
+</em></p>
-<p>To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
-</p>
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
<!-- ####################################################### -->
@@ -99,7 +101,8 @@
<dd>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.
+ named locale support. For gcc 3.2.1 and later, this means that
+ glibc 2.2.5 or later is required.
<p>
The configure option --enable-clocale can be used force a
@@ -108,9 +111,27 @@
<p>
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
+ are used and tested in the libstdc++ testsuites. The first column
+ is the name of the locale, the second is the character set it is
+ expected to use.
+ </p>
+<pre>
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+en_HK ISO-8859-1
+en_PH ISO-8859-1
+en_US ISO-8859-1
+en_US.ISO-8859-1 ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+es_MX ISO-8859-1
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+it_IT ISO-8859-1
+ja_JP.eucjp EUC-JP
+se_NO.UTF-8 UTF-8
+</pre>
+ <p>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
@@ -120,17 +141,34 @@
necessary.
</p>
- <p> To install
- support for locales, do only one of the following: </p>
+ <p>To install support for locales, do only one of the following:
+ </p>
+
<ul>
<li> install all locales
+ <ul>
+ <li>with RedHat Linux:
<p> <code> export LC_ALL=C </code> </p>
<p> <code> rpm -e glibc-common --nodeps </code> </p>
<p> <code> rpm -i --define "_install_langs all"
glibc-common-2.2.5-34.i386.rpm </code> </p>
+ </li>
+ <li> (instructions for other operating systems solicited) </li>
+ </ul>
</li>
<li> install just the necessary locales
+ <ul>
+ <li>with Debian Linux:
+ <p> Add the above list, as shown, to the file
+ <code>/etc/locale.gen</code> </p>
+ <p> run <code>/usr/sbin/locale-gen</code> </p>
+ </li>
+ <li> on most Unix-like operating systems:
<p> <code> localedef -i de_DE -f ISO-8859-1 de_DE </code> </p>
+ <p> (repeat for each entry in the above list) </p>
+ </li>
+ <li> (instructions for other operating systems solicited) </li>
+ </ul>
</li>
</ul>
</dd>
@@ -274,36 +312,6 @@
the headers and library files will be moved under
<code>lib/gcc-lib/</code> instead.
</p>
- <p>You can check the status of the build without installing it using</p>
- <pre>
- make check</pre>
- <p>or you can check the status of the installed library using</p>
- <pre>
- make check-install</pre>
- <p>in the <em>libbuilddir</em> directory.
- These commands will create a 'testsuite' directory underneath
- <em>libbuilddir</em> containing the results of the tests. We are
- interested in any strange failures of the testsuite; please see
- <a href="faq/index.html#2_4">FAQ 2.4</a> for which files to examine.
- </p>
-
- <p> 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:
- </p>
-
- <p>The library ABI can be tested using</p>
- <pre>
- make check-abi</pre>
-
- <p>The library can also be tested using a bash script, instead of
- the default dejagnu test harness</p>
- <pre>
- make check-script</pre>
- <p>or</p>
- <pre>
- make check-script-install</pre>
<hr />
<h2><a name="usage">Using the library</a></h2>
diff --git a/libstdc++-v3/docs/html/test.html b/libstdc++-v3/docs/html/test.html
new file mode 100644
index 00000000000..4d2dc536dc3
--- /dev/null
+++ b/libstdc++-v3/docs/html/test.html
@@ -0,0 +1,599 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta name="AUTHOR" content="bkoz@gcc.gnu.org (Benjamin Kosnik)" />
+ <meta name="KEYWORDS" content="c++, libstdc++, test, regression, g++" />
+ <meta name="DESCRIPTION" content="README for the GNU libstdc++ effort." />
+ <meta name="GENERATOR" content="vi and eight fingers" />
+ <title>libstdc++-v3 Testing Instructions</title>
+<link rel="StyleSheet" href="lib3styles.css" />
+</head>
+<body>
+
+<h1 class="centered"><a name="top">Testing Details</a></h1>
+
+<p class="fineprint"><em>
+ The latest version of this document is always available at
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/test.html">
+ http://gcc.gnu.org/onlinedocs/libstdc++/test.html</a>.
+</em></p>
+
+<p><em>
+ To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
+</em></p>
+
+<!-- ####################################################### -->
+<hr />
+<h2>Contents</h2>
+<ul>
+ <li><a href="#org">Testsuite organization and naming conventions</a></li>
+ <li><a href="#util">Utilities: abicheck and libv3test</a></li>
+ <li><a href="#new">How to write a new test case</a></li>
+ <li><a href="#check">Options for running the tests</a></li>
+ <li><a href="#future">Future</a></li>
+</ul>
+
+<hr />
+
+<!-- ####################################################### -->
+
+<h2><a name="org">Testsuite organization and naming conventions</a></h2>
+ <p>
+ The directory <em>libsrcdir/testsuite</em> contains the test
+ files, test harness, and utility information for verifying the
+ correctness of C++ library on a given host. It includes the
+ following directories, each named after a specific chapter of
+ the C++ standard, and each containing test files or
+ subdirectories of test files that test for that particular part
+ of the standard.
+ </p>
+
+ <pre>
+17_intro
+18_support
+19_diagnostics
+20_util
+21_strings
+22_locale
+23_containers
+25_algorithms
+26_numerics
+27_io
+ </pre>
+
+ <p>
+ In addition, the following directories include test files:
+ </p>
+
+ <pre>
+backward Tests for backwards compatibility and deprecated features.
+demangle Tests for __cxa_demangle, the IA 64 C++ ABI demangler
+ext Tests for extensions.
+performance Tests for performance analysis, and performance regressions.
+thread Tests for threads.
+ </pre>
+
+ <p>
+ Some directories don't have test files, but instead contain
+ auxiliary information:
+ </p>
+
+ <pre>
+config Files for the dejagnu test harness.
+lib Files for the dejagnu test harness.
+libstdc++-v3.dg Files for the dejagnu test harness.
+data Sample text files for testing input and output.
+ </pre>
+
+ <p>
+ Within a directory that includes test files, there may be
+ additional subdirectories, or files: this particular point is in
+ flux. Originally, test cases were appended to one file that
+ represented a particular section of the chapter under test, and
+ was named accordingly. For instance, to test items related to
+ <code> 21.3.6.1 - basic_string::find [lib.string::find]</code>
+ in the standard, the following was used:
+ </p>
+ <pre>
+21_strings/find.cc
+ </pre>
+ <p>
+ However, that practice soon became a liability as the test cases
+ became huge and unwieldy, and testing new or extended
+ functionality (like wide characters or named locales) became
+ frustrating, leading to aggressive pruning of test cases on some
+ platforms that covered up implementation errors. Now, the test
+ suite is converging on a policy of one file, one test case,
+ which solves the above issues and gives finer grained results
+ and more manageable error debugging. As an example, the test case
+ quoted above becomes:
+ </p>
+ <pre>
+21_strings/basic_string/find/char/1.cc
+21_strings/basic_string/find/char/2.cc
+21_strings/basic_string/find/char/3.cc
+21_strings/basic_string/find/wchar_t/1.cc
+21_strings/basic_string/find/wchar_t/2.cc
+21_strings/basic_string/find/wchar_t/3.cc
+ </pre>
+
+ <p>
+ All new tests should be written with the policy of one test
+ case, one file in mind. At some point the entire testsuite will
+ be converted: the current status is that the 21_string,
+ 22_locale, 27_io, and demangle directories have all been
+ transitioned.
+ </p>
+
+ <p>
+ In addition, there are some special names and suffixes that are
+ used within the testsuite to designate particular kinds of
+ tests.
+ </p>
+
+<ul>
+<li>
+ <em>_xin.cc</em>
+ <p>
+ This test case expects some kind of interactive input in order
+ to finish or pass. At the moment, the interactive tests are not
+ run by default. Instead, they are run by hand, like:
+ </p>
+ <pre>
+g++ 27_io/objects/char/3_xin.cc
+cat 27_io/objects/char/3_xin.in | a.out
+ </pre>
+</li>
+<li>
+ <em>.in</em>
+ <p>
+ This file contains the expected input for the corresponding <em>
+ _xin.cc</em> test case.
+ </p>
+</li>
+<li>
+ <em>_neg.cc</em>
+ <p>
+ This test case is expected to fail: it's a negative test. At the
+ moment, these are almost always compile time errors.
+ </p>
+</li>
+<li>
+ <em>char</em>
+ <p>
+ This can either be a directory name or part of a longer file
+ name, and indicates that this file, or the files within this
+ directory are testing the <code>char</code> instantiation of a
+ template.
+ </p>
+</li>
+<li>
+ <em>wchar_t</em>
+ <p>
+ This can either be a directory name or part of a longer file
+ name, and indicates that this file, or the files within this
+ directory are testing the <code>wchar_t</code> instantiation of
+ a template. Some hosts do not support <code>wchar_t</code>
+ functionality, so for these targets, all of these tests will not
+ be run.
+ </p>
+</li>
+<li>
+ <em>performance</em>
+ <p>
+ This can either be an enclosing directory name or part of a
+ specific file name. This indicates a test that is used to
+ analyze runtime performance, for performance regression testing,
+ or for other optimization related analysis. At the moment, these
+ test cases are not run by default.
+ </p>
+</li>
+</ul>
+
+<hr />
+<h2><a name="util">Utilities: abicheck and libv3test</a></h2>
+ <p>
+ The testsuite directory also contains some files that implement
+ functionality that is intended to make writing test cases easier,
+ or to avoid duplication, or to provide error checking in a way that
+ is consistent across platforms and test harnesses. A stand-alone
+ executable, called <em>abi_check</em>, and a static library called
+ <em>libv3test</em> are constructed during the build. Both of these
+ items are not installed, and only used during testing.
+ </p>
+
+ <p>
+ These files include the following functionality:
+ </p>
+
+ <ul>
+ <li>
+ <em>abi_check.cc</em>
+ <p>
+ Creates the executable <em>abi_check</em>.
+ Used to check correctness of symbol versioning, visibility of
+ exported symbols, and compatibility on symbols in the shared
+ library, for hosts that support this feature. More information
+ can be found in the ABI documentation <a href="abi.txt"> here</a>
+ </p>
+ </li>
+ <li>
+ <em>testsuite_allocator.h and </em>
+ <em>testsuite_allocator.cc</em>
+ <p>
+ Specialized allocators that keep track of construction and destruction
+ </p>
+ </li>
+ <li>
+ <em>testsuite_hooks.h and </em>
+ <em>testsuite_hooks.cc</em>
+ <p>
+ A large number of utilities, including:
+ </p>
+ <ul>
+ <li>VERIFY</li>
+ <li>set_memory_limits</li>
+ <li>verify_demangle</li>
+ <li>run_tests_wrapped_locale</li>
+ <li>run_tests_wrapped_env</li>
+ <li>try_named_locale</li>
+ <li>counter</li>
+ <li>copy_constructor</li>
+ <li>assignment_operator</li>
+ <li>destructor</li>
+ <li>copy_tracker</li>
+ <li>pod_char, pod_int and associated char_traits specializations</li>
+ </ul>
+ <p></p>
+ </li>
+ <li>
+ <em>testsuite_performance.h</em>
+ <p>
+ A number of class abstractions for performance counters, and
+ reporting functions including:
+ </p>
+ <ul>
+ <li>time_counter</li>
+ <li>resource_counter</li>
+ <li>report_performance</li>
+ </ul>
+ <p></p>
+ </li>
+ <li>
+ <em>printnow.c</em>
+ <p>
+ A cross-platform timer for use in one of the older harnesses
+ to determine compilation and link time.
+ </p>
+ </li>
+ </ul>
+
+<hr />
+<h2><a name="new">How to write a new test case</a></h2>
+
+ <p>
+ The first step in making a new test case is to choose the correct
+ directory and file name, given the organization as previously
+ described.
+ </p>
+
+ <p>
+ All files are copyright the FSF, and GPL'd: this is very
+ important. The first copyright year should correspond to the date
+ the file was checked in to CVS.
+ </p>
+
+ <p>
+ As per the dejagnu instructions, always return 0 from main to
+ indicate success.
+ </p>
+
+ <p>
+ A bunch of utility functions and classes have already been
+ abstracted out into the testsuite utility library, <code>
+ libv3test</code>. To use this functionality, just include the
+ appropriate header file: the library will automatically be linked
+ in as part of the testsuite run.
+ </p>
+
+ <p>
+ For a test that needs to take advantage of the dejagnu test
+ harness, what follows below is a list of special keyword that
+ harness uses. Basically, a test case contains dg-keywords (see
+ dg.exp) indicating what to do and what kinds of behavior are to be
+ expected. New test cases should be written with the new style
+ DejaGnu framework in mind.
+ </p>
+
+ <p>
+ To ease transition, here is the list of dg-keyword documentation
+ lifted from dg.exp.
+ </p>
+
+<pre>
+# The currently supported options are:
+#
+# dg-prms-id N
+# set prms_id to N
+#
+# dg-options "options ..." [{ target selector }]
+# specify special options to pass to the tool (eg: compiler)
+#
+# dg-do do-what-keyword [{ target/xfail selector }]
+# `do-what-keyword' is tool specific and is passed unchanged to
+# ${tool}-dg-test. An example is gcc where `keyword' can be any of:
+# preprocess|compile|assemble|link|run
+# and will do one of: produce a .i, produce a .s, produce a .o,
+# produce an a.out, or produce an a.out and run it (the default is
+# compile).
+#
+# dg-error regexp comment [{ target/xfail selector } [{.|0|linenum}]]
+# indicate an error message &lt;regexp&gt; is expected on this line
+# (the test fails if it doesn't occur)
+# Linenum=0 for general tool messages (eg: -V arg missing).
+# "." means the current line.
+#
+# dg-warning regexp comment [{ target/xfail selector } [{.|0|linenum}]]
+# indicate a warning message &lt;regexp&gt; is expected on this line
+# (the test fails if it doesn't occur)
+#
+# dg-bogus regexp comment [{ target/xfail selector } [{.|0|linenum}]]
+# indicate a bogus error message &lt;regexp&gt; use to occur here
+# (the test fails if it does occur)
+#
+# dg-build regexp comment [{ target/xfail selector }]
+# indicate the build use to fail for some reason
+# (errors covered here include bad assembler generated, tool crashes,
+# and link failures)
+# (the test fails if it does occur)
+#
+# dg-excess-errors comment [{ target/xfail selector }]
+# indicate excess errors are expected (any line)
+# (this should only be used sparingly and temporarily)
+#
+# dg-output regexp [{ target selector }]
+# indicate the expected output of the program is &lt;regexp&gt;
+# (there may be multiple occurrences of this, they are concatenated)
+#
+# dg-final { tcl code }
+# add some tcl code to be run at the end
+# (there may be multiple occurrences of this, they are concatenated)
+# (unbalanced braces must be \-escaped)
+#
+# "{ target selector }" is a list of expressions that determine whether the
+# test succeeds or fails for a particular target, or in some cases whether the
+# option applies for a particular target. If the case of `dg-do' it specifies
+# whether the test case is even attempted on the specified target.
+#
+# The target selector is always optional. The format is one of:
+#
+# { xfail *-*-* ... } - the test is expected to fail for the given targets
+# { target *-*-* ... } - the option only applies to the given targets
+#
+# At least one target must be specified, use *-*-* for "all targets".
+# At present it is not possible to specify both `xfail' and `target'.
+# "native" may be used in place of "*-*-*".
+
+Example 1: Testing compilation only
+// { dg-do compile }
+
+Example 2: Testing for expected warnings on line 36, which all targets fail
+// { dg-warning "string literals" "" { xfail *-*-* } 36
+
+Example 3: Testing for expected warnings on line 36
+// { dg-warning "string literals" "" { target *-*-* } 36
+
+Example 4: Testing for compilation errors on line 41
+// { dg-do compile }
+// { dg-error "no match for" "" { target *-*-* } 41 }
+</pre>
+
+ <p>
+ More examples can be found in the libstdc++-v3/testsuite/*/*.cc files.
+ </p>
+
+<hr />
+<h2><a name="check">Options for running the tests</a></h2>
+
+ <p> There are several ways to run the testsuite. There are two
+ harnesses, one using dejagnu and one using bash. In addition, there
+ is a special rule for checking the ABI of the shared library.
+ </p>
+
+ <p>You can check the status of the build without installing it
+ using the dejagnu harness, much like the rest of the gcc tools.</p>
+ <pre> make check</pre>
+ <p>in the <em>libbuilddir</em> directory.</p>
+ <p>or</p>
+ <pre> make check-target-libstdc++-v3</pre>
+ <p>in the <em>gccbuilddir</em> directory.</p>
+
+ <p>
+ These commands are equivalent and will create a 'testsuite'
+ directory underneath <em>libbuilddir</em> containing the results
+ of the tests. Two results files will be generated: <em>
+ libstdc++-v3.sum</em>, which is a PASS/FAIL summary for each
+ test, and <em>libstdc++.log</em> which is a log of the exact
+ command line passed to the compiler, the compiler output, and
+ the executable output (if any). In addition, four files are
+ generated that determine what test files are run. These files
+ are:
+ </p>
+
+ <ul>
+ <li>
+ <em>testsuite_files </em>
+ <p> This is a list of all the test cases that will be run. Each
+ test case is on a separate line, given with an absolute path
+ from the <em>libsrcdir/testsuite</em> directory.
+ </p>
+ </li>
+
+ <li>
+ <em>testsuite_files_interactive </em>
+ <p> This is a list of all the interactive test cases, using the
+ same format as the file list above. These tests are not run by default.
+ </p>
+ </li>
+
+ <li>
+ <em>testsuite_files_performance</em>
+ <p> This is a list of all the performance test cases, using the
+ same format as the file list above. These tests are not run by default.
+ </p>
+ </li>
+
+ <li>
+ <em>testsuite_wchar_t </em>
+ <p> This file indicates that the host system can run the wchar_t
+ tests, and corresponds to the macro definition <code>
+ _GLIBCPP_USE_WCHAR_T</code> in the file c++config.h.
+ </p>
+ </li>
+ </ul>
+
+<p>
+To debug the dejagnu test harness during runs, try invoking with a
+specific argument to the variable RUNTESTFLAGS, as below.
+</p>
+
+<pre>
+make check-target-libstdc++-v3 RUNTESTFLAGS="-v"
+</pre>
+or
+<pre>
+make check-target-libstdc++-v3 RUNTESTFLAGS="-v -v"
+</pre>
+
+There are two ways to run on a simulator: set up DEJAGNU to point to a
+specially crafted site.exp, or pass down --target_board flags.
+
+Example flags to pass down for various embedded builds are as follows:
+
+<pre>
+--target=powerpc-eabism (libgloss/sim)
+make check-target-libstdc++-v3 RUNTESTFLAGS="--target_board=powerpc-sim"
+
+--target=calmrisc32 (libgloss/sid)
+make check-target-libstdc++-v3 RUNTESTFLAGS="--target_board=calmrisc32-sid"
+
+--target=xscale-elf (newlib/sim)
+make check-target-libstdc++-v3 RUNTESTFLAGS="--target_board=arm-sim"
+</pre>
+
+ <p> 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, and must
+ be executed in the <em>libbuilddir/testsuite</em> directory. These options
+ include, but are not necessarily limited to, the following:
+ </p>
+
+ <p>
+ The library can also be tested using a bash script, instead of
+ the default dejagnu test harness.
+ </p>
+ <pre>
+ make check-script</pre>
+ <p>
+ These commands use the generated test_file lists as above, but
+ run all the tests using both shared and static linking, and in
+ addition provide some additional diffing of expected output
+ files for the input/output tests. (This added diff may or may
+ not be useful or necessary at the moment.) In addition, these
+ tests provide size information for all the generated test cases,
+ so that size data for new compiler or linker features can be
+ collected. At one time timing information was attempted, so that
+ compile speeds, link speeds, etc. could be measured, however at
+ the moment all timing information is currently disabled.
+ </p>
+
+ <pre>
+ make check-script-install</pre>
+ <p> As directly above, but tests an installed library, not the
+ library and compiler in the build tree.
+ </p>
+
+ <pre>
+ make check-abi</pre>
+ <p>The library ABI can be tested. This involves testing the shared
+ library against an ABI-defining previous version. </p>
+
+ <pre>
+ make check-performance</pre>
+ <p>This rule runs through the <em>testsuite_files_performance</em>
+ test cases and collects information for performance analysis and
+ can be used to spot performance regressions. Various timing
+ information is collected, as well as number of hard page faults,
+ and memory used. This is not run by default, and the implementation
+ is in flux.
+</p>
+
+ <p>
+ We are interested in any strange failures of the
+ testsuite; please see <a href="faq/index.html#2_4">FAQ 2.4</a>
+ for which files to examine.
+ </p>
+
+<hr />
+<h2><a name="future">Future</a></h2>
+
+<p>
+Shared runs need to be implemented, for targets that support shared libraries.
+</p>
+
+<p>
+Diffing of expected output to standard streams needs to be finished off.
+</p>
+
+<p>
+The V3 testing framework supports, or will eventually support,
+additional keywords for the purpose of easing the job of writing
+test cases. All V3-keywords are of the form <code>@xxx@</code>.
+Currently plans for supported keywords include:
+</p>
+
+<dl>
+<dt> <code> @require@ &lt;files&gt; </code> </dt>
+<dd>
+ <p>
+ The existence of &lt;files&gt; is essential for the test to complete
+ successfully. For example, a test case foo.C using bar.baz as
+ input file could say
+ </p>
+ <pre>
+ // @require@ bar.baz</pre>
+ <p>
+ The special variable % stands for the rootname, e.g. the
+ file-name without its `.C' extension. Example of use (taken
+ verbatim from 27_io/filebuf.cc)
+ </p>
+ <pre>
+ // @require@ %-*.tst %-*.txt</pre>
+</dd>
+<dt> <code> @diff@ &lt;first-list&gt; &lt;second-list&gt; </code> </dt>
+<dd>
+ <p>
+ After the test case compiles and ran successfully, diff
+ &lt;first-list&gt; against &lt;second-list&gt;, these lists should
+ have the same length. The test fails if diff returns non-zero a
+ pair of files.
+ </p>
+</dd>
+</dl>
+
+<!-- ####################################################### -->
+
+<hr />
+<p class="fineprint"><em>
+See <a href="17_intro/license.html">license.html</a> for copying conditions.
+Comments and suggestions are welcome, and may be sent to
+<a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
+</em></p>
+
+
+</body>
+</html>
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index da7646aed05..cf1510200ab 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the include subdirectory of the GNU C++ Standard library.
##
-## Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.
@@ -31,6 +31,75 @@ CXX = @glibcpp_CXX@
glibcpp_srcdir=@glibcpp_srcdir@
glibcpp_builddir=@glibcpp_builddir@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
+LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
+INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
+
+# Standard C++ includes.
+std_srcdir = ${glibcpp_srcdir}/include/std
+std_builddir = .
+std_headers = \
+ ${std_srcdir}/std_algorithm.h \
+ ${std_srcdir}/std_bitset.h \
+ ${std_srcdir}/std_complex.h \
+ ${std_srcdir}/std_deque.h \
+ ${std_srcdir}/std_fstream.h \
+ ${std_srcdir}/std_functional.h \
+ ${std_srcdir}/std_iomanip.h \
+ ${std_srcdir}/std_ios.h \
+ ${std_srcdir}/std_iosfwd.h \
+ ${std_srcdir}/std_iostream.h \
+ ${std_srcdir}/std_istream.h \
+ ${std_srcdir}/std_iterator.h \
+ ${std_srcdir}/std_limits.h \
+ ${std_srcdir}/std_list.h \
+ ${std_srcdir}/std_locale.h \
+ ${std_srcdir}/std_map.h \
+ ${std_srcdir}/std_memory.h \
+ ${std_srcdir}/std_numeric.h \
+ ${std_srcdir}/std_ostream.h \
+ ${std_srcdir}/std_queue.h \
+ ${std_srcdir}/std_set.h \
+ ${std_srcdir}/std_sstream.h \
+ ${std_srcdir}/std_stack.h \
+ ${std_srcdir}/std_stdexcept.h \
+ ${std_srcdir}/std_streambuf.h \
+ ${std_srcdir}/std_string.h \
+ ${std_srcdir}/std_utility.h \
+ ${std_srcdir}/std_valarray.h \
+ ${std_srcdir}/std_vector.h
+# Renamed at build time.
+std_headers_rename = \
+ algorithm \
+ bitset \
+ complex \
+ deque \
+ fstream \
+ functional \
+ iomanip \
+ ios \
+ iosfwd \
+ iostream \
+ istream \
+ iterator \
+ limits \
+ list \
+ locale \
+ map \
+ memory \
+ numeric \
+ ostream \
+ queue \
+ set \
+ sstream \
+ stack \
+ stdexcept \
+ streambuf \
+ string \
+ utility \
+ valarray \
+ vector
+
bits_srcdir = ${glibcpp_srcdir}/include/bits
bits_builddir = ./bits
bits_headers = \
@@ -53,6 +122,7 @@ bits_headers = \
${bits_srcdir}/ios_base.h \
${bits_srcdir}/istream.tcc \
${bits_srcdir}/list.tcc \
+ ${bits_srcdir}/locale_classes.h \
${bits_srcdir}/locale_facets.h \
${bits_srcdir}/locale_facets.tcc \
${bits_srcdir}/localefwd.h \
@@ -239,71 +309,6 @@ else
c_compatibility_headers_extra =
endif
-
-std_srcdir = ${glibcpp_srcdir}/include/std
-std_builddir = .
-std_headers = \
- ${std_srcdir}/std_algorithm.h \
- ${std_srcdir}/std_bitset.h \
- ${std_srcdir}/std_complex.h \
- ${std_srcdir}/std_deque.h \
- ${std_srcdir}/std_fstream.h \
- ${std_srcdir}/std_functional.h \
- ${std_srcdir}/std_iomanip.h \
- ${std_srcdir}/std_ios.h \
- ${std_srcdir}/std_iosfwd.h \
- ${std_srcdir}/std_iostream.h \
- ${std_srcdir}/std_istream.h \
- ${std_srcdir}/std_iterator.h \
- ${std_srcdir}/std_limits.h \
- ${std_srcdir}/std_list.h \
- ${std_srcdir}/std_locale.h \
- ${std_srcdir}/std_map.h \
- ${std_srcdir}/std_memory.h \
- ${std_srcdir}/std_numeric.h \
- ${std_srcdir}/std_ostream.h \
- ${std_srcdir}/std_queue.h \
- ${std_srcdir}/std_set.h \
- ${std_srcdir}/std_sstream.h \
- ${std_srcdir}/std_stack.h \
- ${std_srcdir}/std_stdexcept.h \
- ${std_srcdir}/std_streambuf.h \
- ${std_srcdir}/std_string.h \
- ${std_srcdir}/std_utility.h \
- ${std_srcdir}/std_valarray.h \
- ${std_srcdir}/std_vector.h
-# Renamed at build time.
-std_headers_rename = \
- algorithm \
- bitset \
- complex \
- deque \
- fstream \
- functional \
- iomanip \
- ios \
- iosfwd \
- iostream \
- istream \
- iterator \
- limits \
- list \
- locale \
- map \
- memory \
- numeric \
- ostream \
- queue \
- set \
- sstream \
- stack \
- stdexcept \
- streambuf \
- string \
- utility \
- valarray \
- vector
-
target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
target_builddir = ./${target_alias}/bits
target_headers = \
@@ -312,6 +317,11 @@ target_headers = \
${target_srcdir}/ctype_noninline.h \
${target_srcdir}/os_defines.h \
${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h
+
+# Non-installed target_header files.
+target_headers_noinst = \
+ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@
+
# These target_headers_extra files are all built with ad hoc naming rules.
target_headers_extra = \
${target_builddir}/basic_file.h \
@@ -319,6 +329,7 @@ target_headers_extra = \
${target_builddir}/c++io.h \
${target_builddir}/c++locale.h \
${target_builddir}/messages_members.h \
+ ${target_builddir}/time_members.h \
${target_builddir}/codecvt_specializations.h
thread_target_headers = \
@@ -331,9 +342,7 @@ thread_target_headers = \
# CLEANFILES and all-local are kept up-to-date.
allstamps = \
stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
- stamp-backward stamp-ext \
- ${target_builddir}/stamp-target
-
+ stamp-backward stamp-ext stamp-target
# Here are the rules for building the headers
all-local: ${target_builddir}/c++config.h ${thread_target_headers} ${allstamps}
@@ -350,6 +359,12 @@ stamp-std: ${std_headers}
done) ;\
echo `date` > stamp-std
+stamp-std-precompile: stamp-std
+ for h in ${std_headers_rename}; do \
+ $(CXX) -Winvalid-pch -x c++-header $(INCLUDES) $${h}; \
+ done; \
+ echo `date` > stamp-std-precompile
+
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
mkdir -p ${bits_builddir} ;\
@@ -357,7 +372,7 @@ stamp-bits: ${bits_headers}
(cd ${bits_builddir} && @LN_S@ $? . || true) ;\
echo `date` > stamp-bits
-stamp-c_base: ${c_base_headers} ${c_base_headers_extra}
+stamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra}
@if [ ! -d "${c_base_builddir}" ]; then \
mkdir -p ${c_base_builddir} ;\
fi ;\
@@ -400,16 +415,19 @@ stamp-${target_alias}:
fi
# Target includes static.
-${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
- @cd ${target_builddir} ;\
- if [ ! -f stamp-target ]; then \
+# XXX Missing dependency info for {target_headers_extra}
+stamp-target: ${target_headers} ${target_headers_noinst} stamp-${target_alias}
+ @if [ ! -f stamp-target ]; then \
+ (cd ${target_builddir} ;\
@LN_S@ ${target_headers} . || true ;\
@LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@ . || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
- @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
- echo `date` > stamp-target; \
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true);\
+ echo `date` > stamp-target ; \
fi
# Target includes dynamic.
@@ -464,35 +482,35 @@ ${target_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcpp_thread_h} \
# the rest are taken from the original source tree.
gxx_include_dir = @gxx_include_dir@
install-data-local:
- $(mkinstalldirs) ${gxx_include_dir}
- $(mkinstalldirs) ${gxx_include_dir}/${bits_builddir}
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir}
for file in ${bits_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${backward_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir}
for file in ${backward_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${ext_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
for file in ${ext_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
for file in ${c_base_headers_rename}; do \
- $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done
+ $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
c_base_headers_extra_install='$(c_base_headers_extra)';\
for file in $$c_base_headers_extra_install; do \
- $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done
+ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
c_compatibility_headers_install='$(c_compatibility_headers_extra)';\
for file in $$c_compatibility_headers_install; do \
- $(INSTALL_DATA) $$file ${gxx_include_dir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${std_builddir}
+ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
for file in ${std_headers_rename}; do \
- $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${target_builddir}
+ $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir}
for file in ${target_headers} ${target_headers_extra} \
${thread_target_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
# By adding these files here, automake will remove them for 'make clean'
-#CLEANFILES = ${allstamps}
+CLEANFILES = *.pch stamp-std-precompile
# Stop implicit '.o' make rules from ever stomping on extensionless
# headers, in the improbable case where some foolish, crack-addled
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 5441e974d4f..b6cc4515109 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@
@@ -83,12 +94,10 @@ EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
GCJ = @GCJ@
GCJFLAGS = @GCJFLAGS@
-GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
LIBMATHOBJS = @LIBMATHOBJS@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
-LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
LIBTOOL = @LIBTOOL@
LIBUNWIND_FLAG = @LIBUNWIND_FLAG@
@@ -105,6 +114,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
@@ -137,6 +147,77 @@ CXX = @glibcpp_CXX@
glibcpp_srcdir = @glibcpp_srcdir@
glibcpp_builddir = @glibcpp_builddir@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
+LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
+INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
+
+# Standard C++ includes.
+std_srcdir = ${glibcpp_srcdir}/include/std
+std_builddir = .
+std_headers = \
+ ${std_srcdir}/std_algorithm.h \
+ ${std_srcdir}/std_bitset.h \
+ ${std_srcdir}/std_complex.h \
+ ${std_srcdir}/std_deque.h \
+ ${std_srcdir}/std_fstream.h \
+ ${std_srcdir}/std_functional.h \
+ ${std_srcdir}/std_iomanip.h \
+ ${std_srcdir}/std_ios.h \
+ ${std_srcdir}/std_iosfwd.h \
+ ${std_srcdir}/std_iostream.h \
+ ${std_srcdir}/std_istream.h \
+ ${std_srcdir}/std_iterator.h \
+ ${std_srcdir}/std_limits.h \
+ ${std_srcdir}/std_list.h \
+ ${std_srcdir}/std_locale.h \
+ ${std_srcdir}/std_map.h \
+ ${std_srcdir}/std_memory.h \
+ ${std_srcdir}/std_numeric.h \
+ ${std_srcdir}/std_ostream.h \
+ ${std_srcdir}/std_queue.h \
+ ${std_srcdir}/std_set.h \
+ ${std_srcdir}/std_sstream.h \
+ ${std_srcdir}/std_stack.h \
+ ${std_srcdir}/std_stdexcept.h \
+ ${std_srcdir}/std_streambuf.h \
+ ${std_srcdir}/std_string.h \
+ ${std_srcdir}/std_utility.h \
+ ${std_srcdir}/std_valarray.h \
+ ${std_srcdir}/std_vector.h
+
+# Renamed at build time.
+std_headers_rename = \
+ algorithm \
+ bitset \
+ complex \
+ deque \
+ fstream \
+ functional \
+ iomanip \
+ ios \
+ iosfwd \
+ iostream \
+ istream \
+ iterator \
+ limits \
+ list \
+ locale \
+ map \
+ memory \
+ numeric \
+ ostream \
+ queue \
+ set \
+ sstream \
+ stack \
+ stdexcept \
+ streambuf \
+ string \
+ utility \
+ valarray \
+ vector
+
+
bits_srcdir = ${glibcpp_srcdir}/include/bits
bits_builddir = ./bits
bits_headers = \
@@ -159,6 +240,7 @@ bits_headers = \
${bits_srcdir}/ios_base.h \
${bits_srcdir}/istream.tcc \
${bits_srcdir}/list.tcc \
+ ${bits_srcdir}/locale_classes.h \
${bits_srcdir}/locale_facets.h \
${bits_srcdir}/locale_facets.tcc \
${bits_srcdir}/localefwd.h \
@@ -340,72 +422,6 @@ c_compatibility_headers = \
@GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = @GLIBCPP_C_HEADERS_COMPATIBILITY_TRUE@${c_compatibility_headers}
@GLIBCPP_C_HEADERS_COMPATIBILITY_FALSE@c_compatibility_headers_extra =
-std_srcdir = ${glibcpp_srcdir}/include/std
-std_builddir = .
-std_headers = \
- ${std_srcdir}/std_algorithm.h \
- ${std_srcdir}/std_bitset.h \
- ${std_srcdir}/std_complex.h \
- ${std_srcdir}/std_deque.h \
- ${std_srcdir}/std_fstream.h \
- ${std_srcdir}/std_functional.h \
- ${std_srcdir}/std_iomanip.h \
- ${std_srcdir}/std_ios.h \
- ${std_srcdir}/std_iosfwd.h \
- ${std_srcdir}/std_iostream.h \
- ${std_srcdir}/std_istream.h \
- ${std_srcdir}/std_iterator.h \
- ${std_srcdir}/std_limits.h \
- ${std_srcdir}/std_list.h \
- ${std_srcdir}/std_locale.h \
- ${std_srcdir}/std_map.h \
- ${std_srcdir}/std_memory.h \
- ${std_srcdir}/std_numeric.h \
- ${std_srcdir}/std_ostream.h \
- ${std_srcdir}/std_queue.h \
- ${std_srcdir}/std_set.h \
- ${std_srcdir}/std_sstream.h \
- ${std_srcdir}/std_stack.h \
- ${std_srcdir}/std_stdexcept.h \
- ${std_srcdir}/std_streambuf.h \
- ${std_srcdir}/std_string.h \
- ${std_srcdir}/std_utility.h \
- ${std_srcdir}/std_valarray.h \
- ${std_srcdir}/std_vector.h
-
-# Renamed at build time.
-std_headers_rename = \
- algorithm \
- bitset \
- complex \
- deque \
- fstream \
- functional \
- iomanip \
- ios \
- iosfwd \
- iostream \
- istream \
- iterator \
- limits \
- list \
- locale \
- map \
- memory \
- numeric \
- ostream \
- queue \
- set \
- sstream \
- stack \
- stdexcept \
- streambuf \
- string \
- utility \
- valarray \
- vector
-
-
target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
target_builddir = ./${target_alias}/bits
target_headers = \
@@ -415,6 +431,12 @@ target_headers = \
${target_srcdir}/os_defines.h \
${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h
+
+# Non-installed target_header files.
+target_headers_noinst = \
+ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@
+
+
# These target_headers_extra files are all built with ad hoc naming rules.
target_headers_extra = \
${target_builddir}/basic_file.h \
@@ -422,6 +444,7 @@ target_headers_extra = \
${target_builddir}/c++io.h \
${target_builddir}/c++locale.h \
${target_builddir}/messages_members.h \
+ ${target_builddir}/time_members.h \
${target_builddir}/codecvt_specializations.h
@@ -436,8 +459,7 @@ thread_target_headers = \
# CLEANFILES and all-local are kept up-to-date.
allstamps = \
stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
- stamp-backward stamp-ext \
- ${target_builddir}/stamp-target
+ stamp-backward stamp-ext stamp-target
# Target includes for threads
@@ -453,6 +475,9 @@ uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
# target_headers_extra are taken out of the build tree staging area;
# the rest are taken from the original source tree.
gxx_include_dir = @gxx_include_dir@
+
+# By adding these files here, automake will remove them for 'make clean'
+CLEANFILES = *.pch stamp-std-precompile
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in
@@ -521,6 +546,7 @@ installdirs:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
@@ -570,6 +596,12 @@ stamp-std: ${std_headers}
done) ;\
echo `date` > stamp-std
+stamp-std-precompile: stamp-std
+ for h in ${std_headers_rename}; do \
+ $(CXX) -Winvalid-pch -x c++-header $(INCLUDES) $${h}; \
+ done; \
+ echo `date` > stamp-std-precompile
+
stamp-bits: ${bits_headers}
@if [ ! -d "${bits_builddir}" ]; then \
mkdir -p ${bits_builddir} ;\
@@ -577,7 +609,7 @@ stamp-bits: ${bits_headers}
(cd ${bits_builddir} && @LN_S@ $? . || true) ;\
echo `date` > stamp-bits
-stamp-c_base: ${c_base_headers} ${c_base_headers_extra}
+stamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra}
@if [ ! -d "${c_base_builddir}" ]; then \
mkdir -p ${c_base_builddir} ;\
fi ;\
@@ -620,16 +652,19 @@ stamp-${target_alias}:
fi
# Target includes static.
-${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
- @cd ${target_builddir} ;\
- if [ ! -f stamp-target ]; then \
+# XXX Missing dependency info for {target_headers_extra}
+stamp-target: ${target_headers} ${target_headers_noinst} stamp-${target_alias}
+ @if [ ! -f stamp-target ]; then \
+ (cd ${target_builddir} ;\
@LN_S@ ${target_headers} . || true ;\
@LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_INTERNAL_H@ . || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
- @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
- echo `date` > stamp-target; \
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true);\
+ echo `date` > stamp-target ; \
fi
# Target includes dynamic.
@@ -670,35 +705,32 @@ ${target_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcpp_thread_h} \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@
install-data-local:
- $(mkinstalldirs) ${gxx_include_dir}
- $(mkinstalldirs) ${gxx_include_dir}/${bits_builddir}
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir}
for file in ${bits_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${backward_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir}
for file in ${backward_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${ext_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
for file in ${ext_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
for file in ${c_base_headers_rename}; do \
- $(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done
+ $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
c_base_headers_extra_install='$(c_base_headers_extra)';\
for file in $$c_base_headers_extra_install; do \
- $(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done
+ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
c_compatibility_headers_install='$(c_compatibility_headers_extra)';\
for file in $$c_compatibility_headers_install; do \
- $(INSTALL_DATA) $$file ${gxx_include_dir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${std_builddir}
+ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
for file in ${std_headers_rename}; do \
- $(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done
- $(mkinstalldirs) ${gxx_include_dir}/${target_builddir}
+ $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
+ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir}
for file in ${target_headers} ${target_headers_extra} \
${thread_target_headers}; do \
- $(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done
-
-# By adding these files here, automake will remove them for 'make clean'
-#CLEANFILES = ${allstamps}
+ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
# Stop implicit '.o' make rules from ever stomping on extensionless
# headers, in the improbable case where some foolish, crack-addled
diff --git a/libstdc++-v3/include/backward/iterator.h b/libstdc++-v3/include/backward/iterator.h
index 179f457d324..233f17e2f2d 100644
--- a/libstdc++-v3/include/backward/iterator.h
+++ b/libstdc++-v3/include/backward/iterator.h
@@ -1,3 +1,32 @@
+// Backward-compat support -*- C++ -*-
+
+// Copyright (C) 2001, 2004 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.
+
/*
*
* Copyright (c) 1994
diff --git a/libstdc++-v3/include/bits/basic_ios.h b/libstdc++-v3/include/bits/basic_ios.h
index b6ef89ba8b0..e98ea50ecb3 100644
--- a/libstdc++-v3/include/bits/basic_ios.h
+++ b/libstdc++-v3/include/bits/basic_ios.h
@@ -1,6 +1,7 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// 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
@@ -38,6 +39,8 @@
#pragma GCC system_header
#include <bits/streambuf_iterator.h>
+#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
#include <bits/locale_facets.h>
namespace std
@@ -78,6 +81,8 @@ namespace std
typedef istreambuf_iterator<_CharT, _Traits> __istreambuf_iter;
typedef num_get<_CharT, __istreambuf_iter> __numget_type;
//@}
+
+ friend void ios_base::Init::_S_ios_create(bool);
// Data members:
protected:
@@ -140,6 +145,19 @@ namespace std
setstate(iostate __state)
{ this->clear(this->rdstate() | __state); }
+ // Flip the internal state on for the proper state bits, then re
+ // throws the propagated exception if bit also set in
+ // exceptions().
+ void
+ _M_setstate(iostate __state)
+ {
+ // 27.6.1.2.1 Common requirements.
+ // Turn this on without causing an ios::failure to be thrown.
+ _M_streambuf_state |= __state;
+ if (this->exceptions() & __state)
+ __throw_exception_again;
+ }
+
/**
* @brief Fast error checking.
* @return True if no error flags are set.
@@ -237,7 +255,8 @@ namespace std
* The parameter is passed by derived streams.
*/
explicit
- basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base()
+ basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
+ : ios_base(), _M_fctype(0), _M_fnumput(0), _M_fnumget(0)
{ this->init(__sb); }
/**
@@ -415,7 +434,9 @@ namespace std
* @brief All setup is performed here.
*
* This is called from the public constructor. It is not virtual and
- * cannot be redefined.
+ * cannot be redefined. The second argument, __cache, is used
+ * to initialize the standard streams without allocating
+ * memory.
*/
void
init(basic_streambuf<_CharT, _Traits>* __sb);
@@ -429,7 +450,13 @@ namespace std
}
void
+ _M_cache_locale(const locale& __loc);
+
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ void
_M_cache_facets(const locale& __loc);
+#endif
};
} // namespace std
diff --git a/libstdc++-v3/include/bits/basic_ios.tcc b/libstdc++-v3/include/bits/basic_ios.tcc
index 7ee8015e29f..bbff2f5ca24 100644
--- a/libstdc++-v3/include/bits/basic_ios.tcc
+++ b/libstdc++-v3/include/bits/basic_ios.tcc
@@ -1,6 +1,6 @@
// basic_ios locale and locale-related member functions -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003 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
@@ -60,45 +60,56 @@ namespace std
basic_ios<_CharT, _Traits>&
basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
{
- // Per 27.1.1.1, do not call imbue, yet must trash all caches
- // associated with imbue()
-
- // Alloc any new word array first, so if it fails we have "rollback".
- _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
- _M_local_word : new _Words[__rhs._M_word_size];
-
- // Bump refs before doing callbacks, for safety.
- _Callback_list* __cb = __rhs._M_callbacks;
- if (__cb)
- __cb->_M_add_reference();
- _M_call_callbacks(erase_event);
- if (_M_word != _M_local_word)
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 292. effects of a.copyfmt (a)
+ if (this != &__rhs)
{
- delete [] _M_word;
- _M_word = 0;
+ // Per 27.1.1.1, do not call imbue, yet must trash all caches
+ // associated with imbue()
+
+ // Alloc any new word array first, so if it fails we have "rollback".
+ _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ?
+ _M_local_word : new _Words[__rhs._M_word_size];
+
+ // Bump refs before doing callbacks, for safety.
+ _Callback_list* __cb = __rhs._M_callbacks;
+ if (__cb)
+ __cb->_M_add_reference();
+ _M_call_callbacks(erase_event);
+ if (_M_word != _M_local_word)
+ {
+ delete [] _M_word;
+ _M_word = 0;
+ }
+ _M_dispose_callbacks();
+
+ _M_callbacks = __cb; // NB: Don't want any added during above.
+ for (int __i = 0; __i < __rhs._M_word_size; ++__i)
+ __words[__i] = __rhs._M_word[__i];
+ if (_M_word != _M_local_word)
+ {
+ delete [] _M_word;
+ _M_word = 0;
+ }
+ _M_word = __words;
+ _M_word_size = __rhs._M_word_size;
+
+ this->flags(__rhs.flags());
+ this->width(__rhs.width());
+ this->precision(__rhs.precision());
+ this->tie(__rhs.tie());
+ this->fill(__rhs.fill());
+ _M_ios_locale = __rhs.getloc();
+
+ // This removes the link to __rhs locale cache
+ _M_call_callbacks(copyfmt_event);
+
+ _M_cache_locale(_M_ios_locale);
+
+
+ // The next is required to be the last assignment.
+ this->exceptions(__rhs.exceptions());
}
- _M_dispose_callbacks();
-
- _M_callbacks = __cb; // NB: Don't want any added during above.
- for (int __i = 0; __i < __rhs._M_word_size; ++__i)
- __words[__i] = __rhs._M_word[__i];
- if (_M_word != _M_local_word)
- {
- delete [] _M_word;
- _M_word = 0;
- }
- _M_word = __words;
- _M_word_size = __rhs._M_word_size;
-
- this->flags(__rhs.flags());
- this->width(__rhs.width());
- this->precision(__rhs.precision());
- this->tie(__rhs.tie());
- this->fill(__rhs.fill());
- // The next is required to be the last assignment.
- this->exceptions(__rhs.exceptions());
-
- _M_call_callbacks(copyfmt_event);
return *this;
}
@@ -129,7 +140,7 @@ namespace std
{
locale __old(this->getloc());
ios_base::imbue(__loc);
- _M_cache_facets(__loc);
+ _M_cache_locale(__loc);
if (this->rdbuf() != 0)
this->rdbuf()->pubimbue(__loc);
return __old;
@@ -141,7 +152,7 @@ namespace std
{
// NB: This may be called more than once on the same object.
ios_base::_M_init();
- _M_cache_facets(_M_ios_locale);
+ _M_cache_locale(_M_ios_locale);
_M_tie = 0;
// NB: The 27.4.4.1 Postconditions Table specifies requirements
@@ -166,31 +177,47 @@ namespace std
template<typename _CharT, typename _Traits>
void
- basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)
+ basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc)
{
- if (has_facet<__ctype_type>(__loc))
+ if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
_M_fctype = &use_facet<__ctype_type>(__loc);
else
_M_fctype = 0;
- // Should be filled in by ostream and istream, respectively.
- if (has_facet<__numput_type>(__loc))
+ if (__builtin_expect(has_facet<__numput_type>(__loc), true))
_M_fnumput = &use_facet<__numput_type>(__loc);
else
_M_fnumput = 0;
- if (has_facet<__numget_type>(__loc))
- _M_fnumget = &use_facet<__numget_type>(__loc);
+ if (__builtin_expect(has_facet<__numget_type>(__loc), true))
+ _M_fnumget = &use_facet<__numget_type>(__loc);
else
_M_fnumget = 0;
}
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template<typename _CharT, typename _Traits>
+ void
+ basic_ios<_CharT, _Traits>::_M_cache_facets(const locale& __loc)
+ {
+ if (__builtin_expect(has_facet<__ctype_type>(__loc), true))
+ _M_fctype = &use_facet<__ctype_type>(__loc);
+ if (__builtin_expect(has_facet<__numput_type>(__loc), true))
+ _M_fnumput = &use_facet<__numput_type>(__loc);
+ if (__builtin_expect(has_facet<__numget_type>(__loc), true))
+ _M_fnumget = &use_facet<__numget_type>(__loc);
+ }
+#endif
+
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_ios<char>;
#ifdef _GLIBCPP_USE_WCHAR_T
extern template class basic_ios<wchar_t>;
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index fd56bb81ea0..e92009dc9d7 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -499,37 +499,10 @@ namespace std
assign(const basic_string& __str);
basic_string&
- assign(const basic_string& __str, size_type __pos, size_type __n)
- {
- const size_type __strsize = __str.size();
- if (__pos > __strsize)
- __throw_out_of_range("basic_string::assign");
- const bool __testn = __n < __strsize - __pos;
- const size_type __newsize = __testn ? __n : __strsize - __pos;
- return this->assign(__str._M_data() + __pos, __newsize);
- }
+ assign(const basic_string& __str, size_type __pos, size_type __n);
basic_string&
- assign(const _CharT* __s, size_type __n)
- {
- if (__n > this->max_size())
- __throw_length_error("basic_string::assign");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + this->size(), __s))
- return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);
- else
- {
- // Work in-place
- const size_type __pos = __s - _M_data();
- if (__pos >= __n)
- traits_type::copy(_M_data(), __s, __n);
- else if (__pos)
- traits_type::move(_M_data(), __s, __n);
- _M_rep()->_M_length = __n;
- _M_data()[__n] = _Rep::_S_terminal;
- return *this;
- }
- }
+ assign(const _CharT* __s, size_type __n);
basic_string&
assign(const _CharT* __s)
@@ -558,49 +531,10 @@ namespace std
basic_string&
insert(size_type __pos1, const basic_string& __str,
- size_type __pos2, size_type __n)
- {
- const size_type __strsize = __str.size();
- if (__pos2 > __strsize)
- __throw_out_of_range("basic_string::insert");
- const bool __testn = __n < __strsize - __pos2;
- const size_type __newsize = __testn ? __n : __strsize - __pos2;
- return this->insert(__pos1, __str._M_data() + __pos2, __newsize);
- }
+ size_type __pos2, size_type __n);
basic_string&
- insert(size_type __pos, const _CharT* __s, size_type __n)
- {
- const size_type __size = this->size();
- if (__pos > __size)
- __throw_out_of_range("basic_string::insert");
- if (__size > this->max_size() - __n)
- __throw_length_error("basic_string::insert");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + __size, __s))
- return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos,
- __s, __s + __n);
- else
- {
- // Work in-place. If _M_mutate reallocates the string, __s
- // does not point anymore to valid data, therefore we save its
- // offset, then we restore it.
- const size_type __off = __s - _M_data();
- _M_mutate(__pos, 0, __n);
- __s = _M_data() + __off;
- _CharT* __p = _M_data() + __pos;
- if (__s + __n <= __p)
- traits_type::copy(__p, __s, __n);
- else if (__s >= __p)
- traits_type::copy(__p, __s + __n, __n);
- else
- {
- traits_type::copy(__p, __s, __p - __s);
- traits_type::copy(__p + (__p - __s), __p + __n, __n - (__p - __s));
- }
- return *this;
- }
- }
+ insert(size_type __pos, const _CharT* __s, size_type __n);
basic_string&
insert(size_type __pos, const _CharT* __s)
@@ -657,25 +591,7 @@ namespace std
basic_string&
replace(size_type __pos, size_type __n1, const _CharT* __s,
- size_type __n2)
- {
- const size_type __size = this->size();
- if (__pos > __size)
- __throw_out_of_range("basic_string::replace");
- const bool __testn1 = __n1 < __size - __pos;
- const size_type __foldn1 = __testn1 ? __n1 : __size - __pos;
- if (__size - __foldn1 > this->max_size() - __n2)
- __throw_length_error("basic_string::replace");
- if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
- || less<const _CharT*>()(_M_data() + __size, __s))
- return _M_replace_safe(_M_ibegin() + __pos,
- _M_ibegin() + __pos + __foldn1, __s, __s + __n2);
- // Todo: optimized in-place replace.
- else return
- _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1,
- __s, __s + __n2,
- typename iterator_traits<const _CharT*>::iterator_category());
- }
+ size_type __n2);
basic_string&
replace(size_type __pos, size_type __n1, const _CharT* __s)
@@ -930,7 +846,7 @@ namespace std
compare(const _CharT* __s) const;
// _GLIBCPP_RESOLVE_LIB_DEFECTS
- // 5. String::compare specification questionable
+ // 5 String::compare specification questionable
int
compare(size_type __pos, size_type __n1, const _CharT* __s) const;
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 70dd991ea3e..d5fc337ecab 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -1,6 +1,6 @@
// Components for manipulating sequences of characters -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -254,6 +254,117 @@ namespace std
}
return *this;
}
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ assign(const basic_string& __str, size_type __pos, size_type __n)
+ {
+ const size_type __strsize = __str.size();
+ if (__pos > __strsize)
+ __throw_out_of_range("basic_string::assign");
+ const bool __testn = __n < __strsize - __pos;
+ const size_type __newsize = __testn ? __n : __strsize - __pos;
+ return this->assign(__str._M_data() + __pos, __newsize);
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ assign(const _CharT* __s, size_type __n)
+ {
+ if (__n > this->max_size())
+ __throw_length_error("basic_string::assign");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + this->size(), __s))
+ return _M_replace_safe(_M_ibegin(), _M_iend(), __s, __s + __n);
+ else
+ {
+ // Work in-place
+ const size_type __pos = __s - _M_data();
+ if (__pos >= __n)
+ traits_type::copy(_M_data(), __s, __n);
+ else if (__pos)
+ traits_type::move(_M_data(), __s, __n);
+ _M_rep()->_M_length = __n;
+ _M_data()[__n] = _Rep::_S_terminal; // grr.
+ return *this;
+ }
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ insert(size_type __pos1, const basic_string& __str,
+ size_type __pos2, size_type __n)
+ {
+ const size_type __strsize = __str.size();
+ if (__pos2 > __strsize)
+ __throw_out_of_range("basic_string::insert");
+ const bool __testn = __n < __strsize - __pos2;
+ const size_type __newsize = __testn ? __n : __strsize - __pos2;
+ return this->insert(__pos1, __str._M_data() + __pos2, __newsize);
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ insert(size_type __pos, const _CharT* __s, size_type __n)
+ {
+ const size_type __size = this->size();
+ if (__pos > __size)
+ __throw_out_of_range("basic_string::insert");
+ if (__size > this->max_size() - __n)
+ __throw_length_error("basic_string::insert");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + __size, __s))
+ return _M_replace_safe(_M_ibegin() + __pos, _M_ibegin() + __pos,
+ __s, __s + __n);
+ else
+ {
+ // Work in-place. If _M_mutate reallocates the string, __s
+ // does not point anymore to valid data, therefore we save its
+ // offset, then we restore it.
+ const size_type __off = __s - _M_data();
+ _M_mutate(__pos, 0, __n);
+ __s = _M_data() + __off;
+ _CharT* __p = _M_data() + __pos;
+ if (__s + __n <= __p)
+ traits_type::copy(__p, __s, __n);
+ else if (__s >= __p)
+ traits_type::copy(__p, __s + __n, __n);
+ else
+ {
+ traits_type::copy(__p, __s, __p - __s);
+ traits_type::copy(__p + (__p-__s), __p + __n, __n - (__p-__s));
+ }
+ return *this;
+ }
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ replace(size_type __pos, size_type __n1, const _CharT* __s,
+ size_type __n2)
+ {
+ const size_type __size = this->size();
+ if (__pos > __size)
+ __throw_out_of_range("basic_string::replace");
+ const bool __testn1 = __n1 < __size - __pos;
+ const size_type __foldn1 = __testn1 ? __n1 : __size - __pos;
+ if (__size - __foldn1 > this->max_size() - __n2)
+ __throw_length_error("basic_string::replace");
+ if (_M_rep()->_M_is_shared() || less<const _CharT*>()(__s, _M_data())
+ || less<const _CharT*>()(_M_data() + __size, __s))
+ return _M_replace_safe(_M_ibegin() + __pos,
+ _M_ibegin() + __pos + __foldn1, __s, __s + __n2);
+ // Todo: optimized in-place replace.
+ else
+ return _M_replace(_M_ibegin() + __pos, _M_ibegin() + __pos + __foldn1,
+ __s, __s + __n2,
+ typename iterator_traits<const _CharT*>::iterator_category());
+ }
template<typename _CharT, typename _Traits, typename _Alloc>
void
@@ -481,6 +592,7 @@ namespace std
}
}
__r->_M_length = _M_length;
+ __r->_M_refdata()[_M_length] = _Rep::_S_terminal;
return __r->_M_refdata();
}
@@ -578,7 +690,8 @@ namespace std
// Iff appending itself, string needs to pre-reserve the
// correct size so that _M_mutate does not clobber the
// iterators formed here.
- size_type __len = std::min(__str.size() - __pos, __n) + this->size();
+ size_type __len = std::min(size_type(__str.size() - __pos),
+ __n) + this->size();
if (__len > this->capacity())
this->reserve(__len);
return _M_replace_safe(_M_iend(), _M_iend(), __str._M_check(__pos),
@@ -709,7 +822,7 @@ namespace std
size_type __size = this->size();
if (__n <= __size)
{
- __pos = std::min(__size - __n, __pos);
+ __pos = std::min(size_type(__size - __n), __pos);
const _CharT* __data = _M_data();
do
{
@@ -848,7 +961,7 @@ namespace std
if (__pos > __size)
__throw_out_of_range("basic_string::compare");
- size_type __rsize= std::min(__size - __pos, __n);
+ size_type __rsize= std::min(size_type(__size - __pos), __n);
size_type __len = std::min(__rsize, __osize);
int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len);
if (!__r)
@@ -867,8 +980,8 @@ namespace std
if (__pos1 > __size || __pos2 > __osize)
__throw_out_of_range("basic_string::compare");
- size_type __rsize = std::min(__size - __pos1, __n1);
- size_type __rosize = std::min(__osize - __pos2, __n2);
+ size_type __rsize = std::min(size_type(__size - __pos1), __n1);
+ size_type __rosize = std::min(size_type(__osize - __pos2), __n2);
size_type __len = std::min(__rsize, __rosize);
int __r = traits_type::compare(_M_data() + __pos1,
__str.data() + __pos2, __len);
@@ -903,7 +1016,7 @@ namespace std
__throw_out_of_range("basic_string::compare");
size_type __osize = traits_type::length(__s);
- size_type __rsize = std::min(__size - __pos, __n1);
+ size_type __rsize = std::min(size_type(__size - __pos), __n1);
size_type __len = std::min(__rsize, __osize);
int __r = traits_type::compare(_M_data() + __pos, __s, __len);
if (!__r)
@@ -921,12 +1034,11 @@ namespace std
if (__pos > __size)
__throw_out_of_range("basic_string::compare");
- size_type __osize = std::min(traits_type::length(__s), __n2);
- size_type __rsize = std::min(__size - __pos, __n1);
- size_type __len = std::min(__rsize, __osize);
+ size_type __rsize = std::min(size_type(__size - __pos), __n1);
+ size_type __len = std::min(__rsize, __n2);
int __r = traits_type::compare(_M_data() + __pos, __s, __len);
if (!__r)
- __r = __rsize - __osize;
+ __r = __rsize - __n2;
return __r;
}
@@ -945,6 +1057,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_string<char>;
extern template
basic_istream<char>&
@@ -974,6 +1087,7 @@ namespace std
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&);
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/boost_concept_check.h b/libstdc++-v3/include/bits/boost_concept_check.h
index d91c2e88e3c..ff81f43cf04 100644
--- a/libstdc++-v3/include/bits/boost_concept_check.h
+++ b/libstdc++-v3/include/bits/boost_concept_check.h
@@ -1,4 +1,30 @@
+// Copyright (C) 2004 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.
+
// (C) Copyright Jeremy Siek 2000. Permission to copy, use, modify,
// sell and distribute this software is granted provided this
// copyright notice appears in all copies. This software is provided
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 8dbbd9fb823..fd61bab4498 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -1,6 +1,7 @@
// Predefined symbols and macros -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// 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,10 +35,9 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCPP__ 20021213
+#define __GLIBCPP__ 20050503
-// This is necessary until GCC supports separate template
-// compilation.
+// This is necessary until GCC supports separate template compilation.
#define _GLIBCPP_NO_TEMPLATE_EXPORT 1
// This is a hack around not having either pre-compiled headers or
@@ -49,6 +49,16 @@
// by the compiler, but instead instantiated into the library binary.
#define _GLIBCPP_FULLY_COMPLIANT_HEADERS 1
+// Allow use of the GNU syntax extension, "extern template." This
+// extension is fully documented in the g++ manual, but in a nutshell,
+// it inhibits all implicit instantiations and is used throughout the
+// library to avoid multiple weak definitions for required types that
+// are already explicitly instantiated in the library binary. This
+// substantially reduces the binary size of resulting executables.
+#ifndef _GLIBCPP_EXTERN_TEMPLATE
+#define _GLIBCPP_EXTERN_TEMPLATE 1
+#endif
+
// To enable older, ARM-style iostreams and other anachronisms use this.
//#define _GLIBCPP_DEPRECATED 1
@@ -77,6 +87,13 @@
#error __USE_MALLOC should never be defined. Read the release notes.
#endif
+// Create a boolean flag to be used to determine if --fast-math is set.
+#ifdef __FAST_MATH__
+#define _GLIBCPP_FAST_MATH 1
+#else
+#define _GLIBCPP_FAST_MATH 0
+#endif
+
// The remainder of the prewritten config is mostly automatic; all the
// user hooks are listed above.
diff --git a/libstdc++-v3/include/bits/codecvt.h b/libstdc++-v3/include/bits/codecvt.h
index 92b0f0e8a7d..9ab9f94e71d 100644
--- a/libstdc++-v3/include/bits/codecvt.h
+++ b/libstdc++-v3/include/bits/codecvt.h
@@ -1,6 +1,6 @@
// Locale support (codecvt) -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003 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
@@ -164,9 +164,6 @@
typedef _ExternT extern_type;
typedef _StateT state_type;
- protected:
- __c_locale _M_c_locale_codecvt;
-
public:
static locale::id id;
@@ -174,9 +171,6 @@
codecvt(size_t __refs = 0)
: __codecvt_abstract_base<_InternT, _ExternT, _StateT> (__refs) { }
- explicit
- codecvt(__c_locale __cloc, size_t __refs = 0);
-
protected:
virtual
~codecvt() { }
@@ -225,18 +219,12 @@
typedef char extern_type;
typedef mbstate_t state_type;
- protected:
- __c_locale _M_c_locale_codecvt;
-
public:
static locale::id id;
explicit
codecvt(size_t __refs = 0);
- explicit
- codecvt(__c_locale __cloc, size_t __refs = 0);
-
protected:
virtual
~codecvt();
@@ -283,18 +271,12 @@
typedef char extern_type;
typedef mbstate_t state_type;
- protected:
- __c_locale _M_c_locale_codecvt;
-
public:
static locale::id id;
explicit
codecvt(size_t __refs = 0);
- explicit
- codecvt(__c_locale __cloc, size_t __refs = 0);
-
protected:
virtual
~codecvt();
@@ -338,13 +320,8 @@
{
public:
explicit
- codecvt_byname(const char* __s, size_t __refs = 0)
- : codecvt<_InternT, _ExternT, _StateT>(__refs)
- {
- if (_M_c_locale_codecvt != _S_c_locale)
- _S_destroy_c_locale(_M_c_locale_codecvt);
- _S_create_c_locale(_M_c_locale_codecvt, __s);
- }
+ codecvt_byname(const char*, size_t __refs = 0)
+ : codecvt<_InternT, _ExternT, _StateT>(__refs) { }
protected:
virtual
diff --git a/libstdc++-v3/include/bits/concept_check.h b/libstdc++-v3/include/bits/concept_check.h
index 92ceefbd685..88877ebf57e 100644
--- a/libstdc++-v3/include/bits/concept_check.h
+++ b/libstdc++-v3/include/bits/concept_check.h
@@ -61,8 +61,7 @@
// Note that the obvious and elegant approach of
//
-//#define glibcpp_function_requires(C) \
-// boost::function_requires< boost::C >()
+//#define glibcpp_function_requires(C) boost::function_requires< boost::C >()
//
// won't work due to concept templates with more than one parameter, e.g.,
// BinaryPredicateConcept. The preprocessor tries to split things up on
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 387f099ae98..8727acbc440 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -58,7 +58,7 @@ namespace std
template<typename _CharT, typename _Traits>
void
basic_filebuf<_CharT, _Traits>::
- _M_destroy_internal_buffer()
+ _M_destroy_internal_buffer() throw()
{
if (_M_buf_allocated)
{
@@ -94,16 +94,13 @@ namespace std
// Setup initial position of buffer.
_M_set_indeterminate();
- // Set input buffer to something real.
- // NB: Must open in non-blocking way to do this, or must
- // set the initial position in a different manner than
- // using underflow.
- if (__mode & ios_base::in && _M_buf_allocated)
- this->underflow();
-
if ((__mode & ios_base::ate)
&& this->seekoff(0, ios_base::end, __mode) < 0)
- this->close();
+ {
+ // 27.8.1.3,4
+ this->close();
+ return __ret;
+ }
__ret = this;
}
@@ -114,35 +111,44 @@ namespace std
template<typename _CharT, typename _Traits>
typename basic_filebuf<_CharT, _Traits>::__filebuf_type*
basic_filebuf<_CharT, _Traits>::
- close()
+ close() throw()
{
- __filebuf_type *__ret = NULL;
+ __filebuf_type* __ret = NULL;
if (this->is_open())
{
- const int_type __eof = traits_type::eof();
- bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
- if (__testput
- && traits_type::eq_int_type(_M_really_overflow(__eof), __eof))
- return __ret;
+ bool __testfail = false;
+ try
+ {
+ const int_type __eof = traits_type::eof();
+ bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
+ if (__testput
+ && traits_type::eq_int_type(_M_really_overflow(__eof),
+ __eof))
+ __testfail = true;
+
+#if 0
+ // XXX not done
+ if (_M_last_overflowed)
+ {
+ _M_output_unshift();
+ _M_really_overflow(__eof);
+ }
+#endif
+ }
+ catch(...)
+ { __testfail = true; }
// NB: Do this here so that re-opened filebufs will be cool...
- _M_mode = ios_base::openmode(0);
+ this->_M_mode = ios_base::openmode(0);
_M_destroy_internal_buffer();
_M_pback_destroy();
-
-#if 0
- // XXX not done
- if (_M_last_overflowed)
- {
- _M_output_unshift();
- _M_really_overflow(__eof);
- }
-#endif
- if (_M_file.close())
+ if (!_M_file.close())
+ __testfail = true;
+
+ if (!__testfail)
__ret = this;
}
-
_M_last_overflowed = false;
return __ret;
}
@@ -154,9 +160,16 @@ namespace std
{
streamsize __ret = -1;
bool __testin = _M_mode & ios_base::in;
+ const locale __loc = this->getloc();
+ const __codecvt_type& __cvt = use_facet<__codecvt_type>(__loc);
if (__testin && this->is_open())
- __ret = _M_in_end - _M_in_cur;
+ {
+ __ret = _M_in_end - _M_in_cur;
+ if (__cvt.always_noconv())
+ __ret += _M_file.showmanyc_helper();
+ }
+
_M_last_overflowed = false;
return __ret;
}
@@ -208,21 +221,26 @@ namespace std
}
else
{
- // At the beginning of the buffer, need to make a
- // putback position available.
- this->seekoff(-1, ios_base::cur);
- this->underflow();
- if (!__testeof)
+ // At the beginning of the buffer, need to make a
+ // putback position available.
+ // But the seek may fail (f.i., at the beginning of
+ // a file, see libstdc++/9439) and in that case
+ // we return traits_type::eof()
+ if (this->seekoff(-1, ios_base::cur) >= 0)
{
- if (!traits_type::eq(__c, *_M_in_cur))
- {
- _M_pback_create();
- *_M_in_cur = __c;
- }
- __ret = __i;
+ this->underflow();
+ if (!__testeof)
+ {
+ if (!traits_type::eq(__c, *_M_in_cur))
+ {
+ _M_pback_create();
+ *_M_in_cur = __c;
+ }
+ __ret = __i;
+ }
+ else
+ __ret = traits_type::not_eof(__i);
}
- else
- __ret = traits_type::not_eof(__i);
}
}
_M_last_overflowed = false;
@@ -240,7 +258,9 @@ namespace std
if (__testout)
{
- if (__testput)
+ if (traits_type::eq_int_type(__c, traits_type::eof()))
+ __ret = traits_type::not_eof(__c);
+ else if (__testput)
{
*_M_out_cur = traits_type::to_char_type(__c);
_M_out_cur_move(1);
@@ -278,14 +298,23 @@ namespace std
char* __buf = static_cast<char*>(__builtin_alloca(__blen));
char* __bend;
const char_type* __iend;
- __res_type __r = __cvt.out(_M_state_cur, __ibuf, __ibuf + __ilen,
- __iend, __buf, __buf + __blen, __bend);
- // Result == ok, partial, noconv
- if (__r != codecvt_base::error)
+ codecvt_base::result __r;
+ __r = __cvt.out(_M_state_cur, __ibuf, __ibuf + __ilen,
+ __iend, __buf, __buf + __blen, __bend);
+
+ if (__r == codecvt_base::ok || __r == codecvt_base::partial)
__blen = __bend - __buf;
- // Result == error
- else
- __blen = 0;
+ else if (__r == codecvt_base::noconv)
+ {
+ // Same as the always_noconv case above.
+ __buf = reinterpret_cast<char*>(__ibuf);
+ __blen = __ilen;
+ }
+ else
+ {
+ // Result == error
+ __blen = 0;
+ }
if (__blen)
{
@@ -301,11 +330,8 @@ namespace std
__r = __cvt.out(_M_state_cur, __iresume, __iresume + __rlen,
__iend, __buf, __buf + __blen, __bend);
if (__r != codecvt_base::error)
- __rlen = __bend - __buf;
- else
- __rlen = 0;
- if (__rlen)
{
+ __rlen = __bend - __buf;
__elen += _M_file.xsputn(__buf, __rlen);
__plen += __rlen;
}
@@ -320,7 +346,7 @@ namespace std
{
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;
+ bool __testunbuffered = _M_file.is_open() && !_M_buf_size;
if (__testput || __testunbuffered)
{
@@ -343,26 +369,32 @@ namespace std
_M_convert_to_external(_M_out_beg, _M_out_end - _M_out_beg,
__elen, __plen);
- // Convert pending sequence to external representation, output.
- // If eof, then just attempt sync.
- if (!traits_type::eq_int_type(__c, traits_type::eof()))
- {
- char_type __pending = traits_type::to_char_type(__c);
- _M_convert_to_external(&__pending, 1, __elen, __plen);
-
- // User code must flush when switching modes (thus don't sync).
- if (__elen == __plen)
+ // Checks for codecvt.out failures and _M_file.xsputn failures,
+ // respectively, inside _M_convert_to_external.
+ if (__testunbuffered || (__elen && __elen == __plen))
+ {
+ // Convert pending sequence to external representation, output.
+ // If eof, then just attempt sync.
+ if (!traits_type::eq_int_type(__c, traits_type::eof()))
{
- _M_set_indeterminate();
- __ret = traits_type::not_eof(__c);
+ char_type __pending = traits_type::to_char_type(__c);
+ _M_convert_to_external(&__pending, 1, __elen, __plen);
+
+ // User code must flush when switching modes (thus
+ // don't sync).
+ if (__elen == __plen && __elen)
+ {
+ _M_set_indeterminate();
+ __ret = traits_type::not_eof(__c);
+ }
}
- }
- else if (!_M_file.sync())
- {
- _M_set_indeterminate();
- __ret = traits_type::not_eof(__c);
- }
- }
+ else if (!_M_file.sync())
+ {
+ _M_set_indeterminate();
+ __ret = traits_type::not_eof(__c);
+ }
+ }
+ }
_M_last_overflowed = true;
return __ret;
}
@@ -401,12 +433,13 @@ namespace std
bool __testin = (ios_base::in & _M_mode & __mode) != 0;
bool __testout = (ios_base::out & _M_mode & __mode) != 0;
- // Should probably do has_facet checks here.
- int __width = use_facet<__codecvt_type>(_M_buf_locale).encoding();
+ int __width = 0;
+ if (has_facet<__codecvt_type>(this->_M_buf_locale))
+ __width = use_facet<__codecvt_type>(this->_M_buf_locale).encoding();
if (__width < 0)
__width = 0;
- bool __testfail = __off != 0 && __width <= 0;
-
+
+ bool __testfail = __off != 0 && __width <= 0;
if (this->is_open() && !__testfail && (__testin || __testout))
{
// Ditch any pback buffers to avoid confusion.
@@ -430,7 +463,8 @@ namespace std
//in
else if (__testget && __way == ios_base::cur)
__computed_off += _M_in_cur - _M_filepos;
-
+
+ // Return pos_type(off_type(-1)) in case of failure.
__ret = _M_file.seekoff(__computed_off, __way, __mode);
_M_set_indeterminate();
}
@@ -438,8 +472,14 @@ namespace std
// state, ie _M_file._offset == -1
else
{
- __ret = _M_file.seekoff(__off, ios_base::cur, __mode);
- __ret += max(_M_out_cur, _M_in_cur) - _M_filepos;
+ pos_type __tmp =
+ _M_file.seekoff(__off, ios_base::cur, __mode);
+ if (__tmp >= 0)
+ {
+ // Seek successful.
+ __ret = __tmp;
+ __ret += max(_M_out_cur, _M_in_cur) - _M_filepos;
+ }
}
}
_M_last_overflowed = false;
@@ -466,26 +506,13 @@ namespace std
template<typename _CharT, typename _Traits>
void
basic_filebuf<_CharT, _Traits>::
- imbue(const locale& __loc)
- {
- bool __testbeg = gptr() == eback() && pptr() == pbase();
-
- if (__testbeg && _M_buf_locale != __loc)
- {
- _M_buf_locale = __loc;
- _M_buf_locale_init = true;
- }
-
- // NB this may require the reconversion of previously
- // converted chars. This in turn may cause the reconstruction
- // of the original file. YIKES!!
- // XXX The part in the above comment is not done.
- _M_last_overflowed = false;
- }
+ imbue(const locale&)
+ { _M_last_overflowed = false; }
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_filebuf<char>;
extern template class basic_ifstream<char>;
extern template class basic_ofstream<char>;
@@ -497,6 +524,7 @@ namespace std
extern template class basic_ofstream<wchar_t>;
extern template class basic_fstream<wchar_t>;
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h
index 1f085d9e4e7..3437f847c4a 100644
--- a/libstdc++-v3/include/bits/ios_base.h
+++ b/libstdc++-v3/include/bits/ios_base.h
@@ -1,6 +1,6 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,6 +43,8 @@
#pragma GCC system_header
#include <bits/atomicity.h>
+#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
namespace std
{
@@ -414,6 +416,7 @@ namespace std
_Words _M_word_zero;
// Guaranteed storage.
+ // The first 5 iword and pword slots are reserved for internal use.
static const int _S_local_word_size = 8;
_Words _M_local_word[_S_local_word_size];
@@ -449,6 +452,12 @@ namespace std
static void
_S_ios_destroy();
+ // NB: Allows debugger applications use of the standard streams
+ // from operator new. _S_ios_base_init must be incremented in
+ // _S_ios_create _after_ initialization is completed.
+ static bool
+ _S_initialized() { return _S_ios_base_init; }
+
private:
static int _S_ios_base_init;
static bool _S_synced_with_stdio;
@@ -595,7 +604,7 @@ namespace std
/**
* @brief Locale access
- * @return The locale currently in effect.
+ * @return A copy of the current locale.
*
* If @c imbue(loc) has previously been called, then this function
* returns @c loc. Otherwise, it returns a copy of @c std::locale(),
@@ -604,6 +613,16 @@ namespace std
inline locale
getloc() const { return _M_ios_locale; }
+ /**
+ * @brief Locale access
+ * @return A reference to the current locale.
+ *
+ * Like getloc above, but returns a reference instead of
+ * generating a copy.
+ */
+ inline const locale&
+ _M_getloc() const { return _M_ios_locale; }
+
// [27.4.2.5] ios_base storage functions
/**
* @doctodo
@@ -638,7 +657,7 @@ namespace std
* Destroys local storage and
* [XXX does something with callbacks].
*/
- virtual ~ios_base();
+ ~ios_base();
protected:
ios_base();
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index a6e49a923bd..1d463957fbd 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -1,6 +1,6 @@
// istream classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,6 +43,7 @@ namespace std
basic_istream<_CharT, _Traits>::sentry::
sentry(basic_istream<_CharT, _Traits>& __in, bool __noskipws)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
if (__in.good())
{
if (__in.tie())
@@ -53,26 +54,28 @@ namespace std
__streambuf_type* __sb = __in.rdbuf();
__int_type __c = __sb->sgetc();
- if (__in._M_check_facet(__in._M_fctype))
- while (!traits_type::eq_int_type(__c, __eof)
- && __in._M_fctype->is(ctype_base::space,
- traits_type::to_char_type(__c)))
- __c = __sb->snextc();
+ __in._M_check_facet(__in._M_fctype);
+ const __ctype_type& __ct = *__in._M_fctype;
+ while (!traits_type::eq_int_type(__c, __eof)
+ && __ct.is(ctype_base::space,
+ traits_type::to_char_type(__c)))
+ __c = __sb->snextc();
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-//195. Should basic_istream::sentry's constructor ever set eofbit?
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 195. Should basic_istream::sentry's constructor ever
+ // set eofbit?
if (traits_type::eq_int_type(__c, __eof))
- __in.setstate(ios_base::eofbit);
-#endif
+ __err |= ios_base::eofbit;
}
}
- if (__in.good())
+ if (__in.good() && __err == ios_base::goodbit)
_M_ok = true;
else
{
_M_ok = false;
- __in.setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
+ __in.setstate(__err);
}
}
@@ -80,10 +83,7 @@ namespace std
basic_istream<_CharT, _Traits>&
basic_istream<_CharT, _Traits>::
operator>>(__istream_type& (*__pf)(__istream_type&))
- {
- __pf(*this);
- return *this;
- }
+ { return __pf(*this); }
template<typename _CharT, typename _Traits>
basic_istream<_CharT, _Traits>&
@@ -111,21 +111,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -138,13 +134,14 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
long __l;
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __l);
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __l);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 118. basic_istream uses nonexistent num_get member functions.
if (!(__err & ios_base::failbit)
&& (numeric_limits<short>::min() <= __l
@@ -152,17 +149,11 @@ namespace std
__n = __l;
else
__err |= ios_base::failbit;
-#endif
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -175,21 +166,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -202,13 +189,14 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
long __l;
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __l);
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __l);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
// 118. basic_istream uses nonexistent num_get member functions.
if (!(__err & ios_base::failbit)
&& (numeric_limits<int>::min() <= __l
@@ -216,17 +204,11 @@ namespace std
__n = __l;
else
__err |= ios_base::failbit;
-#endif
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -239,21 +221,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -266,21 +244,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -293,21 +267,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -321,21 +291,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -348,21 +314,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -376,21 +338,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -403,21 +361,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -430,21 +384,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -457,21 +407,17 @@ namespace std
sentry __cerb(*this, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
- if (_M_check_facet(_M_fnumget))
- _M_fnumget->get(*this, 0, *this, __err, __n);
- this->setstate(__err);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumget);
+ const __numget_type& __ng = *this->_M_fnumget;
+ __ng.get(*this, 0, *this, __err, __n);
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -481,30 +427,23 @@ namespace std
basic_istream<_CharT, _Traits>::
operator>>(__streambuf_type* __sbout)
{
- sentry __cerb(*this, false);
- if (__cerb)
- {
- try
- {
- streamsize __xtrct = 0;
- if (__sbout)
- {
- __streambuf_type* __sbin = this->rdbuf();
- __xtrct = __copy_streambufs(*this, __sbin, __sbout);
- }
- if (!__sbout || !__xtrct)
- this->setstate(ios_base::failbit);
- }
- catch(exception& __fail)
- {
- // 27.6.2.5.1 Common requirements.
- // 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;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ sentry __cerb(*this, false);
+ if (__cerb && __sbout)
+ {
+ try
+ {
+ if (!__copy_streambufs(*this, this->rdbuf(), __sbout))
+ __err |= ios_base::failbit;
+ }
+ catch(...)
+ { this->_M_setstate(ios_base::failbit); }
+ }
+ else if (!__sbout)
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
+ return *this;
}
template<typename _CharT, typename _Traits>
@@ -515,6 +454,7 @@ namespace std
const int_type __eof = traits_type::eof();
int_type __c = __eof;
_M_gcount = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
sentry __cerb(*this, true);
if (__cerb)
{
@@ -525,17 +465,15 @@ namespace std
if (!traits_type::eq_int_type(__c, __eof))
_M_gcount = 1;
else
- this->setstate(ios_base::eofbit | ios_base::failbit);
- }
- 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;
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
}
+ if (!_M_gcount)
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
return __c;
}
@@ -545,31 +483,29 @@ namespace std
get(char_type& __c)
{
_M_gcount = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
sentry __cerb(*this, true);
if (__cerb)
{
try
{
- const int_type __eof = traits_type::eof();
- int_type __bufval = this->rdbuf()->sbumpc();
+ int_type __cb = this->rdbuf()->sbumpc();
// 27.6.1.1 paragraph 3
- if (!traits_type::eq_int_type(__bufval, __eof))
+ if (!traits_type::eq_int_type(__cb, traits_type::eof()))
{
_M_gcount = 1;
- __c = traits_type::to_char_type(__bufval);
+ __c = traits_type::to_char_type(__cb);
}
else
- this->setstate(ios_base::eofbit | ios_base::failbit);
- }
- 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;
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
}
+ if (!_M_gcount)
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -579,6 +515,7 @@ namespace std
get(char_type* __s, streamsize __n, char_type __delim)
{
_M_gcount = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
sentry __cerb(*this, true);
if (__cerb)
{
@@ -598,20 +535,16 @@ namespace std
++_M_gcount;
}
if (traits_type::eq_int_type(__c, __eof))
- this->setstate(ios_base::eofbit);
- }
- 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;
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
}
*__s = char_type();
if (!_M_gcount)
- this->setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -621,6 +554,7 @@ namespace std
get(__streambuf_type& __sb, char_type __delim)
{
_M_gcount = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
sentry __cerb(*this, true);
if (__cerb)
{
@@ -641,19 +575,15 @@ namespace std
__c2 = traits_type::to_char_type(__c);
}
if (traits_type::eq_int_type(__c, __eof))
- this->setstate(ios_base::eofbit);
- }
- 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;
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
}
if (!_M_gcount)
- this->setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -663,6 +593,7 @@ namespace std
getline(char_type* __s, streamsize __n, char_type __delim)
{
_M_gcount = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
sentry __cerb(*this, true);
if (__cerb)
{
@@ -682,7 +613,7 @@ namespace std
++_M_gcount;
}
if (traits_type::eq_int_type(__c, __eof))
- this->setstate(ios_base::eofbit);
+ __err |= ios_base::eofbit;
else
{
if (traits_type::eq_int_type(__c, __idelim))
@@ -691,21 +622,17 @@ namespace std
++_M_gcount;
}
else
- this->setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
}
}
- 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;
- }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
}
*__s = char_type();
if (!_M_gcount)
- this->setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -718,6 +645,7 @@ namespace std
sentry __cerb(*this, true);
if (__cerb && __n > 0)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
const int_type __eof = traits_type::eof();
@@ -733,16 +661,12 @@ namespace std
break;
}
if (traits_type::eq_int_type(__c, __eof))
- this->setstate(ios_base::eofbit);
- }
- 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;
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -757,18 +681,19 @@ namespace std
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
- { __c = this->rdbuf()->sgetc(); }
- 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;
+ __c = this->rdbuf()->sgetc();
+ if (traits_type::eq_int_type(__c, traits_type::eof()))
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- return __c;
+ return __c;
}
template<typename _CharT, typename _Traits>
@@ -780,23 +705,18 @@ namespace std
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
_M_gcount = this->rdbuf()->sgetn(__s, __n);
if (_M_gcount != __n)
- this->setstate(ios_base::eofbit | ios_base::failbit);
+ __err |= (ios_base::eofbit | ios_base::failbit);
}
- 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;
- }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- else
- this->setstate(ios_base::failbit);
return *this;
}
@@ -809,30 +729,21 @@ namespace std
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
// Cannot compare int_type with streamsize generically.
- streamsize __num = this->rdbuf()->in_avail();
- if (__num >= 0)
- {
- __num = min(__num, __n);
- if (__num)
- _M_gcount = this->rdbuf()->sgetn(__s, __num);
- }
- else
- this->setstate(ios_base::eofbit);
- }
- 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;
+ const streamsize __num = this->rdbuf()->in_avail();
+ if (__num > 0)
+ _M_gcount = this->rdbuf()->sgetn(__s, min(__num, __n));
+ else if (__num == -1)
+ __err |= ios_base::eofbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- else
- this->setstate(ios_base::failbit);
return _M_gcount;
}
@@ -841,28 +752,27 @@ namespace std
basic_istream<_CharT, _Traits>::
putback(char_type __c)
{
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+// 60. What is a formatted input function?
+ _M_gcount = 0;
+#endif
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
const int_type __eof = traits_type::eof();
__streambuf_type* __sb = this->rdbuf();
if (!__sb
|| traits_type::eq_int_type(__sb->sputbackc(__c), __eof))
- this->setstate(ios_base::badbit);
- }
- 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;
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- else
- this->setstate(ios_base::failbit);
return *this;
}
@@ -871,29 +781,27 @@ namespace std
basic_istream<_CharT, _Traits>::
unget(void)
{
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+// 60. What is a formatted input function?
_M_gcount = 0;
+#endif
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
const int_type __eof = traits_type::eof();
__streambuf_type* __sb = this->rdbuf();
if (!__sb
|| traits_type::eq_int_type(__sb->sungetc(), __eof))
- this->setstate(ios_base::badbit);
- }
- 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;
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- else
- this->setstate(ios_base::failbit);
return *this;
}
@@ -902,30 +810,28 @@ namespace std
basic_istream<_CharT, _Traits>::
sync(void)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR60. Do not change _M_gcount.
int __ret = -1;
- _M_gcount = 0;
sentry __cerb(*this, true);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
__streambuf_type* __sb = this->rdbuf();
if (__sb)
{
if (__sb->pubsync() == -1)
- this->setstate(ios_base::badbit);
+ __err |= ios_base::badbit;
else
__ret = 0;
}
}
- 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;
- }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return __ret;
}
@@ -935,9 +841,16 @@ namespace std
basic_istream<_CharT, _Traits>::
tellg(void)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR60. Do not change _M_gcount.
pos_type __ret = pos_type(-1);
- if (!this->fail())
- __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in);
+ try
+ {
+ if (!this->fail())
+ __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in);
+ }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
return __ret;
}
@@ -947,18 +860,25 @@ namespace std
basic_istream<_CharT, _Traits>::
seekg(pos_type __pos)
{
- _M_gcount = 0;
- if (!this->fail())
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR60. Do not change _M_gcount.
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
{
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-// 136. seekp, seekg setting wrong streams?
- pos_type __err = this->rdbuf()->pubseekpos(__pos, ios_base::in);
+ if (!this->fail())
+ {
+ // 136. seekp, seekg setting wrong streams?
+ pos_type __p = 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
+ // 129. Need error indication from seekp() and seekg()
+ if (__p == pos_type(off_type(-1)))
+ __err |= ios_base::failbit;
+ }
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -967,19 +887,26 @@ namespace std
basic_istream<_CharT, _Traits>::
seekg(off_type __off, ios_base::seekdir __dir)
{
- _M_gcount = 0;
- if (!this->fail())
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR60. Do not change _M_gcount.
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ 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
+ if (!this->fail())
+ {
+ // 136. seekp, seekg setting wrong streams?
+ pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
+ ios_base::in);
+
+ // 129. Need error indication from seekp() and seekg()
+ if (__p == pos_type(off_type(-1)))
+ __err |= ios_base::failbit;
+ }
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -992,19 +919,20 @@ namespace std
typename __istream_type::sentry __cerb(__in, false);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
- { __in.get(__c); }
- catch(exception& __fail)
{
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __in.setstate(ios_base::badbit);
- if ((__in.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
+ typename __istream_type::int_type __cb = __in.rdbuf()->sbumpc();
+ if (!_Traits::eq_int_type(__cb, _Traits::eof()))
+ __c = _Traits::to_char_type(__cb);
+ else
+ __err |= (ios_base::eofbit | ios_base::failbit);
}
+ catch(...)
+ { __in._M_setstate(ios_base::badbit); }
+ if (__err)
+ __in.setstate(__err);
}
- else
- __in.setstate(ios_base::failbit);
return __in;
}
@@ -1017,8 +945,9 @@ namespace std
typedef typename _Traits::int_type int_type;
typedef _CharT char_type;
typedef ctype<_CharT> __ctype_type;
- streamsize __extracted = 0;
+ streamsize __extracted = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
typename __istream_type::sentry __cerb(__in, false);
if (__cerb)
{
@@ -1026,7 +955,7 @@ namespace std
{
// Figure out how many characters to extract.
streamsize __num = __in.width();
- if (__num == 0)
+ if (__num <= 0)
__num = numeric_limits<streamsize>::max();
const __ctype_type& __ctype = use_facet<__ctype_type>(__in.getloc());
@@ -1036,14 +965,14 @@ namespace std
while (__extracted < __num - 1
&& !_Traits::eq_int_type(__c, __eof)
- && !__ctype.is(ctype_base::space, __c))
+ && !__ctype.is(ctype_base::space, _Traits::to_char_type(__c)))
{
- *__s++ = __c;
+ *__s++ = _Traits::to_char_type(__c);
++__extracted;
__c = __sb->snextc();
}
if (_Traits::eq_int_type(__c, __eof))
- __in.setstate(ios_base::eofbit);
+ __err |= ios_base::eofbit;
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
//68. Extractors for char* should store null at end
@@ -1051,17 +980,13 @@ namespace std
#endif
__in.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __in.setstate(ios_base::badbit);
- if ((__in.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __in._M_setstate(ios_base::badbit); }
}
if (!__extracted)
- __in.setstate(ios_base::failbit);
+ __err |= ios_base::failbit;
+ if (__err)
+ __in.setstate(__err);
return __in;
}
@@ -1081,12 +1006,11 @@ namespace std
__int_type __c = __sb->sgetc();
while (!_Traits::eq_int_type(__c, __eof)
- && __ctype.is(ctype_base::space, __c))
+ && __ctype.is(ctype_base::space, _Traits::to_char_type(__c)))
__c = __sb->snextc();
if (_Traits::eq_int_type(__c, __eof))
- __in.setstate(ios_base::eofbit);
-
+ __in.setstate(ios_base::eofbit);
return __in;
}
@@ -1102,38 +1026,49 @@ namespace std
typedef typename __istream_type::__ctype_type __ctype_type;
typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
typedef typename __string_type::size_type __size_type;
- __size_type __extracted = 0;
+ __size_type __extracted = 0;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
typename __istream_type::sentry __cerb(__in, false);
if (__cerb)
{
- __str.erase();
- streamsize __w = __in.width();
- __size_type __n;
- __n = __w > 0 ? static_cast<__size_type>(__w) : __str.max_size();
-
- const __ctype_type& __ctype = use_facet<__ctype_type>(__in.getloc());
- const __int_type __eof = _Traits::eof();
- __streambuf_type* __sb = __in.rdbuf();
- __int_type __c = __sb->sgetc();
-
- while (__extracted < __n
- && !_Traits::eq_int_type(__c, __eof)
- && !__ctype.is(ctype_base::space, __c))
+ try
{
- __str += _Traits::to_char_type(__c);
- ++__extracted;
- __c = __sb->snextc();
+ __str.erase();
+ streamsize __w = __in.width();
+ __size_type __n;
+ __n = __w > 0 ? static_cast<__size_type>(__w) : __str.max_size();
+
+ const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc());
+ const __int_type __eof = _Traits::eof();
+ __streambuf_type* __sb = __in.rdbuf();
+ __int_type __c = __sb->sgetc();
+
+ while (__extracted < __n
+ && !_Traits::eq_int_type(__c, __eof)
+ && !__ct.is(ctype_base::space, _Traits::to_char_type(__c)))
+ {
+ __str += _Traits::to_char_type(__c);
+ ++__extracted;
+ __c = __sb->snextc();
+ }
+ if (_Traits::eq_int_type(__c, __eof))
+ __err |= ios_base::eofbit;
+ __in.width(0);
+ }
+ catch(...)
+ {
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 91. Description of operator>> and getline() for string<>
+ // might cause endless loop
+ __in._M_setstate(ios_base::badbit);
}
- if (_Traits::eq_int_type(__c, __eof))
- __in.setstate(ios_base::eofbit);
- __in.width(0);
}
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-//211. operator>>(istream&, string&) doesn't set failbit
+ // 211. operator>>(istream&, string&) doesn't set failbit
if (!__extracted)
- __in.setstate (ios_base::failbit);
-#endif
+ __err |= ios_base::failbit;
+ if (__err)
+ __in.setstate(__err);
return __in;
}
@@ -1150,33 +1085,44 @@ namespace std
typedef typename __string_type::size_type __size_type;
__size_type __extracted = 0;
+ const __size_type __n = __str.max_size();
bool __testdelim = false;
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
typename __istream_type::sentry __cerb(__in, true);
if (__cerb)
{
- __str.erase();
- __size_type __n = __str.max_size();
-
- __int_type __idelim = _Traits::to_int_type(__delim);
- __streambuf_type* __sb = __in.rdbuf();
- __int_type __c = __sb->sbumpc();
- const __int_type __eof = _Traits::eof();
- __testdelim = _Traits::eq_int_type(__c, __idelim);
-
- while (__extracted <= __n
- && !_Traits::eq_int_type(__c, __eof)
- && !__testdelim)
+ try
{
- __str += _Traits::to_char_type(__c);
- ++__extracted;
- __c = __sb->sbumpc();
+ __str.erase();
+ __int_type __idelim = _Traits::to_int_type(__delim);
+ __streambuf_type* __sb = __in.rdbuf();
+ __int_type __c = __sb->sbumpc();
+ const __int_type __eof = _Traits::eof();
__testdelim = _Traits::eq_int_type(__c, __idelim);
+
+ while (!_Traits::eq_int_type(__c, __eof) && !__testdelim
+ && __extracted < __n)
+ {
+ __str += _Traits::to_char_type(__c);
+ ++__extracted;
+ __c = __sb->sbumpc();
+ __testdelim = _Traits::eq_int_type(__c, __idelim);
+ }
+ if (_Traits::eq_int_type(__c, __eof))
+ __err |= ios_base::eofbit;
+ }
+ catch(...)
+ {
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 91. Description of operator>> and getline() for string<>
+ // might cause endless loop
+ __in._M_setstate(ios_base::badbit);
}
- if (_Traits::eq_int_type(__c, __eof))
- __in.setstate(ios_base::eofbit);
}
- if (!__extracted && !__testdelim)
- __in.setstate(ios_base::failbit);
+ if ((!__extracted && !__testdelim) || __extracted == __n)
+ __err |= ios_base::failbit;
+ if (__err)
+ __in.setstate(__err);
return __in;
}
@@ -1189,6 +1135,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_istream<char>;
extern template istream& ws(istream&);
extern template istream& operator>>(istream&, char&);
@@ -1204,4 +1151,5 @@ namespace std
extern template wistream& operator>>(wistream&, wchar_t&);
extern template wistream& operator>>(wistream&, wchar_t*);
#endif
+#endif
} // namespace std
diff --git a/libstdc++-v3/include/bits/list.tcc b/libstdc++-v3/include/bits/list.tcc
index 898a5020c23..16959d189f0 100644
--- a/libstdc++-v3/include/bits/list.tcc
+++ b/libstdc++-v3/include/bits/list.tcc
@@ -216,21 +216,26 @@ namespace std
list<_Tp,_Alloc>::
merge(list& __x)
{
- iterator __first1 = begin();
- iterator __last1 = end();
- iterator __first2 = __x.begin();
- iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- if (*__first2 < *__first1)
- {
- iterator __next = __first2;
- _M_transfer(__first1, __first2, ++__next);
- __first2 = __next;
- }
- else
- ++__first1;
- if (__first2 != __last2)
- _M_transfer(__last1, __first2, __last2);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 300. list::merge() specification incomplete
+ if (this != &__x)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ iterator __first2 = __x.begin();
+ iterator __last2 = __x.end();
+ while (__first1 != __last1 && __first2 != __last2)
+ if (*__first2 < *__first1)
+ {
+ iterator __next = __first2;
+ _M_transfer(__first1, __first2, ++__next);
+ __first2 = __next;
+ }
+ else
+ ++__first1;
+ if (__first2 != __last2)
+ _M_transfer(__last1, __first2, __last2);
+ }
}
// FIXME put this somewhere else
@@ -317,20 +322,25 @@ namespace std
list<_Tp,_Alloc>::
merge(list& __x, _StrictWeakOrdering __comp)
{
- iterator __first1 = begin();
- iterator __last1 = end();
- iterator __first2 = __x.begin();
- iterator __last2 = __x.end();
- while (__first1 != __last1 && __first2 != __last2)
- if (__comp(*__first2, *__first1))
- {
- iterator __next = __first2;
- _M_transfer(__first1, __first2, ++__next);
- __first2 = __next;
- }
- else
- ++__first1;
- if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 300. list::merge() specification incomplete
+ if (this != &__x)
+ {
+ iterator __first1 = begin();
+ iterator __last1 = end();
+ iterator __first2 = __x.begin();
+ iterator __last2 = __x.end();
+ while (__first1 != __last1 && __first2 != __last2)
+ if (__comp(*__first2, *__first1))
+ {
+ iterator __next = __first2;
+ _M_transfer(__first1, __first2, ++__next);
+ __first2 = __next;
+ }
+ else
+ ++__first1;
+ if (__first2 != __last2) _M_transfer(__last1, __first2, __last2);
+ }
}
template<typename _Tp, typename _Alloc>
diff --git a/libstdc++-v3/include/bits/locale_classes.h b/libstdc++-v3/include/bits/locale_classes.h
new file mode 100644
index 00000000000..0a44de63661
--- /dev/null
+++ b/libstdc++-v3/include/bits/locale_classes.h
@@ -0,0 +1,422 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 22.1 Locales
+//
+
+/** @file localefwd.h
+ * This is an internal header file, included by other library headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef _CPP_BITS_LOCALE_CLASSES_H
+#define _CPP_BITS_LOCALE_CLASSES_H 1
+
+#pragma GCC system_header
+
+#include <bits/localefwd.h>
+#include <cstring> // For strcmp.
+#include <string>
+#include <bits/atomicity.h>
+
+namespace std
+{
+ class __locale_cache_base;
+ template<typename _Facet> class __locale_cache;
+
+ // 22.1.1 Class locale
+ class locale
+ {
+ public:
+ // Types:
+ typedef unsigned int category;
+
+ // Forward decls and friends:
+ class facet;
+ class id;
+ class _Impl;
+
+ friend class facet;
+ friend class _Impl;
+
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw();
+
+ template<typename _Facet>
+ friend const __locale_cache<_Facet>&
+ __use_cache(const locale&);
+
+ // Category values:
+ // NB: Order must match _S_facet_categories definition in locale.cc
+ static const category none = 0;
+ static const category ctype = 1L << 0;
+ static const category numeric = 1L << 1;
+ static const category collate = 1L << 2;
+ 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();
+
+ locale(const locale& __other) throw();
+
+ explicit
+ locale(const char* __s);
+
+ locale(const locale& __base, const char* __s, category __cat);
+
+ locale(const locale& __base, const locale& __add, category __cat);
+
+ template<typename _Facet>
+ locale(const locale& __other, _Facet* __f);
+
+ ~locale() throw();
+
+ const locale&
+ operator=(const locale& __other) throw();
+
+ template<typename _Facet>
+ locale
+ combine(const locale& __other) const;
+
+ // Locale operations:
+ string
+ name() const;
+
+ bool
+ operator==(const locale& __other) const throw ();
+
+ inline bool
+ operator!=(const locale& __other) const throw ()
+ { return !(this->operator==(__other)); }
+
+ template<typename _Char, typename _Traits, typename _Alloc>
+ bool
+ operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
+ const basic_string<_Char, _Traits, _Alloc>& __s2) const;
+
+ // Global locale objects:
+ static locale
+ global(const locale&);
+
+ static const locale&
+ classic();
+
+ private:
+ // The (shared) implementation
+ _Impl* _M_impl;
+
+ // The "C" reference locale
+ static _Impl* _S_classic;
+
+ // Current global 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();
+
+ static inline void
+ _S_initialize()
+ {
+ if (!_S_classic)
+ classic();
+ }
+
+ static category
+ _S_normalize_category(category);
+
+ void
+ _M_coalesce(const locale& __base, const locale& __add, category __cat);
+ };
+
+
+ // Implementation object for locale
+ class locale::_Impl
+ {
+ public:
+ // Friends.
+ friend class locale;
+ friend class locale::facet;
+
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw();
+
+ template<typename _Facet>
+ friend const __locale_cache<_Facet>&
+ __use_cache(const locale&);
+
+ private:
+ // Data Members.
+ _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[];
+ static const locale::id* const _S_id_time[];
+ static const locale::id* const _S_id_monetary[];
+ static const locale::id* const _S_id_messages[];
+ static const locale::id* const* const _S_facet_categories[];
+
+ inline void
+ _M_add_reference() throw()
+ { __atomic_add(&_M_references, 1); }
+
+ inline void
+ _M_remove_reference() throw()
+ {
+ if (__exchange_and_add(&_M_references, -1) == 1)
+ {
+ try
+ { delete this; }
+ catch(...)
+ { }
+ }
+ }
+
+ _Impl(const _Impl&, size_t);
+ _Impl(const char*, size_t);
+ _Impl(facet**, size_t, bool);
+
+ ~_Impl() throw();
+
+ _Impl(const _Impl&); // Not defined.
+
+ void
+ operator=(const _Impl&); // Not defined.
+
+ inline bool
+ _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;
+ }
+
+ void
+ _M_replace_categories(const _Impl*, category);
+
+ void
+ _M_replace_category(const _Impl*, const locale::id* const*);
+
+ void
+ _M_replace_facet(const _Impl*, const locale::id*);
+
+ void
+ _M_install_facet(const locale::id*, facet*);
+
+ template<typename _Facet>
+ inline void
+ _M_init_facet(_Facet* __facet)
+ { _M_install_facet(&_Facet::id, __facet); }
+
+ // Retrieve the cache at __index. 0 is returned if the cache is
+ // missing. Cache is actually located at __index +
+ // _M_facets_size. __index must be < _M_facets_size.
+ inline __locale_cache_base*
+ _M_get_cache(size_t __index)
+ {
+ return (__locale_cache_base*)_M_facets[__index + _M_facets_size];
+ }
+
+ // Save the supplied cache at __id. Assumes _M_get_cache has been
+ // called.
+ void
+ _M_install_cache(__locale_cache_base* __cache, int __id)
+ {
+ _M_facets[__id + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__cache);
+ }
+
+ };
+
+ template<typename _Facet>
+ locale::locale(const locale& __other, _Facet* __f)
+ {
+ _M_impl = new _Impl(*__other._M_impl, 1);
+
+ char* _M_tmp_names[_S_categories_size + _S_extra_categories_size];
+ size_t __i = 0;
+ try
+ {
+ for (; __i < _S_categories_size
+ + _S_extra_categories_size; ++__i)
+ {
+ _M_tmp_names[__i] = new char[2];
+ strcpy(_M_tmp_names[__i], "*");
+ }
+ _M_impl->_M_install_facet(&_Facet::id, __f);
+ }
+ catch(...)
+ {
+ _M_impl->_M_remove_reference();
+ for (size_t __j = 0; __j < __i; ++__j)
+ delete [] _M_tmp_names[__j];
+ __throw_exception_again;
+ }
+
+ for (size_t __k = 0; __k < _S_categories_size
+ + _S_extra_categories_size; ++__k)
+ {
+ delete [] _M_impl->_M_names[__k];
+ _M_impl->_M_names[__k] = _M_tmp_names[__k];
+ }
+ }
+
+
+ // 22.1.1.1.2 Class locale::facet
+ class locale::facet
+ {
+ private:
+ friend class locale;
+ friend class locale::_Impl;
+
+ _Atomic_word _M_references;
+
+ protected:
+ // Contains data from the underlying "C" library for the classic locale.
+ static __c_locale _S_c_locale;
+
+ // String literal for the name of the classic locale.
+ static char _S_c_name[2];
+
+ explicit
+ facet(size_t __refs = 0) throw();
+
+ virtual
+ ~facet();
+
+ static void
+ _S_create_c_locale(__c_locale& __cloc, const char* __s,
+ __c_locale __old = 0);
+
+ static __c_locale
+ _S_clone_c_locale(__c_locale& __cloc);
+
+ static void
+ _S_destroy_c_locale(__c_locale& __cloc);
+
+ private:
+ void
+ _M_add_reference() throw();
+
+ void
+ _M_remove_reference() throw();
+
+ facet(const facet&); // Not defined.
+
+ void
+ operator=(const facet&); // Not defined.
+ };
+
+
+ // 22.1.1.1.3 Class locale::id
+ class locale::id
+ {
+ private:
+ friend class locale;
+ friend class locale::_Impl;
+ template<typename _Facet>
+ friend const _Facet&
+ use_facet(const locale&);
+ template<typename _Facet>
+ friend bool
+ has_facet(const locale&) throw ();
+
+ // NB: There is no accessor for _M_index because it may be used
+ // before the constructor is run; the effect of calling a member
+ // function (even an inline) would be undefined.
+ mutable size_t _M_index;
+
+ // Last id number assigned.
+ static _Atomic_word _S_highwater;
+
+ void
+ operator=(const id&); // Not defined.
+
+ id(const id&); // Not defined.
+
+ public:
+ // NB: This class is always a static data member, and thus can be
+ // counted on to be zero-initialized.
+ id();
+
+ inline size_t
+ _M_id() const
+ {
+ if (!_M_index)
+ _M_index = 1 + __exchange_and_add(&_S_highwater, 1);
+ return _M_index - 1;
+ }
+ };
+} // namespace std
+
+#endif
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index 660bad3c11a..37f6875bc25 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -44,7 +44,9 @@
#include <ctime> // For struct tm
#include <cwctype> // For wctype_t
-#include <ios> // For ios_base
+#include <iosfwd>
+#include <bits/ios_base.h> // For ios_base, ios_base::iostate
+#include <streambuf>
namespace std
{
@@ -55,8 +57,109 @@ namespace std
# define _GLIBCPP_NUM_FACETS 14
#endif
+ // Convert string to numeric value of type _Tv and store results.
+ // NB: This is specialized for all required types, there is no
+ // generic definition.
+ template<typename _Tv>
+ void
+ __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
+ const __c_locale& __cloc, int __base = 10);
+
+ // Explicit specializations for required types.
+ template<>
+ void
+ __convert_to_v(const char*, long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, unsigned long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template<>
+ void
+ __convert_to_v(const char*, long long&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, unsigned long long&, ios_base::iostate&,
+ const __c_locale&, int);
+#endif
+
+ template<>
+ void
+ __convert_to_v(const char*, float&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, double&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ template<>
+ void
+ __convert_to_v(const char*, long double&, ios_base::iostate&,
+ const __c_locale&, int);
+
+ // NB: __pad is a struct, rather than a function, so it can be
+ // partially-specialized.
template<typename _CharT, typename _Traits>
- struct __pad;
+ struct __pad
+ {
+ static void
+ _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
+ const _CharT* __olds, const streamsize __newlen,
+ const streamsize __oldlen, const bool __num);
+ };
+
+ // Used by both numeric and monetary facets.
+ // Check to make sure that the __grouping_tmp string constructed in
+ // money_get or num_get matches the canonical grouping for a given
+ // locale.
+ // __grouping_tmp is parsed L to R
+ // 1,222,444 == __grouping_tmp of "\1\3\3"
+ // __grouping is parsed R to L
+ // 1,222,444 == __grouping of "\3" == "\3\3\3"
+ template<typename _CharT>
+ bool
+ __verify_grouping(const basic_string<_CharT>& __grouping,
+ basic_string<_CharT>& __grouping_tmp);
+
+ // Used by both numeric and monetary facets.
+ // Inserts "group separator" characters into an array of characters.
+ // It's recursive, one iteration per group. It moves the characters
+ // in the buffer this way: "xxxx12345" -> "12,345xxx". Call this
+ // only with __gbeg != __gend.
+ template<typename _CharT>
+ _CharT*
+ __add_grouping(_CharT* __s, _CharT __sep,
+ const char* __gbeg, const char* __gend,
+ const _CharT* __first, const _CharT* __last);
+
+ // This template permits specializing facet output code for
+ // ostreambuf_iterator. For ostreambuf_iterator, sputn is
+ // significantly more efficient than incrementing iterators.
+ template<typename _CharT>
+ inline
+ ostreambuf_iterator<_CharT>
+ __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len)
+ {
+ __s._M_put(__ws, __len);
+ return __s;
+ }
+
+ // This is the unspecialized form of the template.
+ template<typename _CharT, typename _OutIter>
+ inline
+ _OutIter
+ __write(_OutIter __s, const _CharT* __ws, int __len)
+ {
+ for (int __j = 0; __j < __len; __j++, ++__s)
+ *__s = __ws[__j];
+ return __s;
+ }
// 22.2.1.1 Template class ctype
// Include host and configuration specific ctype enums for ctype_base.
@@ -424,14 +527,38 @@ namespace std
// 22.2.1.5 Template class codecvt
#include <bits/codecvt.h>
-
// 22.2.2 The numeric category.
class __num_base
{
+ public:
+ // NB: Code depends on the order of _S_atoms_out elements.
+ // Below are the indices into _S_atoms_out.
+ enum
+ {
+ _S_minus,
+ _S_plus,
+ _S_x,
+ _S_X,
+ _S_digits,
+ _S_digits_end = _S_digits + 16,
+ _S_udigits = _S_digits_end,
+ _S_udigits_end = _S_udigits + 16,
+ _S_e = _S_digits + 14, // For scientific notation, 'e'
+ _S_E = _S_udigits + 14, // For scientific notation, 'E'
+ _S_end = _S_udigits_end
+ };
+
+ // A list of valid numeric literals for output. This array
+ // contains chars that will be passed through the current locale's
+ // ctype<_CharT>.widen() and then used to render numbers.
+ // For the standard "C" locale, this is
+ // "-+xX0123456789abcdef0123456789ABCDEF".
+ static const char* _S_atoms_out;
+
protected:
// String literal of acceptable (narrow) input, for num_get.
// "0123456789eEabcdfABCDF"
- static const char _S_atoms[];
+ static const char* _S_atoms_in;
enum
{
@@ -443,7 +570,7 @@ namespace std
// num_put
// Construct and return valid scanf format for floating point types.
- static bool
+ static void
_S_format_float(const ios_base& __io, char* __fptr, char __mod,
streamsize __prec);
@@ -454,6 +581,9 @@ namespace std
template<typename _CharT>
+ class __locale_cache;
+
+ template<typename _CharT>
class numpunct : public locale::facet
{
public:
@@ -461,6 +591,8 @@ namespace std
typedef _CharT char_type;
typedef basic_string<_CharT> string_type;
+ friend class __locale_cache<numpunct<_CharT> >;
+
static locale::id id;
private:
@@ -725,7 +857,6 @@ namespace std
// Types:
typedef _CharT char_type;
typedef _OutIter iter_type;
-
static locale::id id;
explicit
@@ -775,6 +906,27 @@ namespace std
_M_convert_float(iter_type, ios_base& __io, char_type __fill,
char __mod, _ValueT __v) const;
+ void
+ _M_group_float(const string& __grouping, char_type __sep,
+ const char_type* __p, char_type* __new, char_type* __cs,
+ int& __len) const;
+
+ template<typename _ValueT>
+ iter_type
+ _M_convert_int(iter_type, ios_base& __io, char_type __fill,
+ _ValueT __v) const;
+
+ void
+ _M_group_int(const string& __grouping, char_type __sep,
+ ios_base& __io, char_type* __new, char_type* __cs,
+ int& __len) const;
+
+ void
+ _M_pad(char_type __fill, streamsize __w, ios_base& __io,
+ char_type* __new, const char_type* __cs, int& __len) const;
+
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
template<typename _ValueT>
iter_type
_M_convert_int(iter_type, ios_base& __io, char_type __fill,
@@ -791,8 +943,9 @@ namespace std
iter_type
_M_insert(iter_type, ios_base& __io, char_type __fill,
const char_type* __ws, int __len) const;
+#endif
- virtual
+ virtual
~num_put() { };
virtual iter_type
@@ -1011,22 +1164,10 @@ namespace std
public:
explicit
- __timepunct(size_t __refs = 0)
- : locale::facet(__refs)
- {
- _M_name_timepunct = new char[2];
- strcpy(_M_name_timepunct, "C");
- _M_initialize_timepunct();
- }
+ __timepunct(size_t __refs = 0);
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);
- }
+ __timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0);
void
_M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,
@@ -1123,11 +1264,7 @@ namespace std
protected:
virtual
- ~__timepunct()
- {
- delete [] _M_name_timepunct;
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
+ ~__timepunct();
// For use at construction time only.
void
@@ -1169,6 +1306,8 @@ namespace std
template<typename _CharT>
const _CharT* __timepunct<_CharT>::_S_timezones[14];
+ // Include host and configuration specific timepunct functions.
+ #include <bits/time_members.h>
template<typename _CharT, typename _InIter>
class time_get : public locale::facet, public time_base
@@ -1628,32 +1767,17 @@ namespace std
// Underlying "C" library locale information saved from
// initialization, needed by messages_byname as well.
__c_locale _M_c_locale_messages;
-#if 1
- // Only needed if glibc < 2.3
char* _M_name_messages;
-#endif
public:
static locale::id id;
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;
- }
+ messages(size_t __refs = 0);
// 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);
- }
+ messages(__c_locale __cloc, const char* __s, size_t __refs = 0);
catalog
open(const basic_string<char>& __s, const locale& __loc) const
@@ -1673,11 +1797,7 @@ namespace std
protected:
virtual
- ~messages()
- {
- delete [] _M_name_messages;
- _S_destroy_c_locale(_M_c_locale_messages);
- }
+ ~messages();
virtual catalog
do_open(const basic_string<char>&, const locale&) const;
@@ -1751,9 +1871,6 @@ namespace std
messages<wchar_t>::do_get(catalog, int, int, const wstring&) const;
#endif
- // Include host and configuration specific messages virtual functions.
- #include <bits/messages_members.h>
-
template<typename _CharT>
class messages_byname : public messages<_CharT>
{
@@ -1762,15 +1879,7 @@ namespace std
typedef basic_string<_CharT> string_type;
explicit
- 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);
- }
+ messages_byname(const char* __s, size_t __refs = 0);
protected:
virtual
@@ -1778,6 +1887,9 @@ namespace std
{ }
};
+ // Include host and configuration specific messages functions.
+ #include <bits/messages_members.h>
+
// Subclause convenience interfaces, inlines.
// NB: These are inline because, when used in a loop, some compilers
@@ -1846,6 +1958,93 @@ namespace std
inline _CharT
tolower(_CharT __c, const locale& __loc)
{ return use_facet<ctype<_CharT> >(__loc).tolower(__c); }
+
+ /**
+ * @if maint
+ * __locale_cache objects hold information extracted from facets in
+ * a form optimized for parsing and formatting. They are stored in
+ * a locale's facet array and accessed via __use_cache<_Facet>.
+ *
+ * The intent twofold: to avoid the costs of creating a locale
+ * object and to avoid calling the virtual functions in a locale's
+ * facet to look up data.
+ * @endif
+ */
+ class __locale_cache_base
+ {
+ friend class std::locale::_Impl;
+ friend class locale;
+
+ public:
+ virtual
+ ~__locale_cache_base() { }
+
+ };
+
+ // This template doesn't really get used for anything except a
+ // placeholder for specializations
+ template<typename _Facet>
+ class __locale_cache : public __locale_cache_base
+ {
+ // ctor
+ __locale_cache(const locale&) {}
+ };
+
+ template<typename _CharT>
+ class __locale_cache<numpunct<_CharT> > : public __locale_cache_base
+ {
+ // Types:
+ typedef _CharT char_type;
+ typedef char_traits<_CharT> traits_type;
+ typedef basic_string<_CharT> string_type;
+
+ public:
+ // Data Members:
+
+ // The sign used to separate decimal values: for standard US
+ // locales, this would usually be: "." Abstracted from
+ // numpunct::decimal_point().
+ _CharT _M_decimal_point;
+
+ // The sign used to separate groups of digits into smaller
+ // strings that the eye can parse with less difficulty: for
+ // standard US locales, this would usually be: "," Abstracted
+ // from numpunct::thousands_sep().
+ _CharT _M_thousands_sep;
+
+ // However the US's "false" and "true" are translated. From
+ // numpunct::truename() and numpunct::falsename(), respectively.
+ const _CharT* _M_truename;
+ const _CharT* _M_falsename;
+
+ // If we are checking groupings. This should be equivalent to
+ // numpunct::groupings().size() != 0
+ bool _M_use_grouping;
+
+ // If we are using numpunct's groupings, this is the current
+ // grouping string in effect (from numpunct::grouping()).
+ const char* _M_grouping;
+
+ // A list of valid numeric literals: for the standard "C"
+ // locale, this is "-+xX0123456789abcdef0123456789ABCDEF". This
+ // array contains the chars after having been passed through the
+ // current locale's ctype<_CharT>.widen().
+
+ // Copied here from __locale_cache<ctype> to save multiple cache
+ // access in num_put functions.
+ _CharT _M_atoms_out[__num_base::_S_end];
+
+ // ctor
+ __locale_cache(const locale& __loc);
+ __locale_cache(const locale& __loc, bool);
+
+ ~__locale_cache()
+ {
+ delete [] _M_truename;
+ delete [] _M_falsename;
+ delete [] _M_grouping;
+ }
+ };
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index ce6f3d7d5ff..2bbf0a48bd0 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -36,13 +36,13 @@
#pragma GCC system_header
#include <cerrno>
-#include <clocale> // For localeconv
-#include <cstdlib> // For strof, strtold
-#include <cmath> // For ceil
-#include <cctype> // For isspace
-#include <limits> // For numeric_limits
+#include <clocale> // For localeconv
+#include <cstdlib> // For strof, strtold
+#include <cmath> // For ceil
+#include <cctype> // For isspace
+#include <limits> // For numeric_limits
+#include <typeinfo> // For bad_cast.
#include <bits/streambuf_iterator.h>
-#include <typeinfo> // For bad_cast.
namespace std
{
@@ -51,7 +51,15 @@ namespace std
locale::combine(const locale& __other) const
{
_Impl* __tmp = new _Impl(*_M_impl, 1);
- __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
+ try
+ {
+ __tmp->_M_replace_facet(__other._M_impl, &_Facet::id);
+ }
+ catch(...)
+ {
+ __tmp->_M_remove_reference();
+ __throw_exception_again;
+ }
return locale(__tmp);
}
@@ -86,6 +94,23 @@ namespace std
return (__i < __loc._M_impl->_M_facets_size && __facets[__i]);
}
+ // Routine to access a cache for the locale. If the cache didn't
+ // exist before, it gets constructed on the fly.
+ template<typename _Facet>
+ inline const __locale_cache<_Facet>&
+ __use_cache(const locale& __loc)
+ {
+ size_t __i = _Facet::id._M_id();
+ if (__builtin_expect(__i >= __loc._M_impl->_M_facets_size,false))
+ __throw_bad_cast();
+ __locale_cache_base* __cache = __loc._M_impl->_M_get_cache(__i);
+ if (__builtin_expect(!__cache, false))
+ {
+ __cache = new __locale_cache<_Facet>(__loc);
+ __loc._M_impl->_M_install_cache(__cache, __i);
+ }
+ return static_cast<const __locale_cache<_Facet>&>(*__cache);
+ }
// Stage 1: Determine a conversion specifier.
template<typename _CharT, typename _InIter>
@@ -113,7 +138,7 @@ namespace std
}
// Next, strip leading zeros.
- const char_type __zero = __ctype.widen(_S_atoms[_M_zero]);
+ const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]);
bool __found_zero = false;
while (__traits_type::eq(__c, __zero) && __beg != __end)
{
@@ -122,14 +147,14 @@ namespace std
}
if (__found_zero)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
}
// Only need acceptable digits for floating point numbers.
const size_t __len = _M_E - _M_zero + 1;
char_type __watoms[__len];
- __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);
+ __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms);
bool __found_dec = false;
bool __found_sci = false;
const char_type __dec = __np.decimal_point();
@@ -150,7 +175,7 @@ namespace std
{
// Try first for acceptable digit; record it if found.
++__pos;
- __xtrc += _S_atoms[__p - __watoms];
+ __xtrc += _S_atoms_in[__p - __watoms];
++__sep_pos;
__c = *(++__beg);
}
@@ -261,7 +286,7 @@ namespace std
}
// Next, strip leading zeros and check required digits for base formats.
- const char_type __zero = __ctype.widen(_S_atoms[_M_zero]);
+ const char_type __zero = __ctype.widen(_S_atoms_in[_M_zero]);
const char_type __x = __ctype.widen('x');
const char_type __X = __ctype.widen('X');
if (__base == 10)
@@ -274,7 +299,7 @@ namespace std
}
if (__found_zero)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
if (__basefield == 0)
{
@@ -296,7 +321,7 @@ namespace std
{
if (__traits_type::eq(__c, __zero) && __beg != __end)
{
- __xtrc += _S_atoms[_M_zero];
+ __xtrc += _S_atoms_in[_M_zero];
++__pos;
__c = *(++__beg);
if ((__traits_type::eq(__c, __x) || __traits_type::eq(__c, __X))
@@ -319,7 +344,7 @@ namespace std
// Extract.
char_type __watoms[_M_size];
- __ctype.widen(_S_atoms, _S_atoms + __len, __watoms);
+ __ctype.widen(_S_atoms_in, _S_atoms_in + __len, __watoms);
string __found_grouping;
const string __grouping = __np.grouping();
bool __check_grouping = __grouping.size();
@@ -333,7 +358,7 @@ namespace std
if (__p && !__traits_type::eq(__c, char_type()))
{
// Try first for acceptable digit; record it if found.
- __xtrc += _S_atoms[__p - __watoms];
+ __xtrc += _S_atoms_in[__p - __watoms];
++__pos;
++__sep_pos;
__c = *(++__beg);
@@ -606,14 +631,251 @@ namespace std
return __beg;
}
- // The following code uses snprintf (or sprintf(), when _GLIBCPP_USE_C99
- // is not defined) to convert floating point values for insertion into a
- // stream. An optimization would be to replace them with code that works
- // directly on a wide buffer and then use __pad to do the padding.
- // It would be good to replace them anyway to gain back the efficiency
- // that C++ provides by knowing up front the type of the values to insert.
- // Also, sprintf is dangerous since may lead to accidental buffer overruns.
- // This implementation follows the C++ standard fairly directly as
+ // For use by integer and floating-point types after they have been
+ // converted into a char_type string.
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_pad(_CharT __fill, streamsize __w, ios_base& __io,
+ _CharT* __new, const _CharT* __cs, int& __len) const
+ {
+ // [22.2.2.2.2] Stage 3.
+ // If necessary, pad.
+ __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, __cs,
+ __w, __len, true);
+ __len = static_cast<int>(__w);
+ }
+
+ // Forwarding functions to peel signed from unsigned integer types.
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ {
+ unsigned long __ul = static_cast<unsigned long>(__v);
+ bool __neg = false;
+ if (__v < 0)
+ {
+ __ul = -__ul;
+ __neg = true;
+ }
+ return __int_to_char(__out, __size, __ul, __lit, __flags, __neg);
+ }
+
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, unsigned long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ { return __int_to_char(__out, __size, __v, __lit, __flags, false); }
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, long long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ {
+ unsigned long long __ull = static_cast<unsigned long long>(__v);
+ bool __neg = false;
+ if (__v < 0)
+ {
+ __ull = -__ull;
+ __neg = true;
+ }
+ return __int_to_char(__out, __size, __ull, __lit, __flags, __neg);
+ }
+
+ template<typename _CharT>
+ inline int
+ __int_to_char(_CharT* __out, const int __size, unsigned long long __v,
+ const _CharT* __lit, ios_base::fmtflags __flags)
+ { return __int_to_char(__out, __size, __v, __lit, __flags, false); }
+#endif
+
+ template<typename _CharT, typename _ValueT>
+ int
+ __int_to_char(_CharT* __out, const int __size, _ValueT __v,
+ const _CharT* __lit, ios_base::fmtflags __flags, bool __neg)
+ {
+ // Don't write base if already 0.
+ const bool __showbase = (__flags & ios_base::showbase) && __v;
+ const ios_base::fmtflags __basefield = __flags & ios_base::basefield;
+ _CharT* __buf = __out + __size - 1;
+ _CharT* __bufend = __out + __size;
+
+ if (__builtin_expect(__basefield != ios_base::oct &&
+ __basefield != ios_base::hex, true))
+ {
+ // Decimal.
+ do
+ {
+ *__buf-- = __lit[(__v % 10) + __num_base::_S_digits];
+ __v /= 10;
+ }
+ while (__v != 0);
+ if (__neg)
+ *__buf-- = __lit[__num_base::_S_minus];
+ else if (__flags & ios_base::showpos)
+ *__buf-- = __lit[__num_base::_S_plus];
+ }
+ else if (__basefield == ios_base::oct)
+ {
+ // Octal.
+ do
+ {
+ *__buf-- = __lit[(__v & 0x7) + __num_base::_S_digits];
+ __v >>= 3;
+ }
+ while (__v != 0);
+ if (__showbase)
+ *__buf-- = __lit[__num_base::_S_digits];
+ }
+ else
+ {
+ // Hex.
+ const bool __uppercase = __flags & ios_base::uppercase;
+ int __case_offset = __uppercase
+ ? __num_base::_S_udigits : __num_base::_S_digits;
+ do
+ {
+ *__buf-- = __lit[(__v & 0xf) + __case_offset];
+ __v >>= 4;
+ }
+ while (__v != 0);
+ if (__showbase)
+ {
+ // 'x' or 'X'
+ *__buf-- = __lit[__num_base::_S_x + __uppercase];
+ // '0'
+ *__buf-- = __lit[__num_base::_S_digits];
+ }
+ }
+ int __ret = __bufend - __buf - 1;
+ return __ret;
+ }
+
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_group_int(const string& __grouping, _CharT __sep, ios_base& __io,
+ _CharT* __new, _CharT* __cs, int& __len) const
+ {
+ // 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;
+ const ios_base::fmtflags __basefield = __io.flags()
+ & ios_base::basefield;
+ if ((__io.flags() & ios_base::showbase) && __len > 1)
+ if (__basefield == ios_base::oct)
+ {
+ __off = 1;
+ *__new = *__cs;
+ }
+ else if (__basefield == ios_base::hex)
+ {
+ __off = 2;
+ *__new = *__cs;
+ *(__new + 1) = *(__cs + 1);
+ }
+ _CharT* __p;
+ __p = __add_grouping(__new + __off, __sep,
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __cs + __off, __cs + __len);
+ __len = __p - __new;
+ }
+
+ template<typename _CharT, typename _OutIter>
+ template<typename _ValueT>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill,
+ _ValueT __v) const
+ {
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale& __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
+ const _CharT* __lit = __lc._M_atoms_out;
+
+ // Long enough to hold hex, dec, and octal representations.
+ int __ilen = 4 * sizeof(_ValueT);
+ _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __ilen));
+ // [22.2.2.2.2] Stage 1, numeric conversion to character.
+ // Result is returned right-justified in the buffer.
+ int __len;
+ __len = __int_to_char(&__cs[0], __ilen, __v, __lit, __io.flags());
+ __cs = __cs + __ilen - __len;
+
+ // Add grouping, if necessary.
+ _CharT* __cs2;
+ if (__lc._M_use_grouping)
+ {
+ // Grouping can add (almost) as many separators as the
+ // number of digits, but no more.
+ __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ _M_group_int(__lc._M_grouping, __lc._M_thousands_sep, __io,
+ __cs2, __cs, __len);
+ __cs = __cs2;
+ }
+
+ // Pad.
+ _CharT* __cs3;
+ streamsize __w = __io.width();
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ _M_pad(__fill, __w, __io, __cs3, __cs, __len);
+ __cs = __cs3;
+ }
+ __io.width(0);
+
+ // [22.2.2.2.2] Stage 4.
+ // Write resulting, fully-formatted string to output iterator.
+ return __write(__s, __cs, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ void
+ num_put<_CharT, _OutIter>::
+ _M_group_float(const string& __grouping, _CharT __sep, const _CharT* __p,
+ _CharT* __new, _CharT* __cs, int& __len) const
+ {
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+ //282. What types does numpunct grouping refer to?
+ // Add grouping, if necessary.
+ _CharT* __p2;
+ int __declen = __p ? __p - __cs : __len;
+ __p2 = __add_grouping(__new, __sep,
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __cs, __cs + __declen);
+
+ // Tack on decimal part.
+ int __newlen = __p2 - __new;
+ if (__p)
+ {
+ char_traits<_CharT>::copy(__p2, __p, __len - __declen);
+ __newlen += __len - __declen;
+ }
+ __len = __newlen;
+#endif
+ }
+
+ // The following code uses snprintf (or sprintf(), when
+ // _GLIBCPP_USE_C99 is not defined) to convert floating point values
+ // for insertion into a stream. An optimization would be to replace
+ // them with code that works directly on a wide buffer and then use
+ // __pad to do the padding. It would be good to replace them anyway
+ // to gain back the efficiency that C++ provides by knowing up front
+ // the type of the values to insert. Also, sprintf is dangerous
+ // since may lead to accidental buffer overruns. This
+ // implementation follows the C++ standard fairly directly as
// outlined in 22.2.2.2 [lib.locale.num.put]
template<typename _CharT, typename _OutIter>
template<typename _ValueT>
@@ -622,238 +884,102 @@ namespace std
_M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
_ValueT __v) const
{
- // Note: digits10 is rounded down. We need to add 1 to ensure
- // we get the full available precision.
- const int __max_digits = numeric_limits<_ValueT>::digits10 + 1;
+ // Use default precision if out of range.
streamsize __prec = __io.precision();
+ if (__prec < static_cast<streamsize>(0))
+ __prec = static_cast<streamsize>(6);
- if (__prec > static_cast<streamsize>(__max_digits))
- __prec = static_cast<streamsize>(__max_digits);
+ const int __max_digits = numeric_limits<_ValueT>::digits10;
- // Long enough for the max format spec.
- char __fbuf[16];
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
// [22.2.2.2.2] Stage 1, numeric conversion to character.
int __len;
+ // Long enough for the max format spec.
+ char __fbuf[16];
+
#ifdef _GLIBCPP_USE_C99
- // First try a buffer perhaps big enough (for sure sufficient for
- // non-ios_base::fixed outputs)
+ // First try a buffer perhaps big enough (most probably sufficient
+ // for non-ios_base::fixed outputs)
int __cs_size = __max_digits * 3;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- const bool __fp = _S_format_float(__io, __fbuf, __mod, __prec);
- if (__fp)
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v, _S_c_locale);
+ _S_format_float(__io, __fbuf, __mod, __prec);
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale, __prec);
// If the buffer was not large enough, try again with the correct size.
if (__len >= __cs_size)
{
__cs_size = __len + 1;
__cs = static_cast<char*>(__builtin_alloca(__cs_size));
- if (__fp)
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale, __prec);
}
#else
// Consider the possibility of long ios_base::fixed outputs
const bool __fixed = __io.flags() & ios_base::fixed;
const int __max_exp = numeric_limits<_ValueT>::max_exponent10;
- // ios_base::fixed outputs may need up to __max_exp+1 chars
- // for the integer part + up to __max_digits chars for the
- // fractional part + 3 chars for sign, decimal point, '\0'. On
- // the other hand, for non-fixed outputs __max_digits*3 chars
- // are largely sufficient.
- const int __cs_size = __fixed ? __max_exp + __max_digits + 4
- : __max_digits * 3;
- char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
-
- if (_S_format_float(__io, __fbuf, __mod, __prec))
- __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale, __prec);
- else
- __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
-#endif
- return _M_widen_float(__s, __io, __fill, __cs, __len);
- }
-
- template<typename _CharT, typename _OutIter>
- template<typename _ValueT>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
- char __modl, _ValueT __v) const
- {
- // [22.2.2.2.2] Stage 1, numeric conversion to character.
- // Long enough for the max format spec.
- char __fbuf[16];
- _S_format_int(__io, __fbuf, __mod, __modl);
-#ifdef _GLIBCPP_USE_C99
- // First try a buffer perhaps big enough.
- int __cs_size = 64;
+ // ios_base::fixed outputs may need up to __max_exp + 1 chars
+ // for the integer part + __prec chars for the fractional part
+ // + 3 chars for sign, decimal point, '\0'. On the other hand,
+ // for non-fixed outputs __max_digits * 2 chars + __prec are
+ // largely sufficient.
+ const int __cs_size = __fixed ? __max_exp + __prec + 4
+ : __max_digits * 2 + __prec;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- int __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
- // If the buffer was not large enough, try again with the correct size.
- if (__len >= __cs_size)
- {
- __cs_size = __len + 1;
- __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
- _S_c_locale);
- }
-#else
- // Leave room for "+/-," "0x," and commas. This size is
- // arbitrary, but should be largely sufficient.
- char __cs[128];
- int __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
+
+ _S_format_float(__io, __fbuf, __mod, __prec);
+ __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale, __prec);
#endif
- return _M_widen_int(__s, __io, __fill, __cs, __len);
- }
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
- int __len) const
- {
- typedef char_traits<_CharT> __traits_type;
// [22.2.2.2.2] Stage 2, convert to char_type, using correct
// numpunct.decimal_point() values for '.' and adding grouping.
- const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+
_CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
* __len));
- // Grouping can add (almost) as many separators as the number of
- // digits, but no more.
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len * 2));
__ctype.widen(__cs, __cs + __len, __ws);
// Replace decimal point.
+ const _CharT __cdec = __ctype.widen('.');
+ const _CharT __dec = __lc._M_decimal_point;
const _CharT* __p;
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
- if (__p = __traits_type::find(__ws, __len, __ctype.widen('.')))
- __ws[__p - __ws] = __np.decimal_point();
-
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-//282. What types does numpunct grouping refer to?
- // Add grouping, if necessary.
- const string __grouping = __np.grouping();
- ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
- if (__grouping.size())
- {
- _CharT* __p2;
- int __declen = __p ? __p - __ws : __len;
- __p2 = __add_grouping(__ws2, __np.thousands_sep(),
- __grouping.c_str(),
- __grouping.c_str() + __grouping.size(),
- __ws, __ws + __declen);
- int __newlen = __p2 - __ws2;
-
- // Tack on decimal part.
- if (__p)
- {
- __traits_type::copy(__p2, __p, __len - __declen);
- __newlen += __len - __declen;
- }
-
- // Switch strings, establish correct new length.
- __ws = __ws2;
- __len = __newlen;
- }
-#endif
- return _M_insert(__s, __io, __fill, __ws, __len);
- }
-
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
- int __len) const
- {
- // [22.2.2.2.2] Stage 2, convert to char_type, using correct
- // numpunct.decimal_point() values for '.' and adding grouping.
- const locale __loc = __io.getloc();
- const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
- _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len));
- // Grouping can add (almost) as many separators as the number of
- // digits, but no more.
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __len * 2));
- __ctype.widen(__cs, __cs + __len, __ws);
+ if (__p = char_traits<_CharT>::find(__ws, __len, __cdec))
+ __ws[__p - __ws] = __dec;
// Add grouping, if necessary.
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
- const string __grouping = __np.grouping();
- const ios_base::fmtflags __basefield = __io.flags() & ios_base::basefield;
- if (__grouping.size())
+ _CharT* __ws2;
+ if (__lc._M_use_grouping)
{
- // 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;
- *__ws2 = *__ws;
- }
- else if (__basefield == ios_base::hex)
- {
- __off = 2;
- *__ws2 = *__ws;
- *(__ws2 + 1) = *(__ws + 1);
- }
- _CharT* __p;
- __p = __add_grouping(__ws2 + __off, __np.thousands_sep(),
- __grouping.c_str(),
- __grouping.c_str() + __grouping.size(),
- __ws + __off, __ws + __len);
- __len = __p - __ws2;
- // Switch strings.
- __ws = __ws2;
+ // Grouping can add (almost) as many separators as the
+ // number of digits, but no more.
+ __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ _M_group_float(__lc._M_grouping, __lc._M_thousands_sep, __p,
+ __ws2, __ws, __len);
+ __ws = __ws2;
}
- return _M_insert(__s, __io, __fill, __ws, __len);
- }
- // For use by integer and floating-point types after they have been
- // converted into a char_type string.
- template<typename _CharT, typename _OutIter>
- _OutIter
- num_put<_CharT, _OutIter>::
- _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* __ws,
- int __len) const
- {
- typedef char_traits<_CharT> __traits_type;
- // [22.2.2.2.2] Stage 3.
+ // Pad.
+ _CharT* __ws3;
streamsize __w = __io.width();
- _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
- * __w));
if (__w > static_cast<streamsize>(__len))
{
- __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws,
- __w, __len, true);
- __len = static_cast<int>(__w);
- // Switch strings.
- __ws = __ws2;
+ __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
+ _M_pad(__fill, __w, __io, __ws3, __ws, __len);
+ __ws = __ws3;
}
__io.width(0);
-
+
// [22.2.2.2.2] Stage 4.
// Write resulting, fully-formatted string to output iterator.
- for (int __j = 0; __j < __len; ++__j, ++__s)
- *__s = __ws[__j];
- return __s;
- }
+ return __write(__s, __ws, __len);
+ }
template<typename _CharT, typename _OutIter>
_OutIter
@@ -864,19 +990,35 @@ namespace std
if ((__flags & ios_base::boolalpha) == 0)
{
unsigned long __uv = __v;
- __s = _M_convert_int(__s, __io, __fill, 'u', char(), __uv);
+ __s = _M_convert_int(__s, __io, __fill, __uv);
}
else
{
- typedef basic_string<_CharT> __string_type;
- locale __loc = __io.getloc();
- const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ typedef numpunct<_CharT> __facet_type;
+ typedef __locale_cache<numpunct<_CharT> > __cache_type;
+ const locale __loc = __io._M_getloc();
+ const __cache_type& __lc = __use_cache<__facet_type>(__loc);
+
+ typedef basic_string<_CharT> __string_type;
__string_type __name;
if (__v)
- __name = __np.truename();
+ __name = __lc._M_truename;
else
- __name = __np.falsename();
- __s = _M_insert(__s, __io, __fill, __name.c_str(), __name.size());
+ __name = __lc._M_falsename;
+
+ const _CharT* __cs = __name.c_str();
+ int __len = __name.size();
+ _CharT* __cs3;
+ streamsize __w = __io.width();
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ _M_pad(__fill, __w, __io, __cs3, __cs, __len);
+ __cs = __cs3;
+ }
+ __io.width(0);
+ __s = __write(__s, __cs, __len);
}
return __s;
}
@@ -885,28 +1027,28 @@ namespace std
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const
- { return _M_convert_int(__s, __io, __fill, 'd', char(), __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill,
unsigned long __v) const
- { return _M_convert_int(__s, __io, __fill, 'u', char(), __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
#ifdef _GLIBCPP_USE_LONG_LONG
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __b, char_type __fill, long long __v) const
- { return _M_convert_int(__s, __b, __fill, 'd', 'l', __v); }
+ { return _M_convert_int(__s, __b, __fill, __v); }
template<typename _CharT, typename _OutIter>
_OutIter
num_put<_CharT, _OutIter>::
do_put(iter_type __s, ios_base& __io, char_type __fill,
unsigned long long __v) const
- { return _M_convert_int(__s, __io, __fill, 'u', 'l', __v); }
+ { return _M_convert_int(__s, __io, __fill, __v); }
#endif
template<typename _CharT, typename _OutIter>
@@ -934,7 +1076,7 @@ namespace std
__io.flags(__flags & __fmt | (ios_base::hex | ios_base::showbase));
try
{
- __s = _M_convert_int(__s, __io, __fill, 'u', char(),
+ __s = _M_convert_int(__s, __io, __fill,
reinterpret_cast<unsigned long>(__v));
__io.flags(__flags);
}
@@ -956,12 +1098,12 @@ namespace std
string_type __str;
__beg = this->do_get(__beg, __end, __intl, __io, __err, __str);
- const int __n = numeric_limits<long double>::digits10;
- char* __cs = static_cast<char*>(__builtin_alloca(__n));
+ const int __cs_size = __str.size() + 1;
+ char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
const _CharT* __wcs = __str.c_str();
- __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);
+ __ctype.narrow(__wcs, __wcs + __cs_size, char(), __cs);
__convert_to_v(__cs, __units, __err, _S_c_locale);
return __beg;
}
@@ -1135,7 +1277,7 @@ namespace std
}
// Strip leading zeros.
- while (__temp_units[0] == __ctype.widen('0'))
+ while (__temp_units.size() > 1 && __temp_units[0] == __ctype.widen('0'))
__temp_units.erase(__temp_units.begin());
if (__sign.size() && __sign == __neg_sign)
@@ -1174,26 +1316,28 @@ namespace std
// First try a buffer perhaps big enough.
int __cs_size = 64;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- int __len = __convert_from_v(__cs, __cs_size, "%.01Lf", __units,
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 328. Bad sprintf format modifier in money_put<>::do_put()
+ int __len = __convert_from_v(__cs, __cs_size, "%.0Lf", __units,
_S_c_locale);
// If the buffer was not large enough, try again with the correct size.
if (__len >= __cs_size)
{
__cs_size = __len + 1;
__cs = static_cast<char*>(__builtin_alloca(__cs_size));
- __len = __convert_from_v(__cs, __cs_size, "%.01Lf", __units,
+ __len = __convert_from_v(__cs, __cs_size, "%.0Lf", __units,
_S_c_locale);
}
#else
- // max_exponent10 + 1 for the integer part, + 4 for sign, decimal point,
- // decimal digit, '\0'.
- const int __cs_size = numeric_limits<long double>::max_exponent10 + 5;
+ // max_exponent10 + 1 for the integer part, + 2 for sign and '\0'.
+ const int __cs_size = numeric_limits<long double>::max_exponent10 + 3;
char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
- int __len = __convert_from_v(__cs, 0, "%.01Lf", __units, _S_c_locale);
+ int __len = __convert_from_v(__cs, 0, "%.0Lf", __units, _S_c_locale);
#endif
- _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __cs_size));
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __cs_size));
__ctype.widen(__cs, __cs + __len, __ws);
- string_type __digits(__ws);
+ const string_type __digits(__ws, __len);
return this->do_put(__s, __intl, __io, __fill, __digits);
}
@@ -1285,7 +1429,7 @@ namespace std
const char* __gend = __gbeg + __grouping.size();
const int __n = (__end - __beg) * 2;
_CharT* __ws2 =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
+ static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __n));
_CharT* __ws_end = __add_grouping(__ws2, __sep, __gbeg,
__gend, __beg, __end);
__value.insert(0, __ws2, __ws_end - __ws2);
@@ -1354,8 +1498,7 @@ namespace std
}
// Write resulting, fully-formatted string to output iterator.
- for (size_type __j = 0; __j < __len; ++__j, ++__s)
- *__s = __res[__j];
+ __s = __write(__s, __res.c_str(), __len);
}
__io.width(0);
return __s;
@@ -1611,7 +1754,8 @@ namespace std
ios_base::iostate& __err) const
{
typedef char_traits<_CharT> __traits_type;
- int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int) * __indexlen));
+ int* __matches = static_cast<int*>(__builtin_alloca(sizeof(int)
+ * __indexlen));
size_t __nmatches = 0;
size_t __pos = 0;
bool __testvalid = true;
@@ -1623,12 +1767,12 @@ namespace std
if (__c == __names[__i1][0])
__matches[__nmatches++] = __i1;
- while(__nmatches > 1)
+ while (__nmatches > 1)
{
// Find smallest matching string.
size_t __minlen = 10;
for (size_t __i2 = 0; __i2 < __nmatches; ++__i2)
- __minlen = min(__minlen,
+ __minlen = min(__minlen,
__traits_type::length(__names[__matches[__i2]]));
if (__pos < __minlen && __beg != __end)
@@ -1848,8 +1992,7 @@ namespace std
}
else
__format = __c;
- __s = this->do_put(__s, __io, char_type(), __tm, __format,
- __mod);
+ __s = this->do_put(__s, __io, _CharT(), __tm, __format, __mod);
}
else
{
@@ -1873,8 +2016,7 @@ namespace std
// NB: This size is arbitrary. Should this be a data member,
// initialized at construction?
const size_t __maxlen = 64;
- char_type* __res =
- static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
+ char_type* __res = static_cast<char_type*>(__builtin_alloca(sizeof(char_type) * __maxlen));
// NB: In IEE 1003.1-200x, and perhaps other locale models, it
// is possible that the format character will be longer than one
@@ -1898,10 +2040,7 @@ namespace std
__tp._M_put(__res, __maxlen, __fmt, __tm);
// Write resulting, fully-formatted string to output iterator.
- size_t __len = char_traits<char_type>::length(__res);
- for (size_t __i = 0; __i < __len; ++__i, ++__s)
- *__s = __res[__i];
- return __s;
+ return __write(__s, __res, char_traits<char_type>::length(__res));
}
@@ -1923,9 +2062,37 @@ namespace std
do_compare(const _CharT* __lo1, const _CharT* __hi1,
const _CharT* __lo2, const _CharT* __hi2) const
{
+ // strcoll assumes zero-terminated strings so we make a copy
+ // and then put a zero at the end.
const string_type __one(__lo1, __hi1);
const string_type __two(__lo2, __hi2);
- return _M_compare(__one.c_str(), __two.c_str());
+
+ const _CharT* __p = __one.c_str();
+ const _CharT* __pend = __one.c_str() + __one.length();
+ const _CharT* __q = __two.c_str();
+ const _CharT* __qend = __two.c_str() + __two.length();
+
+ // strcoll stops when it sees a nul character so we break
+ // the strings into zero-terminated substrings and pass those
+ // to strcoll.
+ for (;;)
+ {
+ int __res = _M_compare(__p, __q);
+ if (__res)
+ return __res;
+
+ __p += char_traits<_CharT>::length(__p);
+ __q += char_traits<_CharT>::length(__q);
+ if (__p == __pend && __q == __qend)
+ return 0;
+ else if (__p == __pend)
+ return -1;
+ else if (__q == __qend)
+ return 1;
+
+ __p++;
+ __q++;
+ }
}
template<typename _CharT>
@@ -1933,19 +2100,43 @@ namespace std
collate<_CharT>::
do_transform(const _CharT* __lo, const _CharT* __hi) const
{
+ // strxfrm assumes zero-terminated strings so we make a copy
+ string_type __str(__lo, __hi);
+
+ const _CharT* __p = __str.c_str();
+ const _CharT* __pend = __str.c_str() + __str.length();
+
size_t __len = (__hi - __lo) * 2;
- // First try a buffer perhaps big enough.
- _CharT* __c =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));
- size_t __res = _M_transform(__c, __lo, __len);
- // If the buffer was not large enough, try again with the correct size.
- if (__res >= __len)
+
+ string_type __ret;
+
+ // strxfrm stops when it sees a nul character so we break
+ // the string into zero-terminated substrings and pass those
+ // to strxfrm.
+ for (;;)
{
- __c =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__res + 1)));
- _M_transform(__c, __lo, __res + 1);
+ // First try a buffer perhaps big enough.
+ _CharT* __c =
+ static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __len));
+ size_t __res = _M_transform(__c, __p, __len);
+ // If the buffer was not large enough, try again with the
+ // correct size.
+ if (__res >= __len)
+ {
+ __len = __res + 1;
+ __c = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ __res = _M_transform(__c, __p, __res + 1);
+ }
+
+ __ret.append(__c, __res);
+ __p += char_traits<_CharT>::length(__p);
+ if (__p == __pend)
+ return __ret;
+
+ __p++;
+ __ret.push_back(_CharT());
}
- return string_type(__c);
}
template<typename _CharT>
@@ -1960,22 +2151,6 @@ namespace std
return static_cast<long>(__val);
}
- // Convert string to numeric value of type _Tv and store results.
- // NB: This is specialized for all required types, there is no
- // generic definition.
- template<typename _Tv>
- void
- __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err,
- const __c_locale& __cloc, int __base = 10);
-
- // 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<typename _Tv>
- 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
// __newlen > __oldlen
@@ -1988,129 +2163,84 @@ namespace std
// NB: Of the two parameters, _CharT can be deduced from the
// function arguments. The other (_Traits) has to be explicitly specified.
template<typename _CharT, typename _Traits>
- struct __pad
- {
- static void
- _S_pad(ios_base& __io, _CharT __fill, _CharT* __news,
- const _CharT* __olds, const streamsize __newlen,
- const streamsize __oldlen, const bool __num);
- };
-
- template<typename _CharT, typename _Traits>
void
__pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill,
_CharT* __news, const _CharT* __olds,
const streamsize __newlen,
const streamsize __oldlen, const bool __num)
{
- size_t __plen = static_cast<size_t>(__newlen - __oldlen);
- _CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __plen));
- _Traits::assign(__pads, __plen, __fill);
-
- _CharT* __beg;
- _CharT* __end;
- size_t __mod = 0;
- size_t __beglen; //either __plen or __oldlen
- ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
+ const size_t __plen = static_cast<size_t>(__newlen - __oldlen);
+ const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield;
+ // Padding last.
if (__adjust == ios_base::left)
{
- // Padding last.
- __beg = const_cast<_CharT*>(__olds);
- __beglen = __oldlen;
- __end = __pads;
+ _Traits::copy(__news, const_cast<_CharT*>(__olds), __oldlen);
+ _Traits::assign(__news + __oldlen, __plen, __fill);
+ return;
}
- else if (__adjust == ios_base::internal && __num)
+
+ size_t __mod = 0;
+ if (__adjust == ios_base::internal && __num)
{
// Pad after the sign, if there is one.
// Pad after 0[xX], if there is one.
// Who came up with these rules, anyway? Jeeze.
- locale __loc = __io.getloc();
+ const locale& __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
const _CharT __minus = __ctype.widen('-');
const _CharT __plus = __ctype.widen('+');
- bool __testsign = _Traits::eq(__olds[0], __minus)
- || _Traits::eq(__olds[0], __plus);
-
- bool __testhex = _Traits::eq(__ctype.widen('0'), __olds[0])
- && (_Traits::eq(__ctype.widen('x'), __olds[1])
- || _Traits::eq(__ctype.widen('X'), __olds[1]));
+ const bool __testsign = _Traits::eq(__olds[0], __minus)
+ || _Traits::eq(__olds[0], __plus);
+
+ const bool __testhex = (_Traits::eq(__ctype.widen('0'), __olds[0])
+ && __oldlen > 1
+ && (_Traits::eq(__ctype.widen('x'), __olds[1])
+ || _Traits::eq(__ctype.widen('X'),
+ __olds[1])));
if (__testhex)
{
__news[0] = __olds[0];
__news[1] = __olds[1];
- __mod += 2;
+ __mod = 2;
__news += 2;
- __beg = __pads;
- __beglen = __plen;
- __end = const_cast<_CharT*>(__olds + __mod);
}
else if (__testsign)
{
- _Traits::eq((__news[0] = __olds[0]), __plus) ? __plus : __minus;
- ++__mod;
+ __news[0] = __olds[0];
+ __mod = 1;
++__news;
- __beg = __pads;
- __beglen = __plen;
- __end = const_cast<_CharT*>(__olds + __mod);
- }
- else
- {
- // Padding first.
- __beg = __pads;
- __beglen = __plen;
- __end = const_cast<_CharT*>(__olds);
}
+ // else Padding first.
}
- else
- {
- // Padding first.
- __beg = __pads;
- __beglen = __plen;
- __end = const_cast<_CharT*>(__olds);
- }
- _Traits::copy(__news, __beg, __beglen);
- _Traits::copy(__news + __beglen, __end,
- __newlen - __beglen - __mod);
+ _Traits::assign(__news, __plen, __fill);
+ _Traits::copy(__news + __plen, const_cast<_CharT*>(__olds + __mod),
+ __oldlen - __mod);
}
- // Used by both numeric and monetary facets.
- // Check to make sure that the __grouping_tmp string constructed in
- // money_get or num_get matches the canonical grouping for a given
- // locale.
- // __grouping_tmp is parsed L to R
- // 1,222,444 == __grouping_tmp of "/1/3/3"
- // __grouping is parsed R to L
- // 1,222,444 == __grouping of "/3" == "/3/3/3"
template<typename _CharT>
bool
__verify_grouping(const basic_string<_CharT>& __grouping,
basic_string<_CharT>& __grouping_tmp)
- {
- int __i = 0;
- int __j = 0;
- const int __len = __grouping.size();
- const int __n = __grouping_tmp.size();
+ {
+ const size_t __n = __grouping_tmp.size() - 1;
+ const size_t __min = std::min(__n, __grouping.size() - 1);
+ size_t __i = __n;
bool __test = true;
-
+
// Parsed number groupings have to match the
// numpunct::grouping string exactly, starting at the
// right-most point of the parsed sequence of elements ...
- while (__test && __i < __n - 1)
- for (__j = 0; __test && __j < __len && __i < __n - 1; ++__j,++__i)
- __test &= __grouping[__j] == __grouping_tmp[__n - __i - 1];
+ for (size_t __j = 0; __j < __min && __test; --__i, ++__j)
+ __test = __grouping_tmp[__i] == __grouping[__j];
+ for (; __i && __test; --__i)
+ __test = __grouping_tmp[__i] == __grouping[__min];
// ... but the last parsed grouping can be <= numpunct
// grouping.
- __j == __len ? __j = 0 : __j;
- __test &= __grouping[__j] >= __grouping_tmp[__n - __i - 1];
+ __test &= __grouping_tmp[0] <= __grouping[__min];
return __test;
}
- // Used by both numeric and monetary facets.
- // Inserts "group separator" characters into an array of characters.
- // It's recursive, one iteration per group. It moves the characters
- // in the buffer this way: "xxxx12345" -> "12,345xxx". Call this
- // only with __gbeg != __gend.
template<typename _CharT>
_CharT*
__add_grouping(_CharT* __s, _CharT __sep,
@@ -2131,9 +2261,249 @@ namespace std
return __s;
}
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template<typename _CharT, typename _OutIter>
+ template<typename _ValueT>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_convert_int(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
+ char __modl, _ValueT __v) const
+ {
+ // [22.2.2.2.2] Stage 1, numeric conversion to character.
+
+ // Long enough for the max format spec.
+ char __fbuf[16];
+ _S_format_int(__io, __fbuf, __mod, __modl);
+#ifdef _GLIBCPP_USE_C99
+ // First try a buffer perhaps big enough.
+ int __cs_size = 64;
+ char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+ int __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale);
+ // If the buffer was not large enough, try again with the correct size.
+ if (__len >= __cs_size)
+ {
+ __cs_size = __len + 1;
+ __cs = static_cast<char*>(__builtin_alloca(__cs_size));
+ __len = __convert_from_v(__cs, __cs_size, __fbuf, __v,
+ _S_c_locale);
+ }
+#else
+ // Leave room for "+/-," "0x," and commas. This size is
+ // arbitrary, but should be largely sufficient.
+ char __cs[128];
+ int __len = __convert_from_v(__cs, 0, __fbuf, __v, _S_c_locale);
+#endif
+ return _M_widen_int(__s, __io, __fill, __cs, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_widen_float(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
+ int __len) const
+ {
+ typedef char_traits<_CharT> __traits_type;
+ // [22.2.2.2.2] Stage 2, convert to char_type, using correct
+ // numpunct.decimal_point() values for '.' and adding grouping.
+ const locale __loc = __io.getloc();
+ const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ // Grouping can add (almost) as many separators as the number of
+ // digits, but no more.
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ __ctype.widen(__cs, __cs + __len, __ws);
+
+ // Replace decimal point.
+ const _CharT* __p;
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ if (__p = __traits_type::find(__ws, __len, __ctype.widen('.')))
+ __ws[__p - __ws] = __np.decimal_point();
+
+#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
+//282. What types does numpunct grouping refer to?
+ // Add grouping, if necessary.
+ const string __grouping = __np.grouping();
+ if (__grouping.size())
+ {
+ _CharT* __p2;
+ int __declen = __p ? __p - __ws : __len;
+ __p2 = __add_grouping(__ws2, __np.thousands_sep(),
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __ws, __ws + __declen);
+ int __newlen = __p2 - __ws2;
+
+ // Tack on decimal part.
+ if (__p)
+ {
+ __traits_type::copy(__p2, __p, __len - __declen);
+ __newlen += __len - __declen;
+ }
+
+ // Switch strings, establish correct new length.
+ __ws = __ws2;
+ __len = __newlen;
+ }
+#endif
+ return _M_insert(__s, __io, __fill, __ws, __len);
+ }
+
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_widen_int(_OutIter __s, ios_base& __io, _CharT __fill, char* __cs,
+ int __len) const
+ {
+ // [22.2.2.2.2] Stage 2, convert to char_type, using correct
+ // numpunct.decimal_point() values for '.' and adding grouping.
+ const locale __loc = __io.getloc();
+ const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
+ _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len));
+ // Grouping can add (almost) as many separators as the number of
+ // digits, but no more.
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __len * 2));
+ __ctype.widen(__cs, __cs + __len, __ws);
+
+ // Add grouping, if necessary.
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ const string __grouping = __np.grouping();
+ if (__grouping.size())
+ {
+ // 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;
+ const ios_base::fmtflags __basefield = __io.flags()
+ & ios_base::basefield;
+ if ((__io.flags() & ios_base::showbase) && __len > 1)
+ if (__basefield == ios_base::oct)
+ {
+ __off = 1;
+ *__ws2 = *__ws;
+ }
+ else if (__basefield == ios_base::hex)
+ {
+ __off = 2;
+ *__ws2 = *__ws;
+ *(__ws2 + 1) = *(__ws + 1);
+ }
+ _CharT* __p;
+ __p = __add_grouping(__ws2 + __off, __np.thousands_sep(),
+ __grouping.c_str(),
+ __grouping.c_str() + __grouping.size(),
+ __ws + __off, __ws + __len);
+ __len = __p - __ws2;
+ // Switch strings.
+ __ws = __ws2;
+ }
+ return _M_insert(__s, __io, __fill, __ws, __len);
+ }
+
+ // For use by integer and floating-point types after they have been
+ // converted into a char_type string.
+ template<typename _CharT, typename _OutIter>
+ _OutIter
+ num_put<_CharT, _OutIter>::
+ _M_insert(_OutIter __s, ios_base& __io, _CharT __fill, const _CharT* __ws,
+ int __len) const
+ {
+ typedef char_traits<_CharT> __traits_type;
+ // [22.2.2.2.2] Stage 3.
+ // If necessary, pad.
+ streamsize __w = __io.width();
+ _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT)
+ * __w));
+ if (__w > static_cast<streamsize>(__len))
+ {
+ __pad<_CharT, __traits_type>::_S_pad(__io, __fill, __ws2, __ws,
+ __w, __len, true);
+ __len = static_cast<int>(__w);
+ // Switch strings.
+ __ws = __ws2;
+ }
+ __io.width(0);
+
+ // [22.2.2.2.2] Stage 4.
+ // Write resulting, fully-formatted string to output iterator.
+ return __write(__s, __ws, __len);
+ }
+#endif
+
+ template<typename _CharT>
+ __locale_cache<numpunct<_CharT> >::__locale_cache(const locale& __loc)
+ : _M_truename(0), _M_falsename(0), _M_use_grouping(false),
+ _M_grouping(0)
+ {
+ if (has_facet<numpunct<_CharT> >(__loc))
+ {
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ _M_decimal_point = __np.decimal_point();
+ _M_thousands_sep = __np.thousands_sep();
+
+ string_type __false = __np.falsename();
+ _CharT* __falsename = new _CharT[__false.length() + 1];
+ __false.copy(__falsename, __false.length());
+ __falsename[__false.length()] = _CharT();
+ _M_falsename = __falsename;
+
+ string_type __true = __np.truename();
+ _CharT* __truename = new _CharT[__true.length() + 1];
+ __true.copy(__truename, __true.length());
+ __truename[__true.length()] = _CharT();
+ _M_truename = __truename;
+
+ string __grouping = __np.grouping();
+ char* __group = new char[__grouping.length() + 1];
+ __grouping.copy(__group, __grouping.length());
+ __group[__grouping.length()] = 0;
+ _M_grouping = __group;
+
+ _M_use_grouping = __grouping.length() != 0
+ && __grouping.data()[0] != 0;
+ }
+
+ if (has_facet<ctype<_CharT> >(__loc))
+ {
+ const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
+ __ct.widen(__num_base::_S_atoms_out,
+ __num_base::_S_atoms_out + __num_base::_S_end,
+ _M_atoms_out);
+ }
+ }
+
+ // Static locale cache initialization. Only instantiated with char
+ // and wchar_t, so no need to check has_facet.
+ template<typename _CharT>
+ __locale_cache<numpunct<_CharT> >::
+ __locale_cache(const locale& __loc, bool)
+ {
+ // Grab pointers to numpunct static strings
+ const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);
+ _M_thousands_sep = __np._M_thousands_sep;
+ _M_decimal_point = __np._M_decimal_point;
+ _M_falsename = __np._M_falsename;
+ _M_truename = __np._M_truename;
+ _M_grouping = __np._M_grouping;
+ _M_use_grouping = false;
+
+ const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc);
+ __ct.widen(__num_base::_S_atoms_out,
+ __num_base::_S_atoms_out + __num_base::_S_end,
+ _M_atoms_out);
+ }
+
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class moneypunct<char, false>;
extern template class moneypunct<char, true>;
extern template class moneypunct_byname<char, false>;
@@ -2387,6 +2757,7 @@ namespace std
bool
has_facet<messages<wchar_t> >(const locale&);
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/localefwd.h b/libstdc++-v3/include/bits/localefwd.h
index 76279609921..ac9e1a95425 100644
--- a/libstdc++-v3/include/bits/localefwd.h
+++ b/libstdc++-v3/include/bits/localefwd.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -37,18 +37,15 @@
* You should not attempt to use it directly.
*/
-#ifndef _CPP_BITS_LOCCORE_H
-#define _CPP_BITS_LOCCORE_H 1
+#ifndef _CPP_BITS_LOCALE_FWD_H
+#define _CPP_BITS_LOCALE_FWD_H 1
#pragma GCC system_header
#include <bits/c++config.h>
#include <bits/c++locale.h> // Defines __c_locale, config-specific includes
-#include <climits> // For CHAR_BIT
-#include <cctype> // For isspace, etc.
-#include <string> // For string.
+#include <iosfwd> // For ostreambuf_iterator, istreambuf_iterator
#include <bits/functexcept.h>
-#include <bits/atomicity.h>
namespace std
{
@@ -108,7 +105,6 @@ namespace std
inline _CharT
tolower(_CharT, const locale&);
-
// 22.2.1 and 22.2.1.3 ctype
class ctype_base;
template<typename _CharT>
@@ -175,324 +171,6 @@ namespace std
template<typename _CharT>
class messages_byname;
- // 22.1.1 Class locale
- class locale
- {
- public:
- // Types:
- typedef unsigned int category;
-
- // Forward decls and friends:
- class facet;
- class id;
- class _Impl;
-
- friend class facet;
- friend class _Impl;
-
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
-
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw();
-
- // Category values:
- // NB: Order must match _S_facet_categories definition in locale.cc
- static const category none = 0;
- static const category ctype = 1L << 0;
- static const category numeric = 1L << 1;
- static const category collate = 1L << 2;
- 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();
-
- locale(const locale& __other) throw();
-
- explicit
- locale(const char* __s);
-
- locale(const locale& __base, const char* __s, category __cat);
-
- locale(const locale& __base, const locale& __add, category __cat);
-
- template<typename _Facet>
- locale(const locale& __other, _Facet* __f);
-
- ~locale() throw();
-
- const locale&
- operator=(const locale& __other) throw();
-
- template<typename _Facet>
- locale
- combine(const locale& __other) const;
-
- // Locale operations:
- string
- name() const;
-
- bool
- operator==(const locale& __other) const throw ();
-
- inline bool
- operator!=(const locale& __other) const throw ()
- { return !(this->operator==(__other)); }
-
- template<typename _Char, typename _Traits, typename _Alloc>
- bool
- operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
- const basic_string<_Char, _Traits, _Alloc>& __s2) const;
-
- // Global locale objects:
- static locale
- global(const locale&);
-
- static const locale&
- classic();
-
- private:
- // The (shared) implementation
- _Impl* _M_impl;
-
- // The "C" reference locale
- static _Impl* _S_classic;
-
- // 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();
-
- static inline void
- _S_initialize()
- {
- if (!_S_classic)
- classic();
- }
-
- static category
- _S_normalize_category(category);
-
- void
- _M_coalesce(const locale& __base, const locale& __add, category __cat);
- };
-
-
- // Implementation object for locale
- class locale::_Impl
- {
- public:
- // Friends.
- friend class locale;
- friend class locale::facet;
-
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
-
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw();
-
- private:
- // Data Members.
- _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[];
- static const locale::id* const _S_id_time[];
- static const locale::id* const _S_id_monetary[];
- static const locale::id* const _S_id_messages[];
- static const locale::id* const* const _S_facet_categories[];
-
- inline void
- _M_add_reference() throw()
- { __atomic_add(&_M_references, 1); }
-
- inline void
- _M_remove_reference() throw()
- {
- if (__exchange_and_add(&_M_references, -1) == 1)
- {
- try
- { delete this; }
- catch(...)
- { }
- }
- }
-
- _Impl(const _Impl&, size_t);
- _Impl(const char*, size_t);
- _Impl(facet**, size_t, bool);
-
- ~_Impl() throw();
-
- _Impl(const _Impl&); // Not defined.
-
- void
- operator=(const _Impl&); // Not defined.
-
- inline bool
- _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;
- }
-
- void
- _M_replace_categories(const _Impl*, category);
-
- void
- _M_replace_category(const _Impl*, const locale::id* const*);
-
- void
- _M_replace_facet(const _Impl*, const locale::id*);
-
- void
- _M_install_facet(const locale::id*, facet*);
-
- template<typename _Facet>
- inline void
- _M_init_facet(_Facet* __facet)
- { _M_install_facet(&_Facet::id, __facet); }
- };
-
- template<typename _Facet>
- locale::locale(const locale& __other, _Facet* __f)
- {
- _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
- class locale::facet
- {
- private:
- friend class locale;
- friend class locale::_Impl;
-
- _Atomic_word _M_references;
-
- protected:
- // Contains data from the underlying "C" library for default "C"
- // or "POSIX" locale.
- static __c_locale _S_c_locale;
-
- explicit
- facet(size_t __refs = 0) throw();
-
- virtual
- ~facet();
-
- static void
- _S_create_c_locale(__c_locale& __cloc, const char* __s,
- __c_locale __old = 0);
-
- static __c_locale
- _S_clone_c_locale(__c_locale& __cloc);
-
- static void
- _S_destroy_c_locale(__c_locale& __cloc);
-
- private:
- void
- _M_add_reference() throw();
-
- void
- _M_remove_reference() throw();
-
- facet(const facet&); // Not defined.
-
- void
- operator=(const facet&); // Not defined.
- };
-
-
- // 22.1.1.1.3 Class locale::id
- class locale::id
- {
- private:
- friend class locale;
- friend class locale::_Impl;
- template<typename _Facet>
- friend const _Facet&
- use_facet(const locale&);
- template<typename _Facet>
- friend bool
- has_facet(const locale&) throw ();
-
- // NB: There is no accessor for _M_index because it may be used
- // before the constructor is run; the effect of calling a member
- // function (even an inline) would be undefined.
- mutable size_t _M_index;
-
- // Last id number assigned.
- static _Atomic_word _S_highwater;
-
- void
- operator=(const id&); // Not defined.
-
- id(const id&); // Not defined.
-
- public:
- // NB: This class is always a static data member, and thus can be
- // counted on to be zero-initialized.
- id();
-
- inline size_t
- _M_id() const
- {
- if (!_M_index)
- _M_index = 1 + __exchange_and_add(&_S_highwater, 1);
- return _M_index - 1;
- }
- };
-
template<typename _Facet>
const _Facet&
use_facet(const locale& __loc);
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index e42eca29192..11e9bc006e5 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -40,12 +40,20 @@ namespace std
{
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>::sentry::
- sentry(basic_ostream<_CharT,_Traits>& __os)
- : _M_ok(__os.good()), _M_os(__os)
+ sentry(basic_ostream<_CharT, _Traits>& __os)
+ : _M_os(__os)
{
- // XXX MT
- if (_M_ok && __os.tie())
- __os.tie()->flush();
+ // XXX MT
+ if (__os.tie() && __os.good())
+ __os.tie()->flush();
+
+ if (__os.good())
+ _M_ok = true;
+ else
+ {
+ _M_ok = false;
+ __os.setstate(ios_base::failbit);
+ }
}
template<typename _CharT, typename _Traits>
@@ -53,21 +61,10 @@ namespace std
basic_ostream<_CharT, _Traits>::
operator<<(__ostream_type& (*__pf)(__ostream_type&))
{
- sentry __cerb(*this);
- if (__cerb)
- {
- try
- { __pf(*this); }
- catch(exception& __fail)
- {
- // 27.6.2.5.1 Common requirements.
- // 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;
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // The inserters for manipulators are *not* formatted output functions.
+ return __pf(*this);
}
template<typename _CharT, typename _Traits>
@@ -75,20 +72,10 @@ namespace std
basic_ostream<_CharT, _Traits>::
operator<<(__ios_type& (*__pf)(__ios_type&))
{
- sentry __cerb(*this);
- if (__cerb)
- {
- try
- { __pf(*this); }
- catch(exception& __fail)
- {
- // 27.6.2.5.1 Common requirements.
- // 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;
- }
- }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // The inserters for manipulators are *not* formatted output functions.
+ __pf(*this);
return *this;
}
@@ -97,132 +84,91 @@ namespace std
basic_ostream<_CharT, _Traits>::
operator<<(ios_base& (*__pf)(ios_base&))
{
- sentry __cerb(*this);
- if (__cerb)
- {
- try
- { __pf(*this); }
- catch(exception& __fail)
- {
- // 27.6.2.5.1 Common requirements.
- // 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;
- }
- }
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // The inserters for manipulators are *not* formatted output functions.
+ __pf(*this);
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sbin)
- {
- sentry __cerb(*this);
- if (__cerb && __sbin)
- {
- try
- {
- if (!__copy_streambufs(*this, __sbin, this->rdbuf()))
- this->setstate(ios_base::failbit);
- }
- catch(exception& __fail)
- {
- // 27.6.2.5.1 Common requirements.
- // 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;
- }
- }
- else if (!__sbin)
- this->setstate(ios_base::badbit);
- return *this;
- }
-
- template<typename _CharT, typename _Traits>
- basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(bool __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(bool __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(long __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(long __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
+ bool __b = false;
char_type __c = this->fill();
ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
- if (_M_check_facet(_M_fnumput))
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))
{
- bool __b = false;
- if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))
- {
- unsigned long __l = static_cast<unsigned long>(__n);
- __b = _M_fnumput->put(*this, *this, __c, __l).failed();
- }
- else
- __b = _M_fnumput->put(*this, *this, __c, __n).failed();
- if (__b)
- this->setstate(ios_base::badbit);
+ unsigned long __l = static_cast<unsigned long>(__n);
+ __b = __np.put(*this, *this, __c, __l).failed();
}
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
- }
+ else
+ __b = __np.put(*this, *this, __c, __n).failed();
+ if (__b)
+ __err |= ios_base::badbit;
+ }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(unsigned long __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(unsigned long __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -230,63 +176,59 @@ namespace std
#ifdef _GLIBCPP_USE_LONG_LONG
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(long long __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(long long __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
+ bool __b = false;
char_type __c = this->fill();
ios_base::fmtflags __fmt = this->flags() & ios_base::basefield;
- if (_M_check_facet(_M_fnumput))
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))
{
- bool __b = false;
- if ((__fmt & ios_base::oct) || (__fmt & ios_base::hex))
- {
- unsigned long long __l;
- __l = static_cast<unsigned long long>(__n);
- __b = _M_fnumput->put(*this, *this, __c, __l).failed();
- }
- else
- __b = _M_fnumput->put(*this, *this, __c, __n).failed();
- if (__b)
- this->setstate(ios_base::badbit);
+ unsigned long long __l;
+ __l = static_cast<unsigned long long>(__n);
+ __b = __np.put(*this, *this, __c, __l).failed();
}
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
- }
+ else
+ __b = __np.put(*this, *this, __c, __n).failed();
+ if (__b)
+ __err |= ios_base::badbit;
+ }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(unsigned long long __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(unsigned long long __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -294,76 +236,97 @@ namespace std
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(double __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(double __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(long double __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(long double __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
- }
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // 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;
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
- basic_ostream<_CharT, _Traits>::operator<<(const void* __n)
+ basic_ostream<_CharT, _Traits>::
+ operator<<(const void* __n)
{
sentry __cerb(*this);
if (__cerb)
{
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
- if (_M_check_facet(_M_fnumput))
- if (_M_fnumput->put(*this, *this, this->fill(), __n).failed())
- this->setstate(ios_base::badbit);
+ _M_check_facet(this->_M_fnumput);
+ const __numput_type& __np = *this->_M_fnumput;
+ if (__np.put(*this, *this, this->fill(), __n).failed())
+ __err |= ios_base::badbit;
}
- catch(exception& __fail)
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
+ }
+ return *this;
+ }
+
+ template<typename _CharT, typename _Traits>
+ basic_ostream<_CharT, _Traits>&
+ basic_ostream<_CharT, _Traits>::
+ operator<<(__streambuf_type* __sbin)
+ {
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ sentry __cerb(*this);
+ if (__cerb && __sbin)
+ {
+ try
{
- // 27.6.1.2.1 Common requirements.
- // 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;
+ if (!__copy_streambufs(*this, __sbin, this->rdbuf()))
+ __err |= ios_base::failbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::failbit); }
}
+ else if (!__sbin)
+ __err |= ios_base::badbit;
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -371,26 +334,55 @@ namespace std
basic_ostream<_CharT, _Traits>&
basic_ostream<_CharT, _Traits>::put(char_type __c)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // basic_ostream::put(char_type) is an unformatted output function.
+ // DR 63. Exception-handling policy for unformatted output.
+ // Unformatted output functions should catch exceptions thrown
+ // from streambuf members.
sentry __cerb(*this);
if (__cerb)
{
- int_type __put = rdbuf()->sputc(__c);
- if (traits_type::eq_int_type(__put, traits_type::eof()))
- this->setstate(ios_base::badbit);
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
+ {
+ int_type __put = this->rdbuf()->sputc(__c);
+ if (traits_type::eq_int_type(__put, traits_type::eof()))
+ __err |= ios_base::badbit;
+ }
+ catch (...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
- return *this;
- }
-
+ return *this;
+ }
+
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
basic_ostream<_CharT, _Traits>::write(const _CharT* __s, streamsize __n)
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // basic_ostream::write(const char_type*, streamsize) is an
+ // unformatted output function.
+ // DR 63. Exception-handling policy for unformatted output.
+ // Unformatted output functions should catch exceptions thrown
+ // from streambuf members.
sentry __cerb(*this);
if (__cerb)
{
- streamsize __put = this->rdbuf()->sputn(__s, __n);
- if ( __put != __n)
- this->setstate(ios_base::badbit);
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
+ {
+ streamsize __put = this->rdbuf()->sputn(__s, __n);
+ if (__put != __n)
+ __err |= ios_base::badbit;
+ }
+ catch (...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
}
return *this;
}
@@ -399,12 +391,19 @@ namespace std
basic_ostream<_CharT, _Traits>&
basic_ostream<_CharT, _Traits>::flush()
{
- sentry __cerb(*this);
- if (__cerb)
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // DR 60. What is a formatted input function?
+ // basic_ostream::flush() is *not* an unformatted output function.
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
{
if (this->rdbuf() && this->rdbuf()->pubsync() == -1)
- this->setstate(ios_base::badbit);
+ __err |= ios_base::badbit;
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -413,8 +412,13 @@ namespace std
basic_ostream<_CharT, _Traits>::tellp()
{
pos_type __ret = pos_type(-1);
- if (!this->fail())
- __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
+ try
+ {
+ if (!this->fail())
+ __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);
+ }
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
return __ret;
}
@@ -423,37 +427,51 @@ namespace std
basic_ostream<_CharT, _Traits>&
basic_ostream<_CharT, _Traits>::seekp(pos_type __pos)
{
- if (!this->fail())
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
{
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-// 136. seekp, seekg setting wrong streams?
- pos_type __err = this->rdbuf()->pubseekpos(__pos, ios_base::out);
-
-// 129. Need error indication from seekp() and seekg()
- if (__err == pos_type(off_type(-1)))
- this->setstate(ios_base::failbit);
-#endif
+ if (!this->fail())
+ {
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 136. seekp, seekg setting wrong streams?
+ pos_type __p = this->rdbuf()->pubseekpos(__pos, ios_base::out);
+
+ // 129. Need error indication from seekp() and seekg()
+ if (__p == pos_type(off_type(-1)))
+ __err |= ios_base::failbit;
+ }
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
return *this;
}
template<typename _CharT, typename _Traits>
basic_ostream<_CharT, _Traits>&
basic_ostream<_CharT, _Traits>::
- seekp(off_type __off, ios_base::seekdir __d)
+ seekp(off_type __off, ios_base::seekdir __dir)
{
- if (!this->fail())
+ ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
+ try
{
-#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
-// 136. seekp, seekg setting wrong streams?
- pos_type __err = this->rdbuf()->pubseekoff(__off, __d,
- ios_base::out);
-
-// 129. Need error indication from seekp() and seekg()
- if (__err == pos_type(off_type(-1)))
- this->setstate(ios_base::failbit);
-#endif
+ if (!this->fail())
+ {
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 136. seekp, seekg setting wrong streams?
+ pos_type __p = this->rdbuf()->pubseekoff(__off, __dir,
+ ios_base::out);
+
+ // 129. Need error indication from seekp() and seekg()
+ if (__p == pos_type(off_type(-1)))
+ __err |= ios_base::failbit;
+ }
}
+ catch(...)
+ { this->_M_setstate(ios_base::badbit); }
+ if (__err)
+ this->setstate(__err);
return *this;
}
@@ -468,7 +486,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * (__w + 1)));
__pads[0] = __c;
streamsize __len = 1;
@@ -481,14 +499,8 @@ namespace std
__out.write(__pads, __len);
__out.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
- if ((__out.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __out._M_setstate(ios_base::badbit); }
}
return __out;
}
@@ -504,7 +516,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
char* __pads = static_cast<char*>(__builtin_alloca(__w + 1));
__pads[0] = __c;
streamsize __len = 1;
@@ -517,14 +529,8 @@ namespace std
__out.write(__pads, __len);
__out.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
- if ((__out.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __out._M_setstate(ios_base::badbit); }
}
return __out;
}
@@ -539,7 +545,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
streamsize __len = static_cast<streamsize>(_Traits::length(__s));
if (__w > __len)
@@ -552,14 +558,8 @@ namespace std
__out.write(__s, __len);
__out.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
- if ((__out.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __out._M_setstate(ios_base::badbit); }
}
else if (!__s)
__out.setstate(ios_base::badbit);
@@ -588,7 +588,7 @@ namespace std
try
{
streamsize __len = static_cast<streamsize>(__clen);
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
if (__w > __len)
@@ -601,14 +601,8 @@ namespace std
__out.write(__str, __len);
__out.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
- if ((__out.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __out._M_setstate(ios_base::badbit); }
}
else if (!__s)
__out.setstate(ios_base::badbit);
@@ -626,7 +620,7 @@ namespace std
{
try
{
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
char* __pads = static_cast<char*>(__builtin_alloca(__w));
streamsize __len = static_cast<streamsize>(_Traits::length(__s));
@@ -640,14 +634,8 @@ namespace std
__out.write(__s, __len);
__out.width(0);
}
- catch(exception& __fail)
- {
- // 27.6.1.2.1 Common requirements.
- // Turn this on without causing an ios::failure to be thrown.
- __out.setstate(ios_base::badbit);
- if ((__out.exceptions() & ios_base::badbit) != 0)
- __throw_exception_again;
- }
+ catch(...)
+ { __out._M_setstate(ios_base::badbit); }
}
else if (!__s)
__out.setstate(ios_base::badbit);
@@ -665,7 +653,7 @@ namespace std
if (__cerb)
{
const _CharT* __s = __str.data();
- streamsize __w = __out.width();
+ const streamsize __w = __out.width() > 0 ? __out.width() : 0;
_CharT* __pads = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __w));
streamsize __len = static_cast<streamsize>(__str.size());
#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
@@ -689,6 +677,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_ostream<char>;
extern template ostream& endl(ostream&);
extern template ostream& ends(ostream&);
@@ -710,4 +699,5 @@ namespace std
extern template wostream& operator<<(wostream&, const wchar_t*);
extern template wostream& operator<<(wostream&, const char*);
#endif
+#endif
} // namespace std
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 606705c02e9..fa43d1cda59 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -225,6 +225,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCXX_EXTERN_TEMPLATE
extern template class basic_stringbuf<char>;
extern template class basic_istringstream<char>;
extern template class basic_ostringstream<char>;
@@ -236,6 +237,7 @@ namespace std
extern template class basic_ostringstream<wchar_t>;
extern template class basic_stringstream<wchar_t>;
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index 009c409b6fb..808f4b81fdf 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -609,7 +609,8 @@ namespace std
else {
__first = find(__first, __last, __val);
while (__first != __last) {
- _Integer __n = __count - 1;
+ typename iterator_traits<_ForwardIter>::difference_type __n = __count;
+ --__n;
_ForwardIter __i = __first;
++__i;
while (__i != __last && __n != 0 && *__i == __val) {
@@ -661,7 +662,8 @@ namespace std
++__first;
}
while (__first != __last) {
- _Integer __n = __count - 1;
+ typename iterator_traits<_ForwardIter>::difference_type __n = __count;
+ --__n;
_ForwardIter __i = __first;
++__i;
while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) {
@@ -946,7 +948,7 @@ namespace std
// concept requirements
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,
// "the type returned by a _Generator"
- __typeof__(gen())>)
+ __typeof__(__gen())>)
for ( ; __n > 0; --__n, ++__first)
*__first = __gen();
diff --git a/libstdc++-v3/include/bits/stl_alloc.h b/libstdc++-v3/include/bits/stl_alloc.h
index bab39fb7150..9677c3e89ee 100644
--- a/libstdc++-v3/include/bits/stl_alloc.h
+++ b/libstdc++-v3/include/bits/stl_alloc.h
@@ -1,6 +1,6 @@
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -85,7 +85,6 @@
#include <cstddef>
#include <cstdlib>
#include <cstring>
-#include <cassert>
#include <bits/functexcept.h> // For __throw_bad_alloc
#include <bits/stl_threads.h>
@@ -129,9 +128,7 @@ namespace std
{
private:
static void* _S_oom_malloc(size_t);
-#ifdef _GLIBCPP_DEPRECATED
static void* _S_oom_realloc(void*, size_t);
-#endif
static void (* __malloc_alloc_oom_handler)();
public:
@@ -148,7 +145,6 @@ namespace std
deallocate(void* __p, size_t /* __n */)
{ free(__p); }
-#ifdef _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t /* old_sz */, size_t __new_sz)
{
@@ -157,7 +153,6 @@ namespace std
__result = _S_oom_realloc(__p, __new_sz);
return __result;
}
-#endif
static void (* __set_malloc_handler(void (*__f)()))()
{
@@ -191,7 +186,6 @@ namespace std
}
}
-#ifdef _GLIBCPP_DEPRECATED
template<int __inst>
void*
__malloc_alloc_template<__inst>::
@@ -211,7 +205,6 @@ namespace std
return __result;
}
}
-#endif
// Should not be referenced within the library anymore.
typedef __new_alloc __mem_interface;
@@ -257,10 +250,7 @@ namespace std
/**
* @if maint
* An adaptor for an underlying allocator (_Alloc) to check the size
- * arguments for debugging. Errors are reported using assert; these
- * checks can be disabled via NDEBUG, but the space penalty is still
- * paid, therefore it is far better to just use the underlying allocator
- * by itelf when no checking is desired.
+ * arguments for debugging.
*
* "There is some evidence that this can confuse Purify." - SGI comment
*
@@ -289,23 +279,23 @@ namespace std
deallocate(void* __p, size_t __n)
{
char* __real_p = (char*)__p - (int) _S_extra;
- assert(*(size_t*)__real_p == __n);
+ if (*(size_t*)__real_p != __n)
+ abort();
_Alloc::deallocate(__real_p, __n + (int) _S_extra);
}
-#ifdef _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t __old_sz, size_t __new_sz)
{
char* __real_p = (char*)__p - (int) _S_extra;
- assert(*(size_t*)__real_p == __old_sz);
+ if (*(size_t*)__real_p != __old_sz)
+ abort();
char* __result = (char*) _Alloc::reallocate(__real_p,
__old_sz + (int) _S_extra,
__new_sz + (int) _S_extra);
*(size_t*)__result = __new_sz;
return __result + (int) _S_extra;
}
-#endif
};
@@ -407,8 +397,6 @@ namespace std
__atomic_add(&_S_force_new, 1);
else
__atomic_add(&_S_force_new, -1);
- // Trust but verify...
- assert(_S_force_new != 0);
}
if ((__n > (size_t) _MAX_BYTES) || (_S_force_new > 0))
@@ -456,10 +444,8 @@ namespace std
}
}
-#ifdef _GLIBCPP_DEPRECATED
static void*
reallocate(void* __p, size_t __old_sz, size_t __new_sz);
-#endif
};
template<bool __threads, int __inst> _Atomic_word
@@ -514,8 +500,8 @@ namespace std
_Obj* volatile* __my_free_list =
_S_free_list + _S_freelist_index(__bytes_left);
- ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list;
- *__my_free_list = (_Obj*)_S_start_free;
+ ((_Obj*)(void*)_S_start_free) -> _M_free_list_link = *__my_free_list;
+ *__my_free_list = (_Obj*)(void*)_S_start_free;
}
_S_start_free = (char*) __new_alloc::allocate(__bytes_to_get);
if (_S_start_free == 0)
@@ -573,12 +559,12 @@ namespace std
__my_free_list = _S_free_list + _S_freelist_index(__n);
// Build free list in chunk.
- __result = (_Obj*)__chunk;
- *__my_free_list = __next_obj = (_Obj*)(__chunk + __n);
+ __result = (_Obj*)(void*)__chunk;
+ *__my_free_list = __next_obj = (_Obj*)(void*)(__chunk + __n);
for (__i = 1; ; __i++)
{
__current_obj = __next_obj;
- __next_obj = (_Obj*)((char*)__next_obj + __n);
+ __next_obj = (_Obj*)(void*)((char*)__next_obj + __n);
if (__nobjs - 1 == __i)
{
__current_obj -> _M_free_list_link = 0;
@@ -591,7 +577,6 @@ namespace std
}
-#ifdef _GLIBCPP_DEPRECATED
template<bool threads, int inst>
void*
__default_alloc_template<threads, inst>::
@@ -610,7 +595,6 @@ namespace std
deallocate(__p, __old_sz);
return __result;
}
-#endif
template<bool __threads, int __inst>
_STL_mutex_lock
@@ -980,9 +964,11 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class allocator<char>;
extern template class allocator<wchar_t>;
extern template class __default_alloc_template<true,0>;
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index fd066cc7e1f..529ad774175 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -106,9 +106,12 @@ namespace std
public:
/**
- * The default constructor gives an undefined state to this %iterator.
+ * The default constructor default-initializes member @p current.
+ * If it is a pointer, that means it is zero-initialized.
*/
- reverse_iterator() { }
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // 235 No specification of default ctor for reverse_iterator
+ reverse_iterator() : current() { }
/**
* This %iterator will move in the opposite direction that @p x does.
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index fcba3598df2..132ae254eee 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -1,6 +1,6 @@
// List implementation -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -108,6 +108,7 @@ namespace std
{ }
_List_iterator_base()
+ : _M_node()
{ }
/// Walk the %list forward.
@@ -156,6 +157,7 @@ namespace std
{ }
_List_iterator()
+ : _List_iterator_base()
{ }
_List_iterator(const iterator& __x)
diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h
index 2bfc8f10c32..bc5b8471980 100644
--- a/libstdc++-v3/include/bits/stl_multiset.h
+++ b/libstdc++-v3/include/bits/stl_multiset.h
@@ -100,10 +100,10 @@ private:
_Identity<value_type>, key_compare, _Alloc> _Rep_type;
_Rep_type _M_t; // red-black tree representing multiset
public:
- typedef typename _Rep_type::const_pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::const_reference reference;
- typedef typename _Rep_type::const_reference const_reference;
+ typedef typename _Alloc::pointer pointer;
+ typedef typename _Alloc::const_pointer const_pointer;
+ typedef typename _Alloc::reference reference;
+ typedef typename _Alloc::const_reference const_reference;
typedef typename _Rep_type::const_iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index ee708c29217..3a49e4d1573 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -99,10 +99,10 @@ private:
_Identity<value_type>, key_compare, _Alloc> _Rep_type;
_Rep_type _M_t; // red-black tree representing set
public:
- typedef typename _Rep_type::const_pointer pointer;
- typedef typename _Rep_type::const_pointer const_pointer;
- typedef typename _Rep_type::const_reference reference;
- typedef typename _Rep_type::const_reference const_reference;
+ typedef typename _Alloc::pointer pointer;
+ typedef typename _Alloc::const_pointer const_pointer;
+ typedef typename _Alloc::reference reference;
+ typedef typename _Alloc::const_reference const_reference;
typedef typename _Rep_type::const_iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
typedef typename _Rep_type::const_reverse_iterator reverse_iterator;
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 1e7fdf5db2d..0fa098be170 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -1,6 +1,6 @@
// RB tree implementation -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -191,7 +191,7 @@ namespace std
typedef _Rb_tree_iterator<_Val, _Ref, _Ptr> _Self;
typedef _Rb_tree_node<_Val>* _Link_type;
- _Rb_tree_iterator() {}
+ _Rb_tree_iterator() { _M_node = 0; }
_Rb_tree_iterator(_Link_type __x) { _M_node = __x; }
_Rb_tree_iterator(const iterator& __it) { _M_node = __it._M_node; }
diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc
index 5f57df583a7..9b65f4e7073 100644
--- a/libstdc++-v3/include/bits/streambuf.tcc
+++ b/libstdc++-v3/include/bits/streambuf.tcc
@@ -1,6 +1,6 @@
// Stream buffer classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -67,8 +67,7 @@ namespace std
{
int_type __ret;
bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur;
- bool __testne = _M_in_cur && !traits_type::eq(__c, this->gptr()[-1]);
- if (!__testpos || __testne)
+ if (!__testpos || !traits_type::eq(__c, this->gptr()[-1]))
__ret = this->pbackfail(traits_type::to_int_type(__c));
else
{
@@ -195,58 +194,40 @@ namespace std
// necessary.
template<typename _CharT, typename _Traits>
streamsize
- __copy_streambufs(basic_ios<_CharT, _Traits>& __ios,
+ __copy_streambufs(basic_ios<_CharT, _Traits>&,
basic_streambuf<_CharT, _Traits>* __sbin,
basic_streambuf<_CharT, _Traits>* __sbout)
{
- typedef typename _Traits::int_type int_type;
-
- streamsize __ret = 0;
- streamsize __bufsize = __sbin->in_avail();
- streamsize __xtrct;
- bool __testput = __sbout->_M_mode & ios_base::out;
- try
- {
- while (__testput && __bufsize != -1)
- {
- if (__bufsize != 0 && __sbin->gptr() != NULL
- && __sbin->gptr() + __bufsize <= __sbin->egptr())
- {
- __xtrct = __sbout->sputn(__sbin->gptr(), __bufsize);
- __ret += __xtrct;
- __sbin->_M_in_cur_move(__xtrct);
- if (__xtrct != __bufsize)
- break;
- }
- else
- {
- size_t __size =
- __sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1;
- _CharT* __buf =
- static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __size));
- streamsize __charsread = __sbin->sgetn(__buf, __size);
- __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)
- {
- __ios.setstate(ios_base::failbit);
- if ((__ios.exceptions() & ios_base::failbit) != 0)
- __throw_exception_again;
- }
- return __ret;
- }
+ streamsize __ret = 0;
+ typename _Traits::int_type __c = __sbin->sgetc();
+ while (!_Traits::eq_int_type(__c, _Traits::eof()))
+ {
+ const size_t __n = __sbin->_M_in_end - __sbin->_M_in_cur;
+ if (__n > 1)
+ {
+ const size_t __wrote = __sbout->sputn(__sbin->_M_in_cur, __n);
+ __sbin->_M_in_cur_move(__wrote);
+ __ret += __wrote;
+ if (__wrote < __n)
+ break;
+ __c = __sbin->underflow();
+ }
+ else
+ {
+ __c = __sbout->sputc(_Traits::to_char_type(__c));
+ if (_Traits::eq_int_type(__c, _Traits::eof()))
+ break;
+ ++__ret;
+ __c = __sbin->snextc();
+ }
+ }
+ return __ret;
+ }
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_streambuf<char>;
extern template
streamsize
@@ -260,6 +241,7 @@ namespace std
__copy_streambufs(basic_ios<wchar_t>&, basic_streambuf<wchar_t>*,
basic_streambuf<wchar_t>*);
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/streambuf_iterator.h b/libstdc++-v3/include/bits/streambuf_iterator.h
index 152df9c6e4b..d482aba8256 100644
--- a/libstdc++-v3/include/bits/streambuf_iterator.h
+++ b/libstdc++-v3/include/bits/streambuf_iterator.h
@@ -1,6 +1,6 @@
// Streambuf iterators
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -28,8 +28,6 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-// XXX Should specialize copy, find algorithms for streambuf iterators.
-
/** @file streambuf_iterator.h
* This is an internal header file, included by other library headers.
* You should not attempt to use it directly.
@@ -40,6 +38,10 @@
#pragma GCC system_header
+#include <streambuf>
+
+// NB: Should specialize copy, find algorithms for streambuf iterators.
+
namespace std
{
// 24.5.3 Template class istreambuf_iterator
@@ -166,7 +168,6 @@ namespace std
bool _M_failed;
public:
- inline
ostreambuf_iterator(ostream_type& __s) throw ()
: _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { }
@@ -174,7 +175,13 @@ namespace std
: _M_sbuf(__s), _M_failed(!_M_sbuf) { }
ostreambuf_iterator&
- operator=(_CharT __c);
+ operator=(_CharT __c)
+ {
+ if (!_M_failed &&
+ _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
+ _M_failed = true;
+ return *this;
+ }
ostreambuf_iterator&
operator*() throw()
@@ -191,16 +198,15 @@ namespace std
bool
failed() const throw()
{ return _M_failed; }
- };
- template<typename _CharT, typename _Traits>
- inline ostreambuf_iterator<_CharT, _Traits>&
- ostreambuf_iterator<_CharT, _Traits>::operator=(_CharT __c)
- {
- if (!_M_failed &&
- _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof()))
- _M_failed = true;
- return *this;
- }
+ ostreambuf_iterator&
+ _M_put(const _CharT* __ws, streamsize __len)
+ {
+ if (__builtin_expect(!_M_failed, true) &&
+ __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, false))
+ _M_failed = true;
+ return *this;
+ }
+ };
} // namespace std
#endif
diff --git a/libstdc++-v3/include/bits/valarray_meta.h b/libstdc++-v3/include/bits/valarray_meta.h
index 8b3e74fedc3..29a2dac2af4 100644
--- a/libstdc++-v3/include/bits/valarray_meta.h
+++ b/libstdc++-v3/include/bits/valarray_meta.h
@@ -268,7 +268,7 @@ namespace std
{
template<typename _Tp>
bool operator()(const _Tp& __x, const _Tp& __y) const
- { return __x == __y; }
+ { return __x != __y; }
};
struct __less
@@ -457,7 +457,7 @@ namespace std
_UnBase(const _Arg& __e) : _M_expr(__e) {}
value_type operator[](size_t __i) const
- { return _M_expr[__i]; }
+ { return _Oper()(_M_expr[__i]); }
size_t size() const { return _M_expr.size(); }
diff --git a/libstdc++-v3/include/c_std/std_cmath.h b/libstdc++-v3/include/c_std/std_cmath.h
index b2f65c82d67..1264c4dba69 100644
--- a/libstdc++-v3/include/c_std/std_cmath.h
+++ b/libstdc++-v3/include/c_std/std_cmath.h
@@ -1,6 +1,6 @@
// -*- C++ -*- C forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -76,6 +76,91 @@
#undef tan
#undef tanh
+// ...and in the darkness bind them...
+namespace __gnu_cxx
+{
+ namespace __c99_binding
+ {
+#if _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK || \
+ _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC
+ extern "C" float (acosf)(float);
+ extern "C" float (asinf)(float);
+ extern "C" float (atanf)(float);
+ extern "C" float (atan2f)(float, float);
+ extern "C" float (ceilf)(float);
+ extern "C" float (coshf)(float);
+ extern "C" float (expf)(float);
+ extern "C" float (floorf)(float);
+ extern "C" float (fmodf)(float, float);
+ extern "C" float (frexpf)(float, int*);
+ extern "C" float (ldexpf)(float, int);
+ extern "C" float (logf)(float);
+ extern "C" float (log10f)(float);
+ extern "C" float (modff)(float, float*);
+ extern "C" float (powf)(float, float);
+ extern "C" float (sinhf)(float);
+ extern "C" float (tanf)(float);
+ extern "C" float (tanhf)(float);
+#endif
+#if !_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC
+#if _GLIBCPP_HAVE_ACOSF
+ using ::acosf;
+#endif
+#if _GLIBCPP_HAVE_ASINF
+ using ::asinf;
+#endif
+#if _GLIBCPP_HAVE_ATANF
+ using ::atanf;
+#endif
+#if _GLIBCPP_HAVE_ATAN2F
+ using ::atan2f;
+#endif
+#if _GLIBCPP_HAVE_CEILF
+ using ::ceilf;
+#endif
+#if _GLIBCPP_HAVE_COSHF
+ using ::coshf;
+#endif
+#if _GLIBCPP_HAVE_EXPF
+ using ::expf;
+#endif
+#if _GLIBCPP_HAVE_FLOORF
+ using ::floorf;
+#endif
+#if _GLIBCPP_HAVE_FMODF
+ using ::fmodf;
+#endif
+#if _GLIBCPP_HAVE_FREXPF
+ using ::frexpf;
+#endif
+#if _GLIBCPP_HAVE_LDEXPF
+ using ::ldexpf;
+#endif
+#if _GLIBCPP_HAVE_LOGF
+ using ::logf;
+#endif
+#if _GLIBCPP_HAVE_LOG10F
+ using ::log10f;
+#endif
+#if _GLIBCPP_HAVE_MODFF
+ using ::modff;
+#endif
+#if _GLIBCPP_HAVE_POWF
+ using ::powf;
+#endif
+#if _GLIBCPP_HAVE_SINHF
+ using ::sinhf;
+#endif
+#if _GLIBCPP_HAVE_TANF
+ using ::tanf;
+#endif
+#if _GLIBCPP_HAVE_TANHF
+ using ::tanhf;
+#endif
+#endif /* _GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC */
+ }
+}
+
namespace std
{
// Forward declaration of a helper function. This really should be
@@ -96,7 +181,7 @@ namespace std
#if _GLIBCPP_HAVE_ACOSF
inline float
- acos(float __x) { return ::acosf(__x); }
+ acos(float __x) { return __gnu_cxx::__c99_binding::acosf(__x); }
#else
inline float
acos(float __x) { return ::acos(static_cast<double>(__x)); }
@@ -116,7 +201,7 @@ namespace std
#if _GLIBCPP_HAVE_ASINF
inline float
- asin(float __x) { return ::asinf(__x); }
+ asin(float __x) { return __gnu_cxx::__c99_binding::asinf(__x); }
#else
inline float
asin(float __x) { return ::asin(static_cast<double>(__x)); }
@@ -134,7 +219,7 @@ namespace std
#if _GLIBCPP_HAVE_ATANF
inline float
- atan(float __x) { return ::atanf(__x); }
+ atan(float __x) { return __gnu_cxx::__c99_binding::atanf(__x); }
#else
inline float
atan(float __x) { return ::atan(static_cast<double>(__x)); }
@@ -152,7 +237,7 @@ namespace std
#if _GLIBCPP_HAVE_ATAN2F
inline float
- atan2(float __y, float __x) { return ::atan2f(__y, __x); }
+ atan2(float __y, float __x) { return __gnu_cxx::__c99_binding::atan2f(__y, __x); }
#else
inline float
atan2(float __y, float __x)
@@ -172,7 +257,7 @@ namespace std
#if _GLIBCPP_HAVE_CEILF
inline float
- ceil(float __x) { return ::ceilf(__x); }
+ ceil(float __x) { return __gnu_cxx::__c99_binding::ceilf(__x); }
#else
inline float
ceil(float __x) { return ::ceil(static_cast<double>(__x)); }
@@ -200,7 +285,7 @@ namespace std
#if _GLIBCPP_HAVE_COSHF
inline float
- cosh(float __x) { return ::coshf(__x); }
+ cosh(float __x) { return __gnu_cxx::__c99_binding::coshf(__x); }
#else
inline float
cosh(float __x) { return ::cosh(static_cast<double>(__x)); }
@@ -218,7 +303,7 @@ namespace std
#if _GLIBCPP_HAVE_EXPF
inline float
- exp(float __x) { return ::expf(__x); }
+ exp(float __x) { return __gnu_cxx::__c99_binding::expf(__x); }
#else
inline float
exp(float __x) { return ::exp(static_cast<double>(__x)); }
@@ -246,7 +331,7 @@ namespace std
#if _GLIBCPP_HAVE_FLOORF
inline float
- floor(float __x) { return ::floorf(__x); }
+ floor(float __x) { return __gnu_cxx::__c99_binding::floorf(__x); }
#else
inline float
floor(float __x) { return ::floor(static_cast<double>(__x)); }
@@ -264,7 +349,7 @@ namespace std
#if _GLIBCPP_HAVE_FMODF
inline float
- fmod(float __x, float __y) { return ::fmodf(__x, __y); }
+ fmod(float __x, float __y) { return __gnu_cxx::__c99_binding::fmodf(__x, __y); }
#else
inline float
fmod(float __x, float __y)
@@ -284,7 +369,7 @@ namespace std
#if _GLIBCPP_HAVE_FREXPF
inline float
- frexp(float __x, int* __exp) { return ::frexpf(__x, __exp); }
+ frexp(float __x, int* __exp) { return __gnu_cxx::__c99_binding::frexpf(__x, __exp); }
#else
inline float
frexp(float __x, int* __exp) { return ::frexp(__x, __exp); }
@@ -303,7 +388,7 @@ namespace std
#if _GLIBCPP_HAVE_LDEXPF
inline float
- ldexp(float __x, int __exp) { return ::ldexpf(__x, __exp); }
+ ldexp(float __x, int __exp) { return __gnu_cxx::__c99_binding::ldexpf(__x, __exp); }
#else
inline float
ldexp(float __x, int __exp)
@@ -323,7 +408,7 @@ namespace std
#if _GLIBCPP_HAVE_LOGF
inline float
- log(float __x) { return ::logf(__x); }
+ log(float __x) { return __gnu_cxx::__c99_binding::logf(__x); }
#else
inline float log(float __x)
{ return ::log(static_cast<double>(__x)); }
@@ -341,7 +426,7 @@ namespace std
#if _GLIBCPP_HAVE_LOG10F
inline float
- log10(float __x) { return ::log10f(__x); }
+ log10(float __x) { return __gnu_cxx::__c99_binding::log10f(__x); }
#else
inline float
log10(float __x) { return ::log10(static_cast<double>(__x)); }
@@ -359,7 +444,7 @@ namespace std
#if _GLIBCPP_HAVE_MODFF
inline float
- modf(float __x, float* __iptr) { return ::modff(__x, __iptr); }
+ modf(float __x, float* __iptr) { return __gnu_cxx::__c99_binding::modff(__x, __iptr); }
#else
inline float
modf(float __x, float* __iptr)
@@ -398,7 +483,7 @@ namespace std
#if _GLIBCPP_HAVE_POWF
inline float
- pow(float __x, float __y) { return ::powf(__x, __y); }
+ pow(float __x, float __y) { return __gnu_cxx::__c99_binding::powf(__x, __y); }
#else
inline float
pow(float __x, float __y)
@@ -440,7 +525,7 @@ namespace std
#if _GLIBCPP_HAVE_SINHF
inline float
- sinh(float __x) { return ::sinhf(__x); }
+ sinh(float __x) { return __gnu_cxx::__c99_binding::sinhf(__x); }
#else
inline float
sinh(float __x) { return ::sinh(static_cast<double>(__x)); }
@@ -468,7 +553,7 @@ namespace std
#if _GLIBCPP_HAVE_TANF
inline float
- tan(float __x) { return ::tanf(__x); }
+ tan(float __x) { return __gnu_cxx::__c99_binding::tanf(__x); }
#else
inline float
tan(float __x) { return ::tan(static_cast<double>(__x)); }
@@ -486,7 +571,7 @@ namespace std
#if _GLIBCPP_HAVE_TANHF
inline float
- tanh(float __x) { return ::tanhf(__x); }
+ tanh(float __x) { return __gnu_cxx::__c99_binding::tanhf(__x); }
#else
inline float
tanh(float __x) { return ::tanh(static_cast<double>(__x)); }
@@ -503,6 +588,7 @@ namespace std
#if _GLIBCPP_USE_C99
+#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC
// These are possible macros imported from C99-land. For strict
// conformance, remove possible C99-injected names from the global
// namespace, and sequester them in the __gnu_cxx extension namespace.
@@ -561,6 +647,7 @@ namespace __gnu_cxx
__capture_isunordered(_Tp __f1, _Tp __f2)
{ return isunordered(__f1, __f2); }
}
+#endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */
#endif
#undef fpclassify
@@ -577,6 +664,7 @@ namespace __gnu_cxx
#undef isunordered
#if _GLIBCPP_USE_C99
+#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC
namespace __gnu_cxx
{
template<typename _Tp>
@@ -647,6 +735,7 @@ namespace std
using __gnu_cxx::islessgreater;
using __gnu_cxx::isunordered;
}
+#endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */
#endif
#ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
diff --git a/libstdc++-v3/include/c_std/std_cstdio.h b/libstdc++-v3/include/c_std/std_cstdio.h
index 6fb8c79fb3d..3b4a6856739 100644
--- a/libstdc++-v3/include/c_std/std_cstdio.h
+++ b/libstdc++-v3/include/c_std/std_cstdio.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -152,11 +152,24 @@ namespace std
namespace __gnu_cxx
{
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" int
+ (snprintf)(char * restrict, size_t, const char * restrict, ...);
+ extern "C" int
+ (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
+ extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
+ extern "C" int
+ (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::snprintf;
using ::vfscanf;
using ::vscanf;
using ::vsnprintf;
using ::vsscanf;
+#endif
}
namespace std
diff --git a/libstdc++-v3/include/c_std/std_cstdlib.h b/libstdc++-v3/include/c_std/std_cstdlib.h
index 70fc8d3452e..e1436be1d7a 100644
--- a/libstdc++-v3/include/c_std/std_cstdlib.h
+++ b/libstdc++-v3/include/c_std/std_cstdlib.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -135,8 +135,15 @@ namespace std
namespace __gnu_cxx
{
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::lldiv_t;
+#endif
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" void (_Exit)(int);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::_Exit;
+#endif
inline long long
abs(long long __x) { return __x >= 0 ? __x : -__x; }
@@ -144,6 +151,7 @@ namespace __gnu_cxx
inline long long
llabs(long long __x) { return __x >= 0 ? __x : -__x; }
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
inline lldiv_t
div(long long __n, long long __d)
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
@@ -151,22 +159,36 @@ namespace __gnu_cxx
inline lldiv_t
lldiv(long long __n, long long __d)
{ lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
+#endif
+#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
+ extern "C" long long int (atoll)(const char *);
+ extern "C" long long int
+ (strtoll)(const char * restrict, char ** restrict, int);
+ extern "C" unsigned long long int
+ (strtoull)(const char * restrict, char ** restrict, int);
+#endif
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::atoll;
- using ::strtof;
using ::strtoll;
using ::strtoull;
+#endif
+ using ::strtof;
using ::strtold;
}
namespace std
{
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using __gnu_cxx::lldiv_t;
+#endif
using __gnu_cxx::_Exit;
using __gnu_cxx::abs;
using __gnu_cxx::llabs;
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using __gnu_cxx::div;
using __gnu_cxx::lldiv;
+#endif
using __gnu_cxx::atoll;
using __gnu_cxx::strtof;
using __gnu_cxx::strtoll;
diff --git a/libstdc++-v3/include/c_std/std_cwchar.h b/libstdc++-v3/include/c_std/std_cwchar.h
index f67f00610f5..8b33c52282f 100644
--- a/libstdc++-v3/include/c_std/std_cwchar.h
+++ b/libstdc++-v3/include/c_std/std_cwchar.h
@@ -1,6 +1,6 @@
// -*- C++ -*- forwarding header.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -225,9 +225,23 @@ namespace std
namespace __gnu_cxx
{
+#if _GLIBCPP_USE_C99_CHECK || _GLIBCPP_USE_C99_DYNAMIC
+ extern "C" long double
+ (wcstold)(const wchar_t * restrict, wchar_t ** restrict);
+#endif
+#if !_GLIBCPP_USE_C99_DYNAMIC
using ::wcstold;
+#endif
+#if _GLIBCPP_USE_C99_LONG_LONG_CHECK || _GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
+ extern "C" long long int
+ (wcstoll)(const wchar_t * restrict, wchar_t ** restrict, int);
+ extern "C" unsigned long long int
+ (wcstoull)(const wchar_t * restrict, wchar_t ** restrict, int);
+#endif
+#if !_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC
using ::wcstoll;
using ::wcstoull;
+#endif
}
namespace std
diff --git a/libstdc++-v3/include/ext/enc_filebuf.h b/libstdc++-v3/include/ext/enc_filebuf.h
index e1152bd26f9..4b1a7dfebe9 100644
--- a/libstdc++-v3/include/ext/enc_filebuf.h
+++ b/libstdc++-v3/include/ext/enc_filebuf.h
@@ -49,13 +49,16 @@ namespace __gnu_cxx
enc_filebuf(state_type& __state)
: std::basic_filebuf<_CharT, enc_char_traits<_CharT> >()
- {
- // Set state type to something useful.
- // Something more than copyconstructible is needed here, so
- // require copyconstructible + assignment operator.
- __glibcpp_class_requires(state_type, _SGIAssignableConcept);
- _M_state_cur = __state;
- _M_state_cur._M_init();
- };
+ {
+ this->_M_state_beg = __state;
+ this->_M_state_beg._M_init();
+ }
+
+ private:
+ // concept requirements:
+ // Set state type to something useful.
+ // Something more than copyconstructible is needed here, so
+ // require default and copy constructible + assignment operator.
+ __glibcxx_class_requires(state_type, _SGIAssignableConcept)
};
} // namespace __gnu_cxx
diff --git a/libstdc++-v3/include/ext/hash_set b/libstdc++-v3/include/ext/hash_set
index 0f420e2dd7e..f05141d7e49 100644
--- a/libstdc++-v3/include/ext/hash_set
+++ b/libstdc++-v3/include/ext/hash_set
@@ -111,10 +111,10 @@ public:
typedef typename _Ht::size_type size_type;
typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::const_pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::const_reference reference;
- typedef typename _Ht::const_reference const_reference;
+ typedef typename _Alloc::pointer pointer;
+ typedef typename _Alloc::const_pointer const_pointer;
+ typedef typename _Alloc::reference reference;
+ typedef typename _Alloc::const_reference const_reference;
typedef typename _Ht::const_iterator iterator;
typedef typename _Ht::const_iterator const_iterator;
@@ -267,10 +267,10 @@ public:
typedef typename _Ht::size_type size_type;
typedef typename _Ht::difference_type difference_type;
- typedef typename _Ht::const_pointer pointer;
- typedef typename _Ht::const_pointer const_pointer;
- typedef typename _Ht::const_reference reference;
- typedef typename _Ht::const_reference const_reference;
+ typedef typename _Alloc::pointer pointer;
+ typedef typename _Alloc::const_pointer const_pointer;
+ typedef typename _Alloc::reference reference;
+ typedef typename _Alloc::const_reference const_reference;
typedef typename _Ht::const_iterator iterator;
typedef typename _Ht::const_iterator const_iterator;
diff --git a/libstdc++-v3/include/ext/stdio_filebuf.h b/libstdc++-v3/include/ext/stdio_filebuf.h
index 59ab41a03e5..4c6bf90a7c4 100644
--- a/libstdc++-v3/include/ext/stdio_filebuf.h
+++ b/libstdc++-v3/include/ext/stdio_filebuf.h
@@ -58,6 +58,7 @@ namespace __gnu_cxx
typedef typename traits_type::int_type int_type;
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
+ typedef std::size_t size_t;
protected:
// Stack-based buffer for unbuffered input.
@@ -75,7 +76,7 @@ namespace __gnu_cxx
* file will be closed when the stdio_filebuf is closed/destroyed.
*/
stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del,
- int_type __size);
+ size_t __size);
/**
* @param f An open @c FILE*.
@@ -88,7 +89,7 @@ namespace __gnu_cxx
* stdio_filebuf is closed/destroyed.
*/
stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode,
- int_type __size = static_cast<int_type>(BUFSIZ));
+ size_t __size = static_cast<size_t>(BUFSIZ));
/**
* Possibly closes the external data stream, in the case of the file
@@ -117,7 +118,7 @@ namespace __gnu_cxx
template<typename _CharT, typename _Traits>
stdio_filebuf<_CharT, _Traits>::
stdio_filebuf(int __fd, std::ios_base::openmode __mode, bool __del,
- int_type __size)
+ size_t __size)
{
_M_file.sys_open(__fd, __mode, __del);
if (this->is_open())
@@ -125,7 +126,7 @@ namespace __gnu_cxx
_M_mode = __mode;
if (__size > 0 && __size < 4)
{
- // Specify unbuffered.
+ // Specify not to use an allocated buffer.
_M_buf = _M_unbuf;
_M_buf_size = __size;
_M_buf_size_opt = 0;
@@ -142,7 +143,7 @@ namespace __gnu_cxx
template<typename _CharT, typename _Traits>
stdio_filebuf<_CharT, _Traits>::
stdio_filebuf(std::__c_file* __f, std::ios_base::openmode __mode,
- int_type __size)
+ size_t __size)
{
_M_file.sys_open(__f, __mode);
if (this->is_open())
@@ -150,7 +151,7 @@ namespace __gnu_cxx
_M_mode = __mode;
if (__size > 0 && __size < 4)
{
- // Specify unbuffered.
+ // Specify not to use an allocated buffer.
_M_buf = _M_unbuf;
_M_buf_size = __size;
_M_buf_size_opt = 0;
diff --git a/libstdc++-v3/include/std/std_bitset.h b/libstdc++-v3/include/std/std_bitset.h
index e938662b4ee..ebe16504d18 100644
--- a/libstdc++-v3/include/std/std_bitset.h
+++ b/libstdc++-v3/include/std/std_bitset.h
@@ -219,7 +219,7 @@ namespace std
void
_Base_bitset<_Nw>::_M_do_left_shift(size_t __shift)
{
- if (__shift != 0)
+ if (__builtin_expect(__shift != 0, 1))
{
const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
@@ -244,7 +244,7 @@ namespace std
void
_Base_bitset<_Nw>::_M_do_right_shift(size_t __shift)
{
- if (__shift != 0)
+ if (__builtin_expect(__shift != 0, 1))
{
const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
@@ -570,6 +570,7 @@ namespace std
struct _Sanitize<0>
{ static void _S_do_sanitize(unsigned long) { } };
+
/**
* @brief The %bitset class represents a @e fixed-size sequence of bits.
*
@@ -578,17 +579,19 @@ namespace std
* (Note that %bitset does @e not meet the formal requirements of a
* <a href="tables.html#65">container</a>. Mainly, it lacks iterators.)
*
- * The template argument, @a _Nb, may be any non-negative number of type
- * size_t.
+ * The template argument, @a Nb, may be any non-negative number,
+ * specifying the number of bits (e.g., "0", "12", "1024*1024").
*
- * A %bitset of size N has N % (sizeof(unsigned long) * CHAR_BIT) unused
- * bits. (They are the high-order bits in the highest word.) It is
- * a class invariant that those unused bits are always zero.
+ * In the general unoptimized case, storage is allocated in word-sized
+ * blocks. Let B be the number of bits in a word, then (Nb+(B-1))/B
+ * words will be used for storage. B - Nb%B bits are unused. (They are
+ * the high-order bits in the highest word.) It is a class invariant
+ * that those unused bits are always zero.
*
* If you think of %bitset as "a simple array of bits," be aware that
* your mental picture is reversed: a %bitset behaves the same way as
* bits in integers do, with the bit at index 0 in the "least significant
- * / right-hand" position, and the bit at index N-1 in the "most
+ * / right-hand" position, and the bit at index Nb-1 in the "most
* significant / left-hand" position. Thus, unlike other containers, a
* %bitset's index "counts from right to left," to put it very loosely.
*
@@ -619,6 +622,7 @@ namespace std
* @endcode
*
* Also see http://gcc.gnu.org/onlinedocs/libstdc++/ext/sgiexts.html#ch23
+ * for a description of extensions.
*
* @if maint
* Most of the actual code isn't contained in %bitset<> itself, but in the
@@ -805,16 +809,26 @@ namespace std
bitset<_Nb>&
operator<<=(size_t __pos)
{
- this->_M_do_left_shift(__pos);
- this->_M_do_sanitize();
+ if (__builtin_expect(__pos < _Nb, 1))
+ {
+ this->_M_do_left_shift(__pos);
+ this->_M_do_sanitize();
+ }
+ else
+ this->_M_do_reset();
return *this;
}
bitset<_Nb>&
operator>>=(size_t __pos)
{
- this->_M_do_right_shift(__pos);
- this->_M_do_sanitize();
+ if (__builtin_expect(__pos < _Nb, 1))
+ {
+ this->_M_do_right_shift(__pos);
+ this->_M_do_sanitize();
+ }
+ else
+ this->_M_do_reset();
return *this;
}
//@}
@@ -1183,6 +1197,7 @@ namespace std
typename basic_istream<_CharT, _Traits>::sentry __sentry(__is);
if (__sentry)
{
+ ios_base::iostate __state = ios_base::goodbit;
basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
for (size_t __i = 0; __i < _Nb; ++__i)
{
@@ -1191,7 +1206,7 @@ namespace std
typename _Traits::int_type __c1 = __buf->sbumpc();
if (_Traits::eq_int_type(__c1, __eof))
{
- __is.setstate(ios_base::eofbit);
+ __state |= ios_base::eofbit;
break;
}
else
@@ -1201,19 +1216,21 @@ namespace std
if (__c == '0' || __c == '1')
__tmp.push_back(__c);
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2),
- __eof))
+ else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof))
{
- __is.setstate(ios_base::failbit);
+ __state |= ios_base::failbit;
break;
}
}
}
if (__tmp.empty() && !_Nb)
- __is.setstate(ios_base::failbit);
+ __state |= ios_base::failbit;
else
__x._M_copy_from_string(__tmp, static_cast<size_t>(0), _Nb);
+
+ if (__state != ios_base::goodbit)
+ __is.setstate(__state); // may throw an exception
}
return __is;
diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h
index f297296386b..252070b1389 100644
--- a/libstdc++-v3/include/std/std_complex.h
+++ b/libstdc++-v3/include/std/std_complex.h
@@ -456,7 +456,7 @@ namespace std
inline _Tp
norm(const complex<_Tp>& __z)
{
- return _Norm_helper<__is_floating<_Tp>::_M_type>::_S_do_it(__z);
+ return _Norm_helper<__is_floating<_Tp>::_M_type && !_GLIBCPP_FAST_MATH>::_S_do_it(__z);
}
template<typename _Tp>
@@ -565,24 +565,30 @@ namespace std
}
template<typename _Tp>
- inline complex<_Tp>
+ complex<_Tp>
pow(const complex<_Tp>& __x, const _Tp& __y)
{
- return exp(__y * log(__x));
+ if (__x.imag() == _Tp())
+ return pow(__x.real(), __y);
+
+ complex<_Tp> __t = log(__x);
+ return polar(exp(__y * __t.real()), __y * __t.imag());
}
template<typename _Tp>
inline complex<_Tp>
pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
{
- return exp(__y * log(__x));
+ return __x == _Tp() ? _Tp() : exp(__y * log(__x));
}
template<typename _Tp>
inline complex<_Tp>
pow(const _Tp& __x, const complex<_Tp>& __y)
{
- return exp(__y * log(__x));
+ return __x == _Tp()
+ ? _Tp()
+ : polar(pow(__x, __y.real()), __y.imag() * log(__x));
}
// 26.2.3 complex specializations
diff --git a/libstdc++-v3/include/std/std_fstream.h b/libstdc++-v3/include/std/std_fstream.h
index 685a38dd944..bcbbb971946 100644
--- a/libstdc++-v3/include/std/std_fstream.h
+++ b/libstdc++-v3/include/std/std_fstream.h
@@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -81,7 +81,6 @@ namespace std
typedef __basic_file<char> __file_type;
typedef typename traits_type::state_type __state_type;
typedef codecvt<char_type, char, __state_type> __codecvt_type;
- typedef typename __codecvt_type::result __res_type;
typedef ctype<char_type> __ctype_type;
//@}
@@ -159,7 +158,7 @@ namespace std
* @brief Returns true if the external file is open.
*/
bool
- is_open() const { return _M_file.is_open(); }
+ is_open() const throw() { return _M_file.is_open(); }
/**
* @brief Opens an external file.
@@ -189,7 +188,7 @@ namespace std
* If any operations fail, this function also fails.
*/
__filebuf_type*
- close();
+ close() throw();
protected:
/**
@@ -206,7 +205,7 @@ namespace std
* @endif
*/
void
- _M_destroy_internal_buffer();
+ _M_destroy_internal_buffer() throw();
// [27.8.1.4] overridden virtual functions
// [documentation is inherited]
@@ -234,11 +233,11 @@ namespace std
// [documentation is inherited]
virtual int_type
- underflow() { return _M_underflow_common(false); }
+ underflow();
// [documentation is inherited]
virtual int_type
- uflow() { return _M_underflow_common(true); }
+ uflow();
// [documentation is inherited]
virtual int_type
@@ -311,6 +310,7 @@ namespace std
virtual int
sync()
{
+ int __ret = 0;
bool __testput = _M_out_cur && _M_out_beg < _M_out_end;
// Make sure that the internal buffer resyncs its idea of
@@ -319,14 +319,19 @@ namespace std
{
// Need to restore current position after the write.
off_type __off = _M_out_cur - _M_out_end;
- _M_really_overflow(); // _M_file.sync() will be called within
- if (__off)
+
+ // _M_file.sync() will be called within
+ if (traits_type::eq_int_type(_M_really_overflow(),
+ traits_type::eof()))
+ __ret = -1;
+ else if (__off)
_M_file.seekoff(__off, ios_base::cur);
}
else
_M_file.sync();
+
_M_last_overflowed = false;
- return 0;
+ return __ret;
}
// [documentation is inherited]
@@ -431,7 +436,7 @@ namespace std
}
};
- // Explicit specializations, defined in src/fstream.cc.
+ // Explicit specialization declarations, defined in src/fstream.cc.
template<>
basic_filebuf<char>::int_type
basic_filebuf<char>::_M_underflow_common(bool __bump);
@@ -442,6 +447,18 @@ namespace std
basic_filebuf<wchar_t>::_M_underflow_common(bool __bump);
#endif
+ // Generic definitions.
+ template <typename _CharT, typename _Traits>
+ typename basic_filebuf<_CharT, _Traits>::int_type
+ basic_filebuf<_CharT, _Traits>::underflow()
+ { return _M_underflow_common(false); }
+
+ template <typename _CharT, typename _Traits>
+ typename basic_filebuf<_CharT, _Traits>::int_type
+ basic_filebuf<_CharT, _Traits>::uflow()
+ { return _M_underflow_common(true); }
+
+
// [27.8.1.5] Template class basic_ifstream
/**
* @brief Controlling input for files.
diff --git a/libstdc++-v3/include/std/std_iomanip.h b/libstdc++-v3/include/std/std_iomanip.h
index 26756a8041c..490d5ac1cfb 100644
--- a/libstdc++-v3/include/std/std_iomanip.h
+++ b/libstdc++-v3/include/std/std_iomanip.h
@@ -1,6 +1,7 @@
// Standard stream manipulators -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// 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
@@ -265,6 +266,7 @@ namespace std
// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
+#if _GLIBCPP_EXTERN_TEMPLATE
extern template ostream& operator<<(ostream&, _Setfill<char>);
extern template ostream& operator<<(ostream&, _Setiosflags);
extern template ostream& operator<<(ostream&, _Resetiosflags);
@@ -292,6 +294,7 @@ namespace std
extern template wistream& operator>>(wistream&, _Setprecision);
extern template wistream& operator>>(wistream&, _Setw);
#endif
+#endif
} // namespace std
#endif
diff --git a/libstdc++-v3/include/std/std_iosfwd.h b/libstdc++-v3/include/std/std_iosfwd.h
index 124c8ffc5ff..55b0e0b19fa 100644
--- a/libstdc++-v3/include/std/std_iosfwd.h
+++ b/libstdc++-v3/include/std/std_iosfwd.h
@@ -1,6 +1,7 @@
// Forwarding declarations -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// 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
@@ -42,7 +43,9 @@
#pragma GCC system_header
#include <bits/c++config.h>
-#include <bits/stringfwd.h> // For string forward declarations.
+#include <bits/c++locale.h>
+#include <cctype> // For isspace, etc.
+#include <bits/stringfwd.h> // For string forward declarations.
#include <bits/fpos.h>
#include <bits/functexcept.h>
diff --git a/libstdc++-v3/include/std/std_istream.h b/libstdc++-v3/include/std/std_istream.h
index 7e050322328..da9c7db1883 100644
--- a/libstdc++-v3/include/std/std_istream.h
+++ b/libstdc++-v3/include/std/std_istream.h
@@ -73,6 +73,14 @@ namespace std
typedef num_get<_CharT, __istreambuf_iter> __numget_type;
typedef ctype<_CharT> __ctype_type;
+ template<typename _CharT2, typename _Traits2>
+ friend basic_istream<_CharT2, _Traits2>&
+ operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2&);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_istream<_CharT2, _Traits2>&
+ operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*);
+
protected:
// Data Members:
/**
@@ -470,10 +478,6 @@ namespace std
*
* @note Since no characters are extracted, the next call to
* @c gcount() will return 0, as required by DR 60.
- *
- * @if maint
- * FIXME We don't comply with DR 60 here, _M_gcount is untouched.
- * @endif
*/
__istream_type&
putback(char_type __c);
@@ -507,9 +511,6 @@ namespace std
* @note This function does not count the number of characters
* extracted, if any, and therefore does not affect the next
* call to @c gcount().
- * @if maint
- * FIXME We don't comply with DR 60 here, _M_gcount is zeroed.
- * @endif
*/
int
sync();
@@ -539,9 +540,6 @@ namespace std
* @note This function does not count the number of characters
* extracted, if any, and therefore does not affect the next
* call to @c gcount().
- * @if maint
- * FIXME We don't comply with DR 60 here, _M_gcount is zeroed.
- * @endif
*/
__istream_type&
seekg(pos_type);
@@ -558,9 +556,6 @@ namespace std
* @note This function does not count the number of characters
* extracted, if any, and therefore does not affect the next
* call to @c gcount().
- * @if maint
- * FIXME We don't comply with DR 60 here, _M_gcount is zeroed.
- * @endif
*/
__istream_type&
seekg(off_type, ios_base::seekdir);
diff --git a/libstdc++-v3/include/std/std_limits.h b/libstdc++-v3/include/std/std_limits.h
index be4b5f2a90b..9be69477958 100644
--- a/libstdc++-v3/include/std/std_limits.h
+++ b/libstdc++-v3/include/std/std_limits.h
@@ -508,7 +508,7 @@ namespace std
static short denorm_min() throw()
{ return short(); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -558,7 +558,7 @@ namespace std
static unsigned short denorm_min() throw()
{ return static_cast<unsigned short>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -608,7 +608,7 @@ namespace std
static int denorm_min() throw()
{ return static_cast<int>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -658,7 +658,7 @@ namespace std
static unsigned int denorm_min() throw()
{ return static_cast<unsigned int>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -708,7 +708,7 @@ namespace std
static long denorm_min() throw()
{ return static_cast<long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -758,7 +758,7 @@ namespace std
static unsigned long denorm_min() throw()
{ return static_cast<unsigned long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -808,7 +808,7 @@ namespace std
static long long denorm_min() throw()
{ return static_cast<long long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
@@ -858,7 +858,7 @@ namespace std
static unsigned long long denorm_min() throw()
{ return static_cast<unsigned long long>(0); }
- static const bool is_iec559 = true;
+ static const bool is_iec559 = false;
static const bool is_bounded = true;
static const bool is_modulo = true;
diff --git a/libstdc++-v3/include/std/std_locale.h b/libstdc++-v3/include/std/std_locale.h
index 9c46b96bc2f..29602560766 100644
--- a/libstdc++-v3/include/std/std_locale.h
+++ b/libstdc++-v3/include/std/std_locale.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2002, 2003 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
@@ -42,11 +42,8 @@
#pragma GCC system_header
#include <bits/localefwd.h>
+#include <bits/locale_classes.h>
#include <bits/locale_facets.h>
#include <bits/locale_facets.tcc>
#endif
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/std/std_ostream.h b/libstdc++-v3/include/std/std_ostream.h
index 7a553296102..82f8a2864bc 100644
--- a/libstdc++-v3/include/std/std_ostream.h
+++ b/libstdc++-v3/include/std/std_ostream.h
@@ -73,6 +73,26 @@ namespace std
typedef num_put<_CharT, __ostreambuf_iter> __numput_type;
typedef ctype<_CharT> __ctype_type;
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2);
+
+ template<typename _Traits2>
+ friend basic_ostream<char, _Traits2>&
+ operator<<(basic_ostream<char, _Traits2>&, char);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*);
+
+ template<typename _Traits2>
+ friend basic_ostream<char, _Traits2>&
+ operator<<(basic_ostream<char, _Traits2>&, const char*);
+
+ template<typename _CharT2, typename _Traits2>
+ friend basic_ostream<_CharT2, _Traits2>&
+ operator<<(basic_ostream<_CharT2, _Traits2>&, const char*);
+
// [27.6.2.2] constructor/destructor
/**
* @brief Base constructor.
diff --git a/libstdc++-v3/include/std/std_sstream.h b/libstdc++-v3/include/std/std_sstream.h
index aaec83f082b..0940e60f52e 100644
--- a/libstdc++-v3/include/std/std_sstream.h
+++ b/libstdc++-v3/include/std/std_sstream.h
@@ -1,6 +1,6 @@
// String based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2002, 2003 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
@@ -140,7 +140,7 @@ namespace std
// _M_string, and may not be the correct size of the
// current stringbuf internal buffer.
__size_type __len = _M_string.size();
- if (_M_out_cur > _M_out_beg)
+ if (_M_out_end > _M_out_beg)
__len = max(__size_type(_M_out_end - _M_out_beg), __len);
return __string_type(_M_out_beg, _M_out_beg + __len);
}
diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h
index 883401bf6ee..d058459a65f 100644
--- a/libstdc++-v3/include/std/std_streambuf.h
+++ b/libstdc++-v3/include/std/std_streambuf.h
@@ -1,6 +1,6 @@
// Stream buffer classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -278,7 +278,7 @@ namespace std
// Assumptions:
// The pback buffer has only moved forward.
void
- _M_pback_destroy()
+ _M_pback_destroy() throw()
{
if (_M_pback_init)
{
@@ -364,7 +364,6 @@ namespace std
_M_buf_size = 0;
_M_buf_size_opt = 0;
_M_mode = ios_base::openmode(0);
- _M_buf_locale_init = false;
}
// [27.5.2.2.1] locales
@@ -380,6 +379,7 @@ namespace std
{
locale __tmp(this->getloc());
this->imbue(__loc);
+ _M_buf_locale = __loc;
return __tmp;
}
@@ -393,12 +393,7 @@ namespace std
*/
locale
getloc() const
- {
- if (_M_buf_locale_init)
- return _M_buf_locale;
- else
- return locale();
- }
+ { return _M_buf_locale; }
// [27.5.2.2.2] buffer management and positioning
//@{
@@ -584,7 +579,7 @@ namespace std
_M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
_M_out_beg(0), _M_out_cur(0), _M_out_end(0),
_M_mode(ios_base::openmode(0)), _M_buf_locale(locale()),
- _M_buf_locale_init(false), _M_pback_cur_save(0), _M_pback_end_save(0),
+ _M_pback_cur_save(0), _M_pback_end_save(0),
_M_pback_init(false)
{ }
@@ -694,16 +689,13 @@ namespace std
* are changed by this call. The standard adds, "Between invocations
* of this function a class derived from streambuf can safely cache
* results of calls to locale functions and to members of facets
- * so obtained." This function simply stores the new locale for use
- * by derived classes.
+ * so obtained."
+ *
+ * @note Base class version does nothing.
*/
virtual void
- imbue(const locale& __loc)
- {
- _M_buf_locale_init = true;
- if (_M_buf_locale != __loc)
- _M_buf_locale = __loc;
- }
+ imbue(const locale&)
+ { }
// [27.5.2.4.2] buffer management and positioning
/**
diff --git a/libstdc++-v3/libio/ChangeLog b/libstdc++-v3/libio/ChangeLog
index 86c09034435..35968197556 100644
--- a/libstdc++-v3/libio/ChangeLog
+++ b/libstdc++-v3/libio/ChangeLog
@@ -1,3 +1,47 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2002-12-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * Makefile.am (AM_CFLAGS): Remove DEBUG_FLAGS.
+
2001-02-03 Alexandre Oliva <aoliva@redhat.com>
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
diff --git a/libstdc++-v3/libio/Makefile.am b/libstdc++-v3/libio/Makefile.am
index dbba6ff51d7..e0496b2fa1b 100644
--- a/libstdc++-v3/libio/Makefile.am
+++ b/libstdc++-v3/libio/Makefile.am
@@ -64,4 +64,4 @@ EXTRA_DIST = iostreamP.h
libio_la_SOURCES = $(LIBIO_SRCS) $(LIBIO_WSRCS)
-AM_CFLAGS = -D_GNU_SOURCE @DEBUG_FLAGS@
+AM_CFLAGS = -D_GNU_SOURCE
diff --git a/libstdc++-v3/libio/Makefile.in b/libstdc++-v3/libio/Makefile.in
index 08c71d94d1b..cf998f13ba7 100644
--- a/libstdc++-v3/libio/Makefile.in
+++ b/libstdc++-v3/libio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -104,6 +115,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
@@ -160,7 +172,7 @@ EXTRA_DIST = iostreamP.h
libio_la_SOURCES = $(LIBIO_SRCS) $(LIBIO_WSRCS)
-AM_CFLAGS = -D_GNU_SOURCE @DEBUG_FLAGS@
+AM_CFLAGS = -D_GNU_SOURCE
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
@@ -172,31 +184,31 @@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libio_la_LDFLAGS =
libio_la_LIBADD =
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@libio_la_OBJECTS = \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@filedoalloc.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@genops.lo fileops.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@stdfiles.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@c_codecvt.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@iofclose.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@iofopen.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@wfiledoalloc.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@wfileops.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@wgenops.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_TRUE@iofwide.lo
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_FALSE@libio_la_OBJECTS = \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_FALSE@wfiledoalloc.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_FALSE@wfileops.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_FALSE@wgenops.lo \
-@GLIBCPP_NEED_WLIBIO_TRUE@@GLIBCPP_NEED_LIBIO_FALSE@iofwide.lo
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@libio_la_OBJECTS = \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@filedoalloc.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@genops.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@fileops.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@stdfiles.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@c_codecvt.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@iofclose.lo \
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_TRUE@iofopen.lo
-@GLIBCPP_NEED_WLIBIO_FALSE@@GLIBCPP_NEED_LIBIO_FALSE@libio_la_OBJECTS =
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@libio_la_OBJECTS = \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@filedoalloc.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@genops.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@fileops.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@stdfiles.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@c_codecvt.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@iofclose.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_FALSE@iofopen.lo
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@libio_la_OBJECTS = \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@filedoalloc.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@genops.lo fileops.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@stdfiles.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@c_codecvt.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@iofclose.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@iofopen.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@wfiledoalloc.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@wfileops.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@wgenops.lo \
+@GLIBCPP_NEED_LIBIO_TRUE@@GLIBCPP_NEED_WLIBIO_TRUE@iofwide.lo
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_TRUE@libio_la_OBJECTS = \
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_TRUE@wfiledoalloc.lo \
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_TRUE@wfileops.lo \
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_TRUE@wgenops.lo \
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_TRUE@iofwide.lo
+@GLIBCPP_NEED_LIBIO_FALSE@@GLIBCPP_NEED_WLIBIO_FALSE@libio_la_OBJECTS =
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
diff --git a/libstdc++-v3/libio/_G_config.h b/libstdc++-v3/libio/_G_config.h
index d6738c2bf7b..c548484c82a 100644
--- a/libstdc++-v3/libio/_G_config.h
+++ b/libstdc++-v3/libio/_G_config.h
@@ -1,3 +1,28 @@
+/* Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc.
+ This file is part of the GNU IO 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, if you link this library with files
+ compiled with a GNU compiler to produce an executable, this does
+ not 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. */
+
/* This file is needed by libio to define various configuration parameters.
These are always the same in the GNU C library. */
diff --git a/libstdc++-v3/libio/iolibio.h b/libstdc++-v3/libio/iolibio.h
index 61be4b73b94..31eb1a2b344 100644
--- a/libstdc++-v3/libio/iolibio.h
+++ b/libstdc++-v3/libio/iolibio.h
@@ -1,3 +1,28 @@
+/* Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc.
+ This file is part of the GNU IO 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, if you link this library with files
+ compiled with a GNU compiler to produce an executable, this does
+ not 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 "libio.h"
/* These emulate stdio functionality, but with a different name
diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in
index 09f2df1f77d..658627dd8c2 100644
--- a/libstdc++-v3/libmath/Makefile.in
+++ b/libstdc++-v3/libmath/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -105,6 +116,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
diff --git a/libstdc++-v3/libmath/stubs.c b/libstdc++-v3/libmath/stubs.c
index 586fd6db80e..1968bffe7f9 100644
--- a/libstdc++-v3/libmath/stubs.c
+++ b/libstdc++-v3/libmath/stubs.c
@@ -1,6 +1,6 @@
/* Stub definitions for libmath subpart of libstdc++. */
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003 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
@@ -108,6 +108,8 @@ float
hypotf(float x, float y)
{
float s = fabsf(x) + fabsf(y);
+ if (s == 0.0F)
+ return s;
x /= s; y /= s;
return s * sqrtf(x * x + y * y);
}
@@ -118,6 +120,8 @@ double
hypot(double x, double y)
{
double s = fabs(x) + fabs(y);
+ if (s == 0.0)
+ return s;
x /= s; y /= s;
return s * sqrt(x * x + y * y);
}
@@ -128,6 +132,8 @@ long double
hypotl(long double x, long double y)
{
long double s = fabsl(x) + fabsl(y);
+ if (s == 0.0L)
+ return s;
x /= s; y /= s;
return s * sqrtl(x * x + y * y);
}
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index 160e79f714e..8d66e0ef048 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the GNU C++ Support library.
##
-## Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
##
## Process this file with automake to produce Makefile.in.
##
@@ -47,9 +47,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
WARN_CXXFLAGS = \
@@ -98,7 +97,7 @@ sources = \
libsupc___la_SOURCES = $(sources) $(c_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-glibcppinstalldir = @gxx_include_dir@
+glibcppinstalldir = $(gxx_include_dir)
glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
@@ -128,7 +127,7 @@ dyn-string.o: dyn-string.c
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
$(DEFS) $(GCC_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
- $(AM_CPPFLAGS) $(CPPFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
@@ -143,6 +142,9 @@ AM_CXXFLAGS = \
$(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS)
+AM_MAKEFLAGS = \
+ "gxx_include_dir=$(gxx_include_dir)"
+
# libstdc++ libtool notes
# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index b517b458dd8..843c7f44d8d 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,13 +67,24 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@
@@ -101,6 +112,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
@@ -151,9 +163,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
@@ -208,7 +219,7 @@ sources = \
libsupc___la_SOURCES = $(sources) $(c_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-glibcppinstalldir = @gxx_include_dir@
+glibcppinstalldir = $(gxx_include_dir)
glibcppinstall_HEADERS = $(headers)
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
@@ -224,7 +235,7 @@ C_COMPILE = \
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
$(DEFS) $(GCC_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
- $(AM_CPPFLAGS) $(CPPFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
@@ -240,6 +251,10 @@ AM_CXXFLAGS = \
$(CONFIG_CXXFLAGS)
+AM_MAKEFLAGS = \
+ "gxx_include_dir=$(gxx_include_dir)"
+
+
# libstdc++ libtool notes
# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h
index adb1a00d307..301fa7fa792 100644
--- a/libstdc++-v3/libsupc++/cxxabi.h
+++ b/libstdc++-v3/libsupc++/cxxabi.h
@@ -175,6 +175,8 @@ protected:
unsigned __outer) const;
};
+class __class_type_info;
+
/* type information for a pointer to member variable */
class __pointer_to_member_type_info
: public __pbase_type_info
@@ -201,8 +203,6 @@ protected:
unsigned __outer) const;
};
-class __class_type_info;
-
/* helper class for __vmi_class_type */
class __base_class_type_info
{
diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc
index ba49dfe7e44..4a678eb9fb2 100644
--- a/libstdc++-v3/libsupc++/eh_catch.cc
+++ b/libstdc++-v3/libsupc++/eh_catch.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for catching.
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -39,15 +39,28 @@ __cxa_begin_catch (void *exc_obj_in)
{
_Unwind_Exception *exceptionObject
= reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
-
- // ??? Foreign exceptions can't be stacked here, and there doesn't
- // appear to be any place to store for __cxa_end_catch to destroy.
-
- __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
__cxa_eh_globals *globals = __cxa_get_globals ();
__cxa_exception *prev = globals->caughtExceptions;
- int count = header->handlerCount;
+ __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
+
+ // Foreign exceptions can't be stacked here. If the exception stack is
+ // empty, then fine. Otherwise we really have no choice but to terminate.
+ // Note that this use of "header" is a lie. It's fine so long as we only
+ // examine header->unwindHeader though.
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ {
+ if (prev != 0)
+ std::terminate ();
+
+ // Remember for end_catch and rethrow.
+ globals->caughtExceptions = header;
+
+ // ??? No sensible value to return; we don't know what the
+ // object is, much less where it is in relation to the header.
+ return 0;
+ }
+ int count = header->handlerCount;
if (count < 0)
// This exception was rethrown from an immediately enclosing region.
count = -count + 1;
@@ -71,8 +84,22 @@ __cxa_end_catch ()
{
__cxa_eh_globals *globals = __cxa_get_globals_fast ();
__cxa_exception *header = globals->caughtExceptions;
- int count = header->handlerCount;
+ // A rethrow of a foreign exception will be removed from the
+ // the exception stack immediately by __cxa_rethrow.
+ if (!header)
+ return;
+
+ // A foreign exception couldn't have been stacked (see above),
+ // so by definition processing must be complete.
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ {
+ globals->caughtExceptions = 0;
+ _Unwind_DeleteException (&header->unwindHeader);
+ return;
+ }
+
+ int count = header->handlerCount;
if (count < 0)
{
// This exception was rethrown. Decrement the (inverted) catch
@@ -92,7 +119,7 @@ __cxa_end_catch ()
}
else if (count < 0)
// A bug in the exception handling library or compiler.
- std::abort ();
+ std::terminate ();
header->handlerCount = count;
}
diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc
index acc9c2eb63e..2b315c3956e 100644
--- a/libstdc++-v3/libsupc++/eh_personality.cc
+++ b/libstdc++-v3/libsupc++/eh_personality.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- The GNU C++ exception personality routine.
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -124,6 +124,8 @@ get_adjusted_ptr (const std::type_info *catch_type,
return false;
}
+// Return true if THROW_TYPE matches one if the filter types.
+
static bool
check_exception_spec (lsda_header_info *info, const std::type_info *throw_type,
void *thrown_ptr, _Unwind_Sword filter_value)
@@ -154,6 +156,18 @@ check_exception_spec (lsda_header_info *info, const std::type_info *throw_type,
}
}
+// Return true if the filter spec is empty, ie throw().
+
+static bool
+empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
+{
+ const unsigned char *e = info->TType - filter_value - 1;
+ _Unwind_Word tmp;
+
+ e = read_uleb128 (e, &tmp);
+ return tmp == 0;
+}
+
// Using a different personality function name causes link failures
// when trying to mix code using different exception handling models.
#ifdef _GLIBCPP_SJLJ_EXCEPTIONS
@@ -197,6 +211,7 @@ PERSONALITY_FUNCTION (int version,
&& exception_class == __gxx_exception_class)
{
handler_switch_value = xh->handlerSwitchValue;
+ language_specific_data = xh->languageSpecificData;
landing_pad = (_Unwind_Ptr) xh->catchTemp;
found_type = (landing_pad == 0 ? found_terminate : found_handler);
goto install_context;
@@ -275,7 +290,7 @@ PERSONALITY_FUNCTION (int version,
// If ip is not present in the table, call terminate. This is for
// a destructor inside a cleanup, or a library routine the compiler
// was not expecting to throw.
- found_type = (actions & _UA_FORCE_UNWIND ? found_nothing : found_terminate);
+ found_type = found_terminate;
goto do_something;
found_something:
@@ -327,23 +342,15 @@ PERSONALITY_FUNCTION (int version,
// Positive filter values are handlers.
catch_type = get_ttype_entry (&info, ar_filter);
- // Null catch type is a catch-all handler. We can catch
- // foreign exceptions with this.
- if (! catch_type)
- {
- if (!(actions & _UA_FORCE_UNWIND))
- {
- saw_handler = true;
- break;
- }
- }
- else if (throw_type)
+ // Null catch type is a catch-all handler; we can catch foreign
+ // exceptions with this. Otherwise we must match types.
+ if (! catch_type
+ || (throw_type
+ && get_adjusted_ptr (catch_type, throw_type,
+ &thrown_ptr)))
{
- if (get_adjusted_ptr (catch_type, throw_type, &thrown_ptr))
- {
- saw_handler = true;
- break;
- }
+ saw_handler = true;
+ break;
}
}
else
@@ -352,9 +359,12 @@ PERSONALITY_FUNCTION (int version,
// ??? How do foreign exceptions fit in? As far as I can
// see we can't match because there's no __cxa_exception
// object to stuff bits in for __cxa_call_unexpected to use.
+ // Allow them iff the exception spec is non-empty. I.e.
+ // a throw() specification results in __unexpected.
if (throw_type
- && ! check_exception_spec (&info, throw_type, thrown_ptr,
- ar_filter))
+ ? ! check_exception_spec (&info, throw_type, thrown_ptr,
+ ar_filter)
+ : empty_exception_spec (&info, ar_filter))
{
saw_handler = true;
break;
@@ -400,19 +410,37 @@ PERSONALITY_FUNCTION (int version,
}
install_context:
- if (found_type == found_terminate)
+ // We can't use any of the cxa routines with foreign exceptions,
+ // because they all expect ue_header to be a struct __cxa_exception.
+ // So in that case, call terminate or unexpected directly.
+ if ((actions & _UA_FORCE_UNWIND)
+ || exception_class != __gxx_exception_class)
{
- __cxa_begin_catch (&xh->unwindHeader);
- __terminate (xh->terminateHandler);
+ if (found_type == found_terminate)
+ std::terminate ();
+ else if (handler_switch_value < 0)
+ {
+ try
+ { std::unexpected (); }
+ catch(...)
+ { std::terminate (); }
+ }
}
-
- // Cache the TType base value for __cxa_call_unexpected, as we won't
- // have an _Unwind_Context then.
- if (handler_switch_value < 0)
+ else
{
- parse_lsda_header (context, xh->languageSpecificData, &info);
- xh->catchTemp = base_of_encoded_value (info.ttype_encoding,
- context);
+ if (found_type == found_terminate)
+ {
+ __cxa_begin_catch (&xh->unwindHeader);
+ __terminate (xh->terminateHandler);
+ }
+
+ // Cache the TType base value for __cxa_call_unexpected, as we won't
+ // have an _Unwind_Context then.
+ if (handler_switch_value < 0)
+ {
+ parse_lsda_header (context, language_specific_data, &info);
+ xh->catchTemp = base_of_encoded_value (info.ttype_encoding, context);
+ }
}
_Unwind_SetGR (context, __builtin_eh_return_data_regno (0),
@@ -457,20 +485,19 @@ __cxa_call_unexpected (void *exc_obj_in)
catch(...)
{
// Get the exception thrown from unexpected.
- // ??? Foreign exceptions can't be stacked this way.
-
+
__cxa_eh_globals *globals = __cxa_get_globals_fast ();
__cxa_exception *new_xh = globals->caughtExceptions;
void *new_ptr = new_xh + 1;
-
+
// We don't quite have enough stuff cached; re-parse the LSDA.
parse_lsda_header (0, xh_lsda, &info);
-
+
// If this new exception meets the exception spec, allow it.
if (check_exception_spec (&info, new_xh->exceptionType,
new_ptr, xh_switch_value))
__throw_exception_again;
-
+
// If the exception spec allows std::bad_exception, throw that.
// We don't have a thrown object to compare against, but since
// bad_exception doesn't have virtual bases, that's OK; just pass 0.
@@ -479,6 +506,7 @@ __cxa_call_unexpected (void *exc_obj_in)
if (check_exception_spec (&info, &bad_exc, 0, xh_switch_value))
throw std::bad_exception();
#endif
+
// Otherwise, die.
__terminate (xh_terminate_handler);
}
diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc
index f20368a13f6..0e1306637bf 100644
--- a/libstdc++-v3/libsupc++/eh_throw.cc
+++ b/libstdc++-v3/libsupc++/eh_throw.cc
@@ -1,5 +1,5 @@
// -*- C++ -*- Exception handling routines for throwing.
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//
@@ -90,12 +90,19 @@ __cxa_rethrow ()
if (header)
{
// Tell __cxa_end_catch this is a rethrow.
- header->handlerCount = -header->handlerCount;
+ if (header->unwindHeader.exception_class != __gxx_exception_class)
+ globals->caughtExceptions = 0;
+ else
+ header->handlerCount = -header->handlerCount;
#ifdef _GLIBCPP_SJLJ_EXCEPTIONS
- _Unwind_SjLj_RaiseException (&header->unwindHeader);
+ _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader);
#else
+#ifdef _LIBUNWIND_STD_ABI
_Unwind_RaiseException (&header->unwindHeader);
+#else
+ _Unwind_Resume_or_Rethrow (&header->unwindHeader);
+#endif
#endif
// Some sort of unwinding error. Note that terminate is a handler.
diff --git a/libstdc++-v3/libsupc++/tinfo.cc b/libstdc++-v3/libsupc++/tinfo.cc
index adafc25e377..d6e465e0a38 100644
--- a/libstdc++-v3/libsupc++/tinfo.cc
+++ b/libstdc++-v3/libsupc++/tinfo.cc
@@ -1,5 +1,5 @@
// Methods for type_info for -*- C++ -*- Run Time Type Identification.
-// Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation
//
// This file is part of GNU CC.
@@ -482,8 +482,9 @@ __do_dyncast (ptrdiff_t src2dst,
result.whole2dst =
__sub_kind (result.whole2dst | result2.whole2dst);
}
- else if ((result.dst_ptr != 0 | result_ambig)
- && (result2.dst_ptr != 0 | result2_ambig))
+ else if ((result.dst_ptr != 0 & result2.dst_ptr != 0)
+ || (result.dst_ptr != 0 & result2_ambig)
+ || (result2.dst_ptr != 0 & result_ambig))
{
// Found two different DST_TYPE bases, or a valid one and a set of
// ambiguous ones, must disambiguate. See whether SRC_PTR is
diff --git a/libstdc++-v3/libsupc++/tinfo.h b/libstdc++-v3/libsupc++/tinfo.h
index b7191900d00..2c55e03a6d9 100644
--- a/libstdc++-v3/libsupc++/tinfo.h
+++ b/libstdc++-v3/libsupc++/tinfo.h
@@ -1,7 +1,33 @@
// RTTI support internals for -*- C++ -*-
-// Copyright (C) 1994, 1995, 1996, 1998, 1999, 2000, 2001
+// Copyright (C) 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2004
// Free Software Foundation
+// This file is part of GCC.
+//
+// GCC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// GCC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with GCC; see the file COPYING. If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// 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 "typeinfo"
#include <cstddef>
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 7ebb03291f3..a97c28b9c85 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@@ -105,6 +116,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
diff --git a/libstdc++-v3/po/string_literals.cc b/libstdc++-v3/po/string_literals.cc
index 776cf39068a..262e708a4dc 100644
--- a/libstdc++-v3/po/string_literals.cc
+++ b/libstdc++-v3/po/string_literals.cc
@@ -16,6 +16,15 @@
// 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 <libintl.h>
#define gettext_noop(Str) Str
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 4592168f48d..199bb65521f 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the src subdirectory of the GNU C++ Standard library.
##
-## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
@@ -29,19 +29,31 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler support.
CXX = @glibcpp_CXX@
+glibcpp_srcdir=@glibcpp_srcdir@
+glibcpp_builddir=@glibcpp_builddir@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
toolexeclib_LTLIBRARIES = libstdc++.la
+# Symbol versioning for shared libraries.
+if GLIBCPP_BUILD_VERSIONED_SHLIB
+version_arg = -Wl,--version-script=libstdc++-symbol.ver
+version_dep = libstdc++-symbol.ver
+libstdc++-symbol.ver: ${glibcpp_srcdir}/@SYMVER_MAP@
+ @LN_S@ ${glibcpp_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+else
+version_arg =
+version_dep =
+endif
+
# Compile flags that should be constant throughout the build, both for
# SUBDIRS and for libstdc++-v3 in general.
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
WARN_CXXFLAGS = \
@@ -60,7 +72,8 @@ INCLUDES = \
$(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \
$(TOPLEVEL_INCLUDES)
-# Source files linked in via configuration magic for a particular target.
+# Source files linked in via configuration/make substitution for a
+# particular target.
target_sources = \
codecvt_members.cc \
collate_members.cc \
@@ -70,12 +83,39 @@ target_sources = \
numeric_members.cc \
time_members.cc
-# Source files linked in via configuration magic for a particular
-# target, but with ad hoc naming rules.
+codecvt_members.cc: ${glibcpp_srcdir}/@CCODECVT_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_CC@ . || true
+
+collate_members.cc: ${glibcpp_srcdir}/@CCOLLATE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCOLLATE_CC@ . || true
+
+ctype_members.cc: ${glibcpp_srcdir}/@CCTYPE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCTYPE_CC@ . || true
+
+messages_members.cc: ${glibcpp_srcdir}/@CMESSAGES_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_CC@ . || true
+
+monetary_members.cc: ${glibcpp_srcdir}/@CMONEY_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMONEY_CC@ . || true
+
+numeric_members.cc: ${glibcpp_srcdir}/@CNUMERIC_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CNUMERIC_CC@ . || true
+
+time_members.cc: ${glibcpp_srcdir}/@CTIME_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_CC@ . || true
+
+# Source files linked in via configuration/make substitution for a
+# particular target, but with ad hoc naming rules.
target_sources_extra = \
basic_file.cc \
c++locale.cc
+c++locale.cc: ${glibcpp_srcdir}/@CLOCALE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_CC@ ./$@ || true
+
+basic_file.cc: ${glibcpp_srcdir}/@BASIC_FILE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_CC@ ./$@ || true
+
# Sources present in the src directory.
sources = \
bitset.cc \
@@ -114,20 +154,15 @@ VPATH = $(top_srcdir)/src:$(top_srcdir)
libstdc___la_SOURCES = $(sources)
libstdc___la_LIBADD = \
- ../libmath/libmath.la @libio_la@ \
- ../libsupc++/libsupc++convenience.la
+ $(top_builddir)/libmath/libmath.la @libio_la@ \
+ $(top_builddir)/libsupc++/libsupc++convenience.la
-if GLIBCPP_BUILD_VERSIONED_SHLIB
-version_arg=-Wl,--version-script=linker.map
-else
-version_arg=
-endif
+libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@
-libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD) linker.map
# Use special rules for the deprecated source files so that they find
# deprecated include files.
@@ -150,13 +185,13 @@ concept-inst.o: concept-inst.cc
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. (ie, --enable-debug)
+# as the occasion call for it.
AM_CXXFLAGS = \
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS)
+ $(CONFIG_CXXFLAGS)
# libstdc++ libtool notes
@@ -188,3 +223,37 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
# compilation driver.
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+
+
+# Added bits to build debug library.
+if GLIBCPP_BUILD_DEBUG
+all-local: build_debug
+install-data-local: install_debug
+else
+all-local:
+install-data-local:
+endif
+
+debugdir = debug
+
+# Build parallel set of debug objects here.
+stamp-debug:
+ if test ! -d ${debugdir}; then \
+ mkdir -p ${debugdir}; \
+ (cd ${debugdir}; \
+ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \
+ -e 's/srcdir = \.\./srcdir = ..\/../' \
+ -e 's/glibcpp_basedir = \.\./glibcpp_basedir = ..\/../' \
+ -e 's/all-local: build_debug/all-local:/' \
+ -e 's/install-data-local: install_debug/install-data-local:/' \
+ < ../Makefile > Makefile) ; \
+ fi; \
+ echo `date` > stamp-debug;
+
+build_debug: stamp-debug
+ (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
+
+# Install debug library here.
+install_debug:
+ (cd ${debugdir} && $(MAKE) \
+ toolexeclibdir=@glibcpp_toolexeclibdir@/debug install)
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 0974449aaa1..50aa12541f0 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -66,14 +66,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@
@@ -99,6 +110,7 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
@@ -111,10 +123,8 @@ glibcpp_CXX = @glibcpp_CXX@
glibcpp_MOFILES = @glibcpp_MOFILES@
glibcpp_POFILES = @glibcpp_POFILES@
glibcpp_basedir = @glibcpp_basedir@
-glibcpp_builddir = @glibcpp_builddir@
glibcpp_localedir = @glibcpp_localedir@
glibcpp_prefixdir = @glibcpp_prefixdir@
-glibcpp_srcdir = @glibcpp_srcdir@
glibcpp_thread_h = @glibcpp_thread_h@
glibcpp_toolexecdir = @glibcpp_toolexecdir@
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
@@ -131,9 +141,15 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
# Cross compiler support.
CXX = @glibcpp_CXX@
+glibcpp_srcdir = @glibcpp_srcdir@
+glibcpp_builddir = @glibcpp_builddir@
toolexecdir = @glibcpp_toolexecdir@
toolexeclibdir = @glibcpp_toolexeclibdir@
toolexeclib_LTLIBRARIES = libstdc++.la
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=libstdc++-symbol.ver
+@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@version_dep = libstdc++-symbol.ver
+@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@version_dep =
# Compile flags that should be constant throughout the build, both for
# SUBDIRS and for libstdc++-v3 in general.
@@ -141,9 +157,8 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @DEBUG_FLAGS@
+ @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
# Warning flags to use.
@@ -165,7 +180,8 @@ INCLUDES = \
$(TOPLEVEL_INCLUDES)
-# Source files linked in via configuration magic for a particular target.
+# Source files linked in via configuration/make substitution for a
+# particular target.
target_sources = \
codecvt_members.cc \
collate_members.cc \
@@ -176,8 +192,8 @@ target_sources = \
time_members.cc
-# Source files linked in via configuration magic for a particular
-# target, but with ad hoc naming rules.
+# Source files linked in via configuration/make substitution for a
+# particular target, but with ad hoc naming rules.
target_sources_extra = \
basic_file.cc \
c++locale.cc
@@ -222,19 +238,17 @@ VPATH = $(top_srcdir)/src:$(top_srcdir)
libstdc___la_SOURCES = $(sources)
libstdc___la_LIBADD = \
- ../libmath/libmath.la @libio_la@ \
- ../libsupc++/libsupc++convenience.la
+ $(top_builddir)/libmath/libmath.la @libio_la@ \
+ $(top_builddir)/libsupc++/libsupc++convenience.la
-@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=linker.map
-@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
+
+libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info @libtool_VERSION@ ${version_arg} \
-lm @LIBUNWIND_FLAG@
-libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD) linker.map
-
# Use special rules for the deprecated source files so that they find
# deprecated include files.
GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include
@@ -243,13 +257,13 @@ GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. (ie, --enable-debug)
+# as the occasion call for it.
AM_CXXFLAGS = \
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS)
+ $(CONFIG_CXXFLAGS)
# libstdc++ libtool notes
@@ -283,6 +297,8 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+
+debugdir = debug
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
@@ -460,7 +476,7 @@ install-info: install-info-am
install-exec-am: install-toolexeclibLTLIBRARIES
install-exec: install-exec-am
-install-data-am:
+install-data-am: install-data-local
install-data: install-data-am
install-am: all-am
@@ -468,7 +484,7 @@ install-am: all-am
install: install-am
uninstall-am: uninstall-toolexeclibLTLIBRARIES
uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES)
+all-am: Makefile $(LTLIBRARIES) all-local
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
@@ -521,11 +537,41 @@ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir 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
+install-info install-exec-am install-exec install-data-local \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-local all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcpp_srcdir}/@SYMVER_MAP@
+@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@ @LN_S@ ${glibcpp_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+codecvt_members.cc: ${glibcpp_srcdir}/@CCODECVT_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCODECVT_CC@ . || true
+
+collate_members.cc: ${glibcpp_srcdir}/@CCOLLATE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCOLLATE_CC@ . || true
+
+ctype_members.cc: ${glibcpp_srcdir}/@CCTYPE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CCTYPE_CC@ . || true
+
+messages_members.cc: ${glibcpp_srcdir}/@CMESSAGES_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_CC@ . || true
+
+monetary_members.cc: ${glibcpp_srcdir}/@CMONEY_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CMONEY_CC@ . || true
+
+numeric_members.cc: ${glibcpp_srcdir}/@CNUMERIC_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CNUMERIC_CC@ . || true
+
+time_members.cc: ${glibcpp_srcdir}/@CTIME_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CTIME_CC@ . || true
+
+c++locale.cc: ${glibcpp_srcdir}/@CLOCALE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@CLOCALE_CC@ ./$@ || true
+
+basic_file.cc: ${glibcpp_srcdir}/@BASIC_FILE_CC@
+ @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_CC@ ./$@ || true
strstream.lo: strstream.cc
$(LTCXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated -c $<
strstream.o: strstream.cc
@@ -539,6 +585,34 @@ concept-inst.lo: concept-inst.cc
concept-inst.o: concept-inst.cc
$(CXXCOMPILE) -D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates -c $<
+# Added bits to build debug library.
+@GLIBCPP_BUILD_DEBUG_TRUE@all-local: build_debug
+@GLIBCPP_BUILD_DEBUG_TRUE@install-data-local: install_debug
+@GLIBCPP_BUILD_DEBUG_FALSE@all-local:
+@GLIBCPP_BUILD_DEBUG_FALSE@install-data-local:
+
+# Build parallel set of debug objects here.
+stamp-debug:
+ if test ! -d ${debugdir}; then \
+ mkdir -p ${debugdir}; \
+ (cd ${debugdir}; \
+ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \
+ -e 's/srcdir = \.\./srcdir = ..\/../' \
+ -e 's/glibcpp_basedir = \.\./glibcpp_basedir = ..\/../' \
+ -e 's/all-local: build_debug/all-local:/' \
+ -e 's/install-data-local: install_debug/install-data-local:/' \
+ < ../Makefile > Makefile) ; \
+ fi; \
+ echo `date` > stamp-debug;
+
+build_debug: stamp-debug
+ (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
+
+# Install debug library here.
+install_debug:
+ (cd ${debugdir} && $(MAKE) \
+ toolexeclibdir=@glibcpp_toolexeclibdir@/debug install)
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/libstdc++-v3/src/codecvt.cc b/libstdc++-v3/src/codecvt.cc
index b9575cf70bc..bc5508a4f40 100644
--- a/libstdc++-v3/src/codecvt.cc
+++ b/libstdc++-v3/src/codecvt.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2003 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
@@ -46,26 +46,22 @@ namespace std
codecvt<char, char, mbstate_t>::
codecvt(size_t __refs)
: __codecvt_abstract_base<char, char, mbstate_t>(__refs)
- { _M_c_locale_codecvt = _S_c_locale; }
-
- codecvt<char, char, mbstate_t>::
- codecvt(__c_locale __cloc, size_t __refs)
- : __codecvt_abstract_base<char, char, mbstate_t>(__refs)
- { _M_c_locale_codecvt = _S_clone_c_locale(__cloc); }
+ { }
codecvt<char, char, mbstate_t>::
~codecvt()
- { _S_destroy_c_locale(_M_c_locale_codecvt); }
+ { }
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_out(state_type&, const intern_type* __from,
- const intern_type* __from_end, const intern_type*& __from_next,
- extern_type* __to, extern_type* __to_end,
+ const intern_type*, const intern_type*& __from_next,
+ extern_type* __to, extern_type*,
extern_type*& __to_next) const
{
- size_t __len = min(__from_end - __from, __to_end - __to);
- memcpy(__to, __from, __len);
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR19, "If returns noconv [...]
+ // there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;
@@ -83,12 +79,13 @@ namespace std
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_in(state_type&, const extern_type* __from,
- const extern_type* __from_end, const extern_type*& __from_next,
- intern_type* __to, intern_type* __to_end,
+ const extern_type*, const extern_type*& __from_next,
+ intern_type* __to, intern_type*,
intern_type*& __to_next) const
- {
- size_t __len = min(__from_end - __from, __to_end - __to);
- memcpy(__to, __from, __len);
+ {
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR19, "If returns noconv [...]
+ // there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;
@@ -120,16 +117,11 @@ namespace std
codecvt<wchar_t, char, mbstate_t>::
codecvt(size_t __refs)
: __codecvt_abstract_base<wchar_t, char, mbstate_t>(__refs)
- { _M_c_locale_codecvt = _S_c_locale; }
-
- codecvt<wchar_t, char, mbstate_t>::
- codecvt(__c_locale __cloc, size_t __refs)
- : __codecvt_abstract_base<wchar_t, char, mbstate_t>(__refs)
- { _M_c_locale_codecvt = _S_clone_c_locale(__cloc); }
+ { }
codecvt<wchar_t, char, mbstate_t>::
~codecvt()
- { _S_destroy_c_locale(_M_c_locale_codecvt); }
+ { }
codecvt_base::result
codecvt<wchar_t, char, mbstate_t>::
diff --git a/libstdc++-v3/src/concept-inst.cc b/libstdc++-v3/src/concept-inst.cc
index d0129e5f940..e173549105d 100644
--- a/libstdc++-v3/src/concept-inst.cc
+++ b/libstdc++-v3/src/concept-inst.cc
@@ -1,6 +1,6 @@
// Concept checking instantiations -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 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
@@ -39,6 +39,7 @@
#ifdef _GLIBCPP_CONCEPT_CHECKS
#include <memory>
+#include <iterator>
#include <ostream>
#define _Instantiate(...) template void __function_requires< __VA_ARGS__ > ()
diff --git a/libstdc++-v3/src/fstream.cc b/libstdc++-v3/src/fstream.cc
index be711339b72..2a099d69227 100644
--- a/libstdc++-v3/src/fstream.cc
+++ b/libstdc++-v3/src/fstream.cc
@@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -50,10 +50,14 @@ namespace std
// normal buffers and jet outta here before expensive
// fileops happen...
if (_M_pback_init)
+ _M_pback_destroy();
+
+ if (_M_in_cur && _M_in_cur < _M_in_end)
{
- _M_pback_destroy();
- if (_M_in_cur < _M_in_end)
- return traits_type::to_int_type(*_M_in_cur);
+ __ret = traits_type::to_int_type(*_M_in_cur);
+ if (__bump)
+ _M_in_cur_move(1);
+ return __ret;
}
// Sync internal and external buffers.
@@ -115,10 +119,14 @@ namespace std
// normal buffers and jet outta here before expensive
// fileops happen...
if (_M_pback_init)
+ _M_pback_destroy();
+
+ if (_M_in_cur && _M_in_cur < _M_in_end)
{
- _M_pback_destroy();
- if (_M_in_cur < _M_in_end)
- return traits_type::to_int_type(*_M_in_cur);
+ __ret = traits_type::to_int_type(*_M_in_cur);
+ if (__bump)
+ _M_in_cur_move(1);
+ return __ret;
}
// Sync internal and external buffers.
@@ -154,9 +162,10 @@ namespace std
const char* __eend;
char_type* __iend;
- __res_type __r = __cvt.in(_M_state_cur, __buf,
- __buf + __elen, __eend, _M_in_beg,
- _M_in_beg + _M_buf_size, __iend);
+ codecvt_base::result __r;
+ __r = __cvt.in(_M_state_cur, __buf,
+ __buf + __elen, __eend, _M_in_beg,
+ _M_in_beg + _M_buf_size, __iend);
if (__r == codecvt_base::ok)
__ilen = __iend - _M_in_beg;
else
diff --git a/libstdc++-v3/src/globals.cc b/libstdc++-v3/src/globals.cc
index d85bf3a6369..efbfdbe854b 100644
--- a/libstdc++-v3/src/globals.cc
+++ b/libstdc++-v3/src/globals.cc
@@ -47,7 +47,7 @@
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];
@@ -84,6 +84,11 @@ namespace __gnu_cxx
fake_facet_vec facet_vec[_GLIBCPP_NUM_FACETS];
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx9facet_vecE, _ZSt9facet_vec, GLIBCPP_3.2)
+ // To support combined facets and caches in facet array
+ typedef char fake_facet_cache_vec[sizeof(locale::facet*)]
+ __attribute__ ((aligned(__alignof__(locale::facet*))));
+ fake_facet_cache_vec facet_cache_vec[2 * _GLIBCPP_NUM_FACETS];
+
typedef char fake_ctype_c[sizeof(std::ctype<char>)]
__attribute__ ((aligned(__alignof__(std::ctype<char>))));
fake_ctype_c ctype_c;
@@ -224,6 +229,17 @@ namespace __gnu_cxx
_GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx10messages_wE, _ZSt10messages_w, GLIBCPP_3.2)
#endif
+ // Storage for static C locale caches
+ typedef char fake_locale_cache_np_c[sizeof(std::__locale_cache<numpunct<char> >)]
+ __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<char> >))));
+ fake_locale_cache_np_c locale_cache_np_c;
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ typedef char fake_locale_cache_np_w[sizeof(std::__locale_cache<numpunct<wchar_t> >)]
+ __attribute__ ((aligned(__alignof__(std::__locale_cache<numpunct<wchar_t> >))));
+ fake_locale_cache_np_w locale_cache_np_w;
+#endif
+
typedef char fake_filebuf[sizeof(stdio_filebuf<char>)]
__attribute__ ((aligned(__alignof__(stdio_filebuf<char>))));
fake_filebuf buf_cout;
@@ -266,6 +282,14 @@ namespace __gnu_cxx
_GLIBCPP_mutex_address_init ()
{ __GTHREAD_MUTEX_INIT_FUNCTION (_GLIBCPP_mutex_address); }
#endif
+
+ // GLIBCXX_ABI.
+ struct __compat
+ {
+ static const char _S_atoms[];
+ };
+ const char __compat::_S_atoms[] = "0123456789eEabcdfABCDF";
+ _GLIBCPP_ASM_SYMVER(_ZN9__gnu_cxx8__compat8_S_atomsE, _ZNSt10__num_base8_S_atomsE, GLIBCPP_3.2)
} // namespace __gnu_cxx
namespace std
diff --git a/libstdc++-v3/src/ios.cc b/libstdc++-v3/src/ios.cc
index 9f4c71841b4..00dbe1219c6 100644
--- a/libstdc++-v3/src/ios.cc
+++ b/libstdc++-v3/src/ios.cc
@@ -159,11 +159,12 @@ namespace std
void
ios_base::Init::_S_ios_create(bool __sync)
{
- int __out_size = __sync ? 0 : static_cast<int>(BUFSIZ);
+ size_t __out_size = __sync ? 0 : static_cast<size_t>(BUFSIZ);
#ifdef _GLIBCPP_HAVE_ISATTY
- int __in_size = (__sync || isatty (0)) ? 1 : static_cast<int>(BUFSIZ);
+ size_t __in_size =
+ (__sync || isatty (0)) ? 1 : static_cast<size_t>(BUFSIZ);
#else
- int __in_size = 1;
+ size_t __in_size = 1;
#endif
// NB: The file globals.cc creates the four standard files
@@ -172,10 +173,15 @@ namespace std
new (&buf_cout) stdio_filebuf<char>(stdout, ios_base::out, __out_size);
new (&buf_cin) stdio_filebuf<char>(stdin, ios_base::in, __in_size);
new (&buf_cerr) stdio_filebuf<char>(stderr, ios_base::out, __out_size);
+
new (&cout) ostream(&buf_cout);
new (&cin) istream(&buf_cin);
new (&cerr) ostream(&buf_cerr);
new (&clog) ostream(&buf_cerr);
+ cout.init(&buf_cout);
+ cin.init(&buf_cin);
+ cerr.init(&buf_cerr);
+ clog.init(&buf_cerr);
cin.tie(&cout);
cerr.flags(ios_base::unitbuf);
@@ -187,6 +193,10 @@ namespace std
new (&wcin) wistream(&buf_wcin);
new (&wcerr) wostream(&buf_wcerr);
new (&wclog) wostream(&buf_wcerr);
+ wcout.init(&buf_wcout);
+ wcin.init(&buf_wcin);
+ wcerr.init(&buf_wcerr);
+ wclog.init(&buf_wcerr);
wcin.tie(&wcout);
wcerr.flags(ios_base::unitbuf);
#endif
@@ -252,8 +262,6 @@ namespace std
{ words = new _Words[newsize]; }
catch (...)
{
- delete [] _M_word;
- _M_word = 0;
_M_streambuf_state |= badbit;
if (_M_streambuf_state & _M_exception)
__throw_ios_failure("ios_base::_M_grow_words failure");
@@ -270,6 +278,8 @@ namespace std
else
{
_M_streambuf_state |= badbit;
+ if (_M_streambuf_state & _M_exception)
+ __throw_ios_failure("ios_base::_M_grow_words failure");
return _M_word_zero;
}
}
@@ -286,8 +296,6 @@ namespace std
_M_precision = 6;
_M_width = 0;
_M_flags = skipws | dec;
- _M_callbacks = 0;
- _M_word_size = 0;
_M_ios_locale = locale();
}
@@ -301,7 +309,8 @@ namespace std
return __old;
}
- ios_base::ios_base() : _M_callbacks(0), _M_word(0)
+ ios_base::ios_base() : _M_callbacks(0), _M_word_size(_S_local_word_size),
+ _M_word(_M_local_word)
{
// Do nothing: basic_ios::init() does it.
// NB: _M_callbacks and _M_word must be zero for non-initialized
@@ -313,7 +322,7 @@ namespace std
{
_M_call_callbacks(erase_event);
_M_dispose_callbacks();
- if (_M_word && _M_word != _M_local_word)
+ if (_M_word != _M_local_word)
{
delete [] _M_word;
_M_word = 0;
diff --git a/libstdc++-v3/src/locale-inst.cc b/libstdc++-v3/src/locale-inst.cc
index 8f2c8638177..8da410f7ff8 100644
--- a/libstdc++-v3/src/locale-inst.cc
+++ b/libstdc++-v3/src/locale-inst.cc
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 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,7 +34,6 @@
#include <cstdlib>
#include <clocale>
#include <cstring>
-#include <cassert>
#include <locale>
namespace std
@@ -46,6 +45,7 @@ namespace std
template class moneypunct_byname<char, true>;
template class money_get<char, istreambuf_iterator<char> >;
template class money_put<char, ostreambuf_iterator<char> >;
+ template class __locale_cache<numpunct<char> >;
#ifdef _GLIBCPP_USE_WCHAR_T
template class moneypunct<wchar_t, false>;
@@ -54,6 +54,7 @@ namespace std
template class moneypunct_byname<wchar_t, true>;
template class money_get<wchar_t, istreambuf_iterator<wchar_t> >;
template class money_put<wchar_t, ostreambuf_iterator<wchar_t> >;
+ template class __locale_cache<numpunct<wchar_t> >;
#endif
// numpunct, numpunct_byname, num_get, and num_put
@@ -64,26 +65,26 @@ namespace std
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long) const;
#ifdef _GLIBCPP_USE_LONG_LONG
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
- _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long long) const;
#endif
@@ -97,8 +98,8 @@ namespace std
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
- long double) const;
-
+ long double) const;
+
#ifdef _GLIBCPP_USE_WCHAR_T
template class numpunct<wchar_t>;
template class numpunct_byname<wchar_t>;
@@ -108,27 +109,27 @@ namespace std
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, unsigned long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ unsigned long) const;
#ifdef _GLIBCPP_USE_LONG_LONG
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, long long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ long long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
- _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
- char, unsigned long long) const;
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
+ unsigned long long) const;
#endif
template
@@ -144,6 +145,64 @@ namespace std
long double) const;
#endif
+#if 1
+ // XXX GLIBCXX_ABI Deprecated, compatibility only.
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ long) const;
+
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ unsigned long) const;
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ long long) const;
+
+ template
+ ostreambuf_iterator<char>
+ num_put<char, ostreambuf_iterator<char> >::
+ _M_convert_int(ostreambuf_iterator<char>, ios_base&, char, char, char,
+ unsigned long long) const;
+#endif
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, long) const;
+
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, unsigned long) const;
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, long long) const;
+
+ template
+ ostreambuf_iterator<wchar_t>
+ num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
+ _M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
+ char, unsigned long long) const;
+#endif
+#endif
+
+#endif
+
// time_get and time_put
template class __timepunct<char>;
template class time_put<char, ostreambuf_iterator<char> >;
@@ -406,6 +465,17 @@ namespace std
has_facet<messages<wchar_t> >(const locale&);
#endif
+ // __use_cache
+ template
+ const __locale_cache<numpunct<char> >&
+ __use_cache<numpunct<char> >(const locale& __loc);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ const __locale_cache<numpunct<wchar_t> >&
+ __use_cache<numpunct<wchar_t> >(const locale& __loc);
+#endif
+
// locale
template
char*
@@ -451,6 +521,7 @@ namespace std
__convert_from_v(char*, const int, const char*, unsigned long,
const __c_locale&, int);
+#ifdef _GLIBCPP_USE_LONG_LONG
template
int
__convert_from_v(char*, const int, const char*, long long,
@@ -460,4 +531,31 @@ namespace std
int
__convert_from_v(char*, const int, const char*, unsigned long long,
const __c_locale&, int);
+#endif
+
+ template
+ int
+ __int_to_char(char*, const int, unsigned long, const char*,
+ ios_base::fmtflags, bool);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ int
+ __int_to_char(wchar_t*, const int, unsigned long, const wchar_t*,
+ ios_base::fmtflags, bool);
+#endif
+
+#ifdef _GLIBCPP_USE_LONG_LONG
+ template
+ int
+ __int_to_char(char*, const int, unsigned long long, const char*,
+ ios_base::fmtflags, bool);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ template
+ int
+ __int_to_char(wchar_t*, const int, unsigned long long, const wchar_t*,
+ ios_base::fmtflags, bool);
+#endif
+#endif
} // namespace std
diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc
index c5c6dd8a049..74532759181 100644
--- a/libstdc++-v3/src/locale.cc
+++ b/libstdc++-v3/src/locale.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -28,7 +28,6 @@
#include <clocale>
#include <cstring>
-#include <cassert>
#include <cctype>
#include <cwctype> // For towupper, etc.
#include <locale>
@@ -195,19 +194,19 @@ namespace std
}
else
{
- char* __res;
+ string __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");
+ __res = "C";
else
- __res = strdup(__env);
+ __res = __env;
// Scan the categories looking for the first one
// different from LANG.
size_t __i = 0;
- if (strcmp(__res, "C") == 0)
+ if (__res == "C")
for (; __i < _S_categories_size
+ _S_extra_categories_size; ++__i)
{
@@ -223,7 +222,7 @@ namespace std
{
__env = getenv(_S_categories[__i]);
if (__env && strcmp(__env, "") != 0
- && strcmp(__env, __res) != 0)
+ && __res != __env)
break;
}
@@ -274,11 +273,10 @@ namespace std
}
// ... otherwise either an additional instance of
// the "C" locale or LANG.
- else if (strcmp(__res, "C") == 0)
+ else if (__res == "C")
(_M_impl = _S_classic)->_M_add_reference();
else
- _M_impl = new _Impl(__res, 1);
- free(__res);
+ _M_impl = new _Impl(__res.c_str(), 1);
}
}
}
@@ -449,6 +447,8 @@ namespace std
__c_locale
locale::facet::_S_c_locale;
+ char locale::facet::_S_c_name[2];
+
locale::facet::
~facet() { }
@@ -500,13 +500,16 @@ namespace std
const money_base::pattern
money_base::_S_default_pattern = { {symbol, sign, none, value} };
- const char __num_base::_S_atoms[] = "0123456789eEabcdfABCDF";
+ const char* __num_base::_S_atoms_in = "0123456789eEabcdfABCDF";
+ const char* __num_base::_S_atoms_out ="-+xX0123456789abcdef0123456789ABCDEF";
- bool
- __num_base::_S_format_float(const ios_base& __io, char* __fptr, char __mod,
- streamsize __prec)
+ // _GLIBCPP_RESOLVE_LIB_DEFECTS
+ // According to the resolution of DR 231, about 22.2.2.2.2, p11,
+ // "str.precision() is specified in the conversion specification".
+ void
+ __num_base::_S_format_float(const ios_base& __io, char* __fptr,
+ char __mod, streamsize/* unused post DR 231 */)
{
- bool __incl_prec = false;
ios_base::fmtflags __flags = __io.flags();
*__fptr++ = '%';
// [22.2.2.2.2] Table 60
@@ -514,13 +517,12 @@ namespace std
*__fptr++ = '+';
if (__flags & ios_base::showpoint)
*__fptr++ = '#';
- // As per [22.2.2.2.2.11]
- if (__flags & ios_base::fixed || __prec > 0)
- {
- *__fptr++ = '.';
- *__fptr++ = '*';
- __incl_prec = true;
- }
+
+ // As per DR 231: _always_, not only when
+ // __flags & ios_base::fixed || __prec > 0
+ *__fptr++ = '.';
+ *__fptr++ = '*';
+
if (__mod)
*__fptr++ = __mod;
ios_base::fmtflags __fltfield = __flags & ios_base::floatfield;
@@ -532,7 +534,6 @@ namespace std
else
*__fptr++ = (__flags & ios_base::uppercase) ? 'G' : 'g';
*__fptr = '\0';
- return __incl_prec;
}
void
diff --git a/libstdc++-v3/src/localename.cc b/libstdc++-v3/src/localename.cc
index 892a951ce0d..38311fb64f7 100644
--- a/libstdc++-v3/src/localename.cc
+++ b/libstdc++-v3/src/localename.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -35,7 +35,8 @@ namespace __gnu_cxx
using namespace std;
// Defined in globals.cc.
- extern locale::facet** facet_vec;
+ extern locale::facet* facet_vec[_GLIBCPP_NUM_FACETS];
+ extern locale::facet* facet_cache_vec[2 * _GLIBCPP_NUM_FACETS];
extern char* facet_name[6 + _GLIBCPP_NUM_CATEGORIES];
extern std::ctype<char> ctype_c;
@@ -68,6 +69,11 @@ namespace __gnu_cxx
extern time_put<wchar_t> time_put_w;
extern std::messages<wchar_t> messages_w;
#endif
+
+ extern std::__locale_cache<numpunct<char> > locale_cache_np_c;
+#ifdef _GLIBCPP_USE_WCHAR_T
+ extern std::__locale_cache<numpunct<wchar_t> > locale_cache_np_w;
+#endif
} // namespace __gnu_cxx
namespace std
@@ -77,14 +83,22 @@ namespace std
locale::_Impl::
~_Impl() throw()
{
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
- if (_M_facets[__i])
- _M_facets[__i]->_M_remove_reference();
+ // Clean up facets, then caches. No cache refcounts for now.
+ if (_M_facets)
+ {
+ for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ if (_M_facets[__i])
+ _M_facets[__i]->_M_remove_reference();
+
+ for (size_t __i = _M_facets_size; __i < 2*_M_facets_size; ++__i)
+ if (_M_facets[__i])
+ delete (__locale_cache_base*)_M_facets[__i];
+ }
delete [] _M_facets;
for (size_t __i = 0;
__i < _S_categories_size + _S_extra_categories_size; ++__i)
- delete [] _M_names[__i];
+ delete [] _M_names[__i];
}
// Clone existing _Impl object.
@@ -92,29 +106,34 @@ namespace std
_Impl(const _Impl& __imp, size_t __refs)
: _M_references(__refs), _M_facets_size(__imp._M_facets_size) // XXX
{
+ _M_facets = 0;
+ for (size_t __i = 0; __i < _S_categories_size
+ + _S_extra_categories_size; ++__i)
+ _M_names[__i] = 0;
try
{
- _M_facets = new facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ // Space for facets and matching caches
+ _M_facets = new facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
_M_facets[__i] = 0;
+ for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ {
+ _M_facets[__i] = __imp._M_facets[__i];
+ 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;
+ }
}
- catch(...)
- {
- delete [] _M_facets;
- __throw_exception_again;
- }
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
- {
- _M_facets[__i] = __imp._M_facets[__i];
- if (_M_facets[__i])
- _M_facets[__i]->_M_add_reference();
- }
- for (size_t __i = 0;
- __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ catch(...)
{
- char* __new = new char[strlen(__imp._M_names[__i]) + 1];
- strcpy(__new, __imp._M_names[__i]);
- _M_names[__i] = __new;
+ this->~_Impl();
+ __throw_exception_again;
}
}
@@ -128,79 +147,85 @@ namespace std
__c_locale __cloc;
locale::facet::_S_create_c_locale(__cloc, __s);
+ _M_facets = 0;
+ for (size_t __i = 0; __i < _S_categories_size
+ + _S_extra_categories_size; ++__i)
+ _M_names[__i] = 0;
try
- {
- _M_facets = new facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
- _M_facets[__i] = 0;
- }
- catch(...)
{
- delete [] _M_facets;
- __throw_exception_again;
- }
+ // Space for facets and matching caches
+ _M_facets = new facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
+ _M_facets[__i] = 0;
- // Name all the categories.
- size_t __len = strlen(__s);
- if (!strchr(__s, ';'))
- {
- for (size_t __i = 0;
- __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ // Name all the categories.
+ size_t __len = strlen(__s);
+ if (!strchr(__s, ';'))
{
- _M_names[__i] = new char[__len + 1];
- strcpy(_M_names[__i], __s);
+ for (size_t __i = 0;
+ __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ {
+ _M_names[__i] = new char[__len + 1];
+ strcpy(_M_names[__i], __s);
+ }
}
- }
- else
- {
- const char* __beg = __s;
- for (size_t __i = 0;
- __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ else
{
- __beg = strchr(__beg, '=') + 1;
- const char* __end = strchr(__beg, ';');
- if (!__end)
- __end = __s + __len;
- char* __new = new char[__end - __beg + 1];
- memcpy(__new, __beg, __end - __beg);
- __new[__end - __beg] = '\0';
- _M_names[__i] = __new;
+ const char* __beg = __s;
+ for (size_t __i = 0;
+ __i < _S_categories_size + _S_extra_categories_size; ++__i)
+ {
+ __beg = strchr(__beg, '=') + 1;
+ const char* __end = strchr(__beg, ';');
+ if (!__end)
+ __end = __s + __len;
+ char* __new = new char[__end - __beg + 1];
+ memcpy(__new, __beg, __end - __beg);
+ __new[__end - __beg] = '\0';
+ _M_names[__i] = __new;
+ }
}
- }
- // Construct all standard facets and add them to _M_facets.
- _M_init_facet(new std::ctype<char>(__cloc, 0, false));
- _M_init_facet(new codecvt<char, char, mbstate_t>(__cloc));
- _M_init_facet(new numpunct<char>(__cloc));
- _M_init_facet(new num_get<char>);
- _M_init_facet(new num_put<char>);
- _M_init_facet(new std::collate<char>(__cloc));
- _M_init_facet(new moneypunct<char, false>(__cloc, __s));
- _M_init_facet(new moneypunct<char, true>(__cloc, __s));
- _M_init_facet(new money_get<char>);
- _M_init_facet(new money_put<char>);
- _M_init_facet(new __timepunct<char>(__cloc, __s));
- _M_init_facet(new time_get<char>);
- _M_init_facet(new time_put<char>);
- _M_init_facet(new std::messages<char>(__cloc, __s));
+ // Construct all standard facets and add them to _M_facets.
+ _M_init_facet(new std::ctype<char>(__cloc, 0, false));
+ _M_init_facet(new codecvt<char, char, mbstate_t>);
+ _M_init_facet(new numpunct<char>(__cloc));
+ _M_init_facet(new num_get<char>);
+ _M_init_facet(new num_put<char>);
+ _M_init_facet(new std::collate<char>(__cloc));
+ _M_init_facet(new moneypunct<char, false>(__cloc, __s));
+ _M_init_facet(new moneypunct<char, true>(__cloc, __s));
+ _M_init_facet(new money_get<char>);
+ _M_init_facet(new money_put<char>);
+ _M_init_facet(new __timepunct<char>(__cloc, __s));
+ _M_init_facet(new time_get<char>);
+ _M_init_facet(new time_put<char>);
+ _M_init_facet(new std::messages<char>(__cloc, __s));
#ifdef _GLIBCPP_USE_WCHAR_T
- _M_init_facet(new std::ctype<wchar_t>(__cloc));
- _M_init_facet(new codecvt<wchar_t, char, mbstate_t>(__cloc));
- _M_init_facet(new numpunct<wchar_t>(__cloc));
- _M_init_facet(new num_get<wchar_t>);
- _M_init_facet(new num_put<wchar_t>);
- _M_init_facet(new std::collate<wchar_t>(__cloc));
- _M_init_facet(new moneypunct<wchar_t, false>(__cloc, __s));
- _M_init_facet(new moneypunct<wchar_t, true>(__cloc, __s));
- _M_init_facet(new money_get<wchar_t>);
- _M_init_facet(new money_put<wchar_t>);
- _M_init_facet(new __timepunct<wchar_t>(__cloc, __s));
- _M_init_facet(new time_get<wchar_t>);
- _M_init_facet(new time_put<wchar_t>);
- _M_init_facet(new std::messages<wchar_t>(__cloc, __s));
+ _M_init_facet(new std::ctype<wchar_t>(__cloc));
+ _M_init_facet(new codecvt<wchar_t, char, mbstate_t>);
+ _M_init_facet(new numpunct<wchar_t>(__cloc));
+ _M_init_facet(new num_get<wchar_t>);
+ _M_init_facet(new num_put<wchar_t>);
+ _M_init_facet(new std::collate<wchar_t>(__cloc));
+ _M_init_facet(new moneypunct<wchar_t, false>(__cloc, __s));
+ _M_init_facet(new moneypunct<wchar_t, true>(__cloc, __s));
+ _M_init_facet(new money_get<wchar_t>);
+ _M_init_facet(new money_put<wchar_t>);
+ _M_init_facet(new __timepunct<wchar_t>(__cloc, __s));
+ _M_init_facet(new time_get<wchar_t>);
+ _M_init_facet(new time_put<wchar_t>);
+ _M_init_facet(new std::messages<wchar_t>(__cloc, __s));
#endif
- locale::facet::_S_destroy_c_locale(__cloc);
+ locale::facet::_S_destroy_c_locale(__cloc);
+ }
+ catch(...)
+ {
+ locale::facet::_S_destroy_c_locale(__cloc);
+ this->~_Impl();
+ __throw_exception_again;
+ }
}
// Construct "C" _Impl.
@@ -209,10 +234,14 @@ namespace std
: _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");
+ locale::facet::_S_c_name[0] = 'C';
+ locale::facet::_S_c_name[1] = '\0';
+ locale::facet::_S_create_c_locale(locale::facet::_S_c_locale,
+ locale::facet::_S_c_name);
- _M_facets = new(&facet_vec) facet*[_M_facets_size];
- for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ // Space for facets and matching caches
+ _M_facets = new(&facet_cache_vec) facet*[2*_M_facets_size];
+ for (size_t __i = 0; __i < 2*_M_facets_size; ++__i)
_M_facets[__i] = 0;
// Name all the categories.
@@ -220,7 +249,7 @@ namespace std
__i < _S_categories_size + _S_extra_categories_size; ++__i)
{
_M_names[__i] = new (&facet_name[__i]) char[2];
- strcpy(_M_names[__i], "C");
+ strcpy(_M_names[__i], locale::facet::_S_c_name);
}
// This is needed as presently the C++ version of "C" locales
@@ -260,6 +289,25 @@ namespace std
_M_init_facet(new (&time_put_w) time_put<wchar_t>(1));
_M_init_facet(new (&messages_w) std::messages<wchar_t>(1));
#endif
+
+ // Initialize the static locale caches for C locale.
+
+ locale ltmp(this); // Doesn't bump refcount
+ _M_add_reference(); // Bump so destructor doesn't trash us
+
+ // These need to be built in static allocated memory. There must
+ // be a better way to do this!
+ __locale_cache<numpunct<char> >* __lc =
+ new (&locale_cache_np_c) __locale_cache<numpunct<char> >(ltmp, true);
+ _M_facets[numpunct<char>::id._M_id() + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__lc);
+
+#ifdef _GLIBCPP_USE_WCHAR_T
+ __locale_cache<numpunct<wchar_t> >* __wlc =
+ new (&locale_cache_np_w) __locale_cache<numpunct<wchar_t> >(ltmp, true);
+ _M_facets[numpunct<wchar_t>::id._M_id() + _M_facets_size] =
+ reinterpret_cast<locale::facet*>(__wlc);
+#endif
}
void
@@ -278,9 +326,9 @@ namespace std
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]);
+ delete [] _M_names[__ix];
_M_names[__ix] = __new;
}
}
@@ -319,11 +367,16 @@ namespace std
facet** __old = _M_facets;
facet** __new;
const size_t __new_size = __index + 4;
- __new = new facet*[__new_size];
+ __new = new facet*[2 * __new_size];
for (size_t __i = 0; __i < _M_facets_size; ++__i)
__new[__i] = _M_facets[__i];
for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2)
__new[__i2] = 0;
+ // Also copy caches and clear extra space
+ for (size_t __i = 0; __i < _M_facets_size; ++__i)
+ __new[__i + __new_size] = _M_facets[__i + _M_facets_size];
+ for (size_t __i2 = _M_facets_size; __i2 < __new_size; ++__i2)
+ __new[__i2 + __new_size] = 0;
_M_facets_size = __new_size;
_M_facets = __new;
diff --git a/libstdc++-v3/src/misc-inst.cc b/libstdc++-v3/src/misc-inst.cc
index 74224b1d983..61cb1b36449 100644
--- a/libstdc++-v3/src/misc-inst.cc
+++ b/libstdc++-v3/src/misc-inst.cc
@@ -87,3 +87,21 @@ namespace std
string*, __false_type);
#endif
} // namespace std
+
+#ifdef _GLIBCPP_NEED_GENERIC_MUTEX
+namespace __gnu_cxx
+{
+#ifdef __GTHREAD_MUTEX_INIT
+ __gthread_mutex_t _Atomic_add_mutex = __GTHREAD_MUTEX_INIT;
+#else
+ // generic atomicity.h without static initialization
+ __gthread_mutex_t _Atomic_add_mutex;
+ __gthread_once_t _Atomic_add_mutex_once = __GTHREAD_ONCE_INIT;
+ void __gthread_atomic_add_mutex_once()
+ {
+ __GTHREAD_MUTEX_INIT_FUNCTION (&_Atomic_add_mutex);
+ }
+#endif
+} // namespace __gnu_cxx
+#endif // _GLIBCPP_NEED_GLOBAL_MUTEX
+
diff --git a/libstdc++-v3/src/strstream.cc b/libstdc++-v3/src/strstream.cc
index 4d585659b9b..00f5b734b7b 100644
--- a/libstdc++-v3/src/strstream.cc
+++ b/libstdc++-v3/src/strstream.cc
@@ -1,6 +1,6 @@
// strstream definitions -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 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
@@ -148,7 +148,7 @@ namespace std
if (pptr() == epptr() && _M_dynamic && !_M_frozen && !_M_constant)
{
ptrdiff_t old_size = epptr() - pbase();
- ptrdiff_t new_size = max(2 * old_size, ptrdiff_t(1));
+ ptrdiff_t new_size = max(ptrdiff_t(2 * old_size), ptrdiff_t(1));
char* buf = _M_alloc(new_size);
if (buf)
diff --git a/libstdc++-v3/src/wstring-inst.cc b/libstdc++-v3/src/wstring-inst.cc
index 0200fd42d67..ee07023fef1 100644
--- a/libstdc++-v3/src/wstring-inst.cc
+++ b/libstdc++-v3/src/wstring-inst.cc
@@ -1,3 +1,37 @@
+// wide string support -*- C++ -*-
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+// 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: 21 Strings library
+//
+
#include <bits/c++config.h>
#ifdef _GLIBCPP_USE_WCHAR_T
diff --git a/libstdc++-v3/testsuite/17_intro/headers.cc b/libstdc++-v3/testsuite/17_intro/headers.cc
index eb930f1ff00..4694079ed29 100644
--- a/libstdc++-v3/testsuite/17_intro/headers.cc
+++ b/libstdc++-v3/testsuite/17_intro/headers.cc
@@ -18,6 +18,9 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
+// FreeBSD wants warning clean system headers:
+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } }
+
// 17.4.1.2 Headers
diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits.cc b/libstdc++-v3/testsuite/18_support/numeric_limits.cc
index 4a1c498bb2d..540b4b7759f 100644
--- a/libstdc++-v3/testsuite/18_support/numeric_limits.cc
+++ b/libstdc++-v3/testsuite/18_support/numeric_limits.cc
@@ -289,12 +289,33 @@ bool test03()
return test;
}
+// libstdc++/8949
+bool test04()
+{
+ bool test = true;
+
+ VERIFY( !std::numeric_limits<short>::is_iec559 );
+ VERIFY( !std::numeric_limits<unsigned short>::is_iec559 );
+ VERIFY( !std::numeric_limits<int>::is_iec559 );
+ VERIFY( !std::numeric_limits<unsigned int>::is_iec559 );
+ VERIFY( !std::numeric_limits<long>::is_iec559 );
+ VERIFY( !std::numeric_limits<unsigned long>::is_iec559 );
+ VERIFY( !std::numeric_limits<long long>::is_iec559 );
+ VERIFY( !std::numeric_limits<unsigned long long>::is_iec559 );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
int main()
{
test01();
test02();
test03();
+ test04();
test_extrema<char>();
test_extrema<signed char>();
diff --git a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
index c45e66a4cd4..28e9d8ef160 100644
--- a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
+++ b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc
@@ -1,6 +1,6 @@
// 1999-06-04 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 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
@@ -230,7 +230,7 @@ void test05()
int main()
{
- __set_testsuite_memlimit();
+ __gnu_cxx_test::set_memory_limits();
test01();
test02();
test03();
diff --git a/libstdc++-v3/testsuite/21_strings/insert.cc b/libstdc++-v3/testsuite/21_strings/insert.cc
index e6140ac2e9b..5e1eda86959 100644
--- a/libstdc++-v3/testsuite/21_strings/insert.cc
+++ b/libstdc++-v3/testsuite/21_strings/insert.cc
@@ -1,6 +1,6 @@
// 1999-06-03 bkoz
-// Copyright (C) 1999 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2003 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
@@ -246,7 +246,7 @@ int test02(void)
int main()
{
- __set_testsuite_memlimit();
+ __gnu_cxx_test::set_memory_limits();
test01();
test02();
return 0;
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc b/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc
index 9cf4e7d5c70..b2acb675351 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt_members_char_char.cc
@@ -36,25 +36,33 @@ void test01()
const char* from_next;
int size = 25;
char* c_arr = new char[size];
+ char* c_ref = new char[size];
char* to_next;
locale loc;
c_codecvt::state_type state;
const c_codecvt* cvt = &use_facet<c_codecvt>(loc);
+ // According to the resolution of DR19 (see also libstd++/9168), in
+ // case of degenerate conversion ('noconv'), "there are no changes to
+ // the values in [to, to_limit)."
+ memset(c_ref, 'X', size);
+
// in
+ memset(c_arr, 'X', size);
result r1 = cvt->in(state, c_lit, c_lit + size, from_next,
c_arr, c_arr + size, to_next);
VERIFY( r1 == codecvt_base::noconv );
- VERIFY( !strcmp(c_arr, c_lit) );
+ VERIFY( !memcmp(c_arr, c_ref, size) );
VERIFY( from_next == c_lit );
VERIFY( to_next == c_arr );
// out
+ memset(c_arr, 'X', size);
result r2 = cvt->out(state, c_lit, c_lit + size, from_next,
c_arr, c_arr + size, to_next);
VERIFY( r2 == codecvt_base::noconv );
- VERIFY( !strcmp(c_arr, c_lit) );
+ VERIFY( !memcmp(c_arr, c_ref, size) );
VERIFY( from_next == c_lit );
VERIFY( to_next == c_arr );
@@ -77,6 +85,7 @@ void test01()
VERIFY( k == 1 );
delete [] c_arr;
+ delete [] c_ref;
}
// libstdc++/5280
diff --git a/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc b/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc
index 448119682cf..d79677f23d5 100644
--- a/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_put_members_char.cc
@@ -1,6 +1,6 @@
// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 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
@@ -363,6 +363,35 @@ void test05()
VERIFY( result == "0" );
}
+// libstdc++/9548 and DR 231
+void test06()
+{
+ using namespace std;
+ bool test = true;
+
+ const locale loc_c = locale::classic();
+
+ ostringstream oss1, oss2;
+ oss1.imbue(loc_c);
+ oss2.imbue(loc_c);
+ const num_put<char>& np1 = use_facet<num_put<char> >(oss1.getloc());
+ const num_put<char>& np2 = use_facet<num_put<char> >(oss2.getloc());
+
+ string result1, result2;
+
+ oss1.precision(-1);
+ oss1.setf(ios_base::fixed, ios_base::floatfield);
+ np1.put(oss1.rdbuf(), oss1, '+', 30.5);
+ result1 = oss1.str();
+ VERIFY( result1 == "30.500000" );
+
+ oss2.precision(0);
+ oss2.setf(ios_base::scientific, ios_base::floatfield);
+ np2.put(oss2.rdbuf(), oss2, '+', 1.0);
+ result2 = oss2.str();
+ VERIFY( result2 == "1e+00" );
+}
+
int main()
{
test01();
@@ -370,6 +399,7 @@ int main()
test03();
test04();
test05();
+ test06();
return 0;
}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc
index d3060dd8194..97b2363414f 100644
--- a/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc
+++ b/libstdc++-v3/testsuite/22_locale/num_put_members_wchar_t.cc
@@ -1,6 +1,6 @@
// 2001-11-19 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2003 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
@@ -362,6 +362,35 @@ void test05()
result = oss.str();
VERIFY( result == L"0" );
}
+
+// libstdc++/9548 and DR 231
+void test06()
+{
+ using namespace std;
+ bool test = true;
+
+ const locale loc_c = locale::classic();
+
+ wostringstream woss1, woss2;
+ woss1.imbue(loc_c);
+ woss2.imbue(loc_c);
+ const num_put<wchar_t>& np1 = use_facet<num_put<wchar_t> >(woss1.getloc());
+ const num_put<wchar_t>& np2 = use_facet<num_put<wchar_t> >(woss2.getloc());
+
+ wstring result1, result2;
+
+ woss1.precision(-1);
+ woss1.setf(ios_base::fixed, ios_base::floatfield);
+ np1.put(woss1.rdbuf(), woss1, '+', 30.5);
+ result1 = woss1.str();
+ VERIFY( result1 == L"30.500000" );
+
+ woss2.precision(0);
+ woss2.setf(ios_base::scientific, ios_base::floatfield);
+ np2.put(woss2.rdbuf(), woss2, '+', 1.0);
+ result2 = woss2.str();
+ VERIFY( result2 == L"1e+00" );
+}
#endif
int main()
@@ -372,6 +401,7 @@ int main()
test03();
test04();
test05();
+ test06();
#endif
return 0;
}
diff --git a/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc b/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
index c657706f714..e89fa457a73 100644
--- a/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
@@ -1,6 +1,6 @@
// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2004 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
@@ -89,7 +89,7 @@ void test01()
oss.imbue(loc_de);
iterator_type os_it02 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
string result2 = oss.str();
- VERIFY( result2 == "Son" );
+ VERIFY( result2 == "Son" || result2 == "So" );
oss.str(empty); // "%d.%m.%Y"
iterator_type os_it23 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
diff --git a/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc b/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc
index 347f41f526e..d7a011646d8 100644
--- a/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc
+++ b/libstdc++-v3/testsuite/22_locale/time_put_members_wchar_t.cc
@@ -1,6 +1,6 @@
// 2001-10-02 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation
+// Copyright (C) 2001, 2002, 2004 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
@@ -91,7 +91,7 @@ void test01()
oss.imbue(loc_de);
iterator_type os_it02 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
wstring result2 = oss.str();
- VERIFY( result2 == L"Son" );
+ VERIFY( result2 == L"Son" || result2 == L"So" );
oss.str(empty); // "%d.%m.%Y"
iterator_type os_it23 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x');
diff --git a/libstdc++-v3/testsuite/23_containers/bitset_members.cc b/libstdc++-v3/testsuite/23_containers/bitset_members.cc
index 30e0ab6e063..054018df662 100644
--- a/libstdc++-v3/testsuite/23_containers/bitset_members.cc
+++ b/libstdc++-v3/testsuite/23_containers/bitset_members.cc
@@ -22,6 +22,7 @@
#include <bitset>
#include <stdexcept>
+#include <sstream>
#include <testsuite_hooks.h>
void
@@ -52,9 +53,26 @@ void test02()
bs.count();
}
+void test03()
+{
+ std::bitset<5> b;
+ std::stringstream ss ("101");
+
+ ss.exceptions(std::ios_base::eofbit);
+
+ try
+ {
+ ss >> b;
+ }
+ catch (std::exception&) {}
+
+ VERIFY( b.to_ulong() == 5 );
+}
+
int main()
{
test01();
test02();
+ test03();
return 0;
}
diff --git a/libstdc++-v3/testsuite/23_containers/bitset_shift.cc b/libstdc++-v3/testsuite/23_containers/bitset_shift.cc
index 35531bf5b4c..01fdd2fbc4b 100644
--- a/libstdc++-v3/testsuite/23_containers/bitset_shift.cc
+++ b/libstdc++-v3/testsuite/23_containers/bitset_shift.cc
@@ -106,9 +106,25 @@ test01() {
return test;
}
+bool
+test02()
+{
+ bool test = true;
+
+ std::bitset<66> b;
+ b <<= 400;
+ VERIFY( b.count() == 0 );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+ return test;
+}
+
int
main() {
test01();
+ test02();
return 0;
}
diff --git a/libstdc++-v3/testsuite/23_containers/deque_ctor.cc b/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
index 7df103405eb..50a813368bb 100644
--- a/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque_ctor.cc
@@ -1,6 +1,6 @@
// 2001-12-27 pme
//
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -26,7 +26,15 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
-typedef std::deque<gnu_counting_struct> gdeque;
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+using __gnu_cxx_test::counter;
+using __gnu_cxx_test::destructor;
+
+typedef std::deque<counter> gdeque;
bool test = true;
@@ -133,10 +141,10 @@ void
defaultConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// run test
const X u;
@@ -171,7 +179,7 @@ void
copyConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const int copyBaseSize = 17; // arbitrary
@@ -179,7 +187,7 @@ copyConstructorCheck()
X a;
for (int i = 0; i < copyBaseSize; ++i)
a.push_back(i);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(!a.empty());
@@ -192,7 +200,7 @@ copyConstructorCheck()
// assert postconditions
VERIFY(u == a);
- VERIFY(copyBaseSize == gnu_copy_constructor::count());
+ VERIFY(copyBaseSize == copy_constructor::count());
// teardown
}
@@ -212,20 +220,20 @@ void
fillConstructorCheck()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(23);
const X::value_type t(111);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// run test
X a(n, t);
// assert postconditions
VERIFY(n == a.size());
- VERIFY(n == gnu_copy_constructor::count());
+ VERIFY(n == copy_constructor::count());
// teardown
}
@@ -239,18 +247,18 @@ fillConstructorCheck()
void
fillConstructorCheck2()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const int f = 23;
const int l = 111;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
X a(f, l);
VERIFY(f == a.size());
- VERIFY(f == gnu_copy_constructor::count());
+ VERIFY(f == copy_constructor::count());
}
@@ -265,7 +273,7 @@ void
rangeConstructorCheckForwardIterator()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(726);
@@ -275,14 +283,14 @@ rangeConstructorCheckForwardIterator()
X::iterator j = source.end();
X::size_type rangeSize = std::distance(i, j);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// test
X a(i, j);
// assert postconditions
VERIFY(rangeSize == a.size());
- VERIFY(gnu_copy_constructor::count() <= rangeSize);
+ VERIFY(copy_constructor::count() <= rangeSize);
}
@@ -295,7 +303,7 @@ rangeConstructorCheckForwardIterator()
void
rangeConstructorCheckInputIterator()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
std::istringstream ibuf("1234567890123456789");
@@ -303,12 +311,12 @@ rangeConstructorCheckInputIterator()
std::istream_iterator<char> i(ibuf);
std::istream_iterator<char> j;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
X a(i, j);
VERIFY(rangeSize == a.size());
- VERIFY(gnu_copy_constructor::count() <= (2 * rangeSize));
+ VERIFY(copy_constructor::count() <= (2 * rangeSize));
}
@@ -316,7 +324,7 @@ rangeConstructorCheckInputIterator()
void
copyAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type n(18);
@@ -324,12 +332,12 @@ copyAssignmentCheck()
X a(n, t);
X r;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
r = a;
VERIFY(r == a);
- VERIFY(n == gnu_copy_constructor::count());
+ VERIFY(n == copy_constructor::count());
}
@@ -343,7 +351,7 @@ copyAssignmentCheck()
void
fillAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type starting_size(10);
@@ -352,7 +360,7 @@ fillAssignmentCheck()
const X::value_type t(111);
X a(starting_size, starting_value);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// preconditions
VERIFY(starting_size == a.size());
@@ -362,8 +370,8 @@ fillAssignmentCheck()
// postconditions
VERIFY(n == a.size());
- VERIFY(n == (gnu_copy_constructor::count() + gnu_assignment_operator::count()));
- VERIFY(starting_size == (gnu_destructor::count() + gnu_assignment_operator::count()));
+ VERIFY(n == (copy_constructor::count() + assignment_operator::count()));
+ VERIFY(starting_size == (destructor::count() + assignment_operator::count()));
}
@@ -391,7 +399,7 @@ fillAssignmentCheck()
void
rangeAssignmentCheck()
{
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
const X::size_type source_size(726);
@@ -407,13 +415,13 @@ rangeAssignmentCheck()
X a(starting_size, starting_value);
VERIFY(starting_size == a.size());
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
a.assign(i, j);
VERIFY(source == a);
- VERIFY(rangeSize == (gnu_copy_constructor::count() + gnu_assignment_operator::count()));
- VERIFY(starting_size == (gnu_destructor::count() + gnu_assignment_operator::count()));
+ VERIFY(rangeSize == (copy_constructor::count() + assignment_operator::count()));
+ VERIFY(starting_size == (destructor::count() + assignment_operator::count()));
}
@@ -423,7 +431,7 @@ void
rangeAssignmentCheckWithException()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
// test
@@ -436,7 +444,7 @@ void
fillAssignmentCheck2()
{
// setup
- typedef gnu_copy_tracker T;
+ typedef copy_tracker T;
typedef std::deque<T> X;
// test
@@ -449,12 +457,12 @@ void
test_default_ctor_exception_safety()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::deque<T, gnu_new_allocator<T> > X;
+ typedef copy_tracker T;
+ typedef std::deque<T, tracker_alloc<T> > X;
T::reset();
- gnu_copy_constructor::throw_on(3);
- gnu_allocator_tracker::resetCounts();
+ copy_constructor::throw_on(3);
+ allocation_tracker::resetCounts();
// test
try
@@ -467,7 +475,7 @@ test_default_ctor_exception_safety()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
}
@@ -477,14 +485,14 @@ void
test_copy_ctor_exception_safety()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::deque<T, gnu_new_allocator<T> > X;
+ typedef copy_tracker T;
+ typedef std::deque<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
T::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_constructor::throw_on(3);
// test
@@ -499,7 +507,7 @@ test_copy_ctor_exception_safety()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
}
diff --git a/libstdc++-v3/testsuite/23_containers/list_modifiers.cc b/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
index 14b53657e05..213fc41f17d 100644
--- a/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
+++ b/libstdc++-v3/testsuite/23_containers/list_modifiers.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003 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
@@ -21,7 +21,7 @@
#include <list>
#include <testsuite_hooks.h>
-typedef gnu_copy_tracker T;
+typedef __gnu_cxx_test::copy_tracker T;
bool test = true;
diff --git a/libstdc++-v3/testsuite/23_containers/map_operators.cc b/libstdc++-v3/testsuite/23_containers/map_operators.cc
index 47604deb4a8..03a7860c8ba 100644
--- a/libstdc++-v3/testsuite/23_containers/map_operators.cc
+++ b/libstdc++-v3/testsuite/23_containers/map_operators.cc
@@ -1,6 +1,6 @@
// 2000-09-07 bgarcia@laurelnetworks.com
-// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003 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
@@ -28,11 +28,11 @@
// http://gcc.gnu.org/ml/libstdc++/2000-11/msg00093.html
void test02()
{
- typedef std::map<int,const int> MapInt;
+ typedef std::map<int, int> MapInt;
MapInt m;
- for (unsigned i=0;i<10;++i)
+ for (unsigned i = 0; i < 10; ++i)
m.insert(MapInt::value_type(i,i));
for (MapInt::const_iterator i = m.begin(); i != m.end(); ++i)
diff --git a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
index 621ef7e373f..b6e347de309 100644
--- a/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector_capacity.cc
@@ -1,7 +1,7 @@
// 1999-05-07
// bkoz
-// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -26,6 +26,13 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+using __gnu_cxx_test::destructor;
+
template<typename T>
struct A { };
@@ -58,7 +65,6 @@ void test01()
void test02()
{
bool test = true;
-
{
std::vector<int> array;
const std::size_t size = array.max_size();
@@ -100,34 +106,15 @@ void test02()
}
}
-void test03()
-{
- bool test = true;
- std::vector<int> v;
- try
- {
- v.resize(v.max_size());
- v[v.max_size() - 1] = 2002;
- }
- catch (const std::bad_alloc& error)
- {
- test = true;
- }
- catch (...)
- {
- test = false;
- }
- VERIFY( test );
-}
-
// Verifies basic functionality of reserve() with forced reallocation.
void
test_reserve()
{
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(3);
const X::size_type old_size = a.size();
@@ -141,11 +128,11 @@ test_reserve()
VERIFY(new_capacity <= a.capacity());
// [23.2.4.1 (3)]
VERIFY(old_size == a.size());
- VERIFY(gnu_copy_constructor::count() <= old_size);
- VERIFY(gnu_destructor::count() <= old_size);
+ VERIFY(copy_constructor::count() <= old_size);
+ VERIFY(destructor::count() <= old_size);
}
// check for memory leaks
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
}
// Verifies that reserve() with reallocation offers the strong
@@ -153,17 +140,18 @@ test_reserve()
void
test_reserve_exception_guarantee()
{
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
const X::size_type old_size = a.size();
const X::size_type old_capacity = a.capacity();
const X::size_type new_capacity = old_capacity + 10;
T::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_constructor::throw_on(3);
try
{
@@ -175,16 +163,15 @@ test_reserve_exception_guarantee()
}
VERIFY(old_capacity == a.capacity());
- VERIFY(gnu_copy_constructor::count() == gnu_destructor::count()+1);
+ VERIFY(copy_constructor::count() == destructor::count()+1);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
}
int main()
{
test01();
test02();
- test03();
test_reserve();
test_reserve_exception_guarantee();
return 0;
diff --git a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
index d8789f57146..8b93207606e 100644
--- a/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector_ctor.cc
@@ -1,6 +1,6 @@
// 1999-06-29 bkoz
-// Copyright (C) 1999-2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003 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
@@ -25,6 +25,12 @@
#include <testsuite_allocator.h>
#include <testsuite_hooks.h>
+using __gnu_cxx_test::copy_tracker;
+using __gnu_cxx_test::allocation_tracker;
+using __gnu_cxx_test::tracker_alloc;
+using __gnu_cxx_test::copy_constructor;
+using __gnu_cxx_test::assignment_operator;
+
template<typename T>
struct A { };
@@ -32,7 +38,6 @@ struct B { };
void test01()
{
-
// 1
bool test = true;
std::vector< A<B> > vec01;
@@ -62,22 +67,22 @@ void test02()
void
test03()
{
- const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
- const int B[] = {7, 7, 7, 7, 7};
- const int N = sizeof(A) / sizeof(int);
- const int M = sizeof(B) / sizeof(int);
- bool test = true;
-
- std::vector<int> v3(A, A + N);
- VERIFY(std::equal(v3.begin(), v3.end(), A));
-
- std::vector<int> v4(v3.begin(), v3.end());
- VERIFY(std::equal(v4.begin(), v4.end(), A));
-
- std::vector<int> v5(M, 7);
- VERIFY(std::equal(v5.begin(), v5.end(), B));
- VERIFY(std::equal(B, B + M, v5.begin()));
-
+ bool test = true;
+ const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
+ const int B[] = {7, 7, 7, 7, 7};
+ const int N = sizeof(A) / sizeof(int);
+ const int M = sizeof(B) / sizeof(int);
+
+ std::vector<int> v3(A, A + N);
+ VERIFY(std::equal(v3.begin(), v3.end(), A));
+
+ std::vector<int> v4(v3.begin(), v3.end());
+ VERIFY(std::equal(v4.begin(), v4.end(), A));
+
+ std::vector<int> v5(M, 7);
+ VERIFY(std::equal(v5.begin(), v5.end(), B));
+ VERIFY(std::equal(B, B + M, v5.begin()));
+
#ifdef DEBUG_ASSERT
assert(test);
#endif
@@ -105,12 +110,13 @@ void
test_default_ctor_exception_gurantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
+ allocation_tracker::resetCounts();
// run test
try
@@ -124,7 +130,7 @@ test_default_ctor_exception_gurantee()
// assert postconditions
VERIFY(("memory leak detected:",
- gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal()));
+ allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal()));
// teardown
}
@@ -137,14 +143,15 @@ void
test_copy_ctor_exception_gurantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// run test
try
@@ -158,11 +165,11 @@ test_copy_ctor_exception_gurantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// operator=()
@@ -175,13 +182,14 @@ void
test_assignment_operator_1()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X r(9);
X a(r.size() - 2);
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// preconditions
VERIFY(r.size() > a.size());
@@ -191,25 +199,26 @@ test_assignment_operator_1()
// assert postconditions
VERIFY(r == a);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X r(1);
r.reserve(17);
X a(r.size() + 7);
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// preconditions
VERIFY(r.size() < a.size());
@@ -220,25 +229,26 @@ test_assignment_operator_2()
// assert postconditions
VERIFY(r == a);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X r(1);
X a(r.capacity() + 7);
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// preconditions
VERIFY(r.capacity() < a.size());
@@ -249,26 +259,27 @@ test_assignment_operator_3()
// assert postconditions
VERIFY(r == a);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_assignment_operator_3_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X r(1);
X a(r.capacity() + 7);
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// preconditions
VERIFY(r.capacity() < a.size());
@@ -285,11 +296,11 @@ test_assignment_operator_3_exception_guarantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// fill assign()
@@ -304,35 +315,37 @@ void
test_fill_assign_1()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X::size_type old_size = a.size();
X::size_type new_size = old_size - 2;
const T t;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// run test
a.assign(new_size, t);
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
a.reserve(11);
@@ -341,8 +354,8 @@ test_fill_assign_2()
X::size_type new_size = old_size + 2;
const T t;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(old_size < new_size);
@@ -353,21 +366,22 @@ test_fill_assign_2()
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X::size_type old_size = a.size();
@@ -375,7 +389,7 @@ test_fill_assign_3()
X::size_type new_size = old_capacity + 4;
const T t;
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(new_size > old_capacity);
@@ -387,22 +401,23 @@ test_fill_assign_3()
VERIFY(a.size() == new_size);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_3_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X::size_type old_size = a.size();
@@ -410,8 +425,8 @@ test_fill_assign_3_exception_guarantee()
X::size_type new_size = old_capacity + 4;
const T t;
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// assert preconditions
VERIFY(new_size > old_capacity);
@@ -431,39 +446,40 @@ test_fill_assign_3_exception_guarantee()
VERIFY(a.capacity() == old_capacity);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_fill_assign_4()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X::size_type old_size = a.size();
X::size_type new_size = old_size - 2;
X::size_type new_value = 117;
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// run test
a.assign(new_size, new_value);
// assert postconditions
VERIFY(a.size() == new_size);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
// range assign()
@@ -486,15 +502,16 @@ void
test_range_assign_2()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
X b(3);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(b.size() < a.capacity());
@@ -505,27 +522,28 @@ test_range_assign_2()
// assert postconditions
VERIFY(a.size() == b.size());
VERIFY(a == b);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_3()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
X a(7);
a.reserve(a.size() + 7);
X b(a.size() + 3);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
// assert preconditions
VERIFY(a.size() < b.size());
@@ -537,27 +555,28 @@ test_range_assign_3()
// assert postconditions
VERIFY(a.size() == b.size());
VERIFY(a == b);
- VERIFY(gnu_allocator_tracker::allocationTotal() == 0);
+ VERIFY(allocation_tracker::allocationTotal() == 0);
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_4()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X b(a.capacity() + 7);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
+ copy_tracker::reset();
// assert preconditions
VERIFY(b.size() > a.capacity());
@@ -569,29 +588,30 @@ test_range_assign_4()
VERIFY(a.size() == b.size());
VERIFY(a == b);
}
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
void
test_range_assign_4_exception_guarantee()
{
// setup
- typedef gnu_copy_tracker T;
- typedef std::vector<T, gnu_new_allocator<T> > X;
+ bool test = true;
+ typedef copy_tracker T;
+ typedef std::vector<T, tracker_alloc<T> > X;
- gnu_allocator_tracker::resetCounts();
+ allocation_tracker::resetCounts();
{
X a(7);
X b(a.capacity() + 7);
X::size_type old_size = a.size();
- gnu_copy_tracker::reset();
- gnu_copy_constructor::throw_on(3);
+ copy_tracker::reset();
+ copy_constructor::throw_on(3);
// assert preconditions
VERIFY(b.size() > a.capacity());
@@ -608,12 +628,12 @@ test_range_assign_4_exception_guarantee()
}
// assert postconditions
- VERIFY(gnu_allocator_tracker::allocationTotal() > 0);
- VERIFY(gnu_allocator_tracker::allocationTotal() == gnu_allocator_tracker::deallocationTotal());
+ VERIFY(allocation_tracker::allocationTotal() > 0);
+ VERIFY(allocation_tracker::allocationTotal() == allocation_tracker::deallocationTotal());
// teardown
- gnu_copy_tracker::reset();
- gnu_allocator_tracker::resetCounts();
+ copy_tracker::reset();
+ allocation_tracker::resetCounts();
}
diff --git a/libstdc++-v3/testsuite/23_containers/vector_resize.cc b/libstdc++-v3/testsuite/23_containers/vector_resize.cc
new file mode 100644
index 00000000000..3cc6c57ed42
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector_resize.cc
@@ -0,0 +1,57 @@
+// 1999-05-07
+// bkoz
+
+// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// 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.
+
+// 23.2.4.2 vector capacity
+
+// XXX This test will not work for irix6 because of bug(s) in libc malloc
+// XXX for very large allocations. However -lmalloc seems to work.
+// See http://gcc.gnu.org/ml/libstdc++/2002-12/msg00131.html
+// { dg-options "-lmalloc" { target mips*-*-irix6* } }
+
+#include <vector>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ bool test = true;
+ std::vector<int> v;
+ try
+ {
+ v.resize(v.max_size());
+ v[v.max_size() - 1] = 2002;
+ }
+ catch (const std::bad_alloc& error)
+ {
+ test = true;
+ }
+ catch (...)
+ {
+ test = false;
+ }
+ VERIFY( test );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/c99_classification_macros_c.cc b/libstdc++-v3/testsuite/26_numerics/c99_classification_macros_c.cc
index 63a994c6bbb..15508a303fd 100644
--- a/libstdc++-v3/testsuite/26_numerics/c99_classification_macros_c.cc
+++ b/libstdc++-v3/testsuite/26_numerics/c99_classification_macros_c.cc
@@ -27,7 +27,8 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
-// { dg-do compile }
+// { dg-do compile { xfail *-*-linux-gnu *-*-freebsd5* } }
+// { dg-excess-errors "" { target *-*-linux-gnu *-*-freebsd5* } }
#include <math.h>
diff --git a/libstdc++-v3/testsuite/26_numerics/c_math_dynamic.cc b/libstdc++-v3/testsuite/26_numerics/c_math_dynamic.cc
new file mode 100644
index 00000000000..25efa10a192
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/c_math_dynamic.cc
@@ -0,0 +1,58 @@
+// Inspired by libstdc++/7680 & 26_numerics/c_math.cc, 2003-04-12 ljr
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do link }
+// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } }
+
+#include <cmath>
+
+int
+test01()
+{
+ float a = 1.f;
+ float b;
+ std::modf(a, &b);
+ return 0;
+}
+
+int
+test02 ()
+{
+ float a = 0.0f;
+ float b = std::acos(b);
+ return 0;
+}
+
+int
+main()
+{
+ test01();
+ test02();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/pow.C b/libstdc++-v3/testsuite/26_numerics/complex/pow.C
new file mode 100644
index 00000000000..c3f8479828d
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/complex/pow.C
@@ -0,0 +1,14 @@
+// PR libbstdc++/10689
+// Origin: Daniel.Levine@jhuaph.edu
+
+#include <complex>
+#include <testsuite_hooks.h>
+
+int main()
+{
+ std::complex<double> z(0, 1) ;
+
+ VERIFY(pow(z, 1.0/3.0) == 0.0);
+
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/complex_value.cc b/libstdc++-v3/testsuite/26_numerics/complex_value.cc
index 99f477a5fa1..ebdd71a2c71 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex_value.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex_value.cc
@@ -1,7 +1,8 @@
+// { dg-options "-O0" }
// 2000-11-20
// Benjamin Kosnik bkoz@redhat.com
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2003 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
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray_name_lookup.cc b/libstdc++-v3/testsuite/26_numerics/valarray_name_lookup.cc
index 4079b14a18a..a0bd21e791e 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray_name_lookup.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray_name_lookup.cc
@@ -1,6 +1,6 @@
// 2002-08-02 gdr
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -70,7 +70,7 @@ namespace My
Number cos(Number);
Number cosh(Number);
- Number acosh(Number);
+ Number acos(Number);
Number sin(Number);
Number sinh(Number);
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray_operators.cc b/libstdc++-v3/testsuite/26_numerics/valarray_operators.cc
new file mode 100644
index 00000000000..5753e471672
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/valarray_operators.cc
@@ -0,0 +1,67 @@
+// { dg-do run }
+// 2003-02-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+// Copyright (C) 2003 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.
+
+#include <valarray>
+#include <testsuite_hooks.h>
+
+void test01() // check unary operators
+{
+ std::valarray<int> u(1);
+ u[0]=1;
+
+ VERIFY( (+u)[0] == +1 );
+ VERIFY( (-u)[0] == -1 );
+ VERIFY( (!u)[0] == !1 );
+ VERIFY( (~u)[0] == ~1 );
+}
+
+void test02() // check binary operators
+{
+ std::valarray<int> u(1), v(1);
+ u[0]=1;
+ v[0]=3;
+
+ VERIFY( (u+ v)[0] == (1+ 3) );
+ VERIFY( (u- v)[0] == (1- 3) );
+ VERIFY( (u* v)[0] == (1* 3) );
+ VERIFY( (u/ v)[0] == (1/ 3) );
+ VERIFY( (u% v)[0] == (1% 3) );
+ VERIFY( (u^ v)[0] == (1^ 3) );
+ VERIFY( (u& v)[0] == (1& 3) );
+ VERIFY( (u| v)[0] == (1| 3) );
+ VERIFY( (u<<v)[0] == (1<<3) );
+ VERIFY( (u>>v)[0] == (1>>3) );
+ VERIFY( (u&&v)[0] == (1&&3) );
+ VERIFY( (u||v)[0] == (1||3) );
+ VERIFY( (u==v)[0] == (1==3) );
+ VERIFY( (u!=v)[0] == (1!=3) );
+ VERIFY( (u< v)[0] == (1< 3) );
+ VERIFY( (u> v)[0] == (1> 3) );
+ VERIFY( (u<=v)[0] == (1<=3) );
+ VERIFY( (u>=v)[0] == (1>=3) );
+}
+
+int main()
+{
+ test01();
+ test02();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/filebuf.cc b/libstdc++-v3/testsuite/27_io/filebuf.cc
index e72f2ca8f6f..ab873be82b5 100644
--- a/libstdc++-v3/testsuite/27_io/filebuf.cc
+++ b/libstdc++-v3/testsuite/27_io/filebuf.cc
@@ -1,6 +1,6 @@
// 1999-01-17 bkoz test functionality of basic_filebuf for char_type == char
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -45,9 +45,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_filebuf<type_t, char_traits<type_t> >;
- template class basic_filebuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_filebuf<pod_char, char_traits<pod_char> >;
} // test
diff --git a/libstdc++-v3/testsuite/27_io/filebuf_members.cc b/libstdc++-v3/testsuite/27_io/filebuf_members.cc
index 9f48229f67a..a504331a62a 100644
--- a/libstdc++-v3/testsuite/27_io/filebuf_members.cc
+++ b/libstdc++-v3/testsuite/27_io/filebuf_members.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -89,23 +89,24 @@ void test_02()
// read (ext)
FILE* f2 = fopen(name_01, "r");
VERIFY( f2 != NULL );
+ if (f2)
{
__gnu_cxx::stdio_filebuf<char> fb(f2, std::ios_base::in, 512);
+ close_num = fclose(f2);
}
- close_num = fclose(f2);
VERIFY( close_num == 0 );
-
// read (standard)
FILE* f = fopen(name_01, "r");
VERIFY( f != NULL );
+ if (f)
{
std::ifstream ifstream1(name_01);
VERIFY( ifstream1.is_open() );
std::ios_base::iostate st01 = ifstream1.rdstate();
VERIFY( st01 == std::ios_base::goodbit );
+ close_num = fclose(f);
}
- close_num = fclose(f);
VERIFY( close_num == 0 );
}
@@ -128,11 +129,14 @@ void test_03()
void
test_04()
{
+ bool test = true;
+ const char* name = "tmp_fifo1";
signal(SIGPIPE, SIG_IGN);
-
- if (0 != mkfifo("xxx", S_IRWXU))
+
+ unlink(name);
+ if (0 != mkfifo(name, S_IRWXU))
{
- std::cerr << "failed to creat fifo" << std::endl;
+ std::cerr << "failed to create fifo" << std::endl;
exit(-1);
}
@@ -140,18 +144,18 @@ test_04()
if (fval == -1)
{
std::cerr << "failed to fork" << std::endl;
- unlink("xxx");
+ unlink(name);
exit(-1);
}
else if (fval == 0)
{
- std::ifstream ifs("xxx");
+ std::ifstream ifs(name);
sleep(1);
ifs.close();
exit(0);
}
- std::ofstream ofs("xxx");
+ std::ofstream ofs(name);
sleep(2);
ofs.put('t');
@@ -166,31 +170,100 @@ test_04()
ofs.close();
if (!(ofs.rdstate() & std::ios::failbit))
{
- std::cerr << "fail bit was not set!" << std::endl;
- unlink("xxx");
+ test = false;
+ VERIFY( test );
+ unlink(name);
exit(-1);
}
- unlink("xxx");
- exit(0);
+ unlink(name);
}
// Charles Leggett <CGLeggett@lbl.gov>
void test_05()
{
bool test = true;
+ const char* name = "tmp_file5";
std::fstream scratch_file;
- scratch_file.open("SCRATCH", std::ios::out);
+ scratch_file.open(name, std::ios::out);
scratch_file.close();
- scratch_file.open("SCRATCH", std::ios::in);
+ scratch_file.open(name, std::ios::in);
if (!scratch_file)
VERIFY( false );
scratch_file.close();
}
+// libstdc++/9507
+void test_06()
+{
+ bool test = true;
+ const char* name = "tmp_fifo2";
+
+ signal(SIGPIPE, SIG_IGN);
+
+ unlink(name);
+ mkfifo(name, S_IRWXU);
+
+ if (!fork())
+ {
+ std::filebuf fbuf;
+ fbuf.open(name, std::ios_base::in);
+ fbuf.sgetc();
+ fbuf.close();
+ exit(0);
+ }
+
+ std::filebuf fbuf;
+ std::filebuf* r = fbuf.open(name,
+ std::ios_base::in
+ | std::ios_base::out
+ | std::ios_base::ate);
+ VERIFY( !fbuf.is_open() );
+ VERIFY( r == NULL );
+}
+
+// libstdc++/9964
+void test_07()
+{
+ using namespace std;
+ bool test = true;
+
+ const char* name = "tmp_fifo3";
+
+ signal(SIGPIPE, SIG_IGN);
+
+ unlink(name);
+ mkfifo(name, S_IRWXU);
+
+ int child = fork();
+ VERIFY( child != -1 );
+
+ if (child == 0)
+ {
+ filebuf fbin;
+ fbin.open(name, ios_base::in);
+ sleep(2);
+ fbin.close();
+ exit(0);
+ }
+
+ filebuf fb;
+ sleep(1);
+ filebuf* ret = fb.open(name, ios_base::in | ios_base::out);
+ VERIFY( ret != NULL );
+ VERIFY( fb.is_open() );
+
+ sleep(3);
+ fb.sputc('a');
+
+ ret = fb.close();
+ VERIFY( ret != NULL );
+ VERIFY( !fb.is_open() );
+}
+
int
main()
{
@@ -199,6 +272,8 @@ main()
test_03();
test_04();
test_05();
+ test_06();
+ test_07();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc
index 0a92788296a..d650c4a91c0 100644
--- a/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc
+++ b/libstdc++-v3/testsuite/27_io/filebuf_virtuals.cc
@@ -1,6 +1,6 @@
// 2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -21,6 +21,12 @@
// 27.8.1.4 Overridden virtual functions
#include <fstream>
+#include <unistd.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <locale>
#include <testsuite_hooks.h>
// @require@ %-*.tst %-*.txt
@@ -70,7 +76,10 @@ const char carray_02[] = "memphis, new orleans, and savanah";
const char name_01[] = "filebuf_virtuals-1.txt"; // file with data in it
const char name_02[] = "filebuf_virtuals-2.txt"; // empty file, need to create
const char name_03[] = "filebuf_virtuals-3.txt"; // empty file, need to create
-
+const char name_04[] = "filebuf_virtuals-4.txt"; // empty file, need to create
+const char name_05[] = "filebuf_virtuals-5.txt"; // empty file, need to create
+const char name_06[] = "filebuf_virtuals-6.txt"; // empty file, need to create
+const char name_07[] = "filebuf_virtuals-7.txt"; // empty file, need to create
class derived_filebuf: public std::filebuf
{
@@ -514,6 +523,292 @@ void test06()
VERIFY( buffer[0] == 'a' );
}
+// libstdc++/9322
+void test07()
+{
+ using std::locale;
+ bool test = true;
+
+ locale loc;
+ std::filebuf ob;
+ VERIFY( ob.getloc() == loc );
+
+ locale::global(locale("en_US"));
+ VERIFY( ob.getloc() == loc );
+
+ locale loc_de ("de_DE");
+ locale ret = ob.pubimbue(loc_de);
+ VERIFY( ob.getloc() == loc_de );
+ VERIFY( ret == loc );
+
+ locale::global(loc);
+ VERIFY( ob.getloc() == loc_de );
+}
+
+class MyTraits : public std::char_traits<char>
+{
+public:
+ static bool eq(char c1, char c2)
+ {
+ VERIFY( c1 != 'X' );
+ VERIFY( c2 != 'X' );
+ return std::char_traits<char>::eq(c1, c2);
+ }
+};
+
+class MyBuf : public std::basic_streambuf<char, MyTraits>
+{
+ char buffer[8];
+
+public:
+ MyBuf()
+ {
+ std::memset(buffer, 'X', sizeof(buffer));
+ std::memset(buffer + 2, 'f', 4);
+ setg(buffer + 2, buffer + 2, buffer + 6);
+ }
+};
+
+// libstdc++/9538
+void test08()
+{
+ bool test = true;
+
+ MyBuf mb;
+ mb.sputbackc('a');
+}
+
+// libstdc++/9439, libstdc++/9425
+void test09()
+{
+ using namespace std;
+ bool test = true;
+
+ filebuf fbuf;
+ fbuf.open(name_01, ios_base::in);
+ filebuf::int_type r = fbuf.sputbackc('a');
+ fbuf.close();
+
+ VERIFY( r == filebuf::traits_type::eof() );
+}
+
+class Cvt_to_upper : public std::codecvt<char, char, mbstate_t>
+{
+ bool do_always_noconv() const throw()
+ {
+ return false;
+ }
+};
+
+// libstdc++/9169
+void test10()
+{
+ using namespace std;
+ bool test = true;
+
+ locale c_loc;
+ locale loc(c_loc, new Cvt_to_upper);
+
+ string str("abcdefghijklmnopqrstuvwxyz");
+ string tmp;
+
+ {
+ ofstream out;
+ out.imbue(loc);
+ out.open(name_04);
+ copy(str.begin(), str.end(),
+ ostreambuf_iterator<char>(out));
+ }
+
+ {
+ ifstream in;
+ in.open(name_04);
+ copy(istreambuf_iterator<char>(in),
+ istreambuf_iterator<char>(),
+ back_inserter(tmp));
+ }
+
+ VERIFY( tmp.size() == str.size() );
+ VERIFY( tmp == str );
+}
+
+// libstdc++/9825
+void test11()
+{
+ using namespace std;
+ bool test = true;
+
+ filebuf fbuf;
+
+ fbuf.open(name_05, ios_base::in|ios_base::out|ios_base::trunc);
+ fbuf.sputn("crazy bees!", 11);
+ fbuf.pubseekoff(0, ios_base::beg);
+ fbuf.sbumpc();
+ fbuf.sputbackc('x');
+ filebuf::int_type c = fbuf.sbumpc();
+ VERIFY( c == 'x' );
+ c = fbuf.sbumpc();
+ VERIFY( c == 'r' );
+ c = fbuf.sbumpc();
+ VERIFY( c == 'a' );
+ fbuf.close();
+}
+
+class errorcvt : public std::codecvt<char, char, mbstate_t>
+{
+protected:
+ std::codecvt_base::result
+ do_out(mbstate_t&, const char* from, const char*,
+ const char*& from_next, char* to, char*,
+ char*& to_next) const
+ {
+ from_next = from;
+ to_next = to;
+ return std::codecvt<char, char, mbstate_t>::error;
+ }
+
+ virtual bool do_always_noconv() const throw()
+ {
+ return false;
+ }
+};
+
+// libstdc++/9182
+void test12()
+{
+ using namespace std;
+ bool test = true;
+
+ locale loc;
+ loc = locale(loc, new errorcvt);
+
+ filebuf fbuf1;
+ fbuf1.pubimbue(loc);
+ fbuf1.open(name_06, ios_base::out | ios_base::trunc);
+ fbuf1.sputn("ison", 4);
+ int r = fbuf1.pubsync();
+ VERIFY( r == -1 );
+ fbuf1.close();
+}
+
+void test13()
+{
+ using namespace std;
+ bool test = true;
+
+ locale loc;
+ loc = locale(loc, new errorcvt);
+
+ filebuf fbuf1;
+ fbuf1.pubimbue(loc);
+ fbuf1.pubsetbuf(0, 0);
+ fbuf1.open(name_06, ios_base::out | ios_base::trunc);
+ streamsize n = fbuf1.sputn("onne", 4);
+ VERIFY( n == 0 );
+ fbuf1.close();
+}
+
+class OverBuf : public std::filebuf
+{
+public:
+ int_type pub_overflow(int_type c = traits_type::eof())
+ { return std::filebuf::overflow(c); }
+};
+
+// libstdc++/9988
+void test14()
+{
+ using namespace std;
+ bool test = true;
+
+ OverBuf fb;
+ fb.open(name_07, ios_base::out | ios_base::trunc);
+
+ fb.sputc('a');
+ fb.pub_overflow('b');
+ fb.pub_overflow();
+ fb.sputc('c');
+ fb.close();
+
+ filebuf fbin;
+ fbin.open(name_07, ios_base::in);
+ filebuf::int_type c;
+ c = fbin.sbumpc();
+ VERIFY( c == 'a' );
+ c = fbin.sbumpc();
+ VERIFY( c == 'b' );
+ c = fbin.sbumpc();
+ VERIFY( c == 'c' );
+ c = fbin.sbumpc();
+ VERIFY( c == filebuf::traits_type::eof() );
+ fbin.close();
+}
+
+class UnderBuf : public std::filebuf
+{
+public:
+ int_type
+ pub_underflow()
+ { return underflow(); }
+
+ std::streamsize
+ pub_showmanyc()
+ { return showmanyc(); }
+};
+
+// libstdc++/10097
+void test15()
+{
+ using namespace std;
+ bool test = true;
+
+ const char* name = "tmp_fifo1";
+
+ signal(SIGPIPE, SIG_IGN);
+ unlink(name);
+
+ if (0 != mkfifo(name, S_IRWXU))
+ {
+ VERIFY( false );
+ }
+
+ int fval = fork();
+ if (fval == -1)
+ {
+ unlink(name);
+ VERIFY( false );
+ }
+ else if (fval == 0)
+ {
+ filebuf fbout;
+ fbout.open(name, ios_base::out);
+ fbout.sputn("0123456789", 10);
+ fbout.pubsync();
+ sleep(2);
+ fbout.close();
+ exit(0);
+ }
+
+ UnderBuf fb;
+ fb.open(name, ios_base::in);
+ sleep(1);
+
+ fb.sgetc();
+ streamsize n = fb.pub_showmanyc();
+
+ while (n > 0)
+ {
+ --n;
+
+ UnderBuf::int_type c = fb.pub_underflow();
+ VERIFY( c != UnderBuf::traits_type::eof() );
+
+ fb.sbumpc();
+ }
+
+ fb.close();
+}
+
main()
{
test01();
@@ -524,5 +819,14 @@ main()
test05();
test06();
+ test07();
+ test08();
+ test09();
+ test10();
+ test11();
+ test12();
+ test13();
+ test14();
+ test15();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/fstream.cc b/libstdc++-v3/testsuite/27_io/fstream.cc
index 276294d9c9d..c37be6bbfcb 100644
--- a/libstdc++-v3/testsuite/27_io/fstream.cc
+++ b/libstdc++-v3/testsuite/27_io/fstream.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_fstream<type_t, char_traits<type_t> >;
- template class basic_fstream<gnu_char, char_traits<gnu_char> >;
+ template class basic_fstream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/ios_base_storage.cc b/libstdc++-v3/testsuite/27_io/ios_base_storage.cc
index c39d0302716..7033466e691 100644
--- a/libstdc++-v3/testsuite/27_io/ios_base_storage.cc
+++ b/libstdc++-v3/testsuite/27_io/ios_base_storage.cc
@@ -1,6 +1,6 @@
// 2000-12-19 bkoz
-// Copyright (C) 2000, 2002 Free Software Foundation
+// Copyright (C) 2000, 2002, 2003 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
@@ -20,6 +20,12 @@
// 27.4.2.5 ios_base storage functions
+// XXX This test will not work for some versions of irix6 because of
+// XXX bug(s) in libc malloc for very large allocations. However
+// XXX -lmalloc seems to work.
+// See http://gcc.gnu.org/ml/gcc/2002-05/msg01012.html
+// { dg-options "-lmalloc" { target mips*-*-irix6* } }
+
#include <sstream>
#include <iostream>
@@ -49,10 +55,15 @@ void test02()
std::stringbuf strbuf;
std::ios ios(&strbuf);
+ ios.exceptions(std::ios::badbit);
+
long l = 0;
void* v = 0;
// pword
+ ios.pword(1) = v;
+ VERIFY( ios.pword(1) == v );
+
try
{
v = ios.pword(max);
@@ -68,7 +79,29 @@ void test02()
}
VERIFY( v == 0 );
+ VERIFY( ios.pword(1) == v );
+
+ // max is different code path from max-1
+ v = &test;
+ try
+ {
+ v = ios.pword(std::numeric_limits<int>::max());
+ }
+ catch(std::ios_base::failure& obj)
+ {
+ // Ok.
+ VERIFY( ios.bad() );
+ }
+ catch(...)
+ {
+ VERIFY( test = false );
+ }
+ VERIFY( v == &test );
+
// iword
+ ios.iword(1) = 1;
+ VERIFY( ios.iword(1) == 1 );
+
try
{
l = ios.iword(max);
@@ -83,11 +116,47 @@ void test02()
VERIFY( test = false );
}
VERIFY( l == 0 );
+
+ VERIFY( ios.iword(1) == 1 );
+
+ // max is different code path from max-1
+ l = 1;
+ try
+ {
+ l = ios.iword(std::numeric_limits<int>::max());
+ }
+ catch(std::ios_base::failure& obj)
+ {
+ // Ok.
+ VERIFY( ios.bad() );
+ }
+ catch(...)
+ {
+ VERIFY( test = false );
+ }
+ VERIFY( l == 1 );
+
+}
+
+class derived : public std::ios_base
+{
+public:
+ derived() {}
+};
+
+void test03()
+{
+ derived d;
+
+ d.pword(0) = &d;
+ d.iword(0) = 1;
}
int main(void)
{
+ __gnu_cxx_test::set_memory_limits();
test01();
test02();
+ test03();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/istream.cc b/libstdc++-v3/testsuite/27_io/istream.cc
index 6cec904eb67..c8146ea9236 100644
--- a/libstdc++-v3/testsuite/27_io/istream.cc
+++ b/libstdc++-v3/testsuite/27_io/istream.cc
@@ -1,6 +1,6 @@
// 1999-09-20 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 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
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_istream<type_t, char_traits<type_t> >;
- template class basic_istream<gnu_char, char_traits<gnu_char> >;
+ template class basic_istream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/istream_exception.cc b/libstdc++-v3/testsuite/27_io/istream_exception.cc
new file mode 100644
index 00000000000..2c3b1217f2a
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_exception.cc
@@ -0,0 +1,68 @@
+// 2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+// Copyright (C) 2003 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.
+
+#include <istream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// libstdc++/9561
+struct foobar: std::exception { };
+
+struct buf: std::streambuf
+{
+ virtual int_type underflow () {
+ throw foobar ();
+ return -1;
+ }
+ virtual int_type uflow () {
+ throw foobar ();
+ return -1;
+ }
+};
+
+void test01()
+{
+ using namespace std;
+
+ buf b;
+ std::istream strm (&b);
+ strm.exceptions (std::ios::badbit);
+ int i = 0;
+
+ try {
+ i = strm.get();
+ }
+ catch (foobar) {
+ // strm should throw foobar and not do anything else
+ VERIFY(strm.bad());
+ }
+ catch (...) {
+ VERIFY(false);
+ }
+
+ VERIFY(i == 0);
+}
+
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc
deleted file mode 100644
index c184b3fade2..00000000000
--- a/libstdc++-v3/testsuite/27_io/istream_extractor_arith.cc
+++ /dev/null
@@ -1,611 +0,0 @@
-// 1999-04-12 bkoz
-
-// Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// 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.6.1.2.2 arithmetic extractors
-
-#include <cstdio> // for printf
-#include <istream>
-#include <ostream>
-#include <sstream>
-#include <locale>
-#include <testsuite_hooks.h>
-
-std::string str_01;
-std::string str_02("true false 0 1 110001");
-std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
-std::string str_04("0123");
-
-std::stringbuf isbuf_01(std::ios_base::in);
-std::stringbuf isbuf_02(str_02, std::ios_base::in);
-std::stringbuf isbuf_03(str_03, std::ios_base::in);
-std::stringbuf isbuf_04(str_04, std::ios_base::in);
-
-std::istream is_01(NULL);
-std::istream is_02(&isbuf_02);
-std::istream is_03(&isbuf_03);
-std::istream is_04(&isbuf_04);
-std::stringstream ss_01(str_01);
-
-// minimal sanity check
-bool test01() {
-
- bool test = true;
-
- // Integral Types:
- bool b1 = false;
- bool b2 = false;
- short s1 = 0;
- int i1 = 0;
- long l1 = 0;
- unsigned short us1 = 0;
- unsigned int ui1 = 0;
- unsigned long ul1 = 0;
-
- // Floating-point Types:
- float f1 = 0;
- double d1 = 0;
- long double ld1 = 0;
-
- // process alphanumeric versions of bool values
- std::ios_base::fmtflags fmt = is_02.flags();
- bool testfmt = fmt & std::ios_base::boolalpha;
- is_02.setf(std::ios_base::boolalpha);
- fmt = is_02.flags();
- testfmt = fmt & std::ios_base::boolalpha;
- is_02 >> b1;
- VERIFY( b1 == 1 );
- is_02 >> b1;
- VERIFY( b1 == 0 );
-
- // process numeric versions of of bool values
- is_02.unsetf(std::ios_base::boolalpha);
- fmt = is_02.flags();
- testfmt = fmt & std::ios_base::boolalpha;
- is_02 >> b1;
- VERIFY( b1 == 0 );
- is_02 >> b1;
- VERIFY( b1 == 1 );
-
- // is_03 == "-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"
- is_03 >> l1;
- VERIFY( l1 == -19999999 );
- is_03 >> ul1;
- VERIFY( ul1 == 777777 );
- is_03 >> i1;
- VERIFY( i1 == -234234 );
- is_03 >> ui1;
- VERIFY( ui1 == 233 );
- is_03 >> s1;
- VERIFY( s1 == -234 );
- is_03 >> us1;
- VERIFY( us1 == 33 );
- is_03 >> b1;
- VERIFY( b1 == 1 );
- is_03 >> ld1;
- VERIFY( ld1 == 66300.25 );
- is_03 >> d1;
- VERIFY( d1 == .315 );
- is_03 >> f1;
- VERIFY( f1 == 1.5 );
-
- is_04 >> std::hex >> i1;
- std::printf ("%d %d %d\n", i1, i1 == 0x123, test);
- VERIFY( i1 == 0x123 );
- std::printf ("%d %d %d\n", i1, i1 == 0x123, test);
-
- // test void pointers
- int i = 55;
- void* po = &i;
- void* pi;
-
- ss_01 << po;
- ss_01 >> pi;
- std::printf ("%x %x\n", pi, po);
- VERIFY( po == pi );
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-
- return test;
-}
-
-// elaborated test for ints
-bool test02() {
-
- bool test = true;
- const std::string str_01("20000AB");
- std::stringbuf strb_01(str_01, std::ios_base::in);
- std::istream is(&strb_01);
-
- int n = 15;
- is >> n;
- VERIFY( n == 20000 );
- char c = is.peek();
- VERIFY( c == 65 );
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-
- return test;
-}
-
-bool test03()
-{
- std::stringbuf sbuf;
- std::istream istr(&sbuf);
- std::ostream ostr(&sbuf);
-
- bool test = true;
- long l01;
- ostr << "12220101";
- istr >> l01; // _M_in_end set completely incorrectly here.
- VERIFY( l01 == 12220101 );
- VERIFY( istr.rdstate() == std::ios_base::eofbit );
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-
- return test;
-}
-
-// http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00081.html
-// Jim Parsons
-void test06()
-{
- // default locale, grouping is turned off
- bool test = true;
- unsigned int h4, h3, h2;
- char c;
- std::string s("205,199,144");
- std::istringstream is(s);
-
- is >> h4; // 205
- VERIFY( h4 == 205 );
- is >> c; // ','
- VERIFY( c == ',' );
-
- is >> h4; // 199
- VERIFY( h4 == 199 );
- is >> c; // ','
- VERIFY( c == ',' );
-
- is >> h4; // 144
- VERIFY( is.rdstate() == std::ios_base::eofbit );
- VERIFY( h4 == 144 );
- is >> c; // EOF
- VERIFY( c == ',' );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-}
-
-namespace std {
- class test_numpunct1 : public numpunct<char>
- {
- protected:
- string
- do_grouping() const
- { return string(1, '\003'); }
- };
-} // namespace std
-
-void test07()
-{
- // manufactured locale, grouping is turned on
- bool test = true;
- unsigned int h4 = 0, h3 = 0, h2 = 0;
- float f1 = 0.0;
- const std::string s1("205,199 23,445.25 1,024,365 123,22,24");
- std::istringstream is(s1);
- is.imbue(std::locale(std::locale(), new std::test_numpunct1));
-
- // Basic operation.
- is >> h4;
- VERIFY( h4 == 205199 );
- VERIFY( is.good() );
-
- is.clear();
- is >> f1;
- VERIFY( f1 == 23445.25 );
- VERIFY( is.good() );
-
- is.clear();
- is >> h3;
- VERIFY( h3 == 1024365 );
- VERIFY( is.good() );
-
- is.clear();
- is >> h2;
- VERIFY( h2 == 0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
-
- // Stress tests for explicit errors in grouping corner cases. The
- // validity of these tests and results have been hammered out in
- // private email between bkoz and ncm between Jan 25 and Jan 27, 2000.
- // Thanks nate -- benjamin
- const std::string s2(",111 4,,4 0.25,345 5..25 156,, 1,000000 1000000 1234,567");
- h3 = h4 = h2 = 0;
- f1 = 0.0;
- const char c_control = '?';
- char c = c_control;
- is.clear();
- is.str(s2);
-
- is >> h4;
- VERIFY( h4 == 0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- is.clear();
- is >> c;
- VERIFY( c == ',' );
- VERIFY( is.good() );
-
- is.ignore(3);
- is >> f1;
- VERIFY( f1 == 0.0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- is.clear();
- is >> c;
- VERIFY( c == ',' );
- is >> c;
- VERIFY( c == '4' );
- VERIFY( is.good() );
-
- is >> f1;
- VERIFY( f1 == 0.25 );
- VERIFY( is.good() );
- is >> c;
- VERIFY( c == ',' );
- is >> h2;
- VERIFY( h2 == 345 );
- VERIFY( is.good() );
- f1 = 0.0;
- h2 = 0;
-
- is >> f1;
- VERIFY( f1 == 5.0 );
- VERIFY( is.good() );
- is >> f1;
- VERIFY( f1 == .25 );
- VERIFY( is.good() );
-
- is >> h3;
- VERIFY( h3 == 0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- is.clear();
- is >> c;
- VERIFY( c == ',' ); // second one
- VERIFY( is.good() );
-
- is >> h2;
- VERIFY( h2 == 0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- is.clear();
-
- is >> h2;
- VERIFY( h2 == 1000000 );
- VERIFY( is.good() );
- h2 = 0;
-
- is >> h2;
- VERIFY( h2 == 0 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
- is.clear();
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-}
-
-namespace std {
- class test_numpunct2 : public numpunct<char>
- {
- protected:
- string
- do_grouping() const
- { return string("\002\003"); }
- };
-} // namespace std
-
-void test08()
-{
- // manufactured locale, grouping is turned on
- bool test = true;
- unsigned int h4 = 0, h3 = 0, h2 = 0;
- float f1 = 0.0;
- const std::string s1("1,22 205,19 22,123,22");
- const std::string s2("1,220 2050,19 202,123,22");
-
- std::istringstream is(s1);
- is.imbue(std::locale(std::locale(), new std::test_numpunct2));
-
- // Basic operation.
- is >> h4;
- VERIFY( h4 == 122 );
- VERIFY( is.good() );
-
- is.clear();
- is >> h3;
- VERIFY( h3 == 20519 );
- VERIFY( is.good() );
-
- is.clear();
- is >> h2;
- VERIFY( h2 == 2212322 );
- VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
-
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-}
-
-
-bool test09()
-{
- bool test = true;
-
- std::string st("2.456e3-+0.567e-2");
- std::stringbuf sb(st);
- std::istream is(&sb);
- double f1 = 0, f2 = 0;
- char c;
- (is>>std::ws) >> f1;
- (is>>std::ws) >> c;
- (is>>std::ws) >> f2;
- test = f1 == 2456;
- VERIFY( f2 == 0.00567 );
- VERIFY( c == '-' );
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-
- return test;
-}
-
-bool test10() {
- std::string str_01("0 00 000 +0 +0 -0");
- std::stringbuf isbuf_01(str_01);
- std::istream is_01(&isbuf_01);
-
- bool test = true;
-
- int n = 365;
- is_01 >> n;
- VERIFY( n == 0 );
- n = 364;
- is_01 >> n;
- VERIFY( n == 0 );
- n = 363;
- is_01 >> n;
- VERIFY( n == 0 );
- n = 362;
- is_01 >> n;
- VERIFY( n == 0 );
- n = 361;
- is_01 >> n;
- VERIFY( n == 0 );
- n = 360;
- is_01 >> n;
- VERIFY( n == 0 );
- VERIFY( is_01.rdstate() == std::ios_base::eofbit );
-
- std::string str_02("0x32 0X33 033 33");
- std::stringbuf isbuf_02(str_02);
- std::istream is_02(&isbuf_02);
- is_02.unsetf(std::ios_base::basefield);
- is_02 >> n;
- VERIFY( n == 50 );
- is_02 >> n;
- VERIFY( n == 51 );
- is_02 >> n;
- VERIFY( n == 27 );
- is_02 >> n;
- VERIFY( n == 33 );
- VERIFY( is_02.rdstate() == std::ios_base::eofbit );
-
- std::stringbuf isbuf_03(str_02);
- std::istream is_03(&isbuf_03);
- char c;
- int m;
-
- is_03 >> std::dec >> n >> c >> m;
- VERIFY( n == 0 );
- VERIFY( c == 'x' );
- VERIFY( m == 32 );
-
- is_03 >> std::oct >> m >> c >> n;
- VERIFY( m == 0 );
- VERIFY( c == 'X' );
- VERIFY( n == 27 );
-
- is_03 >> std::dec >> m >> n;
- VERIFY( m == 33 );
- VERIFY( n == 33 );
- VERIFY( is_03.rdstate() == std::ios_base::eofbit );
-
- std::string str_04("3. 4.5E+2a5E-3 .6E1");
- std::stringbuf isbuf_04(str_04);
- std::istream is_04(&isbuf_04);
-
- double f;
- is_04 >> f;
- VERIFY( f == 3.0 );
- is_04 >> f;
- VERIFY( f == 450.0 );
- is_04.ignore();
- is_04 >> f;
- VERIFY( f == 0.005 );
- is_04 >> f;
- VERIFY( f == 6 );
- VERIFY( is_03.rdstate() == std::ios_base::eofbit );
-
- std::string str_05("0E20 5Ea E16");
- std::stringbuf isbuf_05(str_05);
- std::istream is_05(&isbuf_05);
-
- is_05 >> f;
- VERIFY( f == 0 );
- is_05 >> f;
- VERIFY( f == 0 );
- VERIFY( is_05.rdstate() == std::ios_base::failbit );
- is_05.clear();
- is_05 >> c;
- VERIFY( c == 'a' );
- is_05 >> f;
- VERIFY( f == 0 );
- VERIFY( is_05.rdstate() == std::ios_base::failbit );
- is_05.clear();
- is_05.ignore();
- is_05 >> n;
- VERIFY( n == 16 );
-
-#ifdef DEBUG_ASSERT
- assert(test);
-#endif
-
- return test;
-}
-
-// In the presence of no fmtflags, the input operator should behave
-// like strtol(x, y, 0)
-// libstdc++/90
-bool test11()
-{
- bool test = true;
- const char* cstrlit = "0x2a";
-
- // sanity check via 'C' library call
- char* err;
- long l = std::strtol(cstrlit, &err, 0);
-
- std::istringstream iss(cstrlit);
- iss.setf(std::ios::fmtflags(0), std::ios::basefield);
- int i;
- iss >> i;
-
- VERIFY (!iss.fail());
- VERIFY (l == i);
-
- return test;
-}
-
-// libstdc++/3720
-// excess input should not cause a core dump
-template<typename T>
-bool test12_aux(bool integer_type)
-{
- bool test = true;
-
- int digits_overflow;
- if (integer_type)
- // This many digits will overflow integer types in base 10.
- digits_overflow = std::numeric_limits<T>::digits10 + 2;
- else
- // This might do it, unsure.
- digits_overflow = std::numeric_limits<T>::max_exponent10 + 1;
-
- std::string st;
- std::string part = "1234567890123456789012345678901234567890";
- for (int i = 0; i < digits_overflow / part.size() + 1; ++i)
- st += part;
- std::stringbuf sb(st);
- std::istream is(&sb);
- T t;
- is >> t;
- VERIFY(is.fail());
- return test;
-}
-
-bool test12()
-{
- bool test = true;
- VERIFY(test12_aux<short>(true));
- VERIFY(test12_aux<int>(true));
- VERIFY(test12_aux<long>(true));
- VERIFY(test12_aux<float>(false));
- VERIFY(test12_aux<double>(false));
- VERIFY(test12_aux<long double>(false));
- return test;
-}
-
-// libstdc++/3720 part two
-void test13()
-{
- using namespace std;
- bool test = true;
- const char* l1 = "12345678901234567890123456789012345678901234567890123456";
- const char* l2 = "1.2345678901234567890123456789012345678901234567890123456"
- " "
- "1246.9";
-
- // 1
- // used to core.
- double d;
- istringstream iss1(l2);
- iss1 >> d;
- iss1 >> d;
- VERIFY (d > 1246 && d < 1247);
-
- // 2
- // quick test for failbit on maximum length extraction.
- int i;
- int max_digits = numeric_limits<int>::digits10 + 1;
- string digits;
- for (int j = 0; j < max_digits; ++j)
- digits += '1';
- istringstream iss2(digits);
- iss2 >> i;
- VERIFY( !iss2.fail() );
-
- digits += '1';
- i = 0;
- iss2.str(digits);
- iss2.clear();
- iss2 >> i;
- VERIFY( i == 0 );
- VERIFY( iss2.fail() );
-}
-
-int main()
-{
- test01();
- test02();
- test03();
-
- test06();
- test07();
- test08();
- test09();
- test10();
-
- test11();
- test12();
- test13();
- return 0;
-}
-
-// paul miller was right on with riddim warfare!
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc
new file mode 100644
index 00000000000..b2fdd2691e7
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/01.cc
@@ -0,0 +1,134 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// minimal sanity check
+bool test01() {
+
+ bool test = true;
+
+ // Integral Types:
+ bool b1 = false;
+ bool b2 = false;
+ short s1 = 0;
+ int i1 = 0;
+ long l1 = 0;
+ unsigned short us1 = 0;
+ unsigned int ui1 = 0;
+ unsigned long ul1 = 0;
+
+ // Floating-point Types:
+ float f1 = 0;
+ double d1 = 0;
+ long double ld1 = 0;
+
+ // process alphanumeric versions of bool values
+ std::ios_base::fmtflags fmt = is_02.flags();
+ bool testfmt = fmt & std::ios_base::boolalpha;
+ is_02.setf(std::ios_base::boolalpha);
+ fmt = is_02.flags();
+ testfmt = fmt & std::ios_base::boolalpha;
+ is_02 >> b1;
+ VERIFY( b1 == 1 );
+ is_02 >> b1;
+ VERIFY( b1 == 0 );
+
+ // process numeric versions of of bool values
+ is_02.unsetf(std::ios_base::boolalpha);
+ fmt = is_02.flags();
+ testfmt = fmt & std::ios_base::boolalpha;
+ is_02 >> b1;
+ VERIFY( b1 == 0 );
+ is_02 >> b1;
+ VERIFY( b1 == 1 );
+
+ // is_03 == "-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5"
+ is_03 >> l1;
+ VERIFY( l1 == -19999999 );
+ is_03 >> ul1;
+ VERIFY( ul1 == 777777 );
+ is_03 >> i1;
+ VERIFY( i1 == -234234 );
+ is_03 >> ui1;
+ VERIFY( ui1 == 233 );
+ is_03 >> s1;
+ VERIFY( s1 == -234 );
+ is_03 >> us1;
+ VERIFY( us1 == 33 );
+ is_03 >> b1;
+ VERIFY( b1 == 1 );
+ is_03 >> ld1;
+ VERIFY( ld1 == 66300.25 );
+ is_03 >> d1;
+ VERIFY( d1 == .315 );
+ is_03 >> f1;
+ VERIFY( f1 == 1.5 );
+
+ is_04 >> std::hex >> i1;
+ std::printf ("%d %d %d\n", i1, i1 == 0x123, test);
+ VERIFY( i1 == 0x123 );
+ std::printf ("%d %d %d\n", i1, i1 == 0x123, test);
+
+ // test void pointers
+ int i = 55;
+ void* po = &i;
+ void* pi;
+
+ ss_01 << po;
+ ss_01 >> pi;
+ std::printf ("%x %x\n", pi, po);
+ VERIFY( po == pi );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc
new file mode 100644
index 00000000000..374fbd8e0c7
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/02.cc
@@ -0,0 +1,71 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// elaborated test for ints
+bool test02() {
+
+ bool test = true;
+ const std::string str_01("20000AB");
+ std::stringbuf strb_01(str_01, std::ios_base::in);
+ std::istream is(&strb_01);
+
+ int n = 15;
+ is >> n;
+ VERIFY( n == 20000 );
+ char c = is.peek();
+ VERIFY( c == 65 );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc
new file mode 100644
index 00000000000..869d828b091
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/03.cc
@@ -0,0 +1,70 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+bool test03()
+{
+ std::stringbuf sbuf;
+ std::istream istr(&sbuf);
+ std::ostream ostr(&sbuf);
+
+ bool test = true;
+ long l01;
+ ostr << "12220101";
+ istr >> l01; // _M_in_end set completely incorrectly here.
+ VERIFY( l01 == 12220101 );
+ VERIFY( istr.rdstate() == std::ios_base::eofbit );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+int main()
+{
+ test03();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc
new file mode 100644
index 00000000000..de92bcd52cb
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/06.cc
@@ -0,0 +1,83 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00081.html
+// Jim Parsons
+void test06()
+{
+ // default locale, grouping is turned off
+ bool test = true;
+ unsigned int h4, h3, h2;
+ char c;
+ std::string s("205,199,144");
+ std::istringstream is(s);
+
+ is >> h4; // 205
+ VERIFY( h4 == 205 );
+ is >> c; // ','
+ VERIFY( c == ',' );
+
+ is >> h4; // 199
+ VERIFY( h4 == 199 );
+ is >> c; // ','
+ VERIFY( c == ',' );
+
+ is >> h4; // 144
+ VERIFY( is.rdstate() == std::ios_base::eofbit );
+ VERIFY( h4 == 144 );
+ is >> c; // EOF
+ VERIFY( c == ',' );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+}
+
+int main()
+{
+ test06();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc
new file mode 100644
index 00000000000..118668ea1d9
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/07.cc
@@ -0,0 +1,169 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+namespace std {
+ class test_numpunct1 : public numpunct<char>
+ {
+ protected:
+ string
+ do_grouping() const
+ { return string(1, '\003'); }
+ };
+} // namespace std
+
+void test07()
+{
+ // manufactured locale, grouping is turned on
+ bool test = true;
+ unsigned int h4 = 0, h3 = 0, h2 = 0;
+ float f1 = 0.0;
+ const std::string s1("205,199 23,445.25 1,024,365 123,22,24");
+ std::istringstream is(s1);
+ is.imbue(std::locale(std::locale(), new std::test_numpunct1));
+
+ // Basic operation.
+ is >> h4;
+ VERIFY( h4 == 205199 );
+ VERIFY( is.good() );
+
+ is.clear();
+ is >> f1;
+ VERIFY( f1 == 23445.25 );
+ VERIFY( is.good() );
+
+ is.clear();
+ is >> h3;
+ VERIFY( h3 == 1024365 );
+ VERIFY( is.good() );
+
+ is.clear();
+ is >> h2;
+ VERIFY( h2 == 0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
+
+ // Stress tests for explicit errors in grouping corner cases. The
+ // validity of these tests and results have been hammered out in
+ // private email between bkoz and ncm between Jan 25 and Jan 27, 2000.
+ // Thanks nate -- benjamin
+ const std::string s2(",111 4,,4 0.25,345 5..25 156,, 1,000000 1000000 1234,567");
+ h3 = h4 = h2 = 0;
+ f1 = 0.0;
+ const char c_control = '?';
+ char c = c_control;
+ is.clear();
+ is.str(s2);
+
+ is >> h4;
+ VERIFY( h4 == 0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ is.clear();
+ is >> c;
+ VERIFY( c == ',' );
+ VERIFY( is.good() );
+
+ is.ignore(3);
+ is >> f1;
+ VERIFY( f1 == 0.0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ is.clear();
+ is >> c;
+ VERIFY( c == ',' );
+ is >> c;
+ VERIFY( c == '4' );
+ VERIFY( is.good() );
+
+ is >> f1;
+ VERIFY( f1 == 0.25 );
+ VERIFY( is.good() );
+ is >> c;
+ VERIFY( c == ',' );
+ is >> h2;
+ VERIFY( h2 == 345 );
+ VERIFY( is.good() );
+ f1 = 0.0;
+ h2 = 0;
+
+ is >> f1;
+ VERIFY( f1 == 5.0 );
+ VERIFY( is.good() );
+ is >> f1;
+ VERIFY( f1 == .25 );
+ VERIFY( is.good() );
+
+ is >> h3;
+ VERIFY( h3 == 0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ is.clear();
+ is >> c;
+ VERIFY( c == ',' ); // second one
+ VERIFY( is.good() );
+
+ is >> h2;
+ VERIFY( h2 == 0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ is.clear();
+
+ is >> h2;
+ VERIFY( h2 == 1000000 );
+ VERIFY( is.good() );
+ h2 = 0;
+
+ is >> h2;
+ VERIFY( h2 == 0 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::failbit) );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
+ is.clear();
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+}
+
+int main()
+{
+ test07();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc
new file mode 100644
index 00000000000..f8491612ddf
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/08.cc
@@ -0,0 +1,93 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+namespace std {
+ class test_numpunct2 : public numpunct<char>
+ {
+ protected:
+ string
+ do_grouping() const
+ { return string("\002\003"); }
+ };
+} // namespace std
+
+void test08()
+{
+ // manufactured locale, grouping is turned on
+ bool test = true;
+ unsigned int h4 = 0, h3 = 0, h2 = 0;
+ float f1 = 0.0;
+ const std::string s1("1,22 205,19 22,123,22");
+ const std::string s2("1,220 2050,19 202,123,22");
+
+ std::istringstream is(s1);
+ is.imbue(std::locale(std::locale(), new std::test_numpunct2));
+
+ // Basic operation.
+ is >> h4;
+ VERIFY( h4 == 122 );
+ VERIFY( is.good() );
+
+ is.clear();
+ is >> h3;
+ VERIFY( h3 == 20519 );
+ VERIFY( is.good() );
+
+ is.clear();
+ is >> h2;
+ VERIFY( h2 == 2212322 );
+ VERIFY( static_cast<bool>(is.rdstate() & std::ios_base::eofbit) );
+
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+}
+
+int main()
+{
+ test08();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc
new file mode 100644
index 00000000000..37e175e6f7c
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/09.cc
@@ -0,0 +1,72 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+bool test09()
+{
+ bool test = true;
+
+ std::string st("2.456e3-+0.567e-2");
+ std::stringbuf sb(st);
+ std::istream is(&sb);
+ double f1 = 0, f2 = 0;
+ char c;
+ (is>>std::ws) >> f1;
+ (is>>std::ws) >> c;
+ (is>>std::ws) >> f2;
+ test = f1 == 2456;
+ VERIFY( f2 == 0.00567 );
+ VERIFY( c == '-' );
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+int main()
+{
+ test09();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc
new file mode 100644
index 00000000000..bc67190533f
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/10.cc
@@ -0,0 +1,154 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+bool test10() {
+ std::string str_01("0 00 000 +0 +0 -0");
+ std::stringbuf isbuf_01(str_01);
+ std::istream is_01(&isbuf_01);
+
+ bool test = true;
+
+ int n = 365;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ n = 364;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ n = 363;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ n = 362;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ n = 361;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ n = 360;
+ is_01 >> n;
+ VERIFY( n == 0 );
+ VERIFY( is_01.rdstate() == std::ios_base::eofbit );
+
+ std::string str_02("0x32 0X33 033 33");
+ std::stringbuf isbuf_02(str_02);
+ std::istream is_02(&isbuf_02);
+ is_02.unsetf(std::ios_base::basefield);
+ is_02 >> n;
+ VERIFY( n == 50 );
+ is_02 >> n;
+ VERIFY( n == 51 );
+ is_02 >> n;
+ VERIFY( n == 27 );
+ is_02 >> n;
+ VERIFY( n == 33 );
+ VERIFY( is_02.rdstate() == std::ios_base::eofbit );
+
+ std::stringbuf isbuf_03(str_02);
+ std::istream is_03(&isbuf_03);
+ char c;
+ int m;
+
+ is_03 >> std::dec >> n >> c >> m;
+ VERIFY( n == 0 );
+ VERIFY( c == 'x' );
+ VERIFY( m == 32 );
+
+ is_03 >> std::oct >> m >> c >> n;
+ VERIFY( m == 0 );
+ VERIFY( c == 'X' );
+ VERIFY( n == 27 );
+
+ is_03 >> std::dec >> m >> n;
+ VERIFY( m == 33 );
+ VERIFY( n == 33 );
+ VERIFY( is_03.rdstate() == std::ios_base::eofbit );
+
+ std::string str_04("3. 4.5E+2a5E-3 .6E1");
+ std::stringbuf isbuf_04(str_04);
+ std::istream is_04(&isbuf_04);
+
+ double f;
+ is_04 >> f;
+ VERIFY( f == 3.0 );
+ is_04 >> f;
+ VERIFY( f == 450.0 );
+ is_04.ignore();
+ is_04 >> f;
+ VERIFY( f == 0.005 );
+ is_04 >> f;
+ VERIFY( f == 6 );
+ VERIFY( is_03.rdstate() == std::ios_base::eofbit );
+
+ std::string str_05("0E20 5Ea E16");
+ std::stringbuf isbuf_05(str_05);
+ std::istream is_05(&isbuf_05);
+
+ is_05 >> f;
+ VERIFY( f == 0 );
+ is_05 >> f;
+ VERIFY( f == 0 );
+ VERIFY( is_05.rdstate() == std::ios_base::failbit );
+ is_05.clear();
+ is_05 >> c;
+ VERIFY( c == 'a' );
+ is_05 >> f;
+ VERIFY( f == 0 );
+ VERIFY( is_05.rdstate() == std::ios_base::failbit );
+ is_05.clear();
+ is_05.ignore();
+ is_05 >> n;
+ VERIFY( n == 16 );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+int main()
+{
+ test10();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc
new file mode 100644
index 00000000000..309875dfc54
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/11.cc
@@ -0,0 +1,73 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// In the presence of no fmtflags, the input operator should behave
+// like strtol(x, y, 0)
+// libstdc++/90
+bool test11()
+{
+ bool test = true;
+ const char* cstrlit = "0x2a";
+
+ // sanity check via 'C' library call
+ char* err;
+ long l = std::strtol(cstrlit, &err, 0);
+
+ std::istringstream iss(cstrlit);
+ iss.setf(std::ios::fmtflags(0), std::ios::basefield);
+ int i;
+ iss >> i;
+
+ VERIFY (!iss.fail());
+ VERIFY (l == i);
+
+ return test;
+}
+
+int main()
+{
+ test11();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc
new file mode 100644
index 00000000000..64795c05812
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/12.cc
@@ -0,0 +1,94 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+// XXX This test fails on sparc-solaris2 because of a bug in libc
+// XXX sscanf for very long input. See:
+// XXX http://gcc.gnu.org/ml/gcc/2002-12/msg01422.html
+// { dg-do run { xfail sparc*-*-solaris2* } }
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// libstdc++/3720
+// excess input should not cause a core dump
+template<typename T>
+bool test12_aux(bool integer_type)
+{
+ bool test = true;
+
+ int digits_overflow;
+ if (integer_type)
+ // This many digits will overflow integer types in base 10.
+ digits_overflow = std::numeric_limits<T>::digits10 + 2;
+ else
+ // This might do it, unsure.
+ digits_overflow = std::numeric_limits<T>::max_exponent10 + 1;
+
+ std::string st;
+ std::string part = "1234567890123456789012345678901234567890";
+ for (int i = 0; i < digits_overflow / part.size() + 1; ++i)
+ st += part;
+ std::stringbuf sb(st);
+ std::istream is(&sb);
+ T t;
+ is >> t;
+ VERIFY(is.fail());
+ return test;
+}
+
+bool test12()
+{
+ bool test = true;
+ VERIFY(test12_aux<short>(true));
+ VERIFY(test12_aux<int>(true));
+ VERIFY(test12_aux<long>(true));
+ VERIFY(test12_aux<float>(false));
+ VERIFY(test12_aux<double>(false));
+ VERIFY(test12_aux<long double>(false));
+ return test;
+}
+
+int main()
+{
+ test12();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc
new file mode 100644
index 00000000000..935d456f448
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/istream_extractor_arith/13.cc
@@ -0,0 +1,88 @@
+// 1999-04-12 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 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.
+
+// 27.6.1.2.2 arithmetic extractors
+
+#include <cstdio> // for printf
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <locale>
+#include <testsuite_hooks.h>
+
+std::string str_01;
+std::string str_02("true false 0 1 110001");
+std::string str_03("-19999999 777777 -234234 233 -234 33 1 66300.25 .315 1.5");
+std::string str_04("0123");
+
+std::stringbuf isbuf_01(std::ios_base::in);
+std::stringbuf isbuf_02(str_02, std::ios_base::in);
+std::stringbuf isbuf_03(str_03, std::ios_base::in);
+std::stringbuf isbuf_04(str_04, std::ios_base::in);
+
+std::istream is_01(NULL);
+std::istream is_02(&isbuf_02);
+std::istream is_03(&isbuf_03);
+std::istream is_04(&isbuf_04);
+std::stringstream ss_01(str_01);
+
+// libstdc++/3720 part two
+void test13()
+{
+ using namespace std;
+ bool test = true;
+ const char* l1 = "12345678901234567890123456789012345678901234567890123456";
+ const char* l2 = "1.2345678901234567890123456789012345678901234567890123456"
+ " "
+ "1246.9";
+
+ // 1
+ // used to core.
+ double d;
+ istringstream iss1(l2);
+ iss1 >> d;
+ iss1 >> d;
+ VERIFY (d > 1246 && d < 1247);
+
+ // 2
+ // quick test for failbit on maximum length extraction.
+ int i;
+ int max_digits = numeric_limits<int>::digits10 + 1;
+ string digits;
+ for (int j = 0; j < max_digits; ++j)
+ digits += '1';
+ istringstream iss2(digits);
+ iss2 >> i;
+ VERIFY( !iss2.fail() );
+
+ digits += '1';
+ i = 0;
+ iss2.str(digits);
+ iss2.clear();
+ iss2 >> i;
+ VERIFY( i == 0 );
+ VERIFY( iss2.fail() );
+}
+
+int main()
+{
+ test13();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/ostream.cc b/libstdc++-v3/testsuite/27_io/ostream.cc
index ee764f9d697..7efd65381a3 100644
--- a/libstdc++-v3/testsuite/27_io/ostream.cc
+++ b/libstdc++-v3/testsuite/27_io/ostream.cc
@@ -1,6 +1,6 @@
// 1999-09-20 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 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
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_ostream<type_t, char_traits<type_t> >;
- template class basic_ostream<gnu_char, char_traits<gnu_char> >;
+ template class basic_ostream<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/ostream_exception.cc b/libstdc++-v3/testsuite/27_io/ostream_exception.cc
new file mode 100644
index 00000000000..8c2b3407056
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/ostream_exception.cc
@@ -0,0 +1,66 @@
+// 2003-03-08 Jerry Quinn <jlquinn@optonline.net>
+
+// Copyright (C) 2003 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.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// libstdc++/9561
+struct foobar: std::exception { };
+
+struct buf: std::streambuf
+{
+ virtual int_type overflow (int_type) {
+ throw foobar ();
+ return -1;
+ }
+};
+
+void test01()
+{
+ using namespace std;
+ bool test = true;
+
+ buf b;
+ std::ostream strm (&b);
+ strm.exceptions (std::ios::badbit);
+
+ try {
+ strm << std::endl;
+ }
+ catch (foobar) {
+ // strm should throw foobar and not do anything else
+ VERIFY(strm.bad());
+ return;
+ }
+ catch (...) {
+ VERIFY(false);
+ return;
+ }
+
+ VERIFY(false);
+}
+
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/ostream_fail.cc b/libstdc++-v3/testsuite/27_io/ostream_fail.cc
new file mode 100644
index 00000000000..77b29eab635
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/ostream_fail.cc
@@ -0,0 +1,53 @@
+// 2003-02-24 Petur Runolfsson <peturr02 at ru dot is>
+
+// Copyright (C) 2003 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.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// libstdc++/9827
+class Buf : public std::streambuf
+{
+};
+
+bool test01()
+{
+ using namespace std;
+ bool test = true;
+
+ Buf buf;
+ ostream stream (&buf);
+
+ stream << 1;
+ VERIFY(!stream.good());
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc b/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc
index 041f3149011..f4e58436842 100644
--- a/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc
+++ b/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc
@@ -360,6 +360,8 @@ test04()
int
test05()
{
+ bool test = true;
+
double pi = 3.14159265358979323846;
ostringstream ostr;
ostr.precision(20);
@@ -368,7 +370,28 @@ test05()
istringstream istr (sval);
double d;
istr >> d;
- VERIFY (abs(pi-d)/pi < DBL_EPSILON);
+ VERIFY( abs(pi-d)/pi < DBL_EPSILON );
+ return 0;
+}
+
+
+// libstdc++/9151
+int
+test06()
+{
+ bool test = true;
+
+ int prec = numeric_limits<double>::digits10 + 2;
+ double oval = numeric_limits<double>::min();
+
+ stringstream ostr;
+ ostr.precision(prec);
+ ostr << oval;
+ string sval = ostr.str();
+ istringstream istr (sval);
+ double ival;
+ istr >> ival;
+ VERIFY( abs(oval-ival)/oval < DBL_EPSILON );
return 0;
}
@@ -380,6 +403,7 @@ main()
test03();
test04();
test05();
+ test06();
#ifdef TEST_NUMPUT_VERBOSE
cout << "Test passed!" << endl;
#endif
diff --git a/libstdc++-v3/testsuite/27_io/ostream_sentry.cc b/libstdc++-v3/testsuite/27_io/ostream_sentry.cc
new file mode 100644
index 00000000000..aba5b7a0af2
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/ostream_sentry.cc
@@ -0,0 +1,70 @@
+// 2003-02-12 Paolo Carlini <pcarlini@unitus.it>
+
+// Copyright (C) 2003 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.
+
+// 27.6.2.3 class basic_ostream::sentry
+
+#include <ostream>
+#include <testsuite_hooks.h>
+
+// libstdc++/9563
+struct buf: std::streambuf
+{
+ std::ios *io_;
+
+ buf (std::ios *io): io_ (io) { }
+
+ virtual int sync ()
+ {
+ io_->setstate (std::ios::failbit);
+ return 0;
+ }
+};
+
+void
+test01()
+{
+ bool test = true;
+
+ buf b(0);
+ std::ostream strm(&b);
+
+ buf tb(&strm);
+ std::ostream tied(&tb);
+
+ strm.tie(&tied);
+ std::ostream::sentry s(strm);
+
+ VERIFY( !s );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/streambuf.cc b/libstdc++-v3/testsuite/27_io/streambuf.cc
index 102ff60c260..29c771b9074 100644
--- a/libstdc++-v3/testsuite/27_io/streambuf.cc
+++ b/libstdc++-v3/testsuite/27_io/streambuf.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_streambuf<type_t, char_traits<type_t> >;
- template class basic_streambuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_streambuf<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/streambuf_members.cc b/libstdc++-v3/testsuite/27_io/streambuf_members.cc
index 3f9a3192b7e..d7ae5693d33 100644
--- a/libstdc++-v3/testsuite/27_io/streambuf_members.cc
+++ b/libstdc++-v3/testsuite/27_io/streambuf_members.cc
@@ -1,6 +1,6 @@
// 1999-10-11 bkoz
-// Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 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
@@ -31,7 +31,7 @@
#include <cstring> // for memset, memcmp
#include <streambuf>
-#include <string>
+#include <sstream>
#include <ostream>
#include <testsuite_hooks.h>
@@ -364,6 +364,158 @@ test07()
VERIFY(out.good());
}
+// libstdc++/9322
+void test08()
+{
+ using std::locale;
+ bool test = true;
+
+ locale loc;
+ testbuf2 ob;
+ VERIFY( ob.getloc() == loc );
+
+ locale::global(locale("en_US"));
+ VERIFY( ob.getloc() == loc );
+
+ locale loc_de ("de_DE");
+ locale ret = ob.pubimbue(loc_de);
+ VERIFY( ob.getloc() == loc_de );
+ VERIFY( ret == loc );
+
+ locale::global(loc);
+ VERIFY( ob.getloc() == loc_de );
+}
+
+// libstdc++/9318
+class Outbuf : public std::streambuf
+{
+public:
+ typedef std::streambuf::traits_type traits_type;
+
+ std::string result() const { return str; }
+
+protected:
+ virtual int_type overflow(int_type c = traits_type::eof())
+ {
+ if (!traits_type::eq_int_type(c, traits_type::eof()))
+ str.push_back(traits_type::to_char_type(c));
+ return traits_type::not_eof(c);
+ }
+
+private:
+ std::string str;
+};
+
+// <1>
+void test09()
+{
+ bool test = true;
+
+ std::istringstream stream("Bad Moon Rising");
+ Outbuf buf;
+ stream >> &buf;
+
+ VERIFY( buf.result() == "Bad Moon Rising" );
+}
+
+// <2>
+void test10()
+{
+ bool test = true;
+
+ std::stringbuf sbuf("Bad Moon Rising", std::ios::in);
+ Outbuf buf;
+ std::ostream stream(&buf);
+ stream << &sbuf;
+
+ VERIFY( buf.result() == "Bad Moon Rising" );
+}
+
+// libstdc++/9424
+class Outbuf_2 : public std::streambuf
+{
+ char buf[1];
+
+public:
+ Outbuf_2()
+ {
+ setp(buf, buf + 1);
+ }
+
+ int_type overflow(int_type c)
+ {
+ int_type eof = traits_type::eof();
+
+ if (pptr() < epptr())
+ {
+ if (traits_type::eq_int_type(c, eof))
+ return traits_type::not_eof(c);
+
+ *pptr() = traits_type::to_char_type(c);
+ pbump(1);
+ return c;
+ }
+
+ return eof;
+ }
+};
+
+class Inbuf_2 : public std::streambuf
+{
+ static const char buf[];
+ const char* current;
+ int size;
+
+public:
+ Inbuf_2()
+ {
+ current = buf;
+ size = std::strlen(buf);
+ }
+
+ int_type underflow()
+ {
+ if (current < buf + size)
+ return traits_type::to_int_type(*current);
+ return traits_type::eof();
+ }
+
+ int_type uflow()
+ {
+ if (current < buf + size)
+ return traits_type::to_int_type(*current++);
+ return traits_type::eof();
+ }
+};
+
+const char Inbuf_2::buf[] = "Atteivlis";
+
+// <1>
+void test11()
+{
+ bool test = true;
+
+ Inbuf_2 inbuf1;
+ std::istream is(&inbuf1);
+ Outbuf_2 outbuf1;
+ is >> &outbuf1;
+ VERIFY( inbuf1.sgetc() == 't' );
+ VERIFY( is.good() );
+}
+
+// <2>
+void test12()
+{
+ bool test = true;
+
+ Outbuf_2 outbuf2;
+ std::ostream os (&outbuf2);
+ Inbuf_2 inbuf2;
+ os << &inbuf2;
+ VERIFY( inbuf2.sgetc() == 't' );
+ VERIFY( os.good() );
+}
+
int main()
{
test01();
@@ -374,5 +526,11 @@ int main()
test05();
test07();
+ test08();
+
+ test09();
+ test10();
+ test11();
+ test12();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/stringbuf.cc b/libstdc++-v3/testsuite/27_io/stringbuf.cc
index 3cfd5af605c..a91deab2f1d 100644
--- a/libstdc++-v3/testsuite/27_io/stringbuf.cc
+++ b/libstdc++-v3/testsuite/27_io/stringbuf.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -50,9 +50,10 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_stringbuf<type_t, char_traits<type_t> >;
- template class basic_stringbuf<gnu_char, char_traits<gnu_char> >;
+ template class basic_stringbuf<pod_char, char_traits<pod_char> >;
} // test
int main()
diff --git a/libstdc++-v3/testsuite/27_io/stringbuf_members.cc b/libstdc++-v3/testsuite/27_io/stringbuf_members.cc
index bc0bbb4dd8e..5e493301890 100644
--- a/libstdc++-v3/testsuite/27_io/stringbuf_members.cc
+++ b/libstdc++-v3/testsuite/27_io/stringbuf_members.cc
@@ -1,6 +1,6 @@
// 981208 bkoz test functionality of basic_stringbuf for char_type == char
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -473,6 +473,32 @@ bool test06()
return test;
}
+// http://gcc.gnu.org/ml/libstdc++/2003-02/msg00269.html
+// Growing and then seeking to ios_base::beg triggered a bug in str(),
+// which didn't notice the grow.
+bool test07()
+{
+ bool test = true;
+
+ std::stringbuf strb_01;
+ strb_01.sputc('s');
+ strb_01.pubseekoff(0, std::ios_base::beg);
+ VERIFY( strb_01.str() == "s" );
+
+ std::string str("strivi,");
+ std::stringbuf strb_02(str);
+ strb_02.pubseekoff(0, std::ios_base::end);
+ strb_02.sputn(" no better!", 11);
+ strb_02.pubseekoff(0, std::ios_base::beg);
+ VERIFY( strb_02.str() == "strivi, no better!" );
+
+#ifdef DEBUG_ASSERT
+ assert(test);
+#endif
+
+ return test;
+}
+
int main()
{
test01();
@@ -481,6 +507,7 @@ int main()
test04();
test05();
test06();
+ test07();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc b/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc
index 318bb72fa8a..8a6add9dfc5 100644
--- a/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc
+++ b/libstdc++-v3/testsuite/27_io/stringbuf_virtuals.cc
@@ -1,6 +1,6 @@
// 2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 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
@@ -70,6 +70,28 @@ void test02(std::stringbuf& in, bool pass)
VERIFY( p == bad );
}
+// libstdc++/9322
+void test08()
+{
+ using std::locale;
+ bool test = true;
+
+ locale loc;
+ std::stringbuf ob;
+ VERIFY( ob.getloc() == loc );
+
+ locale::global(locale("en_US"));
+ VERIFY( ob.getloc() == loc );
+
+ locale loc_de ("de_DE");
+ locale ret = ob.pubimbue(loc_de);
+ VERIFY( ob.getloc() == loc_de );
+ VERIFY( ret == loc );
+
+ locale::global(loc);
+ VERIFY( ob.getloc() == loc_de );
+}
+
int main()
{
using namespace std;
@@ -83,5 +105,6 @@ int main()
test02(in2, false);
test02(in3, false);
+ test08();
return 0;
}
diff --git a/libstdc++-v3/testsuite/27_io/stringstream.cc b/libstdc++-v3/testsuite/27_io/stringstream.cc
index cb9e39d9588..a9778952d90 100644
--- a/libstdc++-v3/testsuite/27_io/stringstream.cc
+++ b/libstdc++-v3/testsuite/27_io/stringstream.cc
@@ -1,6 +1,6 @@
// 2002-07-25 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -50,13 +50,32 @@ void test01()
namespace test
{
using namespace std;
+ using __gnu_cxx_test::pod_char;
typedef short type_t;
template class basic_stringstream<type_t, char_traits<type_t> >;
- template class basic_stringstream<gnu_char, char_traits<gnu_char> >;
+ template class basic_stringstream<pod_char, char_traits<pod_char> >;
} // test
+// libstdc++/9826
+void test02()
+{
+ using namespace std;
+ using __gnu_cxx_test::pod_char;
+
+ basic_stringstream<pod_char, char_traits<pod_char> > sstr;
+ // 1
+ basic_string<pod_char, char_traits<pod_char> > str;
+ sstr >> str;
+ // 2
+ pod_char* chr;
+ sstr >> chr;
+ // 3
+ sstr >> ws;
+}
+
int main()
{
test01();
+ test02();
return 0;
}
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index d85fae7d8d9..0d4ca741d1c 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -1,6 +1,6 @@
## Makefile for the testsuite subdirectory of the GNU C++ Standard library.
##
-## Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.
@@ -23,6 +23,8 @@
AUTOMAKE_OPTIONS = cygnus dejagnu
+mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+
DEJATOOL = libstdc++-v3
EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then \
@@ -38,11 +40,15 @@ 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'`
+testsuite_flags_script=${glibcpp_builddir}/testsuite_flags
+CXX=`${testsuite_flags_script} --build-cxx`
+
+GLIBGCC_DIR=`$(CC) -print-libgcc-file-name | sed 's,/[^/]*$$,,'`
+GLIBCXX_DIR=${glibcpp_builddir}/src/.libs
+
CXXLINK = \
- LD_RUN_PATH=${LD_RUN_PATH:+$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\
$(LIBTOOL) --tag=CXX --mode=link $(CXX) \
+ -R $(GLIBGCC_DIR) -R $(GLIBCXX_DIR) \
$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
INCLUDES = \
@@ -55,9 +61,71 @@ libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc
## Build support utilities.
## Only build this as native, as need to find startup files and libc to link.
-if GLIBCPP_BUILD_ABI_CHECK
+if GLIBCPP_TEST_ABI
noinst_PROGRAMS = abi_check
else
noinst_PROGRAMS =
endif
abi_check_SOURCES = abi_check.cc
+
+# Enable wchar_t tests if capable.
+if GLIBCPP_TEST_WCHAR_T
+all-local: stamp_wchar
+else
+all-local:
+endif
+
+# Override this so local rules are possible.
+check-am:
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU; \
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+
+check-local: check-abi
+
+stamp_wchar:
+ touch testsuite_wchar_t
+
+baseline_dir = @baseline_dir@
+baseline_file = ${baseline_dir}/baseline_symbols.txt
+extract_symvers = @glibcpp_srcdir@/config/abi/extract_symvers
+
+current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so
+ -@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt)
+
+baseline_symbols:
+ -@(output=${baseline_file}; \
+ if test ! -f $${output}; then \
+ echo "Baseline file doesn't exist."; \
+ echo "Try 'make new-abi-baseline' to create it."; \
+ exit 1; \
+ fi; \
+ touch baseline_symbols)
+
+new-abi-baseline:
+ -@$(mkinstalldirs) ${baseline_dir}
+ -@(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; \
+ ${extract_symvers} ../src/.libs/libstdc++.so $${output})
+
+if GLIBCPP_TEST_ABI
+# Use 'new-abi-baseline' to create an initial symbol file. Then run
+# 'check-abi' to test for changes against that file.
+check-abi: abi_check baseline_symbols current_symbols.txt
+ -@(./abi_check --check ./current_symbols.txt ${baseline_file} \
+ 2>&1 | tee libstdc++-v3-abi.sum)
+
+check-abi-verbose: abi_check baseline_symbols current_symbols.txt
+ -@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
+ 2>&1 | tee libstdc++-v3-abi.sum)
+else
+check-abi:
+check-abi-verbose:
+endif
+
+# By adding these files here, automake will remove them for 'make clean'
+CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
+ testsuite_files testsuite_wchar_t site.exp abi_check
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index f3d94e4b9b6..3161ddd8924 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
@@ -67,14 +67,25 @@ AR = @AR@
AS = @AS@
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
AWK = @AWK@
+BASIC_FILE_CC = @BASIC_FILE_CC@
BASIC_FILE_H = @BASIC_FILE_H@
CC = @CC@
CCODECVT_C = @CCODECVT_C@
+CCODECVT_CC = @CCODECVT_CC@
CCODECVT_H = @CCODECVT_H@
+CCOLLATE_CC = @CCOLLATE_CC@
+CCTYPE_CC = @CCTYPE_CC@
+CLOCALE_CC = @CLOCALE_CC@
CLOCALE_H = @CLOCALE_H@
+CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+CMESSAGES_CC = @CMESSAGES_CC@
CMESSAGES_H = @CMESSAGES_H@
+CMONEY_CC = @CMONEY_CC@
+CNUMERIC_CC = @CNUMERIC_CC@
CPP = @CPP@
CSTDIO_H = @CSTDIO_H@
+CTIME_CC = @CTIME_CC@
+CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@
@@ -105,12 +116,12 @@ RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
STRIP = @STRIP@
+SYMVER_MAP = @SYMVER_MAP@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WERROR = @WERROR@
-baseline_file = @baseline_file@
check_msgfmt = @check_msgfmt@
enable_shared = @enable_shared@
enable_static = @enable_static@
@@ -133,6 +144,8 @@ toplevel_srcdir = @toplevel_srcdir@
AUTOMAKE_OPTIONS = cygnus dejagnu
+mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+
DEJATOOL = libstdc++-v3
EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then \
@@ -148,11 +161,15 @@ RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then \
AM_RUNTESTFLAGS =
RUNTESTFLAGS =
-CXX_fake = @glibcpp_CXX@
-CXX = `echo $(CXX_fake) | sed 's/xgcc/g++/g'`
+testsuite_flags_script = ${glibcpp_builddir}/testsuite_flags
+CXX = `${testsuite_flags_script} --build-cxx`
+
+GLIBGCC_DIR = `$(CC) -print-libgcc-file-name | sed 's,/[^/]*$$,,'`
+GLIBCXX_DIR = ${glibcpp_builddir}/src/.libs
+
CXXLINK = \
- LD_RUN_PATH=${LD_RUN_PATH:+$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\
$(LIBTOOL) --tag=CXX --mode=link $(CXX) \
+ -R $(GLIBGCC_DIR) -R $(GLIBCXX_DIR) \
$(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
@@ -163,10 +180,18 @@ INCLUDES = \
noinst_LIBRARIES = libv3test.a
libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc
-@GLIBCPP_BUILD_ABI_CHECK_TRUE@noinst_PROGRAMS = @GLIBCPP_BUILD_ABI_CHECK_TRUE@abi_check
-@GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS =
+@GLIBCPP_TEST_ABI_TRUE@noinst_PROGRAMS = @GLIBCPP_TEST_ABI_TRUE@abi_check
+@GLIBCPP_TEST_ABI_FALSE@noinst_PROGRAMS =
abi_check_SOURCES = abi_check.cc
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+
+baseline_dir = @baseline_dir@
+baseline_file = ${baseline_dir}/baseline_symbols.txt
+extract_symvers = @glibcpp_srcdir@/config/abi/extract_symvers
+
+# By adding these files here, automake will remove them for 'make clean'
+CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
+ testsuite_files testsuite_wchar_t site.exp abi_check
+
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
LIBRARIES = $(noinst_LIBRARIES)
@@ -179,7 +204,7 @@ LIBS = @LIBS@
libv3test_a_LIBADD =
libv3test_a_OBJECTS = testsuite_hooks.$(OBJEXT) \
testsuite_allocator.$(OBJEXT)
-@GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS =
+@GLIBCPP_TEST_ABI_FALSE@noinst_PROGRAMS =
PROGRAMS = $(noinst_PROGRAMS)
abi_check_OBJECTS = abi_check.$(OBJEXT)
@@ -371,7 +396,7 @@ info: info-am
dvi-am:
dvi: dvi-am
check-am:
- $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check-local
check: check-am
installcheck-am:
installcheck: installcheck-am
@@ -388,7 +413,7 @@ install-am: all-am
install: install-am
uninstall-am:
uninstall: uninstall-am
-all-am: Makefile $(LIBRARIES) $(PROGRAMS)
+all-am: Makefile $(LIBRARIES) $(PROGRAMS) all-local
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
@@ -398,6 +423,7 @@ installdirs:
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
@@ -440,12 +466,61 @@ clean-libtool maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
distclean-noinstPROGRAMS clean-noinstPROGRAMS \
maintainer-clean-noinstPROGRAMS 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
+dvi-am dvi check-local 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-local all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+# Enable wchar_t tests if capable.
+@GLIBCPP_TEST_WCHAR_T_TRUE@all-local: stamp_wchar
+@GLIBCPP_TEST_WCHAR_T_FALSE@all-local:
+
+# Override this so local rules are possible.
+check-am:
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU; \
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+
+check-local: check-abi
+
+stamp_wchar:
+ touch testsuite_wchar_t
+
+current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so
+ -@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt)
+
+baseline_symbols:
+ -@(output=${baseline_file}; \
+ if test ! -f $${output}; then \
+ echo "Baseline file doesn't exist."; \
+ echo "Try 'make new-abi-baseline' to create it."; \
+ exit 1; \
+ fi; \
+ touch baseline_symbols)
+
+new-abi-baseline:
+ -@$(mkinstalldirs) ${baseline_dir}
+ -@(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; \
+ ${extract_symvers} ../src/.libs/libstdc++.so $${output})
+
+# Use 'new-abi-baseline' to create an initial symbol file. Then run
+# 'check-abi' to test for changes against that file.
+@GLIBCPP_TEST_ABI_TRUE@check-abi: abi_check baseline_symbols current_symbols.txt
+@GLIBCPP_TEST_ABI_TRUE@ -@(./abi_check --check ./current_symbols.txt ${baseline_file} \
+@GLIBCPP_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-v3-abi.sum)
+
+@GLIBCPP_TEST_ABI_TRUE@check-abi-verbose: abi_check baseline_symbols current_symbols.txt
+@GLIBCPP_TEST_ABI_TRUE@ -@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
+@GLIBCPP_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-v3-abi.sum)
+@GLIBCPP_TEST_ABI_FALSE@check-abi:
+@GLIBCPP_TEST_ABI_FALSE@check-abi-verbose:
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libstdc++-v3/testsuite/abi_check.cc b/libstdc++-v3/testsuite/abi_check.cc
index e956090e709..491965b193f 100644
--- a/libstdc++-v3/testsuite/abi_check.cc
+++ b/libstdc++-v3/testsuite/abi_check.cc
@@ -1,6 +1,6 @@
// Utility for libstdc++ ABI analysis -*- C++ -*-
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004 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
@@ -44,7 +44,7 @@
struct symbol_info
{
enum category { none, function, object, error };
- category type;
+ category type;
std::string name;
std::string demangled_name;
int size;
@@ -75,6 +75,43 @@ namespace __gnu_cxx
typedef std::deque<std::string> symbol_names;
typedef __gnu_cxx::hash_map<std::string, symbol_info> symbol_infos;
+
+bool
+check_version(const symbol_info& test, bool added = false)
+{
+ typedef std::vector<std::string> compat_list;
+ static compat_list known_versions;
+ if (known_versions.empty())
+ {
+ known_versions.push_back("GLIBCPP_3.2"); // base version
+ known_versions.push_back("GLIBCPP_3.2.1");
+ known_versions.push_back("GLIBCPP_3.2.2");
+ known_versions.push_back("GLIBCPP_3.2.3"); // gcc-3.3.0
+ known_versions.push_back("GLIBCPP_3.2.4"); // gcc-3.3.4
+ known_versions.push_back("CXXABI_1.2");
+ known_versions.push_back("CXXABI_1.2.1");
+ known_versions.push_back("CXXABI_1.2.2");
+ }
+ compat_list::iterator begin = known_versions.begin();
+ compat_list::iterator end = known_versions.end();
+
+ // Check version names for compatibility...
+ compat_list::iterator it1 = find(begin, end, test.version_name);
+
+ // Check for weak label.
+ compat_list::iterator it2 = find(begin, end, test.name);
+
+ // Check that added symbols aren't added in the base version.
+ bool compat = true;
+ if (added && test.version_name == known_versions[0])
+ compat = false;
+
+ if (it1 == end && it2 == end)
+ compat = false;
+
+ return compat;
+}
+
bool
check_compatible(const symbol_info& lhs, const symbol_info& rhs,
bool verbose = false)
@@ -113,7 +150,8 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
}
}
- if (lhs.version_name != rhs.version_name)
+ if (lhs.version_name != rhs.version_name
+ && !check_version(lhs) && !check_version(rhs))
{
ret = false;
if (verbose)
@@ -258,13 +296,11 @@ 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;
+ cout << tab << symbol.name << endl;
+ cout << tab << symbol.version_name << endl;
if (ret)
cout << endl;
@@ -277,17 +313,20 @@ 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])))
+ bool verbose = false;
+ string argv1 = argc > 1 ? argv[1] : "";
+ if (argv1 == "--help" || argc < 4)
{
- cerr << "Usage: abi_check --check cur baseline\n"
- " --help\n\n"
- "Where CUR is a file containing the current results from\n"
+ cerr << "usage: abi_check --check current baseline\n"
+ " --check-verbose current baseline\n"
+ " --help\n\n"
+ "Where CURRENT is a file containing the current results from\n"
"extract_symvers, and BASELINE is one from config/abi.\n"
<< endl;
exit(1);
}
-
+ else if (argv1 == "--check-verbose")
+ verbose = true;
// Quick sanity/setup check for arguments.
const char* test_file = argv[2];
@@ -346,12 +385,19 @@ main(int argc, char** argv)
added_names.erase(it);
}
else
- missing_names.push_back(what);
+ missing_names.push_back(what);
}
- // Check shared names for compatibility.
+ // Check missing names for compatibility.
typedef pair<symbol_info, symbol_info> symbol_pair;
vector<symbol_pair> incompatible;
+ for (size_t i = 0; i < missing_names.size(); ++i)
+ {
+ symbol_info base = baseline_symbols[missing_names[i]];
+ incompatible.push_back(symbol_pair(base, base));
+ }
+
+ // Check shared names for compatibility.
for (size_t i = 0; i < shared_names.size(); ++i)
{
symbol_info base = baseline_symbols[shared_names[i]];
@@ -363,49 +409,48 @@ main(int argc, char** argv)
// Check added names for compatibility.
for (size_t i = 0; i < added_names.size(); ++i)
{
- vector<string> compatible_versions;
- compatible_versions.push_back("GLIBCPP_3.2.1");
- compatible_versions.push_back("GLIBCPP_3.2.2");
- compatible_versions.push_back("CXXABI_1.2.1");
-
symbol_info test = test_symbols[added_names[i]];
- vector<string>::iterator end = compatible_versions.end();
-
- // Check version names for compatibility...
- vector<string>::iterator it1 = find(compatible_versions.begin(), end,
- test.version_name);
-
- // Check for weak label.
- vector<string>::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;
- }
+ if (!check_version(test, true))
+ incompatible.push_back(symbol_pair(test, test));
}
// 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)
+ if (verbose && added_names.size())
{
- // 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);
+ 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);
}
+
+ if (verbose && missing_names.size())
+ {
+ 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);
+ }
+
+ if (verbose && incompatible.size())
+ {
+ 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);
+ }
+ }
+
+ cout << "\n\t\t=== libstdc++-v3 check-abi Summary ===" << endl;
+ cout << endl;
+ cout << "# of added symbols:\t\t " << added_names.size() << endl;
+ cout << "# of missing symbols:\t\t " << missing_names.size() << endl;
+ cout << "# of incompatible symbols:\t " << incompatible.size() << endl;
+ cout << endl;
+ cout << "using: " << baseline_file << endl;
return 0;
}
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf.cc
new file mode 100644
index 00000000000..2ac4ea5a49f
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/stdio_filebuf.cc
@@ -0,0 +1,36 @@
+// 2003-02-13 Paolo Carlini <pcarlini@unitus.it>
+
+// Copyright (C) 2003 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.
+
+// stdio_filebuf.h
+
+#include <ext/stdio_filebuf.h>
+#include <testsuite_hooks.h>
+
+// { dg-do compile }
+
+// libstdc++/9320
+namespace test
+{
+ using namespace std;
+ using __gnu_cxx_test::pod_char;
+ typedef short type_t;
+ template class __gnu_cxx::stdio_filebuf<type_t, char_traits<type_t> >;
+ template class __gnu_cxx::stdio_filebuf<pod_char, char_traits<pod_char> >;
+} // test
diff --git a/libstdc++-v3/testsuite/ext/stdio_filebuf_2.cc b/libstdc++-v3/testsuite/ext/stdio_filebuf_2.cc
new file mode 100644
index 00000000000..d58d4584cb6
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/stdio_filebuf_2.cc
@@ -0,0 +1,61 @@
+// 2003-03-29 Paolo Carlini <pcarlini@unitus.it>
+
+// Copyright (C) 2003 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.
+
+// stdio_filebuf.h
+
+#include <ext/stdio_filebuf.h>
+#include <cstdio>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+// Small stack-based buffers (i.e., using _M_unbuf) were not flushed
+// out by _M_really_overflow upon overflow.
+void test01()
+{
+
+ using namespace std;
+ bool test = true;
+
+ const char* name = "tmp_file1";
+ FILE* file = fopen(name, "w");
+ {
+ using namespace __gnu_cxx;
+
+ // One char big stack-based buffer.
+ stdio_filebuf<char> sbuf(file, ios_base::out, 1);
+ sbuf.sputc('T');
+ sbuf.sputc('S');
+ }
+ fclose(file);
+
+ filebuf fbuf;
+ fbuf.open(name, ios_base::in);
+ char buf[10];
+ streamsize n = fbuf.sgetn(buf, sizeof(buf));
+ fbuf.close();
+
+ VERIFY( n == 2 );
+ VERIFY( !memcmp(buf, "TS", 2) );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
index fd95a0d9253..cacbcb5dc64 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -44,7 +44,9 @@ proc libstdc++-v3-init { args } {
global cxxflags
global objdir
global gluefile wrap_flags
+ global env
global ld_library_path
+ global original_ld_library_path
global tool_root_dir
set blddir [lookfor_file [get_multilibs] libstdc++-v3]
@@ -54,18 +56,35 @@ proc libstdc++-v3-init { args } {
set dg-do-what-default run
# Copy any required data files.
- libstdc++-v3-copy-files [glob -nocomplain "$srcdir/*/*.tst"] $outdir
- libstdc++-v3-copy-files [glob -nocomplain "$srcdir/*/*.txt"] $outdir
+ libstdc++-v3-copy-files [glob -nocomplain "$srcdir/{,*/}*/*.tst"] $outdir
+ libstdc++-v3-copy-files [glob -nocomplain "$srcdir/{,*/}*/*.txt"] $outdir
- # set LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found.
- # locate libgcc.a so we don't need to account for different values of
+
+ # Setup LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found.
+ # Find the existing LD_LIBRARY_PATH.
+ if [info exists env(LD_LIBRARY_PATH)] {
+ set original_ld_library_path $env(LD_LIBRARY_PATH)
+ } else {
+ if [info exists env(SHLIB_PATH)] {
+ set original_ld_library_path $env(SHLIB_PATH)
+ } else {
+ if [info exists env(DYLD_LIBRARY_PATH)] {
+ set original_ld_library_path $env(DYLD_LIBRARY_PATH)
+ } else {
+ set original_ld_library_path ""
+ }
+ }
+ }
+
+ # Locate libgcc.a so we don't need to account for different values of
# SHLIB_EXT on different platforms
set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
if {$gccdir != ""} {
set gccdir [file dirname $gccdir]
}
- set ld_library_path "."
+ # Compute what needs to be added to the existing LD_LIBRARY_PATH.
+ set ld_library_path ""
append ld_library_path ":${gccdir}"
set compiler ${gccdir}/g++
if { [is_remote host] == 0 && [which $compiler] != 0 } {
@@ -89,10 +108,14 @@ proc libstdc++-v3-init { args } {
# unix.exp -- but that's not an option since it's part of DejaGNU
# proper, so we do it here. We really only need to do
# this on IRIX, but it shouldn't hurt to do it anywhere else.
- setenv LD_LIBRARY_PATH $ld_library_path
- setenv SHLIB_PATH $ld_library_path
- setenv LD_LIBRARYN32_PATH $ld_library_path
- setenv LD_LIBRARY64_PATH $ld_library_path
+ setenv LD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path"
+ setenv SHLIB_PATH "$ld_library_path:$original_ld_library_path"
+ setenv LD_LIBRARYN32_PATH "$ld_library_path:$original_ld_library_path"
+ setenv LD_LIBRARY64_PATH "$ld_library_path:$original_ld_library_path"
+ setenv LD_RUN_PATH "$ld_library_path:$original_ld_library_path"
+ setenv LD_LIBRARY_PATH_64 "$ld_library_path:$original_ld_library_path"
+ setenv DYLD_LIBRARY_PATH "$ld_library_path:$original_ld_library_path"
+ verbose -log "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
# Do a bunch of handstands and backflips for cross compiling and
# finding simulators...
@@ -233,13 +256,30 @@ proc libstdc++-v3-list-sourcefiles { } {
set f [open $files_file "w"]
set where_we_were [pwd]
cd $srcdir
- foreach s [lsort [glob -nocomplain */*.cc]] {
+ foreach s [lsort [glob -nocomplain "*/*.cc" "*/*/*.cc" "{,*/}*/*/*/*.cc" ]] {
lappend sfiles ${srcdir}/${s}
puts $f $s
}
cd $where_we_were
}
close $f
- return $sfiles
-}
+ # Disable wchar_t tests if library not configured to support
+ # wchar_t testing.
+ set wchar_file "${outdir}/testsuite_wchar_t"
+ if { [file exists $wchar_file] } {
+ return $sfiles
+ } else {
+ # Remove wchar_t tests files from list.
+ set res {}
+ foreach w $sfiles {
+ if [regexp "wchar_t" $w] {
+ verbose "element out list is $w"
+ } else {
+ verbose "element in list is $w"
+ lappend res $w
+ }
+ }
+ return $res
+ }
+}
diff --git a/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
index 4e0dd07dbaa..bad12dc31dc 100644
--- a/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
+++ b/libstdc++-v3/testsuite/libstdc++-v3.dg/dg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,23 +22,13 @@ load_lib libstdc++-v3-dg.exp
# If a testcase doesn't have special options, use these.
global DEFAULT_CXXFLAGS
if ![info exists DEFAULT_CXXFLAGS] then {
- set DEFAULT_CXXFLAGS " -DDEBUG_ASSERT"
+ set DEFAULT_CXXFLAGS "-g -O2 -DDEBUG_ASSERT"
}
# Initialize 'dg' last or dejagnu exits with an error...
libstdc++-v3-init
dg-init
-
-## Set ulimits.
-## This should normally be handled on a per-test basis through @xxx@-keywords.
-## The following limit is expressed in kilobytes. For history, have a
-## look at http://gcc.gnu.org/ml/libstdc++/2000-10/msg00029.html
-set maximum-memory-usage 16384
-set shell-ulimit-command ulimit
-remote_exec host ${shell-ulimit-command} "-d ${maximum-memory-usage}"
-remote_exec host ${shell-ulimit-command} "-v ${maximum-memory-usage}"
-
# Main loop.
dg-runtest [libstdc++-v3-list-sourcefiles] "" $DEFAULT_CXXFLAGS
diff --git a/libstdc++-v3/testsuite/testsuite_allocator.cc b/libstdc++-v3/testsuite/testsuite_allocator.cc
index a4f287e008b..775b2535026 100644
--- a/libstdc++-v3/testsuite/testsuite_allocator.cc
+++ b/libstdc++-v3/testsuite/testsuite_allocator.cc
@@ -1,5 +1,7 @@
+// -*- C++ -*-
+// Testing allocator for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -28,8 +30,11 @@
#include <testsuite_allocator.h>
-gnu_allocator_tracker::size_type gnu_allocator_tracker::allocationTotal_ = 0;
-gnu_allocator_tracker::size_type gnu_allocator_tracker::deallocationTotal_ = 0;
-int gnu_allocator_tracker::constructCount_ = 0;
-int gnu_allocator_tracker::destructCount_ = 0;
+namespace __gnu_cxx_test
+{
+ allocation_tracker::size_type allocation_tracker::allocationTotal_ = 0;
+ allocation_tracker::size_type allocation_tracker::deallocationTotal_ = 0;
+ int allocation_tracker::constructCount_ = 0;
+ int allocation_tracker::destructCount_ = 0;
+}; // namespace __cxx_test
diff --git a/libstdc++-v3/testsuite/testsuite_allocator.h b/libstdc++-v3/testsuite/testsuite_allocator.h
index 1387b5af0ec..3c77260f5d5 100644
--- a/libstdc++-v3/testsuite/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/testsuite_allocator.h
@@ -1,6 +1,7 @@
+// -*- C++ -*-
// Testing allocator for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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,71 +38,66 @@
#include <cstddef>
#include <limits>
-class gnu_allocator_tracker
+namespace __gnu_cxx_test
{
- public:
- typedef std::size_t size_type;
-
- static void*
- allocate(size_type blocksize)
+ class allocation_tracker
{
- allocationTotal_ += blocksize;
- return ::operator new(blocksize);
- }
-
- static void
- construct()
- { constructCount_++; }
-
- static void
- destroy()
- { destructCount_++; }
-
- static void
- deallocate(void* p, size_type blocksize)
- {
- ::operator delete(p);
- deallocationTotal_ += blocksize;
- }
-
- static size_type
- allocationTotal()
- { return allocationTotal_; }
+ public:
+ typedef std::size_t size_type;
+
+ static void*
+ allocate(size_type blocksize)
+ {
+ allocationTotal_ += blocksize;
+ return ::operator new(blocksize);
+ }
+
+ static void
+ construct() { constructCount_++; }
- static size_type
- deallocationTotal()
- { return deallocationTotal_; }
+ static void
+ destroy() { destructCount_++; }
- static int
- constructCount()
- { return constructCount_; }
+ static void
+ deallocate(void* p, size_type blocksize)
+ {
+ ::operator delete(p);
+ deallocationTotal_ += blocksize;
+ }
+
+ static size_type
+ allocationTotal() { return allocationTotal_; }
+
+ static size_type
+ deallocationTotal() { return deallocationTotal_; }
+
+ static int
+ constructCount() { return constructCount_; }
- static int
- destructCount()
- { return destructCount_; }
+ static int
+ destructCount() { return destructCount_; }
- static void
- resetCounts()
- {
- allocationTotal_ = 0;
- deallocationTotal_ = 0;
- constructCount_ = 0;
+ static void
+ resetCounts()
+ {
+ allocationTotal_ = 0;
+ deallocationTotal_ = 0;
+ constructCount_ = 0;
destructCount_ = 0;
- }
+ }
private:
- static size_type allocationTotal_;
- static size_type deallocationTotal_;
- static int constructCount_;
- static int destructCount_;
-};
-
-// A simple basic allocator that just forwards to the
-// gnu_allocator_tracker to fulfill memory requests. This class is
-// templated on the target object type, but gnu_allocator_tracker
-// isn't.
-template<class T>
- class gnu_new_allocator
+ static size_type allocationTotal_;
+ static size_type deallocationTotal_;
+ static int constructCount_;
+ static int destructCount_;
+ };
+
+ // A simple basic allocator that just forwards to the
+ // allocation_tracker to fulfill memory requests. This class is
+ // templated on the target object type, but tracker isn't.
+ template<class T>
+ class tracker_alloc
{
public:
typedef T value_type;
@@ -112,7 +108,7 @@ template<class T>
typedef std::size_t size_type;
typedef std::ptrdiff_t difference_type;
- template<class U> struct rebind { typedef gnu_new_allocator<U> other; };
+ template<class U> struct rebind { typedef tracker_alloc<U> other; };
pointer
address(reference value) const
@@ -122,17 +118,17 @@ template<class T>
address(const_reference value) const
{ return &value; }
- gnu_new_allocator() throw()
+ tracker_alloc() throw()
{ }
- gnu_new_allocator(const gnu_new_allocator&) throw()
+ tracker_alloc(const tracker_alloc&) throw()
{ }
template<class U>
- gnu_new_allocator(const gnu_new_allocator<U>&) throw()
+ tracker_alloc(const tracker_alloc<U>&) throw()
{ }
- ~gnu_new_allocator() throw()
+ ~tracker_alloc() throw()
{ }
size_type
@@ -140,42 +136,40 @@ template<class T>
{ return std::numeric_limits<std::size_t>::max() / sizeof(T); }
pointer
- allocate(size_type num, const void* = 0)
+ allocate(size_type n, const void* = 0)
{
- return static_cast<pointer>(gnu_allocator_tracker::allocate(num *
- sizeof(T)));
+ return static_cast<pointer>(allocation_tracker::allocate(n * sizeof(T)));
}
void
construct(pointer p, const T& value)
{
new (p) T(value);
- gnu_allocator_tracker::construct();
+ allocation_tracker::construct();
}
void
destroy(pointer p)
{
p->~T();
- gnu_allocator_tracker::destroy();
+ allocation_tracker::destroy();
}
void
deallocate(pointer p, size_type num)
- { gnu_allocator_tracker::deallocate(p, num * sizeof(T)); }
+ { allocation_tracker::deallocate(p, num * sizeof(T)); }
};
-template<class T1, class T2>
- bool
- operator==(const gnu_new_allocator<T1>&,
- const gnu_new_allocator<T2>&) throw()
- { return true; }
-
-template<class T1, class T2>
- bool
- operator!=(const gnu_new_allocator<T1>&,
- const gnu_new_allocator<T2>&) throw()
- { return false; }
+ template<class T1, class T2>
+ bool
+ operator==(const tracker_alloc<T1>&, const tracker_alloc<T2>&) throw()
+ { return true; }
+
+ template<class T1, class T2>
+ bool
+ operator!=(const tracker_alloc<T1>&, const tracker_alloc<T2>&) throw()
+ { return false; }
+}; // namespace __gnu_cxx_test
#endif // _GLIBCPP_TESTSUITE_ALLOCATOR_H
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.cc b/libstdc++-v3/testsuite/testsuite_hooks.cc
index 931dd378193..4e714fa6cba 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.cc
+++ b/libstdc++-v3/testsuite/testsuite_hooks.cc
@@ -1,6 +1,7 @@
-// Utility subroutines for the C++ library testsuite.
+// -*- C++ -*-
+// Utility subroutines for the C++ library testsuite.
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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,14 +34,22 @@
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
+#endif
+#include <list>
+#include <string>
+#include <stdexcept>
+#include <clocale>
+#include <locale>
-void
-__set_testsuite_memlimit(float __size)
+namespace __gnu_cxx_test
{
+#ifdef _GLIBCPP_MEM_LIMITS
+ void
+ set_memory_limits(float size)
+ {
struct rlimit r;
// Cater to the absence of rlim_t.
- __typeof__ (r.rlim_cur) limit
- = (__typeof__ (r.rlim_cur))(__size * 1048576);
+ __typeof__ (r.rlim_cur) limit = (__typeof__ (r.rlim_cur))(size * 1048576);
// Heap size, seems to be common.
#if _GLIBCPP_HAVE_MEMLIMIT_DATA
@@ -69,19 +78,90 @@ __set_testsuite_memlimit(float __size)
r.rlim_cur = limit;
setrlimit(RLIMIT_AS, &r);
#endif
-}
+ }
+
#else
-void
-__set_testsuite_memlimit(float) { }
-#endif /* _GLIBCPP_MEM_LIMITS */
+ void
+ set_memory_limits(float) { }
+#endif
+
+ // Useful exceptions.
+ class locale_data : public std::runtime_error
+ {
+ public:
+ explicit
+ locale_data(const std::string& __arg) : runtime_error(__arg) { }
+ };
+ class environment_variable: public std::runtime_error
+ {
+ public:
+ explicit
+ environment_variable(const std::string& __arg) : runtime_error(__arg) { }
+ };
-gnu_counting_struct::size_type gnu_counting_struct::count = 0;
+ class not_found : public std::runtime_error
+ {
+ public:
+ explicit
+ not_found(const std::string& __arg) : runtime_error(__arg) { }
+ };
-unsigned int gnu_copy_constructor::count_ = 0;
-unsigned int gnu_copy_constructor::throw_on_ = 0;
-unsigned int gnu_assignment_operator::count_ = 0;
-unsigned int gnu_assignment_operator::throw_on_ = 0;
-unsigned int gnu_destructor::count_ = 0;
-int gnu_copy_tracker::next_id_ = 0;
+ void
+ run_tests_wrapped_locale(const char* name, const func_callback& l)
+ {
+ using namespace std;
+ bool test = true;
+
+ // Set the global locale.
+ locale loc_name(name);
+ locale orig = locale::global(loc_name);
+
+ const char* res = setlocale(LC_ALL, name);
+ if (res != NULL)
+ {
+ string preLC_ALL = res;
+ for (func_callback::const_iterator i = l.begin(); i != l.end(); ++i)
+ (*i)();
+ string postLC_ALL= setlocale(LC_ALL, NULL);
+ VERIFY( preLC_ALL == postLC_ALL );
+ }
+ else
+ throw environment_variable(string("LC_ALL for") + string(name));
+ }
+
+ void
+ run_tests_wrapped_env(const char* name, const char* env,
+ const func_callback& l)
+ {
+ using namespace std;
+ bool test = true;
+
+#ifdef _GLIBCPP_HAVE_SETENV
+ // Set the global locale.
+ locale loc_name(name);
+ locale orig = locale::global(loc_name);
+
+ // Set environment variable env to value in name.
+ const char* oldENV = getenv(env);
+ if (!setenv(env, name, 1))
+ {
+ for (func_callback::const_iterator i = l.begin(); i != l.end(); ++i)
+ (*i)();
+ setenv(env, oldENV ? oldENV : "", 1);
+ }
+ else
+ throw environment_variable(string(env) + string(" to ") + string(name));
+#else
+ throw not_found("setenv");
+#endif
+ }
+ counter::size_type counter::count = 0;
+ unsigned int copy_constructor::count_ = 0;
+ unsigned int copy_constructor::throw_on_ = 0;
+ unsigned int assignment_operator::count_ = 0;
+ unsigned int assignment_operator::throw_on_ = 0;
+ unsigned int destructor::_M_count = 0;
+ int copy_tracker::next_id_ = 0;
+}; // namespace __cxx_test
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.h b/libstdc++-v3/testsuite/testsuite_hooks.h
index 9f89b03a772..cd05443dacd 100644
--- a/libstdc++-v3/testsuite/testsuite_hooks.h
+++ b/libstdc++-v3/testsuite/testsuite_hooks.h
@@ -1,6 +1,7 @@
-// Utility subroutines for the C++ library testsuite.
+// -*- C++ -*-
+// Utility subroutines for the C++ library testsuite.
//
-// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003 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,25 +35,25 @@
// #define(able) assert() behavior for debugging/testing. It may be
// a suitable location for other furry woodland creatures as well.
//
-// 2) __set_testsuite_memlimit()
-// __set_testsuite_memlimit() uses setrlimit() to restrict dynamic memory
+// 2) set_memory_limits()
+// set_memory_limits() uses setrlimit() to restrict dynamic memory
// allocation. We provide a default memory limit if none is passed by the
-// calling application. The argument to __set_testsuite_memlimit() is the
+// calling application. The argument to set_memory_limits() is the
// limit in megabytes (a floating-point number). If _GLIBCPP_MEM_LIMITS is
// not #defined before including this header, then no limiting is attempted.
//
-// 3) gnu_counting_struct
+// 3) counter
// This is a POD with a static data member, gnu_counting_struct::count,
// which starts at zero, increments on instance construction, and decrements
// on instance destruction. "assert_count(n)" can be called to VERIFY()
// that the count equals N.
//
-// 4) gnu_copy_tracker, from Stephen M. Webb <stephen@bregmasoft.com>.
+// 4) copy_tracker, from Stephen M. Webb <stephen@bregmasoft.com>.
// A class with nontrivial ctor/dtor that provides the ability to track the
// number of copy ctors and dtors, and will throw on demand during copy.
//
-// 5) gnu_char, gnu_char_traits, abstract character classes and
-// char_traits specializations for testing instantiations.
+// 5) pod_char, pod_int, , abstract character classes and
+// char_traits specializations for testing instantiations.
#ifndef _GLIBCPP_TESTSUITE_HOOKS_H
#define _GLIBCPP_TESTSUITE_HOOKS_H
@@ -60,185 +61,206 @@
#include <bits/c++config.h>
#include <bits/functexcept.h>
#include <cstddef>
-
#ifdef DEBUG_ASSERT
# include <cassert>
# define VERIFY(fn) assert(fn)
#else
# define VERIFY(fn) test &= (fn)
#endif
+#include <list>
-// Defined in GLIBCPP_CONFIGURE_TESTSUITE.
-#ifndef _GLIBCPP_MEM_LIMITS
-// Don't do memory limits.
-extern void
-__set_testsuite_memlimit(float x = 0);
+namespace __gnu_cxx_test
+{
+ // All macros are defined in GLIBCPP_CONFIGURE_TESTSUITE and imported
+ // from c++config.h
+ // Set memory limits if possible, if not set to 0.
+#ifndef _GLIBCPP_MEM_LIMITS
+# define MEMLIMIT_MB 0
#else
-
-// Do memory limits.
-#ifndef MEMLIMIT_MB
-#define MEMLIMIT_MB 16.0
+# ifndef MEMLIMIT_MB
+# define MEMLIMIT_MB 16.0
+# endif
#endif
+ extern void
+ set_memory_limits(float __size = MEMLIMIT_MB);
-extern void
-__set_testsuite_memlimit(float __size = MEMLIMIT_MB);
-#endif
+ // Simple callback structure for variable numbers of tests (all with
+ // same signature). Assume all unit tests are of the signature
+ // void test01();
+ typedef void (*test_func) (void);
+ typedef std::list<test_func> func_callback;
+ // Run select unit tests after setting global locale.
+ void
+ run_tests_wrapped_locale(const char*, const func_callback&);
-struct gnu_counting_struct
-{
+ // Run select unit tests after setting environment variables.
+ void
+ run_tests_wrapped_env(const char*, const char*, const func_callback&);
+
+ // Test data types.
+ struct pod_char
+ {
+ unsigned char c;
+ };
+
+ struct pod_int
+ {
+ int i;
+ };
+
+ struct pod_unsigned_int
+ {
+ unsigned int i;
+ };
+
+ struct pod_long
+ {
+ unsigned long i;
+ };
+
+ struct state
+ {
+ unsigned long l;
+ unsigned long l2;
+ };
+
+ // Counting.
+ struct counter
+ {
// Specifically and glaringly-obviously marked 'signed' so that when
// COUNT mistakenly goes negative, we can track the patterns of
// deletions more easily.
typedef signed int size_type;
static size_type count;
- gnu_counting_struct() { ++count; }
- gnu_counting_struct (const gnu_counting_struct&) { ++count; }
- ~gnu_counting_struct() { --count; }
-};
-
-#define assert_count(n) VERIFY(gnu_counting_struct::count == n)
-
-// A (static) class for counting copy constructors and possibly throwing an
-// exception on a desired count.
-class gnu_copy_constructor
-{
-public:
- static unsigned int
- count()
- { return count_; }
-
- static void
- mark_call()
+ counter() { ++count; }
+ counter (const counter&) { ++count; }
+ ~counter() { --count; }
+ };
+
+#define assert_count(n) VERIFY(__gnu_cxx_test::counter::count == n)
+
+ // A (static) class for counting copy constructors and possibly throwing an
+ // exception on a desired count.
+ class copy_constructor
{
- count_++;
- if (count_ == throw_on_)
+ public:
+ static unsigned int
+ count() { return count_; }
+
+ static void
+ mark_call()
{
- __throw_exception_again "copy constructor exception";
+ count_++;
+ if (count_ == throw_on_)
+ __throw_exception_again "copy constructor exception";
}
- }
+
+ static void
+ reset()
+ {
+ count_ = 0;
+ throw_on_ = 0;
+ }
+
+ static void
+ throw_on(unsigned int count) { throw_on_ = count; }
- static void
- reset()
+ private:
+ static unsigned int count_;
+ static unsigned int throw_on_;
+ };
+
+ // A (static) class for counting assignment operator calls and
+ // possibly throwing an exception on a desired count.
+ class assignment_operator
{
- count_ = 0;
- throw_on_ = 0;
- }
-
- static void
- throw_on(unsigned int count)
- { throw_on_ = count; }
-
-private:
- static unsigned int count_;
- static unsigned int throw_on_;
-};
-
-// A (static) class for counting assignment operator calls and possibly
-// throwing an exception on a desired count.
-class gnu_assignment_operator
-{
-public:
- static unsigned int
- count()
- { return count_; }
+ public:
+ static unsigned int
+ count() { return count_; }
+
+ static void
+ mark_call()
+ {
+ count_++;
+ if (count_ == throw_on_)
+ __throw_exception_again "assignment operator exception";
+ }
- static void
- mark_call()
- {
- count_++;
- if (count_ == throw_on_)
+ static void
+ reset()
{
- __throw_exception_again "assignment operator exception";
+ count_ = 0;
+ throw_on_ = 0;
}
- }
- static void
- reset()
- {
- count_ = 0;
- throw_on_ = 0;
- }
+ static void
+ throw_on(unsigned int count) { throw_on_ = count; }
- static void
- throw_on(unsigned int count)
- { throw_on_ = count; }
+ private:
+ static unsigned int count_;
+ static unsigned int throw_on_;
+ };
+
+ // A (static) class for tracking calls to an object's destructor.
+ class destructor
+ {
+ public:
+ static unsigned int
+ count() { return _M_count; }
+
+ static void
+ mark_call() { _M_count++; }
-private:
- static unsigned int count_;
- static unsigned int throw_on_;
-};
+ static void
+ reset() { _M_count = 0; }
-// A (static) class for tracking calls to an object's destructor.
-class gnu_destructor
-{
-public:
- static unsigned int
- count()
- { return count_; }
-
- static void
- mark_call()
- { count_++; }
-
- static void
- reset()
- { count_ = 0; }
-
-private:
- static unsigned int count_;
-};
-
-// An class of objects that can be used for validating various behaviours and
-// guarantees of containers and algorithms defined in the standard library.
-class gnu_copy_tracker
-{
+ private:
+ static unsigned int _M_count;
+ };
+
+ // An class of objects that can be used for validating various
+ // behaviours and guarantees of containers and algorithms defined in
+ // the standard library.
+ class copy_tracker
+ {
public:
- // Creates a copy-tracking object with the given ID number.
- // If "throw_on_copy" is set, an exception will be thrown if
- // an attempt is made to copy this object.
- gnu_copy_tracker(int id = next_id_--, bool throw_on_copy = false)
- : id_(id)
- , throw_on_copy_(throw_on_copy)
- {
- }
+ // Creates a copy-tracking object with the given ID number. If
+ // "throw_on_copy" is set, an exception will be thrown if an
+ // attempt is made to copy this object.
+ copy_tracker(int id = next_id_--, bool throw_on_copy = false)
+ : id_(id) , throw_on_copy_(throw_on_copy) { }
// Copy-constructs the object, marking a call to the copy
// constructor and forcing an exception if indicated.
- gnu_copy_tracker(const gnu_copy_tracker& rhs)
+ copy_tracker(const copy_tracker& rhs)
: id_(rhs.id()), throw_on_copy_(rhs.throw_on_copy_)
{
int kkk = throw_on_copy_;
if (throw_on_copy_)
- {
- gnu_copy_constructor::throw_on(gnu_copy_constructor::count() + 1);
- }
- gnu_copy_constructor::mark_call();
+ copy_constructor::throw_on(copy_constructor::count() + 1);
+ copy_constructor::mark_call();
}
// Assigns the value of another object to this one, tracking the
// number of times this member function has been called and if the
// other object is supposed to throw an exception when it is
// copied, well, make it so.
- gnu_copy_tracker&
- operator=(const gnu_copy_tracker& rhs)
+ copy_tracker&
+ operator=(const copy_tracker& rhs)
{
id_ = rhs.id();
if (rhs.throw_on_copy_)
- {
- gnu_assignment_operator::throw_on(gnu_assignment_operator::count()
- + 1);
- }
- gnu_assignment_operator::mark_call();
+ assignment_operator::throw_on(assignment_operator::count() + 1);
+ assignment_operator::mark_call();
}
- ~gnu_copy_tracker()
- { gnu_destructor::mark_call(); }
+ ~copy_tracker()
+ { destructor::mark_call(); }
int
- id() const
- { return id_; }
+ id() const { return id_; }
private:
int id_;
@@ -248,59 +270,44 @@ class gnu_copy_tracker
static void
reset()
{
- gnu_copy_constructor::reset();
- gnu_assignment_operator::reset();
- gnu_destructor::reset();
+ copy_constructor::reset();
+ assignment_operator::reset();
+ destructor::reset();
}
// for backwards-compatibility
static int
copyCount()
- { return gnu_copy_constructor::count(); }
+ { return copy_constructor::count(); }
// for backwards-compatibility
static int
dtorCount()
- { return gnu_destructor::count(); }
+ { return destructor::count(); }
private:
static int next_id_;
-};
-
-inline bool
-operator==(const gnu_copy_tracker& lhs, const gnu_copy_tracker& rhs)
-{ return lhs.id() == rhs.id(); }
-
-struct gnu_char
-{
- unsigned long c;
-};
+ };
-struct gnu_int
-{
- unsigned long i;
-};
-
-struct gnu_state
-{
- unsigned long l;
- unsigned long l2;
-};
+ inline bool
+ operator==(const copy_tracker& lhs, const copy_tracker& rhs)
+ { return lhs.id() == rhs.id(); }
+}; // namespace __gnu_cxx_test
-// char_traits specialization
namespace std
{
template<class _CharT>
struct char_traits;
+ // char_traits specialization
template<>
- struct char_traits<gnu_char>
+ struct char_traits<__gnu_cxx_test::pod_char>
{
- typedef gnu_char char_type;
- typedef gnu_int int_type;
- typedef long pos_type;
- typedef unsigned long off_type;
- typedef gnu_state state_type;
+ typedef __gnu_cxx_test::pod_char char_type;
+ typedef __gnu_cxx_test::pod_int int_type;
+ typedef long pos_type;
+ typedef unsigned long off_type;
+ typedef __gnu_cxx_test::state state_type;
static void
assign(char_type& __c1, const char_type& __c2);
diff --git a/libstdc++-v3/testsuite/thread/pthread1.cc b/libstdc++-v3/testsuite/thread/pthread1.cc
index 5d81563255b..d517ea9e1be 100644
--- a/libstdc++-v3/testsuite/thread/pthread1.cc
+++ b/libstdc++-v3/testsuite/thread/pthread1.cc
@@ -1,6 +1,6 @@
// 2002-01-23 Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -18,7 +18,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -107,7 +107,7 @@ main (int argc, char** argv)
task_queue* tq[thread_pairs];
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (thread_pairs * 2);
#endif
diff --git a/libstdc++-v3/testsuite/thread/pthread2.cc b/libstdc++-v3/testsuite/thread/pthread2.cc
index 3ebe9283e34..2692d010254 100644
--- a/libstdc++-v3/testsuite/thread/pthread2.cc
+++ b/libstdc++-v3/testsuite/thread/pthread2.cc
@@ -1,7 +1,7 @@
// 2002-01-23 Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
// Adpated from libstdc++/5347 submitted by markus.breuer@materna.de
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -19,7 +19,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -50,7 +50,7 @@ main()
{
pthread_t tid[max_thread_count];
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (max_thread_count);
#endif
diff --git a/libstdc++-v3/testsuite/thread/pthread3.cc b/libstdc++-v3/testsuite/thread/pthread3.cc
index 59b0c6f3133..a1175b76ae0 100644
--- a/libstdc++-v3/testsuite/thread/pthread3.cc
+++ b/libstdc++-v3/testsuite/thread/pthread3.cc
@@ -1,7 +1,7 @@
// 2002-01-23 Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
// Adpated from libstdc++/5347 submitted by markus.breuer@materna.de
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -19,7 +19,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -47,7 +47,7 @@ main()
{
pthread_t tid[max_thread_count];
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (max_thread_count);
#endif
diff --git a/libstdc++-v3/testsuite/thread/pthread4.cc b/libstdc++-v3/testsuite/thread/pthread4.cc
index b2b1c2e747f..08d4f425ed8 100644
--- a/libstdc++-v3/testsuite/thread/pthread4.cc
+++ b/libstdc++-v3/testsuite/thread/pthread4.cc
@@ -2,7 +2,7 @@
// Adapted from http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00679.html
// which was adapted from pthread1.cc by Mike Lu <MLu@dynamicsoft.com>
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -20,7 +20,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -35,6 +35,8 @@ using namespace std;
static list<string> foo;
static pthread_mutex_t fooLock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t fooCondOverflow = PTHREAD_COND_INITIALIZER;
+static pthread_cond_t fooCondUnderflow = PTHREAD_COND_INITIALIZER;
static unsigned max_size = 10;
#if defined(__CYGWIN__)
static int iters = 10000;
@@ -50,14 +52,20 @@ produce (void*)
string str ("test string");
pthread_mutex_lock (&fooLock);
- if (foo.size () < max_size)
- {
- foo.push_back (str);
- num++;
- }
+ while (foo.size () >= max_size)
+ pthread_cond_wait (&fooCondOverflow, &fooLock);
+ foo.push_back (str);
+ num++;
+ if (foo.size () >= (max_size / 2))
+ pthread_cond_signal (&fooCondUnderflow);
pthread_mutex_unlock (&fooLock);
}
+ // No more data will ever be written, ensure no fini race
+ pthread_mutex_lock (&fooLock);
+ pthread_cond_signal (&fooCondUnderflow);
+ pthread_mutex_unlock (&fooLock);
+
return 0;
}
@@ -67,12 +75,15 @@ consume (void*)
for (int num = 0; num < iters; )
{
pthread_mutex_lock (&fooLock);
+ while (foo.size () == 0)
+ pthread_cond_wait (&fooCondUnderflow, &fooLock);
while (foo.size () > 0)
{
string str = foo.back ();
foo.pop_back ();
num++;
}
+ pthread_cond_signal (&fooCondOverflow);
pthread_mutex_unlock (&fooLock);
}
@@ -82,7 +93,7 @@ consume (void*)
int
main (void)
{
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (2);
#endif
diff --git a/libstdc++-v3/testsuite/thread/pthread5.cc b/libstdc++-v3/testsuite/thread/pthread5.cc
index a3987c8876e..4d6364abb41 100644
--- a/libstdc++-v3/testsuite/thread/pthread5.cc
+++ b/libstdc++-v3/testsuite/thread/pthread5.cc
@@ -2,7 +2,7 @@
// Adpated from libstdc++/5464 submitted by jjessel@amadeus.net
// Jean-Francois JESSEL (Amadeus SAS Development)
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -20,7 +20,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -95,7 +95,7 @@ main (int argc, char *argv[])
int ids[NTHREADS];
void* status;
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (NTHREADS);
#endif
diff --git a/libstdc++-v3/testsuite/thread/pthread6.cc b/libstdc++-v3/testsuite/thread/pthread6.cc
index 88c258907e6..ca11073a003 100644
--- a/libstdc++-v3/testsuite/thread/pthread6.cc
+++ b/libstdc++-v3/testsuite/thread/pthread6.cc
@@ -1,7 +1,7 @@
// 2002-01-23 Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
// Adpated from libstdc++/5444 submitted by markus.breuer@materna.de
//
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003 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
@@ -19,7 +19,7 @@
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
-// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin } }
+// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* } }
// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* } }
// { dg-options "-pthreads" { target *-*-solaris* } }
@@ -77,7 +77,7 @@ main (void)
{
pthread_t tid[max_thread_count];
-#if defined(__sun) && defined(__svr4__)
+#if defined(__sun) && defined(__svr4__) && _XOPEN_VERSION >= 500
pthread_setconcurrency (max_thread_count);
#endif
diff --git a/libstdc++-v3/testsuite_flags.in b/libstdc++-v3/testsuite_flags.in
index 4c351569a37..e26235e1714 100755
--- a/libstdc++-v3/testsuite_flags.in
+++ b/libstdc++-v3/testsuite_flags.in
@@ -43,8 +43,8 @@ case ${query} in
echo ${CXX}
;;
--build-cxx)
- CC_build="@glibcpp_CXX@"
- CXX=`echo $CC_build | sed 's/xgcc/g++/g'`
+ CXX_build="@glibcpp_CXX@ ${PCHFLAGS}"
+ CXX=`echo "$CXX_build" | sed 's,gcc/xgcc ,gcc/g++ ,'`
echo ${CXX}
;;
--cxxflags)
diff --git a/libtool.m4 b/libtool.m4
index 99149ffe140..21d04247aa6 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -144,6 +144,19 @@ case $host in
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -155,6 +168,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -185,7 +199,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*)
+ ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -664,7 +678,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
diff --git a/ltcf-cxx.sh b/ltcf-cxx.sh
index bdc67f97cf0..9059b1a002f 100644
--- a/ltcf-cxx.sh
+++ b/ltcf-cxx.sh
@@ -2,7 +2,7 @@
# ltcf-cxx.sh - Create a C++ compiler specific configuration
#
-# Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1996-1999, 2000, 2001, 2003 Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# Original C++ support by:Gary V. Vaughan <gvv@techie.com>
@@ -68,11 +68,16 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
# Set up default GNU C++ configuration
# Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if eval "`$CC -print-prog-name=ld` --version 2>&1" | \
- egrep 'GNU ld' > /dev/null; then
- with_gnu_ld=yes
-
+ # archiving commands below assume that GNU ld is being used. The
+ # assumption here is that the linker is going to be the same as that
+ # used by the C compiler. For the purposes of GCC, this is ok, but
+ # if someone uses g++ along with a non-GNU C compiler that doesn't
+ # use GNU ld, we may lose. This is ok for the toolchain tree, since
+ # the only users of ltcf-cxx.sh are libstdc++-v3 and libjava,
+ # anyway, and those use both gcc and g++, so the settings are bound
+ # to be the same.
+
+ if test "$with_gnu_ld" = yes; then
archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
@@ -92,7 +97,6 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
whole_archive_flag_spec=
fi
else
- with_gnu_ld=no
wlarc=
# A generic and very simple default shared library creation
@@ -110,7 +114,6 @@ if { ac_try='${CC-c++} -E conftest.$ac_ext'; { (eval echo \"$ac_try\") 1>&5; (ev
else
with_gcc=no
- with_gnu_ld=no
wlarc=
fi
@@ -323,7 +326,7 @@ case $host_os in
if test "$with_gnu_ld" = no; then
archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
else
- archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
+ archive_cmds='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -o $lib'
fi
fi
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -610,9 +613,9 @@ case $host_os in
if test "$with_gcc" = yes && test "$with_gnu_ld" = no; then
no_undefined_flag=' ${wl}-z ${wl}defs'
if $CC --version | egrep -v '^2\.7' > /dev/null; then
- archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
+ archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
@@ -621,9 +624,9 @@ case $host_os in
else
# g++ 2.7 appears to require `-G' NOT `-shared' on this
# platform.
- archive_cmds='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
+ archive_cmds='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
diff --git a/ltcf-gcj.sh b/ltcf-gcj.sh
index 7be87123642..0ae9e166f0a 100644
--- a/ltcf-gcj.sh
+++ b/ltcf-gcj.sh
@@ -2,7 +2,7 @@
# ltcf-gcj.sh - Create a GCJ compiler specific configuration
#
-# Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1996-1999, 2000, 2001, 2003 Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# Original GCJ support by:
@@ -492,9 +492,9 @@ else
solaris*)
no_undefined_flag=' ${wl}-z ${wl}defs'
- archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $linker_flags ${wl}-h $wl$soname -o $lib'
+ archive_cmds='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags~$rm $lib.exp'
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
diff --git a/ltconfig b/ltconfig
index 68be49bb2ee..6bab34af55c 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1186,6 +1186,11 @@ hpux9* | hpux10* | hpux11*)
;;
irix5* | irix6*)
+ if test "$with_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi
version_type=irix
need_lib_prefix=no
need_version=no
@@ -1197,9 +1202,12 @@ irix5* | irix6*)
;;
*)
case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
*) libsuff= shlibsuff= libmagic=never-match;;
esac
;;
@@ -1569,7 +1577,7 @@ aix3*)
fi
;;
-aix4*)
+aix4* | aix5*)
test "$enable_shared" = yes && enable_static=no
;;
esac
diff --git a/maintainer-scripts/ChangeLog b/maintainer-scripts/ChangeLog
index edba50ca0b3..8c578b6ec12 100644
--- a/maintainer-scripts/ChangeLog
+++ b/maintainer-scripts/ChangeLog
@@ -1,3 +1,72 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-05-21 Paolo Carlini <pcarlini@suse.de>
+
+ * gcc_release (build_sources): Generate the NEWS file in toplevel.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-08 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Correct logic for updating version.c. Put
+ prereleases into a subdirectory.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-06-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Command "all" now creates .bz2 files only for
+ releases and pre-releases.
+
+2003-06-27 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_sources): Do not include gnats.html any longer.
+ Make an error message more descriptive.
+
+2003-06-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Do not update gcc_latest_snapshot tag any longer.
+
+2003-06-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_diffs): Add diagnostics in case we cannot
+ generate a specific diff file.
+
+2003-05-20 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (upload_files): Put diff files into a "diffs"
+ subdirectory.
+
+2003-05-18 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * gcc_release: GNU CC -> GCC.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
2002-09-23 Zack Weinberg <zack@codesourcery.com>
* update_version: Do not check in files which are unchanged.
diff --git a/maintainer-scripts/gcc_release b/maintainer-scripts/gcc_release
index 45169e78f76..c9e10472f16 100755
--- a/maintainer-scripts/gcc_release
+++ b/maintainer-scripts/gcc_release
@@ -11,20 +11,20 @@
#
# Copyright (c) 2001, 2002 Free Software Foundation.
#
-# This file is part of GNU CC.
+# This file is part of GCC.
#
-# GNU CC is free software; you can redistribute it and/or modify
+# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
-# GNU CC is distributed in the hope that it will be useful,
+# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with GNU CC; see the file COPYING. If not, write to
+# along with GCC; see the file COPYING. If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
@@ -130,7 +130,7 @@ EOF
for x in gcc/version.c; do
y=`basename ${x}`
(changedir `dirname ${SOURCE_DIRECTORY}/${x}` && \
- sed -e 's|= \".*\"|= \"'${RELEASE}'\"|g' < ${y} > ${y}.new && \
+ sed -e 's|version_string\[\] = \".*\"|version_string\[\] = \"'${RELEASE}'\"|g' < ${y} > ${y}.new && \
mv ${y}.new ${y} && \
${CVS} ci -m 'Update version' ${y}) || \
error "Could not update ${x}"
@@ -164,7 +164,7 @@ EOF
# Obtain some documentation files from the wwwdocs module.
inform "Retrieving HTML documentation"
changedir "${WORKING_DIRECTORY}"
- for x in bugs gnats faq; do
+ for x in bugs faq; do
(${CVS} export -r HEAD wwwdocs/htdocs/${x}.html && \
cp ${WORKING_DIRECTORY}/wwwdocs/htdocs/${x}.html \
${SOURCE_DIRECTORY}) || \
@@ -178,7 +178,7 @@ EOF
(${ENV} TERM=vt100 lynx -dump $file \
| sed -e "s#file://localhost`/bin/pwd`\(.*\)#http://gcc.gnu.org\1#g" \
> $newfile) || \
- error "Could not regenerate documentation"
+ error "Could not generate text-only version of ${file}"
done
# For a prerelease or real release, we need to generate additional
@@ -194,7 +194,7 @@ EOF
${SOURCE_DIRECTORY}/gcc/doc/install.texi2html
# Regenerate the NEWS file.
- contrib/gennews > gcc/NEWS || \
+ contrib/gennews > NEWS || \
error "Could not regenerate NEWS files"
# Now, we must build the compiler in order to create any generated
@@ -292,7 +292,11 @@ build_diffs() {
for f in gcc gcc-ada gcc-g++ gcc-g77 gcc-java gcc-objc gcc-testsuite gcc-core; do
old_tar=${old_dir}/${f}-${old_vers}.tar.gz
new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.gz
- if [ -e $old_tar ] && [ -e $new_tar ]; then
+ if [ ! -e $old_tar ]; then
+ inform "$old_tar not found; not generating diff file"
+ elif [ ! -e $new_tar ]; then
+ inform "$new_tar not found; not generating diff file"
+ else
build_diff $old_tar gcc-${old_vers} $new_tar gcc-${RELEASE} \
${f}-${old_vers}-${RELEASE}.diff.gz
fi
@@ -326,20 +330,30 @@ upload_files() {
# Make sure the directory exists on the server.
if [ $LOCAL -eq 0 ]; then
- ${SSH} -l ${GCC_USERNAME} ${GCC_HOSTNAME} mkdir ${FTP_PATH}
+ ${SSH} -l ${GCC_USERNAME} ${GCC_HOSTNAME} \
+ mkdir -p "${FTP_PATH}/diffs"
UPLOAD_PATH="${GCC_USERNAME}@${GCC_HOSTNAME}:${FTP_PATH}"
else
- mkdir -p "${FTP_PATH}" \
+ mkdir -p "${FTP_PATH}/diffs" \
|| error "Could not create \`${FTP_PATH}'"
UPLOAD_PATH=${FTP_PATH}
fi
+ # Then copy files to their respective (sub)directories.
for x in gcc*.gz gcc*.bz2; do
if [ -e ${x} ]; then
# Make sure the file will be readable on the server.
chmod a+r ${x}
# Copy it.
- ${SCP} ${x} ${UPLOAD_PATH} || error "Could not upload ${x}"
+ case ${x} in
+ *.diff.*)
+ SUBDIR="diffs/";
+ ;;
+ *)
+ SUBDIR="";
+ esac
+ ${SCP} ${x} ${UPLOAD_PATH}/${SUBDIR} \
+ || error "Could not upload ${x}"
fi
done
}
@@ -501,7 +515,7 @@ if [ $SNAPSHOT -eq 0 ]; then
# If this is not a final release, set various parameters acordingly.
if [ ${FINAL} -ne 1 ]; then
RELEASE="${RELEASE}-${DATE}"
- FTP_PATH="${FTP_PATH}/snapshots/"
+ FTP_PATH="${FTP_PATH}/prerelease-${RELEASE}/"
else
FTP_PATH="${FTP_PATH}/releases/gcc-${RELEASE}/"
fi
@@ -560,7 +574,12 @@ while [ $# -ne 0 ]; do
sources) MODE_SOURCES=1;;
tarfiles) MODE_TARFILES=1;;
upload) MODE_UPLOAD=1;;
- all) MODE_SOURCES=1; MODE_TARFILES=1; MODE_DIFFS=1; MODE_BZIP2=1; MODE_UPLOAD=1;;
+ all) MODE_SOURCES=1; MODE_TARFILES=1; MODE_DIFFS=1; MODE_UPLOAD=1;
+ if [ $SNAPSHOT -ne 1 ]; then
+ # Only for releases and pre-releases.
+ MODE_BZIP2=1;
+ fi
+ ;;
*) error "Unknown mode $1";;
esac
shift
@@ -620,10 +639,6 @@ if [ $MODE_UPLOAD -ne 0 ]; then
changedir ~
echo $DATE >.snapshot_date
- # Update gcc_latest_snapshot tag.
- ${CVS} rtag -d gcc_latest_snapshot gcc
- ${CVS} rtag -rgcc_ss_${DATE} gcc_latest_snapshot gcc
-
# Announce the snapshot.
export QMAILHOST=gcc.gnu.org
mail -s "gcc-ss-$DATE is now available" gcc@gcc.gnu.org < ~ftp/pub/gcc/snapshots/README
diff --git a/zlib/ChangeLog b/zlib/ChangeLog
index 615c7ac4027..8a349381035 100644
--- a/zlib/ChangeLog
+++ b/zlib/ChangeLog
@@ -1,3 +1,43 @@
+2005-05-03 Release Manager
+
+ * GCC 3.3.6 Released.
+
+2004-09-30 Release Manager
+
+ * GCC 3.3.5 Released.
+
+2004-05-31 Release Manager
+
+ * GCC 3.3.4 Released.
+
+2004-02-14 Release Manager
+
+ * GCC 3.3.3 Released.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-08-04 Release Manager
+
+ * GCC 3.3.1 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
+2003-05-13 Release Manager
+
+ * GCC 3.3 Released.
+
ChangeLog file for zlib
@@ -225,7 +265,7 @@ Changes in 1.0.6 (19 Jan 1998)
- 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.5 2002/05/08 04:38:00 aoliva Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
+- Avoid expanded $Id: ChangeLog,v 1.6.20.6 2003/10/16 19:45:39 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 --git a/zlib/ChangeLog.gcj b/zlib/ChangeLog.gcj
index f146d17bf52..db8c50179dc 100644
--- a/zlib/ChangeLog.gcj
+++ b/zlib/ChangeLog.gcj
@@ -1,3 +1,30 @@
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * README: Note that zlib is not part of GCC.
+
+2003-02-20 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2003-02-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (multiosdir): Set to nothing if compiler is not GCC
+ or if it doesn't support -print-multi-os-directory.
+ * configure: Rebuilt.
+
+2003-01-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
+ Remove USE_LIBDIR conditional.
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
+ * Makefile.in, configure: Rebuilt.
+
2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.am (all-multi): Fix multilib parallel build.
diff --git a/zlib/Makefile.am b/zlib/Makefile.am
index 46ac3de4ec9..a42bb3be7f9 100644
--- a/zlib/Makefile.am
+++ b/zlib/Makefile.am
@@ -10,15 +10,6 @@ MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-## Install a library built with a cross compiler in tooldir, not
-## libdir.
-if USE_LIBDIR
-toolexeclibdir = $(libdir)$(MULTISUBDIR)
-else
-toolexecdir = $(exec_prefix)/$(target_alias)
-toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
-endif
-
ZLIB_SOURCES = adler32.c compress.c crc32.c deflate.c deflate.h \
gzio.c infblock.c infblock.h infcodes.c infcodes.h inffast.c inffast.h \
inffixed.h inflate.c inftrees.c inftrees.h infutil.c infutil.h trees.c \
diff --git a/zlib/Makefile.in b/zlib/Makefile.in
index 59d8ff76e68..7fcd38798cc 100644
--- a/zlib/Makefile.in
+++ b/zlib/Makefile.in
@@ -85,6 +85,8 @@ STRIP = @STRIP@
VERSION = @VERSION@
mkinstalldirs = @mkinstalldirs@
target_all = @target_all@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
zlib_basedir = @zlib_basedir@
AUTOMAKE_OPTIONS = cygnus
@@ -96,9 +98,6 @@ MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR)
-@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias)
ZLIB_SOURCES = adler32.c compress.c crc32.c deflate.c deflate.h \
gzio.c infblock.c infblock.h infcodes.c infcodes.h inffast.c inffast.h \
@@ -106,11 +105,8 @@ inffixed.h inflate.c inftrees.c inftrees.h infutil.c infutil.h trees.c \
trees.h uncompr.c zconf.h zlib.h zutil.c zutil.h
-# toolexeclib_LTLIBRARIES = @target_all@
-# EXTRA_LTLIBRARIES = libzgcj.la
@TARGET_LIBRARY_TRUE@noinst_LTLIBRARIES = @TARGET_LIBRARY_TRUE@libzgcj_convenience.la
@TARGET_LIBRARY_TRUE@libzgcj_convenience_la_SOURCES = @TARGET_LIBRARY_TRUE@$(ZLIB_SOURCES)
-# libzgcj_la_LDFLAGS = -version-info 0:0:0 -rpath $(toolexeclibdir)
@TARGET_LIBRARY_FALSE@toolexeclib_LIBRARIES = @TARGET_LIBRARY_FALSE@libz.a
@TARGET_LIBRARY_FALSE@libz_a_SOURCES = @TARGET_LIBRARY_FALSE@$(ZLIB_SOURCES)
diff --git a/zlib/README b/zlib/README
index 29d67146a9b..d3f96909a6b 100644
--- a/zlib/README
+++ b/zlib/README
@@ -1,3 +1,6 @@
+This directory contains the zlib package, which is not part of GCC but
+shipped with GCC as convenience.
+
zlib 1.1.4 is a general purpose data compression library. All the code
is thread safe. The data format used by the zlib library
is described by RFCs (Request for Comments) 1950 to 1952 in the files
diff --git a/zlib/configure b/zlib/configure
index 319b2a0581c..4d92a730ee6 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -52,7 +52,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -167,7 +166,6 @@ Configuration:
--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
@@ -338,11 +336,6 @@ EOF
-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=*)
@@ -508,16 +501,12 @@ fi
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
+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
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -646,7 +635,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:650: checking host system type" >&5
+echo "configure:639: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -667,7 +656,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:671: checking target system type" >&5
+echo "configure:660: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -685,7 +674,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:689: checking build system type" >&5
+echo "configure:678: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -724,7 +713,7 @@ mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
# 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:728: checking for a BSD compatible install" >&5
+echo "configure:717: 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
@@ -777,7 +766,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:781: checking whether build environment is sane" >&5
+echo "configure:770: checking whether build environment is sane" >&5
# Just in case
sleep 1
echo timestamp > conftestfile
@@ -834,7 +823,7 @@ test "$program_suffix" != NONE &&
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:838: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:827: 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
@@ -880,7 +869,7 @@ EOF
missing_dir=`cd $ac_aux_dir && pwd`
echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:884: checking for working aclocal" >&5
+echo "configure:873: 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.
@@ -893,7 +882,7 @@ else
fi
echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:897: checking for working autoconf" >&5
+echo "configure:886: 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.
@@ -906,7 +895,7 @@ else
fi
echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:910: checking for working automake" >&5
+echo "configure:899: 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.
@@ -919,7 +908,7 @@ else
fi
echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:923: checking for working autoheader" >&5
+echo "configure:912: 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.
@@ -932,7 +921,7 @@ else
fi
echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:936: checking for working makeinfo" >&5
+echo "configure:925: 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.
@@ -947,7 +936,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:951: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:940: 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"
@@ -1006,7 +995,7 @@ fi
# 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:1010: checking for $ac_word" >&5
+echo "configure:999: 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
@@ -1036,7 +1025,7 @@ if test -z "$CC"; then
# 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:1040: checking for $ac_word" >&5
+echo "configure:1029: 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
@@ -1085,7 +1074,7 @@ fi
fi
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1089: checking whether we are using GNU C" >&5
+echo "configure:1078: 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
@@ -1094,7 +1083,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1087: \"$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
@@ -1109,7 +1098,7 @@ if test $ac_cv_prog_gcc = yes; then
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1113: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1102: 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
@@ -1149,12 +1138,12 @@ if false; then
# were not for the `:' below.
:
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1153: checking for Cygwin environment" >&5
+echo "configure:1142: 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 <<EOF
-#line 1158 "configure"
+#line 1147 "configure"
#include "confdefs.h"
int main() {
@@ -1165,7 +1154,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:1169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -1182,19 +1171,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1186: checking for mingw32 environment" >&5
+echo "configure:1175: 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 <<EOF
-#line 1191 "configure"
+#line 1180 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:1198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -1213,7 +1202,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1217: checking for executable suffix" >&5
+echo "configure:1206: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1223,10 +1212,10 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -1325,7 +1314,7 @@ ac_prog=ld
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:1329: checking for ld used by GCC" >&5
+echo "configure:1318: checking for ld used by GCC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -1355,10 +1344,10 @@ echo "configure:1329: checking for ld used by GCC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1359: checking for GNU ld" >&5
+echo "configure:1348: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1362: checking for non-GNU ld" >&5
+echo "configure:1351: 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
@@ -1393,7 +1382,7 @@ else
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:1397: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1386: 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
@@ -1410,7 +1399,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1414: checking for $LD option to reload object files" >&5
+echo "configure:1403: 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
@@ -1422,7 +1411,7 @@ reload_flag=$lt_cv_ld_reload_flag
test -n "$reload_flag" && reload_flag=" $reload_flag"
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1426: checking for BSD-compatible nm" >&5
+echo "configure:1415: 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
@@ -1460,7 +1449,7 @@ NM="$lt_cv_path_NM"
echo "$ac_t""$NM" 1>&6
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1464: checking whether ln -s works" >&5
+echo "configure:1453: 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
@@ -1481,7 +1470,7 @@ else
fi
echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1485: checking how to recognise dependant libraries" >&5
+echo "configure:1474: 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
@@ -1591,7 +1580,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -1654,13 +1643,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1658: checking for object suffix" >&5
+echo "configure:1647: 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:1664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -1690,7 +1679,7 @@ case $deplibs_check_method in
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:1694: checking for ${ac_tool_prefix}file" >&5
+echo "configure:1683: 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
@@ -1752,7 +1741,7 @@ fi
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:1756: checking for file" >&5
+echo "configure:1745: 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
@@ -1823,7 +1812,7 @@ esac
# 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:1827: checking for $ac_word" >&5
+echo "configure:1816: 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
@@ -1855,7 +1844,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1859: checking for $ac_word" >&5
+echo "configure:1848: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1890,7 +1879,7 @@ fi
# 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:1894: checking for $ac_word" >&5
+echo "configure:1883: 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
@@ -1922,7 +1911,7 @@ if test -n "$ac_tool_prefix"; then
# 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:1926: checking for $ac_word" >&5
+echo "configure:1915: 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
@@ -1989,8 +1978,21 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
case $host in
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 1993 "configure"' > conftest.$ac_ext
- if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 1982 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:1983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
@@ -2002,6 +2004,7 @@ case $host in
LD="${LD-ld} -64"
;;
esac
+ fi
fi
rm -rf conftest*
;;
@@ -2009,7 +2012,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:2013: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:2016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case "`/usr/bin/file conftest.o`" in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -2022,12 +2025,54 @@ ia64-*-hpux*)
rm -rf conftest*
;;
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { (eval echo configure:2032: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2031: checking whether the C compiler needs -belf" >&5
+echo "configure:2076: 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
@@ -2040,14 +2085,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 2044 "configure"
+#line 2089 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:2051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -2173,7 +2218,7 @@ fi
# Find CPP now so that any conditional tests below won't do it and
# thereby make the resulting definitions conditional.
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2177: checking how to run the C preprocessor" >&5
+echo "configure:2222: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2188,13 +2233,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2192 "configure"
+#line 2237 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2198: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2243: \"$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
:
@@ -2205,13 +2250,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2209 "configure"
+#line 2254 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2215: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2260: \"$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
:
@@ -2222,13 +2267,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2226 "configure"
+#line 2271 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2277: \"$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
:
@@ -2272,21 +2317,21 @@ EOF
# We ignore --with-system-zlib in this case.
target_all=libzgcj.la
else
- for ac_hdr in unistd.h
+ for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2280: checking for $ac_hdr" >&5
+echo "configure:2325: 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
-#line 2285 "configure"
+#line 2330 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2335: \"$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*
@@ -2315,12 +2360,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2319: checking for $ac_func" >&5
+echo "configure:2364: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2324 "configure"
+#line 2369 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2343,7 +2388,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2368,7 +2413,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:2372: checking for working mmap" >&5
+echo "configure:2417: 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
@@ -2376,7 +2421,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 2380 "configure"
+#line 2425 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -2404,11 +2449,24 @@ else
#include <fcntl.h>
#include <sys/mman.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@@ -2516,7 +2574,7 @@ main()
}
EOF
-if { (eval echo configure:2520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2578: \"$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
@@ -2541,12 +2599,12 @@ fi
for ac_func in memcpy strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2545: checking for $ac_func" >&5
+echo "configure:2603: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2550 "configure"
+#line 2608 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2569,7 +2627,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2596,7 +2654,7 @@ done
if test "$with_system_zlib" = yes; then
echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:2600: checking for deflate in -lz" >&5
+echo "configure:2658: checking for deflate in -lz" >&5
ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2604,7 +2662,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lz $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2608 "configure"
+#line 2666 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2615,7 +2673,7 @@ int main() {
deflate()
; return 0; }
EOF
-if { (eval echo configure:2619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2677: \"$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
@@ -2647,17 +2705,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2651: checking for $ac_hdr" >&5
+echo "configure:2709: 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
-#line 2656 "configure"
+#line 2714 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2661: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2719: \"$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*
@@ -2684,15 +2742,23 @@ fi
done
-
-
-if test -z "$with_cross_host"; then
- USE_LIBDIR_TRUE=
- USE_LIBDIR_FALSE='#'
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
+fi
+if test "$GCC" = yes && $CC -print-multi-os-directory > /dev/null 2>&1; then
+ multiosdir=/`$CC -print-multi-os-directory`
else
- USE_LIBDIR_TRUE='#'
- USE_LIBDIR_FALSE=
+ multiosdir=
fi
+toolexeclibdir=${toolexeclibdir}${multiosdir}
+
+
+
if test -n "$with_target_subdir"; then
@@ -2775,15 +2841,34 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
+t quote
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output. A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
# Without the "./", some shells look in PATH for config.status.
@@ -2895,8 +2980,8 @@ s%@LIBTOOL@%$LIBTOOL%g
s%@COMPPATH@%$COMPPATH%g
s%@CPP@%$CPP%g
s%@target_all@%$target_all%g
-s%@USE_LIBDIR_TRUE@%$USE_LIBDIR_TRUE%g
-s%@USE_LIBDIR_FALSE@%$USE_LIBDIR_FALSE%g
+s%@toolexecdir@%$toolexecdir%g
+s%@toolexeclibdir@%$toolexeclibdir%g
s%@TARGET_LIBRARY_TRUE@%$TARGET_LIBRARY_TRUE%g
s%@TARGET_LIBRARY_FALSE@%$TARGET_LIBRARY_FALSE%g
@@ -3010,6 +3095,7 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
zlib_basedir=${zlib_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
EOF
cat >> $CONFIG_STATUS <<\EOF
diff --git a/zlib/configure.in b/zlib/configure.in
index d5f9a1edb8d..224f1de5834 100644
--- a/zlib/configure.in
+++ b/zlib/configure.in
@@ -113,7 +113,23 @@ AC_SUBST(target_all)
AC_CHECK_HEADERS(unistd.h)
-AM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")
+if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='$(exec_prefix)/$(target_alias)'
+ toolexeclibdir='$(toolexecdir)/lib'
+else
+ toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+ toolexeclibdir='$(libdir)'
+fi
+if test "$GCC" = yes && $CC -print-multi-os-directory > /dev/null 2>&1; then
+ multiosdir=/`$CC -print-multi-os-directory`
+else
+ multiosdir=
+fi
+toolexeclibdir=${toolexeclibdir}${multiosdir}
+AC_SUBST(toolexecdir)
+AC_SUBST(toolexeclibdir)
+
AM_CONDITIONAL(TARGET_LIBRARY, test -n "$with_target_subdir")
if test "${multilib}" = "yes"; then
@@ -136,4 +152,5 @@ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
zlib_basedir=${zlib_basedir}
CC="${CC}"
CXX="${CXX}"
+ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)